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];