1
2 #ifndef __SOUND_PCM_OSS_H
3 #define __SOUND_PCM_OSS_H
4
5
6
7
8
9
10 struct snd_pcm_oss_setup {
11 char *task_name;
12 unsigned int disable:1,
13 direct:1,
14 block:1,
15 nonblock:1,
16 partialfrag:1,
17 nosilence:1,
18 buggyptr:1;
19 unsigned int periods;
20 unsigned int period_size;
21 struct snd_pcm_oss_setup *next;
22 };
23
24 struct snd_pcm_oss_runtime {
25 unsigned params: 1,
26 prepare: 1,
27 trigger: 1,
28 sync_trigger: 1;
29 int rate;
30 int format;
31 unsigned int channels;
32 unsigned int fragshift;
33 unsigned int maxfrags;
34 unsigned int subdivision;
35 size_t period_bytes;
36 size_t period_frames;
37 size_t period_ptr;
38 unsigned int periods;
39 size_t buffer_bytes;
40 size_t bytes;
41 size_t mmap_bytes;
42 char *buffer;
43 size_t buffer_used;
44 struct mutex params_lock;
45 atomic_t rw_ref;
46 #ifdef CONFIG_SND_PCM_OSS_PLUGINS
47 struct snd_pcm_plugin *plugin_first;
48 struct snd_pcm_plugin *plugin_last;
49 #endif
50 unsigned int prev_hw_ptr_period;
51 };
52
53 struct snd_pcm_oss_file {
54 struct snd_pcm_substream *streams[2];
55 };
56
57 struct snd_pcm_oss_substream {
58 unsigned oss: 1;
59 struct snd_pcm_oss_setup setup;
60 };
61
62 struct snd_pcm_oss_stream {
63 struct snd_pcm_oss_setup *setup_list;
64 struct mutex setup_mutex;
65 #ifdef CONFIG_SND_VERBOSE_PROCFS
66 struct snd_info_entry *proc_entry;
67 #endif
68 };
69
70 struct snd_pcm_oss {
71 int reg;
72 unsigned int reg_mask;
73 };
74
75 #endif