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 __COMPRESS_OFFLOAD_H 8*8d67ca89SAndroid Build Coastguard Worker #define __COMPRESS_OFFLOAD_H 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #include <sound/asound.h> 11*8d67ca89SAndroid Build Coastguard Worker #include <sound/compress_params.h> 12*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_VERSION SNDRV_PROTOCOL_VERSION(0, 2, 0) 13*8d67ca89SAndroid Build Coastguard Worker struct snd_compressed_buffer { 14*8d67ca89SAndroid Build Coastguard Worker __u32 fragment_size; 15*8d67ca89SAndroid Build Coastguard Worker __u32 fragments; 16*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed, aligned(4))); 17*8d67ca89SAndroid Build Coastguard Worker struct snd_compr_params { 18*8d67ca89SAndroid Build Coastguard Worker struct snd_compressed_buffer buffer; 19*8d67ca89SAndroid Build Coastguard Worker struct snd_codec codec; 20*8d67ca89SAndroid Build Coastguard Worker __u8 no_wake_mode; 21*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed, aligned(4))); 22*8d67ca89SAndroid Build Coastguard Worker struct snd_compr_tstamp { 23*8d67ca89SAndroid Build Coastguard Worker __u32 byte_offset; 24*8d67ca89SAndroid Build Coastguard Worker __u32 copied_total; 25*8d67ca89SAndroid Build Coastguard Worker __u32 pcm_frames; 26*8d67ca89SAndroid Build Coastguard Worker __u32 pcm_io_frames; 27*8d67ca89SAndroid Build Coastguard Worker __u32 sampling_rate; 28*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed, aligned(4))); 29*8d67ca89SAndroid Build Coastguard Worker struct snd_compr_avail { 30*8d67ca89SAndroid Build Coastguard Worker __u64 avail; 31*8d67ca89SAndroid Build Coastguard Worker struct snd_compr_tstamp tstamp; 32*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed, aligned(4))); 33*8d67ca89SAndroid Build Coastguard Worker enum snd_compr_direction { 34*8d67ca89SAndroid Build Coastguard Worker SND_COMPRESS_PLAYBACK = 0, 35*8d67ca89SAndroid Build Coastguard Worker SND_COMPRESS_CAPTURE 36*8d67ca89SAndroid Build Coastguard Worker }; 37*8d67ca89SAndroid Build Coastguard Worker struct snd_compr_caps { 38*8d67ca89SAndroid Build Coastguard Worker __u32 num_codecs; 39*8d67ca89SAndroid Build Coastguard Worker __u32 direction; 40*8d67ca89SAndroid Build Coastguard Worker __u32 min_fragment_size; 41*8d67ca89SAndroid Build Coastguard Worker __u32 max_fragment_size; 42*8d67ca89SAndroid Build Coastguard Worker __u32 min_fragments; 43*8d67ca89SAndroid Build Coastguard Worker __u32 max_fragments; 44*8d67ca89SAndroid Build Coastguard Worker __u32 codecs[MAX_NUM_CODECS]; 45*8d67ca89SAndroid Build Coastguard Worker __u32 reserved[11]; 46*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed, aligned(4))); 47*8d67ca89SAndroid Build Coastguard Worker struct snd_compr_codec_caps { 48*8d67ca89SAndroid Build Coastguard Worker __u32 codec; 49*8d67ca89SAndroid Build Coastguard Worker __u32 num_descriptors; 50*8d67ca89SAndroid Build Coastguard Worker struct snd_codec_desc descriptor[MAX_NUM_CODEC_DESCRIPTORS]; 51*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed, aligned(4))); 52*8d67ca89SAndroid Build Coastguard Worker enum sndrv_compress_encoder { 53*8d67ca89SAndroid Build Coastguard Worker SNDRV_COMPRESS_ENCODER_PADDING = 1, 54*8d67ca89SAndroid Build Coastguard Worker SNDRV_COMPRESS_ENCODER_DELAY = 2, 55*8d67ca89SAndroid Build Coastguard Worker }; 56*8d67ca89SAndroid Build Coastguard Worker struct snd_compr_metadata { 57*8d67ca89SAndroid Build Coastguard Worker __u32 key; 58*8d67ca89SAndroid Build Coastguard Worker __u32 value[8]; 59*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed, aligned(4))); 60*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_IOCTL_VERSION _IOR('C', 0x00, int) 61*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_GET_CAPS _IOWR('C', 0x10, struct snd_compr_caps) 62*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_GET_CODEC_CAPS _IOWR('C', 0x11, struct snd_compr_codec_caps) 63*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_SET_PARAMS _IOW('C', 0x12, struct snd_compr_params) 64*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_GET_PARAMS _IOR('C', 0x13, struct snd_codec) 65*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_SET_METADATA _IOW('C', 0x14, struct snd_compr_metadata) 66*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_GET_METADATA _IOWR('C', 0x15, struct snd_compr_metadata) 67*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_TSTAMP _IOR('C', 0x20, struct snd_compr_tstamp) 68*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_AVAIL _IOR('C', 0x21, struct snd_compr_avail) 69*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_PAUSE _IO('C', 0x30) 70*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_RESUME _IO('C', 0x31) 71*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_START _IO('C', 0x32) 72*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_STOP _IO('C', 0x33) 73*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_DRAIN _IO('C', 0x34) 74*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_NEXT_TRACK _IO('C', 0x35) 75*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_COMPRESS_PARTIAL_DRAIN _IO('C', 0x36) 76*8d67ca89SAndroid Build Coastguard Worker #define SND_COMPR_TRIGGER_DRAIN 7 77*8d67ca89SAndroid Build Coastguard Worker #define SND_COMPR_TRIGGER_NEXT_TRACK 8 78*8d67ca89SAndroid Build Coastguard Worker #define SND_COMPR_TRIGGER_PARTIAL_DRAIN 9 79*8d67ca89SAndroid Build Coastguard Worker #endif 80