Changeset 9141377 in mainline for uspace/kbd/arch/sparc64/src/kbd.c


Ignore:
Timestamp:
2006-09-07T19:45:46Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
801579fe
Parents:
9dae51d7
Message:

sparc64 support for the kbd userspace service.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/kbd/arch/sparc64/src/kbd.c

    r9dae51d7 r9141377  
    4040#include <kbd.h>
    4141#include <keys.h>
     42#include <stdio.h>
     43#include <types.h>
     44#include <genarch/kbd.h>
    4245
     46#define KBD_KEY_RELEASE         0x80
     47#define KBD_ALL_KEYS_UP         0x7f
     48
     49irq_cmd_t z8530_cmds[] = {
     50        { CMD_MEM_READ_1, 0, 0, 1 }
     51};
     52       
     53irq_code_t z8530_kbd = {
     54        1,
     55        z8530_cmds
     56};
    4357
    4458int kbd_arch_init(void)
    4559{
     60        z8530_cmds[0].addr = (void *) sysinfo_value("kbd.address.virtual") + 6;
     61        ipc_register_irq(sysinfo_value("kbd.irq"), &z8530_kbd);
    4662        return 0;
    4763}
    4864
     65/** Process keyboard events */
     66int kbd_arch_process(keybuffer_t *keybuffer, ipc_call_t *call)
     67{
     68        int scan_code = IPC_GET_ARG1(*call);
    4969
    50 int kbd_arch_process(keybuffer_t *keybuffer, ipc_call_t *call)
    51 {
     70        if (scan_code == KBD_ALL_KEYS_UP)
     71                return 1;
     72               
     73        if (scan_code & KBD_KEY_RELEASE)
     74                key_released(keybuffer, scan_code ^ KBD_KEY_RELEASE);
     75        else
     76                key_pressed(keybuffer, scan_code);
     77
    5278        return 1;
    5379}
Note: See TracChangeset for help on using the changeset viewer.