diff options
author | erdgeist <> | 2008-12-06 18:46:00 +0000 |
---|---|---|
committer | erdgeist <> | 2008-12-06 18:46:00 +0000 |
commit | 08c71627839a9134367db354c8255f7a720e1ff3 (patch) | |
tree | b429abf6b3c26c7f851b522f5d4fb6797ad02d29 /trackerlogic.h | |
parent | a4ed31d517f77a21afe12918a9cb256489daac74 (diff) |
Renamed OT_FLAG to OT_PEERFLAG to make code easier to read
Introduced READ16/32 and WRITE16/32 makros to abstract loading/storing from unaligned addresses away on cpu's that can actually load/store everywhere
Removed all unnecessary memmoves, especially where it only moved 6 bytes in inner loop. I replaced them with WRITE16/32(READ16/32()) makros
Diffstat (limited to 'trackerlogic.h')
-rw-r--r-- | trackerlogic.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/trackerlogic.h b/trackerlogic.h index 81bd97a..1705928 100644 --- a/trackerlogic.h +++ b/trackerlogic.h | |||
@@ -11,6 +11,15 @@ | |||
11 | #include <time.h> | 11 | #include <time.h> |
12 | #include <stdint.h> | 12 | #include <stdint.h> |
13 | 13 | ||
14 | /* Libowfat */ | ||
15 | #include <uint16.h> | ||
16 | #include <uint32.h> | ||
17 | |||
18 | #define READ16(addr,offs) ((int16_t)uint16_read((offs)+(uint8_t*)(addr))) | ||
19 | #define READ32(addr,offs) ((int32_t)uint32_read((offs)+(uint8_t*)(addr))) | ||
20 | #define WRITE16(addr,offs,val) uint16_pack((offs)+(uint8_t*)(addr),(val)) | ||
21 | #define WRITE32(addr,offs,val) uint32_pack((offs)+(uint8_t*)(addr),(val)) | ||
22 | |||
14 | typedef uint8_t ot_hash[20]; | 23 | typedef uint8_t ot_hash[20]; |
15 | typedef time_t ot_time; | 24 | typedef time_t ot_time; |
16 | 25 | ||
@@ -55,10 +64,10 @@ static const uint8_t PEER_FLAG_STOPPED = 0x20; | |||
55 | static const uint8_t PEER_FLAG_FROM_SYNC = 0x10; | 64 | static const uint8_t PEER_FLAG_FROM_SYNC = 0x10; |
56 | static const uint8_t PEER_FLAG_LEECHING = 0x00; | 65 | static const uint8_t PEER_FLAG_LEECHING = 0x00; |
57 | 66 | ||
58 | #define OT_SETIP( peer, ip ) memmove((peer),(ip),4); | 67 | #define OT_SETIP(peer,ip) WRITE32((peer),0,READ32((ip),0)) |
59 | #define OT_SETPORT( peer, port ) memmove(((uint8_t*)peer)+4,(port),2); | 68 | #define OT_SETPORT(peer,port) WRITE16((peer),4,READ16((port),0)) |
60 | #define OT_FLAG(peer) (((uint8_t*)(peer))[6]) | 69 | #define OT_PEERFLAG(peer) (((uint8_t*)(peer))[6]) |
61 | #define OT_PEERTIME(peer) (((uint8_t*)(peer))[7]) | 70 | #define OT_PEERTIME(peer) (((uint8_t*)(peer))[7]) |
62 | 71 | ||
63 | #define OT_PEER_COMPARE_SIZE ((size_t)6) | 72 | #define OT_PEER_COMPARE_SIZE ((size_t)6) |
64 | #define OT_HASH_COMPARE_SIZE (sizeof(ot_hash)) | 73 | #define OT_HASH_COMPARE_SIZE (sizeof(ot_hash)) |