hi_defines.h 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483
  1. /******************************************************************************
  2. Copyright (C), 2016, Hisilicon Tech. Co., Ltd.
  3. ******************************************************************************
  4. File Name : hi_defines.h
  5. Version : Initial Draft
  6. Author : Hisilicon multimedia software group
  7. Created : 2016/07/15
  8. Last Modified :
  9. Description : The common data type defination
  10. Function List :
  11. ******************************************************************************/
  12. #ifndef __HI_DEFINES_H__
  13. #define __HI_DEFINES_H__
  14. #ifdef __cplusplus
  15. #if __cplusplus
  16. extern "C"{
  17. #endif
  18. #endif /* __cplusplus */
  19. #include "autoconf.h"
  20. #ifndef HICHIP
  21. #define HICHIP CONFIG_HI_CHIP_TYPE
  22. #endif
  23. #define HI3559A_V100 0x3559A100
  24. /* "0x3559AEF" for Hi3559AV100ES*/
  25. #define HI3559A_V100ES 0x3559AEF
  26. #define HI3519A_V100 0x3519A100
  27. #define HI3516C_V500 0x3516C500
  28. #define HI35xx_Vxxx 0x35000000
  29. #if HICHIP==HI3559A_V100ES
  30. #define CHIP_NAME "Hi3559AV100ES"
  31. #define MPP_VER_PRIX "_MPP_V"
  32. #elif HICHIP==HI3559A_V100
  33. #define CHIP_NAME "Hi3559AV100"
  34. #define MPP_VER_PRIX "_MPP_V"
  35. #elif HICHIP==HI3519A_V100
  36. #define CHIP_NAME "Hi3519AV100"
  37. #define MPP_VER_PRIX "_MPP_V"
  38. #elif HICHIP==HI3516C_V500
  39. #define CHIP_NAME "Hi3516CV500"
  40. #define MPP_VER_PRIX "_MPP_V"
  41. #elif HICHIP==HI35xx_Vxxx
  42. #error HuHu, I am an dummy chip
  43. #else
  44. #error HICHIP define may be error
  45. #endif
  46. #define ALIGN_NUM 8
  47. #define LUMA_PHY_ALIGN 32
  48. #define DEFAULT_ALIGN 32
  49. #define MAX_ALIGN 1024
  50. #define SEG_CMP_LENGTH 256
  51. #define MAX_MMZ_NAME_LEN 16
  52. #define VO_MAX_NODE_NUM 16
  53. /* For VB */
  54. #define VB_MAX_POOLS 768
  55. /* For VENC */
  56. #define VENC_MAX_NAME_LEN 16
  57. #define VENC_MAX_CHN_NUM 64
  58. #define VEDU_IP_NUM 3
  59. #define H264E_MAX_WIDTH 8192
  60. #define H264E_MAX_HEIGHT 8640
  61. #define H264E_MIN_WIDTH 114
  62. #define H264E_MIN_HEIGHT 114
  63. #define H265E_MAX_WIDTH 16384
  64. #define H265E_MAX_HEIGHT 8640
  65. #define H265E_MIN_WIDTH 114
  66. #define H265E_MIN_HEIGHT 114
  67. #define JPEGE_MAX_WIDTH 16384
  68. #define JPEGE_MAX_HEIGHT 16384
  69. #define JPEGE_MIN_WIDTH 32
  70. #define JPEGE_MIN_HEIGHT 32
  71. #define JPGE_MAX_NUM 1
  72. #define PRORES_MAX_WIDTH 7680
  73. #define PRORES_MAX_HEIGHT 4320
  74. #define PRORES_MIN_WIDTH 256
  75. #define PRORES_MIN_HEIGHT 256
  76. #define VENC_MAX_ROI_NUM 8
  77. #define H264E_MIN_HW_INDEX 0
  78. #define H264E_MAX_HW_INDEX 11
  79. #define H264E_MIN_VW_INDEX 0
  80. #define H264E_MAX_VW_INDEX 3
  81. #define VENC_QP_HISGRM_NUM 52
  82. #define PRORES_MAX_TILE_NUM 3
  83. #define MAX_TILE_NUM 3
  84. #define H265E_ADAPTIVE_FRAME_TYPE 5
  85. #define H265E_ADAPTIVE_QP_TYPE 5
  86. #define VENC_MIN_INPUT_FRAME_RATE 1
  87. #define VENC_MAX_INPUT_FRAME_RATE 240
  88. /* For RC */
  89. #define RC_TEXTURE_THR_SIZE 16
  90. #define MIN_BITRATE 2
  91. #define MAX_BITRATE 600*1024
  92. /* For VDEC */
  93. #define VDEC_MAX_CHN_NUM 128
  94. #define VDH_MAX_CHN_NUM 128
  95. #define VEDU_CHN_START VDH_MAX_CHN_NUM
  96. #define VEDU_H264D_ERRRATE 10
  97. #define VEDU_H264D_FULLERR 100
  98. #define H264D_ALIGN_W 64
  99. #define H264D_ALIGN_H 16
  100. #define H265D_ALIGN_W 64
  101. #define H265D_ALIGN_H 64
  102. #define JPEGD_ALIGN_W 64
  103. #define JPEGD_ALIGN_H 16
  104. #define JPEGD_RGB_ALIGN 16
  105. #define H264D_MAX_SPS 32
  106. #define H264D_MIN_SPS 1
  107. #define H264D_MAX_PPS 256
  108. #define H264D_MIN_PPS 1
  109. #define H264D_MAX_SLICE 300
  110. #define H264D_MIN_SLICE 1
  111. #define H265D_MAX_VPS 16
  112. #define H265D_MIN_VPS 1
  113. #define H265D_MAX_SPS 16
  114. #define H265D_MIN_SPS 1
  115. #define H265D_MAX_PPS 64
  116. #define H265D_MIN_PPS 1
  117. #define H265D_MAX_SLICE 600
  118. #define H265D_MIN_SLICE 1
  119. #define VDH_H264D_MAX_WIDTH 8192
  120. #define VDH_H264D_MAX_HEIGHT 8640
  121. #define VDH_H264D_MIN_WIDTH 114
  122. #define VDH_H264D_MIN_HEIGHT 114
  123. #define VDH_H265D_MAX_WIDTH 16888
  124. #define VDH_H265D_MAX_HEIGHT 16888
  125. #define VDH_H265D_MIN_WIDTH 114
  126. #define VDH_H265D_MIN_HEIGHT 114
  127. #define VDH_MIN_MSG_NUM 1
  128. #define VDH_MAX_MSG_NUM 8
  129. #define VDH_MIN_BIN_SIZE 72
  130. #define VDH_MAX_BIN_SIZE 2048
  131. #define VDH_MIN_EXT_MEM_LEVEL 1
  132. #define VDH_MAX_EXT_MEM_LEVEL 6
  133. #define JPEGD_IP_NUM 1
  134. #define JPEGD_MAX_WIDTH 16384
  135. #define JPEGD_MAX_HEIGHT 8640
  136. #define JPEGD_MIN_WIDTH 8
  137. #define JPEGD_MIN_HEIGHT 8
  138. /* For Region */
  139. #define RGN_MIN_WIDTH 2
  140. #define RGN_MIN_HEIGHT 2
  141. #define RGN_COVER_MIN_X -16384
  142. #define RGN_COVER_MIN_Y -16384
  143. #define RGN_COVER_MAX_X 16382
  144. #define RGN_COVER_MAX_Y 16382
  145. #define RGN_COVER_MAX_WIDTH 16384
  146. #define RGN_COVER_MAX_HEIGHT 16384
  147. #define RGN_COVEREX_MIN_X -16384
  148. #define RGN_COVEREX_MIN_Y -16384
  149. #define RGN_COVEREX_MAX_X 16382
  150. #define RGN_COVEREX_MAX_Y 16382
  151. #define RGN_COVEREX_MAX_WIDTH 16384
  152. #define RGN_COVEREX_MAX_HEIGHT 16384
  153. #define RGN_OVERLAY_MIN_X 0
  154. #define RGN_OVERLAY_MIN_Y 0
  155. #define RGN_OVERLAY_MAX_X 16382
  156. #define RGN_OVERLAY_MAX_Y 16382
  157. #define RGN_OVERLAY_MAX_WIDTH 16384
  158. #define RGN_OVERLAY_MAX_HEIGHT 16384
  159. #define RGN_OVERLAYEX_MIN_X 0
  160. #define RGN_OVERLAYEX_MIN_Y 0
  161. #define RGN_OVERLAYEX_MAX_X 16382
  162. #define RGN_OVERLAYEX_MAX_Y 16382
  163. #define RGN_OVERLAYEX_MAX_WIDTH 8192
  164. #define RGN_OVERLAYEX_MAX_HEIGHT 8192
  165. #define RGN_MOSAIC_X_ALIGN 4
  166. #define RGN_MOSAIC_Y_ALIGN 2
  167. #define RGN_MOSAIC_WIDTH_ALIGN 4
  168. #define RGN_MOSAIC_HEIGHT_ALIGN 4
  169. #define RGN_MOSAIC_MIN_X 0
  170. #define RGN_MOSAIC_MIN_Y 0
  171. #define RGN_MOSAIC_MAX_X 16382
  172. #define RGN_MOSAIC_MAX_Y 16382
  173. #define RGN_MOSAIC_MIN_WIDTH 64
  174. #define RGN_MOSAIC_MIN_HEIGHT 64
  175. #define RGN_MOSAIC_MAX_WIDTH 16384
  176. #define RGN_MOSAIC_MAX_HEIGHT 16384
  177. #define RGN_ALIGN 2
  178. #define RGN_HANDLE_MAX 1024
  179. #define RGN_MAX_BUF_NUM 6
  180. #define COVEREX_MAX_NUM_VI 16
  181. #define OVERLAYEX_MAX_NUM_VI 16
  182. #define OVERLAY_MAX_NUM_VENC 8
  183. #define OVERLAYEX_MAX_NUM_VENC 8
  184. #define COVER_MAX_NUM_VPSS 8
  185. #define COVEREX_MAX_NUM_VPSS 8
  186. #define OVERLAYEX_MAX_NUM_VPSS 8
  187. #define MOSAIC_MAX_NUM_VPSS 4
  188. #define OVERLAYEX_MAX_NUM_AVS 8
  189. #define COVEREX_MAX_NUM_VO 1
  190. #define OVERLAYEX_MAX_NUM_VO 1
  191. #define OVERLAYEX_MAX_NUM_PCIV 1
  192. /*************************************/
  193. #define VENC_MAX_SSE_NUM 8
  194. #define HISI_MAX_SENSOR_NUM 2
  195. /* For VI */
  196. /* number of channle and device on video input unit of chip
  197. * Note! VI_MAX_CHN_NUM is NOT equal to VI_MAX_DEV_NUM
  198. * multiplied by VI_MAX_CHN_NUM, because all VI devices
  199. * can't work at mode of 4 channles at the same time.
  200. */
  201. #define VI_MAX_DEV_NUM 8
  202. #define VI_MAX_PIPE_NUM 8
  203. #define VI_MAX_STITCH_GRP_NUM 8
  204. #define VI_MAX_WDR_NUM 4
  205. #define VI_MAX_PHY_CHN_NUM 1
  206. #define VI_MAX_EXT_CHN_NUM 8
  207. #define VI_EXT_CHN_START VI_MAX_PHY_CHN_NUM
  208. #define VI_MAX_CHN_NUM (VI_MAX_PHY_CHN_NUM + VI_MAX_EXT_CHN_NUM)
  209. #define VI_MAX_EXTCHN_BIND_PER_CHN 8
  210. #define VIPROC_IRQ_NUM 2
  211. #define VI_MAX_WDR_FRAME_NUM 4
  212. #define VI_MAX_NODE_NUM 3
  213. #define VIPROC_IP_NUM 2
  214. #define VICAP_IP_NUM 1
  215. #define VI_MAX_SPLIT_NODE_NUM 3
  216. #define VI_DEV_MIN_WIDTH 120
  217. #define VI_DEV_MIN_HEIGHT 120
  218. #define VI_DEV_MAX_WIDTH 8192
  219. #define VI_DEV_MAX_HEIGHT 8192
  220. #define VI_PIPE_OFFLINE_MIN_WIDTH 120
  221. #define VI_PIPE_OFFLINE_MIN_HEIGHT 120
  222. #define VI_PIPE_OFFLINE_MAX_WIDTH 8192
  223. #define VI_PIPE_OFFLINE_MAX_HEIGHT 8192
  224. #define VI_PIPE_ONLINE_MIN_WIDTH 120
  225. #define VI_PIPE_ONLINE_MIN_HEIGHT 120
  226. #define VI_PIPE_ONLINE_MAX_WIDTH 4096
  227. #define VI_PIPE_ONLINE_MAX_HEIGHT 8192
  228. #define VI_PIPE_PARALLEL_MIN_WIDTH 512
  229. #define VI_PIPE_PARALLEL_MIN_HEIGHT 120
  230. #define VI_PIPE_PARALLEL_MAX_WIDTH 8192
  231. #define VI_PIPE_PARALLEL_MAX_HEIGHT 8192
  232. #define VI_PHYCHN_OFFLINE_MIN_WIDTH 120
  233. #define VI_PHYCHN_OFFLINE_MIN_HEIGHT 120
  234. #define VI_PHYCHN_OFFLINE_MAX_WIDTH 8192
  235. #define VI_PHYCHN_OFFLINE_MAX_HEIGHT 8192
  236. #define VI_PHYCHN_ONLINE_MIN_WIDTH 120
  237. #define VI_PHYCHN_ONLINE_MIN_HEIGHT 120
  238. #define VI_PHYCHN_ONLINE_MAX_WIDTH 4096
  239. #define VI_PHYCHN_ONLINE_MAX_HEIGHT 8192
  240. #define VI_PHYCHN_PARALLEL_MIN_WIDTH 512
  241. #define VI_PHYCHN_PARALLEL_MIN_HEIGHT 120
  242. #define VI_PHYCHN_PARALLEL_MAX_WIDTH 8192
  243. #define VI_PHYCHN_PARALLEL_MAX_HEIGHT 8192
  244. #define VI_EXTCHN_MIN_WIDTH 32
  245. #define VI_EXTCHN_MIN_HEIGHT 32
  246. #define VI_EXTCHN_MAX_WIDTH 8192
  247. #define VI_EXTCHN_MAX_HEIGHT 8192
  248. #define VI_PHY_CHN_ONLINE_MAX_ZOOMIN 1
  249. #define VI_PHY_CHN_ONLINE_MAX_ZOOMOUT 1
  250. #define VI_PHY_CHN_OFFLINE_MAX_ZOOMIN 1
  251. #define VI_PHY_CHN_OFFLINE_MAX_ZOOMOUT 1
  252. #define VI_PHY_CHN_PARALLEL_MAX_ZOOMIN 1
  253. #define VI_PHY_CHN_PARALLEL_MAX_ZOOMOUT 1
  254. #define VI_EXT_CHN_MAX_ZOOMIN 16
  255. #define VI_EXT_CHN_MAX_ZOOMOUT 30
  256. #define VI_CMP_PARAM_SIZE 176
  257. #define VI_3DNR_MAX_AUTO_PARAM_NUM 16
  258. /* For DIS*/
  259. #define DIS_PYRAMID_LAYER_NUM 5
  260. #define DIS_MAX_CHN_NUM 16
  261. #define DIS_MAX_IMAGE_WIDTH (8192)
  262. #define DIS_MIN_IMAGE_WIDTH (1280)
  263. #define DIS_MAX_IMAGE_HEIGHT (8192)
  264. #define DIS_MIN_IMAGE_HEIGHT (720)
  265. /* For VO */
  266. #define VO_MIN_CHN_WIDTH 32 /* channel minimal width */
  267. #define VO_MIN_CHN_HEIGHT 32 /* channel minimal height */
  268. #define VO_MAX_ZOOM_RATIO 1000 /* max zoom ratio, 1000 means 100% scale */
  269. #define VO_MAX_DEV_NUM 2 /* max dev num */
  270. #define VO_MAX_LAYER_NUM 3 /* max layer num */
  271. #define VO_MAX_PRIORITY 2 /* max layer priority */
  272. #define VO_MAX_CHN_NUM 64 /* max chn num */
  273. #define VO_MAX_LAYER_IN_DEV 2 /* max layer num of each dev */
  274. #define VO_MAX_GRAPHICS_LAYER_NUM 3
  275. #define VO_MAX_WBC_NUM 1
  276. #define VO_MIN_TOLERATE 1 /* min play toleration 1ms */
  277. #define VO_MAX_TOLERATE 100000 /* max play toleration 100s */
  278. /* For AVS */
  279. #define AVS_MAX_GRP_NUM 32 /* max grp num */
  280. #define AVS_PIPE_NUM 8 /* max pipe num */
  281. #define AVS_MAX_CHN_NUM 2 /* max chn num */
  282. #define AVS_SPLIT_NUM 2
  283. #define AVS_SPLIT_PIPE_NUM 6
  284. #define AVS_CUBE_MAP_SURFACE_NUM 6
  285. #define AVS_MAX_IN_WIDTH 8192
  286. #define AVS_MAX_IN_HEIGHT 8192
  287. #define AVS_MIN_IN_WIDTH 1280
  288. #define AVS_MIN_IN_HEIGHT 720
  289. #define AVS_MAX_OUT_WIDTH 16384
  290. #define AVS_MAX_OUT_HEIGHT 8192
  291. #define AVS_MIN_OUT_WIDTH 256
  292. #define AVS_MIN_OUT_HEIGHT 256
  293. /* For AUDIO */
  294. #define AI_DEV_MAX_NUM 2
  295. #define AO_DEV_MIN_NUM 0
  296. #define AO_DEV_MAX_NUM 3
  297. #define AIO_MAX_NUM ((AO_DEV_MAX_NUM > AI_DEV_MAX_NUM) ? AO_DEV_MAX_NUM:AI_DEV_MAX_NUM)
  298. #define AENC_MAX_CHN_NUM 32
  299. #define ADEC_MAX_CHN_NUM 32
  300. #define AI_MAX_CHN_NUM 16
  301. #define AO_MAX_CHN_NUM 3
  302. #define AO_SYSCHN_CHNID (AO_MAX_CHN_NUM - 1)
  303. #define AIO_MAX_CHN_NUM ((AO_MAX_CHN_NUM > AI_MAX_CHN_NUM) ? AO_MAX_CHN_NUM:AI_MAX_CHN_NUM)
  304. /* For VPSS */
  305. #ifdef __HuaweiLite__
  306. #define VPSS_MAX_GRP_NUM 128
  307. #else
  308. #define VPSS_MAX_GRP_NUM 256
  309. #endif
  310. #define VPSS_IP_NUM 2
  311. #define VPSS0 0
  312. #define VPSS1 1
  313. #define VPSS_MAX_GRP_PIPE_NUM 2
  314. #define VPSS_PARALLEL_PIC_NUM 2
  315. #define VPSS_MAX_PHY_CHN_NUM 4
  316. #define VPSS_MAX_EXT_CHN_NUM 8
  317. #define VPSS_MAX_CHN_NUM (VPSS_MAX_PHY_CHN_NUM + VPSS_MAX_EXT_CHN_NUM)
  318. #define VPSS_MIN_IMAGE_WIDTH_SBS 512
  319. #define VPSS_MIN_IMAGE_WIDTH 64
  320. #define VPSS_MIN_IMAGE_HEIGHT 64
  321. #define VPSS_MAX_IMAGE_WIDTH_SLAVE 8192
  322. #define VPSS_MAX_IMAGE_WIDTH_SBS 8192
  323. #define VPSS_MAX_IMAGE_WIDTH_ONLINE 4096
  324. #define VPSS_MAX_IMAGE_WIDTH 16384
  325. #define VPSS_MAX_IMAGE_HEIGHT 16384
  326. #define VPSS_EXTCHN_MAX_IMAGE_WIDTH 16384
  327. #define VPSS_EXTCHN_MAX_IMAGE_HEIGHT 16384
  328. #define VPSS_MAX_ZOOMIN 16
  329. #define VPSS_MAX_ZOOMOUT 15
  330. #define VPSS_EXT_CHN_MAX_ZOOMIN 16
  331. #define VPSS_EXT_CHN_MAX_ZOOMOUT 30
  332. /* For PCIV */
  333. #define PCIV_MAX_CHN_NUM 16 /* max pciv channel number in each pciv device */
  334. /*For IVS_MD*/
  335. #define MD_MAX_CHN 64
  336. #define MD_MAX_WIDTH 1920
  337. #define MD_MAX_HEIGHT 1080
  338. #define MD_MIN_WIDTH 64
  339. #define MD_MIN_HEIGHT 64
  340. /* For RECT */
  341. #define DPU_RECT_MAX_GRP_NUM 8
  342. #define DPU_RECT_MAX_PIPE_NUM 2
  343. #define DPU_RECT_MAX_CHN_NUM 2
  344. #define DPU_RECT_IN_IMAGE_MAX_WIDTH 2048
  345. #define DPU_RECT_IN_IMAGE_MAX_HEIGHT 2048
  346. #define DPU_RECT_IN_IMAGE_MIN_WIDTH 128
  347. #define DPU_RECT_IN_IMAGE_MIN_HEIGHT 64
  348. #define DPU_RECT_OUT_IMAGE_MAX_WIDTH 1920
  349. #define DPU_RECT_OUT_IMAGE_MAX_HEIGHT 1080
  350. #define DPU_RECT_OUT_IMAGE_MIN_WIDTH 128
  351. #define DPU_RECT_OUT_IMAGE_MIN_HEIGHT 64
  352. /* For MATCH */
  353. #define DPU_MATCH_MAX_GRP_NUM 8
  354. #define DPU_MATCH_MAX_PIPE_NUM 2
  355. #define DPU_MATCH_MAX_CHN_NUM 1
  356. #define DPU_MATCH_IN_IMAGE_MAX_WIDTH 1920
  357. #define DPU_MATCH_IN_IMAGE_MAX_HEIGHT 1080
  358. #define DPU_MATCH_IN_IMAGE_MIN_WIDTH 128
  359. #define DPU_MATCH_IN_IMAGE_MIN_HEIGHT 64
  360. #define DPU_MATCH_OUT_IMAGE_MAX_WIDTH 1920
  361. #define DPU_MATCH_OUT_IMAGE_MAX_HEIGHT 1080
  362. #define DPU_MATCH_OUT_IMAGE_MIN_WIDTH 128
  363. #define DPU_MATCH_OUT_IMAGE_MIN_HEIGHT 64
  364. /*For Gdc*/
  365. #define FISHEYE_MIN_IN_IMAGE_WIDTH 1920
  366. #define FISHEYE_MIN_IN_IMAGE_HEIGHT 1080
  367. #define FISHEYE_MIN_OUT_IMAGE_WIDTH 640
  368. #define FISHEYE_MIN_OUT_IMAGE_HEIGHT 360
  369. #define LDC_MIN_IMAGE_WIDTH 640
  370. #define LDC_MIN_IMAGE_HEIGHT 480
  371. #define SPREAD_MIN_IMAGE_WIDTH 640
  372. #define SPREAD_MIN_IMAGE_HEIGHT 480
  373. #define PMF_MIN_IMAGE_WIDTH 480
  374. #define PMF_MIN_IMAGE_HEIGHT 360
  375. #define ROTATION_EX_MIN_IMAGE_WIDTH 640
  376. #define ROTATION_EX_MIN_IMAGE_HEIGHT 480
  377. #define GDC_MAX_IMAGE_WIDTH 8192
  378. #define GDC_MAX_IMAGE_HEIGHT 8192
  379. #define GDC_IP_NUM 2
  380. #define GDC_FUSION_NUM 9
  381. /*For VGS*/
  382. #define VGS_IP_NUM 2
  383. #define VGS0 0
  384. #define VGS1 1
  385. #ifdef __cplusplus
  386. #if __cplusplus
  387. }
  388. #endif
  389. #endif /* __cplusplus */
  390. #endif /* __HI_DEFINES_H__ */