📄 sys.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 + -