a75ba8fa22
These drivers now have full SoundBlaster 16 support.
204 lines
6.8 KiB
C
204 lines
6.8 KiB
C
/*
|
|
* DMA buffer calls
|
|
*/
|
|
|
|
int DMAbuf_open(int dev, int mode);
|
|
int DMAbuf_release(int dev, int mode);
|
|
int DMAbuf_read (int dev, snd_rw_buf *user_buf, int count);
|
|
int DMAbuf_getwrbuffer(int dev, char **buf, int *size);
|
|
int DMAbuf_getrdbuffer(int dev, char **buf, int *len);
|
|
int DMAbuf_rmchars(int dev, int buff_no, int c);
|
|
int DMAbuf_start_output(int dev, int buff_no, int l);
|
|
int DMAbuf_ioctl(int dev, unsigned int cmd, unsigned int arg, int local);
|
|
long DMAbuf_init(long mem_start);
|
|
int DMAbuf_start_dma (int dev, unsigned long physaddr, int count, int dma_mode);
|
|
int DMAbuf_open_dma (int chan);
|
|
void DMAbuf_close_dma (int chan);
|
|
void DMAbuf_reset_dma (int chan);
|
|
void DMAbuf_inputintr(int dev);
|
|
void DMAbuf_outputintr(int dev, int underflow_flag);
|
|
|
|
/*
|
|
* System calls for /dev/dsp and /dev/audio
|
|
*/
|
|
|
|
int audio_read (int dev, struct fileinfo *file, snd_rw_buf *buf, int count);
|
|
int audio_write (int dev, struct fileinfo *file, snd_rw_buf *buf, int count);
|
|
int audio_open (int dev, struct fileinfo *file);
|
|
void audio_release (int dev, struct fileinfo *file);
|
|
int audio_ioctl (int dev, struct fileinfo *file,
|
|
unsigned int cmd, unsigned int arg);
|
|
int audio_lseek (int dev, struct fileinfo *file, off_t offset, int orig);
|
|
long audio_init (long mem_start);
|
|
|
|
/*
|
|
* System calls for the /dev/sequencer
|
|
*/
|
|
|
|
int sequencer_read (int dev, struct fileinfo *file, snd_rw_buf *buf, int count);
|
|
int sequencer_write (int dev, struct fileinfo *file, snd_rw_buf *buf, int count);
|
|
int sequencer_open (int dev, struct fileinfo *file);
|
|
void sequencer_release (int dev, struct fileinfo *file);
|
|
int sequencer_ioctl (int dev, struct fileinfo *file,
|
|
unsigned int cmd, unsigned int arg);
|
|
int sequencer_lseek (int dev, struct fileinfo *file, off_t offset, int orig);
|
|
long sequencer_init (long mem_start);
|
|
void sequencer_timer(void);
|
|
int note_to_freq(int note_num);
|
|
unsigned long compute_finetune(unsigned long base_freq, int bend, int range);
|
|
|
|
#ifdef ALLOW_SELECT
|
|
int sequencer_select(int dev, struct fileinfo *file, int sel_type, select_table * wait);
|
|
#endif
|
|
|
|
/*
|
|
* System calls for the /dev/midi
|
|
*/
|
|
|
|
int MIDIbuf_read (int dev, struct fileinfo *file, snd_rw_buf *buf, int count);
|
|
int MIDIbuf_write (int dev, struct fileinfo *file, snd_rw_buf *buf, int count);
|
|
int MIDIbuf_open (int dev, struct fileinfo *file);
|
|
void MIDIbuf_release (int dev, struct fileinfo *file);
|
|
int MIDIbuf_ioctl (int dev, struct fileinfo *file,
|
|
unsigned int cmd, unsigned int arg);
|
|
int MIDIbuf_lseek (int dev, struct fileinfo *file, off_t offset, int orig);
|
|
void MIDIbuf_bytes_received(int dev, unsigned char *buf, int count);
|
|
long MIDIbuf_init(long mem_start);
|
|
|
|
/*
|
|
* System calls for the generic midi interface.
|
|
*
|
|
*/
|
|
|
|
long CMIDI_init (long mem_start);
|
|
int CMIDI_open (int dev, struct fileinfo *file);
|
|
int CMIDI_write (int dev, struct fileinfo *file, snd_rw_buf *buf, int count);
|
|
int CMIDI_read (int dev, struct fileinfo *file, snd_rw_buf *buf, int count);
|
|
int CMIDI_close (int dev, struct fileinfo *file);
|
|
|
|
/*
|
|
*
|
|
* Misc calls from various sources
|
|
*/
|
|
|
|
/* From pro_midi.c */
|
|
|
|
long pro_midi_attach(long mem_start);
|
|
int pro_midi_open(int dev, int mode);
|
|
void pro_midi_close(int dev);
|
|
int pro_midi_write(int dev, snd_rw_buf *uio);
|
|
int pro_midi_read(int dev, snd_rw_buf *uio);
|
|
|
|
/* From soundcard.c */
|
|
long soundcard_init(long mem_start);
|
|
void tenmicrosec(void);
|
|
void request_sound_timer (int count);
|
|
void sound_stop_timer(void);
|
|
int snd_ioctl_return(int *addr, int value);
|
|
int snd_set_irq_handler (int interrupt_level, void(*hndlr)(int));
|
|
void snd_release_irq(int vect);
|
|
void sound_dma_malloc(int dev);
|
|
void sound_dma_free(int dev);
|
|
|
|
/* From sound_switch.c */
|
|
int sound_read_sw (int dev, struct fileinfo *file, snd_rw_buf *buf, int count);
|
|
int sound_write_sw (int dev, struct fileinfo *file, snd_rw_buf *buf, int count);
|
|
int sound_open_sw (int dev, struct fileinfo *file);
|
|
void sound_release_sw (int dev, struct fileinfo *file);
|
|
int sound_ioctl_sw (int dev, struct fileinfo *file,
|
|
unsigned int cmd, unsigned long arg);
|
|
|
|
/* From sb_dsp.c */
|
|
int sb_dsp_detect (struct address_info *hw_config);
|
|
long sb_dsp_init (long mem_start, struct address_info *hw_config);
|
|
void sb_dsp_disable_midi(void);
|
|
int sb_get_irq(void);
|
|
void sb_free_irq(void);
|
|
int sb_dsp_command (unsigned char val);
|
|
int sb_reset_dsp (void);
|
|
|
|
/* From sb16_dsp.c */
|
|
void sb16_dsp_interrupt (int unused);
|
|
long sb16_dsp_init(long mem_start, struct address_info *hw_config);
|
|
int sb16_dsp_detect(struct address_info *hw_config);
|
|
|
|
/* From sb16_midi.c */
|
|
void sb16midiintr (int unit);
|
|
long attach_sb16midi(long mem_start, struct address_info * hw_config);
|
|
int probe_sb16midi(struct address_info *hw_config);
|
|
|
|
/* From sb_midi.c */
|
|
void sb_midi_init(int model);
|
|
|
|
/* From sb_mixer.c */
|
|
void sb_setmixer (unsigned int port, unsigned int value);
|
|
int sb_getmixer (unsigned int port);
|
|
void sb_mixer_set_stereo(int mode);
|
|
void sb_mixer_init(int major_model);
|
|
|
|
/* From opl3.c */
|
|
int opl3_detect (int ioaddr);
|
|
long opl3_init(long mem_start);
|
|
|
|
/* From sb_card.c */
|
|
long attach_sb_card(long mem_start, struct address_info *hw_config);
|
|
int probe_sb(struct address_info *hw_config);
|
|
|
|
/* From adlib_card.c */
|
|
long attach_adlib_card(long mem_start, struct address_info *hw_config);
|
|
int probe_adlib(struct address_info *hw_config);
|
|
|
|
/* From pas_card.c */
|
|
long attach_pas_card(long mem_start, struct address_info *hw_config);
|
|
int probe_pas(struct address_info *hw_config);
|
|
int pas_set_intr(int mask);
|
|
int pas_remove_intr(int mask);
|
|
unsigned char pas_read(int ioaddr);
|
|
void pas_write(unsigned char data, int ioaddr);
|
|
|
|
/* From pas_audio.c */
|
|
void pas_pcm_interrupt(unsigned char status, int cause);
|
|
long pas_pcm_init(long mem_start, struct address_info *hw_config);
|
|
|
|
/* From pas_mixer.c */
|
|
int pas_init_mixer(void);
|
|
|
|
/* From pas_midi.c */
|
|
long pas_midi_init(long mem_start);
|
|
void pas_midi_interrupt(void);
|
|
|
|
/* From gus_card.c */
|
|
long attach_gus_card(long mem_start, struct address_info * hw_config);
|
|
int probe_gus(struct address_info *hw_config);
|
|
int gus_set_midi_irq(int num);
|
|
void gusintr(int);
|
|
|
|
/* From gus_wave.c */
|
|
int gus_wave_detect(int baseaddr);
|
|
long gus_wave_init(long mem_start, int irq, int dma);
|
|
void gus_voice_irq(void);
|
|
unsigned char gus_read8 (int reg);
|
|
void gus_write8(int reg, unsigned int data);
|
|
void guswave_dma_irq(void);
|
|
void gus_delay(void);
|
|
|
|
/* From gus_midi.c */
|
|
long gus_midi_init(long mem_start);
|
|
void gus_midi_interrupt(int dummy);
|
|
|
|
/* From mpu401.c */
|
|
long attach_mpu401(long mem_start, struct address_info * hw_config);
|
|
int probe_mpu401(struct address_info *hw_config);
|
|
|
|
/* From opl3.c */
|
|
void enable_opl3_mode(int left, int right, int both);
|
|
|
|
/* From patmgr.c */
|
|
int pmgr_open(int dev);
|
|
void pmgr_release(int dev);
|
|
int pmgr_read (int dev, struct fileinfo *file, snd_rw_buf * buf, int count);
|
|
int pmgr_write (int dev, struct fileinfo *file, snd_rw_buf * buf, int count);
|
|
int pmgr_access(int dev, struct patmgr_info *rec);
|
|
int pmgr_inform(int dev, int event, unsigned long parm1, unsigned long parm2,
|
|
unsigned long parm3, unsigned long parm4);
|