]> git.lizzy.rs Git - plan9front.git/blob - amd64/include/u.h
libc: change usize to 64-bit for amd64 and arm64, make memory(2) functions use usize
[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 long long       intptr;
10 typedef unsigned long long uintptr;
11 typedef unsigned long long usize;
12 typedef uint            Rune;
13 typedef union FPdbleword FPdbleword;
14 typedef uintptr         jmp_buf[2];
15 #define JMPBUFSP        0
16 #define JMPBUFPC        1
17 #define JMPBUFDPC       0
18 typedef unsigned int    mpdigit;        /* for /sys/include/mp.h */
19 typedef unsigned char   u8int;
20 typedef unsigned short  u16int;
21 typedef unsigned int    u32int;
22 typedef unsigned long long u64int;
23 typedef signed char s8int;
24 typedef signed short s16int;
25 typedef signed int s32int;
26 typedef signed long long s64int;
27
28 /* MXCSR */
29 /* fcr */
30 #define FPFTZ   (1<<15) /* amd64 */
31 #define FPINEX  (1<<12)
32 #define FPUNFL  (1<<11)
33 #define FPOVFL  (1<<10)
34 #define FPZDIV  (1<<9)
35 #define FPDNRM  (1<<8)  /* amd64 */
36 #define FPINVAL (1<<7)
37 #define FPDAZ   (1<<6)  /* amd64 */
38 #define FPRNR   (0<<13)
39 #define FPRZ    (3<<13)
40 #define FPRPINF (2<<13)
41 #define FPRNINF (1<<13)
42 #define FPRMASK (3<<13)
43 #define FPPEXT  0
44 #define FPPSGL  0
45 #define FPPDBL  0
46 #define FPPMASK 0
47 /* fsr */
48 #define FPAINEX (1<<5)
49 #define FPAUNFL (1<<4)
50 #define FPAOVFL (1<<3)
51 #define FPAZDIV (1<<2)
52 #define FPADNRM (1<<1)  /* not in plan 9 */
53 #define FPAINVAL        (1<<0)
54 union FPdbleword
55 {
56         double  x;
57         struct {        /* little endian */
58                 uint lo;
59                 uint 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])