diff options
Diffstat (limited to 'arch/x86/um/asm/processor_64.h')
| -rw-r--r-- | arch/x86/um/asm/processor_64.h | 40 | 
1 files changed, 40 insertions, 0 deletions
diff --git a/arch/x86/um/asm/processor_64.h b/arch/x86/um/asm/processor_64.h new file mode 100644 index 00000000000..c3be85205a6 --- /dev/null +++ b/arch/x86/um/asm/processor_64.h @@ -0,0 +1,40 @@ +/* + * Copyright 2003 PathScale, Inc. + * + * Licensed under the GPL + */ + +#ifndef __UM_PROCESSOR_X86_64_H +#define __UM_PROCESSOR_X86_64_H + +struct arch_thread { +        unsigned long debugregs[8]; +        int debugregs_seq; +        unsigned long fs; +        struct faultinfo faultinfo; +}; + +#define INIT_ARCH_THREAD { .debugregs  		= { [ 0 ... 7 ] = 0 }, \ +			   .debugregs_seq	= 0, \ +			   .fs			= 0, \ +			   .faultinfo		= { 0, 0, 0 } } + +#define STACKSLOTS_PER_LINE 4 + +static inline void arch_flush_thread(struct arch_thread *thread) +{ +} + +static inline void arch_copy_thread(struct arch_thread *from, +                                    struct arch_thread *to) +{ +	to->fs = from->fs; +} + +#define current_text_addr() \ +	({ void *pc; __asm__("movq $1f,%0\n1:":"=g" (pc)); pc; }) + +#define current_sp() ({ void *sp; __asm__("movq %%rsp, %0" : "=r" (sp) : ); sp; }) +#define current_bp() ({ unsigned long bp; __asm__("movq %%rbp, %0" : "=r" (bp) : ); bp; }) + +#endif  | 
