On Thu, 28 Aug 2025 at 13:09, Richard Henderson <richard.hender...@linaro.org> wrote: > > Move the target_pt_regs structure from target_syscall.h. > Rename the bits according to user_regs_struct, which is > what is actually used by ELF_CORE_COPY_REGS; the layout > of the two structure definitions is identical. > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > linux-user/i386/target_ptrace.h | 31 +++++++++++++++++++++++++++++++ > linux-user/i386/target_syscall.h | 18 ------------------ > 2 files changed, 31 insertions(+), 18 deletions(-) > create mode 100644 linux-user/i386/target_ptrace.h > > diff --git a/linux-user/i386/target_ptrace.h b/linux-user/i386/target_ptrace.h > new file mode 100644 > index 0000000000..51edb637af > --- /dev/null > +++ b/linux-user/i386/target_ptrace.h > @@ -0,0 +1,31 @@ > +/* SPDX-License-Identifier: GPL-2.0-or-later */ > + > +#ifndef I386_TARGET_PTRACE_H > +#define I386_TARGET_PTRACE_H > + > +/* > + * Compare linux arch/x86/include/uapi/asm/ptrace.h (struct pt_regs) and > + * arch/x86/include/asm/user_32.h (struct user_regs_struct). > + * The structure layouts are identical; the user_regs_struct names are > better. > + */
Why do you think the user_regs_struct names are better? "bx" suggests a 16-bit register, but these are 32-bit, right? > +struct target_pt_regs { > + abi_ulong bx; > + abi_ulong cx; > + abi_ulong dx; > + abi_ulong si; > + abi_ulong di; > + abi_ulong bp; > + abi_ulong ax; > + abi_ulong ds; > + abi_ulong es; > + abi_ulong fs; > + abi_ulong gs; > + abi_ulong orig_ax; > + abi_ulong ip; > + abi_ulong cs; > + abi_ulong flags; > + abi_ulong sp; > + abi_ulong ss; > +}; > + > +#endif /* I386_TARGET_PTRACE_H */ > diff --git a/linux-user/i386/target_syscall.h > b/linux-user/i386/target_syscall.h > index aaade06b13..c214a909a6 100644 > --- a/linux-user/i386/target_syscall.h > +++ b/linux-user/i386/target_syscall.h > @@ -5,24 +5,6 @@ > #define __USER_CS (0x23) > #define __USER_DS (0x2B) > > -struct target_pt_regs { > - long ebx; > - long ecx; > - long edx; > - long esi; > - long edi; > - long ebp; > - long eax; > - int xds; > - int xes; > - long orig_eax; > - long eip; > - int xcs; > - long eflags; > - long esp; > - int xss; > -}; Commit message should say something about why we're changing the types (though clearly here the target-specific types are more sensible than the host-specific ones). -- PMM