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; 11*e94a8e9bSDavid 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 (-8) 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 233e12c5d1SDavid du Colombier /* FCR */ 243e12c5d1SDavid du Colombier #define FPINEX (1<<23) 253e12c5d1SDavid du Colombier #define FPOVFL (1<<26) 263e12c5d1SDavid du Colombier #define FPUNFL (1<<25) 273e12c5d1SDavid du Colombier #define FPZDIV (1<<24) 283e12c5d1SDavid du Colombier #define FPRNR (0<<30) 293e12c5d1SDavid du Colombier #define FPRZ (1<<30) 307dd7cddfSDavid du Colombier #define FPINVAL (1<<27) 313e12c5d1SDavid du Colombier #define FPRPINF (2<<30) 323e12c5d1SDavid du Colombier #define FPRNINF (3<<30) 333e12c5d1SDavid du Colombier #define FPRMASK (3<<30) 343e12c5d1SDavid du Colombier #define FPPEXT 0 353e12c5d1SDavid du Colombier #define FPPSGL 0 363e12c5d1SDavid du Colombier #define FPPDBL 0 373e12c5d1SDavid du Colombier #define FPPMASK 0 383e12c5d1SDavid du Colombier /* FSR */ 393e12c5d1SDavid du Colombier #define FPAINEX (1<<5) 403e12c5d1SDavid du Colombier #define FPAZDIV (1<<6) 417dd7cddfSDavid du Colombier #define FPAUNFL (1<<7) 427dd7cddfSDavid du Colombier #define FPAOVFL (1<<8) 437dd7cddfSDavid du Colombier #define FPAINVAL (1<<9) 4459cc4ca5SDavid du Colombier union FPdbleword 4559cc4ca5SDavid du Colombier { 4659cc4ca5SDavid du Colombier double x; 4759cc4ca5SDavid du Colombier struct { /* big endian */ 489a747e4fSDavid du Colombier ulong hi; 499a747e4fSDavid du Colombier ulong lo; 5059cc4ca5SDavid du Colombier }; 5159cc4ca5SDavid du Colombier }; 527dd7cddfSDavid du Colombier 537dd7cddfSDavid du Colombier typedef char* va_list; 549a747e4fSDavid du Colombier #define va_start(list, start) list =\ 559a747e4fSDavid du Colombier (sizeof(start) < 4?\ 569a747e4fSDavid du Colombier (char*)((int*)&(start)+1):\ 579a747e4fSDavid du Colombier (char*)(&(start)+1)) 589a747e4fSDavid du Colombier #define va_end(list)\ 599a747e4fSDavid du Colombier USED(list) 607dd7cddfSDavid du Colombier #define va_arg(list, mode)\ 619a747e4fSDavid du Colombier ((sizeof(mode) == 1)?\ 623f9c8393SDavid du Colombier ((list += 4), (mode*)list)[-1]:\ 639a747e4fSDavid du Colombier (sizeof(mode) == 2)?\ 643f9c8393SDavid du Colombier ((list += 4), (mode*)list)[-1]:\ 653f9c8393SDavid du Colombier ((list += sizeof(mode)), (mode*)list)[-1]) 66