[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 4/4] Add a monotonic time device
From: |
Pino Toscano |
Subject: |
[PATCH 4/4] Add a monotonic time device |
Date: |
Fri, 26 Aug 2011 20:29:43 +0200 |
* 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