⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sb16drv.h

📁 IXP425的BSP代码
💻 H
字号:
/* sb16drv.h - global comment *//* Copyright 1984-2001 Wind River Systems, Inc. *//*modification history--------------------01c,21sep01,dat  Fix ANSI violations for diab compiler01b,03feb00,jk   updated to reflect new sb16drv.c code drop.01a,14oct99,jk   extracted from file sb16drv.c.*//*DESCRIPTION*/#ifndef __INCsb16drvh#define __INCsb16drvh#include "drv/sound/sound_dma.h"#include "drv/sound/sound_ioctl.h"#ifdef __cplusplusextern "C"{#endif /* __cplusplus */#define INT_NUM_IRQ0 0x20#define INT_VEC_GET(irq) (INT_NUM_IRQ0 + irq)/* I/O ports */#define SBP( codec, x ) ( (codec) -> port + s_b_SB_##x )#define SBP1( port, x ) ( (port) + s_b_SB_##x )#define s_b_SB_RESET		0x6#define s_b_SB_READ		0xa#define s_b_SB_WRITE		0xc#define s_b_SB_COMMAND		0xc#define s_b_SB_STATUS		0xc#define s_b_SB_DATA_AVAIL	0xe#define s_b_SB_DATA_AVAIL_16 	0xf#define s_b_SB_MIXER_ADDR	0x4#define s_b_SB_MIXER_DATA	0x5#define s_b_SB_OPL3_LEFT	0x0#define s_b_SB_OPL3_RIGHT	0x2#define s_b_SB_OPL3_BOTH	0x8/* dsp commands */#define SB_DSP_SAMPLE_RATE	0x40#define SB_DSP_SAMPLE_RATE_OUT	0x41#define SB_DSP_SAMPLE_RATE_IN	0x42#define SB_DSP_MONO_8BIT	0xa0#define SB_DSP_MONO_16BIT	0xa4#define SB_DSP_STEREO_8BIT	0xa8#define SB_DSP_STEREO_16BIT	0xac#define SB_DSP4_OUT16_AI	0xb6#define SB_DSP4_IN16_AI		0xbe#define SB_DSP4_OUT8_AI		0xc6#define SB_DSP4_IN8_AI		0xce#define SB_DSP_DMA8_OFF		0xd0#define SB_DSP_SPEAKER_ON	0xd1#define SB_DSP_SPEAKER_OFF	0xd3#define SB_DSP_DMA8_ON		0xd4#define SB_DSP_DMA16_OFF	0xd5#define SB_DSP_DMA16_ON		0xd6#define SB_DSP_DMA16_EXIT       0xd9#define SB_DSP_DMA8_EXIT        0xda#define SB_DSP_GET_VERSION	0xe1/* dsp input/output formats */#define SB_DSP4_MODE_UNS_MONO		0x00#define SB_DSP4_MODE_SIGN_MONO		0x10#define SB_DSP4_MODE_UNS_STEREO		0x20#define SB_DSP4_MODE_SIGN_STEREO	0x30/* OPL3 commands */#define TEST_REGISTER			0x01#define TIMER_CONTROL_REGISTER		0x04	/* Left side */#define CONNECTION_SELECT_REGISTER	0x04	/* Right side */#define OPL3_MODE_REGISTER		0x05	/* Right side */#define KEYON_BLOCK			0xb0	/* Left side ???*/#define PERCUSSION_REGISTER		0xbd	/* Left side only */#define TIMER1_REGISTER		0x02#define TIMER2_REGISTER		0x03/* TEST_REGISTER options */#define ENABLE_WAVE_SELECT	0x20/* TIMER_CONTROL_REGISTER options */#define IRQ_RESET		0x80#define TIMER1_MASK		0x40#define TIMER2_MASK		0x20/* OPL3_MODE_REGISTER options */#define OPL3_ENABLE		0x01/* Mixer commands */#define SB_MIXER_MASTER_DEV	0x30#define SB_MIXER_PCM_DEV	0x32#define SB_MIXER_SYNTH_DEV	0x34#define SB_MIXER_CD_DEV		0x36#define SB_MIXER_LINE_DEV	0x38#define SB_MIXER_MIC_DEV	0x3a#define SB_MIXER_SPEAKER_DEV	0x3b#define SB_MIXER_OUTPUT_SW	0x3c#define SB_MIXER_IGAIN_DEV	0x3f#define SB_MIXER_OGAIN_DEV	0x41#define SB_MIXER_MIC_AGC	0x43#define SB_MIXER_TREBLE_DEV	0x44#define SB_MIXER_BASS_DEV	0x46#define SB_MIXER_IRQ_NR		0x80#define SB_MIXER_DMA_NR		0x81#define SB_MIXER_IRQ_STAT	0x82#define SB_MIXER_MPU_NR         0x84#define RATE_MIN  4000#define RATE_MAX 44100#define MAX_DMA_MSGS 2#define MAX_DMA_SIZE 32768#define TASK_PRIORITY    0#define TASK_OPTIONS     0#define TASK_STACK_SIZE  2048typedef struct{  char *name;  int reg;  int max_value;  int shift;  int unknownfield;} MIXER_INFO;typedef struct{  char *buffer;  int length;  int direction;} DMA_MSG;typedef struct snd_fd_struct SND_FD;typedef struct dsp_fd_struct DSP_FD;typedef struct mixer_fd_struct MIXER_FD;typedef struct{  DEV_HDR devHdr;  unsigned short port;		/* base port of DSP chip */  unsigned short mpu_port;	/* MPU port for SB DSP 4.0+ */  unsigned short irq;		/* IRQ number of DSP chip */  unsigned short dma8;		/* 8-bit DMA */  unsigned short dma16;		/* 16-bit DMA */  unsigned short version;	/* version of DSP chip */  SEM_ID devSem;  SEM_ID intSem;  SEM_ID bufSem;  MSG_Q_ID dmaQ;  DSP_FD *pDsp;  MIXER_FD *pMixer;  int dmaIndex;  int tid;  int taskBusy;  int dmaAuto;} SND_DEV;struct snd_fd_struct{  SND_DEV *pDev;  FUNCPTR fdClose;  FUNCPTR fdRead;  FUNCPTR fdWrite;  FUNCPTR fdIoctl;};struct dsp_fd_struct{  SND_FD dev;  int dmaDirection;  int dmaChannel;  snd_info_t info;};struct mixer_fd_struct{  SND_FD dev;};/* function declarations */#if defined(__STDC__) || defined(__cplusplus)STATUS sb16Drv (void);STATUS sb16DevCreate (char *devName, int port, int irq, int dma8, int dma16);#elseSTATUS sb16Drv ();STATUS sb16DevCreate ();#endif  /* __STDC__ */#ifdef __cplusplus}#endif /* __cplusplus */#endif /* __INCsb16drvh */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -