summaryrefslogtreecommitdiffstats
path: root/iaxxx-odsp.h
blob: c937027701a30b602ff4bc1e671d783ba1652548 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ***   To edit the content of this header, modify the corresponding
 ***   source file (e.g. under external/kernel-headers/original/) then
 ***   run bionic/libc/kernel/tools/update_all.py
 ***
 ***   Any manual change here will be lost the next time this script will
 ***   be run. You've been warned!
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef __IAXXX_ODSP_H__
#define __IAXXX_ODSP_H__

#define NAME_MAX_SIZE 256
#define IAXXX_PACKAGE_VER_STR_SIZE_MAX (100)
#define IAXXX_PLUGIN_VER_STR_SIZE_MAX (100)
#define IAXXX_MAX_PLUGIN_ENDPOINTS (16)
#define IAXXX_MAX_VER_STR_SIZE (20)
enum {
 IAXXX_FW_CRASH,
 IAXXX_FW_IDLE,
 IAXXX_FW_ACTIVE
};

struct iaxxx_plugin_info {
  uint32_t plg_idx;
  uint32_t pkg_id;
  uint32_t block_id;
  uint32_t inst_id;
  uint32_t priority;
  uint32_t config_id;
};
struct iaxxx_plugin_param {
  uint32_t inst_id;
  uint32_t param_id;
  uint32_t param_val;
  uint8_t block_id;
};
struct iaxxx_plugin_param_blk {
  uint32_t inst_id;
  uint32_t param_size;
  uint64_t param_blk;
  uint8_t block_id;
  uint32_t id;
  char file_name[NAME_MAX_SIZE];
};
struct iaxxx_plugin_create_cfg {
  char file_name[NAME_MAX_SIZE];
  uint32_t inst_id;
  uint32_t cfg_size;
  uint64_t cfg_val;
  uint8_t block_id;
};
struct iaxxx_set_event {
  uint8_t inst_id;
  uint32_t event_enable_mask;
  uint32_t block_id;
};
struct iaxxx_evt_trigger {
  uint16_t src_id;
  uint16_t evt_id;
  uint32_t src_opaque;
};
struct iaxxx_evt_read_subscription {
  uint16_t src_id;
  uint16_t evt_id;
  uint16_t dst_id;
  uint32_t dst_opaque;
};
struct iaxxx_evt_retrieve_notification {
  uint16_t src_id;
  uint16_t evt_id;
  uint32_t src_opaque;
  uint32_t dst_opaque;
};
struct iaxxx_evt_info {
  uint16_t src_id;
  uint16_t event_id;
  uint16_t dst_id;
  uint32_t dst_opaque;
};
struct iaxxx_get_event {
  uint16_t event_id;
  uint32_t data;
};
struct iaxxx_pkg_mgmt_info {
  char pkg_name[NAME_MAX_SIZE];
  uint32_t pkg_id;
  uint32_t proc_id;
};
struct iaxxx_plugin_custom_cfg {
  char file_name[NAME_MAX_SIZE];
  uint32_t inst_id;
  uint8_t block_id;
  uint32_t param_blk_id;
  uint32_t custom_config_id;
};
struct iaxxx_plugin_error_info {
  uint8_t block_id;
  uint32_t error_code;
  uint8_t error_instance;
};
struct iaxxx_plugin_set_param_blk_with_ack_info {
  uint32_t inst_id;
  uint8_t block_id;
  uint32_t param_blk_id;
  uint32_t set_param_blk_size;
  uint64_t set_param_blk_buffer;
  uint64_t response_buffer;
  uint32_t response_buf_size;
  uint32_t max_retries;
};
struct iaxxx_plugin_status_info {
  uint32_t inst_id;
  uint32_t block_id;
  uint8_t create_status;
  uint8_t enable_status;
  uint16_t process_count;
  uint16_t process_err_count;
  uint32_t in_frames_consumed;
  uint32_t out_frames_produced;
  uint32_t private_memsize;
  uint8_t frame_notification_mode;
  uint8_t state_management_mode;
};
struct iaxxx_plugin_endpoint_status_info {
  uint32_t inst_id;
  uint8_t ep_index;
  uint8_t direction;
  uint8_t status;
  uint8_t frame_status;
  uint8_t endpoint_status;
  uint8_t usage;
  uint8_t mandatory;
  uint16_t counter;
  uint8_t op_encoding;
  uint8_t op_sample_rate;
  uint16_t op_frame_length;
};
struct iaxxx_plugin_get_package_version {
  uint8_t inst_id;
  char version[IAXXX_PACKAGE_VER_STR_SIZE_MAX];
  uint32_t len;
};
struct iaxxx_plugin_get_plugin_version {
  uint8_t inst_id;
  char version[IAXXX_PLUGIN_VER_STR_SIZE_MAX];
  uint32_t len;
};
struct iaxxx_plugin_endpoint_timestamps {
  uint8_t proc_id;
  uint64_t timestamps[IAXXX_MAX_PLUGIN_ENDPOINTS];
};
struct iaxxx_proc_execution_status {
  uint8_t proc_id;
  uint32_t status;
};
struct iaxxx_sys_versions {
  uint32_t app_ver_num;
  char app_ver_str[IAXXX_MAX_VER_STR_SIZE];
  uint32_t app_ver_str_len;
  uint32_t rom_ver_num;
  char rom_ver_str[IAXXX_MAX_VER_STR_SIZE];
  uint32_t rom_ver_str_len;
};
#define IAXXX_IOCTL_MAGIC 'I'
#define ODSP_PLG_CREATE _IO(IAXXX_IOCTL_MAGIC, 0x11)
#define ODSP_PLG_RESET _IO(IAXXX_IOCTL_MAGIC, 0x12)
#define ODSP_PLG_ENABLE _IO(IAXXX_IOCTL_MAGIC, 0x13)
#define ODSP_PLG_DISABLE _IO(IAXXX_IOCTL_MAGIC, 0x14)
#define ODSP_PLG_DESTROY _IO(IAXXX_IOCTL_MAGIC, 0x15)
#define ODSP_PLG_SET_PARAM _IO(IAXXX_IOCTL_MAGIC, 0x16)
#define ODSP_PLG_GET_PARAM _IO(IAXXX_IOCTL_MAGIC, 0x17)
#define ODSP_PLG_SET_PARAM_BLK _IO(IAXXX_IOCTL_MAGIC, 0x18)
#define ODSP_PLG_SET_CREATE_CFG _IO(IAXXX_IOCTL_MAGIC, 0x19)
#define ODSP_PLG_SET_EVENT _IO(IAXXX_IOCTL_MAGIC, 0x1A)
#define ODSP_EVENT_SUBSCRIBE _IO(IAXXX_IOCTL_MAGIC, 0x1B)
#define ODSP_GET_EVENT _IO(IAXXX_IOCTL_MAGIC, 0x1C)
#define ODSP_EVENT_UNSUBSCRIBE _IO(IAXXX_IOCTL_MAGIC, 0x1D)
#define ODSP_LOAD_PACKAGE _IO(IAXXX_IOCTL_MAGIC, 0x1E)
#define ODSP_UNLOAD_PACKAGE _IO(IAXXX_IOCTL_MAGIC, 0x1F)
#define ODSP_PLG_SET_CUSTOM_CFG _IO(IAXXX_IOCTL_MAGIC, 0x20)
#define ODSP_PLG_GET_PARAM_BLK _IO(IAXXX_IOCTL_MAGIC, 0x21)
#define ODSP_PLG_CREATE_STATIC_PACKAGE _IO(IAXXX_IOCTL_MAGIC, 0x22)
#define ODSP_PLG_READ_PLUGIN_ERROR _IO(IAXXX_IOCTL_MAGIC, 0x23)
#define ODSP_PLG_SET_PARAM_BLK_WITH_ACK _IO(IAXXX_IOCTL_MAGIC, 0x24)
#define ODSP_PLG_GET_STATUS_INFO _IO(IAXXX_IOCTL_MAGIC, 0x25)
#define ODSP_PLG_GET_ENDPOINT_STATUS _IO(IAXXX_IOCTL_MAGIC, 0x26)
#define ODSP_EVENT_TRIGGER _IO(IAXXX_IOCTL_MAGIC, 0x27)
#define ODSP_EVENT_READ_SUBSCRIPTION _IO(IAXXX_IOCTL_MAGIC, 0x28)
#define ODSP_EVENT_RETRIEVE_NOTIFICATION _IO(IAXXX_IOCTL_MAGIC, 0x29)
#define ODSP_PLG_GET_PACKAGE_VERSION _IO(IAXXX_IOCTL_MAGIC, 0x2A)
#define ODSP_PLG_GET_PLUGIN_VERSION _IO(IAXXX_IOCTL_MAGIC, 0x2B)
#define ODSP_EVENT_RESET_READ_INDEX _IO(IAXXX_IOCTL_MAGIC, 0x2C)
#define ODSP_PLG_GET_ENDPOINT_TIMESTAMPS _IO(IAXXX_IOCTL_MAGIC, 0x2D)
#define ODSP_GET_PROC_EXECUTION_STATUS _IO(IAXXX_IOCTL_MAGIC, 0x2E)
#define ODSP_GET_SYS_VERSIONS _IO(IAXXX_IOCTL_MAGIC, 0x2F)
#define ODSP_GET_SYS_DEVICE_ID _IO(IAXXX_IOCTL_MAGIC, 0x30)
#define ODSP_GET_SYS_MODE _IO(IAXXX_IOCTL_MAGIC, 0x31)
#define ODSP_GET_FW_STATUS _IO(IAXXX_IOCTL_MAGIC, 0x32)
#define ODSP_RESET_FW  _IO(IAXXX_IOCTL_MAGIC, 0x33)
#endif