From e2192739a2fe97882a0ad306bd617d88dc03e680 Mon Sep 17 00:00:00 2001 From: Matt Housh Date: Wed, 27 May 2009 10:15:32 -0500 Subject: [PATCH] Updated boot kernel to 2.6.29.3, new busybox/squashfs/syslinux, CUSTOMVERSION for custom ISOs, various tweaks --- Makefile | 30 +- initramfs/init | 19 +- initramfs/initramfs.lst | 91 +- iso/setup.dependencies | 77 +- ...-2.6.27.8.config => linux-2.6.29.3.config} | 1419 +++--- kernel/squashfs3.4-patch | 4218 ----------------- packages.xorg | 3 +- 7 files changed, 683 insertions(+), 5174 deletions(-) rename kernel/{linux-2.6.27.8.config => linux-2.6.29.3.config} (61%) delete mode 100644 kernel/squashfs3.4-patch diff --git a/Makefile b/Makefile index 42dd2fb..93c5437 100644 --- a/Makefile +++ b/Makefile @@ -4,30 +4,31 @@ # CRUXVERSION = 2.5 +CUSTOMVERSION = COLLECTIONS = core opt xorg KERNEL_MIRROR = ftp://ftp.kernel.org -KERNEL_VERSION = 2.6.27.8 -KERNEL_PATCHES = squashfs3.4-patch -BB_VERSION = 1.7.2 +KERNEL_VERSION = 2.6.29.3 +KERNEL_PATCHES = +BB_VERSION = 1.13.4 STATIC_BB = http://jaeger.morpheus.net/linux/crux/files/busybox-$(BB_VERSION)-i386-static.bz2 -SYSLINUX_VERSION = 3.72 -SQUASHFS_VERSION = 3.4 +SYSLINUX_VERSION = 3.80 +SQUASHFS_VERSION = 4.0 PORTS_DIR = $(PWD)/ports FAKE_ROOT_DIR = $(PWD)/tmp/fake_root SQUASHFS_DIR = $(PWD)/tmp/squashfs -DATE_STR = `date +'%Y%m%d'` +DATE_STR = $(shell date +'%Y%m%d') ISO_ROOT_DIR = $(PWD)/tmp/iso_root SRCISO_ROOT_DIR = $(PWD)/tmp/srciso_root -ISO_FILENAME = $(PWD)/crux-$(CRUXVERSION).iso -NETISO_FILENAME = $(PWD)/crux-$(CRUXVERSION)-netinst.iso -SRCISO_FILENAME = $(PWD)/crux-$(CRUXVERSION)-source.iso +ISO_FILENAME = $(PWD)/crux-$(CRUXVERSION)$(CUSTOMVERSION).iso +NETISO_FILENAME = $(PWD)/crux-$(CRUXVERSION)$(CUSTOMVERSION)-netinst.iso +SRCISO_FILENAME = $(PWD)/crux-$(CRUXVERSION)$(CUSTOMVERSION)-source.iso ISO_PACKAGES = filesystem bash coreutils bzip2 e2fsprogs jfsutils \ xfsprogs reiserfsprogs patch findutils glibc grep gzip kbd \ module-init-tools less gawk ncurses net-tools pkgutils \ procps readline sed shadow sysklogd sysvinit tar \ util-linux-ng vim which dialog nano mdadm pciutils libusb \ sysfsutils usbutils udev zlib openssl openssh \ - dhcpcd wget iproute2 libpcre iputils + dhcpcd wget iproute2 libpcre iputils libgmp PORTS_core = $(shell /bin/ls -I README $(PORTS_DIR)/core) PORTS_opt = $(shell /bin/cat packages.opt) @@ -369,16 +370,17 @@ iso: check-root kernel syslinux initramfs squashfs setup.dependencies unsquashfs @echo "- Starting genisoimage" @if [ -f $(ISO_FILENAME) ]; then rm -f $(ISO_FILENAME); fi @if [ -f $(NETISO_FILENAME) ]; then rm -f $(NETISO_FILENAME); fi - @genisoimage -R -l -J -V CRUX-$(CRUXVERSION) -A CRUX -b boot/isolinux/isolinux.bin \ + @genisoimage -R -l -J -V "CRUX-$(CRUXVERSION)$(CUSTOMVERSION)" -A CRUX \ + -b boot/isolinux/isolinux.bin \ -c boot/isolinux/isolinux.boot -no-emul-boot -boot-load-size 4 \ - -boot-info-table -sort /tmp/iso.sort -o $(ISO_FILENAME) $(ISO_ROOT_DIR) + -boot-info-table -sort /tmp/iso.sort -o "$(ISO_FILENAME)" $(ISO_ROOT_DIR) @md5sum `basename $(ISO_FILENAME)` > `basename $(ISO_FILENAME) .iso`.md5 @rm $(ISO_ROOT_DIR)/crux.squashfs @cp squashfs/crux.squashfs-net $(ISO_ROOT_DIR)/crux.squashfs - @genisoimage -R -l -J -V CRUX-NET-$(CRUXVERSION) -A CRUX \ + @genisoimage -R -l -J -V "CRUX-NET-$(CRUXVERSION)$(CUSTOMVERSION)" -A CRUX \ -b boot/isolinux/isolinux.bin -c boot/isolinux/isolinux.boot \ -exclude-list iso/excludelist.net -no-emul-boot -boot-load-size 4 \ - -boot-info-table -sort /tmp/iso.sort -o $(NETISO_FILENAME) $(ISO_ROOT_DIR) + -boot-info-table -sort /tmp/iso.sort -o "$(NETISO_FILENAME)" $(ISO_ROOT_DIR) @md5sum `basename $(NETISO_FILENAME)` > \ `basename $(NETISO_FILENAME) .iso`.md5 @rm /tmp/iso.sort diff --git a/initramfs/init b/initramfs/init index 34baccf..c81dd42 100755 --- a/initramfs/init +++ b/initramfs/init @@ -114,7 +114,7 @@ find_and_mount_cdrom() { # even though the CDROM gets unmounted here, it gets remounted after # the new init starts, so the message might be confusing... #echo -e -n " ${BOLD}${BLUE}*${NORM} Unmounting CDROM... " - umount /.tmpfs/.cdrom + umount -l /.tmpfs/.cdrom #checkReturn rmdir /.tmpfs/.cdrom @@ -151,16 +151,20 @@ checkReturn if [ -d /lib/modules ] then echo -e -n " ${BOLD}${BLUE}*${NORM} Loading modules... " + # IDE support + modprobe ide-core + # general cdrom/disk support modprobe cdrom modprobe ide-cd_mod + modprobe ide-gd_mod modprobe sr_mod modprobe sd_mod # IDE load_ide_modules() { echo -e -n "${BOLD}${BLUE}IDE${NORM}" - for mod in ide-core ide-cd_mod ide-disk aec62xx alim15x3 amd74xx atiixp \ + for mod in aec62xx alim15x3 amd74xx atiixp \ cmd64x cs5520 cs5530 cs5535 ide-pci-generic hpt366 it8213 \ it821x jmicron ns87415 opti621 pdc202xx_new piix rz1000 sc1200 \ serverworks siimage sis5513 slc90e66 tc86c001 triflex trm290 \ @@ -174,13 +178,14 @@ then # SCSI load_scsi_modules() { echo -e -n "${BOLD}${BLUE}SCSI${NORM}" - for mod in 3w-9xxx 3w-xxxx 53c700 BusLogic NCR53c406a a100u2w aacraid \ - advansys aha152x aha1542 aha1740 aic79xx aic7xxx aic94xx arcmsr \ + for mod in scsi_transport_fc scsi_transport_iscsi scsi_transport_sas \ + scsi_transport_spi 3w-9xxx 3w-xxxx 53c700 BusLogic NCR53c406a a100u2w \ + aacraid advansys aha152x aha1542 aha1740 aic79xx aic7xxx aic94xx arcmsr \ atp870u dc395x dmx3191d dpt_i2o dtc eata fdomain gdth hptiop in2000 \ initio ipr ips lpfc megaraid megaraid_mbox megaraid_sas nsp32 pas16 \ psi240i qla1280 qla2xxx qla4xxx qlogicfas qlogicfas408 seagate \ sim710 stex sym53c416 sym53c8xx t128 tmscsim u14-34f ultrastor \ - wd7000 mptspi + wd7000 mptsas mptspi do modprobe $mod > /dev/null 2>&1 done @@ -211,9 +216,9 @@ then # FireWire load_firewire_modules() { echo -e -n "${BOLD}${BLUE}FireWire${NORM}" - for mod in ieee1394 ohci1394 sbp2 + for mod in core ohci sbp2 do - modprobe $mod + modprobe firewire-$mod done echo -n ", " } diff --git a/initramfs/initramfs.lst b/initramfs/initramfs.lst index 0c05ebe..5df159b 100644 --- a/initramfs/initramfs.lst +++ b/initramfs/initramfs.lst @@ -52,11 +52,10 @@ dir /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/misc 755 0 0 dir /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/mon 755 0 0 dir /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/serial 755 0 0 dir /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/storage 755 0 0 -dir /lib/modules/#KERNEL_VERSION#/kernel/drivers/ieee1394 755 0 0 +dir /lib/modules/#KERNEL_VERSION#/kernel/drivers/firewire 755 0 0 dir /lib/modules/#KERNEL_VERSION#/kernel/drivers/ata 755 0 0 dir /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide 755 0 0 dir /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/legacy 755 0 0 -dir /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci 755 0 0 dir /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi 755 0 0 dir /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/aacraid 755 0 0 dir /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/aic7xxx 755 0 0 @@ -84,20 +83,13 @@ file /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/host/ehci-hcd.ko ../kernel file /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/host/ohci-hcd.ko ../kernel/linux-#KERNEL_VERSION#/drivers/usb/host/ohci-hcd.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/host/sl811-hcd.ko ../kernel/linux-#KERNEL_VERSION#/drivers/usb/host/sl811-hcd.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/host/uhci-hcd.ko ../kernel/linux-#KERNEL_VERSION#/drivers/usb/host/uhci-hcd.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/misc/uss720.ko ../kernel/linux-#KERNEL_VERSION#/drivers/usb/misc/uss720.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/mon/usbmon.ko ../kernel/linux-#KERNEL_VERSION#/drivers/usb/mon/usbmon.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/serial/ipw.ko ../kernel/linux-#KERNEL_VERSION#/drivers/usb/serial/ipw.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/serial/omninet.ko ../kernel/linux-#KERNEL_VERSION#/drivers/usb/serial/omninet.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/serial/usbserial.ko ../kernel/linux-#KERNEL_VERSION#/drivers/usb/serial/usbserial.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/storage/usb-storage.ko ../kernel/linux-#KERNEL_VERSION#/drivers/usb/storage/usb-storage.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/usb/storage/libusual.ko ../kernel/linux-#KERNEL_VERSION#/drivers/usb/storage/libusual.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/hid/usbhid/usbhid.ko ../kernel/linux-#KERNEL_VERSION#/drivers/hid/usbhid/usbhid.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ieee1394/dv1394.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ieee1394/dv1394.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ieee1394/eth1394.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ieee1394/eth1394.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ieee1394/ieee1394.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ieee1394/ieee1394.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ieee1394/ohci1394.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ieee1394/ohci1394.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ieee1394/raw1394.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ieee1394/raw1394.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ieee1394/sbp2.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ieee1394/sbp2.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ieee1394/video1394.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ieee1394/video1394.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/hid/hid.ko ../kernel/linux-#KERNEL_VERSION#/drivers/hid/hid.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/firewire/firewire-core.ko ../kernel/linux-#KERNEL_VERSION#/drivers/firewire/firewire-core.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/firewire/firewire-ohci.ko ../kernel/linux-#KERNEL_VERSION#/drivers/firewire/firewire-ohci.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/firewire/firewire-sbp2.ko ../kernel/linux-#KERNEL_VERSION#/drivers/firewire/firewire-sbp2.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ata/ahci.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ata/ahci.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ata/ata_generic.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ata/ata_generic.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ata/ata_piix.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ata/ata_piix.ko 644 0 0 @@ -143,44 +135,42 @@ file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ata/sata_via.ko ../kernel/linu file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ata/sata_vsc.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ata/sata_vsc.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/ide-cd_mod.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/ide-cd_mod.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/ide-core.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/ide-core.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/ide-disk.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/ide-disk.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/ide-floppy.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/ide-floppy.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/ide-gd_mod.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/ide-gd_mod.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/ide-pnp.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/ide-pnp.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/ide-tape.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/ide-tape.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/legacy/ide-cs.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/legacy/ide-cs.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/aec62xx.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/aec62xx.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/alim15x3.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/alim15x3.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/amd74xx.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/amd74xx.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/atiixp.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/atiixp.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/cmd640.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/cmd640.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/cmd64x.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/cmd64x.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/cs5520.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/cs5520.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/cs5530.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/cs5530.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/cs5535.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/cs5535.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/delkin_cb.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/delkin_cb.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/hpt366.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/hpt366.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/ide-pci-generic.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/ide-pci-generic.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/it8213.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/it8213.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/it821x.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/it821x.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/jmicron.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/jmicron.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/ns87415.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/ns87415.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/opti621.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/opti621.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/pdc202xx_new.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/pdc202xx_new.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/pdc202xx_old.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/pdc202xx_old.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/piix.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/piix.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/rz1000.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/rz1000.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/sc1200.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/sc1200.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/serverworks.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/serverworks.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/siimage.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/siimage.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/sis5513.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/sis5513.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/slc90e66.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/slc90e66.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/tc86c001.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/tc86c001.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/triflex.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/triflex.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/trm290.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/trm290.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pci/via82cxxx.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pci/via82cxxx.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/ide-cs.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/ide-cs.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/aec62xx.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/aec62xx.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/alim15x3.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/alim15x3.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/amd74xx.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/amd74xx.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/atiixp.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/atiixp.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/cmd640.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/cmd640.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/cmd64x.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/cmd64x.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/cs5520.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/cs5520.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/cs5530.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/cs5530.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/cs5535.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/cs5535.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/delkin_cb.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/delkin_cb.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/hpt366.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/hpt366.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/ide-pci-generic.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/ide-pci-generic.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/it8213.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/it8213.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/it821x.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/it821x.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/jmicron.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/jmicron.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/ns87415.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/ns87415.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/opti621.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/opti621.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pdc202xx_new.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pdc202xx_new.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/pdc202xx_old.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/pdc202xx_old.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/piix.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/piix.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/rz1000.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/rz1000.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/sc1200.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/sc1200.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/serverworks.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/serverworks.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/siimage.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/siimage.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/sis5513.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/sis5513.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/slc90e66.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/slc90e66.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/tc86c001.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/tc86c001.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/triflex.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/triflex.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/trm290.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/trm290.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/ide/via82cxxx.ko ../kernel/linux-#KERNEL_VERSION#/drivers/ide/via82cxxx.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/3w-9xxx.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/3w-9xxx.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/3w-xxxx.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/3w-xxxx.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/53c700.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/53c700.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/BusLogic.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/BusLogic.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/NCR53c406a.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/NCR53c406a.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/a100u2w.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/a100u2w.ko 644 0 0 @@ -188,7 +178,6 @@ file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/aacraid/aacraid.ko ../ker file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/advansys.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/advansys.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/aha152x.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/aha152x.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/aha1542.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/aha1542.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/aha1740.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/aha1740.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/aic7xxx/aic79xx.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/aic7xxx/aic79xx.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/aic7xxx/aic7xxx.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/aic7xxx/aic7xxx.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/aic94xx/aic94xx.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/aic94xx/aic94xx.ko 644 0 0 @@ -202,7 +191,6 @@ file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/eata.ko ../kernel/linux-# file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/fdomain.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/fdomain.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/gdth.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/gdth.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/hptiop.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/hptiop.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/imm.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/imm.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/in2000.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/in2000.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/initio.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/initio.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/ipr.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/ipr.ko 644 0 0 @@ -216,7 +204,6 @@ file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/megaraid/megaraid_sas.ko file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/mvsas.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/mvsas.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/nsp32.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/nsp32.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/pas16.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/pas16.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/ppa.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/ppa.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/qla1280.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/qla1280.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/qla2xxx/qla2xxx.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/qla2xxx/qla2xxx.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/qla4xxx/qla4xxx.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/qla4xxx/qla4xxx.ko 644 0 0 @@ -225,10 +212,10 @@ file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/qlogicfas408.ko ../kernel file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/scsi_transport_fc.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/scsi_transport_fc.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/scsi_transport_iscsi.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/scsi_transport_iscsi.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/scsi_transport_sas.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/scsi_transport_sas.ko 644 0 0 +file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/scsi_transport_spi.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/scsi_transport_spi.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/scsi_wait_scan.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/scsi_wait_scan.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/sd_mod.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/sd_mod.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/sg.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/sg.ko 644 0 0 -file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/sim710.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/sim710.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/sr_mod.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/sr_mod.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/stex.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/stex.ko 644 0 0 file /lib/modules/#KERNEL_VERSION#/kernel/drivers/scsi/sym53c416.ko ../kernel/linux-#KERNEL_VERSION#/drivers/scsi/sym53c416.ko 644 0 0 diff --git a/iso/setup.dependencies b/iso/setup.dependencies index 46a82ae..8645289 100644 --- a/iso/setup.dependencies +++ b/iso/setup.dependencies @@ -7,7 +7,7 @@ bindutils: openssl bindutils binutils: binutils bison: bison bzip2: bzip2 -coreutils: coreutils +coreutils: libgmp coreutils cpio: cpio curl: openssl zlib curl db: db @@ -96,10 +96,10 @@ vim: ncurses vim wget: openssl wget which: which xfsprogs: e2fsprogs xfsprogs -zip: zip +zip: bzip2 zip zlib: zlib atk: libpcre glib atk -cairo: zlib expat libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-renderproto xorg-libpixman freetype libxml2 libpng libdrm xorg-makedepend xorg-libxdmcp xorg-libxau sqlite3 xorg-libice fontconfig libxslt python xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-libxrender xorg-libxxf86vm xorg-libxdamage mesa3d glitz cairo +cairo: zlib expat libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-renderproto xorg-libpixman freetype libxml2 libpng libdrm xorg-makedepend xorg-libxdmcp xorg-libxau sqlite3 xorg-libice fontconfig libxslt python xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-libxrender xorg-libxxf86vm xorg-libxdamage mesa3d glitz cairo cdrkit: ncurses libattr cmake libcap cdrkit cmake: ncurses cmake cvs: cvs @@ -107,13 +107,13 @@ dbus: expat dbus dbus-glib: expat libpcre dbus glib dbus-glib dialog: ncurses dialog fetchmail: openssl fetchmail -firefox: libpcre nspr ncurses readline hicolor-icon-theme libjpeg zlib expat libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm openssl bzip2 xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-renderproto xorg-libpixman xorg-xineramaproto xorg-randrproto glib sqlite3 libtiff freetype libxml2 libpng dbus libdrm xorg-makedepend xorg-libxdmcp xorg-libxau perl xorg-libice libidl atk nss python fontconfig libxslt dbus-glib xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-libxrender xorg-libxxf86vm xorg-libxinerama xorg-libxdamage xorg-libxft xorg-libxcursor xorg-libxrandr mesa3d glitz cairo pango gtk xulrunner firefox +firefox: libpcre nspr ncurses readline hicolor-icon-theme libjpeg zlib expat libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm openssl bzip2 xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-renderproto xorg-libpixman xorg-xineramaproto xorg-randrproto glib sqlite3 libtiff freetype libxml2 libpng dbus libdrm xorg-makedepend xorg-libxdmcp xorg-libxau perl xorg-libice libidl atk nss python fontconfig libxslt dbus-glib xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-libxrender xorg-libxxf86vm xorg-libxinerama xorg-libxdamage xorg-libxft xorg-libxcursor xorg-libxrandr mesa3d glitz cairo pango gtk xulrunner firefox fontconfig: zlib expat freetype fontconfig freetype: zlib freetype glib: libpcre glib -glitz: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto libdrm xorg-makedepend xorg-libxdmcp xorg-libxau sqlite3 libxml2 xorg-libice python libxslt xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-libxxf86vm xorg-libxdamage mesa3d glitz +glitz: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto libdrm xorg-makedepend xorg-libxdmcp xorg-libxau sqlite3 libxml2 xorg-libice python libxslt xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-libxxf86vm xorg-libxdamage mesa3d glitz grub: ncurses gettext grub -gtk: libpcre hicolor-icon-theme libjpeg zlib expat libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-renderproto xorg-libpixman xorg-xineramaproto xorg-randrproto glib libtiff freetype libxml2 libpng libdrm xorg-makedepend xorg-libxdmcp xorg-libxau sqlite3 xorg-libice atk fontconfig libxslt python xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-libxrender xorg-libxxf86vm xorg-libxinerama xorg-libxdamage xorg-libxft xorg-libxcursor xorg-libxrandr mesa3d glitz cairo pango gtk +gtk: libpcre hicolor-icon-theme libjpeg zlib expat libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-renderproto xorg-libpixman xorg-xineramaproto xorg-randrproto glib libtiff freetype libxml2 libpng libdrm xorg-makedepend xorg-libxdmcp xorg-libxau sqlite3 xorg-libice atk fontconfig libxslt python xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-libxrender xorg-libxxf86vm xorg-libxinerama xorg-libxdamage xorg-libxft xorg-libxcursor xorg-libxrandr mesa3d glitz cairo pango gtk hicolor-icon-theme: hicolor-icon-theme intltool: expat db gdbm perl p5-xml-parser intltool libattr: libattr @@ -130,30 +130,31 @@ mutt: gdbm ncurses openssl zlib mutt nano: nano nspr: nspr nss: nspr ncurses readline sqlite3 nss -openbox: db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xineramaproto xorg-randrproto xorg-renderproto libpcre expat xorg-glproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-libpixman sqlite3 libxml2 freetype libpng xorg-libxdmcp xorg-libxau xorg-makedepend libdrm xorg-libice glib python libxslt fontconfig xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxrender xorg-libxt xorg-libxfixes xorg-libxinerama xorg-libxxf86vm xorg-libxrandr xorg-libxft xorg-libxdamage mesa3d glitz cairo pango openbox +openbox: db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xineramaproto xorg-randrproto xorg-renderproto libpcre expat xorg-glproto xorg-dri2proto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-libpixman sqlite3 libxml2 freetype libpng xorg-libxdmcp xorg-libxau xorg-makedepend libdrm xorg-libice glib python libxslt fontconfig xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxrender xorg-libxt xorg-libxfixes xorg-libxinerama xorg-libxxf86vm xorg-libxrandr xorg-libxft xorg-libxdamage mesa3d glitz cairo pango openbox p5-xml-parser: expat db gdbm perl p5-xml-parser -pango: zlib expat libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-renderproto xorg-libpixman libpcre freetype libxml2 libpng libdrm xorg-makedepend xorg-libxdmcp xorg-libxau sqlite3 xorg-libice glib fontconfig libxslt python xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-libxrender xorg-libxxf86vm xorg-libxdamage xorg-libxft mesa3d glitz cairo pango +pango: zlib expat libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-renderproto xorg-libpixman libpcre freetype libxml2 libpng libdrm xorg-makedepend xorg-libxdmcp xorg-libxau sqlite3 xorg-libice glib fontconfig libxslt python xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-libxrender xorg-libxxf86vm xorg-libxdamage xorg-libxft mesa3d glitz cairo pango procmail: procmail python: db gdbm ncurses openssl readline bzip2 zlib sqlite3 python rp-pppoe: zlib openssl ppp rp-pppoe sqlite3: ncurses readline sqlite3 sudo: sudo wireless-tools: wireless-tools -wpa_supplicant: openssl wpa_supplicant +wpa_supplicant: openssl ncurses readline wpa_supplicant wvdial: zlib openssl ppp wvdial xterm: xorg-xproto db gdbm ncurses openssl readline bzip2 zlib libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-libxdmcp xorg-libxau sqlite3 libxml2 xorg-libice python libxslt xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxmu xorg-libxpm xorg-libxaw xterm -xulrunner: libpcre nspr ncurses readline hicolor-icon-theme libjpeg zlib expat libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm openssl bzip2 xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-renderproto xorg-libpixman xorg-xineramaproto xorg-randrproto glib sqlite3 libtiff freetype libxml2 libpng dbus libdrm xorg-makedepend xorg-libxdmcp xorg-libxau perl xorg-libice libidl atk nss python fontconfig libxslt dbus-glib xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-libxrender xorg-libxxf86vm xorg-libxinerama xorg-libxdamage xorg-libxft xorg-libxcursor xorg-libxrandr mesa3d glitz cairo pango gtk xulrunner +xulrunner: libpcre nspr ncurses readline hicolor-icon-theme libjpeg zlib expat libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm openssl bzip2 xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-renderproto xorg-libpixman xorg-xineramaproto xorg-randrproto glib sqlite3 libtiff freetype libxml2 libpng dbus libdrm xorg-makedepend xorg-libxdmcp xorg-libxau perl xorg-libice libidl atk nss python fontconfig libxslt dbus-glib xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-libxrender xorg-libxxf86vm xorg-libxinerama xorg-libxdamage xorg-libxft xorg-libxcursor xorg-libxrandr mesa3d glitz cairo pango gtk xulrunner libpthread-stubs: libpthread-stubs -mesa3d: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto libdrm xorg-makedepend xorg-libxdmcp xorg-libxau sqlite3 libxml2 xorg-libice python libxslt xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-libxxf86vm xorg-libxdamage mesa3d +mesa3d: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto libdrm xorg-makedepend xorg-libxdmcp xorg-libxau sqlite3 libxml2 xorg-libice python libxslt xorg-libsm xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-libxxf86vm xorg-libxdamage mesa3d polyglotman: polyglotman xkeyboard-config: db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto expat perl sqlite3 libxml2 xorg-libxdmcp xorg-libxau p5-xml-parser python libxslt intltool xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxkbfile xorg-xkbcomp xkeyboard-config -xorg: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess xorg-font-util xorg-font-alias libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc xorg-rgb perl sqlite3 libxml2 freetype xorg-libice p5-xml-parser python libxslt xorg-libxfont fontconfig xorg-libsm intltool xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-font-misc-misc xorg-font-cursor-misc xorg-libxkbui xorg-xkbcomp xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xkeyboard-config xorg-server xorg-xf86-input-mouse xorg-xf86-input-keyboard xorg-xf86-video-vesa xorg-xinit xorg-xauth xorg +xorg: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess xorg-font-util xorg-font-alias libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc xorg-rgb perl sqlite3 libxml2 freetype xorg-libice p5-xml-parser python libxslt xorg-libxfont fontconfig xorg-libsm intltool xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-font-misc-misc xorg-font-cursor-misc xorg-libxkbui xorg-xkbcomp xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xkeyboard-config xorg-server xorg-xf86-input-mouse xorg-xf86-input-keyboard xorg-xf86-video-vesa xorg-xinit xorg-xauth xorg xorg-bdftopcf: zlib xorg-fontcacheproto xorg-xproto xorg-xtrans xorg-fontsproto freetype xorg-libfontenc xorg-libxfont xorg-bdftopcf xorg-bigreqsproto: xorg-bigreqsproto xorg-cf-files: xorg-cf-files xorg-compositeproto: xorg-compositeproto xorg-damageproto: xorg-damageproto xorg-dmxproto: xorg-dmxproto +xorg-dri2proto: xorg-dri2proto xorg-evieext: xorg-evieext xorg-fixesproto: xorg-fixesproto xorg-font-adobe-100dpi: xorg-mkfontdir db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto sqlite3 libxml2 freetype xorg-libxdmcp xorg-libxau xorg-libfontenc python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-mkfontscale xorg-font-adobe-100dpi @@ -171,7 +172,7 @@ xorg-fontcacheproto: xorg-fontcacheproto xorg-fontsproto: xorg-fontsproto xorg-gccmakedep: xorg-gccmakedep xorg-glproto: xorg-glproto -xorg-iceauth: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-iceauth +xorg-iceauth: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-iceauth xorg-imake: xorg-xproto xorg-cf-files xorg-imake xorg-inputproto: xorg-inputproto xorg-kbproto: xorg-kbproto @@ -224,14 +225,14 @@ xorg-renderproto: xorg-renderproto xorg-resourceproto: xorg-resourceproto xorg-rgb: xorg-xproto xorg-rgb xorg-scrnsaverproto: xorg-scrnsaverproto -xorg-server: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server +xorg-server: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-sessreg: db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto sqlite3 libxml2 xorg-libxdmcp xorg-libxau python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-sessreg xorg-setxkbmap: db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto sqlite3 libxml2 xorg-libxdmcp xorg-libxau python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxkbfile xorg-setxkbmap xorg-trapproto: xorg-trapproto xorg-util-macros: xorg-util-macros xorg-videoproto: xorg-videoproto xorg-x11perf: xorg-xproto xorg-xtrans db gdbm ncurses openssl readline bzip2 zlib libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-kbproto xorg-inputproto xorg-renderproto expat xorg-libxdmcp xorg-libxau xorg-libice sqlite3 libxml2 freetype xorg-libsm python libxslt fontconfig xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxt xorg-libxext xorg-libxrender xorg-libxmu xorg-libxft xorg-x11perf -xorg-xauth: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xauth +xorg-xauth: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xauth xorg-xbacklight: db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-randrproto xorg-renderproto sqlite3 libxml2 xorg-libxdmcp xorg-libxau python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxrender xorg-libxrandr xorg-xbacklight xorg-xbitmaps: xorg-xbitmaps xorg-xcb-proto: db gdbm ncurses openssl readline bzip2 zlib sqlite3 python xorg-xcb-proto @@ -241,28 +242,26 @@ xorg-xdpyinfo: db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthrea xorg-xdriinfo: db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-glproto sqlite3 libxml2 xorg-libxdmcp xorg-libxau python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-xdriinfo xorg-xev: db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto sqlite3 libxml2 xorg-libxdmcp xorg-libxau python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-xev xorg-xextproto: xorg-xextproto -xorg-xf86-input-evdev: xorg-xf86-input-evdev -xorg-xf86-input-keyboard: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-input-keyboard -xorg-xf86-input-mouse: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-input-mouse -xorg-xf86-input-synaptics: xorg-xf86-input-synaptics -xorg-xf86-video-ati: xorg-xf86-video-ati -xorg-xf86-video-chips: xorg-xf86-video-chips -xorg-xf86-video-dummy: xorg-xf86-video-dummy -xorg-xf86-video-glint: xorg-xf86-video-glint -xorg-xf86-video-i128: xorg-xf86-video-i128 -xorg-xf86-video-intel: xorg-xf86-video-intel -xorg-xf86-video-mga: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-mga -xorg-xf86-video-neomagic: xorg-xf86-video-neomagic -xorg-xf86-video-nsc: xorg-xf86-video-nsc -xorg-xf86-video-nv: xorg-xf86-video-nv -xorg-xf86-video-radeonhd: xorg-xf86-video-radeonhd -xorg-xf86-video-savage: xorg-xf86-video-savage -xorg-xf86-video-tdfx: xorg-xf86-video-tdfx -xorg-xf86-video-tga: xorg-xf86-video-tga -xorg-xf86-video-trident: xorg-xf86-video-trident -xorg-xf86-video-tseng: xorg-xf86-video-tseng -xorg-xf86-video-vesa: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-vesa -xorg-xf86-video-xgi: xorg-xf86-video-xgi +xorg-xf86-input-evdev: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-input-evdev +xorg-xf86-input-keyboard: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-input-keyboard +xorg-xf86-input-mouse: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-input-mouse +xorg-xf86-input-synaptics: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-input-synaptics +xorg-xf86-video-ati: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-ati +xorg-xf86-video-chips: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-chips +xorg-xf86-video-dummy: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-dummy +xorg-xf86-video-glint: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-glint +xorg-xf86-video-i128: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-i128 +xorg-xf86-video-intel: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-intel +xorg-xf86-video-mga: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-mga +xorg-xf86-video-neomagic: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-neomagic +xorg-xf86-video-nv: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-nv +xorg-xf86-video-radeonhd: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-radeonhd +xorg-xf86-video-savage: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-savage +xorg-xf86-video-tdfx: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-tdfx +xorg-xf86-video-tga: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-tga +xorg-xf86-video-trident: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-trident +xorg-xf86-video-tseng: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-tseng +xorg-xf86-video-vesa: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xf86-video-vesa xorg-xf86bigfontproto: xorg-xf86bigfontproto xorg-xf86dgaproto: xorg-xf86dgaproto xorg-xf86driproto: xorg-xf86driproto @@ -273,7 +272,7 @@ xorg-xfontsel: xorg-xproto db gdbm ncurses openssl readline bzip2 zlib libpthrea xorg-xgamma: db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto sqlite3 libxml2 xorg-libxdmcp xorg-libxau python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxxf86vm xorg-xgamma xorg-xhost: xorg-xproto xorg-xtrans db gdbm ncurses openssl readline bzip2 zlib libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-kbproto xorg-inputproto xorg-libxdmcp xorg-libxau xorg-libice sqlite3 libxml2 xorg-libsm python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxt xorg-libxext xorg-libxmu xorg-xhost xorg-xineramaproto: xorg-xineramaproto -xorg-xinit: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xinit +xorg-xinit: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xinit xorg-xkbcomp: db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto sqlite3 libxml2 xorg-libxdmcp xorg-libxau python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxkbfile xorg-xkbcomp xorg-xkill: xorg-xproto xorg-xtrans db gdbm ncurses openssl readline bzip2 zlib libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-kbproto xorg-inputproto xorg-libxdmcp xorg-libxau xorg-libice sqlite3 libxml2 xorg-libsm python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxt xorg-libxext xorg-libxmu xorg-xkill xorg-xlsfonts: db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto sqlite3 libxml2 xorg-libxdmcp xorg-libxau python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-xlsfonts @@ -284,7 +283,7 @@ xorg-xproto: xorg-xproto xorg-xrandr: db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-randrproto xorg-renderproto sqlite3 libxml2 xorg-libxdmcp xorg-libxau python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxrender xorg-libxrandr xorg-xrandr xorg-xrdb: xorg-xproto xorg-xtrans db gdbm ncurses openssl readline bzip2 zlib libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-kbproto xorg-inputproto xorg-libxdmcp xorg-libxau xorg-libice sqlite3 libxml2 xorg-libsm python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxt xorg-libxext xorg-libxmu xorg-xrdb xorg-xset: xorg-xproto xorg-xtrans db gdbm ncurses openssl readline bzip2 zlib libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-kbproto xorg-inputproto xorg-xf86miscproto xorg-fontcacheproto xorg-libxdmcp xorg-libxau xorg-libice sqlite3 libxml2 xorg-libsm python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxt xorg-libxext xorg-libxmu xorg-libxxf86misc xorg-libxfontcache xorg-xset -xorg-xsetroot: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess xorg-xbitmaps libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xsetroot +xorg-xsetroot: libpthread-stubs xorg-xproto xorg-glproto xorg-xextproto xorg-dri2proto db gdbm ncurses openssl readline bzip2 zlib xorg-xf86bigfontproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-xf86vidmodeproto xorg-fixesproto xorg-damageproto xorg-fontcacheproto xorg-fontsproto xorg-mkfontdir xorg-xf86driproto xorg-xcmiscproto xorg-scrnsaverproto xorg-bigreqsproto xorg-evieext xorg-recordproto xorg-dmxproto xorg-xf86miscproto xorg-videoproto xorg-resourceproto xorg-compositeproto xorg-xineramaproto xorg-randrproto xorg-renderproto expat xorg-xf86dgaproto xorg-libpixman xorg-libpciaccess xorg-xbitmaps libdrm xorg-makedepend xorg-libxdmcp xorg-libxau xorg-libfontenc sqlite3 libxml2 freetype xorg-libice python libxslt xorg-libxfont fontconfig xorg-libsm xorg-xcb-proto xorg-bdftopcf xorg-libxcb xorg-libx11 xorg-libxext xorg-libxt xorg-libxfixes xorg-mkfontscale xorg-libxkbfile xorg-libxrender xorg-libxxf86vm xorg-libxevie xorg-libxtst xorg-libdmx xorg-libxxf86misc xorg-libxv xorg-libxi xorg-libxres xorg-libxinerama xorg-libxxf86dga xorg-libxmu xorg-libxpm xorg-libxdamage xorg-libxcomposite xorg-libxkbui xorg-libxrandr xorg-libxft xorg-libxcursor xorg-libxvmc xorg-libxaw mesa3d xorg-server xorg-xsetroot xorg-xtrans: xorg-xtrans xorg-xvinfo: db gdbm ncurses openssl readline bzip2 zlib xorg-xproto libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-xtrans xorg-kbproto xorg-inputproto xorg-videoproto sqlite3 libxml2 xorg-libxdmcp xorg-libxau python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxext xorg-libxv xorg-xvinfo xorg-xwininfo: xorg-xproto xorg-xtrans db gdbm ncurses openssl readline bzip2 zlib libpthread-stubs xorg-xf86bigfontproto xorg-xextproto xorg-kbproto xorg-inputproto xorg-libxdmcp xorg-libxau xorg-libice sqlite3 libxml2 xorg-libsm python libxslt xorg-xcb-proto xorg-libxcb xorg-libx11 xorg-libxt xorg-libxext xorg-libxmu xorg-xwininfo diff --git a/kernel/linux-2.6.27.8.config b/kernel/linux-2.6.29.3.config similarity index 61% rename from kernel/linux-2.6.27.8.config rename to kernel/linux-2.6.29.3.config index e938bd6..58c8a3a 100644 --- a/kernel/linux-2.6.27.8.config +++ b/kernel/linux-2.6.29.3.config @@ -1,14 +1,13 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.27.8 -# Wed Dec 10 13:49:30 2008 +# Linux kernel version: 2.6.29.3 +# Fri May 15 11:12:14 2009 # # CONFIG_64BIT is not set CONFIG_X86_32=y # CONFIG_X86_64 is not set CONFIG_X86=y CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -# CONFIG_GENERIC_LOCKBREAK is not set CONFIG_GENERIC_TIME=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y @@ -24,16 +23,14 @@ CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y -# CONFIG_GENERIC_GPIO is not set CONFIG_ARCH_MAY_HAVE_PC_FDC=y # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y -# CONFIG_ARCH_HAS_ILOG2_U32 is not set -# CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y # CONFIG_GENERIC_TIME_VSYSCALL is not set CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y # CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set @@ -42,12 +39,12 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set CONFIG_ARCH_POPULATES_NODE_MAP=y # CONFIG_AUDIT_ARCH is not set -CONFIG_ARCH_SUPPORTS_AOUT=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_X86_SMP=y +CONFIG_USE_GENERIC_SMP_HELPERS=y CONFIG_X86_32_SMP=y CONFIG_X86_HT=y CONFIG_X86_BIOS_REBOOT=y @@ -70,64 +67,72 @@ CONFIG_SYSVIPC_SYSCTL=y # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set # CONFIG_AUDIT is not set + +# +# RCU Subsystem +# +CONFIG_CLASSIC_RCU=y +# CONFIG_TREE_RCU is not set +# CONFIG_PREEMPT_RCU is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_PREEMPT_RCU_TRACE is not set CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=15 -# CONFIG_CGROUPS is not set CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # CONFIG_GROUP_SCHED is not set +# CONFIG_USER_SCHED is not set +# CONFIG_CGROUP_SCHED is not set +# CONFIG_CGROUPS is not set # CONFIG_SYSFS_DEPRECATED_V2 is not set -# CONFIG_RELAY is not set +CONFIG_RELAY=y CONFIG_NAMESPACES=y # CONFIG_UTS_NS is not set # CONFIG_IPC_NS is not set # CONFIG_USER_NS is not set # CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y # CONFIG_EMBEDDED is not set CONFIG_UID16=y CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_KALLSYMS_EXTRA_PASS=y CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y -CONFIG_COMPAT_BRK=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y -CONFIG_ANON_INODES=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y +CONFIG_AIO=y CONFIG_VM_EVENT_COUNTERS=y -CONFIG_SLAB=y -# CONFIG_SLUB is not set +CONFIG_PCI_QUIRKS=y +CONFIG_SLUB_DEBUG=y +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y # CONFIG_SLOB is not set # CONFIG_PROFILING is not set -# CONFIG_MARKERS is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y -# CONFIG_HAVE_ARCH_TRACEHOOK is not set -# CONFIG_HAVE_DMA_ATTRS is not set -CONFIG_USE_GENERIC_SMP_HELPERS=y -# CONFIG_HAVE_CLK is not set -CONFIG_PROC_PAGE_MONITOR=y +CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y -# CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_FORCE_LOAD is not set @@ -135,12 +140,10 @@ CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_KMOD=y CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBD=y # CONFIG_BLK_DEV_IO_TRACE is not set -# CONFIG_LSF is not set # CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_INTEGRITY is not set @@ -149,23 +152,23 @@ CONFIG_LBD=y # CONFIG_IOSCHED_NOOP=y # CONFIG_IOSCHED_AS is not set -CONFIG_IOSCHED_DEADLINE=y -# CONFIG_IOSCHED_CFQ is not set +# CONFIG_IOSCHED_DEADLINE is not set +CONFIG_IOSCHED_CFQ=y # CONFIG_DEFAULT_AS is not set -CONFIG_DEFAULT_DEADLINE=y -# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="deadline" -CONFIG_CLASSIC_RCU=y +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_FREEZER is not set # # Processor type and features # -# CONFIG_TICK_ONESHOT is not set # CONFIG_NO_HZ is not set # CONFIG_HIGH_RES_TIMERS is not set CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_SMP=y +# CONFIG_SPARSE_IRQ is not set CONFIG_X86_FIND_SMP_CONFIG=y CONFIG_X86_MPPARSE=y CONFIG_X86_PC=y @@ -174,7 +177,7 @@ CONFIG_X86_PC=y # CONFIG_X86_GENERICARCH is not set # CONFIG_X86_VSMP is not set # CONFIG_X86_RDC321X is not set -CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y +CONFIG_SCHED_OMIT_FRAME_POINTER=y # CONFIG_PARAVIRT_GUEST is not set # CONFIG_MEMTEST is not set # CONFIG_M386 is not set @@ -193,7 +196,6 @@ CONFIG_M686=y # CONFIG_MCRUSOE is not set # CONFIG_MEFFICEON is not set # CONFIG_MWINCHIPC6 is not set -# CONFIG_MWINCHIP2 is not set # CONFIG_MWINCHIP3D is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set @@ -208,7 +210,7 @@ CONFIG_X86_CPU=y CONFIG_X86_CMPXCHG=y CONFIG_X86_L1_CACHE_SHIFT=5 CONFIG_X86_XADD=y -CONFIG_X86_PPRO_FENCE=y +# CONFIG_X86_PPRO_FENCE is not set CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INVLPG=y CONFIG_X86_BSWAP=y @@ -218,9 +220,17 @@ CONFIG_X86_TSC=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=4 CONFIG_X86_DEBUGCTLMSR=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_CYRIX_32=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_CENTAUR_32=y +CONFIG_CPU_SUP_TRANSMETA_32=y +CONFIG_CPU_SUP_UMC_32=y +# CONFIG_X86_DS is not set # CONFIG_HPET_TIMER is not set CONFIG_DMI=y # CONFIG_IOMMU_HELPER is not set +# CONFIG_IOMMU_API is not set CONFIG_NR_CPUS=8 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y @@ -229,6 +239,7 @@ CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y +# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set # CONFIG_X86_MCE is not set CONFIG_VM86=y # CONFIG_TOSHIBA is not set @@ -242,6 +253,7 @@ CONFIG_NOHIGHMEM=y # CONFIG_HIGHMEM64G is not set CONFIG_PAGE_OFFSET=0xC0000000 # CONFIG_X86_PAE is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y @@ -252,127 +264,48 @@ CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y -# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_RESOURCES_64BIT is not set +# CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y +CONFIG_UNEVICTABLE_LRU=y +# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set CONFIG_X86_RESERVE_LOW_64K=y # CONFIG_MATH_EMULATION is not set CONFIG_MTRR=y # CONFIG_MTRR_SANITIZER is not set -# CONFIG_X86_PAT is not set -# CONFIG_EFI is not set -CONFIG_IRQBALANCE=y +CONFIG_X86_PAT=y CONFIG_SECCOMP=y # CONFIG_HZ_100 is not set -CONFIG_HZ_250=y +# CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set -# CONFIG_HZ_1000 is not set -CONFIG_HZ=250 +CONFIG_HZ_1000=y +CONFIG_HZ=1000 # CONFIG_SCHED_HRTICK is not set # CONFIG_KEXEC is not set CONFIG_PHYSICAL_START=0x100000 # CONFIG_RELOCATABLE is not set -CONFIG_PHYSICAL_ALIGN=0x100000 +CONFIG_PHYSICAL_ALIGN=0x200000 CONFIG_HOTPLUG_CPU=y -CONFIG_COMPAT_VDSO=y +# CONFIG_COMPAT_VDSO is not set +# CONFIG_CMDLINE_BOOL is not set # -# Power management options +# Power management and ACPI options # -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP_SMP=y -CONFIG_PM_SLEEP=y -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -# CONFIG_HIBERNATION is not set -CONFIG_ACPI=y -CONFIG_ACPI_SLEEP=y -CONFIG_ACPI_PROCFS=y -CONFIG_ACPI_PROCFS_POWER=y -CONFIG_ACPI_SYSFS_POWER=y -CONFIG_ACPI_PROC_EVENT=y -CONFIG_ACPI_AC=m -CONFIG_ACPI_BATTERY=m -CONFIG_ACPI_BUTTON=m -CONFIG_ACPI_VIDEO=m -CONFIG_ACPI_FAN=m -CONFIG_ACPI_DOCK=y -# CONFIG_ACPI_BAY is not set -CONFIG_ACPI_PROCESSOR=m -CONFIG_ACPI_HOTPLUG_CPU=y -CONFIG_ACPI_THERMAL=m -# CONFIG_ACPI_WMI is not set -CONFIG_ACPI_ASUS=m -CONFIG_ACPI_TOSHIBA=m -# CONFIG_ACPI_CUSTOM_DSDT is not set -CONFIG_ACPI_BLACKLIST_YEAR=0 -# CONFIG_ACPI_DEBUG is not set -CONFIG_ACPI_EC=y -# CONFIG_ACPI_PCI_SLOT is not set -CONFIG_ACPI_POWER=y -CONFIG_ACPI_SYSTEM=y -CONFIG_X86_PM_TIMER=y -CONFIG_ACPI_CONTAINER=m -# CONFIG_ACPI_SBS is not set -CONFIG_X86_APM_BOOT=y -CONFIG_APM=m -# CONFIG_APM_IGNORE_USER_SUSPEND is not set -CONFIG_APM_DO_ENABLE=y -# CONFIG_APM_CPU_IDLE is not set -# CONFIG_APM_DISPLAY_BLANK is not set -# CONFIG_APM_ALLOW_INTS is not set -CONFIG_APM_REAL_MODE_POWER_OFF=y +# CONFIG_PM is not set # # CPU Frequency scaling # -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_TABLE=m -# CONFIG_CPU_FREQ_DEBUG is not set -CONFIG_CPU_FREQ_STAT=m -# CONFIG_CPU_FREQ_STAT_DETAILS is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=m -CONFIG_CPU_FREQ_GOV_USERSPACE=m -CONFIG_CPU_FREQ_GOV_ONDEMAND=m -# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set - -# -# CPUFreq processor drivers -# -CONFIG_X86_ACPI_CPUFREQ=m -CONFIG_X86_POWERNOW_K6=m -CONFIG_X86_POWERNOW_K7=m -CONFIG_X86_POWERNOW_K7_ACPI=y -CONFIG_X86_POWERNOW_K8=m -CONFIG_X86_POWERNOW_K8_ACPI=y -CONFIG_X86_GX_SUSPMOD=m -CONFIG_X86_SPEEDSTEP_CENTRINO=m -CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y -CONFIG_X86_SPEEDSTEP_ICH=m -CONFIG_X86_SPEEDSTEP_SMI=m -CONFIG_X86_P4_CLOCKMOD=m -CONFIG_X86_CPUFREQ_NFORCE2=m -CONFIG_X86_LONGRUN=m -# CONFIG_X86_LONGHAUL is not set -# CONFIG_X86_E_POWERSAVER is not set - -# -# shared options -# -# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set -CONFIG_X86_SPEEDSTEP_LIB=m -# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y @@ -387,7 +320,6 @@ CONFIG_PCI=y CONFIG_PCI_GOANY=y CONFIG_PCI_BIOS=y CONFIG_PCI_DIRECT=y -CONFIG_PCI_MMCONFIG=y CONFIG_PCI_DOMAINS=y CONFIG_PCIEPORTBUS=y CONFIG_PCIEAER=y @@ -395,18 +327,15 @@ CONFIG_PCIEAER=y CONFIG_ARCH_SUPPORTS_MSI=y # CONFIG_PCI_MSI is not set CONFIG_PCI_LEGACY=y -# CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_STUB is not set CONFIG_HT_IRQ=y CONFIG_ISA_DMA_API=y CONFIG_ISA=y -CONFIG_EISA=y -CONFIG_EISA_VLB_PRIMING=y -CONFIG_EISA_PCI_EISA=y -CONFIG_EISA_VIRTUAL_ROOT=y -# CONFIG_EISA_NAMES is not set +# CONFIG_EISA is not set # CONFIG_MCA is not set # CONFIG_SCx200 is not set # CONFIG_OLPC is not set +CONFIG_K8_NB=y CONFIG_PCCARD=m # CONFIG_PCMCIA_DEBUG is not set CONFIG_PCMCIA=m @@ -435,31 +364,35 @@ CONFIG_PCCARD_NONSTATIC=m # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_HAVE_AOUT=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set +CONFIG_HAVE_ATOMIC_IOMAP=y CONFIG_NET=y # # Networking options # +CONFIG_COMPAT_NET_DEV_OPS=y CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set CONFIG_UNIX=y CONFIG_XFRM=y -CONFIG_XFRM_USER=m +# CONFIG_XFRM_USER is not set # CONFIG_XFRM_SUB_POLICY is not set # CONFIG_XFRM_MIGRATE is not set # CONFIG_XFRM_STATISTICS is not set -CONFIG_XFRM_IPCOMP=m # CONFIG_NET_KEY is not set CONFIG_INET=y -CONFIG_IP_MULTICAST=y +# CONFIG_IP_MULTICAST is not set # CONFIG_IP_ADVANCED_ROUTER is not set +# CONFIG_ASK_IP_FIB_HASH is not set +# CONFIG_IP_FIB_TRIE is not set CONFIG_IP_FIB_HASH=y # CONFIG_IP_PNP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set -# CONFIG_IP_MROUTE is not set # CONFIG_ARPD is not set # CONFIG_SYN_COOKIES is not set # CONFIG_INET_AH is not set @@ -467,33 +400,38 @@ CONFIG_IP_FIB_HASH=y # CONFIG_INET_IPCOMP is not set # CONFIG_INET_XFRM_TUNNEL is not set CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y -CONFIG_INET_LRO=m -CONFIG_INET_DIAG=y -CONFIG_INET_TCP_DIAG=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +CONFIG_INET_LRO=y +# CONFIG_INET_DIAG is not set # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_CUBIC=y +# CONFIG_DEFAULT_BIC is not set +# CONFIG_DEFAULT_CUBIC is not set +# CONFIG_DEFAULT_HTCP is not set +# CONFIG_DEFAULT_VEGAS is not set +# CONFIG_DEFAULT_WESTWOOD is not set +# CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_TCP_MD5SIG is not set CONFIG_IPV6=m -CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_PRIVACY is not set # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_OPTIMISTIC_DAD is not set CONFIG_INET6_AH=m CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m +# CONFIG_INET6_IPCOMP is not set # CONFIG_IPV6_MIP6 is not set -CONFIG_INET6_XFRM_TUNNEL=m -CONFIG_INET6_TUNNEL=m +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set CONFIG_INET6_XFRM_MODE_TRANSPORT=m CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set CONFIG_IPV6_SIT=m CONFIG_IPV6_NDISC_NODETYPE=y -CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_TUNNEL is not set # CONFIG_IPV6_MULTIPLE_TABLES is not set # CONFIG_IPV6_MROUTE is not set # CONFIG_NETWORK_SECMARK is not set @@ -503,10 +441,9 @@ CONFIG_IPV6_TUNNEL=m # CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_BRIDGE is not set -CONFIG_VLAN_8021Q=m -# CONFIG_VLAN_8021Q_GVRP is not set +# CONFIG_NET_DSA is not set +# CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set -CONFIG_LLC=y # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -515,6 +452,7 @@ CONFIG_LLC=y # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # CONFIG_NET_SCHED is not set +# CONFIG_DCB is not set # # Network testing @@ -523,59 +461,34 @@ CONFIG_LLC=y # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set # CONFIG_IRDA is not set -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -# CONFIG_BT_CMTP is not set -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIBTUSB=m -CONFIG_BT_HCIBTSDIO=m -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_LL=y -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIBT3C=m -CONFIG_BT_HCIBLUECARD=m -CONFIG_BT_HCIBTUART=m -CONFIG_BT_HCIVHCI=m +# CONFIG_BT is not set # CONFIG_AF_RXRPC is not set - -# -# Wireless -# +# CONFIG_PHONET is not set +CONFIG_WIRELESS=y CONFIG_CFG80211=m +# CONFIG_CFG80211_REG_DEBUG is not set CONFIG_NL80211=y +CONFIG_WIRELESS_OLD_REGULATORY=y CONFIG_WIRELESS_EXT=y CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m # # Rate control algorithm selection # -CONFIG_MAC80211_RC_PID=y -CONFIG_MAC80211_RC_DEFAULT_PID=y -CONFIG_MAC80211_RC_DEFAULT="pid" +CONFIG_MAC80211_RC_MINSTREL=y +# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel" # CONFIG_MAC80211_MESH is not set -# CONFIG_MAC80211_LEDS is not set +CONFIG_MAC80211_LEDS=y # CONFIG_MAC80211_DEBUG_MENU is not set -CONFIG_IEEE80211=m -# CONFIG_IEEE80211_DEBUG is not set -CONFIG_IEEE80211_CRYPT_WEP=m -CONFIG_IEEE80211_CRYPT_CCMP=m -CONFIG_IEEE80211_CRYPT_TKIP=m +# CONFIG_WIMAX is not set # CONFIG_RFKILL is not set # CONFIG_NET_9P is not set @@ -590,65 +503,24 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y -CONFIG_FIRMWARE_IN_KERNEL=y +# CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set # CONFIG_CONNECTOR is not set # CONFIG_MTD is not set -CONFIG_PARPORT=m -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_SERIAL=m -CONFIG_PARPORT_PC_FIFO=y -CONFIG_PARPORT_PC_SUPERIO=y -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_GSC is not set -# CONFIG_PARPORT_AX88796 is not set -CONFIG_PARPORT_1284=y -CONFIG_PARPORT_NOT_PC=y +# CONFIG_PARPORT is not set CONFIG_PNP=y -# CONFIG_PNP_DEBUG is not set +# CONFIG_PNP_DEBUG_MESSAGES is not set # # Protocols # CONFIG_ISAPNP=y # CONFIG_PNPBIOS is not set -CONFIG_PNPACPI=y +# CONFIG_PNPACPI is not set CONFIG_BLK_DEV=y CONFIG_BLK_DEV_FD=m CONFIG_BLK_DEV_XD=m -CONFIG_PARIDE=m - -# -# Parallel IDE high-level drivers -# -CONFIG_PARIDE_PD=m -CONFIG_PARIDE_PCD=m -CONFIG_PARIDE_PF=m -CONFIG_PARIDE_PT=m -CONFIG_PARIDE_PG=m - -# -# Parallel IDE protocol modules -# -CONFIG_PARIDE_ATEN=m -CONFIG_PARIDE_BPCK=m -CONFIG_PARIDE_BPCK6=m -CONFIG_PARIDE_COMM=m -CONFIG_PARIDE_DSTR=m -CONFIG_PARIDE_FIT2=m -CONFIG_PARIDE_FIT3=m -CONFIG_PARIDE_EPAT=m -CONFIG_PARIDE_EPATC8=y -CONFIG_PARIDE_EPIA=m -CONFIG_PARIDE_FRIQ=m -CONFIG_PARIDE_FRPW=m -CONFIG_PARIDE_KBIC=m -CONFIG_PARIDE_KTTI=m -CONFIG_PARIDE_ON20=m -CONFIG_PARIDE_ON26=m CONFIG_BLK_CPQ_DA=m CONFIG_BLK_CPQ_CISS_DA=m CONFIG_CISS_SCSI_TAPE=y @@ -662,32 +534,17 @@ CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_BLK_DEV_RAM_SIZE=16384 # CONFIG_BLK_DEV_XIP is not set CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set CONFIG_ATA_OVER_ETH=m # CONFIG_BLK_DEV_HD is not set -CONFIG_MISC_DEVICES=y -# CONFIG_IBM_ASM is not set -# CONFIG_PHANTOM is not set -# CONFIG_EEPROM_93CX6 is not set -# CONFIG_SGI_IOC4 is not set -# CONFIG_TIFM_CORE is not set -# CONFIG_FUJITSU_LAPTOP is not set -# CONFIG_TC1100_WMI is not set -# CONFIG_MSI_LAPTOP is not set -# CONFIG_COMPAL_LAPTOP is not set -# CONFIG_SONY_LAPTOP is not set -# CONFIG_THINKPAD_ACPI is not set -# CONFIG_INTEL_MENLOW is not set -# CONFIG_EEEPC_LAPTOP is not set -# CONFIG_ENCLOSURE_SERVICES is not set -# CONFIG_HP_ILO is not set +# CONFIG_MISC_DEVICES is not set +CONFIG_EEPROM_93CX6=m CONFIG_HAVE_IDE=y CONFIG_IDE=m -CONFIG_BLK_DEV_IDE=m # # Please see Documentation/ide/ide.txt for help/info on IDE drives @@ -695,16 +552,14 @@ CONFIG_BLK_DEV_IDE=m CONFIG_IDE_TIMINGS=y CONFIG_IDE_ATAPI=y # CONFIG_BLK_DEV_IDE_SATA is not set -CONFIG_BLK_DEV_IDEDISK=m -# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_IDE_GD=m +CONFIG_IDE_GD_ATA=y +CONFIG_IDE_GD_ATAPI=y CONFIG_BLK_DEV_IDECS=m CONFIG_BLK_DEV_DELKIN=m CONFIG_BLK_DEV_IDECD=m CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y CONFIG_BLK_DEV_IDETAPE=m -CONFIG_BLK_DEV_IDEFLOPPY=m -# CONFIG_BLK_DEV_IDESCSI is not set -# CONFIG_BLK_DEV_IDEACPI is not set # CONFIG_IDE_TASK_IOCTL is not set CONFIG_IDE_PROC_FS=y @@ -736,10 +591,12 @@ CONFIG_BLK_DEV_TRIFLEX=m CONFIG_BLK_DEV_CS5520=m CONFIG_BLK_DEV_CS5530=m CONFIG_BLK_DEV_CS5535=m +CONFIG_BLK_DEV_CS5536=m CONFIG_BLK_DEV_HPT366=m CONFIG_BLK_DEV_JMICRON=m CONFIG_BLK_DEV_SC1200=m CONFIG_BLK_DEV_PIIX=m +CONFIG_BLK_DEV_IT8172=m CONFIG_BLK_DEV_IT8213=m CONFIG_BLK_DEV_IT821X=m CONFIG_BLK_DEV_NS87415=m @@ -801,7 +658,7 @@ CONFIG_SCSI_WAIT_SCAN=m # # SCSI Transports # -CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_SPI_ATTRS=m CONFIG_SCSI_FC_ATTRS=m CONFIG_SCSI_ISCSI_ATTRS=m CONFIG_SCSI_SAS_ATTRS=m @@ -812,13 +669,13 @@ CONFIG_SCSI_SAS_LIBSAS_DEBUG=y # CONFIG_SCSI_SRP_ATTRS is not set CONFIG_SCSI_LOWLEVEL=y # CONFIG_ISCSI_TCP is not set +CONFIG_SCSI_CXGB3_ISCSI=m CONFIG_BLK_DEV_3W_XXXX_RAID=m CONFIG_SCSI_3W_9XXX=m CONFIG_SCSI_7000FASST=m CONFIG_SCSI_ACARD=m CONFIG_SCSI_AHA152X=m CONFIG_SCSI_AHA1542=m -CONFIG_SCSI_AHA1740=m CONFIG_SCSI_AACRAID=m CONFIG_SCSI_AIC7XXX=m CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 @@ -832,7 +689,7 @@ CONFIG_AIC79XX_CMDS_PER_DEVICE=32 CONFIG_AIC79XX_RESET_DELAY_MS=5000 # CONFIG_AIC79XX_DEBUG_ENABLE is not set CONFIG_AIC79XX_DEBUG_MASK=0 -CONFIG_AIC79XX_REG_PRETTY_PRINT=y +# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_DPT_I2O=m @@ -848,6 +705,8 @@ CONFIG_MEGARAID_SAS=m CONFIG_SCSI_HPTIOP=m CONFIG_SCSI_BUSLOGIC=m CONFIG_SCSI_FLASHPOINT=y +CONFIG_LIBFC=m +# CONFIG_FCOE is not set CONFIG_SCSI_DMX3191D=m CONFIG_SCSI_DTC3280=m CONFIG_SCSI_EATA=m @@ -861,10 +720,6 @@ CONFIG_SCSI_GDTH=m 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_MVSAS=m CONFIG_SCSI_NCR53C406A=m CONFIG_SCSI_STEX=m @@ -874,15 +729,14 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 CONFIG_SCSI_SYM53C8XX_MMIO=y CONFIG_SCSI_IPR=m -CONFIG_SCSI_IPR_TRACE=y -CONFIG_SCSI_IPR_DUMP=y +# CONFIG_SCSI_IPR_TRACE is not set +# CONFIG_SCSI_IPR_DUMP is not set CONFIG_SCSI_PAS16=m CONFIG_SCSI_QLOGIC_FAS=m CONFIG_SCSI_QLOGIC_1280=m CONFIG_SCSI_QLA_FC=m CONFIG_SCSI_QLA_ISCSI=m CONFIG_SCSI_LPFC=m -CONFIG_SCSI_SIM710=m CONFIG_SCSI_SYM53C416=m CONFIG_SCSI_DC395x=m CONFIG_SCSI_DC390T=m @@ -899,7 +753,6 @@ CONFIG_SCSI_NSP32=m # CONFIG_SCSI_DH is not set CONFIG_ATA=m # CONFIG_ATA_NONSTANDARD is not set -CONFIG_ATA_ACPI=y CONFIG_SATA_PMP=y CONFIG_SATA_AHCI=m CONFIG_SATA_SIL24=m @@ -918,53 +771,52 @@ CONFIG_SATA_ULI=m CONFIG_SATA_VIA=m CONFIG_SATA_VITESSE=m CONFIG_SATA_INIC162X=m -# CONFIG_PATA_ACPI is not set -# CONFIG_PATA_ALI is not set +CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m CONFIG_PATA_ARTOP=m CONFIG_PATA_ATIIXP=m -# CONFIG_PATA_CMD640_PCI is not set +CONFIG_PATA_CMD640_PCI=m CONFIG_PATA_CMD64X=m CONFIG_PATA_CS5520=m -# CONFIG_PATA_CS5530 is not set -# CONFIG_PATA_CS5535 is not set -# CONFIG_PATA_CS5536 is not set -# CONFIG_PATA_CYPRESS is not set +CONFIG_PATA_CS5530=m +CONFIG_PATA_CS5535=m +CONFIG_PATA_CS5536=m +CONFIG_PATA_CYPRESS=m CONFIG_PATA_EFAR=m CONFIG_ATA_GENERIC=m CONFIG_PATA_HPT366=m -# CONFIG_PATA_HPT37X is not set -# CONFIG_PATA_HPT3X2N is not set +CONFIG_PATA_HPT37X=m +CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m # CONFIG_PATA_HPT3X3_DMA is not set -# CONFIG_PATA_ISAPNP is not set +CONFIG_PATA_ISAPNP=m CONFIG_PATA_IT821X=m -# CONFIG_PATA_IT8213 is not set +CONFIG_PATA_IT8213=m CONFIG_PATA_JMICRON=m -# CONFIG_PATA_LEGACY is not set +CONFIG_PATA_LEGACY=m CONFIG_PATA_TRIFLEX=m CONFIG_PATA_MARVELL=m CONFIG_PATA_MPIIX=m CONFIG_PATA_OLDPIIX=m CONFIG_PATA_NETCELL=m -# CONFIG_PATA_NINJA32 is not set -# CONFIG_PATA_NS87410 is not set -# CONFIG_PATA_NS87415 is not set -# CONFIG_PATA_OPTI is not set -# CONFIG_PATA_OPTIDMA is not set +CONFIG_PATA_NINJA32=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_OPTIDMA=m CONFIG_PATA_PCMCIA=m -# CONFIG_PATA_PDC_OLD is not set +CONFIG_PATA_PDC_OLD=m CONFIG_PATA_QDI=m -# CONFIG_PATA_RADISYS is not set +CONFIG_PATA_RADISYS=m CONFIG_PATA_RZ1000=m -# CONFIG_PATA_SC1200 is not set +CONFIG_PATA_SC1200=m CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_PDC2027X=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m -# CONFIG_PATA_WINBOND_VLB is not set +CONFIG_PATA_WINBOND_VLB=m CONFIG_PATA_SCH=m CONFIG_MD=y CONFIG_BLK_DEV_MD=m @@ -991,7 +843,6 @@ CONFIG_FUSION_FC=m CONFIG_FUSION_SAS=m CONFIG_FUSION_MAX_SGE=128 # CONFIG_FUSION_CTL is not set -# CONFIG_FUSION_LAN is not set # CONFIG_FUSION_LOGGING is not set # @@ -1001,27 +852,12 @@ CONFIG_FUSION_MAX_SGE=128 # # Enable only one of the two stacks, unless you know what you are doing # -# CONFIG_FIREWIRE is not set -CONFIG_IEEE1394=m -CONFIG_IEEE1394_OHCI1394=m -# CONFIG_IEEE1394_PCILYNX is not set -CONFIG_IEEE1394_SBP2=m -# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set -CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y -CONFIG_IEEE1394_ETH1394=m -CONFIG_IEEE1394_RAWIO=m -CONFIG_IEEE1394_VIDEO1394=m -CONFIG_IEEE1394_DV1394=m -# CONFIG_IEEE1394_VERBOSEDEBUG is not set -CONFIG_I2O=m -CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y -CONFIG_I2O_EXT_ADAPTEC=y -CONFIG_I2O_CONFIG=m -CONFIG_I2O_CONFIG_OLD_IOCTL=y -# CONFIG_I2O_BUS is not set -CONFIG_I2O_BLOCK=m -CONFIG_I2O_SCSI=m -CONFIG_I2O_PROC=m +CONFIG_FIREWIRE=m +CONFIG_FIREWIRE_OHCI=m +CONFIG_FIREWIRE_OHCI_DEBUG=y +CONFIG_FIREWIRE_SBP2=m +# CONFIG_IEEE1394 is not set +# CONFIG_I2O is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set @@ -1032,7 +868,7 @@ CONFIG_NETDEVICES=y # CONFIG_VETH is not set # CONFIG_NET_SB1000 is not set # CONFIG_ARCNET is not set -CONFIG_PHYLIB=m +CONFIG_PHYLIB=y # # MII PHY device drivers @@ -1047,12 +883,16 @@ CONFIG_SMSC_PHY=m CONFIG_BROADCOM_PHY=m CONFIG_ICPLUS_PHY=m CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +# CONFIG_FIXED_PHY is not set CONFIG_MDIO_BITBANG=m CONFIG_NET_ETHERNET=y -CONFIG_MII=m +CONFIG_MII=y CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m -# CONFIG_CASSINI is not set +CONFIG_CASSINI=m CONFIG_NET_VENDOR_3COM=y CONFIG_EL1=m CONFIG_EL2=m @@ -1066,22 +906,21 @@ CONFIG_LANCE=m CONFIG_NET_VENDOR_SMC=y CONFIG_WD80x3=m CONFIG_ULTRA=m -CONFIG_ULTRA32=m CONFIG_SMC9194=m CONFIG_NET_VENDOR_RACAL=y CONFIG_NI52=m CONFIG_NI65=m +CONFIG_DNET=m CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_TULIP=m -CONFIG_TULIP_MWI=y -CONFIG_TULIP_MMIO=y -CONFIG_TULIP_NAPI=y -CONFIG_TULIP_NAPI_HW_MITIGATION=y +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_NAPI is not set CONFIG_DE4X5=m CONFIG_WINBOND_840=m CONFIG_DM9102=m -# CONFIG_ULI526X is not set +CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m CONFIG_AT1700=m CONFIG_DEPCA=m @@ -1102,6 +941,9 @@ CONFIG_SEEQ8005=m # CONFIG_IBM_NEW_EMAC_RGMII is not set # CONFIG_IBM_NEW_EMAC_TAH is not set # CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set CONFIG_NET_PCI=y CONFIG_PCNET32=m CONFIG_AMD8111_ETH=m @@ -1115,14 +957,10 @@ CONFIG_B44_PCI=y CONFIG_FORCEDETH=m # CONFIG_FORCEDETH_NAPI is not set CONFIG_CS89x0=m -# CONFIG_EEPRO100 is not set CONFIG_E100=m -CONFIG_LNE390=m CONFIG_FEALNX=m CONFIG_NATSEMI=m CONFIG_NE2K_PCI=m -CONFIG_NE3210=m -CONFIG_ES3210=m CONFIG_8139CP=m CONFIG_8139TOO=m # CONFIG_8139TOO_PIO is not set @@ -1132,22 +970,19 @@ CONFIG_8139TOO_8129=y CONFIG_R6040=m CONFIG_SIS900=m CONFIG_EPIC100=m +CONFIG_SMSC9420=m CONFIG_SUNDANCE=m -CONFIG_SUNDANCE_MMIO=y +# CONFIG_SUNDANCE_MMIO is not set CONFIG_TLAN=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y -# CONFIG_SC92031 is not set -CONFIG_NET_POCKET=y -CONFIG_ATP=m -CONFIG_DE600=m -CONFIG_DE620=m +CONFIG_SC92031=m +CONFIG_ATL2=m CONFIG_NETDEV_1000=y CONFIG_ACENIC=m # CONFIG_ACENIC_OMIT_TIGON_I is not set CONFIG_DL2K=m CONFIG_E1000=m -# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set CONFIG_E1000E=m CONFIG_IP1000=m CONFIG_IGB=m @@ -1156,41 +991,38 @@ CONFIG_NS83820=m CONFIG_HAMACHI=m CONFIG_YELLOWFIN=m CONFIG_R8169=m -CONFIG_R8169_VLAN=y -# CONFIG_SIS190 is not set +CONFIG_SIS190=m CONFIG_SKGE=m CONFIG_SKY2=m CONFIG_VIA_VELOCITY=m CONFIG_TIGON3=m CONFIG_BNX2=m CONFIG_QLA3XXX=m -# CONFIG_ATL1 is not set +CONFIG_ATL1=m CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_JME=m CONFIG_NETDEV_10000=y CONFIG_CHELSIO_T1=m -# CONFIG_CHELSIO_T1_1G is not set +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3_DEPENDS=y CONFIG_CHELSIO_T3=m +CONFIG_ENIC=m CONFIG_IXGBE=m CONFIG_IXGB=m CONFIG_S2IO=m CONFIG_MYRI10GE=m CONFIG_NETXEN_NIC=m CONFIG_NIU=m -# CONFIG_MLX4_CORE is not set +CONFIG_MLX4_EN=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y CONFIG_TEHUTI=m CONFIG_BNX2X=m +CONFIG_QLGE=m CONFIG_SFC=m -CONFIG_TR=y -CONFIG_IBMTR=m -CONFIG_IBMOL=m -CONFIG_IBMLS=m -CONFIG_3C359=m -CONFIG_TMS380TR=m -CONFIG_TMSPCI=m -CONFIG_SKISA=m -CONFIG_PROTEON=m -CONFIG_ABYSS=m -CONFIG_SMCTR=m +CONFIG_BE2NET=m +# CONFIG_TR is not set # # Wireless LAN @@ -1198,20 +1030,15 @@ CONFIG_SMCTR=m # CONFIG_WLAN_PRE80211 is not set CONFIG_WLAN_80211=y CONFIG_PCMCIA_RAYCS=m -CONFIG_IPW2100=m -# CONFIG_IPW2100_MONITOR is not set -# CONFIG_IPW2100_DEBUG is not set -CONFIG_IPW2200=m -# CONFIG_IPW2200_MONITOR is not set -# CONFIG_IPW2200_QOS is not set -# CONFIG_IPW2200_DEBUG is not set CONFIG_LIBERTAS=m CONFIG_LIBERTAS_USB=m CONFIG_LIBERTAS_CS=m -CONFIG_LIBERTAS_SDIO=m # CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM=m +CONFIG_LIBERTAS_THINFIRM_USB=m CONFIG_AIRO=m CONFIG_HERMES=m +CONFIG_HERMES_CACHE_FW_ON_INIT=y CONFIG_PLX_HERMES=m CONFIG_TMD_HERMES=m CONFIG_NORTEL_HERMES=m @@ -1226,26 +1053,75 @@ CONFIG_PCMCIA_WL3501=m CONFIG_PRISM54=m CONFIG_USB_ZD1201=m CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_P54_COMMON is not set -# CONFIG_ATH5K is not set -# CONFIG_ATH9K is not set +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_ADM8211=m +CONFIG_MAC80211_HWSIM=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH9K=m +# CONFIG_ATH9K_DEBUG is not set +CONFIG_IPW2100=m +# CONFIG_IPW2100_MONITOR is not set +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +# CONFIG_IPW2200_MONITOR is not set +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_IWLWIFI=m # CONFIG_IWLCORE is not set # CONFIG_IWLWIFI_LEDS is not set # CONFIG_IWLAGN is not set -# CONFIG_IWL3945 is not set +CONFIG_IWL3945=m +# CONFIG_IWL3945_RFKILL is not set +# CONFIG_IWL3945_SPECTRUM_MEASUREMENT is not set +# CONFIG_IWL3945_LEDS is not set +# CONFIG_IWL3945_DEBUG is not set CONFIG_HOSTAP=m # CONFIG_HOSTAP_FIRMWARE is not set -# CONFIG_HOSTAP_PLX is not set -# CONFIG_HOSTAP_PCI is not set -# CONFIG_HOSTAP_CS is not set -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_ZD1211RW is not set -# CONFIG_RT2X00 is not set +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +CONFIG_B43=m +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +# CONFIG_B43_PCMCIA is not set +CONFIG_B43_LEDS=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# # # USB Network Adapters @@ -1258,12 +1134,19 @@ CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC95XX=m CONFIG_USB_NET_GL620A=m CONFIG_USB_NET_NET1080=m CONFIG_USB_NET_PLUSB=m CONFIG_USB_NET_MCS7830=m CONFIG_USB_NET_RNDIS_HOST=m -# CONFIG_USB_NET_CDC_SUBSET is not set +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m CONFIG_NET_PCMCIA=y CONFIG_PCMCIA_3C589=m @@ -1274,57 +1157,12 @@ CONFIG_PCMCIA_NMCLAN=m CONFIG_PCMCIA_SMC91C92=m CONFIG_PCMCIA_XIRC2PS=m CONFIG_PCMCIA_AXNET=m -CONFIG_PCMCIA_IBMTR=m -CONFIG_WAN=y -CONFIG_HOSTESS_SV11=m -CONFIG_COSA=m -CONFIG_LANMEDIA=m -CONFIG_SEALEVEL_4021=m -CONFIG_HDLC=m -CONFIG_HDLC_RAW=m -CONFIG_HDLC_RAW_ETH=m -CONFIG_HDLC_CISCO=m -CONFIG_HDLC_FR=m -CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -CONFIG_PC300=m -CONFIG_PC300_MLPPP=y - -# -# Cyclades-PC300 MLPPP support is disabled. -# - -# -# Refer to the file README.mlppp, provided by PC300 package. -# -# CONFIG_PC300TOO is not set -CONFIG_N2=m -CONFIG_C101=m -CONFIG_FARSYNC=m -CONFIG_DSCC4=m -CONFIG_DSCC4_PCISYNC=y -CONFIG_DSCC4_PCI_RST=y -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 -CONFIG_SDLA=m -CONFIG_SBNI=m -CONFIG_SBNI_MULTILINE=y -CONFIG_FDDI=y -CONFIG_DEFXX=m -# CONFIG_DEFXX_MMIO is not set -CONFIG_SKFP=m -CONFIG_HIPPI=y -CONFIG_ROADRUNNER=m -# CONFIG_ROADRUNNER_LARGE_RINGS is not set -CONFIG_PLIP=m +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set CONFIG_PPP=m CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y +# CONFIG_PPP_FILTER is not set CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m CONFIG_PPP_DEFLATE=m @@ -1332,52 +1170,20 @@ CONFIG_PPP_BSDCOMP=m # CONFIG_PPP_MPPE is not set CONFIG_PPPOE=m # CONFIG_PPPOL2TP is not set -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y +# CONFIG_SLIP is not set CONFIG_SLHC=m -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -CONFIG_NET_FC=y +# CONFIG_NET_FC is not set # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set -CONFIG_ISDN=y -# CONFIG_MISDN is not set -# CONFIG_ISDN_I4L is not set -CONFIG_ISDN_CAPI=y -# CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON is not set -CONFIG_CAPI_TRACE=y -CONFIG_ISDN_CAPI_MIDDLEWARE=y -CONFIG_ISDN_CAPI_CAPI20=m -CONFIG_ISDN_CAPI_CAPIFS_BOOL=y -CONFIG_ISDN_CAPI_CAPIFS=m - -# -# CAPI hardware drivers -# -CONFIG_CAPI_AVM=y -CONFIG_ISDN_DRV_AVMB1_B1ISA=m -CONFIG_ISDN_DRV_AVMB1_B1PCI=m -CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y -CONFIG_ISDN_DRV_AVMB1_T1ISA=m -CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m -CONFIG_ISDN_DRV_AVMB1_AVM_CS=m -CONFIG_ISDN_DRV_AVMB1_T1PCI=m -CONFIG_ISDN_DRV_AVMB1_C4=m -CONFIG_CAPI_EICON=y -CONFIG_ISDN_DIVAS=m -CONFIG_ISDN_DIVAS_BRIPCI=y -CONFIG_ISDN_DIVAS_PRIPCI=y -CONFIG_ISDN_DIVAS_DIVACAPI=m -CONFIG_ISDN_DIVAS_USERIDI=m -CONFIG_ISDN_DIVAS_MAINT=m +# CONFIG_ISDN is not set # CONFIG_PHONE is not set # # Input device support # CONFIG_INPUT=y -# CONFIG_INPUT_FF_MEMLESS is not set +CONFIG_INPUT_FF_MEMLESS=y # CONFIG_INPUT_POLLDEV is not set # @@ -1388,7 +1194,7 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_EVDEV is not set # CONFIG_INPUT_EVBUG is not set # @@ -1396,26 +1202,26 @@ CONFIG_INPUT_EVDEV=m # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ATKBD=y -CONFIG_KEYBOARD_SUNKBD=m -CONFIG_KEYBOARD_LKKBD=m -CONFIG_KEYBOARD_XTKBD=m -CONFIG_KEYBOARD_NEWTON=m +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_STOWAWAY is not set CONFIG_INPUT_MOUSE=y -CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_PS2=m CONFIG_MOUSE_PS2_ALPS=y CONFIG_MOUSE_PS2_LOGIPS2PP=y CONFIG_MOUSE_PS2_SYNAPTICS=y CONFIG_MOUSE_PS2_LIFEBOOK=y CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_PS2_ELANTECH is not set # CONFIG_MOUSE_PS2_TOUCHKIT is not set CONFIG_MOUSE_SERIAL=m -# CONFIG_MOUSE_APPLETOUCH is not set -# CONFIG_MOUSE_BCM5974 is not set -CONFIG_MOUSE_INPORT=m -CONFIG_MOUSE_ATIXL=y +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +# CONFIG_MOUSE_INPORT is not set CONFIG_MOUSE_LOGIBM=m -CONFIG_MOUSE_PC110PAD=m +# CONFIG_MOUSE_PC110PAD is not set # CONFIG_MOUSE_VSXXXAA is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set @@ -1427,10 +1233,9 @@ CONFIG_MOUSE_PC110PAD=m # CONFIG_SERIO=y CONFIG_SERIO_I8042=y -CONFIG_SERIO_SERPORT=m -CONFIG_SERIO_CT82C710=m -CONFIG_SERIO_PARKBD=m -CONFIG_SERIO_PCIPS2=m +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set # CONFIG_GAMEPORT is not set @@ -1443,48 +1248,38 @@ CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set -CONFIG_DEVKMEM=y +# CONFIG_DEVKMEM is not set # CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_NOZOMI is not set # # Serial drivers # -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250=m CONFIG_FIX_EARLYCON_MEM=y -CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_PCI=m +CONFIG_SERIAL_8250_PNP=m CONFIG_SERIAL_8250_CS=m -CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_MANY_PORTS=y -# CONFIG_SERIAL_8250_FOURPORT is not set -# CONFIG_SERIAL_8250_ACCENT is not set -# CONFIG_SERIAL_8250_BOCA is not set -# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set -# CONFIG_SERIAL_8250_HUB6 is not set -CONFIG_SERIAL_8250_SHARE_IRQ=y -# CONFIG_SERIAL_8250_DETECT_IRQ is not set -CONFIG_SERIAL_8250_RSA=y +# CONFIG_SERIAL_8250_EXTENDED is not set # # Non-8250 serial port support # -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_CORE=m # CONFIG_SERIAL_JSM is not set CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set # CONFIG_LEGACY_PTYS is not set -# CONFIG_PRINTER is not set -CONFIG_PPDEV=m # CONFIG_IPMI_HANDLER is not set -# CONFIG_HW_RANDOM is not set -CONFIG_NVRAM=m -CONFIG_RTC=m -# CONFIG_GEN_RTC is not set -CONFIG_DTLK=m +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_INTEL is not set +CONFIG_HW_RANDOM_AMD=y +CONFIG_HW_RANDOM_GEODE=y +CONFIG_HW_RANDOM_VIA=y +# CONFIG_NVRAM is not set +# CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_SONYPI is not set @@ -1496,20 +1291,18 @@ CONFIG_DTLK=m # CONFIG_CARDMAN_4000 is not set # CONFIG_CARDMAN_4040 is not set # CONFIG_IPWIRELESS is not set -CONFIG_MWAVE=m +# CONFIG_MWAVE is not set # CONFIG_PC8736x_GPIO is not set # CONFIG_NSC_GPIO is not set # CONFIG_CS5535_GPIO is not set -CONFIG_RAW_DRIVER=m -CONFIG_MAX_RAW_DEVS=256 -# CONFIG_HPET is not set +# CONFIG_RAW_DRIVER is not set # CONFIG_HANGCHECK_TIMER is not set # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y -CONFIG_I2C=m +CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_CHARDEV=m +# CONFIG_I2C_CHARDEV is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_ALGOBIT=m @@ -1520,22 +1313,20 @@ CONFIG_I2C_ALGOBIT=m # # PC SMBus host controller drivers # -CONFIG_I2C_ALI1535=m -CONFIG_I2C_ALI1563=m -CONFIG_I2C_ALI15X3=m -CONFIG_I2C_AMD756=m -CONFIG_I2C_AMD756_S4882=m -CONFIG_I2C_AMD8111=m -CONFIG_I2C_I801=m -CONFIG_I2C_ISCH=m -CONFIG_I2C_PIIX4=m -CONFIG_I2C_NFORCE2=m -CONFIG_I2C_NFORCE2_S4985=m -CONFIG_I2C_SIS5595=m -CONFIG_I2C_SIS630=m -CONFIG_I2C_SIS96X=m -CONFIG_I2C_VIA=m -CONFIG_I2C_VIAPRO=m +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +CONFIG_I2C_I801=y +# CONFIG_I2C_ISCH is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set # # I2C system bus drivers (mostly embedded / system-on-chip) @@ -1546,7 +1337,6 @@ CONFIG_I2C_VIAPRO=m # # External I2C/SMBus adapter drivers # -# CONFIG_I2C_PARPORT is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_TAOS_EVM is not set # CONFIG_I2C_TINY_USB is not set @@ -1568,8 +1358,6 @@ CONFIG_I2C_VIAPRO=m # Miscellaneous I2C Chip support # # CONFIG_DS1682 is not set -# CONFIG_AT24 is not set -# CONFIG_SENSORS_EEPROM is not set # CONFIG_SENSORS_PCF8574 is not set # CONFIG_PCF8575 is not set # CONFIG_SENSORS_PCA9539 is not set @@ -1584,88 +1372,21 @@ CONFIG_I2C_VIAPRO=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y # CONFIG_GPIOLIB is not set # CONFIG_W1 is not set -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -# CONFIG_PDA_POWER is not set -# CONFIG_BATTERY_DS2760 is not set -CONFIG_HWMON=y -# CONFIG_HWMON_VID is not set -# CONFIG_SENSORS_ABITUGURU is not set -# CONFIG_SENSORS_ABITUGURU3 is not set -# CONFIG_SENSORS_AD7414 is not set -# CONFIG_SENSORS_AD7418 is not set -# CONFIG_SENSORS_ADM1021 is not set -# CONFIG_SENSORS_ADM1025 is not set -# CONFIG_SENSORS_ADM1026 is not set -# CONFIG_SENSORS_ADM1029 is not set -# CONFIG_SENSORS_ADM1031 is not set -# CONFIG_SENSORS_ADM9240 is not set -# CONFIG_SENSORS_ADT7470 is not set -# CONFIG_SENSORS_ADT7473 is not set -# CONFIG_SENSORS_K8TEMP is not set -# CONFIG_SENSORS_ASB100 is not set -# CONFIG_SENSORS_ATXP1 is not set -# CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_I5K_AMB is not set -# CONFIG_SENSORS_F71805F is not set -# CONFIG_SENSORS_F71882FG is not set -# CONFIG_SENSORS_F75375S is not set -# CONFIG_SENSORS_FSCHER is not set -# CONFIG_SENSORS_FSCPOS is not set -# CONFIG_SENSORS_FSCHMD is not set -# CONFIG_SENSORS_GL518SM is not set -# CONFIG_SENSORS_GL520SM is not set -# CONFIG_SENSORS_CORETEMP is not set -# CONFIG_SENSORS_IT87 is not set -# CONFIG_SENSORS_LM63 is not set -# CONFIG_SENSORS_LM75 is not set -# CONFIG_SENSORS_LM77 is not set -# CONFIG_SENSORS_LM78 is not set -# CONFIG_SENSORS_LM80 is not set -# CONFIG_SENSORS_LM83 is not set -# CONFIG_SENSORS_LM85 is not set -# CONFIG_SENSORS_LM87 is not set -# CONFIG_SENSORS_LM90 is not set -# CONFIG_SENSORS_LM92 is not set -# CONFIG_SENSORS_LM93 is not set -# CONFIG_SENSORS_MAX1619 is not set -# CONFIG_SENSORS_MAX6650 is not set -# CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_PC87427 is not set -# CONFIG_SENSORS_SIS5595 is not set -# CONFIG_SENSORS_DME1737 is not set -# CONFIG_SENSORS_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47M192 is not set -# CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_ADS7828 is not set -# CONFIG_SENSORS_THMC50 is not set -# CONFIG_SENSORS_VIA686A is not set -# CONFIG_SENSORS_VT1211 is not set -# CONFIG_SENSORS_VT8231 is not set -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83791D is not set -# CONFIG_SENSORS_W83792D is not set -# CONFIG_SENSORS_W83793 is not set -# CONFIG_SENSORS_W83L785TS is not set -# CONFIG_SENSORS_W83L786NG is not set -# CONFIG_SENSORS_W83627HF is not set -# CONFIG_SENSORS_W83627EHF is not set -# CONFIG_SENSORS_HDAPS is not set -# CONFIG_SENSORS_APPLESMC is not set -# CONFIG_HWMON_DEBUG_CHIP is not set -CONFIG_THERMAL=m +# CONFIG_POWER_SUPPLY is not set +# CONFIG_HWMON is not set +# CONFIG_THERMAL is not set # CONFIG_THERMAL_HWMON is not set # CONFIG_WATCHDOG is not set +CONFIG_SSB_POSSIBLE=y # # Sonics Silicon Backplane # -CONFIG_SSB_POSSIBLE=y CONFIG_SSB=m CONFIG_SSB_SPROM=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y -# CONFIG_SSB_B43_PCI_BRIDGE is not set +CONFIG_SSB_B43_PCI_BRIDGE=y CONFIG_SSB_PCMCIAHOST_POSSIBLE=y # CONFIG_SSB_PCMCIAHOST is not set # CONFIG_SSB_DEBUG is not set @@ -1678,7 +1399,13 @@ CONFIG_SSB_DRIVER_PCICORE=y # CONFIG_MFD_CORE is not set # CONFIG_MFD_SM501 is not set # CONFIG_HTC_PASIC3 is not set +# CONFIG_TWL4030_CORE is not set # CONFIG_MFD_TMIO is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_REGULATOR is not set # # Multimedia devices @@ -1694,19 +1421,31 @@ CONFIG_SSB_DRIVER_PCICORE=y # # Multimedia drivers # -CONFIG_DAB=y -# CONFIG_USB_DABUSB is not set +# CONFIG_DAB is not set # # Graphics support # -# CONFIG_AGP is not set +CONFIG_AGP=m +CONFIG_AGP_ALI=m +CONFIG_AGP_ATI=m +CONFIG_AGP_AMD=m +CONFIG_AGP_AMD64=m +CONFIG_AGP_INTEL=m +CONFIG_AGP_NVIDIA=m +CONFIG_AGP_SIS=m +CONFIG_AGP_SWORKS=m +CONFIG_AGP_VIA=m +CONFIG_AGP_EFFICEON=m # CONFIG_DRM is not set +# CONFIG_DRM_I830 is not set +# CONFIG_DRM_I915 is not set # CONFIG_VGASTATE is not set -CONFIG_VIDEO_OUTPUT_CONTROL=m +# CONFIG_VIDEO_OUTPUT_CONTROL is not set CONFIG_FB=y -CONFIG_FIRMWARE_EDID=y +# CONFIG_FIRMWARE_EDID is not set # CONFIG_FB_DDC is not set +CONFIG_FB_BOOT_VESA_SUPPORT=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y @@ -1733,7 +1472,6 @@ CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_IMSTT is not set # CONFIG_FB_VGA16 is not set CONFIG_FB_VESA=y -# CONFIG_FB_EFI is not set # CONFIG_FB_N411 is not set # CONFIG_FB_HGA is not set # CONFIG_FB_S1D13XXX is not set @@ -1749,6 +1487,7 @@ CONFIG_FB_VESA=y # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set +# CONFIG_FB_VIA is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set @@ -1761,11 +1500,9 @@ CONFIG_FB_VESA=y # CONFIG_FB_CARMINE is not set # CONFIG_FB_GEODE is not set # CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=m -# CONFIG_BACKLIGHT_CORGI is not set -# CONFIG_BACKLIGHT_PROGEAR is not set -# CONFIG_BACKLIGHT_MBP_NVIDIA is not set # # Display device support @@ -1776,8 +1513,8 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=m # Console display driver support # CONFIG_VGA_CONSOLE=y -# CONFIG_VGACON_SOFT_SCROLLBACK is not set -CONFIG_VIDEO_SELECT=y +CONFIG_VGACON_SOFT_SCROLLBACK=y +CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 # CONFIG_MDA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y @@ -1786,15 +1523,10 @@ CONFIG_FRAMEBUFFER_CONSOLE=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y -CONFIG_LOGO=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_LOGO_LINUX_CLUT224=y -CONFIG_SOUND=y -# CONFIG_SND is not set -# CONFIG_SOUND_PRIME is not set +# CONFIG_LOGO is not set +# CONFIG_SOUND is not set CONFIG_HID_SUPPORT=y -CONFIG_HID=y +CONFIG_HID=m # CONFIG_HID_DEBUG is not set # CONFIG_HIDRAW is not set @@ -1802,15 +1534,37 @@ CONFIG_HID=y # USB Input Devices # CONFIG_USB_HID=m -# CONFIG_USB_HIDINPUT_POWERBOOK is not set -# CONFIG_HID_FF is not set -CONFIG_USB_HIDDEV=y +# CONFIG_HID_PID is not set +# CONFIG_USB_HIDDEV is not set # -# USB HID Boot Protocol drivers +# Special HID drivers # -# CONFIG_USB_KBD is not set -# CONFIG_USB_MOUSE is not set +# CONFIG_HID_COMPAT is not set +CONFIG_HID_A4TECH=m +CONFIG_HID_APPLE=m +CONFIG_HID_BELKIN=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_EZKEY=m +CONFIG_HID_GYRATION=m +CONFIG_HID_LOGITECH=m +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_NTRIG=m +CONFIG_HID_PANTHERLORD=m +# CONFIG_PANTHERLORD_FF is not set +CONFIG_HID_PETALYNX=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SONY=m +CONFIG_HID_SUNPLUS=m +# CONFIG_GREENASIA_FF is not set +CONFIG_HID_TOPSEED=m +# CONFIG_THRUSTMASTER_FF is not set +# CONFIG_ZEROPLUS_FF is not set CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y @@ -1823,11 +1577,12 @@ CONFIG_USB=m # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DEVICE_CLASS is not set # CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_SUSPEND is not set # CONFIG_USB_OTG is not set -CONFIG_USB_MON=y +# CONFIG_USB_MON is not set +# CONFIG_USB_WUSB is not set +# CONFIG_USB_WUSB_CBAF is not set # # USB Host Controller Drivers @@ -1836,6 +1591,7 @@ CONFIG_USB_MON=y CONFIG_USB_EHCI_HCD=m # CONFIG_USB_EHCI_ROOT_HUB_TT is not set # CONFIG_USB_EHCI_TT_NEWSCHED is not set +# CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set CONFIG_USB_OHCI_HCD=m @@ -1845,8 +1601,10 @@ CONFIG_USB_OHCI_HCD=m CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=m CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_CS is not set -# CONFIG_USB_R8A66597_HCD is not set +CONFIG_USB_SL811_CS=m +CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_WHCI_HCD is not set +# CONFIG_USB_HWA_HCD is not set # # Enable Host or Gadget support to see Inventra options @@ -1858,29 +1616,29 @@ CONFIG_USB_SL811_HCD=m CONFIG_USB_ACM=m # CONFIG_USB_PRINTER is not set # CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set # -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; # # -# may also be needed; see USB_STORAGE Help for more information +# see USB_STORAGE Help for more information # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set -CONFIG_USB_STORAGE_DATAFAB=y -CONFIG_USB_STORAGE_FREECOM=y -CONFIG_USB_STORAGE_ISD200=y -CONFIG_USB_STORAGE_DPCM=y +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set # CONFIG_USB_STORAGE_USBAT is not set -CONFIG_USB_STORAGE_SDDR09=y -CONFIG_USB_STORAGE_SDDR55=y -CONFIG_USB_STORAGE_JUMPSHOT=y +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set # CONFIG_USB_STORAGE_ALAUDA is not set # CONFIG_USB_STORAGE_ONETOUCH is not set # CONFIG_USB_STORAGE_KARMA is not set # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set -# CONFIG_USB_LIBUSUAL is not set +CONFIG_USB_LIBUSUAL=y # # USB Imaging devices @@ -1891,50 +1649,7 @@ CONFIG_USB_STORAGE_JUMPSHOT=y # # USB port drivers # -CONFIG_USB_USS720=m -CONFIG_USB_SERIAL=m -# CONFIG_USB_EZUSB is not set -CONFIG_USB_SERIAL_GENERIC=y -# CONFIG_USB_SERIAL_AIRCABLE is not set -# CONFIG_USB_SERIAL_ARK3116 is not set -# CONFIG_USB_SERIAL_BELKIN is not set -# CONFIG_USB_SERIAL_CH341 is not set -# CONFIG_USB_SERIAL_WHITEHEAT is not set -# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set -# CONFIG_USB_SERIAL_CP2101 is not set -# CONFIG_USB_SERIAL_CYPRESS_M8 is not set -# CONFIG_USB_SERIAL_EMPEG is not set -# CONFIG_USB_SERIAL_FTDI_SIO is not set -# CONFIG_USB_SERIAL_FUNSOFT is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set -# CONFIG_USB_SERIAL_EDGEPORT is not set -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -# CONFIG_USB_SERIAL_GARMIN is not set -CONFIG_USB_SERIAL_IPW=m -# CONFIG_USB_SERIAL_IUU is not set -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -# CONFIG_USB_SERIAL_MCT_U232 is not set -# CONFIG_USB_SERIAL_MOS7720 is not set -# CONFIG_USB_SERIAL_MOS7840 is not set -# CONFIG_USB_SERIAL_MOTOROLA is not set -# CONFIG_USB_SERIAL_NAVMAN is not set -# CONFIG_USB_SERIAL_PL2303 is not set -# CONFIG_USB_SERIAL_OTI6858 is not set -# CONFIG_USB_SERIAL_SPCP8X5 is not set -# CONFIG_USB_SERIAL_HP4X is not set -# CONFIG_USB_SERIAL_SAFE is not set -# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set -# CONFIG_USB_SERIAL_TI is not set -# CONFIG_USB_SERIAL_CYBERJACK is not set -# CONFIG_USB_SERIAL_XIRCOM is not set -# CONFIG_USB_SERIAL_OPTION is not set -CONFIG_USB_SERIAL_OMNINET=m -# CONFIG_USB_SERIAL_DEBUG is not set +# CONFIG_USB_SERIAL is not set # # USB Miscellaneous drivers @@ -1942,6 +1657,7 @@ CONFIG_USB_SERIAL_OMNINET=m # CONFIG_USB_EMI62 is not set # CONFIG_USB_EMI26 is not set # CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set @@ -1959,50 +1675,95 @@ CONFIG_USB_SERIAL_OMNINET=m # CONFIG_USB_IOWARRIOR is not set # CONFIG_USB_TEST is not set # CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_VST is not set # CONFIG_USB_GADGET is not set -CONFIG_MMC=m -# CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_UNSAFE_RESUME is not set # -# MMC/SD Card Drivers +# OTG and related infrastructure # -CONFIG_MMC_BLOCK=m -CONFIG_MMC_BLOCK_BOUNCE=y -# CONFIG_SDIO_UART is not set -# CONFIG_MMC_TEST is not set - -# -# MMC/SD Host Controller Drivers -# -# CONFIG_MMC_SDHCI is not set -CONFIG_MMC_WBSD=m -# CONFIG_MMC_TIFM_SD is not set -# CONFIG_MMC_SDRICOH_CS is not set +# CONFIG_UWB is not set +# CONFIG_MMC is not set # CONFIG_MEMSTICK is not set -# CONFIG_NEW_LEDS is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +# CONFIG_LEDS_ALIX2 is not set +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_CLEVO_MAIL is not set +# CONFIG_LEDS_PCA955X is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_TRIGGER_TIMER is not set +# CONFIG_LEDS_TRIGGER_IDE_DISK is not set +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set +# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set +# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set # CONFIG_ACCESSIBILITY is not set -CONFIG_INFINIBAND=m -# CONFIG_INFINIBAND_USER_MAD is not set -# CONFIG_INFINIBAND_USER_ACCESS is not set -CONFIG_INFINIBAND_ADDR_TRANS=y -CONFIG_INFINIBAND_MTHCA=m -CONFIG_INFINIBAND_MTHCA_DEBUG=y -# CONFIG_INFINIBAND_AMSO1100 is not set -# CONFIG_INFINIBAND_CXGB3 is not set -# CONFIG_MLX4_INFINIBAND is not set -# CONFIG_INFINIBAND_NES is not set -CONFIG_INFINIBAND_IPOIB=m -# CONFIG_INFINIBAND_IPOIB_CM is not set -CONFIG_INFINIBAND_IPOIB_DEBUG=y -# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set -# CONFIG_INFINIBAND_SRP is not set -# CONFIG_INFINIBAND_ISER is not set +# CONFIG_INFINIBAND is not set # CONFIG_EDAC is not set -# CONFIG_RTC_CLASS is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +# CONFIG_RTC_HCTOSYS is not set +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8581 is not set + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=y +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# on-CPU RTC drivers +# # CONFIG_DMADEVICES is not set -# CONFIG_AUXDISPLAY is not set # CONFIG_UIO is not set +# CONFIG_STAGING is not set +# CONFIG_X86_PLATFORM_DEVICES is not set # # Firmware Drivers @@ -2010,48 +1771,55 @@ CONFIG_INFINIBAND_IPOIB_DEBUG=y # CONFIG_EDD is not set CONFIG_FIRMWARE_MEMMAP=y # CONFIG_DELL_RBU is not set -CONFIG_DCDBAS=m +# CONFIG_DCDBAS is not set CONFIG_DMIID=y # CONFIG_ISCSI_IBFT_FIND is not set # # File systems # -CONFIG_EXT2_FS=y +CONFIG_EXT2_FS=m CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y +# CONFIG_EXT2_FS_SECURITY is not set # CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y +CONFIG_EXT3_FS=m CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y -# CONFIG_EXT4DEV_FS is not set -CONFIG_JBD=y -CONFIG_FS_MBCACHE=y -CONFIG_REISERFS_FS=y +# CONFIG_EXT3_FS_SECURITY is not set +CONFIG_EXT4_FS=m +CONFIG_EXT4DEV_COMPAT=y +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXT4_FS_POSIX_ACL=y +# CONFIG_EXT4_FS_SECURITY is not set +CONFIG_JBD=m +CONFIG_JBD2=m +CONFIG_FS_MBCACHE=m +CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y -CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=y +# CONFIG_REISERFS_FS_SECURITY is not set +CONFIG_JFS_FS=m CONFIG_JFS_POSIX_ACL=y # CONFIG_JFS_SECURITY is not set # CONFIG_JFS_DEBUG is not set # CONFIG_JFS_STATISTICS is not set CONFIG_FS_POSIX_ACL=y -CONFIG_XFS_FS=y -CONFIG_XFS_QUOTA=y +CONFIG_FILE_LOCKING=y +CONFIG_XFS_FS=m +# CONFIG_XFS_QUOTA is not set CONFIG_XFS_POSIX_ACL=y -CONFIG_XFS_RT=y +# CONFIG_XFS_RT is not set # CONFIG_XFS_DEBUG is not set +# CONFIG_GFS2_FS is not set # CONFIG_OCFS2_FS is not set +# CONFIG_BTRFS_FS is not set CONFIG_DNOTIFY=y CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y # CONFIG_QUOTA is not set -CONFIG_QUOTACTL=y # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set # CONFIG_FUSE_FS is not set @@ -2061,16 +1829,16 @@ CONFIG_QUOTACTL=y # CONFIG_ISO9660_FS=y CONFIG_JOLIET=y -CONFIG_ZISOFS=y +# CONFIG_ZISOFS is not set CONFIG_UDF_FS=y CONFIG_UDF_NLS=y # # DOS/FAT/NT Filesystems # -CONFIG_FAT_FS=y +CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=y +CONFIG_VFAT_FS=m CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_NTFS_FS=m @@ -2083,16 +1851,14 @@ CONFIG_NTFS_FS=m CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set # CONFIG_CONFIGFS_FS is not set - -# -# Miscellaneous filesystems -# +CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set @@ -2126,13 +1892,17 @@ CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m -CONFIG_SUNRPC_XPRT_RDMA=m +# CONFIG_SUNRPC_REGISTER_V4 is not set # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set CONFIG_SMB_FS=m -CONFIG_SMB_NLS_DEFAULT=y -CONFIG_SMB_NLS_REMOTE="cp437" -# CONFIG_CIFS is not set +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set @@ -2140,27 +1910,10 @@ CONFIG_SMB_NLS_REMOTE="cp437" # # Partition Types # -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set +# CONFIG_PARTITION_ADVANCED is not set CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -# CONFIG_EFI_PARTITION is not set -# CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=y -CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y # CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_775 is not set @@ -2184,7 +1937,7 @@ CONFIG_NLS_CODEPAGE_437=y # CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_CODEPAGE_1250 is not set # CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_3 is not set @@ -2195,7 +1948,7 @@ CONFIG_NLS_ISO8859_1=y # 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_ISO8859_15=y # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y @@ -2206,71 +1959,46 @@ CONFIG_NLS_UTF8=y # CONFIG_TRACE_IRQFLAGS_SUPPORT=y # CONFIG_PRINTK_TIME is not set -CONFIG_ENABLE_WARN_DEPRECATED=y -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 +# CONFIG_ENABLE_WARN_DEPRECATED is not set +# CONFIG_ENABLE_MUST_CHECK is not set +CONFIG_FRAME_WARN=2048 CONFIG_MAGIC_SYSRQ=y -CONFIG_UNUSED_SYMBOLS=y +# CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 -CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set -# CONFIG_TIMER_STATS is not set -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_RT_MUTEX_TESTER is not set -# CONFIG_DEBUG_SPINLOCK is not set -CONFIG_DEBUG_MUTEXES=y -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_LIST is not set -# CONFIG_DEBUG_SG is not set +CONFIG_ARCH_WANT_FRAME_POINTERS=y # CONFIG_FRAME_POINTER is not set -# CONFIG_BOOT_PRINTK_DELAY is not set -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_FAULT_INJECTION is not set +# CONFIG_RCU_CPU_STALL_DETECTOR is not set # CONFIG_LATENCYTOP is not set # CONFIG_SYSCTL_SYSCALL_CHECK is not set -CONFIG_HAVE_FTRACE=y +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y -# CONFIG_FTRACE is not set -# CONFIG_IRQSOFF_TRACER is not set +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y + +# +# Tracers +# # CONFIG_SYSPROF_TRACER is not set -# CONFIG_SCHED_TRACER is not set -# CONFIG_CONTEXT_SWITCH_TRACER is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +# CONFIG_DYNAMIC_PRINTK_DEBUG is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set # CONFIG_STRICT_DEVMEM is not set -CONFIG_X86_VERBOSE_BOOTUP=y +# CONFIG_X86_VERBOSE_BOOTUP is not set CONFIG_EARLY_PRINTK=y -# CONFIG_DEBUG_STACKOVERFLOW is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set -# CONFIG_X86_PTDUMP is not set -# CONFIG_DEBUG_RODATA is not set -# CONFIG_DEBUG_NX_TEST is not set +# CONFIG_EARLY_PRINTK_DBGP is not set # CONFIG_4KSTACKS is not set CONFIG_DOUBLEFAULT=y -# CONFIG_MMIOTRACE is not set +CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_UDELAY=2 @@ -2280,7 +2008,6 @@ CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 -# CONFIG_CPA_DEBUG is not set # CONFIG_OPTIMIZE_INLINING is not set # @@ -2288,6 +2015,7 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0 # # CONFIG_KEYS is not set # CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set # CONFIG_SECURITY_FILE_CAPABILITIES is not set CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m @@ -2298,11 +2026,18 @@ CONFIG_CRYPTO=y # # Crypto core or helper # -CONFIG_CRYPTO_ALGAPI=y +# CONFIG_CRYPTO_FIPS is not set +CONFIG_CRYPTO_ALGAPI=m +CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=m -CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=m +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y # CONFIG_CRYPTO_GF128MUL is not set # CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_CRYPTD is not set @@ -2324,29 +2059,30 @@ CONFIG_CRYPTO_CBC=m # CONFIG_CRYPTO_CTS is not set CONFIG_CRYPTO_ECB=m # CONFIG_CRYPTO_LRW is not set -CONFIG_CRYPTO_PCBC=m +# CONFIG_CRYPTO_PCBC is not set # CONFIG_CRYPTO_XTS is not set # # Hash modes # -CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_HMAC=m # CONFIG_CRYPTO_XCBC is not set # # Digest # CONFIG_CRYPTO_CRC32C=m +# CONFIG_CRYPTO_CRC32C_INTEL is not set # CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MD5=m CONFIG_CRYPTO_MICHAEL_MIC=m # CONFIG_CRYPTO_RMD128 is not set # CONFIG_CRYPTO_RMD160 is not set # CONFIG_CRYPTO_RMD256 is not set # CONFIG_CRYPTO_RMD320 is not set CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m -CONFIG_CRYPTO_SHA512=m +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_WP512 is not set @@ -2354,40 +2090,38 @@ CONFIG_CRYPTO_SHA512=m # Ciphers # CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_AES_586=m -CONFIG_CRYPTO_ANUBIS=m +# CONFIG_CRYPTO_AES_586 is not set +# CONFIG_CRYPTO_ANUBIS is not set CONFIG_CRYPTO_ARC4=m -CONFIG_CRYPTO_BLOWFISH=m +# CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_CAMELLIA is not set -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +CONFIG_CRYPTO_DES=m # CONFIG_CRYPTO_FCRYPT is not set -CONFIG_CRYPTO_KHAZAD=m +# CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_SALSA20 is not set # CONFIG_CRYPTO_SALSA20_586 is not set # CONFIG_CRYPTO_SEED is not set -CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_TEA=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_TWOFISH_COMMON=m +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_TWOFISH_586 is not set # # Compression # -CONFIG_CRYPTO_DEFLATE=m +# CONFIG_CRYPTO_DEFLATE is not set # CONFIG_CRYPTO_LZO is not set -CONFIG_CRYPTO_HW=y -# CONFIG_CRYPTO_DEV_PADLOCK is not set -CONFIG_CRYPTO_DEV_GEODE=m -# CONFIG_CRYPTO_DEV_HIFN_795X is not set + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +# CONFIG_CRYPTO_HW is not set CONFIG_HAVE_KVM=y -CONFIG_VIRTUALIZATION=y -# CONFIG_KVM is not set -# CONFIG_LGUEST is not set -# CONFIG_VIRTIO_PCI is not set -# CONFIG_VIRTIO_BALLOON is not set +CONFIG_HAVE_KVM_IRQCHIP=y +# CONFIG_VIRTUALIZATION is not set # # Library routines @@ -2395,8 +2129,9 @@ CONFIG_VIRTUALIZATION=y CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_FIND_LAST_BIT=y CONFIG_CRC_CCITT=m -# CONFIG_CRC16 is not set +CONFIG_CRC16=m # CONFIG_CRC_T10DIF is not set CONFIG_CRC_ITU_T=y CONFIG_CRC32=y diff --git a/kernel/squashfs3.4-patch b/kernel/squashfs3.4-patch deleted file mode 100644 index 58e38eb..0000000 --- a/kernel/squashfs3.4-patch +++ /dev/null @@ -1,4218 +0,0 @@ -diff -x .gitignore -Nurp linux-2.6.27-rc4/fs/Kconfig linux-2.6.27-rc4-squashfs3.4/fs/Kconfig ---- linux-2.6.27-rc4/fs/Kconfig 2008-08-11 15:20:41.000000000 +0100 -+++ linux-2.6.27-rc4-squashfs3.4/fs/Kconfig 2008-08-19 18:31:56.000000000 +0100 -@@ -1348,6 +1348,56 @@ config CRAMFS - - If unsure, say N. - -+config SQUASHFS -+ tristate "SquashFS 3.4 - Squashed file system support" -+ select ZLIB_INFLATE -+ help -+ Saying Y here includes support for SquashFS 3.4 (a Compressed -+ Read-Only File System). Squashfs is a highly compressed read-only -+ filesystem for Linux. It uses zlib compression to compress both -+ files, inodes and directories. Inodes in the system are very small -+ and all blocks are packed to minimise data overhead. Block sizes -+ greater than 4K are supported up to a maximum of 1 Mbytes (default -+ block size 128K). SquashFS 3.3 supports 64 bit filesystems and files -+ (larger than 4GB), full uid/gid information, hard links and timestamps. -+ -+ Squashfs is intended for general read-only filesystem use, for -+ archival use (i.e. in cases where a .tar.gz file may be used), and in -+ embedded systems where low overhead is needed. Further information -+ and filesystem tools are available from http://squashfs.sourceforge.net. -+ -+ If you want to compile this as a module ( = code which can be -+ inserted in and removed from the running kernel whenever you want), -+ say M here and read . The module -+ will be called squashfs. Note that the root file system (the one -+ containing the directory /) cannot be compiled as a module. -+ -+ If unsure, say N. -+ -+config SQUASHFS_EMBEDDED -+ -+ bool "Additional option for memory-constrained systems" -+ depends on SQUASHFS -+ default n -+ help -+ Saying Y here allows you to specify cache size. -+ -+ If unsure, say N. -+ -+config SQUASHFS_FRAGMENT_CACHE_SIZE -+ int "Number of fragments cached" if SQUASHFS_EMBEDDED -+ depends on SQUASHFS -+ default "3" -+ help -+ By default SquashFS caches the last 3 fragments read from -+ the filesystem. Increasing this amount may mean SquashFS -+ has to re-read fragments less often from disk, at the expense -+ of extra system memory. Decreasing this amount will mean -+ SquashFS uses less memory at the expense of extra reads from disk. -+ -+ Note there must be at least one cached fragment. Anything -+ much more than three will probably not make much difference. -+ - config VXFS_FS - tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)" - depends on BLOCK -diff -x .gitignore -Nurp linux-2.6.27-rc4/fs/Makefile linux-2.6.27-rc4-squashfs3.4/fs/Makefile ---- linux-2.6.27-rc4/fs/Makefile 2008-08-11 15:20:41.000000000 +0100 -+++ linux-2.6.27-rc4-squashfs3.4/fs/Makefile 2008-08-19 18:31:56.000000000 +0100 -@@ -74,6 +74,7 @@ obj-$(CONFIG_JBD) += jbd/ - obj-$(CONFIG_JBD2) += jbd2/ - obj-$(CONFIG_EXT2_FS) += ext2/ - obj-$(CONFIG_CRAMFS) += cramfs/ -+obj-$(CONFIG_SQUASHFS) += squashfs/ - obj-y += ramfs/ - obj-$(CONFIG_HUGETLBFS) += hugetlbfs/ - obj-$(CONFIG_CODA_FS) += coda/ -diff -x .gitignore -Nurp linux-2.6.27-rc4/fs/squashfs/inode.c linux-2.6.27-rc4-squashfs3.4/fs/squashfs/inode.c ---- linux-2.6.27-rc4/fs/squashfs/inode.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.27-rc4-squashfs3.4/fs/squashfs/inode.c 2008-08-26 08:25:23.000000000 +0100 -@@ -0,0 +1,2173 @@ -+/* -+ * Squashfs - a compressed read only filesystem for Linux -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * inode.c -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "squashfs.h" -+ -+static struct dentry *squashfs_fh_to_dentry(struct super_block *s, -+ struct fid *fid, int fh_len, int fh_type); -+static struct dentry *squashfs_fh_to_parent(struct super_block *s, -+ struct fid *fid, int fh_len, int fh_type); -+static struct dentry *squashfs_get_parent(struct dentry *child); -+static int squashfs_read_inode(struct inode *i, squashfs_inode_t inode); -+static int squashfs_statfs(struct dentry *, struct kstatfs *); -+static int squashfs_symlink_readpage(struct file *file, struct page *page); -+static long long read_blocklist(struct inode *inode, int index, -+ int readahead_blks, char *block_list, -+ unsigned short **block_p, unsigned int *bsize); -+static int squashfs_readpage(struct file *file, struct page *page); -+static int squashfs_readdir(struct file *, void *, filldir_t); -+static struct dentry *squashfs_lookup(struct inode *, struct dentry *, -+ struct nameidata *); -+static int squashfs_remount(struct super_block *s, int *flags, char *data); -+static void squashfs_put_super(struct super_block *); -+static int squashfs_get_sb(struct file_system_type *,int, const char *, void *, -+ struct vfsmount *); -+static struct inode *squashfs_alloc_inode(struct super_block *sb); -+static void squashfs_destroy_inode(struct inode *inode); -+static int init_inodecache(void); -+static void destroy_inodecache(void); -+ -+static struct file_system_type squashfs_fs_type = { -+ .owner = THIS_MODULE, -+ .name = "squashfs", -+ .get_sb = squashfs_get_sb, -+ .kill_sb = kill_block_super, -+ .fs_flags = FS_REQUIRES_DEV -+}; -+ -+static const unsigned char squashfs_filetype_table[] = { -+ DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK -+}; -+ -+static struct super_operations squashfs_super_ops = { -+ .alloc_inode = squashfs_alloc_inode, -+ .destroy_inode = squashfs_destroy_inode, -+ .statfs = squashfs_statfs, -+ .put_super = squashfs_put_super, -+ .remount_fs = squashfs_remount -+}; -+ -+static struct export_operations squashfs_export_ops = { -+ .fh_to_dentry = squashfs_fh_to_dentry, -+ .fh_to_parent = squashfs_fh_to_parent, -+ .get_parent = squashfs_get_parent -+}; -+ -+SQSH_EXTERN const struct address_space_operations squashfs_symlink_aops = { -+ .readpage = squashfs_symlink_readpage -+}; -+ -+SQSH_EXTERN const struct address_space_operations squashfs_aops = { -+ .readpage = squashfs_readpage -+}; -+ -+static const struct file_operations squashfs_dir_ops = { -+ .read = generic_read_dir, -+ .readdir = squashfs_readdir -+}; -+ -+SQSH_EXTERN struct inode_operations squashfs_dir_inode_ops = { -+ .lookup = squashfs_lookup -+}; -+ -+ -+static struct buffer_head *get_block_length(struct super_block *s, -+ int *cur_index, int *offset, int *c_byte) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ unsigned short temp; -+ struct buffer_head *bh; -+ -+ if (!(bh = sb_bread(s, *cur_index))) -+ goto out; -+ -+ if (msblk->devblksize - *offset == 1) { -+ if (msblk->swap) -+ ((unsigned char *) &temp)[1] = *((unsigned char *) -+ (bh->b_data + *offset)); -+ else -+ ((unsigned char *) &temp)[0] = *((unsigned char *) -+ (bh->b_data + *offset)); -+ brelse(bh); -+ if (!(bh = sb_bread(s, ++(*cur_index)))) -+ goto out; -+ if (msblk->swap) -+ ((unsigned char *) &temp)[0] = *((unsigned char *) -+ bh->b_data); -+ else -+ ((unsigned char *) &temp)[1] = *((unsigned char *) -+ bh->b_data); -+ *c_byte = temp; -+ *offset = 1; -+ } else { -+ if (msblk->swap) { -+ ((unsigned char *) &temp)[1] = *((unsigned char *) -+ (bh->b_data + *offset)); -+ ((unsigned char *) &temp)[0] = *((unsigned char *) -+ (bh->b_data + *offset + 1)); -+ } else { -+ ((unsigned char *) &temp)[0] = *((unsigned char *) -+ (bh->b_data + *offset)); -+ ((unsigned char *) &temp)[1] = *((unsigned char *) -+ (bh->b_data + *offset + 1)); -+ } -+ *c_byte = temp; -+ *offset += 2; -+ } -+ -+ if (SQUASHFS_CHECK_DATA(msblk->sblk.flags)) { -+ if (*offset == msblk->devblksize) { -+ brelse(bh); -+ if (!(bh = sb_bread(s, ++(*cur_index)))) -+ goto out; -+ *offset = 0; -+ } -+ if (*((unsigned char *) (bh->b_data + *offset)) != -+ SQUASHFS_MARKER_BYTE) { -+ ERROR("Metadata block marker corrupt @ %x\n", -+ *cur_index); -+ brelse(bh); -+ goto out; -+ } -+ (*offset)++; -+ } -+ return bh; -+ -+out: -+ return NULL; -+} -+ -+ -+SQSH_EXTERN unsigned int squashfs_read_data(struct super_block *s, char *buffer, -+ long long index, unsigned int length, -+ long long *next_index, int srclength) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ struct buffer_head **bh; -+ unsigned int offset = index & ((1 << msblk->devblksize_log2) - 1); -+ unsigned int cur_index = index >> msblk->devblksize_log2; -+ int bytes, avail_bytes, b = 0, k = 0; -+ unsigned int compressed; -+ unsigned int c_byte = length; -+ -+ bh = kmalloc(((sblk->block_size >> msblk->devblksize_log2) + 1) * -+ sizeof(struct buffer_head *), GFP_KERNEL); -+ if (bh == NULL) -+ goto read_failure; -+ -+ if (c_byte) { -+ bytes = -offset; -+ compressed = SQUASHFS_COMPRESSED_BLOCK(c_byte); -+ c_byte = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte); -+ -+ TRACE("Block @ 0x%llx, %scompressed size %d, src size %d\n", index, -+ compressed ? "" : "un", (unsigned int) c_byte, srclength); -+ -+ if (c_byte > srclength || index < 0 || (index + c_byte) > sblk->bytes_used) -+ goto read_failure; -+ -+ for (b = 0; bytes < (int) c_byte; b++, cur_index++) { -+ bh[b] = sb_getblk(s, cur_index); -+ if (bh[b] == NULL) -+ goto block_release; -+ bytes += msblk->devblksize; -+ } -+ ll_rw_block(READ, b, bh); -+ } else { -+ if (index < 0 || (index + 2) > sblk->bytes_used) -+ goto read_failure; -+ -+ bh[0] = get_block_length(s, &cur_index, &offset, &c_byte); -+ if (bh[0] == NULL) -+ goto read_failure; -+ b = 1; -+ -+ bytes = msblk->devblksize - offset; -+ compressed = SQUASHFS_COMPRESSED(c_byte); -+ c_byte = SQUASHFS_COMPRESSED_SIZE(c_byte); -+ -+ TRACE("Block @ 0x%llx, %scompressed size %d\n", index, compressed -+ ? "" : "un", (unsigned int) c_byte); -+ -+ if (c_byte > srclength || (index + c_byte) > sblk->bytes_used) -+ goto block_release; -+ -+ for (; bytes < c_byte; b++) { -+ bh[b] = sb_getblk(s, ++cur_index); -+ if (bh[b] == NULL) -+ goto block_release; -+ bytes += msblk->devblksize; -+ } -+ ll_rw_block(READ, b - 1, bh + 1); -+ } -+ -+ if (compressed) { -+ int zlib_err = 0; -+ -+ /* -+ * uncompress block -+ */ -+ -+ mutex_lock(&msblk->read_data_mutex); -+ -+ msblk->stream.next_out = buffer; -+ msblk->stream.avail_out = srclength; -+ -+ for (bytes = 0; k < b; k++) { -+ avail_bytes = min(c_byte - bytes, msblk->devblksize - offset); -+ -+ wait_on_buffer(bh[k]); -+ if (!buffer_uptodate(bh[k])) -+ goto release_mutex; -+ -+ msblk->stream.next_in = bh[k]->b_data + offset; -+ msblk->stream.avail_in = avail_bytes; -+ -+ if (k == 0) { -+ zlib_err = zlib_inflateInit(&msblk->stream); -+ if (zlib_err != Z_OK) { -+ ERROR("zlib_inflateInit returned unexpected result 0x%x," -+ " srclength %d\n", zlib_err, srclength); -+ goto release_mutex; -+ } -+ -+ if (avail_bytes == 0) { -+ offset = 0; -+ brelse(bh[k]); -+ continue; -+ } -+ } -+ -+ zlib_err = zlib_inflate(&msblk->stream, Z_NO_FLUSH); -+ if (zlib_err != Z_OK && zlib_err != Z_STREAM_END) { -+ ERROR("zlib_inflate returned unexpected result 0x%x," -+ " srclength %d, avail_in %d, avail_out %d\n", zlib_err, -+ srclength, msblk->stream.avail_in, msblk->stream.avail_out); -+ goto release_mutex; -+ } -+ -+ bytes += avail_bytes; -+ offset = 0; -+ brelse(bh[k]); -+ } -+ -+ if (zlib_err != Z_STREAM_END) -+ goto release_mutex; -+ -+ zlib_err = zlib_inflateEnd(&msblk->stream); -+ if (zlib_err != Z_OK) { -+ ERROR("zlib_inflateEnd returned unexpected result 0x%x," -+ " srclength %d\n", zlib_err, srclength); -+ goto release_mutex; -+ } -+ bytes = msblk->stream.total_out; -+ mutex_unlock(&msblk->read_data_mutex); -+ } else { -+ int i; -+ -+ for(i = 0; i < b; i++) { -+ wait_on_buffer(bh[i]); -+ if (!buffer_uptodate(bh[i])) -+ goto block_release; -+ } -+ -+ for (bytes = 0; k < b; k++) { -+ avail_bytes = min(c_byte - bytes, msblk->devblksize - offset); -+ -+ memcpy(buffer + bytes, bh[k]->b_data + offset, avail_bytes); -+ bytes += avail_bytes; -+ offset = 0; -+ brelse(bh[k]); -+ } -+ } -+ -+ if (next_index) -+ *next_index = index + c_byte + (length ? 0 : -+ (SQUASHFS_CHECK_DATA(msblk->sblk.flags) ? 3 : 2)); -+ -+ kfree(bh); -+ return bytes; -+ -+release_mutex: -+ mutex_unlock(&msblk->read_data_mutex); -+ -+block_release: -+ for (; k < b; k++) -+ brelse(bh[k]); -+ -+read_failure: -+ ERROR("sb_bread failed reading block 0x%x\n", cur_index); -+ kfree(bh); -+ return 0; -+} -+ -+ -+static struct squashfs_cache_entry *squashfs_cache_get(struct super_block *s, -+ struct squashfs_cache *cache, long long block, int length) -+{ -+ int i, n; -+ struct squashfs_cache_entry *entry; -+ -+ spin_lock(&cache->lock); -+ -+ while (1) { -+ for (i = 0; i < cache->entries && cache->entry[i].block != block; i++); -+ -+ if (i == cache->entries) { -+ if (cache->unused_blks == 0) { -+ cache->waiting ++; -+ spin_unlock(&cache->lock); -+ wait_event(cache->wait_queue, cache->unused_blks); -+ spin_lock(&cache->lock); -+ cache->waiting --; -+ continue; -+ } -+ -+ i = cache->next_blk; -+ for (n = 0; n < cache->entries; n++) { -+ if (cache->entry[i].locked == 0) -+ break; -+ i = (i + 1) % cache->entries; -+ } -+ -+ cache->next_blk = (i + 1) % cache->entries; -+ entry = &cache->entry[i]; -+ -+ cache->unused_blks --; -+ entry->block = block; -+ entry->locked = 1; -+ entry->pending = 1; -+ entry->waiting = 0; -+ entry->error = 0; -+ spin_unlock(&cache->lock); -+ -+ entry->length = squashfs_read_data(s, entry->data, -+ block, length, &entry->next_index, cache->block_size); -+ -+ spin_lock(&cache->lock); -+ -+ if (entry->length == 0) -+ entry->error = 1; -+ -+ entry->pending = 0; -+ spin_unlock(&cache->lock); -+ if (entry->waiting) -+ wake_up_all(&entry->wait_queue); -+ goto out; -+ } -+ -+ entry = &cache->entry[i]; -+ if (entry->locked == 0) -+ cache->unused_blks --; -+ entry->locked++; -+ -+ if (entry->pending) { -+ entry->waiting ++; -+ spin_unlock(&cache->lock); -+ wait_event(entry->wait_queue, !entry->pending); -+ goto out; -+ } -+ -+ spin_unlock(&cache->lock); -+ goto out; -+ } -+ -+out: -+ TRACE("Got %s %d, start block %lld, locked %d, error %d\n", i, -+ cache->name, entry->block, entry->locked, entry->error); -+ if (entry->error) -+ ERROR("Unable to read %s cache entry [%llx]\n", cache->name, block); -+ return entry; -+} -+ -+ -+static void squashfs_cache_put(struct squashfs_cache *cache, -+ struct squashfs_cache_entry *entry) -+{ -+ spin_lock(&cache->lock); -+ entry->locked --; -+ if (entry->locked == 0) { -+ cache->unused_blks ++; -+ spin_unlock(&cache->lock); -+ if (cache->waiting) -+ wake_up(&cache->wait_queue); -+ } else -+ spin_unlock(&cache->lock); -+} -+ -+ -+static void squashfs_cache_delete(struct squashfs_cache *cache) -+{ -+ int i; -+ -+ if (cache == NULL) -+ return; -+ -+ for (i = 0; i < cache->entries; i++) -+ if (cache->entry[i].data) { -+ if (cache->use_vmalloc) -+ vfree(cache->entry[i].data); -+ else -+ kfree(cache->entry[i].data); -+ } -+ -+ kfree(cache); -+} -+ -+ -+static struct squashfs_cache *squashfs_cache_init(char *name, int entries, -+ int block_size, int use_vmalloc) -+{ -+ int i; -+ struct squashfs_cache *cache = kzalloc(sizeof(struct squashfs_cache) + -+ entries * sizeof(struct squashfs_cache_entry), GFP_KERNEL); -+ if (cache == NULL) { -+ ERROR("Failed to allocate %s cache\n", name); -+ goto failed; -+ } -+ -+ cache->next_blk = 0; -+ cache->unused_blks = entries; -+ cache->entries = entries; -+ cache->block_size = block_size; -+ cache->use_vmalloc = use_vmalloc; -+ cache->name = name; -+ cache->waiting = 0; -+ spin_lock_init(&cache->lock); -+ init_waitqueue_head(&cache->wait_queue); -+ -+ for (i = 0; i < entries; i++) { -+ init_waitqueue_head(&cache->entry[i].wait_queue); -+ cache->entry[i].block = SQUASHFS_INVALID_BLK; -+ cache->entry[i].data = use_vmalloc ? vmalloc(block_size) : -+ kmalloc(block_size, GFP_KERNEL); -+ if (cache->entry[i].data == NULL) { -+ ERROR("Failed to allocate %s cache entry\n", name); -+ goto cleanup; -+ } -+ } -+ -+ return cache; -+ -+cleanup: -+ squashfs_cache_delete(cache); -+failed: -+ return NULL; -+} -+ -+ -+SQSH_EXTERN int squashfs_get_cached_block(struct super_block *s, void *buffer, -+ long long block, unsigned int offset, -+ int length, long long *next_block, -+ unsigned int *next_offset) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ int bytes, return_length = length; -+ struct squashfs_cache_entry *entry; -+ -+ TRACE("Entered squashfs_get_cached_block [%llx:%x]\n", block, offset); -+ -+ while (1) { -+ entry = squashfs_cache_get(s, msblk->block_cache, block, 0); -+ bytes = entry->length - offset; -+ -+ if (entry->error || bytes < 1) { -+ return_length = 0; -+ goto finish; -+ } else if (bytes >= length) { -+ if (buffer) -+ memcpy(buffer, entry->data + offset, length); -+ if (entry->length - offset == length) { -+ *next_block = entry->next_index; -+ *next_offset = 0; -+ } else { -+ *next_block = block; -+ *next_offset = offset + length; -+ } -+ goto finish; -+ } else { -+ if (buffer) { -+ memcpy(buffer, entry->data + offset, bytes); -+ buffer = (char *) buffer + bytes; -+ } -+ block = entry->next_index; -+ squashfs_cache_put(msblk->block_cache, entry); -+ length -= bytes; -+ offset = 0; -+ } -+ } -+ -+finish: -+ squashfs_cache_put(msblk->block_cache, entry); -+ return return_length; -+} -+ -+ -+static int get_fragment_location(struct super_block *s, unsigned int fragment, -+ long long *fragment_start_block, -+ unsigned int *fragment_size) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ long long start_block = -+ msblk->fragment_index[SQUASHFS_FRAGMENT_INDEX(fragment)]; -+ int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET(fragment); -+ struct squashfs_fragment_entry fragment_entry; -+ -+ if (msblk->swap) { -+ struct squashfs_fragment_entry sfragment_entry; -+ -+ if (!squashfs_get_cached_block(s, &sfragment_entry, start_block, offset, -+ sizeof(sfragment_entry), &start_block, &offset)) -+ goto out; -+ SQUASHFS_SWAP_FRAGMENT_ENTRY(&fragment_entry, &sfragment_entry); -+ } else -+ if (!squashfs_get_cached_block(s, &fragment_entry, start_block, offset, -+ sizeof(fragment_entry), &start_block, &offset)) -+ goto out; -+ -+ *fragment_start_block = fragment_entry.start_block; -+ *fragment_size = fragment_entry.size; -+ -+ return 1; -+ -+out: -+ return 0; -+} -+ -+ -+SQSH_EXTERN void release_cached_fragment(struct squashfs_sb_info *msblk, -+ struct squashfs_cache_entry *fragment) -+{ -+ squashfs_cache_put(msblk->fragment_cache, fragment); -+} -+ -+ -+SQSH_EXTERN -+struct squashfs_cache_entry *get_cached_fragment(struct super_block *s, -+ long long start_block, int length) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ -+ return squashfs_cache_get(s, msblk->fragment_cache, start_block, length); -+} -+ -+ -+static void squashfs_new_inode(struct squashfs_sb_info *msblk, struct inode *i, -+ struct squashfs_base_inode_header *inodeb) -+{ -+ i->i_ino = inodeb->inode_number; -+ i->i_mtime.tv_sec = inodeb->mtime; -+ i->i_atime.tv_sec = inodeb->mtime; -+ i->i_ctime.tv_sec = inodeb->mtime; -+ i->i_uid = msblk->uid[inodeb->uid]; -+ i->i_mode = inodeb->mode; -+ i->i_size = 0; -+ -+ if (inodeb->guid == SQUASHFS_GUIDS) -+ i->i_gid = i->i_uid; -+ else -+ i->i_gid = msblk->guid[inodeb->guid]; -+} -+ -+ -+static squashfs_inode_t squashfs_inode_lookup(struct super_block *s, int ino) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ long long start = msblk->inode_lookup_table[SQUASHFS_LOOKUP_BLOCK(ino - 1)]; -+ int offset = SQUASHFS_LOOKUP_BLOCK_OFFSET(ino - 1); -+ squashfs_inode_t inode; -+ -+ TRACE("Entered squashfs_inode_lookup, inode_number = %d\n", ino); -+ -+ if (msblk->swap) { -+ squashfs_inode_t sinode; -+ -+ if (!squashfs_get_cached_block(s, &sinode, start, offset, -+ sizeof(sinode), &start, &offset)) -+ goto out; -+ SQUASHFS_SWAP_INODE_T((&inode), &sinode); -+ } else if (!squashfs_get_cached_block(s, &inode, start, offset, -+ sizeof(inode), &start, &offset)) -+ goto out; -+ -+ TRACE("squashfs_inode_lookup, inode = 0x%llx\n", inode); -+ -+ return inode; -+ -+out: -+ return SQUASHFS_INVALID_BLK; -+} -+ -+ -+ -+static struct dentry *squashfs_export_iget(struct super_block *s, -+ unsigned int inode_number) -+{ -+ squashfs_inode_t inode; -+ struct inode *i; -+ struct dentry *dentry; -+ -+ TRACE("Entered squashfs_export_iget\n"); -+ -+ inode = squashfs_inode_lookup(s, inode_number); -+ if(inode == SQUASHFS_INVALID_BLK) { -+ dentry = ERR_PTR(-ENOENT); -+ goto failure; -+ } -+ -+ i = squashfs_iget(s, inode, inode_number); -+ if(i == NULL) { -+ dentry = ERR_PTR(-EACCES); -+ goto failure; -+ } -+ -+ dentry = d_alloc_anon(i); -+ if (dentry == NULL) { -+ iput(i); -+ dentry = ERR_PTR(-ENOMEM); -+ } -+ -+failure: -+ return dentry; -+} -+ -+ -+static struct dentry *squashfs_fh_to_dentry(struct super_block *s, -+ struct fid *fid, int fh_len, int fh_type) -+{ -+ if((fh_type != FILEID_INO32_GEN && fh_type != FILEID_INO32_GEN_PARENT) || -+ fh_len < 2) -+ return NULL; -+ -+ return squashfs_export_iget(s, fid->i32.ino); -+} -+ -+ -+static struct dentry *squashfs_fh_to_parent(struct super_block *s, -+ struct fid *fid, int fh_len, int fh_type) -+{ -+ if(fh_type != FILEID_INO32_GEN_PARENT || fh_len < 4) -+ return NULL; -+ -+ return squashfs_export_iget(s, fid->i32.parent_ino); -+} -+ -+ -+static struct dentry *squashfs_get_parent(struct dentry *child) -+{ -+ struct inode *i = child->d_inode; -+ -+ TRACE("Entered squashfs_get_parent\n"); -+ -+ return squashfs_export_iget(i->i_sb, SQUASHFS_I(i)->u.s2.parent_inode); -+} -+ -+ -+SQSH_EXTERN struct inode *squashfs_iget(struct super_block *s, -+ squashfs_inode_t inode, unsigned int inode_number) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct inode *i = iget_locked(s, inode_number); -+ -+ TRACE("Entered squashfs_iget\n"); -+ -+ if(i && (i->i_state & I_NEW)) { -+ (msblk->read_inode)(i, inode); -+ unlock_new_inode(i); -+ } -+ -+ return i; -+} -+ -+ -+static int squashfs_read_inode(struct inode *i, squashfs_inode_t inode) -+{ -+ struct super_block *s = i->i_sb; -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long block = SQUASHFS_INODE_BLK(inode) + sblk->inode_table_start; -+ unsigned int offset = SQUASHFS_INODE_OFFSET(inode); -+ long long next_block; -+ unsigned int next_offset; -+ union squashfs_inode_header id, sid; -+ struct squashfs_base_inode_header *inodeb = &id.base, *sinodeb = &sid.base; -+ -+ TRACE("Entered squashfs_read_inode\n"); -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodeb, block, offset, -+ sizeof(*sinodeb), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_BASE_INODE_HEADER(inodeb, sinodeb, sizeof(*sinodeb)); -+ } else -+ if (!squashfs_get_cached_block(s, inodeb, block, offset, -+ sizeof(*inodeb), &next_block, &next_offset)) -+ goto failed_read; -+ -+ squashfs_new_inode(msblk, i, inodeb); -+ -+ switch(inodeb->inode_type) { -+ case SQUASHFS_FILE_TYPE: { -+ unsigned int frag_size; -+ long long frag_blk; -+ struct squashfs_reg_inode_header *inodep = &id.reg; -+ struct squashfs_reg_inode_header *sinodep = &sid.reg; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_REG_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ frag_blk = SQUASHFS_INVALID_BLK; -+ -+ if (inodep->fragment != SQUASHFS_INVALID_FRAG) -+ if(!get_fragment_location(s, inodep->fragment, &frag_blk, -+ &frag_size)) -+ goto failed_read; -+ -+ i->i_nlink = 1; -+ i->i_size = inodep->file_size; -+ i->i_fop = &generic_ro_fops; -+ i->i_mode |= S_IFREG; -+ i->i_blocks = ((i->i_size - 1) >> 9) + 1; -+ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; -+ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; -+ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->u.s1.block_list_start = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ i->i_data.a_ops = &squashfs_aops; -+ -+ TRACE("File inode %x:%x, start_block %llx, " -+ "block_list_start %llx, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, next_block, -+ next_offset); -+ break; -+ } -+ case SQUASHFS_LREG_TYPE: { -+ unsigned int frag_size; -+ long long frag_blk; -+ struct squashfs_lreg_inode_header *inodep = &id.lreg; -+ struct squashfs_lreg_inode_header *sinodep = &sid.lreg; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_LREG_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ frag_blk = SQUASHFS_INVALID_BLK; -+ -+ if (inodep->fragment != SQUASHFS_INVALID_FRAG) -+ if (!get_fragment_location(s, inodep->fragment, &frag_blk, -+ &frag_size)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_size = inodep->file_size; -+ i->i_fop = &generic_ro_fops; -+ i->i_mode |= S_IFREG; -+ i->i_blocks = ((i->i_size - 1) >> 9) + 1; -+ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; -+ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; -+ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->u.s1.block_list_start = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ i->i_data.a_ops = &squashfs_aops; -+ -+ TRACE("File inode %x:%x, start_block %llx, " -+ "block_list_start %llx, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, next_block, -+ next_offset); -+ break; -+ } -+ case SQUASHFS_DIR_TYPE: { -+ struct squashfs_dir_inode_header *inodep = &id.dir; -+ struct squashfs_dir_inode_header *sinodep = &sid.dir; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_DIR_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_size = inodep->file_size; -+ i->i_op = &squashfs_dir_inode_ops; -+ i->i_fop = &squashfs_dir_ops; -+ i->i_mode |= S_IFDIR; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->offset = inodep->offset; -+ SQUASHFS_I(i)->u.s2.directory_index_count = 0; -+ SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode; -+ -+ TRACE("Directory inode %x:%x, start_block %x, offset " -+ "%x\n", SQUASHFS_INODE_BLK(inode), -+ offset, inodep->start_block, -+ inodep->offset); -+ break; -+ } -+ case SQUASHFS_LDIR_TYPE: { -+ struct squashfs_ldir_inode_header *inodep = &id.ldir; -+ struct squashfs_ldir_inode_header *sinodep = &sid.ldir; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_LDIR_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_size = inodep->file_size; -+ i->i_op = &squashfs_dir_inode_ops; -+ i->i_fop = &squashfs_dir_ops; -+ i->i_mode |= S_IFDIR; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->offset = inodep->offset; -+ SQUASHFS_I(i)->u.s2.directory_index_start = next_block; -+ SQUASHFS_I(i)->u.s2.directory_index_offset = next_offset; -+ SQUASHFS_I(i)->u.s2.directory_index_count = inodep->i_count; -+ SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode; -+ -+ TRACE("Long directory inode %x:%x, start_block %x, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, inodep->offset); -+ break; -+ } -+ case SQUASHFS_SYMLINK_TYPE: { -+ struct squashfs_symlink_inode_header *inodep = &id.symlink; -+ struct squashfs_symlink_inode_header *sinodep = &sid.symlink; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_SYMLINK_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_size = inodep->symlink_size; -+ i->i_op = &page_symlink_inode_operations; -+ i->i_data.a_ops = &squashfs_symlink_aops; -+ i->i_mode |= S_IFLNK; -+ SQUASHFS_I(i)->start_block = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ -+ TRACE("Symbolic link inode %x:%x, start_block %llx, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ next_block, next_offset); -+ break; -+ } -+ case SQUASHFS_BLKDEV_TYPE: -+ case SQUASHFS_CHRDEV_TYPE: { -+ struct squashfs_dev_inode_header *inodep = &id.dev; -+ struct squashfs_dev_inode_header *sinodep = &sid.dev; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_DEV_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_mode |= (inodeb->inode_type == SQUASHFS_CHRDEV_TYPE) ? -+ S_IFCHR : S_IFBLK; -+ init_special_inode(i, i->i_mode, old_decode_dev(inodep->rdev)); -+ -+ TRACE("Device inode %x:%x, rdev %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, inodep->rdev); -+ break; -+ } -+ case SQUASHFS_FIFO_TYPE: -+ case SQUASHFS_SOCKET_TYPE: { -+ struct squashfs_ipc_inode_header *inodep = &id.ipc; -+ struct squashfs_ipc_inode_header *sinodep = &sid.ipc; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_IPC_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE) -+ ? S_IFIFO : S_IFSOCK; -+ init_special_inode(i, i->i_mode, 0); -+ break; -+ } -+ default: -+ ERROR("Unknown inode type %d in squashfs_iget!\n", -+ inodeb->inode_type); -+ goto failed_read1; -+ } -+ -+ return 1; -+ -+failed_read: -+ ERROR("Unable to read inode [%llx:%x]\n", block, offset); -+ -+failed_read1: -+ make_bad_inode(i); -+ return 0; -+} -+ -+ -+static int read_inode_lookup_table(struct super_block *s) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ unsigned int length = SQUASHFS_LOOKUP_BLOCK_BYTES(sblk->inodes); -+ -+ TRACE("In read_inode_lookup_table, length %d\n", length); -+ -+ /* Allocate inode lookup table */ -+ msblk->inode_lookup_table = kmalloc(length, GFP_KERNEL); -+ if (msblk->inode_lookup_table == NULL) { -+ ERROR("Failed to allocate inode lookup table\n"); -+ return 0; -+ } -+ -+ if (!squashfs_read_data(s, (char *) msblk->inode_lookup_table, -+ sblk->lookup_table_start, length | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, length)) { -+ ERROR("unable to read inode lookup table\n"); -+ return 0; -+ } -+ -+ if (msblk->swap) { -+ int i; -+ long long block; -+ -+ for (i = 0; i < SQUASHFS_LOOKUP_BLOCKS(sblk->inodes); i++) { -+ /* XXX */ -+ SQUASHFS_SWAP_LOOKUP_BLOCKS((&block), -+ &msblk->inode_lookup_table[i], 1); -+ msblk->inode_lookup_table[i] = block; -+ } -+ } -+ -+ return 1; -+} -+ -+ -+static int read_fragment_index_table(struct super_block *s) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ unsigned int length = SQUASHFS_FRAGMENT_INDEX_BYTES(sblk->fragments); -+ -+ if(length == 0) -+ return 1; -+ -+ /* Allocate fragment index table */ -+ msblk->fragment_index = kmalloc(length, GFP_KERNEL); -+ if (msblk->fragment_index == NULL) { -+ ERROR("Failed to allocate fragment index table\n"); -+ return 0; -+ } -+ -+ if (!squashfs_read_data(s, (char *) msblk->fragment_index, -+ sblk->fragment_table_start, length | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, length)) { -+ ERROR("unable to read fragment index table\n"); -+ return 0; -+ } -+ -+ if (msblk->swap) { -+ int i; -+ long long fragment; -+ -+ for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES(sblk->fragments); i++) { -+ /* XXX */ -+ SQUASHFS_SWAP_FRAGMENT_INDEXES((&fragment), -+ &msblk->fragment_index[i], 1); -+ msblk->fragment_index[i] = fragment; -+ } -+ } -+ -+ return 1; -+} -+ -+ -+static int supported_squashfs_filesystem(struct squashfs_sb_info *msblk, int silent) -+{ -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ msblk->read_inode = squashfs_read_inode; -+ msblk->read_blocklist = read_blocklist; -+ msblk->read_fragment_index_table = read_fragment_index_table; -+ -+ if (sblk->s_major == 1) { -+ if (!squashfs_1_0_supported(msblk)) { -+ SERROR("Major/Minor mismatch, Squashfs 1.0 filesystems " -+ "are unsupported\n"); -+ SERROR("Please recompile with Squashfs 1.0 support enabled\n"); -+ return 0; -+ } -+ } else if (sblk->s_major == 2) { -+ if (!squashfs_2_0_supported(msblk)) { -+ SERROR("Major/Minor mismatch, Squashfs 2.0 filesystems " -+ "are unsupported\n"); -+ SERROR("Please recompile with Squashfs 2.0 support enabled\n"); -+ return 0; -+ } -+ } else if(sblk->s_major != SQUASHFS_MAJOR || sblk->s_minor > -+ SQUASHFS_MINOR) { -+ SERROR("Major/Minor mismatch, trying to mount newer %d.%d " -+ "filesystem\n", sblk->s_major, sblk->s_minor); -+ SERROR("Please update your kernel\n"); -+ return 0; -+ } -+ -+ return 1; -+} -+ -+ -+static int squashfs_fill_super(struct super_block *s, void *data, int silent) -+{ -+ struct squashfs_sb_info *msblk; -+ struct squashfs_super_block *sblk; -+ char b[BDEVNAME_SIZE]; -+ struct inode *root; -+ -+ TRACE("Entered squashfs_fill_superblock\n"); -+ -+ s->s_fs_info = kzalloc(sizeof(struct squashfs_sb_info), GFP_KERNEL); -+ if (s->s_fs_info == NULL) { -+ ERROR("Failed to allocate superblock\n"); -+ goto failure; -+ } -+ msblk = s->s_fs_info; -+ -+ msblk->stream.workspace = vmalloc(zlib_inflate_workspacesize()); -+ if (msblk->stream.workspace == NULL) { -+ ERROR("Failed to allocate zlib workspace\n"); -+ goto failure; -+ } -+ sblk = &msblk->sblk; -+ -+ msblk->devblksize = sb_min_blocksize(s, BLOCK_SIZE); -+ msblk->devblksize_log2 = ffz(~msblk->devblksize); -+ -+ mutex_init(&msblk->read_data_mutex); -+ mutex_init(&msblk->read_page_mutex); -+ mutex_init(&msblk->meta_index_mutex); -+ -+ /* sblk->bytes_used is checked in squashfs_read_data to ensure reads are not -+ * beyond filesystem end. As we're using squashfs_read_data to read sblk here, -+ * first set sblk->bytes_used to a useful value */ -+ sblk->bytes_used = sizeof(struct squashfs_super_block); -+ if (!squashfs_read_data(s, (char *) sblk, SQUASHFS_START, -+ sizeof(struct squashfs_super_block) | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, sizeof(struct squashfs_super_block))) { -+ SERROR("unable to read superblock\n"); -+ goto failed_mount; -+ } -+ -+ /* Check it is a SQUASHFS superblock */ -+ if ((s->s_magic = sblk->s_magic) != SQUASHFS_MAGIC) { -+ if (sblk->s_magic == SQUASHFS_MAGIC_SWAP) { -+ struct squashfs_super_block ssblk; -+ -+ WARNING("Mounting a different endian SQUASHFS filesystem on %s\n", -+ bdevname(s->s_bdev, b)); -+ -+ SQUASHFS_SWAP_SUPER_BLOCK(&ssblk, sblk); -+ memcpy(sblk, &ssblk, sizeof(struct squashfs_super_block)); -+ msblk->swap = 1; -+ } else { -+ SERROR("Can't find a SQUASHFS superblock on %s\n", -+ bdevname(s->s_bdev, b)); -+ goto failed_mount; -+ } -+ } -+ -+ /* Check the MAJOR & MINOR versions */ -+ if(!supported_squashfs_filesystem(msblk, silent)) -+ goto failed_mount; -+ -+ /* Check the filesystem does not extend beyond the end of the -+ block device */ -+ if(sblk->bytes_used < 0 || sblk->bytes_used > i_size_read(s->s_bdev->bd_inode)) -+ goto failed_mount; -+ -+ /* Check the root inode for sanity */ -+ if (SQUASHFS_INODE_OFFSET(sblk->root_inode) > SQUASHFS_METADATA_SIZE) -+ goto failed_mount; -+ -+ TRACE("Found valid superblock on %s\n", bdevname(s->s_bdev, b)); -+ TRACE("Inodes are %scompressed\n", SQUASHFS_UNCOMPRESSED_INODES(sblk->flags) -+ ? "un" : ""); -+ TRACE("Data is %scompressed\n", SQUASHFS_UNCOMPRESSED_DATA(sblk->flags) -+ ? "un" : ""); -+ TRACE("Check data is %spresent in the filesystem\n", -+ SQUASHFS_CHECK_DATA(sblk->flags) ? "" : "not "); -+ TRACE("Filesystem size %lld bytes\n", sblk->bytes_used); -+ TRACE("Block size %d\n", sblk->block_size); -+ TRACE("Number of inodes %d\n", sblk->inodes); -+ if (sblk->s_major > 1) -+ TRACE("Number of fragments %d\n", sblk->fragments); -+ TRACE("Number of uids %d\n", sblk->no_uids); -+ TRACE("Number of gids %d\n", sblk->no_guids); -+ TRACE("sblk->inode_table_start %llx\n", sblk->inode_table_start); -+ TRACE("sblk->directory_table_start %llx\n", sblk->directory_table_start); -+ if (sblk->s_major > 1) -+ TRACE("sblk->fragment_table_start %llx\n", sblk->fragment_table_start); -+ TRACE("sblk->uid_start %llx\n", sblk->uid_start); -+ -+ s->s_maxbytes = MAX_LFS_FILESIZE; -+ s->s_flags |= MS_RDONLY; -+ s->s_op = &squashfs_super_ops; -+ -+ msblk->block_cache = squashfs_cache_init("metadata", SQUASHFS_CACHED_BLKS, -+ SQUASHFS_METADATA_SIZE, 0); -+ if (msblk->block_cache == NULL) -+ goto failed_mount; -+ -+ /* Allocate read_page block */ -+ msblk->read_page = vmalloc(sblk->block_size); -+ if (msblk->read_page == NULL) { -+ ERROR("Failed to allocate read_page block\n"); -+ goto failed_mount; -+ } -+ -+ /* Allocate uid and gid tables */ -+ msblk->uid = kmalloc((sblk->no_uids + sblk->no_guids) * -+ sizeof(unsigned int), GFP_KERNEL); -+ if (msblk->uid == NULL) { -+ ERROR("Failed to allocate uid/gid table\n"); -+ goto failed_mount; -+ } -+ msblk->guid = msblk->uid + sblk->no_uids; -+ -+ if (msblk->swap) { -+ unsigned int suid[sblk->no_uids + sblk->no_guids]; -+ -+ if (!squashfs_read_data(s, (char *) &suid, sblk->uid_start, -+ ((sblk->no_uids + sblk->no_guids) * -+ sizeof(unsigned int)) | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, (sblk->no_uids + sblk->no_guids) * sizeof(unsigned int))) { -+ ERROR("unable to read uid/gid table\n"); -+ goto failed_mount; -+ } -+ -+ SQUASHFS_SWAP_DATA(msblk->uid, suid, (sblk->no_uids + -+ sblk->no_guids), (sizeof(unsigned int) * 8)); -+ } else -+ if (!squashfs_read_data(s, (char *) msblk->uid, sblk->uid_start, -+ ((sblk->no_uids + sblk->no_guids) * -+ sizeof(unsigned int)) | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, (sblk->no_uids + sblk->no_guids) * sizeof(unsigned int))) { -+ ERROR("unable to read uid/gid table\n"); -+ goto failed_mount; -+ } -+ -+ -+ if (sblk->s_major == 1 && squashfs_1_0_supported(msblk)) -+ goto allocate_root; -+ -+ msblk->fragment_cache = squashfs_cache_init("fragment", -+ SQUASHFS_CACHED_FRAGMENTS, sblk->block_size, 1); -+ if (msblk->fragment_cache == NULL) -+ goto failed_mount; -+ -+ /* Allocate and read fragment index table */ -+ if (msblk->read_fragment_index_table(s) == 0) -+ goto failed_mount; -+ -+ if(sblk->s_major < 3 || sblk->lookup_table_start == SQUASHFS_INVALID_BLK) -+ goto allocate_root; -+ -+ /* Allocate and read inode lookup table */ -+ if (read_inode_lookup_table(s) == 0) -+ goto failed_mount; -+ -+ s->s_export_op = &squashfs_export_ops; -+ -+allocate_root: -+ root = new_inode(s); -+ if ((msblk->read_inode)(root, sblk->root_inode) == 0) -+ goto failed_mount; -+ insert_inode_hash(root); -+ -+ s->s_root = d_alloc_root(root); -+ if (s->s_root == NULL) { -+ ERROR("Root inode create failed\n"); -+ iput(root); -+ goto failed_mount; -+ } -+ -+ TRACE("Leaving squashfs_fill_super\n"); -+ return 0; -+ -+failed_mount: -+ kfree(msblk->inode_lookup_table); -+ kfree(msblk->fragment_index); -+ squashfs_cache_delete(msblk->fragment_cache); -+ kfree(msblk->uid); -+ vfree(msblk->read_page); -+ squashfs_cache_delete(msblk->block_cache); -+ kfree(msblk->fragment_index_2); -+ vfree(msblk->stream.workspace); -+ kfree(s->s_fs_info); -+ s->s_fs_info = NULL; -+ return -EINVAL; -+ -+failure: -+ return -ENOMEM; -+} -+ -+ -+static int squashfs_statfs(struct dentry *dentry, struct kstatfs *buf) -+{ -+ struct squashfs_sb_info *msblk = dentry->d_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ TRACE("Entered squashfs_statfs\n"); -+ -+ buf->f_type = SQUASHFS_MAGIC; -+ buf->f_bsize = sblk->block_size; -+ buf->f_blocks = ((sblk->bytes_used - 1) >> sblk->block_log) + 1; -+ buf->f_bfree = buf->f_bavail = 0; -+ buf->f_files = sblk->inodes; -+ buf->f_ffree = 0; -+ buf->f_namelen = SQUASHFS_NAME_LEN; -+ -+ return 0; -+} -+ -+ -+static int squashfs_symlink_readpage(struct file *file, struct page *page) -+{ -+ struct inode *inode = page->mapping->host; -+ int index = page->index << PAGE_CACHE_SHIFT, length, bytes, avail_bytes; -+ long long block = SQUASHFS_I(inode)->start_block; -+ int offset = SQUASHFS_I(inode)->offset; -+ void *pageaddr = kmap(page); -+ -+ TRACE("Entered squashfs_symlink_readpage, page index %ld, start block " -+ "%llx, offset %x\n", page->index, -+ SQUASHFS_I(inode)->start_block, -+ SQUASHFS_I(inode)->offset); -+ -+ for (length = 0; length < index; length += bytes) { -+ bytes = squashfs_get_cached_block(inode->i_sb, NULL, block, -+ offset, PAGE_CACHE_SIZE, &block, &offset); -+ if (bytes == 0) { -+ ERROR("Unable to read symbolic link [%llx:%x]\n", block, offset); -+ goto skip_read; -+ } -+ } -+ -+ if (length != index) { -+ ERROR("(squashfs_symlink_readpage) length != index\n"); -+ bytes = 0; -+ goto skip_read; -+ } -+ -+ avail_bytes = min_t(int, i_size_read(inode) - length, PAGE_CACHE_SIZE); -+ -+ bytes = squashfs_get_cached_block(inode->i_sb, pageaddr, block, offset, -+ avail_bytes, &block, &offset); -+ if (bytes == 0) -+ ERROR("Unable to read symbolic link [%llx:%x]\n", block, offset); -+ -+skip_read: -+ memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes); -+ kunmap(page); -+ flush_dcache_page(page); -+ SetPageUptodate(page); -+ unlock_page(page); -+ -+ return 0; -+} -+ -+ -+static struct meta_index *locate_meta_index(struct inode *inode, int index, int offset) -+{ -+ struct meta_index *meta = NULL; -+ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; -+ int i; -+ -+ mutex_lock(&msblk->meta_index_mutex); -+ -+ TRACE("locate_meta_index: index %d, offset %d\n", index, offset); -+ -+ if (msblk->meta_index == NULL) -+ goto not_allocated; -+ -+ for (i = 0; i < SQUASHFS_META_NUMBER; i ++) { -+ if (msblk->meta_index[i].inode_number == inode->i_ino && -+ msblk->meta_index[i].offset >= offset && -+ msblk->meta_index[i].offset <= index && -+ msblk->meta_index[i].locked == 0) { -+ TRACE("locate_meta_index: entry %d, offset %d\n", i, -+ msblk->meta_index[i].offset); -+ meta = &msblk->meta_index[i]; -+ offset = meta->offset; -+ } -+ } -+ -+ if (meta) -+ meta->locked = 1; -+ -+not_allocated: -+ mutex_unlock(&msblk->meta_index_mutex); -+ -+ return meta; -+} -+ -+ -+static struct meta_index *empty_meta_index(struct inode *inode, int offset, int skip) -+{ -+ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; -+ struct meta_index *meta = NULL; -+ int i; -+ -+ mutex_lock(&msblk->meta_index_mutex); -+ -+ TRACE("empty_meta_index: offset %d, skip %d\n", offset, skip); -+ -+ if (msblk->meta_index == NULL) { -+ msblk->meta_index = kmalloc(sizeof(struct meta_index) * -+ SQUASHFS_META_NUMBER, GFP_KERNEL); -+ if (msblk->meta_index == NULL) { -+ ERROR("Failed to allocate meta_index\n"); -+ goto failed; -+ } -+ for (i = 0; i < SQUASHFS_META_NUMBER; i++) { -+ msblk->meta_index[i].inode_number = 0; -+ msblk->meta_index[i].locked = 0; -+ } -+ msblk->next_meta_index = 0; -+ } -+ -+ for (i = SQUASHFS_META_NUMBER; i && -+ msblk->meta_index[msblk->next_meta_index].locked; i --) -+ msblk->next_meta_index = (msblk->next_meta_index + 1) % -+ SQUASHFS_META_NUMBER; -+ -+ if (i == 0) { -+ TRACE("empty_meta_index: failed!\n"); -+ goto failed; -+ } -+ -+ TRACE("empty_meta_index: returned meta entry %d, %p\n", -+ msblk->next_meta_index, -+ &msblk->meta_index[msblk->next_meta_index]); -+ -+ meta = &msblk->meta_index[msblk->next_meta_index]; -+ msblk->next_meta_index = (msblk->next_meta_index + 1) % -+ SQUASHFS_META_NUMBER; -+ -+ meta->inode_number = inode->i_ino; -+ meta->offset = offset; -+ meta->skip = skip; -+ meta->entries = 0; -+ meta->locked = 1; -+ -+failed: -+ mutex_unlock(&msblk->meta_index_mutex); -+ return meta; -+} -+ -+ -+static void release_meta_index(struct inode *inode, struct meta_index *meta) -+{ -+ meta->locked = 0; -+ smp_mb(); -+} -+ -+ -+static int read_block_index(struct super_block *s, int blocks, char *block_list, -+ long long *start_block, int *offset) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ unsigned int *block_listp; -+ int block = 0; -+ -+ if (msblk->swap) { -+ char sblock_list[blocks << 2]; -+ -+ if (!squashfs_get_cached_block(s, sblock_list, *start_block, -+ *offset, blocks << 2, start_block, offset)) { -+ ERROR("Fail reading block list [%llx:%x]\n", *start_block, *offset); -+ goto failure; -+ } -+ SQUASHFS_SWAP_INTS(((unsigned int *)block_list), -+ ((unsigned int *)sblock_list), blocks); -+ } else { -+ if (!squashfs_get_cached_block(s, block_list, *start_block, -+ *offset, blocks << 2, start_block, offset)) { -+ ERROR("Fail reading block list [%llx:%x]\n", *start_block, *offset); -+ goto failure; -+ } -+ } -+ -+ for (block_listp = (unsigned int *) block_list; blocks; -+ block_listp++, blocks --) -+ block += SQUASHFS_COMPRESSED_SIZE_BLOCK(*block_listp); -+ -+ return block; -+ -+failure: -+ return -1; -+} -+ -+ -+#define SIZE 256 -+ -+static inline int calculate_skip(int blocks) { -+ int skip = (blocks - 1) / ((SQUASHFS_SLOTS * SQUASHFS_META_ENTRIES + 1) * SQUASHFS_META_INDEXES); -+ return skip >= 7 ? 7 : skip + 1; -+} -+ -+ -+static int get_meta_index(struct inode *inode, int index, -+ long long *index_block, int *index_offset, -+ long long *data_block, char *block_list) -+{ -+ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int skip = calculate_skip(i_size_read(inode) >> sblk->block_log); -+ int offset = 0; -+ struct meta_index *meta; -+ struct meta_entry *meta_entry; -+ long long cur_index_block = SQUASHFS_I(inode)->u.s1.block_list_start; -+ int cur_offset = SQUASHFS_I(inode)->offset; -+ long long cur_data_block = SQUASHFS_I(inode)->start_block; -+ int i; -+ -+ index /= SQUASHFS_META_INDEXES * skip; -+ -+ while (offset < index) { -+ meta = locate_meta_index(inode, index, offset + 1); -+ -+ if (meta == NULL) { -+ meta = empty_meta_index(inode, offset + 1, skip); -+ if (meta == NULL) -+ goto all_done; -+ } else { -+ if(meta->entries == 0) -+ goto failed; -+ /* XXX */ -+ offset = index < meta->offset + meta->entries ? index : -+ meta->offset + meta->entries - 1; -+ /* XXX */ -+ meta_entry = &meta->meta_entry[offset - meta->offset]; -+ cur_index_block = meta_entry->index_block + sblk->inode_table_start; -+ cur_offset = meta_entry->offset; -+ cur_data_block = meta_entry->data_block; -+ TRACE("get_meta_index: offset %d, meta->offset %d, " -+ "meta->entries %d\n", offset, meta->offset, meta->entries); -+ TRACE("get_meta_index: index_block 0x%llx, offset 0x%x" -+ " data_block 0x%llx\n", cur_index_block, -+ cur_offset, cur_data_block); -+ } -+ -+ for (i = meta->offset + meta->entries; i <= index && -+ i < meta->offset + SQUASHFS_META_ENTRIES; i++) { -+ int blocks = skip * SQUASHFS_META_INDEXES; -+ -+ while (blocks) { -+ int block = blocks > (SIZE >> 2) ? (SIZE >> 2) : blocks; -+ int res = read_block_index(inode->i_sb, block, block_list, -+ &cur_index_block, &cur_offset); -+ -+ if (res == -1) -+ goto failed; -+ -+ cur_data_block += res; -+ blocks -= block; -+ } -+ -+ meta_entry = &meta->meta_entry[i - meta->offset]; -+ meta_entry->index_block = cur_index_block - sblk->inode_table_start; -+ meta_entry->offset = cur_offset; -+ meta_entry->data_block = cur_data_block; -+ meta->entries ++; -+ offset ++; -+ } -+ -+ TRACE("get_meta_index: meta->offset %d, meta->entries %d\n", -+ meta->offset, meta->entries); -+ -+ release_meta_index(inode, meta); -+ } -+ -+all_done: -+ *index_block = cur_index_block; -+ *index_offset = cur_offset; -+ *data_block = cur_data_block; -+ -+ return offset * SQUASHFS_META_INDEXES * skip; -+ -+failed: -+ release_meta_index(inode, meta); -+ return -1; -+} -+ -+ -+static long long read_blocklist(struct inode *inode, int index, -+ int readahead_blks, char *block_list, -+ unsigned short **block_p, unsigned int *bsize) -+{ -+ long long block_ptr; -+ int offset; -+ long long block; -+ int res = get_meta_index(inode, index, &block_ptr, &offset, &block, -+ block_list); -+ -+ TRACE("read_blocklist: res %d, index %d, block_ptr 0x%llx, offset" -+ " 0x%x, block 0x%llx\n", res, index, block_ptr, offset, block); -+ -+ if(res == -1) -+ goto failure; -+ -+ index -= res; -+ -+ while (index) { -+ int blocks = index > (SIZE >> 2) ? (SIZE >> 2) : index; -+ int res = read_block_index(inode->i_sb, blocks, block_list, -+ &block_ptr, &offset); -+ if (res == -1) -+ goto failure; -+ block += res; -+ index -= blocks; -+ } -+ -+ if (read_block_index(inode->i_sb, 1, block_list, &block_ptr, &offset) == -1) -+ goto failure; -+ *bsize = *((unsigned int *) block_list); -+ -+ return block; -+ -+failure: -+ return 0; -+} -+ -+ -+static int squashfs_readpage(struct file *file, struct page *page) -+{ -+ struct inode *inode = page->mapping->host; -+ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ unsigned char *block_list = NULL; -+ long long block; -+ unsigned int bsize, i; -+ int bytes; -+ int index = page->index >> (sblk->block_log - PAGE_CACHE_SHIFT); -+ void *pageaddr; -+ struct squashfs_cache_entry *fragment = NULL; -+ char *data_ptr = msblk->read_page; -+ -+ int mask = (1 << (sblk->block_log - PAGE_CACHE_SHIFT)) - 1; -+ int start_index = page->index & ~mask; -+ int end_index = start_index | mask; -+ int file_end = i_size_read(inode) >> sblk->block_log; -+ int sparse = 0; -+ -+ TRACE("Entered squashfs_readpage, page index %lx, start block %llx\n", -+ page->index, SQUASHFS_I(inode)->start_block); -+ -+ if (page->index >= ((i_size_read(inode) + PAGE_CACHE_SIZE - 1) >> -+ PAGE_CACHE_SHIFT)) -+ goto out; -+ -+ if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK -+ || index < file_end) { -+ block_list = kmalloc(SIZE, GFP_KERNEL); -+ if (block_list == NULL) { -+ ERROR("Failed to allocate block_list\n"); -+ goto error_out; -+ } -+ -+ block = (msblk->read_blocklist)(inode, index, 1, block_list, NULL, &bsize); -+ if (block == 0) -+ goto error_out; -+ -+ if (bsize == 0) { /* hole */ -+ bytes = index == file_end ? -+ (i_size_read(inode) & (sblk->block_size - 1)) : sblk->block_size; -+ sparse = 1; -+ } else { -+ mutex_lock(&msblk->read_page_mutex); -+ -+ bytes = squashfs_read_data(inode->i_sb, msblk->read_page, block, -+ bsize, NULL, sblk->block_size); -+ -+ if (bytes == 0) { -+ ERROR("Unable to read page, block %llx, size %x\n", block, bsize); -+ mutex_unlock(&msblk->read_page_mutex); -+ goto error_out; -+ } -+ } -+ } else { -+ fragment = get_cached_fragment(inode->i_sb, -+ SQUASHFS_I(inode)-> u.s1.fragment_start_block, -+ SQUASHFS_I(inode)->u.s1.fragment_size); -+ -+ if (fragment->error) { -+ ERROR("Unable to read page, block %llx, size %x\n", -+ SQUASHFS_I(inode)->u.s1.fragment_start_block, -+ (int) SQUASHFS_I(inode)->u.s1.fragment_size); -+ release_cached_fragment(msblk, fragment); -+ goto error_out; -+ } -+ bytes = i_size_read(inode) & (sblk->block_size - 1); -+ data_ptr = fragment->data + SQUASHFS_I(inode)->u.s1.fragment_offset; -+ } -+ -+ for (i = start_index; i <= end_index && bytes > 0; i++, -+ bytes -= PAGE_CACHE_SIZE, data_ptr += PAGE_CACHE_SIZE) { -+ struct page *push_page; -+ int avail = sparse ? 0 : min_t(unsigned int, bytes, PAGE_CACHE_SIZE); -+ -+ TRACE("bytes %d, i %d, available_bytes %d\n", bytes, i, avail); -+ -+ push_page = (i == page->index) ? page : -+ grab_cache_page_nowait(page->mapping, i); -+ -+ if (!push_page) -+ continue; -+ -+ if (PageUptodate(push_page)) -+ goto skip_page; -+ -+ pageaddr = kmap_atomic(push_page, KM_USER0); -+ memcpy(pageaddr, data_ptr, avail); -+ memset(pageaddr + avail, 0, PAGE_CACHE_SIZE - avail); -+ kunmap_atomic(pageaddr, KM_USER0); -+ flush_dcache_page(push_page); -+ SetPageUptodate(push_page); -+skip_page: -+ unlock_page(push_page); -+ if(i != page->index) -+ page_cache_release(push_page); -+ } -+ -+ if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK -+ || index < file_end) { -+ if (!sparse) -+ mutex_unlock(&msblk->read_page_mutex); -+ kfree(block_list); -+ } else -+ release_cached_fragment(msblk, fragment); -+ -+ return 0; -+ -+error_out: -+ SetPageError(page); -+out: -+ pageaddr = kmap_atomic(page, KM_USER0); -+ memset(pageaddr, 0, PAGE_CACHE_SIZE); -+ kunmap_atomic(pageaddr, KM_USER0); -+ flush_dcache_page(page); -+ if (!PageError(page)) -+ SetPageUptodate(page); -+ unlock_page(page); -+ -+ kfree(block_list); -+ return 0; -+} -+ -+ -+static int get_dir_index_using_offset(struct super_block *s, -+ long long *next_block, unsigned int *next_offset, -+ long long index_start, unsigned int index_offset, int i_count, -+ long long f_pos) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int i, length = 0; -+ struct squashfs_dir_index index; -+ -+ TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n", -+ i_count, (unsigned int) f_pos); -+ -+ f_pos -= 3; -+ if (f_pos == 0) -+ goto finish; -+ -+ for (i = 0; i < i_count; i++) { -+ if (msblk->swap) { -+ struct squashfs_dir_index sindex; -+ squashfs_get_cached_block(s, &sindex, index_start, index_offset, -+ sizeof(sindex), &index_start, &index_offset); -+ SQUASHFS_SWAP_DIR_INDEX(&index, &sindex); -+ } else -+ squashfs_get_cached_block(s, &index, index_start, index_offset, -+ sizeof(index), &index_start, &index_offset); -+ -+ if (index.index > f_pos) -+ break; -+ -+ squashfs_get_cached_block(s, NULL, index_start, index_offset, -+ index.size + 1, &index_start, &index_offset); -+ -+ length = index.index; -+ *next_block = index.start_block + sblk->directory_table_start; -+ } -+ -+ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; -+ -+finish: -+ return length + 3; -+} -+ -+ -+static int get_dir_index_using_name(struct super_block *s, -+ long long *next_block, unsigned int *next_offset, -+ long long index_start, unsigned int index_offset, int i_count, -+ const char *name, int size) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int i, length = 0; -+ struct squashfs_dir_index *index; -+ char *str; -+ -+ TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count); -+ -+ str = kmalloc(sizeof(struct squashfs_dir_index) + -+ (SQUASHFS_NAME_LEN + 1) * 2, GFP_KERNEL); -+ if (str == NULL) { -+ ERROR("Failed to allocate squashfs_dir_index\n"); -+ goto failure; -+ } -+ -+ index = (struct squashfs_dir_index *) (str + SQUASHFS_NAME_LEN + 1); -+ strncpy(str, name, size); -+ str[size] = '\0'; -+ -+ for (i = 0; i < i_count; i++) { -+ if (msblk->swap) { -+ struct squashfs_dir_index sindex; -+ squashfs_get_cached_block(s, &sindex, index_start, index_offset, -+ sizeof(sindex), &index_start, &index_offset); -+ SQUASHFS_SWAP_DIR_INDEX(index, &sindex); -+ } else -+ squashfs_get_cached_block(s, index, index_start, index_offset, -+ sizeof(struct squashfs_dir_index), &index_start, &index_offset); -+ -+ squashfs_get_cached_block(s, index->name, index_start, index_offset, -+ index->size + 1, &index_start, &index_offset); -+ -+ index->name[index->size + 1] = '\0'; -+ -+ if (strcmp(index->name, str) > 0) -+ break; -+ -+ length = index->index; -+ *next_block = index->start_block + sblk->directory_table_start; -+ } -+ -+ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; -+ kfree(str); -+ -+failure: -+ return length + 3; -+} -+ -+ -+static int squashfs_readdir(struct file *file, void *dirent, filldir_t filldir) -+{ -+ struct inode *i = file->f_dentry->d_inode; -+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long next_block = SQUASHFS_I(i)->start_block + -+ sblk->directory_table_start; -+ int next_offset = SQUASHFS_I(i)->offset, length = 0, dir_count; -+ struct squashfs_dir_header dirh; -+ struct squashfs_dir_entry *dire; -+ -+ TRACE("Entered squashfs_readdir [%llx:%x]\n", next_block, next_offset); -+ -+ dire = kmalloc(sizeof(struct squashfs_dir_entry) + -+ SQUASHFS_NAME_LEN + 1, GFP_KERNEL); -+ if (dire == NULL) { -+ ERROR("Failed to allocate squashfs_dir_entry\n"); -+ goto finish; -+ } -+ -+ while(file->f_pos < 3) { -+ char *name; -+ int size, i_ino; -+ -+ if(file->f_pos == 0) { -+ name = "."; -+ size = 1; -+ i_ino = i->i_ino; -+ } else { -+ name = ".."; -+ size = 2; -+ i_ino = SQUASHFS_I(i)->u.s2.parent_inode; -+ } -+ TRACE("Calling filldir(%x, %s, %d, %d, %d, %d)\n", -+ (unsigned int) dirent, name, size, (int) -+ file->f_pos, i_ino, squashfs_filetype_table[1]); -+ -+ if (filldir(dirent, name, size, file->f_pos, i_ino, -+ squashfs_filetype_table[1]) < 0) { -+ TRACE("Filldir returned less than 0\n"); -+ goto finish; -+ } -+ file->f_pos += size; -+ } -+ -+ length = get_dir_index_using_offset(i->i_sb, &next_block, &next_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_start, -+ SQUASHFS_I(i)->u.s2.directory_index_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_count, file->f_pos); -+ -+ while (length < i_size_read(i)) { -+ /* read directory header */ -+ if (msblk->swap) { -+ struct squashfs_dir_header sdirh; -+ -+ if (!squashfs_get_cached_block(i->i_sb, &sdirh, next_block, -+ next_offset, sizeof(sdirh), &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdirh); -+ SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, &dirh, next_block, -+ next_offset, sizeof(dirh), &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(dirh); -+ } -+ -+ dir_count = dirh.count + 1; -+ while (dir_count--) { -+ if (msblk->swap) { -+ struct squashfs_dir_entry sdire; -+ if (!squashfs_get_cached_block(i->i_sb, &sdire, next_block, -+ next_offset, sizeof(sdire), &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdire); -+ SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, dire, next_block, -+ next_offset, sizeof(*dire), &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(*dire); -+ } -+ -+ if (!squashfs_get_cached_block(i->i_sb, dire->name, next_block, -+ next_offset, dire->size + 1, &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += dire->size + 1; -+ -+ if (file->f_pos >= length) -+ continue; -+ -+ dire->name[dire->size + 1] = '\0'; -+ -+ TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d, %d)\n", -+ (unsigned int) dirent, dire->name, dire->size + 1, -+ (int) file->f_pos, dirh.start_block, dire->offset, -+ dirh.inode_number + dire->inode_number, -+ squashfs_filetype_table[dire->type]); -+ -+ if (filldir(dirent, dire->name, dire->size + 1, file->f_pos, -+ dirh.inode_number + dire->inode_number, -+ squashfs_filetype_table[dire->type]) < 0) { -+ TRACE("Filldir returned less than 0\n"); -+ goto finish; -+ } -+ file->f_pos = length; -+ } -+ } -+ -+finish: -+ kfree(dire); -+ return 0; -+ -+failed_read: -+ ERROR("Unable to read directory block [%llx:%x]\n", next_block, -+ next_offset); -+ kfree(dire); -+ return 0; -+} -+ -+ -+static struct dentry *squashfs_lookup(struct inode *i, struct dentry *dentry, -+ struct nameidata *nd) -+{ -+ const unsigned char *name = dentry->d_name.name; -+ int len = dentry->d_name.len; -+ struct inode *inode = NULL; -+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long next_block = SQUASHFS_I(i)->start_block + -+ sblk->directory_table_start; -+ int next_offset = SQUASHFS_I(i)->offset, length = 0, dir_count; -+ struct squashfs_dir_header dirh; -+ struct squashfs_dir_entry *dire; -+ -+ TRACE("Entered squashfs_lookup [%llx:%x]\n", next_block, next_offset); -+ -+ dire = kmalloc(sizeof(struct squashfs_dir_entry) + -+ SQUASHFS_NAME_LEN + 1, GFP_KERNEL); -+ if (dire == NULL) { -+ ERROR("Failed to allocate squashfs_dir_entry\n"); -+ goto exit_lookup; -+ } -+ -+ if (len > SQUASHFS_NAME_LEN) -+ goto exit_lookup; -+ -+ length = get_dir_index_using_name(i->i_sb, &next_block, &next_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_start, -+ SQUASHFS_I(i)->u.s2.directory_index_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_count, name, len); -+ -+ while (length < i_size_read(i)) { -+ /* read directory header */ -+ if (msblk->swap) { -+ struct squashfs_dir_header sdirh; -+ if (!squashfs_get_cached_block(i->i_sb, &sdirh, next_block, -+ next_offset, sizeof(sdirh), &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdirh); -+ SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, &dirh, next_block, -+ next_offset, sizeof(dirh), &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(dirh); -+ } -+ -+ dir_count = dirh.count + 1; -+ while (dir_count--) { -+ if (msblk->swap) { -+ struct squashfs_dir_entry sdire; -+ if (!squashfs_get_cached_block(i->i_sb, &sdire, next_block, -+ next_offset, sizeof(sdire), &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdire); -+ SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, dire, next_block, -+ next_offset, sizeof(*dire), &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(*dire); -+ } -+ -+ if (!squashfs_get_cached_block(i->i_sb, dire->name, next_block, -+ next_offset, dire->size + 1, &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += dire->size + 1; -+ -+ if (name[0] < dire->name[0]) -+ goto exit_lookup; -+ -+ if ((len == dire->size + 1) && !strncmp(name, dire->name, len)) { -+ squashfs_inode_t ino = SQUASHFS_MKINODE(dirh.start_block, -+ dire->offset); -+ -+ TRACE("calling squashfs_iget for directory entry %s, inode" -+ " %x:%x, %d\n", name, dirh.start_block, dire->offset, -+ dirh.inode_number + dire->inode_number); -+ -+ inode = squashfs_iget(i->i_sb, ino, dirh.inode_number + dire->inode_number); -+ -+ goto exit_lookup; -+ } -+ } -+ } -+ -+exit_lookup: -+ kfree(dire); -+ if (inode) -+ return d_splice_alias(inode, dentry); -+ d_add(dentry, inode); -+ return ERR_PTR(0); -+ -+failed_read: -+ ERROR("Unable to read directory block [%llx:%x]\n", next_block, -+ next_offset); -+ goto exit_lookup; -+} -+ -+ -+static int squashfs_remount(struct super_block *s, int *flags, char *data) -+{ -+ *flags |= MS_RDONLY; -+ return 0; -+} -+ -+ -+static void squashfs_put_super(struct super_block *s) -+{ -+ if (s->s_fs_info) { -+ struct squashfs_sb_info *sbi = s->s_fs_info; -+ squashfs_cache_delete(sbi->block_cache); -+ squashfs_cache_delete(sbi->fragment_cache); -+ vfree(sbi->read_page); -+ kfree(sbi->uid); -+ kfree(sbi->fragment_index); -+ kfree(sbi->fragment_index_2); -+ kfree(sbi->meta_index); -+ vfree(sbi->stream.workspace); -+ kfree(s->s_fs_info); -+ s->s_fs_info = NULL; -+ } -+} -+ -+ -+static int squashfs_get_sb(struct file_system_type *fs_type, int flags, -+ const char *dev_name, void *data, struct vfsmount *mnt) -+{ -+ return get_sb_bdev(fs_type, flags, dev_name, data, squashfs_fill_super, -+ mnt); -+} -+ -+ -+static int __init init_squashfs_fs(void) -+{ -+ int err = init_inodecache(); -+ if (err) -+ goto out; -+ -+ printk(KERN_INFO "squashfs: version 3.4 (2008/08/26) " -+ "Phillip Lougher\n"); -+ -+ err = register_filesystem(&squashfs_fs_type); -+ if (err) -+ destroy_inodecache(); -+ -+out: -+ return err; -+} -+ -+ -+static void __exit exit_squashfs_fs(void) -+{ -+ unregister_filesystem(&squashfs_fs_type); -+ destroy_inodecache(); -+} -+ -+ -+static struct kmem_cache * squashfs_inode_cachep; -+ -+ -+static struct inode *squashfs_alloc_inode(struct super_block *sb) -+{ -+ struct squashfs_inode_info *ei; -+ ei = kmem_cache_alloc(squashfs_inode_cachep, GFP_KERNEL); -+ return ei ? &ei->vfs_inode : NULL; -+} -+ -+ -+static void squashfs_destroy_inode(struct inode *inode) -+{ -+ kmem_cache_free(squashfs_inode_cachep, SQUASHFS_I(inode)); -+} -+ -+ -+static void init_once(void *foo) -+{ -+ struct squashfs_inode_info *ei = foo; -+ -+ inode_init_once(&ei->vfs_inode); -+} -+ -+ -+static int __init init_inodecache(void) -+{ -+ squashfs_inode_cachep = kmem_cache_create("squashfs_inode_cache", -+ sizeof(struct squashfs_inode_info), 0, -+ SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once); -+ if (squashfs_inode_cachep == NULL) -+ return -ENOMEM; -+ return 0; -+} -+ -+ -+static void destroy_inodecache(void) -+{ -+ kmem_cache_destroy(squashfs_inode_cachep); -+} -+ -+ -+module_init(init_squashfs_fs); -+module_exit(exit_squashfs_fs); -+MODULE_DESCRIPTION("squashfs 3.4, a compressed read-only filesystem"); -+MODULE_AUTHOR("Phillip Lougher "); -+MODULE_LICENSE("GPL"); -diff -x .gitignore -Nurp linux-2.6.27-rc4/fs/squashfs/Makefile linux-2.6.27-rc4-squashfs3.4/fs/squashfs/Makefile ---- linux-2.6.27-rc4/fs/squashfs/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.27-rc4-squashfs3.4/fs/squashfs/Makefile 2008-08-19 18:31:56.000000000 +0100 -@@ -0,0 +1,7 @@ -+# -+# Makefile for the linux squashfs routines. -+# -+ -+obj-$(CONFIG_SQUASHFS) += squashfs.o -+squashfs-y += inode.o -+squashfs-y += squashfs2_0.o -diff -x .gitignore -Nurp linux-2.6.27-rc4/fs/squashfs/squashfs2_0.c linux-2.6.27-rc4-squashfs3.4/fs/squashfs/squashfs2_0.c ---- linux-2.6.27-rc4/fs/squashfs/squashfs2_0.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.27-rc4-squashfs3.4/fs/squashfs/squashfs2_0.c 2008-08-19 18:31:56.000000000 +0100 -@@ -0,0 +1,740 @@ -+/* -+ * Squashfs - a compressed read only filesystem for Linux -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs2_0.c -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "squashfs.h" -+static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir); -+static struct dentry *squashfs_lookup_2(struct inode *, struct dentry *, -+ struct nameidata *); -+ -+static struct file_operations squashfs_dir_ops_2 = { -+ .read = generic_read_dir, -+ .readdir = squashfs_readdir_2 -+}; -+ -+static struct inode_operations squashfs_dir_inode_ops_2 = { -+ .lookup = squashfs_lookup_2 -+}; -+ -+static unsigned char squashfs_filetype_table[] = { -+ DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK -+}; -+ -+static int read_fragment_index_table_2(struct super_block *s) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ if (!(msblk->fragment_index_2 = kmalloc(SQUASHFS_FRAGMENT_INDEX_BYTES_2 -+ (sblk->fragments), GFP_KERNEL))) { -+ ERROR("Failed to allocate uid/gid table\n"); -+ return 0; -+ } -+ -+ if (SQUASHFS_FRAGMENT_INDEX_BYTES_2(sblk->fragments) && -+ !squashfs_read_data(s, (char *) -+ msblk->fragment_index_2, -+ sblk->fragment_table_start, -+ SQUASHFS_FRAGMENT_INDEX_BYTES_2 -+ (sblk->fragments) | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, SQUASHFS_FRAGMENT_INDEX_BYTES_2(sblk->fragments))) { -+ ERROR("unable to read fragment index table\n"); -+ return 0; -+ } -+ -+ if (msblk->swap) { -+ int i; -+ unsigned int fragment; -+ -+ for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES_2(sblk->fragments); -+ i++) { -+ SQUASHFS_SWAP_FRAGMENT_INDEXES_2((&fragment), -+ &msblk->fragment_index_2[i], 1); -+ msblk->fragment_index_2[i] = fragment; -+ } -+ } -+ -+ return 1; -+} -+ -+ -+static int get_fragment_location_2(struct super_block *s, unsigned int fragment, -+ long long *fragment_start_block, -+ unsigned int *fragment_size) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ long long start_block = -+ msblk->fragment_index_2[SQUASHFS_FRAGMENT_INDEX_2(fragment)]; -+ int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET_2(fragment); -+ struct squashfs_fragment_entry_2 fragment_entry; -+ -+ if (msblk->swap) { -+ struct squashfs_fragment_entry_2 sfragment_entry; -+ -+ if (!squashfs_get_cached_block(s, (char *) &sfragment_entry, -+ start_block, offset, -+ sizeof(sfragment_entry), &start_block, -+ &offset)) -+ goto out; -+ SQUASHFS_SWAP_FRAGMENT_ENTRY_2(&fragment_entry, &sfragment_entry); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) &fragment_entry, -+ start_block, offset, -+ sizeof(fragment_entry), &start_block, -+ &offset)) -+ goto out; -+ -+ *fragment_start_block = fragment_entry.start_block; -+ *fragment_size = fragment_entry.size; -+ -+ return 1; -+ -+out: -+ return 0; -+} -+ -+ -+static void squashfs_new_inode(struct squashfs_sb_info *msblk, struct inode *i, -+ struct squashfs_base_inode_header_2 *inodeb, unsigned int ino) -+{ -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ i->i_ino = ino; -+ i->i_mtime.tv_sec = sblk->mkfs_time; -+ i->i_atime.tv_sec = sblk->mkfs_time; -+ i->i_ctime.tv_sec = sblk->mkfs_time; -+ i->i_uid = msblk->uid[inodeb->uid]; -+ i->i_mode = inodeb->mode; -+ i->i_nlink = 1; -+ i->i_size = 0; -+ if (inodeb->guid == SQUASHFS_GUIDS) -+ i->i_gid = i->i_uid; -+ else -+ i->i_gid = msblk->guid[inodeb->guid]; -+} -+ -+ -+static int squashfs_read_inode_2(struct inode *i, squashfs_inode_t inode) -+{ -+ struct super_block *s = i->i_sb; -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ unsigned int block = SQUASHFS_INODE_BLK(inode) + -+ sblk->inode_table_start; -+ unsigned int offset = SQUASHFS_INODE_OFFSET(inode); -+ unsigned int ino = SQUASHFS_MK_VFS_INODE(block - -+ sblk->inode_table_start, offset); -+ long long next_block; -+ unsigned int next_offset; -+ union squashfs_inode_header_2 id, sid; -+ struct squashfs_base_inode_header_2 *inodeb = &id.base, -+ *sinodeb = &sid.base; -+ -+ TRACE("Entered squashfs_read_inode_2\n"); -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) sinodeb, block, -+ offset, sizeof(*sinodeb), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_BASE_INODE_HEADER_2(inodeb, sinodeb, -+ sizeof(*sinodeb)); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) inodeb, block, -+ offset, sizeof(*inodeb), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ squashfs_new_inode(msblk, i, inodeb, ino); -+ -+ switch(inodeb->inode_type) { -+ case SQUASHFS_FILE_TYPE: { -+ struct squashfs_reg_inode_header_2 *inodep = &id.reg; -+ struct squashfs_reg_inode_header_2 *sinodep = &sid.reg; -+ long long frag_blk; -+ unsigned int frag_size = 0; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_REG_INODE_HEADER_2(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ frag_blk = SQUASHFS_INVALID_BLK; -+ if (inodep->fragment != SQUASHFS_INVALID_FRAG && -+ !get_fragment_location_2(s, -+ inodep->fragment, &frag_blk, &frag_size)) -+ goto failed_read; -+ -+ i->i_size = inodep->file_size; -+ i->i_fop = &generic_ro_fops; -+ i->i_mode |= S_IFREG; -+ i->i_mtime.tv_sec = inodep->mtime; -+ i->i_atime.tv_sec = inodep->mtime; -+ i->i_ctime.tv_sec = inodep->mtime; -+ i->i_blocks = ((i->i_size - 1) >> 9) + 1; -+ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; -+ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; -+ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->u.s1.block_list_start = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ i->i_data.a_ops = &squashfs_aops; -+ -+ TRACE("File inode %x:%x, start_block %x, " -+ "block_list_start %llx, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, next_block, -+ next_offset); -+ break; -+ } -+ case SQUASHFS_DIR_TYPE: { -+ struct squashfs_dir_inode_header_2 *inodep = &id.dir; -+ struct squashfs_dir_inode_header_2 *sinodep = &sid.dir; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_DIR_INODE_HEADER_2(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ i->i_size = inodep->file_size; -+ i->i_op = &squashfs_dir_inode_ops_2; -+ i->i_fop = &squashfs_dir_ops_2; -+ i->i_mode |= S_IFDIR; -+ i->i_mtime.tv_sec = inodep->mtime; -+ i->i_atime.tv_sec = inodep->mtime; -+ i->i_ctime.tv_sec = inodep->mtime; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->offset = inodep->offset; -+ SQUASHFS_I(i)->u.s2.directory_index_count = 0; -+ SQUASHFS_I(i)->u.s2.parent_inode = 0; -+ -+ TRACE("Directory inode %x:%x, start_block %x, offset " -+ "%x\n", SQUASHFS_INODE_BLK(inode), -+ offset, inodep->start_block, -+ inodep->offset); -+ break; -+ } -+ case SQUASHFS_LDIR_TYPE: { -+ struct squashfs_ldir_inode_header_2 *inodep = &id.ldir; -+ struct squashfs_ldir_inode_header_2 *sinodep = &sid.ldir; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_LDIR_INODE_HEADER_2(inodep, -+ sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ i->i_size = inodep->file_size; -+ i->i_op = &squashfs_dir_inode_ops_2; -+ i->i_fop = &squashfs_dir_ops_2; -+ i->i_mode |= S_IFDIR; -+ i->i_mtime.tv_sec = inodep->mtime; -+ i->i_atime.tv_sec = inodep->mtime; -+ i->i_ctime.tv_sec = inodep->mtime; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->offset = inodep->offset; -+ SQUASHFS_I(i)->u.s2.directory_index_start = next_block; -+ SQUASHFS_I(i)->u.s2.directory_index_offset = -+ next_offset; -+ SQUASHFS_I(i)->u.s2.directory_index_count = -+ inodep->i_count; -+ SQUASHFS_I(i)->u.s2.parent_inode = 0; -+ -+ TRACE("Long directory inode %x:%x, start_block %x, " -+ "offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, inodep->offset); -+ break; -+ } -+ case SQUASHFS_SYMLINK_TYPE: { -+ struct squashfs_symlink_inode_header_2 *inodep = -+ &id.symlink; -+ struct squashfs_symlink_inode_header_2 *sinodep = -+ &sid.symlink; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(inodep, -+ sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ i->i_size = inodep->symlink_size; -+ i->i_op = &page_symlink_inode_operations; -+ i->i_data.a_ops = &squashfs_symlink_aops; -+ i->i_mode |= S_IFLNK; -+ SQUASHFS_I(i)->start_block = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ -+ TRACE("Symbolic link inode %x:%x, start_block %llx, " -+ "offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ next_block, next_offset); -+ break; -+ } -+ case SQUASHFS_BLKDEV_TYPE: -+ case SQUASHFS_CHRDEV_TYPE: { -+ struct squashfs_dev_inode_header_2 *inodep = &id.dev; -+ struct squashfs_dev_inode_header_2 *sinodep = &sid.dev; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_DEV_INODE_HEADER_2(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ i->i_mode |= (inodeb->inode_type == -+ SQUASHFS_CHRDEV_TYPE) ? S_IFCHR : -+ S_IFBLK; -+ init_special_inode(i, i->i_mode, -+ old_decode_dev(inodep->rdev)); -+ -+ TRACE("Device inode %x:%x, rdev %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->rdev); -+ break; -+ } -+ case SQUASHFS_FIFO_TYPE: -+ case SQUASHFS_SOCKET_TYPE: { -+ -+ i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE) -+ ? S_IFIFO : S_IFSOCK; -+ init_special_inode(i, i->i_mode, 0); -+ break; -+ } -+ default: -+ ERROR("Unknown inode type %d in squashfs_iget!\n", -+ inodeb->inode_type); -+ goto failed_read1; -+ } -+ -+ return 1; -+ -+failed_read: -+ ERROR("Unable to read inode [%x:%x]\n", block, offset); -+ -+failed_read1: -+ return 0; -+} -+ -+ -+static int get_dir_index_using_offset(struct super_block *s, long long -+ *next_block, unsigned int *next_offset, -+ long long index_start, -+ unsigned int index_offset, int i_count, -+ long long f_pos) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int i, length = 0; -+ struct squashfs_dir_index_2 index; -+ -+ TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n", -+ i_count, (unsigned int) f_pos); -+ -+ if (f_pos == 0) -+ goto finish; -+ -+ for (i = 0; i < i_count; i++) { -+ if (msblk->swap) { -+ struct squashfs_dir_index_2 sindex; -+ squashfs_get_cached_block(s, (char *) &sindex, -+ index_start, index_offset, -+ sizeof(sindex), &index_start, -+ &index_offset); -+ SQUASHFS_SWAP_DIR_INDEX_2(&index, &sindex); -+ } else -+ squashfs_get_cached_block(s, (char *) &index, -+ index_start, index_offset, -+ sizeof(index), &index_start, -+ &index_offset); -+ -+ if (index.index > f_pos) -+ break; -+ -+ squashfs_get_cached_block(s, NULL, index_start, index_offset, -+ index.size + 1, &index_start, -+ &index_offset); -+ -+ length = index.index; -+ *next_block = index.start_block + sblk->directory_table_start; -+ } -+ -+ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; -+ -+finish: -+ return length; -+} -+ -+ -+static int get_dir_index_using_name(struct super_block *s, long long -+ *next_block, unsigned int *next_offset, -+ long long index_start, -+ unsigned int index_offset, int i_count, -+ const char *name, int size) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int i, length = 0; -+ struct squashfs_dir_index_2 *index; -+ char *str; -+ -+ TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count); -+ -+ if (!(str = kmalloc(sizeof(struct squashfs_dir_index) + -+ (SQUASHFS_NAME_LEN + 1) * 2, GFP_KERNEL))) { -+ ERROR("Failed to allocate squashfs_dir_index\n"); -+ goto failure; -+ } -+ -+ index = (struct squashfs_dir_index_2 *) (str + SQUASHFS_NAME_LEN + 1); -+ strncpy(str, name, size); -+ str[size] = '\0'; -+ -+ for (i = 0; i < i_count; i++) { -+ if (msblk->swap) { -+ struct squashfs_dir_index_2 sindex; -+ squashfs_get_cached_block(s, (char *) &sindex, -+ index_start, index_offset, -+ sizeof(sindex), &index_start, -+ &index_offset); -+ SQUASHFS_SWAP_DIR_INDEX_2(index, &sindex); -+ } else -+ squashfs_get_cached_block(s, (char *) index, -+ index_start, index_offset, -+ sizeof(struct squashfs_dir_index_2), -+ &index_start, &index_offset); -+ -+ squashfs_get_cached_block(s, index->name, index_start, -+ index_offset, index->size + 1, -+ &index_start, &index_offset); -+ -+ index->name[index->size + 1] = '\0'; -+ -+ if (strcmp(index->name, str) > 0) -+ break; -+ -+ length = index->index; -+ *next_block = index->start_block + sblk->directory_table_start; -+ } -+ -+ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; -+ kfree(str); -+failure: -+ return length; -+} -+ -+ -+static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir) -+{ -+ struct inode *i = file->f_dentry->d_inode; -+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long next_block = SQUASHFS_I(i)->start_block + -+ sblk->directory_table_start; -+ int next_offset = SQUASHFS_I(i)->offset, length = 0, -+ dir_count; -+ struct squashfs_dir_header_2 dirh; -+ struct squashfs_dir_entry_2 *dire; -+ -+ TRACE("Entered squashfs_readdir_2 [%llx:%x]\n", next_block, next_offset); -+ -+ if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) + -+ SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) { -+ ERROR("Failed to allocate squashfs_dir_entry\n"); -+ goto finish; -+ } -+ -+ length = get_dir_index_using_offset(i->i_sb, &next_block, &next_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_start, -+ SQUASHFS_I(i)->u.s2.directory_index_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_count, -+ file->f_pos); -+ -+ while (length < i_size_read(i)) { -+ /* read directory header */ -+ if (msblk->swap) { -+ struct squashfs_dir_header_2 sdirh; -+ -+ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, -+ next_block, next_offset, sizeof(sdirh), -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdirh); -+ SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, -+ next_block, next_offset, sizeof(dirh), -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(dirh); -+ } -+ -+ dir_count = dirh.count + 1; -+ while (dir_count--) { -+ if (msblk->swap) { -+ struct squashfs_dir_entry_2 sdire; -+ if (!squashfs_get_cached_block(i->i_sb, (char *) -+ &sdire, next_block, next_offset, -+ sizeof(sdire), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdire); -+ SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, (char *) -+ dire, next_block, next_offset, -+ sizeof(*dire), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(*dire); -+ } -+ -+ if (!squashfs_get_cached_block(i->i_sb, dire->name, -+ next_block, next_offset, -+ dire->size + 1, &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += dire->size + 1; -+ -+ if (file->f_pos >= length) -+ continue; -+ -+ dire->name[dire->size + 1] = '\0'; -+ -+ TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d)\n", -+ (unsigned int) dirent, dire->name, -+ dire->size + 1, (int) file->f_pos, -+ dirh.start_block, dire->offset, -+ squashfs_filetype_table[dire->type]); -+ -+ if (filldir(dirent, dire->name, dire->size + 1, -+ file->f_pos, SQUASHFS_MK_VFS_INODE( -+ dirh.start_block, dire->offset), -+ squashfs_filetype_table[dire->type]) -+ < 0) { -+ TRACE("Filldir returned less than 0\n"); -+ goto finish; -+ } -+ file->f_pos = length; -+ } -+ } -+ -+finish: -+ kfree(dire); -+ return 0; -+ -+failed_read: -+ ERROR("Unable to read directory block [%llx:%x]\n", next_block, -+ next_offset); -+ kfree(dire); -+ return 0; -+} -+ -+ -+static struct dentry *squashfs_lookup_2(struct inode *i, struct dentry *dentry, -+ struct nameidata *nd) -+{ -+ const unsigned char *name = dentry->d_name.name; -+ int len = dentry->d_name.len; -+ struct inode *inode = NULL; -+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long next_block = SQUASHFS_I(i)->start_block + -+ sblk->directory_table_start; -+ int next_offset = SQUASHFS_I(i)->offset, length = 0, -+ dir_count; -+ struct squashfs_dir_header_2 dirh; -+ struct squashfs_dir_entry_2 *dire; -+ int sorted = sblk->s_major == 2 && sblk->s_minor >= 1; -+ -+ TRACE("Entered squashfs_lookup_2 [%llx:%x]\n", next_block, next_offset); -+ -+ if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) + -+ SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) { -+ ERROR("Failed to allocate squashfs_dir_entry\n"); -+ goto exit_loop; -+ } -+ -+ if (len > SQUASHFS_NAME_LEN) -+ goto exit_loop; -+ -+ length = get_dir_index_using_name(i->i_sb, &next_block, &next_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_start, -+ SQUASHFS_I(i)->u.s2.directory_index_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_count, name, -+ len); -+ -+ while (length < i_size_read(i)) { -+ /* read directory header */ -+ if (msblk->swap) { -+ struct squashfs_dir_header_2 sdirh; -+ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, -+ next_block, next_offset, sizeof(sdirh), -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdirh); -+ SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, -+ next_block, next_offset, sizeof(dirh), -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(dirh); -+ } -+ -+ dir_count = dirh.count + 1; -+ while (dir_count--) { -+ if (msblk->swap) { -+ struct squashfs_dir_entry_2 sdire; -+ if (!squashfs_get_cached_block(i->i_sb, (char *) -+ &sdire, next_block,next_offset, -+ sizeof(sdire), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdire); -+ SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, (char *) -+ dire, next_block,next_offset, -+ sizeof(*dire), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(*dire); -+ } -+ -+ if (!squashfs_get_cached_block(i->i_sb, dire->name, -+ next_block, next_offset, dire->size + 1, -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += dire->size + 1; -+ -+ if (sorted && name[0] < dire->name[0]) -+ goto exit_loop; -+ -+ if ((len == dire->size + 1) && !strncmp(name, -+ dire->name, len)) { -+ squashfs_inode_t ino = -+ SQUASHFS_MKINODE(dirh.start_block, -+ dire->offset); -+ unsigned int inode_number = SQUASHFS_MK_VFS_INODE(dirh.start_block, -+ dire->offset); -+ -+ TRACE("calling squashfs_iget for directory " -+ "entry %s, inode %x:%x, %lld\n", name, -+ dirh.start_block, dire->offset, ino); -+ -+ inode = squashfs_iget(i->i_sb, ino, inode_number); -+ -+ goto exit_loop; -+ } -+ } -+ } -+ -+exit_loop: -+ kfree(dire); -+ d_add(dentry, inode); -+ return ERR_PTR(0); -+ -+failed_read: -+ ERROR("Unable to read directory block [%llx:%x]\n", next_block, -+ next_offset); -+ goto exit_loop; -+} -+ -+ -+int squashfs_2_0_supported(struct squashfs_sb_info *msblk) -+{ -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ msblk->read_inode = squashfs_read_inode_2; -+ msblk->read_fragment_index_table = read_fragment_index_table_2; -+ -+ sblk->bytes_used = sblk->bytes_used_2; -+ sblk->uid_start = sblk->uid_start_2; -+ sblk->guid_start = sblk->guid_start_2; -+ sblk->inode_table_start = sblk->inode_table_start_2; -+ sblk->directory_table_start = sblk->directory_table_start_2; -+ sblk->fragment_table_start = sblk->fragment_table_start_2; -+ -+ return 1; -+} -diff -x .gitignore -Nurp linux-2.6.27-rc4/fs/squashfs/squashfs.h linux-2.6.27-rc4-squashfs3.4/fs/squashfs/squashfs.h ---- linux-2.6.27-rc4/fs/squashfs/squashfs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.27-rc4-squashfs3.4/fs/squashfs/squashfs.h 2008-08-19 18:31:56.000000000 +0100 -@@ -0,0 +1,86 @@ -+/* -+ * Squashfs - a compressed read only filesystem for Linux -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs.h -+ */ -+ -+#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY -+#undef CONFIG_SQUASHFS_1_0_COMPATIBILITY -+#endif -+ -+#ifdef SQUASHFS_TRACE -+#define TRACE(s, args...) printk(KERN_NOTICE "SQUASHFS: "s, ## args) -+#else -+#define TRACE(s, args...) {} -+#endif -+ -+#define ERROR(s, args...) printk(KERN_ERR "SQUASHFS error: "s, ## args) -+ -+#define SERROR(s, args...) do { \ -+ if (!silent) \ -+ printk(KERN_ERR "SQUASHFS error: "s, ## args);\ -+ } while(0) -+ -+#define WARNING(s, args...) printk(KERN_WARNING "SQUASHFS: "s, ## args) -+ -+static inline struct squashfs_inode_info *SQUASHFS_I(struct inode *inode) -+{ -+ return list_entry(inode, struct squashfs_inode_info, vfs_inode); -+} -+ -+#if defined(CONFIG_SQUASHFS_1_0_COMPATIBILITY ) || defined(CONFIG_SQUASHFS_2_0_COMPATIBILITY) -+#define SQSH_EXTERN -+extern unsigned int squashfs_read_data(struct super_block *s, char *buffer, -+ long long index, unsigned int length, -+ long long *next_index, int srclength); -+extern int squashfs_get_cached_block(struct super_block *s, void *buffer, -+ long long block, unsigned int offset, -+ int length, long long *next_block, -+ unsigned int *next_offset); -+extern void release_cached_fragment(struct squashfs_sb_info *msblk, struct -+ squashfs_cache_entry *fragment); -+extern struct squashfs_cache_entry *get_cached_fragment(struct super_block -+ *s, long long start_block, -+ int length); -+extern struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode, unsigned int inode_number); -+extern const struct address_space_operations squashfs_symlink_aops; -+extern const struct address_space_operations squashfs_aops; -+extern struct inode_operations squashfs_dir_inode_ops; -+#else -+#define SQSH_EXTERN static -+#endif -+ -+#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY -+extern int squashfs_1_0_supported(struct squashfs_sb_info *msblk); -+#else -+static inline int squashfs_1_0_supported(struct squashfs_sb_info *msblk) -+{ -+ return 0; -+} -+#endif -+ -+#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY -+extern int squashfs_2_0_supported(struct squashfs_sb_info *msblk); -+#else -+static inline int squashfs_2_0_supported(struct squashfs_sb_info *msblk) -+{ -+ return 0; -+} -+#endif -diff -x .gitignore -Nurp linux-2.6.27-rc4/include/linux/squashfs_fs.h linux-2.6.27-rc4-squashfs3.4/include/linux/squashfs_fs.h ---- linux-2.6.27-rc4/include/linux/squashfs_fs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.27-rc4-squashfs3.4/include/linux/squashfs_fs.h 2008-08-19 18:31:56.000000000 +0100 -@@ -0,0 +1,935 @@ -+#ifndef SQUASHFS_FS -+#define SQUASHFS_FS -+ -+/* -+ * Squashfs -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs_fs.h -+ */ -+ -+#ifndef CONFIG_SQUASHFS_2_0_COMPATIBILITY -+#define CONFIG_SQUASHFS_2_0_COMPATIBILITY -+#endif -+ -+#define SQUASHFS_CACHED_FRAGMENTS CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE -+#define SQUASHFS_MAJOR 3 -+#define SQUASHFS_MINOR 1 -+#define SQUASHFS_MAGIC 0x73717368 -+#define SQUASHFS_MAGIC_SWAP 0x68737173 -+#define SQUASHFS_START 0 -+ -+/* size of metadata (inode and directory) blocks */ -+#define SQUASHFS_METADATA_SIZE 8192 -+#define SQUASHFS_METADATA_LOG 13 -+ -+/* default size of data blocks */ -+#define SQUASHFS_FILE_SIZE 131072 -+#define SQUASHFS_FILE_LOG 17 -+ -+#define SQUASHFS_FILE_MAX_SIZE 1048576 -+ -+/* Max number of uids and gids */ -+#define SQUASHFS_UIDS 256 -+#define SQUASHFS_GUIDS 255 -+ -+/* Max length of filename (not 255) */ -+#define SQUASHFS_NAME_LEN 256 -+ -+#define SQUASHFS_INVALID ((long long) 0xffffffffffff) -+#define SQUASHFS_INVALID_FRAG ((unsigned int) 0xffffffff) -+#define SQUASHFS_INVALID_BLK ((long long) -1) -+#define SQUASHFS_USED_BLK ((long long) -2) -+ -+/* Filesystem flags */ -+#define SQUASHFS_NOI 0 -+#define SQUASHFS_NOD 1 -+#define SQUASHFS_CHECK 2 -+#define SQUASHFS_NOF 3 -+#define SQUASHFS_NO_FRAG 4 -+#define SQUASHFS_ALWAYS_FRAG 5 -+#define SQUASHFS_DUPLICATE 6 -+#define SQUASHFS_EXPORT 7 -+ -+#define SQUASHFS_BIT(flag, bit) ((flag >> bit) & 1) -+ -+#define SQUASHFS_UNCOMPRESSED_INODES(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_NOI) -+ -+#define SQUASHFS_UNCOMPRESSED_DATA(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_NOD) -+ -+#define SQUASHFS_UNCOMPRESSED_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_NOF) -+ -+#define SQUASHFS_NO_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_NO_FRAG) -+ -+#define SQUASHFS_ALWAYS_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_ALWAYS_FRAG) -+ -+#define SQUASHFS_DUPLICATES(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_DUPLICATE) -+ -+#define SQUASHFS_EXPORTABLE(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_EXPORT) -+ -+#define SQUASHFS_CHECK_DATA(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_CHECK) -+ -+#define SQUASHFS_MKFLAGS(noi, nod, check_data, nof, no_frag, always_frag, \ -+ duplicate_checking, exportable) (noi | (nod << 1) | (check_data << 2) \ -+ | (nof << 3) | (no_frag << 4) | (always_frag << 5) | \ -+ (duplicate_checking << 6) | (exportable << 7)) -+ -+/* Max number of types and file types */ -+#define SQUASHFS_DIR_TYPE 1 -+#define SQUASHFS_FILE_TYPE 2 -+#define SQUASHFS_SYMLINK_TYPE 3 -+#define SQUASHFS_BLKDEV_TYPE 4 -+#define SQUASHFS_CHRDEV_TYPE 5 -+#define SQUASHFS_FIFO_TYPE 6 -+#define SQUASHFS_SOCKET_TYPE 7 -+#define SQUASHFS_LDIR_TYPE 8 -+#define SQUASHFS_LREG_TYPE 9 -+ -+/* 1.0 filesystem type definitions */ -+#define SQUASHFS_TYPES 5 -+#define SQUASHFS_IPC_TYPE 0 -+ -+/* Flag whether block is compressed or uncompressed, bit is set if block is -+ * uncompressed */ -+#define SQUASHFS_COMPRESSED_BIT (1 << 15) -+ -+#define SQUASHFS_COMPRESSED_SIZE(B) (((B) & ~SQUASHFS_COMPRESSED_BIT) ? \ -+ (B) & ~SQUASHFS_COMPRESSED_BIT : SQUASHFS_COMPRESSED_BIT) -+ -+#define SQUASHFS_COMPRESSED(B) (!((B) & SQUASHFS_COMPRESSED_BIT)) -+ -+#define SQUASHFS_COMPRESSED_BIT_BLOCK (1 << 24) -+ -+#define SQUASHFS_COMPRESSED_SIZE_BLOCK(B) ((B) & \ -+ ~SQUASHFS_COMPRESSED_BIT_BLOCK) -+ -+#define SQUASHFS_COMPRESSED_BLOCK(B) (!((B) & SQUASHFS_COMPRESSED_BIT_BLOCK)) -+ -+/* -+ * Inode number ops. Inodes consist of a compressed block number, and an -+ * uncompressed offset within that block -+ */ -+#define SQUASHFS_INODE_BLK(a) ((unsigned int) ((a) >> 16)) -+ -+#define SQUASHFS_INODE_OFFSET(a) ((unsigned int) ((a) & 0xffff)) -+ -+#define SQUASHFS_MKINODE(A, B) ((squashfs_inode_t)(((squashfs_inode_t) (A)\ -+ << 16) + (B))) -+ -+/* Compute 32 bit VFS inode number from squashfs inode number */ -+#define SQUASHFS_MK_VFS_INODE(a, b) ((unsigned int) (((a) << 8) + \ -+ ((b) >> 2) + 1)) -+/* XXX */ -+ -+/* Translate between VFS mode and squashfs mode */ -+#define SQUASHFS_MODE(a) ((a) & 0xfff) -+ -+/* fragment and fragment table defines */ -+#define SQUASHFS_FRAGMENT_BYTES(A) ((A) * sizeof(struct squashfs_fragment_entry)) -+ -+#define SQUASHFS_FRAGMENT_INDEX(A) (SQUASHFS_FRAGMENT_BYTES(A) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEX_OFFSET(A) (SQUASHFS_FRAGMENT_BYTES(A) % \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEXES(A) ((SQUASHFS_FRAGMENT_BYTES(A) + \ -+ SQUASHFS_METADATA_SIZE - 1) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEX_BYTES(A) (SQUASHFS_FRAGMENT_INDEXES(A) *\ -+ sizeof(long long)) -+ -+/* inode lookup table defines */ -+#define SQUASHFS_LOOKUP_BYTES(A) ((A) * sizeof(squashfs_inode_t)) -+ -+#define SQUASHFS_LOOKUP_BLOCK(A) (SQUASHFS_LOOKUP_BYTES(A) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_LOOKUP_BLOCK_OFFSET(A) (SQUASHFS_LOOKUP_BYTES(A) % \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_LOOKUP_BLOCKS(A) ((SQUASHFS_LOOKUP_BYTES(A) + \ -+ SQUASHFS_METADATA_SIZE - 1) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_LOOKUP_BLOCK_BYTES(A) (SQUASHFS_LOOKUP_BLOCKS(A) *\ -+ sizeof(long long)) -+ -+/* cached data constants for filesystem */ -+#define SQUASHFS_CACHED_BLKS 8 -+ -+#define SQUASHFS_MAX_FILE_SIZE_LOG 64 -+ -+#define SQUASHFS_MAX_FILE_SIZE ((long long) 1 << \ -+ (SQUASHFS_MAX_FILE_SIZE_LOG - 2)) -+ -+#define SQUASHFS_MARKER_BYTE 0xff -+ -+/* meta index cache */ -+#define SQUASHFS_META_INDEXES (SQUASHFS_METADATA_SIZE / sizeof(unsigned int)) -+#define SQUASHFS_META_ENTRIES 31 -+#define SQUASHFS_META_NUMBER 8 -+#define SQUASHFS_SLOTS 4 -+ -+struct meta_entry { -+ long long data_block; -+ unsigned int index_block; -+ unsigned short offset; -+ unsigned short pad; -+}; -+ -+struct meta_index { -+ unsigned int inode_number; -+ unsigned int offset; -+ unsigned short entries; -+ unsigned short skip; -+ unsigned short locked; -+ unsigned short pad; -+ struct meta_entry meta_entry[SQUASHFS_META_ENTRIES]; -+}; -+ -+ -+/* -+ * definitions for structures on disk -+ */ -+ -+typedef long long squashfs_block_t; -+typedef long long squashfs_inode_t; -+ -+struct squashfs_super_block { -+ unsigned int s_magic; -+ unsigned int inodes; -+ unsigned int bytes_used_2; -+ unsigned int uid_start_2; -+ unsigned int guid_start_2; -+ unsigned int inode_table_start_2; -+ unsigned int directory_table_start_2; -+ unsigned int s_major:16; -+ unsigned int s_minor:16; -+ unsigned int block_size_1:16; -+ unsigned int block_log:16; -+ unsigned int flags:8; -+ unsigned int no_uids:8; -+ unsigned int no_guids:8; -+ unsigned int mkfs_time /* time of filesystem creation */; -+ squashfs_inode_t root_inode; -+ unsigned int block_size; -+ unsigned int fragments; -+ unsigned int fragment_table_start_2; -+ long long bytes_used; -+ long long uid_start; -+ long long guid_start; -+ long long inode_table_start; -+ long long directory_table_start; -+ long long fragment_table_start; -+ long long lookup_table_start; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_index { -+ unsigned int index; -+ unsigned int start_block; -+ unsigned char size; -+ unsigned char name[0]; -+} __attribute__ ((packed)); -+ -+#define SQUASHFS_BASE_INODE_HEADER \ -+ unsigned int inode_type:4; \ -+ unsigned int mode:12; \ -+ unsigned int uid:8; \ -+ unsigned int guid:8; \ -+ unsigned int mtime; \ -+ unsigned int inode_number; -+ -+struct squashfs_base_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+} __attribute__ ((packed)); -+ -+struct squashfs_ipc_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+} __attribute__ ((packed)); -+ -+struct squashfs_dev_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ unsigned short rdev; -+} __attribute__ ((packed)); -+ -+struct squashfs_symlink_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ unsigned short symlink_size; -+ char symlink[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_reg_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ squashfs_block_t start_block; -+ unsigned int fragment; -+ unsigned int offset; -+ unsigned int file_size; -+ unsigned short block_list[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_lreg_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ squashfs_block_t start_block; -+ unsigned int fragment; -+ unsigned int offset; -+ long long file_size; -+ unsigned short block_list[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ unsigned int file_size:19; -+ unsigned int offset:13; -+ unsigned int start_block; -+ unsigned int parent_inode; -+} __attribute__ ((packed)); -+ -+struct squashfs_ldir_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ unsigned int file_size:27; -+ unsigned int offset:13; -+ unsigned int start_block; -+ unsigned int i_count:16; -+ unsigned int parent_inode; -+ struct squashfs_dir_index index[0]; -+} __attribute__ ((packed)); -+ -+union squashfs_inode_header { -+ struct squashfs_base_inode_header base; -+ struct squashfs_dev_inode_header dev; -+ struct squashfs_symlink_inode_header symlink; -+ struct squashfs_reg_inode_header reg; -+ struct squashfs_lreg_inode_header lreg; -+ struct squashfs_dir_inode_header dir; -+ struct squashfs_ldir_inode_header ldir; -+ struct squashfs_ipc_inode_header ipc; -+}; -+ -+struct squashfs_dir_entry { -+ unsigned int offset:13; -+ unsigned int type:3; -+ unsigned int size:8; -+ int inode_number:16; -+ char name[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_header { -+ unsigned int count:8; -+ unsigned int start_block; -+ unsigned int inode_number; -+} __attribute__ ((packed)); -+ -+struct squashfs_fragment_entry { -+ long long start_block; -+ unsigned int size; -+ unsigned int unused; -+} __attribute__ ((packed)); -+ -+extern int squashfs_uncompress_block(void *d, int dstlen, void *s, int srclen); -+extern int squashfs_uncompress_init(void); -+extern int squashfs_uncompress_exit(void); -+ -+/* -+ * macros to convert each packed bitfield structure from little endian to big -+ * endian and vice versa. These are needed when creating or using a filesystem -+ * on a machine with different byte ordering to the target architecture. -+ * -+ */ -+ -+#define SQUASHFS_SWAP_START \ -+ int bits;\ -+ int b_pos;\ -+ unsigned long long val;\ -+ unsigned char *s;\ -+ unsigned char *d; -+ -+#define SQUASHFS_SWAP_SUPER_BLOCK(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_super_block));\ -+ SQUASHFS_SWAP((s)->s_magic, d, 0, 32);\ -+ SQUASHFS_SWAP((s)->inodes, d, 32, 32);\ -+ SQUASHFS_SWAP((s)->bytes_used_2, d, 64, 32);\ -+ SQUASHFS_SWAP((s)->uid_start_2, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->guid_start_2, d, 128, 32);\ -+ SQUASHFS_SWAP((s)->inode_table_start_2, d, 160, 32);\ -+ SQUASHFS_SWAP((s)->directory_table_start_2, d, 192, 32);\ -+ SQUASHFS_SWAP((s)->s_major, d, 224, 16);\ -+ SQUASHFS_SWAP((s)->s_minor, d, 240, 16);\ -+ SQUASHFS_SWAP((s)->block_size_1, d, 256, 16);\ -+ SQUASHFS_SWAP((s)->block_log, d, 272, 16);\ -+ SQUASHFS_SWAP((s)->flags, d, 288, 8);\ -+ SQUASHFS_SWAP((s)->no_uids, d, 296, 8);\ -+ SQUASHFS_SWAP((s)->no_guids, d, 304, 8);\ -+ SQUASHFS_SWAP((s)->mkfs_time, d, 312, 32);\ -+ SQUASHFS_SWAP((s)->root_inode, d, 344, 64);\ -+ SQUASHFS_SWAP((s)->block_size, d, 408, 32);\ -+ SQUASHFS_SWAP((s)->fragments, d, 440, 32);\ -+ SQUASHFS_SWAP((s)->fragment_table_start_2, d, 472, 32);\ -+ SQUASHFS_SWAP((s)->bytes_used, d, 504, 64);\ -+ SQUASHFS_SWAP((s)->uid_start, d, 568, 64);\ -+ SQUASHFS_SWAP((s)->guid_start, d, 632, 64);\ -+ SQUASHFS_SWAP((s)->inode_table_start, d, 696, 64);\ -+ SQUASHFS_SWAP((s)->directory_table_start, d, 760, 64);\ -+ SQUASHFS_SWAP((s)->fragment_table_start, d, 824, 64);\ -+ SQUASHFS_SWAP((s)->lookup_table_start, d, 888, 64);\ -+} -+ -+#define SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\ -+ SQUASHFS_MEMSET(s, d, n);\ -+ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ -+ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ -+ SQUASHFS_SWAP((s)->uid, d, 16, 8);\ -+ SQUASHFS_SWAP((s)->guid, d, 24, 8);\ -+ SQUASHFS_SWAP((s)->mtime, d, 32, 32);\ -+ SQUASHFS_SWAP((s)->inode_number, d, 64, 32); -+ -+#define SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, n) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\ -+} -+ -+#define SQUASHFS_SWAP_IPC_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_ipc_inode_header))\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DEV_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_dev_inode_header)); \ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->rdev, d, 128, 16);\ -+} -+ -+#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_symlink_inode_header));\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->symlink_size, d, 128, 16);\ -+} -+ -+#define SQUASHFS_SWAP_REG_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_reg_inode_header));\ -+ SQUASHFS_SWAP((s)->start_block, d, 96, 64);\ -+ SQUASHFS_SWAP((s)->fragment, d, 160, 32);\ -+ SQUASHFS_SWAP((s)->offset, d, 192, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 224, 32);\ -+} -+ -+#define SQUASHFS_SWAP_LREG_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_lreg_inode_header));\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 128, 64);\ -+ SQUASHFS_SWAP((s)->fragment, d, 192, 32);\ -+ SQUASHFS_SWAP((s)->offset, d, 224, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 256, 64);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_dir_inode_header));\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 128, 19);\ -+ SQUASHFS_SWAP((s)->offset, d, 147, 13);\ -+ SQUASHFS_SWAP((s)->start_block, d, 160, 32);\ -+ SQUASHFS_SWAP((s)->parent_inode, d, 192, 32);\ -+} -+ -+#define SQUASHFS_SWAP_LDIR_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_ldir_inode_header));\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 128, 27);\ -+ SQUASHFS_SWAP((s)->offset, d, 155, 13);\ -+ SQUASHFS_SWAP((s)->start_block, d, 168, 32);\ -+ SQUASHFS_SWAP((s)->i_count, d, 200, 16);\ -+ SQUASHFS_SWAP((s)->parent_inode, d, 216, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INDEX(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index));\ -+ SQUASHFS_SWAP((s)->index, d, 0, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 32, 32);\ -+ SQUASHFS_SWAP((s)->size, d, 64, 8);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header));\ -+ SQUASHFS_SWAP((s)->count, d, 0, 8);\ -+ SQUASHFS_SWAP((s)->start_block, d, 8, 32);\ -+ SQUASHFS_SWAP((s)->inode_number, d, 40, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_ENTRY(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry));\ -+ SQUASHFS_SWAP((s)->offset, d, 0, 13);\ -+ SQUASHFS_SWAP((s)->type, d, 13, 3);\ -+ SQUASHFS_SWAP((s)->size, d, 16, 8);\ -+ SQUASHFS_SWAP((s)->inode_number, d, 24, 16);\ -+} -+ -+#define SQUASHFS_SWAP_FRAGMENT_ENTRY(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry));\ -+ SQUASHFS_SWAP((s)->start_block, d, 0, 64);\ -+ SQUASHFS_SWAP((s)->size, d, 64, 32);\ -+} -+ -+#define SQUASHFS_SWAP_INODE_T(s, d) SQUASHFS_SWAP_LONG_LONGS(s, d, 1) -+ -+#define SQUASHFS_SWAP_SHORTS(s, d, n) {\ -+ int entry;\ -+ int bit_position;\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, n * 2);\ -+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ -+ 16)\ -+ SQUASHFS_SWAP(s[entry], d, bit_position, 16);\ -+} -+ -+#define SQUASHFS_SWAP_INTS(s, d, n) {\ -+ int entry;\ -+ int bit_position;\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, n * 4);\ -+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ -+ 32)\ -+ SQUASHFS_SWAP(s[entry], d, bit_position, 32);\ -+} -+ -+#define SQUASHFS_SWAP_LONG_LONGS(s, d, n) {\ -+ int entry;\ -+ int bit_position;\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, n * 8);\ -+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ -+ 64)\ -+ SQUASHFS_SWAP(s[entry], d, bit_position, 64);\ -+} -+ -+#define SQUASHFS_SWAP_DATA(s, d, n, bits) {\ -+ int entry;\ -+ int bit_position;\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, n * bits / 8);\ -+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ -+ bits)\ -+ SQUASHFS_SWAP(s[entry], d, bit_position, bits);\ -+} -+ -+#define SQUASHFS_SWAP_FRAGMENT_INDEXES(s, d, n) SQUASHFS_SWAP_LONG_LONGS(s, d, n) -+#define SQUASHFS_SWAP_LOOKUP_BLOCKS(s, d, n) SQUASHFS_SWAP_LONG_LONGS(s, d, n) -+ -+#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY -+ -+struct squashfs_base_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+} __attribute__ ((packed)); -+ -+struct squashfs_ipc_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned int type:4; -+ unsigned int offset:4; -+} __attribute__ ((packed)); -+ -+struct squashfs_dev_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned short rdev; -+} __attribute__ ((packed)); -+ -+struct squashfs_symlink_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned short symlink_size; -+ char symlink[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_reg_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned int mtime; -+ unsigned int start_block; -+ unsigned int file_size:32; -+ unsigned short block_list[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned int file_size:19; -+ unsigned int offset:13; -+ unsigned int mtime; -+ unsigned int start_block:24; -+} __attribute__ ((packed)); -+ -+union squashfs_inode_header_1 { -+ struct squashfs_base_inode_header_1 base; -+ struct squashfs_dev_inode_header_1 dev; -+ struct squashfs_symlink_inode_header_1 symlink; -+ struct squashfs_reg_inode_header_1 reg; -+ struct squashfs_dir_inode_header_1 dir; -+ struct squashfs_ipc_inode_header_1 ipc; -+}; -+ -+#define SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n) \ -+ SQUASHFS_MEMSET(s, d, n);\ -+ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ -+ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ -+ SQUASHFS_SWAP((s)->uid, d, 16, 4);\ -+ SQUASHFS_SWAP((s)->guid, d, 20, 4); -+ -+#define SQUASHFS_SWAP_BASE_INODE_HEADER_1(s, d, n) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n)\ -+} -+ -+#define SQUASHFS_SWAP_IPC_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_ipc_inode_header_1));\ -+ SQUASHFS_SWAP((s)->type, d, 24, 4);\ -+ SQUASHFS_SWAP((s)->offset, d, 28, 4);\ -+} -+ -+#define SQUASHFS_SWAP_DEV_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_dev_inode_header_1));\ -+ SQUASHFS_SWAP((s)->rdev, d, 24, 16);\ -+} -+ -+#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_symlink_inode_header_1));\ -+ SQUASHFS_SWAP((s)->symlink_size, d, 24, 16);\ -+} -+ -+#define SQUASHFS_SWAP_REG_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_reg_inode_header_1));\ -+ SQUASHFS_SWAP((s)->mtime, d, 24, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 56, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 88, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_dir_inode_header_1));\ -+ SQUASHFS_SWAP((s)->file_size, d, 24, 19);\ -+ SQUASHFS_SWAP((s)->offset, d, 43, 13);\ -+ SQUASHFS_SWAP((s)->mtime, d, 56, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 88, 24);\ -+} -+ -+#endif -+ -+#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY -+ -+struct squashfs_dir_index_2 { -+ unsigned int index:27; -+ unsigned int start_block:29; -+ unsigned char size; -+ unsigned char name[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_base_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+} __attribute__ ((packed)); -+ -+struct squashfs_ipc_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+} __attribute__ ((packed)); -+ -+struct squashfs_dev_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned short rdev; -+} __attribute__ ((packed)); -+ -+struct squashfs_symlink_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned short symlink_size; -+ char symlink[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_reg_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned int mtime; -+ unsigned int start_block; -+ unsigned int fragment; -+ unsigned int offset; -+ unsigned int file_size:32; -+ unsigned short block_list[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned int file_size:19; -+ unsigned int offset:13; -+ unsigned int mtime; -+ unsigned int start_block:24; -+} __attribute__ ((packed)); -+ -+struct squashfs_ldir_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned int file_size:27; -+ unsigned int offset:13; -+ unsigned int mtime; -+ unsigned int start_block:24; -+ unsigned int i_count:16; -+ struct squashfs_dir_index_2 index[0]; -+} __attribute__ ((packed)); -+ -+union squashfs_inode_header_2 { -+ struct squashfs_base_inode_header_2 base; -+ struct squashfs_dev_inode_header_2 dev; -+ struct squashfs_symlink_inode_header_2 symlink; -+ struct squashfs_reg_inode_header_2 reg; -+ struct squashfs_dir_inode_header_2 dir; -+ struct squashfs_ldir_inode_header_2 ldir; -+ struct squashfs_ipc_inode_header_2 ipc; -+}; -+ -+struct squashfs_dir_header_2 { -+ unsigned int count:8; -+ unsigned int start_block:24; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_entry_2 { -+ unsigned int offset:13; -+ unsigned int type:3; -+ unsigned int size:8; -+ char name[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_fragment_entry_2 { -+ unsigned int start_block; -+ unsigned int size; -+} __attribute__ ((packed)); -+ -+#define SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\ -+ SQUASHFS_MEMSET(s, d, n);\ -+ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ -+ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ -+ SQUASHFS_SWAP((s)->uid, d, 16, 8);\ -+ SQUASHFS_SWAP((s)->guid, d, 24, 8);\ -+ -+#define SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, n) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\ -+} -+ -+#define SQUASHFS_SWAP_IPC_INODE_HEADER_2(s, d) \ -+ SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, sizeof(struct squashfs_ipc_inode_header_2)) -+ -+#define SQUASHFS_SWAP_DEV_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_dev_inode_header_2)); \ -+ SQUASHFS_SWAP((s)->rdev, d, 32, 16);\ -+} -+ -+#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_symlink_inode_header_2));\ -+ SQUASHFS_SWAP((s)->symlink_size, d, 32, 16);\ -+} -+ -+#define SQUASHFS_SWAP_REG_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_reg_inode_header_2));\ -+ SQUASHFS_SWAP((s)->mtime, d, 32, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 64, 32);\ -+ SQUASHFS_SWAP((s)->fragment, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->offset, d, 128, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 160, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_dir_inode_header_2));\ -+ SQUASHFS_SWAP((s)->file_size, d, 32, 19);\ -+ SQUASHFS_SWAP((s)->offset, d, 51, 13);\ -+ SQUASHFS_SWAP((s)->mtime, d, 64, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 96, 24);\ -+} -+ -+#define SQUASHFS_SWAP_LDIR_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_ldir_inode_header_2));\ -+ SQUASHFS_SWAP((s)->file_size, d, 32, 27);\ -+ SQUASHFS_SWAP((s)->offset, d, 59, 13);\ -+ SQUASHFS_SWAP((s)->mtime, d, 72, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 104, 24);\ -+ SQUASHFS_SWAP((s)->i_count, d, 128, 16);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INDEX_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index_2));\ -+ SQUASHFS_SWAP((s)->index, d, 0, 27);\ -+ SQUASHFS_SWAP((s)->start_block, d, 27, 29);\ -+ SQUASHFS_SWAP((s)->size, d, 56, 8);\ -+} -+#define SQUASHFS_SWAP_DIR_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header_2));\ -+ SQUASHFS_SWAP((s)->count, d, 0, 8);\ -+ SQUASHFS_SWAP((s)->start_block, d, 8, 24);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_ENTRY_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry_2));\ -+ SQUASHFS_SWAP((s)->offset, d, 0, 13);\ -+ SQUASHFS_SWAP((s)->type, d, 13, 3);\ -+ SQUASHFS_SWAP((s)->size, d, 16, 8);\ -+} -+ -+#define SQUASHFS_SWAP_FRAGMENT_ENTRY_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry_2));\ -+ SQUASHFS_SWAP((s)->start_block, d, 0, 32);\ -+ SQUASHFS_SWAP((s)->size, d, 32, 32);\ -+} -+ -+#define SQUASHFS_SWAP_FRAGMENT_INDEXES_2(s, d, n) SQUASHFS_SWAP_INTS(s, d, n) -+ -+/* fragment and fragment table defines */ -+#define SQUASHFS_FRAGMENT_BYTES_2(A) (A * sizeof(struct squashfs_fragment_entry_2)) -+ -+#define SQUASHFS_FRAGMENT_INDEX_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEX_OFFSET_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) % \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEXES_2(A) ((SQUASHFS_FRAGMENT_BYTES_2(A) + \ -+ SQUASHFS_METADATA_SIZE - 1) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEX_BYTES_2(A) (SQUASHFS_FRAGMENT_INDEXES_2(A) *\ -+ sizeof(int)) -+ -+#endif -+ -+#ifdef __KERNEL__ -+ -+/* -+ * macros used to swap each structure entry, taking into account -+ * bitfields and different bitfield placing conventions on differing -+ * architectures -+ */ -+ -+#include -+ -+#ifdef __BIG_ENDIAN -+ /* convert from little endian to big endian */ -+#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \ -+ tbits, b_pos) -+#else -+ /* convert from big endian to little endian */ -+#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \ -+ tbits, 64 - tbits - b_pos) -+#endif -+ -+#define _SQUASHFS_SWAP(value, p, pos, tbits, SHIFT) {\ -+ b_pos = pos % 8;\ -+ val = 0;\ -+ s = (unsigned char *)p + (pos / 8);\ -+ d = ((unsigned char *) &val) + 7;\ -+ for(bits = 0; bits < (tbits + b_pos); bits += 8) \ -+ *d-- = *s++;\ -+ value = (val >> (SHIFT))/* & ((1 << tbits) - 1)*/;\ -+} -+ -+#define SQUASHFS_MEMSET(s, d, n) memset(s, 0, n); -+ -+#endif -+#endif -diff -x .gitignore -Nurp linux-2.6.27-rc4/include/linux/squashfs_fs_i.h linux-2.6.27-rc4-squashfs3.4/include/linux/squashfs_fs_i.h ---- linux-2.6.27-rc4/include/linux/squashfs_fs_i.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.27-rc4-squashfs3.4/include/linux/squashfs_fs_i.h 2008-08-19 18:31:56.000000000 +0100 -@@ -0,0 +1,45 @@ -+#ifndef SQUASHFS_FS_I -+#define SQUASHFS_FS_I -+/* -+ * Squashfs -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs_fs_i.h -+ */ -+ -+struct squashfs_inode_info { -+ long long start_block; -+ unsigned int offset; -+ union { -+ struct { -+ long long fragment_start_block; -+ unsigned int fragment_size; -+ unsigned int fragment_offset; -+ long long block_list_start; -+ } s1; -+ struct { -+ long long directory_index_start; -+ unsigned int directory_index_offset; -+ unsigned int directory_index_count; -+ unsigned int parent_inode; -+ } s2; -+ } u; -+ struct inode vfs_inode; -+}; -+#endif -diff -x .gitignore -Nurp linux-2.6.27-rc4/include/linux/squashfs_fs_sb.h linux-2.6.27-rc4-squashfs3.4/include/linux/squashfs_fs_sb.h ---- linux-2.6.27-rc4/include/linux/squashfs_fs_sb.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.27-rc4-squashfs3.4/include/linux/squashfs_fs_sb.h 2008-08-19 18:31:56.000000000 +0100 -@@ -0,0 +1,79 @@ -+#ifndef SQUASHFS_FS_SB -+#define SQUASHFS_FS_SB -+/* -+ * Squashfs -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs_fs_sb.h -+ */ -+ -+#include -+ -+struct squashfs_cache_entry { -+ long long block; -+ int length; -+ int locked; -+ long long next_index; -+ char pending; -+ char error; -+ int waiting; -+ wait_queue_head_t wait_queue; -+ char *data; -+}; -+ -+struct squashfs_cache { -+ char *name; -+ int entries; -+ int block_size; -+ int next_blk; -+ int waiting; -+ int unused_blks; -+ int use_vmalloc; -+ spinlock_t lock; -+ wait_queue_head_t wait_queue; -+ struct squashfs_cache_entry entry[0]; -+}; -+ -+struct squashfs_sb_info { -+ struct squashfs_super_block sblk; -+ int devblksize; -+ int devblksize_log2; -+ int swap; -+ struct squashfs_cache *block_cache; -+ struct squashfs_cache *fragment_cache; -+ int next_meta_index; -+ unsigned int *uid; -+ unsigned int *guid; -+ long long *fragment_index; -+ unsigned int *fragment_index_2; -+ char *read_page; -+ struct mutex read_data_mutex; -+ struct mutex read_page_mutex; -+ struct mutex meta_index_mutex; -+ struct meta_index *meta_index; -+ z_stream stream; -+ long long *inode_lookup_table; -+ int (*read_inode)(struct inode *i, squashfs_inode_t \ -+ inode); -+ long long (*read_blocklist)(struct inode *inode, int \ -+ index, int readahead_blks, char *block_list, \ -+ unsigned short **block_p, unsigned int *bsize); -+ int (*read_fragment_index_table)(struct super_block *s); -+}; -+#endif -diff -x .gitignore -Nurp linux-2.6.27-rc4/init/do_mounts_rd.c linux-2.6.27-rc4-squashfs3.4/init/do_mounts_rd.c ---- linux-2.6.27-rc4/init/do_mounts_rd.c 2008-08-11 15:20:55.000000000 +0100 -+++ linux-2.6.27-rc4-squashfs3.4/init/do_mounts_rd.c 2008-08-19 18:31:56.000000000 +0100 -@@ -5,6 +5,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -37,6 +38,7 @@ static int __init crd_load(int in_fd, in - * numbers could not be found. - * - * We currently check for the following magic numbers: -+ * squashfs - * minix - * ext2 - * romfs -@@ -51,6 +53,7 @@ identify_ramdisk_image(int fd, int start - struct ext2_super_block *ext2sb; - struct romfs_super_block *romfsb; - struct cramfs_super *cramfsb; -+ struct squashfs_super_block *squashfsb; - int nblocks = -1; - unsigned char *buf; - -@@ -62,6 +65,7 @@ identify_ramdisk_image(int fd, int start - ext2sb = (struct ext2_super_block *) buf; - romfsb = (struct romfs_super_block *) buf; - cramfsb = (struct cramfs_super *) buf; -+ squashfsb = (struct squashfs_super_block *) buf; - memset(buf, 0xe5, size); - - /* -@@ -99,6 +103,18 @@ identify_ramdisk_image(int fd, int start - goto done; - } - -+ /* squashfs is at block zero too */ -+ if (squashfsb->s_magic == SQUASHFS_MAGIC) { -+ printk(KERN_NOTICE -+ "RAMDISK: squashfs filesystem found at block %d\n", -+ start_block); -+ if (squashfsb->s_major < 3) -+ nblocks = (squashfsb->bytes_used_2+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; -+ else -+ nblocks = (squashfsb->bytes_used+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; -+ goto done; -+ } -+ - /* - * Read block 1 to test for minix and ext2 superblock - */ diff --git a/packages.xorg b/packages.xorg index f045eac..fe18f3e 100644 --- a/packages.xorg +++ b/packages.xorg @@ -9,6 +9,7 @@ xorg-cf-files xorg-compositeproto xorg-damageproto xorg-dmxproto +xorg-dri2proto xorg-evieext xorg-fixesproto xorg-font-adobe-100dpi @@ -108,7 +109,6 @@ xorg-xf86-video-i128 xorg-xf86-video-intel xorg-xf86-video-mga xorg-xf86-video-neomagic -xorg-xf86-video-nsc xorg-xf86-video-nv xorg-xf86-video-radeonhd xorg-xf86-video-savage @@ -117,7 +117,6 @@ xorg-xf86-video-tga xorg-xf86-video-trident xorg-xf86-video-tseng xorg-xf86-video-vesa -xorg-xf86-video-xgi xorg-xf86bigfontproto xorg-xf86dgaproto xorg-xf86driproto