/branches/tracing/kernel/generic/include/ipc/ipc.h |
---|
290,7 → 290,7 |
extern void ipc_phone_connect(phone_t *phone, answerbox_t *box); |
extern void ipc_call_free(call_t *call); |
extern call_t * ipc_call_alloc(int flags); |
extern void ipc_answerbox_init(answerbox_t *box); |
extern void ipc_answerbox_init(answerbox_t *box, struct task *task); |
extern void ipc_call_static_init(call_t *call); |
extern void task_print_list(void); |
extern int ipc_forward(call_t *call, phone_t *newphone, answerbox_t *oldbox, |
/branches/tracing/kernel/generic/src/proc/task.c |
---|
171,7 → 171,7 |
ta->capabilities = 0; |
ta->cycles = 0; |
ipc_answerbox_init(&ta->answerbox); |
ipc_answerbox_init(&ta->answerbox, ta); |
for (i = 0; i < IPC_MAX_PHONES; i++) |
ipc_phone_init(&ta->phones[i]); |
if ((ipc_phone_0) && (context_check(ipc_phone_0->task->context, |
/branches/tracing/kernel/generic/src/ipc/ipc.c |
---|
117,8 → 117,9 |
/** Initialize an answerbox structure. |
* |
* @param box Answerbox structure to be initialized. |
* @param task Task to which the answerbox belongs. |
*/ |
void ipc_answerbox_init(answerbox_t *box) |
void ipc_answerbox_init(answerbox_t *box, task_t *task) |
{ |
spinlock_initialize(&box->lock, "ipc_box_lock"); |
spinlock_initialize(&box->irq_lock, "ipc_box_irqlock"); |
129,7 → 130,7 |
list_initialize(&box->answers); |
list_initialize(&box->irq_notifs); |
list_initialize(&box->irq_head); |
box->task = TASK; |
box->task = task; |
} |
/** Connect a phone to an answerbox. |
172,7 → 173,7 |
{ |
answerbox_t sync_box; |
ipc_answerbox_init(&sync_box); |
ipc_answerbox_init(&sync_box, TASK); |
/* We will receive data in a special box. */ |
request->callerbox = &sync_box; |