45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
#ifndef __TYPES_H
|
|
#define __TYPES_H
|
|
|
|
typedef unsigned int uint;
|
|
typedef unsigned short ushort;
|
|
typedef unsigned char uchar;
|
|
typedef unsigned short wchar;
|
|
|
|
typedef unsigned char uint8;
|
|
typedef unsigned short uint16;
|
|
typedef unsigned int uint32;
|
|
typedef unsigned long uint64;
|
|
|
|
typedef unsigned long uintptr_t;
|
|
typedef uint64 pde_t;
|
|
|
|
// #define NULL ((void *)0)
|
|
#define NULL 0
|
|
|
|
#define readb(addr) (*(volatile uint8 *)(addr))
|
|
#define readw(addr) (*(volatile uint16 *)(addr))
|
|
#define readd(addr) (*(volatile uint32 *)(addr))
|
|
#define readq(addr) (*(volatile uint64 *)(addr))
|
|
|
|
#define writeb(v, addr) \
|
|
{ \
|
|
(*(volatile uint8 *)(addr)) = (v); \
|
|
}
|
|
#define writew(v, addr) \
|
|
{ \
|
|
(*(volatile uint16 *)(addr)) = (v); \
|
|
}
|
|
#define writed(v, addr) \
|
|
{ \
|
|
(*(volatile uint32 *)(addr)) = (v); \
|
|
}
|
|
#define writeq(v, addr) \
|
|
{ \
|
|
(*(volatile uint64 *)(addr)) = (v); \
|
|
}
|
|
|
|
#define NELEM(x) (sizeof(x)/sizeof((x)[0]))
|
|
|
|
#endif
|