aboutsummaryrefslogtreecommitdiffstats
path: root/xenolinux-2.4.21-pre4-sparse
diff options
context:
space:
mode:
authorach61@boulderdash.cl.cam.ac.uk <ach61@boulderdash.cl.cam.ac.uk>2003-04-28 13:06:57 +0000
committerach61@boulderdash.cl.cam.ac.uk <ach61@boulderdash.cl.cam.ac.uk>2003-04-28 13:06:57 +0000
commit58c32463266035f119d67418ecd3ad2caf17601c (patch)
treed3a5950b6e6f51b5e6fbdb0f1bf1d61b0e91fb62 /xenolinux-2.4.21-pre4-sparse
parent3034b03d46a3340d978bc0dc1cde0ebc6825c8b8 (diff)
parentee2dfef113a6611922fc5ba9c98262037443453c (diff)
downloadxen-58c32463266035f119d67418ecd3ad2caf17601c.tar.gz
xen-58c32463266035f119d67418ecd3ad2caf17601c.tar.bz2
xen-58c32463266035f119d67418ecd3ad2caf17601c.zip
bitkeeper revision 1.188 (3ead27718TdgjbqnWkDXICxGwmRyPg)
Merge boulderdash.cl.cam.ac.uk:/auto/groups/xeno/BK/xeno.bk into boulderdash.cl.cam.ac.uk:/auto/anfs/scratch/boulderdash/ach61/xeno/xeno.bk
Diffstat (limited to 'xenolinux-2.4.21-pre4-sparse')
-rw-r--r--xenolinux-2.4.21-pre4-sparse/arch/xeno/config.in4
-rw-r--r--xenolinux-2.4.21-pre4-sparse/arch/xeno/defconfig390
-rw-r--r--xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c2
-rw-r--r--xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.h16
-rw-r--r--xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c13
-rw-r--r--xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_scsi.c13
-rw-r--r--xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_segment.c5
-rw-r--r--xenolinux-2.4.21-pre4-sparse/drivers/char/Config.in357
-rw-r--r--xenolinux-2.4.21-pre4-sparse/drivers/char/Makefile339
-rw-r--r--xenolinux-2.4.21-pre4-sparse/drivers/char/dummy_console.c37
-rw-r--r--xenolinux-2.4.21-pre4-sparse/drivers/char/tty_io.c5
-rw-r--r--xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor.h12
-rw-r--r--xenolinux-2.4.21-pre4-sparse/include/asm-xeno/keyboard.h95
-rw-r--r--xenolinux-2.4.21-pre4-sparse/include/linux/major.h9
-rw-r--r--xenolinux-2.4.21-pre4-sparse/init/do_mounts.c11
-rwxr-xr-xxenolinux-2.4.21-pre4-sparse/mkbuildtree1
16 files changed, 988 insertions, 321 deletions
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/config.in b/xenolinux-2.4.21-pre4-sparse/arch/xeno/config.in
index 7dd6b1c985..2bf874d69e 100644
--- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/config.in
+++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/config.in
@@ -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 \ No newline at end of file
+source lib/Config.in
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/defconfig b/xenolinux-2.4.21-pre4-sparse/arch/xeno/defconfig
index c9e4e1a4f7..6e2e14723f 100644
--- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/defconfig
+++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/defconfig
@@ -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
-
-#
-# 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
-#
+CONFIG_NLS=y
#
-# 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
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c
index 6e66845c84..8a48285fb1 100644
--- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c
+++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c
@@ -10,8 +10,6 @@
typedef unsigned char byte; /* from linux/ide.h */
-#define XLBLK_MAX 32
-
#define XLBLK_RESPONSE_IRQ _EVENT_BLK_RESP
#define DEBUG_IRQ _EVENT_DEBUG
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.h b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.h
index bc6432b778..b3f6fb98e9 100644
--- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.h
+++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.h
@@ -39,12 +39,20 @@
#define DPRINTK_IOCTL(_f, _a...) ((void)0)
#endif
-/* IDE/SCSI have <= 32 partitions per device. VIRT has <= 16. */
-#define PARTN_SHIFT(_dev) ((MAJOR(_dev)==XLVIRT_MAJOR) ? 4 : 5)
-#define XLIDE_PARTN_SHIFT 5
-#define XLSCSI_PARTN_SHIFT 5
+/* XL IDE and SCSI use same major/minor numbers as normal Linux devices. */
+#define XLIDE_MAJOR IDE0_MAJOR
+#define XLSCSI_MAJOR SCSI_DISK0_MAJOR
+
+/* IDE has < 64 partitions per device. VIRT and SCSI have < 16. */
+#define PARTN_SHIFT(_dev) ((MAJOR(_dev)==IDE0_MAJOR) ? 6 : 4)
+#define XLIDE_PARTN_SHIFT 6
+#define XLSCSI_PARTN_SHIFT 4
#define XLVIRT_PARTN_SHIFT 4
+#define XLIDE_DEVS_PER_MAJOR (256 >> XLIDE_PARTN_SHIFT)
+#define XLSCSI_DEVS_PER_MAJOR (256 >> XLSCSI_PARTN_SHIFT)
+#define XLVIRT_DEVS_PER_MAJOR (256 >> XLVIRT_PARTN_SHIFT)
+
/*
* We have one of these per XL-IDE, XL-SCSI, and XL-VIRT device.
* They hang in an array off the gendisk structure. We may end up putting
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c
index f8ff9dd795..510a73805e 100644
--- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c
+++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c
@@ -2,7 +2,6 @@
* xl_ide.c
*
* Xenolinux virtual IDE block-device driver.
- *
*/
#include "xl_block.h"
@@ -10,9 +9,8 @@
#define MAJOR_NR XLIDE_MAJOR
#include <linux/blk.h>
-/* We support up to 16 devices of up to 16 partitions each. */
#define XLIDE_MAX 256
-#define XLIDE_MAJOR_NAME "xhd"
+#define XLIDE_MAJOR_NAME "hd"
static int xlide_blksize_size[XLIDE_MAX];
static int xlide_hardsect_size[XLIDE_MAX];
static int xlide_max_sectors[XLIDE_MAX];
@@ -45,7 +43,9 @@ int xlide_init(xen_disk_info_t *xdi)
units = 0;
for ( i = 0; i < xdi->count; i++ )
if ( IS_IDE_XENDEV(xdi->disks[i].device) &&
- ((xdi->disks[i].device & XENDEV_IDX_MASK) < 16) ) units++;
+ ((xdi->disks[i].device & XENDEV_IDX_MASK) <
+ XLIDE_DEVS_PER_MAJOR) )
+ units++;
if ( units == 0 ) return 0;
SET_MODULE_OWNER(&xlide_block_fops);
@@ -112,8 +112,9 @@ int xlide_init(xen_disk_info_t *xdi)
minor = disk << XLIDE_PARTN_SHIFT;
- /* We can use the first 16 IDE devices. */
- if ( !IS_IDE_XENDEV(xdi->disks[i].device) || (disk >= 16) ) continue;
+ if ( !IS_IDE_XENDEV(xdi->disks[i].device) ||
+ (disk >= XLIDE_DEVS_PER_MAJOR) )
+ continue;
((xl_disk_t *)gd->real_devices)[disk].capacity =
xdi->disks[i].capacity;
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_scsi.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_scsi.c
index 8daadf8791..f3d049238f 100644
--- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_scsi.c
+++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_scsi.c
@@ -2,7 +2,6 @@
* xl_scsi.c
*
* Xenolinux virtual SCSI block-device driver.
- *
*/
#include "xl_block.h"
@@ -10,9 +9,8 @@
#define MAJOR_NR XLSCSI_MAJOR
#include <linux/blk.h>
-/* We support up to 16 devices of up to 16 partitions each. */
#define XLSCSI_MAX 256
-#define XLSCSI_MAJOR_NAME "xsd"
+#define XLSCSI_MAJOR_NAME "sd"
static int xlscsi_blksize_size[XLSCSI_MAX];
static int xlscsi_hardsect_size[XLSCSI_MAX];
static int xlscsi_max_sectors[XLSCSI_MAX];
@@ -45,7 +43,9 @@ int xlscsi_init(xen_disk_info_t *xdi)
units = 0;
for ( i = 0; i < xdi->count; i++ )
if ( IS_SCSI_XENDEV(xdi->disks[i].device) &&
- ((xdi->disks[i].device & XENDEV_IDX_MASK) < 16) ) units++;
+ ((xdi->disks[i].device & XENDEV_IDX_MASK) <
+ XLSCSI_DEVS_PER_MAJOR) )
+ units++;
if ( units == 0 ) return 0;
SET_MODULE_OWNER(&xlscsi_block_fops);
@@ -110,8 +110,9 @@ int xlscsi_init(xen_disk_info_t *xdi)
{
disk = xdi->disks[i].device & XENDEV_IDX_MASK;
- /* We can use the first 16 IDE devices. */
- if ( !IS_SCSI_XENDEV(xdi->disks[i].device) || (disk >= 16) ) continue;
+ if ( !IS_SCSI_XENDEV(xdi->disks[i].device) ||
+ (disk >= XLSCSI_DEVS_PER_MAJOR) )
+ continue;
((xl_disk_t *)gd->real_devices)[disk].capacity =
xdi->disks[i].capacity;
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_segment.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_segment.c
index 2e86c25831..e746e2db3d 100644
--- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_segment.c
+++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_segment.c
@@ -13,7 +13,6 @@
/* Copied from linux/ide.h */
typedef unsigned char byte;
-/* We support up to 16 devices of up to 16 partitions each. */
#define XLVIRT_MAX 256
#define XLVIRT_MAJOR_NAME "xvd"
static int xlseg_blksize_size[XLVIRT_MAX];
@@ -119,8 +118,8 @@ int __init xlseg_init(void)
{
disk = xdi->disks[i].device & XENDEV_IDX_MASK;
- /* We can use the first 16 IDE devices. */
- if ( !IS_VIRTUAL_XENDEV(xdi->disks[i].device) || (disk >= 16) )
+ if ( !IS_VIRTUAL_XENDEV(xdi->disks[i].device) ||
+ (disk >= XLVIRT_DEVS_PER_MAJOR) )
continue;
((xl_disk_t *)gd->real_devices)[disk].capacity =
diff --git a/xenolinux-2.4.21-pre4-sparse/drivers/char/Config.in b/xenolinux-2.4.21-pre4-sparse/drivers/char/Config.in
new file mode 100644
index 0000000000..edeb8b3a71
--- /dev/null
+++ b/xenolinux-2.4.21-pre4-sparse/drivers/char/Config.in
@@ -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
+
+
+
+
+
diff --git a/xenolinux-2.4.21-pre4-sparse/drivers/char/Makefile b/xenolinux-2.4.21-pre4-sparse/drivers/char/Makefile
new file mode 100644
index 0000000000..0b7b73cd16
--- /dev/null
+++ b/xenolinux-2.4.21-pre4-sparse/drivers/char/Makefile
@@ -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 *//' > $@
diff --git a/xenolinux-2.4.21-pre4-sparse/drivers/char/dummy_console.c b/xenolinux-2.4.21-pre4-sparse/drivers/char/dummy_console.c
new file mode 100644
index 0000000000..0d0f7b96c2
--- /dev/null
+++ b/xenolinux-2.4.21-pre4-sparse/drivers/char/dummy_console.c
@@ -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();
+}
diff --git a/xenolinux-2.4.21-pre4-sparse/drivers/char/tty_io.c b/xenolinux-2.4.21-pre4-sparse/drivers/char/tty_io.c
index de339ba297..8f7e08bc94 100644
--- a/xenolinux-2.4.21-pre4-sparse/drivers/char/tty_io.c
+++ b/xenolinux-2.4.21-pre4-sparse/drivers/char/tty_io.c
@@ -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 */
diff --git a/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor.h b/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor.h
index b7dfb52e20..935ea3a6ef 100644
--- a/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor.h
+++ b/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor.h
@@ -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__ */
diff --git a/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/keyboard.h b/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/keyboard.h
new file mode 100644
index 0000000000..263aa595a1
--- /dev/null
+++ b/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/keyboard.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 */
diff --git a/xenolinux-2.4.21-pre4-sparse/include/linux/major.h b/xenolinux-2.4.21-pre4-sparse/include/linux/major.h
index 6b22ee5812..f311bd4a9d 100644
--- a/xenolinux-2.4.21-pre4-sparse/include/linux/major.h
+++ b/xenolinux-2.4.21-pre4-sparse/include/linux/major.h
@@ -146,15 +146,10 @@
#define UMEM_MAJOR 116 /* http://www.umem.com/ Battery Backed RAM */
/*
- * XLIDE/XLSCSI each support up to 8 devices of <= 32 partitions each.
* XLVIRT supports 16 devices of <= 16 partitions each.
- * eg. xhda == (123, 0), xhdb == (123, 32), ...
- * xsda == (124, 0), xsdb == (124, 32), ...
- * xvda == (125, 0), xvdb == (125, 16), ...
+ * eg. xvda == (125, 0), xvdb == (125, 16), ...
*/
-#define XLIDE_MAJOR 123 /* XenoLinux IDE Device */
-#define XLSCSI_MAJOR 124 /* XenoLinux SCSI Device */
-#define XLVIRT_MAJOR 125 /* XenoLinux Virtual Device */
+#define XLVIRT_MAJOR 125
#define RTF_MAJOR 150
#define RAW_MAJOR 162
diff --git a/xenolinux-2.4.21-pre4-sparse/init/do_mounts.c b/xenolinux-2.4.21-pre4-sparse/init/do_mounts.c
index 16aca7bb8c..377630ec3a 100644
--- a/xenolinux-2.4.21-pre4-sparse/init/do_mounts.c
+++ b/xenolinux-2.4.21-pre4-sparse/init/do_mounts.c
@@ -231,17 +231,6 @@ static struct dev_name_struct {
{ "ataraid/d14p",0x72E0 },
{ "ataraid/d15p",0x72F0 },
#if defined(CONFIG_XENOLINUX_BLOCK)
- /* XenoLinux IDE Devices */
- { "xhda", 0x7B00 }, { "xhdb", 0x7B20 },
- { "xhdc", 0x7B40 }, { "xhdd", 0x7B60 },
- { "xhde", 0x7B80 }, { "xhdf", 0x7BA0 },
- { "xhdg", 0x7BC0 }, { "xhdh", 0x7BE0 },
- /* Xenolinux SCSI Devices */
- { "xsda", 0x7C00 }, { "xsdb", 0x7C20 },
- { "xsdc", 0x7C40 }, { "xsdd", 0x7C60 },
- { "xsde", 0x7C80 }, { "xsdf", 0x7CA0 },
- { "xsdg", 0x7CC0 }, { "xsdh", 0x7CE0 },
- /* XenoLinux Virtual Devices */
{ "xvda", 0x7D00 }, { "xvdb", 0x7D10 },
{ "xvdc", 0x7D20 }, { "xvdd", 0x7D30 },
{ "xvde", 0x7D40 }, { "xvdf", 0x7D50 },
diff --git a/xenolinux-2.4.21-pre4-sparse/mkbuildtree b/xenolinux-2.4.21-pre4-sparse/mkbuildtree
index 211c1e170d..8749150889 100755
--- a/xenolinux-2.4.21-pre4-sparse/mkbuildtree
+++ b/xenolinux-2.4.21-pre4-sparse/mkbuildtree
@@ -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