[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v14 4/5] linux-user: Introduce TARGET_HAVE_ARCH_
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-devel] [PATCH v14 4/5] linux-user: Introduce TARGET_HAVE_ARCH_STRUCT_FLOCK |
Date: |
Thu, 27 Jun 2019 19:11:02 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 |
Le 27/06/2019 à 17:31, Aleksandar Markovic a écrit :
> From: Aleksandar Markovic <address@hidden>
>
> Bring target_flock definitions to be more in sync with the way
> flock is defined in kernel.
>
> Basically, the rules from the kernel are:
>
> 1. Majority of architectures have a common flock definition.
>
> 2. Architectures with 32-bit MIPS ABIs have a sligtly different
> flock definition; those architectures are the only arcitectures
> that have HAVE_ARCH_STRUCT_FLOCK defined, and that preprocessor
> constant is used in the common header as a flag for including or
> not including common flock definition.
>
> 3. Sparc architectures also have a sligtly different flock
> definition, but the difference is only the padding at the end of
> the structure. The presence of that padding is determined by
> preprocessor constants __ARCH_FLOCK6_PAD and __ARCH_FLOCK64_PAD.
>
> QEMU linux-user already implements rules 1. and 3. in a very
> similar way as they are implemented in kernel. However, rule 2.
> is implemented in a dissimilar way (for example, the constant
> TARGET_HAVE_ARCH_STRUCT_FLOCK is missing), and this patch brings
> QEMU implementation much closer to the kernel implementation.
> TARGET_HAVE_ARCH_STRUCT_FLOCK64 constant is also introduced to
> mimic HAVE_ARCH_STRUCT_FLOCK64 from kernel, but it is not defined
> anywhere, however, this is the case with HAVE_ARCH_STRUCT_FLOCK64
> in kernel as well.
>
> Signed-off-by: Aleksandar Markovic <address@hidden>
> ---
> linux-user/generic/fcntl.h | 8 +++++---
> linux-user/mips/target_fcntl.h | 17 +++++++++++++----
> 2 files changed, 18 insertions(+), 7 deletions(-)
>
> diff --git a/linux-user/generic/fcntl.h b/linux-user/generic/fcntl.h
> index 1b48dde..9f727d4 100644
> --- a/linux-user/generic/fcntl.h
> +++ b/linux-user/generic/fcntl.h
> @@ -120,6 +120,7 @@ struct target_f_owner_ex {
> #define TARGET_F_SHLCK 8
> #endif
>
> +#ifndef TARGET_HAVE_ARCH_STRUCT_FLOCK
> #ifndef TARGET_ARCH_FLOCK_PAD
> #define TARGET_ARCH_FLOCK_PAD
> #endif
> @@ -129,13 +130,12 @@ struct target_flock {
> short l_whence;
> abi_long l_start;
> abi_long l_len;
> -#if defined(TARGET_MIPS) && (TARGET_ABI_BITS == 32)
> - abi_long l_sysid;
> -#endif
> int l_pid;
> TARGET_ARCH_FLOCK_PAD
> };
> +#endif
>
> +#ifndef TARGET_HAVE_ARCH_STRUCT_FLOCK64
> #ifndef TARGET_ARCH_FLOCK64_PAD
> #define TARGET_ARCH_FLOCK64_PAD
> #endif
> @@ -149,3 +149,5 @@ struct target_flock64 {
> TARGET_ARCH_FLOCK64_PAD
> };
> #endif
> +
> +#endif
> diff --git a/linux-user/mips/target_fcntl.h b/linux-user/mips/target_fcntl.h
> index 795bba7..6fc7b8a 100644
> --- a/linux-user/mips/target_fcntl.h
> +++ b/linux-user/mips/target_fcntl.h
> @@ -28,11 +28,20 @@
> #define TARGET_F_GETOWN 23 /* for sockets. */
>
> #if (TARGET_ABI_BITS == 32)
> -#define TARGET_ARCH_FLOCK_PAD abi_long pad[4];
> -#else
> -#define TARGET_ARCH_FLOCK_PAD
> +
> +struct target_flock {
> + short l_type;
> + short l_whence;
> + abi_long l_start;
> + abi_long l_len;
> + abi_long l_sysid;
> + int l_pid;
> + abi_long pad[4];
> +};
> +
> +#define TARGET_HAVE_ARCH_STRUCT_FLOCK
> +
> #endif
> -#define TARGET_ARCH_FLOCK64_PAD
>
> #define TARGET_F_GETLK64 33 /* using 'struct flock64' */
> #define TARGET_F_SETLK64 34
>
Reviewed-by: Laurent Vivier <address@hidden>
- [Qemu-devel] [PATCH v14 0/5] linux-user: A set of miscellaneous patches, Aleksandar Markovic, 2019/06/27
- [Qemu-devel] [PATCH v14 2/5] linux-user: Add support for strace for statx() syscall, Aleksandar Markovic, 2019/06/27
- [Qemu-devel] [PATCH v14 1/5] linux-user: Add support for translation of statx() syscall, Aleksandar Markovic, 2019/06/27
- [Qemu-devel] [PATCH v14 4/5] linux-user: Introduce TARGET_HAVE_ARCH_STRUCT_FLOCK, Aleksandar Markovic, 2019/06/27
- Re: [Qemu-devel] [PATCH v14 4/5] linux-user: Introduce TARGET_HAVE_ARCH_STRUCT_FLOCK,
Laurent Vivier <=
- [Qemu-devel] [PATCH v14 5/5] linux-user: Handle EXCP_FPE properly for MIPS, Aleksandar Markovic, 2019/06/27
- [Qemu-devel] [PATCH v14 3/5] linux-user: Fix flock structure for MIPS O64 ABI, Aleksandar Markovic, 2019/06/27
- Re: [Qemu-devel] [PATCH v14 0/5] linux-user: A set of miscellaneous patches, no-reply, 2019/06/27
- Re: [Qemu-devel] [PATCH v14 0/5] linux-user: A set of miscellaneous patches, no-reply, 2019/06/27