/* 4 space tabs filename: ct.h package: common utils/common types description: explicitly defined shared binary types author: ydnar version history date user description ---------------------------------------------------------------------------- 02.08.2001 ydnar initial version for ia32 linux 02.09.2001 ydnar further work 02.13.2001 ydnar further work 02.21.2001 ydnar added error codes 2001-09-17 ydnar win32 2001-10-02 ydnar minor cleanup, added byte type 2001-11-14 ydnar fixed typo 2001-11-27 ydnar moved some stuff around */ /* fingerprint */ #ifndef CT_H #define CT_H #endif /* includes */ #include /* to get size_t */ #ifndef _ERRNO_H #include /* to get errno constants/types */ #endif /* types */ /* integer types */ typedef char SInt8; typedef unsigned char UInt8; typedef short SInt16; typedef unsigned short UInt16; typedef int SInt32; typedef unsigned int UInt32; #ifdef WIN32 typedef __int64 SInt64; typedef unsigned __int64 UInt64; #else typedef long long SInt64; typedef unsigned long long UInt64; #endif /* floating point types */ typedef float Float32; typedef double Float64; /* logical and helper types */ typedef UInt8 Byte; typedef size_t Size; /* FIXME: possible unix dependency? */ typedef SInt32 Boolean; /* FIXME: signed? */ typedef SInt32 Error; typedef UInt32 Flags; /* string types (helpers, really) */ typedef UInt8 Char; typedef Char *String; /* plain ascii or unknown string type */ typedef Char UTF8Char; /* utf-8 component octet */ typedef Char *UTF8String; /* utf-8 unicode string */ typedef UInt32 UCS4Char; typedef UInt32 *UCS4String; /* constants */ /* boolean codes */ enum { #ifndef FALSE FALSE = 0, #endif #ifndef TRUE TRUE = 1 #endif }; /* generic error codes */ enum { OK = 0, /* see for standard error codes > 0 */ ERROR_MEMORY = -12, ERROR_INVALID_ARG = -22, ERROR_WANT_DATA = -100, ERROR_ILLEGAL_CHAR = -200, ERROR_OUT_OF_SEQUENCE = -201, ERROR_INVALID_BEGIN = -202, ERROR_IMPROPER_END = -203, ERROR_MALFORMED = -204, ERROR_BROKEN_STATE = -300 }; /* macros */ /* lo bit binary */ #define b00000000 0 #define b00000001 1 #define b00000010 2 #define b00000011 3 #define b00000100 4 #define b00000101 5 #define b00000110 6 #define b00000111 7 #define b00001000 8 #define b00001001 9 #define b00001010 10 #define b00001011 11 #define b00001100 12 #define b00001101 13 #define b00001110 14 #define b00001111 15 #define b00010000 16 #define b00010001 17 #define b00010010 18 #define b00010011 19 #define b00010100 20 #define b00010101 21 #define b00010110 22 #define b00010111 23 #define b00011000 24 #define b00011001 25 #define b00011010 26 #define b00011011 27 #define b00011100 28 #define b00011101 29 #define b00011110 30 #define b00011111 31 #define b00100000 32 #define b00100001 33 #define b00100010 34 #define b00100011 35 #define b00100100 36 #define b00100101 37 #define b00100110 38 #define b00100111 39 #define b00101000 40 #define b00101001 41 #define b00101010 42 #define b00101011 43 #define b00101100 44 #define b00101101 45 #define b00101110 46 #define b00101111 47 #define b00110000 48 #define b00110001 49 #define b00110010 50 #define b00110011 51 #define b00110100 52 #define b00110101 53 #define b00110110 54 #define b00110111 55 #define b00111000 56 #define b00111001 57 #define b00111010 58 #define b00111011 59 #define b00111100 60 #define b00111101 61 #define b00111110 62 #define b00111111 63 #define b01000000 64 #define b01000001 65 #define b01000010 66 #define b01000011 67 #define b01000100 68 #define b01000101 69 #define b01000110 70 #define b01000111 71 #define b01001000 72 #define b01001001 73 #define b01001010 74 #define b01001011 75 #define b01001100 76 #define b01001101 77 #define b01001110 78 #define b01001111 79 #define b01010000 80 #define b01010001 81 #define b01010010 82 #define b01010011 83 #define b01010100 84 #define b01010101 85 #define b01010110 86 #define b01010111 87 #define b01011000 88 #define b01011001 89 #define b01011010 90 #define b01011011 91 #define b01011100 92 #define b01011101 93 #define b01011110 94 #define b01011111 95 #define b01100000 96 #define b01100001 97 #define b01100010 98 #define b01100011 99 #define b01100100 100 #define b01100101 101 #define b01100110 102 #define b01100111 103 #define b01101000 104 #define b01101001 105 #define b01101010 106 #define b01101011 107 #define b01101100 108 #define b01101101 109 #define b01101110 110 #define b01101111 111 #define b01110000 112 #define b01110001 113 #define b01110010 114 #define b01110011 115 #define b01110100 116 #define b01110101 117 #define b01110110 118 #define b01110111 119 #define b01111000 120 #define b01111001 121 #define b01111010 122 #define b01111011 123 #define b01111100 124 #define b01111101 125 #define b01111110 126 #define b01111111 127 /* hi bit binary */ #define b10000000 (0 + 128) #define b10000001 (1 + 128) #define b10000010 (2 + 128) #define b10000011 (3 + 128) #define b10000100 (4 + 128) #define b10000101 (5 + 128) #define b10000110 (6 + 128) #define b10000111 (7 + 128) #define b10001000 (8 + 128) #define b10001001 (9 + 128) #define b10001010 (10 + 128) #define b10001011 (11 + 128) #define b10001100 (12 + 128) #define b10001101 (13 + 128) #define b10001110 (14 + 128) #define b10001111 (15 + 128) #define b10010000 (16 + 128) #define b10010001 (17 + 128) #define b10010010 (18 + 128) #define b10010011 (19 + 128) #define b10010100 (20 + 128) #define b10010101 (21 + 128) #define b10010110 (22 + 128) #define b10010111 (23 + 128) #define b10011000 (24 + 128) #define b10011001 (25 + 128) #define b10011010 (26 + 128) #define b10011011 (27 + 128) #define b10011100 (28 + 128) #define b10011101 (29 + 128) #define b10011110 (30 + 128) #define b10011111 (31 + 128) #define b10100000 (32 + 128) #define b10100001 (33 + 128) #define b10100010 (34 + 128) #define b10100011 (35 + 128) #define b10100100 (36 + 128) #define b10100101 (37 + 128) #define b10100110 (38 + 128) #define b10100111 (39 + 128) #define b10101000 (40 + 128) #define b10101001 (41 + 128) #define b10101010 (42 + 128) #define b10101011 (43 + 128) #define b10101100 (44 + 128) #define b10101101 (45 + 128) #define b10101110 (46 + 128) #define b10101111 (47 + 128) #define b10110000 (48 + 128) #define b10110001 (49 + 128) #define b10110010 (50 + 128) #define b10110011 (51 + 128) #define b10110100 (52 + 128) #define b10110101 (53 + 128) #define b10110110 (54 + 128) #define b10110111 (55 + 128) #define b10111000 (56 + 128) #define b10111001 (57 + 128) #define b10111010 (58 + 128) #define b10111011 (59 + 128) #define b10111100 (60 + 128) #define b10111101 (61 + 128) #define b10111110 (62 + 128) #define b10111111 (63 + 128) #define b11000000 (64 + 128) #define b11000001 (65 + 128) #define b11000010 (66 + 128) #define b11000011 (67 + 128) #define b11000100 (68 + 128) #define b11000101 (69 + 128) #define b11000110 (70 + 128) #define b11000111 (71 + 128) #define b11001000 (72 + 128) #define b11001001 (73 + 128) #define b11001010 (74 + 128) #define b11001011 (75 + 128) #define b11001100 (76 + 128) #define b11001101 (77 + 128) #define b11001110 (78 + 128) #define b11001111 (79 + 128) #define b11010000 (80 + 128) #define b11010001 (81 + 128) #define b11010010 (82 + 128) #define b11010011 (83 + 128) #define b11010100 (84 + 128) #define b11010101 (85 + 128) #define b11010110 (86 + 128) #define b11010111 (87 + 128) #define b11011000 (88 + 128) #define b11011001 (89 + 128) #define b11011010 (90 + 128) #define b11011011 (91 + 128) #define b11011100 (92 + 128) #define b11011101 (93 + 128) #define b11011110 (94 + 128) #define b11011111 (95 + 128) #define b11100000 (96 + 128) #define b11100001 (97 + 128) #define b11100010 (98 + 128) #define b11100011 (99 + 128) #define b11100100 (100 + 128) #define b11100101 (101 + 128) #define b11100110 (102 + 128) #define b11100111 (103 + 128) #define b11101000 (104 + 128) #define b11101001 (105 + 128) #define b11101010 (106 + 128) #define b11101011 (107 + 128) #define b11101100 (108 + 128) #define b11101101 (109 + 128) #define b11101110 (110 + 128) #define b11101111 (111 + 128) #define b11110000 (112 + 128) #define b11110001 (113 + 128) #define b11110010 (114 + 128) #define b11110011 (115 + 128) #define b11110100 (116 + 128) #define b11110101 (117 + 128) #define b11110110 (118 + 128) #define b11110111 (119 + 128) #define b11111000 (120 + 128) #define b11111001 (121 + 128) #define b11111010 (122 + 128) #define b11111011 (123 + 128) #define b11111100 (124 + 128) #define b11111101 (125 + 128) #define b11111110 (126 + 128) #define b11111111 (127 + 128)