diff options
author | mannol <eniz_vukovic@hotmail.com> | 2014-05-31 17:27:22 +0200 |
---|---|---|
committer | mannol <eniz_vukovic@hotmail.com> | 2014-05-31 17:27:22 +0200 |
commit | d7c11573751eea005d3b1938ae3298c265d48fd6 (patch) | |
tree | 5e24378192854d147e42fd2c44e0a7bd53685bc4 /toxcore | |
parent | 2ebefb85b7f5ae28db1e8c11196467efd3c914cf (diff) |
Fixed byte order and removed log functions from misc_tools
Diffstat (limited to 'toxcore')
-rw-r--r-- | toxcore/misc_tools.h | 36 | ||||
-rw-r--r-- | toxcore/util.c | 58 | ||||
-rw-r--r-- | toxcore/util.h | 15 |
3 files changed, 74 insertions, 35 deletions
diff --git a/toxcore/misc_tools.h b/toxcore/misc_tools.h index 4bf28ac7..170dd2b1 100644 --- a/toxcore/misc_tools.h +++ b/toxcore/misc_tools.h | |||
@@ -28,41 +28,7 @@ | |||
28 | #include <stdint.h> | 28 | #include <stdint.h> |
29 | #include <string.h> /* for memcpy() */ | 29 | #include <string.h> /* for memcpy() */ |
30 | 30 | ||
31 | /*********************Debugging Macros******************** | 31 | |
32 | * wiki.tox.im/index.php/Internal_functions_and_data_structures#Debugging | ||
33 | *********************************************************/ | ||
34 | #ifdef DEBUG | ||
35 | #include <assert.h> | ||
36 | #include <stdio.h> | ||
37 | #include <string.h> | ||
38 | |||
39 | #define DEBUG_PRINT(str, ...) do { \ | ||
40 | char msg[1000]; \ | ||
41 | sprintf(msg, "%s(): line %d (file %s): %s%%c\n", __FUNCTION__, __LINE__, __FILE__, str); \ | ||
42 | fprintf(stderr, msg, __VA_ARGS__); \ | ||
43 | } while (0) | ||
44 | |||
45 | #define WARNING(...) do { \ | ||
46 | fprintf(stderr, "warning in "); \ | ||
47 | DEBUG_PRINT(__VA_ARGS__, ' '); \ | ||
48 | } while (0) | ||
49 | |||
50 | #define INFO(...) do { \ | ||
51 | DEBUG_PRINT(__VA_ARGS__, ' '); \ | ||
52 | } while (0) | ||
53 | |||
54 | #undef ERROR | ||
55 | #define ERROR(exit_status, ...) do { \ | ||
56 | fprintf(stderr, "error in "); \ | ||
57 | DEBUG_PRINT(__VA_ARGS__, ' '); \ | ||
58 | exit(exit_status); \ | ||
59 | } while (0) | ||
60 | #else | ||
61 | #define WARNING(...) | ||
62 | #define INFO(...) | ||
63 | #undef ERROR | ||
64 | #define ERROR(...) | ||
65 | #endif // DEBUG | ||
66 | 32 | ||
67 | /************************Linked List*********************** | 33 | /************************Linked List*********************** |
68 | * http://wiki.tox.im/index.php/Internal_functions_and_data_structures#Linked_List | 34 | * http://wiki.tox.im/index.php/Internal_functions_and_data_structures#Linked_List |
diff --git a/toxcore/util.c b/toxcore/util.c index 7a2db450..f0bb4130 100644 --- a/toxcore/util.c +++ b/toxcore/util.c | |||
@@ -133,3 +133,61 @@ int load_state(load_state_callback_func load_state_callback, void *outer, | |||
133 | 133 | ||
134 | return length == 0 ? 0 : -1; | 134 | return length == 0 ? 0 : -1; |
135 | }; | 135 | }; |
136 | |||
137 | /* Converts 4 bytes to uint32_t */ | ||
138 | inline__ void bytes_to_U32(uint32_t *dest, const uint8_t *bytes) | ||
139 | { | ||
140 | *dest = | ||
141 | #ifdef WORDS_BIGENDIAN | ||
142 | ( ( uint32_t ) * bytes ) | | ||
143 | ( ( uint32_t ) * ( bytes + 1 ) << 8 ) | | ||
144 | ( ( uint32_t ) * ( bytes + 2 ) << 16 ) | | ||
145 | ( ( uint32_t ) * ( bytes + 3 ) << 24 ) ; | ||
146 | #else | ||
147 | ( ( uint32_t ) * bytes << 24 ) | | ||
148 | ( ( uint32_t ) * ( bytes + 1 ) << 16 ) | | ||
149 | ( ( uint32_t ) * ( bytes + 2 ) << 8 ) | | ||
150 | ( ( uint32_t ) * ( bytes + 3 ) ) ; | ||
151 | #endif | ||
152 | } | ||
153 | |||
154 | /* Converts 2 bytes to uint16_t */ | ||
155 | inline__ void bytes_to_U16(uint16_t *dest, const uint8_t *bytes) | ||
156 | { | ||
157 | *dest = | ||
158 | #ifdef WORDS_BIGENDIAN | ||
159 | ( ( uint16_t ) * bytes ) | | ||
160 | ( ( uint16_t ) * ( bytes + 1 ) << 8 ); | ||
161 | #else | ||
162 | ( ( uint16_t ) * bytes << 8 ) | | ||
163 | ( ( uint16_t ) * ( bytes + 1 ) ); | ||
164 | #endif | ||
165 | } | ||
166 | |||
167 | /* Convert uint32_t to byte string of size 4 */ | ||
168 | inline__ void U32_to_bytes(uint8_t *dest, uint32_t value) | ||
169 | { | ||
170 | #ifdef WORDS_BIGENDIAN | ||
171 | *(dest) = ( value ); | ||
172 | *(dest + 1) = ( value >> 8 ); | ||
173 | *(dest + 2) = ( value >> 16 ); | ||
174 | *(dest + 3) = ( value >> 24 ); | ||
175 | #else | ||
176 | *(dest) = ( value >> 24 ); | ||
177 | *(dest + 1) = ( value >> 16 ); | ||
178 | *(dest + 2) = ( value >> 8 ); | ||
179 | *(dest + 3) = ( value ); | ||
180 | #endif | ||
181 | } | ||
182 | |||
183 | /* Convert uint16_t to byte string of size 2 */ | ||
184 | inline__ void U16_to_bytes(uint8_t *dest, uint16_t value) | ||
185 | { | ||
186 | #ifdef WORDS_BIGENDIAN | ||
187 | *(dest) = ( value ); | ||
188 | *(dest + 1) = ( value >> 8 ); | ||
189 | #else | ||
190 | *(dest) = ( value >> 8 ); | ||
191 | *(dest + 1) = ( value ); | ||
192 | #endif | ||
193 | } \ No newline at end of file | ||
diff --git a/toxcore/util.h b/toxcore/util.h index e40b6968..71c2f5c7 100644 --- a/toxcore/util.h +++ b/toxcore/util.h | |||
@@ -28,6 +28,8 @@ | |||
28 | #include <stdbool.h> | 28 | #include <stdbool.h> |
29 | #include <stdint.h> | 29 | #include <stdint.h> |
30 | 30 | ||
31 | #define inline__ inline __attribute__((always_inline)) | ||
32 | |||
31 | void unix_time_update(); | 33 | void unix_time_update(); |
32 | uint64_t unix_time(); | 34 | uint64_t unix_time(); |
33 | int is_timeout(uint64_t timestamp, uint64_t timeout); | 35 | int is_timeout(uint64_t timestamp, uint64_t timeout); |
@@ -45,4 +47,17 @@ typedef int (*load_state_callback_func)(void *outer, uint8_t *data, uint32_t len | |||
45 | int load_state(load_state_callback_func load_state_callback, void *outer, | 47 | int load_state(load_state_callback_func load_state_callback, void *outer, |
46 | uint8_t *data, uint32_t length, uint16_t cookie_inner); | 48 | uint8_t *data, uint32_t length, uint16_t cookie_inner); |
47 | 49 | ||
50 | /* Converts 4 bytes to uint32_t */ | ||
51 | void bytes_to_U32(uint32_t *dest, const uint8_t *bytes); | ||
52 | |||
53 | /* Converts 2 bytes to uint16_t */ | ||
54 | void bytes_to_U16(uint16_t *dest, const uint8_t *bytes); | ||
55 | |||
56 | /* Convert uint32_t to byte string of size 4 */ | ||
57 | void U32_to_bytes(uint8_t *dest, uint32_t value); | ||
58 | |||
59 | /* Convert uint16_t to byte string of size 2 */ | ||
60 | void U16_to_bytes(uint8_t *dest, uint16_t value); | ||
61 | |||
62 | |||
48 | #endif /* __UTIL_H__ */ | 63 | #endif /* __UTIL_H__ */ |