BSP_S32 BSP_ICC_Ioctl(BSP_U32 u32ChanId, BSP_U32 cmd, BSP_VOID *param) { /*lint --e{701} */ u32 channel_id = 0; s32 ret = ICC_OK; if ((u32ChanId >= UDI_ICC_GUOM0 ) && (u32ChanId <= UDI_ICC_GUOM5)) { u32ChanId = u32ChanId - UDI_ICC_GUOM0 + ICC_CHN_GUOM0; } channel_id = ((u16)u32ChanId << 16 | (u16)ICC_DEFAULT_SUB_CHANNEL);/* [false alarm]:屏蔽Fortify错误 */ if(u32ChanId >= ICC_CHN_ID_MAX) { icc_print_error("invalid param[%d].\n", u32ChanId); return ICC_INVALID_PARA; } switch(cmd) { case ICC_IOCTL_SET_READ_CB: { ret = (s32)bsp_icc_event_register(channel_id, icc_read_cb_wraper ,(void*)param, NULL, NULL); break; } case ICC_IOCTL_SET_WRITE_CB: { ret = (s32)bsp_icc_event_register(channel_id, NULL, NULL, icc_write_cb_wraper ,(void*)param); break; } case ICC_IOCTL_GET_STATE: { ret = (s32)bsp_icc_channel_status_get((u32)u32ChanId, (u32*)param); break; } case ICC_IOCTL_SET_EVENT_CB: { break; } default: { icc_print_error("channel[%d] invalid cmd[%d].\n", u32ChanId, cmd); ret = ICC_INVALID_PARA; break; } } return ret; }
BSP_S32 BSP_ICC_Ioctl(BSP_U32 u32ChanId, BSP_U32 cmd, BSP_VOID *param) { u32 func_id = ICC_DEFAULT_SUB_CHANNEL; u32 channel_id = u32ChanId << 16 | func_id; s32 ret = ICC_OK; if(u32ChanId >= ICC_CHN_ID_MAX) { icc_print_error("invalid param[%d].\n", u32ChanId); return BSP_ERR_ICC_INVALID_PARAM; } switch(cmd) { case ICC_IOCTL_SET_READ_CB: { ret = (s32)bsp_icc_event_register(channel_id, icc_read_cb_wraper ,(void*)param, NULL, NULL); break; } case ICC_IOCTL_SET_WRITE_CB: { ret = (s32)bsp_icc_event_register(channel_id, NULL, NULL, icc_write_cb_wraper ,(void*)param); break; } case ICC_IOCTL_GET_STATE: { ret = (s32)bsp_icc_channel_status_get((u32)u32ChanId, (u32*)param); break; } case ICC_IOCTL_SET_EVENT_CB: { break; } default: { icc_print_error("channel[%d] invalid cmd[%d].\n", u32ChanId, cmd); ret = BSP_ERR_ICC_INVALID_PARAM; break; } } return ret; }