]> git.lizzy.rs Git - plan9front.git/blob - amd64/include/u.h
libc and ape support for amd64
[plan9front.git] / amd64 / include / u.h
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 /* MXCSR */
24 /* fcr */
25 #define FPFTZ   (1<<15) /* amd64 */
26 #define FPINEX  (1<<12)
27 #define FPUNFL  (1<<11)
28 #define FPOVFL  (1<<10)
29 #define FPZDIV  (1<<9)
30 #define FPDNRM  (1<<8)  /* amd64 */
31 #define FPINVAL (1<<7)
32 #define FPDAZ   (1<<6)  /* amd64 */
33 #define FPRNR   (0<<13)
34 #define FPRZ    (3<<13)
35 #define FPRPINF (2<<13)
36 #define FPRNINF (1<<13)
37 #define FPRMASK (3<<13)
38 #define FPPEXT  0
39 #define FPPSGL  0
40 #define FPPDBL  0
41 #define FPPMASK 0
42 /* fsr */
43 #define FPAINEX (1<<5)
44 #define FPAUNFL (1<<4)
45 #define FPAOVFL (1<<3)
46 #define FPAZDIV (1<<2)
47 #define FPADNRM (1<<1)  /* not in plan 9 */
48 #define FPAINVAL        (1<<0)
49 union FPdbleword
50 {
51         double  x;
52         struct {        /* little endian */
53                 uint lo;
54                 uint hi;
55         };
56 };
57
58 typedef char*   va_list;
59 #define va_start(list, start) list =\
60         (sizeof(start) < 8?\
61                 (char*)((vlong*)&(start)+1):\
62                 (char*)(&(start)+1))
63 #define va_end(list)\
64         USED(list)
65 #define va_arg(list, mode)\
66         ((sizeof(mode) == 1)?\
67                 ((list += 8), (mode*)list)[-8]:\
68         (sizeof(mode) == 2)?\
69                 ((list += 8), (mode*)list)[-4]:\
70         (sizeof(mode) == 4)?\
71                 ((list += 8), (mode*)list)[-2]:\
72                 ((list += sizeof(mode)), (mode*)list)[-1])