/* * DMA buffer calls * * $Id: sound_calls.h,v 1.11 1995/03/28 07:56:13 bde Exp $ */ #ifndef _MACHINE_ISA_SOUND_H_ #define _MACHINE_ISA_SOUND_H_ int DMAbuf_open(int dev, int mode); int DMAbuf_output_ready(int dev); int DMAbuf_input_ready(int dev); int DMAbuf_release(int dev, int mode); 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_input(int dev); 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); void seq_input_event(unsigned char *event, int len); void seq_copy_to_input (unsigned char *event, int len); #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); #ifdef ALLOW_SELECT int MIDIbuf_select(int dev, struct fileinfo *file, int sel_type, select_table * wait); #endif /* * 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); void sb_midi_interrupt(int dummy); /* 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); int 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 */ void mix_write(unsigned char data, int ioaddr); 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); long attach_gus_db16(long mem_start, struct address_info * hw_config); int probe_gus_db16(struct address_info *hw_config); /* 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); int gus_default_mixer_ioctl (int dev, unsigned int cmd, unsigned int arg); /* 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 uart6850.c */ long attach_uart6850(long mem_start, struct address_info * hw_config); int probe_uart6850(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); /* From ics2101.c */ long ics2101_mixer_init(long mem_start); /* From sound_timer.c */ void sound_timer_init(int io_base); void sound_timer_interrupt(void); /* From ad1848.c */ void ad1848_init (char *name, int io_base, int irq, int dma_playback, int dma_capture); int ad1848_detect (int io_base); void adintr (int dev); long attach_ms_sound(long mem_start, struct address_info * hw_config); int probe_ms_sound(struct address_info *hw_config); /* From pss.c */ int probe_pss (struct address_info *hw_config); long attach_pss (long mem_start, struct address_info *hw_config); int pss_read (int dev, struct fileinfo *file, snd_rw_buf *buf, int count); int pss_write (int dev, struct fileinfo *file, snd_rw_buf *buf, int count); int pss_open (int dev, struct fileinfo *file); void pss_release (int dev, struct fileinfo *file); int pss_ioctl (int dev, struct fileinfo *file, unsigned int cmd, unsigned int arg); int pss_lseek (int dev, struct fileinfo *file, off_t offset, int orig); long pss_init(long mem_start); #endif /* _MACHINE_ISA_SOUND_H_ */