Example #1
0
INLINE emu_timer *timer_new(void)
{
	emu_timer *timer;

	/* remove an empty entry */
	if (!timer_free_head)
	{
		timer_logtimers();
		fatalerror("Out of timers!");
	}
	timer = timer_free_head;
	timer_free_head = timer->next;
	if (!timer_free_head)
		timer_free_tail = NULL;

	return timer;
}
Example #2
0
INLINE emu_timer *timer_new(running_machine *machine)
{
	timer_private *global = machine->timer_data;
	emu_timer *timer;

	/* if nothing remains available, fatal error -- we should never hit this */
	if (global->freelist == NULL)
	{
		timer_logtimers(machine);
		fatalerror("Out of timers!");
	}

	/* pull an entry from the free list */
	timer = global->freelist;
	global->freelist = timer->next;
	if (global->freelist == NULL)
		global->freelist_tail = NULL;

	/* set up the machine */
	timer->machine = machine;
	return timer;
}