Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 1872 → Rev 1873

/trunk/uspace/kbd/arch/sparc64/src/kbd.c
39,16 → 39,42
#include <sysinfo.h>
#include <kbd.h>
#include <keys.h>
#include <stdio.h>
#include <types.h>
#include <genarch/kbd.h>
 
#define KBD_KEY_RELEASE 0x80
#define KBD_ALL_KEYS_UP 0x7f
 
irq_cmd_t z8530_cmds[] = {
{ CMD_MEM_READ_1, 0, 0, 1 }
};
irq_code_t z8530_kbd = {
1,
z8530_cmds
};
 
int kbd_arch_init(void)
{
z8530_cmds[0].addr = (void *) sysinfo_value("kbd.address.virtual") + 6;
ipc_register_irq(sysinfo_value("kbd.irq"), &z8530_kbd);
return 0;
}
 
/** Process keyboard events */
int kbd_arch_process(keybuffer_t *keybuffer, ipc_call_t *call)
{
int scan_code = IPC_GET_ARG1(*call);
 
int kbd_arch_process(keybuffer_t *keybuffer, ipc_call_t *call)
{
if (scan_code == KBD_ALL_KEYS_UP)
return 1;
if (scan_code & KBD_KEY_RELEASE)
key_released(keybuffer, scan_code ^ KBD_KEY_RELEASE);
else
key_pressed(keybuffer, scan_code);
 
return 1;
}