Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 2825 → Rev 2826

/branches/tracing/kernel/generic/src/udebug/udebug_ipc.c
110,10 → 110,8
 
klog_printf("debug_go()");
ta = get_lock_callee_task(phone);
 
// FIXME: must save this in thread struct, not task struct!!!
ta->debug_go_call = call;
spinlock_unlock(&ta->lock);
// TODO: don't lock ta
 
t = (thread_t *) IPC_GET_ARG2(call->data);
 
120,12 → 118,14
ipl = interrupts_disable();
spinlock_lock(&threads_lock);
 
if (!thread_exists(t)) {
/* Verify that 't' exists and belongs to task 'ta' */
if (!thread_exists(t) || (t->task != ta)) {
spinlock_unlock(&threads_lock);
interrupts_restore(ipl);
return ENOENT;
}
 
t->debug_go_call = call;
t->debug_stop = false;
waitq_wakeup(&t->go_wq, WAKEUP_FIRST);
 
/branches/tracing/kernel/generic/src/udebug/udebug.c
81,7 → 81,7
 
if (TASK->dt_state == UDEBUG_TS_ACTIVE) {
klog_printf("udebug_syscall_event");
call = TASK->debug_go_call;
call = THREAD->debug_go_call;
IPC_SET_RETVAL(call->data, 0);
IPC_SET_ARG1(call->data, UDEBUG_EVENT_SYSCALL);
IPC_SET_ARG2(call->data, id);
102,7 → 102,7
*/
THREAD->debug_stop = true;
 
ipc_answer(&TASK->answerbox, TASK->debug_go_call);
ipc_answer(&TASK->answerbox, THREAD->debug_go_call);
spinlock_unlock(&TASK->lock);
interrupts_restore(ipl);