On 8/8/07, Andi Kleen <[EMAIL PROTECTED]> wrote: > > > > > @@ -264,13 +270,64 @@ struct thread_struct { > > set_fs(USER_DS); > > \ > > } while(0) > > > > -#define get_debugreg(var, register) \ > > - __asm__("movq %%db" #register ", %0" \ > > - :"=r" (var)) > > -#define set_debugreg(value, register) \ > > - __asm__("movq %0,%%db" #register \ > > - : /* no output */ \ > > - :"r" (value)) > > +static inline unsigned long native_get_debugreg(int regno) > > +{ > > + unsigned long val; > > It would be better to have own functions for each debug register I think > Andi, you mean: a) split the debugreg paravirt_ops in various paravirt_ops.set/get_debugreg{X,Y,Z...}, and then join them together in a set/get_debugreg(a,b) to keep the current interface. OR b) keep one paravirt_ops for each set/get_debugreg, then split then in various set/get_debugregX(a, b), changing the current interface, OR c) plit the debugreg paravirt_ops in various paravirt_ops.set/get_debugreg{X,Y,Z...}, and give each its own function set/get_debugregX(a, b), again, changing the current interface, OR d) None of the above?
-- Glauber de Oliveira Costa. "Free as in Freedom" http://glommer.net "The less confident you are, the more serious you have to act." - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/