diff options
Diffstat (limited to 'sys/i386/isa/sound/sound_calls.h')
-rw-r--r-- | sys/i386/isa/sound/sound_calls.h | 288 |
1 files changed, 288 insertions, 0 deletions
diff --git a/sys/i386/isa/sound/sound_calls.h b/sys/i386/isa/sound/sound_calls.h new file mode 100644 index 0000000..cb00e30 --- /dev/null +++ b/sys/i386/isa/sound/sound_calls.h @@ -0,0 +1,288 @@ +/* + * DMA buffer calls + */ + +int DMAbuf_open(int dev, int mode); +int DMAbuf_release(int dev, int mode); +int DMAbuf_getwrbuffer(int dev, char **buf, int *size, int dontblock); +int DMAbuf_getrdbuffer(int dev, char **buf, int *len, int dontblock); +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, u_int cmd, ioctl_arg arg, int local); +void DMAbuf_init(void); +int DMAbuf_start_dma (int dev, u_long physaddr, int count, int dma_mode); +int DMAbuf_open_dma (int dev); +void DMAbuf_close_dma (int dev); +void DMAbuf_reset_dma (int dev); +void DMAbuf_inputintr(int dev); +void DMAbuf_outputintr(int dev, int underflow_flag); +void DMAbuf_start_devices(u_int devmask); +#ifdef ALLOW_POLL +int DMAbuf_select(int dev, struct fileinfo *file, int sel_type, select_table * wait); +#endif + +/* + * 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, + u_int cmd, ioctl_arg arg); +int audio_lseek (int dev, struct fileinfo *file, off_t offset, int orig); +/* long audio_init (void); */ + +#ifdef ALLOW_SELECT +int audio_poll(int dev, struct fileinfo *file, int events, select_table * wait); +#endif + +/* + * 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, + u_int cmd, ioctl_arg arg); +int sequencer_lseek (int dev, struct fileinfo *file, off_t offset, int orig); +void sequencer_init (void); +void sequencer_timer(void *dummy); +int note_to_freq(int note_num); +u_long compute_finetune(u_long base_freq, int bend, int range); +void seq_input_event(u_char *event, int len); +void seq_copy_to_input (u_char *event, int len); + + +/* + * 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, + u_int cmd, ioctl_arg arg); +int MIDIbuf_lseek (int dev, struct fileinfo *file, off_t offset, int orig); +void MIDIbuf_bytes_received(int dev, u_char *buf, int count); + +/* + * + * Misc calls from various sources + */ + +/* From soundcard.c */ +void soundcard_init(void); +void tenmicrosec(int); +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 int_lvl, void(*hndlr)(int), sound_os_info *osp); +void sound_dma_malloc(int dev); +void sound_dma_free(int dev); +void conf_printf(char *name, struct address_info *hw_config); +void conf_printf2(char *name, int base, int irq, int dma, int dma2); + +/* 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, u_int cmd, ioctl_arg arg); + +/* From sb_dsp.c */ +int sb_dsp_detect (struct address_info *hw_config); +void sb_dsp_init (struct address_info *hw_config); +void sb_dsp_disable_midi(void); +int sb_dsp_command (u_char val); +ointhand2_t sbintr; +int sb_reset_dsp (void); + +/* From sb16_dsp.c */ +void sb16_dsp_interrupt (int irq); +void sb16_dsp_init(struct address_info *hw_config); +int sb16_dsp_detect(struct address_info *hw_config); + +/* From sb16_midi.c */ +void sb16midiintr (int unit); +void attach_sb16midi(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 (u_int port, u_int value); +int sb_getmixer (u_int port); +void sb_mixer_set_stereo(int mode); +int sb_mixer_init(int major_model); + +/* From opl3.c */ +int opl3_detect (int ioaddr, sound_os_info *osp); +void opl3_init(int ioaddr, sound_os_info *osp); + +/* From sb_card.c */ +void attach_sb_card(struct address_info *hw_config); +int probe_sb(struct address_info *hw_config); + +/* From awe_wave.c */ +void attach_awe(struct address_info *hw_config); +int probe_awe(struct address_info *hw_config); + +/* From adlib_card.c */ +void attach_adlib_card(struct address_info *hw_config); +int probe_adlib(struct address_info *hw_config); + +/* From pas_card.c */ +void attach_pas_card(struct address_info *hw_config); +int probe_pas(struct address_info *hw_config); +ointhand2_t pasintr; +int pas_set_intr(int mask); +int pas_remove_intr(int mask); +u_char pas_read(int ioaddr); +void pas_write(u_char data, int ioaddr); + +/* From pas_audio.c */ +void pas_pcm_interrupt(u_char status, int cause); +void pas_pcm_init(struct address_info *hw_config); + +/* From pas_mixer.c */ +int pas_init_mixer(void); + +/* From pas_midi.c */ +void pas_midi_init(void); +void pas_midi_interrupt(void); + +/* From gus_card.c */ +void attach_gus_card(struct address_info * hw_config); +int probe_gus(struct address_info *hw_config); +int gus_set_midi_irq(int num); +ointhand2_t gusintr; +void attach_gus_db16(struct address_info * hw_config); +int probe_gus_db16(struct address_info *hw_config); + +/* From gus_wave.c */ +int gus_wave_detect(int baseaddr); +void gus_wave_init(struct address_info *hw_config); +void gus_voice_irq(void); +u_char gus_read8 (int reg); +void gus_write8(int reg, u_int data); +void guswave_dma_irq(void); +void gus_delay(void); +int gus_default_mixer_ioctl (int dev, u_int cmd, ioctl_arg arg); +void gus_timer_command (u_int addr, u_int val); + +/* From gus_midi.c */ +void gus_midi_init(void); +void gus_midi_interrupt(int dummy); + +/* From mpu401.c */ +void attach_mpu401(struct address_info * hw_config); +int probe_mpu401(struct address_info *hw_config); +void mpuintr(int irq); + +/* From uart6850.c */ +void attach_uart6850(struct address_info * hw_config); +ointhand2_t m6850intr; +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, u_long parm1, u_long parm2, + u_long parm3, u_long parm4); + +/* From ics2101.c */ +void ics2101_mixer_init(void); + +/* From sound_timer.c */ +void sound_timer_interrupt(void); +void sound_timer_syncinterval(u_int new_usecs); + +/* From ad1848.c */ +void ad1848_init (char *name, int io_base, int irq, int dma_playback, int dma_capture, int share_dma, sound_os_info *osp); +ointhand2_t adintr; + +int ad1848_detect (int io_base, int *flags, sound_os_info *osp); +#define AD_F_CS4231 0x0001 /* Returned if a CS4232 (or compatible) detected */ +#define AD_F_CS4248 0x0001 /* Returned if a CS4248 (or compatible) detected */ + +void ad1848_interrupt (int irq); +void attach_mss(struct address_info * hw_config); +int probe_mss(struct address_info *hw_config); +void attach_pnp_ad1848(struct address_info * hw_config); +int probe_pnp_ad1848(struct address_info *hw_config); + +/* From pss.c */ +int probe_pss (struct address_info *hw_config); +void attach_pss (struct address_info *hw_config); +int probe_pss_mpu (struct address_info *hw_config); +void attach_pss_mpu (struct address_info *hw_config); +int probe_pss_mss (struct address_info *hw_config); +void attach_pss_mss (struct address_info *hw_config); + +/* From sscape.c */ +int probe_sscape (struct address_info *hw_config); +void attach_sscape (struct address_info *hw_config); +int probe_ss_mss(struct address_info *hw_config); +void attach_ss_mss(struct address_info * hw_config); +ointhand2_t sscapeintr; + +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, + u_int cmd, ioctl_arg arg); +int pss_lseek (int dev, struct fileinfo *file, off_t offset, int orig); +void pss_init(void); + +/* From aedsp16.c */ +int InitAEDSP16_SBPRO(struct address_info *hw_config); +int InitAEDSP16_MSS(struct address_info *hw_config); +int InitAEDSP16_MPU401(struct address_info *hw_config); + +/* From midi_synth.c */ +void do_midi_msg (int synthno, u_char *msg, int mlen); + +/* From trix.c */ +void attach_trix_wss (struct address_info *hw_config); +int probe_trix_wss (struct address_info *hw_config); +void attach_trix_sb (struct address_info *hw_config); +int probe_trix_sb (struct address_info *hw_config); +void attach_trix_mpu (struct address_info *hw_config); +int probe_trix_mpu (struct address_info *hw_config); + +/* From mad16.c */ +void attach_mad16 (struct address_info *hw_config); +int probe_mad16 (struct address_info *hw_config); +void attach_mad16_mpu (struct address_info *hw_config); +int probe_mad16_mpu (struct address_info *hw_config); +int mad16_sb_dsp_detect (struct address_info *hw_config); +void mad16_sb_dsp_init (struct address_info *hw_config); + +/* From cs4232.c */ + +int probe_cs4232 (struct address_info *hw_config); +void attach_cs4232 (struct address_info *hw_config); +int probe_cs4232_mpu (struct address_info *hw_config); +void attach_cs4232_mpu (struct address_info *hw_config); + +/* From maui.c */ +void attach_maui(struct address_info * hw_config); +int probe_maui(struct address_info *hw_config); + +/* From sound_pnp.c */ +void sound_pnp_init(void); +void sound_pnp_disconnect(void); |