diff options
Diffstat (limited to 'usr/include/arch/mips64')
-rw-r--r-- | usr/include/arch/mips64/klibc/archconfig.h | 20 | ||||
-rw-r--r-- | usr/include/arch/mips64/klibc/archsetjmp.h | 25 | ||||
-rw-r--r-- | usr/include/arch/mips64/klibc/archsignal.h | 14 | ||||
-rw-r--r-- | usr/include/arch/mips64/klibc/archsocket.h | 17 | ||||
-rw-r--r-- | usr/include/arch/mips64/machine/asm.h | 82 |
5 files changed, 158 insertions, 0 deletions
diff --git a/usr/include/arch/mips64/klibc/archconfig.h b/usr/include/arch/mips64/klibc/archconfig.h new file mode 100644 index 0000000..fa31482 --- /dev/null +++ b/usr/include/arch/mips64/klibc/archconfig.h @@ -0,0 +1,20 @@ +/* + * include/arch/mips64/klibc/archconfig.h + * + * See include/klibc/sysconfig.h for the options that can be set in + * this file. + * + */ + +#ifndef _KLIBC_ARCHCONFIG_H +#define _KLIBC_ARCHCONFIG_H + +/* MIPS has nonstandard socket definitions */ +#define _KLIBC_HAS_ARCHSOCKET_H 1 + +#define _KLIBC_STATFS_F_TYPE_64 1 + +/* MIPS has architecture-specific code for vfork() */ +#define _KLIBC_REAL_VFORK 1 + +#endif /* _KLIBC_ARCHCONFIG_H */ diff --git a/usr/include/arch/mips64/klibc/archsetjmp.h b/usr/include/arch/mips64/klibc/archsetjmp.h new file mode 100644 index 0000000..bfca777 --- /dev/null +++ b/usr/include/arch/mips64/klibc/archsetjmp.h @@ -0,0 +1,25 @@ +/* + * arch/mips64/include/klibc/archsetjmp.h + */ + +#ifndef _KLIBC_ARCHSETJMP_H +#define _KLIBC_ARCHSETJMP_H + +struct __jmp_buf { + unsigned long __s0; + unsigned long __s1; + unsigned long __s2; + unsigned long __s3; + unsigned long __s4; + unsigned long __s5; + unsigned long __s6; + unsigned long __s7; + unsigned long __gp; + unsigned long __sp; + unsigned long __s8; + unsigned long __ra; +} __attribute__ ((aligned(8))); + +typedef struct __jmp_buf jmp_buf[1]; + +#endif /* _KLIBC_ARCHSETJMP_H */ diff --git a/usr/include/arch/mips64/klibc/archsignal.h b/usr/include/arch/mips64/klibc/archsignal.h new file mode 100644 index 0000000..f350af9 --- /dev/null +++ b/usr/include/arch/mips64/klibc/archsignal.h @@ -0,0 +1,14 @@ +/* + * arch/mips64/include/klibc/archsignal.h + * + * Architecture-specific signal definitions + * + */ + +#ifndef _KLIBC_ARCHSIGNAL_H +#define _KLIBC_ARCHSIGNAL_H + +#include <asm/signal.h> +/* No special stuff for this architecture */ + +#endif diff --git a/usr/include/arch/mips64/klibc/archsocket.h b/usr/include/arch/mips64/klibc/archsocket.h new file mode 100644 index 0000000..6c3947d --- /dev/null +++ b/usr/include/arch/mips64/klibc/archsocket.h @@ -0,0 +1,17 @@ +/* + * arch/mips64/klibc/archsocket.h + */ + +#ifndef _KLIBC_ARCHSOCKET_H +#define _KLIBC_ARCHSOCKET_H + +#ifndef SOCK_STREAM +# define SOCK_DGRAM 1 +# define SOCK_STREAM 2 +# define SOCK_RAW 3 +# define SOCK_RDM 4 +# define SOCK_SEQPACKET 5 +# define SOCK_PACKET 10 +#endif + +#endif /* _KLIBC_ARCHSOCKET_H */ diff --git a/usr/include/arch/mips64/machine/asm.h b/usr/include/arch/mips64/machine/asm.h new file mode 100644 index 0000000..42dcaa4 --- /dev/null +++ b/usr/include/arch/mips64/machine/asm.h @@ -0,0 +1,82 @@ +/* + * arch/mips64/include/machine/asm.h + */ + +#ifndef _MACHINE_ASM_H +#define _MACHINE_ASM_H + +/* + * Symbolic register names for 64 bit ABI + */ + + +#define zero $0 /* wired zero */ +#define AT $at /* assembler temp - uppercase because of ".set at" */ +#define v0 $2 /* return value - caller saved */ +#define v1 $3 +#define a0 $4 /* argument registers */ +#define a1 $5 +#define a2 $6 +#define a3 $7 +#define a4 $8 /* arg reg 64 bit; caller saved in 32 bit */ +#define ta0 $8 +#define a5 $9 +#define ta1 $9 +#define a6 $10 +#define ta2 $10 +#define a7 $11 +#define ta3 $11 +#define t4 $12 /* caller saved */ +#define t5 $13 +#define t6 $14 +#define t7 $15 +#define s0 $16 /* callee saved */ +#define s1 $17 +#define s2 $18 +#define s3 $19 +#define s4 $20 +#define s5 $21 +#define s6 $22 +#define s7 $23 +#define t8 $24 /* caller saved */ +#define t9 $25 /* callee address for PIC/temp */ +#define jp $25 /* PIC jump register */ +#define k0 $26 /* kernel temporary */ +#define k1 $27 +#define gp $28 /* global pointer - caller saved for PIC */ +#define sp $29 /* stack pointer */ +#define fp $30 /* frame pointer */ +#define s8 $30 /* callee saved */ +#define ra $31 /* return address */ + + +/* + * LEAF - declare leaf routine + */ +#define LEAF(symbol) \ + .globl symbol; \ + .align 2; \ + .type symbol,@function; \ + .ent symbol,0; \ +symbol: .frame sp,0,ra + + +/* + * NESTED - declare nested routine entry point + */ +#define NESTED(symbol, framesize, rpc) \ + .globl symbol; \ + .align 2; \ + .type symbol,@function; \ + .ent symbol,0; \ +symbol: .frame sp, framesize, rpc + +/* + * END - mark end of function + */ +#define END(function) \ + .end function; \ + .size function,.-function + + +#endif /* _MACHINE_ASM_H */ |