added NOVPT option to disable VPT/UVPT mappings
[akaros.git] / tests / msr_dumb_while.c
index a56f583..dc0e3c7 100644 (file)
@@ -1,9 +1,13 @@
 /* tests/msr_dumb_while.c
  *
- * This requests the max_vcores in the system, then just dumbly while loops. */
+ * This requests the max_vcores in the system, then just dumbly while loops.
+ * If you send it an NE_ALARM, it'll print its TSC. */
 
-#include <rstdio.h>
+#include <stdio.h>
 #include <vcore.h>
+#include <arch/arch.h>
+#include <event.h>
+#include <uthread.h>
 
 int main(int argc, char** argv)
 {
@@ -13,6 +17,9 @@ int main(int argc, char** argv)
        struct preempt_data *vcpd = &__procdata.vcore_preempt_data[0];
        vcpd->notif_enabled = TRUE;
 
+       /* Get EV_ALARM on vcore 1, with IPI. */
+       enable_kevent(EV_ALARM, 1, EVENT_IPI);
+
        vcore_request(max_vcores());
 
        /* should never make it here */
@@ -21,6 +28,12 @@ int main(int argc, char** argv)
 
 void vcore_entry(void)
 {
+       struct preempt_data *vcpd = &__procdata.vcore_preempt_data[0];
+       vcpd->notif_enabled = TRUE;
+
+       unsigned int ev_type = get_event_type(&vcpd->ev_mbox);
+       if (ev_type == EV_ALARM)
+               printf("[T]:009:E:%llu\n", read_tsc());
        while(1);
 }