nexmon – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 #ifndef SSB_SPROMTOOL_UTILS_H_
2 #define SSB_SPROMTOOL_UTILS_H_
3  
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <stdint.h>
7  
8 #define ssb_stringify_1(x) #x
9 #define ssb_stringify(x) ssb_stringify_1(x)
10  
11 #ifdef ATTRIBUTE_FORMAT
12 # undef ATTRIBUTE_FORMAT
13 #endif
14 #ifdef __GNUC__
15 # define ATTRIBUTE_FORMAT(t, a, b) __attribute__((format(t, a, b)))
16 #else
17 # define ATTRIBUTE_FORMAT(t, a, b) /* nothing */
18 #endif
19  
20 int prinfo(const char *fmt, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
21 int prerror(const char *fmt, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
22 int prdata(const char *fmt, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
23  
24 void internal_error(const char *message);
25 #define internal_error_on(condition) \
26 do { \
27 if (condition) \
28 internal_error(ssb_stringify(condition)); \
29 } while (0)
30  
31 void * malloce(size_t size);
32 void * realloce(void *ptr, size_t newsize);
33  
34 /* CRC-8 with polynomial x^8+x^7+x^6+x^4+x^2+1 */
35 uint8_t crc8(uint8_t crc, uint8_t data);
36  
37 #endif /* SSB_SPROMTOOL_UTILS_H_ */