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