begin sys/user.h and sys/reg.h fixes for ports
authorRich Felker <dalias@aerifal.cx>
Sat, 24 Nov 2012 01:05:43 +0000 (20:05 -0500)
committerRich Felker <dalias@aerifal.cx>
Sat, 24 Nov 2012 01:05:43 +0000 (20:05 -0500)
aside from microblaze, these should be roughly correct for all archs
now. some misc junk macros and typedefs are missing, which should
probably be added for max compatibility with trace/debug tools.

arch/arm/bits/user.h
arch/mips/bits/reg.h
arch/mips/bits/user.h
arch/powerpc/bits/user.h

index c533fd8..d5f1dea 100644 (file)
@@ -1,5 +1,4 @@
-struct user_fpregs_struct
-{
+struct user_fpregs {
        struct fp_reg {
                unsigned sign1:1;
                unsigned unused:15;
@@ -15,26 +14,20 @@ struct user_fpregs_struct
        unsigned int init_flag;
 };
 
-struct user_regs_struct
-{
+struct user_regs {
        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;
+struct user {
+       struct user_regs regs;
+       int u_fpvalid;
+       unsigned long u_tsize, u_dsize, u_ssize;
+       unsigned long start_code, start_stack;
+       long signal;
+       struct user_regs *u_ar0;
+       unsigned long magic;
+       char u_comm[32];
+       int u_debugreg[8];
+       struct user_fpregs u_fp;
+       struct user_fpregs *u_fp0;
 };
index 0c7bffc..0c37098 100644 (file)
@@ -1,3 +1,47 @@
 #undef __WORDSIZE
 #define __WORDSIZE 32
-/* FIXME */
+
+#define EF_R0 6
+#define EF_R1 7
+#define EF_R2 8
+#define EF_R3 9
+#define EF_R4 10
+#define EF_R5 11
+#define EF_R6 12
+#define EF_R7 13
+#define EF_R8 14
+#define EF_R9 15
+#define EF_R10 16
+#define EF_R11 17
+#define EF_R12 18
+#define EF_R13 19
+#define EF_R14 20
+#define EF_R15 21
+#define EF_R16 22
+#define EF_R17 23
+#define EF_R18 24
+#define EF_R19 25
+#define EF_R20 26
+#define EF_R21 27
+#define EF_R22 28
+#define EF_R23 29
+#define EF_R24 30
+#define EF_R25 31
+
+#define EF_R26 32
+#define EF_R27 33
+#define EF_R28 34
+#define EF_R29 35
+#define EF_R30 36
+#define EF_R31 37
+
+#define EF_LO 38
+#define EF_HI 39
+
+#define EF_CP0_EPC 40
+#define EF_CP0_BADVADDR 41
+#define EF_CP0_STATUS 42
+#define EF_CP0_CAUSE 43
+#define EF_UNUSED0 44
+
+#define EF_SIZE 180
index c533fd8..739233c 100644 (file)
@@ -1,40 +1,9 @@
-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;
+struct user {
+       unsigned long regs[45+64];
+       unsigned long u_tsize, u_dsize, u_ssize;
+       unsigned long start_code, start_data, start_stack;
+       long signal;
+       void *u_ar0;
+       unsigned long magic;
+       char u_comm[32];
 };
index c533fd8..248012f 100644 (file)
@@ -1,40 +1,14 @@
-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 pt_regs {
+       unsigned long gpr[32], nip, msr, orig_gpr3, ctr, link, xer, ccr, mq;
+       unsigned long trap, dar, dsisr, result;
 };
 
-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;
+struct user {
+       struct pt_regs regs;
+       unsigned long u_tsize, u_dsize, u_ssize;
+       unsigned long start_code, start_data, start_stack;
+       long signal;
+       void *u_ar0;
+       unsigned long magic;
+       char u_comm[32];
 };