diff mbox series

[09/24] user: Declare get_task_state() once in 'accel/tcg/vcpu-state.h'

Message ID 20240428221450.26460-10-philmd@linaro.org (mailing list archive)
State New, archived
Headers show
Series exec: Rework around CPUState user fields (part 2) | expand

Commit Message

Philippe Mathieu-Daudé April 28, 2024, 10:14 p.m. UTC
While each user emulation implentation defines its own
TaskState structure, both use the same get_task_state()
declaration, in particular in common code (such gdbstub).
Declare the method once in "accel/tcg/vcpu-state.h".

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 accel/tcg/vcpu-state.h | 18 ++++++++++++++++++
 bsd-user/qemu.h        |  6 +-----
 linux-user/qemu.h      |  6 +-----
 3 files changed, 20 insertions(+), 10 deletions(-)
 create mode 100644 accel/tcg/vcpu-state.h

Comments

Richard Henderson April 29, 2024, 1:19 a.m. UTC | #1
On 4/28/24 15:14, Philippe Mathieu-Daudé wrote:
> While each user emulation implentation defines its own
> TaskState structure, both use the same get_task_state()
> declaration, in particular in common code (such gdbstub).
> Declare the method once in "accel/tcg/vcpu-state.h".
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   accel/tcg/vcpu-state.h | 18 ++++++++++++++++++
>   bsd-user/qemu.h        |  6 +-----
>   linux-user/qemu.h      |  6 +-----
>   3 files changed, 20 insertions(+), 10 deletions(-)
>   create mode 100644 accel/tcg/vcpu-state.h

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~

> 
> diff --git a/accel/tcg/vcpu-state.h b/accel/tcg/vcpu-state.h
> new file mode 100644
> index 0000000000..e407d914df
> --- /dev/null
> +++ b/accel/tcg/vcpu-state.h
> @@ -0,0 +1,18 @@
> +/*
> + * SPDX-FileContributor: Philippe Mathieu-Daudé <philmd@linaro.org>
> + * SPDX-FileCopyrightText: 2023 Linaro Ltd.
> + * SPDX-License-Identifier: GPL-2.0-or-later
> + */
> +#ifndef ACCEL_TCG_VCPU_STATE_H
> +#define ACCEL_TCG_VCPU_STATE_H
> +
> +#include "hw/core/cpu.h"
> +
> +#ifdef CONFIG_USER_ONLY
> +static inline TaskState *get_task_state(const CPUState *cs)
> +{
> +    return cs->opaque;
> +}
> +#endif
> +
> +#endif
> diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
> index be57374b41..65fe95fed1 100644
> --- a/bsd-user/qemu.h
> +++ b/bsd-user/qemu.h
> @@ -36,6 +36,7 @@ extern char **environ;
>   #include "exec/gdbstub.h"
>   #include "exec/page-protection.h"
>   #include "qemu/clang-tsa.h"
> +#include "accel/tcg/vcpu-state.h"
>   
>   #include "qemu-os.h"
>   /*
> @@ -116,11 +117,6 @@ struct TaskState {
>       struct target_sigaltstack sigaltstack_used;
>   } __attribute__((aligned(16)));
>   
> -static inline TaskState *get_task_state(CPUState *cs)
> -{
> -    return cs->opaque;
> -}
> -
>   void stop_all_tasks(void);
>   extern const char *interp_prefix;
>   extern const char *qemu_uname_release;
> diff --git a/linux-user/qemu.h b/linux-user/qemu.h
> index 16d9f6ae8c..515af82d8b 100644
> --- a/linux-user/qemu.h
> +++ b/linux-user/qemu.h
> @@ -8,6 +8,7 @@
>   
>   #include "syscall_defs.h"
>   #include "target_syscall.h"
> +#include "accel/tcg/vcpu-state.h"
>   
>   /*
>    * This is the size of the host kernel's sigset_t, needed where we make
> @@ -160,11 +161,6 @@ struct TaskState {
>       uint64_t start_boottime;
>   };
>   
> -static inline TaskState *get_task_state(CPUState *cs)
> -{
> -    return cs->opaque;
> -}
> -
>   abi_long do_brk(abi_ulong new_brk);
>   int do_guest_openat(CPUArchState *cpu_env, int dirfd, const char *pathname,
>                       int flags, mode_t mode, bool safe);
diff mbox series

Patch

diff --git a/accel/tcg/vcpu-state.h b/accel/tcg/vcpu-state.h
new file mode 100644
index 0000000000..e407d914df
--- /dev/null
+++ b/accel/tcg/vcpu-state.h
@@ -0,0 +1,18 @@ 
+/*
+ * SPDX-FileContributor: Philippe Mathieu-Daudé <philmd@linaro.org>
+ * SPDX-FileCopyrightText: 2023 Linaro Ltd.
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+#ifndef ACCEL_TCG_VCPU_STATE_H
+#define ACCEL_TCG_VCPU_STATE_H
+
+#include "hw/core/cpu.h"
+
+#ifdef CONFIG_USER_ONLY
+static inline TaskState *get_task_state(const CPUState *cs)
+{
+    return cs->opaque;
+}
+#endif
+
+#endif
diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
index be57374b41..65fe95fed1 100644
--- a/bsd-user/qemu.h
+++ b/bsd-user/qemu.h
@@ -36,6 +36,7 @@  extern char **environ;
 #include "exec/gdbstub.h"
 #include "exec/page-protection.h"
 #include "qemu/clang-tsa.h"
+#include "accel/tcg/vcpu-state.h"
 
 #include "qemu-os.h"
 /*
@@ -116,11 +117,6 @@  struct TaskState {
     struct target_sigaltstack sigaltstack_used;
 } __attribute__((aligned(16)));
 
-static inline TaskState *get_task_state(CPUState *cs)
-{
-    return cs->opaque;
-}
-
 void stop_all_tasks(void);
 extern const char *interp_prefix;
 extern const char *qemu_uname_release;
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
index 16d9f6ae8c..515af82d8b 100644
--- a/linux-user/qemu.h
+++ b/linux-user/qemu.h
@@ -8,6 +8,7 @@ 
 
 #include "syscall_defs.h"
 #include "target_syscall.h"
+#include "accel/tcg/vcpu-state.h"
 
 /*
  * This is the size of the host kernel's sigset_t, needed where we make
@@ -160,11 +161,6 @@  struct TaskState {
     uint64_t start_boottime;
 };
 
-static inline TaskState *get_task_state(CPUState *cs)
-{
-    return cs->opaque;
-}
-
 abi_long do_brk(abi_ulong new_brk);
 int do_guest_openat(CPUArchState *cpu_env, int dirfd, const char *pathname,
                     int flags, mode_t mode, bool safe);