about summary refs log tree commit diff
path: root/arch/sh
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2014-03-08 00:14:33 -0500
committerRich Felker <dalias@aerifal.cx>2014-03-08 00:14:33 -0500
commite12fda3bffb3558a27834a07a0c936e68eb25741 (patch)
tree867ce05940874307675c5515621f63620fc8c0b6 /arch/sh
parentb576766d51171debc2428a556d2abdc32bbd32e9 (diff)
downloadmusl-e12fda3bffb3558a27834a07a0c936e68eb25741.tar.gz
musl-e12fda3bffb3558a27834a07a0c936e68eb25741.tar.xz
musl-e12fda3bffb3558a27834a07a0c936e68eb25741.zip
add bits/user.h for sh port
this seems to have been overlooked, and resulted in breakage in
anything including sys/user.h.
Diffstat (limited to 'arch/sh')
-rw-r--r--arch/sh/bits/user.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/arch/sh/bits/user.h b/arch/sh/bits/user.h
new file mode 100644
index 00000000..d7363f74
--- /dev/null
+++ b/arch/sh/bits/user.h
@@ -0,0 +1,75 @@
+#undef __WORDSIZE
+#define __WORDSIZE 32
+
+#define REG_REG0	 0
+#define REG_REG15	15
+#define REG_PC		16
+#define REG_PR		17
+#define REG_SR		18
+#define REG_GBR		19
+#define REG_MACH	20
+#define REG_MACL	21
+#define REG_SYSCALL	22
+#define REG_FPREG0	23
+#define REG_FPREG15	38
+#define REG_XFREG0	39
+#define REG_XFREG15	54
+#define REG_FPSCR	55
+#define REG_FPUL	56
+
+struct pt_regs {
+	unsigned long regs[16];
+	unsigned long pc;
+	unsigned long pr;
+	unsigned long sr;
+	unsigned long gbr;
+	unsigned long mach;
+	unsigned long macl;
+	long tra;
+};
+
+struct pt_dspregs {
+	unsigned long a1;
+	unsigned long a0g;
+	unsigned long a1g;
+	unsigned long m0;
+	unsigned long m1;
+	unsigned long a0;
+	unsigned long x0;
+	unsigned long x1;
+	unsigned long y0;
+	unsigned long y1;
+	unsigned long dsr;
+	unsigned long rs;
+	unsigned long re;
+	unsigned long mod;
+};
+
+struct user_fpu_struct {
+	unsigned long fp_regs[16];
+	unsigned long xfp_regs[16];
+	unsigned long fpscr;
+	unsigned long fpul;
+};
+
+#define ELF_NGREG 23
+typedef unsigned long elf_greg_t;
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+typedef struct user_fpu_struct elf_fpregset_t;
+
+struct user {
+	struct pt_regs regs;
+	struct user_fpu_struct fpu;
+	int u_fpvalid;
+	unsigned long u_tsize;
+	unsigned long u_dsize;
+	unsigned long u_ssize;
+	unsigned long start_code;
+	unsigned long start_data;
+	unsigned long start_stack;
+	long int signal;
+	unsigned long u_ar0;
+	struct user_fpu_struct *u_fpstate;
+	unsigned long magic;
+	char u_comm[32];
+};