xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/virtio_snd.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef VIRTIO_SND_IF_H
8*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SND_IF_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/virtio_types.h>
10*8d67ca89SAndroid Build Coastguard Worker enum {
11*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_F_CTLS = 0
12*8d67ca89SAndroid Build Coastguard Worker };
13*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_config {
14*8d67ca89SAndroid Build Coastguard Worker   __le32 jacks;
15*8d67ca89SAndroid Build Coastguard Worker   __le32 streams;
16*8d67ca89SAndroid Build Coastguard Worker   __le32 chmaps;
17*8d67ca89SAndroid Build Coastguard Worker   __le32 controls;
18*8d67ca89SAndroid Build Coastguard Worker };
19*8d67ca89SAndroid Build Coastguard Worker enum {
20*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_VQ_CONTROL = 0,
21*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_VQ_EVENT,
22*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_VQ_TX,
23*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_VQ_RX,
24*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_VQ_MAX
25*8d67ca89SAndroid Build Coastguard Worker };
26*8d67ca89SAndroid Build Coastguard Worker enum {
27*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_D_OUTPUT = 0,
28*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_D_INPUT
29*8d67ca89SAndroid Build Coastguard Worker };
30*8d67ca89SAndroid Build Coastguard Worker enum {
31*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_JACK_INFO = 1,
32*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_JACK_REMAP,
33*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_PCM_INFO = 0x0100,
34*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_PCM_SET_PARAMS,
35*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_PCM_PREPARE,
36*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_PCM_RELEASE,
37*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_PCM_START,
38*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_PCM_STOP,
39*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_CHMAP_INFO = 0x0200,
40*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_CTL_INFO = 0x0300,
41*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_CTL_ENUM_ITEMS,
42*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_CTL_READ,
43*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_CTL_WRITE,
44*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_CTL_TLV_READ,
45*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_CTL_TLV_WRITE,
46*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_R_CTL_TLV_COMMAND,
47*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_EVT_JACK_CONNECTED = 0x1000,
48*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_EVT_JACK_DISCONNECTED,
49*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_EVT_PCM_PERIOD_ELAPSED = 0x1100,
50*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_EVT_PCM_XRUN,
51*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_EVT_CTL_NOTIFY = 0x1200,
52*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_S_OK = 0x8000,
53*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_S_BAD_MSG,
54*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_S_NOT_SUPP,
55*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_S_IO_ERR
56*8d67ca89SAndroid Build Coastguard Worker };
57*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_hdr {
58*8d67ca89SAndroid Build Coastguard Worker   __le32 code;
59*8d67ca89SAndroid Build Coastguard Worker };
60*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_event {
61*8d67ca89SAndroid Build Coastguard Worker   struct virtio_snd_hdr hdr;
62*8d67ca89SAndroid Build Coastguard Worker   __le32 data;
63*8d67ca89SAndroid Build Coastguard Worker };
64*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_query_info {
65*8d67ca89SAndroid Build Coastguard Worker   struct virtio_snd_hdr hdr;
66*8d67ca89SAndroid Build Coastguard Worker   __le32 start_id;
67*8d67ca89SAndroid Build Coastguard Worker   __le32 count;
68*8d67ca89SAndroid Build Coastguard Worker   __le32 size;
69*8d67ca89SAndroid Build Coastguard Worker };
70*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_info {
71*8d67ca89SAndroid Build Coastguard Worker   __le32 hda_fn_nid;
72*8d67ca89SAndroid Build Coastguard Worker };
73*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_jack_hdr {
74*8d67ca89SAndroid Build Coastguard Worker   struct virtio_snd_hdr hdr;
75*8d67ca89SAndroid Build Coastguard Worker   __le32 jack_id;
76*8d67ca89SAndroid Build Coastguard Worker };
77*8d67ca89SAndroid Build Coastguard Worker enum {
78*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_JACK_F_REMAP = 0
79*8d67ca89SAndroid Build Coastguard Worker };
80*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_jack_info {
81*8d67ca89SAndroid Build Coastguard Worker   struct virtio_snd_info hdr;
82*8d67ca89SAndroid Build Coastguard Worker   __le32 features;
83*8d67ca89SAndroid Build Coastguard Worker   __le32 hda_reg_defconf;
84*8d67ca89SAndroid Build Coastguard Worker   __le32 hda_reg_caps;
85*8d67ca89SAndroid Build Coastguard Worker   __u8 connected;
86*8d67ca89SAndroid Build Coastguard Worker   __u8 padding[7];
87*8d67ca89SAndroid Build Coastguard Worker };
88*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_jack_remap {
89*8d67ca89SAndroid Build Coastguard Worker   struct virtio_snd_jack_hdr hdr;
90*8d67ca89SAndroid Build Coastguard Worker   __le32 association;
91*8d67ca89SAndroid Build Coastguard Worker   __le32 sequence;
92*8d67ca89SAndroid Build Coastguard Worker };
93*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_pcm_hdr {
94*8d67ca89SAndroid Build Coastguard Worker   struct virtio_snd_hdr hdr;
95*8d67ca89SAndroid Build Coastguard Worker   __le32 stream_id;
96*8d67ca89SAndroid Build Coastguard Worker };
97*8d67ca89SAndroid Build Coastguard Worker enum {
98*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_F_SHMEM_HOST = 0,
99*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_F_SHMEM_GUEST,
100*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_F_MSG_POLLING,
101*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_F_EVT_SHMEM_PERIODS,
102*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_F_EVT_XRUNS
103*8d67ca89SAndroid Build Coastguard Worker };
104*8d67ca89SAndroid Build Coastguard Worker enum {
105*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_IMA_ADPCM = 0,
106*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_MU_LAW,
107*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_A_LAW,
108*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_S8,
109*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_U8,
110*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_S16,
111*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_U16,
112*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_S18_3,
113*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_U18_3,
114*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_S20_3,
115*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_U20_3,
116*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_S24_3,
117*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_U24_3,
118*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_S20,
119*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_U20,
120*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_S24,
121*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_U24,
122*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_S32,
123*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_U32,
124*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_FLOAT,
125*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_FLOAT64,
126*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_DSD_U8,
127*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_DSD_U16,
128*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_DSD_U32,
129*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_FMT_IEC958_SUBFRAME
130*8d67ca89SAndroid Build Coastguard Worker };
131*8d67ca89SAndroid Build Coastguard Worker enum {
132*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_RATE_5512 = 0,
133*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_RATE_8000,
134*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_RATE_11025,
135*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_RATE_16000,
136*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_RATE_22050,
137*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_RATE_32000,
138*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_RATE_44100,
139*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_RATE_48000,
140*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_RATE_64000,
141*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_RATE_88200,
142*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_RATE_96000,
143*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_RATE_176400,
144*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_RATE_192000,
145*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_PCM_RATE_384000
146*8d67ca89SAndroid Build Coastguard Worker };
147*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_pcm_info {
148*8d67ca89SAndroid Build Coastguard Worker   struct virtio_snd_info hdr;
149*8d67ca89SAndroid Build Coastguard Worker   __le32 features;
150*8d67ca89SAndroid Build Coastguard Worker   __le64 formats;
151*8d67ca89SAndroid Build Coastguard Worker   __le64 rates;
152*8d67ca89SAndroid Build Coastguard Worker   __u8 direction;
153*8d67ca89SAndroid Build Coastguard Worker   __u8 channels_min;
154*8d67ca89SAndroid Build Coastguard Worker   __u8 channels_max;
155*8d67ca89SAndroid Build Coastguard Worker   __u8 padding[5];
156*8d67ca89SAndroid Build Coastguard Worker };
157*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_pcm_set_params {
158*8d67ca89SAndroid Build Coastguard Worker   struct virtio_snd_pcm_hdr hdr;
159*8d67ca89SAndroid Build Coastguard Worker   __le32 buffer_bytes;
160*8d67ca89SAndroid Build Coastguard Worker   __le32 period_bytes;
161*8d67ca89SAndroid Build Coastguard Worker   __le32 features;
162*8d67ca89SAndroid Build Coastguard Worker   __u8 channels;
163*8d67ca89SAndroid Build Coastguard Worker   __u8 format;
164*8d67ca89SAndroid Build Coastguard Worker   __u8 rate;
165*8d67ca89SAndroid Build Coastguard Worker   __u8 padding;
166*8d67ca89SAndroid Build Coastguard Worker };
167*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_pcm_xfer {
168*8d67ca89SAndroid Build Coastguard Worker   __le32 stream_id;
169*8d67ca89SAndroid Build Coastguard Worker };
170*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_pcm_status {
171*8d67ca89SAndroid Build Coastguard Worker   __le32 status;
172*8d67ca89SAndroid Build Coastguard Worker   __le32 latency_bytes;
173*8d67ca89SAndroid Build Coastguard Worker };
174*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_chmap_hdr {
175*8d67ca89SAndroid Build Coastguard Worker   struct virtio_snd_hdr hdr;
176*8d67ca89SAndroid Build Coastguard Worker   __le32 chmap_id;
177*8d67ca89SAndroid Build Coastguard Worker };
178*8d67ca89SAndroid Build Coastguard Worker enum {
179*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_NONE = 0,
180*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_NA,
181*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_MONO,
182*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_FL,
183*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_FR,
184*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_RL,
185*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_RR,
186*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_FC,
187*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_LFE,
188*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_SL,
189*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_SR,
190*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_RC,
191*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_FLC,
192*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_FRC,
193*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_RLC,
194*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_RRC,
195*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_FLW,
196*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_FRW,
197*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_FLH,
198*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_FCH,
199*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_FRH,
200*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_TC,
201*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_TFL,
202*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_TFR,
203*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_TFC,
204*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_TRL,
205*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_TRR,
206*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_TRC,
207*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_TFLC,
208*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_TFRC,
209*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_TSL,
210*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_TSR,
211*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_LLFE,
212*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_RLFE,
213*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_BC,
214*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_BLC,
215*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CHMAP_BRC
216*8d67ca89SAndroid Build Coastguard Worker };
217*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SND_CHMAP_MAX_SIZE 18
218*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_chmap_info {
219*8d67ca89SAndroid Build Coastguard Worker   struct virtio_snd_info hdr;
220*8d67ca89SAndroid Build Coastguard Worker   __u8 direction;
221*8d67ca89SAndroid Build Coastguard Worker   __u8 channels;
222*8d67ca89SAndroid Build Coastguard Worker   __u8 positions[VIRTIO_SND_CHMAP_MAX_SIZE];
223*8d67ca89SAndroid Build Coastguard Worker };
224*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_ctl_hdr {
225*8d67ca89SAndroid Build Coastguard Worker   struct virtio_snd_hdr hdr;
226*8d67ca89SAndroid Build Coastguard Worker   __le32 control_id;
227*8d67ca89SAndroid Build Coastguard Worker };
228*8d67ca89SAndroid Build Coastguard Worker enum {
229*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_ROLE_UNDEFINED = 0,
230*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_ROLE_VOLUME,
231*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_ROLE_MUTE,
232*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_ROLE_GAIN
233*8d67ca89SAndroid Build Coastguard Worker };
234*8d67ca89SAndroid Build Coastguard Worker enum {
235*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_TYPE_BOOLEAN = 0,
236*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_TYPE_INTEGER,
237*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_TYPE_INTEGER64,
238*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_TYPE_ENUMERATED,
239*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_TYPE_BYTES,
240*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_TYPE_IEC958
241*8d67ca89SAndroid Build Coastguard Worker };
242*8d67ca89SAndroid Build Coastguard Worker enum {
243*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_ACCESS_READ = 0,
244*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_ACCESS_WRITE,
245*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_ACCESS_VOLATILE,
246*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_ACCESS_INACTIVE,
247*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_ACCESS_TLV_READ,
248*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_ACCESS_TLV_WRITE,
249*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_ACCESS_TLV_COMMAND
250*8d67ca89SAndroid Build Coastguard Worker };
251*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_ctl_info {
252*8d67ca89SAndroid Build Coastguard Worker   struct virtio_snd_info hdr;
253*8d67ca89SAndroid Build Coastguard Worker   __le32 role;
254*8d67ca89SAndroid Build Coastguard Worker   __le32 type;
255*8d67ca89SAndroid Build Coastguard Worker   __le32 access;
256*8d67ca89SAndroid Build Coastguard Worker   __le32 count;
257*8d67ca89SAndroid Build Coastguard Worker   __le32 index;
258*8d67ca89SAndroid Build Coastguard Worker   __u8 name[44];
259*8d67ca89SAndroid Build Coastguard Worker   union {
260*8d67ca89SAndroid Build Coastguard Worker     struct {
261*8d67ca89SAndroid Build Coastguard Worker       __le32 min;
262*8d67ca89SAndroid Build Coastguard Worker       __le32 max;
263*8d67ca89SAndroid Build Coastguard Worker       __le32 step;
264*8d67ca89SAndroid Build Coastguard Worker     } integer;
265*8d67ca89SAndroid Build Coastguard Worker     struct {
266*8d67ca89SAndroid Build Coastguard Worker       __le64 min;
267*8d67ca89SAndroid Build Coastguard Worker       __le64 max;
268*8d67ca89SAndroid Build Coastguard Worker       __le64 step;
269*8d67ca89SAndroid Build Coastguard Worker     } integer64;
270*8d67ca89SAndroid Build Coastguard Worker     struct {
271*8d67ca89SAndroid Build Coastguard Worker       __le32 items;
272*8d67ca89SAndroid Build Coastguard Worker     } enumerated;
273*8d67ca89SAndroid Build Coastguard Worker   } value;
274*8d67ca89SAndroid Build Coastguard Worker };
275*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_ctl_enum_item {
276*8d67ca89SAndroid Build Coastguard Worker   __u8 item[64];
277*8d67ca89SAndroid Build Coastguard Worker };
278*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_ctl_iec958 {
279*8d67ca89SAndroid Build Coastguard Worker   __u8 status[24];
280*8d67ca89SAndroid Build Coastguard Worker   __u8 subcode[147];
281*8d67ca89SAndroid Build Coastguard Worker   __u8 pad;
282*8d67ca89SAndroid Build Coastguard Worker   __u8 dig_subframe[4];
283*8d67ca89SAndroid Build Coastguard Worker };
284*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_ctl_value {
285*8d67ca89SAndroid Build Coastguard Worker   union {
286*8d67ca89SAndroid Build Coastguard Worker     __le32 integer[128];
287*8d67ca89SAndroid Build Coastguard Worker     __le64 integer64[64];
288*8d67ca89SAndroid Build Coastguard Worker     __le32 enumerated[128];
289*8d67ca89SAndroid Build Coastguard Worker     __u8 bytes[512];
290*8d67ca89SAndroid Build Coastguard Worker     struct virtio_snd_ctl_iec958 iec958;
291*8d67ca89SAndroid Build Coastguard Worker   } value;
292*8d67ca89SAndroid Build Coastguard Worker };
293*8d67ca89SAndroid Build Coastguard Worker enum {
294*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_EVT_MASK_VALUE = 0,
295*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_EVT_MASK_INFO,
296*8d67ca89SAndroid Build Coastguard Worker   VIRTIO_SND_CTL_EVT_MASK_TLV
297*8d67ca89SAndroid Build Coastguard Worker };
298*8d67ca89SAndroid Build Coastguard Worker struct virtio_snd_ctl_event {
299*8d67ca89SAndroid Build Coastguard Worker   struct virtio_snd_hdr hdr;
300*8d67ca89SAndroid Build Coastguard Worker   __le16 control_id;
301*8d67ca89SAndroid Build Coastguard Worker   __le16 mask;
302*8d67ca89SAndroid Build Coastguard Worker };
303*8d67ca89SAndroid Build Coastguard Worker #endif
304