rem: dprintf("alarm_event: thread = %p\n", thread);
add: TRACE(("alarm_event: thread = %p\n", thread));
context: alarm_event(timer *t){	// The hook can be called from any context, but we have to	// deliver the signal to the thread that originally called	// set_alarm().	// Since thread->alarm is this timer structure, we can just	// cast it back - ugly but it works for now	struct thread *thread = (struct thread *)((uint8 *)t - offsetof(struct thread, alarm));		// ToDo: investigate adding one user parameter to the timer structure to fix this hack	dprintf("alarm_event: thread = %p\n", thread);	send_signal_etc(thread->id, SIGALRM, B_DO_NOT_RESCHEDULE);	return B_INVOKE_SCHEDULER;}