📄 fifo_if.h
字号:
#include "SPRDEF.h"
/*
Prevention for double include
*/
#ifndef FIFO_IF_H
#define FIFO_IF_H
/*=== Define ==============================================================*/
#define FIFO_IF_DIRIN (1)
#define FIFO_IF_DIROUT (0)
#define FIFO_IF_EVENTON (1)
#define FIFO_IF_EVENTOFF (0)
#define FIFO_IF_FIFO1_CMP (0x02)
#define FIFO_IF_FIFO0_CMP (0x04)
#define FIFO_IF_FIFO_FULL (0x08)
#define FIFO_IF_FIFO_EMPTY (0x10)
#define FIFO_IF_JOIN_STAT (0x40)
#define FIFO_IF_JOIN_CPU_RD (0x02)
#define FIFO_IF_JOIN_CPU_WR (0x01)
#define FIFO_IF_NUM_FIFO_A (0x01)
#define FIFO_IF_NUM_FIFO_B (0x02)
#define FIFO_IF_NUM_FIFO_C (0x03)
/*=== Structure ===========================================================*/
/*--- API Table -----------------------------------------------------------*/
typedef struct usbifuserapitable {
LONG (*Reset)(void);
LONG (*Open)(void);
LONG (*Close)(void);
LONG (*SetIntEvent)(UCHAR event,UCHAR flag);
LONG (*RegisterCBRFifoInCmp)(const CALLBACK_PROC pfnCallback);
LONG (*UnregisterCBRFifoInCmp)(const CALLBACK_PROC pfnCallback);
LONG (*RegisterCBRFifoOutCmp)(const CALLBACK_PROC pfnCallback);
LONG (*UnregisterCBRFifoOutCmp)(const CALLBACK_PROC pfnCallback);
void (*InterruptProc)(void);
} FIFO_IFAPITABLE;
/*=== Function Prototype ==================================================*/
extern LONG FIFO_IFReset(void);
extern LONG FIFO_IFOpen(void);
extern LONG FIFO_IFClose(void);
extern LONG FIFO_IFGetFIFODirection(UCHAR number,UCHAR *direction);
extern LONG FIFO_IFSetFIFODirection(UCHAR number,UCHAR direction);
extern LONG FIFO_IF_FIFORead(UCHAR number,UCHAR* pBuffer,ULONG numOfByteToRead,ULONG *pCount);
extern LONG FIFO_IF_FIFOWrite(UCHAR number,const UCHAR *pBuffer,ULONG numOfByteToWrite,ULONG *pCount);
extern LONG FIFO_IF_FIFORdRemain(UCHAR number,ULONG *pRemain);
extern LONG FIFO_IF_FIFOWrRemain(UCHAR number,ULONG *pRemain);
extern LONG FIFO_IF_FIFOClear(UCHAR number);
extern LONG FIFO_IF_FIFOAllClear(void);
extern LONG FIFO_IFGetFIFO_Join(UCHAR number,UCHAR *pJoin);
extern LONG FIFO_IFSetFIFO_Join(UCHAR number,UCHAR join,UCHAR flag);
extern LONG FIFO_IFClearFIFO_AllJoin(void);
extern LONG FIFO_IFSetIntEvent(UCHAR event,UCHAR flag);
extern LONG FIFO_IFGetIntEvent( UCHAR* pEvent );
extern LONG FIFO_IFRegisterCBRFifoIDECmp(const CALLBACK_PROC pfnCallback);
extern LONG FIFO_IFUnregisterCBRFifoIDECmp(const CALLBACK_PROC pfnCallback);
extern LONG FIFO_IFRegisterCBRFifo1Cmp(const CALLBACK_PROC pfnCallback);
extern LONG FIFO_IFUnregisterCBRFifo1Cmp(const CALLBACK_PROC pfnCallback);
extern LONG FIFO_IFRegisterCBRFifo0Cmp(const CALLBACK_PROC pfnCallback);
extern LONG FIFO_IFUnregisterCBRFifo0Cmp(const CALLBACK_PROC pfnCallback);
extern LONG FIFO_IFRegisterCBRFifoFull(const CALLBACK_PROC pfnCallback);
extern LONG FIFO_IFUnregisterCBRFifoFull(const CALLBACK_PROC pfnCallback);
extern LONG FIFO_IFRegisterCBRFifoEmpty(const CALLBACK_PROC pfnCallback);
extern LONG FIFO_IFUnregisterCBRFifoEmpty(const CALLBACK_PROC pfnCallback);
extern void FIFO_IFInterruptProc(UCHAR fifoIntEnb);
extern LONG FIFO_IFGetIntEventMedia( UCHAR* pEvent );
extern LONG FIFO_IFRegisterCBRMediaIDECmp(const CALLBACK_PROC pfnCallback);
extern LONG FIFO_IFUnregisterCBRMediaIDECmp(const CALLBACK_PROC pfnCallback);
extern LONG FIFO_IFRegisterCBRMediaFull(const CALLBACK_PROC pfnCallback);
extern LONG FIFO_IFUnregisterCBRMediaFull(const CALLBACK_PROC pfnCallback);
extern LONG FIFO_IFRegisterCBRMediaEmpty(const CALLBACK_PROC pfnCallback);
extern LONG FIFO_IFUnregisterCBRMediaEmpty(const CALLBACK_PROC pfnCallback);
extern void FIFO_IFInterruptProcMedia(UCHAR mediaFifoIntEnb);
#endif /* UCHARIF_USER_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -