bitkeeper revision 1.178.2.1 (3ead095fnpL5TUgwn6hztSXztuDhxQ)

PS/2 keyboard and mouse support
This commit is contained in:
jws@cairnwell.research committed 2003-04-28 10:58:39 +00:00
1 parent b9e6f59dc1
commit d3246342b6
14 files changed
+1150 -347

No files matched your search

+5
View File
@@ -261,6 +261,7 @@
3ddb79c3uPGcP_l_2xyGgBSWd5aC-Q xen/include/asm-i386/unaligned.h
3ddb79c2YTaZwOqWin9-QNgHge5RVw xen/include/hypervisor-ifs/block.h
3ddb79c25UE59iu4JJcbRalx95mvcg xen/include/hypervisor-ifs/hypervisor-if.h
3ead095dE_VF-QA88rl_5cWYRWtRVQ xen/include/hypervisor-ifs/kbd.h
3ddb79c2oRPrzClk3zbTkRHlpumzKA xen/include/hypervisor-ifs/network.h
3ddb79c4qbCoOFHrv9sCGshbWzBVlQ xen/include/scsi/scsi.h
3ddb79c4R4iVwqIIeychVQYmIH4FUg xen/include/scsi/scsi_ioctl.h
@@ -398,6 +399,9 @@
3e5a4e66qRlSTcjafidMB6ulECADvg xenolinux-2.4.21-pre4-sparse/arch/xeno/vmlinux.lds
3e5a4e668yELUdtr3HiJZBIqxqUyuA xenolinux-2.4.21-pre4-sparse/drivers/block/Config.in
3e5a4e66mrtlmV75L1tjKDg8RaM5gA xenolinux-2.4.21-pre4-sparse/drivers/block/ll_rw_blk.c
3ead095dEkj9JJWYYBnbvW3OYbKFxg xenolinux-2.4.21-pre4-sparse/drivers/char/Config.in
3ead095d00j61GCBaYdu_SwmY-vdSQ xenolinux-2.4.21-pre4-sparse/drivers/char/Makefile
3ead095dPseRoFELVf_xcnVXjq02hw xenolinux-2.4.21-pre4-sparse/drivers/char/dummy_console.c
3e5a4e66rw65CxyolW9PKz4GG42RcA xenolinux-2.4.21-pre4-sparse/drivers/char/tty_io.c
3e5a4e669uzIE54VwucPYtGwXLAbzA xenolinux-2.4.21-pre4-sparse/fs/exec.c
3e5a4e66wbeCpsJgVf_U8Jde-CNcsA xenolinux-2.4.21-pre4-sparse/include/asm-xeno/bugs.h
@@ -408,6 +412,7 @@
3e5a4e677VBavzM1UZIEcH1B-RlXMA xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor.h
3e5a4e67Ulv-Ll8Zp4j2GwMwQ8aAXQ xenolinux-2.4.21-pre4-sparse/include/asm-xeno/io.h
3e5a4e673p7PEOyHFm3nHkYX6HQYBg xenolinux-2.4.21-pre4-sparse/include/asm-xeno/irq.h
3ead095db_LRUXnxaqs0dA1DWhPoQQ xenolinux-2.4.21-pre4-sparse/include/asm-xeno/keyboard.h
3e5a4e67zoNch27qYhEBpr2k6SABOg xenolinux-2.4.21-pre4-sparse/include/asm-xeno/mmu.h
3e5a4e678ddsQOpbSiRdy1GRcDc9WA xenolinux-2.4.21-pre4-sparse/include/asm-xeno/mmu_context.h
3e7270deQqtGPSnFxcW4AvJZuTUWfg xenolinux-2.4.21-pre4-sparse/include/asm-xeno/multicall.h
+1
View File
@@ -646,6 +646,7 @@ ENTRY(hypervisor_call_table)
.long SYMBOL_NAME(do_set_fast_trap)
.long SYMBOL_NAME(do_dom_mem_op)
.long SYMBOL_NAME(do_multicall)
.long SYMBOL_NAME(do_kbd_op)
.rept NR_syscalls-((.-hypervisor_call_table)/4)
.long SYMBOL_NAME(sys_ni_syscall)
.endr
+163 -64
View File
@@ -2,8 +2,10 @@
#include <asm-i386/irq.h>
#include <xeno/sched.h> /* this has request_irq() proto for some reason */
#include <xeno/keyhandler.h>
#include <hypervisor-ifs/kbd.h>
#include <xeno/event.h>
#define KEYBOARD_IRQ 1
/* Hash-defines torn from <linux/pc_keyb.h> and <asm/keyboard.h> */
#define KBD_STATUS_REG 0x64 /* Status register (R) */
#define KBD_CNTL_REG 0x64 /* Controller command register (W) */
@@ -23,27 +25,30 @@
#define kbd_read_input() inb(KBD_DATA_REG)
#define kbd_read_status() inb(KBD_STATUS_REG)
#define KEYBOARD_IRQ 1
#define kbd_write_output(val) outb(val, KBD_DATA_REG)
#define kbd_write_command(val) outb(val, KBD_CNTL_REG)
static int keyboard_shift = 0;
static int keyboard_control = 0;
static int keyboard_echo = 0;
#define AUX_IRQ 12
/* the following is pretty gross...
* stop reading if you don't want to throw up!
*/
/* THIS SECTION DEALS WITH CONFIG_XEN_ATTENTION_KEY */
// always set for now. potentially moved to config.in later.
#define CONFIG_XEN_ATTENTION_KEY
#ifdef CONFIG_XEN_ATTENTION_KEY
static int xen_attention_key_down = 0;
#define XEN_ATTENTION_KEY 0x46 // scroll lock
#define KBD_SCANCODE_KEYUP_MASK 0x80
#undef KBD_DEBUG
/* naive scancode -> key mappings for internal xen use */
static unsigned char keymap_normal[] =
{
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 ,'1','2', '3','4','5','6', '7','8','9','0', '-','=','\b','\t',
'q','w','e','r', 't','y','u','i', 'o','p','[',']','\r', 0 ,'a','s',
'd','f','g','h', 'j','k','l',';', '\'','`', 0 ,'#', 'z','x','c','v',
@@ -57,16 +62,6 @@ static unsigned char keymap_normal[] =
static unsigned char keymap_shift[] =
{
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 ,'!','"', '#','$','%','^', '&','*','(',')', '_','+','\b','\t',
'Q','W','E','R', 'T','Y','U','I', 'O','P','{','}','\r', 0 ,'A','S',
'D','F','G','H', 'J','K','L',':', '@', 0 , 0 ,'~', 'Z','X','C','V',
@@ -81,16 +76,6 @@ static unsigned char keymap_shift[] =
static unsigned char keymap_control[] =
{ /* same as normal, except for a-z -> 1 to 26 */
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 ,'1','2', '3','4','5','6', '7','8','9','0', '-','=','\b','\t',
17, 23, 5 , 18, 20, 25, 21, 9 , 15, 16,'[',']','\r', 0 , 1 , 19,
4 , 6 , 7 , 8 , 10, 11, 12,';', '\'','`', 0 ,'#', 26, 24, 3 , 22,
@@ -103,6 +88,10 @@ static unsigned char keymap_control[] =
};
static int keyboard_shift = 0;
static int keyboard_control = 0;
static int keyboard_echo = 0;
static unsigned char convert_scancode (unsigned char scancode)
{
unsigned char value = 0;
@@ -134,6 +123,10 @@ static unsigned char convert_scancode (unsigned char scancode)
break;
default: /* normal keys */
// dont process key-down events
if(!(scancode & KBD_SCANCODE_KEYUP_MASK)) break;
scancode = scancode & (~KBD_SCANCODE_KEYUP_MASK);
if (keyboard_control)
value = keymap_control[scancode];
else if (keyboard_shift)
@@ -148,45 +141,151 @@ static unsigned char convert_scancode (unsigned char scancode)
return value;
}
#endif /* CONFIG_XEN_ATTENTION_KEY */
/* THIS SECTION DEALS WITH STORING A RING OF PENDING EVENTS */
// store kbd events waiting to be processed by guest os
#define KBD_RING_SIZE 64
static int kbd_ring[KBD_RING_SIZE];
static int kbd_ring_prod = 0;
static int kbd_ring_cons = 0;
#define KBD_RING_INC(_i) (((_i)+1) & (KBD_RING_SIZE-1))
#define KBD_RING_FULL (KBD_RING_INC(kbd_ring_prod) == kbd_ring_cons)
#define KBD_RING_EMPTY (kbd_ring_prod == kbd_ring_cons)
// these assume locking has already been taken care of
static void kbd_ring_push(unsigned char status, unsigned char scancode) {
if(KBD_RING_FULL) return;
kbd_ring[kbd_ring_prod] = KBD_CODE(scancode, status);
kbd_ring_prod = KBD_RING_INC(kbd_ring_prod);
}
static int kbd_ring_pop() {
int ret;
if(KBD_RING_EMPTY) {
// read directly from controller - no events waiting in ring
unsigned char status = kbd_read_status();
unsigned char scancode = kbd_read_input();
return KBD_CODE(scancode, status);
}
ret = kbd_ring[kbd_ring_cons];
kbd_ring_cons = KBD_RING_INC(kbd_ring_cons);
return ret;
}
/* THIS SECTION DEALS WITH COMMUNICATING PS2 EVENTS/CMDS WITH GUEST OS */
// ownership of keyboard - current defaulting to dom0
#define KBD_ISOWNER(p) (p->domain == 0)
#define KBD_OWNER find_domain_by_id(0)
// need lock as there may be _two_ interrupts at play, keyboard and mouse, as well as guest os actions
static spinlock_t kbd_lock;
long do_kbd_op(unsigned char op, unsigned char val)
{
// check for domain 0
#ifdef KBD_DEBUG
printk("do_kbd_op: op %2x, val %2x, prod %d, cons %d\n", op, val, kbd_ring_prod, kbd_ring_cons);
#endif
if ( !KBD_ISOWNER(current) ) return -EPERM;
switch(op) {
case KBD_OP_WRITEOUTPUT:
kbd_write_output(val);
return 0L;
case KBD_OP_WRITECOMMAND:
kbd_write_command(val);
return 0L;
case KBD_OP_READ: {
unsigned long flags;
unsigned long ret;
spin_lock_irqsave(&kbd_lock, flags);
ret = kbd_ring_pop();
spin_unlock_irqrestore(&kbd_lock, flags);
return ret;
}
}
return -EINVAL;
}
static void keyboard_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
unsigned char status = kbd_read_status();
unsigned int work = 10000;
unsigned char status;
unsigned int work = 1000;
unsigned long cpu_mask;
unsigned long flags;
spin_lock_irqsave(&kbd_lock, flags);
status = kbd_read_status();
#ifdef KBD_DEBUG
printk("keyboard_interrupt irq %d, status 0x%2x\n", irq, status);
#endif
while ((--work > 0) && (status & KBD_STAT_OBF))
{
unsigned char scancode;
scancode = kbd_read_input();
if (!(status & (KBD_STAT_GTO | KBD_STAT_PERR)))
{
if (status & KBD_STAT_MOUSE_OBF)
/* mouse event, ignore */;
else {
unsigned char key;
key_handler *handler;
if((key = convert_scancode (scancode)) &&
(handler = get_key_handler(key)))
(*handler)(key, dev_id, regs);
}
{
unsigned char scancode;
scancode = kbd_read_input();
//printk("scancode 0x%2x\n", scancode);
#ifdef CONFIG_XEN_ATTENTION_KEY
if(!(status & (KBD_STAT_GTO | KBD_STAT_PERR | KBD_STAT_MOUSE_OBF))) {
if ((scancode & (~KBD_SCANCODE_KEYUP_MASK)) == XEN_ATTENTION_KEY) {
xen_attention_key_down = !(scancode & KBD_SCANCODE_KEYUP_MASK);
//printk("xen_attention_key_down %d\n", xen_attention_key_down);
} else if (xen_attention_key_down) {
key_handler *handler;
unsigned char key = convert_scancode(scancode);
if(key && (handler = get_key_handler(key)))
(*handler)(key, dev_id, regs);
status = kbd_read_status();
continue; // do not send key to guest os
}
}
#endif
if (!(status & (KBD_STAT_GTO | KBD_STAT_PERR))) {
kbd_ring_push(status, scancode);
cpu_mask = mark_guest_event(KBD_OWNER, _EVENT_KBD);
guest_event_notify(cpu_mask);
status = kbd_read_status();
scancode = kbd_read_input();
}
}
if (!work)
printk(KERN_ERR "pc_keyb: controller jammed (0x%02X).\n", status);
return;
}
printk(KERN_ERR "xen_keyb: controller jammed (0x%02X).\n", status);
spin_unlock_irqrestore(&kbd_lock, flags);
}
void initialize_keyboard()
{
if(request_irq(KEYBOARD_IRQ, keyboard_interrupt, SA_NOPROFILE, "keyboard", NULL))
printk("initialize_keyboard: failed to alloc IRQ %d\n", KEYBOARD_IRQ);
spin_lock_init(&kbd_lock);
return;
if(request_irq(KEYBOARD_IRQ, keyboard_interrupt, SA_NOPROFILE, "keyboard", NULL)) {
printk("initialize_keyboard: failed to alloc IRQ %d\n", KEYBOARD_IRQ);
return;
}
if(request_irq(AUX_IRQ, keyboard_interrupt, SA_NOPROFILE, "PS/2 Mouse", NULL)) {
printk("initialize_keyboard: failed to alloc IRQ %d\n", AUX_IRQ);
return;
}
#ifdef KBD_DEBUG
printk("PS/2 keyboard and mouse interface ok");
#endif
}
+3 -1
View File
@@ -47,6 +47,7 @@
#define __HYPERVISOR_set_fast_trap 16
#define __HYPERVISOR_dom_mem_op 17
#define __HYPERVISOR_multicall 18
#define __HYPERVISOR_kbd_op 19
/* And the trap vector is... */
#define TRAP_INSTR "int $0x82"
@@ -77,6 +78,7 @@
#define EVENT_DEBUG 0x08 /* Request guest to dump debug info (gross!) */
#define EVENT_NET_TX 0x10 /* There are packets for transmission. */
#define EVENT_NET_RX 0x20 /* There are empty buffers for receive. */
#define EVENT_KBD 0x40 /* PS/2 keyboard or mouse event(s) */
/* Bit offsets, as opposed to the above masks. */
#define _EVENT_BLK_RESP 0
@@ -85,7 +87,7 @@
#define _EVENT_NET_TX 3
#define _EVENT_NET_RX 4
#define _EVENT_DEBUG 5
#define _EVENT_KBD 6
/*
* Virtual addresses beyond this are not modifiable by guest OSes.
+20
View File
@@ -0,0 +1,20 @@
/******************************************************************************
* kbd.h
*
* PS/2 interface definitions
* Copyright (c) 2003 James Scott, Intel Research Cambridge
*/
#ifndef __HYPERVISOR_KBD_H__
#define __HYPERVISOR_KBD_H__
#define KBD_OP_WRITEOUTPUT 0
#define KBD_OP_WRITECOMMAND 1
#define KBD_OP_READ 2
#define KBD_CODE_SCANCODE(_r) ((unsigned char)((_r) & 0xff))
#define KBD_CODE_STATUS(_r) ((unsigned char)(((_r) >> 8) & 0xff))
#define KBD_CODE(_c, _s) ((int)(((_c) & 0xff) | (((_s) & 0xff) << 8)))
#endif
@@ -107,6 +107,8 @@ source drivers/block/Config.in
define_bool CONFIG_BLK_DEV_IDE_MODES n
define_bool CONFIG_BLK_DEV_HD n
source drivers/char/Config.in
source fs/Config.in
mainmenu_option next_comment
@@ -126,4 +128,4 @@ fi
endmenu
source lib/Config.in
source lib/Config.in
+110 -280
View File
@@ -1,6 +1,7 @@
#
# Automatically generated make config: don't edit
#
CONFIG_XENO=y
CONFIG_X86=y
CONFIG_ISA=y
# CONFIG_SBUS is not set
@@ -21,21 +22,10 @@ CONFIG_KMOD=y
#
# Processor type and features
#
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
CONFIG_M686=y
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MCYRIXIII is not set
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_CMPXCHG=y
@@ -44,34 +34,19 @@ CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_PGE=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set
CONFIG_X86_TSC=y
CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
# CONFIG_MATH_EMULATION is not set
# CONFIG_MTRR is not set
# CONFIG_SMP is not set
# CONFIG_X86_UP_APIC is not set
#
# General setup
#
CONFIG_NET=y
# CONFIG_PCI is not set
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_HOTPLUG is not set
# CONFIG_PCMCIA is not set
# CONFIG_HOTPLUG_PCI is not set
CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
@@ -80,54 +55,12 @@ CONFIG_KCORE_ELF=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_PM is not set
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
# CONFIG_APM_DO_ENABLE is not set
# CONFIG_APM_CPU_IDLE is not set
# CONFIG_APM_DISPLAY_BLANK is not set
# CONFIG_APM_RTC_IS_GMT is not set
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set
#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
#
# Plug and Play configuration
#
# CONFIG_PNP is not set
#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_XD is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_NBD=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_XENOLINUX_BLOCK=y
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_NETLINK=y
CONFIG_RTNETLINK=y
# CONFIG_NETLINK_DEV is not set
# CONFIG_NETFILTER is not set
CONFIG_FILTER=y
@@ -143,12 +76,18 @@ CONFIG_IP_PNP=y
# CONFIG_NET_IPGRE is not set
# CONFIG_INET_ECN is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_VLAN_8021Q is not set
#
#
#
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
#
# Appletalk devices
#
# CONFIG_DEV_APPLETALK is not set
# CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set
@@ -158,207 +97,119 @@ CONFIG_IP_PNP=y
# CONFIG_NET_SCHED is not set
#
# Telephony Support
# Network testing
#
# CONFIG_PHONE is not set
# CONFIG_NET_PKTGEN is not set
#
# ATA/IDE/MFM/RLL support
# Block devices
#
# CONFIG_IDE is not set
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_CISS_SCSI_TAPE is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_NBD=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
# CONFIG_BLK_STATS is not set
CONFIG_XENOLINUX_BLOCK=y
# CONFIG_BLK_DEV_IDE_MODES is not set
# CONFIG_BLK_DEV_HD is not set
#
# SCSI support
#
# CONFIG_SCSI is not set
#
# Fusion MPT device support
#
# CONFIG_FUSION_BOOT is not set
# CONFIG_FUSION_ISENSE is not set
# CONFIG_FUSION_CTL is not set
# CONFIG_FUSION_LAN is not set
#
# I2O device support
#
# CONFIG_I2O is not set
#
# Network device support
#
# CONFIG_NETDEVICES is not set
#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set
#
# IrDA (infrared) support
#
# CONFIG_IRDA is not set
#
# ISDN subsystem
#
# CONFIG_ISDN is not set
#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI is not set
#
# Input core support
#
# CONFIG_INPUT is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
#
# Character devices
#
# CONFIG_VT is not set
# CONFIG_SERIAL is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_DUMMY_CONSOLE is not set
CONFIG_PSMOUSE=y
# CONFIG_UNIX98_PTYS is not set
#
# I2C support
#
# CONFIG_I2C is not set
#
# Mice
#
# CONFIG_BUSMOUSE is not set
# CONFIG_MOUSE is not set
#
# Joysticks
#
# CONFIG_INPUT_GAMEPORT is not set
#
# Input core support is needed for gameports
#
#
# Input core support is needed for joysticks
#
# CONFIG_QIC02_TAPE is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
# CONFIG_AGP is not set
# CONFIG_DRM is not set
# CONFIG_MWAVE is not set
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
#
# File systems
#
# CONFIG_QUOTA is not set
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
# CONFIG_REISERFS_FS is not set
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_ADFS_FS is not set
# CONFIG_ADFS_FS_RW is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BEFS_DEBUG is not set
# CONFIG_BFS_FS is not set
CONFIG_EXT3_FS=y
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
# CONFIG_FAT_FS is not set
# CONFIG_MSDOS_FS is not set
# CONFIG_UMSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_JFFS_FS is not set
# CONFIG_JFFS2_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_TMPFS is not set
CONFIG_RAMFS=y
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_ZISOFS_FS=y
# CONFIG_JFS_FS is not set
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_NTFS_RW is not set
# CONFIG_HPFS_FS is not set
CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVFS_MOUNT is not set
# CONFIG_DEVFS_DEBUG is not set
# CONFIG_DEVPTS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX4FS_RW is not set
# CONFIG_ROMFS_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UDF_FS is not set
# CONFIG_UDF_RW is not set
# CONFIG_UFS_FS is not set
# Skanky NLS stuff
CONFIG_NLS_DEFAULT="iso8559-1"
CONFIG_NLS_CODEPAGE_437=n
CONFIG_NLS_CODEPAGE_737=n
CONFIG_NLS_CODEPAGE_775=n
CONFIG_NLS_CODEPAGE_850=n
CONFIG_NLS_CODEPAGE_852=n
CONFIG_NLS_CODEPAGE_855=n
CONFIG_NLS_CODEPAGE_857=n
CONFIG_NLS_CODEPAGE_860=n
CONFIG_NLS_CODEPAGE_861=n
CONFIG_NLS_CODEPAGE_862=n
CONFIG_NLS_CODEPAGE_863=n
CONFIG_NLS_CODEPAGE_864=n
CONFIG_NLS_CODEPAGE_865=n
CONFIG_NLS_CODEPAGE_866=n
CONFIG_NLS_CODEPAGE_869=n
CONFIG_NLS_CODEPAGE_936=n
CONFIG_NLS_CODEPAGE_950=n
CONFIG_NLS_CODEPAGE_932=n
CONFIG_NLS_CODEPAGE_949=n
CONFIG_NLS_CODEPAGE_874=n
CONFIG_NLS_ISO8859_8=n
CONFIG_NLS_CODEPAGE_1250=n
CONFIG_NLS_CODEPAGE_1251=n
CONFIG_NLS_ISO8859_1=n
CONFIG_NLS_ISO8859_2=n
CONFIG_NLS_ISO8859_3=n
CONFIG_NLS_ISO8859_4=n
CONFIG_NLS_ISO8859_5=n
CONFIG_NLS_ISO8859_6=n
CONFIG_NLS_ISO8859_7=n
CONFIG_NLS_ISO8859_9=n
CONFIG_NLS_ISO8859_13=n
CONFIG_NLS_ISO8859_14=n
CONFIG_NLS_ISO8859_15=n
CONFIG_NLS_KOI8_R=n
CONFIG_NLS_KOI8_U=n
CONFIG_NLS_UTF8=n
# CONFIG_UFS_FS_WRITE is not set
#
# Network File Systems
#
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_ROOT_NFS=y
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_TCP is not set
CONFIG_SUNRPC=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
# CONFIG_SMB_FS is not set
# CONFIG_NCP_FS is not set
# CONFIG_ZISOFS_FS is not set
# CONFIG_ZLIB_FS_INFLATE is not set
# CONFIG_NCPFS_PACKET_SIGNING is not set
# CONFIG_NCPFS_IOCTL_LOCKING is not set
# CONFIG_NCPFS_STRONG is not set
# CONFIG_NCPFS_NFS_NS is not set
# CONFIG_NCPFS_OS2_NS is not set
# CONFIG_NCPFS_SMALLDOS is not set
# CONFIG_NCPFS_NLS is not set
# CONFIG_NCPFS_EXTRAS is not set
CONFIG_ZISOFS_FS=y
#
# Partition Types
@@ -366,60 +217,49 @@ CONFIG_LOCKD_V4=y
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_SMB_NLS is not set
# CONFIG_NLS is not set
CONFIG_NLS=y
#
# Sound
#
# CONFIG_SOUND is not set
#
# USB support
#
#
# USB Controllers
#
#
# USB Device Class drivers
#
#
# USB Human Interface Devices (HID)
#
#
# Input core support is needed for USB HID
#
#
# USB Imaging devices
#
#
# USB Multimedia devices
#
#
# Video4Linux support is needed for USB Multimedia device support
#
#
# USB Network adaptors
#
#
# USB port drivers
#
#
# USB Serial Converter support
#
#
# USB Miscellaneous drivers
# Native Language Support
#
CONFIG_NLS_DEFAULT="iso8559-1"
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
#
# Kernel hacking
@@ -434,18 +274,8 @@ CONFIG_DEBUG_KERNEL=y
CONFIG_KALLSYMS=y
# CONFIG_FRAME_POINTER is not set
# Grim cruft
#
# CONFIG_VLAN_8021Q is not set
# CONFIG_NET_PKTGEN is not set
# CONFIG_BLK_STATS is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JBD_DEBUG is not set
# CONFIG_JFS_FS is not set
# CONFIG_QNX4FS_FS is not set
#
# Library routines
#
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=n
# CONFIG_ZLIB_DEFLATE is not set
@@ -0,0 +1,357 @@
#
# Character device configuration
#
mainmenu_option next_comment
comment 'Character devices'
bool 'Virtual terminal' CONFIG_VT
if [ "$CONFIG_VT" = "n" ]; then
bool 'Dummy Console (to allow kbd/mouse testing without VTs)' CONFIG_DUMMY_CONSOLE
fi
bool 'PS/2 mouse (aka "auxiliary device") support' CONFIG_PSMOUSE
bool 'Unix98 PTY support' CONFIG_UNIX98_PTYS
if [ "$CONFIG_UNIX98_PTYS" = "y" ]; then
int 'Maximum number of Unix98 PTYs in use (0-2048)' CONFIG_UNIX98_PTY_COUNT 256
fi
endmenu
# KEPT IN CASE WE WANT TO BRING SOME BACK...
#
#if [ "$CONFIG_VT" = "y" ]; then
# bool ' Support for console on virtual terminal' CONFIG_VT_CONSOLE
# if [ "$CONFIG_GSC_LASI" = "y" ]; then
# bool ' Support for Lasi/Dino PS2 port' CONFIG_GSC_PS2
# fi
#fi
#
#tristate 'Standard/generic (8250/16550 and compatible UARTs) serial support' CONFIG_SERIAL
#if [ "$CONFIG_SERIAL" = "y" ]; then
# bool ' Support for console on serial port' CONFIG_SERIAL_CONSOLE
# if [ "$CONFIG_GSC_LASI" = "y" ]; then
# bool ' serial port on GSC support' CONFIG_SERIAL_GSC
# fi
# if [ "$CONFIG_IA64" = "y" ]; then
# bool 'Support for serial console port described by EFI HCDP table' CONFIG_SERIAL_HCDP
# fi
# if [ "$CONFIG_ARCH_ACORN" = "y" ]; then
# tristate ' Atomwide serial port support' CONFIG_ATOMWIDE_SERIAL
# tristate ' Dual serial port support' CONFIG_DUALSP_SERIAL
# fi
#fi
#dep_mbool 'Extended dumb serial driver options' CONFIG_SERIAL_EXTENDED $CONFIG_SERIAL
#if [ "$CONFIG_SERIAL_EXTENDED" = "y" ]; then
# bool ' Support more than 4 serial ports' CONFIG_SERIAL_MANY_PORTS
# bool ' Support for sharing serial interrupts' CONFIG_SERIAL_SHARE_IRQ
# bool ' Autodetect IRQ on standard ports (unsafe)' CONFIG_SERIAL_DETECT_IRQ
# bool ' Support special multiport boards' CONFIG_SERIAL_MULTIPORT
# bool ' Support the Bell Technologies HUB6 card' CONFIG_HUB6
#fi
#bool 'Non-standard serial port support' CONFIG_SERIAL_NONSTANDARD
#if [ "$CONFIG_SERIAL_NONSTANDARD" = "y" ]; then
# tristate ' Computone IntelliPort Plus serial support' CONFIG_COMPUTONE
# tristate ' Comtrol Rocketport support' CONFIG_ROCKETPORT
# tristate ' Cyclades async mux support' CONFIG_CYCLADES
# if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_CYCLADES" != "n" ]; then
# bool ' Cyclades-Z interrupt mode operation (EXPERIMENTAL)' CONFIG_CYZ_INTR
# fi
# if [ "$CONFIG_X86_64" != "y" ]; then
# tristate ' Digiboard Intelligent Async Support' CONFIG_DIGIEPCA
# if [ "$CONFIG_DIGIEPCA" = "n" ]; then
# tristate ' Digiboard PC/Xx Support' CONFIG_DIGI
# fi
# fi
# dep_tristate ' Hayes ESP serial port support' CONFIG_ESPSERIAL $CONFIG_ISA
# tristate ' Moxa Intellio support' CONFIG_MOXA_INTELLIO
# tristate ' Moxa SmartIO support' CONFIG_MOXA_SMARTIO
# if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
# dep_tristate ' Multi-Tech multiport card support (EXPERIMENTAL)' CONFIG_ISI m
# fi
# tristate ' Microgate SyncLink card support' CONFIG_SYNCLINK
# tristate ' SyncLink Multiport support' CONFIG_SYNCLINKMP
# tristate ' HDLC line discipline support' CONFIG_N_HDLC
# tristate ' SDL RISCom/8 card support' CONFIG_RISCOM8
# if [ "$CONFIG_X86_64" != "y" ]; then
# tristate ' Specialix IO8+ card support' CONFIG_SPECIALIX
# if [ "$CONFIG_SPECIALIX" != "n" ]; then
# bool ' Specialix DTR/RTS pin is RTS' CONFIG_SPECIALIX_RTSCTS
# fi
# tristate ' Specialix SX (and SI) card support' CONFIG_SX
# tristate ' Specialix RIO system support' CONFIG_RIO
# if [ "$CONFIG_RIO" != "n" ]; then
# bool ' Support really old RIO/PCI cards' CONFIG_RIO_OLDPCI
# fi
# fi
# bool ' Stallion multiport serial support' CONFIG_STALDRV
# if [ "$CONFIG_STALDRV" = "y" ]; then
# tristate ' Stallion EasyIO or EC8/32 support' CONFIG_STALLION
# tristate ' Stallion EC8/64, ONboard, Brumby support' CONFIG_ISTALLION
# fi
# if [ "$CONFIG_PARISC" = "y" ]; then
# if [ "$CONFIG_PDC_CONSOLE" != "y" ]; then
# bool ' Serial MUX support' CONFIG_SERIAL_MUX CONFIG_SERIAL_NONSTANDARD
# fi
# if [ "$CONFIG_SERIAL_MUX" != "y" ]; then
# bool ' PDC software console support' CONFIG_PDC_CONSOLE CONFIG_SERIAL_NONSTANDARD
# fi
# fi
# if [ "$CONFIG_MIPS" = "y" ]; then
# bool ' TX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912
# dep_bool ' Console on TX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912
# bool ' Enable Au1000 UART Support' CONFIG_AU1000_UART
# if [ "$CONFIG_AU1000_UART" = "y" ]; then
# bool ' Enable Au1000 serial console' CONFIG_AU1000_SERIAL_CONSOLE
# fi
# bool 'TXx927 SIO support' CONFIG_TXX927_SERIAL
# if [ "$CONFIG_TXX927_SERIAL" = "y" ]; then
# bool 'TXx927 SIO Console support' CONFIG_TXX927_SERIAL_CONSOLE
# fi
# if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then
# bool ' Support for sb1250 onchip DUART' CONFIG_SIBYTE_SB1250_DUART
# if [ "$CONFIG_SIBYTE_SB1250_DUART" = "y" ]; then
# bool ' Console on SB1250 DUART' CONFIG_SIBYTE_SB1250_DUART_CONSOLE
# if [ "$CONFIG_SIBYTE_SB1250_DUART_CONSOLE" = "y" ]; then
# define_bool CONFIG_SERIAL_CONSOLE y
# fi
# int ' Output buffers size (in bytes)' CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE 1024
# bool ' Leave port 1 alone (for kgdb or audio)' CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
# fi
# fi
# fi
#fi
#if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_ZORRO" = "y" ]; then
# tristate 'Commodore A2232 serial support (EXPERIMENTAL)' CONFIG_A2232
#fi
#if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then
# bool 'DC21285 serial port support' CONFIG_SERIAL_21285
# if [ "$CONFIG_SERIAL_21285" = "y" ]; then
# if [ "$CONFIG_OBSOLETE" = "y" ]; then
# bool ' Use /dev/ttyS0 device (OBSOLETE)' CONFIG_SERIAL_21285_OLD
# fi
# bool ' Console on DC21285 serial port' CONFIG_SERIAL_21285_CONSOLE
# fi
# if [ "$CONFIG_MIPS" = "y" ]; then
# bool ' TMPTX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912
# dep_bool ' Console on TMPTX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912
# bool ' Enable Au1000 UART Support' CONFIG_AU1000_UART
# if [ "$CONFIG_AU1000_UART" = "y" ]; then
# bool ' Enable Au1000 serial console' CONFIG_AU1000_SERIAL_CONSOLE
# fi
# fi
# if [ "$CONFIG_PARISC" = "y" ]; then
# bool ' PDC software console support' CONFIG_PDC_CONSOLE
# fi
#fi
#if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then
# bool 'Enable Qtronix 990P Keyboard Support' CONFIG_QTRONIX_KEYBOARD
# if [ "$CONFIG_QTRONIX_KEYBOARD" = "y" ]; then
# define_bool CONFIG_IT8172_CIR y
# else
# bool ' Enable PS2 Keyboard Support' CONFIG_PC_KEYB
# fi
# bool 'Enable Smart Card Reader 0 Support ' CONFIG_IT8172_SCR0
# bool 'Enable Smart Card Reader 1 Support ' CONFIG_IT8172_SCR1
#fi
#if [ "$CONFIG_MIPS_IVR" = "y" ]; then
# bool 'Enable Qtronix 990P Keyboard Support' CONFIG_QTRONIX_KEYBOARD
# if [ "$CONFIG_QTRONIX_KEYBOARD" = "y" ]; then
# define_bool CONFIG_IT8172_CIR y
# fi
# bool 'Enable Smart Card Reader 0 Support ' CONFIG_IT8172_SCR0
#fi
##PTYS WERE HERE
#if [ "$CONFIG_PARPORT" != "n" ]; then
# dep_tristate 'Parallel printer support' CONFIG_PRINTER $CONFIG_PARPORT
# if [ "$CONFIG_PRINTER" != "n" ]; then
# bool ' Support for console on line printer' CONFIG_LP_CONSOLE
# fi
# dep_tristate 'Support for user-space parallel port device drivers' CONFIG_PPDEV $CONFIG_PARPORT
# dep_tristate 'Texas Instruments parallel link cable support' CONFIG_TIPAR $CONFIG_PARPORT
#fi
#
#if [ "$CONFIG_PPC64" ] ; then
# bool 'pSeries Hypervisor Virtual Console support' CONFIG_HVC_CONSOLE
#fi
#
#source drivers/i2c/Config.in
#
#mainmenu_option next_comment
#comment 'Mice'
#tristate 'Bus Mouse Support' CONFIG_BUSMOUSE
#if [ "$CONFIG_BUSMOUSE" != "n" ]; then
# dep_tristate ' ATIXL busmouse support' CONFIG_ATIXL_BUSMOUSE $CONFIG_BUSMOUSE
# dep_tristate ' Logitech busmouse support' CONFIG_LOGIBUSMOUSE $CONFIG_BUSMOUSE
# dep_tristate ' Microsoft busmouse support' CONFIG_MS_BUSMOUSE $CONFIG_BUSMOUSE
# if [ "$CONFIG_ADB" = "y" -a "$CONFIG_ADB_KEYBOARD" = "y" ]; then
# dep_tristate ' Apple Desktop Bus mouse support (old driver)' CONFIG_ADBMOUSE $CONFIG_BUSMOUSE
# fi
#fi
#
#tristate 'Mouse Support (not serial and bus mice)' CONFIG_MOUSE
#if [ "$CONFIG_MOUSE" != "n" ]; then
# bool ' PS/2 mouse (aka "auxiliary device") support' CONFIG_PSMOUSE
# tristate ' C&T 82C710 mouse port support (as on TI Travelmate)' CONFIG_82C710_MOUSE
# tristate ' PC110 digitizer pad support' CONFIG_PC110_PAD
# tristate ' MK712 touch screen support' CONFIG_MK712_MOUSE
#fi
#endmenu
#
#source drivers/char/joystick/Config.in
#
#tristate 'QIC-02 tape support' CONFIG_QIC02_TAPE
#if [ "$CONFIG_QIC02_TAPE" != "n" ]; then
# bool ' Do you want runtime configuration for QIC-02' CONFIG_QIC02_DYNCONF
# if [ "$CONFIG_QIC02_DYNCONF" != "y" ]; then
# comment ' Edit configuration parameters in ./include/linux/tpqic02.h!'
# else
# comment ' Setting runtime QIC-02 configuration is done with qic02conf'
# comment ' from the tpqic02-support package. It is available at'
# comment ' metalab.unc.edu or ftp://titus.cfw.com/pub/Linux/util/'
# fi
#fi
#
#tristate 'IPMI top-level message handler' CONFIG_IPMI_HANDLER
#dep_mbool ' Generate a panic event to all BMCs on a panic' CONFIG_IPMI_PANIC_EVENT $CONFIG_IPMI_HANDLER
#dep_tristate ' Device interface for IPMI' CONFIG_IPMI_DEVICE_INTERFACE $CONFIG_IPMI_HANDLER
#dep_tristate ' IPMI KCS handler' CONFIG_IPMI_KCS $CONFIG_IPMI_HANDLER
#dep_tristate ' IPMI Watchdog Timer' CONFIG_IPMI_WATCHDOG $CONFIG_IPMI_HANDLER
#
#mainmenu_option next_comment
#comment 'Watchdog Cards'
#bool 'Watchdog Timer Support' CONFIG_WATCHDOG
#if [ "$CONFIG_WATCHDOG" != "n" ]; then
# bool ' Disable watchdog shutdown on close' CONFIG_WATCHDOG_NOWAYOUT
# tristate ' Acquire SBC Watchdog Timer' CONFIG_ACQUIRE_WDT
# tristate ' Advantech SBC Watchdog Timer' CONFIG_ADVANTECH_WDT
# tristate ' ALi M7101 PMU Watchdog Timer' CONFIG_ALIM7101_WDT
# tristate ' AMD "Elan" SC520 Watchdog Timer' CONFIG_SC520_WDT
# tristate ' Berkshire Products PC Watchdog' CONFIG_PCWATCHDOG
# if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then
# tristate ' DC21285 watchdog' CONFIG_21285_WATCHDOG
# if [ "$CONFIG_ARCH_NETWINDER" = "y" ]; then
# tristate ' NetWinder WB83C977 watchdog' CONFIG_977_WATCHDOG
# fi
# fi
# tristate ' Eurotech CPU-1220/1410 Watchdog Timer' CONFIG_EUROTECH_WDT
# tristate ' IB700 SBC Watchdog Timer' CONFIG_IB700_WDT
# tristate ' ICP ELectronics Wafer 5823 Watchdog' CONFIG_WAFER_WDT
# if [ "$CONFIG_SGI_IP22" = "y" ]; then
# dep_tristate ' Indy/I2 Hardware Watchdog' CONFIG_INDYDOG $CONFIG_SGI_IP22
# fi
# tristate ' Intel i810 TCO timer / Watchdog' CONFIG_I810_TCO
# tristate ' Mixcom Watchdog' CONFIG_MIXCOMWD
# tristate ' SBC-60XX Watchdog Timer' CONFIG_60XX_WDT
# dep_tristate ' SC1200 Watchdog Timer (EXPERIMENTAL)' CONFIG_SC1200_WDT $CONFIG_EXPERIMENTAL
# tristate ' NatSemi SCx200 Watchdog' CONFIG_SCx200_WDT
# tristate ' Software Watchdog' CONFIG_SOFT_WATCHDOG
# tristate ' W83877F (EMACS) Watchdog Timer' CONFIG_W83877F_WDT
# tristate ' WDT Watchdog timer' CONFIG_WDT
# tristate ' WDT PCI Watchdog timer' CONFIG_WDTPCI
# if [ "$CONFIG_WDT" != "n" ]; then
# bool ' WDT501 features' CONFIG_WDT_501
# if [ "$CONFIG_WDT_501" = "y" ]; then
# bool ' Fan Tachometer' CONFIG_WDT_501_FAN
# fi
# fi
# tristate ' ZF MachZ Watchdog' CONFIG_MACHZ_WDT
# dep_tristate ' AMD 766/768 TCO Timer/Watchdog' CONFIG_AMD7XX_TCO $CONFIG_EXPERIMENTAL
#fi
#endmenu
#
#if [ "$CONFIG_ARCH_NETWINDER" = "y" ]; then
# tristate 'NetWinder thermometer support' CONFIG_DS1620
# tristate 'NetWinder Button' CONFIG_NWBUTTON
# if [ "$CONFIG_NWBUTTON" != "n" ]; then
# bool ' Reboot Using Button' CONFIG_NWBUTTON_REBOOT
# fi
# tristate 'NetWinder flash support' CONFIG_NWFLASH
#fi
#dep_tristate 'NatSemi SCx200 GPIO Support' CONFIG_SCx200_GPIO $CONFIG_SCx200
#
#if [ "$CONFIG_X86" = "y" -o "$CONFIG_X86_64" = "y" ]; then
# dep_tristate 'AMD 768 Random Number Generator support' CONFIG_AMD_RNG $CONFIG_PCI
#fi
#if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" ]; then
# dep_tristate 'Intel i8x0 Random Number Generator support' CONFIG_INTEL_RNG $CONFIG_PCI
#fi
#dep_tristate 'AMD 76x native power management (Experimental)' CONFIG_AMD_PM768 $CONFIG_PCI
#tristate '/dev/nvram support' CONFIG_NVRAM
#tristate 'Enhanced Real Time Clock Support' CONFIG_RTC
#if [ "$CONFIG_IA64" = "y" ]; then
# bool 'EFI Real Time Clock Services' CONFIG_EFI_RTC
#fi
#if [ "$CONFIG_OBSOLETE" = "y" -a "$CONFIG_ALPHA_BOOK1" = "y" ]; then
# bool 'Tadpole ANA H8 Support (OBSOLETE)' CONFIG_H8
#fi
#
#tristate 'Double Talk PC internal speech card support' CONFIG_DTLK
#tristate 'Siemens R3964 line discipline' CONFIG_R3964
#tristate 'Applicom intelligent fieldbus card support' CONFIG_APPLICOM
#if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_X86" = "y" -a "$CONFIG_X86_64" != "y" ]; then
# dep_tristate 'Sony Vaio Programmable I/O Control Device support (EXPERIMENTAL)' CONFIG_SONYPI $CONFIG_PCI
#fi
#
#mainmenu_option next_comment
#comment 'Ftape, the floppy tape device driver'
#tristate 'Ftape (QIC-80/Travan) support' CONFIG_FTAPE
#if [ "$CONFIG_FTAPE" != "n" ]; then
# source drivers/char/ftape/Config.in
#fi
#endmenu
#
#if [ "$CONFIG_GART_IOMMU" = "y" ]; then
# bool '/dev/agpgart (AGP Support)' CONFIG_AGP
# define_bool CONFIG_AGP_AMD_8151 y
#else
# tristate '/dev/agpgart (AGP Support)' CONFIG_AGP
#fi
#if [ "$CONFIG_AGP" != "n" ]; then
# bool ' Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860 support' CONFIG_AGP_INTEL
# bool ' Intel I810/I815/I830M (on-board) support' CONFIG_AGP_I810
# bool ' VIA chipset support' CONFIG_AGP_VIA
# bool ' AMD Irongate, 761, and 762 support' CONFIG_AGP_AMD
# if [ "$CONFIG_GART_IOMMU" != "y" ]; then
# bool ' AMD 8151 support' CONFIG_AGP_AMD_8151
# fi
# bool ' Generic SiS support' CONFIG_AGP_SIS
# bool ' ALI chipset support' CONFIG_AGP_ALI
# bool ' Serverworks LE/HE support' CONFIG_AGP_SWORKS
# if [ "$CONFIG_IA64" = "y" ]; then
# bool ' HP ZX1 AGP support' CONFIG_AGP_HP_ZX1
# fi
#fi
#
#bool 'Direct Rendering Manager (XFree86 DRI support)' CONFIG_DRM
#if [ "$CONFIG_DRM" = "y" ]; then
# bool ' Build drivers for old (XFree 4.0) DRM' CONFIG_DRM_OLD
# if [ "$CONFIG_DRM_OLD" = "y" ]; then
# comment 'DRM 4.0 drivers'
# source drivers/char/drm-4.0/Config.in
# else
# comment 'DRM 4.1 drivers'
# define_bool CONFIG_DRM_NEW y
# source drivers/char/drm/Config.in
# fi
#fi
#
#if [ "$CONFIG_HOTPLUG" = "y" -a "$CONFIG_PCMCIA" != "n" ]; then
# source drivers/char/pcmcia/Config.in
#fi
#if [ "$CONFIG_MIPS_AU1000" = "y" ]; then
# tristate ' Alchemy Au1000 GPIO device support' CONFIG_AU1000_GPIO
# tristate ' Au1000/ADS7846 touchscreen support' CONFIG_TS_AU1000_ADS7846
#fi
#if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then
# tristate ' ITE GPIO' CONFIG_ITE_GPIO
#fi
#
#if [ "$CONFIG_X86" = "y" ]; then
# tristate 'ACP Modem (Mwave) support' CONFIG_MWAVE
#fi
@@ -0,0 +1,339 @@
#
# Makefile for the kernel character device drivers.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# XENO INFO - this is just copied from the linux one
# and most is irrelevant for xenolinux and can go.
# (see Config.in for the relevant bits)
# JWS - added dummy_console to test ps2 functionality
#
# This file contains the font map for the default (hardware) font
#
FONTMAPFILE = cp437.uni
O_TARGET := char.o
obj-y += mem.o tty_io.o n_tty.o tty_ioctl.o raw.o pty.o misc.o random.o
# All of the (potential) objects that export symbols.
# This list comes from 'grep -l EXPORT_SYMBOL *.[hc]'.
export-objs := busmouse.o console.o keyboard.o sysrq.o \
misc.o pty.o random.o selection.o serial.o \
sonypi.o tty_io.o tty_ioctl.o generic_serial.o \
au1000_gpio.o hp_psaux.o nvram.o dummy_console.o
mod-subdirs := joystick ftape drm drm-4.0 pcmcia
list-multi :=
KEYMAP =defkeymap.o
KEYBD =pc_keyb.o
CONSOLE =console.o
SERIAL =serial.o
ifeq ($(ARCH),s390)
KEYMAP =
KEYBD =
CONSOLE =
SERIAL =
endif
ifeq ($(ARCH),mips)
ifneq ($(CONFIG_PC_KEYB),y)
KEYBD =
endif
endif
ifeq ($(ARCH),s390x)
KEYMAP =
KEYBD =
CONSOLE =
SERIAL =
endif
ifeq ($(ARCH),m68k)
ifdef CONFIG_AMIGA
KEYBD = amikeyb.o
else
ifndef CONFIG_MAC
KEYBD =
endif
endif
SERIAL =
endif
ifeq ($(ARCH),parisc)
ifdef CONFIG_GSC_PS2
KEYBD = hp_psaux.o hp_keyb.o
else
KEYBD =
endif
ifdef CONFIG_SERIAL_MUX
CONSOLE += mux.o
endif
ifdef CONFIG_PDC_CONSOLE
CONSOLE += pdc_console.o
endif
endif
ifdef CONFIG_Q40
KEYBD += q40_keyb.o
SERIAL = serial.o
endif
ifdef CONFIG_APOLLO
KEYBD += dn_keyb.o
endif
ifeq ($(ARCH),parisc)
ifdef CONFIG_GSC_PS2
KEYBD = hp_psaux.o hp_keyb.o
else
KEYBD =
endif
ifdef CONFIG_PDC_CONSOLE
CONSOLE += pdc_console.o
endif
endif
ifeq ($(ARCH),arm)
ifneq ($(CONFIG_PC_KEYMAP),y)
KEYMAP =
endif
ifneq ($(CONFIG_PC_KEYB),y)
KEYBD =
endif
endif
ifeq ($(ARCH),sh)
KEYMAP =
KEYBD =
CONSOLE =
ifeq ($(CONFIG_SH_HP600),y)
KEYMAP = defkeymap.o
KEYBD = scan_keyb.o hp600_keyb.o
CONSOLE = console.o
endif
ifeq ($(CONFIG_SH_DMIDA),y)
# DMIDA does not connect the HD64465 PS/2 keyboard port
# but we allow for USB keyboards to be plugged in.
KEYMAP = defkeymap.o
KEYBD = # hd64465_keyb.o pc_keyb.o
CONSOLE = console.o
endif
ifeq ($(CONFIG_SH_EC3104),y)
KEYMAP = defkeymap.o
KEYBD = ec3104_keyb.o
CONSOLE = console.o
endif
ifeq ($(CONFIG_SH_DREAMCAST),y)
KEYMAP = defkeymap.o
KEYBD =
CONSOLE = console.o
endif
endif
ifeq ($(CONFIG_DECSTATION),y)
KEYMAP =
KEYBD =
SERIAL = decserial.o
endif
ifeq ($(CONFIG_BAGET_MIPS),y)
KEYBD =
SERIAL =
endif
ifeq ($(CONFIG_NINO),y)
SERIAL =
endif
ifneq ($(CONFIG_SUN_SERIAL),)
SERIAL =
endif
ifeq ($(CONFIG_QTRONIX_KEYBOARD),y)
KEYBD = qtronix.o
KEYMAP = qtronixmap.o
endif
ifeq ($(CONFIG_DUMMY_KEYB),y)
KEYBD = dummy_keyb.o
endif
obj-$(CONFIG_VT) += vt.o vc_screen.o consolemap.o consolemap_deftbl.o $(CONSOLE) selection.o
ifeq ($(CONFIG_VT),)
obj-$(CONFIG_DUMMY_CONSOLE) += $(KEYBD) dummy_console.o
endif
obj-$(CONFIG_SERIAL) += $(SERIAL)
obj-$(CONFIG_SERIAL_HCDP) += hcdp_serial.o
obj-$(CONFIG_SERIAL_21285) += serial_21285.o
obj-$(CONFIG_SERIAL_SA1100) += serial_sa1100.o
obj-$(CONFIG_SERIAL_AMBA) += serial_amba.o
obj-$(CONFIG_TS_AU1000_ADS7846) += au1000_ts.o
ifndef CONFIG_SUN_KEYBOARD
obj-$(CONFIG_VT) += keyboard.o $(KEYMAP) $(KEYBD)
else
obj-$(CONFIG_PCI) += keyboard.o $(KEYMAP)
endif
obj-$(CONFIG_HIL) += hp_keyb.o
obj-$(CONFIG_MAGIC_SYSRQ) += sysrq.o
obj-$(CONFIG_ATARI_DSP56K) += dsp56k.o
obj-$(CONFIG_ROCKETPORT) += rocket.o
obj-$(CONFIG_MOXA_SMARTIO) += mxser.o
obj-$(CONFIG_MOXA_INTELLIO) += moxa.o
obj-$(CONFIG_DIGI) += pcxx.o
obj-$(CONFIG_DIGIEPCA) += epca.o
obj-$(CONFIG_CYCLADES) += cyclades.o
obj-$(CONFIG_STALLION) += stallion.o
obj-$(CONFIG_ISTALLION) += istallion.o
obj-$(CONFIG_SIBYTE_SB1250_DUART) += sb1250_duart.o
obj-$(CONFIG_COMPUTONE) += ip2.o ip2main.o
obj-$(CONFIG_RISCOM8) += riscom8.o
obj-$(CONFIG_ISI) += isicom.o
obj-$(CONFIG_ESPSERIAL) += esp.o
obj-$(CONFIG_SYNCLINK) += synclink.o
obj-$(CONFIG_SYNCLINKMP) += synclinkmp.o
obj-$(CONFIG_N_HDLC) += n_hdlc.o
obj-$(CONFIG_SPECIALIX) += specialix.o
obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o
obj-$(CONFIG_A2232) += ser_a2232.o generic_serial.o
obj-$(CONFIG_SX) += sx.o generic_serial.o
obj-$(CONFIG_RIO) += rio/rio.o generic_serial.o
obj-$(CONFIG_SH_SCI) += sh-sci.o generic_serial.o
obj-$(CONFIG_SERIAL167) += serial167.o
obj-$(CONFIG_MVME147_SCC) += generic_serial.o vme_scc.o
obj-$(CONFIG_MVME162_SCC) += generic_serial.o vme_scc.o
obj-$(CONFIG_BVME6000_SCC) += generic_serial.o vme_scc.o
obj-$(CONFIG_HVC_CONSOLE) += hvc_console.o
obj-$(CONFIG_SERIAL_TX3912) += generic_serial.o serial_tx3912.o
obj-$(CONFIG_TXX927_SERIAL) += serial_txx927.o
subdir-$(CONFIG_RIO) += rio
subdir-$(CONFIG_INPUT) += joystick
obj-$(CONFIG_ATIXL_BUSMOUSE) += atixlmouse.o
obj-$(CONFIG_LOGIBUSMOUSE) += logibusmouse.o
obj-$(CONFIG_PRINTER) += lp.o
obj-$(CONFIG_TIPAR) += tipar.o
ifeq ($(CONFIG_INPUT),y)
obj-y += joystick/js.o
endif
obj-$(CONFIG_BUSMOUSE) += busmouse.o
obj-$(CONFIG_DTLK) += dtlk.o
obj-$(CONFIG_R3964) += n_r3964.o
obj-$(CONFIG_APPLICOM) += applicom.o
obj-$(CONFIG_SONYPI) += sonypi.o
obj-$(CONFIG_MS_BUSMOUSE) += msbusmouse.o
obj-$(CONFIG_82C710_MOUSE) += qpmouse.o
obj-$(CONFIG_AMIGAMOUSE) += amigamouse.o
obj-$(CONFIG_ATARIMOUSE) += atarimouse.o
obj-$(CONFIG_ADBMOUSE) += adbmouse.o
obj-$(CONFIG_PC110_PAD) += pc110pad.o
obj-$(CONFIG_MK712_MOUSE) += mk712.o
obj-$(CONFIG_RTC) += rtc.o
obj-$(CONFIG_EFI_RTC) += efirtc.o
ifeq ($(CONFIG_PPC),)
obj-$(CONFIG_NVRAM) += nvram.o
endif
obj-$(CONFIG_TOSHIBA) += toshiba.o
obj-$(CONFIG_I8K) += i8k.o
obj-$(CONFIG_DS1620) += ds1620.o
obj-$(CONFIG_INTEL_RNG) += i810_rng.o
obj-$(CONFIG_AMD_RNG) += amd768_rng.o
obj-$(CONFIG_AMD_PM768) += amd76x_pm.o
obj-$(CONFIG_ITE_GPIO) += ite_gpio.o
obj-$(CONFIG_AU1000_GPIO) += au1000_gpio.o
obj-$(CONFIG_COBALT_LCD) += lcd.o
obj-$(CONFIG_QIC02_TAPE) += tpqic02.o
subdir-$(CONFIG_FTAPE) += ftape
subdir-$(CONFIG_DRM_OLD) += drm-4.0
subdir-$(CONFIG_DRM_NEW) += drm
subdir-$(CONFIG_PCMCIA) += pcmcia
subdir-$(CONFIG_AGP) += agp
ifeq ($(CONFIG_FTAPE),y)
obj-y += ftape/ftape.o
endif
obj-$(CONFIG_H8) += h8.o
obj-$(CONFIG_PPDEV) += ppdev.o
obj-$(CONFIG_DZ) += dz.o
obj-$(CONFIG_NWBUTTON) += nwbutton.o
obj-$(CONFIG_NWFLASH) += nwflash.o
obj-$(CONFIG_SCx200_GPIO) += scx200_gpio.o scx200.o
# Only one watchdog can succeed. We probe the hardware watchdog
# drivers first, then the softdog driver. This means if your hardware
# watchdog dies or is 'borrowed' for some reason the software watchdog
# still gives you some cover.
obj-$(CONFIG_PCWATCHDOG) += pcwd.o
obj-$(CONFIG_ACQUIRE_WDT) += acquirewdt.o
obj-$(CONFIG_ADVANTECH_WDT) += advantechwdt.o
obj-$(CONFIG_IB700_WDT) += ib700wdt.o
obj-$(CONFIG_MIXCOMWD) += mixcomwd.o
obj-$(CONFIG_60XX_WDT) += sbc60xxwdt.o
obj-$(CONFIG_W83877F_WDT) += w83877f_wdt.o
obj-$(CONFIG_SC520_WDT) += sc520_wdt.o
obj-$(CONFIG_WDT) += wdt.o
obj-$(CONFIG_WDTPCI) += wdt_pci.o
obj-$(CONFIG_21285_WATCHDOG) += wdt285.o
obj-$(CONFIG_977_WATCHDOG) += wdt977.o
obj-$(CONFIG_I810_TCO) += i810-tco.o
obj-$(CONFIG_MACHZ_WDT) += machzwd.o
obj-$(CONFIG_SH_WDT) += shwdt.o
obj-$(CONFIG_EUROTECH_WDT) += eurotechwdt.o
obj-$(CONFIG_ALIM7101_WDT) += alim7101_wdt.o
#obj-$(CONFIG_ALIM1535_WDT) += alim1535d_wdt.o
obj-$(CONFIG_INDYDOG) += indydog.o
obj-$(CONFIG_SC1200_WDT) += sc1200wdt.o
obj-$(CONFIG_SCx200_WDT) += scx200_wdt.o
obj-$(CONFIG_WAFER_WDT) += wafer5823wdt.o
obj-$(CONFIG_SOFT_WATCHDOG) += softdog.o
obj-$(CONFIG_AMD7XX_TCO) += amd7xx_tco.o
subdir-$(CONFIG_MWAVE) += mwave
ifeq ($(CONFIG_MWAVE),y)
obj-y += mwave/mwave.o
endif
subdir-$(CONFIG_IPMI_HANDLER) += ipmi
ifeq ($(CONFIG_IPMI_HANDLER),y)
obj-y += ipmi/ipmi.o
endif
include $(TOPDIR)/Rules.make
fastdep:
conmakehash: conmakehash.c
$(HOSTCC) $(HOSTCFLAGS) -o conmakehash conmakehash.c
consolemap_deftbl.c: $(FONTMAPFILE) conmakehash
./conmakehash $(FONTMAPFILE) > consolemap_deftbl.c
consolemap_deftbl.o: consolemap_deftbl.c $(TOPDIR)/include/linux/types.h
.DELETE_ON_ERROR:
defkeymap.c: defkeymap.map
set -e ; loadkeys --mktable $< | sed -e 's/^static *//' > $@
qtronixmap.c: qtronixmap.map
set -e ; loadkeys --mktable $< | sed -e 's/^static *//' > $@
@@ -0,0 +1,37 @@
// This file is unashamed hackery to allow keyboard support without console/vt support.
// It could be made more useful by linking sysrq in somehow..
// But right now its just for testing keyboard functionality in Xen while console functionality is not yet implemented.
#include <linux/config.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/mm.h>
#include <linux/string.h>
#include <linux/random.h>
#include <linux/init.h>
#include <asm/keyboard.h>
#include <asm/bitops.h>
#include <linux/kbd_kern.h>
#include <linux/kbd_diacr.h>
#include <linux/vt_kern.h>
#include <linux/kbd_ll.h>
#include <linux/sysrq.h>
#include <linux/pm.h>
static void kbd_bh(unsigned long dummy)
{
}
EXPORT_SYMBOL(keyboard_tasklet);
DECLARE_TASKLET_DISABLED(keyboard_tasklet, kbd_bh, 0);
int (*kbd_rate)(struct kbd_repeat *rep);
int __init kbd_init(void) {
kbd_init_hw();
}
@@ -2358,6 +2358,11 @@ void __init tty_init(void)
panic("Couldn't register /dev/tty0 driver\n");
kbd_init();
#else
// the below is a dodgy hack to allow keyboard/mouse support without the console support, along with the file "dummy_console.c"
#ifdef CONFIG_DUMMY_CONSOLE
kbd_init();
#endif
#endif
#ifdef CONFIG_ESPSERIAL /* init ESP before rs, so rs doesn't see the port */
@@ -353,4 +353,16 @@ static inline int HYPERVISOR_multicall(void *call_list, int nr_calls)
return ret;
}
static inline long HYPERVISOR_kbd_op(unsigned char op, unsigned char val)
{
int ret;
__asm__ __volatile__ (
TRAP_INSTR
: "=a" (ret) : "0" (__HYPERVISOR_kbd_op),
"b" (op), "c" (val) );
return ret;
}
#endif /* __HYPERVISOR_H__ */
@@ -0,0 +1,95 @@
/* xenolinux/include/asm-xeno/keyboard.h */
/* Portions copyright (c) 2003 James Scott, Intel Research Cambridge */
/* Talks to hypervisor to get PS/2 keyboard and mouse events, and send keyboard and mouse commands */
/* Based on:
* linux/include/asm-i386/keyboard.h
*
* Created 3 Nov 1996 by Geert Uytterhoeven
*/
#ifndef _XENO_KEYBOARD_H
#define _XENO_KEYBOARD_H
#ifdef __KERNEL__
#include <linux/kernel.h>
#include <linux/ioport.h>
#include <linux/kd.h>
#include <linux/pm.h>
#include <asm/io.h>
#define KEYBOARD_IRQ _EVENT_KBD
#define AUX_IRQ _EVENT_KBD
/* THIS SECTION RELATIVELY UNTOUCHED */
extern int pckbd_setkeycode(unsigned int scancode, unsigned int keycode);
extern int pckbd_getkeycode(unsigned int scancode);
extern int pckbd_translate(unsigned char scancode, unsigned char *keycode,
char raw_mode);
extern char pckbd_unexpected_up(unsigned char keycode);
extern void pckbd_leds(unsigned char leds);
extern void pckbd_init_hw(void);
extern int pckbd_pm_resume(struct pm_dev *, pm_request_t, void *);
extern pm_callback pm_kbd_request_override;
extern unsigned char pckbd_sysrq_xlate[128];
#define kbd_setkeycode pckbd_setkeycode
#define kbd_getkeycode pckbd_getkeycode
#define kbd_translate pckbd_translate
#define kbd_unexpected_up pckbd_unexpected_up
#define kbd_leds pckbd_leds
#define kbd_init_hw pckbd_init_hw
#define kbd_sysrq_xlate pckbd_sysrq_xlate
#define SYSRQ_KEY 0x54
/* THIS SECTION TALKS TO XEN TO DO PS2 SUPPORT */
#include <asm/hypervisor-ifs/kbd.h>
#include <asm/hypervisor-ifs/hypervisor-if.h>
/* resource allocation */
#define kbd_request_region() do { } while (0)
#define kbd_request_irq(handler) request_irq(_EVENT_KBD, handler, 0, "PS/2 kbd", NULL)
// could implement these with command to xen to filter mouse stuff...
#define aux_request_irq(hand, dev_id) 0
#define aux_free_irq(dev_id) do { } while(0)
/* Some stoneage hardware needs delays after some operations. */
#define kbd_pause() do { } while(0)
static unsigned char kbd_current_scancode = 0;
static unsigned char kbd_read_input(void)
{
//printk("kbd_read_input: returning scancode 0x%2x\n", kbd_current_scancode);
return kbd_current_scancode;
}
static unsigned char kbd_read_status(void)
{
long res;
res = HYPERVISOR_kbd_op(KBD_OP_READ,0);
if(res<0) {
//printk("kbd_read_status: error from hypervisor: %d", res);
kbd_current_scancode = 0;
return 0; // error with our request - wrong domain?
}
kbd_current_scancode = KBD_CODE_SCANCODE(res);
//printk("kbd_read_status: returning status 0x%2x\n", KBD_CODE_STATUS(res));
return KBD_CODE_STATUS(res);
}
#define kbd_write_output(val) HYPERVISOR_kbd_op(KBD_OP_WRITEOUTPUT, val);
#define kbd_write_command(val) HYPERVISOR_kbd_op(KBD_OP_WRITECOMMAND, val);
#endif /* __KERNEL__ */
#endif /* _XENO_KEYBOARD_H */
-1
View File
@@ -56,7 +56,6 @@ ln -sf ../asm-i386/ioctl.h
ln -sf ../asm-i386/ioctls.h
ln -sf ../asm-i386/ipcbuf.h
ln -sf ../asm-i386/ipc.h
ln -sf ../asm-i386/keyboard.h
ln -sf ../asm-i386/kmap_types.h
ln -sf ../asm-i386/ldt.h
ln -sf ../asm-i386/linux_logo.h
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.