INLINE emu_timer *_timer_alloc_common(timer_fired_func callback, void *ptr, const char *file, int line, const char *func, int temp) { attotime time = get_current_time(); emu_timer *timer = timer_new(); /* fill in the record */ timer->callback = callback; timer->ptr = ptr; timer->param = 0; timer->enabled = FALSE; timer->temporary = temp; timer->period = attotime_zero; timer->file = file; timer->line = line; timer->func = func; /* compute the time of the next firing and insert into the list */ timer->start = time; timer->expire = attotime_never; timer_list_insert(timer); /* if we're not temporary, register ourselves with the save state system */ if (!temp) { timer_register_save(timer); restrack_register_object(OBJTYPE_TIMER, timer, 0, file, line); } /* return a handle */ return timer; }
INLINE emu_timer *_timer_alloc_common(running_machine *machine, timer_fired_func callback, void *ptr, const char *file, int line, const char *func, int temp) { attotime time = get_current_time(machine); emu_timer *timer = timer_new(machine); /* fill in the record */ timer->callback = callback; timer->ptr = ptr; timer->param = 0; timer->enabled = FALSE; timer->temporary = temp; timer->period = attotime_zero; timer->file = file; timer->line = line; timer->func = func; /* compute the time of the next firing and insert into the list */ timer->start = time; timer->expire = attotime_never; timer_list_insert(timer); /* if we're not temporary, register ourselves with the save state system */ if (!temp) { if (!state_save_registration_allowed(machine)) fatalerror("timer_alloc() called after save state registration closed! (file %s, line %d)\n", file, line); timer_register_save(timer); } /* return a handle */ return timer; }