[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/5] linux-user: tile: Add target features support w
From: |
Chen Gang S |
Subject: |
[Qemu-devel] [PATCH 3/5] linux-user: tile: Add target features support within qemu |
Date: |
Fri, 13 Feb 2015 05:17:40 +0800 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
They are for target features within qemu which independent from outside.
Signed-off-by: Chen Gang <address@hidden>
---
linux-user/tile/target_cpu.h | 35 +++++++++++++++++++++++++++++
linux-user/tile/target_signal.h | 28 +++++++++++++++++++++++
linux-user/tile/target_structs.h | 48 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 111 insertions(+)
create mode 100644 linux-user/tile/target_cpu.h
create mode 100644 linux-user/tile/target_signal.h
create mode 100644 linux-user/tile/target_structs.h
diff --git a/linux-user/tile/target_cpu.h b/linux-user/tile/target_cpu.h
new file mode 100644
index 0000000..8e2f39c
--- /dev/null
+++ b/linux-user/tile/target_cpu.h
@@ -0,0 +1,35 @@
+/*
+ * Tile specific CPU ABI and functions for linux-user
+ *
+ * Copyright (c) 2015 Chen Gang
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef TARGET_CPU_H
+#define TARGET_CPU_H
+
+static inline void cpu_clone_regs(CPUTLState *env, target_ulong newsp)
+{
+ if (newsp) {
+ env->regs[TILE_R_SP] = newsp;
+ }
+ env->regs[TILE_R_RE] = 0;
+}
+
+static inline void cpu_set_tls(CPUTLState *env, target_ulong newtls)
+{
+ env->regs[TILE_R_TP] = newtls;
+}
+
+#endif
diff --git a/linux-user/tile/target_signal.h b/linux-user/tile/target_signal.h
new file mode 100644
index 0000000..7a70c37
--- /dev/null
+++ b/linux-user/tile/target_signal.h
@@ -0,0 +1,28 @@
+#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_ulong ss_size;
+ abi_long ss_flags;
+} target_stack_t;
+
+/*
+ * sigaltstack controls
+ */
+#define TARGET_SS_ONSTACK 1
+#define TARGET_SS_DISABLE 2
+
+#define TARGET_MINSIGSTKSZ 2048
+#define TARGET_SIGSTKSZ 8192
+
+static inline abi_ulong get_sp_from_cpustate(CPUTLState *state)
+{
+ return state->regs[TILE_R_SP];
+}
+
+#endif /* TARGET_SIGNAL_H */
diff --git a/linux-user/tile/target_structs.h b/linux-user/tile/target_structs.h
new file mode 100644
index 0000000..6fed776
--- /dev/null
+++ b/linux-user/tile/target_structs.h
@@ -0,0 +1,48 @@
+/*
+ * Tile specific structures for linux-user
+ *
+ * Copyright (c) 2015 Chen Gang
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef TARGET_STRUCTS_H
+#define TARGET_STRUCTS_H
+
+struct target_ipc_perm {
+ abi_int __key; /* Key. */
+ abi_uint uid; /* Owner's user ID. */
+ abi_uint gid; /* Owner's group ID. */
+ abi_uint cuid; /* Creator's user ID. */
+ abi_uint cgid; /* Creator's group ID. */
+ abi_uint mode; /* Read/write permission. */
+ abi_ushort __seq; /* Sequence number. */
+ abi_ushort __pad2;
+ abi_ulong __unused1;
+ abi_ulong __unused2;
+};
+
+struct target_shmid_ds {
+ struct target_ipc_perm shm_perm; /* operation permission struct */
+ abi_long shm_segsz; /* size of segment in bytes */
+ abi_ulong shm_atime; /* time of last shmat() */
+ abi_ulong shm_dtime; /* time of last shmdt() */
+ abi_ulong shm_ctime; /* time of last change by shmctl() */
+ abi_int shm_cpid; /* pid of creator */
+ abi_int shm_lpid; /* pid of last shmop */
+ abi_ulong shm_nattch; /* number of current attaches */
+ abi_ulong __unused4;
+ abi_ulong __unused5;
+};
+
+#endif
--
1.9.3 (Apple Git-50)
- Re: [Qemu-devel] [PATCH 1/5] target-tile: Firstly add to qemu with minimized features, (continued)
- Re: [Qemu-devel] [PATCH 1/5] target-tile: Firstly add to qemu with minimized features, Max Filippov, 2015/02/16
- Re: [Qemu-devel] [PATCH 1/5] target-tile: Firstly add to qemu with minimized features, Chen Gang S, 2015/02/16
- Re: [Qemu-devel] [PATCH 1/5] target-tile: Firstly add to qemu with minimized features, Peter Maydell, 2015/02/16
- Re: [Qemu-devel] [PATCH 1/5] target-tile: Firstly add to qemu with minimized features, Chris Metcalf, 2015/02/16
- Re: [Qemu-devel] [PATCH 1/5] target-tile: Firstly add to qemu with minimized features, Chen Gang S, 2015/02/16
- Re: [Qemu-devel] [PATCH 1/5] target-tile: Firstly add to qemu with minimized features, Chen Gang S, 2015/02/16
- Re: [Qemu-devel] [PATCH 1/5] target-tile: Firstly add to qemu with minimized features, Chen Gang S, 2015/02/16
- Re: [Qemu-devel] [PATCH 1/5] target-tile: Firstly add to qemu with minimized features, Chris Metcalf, 2015/02/16
- Re: [Qemu-devel] [PATCH 1/5] target-tile: Firstly add to qemu with minimized features, Chen Gang S, 2015/02/16
- Re: [Qemu-devel] [PATCH 1/5] target-tile: Firstly add to qemu with minimized features, Chen Gang S, 2015/02/14
[Qemu-devel] [PATCH 3/5] linux-user: tile: Add target features support within qemu,
Chen Gang S <=
[Qemu-devel] [PATCH 4/5] linux-user: Support tile architecture in syscall, Chen Gang S, 2015/02/12
[Qemu-devel] [PATCH 5/5] linux-user: Support tile architecture in linux-user, Chen Gang S, 2015/02/12