diff options
Diffstat (limited to 'Inferno/mips')
| -rw-r--r-- | Inferno/mips/include/lib9.h | 8 | ||||
| -rw-r--r-- | Inferno/mips/include/u.h | 65 |
2 files changed, 73 insertions, 0 deletions
diff --git a/Inferno/mips/include/lib9.h b/Inferno/mips/include/lib9.h new file mode 100644 index 00000000..9315eea6 --- /dev/null +++ b/Inferno/mips/include/lib9.h @@ -0,0 +1,8 @@ +#include <u.h> +#include <kern.h> + +/* + * Extensions for Inferno to basic libc.h + */ + +#undef __LITTLE_ENDIAN /* math/dtoa.c; longs in MIPS doubles are big-endian */ diff --git a/Inferno/mips/include/u.h b/Inferno/mips/include/u.h new file mode 100644 index 00000000..9df12bff --- /dev/null +++ b/Inferno/mips/include/u.h @@ -0,0 +1,65 @@ +#define nil ((void*)0) +typedef unsigned short ushort; +typedef unsigned char uchar; +typedef unsigned long ulong; +typedef unsigned int uint; +typedef signed char schar; +typedef long long vlong; +typedef unsigned long long uvlong; +typedef unsigned long uintptr; +typedef ushort Rune; +typedef union FPdbleword FPdbleword; +typedef long jmp_buf[2]; +#define JMPBUFSP 0 +#define JMPBUFPC 1 +#define JMPBUFDPC 0 +typedef unsigned int mpdigit; /* for /sys/include/mp.h */ +typedef unsigned char u8int; +typedef unsigned short u16int; +typedef unsigned int u32int; +typedef unsigned long long u64int; + +/* FCR */ +#define FPINEX (1<<7) +#define FPUNFL (1<<8) +#define FPOVFL (1<<9) +#define FPZDIV (1<<10) +#define FPINVAL (1<<11) +#define FPRNR (0<<0) +#define FPRZ (1<<0) +#define FPRPINF (2<<0) +#define FPRNINF (3<<0) +#define FPRMASK (3<<0) +#define FPPEXT 0 +#define FPPSGL 0 +#define FPPDBL 0 +#define FPPMASK 0 +/* FSR */ +#define FPAINEX (1<<2) +#define FPAOVFL (1<<4) +#define FPAUNFL (1<<3) +#define FPAZDIV (1<<5) +#define FPAINVAL (1<<6) +union FPdbleword +{ + double x; + struct { /* big endian */ + ulong hi; + ulong lo; + }; +}; + +/* stdarg */ +typedef char* va_list; +#define va_start(list, start) list =\ + (sizeof(start) < 4?\ + (char*)((int*)&(start)+1):\ + (char*)(&(start)+1)) +#define va_end(list)\ + USED(list) +#define va_arg(list, mode)\ + ((sizeof(mode) == 1)?\ + ((mode*)(list += 4))[-1]:\ + (sizeof(mode) == 2)?\ + ((mode*)(list += 4))[-1]:\ + ((mode*)(list += sizeof(mode)))[-1]) |
