1*cda5da8dSAndroid Build Coastguard Worker /* 2*cda5da8dSAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*cda5da8dSAndroid Build Coastguard Worker * 4*cda5da8dSAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*cda5da8dSAndroid Build Coastguard Worker * for more information. 6*cda5da8dSAndroid Build Coastguard Worker */ 7*cda5da8dSAndroid Build Coastguard Worker #ifndef _UAPI__SOUND_ASOUND_H 8*cda5da8dSAndroid Build Coastguard Worker #define _UAPI__SOUND_ASOUND_H 9*cda5da8dSAndroid Build Coastguard Worker #ifdef __linux__ 10*cda5da8dSAndroid Build Coastguard Worker #include <linux/types.h> 11*cda5da8dSAndroid Build Coastguard Worker #include <asm/byteorder.h> 12*cda5da8dSAndroid Build Coastguard Worker #else 13*cda5da8dSAndroid Build Coastguard Worker #include <endian.h> 14*cda5da8dSAndroid Build Coastguard Worker #include <sys/ioctl.h> 15*cda5da8dSAndroid Build Coastguard Worker #endif 16*cda5da8dSAndroid Build Coastguard Worker #include <stdlib.h> 17*cda5da8dSAndroid Build Coastguard Worker #include <time.h> 18*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PROTOCOL_VERSION(major,minor,subminor) (((major) << 16) | ((minor) << 8) | (subminor)) 19*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PROTOCOL_MAJOR(version) (((version) >> 16) & 0xffff) 20*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PROTOCOL_MINOR(version) (((version) >> 8) & 0xff) 21*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PROTOCOL_MICRO(version) ((version) & 0xff) 22*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PROTOCOL_INCOMPATIBLE(kversion,uversion) (SNDRV_PROTOCOL_MAJOR(kversion) != SNDRV_PROTOCOL_MAJOR(uversion) || (SNDRV_PROTOCOL_MAJOR(kversion) == SNDRV_PROTOCOL_MAJOR(uversion) && SNDRV_PROTOCOL_MINOR(kversion) != SNDRV_PROTOCOL_MINOR(uversion))) 23*cda5da8dSAndroid Build Coastguard Worker #define AES_IEC958_STATUS_SIZE 24 24*cda5da8dSAndroid Build Coastguard Worker struct snd_aes_iec958 { 25*cda5da8dSAndroid Build Coastguard Worker unsigned char status[AES_IEC958_STATUS_SIZE]; 26*cda5da8dSAndroid Build Coastguard Worker unsigned char subcode[147]; 27*cda5da8dSAndroid Build Coastguard Worker unsigned char pad; 28*cda5da8dSAndroid Build Coastguard Worker unsigned char dig_subframe[4]; 29*cda5da8dSAndroid Build Coastguard Worker }; 30*cda5da8dSAndroid Build Coastguard Worker struct snd_cea_861_aud_if { 31*cda5da8dSAndroid Build Coastguard Worker unsigned char db1_ct_cc; 32*cda5da8dSAndroid Build Coastguard Worker unsigned char db2_sf_ss; 33*cda5da8dSAndroid Build Coastguard Worker unsigned char db3; 34*cda5da8dSAndroid Build Coastguard Worker unsigned char db4_ca; 35*cda5da8dSAndroid Build Coastguard Worker unsigned char db5_dminh_lsv; 36*cda5da8dSAndroid Build Coastguard Worker }; 37*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_HWDEP_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 1) 38*cda5da8dSAndroid Build Coastguard Worker enum { 39*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_OPL2 = 0, 40*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_OPL3, 41*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_OPL4, 42*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_SB16CSP, 43*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_EMU10K1, 44*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_YSS225, 45*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_ICS2115, 46*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_SSCAPE, 47*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_VX, 48*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_MIXART, 49*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_USX2Y, 50*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_EMUX_WAVETABLE, 51*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_BLUETOOTH, 52*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_USX2Y_PCM, 53*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_PCXHR, 54*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_SB_RC, 55*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_HDA, 56*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_USB_STREAM, 57*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_FW_DICE, 58*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_FW_FIREWORKS, 59*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_FW_BEBOB, 60*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_FW_OXFW, 61*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_FW_DIGI00X, 62*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_FW_TASCAM, 63*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_LINE6, 64*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_FW_MOTU, 65*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_FW_FIREFACE, 66*cda5da8dSAndroid Build Coastguard Worker SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_FW_FIREFACE 67*cda5da8dSAndroid Build Coastguard Worker }; 68*cda5da8dSAndroid Build Coastguard Worker struct snd_hwdep_info { 69*cda5da8dSAndroid Build Coastguard Worker unsigned int device; 70*cda5da8dSAndroid Build Coastguard Worker int card; 71*cda5da8dSAndroid Build Coastguard Worker unsigned char id[64]; 72*cda5da8dSAndroid Build Coastguard Worker unsigned char name[80]; 73*cda5da8dSAndroid Build Coastguard Worker int iface; 74*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[64]; 75*cda5da8dSAndroid Build Coastguard Worker }; 76*cda5da8dSAndroid Build Coastguard Worker struct snd_hwdep_dsp_status { 77*cda5da8dSAndroid Build Coastguard Worker unsigned int version; 78*cda5da8dSAndroid Build Coastguard Worker unsigned char id[32]; 79*cda5da8dSAndroid Build Coastguard Worker unsigned int num_dsps; 80*cda5da8dSAndroid Build Coastguard Worker unsigned int dsp_loaded; 81*cda5da8dSAndroid Build Coastguard Worker unsigned int chip_ready; 82*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[16]; 83*cda5da8dSAndroid Build Coastguard Worker }; 84*cda5da8dSAndroid Build Coastguard Worker struct snd_hwdep_dsp_image { 85*cda5da8dSAndroid Build Coastguard Worker unsigned int index; 86*cda5da8dSAndroid Build Coastguard Worker unsigned char name[64]; 87*cda5da8dSAndroid Build Coastguard Worker unsigned char * image; 88*cda5da8dSAndroid Build Coastguard Worker size_t length; 89*cda5da8dSAndroid Build Coastguard Worker unsigned long driver_data; 90*cda5da8dSAndroid Build Coastguard Worker }; 91*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_HWDEP_IOCTL_PVERSION _IOR('H', 0x00, int) 92*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_HWDEP_IOCTL_INFO _IOR('H', 0x01, struct snd_hwdep_info) 93*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_HWDEP_IOCTL_DSP_STATUS _IOR('H', 0x02, struct snd_hwdep_dsp_status) 94*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_HWDEP_IOCTL_DSP_LOAD _IOW('H', 0x03, struct snd_hwdep_dsp_image) 95*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 18) 96*cda5da8dSAndroid Build Coastguard Worker typedef unsigned long snd_pcm_uframes_t; 97*cda5da8dSAndroid Build Coastguard Worker typedef signed long snd_pcm_sframes_t; 98*cda5da8dSAndroid Build Coastguard Worker enum { 99*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_CLASS_GENERIC = 0, 100*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_CLASS_MULTI, 101*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_CLASS_MODEM, 102*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_CLASS_DIGITIZER, 103*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_CLASS_LAST = SNDRV_PCM_CLASS_DIGITIZER, 104*cda5da8dSAndroid Build Coastguard Worker }; 105*cda5da8dSAndroid Build Coastguard Worker enum { 106*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_SUBCLASS_GENERIC_MIX = 0, 107*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_SUBCLASS_MULTI_MIX, 108*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_SUBCLASS_LAST = SNDRV_PCM_SUBCLASS_MULTI_MIX, 109*cda5da8dSAndroid Build Coastguard Worker }; 110*cda5da8dSAndroid Build Coastguard Worker enum { 111*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_STREAM_PLAYBACK = 0, 112*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_STREAM_CAPTURE, 113*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_STREAM_LAST = SNDRV_PCM_STREAM_CAPTURE, 114*cda5da8dSAndroid Build Coastguard Worker }; 115*cda5da8dSAndroid Build Coastguard Worker typedef int __bitwise snd_pcm_access_t; 116*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_ACCESS_MMAP_INTERLEAVED (( snd_pcm_access_t) 0) 117*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_ACCESS_MMAP_NONINTERLEAVED (( snd_pcm_access_t) 1) 118*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_ACCESS_MMAP_COMPLEX (( snd_pcm_access_t) 2) 119*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_ACCESS_RW_INTERLEAVED (( snd_pcm_access_t) 3) 120*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_ACCESS_RW_NONINTERLEAVED (( snd_pcm_access_t) 4) 121*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_ACCESS_LAST SNDRV_PCM_ACCESS_RW_NONINTERLEAVED 122*cda5da8dSAndroid Build Coastguard Worker typedef int __bitwise snd_pcm_format_t; 123*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S8 (( snd_pcm_format_t) 0) 124*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U8 (( snd_pcm_format_t) 1) 125*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S16_LE (( snd_pcm_format_t) 2) 126*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S16_BE (( snd_pcm_format_t) 3) 127*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U16_LE (( snd_pcm_format_t) 4) 128*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U16_BE (( snd_pcm_format_t) 5) 129*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S24_LE (( snd_pcm_format_t) 6) 130*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S24_BE (( snd_pcm_format_t) 7) 131*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U24_LE (( snd_pcm_format_t) 8) 132*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U24_BE (( snd_pcm_format_t) 9) 133*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S32_LE (( snd_pcm_format_t) 10) 134*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S32_BE (( snd_pcm_format_t) 11) 135*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U32_LE (( snd_pcm_format_t) 12) 136*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U32_BE (( snd_pcm_format_t) 13) 137*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_FLOAT_LE (( snd_pcm_format_t) 14) 138*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_FLOAT_BE (( snd_pcm_format_t) 15) 139*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_FLOAT64_LE (( snd_pcm_format_t) 16) 140*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_FLOAT64_BE (( snd_pcm_format_t) 17) 141*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE (( snd_pcm_format_t) 18) 142*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE (( snd_pcm_format_t) 19) 143*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_MU_LAW (( snd_pcm_format_t) 20) 144*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_A_LAW (( snd_pcm_format_t) 21) 145*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_IMA_ADPCM (( snd_pcm_format_t) 22) 146*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_MPEG (( snd_pcm_format_t) 23) 147*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_GSM (( snd_pcm_format_t) 24) 148*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S20_LE (( snd_pcm_format_t) 25) 149*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S20_BE (( snd_pcm_format_t) 26) 150*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U20_LE (( snd_pcm_format_t) 27) 151*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U20_BE (( snd_pcm_format_t) 28) 152*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_SPECIAL (( snd_pcm_format_t) 31) 153*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S24_3LE (( snd_pcm_format_t) 32) 154*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S24_3BE (( snd_pcm_format_t) 33) 155*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U24_3LE (( snd_pcm_format_t) 34) 156*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U24_3BE (( snd_pcm_format_t) 35) 157*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S20_3LE (( snd_pcm_format_t) 36) 158*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S20_3BE (( snd_pcm_format_t) 37) 159*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U20_3LE (( snd_pcm_format_t) 38) 160*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U20_3BE (( snd_pcm_format_t) 39) 161*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S18_3LE (( snd_pcm_format_t) 40) 162*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S18_3BE (( snd_pcm_format_t) 41) 163*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U18_3LE (( snd_pcm_format_t) 42) 164*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U18_3BE (( snd_pcm_format_t) 43) 165*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_G723_24 (( snd_pcm_format_t) 44) 166*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_G723_24_1B (( snd_pcm_format_t) 45) 167*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_G723_40 (( snd_pcm_format_t) 46) 168*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_G723_40_1B (( snd_pcm_format_t) 47) 169*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_DSD_U8 (( snd_pcm_format_t) 48) 170*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_DSD_U16_LE (( snd_pcm_format_t) 49) 171*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_DSD_U32_LE (( snd_pcm_format_t) 50) 172*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_DSD_U16_BE (( snd_pcm_format_t) 51) 173*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_DSD_U32_BE (( snd_pcm_format_t) 52) 174*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_LAST SNDRV_PCM_FORMAT_DSD_U32_BE 175*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_FIRST SNDRV_PCM_FORMAT_S8 176*cda5da8dSAndroid Build Coastguard Worker #ifdef SNDRV_LITTLE_ENDIAN 177*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_LE 178*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U16 SNDRV_PCM_FORMAT_U16_LE 179*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S24 SNDRV_PCM_FORMAT_S24_LE 180*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U24 SNDRV_PCM_FORMAT_U24_LE 181*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S32 SNDRV_PCM_FORMAT_S32_LE 182*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U32 SNDRV_PCM_FORMAT_U32_LE 183*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_FLOAT SNDRV_PCM_FORMAT_FLOAT_LE 184*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_FLOAT64 SNDRV_PCM_FORMAT_FLOAT64_LE 185*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_IEC958_SUBFRAME SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE 186*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S20 SNDRV_PCM_FORMAT_S20_LE 187*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U20 SNDRV_PCM_FORMAT_U20_LE 188*cda5da8dSAndroid Build Coastguard Worker #endif 189*cda5da8dSAndroid Build Coastguard Worker #ifdef SNDRV_BIG_ENDIAN 190*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_BE 191*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U16 SNDRV_PCM_FORMAT_U16_BE 192*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S24 SNDRV_PCM_FORMAT_S24_BE 193*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U24 SNDRV_PCM_FORMAT_U24_BE 194*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S32 SNDRV_PCM_FORMAT_S32_BE 195*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U32 SNDRV_PCM_FORMAT_U32_BE 196*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_FLOAT SNDRV_PCM_FORMAT_FLOAT_BE 197*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_FLOAT64 SNDRV_PCM_FORMAT_FLOAT64_BE 198*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_IEC958_SUBFRAME SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE 199*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_S20 SNDRV_PCM_FORMAT_S20_BE 200*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_FORMAT_U20 SNDRV_PCM_FORMAT_U20_BE 201*cda5da8dSAndroid Build Coastguard Worker #endif 202*cda5da8dSAndroid Build Coastguard Worker typedef int __bitwise snd_pcm_subformat_t; 203*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_SUBFORMAT_STD (( snd_pcm_subformat_t) 0) 204*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_SUBFORMAT_MSBITS_MAX (( snd_pcm_subformat_t) 1) 205*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_SUBFORMAT_MSBITS_20 (( snd_pcm_subformat_t) 2) 206*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_SUBFORMAT_MSBITS_24 (( snd_pcm_subformat_t) 3) 207*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_SUBFORMAT_LAST SNDRV_PCM_SUBFORMAT_MSBITS_24 208*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_MMAP 0x00000001 209*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_MMAP_VALID 0x00000002 210*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_DOUBLE 0x00000004 211*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_BATCH 0x00000010 212*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_SYNC_APPLPTR 0x00000020 213*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_PERFECT_DRAIN 0x00000040 214*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_INTERLEAVED 0x00000100 215*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_NONINTERLEAVED 0x00000200 216*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_COMPLEX 0x00000400 217*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_BLOCK_TRANSFER 0x00010000 218*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_OVERRANGE 0x00020000 219*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_RESUME 0x00040000 220*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_PAUSE 0x00080000 221*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_HALF_DUPLEX 0x00100000 222*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_JOINT_DUPLEX 0x00200000 223*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_SYNC_START 0x00400000 224*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_NO_PERIOD_WAKEUP 0x00800000 225*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_HAS_WALL_CLOCK 0x01000000 226*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_HAS_LINK_ATIME 0x01000000 227*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_HAS_LINK_ABSOLUTE_ATIME 0x02000000 228*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_HAS_LINK_ESTIMATED_ATIME 0x04000000 229*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME 0x08000000 230*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_EXPLICIT_SYNC 0x10000000 231*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_NO_REWINDS 0x20000000 232*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000 233*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000 234*cda5da8dSAndroid Build Coastguard Worker #if __BITS_PER_LONG == 32 && defined(__USE_TIME_BITS64) 235*cda5da8dSAndroid Build Coastguard Worker #define __SND_STRUCT_TIME64 236*cda5da8dSAndroid Build Coastguard Worker #endif 237*cda5da8dSAndroid Build Coastguard Worker typedef int __bitwise snd_pcm_state_t; 238*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_STATE_OPEN (( snd_pcm_state_t) 0) 239*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_STATE_SETUP (( snd_pcm_state_t) 1) 240*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_STATE_PREPARED (( snd_pcm_state_t) 2) 241*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_STATE_RUNNING (( snd_pcm_state_t) 3) 242*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_STATE_XRUN (( snd_pcm_state_t) 4) 243*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_STATE_DRAINING (( snd_pcm_state_t) 5) 244*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_STATE_PAUSED (( snd_pcm_state_t) 6) 245*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_STATE_SUSPENDED (( snd_pcm_state_t) 7) 246*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_STATE_DISCONNECTED (( snd_pcm_state_t) 8) 247*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_STATE_LAST SNDRV_PCM_STATE_DISCONNECTED 248*cda5da8dSAndroid Build Coastguard Worker enum { 249*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_MMAP_OFFSET_DATA = 0x00000000, 250*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_MMAP_OFFSET_STATUS_OLD = 0x80000000, 251*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_MMAP_OFFSET_CONTROL_OLD = 0x81000000, 252*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_MMAP_OFFSET_STATUS_NEW = 0x82000000, 253*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_MMAP_OFFSET_CONTROL_NEW = 0x83000000, 254*cda5da8dSAndroid Build Coastguard Worker #ifdef __SND_STRUCT_TIME64 255*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_MMAP_OFFSET_STATUS = SNDRV_PCM_MMAP_OFFSET_STATUS_NEW, 256*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_MMAP_OFFSET_CONTROL = SNDRV_PCM_MMAP_OFFSET_CONTROL_NEW, 257*cda5da8dSAndroid Build Coastguard Worker #else 258*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_MMAP_OFFSET_STATUS = SNDRV_PCM_MMAP_OFFSET_STATUS_OLD, 259*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_MMAP_OFFSET_CONTROL = SNDRV_PCM_MMAP_OFFSET_CONTROL_OLD, 260*cda5da8dSAndroid Build Coastguard Worker #endif 261*cda5da8dSAndroid Build Coastguard Worker }; 262*cda5da8dSAndroid Build Coastguard Worker union snd_pcm_sync_id { 263*cda5da8dSAndroid Build Coastguard Worker unsigned char id[16]; 264*cda5da8dSAndroid Build Coastguard Worker unsigned short id16[8]; 265*cda5da8dSAndroid Build Coastguard Worker unsigned int id32[4]; 266*cda5da8dSAndroid Build Coastguard Worker } __attribute__((deprecated)); 267*cda5da8dSAndroid Build Coastguard Worker struct snd_pcm_info { 268*cda5da8dSAndroid Build Coastguard Worker unsigned int device; 269*cda5da8dSAndroid Build Coastguard Worker unsigned int subdevice; 270*cda5da8dSAndroid Build Coastguard Worker int stream; 271*cda5da8dSAndroid Build Coastguard Worker int card; 272*cda5da8dSAndroid Build Coastguard Worker unsigned char id[64]; 273*cda5da8dSAndroid Build Coastguard Worker unsigned char name[80]; 274*cda5da8dSAndroid Build Coastguard Worker unsigned char subname[32]; 275*cda5da8dSAndroid Build Coastguard Worker int dev_class; 276*cda5da8dSAndroid Build Coastguard Worker int dev_subclass; 277*cda5da8dSAndroid Build Coastguard Worker unsigned int subdevices_count; 278*cda5da8dSAndroid Build Coastguard Worker unsigned int subdevices_avail; 279*cda5da8dSAndroid Build Coastguard Worker unsigned char pad1[16]; 280*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[64]; 281*cda5da8dSAndroid Build Coastguard Worker }; 282*cda5da8dSAndroid Build Coastguard Worker typedef int snd_pcm_hw_param_t; 283*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_ACCESS 0 284*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_FORMAT 1 285*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_SUBFORMAT 2 286*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_FIRST_MASK SNDRV_PCM_HW_PARAM_ACCESS 287*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_LAST_MASK SNDRV_PCM_HW_PARAM_SUBFORMAT 288*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_SAMPLE_BITS 8 289*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_FRAME_BITS 9 290*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_CHANNELS 10 291*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_RATE 11 292*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_PERIOD_TIME 12 293*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_PERIOD_SIZE 13 294*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_PERIOD_BYTES 14 295*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_PERIODS 15 296*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_BUFFER_TIME 16 297*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_BUFFER_SIZE 17 298*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_BUFFER_BYTES 18 299*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_TICK_TIME 19 300*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_FIRST_INTERVAL SNDRV_PCM_HW_PARAM_SAMPLE_BITS 301*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAM_LAST_INTERVAL SNDRV_PCM_HW_PARAM_TICK_TIME 302*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAMS_NORESAMPLE (1 << 0) 303*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAMS_EXPORT_BUFFER (1 << 1) 304*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAMS_NO_PERIOD_WAKEUP (1 << 2) 305*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_HW_PARAMS_NO_DRAIN_SILENCE (1 << 3) 306*cda5da8dSAndroid Build Coastguard Worker struct snd_interval { 307*cda5da8dSAndroid Build Coastguard Worker unsigned int min, max; 308*cda5da8dSAndroid Build Coastguard Worker unsigned int openmin : 1, openmax : 1, integer : 1, empty : 1; 309*cda5da8dSAndroid Build Coastguard Worker }; 310*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_MASK_MAX 256 311*cda5da8dSAndroid Build Coastguard Worker struct snd_mask { 312*cda5da8dSAndroid Build Coastguard Worker __u32 bits[(SNDRV_MASK_MAX + 31) / 32]; 313*cda5da8dSAndroid Build Coastguard Worker }; 314*cda5da8dSAndroid Build Coastguard Worker struct snd_pcm_hw_params { 315*cda5da8dSAndroid Build Coastguard Worker unsigned int flags; 316*cda5da8dSAndroid Build Coastguard Worker struct snd_mask masks[SNDRV_PCM_HW_PARAM_LAST_MASK - SNDRV_PCM_HW_PARAM_FIRST_MASK + 1]; 317*cda5da8dSAndroid Build Coastguard Worker struct snd_mask mres[5]; 318*cda5da8dSAndroid Build Coastguard Worker struct snd_interval intervals[SNDRV_PCM_HW_PARAM_LAST_INTERVAL - SNDRV_PCM_HW_PARAM_FIRST_INTERVAL + 1]; 319*cda5da8dSAndroid Build Coastguard Worker struct snd_interval ires[9]; 320*cda5da8dSAndroid Build Coastguard Worker unsigned int rmask; 321*cda5da8dSAndroid Build Coastguard Worker unsigned int cmask; 322*cda5da8dSAndroid Build Coastguard Worker unsigned int info; 323*cda5da8dSAndroid Build Coastguard Worker unsigned int msbits; 324*cda5da8dSAndroid Build Coastguard Worker unsigned int rate_num; 325*cda5da8dSAndroid Build Coastguard Worker unsigned int rate_den; 326*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t fifo_size; 327*cda5da8dSAndroid Build Coastguard Worker unsigned char sync[16]; 328*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[48]; 329*cda5da8dSAndroid Build Coastguard Worker }; 330*cda5da8dSAndroid Build Coastguard Worker enum { 331*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_TSTAMP_NONE = 0, 332*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_TSTAMP_ENABLE, 333*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_TSTAMP_LAST = SNDRV_PCM_TSTAMP_ENABLE, 334*cda5da8dSAndroid Build Coastguard Worker }; 335*cda5da8dSAndroid Build Coastguard Worker struct snd_pcm_sw_params { 336*cda5da8dSAndroid Build Coastguard Worker int tstamp_mode; 337*cda5da8dSAndroid Build Coastguard Worker unsigned int period_step; 338*cda5da8dSAndroid Build Coastguard Worker unsigned int sleep_min; 339*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t avail_min; 340*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t xfer_align; 341*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t start_threshold; 342*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t stop_threshold; 343*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t silence_threshold; 344*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t silence_size; 345*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t boundary; 346*cda5da8dSAndroid Build Coastguard Worker unsigned int proto; 347*cda5da8dSAndroid Build Coastguard Worker unsigned int tstamp_type; 348*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[56]; 349*cda5da8dSAndroid Build Coastguard Worker }; 350*cda5da8dSAndroid Build Coastguard Worker struct snd_pcm_channel_info { 351*cda5da8dSAndroid Build Coastguard Worker unsigned int channel; 352*cda5da8dSAndroid Build Coastguard Worker __kernel_off_t offset; 353*cda5da8dSAndroid Build Coastguard Worker unsigned int first; 354*cda5da8dSAndroid Build Coastguard Worker unsigned int step; 355*cda5da8dSAndroid Build Coastguard Worker }; 356*cda5da8dSAndroid Build Coastguard Worker enum { 357*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_AUDIO_TSTAMP_TYPE_COMPAT = 0, 358*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_AUDIO_TSTAMP_TYPE_DEFAULT = 1, 359*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK = 2, 360*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE = 3, 361*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED = 4, 362*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED = 5, 363*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_AUDIO_TSTAMP_TYPE_LAST = SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED 364*cda5da8dSAndroid Build Coastguard Worker }; 365*cda5da8dSAndroid Build Coastguard Worker typedef struct { 366*cda5da8dSAndroid Build Coastguard Worker unsigned char pad[sizeof(time_t) - sizeof(int)]; 367*cda5da8dSAndroid Build Coastguard Worker } __time_pad; 368*cda5da8dSAndroid Build Coastguard Worker struct snd_pcm_status { 369*cda5da8dSAndroid Build Coastguard Worker snd_pcm_state_t state; 370*cda5da8dSAndroid Build Coastguard Worker __time_pad pad1; 371*cda5da8dSAndroid Build Coastguard Worker struct timespec trigger_tstamp; 372*cda5da8dSAndroid Build Coastguard Worker struct timespec tstamp; 373*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t appl_ptr; 374*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t hw_ptr; 375*cda5da8dSAndroid Build Coastguard Worker snd_pcm_sframes_t delay; 376*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t avail; 377*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t avail_max; 378*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t overrange; 379*cda5da8dSAndroid Build Coastguard Worker snd_pcm_state_t suspended_state; 380*cda5da8dSAndroid Build Coastguard Worker __u32 audio_tstamp_data; 381*cda5da8dSAndroid Build Coastguard Worker struct timespec audio_tstamp; 382*cda5da8dSAndroid Build Coastguard Worker struct timespec driver_tstamp; 383*cda5da8dSAndroid Build Coastguard Worker __u32 audio_tstamp_accuracy; 384*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[52 - 2 * sizeof(struct timespec)]; 385*cda5da8dSAndroid Build Coastguard Worker }; 386*cda5da8dSAndroid Build Coastguard Worker #ifdef __SND_STRUCT_TIME64 387*cda5da8dSAndroid Build Coastguard Worker #define __snd_pcm_mmap_status64 snd_pcm_mmap_status 388*cda5da8dSAndroid Build Coastguard Worker #define __snd_pcm_mmap_control64 snd_pcm_mmap_control 389*cda5da8dSAndroid Build Coastguard Worker #define __snd_pcm_sync_ptr64 snd_pcm_sync_ptr 390*cda5da8dSAndroid Build Coastguard Worker #define __snd_timespec64 timespec 391*cda5da8dSAndroid Build Coastguard Worker struct __snd_timespec { 392*cda5da8dSAndroid Build Coastguard Worker __s32 tv_sec; 393*cda5da8dSAndroid Build Coastguard Worker __s32 tv_nsec; 394*cda5da8dSAndroid Build Coastguard Worker }; 395*cda5da8dSAndroid Build Coastguard Worker #else 396*cda5da8dSAndroid Build Coastguard Worker #define __snd_pcm_mmap_status snd_pcm_mmap_status 397*cda5da8dSAndroid Build Coastguard Worker #define __snd_pcm_mmap_control snd_pcm_mmap_control 398*cda5da8dSAndroid Build Coastguard Worker #define __snd_pcm_sync_ptr snd_pcm_sync_ptr 399*cda5da8dSAndroid Build Coastguard Worker #define __snd_timespec timespec 400*cda5da8dSAndroid Build Coastguard Worker struct __snd_timespec64 { 401*cda5da8dSAndroid Build Coastguard Worker __s64 tv_sec; 402*cda5da8dSAndroid Build Coastguard Worker __s64 tv_nsec; 403*cda5da8dSAndroid Build Coastguard Worker }; 404*cda5da8dSAndroid Build Coastguard Worker #endif 405*cda5da8dSAndroid Build Coastguard Worker struct __snd_pcm_mmap_status { 406*cda5da8dSAndroid Build Coastguard Worker snd_pcm_state_t state; 407*cda5da8dSAndroid Build Coastguard Worker int pad1; 408*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t hw_ptr; 409*cda5da8dSAndroid Build Coastguard Worker struct __snd_timespec tstamp; 410*cda5da8dSAndroid Build Coastguard Worker snd_pcm_state_t suspended_state; 411*cda5da8dSAndroid Build Coastguard Worker struct __snd_timespec audio_tstamp; 412*cda5da8dSAndroid Build Coastguard Worker }; 413*cda5da8dSAndroid Build Coastguard Worker struct __snd_pcm_mmap_control { 414*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t appl_ptr; 415*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t avail_min; 416*cda5da8dSAndroid Build Coastguard Worker }; 417*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_SYNC_PTR_HWSYNC (1 << 0) 418*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_SYNC_PTR_APPL (1 << 1) 419*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_SYNC_PTR_AVAIL_MIN (1 << 2) 420*cda5da8dSAndroid Build Coastguard Worker struct __snd_pcm_sync_ptr { 421*cda5da8dSAndroid Build Coastguard Worker unsigned int flags; 422*cda5da8dSAndroid Build Coastguard Worker union { 423*cda5da8dSAndroid Build Coastguard Worker struct __snd_pcm_mmap_status status; 424*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[64]; 425*cda5da8dSAndroid Build Coastguard Worker } s; 426*cda5da8dSAndroid Build Coastguard Worker union { 427*cda5da8dSAndroid Build Coastguard Worker struct __snd_pcm_mmap_control control; 428*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[64]; 429*cda5da8dSAndroid Build Coastguard Worker } c; 430*cda5da8dSAndroid Build Coastguard Worker }; 431*cda5da8dSAndroid Build Coastguard Worker #if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN) 432*cda5da8dSAndroid Build Coastguard Worker typedef char __pad_before_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)]; 433*cda5da8dSAndroid Build Coastguard Worker typedef char __pad_after_uframe[0]; 434*cda5da8dSAndroid Build Coastguard Worker #endif 435*cda5da8dSAndroid Build Coastguard Worker #if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN) 436*cda5da8dSAndroid Build Coastguard Worker typedef char __pad_before_uframe[0]; 437*cda5da8dSAndroid Build Coastguard Worker typedef char __pad_after_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)]; 438*cda5da8dSAndroid Build Coastguard Worker #endif 439*cda5da8dSAndroid Build Coastguard Worker struct __snd_pcm_mmap_status64 { 440*cda5da8dSAndroid Build Coastguard Worker snd_pcm_state_t state; 441*cda5da8dSAndroid Build Coastguard Worker __u32 pad1; 442*cda5da8dSAndroid Build Coastguard Worker __pad_before_uframe __pad1; 443*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t hw_ptr; 444*cda5da8dSAndroid Build Coastguard Worker __pad_after_uframe __pad2; 445*cda5da8dSAndroid Build Coastguard Worker struct __snd_timespec64 tstamp; 446*cda5da8dSAndroid Build Coastguard Worker snd_pcm_state_t suspended_state; 447*cda5da8dSAndroid Build Coastguard Worker __u32 pad3; 448*cda5da8dSAndroid Build Coastguard Worker struct __snd_timespec64 audio_tstamp; 449*cda5da8dSAndroid Build Coastguard Worker }; 450*cda5da8dSAndroid Build Coastguard Worker struct __snd_pcm_mmap_control64 { 451*cda5da8dSAndroid Build Coastguard Worker __pad_before_uframe __pad1; 452*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t appl_ptr; 453*cda5da8dSAndroid Build Coastguard Worker __pad_before_uframe __pad2; 454*cda5da8dSAndroid Build Coastguard Worker __pad_before_uframe __pad3; 455*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t avail_min; 456*cda5da8dSAndroid Build Coastguard Worker __pad_after_uframe __pad4; 457*cda5da8dSAndroid Build Coastguard Worker }; 458*cda5da8dSAndroid Build Coastguard Worker struct __snd_pcm_sync_ptr64 { 459*cda5da8dSAndroid Build Coastguard Worker __u32 flags; 460*cda5da8dSAndroid Build Coastguard Worker __u32 pad1; 461*cda5da8dSAndroid Build Coastguard Worker union { 462*cda5da8dSAndroid Build Coastguard Worker struct __snd_pcm_mmap_status64 status; 463*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[64]; 464*cda5da8dSAndroid Build Coastguard Worker } s; 465*cda5da8dSAndroid Build Coastguard Worker union { 466*cda5da8dSAndroid Build Coastguard Worker struct __snd_pcm_mmap_control64 control; 467*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[64]; 468*cda5da8dSAndroid Build Coastguard Worker } c; 469*cda5da8dSAndroid Build Coastguard Worker }; 470*cda5da8dSAndroid Build Coastguard Worker struct snd_xferi { 471*cda5da8dSAndroid Build Coastguard Worker snd_pcm_sframes_t result; 472*cda5da8dSAndroid Build Coastguard Worker void * buf; 473*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t frames; 474*cda5da8dSAndroid Build Coastguard Worker }; 475*cda5da8dSAndroid Build Coastguard Worker struct snd_xfern { 476*cda5da8dSAndroid Build Coastguard Worker snd_pcm_sframes_t result; 477*cda5da8dSAndroid Build Coastguard Worker void * * bufs; 478*cda5da8dSAndroid Build Coastguard Worker snd_pcm_uframes_t frames; 479*cda5da8dSAndroid Build Coastguard Worker }; 480*cda5da8dSAndroid Build Coastguard Worker enum { 481*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_TSTAMP_TYPE_GETTIMEOFDAY = 0, 482*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_TSTAMP_TYPE_MONOTONIC, 483*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW, 484*cda5da8dSAndroid Build Coastguard Worker SNDRV_PCM_TSTAMP_TYPE_LAST = SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW, 485*cda5da8dSAndroid Build Coastguard Worker }; 486*cda5da8dSAndroid Build Coastguard Worker enum { 487*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_UNKNOWN = 0, 488*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_NA, 489*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_MONO, 490*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_FL, 491*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_FR, 492*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_RL, 493*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_RR, 494*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_FC, 495*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_LFE, 496*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_SL, 497*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_SR, 498*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_RC, 499*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_FLC, 500*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_FRC, 501*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_RLC, 502*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_RRC, 503*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_FLW, 504*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_FRW, 505*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_FLH, 506*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_FCH, 507*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_FRH, 508*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_TC, 509*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_TFL, 510*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_TFR, 511*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_TFC, 512*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_TRL, 513*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_TRR, 514*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_TRC, 515*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_TFLC, 516*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_TFRC, 517*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_TSL, 518*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_TSR, 519*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_LLFE, 520*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_RLFE, 521*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_BC, 522*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_BLC, 523*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_BRC, 524*cda5da8dSAndroid Build Coastguard Worker SNDRV_CHMAP_LAST = SNDRV_CHMAP_BRC, 525*cda5da8dSAndroid Build Coastguard Worker }; 526*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CHMAP_POSITION_MASK 0xffff 527*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CHMAP_PHASE_INVERSE (0x01 << 16) 528*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CHMAP_DRIVER_SPEC (0x02 << 16) 529*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_PVERSION _IOR('A', 0x00, int) 530*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_INFO _IOR('A', 0x01, struct snd_pcm_info) 531*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_TSTAMP _IOW('A', 0x02, int) 532*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_TTSTAMP _IOW('A', 0x03, int) 533*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_USER_PVERSION _IOW('A', 0x04, int) 534*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_HW_REFINE _IOWR('A', 0x10, struct snd_pcm_hw_params) 535*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_HW_PARAMS _IOWR('A', 0x11, struct snd_pcm_hw_params) 536*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_HW_FREE _IO('A', 0x12) 537*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_SW_PARAMS _IOWR('A', 0x13, struct snd_pcm_sw_params) 538*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_STATUS _IOR('A', 0x20, struct snd_pcm_status) 539*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_DELAY _IOR('A', 0x21, snd_pcm_sframes_t) 540*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_HWSYNC _IO('A', 0x22) 541*cda5da8dSAndroid Build Coastguard Worker #define __SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct __snd_pcm_sync_ptr) 542*cda5da8dSAndroid Build Coastguard Worker #define __SNDRV_PCM_IOCTL_SYNC_PTR64 _IOWR('A', 0x23, struct __snd_pcm_sync_ptr64) 543*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct snd_pcm_sync_ptr) 544*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_STATUS_EXT _IOWR('A', 0x24, struct snd_pcm_status) 545*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_CHANNEL_INFO _IOR('A', 0x32, struct snd_pcm_channel_info) 546*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_PREPARE _IO('A', 0x40) 547*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_RESET _IO('A', 0x41) 548*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_START _IO('A', 0x42) 549*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_DROP _IO('A', 0x43) 550*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_DRAIN _IO('A', 0x44) 551*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_PAUSE _IOW('A', 0x45, int) 552*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_REWIND _IOW('A', 0x46, snd_pcm_uframes_t) 553*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_RESUME _IO('A', 0x47) 554*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_XRUN _IO('A', 0x48) 555*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_FORWARD _IOW('A', 0x49, snd_pcm_uframes_t) 556*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_WRITEI_FRAMES _IOW('A', 0x50, struct snd_xferi) 557*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_READI_FRAMES _IOR('A', 0x51, struct snd_xferi) 558*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_WRITEN_FRAMES _IOW('A', 0x52, struct snd_xfern) 559*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_READN_FRAMES _IOR('A', 0x53, struct snd_xfern) 560*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_LINK _IOW('A', 0x60, int) 561*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_PCM_IOCTL_UNLINK _IO('A', 0x61) 562*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 4) 563*cda5da8dSAndroid Build Coastguard Worker enum { 564*cda5da8dSAndroid Build Coastguard Worker SNDRV_RAWMIDI_STREAM_OUTPUT = 0, 565*cda5da8dSAndroid Build Coastguard Worker SNDRV_RAWMIDI_STREAM_INPUT, 566*cda5da8dSAndroid Build Coastguard Worker SNDRV_RAWMIDI_STREAM_LAST = SNDRV_RAWMIDI_STREAM_INPUT, 567*cda5da8dSAndroid Build Coastguard Worker }; 568*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_INFO_OUTPUT 0x00000001 569*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_INFO_INPUT 0x00000002 570*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_INFO_DUPLEX 0x00000004 571*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_INFO_UMP 0x00000008 572*cda5da8dSAndroid Build Coastguard Worker struct snd_rawmidi_info { 573*cda5da8dSAndroid Build Coastguard Worker unsigned int device; 574*cda5da8dSAndroid Build Coastguard Worker unsigned int subdevice; 575*cda5da8dSAndroid Build Coastguard Worker int stream; 576*cda5da8dSAndroid Build Coastguard Worker int card; 577*cda5da8dSAndroid Build Coastguard Worker unsigned int flags; 578*cda5da8dSAndroid Build Coastguard Worker unsigned char id[64]; 579*cda5da8dSAndroid Build Coastguard Worker unsigned char name[80]; 580*cda5da8dSAndroid Build Coastguard Worker unsigned char subname[32]; 581*cda5da8dSAndroid Build Coastguard Worker unsigned int subdevices_count; 582*cda5da8dSAndroid Build Coastguard Worker unsigned int subdevices_avail; 583*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[64]; 584*cda5da8dSAndroid Build Coastguard Worker }; 585*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_MODE_FRAMING_MASK (7 << 0) 586*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_MODE_FRAMING_SHIFT 0 587*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_MODE_FRAMING_NONE (0 << 0) 588*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_MODE_FRAMING_TSTAMP (1 << 0) 589*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_MODE_CLOCK_MASK (7 << 3) 590*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_MODE_CLOCK_SHIFT 3 591*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_MODE_CLOCK_NONE (0 << 3) 592*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_MODE_CLOCK_REALTIME (1 << 3) 593*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC (2 << 3) 594*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC_RAW (3 << 3) 595*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_FRAMING_DATA_LENGTH 16 596*cda5da8dSAndroid Build Coastguard Worker struct snd_rawmidi_framing_tstamp { 597*cda5da8dSAndroid Build Coastguard Worker __u8 frame_type; 598*cda5da8dSAndroid Build Coastguard Worker __u8 length; 599*cda5da8dSAndroid Build Coastguard Worker __u8 reserved[2]; 600*cda5da8dSAndroid Build Coastguard Worker __u32 tv_nsec; 601*cda5da8dSAndroid Build Coastguard Worker __u64 tv_sec; 602*cda5da8dSAndroid Build Coastguard Worker __u8 data[SNDRV_RAWMIDI_FRAMING_DATA_LENGTH]; 603*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 604*cda5da8dSAndroid Build Coastguard Worker struct snd_rawmidi_params { 605*cda5da8dSAndroid Build Coastguard Worker int stream; 606*cda5da8dSAndroid Build Coastguard Worker size_t buffer_size; 607*cda5da8dSAndroid Build Coastguard Worker size_t avail_min; 608*cda5da8dSAndroid Build Coastguard Worker unsigned int no_active_sensing : 1; 609*cda5da8dSAndroid Build Coastguard Worker unsigned int mode; 610*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[12]; 611*cda5da8dSAndroid Build Coastguard Worker }; 612*cda5da8dSAndroid Build Coastguard Worker struct snd_rawmidi_status { 613*cda5da8dSAndroid Build Coastguard Worker int stream; 614*cda5da8dSAndroid Build Coastguard Worker __time_pad pad1; 615*cda5da8dSAndroid Build Coastguard Worker struct timespec tstamp; 616*cda5da8dSAndroid Build Coastguard Worker size_t avail; 617*cda5da8dSAndroid Build Coastguard Worker size_t xruns; 618*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[16]; 619*cda5da8dSAndroid Build Coastguard Worker }; 620*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_EP_INFO_STATIC_BLOCKS 0x01 621*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_EP_INFO_PROTO_MIDI_MASK 0x0300 622*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_EP_INFO_PROTO_MIDI1 0x0100 623*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_EP_INFO_PROTO_MIDI2 0x0200 624*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_EP_INFO_PROTO_JRTS_MASK 0x0003 625*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_EP_INFO_PROTO_JRTS_TX 0x0001 626*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_EP_INFO_PROTO_JRTS_RX 0x0002 627*cda5da8dSAndroid Build Coastguard Worker struct snd_ump_endpoint_info { 628*cda5da8dSAndroid Build Coastguard Worker int card; 629*cda5da8dSAndroid Build Coastguard Worker int device; 630*cda5da8dSAndroid Build Coastguard Worker unsigned int flags; 631*cda5da8dSAndroid Build Coastguard Worker unsigned int protocol_caps; 632*cda5da8dSAndroid Build Coastguard Worker unsigned int protocol; 633*cda5da8dSAndroid Build Coastguard Worker unsigned int num_blocks; 634*cda5da8dSAndroid Build Coastguard Worker unsigned short version; 635*cda5da8dSAndroid Build Coastguard Worker unsigned short family_id; 636*cda5da8dSAndroid Build Coastguard Worker unsigned short model_id; 637*cda5da8dSAndroid Build Coastguard Worker unsigned int manufacturer_id; 638*cda5da8dSAndroid Build Coastguard Worker unsigned char sw_revision[4]; 639*cda5da8dSAndroid Build Coastguard Worker unsigned short padding; 640*cda5da8dSAndroid Build Coastguard Worker unsigned char name[128]; 641*cda5da8dSAndroid Build Coastguard Worker unsigned char product_id[128]; 642*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[32]; 643*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 644*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_DIR_INPUT 0x01 645*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_DIR_OUTPUT 0x02 646*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_DIR_BIDIRECTION 0x03 647*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_BLOCK_IS_MIDI1 (1U << 0) 648*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_BLOCK_IS_LOWSPEED (1U << 1) 649*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_BLOCK_UI_HINT_UNKNOWN 0x00 650*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_BLOCK_UI_HINT_RECEIVER 0x01 651*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_BLOCK_UI_HINT_SENDER 0x02 652*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_BLOCK_UI_HINT_BOTH 0x03 653*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_MAX_GROUPS 16 654*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_MAX_BLOCKS 32 655*cda5da8dSAndroid Build Coastguard Worker struct snd_ump_block_info { 656*cda5da8dSAndroid Build Coastguard Worker int card; 657*cda5da8dSAndroid Build Coastguard Worker int device; 658*cda5da8dSAndroid Build Coastguard Worker unsigned char block_id; 659*cda5da8dSAndroid Build Coastguard Worker unsigned char direction; 660*cda5da8dSAndroid Build Coastguard Worker unsigned char active; 661*cda5da8dSAndroid Build Coastguard Worker unsigned char first_group; 662*cda5da8dSAndroid Build Coastguard Worker unsigned char num_groups; 663*cda5da8dSAndroid Build Coastguard Worker unsigned char midi_ci_version; 664*cda5da8dSAndroid Build Coastguard Worker unsigned char sysex8_streams; 665*cda5da8dSAndroid Build Coastguard Worker unsigned char ui_hint; 666*cda5da8dSAndroid Build Coastguard Worker unsigned int flags; 667*cda5da8dSAndroid Build Coastguard Worker unsigned char name[128]; 668*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[32]; 669*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 670*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int) 671*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info) 672*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_IOCTL_USER_PVERSION _IOW('W', 0x02, int) 673*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_IOCTL_PARAMS _IOWR('W', 0x10, struct snd_rawmidi_params) 674*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_IOCTL_STATUS _IOWR('W', 0x20, struct snd_rawmidi_status) 675*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_IOCTL_DROP _IOW('W', 0x30, int) 676*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_RAWMIDI_IOCTL_DRAIN _IOW('W', 0x31, int) 677*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_IOCTL_ENDPOINT_INFO _IOR('W', 0x40, struct snd_ump_endpoint_info) 678*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_UMP_IOCTL_BLOCK_INFO _IOR('W', 0x41, struct snd_ump_block_info) 679*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 7) 680*cda5da8dSAndroid Build Coastguard Worker enum { 681*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_CLASS_NONE = - 1, 682*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_CLASS_SLAVE = 0, 683*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_CLASS_GLOBAL, 684*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_CLASS_CARD, 685*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_CLASS_PCM, 686*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_CLASS_LAST = SNDRV_TIMER_CLASS_PCM, 687*cda5da8dSAndroid Build Coastguard Worker }; 688*cda5da8dSAndroid Build Coastguard Worker enum { 689*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_SCLASS_NONE = 0, 690*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_SCLASS_APPLICATION, 691*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_SCLASS_SEQUENCER, 692*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_SCLASS_OSS_SEQUENCER, 693*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_SCLASS_LAST = SNDRV_TIMER_SCLASS_OSS_SEQUENCER, 694*cda5da8dSAndroid Build Coastguard Worker }; 695*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_GLOBAL_SYSTEM 0 696*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_GLOBAL_RTC 1 697*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_GLOBAL_HPET 2 698*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_GLOBAL_HRTIMER 3 699*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_FLG_SLAVE (1 << 0) 700*cda5da8dSAndroid Build Coastguard Worker struct snd_timer_id { 701*cda5da8dSAndroid Build Coastguard Worker int dev_class; 702*cda5da8dSAndroid Build Coastguard Worker int dev_sclass; 703*cda5da8dSAndroid Build Coastguard Worker int card; 704*cda5da8dSAndroid Build Coastguard Worker int device; 705*cda5da8dSAndroid Build Coastguard Worker int subdevice; 706*cda5da8dSAndroid Build Coastguard Worker }; 707*cda5da8dSAndroid Build Coastguard Worker struct snd_timer_ginfo { 708*cda5da8dSAndroid Build Coastguard Worker struct snd_timer_id tid; 709*cda5da8dSAndroid Build Coastguard Worker unsigned int flags; 710*cda5da8dSAndroid Build Coastguard Worker int card; 711*cda5da8dSAndroid Build Coastguard Worker unsigned char id[64]; 712*cda5da8dSAndroid Build Coastguard Worker unsigned char name[80]; 713*cda5da8dSAndroid Build Coastguard Worker unsigned long reserved0; 714*cda5da8dSAndroid Build Coastguard Worker unsigned long resolution; 715*cda5da8dSAndroid Build Coastguard Worker unsigned long resolution_min; 716*cda5da8dSAndroid Build Coastguard Worker unsigned long resolution_max; 717*cda5da8dSAndroid Build Coastguard Worker unsigned int clients; 718*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[32]; 719*cda5da8dSAndroid Build Coastguard Worker }; 720*cda5da8dSAndroid Build Coastguard Worker struct snd_timer_gparams { 721*cda5da8dSAndroid Build Coastguard Worker struct snd_timer_id tid; 722*cda5da8dSAndroid Build Coastguard Worker unsigned long period_num; 723*cda5da8dSAndroid Build Coastguard Worker unsigned long period_den; 724*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[32]; 725*cda5da8dSAndroid Build Coastguard Worker }; 726*cda5da8dSAndroid Build Coastguard Worker struct snd_timer_gstatus { 727*cda5da8dSAndroid Build Coastguard Worker struct snd_timer_id tid; 728*cda5da8dSAndroid Build Coastguard Worker unsigned long resolution; 729*cda5da8dSAndroid Build Coastguard Worker unsigned long resolution_num; 730*cda5da8dSAndroid Build Coastguard Worker unsigned long resolution_den; 731*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[32]; 732*cda5da8dSAndroid Build Coastguard Worker }; 733*cda5da8dSAndroid Build Coastguard Worker struct snd_timer_select { 734*cda5da8dSAndroid Build Coastguard Worker struct snd_timer_id id; 735*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[32]; 736*cda5da8dSAndroid Build Coastguard Worker }; 737*cda5da8dSAndroid Build Coastguard Worker struct snd_timer_info { 738*cda5da8dSAndroid Build Coastguard Worker unsigned int flags; 739*cda5da8dSAndroid Build Coastguard Worker int card; 740*cda5da8dSAndroid Build Coastguard Worker unsigned char id[64]; 741*cda5da8dSAndroid Build Coastguard Worker unsigned char name[80]; 742*cda5da8dSAndroid Build Coastguard Worker unsigned long reserved0; 743*cda5da8dSAndroid Build Coastguard Worker unsigned long resolution; 744*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[64]; 745*cda5da8dSAndroid Build Coastguard Worker }; 746*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_PSFLG_AUTO (1 << 0) 747*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_PSFLG_EXCLUSIVE (1 << 1) 748*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_PSFLG_EARLY_EVENT (1 << 2) 749*cda5da8dSAndroid Build Coastguard Worker struct snd_timer_params { 750*cda5da8dSAndroid Build Coastguard Worker unsigned int flags; 751*cda5da8dSAndroid Build Coastguard Worker unsigned int ticks; 752*cda5da8dSAndroid Build Coastguard Worker unsigned int queue_size; 753*cda5da8dSAndroid Build Coastguard Worker unsigned int reserved0; 754*cda5da8dSAndroid Build Coastguard Worker unsigned int filter; 755*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[60]; 756*cda5da8dSAndroid Build Coastguard Worker }; 757*cda5da8dSAndroid Build Coastguard Worker struct snd_timer_status { 758*cda5da8dSAndroid Build Coastguard Worker struct timespec tstamp; 759*cda5da8dSAndroid Build Coastguard Worker unsigned int resolution; 760*cda5da8dSAndroid Build Coastguard Worker unsigned int lost; 761*cda5da8dSAndroid Build Coastguard Worker unsigned int overrun; 762*cda5da8dSAndroid Build Coastguard Worker unsigned int queue; 763*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[64]; 764*cda5da8dSAndroid Build Coastguard Worker }; 765*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_PVERSION _IOR('T', 0x00, int) 766*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_NEXT_DEVICE _IOWR('T', 0x01, struct snd_timer_id) 767*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_TREAD_OLD _IOW('T', 0x02, int) 768*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_GINFO _IOWR('T', 0x03, struct snd_timer_ginfo) 769*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_GPARAMS _IOW('T', 0x04, struct snd_timer_gparams) 770*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_GSTATUS _IOWR('T', 0x05, struct snd_timer_gstatus) 771*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_SELECT _IOW('T', 0x10, struct snd_timer_select) 772*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_INFO _IOR('T', 0x11, struct snd_timer_info) 773*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_PARAMS _IOW('T', 0x12, struct snd_timer_params) 774*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_STATUS _IOR('T', 0x14, struct snd_timer_status) 775*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_START _IO('T', 0xa0) 776*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_STOP _IO('T', 0xa1) 777*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_CONTINUE _IO('T', 0xa2) 778*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_PAUSE _IO('T', 0xa3) 779*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_TREAD64 _IOW('T', 0xa4, int) 780*cda5da8dSAndroid Build Coastguard Worker #if __BITS_PER_LONG == 64 781*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_TREAD SNDRV_TIMER_IOCTL_TREAD_OLD 782*cda5da8dSAndroid Build Coastguard Worker #else 783*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_TIMER_IOCTL_TREAD ((sizeof(__kernel_long_t) >= sizeof(time_t)) ? SNDRV_TIMER_IOCTL_TREAD_OLD : SNDRV_TIMER_IOCTL_TREAD64) 784*cda5da8dSAndroid Build Coastguard Worker #endif 785*cda5da8dSAndroid Build Coastguard Worker struct snd_timer_read { 786*cda5da8dSAndroid Build Coastguard Worker unsigned int resolution; 787*cda5da8dSAndroid Build Coastguard Worker unsigned int ticks; 788*cda5da8dSAndroid Build Coastguard Worker }; 789*cda5da8dSAndroid Build Coastguard Worker enum { 790*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_RESOLUTION = 0, 791*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_TICK, 792*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_START, 793*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_STOP, 794*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_CONTINUE, 795*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_PAUSE, 796*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_EARLY, 797*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_SUSPEND, 798*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_RESUME, 799*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_MSTART = SNDRV_TIMER_EVENT_START + 10, 800*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_MSTOP = SNDRV_TIMER_EVENT_STOP + 10, 801*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_MCONTINUE = SNDRV_TIMER_EVENT_CONTINUE + 10, 802*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_MPAUSE = SNDRV_TIMER_EVENT_PAUSE + 10, 803*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_MSUSPEND = SNDRV_TIMER_EVENT_SUSPEND + 10, 804*cda5da8dSAndroid Build Coastguard Worker SNDRV_TIMER_EVENT_MRESUME = SNDRV_TIMER_EVENT_RESUME + 10, 805*cda5da8dSAndroid Build Coastguard Worker }; 806*cda5da8dSAndroid Build Coastguard Worker struct snd_timer_tread { 807*cda5da8dSAndroid Build Coastguard Worker int event; 808*cda5da8dSAndroid Build Coastguard Worker __time_pad pad1; 809*cda5da8dSAndroid Build Coastguard Worker struct timespec tstamp; 810*cda5da8dSAndroid Build Coastguard Worker unsigned int val; 811*cda5da8dSAndroid Build Coastguard Worker __time_pad pad2; 812*cda5da8dSAndroid Build Coastguard Worker }; 813*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 9) 814*cda5da8dSAndroid Build Coastguard Worker struct snd_ctl_card_info { 815*cda5da8dSAndroid Build Coastguard Worker int card; 816*cda5da8dSAndroid Build Coastguard Worker int pad; 817*cda5da8dSAndroid Build Coastguard Worker unsigned char id[16]; 818*cda5da8dSAndroid Build Coastguard Worker unsigned char driver[16]; 819*cda5da8dSAndroid Build Coastguard Worker unsigned char name[32]; 820*cda5da8dSAndroid Build Coastguard Worker unsigned char longname[80]; 821*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved_[16]; 822*cda5da8dSAndroid Build Coastguard Worker unsigned char mixername[80]; 823*cda5da8dSAndroid Build Coastguard Worker unsigned char components[128]; 824*cda5da8dSAndroid Build Coastguard Worker }; 825*cda5da8dSAndroid Build Coastguard Worker typedef int __bitwise snd_ctl_elem_type_t; 826*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_TYPE_NONE (( snd_ctl_elem_type_t) 0) 827*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_TYPE_BOOLEAN (( snd_ctl_elem_type_t) 1) 828*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_TYPE_INTEGER (( snd_ctl_elem_type_t) 2) 829*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_TYPE_ENUMERATED (( snd_ctl_elem_type_t) 3) 830*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_TYPE_BYTES (( snd_ctl_elem_type_t) 4) 831*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_TYPE_IEC958 (( snd_ctl_elem_type_t) 5) 832*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_TYPE_INTEGER64 (( snd_ctl_elem_type_t) 6) 833*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_TYPE_LAST SNDRV_CTL_ELEM_TYPE_INTEGER64 834*cda5da8dSAndroid Build Coastguard Worker typedef int __bitwise snd_ctl_elem_iface_t; 835*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_IFACE_CARD (( snd_ctl_elem_iface_t) 0) 836*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_IFACE_HWDEP (( snd_ctl_elem_iface_t) 1) 837*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_IFACE_MIXER (( snd_ctl_elem_iface_t) 2) 838*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_IFACE_PCM (( snd_ctl_elem_iface_t) 3) 839*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_IFACE_RAWMIDI (( snd_ctl_elem_iface_t) 4) 840*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_IFACE_TIMER (( snd_ctl_elem_iface_t) 5) 841*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_IFACE_SEQUENCER (( snd_ctl_elem_iface_t) 6) 842*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_IFACE_LAST SNDRV_CTL_ELEM_IFACE_SEQUENCER 843*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_ACCESS_READ (1 << 0) 844*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_ACCESS_WRITE (1 << 1) 845*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_ACCESS_READWRITE (SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_WRITE) 846*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_ACCESS_VOLATILE (1 << 2) 847*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_ACCESS_TLV_READ (1 << 4) 848*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE (1 << 5) 849*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE (SNDRV_CTL_ELEM_ACCESS_TLV_READ | SNDRV_CTL_ELEM_ACCESS_TLV_WRITE) 850*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_ACCESS_TLV_COMMAND (1 << 6) 851*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_ACCESS_INACTIVE (1 << 8) 852*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_ACCESS_LOCK (1 << 9) 853*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_ACCESS_OWNER (1 << 10) 854*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK (1 << 28) 855*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_ACCESS_USER (1 << 29) 856*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_POWER_D0 0x0000 857*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_POWER_D1 0x0100 858*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_POWER_D2 0x0200 859*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_POWER_D3 0x0300 860*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_POWER_D3hot (SNDRV_CTL_POWER_D3 | 0x0000) 861*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_POWER_D3cold (SNDRV_CTL_POWER_D3 | 0x0001) 862*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_ELEM_ID_NAME_MAXLEN 44 863*cda5da8dSAndroid Build Coastguard Worker struct snd_ctl_elem_id { 864*cda5da8dSAndroid Build Coastguard Worker unsigned int numid; 865*cda5da8dSAndroid Build Coastguard Worker snd_ctl_elem_iface_t iface; 866*cda5da8dSAndroid Build Coastguard Worker unsigned int device; 867*cda5da8dSAndroid Build Coastguard Worker unsigned int subdevice; 868*cda5da8dSAndroid Build Coastguard Worker unsigned char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 869*cda5da8dSAndroid Build Coastguard Worker unsigned int index; 870*cda5da8dSAndroid Build Coastguard Worker }; 871*cda5da8dSAndroid Build Coastguard Worker struct snd_ctl_elem_list { 872*cda5da8dSAndroid Build Coastguard Worker unsigned int offset; 873*cda5da8dSAndroid Build Coastguard Worker unsigned int space; 874*cda5da8dSAndroid Build Coastguard Worker unsigned int used; 875*cda5da8dSAndroid Build Coastguard Worker unsigned int count; 876*cda5da8dSAndroid Build Coastguard Worker struct snd_ctl_elem_id * pids; 877*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[50]; 878*cda5da8dSAndroid Build Coastguard Worker }; 879*cda5da8dSAndroid Build Coastguard Worker struct snd_ctl_elem_info { 880*cda5da8dSAndroid Build Coastguard Worker struct snd_ctl_elem_id id; 881*cda5da8dSAndroid Build Coastguard Worker snd_ctl_elem_type_t type; 882*cda5da8dSAndroid Build Coastguard Worker unsigned int access; 883*cda5da8dSAndroid Build Coastguard Worker unsigned int count; 884*cda5da8dSAndroid Build Coastguard Worker __kernel_pid_t owner; 885*cda5da8dSAndroid Build Coastguard Worker union { 886*cda5da8dSAndroid Build Coastguard Worker struct { 887*cda5da8dSAndroid Build Coastguard Worker long min; 888*cda5da8dSAndroid Build Coastguard Worker long max; 889*cda5da8dSAndroid Build Coastguard Worker long step; 890*cda5da8dSAndroid Build Coastguard Worker } integer; 891*cda5da8dSAndroid Build Coastguard Worker struct { 892*cda5da8dSAndroid Build Coastguard Worker long long min; 893*cda5da8dSAndroid Build Coastguard Worker long long max; 894*cda5da8dSAndroid Build Coastguard Worker long long step; 895*cda5da8dSAndroid Build Coastguard Worker } integer64; 896*cda5da8dSAndroid Build Coastguard Worker struct { 897*cda5da8dSAndroid Build Coastguard Worker unsigned int items; 898*cda5da8dSAndroid Build Coastguard Worker unsigned int item; 899*cda5da8dSAndroid Build Coastguard Worker char name[64]; 900*cda5da8dSAndroid Build Coastguard Worker __u64 names_ptr; 901*cda5da8dSAndroid Build Coastguard Worker unsigned int names_length; 902*cda5da8dSAndroid Build Coastguard Worker } enumerated; 903*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[128]; 904*cda5da8dSAndroid Build Coastguard Worker } value; 905*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[64]; 906*cda5da8dSAndroid Build Coastguard Worker }; 907*cda5da8dSAndroid Build Coastguard Worker struct snd_ctl_elem_value { 908*cda5da8dSAndroid Build Coastguard Worker struct snd_ctl_elem_id id; 909*cda5da8dSAndroid Build Coastguard Worker unsigned int indirect : 1; 910*cda5da8dSAndroid Build Coastguard Worker union { 911*cda5da8dSAndroid Build Coastguard Worker union { 912*cda5da8dSAndroid Build Coastguard Worker long value[128]; 913*cda5da8dSAndroid Build Coastguard Worker long * value_ptr; 914*cda5da8dSAndroid Build Coastguard Worker } integer; 915*cda5da8dSAndroid Build Coastguard Worker union { 916*cda5da8dSAndroid Build Coastguard Worker long long value[64]; 917*cda5da8dSAndroid Build Coastguard Worker long long * value_ptr; 918*cda5da8dSAndroid Build Coastguard Worker } integer64; 919*cda5da8dSAndroid Build Coastguard Worker union { 920*cda5da8dSAndroid Build Coastguard Worker unsigned int item[128]; 921*cda5da8dSAndroid Build Coastguard Worker unsigned int * item_ptr; 922*cda5da8dSAndroid Build Coastguard Worker } enumerated; 923*cda5da8dSAndroid Build Coastguard Worker union { 924*cda5da8dSAndroid Build Coastguard Worker unsigned char data[512]; 925*cda5da8dSAndroid Build Coastguard Worker unsigned char * data_ptr; 926*cda5da8dSAndroid Build Coastguard Worker } bytes; 927*cda5da8dSAndroid Build Coastguard Worker struct snd_aes_iec958 iec958; 928*cda5da8dSAndroid Build Coastguard Worker } value; 929*cda5da8dSAndroid Build Coastguard Worker unsigned char reserved[128]; 930*cda5da8dSAndroid Build Coastguard Worker }; 931*cda5da8dSAndroid Build Coastguard Worker struct snd_ctl_tlv { 932*cda5da8dSAndroid Build Coastguard Worker unsigned int numid; 933*cda5da8dSAndroid Build Coastguard Worker unsigned int length; 934*cda5da8dSAndroid Build Coastguard Worker unsigned int tlv[]; 935*cda5da8dSAndroid Build Coastguard Worker }; 936*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_PVERSION _IOR('U', 0x00, int) 937*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_CARD_INFO _IOR('U', 0x01, struct snd_ctl_card_info) 938*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_ELEM_LIST _IOWR('U', 0x10, struct snd_ctl_elem_list) 939*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_ELEM_INFO _IOWR('U', 0x11, struct snd_ctl_elem_info) 940*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_ELEM_READ _IOWR('U', 0x12, struct snd_ctl_elem_value) 941*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_ELEM_WRITE _IOWR('U', 0x13, struct snd_ctl_elem_value) 942*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_ELEM_LOCK _IOW('U', 0x14, struct snd_ctl_elem_id) 943*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_ELEM_UNLOCK _IOW('U', 0x15, struct snd_ctl_elem_id) 944*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS _IOWR('U', 0x16, int) 945*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_ELEM_ADD _IOWR('U', 0x17, struct snd_ctl_elem_info) 946*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_ELEM_REPLACE _IOWR('U', 0x18, struct snd_ctl_elem_info) 947*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_ELEM_REMOVE _IOWR('U', 0x19, struct snd_ctl_elem_id) 948*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_TLV_READ _IOWR('U', 0x1a, struct snd_ctl_tlv) 949*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_TLV_WRITE _IOWR('U', 0x1b, struct snd_ctl_tlv) 950*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_TLV_COMMAND _IOWR('U', 0x1c, struct snd_ctl_tlv) 951*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE _IOWR('U', 0x20, int) 952*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_HWDEP_INFO _IOR('U', 0x21, struct snd_hwdep_info) 953*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE _IOR('U', 0x30, int) 954*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_PCM_INFO _IOWR('U', 0x31, struct snd_pcm_info) 955*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE _IOW('U', 0x32, int) 956*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE _IOWR('U', 0x40, int) 957*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_RAWMIDI_INFO _IOWR('U', 0x41, struct snd_rawmidi_info) 958*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE _IOW('U', 0x42, int) 959*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_UMP_NEXT_DEVICE _IOWR('U', 0x43, int) 960*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_UMP_ENDPOINT_INFO _IOWR('U', 0x44, struct snd_ump_endpoint_info) 961*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_UMP_BLOCK_INFO _IOWR('U', 0x45, struct snd_ump_block_info) 962*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_POWER _IOWR('U', 0xd0, int) 963*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_IOCTL_POWER_STATE _IOR('U', 0xd1, int) 964*cda5da8dSAndroid Build Coastguard Worker enum sndrv_ctl_event_type { 965*cda5da8dSAndroid Build Coastguard Worker SNDRV_CTL_EVENT_ELEM = 0, 966*cda5da8dSAndroid Build Coastguard Worker SNDRV_CTL_EVENT_LAST = SNDRV_CTL_EVENT_ELEM, 967*cda5da8dSAndroid Build Coastguard Worker }; 968*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_EVENT_MASK_VALUE (1 << 0) 969*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_EVENT_MASK_INFO (1 << 1) 970*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_EVENT_MASK_ADD (1 << 2) 971*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_EVENT_MASK_TLV (1 << 3) 972*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_EVENT_MASK_REMOVE (~0U) 973*cda5da8dSAndroid Build Coastguard Worker struct snd_ctl_event { 974*cda5da8dSAndroid Build Coastguard Worker int type; 975*cda5da8dSAndroid Build Coastguard Worker union { 976*cda5da8dSAndroid Build Coastguard Worker struct { 977*cda5da8dSAndroid Build Coastguard Worker unsigned int mask; 978*cda5da8dSAndroid Build Coastguard Worker struct snd_ctl_elem_id id; 979*cda5da8dSAndroid Build Coastguard Worker } elem; 980*cda5da8dSAndroid Build Coastguard Worker unsigned char data8[60]; 981*cda5da8dSAndroid Build Coastguard Worker } data; 982*cda5da8dSAndroid Build Coastguard Worker }; 983*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_NAME_NONE "" 984*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_NAME_PLAYBACK "Playback " 985*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_NAME_CAPTURE "Capture " 986*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_NAME_IEC958_NONE "" 987*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_NAME_IEC958_SWITCH "Switch" 988*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_NAME_IEC958_VOLUME "Volume" 989*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_NAME_IEC958_DEFAULT "Default" 990*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_NAME_IEC958_MASK "Mask" 991*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_NAME_IEC958_CON_MASK "Con Mask" 992*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_NAME_IEC958_PRO_MASK "Pro Mask" 993*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_NAME_IEC958_PCM_STREAM "PCM Stream" 994*cda5da8dSAndroid Build Coastguard Worker #define SNDRV_CTL_NAME_IEC958(expl,direction,what) "IEC958 " expl SNDRV_CTL_NAME_ ##direction SNDRV_CTL_NAME_IEC958_ ##what 995*cda5da8dSAndroid Build Coastguard Worker #endif 996