summaryrefslogtreecommitdiff
path: root/drivers/stm/stm_fw.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/stm/stm_fw.h')
-rw-r--r--drivers/stm/stm_fw.h22
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