1/*
2 * This header was generated from the Linux kernel headers by update_headers.py,
3 * to provide necessary information from kernel to userspace, such as constants,
4 * structures, and macros, and thus, contains no copyrightable information.
5 */
6#ifndef _UAPI__SOUND_SB16_CSP_H
7#define _UAPI__SOUND_SB16_CSP_H
8#define SNDRV_SB_CSP_MODE_NONE		0x00
9#define SNDRV_SB_CSP_MODE_DSP_READ	0x01
10#define SNDRV_SB_CSP_MODE_DSP_WRITE	0x02
11#define SNDRV_SB_CSP_MODE_QSOUND		0x04
12#define SNDRV_SB_CSP_LOAD_FROMUSER	0x01
13#define SNDRV_SB_CSP_LOAD_INITBLOCK	0x02
14#define SNDRV_SB_CSP_SAMPLE_8BIT		0x01
15#define SNDRV_SB_CSP_SAMPLE_16BIT		0x02
16#define SNDRV_SB_CSP_MONO			0x01
17#define SNDRV_SB_CSP_STEREO		0x02
18#define SNDRV_SB_CSP_RATE_8000		0x01
19#define SNDRV_SB_CSP_RATE_11025		0x02
20#define SNDRV_SB_CSP_RATE_22050		0x04
21#define SNDRV_SB_CSP_RATE_44100		0x08
22#define SNDRV_SB_CSP_RATE_ALL		0x0f
23#define SNDRV_SB_CSP_ST_IDLE		0x00
24#define SNDRV_SB_CSP_ST_LOADED		0x01
25#define SNDRV_SB_CSP_ST_RUNNING		0x02
26#define SNDRV_SB_CSP_ST_PAUSED		0x04
27#define SNDRV_SB_CSP_ST_AUTO		0x08
28#define SNDRV_SB_CSP_ST_QSOUND		0x10
29#define SNDRV_SB_CSP_QSOUND_MAX_RIGHT	0x20
30#define SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE	0x3000
31struct snd_sb_csp_mc_header {
32	char codec_name[16];
33	unsigned short func_req;
34};
35struct snd_sb_csp_microcode {
36	struct snd_sb_csp_mc_header info;
37	unsigned char data[SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE];
38};
39struct snd_sb_csp_start {
40	int sample_width;
41	int channels;
42};
43struct snd_sb_csp_info {
44	char codec_name[16];
45	unsigned short func_nr;
46	unsigned int acc_format;
47	unsigned short acc_channels;
48	unsigned short acc_width;
49	unsigned short acc_rates;
50	unsigned short csp_mode;
51	unsigned short run_channels;
52	unsigned short run_width;
53	unsigned short version;
54	unsigned short state;
55};
56#define SNDRV_SB_CSP_IOCTL_INFO		_IOR('H', 0x10, struct snd_sb_csp_info)
57#define SNDRV_SB_CSP_IOCTL_LOAD_CODE	\
58	_IOC(_IOC_WRITE, 'H', 0x11, sizeof(struct snd_sb_csp_microcode))
59#define SNDRV_SB_CSP_IOCTL_UNLOAD_CODE	_IO('H', 0x12)
60#define SNDRV_SB_CSP_IOCTL_START		_IOW('H', 0x13, struct snd_sb_csp_start)
61#define SNDRV_SB_CSP_IOCTL_STOP		_IO('H', 0x14)
62#define SNDRV_SB_CSP_IOCTL_PAUSE		_IO('H', 0x15)
63#define SNDRV_SB_CSP_IOCTL_RESTART	_IO('H', 0x16)
64#endif
65