Skip to contentSkip to conversation

UML - Rename pt_regs general-purpose register file

PATCH New Jeff Dike 1 participant 1 message Aug 14, 2007 User-mode Linux (UML)

lore
Share & tools
lore

Jeff Dike

author
#0 lore raw

PATCH 11/14 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".

--

 arch/um/include/sysdep-i386/ptrace.h   |   36 +++++++++---------
 arch/um/include/sysdep-x86_64/ptrace.h |   60 +++++++++++++++---------------
 arch/um/kernel/process.c               |    4 +-
 arch/um/kernel/skas/syscall.c          |    2 -
 arch/um/os-Linux/registers.c           |    6 +--
 arch/um/os-Linux/skas/process.c        |    4 +-
 arch/um/sys-i386/signal.c              |   64 ++++++++++++++++-----------------
 arch/um/sys-x86_64/signal.c            |    6 +--
 arch/um/sys-x86_64/tls.c               |    2 -
 9 files changed, 92 insertions(+), 92 deletions(-)
arch/um/include/sysdep-i386/ptrace.h +18 -18
Index: linux-2.6.22/arch/um/include/sysdep-i386/ptrace.h
===================================================================
@@ -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)
arch/um/include/sysdep-x86_64/ptrace.h +30 -30

80 lines not on this page · raw message

arch/um/kernel/process.c +2 -2
Index: linux-2.6.22/arch/um/kernel/process.c
===================================================================
@@ -201,9 +201,9 @@ int copy_thread(int nr, unsigned long cl
 	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;
 
arch/um/kernel/skas/syscall.c +1 -1
Index: linux-2.6.22/arch/um/kernel/skas/syscall.c
===================================================================
@@ -34,7 +34,7 @@ void handle_syscall(struct uml_pt_regs *
 		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);
 }
arch/um/os-Linux/registers.c +3 -3
Index: linux-2.6.22/arch/um/os-Linux/registers.c
===================================================================
@@ -16,14 +16,14 @@ static unsigned long exec_regs[MAX_REG_N
 
 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 u
 {
 	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);
arch/um/os-Linux/skas/process.c +2 -2
Index: linux-2.6.22/arch/um/os-Linux/skas/process.c
===================================================================
@@ -138,7 +138,7 @@ static void handle_trap(int pid, struct 
 	int err, status;
 
 	/* Mark this as a syscall */
-	UPT_SYSCALL_NR(regs) = PT_SYSCALL_NR(regs->regs);
+	UPT_SYSCALL_NR(regs) = PT_SYSCALL_NR(regs->gp);
 
 	if (!local_using_sysemu)
 	{
@@ -352,7 +352,7 @@ void userspace(struct uml_pt_regs *regs)
 
 			/* Avoid -ERESTARTSYS handling in host */
 			if (PT_SYSCALL_NR_OFFSET != PT_SYSCALL_RET_OFFSET)
-				PT_SYSCALL_NR(regs->regs) = -1;
+				PT_SYSCALL_NR(regs->gp) = -1;
 		}
 	}
 }
arch/um/sys-i386/signal.c +32 -32

77 lines not on this page · raw message

arch/um/sys-x86_64/signal.c +3 -3
Index: linux-2.6.22/arch/um/sys-x86_64/signal.c
===================================================================
@@ -16,7 +16,7 @@ void copy_sc(struct uml_pt_regs *regs, v
 	struct sigcontext *sc = from;
 
 #define GETREG(regs, regno, sc, regname)				\
-	(regs)->regs[(regno) / sizeof(unsigned long)] = (sc)->regname
+	(regs)->gp[(regno) / sizeof(unsigned long)] = (sc)->regname
 
 	GETREG(regs, R8, sc, r8);
 	GETREG(regs, R9, sc, r9);
@@ -47,7 +47,7 @@ static int copy_sc_from_user(struct pt_r
 	int err = 0;
 
 #define GETREG(regs, regno, sc, regname)				\
-	__get_user((regs)->regs.regs[(regno) / sizeof(unsigned long)],	\
+	__get_user((regs)->regs.gp[(regno) / sizeof(unsigned long)],	\
 		   &(sc)->regname)
 
 	err |= GETREG(regs, R8, from, r8);
@@ -86,7 +86,7 @@ static int copy_sc_to_user(struct sigcon
 	err |= __put_user(0, &to->fs);
 
 #define PUTREG(regs, regno, sc, regname)				\
-	__put_user((regs)->regs.regs[(regno) / sizeof(unsigned long)],	\
+	__put_user((regs)->regs.gp[(regno) / sizeof(unsigned long)],	\
 		   &(sc)->regname)
 
 	err |= PUTREG(regs, RDI, to, rdi);
arch/um/sys-x86_64/tls.c +1 -1
Index: linux-2.6.22/arch/um/sys-x86_64/tls.c
===================================================================
@@ -11,7 +11,7 @@ int arch_copy_tls(struct task_struct *t)
 	 * (which is argument 5, child_tid, of clone) so it can be set
 	 * during context switches.
 	 */
-	t->thread.arch.fs = t->thread.regs.regs.regs[R8 / sizeof(long)];
+	t->thread.arch.fs = t->thread.regs.regs.gp[R8 / sizeof(long)];
 
 	return 0;
 }

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel