1 #ifndef _TYPES_H_ 2 #define _TYPES_H_ 3 4 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) 5 6 typedef unsigned char u8; 7 typedef unsigned short u16; 8 typedef unsigned int u32; 9 typedef unsigned long long u64; 10 typedef signed char s8; 11 typedef short s16; 12 typedef int s32; 13 typedef long long s64; 14 15 #define min(x,y) ({ \ 16 typeof(x) _x = (x); \ 17 typeof(y) _y = (y); \ 18 (void) (&_x == &_y); \ 19 _x < _y ? _x : _y; }) 20 21 #define max(x,y) ({ \ 22 typeof(x) _x = (x); \ 23 typeof(y) _y = (y); \ 24 (void) (&_x == &_y); \ 25 _x > _y ? _x : _y; }) 26 27 #endif /* _TYPES_H_ */ 28