Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4341 → Rev 4342

/branches/dynload/uspace/srv/kbd/Makefile
29,8 → 29,6
## Setup toolchain
#
 
-include ../../../Makefile.config
 
LIBC_PREFIX = ../../lib/libc
SOFTINT_PREFIX = ../../lib/softint
RTLD_PREFIX = ../../lib/rtld
49,50 → 47,50
generic/key_buffer.c
 
ARCH_SOURCES = \
arch/$(ARCH)/src/kbd.c
arch/$(UARCH)/src/kbd.c
 
ifeq ($(ARCH), ia32)
ifeq ($(UARCH), ia32)
ARCH_SOURCES += \
arch/$(ARCH)/src/mouse.c \
arch/$(ARCH)/src/scanc.c
arch/$(UARCH)/src/mouse.c \
arch/$(UARCH)/src/scanc.c
GENARCH_SOURCES = \
genarch/src/kbd.c
CFLAGS += -DMOUSE_ENABLED
endif
ifeq ($(ARCH), ia64)
ifeq ($(UARCH), ia64)
ARCH_SOURCES += \
arch/$(ARCH)/src/mouse.c \
arch/$(ARCH)/src/scanc.c \
arch/$(ARCH)/src/lkbd.c
arch/$(UARCH)/src/mouse.c \
arch/$(UARCH)/src/scanc.c \
arch/$(UARCH)/src/lkbd.c
GENARCH_SOURCES = \
genarch/src/kbd.c
CFLAGS += -DMOUSE_ENABLED
endif
ifeq ($(ARCH), amd64)
ifeq ($(UARCH), amd64)
ARCH_SOURCES += \
arch/$(ARCH)/src/mouse.c \
arch/$(ARCH)/src/scanc.c
arch/$(UARCH)/src/mouse.c \
arch/$(UARCH)/src/scanc.c
GENARCH_SOURCES = \
genarch/src/kbd.c
CFLAGS += -DMOUSE_ENABLED
endif
ifeq ($(ARCH), sparc64)
ifeq ($(UARCH), sparc64)
ARCH_SOURCES += \
arch/$(ARCH)/src/scanc.c \
arch/$(ARCH)/src/sgcn.c
arch/$(UARCH)/src/scanc.c \
arch/$(UARCH)/src/sgcn.c
GENARCH_SOURCES = \
genarch/src/kbd.c \
genarch/src/nofb.c
endif
ifeq ($(ARCH), arm32)
ifeq ($(UARCH), arm32)
ARCH_SOURCES += \
arch/$(ARCH)/src/kbd_gxemul.c
arch/$(UARCH)/src/kbd_gxemul.c
endif
ifeq ($(ARCH), mips32)
ifeq ($(UARCH), mips32)
GENARCH_SOURCES += \
genarch/src/nofb.c
endif
ifeq ($(ARCH), mips32eb)
ifeq ($(UARCH), mips32eb)
GENARCH_SOURCES += \
genarch/src/nofb.c
endif
110,7 → 108,7
-include Makefile.depend
 
links:
ln -sfn ../arch/$(ARCH)/include include/arch
ln -sfn ../arch/$(UARCH)/include include/arch
ln -sfn ../genarch/include include/genarch
 
clean:
/branches/dynload/uspace/srv/kbd/arch/ppc64/include/kbd.h
File deleted
/branches/dynload/uspace/srv/kbd/arch/ppc64/src/kbd.c
File deleted
/branches/dynload/uspace/srv/kbd/arch/ia64/src/kbd.c
114,18 → 114,6
 
 
 
 
irq_cmd_t ski_cmds[1] = {
{ CMD_IA64_GETCHAR, 0, 0, 2 }
};
 
irq_code_t ski_kbd = {
1,
ski_cmds
};
 
 
 
irq_cmd_t ns16550_cmds[1] = {
{ CMD_PORT_READ_1, 0, 0, 2 },
};
144,15 → 132,15
{
if (sysinfo_value("kbd")) {
kbd_type=sysinfo_value("kbd.type");
if(kbd_type==KBD_SKI) ipc_register_irq(sysinfo_value("kbd.inr"), sysinfo_value("kbd.devno"), 0, &ski_kbd);
if(kbd_type==KBD_LEGACY) return lkbd_arch_init();
if(kbd_type==KBD_NS16550) {
ns16550_kbd.cmds[0].addr= (void *) (sysinfo_value("kbd.port")+RBR_REG);
if (kbd_type == KBD_LEGACY)
return lkbd_arch_init();
if (kbd_type == KBD_NS16550) {
ns16550_kbd.cmds[0].addr = (void *) (sysinfo_value("kbd.port") + RBR_REG);
ipc_register_irq(sysinfo_value("kbd.inr"), sysinfo_value("kbd.devno"), 0, &ns16550_kbd);
iospace_enable(task_get_id(),ns16550_port=sysinfo_value("kbd.port"),8);
}
iospace_enable(task_get_id(), ns16550_port = sysinfo_value("kbd.port"), 8);
}
return 0;
}
}
return 1;
}
 
170,9 → 158,9
{
static unsigned long buf = 0;
static int count = 0, esc_count=0;
 
int scan_code = IPC_GET_ARG2(*call);
 
if (scan_code == 0x1b) {
esc_count++;
if (esc_count == 3) {
181,10 → 169,12
} else {
esc_count = 0;
}
 
if(scan_code==0x0d) return 1; //Delete CR
if(scan_code==0x7f) scan_code='\b'; //Convert backspace
 
if (scan_code == 0x0d)
return 1; /* Delete CR */
if (scan_code == 0x7f)
scan_code='\b'; /* Convert backspace */
if(scan_code == 0x7e) {
switch (buf) {
case NSKEY_F6:
308,12 → 298,6
return 1;
}
 
 
 
 
 
 
 
int kbd_ski_process(keybuffer_t *keybuffer, ipc_call_t *call)
{
static unsigned long long buf = 0;
393,11 → 377,12
int kbd_arch_process(keybuffer_t *keybuffer, ipc_call_t *call)
{
printf("KBD Key pressed: %x(%c)\n",IPC_GET_ARG2(*call),IPC_GET_ARG2(*call));
if(kbd_type==KBD_SKI) return kbd_ski_process(keybuffer,call);
if(kbd_type==KBD_NS16550) return kbd_ns16550_process(keybuffer,call);
if(kbd_type==KBD_LEGACY) return lkbd_arch_process(keybuffer,call);
 
if (kbd_type == KBD_SKI)
return kbd_ski_process(keybuffer, call);
if (kbd_type == KBD_NS16550)
return kbd_ns16550_process(keybuffer,call);
if (kbd_type == KBD_LEGACY)
return lkbd_arch_process(keybuffer,call);
}
 
 
404,4 → 389,4
 
/**
* @}
*/
*/
/branches/dynload/uspace/srv/kbd/arch/ppc32/src/kbd.c
40,16 → 40,7
#include <kbd.h>
#include <keys.h>
 
irq_cmd_t cuda_cmds[1] = {
{ CMD_PPC32_GETCHAR, 0, 0, 2 }
};
 
irq_code_t cuda_kbd = {
1,
cuda_cmds
};
 
 
#define SPECIAL 255
#define FUNCTION_KEYS 0x100
 
186,7 → 177,7
if (!sysinfo_value("kbd"))
return 0;
return ipc_register_irq(sysinfo_value("kbd.inr"), sysinfo_value("kbd.devno"), 0, &cuda_kbd);
return ipc_register_irq(sysinfo_value("kbd.inr"), sysinfo_value("kbd.devno"), 0, 0);
}