* i386/i386at/conf.c (dev_name_list): Add a new `monotonic' device. * i386/i386at/model_dep.c (monotonicmmap): New function to map `mmonotonic'. --- i386/i386at/conf.c | 8 ++++++++ i386/i386at/model_dep.c | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/i386/i386at/conf.c b/i386/i386at/conf.c index 83c8dbf..e5aff33 100644 --- a/i386/i386at/conf.c +++ b/i386/i386at/conf.c @@ -74,6 +74,9 @@ extern int hypcngetstat(), hypcnsetstat(), hypcnportdeath(); #define hypcnname "hyp" #endif /* MACH_HYP */ +extern vm_offset_t monotonicmmap(); +#define monotonicname "monotonic" + /* * List of devices - console must be at slot 0 */ @@ -149,6 +152,11 @@ struct dev_ops dev_name_list[] = nodev }, #endif /* MACH_HYP */ + { monotonicname, timeopen, timeclose, nulldev, + nulldev, nulldev, nulldev, monotonicmmap, + nodev, nulldev, nulldev, 0, + nodev }, + }; int dev_name_count = sizeof(dev_name_list)/sizeof(dev_name_list[0]); diff --git a/i386/i386at/model_dep.c b/i386/i386at/model_dep.c index 04b8228..e929d22 100644 --- a/i386/i386at/model_dep.c +++ b/i386/i386at/model_dep.c @@ -586,6 +586,21 @@ timemmap(dev,off,prot) return (i386_btop(pmap_extract(pmap_kernel(), (vm_offset_t) mtime))); } +int +monotonicmmap(dev,off,prot) + vm_prot_t prot; +{ + extern time_value_t *mmonotonic; + +#ifdef lint + dev++; off++; +#endif /* lint */ + + if (prot & VM_PROT_WRITE) return (-1); + + return (i386_btop(pmap_extract(pmap_kernel(), (vm_offset_t) mmonotonic))); +} + void startrtclock(void) { -- 1.7.5.4