osi_log_imp.h 62 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172
  1. /* Copyright (C) 2018 RDA Technologies Limited and/or its affiliates("RDA").
  2. * All rights reserved.
  3. *
  4. * This software is supplied "AS IS" without any warranties.
  5. * RDA assumes no responsibility or liability for the use of the software,
  6. * conveys no license or title under any patent, copyright, or mask work
  7. * right to the product. RDA reserves the right to make changes in the
  8. * software without notification. RDA also make no representation or
  9. * warranty that such application will be suitable for the specified use
  10. * without further testing or modification.
  11. */
  12. #ifndef _OSI_LOG_H_
  13. #error "osi_log_imp.h can only be included by osi_log.h"
  14. #endif
  15. // pre-defined trace tags
  16. #define LOG_TAG_NONE OSI_MAKE_LOG_TAG(' ', ' ', ' ', ' ')
  17. #define LOG_TAG_HAL OSI_MAKE_LOG_TAG('H', 'A', 'L', ' ')
  18. #define LOG_TAG_DRV OSI_MAKE_LOG_TAG('D', 'R', 'V', ' ')
  19. #define LOG_TAG_USB_SVC OSI_MAKE_LOG_TAG('S', 'U', 'S', 'B')
  20. #define LOG_TAG_FILE_SYSTEM OSI_MAKE_LOG_TAG('F', 'S', 'Y', 'S')
  21. #define LOG_TAG_ATE OSI_MAKE_LOG_TAG('A', 'T', 'E', 'N')
  22. #define LOG_TAG_MMI OSI_MAKE_LOG_TAG('M', 'M', 'I', ' ')
  23. #define LOG_TAG_KERNEL OSI_MAKE_LOG_TAG('K', 'E', 'R', 'N')
  24. #define LOG_TAG_APPSTART OSI_MAKE_LOG_TAG('A', 'P', 'P', 'S')
  25. #define LOG_TAG_DRIVER OSI_MAKE_LOG_TAG('D', 'R', 'V', 'R')
  26. #define LOG_TAG_FS OSI_MAKE_LOG_TAG('F', 'S', 'Y', 'S')
  27. #define LOG_TAG_ML OSI_MAKE_LOG_TAG('M', 'L', 'A', 'N')
  28. #define LOG_TAG_BOOT OSI_MAKE_LOG_TAG('B', 'O', 'O', 'T')
  29. #define LOG_TAG_UNITY OSI_MAKE_LOG_TAG('U', 'N', 'I', 'T')
  30. #define LOG_TAG_NET OSI_MAKE_LOG_TAG('N', 'E', 'T', ' ')
  31. #define LOG_TAG_CFW OSI_MAKE_LOG_TAG('C', 'F', 'W', ' ')
  32. #define LOG_TAG_UNIT_TEST OSI_MAKE_LOG_TAG('U', 'T', 'S', 'T')
  33. #define LOG_TAG_AUDIO OSI_MAKE_LOG_TAG('A', 'U', 'D', 'I')
  34. #define LOG_TAG_BT OSI_MAKE_LOG_TAG('B', 'T', ' ', ' ')
  35. #define LOG_TAG_TB OSI_MAKE_LOG_TAG('T', 'B', ' ', ' ')
  36. #define LOG_TAG_LPA OSI_MAKE_LOG_TAG('L', 'P', 'A', ' ')
  37. //quectel add
  38. #define LOG_TAG_QUEC OSI_MAKE_LOG_TAG('Q', 'U', 'E', 'C')
  39. #define LOG_TAG_QOPN OSI_MAKE_LOG_TAG('Q', 'O', 'P', 'N')
  40. #define LOG_TAG_OPENCPU OSI_MAKE_LOG_TAG('O', 'P', 'E', 'N')
  41. #define LOG_TAG_TEST_TFM OSI_MAKE_LOG_TAG('T', 'F', 'M', 'T')
  42. void osiTracePrintf(unsigned tag, const char *fmt, ...);
  43. void osiTraceBasic(unsigned tag, unsigned nargs, const char *fmt, ...);
  44. void osiTraceEx(unsigned tag, unsigned partype, const char *fmt, ...);
  45. void osiTraceIdBasic(unsigned tag, unsigned nargs, unsigned trcid, ...);
  46. void osiTraceIdEx(unsigned tag, unsigned partype, unsigned trcid, ...);
  47. void osiTraceTraBasic(unsigned nargs, const char *fmt, ...);
  48. void osiTraceTraEx(unsigned partype, const char *fmt, ...);
  49. void osiTraceTraIdBasic(unsigned nargs, unsigned trcid, ...);
  50. void osiTraceTraIdEx(unsigned partype, unsigned trcid, ...);
  51. void osiTracePubIdBasic(unsigned module, unsigned category, unsigned nargs, unsigned fmt, ...);
  52. void osiTracePubIdEx(unsigned module, unsigned category, unsigned partype, unsigned fmt, ...);
  53. void osiTracePubBasic(unsigned module, unsigned category, unsigned nargs, const char *fmt, ...);
  54. void osiTracePubEx(unsigned module, unsigned category, unsigned partype, const char *fmt, ...);
  55. void osiTraceLteIdBasic(unsigned module, unsigned category, unsigned nargs, unsigned fmt, ...);
  56. void osiTraceLteIdEx(unsigned module, unsigned category, unsigned partype, unsigned fmt, ...);
  57. void osiTraceLteBasic(unsigned module, unsigned category, unsigned nargs, const char *fmt, ...);
  58. void osiTraceLteEx(unsigned module, unsigned category, unsigned partype, const char *fmt, ...);
  59. void osiTraceSendTraData(uint8_t type, osiBuffer_t *bufs, unsigned count, unsigned dlen);
  60. /**
  61. * \brief send external log data through diag protocol
  62. *
  63. * \p body is the log record body, \p body_size is the log record body size.
  64. * It is not the the log record, or diag packet size.
  65. *
  66. * When \p ms_ptr is not NULL, the location will be filled with 32bits time
  67. * value, unit is milliseconds. \p ms_ptr is not needed to be 4 bytes aligned.
  68. *
  69. * Inside,
  70. * - Add diag packet header, cmd:sub_cmd is 0x98:0x00, SN is global sequence
  71. * - Add log record header,
  72. * - Optional set time value
  73. *
  74. * \param flag log record flag
  75. * \param body log record body
  76. * \param body_size log record body size
  77. * \param ms_ptr when not NULL, the location will be filled as time value.
  78. */
  79. void osiTraceSendLogData(unsigned flag, const void *body, unsigned body_size, void *ms_ptr);
  80. bool osiTraceRawSend(uint8_t flowid, unsigned tag, const void *data, uint32_t len);
  81. void SCI_TraceCapData(unsigned data_type, const void *src_ptr, uint32_t size);
  82. enum
  83. {
  84. __OSI_LOGPAR_I = 1,
  85. __OSI_LOGPAR_D = 2,
  86. __OSI_LOGPAR_F = 3,
  87. __OSI_LOGPAR_S = 4,
  88. __OSI_LOGPAR_M = 5
  89. };
  90. #ifdef OSI_LOG_USE_PRINTF
  91. extern int printf(const char *format, ...);
  92. #define __OSI_LOGB(level, fmtid, fmt, ...) printf(fmt, ##__VA_ARGS__)
  93. #define __OSI_LOGX(level, partype, fmtid, fmt, ...) printf(fmt, ##__VA_ARGS__)
  94. #define __OSI_PRINTF(level, fmt, ...) printf(fmt, ##__VA_ARGS__)
  95. #define __OSI_SXPRINTF(id, fmt, ...) printf(fmt, ##__VA_ARGS__)
  96. #define __OSI_SX_TRACE(id, trcid, fmt, ...) printf(fmt, ##__VA_ARGS__)
  97. #define __OSI_SX_TRACEX(id, partype, trcid, fmt, ...) printf(fmt, ##__VA_ARGS__)
  98. #define __OSI_PUB_TRACE(module, category, trcid, fmt, ...) printf(fmt, ##__VA_ARGS__)
  99. #define __OSI_PUB_TRACEX(module, category, partype, trcid, fmt, ...) printf(fmt, ##__VA_ARGS__)
  100. #define __OSI_LTE_TRACE(module, category, trcid, fmt, ...) printf(fmt, ##__VA_ARGS__)
  101. #define __OSI_LTE_TRACEX(module, category, partype, trcid, fmt, ...) printf(fmt, ##__VA_ARGS__)
  102. #define __OSI_TRACE(trcid, fmt, ...) printf(fmt, ##__VA_ARGS__)
  103. #define __OSI_TRACEX(partype, trcid, fmt, ...) printf(fmt, ##__VA_ARGS__)
  104. #else
  105. #ifdef CONFIG_KERNEL_DISABLE_TRACEID
  106. #define __OSI_LOG_DISABLE_ID 1
  107. #else
  108. #define __OSI_LOG_DISABLE_ID 0
  109. #endif
  110. #define __OSI_LOGB(level, fmtid, fmt, ...) \
  111. do \
  112. { \
  113. if (OSI_LOCAL_LOG_LEVEL >= level) \
  114. { \
  115. if ((fmtid) == 0 || __OSI_LOG_DISABLE_ID) \
  116. __OSI_LOGB_IMP((level << 28) | (OSI_LOCAL_LOG_TAG), OSI_VA_NARGS(__VA_ARGS__), fmt, ##__VA_ARGS__); \
  117. else \
  118. __OSI_DLOGB_IMP((level << 28) | (OSI_LOCAL_LOG_TAG), OSI_VA_NARGS(__VA_ARGS__), fmtid, ##__VA_ARGS__); \
  119. } \
  120. } while (0)
  121. #define __OSI_LOGX(level, partype, fmtid, fmt, ...) \
  122. do \
  123. { \
  124. if (OSI_LOCAL_LOG_LEVEL >= level) \
  125. { \
  126. if ((fmtid) == 0 || __OSI_LOG_DISABLE_ID) \
  127. __OSI_LOGX_IMP((level << 28) | (OSI_LOCAL_LOG_TAG), partype, fmt, ##__VA_ARGS__); \
  128. else \
  129. __OSI_DLOGX_IMP((level << 28) | (OSI_LOCAL_LOG_TAG), partype, fmtid, ##__VA_ARGS__); \
  130. } \
  131. } while (0)
  132. #define __OSI_PRINTF(level, fmt, ...) \
  133. do \
  134. { \
  135. if (OSI_LOCAL_LOG_LEVEL >= level) \
  136. osiTracePrintf((level << 28) | (OSI_LOCAL_LOG_TAG), fmt, ##__VA_ARGS__); \
  137. } while (0)
  138. #define __OSI_LOGB_IMP(tag, nargs, fmt, ...) osiTraceBasic(tag, nargs, fmt, ##__VA_ARGS__)
  139. #define __OSI_LOGX_IMP(tag, partype, fmt, ...) osiTraceEx(tag, partype, fmt, ##__VA_ARGS__)
  140. #define __OSI_DLOGB_IMP(tag, nargs, fmtid, ...) osiTraceIdBasic(tag, nargs, fmtid, ##__VA_ARGS__)
  141. #define __OSI_DLOGX_IMP(tag, partype, fmtid, ...) osiTraceIdEx(tag, partype, fmtid, ##__VA_ARGS__)
  142. static inline unsigned __OSI_TSMAP_PARTYPE(unsigned n, unsigned tsmap)
  143. {
  144. unsigned partype = 0;
  145. if ((n) >= 1)
  146. partype |= (((tsmap)&0x01) ? __OSI_LOGPAR_S : __OSI_LOGPAR_I) << 0;
  147. if ((n) >= 2)
  148. partype |= (((tsmap)&0x02) ? __OSI_LOGPAR_S : __OSI_LOGPAR_I) << 4;
  149. if ((n) >= 3)
  150. partype |= (((tsmap)&0x04) ? __OSI_LOGPAR_S : __OSI_LOGPAR_I) << 8;
  151. if ((n) >= 4)
  152. partype |= (((tsmap)&0x08) ? __OSI_LOGPAR_S : __OSI_LOGPAR_I) << 12;
  153. if ((n) >= 5)
  154. partype |= (((tsmap)&0x10) ? __OSI_LOGPAR_S : __OSI_LOGPAR_I) << 16;
  155. if ((n) >= 6)
  156. partype |= (((tsmap)&0x20) ? __OSI_LOGPAR_S : __OSI_LOGPAR_I) << 20;
  157. if ((n) >= 7)
  158. partype |= (((tsmap)&0x40) ? __OSI_LOGPAR_S : __OSI_LOGPAR_I) << 24;
  159. if ((n) >= 8)
  160. partype |= (((tsmap)&0x80) ? __OSI_LOGPAR_S : __OSI_LOGPAR_I) << 28;
  161. return partype;
  162. }
  163. static inline unsigned __OSI_SXID_TAG(unsigned id)
  164. {
  165. id &= 0x1ff;
  166. if (id == ((13 << 5) | 23)) // HAL_SIM_TRC
  167. return OSI_MAKE_LOG_TAG('H', 'S', 'I', 'M') | (OSI_LOG_LEVEL_INFO << 28);
  168. if (id == ((14 << 5) | 23)) // HAL_LPS_TRC
  169. return OSI_MAKE_LOG_TAG('H', 'L', 'P', 'S') | (OSI_LOG_LEVEL_INFO << 28);
  170. if (id == ((3 << 5) | 25)) // RFD_INFO_TRC
  171. return OSI_MAKE_LOG_TAG('H', 'L', 'P', 'S') | (OSI_LOG_LEVEL_INFO << 28);
  172. id &= 0x1f;
  173. if (id == 1)
  174. return OSI_MAKE_LOG_TAG('P', 'A', 'L', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  175. if (id == 2)
  176. return OSI_MAKE_LOG_TAG('L', '1', 'A', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  177. if (id == 3)
  178. return OSI_MAKE_LOG_TAG('L', '1', 'S', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  179. if (id == 4)
  180. return OSI_MAKE_LOG_TAG('L', 'A', 'P', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  181. if (id == 5)
  182. return OSI_MAKE_LOG_TAG('R', 'L', 'U', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  183. if (id == 6)
  184. return OSI_MAKE_LOG_TAG('R', 'L', 'D', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  185. if (id == 7)
  186. return OSI_MAKE_LOG_TAG('L', 'L', 'C', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  187. if (id == 8)
  188. return OSI_MAKE_LOG_TAG('M', 'M', ' ', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  189. if (id == 9)
  190. return OSI_MAKE_LOG_TAG('C', 'C', ' ', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  191. if (id == 10)
  192. return OSI_MAKE_LOG_TAG('S', 'S', ' ', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  193. if (id == 11)
  194. return OSI_MAKE_LOG_TAG('S', 'M', 'S', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  195. if (id == 12)
  196. return OSI_MAKE_LOG_TAG('S', 'M', ' ', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  197. if (id == 13)
  198. return OSI_MAKE_LOG_TAG('S', 'N', 'D', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  199. if (id == 14)
  200. return OSI_MAKE_LOG_TAG('A', 'P', 'I', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  201. if (id == 15)
  202. return OSI_MAKE_LOG_TAG('M', 'M', 'I', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  203. if (id == 16)
  204. return OSI_MAKE_LOG_TAG('S', 'I', 'M', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  205. if (id == 17)
  206. return OSI_MAKE_LOG_TAG('A', 'T', ' ', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  207. if (id == 18)
  208. return OSI_MAKE_LOG_TAG('M', 'S', 'S', 'C') | (OSI_LOG_LEVEL_INFO << 28);
  209. if (id == 19)
  210. return OSI_MAKE_LOG_TAG('R', 'C', 'O', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  211. if (id == 20)
  212. return OSI_MAKE_LOG_TAG('R', 'R', 'I', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  213. if (id == 21)
  214. return OSI_MAKE_LOG_TAG('R', 'R', 'D', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  215. if (id == 22)
  216. return OSI_MAKE_LOG_TAG('R', 'L', 'P', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  217. if (id == 23)
  218. return OSI_MAKE_LOG_TAG('H', 'A', 'L', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  219. if (id == 24)
  220. return OSI_MAKE_LOG_TAG('B', 'C', 'P', 'U') | (OSI_LOG_LEVEL_INFO << 28);
  221. if (id == 25)
  222. return OSI_MAKE_LOG_TAG('C', 'S', 'W', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  223. if (id == 26)
  224. return OSI_MAKE_LOG_TAG('E', 'D', 'R', 'V') | (OSI_LOG_LEVEL_INFO << 28);
  225. if (id == 27)
  226. return OSI_MAKE_LOG_TAG('M', 'C', 'I', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  227. if (id == 28)
  228. return OSI_MAKE_LOG_TAG('S', 'V', 'C', '1') | (OSI_LOG_LEVEL_INFO << 28);
  229. if (id == 29)
  230. return OSI_MAKE_LOG_TAG('S', 'V', 'C', '2') | (OSI_LOG_LEVEL_INFO << 28);
  231. return OSI_MAKE_LOG_TAG('S', 'X', 'S', ' ') | (OSI_LOG_LEVEL_INFO << 28);
  232. }
  233. #define __OSI_SXPRINTF(id, fmt, ...) \
  234. do \
  235. { \
  236. unsigned tdb = (id) & (1 << 12); \
  237. unsigned tsmap = ((id) >> 15) & 0x3f; \
  238. unsigned nargs = OSI_VA_NARGS(__VA_ARGS__); \
  239. unsigned partype = __OSI_TSMAP_PARTYPE(nargs, tsmap); \
  240. unsigned tag = __OSI_SXID_TAG(id); \
  241. if (tdb && tsmap == 0) \
  242. osiTraceIdBasic(tag, nargs, (unsigned)(fmt), ##__VA_ARGS__); \
  243. else if (tdb && tsmap != 0) \
  244. osiTraceIdEx(tag, partype, (unsigned)(fmt), ##__VA_ARGS__); \
  245. else if (tsmap == 0) \
  246. osiTraceBasic(tag, nargs, (const char *)(fmt), ##__VA_ARGS__); \
  247. else \
  248. osiTraceEx(tag, partype, (const char *)(fmt), ##__VA_ARGS__); \
  249. } while (0)
  250. #define __OSI_SXDUMP(id, fmt, data, size) \
  251. do \
  252. { \
  253. unsigned tag = __OSI_SXID_TAG(id); \
  254. osiTraceIdEx(tag, OSI_LOGPAR_M, 0x10005236, size, data); \
  255. } while (0)
  256. #define __OSI_SX_TRACE(id, trcid, fmt, ...) \
  257. do \
  258. { \
  259. unsigned tag = __OSI_SXID_TAG(id); \
  260. if (trcid == 0) \
  261. osiTraceBasic(tag, OSI_VA_NARGS(__VA_ARGS__), fmt, ##__VA_ARGS__); \
  262. else \
  263. osiTraceIdBasic(tag, OSI_VA_NARGS(__VA_ARGS__), trcid, ##__VA_ARGS__); \
  264. } while (0)
  265. #define __OSI_SX_TRACEX(id, partype, trcid, fmt, ...) \
  266. do \
  267. { \
  268. unsigned tag = __OSI_SXID_TAG(id); \
  269. if (trcid == 0) \
  270. osiTraceEx(tag, partype, fmt, ##__VA_ARGS__); \
  271. else \
  272. osiTraceIdEx(tag, partype, trcid, ##__VA_ARGS__); \
  273. } while (0)
  274. #define OSI_TRACE_CATEGORY_CONTROL (0xffffffff)
  275. #define OSI_TRACE_PUB_MODULE_CTRL (0xffffffff)
  276. #define OSI_TRACE_LTE_MODULE_CTRL (0xffffffff)
  277. #define __OSI_PUB_TRACE(module, category, trcid, fmt, ...) \
  278. do \
  279. { \
  280. if ((OSI_TRACE_PUB_MODULE_CTRL & (module)) && (OSI_TRACE_CATEGORY_CONTROL & (category))) \
  281. { \
  282. if (trcid == 0) \
  283. osiTracePubBasic(module, category, OSI_VA_NARGS(__VA_ARGS__), fmt, ##__VA_ARGS__); \
  284. else \
  285. osiTracePubIdBasic(module, category, OSI_VA_NARGS(__VA_ARGS__), trcid, ##__VA_ARGS__); \
  286. } \
  287. } while (0)
  288. #define __OSI_PUB_TRACEX(module, category, partype, trcid, fmt, ...) \
  289. do \
  290. { \
  291. if ((OSI_TRACE_PUB_MODULE_CTRL & (module)) && (OSI_TRACE_CATEGORY_CONTROL & (category))) \
  292. { \
  293. if (trcid == 0) \
  294. osiTracePubEx(module, category, partype, fmt, ##__VA_ARGS__); \
  295. else \
  296. osiTracePubIdEx(module, category, partype, trcid, ##__VA_ARGS__); \
  297. } \
  298. } while (0)
  299. #define __OSI_LTE_TRACE(module, category, trcid, fmt, ...) \
  300. do \
  301. { \
  302. if ((OSI_TRACE_PUB_MODULE_CTRL & (module)) && (OSI_TRACE_CATEGORY_CONTROL & (category))) \
  303. { \
  304. if (trcid == 0) \
  305. osiTraceLteBasic(module, category, OSI_VA_NARGS(__VA_ARGS__), fmt, ##__VA_ARGS__); \
  306. else \
  307. osiTraceLteIdBasic(module, category, OSI_VA_NARGS(__VA_ARGS__), trcid, ##__VA_ARGS__); \
  308. } \
  309. } while (0)
  310. #define __OSI_LTE_TRACEX(module, category, partype, trcid, fmt, ...) \
  311. do \
  312. { \
  313. if ((OSI_TRACE_LTE_MODULE_CTRL & (module)) && (OSI_TRACE_CATEGORY_CONTROL & (category))) \
  314. { \
  315. if (trcid == 0) \
  316. osiTraceLteEx(module, category, partype, fmt, ##__VA_ARGS__); \
  317. else \
  318. osiTraceLteIdEx(module, category, partype, trcid, ##__VA_ARGS__); \
  319. } \
  320. } while (0)
  321. #define __OSI_TRACE(trcid, fmt, ...) \
  322. do \
  323. { \
  324. if (trcid == 0) \
  325. osiTraceTraBasic(OSI_VA_NARGS(__VA_ARGS__), fmt, ##__VA_ARGS__); \
  326. else \
  327. osiTraceTraIdBasic(OSI_VA_NARGS(__VA_ARGS__), trcid, ##__VA_ARGS__); \
  328. } while (0)
  329. #define __OSI_TRACEX(partype, trcid, fmt, ...) \
  330. do \
  331. { \
  332. if (trcid == 0) \
  333. osiTraceTraEx(partype, fmt, ##__VA_ARGS__); \
  334. else \
  335. osiTraceTraIdEx(partype, trcid, ##__VA_ARGS__); \
  336. } while (0)
  337. #endif
  338. #define __OSI_LOGPAR_IMP2(count, ...) __OSI_LOGPAR_X##count(__VA_ARGS__)
  339. #define __OSI_LOGPAR_IMP1(count, ...) __OSI_LOGPAR_IMP2(count, __VA_ARGS__)
  340. #define __OSI_LOGPAR(...) __OSI_LOGPAR_IMP1(OSI_VA_NARGS(__VA_ARGS__), __VA_ARGS__)
  341. #define __OSI_LOGPAR_POS(n, p) (__OSI_LOGPAR_##p << (n * 4))
  342. #define __OSI_LOGPAR_X1(a) (__OSI_LOGPAR_POS(0, a))
  343. #define __OSI_LOGPAR_X2(a, b) (__OSI_LOGPAR_POS(0, a) | __OSI_LOGPAR_POS(1, b))
  344. #define __OSI_LOGPAR_X3(a, b, c) (__OSI_LOGPAR_POS(0, a) | __OSI_LOGPAR_POS(1, b) | __OSI_LOGPAR_POS(2, c))
  345. #define __OSI_LOGPAR_X4(a, b, c, d) (__OSI_LOGPAR_POS(0, a) | __OSI_LOGPAR_POS(1, b) | __OSI_LOGPAR_POS(2, c) | __OSI_LOGPAR_POS(3, d))
  346. #define __OSI_LOGPAR_X5(a, b, c, d, e) (__OSI_LOGPAR_POS(0, a) | __OSI_LOGPAR_POS(1, b) | __OSI_LOGPAR_POS(2, c) | __OSI_LOGPAR_POS(3, d) | __OSI_LOGPAR_POS(4, e))
  347. #define __OSI_LOGPAR_X6(a, b, c, d, e, f) (__OSI_LOGPAR_POS(0, a) | __OSI_LOGPAR_POS(1, b) | __OSI_LOGPAR_POS(2, c) | __OSI_LOGPAR_POS(3, d) | __OSI_LOGPAR_POS(4, e) | __OSI_LOGPAR_POS(5, f))
  348. #define __OSI_LOGPAR_X7(a, b, c, d, e, f, g) (__OSI_LOGPAR_POS(0, a) | __OSI_LOGPAR_POS(1, b) | __OSI_LOGPAR_POS(2, c) | __OSI_LOGPAR_POS(3, d) | __OSI_LOGPAR_POS(4, e) | __OSI_LOGPAR_POS(5, f) | __OSI_LOGPAR_POS(6, g))
  349. #define __OSI_LOGPAR_X8(a, b, c, d, e, f, g, h) (__OSI_LOGPAR_POS(0, a) | __OSI_LOGPAR_POS(1, b) | __OSI_LOGPAR_POS(2, c) | __OSI_LOGPAR_POS(3, d) | __OSI_LOGPAR_POS(4, e) | __OSI_LOGPAR_POS(5, f) | __OSI_LOGPAR_POS(6, g) | __OSI_LOGPAR_POS(7, h))
  350. /*
  351. for a in I D F S M; do
  352. echo "#define OSI_LOGPAR_${a} __OSI_LOGPAR_X1($a)"
  353. for b in I D F S M; do
  354. echo "#define OSI_LOGPAR_${a}${b} __OSI_LOGPAR_X2($a, $b)"
  355. for c in I D F S M; do
  356. echo "#define OSI_LOGPAR_${a}${b}${c} __OSI_LOGPAR_X3($a, $b, $c)"
  357. for d in I D F S M; do
  358. echo "#define OSI_LOGPAR_${a}${b}${c}${d} __OSI_LOGPAR_X4($a, $b, $c, $d)"
  359. done
  360. done
  361. done
  362. done
  363. */
  364. #define OSI_LOGPAR_I __OSI_LOGPAR_X1(I)
  365. #define OSI_LOGPAR_II __OSI_LOGPAR_X2(I, I)
  366. #define OSI_LOGPAR_III __OSI_LOGPAR_X3(I, I, I)
  367. #define OSI_LOGPAR_IIII __OSI_LOGPAR_X4(I, I, I, I)
  368. #define OSI_LOGPAR_IIID __OSI_LOGPAR_X4(I, I, I, D)
  369. #define OSI_LOGPAR_IIIF __OSI_LOGPAR_X4(I, I, I, F)
  370. #define OSI_LOGPAR_IIIS __OSI_LOGPAR_X4(I, I, I, S)
  371. #define OSI_LOGPAR_IIIM __OSI_LOGPAR_X4(I, I, I, M)
  372. #define OSI_LOGPAR_IID __OSI_LOGPAR_X3(I, I, D)
  373. #define OSI_LOGPAR_IIDI __OSI_LOGPAR_X4(I, I, D, I)
  374. #define OSI_LOGPAR_IIDD __OSI_LOGPAR_X4(I, I, D, D)
  375. #define OSI_LOGPAR_IIDF __OSI_LOGPAR_X4(I, I, D, F)
  376. #define OSI_LOGPAR_IIDS __OSI_LOGPAR_X4(I, I, D, S)
  377. #define OSI_LOGPAR_IIDM __OSI_LOGPAR_X4(I, I, D, M)
  378. #define OSI_LOGPAR_IIF __OSI_LOGPAR_X3(I, I, F)
  379. #define OSI_LOGPAR_IIFI __OSI_LOGPAR_X4(I, I, F, I)
  380. #define OSI_LOGPAR_IIFD __OSI_LOGPAR_X4(I, I, F, D)
  381. #define OSI_LOGPAR_IIFF __OSI_LOGPAR_X4(I, I, F, F)
  382. #define OSI_LOGPAR_IIFS __OSI_LOGPAR_X4(I, I, F, S)
  383. #define OSI_LOGPAR_IIFM __OSI_LOGPAR_X4(I, I, F, M)
  384. #define OSI_LOGPAR_IIS __OSI_LOGPAR_X3(I, I, S)
  385. #define OSI_LOGPAR_IISI __OSI_LOGPAR_X4(I, I, S, I)
  386. #define OSI_LOGPAR_IISD __OSI_LOGPAR_X4(I, I, S, D)
  387. #define OSI_LOGPAR_IISF __OSI_LOGPAR_X4(I, I, S, F)
  388. #define OSI_LOGPAR_IISS __OSI_LOGPAR_X4(I, I, S, S)
  389. #define OSI_LOGPAR_IISM __OSI_LOGPAR_X4(I, I, S, M)
  390. #define OSI_LOGPAR_IIM __OSI_LOGPAR_X3(I, I, M)
  391. #define OSI_LOGPAR_IIMI __OSI_LOGPAR_X4(I, I, M, I)
  392. #define OSI_LOGPAR_IIMD __OSI_LOGPAR_X4(I, I, M, D)
  393. #define OSI_LOGPAR_IIMF __OSI_LOGPAR_X4(I, I, M, F)
  394. #define OSI_LOGPAR_IIMS __OSI_LOGPAR_X4(I, I, M, S)
  395. #define OSI_LOGPAR_IIMM __OSI_LOGPAR_X4(I, I, M, M)
  396. #define OSI_LOGPAR_ID __OSI_LOGPAR_X2(I, D)
  397. #define OSI_LOGPAR_IDI __OSI_LOGPAR_X3(I, D, I)
  398. #define OSI_LOGPAR_IDII __OSI_LOGPAR_X4(I, D, I, I)
  399. #define OSI_LOGPAR_IDID __OSI_LOGPAR_X4(I, D, I, D)
  400. #define OSI_LOGPAR_IDIF __OSI_LOGPAR_X4(I, D, I, F)
  401. #define OSI_LOGPAR_IDIS __OSI_LOGPAR_X4(I, D, I, S)
  402. #define OSI_LOGPAR_IDIM __OSI_LOGPAR_X4(I, D, I, M)
  403. #define OSI_LOGPAR_IDD __OSI_LOGPAR_X3(I, D, D)
  404. #define OSI_LOGPAR_IDDI __OSI_LOGPAR_X4(I, D, D, I)
  405. #define OSI_LOGPAR_IDDD __OSI_LOGPAR_X4(I, D, D, D)
  406. #define OSI_LOGPAR_IDDF __OSI_LOGPAR_X4(I, D, D, F)
  407. #define OSI_LOGPAR_IDDS __OSI_LOGPAR_X4(I, D, D, S)
  408. #define OSI_LOGPAR_IDDM __OSI_LOGPAR_X4(I, D, D, M)
  409. #define OSI_LOGPAR_IDF __OSI_LOGPAR_X3(I, D, F)
  410. #define OSI_LOGPAR_IDFI __OSI_LOGPAR_X4(I, D, F, I)
  411. #define OSI_LOGPAR_IDFD __OSI_LOGPAR_X4(I, D, F, D)
  412. #define OSI_LOGPAR_IDFF __OSI_LOGPAR_X4(I, D, F, F)
  413. #define OSI_LOGPAR_IDFS __OSI_LOGPAR_X4(I, D, F, S)
  414. #define OSI_LOGPAR_IDFM __OSI_LOGPAR_X4(I, D, F, M)
  415. #define OSI_LOGPAR_IDS __OSI_LOGPAR_X3(I, D, S)
  416. #define OSI_LOGPAR_IDSI __OSI_LOGPAR_X4(I, D, S, I)
  417. #define OSI_LOGPAR_IDSD __OSI_LOGPAR_X4(I, D, S, D)
  418. #define OSI_LOGPAR_IDSF __OSI_LOGPAR_X4(I, D, S, F)
  419. #define OSI_LOGPAR_IDSS __OSI_LOGPAR_X4(I, D, S, S)
  420. #define OSI_LOGPAR_IDSM __OSI_LOGPAR_X4(I, D, S, M)
  421. #define OSI_LOGPAR_IDM __OSI_LOGPAR_X3(I, D, M)
  422. #define OSI_LOGPAR_IDMI __OSI_LOGPAR_X4(I, D, M, I)
  423. #define OSI_LOGPAR_IDMD __OSI_LOGPAR_X4(I, D, M, D)
  424. #define OSI_LOGPAR_IDMF __OSI_LOGPAR_X4(I, D, M, F)
  425. #define OSI_LOGPAR_IDMS __OSI_LOGPAR_X4(I, D, M, S)
  426. #define OSI_LOGPAR_IDMM __OSI_LOGPAR_X4(I, D, M, M)
  427. #define OSI_LOGPAR_IF __OSI_LOGPAR_X2(I, F)
  428. #define OSI_LOGPAR_IFI __OSI_LOGPAR_X3(I, F, I)
  429. #define OSI_LOGPAR_IFII __OSI_LOGPAR_X4(I, F, I, I)
  430. #define OSI_LOGPAR_IFID __OSI_LOGPAR_X4(I, F, I, D)
  431. #define OSI_LOGPAR_IFIF __OSI_LOGPAR_X4(I, F, I, F)
  432. #define OSI_LOGPAR_IFIS __OSI_LOGPAR_X4(I, F, I, S)
  433. #define OSI_LOGPAR_IFIM __OSI_LOGPAR_X4(I, F, I, M)
  434. #define OSI_LOGPAR_IFD __OSI_LOGPAR_X3(I, F, D)
  435. #define OSI_LOGPAR_IFDI __OSI_LOGPAR_X4(I, F, D, I)
  436. #define OSI_LOGPAR_IFDD __OSI_LOGPAR_X4(I, F, D, D)
  437. #define OSI_LOGPAR_IFDF __OSI_LOGPAR_X4(I, F, D, F)
  438. #define OSI_LOGPAR_IFDS __OSI_LOGPAR_X4(I, F, D, S)
  439. #define OSI_LOGPAR_IFDM __OSI_LOGPAR_X4(I, F, D, M)
  440. #define OSI_LOGPAR_IFF __OSI_LOGPAR_X3(I, F, F)
  441. #define OSI_LOGPAR_IFFI __OSI_LOGPAR_X4(I, F, F, I)
  442. #define OSI_LOGPAR_IFFD __OSI_LOGPAR_X4(I, F, F, D)
  443. #define OSI_LOGPAR_IFFF __OSI_LOGPAR_X4(I, F, F, F)
  444. #define OSI_LOGPAR_IFFS __OSI_LOGPAR_X4(I, F, F, S)
  445. #define OSI_LOGPAR_IFFM __OSI_LOGPAR_X4(I, F, F, M)
  446. #define OSI_LOGPAR_IFS __OSI_LOGPAR_X3(I, F, S)
  447. #define OSI_LOGPAR_IFSI __OSI_LOGPAR_X4(I, F, S, I)
  448. #define OSI_LOGPAR_IFSD __OSI_LOGPAR_X4(I, F, S, D)
  449. #define OSI_LOGPAR_IFSF __OSI_LOGPAR_X4(I, F, S, F)
  450. #define OSI_LOGPAR_IFSS __OSI_LOGPAR_X4(I, F, S, S)
  451. #define OSI_LOGPAR_IFSM __OSI_LOGPAR_X4(I, F, S, M)
  452. #define OSI_LOGPAR_IFM __OSI_LOGPAR_X3(I, F, M)
  453. #define OSI_LOGPAR_IFMI __OSI_LOGPAR_X4(I, F, M, I)
  454. #define OSI_LOGPAR_IFMD __OSI_LOGPAR_X4(I, F, M, D)
  455. #define OSI_LOGPAR_IFMF __OSI_LOGPAR_X4(I, F, M, F)
  456. #define OSI_LOGPAR_IFMS __OSI_LOGPAR_X4(I, F, M, S)
  457. #define OSI_LOGPAR_IFMM __OSI_LOGPAR_X4(I, F, M, M)
  458. #define OSI_LOGPAR_IS __OSI_LOGPAR_X2(I, S)
  459. #define OSI_LOGPAR_ISI __OSI_LOGPAR_X3(I, S, I)
  460. #define OSI_LOGPAR_ISII __OSI_LOGPAR_X4(I, S, I, I)
  461. #define OSI_LOGPAR_ISID __OSI_LOGPAR_X4(I, S, I, D)
  462. #define OSI_LOGPAR_ISIF __OSI_LOGPAR_X4(I, S, I, F)
  463. #define OSI_LOGPAR_ISIS __OSI_LOGPAR_X4(I, S, I, S)
  464. #define OSI_LOGPAR_ISIM __OSI_LOGPAR_X4(I, S, I, M)
  465. #define OSI_LOGPAR_ISD __OSI_LOGPAR_X3(I, S, D)
  466. #define OSI_LOGPAR_ISDI __OSI_LOGPAR_X4(I, S, D, I)
  467. #define OSI_LOGPAR_ISDD __OSI_LOGPAR_X4(I, S, D, D)
  468. #define OSI_LOGPAR_ISDF __OSI_LOGPAR_X4(I, S, D, F)
  469. #define OSI_LOGPAR_ISDS __OSI_LOGPAR_X4(I, S, D, S)
  470. #define OSI_LOGPAR_ISDM __OSI_LOGPAR_X4(I, S, D, M)
  471. #define OSI_LOGPAR_ISF __OSI_LOGPAR_X3(I, S, F)
  472. #define OSI_LOGPAR_ISFI __OSI_LOGPAR_X4(I, S, F, I)
  473. #define OSI_LOGPAR_ISFD __OSI_LOGPAR_X4(I, S, F, D)
  474. #define OSI_LOGPAR_ISFF __OSI_LOGPAR_X4(I, S, F, F)
  475. #define OSI_LOGPAR_ISFS __OSI_LOGPAR_X4(I, S, F, S)
  476. #define OSI_LOGPAR_ISFM __OSI_LOGPAR_X4(I, S, F, M)
  477. #define OSI_LOGPAR_ISS __OSI_LOGPAR_X3(I, S, S)
  478. #define OSI_LOGPAR_ISSI __OSI_LOGPAR_X4(I, S, S, I)
  479. #define OSI_LOGPAR_ISSD __OSI_LOGPAR_X4(I, S, S, D)
  480. #define OSI_LOGPAR_ISSF __OSI_LOGPAR_X4(I, S, S, F)
  481. #define OSI_LOGPAR_ISSS __OSI_LOGPAR_X4(I, S, S, S)
  482. #define OSI_LOGPAR_ISSM __OSI_LOGPAR_X4(I, S, S, M)
  483. #define OSI_LOGPAR_ISM __OSI_LOGPAR_X3(I, S, M)
  484. #define OSI_LOGPAR_ISMI __OSI_LOGPAR_X4(I, S, M, I)
  485. #define OSI_LOGPAR_ISMD __OSI_LOGPAR_X4(I, S, M, D)
  486. #define OSI_LOGPAR_ISMF __OSI_LOGPAR_X4(I, S, M, F)
  487. #define OSI_LOGPAR_ISMS __OSI_LOGPAR_X4(I, S, M, S)
  488. #define OSI_LOGPAR_ISMM __OSI_LOGPAR_X4(I, S, M, M)
  489. #define OSI_LOGPAR_IM __OSI_LOGPAR_X2(I, M)
  490. #define OSI_LOGPAR_IMI __OSI_LOGPAR_X3(I, M, I)
  491. #define OSI_LOGPAR_IMII __OSI_LOGPAR_X4(I, M, I, I)
  492. #define OSI_LOGPAR_IMID __OSI_LOGPAR_X4(I, M, I, D)
  493. #define OSI_LOGPAR_IMIF __OSI_LOGPAR_X4(I, M, I, F)
  494. #define OSI_LOGPAR_IMIS __OSI_LOGPAR_X4(I, M, I, S)
  495. #define OSI_LOGPAR_IMIM __OSI_LOGPAR_X4(I, M, I, M)
  496. #define OSI_LOGPAR_IMD __OSI_LOGPAR_X3(I, M, D)
  497. #define OSI_LOGPAR_IMDI __OSI_LOGPAR_X4(I, M, D, I)
  498. #define OSI_LOGPAR_IMDD __OSI_LOGPAR_X4(I, M, D, D)
  499. #define OSI_LOGPAR_IMDF __OSI_LOGPAR_X4(I, M, D, F)
  500. #define OSI_LOGPAR_IMDS __OSI_LOGPAR_X4(I, M, D, S)
  501. #define OSI_LOGPAR_IMDM __OSI_LOGPAR_X4(I, M, D, M)
  502. #define OSI_LOGPAR_IMF __OSI_LOGPAR_X3(I, M, F)
  503. #define OSI_LOGPAR_IMFI __OSI_LOGPAR_X4(I, M, F, I)
  504. #define OSI_LOGPAR_IMFD __OSI_LOGPAR_X4(I, M, F, D)
  505. #define OSI_LOGPAR_IMFF __OSI_LOGPAR_X4(I, M, F, F)
  506. #define OSI_LOGPAR_IMFS __OSI_LOGPAR_X4(I, M, F, S)
  507. #define OSI_LOGPAR_IMFM __OSI_LOGPAR_X4(I, M, F, M)
  508. #define OSI_LOGPAR_IMS __OSI_LOGPAR_X3(I, M, S)
  509. #define OSI_LOGPAR_IMSI __OSI_LOGPAR_X4(I, M, S, I)
  510. #define OSI_LOGPAR_IMSD __OSI_LOGPAR_X4(I, M, S, D)
  511. #define OSI_LOGPAR_IMSF __OSI_LOGPAR_X4(I, M, S, F)
  512. #define OSI_LOGPAR_IMSS __OSI_LOGPAR_X4(I, M, S, S)
  513. #define OSI_LOGPAR_IMSM __OSI_LOGPAR_X4(I, M, S, M)
  514. #define OSI_LOGPAR_IMM __OSI_LOGPAR_X3(I, M, M)
  515. #define OSI_LOGPAR_IMMI __OSI_LOGPAR_X4(I, M, M, I)
  516. #define OSI_LOGPAR_IMMD __OSI_LOGPAR_X4(I, M, M, D)
  517. #define OSI_LOGPAR_IMMF __OSI_LOGPAR_X4(I, M, M, F)
  518. #define OSI_LOGPAR_IMMS __OSI_LOGPAR_X4(I, M, M, S)
  519. #define OSI_LOGPAR_IMMM __OSI_LOGPAR_X4(I, M, M, M)
  520. #define OSI_LOGPAR_D __OSI_LOGPAR_X1(D)
  521. #define OSI_LOGPAR_DI __OSI_LOGPAR_X2(D, I)
  522. #define OSI_LOGPAR_DII __OSI_LOGPAR_X3(D, I, I)
  523. #define OSI_LOGPAR_DIII __OSI_LOGPAR_X4(D, I, I, I)
  524. #define OSI_LOGPAR_DIID __OSI_LOGPAR_X4(D, I, I, D)
  525. #define OSI_LOGPAR_DIIF __OSI_LOGPAR_X4(D, I, I, F)
  526. #define OSI_LOGPAR_DIIS __OSI_LOGPAR_X4(D, I, I, S)
  527. #define OSI_LOGPAR_DIIM __OSI_LOGPAR_X4(D, I, I, M)
  528. #define OSI_LOGPAR_DID __OSI_LOGPAR_X3(D, I, D)
  529. #define OSI_LOGPAR_DIDI __OSI_LOGPAR_X4(D, I, D, I)
  530. #define OSI_LOGPAR_DIDD __OSI_LOGPAR_X4(D, I, D, D)
  531. #define OSI_LOGPAR_DIDF __OSI_LOGPAR_X4(D, I, D, F)
  532. #define OSI_LOGPAR_DIDS __OSI_LOGPAR_X4(D, I, D, S)
  533. #define OSI_LOGPAR_DIDM __OSI_LOGPAR_X4(D, I, D, M)
  534. #define OSI_LOGPAR_DIF __OSI_LOGPAR_X3(D, I, F)
  535. #define OSI_LOGPAR_DIFI __OSI_LOGPAR_X4(D, I, F, I)
  536. #define OSI_LOGPAR_DIFD __OSI_LOGPAR_X4(D, I, F, D)
  537. #define OSI_LOGPAR_DIFF __OSI_LOGPAR_X4(D, I, F, F)
  538. #define OSI_LOGPAR_DIFS __OSI_LOGPAR_X4(D, I, F, S)
  539. #define OSI_LOGPAR_DIFM __OSI_LOGPAR_X4(D, I, F, M)
  540. #define OSI_LOGPAR_DIS __OSI_LOGPAR_X3(D, I, S)
  541. #define OSI_LOGPAR_DISI __OSI_LOGPAR_X4(D, I, S, I)
  542. #define OSI_LOGPAR_DISD __OSI_LOGPAR_X4(D, I, S, D)
  543. #define OSI_LOGPAR_DISF __OSI_LOGPAR_X4(D, I, S, F)
  544. #define OSI_LOGPAR_DISS __OSI_LOGPAR_X4(D, I, S, S)
  545. #define OSI_LOGPAR_DISM __OSI_LOGPAR_X4(D, I, S, M)
  546. #define OSI_LOGPAR_DIM __OSI_LOGPAR_X3(D, I, M)
  547. #define OSI_LOGPAR_DIMI __OSI_LOGPAR_X4(D, I, M, I)
  548. #define OSI_LOGPAR_DIMD __OSI_LOGPAR_X4(D, I, M, D)
  549. #define OSI_LOGPAR_DIMF __OSI_LOGPAR_X4(D, I, M, F)
  550. #define OSI_LOGPAR_DIMS __OSI_LOGPAR_X4(D, I, M, S)
  551. #define OSI_LOGPAR_DIMM __OSI_LOGPAR_X4(D, I, M, M)
  552. #define OSI_LOGPAR_DD __OSI_LOGPAR_X2(D, D)
  553. #define OSI_LOGPAR_DDI __OSI_LOGPAR_X3(D, D, I)
  554. #define OSI_LOGPAR_DDII __OSI_LOGPAR_X4(D, D, I, I)
  555. #define OSI_LOGPAR_DDID __OSI_LOGPAR_X4(D, D, I, D)
  556. #define OSI_LOGPAR_DDIF __OSI_LOGPAR_X4(D, D, I, F)
  557. #define OSI_LOGPAR_DDIS __OSI_LOGPAR_X4(D, D, I, S)
  558. #define OSI_LOGPAR_DDIM __OSI_LOGPAR_X4(D, D, I, M)
  559. #define OSI_LOGPAR_DDD __OSI_LOGPAR_X3(D, D, D)
  560. #define OSI_LOGPAR_DDDI __OSI_LOGPAR_X4(D, D, D, I)
  561. #define OSI_LOGPAR_DDDD __OSI_LOGPAR_X4(D, D, D, D)
  562. #define OSI_LOGPAR_DDDF __OSI_LOGPAR_X4(D, D, D, F)
  563. #define OSI_LOGPAR_DDDS __OSI_LOGPAR_X4(D, D, D, S)
  564. #define OSI_LOGPAR_DDDM __OSI_LOGPAR_X4(D, D, D, M)
  565. #define OSI_LOGPAR_DDF __OSI_LOGPAR_X3(D, D, F)
  566. #define OSI_LOGPAR_DDFI __OSI_LOGPAR_X4(D, D, F, I)
  567. #define OSI_LOGPAR_DDFD __OSI_LOGPAR_X4(D, D, F, D)
  568. #define OSI_LOGPAR_DDFF __OSI_LOGPAR_X4(D, D, F, F)
  569. #define OSI_LOGPAR_DDFS __OSI_LOGPAR_X4(D, D, F, S)
  570. #define OSI_LOGPAR_DDFM __OSI_LOGPAR_X4(D, D, F, M)
  571. #define OSI_LOGPAR_DDS __OSI_LOGPAR_X3(D, D, S)
  572. #define OSI_LOGPAR_DDSI __OSI_LOGPAR_X4(D, D, S, I)
  573. #define OSI_LOGPAR_DDSD __OSI_LOGPAR_X4(D, D, S, D)
  574. #define OSI_LOGPAR_DDSF __OSI_LOGPAR_X4(D, D, S, F)
  575. #define OSI_LOGPAR_DDSS __OSI_LOGPAR_X4(D, D, S, S)
  576. #define OSI_LOGPAR_DDSM __OSI_LOGPAR_X4(D, D, S, M)
  577. #define OSI_LOGPAR_DDM __OSI_LOGPAR_X3(D, D, M)
  578. #define OSI_LOGPAR_DDMI __OSI_LOGPAR_X4(D, D, M, I)
  579. #define OSI_LOGPAR_DDMD __OSI_LOGPAR_X4(D, D, M, D)
  580. #define OSI_LOGPAR_DDMF __OSI_LOGPAR_X4(D, D, M, F)
  581. #define OSI_LOGPAR_DDMS __OSI_LOGPAR_X4(D, D, M, S)
  582. #define OSI_LOGPAR_DDMM __OSI_LOGPAR_X4(D, D, M, M)
  583. #define OSI_LOGPAR_DF __OSI_LOGPAR_X2(D, F)
  584. #define OSI_LOGPAR_DFI __OSI_LOGPAR_X3(D, F, I)
  585. #define OSI_LOGPAR_DFII __OSI_LOGPAR_X4(D, F, I, I)
  586. #define OSI_LOGPAR_DFID __OSI_LOGPAR_X4(D, F, I, D)
  587. #define OSI_LOGPAR_DFIF __OSI_LOGPAR_X4(D, F, I, F)
  588. #define OSI_LOGPAR_DFIS __OSI_LOGPAR_X4(D, F, I, S)
  589. #define OSI_LOGPAR_DFIM __OSI_LOGPAR_X4(D, F, I, M)
  590. #define OSI_LOGPAR_DFD __OSI_LOGPAR_X3(D, F, D)
  591. #define OSI_LOGPAR_DFDI __OSI_LOGPAR_X4(D, F, D, I)
  592. #define OSI_LOGPAR_DFDD __OSI_LOGPAR_X4(D, F, D, D)
  593. #define OSI_LOGPAR_DFDF __OSI_LOGPAR_X4(D, F, D, F)
  594. #define OSI_LOGPAR_DFDS __OSI_LOGPAR_X4(D, F, D, S)
  595. #define OSI_LOGPAR_DFDM __OSI_LOGPAR_X4(D, F, D, M)
  596. #define OSI_LOGPAR_DFF __OSI_LOGPAR_X3(D, F, F)
  597. #define OSI_LOGPAR_DFFI __OSI_LOGPAR_X4(D, F, F, I)
  598. #define OSI_LOGPAR_DFFD __OSI_LOGPAR_X4(D, F, F, D)
  599. #define OSI_LOGPAR_DFFF __OSI_LOGPAR_X4(D, F, F, F)
  600. #define OSI_LOGPAR_DFFS __OSI_LOGPAR_X4(D, F, F, S)
  601. #define OSI_LOGPAR_DFFM __OSI_LOGPAR_X4(D, F, F, M)
  602. #define OSI_LOGPAR_DFS __OSI_LOGPAR_X3(D, F, S)
  603. #define OSI_LOGPAR_DFSI __OSI_LOGPAR_X4(D, F, S, I)
  604. #define OSI_LOGPAR_DFSD __OSI_LOGPAR_X4(D, F, S, D)
  605. #define OSI_LOGPAR_DFSF __OSI_LOGPAR_X4(D, F, S, F)
  606. #define OSI_LOGPAR_DFSS __OSI_LOGPAR_X4(D, F, S, S)
  607. #define OSI_LOGPAR_DFSM __OSI_LOGPAR_X4(D, F, S, M)
  608. #define OSI_LOGPAR_DFM __OSI_LOGPAR_X3(D, F, M)
  609. #define OSI_LOGPAR_DFMI __OSI_LOGPAR_X4(D, F, M, I)
  610. #define OSI_LOGPAR_DFMD __OSI_LOGPAR_X4(D, F, M, D)
  611. #define OSI_LOGPAR_DFMF __OSI_LOGPAR_X4(D, F, M, F)
  612. #define OSI_LOGPAR_DFMS __OSI_LOGPAR_X4(D, F, M, S)
  613. #define OSI_LOGPAR_DFMM __OSI_LOGPAR_X4(D, F, M, M)
  614. #define OSI_LOGPAR_DS __OSI_LOGPAR_X2(D, S)
  615. #define OSI_LOGPAR_DSI __OSI_LOGPAR_X3(D, S, I)
  616. #define OSI_LOGPAR_DSII __OSI_LOGPAR_X4(D, S, I, I)
  617. #define OSI_LOGPAR_DSID __OSI_LOGPAR_X4(D, S, I, D)
  618. #define OSI_LOGPAR_DSIF __OSI_LOGPAR_X4(D, S, I, F)
  619. #define OSI_LOGPAR_DSIS __OSI_LOGPAR_X4(D, S, I, S)
  620. #define OSI_LOGPAR_DSIM __OSI_LOGPAR_X4(D, S, I, M)
  621. #define OSI_LOGPAR_DSD __OSI_LOGPAR_X3(D, S, D)
  622. #define OSI_LOGPAR_DSDI __OSI_LOGPAR_X4(D, S, D, I)
  623. #define OSI_LOGPAR_DSDD __OSI_LOGPAR_X4(D, S, D, D)
  624. #define OSI_LOGPAR_DSDF __OSI_LOGPAR_X4(D, S, D, F)
  625. #define OSI_LOGPAR_DSDS __OSI_LOGPAR_X4(D, S, D, S)
  626. #define OSI_LOGPAR_DSDM __OSI_LOGPAR_X4(D, S, D, M)
  627. #define OSI_LOGPAR_DSF __OSI_LOGPAR_X3(D, S, F)
  628. #define OSI_LOGPAR_DSFI __OSI_LOGPAR_X4(D, S, F, I)
  629. #define OSI_LOGPAR_DSFD __OSI_LOGPAR_X4(D, S, F, D)
  630. #define OSI_LOGPAR_DSFF __OSI_LOGPAR_X4(D, S, F, F)
  631. #define OSI_LOGPAR_DSFS __OSI_LOGPAR_X4(D, S, F, S)
  632. #define OSI_LOGPAR_DSFM __OSI_LOGPAR_X4(D, S, F, M)
  633. #define OSI_LOGPAR_DSS __OSI_LOGPAR_X3(D, S, S)
  634. #define OSI_LOGPAR_DSSI __OSI_LOGPAR_X4(D, S, S, I)
  635. #define OSI_LOGPAR_DSSD __OSI_LOGPAR_X4(D, S, S, D)
  636. #define OSI_LOGPAR_DSSF __OSI_LOGPAR_X4(D, S, S, F)
  637. #define OSI_LOGPAR_DSSS __OSI_LOGPAR_X4(D, S, S, S)
  638. #define OSI_LOGPAR_DSSM __OSI_LOGPAR_X4(D, S, S, M)
  639. #define OSI_LOGPAR_DSM __OSI_LOGPAR_X3(D, S, M)
  640. #define OSI_LOGPAR_DSMI __OSI_LOGPAR_X4(D, S, M, I)
  641. #define OSI_LOGPAR_DSMD __OSI_LOGPAR_X4(D, S, M, D)
  642. #define OSI_LOGPAR_DSMF __OSI_LOGPAR_X4(D, S, M, F)
  643. #define OSI_LOGPAR_DSMS __OSI_LOGPAR_X4(D, S, M, S)
  644. #define OSI_LOGPAR_DSMM __OSI_LOGPAR_X4(D, S, M, M)
  645. #define OSI_LOGPAR_DM __OSI_LOGPAR_X2(D, M)
  646. #define OSI_LOGPAR_DMI __OSI_LOGPAR_X3(D, M, I)
  647. #define OSI_LOGPAR_DMII __OSI_LOGPAR_X4(D, M, I, I)
  648. #define OSI_LOGPAR_DMID __OSI_LOGPAR_X4(D, M, I, D)
  649. #define OSI_LOGPAR_DMIF __OSI_LOGPAR_X4(D, M, I, F)
  650. #define OSI_LOGPAR_DMIS __OSI_LOGPAR_X4(D, M, I, S)
  651. #define OSI_LOGPAR_DMIM __OSI_LOGPAR_X4(D, M, I, M)
  652. #define OSI_LOGPAR_DMD __OSI_LOGPAR_X3(D, M, D)
  653. #define OSI_LOGPAR_DMDI __OSI_LOGPAR_X4(D, M, D, I)
  654. #define OSI_LOGPAR_DMDD __OSI_LOGPAR_X4(D, M, D, D)
  655. #define OSI_LOGPAR_DMDF __OSI_LOGPAR_X4(D, M, D, F)
  656. #define OSI_LOGPAR_DMDS __OSI_LOGPAR_X4(D, M, D, S)
  657. #define OSI_LOGPAR_DMDM __OSI_LOGPAR_X4(D, M, D, M)
  658. #define OSI_LOGPAR_DMF __OSI_LOGPAR_X3(D, M, F)
  659. #define OSI_LOGPAR_DMFI __OSI_LOGPAR_X4(D, M, F, I)
  660. #define OSI_LOGPAR_DMFD __OSI_LOGPAR_X4(D, M, F, D)
  661. #define OSI_LOGPAR_DMFF __OSI_LOGPAR_X4(D, M, F, F)
  662. #define OSI_LOGPAR_DMFS __OSI_LOGPAR_X4(D, M, F, S)
  663. #define OSI_LOGPAR_DMFM __OSI_LOGPAR_X4(D, M, F, M)
  664. #define OSI_LOGPAR_DMS __OSI_LOGPAR_X3(D, M, S)
  665. #define OSI_LOGPAR_DMSI __OSI_LOGPAR_X4(D, M, S, I)
  666. #define OSI_LOGPAR_DMSD __OSI_LOGPAR_X4(D, M, S, D)
  667. #define OSI_LOGPAR_DMSF __OSI_LOGPAR_X4(D, M, S, F)
  668. #define OSI_LOGPAR_DMSS __OSI_LOGPAR_X4(D, M, S, S)
  669. #define OSI_LOGPAR_DMSM __OSI_LOGPAR_X4(D, M, S, M)
  670. #define OSI_LOGPAR_DMM __OSI_LOGPAR_X3(D, M, M)
  671. #define OSI_LOGPAR_DMMI __OSI_LOGPAR_X4(D, M, M, I)
  672. #define OSI_LOGPAR_DMMD __OSI_LOGPAR_X4(D, M, M, D)
  673. #define OSI_LOGPAR_DMMF __OSI_LOGPAR_X4(D, M, M, F)
  674. #define OSI_LOGPAR_DMMS __OSI_LOGPAR_X4(D, M, M, S)
  675. #define OSI_LOGPAR_DMMM __OSI_LOGPAR_X4(D, M, M, M)
  676. #define OSI_LOGPAR_F __OSI_LOGPAR_X1(F)
  677. #define OSI_LOGPAR_FI __OSI_LOGPAR_X2(F, I)
  678. #define OSI_LOGPAR_FII __OSI_LOGPAR_X3(F, I, I)
  679. #define OSI_LOGPAR_FIII __OSI_LOGPAR_X4(F, I, I, I)
  680. #define OSI_LOGPAR_FIID __OSI_LOGPAR_X4(F, I, I, D)
  681. #define OSI_LOGPAR_FIIF __OSI_LOGPAR_X4(F, I, I, F)
  682. #define OSI_LOGPAR_FIIS __OSI_LOGPAR_X4(F, I, I, S)
  683. #define OSI_LOGPAR_FIIM __OSI_LOGPAR_X4(F, I, I, M)
  684. #define OSI_LOGPAR_FID __OSI_LOGPAR_X3(F, I, D)
  685. #define OSI_LOGPAR_FIDI __OSI_LOGPAR_X4(F, I, D, I)
  686. #define OSI_LOGPAR_FIDD __OSI_LOGPAR_X4(F, I, D, D)
  687. #define OSI_LOGPAR_FIDF __OSI_LOGPAR_X4(F, I, D, F)
  688. #define OSI_LOGPAR_FIDS __OSI_LOGPAR_X4(F, I, D, S)
  689. #define OSI_LOGPAR_FIDM __OSI_LOGPAR_X4(F, I, D, M)
  690. #define OSI_LOGPAR_FIF __OSI_LOGPAR_X3(F, I, F)
  691. #define OSI_LOGPAR_FIFI __OSI_LOGPAR_X4(F, I, F, I)
  692. #define OSI_LOGPAR_FIFD __OSI_LOGPAR_X4(F, I, F, D)
  693. #define OSI_LOGPAR_FIFF __OSI_LOGPAR_X4(F, I, F, F)
  694. #define OSI_LOGPAR_FIFS __OSI_LOGPAR_X4(F, I, F, S)
  695. #define OSI_LOGPAR_FIFM __OSI_LOGPAR_X4(F, I, F, M)
  696. #define OSI_LOGPAR_FIS __OSI_LOGPAR_X3(F, I, S)
  697. #define OSI_LOGPAR_FISI __OSI_LOGPAR_X4(F, I, S, I)
  698. #define OSI_LOGPAR_FISD __OSI_LOGPAR_X4(F, I, S, D)
  699. #define OSI_LOGPAR_FISF __OSI_LOGPAR_X4(F, I, S, F)
  700. #define OSI_LOGPAR_FISS __OSI_LOGPAR_X4(F, I, S, S)
  701. #define OSI_LOGPAR_FISM __OSI_LOGPAR_X4(F, I, S, M)
  702. #define OSI_LOGPAR_FIM __OSI_LOGPAR_X3(F, I, M)
  703. #define OSI_LOGPAR_FIMI __OSI_LOGPAR_X4(F, I, M, I)
  704. #define OSI_LOGPAR_FIMD __OSI_LOGPAR_X4(F, I, M, D)
  705. #define OSI_LOGPAR_FIMF __OSI_LOGPAR_X4(F, I, M, F)
  706. #define OSI_LOGPAR_FIMS __OSI_LOGPAR_X4(F, I, M, S)
  707. #define OSI_LOGPAR_FIMM __OSI_LOGPAR_X4(F, I, M, M)
  708. #define OSI_LOGPAR_FD __OSI_LOGPAR_X2(F, D)
  709. #define OSI_LOGPAR_FDI __OSI_LOGPAR_X3(F, D, I)
  710. #define OSI_LOGPAR_FDII __OSI_LOGPAR_X4(F, D, I, I)
  711. #define OSI_LOGPAR_FDID __OSI_LOGPAR_X4(F, D, I, D)
  712. #define OSI_LOGPAR_FDIF __OSI_LOGPAR_X4(F, D, I, F)
  713. #define OSI_LOGPAR_FDIS __OSI_LOGPAR_X4(F, D, I, S)
  714. #define OSI_LOGPAR_FDIM __OSI_LOGPAR_X4(F, D, I, M)
  715. #define OSI_LOGPAR_FDD __OSI_LOGPAR_X3(F, D, D)
  716. #define OSI_LOGPAR_FDDI __OSI_LOGPAR_X4(F, D, D, I)
  717. #define OSI_LOGPAR_FDDD __OSI_LOGPAR_X4(F, D, D, D)
  718. #define OSI_LOGPAR_FDDF __OSI_LOGPAR_X4(F, D, D, F)
  719. #define OSI_LOGPAR_FDDS __OSI_LOGPAR_X4(F, D, D, S)
  720. #define OSI_LOGPAR_FDDM __OSI_LOGPAR_X4(F, D, D, M)
  721. #define OSI_LOGPAR_FDF __OSI_LOGPAR_X3(F, D, F)
  722. #define OSI_LOGPAR_FDFI __OSI_LOGPAR_X4(F, D, F, I)
  723. #define OSI_LOGPAR_FDFD __OSI_LOGPAR_X4(F, D, F, D)
  724. #define OSI_LOGPAR_FDFF __OSI_LOGPAR_X4(F, D, F, F)
  725. #define OSI_LOGPAR_FDFS __OSI_LOGPAR_X4(F, D, F, S)
  726. #define OSI_LOGPAR_FDFM __OSI_LOGPAR_X4(F, D, F, M)
  727. #define OSI_LOGPAR_FDS __OSI_LOGPAR_X3(F, D, S)
  728. #define OSI_LOGPAR_FDSI __OSI_LOGPAR_X4(F, D, S, I)
  729. #define OSI_LOGPAR_FDSD __OSI_LOGPAR_X4(F, D, S, D)
  730. #define OSI_LOGPAR_FDSF __OSI_LOGPAR_X4(F, D, S, F)
  731. #define OSI_LOGPAR_FDSS __OSI_LOGPAR_X4(F, D, S, S)
  732. #define OSI_LOGPAR_FDSM __OSI_LOGPAR_X4(F, D, S, M)
  733. #define OSI_LOGPAR_FDM __OSI_LOGPAR_X3(F, D, M)
  734. #define OSI_LOGPAR_FDMI __OSI_LOGPAR_X4(F, D, M, I)
  735. #define OSI_LOGPAR_FDMD __OSI_LOGPAR_X4(F, D, M, D)
  736. #define OSI_LOGPAR_FDMF __OSI_LOGPAR_X4(F, D, M, F)
  737. #define OSI_LOGPAR_FDMS __OSI_LOGPAR_X4(F, D, M, S)
  738. #define OSI_LOGPAR_FDMM __OSI_LOGPAR_X4(F, D, M, M)
  739. #define OSI_LOGPAR_FF __OSI_LOGPAR_X2(F, F)
  740. #define OSI_LOGPAR_FFI __OSI_LOGPAR_X3(F, F, I)
  741. #define OSI_LOGPAR_FFII __OSI_LOGPAR_X4(F, F, I, I)
  742. #define OSI_LOGPAR_FFID __OSI_LOGPAR_X4(F, F, I, D)
  743. #define OSI_LOGPAR_FFIF __OSI_LOGPAR_X4(F, F, I, F)
  744. #define OSI_LOGPAR_FFIS __OSI_LOGPAR_X4(F, F, I, S)
  745. #define OSI_LOGPAR_FFIM __OSI_LOGPAR_X4(F, F, I, M)
  746. #define OSI_LOGPAR_FFD __OSI_LOGPAR_X3(F, F, D)
  747. #define OSI_LOGPAR_FFDI __OSI_LOGPAR_X4(F, F, D, I)
  748. #define OSI_LOGPAR_FFDD __OSI_LOGPAR_X4(F, F, D, D)
  749. #define OSI_LOGPAR_FFDF __OSI_LOGPAR_X4(F, F, D, F)
  750. #define OSI_LOGPAR_FFDS __OSI_LOGPAR_X4(F, F, D, S)
  751. #define OSI_LOGPAR_FFDM __OSI_LOGPAR_X4(F, F, D, M)
  752. #define OSI_LOGPAR_FFF __OSI_LOGPAR_X3(F, F, F)
  753. #define OSI_LOGPAR_FFFI __OSI_LOGPAR_X4(F, F, F, I)
  754. #define OSI_LOGPAR_FFFD __OSI_LOGPAR_X4(F, F, F, D)
  755. #define OSI_LOGPAR_FFFF __OSI_LOGPAR_X4(F, F, F, F)
  756. #define OSI_LOGPAR_FFFS __OSI_LOGPAR_X4(F, F, F, S)
  757. #define OSI_LOGPAR_FFFM __OSI_LOGPAR_X4(F, F, F, M)
  758. #define OSI_LOGPAR_FFS __OSI_LOGPAR_X3(F, F, S)
  759. #define OSI_LOGPAR_FFSI __OSI_LOGPAR_X4(F, F, S, I)
  760. #define OSI_LOGPAR_FFSD __OSI_LOGPAR_X4(F, F, S, D)
  761. #define OSI_LOGPAR_FFSF __OSI_LOGPAR_X4(F, F, S, F)
  762. #define OSI_LOGPAR_FFSS __OSI_LOGPAR_X4(F, F, S, S)
  763. #define OSI_LOGPAR_FFSM __OSI_LOGPAR_X4(F, F, S, M)
  764. #define OSI_LOGPAR_FFM __OSI_LOGPAR_X3(F, F, M)
  765. #define OSI_LOGPAR_FFMI __OSI_LOGPAR_X4(F, F, M, I)
  766. #define OSI_LOGPAR_FFMD __OSI_LOGPAR_X4(F, F, M, D)
  767. #define OSI_LOGPAR_FFMF __OSI_LOGPAR_X4(F, F, M, F)
  768. #define OSI_LOGPAR_FFMS __OSI_LOGPAR_X4(F, F, M, S)
  769. #define OSI_LOGPAR_FFMM __OSI_LOGPAR_X4(F, F, M, M)
  770. #define OSI_LOGPAR_FS __OSI_LOGPAR_X2(F, S)
  771. #define OSI_LOGPAR_FSI __OSI_LOGPAR_X3(F, S, I)
  772. #define OSI_LOGPAR_FSII __OSI_LOGPAR_X4(F, S, I, I)
  773. #define OSI_LOGPAR_FSID __OSI_LOGPAR_X4(F, S, I, D)
  774. #define OSI_LOGPAR_FSIF __OSI_LOGPAR_X4(F, S, I, F)
  775. #define OSI_LOGPAR_FSIS __OSI_LOGPAR_X4(F, S, I, S)
  776. #define OSI_LOGPAR_FSIM __OSI_LOGPAR_X4(F, S, I, M)
  777. #define OSI_LOGPAR_FSD __OSI_LOGPAR_X3(F, S, D)
  778. #define OSI_LOGPAR_FSDI __OSI_LOGPAR_X4(F, S, D, I)
  779. #define OSI_LOGPAR_FSDD __OSI_LOGPAR_X4(F, S, D, D)
  780. #define OSI_LOGPAR_FSDF __OSI_LOGPAR_X4(F, S, D, F)
  781. #define OSI_LOGPAR_FSDS __OSI_LOGPAR_X4(F, S, D, S)
  782. #define OSI_LOGPAR_FSDM __OSI_LOGPAR_X4(F, S, D, M)
  783. #define OSI_LOGPAR_FSF __OSI_LOGPAR_X3(F, S, F)
  784. #define OSI_LOGPAR_FSFI __OSI_LOGPAR_X4(F, S, F, I)
  785. #define OSI_LOGPAR_FSFD __OSI_LOGPAR_X4(F, S, F, D)
  786. #define OSI_LOGPAR_FSFF __OSI_LOGPAR_X4(F, S, F, F)
  787. #define OSI_LOGPAR_FSFS __OSI_LOGPAR_X4(F, S, F, S)
  788. #define OSI_LOGPAR_FSFM __OSI_LOGPAR_X4(F, S, F, M)
  789. #define OSI_LOGPAR_FSS __OSI_LOGPAR_X3(F, S, S)
  790. #define OSI_LOGPAR_FSSI __OSI_LOGPAR_X4(F, S, S, I)
  791. #define OSI_LOGPAR_FSSD __OSI_LOGPAR_X4(F, S, S, D)
  792. #define OSI_LOGPAR_FSSF __OSI_LOGPAR_X4(F, S, S, F)
  793. #define OSI_LOGPAR_FSSS __OSI_LOGPAR_X4(F, S, S, S)
  794. #define OSI_LOGPAR_FSSM __OSI_LOGPAR_X4(F, S, S, M)
  795. #define OSI_LOGPAR_FSM __OSI_LOGPAR_X3(F, S, M)
  796. #define OSI_LOGPAR_FSMI __OSI_LOGPAR_X4(F, S, M, I)
  797. #define OSI_LOGPAR_FSMD __OSI_LOGPAR_X4(F, S, M, D)
  798. #define OSI_LOGPAR_FSMF __OSI_LOGPAR_X4(F, S, M, F)
  799. #define OSI_LOGPAR_FSMS __OSI_LOGPAR_X4(F, S, M, S)
  800. #define OSI_LOGPAR_FSMM __OSI_LOGPAR_X4(F, S, M, M)
  801. #define OSI_LOGPAR_FM __OSI_LOGPAR_X2(F, M)
  802. #define OSI_LOGPAR_FMI __OSI_LOGPAR_X3(F, M, I)
  803. #define OSI_LOGPAR_FMII __OSI_LOGPAR_X4(F, M, I, I)
  804. #define OSI_LOGPAR_FMID __OSI_LOGPAR_X4(F, M, I, D)
  805. #define OSI_LOGPAR_FMIF __OSI_LOGPAR_X4(F, M, I, F)
  806. #define OSI_LOGPAR_FMIS __OSI_LOGPAR_X4(F, M, I, S)
  807. #define OSI_LOGPAR_FMIM __OSI_LOGPAR_X4(F, M, I, M)
  808. #define OSI_LOGPAR_FMD __OSI_LOGPAR_X3(F, M, D)
  809. #define OSI_LOGPAR_FMDI __OSI_LOGPAR_X4(F, M, D, I)
  810. #define OSI_LOGPAR_FMDD __OSI_LOGPAR_X4(F, M, D, D)
  811. #define OSI_LOGPAR_FMDF __OSI_LOGPAR_X4(F, M, D, F)
  812. #define OSI_LOGPAR_FMDS __OSI_LOGPAR_X4(F, M, D, S)
  813. #define OSI_LOGPAR_FMDM __OSI_LOGPAR_X4(F, M, D, M)
  814. #define OSI_LOGPAR_FMF __OSI_LOGPAR_X3(F, M, F)
  815. #define OSI_LOGPAR_FMFI __OSI_LOGPAR_X4(F, M, F, I)
  816. #define OSI_LOGPAR_FMFD __OSI_LOGPAR_X4(F, M, F, D)
  817. #define OSI_LOGPAR_FMFF __OSI_LOGPAR_X4(F, M, F, F)
  818. #define OSI_LOGPAR_FMFS __OSI_LOGPAR_X4(F, M, F, S)
  819. #define OSI_LOGPAR_FMFM __OSI_LOGPAR_X4(F, M, F, M)
  820. #define OSI_LOGPAR_FMS __OSI_LOGPAR_X3(F, M, S)
  821. #define OSI_LOGPAR_FMSI __OSI_LOGPAR_X4(F, M, S, I)
  822. #define OSI_LOGPAR_FMSD __OSI_LOGPAR_X4(F, M, S, D)
  823. #define OSI_LOGPAR_FMSF __OSI_LOGPAR_X4(F, M, S, F)
  824. #define OSI_LOGPAR_FMSS __OSI_LOGPAR_X4(F, M, S, S)
  825. #define OSI_LOGPAR_FMSM __OSI_LOGPAR_X4(F, M, S, M)
  826. #define OSI_LOGPAR_FMM __OSI_LOGPAR_X3(F, M, M)
  827. #define OSI_LOGPAR_FMMI __OSI_LOGPAR_X4(F, M, M, I)
  828. #define OSI_LOGPAR_FMMD __OSI_LOGPAR_X4(F, M, M, D)
  829. #define OSI_LOGPAR_FMMF __OSI_LOGPAR_X4(F, M, M, F)
  830. #define OSI_LOGPAR_FMMS __OSI_LOGPAR_X4(F, M, M, S)
  831. #define OSI_LOGPAR_FMMM __OSI_LOGPAR_X4(F, M, M, M)
  832. #define OSI_LOGPAR_S __OSI_LOGPAR_X1(S)
  833. #define OSI_LOGPAR_SI __OSI_LOGPAR_X2(S, I)
  834. #define OSI_LOGPAR_SII __OSI_LOGPAR_X3(S, I, I)
  835. #define OSI_LOGPAR_SIII __OSI_LOGPAR_X4(S, I, I, I)
  836. #define OSI_LOGPAR_SIID __OSI_LOGPAR_X4(S, I, I, D)
  837. #define OSI_LOGPAR_SIIF __OSI_LOGPAR_X4(S, I, I, F)
  838. #define OSI_LOGPAR_SIIS __OSI_LOGPAR_X4(S, I, I, S)
  839. #define OSI_LOGPAR_SIIM __OSI_LOGPAR_X4(S, I, I, M)
  840. #define OSI_LOGPAR_SID __OSI_LOGPAR_X3(S, I, D)
  841. #define OSI_LOGPAR_SIDI __OSI_LOGPAR_X4(S, I, D, I)
  842. #define OSI_LOGPAR_SIDD __OSI_LOGPAR_X4(S, I, D, D)
  843. #define OSI_LOGPAR_SIDF __OSI_LOGPAR_X4(S, I, D, F)
  844. #define OSI_LOGPAR_SIDS __OSI_LOGPAR_X4(S, I, D, S)
  845. #define OSI_LOGPAR_SIDM __OSI_LOGPAR_X4(S, I, D, M)
  846. #define OSI_LOGPAR_SIF __OSI_LOGPAR_X3(S, I, F)
  847. #define OSI_LOGPAR_SIFI __OSI_LOGPAR_X4(S, I, F, I)
  848. #define OSI_LOGPAR_SIFD __OSI_LOGPAR_X4(S, I, F, D)
  849. #define OSI_LOGPAR_SIFF __OSI_LOGPAR_X4(S, I, F, F)
  850. #define OSI_LOGPAR_SIFS __OSI_LOGPAR_X4(S, I, F, S)
  851. #define OSI_LOGPAR_SIFM __OSI_LOGPAR_X4(S, I, F, M)
  852. #define OSI_LOGPAR_SIS __OSI_LOGPAR_X3(S, I, S)
  853. #define OSI_LOGPAR_SISI __OSI_LOGPAR_X4(S, I, S, I)
  854. #define OSI_LOGPAR_SISD __OSI_LOGPAR_X4(S, I, S, D)
  855. #define OSI_LOGPAR_SISF __OSI_LOGPAR_X4(S, I, S, F)
  856. #define OSI_LOGPAR_SISS __OSI_LOGPAR_X4(S, I, S, S)
  857. #define OSI_LOGPAR_SISM __OSI_LOGPAR_X4(S, I, S, M)
  858. #define OSI_LOGPAR_SIM __OSI_LOGPAR_X3(S, I, M)
  859. #define OSI_LOGPAR_SIMI __OSI_LOGPAR_X4(S, I, M, I)
  860. #define OSI_LOGPAR_SIMD __OSI_LOGPAR_X4(S, I, M, D)
  861. #define OSI_LOGPAR_SIMF __OSI_LOGPAR_X4(S, I, M, F)
  862. #define OSI_LOGPAR_SIMS __OSI_LOGPAR_X4(S, I, M, S)
  863. #define OSI_LOGPAR_SIMM __OSI_LOGPAR_X4(S, I, M, M)
  864. #define OSI_LOGPAR_SD __OSI_LOGPAR_X2(S, D)
  865. #define OSI_LOGPAR_SDI __OSI_LOGPAR_X3(S, D, I)
  866. #define OSI_LOGPAR_SDII __OSI_LOGPAR_X4(S, D, I, I)
  867. #define OSI_LOGPAR_SDID __OSI_LOGPAR_X4(S, D, I, D)
  868. #define OSI_LOGPAR_SDIF __OSI_LOGPAR_X4(S, D, I, F)
  869. #define OSI_LOGPAR_SDIS __OSI_LOGPAR_X4(S, D, I, S)
  870. #define OSI_LOGPAR_SDIM __OSI_LOGPAR_X4(S, D, I, M)
  871. #define OSI_LOGPAR_SDD __OSI_LOGPAR_X3(S, D, D)
  872. #define OSI_LOGPAR_SDDI __OSI_LOGPAR_X4(S, D, D, I)
  873. #define OSI_LOGPAR_SDDD __OSI_LOGPAR_X4(S, D, D, D)
  874. #define OSI_LOGPAR_SDDF __OSI_LOGPAR_X4(S, D, D, F)
  875. #define OSI_LOGPAR_SDDS __OSI_LOGPAR_X4(S, D, D, S)
  876. #define OSI_LOGPAR_SDDM __OSI_LOGPAR_X4(S, D, D, M)
  877. #define OSI_LOGPAR_SDF __OSI_LOGPAR_X3(S, D, F)
  878. #define OSI_LOGPAR_SDFI __OSI_LOGPAR_X4(S, D, F, I)
  879. #define OSI_LOGPAR_SDFD __OSI_LOGPAR_X4(S, D, F, D)
  880. #define OSI_LOGPAR_SDFF __OSI_LOGPAR_X4(S, D, F, F)
  881. #define OSI_LOGPAR_SDFS __OSI_LOGPAR_X4(S, D, F, S)
  882. #define OSI_LOGPAR_SDFM __OSI_LOGPAR_X4(S, D, F, M)
  883. #define OSI_LOGPAR_SDS __OSI_LOGPAR_X3(S, D, S)
  884. #define OSI_LOGPAR_SDSI __OSI_LOGPAR_X4(S, D, S, I)
  885. #define OSI_LOGPAR_SDSD __OSI_LOGPAR_X4(S, D, S, D)
  886. #define OSI_LOGPAR_SDSF __OSI_LOGPAR_X4(S, D, S, F)
  887. #define OSI_LOGPAR_SDSS __OSI_LOGPAR_X4(S, D, S, S)
  888. #define OSI_LOGPAR_SDSM __OSI_LOGPAR_X4(S, D, S, M)
  889. #define OSI_LOGPAR_SDM __OSI_LOGPAR_X3(S, D, M)
  890. #define OSI_LOGPAR_SDMI __OSI_LOGPAR_X4(S, D, M, I)
  891. #define OSI_LOGPAR_SDMD __OSI_LOGPAR_X4(S, D, M, D)
  892. #define OSI_LOGPAR_SDMF __OSI_LOGPAR_X4(S, D, M, F)
  893. #define OSI_LOGPAR_SDMS __OSI_LOGPAR_X4(S, D, M, S)
  894. #define OSI_LOGPAR_SDMM __OSI_LOGPAR_X4(S, D, M, M)
  895. #define OSI_LOGPAR_SF __OSI_LOGPAR_X2(S, F)
  896. #define OSI_LOGPAR_SFI __OSI_LOGPAR_X3(S, F, I)
  897. #define OSI_LOGPAR_SFII __OSI_LOGPAR_X4(S, F, I, I)
  898. #define OSI_LOGPAR_SFID __OSI_LOGPAR_X4(S, F, I, D)
  899. #define OSI_LOGPAR_SFIF __OSI_LOGPAR_X4(S, F, I, F)
  900. #define OSI_LOGPAR_SFIS __OSI_LOGPAR_X4(S, F, I, S)
  901. #define OSI_LOGPAR_SFIM __OSI_LOGPAR_X4(S, F, I, M)
  902. #define OSI_LOGPAR_SFD __OSI_LOGPAR_X3(S, F, D)
  903. #define OSI_LOGPAR_SFDI __OSI_LOGPAR_X4(S, F, D, I)
  904. #define OSI_LOGPAR_SFDD __OSI_LOGPAR_X4(S, F, D, D)
  905. #define OSI_LOGPAR_SFDF __OSI_LOGPAR_X4(S, F, D, F)
  906. #define OSI_LOGPAR_SFDS __OSI_LOGPAR_X4(S, F, D, S)
  907. #define OSI_LOGPAR_SFDM __OSI_LOGPAR_X4(S, F, D, M)
  908. #define OSI_LOGPAR_SFF __OSI_LOGPAR_X3(S, F, F)
  909. #define OSI_LOGPAR_SFFI __OSI_LOGPAR_X4(S, F, F, I)
  910. #define OSI_LOGPAR_SFFD __OSI_LOGPAR_X4(S, F, F, D)
  911. #define OSI_LOGPAR_SFFF __OSI_LOGPAR_X4(S, F, F, F)
  912. #define OSI_LOGPAR_SFFS __OSI_LOGPAR_X4(S, F, F, S)
  913. #define OSI_LOGPAR_SFFM __OSI_LOGPAR_X4(S, F, F, M)
  914. #define OSI_LOGPAR_SFS __OSI_LOGPAR_X3(S, F, S)
  915. #define OSI_LOGPAR_SFSI __OSI_LOGPAR_X4(S, F, S, I)
  916. #define OSI_LOGPAR_SFSD __OSI_LOGPAR_X4(S, F, S, D)
  917. #define OSI_LOGPAR_SFSF __OSI_LOGPAR_X4(S, F, S, F)
  918. #define OSI_LOGPAR_SFSS __OSI_LOGPAR_X4(S, F, S, S)
  919. #define OSI_LOGPAR_SFSM __OSI_LOGPAR_X4(S, F, S, M)
  920. #define OSI_LOGPAR_SFM __OSI_LOGPAR_X3(S, F, M)
  921. #define OSI_LOGPAR_SFMI __OSI_LOGPAR_X4(S, F, M, I)
  922. #define OSI_LOGPAR_SFMD __OSI_LOGPAR_X4(S, F, M, D)
  923. #define OSI_LOGPAR_SFMF __OSI_LOGPAR_X4(S, F, M, F)
  924. #define OSI_LOGPAR_SFMS __OSI_LOGPAR_X4(S, F, M, S)
  925. #define OSI_LOGPAR_SFMM __OSI_LOGPAR_X4(S, F, M, M)
  926. #define OSI_LOGPAR_SS __OSI_LOGPAR_X2(S, S)
  927. #define OSI_LOGPAR_SSI __OSI_LOGPAR_X3(S, S, I)
  928. #define OSI_LOGPAR_SSII __OSI_LOGPAR_X4(S, S, I, I)
  929. #define OSI_LOGPAR_SSID __OSI_LOGPAR_X4(S, S, I, D)
  930. #define OSI_LOGPAR_SSIF __OSI_LOGPAR_X4(S, S, I, F)
  931. #define OSI_LOGPAR_SSIS __OSI_LOGPAR_X4(S, S, I, S)
  932. #define OSI_LOGPAR_SSIM __OSI_LOGPAR_X4(S, S, I, M)
  933. #define OSI_LOGPAR_SSD __OSI_LOGPAR_X3(S, S, D)
  934. #define OSI_LOGPAR_SSDI __OSI_LOGPAR_X4(S, S, D, I)
  935. #define OSI_LOGPAR_SSDD __OSI_LOGPAR_X4(S, S, D, D)
  936. #define OSI_LOGPAR_SSDF __OSI_LOGPAR_X4(S, S, D, F)
  937. #define OSI_LOGPAR_SSDS __OSI_LOGPAR_X4(S, S, D, S)
  938. #define OSI_LOGPAR_SSDM __OSI_LOGPAR_X4(S, S, D, M)
  939. #define OSI_LOGPAR_SSF __OSI_LOGPAR_X3(S, S, F)
  940. #define OSI_LOGPAR_SSFI __OSI_LOGPAR_X4(S, S, F, I)
  941. #define OSI_LOGPAR_SSFD __OSI_LOGPAR_X4(S, S, F, D)
  942. #define OSI_LOGPAR_SSFF __OSI_LOGPAR_X4(S, S, F, F)
  943. #define OSI_LOGPAR_SSFS __OSI_LOGPAR_X4(S, S, F, S)
  944. #define OSI_LOGPAR_SSFM __OSI_LOGPAR_X4(S, S, F, M)
  945. #define OSI_LOGPAR_SSS __OSI_LOGPAR_X3(S, S, S)
  946. #define OSI_LOGPAR_SSSI __OSI_LOGPAR_X4(S, S, S, I)
  947. #define OSI_LOGPAR_SSSD __OSI_LOGPAR_X4(S, S, S, D)
  948. #define OSI_LOGPAR_SSSF __OSI_LOGPAR_X4(S, S, S, F)
  949. #define OSI_LOGPAR_SSSS __OSI_LOGPAR_X4(S, S, S, S)
  950. #define OSI_LOGPAR_SSSM __OSI_LOGPAR_X4(S, S, S, M)
  951. #define OSI_LOGPAR_SSM __OSI_LOGPAR_X3(S, S, M)
  952. #define OSI_LOGPAR_SSMI __OSI_LOGPAR_X4(S, S, M, I)
  953. #define OSI_LOGPAR_SSMD __OSI_LOGPAR_X4(S, S, M, D)
  954. #define OSI_LOGPAR_SSMF __OSI_LOGPAR_X4(S, S, M, F)
  955. #define OSI_LOGPAR_SSMS __OSI_LOGPAR_X4(S, S, M, S)
  956. #define OSI_LOGPAR_SSMM __OSI_LOGPAR_X4(S, S, M, M)
  957. #define OSI_LOGPAR_SM __OSI_LOGPAR_X2(S, M)
  958. #define OSI_LOGPAR_SMI __OSI_LOGPAR_X3(S, M, I)
  959. #define OSI_LOGPAR_SMII __OSI_LOGPAR_X4(S, M, I, I)
  960. #define OSI_LOGPAR_SMID __OSI_LOGPAR_X4(S, M, I, D)
  961. #define OSI_LOGPAR_SMIF __OSI_LOGPAR_X4(S, M, I, F)
  962. #define OSI_LOGPAR_SMIS __OSI_LOGPAR_X4(S, M, I, S)
  963. #define OSI_LOGPAR_SMIM __OSI_LOGPAR_X4(S, M, I, M)
  964. #define OSI_LOGPAR_SMD __OSI_LOGPAR_X3(S, M, D)
  965. #define OSI_LOGPAR_SMDI __OSI_LOGPAR_X4(S, M, D, I)
  966. #define OSI_LOGPAR_SMDD __OSI_LOGPAR_X4(S, M, D, D)
  967. #define OSI_LOGPAR_SMDF __OSI_LOGPAR_X4(S, M, D, F)
  968. #define OSI_LOGPAR_SMDS __OSI_LOGPAR_X4(S, M, D, S)
  969. #define OSI_LOGPAR_SMDM __OSI_LOGPAR_X4(S, M, D, M)
  970. #define OSI_LOGPAR_SMF __OSI_LOGPAR_X3(S, M, F)
  971. #define OSI_LOGPAR_SMFI __OSI_LOGPAR_X4(S, M, F, I)
  972. #define OSI_LOGPAR_SMFD __OSI_LOGPAR_X4(S, M, F, D)
  973. #define OSI_LOGPAR_SMFF __OSI_LOGPAR_X4(S, M, F, F)
  974. #define OSI_LOGPAR_SMFS __OSI_LOGPAR_X4(S, M, F, S)
  975. #define OSI_LOGPAR_SMFM __OSI_LOGPAR_X4(S, M, F, M)
  976. #define OSI_LOGPAR_SMS __OSI_LOGPAR_X3(S, M, S)
  977. #define OSI_LOGPAR_SMSI __OSI_LOGPAR_X4(S, M, S, I)
  978. #define OSI_LOGPAR_SMSD __OSI_LOGPAR_X4(S, M, S, D)
  979. #define OSI_LOGPAR_SMSF __OSI_LOGPAR_X4(S, M, S, F)
  980. #define OSI_LOGPAR_SMSS __OSI_LOGPAR_X4(S, M, S, S)
  981. #define OSI_LOGPAR_SMSM __OSI_LOGPAR_X4(S, M, S, M)
  982. #define OSI_LOGPAR_SMM __OSI_LOGPAR_X3(S, M, M)
  983. #define OSI_LOGPAR_SMMI __OSI_LOGPAR_X4(S, M, M, I)
  984. #define OSI_LOGPAR_SMMD __OSI_LOGPAR_X4(S, M, M, D)
  985. #define OSI_LOGPAR_SMMF __OSI_LOGPAR_X4(S, M, M, F)
  986. #define OSI_LOGPAR_SMMS __OSI_LOGPAR_X4(S, M, M, S)
  987. #define OSI_LOGPAR_SMMM __OSI_LOGPAR_X4(S, M, M, M)
  988. #define OSI_LOGPAR_SDDDD __OSI_LOGPAR_X5(S, D, D, D, D)
  989. #define OSI_LOGPAR_M __OSI_LOGPAR_X1(M)
  990. #define OSI_LOGPAR_MI __OSI_LOGPAR_X2(M, I)
  991. #define OSI_LOGPAR_MII __OSI_LOGPAR_X3(M, I, I)
  992. #define OSI_LOGPAR_MIII __OSI_LOGPAR_X4(M, I, I, I)
  993. #define OSI_LOGPAR_MIID __OSI_LOGPAR_X4(M, I, I, D)
  994. #define OSI_LOGPAR_MIIF __OSI_LOGPAR_X4(M, I, I, F)
  995. #define OSI_LOGPAR_MIIS __OSI_LOGPAR_X4(M, I, I, S)
  996. #define OSI_LOGPAR_MIIM __OSI_LOGPAR_X4(M, I, I, M)
  997. #define OSI_LOGPAR_MID __OSI_LOGPAR_X3(M, I, D)
  998. #define OSI_LOGPAR_MIDI __OSI_LOGPAR_X4(M, I, D, I)
  999. #define OSI_LOGPAR_MIDD __OSI_LOGPAR_X4(M, I, D, D)
  1000. #define OSI_LOGPAR_MIDF __OSI_LOGPAR_X4(M, I, D, F)
  1001. #define OSI_LOGPAR_MIDS __OSI_LOGPAR_X4(M, I, D, S)
  1002. #define OSI_LOGPAR_MIDM __OSI_LOGPAR_X4(M, I, D, M)
  1003. #define OSI_LOGPAR_MIF __OSI_LOGPAR_X3(M, I, F)
  1004. #define OSI_LOGPAR_MIFI __OSI_LOGPAR_X4(M, I, F, I)
  1005. #define OSI_LOGPAR_MIFD __OSI_LOGPAR_X4(M, I, F, D)
  1006. #define OSI_LOGPAR_MIFF __OSI_LOGPAR_X4(M, I, F, F)
  1007. #define OSI_LOGPAR_MIFS __OSI_LOGPAR_X4(M, I, F, S)
  1008. #define OSI_LOGPAR_MIFM __OSI_LOGPAR_X4(M, I, F, M)
  1009. #define OSI_LOGPAR_MIS __OSI_LOGPAR_X3(M, I, S)
  1010. #define OSI_LOGPAR_MISI __OSI_LOGPAR_X4(M, I, S, I)
  1011. #define OSI_LOGPAR_MISD __OSI_LOGPAR_X4(M, I, S, D)
  1012. #define OSI_LOGPAR_MISF __OSI_LOGPAR_X4(M, I, S, F)
  1013. #define OSI_LOGPAR_MISS __OSI_LOGPAR_X4(M, I, S, S)
  1014. #define OSI_LOGPAR_MISM __OSI_LOGPAR_X4(M, I, S, M)
  1015. #define OSI_LOGPAR_MIM __OSI_LOGPAR_X3(M, I, M)
  1016. #define OSI_LOGPAR_MIMI __OSI_LOGPAR_X4(M, I, M, I)
  1017. #define OSI_LOGPAR_MIMD __OSI_LOGPAR_X4(M, I, M, D)
  1018. #define OSI_LOGPAR_MIMF __OSI_LOGPAR_X4(M, I, M, F)
  1019. #define OSI_LOGPAR_MIMS __OSI_LOGPAR_X4(M, I, M, S)
  1020. #define OSI_LOGPAR_MIMM __OSI_LOGPAR_X4(M, I, M, M)
  1021. #define OSI_LOGPAR_MD __OSI_LOGPAR_X2(M, D)
  1022. #define OSI_LOGPAR_MDI __OSI_LOGPAR_X3(M, D, I)
  1023. #define OSI_LOGPAR_MDII __OSI_LOGPAR_X4(M, D, I, I)
  1024. #define OSI_LOGPAR_MDID __OSI_LOGPAR_X4(M, D, I, D)
  1025. #define OSI_LOGPAR_MDIF __OSI_LOGPAR_X4(M, D, I, F)
  1026. #define OSI_LOGPAR_MDIS __OSI_LOGPAR_X4(M, D, I, S)
  1027. #define OSI_LOGPAR_MDIM __OSI_LOGPAR_X4(M, D, I, M)
  1028. #define OSI_LOGPAR_MDD __OSI_LOGPAR_X3(M, D, D)
  1029. #define OSI_LOGPAR_MDDI __OSI_LOGPAR_X4(M, D, D, I)
  1030. #define OSI_LOGPAR_MDDD __OSI_LOGPAR_X4(M, D, D, D)
  1031. #define OSI_LOGPAR_MDDF __OSI_LOGPAR_X4(M, D, D, F)
  1032. #define OSI_LOGPAR_MDDS __OSI_LOGPAR_X4(M, D, D, S)
  1033. #define OSI_LOGPAR_MDDM __OSI_LOGPAR_X4(M, D, D, M)
  1034. #define OSI_LOGPAR_MDF __OSI_LOGPAR_X3(M, D, F)
  1035. #define OSI_LOGPAR_MDFI __OSI_LOGPAR_X4(M, D, F, I)
  1036. #define OSI_LOGPAR_MDFD __OSI_LOGPAR_X4(M, D, F, D)
  1037. #define OSI_LOGPAR_MDFF __OSI_LOGPAR_X4(M, D, F, F)
  1038. #define OSI_LOGPAR_MDFS __OSI_LOGPAR_X4(M, D, F, S)
  1039. #define OSI_LOGPAR_MDFM __OSI_LOGPAR_X4(M, D, F, M)
  1040. #define OSI_LOGPAR_MDS __OSI_LOGPAR_X3(M, D, S)
  1041. #define OSI_LOGPAR_MDSI __OSI_LOGPAR_X4(M, D, S, I)
  1042. #define OSI_LOGPAR_MDSD __OSI_LOGPAR_X4(M, D, S, D)
  1043. #define OSI_LOGPAR_MDSF __OSI_LOGPAR_X4(M, D, S, F)
  1044. #define OSI_LOGPAR_MDSS __OSI_LOGPAR_X4(M, D, S, S)
  1045. #define OSI_LOGPAR_MDSM __OSI_LOGPAR_X4(M, D, S, M)
  1046. #define OSI_LOGPAR_MDM __OSI_LOGPAR_X3(M, D, M)
  1047. #define OSI_LOGPAR_MDMI __OSI_LOGPAR_X4(M, D, M, I)
  1048. #define OSI_LOGPAR_MDMD __OSI_LOGPAR_X4(M, D, M, D)
  1049. #define OSI_LOGPAR_MDMF __OSI_LOGPAR_X4(M, D, M, F)
  1050. #define OSI_LOGPAR_MDMS __OSI_LOGPAR_X4(M, D, M, S)
  1051. #define OSI_LOGPAR_MDMM __OSI_LOGPAR_X4(M, D, M, M)
  1052. #define OSI_LOGPAR_MF __OSI_LOGPAR_X2(M, F)
  1053. #define OSI_LOGPAR_MFI __OSI_LOGPAR_X3(M, F, I)
  1054. #define OSI_LOGPAR_MFII __OSI_LOGPAR_X4(M, F, I, I)
  1055. #define OSI_LOGPAR_MFID __OSI_LOGPAR_X4(M, F, I, D)
  1056. #define OSI_LOGPAR_MFIF __OSI_LOGPAR_X4(M, F, I, F)
  1057. #define OSI_LOGPAR_MFIS __OSI_LOGPAR_X4(M, F, I, S)
  1058. #define OSI_LOGPAR_MFIM __OSI_LOGPAR_X4(M, F, I, M)
  1059. #define OSI_LOGPAR_MFD __OSI_LOGPAR_X3(M, F, D)
  1060. #define OSI_LOGPAR_MFDI __OSI_LOGPAR_X4(M, F, D, I)
  1061. #define OSI_LOGPAR_MFDD __OSI_LOGPAR_X4(M, F, D, D)
  1062. #define OSI_LOGPAR_MFDF __OSI_LOGPAR_X4(M, F, D, F)
  1063. #define OSI_LOGPAR_MFDS __OSI_LOGPAR_X4(M, F, D, S)
  1064. #define OSI_LOGPAR_MFDM __OSI_LOGPAR_X4(M, F, D, M)
  1065. #define OSI_LOGPAR_MFF __OSI_LOGPAR_X3(M, F, F)
  1066. #define OSI_LOGPAR_MFFI __OSI_LOGPAR_X4(M, F, F, I)
  1067. #define OSI_LOGPAR_MFFD __OSI_LOGPAR_X4(M, F, F, D)
  1068. #define OSI_LOGPAR_MFFF __OSI_LOGPAR_X4(M, F, F, F)
  1069. #define OSI_LOGPAR_MFFS __OSI_LOGPAR_X4(M, F, F, S)
  1070. #define OSI_LOGPAR_MFFM __OSI_LOGPAR_X4(M, F, F, M)
  1071. #define OSI_LOGPAR_MFS __OSI_LOGPAR_X3(M, F, S)
  1072. #define OSI_LOGPAR_MFSI __OSI_LOGPAR_X4(M, F, S, I)
  1073. #define OSI_LOGPAR_MFSD __OSI_LOGPAR_X4(M, F, S, D)
  1074. #define OSI_LOGPAR_MFSF __OSI_LOGPAR_X4(M, F, S, F)
  1075. #define OSI_LOGPAR_MFSS __OSI_LOGPAR_X4(M, F, S, S)
  1076. #define OSI_LOGPAR_MFSM __OSI_LOGPAR_X4(M, F, S, M)
  1077. #define OSI_LOGPAR_MFM __OSI_LOGPAR_X3(M, F, M)
  1078. #define OSI_LOGPAR_MFMI __OSI_LOGPAR_X4(M, F, M, I)
  1079. #define OSI_LOGPAR_MFMD __OSI_LOGPAR_X4(M, F, M, D)
  1080. #define OSI_LOGPAR_MFMF __OSI_LOGPAR_X4(M, F, M, F)
  1081. #define OSI_LOGPAR_MFMS __OSI_LOGPAR_X4(M, F, M, S)
  1082. #define OSI_LOGPAR_MFMM __OSI_LOGPAR_X4(M, F, M, M)
  1083. #define OSI_LOGPAR_MS __OSI_LOGPAR_X2(M, S)
  1084. #define OSI_LOGPAR_MSI __OSI_LOGPAR_X3(M, S, I)
  1085. #define OSI_LOGPAR_MSII __OSI_LOGPAR_X4(M, S, I, I)
  1086. #define OSI_LOGPAR_MSID __OSI_LOGPAR_X4(M, S, I, D)
  1087. #define OSI_LOGPAR_MSIF __OSI_LOGPAR_X4(M, S, I, F)
  1088. #define OSI_LOGPAR_MSIS __OSI_LOGPAR_X4(M, S, I, S)
  1089. #define OSI_LOGPAR_MSIM __OSI_LOGPAR_X4(M, S, I, M)
  1090. #define OSI_LOGPAR_MSD __OSI_LOGPAR_X3(M, S, D)
  1091. #define OSI_LOGPAR_MSDI __OSI_LOGPAR_X4(M, S, D, I)
  1092. #define OSI_LOGPAR_MSDD __OSI_LOGPAR_X4(M, S, D, D)
  1093. #define OSI_LOGPAR_MSDF __OSI_LOGPAR_X4(M, S, D, F)
  1094. #define OSI_LOGPAR_MSDS __OSI_LOGPAR_X4(M, S, D, S)
  1095. #define OSI_LOGPAR_MSDM __OSI_LOGPAR_X4(M, S, D, M)
  1096. #define OSI_LOGPAR_MSF __OSI_LOGPAR_X3(M, S, F)
  1097. #define OSI_LOGPAR_MSFI __OSI_LOGPAR_X4(M, S, F, I)
  1098. #define OSI_LOGPAR_MSFD __OSI_LOGPAR_X4(M, S, F, D)
  1099. #define OSI_LOGPAR_MSFF __OSI_LOGPAR_X4(M, S, F, F)
  1100. #define OSI_LOGPAR_MSFS __OSI_LOGPAR_X4(M, S, F, S)
  1101. #define OSI_LOGPAR_MSFM __OSI_LOGPAR_X4(M, S, F, M)
  1102. #define OSI_LOGPAR_MSS __OSI_LOGPAR_X3(M, S, S)
  1103. #define OSI_LOGPAR_MSSI __OSI_LOGPAR_X4(M, S, S, I)
  1104. #define OSI_LOGPAR_MSSD __OSI_LOGPAR_X4(M, S, S, D)
  1105. #define OSI_LOGPAR_MSSF __OSI_LOGPAR_X4(M, S, S, F)
  1106. #define OSI_LOGPAR_MSSS __OSI_LOGPAR_X4(M, S, S, S)
  1107. #define OSI_LOGPAR_MSSM __OSI_LOGPAR_X4(M, S, S, M)
  1108. #define OSI_LOGPAR_MSM __OSI_LOGPAR_X3(M, S, M)
  1109. #define OSI_LOGPAR_MSMI __OSI_LOGPAR_X4(M, S, M, I)
  1110. #define OSI_LOGPAR_MSMD __OSI_LOGPAR_X4(M, S, M, D)
  1111. #define OSI_LOGPAR_MSMF __OSI_LOGPAR_X4(M, S, M, F)
  1112. #define OSI_LOGPAR_MSMS __OSI_LOGPAR_X4(M, S, M, S)
  1113. #define OSI_LOGPAR_MSMM __OSI_LOGPAR_X4(M, S, M, M)
  1114. #define OSI_LOGPAR_MM __OSI_LOGPAR_X2(M, M)
  1115. #define OSI_LOGPAR_MMI __OSI_LOGPAR_X3(M, M, I)
  1116. #define OSI_LOGPAR_MMII __OSI_LOGPAR_X4(M, M, I, I)
  1117. #define OSI_LOGPAR_MMID __OSI_LOGPAR_X4(M, M, I, D)
  1118. #define OSI_LOGPAR_MMIF __OSI_LOGPAR_X4(M, M, I, F)
  1119. #define OSI_LOGPAR_MMIS __OSI_LOGPAR_X4(M, M, I, S)
  1120. #define OSI_LOGPAR_MMIM __OSI_LOGPAR_X4(M, M, I, M)
  1121. #define OSI_LOGPAR_MMD __OSI_LOGPAR_X3(M, M, D)
  1122. #define OSI_LOGPAR_MMDI __OSI_LOGPAR_X4(M, M, D, I)
  1123. #define OSI_LOGPAR_MMDD __OSI_LOGPAR_X4(M, M, D, D)
  1124. #define OSI_LOGPAR_MMDF __OSI_LOGPAR_X4(M, M, D, F)
  1125. #define OSI_LOGPAR_MMDS __OSI_LOGPAR_X4(M, M, D, S)
  1126. #define OSI_LOGPAR_MMDM __OSI_LOGPAR_X4(M, M, D, M)
  1127. #define OSI_LOGPAR_MMF __OSI_LOGPAR_X3(M, M, F)
  1128. #define OSI_LOGPAR_MMFI __OSI_LOGPAR_X4(M, M, F, I)
  1129. #define OSI_LOGPAR_MMFD __OSI_LOGPAR_X4(M, M, F, D)
  1130. #define OSI_LOGPAR_MMFF __OSI_LOGPAR_X4(M, M, F, F)
  1131. #define OSI_LOGPAR_MMFS __OSI_LOGPAR_X4(M, M, F, S)
  1132. #define OSI_LOGPAR_MMFM __OSI_LOGPAR_X4(M, M, F, M)
  1133. #define OSI_LOGPAR_MMS __OSI_LOGPAR_X3(M, M, S)
  1134. #define OSI_LOGPAR_MMSI __OSI_LOGPAR_X4(M, M, S, I)
  1135. #define OSI_LOGPAR_MMSD __OSI_LOGPAR_X4(M, M, S, D)
  1136. #define OSI_LOGPAR_MMSF __OSI_LOGPAR_X4(M, M, S, F)
  1137. #define OSI_LOGPAR_MMSS __OSI_LOGPAR_X4(M, M, S, S)
  1138. #define OSI_LOGPAR_MMSM __OSI_LOGPAR_X4(M, M, S, M)
  1139. #define OSI_LOGPAR_MMM __OSI_LOGPAR_X3(M, M, M)
  1140. #define OSI_LOGPAR_MMMI __OSI_LOGPAR_X4(M, M, M, I)
  1141. #define OSI_LOGPAR_MMMD __OSI_LOGPAR_X4(M, M, M, D)
  1142. #define OSI_LOGPAR_MMMF __OSI_LOGPAR_X4(M, M, M, F)
  1143. #define OSI_LOGPAR_MMMS __OSI_LOGPAR_X4(M, M, M, S)
  1144. #define OSI_LOGPAR_MMMM __OSI_LOGPAR_X4(M, M, M, M)