diff options
Diffstat (limited to 'drivers/stm/stm_fw.h')
-rw-r--r-- | drivers/stm/stm_fw.h | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/drivers/stm/stm_fw.h b/drivers/stm/stm_fw.h index e6bf0411f46..bcaa307d0ad 100644 --- a/drivers/stm/stm_fw.h +++ b/drivers/stm/stm_fw.h @@ -39,6 +39,15 @@ #ifndef _STM_FW_H #define _STM_FW_H +enum stm_usecase { + USER_CHANNEL_REQUEST, + PRINTK_CHANNEL_REQUEST, + TRACEPOINT_CHANEL_REQUEST, + LTTNG_CHANNEL_REQUEST, + REMOVE_CHANNEL_REQUEST, + LAST_REQUEST +}; + struct stm_global_info { int total_chn_cnt; int reserved_chn_cnt; @@ -51,17 +60,18 @@ struct stm_global_info { struct stm_operations { char *name; int (*get_global_info)(struct stm_global_info *info); - int (*write) (int chn, char *pbuf, int cnt, bool uspace, + int (*write) (void *chn_id, char *pbuf, int cnt, bool uspace, bool timestamp); - int (*write_mark)(int chn, char *pbuf, int cnt, bool uspace, + int (*write_mark)(void *chn_id, char *pbuf, int cnt, bool uspace, bool timestamp); - int (*allocate_channel) (char *usecase); - int (*free_channel) (int chn); - int (*config_write)(int chn, char *config_string, int count); - int (*config_read)(int chn, char *config_string, int count); + int (*allocate_channel) (enum stm_usecase uc_id, void **chn_id); + int (*free_channel) (void *chn_id); + int (*config_write)(void *chn_id, char *config_string); + int (*config_read)(void *chn_id, char *config_string, int count); int (*mmap)(struct vm_area_struct *vma); }; int stm_register(struct stm_operations *stm_ops); +int stm_unregister(void); #endif |