[PATCH] xen: x86: add macro for debugreg
Add 2 macros to set and get debugreg on x86. This is useful for Xen because it will need only to redefine each macro to a hypervisor call. Signed-off-by: Vincent Hanquez <vincent.hanquez@cl.cam.ac.uk> Cc: Ian Pratt <m+Ian.Pratt@cl.cam.ac.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
701067c466
commit
f5012310e3
1 changed files with 9 additions and 5 deletions
|
@ -501,12 +501,16 @@ static inline void load_esp0(struct tss_struct *tss, struct thread_struct *threa
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This special macro can be used to load a debugging register
|
* These special macros can be used to get or set a debugging register
|
||||||
*/
|
*/
|
||||||
#define loaddebug(thread,register) \
|
#define get_debugreg(var, register) \
|
||||||
__asm__("movl %0,%%db" #register \
|
__asm__("movl %%db" #register ", %0" \
|
||||||
: /* no output */ \
|
:"=r" (var))
|
||||||
:"r" ((thread)->debugreg[register]))
|
#define set_debugreg(value, register) \
|
||||||
|
__asm__("movl %0,%%db" #register \
|
||||||
|
: /* no output */ \
|
||||||
|
:"r" (value))
|
||||||
|
|
||||||
|
|
||||||
/* Forward declaration, a strange C thing */
|
/* Forward declaration, a strange C thing */
|
||||||
struct task_struct;
|
struct task_struct;
|
||||||
|
|
Reference in a new issue