summaryrefslogtreecommitdiff
path: root/bsd-user/sparc64
diff options
context:
space:
mode:
authorblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2008-10-26 20:33:16 +0000
committerblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2008-10-26 20:33:16 +0000
commit84778508d7403cd32fb4527550738f19aa7b1aa5 (patch)
tree2a24173f54e272d48f844d6caeefa9b3acf76c9b /bsd-user/sparc64
parent46f42f2940bc6912b85d616ad6c8fcfe024153f6 (diff)
downloadqemu-84778508d7403cd32fb4527550738f19aa7b1aa5.tar.gz
Preliminary BSD user emulator support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5544 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'bsd-user/sparc64')
-rw-r--r--bsd-user/sparc64/syscall.h10
-rw-r--r--bsd-user/sparc64/target_signal.h27
2 files changed, 37 insertions, 0 deletions
diff --git a/bsd-user/sparc64/syscall.h b/bsd-user/sparc64/syscall.h
new file mode 100644
index 0000000000..81a816de94
--- /dev/null
+++ b/bsd-user/sparc64/syscall.h
@@ -0,0 +1,10 @@
+struct target_pt_regs {
+ abi_ulong u_regs[16];
+ abi_ulong tstate;
+ abi_ulong pc;
+ abi_ulong npc;
+ abi_ulong y;
+ abi_ulong fprs;
+};
+
+#define UNAME_MACHINE "sun4u"
diff --git a/bsd-user/sparc64/target_signal.h b/bsd-user/sparc64/target_signal.h
new file mode 100644
index 0000000000..5b2abba40f
--- /dev/null
+++ b/bsd-user/sparc64/target_signal.h
@@ -0,0 +1,27 @@
+#ifndef TARGET_SIGNAL_H
+#define TARGET_SIGNAL_H
+
+#include "cpu.h"
+
+/* this struct defines a stack used during syscall handling */
+
+typedef struct target_sigaltstack {
+ abi_ulong ss_sp;
+ abi_long ss_flags;
+ abi_ulong ss_size;
+} target_stack_t;
+
+
+#ifndef UREG_I6
+#define UREG_I6 6
+#endif
+#ifndef UREG_FP
+#define UREG_FP UREG_I6
+#endif
+
+static inline abi_ulong get_sp_from_cpustate(CPUSPARCState *state)
+{
+ return state->regwptr[UREG_FP];
+}
+
+#endif /* TARGET_SIGNAL_H */