Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#define nil		((void*)0)
2
typedef	unsigned short	ushort;
3
typedef	unsigned char	uchar;
4
typedef	unsigned long	ulong;
5
typedef	unsigned int	uint;
6
typedef	signed char	schar;
7
typedef	long long	vlong;
8
typedef	unsigned long long uvlong;
9
typedef unsigned long long uintptr;
10
typedef unsigned long	usize;
11
typedef	uint		Rune;
12
typedef 	union FPdbleword FPdbleword;
13
typedef uintptr	jmp_buf[2];
14
#define	JMPBUFSP	0
15
#define	JMPBUFPC	1
16
#define	JMPBUFDPC	0
17
typedef unsigned int	mpdigit;	/* for /sys/include/mp.h */
18
typedef unsigned char u8int;
19
typedef unsigned short u16int;
20
typedef unsigned int	u32int;
21
typedef unsigned long long u64int;
22
 
23
/* FPSCR */
24
#define	FPSFX	(1<<31)	/* exception summary (sticky) */
25
#define	FPSEX	(1<<30)	/* enabled exception summary */
26
#define	FPSVX	(1<<29)	/* invalid operation exception summary */
27
#define	FPSOX	(1<<28)	/* overflow exception OX (sticky) */
28
#define	FPSUX	(1<<27)	/* underflow exception UX (sticky) */
29
#define	FPSZX	(1<<26)	/* zero divide exception ZX (sticky) */
30
#define	FPSXX	(1<<25)	/* inexact exception XX (sticky) */
31
#define	FPSVXSNAN (1<<24)	/* invalid operation exception for SNaN (sticky) */
32
#define	FPSVXISI	(1<<23)	/* invalid operation exception for ∞-∞ (sticky) */
33
#define	FPSVXIDI	(1<<22)	/* invalid operation exception for ∞/∞ (sticky) */
34
#define	FPSVXZDZ (1<<21)	/* invalid operation exception for 0/0 (sticky) */
35
#define	FPSVXIMZ	(1<<20)	/* invalid operation exception for ∞*0 (sticky) */
36
#define	FPSVXVC	(1<<19)	/* invalid operation exception for invalid compare (sticky) */
37
#define	FPSFR	(1<<18)	/* fraction rounded */
38
#define	FPSFI	(1<<17)	/* fraction inexact */
39
#define	FPSFPRF	(1<<16)	/* floating point result class */
40
#define	FPSFPCC	(0xF<<12)	/* <, >, =, unordered */
41
#define	FPVXCVI	(1<<8)	/* enable exception for invalid integer convert (sticky) */
42
#define	FPVE	(1<<7)	/* invalid operation exception enable */
43
#define	FPOVFL	(1<<6)	/* enable overflow exceptions */
44
#define	FPUNFL	(1<<5)	/* enable underflow */
45
#define	FPZDIV	(1<<4)	/* enable zero divide */
46
#define	FPINEX	(1<<3)	/* enable inexact exceptions */
47
#define	FPRMASK	(3<<0)	/* rounding mode */
48
#define	FPRNR	(0<<0)
49
#define	FPRZ	(1<<0)
50
#define	FPRPINF	(2<<0)
51
#define	FPRNINF	(3<<0)
52
#define	FPPEXT	0
53
#define	FPPSGL	0
54
#define	FPPDBL	0
55
#define	FPPMASK	0
56
#define	FPINVAL	FPVE
57
 
58
#define	FPAOVFL	FPSOX
59
#define	FPAINEX	FPSXX
60
#define	FPAUNFL	FPSUX
61
#define	FPAZDIV	FPSZX
62
#define	FPAINVAL	FPSVX
63
 
64
union FPdbleword
65
{
66
	double	x;
67
	struct {	/* big endian */
68
		ulong hi;
69
		ulong lo;
70
	};
71
};
72
 
73
typedef	char*	va_list;
74
#define va_start(list, start) list =\
75
	(sizeof(start) < 8?\
76
		(char*)((vlong*)&(start)+1):\
77
		(char*)(&(start)+1))
78
#define va_end(list)\
79
	USED(list)
80
#define va_arg(list, mode)\
81
	((sizeof(mode) == 1)?\
82
		((mode*)(list += 8))[-1]:\
83
	(sizeof(mode) == 2)?\
84
		((mode*)(list += 8))[-1]:\
85
	(sizeof(mode) == 4)?\
86
		((mode*)(list += 8))[-1]:\
87
		((mode*)(list += sizeof(mode)))[-1])