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; 10208510e1SDavid 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 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 233e12c5d1SDavid du Colombier /* FCR */ 243e12c5d1SDavid du Colombier #define FPINEX (1<<5) 253e12c5d1SDavid du Colombier #define FPUNFL ((1<<4)|(1<<1)) 267dd7cddfSDavid du Colombier #define FPOVFL (1<<3) 273e12c5d1SDavid du Colombier #define FPZDIV (1<<2) 287dd7cddfSDavid du Colombier #define FPINVAL (1<<0) 293e12c5d1SDavid du Colombier #define FPRNR (0<<10) 303e12c5d1SDavid du Colombier #define FPRZ (3<<10) 313e12c5d1SDavid du Colombier #define FPRPINF (2<<10) 323e12c5d1SDavid du Colombier #define FPRNINF (1<<10) 333e12c5d1SDavid du Colombier #define FPRMASK (3<<10) 343e12c5d1SDavid du Colombier #define FPPEXT (3<<8) 353e12c5d1SDavid du Colombier #define FPPSGL (0<<8) 363e12c5d1SDavid du Colombier #define FPPDBL (2<<8) 373e12c5d1SDavid du Colombier #define FPPMASK (3<<8) 383e12c5d1SDavid du Colombier /* FSR */ 393e12c5d1SDavid du Colombier #define FPAINEX FPINEX 403e12c5d1SDavid du Colombier #define FPAOVFL FPOVFL 413e12c5d1SDavid du Colombier #define FPAUNFL FPUNFL 423e12c5d1SDavid du Colombier #define FPAZDIV FPZDIV 437dd7cddfSDavid du Colombier #define FPAINVAL FPINVAL 4459cc4ca5SDavid du Colombier union FPdbleword 4559cc4ca5SDavid du Colombier { 4659cc4ca5SDavid du Colombier double x; 4759cc4ca5SDavid du Colombier struct { /* little endian */ 489a747e4fSDavid du Colombier ulong lo; 499a747e4fSDavid du Colombier ulong hi; 5059cc4ca5SDavid du Colombier }; 5159cc4ca5SDavid du Colombier }; 527dd7cddfSDavid du Colombier 537dd7cddfSDavid du Colombier typedef char* va_list; 547dd7cddfSDavid du Colombier #define va_start(list, start) list =\ 557dd7cddfSDavid du Colombier (sizeof(start) < 4?\ 567dd7cddfSDavid du Colombier (char*)((int*)&(start)+1):\ 577dd7cddfSDavid 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)[-4]:\ 639a747e4fSDavid du Colombier (sizeof(mode) == 2)?\ 643f9c8393SDavid du Colombier ((list += 4), (mode*)list)[-2]:\ 653f9c8393SDavid du Colombier ((list += sizeof(mode)), (mode*)list)[-1]) 66