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

📄 iblock.h

📁 使用标准C开发的同时支持CMPP3.0 和 CMPP2.0 的SP短信网关程序
💻 H
字号:
#ifndef IBLOCK_H
#define IBLOCK_H


/*--marcos--------------------------------------------------------------*/

/* SYSTEM   source */
#define M_CLOSESYS_C	(0x00010000)
#define	M_IBLOCK_C		(0x00020000)
#define	M_MANTEN_C		(0x00030000)
#define	M_DRVEVENT_C	(0x00040000)
#define	M_SYSLOG_C		(0x00050000)
#define	M_ISUP_C		(0x00060000)
#define M_SPSMS_C		(0x00070000)


/* source end */

#define MINBLOCKSIZE		128
#define MAXBLOCKSIZE		8192+MINBLOCKSIZE
#ifndef DEFAULT_BUF_LEN
#define DEFAULT_BUF_LEN		4096
#endif
#define IBLOCKNUM			(MAXBLOCKSIZE)/MINBLOCKSIZE

/*--variables--------------------------------------------------------------*/

extern int blkprint;

/*--constants and types----------------------------------------------------*/

typedef struct QueueSTR {
	int count;
	int total;
	CriticalSection cs;
	void  * tail;
} QueueType;

#ifdef WIN32
#pragma pack(push,1)
#endif

#ifdef iRMX
#pragma align(QueueMemberSTR = 1)
#endif

#ifdef LINUX
#pragma pack(push,1)
#endif

typedef struct QueueMemberSTR {
	struct QueueMemberSTR * next;
	char   buf[60];
} QueueMemberType;

#ifdef WIN32
#pragma pack(pop)
#endif

#ifdef LINUX
#pragma pack(pop)
#endif


#ifdef WIN32
#define QHSIZE (int) (&((QueueMemberType *)0)->buf)
#endif

#ifdef iRMX
#define QHSIZE (int) (&((QueueMemberType near *)0)->buf)
#endif

#ifdef LINUX
#define QHSIZE (int) (&((QueueMemberType *)0)->buf)
#endif

/*--function prototypes----------------------------------------------------*/

extern void * GetIdleBlockChk(unsigned int len, unsigned int no);


#define GetIdleBlock(l,no) GetIdleBlockChk(l,(no|__LINE__))

extern int  InitQueue(QueueType *q);
extern void *  DelMember(QueueType *q);
extern void    AddMember(QueueType * q, void * m);
extern unsigned int MemberNumber(QueueType * q);
extern void *  PeekFirstMember(QueueType * q);
extern int  DetachMember(QueueType * q, void * p);
extern int  InitIdleBlock(void);
extern int  PutIdleBlock(void * ptr);
extern void *  GetBlockInfo(void);
extern int  BlockSize(void * ptr);

extern void CleanIblockTable(void);
extern void WritePeriodLog_Memory_Own(void);
extern void CheckMemoryFun(void* para);

#endif /* IBLOCK_H */

/*--------------------------------END OF FILE------------------------------*/
/* v0.1_2000.09.12 */

⌨️ 快捷键说明

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