wok rev 215

Up: 2.6.24.2 add new files in stuff/
author Pascal Bellard <pascal.bellard@slitaz.org>
date Thu Feb 14 19:12:23 2008 +0100 (2008-02-14)
parents 938fc6a41f5a
children 098461817c1c
files linux/stuff/linux-2.6.24.2-slitaz.config linux/stuff/linux-lzma-2.6.24.2.u
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/linux/stuff/linux-2.6.24.2-slitaz.config	Thu Feb 14 19:12:23 2008 +0100
     1.3 @@ -0,0 +1,1774 @@
     1.4 +#
     1.5 +# Automatically generated make config: don't edit
     1.6 +# Linux kernel version: 2.6.24.2
     1.7 +# Thu Feb 14 15:28:29 2008
     1.8 +#
     1.9 +# CONFIG_64BIT is not set
    1.10 +CONFIG_X86_32=y
    1.11 +# CONFIG_X86_64 is not set
    1.12 +CONFIG_X86=y
    1.13 +CONFIG_GENERIC_TIME=y
    1.14 +CONFIG_GENERIC_CMOS_UPDATE=y
    1.15 +CONFIG_CLOCKSOURCE_WATCHDOG=y
    1.16 +CONFIG_GENERIC_CLOCKEVENTS=y
    1.17 +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
    1.18 +CONFIG_LOCKDEP_SUPPORT=y
    1.19 +CONFIG_STACKTRACE_SUPPORT=y
    1.20 +CONFIG_SEMAPHORE_SLEEPERS=y
    1.21 +CONFIG_MMU=y
    1.22 +CONFIG_ZONE_DMA=y
    1.23 +CONFIG_QUICKLIST=y
    1.24 +CONFIG_GENERIC_ISA_DMA=y
    1.25 +CONFIG_GENERIC_IOMAP=y
    1.26 +CONFIG_GENERIC_BUG=y
    1.27 +CONFIG_GENERIC_HWEIGHT=y
    1.28 +CONFIG_ARCH_MAY_HAVE_PC_FDC=y
    1.29 +CONFIG_DMI=y
    1.30 +CONFIG_RWSEM_GENERIC_SPINLOCK=y
    1.31 +# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
    1.32 +# CONFIG_ARCH_HAS_ILOG2_U32 is not set
    1.33 +# CONFIG_ARCH_HAS_ILOG2_U64 is not set
    1.34 +CONFIG_GENERIC_CALIBRATE_DELAY=y
    1.35 +# CONFIG_GENERIC_TIME_VSYSCALL is not set
    1.36 +CONFIG_ARCH_SUPPORTS_OPROFILE=y
    1.37 +# CONFIG_ZONE_DMA32 is not set
    1.38 +CONFIG_ARCH_POPULATES_NODE_MAP=y
    1.39 +# CONFIG_AUDIT_ARCH is not set
    1.40 +CONFIG_GENERIC_HARDIRQS=y
    1.41 +CONFIG_GENERIC_IRQ_PROBE=y
    1.42 +CONFIG_GENERIC_PENDING_IRQ=y
    1.43 +CONFIG_X86_SMP=y
    1.44 +CONFIG_X86_HT=y
    1.45 +CONFIG_X86_BIOS_REBOOT=y
    1.46 +CONFIG_X86_TRAMPOLINE=y
    1.47 +CONFIG_KTIME_SCALAR=y
    1.48 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
    1.49 +
    1.50 +#
    1.51 +# General setup
    1.52 +#
    1.53 +CONFIG_EXPERIMENTAL=y
    1.54 +CONFIG_LOCK_KERNEL=y
    1.55 +CONFIG_INIT_ENV_ARG_LIMIT=32
    1.56 +CONFIG_LOCALVERSION="-slitaz"
    1.57 +# CONFIG_LOCALVERSION_AUTO is not set
    1.58 +# CONFIG_KERNEL_GZIP is not set
    1.59 +# CONFIG_KERNEL_BZIP2 is not set
    1.60 +CONFIG_KERNEL_LZMA=y
    1.61 +CONFIG_SWAP=y
    1.62 +CONFIG_SYSVIPC=y
    1.63 +CONFIG_SYSVIPC_SYSCTL=y
    1.64 +CONFIG_POSIX_MQUEUE=y
    1.65 +CONFIG_BSD_PROCESS_ACCT=y
    1.66 +# CONFIG_BSD_PROCESS_ACCT_V3 is not set
    1.67 +# CONFIG_TASKSTATS is not set
    1.68 +# CONFIG_USER_NS is not set
    1.69 +# CONFIG_PID_NS is not set
    1.70 +# CONFIG_AUDIT is not set
    1.71 +CONFIG_IKCONFIG=y
    1.72 +CONFIG_IKCONFIG_PROC=y
    1.73 +CONFIG_LOG_BUF_SHIFT=14
    1.74 +# CONFIG_CGROUPS is not set
    1.75 +CONFIG_FAIR_GROUP_SCHED=y
    1.76 +CONFIG_FAIR_USER_SCHED=y
    1.77 +# CONFIG_FAIR_CGROUP_SCHED is not set
    1.78 +# CONFIG_SYSFS_DEPRECATED is not set
    1.79 +# CONFIG_RELAY is not set
    1.80 +CONFIG_BLK_DEV_INITRD=y
    1.81 +CONFIG_INITRAMFS_SOURCE=""
    1.82 +CONFIG_CC_OPTIMIZE_FOR_SIZE=y
    1.83 +CONFIG_SYSCTL=y
    1.84 +# CONFIG_EMBEDDED is not set
    1.85 +CONFIG_UID16=y
    1.86 +CONFIG_SYSCTL_SYSCALL=y
    1.87 +CONFIG_KALLSYMS=y
    1.88 +# CONFIG_KALLSYMS_EXTRA_PASS is not set
    1.89 +CONFIG_HOTPLUG=y
    1.90 +CONFIG_PRINTK=y
    1.91 +CONFIG_BUG=y
    1.92 +CONFIG_ELF_CORE=y
    1.93 +CONFIG_BASE_FULL=y
    1.94 +CONFIG_FUTEX=y
    1.95 +CONFIG_ANON_INODES=y
    1.96 +CONFIG_EPOLL=y
    1.97 +CONFIG_SIGNALFD=y
    1.98 +CONFIG_EVENTFD=y
    1.99 +CONFIG_SHMEM=y
   1.100 +CONFIG_VM_EVENT_COUNTERS=y
   1.101 +CONFIG_SLAB=y
   1.102 +# CONFIG_SLUB is not set
   1.103 +# CONFIG_SLOB is not set
   1.104 +CONFIG_SLABINFO=y
   1.105 +CONFIG_RT_MUTEXES=y
   1.106 +# CONFIG_TINY_SHMEM is not set
   1.107 +CONFIG_BASE_SMALL=0
   1.108 +CONFIG_MODULES=y
   1.109 +CONFIG_MODULE_UNLOAD=y
   1.110 +# CONFIG_MODULE_FORCE_UNLOAD is not set
   1.111 +# CONFIG_MODVERSIONS is not set
   1.112 +# CONFIG_MODULE_SRCVERSION_ALL is not set
   1.113 +CONFIG_KMOD=y
   1.114 +CONFIG_STOP_MACHINE=y
   1.115 +CONFIG_BLOCK=y
   1.116 +# CONFIG_LBD is not set
   1.117 +# CONFIG_BLK_DEV_IO_TRACE is not set
   1.118 +# CONFIG_LSF is not set
   1.119 +# CONFIG_BLK_DEV_BSG is not set
   1.120 +
   1.121 +#
   1.122 +# IO Schedulers
   1.123 +#
   1.124 +CONFIG_IOSCHED_NOOP=y
   1.125 +# CONFIG_IOSCHED_AS is not set
   1.126 +CONFIG_IOSCHED_DEADLINE=y
   1.127 +# CONFIG_IOSCHED_CFQ is not set
   1.128 +# CONFIG_DEFAULT_AS is not set
   1.129 +CONFIG_DEFAULT_DEADLINE=y
   1.130 +# CONFIG_DEFAULT_CFQ is not set
   1.131 +# CONFIG_DEFAULT_NOOP is not set
   1.132 +CONFIG_DEFAULT_IOSCHED="deadline"
   1.133 +
   1.134 +#
   1.135 +# Processor type and features
   1.136 +#
   1.137 +# CONFIG_TICK_ONESHOT is not set
   1.138 +# CONFIG_NO_HZ is not set
   1.139 +# CONFIG_HIGH_RES_TIMERS is not set
   1.140 +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
   1.141 +CONFIG_SMP=y
   1.142 +CONFIG_X86_PC=y
   1.143 +# CONFIG_X86_ELAN is not set
   1.144 +# CONFIG_X86_VOYAGER is not set
   1.145 +# CONFIG_X86_NUMAQ is not set
   1.146 +# CONFIG_X86_SUMMIT is not set
   1.147 +# CONFIG_X86_BIGSMP is not set
   1.148 +# CONFIG_X86_VISWS is not set
   1.149 +# CONFIG_X86_GENERICARCH is not set
   1.150 +# CONFIG_X86_ES7000 is not set
   1.151 +# CONFIG_X86_VSMP is not set
   1.152 +CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
   1.153 +# CONFIG_PARAVIRT_GUEST is not set
   1.154 +CONFIG_M386=y
   1.155 +# CONFIG_M486 is not set
   1.156 +# CONFIG_M586 is not set
   1.157 +# CONFIG_M586TSC is not set
   1.158 +# CONFIG_M586MMX is not set
   1.159 +# CONFIG_M686 is not set
   1.160 +# CONFIG_MPENTIUMII is not set
   1.161 +# CONFIG_MPENTIUMIII is not set
   1.162 +# CONFIG_MPENTIUMM is not set
   1.163 +# CONFIG_MPENTIUM4 is not set
   1.164 +# CONFIG_MK6 is not set
   1.165 +# CONFIG_MK7 is not set
   1.166 +# CONFIG_MK8 is not set
   1.167 +# CONFIG_MCRUSOE is not set
   1.168 +# CONFIG_MEFFICEON is not set
   1.169 +# CONFIG_MWINCHIPC6 is not set
   1.170 +# CONFIG_MWINCHIP2 is not set
   1.171 +# CONFIG_MWINCHIP3D is not set
   1.172 +# CONFIG_MGEODEGX1 is not set
   1.173 +# CONFIG_MGEODE_LX is not set
   1.174 +# CONFIG_MCYRIXIII is not set
   1.175 +# CONFIG_MVIAC3_2 is not set
   1.176 +# CONFIG_MVIAC7 is not set
   1.177 +# CONFIG_MPSC is not set
   1.178 +# CONFIG_MCORE2 is not set
   1.179 +# CONFIG_GENERIC_CPU is not set
   1.180 +CONFIG_X86_GENERIC=y
   1.181 +# CONFIG_X86_CMPXCHG is not set
   1.182 +CONFIG_X86_L1_CACHE_SHIFT=7
   1.183 +CONFIG_X86_PPRO_FENCE=y
   1.184 +CONFIG_X86_F00F_BUG=y
   1.185 +CONFIG_X86_INTEL_USERCOPY=y
   1.186 +CONFIG_X86_MINIMUM_CPU_FAMILY=3
   1.187 +# CONFIG_HPET_TIMER is not set
   1.188 +CONFIG_NR_CPUS=8
   1.189 +# CONFIG_SCHED_SMT is not set
   1.190 +CONFIG_SCHED_MC=y
   1.191 +CONFIG_PREEMPT_NONE=y
   1.192 +# CONFIG_PREEMPT_VOLUNTARY is not set
   1.193 +# CONFIG_PREEMPT is not set
   1.194 +CONFIG_PREEMPT_BKL=y
   1.195 +CONFIG_X86_LOCAL_APIC=y
   1.196 +CONFIG_X86_IO_APIC=y
   1.197 +# CONFIG_X86_MCE is not set
   1.198 +CONFIG_VM86=y
   1.199 +# CONFIG_TOSHIBA is not set
   1.200 +# CONFIG_I8K is not set
   1.201 +# CONFIG_X86_REBOOTFIXUPS is not set
   1.202 +# CONFIG_MICROCODE is not set
   1.203 +# CONFIG_X86_MSR is not set
   1.204 +# CONFIG_X86_CPUID is not set
   1.205 +# CONFIG_NOHIGHMEM is not set
   1.206 +CONFIG_HIGHMEM4G=y
   1.207 +# CONFIG_HIGHMEM64G is not set
   1.208 +CONFIG_PAGE_OFFSET=0xC0000000
   1.209 +CONFIG_HIGHMEM=y
   1.210 +CONFIG_ARCH_FLATMEM_ENABLE=y
   1.211 +CONFIG_ARCH_SPARSEMEM_ENABLE=y
   1.212 +CONFIG_ARCH_SELECT_MEMORY_MODEL=y
   1.213 +CONFIG_SELECT_MEMORY_MODEL=y
   1.214 +CONFIG_FLATMEM_MANUAL=y
   1.215 +# CONFIG_DISCONTIGMEM_MANUAL is not set
   1.216 +# CONFIG_SPARSEMEM_MANUAL is not set
   1.217 +CONFIG_FLATMEM=y
   1.218 +CONFIG_FLAT_NODE_MEM_MAP=y
   1.219 +CONFIG_SPARSEMEM_STATIC=y
   1.220 +# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
   1.221 +CONFIG_SPLIT_PTLOCK_CPUS=4
   1.222 +# CONFIG_RESOURCES_64BIT is not set
   1.223 +CONFIG_ZONE_DMA_FLAG=1
   1.224 +CONFIG_BOUNCE=y
   1.225 +CONFIG_NR_QUICK=1
   1.226 +CONFIG_VIRT_TO_BUS=y
   1.227 +# CONFIG_HIGHPTE is not set
   1.228 +CONFIG_MATH_EMULATION=y
   1.229 +CONFIG_MTRR=y
   1.230 +CONFIG_IRQBALANCE=y
   1.231 +# CONFIG_SECCOMP is not set
   1.232 +# CONFIG_HZ_100 is not set
   1.233 +# CONFIG_HZ_250 is not set
   1.234 +CONFIG_HZ_300=y
   1.235 +# CONFIG_HZ_1000 is not set
   1.236 +CONFIG_HZ=300
   1.237 +# CONFIG_KEXEC is not set
   1.238 +# CONFIG_CRASH_DUMP is not set
   1.239 +CONFIG_PHYSICAL_START=0x100000
   1.240 +# CONFIG_RELOCATABLE is not set
   1.241 +CONFIG_PHYSICAL_ALIGN=0x100000
   1.242 +# CONFIG_HOTPLUG_CPU is not set
   1.243 +CONFIG_COMPAT_VDSO=y
   1.244 +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
   1.245 +
   1.246 +#
   1.247 +# Power management options
   1.248 +#
   1.249 +# CONFIG_PM is not set
   1.250 +CONFIG_SUSPEND_SMP_POSSIBLE=y
   1.251 +CONFIG_HIBERNATION_SMP_POSSIBLE=y
   1.252 +
   1.253 +#
   1.254 +# CPU Frequency scaling
   1.255 +#
   1.256 +# CONFIG_CPU_FREQ is not set
   1.257 +# CONFIG_CPU_IDLE is not set
   1.258 +
   1.259 +#
   1.260 +# Bus options (PCI etc.)
   1.261 +#
   1.262 +CONFIG_PCI=y
   1.263 +# CONFIG_PCI_GOBIOS is not set
   1.264 +# CONFIG_PCI_GOMMCONFIG is not set
   1.265 +# CONFIG_PCI_GODIRECT is not set
   1.266 +CONFIG_PCI_GOANY=y
   1.267 +CONFIG_PCI_BIOS=y
   1.268 +CONFIG_PCI_DIRECT=y
   1.269 +CONFIG_PCI_DOMAINS=y
   1.270 +# CONFIG_PCIEPORTBUS is not set
   1.271 +CONFIG_ARCH_SUPPORTS_MSI=y
   1.272 +# CONFIG_PCI_MSI is not set
   1.273 +CONFIG_PCI_LEGACY=y
   1.274 +CONFIG_HT_IRQ=y
   1.275 +CONFIG_ISA_DMA_API=y
   1.276 +CONFIG_ISA=y
   1.277 +# CONFIG_EISA is not set
   1.278 +# CONFIG_MCA is not set
   1.279 +# CONFIG_SCx200 is not set
   1.280 +CONFIG_PCCARD=m
   1.281 +# CONFIG_PCMCIA_DEBUG is not set
   1.282 +CONFIG_PCMCIA=m
   1.283 +CONFIG_PCMCIA_LOAD_CIS=y
   1.284 +CONFIG_PCMCIA_IOCTL=y
   1.285 +CONFIG_CARDBUS=y
   1.286 +
   1.287 +#
   1.288 +# PC-card bridges
   1.289 +#
   1.290 +CONFIG_YENTA=m
   1.291 +CONFIG_YENTA_O2=y
   1.292 +CONFIG_YENTA_RICOH=y
   1.293 +CONFIG_YENTA_TI=y
   1.294 +CONFIG_YENTA_ENE_TUNE=y
   1.295 +CONFIG_YENTA_TOSHIBA=y
   1.296 +CONFIG_PD6729=m
   1.297 +CONFIG_I82092=m
   1.298 +CONFIG_I82365=m
   1.299 +# CONFIG_TCIC is not set
   1.300 +CONFIG_PCMCIA_PROBE=y
   1.301 +CONFIG_PCCARD_NONSTATIC=m
   1.302 +# CONFIG_HOTPLUG_PCI is not set
   1.303 +
   1.304 +#
   1.305 +# Executable file formats / Emulations
   1.306 +#
   1.307 +CONFIG_BINFMT_ELF=y
   1.308 +# CONFIG_BINFMT_AOUT is not set
   1.309 +# CONFIG_BINFMT_MISC is not set
   1.310 +
   1.311 +#
   1.312 +# Networking
   1.313 +#
   1.314 +CONFIG_NET=y
   1.315 +
   1.316 +#
   1.317 +# Networking options
   1.318 +#
   1.319 +CONFIG_PACKET=y
   1.320 +# CONFIG_PACKET_MMAP is not set
   1.321 +CONFIG_UNIX=y
   1.322 +CONFIG_XFRM=y
   1.323 +# CONFIG_XFRM_USER is not set
   1.324 +# CONFIG_XFRM_SUB_POLICY is not set
   1.325 +# CONFIG_XFRM_MIGRATE is not set
   1.326 +CONFIG_NET_KEY=y
   1.327 +# CONFIG_NET_KEY_MIGRATE is not set
   1.328 +CONFIG_INET=y
   1.329 +# CONFIG_IP_MULTICAST is not set
   1.330 +# CONFIG_IP_ADVANCED_ROUTER is not set
   1.331 +CONFIG_IP_FIB_HASH=y
   1.332 +# CONFIG_IP_PNP is not set
   1.333 +# CONFIG_NET_IPIP is not set
   1.334 +# CONFIG_NET_IPGRE is not set
   1.335 +# CONFIG_ARPD is not set
   1.336 +CONFIG_SYN_COOKIES=y
   1.337 +CONFIG_INET_AH=y
   1.338 +CONFIG_INET_ESP=y
   1.339 +CONFIG_INET_IPCOMP=y
   1.340 +CONFIG_INET_XFRM_TUNNEL=y
   1.341 +CONFIG_INET_TUNNEL=y
   1.342 +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
   1.343 +# CONFIG_INET_XFRM_MODE_TUNNEL is not set
   1.344 +# CONFIG_INET_XFRM_MODE_BEET is not set
   1.345 +# CONFIG_INET_LRO is not set
   1.346 +CONFIG_INET_DIAG=y
   1.347 +CONFIG_INET_TCP_DIAG=y
   1.348 +# CONFIG_TCP_CONG_ADVANCED is not set
   1.349 +CONFIG_TCP_CONG_CUBIC=y
   1.350 +CONFIG_DEFAULT_TCP_CONG="cubic"
   1.351 +# CONFIG_TCP_MD5SIG is not set
   1.352 +# CONFIG_IP_VS is not set
   1.353 +# CONFIG_IPV6 is not set
   1.354 +# CONFIG_INET6_XFRM_TUNNEL is not set
   1.355 +# CONFIG_INET6_TUNNEL is not set
   1.356 +# CONFIG_NETWORK_SECMARK is not set
   1.357 +CONFIG_NETFILTER=y
   1.358 +# CONFIG_NETFILTER_DEBUG is not set
   1.359 +
   1.360 +#
   1.361 +# Core Netfilter Configuration
   1.362 +#
   1.363 +CONFIG_NETFILTER_NETLINK=y
   1.364 +# CONFIG_NETFILTER_NETLINK_QUEUE is not set
   1.365 +CONFIG_NETFILTER_NETLINK_LOG=m
   1.366 +# CONFIG_NF_CONNTRACK_ENABLED is not set
   1.367 +# CONFIG_NF_CONNTRACK is not set
   1.368 +CONFIG_NETFILTER_XTABLES=y
   1.369 +# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
   1.370 +# CONFIG_NETFILTER_XT_TARGET_MARK is not set
   1.371 +# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
   1.372 +# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
   1.373 +# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
   1.374 +# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
   1.375 +# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
   1.376 +# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
   1.377 +# CONFIG_NETFILTER_XT_MATCH_ESP is not set
   1.378 +# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
   1.379 +# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
   1.380 +# CONFIG_NETFILTER_XT_MATCH_MAC is not set
   1.381 +# CONFIG_NETFILTER_XT_MATCH_MARK is not set
   1.382 +# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
   1.383 +# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
   1.384 +# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
   1.385 +# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
   1.386 +# CONFIG_NETFILTER_XT_MATCH_REALM is not set
   1.387 +# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
   1.388 +# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
   1.389 +# CONFIG_NETFILTER_XT_MATCH_STRING is not set
   1.390 +# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
   1.391 +# CONFIG_NETFILTER_XT_MATCH_TIME is not set
   1.392 +# CONFIG_NETFILTER_XT_MATCH_U32 is not set
   1.393 +# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
   1.394 +
   1.395 +#
   1.396 +# IP: Netfilter Configuration
   1.397 +#
   1.398 +# CONFIG_IP_NF_QUEUE is not set
   1.399 +CONFIG_IP_NF_IPTABLES=y
   1.400 +# CONFIG_IP_NF_MATCH_IPRANGE is not set
   1.401 +# CONFIG_IP_NF_MATCH_TOS is not set
   1.402 +# CONFIG_IP_NF_MATCH_RECENT is not set
   1.403 +# CONFIG_IP_NF_MATCH_ECN is not set
   1.404 +# CONFIG_IP_NF_MATCH_AH is not set
   1.405 +# CONFIG_IP_NF_MATCH_TTL is not set
   1.406 +# CONFIG_IP_NF_MATCH_OWNER is not set
   1.407 +# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
   1.408 +CONFIG_IP_NF_FILTER=y
   1.409 +CONFIG_IP_NF_TARGET_REJECT=m
   1.410 +# CONFIG_IP_NF_TARGET_LOG is not set
   1.411 +# CONFIG_IP_NF_TARGET_ULOG is not set
   1.412 +# CONFIG_IP_NF_MANGLE is not set
   1.413 +# CONFIG_IP_NF_RAW is not set
   1.414 +# CONFIG_IP_NF_ARPTABLES is not set
   1.415 +# CONFIG_IP_DCCP is not set
   1.416 +# CONFIG_IP_SCTP is not set
   1.417 +# CONFIG_TIPC is not set
   1.418 +# CONFIG_ATM is not set
   1.419 +# CONFIG_BRIDGE is not set
   1.420 +# CONFIG_VLAN_8021Q is not set
   1.421 +# CONFIG_DECNET is not set
   1.422 +# CONFIG_LLC2 is not set
   1.423 +# CONFIG_IPX is not set
   1.424 +# CONFIG_ATALK is not set
   1.425 +# CONFIG_X25 is not set
   1.426 +# CONFIG_LAPB is not set
   1.427 +# CONFIG_ECONET is not set
   1.428 +# CONFIG_WAN_ROUTER is not set
   1.429 +# CONFIG_NET_SCHED is not set
   1.430 +
   1.431 +#
   1.432 +# Network testing
   1.433 +#
   1.434 +# CONFIG_NET_PKTGEN is not set
   1.435 +# CONFIG_HAMRADIO is not set
   1.436 +# CONFIG_IRDA is not set
   1.437 +# CONFIG_BT is not set
   1.438 +# CONFIG_AF_RXRPC is not set
   1.439 +
   1.440 +#
   1.441 +# Wireless
   1.442 +#
   1.443 +# CONFIG_CFG80211 is not set
   1.444 +# CONFIG_WIRELESS_EXT is not set
   1.445 +# CONFIG_MAC80211 is not set
   1.446 +# CONFIG_IEEE80211 is not set
   1.447 +# CONFIG_RFKILL is not set
   1.448 +# CONFIG_NET_9P is not set
   1.449 +
   1.450 +#
   1.451 +# Device Drivers
   1.452 +#
   1.453 +
   1.454 +#
   1.455 +# Generic Driver Options
   1.456 +#
   1.457 +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
   1.458 +CONFIG_STANDALONE=y
   1.459 +CONFIG_PREVENT_FIRMWARE_BUILD=y
   1.460 +CONFIG_FW_LOADER=m
   1.461 +# CONFIG_SYS_HYPERVISOR is not set
   1.462 +# CONFIG_CONNECTOR is not set
   1.463 +# CONFIG_MTD is not set
   1.464 +# CONFIG_PARPORT is not set
   1.465 +CONFIG_PNP=y
   1.466 +# CONFIG_PNP_DEBUG is not set
   1.467 +
   1.468 +#
   1.469 +# Protocols
   1.470 +#
   1.471 +CONFIG_ISAPNP=y
   1.472 +# CONFIG_PNPBIOS is not set
   1.473 +# CONFIG_PNPACPI is not set
   1.474 +CONFIG_BLK_DEV=y
   1.475 +CONFIG_BLK_DEV_FD=y
   1.476 +# CONFIG_BLK_DEV_XD is not set
   1.477 +# CONFIG_BLK_CPQ_DA is not set
   1.478 +# CONFIG_BLK_CPQ_CISS_DA is not set
   1.479 +# CONFIG_BLK_DEV_DAC960 is not set
   1.480 +# CONFIG_BLK_DEV_UMEM is not set
   1.481 +# CONFIG_BLK_DEV_COW_COMMON is not set
   1.482 +CONFIG_BLK_DEV_LOOP=y
   1.483 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set
   1.484 +# CONFIG_BLK_DEV_NBD is not set
   1.485 +# CONFIG_BLK_DEV_SX8 is not set
   1.486 +# CONFIG_BLK_DEV_UB is not set
   1.487 +CONFIG_BLK_DEV_RAM=y
   1.488 +CONFIG_BLK_DEV_RAM_COUNT=16
   1.489 +CONFIG_BLK_DEV_RAM_SIZE=4096
   1.490 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
   1.491 +# CONFIG_RD_BZIP2 is not set
   1.492 +CONFIG_RD_LZMA=y
   1.493 +CONFIG_RD_GZIP=y
   1.494 +# CONFIG_CDROM_PKTCDVD is not set
   1.495 +# CONFIG_ATA_OVER_ETH is not set
   1.496 +CONFIG_MISC_DEVICES=y
   1.497 +# CONFIG_IBM_ASM is not set
   1.498 +# CONFIG_PHANTOM is not set
   1.499 +# CONFIG_EEPROM_93CX6 is not set
   1.500 +# CONFIG_SGI_IOC4 is not set
   1.501 +# CONFIG_TIFM_CORE is not set
   1.502 +CONFIG_IDE=y
   1.503 +CONFIG_BLK_DEV_IDE=y
   1.504 +
   1.505 +#
   1.506 +# Please see Documentation/ide.txt for help/info on IDE drives
   1.507 +#
   1.508 +# CONFIG_BLK_DEV_IDE_SATA is not set
   1.509 +# CONFIG_BLK_DEV_HD_IDE is not set
   1.510 +CONFIG_BLK_DEV_IDEDISK=y
   1.511 +CONFIG_IDEDISK_MULTI_MODE=y
   1.512 +# CONFIG_BLK_DEV_IDECS is not set
   1.513 +# CONFIG_BLK_DEV_DELKIN is not set
   1.514 +CONFIG_BLK_DEV_IDECD=y
   1.515 +# CONFIG_BLK_DEV_IDETAPE is not set
   1.516 +CONFIG_BLK_DEV_IDEFLOPPY=y
   1.517 +# CONFIG_BLK_DEV_IDESCSI is not set
   1.518 +# CONFIG_IDE_TASK_IOCTL is not set
   1.519 +CONFIG_IDE_PROC_FS=y
   1.520 +
   1.521 +#
   1.522 +# IDE chipset support/bugfixes
   1.523 +#
   1.524 +CONFIG_IDE_GENERIC=y
   1.525 +# CONFIG_BLK_DEV_PLATFORM is not set
   1.526 +CONFIG_BLK_DEV_CMD640=y
   1.527 +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
   1.528 +# CONFIG_BLK_DEV_IDEPNP is not set
   1.529 +
   1.530 +#
   1.531 +# PCI IDE chipsets support
   1.532 +#
   1.533 +CONFIG_BLK_DEV_IDEPCI=y
   1.534 +CONFIG_IDEPCI_SHARE_IRQ=y
   1.535 +CONFIG_IDEPCI_PCIBUS_ORDER=y
   1.536 +# CONFIG_BLK_DEV_OFFBOARD is not set
   1.537 +CONFIG_BLK_DEV_GENERIC=y
   1.538 +# CONFIG_BLK_DEV_OPTI621 is not set
   1.539 +CONFIG_BLK_DEV_RZ1000=y
   1.540 +CONFIG_BLK_DEV_IDEDMA_PCI=y
   1.541 +CONFIG_BLK_DEV_AEC62XX=y
   1.542 +CONFIG_BLK_DEV_ALI15X3=y
   1.543 +# CONFIG_WDC_ALI15X3 is not set
   1.544 +CONFIG_BLK_DEV_AMD74XX=y
   1.545 +CONFIG_BLK_DEV_ATIIXP=y
   1.546 +CONFIG_BLK_DEV_CMD64X=y
   1.547 +CONFIG_BLK_DEV_TRIFLEX=y
   1.548 +CONFIG_BLK_DEV_CY82C693=y
   1.549 +# CONFIG_BLK_DEV_CS5520 is not set
   1.550 +CONFIG_BLK_DEV_CS5530=y
   1.551 +CONFIG_BLK_DEV_CS5535=y
   1.552 +# CONFIG_BLK_DEV_HPT34X is not set
   1.553 +# CONFIG_BLK_DEV_HPT366 is not set
   1.554 +CONFIG_BLK_DEV_JMICRON=y
   1.555 +# CONFIG_BLK_DEV_SC1200 is not set
   1.556 +CONFIG_BLK_DEV_PIIX=y
   1.557 +CONFIG_BLK_DEV_IT8213=y
   1.558 +CONFIG_BLK_DEV_IT821X=y
   1.559 +CONFIG_BLK_DEV_NS87415=y
   1.560 +# CONFIG_BLK_DEV_PDC202XX_OLD is not set
   1.561 +CONFIG_BLK_DEV_PDC202XX_NEW=y
   1.562 +CONFIG_BLK_DEV_SVWKS=y
   1.563 +CONFIG_BLK_DEV_SIIMAGE=y
   1.564 +CONFIG_BLK_DEV_SIS5513=y
   1.565 +CONFIG_BLK_DEV_SLC90E66=y
   1.566 +CONFIG_BLK_DEV_TRM290=y
   1.567 +CONFIG_BLK_DEV_VIA82CXXX=y
   1.568 +# CONFIG_BLK_DEV_TC86C001 is not set
   1.569 +# CONFIG_IDE_ARM is not set
   1.570 +
   1.571 +#
   1.572 +# Other IDE chipsets support
   1.573 +#
   1.574 +
   1.575 +#
   1.576 +# Note: most of these also require special kernel boot parameters
   1.577 +#
   1.578 +# CONFIG_BLK_DEV_4DRIVES is not set
   1.579 +# CONFIG_BLK_DEV_ALI14XX is not set
   1.580 +# CONFIG_BLK_DEV_DTC2278 is not set
   1.581 +# CONFIG_BLK_DEV_HT6560B is not set
   1.582 +# CONFIG_BLK_DEV_QD65XX is not set
   1.583 +# CONFIG_BLK_DEV_UMC8672 is not set
   1.584 +CONFIG_BLK_DEV_IDEDMA=y
   1.585 +CONFIG_IDE_ARCH_OBSOLETE_INIT=y
   1.586 +# CONFIG_BLK_DEV_HD is not set
   1.587 +
   1.588 +#
   1.589 +# SCSI device support
   1.590 +#
   1.591 +# CONFIG_RAID_ATTRS is not set
   1.592 +CONFIG_SCSI=y
   1.593 +CONFIG_SCSI_DMA=y
   1.594 +# CONFIG_SCSI_TGT is not set
   1.595 +# CONFIG_SCSI_NETLINK is not set
   1.596 +CONFIG_SCSI_PROC_FS=y
   1.597 +
   1.598 +#
   1.599 +# SCSI support type (disk, tape, CD-ROM)
   1.600 +#
   1.601 +CONFIG_BLK_DEV_SD=y
   1.602 +# CONFIG_CHR_DEV_ST is not set
   1.603 +# CONFIG_CHR_DEV_OSST is not set
   1.604 +# CONFIG_BLK_DEV_SR is not set
   1.605 +# CONFIG_CHR_DEV_SG is not set
   1.606 +# CONFIG_CHR_DEV_SCH is not set
   1.607 +
   1.608 +#
   1.609 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
   1.610 +#
   1.611 +# CONFIG_SCSI_MULTI_LUN is not set
   1.612 +# CONFIG_SCSI_CONSTANTS is not set
   1.613 +# CONFIG_SCSI_LOGGING is not set
   1.614 +# CONFIG_SCSI_SCAN_ASYNC is not set
   1.615 +CONFIG_SCSI_WAIT_SCAN=m
   1.616 +
   1.617 +#
   1.618 +# SCSI Transports
   1.619 +#
   1.620 +# CONFIG_SCSI_SPI_ATTRS is not set
   1.621 +# CONFIG_SCSI_FC_ATTRS is not set
   1.622 +# CONFIG_SCSI_ISCSI_ATTRS is not set
   1.623 +# CONFIG_SCSI_SAS_LIBSAS is not set
   1.624 +# CONFIG_SCSI_SRP_ATTRS is not set
   1.625 +CONFIG_SCSI_LOWLEVEL=y
   1.626 +# CONFIG_ISCSI_TCP is not set
   1.627 +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
   1.628 +# CONFIG_SCSI_3W_9XXX is not set
   1.629 +# CONFIG_SCSI_7000FASST is not set
   1.630 +# CONFIG_SCSI_ACARD is not set
   1.631 +# CONFIG_SCSI_AHA152X is not set
   1.632 +# CONFIG_SCSI_AHA1542 is not set
   1.633 +# CONFIG_SCSI_AACRAID is not set
   1.634 +# CONFIG_SCSI_AIC7XXX is not set
   1.635 +# CONFIG_SCSI_AIC7XXX_OLD is not set
   1.636 +# CONFIG_SCSI_AIC79XX is not set
   1.637 +# CONFIG_SCSI_AIC94XX is not set
   1.638 +# CONFIG_SCSI_DPT_I2O is not set
   1.639 +# CONFIG_SCSI_ADVANSYS is not set
   1.640 +# CONFIG_SCSI_IN2000 is not set
   1.641 +# CONFIG_SCSI_ARCMSR is not set
   1.642 +# CONFIG_MEGARAID_NEWGEN is not set
   1.643 +# CONFIG_MEGARAID_LEGACY is not set
   1.644 +# CONFIG_MEGARAID_SAS is not set
   1.645 +# CONFIG_SCSI_HPTIOP is not set
   1.646 +# CONFIG_SCSI_BUSLOGIC is not set
   1.647 +# CONFIG_SCSI_DMX3191D is not set
   1.648 +# CONFIG_SCSI_DTC3280 is not set
   1.649 +# CONFIG_SCSI_EATA is not set
   1.650 +# CONFIG_SCSI_FUTURE_DOMAIN is not set
   1.651 +# CONFIG_SCSI_GDTH is not set
   1.652 +# CONFIG_SCSI_GENERIC_NCR5380 is not set
   1.653 +# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
   1.654 +# CONFIG_SCSI_IPS is not set
   1.655 +# CONFIG_SCSI_INITIO is not set
   1.656 +# CONFIG_SCSI_INIA100 is not set
   1.657 +# CONFIG_SCSI_NCR53C406A is not set
   1.658 +# CONFIG_SCSI_STEX is not set
   1.659 +# CONFIG_SCSI_SYM53C8XX_2 is not set
   1.660 +# CONFIG_SCSI_IPR is not set
   1.661 +# CONFIG_SCSI_PAS16 is not set
   1.662 +# CONFIG_SCSI_PSI240I is not set
   1.663 +# CONFIG_SCSI_QLOGIC_FAS is not set
   1.664 +# CONFIG_SCSI_QLOGIC_1280 is not set
   1.665 +# CONFIG_SCSI_QLA_FC is not set
   1.666 +# CONFIG_SCSI_QLA_ISCSI is not set
   1.667 +# CONFIG_SCSI_LPFC is not set
   1.668 +# CONFIG_SCSI_SEAGATE is not set
   1.669 +# CONFIG_SCSI_SYM53C416 is not set
   1.670 +# CONFIG_SCSI_DC395x is not set
   1.671 +# CONFIG_SCSI_DC390T is not set
   1.672 +# CONFIG_SCSI_T128 is not set
   1.673 +# CONFIG_SCSI_U14_34F is not set
   1.674 +# CONFIG_SCSI_ULTRASTOR is not set
   1.675 +# CONFIG_SCSI_NSP32 is not set
   1.676 +# CONFIG_SCSI_DEBUG is not set
   1.677 +# CONFIG_SCSI_SRP is not set
   1.678 +# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
   1.679 +CONFIG_ATA=y
   1.680 +# CONFIG_ATA_NONSTANDARD is not set
   1.681 +CONFIG_SATA_AHCI=y
   1.682 +# CONFIG_SATA_SVW is not set
   1.683 +CONFIG_ATA_PIIX=y
   1.684 +# CONFIG_SATA_MV is not set
   1.685 +CONFIG_SATA_NV=y
   1.686 +# CONFIG_PDC_ADMA is not set
   1.687 +# CONFIG_SATA_QSTOR is not set
   1.688 +# CONFIG_SATA_PROMISE is not set
   1.689 +# CONFIG_SATA_SX4 is not set
   1.690 +# CONFIG_SATA_SIL is not set
   1.691 +# CONFIG_SATA_SIL24 is not set
   1.692 +CONFIG_SATA_SIS=y
   1.693 +# CONFIG_SATA_ULI is not set
   1.694 +CONFIG_SATA_VIA=y
   1.695 +# CONFIG_SATA_VITESSE is not set
   1.696 +# CONFIG_SATA_INIC162X is not set
   1.697 +# CONFIG_PATA_ALI is not set
   1.698 +# CONFIG_PATA_AMD is not set
   1.699 +# CONFIG_PATA_ARTOP is not set
   1.700 +# CONFIG_PATA_ATIIXP is not set
   1.701 +# CONFIG_PATA_CMD640_PCI is not set
   1.702 +# CONFIG_PATA_CMD64X is not set
   1.703 +# CONFIG_PATA_CS5520 is not set
   1.704 +# CONFIG_PATA_CS5530 is not set
   1.705 +# CONFIG_PATA_CS5535 is not set
   1.706 +# CONFIG_PATA_CS5536 is not set
   1.707 +# CONFIG_PATA_CYPRESS is not set
   1.708 +# CONFIG_PATA_EFAR is not set
   1.709 +# CONFIG_ATA_GENERIC is not set
   1.710 +# CONFIG_PATA_HPT366 is not set
   1.711 +# CONFIG_PATA_HPT37X is not set
   1.712 +# CONFIG_PATA_HPT3X2N is not set
   1.713 +# CONFIG_PATA_HPT3X3 is not set
   1.714 +# CONFIG_PATA_ISAPNP is not set
   1.715 +# CONFIG_PATA_IT821X is not set
   1.716 +# CONFIG_PATA_IT8213 is not set
   1.717 +# CONFIG_PATA_JMICRON is not set
   1.718 +# CONFIG_PATA_LEGACY is not set
   1.719 +# CONFIG_PATA_TRIFLEX is not set
   1.720 +# CONFIG_PATA_MARVELL is not set
   1.721 +# CONFIG_PATA_MPIIX is not set
   1.722 +# CONFIG_PATA_OLDPIIX is not set
   1.723 +# CONFIG_PATA_NETCELL is not set
   1.724 +# CONFIG_PATA_NS87410 is not set
   1.725 +# CONFIG_PATA_NS87415 is not set
   1.726 +# CONFIG_PATA_OPTI is not set
   1.727 +# CONFIG_PATA_OPTIDMA is not set
   1.728 +# CONFIG_PATA_PCMCIA is not set
   1.729 +# CONFIG_PATA_PDC_OLD is not set
   1.730 +# CONFIG_PATA_QDI is not set
   1.731 +# CONFIG_PATA_RADISYS is not set
   1.732 +# CONFIG_PATA_RZ1000 is not set
   1.733 +# CONFIG_PATA_SC1200 is not set
   1.734 +# CONFIG_PATA_SERVERWORKS is not set
   1.735 +# CONFIG_PATA_PDC2027X is not set
   1.736 +# CONFIG_PATA_SIL680 is not set
   1.737 +CONFIG_PATA_SIS=y
   1.738 +# CONFIG_PATA_VIA is not set
   1.739 +# CONFIG_PATA_WINBOND is not set
   1.740 +# CONFIG_PATA_WINBOND_VLB is not set
   1.741 +# CONFIG_MD is not set
   1.742 +# CONFIG_FUSION is not set
   1.743 +
   1.744 +#
   1.745 +# IEEE 1394 (FireWire) support
   1.746 +#
   1.747 +# CONFIG_FIREWIRE is not set
   1.748 +# CONFIG_IEEE1394 is not set
   1.749 +# CONFIG_I2O is not set
   1.750 +# CONFIG_MACINTOSH_DRIVERS is not set
   1.751 +CONFIG_NETDEVICES=y
   1.752 +# CONFIG_NETDEVICES_MULTIQUEUE is not set
   1.753 +CONFIG_DUMMY=y
   1.754 +# CONFIG_BONDING is not set
   1.755 +# CONFIG_MACVLAN is not set
   1.756 +# CONFIG_EQUALIZER is not set
   1.757 +# CONFIG_TUN is not set
   1.758 +# CONFIG_VETH is not set
   1.759 +# CONFIG_NET_SB1000 is not set
   1.760 +CONFIG_ARCNET=m
   1.761 +CONFIG_ARCNET_1201=m
   1.762 +# CONFIG_ARCNET_1051 is not set
   1.763 +# CONFIG_ARCNET_RAW is not set
   1.764 +# CONFIG_ARCNET_CAP is not set
   1.765 +CONFIG_ARCNET_COM90xx=m
   1.766 +# CONFIG_ARCNET_COM90xxIO is not set
   1.767 +# CONFIG_ARCNET_RIM_I is not set
   1.768 +# CONFIG_ARCNET_COM20020 is not set
   1.769 +CONFIG_PHYLIB=m
   1.770 +
   1.771 +#
   1.772 +# MII PHY device drivers
   1.773 +#
   1.774 +CONFIG_MARVELL_PHY=m
   1.775 +CONFIG_DAVICOM_PHY=m
   1.776 +CONFIG_QSEMI_PHY=m
   1.777 +CONFIG_LXT_PHY=m
   1.778 +CONFIG_CICADA_PHY=m
   1.779 +# CONFIG_VITESSE_PHY is not set
   1.780 +# CONFIG_SMSC_PHY is not set
   1.781 +CONFIG_BROADCOM_PHY=m
   1.782 +# CONFIG_ICPLUS_PHY is not set
   1.783 +# CONFIG_FIXED_PHY is not set
   1.784 +# CONFIG_MDIO_BITBANG is not set
   1.785 +CONFIG_NET_ETHERNET=y
   1.786 +CONFIG_MII=y
   1.787 +CONFIG_HAPPYMEAL=m
   1.788 +CONFIG_SUNGEM=m
   1.789 +CONFIG_CASSINI=m
   1.790 +CONFIG_NET_VENDOR_3COM=y
   1.791 +CONFIG_EL1=m
   1.792 +CONFIG_EL2=m
   1.793 +CONFIG_ELPLUS=m
   1.794 +# CONFIG_EL16 is not set
   1.795 +CONFIG_EL3=m
   1.796 +CONFIG_3C515=m
   1.797 +CONFIG_VORTEX=m
   1.798 +CONFIG_TYPHOON=m
   1.799 +CONFIG_LANCE=m
   1.800 +CONFIG_NET_VENDOR_SMC=y
   1.801 +CONFIG_WD80x3=m
   1.802 +CONFIG_ULTRA=m
   1.803 +CONFIG_SMC9194=m
   1.804 +CONFIG_NET_VENDOR_RACAL=y
   1.805 +CONFIG_NI52=m
   1.806 +CONFIG_NI65=m
   1.807 +CONFIG_NET_TULIP=y
   1.808 +# CONFIG_DE2104X is not set
   1.809 +CONFIG_TULIP=m
   1.810 +# CONFIG_TULIP_MWI is not set
   1.811 +# CONFIG_TULIP_MMIO is not set
   1.812 +# CONFIG_TULIP_NAPI is not set
   1.813 +CONFIG_DE4X5=y
   1.814 +CONFIG_WINBOND_840=y
   1.815 +CONFIG_DM9102=y
   1.816 +CONFIG_ULI526X=m
   1.817 +CONFIG_PCMCIA_XIRCOM=y
   1.818 +# CONFIG_AT1700 is not set
   1.819 +CONFIG_DEPCA=m
   1.820 +CONFIG_HP100=m
   1.821 +CONFIG_NET_ISA=y
   1.822 +CONFIG_E2100=m
   1.823 +CONFIG_EWRK3=m
   1.824 +CONFIG_EEXPRESS=m
   1.825 +CONFIG_EEXPRESS_PRO=m
   1.826 +CONFIG_HPLAN_PLUS=m
   1.827 +CONFIG_HPLAN=m
   1.828 +CONFIG_LP486E=m
   1.829 +CONFIG_ETH16I=m
   1.830 +CONFIG_NE2000=m
   1.831 +# CONFIG_ZNET is not set
   1.832 +# CONFIG_SEEQ8005 is not set
   1.833 +# CONFIG_IBM_NEW_EMAC_ZMII is not set
   1.834 +# CONFIG_IBM_NEW_EMAC_RGMII is not set
   1.835 +# CONFIG_IBM_NEW_EMAC_TAH is not set
   1.836 +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
   1.837 +CONFIG_NET_PCI=y
   1.838 +CONFIG_PCNET32=y
   1.839 +# CONFIG_PCNET32_NAPI is not set
   1.840 +CONFIG_AMD8111_ETH=m
   1.841 +# CONFIG_AMD8111E_NAPI is not set
   1.842 +CONFIG_ADAPTEC_STARFIRE=m
   1.843 +# CONFIG_ADAPTEC_STARFIRE_NAPI is not set
   1.844 +# CONFIG_AC3200 is not set
   1.845 +CONFIG_APRICOT=m
   1.846 +CONFIG_B44=y
   1.847 +CONFIG_B44_PCI_AUTOSELECT=y
   1.848 +CONFIG_B44_PCICORE_AUTOSELECT=y
   1.849 +CONFIG_B44_PCI=y
   1.850 +CONFIG_FORCEDETH=y
   1.851 +# CONFIG_FORCEDETH_NAPI is not set
   1.852 +CONFIG_CS89x0=m
   1.853 +CONFIG_EEPRO100=y
   1.854 +CONFIG_E100=y
   1.855 +CONFIG_FEALNX=m
   1.856 +CONFIG_NATSEMI=y
   1.857 +CONFIG_NE2K_PCI=y
   1.858 +# CONFIG_8139CP is not set
   1.859 +CONFIG_8139TOO=y
   1.860 +# CONFIG_8139TOO_PIO is not set
   1.861 +CONFIG_8139TOO_TUNE_TWISTER=y
   1.862 +CONFIG_8139TOO_8129=y
   1.863 +# CONFIG_8139_OLD_RX_RESET is not set
   1.864 +CONFIG_SIS900=y
   1.865 +CONFIG_EPIC100=y
   1.866 +CONFIG_SUNDANCE=y
   1.867 +# CONFIG_SUNDANCE_MMIO is not set
   1.868 +CONFIG_TLAN=y
   1.869 +CONFIG_VIA_RHINE=y
   1.870 +CONFIG_VIA_RHINE_MMIO=y
   1.871 +# CONFIG_VIA_RHINE_NAPI is not set
   1.872 +# CONFIG_SC92031 is not set
   1.873 +CONFIG_NETDEV_1000=y
   1.874 +# CONFIG_ACENIC is not set
   1.875 +CONFIG_DL2K=m
   1.876 +CONFIG_E1000=m
   1.877 +# CONFIG_E1000_NAPI is not set
   1.878 +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
   1.879 +# CONFIG_E1000E is not set
   1.880 +# CONFIG_IP1000 is not set
   1.881 +# CONFIG_NS83820 is not set
   1.882 +# CONFIG_HAMACHI is not set
   1.883 +# CONFIG_YELLOWFIN is not set
   1.884 +CONFIG_R8169=y
   1.885 +# CONFIG_R8169_NAPI is not set
   1.886 +CONFIG_SIS190=m
   1.887 +# CONFIG_SKGE is not set
   1.888 +# CONFIG_SKY2 is not set
   1.889 +# CONFIG_SK98LIN is not set
   1.890 +CONFIG_VIA_VELOCITY=m
   1.891 +CONFIG_TIGON3=m
   1.892 +CONFIG_BNX2=m
   1.893 +# CONFIG_QLA3XXX is not set
   1.894 +# CONFIG_ATL1 is not set
   1.895 +# CONFIG_NETDEV_10000 is not set
   1.896 +# CONFIG_TR is not set
   1.897 +
   1.898 +#
   1.899 +# Wireless LAN
   1.900 +#
   1.901 +# CONFIG_WLAN_PRE80211 is not set
   1.902 +# CONFIG_WLAN_80211 is not set
   1.903 +
   1.904 +#
   1.905 +# USB Network Adapters
   1.906 +#
   1.907 +# CONFIG_USB_CATC is not set
   1.908 +# CONFIG_USB_KAWETH is not set
   1.909 +# CONFIG_USB_PEGASUS is not set
   1.910 +# CONFIG_USB_RTL8150 is not set
   1.911 +# CONFIG_USB_USBNET is not set
   1.912 +CONFIG_NET_PCMCIA=y
   1.913 +CONFIG_PCMCIA_3C589=m
   1.914 +CONFIG_PCMCIA_3C574=m
   1.915 +CONFIG_PCMCIA_FMVJ18X=m
   1.916 +CONFIG_PCMCIA_PCNET=m
   1.917 +CONFIG_PCMCIA_NMCLAN=m
   1.918 +CONFIG_PCMCIA_SMC91C92=m
   1.919 +CONFIG_PCMCIA_XIRC2PS=m
   1.920 +CONFIG_PCMCIA_AXNET=m
   1.921 +# CONFIG_WAN is not set
   1.922 +# CONFIG_FDDI is not set
   1.923 +# CONFIG_HIPPI is not set
   1.924 +CONFIG_PPP=y
   1.925 +# CONFIG_PPP_MULTILINK is not set
   1.926 +# CONFIG_PPP_FILTER is not set
   1.927 +CONFIG_PPP_ASYNC=y
   1.928 +# CONFIG_PPP_SYNC_TTY is not set
   1.929 +# CONFIG_PPP_DEFLATE is not set
   1.930 +# CONFIG_PPP_BSDCOMP is not set
   1.931 +# CONFIG_PPP_MPPE is not set
   1.932 +CONFIG_PPPOE=y
   1.933 +# CONFIG_PPPOL2TP is not set
   1.934 +# CONFIG_SLIP is not set
   1.935 +CONFIG_SLHC=y
   1.936 +# CONFIG_NET_FC is not set
   1.937 +# CONFIG_SHAPER is not set
   1.938 +# CONFIG_NETCONSOLE is not set
   1.939 +# CONFIG_NETPOLL is not set
   1.940 +# CONFIG_NET_POLL_CONTROLLER is not set
   1.941 +# CONFIG_ISDN is not set
   1.942 +# CONFIG_PHONE is not set
   1.943 +
   1.944 +#
   1.945 +# Input device support
   1.946 +#
   1.947 +CONFIG_INPUT=y
   1.948 +# CONFIG_INPUT_FF_MEMLESS is not set
   1.949 +# CONFIG_INPUT_POLLDEV is not set
   1.950 +
   1.951 +#
   1.952 +# Userland interfaces
   1.953 +#
   1.954 +CONFIG_INPUT_MOUSEDEV=y
   1.955 +CONFIG_INPUT_MOUSEDEV_PSAUX=y
   1.956 +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
   1.957 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
   1.958 +# CONFIG_INPUT_JOYDEV is not set
   1.959 +CONFIG_INPUT_EVDEV=y
   1.960 +# CONFIG_INPUT_EVBUG is not set
   1.961 +
   1.962 +#
   1.963 +# Input Device Drivers
   1.964 +#
   1.965 +CONFIG_INPUT_KEYBOARD=y
   1.966 +CONFIG_KEYBOARD_ATKBD=y
   1.967 +# CONFIG_KEYBOARD_SUNKBD is not set
   1.968 +# CONFIG_KEYBOARD_LKKBD is not set
   1.969 +# CONFIG_KEYBOARD_XTKBD is not set
   1.970 +# CONFIG_KEYBOARD_NEWTON is not set
   1.971 +# CONFIG_KEYBOARD_STOWAWAY is not set
   1.972 +CONFIG_INPUT_MOUSE=y
   1.973 +CONFIG_MOUSE_PS2=y
   1.974 +CONFIG_MOUSE_PS2_ALPS=y
   1.975 +CONFIG_MOUSE_PS2_LOGIPS2PP=y
   1.976 +CONFIG_MOUSE_PS2_SYNAPTICS=y
   1.977 +CONFIG_MOUSE_PS2_LIFEBOOK=y
   1.978 +CONFIG_MOUSE_PS2_TRACKPOINT=y
   1.979 +# CONFIG_MOUSE_PS2_TOUCHKIT is not set
   1.980 +CONFIG_MOUSE_SERIAL=y
   1.981 +# CONFIG_MOUSE_APPLETOUCH is not set
   1.982 +CONFIG_MOUSE_INPORT=m
   1.983 +# CONFIG_MOUSE_ATIXL is not set
   1.984 +CONFIG_MOUSE_LOGIBM=m
   1.985 +CONFIG_MOUSE_PC110PAD=m
   1.986 +# CONFIG_MOUSE_VSXXXAA is not set
   1.987 +# CONFIG_INPUT_JOYSTICK is not set
   1.988 +# CONFIG_INPUT_TABLET is not set
   1.989 +# CONFIG_INPUT_TOUCHSCREEN is not set
   1.990 +CONFIG_INPUT_MISC=y
   1.991 +CONFIG_INPUT_PCSPKR=y
   1.992 +# CONFIG_INPUT_WISTRON_BTNS is not set
   1.993 +# CONFIG_INPUT_ATI_REMOTE is not set
   1.994 +# CONFIG_INPUT_ATI_REMOTE2 is not set
   1.995 +# CONFIG_INPUT_KEYSPAN_REMOTE is not set
   1.996 +# CONFIG_INPUT_POWERMATE is not set
   1.997 +# CONFIG_INPUT_YEALINK is not set
   1.998 +# CONFIG_INPUT_UINPUT is not set
   1.999 +
  1.1000 +#
  1.1001 +# Hardware I/O ports
  1.1002 +#
  1.1003 +CONFIG_SERIO=y
  1.1004 +CONFIG_SERIO_I8042=y
  1.1005 +CONFIG_SERIO_SERPORT=y
  1.1006 +# CONFIG_SERIO_CT82C710 is not set
  1.1007 +CONFIG_SERIO_PCIPS2=y
  1.1008 +CONFIG_SERIO_LIBPS2=y
  1.1009 +CONFIG_SERIO_RAW=y
  1.1010 +# CONFIG_GAMEPORT is not set
  1.1011 +
  1.1012 +#
  1.1013 +# Character devices
  1.1014 +#
  1.1015 +CONFIG_VT=y
  1.1016 +CONFIG_VT_CONSOLE=y
  1.1017 +CONFIG_HW_CONSOLE=y
  1.1018 +# CONFIG_VT_HW_CONSOLE_BINDING is not set
  1.1019 +# CONFIG_SERIAL_NONSTANDARD is not set
  1.1020 +
  1.1021 +#
  1.1022 +# Serial drivers
  1.1023 +#
  1.1024 +CONFIG_SERIAL_8250=y
  1.1025 +# CONFIG_SERIAL_8250_CONSOLE is not set
  1.1026 +CONFIG_FIX_EARLYCON_MEM=y
  1.1027 +CONFIG_SERIAL_8250_PCI=y
  1.1028 +CONFIG_SERIAL_8250_PNP=y
  1.1029 +# CONFIG_SERIAL_8250_CS is not set
  1.1030 +CONFIG_SERIAL_8250_NR_UARTS=4
  1.1031 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4
  1.1032 +# CONFIG_SERIAL_8250_EXTENDED is not set
  1.1033 +
  1.1034 +#
  1.1035 +# Non-8250 serial port support
  1.1036 +#
  1.1037 +CONFIG_SERIAL_CORE=y
  1.1038 +# CONFIG_SERIAL_JSM is not set
  1.1039 +CONFIG_UNIX98_PTYS=y
  1.1040 +# CONFIG_LEGACY_PTYS is not set
  1.1041 +# CONFIG_IPMI_HANDLER is not set
  1.1042 +CONFIG_HW_RANDOM=y
  1.1043 +CONFIG_HW_RANDOM_INTEL=y
  1.1044 +CONFIG_HW_RANDOM_AMD=y
  1.1045 +CONFIG_HW_RANDOM_GEODE=y
  1.1046 +CONFIG_HW_RANDOM_VIA=y
  1.1047 +CONFIG_NVRAM=y
  1.1048 +CONFIG_RTC=m
  1.1049 +CONFIG_GEN_RTC=m
  1.1050 +# CONFIG_GEN_RTC_X is not set
  1.1051 +# CONFIG_DTLK is not set
  1.1052 +# CONFIG_R3964 is not set
  1.1053 +# CONFIG_APPLICOM is not set
  1.1054 +# CONFIG_SONYPI is not set
  1.1055 +
  1.1056 +#
  1.1057 +# PCMCIA character devices
  1.1058 +#
  1.1059 +# CONFIG_SYNCLINK_CS is not set
  1.1060 +# CONFIG_CARDMAN_4000 is not set
  1.1061 +# CONFIG_CARDMAN_4040 is not set
  1.1062 +# CONFIG_MWAVE is not set
  1.1063 +# CONFIG_PC8736x_GPIO is not set
  1.1064 +# CONFIG_NSC_GPIO is not set
  1.1065 +# CONFIG_CS5535_GPIO is not set
  1.1066 +# CONFIG_RAW_DRIVER is not set
  1.1067 +# CONFIG_HANGCHECK_TIMER is not set
  1.1068 +# CONFIG_TCG_TPM is not set
  1.1069 +# CONFIG_TELCLOCK is not set
  1.1070 +CONFIG_DEVPORT=y
  1.1071 +# CONFIG_I2C is not set
  1.1072 +
  1.1073 +#
  1.1074 +# SPI support
  1.1075 +#
  1.1076 +# CONFIG_SPI is not set
  1.1077 +# CONFIG_SPI_MASTER is not set
  1.1078 +# CONFIG_W1 is not set
  1.1079 +# CONFIG_POWER_SUPPLY is not set
  1.1080 +# CONFIG_HWMON is not set
  1.1081 +# CONFIG_WATCHDOG is not set
  1.1082 +
  1.1083 +#
  1.1084 +# Sonics Silicon Backplane
  1.1085 +#
  1.1086 +CONFIG_SSB_POSSIBLE=y
  1.1087 +CONFIG_SSB=y
  1.1088 +CONFIG_SSB_PCIHOST_POSSIBLE=y
  1.1089 +CONFIG_SSB_PCIHOST=y
  1.1090 +# CONFIG_SSB_DEBUG is not set
  1.1091 +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
  1.1092 +CONFIG_SSB_DRIVER_PCICORE=y
  1.1093 +
  1.1094 +#
  1.1095 +# Multifunction device drivers
  1.1096 +#
  1.1097 +# CONFIG_MFD_SM501 is not set
  1.1098 +
  1.1099 +#
  1.1100 +# Multimedia devices
  1.1101 +#
  1.1102 +# CONFIG_VIDEO_DEV is not set
  1.1103 +# CONFIG_DVB_CORE is not set
  1.1104 +CONFIG_DAB=y
  1.1105 +# CONFIG_USB_DABUSB is not set
  1.1106 +
  1.1107 +#
  1.1108 +# Graphics support
  1.1109 +#
  1.1110 +# CONFIG_AGP is not set
  1.1111 +# CONFIG_DRM is not set
  1.1112 +# CONFIG_VGASTATE is not set
  1.1113 +# CONFIG_VIDEO_OUTPUT_CONTROL is not set
  1.1114 +CONFIG_FB=y
  1.1115 +# CONFIG_FIRMWARE_EDID is not set
  1.1116 +# CONFIG_FB_DDC is not set
  1.1117 +CONFIG_FB_CFB_FILLRECT=y
  1.1118 +CONFIG_FB_CFB_COPYAREA=y
  1.1119 +CONFIG_FB_CFB_IMAGEBLIT=y
  1.1120 +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
  1.1121 +# CONFIG_FB_SYS_FILLRECT is not set
  1.1122 +# CONFIG_FB_SYS_COPYAREA is not set
  1.1123 +# CONFIG_FB_SYS_IMAGEBLIT is not set
  1.1124 +# CONFIG_FB_SYS_FOPS is not set
  1.1125 +CONFIG_FB_DEFERRED_IO=y
  1.1126 +# CONFIG_FB_SVGALIB is not set
  1.1127 +# CONFIG_FB_MACMODES is not set
  1.1128 +# CONFIG_FB_BACKLIGHT is not set
  1.1129 +# CONFIG_FB_MODE_HELPERS is not set
  1.1130 +# CONFIG_FB_TILEBLITTING is not set
  1.1131 +
  1.1132 +#
  1.1133 +# Frame buffer hardware drivers
  1.1134 +#
  1.1135 +# CONFIG_FB_CIRRUS is not set
  1.1136 +# CONFIG_FB_PM2 is not set
  1.1137 +# CONFIG_FB_CYBER2000 is not set
  1.1138 +# CONFIG_FB_ARC is not set
  1.1139 +# CONFIG_FB_ASILIANT is not set
  1.1140 +# CONFIG_FB_IMSTT is not set
  1.1141 +# CONFIG_FB_VGA16 is not set
  1.1142 +CONFIG_FB_VESA=y
  1.1143 +# CONFIG_FB_EFI is not set
  1.1144 +# CONFIG_FB_HECUBA is not set
  1.1145 +# CONFIG_FB_HGA is not set
  1.1146 +# CONFIG_FB_S1D13XXX is not set
  1.1147 +# CONFIG_FB_NVIDIA is not set
  1.1148 +# CONFIG_FB_RIVA is not set
  1.1149 +# CONFIG_FB_I810 is not set
  1.1150 +# CONFIG_FB_LE80578 is not set
  1.1151 +# CONFIG_FB_INTEL is not set
  1.1152 +# CONFIG_FB_MATROX is not set
  1.1153 +# CONFIG_FB_RADEON is not set
  1.1154 +# CONFIG_FB_ATY128 is not set
  1.1155 +# CONFIG_FB_ATY is not set
  1.1156 +# CONFIG_FB_S3 is not set
  1.1157 +# CONFIG_FB_SAVAGE is not set
  1.1158 +# CONFIG_FB_SIS is not set
  1.1159 +# CONFIG_FB_NEOMAGIC is not set
  1.1160 +# CONFIG_FB_KYRO is not set
  1.1161 +# CONFIG_FB_3DFX is not set
  1.1162 +# CONFIG_FB_VOODOO1 is not set
  1.1163 +# CONFIG_FB_VT8623 is not set
  1.1164 +# CONFIG_FB_CYBLA is not set
  1.1165 +# CONFIG_FB_TRIDENT is not set
  1.1166 +# CONFIG_FB_ARK is not set
  1.1167 +# CONFIG_FB_PM3 is not set
  1.1168 +# CONFIG_FB_GEODE is not set
  1.1169 +# CONFIG_FB_VIRTUAL is not set
  1.1170 +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
  1.1171 +
  1.1172 +#
  1.1173 +# Display device support
  1.1174 +#
  1.1175 +# CONFIG_DISPLAY_SUPPORT is not set
  1.1176 +
  1.1177 +#
  1.1178 +# Console display driver support
  1.1179 +#
  1.1180 +CONFIG_VGA_CONSOLE=y
  1.1181 +# CONFIG_VGACON_SOFT_SCROLLBACK is not set
  1.1182 +CONFIG_VIDEO_SELECT=y
  1.1183 +# CONFIG_MDA_CONSOLE is not set
  1.1184 +CONFIG_DUMMY_CONSOLE=y
  1.1185 +CONFIG_FRAMEBUFFER_CONSOLE=y
  1.1186 +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
  1.1187 +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
  1.1188 +# CONFIG_FONTS is not set
  1.1189 +CONFIG_FONT_8x8=y
  1.1190 +CONFIG_FONT_8x16=y
  1.1191 +CONFIG_LOGO=y
  1.1192 +CONFIG_LOGO_LINUX_MONO=y
  1.1193 +CONFIG_LOGO_LINUX_VGA16=y
  1.1194 +CONFIG_LOGO_LINUX_CLUT224=y
  1.1195 +
  1.1196 +#
  1.1197 +# Sound
  1.1198 +#
  1.1199 +CONFIG_SOUND=m
  1.1200 +
  1.1201 +#
  1.1202 +# Advanced Linux Sound Architecture
  1.1203 +#
  1.1204 +CONFIG_SND=m
  1.1205 +CONFIG_SND_TIMER=m
  1.1206 +CONFIG_SND_PCM=m
  1.1207 +CONFIG_SND_HWDEP=m
  1.1208 +CONFIG_SND_RAWMIDI=m
  1.1209 +CONFIG_SND_SEQUENCER=m
  1.1210 +# CONFIG_SND_SEQ_DUMMY is not set
  1.1211 +CONFIG_SND_OSSEMUL=y
  1.1212 +CONFIG_SND_MIXER_OSS=m
  1.1213 +CONFIG_SND_PCM_OSS=m
  1.1214 +CONFIG_SND_PCM_OSS_PLUGINS=y
  1.1215 +CONFIG_SND_SEQUENCER_OSS=y
  1.1216 +CONFIG_SND_RTCTIMER=m
  1.1217 +CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
  1.1218 +# CONFIG_SND_DYNAMIC_MINORS is not set
  1.1219 +CONFIG_SND_SUPPORT_OLD_API=y
  1.1220 +# CONFIG_SND_VERBOSE_PROCFS is not set
  1.1221 +# CONFIG_SND_VERBOSE_PRINTK is not set
  1.1222 +# CONFIG_SND_DEBUG is not set
  1.1223 +
  1.1224 +#
  1.1225 +# Generic devices
  1.1226 +#
  1.1227 +CONFIG_SND_MPU401_UART=m
  1.1228 +CONFIG_SND_OPL3_LIB=m
  1.1229 +CONFIG_SND_OPL4_LIB=m
  1.1230 +CONFIG_SND_VX_LIB=m
  1.1231 +CONFIG_SND_AC97_CODEC=m
  1.1232 +# CONFIG_SND_DUMMY is not set
  1.1233 +# CONFIG_SND_VIRMIDI is not set
  1.1234 +# CONFIG_SND_MTPAV is not set
  1.1235 +# CONFIG_SND_SERIAL_U16550 is not set
  1.1236 +# CONFIG_SND_MPU401 is not set
  1.1237 +CONFIG_SND_AD1848_LIB=m
  1.1238 +CONFIG_SND_CS4231_LIB=m
  1.1239 +CONFIG_SND_SB_COMMON=m
  1.1240 +CONFIG_SND_SB8_DSP=m
  1.1241 +CONFIG_SND_SB16_DSP=m
  1.1242 +
  1.1243 +#
  1.1244 +# ISA devices
  1.1245 +#
  1.1246 +CONFIG_SND_ADLIB=m
  1.1247 +CONFIG_SND_AD1816A=m
  1.1248 +CONFIG_SND_AD1848=m
  1.1249 +CONFIG_SND_ALS100=m
  1.1250 +CONFIG_SND_AZT2320=m
  1.1251 +CONFIG_SND_CMI8330=m
  1.1252 +CONFIG_SND_CS4231=m
  1.1253 +CONFIG_SND_CS4232=m
  1.1254 +CONFIG_SND_CS4236=m
  1.1255 +CONFIG_SND_DT019X=m
  1.1256 +CONFIG_SND_ES968=m
  1.1257 +CONFIG_SND_ES1688=m
  1.1258 +CONFIG_SND_ES18XX=m
  1.1259 +# CONFIG_SND_SC6000 is not set
  1.1260 +CONFIG_SND_GUS_SYNTH=m
  1.1261 +CONFIG_SND_GUSCLASSIC=m
  1.1262 +CONFIG_SND_GUSEXTREME=m
  1.1263 +CONFIG_SND_GUSMAX=m
  1.1264 +CONFIG_SND_INTERWAVE=m
  1.1265 +CONFIG_SND_INTERWAVE_STB=m
  1.1266 +CONFIG_SND_OPL3SA2=m
  1.1267 +CONFIG_SND_OPTI92X_AD1848=m
  1.1268 +CONFIG_SND_OPTI92X_CS4231=m
  1.1269 +CONFIG_SND_OPTI93X=m
  1.1270 +CONFIG_SND_MIRO=m
  1.1271 +CONFIG_SND_SB8=m
  1.1272 +CONFIG_SND_SB16=m
  1.1273 +CONFIG_SND_SBAWE=m
  1.1274 +# CONFIG_SND_SB16_CSP is not set
  1.1275 +CONFIG_SND_SGALAXY=m
  1.1276 +CONFIG_SND_SSCAPE=m
  1.1277 +CONFIG_SND_WAVEFRONT=m
  1.1278 +CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL=y
  1.1279 +
  1.1280 +#
  1.1281 +# PCI devices
  1.1282 +#
  1.1283 +CONFIG_SND_AD1889=m
  1.1284 +CONFIG_SND_ALS300=m
  1.1285 +CONFIG_SND_ALS4000=m
  1.1286 +CONFIG_SND_ALI5451=m
  1.1287 +CONFIG_SND_ATIIXP=m
  1.1288 +CONFIG_SND_ATIIXP_MODEM=m
  1.1289 +CONFIG_SND_AU8810=m
  1.1290 +CONFIG_SND_AU8820=m
  1.1291 +CONFIG_SND_AU8830=m
  1.1292 +CONFIG_SND_AZT3328=m
  1.1293 +CONFIG_SND_BT87X=m
  1.1294 +# CONFIG_SND_BT87X_OVERCLOCK is not set
  1.1295 +CONFIG_SND_CA0106=m
  1.1296 +CONFIG_SND_CMIPCI=m
  1.1297 +CONFIG_SND_CS4281=m
  1.1298 +CONFIG_SND_CS46XX=m
  1.1299 +CONFIG_SND_CS46XX_NEW_DSP=y
  1.1300 +# CONFIG_SND_CS5530 is not set
  1.1301 +CONFIG_SND_CS5535AUDIO=m
  1.1302 +CONFIG_SND_DARLA20=m
  1.1303 +CONFIG_SND_GINA20=m
  1.1304 +CONFIG_SND_LAYLA20=m
  1.1305 +CONFIG_SND_DARLA24=m
  1.1306 +CONFIG_SND_GINA24=m
  1.1307 +CONFIG_SND_LAYLA24=m
  1.1308 +CONFIG_SND_MONA=m
  1.1309 +CONFIG_SND_MIA=m
  1.1310 +CONFIG_SND_ECHO3G=m
  1.1311 +CONFIG_SND_INDIGO=m
  1.1312 +CONFIG_SND_INDIGOIO=m
  1.1313 +CONFIG_SND_INDIGODJ=m
  1.1314 +CONFIG_SND_EMU10K1=m
  1.1315 +CONFIG_SND_EMU10K1X=m
  1.1316 +CONFIG_SND_ENS1370=m
  1.1317 +CONFIG_SND_ENS1371=m
  1.1318 +CONFIG_SND_ES1938=m
  1.1319 +CONFIG_SND_ES1968=m
  1.1320 +CONFIG_SND_FM801=m
  1.1321 +# CONFIG_SND_FM801_TEA575X_BOOL is not set
  1.1322 +CONFIG_SND_HDA_INTEL=m
  1.1323 +# CONFIG_SND_HDA_HWDEP is not set
  1.1324 +CONFIG_SND_HDA_CODEC_REALTEK=y
  1.1325 +CONFIG_SND_HDA_CODEC_ANALOG=y
  1.1326 +CONFIG_SND_HDA_CODEC_SIGMATEL=y
  1.1327 +CONFIG_SND_HDA_CODEC_VIA=y
  1.1328 +CONFIG_SND_HDA_CODEC_ATIHDMI=y
  1.1329 +CONFIG_SND_HDA_CODEC_CONEXANT=y
  1.1330 +CONFIG_SND_HDA_CODEC_CMEDIA=y
  1.1331 +CONFIG_SND_HDA_CODEC_SI3054=y
  1.1332 +CONFIG_SND_HDA_GENERIC=y
  1.1333 +# CONFIG_SND_HDA_POWER_SAVE is not set
  1.1334 +CONFIG_SND_HDSP=m
  1.1335 +CONFIG_SND_HDSPM=m
  1.1336 +CONFIG_SND_ICE1712=m
  1.1337 +CONFIG_SND_ICE1724=m
  1.1338 +CONFIG_SND_INTEL8X0=m
  1.1339 +CONFIG_SND_INTEL8X0M=m
  1.1340 +CONFIG_SND_KORG1212=m
  1.1341 +CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL=y
  1.1342 +CONFIG_SND_MAESTRO3=m
  1.1343 +CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL=y
  1.1344 +CONFIG_SND_MIXART=m
  1.1345 +CONFIG_SND_NM256=m
  1.1346 +CONFIG_SND_PCXHR=m
  1.1347 +CONFIG_SND_RIPTIDE=m
  1.1348 +CONFIG_SND_RME32=m
  1.1349 +CONFIG_SND_RME96=m
  1.1350 +CONFIG_SND_RME9652=m
  1.1351 +CONFIG_SND_SONICVIBES=m
  1.1352 +CONFIG_SND_TRIDENT=m
  1.1353 +CONFIG_SND_VIA82XX=m
  1.1354 +CONFIG_SND_VIA82XX_MODEM=m
  1.1355 +CONFIG_SND_VX222=m
  1.1356 +CONFIG_SND_YMFPCI=m
  1.1357 +CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y
  1.1358 +# CONFIG_SND_AC97_POWER_SAVE is not set
  1.1359 +
  1.1360 +#
  1.1361 +# USB devices
  1.1362 +#
  1.1363 +# CONFIG_SND_USB_AUDIO is not set
  1.1364 +# CONFIG_SND_USB_USX2Y is not set
  1.1365 +# CONFIG_SND_USB_CAIAQ is not set
  1.1366 +
  1.1367 +#
  1.1368 +# PCMCIA devices
  1.1369 +#
  1.1370 +# CONFIG_SND_VXPOCKET is not set
  1.1371 +# CONFIG_SND_PDAUDIOCF is not set
  1.1372 +
  1.1373 +#
  1.1374 +# System on Chip audio support
  1.1375 +#
  1.1376 +# CONFIG_SND_SOC is not set
  1.1377 +
  1.1378 +#
  1.1379 +# SoC Audio support for SuperH
  1.1380 +#
  1.1381 +
  1.1382 +#
  1.1383 +# Open Sound System
  1.1384 +#
  1.1385 +# CONFIG_SOUND_PRIME is not set
  1.1386 +CONFIG_AC97_BUS=m
  1.1387 +CONFIG_HID_SUPPORT=y
  1.1388 +CONFIG_HID=y
  1.1389 +# CONFIG_HID_DEBUG is not set
  1.1390 +# CONFIG_HIDRAW is not set
  1.1391 +
  1.1392 +#
  1.1393 +# USB Input Devices
  1.1394 +#
  1.1395 +CONFIG_USB_HID=y
  1.1396 +# CONFIG_USB_HIDINPUT_POWERBOOK is not set
  1.1397 +# CONFIG_HID_FF is not set
  1.1398 +CONFIG_USB_HIDDEV=y
  1.1399 +CONFIG_USB_SUPPORT=y
  1.1400 +CONFIG_USB_ARCH_HAS_HCD=y
  1.1401 +CONFIG_USB_ARCH_HAS_OHCI=y
  1.1402 +CONFIG_USB_ARCH_HAS_EHCI=y
  1.1403 +CONFIG_USB=y
  1.1404 +# CONFIG_USB_DEBUG is not set
  1.1405 +
  1.1406 +#
  1.1407 +# Miscellaneous USB options
  1.1408 +#
  1.1409 +CONFIG_USB_DEVICEFS=y
  1.1410 +CONFIG_USB_DEVICE_CLASS=y
  1.1411 +# CONFIG_USB_DYNAMIC_MINORS is not set
  1.1412 +# CONFIG_USB_OTG is not set
  1.1413 +
  1.1414 +#
  1.1415 +# USB Host Controller Drivers
  1.1416 +#
  1.1417 +CONFIG_USB_EHCI_HCD=y
  1.1418 +# CONFIG_USB_EHCI_SPLIT_ISO is not set
  1.1419 +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
  1.1420 +# CONFIG_USB_EHCI_TT_NEWSCHED is not set
  1.1421 +# CONFIG_USB_ISP116X_HCD is not set
  1.1422 +CONFIG_USB_OHCI_HCD=m
  1.1423 +# CONFIG_USB_OHCI_HCD_SSB is not set
  1.1424 +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
  1.1425 +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
  1.1426 +CONFIG_USB_OHCI_LITTLE_ENDIAN=y
  1.1427 +CONFIG_USB_UHCI_HCD=y
  1.1428 +# CONFIG_USB_SL811_HCD is not set
  1.1429 +# CONFIG_USB_R8A66597_HCD is not set
  1.1430 +
  1.1431 +#
  1.1432 +# USB Device Class drivers
  1.1433 +#
  1.1434 +# CONFIG_USB_ACM is not set
  1.1435 +# CONFIG_USB_PRINTER is not set
  1.1436 +
  1.1437 +#
  1.1438 +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
  1.1439 +#
  1.1440 +
  1.1441 +#
  1.1442 +# may also be needed; see USB_STORAGE Help for more information
  1.1443 +#
  1.1444 +CONFIG_USB_STORAGE=y
  1.1445 +# CONFIG_USB_STORAGE_DEBUG is not set
  1.1446 +# CONFIG_USB_STORAGE_DATAFAB is not set
  1.1447 +# CONFIG_USB_STORAGE_FREECOM is not set
  1.1448 +# CONFIG_USB_STORAGE_ISD200 is not set
  1.1449 +# CONFIG_USB_STORAGE_DPCM is not set
  1.1450 +# CONFIG_USB_STORAGE_USBAT is not set
  1.1451 +# CONFIG_USB_STORAGE_SDDR09 is not set
  1.1452 +# CONFIG_USB_STORAGE_SDDR55 is not set
  1.1453 +# CONFIG_USB_STORAGE_JUMPSHOT is not set
  1.1454 +# CONFIG_USB_STORAGE_ALAUDA is not set
  1.1455 +# CONFIG_USB_STORAGE_ONETOUCH is not set
  1.1456 +# CONFIG_USB_STORAGE_KARMA is not set
  1.1457 +# CONFIG_USB_LIBUSUAL is not set
  1.1458 +
  1.1459 +#
  1.1460 +# USB Imaging devices
  1.1461 +#
  1.1462 +# CONFIG_USB_MDC800 is not set
  1.1463 +# CONFIG_USB_MICROTEK is not set
  1.1464 +# CONFIG_USB_MON is not set
  1.1465 +
  1.1466 +#
  1.1467 +# USB port drivers
  1.1468 +#
  1.1469 +
  1.1470 +#
  1.1471 +# USB Serial Converter support
  1.1472 +#
  1.1473 +# CONFIG_USB_SERIAL is not set
  1.1474 +
  1.1475 +#
  1.1476 +# USB Miscellaneous drivers
  1.1477 +#
  1.1478 +# CONFIG_USB_EMI62 is not set
  1.1479 +# CONFIG_USB_EMI26 is not set
  1.1480 +# CONFIG_USB_ADUTUX is not set
  1.1481 +# CONFIG_USB_AUERSWALD is not set
  1.1482 +# CONFIG_USB_RIO500 is not set
  1.1483 +# CONFIG_USB_LEGOTOWER is not set
  1.1484 +# CONFIG_USB_LCD is not set
  1.1485 +# CONFIG_USB_BERRY_CHARGE is not set
  1.1486 +# CONFIG_USB_LED is not set
  1.1487 +# CONFIG_USB_CYPRESS_CY7C63 is not set
  1.1488 +# CONFIG_USB_CYTHERM is not set
  1.1489 +# CONFIG_USB_PHIDGET is not set
  1.1490 +# CONFIG_USB_IDMOUSE is not set
  1.1491 +# CONFIG_USB_FTDI_ELAN is not set
  1.1492 +# CONFIG_USB_APPLEDISPLAY is not set
  1.1493 +# CONFIG_USB_SISUSBVGA is not set
  1.1494 +# CONFIG_USB_LD is not set
  1.1495 +# CONFIG_USB_TRANCEVIBRATOR is not set
  1.1496 +# CONFIG_USB_IOWARRIOR is not set
  1.1497 +# CONFIG_USB_TEST is not set
  1.1498 +
  1.1499 +#
  1.1500 +# USB DSL modem support
  1.1501 +#
  1.1502 +
  1.1503 +#
  1.1504 +# USB Gadget Support
  1.1505 +#
  1.1506 +# CONFIG_USB_GADGET is not set
  1.1507 +# CONFIG_MMC is not set
  1.1508 +# CONFIG_NEW_LEDS is not set
  1.1509 +# CONFIG_INFINIBAND is not set
  1.1510 +# CONFIG_EDAC is not set
  1.1511 +# CONFIG_RTC_CLASS is not set
  1.1512 +# CONFIG_DMADEVICES is not set
  1.1513 +CONFIG_VIRTUALIZATION=y
  1.1514 +# CONFIG_KVM is not set
  1.1515 +# CONFIG_LGUEST is not set
  1.1516 +
  1.1517 +#
  1.1518 +# Userspace I/O
  1.1519 +#
  1.1520 +# CONFIG_UIO is not set
  1.1521 +
  1.1522 +#
  1.1523 +# Firmware Drivers
  1.1524 +#
  1.1525 +# CONFIG_EDD is not set
  1.1526 +# CONFIG_DELL_RBU is not set
  1.1527 +# CONFIG_DCDBAS is not set
  1.1528 +CONFIG_DMIID=y
  1.1529 +
  1.1530 +#
  1.1531 +# File systems
  1.1532 +#
  1.1533 +CONFIG_EXT2_FS=y
  1.1534 +# CONFIG_EXT2_FS_XATTR is not set
  1.1535 +# CONFIG_EXT2_FS_XIP is not set
  1.1536 +CONFIG_EXT3_FS=y
  1.1537 +# CONFIG_EXT3_FS_XATTR is not set
  1.1538 +# CONFIG_EXT4DEV_FS is not set
  1.1539 +CONFIG_JBD=y
  1.1540 +# CONFIG_REISERFS_FS is not set
  1.1541 +# CONFIG_JFS_FS is not set
  1.1542 +# CONFIG_FS_POSIX_ACL is not set
  1.1543 +# CONFIG_XFS_FS is not set
  1.1544 +# CONFIG_GFS2_FS is not set
  1.1545 +# CONFIG_OCFS2_FS is not set
  1.1546 +# CONFIG_MINIX_FS is not set
  1.1547 +# CONFIG_ROMFS_FS is not set
  1.1548 +CONFIG_INOTIFY=y
  1.1549 +CONFIG_INOTIFY_USER=y
  1.1550 +# CONFIG_QUOTA is not set
  1.1551 +CONFIG_DNOTIFY=y
  1.1552 +# CONFIG_AUTOFS_FS is not set
  1.1553 +# CONFIG_AUTOFS4_FS is not set
  1.1554 +CONFIG_FUSE_FS=y
  1.1555 +
  1.1556 +#
  1.1557 +# CD-ROM/DVD Filesystems
  1.1558 +#
  1.1559 +CONFIG_ISO9660_FS=y
  1.1560 +CONFIG_JOLIET=y
  1.1561 +# CONFIG_ZISOFS is not set
  1.1562 +# CONFIG_UDF_FS is not set
  1.1563 +
  1.1564 +#
  1.1565 +# DOS/FAT/NT Filesystems
  1.1566 +#
  1.1567 +CONFIG_FAT_FS=m
  1.1568 +CONFIG_MSDOS_FS=m
  1.1569 +CONFIG_VFAT_FS=m
  1.1570 +CONFIG_FAT_DEFAULT_CODEPAGE=437
  1.1571 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
  1.1572 +# CONFIG_NTFS_FS is not set
  1.1573 +
  1.1574 +#
  1.1575 +# Pseudo filesystems
  1.1576 +#
  1.1577 +CONFIG_PROC_FS=y
  1.1578 +CONFIG_PROC_KCORE=y
  1.1579 +CONFIG_PROC_SYSCTL=y
  1.1580 +CONFIG_SYSFS=y
  1.1581 +CONFIG_TMPFS=y
  1.1582 +# CONFIG_TMPFS_POSIX_ACL is not set
  1.1583 +# CONFIG_HUGETLBFS is not set
  1.1584 +# CONFIG_HUGETLB_PAGE is not set
  1.1585 +# CONFIG_CONFIGFS_FS is not set
  1.1586 +
  1.1587 +#
  1.1588 +# Miscellaneous filesystems
  1.1589 +#
  1.1590 +# CONFIG_ADFS_FS is not set
  1.1591 +# CONFIG_AFFS_FS is not set
  1.1592 +# CONFIG_HFS_FS is not set
  1.1593 +# CONFIG_HFSPLUS_FS is not set
  1.1594 +# CONFIG_BEFS_FS is not set
  1.1595 +# CONFIG_BFS_FS is not set
  1.1596 +# CONFIG_EFS_FS is not set
  1.1597 +CONFIG_CRAMFS=y
  1.1598 +# CONFIG_VXFS_FS is not set
  1.1599 +# CONFIG_HPFS_FS is not set
  1.1600 +# CONFIG_QNX4FS_FS is not set
  1.1601 +# CONFIG_SYSV_FS is not set
  1.1602 +# CONFIG_UFS_FS is not set
  1.1603 +CONFIG_NETWORK_FILESYSTEMS=y
  1.1604 +CONFIG_NFS_FS=y
  1.1605 +CONFIG_NFS_V3=y
  1.1606 +# CONFIG_NFS_V3_ACL is not set
  1.1607 +# CONFIG_NFS_V4 is not set
  1.1608 +# CONFIG_NFS_DIRECTIO is not set
  1.1609 +# CONFIG_NFSD is not set
  1.1610 +CONFIG_LOCKD=y
  1.1611 +CONFIG_LOCKD_V4=y
  1.1612 +CONFIG_NFS_COMMON=y
  1.1613 +CONFIG_SUNRPC=y
  1.1614 +# CONFIG_SUNRPC_BIND34 is not set
  1.1615 +# CONFIG_RPCSEC_GSS_KRB5 is not set
  1.1616 +# CONFIG_RPCSEC_GSS_SPKM3 is not set
  1.1617 +# CONFIG_SMB_FS is not set
  1.1618 +# CONFIG_CIFS is not set
  1.1619 +# CONFIG_NCP_FS is not set
  1.1620 +# CONFIG_CODA_FS is not set
  1.1621 +# CONFIG_AFS_FS is not set
  1.1622 +
  1.1623 +#
  1.1624 +# Partition Types
  1.1625 +#
  1.1626 +CONFIG_PARTITION_ADVANCED=y
  1.1627 +# CONFIG_ACORN_PARTITION is not set
  1.1628 +# CONFIG_OSF_PARTITION is not set
  1.1629 +# CONFIG_AMIGA_PARTITION is not set
  1.1630 +# CONFIG_ATARI_PARTITION is not set
  1.1631 +# CONFIG_MAC_PARTITION is not set
  1.1632 +CONFIG_MSDOS_PARTITION=y
  1.1633 +# CONFIG_BSD_DISKLABEL is not set
  1.1634 +# CONFIG_MINIX_SUBPARTITION is not set
  1.1635 +# CONFIG_SOLARIS_X86_PARTITION is not set
  1.1636 +# CONFIG_UNIXWARE_DISKLABEL is not set
  1.1637 +# CONFIG_LDM_PARTITION is not set
  1.1638 +# CONFIG_SGI_PARTITION is not set
  1.1639 +# CONFIG_ULTRIX_PARTITION is not set
  1.1640 +# CONFIG_SUN_PARTITION is not set
  1.1641 +# CONFIG_KARMA_PARTITION is not set
  1.1642 +# CONFIG_EFI_PARTITION is not set
  1.1643 +# CONFIG_SYSV68_PARTITION is not set
  1.1644 +CONFIG_NLS=y
  1.1645 +CONFIG_NLS_DEFAULT="iso8859-1"
  1.1646 +CONFIG_NLS_CODEPAGE_437=y
  1.1647 +# CONFIG_NLS_CODEPAGE_737 is not set
  1.1648 +# CONFIG_NLS_CODEPAGE_775 is not set
  1.1649 +CONFIG_NLS_CODEPAGE_850=y
  1.1650 +CONFIG_NLS_CODEPAGE_852=y
  1.1651 +# CONFIG_NLS_CODEPAGE_855 is not set
  1.1652 +# CONFIG_NLS_CODEPAGE_857 is not set
  1.1653 +# CONFIG_NLS_CODEPAGE_860 is not set
  1.1654 +# CONFIG_NLS_CODEPAGE_861 is not set
  1.1655 +# CONFIG_NLS_CODEPAGE_862 is not set
  1.1656 +CONFIG_NLS_CODEPAGE_863=y
  1.1657 +# CONFIG_NLS_CODEPAGE_864 is not set
  1.1658 +CONFIG_NLS_CODEPAGE_865=y
  1.1659 +# CONFIG_NLS_CODEPAGE_866 is not set
  1.1660 +# CONFIG_NLS_CODEPAGE_869 is not set
  1.1661 +# CONFIG_NLS_CODEPAGE_936 is not set
  1.1662 +# CONFIG_NLS_CODEPAGE_950 is not set
  1.1663 +# CONFIG_NLS_CODEPAGE_932 is not set
  1.1664 +# CONFIG_NLS_CODEPAGE_949 is not set
  1.1665 +# CONFIG_NLS_CODEPAGE_874 is not set
  1.1666 +# CONFIG_NLS_ISO8859_8 is not set
  1.1667 +# CONFIG_NLS_CODEPAGE_1250 is not set
  1.1668 +# CONFIG_NLS_CODEPAGE_1251 is not set
  1.1669 +CONFIG_NLS_ASCII=y
  1.1670 +CONFIG_NLS_ISO8859_1=y
  1.1671 +CONFIG_NLS_ISO8859_2=y
  1.1672 +# CONFIG_NLS_ISO8859_3 is not set
  1.1673 +# CONFIG_NLS_ISO8859_4 is not set
  1.1674 +# CONFIG_NLS_ISO8859_5 is not set
  1.1675 +# CONFIG_NLS_ISO8859_6 is not set
  1.1676 +# CONFIG_NLS_ISO8859_7 is not set
  1.1677 +# CONFIG_NLS_ISO8859_9 is not set
  1.1678 +# CONFIG_NLS_ISO8859_13 is not set
  1.1679 +# CONFIG_NLS_ISO8859_14 is not set
  1.1680 +CONFIG_NLS_ISO8859_15=y
  1.1681 +# CONFIG_NLS_KOI8_R is not set
  1.1682 +# CONFIG_NLS_KOI8_U is not set
  1.1683 +CONFIG_NLS_UTF8=m
  1.1684 +# CONFIG_DLM is not set
  1.1685 +CONFIG_INSTRUMENTATION=y
  1.1686 +# CONFIG_PROFILING is not set
  1.1687 +# CONFIG_KPROBES is not set
  1.1688 +# CONFIG_MARKERS is not set
  1.1689 +
  1.1690 +#
  1.1691 +# Kernel hacking
  1.1692 +#
  1.1693 +CONFIG_TRACE_IRQFLAGS_SUPPORT=y
  1.1694 +# CONFIG_PRINTK_TIME is not set
  1.1695 +CONFIG_ENABLE_WARN_DEPRECATED=y
  1.1696 +CONFIG_ENABLE_MUST_CHECK=y
  1.1697 +# CONFIG_MAGIC_SYSRQ is not set
  1.1698 +CONFIG_UNUSED_SYMBOLS=y
  1.1699 +# CONFIG_DEBUG_FS is not set
  1.1700 +# CONFIG_HEADERS_CHECK is not set
  1.1701 +# CONFIG_DEBUG_KERNEL is not set
  1.1702 +CONFIG_DEBUG_BUGVERBOSE=y
  1.1703 +# CONFIG_SAMPLES is not set
  1.1704 +CONFIG_EARLY_PRINTK=y
  1.1705 +CONFIG_X86_FIND_SMP_CONFIG=y
  1.1706 +CONFIG_X86_MPPARSE=y
  1.1707 +CONFIG_DOUBLEFAULT=y
  1.1708 +
  1.1709 +#
  1.1710 +# Security options
  1.1711 +#
  1.1712 +# CONFIG_KEYS is not set
  1.1713 +# CONFIG_SECURITY is not set
  1.1714 +# CONFIG_SECURITY_FILE_CAPABILITIES is not set
  1.1715 +CONFIG_CRYPTO=y
  1.1716 +CONFIG_CRYPTO_ALGAPI=y
  1.1717 +CONFIG_CRYPTO_BLKCIPHER=y
  1.1718 +CONFIG_CRYPTO_HASH=y
  1.1719 +CONFIG_CRYPTO_MANAGER=y
  1.1720 +CONFIG_CRYPTO_HMAC=y
  1.1721 +# CONFIG_CRYPTO_XCBC is not set
  1.1722 +# CONFIG_CRYPTO_NULL is not set
  1.1723 +# CONFIG_CRYPTO_MD4 is not set
  1.1724 +CONFIG_CRYPTO_MD5=y
  1.1725 +CONFIG_CRYPTO_SHA1=y
  1.1726 +# CONFIG_CRYPTO_SHA256 is not set
  1.1727 +# CONFIG_CRYPTO_SHA512 is not set
  1.1728 +# CONFIG_CRYPTO_WP512 is not set
  1.1729 +# CONFIG_CRYPTO_TGR192 is not set
  1.1730 +# CONFIG_CRYPTO_GF128MUL is not set
  1.1731 +# CONFIG_CRYPTO_ECB is not set
  1.1732 +CONFIG_CRYPTO_CBC=y
  1.1733 +CONFIG_CRYPTO_PCBC=m
  1.1734 +# CONFIG_CRYPTO_LRW is not set
  1.1735 +# CONFIG_CRYPTO_XTS is not set
  1.1736 +# CONFIG_CRYPTO_CRYPTD is not set
  1.1737 +CONFIG_CRYPTO_DES=y
  1.1738 +# CONFIG_CRYPTO_FCRYPT is not set
  1.1739 +# CONFIG_CRYPTO_BLOWFISH is not set
  1.1740 +# CONFIG_CRYPTO_TWOFISH is not set
  1.1741 +# CONFIG_CRYPTO_TWOFISH_586 is not set
  1.1742 +# CONFIG_CRYPTO_SERPENT is not set
  1.1743 +# CONFIG_CRYPTO_AES is not set
  1.1744 +# CONFIG_CRYPTO_AES_586 is not set
  1.1745 +# CONFIG_CRYPTO_CAST5 is not set
  1.1746 +# CONFIG_CRYPTO_CAST6 is not set
  1.1747 +# CONFIG_CRYPTO_TEA is not set
  1.1748 +# CONFIG_CRYPTO_ARC4 is not set
  1.1749 +# CONFIG_CRYPTO_KHAZAD is not set
  1.1750 +# CONFIG_CRYPTO_ANUBIS is not set
  1.1751 +# CONFIG_CRYPTO_SEED is not set
  1.1752 +CONFIG_CRYPTO_DEFLATE=y
  1.1753 +# CONFIG_CRYPTO_MICHAEL_MIC is not set
  1.1754 +# CONFIG_CRYPTO_CRC32C is not set
  1.1755 +# CONFIG_CRYPTO_CAMELLIA is not set
  1.1756 +# CONFIG_CRYPTO_TEST is not set
  1.1757 +# CONFIG_CRYPTO_AUTHENC is not set
  1.1758 +CONFIG_CRYPTO_HW=y
  1.1759 +# CONFIG_CRYPTO_DEV_PADLOCK is not set
  1.1760 +# CONFIG_CRYPTO_DEV_GEODE is not set
  1.1761 +
  1.1762 +#
  1.1763 +# Library routines
  1.1764 +#
  1.1765 +CONFIG_BITREVERSE=y
  1.1766 +CONFIG_CRC_CCITT=y
  1.1767 +# CONFIG_CRC16 is not set
  1.1768 +# CONFIG_CRC_ITU_T is not set
  1.1769 +CONFIG_CRC32=y
  1.1770 +# CONFIG_CRC7 is not set
  1.1771 +# CONFIG_LIBCRC32C is not set
  1.1772 +CONFIG_ZLIB_INFLATE=y
  1.1773 +CONFIG_ZLIB_DEFLATE=y
  1.1774 +CONFIG_PLIST=y
  1.1775 +CONFIG_HAS_IOMEM=y
  1.1776 +CONFIG_HAS_IOPORT=y
  1.1777 +CONFIG_HAS_DMA=y
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/linux/stuff/linux-lzma-2.6.24.2.u	Thu Feb 14 19:12:23 2008 +0100
     2.3 @@ -0,0 +1,2253 @@
     2.4 +--- linux-2.6.24.2/arch/x86/boot/compressed/Makefile_32
     2.5 ++++ linux-2.6.24.2/arch/x86/boot/compressed/Makefile_32
     2.6 +@@ -4,7 +4,7 @@
     2.7 + # create a compressed vmlinux image from the original vmlinux
     2.8 + #
     2.9 + 
    2.10 +-targets		:= vmlinux vmlinux.bin vmlinux.bin.gz head_32.o misc_32.o piggy.o \
    2.11 ++targets		:= vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma head_32.o misc_32.o piggy.o \
    2.12 + 			vmlinux.bin.all vmlinux.relocs
    2.13 + EXTRA_AFLAGS	:= -traditional
    2.14 + 
    2.15 +@@ -44,7 +44,27 @@ $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bi
    2.16 + 	$(call if_changed,gzip)
    2.17 + endif
    2.18 + 
    2.19 ++ifdef CONFIG_RELOCATABLE
    2.20 ++$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin.all FORCE
    2.21 ++	$(call if_changed,bzip2)
    2.22 ++else
    2.23 ++$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE
    2.24 ++	$(call if_changed,bzip2)
    2.25 ++endif
    2.26 ++
    2.27 ++ifdef CONFIG_RELOCATABLE
    2.28 ++$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin.all FORCE
    2.29 ++	$(call if_changed,lzma)
    2.30 ++else
    2.31 ++$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
    2.32 ++	$(call if_changed,lzma)
    2.33 ++endif
    2.34 ++
    2.35 + LDFLAGS_piggy.o := -r --format binary --oformat elf32-i386 -T
    2.36 + 
    2.37 +-$(obj)/piggy.o: $(src)/vmlinux_32.scr $(obj)/vmlinux.bin.gz FORCE
    2.38 ++suffix_$(CONFIG_KERNEL_GZIP)  = gz
    2.39 ++suffix_$(CONFIG_KERNEL_BZIP2) = bz2
    2.40 ++suffix_$(CONFIG_KERNEL_LZMA)  = lzma
    2.41 ++
    2.42 ++$(obj)/piggy.o: $(src)/vmlinux_32.scr $(obj)/vmlinux.bin.$(suffix_y) FORCE
    2.43 + 	$(call if_changed,ld)
    2.44 +--- linux-2.6.24.2/arch/x86/boot/compressed/Makefile_64
    2.45 ++++ linux-2.6.24.2/arch/x86/boot/compressed/Makefile_64
    2.46 +@@ -4,7 +4,7 @@
    2.47 + # create a compressed vmlinux image from the original vmlinux
    2.48 + #
    2.49 + 
    2.50 +-targets		:= vmlinux vmlinux.bin vmlinux.bin.gz head_64.o misc_64.o piggy.o
    2.51 ++targets		:= vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma head_64.o misc_64.o piggy.o
    2.52 + 
    2.53 + KBUILD_CFLAGS := -m64 -D__KERNEL__ $(LINUXINCLUDE) -O2  \
    2.54 + 	  -fno-strict-aliasing -fPIC -mcmodel=small \
    2.55 +--- linux-2.6.24.2/arch/x86/boot/compressed/misc_32.c
    2.56 ++++ linux-2.6.24.2/arch/x86/boot/compressed/misc_32.c
    2.57 +@@ -121,9 +121,12 @@ typedef unsigned long  ulg;
    2.58 + 				 * always be larger than our output buffer.
    2.59 + 				 */
    2.60 + 
    2.61 ++#ifdef CONFIG_KERNEL_GZIP
    2.62 + static uch *inbuf;	/* input buffer */
    2.63 ++#endif
    2.64 + static uch *window;	/* Sliding window buffer, (and final output buffer) */
    2.65 + 
    2.66 ++#ifdef CONFIG_KERNEL_GZIP
    2.67 + static unsigned insize;  /* valid bytes in inbuf */
    2.68 + static unsigned inptr;   /* index of next byte to be processed in inbuf */
    2.69 + static unsigned outcnt;  /* bytes in output buffer */
    2.70 +@@ -158,9 +161,14 @@ static unsigned outcnt;  /* bytes in out
    2.71 + 
    2.72 + static int  fill_inbuf(void);
    2.73 + static void flush_window(void);
    2.74 ++#endif
    2.75 ++
    2.76 + static void error(char *m);
    2.77 ++
    2.78 ++#ifdef CONFIG_KERNEL_GZIP
    2.79 + static void gzip_mark(void **);
    2.80 + static void gzip_release(void **);
    2.81 ++#endif
    2.82 +   
    2.83 + /*
    2.84 +  * This is set up by the setup-routine at boot-time
    2.85 +@@ -181,7 +189,9 @@ static long bytes_out = 0;
    2.86 + static void *malloc(int size);
    2.87 + static void free(void *where);
    2.88 + 
    2.89 ++#if (defined CONFIG_KERNEL_GZIP || defined CONFIG_KERNEL_BZIP2)
    2.90 + static void *memset(void *s, int c, unsigned n);
    2.91 ++#endif
    2.92 + static void *memcpy(void *dest, const void *src, unsigned n);
    2.93 + 
    2.94 + static void putstr(const char *);
    2.95 +@@ -189,7 +199,11 @@ static void putstr(const char *);
    2.96 + static unsigned long free_mem_ptr;
    2.97 + static unsigned long free_mem_end_ptr;
    2.98 + 
    2.99 ++#if (defined CONFIG_KERNEL_BZIP2 || defined CONFIG_KERNEL_LZMA)
   2.100 ++#define HEAP_SIZE             0x400000
   2.101 ++#else
   2.102 + #define HEAP_SIZE             0x4000
   2.103 ++#endif
   2.104 + 
   2.105 + static char *vidmem = (char *)0xb8000;
   2.106 + static int vidport;
   2.107 +@@ -199,7 +213,29 @@ static int lines, cols;
   2.108 + void *xquad_portio;
   2.109 + #endif
   2.110 + 
   2.111 ++#if (defined CONFIG_KERNEL_BZIP2 || defined CONFIG_KERNEL_LZMA)
   2.112 ++
   2.113 ++#define large_malloc malloc
   2.114 ++#define large_free free
   2.115 ++
   2.116 ++#ifdef current
   2.117 ++#undef current
   2.118 ++#endif
   2.119 ++
   2.120 ++#define INCLUDED
   2.121 ++#endif
   2.122 ++
   2.123 ++#ifdef CONFIG_KERNEL_GZIP
   2.124 + #include "../../../../lib/inflate.c"
   2.125 ++#endif
   2.126 ++
   2.127 ++#ifdef CONFIG_KERNEL_BZIP2
   2.128 ++#include "../../../../lib/decompress_bunzip2.c"
   2.129 ++#endif
   2.130 ++
   2.131 ++#ifdef CONFIG_KERNEL_LZMA
   2.132 ++#include "../../../../lib/decompress_unlzma.c"
   2.133 ++#endif
   2.134 + 
   2.135 + static void *malloc(int size)
   2.136 + {
   2.137 +@@ -223,6 +259,7 @@ static void free(void *where)
   2.138 + {	/* Don't care */
   2.139 + }
   2.140 + 
   2.141 ++#ifdef CONFIG_KERNEL_GZIP
   2.142 + static void gzip_mark(void **ptr)
   2.143 + {
   2.144 + 	*ptr = (void *) free_mem_ptr;
   2.145 +@@ -232,6 +269,7 @@ static void gzip_release(void **ptr)
   2.146 + {
   2.147 + 	free_mem_ptr = (unsigned long) *ptr;
   2.148 + }
   2.149 ++#endif
   2.150 +  
   2.151 + static void scroll(void)
   2.152 + {
   2.153 +@@ -282,6 +320,7 @@ static void putstr(const char *s)
   2.154 + 	outb_p(0xff & (pos >> 1), vidport+1);
   2.155 + }
   2.156 + 
   2.157 ++#if (defined CONFIG_KERNEL_GZIP || defined CONFIG_KERNEL_BZIP2)
   2.158 + static void* memset(void* s, int c, unsigned n)
   2.159 + {
   2.160 + 	int i;
   2.161 +@@ -290,6 +329,7 @@ static void* memset(void* s, int c, unsi
   2.162 + 	for (i=0;i<n;i++) ss[i] = c;
   2.163 + 	return s;
   2.164 + }
   2.165 ++#endif
   2.166 + 
   2.167 + static void* memcpy(void* dest, const void* src, unsigned n)
   2.168 + {
   2.169 +@@ -300,6 +340,26 @@ static void* memcpy(void* dest, const vo
   2.170 + 	return dest;
   2.171 + }
   2.172 + 
   2.173 ++#ifndef CONFIG_KERNEL_GZIP
   2.174 ++/* ===========================================================================
   2.175 ++ * Write the output window window[0..outcnt-1] and update bytes_out.
   2.176 ++ * (Used for the decompressed data only.)
   2.177 ++ */
   2.178 ++static int compr_flush(char *data, unsigned int len)
   2.179 ++{
   2.180 ++    unsigned n;
   2.181 ++    uch *out;
   2.182 ++    
   2.183 ++    out = window; 
   2.184 ++    for (n = 0; n < len; n++) {
   2.185 ++	    *out++ = *data++;
   2.186 ++    }
   2.187 ++    bytes_out += (ulg)len;
   2.188 ++    window += (ulg)len;
   2.189 ++    return len;
   2.190 ++}
   2.191 ++
   2.192 ++#else
   2.193 + /* ===========================================================================
   2.194 +  * Fill the input buffer. This is called only when the buffer is empty
   2.195 +  * and at least one byte is really needed.
   2.196 +@@ -332,6 +392,7 @@ static void flush_window(void)
   2.197 + 	bytes_out += (ulg)outcnt;
   2.198 + 	outcnt = 0;
   2.199 + }
   2.200 ++#endif
   2.201 + 
   2.202 + static void error(char *x)
   2.203 + {
   2.204 +@@ -361,9 +422,11 @@ asmlinkage void decompress_kernel(void *
   2.205 + 	window = output;  	/* Output buffer (Normally at 1M) */
   2.206 + 	free_mem_ptr     = end;	/* Heap  */
   2.207 + 	free_mem_end_ptr = end + HEAP_SIZE;
   2.208 ++#ifdef CONFIG_KERNEL_GZIP
   2.209 + 	inbuf  = input_data;	/* Input buffer */
   2.210 + 	insize = input_len;
   2.211 + 	inptr  = 0;
   2.212 ++#endif
   2.213 + 
   2.214 + 	if ((u32)output & (CONFIG_PHYSICAL_ALIGN -1))
   2.215 + 		error("Destination address not CONFIG_PHYSICAL_ALIGN aligned");
   2.216 +@@ -374,9 +437,21 @@ asmlinkage void decompress_kernel(void *
   2.217 + 		error("Wrong destination address");
   2.218 + #endif
   2.219 + 
   2.220 ++#ifdef CONFIG_KERNEL_BZIP2
   2.221 ++	putstr("Bunzipping Linux... ");
   2.222 ++	bunzip2(input_data, input_len-4, NULL, compr_flush, NULL);
   2.223 ++#endif
   2.224 ++
   2.225 ++#ifdef CONFIG_KERNEL_LZMA
   2.226 ++	putstr("Unlzmaing Linux... ");
   2.227 ++	unlzma(input_data, input_len-4, NULL, compr_flush, NULL);
   2.228 ++#endif
   2.229 ++
   2.230 ++#ifdef CONFIG_KERNEL_GZIP
   2.231 + 	makecrc();
   2.232 + 	putstr("Uncompressing Linux... ");
   2.233 + 	gunzip();
   2.234 ++#endif
   2.235 + 	putstr("Ok, booting the kernel.\n");
   2.236 + 	return;
   2.237 + }
   2.238 +--- linux-2.6.24.2/arch/x86/boot/compressed/misc_64.c
   2.239 ++++ linux-2.6.24.2/arch/x86/boot/compressed/misc_64.c
   2.240 +@@ -121,9 +121,12 @@ typedef unsigned long  ulg;
   2.241 + 				 * always be larger than our output buffer.
   2.242 + 				 */
   2.243 + 
   2.244 ++#ifdef CONFIG_KERNEL_GZIP
   2.245 + static uch *inbuf;	/* input buffer */
   2.246 ++#endif
   2.247 + static uch *window;	/* Sliding window buffer, (and final output buffer) */
   2.248 + 
   2.249 ++#ifdef CONFIG_KERNEL_GZIP
   2.250 + static unsigned insize;  /* valid bytes in inbuf */
   2.251 + static unsigned inptr;   /* index of next byte to be processed in inbuf */
   2.252 + static unsigned outcnt;  /* bytes in output buffer */
   2.253 +@@ -158,9 +161,14 @@ static unsigned outcnt;  /* bytes in out
   2.254 + 
   2.255 + static int  fill_inbuf(void);
   2.256 + static void flush_window(void);
   2.257 ++#endif
   2.258 ++
   2.259 + static void error(char *m);
   2.260 ++
   2.261 ++#ifdef CONFIG_KERNEL_GZIP
   2.262 + static void gzip_mark(void **);
   2.263 + static void gzip_release(void **);
   2.264 ++#endif
   2.265 +   
   2.266 + /*
   2.267 +  * This is set up by the setup-routine at boot-time
   2.268 +@@ -173,15 +181,19 @@ static unsigned char *real_mode; /* Poin
   2.269 + #endif
   2.270 + #define RM_SCREEN_INFO (*(struct screen_info *)(real_mode+0))
   2.271 + 
   2.272 ++#ifdef CONFIG_KERNEL_GZIP
   2.273 + extern unsigned char input_data[];
   2.274 + extern int input_len;
   2.275 ++#endif
   2.276 + 
   2.277 + static long bytes_out = 0;
   2.278 + 
   2.279 + static void *malloc(int size);
   2.280 + static void free(void *where);
   2.281 + 
   2.282 ++#if (defined CONFIG_KERNEL_GZIP || defined CONFIG_KERNEL_BZIP2)
   2.283 + static void *memset(void *s, int c, unsigned n);
   2.284 ++#endif
   2.285 + static void *memcpy(void *dest, const void *src, unsigned n);
   2.286 + 
   2.287 + static void putstr(const char *);
   2.288 +@@ -189,13 +201,39 @@ static void putstr(const char *);
   2.289 + static long free_mem_ptr;
   2.290 + static long free_mem_end_ptr;
   2.291 + 
   2.292 ++#if (defined CONFIG_KERNEL_BZIP2 || defined CONFIG_KERNEL_LZMA)
   2.293 ++#define HEAP_SIZE             0x400000
   2.294 ++#else
   2.295 + #define HEAP_SIZE             0x7000
   2.296 ++#endif
   2.297 + 
   2.298 + static char *vidmem = (char *)0xb8000;
   2.299 + static int vidport;
   2.300 + static int lines, cols;
   2.301 + 
   2.302 ++#if (defined CONFIG_KERNEL_BZIP2 || defined CONFIG_KERNEL_LZMA)
   2.303 ++
   2.304 ++#define large_malloc malloc
   2.305 ++#define large_free free
   2.306 ++
   2.307 ++#ifdef current
   2.308 ++#undef current
   2.309 ++#endif
   2.310 ++
   2.311 ++#define INCLUDED
   2.312 ++#endif
   2.313 ++
   2.314 ++#ifdef CONFIG_KERNEL_GZIP
   2.315 + #include "../../../../lib/inflate.c"
   2.316 ++#endif
   2.317 ++
   2.318 ++#ifdef CONFIG_KERNEL_BZIP2
   2.319 ++#include "../../../../lib/decompress_bunzip2.c"
   2.320 ++#endif
   2.321 ++
   2.322 ++#ifdef CONFIG_KERNEL_LZMA
   2.323 ++#include "../../../../lib/decompress_unlzma.c"
   2.324 ++#endif
   2.325 + 
   2.326 + static void *malloc(int size)
   2.327 + {
   2.328 +@@ -219,6 +257,7 @@ static void free(void *where)
   2.329 + {	/* Don't care */
   2.330 + }
   2.331 + 
   2.332 ++#ifdef CONFIG_KERNEL_GZIP
   2.333 + static void gzip_mark(void **ptr)
   2.334 + {
   2.335 + 	*ptr = (void *) free_mem_ptr;
   2.336 +@@ -228,6 +267,7 @@ static void gzip_release(void **ptr)
   2.337 + {
   2.338 + 	free_mem_ptr = (long) *ptr;
   2.339 + }
   2.340 ++#endif
   2.341 +  
   2.342 + static void scroll(void)
   2.343 + {
   2.344 +@@ -275,6 +315,7 @@ static void putstr(const char *s)
   2.345 + 	outb_p(0xff & (pos >> 1), vidport+1);
   2.346 + }
   2.347 + 
   2.348 ++#if (defined CONFIG_KERNEL_GZIP || defined CONFIG_KERNEL_BZIP2)
   2.349 + static void* memset(void* s, int c, unsigned n)
   2.350 + {
   2.351 + 	int i;
   2.352 +@@ -283,6 +324,7 @@ static void* memset(void* s, int c, unsi
   2.353 + 	for (i=0;i<n;i++) ss[i] = c;
   2.354 + 	return s;
   2.355 + }
   2.356 ++#endif
   2.357 + 
   2.358 + static void* memcpy(void* dest, const void* src, unsigned n)
   2.359 + {
   2.360 +@@ -293,6 +335,26 @@ static void* memcpy(void* dest, const vo
   2.361 + 	return dest;
   2.362 + }
   2.363 + 
   2.364 ++#ifndef CONFIG_KERNEL_GZIP
   2.365 ++/* ===========================================================================
   2.366 ++ * Write the output window window[0..outcnt-1] and update bytes_out.
   2.367 ++ * (Used for the decompressed data only.)
   2.368 ++ */
   2.369 ++static int compr_flush(char *data, unsigned int len)
   2.370 ++{
   2.371 ++    unsigned n;
   2.372 ++    uch *out;
   2.373 ++    
   2.374 ++    out = window; 
   2.375 ++    for (n = 0; n < len; n++) {
   2.376 ++	    *out++ = *data++;
   2.377 ++    }
   2.378 ++    bytes_out += (ulg)len;
   2.379 ++    window += (ulg)len;
   2.380 ++    return len;
   2.381 ++}
   2.382 ++
   2.383 ++#else
   2.384 + /* ===========================================================================
   2.385 +  * Fill the input buffer. This is called only when the buffer is empty
   2.386 +  * and at least one byte is really needed.
   2.387 +@@ -325,6 +387,7 @@ static void flush_window(void)
   2.388 + 	bytes_out += (ulg)outcnt;
   2.389 + 	outcnt = 0;
   2.390 + }
   2.391 ++#endif
   2.392 + 
   2.393 + static void error(char *x)
   2.394 + {
   2.395 +@@ -363,9 +426,21 @@ asmlinkage void decompress_kernel(void *
   2.396 + 	if ((ulg)output >= 0xffffffffffUL)
   2.397 + 		error("Destination address too large");
   2.398 + 
   2.399 ++#ifdef CONFIG_KERNEL_BZIP2
   2.400 ++	putstr(".\nBunzipping Linux...");
   2.401 ++	bunzip2(input_data, input_len-4, NULL, compr_flush, NULL);
   2.402 ++#endif
   2.403 ++
   2.404 ++#ifdef CONFIG_KERNEL_LZMA
   2.405 ++	putstr(".\nUnlzmaing Linux...");
   2.406 ++	unlzma(input_data, input_len-4, NULL, compr_flush, NULL);
   2.407 ++#endif
   2.408 ++
   2.409 ++#ifdef CONFIG_KERNEL_GZIP
   2.410 + 	makecrc();
   2.411 + 	putstr(".\nDecompressing Linux...");
   2.412 + 	gunzip();
   2.413 ++#endif
   2.414 + 	putstr("done.\nBooting the kernel.\n");
   2.415 + 	return;
   2.416 + }
   2.417 +--- linux-2.6.24.2/drivers/block/Kconfig
   2.418 ++++ linux-2.6.24.2/drivers/block/Kconfig
   2.419 +@@ -356,6 +356,30 @@ config BLK_DEV_RAM_BLOCKSIZE
   2.420 + 	  setups function - apparently needed by the rd_load_image routine
   2.421 + 	  that supposes the filesystem in the image uses a 1024 blocksize.
   2.422 + 
   2.423 ++config RD_BZIP2
   2.424 ++	bool "Initial ramdisk compressed using bzip2"
   2.425 ++	default n
   2.426 ++	depends on BLK_DEV_INITRD=y
   2.427 ++	help
   2.428 ++	  Support loading of a bzip2 encoded initial ramdisk or cpio buffer
   2.429 ++	  If unsure, say N.
   2.430 ++
   2.431 ++config RD_LZMA
   2.432 ++	bool "Initial ramdisk compressed using lzma"
   2.433 ++	default n
   2.434 ++	depends on BLK_DEV_INITRD=y
   2.435 ++	help
   2.436 ++	  Support loading of a lzma encoded initial ramdisk or cpio buffer
   2.437 ++	  If unsure, say N.
   2.438 ++
   2.439 ++config RD_GZIP
   2.440 ++	bool "Initial ramdisk compressed using gzip"
   2.441 ++	default y
   2.442 ++	depends on BLK_DEV_INITRD=y
   2.443 ++	help
   2.444 ++	  Support loading of a gzip encoded initial ramdisk or cpio buffer.
   2.445 ++	  If unsure, say Y.
   2.446 ++
   2.447 + config CDROM_PKTCDVD
   2.448 + 	tristate "Packet writing on CD/DVD media"
   2.449 + 	depends on !UML
   2.450 +--- linux-2.6.24.2/include/linux/decompress_bunzip2.h
   2.451 ++++ linux-2.6.24.2/include/linux/decompress_bunzip2.h
   2.452 +@@ -0,0 +1,16 @@
   2.453 ++#ifndef DECOMPRESS_BUNZIP2_H
   2.454 ++#define DECOMPRESS_BUNZIP2_H
   2.455 ++
   2.456 ++/* Other housekeeping constants */
   2.457 ++#define BZIP2_IOBUF_SIZE		4096
   2.458 ++
   2.459 ++#ifndef STATIC
   2.460 ++#define STATIC /**/
   2.461 ++#endif
   2.462 ++
   2.463 ++STATIC int bunzip2(char *inbuf, int len, 
   2.464 ++		   int(*fill)(void*,unsigned int),
   2.465 ++		   int(*writebb)(char*,unsigned int),
   2.466 ++		   int *pos);
   2.467 ++
   2.468 ++#endif
   2.469 +--- linux-2.6.24.2/include/linux/decompress_generic.h
   2.470 ++++ linux-2.6.24.2/include/linux/decompress_generic.h
   2.471 +@@ -0,0 +1,28 @@
   2.472 ++#ifndef DECOMPRESS_GENERIC_H
   2.473 ++#define DECOMPRESS_GENERIC_H
   2.474 ++
   2.475 ++/* Minimal chunksize to be read.
   2.476 ++ * Bzip2 prefers at least 4096
   2.477 ++ * Lzma prefers 0x10000 */
   2.478 ++#define COMPR_IOBUF_SIZE	4096
   2.479 ++
   2.480 ++typedef int (*uncompress_fn) (char *inbuf, int len, 
   2.481 ++			      int(*fill)(char*,unsigned int),
   2.482 ++			      int(*writebb)(char*,unsigned int),
   2.483 ++			      int *posp);
   2.484 ++
   2.485 ++/* inbuf   - input buffer
   2.486 ++ * len     - len of pre-read data in inbuf
   2.487 ++ * fill    - function to fill inbuf if empty
   2.488 ++ * writebb - function to write out outbug
   2.489 ++ * posp    - if non-null, input position (number of bytes read) will be
   2.490 ++ *           returned here
   2.491 ++ *
   2.492 ++ * If len != 0, the inbuf is initialized (with as much data), and fill
   2.493 ++ * should not be called
   2.494 ++ * If len = 0, the inbuf is allocated, but empty. Its size is IOBUF_SIZE
   2.495 ++ * fill should be called (repeatedly...) to read data, at most IOBUF_SIZE
   2.496 ++ */
   2.497 ++ 
   2.498 ++
   2.499 ++#endif
   2.500 +--- linux-2.6.24.2/include/linux/decompress_unlzma.h
   2.501 ++++ linux-2.6.24.2/include/linux/decompress_unlzma.h
   2.502 +@@ -0,0 +1,15 @@
   2.503 ++#ifndef DECOMPRESS_UNLZMA_H
   2.504 ++#define DECOMPRESS_UNLZMA_H
   2.505 ++
   2.506 ++#define LZMA_IOBUF_SIZE	0x10000
   2.507 ++
   2.508 ++#ifndef STATIC
   2.509 ++#define STATIC /**/
   2.510 ++#endif
   2.511 ++
   2.512 ++STATIC int unlzma(char *inbuf, int len, 
   2.513 ++		  int(*fill)(void*,unsigned int),
   2.514 ++		  int(*writebb)(char*,unsigned int),
   2.515 ++		  int *pos);
   2.516 ++
   2.517 ++#endif
   2.518 +--- linux-2.6.24.2/init/do_mounts_rd.c
   2.519 ++++ linux-2.6.24.2/init/do_mounts_rd.c
   2.520 +@@ -8,6 +8,16 @@
   2.521 + #include <linux/initrd.h>
   2.522 + #include <linux/string.h>
   2.523 + 
   2.524 ++#ifdef CONFIG_RD_BZIP2
   2.525 ++#include <linux/decompress_bunzip2.h>
   2.526 ++#undef STATIC
   2.527 ++#endif
   2.528 ++
   2.529 ++#ifdef CONFIG_RD_LZMA
   2.530 ++#include <linux/decompress_unlzma.h>
   2.531 ++#undef STATIC
   2.532 ++#endif
   2.533 ++
   2.534 + #include "do_mounts.h"
   2.535 + 
   2.536 + #define BUILD_CRAMDISK
   2.537 +@@ -30,7 +40,15 @@ static int __init ramdisk_start_setup(ch
   2.538 + }
   2.539 + __setup("ramdisk_start=", ramdisk_start_setup);
   2.540 + 
   2.541 ++#ifdef CONFIG_RD_GZIP
   2.542 + static int __init crd_load(int in_fd, int out_fd);
   2.543 ++#endif
   2.544 ++#ifdef CONFIG_RD_BZIP2
   2.545 ++static int __init crd_load_bzip2(int in_fd, int out_fd);
   2.546 ++#endif
   2.547 ++#ifdef CONFIG_RD_LZMA
   2.548 ++static int __init crd_load_lzma(int in_fd, int out_fd);
   2.549 ++#endif
   2.550 + 
   2.551 + /*
   2.552 +  * This routine tries to find a RAM disk image to load, and returns the
   2.553 +@@ -46,7 +64,7 @@ static int __init crd_load(int in_fd, in
   2.554 +  * 	gzip
   2.555 +  */
   2.556 + static int __init 
   2.557 +-identify_ramdisk_image(int fd, int start_block)
   2.558 ++identify_ramdisk_image(int fd, int start_block, int *ztype)
   2.559 + {
   2.560 + 	const int size = 512;
   2.561 + 	struct minix_super_block *minixsb;
   2.562 +@@ -72,6 +90,7 @@ identify_ramdisk_image(int fd, int start
   2.563 + 	sys_lseek(fd, start_block * BLOCK_SIZE, 0);
   2.564 + 	sys_read(fd, buf, size);
   2.565 + 
   2.566 ++#ifdef CONFIG_RD_GZIP
   2.567 + 	/*
   2.568 + 	 * If it matches the gzip magic numbers, return -1
   2.569 + 	 */
   2.570 +@@ -79,9 +98,40 @@ identify_ramdisk_image(int fd, int start
   2.571 + 		printk(KERN_NOTICE
   2.572 + 		       "RAMDISK: Compressed image found at block %d\n",
   2.573 + 		       start_block);
   2.574 ++		*ztype = 0;
   2.575 ++		nblocks = 0;
   2.576 ++		goto done;
   2.577 ++	}
   2.578 ++#endif
   2.579 ++
   2.580 ++#ifdef CONFIG_RD_BZIP2
   2.581 ++	/*
   2.582 ++	 * If it matches the bzip magic numbers, return -1
   2.583 ++	 */
   2.584 ++	if (buf[0] == 0x42 && (buf[1] == 0x5a)) {
   2.585 ++		printk(KERN_NOTICE
   2.586 ++		       "RAMDISK: Bzipped image found at block %d\n",
   2.587 ++		       start_block);
   2.588 ++		*ztype = 1;
   2.589 ++		nblocks = 0;
   2.590 ++		goto done;
   2.591 ++	}
   2.592 ++#endif
   2.593 ++
   2.594 ++#ifdef CONFIG_RD_LZMA
   2.595 ++	/*
   2.596 ++	 * If it matches the bzip magic numbers, return -1
   2.597 ++	 */
   2.598 ++	if (buf[0] == 0x5d && (buf[1] == 0x00)) {
   2.599 ++		printk(KERN_NOTICE
   2.600 ++		       "RAMDISK: Lzma image found at block %d\n",
   2.601 ++		       start_block);
   2.602 ++		*ztype = 2;
   2.603 + 		nblocks = 0;
   2.604 + 		goto done;
   2.605 + 	}
   2.606 ++#endif
   2.607 ++
   2.608 + 
   2.609 + 	/* romfs is at block zero too */
   2.610 + 	if (romfsb->word0 == ROMSB_WORD0 &&
   2.611 +@@ -145,6 +195,7 @@ int __init rd_load_image(char *from)
   2.612 + 	int nblocks, i, disk;
   2.613 + 	char *buf = NULL;
   2.614 + 	unsigned short rotate = 0;
   2.615 ++	int ztype=-1;
   2.616 + #if !defined(CONFIG_S390) && !defined(CONFIG_PPC_ISERIES)
   2.617 + 	char rotator[4] = { '|' , '/' , '-' , '\\' };
   2.618 + #endif
   2.619 +@@ -157,14 +208,38 @@ int __init rd_load_image(char *from)
   2.620 + 	if (in_fd < 0)
   2.621 + 		goto noclose_input;
   2.622 + 
   2.623 +-	nblocks = identify_ramdisk_image(in_fd, rd_image_start);
   2.624 ++	nblocks = identify_ramdisk_image(in_fd, rd_image_start, &ztype);
   2.625 + 	if (nblocks < 0)
   2.626 + 		goto done;
   2.627 + 
   2.628 + 	if (nblocks == 0) {
   2.629 + #ifdef BUILD_CRAMDISK
   2.630 +-		if (crd_load(in_fd, out_fd) == 0)
   2.631 +-			goto successful_load;
   2.632 ++		switch(ztype) {
   2.633 ++
   2.634 ++#ifdef CONFIG_RD_GZIP
   2.635 ++			case 0:
   2.636 ++				if (crd_load(in_fd, out_fd) == 0)
   2.637 ++					goto successful_load;
   2.638 ++				break;
   2.639 ++#endif
   2.640 ++
   2.641 ++#ifdef CONFIG_RD_BZIP2
   2.642 ++			case 1:
   2.643 ++				if (crd_load_bzip2(in_fd, out_fd) == 0)
   2.644 ++					goto successful_load;
   2.645 ++				break;
   2.646 ++#endif
   2.647 ++
   2.648 ++#ifdef CONFIG_RD_LZMA
   2.649 ++			case 2:
   2.650 ++				if (crd_load_lzma(in_fd, out_fd) == 0)
   2.651 ++					goto successful_load;
   2.652 ++				break;
   2.653 ++#endif
   2.654 ++
   2.655 ++			default:
   2.656 ++				break;
   2.657 ++		}
   2.658 + #else
   2.659 + 		printk(KERN_NOTICE
   2.660 + 		       "RAMDISK: Kernel does not support compressed "
   2.661 +@@ -269,6 +344,7 @@ int __init rd_load_disk(int n)
   2.662 + 
   2.663 + #ifdef BUILD_CRAMDISK
   2.664 + 
   2.665 ++#ifdef CONFIG_RD_GZIP
   2.666 + /*
   2.667 +  * gzip declarations
   2.668 +  */
   2.669 +@@ -296,8 +372,11 @@ static unsigned outcnt;  /* bytes in out
   2.670 + static int exit_code;
   2.671 + static int unzip_error;
   2.672 + static long bytes_out;
   2.673 ++#endif
   2.674 ++
   2.675 + static int crd_infd, crd_outfd;
   2.676 + 
   2.677 ++#ifdef CONFIG_RD_GZIP
   2.678 + #define get_byte()  (inptr < insize ? inbuf[inptr++] : fill_inbuf())
   2.679 + 		
   2.680 + /* Diagnostic functions (stubbed out) */
   2.681 +@@ -359,7 +438,22 @@ static int __init fill_inbuf(void)
   2.682 + 
   2.683 + 	return inbuf[0];
   2.684 + }
   2.685 ++#endif
   2.686 ++
   2.687 ++#if (defined CONFIG_RD_BZIP2 || defined CONFIG_RD_LZMA)
   2.688 ++static int __init compr_fill(void *buf, unsigned int len)
   2.689 ++{
   2.690 ++	int r = sys_read(crd_infd, buf, len);
   2.691 ++	if(r < 0) {
   2.692 ++		printk(KERN_ERR "RAMDISK: error while reading compressed data");
   2.693 ++	} else if(r == 0) {
   2.694 ++		printk(KERN_ERR "RAMDISK: EOF while reading compressed data");
   2.695 ++	}
   2.696 ++	return r;
   2.697 ++}
   2.698 ++#endif
   2.699 + 
   2.700 ++#ifdef CONFIG_RD_GZIP
   2.701 + /* ===========================================================================
   2.702 +  * Write the output window window[0..outcnt-1] and update crc and bytes_out.
   2.703 +  * (Used for the decompressed data only.)
   2.704 +@@ -385,7 +479,24 @@ static void __init flush_window(void)
   2.705 +     bytes_out += (ulg)outcnt;
   2.706 +     outcnt = 0;
   2.707 + }
   2.708 ++#endif
   2.709 ++
   2.710 ++#if (defined CONFIG_RD_BZIP2 || defined CONFIG_RD_LZMA)
   2.711 ++static int __init compr_flush(void *window, unsigned int outcnt) {
   2.712 ++	static int progressDots=0;
   2.713 ++	int written = sys_write(crd_outfd, window, outcnt);
   2.714 ++	if (written != outcnt) {
   2.715 ++		printk(KERN_ERR "RAMDISK: incomplete write (%d != %d)\n",
   2.716 ++		       written, outcnt);
   2.717 ++	}
   2.718 ++	progressDots = (progressDots+1)%10;
   2.719 ++	if(!progressDots)
   2.720 ++		printk(".");
   2.721 ++	return outcnt;
   2.722 ++}
   2.723 ++#endif
   2.724 + 
   2.725 ++#ifdef CONFIG_RD_GZIP
   2.726 + static void __init error(char *x)
   2.727 + {
   2.728 + 	printk(KERN_ERR "%s\n", x);
   2.729 +@@ -425,5 +536,43 @@ static int __init crd_load(int in_fd, in
   2.730 + 	kfree(window);
   2.731 + 	return result;
   2.732 + }
   2.733 ++#endif
   2.734 ++
   2.735 ++#if (defined CONFIG_RD_BZIP2 || defined CONFIG_RD_LZMA)
   2.736 ++static int __init crd_load_compr(int in_fd, int out_fd, int size,
   2.737 ++				 int (*deco)(char *,int,
   2.738 ++					     int(*fill)(void*,unsigned int),
   2.739 ++					     int(*flush)(void*,unsigned int),
   2.740 ++					     int *))
   2.741 ++{
   2.742 ++	int result;
   2.743 ++	char *inbuf = kmalloc(size, GFP_KERNEL);
   2.744 ++	crd_infd = in_fd;
   2.745 ++	crd_outfd = out_fd;
   2.746 ++	if (inbuf == 0) {
   2.747 ++		printk(KERN_ERR "RAMDISK: Couldn't allocate decompression buffer\n");
   2.748 ++		return -1;
   2.749 ++	}
   2.750 ++	result=deco(inbuf, 0, compr_fill, compr_flush, NULL);
   2.751 ++	kfree(inbuf);
   2.752 ++	printk("\n");
   2.753 ++	return result;
   2.754 ++}
   2.755 ++#endif
   2.756 ++
   2.757 ++#ifdef CONFIG_RD_BZIP2
   2.758 ++static int __init crd_load_bzip2(int in_fd, int out_fd)
   2.759 ++{
   2.760 ++	return crd_load_compr(in_fd, out_fd, BZIP2_IOBUF_SIZE, bunzip2);
   2.761 ++}
   2.762 ++#endif
   2.763 ++
   2.764 ++#ifdef CONFIG_RD_LZMA
   2.765 ++static int __init crd_load_lzma(int in_fd, int out_fd)
   2.766 ++{
   2.767 ++	return crd_load_compr(in_fd, out_fd, LZMA_IOBUF_SIZE, unlzma);
   2.768 ++}
   2.769 ++
   2.770 ++#endif
   2.771 + 
   2.772 + #endif  /* BUILD_CRAMDISK */
   2.773 +--- linux-2.6.24.2/init/initramfs.c
   2.774 ++++ linux-2.6.24.2/init/initramfs.c
   2.775 +@@ -7,6 +7,15 @@
   2.776 + #include <linux/string.h>
   2.777 + #include <linux/syscalls.h>
   2.778 + 
   2.779 ++/* We need to enable RD_GZIP unconditionnally, as the built-in
   2.780 ++ * initramfs is gzip-compressed, alas!
   2.781 ++ * We can only wonder why, though, as the whole kernel (which contains
   2.782 ++ * built-in initramfs) is gzip (or bzip) compressed anyways afterwards...
   2.783 ++ */
   2.784 ++#ifndef CONFIG_RD_GZIP
   2.785 ++#define CONFIG_RD_GZIP
   2.786 ++#endif
   2.787 ++
   2.788 + static __initdata char *message;
   2.789 + static void __init error(char *x)
   2.790 + {
   2.791 +@@ -347,11 +356,13 @@ static int __init write_buffer(char *buf
   2.792 + 	return len - count;
   2.793 + }
   2.794 + 
   2.795 +-static void __init flush_buffer(char *buf, unsigned len)
   2.796 ++
   2.797 ++static int __init flush_buffer(char *buf, unsigned len)
   2.798 + {
   2.799 + 	int written;
   2.800 ++	int origLen = len;
   2.801 + 	if (message)
   2.802 +-		return;
   2.803 ++		return -1;
   2.804 + 	while ((written = write_buffer(buf, len)) < len && !message) {
   2.805 + 		char c = buf[written];
   2.806 + 		if (c == '0') {
   2.807 +@@ -365,8 +376,24 @@ static void __init flush_buffer(char *bu
   2.808 + 		} else
   2.809 + 			error("junk in compressed archive");
   2.810 + 	}
   2.811 ++	return origLen;
   2.812 + }
   2.813 + 
   2.814 ++#ifdef CONFIG_RD_BZIP2
   2.815 ++#include <linux/decompress_bunzip2.h>
   2.816 ++#undef STATIC
   2.817 ++
   2.818 ++#endif
   2.819 ++
   2.820 ++#ifdef CONFIG_RD_LZMA
   2.821 ++#include <linux/decompress_unlzma.h>
   2.822 ++#undef STATIC
   2.823 ++
   2.824 ++#endif
   2.825 ++
   2.826 ++static unsigned inptr;   /* index of next byte to be processed in inbuf */
   2.827 ++
   2.828 ++#ifdef CONFIG_RD_GZIP
   2.829 + /*
   2.830 +  * gzip declarations
   2.831 +  */
   2.832 +@@ -388,7 +415,6 @@ static uch *inbuf;
   2.833 + static uch *window;
   2.834 + 
   2.835 + static unsigned insize;  /* valid bytes in inbuf */
   2.836 +-static unsigned inptr;   /* index of next byte to be processed in inbuf */
   2.837 + static unsigned outcnt;  /* bytes in output buffer */
   2.838 + static long bytes_out;
   2.839 + 
   2.840 +@@ -440,6 +466,7 @@ static void __init flush_window(void)
   2.841 + 	bytes_out += (ulg)outcnt;
   2.842 + 	outcnt = 0;
   2.843 + }
   2.844 ++#endif
   2.845 + 
   2.846 + static char * __init unpack_to_rootfs(char *buf, unsigned len, int check_only)
   2.847 + {
   2.848 +@@ -448,9 +475,11 @@ static char * __init unpack_to_rootfs(ch
   2.849 + 	header_buf = malloc(110);
   2.850 + 	symlink_buf = malloc(PATH_MAX + N_ALIGN(PATH_MAX) + 1);
   2.851 + 	name_buf = malloc(N_ALIGN(PATH_MAX));
   2.852 ++#ifdef CONFIG_RD_GZIP
   2.853 + 	window = malloc(WSIZE);
   2.854 + 	if (!window || !header_buf || !symlink_buf || !name_buf)
   2.855 + 		panic("can't allocate buffers");
   2.856 ++#endif
   2.857 + 	state = Start;
   2.858 + 	this_header = 0;
   2.859 + 	message = NULL;
   2.860 +@@ -470,6 +499,7 @@ static char * __init unpack_to_rootfs(ch
   2.861 + 			continue;
   2.862 + 		}
   2.863 + 		this_header = 0;
   2.864 ++#ifdef CONFIG_RD_GZIP
   2.865 + 		insize = len;
   2.866 + 		inbuf = buf;
   2.867 + 		inptr = 0;
   2.868 +@@ -477,14 +507,38 @@ static char * __init unpack_to_rootfs(ch
   2.869 + 		bytes_out = 0;
   2.870 + 		crc = (ulg)0xffffffffL; /* shift register contents */
   2.871 + 		makecrc();
   2.872 +-		gunzip();
   2.873 ++		if(!gunzip() && message == NULL)
   2.874 ++			goto ok;
   2.875 ++#endif
   2.876 ++
   2.877 ++#ifdef CONFIG_RD_BZIP2
   2.878 ++		message = NULL; /* Zero out message, or else cpio will
   2.879 ++				   think an error has already occured */
   2.880 ++		if(!bunzip2(buf, len, NULL, flush_buffer, &inptr) < 0 &&
   2.881 ++		   message == NULL) {
   2.882 ++			goto ok;
   2.883 ++		}
   2.884 ++#endif
   2.885 ++
   2.886 ++#ifdef CONFIG_RD_LZMA
   2.887 ++		message = NULL; /* Zero out message, or else cpio will
   2.888 ++				   think an error has already occured */
   2.889 ++		if(!unlzma(buf, len, NULL, flush_buffer, &inptr) < 0 &&
   2.890 ++		   message == NULL) {
   2.891 ++			goto ok;
   2.892 ++		}
   2.893 ++#endif
   2.894 ++    ok:
   2.895 ++
   2.896 + 		if (state != Reset)
   2.897 +-			error("junk in gzipped archive");
   2.898 ++			error("junk in compressed archive");
   2.899 + 		this_header = saved_offset + inptr;
   2.900 + 		buf += inptr;
   2.901 + 		len -= inptr;
   2.902 + 	}
   2.903 ++#ifdef CONFIG_RD_GZIP
   2.904 + 	free(window);
   2.905 ++#endif
   2.906 + 	free(name_buf);
   2.907 + 	free(symlink_buf);
   2.908 + 	free(header_buf);
   2.909 +--- linux-2.6.24.2/init/Kconfig
   2.910 ++++ linux-2.6.24.2/init/Kconfig
   2.911 +@@ -92,6 +92,56 @@ config LOCALVERSION_AUTO
   2.912 + 
   2.913 + 	  which is done within the script "scripts/setlocalversion".)
   2.914 + 
   2.915 ++choice
   2.916 ++        prompt "Kernel compression mode"
   2.917 ++        default KERNEL_GZIP
   2.918 ++        help
   2.919 ++	  The linux kernel is a kind of self-extracting executable.
   2.920 ++	  Several compression algorithms are available, which differ
   2.921 ++	  in efficiency, compression and decompression speed.
   2.922 ++	  Compression speed is only relevant when building a kernel.
   2.923 ++	  Decompression speed is relevant at each boot.
   2.924 ++
   2.925 ++	  If you have any problems with bzip2 or lzma compressed
   2.926 ++	  kernels, mail me (Alain Knaff) <alain@knaff.lu>. (An older
   2.927 ++	  version of this functionality (bzip2 only), for 2.4, was
   2.928 ++	  supplied by Christian Ludwig)
   2.929 ++
   2.930 ++	  High compression options are mostly useful for users, who
   2.931 ++	  are low on disk space (embedded systems), but for whom ram
   2.932 ++	  size matters less.
   2.933 ++
   2.934 ++	  If in doubt, select 'gzip'
   2.935 ++
   2.936 ++config KERNEL_GZIP
   2.937 ++       bool "Gzip"
   2.938 ++       help
   2.939 ++         The old and tries gzip compression. Its compression ratio is
   2.940 ++	 the poorest among the 3 choices; however its speed (both
   2.941 ++	 compression and decompression) is the fastest.
   2.942 ++
   2.943 ++config KERNEL_BZIP2
   2.944 ++	bool "Bzip2"
   2.945 ++	help
   2.946 ++	  Its compression ratio and speed is intermediate.
   2.947 ++	  Decompression speed is slowest among the 3.
   2.948 ++	  The kernel size is about 10 per cent smaller with bzip2,
   2.949 ++	  in comparison to gzip.
   2.950 ++	  Bzip2 uses a large amount of memory. For modern kernels
   2.951 ++	  you will need at least 8MB RAM or more for booting.
   2.952 ++
   2.953 ++config KERNEL_LZMA
   2.954 ++       bool "LZMA"
   2.955 ++       help
   2.956 ++         The most recent compression algorithm.
   2.957 ++	 Its ratio is best, decompression speed is between the other
   2.958 ++	 2. Compression is slowest.
   2.959 ++	 The kernel size is about 33 per cent smaller with lzma,
   2.960 ++	 in comparison to gzip.
   2.961 ++
   2.962 ++endchoice
   2.963 ++
   2.964 ++
   2.965 + config SWAP
   2.966 + 	bool "Support for paging of anonymous memory (swap)"
   2.967 + 	depends on MMU && BLOCK
   2.968 +--- linux-2.6.24.2/lib/decompress_bunzip2.c
   2.969 ++++ linux-2.6.24.2/lib/decompress_bunzip2.c
   2.970 +@@ -0,0 +1,645 @@
   2.971 ++/* vi: set sw=4 ts=4: */
   2.972 ++/*	Small bzip2 deflate implementation, by Rob Landley (rob@landley.net).
   2.973 ++
   2.974 ++	Based on bzip2 decompression code by Julian R Seward (jseward@acm.org),
   2.975 ++	which also acknowledges contributions by Mike Burrows, David Wheeler,
   2.976 ++	Peter Fenwick, Alistair Moffat, Radford Neal, Ian H. Witten,
   2.977 ++	Robert Sedgewick, and Jon L. Bentley.
   2.978 ++
   2.979 ++	This code is licensed under the LGPLv2:
   2.980 ++		LGPL (http://www.gnu.org/copyleft/lgpl.html
   2.981 ++*/
   2.982 ++
   2.983 ++/*
   2.984 ++	Size and speed optimizations by Manuel Novoa III  (mjn3@codepoet.org).
   2.985 ++
   2.986 ++	More efficient reading of Huffman codes, a streamlined read_bunzip()
   2.987 ++	function, and various other tweaks.  In (limited) tests, approximately
   2.988 ++	20% faster than bzcat on x86 and about 10% faster on arm.
   2.989 ++
   2.990 ++	Note that about 2/3 of the time is spent in read_unzip() reversing
   2.991 ++	the Burrows-Wheeler transformation.  Much of that time is delay
   2.992 ++	resulting from cache misses.
   2.993 ++
   2.994 ++	I would ask that anyone benefiting from this work, especially those
   2.995 ++	using it in commercial products, consider making a donation to my local
   2.996 ++	non-profit hospice organization in the name of the woman I loved, who
   2.997 ++	passed away Feb. 12, 2003.
   2.998 ++
   2.999 ++		In memory of Toni W. Hagan
  2.1000 ++
  2.1001 ++		Hospice of Acadiana, Inc.
  2.1002 ++		2600 Johnston St., Suite 200
  2.1003 ++		Lafayette, LA 70503-3240
  2.1004 ++
  2.1005 ++		Phone (337) 232-1234 or 1-800-738-2226
  2.1006 ++		Fax   (337) 232-1297
  2.1007 ++
  2.1008 ++		http://www.hospiceacadiana.com/
  2.1009 ++
  2.1010 ++	Manuel
  2.1011 ++ */
  2.1012 ++
  2.1013 ++/*
  2.1014 ++	Made it fit for running in Linux Kernel by Alain Knaff (alain@knaff.lu)
  2.1015 ++*/
  2.1016 ++
  2.1017 ++
  2.1018 ++#ifndef STATIC
  2.1019 ++
  2.1020 ++#include <linux/kernel.h>
  2.1021 ++#include <linux/fs.h>
  2.1022 ++#include <linux/string.h>
  2.1023 ++
  2.1024 ++#ifdef TEST
  2.1025 ++#include "test.h"
  2.1026 ++#else
  2.1027 ++#include <linux/vmalloc.h>
  2.1028 ++#endif
  2.1029 ++
  2.1030 ++static void __init *large_malloc(size_t size)
  2.1031 ++{
  2.1032 ++	return vmalloc(size);
  2.1033 ++}
  2.1034 ++
  2.1035 ++static void __init large_free(void *where)
  2.1036 ++{
  2.1037 ++	vfree(where);
  2.1038 ++}
  2.1039 ++
  2.1040 ++#ifndef TEST
  2.1041 ++static void __init *malloc(size_t size)
  2.1042 ++{
  2.1043 ++	return kmalloc(size, GFP_KERNEL);
  2.1044 ++}
  2.1045 ++
  2.1046 ++static void __init free(void *where)
  2.1047 ++{
  2.1048 ++	kfree(where);
  2.1049 ++}
  2.1050 ++
  2.1051 ++static void __init error(char *x)
  2.1052 ++{
  2.1053 ++	printk(KERN_ERR "%s\n", x);
  2.1054 ++}
  2.1055 ++#endif
  2.1056 ++
  2.1057 ++#define STATIC /**/
  2.1058 ++
  2.1059 ++#endif
  2.1060 ++
  2.1061 ++#include <linux/decompress_bunzip2.h>
  2.1062 ++
  2.1063 ++
  2.1064 ++/* Constants for Huffman coding */
  2.1065 ++#define MAX_GROUPS			6
  2.1066 ++#define GROUP_SIZE   		50		/* 64 would have been more efficient */
  2.1067 ++#define MAX_HUFCODE_BITS 	20		/* Longest Huffman code allowed */
  2.1068 ++#define MAX_SYMBOLS 		258		/* 256 literals + RUNA + RUNB */
  2.1069 ++#define SYMBOL_RUNA			0
  2.1070 ++#define SYMBOL_RUNB			1
  2.1071 ++
  2.1072 ++/* Status return values */
  2.1073 ++#define RETVAL_OK						0
  2.1074 ++#define RETVAL_LAST_BLOCK				(-1)
  2.1075 ++#define RETVAL_NOT_BZIP_DATA			(-2)
  2.1076 ++#define RETVAL_UNEXPECTED_INPUT_EOF		(-3)
  2.1077 ++#define RETVAL_UNEXPECTED_OUTPUT_EOF	(-4)
  2.1078 ++#define RETVAL_DATA_ERROR				(-5)
  2.1079 ++#define RETVAL_OUT_OF_MEMORY			(-6)
  2.1080 ++#define RETVAL_OBSOLETE_INPUT			(-7)
  2.1081 ++
  2.1082 ++
  2.1083 ++/* This is what we know about each Huffman coding group */
  2.1084 ++struct group_data {
  2.1085 ++	/* We have an extra slot at the end of limit[] for a sentinal value. */
  2.1086 ++	int limit[MAX_HUFCODE_BITS+1],base[MAX_HUFCODE_BITS],permute[MAX_SYMBOLS];
  2.1087 ++	int minLen, maxLen;
  2.1088 ++};
  2.1089 ++
  2.1090 ++/* Structure holding all the housekeeping data, including IO buffers and
  2.1091 ++   memory that persists between calls to bunzip */
  2.1092 ++typedef struct {
  2.1093 ++	/* State for interrupting output loop */
  2.1094 ++	int writeCopies,writePos,writeRunCountdown,writeCount,writeCurrent;
  2.1095 ++	/* I/O tracking data (file handles, buffers, positions, etc.) */
  2.1096 ++	int (*fill)(void*,unsigned int);
  2.1097 ++	int inbufCount,inbufPos /*,outbufPos*/;
  2.1098 ++	unsigned char *inbuf /*,*outbuf*/;
  2.1099 ++	unsigned int inbufBitCount, inbufBits;
  2.1100 ++	/* The CRC values stored in the block header and calculated from the data */
  2.1101 ++	unsigned int crc32Table[256],headerCRC, totalCRC, writeCRC;
  2.1102 ++	/* Intermediate buffer and its size (in bytes) */
  2.1103 ++	unsigned int *dbuf, dbufSize;
  2.1104 ++	/* These things are a bit too big to go on the stack */
  2.1105 ++	unsigned char selectors[32768];			/* nSelectors=15 bits */
  2.1106 ++	struct group_data groups[MAX_GROUPS];	/* Huffman coding tables */
  2.1107 ++	int io_error;			/* non-zero if we have IO error */
  2.1108 ++} bunzip_data;
  2.1109 ++	
  2.1110 ++
  2.1111 ++/* Return the next nnn bits of input.  All reads from the compressed input
  2.1112 ++   are done through this function.  All reads are big endian */
  2.1113 ++static unsigned int get_bits(bunzip_data *bd, char bits_wanted)
  2.1114 ++{
  2.1115 ++	unsigned int bits=0;
  2.1116 ++
  2.1117 ++	/* If we need to get more data from the byte buffer, do so.  (Loop getting
  2.1118 ++	   one byte at a time to enforce endianness and avoid unaligned access.) */
  2.1119 ++	while (bd->inbufBitCount<bits_wanted) {
  2.1120 ++		/* If we need to read more data from file into byte buffer, do so */
  2.1121 ++		if(bd->inbufPos==bd->inbufCount) {
  2.1122 ++			if(bd->io_error)
  2.1123 ++				return 0;
  2.1124 ++			if((bd->inbufCount = bd->fill(bd->inbuf, BZIP2_IOBUF_SIZE)) <= 0) {
  2.1125 ++				bd->io_error=RETVAL_UNEXPECTED_INPUT_EOF;
  2.1126 ++				return 0;
  2.1127 ++			}
  2.1128 ++			bd->inbufPos=0;
  2.1129 ++		}
  2.1130 ++		/* Avoid 32-bit overflow (dump bit buffer to top of output) */
  2.1131 ++		if(bd->inbufBitCount>=24) {
  2.1132 ++			bits=bd->inbufBits&((1<<bd->inbufBitCount)-1);
  2.1133 ++			bits_wanted-=bd->inbufBitCount;
  2.1134 ++			bits<<=bits_wanted;
  2.1135 ++			bd->inbufBitCount=0;
  2.1136 ++		}
  2.1137 ++		/* Grab next 8 bits of input from buffer. */
  2.1138 ++		bd->inbufBits=(bd->inbufBits<<8)|bd->inbuf[bd->inbufPos++];
  2.1139 ++		bd->inbufBitCount+=8;
  2.1140 ++	}
  2.1141 ++	/* Calculate result */
  2.1142 ++	bd->inbufBitCount-=bits_wanted;
  2.1143 ++	bits|=(bd->inbufBits>>bd->inbufBitCount)&((1<<bits_wanted)-1);
  2.1144 ++
  2.1145 ++	return bits;
  2.1146 ++}
  2.1147 ++
  2.1148 ++/* Unpacks the next block and sets up for the inverse burrows-wheeler step. */
  2.1149 ++
  2.1150 ++static int get_next_block(bunzip_data *bd)
  2.1151 ++{
  2.1152 ++	struct group_data *hufGroup=NULL;
  2.1153 ++	int *base=NULL;
  2.1154 ++	int *limit=NULL;
  2.1155 ++	int dbufCount,nextSym,dbufSize,groupCount,selector,
  2.1156 ++		i,j,k,t,runPos,symCount,symTotal,nSelectors,byteCount[256];
  2.1157 ++	unsigned char uc, symToByte[256], mtfSymbol[256], *selectors;
  2.1158 ++	unsigned int *dbuf,origPtr;
  2.1159 ++
  2.1160 ++	dbuf=bd->dbuf;
  2.1161 ++	dbufSize=bd->dbufSize;
  2.1162 ++	selectors=bd->selectors;
  2.1163 ++
  2.1164 ++	/* Read in header signature and CRC, then validate signature.
  2.1165 ++	   (last block signature means CRC is for whole file, return now) */
  2.1166 ++	i = get_bits(bd,24);
  2.1167 ++	j = get_bits(bd,24);
  2.1168 ++	bd->headerCRC=get_bits(bd,32);
  2.1169 ++	if ((i == 0x177245) && (j == 0x385090)) return RETVAL_LAST_BLOCK;
  2.1170 ++	if ((i != 0x314159) || (j != 0x265359)) return RETVAL_NOT_BZIP_DATA;
  2.1171 ++	/* We can add support for blockRandomised if anybody complains.  There was
  2.1172 ++	   some code for this in busybox 1.0.0-pre3, but nobody ever noticed that
  2.1173 ++	   it didn't actually work. */
  2.1174 ++	if(get_bits(bd,1)) return RETVAL_OBSOLETE_INPUT;
  2.1175 ++	if((origPtr=get_bits(bd,24)) > dbufSize) return RETVAL_DATA_ERROR;
  2.1176 ++	/* mapping table: if some byte values are never used (encoding things
  2.1177 ++	   like ascii text), the compression code removes the gaps to have fewer
  2.1178 ++	   symbols to deal with, and writes a sparse bitfield indicating which
  2.1179 ++	   values were present.  We make a translation table to convert the symbols
  2.1180 ++	   back to the corresponding bytes. */
  2.1181 ++	t=get_bits(bd, 16);
  2.1182 ++	symTotal=0;
  2.1183 ++	for (i=0;i<16;i++) {
  2.1184 ++		if(t&(1<<(15-i))) {
  2.1185 ++			k=get_bits(bd,16);
  2.1186 ++			for(j=0;j<16;j++)
  2.1187 ++				if(k&(1<<(15-j))) symToByte[symTotal++]=(16*i)+j;
  2.1188 ++		}
  2.1189 ++	}
  2.1190 ++	/* How many different Huffman coding groups does this block use? */
  2.1191 ++	groupCount=get_bits(bd,3);
  2.1192 ++	if (groupCount<2 || groupCount>MAX_GROUPS) return RETVAL_DATA_ERROR;
  2.1193 ++	/* nSelectors: Every GROUP_SIZE many symbols we select a new Huffman coding
  2.1194 ++	   group.  Read in the group selector list, which is stored as MTF encoded
  2.1195 ++	   bit runs.  (MTF=Move To Front, as each value is used it's moved to the
  2.1196 ++	   start of the list.) */
  2.1197 ++	if(!(nSelectors=get_bits(bd, 15))) return RETVAL_DATA_ERROR;
  2.1198 ++	for(i=0; i<groupCount; i++) mtfSymbol[i] = i;
  2.1199 ++	for(i=0; i<nSelectors; i++) {
  2.1200 ++		/* Get next value */
  2.1201 ++		for(j=0;get_bits(bd,1);j++) if (j>=groupCount) return RETVAL_DATA_ERROR;
  2.1202 ++		/* Decode MTF to get the next selector */
  2.1203 ++		uc = mtfSymbol[j];
  2.1204 ++		for(;j;j--) mtfSymbol[j] = mtfSymbol[j-1];
  2.1205 ++		mtfSymbol[0]=selectors[i]=uc;
  2.1206 ++	}
  2.1207 ++	/* Read the Huffman coding tables for each group, which code for symTotal
  2.1208 ++	   literal symbols, plus two run symbols (RUNA, RUNB) */
  2.1209 ++	symCount=symTotal+2;
  2.1210 ++	for (j=0; j<groupCount; j++) {
  2.1211 ++		unsigned char length[MAX_SYMBOLS],temp[MAX_HUFCODE_BITS+1];
  2.1212 ++		int	minLen,	maxLen, pp;
  2.1213 ++		/* Read Huffman code lengths for each symbol.  They're stored in
  2.1214 ++		   a way similar to mtf; record a starting value for the first symbol,
  2.1215 ++		   and an offset from the previous value for everys symbol after that.
  2.1216 ++		   (Subtracting 1 before the loop and then adding it back at the end is
  2.1217 ++		   an optimization that makes the test inside the loop simpler: symbol
  2.1218 ++		   length 0 becomes negative, so an unsigned inequality catches it.) */
  2.1219 ++		t=get_bits(bd, 5)-1;
  2.1220 ++		for (i = 0; i < symCount; i++) {
  2.1221 ++			for(;;) {
  2.1222 ++				if (((unsigned)t) > (MAX_HUFCODE_BITS-1))
  2.1223 ++					return RETVAL_DATA_ERROR;
  2.1224 ++				/* If first bit is 0, stop.  Else second bit indicates whether
  2.1225 ++				   to increment or decrement the value.  Optimization: grab 2
  2.1226 ++				   bits and unget the second if the first was 0. */
  2.1227 ++				k = get_bits(bd,2);
  2.1228 ++				if (k < 2) {
  2.1229 ++					bd->inbufBitCount++;
  2.1230 ++					break;
  2.1231 ++				}
  2.1232 ++				/* Add one if second bit 1, else subtract 1.  Avoids if/else */
  2.1233 ++				t+=(((k+1)&2)-1);
  2.1234 ++			}
  2.1235 ++			/* Correct for the initial -1, to get the final symbol length */
  2.1236 ++			length[i]=t+1;
  2.1237 ++		}
  2.1238 ++		/* Find largest and smallest lengths in this group */
  2.1239 ++		minLen=maxLen=length[0];
  2.1240 ++		for(i = 1; i < symCount; i++) {
  2.1241 ++			if(length[i] > maxLen) maxLen = length[i];
  2.1242 ++			else if(length[i] < minLen) minLen = length[i];
  2.1243 ++		}
  2.1244 ++		/* Calculate permute[], base[], and limit[] tables from length[].
  2.1245 ++		 *
  2.1246 ++		 * permute[] is the lookup table for converting Huffman coded symbols
  2.1247 ++		 * into decoded symbols.  base[] is the amount to subtract from the
  2.1248 ++		 * value of a Huffman symbol of a given length when using permute[].
  2.1249 ++		 *
  2.1250 ++		 * limit[] indicates the largest numerical value a symbol with a given
  2.1251 ++		 * number of bits can have.  This is how the Huffman codes can vary in
  2.1252 ++		 * length: each code with a value>limit[length] needs another bit.
  2.1253 ++		 */
  2.1254 ++		hufGroup=bd->groups+j;
  2.1255 ++		hufGroup->minLen = minLen;
  2.1256 ++		hufGroup->maxLen = maxLen;
  2.1257 ++		/* Note that minLen can't be smaller than 1, so we adjust the base
  2.1258 ++		   and limit array pointers so we're not always wasting the first
  2.1259 ++		   entry.  We do this again when using them (during symbol decoding).*/
  2.1260 ++		base=hufGroup->base-1;
  2.1261 ++		limit=hufGroup->limit-1;
  2.1262 ++		/* Calculate permute[].  Concurently, initialize temp[] and limit[]. */
  2.1263 ++		pp=0;
  2.1264 ++		for(i=minLen;i<=maxLen;i++) {
  2.1265 ++			temp[i]=limit[i]=0;
  2.1266 ++			for(t=0;t<symCount;t++)
  2.1267 ++				if(length[t]==i) hufGroup->permute[pp++] = t;
  2.1268 ++		}
  2.1269 ++		/* Count symbols coded for at each bit length */
  2.1270 ++		for (i=0;i<symCount;i++) temp[length[i]]++;
  2.1271 ++		/* Calculate limit[] (the largest symbol-coding value at each bit
  2.1272 ++		 * length, which is (previous limit<<1)+symbols at this level), and
  2.1273 ++		 * base[] (number of symbols to ignore at each bit length, which is
  2.1274 ++		 * limit minus the cumulative count of symbols coded for already). */
  2.1275 ++		pp=t=0;
  2.1276 ++		for (i=minLen; i<maxLen; i++) {
  2.1277 ++			pp+=temp[i];
  2.1278 ++			/* We read the largest possible symbol size and then unget bits
  2.1279 ++			   after determining how many we need, and those extra bits could
  2.1280 ++			   be set to anything.  (They're noise from future symbols.)  At
  2.1281 ++			   each level we're really only interested in the first few bits,
  2.1282 ++			   so here we set all the trailing to-be-ignored bits to 1 so they
  2.1283 ++			   don't affect the value>limit[length] comparison. */
  2.1284 ++			limit[i]= (pp << (maxLen - i)) - 1;
  2.1285 ++			pp<<=1;
  2.1286 ++			base[i+1]=pp-(t+=temp[i]);
  2.1287 ++		}
  2.1288 ++		limit[maxLen+1] = INT_MAX; /* Sentinal value for reading next sym. */
  2.1289 ++		limit[maxLen]=pp+temp[maxLen]-1;
  2.1290 ++		base[minLen]=0;
  2.1291 ++	}
  2.1292 ++	/* We've finished reading and digesting the block header.  Now read this
  2.1293 ++	   block's Huffman coded symbols from the file and undo the Huffman coding
  2.1294 ++	   and run length encoding, saving the result into dbuf[dbufCount++]=uc */
  2.1295 ++
  2.1296 ++	/* Initialize symbol occurrence counters and symbol Move To Front table */
  2.1297 ++	for(i=0;i<256;i++) {
  2.1298 ++		byteCount[i] = 0;
  2.1299 ++		mtfSymbol[i]=(unsigned char)i;
  2.1300 ++	}
  2.1301 ++	/* Loop through compressed symbols. */
  2.1302 ++	runPos=dbufCount=symCount=selector=0;
  2.1303 ++	for(;;) {
  2.1304 ++		/* Determine which Huffman coding group to use. */
  2.1305 ++		if(!(symCount--)) {
  2.1306 ++			symCount=GROUP_SIZE-1;
  2.1307 ++			if(selector>=nSelectors) return RETVAL_DATA_ERROR;
  2.1308 ++			hufGroup=bd->groups+selectors[selector++];
  2.1309 ++			base=hufGroup->base-1;
  2.1310 ++			limit=hufGroup->limit-1;
  2.1311 ++		}
  2.1312 ++		/* Read next Huffman-coded symbol. */
  2.1313 ++		/* Note: It is far cheaper to read maxLen bits and back up than it is
  2.1314 ++		   to read minLen bits and then an additional bit at a time, testing
  2.1315 ++		   as we go.  Because there is a trailing last block (with file CRC),
  2.1316 ++		   there is no danger of the overread causing an unexpected EOF for a
  2.1317 ++		   valid compressed file.  As a further optimization, we do the read
  2.1318 ++		   inline (falling back to a call to get_bits if the buffer runs
  2.1319 ++		   dry).  The following (up to got_huff_bits:) is equivalent to
  2.1320 ++		   j=get_bits(bd,hufGroup->maxLen);
  2.1321 ++		 */
  2.1322 ++		while (bd->inbufBitCount<hufGroup->maxLen) {
  2.1323 ++			if(bd->inbufPos==bd->inbufCount) {
  2.1324 ++				j = get_bits(bd,hufGroup->maxLen);
  2.1325 ++				goto got_huff_bits;
  2.1326 ++			}
  2.1327 ++			bd->inbufBits=(bd->inbufBits<<8)|bd->inbuf[bd->inbufPos++];
  2.1328 ++			bd->inbufBitCount+=8;
  2.1329 ++		};
  2.1330 ++		bd->inbufBitCount-=hufGroup->maxLen;
  2.1331 ++		j = (bd->inbufBits>>bd->inbufBitCount)&((1<<hufGroup->maxLen)-1);
  2.1332 ++got_huff_bits:
  2.1333 ++		/* Figure how how many bits are in next symbol and unget extras */
  2.1334 ++		i=hufGroup->minLen;
  2.1335 ++		while(j>limit[i]) ++i;
  2.1336 ++		bd->inbufBitCount += (hufGroup->maxLen - i);
  2.1337 ++		/* Huffman decode value to get nextSym (with bounds checking) */
  2.1338 ++		if ((i > hufGroup->maxLen)
  2.1339 ++			|| (((unsigned)(j=(j>>(hufGroup->maxLen-i))-base[i]))
  2.1340 ++				>= MAX_SYMBOLS))
  2.1341 ++			return RETVAL_DATA_ERROR;
  2.1342 ++		nextSym = hufGroup->permute[j];
  2.1343 ++		/* We have now decoded the symbol, which indicates either a new literal
  2.1344 ++		   byte, or a repeated run of the most recent literal byte.  First,
  2.1345 ++		   check if nextSym indicates a repeated run, and if so loop collecting
  2.1346 ++		   how many times to repeat the last literal. */
  2.1347 ++		if (((unsigned)nextSym) <= SYMBOL_RUNB) { /* RUNA or RUNB */
  2.1348 ++			/* If this is the start of a new run, zero out counter */
  2.1349 ++			if(!runPos) {
  2.1350 ++				runPos = 1;
  2.1351 ++				t = 0;
  2.1352 ++			}
  2.1353 ++			/* Neat trick that saves 1 symbol: instead of or-ing 0 or 1 at
  2.1354 ++			   each bit position, add 1 or 2 instead.  For example,
  2.1355 ++			   1011 is 1<<0 + 1<<1 + 2<<2.  1010 is 2<<0 + 2<<1 + 1<<2.
  2.1356 ++			   You can make any bit pattern that way using 1 less symbol than
  2.1357 ++			   the basic or 0/1 method (except all bits 0, which would use no
  2.1358 ++			   symbols, but a run of length 0 doesn't mean anything in this
  2.1359 ++			   context).  Thus space is saved. */
  2.1360 ++			t += (runPos << nextSym); /* +runPos if RUNA; +2*runPos if RUNB */
  2.1361 ++			runPos <<= 1;
  2.1362 ++			continue;
  2.1363 ++		}
  2.1364 ++		/* When we hit the first non-run symbol after a run, we now know
  2.1365 ++		   how many times to repeat the last literal, so append that many
  2.1366 ++		   copies to our buffer of decoded symbols (dbuf) now.  (The last
  2.1367 ++		   literal used is the one at the head of the mtfSymbol array.) */
  2.1368 ++		if(runPos) {
  2.1369 ++			runPos=0;
  2.1370 ++			if(dbufCount+t>=dbufSize) return RETVAL_DATA_ERROR;
  2.1371 ++
  2.1372 ++			uc = symToByte[mtfSymbol[0]];
  2.1373 ++			byteCount[uc] += t;
  2.1374 ++			while(t--) dbuf[dbufCount++]=uc;
  2.1375 ++		}
  2.1376 ++		/* Is this the terminating symbol? */
  2.1377 ++		if(nextSym>symTotal) break;
  2.1378 ++		/* At this point, nextSym indicates a new literal character.  Subtract
  2.1379 ++		   one to get the position in the MTF array at which this literal is
  2.1380 ++		   currently to be found.  (Note that the result can't be -1 or 0,
  2.1381 ++		   because 0 and 1 are RUNA and RUNB.  But another instance of the
  2.1382 ++		   first symbol in the mtf array, position 0, would have been handled
  2.1383 ++		   as part of a run above.  Therefore 1 unused mtf position minus
  2.1384 ++		   2 non-literal nextSym values equals -1.) */
  2.1385 ++		if(dbufCount>=dbufSize) return RETVAL_DATA_ERROR;
  2.1386 ++		i = nextSym - 1;
  2.1387 ++		uc = mtfSymbol[i];
  2.1388 ++		/* Adjust the MTF array.  Since we typically expect to move only a
  2.1389 ++		 * small number of symbols, and are bound by 256 in any case, using
  2.1390 ++		 * memmove here would typically be bigger and slower due to function
  2.1391 ++		 * call overhead and other assorted setup costs. */
  2.1392 ++		do {
  2.1393 ++			mtfSymbol[i] = mtfSymbol[i-1];
  2.1394 ++		} while (--i);
  2.1395 ++		mtfSymbol[0] = uc;
  2.1396 ++		uc=symToByte[uc];
  2.1397 ++		/* We have our literal byte.  Save it into dbuf. */
  2.1398 ++		byteCount[uc]++;
  2.1399 ++		dbuf[dbufCount++] = (unsigned int)uc;
  2.1400 ++	}
  2.1401 ++	/* At this point, we've read all the Huffman-coded symbols (and repeated
  2.1402 ++       runs) for this block from the input stream, and decoded them into the
  2.1403 ++	   intermediate buffer.  There are dbufCount many decoded bytes in dbuf[].
  2.1404 ++	   Now undo the Burrows-Wheeler transform on dbuf.
  2.1405 ++	   See http://dogma.net/markn/articles/bwt/bwt.htm
  2.1406 ++	 */
  2.1407 ++	/* Turn byteCount into cumulative occurrence counts of 0 to n-1. */
  2.1408 ++	j=0;
  2.1409 ++	for(i=0;i<256;i++) {
  2.1410 ++		k=j+byteCount[i];
  2.1411 ++		byteCount[i] = j;
  2.1412 ++		j=k;
  2.1413 ++	}
  2.1414 ++	/* Figure out what order dbuf would be in if we sorted it. */
  2.1415 ++	for (i=0;i<dbufCount;i++) {
  2.1416 ++		uc=(unsigned char)(dbuf[i] & 0xff);
  2.1417 ++		dbuf[byteCount[uc]] |= (i << 8);
  2.1418 ++		byteCount[uc]++;
  2.1419 ++	}
  2.1420 ++	/* Decode first byte by hand to initialize "previous" byte.  Note that it
  2.1421 ++	   doesn't get output, and if the first three characters are identical
  2.1422 ++	   it doesn't qualify as a run (hence writeRunCountdown=5). */
  2.1423 ++	if(dbufCount) {
  2.1424 ++		if(origPtr>=dbufCount) return RETVAL_DATA_ERROR;
  2.1425 ++		bd->writePos=dbuf[origPtr];
  2.1426 ++	    bd->writeCurrent=(unsigned char)(bd->writePos&0xff);
  2.1427 ++		bd->writePos>>=8;
  2.1428 ++		bd->writeRunCountdown=5;
  2.1429 ++	}
  2.1430 ++	bd->writeCount=dbufCount;
  2.1431 ++
  2.1432 ++	return RETVAL_OK;
  2.1433 ++}
  2.1434 ++
  2.1435 ++/* Undo burrows-wheeler transform on intermediate buffer to produce output.
  2.1436 ++   If start_bunzip was initialized with out_fd=-1, then up to len bytes of
  2.1437 ++   data are written to outbuf.  Return value is number of bytes written or
  2.1438 ++   error (all errors are negative numbers).  If out_fd!=-1, outbuf and len
  2.1439 ++   are ignored, data is written to out_fd and return is RETVAL_OK or error.
  2.1440 ++*/
  2.1441 ++
  2.1442 ++static int read_bunzip(bunzip_data *bd, char *outbuf, int len)
  2.1443 ++{
  2.1444 ++	const unsigned int *dbuf;
  2.1445 ++	int pos,xcurrent,previous,gotcount;
  2.1446 ++
  2.1447 ++	/* If last read was short due to end of file, return last block now */
  2.1448 ++	if(bd->writeCount<0) return bd->writeCount;
  2.1449 ++
  2.1450 ++	gotcount = 0;
  2.1451 ++	dbuf=bd->dbuf;
  2.1452 ++	pos=bd->writePos;
  2.1453 ++	xcurrent=bd->writeCurrent;
  2.1454 ++
  2.1455 ++	/* We will always have pending decoded data to write into the output
  2.1456 ++	   buffer unless this is the very first call (in which case we haven't
  2.1457 ++	   Huffman-decoded a block into the intermediate buffer yet). */
  2.1458 ++
  2.1459 ++	if (bd->writeCopies) {
  2.1460 ++		/* Inside the loop, writeCopies means extra copies (beyond 1) */
  2.1461 ++		--bd->writeCopies;
  2.1462 ++		/* Loop outputting bytes */
  2.1463 ++		for(;;) {
  2.1464 ++			/* If the output buffer is full, snapshot state and return */
  2.1465 ++			if(gotcount >= len) {
  2.1466 ++				bd->writePos=pos;
  2.1467 ++				bd->writeCurrent=xcurrent;
  2.1468 ++				bd->writeCopies++;
  2.1469 ++				return len;
  2.1470 ++			}
  2.1471 ++			/* Write next byte into output buffer, updating CRC */
  2.1472 ++			outbuf[gotcount++] = xcurrent;
  2.1473 ++			bd->writeCRC=(((bd->writeCRC)<<8)
  2.1474 ++						  ^bd->crc32Table[((bd->writeCRC)>>24)^xcurrent]);
  2.1475 ++			/* Loop now if we're outputting multiple copies of this byte */
  2.1476 ++			if (bd->writeCopies) {
  2.1477 ++				--bd->writeCopies;
  2.1478 ++				continue;
  2.1479 ++			}
  2.1480 ++decode_next_byte:
  2.1481 ++			if (!bd->writeCount--) break;
  2.1482 ++			/* Follow sequence vector to undo Burrows-Wheeler transform */
  2.1483 ++			previous=xcurrent;
  2.1484 ++			pos=dbuf[pos];
  2.1485 ++			xcurrent=pos&0xff;
  2.1486 ++			pos>>=8;
  2.1487 ++			/* After 3 consecutive copies of the same byte, the 4th is a repeat
  2.1488 ++			   count.  We count down from 4 instead
  2.1489 ++			 * of counting up because testing for non-zero is faster */
  2.1490 ++			if(--bd->writeRunCountdown) {
  2.1491 ++				if(xcurrent!=previous) bd->writeRunCountdown=4;
  2.1492 ++			} else {
  2.1493 ++				/* We have a repeated run, this byte indicates the count */
  2.1494 ++				bd->writeCopies=xcurrent;
  2.1495 ++				xcurrent=previous;
  2.1496 ++				bd->writeRunCountdown=5;
  2.1497 ++				/* Sometimes there are just 3 bytes (run length 0) */
  2.1498 ++				if(!bd->writeCopies) goto decode_next_byte;
  2.1499 ++				/* Subtract the 1 copy we'd output anyway to get extras */
  2.1500 ++				--bd->writeCopies;
  2.1501 ++			}
  2.1502 ++		}
  2.1503 ++		/* Decompression of this block completed successfully */
  2.1504 ++		bd->writeCRC=~bd->writeCRC;
  2.1505 ++		bd->totalCRC=((bd->totalCRC<<1) | (bd->totalCRC>>31)) ^ bd->writeCRC;
  2.1506 ++		/* If this block had a CRC error, force file level CRC error. */
  2.1507 ++		if(bd->writeCRC!=bd->headerCRC) {
  2.1508 ++			bd->totalCRC=bd->headerCRC+1;
  2.1509 ++			return RETVAL_LAST_BLOCK;
  2.1510 ++		}
  2.1511 ++	}
  2.1512 ++
  2.1513 ++	/* Refill the intermediate buffer by Huffman-decoding next block of input */
  2.1514 ++	/* (previous is just a convenient unused temp variable here) */
  2.1515 ++	previous=get_next_block(bd);
  2.1516 ++	if(previous) {
  2.1517 ++		bd->writeCount=previous;
  2.1518 ++		return (previous!=RETVAL_LAST_BLOCK) ? previous : gotcount;
  2.1519 ++	}
  2.1520 ++	bd->writeCRC=0xffffffffUL;
  2.1521 ++	pos=bd->writePos;
  2.1522 ++	xcurrent=bd->writeCurrent;
  2.1523 ++	goto decode_next_byte;
  2.1524 ++}
  2.1525 ++
  2.1526 ++static int nofill(void *buf,unsigned int len) {
  2.1527 ++	return -1;
  2.1528 ++}
  2.1529 ++
  2.1530 ++/* Allocate the structure, read file header.  If in_fd==-1, inbuf must contain
  2.1531 ++   a complete bunzip file (len bytes long).  If in_fd!=-1, inbuf and len are
  2.1532 ++   ignored, and data is read from file handle into temporary buffer. */
  2.1533 ++static int start_bunzip(bunzip_data **bdp, void *inbuf, int len,
  2.1534 ++			int (*fill)(void*,unsigned int))
  2.1535 ++{
  2.1536 ++	bunzip_data *bd;
  2.1537 ++	unsigned int i,j,c;
  2.1538 ++	const unsigned int BZh0=(((unsigned int)'B')<<24)+(((unsigned int)'Z')<<16)
  2.1539 ++							+(((unsigned int)'h')<<8)+(unsigned int)'0';
  2.1540 ++
  2.1541 ++	/* Figure out how much data to allocate */
  2.1542 ++	i=sizeof(bunzip_data);
  2.1543 ++
  2.1544 ++	/* Allocate bunzip_data.  Most fields initialize to zero. */
  2.1545 ++	bd=*bdp=malloc(i);
  2.1546 ++	memset(bd,0,sizeof(bunzip_data));
  2.1547 ++	/* Setup input buffer */
  2.1548 ++	bd->inbuf=inbuf;
  2.1549 ++	bd->inbufCount=len;
  2.1550 ++	if(fill != NULL)
  2.1551 ++		bd->fill=fill;
  2.1552 ++	else
  2.1553 ++		bd->fill=nofill;
  2.1554 ++
  2.1555 ++	/* Init the CRC32 table (big endian) */
  2.1556 ++	for(i=0;i<256;i++) {
  2.1557 ++		c=i<<24;
  2.1558 ++		for(j=8;j;j--)
  2.1559 ++			c=c&0x80000000 ? (c<<1)^0x04c11db7 : (c<<1);
  2.1560 ++		bd->crc32Table[i]=c;
  2.1561 ++	}
  2.1562 ++
  2.1563 ++	/* Ensure that file starts with "BZh['1'-'9']." */
  2.1564 ++	i = get_bits(bd,32);
  2.1565 ++	if (((unsigned int)(i-BZh0-1)) >= 9) return RETVAL_NOT_BZIP_DATA;
  2.1566 ++
  2.1567 ++	/* Fourth byte (ascii '1'-'9'), indicates block size in units of 100k of
  2.1568 ++	   uncompressed data.  Allocate intermediate buffer for block. */
  2.1569 ++	bd->dbufSize=100000*(i-BZh0);
  2.1570 ++
  2.1571 ++	bd->dbuf=large_malloc(bd->dbufSize * sizeof(int));
  2.1572 ++	return RETVAL_OK;
  2.1573 ++}
  2.1574 ++
  2.1575 ++/* Example usage: decompress src_fd to dst_fd.  (Stops at end of bzip data,
  2.1576 ++   not end of file.) */
  2.1577 ++STATIC int bunzip2(char *inbuf, int len, 
  2.1578 ++		   int(*fill)(void*,unsigned int),
  2.1579 ++		   int(*writebb)(char*,unsigned int),
  2.1580 ++		   int *pos)
  2.1581 ++{
  2.1582 ++	char *outbuf;
  2.1583 ++	bunzip_data *bd;
  2.1584 ++	int i;
  2.1585 ++
  2.1586 ++	outbuf=malloc(BZIP2_IOBUF_SIZE);
  2.1587 ++	if(!(i=start_bunzip(&bd,inbuf,len,fill))) {
  2.1588 ++		for(;;) {
  2.1589 ++			if((i=read_bunzip(bd,outbuf,BZIP2_IOBUF_SIZE)) <= 0) break;
  2.1590 ++			if(i!=writebb(outbuf,i)) {
  2.1591 ++				i=RETVAL_UNEXPECTED_OUTPUT_EOF;
  2.1592 ++				break;
  2.1593 ++			}
  2.1594 ++		}
  2.1595 ++	}
  2.1596 ++	/* Check CRC and release memory */
  2.1597 ++	if(i==RETVAL_LAST_BLOCK) {
  2.1598 ++		if (bd->headerCRC!=bd->totalCRC) {
  2.1599 ++			error("Data integrity error when decompressing.");
  2.1600 ++		} else {
  2.1601 ++			i=RETVAL_OK;
  2.1602 ++		}
  2.1603 ++	}
  2.1604 ++	else if (i==RETVAL_UNEXPECTED_OUTPUT_EOF) {
  2.1605 ++		error("Compressed file ends unexpectedly");
  2.1606 ++	}
  2.1607 ++	if(bd->dbuf) large_free(bd->dbuf);
  2.1608 ++	if(pos)
  2.1609 ++		*pos = bd->inbufPos;
  2.1610 ++	free(bd);
  2.1611 ++	free(outbuf);
  2.1612 ++
  2.1613 ++	return i;
  2.1614 ++}
  2.1615 ++
  2.1616 +--- linux-2.6.24.2/lib/decompress_unlzma.c
  2.1617 ++++ linux-2.6.24.2/lib/decompress_unlzma.c
  2.1618 +@@ -0,0 +1,605 @@
  2.1619 ++/* Lzma decompressor for Linux kernel. Shamelessly snarfed
  2.1620 ++ * from busybox 1.1.1
  2.1621 ++ *
  2.1622 ++ * Linux kernel adaptation
  2.1623 ++ * Copyright (C) 2006  Alain <alain@knaff.lu>
  2.1624 ++ *
  2.1625 ++ * Based on small lzma deflate implementation/Small range coder 
  2.1626 ++ * implementation for lzma.
  2.1627 ++ * Copyright (C) 2006  Aurelien Jacobs <aurel@gnuage.org>
  2.1628 ++ *
  2.1629 ++ * Based on LzmaDecode.c from the LZMA SDK 4.22 (http://www.7-zip.org/)
  2.1630 ++ * Copyright (C) 1999-2005  Igor Pavlov
  2.1631 ++ *
  2.1632 ++ * Copyrights of the parts, see headers below.
  2.1633 ++ *
  2.1634 ++ *
  2.1635 ++ * This program is free software; you can redistribute it and/or
  2.1636 ++ * modify it under the terms of the GNU Lesser General Public
  2.1637 ++ * License as published by the Free Software Foundation; either
  2.1638 ++ * version 2.1 of the License, or (at your option) any later version.
  2.1639 ++ *
  2.1640 ++ * This program is distributed in the hope that it will be useful,
  2.1641 ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
  2.1642 ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  2.1643 ++ * Lesser General Public License for more details.
  2.1644 ++ *
  2.1645 ++ * You should have received a copy of the GNU Lesser General Public
  2.1646 ++ * License along with this library; if not, write to the Free Software
  2.1647 ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  2.1648 ++ */
  2.1649 ++
  2.1650 ++#ifndef STATIC
  2.1651 ++
  2.1652 ++#include <linux/kernel.h>
  2.1653 ++#include <linux/fs.h>
  2.1654 ++#include <linux/string.h>
  2.1655 ++
  2.1656 ++#ifdef TEST
  2.1657 ++#include "test.h"
  2.1658 ++#else
  2.1659 ++#include <linux/vmalloc.h>
  2.1660 ++#endif
  2.1661 ++
  2.1662 ++static void __init *large_malloc(size_t size)
  2.1663 ++{
  2.1664 ++	return vmalloc(size);
  2.1665 ++}
  2.1666 ++
  2.1667 ++static void __init large_free(void *where)
  2.1668 ++{
  2.1669 ++	vfree(where);
  2.1670 ++}
  2.1671 ++
  2.1672 ++#ifndef TEST
  2.1673 ++static void __init *malloc(size_t size)
  2.1674 ++{
  2.1675 ++	return kmalloc(size, GFP_KERNEL);
  2.1676 ++}
  2.1677 ++
  2.1678 ++static void __init free(void *where)
  2.1679 ++{
  2.1680 ++	kfree(where);
  2.1681 ++}
  2.1682 ++
  2.1683 ++static void __init error(char *x)
  2.1684 ++{
  2.1685 ++	printk(KERN_ERR "%s\n", x);
  2.1686 ++}
  2.1687 ++
  2.1688 ++#endif
  2.1689 ++
  2.1690 ++#define STATIC /**/
  2.1691 ++
  2.1692 ++#endif
  2.1693 ++
  2.1694 ++#include <linux/decompress_unlzma.h>
  2.1695 ++
  2.1696 ++#define	MIN(a,b) (((a)<(b))?(a):(b))
  2.1697 ++
  2.1698 ++static long long read_int(unsigned char *ptr, int size)
  2.1699 ++{
  2.1700 ++	int i;
  2.1701 ++	long long ret=0;
  2.1702 ++
  2.1703 ++	for(i=0; i<size; i++) {
  2.1704 ++		ret = (ret << 8) | ptr[size-i-1];
  2.1705 ++	}
  2.1706 ++	return ret;
  2.1707 ++}
  2.1708 ++
  2.1709 ++#define ENDIAN_CONVERT(x) x=(typeof(x))read_int((unsigned char*)&x,sizeof(x))
  2.1710 ++
  2.1711 ++
  2.1712 ++/* Small range coder implementation for lzma.
  2.1713 ++ * Copyright (C) 2006  Aurelien Jacobs <aurel@gnuage.org>
  2.1714 ++ *
  2.1715 ++ * Based on LzmaDecode.c from the LZMA SDK 4.22 (http://www.7-zip.org/)
  2.1716 ++ * Copyright (c) 1999-2005  Igor Pavlov
  2.1717 ++ */
  2.1718 ++
  2.1719 ++#ifndef always_inline
  2.1720 ++#  if defined(__GNUC__) && (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >0)
  2.1721 ++#    define always_inline __attribute__((always_inline)) inline
  2.1722 ++#  else
  2.1723 ++#    define always_inline inline
  2.1724 ++#  endif
  2.1725 ++#endif
  2.1726 ++
  2.1727 ++#ifdef CONFIG_FEATURE_LZMA_FAST
  2.1728 ++#  define speed_inline always_inline
  2.1729 ++#else
  2.1730 ++#  define speed_inline
  2.1731 ++#endif
  2.1732 ++
  2.1733 ++
  2.1734 ++typedef struct {
  2.1735 ++	int (*fill)(void*,unsigned int);
  2.1736 ++	uint8_t *ptr;
  2.1737 ++	uint8_t *buffer;
  2.1738 ++	uint8_t *buffer_end;
  2.1739 ++	int buffer_size;
  2.1740 ++	uint32_t code;
  2.1741 ++	uint32_t range;
  2.1742 ++	uint32_t bound;
  2.1743 ++} rc_t;
  2.1744 ++
  2.1745 ++
  2.1746 ++#define RC_TOP_BITS 24
  2.1747 ++#define RC_MOVE_BITS 5
  2.1748 ++#define RC_MODEL_TOTAL_BITS 11
  2.1749 ++
  2.1750 ++
  2.1751 ++/* Called twice: once at startup and once in rc_normalize() */
  2.1752 ++static void rc_read(rc_t * rc)
  2.1753 ++{
  2.1754 ++	rc->buffer_size = rc->fill((char*)rc->buffer, LZMA_IOBUF_SIZE);
  2.1755 ++	if (rc->buffer_size <= 0)
  2.1756 ++		error("unexpected EOF");
  2.1757 ++	rc->ptr = rc->buffer;
  2.1758 ++	rc->buffer_end = rc->buffer + rc->buffer_size;
  2.1759 ++}
  2.1760 ++
  2.1761 ++/* Called once */
  2.1762 ++static always_inline void rc_init(rc_t * rc, int (*fill)(void*,unsigned int),
  2.1763 ++				  char *buffer, int buffer_size)
  2.1764 ++{
  2.1765 ++	rc->fill = fill;
  2.1766 ++	rc->buffer = (uint8_t *)buffer;
  2.1767 ++	rc->buffer_size = buffer_size;
  2.1768 ++	rc->buffer_end = rc->buffer + rc->buffer_size;
  2.1769 ++	rc->ptr = rc->buffer;
  2.1770 ++
  2.1771 ++	rc->code = 0;
  2.1772 ++	rc->range = 0xFFFFFFFF;
  2.1773 ++}
  2.1774 ++
  2.1775 ++static always_inline void rc_init_code(rc_t * rc)
  2.1776 ++{
  2.1777 ++	int i;
  2.1778 ++
  2.1779 ++	for (i = 0; i < 5; i++) {
  2.1780 ++		if (rc->ptr >= rc->buffer_end)
  2.1781 ++			rc_read(rc);
  2.1782 ++		rc->code = (rc->code << 8) | *rc->ptr++;
  2.1783 ++	}
  2.1784 ++}
  2.1785 ++
  2.1786 ++
  2.1787 ++/* Called once. TODO: bb_maybe_free() */
  2.1788 ++static always_inline void rc_free(rc_t * rc)
  2.1789 ++{
  2.1790 ++	free(rc->buffer);
  2.1791 ++}
  2.1792 ++
  2.1793 ++/* Called twice, but one callsite is in speed_inline'd rc_is_bit_0_helper() */
  2.1794 ++static void rc_do_normalize(rc_t * rc)
  2.1795 ++{
  2.1796 ++	if (rc->ptr >= rc->buffer_end)
  2.1797 ++		rc_read(rc);
  2.1798 ++	rc->range <<= 8;
  2.1799 ++	rc->code = (rc->code << 8) | *rc->ptr++;
  2.1800 ++}
  2.1801 ++static always_inline void rc_normalize(rc_t * rc)
  2.1802 ++{
  2.1803 ++	if (rc->range < (1 << RC_TOP_BITS)) {
  2.1804 ++		rc_do_normalize(rc);
  2.1805 ++	}
  2.1806 ++}
  2.1807 ++
  2.1808 ++/* Called 9 times */
  2.1809 ++/* Why rc_is_bit_0_helper exists?
  2.1810 ++ * Because we want to always expose (rc->code < rc->bound) to optimizer
  2.1811 ++ */
  2.1812 ++static speed_inline uint32_t rc_is_bit_0_helper(rc_t * rc, uint16_t * p)
  2.1813 ++{
  2.1814 ++	rc_normalize(rc);
  2.1815 ++	rc->bound = *p * (rc->range >> RC_MODEL_TOTAL_BITS);
  2.1816 ++	return rc->bound;
  2.1817 ++}
  2.1818 ++static always_inline int rc_is_bit_0(rc_t * rc, uint16_t * p)
  2.1819 ++{
  2.1820 ++	uint32_t t = rc_is_bit_0_helper(rc, p);
  2.1821 ++	return rc->code < t;
  2.1822 ++}
  2.1823 ++
  2.1824 ++/* Called ~10 times, but very small, thus inlined */
  2.1825 ++static speed_inline void rc_update_bit_0(rc_t * rc, uint16_t * p)
  2.1826 ++{
  2.1827 ++	rc->range = rc->bound;
  2.1828 ++	*p += ((1 << RC_MODEL_TOTAL_BITS) - *p) >> RC_MOVE_BITS;
  2.1829 ++}
  2.1830 ++static speed_inline void rc_update_bit_1(rc_t * rc, uint16_t * p)
  2.1831 ++{
  2.1832 ++	rc->range -= rc->bound;
  2.1833 ++	rc->code -= rc->bound;
  2.1834 ++	*p -= *p >> RC_MOVE_BITS;
  2.1835 ++}
  2.1836 ++
  2.1837 ++/* Called 4 times in unlzma loop */
  2.1838 ++static int rc_get_bit(rc_t * rc, uint16_t * p, int *symbol)
  2.1839 ++{
  2.1840 ++	if (rc_is_bit_0(rc, p)) {
  2.1841 ++		rc_update_bit_0(rc, p);
  2.1842 ++		*symbol *= 2;
  2.1843 ++		return 0;
  2.1844 ++	} else {
  2.1845 ++		rc_update_bit_1(rc, p);
  2.1846 ++		*symbol = *symbol * 2 + 1;
  2.1847 ++		return 1;
  2.1848 ++	}
  2.1849 ++}
  2.1850 ++
  2.1851 ++/* Called once */
  2.1852 ++static always_inline int rc_direct_bit(rc_t * rc)
  2.1853 ++{
  2.1854 ++	rc_normalize(rc);
  2.1855 ++	rc->range >>= 1;
  2.1856 ++	if (rc->code >= rc->range) {
  2.1857 ++		rc->code -= rc->range;
  2.1858 ++		return 1;
  2.1859 ++	}
  2.1860 ++	return 0;
  2.1861 ++}
  2.1862 ++
  2.1863 ++/* Called twice */
  2.1864 ++static speed_inline void
  2.1865 ++rc_bit_tree_decode(rc_t * rc, uint16_t * p, int num_levels, int *symbol)
  2.1866 ++{
  2.1867 ++	int i = num_levels;
  2.1868 ++
  2.1869 ++	*symbol = 1;
  2.1870 ++	while (i--)
  2.1871 ++		rc_get_bit(rc, p + *symbol, symbol);
  2.1872 ++	*symbol -= 1 << num_levels;
  2.1873 ++}
  2.1874 ++
  2.1875 ++
  2.1876 ++/*
  2.1877 ++ * Small lzma deflate implementation.
  2.1878 ++ * Copyright (C) 2006  Aurelien Jacobs <aurel@gnuage.org>
  2.1879 ++ *
  2.1880 ++ * Based on LzmaDecode.c from the LZMA SDK 4.22 (http://www.7-zip.org/)
  2.1881 ++ * Copyright (C) 1999-2005  Igor Pavlov
  2.1882 ++ */
  2.1883 ++
  2.1884 ++
  2.1885 ++typedef struct {
  2.1886 ++	uint8_t pos;
  2.1887 ++	uint32_t dict_size;
  2.1888 ++	uint64_t dst_size;
  2.1889 ++} __attribute__ ((packed)) lzma_header_t;
  2.1890 ++
  2.1891 ++
  2.1892 ++#define LZMA_BASE_SIZE 1846
  2.1893 ++#define LZMA_LIT_SIZE 768
  2.1894 ++
  2.1895 ++#define LZMA_NUM_POS_BITS_MAX 4
  2.1896 ++
  2.1897 ++#define LZMA_LEN_NUM_LOW_BITS 3
  2.1898 ++#define LZMA_LEN_NUM_MID_BITS 3
  2.1899 ++#define LZMA_LEN_NUM_HIGH_BITS 8
  2.1900 ++
  2.1901 ++#define LZMA_LEN_CHOICE 0
  2.1902 ++#define LZMA_LEN_CHOICE_2 (LZMA_LEN_CHOICE + 1)
  2.1903 ++#define LZMA_LEN_LOW (LZMA_LEN_CHOICE_2 + 1)
  2.1904 ++#define LZMA_LEN_MID (LZMA_LEN_LOW \
  2.1905 ++		      + (1 << (LZMA_NUM_POS_BITS_MAX + LZMA_LEN_NUM_LOW_BITS)))
  2.1906 ++#define LZMA_LEN_HIGH (LZMA_LEN_MID \
  2.1907 ++		       +(1 << (LZMA_NUM_POS_BITS_MAX + LZMA_LEN_NUM_MID_BITS)))
  2.1908 ++#define LZMA_NUM_LEN_PROBS (LZMA_LEN_HIGH + (1 << LZMA_LEN_NUM_HIGH_BITS))
  2.1909 ++
  2.1910 ++#define LZMA_NUM_STATES 12
  2.1911 ++#define LZMA_NUM_LIT_STATES 7
  2.1912 ++
  2.1913 ++#define LZMA_START_POS_MODEL_INDEX 4
  2.1914 ++#define LZMA_END_POS_MODEL_INDEX 14
  2.1915 ++#define LZMA_NUM_FULL_DISTANCES (1 << (LZMA_END_POS_MODEL_INDEX >> 1))
  2.1916 ++
  2.1917 ++#define LZMA_NUM_POS_SLOT_BITS 6
  2.1918 ++#define LZMA_NUM_LEN_TO_POS_STATES 4
  2.1919 ++
  2.1920 ++#define LZMA_NUM_ALIGN_BITS 4
  2.1921 ++
  2.1922 ++#define LZMA_MATCH_MIN_LEN 2
  2.1923 ++
  2.1924 ++#define LZMA_IS_MATCH 0
  2.1925 ++#define LZMA_IS_REP (LZMA_IS_MATCH + (LZMA_NUM_STATES <<LZMA_NUM_POS_BITS_MAX))
  2.1926 ++#define LZMA_IS_REP_G0 (LZMA_IS_REP + LZMA_NUM_STATES)
  2.1927 ++#define LZMA_IS_REP_G1 (LZMA_IS_REP_G0 + LZMA_NUM_STATES)
  2.1928 ++#define LZMA_IS_REP_G2 (LZMA_IS_REP_G1 + LZMA_NUM_STATES)
  2.1929 ++#define LZMA_IS_REP_0_LONG (LZMA_IS_REP_G2 + LZMA_NUM_STATES)
  2.1930 ++#define LZMA_POS_SLOT (LZMA_IS_REP_0_LONG \
  2.1931 ++		       + (LZMA_NUM_STATES << LZMA_NUM_POS_BITS_MAX))
  2.1932 ++#define LZMA_SPEC_POS (LZMA_POS_SLOT \
  2.1933 ++		       +(LZMA_NUM_LEN_TO_POS_STATES << LZMA_NUM_POS_SLOT_BITS))
  2.1934 ++#define LZMA_ALIGN (LZMA_SPEC_POS \
  2.1935 ++		    + LZMA_NUM_FULL_DISTANCES - LZMA_END_POS_MODEL_INDEX)
  2.1936 ++#define LZMA_LEN_CODER (LZMA_ALIGN + (1 << LZMA_NUM_ALIGN_BITS))
  2.1937 ++#define LZMA_REP_LEN_CODER (LZMA_LEN_CODER + LZMA_NUM_LEN_PROBS)
  2.1938 ++#define LZMA_LITERAL (LZMA_REP_LEN_CODER + LZMA_NUM_LEN_PROBS)
  2.1939 ++
  2.1940 ++
  2.1941 ++STATIC int unlzma(char *inbuf, int in_len, 
  2.1942 ++		   int(*fill)(void*,unsigned int),
  2.1943 ++		   int(*writebb)(char*,unsigned int),
  2.1944 ++		   int *posp)
  2.1945 ++{
  2.1946 ++	lzma_header_t header;
  2.1947 ++	int lc, pb, lp;
  2.1948 ++	uint32_t pos_state_mask;
  2.1949 ++	uint32_t literal_pos_mask;
  2.1950 ++	uint32_t pos;
  2.1951 ++	uint16_t *p;
  2.1952 ++	uint16_t *prob;
  2.1953 ++	uint16_t *prob_lit;
  2.1954 ++	int num_bits;
  2.1955 ++	int num_probs;
  2.1956 ++	rc_t rc;
  2.1957 ++	int i, mi;
  2.1958 ++	uint8_t *buffer;
  2.1959 ++	uint8_t previous_byte = 0;
  2.1960 ++	size_t buffer_pos = 0, global_pos = 0;
  2.1961 ++	int len = 0;
  2.1962 ++	int state = 0;
  2.1963 ++	int bufsize;
  2.1964 ++	uint32_t rep0 = 1, rep1 = 1, rep2 = 1, rep3 = 1;
  2.1965 ++
  2.1966 ++	rc_init(&rc, fill, inbuf, in_len);
  2.1967 ++
  2.1968 ++	for (i = 0; i < sizeof(header); i++) {
  2.1969 ++		if (rc.ptr >= rc.buffer_end)
  2.1970 ++			rc_read(&rc);
  2.1971 ++		((unsigned char *)&header)[i] = *rc.ptr++;
  2.1972 ++	}
  2.1973 ++
  2.1974 ++	if (header.pos >= (9 * 5 * 5))
  2.1975 ++		error("bad header");
  2.1976 ++
  2.1977 ++	mi = header.pos / 9;
  2.1978 ++	lc = header.pos % 9;
  2.1979 ++	pb = mi / 5;
  2.1980 ++	lp = mi % 5;
  2.1981 ++	pos_state_mask = (1 << pb) - 1;
  2.1982 ++	literal_pos_mask = (1 << lp) - 1;
  2.1983 ++
  2.1984 ++	ENDIAN_CONVERT(header.dict_size);
  2.1985 ++	ENDIAN_CONVERT(header.dst_size);
  2.1986 ++
  2.1987 ++	if (header.dict_size == 0)
  2.1988 ++		header.dict_size = 1;
  2.1989 ++
  2.1990 ++	bufsize = MIN(header.dst_size, header.dict_size);
  2.1991 ++	buffer = large_malloc(bufsize);
  2.1992 ++	if(buffer == NULL)
  2.1993 ++		return -1;
  2.1994 ++
  2.1995 ++	num_probs = LZMA_BASE_SIZE + (LZMA_LIT_SIZE << (lc + lp));
  2.1996 ++	p = large_malloc(num_probs * sizeof(*p));
  2.1997 ++	num_probs = LZMA_LITERAL + (LZMA_LIT_SIZE << (lc + lp));
  2.1998 ++	for (i = 0; i < num_probs; i++)
  2.1999 ++		p[i] = (1 << RC_MODEL_TOTAL_BITS) >> 1;
  2.2000 ++
  2.2001 ++	rc_init_code(&rc);
  2.2002 ++
  2.2003 ++	while (global_pos + buffer_pos < header.dst_size) {
  2.2004 ++		int pos_state = (buffer_pos + global_pos) & pos_state_mask;
  2.2005 ++
  2.2006 ++		prob =
  2.2007 ++			p + LZMA_IS_MATCH + (state << LZMA_NUM_POS_BITS_MAX) + pos_state;
  2.2008 ++		if (rc_is_bit_0(&rc, prob)) {
  2.2009 ++			mi = 1;
  2.2010 ++			rc_update_bit_0(&rc, prob);
  2.2011 ++			prob = (p + LZMA_LITERAL + (LZMA_LIT_SIZE
  2.2012 ++					* ((((buffer_pos + global_pos) & literal_pos_mask) << lc)
  2.2013 ++					+ (previous_byte >> (8 - lc)))));
  2.2014 ++
  2.2015 ++			if (state >= LZMA_NUM_LIT_STATES) {
  2.2016 ++				int match_byte;
  2.2017 ++
  2.2018 ++				pos = buffer_pos - rep0;
  2.2019 ++				while (pos >= header.dict_size)
  2.2020 ++					pos += header.dict_size;
  2.2021 ++				if(pos >= bufsize) {
  2.2022 ++					goto fail;
  2.2023 ++				}
  2.2024 ++				match_byte = buffer[pos];
  2.2025 ++				do {
  2.2026 ++					int bit;
  2.2027 ++
  2.2028 ++					match_byte <<= 1;
  2.2029 ++					bit = match_byte & 0x100;
  2.2030 ++					prob_lit = prob + 0x100 + bit + mi;
  2.2031 ++					if (rc_get_bit(&rc, prob_lit, &mi)) {
  2.2032 ++						if (!bit)
  2.2033 ++							break;
  2.2034 ++					} else {
  2.2035 ++						if (bit)
  2.2036 ++							break;
  2.2037 ++					}
  2.2038 ++				} while (mi < 0x100);
  2.2039 ++			}
  2.2040 ++			while (mi < 0x100) {
  2.2041 ++				prob_lit = prob + mi;
  2.2042 ++				rc_get_bit(&rc, prob_lit, &mi);
  2.2043 ++			}
  2.2044 ++			previous_byte = (uint8_t) mi;
  2.2045 ++
  2.2046 ++			buffer[buffer_pos++] = previous_byte;
  2.2047 ++			if (buffer_pos == header.dict_size) {
  2.2048 ++				buffer_pos = 0;
  2.2049 ++				global_pos += header.dict_size;
  2.2050 ++				writebb((char*)buffer, header.dict_size);
  2.2051 ++			}
  2.2052 ++			if (state < 4)
  2.2053 ++				state = 0;
  2.2054 ++			else if (state < 10)
  2.2055 ++				state -= 3;
  2.2056 ++			else
  2.2057 ++				state -= 6;
  2.2058 ++		} else {
  2.2059 ++			int offset;
  2.2060 ++			uint16_t *prob_len;
  2.2061 ++
  2.2062 ++			rc_update_bit_1(&rc, prob);
  2.2063 ++			prob = p + LZMA_IS_REP + state;
  2.2064 ++			if (rc_is_bit_0(&rc, prob)) {
  2.2065 ++				rc_update_bit_0(&rc, prob);
  2.2066 ++				rep3 = rep2;
  2.2067 ++				rep2 = rep1;
  2.2068 ++				rep1 = rep0;
  2.2069 ++				state = state < LZMA_NUM_LIT_STATES ? 0 : 3;
  2.2070 ++				prob = p + LZMA_LEN_CODER;
  2.2071 ++			} else {
  2.2072 ++				rc_update_bit_1(&rc, prob);
  2.2073 ++				prob = p + LZMA_IS_REP_G0 + state;
  2.2074 ++				if (rc_is_bit_0(&rc, prob)) {
  2.2075 ++					rc_update_bit_0(&rc, prob);
  2.2076 ++					prob = (p + LZMA_IS_REP_0_LONG
  2.2077 ++							+ (state << LZMA_NUM_POS_BITS_MAX) + pos_state);
  2.2078 ++					if (rc_is_bit_0(&rc, prob)) {
  2.2079 ++						rc_update_bit_0(&rc, prob);
  2.2080 ++
  2.2081 ++						state = state < LZMA_NUM_LIT_STATES ? 9 : 11;
  2.2082 ++						pos = buffer_pos - rep0;
  2.2083 ++						while (pos >= header.dict_size)
  2.2084 ++							pos += header.dict_size;
  2.2085 ++						if(pos >= bufsize) {
  2.2086 ++							goto fail;
  2.2087 ++						}
  2.2088 ++						previous_byte = buffer[pos];
  2.2089 ++						buffer[buffer_pos++] = previous_byte;
  2.2090 ++						if (buffer_pos == header.dict_size) {
  2.2091 ++							buffer_pos = 0;
  2.2092 ++							global_pos += header.dict_size;
  2.2093 ++							writebb((char*)buffer, header.dict_size);
  2.2094 ++						}
  2.2095 ++						continue;
  2.2096 ++					} else {
  2.2097 ++						rc_update_bit_1(&rc, prob);
  2.2098 ++					}
  2.2099 ++				} else {
  2.2100 ++					uint32_t distance;
  2.2101 ++
  2.2102 ++					rc_update_bit_1(&rc, prob);
  2.2103 ++					prob = p + LZMA_IS_REP_G1 + state;
  2.2104 ++					if (rc_is_bit_0(&rc, prob)) {
  2.2105 ++						rc_update_bit_0(&rc, prob);
  2.2106 ++						distance = rep1;
  2.2107 ++					} else {
  2.2108 ++						rc_update_bit_1(&rc, prob);
  2.2109 ++						prob = p + LZMA_IS_REP_G2 + state;
  2.2110 ++						if (rc_is_bit_0(&rc, prob)) {
  2.2111 ++							rc_update_bit_0(&rc, prob);
  2.2112 ++							distance = rep2;
  2.2113 ++						} else {
  2.2114 ++							rc_update_bit_1(&rc, prob);
  2.2115 ++							distance = rep3;
  2.2116 ++							rep3 = rep2;
  2.2117 ++						}
  2.2118 ++						rep2 = rep1;
  2.2119 ++					}
  2.2120 ++					rep1 = rep0;
  2.2121 ++					rep0 = distance;
  2.2122 ++				}
  2.2123 ++				state = state < LZMA_NUM_LIT_STATES ? 8 : 11;
  2.2124 ++				prob = p + LZMA_REP_LEN_CODER;
  2.2125 ++			}
  2.2126 ++
  2.2127 ++			prob_len = prob + LZMA_LEN_CHOICE;
  2.2128 ++			if (rc_is_bit_0(&rc, prob_len)) {
  2.2129 ++				rc_update_bit_0(&rc, prob_len);
  2.2130 ++				prob_len = (prob + LZMA_LEN_LOW
  2.2131 ++							+ (pos_state << LZMA_LEN_NUM_LOW_BITS));
  2.2132 ++				offset = 0;
  2.2133 ++				num_bits = LZMA_LEN_NUM_LOW_BITS;
  2.2134 ++			} else {
  2.2135 ++				rc_update_bit_1(&rc, prob_len);
  2.2136 ++				prob_len = prob + LZMA_LEN_CHOICE_2;
  2.2137 ++				if (rc_is_bit_0(&rc, prob_len)) {
  2.2138 ++					rc_update_bit_0(&rc, prob_len);
  2.2139 ++					prob_len = (prob + LZMA_LEN_MID
  2.2140 ++								+ (pos_state << LZMA_LEN_NUM_MID_BITS));
  2.2141 ++					offset = 1 << LZMA_LEN_NUM_LOW_BITS;
  2.2142 ++					num_bits = LZMA_LEN_NUM_MID_BITS;
  2.2143 ++				} else {
  2.2144 ++					rc_update_bit_1(&rc, prob_len);
  2.2145 ++					prob_len = prob + LZMA_LEN_HIGH;
  2.2146 ++					offset = ((1 << LZMA_LEN_NUM_LOW_BITS)
  2.2147 ++							  + (1 << LZMA_LEN_NUM_MID_BITS));
  2.2148 ++					num_bits = LZMA_LEN_NUM_HIGH_BITS;
  2.2149 ++				}
  2.2150 ++			}
  2.2151 ++			rc_bit_tree_decode(&rc, prob_len, num_bits, &len);
  2.2152 ++			len += offset;
  2.2153 ++
  2.2154 ++			if (state < 4) {
  2.2155 ++				int pos_slot;
  2.2156 ++
  2.2157 ++				state += LZMA_NUM_LIT_STATES;
  2.2158 ++				prob =
  2.2159 ++					p + LZMA_POS_SLOT +
  2.2160 ++					((len <
  2.2161 ++					  LZMA_NUM_LEN_TO_POS_STATES ? len :
  2.2162 ++					  LZMA_NUM_LEN_TO_POS_STATES - 1)
  2.2163 ++					 << LZMA_NUM_POS_SLOT_BITS);
  2.2164 ++				rc_bit_tree_decode(&rc, prob, LZMA_NUM_POS_SLOT_BITS,
  2.2165 ++								   &pos_slot);
  2.2166 ++				if (pos_slot >= LZMA_START_POS_MODEL_INDEX) {
  2.2167 ++					num_bits = (pos_slot >> 1) - 1;
  2.2168 ++					rep0 = 2 | (pos_slot & 1);
  2.2169 ++					if (pos_slot < LZMA_END_POS_MODEL_INDEX) {
  2.2170 ++						rep0 <<= num_bits;
  2.2171 ++						prob = p + LZMA_SPEC_POS + rep0 - pos_slot - 1;
  2.2172 ++					} else {
  2.2173 ++						num_bits -= LZMA_NUM_ALIGN_BITS;
  2.2174 ++						while (num_bits--)
  2.2175 ++							rep0 = (rep0 << 1) | rc_direct_bit(&rc);
  2.2176 ++						prob = p + LZMA_ALIGN;
  2.2177 ++						rep0 <<= LZMA_NUM_ALIGN_BITS;
  2.2178 ++						num_bits = LZMA_NUM_ALIGN_BITS;
  2.2179 ++					}
  2.2180 ++					i = 1;
  2.2181 ++					mi = 1;
  2.2182 ++					while (num_bits--) {
  2.2183 ++						if (rc_get_bit(&rc, prob + mi, &mi))
  2.2184 ++							rep0 |= i;
  2.2185 ++						i <<= 1;
  2.2186 ++					}
  2.2187 ++				} else
  2.2188 ++					rep0 = pos_slot;
  2.2189 ++				if (++rep0 == 0)
  2.2190 ++					break;
  2.2191 ++			}
  2.2192 ++
  2.2193 ++			len += LZMA_MATCH_MIN_LEN;
  2.2194 ++
  2.2195 ++			do {
  2.2196 ++				pos = buffer_pos - rep0;
  2.2197 ++				while (pos >= header.dict_size)
  2.2198 ++					pos += header.dict_size;
  2.2199 ++				if(pos >= bufsize) {
  2.2200 ++					goto fail;
  2.2201 ++				}
  2.2202 ++				previous_byte = buffer[pos];
  2.2203 ++				buffer[buffer_pos++] = previous_byte;
  2.2204 ++				if (buffer_pos == header.dict_size) {
  2.2205 ++					buffer_pos = 0;
  2.2206 ++					global_pos += header.dict_size;
  2.2207 ++					writebb((char*)buffer, header.dict_size);
  2.2208 ++				}
  2.2209 ++				len--;
  2.2210 ++			} while (len != 0 && buffer_pos < header.dst_size);
  2.2211 ++		}
  2.2212 ++	}
  2.2213 ++
  2.2214 ++	writebb((char*)buffer, buffer_pos);
  2.2215 ++	if(posp) {
  2.2216 ++		*posp = rc.ptr-rc.buffer;
  2.2217 ++	}
  2.2218 ++	large_free(buffer);
  2.2219 ++	return 0;
  2.2220 ++ fail:
  2.2221 ++	large_free(buffer);
  2.2222 ++	return -1;
  2.2223 ++}
  2.2224 +--- linux-2.6.24.2/lib/Makefile
  2.2225 ++++ linux-2.6.24.2/lib/Makefile
  2.2226 +@@ -50,6 +50,10 @@ obj-$(CONFIG_CRC7)	+= crc7.o
  2.2227 + obj-$(CONFIG_LIBCRC32C)	+= libcrc32c.o
  2.2228 + obj-$(CONFIG_GENERIC_ALLOCATOR) += genalloc.o
  2.2229 + 
  2.2230 ++obj-$(CONFIG_RD_BZIP2)	+= decompress_bunzip2.o
  2.2231 ++obj-$(CONFIG_RD_LZMA)	+= decompress_unlzma.o
  2.2232 ++
  2.2233 ++
  2.2234 + obj-$(CONFIG_ZLIB_INFLATE) += zlib_inflate/
  2.2235 + obj-$(CONFIG_ZLIB_DEFLATE) += zlib_deflate/
  2.2236 + obj-$(CONFIG_REED_SOLOMON) += reed_solomon/
  2.2237 +--- linux-2.6.24.2/scripts/Makefile.lib
  2.2238 ++++ linux-2.6.24.2/scripts/Makefile.lib
  2.2239 +@@ -166,4 +166,17 @@ cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS)
  2.2240 + quiet_cmd_gzip = GZIP    $@
  2.2241 + cmd_gzip = gzip -f -9 < $< > $@
  2.2242 + 
  2.2243 ++# Append size
  2.2244 ++size_append=perl -e 'print(pack("i",(stat($$ARGV[0]))[7]));'
  2.2245 + 
  2.2246 ++# Bzip2
  2.2247 ++# ---------------------------------------------------------------------------
  2.2248 ++
  2.2249 ++quiet_cmd_bzip2 = BZIP2    $@
  2.2250 ++cmd_bzip2 = (bzip2 -9 < $< ; $(size_append) $<) > $@
  2.2251 ++
  2.2252 ++# Lzma
  2.2253 ++# ---------------------------------------------------------------------------
  2.2254 ++
  2.2255 ++quiet_cmd_lzma = LZMA    $@
  2.2256 ++cmd_lzma = (lzma e $< -so ; $(size_append) $<) >$@