]> git.lizzy.rs Git - plan9front.git/blob - arm64/include/u.h
94d9cc3b73560f567d8b6e083d18534c9c4582f7
[plan9front.git] / arm64 / include / u.h
1 #define nil             ((void*)0)
2
3 typedef unsigned short  ushort;
4 typedef unsigned char   uchar;
5 typedef unsigned long   ulong;
6 typedef unsigned int    uint;
7 typedef signed char     schar;
8 typedef long long       vlong;
9 typedef unsigned long long uvlong;
10 typedef vlong   intptr;
11 typedef uvlong  uintptr;
12 typedef unsigned long   usize;
13 typedef uint            Rune;
14 typedef union FPdbleword FPdbleword;
15 typedef uintptr jmp_buf[2];
16 #define JMPBUFSP        0
17 #define JMPBUFPC        1
18 #define JMPBUFDPC       0
19 typedef unsigned int    mpdigit;        /* for /sys/include/mp.h */
20 typedef unsigned char u8int;
21 typedef unsigned short u16int;
22 typedef unsigned int    u32int;
23 typedef unsigned long long u64int;
24 typedef signed char s8int;
25 typedef signed short s16int;
26 typedef signed int s32int;
27 typedef signed long long s64int;
28
29 /* FPCR (control) */
30 #define FPINEX          (1<<12)
31 #define FPUNFL          (1<<11)
32 #define FPOVFL          (1<<10)
33 #define FPZDIV          (1<<9)
34 #define FPINVAL         (1<<8)
35
36 #define FPRNR           (0<<22)
37 #define FPRPINF         (1<<22)
38 #define FPRNINF         (2<<22)
39 #define FPRZ            (3<<22)
40
41 #define FPRMASK         (3<<22)
42
43 /* FPSR (status) */
44 #define FPPEXT  0
45 #define FPPSGL  0
46 #define FPPDBL  0
47 #define FPPMASK 0
48 #define FPAINEX         (1<<4)
49 #define FPAUNFL         (1<<3)
50 #define FPAOVFL         (1<<2)
51 #define FPAZDIV         (1<<1)
52 #define FPAINVAL        (1<<0)
53
54 union FPdbleword
55 {
56         double  x;
57         struct {        /* little endian */
58                 ulong lo;
59                 ulong hi;
60         };
61 };
62
63 typedef char*   va_list;
64 #define va_start(list, start) list =\
65         (sizeof(start) < 8?\
66                 (char*)((vlong*)&(start)+1):\
67                 (char*)(&(start)+1))
68 #define va_end(list)\
69         USED(list)
70 #define va_arg(list, mode)\
71         ((sizeof(mode) == 1)?\
72                 ((list += 8), (mode*)list)[-8]:\
73         (sizeof(mode) == 2)?\
74                 ((list += 8), (mode*)list)[-4]:\
75         (sizeof(mode) == 4)?\
76                 ((list += 8), (mode*)list)[-2]:\
77                 ((list += sizeof(mode)), (mode*)list)[-1])