#ifndef __DMCU_ADAPT_H__ #define __DMCU_ADAPT_H__ #include "td_type.h" #include "drv_ipcm_intf.h" #include "soc_log.h" #define DMCU_IPCM_CTRL_SIZE 0x4000 typedef enum { NO_READY = 0, READY, FREEZE, SUSPEND, RUNNING, STOP, INVAILD } thread_status; typedef enum { DMCU_CMD_VAM_ALLOC, DMCU_CMD_VAM_FREE, DMCU_CMD_MEM_INIT, DMCU_CMD_STARTUP, DMCU_CMD_SUSPEND, DMCU_CMD_RESUME, DMCU_CMD_PROC_WRITE, DMCU_CMD_PROC_READ, DMCU_CMD_CTRL_MAX } dmcu_ctrl_cmd; typedef struct { dmcu_ctrl_cmd cmd; td_bool need_data; td_bool need_ack; } dmcu_send_cmd_para; typedef struct dmcu_recieve_cmd_function_ { int cmd; td_s32 (*handler)(dmcu_ctrl_cmd cmd, td_void *arg, td_u32 length); td_char *name; } dmcu_recieve_cmd_function; #define dmcu_send_bundle_def(command, need_get_data, need_process_ack) \ { \ .cmd = (command), \ .need_data = (need_get_data), \ .need_ack = (need_process_ack), \ } td_s32 dmcu_adapt_init(td_void); td_s32 dmcu_adapt_deinit(td_void); td_s32 dmcu_client_send_process(dmcu_ctrl_cmd cmd, td_void *args, td_u32 length); #endif /* __DMCU_ADAPT_H__ */