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

📄 sys.h

📁 windows mobile 6.13 dnldr下载源码
💻 H
字号:
/******************************************************************
* Copyright (C), 2005-2007, HISILICON Tech. Co., Ltd.             *
*                                                                 *
* File name: sys.h                                                *
*                                                                 *
* Description:                                                    *
*       define general funtion for system designing               *
*                                                                 *
* Author:                                                         *
*     Sunshaojie(62494)                                           *
* Version: v1.0                                                   *
*                                                                 *
* Function List:                                                  *
*                                                                 *
* Date:                                                           *
*                                                                 *
* History:                                                        *
*                                                                 *
*******************************************************************/
#ifndef SYS_H
#define SYS_H

#define NULL    (void *)0

#define TRUE    1
#define FALSE   0

#define ERROR         -1
#define OK            0

#define BIT0    0x00000001
#define BIT1    0x00000002
#define BIT2    0x00000004
#define BIT3    0x00000008
#define BIT4    0x00000010
#define BIT5    0x00000020
#define BIT6    0x00000040
#define BIT7    0x00000080
#define BIT8    0x00000100
#define BIT9    0x00000200
#define BIT10   0x00000400
#define BIT11   0x00000800
#define BIT12   0x00001000
#define BIT13   0x00002000
#define BIT14   0x00004000
#define BIT15   0x00008000

#define BIT16   0x00010000
#define BIT17   0x00020000
#define BIT18   0x00040000
#define BIT19   0x00080000
#define BIT20   0x00100000
#define BIT21   0x00200000
#define BIT22   0x00400000
#define BIT23   0x00800000
#define BIT24   0x01000000
#define BIT25   0x02000000
#define BIT26   0x04000000
#define BIT27   0x08000000
#define BIT28   0x10000000
#define BIT29   0x20000000
#define BIT30   0x40000000
#define BIT31   0x80000000

typedef unsigned char   UINT8, UCHAR, BYTE, *PUINT8, *PUCHAR, *PBYTE, *LPBYTE, *LPCTSTR;
typedef unsigned short  UINT16, USHORT, WORD, *PUINT16, *PUSHORT, *PWORD;
typedef unsigned long   UINT32, ULONG, DWORD, *PUINT32, *PULONG, *PDWORD;
typedef char    INT8, CHAR, TCHAR, *PINT8, *PTCHAR, *PCHAR;
typedef short   INT16, SHORT, *PINT16;
typedef long    INT32, BOOL, STATUS, LONG, *PINT32;
typedef double  DOUBLE, LONGLONG;

typedef const CHAR      *LPCSTR;

typedef void    VOID, *PVOID, *HANDLE;
typedef HANDLE  *PHANDLE;

#define CONST   const

typedef union   _LARGE_INTEGER
{
    struct
    {
        DWORD LowPart;
        LONG HighPart;
    };
    struct
    {
        DWORD LowPart;
        LONG HighPart;
    }u;
    LONGLONG QuadPart;
} LARGE_INTEGER;
typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;

#ifndef min
#define min(a,b)        ((a)<(b)?(a):(b))
#endif

#ifndef max
#define max(a,b)        ((a)>(b)?(a):(b))
#endif

typedef INT8    *va_list;
#define _INTSIZEOF(n)   ((sizeof(n) + sizeof(INT32) - 1) & ~(sizeof(INT32) - 1))

#define va_start(ap, v)     (ap = (va_list)&v + _INTSIZEOF(v))
#define va_arg(ap, mode)    (*(mode *)((ap += _INTSIZEOF(mode)) - _INTSIZEOF(mode)))
#define va_end(ap)          (ap = (va_list)0)

/* register control */
#define READ_REGISTER_UCHAR(addr) (*(volatile UINT8 *)(addr))
#define READ_REGISTER_USHORT(addr) (*(volatile UINT16 *)(addr))
#define READ_REGISTER_ULONG(addr) (*(volatile UINT32 *)(addr))

#define WRITE_REGISTER_UCHAR(addr,val) (*(volatile UINT8 *)(addr) = (val))
#define WRITE_REGISTER_USHORT(addr,val) (*(volatile UINT16 *)(addr) = (val))
#define WRITE_REGISTER_ULONG(addr,val) (*(volatile UINT32 *)(addr) = (val))

#define INREG8(x)           READ_REGISTER_UCHAR(x)
#define OUTREG8(x, y)       WRITE_REGISTER_UCHAR(x, (UINT8)(y))
#define SETREG8(x, y)       OUTREG8(x, INREG8(x)|(y))
#define CLRREG8(x, y)       OUTREG8(x, INREG8(x)&~(y))
#define SETBITVALUE8(addr, mask, value) \
                OUTREG8(addr, (INREG8(addr)&(~mask)) | (value&mask))

#define INREG16(x)          READ_REGISTER_USHORT(x)
#define OUTREG16(x, y)      WRITE_REGISTER_USHORT(x,(UINT16)(y))
#define SETREG16(x, y)      OUTREG16(x, INREG16(x)|(y))
#define CLRREG16(x, y)      OUTREG16(x, INREG16(x)&~(y))
#define SETBITVALUE16(addr, mask, value) \
                OUTREG16(addr, (INREG16(addr)&(~mask)) | (value&mask))

#define INREG32(x)          READ_REGISTER_ULONG(x)
#define OUTREG32(x, y)      WRITE_REGISTER_ULONG(x, (UINT32)(y))
#define SETREG32(x, y)      OUTREG32(x, INREG32(x)|(y))
#define CLRREG32(x, y)      OUTREG32(x, INREG32(x)&~(y))
#define SETBITVALUE32(addr, mask, value) \
                OUTREG32(addr, (INREG32(addr)&(~mask)) | ((value)&(mask)))

#define FOREVER         while(1)
//#define inline
#define IN
#define OUT

#endif

⌨️ 快捷键说明

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