summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAchim Gottinger <achim@gentoo.org>2001-01-05 09:04:43 +0000
committerAchim Gottinger <achim@gentoo.org>2001-01-05 09:04:43 +0000
commit7c895a843ecfc331815044692d1c893301b7f68d (patch)
tree7c9b0e812444da5ec076ae8d03de48fae7040be9 /sys-kernel
parentUpdate related fixes. (diff)
downloadgentoo-2-7c895a843ecfc331815044692d1c893301b7f68d.tar.gz
gentoo-2-7c895a843ecfc331815044692d1c893301b7f68d.tar.bz2
gentoo-2-7c895a843ecfc331815044692d1c893301b7f68d.zip
First test for the final 2.4.0 kernel
Diffstat (limited to 'sys-kernel')
-rw-r--r--sys-kernel/linux/files/2.4.0.1/autoconf.h1118
-rw-r--r--sys-kernel/linux/files/2.4.0.1/config979
-rw-r--r--sys-kernel/linux/files/2.4.0.1/linux-2.4.0-prerelease-ac2-reiserfs-3.6.23-nfs.diff.gzbin0 -> 23104 bytes
-rw-r--r--sys-kernel/linux/files/2.4.0.1/nfsfh.c849
-rw-r--r--sys-kernel/linux/files/2.4.0.1/reiserfs-prerelease-makefile.patch.gzbin0 -> 431 bytes
-rw-r--r--sys-kernel/linux/files/digest-linux-2.4.0.18
-rw-r--r--sys-kernel/linux/linux-2.4.0.1.ebuild217
7 files changed, 3171 insertions, 0 deletions
diff --git a/sys-kernel/linux/files/2.4.0.1/autoconf.h b/sys-kernel/linux/files/2.4.0.1/autoconf.h
new file mode 100644
index 000000000000..f8dcbebeaaa1
--- /dev/null
+++ b/sys-kernel/linux/files/2.4.0.1/autoconf.h
@@ -0,0 +1,1118 @@
+/*
+ * Automatically generated C config: don't edit
+ */
+#define AUTOCONF_INCLUDED
+#define CONFIG_X86 1
+#define CONFIG_ISA 1
+#undef CONFIG_SBUS
+#define CONFIG_UID16 1
+/*
+ * Code maturity level options
+ */
+#define CONFIG_EXPERIMENTAL 1
+/*
+ * Loadable module support
+ */
+#define CONFIG_MODULES 1
+#undef CONFIG_MODVERSIONS
+#define CONFIG_KMOD 1
+/*
+ * Processor type and features
+ */
+#undef CONFIG_M386
+#undef CONFIG_M486
+#undef CONFIG_M586
+#undef CONFIG_M586TSC
+#undef CONFIG_M586MMX
+#undef CONFIG_M686
+#define CONFIG_M686FXSR 1
+#undef CONFIG_MPENTIUM4
+#undef CONFIG_MK6
+#undef CONFIG_MK7
+#undef CONFIG_MCRUSOE
+#undef CONFIG_MWINCHIPC6
+#undef CONFIG_MWINCHIP2
+#undef CONFIG_MWINCHIP3D
+#define CONFIG_X86_WP_WORKS_OK 1
+#define CONFIG_X86_INVLPG 1
+#define CONFIG_X86_CMPXCHG 1
+#define CONFIG_X86_BSWAP 1
+#define CONFIG_X86_POPAD_OK 1
+#define CONFIG_X86_L1_CACHE_SHIFT (5)
+#define CONFIG_X86_TSC 1
+#define CONFIG_X86_GOOD_APIC 1
+#define CONFIG_X86_PGE 1
+#define CONFIG_X86_USE_PPRO_CHECKSUM 1
+#define CONFIG_X86_FXSR 1
+#define CONFIG_X86_XMM 1
+#undef CONFIG_TOSHIBA
+#undef CONFIG_MICROCODE
+#undef CONFIG_X86_MSR
+#undef CONFIG_X86_CPUID
+#define CONFIG_NOHIGHMEM 1
+#undef CONFIG_HIGHMEM4G
+#undef CONFIG_HIGHMEM64G
+#define CONFIG_MTRR 1
+#undef CONFIG_SMP
+#define CONFIG_X86_UP_IOAPIC 1
+#define CONFIG_X86_IO_APIC 1
+#define CONFIG_X86_LOCAL_APIC 1
+/*
+ * General setup
+ */
+#define CONFIG_NET 1
+#undef CONFIG_VISWS
+#define CONFIG_PCI 1
+#undef CONFIG_PCI_GOBIOS
+#undef CONFIG_PCI_GODIRECT
+#define CONFIG_PCI_GOANY 1
+#define CONFIG_PCI_BIOS 1
+#define CONFIG_PCI_DIRECT 1
+#define CONFIG_PCI_NAMES 1
+#undef CONFIG_EISA
+#undef CONFIG_MCA
+#define CONFIG_HOTPLUG 1
+/*
+ * PCMCIA/CardBus support
+ */
+#define CONFIG_PCMCIA 1
+#define CONFIG_CARDBUS 1
+#undef CONFIG_I82365
+#undef CONFIG_TCIC
+#define CONFIG_SYSVIPC 1
+#undef CONFIG_BSD_PROCESS_ACCT
+#define CONFIG_SYSCTL 1
+#define CONFIG_KCORE_ELF 1
+#undef CONFIG_KCORE_AOUT
+#define CONFIG_BINFMT_AOUT 1
+#define CONFIG_BINFMT_ELF 1
+#define CONFIG_BINFMT_MISC 1
+#define CONFIG_PM 1
+#undef CONFIG_ACPI
+#define CONFIG_APM 1
+#undef CONFIG_APM_IGNORE_USER_SUSPEND
+#undef CONFIG_APM_DO_ENABLE
+#undef CONFIG_APM_CPU_IDLE
+#undef CONFIG_APM_DISPLAY_BLANK
+#undef CONFIG_APM_RTC_IS_GMT
+#undef CONFIG_APM_ALLOW_INTS
+#define CONFIG_APM_REAL_MODE_POWER_OFF 1
+/*
+ * Memory Technology Devices (MTD)
+ */
+#undef CONFIG_MTD
+/*
+ * Parallel port support
+ */
+#undef CONFIG_PARPORT
+#define CONFIG_PARPORT_MODULE 1
+#undef CONFIG_PARPORT_PC
+#define CONFIG_PARPORT_PC_MODULE 1
+#define CONFIG_PARPORT_PC_FIFO 1
+#undef CONFIG_PARPORT_PC_SUPERIO
+#undef CONFIG_PARPORT_AMIGA
+#undef CONFIG_PARPORT_MFC3
+#undef CONFIG_PARPORT_ATARI
+#undef CONFIG_PARPORT_SUNBPP
+#undef CONFIG_PARPORT_OTHER
+#define CONFIG_PARPORT_1284 1
+/*
+ * Plug and Play configuration
+ */
+#define CONFIG_PNP 1
+#undef CONFIG_ISAPNP
+#define CONFIG_ISAPNP_MODULE 1
+/*
+ * Block devices
+ */
+#define CONFIG_BLK_DEV_FD 1
+#undef CONFIG_BLK_DEV_XD
+#undef CONFIG_PARIDE
+#undef CONFIG_BLK_CPQ_DA
+#define CONFIG_BLK_CPQ_DA_MODULE 1
+#undef CONFIG_BLK_CPQ_CISS_DA
+#undef CONFIG_BLK_DEV_DAC960
+#define CONFIG_BLK_DEV_DAC960_MODULE 1
+#define CONFIG_BLK_DEV_LOOP 1
+#undef CONFIG_BLK_DEV_NBD
+#define CONFIG_BLK_DEV_NBD_MODULE 1
+#define CONFIG_BLK_DEV_RAM 1
+#define CONFIG_BLK_DEV_RAM_SIZE (4096)
+#define CONFIG_BLK_DEV_INITRD 1
+/*
+ * Multi-device support (RAID and LVM)
+ */
+#define CONFIG_MD 1
+#define CONFIG_BLK_DEV_MD 1
+#undef CONFIG_MD_LINEAR
+#define CONFIG_MD_LINEAR_MODULE 1
+#undef CONFIG_MD_RAID0
+#define CONFIG_MD_RAID0_MODULE 1
+#undef CONFIG_MD_RAID1
+#define CONFIG_MD_RAID1_MODULE 1
+#undef CONFIG_MD_RAID5
+#define CONFIG_MD_RAID5_MODULE 1
+#define CONFIG_BLK_DEV_LVM 1
+#define CONFIG_LVM_PROC_FS 1
+/*
+ * Networking options
+ */
+#define CONFIG_PACKET 1
+#undef CONFIG_PACKET_MMAP
+#define CONFIG_NETLINK 1
+#define CONFIG_RTNETLINK 1
+#undef CONFIG_NETLINK_DEV
+#define CONFIG_NETLINK_DEV_MODULE 1
+#define CONFIG_NETFILTER 1
+#undef CONFIG_NETFILTER_DEBUG
+#undef CONFIG_FILTER
+#define CONFIG_UNIX 1
+#define CONFIG_INET 1
+#define CONFIG_IP_MULTICAST 1
+#define CONFIG_IP_ADVANCED_ROUTER 1
+#define CONFIG_RTNETLINK 1
+#define CONFIG_NETLINK 1
+#define CONFIG_IP_MULTIPLE_TABLES 1
+#undef CONFIG_IP_ROUTE_FWMARK
+#define CONFIG_IP_ROUTE_NAT 1
+#define CONFIG_IP_ROUTE_MULTIPATH 1
+#define CONFIG_IP_ROUTE_TOS 1
+#define CONFIG_IP_ROUTE_VERBOSE 1
+#undef CONFIG_IP_ROUTE_LARGE_TABLES
+#undef CONFIG_IP_PNP
+#undef CONFIG_NET_IPIP
+#undef CONFIG_NET_IPGRE
+#define CONFIG_IP_MROUTE 1
+#undef CONFIG_IP_PIMSM_V1
+#undef CONFIG_IP_PIMSM_V2
+#undef CONFIG_ARPD
+#undef CONFIG_INET_ECN
+#undef CONFIG_SYN_COOKIES
+/*
+ * IP: Netfilter Configuration
+ */
+#undef CONFIG_IP_NF_CONNTRACK
+#undef CONFIG_IP_NF_QUEUE
+#undef CONFIG_IP_NF_IPTABLES
+#undef CONFIG_IP_NF_COMPAT_IPCHAINS
+#undef CONFIG_IP_NF_COMPAT_IPFWADM
+#define CONFIG_IPV6 1
+#undef CONFIG_IPV6_EUI64
+/*
+ * IPv6: Netfilter Configuration
+ */
+#undef CONFIG_IP6_NF_IPTABLES
+#undef CONFIG_KHTTPD
+#define CONFIG_KHTTPD_MODULE 1
+#undef CONFIG_ATM
+/*
+ *
+ */
+#undef CONFIG_IPX
+#undef CONFIG_ATALK
+#undef CONFIG_DECNET
+#undef CONFIG_BRIDGE
+#undef CONFIG_X25
+#undef CONFIG_LAPB
+#undef CONFIG_LLC
+#undef CONFIG_NET_DIVERT
+#undef CONFIG_ECONET
+#undef CONFIG_WAN_ROUTER
+#undef CONFIG_NET_FASTROUTE
+#undef CONFIG_NET_HW_FLOWCONTROL
+/*
+ * QoS and/or fair queueing
+ */
+#undef CONFIG_NET_SCHED
+/*
+ * Telephony Support
+ */
+#undef CONFIG_PHONE
+/*
+ * ATA/IDE/MFM/RLL support
+ */
+#define CONFIG_IDE 1
+/*
+ * IDE, ATA and ATAPI Block devices
+ */
+#define CONFIG_BLK_DEV_IDE 1
+/*
+ * Please see Documentation/ide.txt for help/info on IDE drives
+ */
+#undef CONFIG_BLK_DEV_HD_IDE
+#undef CONFIG_BLK_DEV_HD
+#define CONFIG_BLK_DEV_IDEDISK 1
+#undef CONFIG_IDEDISK_MULTI_MODE
+#undef CONFIG_BLK_DEV_IDEDISK_VENDOR
+#undef CONFIG_BLK_DEV_COMMERIAL
+#undef CONFIG_BLK_DEV_IDECS
+#define CONFIG_BLK_DEV_IDECD 1
+#undef CONFIG_BLK_DEV_IDETAPE
+#define CONFIG_BLK_DEV_IDETAPE_MODULE 1
+#undef CONFIG_BLK_DEV_IDEFLOPPY
+#define CONFIG_BLK_DEV_IDEFLOPPY_MODULE 1
+#undef CONFIG_BLK_DEV_IDESCSI
+/*
+ * IDE chipset support/bugfixes
+ */
+#define CONFIG_BLK_DEV_CMD640 1
+#undef CONFIG_BLK_DEV_CMD640_ENHANCED
+#define CONFIG_BLK_DEV_RZ1000 1
+#define CONFIG_BLK_DEV_IDEPCI 1
+#define CONFIG_IDEPCI_SHARE_IRQ 1
+#define CONFIG_BLK_DEV_IDEDMA_PCI 1
+#undef CONFIG_BLK_DEV_OFFBOARD
+#define CONFIG_IDEDMA_PCI_AUTO 1
+#define CONFIG_BLK_DEV_IDEDMA 1
+#undef CONFIG_IDEDMA_PCI_WIP
+#define CONFIG_BLK_DEV_AEC62XX 1
+#undef CONFIG_AEC62XX_TUNING
+#define CONFIG_BLK_DEV_ALI15X3 1
+#undef CONFIG_WDC_ALI15X3
+#define CONFIG_BLK_DEV_AMD7409 1
+#define CONFIG_BLK_DEV_CMD64X 1
+#define CONFIG_BLK_DEV_CY82C693 1
+#define CONFIG_BLK_DEV_CS5530 1
+#define CONFIG_BLK_DEV_HPT34X 1
+#define CONFIG_BLK_DEV_HPT366 1
+#define CONFIG_BLK_DEV_PIIX 1
+#define CONFIG_PIIX_TUNING 1
+#define CONFIG_BLK_DEV_NS87415 1
+#define CONFIG_BLK_DEV_OPTI621 1
+#define CONFIG_BLK_DEV_PDC202XX 1
+#undef CONFIG_PDC202XX_BURST
+#define CONFIG_BLK_DEV_OSB4 1
+#define CONFIG_BLK_DEV_SIS5513 1
+#define CONFIG_BLK_DEV_SLC90E66 1
+#define CONFIG_BLK_DEV_TRM290 1
+#define CONFIG_BLK_DEV_VIA82CXXX 1
+#define CONFIG_IDE_CHIPSETS 1
+/*
+ * Note: most of these also require special kernel boot parameters
+ */
+#define CONFIG_BLK_DEV_4DRIVES 1
+#define CONFIG_BLK_DEV_ALI14XX 1
+#define CONFIG_BLK_DEV_DTC2278 1
+#define CONFIG_BLK_DEV_HT6560B 1
+#define CONFIG_BLK_DEV_PDC4030 1
+#define CONFIG_BLK_DEV_QD6580 1
+#define CONFIG_BLK_DEV_UMC8672 1
+#define CONFIG_IDEDMA_AUTO 1
+#define CONFIG_IDEDMA_IVB 1
+#undef CONFIG_DMA_NONPCI
+#define CONFIG_BLK_DEV_IDE_MODES 1
+/*
+ * SCSI support
+ */
+#define CONFIG_SCSI 1
+/*
+ * SCSI support type (disk, tape, CD-ROM)
+ */
+#define CONFIG_BLK_DEV_SD 1
+#define CONFIG_SD_EXTRA_DEVS (40)
+#undef CONFIG_CHR_DEV_ST
+#define CONFIG_CHR_DEV_ST_MODULE 1
+#undef CONFIG_CHR_DEV_OSST
+#define CONFIG_CHR_DEV_OSST_MODULE 1
+#define CONFIG_BLK_DEV_SR 1
+#undef CONFIG_BLK_DEV_SR_VENDOR
+#define CONFIG_SR_EXTRA_DEVS (2)
+#undef CONFIG_CHR_DEV_SG
+/*
+ * Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+ */
+#undef CONFIG_SCSI_DEBUG_QUEUES
+#undef CONFIG_SCSI_MULTI_LUN
+#undef CONFIG_SCSI_CONSTANTS
+#undef CONFIG_SCSI_LOGGING
+/*
+ * SCSI low-level drivers
+ */
+#undef CONFIG_BLK_DEV_3W_XXXX_RAID
+#define CONFIG_BLK_DEV_3W_XXXX_RAID_MODULE 1
+#undef CONFIG_SCSI_7000FASST
+#define CONFIG_SCSI_7000FASST_MODULE 1
+#undef CONFIG_SCSI_ACARD
+#define CONFIG_SCSI_ACARD_MODULE 1
+#undef CONFIG_SCSI_AHA152X
+#define CONFIG_SCSI_AHA152X_MODULE 1
+#undef CONFIG_SCSI_AHA1542
+#define CONFIG_SCSI_AHA1542_MODULE 1
+#undef CONFIG_SCSI_AHA1740
+#define CONFIG_SCSI_AHA1740_MODULE 1
+#undef CONFIG_SCSI_AIC7XXX
+#define CONFIG_SCSI_AIC7XXX_MODULE 1
+#undef CONFIG_AIC7XXX_TCQ_ON_BY_DEFAULT
+#define CONFIG_AIC7XXX_CMDS_PER_DEVICE (8)
+#undef CONFIG_AIC7XXX_PROC_STATS
+#define CONFIG_AIC7XXX_RESET_DELAY (5)
+#undef CONFIG_SCSI_ADVANSYS
+#define CONFIG_SCSI_ADVANSYS_MODULE 1
+#undef CONFIG_SCSI_IN2000
+#define CONFIG_SCSI_IN2000_MODULE 1
+#undef CONFIG_SCSI_AM53C974
+#define CONFIG_SCSI_AM53C974_MODULE 1
+#undef CONFIG_SCSI_MEGARAID
+#define CONFIG_SCSI_MEGARAID_MODULE 1
+#undef CONFIG_SCSI_BUSLOGIC
+#define CONFIG_SCSI_BUSLOGIC_MODULE 1
+#undef CONFIG_SCSI_OMIT_FLASHPOINT
+#undef CONFIG_SCSI_CPQFCTS
+#define CONFIG_SCSI_CPQFCTS_MODULE 1
+#undef CONFIG_SCSI_DMX3191D
+#define CONFIG_SCSI_DMX3191D_MODULE 1
+#undef CONFIG_SCSI_DTC3280
+#define CONFIG_SCSI_DTC3280_MODULE 1
+#undef CONFIG_SCSI_EATA
+#define CONFIG_SCSI_EATA_MODULE 1
+#undef CONFIG_SCSI_EATA_TAGGED_QUEUE
+#undef CONFIG_SCSI_EATA_LINKED_COMMANDS
+#define CONFIG_SCSI_EATA_MAX_TAGS (16)
+#undef CONFIG_SCSI_EATA_DMA
+#define CONFIG_SCSI_EATA_DMA_MODULE 1
+#undef CONFIG_SCSI_EATA_PIO
+#define CONFIG_SCSI_EATA_PIO_MODULE 1
+#undef CONFIG_SCSI_FUTURE_DOMAIN
+#define CONFIG_SCSI_FUTURE_DOMAIN_MODULE 1
+#undef CONFIG_SCSI_GDTH
+#define CONFIG_SCSI_GDTH_MODULE 1
+#undef CONFIG_SCSI_GENERIC_NCR5380
+#define CONFIG_SCSI_GENERIC_NCR5380_MODULE 1
+#undef CONFIG_SCSI_GENERIC_NCR53C400
+#define CONFIG_SCSI_G_NCR5380_PORT 1
+#undef CONFIG_SCSI_G_NCR5380_MEM
+#undef CONFIG_SCSI_IPS
+#define CONFIG_SCSI_IPS_MODULE 1
+#undef CONFIG_SCSI_INITIO
+#define CONFIG_SCSI_INITIO_MODULE 1
+#undef CONFIG_SCSI_INIA100
+#define CONFIG_SCSI_INIA100_MODULE 1
+#undef CONFIG_SCSI_PPA
+#define CONFIG_SCSI_PPA_MODULE 1
+#undef CONFIG_SCSI_IMM
+#define CONFIG_SCSI_IMM_MODULE 1
+#undef CONFIG_SCSI_IZIP_EPP16
+#undef CONFIG_SCSI_IZIP_SLOW_CTR
+#undef CONFIG_SCSI_NCR53C406A
+#define CONFIG_SCSI_NCR53C406A_MODULE 1
+#undef CONFIG_SCSI_NCR53C7xx
+#define CONFIG_SCSI_NCR53C7xx_MODULE 1
+#undef CONFIG_SCSI_NCR53C7xx_sync
+#undef CONFIG_SCSI_NCR53C7xx_FAST
+#undef CONFIG_SCSI_NCR53C7xx_DISCONNECT
+#undef CONFIG_SCSI_NCR53C8XX
+#define CONFIG_SCSI_NCR53C8XX_MODULE 1
+#define CONFIG_SCSI_SYM53C8XX 1
+#define CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS (4)
+#define CONFIG_SCSI_NCR53C8XX_MAX_TAGS (32)
+#define CONFIG_SCSI_NCR53C8XX_SYNC (20)
+#undef CONFIG_SCSI_NCR53C8XX_PROFILE
+#undef CONFIG_SCSI_NCR53C8XX_IOMAPPED
+#undef CONFIG_SCSI_NCR53C8XX_PQS_PDS
+#undef CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT
+#undef CONFIG_SCSI_PAS16
+#define CONFIG_SCSI_PAS16_MODULE 1
+#undef CONFIG_SCSI_PCI2000
+#define CONFIG_SCSI_PCI2000_MODULE 1
+#undef CONFIG_SCSI_PCI2220I
+#define CONFIG_SCSI_PCI2220I_MODULE 1
+#undef CONFIG_SCSI_PSI240I
+#define CONFIG_SCSI_PSI240I_MODULE 1
+#undef CONFIG_SCSI_QLOGIC_FAS
+#define CONFIG_SCSI_QLOGIC_FAS_MODULE 1
+#undef CONFIG_SCSI_QLOGIC_ISP
+#define CONFIG_SCSI_QLOGIC_ISP_MODULE 1
+#undef CONFIG_SCSI_QLOGIC_FC
+#define CONFIG_SCSI_QLOGIC_FC_MODULE 1
+#undef CONFIG_SCSI_QLOGIC_1280
+#define CONFIG_SCSI_QLOGIC_1280_MODULE 1
+#undef CONFIG_SCSI_SEAGATE
+#define CONFIG_SCSI_SEAGATE_MODULE 1
+#undef CONFIG_SCSI_SIM710
+#define CONFIG_SCSI_SIM710_MODULE 1
+#undef CONFIG_SCSI_SYM53C416
+#define CONFIG_SCSI_SYM53C416_MODULE 1
+#undef CONFIG_SCSI_DC390T
+#define CONFIG_SCSI_DC390T_MODULE 1
+#undef CONFIG_SCSI_DC390T_NOGENSUPP
+#undef CONFIG_SCSI_T128
+#define CONFIG_SCSI_T128_MODULE 1
+#undef CONFIG_SCSI_U14_34F
+#define CONFIG_SCSI_U14_34F_MODULE 1
+#undef CONFIG_SCSI_U14_34F_LINKED_COMMANDS
+#define CONFIG_SCSI_U14_34F_MAX_TAGS (8)
+#undef CONFIG_SCSI_ULTRASTOR
+#define CONFIG_SCSI_ULTRASTOR_MODULE 1
+#undef CONFIG_SCSI_DEBUG
+#define CONFIG_SCSI_DEBUG_MODULE 1
+/*
+ * PCMCIA SCSI adapter support
+ */
+#undef CONFIG_SCSI_PCMCIA
+/*
+ * Fusion MPT device support
+ */
+#undef CONFIG_FUSION
+#undef CONFIG_FUSION_BOOT
+#undef CONFIG_FUSION_ISENSE
+#undef CONFIG_FUSION_CTL
+#undef CONFIG_FUSION_LAN
+/*
+ * IEEE 1394 (FireWire) support
+ */
+#undef CONFIG_IEEE1394
+/*
+ * I2O device support
+ */
+#undef CONFIG_I2O
+/*
+ * Network device support
+ */
+#define CONFIG_NETDEVICES 1
+/*
+ * ARCnet devices
+ */
+#undef CONFIG_ARCNET
+#undef CONFIG_DUMMY
+#define CONFIG_DUMMY_MODULE 1
+#undef CONFIG_BONDING
+#define CONFIG_BONDING_MODULE 1
+#undef CONFIG_EQUALIZER
+#define CONFIG_EQUALIZER_MODULE 1
+#undef CONFIG_TUN
+#define CONFIG_TUN_MODULE 1
+#undef CONFIG_ETHERTAP
+#define CONFIG_ETHERTAP_MODULE 1
+#undef CONFIG_NET_SB1000
+#define CONFIG_NET_SB1000_MODULE 1
+/*
+ * Ethernet (10 or 100Mbit)
+ */
+#define CONFIG_NET_ETHERNET 1
+#define CONFIG_NET_VENDOR_3COM 1
+#undef CONFIG_EL1
+#define CONFIG_EL1_MODULE 1
+#undef CONFIG_EL2
+#define CONFIG_EL2_MODULE 1
+#undef CONFIG_ELPLUS
+#define CONFIG_ELPLUS_MODULE 1
+#undef CONFIG_EL16
+#define CONFIG_EL16_MODULE 1
+#undef CONFIG_EL3
+#define CONFIG_EL3_MODULE 1
+#undef CONFIG_3C515
+#define CONFIG_3C515_MODULE 1
+#undef CONFIG_VORTEX
+#define CONFIG_VORTEX_MODULE 1
+#undef CONFIG_LANCE
+#define CONFIG_LANCE_MODULE 1
+#define CONFIG_NET_VENDOR_SMC 1
+#undef CONFIG_WD80x3
+#define CONFIG_WD80x3_MODULE 1
+#undef CONFIG_ULTRA
+#define CONFIG_ULTRA_MODULE 1
+#undef CONFIG_SMC9194
+#define CONFIG_SMC9194_MODULE 1
+#define CONFIG_NET_VENDOR_RACAL 1
+#undef CONFIG_NI5010
+#define CONFIG_NI5010_MODULE 1
+#undef CONFIG_NI52
+#define CONFIG_NI52_MODULE 1
+#undef CONFIG_NI65
+#define CONFIG_NI65_MODULE 1
+#undef CONFIG_AT1700
+#define CONFIG_AT1700_MODULE 1
+#undef CONFIG_DEPCA
+#define CONFIG_DEPCA_MODULE 1
+#undef CONFIG_HP100
+#define CONFIG_HP100_MODULE 1
+#define CONFIG_NET_ISA 1
+#undef CONFIG_E2100
+#define CONFIG_E2100_MODULE 1
+#undef CONFIG_EEXPRESS
+#define CONFIG_EEXPRESS_MODULE 1
+#undef CONFIG_EEXPRESS_PRO
+#define CONFIG_EEXPRESS_PRO_MODULE 1
+#undef CONFIG_HPLAN_PLUS
+#define CONFIG_HPLAN_PLUS_MODULE 1
+#undef CONFIG_HPLAN
+#define CONFIG_HPLAN_MODULE 1
+#undef CONFIG_ETH16I
+#define CONFIG_ETH16I_MODULE 1
+#undef CONFIG_NE2000
+#define CONFIG_NE2000_MODULE 1
+#undef CONFIG_SK_G16
+#define CONFIG_SK_G16_MODULE 1
+#define CONFIG_NET_PCI 1
+#undef CONFIG_PCNET32
+#define CONFIG_PCNET32_MODULE 1
+#undef CONFIG_ADAPTEC_STARFIRE
+#define CONFIG_ADAPTEC_STARFIRE_MODULE 1
+#undef CONFIG_AC3200
+#define CONFIG_AC3200_MODULE 1
+#undef CONFIG_APRICOT
+#define CONFIG_APRICOT_MODULE 1
+#undef CONFIG_CS89x0
+#define CONFIG_CS89x0_MODULE 1
+#undef CONFIG_TULIP
+#define CONFIG_TULIP_MODULE 1
+#undef CONFIG_DE4X5
+#define CONFIG_DE4X5_MODULE 1
+#undef CONFIG_DGRS
+#define CONFIG_DGRS_MODULE 1
+#undef CONFIG_DM9102
+#define CONFIG_DM9102_MODULE 1
+#define CONFIG_EEPRO100 1
+#undef CONFIG_EEPRO100_PM
+#undef CONFIG_NATSEMI
+#define CONFIG_NATSEMI_MODULE 1
+#undef CONFIG_NE2K_PCI
+#define CONFIG_NE2K_PCI_MODULE 1
+#undef CONFIG_8139TOO
+#define CONFIG_8139TOO_MODULE 1
+#undef CONFIG_RTL8129
+#define CONFIG_RTL8129_MODULE 1
+#undef CONFIG_SIS900
+#define CONFIG_SIS900_MODULE 1
+#undef CONFIG_EPIC100
+#define CONFIG_EPIC100_MODULE 1
+#undef CONFIG_SUNDANCE
+#define CONFIG_SUNDANCE_MODULE 1
+#undef CONFIG_TLAN
+#define CONFIG_TLAN_MODULE 1
+#undef CONFIG_VIA_RHINE
+#define CONFIG_VIA_RHINE_MODULE 1
+#undef CONFIG_WINBOND_840
+#define CONFIG_WINBOND_840_MODULE 1
+#undef CONFIG_HAPPYMEAL
+#define CONFIG_HAPPYMEAL_MODULE 1
+#undef CONFIG_NET_POCKET
+/*
+ * Ethernet (1000 Mbit)
+ */
+#undef CONFIG_ACENIC
+#define CONFIG_ACENIC_MODULE 1
+#undef CONFIG_ACENIC_OMIT_TIGON_I
+#undef CONFIG_HAMACHI
+#define CONFIG_HAMACHI_MODULE 1
+#undef CONFIG_YELLOWFIN
+#define CONFIG_YELLOWFIN_MODULE 1
+#undef CONFIG_SK98LIN
+#define CONFIG_SK98LIN_MODULE 1
+#undef CONFIG_FDDI
+#undef CONFIG_HIPPI
+#undef CONFIG_PLIP
+#define CONFIG_PLIP_MODULE 1
+#undef CONFIG_PPP
+#define CONFIG_PPP_MODULE 1
+#undef CONFIG_PPP_MULTILINK
+#undef CONFIG_PPP_ASYNC
+#define CONFIG_PPP_ASYNC_MODULE 1
+#undef CONFIG_PPP_SYNC_TTY
+#define CONFIG_PPP_SYNC_TTY_MODULE 1
+#undef CONFIG_PPP_DEFLATE
+#define CONFIG_PPP_DEFLATE_MODULE 1
+#undef CONFIG_PPP_BSDCOMP
+#define CONFIG_PPP_BSDCOMP_MODULE 1
+#undef CONFIG_PPPOE
+#define CONFIG_PPPOE_MODULE 1
+#undef CONFIG_SLIP
+#define CONFIG_SLIP_MODULE 1
+#define CONFIG_SLIP_COMPRESSED 1
+#define CONFIG_SLIP_SMART 1
+#define CONFIG_SLIP_MODE_SLIP6 1
+/*
+ * Wireless LAN (non-hamradio)
+ */
+#undef CONFIG_NET_RADIO
+/*
+ * Token Ring devices
+ */
+#undef CONFIG_TR
+#undef CONFIG_NET_FC
+#undef CONFIG_RCPCI
+#undef CONFIG_SHAPER
+/*
+ * Wan interfaces
+ */
+#undef CONFIG_WAN
+/*
+ * PCMCIA network device support
+ */
+#undef CONFIG_NET_PCMCIA
+/*
+ * Amateur Radio support
+ */
+#undef CONFIG_HAMRADIO
+/*
+ * IrDA (infrared) support
+ */
+#undef CONFIG_IRDA
+/*
+ * ISDN subsystem
+ */
+#undef CONFIG_ISDN
+/*
+ * Old CD-ROM drivers (not SCSI, not IDE)
+ */
+#undef CONFIG_CD_NO_IDESCSI
+/*
+ * Input core support
+ */
+#undef CONFIG_INPUT
+#define CONFIG_INPUT_MODULE 1
+#undef CONFIG_INPUT_KEYBDEV
+#define CONFIG_INPUT_KEYBDEV_MODULE 1
+#undef CONFIG_INPUT_MOUSEDEV
+#define CONFIG_INPUT_MOUSEDEV_MODULE 1
+#define CONFIG_INPUT_MOUSEDEV_SCREEN_X (1024)
+#define CONFIG_INPUT_MOUSEDEV_SCREEN_Y (768)
+#undef CONFIG_INPUT_JOYDEV
+#define CONFIG_INPUT_JOYDEV_MODULE 1
+#undef CONFIG_INPUT_EVDEV
+#define CONFIG_INPUT_EVDEV_MODULE 1
+/*
+ * Character devices
+ */
+#define CONFIG_VT 1
+#define CONFIG_VT_CONSOLE 1
+#define CONFIG_SERIAL 1
+#undef CONFIG_SERIAL_CONSOLE
+#undef CONFIG_SERIAL_EXTENDED
+#undef CONFIG_SERIAL_NONSTANDARD
+#define CONFIG_UNIX98_PTYS 1
+#define CONFIG_UNIX98_PTY_COUNT (256)
+#undef CONFIG_PRINTER
+#define CONFIG_PRINTER_MODULE 1
+#define CONFIG_LP_CONSOLE 1
+#undef CONFIG_PPDEV
+#define CONFIG_PPDEV_MODULE 1
+/*
+ * I2C support
+ */
+#undef CONFIG_I2C
+#define CONFIG_I2C_MODULE 1
+#undef CONFIG_I2C_ALGOBIT
+#define CONFIG_I2C_ALGOBIT_MODULE 1
+#undef CONFIG_I2C_PHILIPSPAR
+#define CONFIG_I2C_PHILIPSPAR_MODULE 1
+#undef CONFIG_I2C_ELV
+#define CONFIG_I2C_ELV_MODULE 1
+#undef CONFIG_I2C_VELLEMAN
+#define CONFIG_I2C_VELLEMAN_MODULE 1
+#undef CONFIG_I2C_ALGOPCF
+#define CONFIG_I2C_ALGOPCF_MODULE 1
+#undef CONFIG_I2C_ELEKTOR
+#define CONFIG_I2C_ELEKTOR_MODULE 1
+#undef CONFIG_I2C_CHARDEV
+#define CONFIG_I2C_CHARDEV_MODULE 1
+/*
+ * Mice
+ */
+#undef CONFIG_BUSMOUSE
+#define CONFIG_BUSMOUSE_MODULE 1
+#undef CONFIG_ATIXL_BUSMOUSE
+#define CONFIG_ATIXL_BUSMOUSE_MODULE 1
+#undef CONFIG_LOGIBUSMOUSE
+#define CONFIG_LOGIBUSMOUSE_MODULE 1
+#undef CONFIG_MS_BUSMOUSE
+#define CONFIG_MS_BUSMOUSE_MODULE 1
+#undef CONFIG_MOUSE
+#define CONFIG_MOUSE_MODULE 1
+#define CONFIG_PSMOUSE 1
+#undef CONFIG_82C710_MOUSE
+#define CONFIG_82C710_MOUSE_MODULE 1
+#undef CONFIG_PC110_PAD
+#define CONFIG_PC110_PAD_MODULE 1
+/*
+ * Joysticks
+ */
+#undef CONFIG_JOYSTICK
+/*
+ * Input core support is needed for joysticks
+ */
+#undef CONFIG_QIC02_TAPE
+/*
+ * Watchdog Cards
+ */
+#undef CONFIG_WATCHDOG
+#undef CONFIG_INTEL_RNG
+#define CONFIG_NVRAM 1
+#undef CONFIG_RTC
+#define CONFIG_RTC_MODULE 1
+#undef CONFIG_DTLK
+#undef CONFIG_R3964
+#undef CONFIG_APPLICOM
+/*
+ * Ftape, the floppy tape device driver
+ */
+#undef CONFIG_FTAPE
+#undef CONFIG_AGP
+#define CONFIG_AGP_MODULE 1
+#define CONFIG_AGP_INTEL 1
+#define CONFIG_AGP_I810 1
+#define CONFIG_AGP_VIA 1
+#define CONFIG_AGP_AMD 1
+#define CONFIG_AGP_SIS 1
+#define CONFIG_AGP_ALI 1
+#define CONFIG_DRM 1
+#undef CONFIG_DRM_TDFX
+#define CONFIG_DRM_TDFX_MODULE 1
+#undef CONFIG_DRM_GAMMA
+#define CONFIG_DRM_GAMMA_MODULE 1
+#undef CONFIG_DRM_R128
+#define CONFIG_DRM_R128_MODULE 1
+#undef CONFIG_DRM_I810
+#define CONFIG_DRM_I810_MODULE 1
+#undef CONFIG_DRM_MGA
+#define CONFIG_DRM_MGA_MODULE 1
+#define CONFIG_PCMCIA_SERIAL 1
+/*
+ * PCMCIA character device support
+ */
+#undef CONFIG_PCMCIA_SERIAL_CS
+#undef CONFIG_PCMCIA_SERIAL_CB
+/*
+ * Multimedia devices
+ */
+#undef CONFIG_VIDEO_DEV
+#define CONFIG_VIDEO_DEV_MODULE 1
+/*
+ * Video For Linux
+ */
+#define CONFIG_VIDEO_PROC_FS 1
+#undef CONFIG_I2C_PARPORT
+#define CONFIG_I2C_PARPORT_MODULE 1
+/*
+ * Video Adapters
+ */
+#undef CONFIG_VIDEO_BT848
+#define CONFIG_VIDEO_BT848_MODULE 1
+#undef CONFIG_VIDEO_PMS
+#define CONFIG_VIDEO_PMS_MODULE 1
+#undef CONFIG_VIDEO_BWQCAM
+#define CONFIG_VIDEO_BWQCAM_MODULE 1
+#undef CONFIG_VIDEO_CQCAM
+#define CONFIG_VIDEO_CQCAM_MODULE 1
+#undef CONFIG_VIDEO_CPIA
+#define CONFIG_VIDEO_CPIA_MODULE 1
+#undef CONFIG_VIDEO_CPIA_PP
+#define CONFIG_VIDEO_CPIA_PP_MODULE 1
+#undef CONFIG_VIDEO_CPIA_USB
+#define CONFIG_VIDEO_CPIA_USB_MODULE 1
+#undef CONFIG_VIDEO_SAA5249
+#define CONFIG_VIDEO_SAA5249_MODULE 1
+#undef CONFIG_TUNER_3036
+#define CONFIG_TUNER_3036_MODULE 1
+#undef CONFIG_VIDEO_STRADIS
+#define CONFIG_VIDEO_STRADIS_MODULE 1
+#undef CONFIG_VIDEO_ZORAN
+#define CONFIG_VIDEO_ZORAN_MODULE 1
+#undef CONFIG_VIDEO_BUZ
+#define CONFIG_VIDEO_BUZ_MODULE 1
+#undef CONFIG_VIDEO_ZR36120
+#define CONFIG_VIDEO_ZR36120_MODULE 1
+/*
+ * Radio Adapters
+ */
+#undef CONFIG_RADIO_CADET
+#undef CONFIG_RADIO_RTRACK
+#undef CONFIG_RADIO_RTRACK2
+#undef CONFIG_RADIO_AZTECH
+#undef CONFIG_RADIO_GEMTEK
+#undef CONFIG_RADIO_MAESTRO
+#undef CONFIG_RADIO_MIROPCM20
+#undef CONFIG_RADIO_SF16FMI
+#undef CONFIG_RADIO_TERRATEC
+#undef CONFIG_RADIO_TRUST
+#undef CONFIG_RADIO_TYPHOON
+#undef CONFIG_RADIO_ZOLTRIX
+/*
+ * File systems
+ */
+#undef CONFIG_QUOTA
+#undef CONFIG_AUTOFS_FS
+#define CONFIG_AUTOFS_FS_MODULE 1
+#define CONFIG_AUTOFS4_FS 1
+#define CONFIG_REISERFS_FS 1
+#undef CONFIG_REISERFS_CHECK
+#undef CONFIG_ADFS_FS
+#undef CONFIG_AFFS_FS
+#undef CONFIG_HFS_FS
+#define CONFIG_HFS_FS_MODULE 1
+#undef CONFIG_BFS_FS
+#undef CONFIG_FAT_FS
+#define CONFIG_FAT_FS_MODULE 1
+#undef CONFIG_MSDOS_FS
+#define CONFIG_MSDOS_FS_MODULE 1
+#undef CONFIG_UMSDOS_FS
+#define CONFIG_UMSDOS_FS_MODULE 1
+#undef CONFIG_VFAT_FS
+#define CONFIG_VFAT_FS_MODULE 1
+#undef CONFIG_EFS_FS
+#undef CONFIG_CRAMFS
+#undef CONFIG_RAMFS
+#define CONFIG_ISO9660_FS 1
+#define CONFIG_JOLIET 1
+#define CONFIG_MINIX_FS 1
+#undef CONFIG_NTFS_FS
+#define CONFIG_NTFS_FS_MODULE 1
+#undef CONFIG_NTFS_RW
+#undef CONFIG_HPFS_FS
+#define CONFIG_HPFS_FS_MODULE 1
+#define CONFIG_PROC_FS 1
+#define CONFIG_DEVFS_FS 1
+#undef CONFIG_DEVFS_MOUNT
+#undef CONFIG_DEVFS_DEBUG
+#define CONFIG_DEVPTS_FS 1
+#undef CONFIG_QNX4FS_FS
+#undef CONFIG_ROMFS_FS
+#define CONFIG_EXT2_FS 1
+#undef CONFIG_SYSV_FS
+#undef CONFIG_UDF_FS
+#undef CONFIG_UFS_FS
+/*
+ * Network File Systems
+ */
+#undef CONFIG_CODA_FS
+#define CONFIG_CODA_FS_MODULE 1
+#define CONFIG_NFS_FS 1
+#define CONFIG_NFS_V3 1
+#define CONFIG_NFSD 1
+#define CONFIG_NFSD_V3 1
+#define CONFIG_SUNRPC 1
+#define CONFIG_LOCKD 1
+#define CONFIG_LOCKD_V4 1
+#define CONFIG_SMB_FS 1
+#define CONFIG_SMB_NLS_DEFAULT 1
+#define CONFIG_SMB_NLS_REMOTE "cp437"
+#undef CONFIG_NCP_FS
+/*
+ * Partition Types
+ */
+#undef CONFIG_PARTITION_ADVANCED
+#define CONFIG_MSDOS_PARTITION 1
+#define CONFIG_SMB_NLS 1
+#define CONFIG_NLS 1
+/*
+ * Native Language Support
+ */
+#define CONFIG_NLS_DEFAULT "iso8859-1"
+#undef CONFIG_NLS_CODEPAGE_437
+#define CONFIG_NLS_CODEPAGE_437_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_737
+#define CONFIG_NLS_CODEPAGE_737_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_775
+#define CONFIG_NLS_CODEPAGE_775_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_850
+#define CONFIG_NLS_CODEPAGE_850_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_852
+#define CONFIG_NLS_CODEPAGE_852_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_855
+#define CONFIG_NLS_CODEPAGE_855_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_857
+#define CONFIG_NLS_CODEPAGE_857_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_860
+#define CONFIG_NLS_CODEPAGE_860_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_861
+#define CONFIG_NLS_CODEPAGE_861_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_862
+#define CONFIG_NLS_CODEPAGE_862_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_863
+#define CONFIG_NLS_CODEPAGE_863_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_864
+#define CONFIG_NLS_CODEPAGE_864_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_865
+#define CONFIG_NLS_CODEPAGE_865_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_866
+#define CONFIG_NLS_CODEPAGE_866_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_869
+#define CONFIG_NLS_CODEPAGE_869_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_874
+#define CONFIG_NLS_CODEPAGE_874_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_932
+#define CONFIG_NLS_CODEPAGE_932_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_936
+#define CONFIG_NLS_CODEPAGE_936_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_949
+#define CONFIG_NLS_CODEPAGE_949_MODULE 1
+#undef CONFIG_NLS_CODEPAGE_950
+#define CONFIG_NLS_CODEPAGE_950_MODULE 1
+#undef CONFIG_NLS_ISO8859_1
+#define CONFIG_NLS_ISO8859_1_MODULE 1
+#undef CONFIG_NLS_ISO8859_2
+#define CONFIG_NLS_ISO8859_2_MODULE 1
+#undef CONFIG_NLS_ISO8859_3
+#define CONFIG_NLS_ISO8859_3_MODULE 1
+#undef CONFIG_NLS_ISO8859_4
+#define CONFIG_NLS_ISO8859_4_MODULE 1
+#undef CONFIG_NLS_ISO8859_5
+#define CONFIG_NLS_ISO8859_5_MODULE 1
+#undef CONFIG_NLS_ISO8859_6
+#define CONFIG_NLS_ISO8859_6_MODULE 1
+#undef CONFIG_NLS_ISO8859_7
+#define CONFIG_NLS_ISO8859_7_MODULE 1
+#undef CONFIG_NLS_ISO8859_8
+#define CONFIG_NLS_ISO8859_8_MODULE 1
+#undef CONFIG_NLS_ISO8859_9
+#define CONFIG_NLS_ISO8859_9_MODULE 1
+#undef CONFIG_NLS_ISO8859_14
+#define CONFIG_NLS_ISO8859_14_MODULE 1
+#undef CONFIG_NLS_ISO8859_15
+#define CONFIG_NLS_ISO8859_15_MODULE 1
+#undef CONFIG_NLS_KOI8_R
+#define CONFIG_NLS_KOI8_R_MODULE 1
+#undef CONFIG_NLS_UTF8
+#define CONFIG_NLS_UTF8_MODULE 1
+/*
+ * Console drivers
+ */
+#define CONFIG_VGA_CONSOLE 1
+#define CONFIG_VIDEO_SELECT 1
+#undef CONFIG_MDA_CONSOLE
+/*
+ * Frame-buffer support
+ */
+#define CONFIG_FB 1
+#define CONFIG_DUMMY_CONSOLE 1
+#undef CONFIG_FB_RIVA
+#undef CONFIG_FB_CLGEN
+#undef CONFIG_FB_PM2
+#undef CONFIG_FB_CYBER2000
+#define CONFIG_FB_VESA 1
+#undef CONFIG_FB_VGA16
+#undef CONFIG_FB_HGA
+#define CONFIG_VIDEO_SELECT 1
+#undef CONFIG_FB_MATROX
+#undef CONFIG_FB_ATY
+#undef CONFIG_FB_ATY128
+#undef CONFIG_FB_3DFX
+#undef CONFIG_FB_SIS
+#undef CONFIG_FB_VIRTUAL
+#undef CONFIG_FBCON_ADVANCED
+#define CONFIG_FBCON_CFB8 1
+#define CONFIG_FBCON_CFB16 1
+#define CONFIG_FBCON_CFB24 1
+#define CONFIG_FBCON_CFB32 1
+#undef CONFIG_FBCON_FONTWIDTH8_ONLY
+#undef CONFIG_FBCON_FONTS
+#define CONFIG_FONT_8x8 1
+#define CONFIG_FONT_8x16 1
+/*
+ * Sound
+ */
+#define CONFIG_SOUND 1
+#undef CONFIG_SOUND_CMPCI
+#undef CONFIG_SOUND_EMU10K1
+#undef CONFIG_SOUND_FUSION
+#undef CONFIG_SOUND_CS4281
+#undef CONFIG_SOUND_ES1370
+#undef CONFIG_SOUND_ES1371
+#undef CONFIG_SOUND_ESSSOLO1
+#undef CONFIG_SOUND_MAESTRO
+#undef CONFIG_SOUND_SONICVIBES
+#undef CONFIG_SOUND_TRIDENT
+#undef CONFIG_SOUND_MSNDCLAS
+#undef CONFIG_SOUND_MSNDPIN
+#undef CONFIG_SOUND_VIA82CXXX
+#undef CONFIG_SOUND_YMFPCI
+#define CONFIG_SOUND_OSS 1
+#undef CONFIG_SOUND_TRACEINIT
+#undef CONFIG_SOUND_DMAP
+#undef CONFIG_SOUND_AD1816
+#undef CONFIG_SOUND_SGALAXY
+#undef CONFIG_SOUND_ADLIB
+#undef CONFIG_SOUND_ACI_MIXER
+#undef CONFIG_SOUND_CS4232
+#undef CONFIG_SOUND_SSCAPE
+#undef CONFIG_SOUND_GUS
+#undef CONFIG_SOUND_ICH
+#undef CONFIG_SOUND_VMIDI
+#undef CONFIG_SOUND_TRIX
+#undef CONFIG_SOUND_MSS
+#undef CONFIG_SOUND_MPU401
+#undef CONFIG_SOUND_NM256
+#undef CONFIG_SOUND_MAD16
+#undef CONFIG_SOUND_PAS
+#undef CONFIG_SOUND_PSS
+#undef CONFIG_SOUND_SB
+#undef CONFIG_SOUND_AWE32_SYNTH
+#undef CONFIG_SOUND_WAVEFRONT
+#undef CONFIG_SOUND_MAUI
+#undef CONFIG_SOUND_YM3812
+#undef CONFIG_SOUND_OPL3SA1
+#undef CONFIG_SOUND_OPL3SA2
+#undef CONFIG_SOUND_YMPCI
+#undef CONFIG_SOUND_YMFPCI
+#undef CONFIG_SOUND_UART6850
+#undef CONFIG_SOUND_AEDSP16
+#undef CONFIG_SOUND_TVMIXER
+#define CONFIG_SOUND_TVMIXER_MODULE 1
+/*
+ * USB support
+ */
+#define CONFIG_USB 1
+#undef CONFIG_USB_DEBUG
+/*
+ * Miscellaneous USB options
+ */
+#undef CONFIG_USB_DEVICEFS
+#undef CONFIG_USB_BANDWIDTH
+/*
+ * USB Controllers
+ */
+#define CONFIG_USB_UHCI_ALT 1
+#undef CONFIG_USB_OHCI
+/*
+ * USB Device Class drivers
+ */
+#undef CONFIG_USB_AUDIO
+#undef CONFIG_USB_BLUETOOTH
+#define CONFIG_USB_STORAGE 1
+#undef CONFIG_USB_STORAGE_DEBUG
+#undef CONFIG_USB_STORAGE_FREECOM
+#undef CONFIG_USB_ACM
+#undef CONFIG_USB_PRINTER
+/*
+ * USB Human Interface Devices (HID)
+ */
+#undef CONFIG_USB_HID
+#undef CONFIG_USB_KBD
+#undef CONFIG_USB_MOUSE
+#undef CONFIG_USB_WACOM
+/*
+ * USB Imaging devices
+ */
+#undef CONFIG_USB_DC2XX
+#undef CONFIG_USB_MDC800
+#undef CONFIG_USB_SCANNER
+#undef CONFIG_USB_MICROTEK
+/*
+ * USB Multimedia devices
+ */
+#undef CONFIG_USB_IBMCAM
+#undef CONFIG_USB_OV511
+#undef CONFIG_USB_DSBR
+#undef CONFIG_USB_DABUSB
+/*
+ * USB Network adaptors
+ */
+#undef CONFIG_USB_PLUSB
+#undef CONFIG_USB_PEGASUS
+#undef CONFIG_USB_NET1080
+/*
+ * USB port drivers
+ */
+#undef CONFIG_USB_USS720
+/*
+ * USB Serial Converter support
+ */
+#undef CONFIG_USB_SERIAL
+/*
+ * USB misc drivers
+ */
+#undef CONFIG_USB_RIO500
+/*
+ * Kernel hacking
+ */
+#undef CONFIG_MAGIC_SYSRQ
diff --git a/sys-kernel/linux/files/2.4.0.1/config b/sys-kernel/linux/files/2.4.0.1/config
new file mode 100644
index 000000000000..f90650bec624
--- /dev/null
+++ b/sys-kernel/linux/files/2.4.0.1/config
@@ -0,0 +1,979 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_X86=y
+CONFIG_ISA=y
+# CONFIG_SBUS is not set
+CONFIG_UID16=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+# CONFIG_MODVERSIONS is not set
+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 is not set
+CONFIG_M686FXSR=y
+# 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_X86_WP_WORKS_OK=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=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_X86_FXSR=y
+CONFIG_X86_XMM=y
+# CONFIG_TOSHIBA is not set
+# CONFIG_MICROCODE is not set
+# CONFIG_X86_MSR is not set
+# CONFIG_X86_CPUID is not set
+CONFIG_NOHIGHMEM=y
+# CONFIG_HIGHMEM4G is not set
+# CONFIG_HIGHMEM64G is not set
+CONFIG_MTRR=y
+# CONFIG_SMP is not set
+CONFIG_X86_UP_IOAPIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_LOCAL_APIC=y
+
+#
+# General setup
+#
+CONFIG_NET=y
+# CONFIG_VISWS is not set
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GODIRECT is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_NAMES=y
+# CONFIG_EISA is not set
+# CONFIG_MCA is not set
+CONFIG_HOTPLUG=y
+
+#
+# PCMCIA/CardBus support
+#
+CONFIG_PCMCIA=y
+CONFIG_CARDBUS=y
+# CONFIG_I82365 is not set
+# CONFIG_TCIC is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+CONFIG_BINFMT_AOUT=y
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=y
+CONFIG_PM=y
+# CONFIG_ACPI is not set
+CONFIG_APM=y
+# 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=y
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_PC_FIFO=y
+# CONFIG_PARPORT_PC_SUPERIO is not set
+# CONFIG_PARPORT_AMIGA is not set
+# CONFIG_PARPORT_MFC3 is not set
+# CONFIG_PARPORT_ATARI is not set
+# CONFIG_PARPORT_SUNBPP is not set
+# CONFIG_PARPORT_OTHER is not set
+CONFIG_PARPORT_1284=y
+
+#
+# Plug and Play configuration
+#
+CONFIG_PNP=y
+CONFIG_ISAPNP=m
+
+#
+# Block devices
+#
+CONFIG_BLK_DEV_FD=y
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+# CONFIG_BLK_CPQ_CISS_DA is not set
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_INITRD=y
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=y
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID5=m
+CONFIG_BLK_DEV_LVM=y
+CONFIG_LVM_PROC_FS=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_NETLINK=y
+CONFIG_RTNETLINK=y
+CONFIG_NETLINK_DEV=m
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+# CONFIG_FILTER is not set
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_RTNETLINK=y
+CONFIG_NETLINK=y
+CONFIG_IP_MULTIPLE_TABLES=y
+# CONFIG_IP_ROUTE_FWMARK is not set
+CONFIG_IP_ROUTE_NAT=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_TOS=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_ROUTE_LARGE_TABLES is not set
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_PIMSM_V1 is not set
+# CONFIG_IP_PIMSM_V2 is not set
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+# CONFIG_SYN_COOKIES is not set
+
+#
+# IP: Netfilter Configuration
+#
+# CONFIG_IP_NF_CONNTRACK is not set
+# CONFIG_IP_NF_QUEUE is not set
+# CONFIG_IP_NF_IPTABLES is not set
+# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
+# CONFIG_IP_NF_COMPAT_IPFWADM is not set
+CONFIG_IPV6=y
+# CONFIG_IPV6_EUI64 is not set
+
+#
+# IPv6: Netfilter Configuration
+#
+# CONFIG_IP6_NF_IPTABLES is not set
+CONFIG_KHTTPD=m
+# CONFIG_ATM is not set
+
+#
+#
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
+# CONFIG_BLK_DEV_COMMERIAL is not set
+# CONFIG_BLK_DEV_IDECS is not set
+CONFIG_BLK_DEV_IDECD=y
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEFLOPPY=m
+# CONFIG_BLK_DEV_IDESCSI is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_BLK_DEV_CMD640=y
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_RZ1000=y
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_PCI_WIP is not set
+CONFIG_BLK_DEV_AEC62XX=y
+# CONFIG_AEC62XX_TUNING is not set
+CONFIG_BLK_DEV_ALI15X3=y
+# CONFIG_WDC_ALI15X3 is not set
+CONFIG_BLK_DEV_AMD7409=y
+CONFIG_BLK_DEV_CMD64X=y
+CONFIG_BLK_DEV_CY82C693=y
+CONFIG_BLK_DEV_CS5530=y
+CONFIG_BLK_DEV_HPT34X=y
+CONFIG_BLK_DEV_HPT366=y
+CONFIG_BLK_DEV_PIIX=y
+CONFIG_PIIX_TUNING=y
+CONFIG_BLK_DEV_NS87415=y
+CONFIG_BLK_DEV_OPTI621=y
+CONFIG_BLK_DEV_PDC202XX=y
+# CONFIG_PDC202XX_BURST is not set
+CONFIG_BLK_DEV_OSB4=y
+CONFIG_BLK_DEV_SIS5513=y
+CONFIG_BLK_DEV_SLC90E66=y
+CONFIG_BLK_DEV_TRM290=y
+CONFIG_BLK_DEV_VIA82CXXX=y
+CONFIG_IDE_CHIPSETS=y
+
+#
+# Note: most of these also require special kernel boot parameters
+#
+CONFIG_BLK_DEV_4DRIVES=y
+CONFIG_BLK_DEV_ALI14XX=y
+CONFIG_BLK_DEV_DTC2278=y
+CONFIG_BLK_DEV_HT6560B=y
+CONFIG_BLK_DEV_PDC4030=y
+CONFIG_BLK_DEV_QD6580=y
+CONFIG_BLK_DEV_UMC8672=y
+CONFIG_IDEDMA_AUTO=y
+CONFIG_IDEDMA_IVB=y
+# CONFIG_DMA_NONPCI is not set
+CONFIG_BLK_DEV_IDE_MODES=y
+
+#
+# SCSI support
+#
+CONFIG_SCSI=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+CONFIG_SD_EXTRA_DEVS=40
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=y
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_SR_EXTRA_DEVS=2
+# CONFIG_CHR_DEV_SG is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_DEBUG_QUEUES is not set
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI low-level drivers
+#
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AHA1740=m
+CONFIG_SCSI_AIC7XXX=m
+# CONFIG_AIC7XXX_TCQ_ON_BY_DEFAULT is not set
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
+# CONFIG_AIC7XXX_PROC_STATS is not set
+CONFIG_AIC7XXX_RESET_DELAY=5
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_MEGARAID=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_OMIT_FLASHPOINT is not set
+CONFIG_SCSI_CPQFCTS=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_EATA_DMA=m
+CONFIG_SCSI_EATA_PIO=m
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+# CONFIG_SCSI_GENERIC_NCR53C400 is not set
+CONFIG_SCSI_G_NCR5380_PORT=y
+# CONFIG_SCSI_G_NCR5380_MEM is not set
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_NCR53C7xx=m
+# CONFIG_SCSI_NCR53C7xx_sync is not set
+# CONFIG_SCSI_NCR53C7xx_FAST is not set
+# CONFIG_SCSI_NCR53C7xx_DISCONNECT is not set
+CONFIG_SCSI_NCR53C8XX=m
+CONFIG_SCSI_SYM53C8XX=y
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=4
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=20
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set
+# CONFIG_SCSI_NCR53C8XX_PQS_PDS is not set
+# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_PCI2000=m
+CONFIG_SCSI_PCI2220I=m
+CONFIG_SCSI_PSI240I=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_ISP=m
+CONFIG_SCSI_QLOGIC_FC=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SEAGATE=m
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DC390T_NOGENSUPP is not set
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_DEBUG=m
+
+#
+# PCMCIA SCSI adapter support
+#
+# CONFIG_SCSI_PCMCIA is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+# CONFIG_FUSION_BOOT is not set
+# CONFIG_FUSION_ISENSE is not set
+# CONFIG_FUSION_CTL is not set
+# CONFIG_FUSION_LAN is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_ETHERTAP=m
+CONFIG_NET_SB1000=m
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+CONFIG_VORTEX=m
+CONFIG_LANCE=m
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRA=m
+CONFIG_SMC9194=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI5010=m
+CONFIG_NI52=m
+CONFIG_NI65=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_SK_G16=m
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_CS89x0=m
+CONFIG_TULIP=m
+CONFIG_DE4X5=m
+CONFIG_DGRS=m
+CONFIG_DM9102=m
+CONFIG_EEPRO100=y
+# CONFIG_EEPRO100_PM is not set
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_8139TOO=m
+CONFIG_RTL8129=m
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+CONFIG_TLAN=m
+CONFIG_VIA_RHINE=m
+CONFIG_WINBOND_840=m
+CONFIG_HAPPYMEAL=m
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_SK98LIN=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+# CONFIG_PPP_MULTILINK is not set
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+# CONFIG_NET_FC is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# PCMCIA network device support
+#
+# CONFIG_NET_PCMCIA 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=m
+CONFIG_INPUT_KEYBDEV=m
+CONFIG_INPUT_MOUSEDEV=m
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_SERIAL=y
+# CONFIG_SERIAL_CONSOLE is not set
+# CONFIG_SERIAL_EXTENDED is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+CONFIG_PRINTER=m
+CONFIG_LP_CONSOLE=y
+CONFIG_PPDEV=m
+
+#
+# I2C support
+#
+CONFIG_I2C=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_PHILIPSPAR=m
+CONFIG_I2C_ELV=m
+CONFIG_I2C_VELLEMAN=m
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ELEKTOR=m
+CONFIG_I2C_CHARDEV=m
+
+#
+# Mice
+#
+CONFIG_BUSMOUSE=m
+CONFIG_ATIXL_BUSMOUSE=m
+CONFIG_LOGIBUSMOUSE=m
+CONFIG_MS_BUSMOUSE=m
+CONFIG_MOUSE=m
+CONFIG_PSMOUSE=y
+CONFIG_82C710_MOUSE=m
+CONFIG_PC110_PAD=m
+
+#
+# Joysticks
+#
+# CONFIG_JOYSTICK is not set
+
+#
+# Input core support is needed for joysticks
+#
+# CONFIG_QIC02_TAPE is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_INTEL_RNG is not set
+CONFIG_NVRAM=y
+CONFIG_RTC=m
+# 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=m
+CONFIG_AGP_INTEL=y
+CONFIG_AGP_I810=y
+CONFIG_AGP_VIA=y
+CONFIG_AGP_AMD=y
+CONFIG_AGP_SIS=y
+CONFIG_AGP_ALI=y
+CONFIG_DRM=y
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_GAMMA=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_I810=m
+CONFIG_DRM_MGA=m
+CONFIG_PCMCIA_SERIAL=y
+
+#
+# PCMCIA character device support
+#
+# CONFIG_PCMCIA_SERIAL_CS is not set
+# CONFIG_PCMCIA_SERIAL_CB is not set
+
+#
+# Multimedia devices
+#
+CONFIG_VIDEO_DEV=m
+
+#
+# Video For Linux
+#
+CONFIG_VIDEO_PROC_FS=y
+CONFIG_I2C_PARPORT=m
+
+#
+# Video Adapters
+#
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_PMS=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_CPIA=m
+CONFIG_VIDEO_CPIA_PP=m
+CONFIG_VIDEO_CPIA_USB=m
+CONFIG_VIDEO_SAA5249=m
+CONFIG_TUNER_3036=m
+CONFIG_VIDEO_STRADIS=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_BUZ=m
+CONFIG_VIDEO_ZR36120=m
+
+#
+# Radio Adapters
+#
+# CONFIG_RADIO_CADET is not set
+# CONFIG_RADIO_RTRACK is not set
+# CONFIG_RADIO_RTRACK2 is not set
+# CONFIG_RADIO_AZTECH is not set
+# CONFIG_RADIO_GEMTEK is not set
+# CONFIG_RADIO_MAESTRO is not set
+# CONFIG_RADIO_MIROPCM20 is not set
+# CONFIG_RADIO_SF16FMI is not set
+# CONFIG_RADIO_TERRATEC is not set
+# CONFIG_RADIO_TRUST is not set
+# CONFIG_RADIO_TYPHOON is not set
+# CONFIG_RADIO_ZOLTRIX is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=y
+CONFIG_REISERFS_FS=y
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+CONFIG_HFS_FS=m
+# CONFIG_BFS_FS is not set
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_UMSDOS_FS=m
+CONFIG_VFAT_FS=m
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_RAMFS is not set
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+CONFIG_MINIX_FS=y
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_RW is not set
+CONFIG_HPFS_FS=m
+CONFIG_PROC_FS=y
+CONFIG_DEVFS_FS=y
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS 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_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_CODA_FS=m
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFSD=y
+CONFIG_NFSD_V3=y
+CONFIG_SUNRPC=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_SMB_FS=y
+CONFIG_SMB_NLS_DEFAULT=y
+CONFIG_SMB_NLS_REMOTE="cp437"
+# CONFIG_NCP_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_SMB_NLS=y
+CONFIG_NLS=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_UTF8=m
+
+#
+# Console drivers
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_VIDEO_SELECT=y
+# CONFIG_MDA_CONSOLE is not set
+
+#
+# Frame-buffer support
+#
+CONFIG_FB=y
+CONFIG_DUMMY_CONSOLE=y
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_CLGEN is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+CONFIG_FB_VESA=y
+# CONFIG_FB_VGA16 is not set
+# CONFIG_FB_HGA is not set
+CONFIG_VIDEO_SELECT=y
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FBCON_ADVANCED is not set
+CONFIG_FBCON_CFB8=y
+CONFIG_FBCON_CFB16=y
+CONFIG_FBCON_CFB24=y
+CONFIG_FBCON_CFB32=y
+# CONFIG_FBCON_FONTWIDTH8_ONLY is not set
+# CONFIG_FBCON_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+# CONFIG_SOUND_CMPCI is not set
+# CONFIG_SOUND_EMU10K1 is not set
+# CONFIG_SOUND_FUSION is not set
+# CONFIG_SOUND_CS4281 is not set
+# CONFIG_SOUND_ES1370 is not set
+# CONFIG_SOUND_ES1371 is not set
+# CONFIG_SOUND_ESSSOLO1 is not set
+# CONFIG_SOUND_MAESTRO is not set
+# CONFIG_SOUND_SONICVIBES is not set
+# CONFIG_SOUND_TRIDENT is not set
+# CONFIG_SOUND_MSNDCLAS is not set
+# CONFIG_SOUND_MSNDPIN is not set
+# CONFIG_SOUND_VIA82CXXX is not set
+# CONFIG_SOUND_YMFPCI is not set
+CONFIG_SOUND_OSS=y
+# CONFIG_SOUND_TRACEINIT is not set
+# CONFIG_SOUND_DMAP is not set
+# CONFIG_SOUND_AD1816 is not set
+# CONFIG_SOUND_SGALAXY is not set
+# CONFIG_SOUND_ADLIB is not set
+# CONFIG_SOUND_ACI_MIXER is not set
+# CONFIG_SOUND_CS4232 is not set
+# CONFIG_SOUND_SSCAPE is not set
+# CONFIG_SOUND_GUS is not set
+# CONFIG_SOUND_ICH is not set
+# CONFIG_SOUND_VMIDI is not set
+# CONFIG_SOUND_TRIX is not set
+# CONFIG_SOUND_MSS is not set
+# CONFIG_SOUND_MPU401 is not set
+# CONFIG_SOUND_NM256 is not set
+# CONFIG_SOUND_MAD16 is not set
+# CONFIG_SOUND_PAS is not set
+# CONFIG_SOUND_PSS is not set
+# CONFIG_SOUND_SB is not set
+# CONFIG_SOUND_AWE32_SYNTH is not set
+# CONFIG_SOUND_WAVEFRONT is not set
+# CONFIG_SOUND_MAUI is not set
+# CONFIG_SOUND_YM3812 is not set
+# CONFIG_SOUND_OPL3SA1 is not set
+# CONFIG_SOUND_OPL3SA2 is not set
+# CONFIG_SOUND_YMPCI is not set
+# CONFIG_SOUND_YMFPCI is not set
+# CONFIG_SOUND_UART6850 is not set
+# CONFIG_SOUND_AEDSP16 is not set
+CONFIG_SOUND_TVMIXER=m
+
+#
+# USB support
+#
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_BANDWIDTH is not set
+
+#
+# USB Controllers
+#
+CONFIG_USB_UHCI_ALT=y
+# CONFIG_USB_OHCI is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_BLUETOOTH is not set
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# USB Human Interface Devices (HID)
+#
+# CONFIG_USB_HID is not set
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+# CONFIG_USB_WACOM is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_DC2XX is not set
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_SCANNER is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB Multimedia devices
+#
+# CONFIG_USB_IBMCAM is not set
+# CONFIG_USB_OV511 is not set
+# CONFIG_USB_DSBR is not set
+# CONFIG_USB_DABUSB is not set
+
+#
+# USB Network adaptors
+#
+# CONFIG_USB_PLUSB is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_NET1080 is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB misc drivers
+#
+# CONFIG_USB_RIO500 is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_MAGIC_SYSRQ is not set
diff --git a/sys-kernel/linux/files/2.4.0.1/linux-2.4.0-prerelease-ac2-reiserfs-3.6.23-nfs.diff.gz b/sys-kernel/linux/files/2.4.0.1/linux-2.4.0-prerelease-ac2-reiserfs-3.6.23-nfs.diff.gz
new file mode 100644
index 000000000000..18b2de1aa7d2
--- /dev/null
+++ b/sys-kernel/linux/files/2.4.0.1/linux-2.4.0-prerelease-ac2-reiserfs-3.6.23-nfs.diff.gz
Binary files differ
diff --git a/sys-kernel/linux/files/2.4.0.1/nfsfh.c b/sys-kernel/linux/files/2.4.0.1/nfsfh.c
new file mode 100644
index 000000000000..ceea8946ed68
--- /dev/null
+++ b/sys-kernel/linux/files/2.4.0.1/nfsfh.c
@@ -0,0 +1,849 @@
+/*
+ * linux/fs/nfsd/nfsfh.c
+ *
+ * NFS server file handle treatment.
+ *
+ * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
+ * Portions Copyright (C) 1999 G. Allen Morris III <gam3@acm.org>
+ * Extensive rewrite by Neil Brown <neilb@cse.unsw.edu.au> Southern-Spring 1999
+ */
+
+#include <linux/sched.h>
+#include <linux/malloc.h>
+#include <linux/fs.h>
+#include <linux/unistd.h>
+#include <linux/string.h>
+#include <linux/stat.h>
+#include <linux/dcache.h>
+#include <asm/pgtable.h>
+
+#include <linux/sunrpc/svc.h>
+#include <linux/nfsd/nfsd.h>
+
+#define NFSDDBG_FACILITY NFSDDBG_FH
+#define NFSD_PARANOIA 1
+/* #define NFSD_DEBUG_VERBOSE 1 */
+
+
+static int nfsd_nr_verified;
+static int nfsd_nr_put;
+
+
+struct nfsd_getdents_callback {
+ struct qstr *name; /* name that was found. name->name already points to a buffer */
+ unsigned long ino; /* the inum we are looking for */
+ int found; /* inode matched? */
+ int sequence; /* sequence counter */
+};
+
+/*
+ * A rather strange filldir function to capture
+ * the name matching the specified inode number.
+ */
+static int filldir_one(void * __buf, const char * name, int len,
+ off_t pos, ino_t ino, unsigned int d_type)
+{
+ struct nfsd_getdents_callback *buf = __buf;
+ struct qstr *qs = buf->name;
+ char *nbuf = (char*)qs->name; /* cast is to get rid of "const" */
+ int result = 0;
+
+ buf->sequence++;
+#ifdef NFSD_DEBUG_VERBOSE
+dprintk("filldir_one: seq=%d, ino=%ld, name=%s\n", buf->sequence, ino, name);
+#endif
+ if (buf->ino == ino) {
+ qs->len = len;
+ memcpy(nbuf, name, len);
+ nbuf[len] = '\0';
+ buf->found = 1;
+ result = -1;
+ }
+ return result;
+}
+
+/*
+ * Read a directory and return the name of the specified entry.
+ * i_sem is already down().
+ * The whole thing is a total BS. It should not be done via readdir(), damnit!
+ * Oh, well, as soon as it will be in filesystems...
+ */
+static int get_ino_name(struct dentry *dentry, struct qstr *name, unsigned long ino)
+{
+ struct inode *dir = dentry->d_inode;
+ int error;
+ struct file file;
+ struct nfsd_getdents_callback buffer;
+
+ error = -ENOTDIR;
+ if (!dir || !S_ISDIR(dir->i_mode))
+ goto out;
+ error = -EINVAL;
+ if (!dir->i_fop)
+ goto out;
+ /*
+ * Open the directory ...
+ */
+ error = init_private_file(&file, dentry, FMODE_READ);
+ if (error)
+ goto out;
+ error = -EINVAL;
+ if (!file.f_op->readdir)
+ goto out_close;
+
+ buffer.name = name;
+ buffer.ino = ino;
+ buffer.found = 0;
+ buffer.sequence = 0;
+ while (1) {
+ int old_seq = buffer.sequence;
+ error = file.f_op->readdir(&file, &buffer, filldir_one);
+ if (error < 0)
+ break;
+
+ error = 0;
+ if (buffer.found)
+ break;
+ error = -ENOENT;
+ if (old_seq == buffer.sequence)
+ break;
+ }
+
+out_close:
+ if (file.f_op->release)
+ file.f_op->release(dir, &file);
+out:
+ return error;
+}
+
+/* this should be provided by each filesystem in an nfsd_operations interface as
+ * iget isn't really the right interface
+ */
+static struct dentry *nfsd_iget(struct super_block *sb, struct i_label * ilabelp, __u32 generation)
+{
+
+ /* iget isn't really right if the inode is currently unallocated!!
+ * This should really all be done inside each filesystem
+ *
+ * ext2fs' read_inode has been strengthed to return a bad_inode if the inode
+ * had been deleted.
+ *
+ * Currently we don't know the generation for parent directory, so a generation
+ * of 0 means "accept any"
+ */
+ struct inode *inode;
+ struct list_head *lp;
+ struct dentry *result;
+ inode = iget4(sb, ilabelp, NULL, NULL);
+ if (is_bad_inode(inode)
+ || (generation && inode->i_generation != generation)
+ ) {
+ /* we didn't find the right inode.. */
+ dprintk("fh_verify: Inode %lu, Bad count: %d %d or version %u %u\n",
+ inode->i_ino,
+ inode->i_nlink, atomic_read(&inode->i_count),
+ inode->i_generation,
+ generation);
+
+ iput(inode);
+ return ERR_PTR(-ESTALE);
+ }
+ /* now to find a dentry.
+ * If possible, get a well-connected one
+ */
+ spin_lock(&dcache_lock);
+ for (lp = inode->i_dentry.next; lp != &inode->i_dentry ; lp=lp->next) {
+ result = list_entry(lp,struct dentry, d_alias);
+ if (! (result->d_flags & DCACHE_NFSD_DISCONNECTED)) {
+ dget_locked(result);
+ spin_unlock(&dcache_lock);
+ iput(inode);
+ return result;
+ }
+ }
+ spin_unlock(&dcache_lock);
+ result = d_alloc_root(inode);
+ if (result == NULL) {
+ iput(inode);
+ return ERR_PTR(-ENOMEM);
+ }
+ result->d_flags |= DCACHE_NFSD_DISCONNECTED;
+ d_rehash(result); /* so a dput won't loose it */
+ return result;
+}
+
+/* this routine links an IS_ROOT dentry into the dcache tree. It gains "parent"
+ * as a parent and "name" as a name
+ * It should possibly go in dcache.c
+ */
+int d_splice(struct dentry *target, struct dentry *parent, struct qstr *name)
+{
+ struct dentry *tdentry;
+#ifdef NFSD_PARANOIA
+ if (!IS_ROOT(target))
+ printk("nfsd: d_splice with no-root target: %s/%s\n", parent->d_name.name, name->name);
+ if (!(target->d_flags & DCACHE_NFSD_DISCONNECTED))
+ printk("nfsd: d_splice with non-DISCONNECTED target: %s/%s\n", parent->d_name.name, name->name);
+#endif
+ name->hash = full_name_hash(name->name, name->len);
+ tdentry = d_alloc(parent, name);
+ if (tdentry == NULL)
+ return -ENOMEM;
+ d_move(target, tdentry);
+
+ /* tdentry will have been made a "child" of target (the parent of target)
+ * make it an IS_ROOT instead
+ */
+ spin_lock(&dcache_lock);
+ list_del(&tdentry->d_child);
+ tdentry->d_parent = tdentry;
+ spin_unlock(&dcache_lock);
+ d_rehash(target);
+ dput(tdentry);
+
+ /* if parent is properly connected, then we can assert that
+ * the children are connected, but it must be a singluar (non-forking)
+ * branch
+ */
+ if (!(parent->d_flags & DCACHE_NFSD_DISCONNECTED)) {
+ while (target) {
+ target->d_flags &= ~DCACHE_NFSD_DISCONNECTED;
+ parent = target;
+ spin_lock(&dcache_lock);
+ if (list_empty(&parent->d_subdirs))
+ target = NULL;
+ else {
+ target = list_entry(parent->d_subdirs.next, struct dentry, d_child);
+#ifdef NFSD_PARANOIA
+ /* must be only child */
+ if (target->d_child.next != &parent->d_subdirs
+ || target->d_child.prev != &parent->d_subdirs)
+ printk("nfsd: d_splice found non-singular disconnected branch: %s/%s\n",
+ parent->d_name.name, target->d_name.name);
+#endif
+ }
+ spin_unlock(&dcache_lock);
+ }
+ }
+ return 0;
+}
+
+/* this routine finds the dentry of the parent of a given directory
+ * it should be in the filesystem accessed by nfsd_operations
+ * it assumes lookup("..") works.
+ */
+struct dentry *nfsd_findparent(struct dentry *child)
+{
+ struct dentry *tdentry, *pdentry;
+ tdentry = d_alloc(child, &(const struct qstr) {"..", 2, 0});
+ if (!tdentry)
+ return ERR_PTR(-ENOMEM);
+
+ /* I'm going to assume that if the returned dentry is different, then
+ * it is well connected. But nobody returns different dentrys do they?
+ */
+ pdentry = child->d_inode->i_op->lookup(child->d_inode, tdentry);
+ d_drop(tdentry); /* we never want ".." hashed */
+ if (!pdentry) {
+ /* I don't want to return a ".." dentry.
+ * I would prefer to return an unconnected "IS_ROOT" dentry,
+ * though a properly connected dentry is even better
+ */
+ /* if first or last of alias list is not tdentry, use that
+ * else make a root dentry
+ */
+ struct list_head *aliases = &tdentry->d_inode->i_dentry;
+ spin_lock(&dcache_lock);
+ if (aliases->next != aliases) {
+ pdentry = list_entry(aliases->next, struct dentry, d_alias);
+ if (pdentry == tdentry)
+ pdentry = list_entry(aliases->prev, struct dentry, d_alias);
+ if (pdentry == tdentry)
+ pdentry = NULL;
+ if (pdentry) dget_locked(pdentry);
+ }
+ spin_unlock(&dcache_lock);
+ if (pdentry == NULL) {
+ pdentry = d_alloc_root(igrab(tdentry->d_inode));
+ if (pdentry) {
+ pdentry->d_flags |= DCACHE_NFSD_DISCONNECTED;
+ d_rehash(pdentry);
+ }
+ }
+ if (pdentry == NULL)
+ pdentry = ERR_PTR(-ENOMEM);
+ }
+ dput(tdentry); /* it is not hashed, it will be discarded */
+ return pdentry;
+}
+
+static struct dentry *splice(struct dentry *child, struct dentry *parent)
+{
+ int err = 0;
+ struct qstr qs;
+ char namebuf[256];
+ struct list_head *lp;
+ struct dentry *tmp;
+ /* child is an IS_ROOT (anonymous) dentry, but it is hypothesised that
+ * it should be a child of parent.
+ * We see if we can find a name and, if we can - splice it in.
+ * We hold the i_sem on the parent the whole time to try to follow locking protocols.
+ */
+ qs.name = namebuf;
+ down(&parent->d_inode->i_sem);
+
+ /* Now, things might have changed while we waited.
+ * Possibly a friendly filesystem found child and spliced it in in response
+ * to a lookup (though nobody does this yet). In this case, just succeed.
+ */
+ if (child->d_parent == parent) goto out;
+ /* Possibly a new dentry has been made for this child->d_inode in
+ * parent by a lookup. In this case return that dentry. caller must
+ * notice and act accordingly
+ */
+ spin_lock(&dcache_lock);
+ for (lp = child->d_inode->i_dentry.next; lp != &child->d_inode->i_dentry ; lp=lp->next) {
+ tmp = list_entry(lp,struct dentry, d_alias);
+ if (tmp->d_parent == parent) {
+ child = dget_locked(tmp);
+ spin_unlock(&dcache_lock);
+ goto out;
+ }
+ }
+ spin_unlock(&dcache_lock);
+ /* well, if we can find a name for child in parent, it should be safe to splice it in */
+ err = get_ino_name(parent, &qs, child->d_inode->i_ino);
+ if (err)
+ goto out;
+ tmp = d_lookup(parent, &qs);
+ if (tmp) {
+ /* Now that IS odd. I wonder what it means... */
+ err = -EEXIST;
+ printk("nfsd-fh: found a name that I didn't expect: %s/%s\n", parent->d_name.name, qs.name);
+ dput(tmp);
+ goto out;
+ }
+ err = d_splice(child, parent, &qs);
+ dprintk("nfsd_fh: found name %s for ino %ld\n", child->d_name.name, child->d_inode->i_ino);
+ out:
+ up(&parent->d_inode->i_sem);
+ if (err)
+ return ERR_PTR(err);
+ else
+ return child;
+}
+
+/*
+ * This is the basic lookup mechanism for turning an NFS file handle
+ * into a dentry.
+ * We use nfsd_iget and if that doesn't return a suitably connected dentry,
+ * we try to find the parent, and the parent of that and so-on until a
+ * connection if made.
+ */
+static struct dentry *
+find_fh_dentry(struct super_block *sb, struct i_label * ilabelp, int generation,
+ struct i_label * ilabelp_dir, int needpath)
+{
+ struct dentry *dentry, *result = NULL;
+ struct dentry *tmp;
+ int found =0;
+ int err = -ESTALE;
+ /* the sb->s_nfsd_free_path_sem semaphore is needed to make sure that only one unconnected (free)
+ * dcache path ever exists, as otherwise two partial paths might get
+ * joined together, which would be very confusing.
+ * If there is ever an unconnected non-root directory, then this lock
+ * must be held.
+ */
+
+
+ nfsdstats.fh_lookup++;
+ /*
+ * Attempt to find the inode.
+ */
+ retry:
+ down(&sb->s_nfsd_free_path_sem);
+ result = nfsd_iget(sb, ilabelp, generation);
+ if (IS_ERR(result)
+ || !(result->d_flags & DCACHE_NFSD_DISCONNECTED)
+ || (!S_ISDIR(result->d_inode->i_mode) && ! needpath)) {
+ up(&sb->s_nfsd_free_path_sem);
+
+ err = PTR_ERR(result);
+ if (IS_ERR(result))
+ goto err_out;
+ if ((result->d_flags & DCACHE_NFSD_DISCONNECTED))
+ nfsdstats.fh_anon++;
+ return result;
+ }
+
+ /* It's a directory, or we are required to confirm the file's
+ * location in the tree.
+ */
+ dprintk("nfs_fh: need to look harder for %d/%ld\n",sb->s_dev,ilabelp->ino);
+
+ found = 0;
+ if (!S_ISDIR(result->d_inode->i_mode)) {
+ nfsdstats.fh_nocache_nondir++;
+ if (ilabelp_dir == 0)
+ goto err_result; /* don't know how to find parent */
+ else {
+ /* need to iget dirino and make sure this inode is in that directory */
+ dentry = nfsd_iget(sb, ilabelp_dir, 0);
+ err = PTR_ERR(dentry);
+ if (IS_ERR(dentry))
+ goto err_result;
+ err = -ESTALE;
+ if (!dentry->d_inode
+ || !S_ISDIR(dentry->d_inode->i_mode)) {
+ goto err_dentry;
+ }
+ if (!(dentry->d_flags & DCACHE_NFSD_DISCONNECTED))
+ found = 1;
+ tmp = splice(result, dentry);
+ err = PTR_ERR(tmp);
+ if (IS_ERR(tmp))
+ goto err_dentry;
+ if (tmp != result) {
+ /* it is safe to just use tmp instead, but we must discard result first */
+ d_drop(result);
+ dput(result);
+ result = tmp;
+ /* If !found, then this is really wierd, but it shouldn't hurt */
+ }
+ }
+ } else {
+ nfsdstats.fh_nocache_dir++;
+ dentry = dget(result);
+ }
+
+ while(!found) {
+ /* LOOP INVARIANT */
+ /* haven't found a place in the tree yet, but we do have a free path
+ * from dentry down to result, and dentry is a directory.
+ * Have a hold on dentry and result */
+ struct dentry *pdentry;
+ struct inode *parent;
+
+ pdentry = nfsd_findparent(dentry);
+ err = PTR_ERR(pdentry);
+ if (IS_ERR(pdentry))
+ goto err_dentry;
+ parent = pdentry->d_inode;
+ err = -EACCES;
+ if (!parent) {
+ dput(pdentry);
+ goto err_dentry;
+ }
+
+ if (!(dentry->d_flags & DCACHE_NFSD_DISCONNECTED))
+ found = 1;
+
+ tmp = splice(dentry, pdentry);
+ if (tmp != dentry) {
+ /* Something wrong. We need to drop thw whole dentry->result path
+ * whatever it was
+ */
+ struct dentry *d;
+ for (d=result ; d ; d=(d->d_parent == d)?NULL:d->d_parent)
+ d_drop(d);
+ }
+ if (IS_ERR(tmp)) {
+ err = PTR_ERR(tmp);
+ dput(pdentry);
+ goto err_dentry;
+ }
+ if (tmp != dentry) {
+ /* we lost a race, try again
+ */
+ dput(tmp);
+ dput(dentry);
+ dput(result); /* this will discard the whole free path, so we can up the semaphore */
+ up(&sb->s_nfsd_free_path_sem);
+ goto retry;
+ }
+ dput(dentry);
+ dentry = pdentry;
+ }
+ dput(dentry);
+ up(&sb->s_nfsd_free_path_sem);
+ return result;
+
+err_dentry:
+ dput(dentry);
+err_result:
+ dput(result);
+ up(&sb->s_nfsd_free_path_sem);
+err_out:
+ if (err == -ESTALE)
+ nfsdstats.fh_stale++;
+ return ERR_PTR(err);
+}
+
+/*
+ * Perform sanity checks on the dentry in a client's file handle.
+ *
+ * Note that the file handle dentry may need to be freed even after
+ * an error return.
+ *
+ * This is only called at the start of an nfsproc call, so fhp points to
+ * a svc_fh which is all 0 except for the over-the-wire file handle.
+ */
+u32
+fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access)
+{
+ struct knfsd_fh *fh = &fhp->fh_handle;
+ struct svc_export *exp;
+ struct dentry *dentry;
+ struct inode *inode;
+ u32 error = 0;
+
+ dprintk("nfsd: fh_verify(%s)\n", SVCFH_fmt(fhp));
+
+ if (!fhp->fh_dentry) {
+ kdev_t xdev;
+ ino_t xino;
+ __u32 *datap=NULL;
+ int data_left = fh->fh_size/4;
+ int nfsdev;
+ error = nfserr_stale;
+ if (rqstp->rq_vers == 3)
+ error = nfserr_badhandle;
+ if (fh->fh_version == 1) {
+
+ datap = fh->fh_auth;
+ if (--data_left<0) goto out;
+ switch (fh->fh_auth_type) {
+ case 0: break;
+ default: goto out;
+ }
+
+ switch (fh->fh_fsid_type) {
+ case 0:
+ if ((data_left-=2)<0) goto out;
+ nfsdev = ntohl(*datap++);
+ xdev = MKDEV(nfsdev>>16, nfsdev&0xFFFF);
+ xino = *datap++;
+ break;
+ default:
+ goto out;
+ }
+ } else {
+ if (fh->fh_size != NFS_FHSIZE)
+ goto out;
+ /* assume old filehandle format */
+ xdev = u32_to_kdev_t(fh->ofh_xdev);
+ xino = u32_to_ino_t(fh->ofh_xino);
+ }
+
+ /*
+ * Look up the export entry.
+ */
+ error = nfserr_stale;
+ exp = exp_get(rqstp->rq_client, xdev, xino);
+
+ if (!exp) {
+ /* export entry revoked */
+ nfsdstats.fh_stale++;
+ goto out;
+ }
+
+ /* Check if the request originated from a secure port. */
+ error = nfserr_perm;
+ if (!rqstp->rq_secure && EX_SECURE(exp)) {
+ printk(KERN_WARNING
+ "nfsd: request from insecure port (%08x:%d)!\n",
+ ntohl(rqstp->rq_addr.sin_addr.s_addr),
+ ntohs(rqstp->rq_addr.sin_port));
+ goto out;
+ }
+
+ /* Set user creds if we haven't done so already. */
+ nfsd_setuser(rqstp, exp);
+
+ /*
+ * Look up the dentry using the NFS file handle.
+ */
+ error = nfserr_stale;
+ if (rqstp->rq_vers == 3)
+ error = nfserr_badhandle;
+
+ if (fh->fh_version == 1) {
+ struct super_block * sbp;
+
+ /* if fileid_type != 0, and super_operations provide fh_to_dentry lookup,
+ * then should use that */
+ if (fh->fh_fileid_type == 0) {
+ dentry = dget(exp->ex_dentry);
+ goto l_chkdentry;
+ }
+
+ sbp = exp -> ex_dentry -> d_inode -> i_sb;
+ if (sbp -> s_nfsd_op && sbp -> s_nfsd_op -> fh_to_ilabel) {
+ struct i_label ilabel, ilabel_dir;
+ int result;
+ struct fh2ilbl_args args = {
+ & ilabel, & ilabel_dir, 0
+ };
+
+ result = sbp -> s_nfsd_op ->
+ fh_to_ilabel (sbp, fh -> fh_fileid_type, datap, data_left, & args);
+ if (result != 0) {
+ goto out;
+ }
+
+ dentry = find_fh_dentry(sbp, args.ilabelp, args.i_generation,
+ args.ilabelp_dir,
+ !(exp->ex_flags & NFSEXP_NOSUBTREECHECK));
+ goto l_chkdentry;
+ }
+ switch (fh->fh_fileid_type) {
+ case 1:
+ if ((data_left-=2)<0) goto out;
+ dentry = find_fh_dentry(exp->ex_dentry->d_inode->i_sb,
+ (struct i_label *) (datap + 0), datap[1],
+ 0,
+ !(exp->ex_flags & NFSEXP_NOSUBTREECHECK));
+ break;
+ case 2:
+ if ((data_left-=3)<0) goto out;
+ dentry = find_fh_dentry(exp->ex_dentry->d_inode->i_sb,
+ (struct i_label *) (datap + 0), datap[1],
+ (struct i_label *) (datap + 2),
+ !(exp->ex_flags & NFSEXP_NOSUBTREECHECK));
+ break;
+ default: goto out;
+ }
+ } else {
+
+ dentry = find_fh_dentry(exp->ex_dentry->d_inode->i_sb,
+ (struct i_label *) & (fh->ofh_ino),
+ fh->ofh_generation,
+ (struct i_label *) & (fh->ofh_dirino),
+ !(exp->ex_flags & NFSEXP_NOSUBTREECHECK));
+ }
+l_chkdentry:
+ if (IS_ERR(dentry)) {
+ error = nfserrno(PTR_ERR(dentry));
+ goto out;
+ }
+#ifdef NFSD_PARANOIA
+ if (S_ISDIR(dentry->d_inode->i_mode) &&
+ (dentry->d_flags & DCACHE_NFSD_DISCONNECTED)) {
+ printk("nfsd: find_fh_dentry returned a DISCONNECTED directory: %s/%s\n",
+ dentry->d_parent->d_name.name, dentry->d_name.name);
+ }
+#endif
+
+ fhp->fh_dentry = dentry;
+ fhp->fh_export = exp;
+ nfsd_nr_verified++;
+ } else {
+ /* just rechecking permissions
+ * (e.g. nfsproc_create calls fh_verify, then nfsd_create does as well)
+ */
+ dprintk("nfsd: fh_verify - just checking\n");
+ dentry = fhp->fh_dentry;
+ exp = fhp->fh_export;
+ }
+
+ inode = dentry->d_inode;
+
+ /* Type check. The correct error return for type mismatches
+ * does not seem to be generally agreed upon. SunOS seems to
+ * use EISDIR if file isn't S_IFREG; a comment in the NFSv3
+ * spec says this is incorrect (implementation notes for the
+ * write call).
+ */
+
+ /* When is type ever negative? */
+ if (type > 0 && (inode->i_mode & S_IFMT) != type) {
+ error = (type == S_IFDIR)? nfserr_notdir : nfserr_isdir;
+ goto out;
+ }
+ if (type < 0 && (inode->i_mode & S_IFMT) == -type) {
+ error = (type == -S_IFDIR)? nfserr_notdir : nfserr_isdir;
+ goto out;
+ }
+
+ /*
+ * Security: Check that the export is valid for dentry <gam3@acm.org>
+ */
+ error = 0;
+
+ if (!(exp->ex_flags & NFSEXP_NOSUBTREECHECK)) {
+ if (exp->ex_dentry != dentry) {
+ struct dentry *tdentry = dentry;
+
+ do {
+ tdentry = tdentry->d_parent;
+ if (exp->ex_dentry == tdentry)
+ break;
+ /* executable only by root and we can't be root */
+ if (current->fsuid
+ && (exp->ex_flags & NFSEXP_ROOTSQUASH)
+ && !(tdentry->d_inode->i_uid
+ && (tdentry->d_inode->i_mode & S_IXUSR))
+ && !(tdentry->d_inode->i_gid
+ && (tdentry->d_inode->i_mode & S_IXGRP))
+ && !(tdentry->d_inode->i_mode & S_IXOTH)
+ ) {
+ error = nfserr_stale;
+ nfsdstats.fh_stale++;
+ dprintk("fh_verify: no root_squashed access.\n");
+ }
+ } while ((tdentry != tdentry->d_parent));
+ if (exp->ex_dentry != tdentry) {
+ error = nfserr_stale;
+ nfsdstats.fh_stale++;
+ printk("nfsd Security: %s/%s bad export.\n",
+ dentry->d_parent->d_name.name,
+ dentry->d_name.name);
+ goto out;
+ }
+ }
+ }
+
+ /* Finally, check access permissions. */
+ if (!error) {
+ error = nfsd_permission(exp, dentry, access);
+ }
+#ifdef NFSD_PARANOIA
+ if (error) {
+ printk("fh_verify: %s/%s permission failure, acc=%x, error=%d\n",
+ dentry->d_parent->d_name.name, dentry->d_name.name, access, (error >> 24));
+ }
+#endif
+out:
+ return error;
+}
+
+/*
+ * Compose a file handle for an NFS reply.
+ *
+ * Note that when first composed, the dentry may not yet have
+ * an inode. In this case a call to fh_update should be made
+ * before the fh goes out on the wire ...
+ */
+inline int _fh_update(struct dentry *dentry, struct svc_export *exp,
+ __u32 **datapp, int maxsize)
+{
+ struct super_block * sbp;
+ __u32 *datap= *datapp;
+ if (dentry == exp->ex_dentry)
+ return 0;
+ /* if super_operations provides dentry_to_fh lookup, should use that */
+ sbp = exp->ex_dentry->d_inode->i_sb;
+
+ if (sbp -> s_nfsd_op && sbp -> s_nfsd_op -> encode_fh) {
+ return (sbp -> s_nfsd_op -> encode_fh (dentry, exp->ex_flags, datapp, maxsize));
+ }
+
+ *datap++ = ino_t_to_u32(dentry->d_inode->i_ino);
+ *datap++ = dentry->d_inode->i_generation;
+ if (S_ISDIR(dentry->d_inode->i_mode) || (exp->ex_flags & NFSEXP_NOSUBTREECHECK)){
+ *datapp = datap;
+ return 1;
+ }
+ *datap++ = ino_t_to_u32(dentry->d_parent->d_inode->i_ino);
+ *datapp = datap;
+ return 2;
+}
+
+int
+fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry)
+{
+ struct inode * inode = dentry->d_inode;
+ struct dentry *parent = dentry->d_parent;
+ __u32 *datap;
+
+ dprintk("nfsd: fh_compose(exp %x/%ld %s/%s, ino=%ld)\n",
+ exp->ex_dev, (long) exp->ex_ino,
+ parent->d_name.name, dentry->d_name.name,
+ (inode ? inode->i_ino : 0));
+
+ if (fhp->fh_locked || fhp->fh_dentry) {
+ printk(KERN_ERR "fh_compose: fh %s/%s not initialized!\n",
+ parent->d_name.name, dentry->d_name.name);
+ }
+ if (fhp->fh_maxsize < NFS_FHSIZE)
+ printk(KERN_ERR "fh_compose: called with maxsize %d! %s/%s\n",
+ fhp->fh_maxsize, parent->d_name.name, dentry->d_name.name);
+
+ fhp->fh_dentry = dentry; /* our internal copy */
+ fhp->fh_export = exp;
+
+ fhp->fh_handle.fh_version = 1;
+ fhp->fh_handle.fh_auth_type = 0;
+ fhp->fh_handle.fh_fsid_type = 0;
+ datap = fhp->fh_handle.fh_auth+0;
+ /* fsid_type 0 == 2byte major, 2byte minor, 4byte inode */
+ *datap++ = htonl((MAJOR(exp->ex_dev)<<16)| MINOR(exp->ex_dev));
+ *datap++ = ino_t_to_u32(exp->ex_ino);
+
+ if (inode)
+ fhp->fh_handle.fh_fileid_type =
+ _fh_update(dentry, exp, &datap, fhp->fh_maxsize-3);
+
+ fhp->fh_handle.fh_size = (datap-fhp->fh_handle.fh_auth+1)*4;
+
+
+ nfsd_nr_verified++;
+ if (fhp->fh_handle.fh_fileid_type == 255)
+ return nfserr_opnotsupp;
+ return 0;
+}
+
+/*
+ * Update file handle information after changing a dentry.
+ * This is only called by nfsd_create, nfsd_create_v3 and nfsd_proc_create
+ */
+int
+fh_update(struct svc_fh *fhp)
+{
+ struct dentry *dentry;
+ __u32 *datap;
+
+ if (!fhp->fh_dentry)
+ goto out_bad;
+
+ dentry = fhp->fh_dentry;
+ if (!dentry->d_inode)
+ goto out_negative;
+ if (fhp->fh_handle.fh_fileid_type != 0)
+ goto out_uptodate;
+ datap = fhp->fh_handle.fh_auth+
+ fhp->fh_handle.fh_size/4 -1;
+ fhp->fh_handle.fh_fileid_type =
+ _fh_update(dentry, fhp->fh_export, &datap, fhp->fh_maxsize-fhp->fh_handle.fh_size);
+ fhp->fh_handle.fh_size = (datap-fhp->fh_handle.fh_auth+1)*4;
+out:
+ return 0;
+
+out_bad:
+ printk(KERN_ERR "fh_update: fh not verified!\n");
+ goto out;
+out_negative:
+ printk(KERN_ERR "fh_update: %s/%s still negative!\n",
+ dentry->d_parent->d_name.name, dentry->d_name.name);
+ goto out;
+out_uptodate:
+ printk(KERN_ERR "fh_update: %s/%s already up-to-date!\n",
+ dentry->d_parent->d_name.name, dentry->d_name.name);
+ goto out;
+}
+
+/*
+ * Release a file handle.
+ */
+void
+fh_put(struct svc_fh *fhp)
+{
+ struct dentry * dentry = fhp->fh_dentry;
+ if (dentry) {
+ fh_unlock(fhp);
+ fhp->fh_dentry = NULL;
+ dput(dentry);
+ nfsd_nr_put++;
+ }
+ return;
+}
diff --git a/sys-kernel/linux/files/2.4.0.1/reiserfs-prerelease-makefile.patch.gz b/sys-kernel/linux/files/2.4.0.1/reiserfs-prerelease-makefile.patch.gz
new file mode 100644
index 000000000000..4de62f14a6a8
--- /dev/null
+++ b/sys-kernel/linux/files/2.4.0.1/reiserfs-prerelease-makefile.patch.gz
Binary files differ
diff --git a/sys-kernel/linux/files/digest-linux-2.4.0.1 b/sys-kernel/linux/files/digest-linux-2.4.0.1
new file mode 100644
index 000000000000..b9c60f202ac5
--- /dev/null
+++ b/sys-kernel/linux/files/digest-linux-2.4.0.1
@@ -0,0 +1,8 @@
+MD5 18278baa4c54387b1c29f0edba55ab14 linux-2.4.0.tar.bz2
+MD5 592cca4f33674fbfcb2d3ed49ee3199c patch-2.4.0-ac1.bz2
+MD5 eba0458f0456dadd8b078dbe41beec8e linux-2.4.0-test12-reiserfs-3.6.23-patch.gz
+MD5 c16f3df6b5f9e56b146071edfa5ec5d4 lm_sensors-2.5.4.tar.gz
+MD5 039fb223e361d343e8d40c54f0a317e6 i2c-2.5.4.tar.gz
+MD5 72c07a1188bcc928b9b1b0752f9fc635 jfs-0.1.1-patch.tar.gz
+MD5 20917ea363d9ccea983689cc27e7d813 alsa-driver-0.5.10.tar.bz2
+MD5 130d1e7bf56eda1a93a831189b4c6420 NVIDIA_kernel-0.9-5.tar.gz
diff --git a/sys-kernel/linux/linux-2.4.0.1.ebuild b/sys-kernel/linux/linux-2.4.0.1.ebuild
new file mode 100644
index 000000000000..fdbe10d55c2e
--- /dev/null
+++ b/sys-kernel/linux/linux-2.4.0.1.ebuild
@@ -0,0 +1,217 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Daniel Robbins <drobbins@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/linux/linux-2.4.0.1.ebuild,v 1.1 2001/01/05 09:04:43 achim Exp $
+
+S=${WORKDIR}/linux
+KV=2.4.0-ac1
+if [ "$PN" = "linux" ]
+then
+ DESCRIPTION="Linux kernel, including modules, binary tools, libraries and includes"
+else
+ DESCRIPTION="Kernel source package, including full sources, binary tools and libraries"
+fi
+SRC_URI="
+http://www.de.kernel.org/pub/linux/kernel/v2.4/linux-2.4.0.tar.bz2
+http://www.de.kernel.org/pub/linux/kernel/people/alan/2.4/patch-2.4.0-ac1.bz2
+ftp://ftp.reiserfs.org/pub/2.4/linux-2.4.0-test12-reiserfs-3.6.23-patch.gz
+http://www.netroedge.com/~lm78/archive/lm_sensors-2.5.4.tar.gz
+http://www.netroedge.com/~lm78/archive/i2c-2.5.4.tar.gz
+http://oss.software.ibm.com/developerworks/opensource/jfs/project/pub/jfs-0.1.1-patch.tar.gz
+ftp://ftp.alsa-project.org/pub/driver/alsa-driver-0.5.10.tar.bz2
+ftp://ftp1.detonator.nvidia.com/pub/drivers/english/XFree86_40/0.9-5/NVIDIA_kernel-0.9-5.tar.gz"
+
+HOMEPAGE="http://www.kernel.org/
+ http://www.netroedge.com/~lm78/
+ http://www.namesys.com
+ http://www.sistina.com/lvm/
+ http://www.alsa-project.org
+ http://www.nvidia.com"
+
+
+
+src_unpack() {
+ cd ${WORKDIR}
+ unpack linux-2.4.0.tar.bz2
+ cd ${S}
+ echo "Applying ac1 patch..."
+ bzip2 -dc ${DISTDIR}/patch-2.4.0-ac1.bz2 | patch -p1
+
+
+ echo "Applying ReiserFS patch..."
+ gzip -dc ${DISTDIR}/linux-2.4.0-test12-reiserfs-3.6.23-patch.gz | patch -p1
+
+ echo "Applying ReiserFS Makefile patch..."
+ gzip -dc ${FILESDIR}/${PV}/reiserfs-prerelease-makefile.patch.gz | ( cd fs/reiserfs; patch -p0 )
+
+ echo "Applying reiser-nfs patch..."
+ gzip -dc ${FILESDIR}/${PV}/linux-2.4.0-prerelease-ac2-reiserfs-3.6.23-nfs.diff.gz | patch -p1
+
+ echo "Fixing rejected file..."
+ cp ${FILESDIR}/${PV}/nfsfh.c ${S}/fs/nfsd/nfsfh.c
+
+ mkdir extras
+ if [ "`use jfs`" ]
+ then
+ echo "Applying IBM JFS patch..."
+ cd extras
+ mkdir jfs
+ cd jfs
+ unpack jfs-0.1.1-patch.tar.gz
+ cd ${S}
+ patch -p1 < extras/jfs/jfs-common-v0.1.1-patch
+ patch -p1 < extras/jfs/jfs-2.4.0-test12-v0.1.1-patch
+ fi
+ cd ${S}/extras
+ echo "Unpacking ALSA drivers..."
+ unpack alsa-driver-0.5.10.tar.bz2
+# echo "Unpacking NVidia drivers..."
+# unpack NVIDIA_kernel-0.9-5.tar.gz
+# cd NVIDIA_kernel-0.9-5
+# # this is a little fix to make the NVidia drivers compile right with test12
+# mv nv.c nv.c.orig
+# echo '#define mem_map_inc_count(p) atomic_inc(&(p->count))' > nv.c
+# echo '#define mem_map_dec_count(p) atomic_dec(&(p->count))' >> nv.c
+# cat nv.c.orig >> nv.c
+# This does not work with 2.4.0 daniel can you fix thisOB
+ cd ${S}/extras
+ for x in i2c
+ #lm_sensors buggy mkpatch.pl in 2.5.4!
+ do
+ echo "Unpacking and applying $x patch..."
+ cd ${S}/extras
+ unpack ${x}-2.5.4.tar.gz
+ cd ${x}-2.5.4
+ mkpatch/mkpatch.pl . ${S} > ${S}/${x}-patch
+ cd ${S}
+ patch -p1 < ${x}-patch
+ done
+ cd ${S}/extras
+ echo "Preparing for compilation..."
+ cd ${S}
+ #this is the configuration for the bootdisk/cd
+ cp ${FILESDIR}/${PV}/config .config
+ cp ${FILESDIR}/${PV}/autoconf.h include/linux/autoconf.h
+ try make include/linux/version.h
+ #fix silly permissions in tarball
+ cd ${WORKDIR}
+ chown -R root.root linux
+}
+
+src_compile() {
+ cd ${S}
+ try make symlinks
+ try make dep
+ cd ${S}/fs/reiserfs/utils
+
+ try make
+ cd ${S}/lm_sensors-2.5.4
+ try make
+ if [ "`use jfs`" ]
+ then
+ cd ${S}/fs/jfs/utils
+ try make
+ fi
+ if [ "$PN" = "linux" ]
+ then
+ cd ${S}
+ try make bzImage
+ try make modules
+# cd ${S}/extras/NVIDIA_kernel-0.9-5
+# make NVdriver
+ cd ${S}/extras/alsa-driver-0.5.10
+ try ./configure --with-kernel=${S} --with-isapnp=yes --with-sequencer=yes --with-oss=yes \
+ --with-cards=share,dummy,virmidi,interwave,interwave-stb,gusmax,gusextreme,gusclassic,es1688,es18xx,sb8,sb16,sbawe,emu10k1,opl3sa2,mozart,sonicvibes,ens1370,ens1371,ad1816a,ad1848,als100,als4000,azt2320,cs4231,cs4232,cs4236,cs4281,cs461x,cs4281,es968,dt0197h,fm801,es1938,es1968,opti92x-ad1848,opti92x-cs4231,opti93x,serial,trident,sgalaxy,hal2,cmi8330,mtpav,rme96,rme9652,ice1712,intel8x0,via686a,cmipci,ymfpci,maestro3
+ # "wavefront" is buggy in 0.5.10
+ try make
+ fi
+}
+src_install() {
+ cd ${S}/fs/reiserfs/utils
+ dodir /usr/man/man8 /sbin
+ try make install SBIN=${D}/sbin MANDIR=${D}/usr/man/man8
+
+ if [ "`use jfs`" ]
+ then
+ cd ${S}/fs/jfs/utils
+ cp output/* ${D}/sbin
+ local x
+ for x in `find -iname *.1`
+ do
+ doman $x
+ done
+ for x in `find -iname *.8`
+ do
+ doman $x
+ done
+ fi
+ dodir /usr/src
+ if [ "$PN" = "linux" ]
+ then
+ dodir /usr/src/linux-${KV}
+ cd ${D}/usr/src
+ ln -sf linux-${KV} linux
+ #grab includes and documentation only
+ dodir /usr/src/linux-${KV}/include/linux
+ dodir /usr/src/linux-${KV}/include/asm-i386
+ cp -ax ${S}/include ${D}/usr/src/linux-${KV}
+ cp -ax ${S}/Documentation ${D}/usr/src/linux-${KV}
+ dodir /usr/include
+ dosym /usr/src/linux/include/linux /usr/include/linux
+ dosym /usr/src/linux/include/asm-i386 /usr/include/asm
+ #grab compiled kernel
+ dodir /boot/boot
+ insinto /boot/boot
+ cd ${S}
+ doins arch/i386/boot/bzImage
+ #grab modules
+ dodir /lib/modules/`/bin/uname -r`
+ dodir /lib/modules/2.4.0-ac1
+ try make INSTALL_MOD_PATH=${D} modules_install
+ #install ALSA modules
+ cd ${S}/extras/alsa-driver-0.5.10
+ dodir /lib/modules/${KV}/misc
+ cp modules/*.o ${D}/lib/modules/${KV}/misc
+ into /usr
+ dosbin snddevices
+ dodir /usr/include/linux
+ insinto /usr/include/linux
+ cd include
+ doins asound.h asoundid.h asequencer.h ainstr_*.h
+ #install nvidia driver
+# cd ${S}/extras/NVIDIA_kernel-0.9-5
+# insinto /lib/modules/${KV}/video
+# doins NVdriver
+ #fix symlink
+ cd ${D}/lib/modules/${KV}
+ rm build
+ ln -sf /usr/src/linux-${KV} build
+ else
+ #grab all the sources
+ cd ${WORKDIR}
+ mv linux ${D}/usr/src/linux-${KV}
+ cd ${D}/usr/src
+ ln -sf linux-${KV} linux
+ #remove workdir since our install was dirty and modified ${S}
+ #this will cause an unpack to be done next time
+ rm -rf ${WORKDIR}
+ fi
+}
+
+pkg_postinst() {
+ if [ "${ROOT}" = "/" ]
+ then
+ if [ "${PN}" = "linux" ] ; then
+ echo "Creating sounddevices..."
+ /usr/sbin/snddevices
+ fi
+ fi
+}
+
+
+
+
+
+
+
+