📄 osdef.h
字号:
#ifndef _OS_DEF_H_
#define _OS_DEF_H_
/******************************************************************/
#include <stdio.h>
#include <time.h>
/*---------------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/*---------------------------------------------------------------------------*/
#ifndef WIN32
typedef unsigned long DWORD;
typedef unsigned char BYTE;
typedef signed char CHAR;
typedef unsigned short WORD;
typedef int INT;
#else
#include <windows.h>
#endif
typedef BYTE* BUFFER;
#ifndef NULL
#define NULL 0
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef False
#define False 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef True
#define True 1
#endif
#define EQUAL(a,b) ((a)==(b))
#define NOTEQUAL(a,b) ((a)!=(b))
#define MAX2(a, b) ((a)>(b)?(a):(b))
#define MIN2(a, b) ((a)<(b)?(a):(b))
#define MID3(a, b, c) (((a)>(b))?(((b)>(c))?(b):(((a)>(c))?(c):(a))):(((a)>(c))?(a):(((b)>(c))?(c):(b))))
#define MAX3(a, b, c) (MAX2((a), MAX2((b), (c))))
#define MIN3(a, b, c) (MIN2((a), MIN2((b), (c))))
#define IO_CTRL 0
#define IO_OFF (IO_CTRL+0)
#define IO_ON (IO_CTRL+1)
#define IO_READ (IO_CTRL+2)
#define IO_WRITE (IO_CTRL+3)
#define IO_INIT (IO_CTRL+4)
#define IO_RESET (IO_CTRL+5)
/* ----------------------------------------------------------
*
*/
#ifndef WIN32
#define BIG_ENDIAN
#else
#define LITTLE_ENDIAN
#endif
#define c_htons(A) \
(WORD)((((WORD)(A) & 0xFF00) >> 8)\
| (((WORD)(A) & 0x00FF) << 8))
#define c_htonl(A) \
(DWORD)((((DWORD)(A) & 0xFF000000) >> 24)\
| (((DWORD)(A) & 0x00FF0000) >> 8)\
| (((DWORD)(A) & 0x0000FF00) << 8)\
| (((DWORD)(A) & 0x000000FF) << 24))
#if defined(BIG_ENDIAN)
#define htons(A) (A)
#define htonl(A) (A)
#define ntohs(A) (A)
#define ntohl(A) (A)
#define xhtons(A) c_htons(A)
#define xhtonl(A) c_htonl(A)
#define xntohs(A) c_htons(A)
#define xntohl(A) c_htonl(A)
#elif defined(LITTLE_ENDIAN)
#define htons(A) c_htons(A)
#define htonl(A) c_htonl(A)
#define ntohs(A) c_htons(A)
#define ntohl(A) c_htonl(A)
#define xhtons(A) (A)
#define xhtonl(A) (A)
#define xntohs(A) (A)
#define xntohl(A) (A)
#else
#error "User Must define LITTLE_ENDIAN or BIG_ENDIAN!!!"
#endif
#define GETBIT(src,sp) (((src)>>(sp))&0x1)
#define SETBIT(type,src,sp,value) (src)=(type)((src)&(type)(~(0x1<<(sp))))|(type)(((value)&0x1)<<(sp))
#define MTMID(gid,tid) (((DWORD)((BYTE)(gid)))<<16|((WORD)(tid)))
/*---------------------------------------------------------------------------*/
#define FRIEND(str) str _##str##_member
#define PUBLIC
#define PROTECTED
#define BUFDEF_ATTRI(buf,type,pos) (*(volatile type*)(buf+(pos)))
#define BUFDEF_ARRAY(buf,type,len,pos) ((type*)(&(BUFDEF_ATTRI(buf,type,pos))))
#define IsNull(nul) ((nul)==NULL)
/*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
#ifdef __cplusplus
}// extern "C"
#endif
/*---------------------------------------------------------------------------*/
/******************************************************************/
#endif//_OS_DEF_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -