📄 cswtype.h
字号:
/******************************************************************************/
/* */
/* Copyright (C) 2005, Coolsand Technologies, Inc. */
/* All Rights Reserved */
/* */
/******************************************************************************/
/* */
/* This source code is property of Coolsand. The information contained in */
/* this file is confidential. Distribution, reproduction, as well as */
/* exploitation,or transmisison of any content of this file is not */
/* allowed except if expressly permitted. */
/* Infringements result in damage claims! */
/* */
/* FILE NAME */
/* cswtype.h */
/* */
/* DESCRIPTION */
/* all basic types or constant definitions on CSW. */
/* */
/******************************************************************************/
//#define CFW_PBK_SYNC_VER
#if !defined(__CSWTYPE_H__)
#define __CSWTYPE_H__
#define HAVE_TM_MODULE 1
#define HAVE_LIBC_MALLOC 0
#include "phy_profile.h"
#include "cp_csw.h"
#if !defined(MAX_INT8)
#define MAX_INT8 +127
#endif
#if !defined(MIN_INT8)
#define MIN_INT8 -128
#endif
#if !defined(MAX_UINT8)
#define MAX_UINT8 255
#endif
#if !defined(MIN_UINT8)
#define MIN_UINT8 0
#endif
#if !defined(MAX_INT16)
#define MAX_INT16 +32767
#endif
#if !defined(MIN_INT16)
#define MIN_INT16 -32768
#endif
#if !defined(MAX_UINT16)
#define MAX_UINT16 65535
#endif
#if !defined(MIN_UINT16)
#define MIN_UINT16 0
#endif
#if !defined(MAX_INT32)
#define MAX_INT32 +2147483647L
#endif
#if !defined(MIN_INT32)
#define MIN_INT32 -2147483648L
#endif
#if !defined(MAX_UINT32)
#define MAX_UINT32 4294967295U
#endif
#if !defined(MIN_UINT32)
#define MIN_UINT32 0U
#endif
#if !defined(MAX)
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
#endif
#if !defined(MIN)
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
#endif
#if !defined(MAKEINT16)
#define MAKEINT16(a, b) ((INT16)(((UINT8)(a)) | ((INT16)((UINT8)(b))) << 8))
#endif
#if !defined(MAKEINT32)
#define MAKEINT32(a, b) ((INT32)(((UINT16)(a)) | ((INT32)((UINT16)(b))) << 16))
#endif
#if !defined(MAKEUINT16)
#define MAKEUINT16(a, b) ((UINT16)(((UINT8)(a)) | ((UINT16)((UINT8)(b))) << 8))
#endif
#if !defined(MAKEUINT32)
#define MAKEUINT32(a, b) ((UINT32)(((UINT16)(a)) | ((UINT32)((UINT16)(b))) << 16))
#endif
#if !defined(LOINT8)
#define LOINT8(w) ((INT8)(w))
#endif
#if !defined(HIINT8)
#define HIINT8(w) ((INT8)((UINT16)(w) >> 8))
#endif
#if !defined(LOUINT8)
#define LOUINT8(w) ((UINT8)(w))
#endif
#if !defined(HIUINT8)
#define HIUINT8(w) ((UINT8)((UINT16)(w) >> 8))
#endif
#if !defined(LOINT16)
#define LOINT16(l) ((INT16)(l))
#endif
#if !defined(HIINT16)
#define HIINT16(l) ((INT16)((UINT32)(l) >> 16))
#endif
#if !defined(LOUINT16)
#define LOUINT16(l) ((UINT16)(l))
#endif
#if !defined(HIUINT16)
#define HIUINT16(l) ((UINT16)((UINT32)(l) >> 16))
#endif
#define MSB(x) (((x) >> 8) & 0xff) // most signif byte of 2-byte integer
#define LSB(x) ((x) & 0xff) // least signif byte of 2-byte integer
#define MAKE_WORD(p) (((UINT16)(p)[0] << 8) | (UINT16)(p)[1])
#define MAKE_DWORD(p) (((UINT32)(p)[0] << 24) | ((UINT32)(p)[1] << 16) | ((UINT32)(p)[2] << 8) | (UINT32)(p)[3])
#define SWAP16(p) (((UINT16)((UINT16*)(p))[1] << 8) | (UINT16)((UINT16*)(p))[0])
#define SWAP32(p) (((UINT32)((UINT32*)(p))[3] << 24) | ((UINT32)((UINT32*)(p))[2] << 16) | ((UINT32)((UINT32*)(p))[1] << 8) | (UINT32)((UINT32*)(p))[0])
#define LE_SWAP16(v) ((((UINT16)(v) & 0xff) << 8) | (((UINT16)(v) & 0xff00) >> 8))
#define PRIVATE static // function scope
#define PUBLIC
#ifndef FALSE
#define FALSE (0 == 1)
#endif
#ifndef TRUE
#define TRUE (0 == 0)
#endif
#define NIL ((void *) 0)
#ifndef NULL
#define NULL NIL
#endif
#define CONST const
#define VOID void
#ifdef __GNUC__
typedef unsigned long long UINT64;
typedef long long INT64;
#else // WIN32
typedef __int64 UINT64;
typedef __int64 INT64;
#endif //__GNUC__
typedef unsigned long UINT32;
typedef unsigned short UINT16;
typedef unsigned char UINT8;
typedef long INT32;
typedef short INT16;
typedef char INT8;
typedef char CHAR;
typedef long DWORD;
typedef char BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef float FLOAT;
typedef void* PVOID;
typedef UINT32 HANDLE;
typedef UINT8* PUINT8;
typedef UINT32* PUINT32;
typedef INT32* PINT32;
typedef UINT16* PUINT16;
typedef INT16* PINT16;
typedef HANDLE HKEY;
typedef UINT16 RESID;
typedef HANDLE HRES;
typedef UINT32 EVID;
typedef UINT8 LANGID;
typedef UINT32 EVPARAM;
typedef UINT32 HAO;
#define HNULL 0
#define NULL_CHAR '\0'
#if defined(UNICODE)
#define SIZEOF(type) (sizeof(type)/sizeof(UINT16))
typedef UINT16* PSTR;
typedef CONST UINT16* PCSTR;
typedef UINT16 TCHAR;
#define TEXT(x) L ## x
#else
#define SIZEOF(type) sizeof(type)
typedef UINT8* PSTR;
typedef CONST UINT8* PCSTR;
typedef UINT8 TCHAR;
typedef UINT8* PTCHAR;
#define TEXT(x) x
#endif
#define IS_RESOURCE_ID(x) (!(((UINT32)(x))>>16))
#define MAKE_RES_ID(i) (PCSTR)((DWORD)((WORD)(i)))
#define RES_ID(i) ((WORD)(i))
#define TSTXT(x) x
//
// Get the address offset of the specified member.
//
#ifndef OFFSETOF
#define OFFSETOF(s,m) (UINT32)&(((s *)0)->m)
#endif
#define ALIGN(val,exp) (((val) + ((exp)-1)) & ~((exp)-1))
#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
#define LAST_ELEMENT(x) (&x[ARRAY_SIZE(x)-1])
#define TCHAR_SIZEOF(sz) (sizeof(sz)/sizeof(TCHAR))
#define BOUND(x, min, max) ( (x) < (min) ? (min) : ((x) > (max) ? (max):(x)) )
#define ROUND_SIZEOF(t) ((sizeof(t)+sizeof(int)-1)&~(sizeof(int)-1))
#define IS_32BIT_ALIGN(nAdd) ((UINT32)(((UINT32)(nAdd)) & 0x3)==0)
#define IS_16_ALIGN(nSize) ((UINT32)(((UINT32)(nSize))& 0x0f) == 0)
#define S_LAST_MEMBER_ADDR(ptr, type) ((UINT8*)(ptr) + SIZEOF(type))
#define S_MEMBER_ADDR(s_prt, offset) ((UINT8*)(s_prt) + offset)
typedef UINT32 (*PFN_VOID_PTR)(VOID*);
typedef BOOL (*PFN_BOOL)();
//
// align size withe the specified bits.
//
#define ALIGN_SIZE(x, align) (((UINT32)(x)+align-1)&~(align-1))
#define Arg(arg, type) (*(type *)(arg))
#define NextArg(arg, type) ((arg) = (TCHAR *)(arg) + roundedsizeof(type))
//
// Get the data from "arg" to "in".
//
#define ARG_IN(r,arg,type) (memcpy(&(r), (type *) (arg), sizeof (arg)))
//
// Put the data from "w" to "arg".
//
#define ARG_OUT(arg, w, type) (memcpy((type *) (arg), &(w), sizeof (w)))
#define ABS(x) ((x<0)?(-x):(x))
typedef VOID (*PFN_CALLBACK)(VOID);
typedef void *va_list;
#define va_start(list, name) (void) (list = (void *)((TCHAR *)&name + \
((sizeof (name) + (sizeof (int) - 1)) & ~(sizeof (int) - 1))))
#define va_arg(list, mode) ((mode *)(list = (TCHAR *)list + sizeof (mode)))[-1]
#define va_end(list) (void)0
#ifdef __GNUC__
typedef INT8 Int8_32Aligned __attribute__ ((aligned (4)));
#endif
#if defined(_M_IX86)
#define SRVAPI __declspec(dllexport)
#else
#define SRVAPI // TODO ...
#endif
typedef UINT32 (*PFN_VOID)();
//
// Optimization option for compiler
//
#ifdef __GNUC__
//#define packed __attribute__((packed))
#define packed
#else
#ifdef _MSC_VER
#define packed
#endif
//#pragma pack (push)
//#pragma pack (1)
#endif
#if defined(_M_IX86)
#undef INLINE
#define INLINE __inline
#else
#if defined(__GNUC__) // for MIPS CPU LITTLE_ENDIAN
#define INLINE inline // Do compiler directives
#else
#error "Don't define INLINE!"
#endif //__GNUC__
#endif //defined(_M_IX86) && !defined(_WIN32)
#define CPP_START extern "C" {
#define CPP_END }
#if defined(DEBUG) && !defined(DISABLE_ASSERTS)
#define DEBUG_BREAK() *((UINT32 *)0) = 55 // Brute-force debug break
#else
#undef DEBUG_BREAK
#define DEBUG_BREAK()
#endif //DEBUG
#if defined(_WIN32)
#define APPENTRY __declspec(dllexport)
#else
#define APPENTRY // TODO ...
#endif
#endif // _H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -