linux-user/i386: Create target_ptrace.h

Remove the target_pt_regs structure from target_syscall.h.
Add target_user_regs_struct to target_ptrace.h, which is
what is actually used by ELF_CORE_COPY_REGS; the layout
of the two structure definitions is identical.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2025-08-28 14:19:04 +10:00
parent 4540a4e604
commit c47407ef2f
2 changed files with 32 additions and 18 deletions

View file

@ -0,0 +1,32 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#ifndef I386_TARGET_PTRACE_H
#define I386_TARGET_PTRACE_H
/*
* Note that arch/x86/include/uapi/asm/ptrace.h (struct pt_regs) and
* arch/x86/include/asm/user_32.h (struct user_regs_struct) have the
* same layout, though the exact types differ (int vs long vs unsigned).
* Define user_regs_struct because that's what's actually used.
*/
struct target_user_regs_struct {
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 */

View file

@ -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;
};
/* ioctls */
#define TARGET_LDT_ENTRIES 8192