blob: 0f965b5f1c963b4bd4edbf535ad011de11dc88bc [file] [log] [blame] [edit]
/* tests/msr_dumb_while.c
*
* 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 <stdio.h>
#include <vcore.h>
#include <arch/arch.h>
#include <event.h>
#include <uthread.h>
int main(int argc, char** argv)
{
/* Get EV_ALARM on vcore 1, with IPI. */
enable_kevent(EV_ALARM, 1, EVENT_IPI | EVENT_VCORE_PRIVATE);
vcore_request(max_vcores());
/* should never make it here */
return -1;
}
void vcore_entry(void)
{
struct preempt_data *vcpd = &__procdata.vcore_preempt_data[0];
vcpd->notif_disabled = FALSE;
unsigned int ev_type = get_event_type(&vcpd->ev_mbox_private);
if (ev_type == EV_ALARM)
printf("[T]:009:E:%llu\n", read_tsc());
while(1);
}