13c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/****************************************************************************
23c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ****************************************************************************
33c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ***
43c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ***   This header was automatically generated from a Linux kernel header
53c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ***   of the same name, to make information necessary for userspace to
63c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ***   call into the kernel available to libc.  It contains only constants,
73c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ***   structures, and macros generated from the original header, and thus,
83c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ***   contains no copyrightable information.
93c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ***
103c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ***   To edit the content of this header, modify the corresponding
113c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ***   source file (e.g. under external/kernel-headers/original/) then
123c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ***   run bionic/libc/kernel/tools/update_all.py
133c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ***
143c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ***   Any manual change here will be lost the next time this script will
153c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ***   be run. You've been warned!
163c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ***
173c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ****************************************************************************
183c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang ****************************************************************************/
193c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#ifndef __LINUX_MSMB_CAMERA_H
203c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define __LINUX_MSMB_CAMERA_H
213c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#include <linux/videodev2.h>
223c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#include <linux/types.h>
233c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
243c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#include <linux/ioctl.h>
253c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAM_V4L2_IOCTL_NOTIFY   _IOW('V', BASE_VIDIOC_PRIVATE + 30, struct msm_v4l2_event_data)
263c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAM_V4L2_IOCTL_NOTIFY_META   _IOW('V', BASE_VIDIOC_PRIVATE + 31, struct msm_v4l2_event_data)
273c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAM_V4L2_IOCTL_CMD_ACK   _IOW('V', BASE_VIDIOC_PRIVATE + 32, struct msm_v4l2_event_data)
283c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
293c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAM_V4L2_IOCTL_NOTIFY_ERROR   _IOW('V', BASE_VIDIOC_PRIVATE + 33, struct msm_v4l2_event_data)
303c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define QCAMERA_DEVICE_GROUP_ID 1
313c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define QCAMERA_VNODE_GROUP_ID 2
323c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_NAME "msm_camera"
333c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
343c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CONFIGURATION_NAME "msm_config"
353c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_CSIPHY 0
363c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_CSID 1
373c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_ISPIF 2
383c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
393c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_VFE 3
403c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_AXI 4
413c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_VPE 5
423c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_SENSOR 6
433c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
443c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_ACTUATOR 7
453c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_EEPROM 8
463c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_CPP 9
473c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_CCI 10
483c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
493c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_LED_FLASH 11
503c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_STROBE_FLASH 12
513c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_BUF_MNGR 13
523c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_SENSOR_INIT 14
533c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab#define MSM_CAMERA_SUBDEV_OIS 15
553c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SUBDEV_CCI_INTF 20
563c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_MAX_CAMERA_SENSORS 5
573c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_MAX_STREAM_BUF 40
583c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab#define MSM_CAMERA_FEATURE_BASE 0x00010000
603c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_FEATURE_SHUTDOWN (MSM_CAMERA_FEATURE_BASE + 1)
613c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_STATUS_BASE 0x00020000
623c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_STATUS_FAIL (MSM_CAMERA_STATUS_BASE + 1)
633c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab#define MSM_CAMERA_STATUS_SUCCESS (MSM_CAMERA_STATUS_BASE + 2)
653c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_V4L2_EVENT_TYPE (V4L2_EVENT_PRIVATE_START + 0x00002000)
663c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_EVENT_MIN 0
673c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_NEW_SESSION (MSM_CAMERA_EVENT_MIN + 1)
683c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab#define MSM_CAMERA_DEL_SESSION (MSM_CAMERA_EVENT_MIN + 2)
703c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_SET_PARM (MSM_CAMERA_EVENT_MIN + 3)
713c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_GET_PARM (MSM_CAMERA_EVENT_MIN + 4)
723c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_MAPPING_CFG (MSM_CAMERA_EVENT_MIN + 5)
733c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab#define MSM_CAMERA_MAPPING_SES (MSM_CAMERA_EVENT_MIN + 6)
753c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_MSM_NOTIFY (MSM_CAMERA_EVENT_MIN + 7)
763c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_EVENT_MAX (MSM_CAMERA_EVENT_MIN + 8)
773c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_PRIV_S_CROP (V4L2_CID_PRIVATE_BASE + 1)
783c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab#define MSM_CAMERA_PRIV_G_CROP (V4L2_CID_PRIVATE_BASE + 2)
803c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_PRIV_G_FMT (V4L2_CID_PRIVATE_BASE + 3)
813c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_PRIV_S_FMT (V4L2_CID_PRIVATE_BASE + 4)
823c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_PRIV_TRY_FMT (V4L2_CID_PRIVATE_BASE + 5)
833c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab#define MSM_CAMERA_PRIV_METADATA (V4L2_CID_PRIVATE_BASE + 6)
853c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_PRIV_QUERY_CAP (V4L2_CID_PRIVATE_BASE + 7)
863c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_PRIV_STREAM_ON (V4L2_CID_PRIVATE_BASE + 8)
873c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_PRIV_STREAM_OFF (V4L2_CID_PRIVATE_BASE + 9)
883c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab#define MSM_CAMERA_PRIV_NEW_STREAM (V4L2_CID_PRIVATE_BASE + 10)
903c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_PRIV_DEL_STREAM (V4L2_CID_PRIVATE_BASE + 11)
913c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_PRIV_SHUTDOWN (V4L2_CID_PRIVATE_BASE + 12)
923c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_PRIV_STREAM_INFO_SYNC   (V4L2_CID_PRIVATE_BASE + 13)
933c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab#define MSM_CAMERA_CMD_SUCESS 0x00000001
953c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_BUF_MAP_SUCESS 0x00000002
963c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_ERR_EVT_BASE 0x00010000
973c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_CAMERA_ERR_CMD_FAIL (MSM_CAMERA_ERR_EVT_BASE + 1)
983c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab#define MSM_CAMERA_ERR_MAPPING (MSM_CAMERA_ERR_EVT_BASE + 2)
1003c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wangstruct msm_v4l2_event_data {
1013c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int command;
1023c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int status;
1033c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab unsigned int session_id;
1053c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int stream_id;
1063c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int map_op;
1073c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int map_buf_idx;
1083c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab unsigned int notify;
1103c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int arg_value;
1113c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int ret_value;
1123c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int v4l2_event_type;
1133c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab unsigned int v4l2_event_id;
1153c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int nop5;
1163c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int nop6;
1173c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int nop7;
1183c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab unsigned int nop8;
1203c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int nop9;
1213c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang};
1223c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wangstruct msm_v4l2_format_data {
1233c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab enum v4l2_buf_type type;
1253c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int width;
1263c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int height;
1273c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int pixelformat;
1283c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab unsigned char num_planes;
1303c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang unsigned int plane_sizes[VIDEO_MAX_PLANES];
1313c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang};
1323c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define msm_v4l2_fourcc(a, b, c, d)  ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) |  ((__u32)(d) << 24))
1333c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab#define MSM_V4L2_PIX_FMT_STATS_COMB v4l2_fourcc('S', 'T', 'C', 'M')
1353c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_V4L2_PIX_FMT_STATS_AE v4l2_fourcc('S', 'T', 'A', 'E')
1363c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_V4L2_PIX_FMT_STATS_AF v4l2_fourcc('S', 'T', 'A', 'F')
1373c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_V4L2_PIX_FMT_STATS_AWB v4l2_fourcc('S', 'T', 'W', 'B')
1383c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab#define MSM_V4L2_PIX_FMT_STATS_IHST v4l2_fourcc('I', 'H', 'S', 'T')
1403c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_V4L2_PIX_FMT_STATS_CS v4l2_fourcc('S', 'T', 'C', 'S')
1413c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_V4L2_PIX_FMT_STATS_RS v4l2_fourcc('S', 'T', 'R', 'S')
1423c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_V4L2_PIX_FMT_STATS_BG v4l2_fourcc('S', 'T', 'B', 'G')
1433c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab#define MSM_V4L2_PIX_FMT_STATS_BF v4l2_fourcc('S', 'T', 'B', 'F')
1453c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#define MSM_V4L2_PIX_FMT_STATS_BHST v4l2_fourcc('B', 'H', 'S', 'T')
1463c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wangenum smmu_attach_mode {
1473c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang NON_SECURE_MODE,
1483c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab SECURE_MODE,
1503c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang MAX_PROTECTION_MODE,
1513c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang};
1523c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wangstruct msm_camera_smmu_attach_type {
1533c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154f6bc42d03f50713e4981b36beda109a565d4b07cMansoor Aftab enum smmu_attach_mode attach;
1553c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang};
1563c85dc9b54252007411d433390ad438d8c0cf36eShuzhen Wang#endif
157