Changeset 79460ae in mainline for kbd/generic/kbd.c
- Timestamp:
- 2006-05-30T10:40:17Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 44c6d88d
- Parents:
- f25b73d6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kbd/generic/kbd.c
rf25b73d6 r79460ae 49 49 int phoneid; 50 50 char connected = 0; 51 51 keybuffer_t keybuffer; 52 52 ipcarg_t retval, arg1, arg2; 53 53 54 printf("Uspace kbd service started.\n");54 // printf("Uspace kbd service started.\n"); 55 55 56 56 /* Initialize arch dependent parts */ 57 57 if (!(res = kbd_arch_init())) { 58 printf("Kbd registration failed with retval %d.\n", res);58 // printf("Kbd registration failed with retval %d.\n", res); 59 59 return -1; 60 60 }; 61 61 62 62 /* Initialize key buffer */ 63 key _buffer_init();63 keybuffer_init(&keybuffer); 64 64 65 65 /* Register service at nameserver */ 66 printf("%s: Registering at naming service.\n", NAME);66 // printf("%s: Registering at naming service.\n", NAME); 67 67 68 68 if ((res = ipc_connect_to_me(PHONE_NS, SERVICE_KEYBOARD, 0, &phonead)) != 0) { 69 printf("%s: Error: Registering at naming service failed.\n", NAME);69 // printf("%s: Error: Registering at naming service failed.\n", NAME); 70 70 return -1; 71 71 }; … … 76 76 switch (IPC_GET_METHOD(call)) { 77 77 case IPC_M_PHONE_HUNGUP: 78 printf("%s: Phone hung up.\n", NAME);78 // printf("%s: Phone hung up.\n", NAME); 79 79 connected = 0; 80 80 retval = 0; … … 98 98 if (connected) { 99 99 /* recode to ASCII - one interrupt can produce more than one code so result is stored in fifo */ 100 kbd_arch_process( IPC_GET_ARG2(call));100 kbd_arch_process(&keybuffer, IPC_GET_ARG2(call)); 101 101 102 102 //printf("%s: GOT INTERRUPT: %c\n", NAME, key); … … 107 107 retval = 0; 108 108 109 while (!key _buffer_empty()) {110 if (!key _buffer_pop((char *)&arg1)) {111 printf("%s: KeyBuffer is empty but it should not be.\n");109 while (!keybuffer_empty(&keybuffer)) { 110 if (!keybuffer_pop(&keybuffer, (char *)&arg1)) { 111 // printf("%s: KeyBuffer is empty but it should not be.\n"); 112 112 break; 113 113 } 114 114 /*FIXME: detection of closed connection */ 115 ipc_call_async(phoneid, KBD_PUSHCHAR, arg1, 0, NULL);115 ipc_call_async(phoneid, KBD_PUSHCHAR, arg1, NULL, NULL); 116 116 } 117 117 118 118 } 119 printf("%s: Interrupt processed.\n", NAME);119 // printf("%s: Interrupt processed.\n", NAME); 120 120 break; 121 121 default: 122 printf("%s: Unknown method: %zd\n", NAME, IPC_GET_METHOD(call));122 // printf("%s: Unknown method: %zd\n", NAME, IPC_GET_METHOD(call)); 123 123 retval = ENOENT; 124 124 break;
Note:
See TracChangeset
for help on using the changeset viewer.