Commit 18baddda authored by Jeff Dike's avatar Jeff Dike Committed by Linus Torvalds
Browse files

uml: rename pt_regs general-purpose register file



Before the removal of tt mode, access to a register on the skas-mode side of a
pt_regs struct looked like pt_regs.regs.skas.regs.regs[FOO].  This was bad
enough, but it became pt_regs.regs.regs.regs[FOO] with the removal of the
union from the middle.  To get rid of the run of three "regs", the last field
is renamed to "gp".

Signed-off-by: default avatarJeff Dike <jdike@linux.intel.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 6c738ffa
Loading
Loading
Loading
Loading
+18 −18
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ extern int sysemu_supported;
#endif

struct uml_pt_regs {
	unsigned long regs[MAX_REG_NR];
	unsigned long gp[MAX_REG_NR];
	unsigned long fp[HOST_FP_SIZE];
	unsigned long xfp[HOST_XFP_SIZE];
	struct faultinfo faultinfo;
@@ -63,23 +63,23 @@ struct uml_pt_regs {

#define EMPTY_UML_PT_REGS { }

#define UPT_IP(r) REGS_IP((r)->regs)
#define UPT_SP(r) REGS_SP((r)->regs)
#define UPT_EFLAGS(r) REGS_EFLAGS((r)->regs)
#define UPT_EAX(r) REGS_EAX((r)->regs)
#define UPT_EBX(r) REGS_EBX((r)->regs)
#define UPT_ECX(r) REGS_ECX((r)->regs)
#define UPT_EDX(r) REGS_EDX((r)->regs)
#define UPT_ESI(r) REGS_ESI((r)->regs)
#define UPT_EDI(r) REGS_EDI((r)->regs)
#define UPT_EBP(r) REGS_EBP((r)->regs)
#define UPT_IP(r) REGS_IP((r)->gp)
#define UPT_SP(r) REGS_SP((r)->gp)
#define UPT_EFLAGS(r) REGS_EFLAGS((r)->gp)
#define UPT_EAX(r) REGS_EAX((r)->gp)
#define UPT_EBX(r) REGS_EBX((r)->gp)
#define UPT_ECX(r) REGS_ECX((r)->gp)
#define UPT_EDX(r) REGS_EDX((r)->gp)
#define UPT_ESI(r) REGS_ESI((r)->gp)
#define UPT_EDI(r) REGS_EDI((r)->gp)
#define UPT_EBP(r) REGS_EBP((r)->gp)
#define UPT_ORIG_EAX(r) ((r)->syscall)
#define UPT_CS(r) REGS_CS((r)->regs)
#define UPT_SS(r) REGS_SS((r)->regs)
#define UPT_DS(r) REGS_DS((r)->regs)
#define UPT_ES(r) REGS_ES((r)->regs)
#define UPT_FS(r) REGS_FS((r)->regs)
#define UPT_GS(r) REGS_GS((r)->regs)
#define UPT_CS(r) REGS_CS((r)->gp)
#define UPT_SS(r) REGS_SS((r)->gp)
#define UPT_DS(r) REGS_DS((r)->gp)
#define UPT_ES(r) REGS_ES((r)->gp)
#define UPT_FS(r) REGS_FS((r)->gp)
#define UPT_GS(r) REGS_GS((r)->gp)

#define UPT_SYSCALL_ARG1(r) UPT_EBX(r)
#define UPT_SYSCALL_ARG2(r) UPT_ECX(r)
@@ -161,7 +161,7 @@ struct syscall_args {
#define UPT_SET_SYSCALL_RETURN(r, res) \
	REGS_SET_SYSCALL_RETURN((r)->regs, (res))

#define UPT_RESTART_SYSCALL(r) REGS_RESTART_SYSCALL((r)->regs)
#define UPT_RESTART_SYSCALL(r) REGS_RESTART_SYSCALL((r)->gp)

#define UPT_ORIG_SYSCALL(r) UPT_EAX(r)
#define UPT_SYSCALL_NR(r) UPT_ORIG_EAX(r)
+32 −32
Original line number Diff line number Diff line
@@ -85,7 +85,7 @@
#define REGS_ERR(r) ((r)->fault_type)

struct uml_pt_regs {
	unsigned long regs[MAX_REG_NR];
	unsigned long gp[MAX_REG_NR];
	unsigned long fp[HOST_FP_SIZE];
	struct faultinfo faultinfo;
	long syscall;
@@ -94,36 +94,36 @@ struct uml_pt_regs {

#define EMPTY_UML_PT_REGS { }

#define UPT_RBX(r) REGS_RBX((r)->regs)
#define UPT_RCX(r) REGS_RCX((r)->regs)
#define UPT_RDX(r) REGS_RDX((r)->regs)
#define UPT_RSI(r) REGS_RSI((r)->regs)
#define UPT_RDI(r) REGS_RDI((r)->regs)
#define UPT_RBP(r) REGS_RBP((r)->regs)
#define UPT_RAX(r) REGS_RAX((r)->regs)
#define UPT_R8(r) REGS_R8((r)->regs)
#define UPT_R9(r) REGS_R9((r)->regs)
#define UPT_R10(r) REGS_R10((r)->regs)
#define UPT_R11(r) REGS_R11((r)->regs)
#define UPT_R12(r) REGS_R12((r)->regs)
#define UPT_R13(r) REGS_R13((r)->regs)
#define UPT_R14(r) REGS_R14((r)->regs)
#define UPT_R15(r) REGS_R15((r)->regs)
#define UPT_CS(r) REGS_CS((r)->regs)
#define UPT_FS_BASE(r) REGS_FS_BASE((r)->regs)
#define UPT_FS(r) REGS_FS((r)->regs)
#define UPT_GS_BASE(r) REGS_GS_BASE((r)->regs)
#define UPT_GS(r) REGS_GS((r)->regs)
#define UPT_DS(r) REGS_DS((r)->regs)
#define UPT_ES(r) REGS_ES((r)->regs)
#define UPT_CS(r) REGS_CS((r)->regs)
#define UPT_SS(r) REGS_SS((r)->regs)
#define UPT_ORIG_RAX(r) REGS_ORIG_RAX((r)->regs)

#define UPT_IP(r) REGS_IP((r)->regs)
#define UPT_SP(r) REGS_SP((r)->regs)

#define UPT_EFLAGS(r) REGS_EFLAGS((r)->regs)
#define UPT_RBX(r) REGS_RBX((r)->gp)
#define UPT_RCX(r) REGS_RCX((r)->gp)
#define UPT_RDX(r) REGS_RDX((r)->gp)
#define UPT_RSI(r) REGS_RSI((r)->gp)
#define UPT_RDI(r) REGS_RDI((r)->gp)
#define UPT_RBP(r) REGS_RBP((r)->gp)
#define UPT_RAX(r) REGS_RAX((r)->gp)
#define UPT_R8(r) REGS_R8((r)->gp)
#define UPT_R9(r) REGS_R9((r)->gp)
#define UPT_R10(r) REGS_R10((r)->gp)
#define UPT_R11(r) REGS_R11((r)->gp)
#define UPT_R12(r) REGS_R12((r)->gp)
#define UPT_R13(r) REGS_R13((r)->gp)
#define UPT_R14(r) REGS_R14((r)->gp)
#define UPT_R15(r) REGS_R15((r)->gp)
#define UPT_CS(r) REGS_CS((r)->gp)
#define UPT_FS_BASE(r) REGS_FS_BASE((r)->gp)
#define UPT_FS(r) REGS_FS((r)->gp)
#define UPT_GS_BASE(r) REGS_GS_BASE((r)->gp)
#define UPT_GS(r) REGS_GS((r)->gp)
#define UPT_DS(r) REGS_DS((r)->gp)
#define UPT_ES(r) REGS_ES((r)->gp)
#define UPT_CS(r) REGS_CS((r)->gp)
#define UPT_SS(r) REGS_SS((r)->gp)
#define UPT_ORIG_RAX(r) REGS_ORIG_RAX((r)->gp)

#define UPT_IP(r) REGS_IP((r)->gp)
#define UPT_SP(r) REGS_SP((r)->gp)

#define UPT_EFLAGS(r) REGS_EFLAGS((r)->gp)
#define UPT_SYSCALL_NR(r) ((r)->syscall)
#define UPT_SYSCALL_RET(r) UPT_RAX(r)

@@ -228,7 +228,7 @@ struct syscall_args {
#define UPT_SET_SYSCALL_RETURN(r, res) \
	REGS_SET_SYSCALL_RETURN((r)->regs, (res))

#define UPT_RESTART_SYSCALL(r) REGS_RESTART_SYSCALL((r)->regs)
#define UPT_RESTART_SYSCALL(r) REGS_RESTART_SYSCALL((r)->gp)

#define UPT_SEGV_IS_FIXABLE(r) REGS_SEGV_IS_FIXABLE(&r->skas)

+2 −2
Original line number Diff line number Diff line
@@ -201,9 +201,9 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
	if (current->thread.forking) {
	  	memcpy(&p->thread.regs.regs, &regs->regs,
		       sizeof(p->thread.regs.regs));
		REGS_SET_SYSCALL_RETURN(p->thread.regs.regs.regs, 0);
		REGS_SET_SYSCALL_RETURN(p->thread.regs.regs.gp, 0);
		if (sp != 0)
			REGS_SP(p->thread.regs.regs.regs) = sp;
			REGS_SP(p->thread.regs.regs.gp) = sp;

		handler = fork_handler;

+1 −1
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ void handle_syscall(struct uml_pt_regs *r)
		result = -ENOSYS;
	else result = EXECUTE_SYSCALL(syscall, regs);

	REGS_SET_SYSCALL_RETURN(r->regs, result);
	REGS_SET_SYSCALL_RETURN(r->gp, result);

	syscall_trace(r, 1);
}
+3 −3
Original line number Diff line number Diff line
@@ -16,14 +16,14 @@ static unsigned long exec_regs[MAX_REG_NR];

void init_thread_registers(struct uml_pt_regs *to)
{
	memcpy(to->regs, exec_regs, sizeof(to->regs));
	memcpy(to->gp, exec_regs, sizeof(to->gp));
}

void save_registers(int pid, struct uml_pt_regs *regs)
{
	int err;

	err = ptrace(PTRACE_GETREGS, pid, 0, regs->regs);
	err = ptrace(PTRACE_GETREGS, pid, 0, regs->gp);
	if (err < 0)
		panic("save_registers - saving registers failed, errno = %d\n",
		      errno);
@@ -33,7 +33,7 @@ void restore_registers(int pid, struct uml_pt_regs *regs)
{
	int err;

	err = ptrace(PTRACE_SETREGS, pid, 0, regs->regs);
	err = ptrace(PTRACE_SETREGS, pid, 0, regs->gp);
	if (err < 0)
		panic("restore_registers - saving registers failed, "
		      "errno = %d\n", errno);
Loading