You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.5 KiB
C
50 lines
1.5 KiB
C
//////////////////////////////////////////////////////////////////////
|
|
#if !defined(_CHAINLIST_H_AAAWEN_200505271056__INCLUDED_)
|
|
#define _CHAINLIST_H_AAAWEN_200505271056__INCLUDED_
|
|
|
|
#include "basetype.h"
|
|
|
|
// 单向链表
|
|
typedef struct tagSINGLELISTUNIT
|
|
{
|
|
int iLen; // 数据长度
|
|
BYTE *pBuf; // 存储内容
|
|
struct tagSINGLELISTUNIT *pNext; // 单项链表的下一个
|
|
}SINGLELISTUNIT;
|
|
|
|
typedef struct tagSINGLELIST
|
|
{
|
|
int iDevId; // 端口号(高2个字节为端口号, 低2个字节为装置号)
|
|
int iNum;
|
|
int iMaxNum;
|
|
SINGLELISTUNIT *pHead;
|
|
SINGLELISTUNIT *pTail;
|
|
}SINGLELIST;
|
|
|
|
typedef struct tagDOUBLELISTUNIT
|
|
{
|
|
int iDataLen; // 数据长度
|
|
BYTE *pDataBuf; // 存储内容
|
|
struct tagDOUBLELISTUNIT *pNext; // 双向链表的下一个
|
|
struct tagDOUBLELISTUNIT *pFore; // 双向链表的前一个
|
|
}DOUBLELISTUNIT;
|
|
|
|
typedef struct tagDOUBLELIST
|
|
{
|
|
int iNum;
|
|
int iMaxNum;
|
|
DOUBLELISTUNIT *pHead;
|
|
DOUBLELISTUNIT *pTail;
|
|
}DOUBLELIST;
|
|
|
|
// SingleList
|
|
DSLIB_API void SingleListInit(SINGLELIST *psSingleList, int iMaxNum);
|
|
DSLIB_API void SingleListInitEx(SINGLELIST *psSingleList, int iMaxNum, int iDevId);
|
|
DSLIB_API int SingleListHaveData(SINGLELIST *psSingleList);
|
|
DSLIB_API BOOL SingleListAddData(SINGLELIST *psSingleList, BYTE *pu8Data, int iDataLen);
|
|
DSLIB_API int SingleListGetAndDelData(SINGLELIST *psSingleList, BYTE *pu8Data, int iMaxLen);
|
|
DSLIB_API BOOL SingleListDelData(SINGLELIST *psSingleList);
|
|
DSLIB_API BOOL SingleListDelAllData(SINGLELIST *psSingleList);
|
|
|
|
#endif // !defined(_CHAINLIST_H_AAAWEN_200505271056__INCLUDED_)
|