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