5 int DMAbuf_open(int dev
, int mode
);
6 int DMAbuf_release(int dev
, int mode
);
7 int DMAbuf_getwrbuffer(int dev
, char **buf
, int *size
, int dontblock
);
8 int DMAbuf_getrdbuffer(int dev
, char **buf
, int *len
, int dontblock
);
9 int DMAbuf_rmchars(int dev
, int buff_no
, int c
);
10 int DMAbuf_start_output(int dev
, int buff_no
, int l
);
11 int DMAbuf_ioctl(int dev
, unsigned int cmd
, ioctl_arg arg
, int local
);
12 long DMAbuf_init(long mem_start
);
13 int DMAbuf_start_dma (int dev
, unsigned long physaddr
, int count
, int dma_mode
);
14 int DMAbuf_open_dma (int dev
);
15 void DMAbuf_close_dma (int dev
);
16 void DMAbuf_reset_dma (int dev
);
17 void DMAbuf_inputintr(int dev
);
18 void DMAbuf_outputintr(int dev
, int underflow_flag
);
19 int DMAbuf_select(int dev
, struct fileinfo
*file
, int sel_type
, select_table
* wait
);
20 void DMAbuf_start_devices(unsigned int devmask
);
23 * System calls for /dev/dsp and /dev/audio
26 int audio_read (int dev
, struct fileinfo
*file
, snd_rw_buf
*buf
, int count
);
27 int audio_write (int dev
, struct fileinfo
*file
, const snd_rw_buf
*buf
, int count
);
28 int audio_open (int dev
, struct fileinfo
*file
);
29 void audio_release (int dev
, struct fileinfo
*file
);
30 int audio_ioctl (int dev
, struct fileinfo
*file
,
31 unsigned int cmd
, ioctl_arg arg
);
32 int audio_lseek (int dev
, struct fileinfo
*file
, off_t offset
, int orig
);
33 long audio_init (long mem_start
);
35 int audio_select(int dev
, struct fileinfo
*file
, int sel_type
, select_table
* wait
);
38 * System calls for the /dev/sequencer
41 int sequencer_read (int dev
, struct fileinfo
*file
, snd_rw_buf
*buf
, int count
);
42 int sequencer_write (int dev
, struct fileinfo
*file
, const snd_rw_buf
*buf
, int count
);
43 int sequencer_open (int dev
, struct fileinfo
*file
);
44 void sequencer_release (int dev
, struct fileinfo
*file
);
45 int sequencer_ioctl (int dev
, struct fileinfo
*file
,
46 unsigned int cmd
, ioctl_arg arg
);
47 int sequencer_lseek (int dev
, struct fileinfo
*file
, off_t offset
, int orig
);
48 long sequencer_init (long mem_start
);
49 void sequencer_timer(unsigned long dummy
);
50 int note_to_freq(int note_num
);
51 unsigned long compute_finetune(unsigned long base_freq
, int bend
, int range
);
52 void seq_input_event(unsigned char *event
, int len
);
53 void seq_copy_to_input (unsigned char *event
, int len
);
55 int sequencer_select(int dev
, struct fileinfo
*file
, int sel_type
, select_table
* wait
);
58 * System calls for the /dev/midi
61 int MIDIbuf_read (int dev
, struct fileinfo
*file
, snd_rw_buf
*buf
, int count
);
62 int MIDIbuf_write (int dev
, struct fileinfo
*file
, const snd_rw_buf
*buf
, int count
);
63 int MIDIbuf_open (int dev
, struct fileinfo
*file
);
64 void MIDIbuf_release (int dev
, struct fileinfo
*file
);
65 int MIDIbuf_ioctl (int dev
, struct fileinfo
*file
,
66 unsigned int cmd
, ioctl_arg arg
);
67 int MIDIbuf_lseek (int dev
, struct fileinfo
*file
, off_t offset
, int orig
);
68 void MIDIbuf_bytes_received(int dev
, unsigned char *buf
, int count
);
69 long MIDIbuf_init(long mem_start
);
71 int MIDIbuf_select(int dev
, struct fileinfo
*file
, int sel_type
, select_table
* wait
);
75 * Misc calls from various sources
78 /* From soundcard.c */
79 void soundcard_init(void);
80 void tenmicrosec(void);
81 void request_sound_timer (int count
);
82 void sound_stop_timer(void);
83 int snd_ioctl_return(int *addr
, int value
);
84 int snd_set_irq_handler (int interrupt_level
, void(*hndlr
)(int, struct pt_regs
*), char *name
, sound_os_info
*osp
);
85 void snd_release_irq(int vect
);
86 void sound_dma_malloc(int dev
);
87 void sound_dma_free(int dev
);
89 /* From sound_switch.c */
90 int sound_read_sw (int dev
, struct fileinfo
*file
, snd_rw_buf
*buf
, int count
);
91 int sound_write_sw (int dev
, struct fileinfo
*file
, const snd_rw_buf
*buf
, int count
);
92 int sound_open_sw (int dev
, struct fileinfo
*file
);
93 void sound_release_sw (int dev
, struct fileinfo
*file
);
94 int sound_ioctl_sw (int dev
, struct fileinfo
*file
,
95 unsigned int cmd
, ioctl_arg arg
);
98 int sb_dsp_detect (struct address_info
*hw_config
);
99 long sb_dsp_init (long mem_start
, struct address_info
*hw_config
);
100 void sb_dsp_disable_midi(void);
101 int sb_get_irq(void);
102 void sb_free_irq(void);
103 int sb_dsp_command (unsigned char val
);
104 int sb_reset_dsp (void);
105 void sb_dsp_unload(void);
107 /* From sb16_dsp.c */
108 void sb16_dsp_interrupt (int irq
);
109 long sb16_dsp_init(long mem_start
, struct address_info
*hw_config
);
110 int sb16_dsp_detect(struct address_info
*hw_config
);
112 /* From sb16_midi.c */
113 void sb16midiintr (int unit
);
114 long attach_sb16midi(long mem_start
, struct address_info
* hw_config
);
115 int probe_sb16midi(struct address_info
*hw_config
);
116 void sb_midi_interrupt(int dummy
);
119 void sb_midi_init(int model
);
121 /* From sb_mixer.c */
122 void sb_setmixer (unsigned int port
, unsigned int value
);
123 int sb_getmixer (unsigned int port
);
124 void sb_mixer_set_stereo(int mode
);
125 int sb_mixer_init(int major_model
);
128 int opl3_detect (int ioaddr
, sound_os_info
*osp
);
129 long opl3_init(long mem_start
, int ioaddr
, sound_os_info
*osp
);
132 long attach_sb_card(long mem_start
, struct address_info
*hw_config
);
133 int probe_sb(struct address_info
*hw_config
);
135 /* From adlib_card.c */
136 long attach_adlib_card(long mem_start
, struct address_info
*hw_config
);
137 int probe_adlib(struct address_info
*hw_config
);
139 /* From pas_card.c */
140 long attach_pas_card(long mem_start
, struct address_info
*hw_config
);
141 int probe_pas(struct address_info
*hw_config
);
142 int pas_set_intr(int mask
);
143 int pas_remove_intr(int mask
);
144 unsigned char pas_read(int ioaddr
);
145 void pas_write(unsigned char data
, int ioaddr
);
147 /* From pas_audio.c */
148 void pas_pcm_interrupt(unsigned char status
, int cause
);
149 long pas_pcm_init(long mem_start
, struct address_info
*hw_config
);
151 /* From pas_mixer.c */
152 int pas_init_mixer(void);
154 /* From pas_midi.c */
155 long pas_midi_init(long mem_start
);
156 void pas_midi_interrupt(void);
158 /* From gus_card.c */
159 long attach_gus_card(long mem_start
, struct address_info
* hw_config
);
160 int probe_gus(struct address_info
*hw_config
);
161 int gus_set_midi_irq(int num
);
162 void gusintr(int irq
, struct pt_regs
* dummy
);
163 long attach_gus_db16(long mem_start
, struct address_info
* hw_config
);
164 int probe_gus_db16(struct address_info
*hw_config
);
166 /* From gus_wave.c */
167 int gus_wave_detect(int baseaddr
);
168 long gus_wave_init(long mem_start
, struct address_info
*hw_config
);
169 void gus_wave_unload (void);
170 void gus_voice_irq(void);
171 unsigned char gus_read8 (int reg
);
172 void gus_write8(int reg
, unsigned int data
);
173 void guswave_dma_irq(void);
174 void gus_delay(void);
175 int gus_default_mixer_ioctl (int dev
, unsigned int cmd
, ioctl_arg arg
);
176 void gus_timer_command (unsigned int addr
, unsigned int val
);
178 /* From gus_midi.c */
179 long gus_midi_init(long mem_start
);
180 void gus_midi_interrupt(int dummy
);
183 long attach_mpu401(long mem_start
, struct address_info
* hw_config
);
184 int probe_mpu401(struct address_info
*hw_config
);
185 void mpuintr(int irq
, struct pt_regs
* dummy
);
187 /* From uart6850.c */
188 long attach_uart6850(long mem_start
, struct address_info
* hw_config
);
189 int probe_uart6850(struct address_info
*hw_config
);
192 void enable_opl3_mode(int left
, int right
, int both
);
195 int pmgr_open(int dev
);
196 void pmgr_release(int dev
);
197 int pmgr_read (int dev
, struct fileinfo
*file
, snd_rw_buf
* buf
, int count
);
198 int pmgr_write (int dev
, struct fileinfo
*file
, const snd_rw_buf
* buf
, int count
);
199 int pmgr_access(int dev
, struct patmgr_info
*rec
);
200 int pmgr_inform(int dev
, int event
, unsigned long parm1
, unsigned long parm2
,
201 unsigned long parm3
, unsigned long parm4
);
204 long ics2101_mixer_init(long mem_start
);
206 /* From sound_timer.c */
207 void sound_timer_interrupt(void);
208 void sound_timer_syncinterval(unsigned int new_usecs
);
211 void ad1848_init (char *name
, int io_base
, int irq
, int dma_playback
, int dma_capture
, int share_dma
, sound_os_info
*osp
);
212 void ad1848_unload (int io_base
, int irq
, int dma_playback
, int dma_capture
, int share_dma
);
214 int ad1848_detect (int io_base
, int *flags
, sound_os_info
*osp
);
215 #define AD_F_CS4231 0x0001 /* Returned if a CS4232 (or compatible) detected */
216 #define AD_F_CS4248 0x0001 /* Returned if a CS4248 (or compatible) detected */
218 void ad1848_interrupt (int irq
, struct pt_regs
* dummy
);
219 long attach_ms_sound(long mem_start
, struct address_info
* hw_config
);
220 int probe_ms_sound(struct address_info
*hw_config
);
221 long attach_pnp_ad1848(long mem_start
, struct address_info
* hw_config
);
222 int probe_pnp_ad1848(struct address_info
*hw_config
);
223 void unload_pnp_ad1848(struct address_info
*hw_info
);
226 int probe_pss (struct address_info
*hw_config
);
227 long attach_pss (long mem_start
, struct address_info
*hw_config
);
228 int probe_pss_mpu (struct address_info
*hw_config
);
229 long attach_pss_mpu (long mem_start
, struct address_info
*hw_config
);
230 int probe_pss_mss (struct address_info
*hw_config
);
231 long attach_pss_mss (long mem_start
, struct address_info
*hw_config
);
234 int probe_sscape (struct address_info
*hw_config
);
235 long attach_sscape (long mem_start
, struct address_info
*hw_config
);
236 int probe_ss_ms_sound (struct address_info
*hw_config
);
237 long attach_ss_ms_sound(long mem_start
, struct address_info
* hw_config
);
239 int pss_read (int dev
, struct fileinfo
*file
, snd_rw_buf
*buf
, int count
);
240 int pss_write (int dev
, struct fileinfo
*file
, snd_rw_buf
*buf
, int count
);
241 int pss_open (int dev
, struct fileinfo
*file
);
242 void pss_release (int dev
, struct fileinfo
*file
);
243 int pss_ioctl (int dev
, struct fileinfo
*file
,
244 unsigned int cmd
, ioctl_arg arg
);
245 int pss_lseek (int dev
, struct fileinfo
*file
, off_t offset
, int orig
);
246 long pss_init(long mem_start
);
249 int InitAEDSP16_SBPRO(struct address_info
*hw_config
);
250 int InitAEDSP16_MSS(struct address_info
*hw_config
);
251 int InitAEDSP16_MPU401(struct address_info
*hw_config
);
253 /* From midi_synth.c */
254 void do_midi_msg (int synthno
, unsigned char *msg
, int mlen
);
257 long attach_trix_wss (long mem_start
, struct address_info
*hw_config
);
258 int probe_trix_wss (struct address_info
*hw_config
);
259 long attach_trix_sb (long mem_start
, struct address_info
*hw_config
);
260 int probe_trix_sb (struct address_info
*hw_config
);
261 long attach_trix_mpu (long mem_start
, struct address_info
*hw_config
);
262 int probe_trix_mpu (struct address_info
*hw_config
);
265 long attach_mad16 (long mem_start
, struct address_info
*hw_config
);
266 int probe_mad16 (struct address_info
*hw_config
);
267 long attach_mad16_mpu (long mem_start
, struct address_info
*hw_config
);
268 int probe_mad16_mpu (struct address_info
*hw_config
);
269 int mad16_sb_dsp_detect (struct address_info
*hw_config
);
270 long mad16_sb_dsp_init (long mem_start
, struct address_info
*hw_config
);
272 /* Unload routines from various source files*/
273 void unload_pss(struct address_info
*hw_info
);
274 void unload_pss_mpu(struct address_info
*hw_info
);
275 void unload_pss_mss(struct address_info
*hw_info
);
276 void unload_mad16(struct address_info
*hw_info
);
277 void unload_mad16_mpu(struct address_info
*hw_info
);
278 void unload_adlib(struct address_info
*hw_info
);
279 void unload_pas(struct address_info
*hw_info
);
280 void unload_mpu401(struct address_info
*hw_info
);
281 void unload_maui(struct address_info
*hw_info
);
282 void unload_uart6850(struct address_info
*hw_info
);
283 void unload_sb(struct address_info
*hw_info
);
284 void unload_sb16(struct address_info
*hw_info
);
285 void unload_sb16midi(struct address_info
*hw_info
);
286 void unload_gus_db16(struct address_info
*hw_info
);
287 void unload_ms_sound(struct address_info
*hw_info
);
288 void unload_gus(struct address_info
*hw_info
);
289 void unload_sscape(struct address_info
*hw_info
);
290 void unload_ss_ms_sound(struct address_info
*hw_info
);
291 void unload_trix_wss(struct address_info
*hw_info
);
292 void unload_trix_sb(struct address_info
*hw_info
);
293 void unload_trix_mpu(struct address_info
*hw_info
);
294 void unload_cs4232(struct address_info
*hw_info
);
295 void unload_cs4232_mpu(struct address_info
*hw_info
);
299 int probe_cs4232 (struct address_info
*hw_config
);
300 long attach_cs4232 (long mem_start
, struct address_info
*hw_config
);
301 int probe_cs4232_mpu (struct address_info
*hw_config
);
302 long attach_cs4232_mpu (long mem_start
, struct address_info
*hw_config
);
305 long attach_maui(long mem_start
, struct address_info
* hw_config
);
306 int probe_maui(struct address_info
*hw_config
);
308 /* From sound_pnp.c */
309 void sound_pnp_init(void);
310 void sound_pnp_disconnect(void);