wok-current rev 886

Up: linux (2.5.25.5)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Jun 07 22:04:11 2008 +0000 (2008-06-07)
parents 12dc6e40feca
children ca68c3fca6c9
files linux-acpi/receipt linux-agp/receipt linux-bluetooth/receipt linux-cramfs/receipt linux-cryptoloop/receipt linux-headers/receipt linux-ieee1394/receipt linux-ipv6/receipt linux-joystick/receipt linux-kvm/receipt linux-mwave/receipt linux-reiserfs/receipt linux-sound/receipt linux-video/receipt linux-wireless/receipt linux/receipt linux/stuff/linux-2.6.25.5-slitaz.config linux/stuff/linux-diff-2.6.25.5.u linux/stuff/linux-lzma-2.6.25.5.u linux/stuff/linux-utf8-2.6.25.5.u linux/stuff/list_modules.sh linux/stuff/modules-2.6.25.5.list
line diff
     1.1 --- a/linux-acpi/receipt	Sat Jun 07 22:29:41 2008 +0000
     1.2 +++ b/linux-acpi/receipt	Sat Jun 07 22:04:11 2008 +0000
     1.3 @@ -1,7 +1,7 @@
     1.4  # SliTaz package receipt.
     1.5  
     1.6  PACKAGE="linux-acpi"
     1.7 -VERSION="2.6.24.2"
     1.8 +VERSION="2.6.25.5"
     1.9  CATEGORY="base-system"
    1.10  SHORT_DESC="The Linux kernel acpi modules."
    1.11  MAINTAINER="pascal.bellard@slitaz.org"
    1.12 @@ -14,17 +14,20 @@
    1.13      local path
    1.14      path=lib/modules/$VERSION-slitaz/kernel
    1.15      mkdir -p $fs/$path
    1.16 +    export src
    1.17 +    export _pkg
    1.18 +    $src/list_modules.sh drivers/acpi drivers/misc/thinkpad_acpi.ko.gz | \
    1.19      while read module; do
    1.20      	dir=$path/$(dirname $module)
    1.21      	[ -d $fs/$dir ] || mkdir -p $fs/$dir
    1.22          cp -a $_pkg/$path/$module $fs/$dir
    1.23 -    done < stuff/modules-$VERSION.list
    1.24 +    done
    1.25  }
    1.26  
    1.27  # Post install/remove commands for Tazpkg.
    1.28  post_install()
    1.29  {
    1.30 -	depmod -a -b /$1
    1.31 +	depmod -a -b "$1/" $VERSION-slitaz
    1.32  }
    1.33  
    1.34  post_remove()
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/linux-agp/receipt	Sat Jun 07 22:04:11 2008 +0000
     2.3 @@ -0,0 +1,36 @@
     2.4 +# SliTaz package receipt.
     2.5 +
     2.6 +PACKAGE="linux-agp"
     2.7 +VERSION="2.6.25.5"
     2.8 +CATEGORY="base-system"
     2.9 +SHORT_DESC="The Linux kernel AGP modules."
    2.10 +MAINTAINER="erjo@slitaz.org"
    2.11 +WANTED="linux"
    2.12 +WEB_SITE="http://www.kernel.org/"
    2.13 +
    2.14 +# Rules to gen a SliTaz package suitable for Tazpkg.
    2.15 +genpkg_rules()
    2.16 +{
    2.17 +    local path
    2.18 +    path=lib/modules/$VERSION-slitaz/kernel
    2.19 +    mkdir -p $fs/$path
    2.20 +    export src
    2.21 +    export _pkg
    2.22 +    $src/list_modules.sh drivers/char/agp | while read module; do
    2.23 +    	dir=$path/$(dirname $module)
    2.24 +    	[ -d $fs/$dir ] || mkdir -p $fs/$dir
    2.25 +        cp -a $_pkg/$path/$module $fs/$dir
    2.26 +    done
    2.27 +}
    2.28 +
    2.29 +# Post install/remove commands for Tazpkg.
    2.30 +post_install()
    2.31 +{
    2.32 +	depmod -a -b "$1/" $VERSION-slitaz
    2.33 +}
    2.34 +
    2.35 +post_remove()
    2.36 +{
    2.37 +	depmod -a $VERSION-slitaz
    2.38 +}
    2.39 +
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/linux-bluetooth/receipt	Sat Jun 07 22:04:11 2008 +0000
     3.3 @@ -0,0 +1,36 @@
     3.4 +# SliTaz package receipt.
     3.5 +
     3.6 +PACKAGE="linux-bluetooth"
     3.7 +VERSION="2.6.25.5"
     3.8 +CATEGORY="base-system"
     3.9 +SHORT_DESC="The Linux kernel bluetooth modules."
    3.10 +MAINTAINER="pascal.bellard@slitaz.org"
    3.11 +WANTED="linux"
    3.12 +WEB_SITE="http://www.kernel.org/"
    3.13 +
    3.14 +# Rules to gen a SliTaz package suitable for Tazpkg.
    3.15 +genpkg_rules()
    3.16 +{
    3.17 +    local path
    3.18 +    path=lib/modules/$VERSION-slitaz/kernel
    3.19 +    mkdir -p $fs/$path
    3.20 +    export src
    3.21 +    export _pkg
    3.22 +    $src/list_modules.sh drivers/bluetooth net/bluetooth | while read module; do
    3.23 +    	dir=$path/$(dirname $module)
    3.24 +    	[ -d $fs/$dir ] || mkdir -p $fs/$dir
    3.25 +        cp -a $_pkg/$path/$module $fs/$dir
    3.26 +    done
    3.27 +}
    3.28 +
    3.29 +# Post install/remove commands for Tazpkg.
    3.30 +post_install()
    3.31 +{
    3.32 +	depmod -a -b "$1/" $VERSION-slitaz
    3.33 +}
    3.34 +
    3.35 +post_remove()
    3.36 +{
    3.37 +	depmod -a $VERSION-slitaz
    3.38 +}
    3.39 +
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/linux-cramfs/receipt	Sat Jun 07 22:04:11 2008 +0000
     4.3 @@ -0,0 +1,36 @@
     4.4 +# SliTaz package receipt.
     4.5 +
     4.6 +PACKAGE="linux-cramfs"
     4.7 +VERSION="2.6.25.5"
     4.8 +CATEGORY="base-system"
     4.9 +SHORT_DESC="The Linux kernel cramfs module."
    4.10 +MAINTAINER="pascal.bellard@slitaz.org"
    4.11 +WANTED="linux"
    4.12 +WEB_SITE="http://www.kernel.org/"
    4.13 +
    4.14 +# Rules to gen a SliTaz package suitable for Tazpkg.
    4.15 +genpkg_rules()
    4.16 +{
    4.17 +    local path
    4.18 +    path=lib/modules/$VERSION-slitaz/kernel
    4.19 +    mkdir -p $fs/$path
    4.20 +    export src
    4.21 +    export _pkg
    4.22 +    $src/list_modules.sh fs/cramfs | while read module; do
    4.23 +    	dir=$path/$(dirname $module)
    4.24 +    	[ -d $fs/$dir ] || mkdir -p $fs/$dir
    4.25 +        cp -a $_pkg/$path/$module $fs/$dir
    4.26 +    done
    4.27 +}
    4.28 +
    4.29 +# Post install/remove commands for Tazpkg.
    4.30 +post_install()
    4.31 +{
    4.32 +	depmod -a -b "$1/" $VERSION-slitaz
    4.33 +}
    4.34 +
    4.35 +post_remove()
    4.36 +{
    4.37 +	depmod -a $VERSION-slitaz
    4.38 +}
    4.39 +
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/linux-cryptoloop/receipt	Sat Jun 07 22:04:11 2008 +0000
     5.3 @@ -0,0 +1,37 @@
     5.4 +# SliTaz package receipt.
     5.5 +
     5.6 +PACKAGE="linux-cryptoloop"
     5.7 +VERSION="2.6.25.5"
     5.8 +CATEGORY="base-system"
     5.9 +SHORT_DESC="The Linux kernel cryptoloop modules."
    5.10 +MAINTAINER="pascal.bellard@slitaz.org"
    5.11 +WANTED="linux"
    5.12 +WEB_SITE="http://www.kernel.org/"
    5.13 +
    5.14 +# Rules to gen a SliTaz package suitable for Tazpkg.
    5.15 +genpkg_rules()
    5.16 +{
    5.17 +    local path
    5.18 +    path=lib/modules/$VERSION-slitaz/kernel
    5.19 +    mkdir -p $fs/$path
    5.20 +    export src
    5.21 +    export _pkg
    5.22 +    $src/list_modules.sh drivers/block/cryptoloop.ko.gz crypto | \
    5.23 +    while read module; do
    5.24 +    	dir=$path/$(dirname $module)
    5.25 +    	[ -d $fs/$dir ] || mkdir -p $fs/$dir
    5.26 +        cp -a $_pkg/$path/$module $fs/$dir
    5.27 +    done
    5.28 +}
    5.29 +
    5.30 +# Post install/remove commands for Tazpkg.
    5.31 +post_install()
    5.32 +{
    5.33 +	depmod -a -b "$1/" $VERSION-slitaz
    5.34 +}
    5.35 +
    5.36 +post_remove()
    5.37 +{
    5.38 +	depmod -a $VERSION-slitaz
    5.39 +}
    5.40 +
     6.1 --- a/linux-headers/receipt	Sat Jun 07 22:29:41 2008 +0000
     6.2 +++ b/linux-headers/receipt	Sat Jun 07 22:04:11 2008 +0000
     6.3 @@ -1,22 +1,13 @@
     6.4  # SliTaz package receipt.
     6.5  
     6.6  PACKAGE="linux-headers"
     6.7 -VERSION="2.6.24.2"
     6.8 +VERSION="2.6.25.5"
     6.9  CATEGORY="development"
    6.10  SHORT_DESC="The Linux Kernel headers files for devel."
    6.11  MAINTAINER="pascal.bellard@slitaz.org"
    6.12  WANTED="linux"
    6.13  WEB_SITE="http://www.kernel.org/"
    6.14  
    6.15 -# Rules to configure and make the package.
    6.16 -compile_rules()
    6.17 -{
    6.18 -	cd $src
    6.19 -	make mrproper
    6.20 -	mkdir -p _pkg/usr
    6.21 -	make INSTALL_HDR_PATH=$PWD/_pkg/usr headers_install
    6.22 -}
    6.23 -
    6.24  # Rules to gen a SliTaz package suitable for Tazpkg.
    6.25  genpkg_rules()
    6.26  {
     7.1 --- a/linux-ieee1394/receipt	Sat Jun 07 22:29:41 2008 +0000
     7.2 +++ b/linux-ieee1394/receipt	Sat Jun 07 22:04:11 2008 +0000
     7.3 @@ -1,7 +1,7 @@
     7.4  # SliTaz package receipt.
     7.5  
     7.6  PACKAGE="linux-ieee1394"
     7.7 -VERSION="2.6.24.2"
     7.8 +VERSION="2.6.25.5"
     7.9  CATEGORY="base-system"
    7.10  SHORT_DESC="The Linux kernel ieee1394 modules."
    7.11  MAINTAINER="pascal.bellard@slitaz.org"
    7.12 @@ -14,21 +14,23 @@
    7.13      local path
    7.14      path=lib/modules/$VERSION-slitaz/kernel
    7.15      mkdir -p $fs/$path
    7.16 -    while read module; do
    7.17 +    export src
    7.18 +    export _pkg
    7.19 +    $src/list_modules.sh drivers/ieee1394 | while read module; do
    7.20      	dir=$path/$(dirname $module)
    7.21      	[ -d $fs/$dir ] || mkdir -p $fs/$dir
    7.22          cp -a $_pkg/$path/$module $fs/$dir
    7.23 -    done < stuff/modules-$VERSION.list
    7.24 +    done
    7.25  }
    7.26  
    7.27  # Post install/remove commands for Tazpkg.
    7.28  post_install()
    7.29  {
    7.30 -	depmod -a -b /$1
    7.31 +	depmod -a -b "$1/" $VERSION-slitaz
    7.32  }
    7.33  
    7.34  post_remove()
    7.35  {
    7.36 -	depmod -a
    7.37 +	depmod -a $VERSION-slitaz
    7.38  }
    7.39  
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/linux-ipv6/receipt	Sat Jun 07 22:04:11 2008 +0000
     8.3 @@ -0,0 +1,36 @@
     8.4 +# SliTaz package receipt.
     8.5 +
     8.6 +PACKAGE="linux-ipv6"
     8.7 +VERSION="2.6.25.5"
     8.8 +CATEGORY="base-system"
     8.9 +SHORT_DESC="The Linux kernel ipv6 modules."
    8.10 +MAINTAINER="pascal.bellard@slitaz.org"
    8.11 +WANTED="linux"
    8.12 +WEB_SITE="http://www.kernel.org/"
    8.13 +
    8.14 +# Rules to gen a SliTaz package suitable for Tazpkg.
    8.15 +genpkg_rules()
    8.16 +{
    8.17 +    local path
    8.18 +    path=lib/modules/$VERSION-slitaz/kernel
    8.19 +    mkdir -p $fs/$path
    8.20 +    export src
    8.21 +    export _pkg
    8.22 +    $src/list_modules.sh net/ipv6 | while read module; do
    8.23 +    	dir=$path/$(dirname $module)
    8.24 +    	[ -d $fs/$dir ] || mkdir -p $fs/$dir
    8.25 +        cp -a $_pkg/$path/$module $fs/$dir
    8.26 +    done
    8.27 +}
    8.28 +
    8.29 +# Post install/remove commands for Tazpkg.
    8.30 +post_install()
    8.31 +{
    8.32 +	depmod -a -b "$1/" $VERSION-slitaz
    8.33 +}
    8.34 +
    8.35 +post_remove()
    8.36 +{
    8.37 +	depmod -a $VERSION-slitaz
    8.38 +}
    8.39 +
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/linux-joystick/receipt	Sat Jun 07 22:04:11 2008 +0000
     9.3 @@ -0,0 +1,36 @@
     9.4 +# SliTaz package receipt.
     9.5 +
     9.6 +PACKAGE="linux-joystick"
     9.7 +VERSION="2.6.25.5"
     9.8 +CATEGORY="base-system"
     9.9 +SHORT_DESC="The Linux kernel joystick modules."
    9.10 +MAINTAINER="pascal.bellard@slitaz.org"
    9.11 +WANTED="linux"
    9.12 +WEB_SITE="http://www.kernel.org/"
    9.13 +
    9.14 +# Rules to gen a SliTaz package suitable for Tazpkg.
    9.15 +genpkg_rules()
    9.16 +{
    9.17 +    local path
    9.18 +    path=lib/modules/$VERSION-slitaz/kernel
    9.19 +    mkdir -p $fs/$path
    9.20 +    export src
    9.21 +    export _pkg
    9.22 +    $src/list_modules.sh drivers/input/joystick | while read module; do
    9.23 +    	dir=$path/$(dirname $module)
    9.24 +    	[ -d $fs/$dir ] || mkdir -p $fs/$dir
    9.25 +        cp -a $_pkg/$path/$module $fs/$dir
    9.26 +    done
    9.27 +}
    9.28 +
    9.29 +# Post install/remove commands for Tazpkg.
    9.30 +post_install()
    9.31 +{
    9.32 +	depmod -a -b "$1/" $VERSION-slitaz
    9.33 +}
    9.34 +
    9.35 +post_remove()
    9.36 +{
    9.37 +	depmod -a $VERSION-slitaz
    9.38 +}
    9.39 +
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/linux-kvm/receipt	Sat Jun 07 22:04:11 2008 +0000
    10.3 @@ -0,0 +1,37 @@
    10.4 +# SliTaz package receipt.
    10.5 +
    10.6 +PACKAGE="linux-kvm"
    10.7 +VERSION="2.6.25.5"
    10.8 +CATEGORY="base-system"
    10.9 +SHORT_DESC="The Linux kernel kvm and virtio modules."
   10.10 +MAINTAINER="pascal.bellard@slitaz.org"
   10.11 +WANTED="linux"
   10.12 +WEB_SITE="http://www.kernel.org/"
   10.13 +
   10.14 +# Rules to gen a SliTaz package suitable for Tazpkg.
   10.15 +genpkg_rules()
   10.16 +{
   10.17 +    local path
   10.18 +    path=lib/modules/$VERSION-slitaz/kernel
   10.19 +    mkdir -p $fs/$path
   10.20 +    export src
   10.21 +    export _pkg
   10.22 +    $src/list_modules.sh arch/x86/kvm drivers/virtio drivers/lguest | \
   10.23 +    while read module; do
   10.24 +    	dir=$path/$(dirname $module)
   10.25 +    	[ -d $fs/$dir ] || mkdir -p $fs/$dir
   10.26 +        cp -a $_pkg/$path/$module $fs/$dir
   10.27 +    done
   10.28 +}
   10.29 +
   10.30 +# Post install/remove commands for Tazpkg.
   10.31 +post_install()
   10.32 +{
   10.33 +	depmod -a -b "$1/" $VERSION-slitaz
   10.34 +}
   10.35 +
   10.36 +post_remove()
   10.37 +{
   10.38 +	depmod -a $VERSION-slitaz
   10.39 +}
   10.40 +
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/linux-mwave/receipt	Sat Jun 07 22:04:11 2008 +0000
    11.3 @@ -0,0 +1,36 @@
    11.4 +# SliTaz package receipt.
    11.5 +
    11.6 +PACKAGE="linux-mwave"
    11.7 +VERSION="2.6.25.5"
    11.8 +CATEGORY="base-system"
    11.9 +SHORT_DESC="The Linux kernel ACP Modem driver module (for IBM Thinkpad)"
   11.10 +MAINTAINER="pascal.bellard@slitaz.org"
   11.11 +WANTED="linux"
   11.12 +WEB_SITE="http://www.kernel.org/"
   11.13 +
   11.14 +# Rules to gen a SliTaz package suitable for Tazpkg.
   11.15 +genpkg_rules()
   11.16 +{
   11.17 +    local path
   11.18 +    path=lib/modules/$VERSION-slitaz/kernel
   11.19 +    mkdir -p $fs/$path
   11.20 +    export src
   11.21 +    export _pkg
   11.22 +    $src/list_modules.sh drivers/char/mwave | while read module; do
   11.23 +    	dir=$path/$(dirname $module)
   11.24 +    	[ -d $fs/$dir ] || mkdir -p $fs/$dir
   11.25 +        cp -a $_pkg/$path/$module $fs/$dir
   11.26 +    done
   11.27 +}
   11.28 +
   11.29 +# Post install/remove commands for Tazpkg.
   11.30 +post_install()
   11.31 +{
   11.32 +	depmod -a -b "$1/" $VERSION-slitaz
   11.33 +}
   11.34 +
   11.35 +post_remove()
   11.36 +{
   11.37 +	depmod -a $VERSION-slitaz
   11.38 +}
   11.39 +
    12.1 --- a/linux-reiserfs/receipt	Sat Jun 07 22:29:41 2008 +0000
    12.2 +++ b/linux-reiserfs/receipt	Sat Jun 07 22:04:11 2008 +0000
    12.3 @@ -1,7 +1,7 @@
    12.4  # SliTaz package receipt.
    12.5  
    12.6  PACKAGE="linux-reiserfs"
    12.7 -VERSION="2.6.24.2"
    12.8 +VERSION="2.6.25.5"
    12.9  CATEGORY="base-system"
   12.10  SHORT_DESC="The Linux kernel reiserfs module."
   12.11  MAINTAINER="pascal.bellard@slitaz.org"
   12.12 @@ -14,21 +14,23 @@
   12.13      local path
   12.14      path=lib/modules/$VERSION-slitaz/kernel
   12.15      mkdir -p $fs/$path
   12.16 -    while read module; do
   12.17 +    export src
   12.18 +    export _pkg
   12.19 +    $src/list_modules.sh fs/reiserfs | while read module; do
   12.20      	dir=$path/$(dirname $module)
   12.21      	[ -d $fs/$dir ] || mkdir -p $fs/$dir
   12.22          cp -a $_pkg/$path/$module $fs/$dir
   12.23 -    done < stuff/modules-$VERSION.list
   12.24 +    done
   12.25  }
   12.26  
   12.27  # Post install/remove commands for Tazpkg.
   12.28  post_install()
   12.29  {
   12.30 -	depmod -a -b /$1
   12.31 +	depmod -a -b "$1/" $VERSION-slitaz
   12.32  }
   12.33  
   12.34  post_remove()
   12.35  {
   12.36 -	depmod -a
   12.37 +	depmod -a $VERSION-slitaz
   12.38  }
   12.39  
    13.1 --- a/linux-sound/receipt	Sat Jun 07 22:29:41 2008 +0000
    13.2 +++ b/linux-sound/receipt	Sat Jun 07 22:04:11 2008 +0000
    13.3 @@ -1,7 +1,7 @@
    13.4  # SliTaz package receipt.
    13.5  
    13.6  PACKAGE="linux-sound"
    13.7 -VERSION="2.6.24.2"
    13.8 +VERSION="2.6.25.5"
    13.9  CATEGORY="base-system"
   13.10  SHORT_DESC="The Linux kernel sound modules."
   13.11  MAINTAINER="pascal.bellard@slitaz.org"
   13.12 @@ -14,18 +14,24 @@
   13.13      local path
   13.14      path=lib/modules/$VERSION-slitaz/kernel
   13.15      mkdir -p $fs/$path
   13.16 -    ( cd $_pkg/$path ; tar cf - sound ) | ( cd $fs/$path ; tar xf - )
   13.17 +    export src
   13.18 +    export _pkg
   13.19 +    $src/list_modules.sh sound | while read module; do
   13.20 +    	dir=$path/$(dirname $module)
   13.21 +    	[ -d $fs/$dir ] || mkdir -p $fs/$dir
   13.22 +        cp -a $_pkg/$path/$module $fs/$dir
   13.23 +    done
   13.24  
   13.25  }
   13.26  
   13.27  # Post install/remove commands for Tazpkg.
   13.28  post_install()
   13.29  {
   13.30 -	depmod -a -b /$1
   13.31 +	depmod -a -b "$1/" $VERSION-slitaz
   13.32  }
   13.33  
   13.34  post_remove()
   13.35  {
   13.36 -	depmod -a
   13.37 +	depmod -a $VERSION-slitaz
   13.38  }
   13.39  
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/linux-video/receipt	Sat Jun 07 22:04:11 2008 +0000
    14.3 @@ -0,0 +1,37 @@
    14.4 +# SliTaz package receipt.
    14.5 +
    14.6 +PACKAGE="linux-video"
    14.7 +VERSION="2.6.25.5"
    14.8 +CATEGORY="base-system"
    14.9 +SHORT_DESC="The Linux kernel video modules."
   14.10 +MAINTAINER="pascal.bellard@slitaz.org"
   14.11 +WANTED="linux"
   14.12 +WEB_SITE="http://www.kernel.org/"
   14.13 +
   14.14 +# Rules to gen a SliTaz package suitable for Tazpkg.
   14.15 +genpkg_rules()
   14.16 +{
   14.17 +    local path
   14.18 +    path=lib/modules/$VERSION-slitaz/kernel
   14.19 +    mkdir -p $fs/$path
   14.20 +    export src
   14.21 +    export _pkg
   14.22 +    $src/list_modules.sh drivers/media/video drivers/video | \
   14.23 +    while read module; do
   14.24 +    	dir=$path/$(dirname $module)
   14.25 +    	[ -d $fs/$dir ] || mkdir -p $fs/$dir
   14.26 +        cp -a $_pkg/$path/$module $fs/$dir
   14.27 +    done
   14.28 +}
   14.29 +
   14.30 +# Post install/remove commands for Tazpkg.
   14.31 +post_install()
   14.32 +{
   14.33 +	depmod -a -b "$1/" $VERSION-slitaz
   14.34 +}
   14.35 +
   14.36 +post_remove()
   14.37 +{
   14.38 +	depmod -a $VERSION-slitaz
   14.39 +}
   14.40 +
    15.1 --- a/linux-wireless/receipt	Sat Jun 07 22:29:41 2008 +0000
    15.2 +++ b/linux-wireless/receipt	Sat Jun 07 22:04:11 2008 +0000
    15.3 @@ -1,7 +1,7 @@
    15.4  # SliTaz package receipt.
    15.5  
    15.6  PACKAGE="linux-wireless"
    15.7 -VERSION="2.6.24.2"
    15.8 +VERSION="2.6.25.5"
    15.9  CATEGORY="base-system"
   15.10  SHORT_DESC="The Linux kernel wireless modules."
   15.11  MAINTAINER="pascal.bellard@slitaz.org"
   15.12 @@ -14,21 +14,24 @@
   15.13      local path
   15.14      path=lib/modules/$VERSION-slitaz/kernel
   15.15      mkdir -p $fs/$path
   15.16 +    export src
   15.17 +    export _pkg
   15.18 +    $src/list_modules.sh drivers/net/wireless net/wireless net/ieee80211 | \
   15.19      while read module; do
   15.20      	dir=$path/$(dirname $module)
   15.21      	[ -d $fs/$dir ] || mkdir -p $fs/$dir
   15.22          cp -a $_pkg/$path/$module $fs/$dir
   15.23 -    done < stuff/modules-$VERSION.list
   15.24 +    done
   15.25  }
   15.26  
   15.27  # Post install/remove commands for Tazpkg.
   15.28  post_install()
   15.29  {
   15.30 -	depmod -a -b /$1
   15.31 +	depmod -a -b "$1/" $VERSION-slitaz
   15.32  }
   15.33  
   15.34  post_remove()
   15.35  {
   15.36 -	depmod -a
   15.37 +	depmod -a $VERSION-slitaz
   15.38  }
   15.39  
    16.1 --- a/linux/receipt	Sat Jun 07 22:29:41 2008 +0000
    16.2 +++ b/linux/receipt	Sat Jun 07 22:04:11 2008 +0000
    16.3 @@ -1,7 +1,7 @@
    16.4  # SliTaz package receipt.
    16.5  
    16.6  PACKAGE="linux"
    16.7 -VERSION="2.6.24.2"
    16.8 +VERSION="2.6.25.5"
    16.9  CATEGORY="base-system"
   16.10  SHORT_DESC="The Linux kernel and modules."
   16.11  MAINTAINER="pascal.bellard@slitaz.org"
   16.12 @@ -13,34 +13,22 @@
   16.13  compile_rules()
   16.14  {
   16.15  	cd $src
   16.16 -	# lzma and boot patch from pascal
   16.17 +	# lzma and misc patches from pascal
   16.18  	while read patch_file; do
   16.19  		echo "Apply $patch_file"
   16.20  		patch -p1 < ../stuff/$patch_file || return 1
   16.21  	done <<EOT
   16.22 -boot-kernel.u
   16.23  $PACKAGE-lzma-$VERSION.u
   16.24 -decompress_unlzma.u
   16.25 +$PACKAGE-utf8-$VERSION.u
   16.26 +$PACKAGE-diff-$VERSION.u
   16.27  EOT
   16.28  	make mrproper	
   16.29  	cp ../stuff/$PACKAGE-$VERSION-slitaz.config .config
   16.30 -	while read patch_file; do
   16.31 -		echo "Apply $patch_file"
   16.32 -		patch -p1 < ../stuff/$patch_file || return 1
   16.33 -	done <<EOT
   16.34 -config-acpi-$VERSION.u
   16.35 -linux-utf8-$VERSION.u
   16.36 -config-ieee1394-$VERSION.u
   16.37 -linux-lzma-export.u
   16.38 -config-tun-$VERSION.u
   16.39 -config-reiserfs-$VERSION.u
   16.40 -config-wireless-$VERSION.u
   16.41 -$PACKAGE-lzma-loram-$VERSION.u
   16.42 -EOT
   16.43  	make oldconfig
   16.44  	make bzImage
   16.45  	make modules
   16.46  	make INSTALL_MOD_PATH=$PWD/_pkg modules_install
   16.47 +	make INSTALL_HDR_PATH=$PWD/_pkg/usr headers_install
   16.48  } 
   16.49  
   16.50  # Rules to gen a SliTaz package suitable for Tazpkg.
   16.51 @@ -57,18 +45,27 @@
   16.52      path=$fs/lib/modules/$VERSION-slitaz/kernel
   16.53      mkdir -p $path
   16.54      cp -a $_pkg/lib/modules/$VERSION-slitaz/mo* $fs/lib/modules/$VERSION-slitaz
   16.55 +    cp ./stuff/list_modules.sh $src
   16.56 +    export src
   16.57 +    export _pkg
   16.58 +    $src/list_modules.sh $(cat stuff/modules-$VERSION.list) > $src/modules.list
   16.59      while read module; do
   16.60      	dir=$(dirname $module)
   16.61      	[ -d $path/$dir ] || mkdir -p $path/$dir
   16.62          cp -a $_pkg/lib/modules/$VERSION-slitaz/kernel/$module $path/$dir
   16.63 -    done < stuff/modules-$VERSION.list
   16.64 +    done < $src/modules.list
   16.65      # Remove unresolved links
   16.66      rm -f $fs/lib/modules/$VERSION-slitaz/build
   16.67      rm -f $fs/lib/modules/$VERSION-slitaz/source
   16.68 -    # Packages all linux pkgs
   16.69 -    for i in acpi ieee1394 reiserfs sound wireless
   16.70 +    # Package all linux pkgs
   16.71 +    for i in $(cd $WOK; ls -d linux-*)
   16.72      do
   16.73 -    	tazwok genpkg linux-$i
   16.74 +    	tazwok genpkg $i
   16.75 +    done
   16.76 +    # Cook all packages with a kernel module
   16.77 +    for i in $(cd $WOK; grep -l 'tazwok cook linux$' */receipt)
   16.78 +    do
   16.79 +    	echo tazwok cook ${i%/receipt}
   16.80      done
   16.81  }
   16.82  
   16.83 @@ -77,13 +74,15 @@
   16.84  post_install()
   16.85  {
   16.86      echo "Processing post-install commands..."
   16.87 -    depmod -a -b "$1/"
   16.88 -    echo "----"
   16.89 -    echo "If you have GRUB installed, you can add tree lines to boot SliTaz."
   16.90 -    echo "Example /boot/grub/menu.lst"
   16.91 -    echo -e "
   16.92 +    depmod -a -b "$1/" $VERSION-slitaz
   16.93 +    cat <<EOT
   16.94 +----
   16.95 +If you have GRUB installed, you can add tree lines to boot SliTaz.
   16.96 +Example /boot/grub/menu.lst
   16.97 + 
   16.98  title  SliTaz GNU/Linux (Kernel $VERSION-slitaz)
   16.99         root(hd0,0)
  16.100 -       kernel /boot/vmlinuz-$VERSION-slitaz root=/dev/hda1 vga=771\n"
  16.101 -    echo "----"
  16.102 +       kernel /boot/vmlinuz-$VERSION-slitaz root=/dev/hda1 vga=771
  16.103 +----
  16.104 +EOT
  16.105  }
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/linux/stuff/linux-2.6.25.5-slitaz.config	Sat Jun 07 22:04:11 2008 +0000
    17.3 @@ -0,0 +1,2237 @@
    17.4 +#
    17.5 +# Automatically generated make config: don't edit
    17.6 +# Linux kernel version: 2.6.25.5
    17.7 +# Sat Jun  7 10:08:44 2008
    17.8 +#
    17.9 +# CONFIG_64BIT is not set
   17.10 +CONFIG_X86_32=y
   17.11 +# CONFIG_X86_64 is not set
   17.12 +CONFIG_X86=y
   17.13 +CONFIG_DEFCONFIG_LIST="arch/x86/configs/i386_defconfig"
   17.14 +# CONFIG_GENERIC_LOCKBREAK is not set
   17.15 +CONFIG_GENERIC_TIME=y
   17.16 +CONFIG_GENERIC_CMOS_UPDATE=y
   17.17 +CONFIG_CLOCKSOURCE_WATCHDOG=y
   17.18 +CONFIG_GENERIC_CLOCKEVENTS=y
   17.19 +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
   17.20 +CONFIG_LOCKDEP_SUPPORT=y
   17.21 +CONFIG_STACKTRACE_SUPPORT=y
   17.22 +CONFIG_HAVE_LATENCYTOP_SUPPORT=y
   17.23 +CONFIG_SEMAPHORE_SLEEPERS=y
   17.24 +CONFIG_FAST_CMPXCHG_LOCAL=y
   17.25 +CONFIG_MMU=y
   17.26 +CONFIG_ZONE_DMA=y
   17.27 +CONFIG_GENERIC_ISA_DMA=y
   17.28 +CONFIG_GENERIC_IOMAP=y
   17.29 +CONFIG_GENERIC_BUG=y
   17.30 +CONFIG_GENERIC_HWEIGHT=y
   17.31 +# CONFIG_GENERIC_GPIO is not set
   17.32 +CONFIG_ARCH_MAY_HAVE_PC_FDC=y
   17.33 +CONFIG_DMI=y
   17.34 +CONFIG_RWSEM_GENERIC_SPINLOCK=y
   17.35 +# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
   17.36 +# CONFIG_ARCH_HAS_ILOG2_U32 is not set
   17.37 +# CONFIG_ARCH_HAS_ILOG2_U64 is not set
   17.38 +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
   17.39 +CONFIG_GENERIC_CALIBRATE_DELAY=y
   17.40 +# CONFIG_GENERIC_TIME_VSYSCALL is not set
   17.41 +CONFIG_ARCH_HAS_CPU_RELAX=y
   17.42 +# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
   17.43 +CONFIG_ARCH_HIBERNATION_POSSIBLE=y
   17.44 +CONFIG_ARCH_SUSPEND_POSSIBLE=y
   17.45 +# CONFIG_ZONE_DMA32 is not set
   17.46 +CONFIG_ARCH_POPULATES_NODE_MAP=y
   17.47 +# CONFIG_AUDIT_ARCH is not set
   17.48 +CONFIG_ARCH_SUPPORTS_AOUT=y
   17.49 +CONFIG_GENERIC_HARDIRQS=y
   17.50 +CONFIG_GENERIC_IRQ_PROBE=y
   17.51 +CONFIG_GENERIC_PENDING_IRQ=y
   17.52 +CONFIG_X86_SMP=y
   17.53 +CONFIG_X86_32_SMP=y
   17.54 +CONFIG_X86_HT=y
   17.55 +CONFIG_X86_BIOS_REBOOT=y
   17.56 +CONFIG_X86_TRAMPOLINE=y
   17.57 +CONFIG_KTIME_SCALAR=y
   17.58 +
   17.59 +#
   17.60 +# General setup
   17.61 +#
   17.62 +CONFIG_EXPERIMENTAL=y
   17.63 +CONFIG_LOCK_KERNEL=y
   17.64 +CONFIG_INIT_ENV_ARG_LIMIT=32
   17.65 +CONFIG_LOCALVERSION="-slitaz"
   17.66 +# CONFIG_LOCALVERSION_AUTO is not set
   17.67 +# CONFIG_KERNEL_GZIP is not set
   17.68 +# CONFIG_KERNEL_BZIP2 is not set
   17.69 +CONFIG_KERNEL_LZMA=y
   17.70 +CONFIG_SWAP=y
   17.71 +CONFIG_SYSVIPC=y
   17.72 +CONFIG_SYSVIPC_SYSCTL=y
   17.73 +CONFIG_POSIX_MQUEUE=y
   17.74 +CONFIG_BSD_PROCESS_ACCT=y
   17.75 +# CONFIG_BSD_PROCESS_ACCT_V3 is not set
   17.76 +# CONFIG_TASKSTATS is not set
   17.77 +# CONFIG_AUDIT is not set
   17.78 +CONFIG_IKCONFIG=y
   17.79 +CONFIG_IKCONFIG_PROC=y
   17.80 +CONFIG_LOG_BUF_SHIFT=14
   17.81 +# CONFIG_CGROUPS is not set
   17.82 +CONFIG_GROUP_SCHED=y
   17.83 +CONFIG_FAIR_GROUP_SCHED=y
   17.84 +# CONFIG_RT_GROUP_SCHED is not set
   17.85 +CONFIG_USER_SCHED=y
   17.86 +# CONFIG_CGROUP_SCHED is not set
   17.87 +CONFIG_SYSFS_DEPRECATED=y
   17.88 +CONFIG_SYSFS_DEPRECATED_V2=y
   17.89 +# CONFIG_RELAY is not set
   17.90 +CONFIG_NAMESPACES=y
   17.91 +# CONFIG_UTS_NS is not set
   17.92 +# CONFIG_IPC_NS is not set
   17.93 +# CONFIG_USER_NS is not set
   17.94 +# CONFIG_PID_NS is not set
   17.95 +CONFIG_BLK_DEV_INITRD=y
   17.96 +CONFIG_INITRAMFS_SOURCE=""
   17.97 +CONFIG_CC_OPTIMIZE_FOR_SIZE=y
   17.98 +CONFIG_SYSCTL=y
   17.99 +# CONFIG_EMBEDDED is not set
  17.100 +CONFIG_UID16=y
  17.101 +CONFIG_SYSCTL_SYSCALL=y
  17.102 +CONFIG_KALLSYMS=y
  17.103 +# CONFIG_KALLSYMS_EXTRA_PASS is not set
  17.104 +CONFIG_HOTPLUG=y
  17.105 +CONFIG_PRINTK=y
  17.106 +CONFIG_BUG=y
  17.107 +CONFIG_ELF_CORE=y
  17.108 +CONFIG_COMPAT_BRK=y
  17.109 +CONFIG_BASE_FULL=y
  17.110 +CONFIG_FUTEX=y
  17.111 +CONFIG_ANON_INODES=y
  17.112 +CONFIG_EPOLL=y
  17.113 +CONFIG_SIGNALFD=y
  17.114 +CONFIG_TIMERFD=y
  17.115 +CONFIG_EVENTFD=y
  17.116 +CONFIG_SHMEM=y
  17.117 +CONFIG_VM_EVENT_COUNTERS=y
  17.118 +CONFIG_SLAB=y
  17.119 +# CONFIG_SLUB is not set
  17.120 +# CONFIG_SLOB is not set
  17.121 +# CONFIG_PROFILING is not set
  17.122 +# CONFIG_MARKERS is not set
  17.123 +CONFIG_HAVE_OPROFILE=y
  17.124 +# CONFIG_KPROBES is not set
  17.125 +CONFIG_HAVE_KPROBES=y
  17.126 +CONFIG_HAVE_KRETPROBES=y
  17.127 +CONFIG_PROC_PAGE_MONITOR=y
  17.128 +CONFIG_SLABINFO=y
  17.129 +CONFIG_RT_MUTEXES=y
  17.130 +# CONFIG_TINY_SHMEM is not set
  17.131 +CONFIG_BASE_SMALL=0
  17.132 +CONFIG_MODULES=y
  17.133 +CONFIG_MODULE_UNLOAD=y
  17.134 +# CONFIG_MODULE_FORCE_UNLOAD is not set
  17.135 +# CONFIG_MODVERSIONS is not set
  17.136 +# CONFIG_MODULE_SRCVERSION_ALL is not set
  17.137 +CONFIG_KMOD=y
  17.138 +CONFIG_STOP_MACHINE=y
  17.139 +CONFIG_BLOCK=y
  17.140 +# CONFIG_LBD is not set
  17.141 +# CONFIG_BLK_DEV_IO_TRACE is not set
  17.142 +# CONFIG_LSF is not set
  17.143 +# CONFIG_BLK_DEV_BSG is not set
  17.144 +
  17.145 +#
  17.146 +# IO Schedulers
  17.147 +#
  17.148 +CONFIG_IOSCHED_NOOP=y
  17.149 +# CONFIG_IOSCHED_AS is not set
  17.150 +CONFIG_IOSCHED_DEADLINE=y
  17.151 +# CONFIG_IOSCHED_CFQ is not set
  17.152 +# CONFIG_DEFAULT_AS is not set
  17.153 +CONFIG_DEFAULT_DEADLINE=y
  17.154 +# CONFIG_DEFAULT_CFQ is not set
  17.155 +# CONFIG_DEFAULT_NOOP is not set
  17.156 +CONFIG_DEFAULT_IOSCHED="deadline"
  17.157 +CONFIG_PREEMPT_NOTIFIERS=y
  17.158 +CONFIG_CLASSIC_RCU=y
  17.159 +
  17.160 +#
  17.161 +# Processor type and features
  17.162 +#
  17.163 +# CONFIG_TICK_ONESHOT is not set
  17.164 +# CONFIG_NO_HZ is not set
  17.165 +# CONFIG_HIGH_RES_TIMERS is not set
  17.166 +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
  17.167 +CONFIG_SMP=y
  17.168 +CONFIG_X86_PC=y
  17.169 +# CONFIG_X86_ELAN is not set
  17.170 +# CONFIG_X86_VOYAGER is not set
  17.171 +# CONFIG_X86_NUMAQ is not set
  17.172 +# CONFIG_X86_SUMMIT is not set
  17.173 +# CONFIG_X86_BIGSMP is not set
  17.174 +# CONFIG_X86_VISWS is not set
  17.175 +# CONFIG_X86_GENERICARCH is not set
  17.176 +# CONFIG_X86_ES7000 is not set
  17.177 +# CONFIG_X86_RDC321X is not set
  17.178 +# CONFIG_X86_VSMP is not set
  17.179 +CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
  17.180 +# CONFIG_PARAVIRT_GUEST is not set
  17.181 +CONFIG_M386=y
  17.182 +# CONFIG_M486 is not set
  17.183 +# CONFIG_M586 is not set
  17.184 +# CONFIG_M586TSC is not set
  17.185 +# CONFIG_M586MMX is not set
  17.186 +# CONFIG_M686 is not set
  17.187 +# CONFIG_MPENTIUMII is not set
  17.188 +# CONFIG_MPENTIUMIII is not set
  17.189 +# CONFIG_MPENTIUMM is not set
  17.190 +# CONFIG_MPENTIUM4 is not set
  17.191 +# CONFIG_MK6 is not set
  17.192 +# CONFIG_MK7 is not set
  17.193 +# CONFIG_MK8 is not set
  17.194 +# CONFIG_MCRUSOE is not set
  17.195 +# CONFIG_MEFFICEON is not set
  17.196 +# CONFIG_MWINCHIPC6 is not set
  17.197 +# CONFIG_MWINCHIP2 is not set
  17.198 +# CONFIG_MWINCHIP3D is not set
  17.199 +# CONFIG_MGEODEGX1 is not set
  17.200 +# CONFIG_MGEODE_LX is not set
  17.201 +# CONFIG_MCYRIXIII is not set
  17.202 +# CONFIG_MVIAC3_2 is not set
  17.203 +# CONFIG_MVIAC7 is not set
  17.204 +# CONFIG_MPSC is not set
  17.205 +# CONFIG_MCORE2 is not set
  17.206 +# CONFIG_GENERIC_CPU is not set
  17.207 +CONFIG_X86_GENERIC=y
  17.208 +# CONFIG_X86_CMPXCHG is not set
  17.209 +CONFIG_X86_L1_CACHE_SHIFT=7
  17.210 +CONFIG_X86_PPRO_FENCE=y
  17.211 +CONFIG_X86_F00F_BUG=y
  17.212 +CONFIG_X86_INTEL_USERCOPY=y
  17.213 +CONFIG_X86_MINIMUM_CPU_FAMILY=3
  17.214 +# CONFIG_HPET_TIMER is not set
  17.215 +# CONFIG_IOMMU_HELPER is not set
  17.216 +CONFIG_NR_CPUS=8
  17.217 +# CONFIG_SCHED_SMT is not set
  17.218 +CONFIG_SCHED_MC=y
  17.219 +CONFIG_PREEMPT_NONE=y
  17.220 +# CONFIG_PREEMPT_VOLUNTARY is not set
  17.221 +# CONFIG_PREEMPT is not set
  17.222 +CONFIG_X86_LOCAL_APIC=y
  17.223 +CONFIG_X86_IO_APIC=y
  17.224 +# CONFIG_X86_MCE is not set
  17.225 +CONFIG_VM86=y
  17.226 +# CONFIG_TOSHIBA is not set
  17.227 +# CONFIG_I8K is not set
  17.228 +# CONFIG_X86_REBOOTFIXUPS is not set
  17.229 +# CONFIG_MICROCODE is not set
  17.230 +# CONFIG_X86_MSR is not set
  17.231 +# CONFIG_X86_CPUID is not set
  17.232 +# CONFIG_NOHIGHMEM is not set
  17.233 +CONFIG_HIGHMEM4G=y
  17.234 +# CONFIG_HIGHMEM64G is not set
  17.235 +CONFIG_PAGE_OFFSET=0xC0000000
  17.236 +CONFIG_HIGHMEM=y
  17.237 +CONFIG_ARCH_FLATMEM_ENABLE=y
  17.238 +CONFIG_ARCH_SPARSEMEM_ENABLE=y
  17.239 +CONFIG_ARCH_SELECT_MEMORY_MODEL=y
  17.240 +CONFIG_SELECT_MEMORY_MODEL=y
  17.241 +CONFIG_FLATMEM_MANUAL=y
  17.242 +# CONFIG_DISCONTIGMEM_MANUAL is not set
  17.243 +# CONFIG_SPARSEMEM_MANUAL is not set
  17.244 +CONFIG_FLATMEM=y
  17.245 +CONFIG_FLAT_NODE_MEM_MAP=y
  17.246 +CONFIG_SPARSEMEM_STATIC=y
  17.247 +# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
  17.248 +CONFIG_SPLIT_PTLOCK_CPUS=4
  17.249 +# CONFIG_RESOURCES_64BIT is not set
  17.250 +CONFIG_ZONE_DMA_FLAG=1
  17.251 +CONFIG_BOUNCE=y
  17.252 +CONFIG_VIRT_TO_BUS=y
  17.253 +# CONFIG_HIGHPTE is not set
  17.254 +CONFIG_MATH_EMULATION=y
  17.255 +CONFIG_MTRR=y
  17.256 +# CONFIG_EFI is not set
  17.257 +CONFIG_IRQBALANCE=y
  17.258 +# CONFIG_SECCOMP is not set
  17.259 +# CONFIG_HZ_100 is not set
  17.260 +# CONFIG_HZ_250 is not set
  17.261 +CONFIG_HZ_300=y
  17.262 +# CONFIG_HZ_1000 is not set
  17.263 +CONFIG_HZ=300
  17.264 +# CONFIG_SCHED_HRTICK is not set
  17.265 +CONFIG_KEXEC=y
  17.266 +# CONFIG_CRASH_DUMP is not set
  17.267 +CONFIG_PHYSICAL_START=0x100000
  17.268 +# CONFIG_RELOCATABLE is not set
  17.269 +CONFIG_PHYSICAL_ALIGN=0x100000
  17.270 +# CONFIG_HOTPLUG_CPU is not set
  17.271 +CONFIG_COMPAT_VDSO=y
  17.272 +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
  17.273 +
  17.274 +#
  17.275 +# Power management options
  17.276 +#
  17.277 +CONFIG_PM=y
  17.278 +# CONFIG_PM_LEGACY is not set
  17.279 +# CONFIG_PM_DEBUG is not set
  17.280 +# CONFIG_SUSPEND is not set
  17.281 +# CONFIG_HIBERNATION is not set
  17.282 +CONFIG_ACPI=y
  17.283 +# CONFIG_ACPI_PROCFS is not set
  17.284 +CONFIG_ACPI_PROCFS_POWER=y
  17.285 +CONFIG_ACPI_SYSFS_POWER=y
  17.286 +CONFIG_ACPI_PROC_EVENT=y
  17.287 +CONFIG_ACPI_AC=m
  17.288 +CONFIG_ACPI_BATTERY=m
  17.289 +# CONFIG_ACPI_BUTTON is not set
  17.290 +# CONFIG_ACPI_FAN is not set
  17.291 +CONFIG_ACPI_DOCK=y
  17.292 +# CONFIG_ACPI_BAY is not set
  17.293 +CONFIG_ACPI_PROCESSOR=y
  17.294 +CONFIG_ACPI_THERMAL=y
  17.295 +# CONFIG_ACPI_WMI is not set
  17.296 +# CONFIG_ACPI_ASUS is not set
  17.297 +# CONFIG_ACPI_TOSHIBA is not set
  17.298 +# CONFIG_ACPI_CUSTOM_DSDT is not set
  17.299 +CONFIG_ACPI_BLACKLIST_YEAR=0
  17.300 +# CONFIG_ACPI_DEBUG is not set
  17.301 +CONFIG_ACPI_EC=y
  17.302 +CONFIG_ACPI_POWER=y
  17.303 +CONFIG_ACPI_SYSTEM=y
  17.304 +CONFIG_X86_PM_TIMER=y
  17.305 +# CONFIG_ACPI_CONTAINER is not set
  17.306 +# CONFIG_ACPI_SBS is not set
  17.307 +
  17.308 +#
  17.309 +# CPU Frequency scaling
  17.310 +#
  17.311 +# CONFIG_CPU_FREQ is not set
  17.312 +# CONFIG_CPU_IDLE is not set
  17.313 +
  17.314 +#
  17.315 +# Bus options (PCI etc.)
  17.316 +#
  17.317 +CONFIG_PCI=y
  17.318 +# CONFIG_PCI_GOBIOS is not set
  17.319 +# CONFIG_PCI_GOMMCONFIG is not set
  17.320 +# CONFIG_PCI_GODIRECT is not set
  17.321 +CONFIG_PCI_GOANY=y
  17.322 +CONFIG_PCI_BIOS=y
  17.323 +CONFIG_PCI_DIRECT=y
  17.324 +CONFIG_PCI_MMCONFIG=y
  17.325 +CONFIG_PCI_DOMAINS=y
  17.326 +# CONFIG_PCIEPORTBUS is not set
  17.327 +CONFIG_ARCH_SUPPORTS_MSI=y
  17.328 +# CONFIG_PCI_MSI is not set
  17.329 +CONFIG_PCI_LEGACY=y
  17.330 +CONFIG_HT_IRQ=y
  17.331 +CONFIG_ISA_DMA_API=y
  17.332 +CONFIG_ISA=y
  17.333 +# CONFIG_EISA is not set
  17.334 +# CONFIG_MCA is not set
  17.335 +# CONFIG_SCx200 is not set
  17.336 +CONFIG_K8_NB=y
  17.337 +CONFIG_PCCARD=m
  17.338 +# CONFIG_PCMCIA_DEBUG is not set
  17.339 +CONFIG_PCMCIA=m
  17.340 +CONFIG_PCMCIA_LOAD_CIS=y
  17.341 +CONFIG_PCMCIA_IOCTL=y
  17.342 +CONFIG_CARDBUS=y
  17.343 +
  17.344 +#
  17.345 +# PC-card bridges
  17.346 +#
  17.347 +CONFIG_YENTA=m
  17.348 +CONFIG_YENTA_O2=y
  17.349 +CONFIG_YENTA_RICOH=y
  17.350 +CONFIG_YENTA_TI=y
  17.351 +CONFIG_YENTA_ENE_TUNE=y
  17.352 +CONFIG_YENTA_TOSHIBA=y
  17.353 +CONFIG_PD6729=m
  17.354 +CONFIG_I82092=m
  17.355 +CONFIG_I82365=m
  17.356 +# CONFIG_TCIC is not set
  17.357 +CONFIG_PCMCIA_PROBE=y
  17.358 +CONFIG_PCCARD_NONSTATIC=m
  17.359 +# CONFIG_HOTPLUG_PCI is not set
  17.360 +
  17.361 +#
  17.362 +# Executable file formats / Emulations
  17.363 +#
  17.364 +CONFIG_BINFMT_ELF=y
  17.365 +# CONFIG_BINFMT_AOUT is not set
  17.366 +CONFIG_BINFMT_MISC=m
  17.367 +
  17.368 +#
  17.369 +# Networking
  17.370 +#
  17.371 +CONFIG_NET=y
  17.372 +
  17.373 +#
  17.374 +# Networking options
  17.375 +#
  17.376 +CONFIG_PACKET=y
  17.377 +# CONFIG_PACKET_MMAP is not set
  17.378 +CONFIG_UNIX=y
  17.379 +CONFIG_XFRM=y
  17.380 +# CONFIG_XFRM_USER is not set
  17.381 +# CONFIG_XFRM_SUB_POLICY is not set
  17.382 +# CONFIG_XFRM_MIGRATE is not set
  17.383 +# CONFIG_XFRM_STATISTICS is not set
  17.384 +CONFIG_NET_KEY=y
  17.385 +# CONFIG_NET_KEY_MIGRATE is not set
  17.386 +CONFIG_INET=y
  17.387 +# CONFIG_IP_MULTICAST is not set
  17.388 +# CONFIG_IP_ADVANCED_ROUTER is not set
  17.389 +CONFIG_IP_FIB_HASH=y
  17.390 +# CONFIG_IP_PNP is not set
  17.391 +# CONFIG_NET_IPIP is not set
  17.392 +# CONFIG_NET_IPGRE is not set
  17.393 +# CONFIG_ARPD is not set
  17.394 +CONFIG_SYN_COOKIES=y
  17.395 +CONFIG_INET_AH=y
  17.396 +CONFIG_INET_ESP=y
  17.397 +CONFIG_INET_IPCOMP=y
  17.398 +CONFIG_INET_XFRM_TUNNEL=y
  17.399 +CONFIG_INET_TUNNEL=y
  17.400 +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
  17.401 +# CONFIG_INET_XFRM_MODE_TUNNEL is not set
  17.402 +# CONFIG_INET_XFRM_MODE_BEET is not set
  17.403 +# CONFIG_INET_LRO is not set
  17.404 +CONFIG_INET_DIAG=y
  17.405 +CONFIG_INET_TCP_DIAG=y
  17.406 +# CONFIG_TCP_CONG_ADVANCED is not set
  17.407 +CONFIG_TCP_CONG_CUBIC=y
  17.408 +CONFIG_DEFAULT_TCP_CONG="cubic"
  17.409 +# CONFIG_TCP_MD5SIG is not set
  17.410 +# CONFIG_IP_VS is not set
  17.411 +CONFIG_IPV6=m
  17.412 +# CONFIG_IPV6_PRIVACY is not set
  17.413 +# CONFIG_IPV6_ROUTER_PREF is not set
  17.414 +# CONFIG_IPV6_OPTIMISTIC_DAD is not set
  17.415 +# CONFIG_INET6_AH is not set
  17.416 +# CONFIG_INET6_ESP is not set
  17.417 +# CONFIG_INET6_IPCOMP is not set
  17.418 +# CONFIG_IPV6_MIP6 is not set
  17.419 +# CONFIG_INET6_XFRM_TUNNEL is not set
  17.420 +# CONFIG_INET6_TUNNEL is not set
  17.421 +CONFIG_INET6_XFRM_MODE_TRANSPORT=m
  17.422 +CONFIG_INET6_XFRM_MODE_TUNNEL=m
  17.423 +CONFIG_INET6_XFRM_MODE_BEET=m
  17.424 +# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
  17.425 +CONFIG_IPV6_SIT=m
  17.426 +# CONFIG_IPV6_TUNNEL is not set
  17.427 +# CONFIG_IPV6_MULTIPLE_TABLES is not set
  17.428 +# CONFIG_NETWORK_SECMARK is not set
  17.429 +CONFIG_NETFILTER=y
  17.430 +# CONFIG_NETFILTER_DEBUG is not set
  17.431 +CONFIG_NETFILTER_ADVANCED=y
  17.432 +
  17.433 +#
  17.434 +# Core Netfilter Configuration
  17.435 +#
  17.436 +CONFIG_NETFILTER_NETLINK=m
  17.437 +# CONFIG_NETFILTER_NETLINK_QUEUE is not set
  17.438 +CONFIG_NETFILTER_NETLINK_LOG=m
  17.439 +# CONFIG_NF_CONNTRACK is not set
  17.440 +CONFIG_NETFILTER_XTABLES=y
  17.441 +# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
  17.442 +# CONFIG_NETFILTER_XT_TARGET_MARK is not set
  17.443 +# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
  17.444 +# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
  17.445 +# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
  17.446 +# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
  17.447 +# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
  17.448 +# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
  17.449 +# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
  17.450 +# CONFIG_NETFILTER_XT_MATCH_ESP is not set
  17.451 +# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
  17.452 +# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
  17.453 +# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
  17.454 +# CONFIG_NETFILTER_XT_MATCH_MAC is not set
  17.455 +# CONFIG_NETFILTER_XT_MATCH_MARK is not set
  17.456 +# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
  17.457 +# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
  17.458 +# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
  17.459 +# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
  17.460 +# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
  17.461 +# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
  17.462 +# CONFIG_NETFILTER_XT_MATCH_REALM is not set
  17.463 +# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
  17.464 +# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
  17.465 +# CONFIG_NETFILTER_XT_MATCH_STRING is not set
  17.466 +# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
  17.467 +# CONFIG_NETFILTER_XT_MATCH_TIME is not set
  17.468 +# CONFIG_NETFILTER_XT_MATCH_U32 is not set
  17.469 +# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
  17.470 +
  17.471 +#
  17.472 +# IP: Netfilter Configuration
  17.473 +#
  17.474 +# CONFIG_IP_NF_QUEUE is not set
  17.475 +CONFIG_IP_NF_IPTABLES=y
  17.476 +# CONFIG_IP_NF_MATCH_RECENT is not set
  17.477 +# CONFIG_IP_NF_MATCH_ECN is not set
  17.478 +# CONFIG_IP_NF_MATCH_AH is not set
  17.479 +# CONFIG_IP_NF_MATCH_TTL is not set
  17.480 +# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
  17.481 +CONFIG_IP_NF_FILTER=y
  17.482 +CONFIG_IP_NF_TARGET_REJECT=m
  17.483 +# CONFIG_IP_NF_TARGET_LOG is not set
  17.484 +# CONFIG_IP_NF_TARGET_ULOG is not set
  17.485 +# CONFIG_IP_NF_MANGLE is not set
  17.486 +# CONFIG_IP_NF_RAW is not set
  17.487 +# CONFIG_IP_NF_ARPTABLES is not set
  17.488 +
  17.489 +#
  17.490 +# IPv6: Netfilter Configuration
  17.491 +#
  17.492 +# CONFIG_IP6_NF_QUEUE is not set
  17.493 +# CONFIG_IP6_NF_IPTABLES is not set
  17.494 +# CONFIG_IP_DCCP is not set
  17.495 +# CONFIG_IP_SCTP is not set
  17.496 +# CONFIG_TIPC is not set
  17.497 +# CONFIG_ATM is not set
  17.498 +# CONFIG_BRIDGE is not set
  17.499 +# CONFIG_VLAN_8021Q is not set
  17.500 +# CONFIG_DECNET is not set
  17.501 +# CONFIG_LLC2 is not set
  17.502 +# CONFIG_IPX is not set
  17.503 +# CONFIG_ATALK is not set
  17.504 +# CONFIG_X25 is not set
  17.505 +# CONFIG_LAPB is not set
  17.506 +# CONFIG_ECONET is not set
  17.507 +# CONFIG_WAN_ROUTER is not set
  17.508 +# CONFIG_NET_SCHED is not set
  17.509 +CONFIG_NET_SCH_FIFO=y
  17.510 +
  17.511 +#
  17.512 +# Network testing
  17.513 +#
  17.514 +# CONFIG_NET_PKTGEN is not set
  17.515 +# CONFIG_HAMRADIO is not set
  17.516 +# CONFIG_CAN is not set
  17.517 +# CONFIG_IRDA is not set
  17.518 +CONFIG_BT=m
  17.519 +CONFIG_BT_L2CAP=m
  17.520 +CONFIG_BT_SCO=m
  17.521 +CONFIG_BT_RFCOMM=m
  17.522 +# CONFIG_BT_RFCOMM_TTY is not set
  17.523 +# CONFIG_BT_BNEP is not set
  17.524 +# CONFIG_BT_HIDP is not set
  17.525 +
  17.526 +#
  17.527 +# Bluetooth device drivers
  17.528 +#
  17.529 +CONFIG_BT_HCIUSB=m
  17.530 +# CONFIG_BT_HCIUSB_SCO is not set
  17.531 +# CONFIG_BT_HCIUART is not set
  17.532 +# CONFIG_BT_HCIBCM203X is not set
  17.533 +# CONFIG_BT_HCIBPA10X is not set
  17.534 +# CONFIG_BT_HCIBFUSB is not set
  17.535 +# CONFIG_BT_HCIDTL1 is not set
  17.536 +# CONFIG_BT_HCIBT3C is not set
  17.537 +# CONFIG_BT_HCIBLUECARD is not set
  17.538 +# CONFIG_BT_HCIBTUART is not set
  17.539 +# CONFIG_BT_HCIVHCI is not set
  17.540 +# CONFIG_AF_RXRPC is not set
  17.541 +
  17.542 +#
  17.543 +# Wireless
  17.544 +#
  17.545 +CONFIG_CFG80211=m
  17.546 +CONFIG_NL80211=y
  17.547 +CONFIG_WIRELESS_EXT=y
  17.548 +CONFIG_MAC80211=m
  17.549 +
  17.550 +#
  17.551 +# Rate control algorithm selection
  17.552 +#
  17.553 +CONFIG_MAC80211_RC_DEFAULT_PID=y
  17.554 +# CONFIG_MAC80211_RC_DEFAULT_SIMPLE is not set
  17.555 +# CONFIG_MAC80211_RC_DEFAULT_NONE is not set
  17.556 +
  17.557 +#
  17.558 +# Selecting 'y' for an algorithm will
  17.559 +#
  17.560 +
  17.561 +#
  17.562 +# build the algorithm into mac80211.
  17.563 +#
  17.564 +CONFIG_MAC80211_RC_DEFAULT="pid"
  17.565 +CONFIG_MAC80211_RC_PID=y
  17.566 +# CONFIG_MAC80211_RC_SIMPLE is not set
  17.567 +# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set
  17.568 +# CONFIG_MAC80211_DEBUG is not set
  17.569 +CONFIG_IEEE80211=m
  17.570 +# CONFIG_IEEE80211_DEBUG is not set
  17.571 +CONFIG_IEEE80211_CRYPT_WEP=m
  17.572 +CONFIG_IEEE80211_CRYPT_CCMP=m
  17.573 +CONFIG_IEEE80211_CRYPT_TKIP=m
  17.574 +CONFIG_IEEE80211_SOFTMAC=m
  17.575 +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
  17.576 +# CONFIG_RFKILL is not set
  17.577 +# CONFIG_NET_9P is not set
  17.578 +
  17.579 +#
  17.580 +# Device Drivers
  17.581 +#
  17.582 +
  17.583 +#
  17.584 +# Generic Driver Options
  17.585 +#
  17.586 +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
  17.587 +CONFIG_STANDALONE=y
  17.588 +CONFIG_PREVENT_FIRMWARE_BUILD=y
  17.589 +CONFIG_FW_LOADER=m
  17.590 +# CONFIG_SYS_HYPERVISOR is not set
  17.591 +# CONFIG_CONNECTOR is not set
  17.592 +# CONFIG_MTD is not set
  17.593 +CONFIG_PARPORT=m
  17.594 +CONFIG_PARPORT_PC=m
  17.595 +# CONFIG_PARPORT_SERIAL is not set
  17.596 +# CONFIG_PARPORT_PC_FIFO is not set
  17.597 +# CONFIG_PARPORT_PC_SUPERIO is not set
  17.598 +# CONFIG_PARPORT_PC_PCMCIA is not set
  17.599 +# CONFIG_PARPORT_GSC is not set
  17.600 +# CONFIG_PARPORT_AX88796 is not set
  17.601 +CONFIG_PARPORT_1284=y
  17.602 +CONFIG_PNP=y
  17.603 +# CONFIG_PNP_DEBUG is not set
  17.604 +
  17.605 +#
  17.606 +# Protocols
  17.607 +#
  17.608 +CONFIG_ISAPNP=y
  17.609 +# CONFIG_PNPBIOS is not set
  17.610 +CONFIG_PNPACPI=y
  17.611 +CONFIG_BLK_DEV=y
  17.612 +CONFIG_BLK_DEV_FD=y
  17.613 +# CONFIG_BLK_DEV_XD is not set
  17.614 +# CONFIG_PARIDE is not set
  17.615 +# CONFIG_BLK_CPQ_DA is not set
  17.616 +# CONFIG_BLK_CPQ_CISS_DA is not set
  17.617 +# CONFIG_BLK_DEV_DAC960 is not set
  17.618 +# CONFIG_BLK_DEV_UMEM is not set
  17.619 +# CONFIG_BLK_DEV_COW_COMMON is not set
  17.620 +CONFIG_BLK_DEV_LOOP=y
  17.621 +CONFIG_BLK_DEV_CRYPTOLOOP=m
  17.622 +# CONFIG_BLK_DEV_NBD is not set
  17.623 +# CONFIG_BLK_DEV_SX8 is not set
  17.624 +# CONFIG_BLK_DEV_UB is not set
  17.625 +CONFIG_BLK_DEV_RAM=y
  17.626 +CONFIG_BLK_DEV_RAM_COUNT=16
  17.627 +CONFIG_BLK_DEV_RAM_SIZE=4096
  17.628 +# CONFIG_BLK_DEV_XIP is not set
  17.629 +# CONFIG_RD_BZIP2 is not set
  17.630 +CONFIG_RD_LZMA=y
  17.631 +CONFIG_RD_GZIP=y
  17.632 +# CONFIG_CDROM_PKTCDVD is not set
  17.633 +# CONFIG_ATA_OVER_ETH is not set
  17.634 +# CONFIG_VIRTIO_BLK is not set
  17.635 +CONFIG_MISC_DEVICES=y
  17.636 +# CONFIG_IBM_ASM is not set
  17.637 +# CONFIG_PHANTOM is not set
  17.638 +CONFIG_EEPROM_93CX6=m
  17.639 +# CONFIG_SGI_IOC4 is not set
  17.640 +# CONFIG_TIFM_CORE is not set
  17.641 +# CONFIG_FUJITSU_LAPTOP is not set
  17.642 +# CONFIG_TC1100_WMI is not set
  17.643 +# CONFIG_MSI_LAPTOP is not set
  17.644 +# CONFIG_SONY_LAPTOP is not set
  17.645 +CONFIG_THINKPAD_ACPI=m
  17.646 +# CONFIG_THINKPAD_ACPI_DEBUG is not set
  17.647 +CONFIG_THINKPAD_ACPI_BAY=y
  17.648 +CONFIG_THINKPAD_ACPI_VIDEO=y
  17.649 +CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
  17.650 +# CONFIG_INTEL_MENLOW is not set
  17.651 +# CONFIG_ENCLOSURE_SERVICES is not set
  17.652 +CONFIG_HAVE_IDE=y
  17.653 +CONFIG_IDE=y
  17.654 +CONFIG_BLK_DEV_IDE=y
  17.655 +
  17.656 +#
  17.657 +# Please see Documentation/ide/ide.txt for help/info on IDE drives
  17.658 +#
  17.659 +# CONFIG_BLK_DEV_IDE_SATA is not set
  17.660 +# CONFIG_BLK_DEV_HD_IDE is not set
  17.661 +CONFIG_BLK_DEV_IDEDISK=y
  17.662 +CONFIG_IDEDISK_MULTI_MODE=y
  17.663 +# CONFIG_BLK_DEV_IDECS is not set
  17.664 +# CONFIG_BLK_DEV_DELKIN is not set
  17.665 +CONFIG_BLK_DEV_IDECD=y
  17.666 +CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
  17.667 +# CONFIG_BLK_DEV_IDETAPE is not set
  17.668 +CONFIG_BLK_DEV_IDEFLOPPY=y
  17.669 +# CONFIG_BLK_DEV_IDESCSI is not set
  17.670 +# CONFIG_BLK_DEV_IDEACPI is not set
  17.671 +# CONFIG_IDE_TASK_IOCTL is not set
  17.672 +CONFIG_IDE_PROC_FS=y
  17.673 +
  17.674 +#
  17.675 +# IDE chipset support/bugfixes
  17.676 +#
  17.677 +CONFIG_IDE_GENERIC=y
  17.678 +# CONFIG_BLK_DEV_PLATFORM is not set
  17.679 +CONFIG_BLK_DEV_CMD640=y
  17.680 +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
  17.681 +# CONFIG_BLK_DEV_IDEPNP is not set
  17.682 +CONFIG_BLK_DEV_IDEDMA_SFF=y
  17.683 +
  17.684 +#
  17.685 +# PCI IDE chipsets support
  17.686 +#
  17.687 +CONFIG_BLK_DEV_IDEPCI=y
  17.688 +CONFIG_IDEPCI_PCIBUS_ORDER=y
  17.689 +# CONFIG_BLK_DEV_OFFBOARD is not set
  17.690 +CONFIG_BLK_DEV_GENERIC=y
  17.691 +# CONFIG_BLK_DEV_OPTI621 is not set
  17.692 +CONFIG_BLK_DEV_RZ1000=y
  17.693 +CONFIG_BLK_DEV_IDEDMA_PCI=y
  17.694 +CONFIG_BLK_DEV_AEC62XX=y
  17.695 +CONFIG_BLK_DEV_ALI15X3=y
  17.696 +# CONFIG_WDC_ALI15X3 is not set
  17.697 +CONFIG_BLK_DEV_AMD74XX=y
  17.698 +CONFIG_BLK_DEV_ATIIXP=y
  17.699 +CONFIG_BLK_DEV_CMD64X=y
  17.700 +CONFIG_BLK_DEV_TRIFLEX=y
  17.701 +CONFIG_BLK_DEV_CY82C693=y
  17.702 +# CONFIG_BLK_DEV_CS5520 is not set
  17.703 +CONFIG_BLK_DEV_CS5530=y
  17.704 +CONFIG_BLK_DEV_CS5535=y
  17.705 +# CONFIG_BLK_DEV_HPT34X is not set
  17.706 +# CONFIG_BLK_DEV_HPT366 is not set
  17.707 +CONFIG_BLK_DEV_JMICRON=y
  17.708 +# CONFIG_BLK_DEV_SC1200 is not set
  17.709 +CONFIG_BLK_DEV_PIIX=y
  17.710 +CONFIG_BLK_DEV_IT8213=y
  17.711 +CONFIG_BLK_DEV_IT821X=y
  17.712 +CONFIG_BLK_DEV_NS87415=y
  17.713 +# CONFIG_BLK_DEV_PDC202XX_OLD is not set
  17.714 +CONFIG_BLK_DEV_PDC202XX_NEW=y
  17.715 +CONFIG_BLK_DEV_SVWKS=y
  17.716 +CONFIG_BLK_DEV_SIIMAGE=y
  17.717 +CONFIG_BLK_DEV_SIS5513=y
  17.718 +CONFIG_BLK_DEV_SLC90E66=y
  17.719 +CONFIG_BLK_DEV_TRM290=y
  17.720 +CONFIG_BLK_DEV_VIA82CXXX=y
  17.721 +# CONFIG_BLK_DEV_TC86C001 is not set
  17.722 +
  17.723 +#
  17.724 +# Other IDE chipsets support
  17.725 +#
  17.726 +
  17.727 +#
  17.728 +# Note: most of these also require special kernel boot parameters
  17.729 +#
  17.730 +# CONFIG_BLK_DEV_4DRIVES is not set
  17.731 +# CONFIG_BLK_DEV_ALI14XX is not set
  17.732 +# CONFIG_BLK_DEV_DTC2278 is not set
  17.733 +# CONFIG_BLK_DEV_HT6560B is not set
  17.734 +# CONFIG_BLK_DEV_QD65XX is not set
  17.735 +# CONFIG_BLK_DEV_UMC8672 is not set
  17.736 +CONFIG_BLK_DEV_IDEDMA=y
  17.737 +CONFIG_IDE_ARCH_OBSOLETE_INIT=y
  17.738 +# CONFIG_BLK_DEV_HD is not set
  17.739 +
  17.740 +#
  17.741 +# SCSI device support
  17.742 +#
  17.743 +# CONFIG_RAID_ATTRS is not set
  17.744 +CONFIG_SCSI=y
  17.745 +CONFIG_SCSI_DMA=y
  17.746 +# CONFIG_SCSI_TGT is not set
  17.747 +# CONFIG_SCSI_NETLINK is not set
  17.748 +CONFIG_SCSI_PROC_FS=y
  17.749 +
  17.750 +#
  17.751 +# SCSI support type (disk, tape, CD-ROM)
  17.752 +#
  17.753 +CONFIG_BLK_DEV_SD=y
  17.754 +# CONFIG_CHR_DEV_ST is not set
  17.755 +# CONFIG_CHR_DEV_OSST is not set
  17.756 +CONFIG_BLK_DEV_SR=y
  17.757 +# CONFIG_BLK_DEV_SR_VENDOR is not set
  17.758 +CONFIG_CHR_DEV_SG=y
  17.759 +# CONFIG_CHR_DEV_SCH is not set
  17.760 +
  17.761 +#
  17.762 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
  17.763 +#
  17.764 +# CONFIG_SCSI_MULTI_LUN is not set
  17.765 +# CONFIG_SCSI_CONSTANTS is not set
  17.766 +# CONFIG_SCSI_LOGGING is not set
  17.767 +# CONFIG_SCSI_SCAN_ASYNC is not set
  17.768 +CONFIG_SCSI_WAIT_SCAN=m
  17.769 +
  17.770 +#
  17.771 +# SCSI Transports
  17.772 +#
  17.773 +CONFIG_SCSI_SPI_ATTRS=m
  17.774 +# CONFIG_SCSI_FC_ATTRS is not set
  17.775 +CONFIG_SCSI_ISCSI_ATTRS=m
  17.776 +# CONFIG_SCSI_SAS_LIBSAS is not set
  17.777 +# CONFIG_SCSI_SRP_ATTRS is not set
  17.778 +CONFIG_SCSI_LOWLEVEL=y
  17.779 +CONFIG_ISCSI_TCP=m
  17.780 +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
  17.781 +# CONFIG_SCSI_3W_9XXX is not set
  17.782 +# CONFIG_SCSI_7000FASST is not set
  17.783 +# CONFIG_SCSI_ACARD is not set
  17.784 +# CONFIG_SCSI_AHA152X is not set
  17.785 +# CONFIG_SCSI_AHA1542 is not set
  17.786 +# CONFIG_SCSI_AACRAID is not set
  17.787 +CONFIG_SCSI_AIC7XXX=m
  17.788 +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
  17.789 +CONFIG_AIC7XXX_RESET_DELAY_MS=5000
  17.790 +CONFIG_AIC7XXX_DEBUG_ENABLE=y
  17.791 +CONFIG_AIC7XXX_DEBUG_MASK=0
  17.792 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
  17.793 +# CONFIG_SCSI_AIC7XXX_OLD is not set
  17.794 +# CONFIG_SCSI_AIC79XX is not set
  17.795 +# CONFIG_SCSI_AIC94XX is not set
  17.796 +# CONFIG_SCSI_DPT_I2O is not set
  17.797 +# CONFIG_SCSI_ADVANSYS is not set
  17.798 +# CONFIG_SCSI_IN2000 is not set
  17.799 +# CONFIG_SCSI_ARCMSR is not set
  17.800 +# CONFIG_MEGARAID_NEWGEN is not set
  17.801 +# CONFIG_MEGARAID_LEGACY is not set
  17.802 +# CONFIG_MEGARAID_SAS is not set
  17.803 +# CONFIG_SCSI_HPTIOP is not set
  17.804 +# CONFIG_SCSI_BUSLOGIC is not set
  17.805 +# CONFIG_SCSI_DMX3191D is not set
  17.806 +# CONFIG_SCSI_DTC3280 is not set
  17.807 +# CONFIG_SCSI_EATA is not set
  17.808 +# CONFIG_SCSI_FUTURE_DOMAIN is not set
  17.809 +# CONFIG_SCSI_GDTH is not set
  17.810 +# CONFIG_SCSI_GENERIC_NCR5380 is not set
  17.811 +# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
  17.812 +# CONFIG_SCSI_IPS is not set
  17.813 +# CONFIG_SCSI_INITIO is not set
  17.814 +# CONFIG_SCSI_INIA100 is not set
  17.815 +# CONFIG_SCSI_PPA is not set
  17.816 +# CONFIG_SCSI_IMM is not set
  17.817 +# CONFIG_SCSI_MVSAS is not set
  17.818 +# CONFIG_SCSI_NCR53C406A is not set
  17.819 +# CONFIG_SCSI_STEX is not set
  17.820 +# CONFIG_SCSI_SYM53C8XX_2 is not set
  17.821 +# CONFIG_SCSI_IPR is not set
  17.822 +# CONFIG_SCSI_PAS16 is not set
  17.823 +# CONFIG_SCSI_QLOGIC_FAS is not set
  17.824 +# CONFIG_SCSI_QLOGIC_1280 is not set
  17.825 +# CONFIG_SCSI_QLA_FC is not set
  17.826 +# CONFIG_SCSI_QLA_ISCSI is not set
  17.827 +# CONFIG_SCSI_LPFC is not set
  17.828 +# CONFIG_SCSI_SYM53C416 is not set
  17.829 +# CONFIG_SCSI_DC395x is not set
  17.830 +# CONFIG_SCSI_DC390T is not set
  17.831 +# CONFIG_SCSI_T128 is not set
  17.832 +# CONFIG_SCSI_U14_34F is not set
  17.833 +# CONFIG_SCSI_ULTRASTOR is not set
  17.834 +# CONFIG_SCSI_NSP32 is not set
  17.835 +# CONFIG_SCSI_DEBUG is not set
  17.836 +# CONFIG_SCSI_SRP is not set
  17.837 +# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
  17.838 +CONFIG_ATA=y
  17.839 +# CONFIG_ATA_NONSTANDARD is not set
  17.840 +CONFIG_ATA_ACPI=y
  17.841 +CONFIG_SATA_AHCI=y
  17.842 +# CONFIG_SATA_SVW is not set
  17.843 +CONFIG_ATA_PIIX=y
  17.844 +# CONFIG_SATA_MV is not set
  17.845 +CONFIG_SATA_NV=y
  17.846 +# CONFIG_PDC_ADMA is not set
  17.847 +# CONFIG_SATA_QSTOR is not set
  17.848 +# CONFIG_SATA_PROMISE is not set
  17.849 +# CONFIG_SATA_SX4 is not set
  17.850 +# CONFIG_SATA_SIL is not set
  17.851 +# CONFIG_SATA_SIL24 is not set
  17.852 +CONFIG_SATA_SIS=y
  17.853 +# CONFIG_SATA_ULI is not set
  17.854 +CONFIG_SATA_VIA=y
  17.855 +# CONFIG_SATA_VITESSE is not set
  17.856 +# CONFIG_SATA_INIC162X is not set
  17.857 +# CONFIG_PATA_ACPI is not set
  17.858 +# CONFIG_PATA_ALI is not set
  17.859 +# CONFIG_PATA_AMD is not set
  17.860 +# CONFIG_PATA_ARTOP is not set
  17.861 +# CONFIG_PATA_ATIIXP is not set
  17.862 +# CONFIG_PATA_CMD640_PCI is not set
  17.863 +# CONFIG_PATA_CMD64X is not set
  17.864 +# CONFIG_PATA_CS5520 is not set
  17.865 +# CONFIG_PATA_CS5530 is not set
  17.866 +# CONFIG_PATA_CS5535 is not set
  17.867 +# CONFIG_PATA_CS5536 is not set
  17.868 +# CONFIG_PATA_CYPRESS is not set
  17.869 +# CONFIG_PATA_EFAR is not set
  17.870 +# CONFIG_ATA_GENERIC is not set
  17.871 +# CONFIG_PATA_HPT366 is not set
  17.872 +# CONFIG_PATA_HPT37X is not set
  17.873 +# CONFIG_PATA_HPT3X2N is not set
  17.874 +# CONFIG_PATA_HPT3X3 is not set
  17.875 +# CONFIG_PATA_ISAPNP is not set
  17.876 +# CONFIG_PATA_IT821X is not set
  17.877 +# CONFIG_PATA_IT8213 is not set
  17.878 +# CONFIG_PATA_JMICRON is not set
  17.879 +# CONFIG_PATA_LEGACY is not set
  17.880 +# CONFIG_PATA_TRIFLEX is not set
  17.881 +# CONFIG_PATA_MARVELL is not set
  17.882 +# CONFIG_PATA_MPIIX is not set
  17.883 +# CONFIG_PATA_OLDPIIX is not set
  17.884 +# CONFIG_PATA_NETCELL is not set
  17.885 +# CONFIG_PATA_NINJA32 is not set
  17.886 +# CONFIG_PATA_NS87410 is not set
  17.887 +# CONFIG_PATA_NS87415 is not set
  17.888 +# CONFIG_PATA_OPTI is not set
  17.889 +# CONFIG_PATA_OPTIDMA is not set
  17.890 +# CONFIG_PATA_PCMCIA is not set
  17.891 +# CONFIG_PATA_PDC_OLD is not set
  17.892 +# CONFIG_PATA_QDI is not set
  17.893 +# CONFIG_PATA_RADISYS is not set
  17.894 +# CONFIG_PATA_RZ1000 is not set
  17.895 +# CONFIG_PATA_SC1200 is not set
  17.896 +# CONFIG_PATA_SERVERWORKS is not set
  17.897 +# CONFIG_PATA_PDC2027X is not set
  17.898 +# CONFIG_PATA_SIL680 is not set
  17.899 +CONFIG_PATA_SIS=y
  17.900 +# CONFIG_PATA_VIA is not set
  17.901 +# CONFIG_PATA_WINBOND is not set
  17.902 +# CONFIG_PATA_WINBOND_VLB is not set
  17.903 +CONFIG_MD=y
  17.904 +# CONFIG_BLK_DEV_MD is not set
  17.905 +# CONFIG_BLK_DEV_DM is not set
  17.906 +# CONFIG_FUSION is not set
  17.907 +
  17.908 +#
  17.909 +# IEEE 1394 (FireWire) support
  17.910 +#
  17.911 +# CONFIG_FIREWIRE is not set
  17.912 +CONFIG_IEEE1394=m
  17.913 +
  17.914 +#
  17.915 +# Subsystem Options
  17.916 +#
  17.917 +# CONFIG_IEEE1394_VERBOSEDEBUG is not set
  17.918 +
  17.919 +#
  17.920 +# Controllers
  17.921 +#
  17.922 +
  17.923 +#
  17.924 +# Texas Instruments PCILynx requires I2C
  17.925 +#
  17.926 +CONFIG_IEEE1394_OHCI1394=m
  17.927 +
  17.928 +#
  17.929 +# Protocols
  17.930 +#
  17.931 +# CONFIG_IEEE1394_VIDEO1394 is not set
  17.932 +# CONFIG_IEEE1394_SBP2 is not set
  17.933 +# CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set
  17.934 +# CONFIG_IEEE1394_ETH1394 is not set
  17.935 +# CONFIG_IEEE1394_DV1394 is not set
  17.936 +CONFIG_IEEE1394_RAWIO=m
  17.937 +# CONFIG_I2O is not set
  17.938 +# CONFIG_MACINTOSH_DRIVERS is not set
  17.939 +CONFIG_NETDEVICES=y
  17.940 +# CONFIG_NETDEVICES_MULTIQUEUE is not set
  17.941 +CONFIG_DUMMY=y
  17.942 +# CONFIG_BONDING is not set
  17.943 +# CONFIG_MACVLAN is not set
  17.944 +# CONFIG_EQUALIZER is not set
  17.945 +CONFIG_TUN=y
  17.946 +# CONFIG_VETH is not set
  17.947 +# CONFIG_NET_SB1000 is not set
  17.948 +CONFIG_ARCNET=m
  17.949 +CONFIG_ARCNET_1201=m
  17.950 +# CONFIG_ARCNET_1051 is not set
  17.951 +# CONFIG_ARCNET_RAW is not set
  17.952 +# CONFIG_ARCNET_CAP is not set
  17.953 +CONFIG_ARCNET_COM90xx=m
  17.954 +# CONFIG_ARCNET_COM90xxIO is not set
  17.955 +# CONFIG_ARCNET_RIM_I is not set
  17.956 +# CONFIG_ARCNET_COM20020 is not set
  17.957 +CONFIG_PHYLIB=m
  17.958 +
  17.959 +#
  17.960 +# MII PHY device drivers
  17.961 +#
  17.962 +CONFIG_MARVELL_PHY=m
  17.963 +CONFIG_DAVICOM_PHY=m
  17.964 +CONFIG_QSEMI_PHY=m
  17.965 +CONFIG_LXT_PHY=m
  17.966 +CONFIG_CICADA_PHY=m
  17.967 +# CONFIG_VITESSE_PHY is not set
  17.968 +# CONFIG_SMSC_PHY is not set
  17.969 +CONFIG_BROADCOM_PHY=m
  17.970 +# CONFIG_ICPLUS_PHY is not set
  17.971 +# CONFIG_REALTEK_PHY is not set
  17.972 +# CONFIG_MDIO_BITBANG is not set
  17.973 +CONFIG_NET_ETHERNET=y
  17.974 +CONFIG_MII=y
  17.975 +CONFIG_HAPPYMEAL=m
  17.976 +CONFIG_SUNGEM=m
  17.977 +CONFIG_CASSINI=m
  17.978 +CONFIG_NET_VENDOR_3COM=y
  17.979 +CONFIG_EL1=m
  17.980 +CONFIG_EL2=m
  17.981 +CONFIG_ELPLUS=m
  17.982 +# CONFIG_EL16 is not set
  17.983 +CONFIG_EL3=m
  17.984 +CONFIG_3C515=m
  17.985 +CONFIG_VORTEX=m
  17.986 +CONFIG_TYPHOON=m
  17.987 +CONFIG_LANCE=m
  17.988 +CONFIG_NET_VENDOR_SMC=y
  17.989 +CONFIG_WD80x3=m
  17.990 +CONFIG_ULTRA=m
  17.991 +CONFIG_SMC9194=m
  17.992 +CONFIG_NET_VENDOR_RACAL=y
  17.993 +CONFIG_NI52=m
  17.994 +CONFIG_NI65=m
  17.995 +CONFIG_NET_TULIP=y
  17.996 +# CONFIG_DE2104X is not set
  17.997 +CONFIG_TULIP=m
  17.998 +# CONFIG_TULIP_MWI is not set
  17.999 +# CONFIG_TULIP_MMIO is not set
 17.1000 +# CONFIG_TULIP_NAPI is not set
 17.1001 +CONFIG_DE4X5=y
 17.1002 +CONFIG_WINBOND_840=y
 17.1003 +CONFIG_DM9102=y
 17.1004 +CONFIG_ULI526X=m
 17.1005 +CONFIG_PCMCIA_XIRCOM=y
 17.1006 +# CONFIG_AT1700 is not set
 17.1007 +CONFIG_DEPCA=m
 17.1008 +CONFIG_HP100=m
 17.1009 +CONFIG_NET_ISA=y
 17.1010 +CONFIG_E2100=m
 17.1011 +CONFIG_EWRK3=m
 17.1012 +CONFIG_EEXPRESS=m
 17.1013 +CONFIG_EEXPRESS_PRO=m
 17.1014 +CONFIG_HPLAN_PLUS=m
 17.1015 +CONFIG_HPLAN=m
 17.1016 +CONFIG_LP486E=m
 17.1017 +CONFIG_ETH16I=m
 17.1018 +CONFIG_NE2000=m
 17.1019 +# CONFIG_ZNET is not set
 17.1020 +# CONFIG_SEEQ8005 is not set
 17.1021 +# CONFIG_IBM_NEW_EMAC_ZMII is not set
 17.1022 +# CONFIG_IBM_NEW_EMAC_RGMII is not set
 17.1023 +# CONFIG_IBM_NEW_EMAC_TAH is not set
 17.1024 +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
 17.1025 +CONFIG_NET_PCI=y
 17.1026 +CONFIG_PCNET32=y
 17.1027 +# CONFIG_PCNET32_NAPI is not set
 17.1028 +CONFIG_AMD8111_ETH=m
 17.1029 +# CONFIG_AMD8111E_NAPI is not set
 17.1030 +CONFIG_ADAPTEC_STARFIRE=m
 17.1031 +# CONFIG_ADAPTEC_STARFIRE_NAPI is not set
 17.1032 +# CONFIG_AC3200 is not set
 17.1033 +CONFIG_APRICOT=m
 17.1034 +CONFIG_B44=y
 17.1035 +CONFIG_B44_PCI_AUTOSELECT=y
 17.1036 +CONFIG_B44_PCICORE_AUTOSELECT=y
 17.1037 +CONFIG_B44_PCI=y
 17.1038 +CONFIG_FORCEDETH=y
 17.1039 +# CONFIG_FORCEDETH_NAPI is not set
 17.1040 +CONFIG_CS89x0=m
 17.1041 +CONFIG_EEPRO100=y
 17.1042 +CONFIG_E100=y
 17.1043 +CONFIG_FEALNX=m
 17.1044 +CONFIG_NATSEMI=y
 17.1045 +CONFIG_NE2K_PCI=y
 17.1046 +# CONFIG_8139CP is not set
 17.1047 +CONFIG_8139TOO=y
 17.1048 +# CONFIG_8139TOO_PIO is not set
 17.1049 +CONFIG_8139TOO_TUNE_TWISTER=y
 17.1050 +CONFIG_8139TOO_8129=y
 17.1051 +# CONFIG_8139_OLD_RX_RESET is not set
 17.1052 +# CONFIG_R6040 is not set
 17.1053 +CONFIG_SIS900=y
 17.1054 +CONFIG_EPIC100=y
 17.1055 +CONFIG_SUNDANCE=y
 17.1056 +# CONFIG_SUNDANCE_MMIO is not set
 17.1057 +CONFIG_TLAN=y
 17.1058 +CONFIG_VIA_RHINE=y
 17.1059 +CONFIG_VIA_RHINE_MMIO=y
 17.1060 +# CONFIG_VIA_RHINE_NAPI is not set
 17.1061 +# CONFIG_SC92031 is not set
 17.1062 +# CONFIG_NET_POCKET is not set
 17.1063 +CONFIG_NETDEV_1000=y
 17.1064 +CONFIG_ACENIC=y
 17.1065 +# CONFIG_ACENIC_OMIT_TIGON_I is not set
 17.1066 +CONFIG_DL2K=m
 17.1067 +CONFIG_E1000=m
 17.1068 +# CONFIG_E1000_NAPI is not set
 17.1069 +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
 17.1070 +CONFIG_E1000E=y
 17.1071 +CONFIG_E1000E_ENABLED=y
 17.1072 +CONFIG_IP1000=m
 17.1073 +# CONFIG_IGB is not set
 17.1074 +CONFIG_NS83820=y
 17.1075 +CONFIG_HAMACHI=y
 17.1076 +# CONFIG_YELLOWFIN is not set
 17.1077 +CONFIG_R8169=y
 17.1078 +# CONFIG_R8169_NAPI is not set
 17.1079 +CONFIG_SIS190=m
 17.1080 +CONFIG_SKGE=m
 17.1081 +CONFIG_SKY2=m
 17.1082 +CONFIG_SK98LIN=m
 17.1083 +CONFIG_VIA_VELOCITY=m
 17.1084 +CONFIG_TIGON3=m
 17.1085 +CONFIG_BNX2=m
 17.1086 +CONFIG_QLA3XXX=y
 17.1087 +CONFIG_ATL1=y
 17.1088 +# CONFIG_NETDEV_10000 is not set
 17.1089 +# CONFIG_TR is not set
 17.1090 +
 17.1091 +#
 17.1092 +# Wireless LAN
 17.1093 +#
 17.1094 +# CONFIG_WLAN_PRE80211 is not set
 17.1095 +CONFIG_WLAN_80211=y
 17.1096 +# CONFIG_PCMCIA_RAYCS is not set
 17.1097 +CONFIG_IPW2100=m
 17.1098 +CONFIG_IPW2100_MONITOR=y
 17.1099 +# CONFIG_IPW2100_DEBUG is not set
 17.1100 +CONFIG_IPW2200=m
 17.1101 +CONFIG_IPW2200_MONITOR=y
 17.1102 +CONFIG_IPW2200_RADIOTAP=y
 17.1103 +CONFIG_IPW2200_PROMISCUOUS=y
 17.1104 +CONFIG_IPW2200_QOS=y
 17.1105 +# CONFIG_IPW2200_DEBUG is not set
 17.1106 +# CONFIG_LIBERTAS is not set
 17.1107 +# CONFIG_AIRO is not set
 17.1108 +CONFIG_HERMES=m
 17.1109 +# CONFIG_PLX_HERMES is not set
 17.1110 +# CONFIG_TMD_HERMES is not set
 17.1111 +# CONFIG_NORTEL_HERMES is not set
 17.1112 +# CONFIG_PCI_HERMES is not set
 17.1113 +# CONFIG_PCMCIA_HERMES is not set
 17.1114 +# CONFIG_PCMCIA_SPECTRUM is not set
 17.1115 +# CONFIG_ATMEL is not set
 17.1116 +# CONFIG_AIRO_CS is not set
 17.1117 +# CONFIG_PCMCIA_WL3501 is not set
 17.1118 +# CONFIG_PRISM54 is not set
 17.1119 +# CONFIG_USB_ZD1201 is not set
 17.1120 +CONFIG_USB_NET_RNDIS_WLAN=m
 17.1121 +# CONFIG_RTL8180 is not set
 17.1122 +CONFIG_RTL8187=m
 17.1123 +# CONFIG_ADM8211 is not set
 17.1124 +# CONFIG_P54_COMMON is not set
 17.1125 +CONFIG_ATH5K=m
 17.1126 +# CONFIG_IWL4965 is not set
 17.1127 +# CONFIG_IWL3945 is not set
 17.1128 +# CONFIG_HOSTAP is not set
 17.1129 +CONFIG_B43=m
 17.1130 +CONFIG_B43_PCI_AUTOSELECT=y
 17.1131 +CONFIG_B43_PCICORE_AUTOSELECT=y
 17.1132 +# CONFIG_B43_DEBUG is not set
 17.1133 +CONFIG_B43LEGACY=m
 17.1134 +CONFIG_B43LEGACY_PCI_AUTOSELECT=y
 17.1135 +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
 17.1136 +# CONFIG_B43LEGACY_DEBUG is not set
 17.1137 +CONFIG_B43LEGACY_DMA=y
 17.1138 +CONFIG_B43LEGACY_PIO=y
 17.1139 +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
 17.1140 +# CONFIG_B43LEGACY_DMA_MODE is not set
 17.1141 +# CONFIG_B43LEGACY_PIO_MODE is not set
 17.1142 +CONFIG_ZD1211RW=m
 17.1143 +# CONFIG_ZD1211RW_DEBUG is not set
 17.1144 +CONFIG_RT2X00=m
 17.1145 +CONFIG_RT2X00_LIB=m
 17.1146 +CONFIG_RT2X00_LIB_PCI=m
 17.1147 +CONFIG_RT2X00_LIB_USB=m
 17.1148 +CONFIG_RT2400PCI=m
 17.1149 +# CONFIG_RT2400PCI_RFKILL is not set
 17.1150 +CONFIG_RT2500PCI=m
 17.1151 +# CONFIG_RT2500PCI_RFKILL is not set
 17.1152 +# CONFIG_RT61PCI is not set
 17.1153 +CONFIG_RT2500USB=m
 17.1154 +# CONFIG_RT73USB is not set
 17.1155 +# CONFIG_RT2X00_DEBUG is not set
 17.1156 +
 17.1157 +#
 17.1158 +# USB Network Adapters
 17.1159 +#
 17.1160 +# CONFIG_USB_CATC is not set
 17.1161 +# CONFIG_USB_KAWETH is not set
 17.1162 +# CONFIG_USB_PEGASUS is not set
 17.1163 +# CONFIG_USB_RTL8150 is not set
 17.1164 +CONFIG_USB_USBNET=m
 17.1165 +CONFIG_USB_NET_AX8817X=m
 17.1166 +CONFIG_USB_NET_CDCETHER=m
 17.1167 +# CONFIG_USB_NET_DM9601 is not set
 17.1168 +# CONFIG_USB_NET_GL620A is not set
 17.1169 +CONFIG_USB_NET_NET1080=m
 17.1170 +# CONFIG_USB_NET_PLUSB is not set
 17.1171 +# CONFIG_USB_NET_MCS7830 is not set
 17.1172 +CONFIG_USB_NET_RNDIS_HOST=m
 17.1173 +CONFIG_USB_NET_CDC_SUBSET=m
 17.1174 +# CONFIG_USB_ALI_M5632 is not set
 17.1175 +# CONFIG_USB_AN2720 is not set
 17.1176 +CONFIG_USB_BELKIN=y
 17.1177 +CONFIG_USB_ARMLINUX=y
 17.1178 +# CONFIG_USB_EPSON2888 is not set
 17.1179 +# CONFIG_USB_KC2190 is not set
 17.1180 +CONFIG_USB_NET_ZAURUS=m
 17.1181 +CONFIG_NET_PCMCIA=y
 17.1182 +CONFIG_PCMCIA_3C589=m
 17.1183 +CONFIG_PCMCIA_3C574=m
 17.1184 +CONFIG_PCMCIA_FMVJ18X=m
 17.1185 +CONFIG_PCMCIA_PCNET=m
 17.1186 +CONFIG_PCMCIA_NMCLAN=m
 17.1187 +CONFIG_PCMCIA_SMC91C92=m
 17.1188 +CONFIG_PCMCIA_XIRC2PS=m
 17.1189 +CONFIG_PCMCIA_AXNET=m
 17.1190 +# CONFIG_WAN is not set
 17.1191 +# CONFIG_FDDI is not set
 17.1192 +# CONFIG_HIPPI is not set
 17.1193 +# CONFIG_PLIP is not set
 17.1194 +CONFIG_PPP=y
 17.1195 +# CONFIG_PPP_MULTILINK is not set
 17.1196 +# CONFIG_PPP_FILTER is not set
 17.1197 +CONFIG_PPP_ASYNC=y
 17.1198 +# CONFIG_PPP_SYNC_TTY is not set
 17.1199 +CONFIG_PPP_DEFLATE=y
 17.1200 +# CONFIG_PPP_BSDCOMP is not set
 17.1201 +# CONFIG_PPP_MPPE is not set
 17.1202 +CONFIG_PPPOE=y
 17.1203 +# CONFIG_PPPOL2TP is not set
 17.1204 +# CONFIG_SLIP is not set
 17.1205 +CONFIG_SLHC=y
 17.1206 +# CONFIG_NET_FC is not set
 17.1207 +# CONFIG_NETCONSOLE is not set
 17.1208 +# CONFIG_NETPOLL is not set
 17.1209 +# CONFIG_NET_POLL_CONTROLLER is not set
 17.1210 +# CONFIG_VIRTIO_NET is not set
 17.1211 +# CONFIG_ISDN is not set
 17.1212 +# CONFIG_PHONE is not set
 17.1213 +
 17.1214 +#
 17.1215 +# Input device support
 17.1216 +#
 17.1217 +CONFIG_INPUT=y
 17.1218 +# CONFIG_INPUT_FF_MEMLESS is not set
 17.1219 +# CONFIG_INPUT_POLLDEV is not set
 17.1220 +
 17.1221 +#
 17.1222 +# Userland interfaces
 17.1223 +#
 17.1224 +CONFIG_INPUT_MOUSEDEV=y
 17.1225 +CONFIG_INPUT_MOUSEDEV_PSAUX=y
 17.1226 +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
 17.1227 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
 17.1228 +CONFIG_INPUT_JOYDEV=y
 17.1229 +CONFIG_INPUT_EVDEV=y
 17.1230 +# CONFIG_INPUT_EVBUG is not set
 17.1231 +
 17.1232 +#
 17.1233 +# Input Device Drivers
 17.1234 +#
 17.1235 +CONFIG_INPUT_KEYBOARD=y
 17.1236 +CONFIG_KEYBOARD_ATKBD=y
 17.1237 +# CONFIG_KEYBOARD_SUNKBD is not set
 17.1238 +# CONFIG_KEYBOARD_LKKBD is not set
 17.1239 +# CONFIG_KEYBOARD_XTKBD is not set
 17.1240 +# CONFIG_KEYBOARD_NEWTON is not set
 17.1241 +# CONFIG_KEYBOARD_STOWAWAY is not set
 17.1242 +CONFIG_INPUT_MOUSE=y
 17.1243 +CONFIG_MOUSE_PS2=y
 17.1244 +CONFIG_MOUSE_PS2_ALPS=y
 17.1245 +CONFIG_MOUSE_PS2_LOGIPS2PP=y
 17.1246 +CONFIG_MOUSE_PS2_SYNAPTICS=y
 17.1247 +CONFIG_MOUSE_PS2_LIFEBOOK=y
 17.1248 +CONFIG_MOUSE_PS2_TRACKPOINT=y
 17.1249 +# CONFIG_MOUSE_PS2_TOUCHKIT is not set
 17.1250 +CONFIG_MOUSE_SERIAL=y
 17.1251 +# CONFIG_MOUSE_APPLETOUCH is not set
 17.1252 +CONFIG_MOUSE_INPORT=m
 17.1253 +# CONFIG_MOUSE_ATIXL is not set
 17.1254 +CONFIG_MOUSE_LOGIBM=m
 17.1255 +CONFIG_MOUSE_PC110PAD=m
 17.1256 +# CONFIG_MOUSE_VSXXXAA is not set
 17.1257 +CONFIG_INPUT_JOYSTICK=y
 17.1258 +CONFIG_JOYSTICK_ANALOG=m
 17.1259 +# CONFIG_JOYSTICK_A3D is not set
 17.1260 +# CONFIG_JOYSTICK_ADI is not set
 17.1261 +# CONFIG_JOYSTICK_COBRA is not set
 17.1262 +# CONFIG_JOYSTICK_GF2K is not set
 17.1263 +# CONFIG_JOYSTICK_GRIP is not set
 17.1264 +# CONFIG_JOYSTICK_GRIP_MP is not set
 17.1265 +# CONFIG_JOYSTICK_GUILLEMOT is not set
 17.1266 +# CONFIG_JOYSTICK_INTERACT is not set
 17.1267 +CONFIG_JOYSTICK_SIDEWINDER=m
 17.1268 +# CONFIG_JOYSTICK_TMDC is not set
 17.1269 +# CONFIG_JOYSTICK_IFORCE is not set
 17.1270 +# CONFIG_JOYSTICK_WARRIOR is not set
 17.1271 +# CONFIG_JOYSTICK_MAGELLAN is not set
 17.1272 +# CONFIG_JOYSTICK_SPACEORB is not set
 17.1273 +# CONFIG_JOYSTICK_SPACEBALL is not set
 17.1274 +# CONFIG_JOYSTICK_STINGER is not set
 17.1275 +# CONFIG_JOYSTICK_TWIDJOY is not set
 17.1276 +# CONFIG_JOYSTICK_DB9 is not set
 17.1277 +# CONFIG_JOYSTICK_GAMECON is not set
 17.1278 +# CONFIG_JOYSTICK_TURBOGRAFX is not set
 17.1279 +# CONFIG_JOYSTICK_JOYDUMP is not set
 17.1280 +CONFIG_JOYSTICK_XPAD=m
 17.1281 +# CONFIG_JOYSTICK_XPAD_FF is not set
 17.1282 +# CONFIG_INPUT_TABLET is not set
 17.1283 +# CONFIG_INPUT_TOUCHSCREEN is not set
 17.1284 +CONFIG_INPUT_MISC=y
 17.1285 +CONFIG_INPUT_PCSPKR=y
 17.1286 +# CONFIG_INPUT_WISTRON_BTNS is not set
 17.1287 +# CONFIG_INPUT_ATLAS_BTNS is not set
 17.1288 +# CONFIG_INPUT_ATI_REMOTE is not set
 17.1289 +# CONFIG_INPUT_ATI_REMOTE2 is not set
 17.1290 +# CONFIG_INPUT_KEYSPAN_REMOTE is not set
 17.1291 +# CONFIG_INPUT_POWERMATE is not set
 17.1292 +# CONFIG_INPUT_YEALINK is not set
 17.1293 +# CONFIG_INPUT_UINPUT is not set
 17.1294 +
 17.1295 +#
 17.1296 +# Hardware I/O ports
 17.1297 +#
 17.1298 +CONFIG_SERIO=y
 17.1299 +CONFIG_SERIO_I8042=y
 17.1300 +CONFIG_SERIO_SERPORT=y
 17.1301 +# CONFIG_SERIO_CT82C710 is not set
 17.1302 +# CONFIG_SERIO_PARKBD is not set
 17.1303 +CONFIG_SERIO_PCIPS2=y
 17.1304 +CONFIG_SERIO_LIBPS2=y
 17.1305 +CONFIG_SERIO_RAW=y
 17.1306 +CONFIG_GAMEPORT=m
 17.1307 +# CONFIG_GAMEPORT_NS558 is not set
 17.1308 +# CONFIG_GAMEPORT_L4 is not set
 17.1309 +# CONFIG_GAMEPORT_EMU10K1 is not set
 17.1310 +# CONFIG_GAMEPORT_FM801 is not set
 17.1311 +
 17.1312 +#
 17.1313 +# Character devices
 17.1314 +#
 17.1315 +CONFIG_VT=y
 17.1316 +CONFIG_VT_CONSOLE=y
 17.1317 +CONFIG_HW_CONSOLE=y
 17.1318 +# CONFIG_VT_HW_CONSOLE_BINDING is not set
 17.1319 +# CONFIG_SERIAL_NONSTANDARD is not set
 17.1320 +# CONFIG_NOZOMI is not set
 17.1321 +
 17.1322 +#
 17.1323 +# Serial drivers
 17.1324 +#
 17.1325 +CONFIG_SERIAL_8250=y
 17.1326 +# CONFIG_SERIAL_8250_CONSOLE is not set
 17.1327 +CONFIG_FIX_EARLYCON_MEM=y
 17.1328 +CONFIG_SERIAL_8250_PCI=y
 17.1329 +CONFIG_SERIAL_8250_PNP=y
 17.1330 +# CONFIG_SERIAL_8250_CS is not set
 17.1331 +CONFIG_SERIAL_8250_NR_UARTS=4
 17.1332 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4
 17.1333 +# CONFIG_SERIAL_8250_EXTENDED is not set
 17.1334 +
 17.1335 +#
 17.1336 +# Non-8250 serial port support
 17.1337 +#
 17.1338 +CONFIG_SERIAL_CORE=y
 17.1339 +# CONFIG_SERIAL_JSM is not set
 17.1340 +CONFIG_UNIX98_PTYS=y
 17.1341 +# CONFIG_LEGACY_PTYS is not set
 17.1342 +CONFIG_PRINTER=m
 17.1343 +# CONFIG_LP_CONSOLE is not set
 17.1344 +# CONFIG_PPDEV is not set
 17.1345 +CONFIG_HVC_DRIVER=y
 17.1346 +# CONFIG_IPMI_HANDLER is not set
 17.1347 +CONFIG_HW_RANDOM=y
 17.1348 +CONFIG_HW_RANDOM_INTEL=y
 17.1349 +CONFIG_HW_RANDOM_AMD=y
 17.1350 +CONFIG_HW_RANDOM_GEODE=y
 17.1351 +CONFIG_HW_RANDOM_VIA=y
 17.1352 +CONFIG_NVRAM=y
 17.1353 +CONFIG_RTC=m
 17.1354 +CONFIG_GEN_RTC=m
 17.1355 +# CONFIG_GEN_RTC_X is not set
 17.1356 +# CONFIG_DTLK is not set
 17.1357 +# CONFIG_R3964 is not set
 17.1358 +# CONFIG_APPLICOM is not set
 17.1359 +# CONFIG_SONYPI is not set
 17.1360 +
 17.1361 +#
 17.1362 +# PCMCIA character devices
 17.1363 +#
 17.1364 +# CONFIG_SYNCLINK_CS is not set
 17.1365 +# CONFIG_CARDMAN_4000 is not set
 17.1366 +# CONFIG_CARDMAN_4040 is not set
 17.1367 +# CONFIG_IPWIRELESS is not set
 17.1368 +CONFIG_MWAVE=m
 17.1369 +# CONFIG_PC8736x_GPIO is not set
 17.1370 +# CONFIG_NSC_GPIO is not set
 17.1371 +# CONFIG_CS5535_GPIO is not set
 17.1372 +# CONFIG_RAW_DRIVER is not set
 17.1373 +# CONFIG_HPET is not set
 17.1374 +# CONFIG_HANGCHECK_TIMER is not set
 17.1375 +# CONFIG_TCG_TPM is not set
 17.1376 +# CONFIG_TELCLOCK is not set
 17.1377 +CONFIG_DEVPORT=y
 17.1378 +# CONFIG_I2C is not set
 17.1379 +
 17.1380 +#
 17.1381 +# SPI support
 17.1382 +#
 17.1383 +# CONFIG_SPI is not set
 17.1384 +# CONFIG_SPI_MASTER is not set
 17.1385 +# CONFIG_W1 is not set
 17.1386 +CONFIG_POWER_SUPPLY=y
 17.1387 +# CONFIG_POWER_SUPPLY_DEBUG is not set
 17.1388 +# CONFIG_PDA_POWER is not set
 17.1389 +# CONFIG_BATTERY_DS2760 is not set
 17.1390 +CONFIG_HWMON=m
 17.1391 +# CONFIG_HWMON_VID is not set
 17.1392 +# CONFIG_SENSORS_ABITUGURU is not set
 17.1393 +# CONFIG_SENSORS_ABITUGURU3 is not set
 17.1394 +# CONFIG_SENSORS_K8TEMP is not set
 17.1395 +# CONFIG_SENSORS_I5K_AMB is not set
 17.1396 +# CONFIG_SENSORS_F71805F is not set
 17.1397 +# CONFIG_SENSORS_F71882FG is not set
 17.1398 +# CONFIG_SENSORS_CORETEMP is not set
 17.1399 +# CONFIG_SENSORS_IT87 is not set
 17.1400 +# CONFIG_SENSORS_PC87360 is not set
 17.1401 +# CONFIG_SENSORS_PC87427 is not set
 17.1402 +# CONFIG_SENSORS_SIS5595 is not set
 17.1403 +# CONFIG_SENSORS_SMSC47M1 is not set
 17.1404 +# CONFIG_SENSORS_SMSC47B397 is not set
 17.1405 +# CONFIG_SENSORS_VIA686A is not set
 17.1406 +# CONFIG_SENSORS_VT1211 is not set
 17.1407 +# CONFIG_SENSORS_VT8231 is not set
 17.1408 +# CONFIG_SENSORS_W83627HF is not set
 17.1409 +# CONFIG_SENSORS_W83627EHF is not set
 17.1410 +# CONFIG_SENSORS_HDAPS is not set
 17.1411 +# CONFIG_SENSORS_APPLESMC is not set
 17.1412 +# CONFIG_HWMON_DEBUG_CHIP is not set
 17.1413 +CONFIG_THERMAL=y
 17.1414 +# CONFIG_WATCHDOG is not set
 17.1415 +
 17.1416 +#
 17.1417 +# Sonics Silicon Backplane
 17.1418 +#
 17.1419 +CONFIG_SSB_POSSIBLE=y
 17.1420 +CONFIG_SSB=y
 17.1421 +CONFIG_SSB_PCIHOST_POSSIBLE=y
 17.1422 +CONFIG_SSB_PCIHOST=y
 17.1423 +CONFIG_SSB_B43_PCI_BRIDGE=y
 17.1424 +# CONFIG_SSB_DEBUG is not set
 17.1425 +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
 17.1426 +CONFIG_SSB_DRIVER_PCICORE=y
 17.1427 +
 17.1428 +#
 17.1429 +# Multifunction device drivers
 17.1430 +#
 17.1431 +# CONFIG_MFD_SM501 is not set
 17.1432 +
 17.1433 +#
 17.1434 +# Multimedia devices
 17.1435 +#
 17.1436 +CONFIG_VIDEO_DEV=m
 17.1437 +CONFIG_VIDEO_V4L2_COMMON=m
 17.1438 +CONFIG_VIDEO_V4L1=y
 17.1439 +CONFIG_VIDEO_V4L1_COMPAT=y
 17.1440 +CONFIG_VIDEO_V4L2=y
 17.1441 +CONFIG_VIDEO_CAPTURE_DRIVERS=y
 17.1442 +# CONFIG_VIDEO_ADV_DEBUG is not set
 17.1443 +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
 17.1444 +# CONFIG_VIDEO_VIVI is not set
 17.1445 +# CONFIG_VIDEO_PMS is not set
 17.1446 +# CONFIG_VIDEO_BWQCAM is not set
 17.1447 +# CONFIG_VIDEO_CQCAM is not set
 17.1448 +# CONFIG_VIDEO_W9966 is not set
 17.1449 +# CONFIG_VIDEO_CPIA is not set
 17.1450 +# CONFIG_VIDEO_CPIA2 is not set
 17.1451 +# CONFIG_VIDEO_STRADIS is not set
 17.1452 +CONFIG_V4L_USB_DRIVERS=y
 17.1453 +# CONFIG_USB_VICAM is not set
 17.1454 +# CONFIG_USB_IBMCAM is not set
 17.1455 +# CONFIG_USB_KONICAWC is not set
 17.1456 +# CONFIG_USB_QUICKCAM_MESSENGER is not set
 17.1457 +# CONFIG_USB_ET61X251 is not set
 17.1458 +# CONFIG_USB_OV511 is not set
 17.1459 +# CONFIG_USB_SE401 is not set
 17.1460 +# CONFIG_USB_SN9C102 is not set
 17.1461 +# CONFIG_USB_STV680 is not set
 17.1462 +# CONFIG_USB_ZC0301 is not set
 17.1463 +# CONFIG_USB_PWC is not set
 17.1464 +# CONFIG_USB_ZR364XX is not set
 17.1465 +# CONFIG_USB_STKWEBCAM is not set
 17.1466 +CONFIG_RADIO_ADAPTERS=y
 17.1467 +# CONFIG_RADIO_CADET is not set
 17.1468 +# CONFIG_RADIO_RTRACK is not set
 17.1469 +# CONFIG_RADIO_RTRACK2 is not set
 17.1470 +# CONFIG_RADIO_AZTECH is not set
 17.1471 +# CONFIG_RADIO_GEMTEK is not set
 17.1472 +# CONFIG_RADIO_GEMTEK_PCI is not set
 17.1473 +# CONFIG_RADIO_MAXIRADIO is not set
 17.1474 +# CONFIG_RADIO_MAESTRO is not set
 17.1475 +# CONFIG_RADIO_SF16FMI is not set
 17.1476 +# CONFIG_RADIO_SF16FMR2 is not set
 17.1477 +# CONFIG_RADIO_TERRATEC is not set
 17.1478 +# CONFIG_RADIO_TRUST is not set
 17.1479 +# CONFIG_RADIO_TYPHOON is not set
 17.1480 +# CONFIG_RADIO_ZOLTRIX is not set
 17.1481 +# CONFIG_USB_DSBR is not set
 17.1482 +# CONFIG_USB_SI470X is not set
 17.1483 +# CONFIG_DVB_CORE is not set
 17.1484 +CONFIG_DAB=y
 17.1485 +# CONFIG_USB_DABUSB is not set
 17.1486 +
 17.1487 +#
 17.1488 +# Graphics support
 17.1489 +#
 17.1490 +CONFIG_AGP=m
 17.1491 +CONFIG_AGP_ALI=m
 17.1492 +CONFIG_AGP_ATI=m
 17.1493 +CONFIG_AGP_AMD=m
 17.1494 +CONFIG_AGP_AMD64=m
 17.1495 +CONFIG_AGP_INTEL=m
 17.1496 +CONFIG_AGP_NVIDIA=m
 17.1497 +CONFIG_AGP_SIS=m
 17.1498 +CONFIG_AGP_SWORKS=m
 17.1499 +CONFIG_AGP_VIA=m
 17.1500 +# CONFIG_AGP_EFFICEON is not set
 17.1501 +# CONFIG_DRM is not set
 17.1502 +# CONFIG_VGASTATE is not set
 17.1503 +# CONFIG_VIDEO_OUTPUT_CONTROL is not set
 17.1504 +CONFIG_FB=y
 17.1505 +# CONFIG_FIRMWARE_EDID is not set
 17.1506 +# CONFIG_FB_DDC is not set
 17.1507 +CONFIG_FB_CFB_FILLRECT=y
 17.1508 +CONFIG_FB_CFB_COPYAREA=y
 17.1509 +CONFIG_FB_CFB_IMAGEBLIT=y
 17.1510 +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
 17.1511 +# CONFIG_FB_SYS_FILLRECT is not set
 17.1512 +# CONFIG_FB_SYS_COPYAREA is not set
 17.1513 +# CONFIG_FB_SYS_IMAGEBLIT is not set
 17.1514 +# CONFIG_FB_SYS_FOPS is not set
 17.1515 +CONFIG_FB_DEFERRED_IO=y
 17.1516 +# CONFIG_FB_SVGALIB is not set
 17.1517 +# CONFIG_FB_MACMODES is not set
 17.1518 +# CONFIG_FB_BACKLIGHT is not set
 17.1519 +# CONFIG_FB_MODE_HELPERS is not set
 17.1520 +# CONFIG_FB_TILEBLITTING is not set
 17.1521 +
 17.1522 +#
 17.1523 +# Frame buffer hardware drivers
 17.1524 +#
 17.1525 +# CONFIG_FB_CIRRUS is not set
 17.1526 +# CONFIG_FB_PM2 is not set
 17.1527 +# CONFIG_FB_CYBER2000 is not set
 17.1528 +# CONFIG_FB_ARC is not set
 17.1529 +# CONFIG_FB_ASILIANT is not set
 17.1530 +# CONFIG_FB_IMSTT is not set
 17.1531 +# CONFIG_FB_VGA16 is not set
 17.1532 +CONFIG_FB_VESA=y
 17.1533 +# CONFIG_FB_EFI is not set
 17.1534 +# CONFIG_FB_HECUBA is not set
 17.1535 +# CONFIG_FB_HGA is not set
 17.1536 +# CONFIG_FB_S1D13XXX is not set
 17.1537 +# CONFIG_FB_NVIDIA is not set
 17.1538 +# CONFIG_FB_RIVA is not set
 17.1539 +# CONFIG_FB_I810 is not set
 17.1540 +# CONFIG_FB_LE80578 is not set
 17.1541 +# CONFIG_FB_INTEL is not set
 17.1542 +# CONFIG_FB_MATROX is not set
 17.1543 +# CONFIG_FB_RADEON is not set
 17.1544 +# CONFIG_FB_ATY128 is not set
 17.1545 +# CONFIG_FB_ATY is not set
 17.1546 +# CONFIG_FB_S3 is not set
 17.1547 +# CONFIG_FB_SAVAGE is not set
 17.1548 +# CONFIG_FB_SIS is not set
 17.1549 +# CONFIG_FB_NEOMAGIC is not set
 17.1550 +# CONFIG_FB_KYRO is not set
 17.1551 +# CONFIG_FB_3DFX is not set
 17.1552 +# CONFIG_FB_VOODOO1 is not set
 17.1553 +# CONFIG_FB_VT8623 is not set
 17.1554 +# CONFIG_FB_CYBLA is not set
 17.1555 +# CONFIG_FB_TRIDENT is not set
 17.1556 +# CONFIG_FB_ARK is not set
 17.1557 +# CONFIG_FB_PM3 is not set
 17.1558 +# CONFIG_FB_GEODE is not set
 17.1559 +# CONFIG_FB_VIRTUAL is not set
 17.1560 +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
 17.1561 +CONFIG_BACKLIGHT_CLASS_DEVICE=m
 17.1562 +# CONFIG_BACKLIGHT_CORGI is not set
 17.1563 +# CONFIG_BACKLIGHT_PROGEAR is not set
 17.1564 +
 17.1565 +#
 17.1566 +# Display device support
 17.1567 +#
 17.1568 +# CONFIG_DISPLAY_SUPPORT is not set
 17.1569 +
 17.1570 +#
 17.1571 +# Console display driver support
 17.1572 +#
 17.1573 +CONFIG_VGA_CONSOLE=y
 17.1574 +# CONFIG_VGACON_SOFT_SCROLLBACK is not set
 17.1575 +CONFIG_VIDEO_SELECT=y
 17.1576 +# CONFIG_MDA_CONSOLE is not set
 17.1577 +CONFIG_DUMMY_CONSOLE=y
 17.1578 +CONFIG_FRAMEBUFFER_CONSOLE=y
 17.1579 +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
 17.1580 +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
 17.1581 +# CONFIG_FONTS is not set
 17.1582 +CONFIG_FONT_8x8=y
 17.1583 +CONFIG_FONT_8x16=y
 17.1584 +# CONFIG_LOGO is not set
 17.1585 +
 17.1586 +#
 17.1587 +# Sound
 17.1588 +#
 17.1589 +CONFIG_SOUND=m
 17.1590 +
 17.1591 +#
 17.1592 +# Advanced Linux Sound Architecture
 17.1593 +#
 17.1594 +CONFIG_SND=m
 17.1595 +CONFIG_SND_TIMER=m
 17.1596 +CONFIG_SND_PCM=m
 17.1597 +CONFIG_SND_HWDEP=m
 17.1598 +CONFIG_SND_RAWMIDI=m
 17.1599 +CONFIG_SND_SEQUENCER=m
 17.1600 +# CONFIG_SND_SEQ_DUMMY is not set
 17.1601 +CONFIG_SND_OSSEMUL=y
 17.1602 +CONFIG_SND_MIXER_OSS=m
 17.1603 +CONFIG_SND_PCM_OSS=m
 17.1604 +CONFIG_SND_PCM_OSS_PLUGINS=y
 17.1605 +CONFIG_SND_SEQUENCER_OSS=y
 17.1606 +CONFIG_SND_RTCTIMER=m
 17.1607 +CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
 17.1608 +# CONFIG_SND_DYNAMIC_MINORS is not set
 17.1609 +CONFIG_SND_SUPPORT_OLD_API=y
 17.1610 +# CONFIG_SND_VERBOSE_PROCFS is not set
 17.1611 +# CONFIG_SND_VERBOSE_PRINTK is not set
 17.1612 +# CONFIG_SND_DEBUG is not set
 17.1613 +
 17.1614 +#
 17.1615 +# Generic devices
 17.1616 +#
 17.1617 +CONFIG_SND_MPU401_UART=m
 17.1618 +CONFIG_SND_OPL3_LIB=m
 17.1619 +CONFIG_SND_OPL4_LIB=m
 17.1620 +CONFIG_SND_VX_LIB=m
 17.1621 +CONFIG_SND_AC97_CODEC=m
 17.1622 +# CONFIG_SND_DUMMY is not set
 17.1623 +# CONFIG_SND_VIRMIDI is not set
 17.1624 +# CONFIG_SND_MTPAV is not set
 17.1625 +# CONFIG_SND_MTS64 is not set
 17.1626 +# CONFIG_SND_SERIAL_U16550 is not set
 17.1627 +CONFIG_SND_MPU401=m
 17.1628 +# CONFIG_SND_PORTMAN2X4 is not set
 17.1629 +CONFIG_SND_AD1848_LIB=m
 17.1630 +CONFIG_SND_CS4231_LIB=m
 17.1631 +CONFIG_SND_SB_COMMON=m
 17.1632 +CONFIG_SND_SB8_DSP=m
 17.1633 +CONFIG_SND_SB16_DSP=m
 17.1634 +
 17.1635 +#
 17.1636 +# ISA devices
 17.1637 +#
 17.1638 +CONFIG_SND_ADLIB=m
 17.1639 +CONFIG_SND_AD1816A=m
 17.1640 +CONFIG_SND_AD1848=m
 17.1641 +CONFIG_SND_ALS100=m
 17.1642 +CONFIG_SND_AZT2320=m
 17.1643 +CONFIG_SND_CMI8330=m
 17.1644 +CONFIG_SND_CS4231=m
 17.1645 +CONFIG_SND_CS4232=m
 17.1646 +CONFIG_SND_CS4236=m
 17.1647 +CONFIG_SND_DT019X=m
 17.1648 +CONFIG_SND_ES968=m
 17.1649 +CONFIG_SND_ES1688=m
 17.1650 +CONFIG_SND_ES18XX=m
 17.1651 +# CONFIG_SND_SC6000 is not set
 17.1652 +CONFIG_SND_GUS_SYNTH=m
 17.1653 +CONFIG_SND_GUSCLASSIC=m
 17.1654 +CONFIG_SND_GUSEXTREME=m
 17.1655 +CONFIG_SND_GUSMAX=m
 17.1656 +CONFIG_SND_INTERWAVE=m
 17.1657 +CONFIG_SND_INTERWAVE_STB=m
 17.1658 +CONFIG_SND_OPL3SA2=m
 17.1659 +CONFIG_SND_OPTI92X_AD1848=m
 17.1660 +CONFIG_SND_OPTI92X_CS4231=m
 17.1661 +CONFIG_SND_OPTI93X=m
 17.1662 +CONFIG_SND_MIRO=m
 17.1663 +CONFIG_SND_SB8=m
 17.1664 +CONFIG_SND_SB16=m
 17.1665 +CONFIG_SND_SBAWE=m
 17.1666 +# CONFIG_SND_SB16_CSP is not set
 17.1667 +CONFIG_SND_SGALAXY=m
 17.1668 +CONFIG_SND_SSCAPE=m
 17.1669 +CONFIG_SND_WAVEFRONT=m
 17.1670 +CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL=y
 17.1671 +
 17.1672 +#
 17.1673 +# PCI devices
 17.1674 +#
 17.1675 +CONFIG_SND_AD1889=m
 17.1676 +CONFIG_SND_ALS300=m
 17.1677 +CONFIG_SND_ALS4000=m
 17.1678 +CONFIG_SND_ALI5451=m
 17.1679 +CONFIG_SND_ATIIXP=m
 17.1680 +CONFIG_SND_ATIIXP_MODEM=m
 17.1681 +CONFIG_SND_AU8810=m
 17.1682 +CONFIG_SND_AU8820=m
 17.1683 +CONFIG_SND_AU8830=m
 17.1684 +CONFIG_SND_AZT3328=m
 17.1685 +CONFIG_SND_BT87X=m
 17.1686 +# CONFIG_SND_BT87X_OVERCLOCK is not set
 17.1687 +CONFIG_SND_CA0106=m
 17.1688 +CONFIG_SND_CMIPCI=m
 17.1689 +CONFIG_SND_OXYGEN_LIB=m
 17.1690 +CONFIG_SND_OXYGEN=m
 17.1691 +CONFIG_SND_CS4281=m
 17.1692 +CONFIG_SND_CS46XX=m
 17.1693 +CONFIG_SND_CS46XX_NEW_DSP=y
 17.1694 +CONFIG_SND_CS5530=m
 17.1695 +CONFIG_SND_CS5535AUDIO=m
 17.1696 +CONFIG_SND_DARLA20=m
 17.1697 +CONFIG_SND_GINA20=m
 17.1698 +CONFIG_SND_LAYLA20=m
 17.1699 +CONFIG_SND_DARLA24=m
 17.1700 +CONFIG_SND_GINA24=m
 17.1701 +CONFIG_SND_LAYLA24=m
 17.1702 +CONFIG_SND_MONA=m
 17.1703 +CONFIG_SND_MIA=m
 17.1704 +CONFIG_SND_ECHO3G=m
 17.1705 +CONFIG_SND_INDIGO=m
 17.1706 +CONFIG_SND_INDIGOIO=m
 17.1707 +CONFIG_SND_INDIGODJ=m
 17.1708 +CONFIG_SND_EMU10K1=m
 17.1709 +CONFIG_SND_EMU10K1X=m
 17.1710 +CONFIG_SND_ENS1370=m
 17.1711 +CONFIG_SND_ENS1371=m
 17.1712 +CONFIG_SND_ES1938=m
 17.1713 +CONFIG_SND_ES1968=m
 17.1714 +CONFIG_SND_FM801=m
 17.1715 +CONFIG_SND_FM801_TEA575X_BOOL=y
 17.1716 +CONFIG_SND_FM801_TEA575X=m
 17.1717 +CONFIG_SND_HDA_INTEL=m
 17.1718 +# CONFIG_SND_HDA_HWDEP is not set
 17.1719 +CONFIG_SND_HDA_CODEC_REALTEK=y
 17.1720 +CONFIG_SND_HDA_CODEC_ANALOG=y
 17.1721 +CONFIG_SND_HDA_CODEC_SIGMATEL=y
 17.1722 +CONFIG_SND_HDA_CODEC_VIA=y
 17.1723 +CONFIG_SND_HDA_CODEC_ATIHDMI=y
 17.1724 +CONFIG_SND_HDA_CODEC_CONEXANT=y
 17.1725 +CONFIG_SND_HDA_CODEC_CMEDIA=y
 17.1726 +CONFIG_SND_HDA_CODEC_SI3054=y
 17.1727 +CONFIG_SND_HDA_GENERIC=y
 17.1728 +# CONFIG_SND_HDA_POWER_SAVE is not set
 17.1729 +CONFIG_SND_HDSP=m
 17.1730 +CONFIG_SND_HDSPM=m
 17.1731 +CONFIG_SND_HIFIER=m
 17.1732 +CONFIG_SND_ICE1712=m
 17.1733 +CONFIG_SND_ICE1724=m
 17.1734 +CONFIG_SND_INTEL8X0=m
 17.1735 +CONFIG_SND_INTEL8X0M=m
 17.1736 +CONFIG_SND_KORG1212=m
 17.1737 +CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL=y
 17.1738 +CONFIG_SND_MAESTRO3=m
 17.1739 +CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL=y
 17.1740 +CONFIG_SND_MIXART=m
 17.1741 +CONFIG_SND_NM256=m
 17.1742 +CONFIG_SND_PCXHR=m
 17.1743 +CONFIG_SND_RIPTIDE=m
 17.1744 +CONFIG_SND_RME32=m
 17.1745 +CONFIG_SND_RME96=m
 17.1746 +CONFIG_SND_RME9652=m
 17.1747 +CONFIG_SND_SIS7019=m
 17.1748 +CONFIG_SND_SONICVIBES=m
 17.1749 +CONFIG_SND_TRIDENT=m
 17.1750 +CONFIG_SND_VIA82XX=m
 17.1751 +CONFIG_SND_VIA82XX_MODEM=m
 17.1752 +CONFIG_SND_VIRTUOSO=m
 17.1753 +CONFIG_SND_VX222=m
 17.1754 +CONFIG_SND_YMFPCI=m
 17.1755 +CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y
 17.1756 +CONFIG_SND_AC97_POWER_SAVE=y
 17.1757 +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
 17.1758 +
 17.1759 +#
 17.1760 +# USB devices
 17.1761 +#
 17.1762 +CONFIG_SND_USB_AUDIO=m
 17.1763 +CONFIG_SND_USB_USX2Y=m
 17.1764 +CONFIG_SND_USB_CAIAQ=m
 17.1765 +# CONFIG_SND_USB_CAIAQ_INPUT is not set
 17.1766 +
 17.1767 +#
 17.1768 +# PCMCIA devices
 17.1769 +#
 17.1770 +CONFIG_SND_VXPOCKET=m
 17.1771 +CONFIG_SND_PDAUDIOCF=m
 17.1772 +
 17.1773 +#
 17.1774 +# System on Chip audio support
 17.1775 +#
 17.1776 +# CONFIG_SND_SOC is not set
 17.1777 +
 17.1778 +#
 17.1779 +# SoC Audio support for SuperH
 17.1780 +#
 17.1781 +
 17.1782 +#
 17.1783 +# ALSA SoC audio for Freescale SOCs
 17.1784 +#
 17.1785 +
 17.1786 +#
 17.1787 +# Open Sound System
 17.1788 +#
 17.1789 +# CONFIG_SOUND_PRIME is not set
 17.1790 +CONFIG_AC97_BUS=m
 17.1791 +CONFIG_HID_SUPPORT=y
 17.1792 +CONFIG_HID=y
 17.1793 +# CONFIG_HID_DEBUG is not set
 17.1794 +# CONFIG_HIDRAW is not set
 17.1795 +
 17.1796 +#
 17.1797 +# USB Input Devices
 17.1798 +#
 17.1799 +CONFIG_USB_HID=y
 17.1800 +# CONFIG_USB_HIDINPUT_POWERBOOK is not set
 17.1801 +# CONFIG_HID_FF is not set
 17.1802 +CONFIG_USB_HIDDEV=y
 17.1803 +CONFIG_USB_SUPPORT=y
 17.1804 +CONFIG_USB_ARCH_HAS_HCD=y
 17.1805 +CONFIG_USB_ARCH_HAS_OHCI=y
 17.1806 +CONFIG_USB_ARCH_HAS_EHCI=y
 17.1807 +CONFIG_USB=y
 17.1808 +# CONFIG_USB_DEBUG is not set
 17.1809 +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
 17.1810 +
 17.1811 +#
 17.1812 +# Miscellaneous USB options
 17.1813 +#
 17.1814 +CONFIG_USB_DEVICEFS=y
 17.1815 +CONFIG_USB_DEVICE_CLASS=y
 17.1816 +# CONFIG_USB_DYNAMIC_MINORS is not set
 17.1817 +# CONFIG_USB_SUSPEND is not set
 17.1818 +# CONFIG_USB_PERSIST is not set
 17.1819 +# CONFIG_USB_OTG is not set
 17.1820 +
 17.1821 +#
 17.1822 +# USB Host Controller Drivers
 17.1823 +#
 17.1824 +CONFIG_USB_EHCI_HCD=y
 17.1825 +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
 17.1826 +# CONFIG_USB_EHCI_TT_NEWSCHED is not set
 17.1827 +# CONFIG_USB_ISP116X_HCD is not set
 17.1828 +CONFIG_USB_OHCI_HCD=m
 17.1829 +# CONFIG_USB_OHCI_HCD_SSB is not set
 17.1830 +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
 17.1831 +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
 17.1832 +CONFIG_USB_OHCI_LITTLE_ENDIAN=y
 17.1833 +CONFIG_USB_UHCI_HCD=y
 17.1834 +# CONFIG_USB_SL811_HCD is not set
 17.1835 +# CONFIG_USB_R8A66597_HCD is not set
 17.1836 +
 17.1837 +#
 17.1838 +# USB Device Class drivers
 17.1839 +#
 17.1840 +CONFIG_USB_ACM=m
 17.1841 +CONFIG_USB_PRINTER=m
 17.1842 +
 17.1843 +#
 17.1844 +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
 17.1845 +#
 17.1846 +
 17.1847 +#
 17.1848 +# may also be needed; see USB_STORAGE Help for more information
 17.1849 +#
 17.1850 +CONFIG_USB_STORAGE=y
 17.1851 +# CONFIG_USB_STORAGE_DEBUG is not set
 17.1852 +# CONFIG_USB_STORAGE_DATAFAB is not set
 17.1853 +# CONFIG_USB_STORAGE_FREECOM is not set
 17.1854 +# CONFIG_USB_STORAGE_ISD200 is not set
 17.1855 +# CONFIG_USB_STORAGE_DPCM is not set
 17.1856 +# CONFIG_USB_STORAGE_USBAT is not set
 17.1857 +# CONFIG_USB_STORAGE_SDDR09 is not set
 17.1858 +# CONFIG_USB_STORAGE_SDDR55 is not set
 17.1859 +# CONFIG_USB_STORAGE_JUMPSHOT is not set
 17.1860 +# CONFIG_USB_STORAGE_ALAUDA is not set
 17.1861 +# CONFIG_USB_STORAGE_KARMA is not set
 17.1862 +# CONFIG_USB_LIBUSUAL is not set
 17.1863 +
 17.1864 +#
 17.1865 +# USB Imaging devices
 17.1866 +#
 17.1867 +# CONFIG_USB_MDC800 is not set
 17.1868 +# CONFIG_USB_MICROTEK is not set
 17.1869 +# CONFIG_USB_MON is not set
 17.1870 +
 17.1871 +#
 17.1872 +# USB port drivers
 17.1873 +#
 17.1874 +# CONFIG_USB_USS720 is not set
 17.1875 +CONFIG_USB_SERIAL=m
 17.1876 +# CONFIG_USB_EZUSB is not set
 17.1877 +CONFIG_USB_SERIAL_GENERIC=y
 17.1878 +# CONFIG_USB_SERIAL_AIRCABLE is not set
 17.1879 +# CONFIG_USB_SERIAL_AIRPRIME is not set
 17.1880 +# CONFIG_USB_SERIAL_ARK3116 is not set
 17.1881 +# CONFIG_USB_SERIAL_BELKIN is not set
 17.1882 +CONFIG_USB_SERIAL_CH341=m
 17.1883 +# CONFIG_USB_SERIAL_WHITEHEAT is not set
 17.1884 +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
 17.1885 +# CONFIG_USB_SERIAL_CP2101 is not set
 17.1886 +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
 17.1887 +# CONFIG_USB_SERIAL_EMPEG is not set
 17.1888 +# CONFIG_USB_SERIAL_FTDI_SIO is not set
 17.1889 +# CONFIG_USB_SERIAL_FUNSOFT is not set
 17.1890 +# CONFIG_USB_SERIAL_VISOR is not set
 17.1891 +# CONFIG_USB_SERIAL_IPAQ is not set
 17.1892 +# CONFIG_USB_SERIAL_IR is not set
 17.1893 +# CONFIG_USB_SERIAL_EDGEPORT is not set
 17.1894 +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
 17.1895 +# CONFIG_USB_SERIAL_GARMIN is not set
 17.1896 +# CONFIG_USB_SERIAL_IPW is not set
 17.1897 +# CONFIG_USB_SERIAL_IUU is not set
 17.1898 +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
 17.1899 +# CONFIG_USB_SERIAL_KEYSPAN is not set
 17.1900 +# CONFIG_USB_SERIAL_KLSI is not set
 17.1901 +# CONFIG_USB_SERIAL_KOBIL_SCT is not set
 17.1902 +# CONFIG_USB_SERIAL_MCT_U232 is not set
 17.1903 +# CONFIG_USB_SERIAL_MOS7720 is not set
 17.1904 +# CONFIG_USB_SERIAL_MOS7840 is not set
 17.1905 +# CONFIG_USB_SERIAL_NAVMAN is not set
 17.1906 +CONFIG_USB_SERIAL_PL2303=m
 17.1907 +# CONFIG_USB_SERIAL_OTI6858 is not set
 17.1908 +# CONFIG_USB_SERIAL_HP4X is not set
 17.1909 +# CONFIG_USB_SERIAL_SAFE is not set
 17.1910 +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
 17.1911 +# CONFIG_USB_SERIAL_TI is not set
 17.1912 +# CONFIG_USB_SERIAL_CYBERJACK is not set
 17.1913 +# CONFIG_USB_SERIAL_XIRCOM is not set
 17.1914 +# CONFIG_USB_SERIAL_OPTION is not set
 17.1915 +# CONFIG_USB_SERIAL_OMNINET is not set
 17.1916 +# CONFIG_USB_SERIAL_DEBUG is not set
 17.1917 +
 17.1918 +#
 17.1919 +# USB Miscellaneous drivers
 17.1920 +#
 17.1921 +# CONFIG_USB_EMI62 is not set
 17.1922 +# CONFIG_USB_EMI26 is not set
 17.1923 +# CONFIG_USB_ADUTUX is not set
 17.1924 +# CONFIG_USB_AUERSWALD is not set
 17.1925 +# CONFIG_USB_RIO500 is not set
 17.1926 +# CONFIG_USB_LEGOTOWER is not set
 17.1927 +# CONFIG_USB_LCD is not set
 17.1928 +# CONFIG_USB_BERRY_CHARGE is not set
 17.1929 +# CONFIG_USB_LED is not set
 17.1930 +# CONFIG_USB_CYPRESS_CY7C63 is not set
 17.1931 +# CONFIG_USB_CYTHERM is not set
 17.1932 +# CONFIG_USB_PHIDGET is not set
 17.1933 +# CONFIG_USB_IDMOUSE is not set
 17.1934 +# CONFIG_USB_FTDI_ELAN is not set
 17.1935 +# CONFIG_USB_APPLEDISPLAY is not set
 17.1936 +# CONFIG_USB_SISUSBVGA is not set
 17.1937 +# CONFIG_USB_LD is not set
 17.1938 +# CONFIG_USB_TRANCEVIBRATOR is not set
 17.1939 +# CONFIG_USB_IOWARRIOR is not set
 17.1940 +# CONFIG_USB_TEST is not set
 17.1941 +# CONFIG_USB_GADGET is not set
 17.1942 +# CONFIG_MMC is not set
 17.1943 +# CONFIG_MEMSTICK is not set
 17.1944 +# CONFIG_NEW_LEDS is not set
 17.1945 +# CONFIG_INFINIBAND is not set
 17.1946 +# CONFIG_EDAC is not set
 17.1947 +# CONFIG_RTC_CLASS is not set
 17.1948 +# CONFIG_DMADEVICES is not set
 17.1949 +# CONFIG_AUXDISPLAY is not set
 17.1950 +
 17.1951 +#
 17.1952 +# Userspace I/O
 17.1953 +#
 17.1954 +# CONFIG_UIO is not set
 17.1955 +
 17.1956 +#
 17.1957 +# Firmware Drivers
 17.1958 +#
 17.1959 +# CONFIG_EDD is not set
 17.1960 +# CONFIG_DELL_RBU is not set
 17.1961 +# CONFIG_DCDBAS is not set
 17.1962 +CONFIG_DMIID=y
 17.1963 +
 17.1964 +#
 17.1965 +# File systems
 17.1966 +#
 17.1967 +CONFIG_EXT2_FS=y
 17.1968 +# CONFIG_EXT2_FS_XATTR is not set
 17.1969 +# CONFIG_EXT2_FS_XIP is not set
 17.1970 +CONFIG_EXT3_FS=y
 17.1971 +# CONFIG_EXT3_FS_XATTR is not set
 17.1972 +# CONFIG_EXT4DEV_FS is not set
 17.1973 +CONFIG_JBD=y
 17.1974 +CONFIG_REISERFS_FS=m
 17.1975 +# CONFIG_REISERFS_CHECK is not set
 17.1976 +# CONFIG_REISERFS_PROC_INFO is not set
 17.1977 +# CONFIG_REISERFS_FS_XATTR is not set
 17.1978 +# CONFIG_JFS_FS is not set
 17.1979 +# CONFIG_FS_POSIX_ACL is not set
 17.1980 +# CONFIG_XFS_FS is not set
 17.1981 +# CONFIG_GFS2_FS is not set
 17.1982 +# CONFIG_OCFS2_FS is not set
 17.1983 +CONFIG_DNOTIFY=y
 17.1984 +CONFIG_INOTIFY=y
 17.1985 +CONFIG_INOTIFY_USER=y
 17.1986 +# CONFIG_QUOTA is not set
 17.1987 +# CONFIG_AUTOFS_FS is not set
 17.1988 +# CONFIG_AUTOFS4_FS is not set
 17.1989 +CONFIG_FUSE_FS=y
 17.1990 +
 17.1991 +#
 17.1992 +# CD-ROM/DVD Filesystems
 17.1993 +#
 17.1994 +CONFIG_ISO9660_FS=y
 17.1995 +CONFIG_JOLIET=y
 17.1996 +# CONFIG_ZISOFS is not set
 17.1997 +# CONFIG_UDF_FS is not set
 17.1998 +
 17.1999 +#
 17.2000 +# DOS/FAT/NT Filesystems
 17.2001 +#
 17.2002 +CONFIG_FAT_FS=m
 17.2003 +CONFIG_MSDOS_FS=m
 17.2004 +CONFIG_VFAT_FS=m
 17.2005 +CONFIG_FAT_DEFAULT_CODEPAGE=437
 17.2006 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
 17.2007 +# CONFIG_NTFS_FS is not set
 17.2008 +
 17.2009 +#
 17.2010 +# Pseudo filesystems
 17.2011 +#
 17.2012 +CONFIG_PROC_FS=y
 17.2013 +CONFIG_PROC_KCORE=y
 17.2014 +CONFIG_PROC_SYSCTL=y
 17.2015 +CONFIG_SYSFS=y
 17.2016 +CONFIG_TMPFS=y
 17.2017 +# CONFIG_TMPFS_POSIX_ACL is not set
 17.2018 +# CONFIG_HUGETLBFS is not set
 17.2019 +# CONFIG_HUGETLB_PAGE is not set
 17.2020 +# CONFIG_CONFIGFS_FS is not set
 17.2021 +
 17.2022 +#
 17.2023 +# Miscellaneous filesystems
 17.2024 +#
 17.2025 +# CONFIG_ADFS_FS is not set
 17.2026 +# CONFIG_AFFS_FS is not set
 17.2027 +# CONFIG_HFS_FS is not set
 17.2028 +# CONFIG_HFSPLUS_FS is not set
 17.2029 +# CONFIG_BEFS_FS is not set
 17.2030 +# CONFIG_BFS_FS is not set
 17.2031 +# CONFIG_EFS_FS is not set
 17.2032 +CONFIG_CRAMFS=m
 17.2033 +# CONFIG_VXFS_FS is not set
 17.2034 +# CONFIG_MINIX_FS is not set
 17.2035 +# CONFIG_HPFS_FS is not set
 17.2036 +# CONFIG_QNX4FS_FS is not set
 17.2037 +# CONFIG_ROMFS_FS is not set
 17.2038 +# CONFIG_SYSV_FS is not set
 17.2039 +# CONFIG_UFS_FS is not set
 17.2040 +CONFIG_NETWORK_FILESYSTEMS=y
 17.2041 +CONFIG_NFS_FS=y
 17.2042 +CONFIG_NFS_V3=y
 17.2043 +# CONFIG_NFS_V3_ACL is not set
 17.2044 +# CONFIG_NFS_V4 is not set
 17.2045 +# CONFIG_NFS_DIRECTIO is not set
 17.2046 +# CONFIG_NFSD is not set
 17.2047 +CONFIG_LOCKD=y
 17.2048 +CONFIG_LOCKD_V4=y
 17.2049 +CONFIG_NFS_COMMON=y
 17.2050 +CONFIG_SUNRPC=y
 17.2051 +# CONFIG_SUNRPC_BIND34 is not set
 17.2052 +# CONFIG_RPCSEC_GSS_KRB5 is not set
 17.2053 +# CONFIG_RPCSEC_GSS_SPKM3 is not set
 17.2054 +# CONFIG_SMB_FS is not set
 17.2055 +# CONFIG_CIFS is not set
 17.2056 +# CONFIG_NCP_FS is not set
 17.2057 +# CONFIG_CODA_FS is not set
 17.2058 +# CONFIG_AFS_FS is not set
 17.2059 +
 17.2060 +#
 17.2061 +# Partition Types
 17.2062 +#
 17.2063 +CONFIG_PARTITION_ADVANCED=y
 17.2064 +# CONFIG_ACORN_PARTITION is not set
 17.2065 +# CONFIG_OSF_PARTITION is not set
 17.2066 +# CONFIG_AMIGA_PARTITION is not set
 17.2067 +# CONFIG_ATARI_PARTITION is not set
 17.2068 +# CONFIG_MAC_PARTITION is not set
 17.2069 +CONFIG_MSDOS_PARTITION=y
 17.2070 +# CONFIG_BSD_DISKLABEL is not set
 17.2071 +# CONFIG_MINIX_SUBPARTITION is not set
 17.2072 +# CONFIG_SOLARIS_X86_PARTITION is not set
 17.2073 +# CONFIG_UNIXWARE_DISKLABEL is not set
 17.2074 +# CONFIG_LDM_PARTITION is not set
 17.2075 +# CONFIG_SGI_PARTITION is not set
 17.2076 +# CONFIG_ULTRIX_PARTITION is not set
 17.2077 +# CONFIG_SUN_PARTITION is not set
 17.2078 +# CONFIG_KARMA_PARTITION is not set
 17.2079 +# CONFIG_EFI_PARTITION is not set
 17.2080 +# CONFIG_SYSV68_PARTITION is not set
 17.2081 +CONFIG_NLS=y
 17.2082 +CONFIG_NLS_DEFAULT="iso8859-1"
 17.2083 +CONFIG_NLS_CODEPAGE_437=y
 17.2084 +# CONFIG_NLS_CODEPAGE_737 is not set
 17.2085 +# CONFIG_NLS_CODEPAGE_775 is not set
 17.2086 +CONFIG_NLS_CODEPAGE_850=y
 17.2087 +CONFIG_NLS_CODEPAGE_852=y
 17.2088 +# CONFIG_NLS_CODEPAGE_855 is not set
 17.2089 +# CONFIG_NLS_CODEPAGE_857 is not set
 17.2090 +# CONFIG_NLS_CODEPAGE_860 is not set
 17.2091 +# CONFIG_NLS_CODEPAGE_861 is not set
 17.2092 +# CONFIG_NLS_CODEPAGE_862 is not set
 17.2093 +CONFIG_NLS_CODEPAGE_863=y
 17.2094 +# CONFIG_NLS_CODEPAGE_864 is not set
 17.2095 +CONFIG_NLS_CODEPAGE_865=y
 17.2096 +# CONFIG_NLS_CODEPAGE_866 is not set
 17.2097 +# CONFIG_NLS_CODEPAGE_869 is not set
 17.2098 +# CONFIG_NLS_CODEPAGE_936 is not set
 17.2099 +# CONFIG_NLS_CODEPAGE_950 is not set
 17.2100 +# CONFIG_NLS_CODEPAGE_932 is not set
 17.2101 +# CONFIG_NLS_CODEPAGE_949 is not set
 17.2102 +# CONFIG_NLS_CODEPAGE_874 is not set
 17.2103 +# CONFIG_NLS_ISO8859_8 is not set
 17.2104 +# CONFIG_NLS_CODEPAGE_1250 is not set
 17.2105 +# CONFIG_NLS_CODEPAGE_1251 is not set
 17.2106 +CONFIG_NLS_ASCII=y
 17.2107 +CONFIG_NLS_ISO8859_1=y
 17.2108 +CONFIG_NLS_ISO8859_2=y
 17.2109 +# CONFIG_NLS_ISO8859_3 is not set
 17.2110 +# CONFIG_NLS_ISO8859_4 is not set
 17.2111 +# CONFIG_NLS_ISO8859_5 is not set
 17.2112 +# CONFIG_NLS_ISO8859_6 is not set
 17.2113 +# CONFIG_NLS_ISO8859_7 is not set
 17.2114 +# CONFIG_NLS_ISO8859_9 is not set
 17.2115 +# CONFIG_NLS_ISO8859_13 is not set
 17.2116 +# CONFIG_NLS_ISO8859_14 is not set
 17.2117 +CONFIG_NLS_ISO8859_15=y
 17.2118 +# CONFIG_NLS_KOI8_R is not set
 17.2119 +# CONFIG_NLS_KOI8_U is not set
 17.2120 +CONFIG_NLS_UTF8=m
 17.2121 +# CONFIG_DLM is not set
 17.2122 +
 17.2123 +#
 17.2124 +# Kernel hacking
 17.2125 +#
 17.2126 +CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 17.2127 +# CONFIG_PRINTK_TIME is not set
 17.2128 +CONFIG_ENABLE_WARN_DEPRECATED=y
 17.2129 +CONFIG_ENABLE_MUST_CHECK=y
 17.2130 +# CONFIG_MAGIC_SYSRQ is not set
 17.2131 +CONFIG_UNUSED_SYMBOLS=y
 17.2132 +# CONFIG_DEBUG_FS is not set
 17.2133 +# CONFIG_HEADERS_CHECK is not set
 17.2134 +# CONFIG_DEBUG_KERNEL is not set
 17.2135 +CONFIG_DEBUG_BUGVERBOSE=y
 17.2136 +# CONFIG_LATENCYTOP is not set
 17.2137 +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 17.2138 +# CONFIG_SAMPLES is not set
 17.2139 +CONFIG_EARLY_PRINTK=y
 17.2140 +CONFIG_X86_FIND_SMP_CONFIG=y
 17.2141 +CONFIG_X86_MPPARSE=y
 17.2142 +CONFIG_DOUBLEFAULT=y
 17.2143 +CONFIG_IO_DELAY_TYPE_0X80=0
 17.2144 +CONFIG_IO_DELAY_TYPE_0XED=1
 17.2145 +CONFIG_IO_DELAY_TYPE_UDELAY=2
 17.2146 +CONFIG_IO_DELAY_TYPE_NONE=3
 17.2147 +CONFIG_IO_DELAY_0X80=y
 17.2148 +# CONFIG_IO_DELAY_0XED is not set
 17.2149 +# CONFIG_IO_DELAY_UDELAY is not set
 17.2150 +# CONFIG_IO_DELAY_NONE is not set
 17.2151 +CONFIG_DEFAULT_IO_DELAY_TYPE=0
 17.2152 +
 17.2153 +#
 17.2154 +# Security options
 17.2155 +#
 17.2156 +# CONFIG_KEYS is not set
 17.2157 +# CONFIG_SECURITY is not set
 17.2158 +# CONFIG_SECURITY_FILE_CAPABILITIES is not set
 17.2159 +CONFIG_CRYPTO=y
 17.2160 +CONFIG_CRYPTO_ALGAPI=y
 17.2161 +CONFIG_CRYPTO_AEAD=y
 17.2162 +CONFIG_CRYPTO_BLKCIPHER=y
 17.2163 +# CONFIG_CRYPTO_SEQIV is not set
 17.2164 +CONFIG_CRYPTO_HASH=y
 17.2165 +CONFIG_CRYPTO_MANAGER=y
 17.2166 +CONFIG_CRYPTO_HMAC=y
 17.2167 +# CONFIG_CRYPTO_XCBC is not set
 17.2168 +# CONFIG_CRYPTO_NULL is not set
 17.2169 +# CONFIG_CRYPTO_MD4 is not set
 17.2170 +CONFIG_CRYPTO_MD5=y
 17.2171 +CONFIG_CRYPTO_SHA1=y
 17.2172 +# CONFIG_CRYPTO_SHA256 is not set
 17.2173 +# CONFIG_CRYPTO_SHA512 is not set
 17.2174 +# CONFIG_CRYPTO_WP512 is not set
 17.2175 +# CONFIG_CRYPTO_TGR192 is not set
 17.2176 +# CONFIG_CRYPTO_GF128MUL is not set
 17.2177 +CONFIG_CRYPTO_ECB=m
 17.2178 +CONFIG_CRYPTO_CBC=y
 17.2179 +CONFIG_CRYPTO_PCBC=m
 17.2180 +# CONFIG_CRYPTO_LRW is not set
 17.2181 +# CONFIG_CRYPTO_XTS is not set
 17.2182 +# CONFIG_CRYPTO_CTR is not set
 17.2183 +# CONFIG_CRYPTO_GCM is not set
 17.2184 +# CONFIG_CRYPTO_CCM is not set
 17.2185 +# CONFIG_CRYPTO_CRYPTD is not set
 17.2186 +CONFIG_CRYPTO_DES=y
 17.2187 +# CONFIG_CRYPTO_FCRYPT is not set
 17.2188 +# CONFIG_CRYPTO_BLOWFISH is not set
 17.2189 +# CONFIG_CRYPTO_TWOFISH is not set
 17.2190 +# CONFIG_CRYPTO_TWOFISH_586 is not set
 17.2191 +# CONFIG_CRYPTO_SERPENT is not set
 17.2192 +CONFIG_CRYPTO_AES=m
 17.2193 +# CONFIG_CRYPTO_AES_586 is not set
 17.2194 +# CONFIG_CRYPTO_CAST5 is not set
 17.2195 +# CONFIG_CRYPTO_CAST6 is not set
 17.2196 +# CONFIG_CRYPTO_TEA is not set
 17.2197 +CONFIG_CRYPTO_ARC4=m
 17.2198 +# CONFIG_CRYPTO_KHAZAD is not set
 17.2199 +# CONFIG_CRYPTO_ANUBIS is not set
 17.2200 +# CONFIG_CRYPTO_SEED is not set
 17.2201 +# CONFIG_CRYPTO_SALSA20 is not set
 17.2202 +# CONFIG_CRYPTO_SALSA20_586 is not set
 17.2203 +CONFIG_CRYPTO_DEFLATE=y
 17.2204 +CONFIG_CRYPTO_MICHAEL_MIC=m
 17.2205 +CONFIG_CRYPTO_CRC32C=m
 17.2206 +# CONFIG_CRYPTO_CAMELLIA is not set
 17.2207 +# CONFIG_CRYPTO_TEST is not set
 17.2208 +CONFIG_CRYPTO_AUTHENC=y
 17.2209 +# CONFIG_CRYPTO_LZO is not set
 17.2210 +CONFIG_CRYPTO_HW=y
 17.2211 +# CONFIG_CRYPTO_DEV_PADLOCK is not set
 17.2212 +# CONFIG_CRYPTO_DEV_GEODE is not set
 17.2213 +# CONFIG_CRYPTO_DEV_HIFN_795X is not set
 17.2214 +CONFIG_HAVE_KVM=y
 17.2215 +CONFIG_VIRTUALIZATION=y
 17.2216 +CONFIG_KVM=m
 17.2217 +CONFIG_KVM_INTEL=m
 17.2218 +CONFIG_KVM_AMD=m
 17.2219 +CONFIG_LGUEST=m
 17.2220 +CONFIG_VIRTIO=m
 17.2221 +CONFIG_VIRTIO_RING=m
 17.2222 +CONFIG_VIRTIO_PCI=m
 17.2223 +# CONFIG_VIRTIO_BALLOON is not set
 17.2224 +
 17.2225 +#
 17.2226 +# Library routines
 17.2227 +#
 17.2228 +CONFIG_BITREVERSE=y
 17.2229 +CONFIG_CRC_CCITT=y
 17.2230 +# CONFIG_CRC16 is not set
 17.2231 +# CONFIG_CRC_ITU_T is not set
 17.2232 +CONFIG_CRC32=y
 17.2233 +# CONFIG_CRC7 is not set
 17.2234 +CONFIG_LIBCRC32C=m
 17.2235 +CONFIG_ZLIB_INFLATE=y
 17.2236 +CONFIG_ZLIB_DEFLATE=y
 17.2237 +CONFIG_PLIST=y
 17.2238 +CONFIG_HAS_IOMEM=y
 17.2239 +CONFIG_HAS_IOPORT=y
 17.2240 +CONFIG_HAS_DMA=y
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/linux/stuff/linux-diff-2.6.25.5.u	Sat Jun 07 22:04:11 2008 +0000
    18.3 @@ -0,0 +1,18 @@
    18.4 +--- linux-2.6.25.5/arch/x86/vdso/Makefile
    18.5 ++++ linux-2.6.25.5/arch/x86/vdso/Makefile
    18.6 +@@ -103,10 +103,12 @@
    18.7 + 	   $(foreach H,$(filter-out FORCE,$^),\
    18.8 + 		     if grep -q VDSO32_SYSENTER_RETURN $H; \
    18.9 + 		     then diff -u $(@D)/.tmp_$(@F) $H; \
   18.10 +-		     else sed /VDSO32_SYSENTER_RETURN/d $(@D)/.tmp_$(@F) | \
   18.11 +-			  diff -u - $H; fi &&) : ;\
   18.12 ++		     else sed /VDSO32_SYSENTER_RETURN/d $(@D)/.tmp_$(@F) > \
   18.13 ++		     	  $(@D)/.tmp_$(@F).$$ ; \
   18.14 ++			  diff -u $(@D)/.tmp_$(@F).$$ $H; fi &&) : ;\
   18.15 + 	then mv -f $(@D)/.tmp_$(@F) $@; \
   18.16 +-	else rm -f $(@D)/.tmp_$(@F); exit 1; \
   18.17 ++	else rm -f $(@D)/.tmp_$(@F)*; exit 1; \
   18.18 ++	rm -f $(@D)/.tmp_$(@F)*; \
   18.19 + 	fi
   18.20 + endef
   18.21 + 
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/linux/stuff/linux-lzma-2.6.25.5.u	Sat Jun 07 22:04:11 2008 +0000
    19.3 @@ -0,0 +1,2127 @@
    19.4 +--- linux-2.6.25.5/arch/x86/boot/compressed/Makefile
    19.5 ++++ linux-2.6.25.5/arch/x86/boot/compressed/Makefile
    19.6 +@@ -4,7 +4,7 @@
    19.7 + # create a compressed vmlinux image from the original vmlinux
    19.8 + #
    19.9 + 
   19.10 +-targets := vmlinux vmlinux.bin vmlinux.bin.gz head_$(BITS).o misc.o piggy.o
   19.11 ++targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma head_$(BITS).o misc.o piggy.o
   19.12 + 
   19.13 + KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2
   19.14 + KBUILD_CFLAGS += -fno-strict-aliasing -fPIC
   19.15 +@@ -50,15 +50,41 @@
   19.16 + $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
   19.17 + 	$(call if_changed,gzip)
   19.18 + endif
   19.19 ++
   19.20 ++ifdef CONFIG_RELOCATABLE
   19.21 ++$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin.all FORCE
   19.22 ++	$(call if_changed,bzip2)
   19.23 ++else
   19.24 ++$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE
   19.25 ++	$(call if_changed,bzip2)
   19.26 ++endif
   19.27 ++
   19.28 ++ifdef CONFIG_RELOCATABLE
   19.29 ++$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin.all FORCE
   19.30 ++	$(call if_changed,lzma)
   19.31 ++else
   19.32 ++$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
   19.33 ++	$(call if_changed,lzma)
   19.34 ++endif
   19.35 ++
   19.36 + LDFLAGS_piggy.o := -r --format binary --oformat elf32-i386 -T
   19.37 + 
   19.38 + else
   19.39 ++$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE
   19.40 ++	$(call if_changed,bzip2)
   19.41 ++
   19.42 ++$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
   19.43 ++	$(call if_changed,lzma)
   19.44 ++
   19.45 + $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
   19.46 + 	$(call if_changed,gzip)
   19.47 + 
   19.48 + LDFLAGS_piggy.o := -r --format binary --oformat elf64-x86-64 -T
   19.49 + endif
   19.50 + 
   19.51 ++suffix_$(CONFIG_KERNEL_GZIP)  = gz
   19.52 ++suffix_$(CONFIG_KERNEL_BZIP2) = bz2
   19.53 ++suffix_$(CONFIG_KERNEL_LZMA)  = lzma
   19.54 + 
   19.55 +-$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE
   19.56 ++$(obj)/piggy.o: $(src)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix_y) FORCE
   19.57 + 	$(call if_changed,ld)
   19.58 +
   19.59 +--- linux-2.6.25.5/arch/x86/boot/compressed/misc.c
   19.60 ++++ linux-2.6.25.5/arch/x86/boot/compressed/misc.c
   19.61 +@@ -130,9 +130,12 @@
   19.62 + 				 * always be larger than our output buffer.
   19.63 + 				 */
   19.64 + 
   19.65 ++#ifdef CONFIG_KERNEL_GZIP
   19.66 + static uch *inbuf;	/* input buffer */
   19.67 ++#endif
   19.68 + static uch *window;	/* Sliding window buffer, (and final output buffer) */
   19.69 + 
   19.70 ++#ifdef CONFIG_KERNEL_GZIP
   19.71 + static unsigned insize;  /* valid bytes in inbuf */
   19.72 + static unsigned inptr;   /* index of next byte to be processed in inbuf */
   19.73 + static unsigned outcnt;  /* bytes in output buffer */
   19.74 +@@ -167,9 +170,12 @@
   19.75 + 
   19.76 + static int  fill_inbuf(void);
   19.77 + static void flush_window(void);
   19.78 ++#endif
   19.79 + static void error(char *m);
   19.80 ++#ifdef CONFIG_KERNEL_GZIP
   19.81 + static void gzip_mark(void **);
   19.82 + static void gzip_release(void **);
   19.83 ++#endif
   19.84 +   
   19.85 + /*
   19.86 +  * This is set up by the setup-routine at boot-time
   19.87 +@@ -185,12 +191,12 @@
   19.88 + extern unsigned char input_data[];
   19.89 + extern int input_len;
   19.90 + 
   19.91 +-static long bytes_out = 0;
   19.92 +-
   19.93 + static void *malloc(int size);
   19.94 + static void free(void *where);
   19.95 + 
   19.96 ++#if (defined CONFIG_KERNEL_GZIP || defined CONFIG_KERNEL_BZIP2)
   19.97 + static void *memset(void *s, int c, unsigned n);
   19.98 ++#endif
   19.99 + static void *memcpy(void *dest, const void *src, unsigned n);
  19.100 + 
  19.101 + static void putstr(const char *);
  19.102 +@@ -204,11 +210,15 @@
  19.103 + static memptr free_mem_ptr;
  19.104 + static memptr free_mem_end_ptr;
  19.105 + 
  19.106 ++#if (defined CONFIG_KERNEL_BZIP2 || defined CONFIG_KERNEL_LZMA)
  19.107 ++#define HEAP_SIZE             0x400000
  19.108 ++#else
  19.109 + #ifdef CONFIG_X86_64
  19.110 + #define HEAP_SIZE             0x7000
  19.111 + #else
  19.112 + #define HEAP_SIZE             0x4000
  19.113 + #endif
  19.114 ++#endif
  19.115 + 
  19.116 + static char *vidmem = (char *)0xb8000;
  19.117 + static int vidport;
  19.118 +@@ -218,7 +228,29 @@
  19.119 + void *xquad_portio;
  19.120 + #endif
  19.121 + 
  19.122 ++#if (defined CONFIG_KERNEL_BZIP2 || defined CONFIG_KERNEL_LZMA)
  19.123 ++
  19.124 ++#define large_malloc malloc
  19.125 ++#define large_free free
  19.126 ++
  19.127 ++#ifdef current
  19.128 ++#undef current
  19.129 ++#endif
  19.130 ++
  19.131 ++#define INCLUDED
  19.132 ++#endif
  19.133 ++
  19.134 ++#ifdef CONFIG_KERNEL_GZIP
  19.135 + #include "../../../../lib/inflate.c"
  19.136 ++#endif
  19.137 ++
  19.138 ++#ifdef CONFIG_KERNEL_BZIP2
  19.139 ++#include "../../../../lib/decompress_bunzip2.c"
  19.140 ++#endif
  19.141 ++
  19.142 ++#ifdef CONFIG_KERNEL_LZMA
  19.143 ++#include "../../../../lib/decompress_unlzma.c"
  19.144 ++#endif
  19.145 + 
  19.146 + static void *malloc(int size)
  19.147 + {
  19.148 +@@ -242,6 +274,7 @@
  19.149 + {	/* Don't care */
  19.150 + }
  19.151 + 
  19.152 ++#ifdef CONFIG_KERNEL_GZIP
  19.153 + static void gzip_mark(void **ptr)
  19.154 + {
  19.155 + 	*ptr = (void *) free_mem_ptr;
  19.156 +@@ -251,6 +284,7 @@
  19.157 + {
  19.158 + 	free_mem_ptr = (memptr) *ptr;
  19.159 + }
  19.160 ++#endif
  19.161 +  
  19.162 + static void scroll(void)
  19.163 + {
  19.164 +@@ -303,6 +337,7 @@
  19.165 + 	outb(0xff & (pos >> 1), vidport+1);
  19.166 + }
  19.167 + 
  19.168 ++#if (defined CONFIG_KERNEL_GZIP || defined CONFIG_KERNEL_BZIP2)
  19.169 + static void* memset(void* s, int c, unsigned n)
  19.170 + {
  19.171 + 	int i;
  19.172 +@@ -311,6 +346,7 @@
  19.173 + 	for (i=0;i<n;i++) ss[i] = c;
  19.174 + 	return s;
  19.175 + }
  19.176 ++#endif
  19.177 + 
  19.178 + static void* memcpy(void* dest, const void* src, unsigned n)
  19.179 + {
  19.180 +@@ -322,6 +358,26 @@
  19.181 + 	return dest;
  19.182 + }
  19.183 + 
  19.184 ++#ifdef CONFIG_KERNEL_BZIP2
  19.185 ++/* ===========================================================================
  19.186 ++ * Write the output window window[0..outcnt-1].
  19.187 ++ * (Used for the decompressed data only.)
  19.188 ++ */
  19.189 ++static int compr_flush(char *data, unsigned int len)
  19.190 ++{
  19.191 ++    unsigned n;
  19.192 ++    uch *out;
  19.193 ++    
  19.194 ++    out = window; 
  19.195 ++    for (n = 0; n < len; n++) {
  19.196 ++	    *out++ = *data++;
  19.197 ++    }
  19.198 ++    window += (ulg)len;
  19.199 ++    return len;
  19.200 ++}
  19.201 ++
  19.202 ++#endif
  19.203 ++#ifdef CONFIG_KERNEL_GZIP
  19.204 + /* ===========================================================================
  19.205 +  * Fill the input buffer. This is called only when the buffer is empty
  19.206 +  * and at least one byte is really needed.
  19.207 +@@ -333,7 +389,7 @@
  19.208 + }
  19.209 + 
  19.210 + /* ===========================================================================
  19.211 +- * Write the output window window[0..outcnt-1] and update crc and bytes_out.
  19.212 ++ * Write the output window window[0..outcnt-1] and update crc.
  19.213 +  * (Used for the decompressed data only.)
  19.214 +  */
  19.215 + static void flush_window(void)
  19.216 +@@ -351,9 +407,9 @@
  19.217 + 		c = crc_32_tab[((int)c ^ ch) & 0xff] ^ (c >> 8);
  19.218 + 	}
  19.219 + 	crc = c;
  19.220 +-	bytes_out += (ulg)outcnt;
  19.221 + 	outcnt = 0;
  19.222 + }
  19.223 ++#endif
  19.224 + 
  19.225 + static void error(char *x)
  19.226 + {
  19.227 +@@ -385,9 +441,11 @@
  19.228 + 	window = output;		/* Output buffer (Normally at 1M) */
  19.229 + 	free_mem_ptr     = heap;	/* Heap */
  19.230 + 	free_mem_end_ptr = heap + HEAP_SIZE;
  19.231 ++#ifdef CONFIG_KERNEL_GZIP
  19.232 + 	inbuf  = input_data;		/* Input buffer */
  19.233 + 	insize = input_len;
  19.234 + 	inptr  = 0;
  19.235 ++#endif
  19.236 + 
  19.237 + #ifdef CONFIG_X86_64
  19.238 + 	if ((ulg)output & (__KERNEL_ALIGN - 1))
  19.239 +@@ -405,9 +463,21 @@
  19.240 + #endif
  19.241 + #endif
  19.242 + 
  19.243 ++#ifdef CONFIG_KERNEL_BZIP2
  19.244 ++	putstr("\nBunzipping Linux... ");
  19.245 ++	bunzip2(input_data, input_len-4, NULL, compr_flush, NULL);
  19.246 ++#endif
  19.247 ++
  19.248 ++#ifdef CONFIG_KERNEL_LZMA
  19.249 ++	putstr("\nUnlzmaing Linux... ");
  19.250 ++	unlzma(input_data, input_len-4, NULL, NULL, window);
  19.251 ++#endif
  19.252 ++
  19.253 ++#ifdef CONFIG_KERNEL_GZIP
  19.254 + 	makecrc();
  19.255 + 	putstr("\nDecompressing Linux... ");
  19.256 + 	gunzip();
  19.257 ++#endif
  19.258 + 	putstr("done.\nBooting the kernel.\n");
  19.259 + 	return;
  19.260 + }
  19.261 +
  19.262 +--- linux-2.6.25.5/drivers/block/Kconfig
  19.263 ++++ linux-2.6.25.5/drivers/block/Kconfig
  19.264 +@@ -357,6 +357,30 @@
  19.265 + 	  will prevent RAM block device backing store memory from being
  19.266 + 	  allocated from highmem (only a problem for highmem systems).
  19.267 + 
  19.268 ++config RD_BZIP2
  19.269 ++	bool "Initial ramdisk compressed using bzip2"
  19.270 ++	default n
  19.271 ++	depends on BLK_DEV_INITRD=y
  19.272 ++	help
  19.273 ++	  Support loading of a bzip2 encoded initial ramdisk or cpio buffer
  19.274 ++	  If unsure, say N.
  19.275 ++
  19.276 ++config RD_LZMA
  19.277 ++	bool "Initial ramdisk compressed using lzma"
  19.278 ++	default n
  19.279 ++	depends on BLK_DEV_INITRD=y
  19.280 ++	help
  19.281 ++	  Support loading of a lzma encoded initial ramdisk or cpio buffer
  19.282 ++	  If unsure, say N.
  19.283 ++
  19.284 ++config RD_GZIP
  19.285 ++	bool "Initial ramdisk compressed using gzip"
  19.286 ++	default y
  19.287 ++	depends on BLK_DEV_INITRD=y
  19.288 ++	help
  19.289 ++	  Support loading of a gzip encoded initial ramdisk or cpio buffer.
  19.290 ++	  If unsure, say Y.
  19.291 ++
  19.292 + config CDROM_PKTCDVD
  19.293 + 	tristate "Packet writing on CD/DVD media"
  19.294 + 	depends on !UML
  19.295 +
  19.296 +--- linux-2.6.25.5/include/linux/decompress_bunzip2.h
  19.297 ++++ linux-2.6.25.5/include/linux/decompress_bunzip2.h
  19.298 +@@ -0,0 +1,16 @@
  19.299 ++#ifndef DECOMPRESS_BUNZIP2_H
  19.300 ++#define DECOMPRESS_BUNZIP2_H
  19.301 ++
  19.302 ++/* Other housekeeping constants */
  19.303 ++#define BZIP2_IOBUF_SIZE		4096
  19.304 ++
  19.305 ++#ifndef STATIC
  19.306 ++#define STATIC /**/
  19.307 ++#endif
  19.308 ++
  19.309 ++STATIC int bunzip2(char *inbuf, int len, 
  19.310 ++		   int(*fill)(void*,unsigned int),
  19.311 ++		   int(*writebb)(char*,unsigned int),
  19.312 ++		   int *pos);
  19.313 ++
  19.314 ++#endif
  19.315 +
  19.316 +--- linux-2.6.25.5/include/linux/decompress_generic.h
  19.317 ++++ linux-2.6.25.5/include/linux/decompress_generic.h
  19.318 +@@ -0,0 +1,28 @@
  19.319 ++#ifndef DECOMPRESS_GENERIC_H
  19.320 ++#define DECOMPRESS_GENERIC_H
  19.321 ++
  19.322 ++/* Minimal chunksize to be read.
  19.323 ++ * Bzip2 prefers at least 4096
  19.324 ++ * Lzma prefers 0x10000 */
  19.325 ++#define COMPR_IOBUF_SIZE	4096
  19.326 ++
  19.327 ++typedef int (*uncompress_fn) (char *inbuf, int len, 
  19.328 ++			      int(*fill)(char*,unsigned int),
  19.329 ++			      int(*writebb)(char*,unsigned int),
  19.330 ++			      int *posp);
  19.331 ++
  19.332 ++/* inbuf   - input buffer
  19.333 ++ * len     - len of pre-read data in inbuf
  19.334 ++ * fill    - function to fill inbuf if empty
  19.335 ++ * writebb - function to write out outbug
  19.336 ++ * posp    - if non-null, input position (number of bytes read) will be
  19.337 ++ *           returned here
  19.338 ++ *
  19.339 ++ * If len != 0, the inbuf is initialized (with as much data), and fill
  19.340 ++ * should not be called
  19.341 ++ * If len = 0, the inbuf is allocated, but empty. Its size is IOBUF_SIZE
  19.342 ++ * fill should be called (repeatedly...) to read data, at most IOBUF_SIZE
  19.343 ++ */
  19.344 ++ 
  19.345 ++
  19.346 ++#endif
  19.347 +
  19.348 +--- linux-2.6.25.5/include/linux/decompress_unlzma.h
  19.349 ++++ linux-2.6.25.5/include/linux/decompress_unlzma.h
  19.350 +@@ -0,0 +1,15 @@
  19.351 ++#ifndef DECOMPRESS_UNLZMA_H
  19.352 ++#define DECOMPRESS_UNLZMA_H
  19.353 ++
  19.354 ++#define LZMA_IOBUF_SIZE	0x10000
  19.355 ++
  19.356 ++#ifndef STATIC
  19.357 ++#define STATIC /**/
  19.358 ++#endif
  19.359 ++
  19.360 ++STATIC int unlzma(char *inbuf, int len, 
  19.361 ++		  int(*fill)(void*,unsigned int),
  19.362 ++		  int(*writebb)(char*,unsigned int),
  19.363 ++		  int *pos);
  19.364 ++
  19.365 ++#endif
  19.366 +
  19.367 +--- linux-2.6.25.5/init/do_mounts_rd.c
  19.368 ++++ linux-2.6.25.5/init/do_mounts_rd.c
  19.369 +@@ -8,6 +8,16 @@
  19.370 + #include <linux/initrd.h>
  19.371 + #include <linux/string.h>
  19.372 + 
  19.373 ++#ifdef CONFIG_RD_BZIP2
  19.374 ++#include <linux/decompress_bunzip2.h>
  19.375 ++#undef STATIC
  19.376 ++#endif
  19.377 ++
  19.378 ++#ifdef CONFIG_RD_LZMA
  19.379 ++#include <linux/decompress_unlzma.h>
  19.380 ++#undef STATIC
  19.381 ++#endif
  19.382 ++
  19.383 + #include "do_mounts.h"
  19.384 + 
  19.385 + #define BUILD_CRAMDISK
  19.386 +@@ -30,7 +40,15 @@ static int __init ramdisk_start_setup(ch
  19.387 + }
  19.388 + __setup("ramdisk_start=", ramdisk_start_setup);
  19.389 + 
  19.390 ++#ifdef CONFIG_RD_GZIP
  19.391 + static int __init crd_load(int in_fd, int out_fd);
  19.392 ++#endif
  19.393 ++#ifdef CONFIG_RD_BZIP2
  19.394 ++static int __init crd_load_bzip2(int in_fd, int out_fd);
  19.395 ++#endif
  19.396 ++#ifdef CONFIG_RD_LZMA
  19.397 ++static int __init crd_load_lzma(int in_fd, int out_fd);
  19.398 ++#endif
  19.399 + 
  19.400 + /*
  19.401 +  * This routine tries to find a RAM disk image to load, and returns the
  19.402 +@@ -46,7 +64,7 @@ static int __init crd_load(int in_fd, in
  19.403 +  * 	gzip
  19.404 +  */
  19.405 + static int __init 
  19.406 +-identify_ramdisk_image(int fd, int start_block)
  19.407 ++identify_ramdisk_image(int fd, int start_block, int *ztype)
  19.408 + {
  19.409 + 	const int size = 512;
  19.410 + 	struct minix_super_block *minixsb;
  19.411 +@@ -72,6 +90,7 @@ identify_ramdisk_image(int fd, int start
  19.412 + 	sys_lseek(fd, start_block * BLOCK_SIZE, 0);
  19.413 + 	sys_read(fd, buf, size);
  19.414 + 
  19.415 ++#ifdef CONFIG_RD_GZIP
  19.416 + 	/*
  19.417 + 	 * If it matches the gzip magic numbers, return -1
  19.418 + 	 */
  19.419 +@@ -79,9 +98,40 @@ identify_ramdisk_image(int fd, int start
  19.420 + 		printk(KERN_NOTICE
  19.421 + 		       "RAMDISK: Compressed image found at block %d\n",
  19.422 + 		       start_block);
  19.423 ++		*ztype = 0;
  19.424 ++		nblocks = 0;
  19.425 ++		goto done;
  19.426 ++	}
  19.427 ++#endif
  19.428 ++
  19.429 ++#ifdef CONFIG_RD_BZIP2
  19.430 ++	/*
  19.431 ++	 * If it matches the bzip magic numbers, return -1
  19.432 ++	 */
  19.433 ++	if (buf[0] == 0x42 && (buf[1] == 0x5a)) {
  19.434 ++		printk(KERN_NOTICE
  19.435 ++		       "RAMDISK: Bzipped image found at block %d\n",
  19.436 ++		       start_block);
  19.437 ++		*ztype = 1;
  19.438 ++		nblocks = 0;
  19.439 ++		goto done;
  19.440 ++	}
  19.441 ++#endif
  19.442 ++
  19.443 ++#ifdef CONFIG_RD_LZMA
  19.444 ++	/*
  19.445 ++	 * If it matches the bzip magic numbers, return -1
  19.446 ++	 */
  19.447 ++	if (buf[0] == 0x5d && (buf[1] == 0x00)) {
  19.448 ++		printk(KERN_NOTICE
  19.449 ++		       "RAMDISK: Lzma image found at block %d\n",
  19.450 ++		       start_block);
  19.451 ++		*ztype = 2;
  19.452 + 		nblocks = 0;
  19.453 + 		goto done;
  19.454 + 	}
  19.455 ++#endif
  19.456 ++
  19.457 + 
  19.458 + 	/* romfs is at block zero too */
  19.459 + 	if (romfsb->word0 == ROMSB_WORD0 &&
  19.460 +@@ -145,6 +195,7 @@ int __init rd_load_image(char *from)
  19.461 + 	int nblocks, i, disk;
  19.462 + 	char *buf = NULL;
  19.463 + 	unsigned short rotate = 0;
  19.464 ++	int ztype=-1;
  19.465 + #if !defined(CONFIG_S390) && !defined(CONFIG_PPC_ISERIES)
  19.466 + 	char rotator[4] = { '|' , '/' , '-' , '\\' };
  19.467 + #endif
  19.468 +@@ -157,14 +208,38 @@ int __init rd_load_image(char *from)
  19.469 + 	if (in_fd < 0)
  19.470 + 		goto noclose_input;
  19.471 + 
  19.472 +-	nblocks = identify_ramdisk_image(in_fd, rd_image_start);
  19.473 ++	nblocks = identify_ramdisk_image(in_fd, rd_image_start, &ztype);
  19.474 + 	if (nblocks < 0)
  19.475 + 		goto done;
  19.476 + 
  19.477 + 	if (nblocks == 0) {
  19.478 + #ifdef BUILD_CRAMDISK
  19.479 +-		if (crd_load(in_fd, out_fd) == 0)
  19.480 +-			goto successful_load;
  19.481 ++		switch(ztype) {
  19.482 ++
  19.483 ++#ifdef CONFIG_RD_GZIP
  19.484 ++			case 0:
  19.485 ++				if (crd_load(in_fd, out_fd) == 0)
  19.486 ++					goto successful_load;
  19.487 ++				break;
  19.488 ++#endif
  19.489 ++
  19.490 ++#ifdef CONFIG_RD_BZIP2
  19.491 ++			case 1:
  19.492 ++				if (crd_load_bzip2(in_fd, out_fd) == 0)
  19.493 ++					goto successful_load;
  19.494 ++				break;
  19.495 ++#endif
  19.496 ++
  19.497 ++#ifdef CONFIG_RD_LZMA
  19.498 ++			case 2:
  19.499 ++				if (crd_load_lzma(in_fd, out_fd) == 0)
  19.500 ++					goto successful_load;
  19.501 ++				break;
  19.502 ++#endif
  19.503 ++
  19.504 ++			default:
  19.505 ++				break;
  19.506 ++		}
  19.507 + #else
  19.508 + 		printk(KERN_NOTICE
  19.509 + 		       "RAMDISK: Kernel does not support compressed "
  19.510 +@@ -269,6 +344,7 @@ int __init rd_load_disk(int n)
  19.511 + 
  19.512 + #ifdef BUILD_CRAMDISK
  19.513 + 
  19.514 ++#ifdef CONFIG_RD_GZIP
  19.515 + /*
  19.516 +  * gzip declarations
  19.517 +  */
  19.518 +@@ -296,8 +372,11 @@ static unsigned outcnt;  /* bytes in out
  19.519 + static int exit_code;
  19.520 + static int unzip_error;
  19.521 + static long bytes_out;
  19.522 ++#endif
  19.523 ++
  19.524 + static int crd_infd, crd_outfd;
  19.525 + 
  19.526 ++#ifdef CONFIG_RD_GZIP
  19.527 + #define get_byte()  (inptr < insize ? inbuf[inptr++] : fill_inbuf())
  19.528 + 		
  19.529 + /* Diagnostic functions (stubbed out) */
  19.530 +@@ -359,7 +438,22 @@ static int __init fill_inbuf(void)
  19.531 + 
  19.532 + 	return inbuf[0];
  19.533 + }
  19.534 ++#endif
  19.535 ++
  19.536 ++#if (defined CONFIG_RD_BZIP2 || defined CONFIG_RD_LZMA)
  19.537 ++static int __init compr_fill(void *buf, unsigned int len)
  19.538 ++{
  19.539 ++	int r = sys_read(crd_infd, buf, len);
  19.540 ++	if(r < 0) {
  19.541 ++		printk(KERN_ERR "RAMDISK: error while reading compressed data");
  19.542 ++	} else if(r == 0) {
  19.543 ++		printk(KERN_ERR "RAMDISK: EOF while reading compressed data");
  19.544 ++	}
  19.545 ++	return r;
  19.546 ++}
  19.547 ++#endif
  19.548 + 
  19.549 ++#ifdef CONFIG_RD_GZIP
  19.550 + /* ===========================================================================
  19.551 +  * Write the output window window[0..outcnt-1] and update crc and bytes_out.
  19.552 +  * (Used for the decompressed data only.)
  19.553 +@@ -385,7 +479,24 @@ static void __init flush_window(void)
  19.554 +     bytes_out += (ulg)outcnt;
  19.555 +     outcnt = 0;
  19.556 + }
  19.557 ++#endif
  19.558 ++
  19.559 ++#if (defined CONFIG_RD_BZIP2 || defined CONFIG_RD_LZMA)
  19.560 ++static int __init compr_flush(void *window, unsigned int outcnt) {
  19.561 ++	static int progressDots=0;
  19.562 ++	int written = sys_write(crd_outfd, window, outcnt);
  19.563 ++	if (written != outcnt) {
  19.564 ++		printk(KERN_ERR "RAMDISK: incomplete write (%d != %d)\n",
  19.565 ++		       written, outcnt);
  19.566 ++	}
  19.567 ++	progressDots = (progressDots+1)%10;
  19.568 ++	if(!progressDots)
  19.569 ++		printk(".");
  19.570 ++	return outcnt;
  19.571 ++}
  19.572 ++#endif
  19.573 + 
  19.574 ++#ifdef CONFIG_RD_GZIP
  19.575 + static void __init error(char *x)
  19.576 + {
  19.577 + 	printk(KERN_ERR "%s\n", x);
  19.578 +@@ -425,5 +536,43 @@ static int __init crd_load(int in_fd, in
  19.579 + 	kfree(window);
  19.580 + 	return result;
  19.581 + }
  19.582 ++#endif
  19.583 ++
  19.584 ++#if (defined CONFIG_RD_BZIP2 || defined CONFIG_RD_LZMA)
  19.585 ++static int __init crd_load_compr(int in_fd, int out_fd, int size,
  19.586 ++				 int (*deco)(char *,int,
  19.587 ++					     int(*fill)(void*,unsigned int),
  19.588 ++					     int(*flush)(void*,unsigned int),
  19.589 ++					     int *))
  19.590 ++{
  19.591 ++	int result;
  19.592 ++	char *inbuf = kmalloc(size, GFP_KERNEL);
  19.593 ++	crd_infd = in_fd;
  19.594 ++	crd_outfd = out_fd;
  19.595 ++	if (inbuf == 0) {
  19.596 ++		printk(KERN_ERR "RAMDISK: Couldn't allocate decompression buffer\n");
  19.597 ++		return -1;
  19.598 ++	}
  19.599 ++	result=deco(inbuf, 0, compr_fill, compr_flush, NULL);
  19.600 ++	kfree(inbuf);
  19.601 ++	printk("\n");
  19.602 ++	return result;
  19.603 ++}
  19.604 ++#endif
  19.605 ++
  19.606 ++#ifdef CONFIG_RD_BZIP2
  19.607 ++static int __init crd_load_bzip2(int in_fd, int out_fd)
  19.608 ++{
  19.609 ++	return crd_load_compr(in_fd, out_fd, BZIP2_IOBUF_SIZE, bunzip2);
  19.610 ++}
  19.611 ++#endif
  19.612 ++
  19.613 ++#ifdef CONFIG_RD_LZMA
  19.614 ++static int __init crd_load_lzma(int in_fd, int out_fd)
  19.615 ++{
  19.616 ++	return crd_load_compr(in_fd, out_fd, LZMA_IOBUF_SIZE, unlzma);
  19.617 ++}
  19.618 ++
  19.619 ++#endif
  19.620 + 
  19.621 + #endif  /* BUILD_CRAMDISK */
  19.622 +
  19.623 +--- linux-2.6.25.5/init/initramfs.c
  19.624 ++++ linux-2.6.25.5/init/initramfs.c
  19.625 +@@ -367,6 +367,18 @@
  19.626 + 	}
  19.627 + }
  19.628 + 
  19.629 ++#ifdef CONFIG_RD_BZIP2
  19.630 ++#include <linux/decompress_bunzip2.h>
  19.631 ++#undef STATIC
  19.632 ++
  19.633 ++#endif
  19.634 ++
  19.635 ++#ifdef CONFIG_RD_LZMA
  19.636 ++#include <linux/decompress_unlzma.h>
  19.637 ++#undef STATIC
  19.638 ++
  19.639 ++#endif
  19.640 ++
  19.641 + /*
  19.642 +  * gzip declarations
  19.643 +  */
  19.644 +@@ -441,6 +453,29 @@
  19.645 + 	outcnt = 0;
  19.646 + }
  19.647 + 
  19.648 ++#include <linux/initrd.h>
  19.649 ++#ifdef CONFIG_RD_LZMA
  19.650 ++#define INITRD_PAGE ((PAGE_SIZE > 1024*1024) ? PAGE_SIZE : 1024*1024)
  19.651 ++static int fill_offset, fill_total;
  19.652 ++static int fill_buffer(void *buffer, unsigned size)
  19.653 ++{
  19.654 ++	int max =  initrd_end - initrd_start - fill_offset;
  19.655 ++	if (size < max) max = size;
  19.656 ++	memcpy(buffer, (void *)(initrd_start + fill_offset), max);
  19.657 ++	fill_offset += max;
  19.658 ++	fill_total += max;
  19.659 ++	if (fill_offset >= INITRD_PAGE) {
  19.660 ++		unsigned rem = fill_offset % INITRD_PAGE;
  19.661 ++		unsigned end = initrd_start + fill_offset - rem;
  19.662 ++		free_initrd_mem(initrd_start, end);
  19.663 ++		printk(".");
  19.664 ++		initrd_start = end;
  19.665 ++		fill_offset = rem;
  19.666 ++	}
  19.667 ++	return max;
  19.668 ++}
  19.669 ++#endif
  19.670 ++
  19.671 + static char * __init unpack_to_rootfs(char *buf, unsigned len, int check_only)
  19.672 + {
  19.673 + 	int written;
  19.674 +@@ -455,6 +490,9 @@
  19.675 + 	this_header = 0;
  19.676 + 	message = NULL;
  19.677 + 	while (!message && len) {
  19.678 ++#ifdef CONFIG_RD_LZMA
  19.679 ++		int status;
  19.680 ++#endif
  19.681 + 		loff_t saved_offset = this_header;
  19.682 + 		if (*buf == '0' && !(this_header & 3)) {
  19.683 + 			state = Start;
  19.684 +@@ -477,9 +515,42 @@
  19.685 + 		bytes_out = 0;
  19.686 + 		crc = (ulg)0xffffffffL; /* shift register contents */
  19.687 + 		makecrc();
  19.688 +-		gunzip();
  19.689 ++		if(!gunzip() && message == NULL)
  19.690 ++			goto ok;
  19.691 ++
  19.692 ++#ifdef CONFIG_RD_BZIP2
  19.693 ++		message = NULL; /* Zero out message, or else cpio will
  19.694 ++				   think an error has already occured */
  19.695 ++		if(!bunzip2(buf, len, NULL, flush_buffer, &inptr) < 0 &&
  19.696 ++		   message == NULL) {
  19.697 ++			goto ok;
  19.698 ++		}
  19.699 ++#endif
  19.700 ++
  19.701 ++#ifdef CONFIG_RD_LZMA
  19.702 ++		message = NULL; /* Zero out message, or else cpio will
  19.703 ++				   think an error has already occured */
  19.704 ++		status = -1;
  19.705 ++		if(buf == (char *) initrd_start) {
  19.706 ++			char *work_buffer = malloc(LZMA_IOBUF_SIZE);
  19.707 ++			if (work_buffer) {
  19.708 ++				fill_total = fill_offset = 0;
  19.709 ++				fill_buffer(work_buffer, LZMA_IOBUF_SIZE);
  19.710 ++				status = unlzma(work_buffer, LZMA_IOBUF_SIZE,
  19.711 ++					fill_buffer, flush_buffer, NULL);
  19.712 ++				inptr = fill_total;
  19.713 ++				free(work_buffer);
  19.714 ++			}
  19.715 ++		}
  19.716 ++		else status = unlzma(buf,len, NULL, flush_buffer, &inptr);
  19.717 ++		if (status == 0 && message == NULL) {
  19.718 ++			goto ok;
  19.719 ++		}
  19.720 ++#endif
  19.721 ++    ok:
  19.722 ++
  19.723 + 		if (state != Reset)
  19.724 +-			error("junk in gzipped archive");
  19.725 ++			error("junk in compressed archive");
  19.726 + 		this_header = saved_offset + inptr;
  19.727 + 		buf += inptr;
  19.728 + 		len -= inptr;
  19.729 +@@ -545,7 +616,7 @@
  19.730 + 	if (err)
  19.731 + 		panic(err);
  19.732 + 	if (initrd_start) {
  19.733 +-#ifdef CONFIG_BLK_DEV_RAM
  19.734 ++#ifdef NOT_IN_SLITAZ_CONFIG_BLK_DEV_RAM
  19.735 + 		int fd;
  19.736 + 		printk(KERN_INFO "checking if image is initramfs...");
  19.737 + 		err = unpack_to_rootfs((char *)initrd_start,
  19.738 +
  19.739 +--- linux-2.6.25.5/init/Kconfig
  19.740 ++++ linux-2.6.25.5/init/Kconfig
  19.741 +@@ -100,6 +100,56 @@
  19.742 + 
  19.743 + 	  which is done within the script "scripts/setlocalversion".)
  19.744 + 
  19.745 ++choice
  19.746 ++        prompt "Kernel compression mode"
  19.747 ++        default KERNEL_GZIP
  19.748 ++        help
  19.749 ++	  The linux kernel is a kind of self-extracting executable.
  19.750 ++	  Several compression algorithms are available, which differ
  19.751 ++	  in efficiency, compression and decompression speed.
  19.752 ++	  Compression speed is only relevant when building a kernel.
  19.753 ++	  Decompression speed is relevant at each boot.
  19.754 ++
  19.755 ++	  If you have any problems with bzip2 or lzma compressed
  19.756 ++	  kernels, mail me (Alain Knaff) <alain@knaff.lu>. (An older
  19.757 ++	  version of this functionality (bzip2 only), for 2.4, was
  19.758 ++	  supplied by Christian Ludwig)
  19.759 ++
  19.760 ++	  High compression options are mostly useful for users, who
  19.761 ++	  are low on disk space (embedded systems), but for whom ram
  19.762 ++	  size matters less.
  19.763 ++
  19.764 ++	  If in doubt, select 'gzip'
  19.765 ++
  19.766 ++config KERNEL_GZIP
  19.767 ++       bool "Gzip"
  19.768 ++       help
  19.769 ++         The old and tries gzip compression. Its compression ratio is
  19.770 ++	 the poorest among the 3 choices; however its speed (both
  19.771 ++	 compression and decompression) is the fastest.
  19.772 ++
  19.773 ++config KERNEL_BZIP2
  19.774 ++	bool "Bzip2"
  19.775 ++	help
  19.776 ++	  Its compression ratio and speed is intermediate.
  19.777 ++	  Decompression speed is slowest among the 3.
  19.778 ++	  The kernel size is about 10 per cent smaller with bzip2,
  19.779 ++	  in comparison to gzip.
  19.780 ++	  Bzip2 uses a large amount of memory. For modern kernels
  19.781 ++	  you will need at least 8MB RAM or more for booting.
  19.782 ++
  19.783 ++config KERNEL_LZMA
  19.784 ++       bool "LZMA"
  19.785 ++       help
  19.786 ++         The most recent compression algorithm.
  19.787 ++	 Its ratio is best, decompression speed is between the other
  19.788 ++	 2. Compression is slowest.
  19.789 ++	 The kernel size is about 33 per cent smaller with lzma,
  19.790 ++	 in comparison to gzip.
  19.791 ++
  19.792 ++endchoice
  19.793 ++
  19.794 ++
  19.795 + config SWAP
  19.796 + 	bool "Support for paging of anonymous memory (swap)"
  19.797 + 	depends on MMU && BLOCK
  19.798 +
  19.799 +--- linux-2.6.25.5/lib/decompress_bunzip2.c
  19.800 ++++ linux-2.6.25.5/lib/decompress_bunzip2.c
  19.801 +@@ -0,0 +1,645 @@
  19.802 ++/* vi: set sw=4 ts=4: */
  19.803 ++/*	Small bzip2 deflate implementation, by Rob Landley (rob@landley.net).
  19.804 ++
  19.805 ++	Based on bzip2 decompression code by Julian R Seward (jseward@acm.org),
  19.806 ++	which also acknowledges contributions by Mike Burrows, David Wheeler,
  19.807 ++	Peter Fenwick, Alistair Moffat, Radford Neal, Ian H. Witten,
  19.808 ++	Robert Sedgewick, and Jon L. Bentley.
  19.809 ++
  19.810 ++	This code is licensed under the LGPLv2:
  19.811 ++		LGPL (http://www.gnu.org/copyleft/lgpl.html
  19.812 ++*/
  19.813 ++
  19.814 ++/*
  19.815 ++	Size and speed optimizations by Manuel Novoa III  (mjn3@codepoet.org).
  19.816 ++
  19.817 ++	More efficient reading of Huffman codes, a streamlined read_bunzip()
  19.818 ++	function, and various other tweaks.  In (limited) tests, approximately
  19.819 ++	20% faster than bzcat on x86 and about 10% faster on arm.
  19.820 ++
  19.821 ++	Note that about 2/3 of the time is spent in read_unzip() reversing
  19.822 ++	the Burrows-Wheeler transformation.  Much of that time is delay
  19.823 ++	resulting from cache misses.
  19.824 ++
  19.825 ++	I would ask that anyone benefiting from this work, especially those
  19.826 ++	using it in commercial products, consider making a donation to my local
  19.827 ++	non-profit hospice organization in the name of the woman I loved, who
  19.828 ++	passed away Feb. 12, 2003.
  19.829 ++
  19.830 ++		In memory of Toni W. Hagan
  19.831 ++
  19.832 ++		Hospice of Acadiana, Inc.
  19.833 ++		2600 Johnston St., Suite 200
  19.834 ++		Lafayette, LA 70503-3240
  19.835 ++
  19.836 ++		Phone (337) 232-1234 or 1-800-738-2226
  19.837 ++		Fax   (337) 232-1297
  19.838 ++
  19.839 ++		http://www.hospiceacadiana.com/
  19.840 ++
  19.841 ++	Manuel
  19.842 ++ */
  19.843 ++
  19.844 ++/*
  19.845 ++	Made it fit for running in Linux Kernel by Alain Knaff (alain@knaff.lu)
  19.846 ++*/
  19.847 ++
  19.848 ++
  19.849 ++#ifndef STATIC
  19.850 ++
  19.851 ++#include <linux/kernel.h>
  19.852 ++#include <linux/fs.h>
  19.853 ++#include <linux/string.h>
  19.854 ++
  19.855 ++#ifdef TEST
  19.856 ++#include "test.h"
  19.857 ++#else
  19.858 ++#include <linux/vmalloc.h>
  19.859 ++#endif
  19.860 ++
  19.861 ++static void __init *large_malloc(size_t size)
  19.862 ++{
  19.863 ++	return vmalloc(size);
  19.864 ++}
  19.865 ++
  19.866 ++static void __init large_free(void *where)
  19.867 ++{
  19.868 ++	vfree(where);
  19.869 ++}
  19.870 ++
  19.871 ++#ifndef TEST
  19.872 ++static void __init *malloc(size_t size)
  19.873 ++{
  19.874 ++	return kmalloc(size, GFP_KERNEL);
  19.875 ++}
  19.876 ++
  19.877 ++static void __init free(void *where)
  19.878 ++{
  19.879 ++	kfree(where);
  19.880 ++}
  19.881 ++
  19.882 ++static void __init error(char *x)
  19.883 ++{
  19.884 ++	printk(KERN_ERR "%s\n", x);
  19.885 ++}
  19.886 ++#endif
  19.887 ++
  19.888 ++#define STATIC /**/
  19.889 ++
  19.890 ++#endif
  19.891 ++
  19.892 ++#include <linux/decompress_bunzip2.h>
  19.893 ++
  19.894 ++
  19.895 ++/* Constants for Huffman coding */
  19.896 ++#define MAX_GROUPS			6
  19.897 ++#define GROUP_SIZE   		50		/* 64 would have been more efficient */
  19.898 ++#define MAX_HUFCODE_BITS 	20		/* Longest Huffman code allowed */
  19.899 ++#define MAX_SYMBOLS 		258		/* 256 literals + RUNA + RUNB */
  19.900 ++#define SYMBOL_RUNA			0
  19.901 ++#define SYMBOL_RUNB			1
  19.902 ++
  19.903 ++/* Status return values */
  19.904 ++#define RETVAL_OK						0
  19.905 ++#define RETVAL_LAST_BLOCK				(-1)
  19.906 ++#define RETVAL_NOT_BZIP_DATA			(-2)
  19.907 ++#define RETVAL_UNEXPECTED_INPUT_EOF		(-3)
  19.908 ++#define RETVAL_UNEXPECTED_OUTPUT_EOF	(-4)
  19.909 ++#define RETVAL_DATA_ERROR				(-5)
  19.910 ++#define RETVAL_OUT_OF_MEMORY			(-6)
  19.911 ++#define RETVAL_OBSOLETE_INPUT			(-7)
  19.912 ++
  19.913 ++
  19.914 ++/* This is what we know about each Huffman coding group */
  19.915 ++struct group_data {
  19.916 ++	/* We have an extra slot at the end of limit[] for a sentinal value. */
  19.917 ++	int limit[MAX_HUFCODE_BITS+1],base[MAX_HUFCODE_BITS],permute[MAX_SYMBOLS];
  19.918 ++	int minLen, maxLen;
  19.919 ++};
  19.920 ++
  19.921 ++/* Structure holding all the housekeeping data, including IO buffers and
  19.922 ++   memory that persists between calls to bunzip */
  19.923 ++typedef struct {
  19.924 ++	/* State for interrupting output loop */
  19.925 ++	int writeCopies,writePos,writeRunCountdown,writeCount,writeCurrent;
  19.926 ++	/* I/O tracking data (file handles, buffers, positions, etc.) */
  19.927 ++	int (*fill)(void*,unsigned int);
  19.928 ++	int inbufCount,inbufPos /*,outbufPos*/;
  19.929 ++	unsigned char *inbuf /*,*outbuf*/;
  19.930 ++	unsigned int inbufBitCount, inbufBits;
  19.931 ++	/* The CRC values stored in the block header and calculated from the data */
  19.932 ++	unsigned int crc32Table[256],headerCRC, totalCRC, writeCRC;
  19.933 ++	/* Intermediate buffer and its size (in bytes) */
  19.934 ++	unsigned int *dbuf, dbufSize;
  19.935 ++	/* These things are a bit too big to go on the stack */
  19.936 ++	unsigned char selectors[32768];			/* nSelectors=15 bits */
  19.937 ++	struct group_data groups[MAX_GROUPS];	/* Huffman coding tables */
  19.938 ++	int io_error;			/* non-zero if we have IO error */
  19.939 ++} bunzip_data;
  19.940 ++	
  19.941 ++
  19.942 ++/* Return the next nnn bits of input.  All reads from the compressed input
  19.943 ++   are done through this function.  All reads are big endian */
  19.944 ++static unsigned int get_bits(bunzip_data *bd, char bits_wanted)
  19.945 ++{
  19.946 ++	unsigned int bits=0;
  19.947 ++
  19.948 ++	/* If we need to get more data from the byte buffer, do so.  (Loop getting
  19.949 ++	   one byte at a time to enforce endianness and avoid unaligned access.) */
  19.950 ++	while (bd->inbufBitCount<bits_wanted) {
  19.951 ++		/* If we need to read more data from file into byte buffer, do so */
  19.952 ++		if(bd->inbufPos==bd->inbufCount) {
  19.953 ++			if(bd->io_error)
  19.954 ++				return 0;
  19.955 ++			if((bd->inbufCount = bd->fill(bd->inbuf, BZIP2_IOBUF_SIZE)) <= 0) {
  19.956 ++				bd->io_error=RETVAL_UNEXPECTED_INPUT_EOF;
  19.957 ++				return 0;
  19.958 ++			}
  19.959 ++			bd->inbufPos=0;
  19.960 ++		}
  19.961 ++		/* Avoid 32-bit overflow (dump bit buffer to top of output) */
  19.962 ++		if(bd->inbufBitCount>=24) {
  19.963 ++			bits=bd->inbufBits&((1<<bd->inbufBitCount)-1);
  19.964 ++			bits_wanted-=bd->inbufBitCount;
  19.965 ++			bits<<=bits_wanted;
  19.966 ++			bd->inbufBitCount=0;
  19.967 ++		}
  19.968 ++		/* Grab next 8 bits of input from buffer. */
  19.969 ++		bd->inbufBits=(bd->inbufBits<<8)|bd->inbuf[bd->inbufPos++];
  19.970 ++		bd->inbufBitCount+=8;
  19.971 ++	}
  19.972 ++	/* Calculate result */
  19.973 ++	bd->inbufBitCount-=bits_wanted;
  19.974 ++	bits|=(bd->inbufBits>>bd->inbufBitCount)&((1<<bits_wanted)-1);
  19.975 ++
  19.976 ++	return bits;
  19.977 ++}
  19.978 ++
  19.979 ++/* Unpacks the next block and sets up for the inverse burrows-wheeler step. */
  19.980 ++
  19.981 ++static int get_next_block(bunzip_data *bd)
  19.982 ++{
  19.983 ++	struct group_data *hufGroup=NULL;
  19.984 ++	int *base=NULL;
  19.985 ++	int *limit=NULL;
  19.986 ++	int dbufCount,nextSym,dbufSize,groupCount,selector,
  19.987 ++		i,j,k,t,runPos,symCount,symTotal,nSelectors,byteCount[256];
  19.988 ++	unsigned char uc, symToByte[256], mtfSymbol[256], *selectors;
  19.989 ++	unsigned int *dbuf,origPtr;
  19.990 ++
  19.991 ++	dbuf=bd->dbuf;
  19.992 ++	dbufSize=bd->dbufSize;
  19.993 ++	selectors=bd->selectors;
  19.994 ++
  19.995 ++	/* Read in header signature and CRC, then validate signature.
  19.996 ++	   (last block signature means CRC is for whole file, return now) */
  19.997 ++	i = get_bits(bd,24);
  19.998 ++	j = get_bits(bd,24);
  19.999 ++	bd->headerCRC=get_bits(bd,32);
 19.1000 ++	if ((i == 0x177245) && (j == 0x385090)) return RETVAL_LAST_BLOCK;
 19.1001 ++	if ((i != 0x314159) || (j != 0x265359)) return RETVAL_NOT_BZIP_DATA;
 19.1002 ++	/* We can add support for blockRandomised if anybody complains.  There was
 19.1003 ++	   some code for this in busybox 1.0.0-pre3, but nobody ever noticed that
 19.1004 ++	   it didn't actually work. */
 19.1005 ++	if(get_bits(bd,1)) return RETVAL_OBSOLETE_INPUT;
 19.1006 ++	if((origPtr=get_bits(bd,24)) > dbufSize) return RETVAL_DATA_ERROR;
 19.1007 ++	/* mapping table: if some byte values are never used (encoding things
 19.1008 ++	   like ascii text), the compression code removes the gaps to have fewer
 19.1009 ++	   symbols to deal with, and writes a sparse bitfield indicating which
 19.1010 ++	   values were present.  We make a translation table to convert the symbols
 19.1011 ++	   back to the corresponding bytes. */
 19.1012 ++	t=get_bits(bd, 16);
 19.1013 ++	symTotal=0;
 19.1014 ++	for (i=0;i<16;i++) {
 19.1015 ++		if(t&(1<<(15-i))) {
 19.1016 ++			k=get_bits(bd,16);
 19.1017 ++			for(j=0;j<16;j++)
 19.1018 ++				if(k&(1<<(15-j))) symToByte[symTotal++]=(16*i)+j;
 19.1019 ++		}
 19.1020 ++	}
 19.1021 ++	/* How many different Huffman coding groups does this block use? */
 19.1022 ++	groupCount=get_bits(bd,3);
 19.1023 ++	if (groupCount<2 || groupCount>MAX_GROUPS) return RETVAL_DATA_ERROR;
 19.1024 ++	/* nSelectors: Every GROUP_SIZE many symbols we select a new Huffman coding
 19.1025 ++	   group.  Read in the group selector list, which is stored as MTF encoded
 19.1026 ++	   bit runs.  (MTF=Move To Front, as each value is used it's moved to the
 19.1027 ++	   start of the list.) */
 19.1028 ++	if(!(nSelectors=get_bits(bd, 15))) return RETVAL_DATA_ERROR;
 19.1029 ++	for(i=0; i<groupCount; i++) mtfSymbol[i] = i;
 19.1030 ++	for(i=0; i<nSelectors; i++) {
 19.1031 ++		/* Get next value */
 19.1032 ++		for(j=0;get_bits(bd,1);j++) if (j>=groupCount) return RETVAL_DATA_ERROR;
 19.1033 ++		/* Decode MTF to get the next selector */
 19.1034 ++		uc = mtfSymbol[j];
 19.1035 ++		for(;j;j--) mtfSymbol[j] = mtfSymbol[j-1];
 19.1036 ++		mtfSymbol[0]=selectors[i]=uc;
 19.1037 ++	}
 19.1038 ++	/* Read the Huffman coding tables for each group, which code for symTotal
 19.1039 ++	   literal symbols, plus two run symbols (RUNA, RUNB) */
 19.1040 ++	symCount=symTotal+2;
 19.1041 ++	for (j=0; j<groupCount; j++) {
 19.1042 ++		unsigned char length[MAX_SYMBOLS],temp[MAX_HUFCODE_BITS+1];
 19.1043 ++		int	minLen,	maxLen, pp;
 19.1044 ++		/* Read Huffman code lengths for each symbol.  They're stored in
 19.1045 ++		   a way similar to mtf; record a starting value for the first symbol,
 19.1046 ++		   and an offset from the previous value for everys symbol after that.
 19.1047 ++		   (Subtracting 1 before the loop and then adding it back at the end is
 19.1048 ++		   an optimization that makes the test inside the loop simpler: symbol
 19.1049 ++		   length 0 becomes negative, so an unsigned inequality catches it.) */
 19.1050 ++		t=get_bits(bd, 5)-1;
 19.1051 ++		for (i = 0; i < symCount; i++) {
 19.1052 ++			for(;;) {
 19.1053 ++				if (((unsigned)t) > (MAX_HUFCODE_BITS-1))
 19.1054 ++					return RETVAL_DATA_ERROR;
 19.1055 ++				/* If first bit is 0, stop.  Else second bit indicates whether
 19.1056 ++				   to increment or decrement the value.  Optimization: grab 2
 19.1057 ++				   bits and unget the second if the first was 0. */
 19.1058 ++				k = get_bits(bd,2);
 19.1059 ++				if (k < 2) {
 19.1060 ++					bd->inbufBitCount++;
 19.1061 ++					break;
 19.1062 ++				}
 19.1063 ++				/* Add one if second bit 1, else subtract 1.  Avoids if/else */
 19.1064 ++				t+=(((k+1)&2)-1);
 19.1065 ++			}
 19.1066 ++			/* Correct for the initial -1, to get the final symbol length */
 19.1067 ++			length[i]=t+1;
 19.1068 ++		}
 19.1069 ++		/* Find largest and smallest lengths in this group */
 19.1070 ++		minLen=maxLen=length[0];
 19.1071 ++		for(i = 1; i < symCount; i++) {
 19.1072 ++			if(length[i] > maxLen) maxLen = length[i];
 19.1073 ++			else if(length[i] < minLen) minLen = length[i];
 19.1074 ++		}
 19.1075 ++		/* Calculate permute[], base[], and limit[] tables from length[].
 19.1076 ++		 *
 19.1077 ++		 * permute[] is the lookup table for converting Huffman coded symbols
 19.1078 ++		 * into decoded symbols.  base[] is the amount to subtract from the
 19.1079 ++		 * value of a Huffman symbol of a given length when using permute[].
 19.1080 ++		 *
 19.1081 ++		 * limit[] indicates the largest numerical value a symbol with a given
 19.1082 ++		 * number of bits can have.  This is how the Huffman codes can vary in
 19.1083 ++		 * length: each code with a value>limit[length] needs another bit.
 19.1084 ++		 */
 19.1085 ++		hufGroup=bd->groups+j;
 19.1086 ++		hufGroup->minLen = minLen;
 19.1087 ++		hufGroup->maxLen = maxLen;
 19.1088 ++		/* Note that minLen can't be smaller than 1, so we adjust the base
 19.1089 ++		   and limit array pointers so we're not always wasting the first
 19.1090 ++		   entry.  We do this again when using them (during symbol decoding).*/
 19.1091 ++		base=hufGroup->base-1;
 19.1092 ++		limit=hufGroup->limit-1;
 19.1093 ++		/* Calculate permute[].  Concurently, initialize temp[] and limit[]. */
 19.1094 ++		pp=0;
 19.1095 ++		for(i=minLen;i<=maxLen;i++) {
 19.1096 ++			temp[i]=limit[i]=0;
 19.1097 ++			for(t=0;t<symCount;t++)
 19.1098 ++				if(length[t]==i) hufGroup->permute[pp++] = t;
 19.1099 ++		}
 19.1100 ++		/* Count symbols coded for at each bit length */
 19.1101 ++		for (i=0;i<symCount;i++) temp[length[i]]++;
 19.1102 ++		/* Calculate limit[] (the largest symbol-coding value at each bit
 19.1103 ++		 * length, which is (previous limit<<1)+symbols at this level), and
 19.1104 ++		 * base[] (number of symbols to ignore at each bit length, which is
 19.1105 ++		 * limit minus the cumulative count of symbols coded for already). */
 19.1106 ++		pp=t=0;
 19.1107 ++		for (i=minLen; i<maxLen; i++) {
 19.1108 ++			pp+=temp[i];
 19.1109 ++			/* We read the largest possible symbol size and then unget bits
 19.1110 ++			   after determining how many we need, and those extra bits could
 19.1111 ++			   be set to anything.  (They're noise from future symbols.)  At
 19.1112 ++			   each level we're really only interested in the first few bits,
 19.1113 ++			   so here we set all the trailing to-be-ignored bits to 1 so they
 19.1114 ++			   don't affect the value>limit[length] comparison. */
 19.1115 ++			limit[i]= (pp << (maxLen - i)) - 1;
 19.1116 ++			pp<<=1;
 19.1117 ++			base[i+1]=pp-(t+=temp[i]);
 19.1118 ++		}
 19.1119 ++		limit[maxLen+1] = INT_MAX; /* Sentinal value for reading next sym. */
 19.1120 ++		limit[maxLen]=pp+temp[maxLen]-1;
 19.1121 ++		base[minLen]=0;
 19.1122 ++	}
 19.1123 ++	/* We've finished reading and digesting the block header.  Now read this
 19.1124 ++	   block's Huffman coded symbols from the file and undo the Huffman coding
 19.1125 ++	   and run length encoding, saving the result into dbuf[dbufCount++]=uc */
 19.1126 ++
 19.1127 ++	/* Initialize symbol occurrence counters and symbol Move To Front table */
 19.1128 ++	for(i=0;i<256;i++) {
 19.1129 ++		byteCount[i] = 0;
 19.1130 ++		mtfSymbol[i]=(unsigned char)i;
 19.1131 ++	}
 19.1132 ++	/* Loop through compressed symbols. */
 19.1133 ++	runPos=dbufCount=symCount=selector=0;
 19.1134 ++	for(;;) {
 19.1135 ++		/* Determine which Huffman coding group to use. */
 19.1136 ++		if(!(symCount--)) {
 19.1137 ++			symCount=GROUP_SIZE-1;
 19.1138 ++			if(selector>=nSelectors) return RETVAL_DATA_ERROR;
 19.1139 ++			hufGroup=bd->groups+selectors[selector++];
 19.1140 ++			base=hufGroup->base-1;
 19.1141 ++			limit=hufGroup->limit-1;
 19.1142 ++		}
 19.1143 ++		/* Read next Huffman-coded symbol. */
 19.1144 ++		/* Note: It is far cheaper to read maxLen bits and back up than it is
 19.1145 ++		   to read minLen bits and then an additional bit at a time, testing
 19.1146 ++		   as we go.  Because there is a trailing last block (with file CRC),
 19.1147 ++		   there is no danger of the overread causing an unexpected EOF for a
 19.1148 ++		   valid compressed file.  As a further optimization, we do the read
 19.1149 ++		   inline (falling back to a call to get_bits if the buffer runs
 19.1150 ++		   dry).  The following (up to got_huff_bits:) is equivalent to
 19.1151 ++		   j=get_bits(bd,hufGroup->maxLen);
 19.1152 ++		 */
 19.1153 ++		while (bd->inbufBitCount<hufGroup->maxLen) {
 19.1154 ++			if(bd->inbufPos==bd->inbufCount) {
 19.1155 ++				j = get_bits(bd,hufGroup->maxLen);
 19.1156 ++				goto got_huff_bits;
 19.1157 ++			}
 19.1158 ++			bd->inbufBits=(bd->inbufBits<<8)|bd->inbuf[bd->inbufPos++];
 19.1159 ++			bd->inbufBitCount+=8;
 19.1160 ++		};
 19.1161 ++		bd->inbufBitCount-=hufGroup->maxLen;
 19.1162 ++		j = (bd->inbufBits>>bd->inbufBitCount)&((1<<hufGroup->maxLen)-1);
 19.1163 ++got_huff_bits:
 19.1164 ++		/* Figure how how many bits are in next symbol and unget extras */
 19.1165 ++		i=hufGroup->minLen;
 19.1166 ++		while(j>limit[i]) ++i;
 19.1167 ++		bd->inbufBitCount += (hufGroup->maxLen - i);
 19.1168 ++		/* Huffman decode value to get nextSym (with bounds checking) */
 19.1169 ++		if ((i > hufGroup->maxLen)
 19.1170 ++			|| (((unsigned)(j=(j>>(hufGroup->maxLen-i))-base[i]))
 19.1171 ++				>= MAX_SYMBOLS))
 19.1172 ++			return RETVAL_DATA_ERROR;
 19.1173 ++		nextSym = hufGroup->permute[j];
 19.1174 ++		/* We have now decoded the symbol, which indicates either a new literal
 19.1175 ++		   byte, or a repeated run of the most recent literal byte.  First,
 19.1176 ++		   check if nextSym indicates a repeated run, and if so loop collecting
 19.1177 ++		   how many times to repeat the last literal. */
 19.1178 ++		if (((unsigned)nextSym) <= SYMBOL_RUNB) { /* RUNA or RUNB */
 19.1179 ++			/* If this is the start of a new run, zero out counter */
 19.1180 ++			if(!runPos) {
 19.1181 ++				runPos = 1;
 19.1182 ++				t = 0;
 19.1183 ++			}
 19.1184 ++			/* Neat trick that saves 1 symbol: instead of or-ing 0 or 1 at
 19.1185 ++			   each bit position, add 1 or 2 instead.  For example,
 19.1186 ++			   1011 is 1<<0 + 1<<1 + 2<<2.  1010 is 2<<0 + 2<<1 + 1<<2.
 19.1187 ++			   You can make any bit pattern that way using 1 less symbol than
 19.1188 ++			   the basic or 0/1 method (except all bits 0, which would use no
 19.1189 ++			   symbols, but a run of length 0 doesn't mean anything in this
 19.1190 ++			   context).  Thus space is saved. */
 19.1191 ++			t += (runPos << nextSym); /* +runPos if RUNA; +2*runPos if RUNB */
 19.1192 ++			runPos <<= 1;
 19.1193 ++			continue;
 19.1194 ++		}
 19.1195 ++		/* When we hit the first non-run symbol after a run, we now know
 19.1196 ++		   how many times to repeat the last literal, so append that many
 19.1197 ++		   copies to our buffer of decoded symbols (dbuf) now.  (The last
 19.1198 ++		   literal used is the one at the head of the mtfSymbol array.) */
 19.1199 ++		if(runPos) {
 19.1200 ++			runPos=0;
 19.1201 ++			if(dbufCount+t>=dbufSize) return RETVAL_DATA_ERROR;
 19.1202 ++
 19.1203 ++			uc = symToByte[mtfSymbol[0]];
 19.1204 ++			byteCount[uc] += t;
 19.1205 ++			while(t--) dbuf[dbufCount++]=uc;
 19.1206 ++		}
 19.1207 ++		/* Is this the terminating symbol? */
 19.1208 ++		if(nextSym>symTotal) break;
 19.1209 ++		/* At this point, nextSym indicates a new literal character.  Subtract
 19.1210 ++		   one to get the position in the MTF array at which this literal is
 19.1211 ++		   currently to be found.  (Note that the result can't be -1 or 0,
 19.1212 ++		   because 0 and 1 are RUNA and RUNB.  But another instance of the
 19.1213 ++		   first symbol in the mtf array, position 0, would have been handled
 19.1214 ++		   as part of a run above.  Therefore 1 unused mtf position minus
 19.1215 ++		   2 non-literal nextSym values equals -1.) */
 19.1216 ++		if(dbufCount>=dbufSize) return RETVAL_DATA_ERROR;
 19.1217 ++		i = nextSym - 1;
 19.1218 ++		uc = mtfSymbol[i];
 19.1219 ++		/* Adjust the MTF array.  Since we typically expect to move only a
 19.1220 ++		 * small number of symbols, and are bound by 256 in any case, using
 19.1221 ++		 * memmove here would typically be bigger and slower due to function
 19.1222 ++		 * call overhead and other assorted setup costs. */
 19.1223 ++		do {
 19.1224 ++			mtfSymbol[i] = mtfSymbol[i-1];
 19.1225 ++		} while (--i);
 19.1226 ++		mtfSymbol[0] = uc;
 19.1227 ++		uc=symToByte[uc];
 19.1228 ++		/* We have our literal byte.  Save it into dbuf. */
 19.1229 ++		byteCount[uc]++;
 19.1230 ++		dbuf[dbufCount++] = (unsigned int)uc;
 19.1231 ++	}
 19.1232 ++	/* At this point, we've read all the Huffman-coded symbols (and repeated
 19.1233 ++       runs) for this block from the input stream, and decoded them into the
 19.1234 ++	   intermediate buffer.  There are dbufCount many decoded bytes in dbuf[].
 19.1235 ++	   Now undo the Burrows-Wheeler transform on dbuf.
 19.1236 ++	   See http://dogma.net/markn/articles/bwt/bwt.htm
 19.1237 ++	 */
 19.1238 ++	/* Turn byteCount into cumulative occurrence counts of 0 to n-1. */
 19.1239 ++	j=0;
 19.1240 ++	for(i=0;i<256;i++) {
 19.1241 ++		k=j+byteCount[i];
 19.1242 ++		byteCount[i] = j;
 19.1243 ++		j=k;
 19.1244 ++	}
 19.1245 ++	/* Figure out what order dbuf would be in if we sorted it. */
 19.1246 ++	for (i=0;i<dbufCount;i++) {
 19.1247 ++		uc=(unsigned char)(dbuf[i] & 0xff);
 19.1248 ++		dbuf[byteCount[uc]] |= (i << 8);
 19.1249 ++		byteCount[uc]++;
 19.1250 ++	}
 19.1251 ++	/* Decode first byte by hand to initialize "previous" byte.  Note that it
 19.1252 ++	   doesn't get output, and if the first three characters are identical
 19.1253 ++	   it doesn't qualify as a run (hence writeRunCountdown=5). */
 19.1254 ++	if(dbufCount) {
 19.1255 ++		if(origPtr>=dbufCount) return RETVAL_DATA_ERROR;
 19.1256 ++		bd->writePos=dbuf[origPtr];
 19.1257 ++	    bd->writeCurrent=(unsigned char)(bd->writePos&0xff);
 19.1258 ++		bd->writePos>>=8;
 19.1259 ++		bd->writeRunCountdown=5;
 19.1260 ++	}
 19.1261 ++	bd->writeCount=dbufCount;
 19.1262 ++
 19.1263 ++	return RETVAL_OK;
 19.1264 ++}
 19.1265 ++
 19.1266 ++/* Undo burrows-wheeler transform on intermediate buffer to produce output.
 19.1267 ++   If start_bunzip was initialized with out_fd=-1, then up to len bytes of
 19.1268 ++   data are written to outbuf.  Return value is number of bytes written or
 19.1269 ++   error (all errors are negative numbers).  If out_fd!=-1, outbuf and len
 19.1270 ++   are ignored, data is written to out_fd and return is RETVAL_OK or error.
 19.1271 ++*/
 19.1272 ++
 19.1273 ++static int read_bunzip(bunzip_data *bd, char *outbuf, int len)
 19.1274 ++{
 19.1275 ++	const unsigned int *dbuf;
 19.1276 ++	int pos,xcurrent,previous,gotcount;
 19.1277 ++
 19.1278 ++	/* If last read was short due to end of file, return last block now */
 19.1279 ++	if(bd->writeCount<0) return bd->writeCount;
 19.1280 ++
 19.1281 ++	gotcount = 0;
 19.1282 ++	dbuf=bd->dbuf;
 19.1283 ++	pos=bd->writePos;
 19.1284 ++	xcurrent=bd->writeCurrent;
 19.1285 ++
 19.1286 ++	/* We will always have pending decoded data to write into the output
 19.1287 ++	   buffer unless this is the very first call (in which case we haven't
 19.1288 ++	   Huffman-decoded a block into the intermediate buffer yet). */
 19.1289 ++
 19.1290 ++	if (bd->writeCopies) {
 19.1291 ++		/* Inside the loop, writeCopies means extra copies (beyond 1) */
 19.1292 ++		--bd->writeCopies;
 19.1293 ++		/* Loop outputting bytes */
 19.1294 ++		for(;;) {
 19.1295 ++			/* If the output buffer is full, snapshot state and return */
 19.1296 ++			if(gotcount >= len) {
 19.1297 ++				bd->writePos=pos;
 19.1298 ++				bd->writeCurrent=xcurrent;
 19.1299 ++				bd->writeCopies++;
 19.1300 ++				return len;
 19.1301 ++			}
 19.1302 ++			/* Write next byte into output buffer, updating CRC */
 19.1303 ++			outbuf[gotcount++] = xcurrent;
 19.1304 ++			bd->writeCRC=(((bd->writeCRC)<<8)
 19.1305 ++						  ^bd->crc32Table[((bd->writeCRC)>>24)^xcurrent]);
 19.1306 ++			/* Loop now if we're outputting multiple copies of this byte */
 19.1307 ++			if (bd->writeCopies) {
 19.1308 ++				--bd->writeCopies;
 19.1309 ++				continue;
 19.1310 ++			}
 19.1311 ++decode_next_byte:
 19.1312 ++			if (!bd->writeCount--) break;
 19.1313 ++			/* Follow sequence vector to undo Burrows-Wheeler transform */
 19.1314 ++			previous=xcurrent;
 19.1315 ++			pos=dbuf[pos];
 19.1316 ++			xcurrent=pos&0xff;
 19.1317 ++			pos>>=8;
 19.1318 ++			/* After 3 consecutive copies of the same byte, the 4th is a repeat
 19.1319 ++			   count.  We count down from 4 instead
 19.1320 ++			 * of counting up because testing for non-zero is faster */
 19.1321 ++			if(--bd->writeRunCountdown) {
 19.1322 ++				if(xcurrent!=previous) bd->writeRunCountdown=4;
 19.1323 ++			} else {
 19.1324 ++				/* We have a repeated run, this byte indicates the count */
 19.1325 ++				bd->writeCopies=xcurrent;
 19.1326 ++				xcurrent=previous;
 19.1327 ++				bd->writeRunCountdown=5;
 19.1328 ++				/* Sometimes there are just 3 bytes (run length 0) */
 19.1329 ++				if(!bd->writeCopies) goto decode_next_byte;
 19.1330 ++				/* Subtract the 1 copy we'd output anyway to get extras */
 19.1331 ++				--bd->writeCopies;
 19.1332 ++			}
 19.1333 ++		}
 19.1334 ++		/* Decompression of this block completed successfully */
 19.1335 ++		bd->writeCRC=~bd->writeCRC;
 19.1336 ++		bd->totalCRC=((bd->totalCRC<<1) | (bd->totalCRC>>31)) ^ bd->writeCRC;
 19.1337 ++		/* If this block had a CRC error, force file level CRC error. */
 19.1338 ++		if(bd->writeCRC!=bd->headerCRC) {
 19.1339 ++			bd->totalCRC=bd->headerCRC+1;
 19.1340 ++			return RETVAL_LAST_BLOCK;
 19.1341 ++		}
 19.1342 ++	}
 19.1343 ++
 19.1344 ++	/* Refill the intermediate buffer by Huffman-decoding next block of input */
 19.1345 ++	/* (previous is just a convenient unused temp variable here) */
 19.1346 ++	previous=get_next_block(bd);
 19.1347 ++	if(previous) {
 19.1348 ++		bd->writeCount=previous;
 19.1349 ++		return (previous!=RETVAL_LAST_BLOCK) ? previous : gotcount;
 19.1350 ++	}
 19.1351 ++	bd->writeCRC=0xffffffffUL;
 19.1352 ++	pos=bd->writePos;
 19.1353 ++	xcurrent=bd->writeCurrent;
 19.1354 ++	goto decode_next_byte;
 19.1355 ++}
 19.1356 ++
 19.1357 ++static int nofill(void *buf,unsigned int len) {
 19.1358 ++	return -1;
 19.1359 ++}
 19.1360 ++
 19.1361 ++/* Allocate the structure, read file header.  If in_fd==-1, inbuf must contain
 19.1362 ++   a complete bunzip file (len bytes long).  If in_fd!=-1, inbuf and len are
 19.1363 ++   ignored, and data is read from file handle into temporary buffer. */
 19.1364 ++static int start_bunzip(bunzip_data **bdp, void *inbuf, int len,
 19.1365 ++			int (*fill)(void*,unsigned int))
 19.1366 ++{
 19.1367 ++	bunzip_data *bd;
 19.1368 ++	unsigned int i,j,c;
 19.1369 ++	const unsigned int BZh0=(((unsigned int)'B')<<24)+(((unsigned int)'Z')<<16)
 19.1370 ++							+(((unsigned int)'h')<<8)+(unsigned int)'0';
 19.1371 ++
 19.1372 ++	/* Figure out how much data to allocate */
 19.1373 ++	i=sizeof(bunzip_data);
 19.1374 ++
 19.1375 ++	/* Allocate bunzip_data.  Most fields initialize to zero. */
 19.1376 ++	bd=*bdp=malloc(i);
 19.1377 ++	memset(bd,0,sizeof(bunzip_data));
 19.1378 ++	/* Setup input buffer */
 19.1379 ++	bd->inbuf=inbuf;
 19.1380 ++	bd->inbufCount=len;
 19.1381 ++	if(fill != NULL)
 19.1382 ++		bd->fill=fill;
 19.1383 ++	else
 19.1384 ++		bd->fill=nofill;
 19.1385 ++
 19.1386 ++	/* Init the CRC32 table (big endian) */
 19.1387 ++	for(i=0;i<256;i++) {
 19.1388 ++		c=i<<24;
 19.1389 ++		for(j=8;j;j--)
 19.1390 ++			c=c&0x80000000 ? (c<<1)^0x04c11db7 : (c<<1);
 19.1391 ++		bd->crc32Table[i]=c;
 19.1392 ++	}
 19.1393 ++
 19.1394 ++	/* Ensure that file starts with "BZh['1'-'9']." */
 19.1395 ++	i = get_bits(bd,32);
 19.1396 ++	if (((unsigned int)(i-BZh0-1)) >= 9) return RETVAL_NOT_BZIP_DATA;
 19.1397 ++
 19.1398 ++	/* Fourth byte (ascii '1'-'9'), indicates block size in units of 100k of
 19.1399 ++	   uncompressed data.  Allocate intermediate buffer for block. */
 19.1400 ++	bd->dbufSize=100000*(i-BZh0);
 19.1401 ++
 19.1402 ++	bd->dbuf=large_malloc(bd->dbufSize * sizeof(int));
 19.1403 ++	return RETVAL_OK;
 19.1404 ++}
 19.1405 ++
 19.1406 ++/* Example usage: decompress src_fd to dst_fd.  (Stops at end of bzip data,
 19.1407 ++   not end of file.) */
 19.1408 ++STATIC int bunzip2(char *inbuf, int len, 
 19.1409 ++		   int(*fill)(void*,unsigned int),
 19.1410 ++		   int(*writebb)(char*,unsigned int),
 19.1411 ++		   int *pos)
 19.1412 ++{
 19.1413 ++	char *outbuf;
 19.1414 ++	bunzip_data *bd;
 19.1415 ++	int i;
 19.1416 ++
 19.1417 ++	outbuf=malloc(BZIP2_IOBUF_SIZE);
 19.1418 ++	if(!(i=start_bunzip(&bd,inbuf,len,fill))) {
 19.1419 ++		for(;;) {
 19.1420 ++			if((i=read_bunzip(bd,outbuf,BZIP2_IOBUF_SIZE)) <= 0) break;
 19.1421 ++			if(i!=writebb(outbuf,i)) {
 19.1422 ++				i=RETVAL_UNEXPECTED_OUTPUT_EOF;
 19.1423 ++				break;
 19.1424 ++			}
 19.1425 ++		}
 19.1426 ++	}
 19.1427 ++	/* Check CRC and release memory */
 19.1428 ++	if(i==RETVAL_LAST_BLOCK) {
 19.1429 ++		if (bd->headerCRC!=bd->totalCRC) {
 19.1430 ++			error("Data integrity error when decompressing.");
 19.1431 ++		} else {
 19.1432 ++			i=RETVAL_OK;
 19.1433 ++		}
 19.1434 ++	}
 19.1435 ++	else if (i==RETVAL_UNEXPECTED_OUTPUT_EOF) {
 19.1436 ++		error("Compressed file ends unexpectedly");
 19.1437 ++	}
 19.1438 ++	if(bd->dbuf) large_free(bd->dbuf);
 19.1439 ++	if(pos)
 19.1440 ++		*pos = bd->inbufPos;
 19.1441 ++	free(bd);
 19.1442 ++	free(outbuf);
 19.1443 ++
 19.1444 ++	return i;
 19.1445 ++}
 19.1446 ++
 19.1447 +
 19.1448 +--- linux-2.6.25.5/lib/decompress_unlzma.c
 19.1449 ++++ linux-2.6.25.5/lib/decompress_unlzma.c
 19.1450 +@@ -0,0 +1,607 @@
 19.1451 ++/* Lzma decompressor for Linux kernel. Shamelessly snarfed
 19.1452 ++ * from busybox 1.1.1
 19.1453 ++ *
 19.1454 ++ * Linux kernel adaptation
 19.1455 ++ * Copyright (C) 2006  Alain <alain@knaff.lu>
 19.1456 ++ *
 19.1457 ++ * Based on small lzma deflate implementation/Small range coder 
 19.1458 ++ * implementation for lzma.
 19.1459 ++ * Copyright (C) 2006  Aurelien Jacobs <aurel@gnuage.org>
 19.1460 ++ *
 19.1461 ++ * Based on LzmaDecode.c from the LZMA SDK 4.22 (http://www.7-zip.org/)
 19.1462 ++ * Copyright (C) 1999-2005  Igor Pavlov
 19.1463 ++ *
 19.1464 ++ * Copyrights of the parts, see headers below.
 19.1465 ++ *
 19.1466 ++ *
 19.1467 ++ * This program is free software; you can redistribute it and/or
 19.1468 ++ * modify it under the terms of the GNU Lesser General Public
 19.1469 ++ * License as published by the Free Software Foundation; either
 19.1470 ++ * version 2.1 of the License, or (at your option) any later version.
 19.1471 ++ *
 19.1472 ++ * This program is distributed in the hope that it will be useful,
 19.1473 ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 19.1474 ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 19.1475 ++ * Lesser General Public License for more details.
 19.1476 ++ *
 19.1477 ++ * You should have received a copy of the GNU Lesser General Public
 19.1478 ++ * License along with this library; if not, write to the Free Software
 19.1479 ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 19.1480 ++ */
 19.1481 ++
 19.1482 ++#ifndef STATIC
 19.1483 ++
 19.1484 ++#include <linux/kernel.h>
 19.1485 ++#include <linux/fs.h>
 19.1486 ++#include <linux/string.h>
 19.1487 ++
 19.1488 ++#ifdef TEST
 19.1489 ++#include "test.h"
 19.1490 ++#else
 19.1491 ++#include <linux/vmalloc.h>
 19.1492 ++#endif
 19.1493 ++
 19.1494 ++static void __init *large_malloc(size_t size)
 19.1495 ++{
 19.1496 ++	return vmalloc(size);
 19.1497 ++}
 19.1498 ++
 19.1499 ++static void __init large_free(void *where)
 19.1500 ++{
 19.1501 ++	vfree(where);
 19.1502 ++}
 19.1503 ++
 19.1504 ++#ifndef TEST
 19.1505 ++static void __init error(char *x)
 19.1506 ++{
 19.1507 ++	printk(KERN_ERR "%s\n", x);
 19.1508 ++}
 19.1509 ++
 19.1510 ++#endif
 19.1511 ++
 19.1512 ++#define STATIC /**/
 19.1513 ++
 19.1514 ++#endif
 19.1515 ++
 19.1516 ++#define CONFIG_FEATURE_LZMA_FAST
 19.1517 ++#include <linux/decompress_unlzma.h>
 19.1518 ++
 19.1519 ++#define	MIN(a,b) (((a)<(b))?(a):(b))
 19.1520 ++
 19.1521 ++static long long read_int(unsigned char *ptr, int size)
 19.1522 ++{
 19.1523 ++	int i;
 19.1524 ++	long long ret=0;
 19.1525 ++
 19.1526 ++	for(i=0; i<size; i++) {
 19.1527 ++		ret = (ret << 8) | ptr[size-i-1];
 19.1528 ++	}
 19.1529 ++	return ret;
 19.1530 ++}
 19.1531 ++
 19.1532 ++#define ENDIAN_CONVERT(x) x=(typeof(x))read_int((unsigned char*)&x,sizeof(x))
 19.1533 ++
 19.1534 ++
 19.1535 ++/* Small range coder implementation for lzma.
 19.1536 ++ * Copyright (C) 2006  Aurelien Jacobs <aurel@gnuage.org>
 19.1537 ++ *
 19.1538 ++ * Based on LzmaDecode.c from the LZMA SDK 4.22 (http://www.7-zip.org/)
 19.1539 ++ * Copyright (c) 1999-2005  Igor Pavlov
 19.1540 ++ */
 19.1541 ++
 19.1542 ++#ifndef always_inline
 19.1543 ++#  if defined(__GNUC__) && (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >0)
 19.1544 ++#    define always_inline __attribute__((always_inline)) inline
 19.1545 ++#  else
 19.1546 ++#    define always_inline inline
 19.1547 ++#  endif
 19.1548 ++#endif
 19.1549 ++
 19.1550 ++#ifdef CONFIG_FEATURE_LZMA_FAST
 19.1551 ++#  define speed_inline always_inline
 19.1552 ++#else
 19.1553 ++#  define speed_inline
 19.1554 ++#endif
 19.1555 ++
 19.1556 ++
 19.1557 ++typedef struct {
 19.1558 ++	int (*fill)(void*,unsigned int);
 19.1559 ++	uint8_t *ptr;
 19.1560 ++	uint8_t *buffer;
 19.1561 ++	uint8_t *buffer_end;
 19.1562 ++	int buffer_size;
 19.1563 ++	uint32_t code;
 19.1564 ++	uint32_t range;
 19.1565 ++	uint32_t bound;
 19.1566 ++} rc_t;
 19.1567 ++
 19.1568 ++
 19.1569 ++#define RC_TOP_BITS 24
 19.1570 ++#define RC_MOVE_BITS 5
 19.1571 ++#define RC_MODEL_TOTAL_BITS 11
 19.1572 ++
 19.1573 ++
 19.1574 ++/* Called twice: once at startup and once in rc_normalize() */
 19.1575 ++static void rc_read(rc_t * rc)
 19.1576 ++{
 19.1577 ++	rc->buffer_size = rc->fill((char*)rc->buffer, LZMA_IOBUF_SIZE);
 19.1578 ++	if (rc->buffer_size <= 0)
 19.1579 ++		error("unexpected EOF");
 19.1580 ++	rc->ptr = rc->buffer;
 19.1581 ++	rc->buffer_end = rc->buffer + rc->buffer_size;
 19.1582 ++}
 19.1583 ++
 19.1584 ++/* Called once */
 19.1585 ++static always_inline void rc_init(rc_t * rc, int (*fill)(void*,unsigned int),
 19.1586 ++				  char *buffer, int buffer_size)
 19.1587 ++{
 19.1588 ++	rc->fill = fill;
 19.1589 ++	rc->buffer = (uint8_t *)buffer;
 19.1590 ++	rc->buffer_size = buffer_size;
 19.1591 ++	rc->buffer_end = rc->buffer + rc->buffer_size;
 19.1592 ++	rc->ptr = rc->buffer;
 19.1593 ++
 19.1594 ++	rc->code = 0;
 19.1595 ++	rc->range = 0xFFFFFFFF;
 19.1596 ++}
 19.1597 ++
 19.1598 ++static always_inline void rc_init_code(rc_t * rc)
 19.1599 ++{
 19.1600 ++	int i;
 19.1601 ++
 19.1602 ++	for (i = 0; i < 5; i++) {
 19.1603 ++		if (rc->ptr >= rc->buffer_end)
 19.1604 ++			rc_read(rc);
 19.1605 ++		rc->code = (rc->code << 8) | *rc->ptr++;
 19.1606 ++	}
 19.1607 ++}
 19.1608 ++
 19.1609 ++/* Called twice, but one callsite is in speed_inline'd rc_is_bit_0_helper() */
 19.1610 ++static void rc_do_normalize(rc_t * rc)
 19.1611 ++{
 19.1612 ++	if (rc->ptr >= rc->buffer_end)
 19.1613 ++		rc_read(rc);
 19.1614 ++	rc->range <<= 8;
 19.1615 ++	rc->code = (rc->code << 8) | *rc->ptr++;
 19.1616 ++}
 19.1617 ++static always_inline void rc_normalize(rc_t * rc)
 19.1618 ++{
 19.1619 ++	if (rc->range < (1 << RC_TOP_BITS)) {
 19.1620 ++		rc_do_normalize(rc);
 19.1621 ++	}
 19.1622 ++}
 19.1623 ++
 19.1624 ++/* Called 9 times */
 19.1625 ++/* Why rc_is_bit_0_helper exists?
 19.1626 ++ * Because we want to always expose (rc->code < rc->bound) to optimizer
 19.1627 ++ */
 19.1628 ++static speed_inline uint32_t rc_is_bit_0_helper(rc_t * rc, uint16_t * p)
 19.1629 ++{
 19.1630 ++	rc_normalize(rc);
 19.1631 ++	rc->bound = *p * (rc->range >> RC_MODEL_TOTAL_BITS);
 19.1632 ++	return rc->bound;
 19.1633 ++}
 19.1634 ++static always_inline int rc_is_bit_0(rc_t * rc, uint16_t * p)
 19.1635 ++{
 19.1636 ++	uint32_t t = rc_is_bit_0_helper(rc, p);
 19.1637 ++	return rc->code < t;
 19.1638 ++}
 19.1639 ++
 19.1640 ++/* Called ~10 times, but very small, thus inlined */
 19.1641 ++static speed_inline void rc_update_bit_0(rc_t * rc, uint16_t * p)
 19.1642 ++{
 19.1643 ++	rc->range = rc->bound;
 19.1644 ++	*p += ((1 << RC_MODEL_TOTAL_BITS) - *p) >> RC_MOVE_BITS;
 19.1645 ++}
 19.1646 ++static speed_inline void rc_update_bit_1(rc_t * rc, uint16_t * p)
 19.1647 ++{
 19.1648 ++	rc->range -= rc->bound;
 19.1649 ++	rc->code -= rc->bound;
 19.1650 ++	*p -= *p >> RC_MOVE_BITS;
 19.1651 ++}
 19.1652 ++
 19.1653 ++/* Called 4 times in unlzma loop */
 19.1654 ++static int rc_get_bit(rc_t * rc, uint16_t * p, int *symbol)
 19.1655 ++{
 19.1656 ++	if (rc_is_bit_0(rc, p)) {
 19.1657 ++		rc_update_bit_0(rc, p);
 19.1658 ++		*symbol *= 2;
 19.1659 ++		return 0;
 19.1660 ++	} else {
 19.1661 ++		rc_update_bit_1(rc, p);
 19.1662 ++		*symbol = *symbol * 2 + 1;
 19.1663 ++		return 1;
 19.1664 ++	}
 19.1665 ++}
 19.1666 ++
 19.1667 ++/* Called once */
 19.1668 ++static always_inline int rc_direct_bit(rc_t * rc)
 19.1669 ++{
 19.1670 ++	rc_normalize(rc);
 19.1671 ++	rc->range >>= 1;
 19.1672 ++	if (rc->code >= rc->range) {
 19.1673 ++		rc->code -= rc->range;
 19.1674 ++		return 1;
 19.1675 ++	}
 19.1676 ++	return 0;
 19.1677 ++}
 19.1678 ++
 19.1679 ++/* Called twice */
 19.1680 ++static speed_inline void
 19.1681 ++rc_bit_tree_decode(rc_t * rc, uint16_t * p, int num_levels, int *symbol)
 19.1682 ++{
 19.1683 ++	int i = num_levels;
 19.1684 ++
 19.1685 ++	*symbol = 1;
 19.1686 ++	while (i--)
 19.1687 ++		rc_get_bit(rc, p + *symbol, symbol);
 19.1688 ++	*symbol -= 1 << num_levels;
 19.1689 ++}
 19.1690 ++
 19.1691 ++
 19.1692 ++/*
 19.1693 ++ * Small lzma deflate implementation.
 19.1694 ++ * Copyright (C) 2006  Aurelien Jacobs <aurel@gnuage.org>
 19.1695 ++ *
 19.1696 ++ * Based on LzmaDecode.c from the LZMA SDK 4.22 (http://www.7-zip.org/)
 19.1697 ++ * Copyright (C) 1999-2005  Igor Pavlov
 19.1698 ++ */
 19.1699 ++
 19.1700 ++
 19.1701 ++typedef struct {
 19.1702 ++	uint8_t pos;
 19.1703 ++	uint32_t dict_size;
 19.1704 ++	uint64_t dst_size;
 19.1705 ++} __attribute__ ((packed)) lzma_header_t;
 19.1706 ++
 19.1707 ++
 19.1708 ++#define LZMA_BASE_SIZE 1846
 19.1709 ++#define LZMA_LIT_SIZE 768
 19.1710 ++
 19.1711 ++#define LZMA_NUM_POS_BITS_MAX 4
 19.1712 ++
 19.1713 ++#define LZMA_LEN_NUM_LOW_BITS 3
 19.1714 ++#define LZMA_LEN_NUM_MID_BITS 3
 19.1715 ++#define LZMA_LEN_NUM_HIGH_BITS 8
 19.1716 ++
 19.1717 ++#define LZMA_LEN_CHOICE 0
 19.1718 ++#define LZMA_LEN_CHOICE_2 (LZMA_LEN_CHOICE + 1)
 19.1719 ++#define LZMA_LEN_LOW (LZMA_LEN_CHOICE_2 + 1)
 19.1720 ++#define LZMA_LEN_MID (LZMA_LEN_LOW \
 19.1721 ++		      + (1 << (LZMA_NUM_POS_BITS_MAX + LZMA_LEN_NUM_LOW_BITS)))
 19.1722 ++#define LZMA_LEN_HIGH (LZMA_LEN_MID \
 19.1723 ++		       +(1 << (LZMA_NUM_POS_BITS_MAX + LZMA_LEN_NUM_MID_BITS)))
 19.1724 ++#define LZMA_NUM_LEN_PROBS (LZMA_LEN_HIGH + (1 << LZMA_LEN_NUM_HIGH_BITS))
 19.1725 ++
 19.1726 ++#define LZMA_NUM_STATES 12
 19.1727 ++#define LZMA_NUM_LIT_STATES 7
 19.1728 ++
 19.1729 ++#define LZMA_START_POS_MODEL_INDEX 4
 19.1730 ++#define LZMA_END_POS_MODEL_INDEX 14
 19.1731 ++#define LZMA_NUM_FULL_DISTANCES (1 << (LZMA_END_POS_MODEL_INDEX >> 1))
 19.1732 ++
 19.1733 ++#define LZMA_NUM_POS_SLOT_BITS 6
 19.1734 ++#define LZMA_NUM_LEN_TO_POS_STATES 4
 19.1735 ++
 19.1736 ++#define LZMA_NUM_ALIGN_BITS 4
 19.1737 ++
 19.1738 ++#define LZMA_MATCH_MIN_LEN 2
 19.1739 ++
 19.1740 ++#define LZMA_IS_MATCH 0
 19.1741 ++#define LZMA_IS_REP (LZMA_IS_MATCH + (LZMA_NUM_STATES <<LZMA_NUM_POS_BITS_MAX))
 19.1742 ++#define LZMA_IS_REP_G0 (LZMA_IS_REP + LZMA_NUM_STATES)
 19.1743 ++#define LZMA_IS_REP_G1 (LZMA_IS_REP_G0 + LZMA_NUM_STATES)
 19.1744 ++#define LZMA_IS_REP_G2 (LZMA_IS_REP_G1 + LZMA_NUM_STATES)
 19.1745 ++#define LZMA_IS_REP_0_LONG (LZMA_IS_REP_G2 + LZMA_NUM_STATES)
 19.1746 ++#define LZMA_POS_SLOT (LZMA_IS_REP_0_LONG \
 19.1747 ++		       + (LZMA_NUM_STATES << LZMA_NUM_POS_BITS_MAX))
 19.1748 ++#define LZMA_SPEC_POS (LZMA_POS_SLOT \
 19.1749 ++		       +(LZMA_NUM_LEN_TO_POS_STATES << LZMA_NUM_POS_SLOT_BITS))
 19.1750 ++#define LZMA_ALIGN (LZMA_SPEC_POS \
 19.1751 ++		    + LZMA_NUM_FULL_DISTANCES - LZMA_END_POS_MODEL_INDEX)
 19.1752 ++#define LZMA_LEN_CODER (LZMA_ALIGN + (1 << LZMA_NUM_ALIGN_BITS))
 19.1753 ++#define LZMA_REP_LEN_CODER (LZMA_LEN_CODER + LZMA_NUM_LEN_PROBS)
 19.1754 ++#define LZMA_LITERAL (LZMA_REP_LEN_CODER + LZMA_NUM_LEN_PROBS)
 19.1755 ++
 19.1756 ++
 19.1757 ++STATIC int unlzma(char *inbuf, int in_len, 
 19.1758 ++		   int(*fill)(void*,unsigned int),
 19.1759 ++		   int(*writebb)(char*,unsigned int),
 19.1760 ++		   int *posp)
 19.1761 ++{
 19.1762 ++	lzma_header_t header;
 19.1763 ++	int lc, pb, lp;
 19.1764 ++	uint32_t pos_state_mask;
 19.1765 ++	uint32_t literal_pos_mask;
 19.1766 ++	uint32_t pos;
 19.1767 ++	uint16_t *p;
 19.1768 ++	uint16_t *prob;
 19.1769 ++	uint16_t *prob_lit;
 19.1770 ++	int num_bits;
 19.1771 ++	int num_probs;
 19.1772 ++	rc_t rc;
 19.1773 ++	int i, mi;
 19.1774 ++	uint8_t *buffer;
 19.1775 ++	uint8_t previous_byte = 0;
 19.1776 ++	size_t buffer_pos = 0, global_pos = 0;
 19.1777 ++	int len = 0;
 19.1778 ++	int state = 0;
 19.1779 ++	int bufsize;
 19.1780 ++	uint32_t rep0 = 1, rep1 = 1, rep2 = 1, rep3 = 1;
 19.1781 ++
 19.1782 ++	rc_init(&rc, fill, inbuf, in_len);
 19.1783 ++
 19.1784 ++	header.dict_size = header.dst_size = in_len;
 19.1785 ++	if (inbuf && in_len > 0 && inbuf[0] == 0) {
 19.1786 ++		const int LZMA_LC = 3, LZMA_LP = 0, LZMA_PB = 2;
 19.1787 ++		header.pos = (LZMA_PB * 45) + (LZMA_LP * 5) + LZMA_LC;
 19.1788 ++		rc.ptr++;
 19.1789 ++	}
 19.1790 ++	else {
 19.1791 ++		int hdrsize = sizeof(header);
 19.1792 ++		if (inbuf && in_len > 12 &&
 19.1793 ++		    (1 + * (unsigned long *) &inbuf[9]) > 1U)
 19.1794 ++			hdrsize = 5;
 19.1795 ++		for (i = 0; i < hdrsize; i++) {
 19.1796 ++			if (rc.ptr >= rc.buffer_end)
 19.1797 ++				rc_read(&rc);
 19.1798 ++			((unsigned char *)&header)[i] = *rc.ptr++;
 19.1799 ++		}
 19.1800 ++	}
 19.1801 ++
 19.1802 ++	if (header.pos >= (9 * 5 * 5))
 19.1803 ++		error("bad header");
 19.1804 ++
 19.1805 ++	mi = header.pos / 9;
 19.1806 ++	lc = header.pos % 9;
 19.1807 ++	pb = mi / 5;
 19.1808 ++	lp = mi % 5;
 19.1809 ++	pos_state_mask = (1 << pb) - 1;
 19.1810 ++	literal_pos_mask = (1 << lp) - 1;
 19.1811 ++
 19.1812 ++	ENDIAN_CONVERT(header.dict_size);
 19.1813 ++	ENDIAN_CONVERT(header.dst_size);
 19.1814 ++
 19.1815 ++	if (header.dict_size == 0)
 19.1816 ++		header.dict_size = 1;
 19.1817 ++
 19.1818 ++	bufsize = MIN(header.dst_size, header.dict_size);
 19.1819 ++	buffer = (uint8_t *) posp;
 19.1820 ++	if (writebb) buffer = large_malloc(bufsize);
 19.1821 ++	if(buffer == NULL)
 19.1822 ++		return -1;
 19.1823 ++
 19.1824 ++	num_probs = LZMA_BASE_SIZE + (LZMA_LIT_SIZE << (lc + lp));
 19.1825 ++	p = large_malloc(num_probs * sizeof(*p));
 19.1826 ++	num_probs = LZMA_LITERAL + (LZMA_LIT_SIZE << (lc + lp));
 19.1827 ++	for (i = 0; i < num_probs; i++)
 19.1828 ++		p[i] = (1 << RC_MODEL_TOTAL_BITS) >> 1;
 19.1829 ++
 19.1830 ++	rc_init_code(&rc);
 19.1831 ++
 19.1832 ++	while (global_pos + buffer_pos < header.dst_size) {
 19.1833 ++		int pos_state = (buffer_pos + global_pos) & pos_state_mask;
 19.1834 ++
 19.1835 ++		prob =
 19.1836 ++			p + LZMA_IS_MATCH + (state << LZMA_NUM_POS_BITS_MAX) + pos_state;
 19.1837 ++		if (rc_is_bit_0(&rc, prob)) {
 19.1838 ++			mi = 1;
 19.1839 ++			rc_update_bit_0(&rc, prob);
 19.1840 ++			prob = (p + LZMA_LITERAL + (LZMA_LIT_SIZE
 19.1841 ++					* ((((buffer_pos + global_pos) & literal_pos_mask) << lc)
 19.1842 ++					+ (previous_byte >> (8 - lc)))));
 19.1843 ++
 19.1844 ++			if (state >= LZMA_NUM_LIT_STATES) {
 19.1845 ++				int match_byte;
 19.1846 ++
 19.1847 ++				pos = buffer_pos - rep0;
 19.1848 ++				if (writebb) {
 19.1849 ++					while (pos >= header.dict_size)
 19.1850 ++						pos += header.dict_size;
 19.1851 ++					if(pos >= bufsize) {
 19.1852 ++						goto fail;
 19.1853 ++					}
 19.1854 ++				}
 19.1855 ++				match_byte = buffer[pos];
 19.1856 ++				do {
 19.1857 ++					int bit;
 19.1858 ++
 19.1859 ++					match_byte <<= 1;
 19.1860 ++					bit = match_byte & 0x100;
 19.1861 ++					prob_lit = prob + 0x100 + bit + mi;
 19.1862 ++					if (rc_get_bit(&rc, prob_lit, &mi)) {
 19.1863 ++						if (!bit)
 19.1864 ++							break;
 19.1865 ++					} else {
 19.1866 ++						if (bit)
 19.1867 ++							break;
 19.1868 ++					}
 19.1869 ++				} while (mi < 0x100);
 19.1870 ++			}
 19.1871 ++			while (mi < 0x100) {
 19.1872 ++				prob_lit = prob + mi;
 19.1873 ++				rc_get_bit(&rc, prob_lit, &mi);
 19.1874 ++			}
 19.1875 ++			previous_byte = (uint8_t) mi;
 19.1876 ++			if (state < 4)
 19.1877 ++				state = 0;
 19.1878 ++			else if (state < 10)
 19.1879 ++				state -= 3;
 19.1880 ++			else
 19.1881 ++				state -= 6;
 19.1882 ++			goto store_previous_byte;
 19.1883 ++		} else {
 19.1884 ++			int offset;
 19.1885 ++			uint16_t *prob_len;
 19.1886 ++
 19.1887 ++			rc_update_bit_1(&rc, prob);
 19.1888 ++			prob = p + LZMA_IS_REP + state;
 19.1889 ++			if (rc_is_bit_0(&rc, prob)) {
 19.1890 ++				rc_update_bit_0(&rc, prob);
 19.1891 ++				rep3 = rep2;
 19.1892 ++				rep2 = rep1;
 19.1893 ++				rep1 = rep0;
 19.1894 ++				state = state < LZMA_NUM_LIT_STATES ? 0 : 3;
 19.1895 ++				prob = p + LZMA_LEN_CODER;
 19.1896 ++			} else {
 19.1897 ++				rc_update_bit_1(&rc, prob);
 19.1898 ++				prob = p + LZMA_IS_REP_G0 + state;
 19.1899 ++				if (rc_is_bit_0(&rc, prob)) {
 19.1900 ++					rc_update_bit_0(&rc, prob);
 19.1901 ++					prob = (p + LZMA_IS_REP_0_LONG
 19.1902 ++							+ (state << LZMA_NUM_POS_BITS_MAX) + pos_state);
 19.1903 ++					if (rc_is_bit_0(&rc, prob)) {
 19.1904 ++						rc_update_bit_0(&rc, prob);
 19.1905 ++
 19.1906 ++						state = state < LZMA_NUM_LIT_STATES ? 9 : 11;
 19.1907 ++						pos = buffer_pos - rep0;
 19.1908 ++						if (writebb) {
 19.1909 ++							while (pos >= header.dict_size)
 19.1910 ++								pos += header.dict_size;
 19.1911 ++							if(pos >= bufsize) {
 19.1912 ++								goto fail;
 19.1913 ++							}
 19.1914 ++						}
 19.1915 ++						previous_byte = buffer[pos];
 19.1916 ++					store_previous_byte:
 19.1917 ++						buffer[buffer_pos++] = previous_byte;
 19.1918 ++						if (writebb && buffer_pos == header.dict_size) {
 19.1919 ++							buffer_pos = 0;
 19.1920 ++							global_pos += header.dict_size;
 19.1921 ++							writebb((char*)buffer, header.dict_size);
 19.1922 ++						}
 19.1923 ++						continue;
 19.1924 ++					} else {
 19.1925 ++						rc_update_bit_1(&rc, prob);
 19.1926 ++					}
 19.1927 ++				} else {
 19.1928 ++					uint32_t distance;
 19.1929 ++
 19.1930 ++					rc_update_bit_1(&rc, prob);
 19.1931 ++					prob = p + LZMA_IS_REP_G1 + state;
 19.1932 ++					if (rc_is_bit_0(&rc, prob)) {
 19.1933 ++						rc_update_bit_0(&rc, prob);
 19.1934 ++						distance = rep1;
 19.1935 ++					} else {
 19.1936 ++						rc_update_bit_1(&rc, prob);
 19.1937 ++						prob = p + LZMA_IS_REP_G2 + state;
 19.1938 ++						if (rc_is_bit_0(&rc, prob)) {
 19.1939 ++							rc_update_bit_0(&rc, prob);
 19.1940 ++							distance = rep2;
 19.1941 ++						} else {
 19.1942 ++							rc_update_bit_1(&rc, prob);
 19.1943 ++							distance = rep3;
 19.1944 ++							rep3 = rep2;
 19.1945 ++						}
 19.1946 ++						rep2 = rep1;
 19.1947 ++					}
 19.1948 ++					rep1 = rep0;
 19.1949 ++					rep0 = distance;
 19.1950 ++				}
 19.1951 ++				state = state < LZMA_NUM_LIT_STATES ? 8 : 11;
 19.1952 ++				prob = p + LZMA_REP_LEN_CODER;
 19.1953 ++			}
 19.1954 ++
 19.1955 ++			prob_len = prob + LZMA_LEN_CHOICE;
 19.1956 ++			if (rc_is_bit_0(&rc, prob_len)) {
 19.1957 ++				rc_update_bit_0(&rc, prob_len);
 19.1958 ++				prob_len = (prob + LZMA_LEN_LOW
 19.1959 ++							+ (pos_state << LZMA_LEN_NUM_LOW_BITS));
 19.1960 ++				offset = 0;
 19.1961 ++				num_bits = LZMA_LEN_NUM_LOW_BITS;
 19.1962 ++			} else {
 19.1963 ++				rc_update_bit_1(&rc, prob_len);
 19.1964 ++				prob_len = prob + LZMA_LEN_CHOICE_2;
 19.1965 ++				if (rc_is_bit_0(&rc, prob_len)) {
 19.1966 ++					rc_update_bit_0(&rc, prob_len);
 19.1967 ++					prob_len = (prob + LZMA_LEN_MID
 19.1968 ++								+ (pos_state << LZMA_LEN_NUM_MID_BITS));
 19.1969 ++					offset = 1 << LZMA_LEN_NUM_LOW_BITS;
 19.1970 ++					num_bits = LZMA_LEN_NUM_MID_BITS;
 19.1971 ++				} else {
 19.1972 ++					rc_update_bit_1(&rc, prob_len);
 19.1973 ++					prob_len = prob + LZMA_LEN_HIGH;
 19.1974 ++					offset = ((1 << LZMA_LEN_NUM_LOW_BITS)
 19.1975 ++							  + (1 << LZMA_LEN_NUM_MID_BITS));
 19.1976 ++					num_bits = LZMA_LEN_NUM_HIGH_BITS;
 19.1977 ++				}
 19.1978 ++			}
 19.1979 ++			rc_bit_tree_decode(&rc, prob_len, num_bits, &len);
 19.1980 ++			len += offset;
 19.1981 ++
 19.1982 ++			if (state < 4) {
 19.1983 ++				int pos_slot;
 19.1984 ++
 19.1985 ++				state += LZMA_NUM_LIT_STATES;
 19.1986 ++				prob =
 19.1987 ++					p + LZMA_POS_SLOT +
 19.1988 ++					((len <
 19.1989 ++					  LZMA_NUM_LEN_TO_POS_STATES ? len :
 19.1990 ++					  LZMA_NUM_LEN_TO_POS_STATES - 1)
 19.1991 ++					 << LZMA_NUM_POS_SLOT_BITS);
 19.1992 ++				rc_bit_tree_decode(&rc, prob, LZMA_NUM_POS_SLOT_BITS,
 19.1993 ++								   &pos_slot);
 19.1994 ++				if (pos_slot >= LZMA_START_POS_MODEL_INDEX) {
 19.1995 ++					num_bits = (pos_slot >> 1) - 1;
 19.1996 ++					rep0 = 2 | (pos_slot & 1);
 19.1997 ++					if (pos_slot < LZMA_END_POS_MODEL_INDEX) {
 19.1998 ++						rep0 <<= num_bits;
 19.1999 ++						prob = p + LZMA_SPEC_POS + rep0 - pos_slot - 1;
 19.2000 ++					} else {
 19.2001 ++						num_bits -= LZMA_NUM_ALIGN_BITS;
 19.2002 ++						while (num_bits--)
 19.2003 ++							rep0 = (rep0 << 1) | rc_direct_bit(&rc);
 19.2004 ++						prob = p + LZMA_ALIGN;
 19.2005 ++						rep0 <<= LZMA_NUM_ALIGN_BITS;
 19.2006 ++						num_bits = LZMA_NUM_ALIGN_BITS;
 19.2007 ++					}
 19.2008 ++					i = 1;
 19.2009 ++					mi = 1;
 19.2010 ++					while (num_bits--) {
 19.2011 ++						if (rc_get_bit(&rc, prob + mi, &mi))
 19.2012 ++							rep0 |= i;
 19.2013 ++						i <<= 1;
 19.2014 ++					}
 19.2015 ++				} else
 19.2016 ++					rep0 = pos_slot;
 19.2017 ++				if (++rep0 == 0)
 19.2018 ++					break;
 19.2019 ++			}
 19.2020 ++
 19.2021 ++			len += LZMA_MATCH_MIN_LEN;
 19.2022 ++
 19.2023 ++			do {
 19.2024 ++				pos = buffer_pos - rep0;
 19.2025 ++				if (writebb) {
 19.2026 ++					while (pos >= header.dict_size)
 19.2027 ++						pos += header.dict_size;
 19.2028 ++					if(pos >= bufsize) {
 19.2029 ++						goto fail;
 19.2030 ++					}
 19.2031 ++				}
 19.2032 ++				previous_byte = buffer[pos];
 19.2033 ++				buffer[buffer_pos++] = previous_byte;
 19.2034 ++				if (writebb && buffer_pos == header.dict_size) {
 19.2035 ++					buffer_pos = 0;
 19.2036 ++					global_pos += header.dict_size;
 19.2037 ++					writebb((char*)buffer, header.dict_size);
 19.2038 ++				}
 19.2039 ++				len--;
 19.2040 ++			} while (len != 0 && buffer_pos < header.dst_size);
 19.2041 ++		}
 19.2042 ++	}
 19.2043 ++
 19.2044 ++	if (writebb) {
 19.2045 ++		writebb((char*)buffer, buffer_pos);
 19.2046 ++		if(posp) {
 19.2047 ++			*posp = rc.ptr-rc.buffer;
 19.2048 ++		}
 19.2049 ++		large_free(buffer);
 19.2050 ++	}
 19.2051 ++	large_free(p);
 19.2052 ++	return 0;
 19.2053 ++ fail:
 19.2054 ++	if (writebb) large_free(buffer);
 19.2055 ++	large_free(p);
 19.2056 ++	return -1;
 19.2057 ++}
 19.2058 +
 19.2059 +--- linux-2.6.25.5/lib/unlzma_syms.c	
 19.2060 ++++ linux-2.6.25.5/lib/unlzma_syms.c	
 19.2061 +@@ -0,0 +1,14 @@
 19.2062 ++/*
 19.2063 ++ * linux/lib/unlzma_syms.c
 19.2064 ++ *
 19.2065 ++ * Exported symbols for the unlzma functionality.
 19.2066 ++ *
 19.2067 ++ */
 19.2068 ++
 19.2069 ++#include <linux/module.h>
 19.2070 ++#include <linux/init.h>
 19.2071 ++
 19.2072 ++#include <linux/decompress_unlzma.h>
 19.2073 ++
 19.2074 ++EXPORT_SYMBOL(unlzma);
 19.2075 ++MODULE_LICENSE("GPL");
 19.2076 +
 19.2077 +--- linux-2.6.25.5/lib/Makefile
 19.2078 ++++ linux-2.6.25.5/lib/Makefile
 19.2079 +@@ -50,6 +50,9 @@ obj-$(CONFIG_CRC7)	+= crc7.o
 19.2080 + obj-$(CONFIG_LIBCRC32C)	+= libcrc32c.o
 19.2081 + obj-$(CONFIG_GENERIC_ALLOCATOR) += genalloc.o
 19.2082 + 
 19.2083 ++obj-$(CONFIG_RD_BZIP2)	+= decompress_bunzip2.o
 19.2084 ++obj-$(CONFIG_RD_LZMA)	+= decompress_unlzma.o unlzma_syms.o
 19.2085 ++
 19.2086 + obj-$(CONFIG_ZLIB_INFLATE) += zlib_inflate/
 19.2087 + obj-$(CONFIG_ZLIB_DEFLATE) += zlib_deflate/
 19.2088 + obj-$(CONFIG_REED_SOLOMON) += reed_solomon/
 19.2089 +
 19.2090 +--- linux-2.6.25.5/scripts/Makefile.lib
 19.2091 ++++ linux-2.6.25.5/scripts/Makefile.lib
 19.2092 +@@ -172,4 +172,17 @@
 19.2093 + quiet_cmd_gzip = GZIP    $@
 19.2094 + cmd_gzip = gzip -f -9 < $< > $@
 19.2095 + 
 19.2096 ++# Append size
 19.2097 ++size_append=perl -e 'print(pack("i",(stat($$ARGV[0]))[7]));'
 19.2098 + 
 19.2099 ++# Bzip2
 19.2100 ++# ---------------------------------------------------------------------------
 19.2101 ++
 19.2102 ++quiet_cmd_bzip2 = BZIP2    $@
 19.2103 ++cmd_bzip2 = (bzip2 -9 < $< ; $(size_append) $<) > $@
 19.2104 ++
 19.2105 ++# Lzma
 19.2106 ++# ---------------------------------------------------------------------------
 19.2107 ++
 19.2108 ++quiet_cmd_lzma = LZMA    $@
 19.2109 ++cmd_lzma = (lzma e $< -so ; $(size_append) $<) >$@
 19.2110 +
 19.2111 +--- linux-2.6.25.5/arch/x86/mm/init_32.c
 19.2112 ++++ linux-2.6.25.5/arch/x86/mm/init_32.c
 19.2113 +@@ -788,7 +788,8 @@
 19.2114 + 		free_page(addr);
 19.2115 + 		totalram_pages++;
 19.2116 + 	}
 19.2117 +-	printk(KERN_INFO "Freeing %s: %luk freed\n", what, (end - begin) >> 10);
 19.2118 ++	if (what)
 19.2119 ++		printk(KERN_INFO "Freeing %s: %luk freed\n", what, (end - begin) >> 10);
 19.2120 + #endif
 19.2121 + }
 19.2122 + 
 19.2123 +@@ -802,6 +803,6 @@
 19.2124 + #ifdef CONFIG_BLK_DEV_INITRD
 19.2125 + void free_initrd_mem(unsigned long start, unsigned long end)
 19.2126 + {
 19.2127 +-	free_init_pages("initrd memory", start, end);
 19.2128 ++	free_init_pages(NULL, start, end);
 19.2129 + }
 19.2130 + #endif
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/linux/stuff/linux-utf8-2.6.25.5.u	Sat Jun 07 22:04:11 2008 +0000
    20.3 @@ -0,0 +1,1 @@
    20.4 +linux-utf8-2.6.24.2.u
    20.5 \ No newline at end of file
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/linux/stuff/list_modules.sh	Sat Jun 07 22:04:11 2008 +0000
    21.3 @@ -0,0 +1,34 @@
    21.4 +#!/bin/sh
    21.5 +# list_modules.sh: list Linux kernel modules for SliTaz GNU/Linux.
    21.6 +# 2008/06/07 <pascal.bellard@slitaz.org> - GNU General Public License.
    21.7 +#
    21.8 +
    21.9 +if [ -z "$1" ] ; then
   21.10 +  cat 1>&2 <<EOT
   21.11 +  
   21.12 +\033[1musage:\033[0m `basename $0` path/to/kernel-modules-subtrees
   21.13 +exemple `basename $0` drivers/net/wireless >list
   21.14 +
   21.15 +EOT
   21.16 +  exit 1
   21.17 +fi
   21.18 +
   21.19 +if [ -z "$(ls -d $_pkg/lib/modules/*-slitaz/kernel/$1 2>-)" ] ; then
   21.20 +  cat 1>&2 <<EOT
   21.21 +  
   21.22 +Error : $1 does not exist.
   21.23 +
   21.24 +EOT
   21.25 +  exit 1
   21.26 +fi
   21.27 +
   21.28 +for tree in $@; do
   21.29 +    for module in $(find $_pkg/lib/modules/*-slitaz/kernel/$tree \
   21.30 +                         -type f -exec basename {} \;) ; do
   21.31 +        grep /$module: $_pkg/lib/modules/*-slitaz/modules.dep
   21.32 +    done | awk '{ for (i = 1; i <= NF; i++)  print $i; }'
   21.33 +done | sort | uniq | sed -e 's,.*slitaz/kernel/,,' -e 's/:$//' | \
   21.34 +while read module; do
   21.35 +    grep -qs ^$module$ $src/modules.list && continue
   21.36 +    echo $module
   21.37 +done
    22.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.2 +++ b/linux/stuff/modules-2.6.25.5.list	Sat Jun 07 22:04:11 2008 +0000
    22.3 @@ -0,0 +1,107 @@
    22.4 +drivers/base/firmware_class.ko.gz
    22.5 +drivers/char/genrtc.ko.gz
    22.6 +drivers/char/lp.ko.gz
    22.7 +drivers/char/rtc.ko.gz
    22.8 +drivers/hwmon/hwmon.ko.gz
    22.9 +drivers/input/mouse/inport.ko.gz
   22.10 +drivers/input/mouse/logibm.ko.gz
   22.11 +drivers/input/mouse/pc110pad.ko.gz
   22.12 +drivers/net/3c501.ko.gz
   22.13 +drivers/net/3c503.ko.gz
   22.14 +drivers/net/3c505.ko.gz
   22.15 +drivers/net/3c509.ko.gz
   22.16 +drivers/net/3c515.ko.gz
   22.17 +drivers/net/3c59x.ko.gz
   22.18 +drivers/net/82596.ko.gz
   22.19 +drivers/net/amd8111e.ko.gz
   22.20 +drivers/net/arcnet/arcnet.ko.gz
   22.21 +drivers/net/arcnet/com90xx.ko.gz
   22.22 +drivers/net/arcnet/rfc1201.ko.gz
   22.23 +drivers/net/bnx2.ko.gz
   22.24 +drivers/net/cassini.ko.gz
   22.25 +drivers/net/cs89x0.ko.gz
   22.26 +drivers/net/depca.ko.gz
   22.27 +drivers/net/dl2k.ko.gz
   22.28 +drivers/net/e1000/e1000.ko.gz
   22.29 +drivers/net/e2100.ko.gz
   22.30 +drivers/net/eepro.ko.gz
   22.31 +drivers/net/eexpress.ko.gz
   22.32 +drivers/net/eth16i.ko.gz
   22.33 +drivers/net/ewrk3.ko.gz
   22.34 +drivers/net/fealnx.ko.gz
   22.35 +drivers/net/hp100.ko.gz
   22.36 +drivers/net/hp.ko.gz
   22.37 +drivers/net/hp-plus.ko.gz
   22.38 +drivers/net/ipg.ko.gz
   22.39 +drivers/net/lance.ko.gz
   22.40 +drivers/net/lp486e.ko.gz
   22.41 +drivers/net/ne.ko.gz
   22.42 +drivers/net/ni52.ko.gz
   22.43 +drivers/net/ni65.ko.gz
   22.44 +drivers/net/pcmcia/3c574_cs.ko.gz
   22.45 +drivers/net/pcmcia/3c589_cs.ko.gz
   22.46 +drivers/net/pcmcia/axnet_cs.ko.gz
   22.47 +drivers/net/pcmcia/fmvj18x_cs.ko.gz
   22.48 +drivers/net/pcmcia/nmclan_cs.ko.gz
   22.49 +drivers/net/pcmcia/pcnet_cs.ko.gz
   22.50 +drivers/net/pcmcia/smc91c92_cs.ko.gz
   22.51 +drivers/net/pcmcia/xirc2ps_cs.ko.gz
   22.52 +drivers/net/phy/broadcom.ko.gz
   22.53 +drivers/net/phy/cicada.ko.gz
   22.54 +drivers/net/phy/davicom.ko.gz
   22.55 +drivers/net/phy/libphy.ko.gz
   22.56 +drivers/net/phy/lxt.ko.gz
   22.57 +drivers/net/phy/marvell.ko.gz
   22.58 +drivers/net/phy/qsemi.ko.gz
   22.59 +drivers/net/sis190.ko.gz
   22.60 +drivers/net/sk98lin/sk98lin.ko.gz
   22.61 +drivers/net/skge.ko.gz
   22.62 +drivers/net/sky2.ko.gz
   22.63 +drivers/net/smc9194.ko.gz
   22.64 +drivers/net/smc-ultra.ko.gz
   22.65 +drivers/net/starfire.ko.gz
   22.66 +drivers/net/sungem.ko.gz
   22.67 +drivers/net/sungem_phy.ko.gz
   22.68 +drivers/net/sunhme.ko.gz
   22.69 +drivers/net/tg3.ko.gz
   22.70 +drivers/net/tulip/tulip.ko.gz
   22.71 +drivers/net/tulip/uli526x.ko.gz
   22.72 +drivers/net/typhoon.ko.gz
   22.73 +drivers/net/usb/asix.ko.gz
   22.74 +drivers/net/usb/cdc_ether.ko.gz
   22.75 +drivers/net/usb/cdc_subset.ko.gz
   22.76 +drivers/net/usb/net1080.ko.gz
   22.77 +drivers/net/usb/rndis_host.ko.gz
   22.78 +drivers/net/usb/usbnet.ko.gz
   22.79 +drivers/net/usb/zaurus.ko.gz
   22.80 +drivers/net/via-velocity.ko.gz
   22.81 +drivers/net/wd.ko.gz
   22.82 +drivers/parport/parport.ko.gz
   22.83 +drivers/parport/parport_pc.ko.gz
   22.84 +drivers/pcmcia/i82092.ko.gz
   22.85 +drivers/pcmcia/i82365.ko.gz
   22.86 +drivers/pcmcia/pcmcia_core.ko.gz
   22.87 +drivers/pcmcia/pcmcia.ko.gz
   22.88 +drivers/pcmcia/pd6729.ko.gz
   22.89 +drivers/pcmcia/rsrc_nonstatic.ko.gz
   22.90 +drivers/pcmcia/yenta_socket.ko.gz
   22.91 +drivers/scsi/aic7xxx/aic7xxx.ko.gz
   22.92 +drivers/scsi/iscsi_tcp.ko.gz
   22.93 +drivers/scsi/libiscsi.ko.gz
   22.94 +drivers/scsi/scsi_transport_iscsi.ko.gz
   22.95 +drivers/scsi/scsi_transport_spi.ko.gz
   22.96 +drivers/scsi/scsi_wait_scan.ko.gz
   22.97 +drivers/usb/class/cdc-acm.ko.gz
   22.98 +drivers/usb/class/usblp.ko.gz
   22.99 +drivers/usb/host/ohci-hcd.ko.gz
  22.100 +drivers/usb/serial/ch341.ko.gz
  22.101 +drivers/usb/serial/pl2303.ko.gz
  22.102 +drivers/usb/serial/usbserial.ko.gz
  22.103 +fs/binfmt_misc.ko.gz
  22.104 +fs/fat/fat.ko.gz
  22.105 +fs/msdos/msdos.ko.gz
  22.106 +fs/nls/nls_utf8.ko.gz
  22.107 +fs/vfat/vfat.ko.gz
  22.108 +net/ipv4/netfilter/ipt_REJECT.ko.gz
  22.109 +net/netfilter/nfnetlink.ko.gz
  22.110 +net/netfilter/nfnetlink_log.ko.gz