#ifndef __SHUB_CTRL_H__ #define __SHUB_CTRL_H__ #define SHUB_DLOAD_SUPPORT 0 #define SHUB_LOGGING_SUPPORT 0 #define SHUB_EVENT_SUPPORT 0 #define SHUB_FIRMWARE_UPDATE_SUPPORT 1 #ifdef SHUB_DLOAD_SUPPORT #define SHUB_DLOAD_DEVICE_NAME "shub_dload" #define SHUB_DLOAD_IOCTL_CODE (0xAA) #define SHUB_DLOAD_IOCTL_WAIT_FOR_NOTIFY _IOR(SHUB_DLOAD_IOCTL_CODE, 1, uint32_t) #define SHUB_DLOAD_IOCTL_GET_RAMDUMP_SIZE _IOR(SHUB_DLOAD_IOCTL_CODE, 2, uint32_t) #define SHUB_DLOAD_IOCTL_RAMDUMP_START _IO(SHUB_DLOAD_IOCTL_CODE, 3) #define SHUB_DLOAD_IOCTL_RAMDUMP_DONE _IO(SHUB_DLOAD_IOCTL_CODE, 4) #define SHUB_DLOAD_IOCTL_ENABLE_DLOAD _IOW(SHUB_DLOAD_IOCTL_CODE, 5, uint8_t) #endif //SHUB_DLOAD_SUPPORT #ifdef SHUB_LOGGING_SUPPORT #define SHUB_LOG_DEVICE_NAME "shub_log" #define SHUB_LOG_IOCTL_CODE (0xBB) #define SHUB_LOG_IOCTL_WAIT_FOR_NOTIFY _IOR(SHUB_LOG_IOCTL_CODE, 1, uint32_t) #define SHUB_LOG_IOCTL_GET_LOG_SIZE _IOR(SHUB_LOG_IOCTL_CODE, 2, uint32_t) #define SHUB_LOG_IOCTL_GET_LOG_START _IO(SHUB_LOG_IOCTL_CODE, 3) #define SHUB_LOG_IOCTL_GET_LOG_DONE _IO(SHUB_LOG_IOCTL_CODE, 4) #define SHUB_LOG_IOCTL_SET_LOGMASK _IOW(SHUB_LOG_IOCTL_CODE, 5, uint32_t) #define SHUB_LOG_IOCTL_GET_LOGMASK _IOR(SHUB_LOG_IOCTL_CODE, 6, uint32_t) #define SHUB_LOG_IOCTL_SET_LOGLEVEL _IOW(SHUB_LOG_IOCTL_CODE, 7, uint32_t) #define SHUB_LOG_IOCTL_GET_LOGLEVEL _IOR(SHUB_LOG_IOCTL_CODE, 8, uint32_t) #endif //SHUB_LOGGING_SUPPORT #ifdef SHUB_EVENT_SUPPORT #define SHUB_EVENT_DEVICE_NAME "shub_event" #define SHUB_EVENT_IOCTL_CODE (0xDD) #define SHUB_EVENT_IOCTL_WAIT_FOR_NOTIFY _IOR(SHUB_EVENT_IOCTL_CODE, 1, uint32_t) #define SHUB_EVENT_IOCTL_GET_EVENT_SIZE _IOR(SHUB_EVENT_IOCTL_CODE, 2, uint32_t) #define SHUB_EVENT_IOCTL_GET_EVENT_START _IO(SHUB_EVENT_IOCTL_CODE, 3) #define SHUB_EVENT_IOCTL_GET_EVENT_DONE _IO(SHUB_EVENT_IOCTL_CODE, 4) #endif //SHUB_EVENT_SUPPORT #ifdef SHUB_FIRMWARE_UPDATE_SUPPORT typedef struct { uint8_t arch; uint8_t sense; uint8_t cw_lib; uint8_t water; uint8_t active_engine; uint8_t project_mapping; } mcu_fw_version_t; typedef struct { uint8_t jenkins_num_hi; uint8_t jenkins_num_lo; uint8_t build_time_hh; uint8_t build_time_mm; uint8_t cw_branch; uint8_t cw_mcu_type; } mcu_fw_info_t; #define SHUB_FIRMWARE_UPDATE_DEVICE_NAME "shub_fw_fla" #define SHUB_FW_IOCTL_CODE (0xCC) #define SHUB_FW_IOCTL_PRE_FLASH _IO(SHUB_FW_IOCTL_CODE, 1) #define SHUB_FW_IOCTL_POST_FLASH _IO(SHUB_FW_IOCTL_CODE, 2) #define SHUB_FW_IOCTL_GET_FW_VERSION _IOR(SHUB_FW_IOCTL_CODE, 3, mcu_fw_version_t) #define SHUB_FW_IOCTL_GET_FW_CHECKSUM _IOR(SHUB_FW_IOCTL_CODE, 4, uint32_t) #define SHUB_FW_IOCTL_GET_FW_INFO _IOR(SHUB_FW_IOCTL_CODE, 5, mcu_fw_info_t) #define SHUB_FW_IOCTL_START_FW_CHECKSUM _IOW(SHUB_FW_IOCTL_CODE, 6, uint32_t) #endif //SHUB_FIRMWARE_UPDATE_SUPPORT #endif /* __SHUB_CTRL_H__ */