summaryrefslogtreecommitdiffstats
path: root/libc-top-half/musl/arch/s390x/bits/user.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 13:54:38 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 13:54:38 +0000
commit8c1ab65c0f548d20b7f177bdb736daaf603340e1 (patch)
treedf55b7e75bf43f2bf500845b105afe3ac3a5157e /libc-top-half/musl/arch/s390x/bits/user.h
parentInitial commit. (diff)
downloadwasi-libc-upstream/0.0_git20221206.8b7148f.tar.xz
wasi-libc-upstream/0.0_git20221206.8b7148f.zip
Adding upstream version 0.0~git20221206.8b7148f.upstream/0.0_git20221206.8b7148f
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'libc-top-half/musl/arch/s390x/bits/user.h')
-rw-r--r--libc-top-half/musl/arch/s390x/bits/user.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/libc-top-half/musl/arch/s390x/bits/user.h b/libc-top-half/musl/arch/s390x/bits/user.h
new file mode 100644
index 0000000..ff3f048
--- /dev/null
+++ b/libc-top-half/musl/arch/s390x/bits/user.h
@@ -0,0 +1,62 @@
+#undef __WORDSIZE
+#define __WORDSIZE 64
+
+typedef union {
+ double d;
+ float f;
+} elf_fpreg_t;
+
+typedef struct {
+ unsigned fpc;
+ elf_fpreg_t fprs[16];
+} elf_fpregset_t;
+
+#define ELF_NGREG 27
+typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG];
+
+struct _user_psw_struct {
+ unsigned long mask, addr;
+};
+
+struct _user_fpregs_struct {
+ unsigned fpc;
+ double fprs[16];
+};
+
+struct _user_per_struct {
+ unsigned long control_regs[3];
+ unsigned single_step : 1;
+ unsigned instruction_fetch : 1;
+ unsigned : 30;
+ unsigned long starting_addr, ending_addr;
+ unsigned short perc_atmid;
+ unsigned long address;
+ unsigned char access_id;
+};
+
+struct _user_regs_struct {
+ struct _user_psw_struct psw;
+ unsigned long gprs[16];
+ unsigned acrs[16];
+ unsigned long orig_gpr2;
+ struct _user_fpregs_struct fp_regs;
+ struct _user_per_struct per_info;
+ unsigned long ieee_instruction_pointer;
+};
+
+struct user {
+ struct _user_regs_struct regs;
+ unsigned long u_tsize, u_dsize, u_ssize;
+ unsigned long start_code, start_stack;
+ long signal;
+ struct _user_regs_struct *u_ar0;
+ unsigned long magic;
+ char u_comm[32];
+};
+
+#define PAGE_MASK (~(PAGESIZE-1))
+#define NBPG PAGESIZE
+#define UPAGES 1
+#define HOST_TEXT_START_ADDR (u.start_code)
+#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
+