void ARMul_EnvokeEvent(ARMul_State *state) {static unsigned long then ; then = state->Now ; state->Now = ARMul_Time(state) % EVENTLISTSIZE ; if (then < state->Now) /* schedule events */ EnvokeList(state,then,state->Now) ; else if (then > state->Now) { /* need to wrap around the list */ EnvokeList(state,then,EVENTLISTSIZE-1L) ; EnvokeList(state,0L,state->Now) ; } }
void ARMul_ScheduleEvent(ARMul_State *state, unsigned long delay, unsigned (*what)()) {unsigned long when ; struct EventNode *event ; if (state->EventSet++ == 0) state->Now = ARMul_Time(state) ; when = (state->Now + delay) % EVENTLISTSIZE ; event = (struct EventNode *)malloc(sizeof(struct EventNode)) ; event->func = what ; event->next = *(state->EventPtr + when) ; *(state->EventPtr + when) = event ; }
void ARMul_ScheduleEvent (ARMul_State * state, unsigned int delay, unsigned (*what) (ARMul_State *)) { unsigned int when; struct EventNode *event; if (state->EventSet++ == 0) state->Now = ARMul_Time (state); when = (state->Now + delay) % EVENTLISTSIZE; event = (struct EventNode *) malloc (sizeof (struct EventNode)); _dbg_assert_msg_(ARM11, event, "SKYEYE:ARMul_ScheduleEvent: malloc event error\n"); event->func = what; event->next = *(state->EventPtr + when); *(state->EventPtr + when) = event; }
void ARMul_ScheduleEvent (ARMul_State * state, unsigned int delay, unsigned (*what) (ARMul_State *)) { unsigned int when; struct EventNode *event; if (state->EventSet++ == 0) state->Now = ARMul_Time (state); when = (state->Now + delay) % EVENTLISTSIZE; event = (struct EventNode *) malloc (sizeof (struct EventNode)); if (!event) { printf ("SKYEYE:ARMul_ScheduleEvent: malloc event error\n"); exit(-1); //skyeye_exit (-1); } event->func = what; event->next = *(state->EventPtr + when); *(state->EventPtr + when) = event; }
/** * Returns the number of clock ticks since the last reset * @return Returns number of clock ticks */ u64 ARM_Interpreter::GetTicks() const { return ARMul_Time(m_state); }