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

📄 cswtype.h

📁 这是法国Kaleido公司提供了一个手机mmi设计平台
💻 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 + -