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]) 73