17dd7cddfSDavid du Colombier #define nil ((void*)0) 23e12c5d1SDavid du Colombier typedef unsigned short ushort; 33e12c5d1SDavid du Colombier typedef unsigned char uchar; 43e12c5d1SDavid du Colombier typedef unsigned long ulong; 53e12c5d1SDavid du Colombier typedef unsigned int uint; 63e12c5d1SDavid du Colombier typedef signed char schar; 7219b2ee8SDavid du Colombier typedef long long vlong; 8219b2ee8SDavid du Colombier typedef unsigned long long uvlong; 91517f4bcSDavid du Colombier typedef unsigned long uintptr; 103f9c8393SDavid du Colombier typedef unsigned long usize; 11e94a8e9bSDavid du Colombier typedef uint Rune; 1259cc4ca5SDavid du Colombier typedef union FPdbleword FPdbleword; 133e12c5d1SDavid du Colombier typedef long jmp_buf[2]; 143e12c5d1SDavid du Colombier #define JMPBUFSP 0 153e12c5d1SDavid du Colombier #define JMPBUFPC 1 163e12c5d1SDavid du Colombier #define JMPBUFDPC 0 177dd7cddfSDavid du Colombier typedef unsigned int mpdigit; /* for /sys/include/mp.h */ 189800bf03SDavid du Colombier typedef unsigned char u8int; 199800bf03SDavid du Colombier typedef unsigned short u16int; 2059cc4ca5SDavid du Colombier typedef unsigned int u32int; 219800bf03SDavid du Colombier typedef unsigned long long u64int; 223e12c5d1SDavid du Colombier 23*f53d914dSDavid du Colombier /* FCR (FCR31) */ 24*f53d914dSDavid du Colombier #define FPINEX (1<<7) /* enables */ 253e12c5d1SDavid du Colombier #define FPUNFL (1<<8) 267dd7cddfSDavid du Colombier #define FPOVFL (1<<9) 273e12c5d1SDavid du Colombier #define FPZDIV (1<<10) 287dd7cddfSDavid du Colombier #define FPINVAL (1<<11) 29*f53d914dSDavid du Colombier #define FPRNR (0<<0) /* rounding modes */ 303e12c5d1SDavid du Colombier #define FPRZ (1<<0) 313e12c5d1SDavid du Colombier #define FPRPINF (2<<0) 323e12c5d1SDavid du Colombier #define FPRNINF (3<<0) 333e12c5d1SDavid du Colombier #define FPRMASK (3<<0) 343e12c5d1SDavid du Colombier #define FPPEXT 0 353e12c5d1SDavid du Colombier #define FPPSGL 0 363e12c5d1SDavid du Colombier #define FPPDBL 0 373e12c5d1SDavid du Colombier #define FPPMASK 0 38*f53d914dSDavid du Colombier #define FPCOND (1<<23) 39*f53d914dSDavid du Colombier 40*f53d914dSDavid du Colombier /* FSR (also FCR31) */ 41*f53d914dSDavid du Colombier #define FPAINEX (1<<2) /* flags */ 423e12c5d1SDavid du Colombier #define FPAOVFL (1<<4) 433e12c5d1SDavid du Colombier #define FPAUNFL (1<<3) 443e12c5d1SDavid du Colombier #define FPAZDIV (1<<5) 457dd7cddfSDavid du Colombier #define FPAINVAL (1<<6) 46*f53d914dSDavid du Colombier 4759cc4ca5SDavid du Colombier union FPdbleword 4859cc4ca5SDavid du Colombier { 4959cc4ca5SDavid du Colombier double x; 5059cc4ca5SDavid du Colombier struct { /* big endian */ 519a747e4fSDavid du Colombier ulong hi; 529a747e4fSDavid du Colombier ulong lo; 5359cc4ca5SDavid du Colombier }; 5459cc4ca5SDavid du Colombier }; 557dd7cddfSDavid du Colombier 567dd7cddfSDavid du Colombier /* stdarg */ 577dd7cddfSDavid du Colombier typedef char* va_list; 589a747e4fSDavid du Colombier #define va_start(list, start) list =\ 599a747e4fSDavid du Colombier (sizeof(start) < 4?\ 609a747e4fSDavid du Colombier (char*)((int*)&(start)+1):\ 619a747e4fSDavid du Colombier (char*)(&(start)+1)) 629a747e4fSDavid du Colombier #define va_end(list)\ 639a747e4fSDavid du Colombier USED(list) 647dd7cddfSDavid du Colombier #define va_arg(list, mode)\ 659a747e4fSDavid du Colombier ((sizeof(mode) == 1)?\ 663f9c8393SDavid du Colombier ((list += 4), (mode*)list)[-1]:\ 679a747e4fSDavid du Colombier (sizeof(mode) == 2)?\ 683f9c8393SDavid du Colombier ((list += 4), (mode*)list)[-1]:\ 693f9c8393SDavid du Colombier ((list += sizeof(mode)), (mode*)list)[-1]) 70