/*! @brief Main timer server message loop. Simply loops through recieving and dispatching messages repeatedly. */ static void timer_server_mainloop(void) { struct timeserv_state *s = &timeServ; srv_msg_t msg; while (1) { msg.message = seL4_Recv(s->commonState.anonEP, &msg.badge); timer_server_handle_message(s, &msg); client_table_postaction(&s->commonState.clientTable); } }
/*! @brief Main timer server message loop. Simply loops through recieving and dispatching messages repeatedly. */ static void timer_server_mainloop(void) { struct timeserv_state *s = &timeServ; srv_msg_t msg; seL4_DebugPrintf("timer1 will go EP\n"); while (1) { seL4_DebugPrintf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<start to receive on EP<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"); msg.message = seL4_Wait(s->commonState.anonEP, &msg.badge); seL4_DebugPrintf("<<<<<<<<<<<<<<<<<<<<<<<<<<<timeserver resume on EP>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); timer_server_handle_message(s, &msg); client_table_postaction(&s->commonState.clientTable); } }
static int test_thread(void * arg) { struct timeserv_state *s = &timeServ; srv_msg_t msg; seL4_DebugPrintf("timer2 will go AEP\n"); while(1) { seL4_DebugPrintf("\n################# Blocked on AEP #################\n"); msg.message = seL4_Wait(s->commonState.notifyAsyncEP, &msg.badge); seL4_DebugPrintf("\n@@@@@@@@@@@@@@@@@ Resumed on AEP @@@@@@@@@@@@@@@@@\n"); timer_server_handle_message(s, &msg); client_table_postaction(&s->commonState.clientTable); } return 0; }