From: Philippe Mathieu-Daudé Date: Fri, 22 Mar 2024 10:10:04 +0000 (+0100) Subject: user: Move 'abitypes.h' from 'exec/user' to 'user' X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=22879b66800d4f84ff48f151867369e76e33f9a4;p=qemu.git user: Move 'abitypes.h' from 'exec/user' to 'user' Keep all user emulation headers under the same user/ directory. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson Message-Id: <20240503125202.35667-1-philmd@linaro.org> --- diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h index 8629f0dcde..a0c1ad7efa 100644 --- a/bsd-user/qemu.h +++ b/bsd-user/qemu.h @@ -22,7 +22,7 @@ #include "exec/cpu_ldst.h" #include "exec/exec-all.h" -#include "exec/user/abitypes.h" +#include "user/abitypes.h" extern char **environ; diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h index e75ec13cd0..032c6d990e 100644 --- a/include/exec/cpu-all.h +++ b/include/exec/cpu-all.h @@ -64,7 +64,7 @@ /* MMU memory access macros */ #if defined(CONFIG_USER_ONLY) -#include "exec/user/abitypes.h" +#include "user/abitypes.h" /* * If non-zero, the guest virtual address space is a contiguous subset diff --git a/include/exec/user/abitypes.h b/include/exec/user/abitypes.h deleted file mode 100644 index 3ec1969368..0000000000 --- a/include/exec/user/abitypes.h +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef EXEC_USER_ABITYPES_H -#define EXEC_USER_ABITYPES_H - -#ifndef CONFIG_USER_ONLY -#error Cannot include this header from system emulation -#endif - -#include "exec/cpu-defs.h" -#include "exec/tswap.h" -#include "user/tswap-target.h" - -#ifdef TARGET_ABI32 -#define TARGET_ABI_BITS 32 -#else -#define TARGET_ABI_BITS TARGET_LONG_BITS -#endif - -#ifdef TARGET_M68K -#define ABI_INT_ALIGNMENT 2 -#define ABI_LONG_ALIGNMENT 2 -#define ABI_LLONG_ALIGNMENT 2 -#endif - -#ifdef TARGET_CRIS -#define ABI_SHORT_ALIGNMENT 1 -#define ABI_INT_ALIGNMENT 1 -#define ABI_LONG_ALIGNMENT 1 -#define ABI_LLONG_ALIGNMENT 1 -#endif - -#if (defined(TARGET_I386) && !defined(TARGET_X86_64)) \ - || defined(TARGET_SH4) \ - || defined(TARGET_OPENRISC) \ - || defined(TARGET_MICROBLAZE) -#define ABI_LLONG_ALIGNMENT 4 -#endif - -#ifndef ABI_SHORT_ALIGNMENT -#define ABI_SHORT_ALIGNMENT 2 -#endif -#ifndef ABI_INT_ALIGNMENT -#define ABI_INT_ALIGNMENT 4 -#endif -#ifndef ABI_LONG_ALIGNMENT -#define ABI_LONG_ALIGNMENT (TARGET_ABI_BITS / 8) -#endif -#ifndef ABI_LLONG_ALIGNMENT -#define ABI_LLONG_ALIGNMENT 8 -#endif - -typedef int16_t abi_short __attribute__ ((aligned(ABI_SHORT_ALIGNMENT))); -typedef uint16_t abi_ushort __attribute__((aligned(ABI_SHORT_ALIGNMENT))); -typedef int32_t abi_int __attribute__((aligned(ABI_INT_ALIGNMENT))); -typedef uint32_t abi_uint __attribute__((aligned(ABI_INT_ALIGNMENT))); -typedef int64_t abi_llong __attribute__((aligned(ABI_LLONG_ALIGNMENT))); -typedef uint64_t abi_ullong __attribute__((aligned(ABI_LLONG_ALIGNMENT))); - -#ifdef TARGET_ABI32 -typedef uint32_t abi_ulong __attribute__((aligned(ABI_LONG_ALIGNMENT))); -typedef int32_t abi_long __attribute__((aligned(ABI_LONG_ALIGNMENT))); -#define TARGET_ABI_FMT_lx "%08x" -#define TARGET_ABI_FMT_ld "%d" -#define TARGET_ABI_FMT_lu "%u" - -static inline abi_ulong tswapal(abi_ulong v) -{ - return tswap32(v); -} - -#else -typedef target_ulong abi_ulong __attribute__((aligned(ABI_LONG_ALIGNMENT))); -typedef target_long abi_long __attribute__((aligned(ABI_LONG_ALIGNMENT))); -#define TARGET_ABI_FMT_lx TARGET_FMT_lx -#define TARGET_ABI_FMT_ld TARGET_FMT_ld -#define TARGET_ABI_FMT_lu TARGET_FMT_lu -/* for consistency, define ABI32 too */ -#if TARGET_ABI_BITS == 32 -#define TARGET_ABI32 1 -#endif - -static inline abi_ulong tswapal(abi_ulong v) -{ - return tswapl(v); -} - -#endif -#endif diff --git a/include/exec/user/thunk.h b/include/exec/user/thunk.h index 2ebfecf58e..9f35c888f9 100644 --- a/include/exec/user/thunk.h +++ b/include/exec/user/thunk.h @@ -21,7 +21,7 @@ #define THUNK_H #include "cpu.h" -#include "exec/user/abitypes.h" +#include "user/abitypes.h" /* types enums definitions */ diff --git a/include/user/abitypes.h b/include/user/abitypes.h new file mode 100644 index 0000000000..5c9a955631 --- /dev/null +++ b/include/user/abitypes.h @@ -0,0 +1,87 @@ +#ifndef USER_ABITYPES_H +#define USER_ABITYPES_H + +#ifndef CONFIG_USER_ONLY +#error Cannot include this header from system emulation +#endif + +#include "exec/cpu-defs.h" +#include "exec/tswap.h" +#include "user/tswap-target.h" + +#ifdef TARGET_ABI32 +#define TARGET_ABI_BITS 32 +#else +#define TARGET_ABI_BITS TARGET_LONG_BITS +#endif + +#ifdef TARGET_M68K +#define ABI_INT_ALIGNMENT 2 +#define ABI_LONG_ALIGNMENT 2 +#define ABI_LLONG_ALIGNMENT 2 +#endif + +#ifdef TARGET_CRIS +#define ABI_SHORT_ALIGNMENT 1 +#define ABI_INT_ALIGNMENT 1 +#define ABI_LONG_ALIGNMENT 1 +#define ABI_LLONG_ALIGNMENT 1 +#endif + +#if (defined(TARGET_I386) && !defined(TARGET_X86_64)) \ + || defined(TARGET_SH4) \ + || defined(TARGET_OPENRISC) \ + || defined(TARGET_MICROBLAZE) +#define ABI_LLONG_ALIGNMENT 4 +#endif + +#ifndef ABI_SHORT_ALIGNMENT +#define ABI_SHORT_ALIGNMENT 2 +#endif +#ifndef ABI_INT_ALIGNMENT +#define ABI_INT_ALIGNMENT 4 +#endif +#ifndef ABI_LONG_ALIGNMENT +#define ABI_LONG_ALIGNMENT (TARGET_ABI_BITS / 8) +#endif +#ifndef ABI_LLONG_ALIGNMENT +#define ABI_LLONG_ALIGNMENT 8 +#endif + +typedef int16_t abi_short __attribute__ ((aligned(ABI_SHORT_ALIGNMENT))); +typedef uint16_t abi_ushort __attribute__((aligned(ABI_SHORT_ALIGNMENT))); +typedef int32_t abi_int __attribute__((aligned(ABI_INT_ALIGNMENT))); +typedef uint32_t abi_uint __attribute__((aligned(ABI_INT_ALIGNMENT))); +typedef int64_t abi_llong __attribute__((aligned(ABI_LLONG_ALIGNMENT))); +typedef uint64_t abi_ullong __attribute__((aligned(ABI_LLONG_ALIGNMENT))); + +#ifdef TARGET_ABI32 +typedef uint32_t abi_ulong __attribute__((aligned(ABI_LONG_ALIGNMENT))); +typedef int32_t abi_long __attribute__((aligned(ABI_LONG_ALIGNMENT))); +#define TARGET_ABI_FMT_lx "%08x" +#define TARGET_ABI_FMT_ld "%d" +#define TARGET_ABI_FMT_lu "%u" + +static inline abi_ulong tswapal(abi_ulong v) +{ + return tswap32(v); +} + +#else +typedef target_ulong abi_ulong __attribute__((aligned(ABI_LONG_ALIGNMENT))); +typedef target_long abi_long __attribute__((aligned(ABI_LONG_ALIGNMENT))); +#define TARGET_ABI_FMT_lx TARGET_FMT_lx +#define TARGET_ABI_FMT_ld TARGET_FMT_ld +#define TARGET_ABI_FMT_lu TARGET_FMT_lu +/* for consistency, define ABI32 too */ +#if TARGET_ABI_BITS == 32 +#define TARGET_ABI32 1 +#endif + +static inline abi_ulong tswapal(abi_ulong v) +{ + return tswapl(v); +} + +#endif +#endif diff --git a/include/user/syscall-trace.h b/include/user/syscall-trace.h index b48b2b2d0a..9bd7ca19c8 100644 --- a/include/user/syscall-trace.h +++ b/include/user/syscall-trace.h @@ -10,7 +10,7 @@ #ifndef SYSCALL_TRACE_H #define SYSCALL_TRACE_H -#include "exec/user/abitypes.h" +#include "user/abitypes.h" #include "gdbstub/user.h" #include "qemu/plugin.h" #include "trace/trace-root.h" diff --git a/linux-user/qemu.h b/linux-user/qemu.h index 4777856b52..263f445ff1 100644 --- a/linux-user/qemu.h +++ b/linux-user/qemu.h @@ -4,7 +4,7 @@ #include "cpu.h" #include "exec/cpu_ldst.h" -#include "exec/user/abitypes.h" +#include "user/abitypes.h" #include "syscall_defs.h" #include "target_syscall.h"