1 module etc.c.sapucx; 2 3 extern(C): 4 @nogc: 5 6 alias SAP_UC = wchar; 7 alias SAP_CHAR = wchar; 8 9 alias SAP_RAW = ubyte; 10 alias SAP_SRAW = byte; 11 alias SAP_USHORT = ushort; 12 13 alias SAP_UINT = uint; 14 alias SAP_INT = int; 15 16 alias SAP_SHORT = short; 17 enum SAP_SHORT_MIN = SAP_SHORT.min; 18 enum SAP_SHORT_MAX = SAP_SHORT.max; 19 enum SAP_SHORT_BYTES = SAP_SHORT.sizeof; 20 static assert(SAP_SHORT_BYTES == 2); 21 22 enum SAP_BOOL : ubyte 23 { 24 FALSE = 0, 25 TRUE = 1 26 } 27 28 alias SAP_DOUBLE = double; 29 enum SAP_DOUBLE_MIN = SAP_DOUBLE.min_normal; 30 enum SAP_DOUBLE_MAX = SAP_DOUBLE.max; 31 32 alias LINE_USING_PROC = void function(SAP_CHAR*, int); 33 34 alias intU = int; 35 alias intR = int; 36 alias unsigned_intU = uint; 37 alias unsigned_intR = uint; 38 alias shortU = short; 39 alias shortR = short; 40 alias unsigned_shortU = ushort; 41 alias unsigned_shortR = ushort; 42 alias longU = long; 43 alias longR = long; 44 alias unsigned_longU = ulong; 45 alias unsigned_longR = ulong; 46 alias size_tU = size_t; 47 alias size_tR = size_t; 48 49 enum SAP_DATE_LN = 8; 50 alias SAP_DATE = SAP_CHAR[SAP_DATE_LN]; 51 52 enum SAP_TIME_LN = 6; 53 alias SAP_TIME = SAP_CHAR[SAP_TIME_LN]; 54 55 alias SAP_BCD = SAP_RAW; 56 57 struct SAP_UUID 58 { 59 SAP_UINT a; 60 SAP_USHORT b; 61 SAP_USHORT c; 62 SAP_RAW[8] d; 63 } 64 65 alias PLATFORM_MAX_T = void *; 66 67 union SAP_MAX_ALIGN_T 68 { 69 long align_1; 70 double align_2; 71 void * align_3; 72 PLATFORM_MAX_T align_4; 73 } 74 75 union DecFloat16 76 { 77 SAP_RAW[8] bytes; 78 SAP_DOUBLE align_; 79 } 80 81 union DecFloat34 82 { 83 SAP_RAW[16] bytes; 84 SAP_MAX_ALIGN_T align_; 85 } 86 87 enum DecFloat16RawLen = 8; 88 enum DecFloat34RawLen = 16; 89 90 enum DecFloatRawLen 91 { 92 DecFloat16RawLen = 8, 93 DecFloat34RawLen = 16, 94 } 95 96 alias DecFloat16Raw = SAP_RAW[DecFloatRawLen.DecFloat16RawLen]; 97 alias DecFloat34Raw = SAP_RAW[DecFloatRawLen.DecFloat34RawLen]; 98 99 enum DecFloatLen 100 { 101 DecFloat16Len = 8, 102 DecFloat34Len = 16, 103 } 104 105 enum DECF_16_MAX_STRLEN = 25; 106 enum DECF_34_MAX_STRLEN = 43; 107 108 alias DecFloat34Buff = SAP_UC[DECF_34_MAX_STRLEN]; 109 alias DecFloat16Buff = SAP_UC[DECF_16_MAX_STRLEN];