about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/bits/user.h6
-rw-r--r--arch/i386/bits/user.h11
-rw-r--r--arch/mips/bits/user.h4
-rw-r--r--arch/powerpc/bits/user.h11
-rw-r--r--arch/x86_64/bits/user.h6
-rw-r--r--include/sys/procfs.h18
6 files changed, 30 insertions, 26 deletions
diff --git a/arch/arm/bits/user.h b/arch/arm/bits/user.h
index d5f1deaa..9df7a9ad 100644
--- a/arch/arm/bits/user.h
+++ b/arch/arm/bits/user.h
@@ -1,4 +1,4 @@
-struct user_fpregs {
+typedef struct user_fpregs {
 	struct fp_reg {
 		unsigned sign1:1;
 		unsigned unused:15;
@@ -12,11 +12,13 @@ struct user_fpregs {
 	unsigned fpcr:32;
 	unsigned char ftype[8];
 	unsigned int init_flag;
-};
+} elf_fpregset_t;
 
 struct user_regs {
 	unsigned long uregs[18];
 };
+#define ELF_NGREG 18
+typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG];
 
 struct user {
 	struct user_regs regs;
diff --git a/arch/i386/bits/user.h b/arch/i386/bits/user.h
index 998c062a..fa623621 100644
--- a/arch/i386/bits/user.h
+++ b/arch/i386/bits/user.h
@@ -1,17 +1,17 @@
 #undef __WORDSIZE
 #define __WORDSIZE 32
 
-struct user_fpregs_struct
+typedef struct user_fpregs_struct
 {
 	long cwd, swd, twd, fip, fcs, foo, fos, st_space[20];
-};
+} elf_fpregset_t;
 
-struct user_fpxregs_struct
+typedef struct user_fpxregs_struct
 {
 	unsigned short cwd, swd, twd, fop;
 	long fip, fcs, foo, fos, mxcsr, reserved;
 	long st_space[32], xmm_space[32], padding[56];
-};
+} elf_fpxregset_t;
 
 struct user_regs_struct
 {
@@ -19,6 +19,9 @@ struct user_regs_struct
 	long orig_eax, eip, xcs, eflags, esp, xss;
 };
 
+#define ELF_NGREG 17
+typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG];
+
 struct user
 {
 	struct user_regs_struct		regs;
diff --git a/arch/mips/bits/user.h b/arch/mips/bits/user.h
index 739233c1..3e26249d 100644
--- a/arch/mips/bits/user.h
+++ b/arch/mips/bits/user.h
@@ -7,3 +7,7 @@ struct user {
 	unsigned long magic;
 	char u_comm[32];
 };
+#define ELF_NGREG 45
+#define ELF_NFPREG 33
+typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG];
+typedef double elf_fpreg_t, elf_fpregset_t[ELF_NFPREG];
diff --git a/arch/powerpc/bits/user.h b/arch/powerpc/bits/user.h
index 248012f0..6cc8aaf7 100644
--- a/arch/powerpc/bits/user.h
+++ b/arch/powerpc/bits/user.h
@@ -12,3 +12,14 @@ struct user {
 	unsigned long magic;
 	char u_comm[32];
 };
+
+#define ELF_NGREG 48
+#define ELF_NFPREG 33
+#define ELF_NVRREG 33
+typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG];
+typedef double elf_fpreg_t, elf_fpregset_t[ELF_NFPREG];
+typedef struct { unsigned u[4]; }
+#ifdef __GNUC__
+__attribute__((__aligned__(16)))
+#endif
+	elf_vrreg_t, elf_vrregset_t[ELF_NVRREG];
diff --git a/arch/x86_64/bits/user.h b/arch/x86_64/bits/user.h
index 384f18ec..8b42632f 100644
--- a/arch/x86_64/bits/user.h
+++ b/arch/x86_64/bits/user.h
@@ -1,13 +1,13 @@
 #undef __WORDSIZE
 #define __WORDSIZE 64
 
-struct user_fpregs_struct
+typedef struct user_fpregs_struct
 {
 	uint16_t cwd, swd, ftw, fop;
 	uint64_t rip, rdp;
 	uint32_t mxcsr, mxcs_mask;
 	uint32_t st_space[32], xmm_space[64], padding[24];
-};
+} elf_fpregset_t;
 
 struct user_regs_struct
 {
@@ -15,6 +15,8 @@ struct user_regs_struct
 	unsigned long rax, rcx, rdx, rsi, rdi, orig_rax, rip;
 	unsigned long cs, eflags, rsp, ss, fs_base, gs_base, ds, es, fs, gs;
 };
+#define ELF_NGREG 27
+typedef unsigned long long elf_greg_t, elf_gregset_t[ELF_NGREG];
 
 struct user
 {
diff --git a/include/sys/procfs.h b/include/sys/procfs.h
index 91b6efd1..6a346053 100644
--- a/include/sys/procfs.h
+++ b/include/sys/procfs.h
@@ -8,17 +8,6 @@ extern "C" {
 #include <sys/types.h>
 #include <sys/user.h>
 
-typedef unsigned long elf_greg_t;
-#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-#if __WORDSIZE == 32
-typedef struct user_fpregs_struct elf_fpregset_t;
-typedef struct user_fpxregs_struct elf_fpxregset_t;
-#else
-typedef struct user_fpregs_struct elf_fpregset_t;
-#endif
-
 struct elf_siginfo {
 	int si_signo;
 	int si_code;
@@ -42,7 +31,6 @@ struct elf_prstatus {
 	int pr_fpvalid;
 };
 
-
 #define ELF_PRARGSZ 80
 
 struct elf_prpsinfo
@@ -64,19 +52,13 @@ struct elf_prpsinfo
 	char pr_psargs[ELF_PRARGSZ];
 };
 
-
 typedef void *psaddr_t;
 typedef elf_gregset_t prgregset_t;
-
 typedef elf_fpregset_t prfpregset_t;
-typedef elf_fpregset_t fpregset_t;
 typedef pid_t lwpid_t;
 typedef struct elf_prstatus prstatus_t;
 typedef struct elf_prpsinfo prpsinfo_t;
 
-
-
-
 #ifdef __cplusplus
 }
 #endif