1 // 2 // bjtypes.h 3 // TestTB 4 // 5 // Created by Terrin Eager on 4/24/12. 6 // 7 // 8 9 10 #ifndef TestTB_bjtypes_h 11 #define TestTB_bjtypes_h 12 typedef bool BJ_BOOL; 13 14 typedef char BJ_INT8; 15 typedef unsigned char BJ_UINT8; 16 17 typedef short int BJ_INT16; 18 typedef unsigned short int BJ_UINT16; 19 20 typedef int BJ_INT32; 21 typedef unsigned int BJ_UINT32; 22 23 typedef long long BJ_INT64; 24 typedef unsigned long long BJ_UINT64; 25 26 #define DNS_NAME_OFFSET_MASK 0xc0 27 28 #define MAX_FRAME_SIZE 0x2800 29 30 31 enum BJ_COMPARE {BJ_GT,BJ_LT,BJ_EQUAL}; 32 33 #define PF_GET_UINT8(pBuffer,offset) ( (BJ_UINT8)pBuffer[offset] ) 34 #define PF_GET_UINT16(pBuffer,offset) ((((BJ_UINT16)pBuffer[offset]) << 8) | ((BJ_UINT16)pBuffer[offset+1])) 35 #define PF_GET_UINT32(pBuffer,offset) ((pBuffer[offset] << 24) | (pBuffer[offset+1] << 16) | (pBuffer[offset+2] << 8) | (pBuffer[offset+3])) 36 37 endian_swap(BJ_UINT8 & x)38inline void endian_swap(BJ_UINT8& x) 39 { 40 x = (x>>8) |(x<<8); 41 } 42 endian_swap(BJ_UINT32 & x)43inline void endian_swap(BJ_UINT32& x) 44 { 45 x = (x>>24) | 46 ((x<<8) & 0x00FF0000) | 47 ((x>>8) & 0x0000FF00) | 48 (x<<24); 49 } 50 51 endian_swap(BJ_UINT64 & x)52inline void endian_swap(BJ_UINT64& x) 53 { 54 x = (x>>56) | 55 ((x<<40) & 0x00FF000000000000) | 56 ((x<<24) & 0x0000FF0000000000) | 57 ((x<<8) & 0x000000FF00000000) | 58 ((x>>8) & 0x00000000FF000000) | 59 ((x>>24) & 0x0000000000FF0000) | 60 ((x>>40) & 0x000000000000FF00) | 61 (x<<56); 62 } 63 64 #endif 65