Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4633 → Rev 4634

/branches/arm/uspace/app/init/version.c
60,7 → 60,7
/** Print version information. */
void version_print(void)
{
printf("HelenOS init\nRelease %s%s%s\nCopyright (c) 2006 HelenOS project\n", release, revision, timestamp);
printf("HelenOS init\nRelease %s%s%s\nCopyright (c) 2009 HelenOS project\n", release, revision, timestamp);
}
 
/** @}
/branches/arm/uspace/srv/kbd/arch/arm32/src/kbd_icp.c
54,6 → 54,7
 
#define PL050_KEY_RELEASE 0xF0
#define PL050_ESC_KEY 0xE0
#define PL050_CAPS_SCAN_CODE 0x58
 
irq_cmd_t pl050_cmds[] = {
{ CMD_MEM_READ_1, (void *) 0, 0, 1 },
91,31 → 92,27
int kbd_arch_process(keybuffer_t *keybuffer, ipc_call_t *call)
{
static int key_released_flag = 0;
static int caps_count = 0;
static int caps_locked = 0;
int scan_code = IPC_GET_ARG1(*call);
 
if (scan_code == 0x58) {
if (caps_count == 2) {
caps_count = 0;
return 1;
} else if (key_released_flag && !caps_count) {
key_released_flag = 0;
return 1;
}
caps_count++;
}
 
if (scan_code == PL050_KEY_RELEASE) {
key_released_flag = 1;
} else {
if (key_released_flag) {
key_released_flag = 0;
if (scan_code == PL050_CAPS_SCAN_CODE) {
if (caps_locked) {
caps_locked = 0;
return 1;
} else
caps_locked = 1;
}
key_released(keybuffer, scan_code);
} else {
if (scan_code == PL050_CAPS_SCAN_CODE && caps_locked)
return 1;
key_pressed(keybuffer, scan_code);
}
key_released_flag = 0;
}
 
return 1;