Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 1648 → Rev 1647

/uspace/trunk/console/console.c
288,6 → 288,7
callid = async_get_call(&call);
switch (IPC_GET_METHOD(call)) {
case IPC_M_PHONE_HUNGUP:
ipc_answer_fast(callid,0,0,0);
/* TODO: Handle hangup */
return;
case KBD_PUSHCHAR:
367,6 → 368,9
ipc_answer_fast(fifo_pop(conn->keyrequests), ENOENT, 0, 0);
break;
}
/* Commit hangup */
ipc_answer_fast(callid, 0,0,0);
conn->used = 0;
return;
case CONSOLE_PUTCHAR:
/uspace/trunk/fb/fb.c
921,6 → 921,7
/* cleanup other viewports */
for (i=1; i < MAX_VIEWPORTS; i++)
vport->initialized = 0;
ipc_answer_fast(callid,0,0,0);
return; /* Exit thread */
 
case FB_PUTCHAR:
/uspace/trunk/libc/generic/async.c
131,7 → 131,6
/* Structures for connection opening packet */
ipc_callid_t callid;
ipc_call_t call;
ipc_callid_t close_callid; /* Identification of closing packet */
void (*cthread)(ipc_callid_t,ipc_call_t *);
} connection_t;
 
267,9 → 266,6
msg->callid = callid;
msg->call = *call;
list_append(&msg->link, &conn->msg_queue);
 
if (IPC_GET_METHOD(*call) == IPC_M_PHONE_HUNGUP)
conn->close_callid = callid;
/* If the call is waiting for event, run it */
if (!conn->wdata.active) {
362,7 → 358,6
{
unsigned long key;
msg_t *msg;
int close_answered = 0;
 
/* Setup thread local connection pointer */
PS_connection = (connection_t *)arg;
376,13 → 371,9
while (!list_empty(&PS_connection->msg_queue)) {
msg = list_get_instance(PS_connection->msg_queue.next, msg_t, link);
list_remove(&msg->link);
if (msg->callid == PS_connection->close_callid)
close_answered = 1;
ipc_answer_fast(msg->callid, EHANGUP, 0, 0);
free(msg);
}
if (PS_connection->close_callid)
ipc_answer_fast(PS_connection->close_callid, 0, 0, 0);
}
 
/** Create new thread for a new connection
415,7 → 406,6
conn->in_phone_hash = in_phone_hash;
list_initialize(&conn->msg_queue);
conn->callid = callid;
conn->close_callid = 0;
if (call)
conn->call = *call;
conn->wdata.active = 1; /* We will activate it asap */