summaryrefslogtreecommitdiff
path: root/arch/mips/bits/user.h
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-07-11 04:22:13 -0400
committerRich Felker <dalias@aerifal.cx>2012-07-11 04:22:13 -0400
commit6315004f6102dca44c4ba50654a36967b8b9c2a6 (patch)
tree7b48d4ac93ecb9993ffc2d01c8762a4e954d4000 /arch/mips/bits/user.h
parentcd8d72451662f0157d06fcf666669db543dcea3b (diff)
downloadmusl-6315004f6102dca44c4ba50654a36967b8b9c2a6.tar.gz
musl-6315004f6102dca44c4ba50654a36967b8b9c2a6.tar.bz2
musl-6315004f6102dca44c4ba50654a36967b8b9c2a6.tar.xz
musl-6315004f6102dca44c4ba50654a36967b8b9c2a6.zip
initial version of mips (o32) port, based on work by Richard Pennington (rdp)
basically, this version of the code was obtained by starting with rdp's work from his ellcc source tree, adapting it to musl's build system and coding style, auditing the bits headers for discrepencies with kernel definitions or glibc/LSB ABI or large file issues, fixing up incompatibility with the old binutils from aboriginal linux, and adding some new special cases to deal with the oddities of sigaction and pipe syscall interfaces on mips. at present, minimal test programs work, but some interfaces are broken or missing. threaded programs probably will not link.
Diffstat (limited to 'arch/mips/bits/user.h')
-rw-r--r--arch/mips/bits/user.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/arch/mips/bits/user.h b/arch/mips/bits/user.h
new file mode 100644
index 00000000..c533fd8d
--- /dev/null
+++ b/arch/mips/bits/user.h
@@ -0,0 +1,40 @@
+struct user_fpregs_struct
+{
+ struct fp_reg {
+ unsigned sign1:1;
+ unsigned unused:15;
+ unsigned sign2:1;
+ unsigned exponent:14;
+ unsigned j:1;
+ unsigned mantissa1:31;
+ unsigned mantissa0:32;
+ } fpregs[8];
+ unsigned fpsr:32;
+ unsigned fpcr:32;
+ unsigned char ftype[8];
+ unsigned int init_flag;
+};
+
+struct user_regs_struct
+{
+ unsigned long uregs[18];
+};
+
+struct user
+{
+ struct user_regs_struct regs;
+ int u_fpvalid;
+ unsigned long u_tsize;
+ unsigned long u_dsize;
+ unsigned long u_ssize;
+ unsigned long start_code;
+ unsigned long start_stack;
+ long signal;
+ int reserved;
+ struct user_regs_struct *u_ar0;
+ unsigned long int magic;
+ char u_comm[32];
+ int u_debugreg[8];
+ struct user_fpregs_struct u_fp;
+ struct user_fpregs_struct *u_fp0;
+};