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

📄 audio_fw.h

📁 Minix比较全的源码
💻 H
字号:
#ifndef AUDIO_FW_H#define AUDIO_FW_H#include "../../drivers.h"#include <sys/ioc_sound.h>/* change to DEBUG to 1 to print debug info and error messages */#define DEBUG 0#if DEBUG#define dprint printf #else#define dprint (void) #endif#define error printf_PROTOTYPE( void main, (void) );_PROTOTYPE( int drv_init, (void) );_PROTOTYPE( int drv_init_hw, (void) );_PROTOTYPE( int drv_reset, (void) );_PROTOTYPE( int drv_start, (int sub_dev, int DmaMode) );_PROTOTYPE( int drv_stop, (int sub_dev) );_PROTOTYPE( int drv_set_dma, (u32_t dma, u32_t length, int chan) );_PROTOTYPE( int drv_reenable_int, (int chan) );_PROTOTYPE( int drv_int_sum, (void) );_PROTOTYPE( int drv_int, (int sub_dev) );_PROTOTYPE( int drv_pause, (int chan) );_PROTOTYPE( int drv_resume, (int chan) );_PROTOTYPE( int drv_io_ctl, (int request, void * val, int * len, int sub_dev) );_PROTOTYPE( int drv_get_irq, (char *irq) );_PROTOTYPE( int drv_get_frag_size, (u32_t *frag_size, int sub_dev) );/* runtime status fields */typedef struct {	int readable;	int writable;	int DmaSize;	int NrOfDmaFragments;	int MinFragmentSize;	int NrOfExtraBuffers;	int Nr;                                   /* sub device number */	int Opened;                               /* sub device opened */	int DmaBusy;                              /* is dma busy? */	int DmaMode;                              /* DEV_WRITE / DEV_READ */	int DmaReadNext;                          /* current dma buffer */	int DmaFillNext;                          /* next dma buffer to fill */	int DmaLength;	int BufReadNext;                          /* start of extra circular buffer */	int BufFillNext;                          /* end of extra circular buffer */	int BufLength;	int RevivePending;                        /* process waiting for this dev? */	int ReviveStatus;                         /* return val when proc unblocked */	int ReviveProcNr;                         /* the process to unblock */	cp_grant_id_t ReviveGrant;		  /* grant id associated with io */	void *UserBuf;                            /* address of user's data buffer */	int ReadyToRevive;                        /* are we ready to revive process?*/	int NotifyProcNr;                         /* process to send notify to (FS) */	u32_t FragSize;                           /* dma fragment size */	char *DmaBuf;        /* the dma buffer; extra space for 												  page alignment */	phys_bytes DmaPhys;                       /* physical address of dma buffer */	char* DmaPtr;                             /* pointer to aligned dma buffer */	int OutOfData;                            /* all buffers empty? */	char *ExtraBuf;                           /* don't use extra buffer;just 											   declare a pointer to supress											   error messages */} sub_dev_t;typedef struct {	int minor_dev_nr;	int read_chan;	int write_chan;	int io_ctl;} special_file_t;typedef struct {	char* DriverName;	int NrOfSubDevices;	int NrOfSpecialFiles;} drv_t;EXTERN drv_t drv;EXTERN sub_dev_t sub_dev[];EXTERN special_file_t special_file[];/* Number of bytes you can DMA before hitting a 64K boundary: */#define dma_bytes_left(phys)    \   ((unsigned) (sizeof(int) == 2 ? 0 : 0x10000) - (unsigned) ((phys) & 0xFFFF))#define NO_CHANNEL -1#define TRUE 1#define FALSE 0#define NO_DMA 0#endif /* AUDIO_FW_H */

⌨️ 快捷键说明

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