?? hdlc.h
字號(hào):
/************************************************************************************/
/* */
/* 描述: 定義Q921協(xié)議相關(guān)變量及數(shù)據(jù)結(jié)構(gòu) */
/* */
/* 時(shí)間: 2002/02/25 */
/* */
/************************************************************************************/
#define L1TXBUFNUM 4 /* 物理層發(fā)送隊(duì)列緩沖區(qū)數(shù) */
#define L1RXBUFNUM 8 /* 物理層接收隊(duì)列緩沖區(qū)數(shù) */
#define L2TXBUFNUM 4 /* 鏈路層發(fā)送隊(duì)列緩沖區(qū)數(shù) */
#define L2RXBUFNUM 5 /* 鏈路層接收隊(duì)列緩沖區(qū)數(shù) */
#define L3TXBUFNUM 6 /* 網(wǎng)絡(luò)層發(fā)送隊(duì)列緩沖區(qū)數(shù) */
#define L3RXBUFNUM 4 /* 網(wǎng)絡(luò)層接收隊(duì)列緩沖區(qū)數(shù) */
#define RR_CONTROL 0x01 /* 幀類型定義 */
#define RNR_CONTROL 0x05
#define REJ_CONTROL 0x09
#define UI_CONTROL 0x03
#define SABME_CONTROL 0x6F
#define DM_CONTROL 0x0F
#define DISC_CONTROL 0x43
#define UA_CONTROL 0x63
#define XID_CONTROL 0xAF
#define FRMR_CONTROL 0x87
#define IFRAME_CONTROL 0x00
#define DL_ESTABLISH 0x01 /* 鏈路已建立 */
#define DL_RELEASE 0x00 /* 鏈路未建立 */
#define T201 100 /* 重發(fā)定時(shí)器,10ms為單位 */
#define N200 3 /* 重發(fā)計(jì)數(shù)最大值 */
/* 網(wǎng)絡(luò)層I幀數(shù)據(jù)結(jié)構(gòu) */
typedef struct
{
uchar ucPID; /* 協(xié)議標(biāo)示符 */
uchar ucLength; /* 消息長(zhǎng)度(含本結(jié)構(gòu)全部字段) */
uint uiType; /* 消息類型 */
uchar ucData[BUFSIZE-8]; /* 消息內(nèi)容 */
}L3Pack;
/* 鏈路層數(shù)據(jù)結(jié)構(gòu) */
typedef struct
{
uchar ucLength; /* 長(zhǎng)度(不含本身) */
uchar ucRsv1[2]; /* 保留 */
uchar ucCRID; /* 命令或響應(yīng)類型 */
uchar ucRsv2; /* 保留 */
uchar ucData[BUFSIZE-4]; /* 消息內(nèi)容 */
}L2Pack;
/* 物理層數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)) */
typedef struct
{
uchar ucLength; /* 長(zhǎng)度(不含本身) */
uchar ucData[BUFSIZE]; /* 消息內(nèi)容 */
}L1Pack;
/* 物理層隊(duì)列接口數(shù)據(jù)結(jié)構(gòu) */
typedef struct
{
uchar ucTxPendNum; /* L1TxBuf發(fā)送隊(duì)列里等待發(fā)送的幀的數(shù)目 */
uchar ucRxPendNum; /* L1RxBuf接收隊(duì)列里等待處理的幀的數(shù)目 */
uchar ucTxDealIndex; /* L1TxBuf發(fā)送隊(duì)列中當(dāng)前正在發(fā)送的幀指針*/
uchar ucTxPlaceIndex; /* L1TxBuf發(fā)送隊(duì)列中當(dāng)前可存入的幀指針 */
uchar ucRxDealIndex; /* L1RxBuf接收隊(duì)列中當(dāng)前正在處理的幀指針*/
uchar ucRxPlaceIndex; /* L1RxBuf接收隊(duì)列中當(dāng)前可存入的幀指針 */
}L1Queue;
/* 鏈路層隊(duì)列接口數(shù)據(jù)結(jié)構(gòu) */
typedef struct
{
uchar ucLinkState; /* 鏈路狀態(tài) */
uchar ucTxIFrameStatus; /* 當(dāng)前是否有I幀正在發(fā)送處理中 */
uchar ucT201Control; /* 啟動(dòng)/停止重發(fā)定時(shí)器控制 */
uchar ucT201; /* 重發(fā)定時(shí)器T201,參見(jiàn)Q.921 §5.9.1 */
uchar ucN200; /* 重發(fā)次數(shù),參見(jiàn)Q.921 §5.3.2.1 */
uchar ucRSendFlag; /* 是否重發(fā)標(biāo)志 */
uchar ucTxPendNum; /* L2TxBuf發(fā)送隊(duì)列里等待發(fā)送的幀的數(shù)目 */
uchar ucRxPendNum; /* L2RxBuf接收隊(duì)列里等待處理的幀的數(shù)目 */
uchar ucTxDealIndex; /* L2TxBuf發(fā)送隊(duì)列中當(dāng)前正在發(fā)送的幀指針*/
uchar ucTxPlaceIndex; /* L2TxBuf發(fā)送隊(duì)列中當(dāng)前可存入的幀指針 */
uchar ucRxDealIndex; /* L2RxBuf接收隊(duì)列中當(dāng)前正在處理的幀指針*/
uchar ucRxPlaceIndex; /* L2RxBuf接收隊(duì)列中當(dāng)前可存入的幀指針 */
}L2Queue;
/* 網(wǎng)絡(luò)層隊(duì)列接口數(shù)據(jù)結(jié)構(gòu) */
typedef struct
{
uchar ucTxPendNum; /* L3TxBuf發(fā)送隊(duì)列里等待發(fā)送的幀的數(shù)目 */
uchar ucRxPendNum; /* L3RxBuf接收隊(duì)列里等待處理的幀的數(shù)目 */
uchar ucTxDealIndex; /* L3TxBuf發(fā)送隊(duì)列中當(dāng)前正在發(fā)送的幀指針*/
uchar ucTxPlaceIndex; /* L3TxBuf發(fā)送隊(duì)列中當(dāng)前可存入的幀指針 */
uchar ucRxDealIndex; /* L3RxBuf接收隊(duì)列中當(dāng)前正在處理的幀指針*/
uchar ucRxPlaceIndex; /* L3RxBuf接收隊(duì)列中當(dāng)前可存入的幀指針 */
}L3Queue;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -