[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v1 1/7] lib: Add a generic implementation of current_text_addr()
Remove the unused x86 implementation. Signed-off-by: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx> --- xen/common/lib.c | 12 ++++++++++++ xen/include/asm-x86/processor.h | 10 ---------- xen/include/xen/lib.h | 2 ++ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/xen/common/lib.c b/xen/common/lib.c index ae0bbb3..fdcead8 100644 --- a/xen/common/lib.c +++ b/xen/common/lib.c @@ -499,6 +499,18 @@ void __init init_constructors(void) } /* + * The GCC docs state that the function must be marked noinline to have the + * expected result: + * "When inlining the expected behavior is that the function returns the + * address of the function that is returned to. To work around this behavior + * use the noinline function attribute." + */ +noinline void *current_text_addr(void) +{ + return __builtin_return_address(0); +} + +/* * Local variables: * mode: C * c-file-style: "BSD" diff --git a/xen/include/asm-x86/processor.h b/xen/include/asm-x86/processor.h index 37ac9e4..bca1267 100644 --- a/xen/include/asm-x86/processor.h +++ b/xen/include/asm-x86/processor.h @@ -160,16 +160,6 @@ struct domain; struct vcpu; -/* - * Default implementation of macro that returns current - * instruction pointer ("program counter"). - */ -#define current_text_addr() ({ \ - void *pc; \ - asm ( "leaq 1f(%%rip),%0\n1:" : "=r" (pc) ); \ - pc; \ -}) - struct x86_cpu_id { uint16_t vendor; uint16_t family; diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h index 1c652bb..25e01f1 100644 --- a/xen/include/xen/lib.h +++ b/xen/include/xen/lib.h @@ -152,4 +152,6 @@ void dump_execstate(struct cpu_user_regs *); void init_constructors(void); +void *current_text_addr(void); + #endif /* __LIB_H__ */ -- 2.4.3 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |