qemu/linux-user/i386
Paolo Bonzini 40a205da41 target/i386: emulate 64-bit ring 0 for linux-user if LM feature is set
32-bit binaries can run on a long mode processor even if the kernel
is 64-bit, of course, and this can have slightly different behavior;
for example, SYSCALL is allowed on Intel processors.

Allow reporting LM to programs running under user mode emulation,
so that "-cpu" can be used with named CPU models even for qemu-i386
and even without disabling LM by hand.

Fortunately, most of the runtime code in QEMU has to depend on HF_LMA_MASK
or on HF_CS64_MASK (which is anyway false for qemu-i386's 32-bit code
segment) rather than TARGET_X86_64, therefore all that is needed is an
update of linux-user's ring 0 setup.

Fixes: https://gitlab.com/qemu-project/qemu/-/issues/1534
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2023-06-29 10:49:43 +02:00
..
cpu_loop.c target/i386: emulate 64-bit ring 0 for linux-user if LM feature is set 2023-06-29 10:49:43 +02:00
meson.build meson: linux-user 2020-08-21 06:30:38 -04:00
signal.c linux-user: i386/signal: support XSAVE/XRSTOR for signal frame fpstate 2022-10-11 10:27:35 +02:00
sockbits.h linux-user: move socket.h generic definitions to generic/sockbits.h 2018-05-25 10:10:55 +02:00
syscall_32.tbl linux-user: update syscall.tbl to Linux v5.13 2021-07-13 13:59:59 +02:00
syscall_nr.h meson: linux-user 2020-08-21 06:30:38 -04:00
syscallhdr.sh linux-user, i386: add syscall table generation support 2020-03-20 16:02:00 +01:00
target_cpu.h linux user: Fix Lesser GPL version number 2020-11-15 16:41:26 +01:00
target_elf.h linux-user: use 'max' instead of 'qemu32' / 'qemu64' by default 2022-09-23 14:04:17 +02:00
target_errno_defs.h linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
target_fcntl.h linux-user: move generic fcntl definitions to generic/fcntl.h 2018-06-04 01:30:43 +02:00
target_mman.h linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
target_prctl.h linux-user: Split out do_prctl and subroutines 2022-01-06 11:40:52 +01:00
target_resource.h linux-user: Move generic TARGET_RLIMIT* definitions to generic/target_resource.h 2022-02-01 08:01:38 +01:00
target_signal.h linux-user: Move target_signal.h generic definitions to generic/signal.h 2022-01-06 11:40:52 +01:00
target_structs.h linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
target_syscall.h linux-user: target_syscall.h remove definition TARGET_MINSIGSTKSZ 2022-01-06 11:40:52 +01:00
termbits.h linux-user: Add generic 'termbits.h' for some archs 2020-08-27 12:29:50 +02:00