On Wed, 2006-11-01 at 21:27 +1100, Rusty Russell wrote: > Create a paravirt.h header for all the critical operations which need > to be replaced with hypervisor calls, and include that instead of > defining native operations, when CONFIG_PARAVIRT. > > This patch does the dumbest possible replacement of paravirtualized > instructions: calls through a "paravirt_ops" structure. Currently > these are function implementations of native hardware: hypervisors > will override the ops structure with their own variants. > [snip]
> +struct paravirt_ops paravirt_ops = { > + .name = "bare hardware", [snip] > + .get_wallclock = native_get_wallclock, > + .set_wallclock = native_set_wallclock, [snip] > --- /dev/null > +++ b/include/asm-i386/time.h > @@ -0,0 +1,41 @@ > +#ifndef _ASMi386_TIME_H > +#define _ASMi386_TIME_H > + > +#include <linux/efi.h> > +#include "mach_time.h" > + > +static inline unsigned long native_get_wallclock(void) > +{ > + unsigned long retval; > + > + if (efi_enabled) > + retval = efi_get_time(); > + else > + retval = mach_get_cmos_time(); > + > + return retval; > +} > + > +static inline int native_set_wallclock(unsigned long nowtime) > +{ > + int retval; > + > + if (efi_enabled) > + retval = efi_set_rtc_mmss(nowtime); > + else > + retval = mach_set_rtc_mmss(nowtime); > + > + return retval; > +} > + > +#ifdef CONFIG_PARAVIRT > +#include <asm/paravirt.h> > +#else /* !CONFIG_PARAVIRT */ > + > +#define get_wallclock() native_get_wallclock() > +#define set_wallclock(x) native_set_wallclock(x) Could a better name then "get/set_wallclock" be used here? Its too vague and would be easily confused with do_set/gettimeofday() functions. My suggestion would be to use "persistent_clock" to describe the battery-backed CMOS/hardware clock. (I assume that is what you intend this paravirt_op to be, rather then get the high-resolution system timeofday) thanks -john - 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/