📄 mutlichannel.h
字号:
#define PURE_HDLC_FRAME
#define MAXLOGCHAN 32 /*Max Number of Logical Channels on one SCC*/
/*--------------------------------*/
/* Size of QMC buffers in buffer pool */
/*--------------------------------*/
#define MAX_HDLC_FRAME 512
#define QMC_BUFFER_SIZE 512
#define BDNUM 2 /*32K/32 ,each channel only 1k, 1k/512, maxium is 4*/
#define QMC_ITE_V 0x8000 /* Valid Bit */
#define QMC_ITE_W 0x4000 /* Wrap Bit */
#define QMC_ITE_NID 0x2000 /* Not Idle */
#define QMC_ITE_IDL 0x1000 /* Idle */
#define RESERVED164 0x0800
#define QMC_ITE_CN 0x07C0 /* Channel Number */
#define QMC_ITE_MRF 0x0020 /* Max Rx Frame Length Violation */
#define QMC_ITE_UN 0x0010 /* Tx No Data (Channel Underrun)*/
#define QMC_ITE_RXF 0x0008 /* Rx Frame */
#define QMC_ITE_BSY 0x0004 /* Busy */
#define QMC_ITE_TXB 0x0002 /* Tx Buffer */
#define QMC_ITE_RXB 0x0001 /* Rx Buffer */
#define QMC_ITE_CLEAR 0x0800 /* Use to clear an Interrupt Table
Entry after it has been processed.
Leaves reserved bit intact. */
typedef struct BufferDescriptor
{
UINT16 bd_cstatus; /* control and status */
UINT16 bd_length; /* transfer length */
u_char *bd_addr; /* buffer address */
} BD;
/*--------------------------*/
/* Buffer Descriptor Format */
/*--------------------------*/
typedef struct BufferDescRings
{
BD TxBd[BDNUM]; /* Tx BD ring ,一个*/
BD RxBd[BDNUM]; /* Rx BD ring ,一个*/
} BDRINGS;
typedef struct /* SCC_HDLC_DEV */
{
int sccNum; /* number of SCC device */
int txBdNum; /* number of transmit buf descriptors */
int rxBdNum; /* number of receive buf descriptors */
u_char * txBufBase; /* transmit buffer base address */
u_char * rxBufBase; /* receive buffer base address */
VINT16 txBufSize; /* transmit buffer size */
VINT16 rxBufSize; /* receive buffer size */
int txBdNext[MAXLOGCHAN]; /* next transmit BD to fill */
int rxBdNext[MAXLOGCHAN]; /* next receive BD to read */
volatile SCC * pScc; /* SCC parameter RAM */
VINT32 intMask; /* interrupt acknowledge mask */
} SCC_HDLC_DEV;
typedef struct ppc860SccHdlc_chan /* PPC860SCCHDLC_CHAN */
{
/*DEV_HDR * devHdr;*/ /* I/O device header */
/* defined in "iosLib.h" */
VINT16 int_vec; /* interrupt vector number */
VINT32 regBase; /* register/DPR base address */
SCC_HDLC_DEV hdlc; /* hdlc SCC device */
int creatFlag;
int intCounter;
} PPC860SCCHDLC_CHAN;
typedef struct rHdlcFrame
{
UINT16 frameLen;
UINT16 channelNum;
u_char buffer[BDNUM*QMC_BUFFER_SIZE];
}R_HDLC_FRAME;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -