225 lines
5.5 KiB
C
225 lines
5.5 KiB
C
/****************************************************************************
|
|
****************************************************************************
|
|
***
|
|
*** This header was automatically generated from a Linux kernel header
|
|
*** of the same name, to make information necessary for userspace to
|
|
*** call into the kernel available to libc. It contains only constants,
|
|
*** structures, and macros generated from the original header, and thus,
|
|
*** contains no copyrightable information.
|
|
***
|
|
*** To edit the content of this header, modify the corresponding
|
|
*** source file (e.g. under external/kernel-headers/original/) then
|
|
*** run bionic/libc/kernel/tools/update_all.py
|
|
***
|
|
*** Any manual change here will be lost the next time this script will
|
|
*** be run. You've been warned!
|
|
***
|
|
****************************************************************************
|
|
****************************************************************************/
|
|
#ifndef VIRTIO_SND_IF_H
|
|
#define VIRTIO_SND_IF_H
|
|
#include <linux/virtio_types.h>
|
|
struct virtio_snd_config {
|
|
__le32 jacks;
|
|
__le32 streams;
|
|
__le32 chmaps;
|
|
};
|
|
enum {
|
|
VIRTIO_SND_VQ_CONTROL = 0,
|
|
VIRTIO_SND_VQ_EVENT,
|
|
VIRTIO_SND_VQ_TX,
|
|
VIRTIO_SND_VQ_RX,
|
|
VIRTIO_SND_VQ_MAX
|
|
};
|
|
enum {
|
|
VIRTIO_SND_D_OUTPUT = 0,
|
|
VIRTIO_SND_D_INPUT
|
|
};
|
|
enum {
|
|
VIRTIO_SND_R_JACK_INFO = 1,
|
|
VIRTIO_SND_R_JACK_REMAP,
|
|
VIRTIO_SND_R_PCM_INFO = 0x0100,
|
|
VIRTIO_SND_R_PCM_SET_PARAMS,
|
|
VIRTIO_SND_R_PCM_PREPARE,
|
|
VIRTIO_SND_R_PCM_RELEASE,
|
|
VIRTIO_SND_R_PCM_START,
|
|
VIRTIO_SND_R_PCM_STOP,
|
|
VIRTIO_SND_R_CHMAP_INFO = 0x0200,
|
|
VIRTIO_SND_EVT_JACK_CONNECTED = 0x1000,
|
|
VIRTIO_SND_EVT_JACK_DISCONNECTED,
|
|
VIRTIO_SND_EVT_PCM_PERIOD_ELAPSED = 0x1100,
|
|
VIRTIO_SND_EVT_PCM_XRUN,
|
|
VIRTIO_SND_S_OK = 0x8000,
|
|
VIRTIO_SND_S_BAD_MSG,
|
|
VIRTIO_SND_S_NOT_SUPP,
|
|
VIRTIO_SND_S_IO_ERR
|
|
};
|
|
struct virtio_snd_hdr {
|
|
__le32 code;
|
|
};
|
|
struct virtio_snd_event {
|
|
struct virtio_snd_hdr hdr;
|
|
__le32 data;
|
|
};
|
|
struct virtio_snd_query_info {
|
|
struct virtio_snd_hdr hdr;
|
|
__le32 start_id;
|
|
__le32 count;
|
|
__le32 size;
|
|
};
|
|
struct virtio_snd_info {
|
|
__le32 hda_fn_nid;
|
|
};
|
|
struct virtio_snd_jack_hdr {
|
|
struct virtio_snd_hdr hdr;
|
|
__le32 jack_id;
|
|
};
|
|
enum {
|
|
VIRTIO_SND_JACK_F_REMAP = 0
|
|
};
|
|
struct virtio_snd_jack_info {
|
|
struct virtio_snd_info hdr;
|
|
__le32 features;
|
|
__le32 hda_reg_defconf;
|
|
__le32 hda_reg_caps;
|
|
__u8 connected;
|
|
__u8 padding[7];
|
|
};
|
|
struct virtio_snd_jack_remap {
|
|
struct virtio_snd_jack_hdr hdr;
|
|
__le32 association;
|
|
__le32 sequence;
|
|
};
|
|
struct virtio_snd_pcm_hdr {
|
|
struct virtio_snd_hdr hdr;
|
|
__le32 stream_id;
|
|
};
|
|
enum {
|
|
VIRTIO_SND_PCM_F_SHMEM_HOST = 0,
|
|
VIRTIO_SND_PCM_F_SHMEM_GUEST,
|
|
VIRTIO_SND_PCM_F_MSG_POLLING,
|
|
VIRTIO_SND_PCM_F_EVT_SHMEM_PERIODS,
|
|
VIRTIO_SND_PCM_F_EVT_XRUNS
|
|
};
|
|
enum {
|
|
VIRTIO_SND_PCM_FMT_IMA_ADPCM = 0,
|
|
VIRTIO_SND_PCM_FMT_MU_LAW,
|
|
VIRTIO_SND_PCM_FMT_A_LAW,
|
|
VIRTIO_SND_PCM_FMT_S8,
|
|
VIRTIO_SND_PCM_FMT_U8,
|
|
VIRTIO_SND_PCM_FMT_S16,
|
|
VIRTIO_SND_PCM_FMT_U16,
|
|
VIRTIO_SND_PCM_FMT_S18_3,
|
|
VIRTIO_SND_PCM_FMT_U18_3,
|
|
VIRTIO_SND_PCM_FMT_S20_3,
|
|
VIRTIO_SND_PCM_FMT_U20_3,
|
|
VIRTIO_SND_PCM_FMT_S24_3,
|
|
VIRTIO_SND_PCM_FMT_U24_3,
|
|
VIRTIO_SND_PCM_FMT_S20,
|
|
VIRTIO_SND_PCM_FMT_U20,
|
|
VIRTIO_SND_PCM_FMT_S24,
|
|
VIRTIO_SND_PCM_FMT_U24,
|
|
VIRTIO_SND_PCM_FMT_S32,
|
|
VIRTIO_SND_PCM_FMT_U32,
|
|
VIRTIO_SND_PCM_FMT_FLOAT,
|
|
VIRTIO_SND_PCM_FMT_FLOAT64,
|
|
VIRTIO_SND_PCM_FMT_DSD_U8,
|
|
VIRTIO_SND_PCM_FMT_DSD_U16,
|
|
VIRTIO_SND_PCM_FMT_DSD_U32,
|
|
VIRTIO_SND_PCM_FMT_IEC958_SUBFRAME
|
|
};
|
|
enum {
|
|
VIRTIO_SND_PCM_RATE_5512 = 0,
|
|
VIRTIO_SND_PCM_RATE_8000,
|
|
VIRTIO_SND_PCM_RATE_11025,
|
|
VIRTIO_SND_PCM_RATE_16000,
|
|
VIRTIO_SND_PCM_RATE_22050,
|
|
VIRTIO_SND_PCM_RATE_32000,
|
|
VIRTIO_SND_PCM_RATE_44100,
|
|
VIRTIO_SND_PCM_RATE_48000,
|
|
VIRTIO_SND_PCM_RATE_64000,
|
|
VIRTIO_SND_PCM_RATE_88200,
|
|
VIRTIO_SND_PCM_RATE_96000,
|
|
VIRTIO_SND_PCM_RATE_176400,
|
|
VIRTIO_SND_PCM_RATE_192000,
|
|
VIRTIO_SND_PCM_RATE_384000
|
|
};
|
|
struct virtio_snd_pcm_info {
|
|
struct virtio_snd_info hdr;
|
|
__le32 features;
|
|
__le64 formats;
|
|
__le64 rates;
|
|
__u8 direction;
|
|
__u8 channels_min;
|
|
__u8 channels_max;
|
|
__u8 padding[5];
|
|
};
|
|
struct virtio_snd_pcm_set_params {
|
|
struct virtio_snd_pcm_hdr hdr;
|
|
__le32 buffer_bytes;
|
|
__le32 period_bytes;
|
|
__le32 features;
|
|
__u8 channels;
|
|
__u8 format;
|
|
__u8 rate;
|
|
__u8 padding;
|
|
};
|
|
struct virtio_snd_pcm_xfer {
|
|
__le32 stream_id;
|
|
};
|
|
struct virtio_snd_pcm_status {
|
|
__le32 status;
|
|
__le32 latency_bytes;
|
|
};
|
|
struct virtio_snd_chmap_hdr {
|
|
struct virtio_snd_hdr hdr;
|
|
__le32 chmap_id;
|
|
};
|
|
enum {
|
|
VIRTIO_SND_CHMAP_NONE = 0,
|
|
VIRTIO_SND_CHMAP_NA,
|
|
VIRTIO_SND_CHMAP_MONO,
|
|
VIRTIO_SND_CHMAP_FL,
|
|
VIRTIO_SND_CHMAP_FR,
|
|
VIRTIO_SND_CHMAP_RL,
|
|
VIRTIO_SND_CHMAP_RR,
|
|
VIRTIO_SND_CHMAP_FC,
|
|
VIRTIO_SND_CHMAP_LFE,
|
|
VIRTIO_SND_CHMAP_SL,
|
|
VIRTIO_SND_CHMAP_SR,
|
|
VIRTIO_SND_CHMAP_RC,
|
|
VIRTIO_SND_CHMAP_FLC,
|
|
VIRTIO_SND_CHMAP_FRC,
|
|
VIRTIO_SND_CHMAP_RLC,
|
|
VIRTIO_SND_CHMAP_RRC,
|
|
VIRTIO_SND_CHMAP_FLW,
|
|
VIRTIO_SND_CHMAP_FRW,
|
|
VIRTIO_SND_CHMAP_FLH,
|
|
VIRTIO_SND_CHMAP_FCH,
|
|
VIRTIO_SND_CHMAP_FRH,
|
|
VIRTIO_SND_CHMAP_TC,
|
|
VIRTIO_SND_CHMAP_TFL,
|
|
VIRTIO_SND_CHMAP_TFR,
|
|
VIRTIO_SND_CHMAP_TFC,
|
|
VIRTIO_SND_CHMAP_TRL,
|
|
VIRTIO_SND_CHMAP_TRR,
|
|
VIRTIO_SND_CHMAP_TRC,
|
|
VIRTIO_SND_CHMAP_TFLC,
|
|
VIRTIO_SND_CHMAP_TFRC,
|
|
VIRTIO_SND_CHMAP_TSL,
|
|
VIRTIO_SND_CHMAP_TSR,
|
|
VIRTIO_SND_CHMAP_LLFE,
|
|
VIRTIO_SND_CHMAP_RLFE,
|
|
VIRTIO_SND_CHMAP_BC,
|
|
VIRTIO_SND_CHMAP_BLC,
|
|
VIRTIO_SND_CHMAP_BRC
|
|
};
|
|
#define VIRTIO_SND_CHMAP_MAX_SIZE 18
|
|
struct virtio_snd_chmap_info {
|
|
struct virtio_snd_info hdr;
|
|
__u8 direction;
|
|
__u8 channels;
|
|
__u8 positions[VIRTIO_SND_CHMAP_MAX_SIZE];
|
|
};
|
|
#endif
|