2004-09-23 01:18:57

by Jeff Dike

[permalink] [raw]
Subject: [PATCH] UML - Implement current_text_addr

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[email protected]>
Signed-off-by: Jeff Dike <[email protected]>

Index: linux-2.6.9-rc2-mm1-orig/include/asm-um/processor-generic.h
===================================================================
--- linux-2.6.9-rc2-mm1-orig.orig/include/asm-um/processor-generic.h 2004-09-22 19:51:02.000000000 -0400
+++ linux-2.6.9-rc2-mm1-orig/include/asm-um/processor-generic.h 2004-09-22 20:29:01.000000000 -0400
@@ -16,8 +16,6 @@

struct mm_struct;

-#define current_text_addr() ((void *) 0)
-
#define cpu_relax() barrier()

struct thread_struct {
Index: linux-2.6.9-rc2-mm1-orig/include/asm-um/processor-i386.h
===================================================================
--- linux-2.6.9-rc2-mm1-orig.orig/include/asm-um/processor-i386.h 2004-09-22 19:51:02.000000000 -0400
+++ linux-2.6.9-rc2-mm1-orig/include/asm-um/processor-i386.h 2004-09-22 20:29:01.000000000 -0400
@@ -19,6 +19,13 @@

#include "asm/arch/user.h"

+/*
+ * Default implementation of macro that returns current
+ * instruction pointer ("program counter"). Stolen
+ * from asm-i386/processor.h
+ */
+#define current_text_addr() ({ void *pc; __asm__("movl $1f,%0\n1:":"=g" (pc)); pc; })
+
#include "asm/processor-generic.h"

#endif