rem: return i;
add: *_stack = (uint32)i; return state;
context: get_death_stack(void){	cpu_status state;	unsigned int bit;	int i;	acquire_sem(sDeathStackSem);	// grap the thread lock, find a free spot and release	state = disable_interrupts();	GRAB_THREAD_LOCK();	bit = sDeathStackBitmap;	bit = (~bit)&~((~bit)-1);	sDeathStackBitmap |= bit;	RELEASE_THREAD_LOCK();	// sanity checks	if (!bit)		panic("get_death_stack: couldn't find free stack!\n");	if (bit & (bit - 1))		panic("get_death_stack: impossible bitmap result!\n");	// bit to number	for (i = -1; bit; i++) {		bit >>= 1;	}	TRACE(("get_death_stack: returning 0x%lx\n", sDeathStacks[i].address));	return i;}