Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1475 → Rev 1476

/uspace/trunk/console/console.c
44,11 → 44,11
 
}
//#define CONSOLE_COUNT VFB_CONNECTIONS
#define CONSOLE_COUNT 6
#define CONSOLE_COUNT 8
 
#define NAME "CONSOLE"
 
int active_client = 0;
int active_console = 1;
 
 
typedef struct {
93,6 → 93,7
ipc_call_t call;
int retval;
int i;
char c;
 
/* Ignore parameters, the connection is alread opened */
while (1) {
111,16 → 112,18
/*FIXME: else store key to its buffer */
retval = 0;
i = IPC_GET_ARG1(call) & 0xff;
c = IPC_GET_ARG1(call);
// ipc_call_sync_2(connections[3].vfb_phone, FB_PUTCHAR, 0, c,NULL,NULL);
/* switch to another virtual console */
if ((i >= KBD_KEY_F1) && (i < KBD_KEY_F1 + CONSOLE_COUNT)) {
active_client = i - KBD_KEY_F1;
if ((c >= KBD_KEY_F1) && (c < KBD_KEY_F1 + CONSOLE_COUNT)) {
active_console = c - KBD_KEY_F1;
break;
}
keybuffer_push(&(connections[active_client].keybuffer), i);
keybuffer_push(&(connections[active_console].keybuffer), c);
/* Send it to first FB, DEBUG */
// ipc_call_async_2(connections[0].vfb_phone, FB_PUTCHAR, 0, IPC_GET_ARG1(call),NULL,NULL);
// ipc_call_sync_2(connections[0].vfb_phone, FB_PUTCHAR, 0, IPC_GET_ARG1(call),NULL,NULL);
// ipc_call_sync_2(connections[4].vfb_phone, FB_PUTCHAR, 0, c,NULL,NULL);
 
break;
default:
156,15 → 159,25
ipc_answer_fast(callid, 0,0,0);
return;
case CONSOLE_PUTCHAR:
if (consnum != active_console) {
}
/* Send message to fb */
ipc_call_async_2(connections[consnum].vfb_phone, FB_PUTCHAR, IPC_GET_ARG1(call), IPC_GET_ARG2(call), NULL, NULL);
ipc_call_sync_2(connections[consnum].vfb_phone, FB_PUTCHAR, IPC_GET_ARG1(call), IPC_GET_ARG2(call), NULL, NULL);
// ipc_call_sync_2(connections[6].vfb_phone, FB_PUTCHAR, 0, IPC_GET_ARG2(call),NULL,NULL);
break;
case CONSOLE_CLEAR:
break;
case CONSOLE_GOTO:
break;
 
case CONSOLE_GETCHAR:
/* FIXME: Only temporary solution until request storage will be created */
while (!keybuffer_pop(&(connections[active_client].keybuffer), (char *)&arg1)) {
while (keybuffer_empty(&(connections[consnum].keybuffer))) {
/* FIXME: buffer empty -> store request */
async_usleep(100000);
async_usleep(1000);
};
keybuffer_pop(&(connections[consnum].keybuffer), (char *)&arg1);
// ipc_call_sync_2(connections[6].vfb_phone, FB_PUTCHAR, 0, arg1,NULL,NULL);
break;
}