Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 1647 → Rev 1648

/uspace/trunk/fb/fb.c
921,7 → 921,6
/* 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/console/console.c
288,7 → 288,6
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:
368,9 → 367,6
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/libc/generic/async.c
131,6 → 131,7
/* 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;
 
266,6 → 267,9
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) {
358,6 → 362,7
{
unsigned long key;
msg_t *msg;
int close_answered = 0;
 
/* Setup thread local connection pointer */
PS_connection = (connection_t *)arg;
371,9 → 376,13
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
406,6 → 415,7
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 */