theSq3Lite 10.0 NHI1 - theKernel - theLink - theConfig - theSq3Lite - theCompiler - theBrain - theGuard - theLib - theATL
c - tcl - atl - cs - py - rb - jv - cc
Loading...
Searching...
No Matches
mk_type_S_lng.h
Go to the documentation of this file.
1
12#pragma once
13
15
17#define MkErrorVD(errcls,format,...) \
18 MkErrorSetV_3M(hdl,errcls,format, __VA_ARGS__)
19
20#define MkBufferC_CLS BUF
21#define MkBufferStreamC_CLS BUS
22#define MkBufferListC_CLS BFL
23#define MkLogFileC_CLS LFL
24#define MkRuntimeC_CLS RT
25#define MkObjectC_CLS OBJ
26#define MkErrorC_CLS ERR
27
28#define MkBufferC_constr OT_TMP_BUF_OBJ
29#define MkBufferStreamC_constr OT_TMP_BUS_OBJ
30#define MkBufferListC_constr OT_TMP_BFL_OBJ
31#define MkLogFileC_constr OT_TMP_LFL_OBJ
32#define MkRuntimeC_constr OT_TMP_RT_OBJ
33#define MkObjectC_constr OT_TMP_OBJ_OBJ
34#define MkErrorC_constr OT_TMP_OBJ_OBJ
35
36#define MkBufferC_check MkBufCheck
37#define MkBufferStreamC_check MkBusCheckI
38#define MkBufferListC_check MkBflCheck
39#define MkLogFileC_check MkLflCheckI
40#define MkErrorC_check MkErrCheck
41#define MkObjectC_check MkObjCheck
42#define MkTypeC_check MkTypCheck
43#define MkRuntimeC_check MkRtCheck
44
45#define MkBufferC_VAL2 VAL2BUF
46#define MkBufferStreamC_VAL2 VAL2BUS
47#define MkBufferListC_VAL2 VAL2BFL
48#define MkLogFileC_VAL2 VAL2LFL
49#define MkErrorC_VAL2 VAL2ERR
50#define MkObjectC_VAL2 VAL2OBJ
51#define MkRuntimeC_VAL2 VAL2RT
52
53#define MkBin2XXX(xxx,len,b) ({MK_##xxx __tmp; memcpy(&__tmp,b,len); __tmp;})
54
55#define MkBin2BOL(b) MkBin2XXX(BOL,1,b)
56#define MkBin2I8(b) MkBin2XXX(I8,1,b)
57#define MkBin2I16(b) MkBin2XXX(I16,2,b)
58#define MkBin2I32(b) MkBin2XXX(I32,4,b)
59#define MkBin2I64(b) MkBin2XXX(I64,8,b)
60#define MkBin2FLT(b) MkBin2XXX(FLT,4,b)
61#define MkBin2DBL(b) MkBin2XXX(DBL,8,b)
62
63#define MkMin_I8 SCHAR_MIN
64#define MkMax_I8 SCHAR_MAX
65#define MkMin_I16 SHRT_MIN
66#define MkMin_U16 0
67#define MkMax_I16 SHRT_MAX
68#define MkMax_U16 USHRT_MAX
69#define MkMin_I32 INT_MIN
70#define MkMax_I32 INT_MAX
71#define MkMin_U32 0
72#define MkMax_U32 UINT_MAX
73#define MkMin_LONG LONG_MIN
74#define MkMax_LONG LONG_MAX
75
76#define MkSize_I8 1
77#define MkSize_I16 2
78#define MkSize_I32 4
79
80#define MkType_I8 "byte"
81#define MkType_I16 "short"
82#define MkType_U16 "unsigned short"
83#define MkType_I32 "integer"
84#define MkType_U32 "unsigned integer"
85#define MkType_FLT "float"
86#define MkType_DBL "double"
87#define MkType_LONG "long"
88#define MkType_I64 "long long"
89#define MkType_LLG "long long"
90#define MkType_BOOL "bool"
91#define MkType_BOL "bool"
92#define MkType_STRN "string"
93
94#define MkTypeT_I8 MK_I8T
95#define MkTypeT_I16 MK_I16T
96#define MkTypeT_I32 MK_I32T
97#define MkTypeT_FLT MK_FLTT
98#define MkTypeT_DBL MK_DBLT
99#define MkTypeT_I64 MK_I64T
100#define MkTypeT_LLG MK_LLGT
101#define MkTypeT_BOL MK_BOLT
102#define MkTypeT_STRN MK_STRT
103#define MkTypeT_BIN MK_BINT
104
105#if NHI1_bits == 64
106 #define MkTypeT_LONG MK_I64T
107#else
108 #define MkTypeT_LONG MK_I32T
109#endif
110
111#define MkType1_I8 Y
112#define MkType1_I16 S
113#define MkType1_I32 I
114#define MkType1_U32 UI
115#define MkType1_FLT F
116#define MkType1_DBL D
117#define MkType1_I64 W
118#define MkType1_LLG LL
119#define MkType1_BOL O
120#define MkType1_STRN C
121#define MkType1_BIN B
122
123#define MkAto_I8 ato.Y
124#define MkAto_I16 ato.S
125#define MkAto_I32 ato.I
126#define MkAto_FLT ato.F
127#define MkAto_DBL ato.D
128#define MkAto_I64 ato.W
129#define MkAto_LLG ato.W
130#define MkAto_BOL ato.O
131#define MkAto_STRN ato.C
132#define MkAto_BIN ato.B
133
134#if NHI1_bits == 64
135 #define MkAto_LONG ato.W
136#else
137 #define MkAto_LONG ato.I
138#endif
139
140#define MK_LONGLONG long long
141#define MK_DOUBLE double
142
143/* in msgque_mq.h
144#define MkType_O MK_BOL
145#define MkType_Y MK_I8
146#define MkType_S MK_I16
147#define MkType_I MK_I32
148#define MkType_W MK_I64
149#define MkType_F MK_FLT
150#define MkType_D MK_DBL
151*/
152
153#define MkTimeoutE_retT MK_TIME_T
154
155#define Overflow_Error_Full(_hdl,_var,_var_string,_type,_min,_max) \
156 if (_var < _min) { \
157 MkErrorSetV_3M(_hdl,"OverflowError", \
158 "expect '%s' but '%s' is less than '%d'", _type, _var_string, _min \
159 ); \
160 goto error; \
161 } else if (_var > _max) { \
162 MkErrorSetV_3M(_hdl,"OverflowError", \
163 "expect '%s' but '%s' is more than '%d'", _type, _var_string, _max \
164 ); \
165 goto error; \
166 }
167
169 static MkThreadLocal char buffer[20];
170 sprintf(buffer,"%i",val);
171 return buffer;
172}
173
175 static MkThreadLocal char buffer[10];
176 sprintf(buffer,"%hi",val);
177 return buffer;
178}
179
180#define Overflow_Error_U32(_hdl,_var,_var_str) \
181 Overflow_Error_Full(_hdl,_var,_var_str,MkType_U32,MkMin_U32,MkMax_U32)
182
183#define Overflow_Error_U16(_hdl,_var,_var_str) \
184 Overflow_Error_Full(_hdl,_var,_var_str,MkType_U16,MkMin_U16,MkMax_U16)
185
187
#define BEGIN_MK_C_DECLS
#define mk_inline
#define END_MK_C_DECLS
const MK_STRB * MK_STRN
signed short int MK_I16
signed int MK_I32
#define MkThreadLocal
mk_inline MK_STRN MkINT2String(MK_I32 val)
mk_inline MK_STRN MkSRT2String(MK_I16 val)