From 773196cbe66c2b6945e0446c864da1adf053b4d4 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:47:06 -0700
Subject: LinHES-config:Bump for LinHES 7.

---
 abs/core-testing/LinHES-config/LinHES-release | 2 +-
 abs/core-testing/LinHES-config/PKGBUILD       | 5 ++---
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/abs/core-testing/LinHES-config/LinHES-release b/abs/core-testing/LinHES-config/LinHES-release
index 6fc5aed..156ac78 100644
--- a/abs/core-testing/LinHES-config/LinHES-release
+++ b/abs/core-testing/LinHES-config/LinHES-release
@@ -1 +1 @@
-LinHES R6.03.00 (M)
+LinHES R7.00.01 (Punta Gorda)
diff --git a/abs/core-testing/LinHES-config/PKGBUILD b/abs/core-testing/LinHES-config/PKGBUILD
index 655d5c0..dd07a29 100644
--- a/abs/core-testing/LinHES-config/PKGBUILD
+++ b/abs/core-testing/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=2.1
-pkgrel=40
+pkgrel=41
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev LinHes-config )
 pkgdesc="Install and configure your system"
 depends=('bc' 'libstatgrab'  'mysql-python' 'expect' 'curl' 'dnsutils' 'parted'
@@ -101,7 +101,6 @@ build() {
     install -m 0755 issue $startdir/pkg/etc/issue
 
 }
-
 md5sums=('297441b8d85820698c19e7c0ad5a3dfe'
          '1a4694fcd694b362c339bda781ed0f3e'
          'e36da536dd651ef182e7642337889e77'
@@ -114,7 +113,7 @@ md5sums=('297441b8d85820698c19e7c0ad5a3dfe'
          '4620f6f498ef4523398635cb0bd59425'
          '06188493e5ed79cb501d3c5694dee8ca'
          'e459ed069317bccb20351f037a9df3d2'
-         'e519c47ae24fb65799ec57a4a2050653'
+         'b47f477693ed3e83a0cd951a616e16d1'
          '6aff504ed5e860adc1b7317cd0780900'
          '55fccb1da0417a896b724f7cfc32dd5a'
          'ab2aa42c2947148c2b1cac0ade6d1d55'
-- 
cgit v0.12


From 4a7c61614f42f3cd759e1ad4fe78ce4b690216a8 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:47:54 -0700
Subject: alsa-lib:Bumped/Updated for LinHES 7.

---
 abs/core-testing/alsa-lib/PKGBUILD                 |   8 +-
 abs/core-testing/alsa-lib/python2.5.patch          |  11 -
 ...ch-to-fix-converting-32bit-audio-to-16bit.patch | 242 ---------------------
 3 files changed, 4 insertions(+), 257 deletions(-)
 delete mode 100644 abs/core-testing/alsa-lib/python2.5.patch
 delete mode 100644 abs/core-testing/alsa-lib/revert-patch-to-fix-converting-32bit-audio-to-16bit.patch

diff --git a/abs/core-testing/alsa-lib/PKGBUILD b/abs/core-testing/alsa-lib/PKGBUILD
index 005dd82..9ba2945 100644
--- a/abs/core-testing/alsa-lib/PKGBUILD
+++ b/abs/core-testing/alsa-lib/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 18680 2008-11-08 16:21:16Z tpowa $
+# $Id: PKGBUILD 79040 2010-04-30 05:28:10Z tpowa $
 # Maintainer: judd <jvinet@zeroflux.org>
 
 pkgname=alsa-lib
-pkgver=1.0.18
-pkgrel=2
+pkgver=1.0.23
+pkgrel=1
 pkgdesc="An alternative implementation of Linux sound support"
 arch=('i686' 'x86_64')
 url="http://www.alsa-project.org"
@@ -20,4 +20,4 @@ build() {
   make || return 1
   make DESTDIR=$pkgdir install
 }
-md5sums=('de60df7541fafe8c6a3397e0f105ff0e')
+md5sums=('f48b50421d8a69d2d806d9c47e534f0d')
diff --git a/abs/core-testing/alsa-lib/python2.5.patch b/abs/core-testing/alsa-lib/python2.5.patch
deleted file mode 100644
index cd0032b..0000000
--- a/abs/core-testing/alsa-lib/python2.5.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- modules/mixer/simple/python.c~	2007-08-21 17:21:28.000000000 +0200
-+++ modules/mixer/simple/python.c	2007-08-21 17:26:39.000000000 +0200
-@@ -23,7 +23,7 @@
- #include "config.h"
- #include "asoundlib.h"
- #include "mixer_abst.h"
--#include <python/Python.h>
-+#include <python2.5/Python.h>
- 
- struct python_priv {
- 	int py_initialized;
diff --git a/abs/core-testing/alsa-lib/revert-patch-to-fix-converting-32bit-audio-to-16bit.patch b/abs/core-testing/alsa-lib/revert-patch-to-fix-converting-32bit-audio-to-16bit.patch
deleted file mode 100644
index 588272f..0000000
--- a/abs/core-testing/alsa-lib/revert-patch-to-fix-converting-32bit-audio-to-16bit.patch
+++ /dev/null
@@ -1,242 +0,0 @@
-
---- a/src/pcm/plugin_ops.h	Mon Jan 09 14:40:08 2006 +0000
-+++ b/src/pcm/plugin_ops.h	Fri Mar 09 17:06:23 2007 +0100
-@@ -85,6 +85,8 @@ static inline u_int32_t sx24s(u_int32_t 
- #define _put_triple(ptr,val) _put_triple_be(ptr,val)
- #define _put_triple_s(ptr,val) _put_triple_le(ptr,val)
- #endif
-+
-+#define shift_down(val, bits) (((val) + (1 << ((bits) - 1))) >> (bits))
- 
- #ifdef COPY_LABELS
- static void *copy_labels[5] = {
-@@ -256,14 +258,14 @@ conv_xxx1_009x: as_u32(dst) = sx24s((u_i
- conv_xxx1_009x: as_u32(dst) = sx24s((u_int32_t)(as_u8c(src) ^ 0x80) << 8); goto CONV_END;
- conv_xxx1_9000: as_u32(dst) = (u_int32_t)(as_u8c(src) ^ 0x80) << 24; goto CONV_END;
- conv_xxx1_0009: as_u32(dst) = (u_int32_t)(as_u8c(src) ^ 0x80); goto CONV_END;
--conv_xx12_xxx1: as_u8(dst) = as_u16c(src) >> 8; goto CONV_END;
-+conv_xx12_xxx1: as_u8(dst) = shift_down(as_u16c(src), 8); goto CONV_END;
- conv_xx12_xx12: as_u16(dst) = as_u16c(src); goto CONV_END;
- conv_xx12_xx21: as_u16(dst) = bswap_16(as_u16c(src)); goto CONV_END;
- conv_xx12_x120: as_u32(dst) = sx24((u_int32_t)as_u16c(src) << 8); goto CONV_END;
- conv_xx12_021x: as_u32(dst) = sx24s((u_int32_t)bswap_16(as_u16c(src)) << 8); goto CONV_END;
- conv_xx12_1200: as_u32(dst) = (u_int32_t)as_u16c(src) << 16; goto CONV_END;
- conv_xx12_0021: as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src)); goto CONV_END;
--conv_xx12_xxx9: as_u8(dst) = (as_u16c(src) >> 8) ^ 0x80; goto CONV_END;
-+conv_xx12_xxx9: as_u8(dst) = shift_down(as_u16c(src), 8) ^ 0x80; goto CONV_END;
- conv_xx12_xx92: as_u16(dst) = as_u16c(src) ^ 0x8000; goto CONV_END;
- conv_xx12_xx29: as_u16(dst) = bswap_16(as_u16c(src)) ^ 0x80; goto CONV_END;
- conv_xx12_x920: as_u32(dst) = sx24((u_int32_t)(as_u16c(src) ^ 0x8000) << 8); goto CONV_END;
-@@ -282,57 +284,57 @@ conv_xx12_01Ax: as_u32(dst) = sx24s((u_i
- conv_xx12_01Ax: as_u32(dst) = sx24s((u_int32_t)(as_u16c(src) ^ 0x80) << 8); goto CONV_END;
- conv_xx12_A100: as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src) ^ 0x80) << 16; goto CONV_END;
- conv_xx12_001A: as_u32(dst) = (u_int32_t)(as_u16c(src) ^ 0x80); goto CONV_END;
--conv_x123_xxx1: as_u8(dst) = as_u32c(src) >> 16; goto CONV_END;
--conv_x123_xx12: as_u16(dst) = as_u32c(src) >> 8; goto CONV_END;
--conv_x123_xx21: as_u16(dst) = bswap_16(as_u32c(src) >> 8); goto CONV_END;
-+conv_x123_xxx1: as_u8(dst) = shift_down(as_u32c(src), 16); goto CONV_END;
-+conv_x123_xx12: as_u16(dst) = shift_down(as_u32c(src), 8); goto CONV_END;
-+conv_x123_xx21: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 8)); goto CONV_END;
- conv_x123_x123: as_u32(dst) = sx24(as_u32c(src)); goto CONV_END;
- conv_x123_321x: as_u32(dst) = sx24s(bswap_32(as_u32c(src))); goto CONV_END;
- conv_x123_1230: as_u32(dst) = as_u32c(src) << 8; goto CONV_END;
--conv_x123_0321: as_u32(dst) = bswap_32(as_u32c(src)) >> 8; goto CONV_END;
--conv_x123_xxx9: as_u8(dst) = (as_u32c(src) >> 16) ^ 0x80; goto CONV_END;
--conv_x123_xx92: as_u16(dst) = (as_u32c(src) >> 8) ^ 0x8000; goto CONV_END;
--conv_x123_xx29: as_u16(dst) = bswap_16(as_u32c(src) >> 8) ^ 0x80; goto CONV_END;
-+conv_x123_0321: as_u32(dst) = shift_down(bswap_32(as_u32c(src)), 8); goto CONV_END;
-+ conv_x123_xxx9: as_u8(dst) = shift_down(as_u32c(src), 16) ^ 0x80; goto CONV_END;
-+conv_x123_xx92: as_u16(dst) = shift_down(as_u32c(src), 8) ^ 0x8000; goto CONV_END;
-+conv_x123_xx29: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 8)) ^ 0x80; goto CONV_END;
- conv_x123_x923: as_u32(dst) = sx24(as_u32c(src) ^ 0x800000); goto CONV_END;
- conv_x123_329x: as_u32(dst) = sx24s(bswap_32(as_u32c(src)) ^ 0x8000); goto CONV_END;
- conv_x123_9230: as_u32(dst) = (as_u32c(src) ^ 0x800000) << 8; goto CONV_END;
--conv_x123_0329: as_u32(dst) = (bswap_32(as_u32c(src)) >> 8) ^ 0x80; goto CONV_END;
--conv_123x_xxx3: as_u8(dst) = (as_u32c(src) >> 8) & 0xff; goto CONV_END;
--conv_123x_xx32: as_u16(dst) = bswap_16(as_u32c(src) >> 8); goto CONV_END;
--conv_123x_xx23: as_u16(dst) = (as_u32c(src) >> 8) & 0xffff; goto CONV_END;
-+conv_x123_0329: as_u32(dst) = shift_down(bswap_32(as_u32c(src)), 8) ^ 0x80; goto CONV_END;
-+conv_123x_xxx3: as_u8(dst) = shift_down(as_u32c(src), 8) & 0xff; goto CONV_END;
-+conv_123x_xx32: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 8)); goto CONV_END;
-+conv_123x_xx23: as_u16(dst) = shift_down(as_u32c(src), 8) & 0xffff; goto CONV_END;
- conv_123x_x321: as_u32(dst) = sx24(bswap_32(as_u32c(src))); goto CONV_END;
- conv_123x_123x: as_u32(dst) = sx24s(as_u32c(src)); goto CONV_END;
- conv_123x_3210: as_u32(dst) = bswap_32(as_u32c(src)) << 8; goto CONV_END;
--conv_123x_0123: as_u32(dst) = as_u32c(src) >> 8; goto CONV_END;
--conv_123x_xxxB: as_u8(dst) = ((as_u32c(src) >> 8) & 0xff) ^ 0x80; goto CONV_END;
--conv_123x_xxB2: as_u16(dst) = bswap_16((as_u32c(src) >> 8) ^ 0x80); goto CONV_END;
--conv_123x_xx2B: as_u16(dst) = ((as_u32c(src) >> 8) & 0xffff) ^ 0x80; goto CONV_END;
-+conv_123x_0123: as_u32(dst) = shift_down(as_u32c(src), 8); goto CONV_END;
-+conv_123x_xxxB: as_u8(dst) = (shift_down(as_u32c(src), 8) & 0xff) ^ 0x80; goto CONV_END;
-+conv_123x_xxB2: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 8) ^ 0x80); goto CONV_END;
-+conv_123x_xx2B: as_u16(dst) = (shift_down(as_u32c(src), 8) & 0xffff) ^ 0x80; goto CONV_END;
- conv_123x_xB21: as_u32(dst) = sx24(bswap_32(as_u32c(src)) ^ 0x800000); goto CONV_END;
- conv_123x_12Bx: as_u32(dst) = sx24s(as_u32c(src) ^ 0x8000); goto CONV_END;
- conv_123x_B210: as_u32(dst) = bswap_32(as_u32c(src) ^ 0x8000) << 8; goto CONV_END;
--conv_123x_012B: as_u32(dst) = (as_u32c(src) >> 8) ^ 0x80; goto CONV_END;
--conv_1234_xxx1: as_u8(dst) = as_u32c(src) >> 24; goto CONV_END;
--conv_1234_xx12: as_u16(dst) = as_u32c(src) >> 16; goto CONV_END;
--conv_1234_xx21: as_u16(dst) = bswap_16(as_u32c(src) >> 16); goto CONV_END;
--conv_1234_x123: as_u32(dst) = sx24(as_u32c(src) >> 8); goto CONV_END;
-+conv_123x_012B: as_u32(dst) = shift_down(as_u32c(src), 8) ^ 0x80; goto CONV_END;
-+conv_1234_xxx1: as_u8(dst) = shift_down(as_u32c(src), 24); goto CONV_END;
-+conv_1234_xx12: as_u16(dst) = shift_down(as_u32c(src), 16); goto CONV_END;
-+conv_1234_xx21: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 16)); goto CONV_END;
-+conv_1234_x123: as_u32(dst) = sx24(shift_down(as_u32c(src), 8)); goto CONV_END;
- conv_1234_321x: as_u32(dst) = sx24s(bswap_32(as_u32c(src)) << 8); goto CONV_END;
- conv_1234_1234: as_u32(dst) = as_u32c(src); goto CONV_END;
- conv_1234_4321: as_u32(dst) = bswap_32(as_u32c(src)); goto CONV_END;
--conv_1234_xxx9: as_u8(dst) = (as_u32c(src) >> 24) ^ 0x80; goto CONV_END;
--conv_1234_xx92: as_u16(dst) = (as_u32c(src) >> 16) ^ 0x8000; goto CONV_END;
--conv_1234_xx29: as_u16(dst) = bswap_16(as_u32c(src) >> 16) ^ 0x80; goto CONV_END;
--conv_1234_x923: as_u32(dst) = sx24((as_u32c(src) >> 8) ^ 0x800000); goto CONV_END;
-+conv_1234_xxx9: as_u8(dst) = shift_down(as_u32c(src), 24) ^ 0x80; goto CONV_END;
-+conv_1234_xx92: as_u16(dst) = shift_down(as_u32c(src), 16) ^ 0x8000; goto CONV_END;
-+conv_1234_xx29: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 16)) ^ 0x80; goto CONV_END;
-+conv_1234_x923: as_u32(dst) = sx24(shift_down(as_u32c(src), 8) ^ 0x800000); goto CONV_END;
- conv_1234_329x: as_u32(dst) = sx24s((bswap_32(as_u32c(src)) ^ 0x80) << 8); goto CONV_END;
- conv_1234_9234: as_u32(dst) = as_u32c(src) ^ 0x80000000; goto CONV_END;
- conv_1234_4329: as_u32(dst) = bswap_32(as_u32c(src)) ^ 0x80; goto CONV_END;
- conv_1234_xxx4: as_u8(dst) = as_u32c(src) & 0xff; goto CONV_END;
- conv_1234_xx43: as_u16(dst) = bswap_16(as_u32c(src)); goto CONV_END;
- conv_1234_xx34: as_u16(dst) = as_u32c(src) & 0xffff; goto CONV_END;
--conv_1234_x432: as_u32(dst) = sx24(bswap_32(as_u32c(src)) >> 8); goto CONV_END;
-+conv_1234_x432: as_u32(dst) = sx24(shift_down(bswap_32(as_u32c(src)), 8)); goto CONV_END;
- conv_1234_234x: as_u32(dst) = sx24s(as_u32c(src) << 8); goto CONV_END;
- conv_1234_xxxC: as_u8(dst) = (as_u32c(src) & 0xff) ^ 0x80; goto CONV_END;
- conv_1234_xxC3: as_u16(dst) = bswap_16(as_u32c(src) ^ 0x80); goto CONV_END;
- conv_1234_xx3C: as_u16(dst) = (as_u32c(src) & 0xffff) ^ 0x80; goto CONV_END;
--conv_1234_xC32: as_u32(dst) = sx24((bswap_32(as_u32c(src)) >> 8) ^ 0x800000); goto CONV_END;
-+conv_1234_xC32: as_u32(dst) = sx24(shift_down(bswap_32(as_u32c(src)), 8) ^ 0x800000); goto CONV_END;
- conv_1234_23Cx: as_u32(dst) = sx24s((as_u32c(src) ^ 0x80) << 8); goto CONV_END;
- conv_1234_C321: as_u32(dst) = bswap_32(as_u32c(src) ^ 0x80); goto CONV_END;
- conv_1234_123C: as_u32(dst) = as_u32c(src) ^ 0x80; goto CONV_END;
-@@ -382,26 +384,26 @@ get16_12_92: sample = as_u16c(src) ^ 0x8
- get16_12_92: sample = as_u16c(src) ^ 0x8000; goto GET16_END;
- get16_12_21: sample = bswap_16(as_u16c(src)); goto GET16_END;
- get16_12_A1: sample = bswap_16(as_u16c(src) ^ 0x80); goto GET16_END;
--get16_0123_12: sample = as_u32c(src) >> 8; goto GET16_END;
--get16_0123_92: sample = (as_u32c(src) >> 8) ^ 0x8000; goto GET16_END;
--get16_1230_32: sample = bswap_16(as_u32c(src) >> 8); goto GET16_END;
--get16_1230_B2: sample = bswap_16((as_u32c(src) >> 8) ^ 0x80); goto GET16_END;
--get16_1234_12: sample = as_u32c(src) >> 16; goto GET16_END;
--get16_1234_92: sample = (as_u32c(src) >> 16) ^ 0x8000; goto GET16_END;
-+get16_0123_12: sample = shift_down(as_u32c(src), 8); goto GET16_END;
-+get16_0123_92: sample = shift_down(as_u32c(src), 8) ^ 0x8000; goto GET16_END;
-+get16_1230_32: sample = bswap_16(shift_down(as_u32c(src), 8)); goto GET16_END;
-+get16_1230_B2: sample = bswap_16(shift_down(as_u32c(src), 8) ^ 0x80); goto GET16_END;
-+get16_1234_12: sample = shift_down(as_u32c(src), 16); goto GET16_END;
-+get16_1234_92: sample = shift_down(as_u32c(src), 16) ^ 0x8000; goto GET16_END;
- get16_1234_43: sample = bswap_16(as_u32c(src)); goto GET16_END;
- get16_1234_C3: sample = bswap_16(as_u32c(src) ^ 0x80); goto GET16_END;
--get16_123_12: sample = _get_triple(src) >> 8; goto GET16_END;
--get16_123_92: sample = (_get_triple(src) >> 8) ^ 0x8000; goto GET16_END;
--get16_123_32: sample = _get_triple_s(src) >> 8; goto GET16_END;
--get16_123_B2: sample = (_get_triple_s(src) >> 8) ^ 0x8000; goto GET16_END;
--get16_123_12_20: sample = _get_triple(src) >> 4; goto GET16_END;
--get16_123_92_20: sample = (_get_triple(src) >> 4) ^ 0x8000; goto GET16_END;
--get16_123_32_20: sample = _get_triple_s(src) >> 4; goto GET16_END;
--get16_123_B2_20: sample = (_get_triple_s(src) >> 4) ^ 0x8000; goto GET16_END;
--get16_123_12_18: sample = _get_triple(src) >> 2; goto GET16_END;
--get16_123_92_18: sample = (_get_triple(src) >> 2) ^ 0x8000; goto GET16_END;
--get16_123_32_18: sample = _get_triple_s(src) >> 2; goto GET16_END;
--get16_123_B2_18: sample = (_get_triple_s(src) >> 2) ^ 0x8000; goto GET16_END;
-+get16_123_12: sample = shift_down(_get_triple(src), 8); goto GET16_END;
-+get16_123_92: sample = shift_down(_get_triple(src), 8) ^ 0x8000; goto GET16_END;
-+get16_123_32: sample = shift_down(_get_triple_s(src), 8); goto GET16_END;
-+get16_123_B2: sample = shift_down(_get_triple_s(src), 8) ^ 0x8000; goto GET16_END;
-+get16_123_12_20: sample = shift_down(_get_triple(src), 4); goto GET16_END;
-+get16_123_92_20: sample = shift_down(_get_triple(src), 4) ^ 0x8000; goto GET16_END;
-+get16_123_32_20: sample = shift_down(_get_triple_s(src), 4); goto GET16_END;
-+get16_123_B2_20: sample = shift_down(_get_triple_s(src), 4) ^ 0x8000; goto GET16_END;
-+get16_123_12_18: sample = shift_down(_get_triple(src), 2); goto GET16_END;
-+get16_123_92_18: sample = shift_down(_get_triple(src), 2) ^ 0x8000; goto GET16_END;
-+get16_123_32_18: sample = shift_down(_get_triple_s(src), 2); goto GET16_END;
-+get16_123_B2_18: sample = shift_down(_get_triple_s(src), 2) ^ 0x8000; goto GET16_END;
- }
- #endif
- 
-@@ -429,8 +431,8 @@ static void *put16_labels[4 * 2 * 2] = {
- 
- #ifdef PUT16_END
- while (0) {
--put16_12_1: as_u8(dst) = sample >> 8; goto PUT16_END;
--put16_12_9: as_u8(dst) = (sample >> 8) ^ 0x80; goto PUT16_END;
-+put16_12_1: as_u8(dst) = shift_down(sample, 8); goto PUT16_END;
-+put16_12_9: as_u8(dst) = shift_down(sample, 8) ^ 0x80; goto PUT16_END;
- put16_12_12: as_u16(dst) = sample; goto PUT16_END;
- put16_12_92: as_u16(dst) = sample ^ 0x8000; goto PUT16_END;
- put16_12_21: as_u16(dst) = bswap_16(sample); goto PUT16_END;
-@@ -500,8 +502,8 @@ get32_12_A100: sample = (u_int32_t)bswap
- get32_12_A100: sample = (u_int32_t)bswap_16(as_u16c(src) ^ 0x80) << 16; goto GET32_END;
- get32_0123_1230: sample = as_u32c(src) << 8; goto GET32_END;
- get32_0123_9230: sample = (as_u32c(src) << 8) ^ 0x80000000; goto GET32_END;
--get32_1230_3210: sample = bswap_32(as_u32c(src) >> 8); goto GET32_END;
--get32_1230_B210: sample = bswap_32((as_u32c(src) >> 8) ^ 0x80); goto GET32_END;
-+get32_1230_3210: sample = bswap_32(shift_down(as_u32c(src), 8)); goto GET32_END;
-+get32_1230_B210: sample = bswap_32(shift_down(as_u32c(src), 8) ^ 0x80); goto GET32_END;
- get32_1234_1234: sample = as_u32c(src); goto GET32_END;
- get32_1234_9234: sample = as_u32c(src) ^ 0x80000000; goto GET32_END;
- get32_1234_4321: sample = bswap_32(as_u32c(src)); goto GET32_END;
-@@ -568,32 +570,32 @@ static void *put32_labels[4 * 2 * 2 + 4 
- 
- #ifdef PUT32_END
- while (0) {
--put32_1234_1: as_u8(dst) = sample >> 24; goto PUT32_END;
--put32_1234_9: as_u8(dst) = (sample >> 24) ^ 0x80; goto PUT32_END;
--put32_1234_12: as_u16(dst) = sample >> 16; goto PUT32_END;
--put32_1234_92: as_u16(dst) = (sample >> 16) ^ 0x8000; goto PUT32_END;
--put32_1234_21: as_u16(dst) = bswap_16(sample >> 16); goto PUT32_END;
--put32_1234_29: as_u16(dst) = bswap_16(sample >> 16) ^ 0x80; goto PUT32_END;
--put32_1234_0123: as_u32(dst) = sx24(sample >> 8); goto PUT32_END;
--put32_1234_0923: as_u32(dst) = sx24((sample >> 8) ^ 0x800000); goto PUT32_END;
-+put32_1234_1: as_u8(dst) = shift_down(sample, 24); goto PUT32_END;
-+put32_1234_9: as_u8(dst) = shift_down(sample, 24) ^ 0x80; goto PUT32_END;
-+put32_1234_12: as_u16(dst) = shift_down(sample, 16); goto PUT32_END;
-+put32_1234_92: as_u16(dst) = shift_down(sample, 16) ^ 0x8000; goto PUT32_END;
-+put32_1234_21: as_u16(dst) = bswap_16(shift_down(sample, 16)); goto PUT32_END;
-+put32_1234_29: as_u16(dst) = bswap_16(shift_down(sample, 16)) ^ 0x80; goto PUT32_END;
-+put32_1234_0123: as_u32(dst) = sx24(shift_down(sample, 8)); goto PUT32_END;
-+put32_1234_0923: as_u32(dst) = sx24(shift_down(sample, 8) ^ 0x800000); goto PUT32_END;
- put32_1234_3210: as_u32(dst) = sx24s(bswap_32(sample) << 8); goto PUT32_END;
- put32_1234_3290: as_u32(dst) = sx24s((bswap_32(sample) ^ 0x80) << 8); goto PUT32_END;
- put32_1234_1234: as_u32(dst) = sample; goto PUT32_END;
- put32_1234_9234: as_u32(dst) = sample ^ 0x80000000; goto PUT32_END;
- put32_1234_4321: as_u32(dst) = bswap_32(sample); goto PUT32_END;
- put32_1234_4329: as_u32(dst) = bswap_32(sample) ^ 0x80; goto PUT32_END;
--put32_1234_123: _put_triple(dst, sample >> 8); goto PUT32_END;
--put32_1234_923: _put_triple(dst, (sample ^ 0x80000000) >> 8); goto PUT32_END;
--put32_1234_321: _put_triple_s(dst, sample >> 8); goto PUT32_END;
--put32_1234_329: _put_triple_s(dst, (sample ^ 0x80000000) >> 8); goto PUT32_END;
--put32_1234_123_20: _put_triple(dst, sample >> 12); goto PUT32_END;
--put32_1234_923_20: _put_triple(dst, (sample ^ 0x80000000) >> 12); goto PUT32_END;
--put32_1234_321_20: _put_triple_s(dst, sample >> 12); goto PUT32_END;
--put32_1234_329_20: _put_triple_s(dst, (sample ^ 0x80000000) >> 12); goto PUT32_END;
--put32_1234_123_18: _put_triple(dst, sample >> 14); goto PUT32_END;
--put32_1234_923_18: _put_triple(dst, (sample ^ 0x80000000) >> 14); goto PUT32_END;
--put32_1234_321_18: _put_triple_s(dst, sample >> 14); goto PUT32_END;
--put32_1234_329_18: _put_triple_s(dst, (sample ^ 0x80000000) >> 14); goto PUT32_END;
-+put32_1234_123: _put_triple(dst, shift_down(sample, 8)); goto PUT32_END;
-+put32_1234_923: _put_triple(dst, shift_down(sample ^ 0x80000000, 8)); goto PUT32_END;
-+put32_1234_321: _put_triple_s(dst, shift_down(sample, 8)); goto PUT32_END;
-+put32_1234_329: _put_triple_s(dst, shift_down(sample ^ 0x80000000, 8)); goto PUT32_END;
-+put32_1234_123_20: _put_triple(dst, shift_down(sample, 12)); goto PUT32_END;
-+put32_1234_923_20: _put_triple(dst, shift_down(sample ^ 0x80000000, 12)); goto PUT32_END;
-+put32_1234_321_20: _put_triple_s(dst, shift_down(sample, 12)); goto PUT32_END;
-+put32_1234_329_20: _put_triple_s(dst, shift_down(sample ^ 0x80000000, 12)); goto PUT32_END;
-+put32_1234_123_18: _put_triple(dst, shift_down(sample, 14)); goto PUT32_END;
-+put32_1234_923_18: _put_triple(dst, shift_down(sample ^ 0x80000000, 14)); goto PUT32_END;
-+put32_1234_321_18: _put_triple_s(dst, shift_down(sample, 14)); goto PUT32_END;
-+put32_1234_329_18: _put_triple_s(dst, shift_down(sample ^ 0x80000000, 14)); goto PUT32_END;
- }
- #endif
- 
-@@ -1079,3 +1081,4 @@ norms_32_s32s:	_norms(src, dst, 32, 1,  
- #undef _put_triple_le
- #undef _put_triple_be
- 
-+#undef shift_down
-
-
-
-
-- 
cgit v0.12


From 58b87a0db58f04f38fc52935f2a15ceaa5ee3126 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:48:09 -0700
Subject: alsa-utils:Bumped/Updated for LinHES 7.

---
 abs/core-testing/alsa-utils/PKGBUILD       | 20 +++++++++++---------
 abs/core-testing/alsa-utils/alsa           |  4 ++--
 abs/core-testing/alsa-utils/alsaconf.patch | 15 +++++++++++++--
 3 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/abs/core-testing/alsa-utils/PKGBUILD b/abs/core-testing/alsa-utils/PKGBUILD
index caa636c..2f6e163 100644
--- a/abs/core-testing/alsa-utils/PKGBUILD
+++ b/abs/core-testing/alsa-utils/PKGBUILD
@@ -1,17 +1,19 @@
-# $Id: PKGBUILD 18682 2008-11-08 16:46:01Z tpowa $
+# $Id: PKGBUILD 79271 2010-05-02 14:42:00Z tpowa $
 # Maintainer: judd <jvinet@zeroflux.org>
 pkgname=alsa-utils
-pkgver=1.0.18
-pkgrel=1
+pkgver=1.0.23
+pkgrel=2
 pkgdesc="An alternative implementation of Linux sound support"
 arch=('i686' 'x86_64')
 url="http://www.alsa-project.org"
 #can not use >=$pkgver due to use of letters in alsa-lib update versioning
-depends=("alsa-lib>1.0.17.999" 'dialog' 'pciutils' 'ncurses')
+depends=("alsa-lib>1.0.22.99" 'dialog' 'pciutils' 'ncurses')
 makedepends=('xmlto' 'docbook-xsl')
 license=('GPL')
-source=(ftp://ftp.alsa-project.org/pub/utils/$pkgname-${pkgver}.tar.bz2 \
-        alsa alsaconf.patch alsa.conf.d)
+source=(ftp://ftp.alsa-project.org/pub/utils/$pkgname-${pkgver}.tar.bz2
+        alsa
+        alsaconf.patch
+        alsa.conf.d)
 backup=(etc/conf.d/alsa)
 
 build() {
@@ -23,7 +25,7 @@ build() {
   install -D -m755 ../alsa $startdir/pkg/etc/rc.d/alsa
   install -D -m644 ../alsa.conf.d $startdir/pkg/etc/conf.d/alsa
 }
-md5sums=('0a6b26d27cc2adfd591d91d8c155fdb7'
-         '9dff78913b13b10e67c4195e90395ed2'
-         '538f82650d08e901efea86c5395520df'
+md5sums=('cb0cf46029ac9549cf3a31bff6a4f4e1'
+         '3ef812cae83053d01cd560284efad71f'
+         '62ebef77d5617d0036012cc541dcf23c'
          '93089f0d8872078939f76dd2acaebc2b')
diff --git a/abs/core-testing/alsa-utils/alsa b/abs/core-testing/alsa-utils/alsa
index e1d6f28..08f76af 100755
--- a/abs/core-testing/alsa-utils/alsa
+++ b/abs/core-testing/alsa-utils/alsa
@@ -19,13 +19,13 @@ case "$1" in
     if [ -e /sys/module/snd_ac97_codec/parameters/power_save \
 	  -a $POWERSAVE -ne 0 ]; then
       echo $POWERSAVE > /sys/module/snd_ac97_codec/parameters/power_save
-      echo 1 > /dev/dsp
+      [ -c /dev/dsp ] && echo 1 > /dev/dsp
     fi
 
     if [ -e /sys/module/snd_hda_intel/parameters/power_save \
       -a $POWERSAVE -ne 0 ]; then
       echo $POWERSAVE > /sys/module/snd_hda_intel/parameters/power_save
-      echo 1 > /dev/dsp
+      [ -c /dev/dsp ] && echo 1 > /dev/dsp
     fi
     ;;
   stop)
diff --git a/abs/core-testing/alsa-utils/alsaconf.patch b/abs/core-testing/alsa-utils/alsaconf.patch
index c1d2eb2..ec79fe9 100644
--- a/abs/core-testing/alsa-utils/alsaconf.patch
+++ b/abs/core-testing/alsa-utils/alsaconf.patch
@@ -7,9 +7,9 @@ diff -Naur alsa-utils-1.0.9a-orig/alsaconf/alsaconf.in alsa-utils-1.0.9a/alsacon
    distribution="fedora"
 +elif test -f /etc/arch-release && grep -q "Arch" /etc/arch-release; then
 +  distribution="arch"
+ elif [ -f /etc/slackware-version -o -f /etc/slamd64-version ]; then
+   distribution="slackware"
  else
-   distribution="unknown"
- fi
 @@ -382,6 +384,8 @@
      rcalsasound=/etc/rc.d/init.d/alsasound
  elif [ -x /etc/init.d/alsa ]; then
@@ -19,3 +19,14 @@ diff -Naur alsa-utils-1.0.9a-orig/alsaconf/alsaconf.in alsa-utils-1.0.9a/alsacon
  else
      rcalsasound=rcalsasound
  fi
+--- alsa-utils-1.0.9a-orig/alsaconf/alsaconf.in	2010-01-03 19:44:08.000000000 +0100
++++ alsa-utils-1.0.9a-orig/alsaconf/alsaconf.in	2010-01-03 19:44:08.000000000 +0100
+@@ -315,7 +315,7 @@
+ 	3.[789]*)
+ 	  ;;
+ 	*)
+-	  cfgout="/etc/modprobe.d/sound"
++	  cfgout="/etc/modprobe.d/sound.conf"
+ 	  cfgoldout=""
+ 	  ;;
+ 	esac
-- 
cgit v0.12


From d2114b424e40dc1786a4a8e0ce6cd7a61305ac8e Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:49:00 -0700
Subject: ati-dri:Removed for LinHES 7.

---
 abs/core-testing/ati-dri/PKGBUILD                  |  38 --------
 .../ati-dri/mesa-7.1-link-shared.patch             | 102 ---------------------
 2 files changed, 140 deletions(-)
 delete mode 100644 abs/core-testing/ati-dri/PKGBUILD
 delete mode 100644 abs/core-testing/ati-dri/mesa-7.1-link-shared.patch

diff --git a/abs/core-testing/ati-dri/PKGBUILD b/abs/core-testing/ati-dri/PKGBUILD
deleted file mode 100644
index 253f136..0000000
--- a/abs/core-testing/ati-dri/PKGBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# $Id: PKGBUILD 17170 2008-10-26 11:01:19Z andyrtr $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Contributor: Alexander Baldeck <alexander@archlinux.org>
-pkgname=ati-dri
-pkgver=7.2
-pkgrel=1
-pkgdesc="DRI drivers for ATI/AMD videochips"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('libdrm>=2.3.1' 'libgl>=7.2' 'expat>=2.0.1')
-makedepends=('glproto>=1.4.9' 'pkgconfig' 'libxfixes' 'libxdamage' 'libxxf86vm' 'libxext')
-conflicts=('xf86-video-ati<6.9.0-6')
-options=('!libtool')
-source=(http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${pkgver}.tar.bz2
-       mesa-7.1-link-shared.patch)
-md5sums=('04d379292e023df0b0266825cb0dbde5'
-         'f0baa948d9810f268413111ee439d24b')
-
-build() {
-  cd "${srcdir}/Mesa-${pkgver}"
-  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1
-  ./configure --prefix=/usr \
-    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
-    --with-dri-drivers=radeon,r200,r300 \
-    --enable-glx-tls \
-    --disable-ttm-api \
-    --with-driver=dri \
-    --enable-xcb \
-    --disable-glu \
-    --disable-glut \
-    --disable-glw || return 1
-  make || return 1
-  cd src/mesa/drivers/dri || return 1
-  make DESTDIR="${pkgdir}" install || return 1
-  rm -f "${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so"
-  rm -rf "${pkgdir}/usr/include"
-  rm -rf "${pkgdir}/usr/lib/pkgconfig"
-}
diff --git a/abs/core-testing/ati-dri/mesa-7.1-link-shared.patch b/abs/core-testing/ati-dri/mesa-7.1-link-shared.patch
deleted file mode 100644
index 7fdbf14..0000000
--- a/abs/core-testing/ati-dri/mesa-7.1-link-shared.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
---- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
-+++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
-@@ -6,12 +6,17 @@ include $(TOP)/configs/current
- 
- 
- 
--default: $(TOP)/$(LIB_DIR) subdirs
-+default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
- 
- 
- $(TOP)/$(LIB_DIR):
- 	-mkdir $(TOP)/$(LIB_DIR)
- 
-+libdricore.so:
-+	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
-+
-+$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
-+	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
- 
- subdirs:
- 	@for dir in $(DRI_DIRS) ; do \
-@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
- 	$(pcedit) $< > $@
- 
- 
--install: dri.pc
-+install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
- 	@for dir in $(DRI_DIRS) ; do \
- 		if [ -d $$dir ] ; then \
- 			(cd $$dir && $(MAKE) install) || exit 1 ; \
- 		fi \
- 	done
-+	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
-+	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
- 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
- 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
- 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
-@@ -52,5 +59,6 @@ clean:
- 			(cd $$dir && $(MAKE) clean) ; \
- 		fi \
- 	done
-+	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
- 	-rm -f common/*.o
- 	-rm -f *.pc
-diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
---- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
-+++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
-@@ -1,6 +1,6 @@
- # -*-makefile-*-
- 
--MESA_MODULES = $(TOP)/src/mesa/libmesa.a
-+MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
- 
- COMMON_SOURCES = \
-         ../common/utils.c \
-@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
- 
- $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
- 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
--		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
-+		$(OBJECTS) $(WINOBJ) \
-+		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
-+		$(DRI_LIB_DEPS)
- 
- 
- $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
-diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
---- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
-+++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
-@@ -77,7 +77,6 @@
-  */
- 
- .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
--.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
- 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
- _generic_read_RGBA_span_BGRA8888_REV_MMX:
- 	pushl	%ebx
-@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
-  */
- 
- .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
--.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
- 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
- _generic_read_RGBA_span_BGRA8888_REV_SSE:
- 	pushl	%esi
-@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
- 
- 	.text
- .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
--.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
- 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
- _generic_read_RGBA_span_BGRA8888_REV_SSE2:
- 	pushl	%esi
-@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
- 
- 	.text
- 	.globl	_generic_read_RGBA_span_RGB565_MMX
--        .hidden _generic_read_RGBA_span_RGB565_MMX
- 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
- 
- _generic_read_RGBA_span_RGB565_MMX:
-- 
cgit v0.12


From 214d0cdc774748f6548f9188e87482d34b36e626 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:49:16 -0700
Subject: atk:Bumped/Updated for LinHES 7.

---
 abs/core-testing/atk/PKGBUILD | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/abs/core-testing/atk/PKGBUILD b/abs/core-testing/atk/PKGBUILD
index db41418..304d2c8 100644
--- a/abs/core-testing/atk/PKGBUILD
+++ b/abs/core-testing/atk/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 30101 2009-03-16 18:13:31Z jgc $
+# $Id: PKGBUILD 74174 2010-03-30 17:11:38Z ibiru $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 pkgname=atk
-pkgver=1.26.0
+pkgver=1.30.0
 pkgrel=1
 pkgdesc="A library providing a set of interfaces for accessibility"
 arch=(i686 x86_64)
 license=('LGPL')
-depends=('glib2>=2.20.0')
-makedepends=('pkgconfig')
-options=('!libtool' '!docs')
-source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.26/${pkgname}-${pkgver}.tar.bz2)
+depends=('glib2>=2.24')
+makedepends=('pkgconfig' 'gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.30/${pkgname}-${pkgver}.tar.bz2)
 url='http://www.gtk.org/'
-md5sums=('719229408019c548855673840679f156')
+sha256sums=('92b9b1213cafc68fe9c3806273b968c26423237d7b1f631dd83dc5270b8c268c')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-- 
cgit v0.12


From f1a48be1666ec886ff650df72882e7a771ec7584 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:49:39 -0700
Subject: aufs-utils:Removed for LinHES 7.

---
 abs/core-testing/aufs-utils/PKGBUILD | 48 ------------------------------------
 1 file changed, 48 deletions(-)
 delete mode 100644 abs/core-testing/aufs-utils/PKGBUILD

diff --git a/abs/core-testing/aufs-utils/PKGBUILD b/abs/core-testing/aufs-utils/PKGBUILD
deleted file mode 100644
index 9db9850..0000000
--- a/abs/core-testing/aufs-utils/PKGBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# $Id: PKGBUILD 22882 2008-12-29 19:41:01Z tpowa $
-# Contributor: Paul Mattal <paul@mattal.com>
-# Maintainer: Paul Mattal <pjmattal@elys.com>
-pkgname=aufs-utils
-pkgver=20081226
-pkgrel=3
-_kernver='2.6.28-LinHES'
-pkgdesc="Another Unionfs Implementation that supports NFS branches"
-arch=('i686' 'x86_64')
-url="http://aufs.sourceforge.net/"
-license=('GPL2')
-depends=('glibc')
-source=(ftp://ftp.archlinux.org/other/aufs/aufs-$pkgver.tar.bz2)
-
-build() {
-  cd $srcdir/aufs || return 1
-
-  # Fix TMPFS_MAGIC error
-  sed 's|-le 26|-le 27|g' -i fs/aufs25/Makefile || return 1
-
-  # disable debug, broken in 2.6.28!
-  sed -i 's|CONFIG_AUFS_DEBUG = y|CONFIG_AUFS_DEBUG = |' \
-     local.mk || return 1
-
-  # configure for NFS by:
-  # 1) configure local.mk to use FILP and LHASH
-  sed -i 's|CONFIG_AUFS_PUT_FILP_PATCH =|CONFIG_AUFS_PUT_FILP_PATCH = y|' \
-    local.mk || return 1
-  sed -i 's|CONFIG_AUFS_LHASH_PATCH =|CONFIG_AUFS_LHASH_PATCH = y|' \
-    local.mk || return 1
-  # 2) configure local.mk NOT to use FAKE_DM
-  sed -i 's|CONFIG_AUFS_FAKE_DM = y|CONFIG_AUFS_FAKE_DM =  |' \
-    local.mk || return 1
-
-  # build
-  make KDIR=/usr/src/linux-$_kernver/ -f local.mk || return 1
-
-  # install
-  install -D -m755 util/aufind.sh $pkgdir/usr/bin/aufind.sh || return 1
-  install -D -m755 util/aulchown $pkgdir/usr/bin/aulchown || return 1
-  install -D -m755 util/auplink $pkgdir/usr/bin/auplink || return 1
-  install -D -m755 util/mount.aufs $pkgdir/sbin/mount.aufs || return 1
-  install -D -m755 util/umount.aufs $pkgdir/sbin/umount.aufs || return 1
-  install -D -m644 util/etc_default_aufs $pkgdir/etc/default/aufs || return 1
-}
-
-# vim:set ts=2 sw=2 et:
-md5sums=('e855ed9edc16953028f22cae393690de')
-- 
cgit v0.12


From e94d162632d7851b25cc44bea12aa1c49884079c Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:49:59 -0700
Subject: aufs:Removed for LinHES 7.

---
 abs/core-testing/aufs/PKGBUILD     | 71 --------------------------------------
 abs/core-testing/aufs/aufs.install | 31 -----------------
 2 files changed, 102 deletions(-)
 delete mode 100644 abs/core-testing/aufs/PKGBUILD
 delete mode 100644 abs/core-testing/aufs/aufs.install

diff --git a/abs/core-testing/aufs/PKGBUILD b/abs/core-testing/aufs/PKGBUILD
deleted file mode 100644
index 3f1e1d0..0000000
--- a/abs/core-testing/aufs/PKGBUILD
+++ /dev/null
@@ -1,71 +0,0 @@
-# $Id: PKGBUILD 22431 2008-12-26 20:13:34Z tpowa $
-# Contributor: Paul Mattal <paul@mattal.com>
-# Maintainer: Paul Mattal <pjmattal@elys.com>
-pkgname=aufs
-pkgver=20081226
-pkgrel=2
-_kernver='2.6.28-LinHES'
-pkgdesc="Another Unionfs Implementation that supports NFS branches"
-arch=('i686' 'x86_64')
-url="http://aufs.sourceforge.net/"
-license=('GPL2')
-depends=('kernel26>=2.6.28' 'kernel26<2.6.29' 'glibc' 'aufs-utils=20081226')
-install=$pkgname.install
-source=(ftp://ftp.archlinux.org/other/aufs/$pkgname-$pkgver.tar.bz2)
-options=(!libtool !makeflags)
-
-build() {
-  cd $srcdir/$pkgname || return 1
-
-  # Fix TMPFS_MAGIC error
-  sed 's|-le 26|-le 27|g' -i fs/aufs25/Makefile || return 1
-
-  # use splice functions exported by unionfs kernel patch'
-  # - important for loopback fs mounts 
-  sed -i 's|CONFIG_AUFS_SPLICE_PATCH =|CONFIG_AUFS_SPLICE_PATCH = y|' \
-     local.mk || return 1
-
-  # this fixes the unionfs patch from hanging aufs
-  sed -i 's|CONFIG_AUFS_UNIONFS23_PATCH =|CONFIG_AUFS_UNIONFS23_PATCH = y|' \
-     local.mk || return 1
-
-  sed -i 's|CONFIG_AUFS_WORKAROUND_FUSE =|CONFIG_AUFS_WORKAROUND_FUSE = y|' \
-     local.mk || return 1
-
-  sed -i 's|CONFIG_AUFS_BRANCH_MAX_127 = y|CONFIG_AUFS_BRANCH_MAX_127 =|' \
-     local.mk || return 1
-          	        	       	       	   
-  sed -i 's|CONFIG_AUFS_BRANCH_MAX_1023 =|CONFIG_AUFS_BRANCH_MAX_1023 = y|' \
-     local.mk || return 1
-
-  # ???
-  sed -i 's|.*CONFIG_AUFS_SHWH =.*|CONFIG_AUFS_SHWH = y|' \
-    local.mk || return 1
-  # disable debug, broken in 2.6.28!
-  sed -i 's|CONFIG_AUFS_DEBUG = y|CONFIG_AUFS_DEBUG = |' \
-     local.mk || return 1
-
-  # configure for NFS by:
-  # 1) configure local.mk to use FILP and LHASH
-  sed -i 's|CONFIG_AUFS_PUT_FILP_PATCH =|CONFIG_AUFS_PUT_FILP_PATCH = y|' \
-    local.mk || return 1
-  sed -i 's|CONFIG_AUFS_LHASH_PATCH =|CONFIG_AUFS_LHASH_PATCH = y|' \
-    local.mk || return 1
-  # 2) configure local.mk NOT to use FAKE_DM
-  sed -i 's|CONFIG_AUFS_FAKE_DM = y|CONFIG_AUFS_FAKE_DM =  |' \
-    local.mk || return 1
-
-  # build
-  make KDIR=/usr/src/linux-$_kernver/ -f local.mk || return 1
-
-  # install
-  install -D -m644 fs/aufs25/aufs.ko \
-    $startdir/pkg/lib/modules/$_kernver/fs/aufs25/aufs.ko || return 1
-
-  # tweak the install script for the right kernel version
-  sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
-    $startdir/$pkgname.install || return 1
-}
-
-# vim:set ts=2 sw=2 et:
-md5sums=('e855ed9edc16953028f22cae393690de')
diff --git a/abs/core-testing/aufs/aufs.install b/abs/core-testing/aufs/aufs.install
deleted file mode 100644
index 8081c6a..0000000
--- a/abs/core-testing/aufs/aufs.install
+++ /dev/null
@@ -1,31 +0,0 @@
-pre_install() {
-	/bin/true
-}
-
-post_install() {
-  # updating module dependencies
-  echo ">>> Updating module dependencies. Please wait ..."
-  KERNEL_VERSION=2.6.28-LinHES
-  depmod -v $KERNEL_VERSION > /dev/null 2>&1
-  /bin/true
-}
-
-post_upgrade() {
-  # updating module dependencies
-  echo ">>> Updating module dependencies. Please wait ..."
-  KERNEL_VERSION=2.6.28-LinHES
-  depmod -v $KERNEL_VERSION > /dev/null 2>&1
-  /bin/true
-}
-
-post_remove() {
-  # updating module dependencies
-  echo ">>> Updating module dependencies. Please wait ..."
-  KERNEL_VERSION=2.6.28-LinHES
-  depmod -v $KERNEL_VERSION > /dev/null 2>&1
-  /bin/true
-}
-
-op=$1
-shift
-$op $*
-- 
cgit v0.12


From 5572c1efbd8f6ac5cd609d746d5630131bc32ba1 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:50:20 -0700
Subject: aufs2-utils:Bumped/Updated for LinHES 7.

---
 abs/core-testing/aufs2-util/PKGBUILD          | 25 +++++++++++++++++++++++++
 abs/core-testing/aufs2-util/create-tarball.sh | 11 +++++++++++
 2 files changed, 36 insertions(+)
 create mode 100644 abs/core-testing/aufs2-util/PKGBUILD
 create mode 100755 abs/core-testing/aufs2-util/create-tarball.sh

diff --git a/abs/core-testing/aufs2-util/PKGBUILD b/abs/core-testing/aufs2-util/PKGBUILD
new file mode 100644
index 0000000..0690bba
--- /dev/null
+++ b/abs/core-testing/aufs2-util/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 80416 2010-05-17 08:02:02Z tpowa $
+# Contributor: Paul Mattal <paul@mattal.com>
+# Maintainer: Paul Mattal <pjmattal@elys.com>
+pkgname=aufs2-util
+pkgver=20100517
+pkgrel=1
+pkgdesc="Another Unionfs Implementation that supports NFS branches"
+arch=('i686' 'x86_64')
+url="http://aufs.sourceforge.net/"
+license=('GPL2')
+depends=('glibc')
+makedepends=('aufs2>=2.6.34_20100517' 'kernel26-headers')
+replaces=('aufs-utils')
+source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+
+build() {
+  cd $srcdir/$pkgname-$pkgver
+  make || return 1
+}
+
+package() {
+  cd $srcdir/$pkgname-$pkgver
+  make DESTDIR=$pkgdir install || return 1
+}
+md5sums=('1541729832ead247953b09dd5cc40883')
diff --git a/abs/core-testing/aufs2-util/create-tarball.sh b/abs/core-testing/aufs2-util/create-tarball.sh
new file mode 100755
index 0000000..dd59212
--- /dev/null
+++ b/abs/core-testing/aufs2-util/create-tarball.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+GITSNAPSHOT=20100517
+# aufs2 (no -xx) for the latest -rc version.
+git clone http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-util.git aufs2-util.git
+cd aufs2-util.git
+#git checkout origin/aufs2${AUFS2VERSION}
+git checkout 
+cd ..
+rm -rf aufs2-util-${GITSNAPSHOT}
+cp -a aufs2-util.git aufs2-util-${GITSNAPSHOT}
+tar -czf aufs2-util-${GITSNAPSHOT}.tar.gz --exclude=.git aufs2-util-${GITSNAPSHOT}
-- 
cgit v0.12


From d3d70f0555b4f33bafeaf02358ac2fcf0b2dcd10 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:50:31 -0700
Subject: aufs2:Bumped/Updated for LinHES 7.

---
 abs/core-testing/aufs2/PKGBUILD          | 58 ++++++++++++++++++++++++++++++++
 abs/core-testing/aufs2/aufs2.install     | 12 +++++++
 abs/core-testing/aufs2/create-tarball.sh | 14 ++++++++
 3 files changed, 84 insertions(+)
 create mode 100644 abs/core-testing/aufs2/PKGBUILD
 create mode 100644 abs/core-testing/aufs2/aufs2.install
 create mode 100755 abs/core-testing/aufs2/create-tarball.sh

diff --git a/abs/core-testing/aufs2/PKGBUILD b/abs/core-testing/aufs2/PKGBUILD
new file mode 100644
index 0000000..21037ef
--- /dev/null
+++ b/abs/core-testing/aufs2/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 80414 2010-05-17 07:59:57Z tpowa $
+# Maintainer: Paul Mattal <pjmattal@elys.com>
+
+pkgname=aufs2
+pkgver=2.6.34_20100517
+pkgrel=1
+#_kernver=${pkgver%_*}-ARCH
+_kernver=2.6.34-LinHES
+pkgdesc="Another Unionfs Implementation"
+arch=('i686' 'x86_64')
+url="http://aufs.sourceforge.net/"
+license=('GPL2')
+depends=('kernel26>=2.6.34' 'kernel26<2.6.35')
+makedepends=('linux-api-headers>=2.6.34' 'linux-api-headers<2.6.35')
+replaces=('aufs')
+install=${pkgname}.install
+source=("ftp://ftp.archlinux.org/other/aufs2/${pkgname}-${pkgver}.tar.gz")
+options=('!makeflags')
+md5sums=('271f07ac41e07cb7c30ff29bee8087fa')
+
+build() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  sed -i 's|CONFIG_AUFS_HNOTIFY =.*|CONFIG_AUFS_HNOTIFY = y|' \
+     config.mk || return 1
+  sed -i 's|CONFIG_AUFS_HFSNOTIFY =.*|CONFIG_AUFS_HFSNOTIFY = y|' \
+     config.mk || return 1
+  sed -i 's|CONFIG_AUFS_EXPORT =.*|CONFIG_AUFS_EXPORT = y|' \
+     config.mk || return 1
+  sed -i 's|CONFIG_AUFS_SHWH =.*|CONFIG_AUFS_SHWH = y|' \
+     config.mk || return 1
+  sed -i 's|CONFIG_AUFS_BDEV_LOOP =.*|CONFIG_AUFS_BDEV_LOOP = y|' \
+     config.mk || return 1
+  sed -i 's|CONFIG_AUFS_BR_RAMFS =.*|CONFIG_AUFS_BR_RAMFS = y|' \
+     config.mk || return 1
+  sed -i 's|CONFIG_AUFS_DEBUG =.*|CONFIG_AUFS_DEBUG =|' \
+     config.mk || return 1
+  if [ "${CARCH}" = "x86_64" ]; then
+    inot64=" y"
+  else
+    inot64=""
+  fi
+  sed -i "s|CONFIG_AUFS_INO_T_64 =.*|CONFIG_AUFS_INO_T_64 =${inot64}|" \
+     config.mk || return 1
+  # build
+  make KDIR=/usr/src/linux-${_kernver} || return 1
+}
+
+package() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  install -D -m644 fs/aufs/aufs.ko \
+    $pkgdir/lib/modules/${_kernver}/kernel/fs/aufs/aufs.ko || return 1
+  # tweak the install script for the right kernel version
+  sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
+    $startdir/$pkgname.install || return 1
+  # install include files
+  install -D -m 644 include/linux/aufs_type.h $pkgdir/usr/src/linux-$_kernver/include/linux/aufs_type.h || return 1
+}
+md5sums=('421c5ca3d4d917f92f7c0508a16f8177')
diff --git a/abs/core-testing/aufs2/aufs2.install b/abs/core-testing/aufs2/aufs2.install
new file mode 100644
index 0000000..0f4de97
--- /dev/null
+++ b/abs/core-testing/aufs2/aufs2.install
@@ -0,0 +1,12 @@
+post_install() {
+  KERNEL_VERSION=2.6.34-LinHES
+  depmod $KERNEL_VERSION
+}
+
+post_upgrade() {
+  post_install
+}
+
+post_remove() {
+  post_install
+}
diff --git a/abs/core-testing/aufs2/create-tarball.sh b/abs/core-testing/aufs2/create-tarball.sh
new file mode 100755
index 0000000..c196c68
--- /dev/null
+++ b/abs/core-testing/aufs2/create-tarball.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+AUFS2VERSION="-34"
+KERNELVERSION=2.6.34
+GITSNAPSHOT=20100517
+# aufs2 (no -xx) for the latest -rc version.
+git clone http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-standalone.git aufs2-standalone.git
+cd aufs2-standalone.git
+#git checkout origin/aufs2${AUFS2VERSION}
+git checkout origin/aufs2
+#*** apply "aufs2-base.patch" and "aufs2-standalone.patch" to your kernel source files.
+cd ..
+rm -rf aufs2-${KERNELVERSIN}_${GITSNAPSHOT}
+cp -a aufs2-standalone.git aufs2-${KERNELVERSION}_${GITSNAPSHOT}
+tar -czf aufs2-${KERNELVERSION}_${GITSNAPSHOT}.tar.gz --exclude=.git aufs2-${KERNELVERSION}_${GITSNAPSHOT}
-- 
cgit v0.12


From 2f09e5e139a4be5d91782a94c00b9f64d453b0eb Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:50:45 -0700
Subject: avahi:Bumped/Updated for LinHES 7.

---
 abs/core-testing/avahi/ChangeLog               |  8 ++++
 abs/core-testing/avahi/PKGBUILD                | 51 +++++++++++++++-----------
 abs/core-testing/avahi/avahi-daemon-dbus.patch | 16 ++++++++
 3 files changed, 53 insertions(+), 22 deletions(-)
 create mode 100644 abs/core-testing/avahi/avahi-daemon-dbus.patch

diff --git a/abs/core-testing/avahi/ChangeLog b/abs/core-testing/avahi/ChangeLog
index e298fb4..57984a3 100644
--- a/abs/core-testing/avahi/ChangeLog
+++ b/abs/core-testing/avahi/ChangeLog
@@ -1,4 +1,12 @@
 
+2009-04-23  Douglas Soares de Andrade  <douglas@archlinux.org>
+
+	* Updated for i686: 0.6.25
+
+2009-03-21  Eric Belanger  <eric@archlinux.org>
+
+	* Added optdepends for avahi-discover (close FS#11250)
+
 2009-01-04  Douglas Soares de Andrade  <douglas@archlinux.org>
 
 	* Updated for i686: 0.6.24
diff --git a/abs/core-testing/avahi/PKGBUILD b/abs/core-testing/avahi/PKGBUILD
index c448d16..f3d15bf 100644
--- a/abs/core-testing/avahi/PKGBUILD
+++ b/abs/core-testing/avahi/PKGBUILD
@@ -1,31 +1,37 @@
-# $Id: PKGBUILD 23159 2009-01-04 04:58:11Z douglas $
-# Maintainer: Douglas Soares de Andrade <douglas@archlinux.org>
+# $Id: PKGBUILD 70504 2010-02-27 03:24:54Z dgriffiths $
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
 
 pkgname=avahi
-pkgver=0.6.24
-pkgrel=2
+pkgver=0.6.25
+pkgrel=3
 pkgdesc="A multicast/unicast DNS-SD framework"
 arch=('i686' 'x86_64')
 url="http://www.avahi.org/"
 license=('LGPL')
-depends=('dbus>=1.1.20-1' 'libcap' 'libdaemon>=0.11' 'gdbm' 'glib2' 'expat')
-optdepends=('qt3:Qt3 UI support' 'libglade:Avahi-discover-standalone'
-            'nss-mdns:NSS support for mDNS')
+depends=('dbus>=1.1.20-1' 'libcap>=2.16' 'libdaemon>=0.11' 'gdbm' 'glib2' 'expat')
+optdepends=('qt3: Qt3 UI support'
+	'libglade: avahi-discover-standalone'
+	'nss-mdns: NSS support for mDNS'
+	'pygtk: avahi-discover'
+	'dbus-python: avahi-discover')
 makedepends=('mono' 'pygtk' 'gtk-sharp-2' 'dbus-python' 'qt3' 'libglade' 'intltool')
-backup=(etc/avahi/avahi-daemon.conf)
+backup=(etc/avahi/avahi-daemon.conf etc/avahi/services/{sftp-,}ssh.service)
 install=avahi.install
 conflicts=('howl' 'mdnsresponder')
 provides=('howl' 'mdnsresponder')
 replaces=('howl' 'mdnsresponder')
 options=('!libtool')
-source=(http://www.avahi.org/download/avahi-${pkgver}.tar.gz gnome-nettool.png)
+source=(http://www.avahi.org/download/avahi-${pkgver}.tar.gz gnome-nettool.png avahi-daemon-dbus.patch)
 
 build() {
   [ -z "${QTDIR}" ] && . /etc/profile.d/qt3.sh
-  export MONO_SHARED_DIR=${startdir}/src/.wabi
+  export MONO_SHARED_DIR=${srcdir}/.wabi
   mkdir -p ${MONO_SHARED_DIR}
 
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd ${srcdir}/${pkgname}-${pkgver}
+
+  sed -i 's|Requires.private|Requires|' avahi-qt3.pc.in
+
   ./configure --prefix=/usr \
     --sysconfdir=/etc \
     --localstatedir=/var \
@@ -42,23 +48,24 @@ build() {
     --with-autoipd-group=avahi
 
   make || return 1
-  make DESTDIR=${startdir}/pkg install
+  make DESTDIR=${pkgdir} install
 
   rm -rf ${MONO_SHARED_DIR}
   
-  #fix capability
-  sed -i -e 's|$DAEMON -D |modprobe capability  > /dev/null 2>\&1 ;  $DAEMON -D |' ${startdir}/pkg/etc/rc.d/avahi-daemon
-
-  sed -i -e 's/netdev/network/g' ${startdir}/pkg/etc/dbus-1/system.d/avahi-dbus.conf
+  sed -i -e 's/netdev/network/g' ${pkgdir}/etc/dbus-1/system.d/avahi-dbus.conf
    
   # howl and mdnsresponder compatability
-  cd ${startdir}/pkg/usr/include
+  cd ${pkgdir}/usr/include
   ln -s avahi-compat-libdns_sd/dns_sd.h dns_sd.h
   ln -s avahi-compat-howl howl
-  cd ${startdir}/pkg/usr/lib/pkgconfig
+  cd ${pkgdir}/usr/lib/pkgconfig
   ln -s avahi-compat-howl.pc howl.pc
-  mkdir -p ${startdir}/pkg/usr/share/pixmaps
-  install -m 644 ${startdir}/src/gnome-nettool.png ${startdir}/pkg/usr/share/pixmaps/gnome-nettool.png
+  mkdir -p ${pkgdir}/usr/share/pixmaps
+  install -m 644 ${srcdir}/gnome-nettool.png ${pkgdir}/usr/share/pixmaps/gnome-nettool.png
+
+  cd ${pkgdir}
+  patch -p0 < ${srcdir}/avahi-daemon-dbus.patch || return 1
 }
-md5sums=('068c1d220b07037e64caf87d4a7a0504'
-         '42c2905307c7a5dc6ac4b75f4c3d65a3')
+md5sums=('a83155a6e29e3988f07e5eea3287b21e'
+         '42c2905307c7a5dc6ac4b75f4c3d65a3'
+	 '0e1f5900b56fcfa1bffddb4f233f539f')
diff --git a/abs/core-testing/avahi/avahi-daemon-dbus.patch b/abs/core-testing/avahi/avahi-daemon-dbus.patch
new file mode 100644
index 0000000..fe82f41
--- /dev/null
+++ b/abs/core-testing/avahi/avahi-daemon-dbus.patch
@@ -0,0 +1,16 @@
+--- etc/rc.d/avahi-daemon	2010-02-26 21:10:30.000000000 -0600
++++ etc/rc.d/avahi-daemon	2010-02-26 21:09:44.000000000 -0600
+@@ -35,8 +35,11 @@
+ 
+ case "$1" in
+     start)
+-        stat_busy "Starting $DESC"
+-        $DAEMON -D > /dev/null 2>&1
++	if ck_daemon dbus; then
++		/etc/rc.d/dbus start
++	fi
++    	stat_busy "Starting $DESC"
++        modprobe capability  > /dev/null 2>&1 ;  $DAEMON -D > /dev/null 2>&1
+         if [ $? -gt 0 ]; then
+             stat_fail
+         else
-- 
cgit v0.12


From 7df60587a359bdefa8a99a209efb7e8be9d2ac66 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:51:03 -0700
Subject: bash:Bumped/Updated for LinHES 7.

---
 abs/core-testing/bash/PKGBUILD                     | 116 ++++++++-------------
 .../bash/enable-system-config-files.patch          |  15 +++
 abs/core-testing/bash/profile.bash                 |  18 +---
 abs/core-testing/bash/system.bashrc                |  31 ++++++
 4 files changed, 90 insertions(+), 90 deletions(-)
 create mode 100644 abs/core-testing/bash/enable-system-config-files.patch
 create mode 100644 abs/core-testing/bash/system.bashrc

diff --git a/abs/core-testing/bash/PKGBUILD b/abs/core-testing/bash/PKGBUILD
index ae1eaba..96c24a1 100644
--- a/abs/core-testing/bash/PKGBUILD
+++ b/abs/core-testing/bash/PKGBUILD
@@ -1,101 +1,69 @@
-# $Id: PKGBUILD 25772 2009-01-28 20:03:08Z aaron $
+# $Id: PKGBUILD 82719 2010-06-16 04:44:35Z allan $
 # Maintainer: Aaron Griffin <aaron@archlinux.org>
 
 pkgname=bash
-_patchlevel=048
-pkgver=3.2.$_patchlevel
-pkgrel=3
+_patchlevel=007 #prepare for some patches
+pkgver=4.1.$_patchlevel
+pkgrel=1
 pkgdesc="The GNU Bourne Again shell"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
 license=('GPL')
 url="http://www.gnu.org/software/bash/bash.html"
 groups=('base')
 backup=(etc/profile.bash etc/skel/.bashrc etc/skel/.bash_profile)
-depends=('readline>=5.2' 'glibc')
-makedepends=(gzip bison)
+depends=('readline>=6.1' 'glibc')
+makedepends=(gzip)
 provides=('sh')
 install=bash.install
-source=(http://ftp.gnu.org/gnu/bash/bash-3.2.tar.gz
-        profile.bash bashrc)
-for p in $(seq -w 001 $_patchlevel); do
-    source=(${source[@]} http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-$p)
-done
+source=(http://ftp.gnu.org/gnu/bash/bash-4.1.tar.gz
+        profile.bash
+        bashrc
+        enable-system-config-files.patch
+        system.bashrc)
+if [ $_patchlevel -gt 000 ]; then
+    for (( p=1; p<=$_patchlevel; p++ )); do
+        source=(${source[@]} http://ftp.gnu.org/gnu/bash/bash-4.1-patches/bash41-$(printf "%03d" $p))
+    done
+fi
 
 build() {
-  cd ${startdir}/src/${pkgname}-3.2
-  for p in ../bash32-*; do
+  cd ${srcdir}/${pkgname}-4.1
+  for p in ../bash41-*; do
+    [ -e "$p" ] || continue
     msg "applying patch ${p}"
     patch -Np0 -i ${p} || return 1
   done
 
+  patch -Np0 -i $srcdir/enable-system-config-files.patch || return 1
+
   ./configure --prefix=/usr --with-curses --enable-readline \
     --without-bash-malloc --with-installed-readline \
     --bindir=/bin --mandir=/usr/share/man --infodir=/usr/share/info
   make || return 1
-  make DESTDIR=${startdir}/pkg install
+  make DESTDIR=${pkgdir} install
 
-  install -D -m644 ${startdir}/src/profile.bash ${startdir}/pkg/etc/profile.bash
+  install -D -m644 ${srcdir}/profile.bash ${pkgdir}/etc/profile.bash || return 1
+  install -D -m644 ${srcdir}/system.bashrc ${pkgdir}/etc/bash.bashrc || return 1
 
   # for now, bash is our default /bin/sh
-  cd ${startdir}/pkg/bin
+  cd ${pkgdir}/bin
   ln -s bash sh
 
-  mkdir -p $startdir/pkg/etc/skel/
-  install -D -m644 $startdir/src/bashrc $startdir/pkg/etc/skel/.bashrc
-  echo ". \$HOME/.bashrc" >$startdir/pkg/etc/skel/.bash_profile
-  
-  rm -f ${pkgdir}/usr/share/info/dir
-  gzip -9 ${pkgdir}/usr/share/info/bash.info
+  mkdir -p ${pkgdir}/etc/skel/
+  install -D -m644 ${srcdir}/bashrc ${pkgdir}/etc/skel/.bashrc
+  echo ". \$HOME/.bashrc" >${pkgdir}/etc/skel/.bash_profile
 }
-# wow, that's a lot of md5sums!
-md5sums=('00bfa16d58e034e3c2aa27f390390d30'
-         'c2fae355facefcac8a732cce877da194'
+
+md5sums=('9800d8724815fd84994d9be65ab5e7b8'
+         '17f20ec69535a2f50f2112a8c700630d'
          '3d2837e84645eac9bde399b58014bafa'
-         'd8e10c754f477e3f3a581af566b89301'
-         'd38a5288b2f0ea6c9ac76b66cc74ef7d'
-         '0b90d37911827d8cb95f3b4353cc225e'
-         '8062f3a59631f58d78b180d83759b68a'
-         '585b5943fadf0875ced243b245adde58'
-         '1d5732e01ea938aeed42f3def131fa4d'
-         'dcd0cc5d801607827f7c851e72b0eabc'
-         'bb3c7dd11198c0ab93d0e960bebf6256'
-         '434a6f29b0ca5f1ab784b2437ae8eaed'
-         '2efff04dd246fcf63bd4b99f77c9a081'
-         '1dd104342f6920dfaf5efb3131e922e0'
-         '4f24b696ab78bdfae4f9cb7eb59b835d'
-         '7c40addbf1187a26ae1c8373ed383442'
-         '28e88c9f8679e99ac590d4a4a8227c56'
-         '7c17d29675bd0d49470f162774385f80'
-         'a1edaa98b4449fe2205fa75448b7b105'
-         '889ed119bbf9d363660b9a0127f35efa'
-         'a7d3f85fa687d2c1b5a134839f6d395d'
-         'f0399da4007e46fc5820ce25d07425b9'
-         'b76602281c3104d904fd064510fe0c21'
-         '923374ae4403c92820f711e62e1d01a5'
-         'c82d3bd14e373878b2a680dce18d1596'
-         '987c949a77b4b0ffe4a2597141e77635'
-         '5a2b976e761ab83f0fc7daae11451b86'
-         '08668dc2825f65eced9cac6b09ce1b45'
-         'f35b2b217f088ff009f956894550d41d'
-         'b5ff2b9610c61290f773c4b02cc1a37d'
-         '016f5b56c93404d32aea09385f0fc13e'
-         'a81420626d4d88d0dce2ffac0ac56341'
-         '11f91baf970c132949f9072ee93f2ea6'
-         'f6bbc1e8ec0246740731c728ef476191'
-         '8180ec936770579bce69f0816c2dd878'
-         '3cec33c3711860c4c6b7614afeec7870'
-         '7bc6c5b5f38b7027152f8db0458a2e14'
-         'a2db61fe90e39371d0e6cd2285ec9208'
-         '95c70c7ae9de5bd3659c86284be7fb76'
-         '62b876a3d7cd192cc8db2476fbb6b7b9'
-         'aca3afc341bd3e5a0d8a3b4ca40dbb3f'
-         'e240c34f979b64bcb83c5f6567110bb1'
-         '06e6df263398807fa032707fb7b77b5f'
-         '373ae081d658dc85bc1058c4759d6669'
-         '9c9ebc6bfc33a0215277ee17a276eb5a'
-         'b87fb9ea16a64ca41b6676e9a7eb7a33'
-         '07e0229ce5879bfbd26a8146070fd366'
-         '1ad07965a8a93f3556ee1ab18b97cde2'
-         'f7b1e19fcad54c2286bc0ed614aad9bf'
-         '550690766de770116c34dbdf74e59184'
-         '4cc593e7b789b23b37a5397e092d3954')
+         '51725defa4c2dec49c1bc15883e0bee2'
+         '196697769f1667a8a1aed608811129c6'
+         '582dea5671b557f783e18629c2f77b68'
+         '118d465095d4a4706eb1d34696a2666a'
+         '120f7cf039a40d35fe375e59d6f17adc'
+         '336ee037fc2cc1e2350b05097fbdc87c'
+         '9471e666797f0b03eb2175ed752a9550'
+         'fb80ccd58cb1e34940f3adf4ce6e4a1e'
+         '192a8b161d419a1d0d211169f1d1046e')
+
diff --git a/abs/core-testing/bash/enable-system-config-files.patch b/abs/core-testing/bash/enable-system-config-files.patch
new file mode 100644
index 0000000..5295355
--- /dev/null
+++ b/abs/core-testing/bash/enable-system-config-files.patch
@@ -0,0 +1,15 @@
+--- src/bash-4.0/config-top.h	2009-01-04 11:32:23.000000000 -0800
++++ config-top.h	2009-08-25 08:41:08.000000000 -0700
+@@ -75,10 +75,10 @@
+ #define KSH_COMPATIBLE_SELECT
+ 
+ /* System-wide .bashrc file for interactive shells. */
+-/* #define SYS_BASHRC "/etc/bash.bashrc" */
++#define SYS_BASHRC "/etc/bash.bashrc"
+ 
+ /* System-wide .bash_logout for login shells. */
+-/* #define SYS_BASH_LOGOUT "/etc/bash.bash_logout" */
++#define SYS_BASH_LOGOUT "/etc/bash.bash_logout"
+ 
+ /* Define this to make non-interactive shells begun with argv[0][0] == '-'
+    run the startup files when not in posix mode. */
diff --git a/abs/core-testing/bash/profile.bash b/abs/core-testing/bash/profile.bash
index 8a7e1aa..d28f069 100644
--- a/abs/core-testing/bash/profile.bash
+++ b/abs/core-testing/bash/profile.bash
@@ -3,23 +3,9 @@
 # Global settings for bash shells
 #
 
-PS1='[\u@\h \W]\$ '
-PS2='> '
-PS3='> '
-PS4='+ '
-
-export PS1 PS2 PS3 PS4
-
 #In the future we may want to add more ulimit entries here,
 # in the offchance that /etc/security/limits.conf is skipped
 ulimit -Sc 0 #Don't create core files
 
-if test "$TERM" = "xterm" -o \
-        "$TERM" = "xterm-color" -o \
-        "$TERM" = "xterm-256color" -o \
-        "$TERM" = "rxvt" -o \
-        "$TERM" = "rxvt-unicode" -o \
-        "$TERM" = "xterm-xfree86"; then
-    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'
-    export PROMPT_COMMAND
-fi
+# Source our global bashrc file, to remove duplication of effort
+[ -r /etc/bash.bashrc ] && . /etc/bash.bashrc
diff --git a/abs/core-testing/bash/system.bashrc b/abs/core-testing/bash/system.bashrc
new file mode 100644
index 0000000..5430d6b
--- /dev/null
+++ b/abs/core-testing/bash/system.bashrc
@@ -0,0 +1,31 @@
+#
+# /etc/bash.bashrc
+#
+# This file is the systemwide bashrc file. While most of the
+# environment is preserved when running an interactive shell
+# the PS[1-4] variables, aliases and functions are reset.
+#
+# When running a non-login shell, apply the following settings:
+# - Prompt defaults (PS[1-4], PROMPT_COMMAND)
+# - bash_completion if it exists
+# - source /etc/bash.bashrc.local
+
+PS1='[\u@\h \W]\$ '
+PS2='> '
+PS3='> '
+PS4='+ '
+
+export PS1 PS2 PS3 PS4
+
+if test "$TERM" = "xterm" -o \
+        "$TERM" = "xterm-color" -o \
+        "$TERM" = "xterm-256color" -o \
+        "$TERM" = "rxvt" -o \
+        "$TERM" = "rxvt-unicode" -o \
+        "$TERM" = "xterm-xfree86"; then
+    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'
+    export PROMPT_COMMAND
+fi
+
+[ -r /etc/bash_completion   ] && . /etc/bash_completion
+[ -r /etc/bash.bashrc.local ] && . /etc/bash.bashrc.local
-- 
cgit v0.12


From 400b16afef123438f299a04d8ab1bc150f850304 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:51:13 -0700
Subject: bc:Bumped/Updated for LinHES 7.

---
 abs/core-testing/bc/PKGBUILD                     | 29 ++++++++++++++----------
 abs/core-testing/bc/bc-1.06-info-dir-entry.patch | 11 +++++++++
 abs/core-testing/bc/bc.install                   | 20 ++++++++++++++++
 3 files changed, 48 insertions(+), 12 deletions(-)
 create mode 100644 abs/core-testing/bc/bc-1.06-info-dir-entry.patch
 create mode 100644 abs/core-testing/bc/bc.install

diff --git a/abs/core-testing/bc/PKGBUILD b/abs/core-testing/bc/PKGBUILD
index a20e35f..1ecefa1 100644
--- a/abs/core-testing/bc/PKGBUILD
+++ b/abs/core-testing/bc/PKGBUILD
@@ -1,26 +1,31 @@
-# $Id: PKGBUILD 9097 2008-08-17 03:44:40Z allan $
+# $Id: PKGBUILD 58247 2009-11-06 14:41:31Z eric $
 # Maintainer: dorphell <dorphell@archlinux.org>
 
 pkgname=bc
 pkgver=1.06
-pkgrel=5
+pkgrel=7
 pkgdesc="An arbitrary precision calculator language"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/bc/"
 license=('GPL')
 depends=('readline')
-replaces=(bc-readline)
-conflicts=(bc-readline)
+replaces=('bc-readline')
+conflicts=('bc-readline')
+install=bc.install
 source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz
-	build-fix.patch)
-md5sums=('d44b5dddebd8a7a7309aea6c36fda117' 'fc7ecbd9e55ef04c6d3a495692626116')
+	build-fix.patch bc-1.06-info-dir-entry.patch)
+md5sums=('d44b5dddebd8a7a7309aea6c36fda117' 'fc7ecbd9e55ef04c6d3a495692626116'\
+         'b6fe9869830aca0d34badf810fe0cfb3')
+sha1sums=('c8f258a7355b40a485007c40865480349c157292' '3af67c59e2232b9329ff0c1cf49d1a8a1cf87cd7'\
+         'c15c2a301ba80cf4d3c03a6e164f4e57fa86e4a2')
 
 build() {
   CFLAGS="$CFLAGS -O3"
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  patch -Np1 -i ${startdir}/src/build-fix.patch || return 1
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -p1 -i "${srcdir}/build-fix.patch" || return 1
+  patch -p1 -i "${srcdir}/bc-1.06-info-dir-entry.patch" || return 1
   ./configure --prefix=/usr --mandir=/usr/share/man \
-    --infodir=/usr/share/info --with-readline
+    --infodir=/usr/share/info --with-readline || return 1
   make LEX="flex -I" || return 1
-  make DESTDIR=${startdir}/pkg install
-  rm ${pkgdir}/usr/share/info/dir
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/bc/bc-1.06-info-dir-entry.patch b/abs/core-testing/bc/bc-1.06-info-dir-entry.patch
new file mode 100644
index 0000000..8c1344c
--- /dev/null
+++ b/abs/core-testing/bc/bc-1.06-info-dir-entry.patch
@@ -0,0 +1,11 @@
+--- bc-1.06/doc/bc.info.info-dir-entry	2000-10-03 20:36:31.000000000 +0200
++++ bc-1.06/doc/bc.info	2003-01-06 14:07:40.000000000 +0100
+@@ -1,5 +1,8 @@
+ This is bc.info, produced by makeinfo version 4.0 from bc.texi.
+ 
++START-INFO-DIR-ENTRY
++* bc: (bc).                   Arbritrary precision calculator language.
++END-INFO-DIR-ENTRY
+ 
+ File: bc.info,  Node: Top,  Next: Introduction,  Prev: (dir),  Up: (dir)
+ 
diff --git a/abs/core-testing/bc/bc.install b/abs/core-testing/bc/bc.install
new file mode 100644
index 0000000..e1e2eaa
--- /dev/null
+++ b/abs/core-testing/bc/bc.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(bc.info.gz dc.info.gz)
+
+post_install() {
+  [ -x usr/bin/install-info ] || return 0
+  for file in ${filelist[@]}; do
+    install-info $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  [ -x usr/bin/install-info ] || return 0
+  for file in ${filelist[@]}; do
+    install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
-- 
cgit v0.12


From 85c9e3866b49b924455f6964c6b93c9b104be708 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:51:22 -0700
Subject: binutils:Bumped/Updated for LinHES 7.

---
 abs/core-testing/binutils/PKGBUILD         | 88 ++++++++++++++++--------------
 abs/core-testing/binutils/binutils.install | 13 ++---
 2 files changed, 51 insertions(+), 50 deletions(-)

diff --git a/abs/core-testing/binutils/PKGBUILD b/abs/core-testing/binutils/PKGBUILD
index 9a8b925..0ec1438 100644
--- a/abs/core-testing/binutils/PKGBUILD
+++ b/abs/core-testing/binutils/PKGBUILD
@@ -1,70 +1,74 @@
-# $Id: PKGBUILD 19325 2008-11-20 11:47:00Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# $Id: PKGBUILD 80784 2010-05-22 08:05:08Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
 
-# toolchain build order: kernel-headers->glibc->binutils->gcc-libs->gcc->binutils->glibc
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
 
 pkgname=binutils
-pkgver=2.19
-pkgrel=1
-_date=20081119
+pkgver=2.20.1
+pkgrel=3
+_date=20100521
 pkgdesc="A set of programs to assemble and manipulate binary and object files"
 arch=('i686' 'x86_64')
-url="http://sources.redhat.com/binutils"
+url="http://www.gnu.org/software/binutils/"
 license=('GPL')
 groups=('base')
+depends=('glibc>=2.12-1' 'zlib')
 options=('!libtool' '!distcc' '!ccache')
-depends=('glibc>=2.9-1' 'texinfo>=4.12-3')
-source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2)
-md5sums=('4a49694b08ef0e5931dba4813326d062')
 install=binutils.install
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2)
+md5sums=('67053ffd8582e646e171fccd55b2f0f6')
 
-build() {
-  # for cvs checkout
-#  mkdir ${startdir}/src/${pkgname}-${_date}
-#  cd ${startdir}/src/${pkgname}-${_date}
-#  export _TAG=binutils-2_19-branch
-#  export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src'
-#  cvs -z9 co -r $_TAG binutils || return 1
-#  cd src && tar -cvjf ../../../binutils-2.19_${_date}.tar.bz2 *
-#  return 1
-
-  cd ${startdir}/src
+mksource() {
+  mkdir ${pkgname}-${_date}
+  cd ${pkgname}-${_date}
+  export _TAG=binutils-2_20-branch
+  export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src'
+  cvs -z9 co -r $_TAG binutils || return 1
+  cd src && tar -cvjf ../../binutils-${pkgver}_${_date}.tar.bz2 *
+}
 
-  mkdir build
-  cd build
+build() {
+  cd ${srcdir}
+  mkdir build && cd build
 
   CC="gcc -L`pwd`/bfd/.libs/"
   if [ "${CARCH}" = "x86_64" ]; then
-    ../configure --prefix=/usr --infodir=/usr/share/info --enable-shared --enable-64-bit-bfd --disable-multilib 
+    ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-64-bit-bfd --disable-multilib 
   else
-    ../configure --prefix=/usr --infodir=/usr/share/info --enable-shared
+    ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared
   fi
+  # fix man files install path
+  sed -i -e "s:mandir \= \/usr\/share:mandir \= ${pkgdir}\/usr\/share:" ${srcdir}/build/Makefile || return 1
   # fix info files install path
   sed -i -e "s:infodir \= \/usr\/share:infodir \= ${pkgdir}\/usr\/share:" ${srcdir}/build/Makefile || return 1
 
   # This checks the host environment and makes sure all the necessary tools are available to compile Binutils.
   make configure-host || return 1
 
-  make tooldir=${startdir}/pkg/usr || return 1
-  make prefix=${startdir}/pkg/usr tooldir=${startdir}/pkg/usr install
-  install -m 644 ../include/libiberty.h ${startdir}/pkg/usr/include
+  make tooldir=${pkgdir}/usr || return 1
+}
 
-  if [ "${CARCH}" = "x86_64" ]; then
-    # Rebuild libiberty.a with -fPIC
-    make -C libiberty clean
-    make CFLAGS="$CFLAGS -fPIC" -C libiberty
-    install -m 644 libiberty/libiberty.a ${startdir}/pkg/usr/lib
-    # Rebuild libbfd.a with -fPIC
-    make -C bfd clean
-    make CFLAGS="$CFLAGS -fPIC" -C bfd
-    install -m 644 bfd/libbfd.a ${startdir}/pkg/usr/lib
-  fi
+package() {
+  cd ${srcdir}/build
+  make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install
+  install -m644 ${srcdir}/include/libiberty.h ${pkgdir}/usr/include
 
-  rm -f ${startdir}/pkg/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}*
+  # Rebuild libiberty.a with -fPIC
+  make -C libiberty clean
+  make CFLAGS="$CFLAGS -fPIC" -C libiberty
+  install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib
+
+  # Rebuild libbfd.a with -fPIC
+  make -C bfd clean
+  # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
+  make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd
+  install -m644 bfd/libbfd.a ${pkgdir}/usr/lib
+
+  rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}*
 
   # Remove these symlinks, with binutils prereleases they are not ABI stable.
   # Programs should compile static to the .a file.
-  rm -f ${startdir}/pkg/usr/lib/lib{bfd,opcodes}.so
-
-  rm -f ${pkgdir}/usr/share/info/dir
+  rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so
+  echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so
+  echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so
 }
diff --git a/abs/core-testing/binutils/binutils.install b/abs/core-testing/binutils/binutils.install
index a1e762a..51781e7 100644
--- a/abs/core-testing/binutils/binutils.install
+++ b/abs/core-testing/binutils/binutils.install
@@ -1,20 +1,17 @@
 infodir=/usr/share/info
 filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info)
 
-post_install() {
+post_upgrade() {
+  [ -x usr/bin/install-info ] || return 0
   for file in ${filelist[@]}; do
-    install-info $infodir/$file $infodir/dir 2> /dev/null
+    install-info $infodir/$file.gz $infodir/dir 2> /dev/null
   done
 }
 
-post_upgrade() {
-  post_install $1
-}
-
 pre_remove() {
+  [ -x usr/bin/install-info ] || return 0
   for file in ${filelist[@]}; do
-    install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+    install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
   done
 }
 
-# vim:set ts=2 sw=2 et:
-- 
cgit v0.12


From 12e339fd00adcda4590aa6d4f833adbe7cd6a736 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:51:30 -0700
Subject: cairo:Bumped/Updated for LinHES 7.

---
 abs/core-testing/cairo/PKGBUILD | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/abs/core-testing/cairo/PKGBUILD b/abs/core-testing/cairo/PKGBUILD
index 4bdb085..2ea6c60 100644
--- a/abs/core-testing/cairo/PKGBUILD
+++ b/abs/core-testing/cairo/PKGBUILD
@@ -1,22 +1,23 @@
-# $Id: PKGBUILD 22041 2008-12-21 12:11:48Z jgc $
+# $Id: PKGBUILD 71210 2010-03-05 15:30:02Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Brice Carpentier <brice@daknet.org>
 
 pkgname=cairo
-pkgver=1.8.6
+pkgver=1.8.10
 pkgrel=1
 pkgdesc="Cairo vector graphics library"
 arch=(i686 x86_64)
 license=('LGPL' 'MPL')
 url="http://cairographics.org/"
-depends=('libpng>=1.2.33' 'libxrender' 'fontconfig>=2.6.0' 'pixman>=0.12.0' 'xcb-util>=0.3.2')
-makedepends=('pkgconfig')
+depends=('libpng>=1.4.0' 'libxrender' 'fontconfig>=2.8.0' 'pixman>=0.16.6' 'xcb-util>=0.3.6')
+makedepends=('pkgconfig' 'gtk-doc')
 options=('!libtool')
 source=(http://cairographics.org/releases/${pkgname}-${pkgver}.tar.gz)
-md5sums=('4e64139ef6f668df24450f3b81dd0771')
+sha1sums=('fd5e8ca82ff0e8542ea4c51612cad387f2a49df3')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
+  sed -i -e 's/libpng13/libpng14/g' configure || return 1
   ./configure --prefix=/usr --sysconfdir=/etc \
     --localstatedir=/var --enable-xcb --disable-static || return 1
   make || return 1
-- 
cgit v0.12


From 8e47790756069f95e0cbfc8d51904b817fb5990f Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:51:45 -0700
Subject: cloog-ppl:Bumped/Updated for LinHES 7.

---
 abs/core-testing/cloog-ppl/PKGBUILD | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 abs/core-testing/cloog-ppl/PKGBUILD

diff --git a/abs/core-testing/cloog-ppl/PKGBUILD b/abs/core-testing/cloog-ppl/PKGBUILD
new file mode 100644
index 0000000..16f0369
--- /dev/null
+++ b/abs/core-testing/cloog-ppl/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 78357 2010-04-22 02:43:20Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: ezzetabi <ezzetabi at gawab dot com>
+
+pkgname=cloog-ppl
+pkgver=0.15.9
+pkgrel=1
+pkgdesc="Library that generates loops for scanning polyhedra"
+arch=('i686' 'x86_64')
+url="http://www.cloog.org/"
+license=('GPL')
+depends=('ppl')
+options=('!libtool')
+source=(ftp://gcc.gnu.org/pub/gcc/infrastructure/${pkgname}-${pkgver}.tar.gz)
+md5sums=('806e001d1b1a6b130069ff6274900af5')
+
+build() {
+  cd $srcdir/$pkgname-$pkgver
+
+  ./configure --prefix=/usr --infodir=/usr/share/info \
+    --with-bits=gmp --with-ppl=/usr 
+  make
+  make check
+}
+
+package() {
+  cd $srcdir/$pkgname-$pkgver
+  make DESTDIR=$pkgdir/ install
+}
-- 
cgit v0.12


From 31f4e441a48d694a54d9099581f801c4aa689f6e Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:52:00 -0700
Subject: damageproto:Bumped/Updated for LinHES 7.

---
 abs/core-testing/damageproto/PKGBUILD | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/abs/core-testing/damageproto/PKGBUILD b/abs/core-testing/damageproto/PKGBUILD
index af6087a..14f6122 100644
--- a/abs/core-testing/damageproto/PKGBUILD
+++ b/abs/core-testing/damageproto/PKGBUILD
@@ -1,19 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 51004 2009-09-04 13:03:02Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=damageproto
-pkgver=1.1.0
+pkgver=1.2.0
 pkgrel=1
 pkgdesc="X11 Damage extension wire protocol"
-arch=(i686 x86_64)
+arch=(any)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('xproto' 'fixesproto')
 source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('33ee591e0b1ca5ad7902934541db7d24')
+sha1sums=('ffe177a6ae2cf023d41e015aa6ece2b191cb8a8a')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-- 
cgit v0.12


From 63a6cf4a31d6f270d1c9025e15bdd749bc7e33e3 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:52:11 -0700
Subject: db:Bumped/Updated for LinHES 7.

---
 abs/core-testing/db/PKGBUILD   | 36 +++++++++++++++++++++---------------
 abs/core-testing/db/db.install | 30 +++---------------------------
 2 files changed, 24 insertions(+), 42 deletions(-)

diff --git a/abs/core-testing/db/PKGBUILD b/abs/core-testing/db/PKGBUILD
index e41aeac..cc149a7 100644
--- a/abs/core-testing/db/PKGBUILD
+++ b/abs/core-testing/db/PKGBUILD
@@ -1,27 +1,33 @@
-# $Id: PKGBUILD 3741 2008-06-30 20:07:01Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# $Id: PKGBUILD 76949 2010-04-09 08:14:30Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
 
 pkgname=db
-pkgver=4.7.25
-pkgrel=10
+pkgver=4.8.26
+_basever=4.8.26
+pkgrel=2
 pkgdesc="The Berkeley DB embedded database system"
-arch=(i686 x86_64)
-license=('custom')
+arch=('i686' 'x86_64')
 url="http://www.oracle.com/technology/software/products/berkeley-db/index.html"
-groups=('base')
-depends=('gcc-libs' 'coreutils')
-options=('!libtool')
-source=(http://download-uk.oracle.com/berkeley-db/db-$pkgver.tar.gz)
-install=(db.install)
-md5sums=('ec2b87e833779681a0c3a814aa71359e')
+license=('custom')
+depends=('gcc-libs' 'sh')
+conflicts=('db4')
+options=('!libtool' 'force')
+install=db.install
+source=(http://download-uk.oracle.com/berkeley-db/db-${_basever}.tar.gz)
+md5sums=('3476bac9ec0f3c40729c8a404151d5e3')
 
 build() {
-  cd ${srcdir}/$pkgname-$pkgver/build_unix
+  cd ${srcdir}/$pkgname-${_basever}/build_unix
   ../dist/configure --prefix=/usr --enable-compat185 \
     --enable-shared --enable-static --enable-cxx
   make LIBSO_LIBS=-lpthread || return 1
+}
+
+package() {
+  cd ${srcdir}/$pkgname-${_basever}/build_unix
   make DESTDIR=${pkgdir} install
   rm -rf ${pkgdir}/usr/docs
-  mkdir -p ${pkgdir}/usr/share/licenses/${pkgname}
-  install -m644 ${srcdir}/${pkgname}-${pkgver}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+  install -Dm644 ${srcdir}/${pkgname}-${_basever}/LICENSE \
+    ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
 }
diff --git a/abs/core-testing/db/db.install b/abs/core-testing/db/db.install
index 7c97ea0..eeda804 100644
--- a/abs/core-testing/db/db.install
+++ b/abs/core-testing/db/db.install
@@ -1,29 +1,5 @@
-# This is a default template for a post-install scriptlet.  You can
-# remove any functions you don't need (and this header).
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-pre_upgrade() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
 post_upgrade() {
-  echo "ATTENTION DB PACKAGE:"
-  echo  "Please consider to run db_upgrade on Berkeley DB databases with a major db version number update."
-}
-
-# arg 1:  the old package version
-pre_remove() {
-  /bin/true
-}
-
-# arg 1:  the old package version
-post_remove() {
-  /bin/true
+  if [ "$(vercmp $2 4.8)" -lt 0 ]; then
+    echo " >> Major version update. Consider running db_upgrade on Berkeley DB databases."
+  fi
 }
-
-op=$1
-shift
-$op $*
\ No newline at end of file
-- 
cgit v0.12


From dffb263abe3f68dd4dcad62b592180f1e6a4f195 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:52:28 -0700
Subject: dbus-core:Bumped/Updated for LinHES 7.

---
 abs/core-testing/dbus-core/PKGBUILD     | 26 +++++++++++++-------------
 abs/core-testing/dbus-core/dbus         |  2 +-
 abs/core-testing/dbus-core/dbus.install | 19 +++++++++++--------
 3 files changed, 25 insertions(+), 22 deletions(-)

diff --git a/abs/core-testing/dbus-core/PKGBUILD b/abs/core-testing/dbus-core/PKGBUILD
index 7a1bc6e..b57829f 100644
--- a/abs/core-testing/dbus-core/PKGBUILD
+++ b/abs/core-testing/dbus-core/PKGBUILD
@@ -1,36 +1,36 @@
-# $Id: PKGBUILD 19084 2008-11-14 21:36:59Z jgc $
+# $Id: PKGBUILD 73272 2010-03-24 11:36:47Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Link Dupont <link@subpop.net>
 #
 pkgname=dbus-core
-pkgver=1.2.4
+pkgver=1.2.24
 pkgrel=1
 pkgdesc="Freedesktop.org message bus system"
 url="http://www.freedesktop.org/Software/dbus"
 arch=(i686 x86_64)
 license=('GPL' 'custom')
-depends=('expat>=2.0')
+depends=('expat>=2.0.1' 'coreutils' 'filesystem')
 conflicts=('dbus<1.2.3-2')
 options=(!libtool)
 install=dbus.install
 source=(http://dbus.freedesktop.org/releases/dbus/dbus-${pkgver}.tar.gz
-	dbus)
-md5sums=('2e643910a09f44b000a0d76038637999'
-         'f3fd196cc278bd7b45a4ca01fb8f7894')
+        dbus)
+md5sums=('565346cecd9cfecf1463540c6086cc2c'
+         '08f93dd19cffd1b45ab05c1fd4efb560')
 
 build() {
   cd "${srcdir}/dbus-${pkgver}"
   ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
-  	      --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=81 \
-              --with-system-pid-file=/var/run/dbus.pid \
-	      --enable-inotify --disable-dnotify \
-              --disable-verbose-mode --disable-static \
-	      --disable-tests --disable-asserts --without-x || return 1
+      --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=81 \
+      --with-system-pid-file=/var/run/dbus.pid \
+      --enable-inotify --disable-dnotify \
+      --disable-verbose-mode --disable-static \
+      --disable-tests --disable-asserts --without-x || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
 
-  rm -f ${pkgdir}/usr/bin/dbus-launch
-  rm -f ${pkgdir}/usr/share/man/man1/dbus-launch.1
+  rm -f "${pkgdir}/usr/bin/dbus-launch"
+  rm -f "${pkgdir}/usr/share/man/man1/dbus-launch.1"
 
   chown 81:81 "${pkgdir}/var/run/dbus" || return 1
 
diff --git a/abs/core-testing/dbus-core/dbus b/abs/core-testing/dbus-core/dbus
index cd26db8..66b84ca 100644
--- a/abs/core-testing/dbus-core/dbus
+++ b/abs/core-testing/dbus-core/dbus
@@ -24,7 +24,7 @@ case "$1" in
         ;;
     stop)
         stat_busy "Stopping D-BUS system messagebus"
-	[ -f /var/run/dbus.pid ] && kill `cat /var/run/dbus.pid`
+	[ -f /var/run/dbus.pid ] && kill `cat /var/run/dbus.pid` >/dev/null 2>&1
         if [ $? -gt 0 ]; then
             stat_fail
         else
diff --git a/abs/core-testing/dbus-core/dbus.install b/abs/core-testing/dbus-core/dbus.install
index 85dd9a7..44f4475 100644
--- a/abs/core-testing/dbus-core/dbus.install
+++ b/abs/core-testing/dbus-core/dbus.install
@@ -5,17 +5,20 @@ post_install() {
   dbus-uuidgen --ensure
 }
 
-# arg 1:  the new package version
-# arg 2:  the old package version
 post_upgrade() {
-  post_install $1
+  post_install
 
   #Make sure new rc script can shutdown running dbus
-  [ -f var/run/dbus/pid ] && mv var/run/dbus/pid var/run/dbus.pid
+  if [ -f var/run/dbus/pid ]; then
+    mv var/run/dbus/pid var/run/dbus.pid
+  fi
 }
 
-# arg 1:  the old package version
-pre_remove() {
-  usr/sbin/userdel dbus &>/dev/null
-  usr/sbin/groupdel dbus &>/dev/null
+post_remove() {
+  if getent passwd dbus >/dev/null; then
+    usr/sbin/userdel dbus
+  fi
+  if getent group dbus >/dev/null; then
+    usr/sbin/groupdel dbus
+  fi
 }
-- 
cgit v0.12


From 7783531f180c47010d200209059d872cabaaca8b Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:52:40 -0700
Subject: dbus-glib:Bumped/Updated for LinHES 7.

---
 abs/core-testing/dbus-glib/PKGBUILD | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/abs/core-testing/dbus-glib/PKGBUILD b/abs/core-testing/dbus-glib/PKGBUILD
index 50fc839..4723bfd 100644
--- a/abs/core-testing/dbus-glib/PKGBUILD
+++ b/abs/core-testing/dbus-glib/PKGBUILD
@@ -1,21 +1,23 @@
-# $Id: PKGBUILD 29414 2009-03-08 16:54:54Z jgc $
+# $Id: PKGBUILD 79735 2010-05-06 13:03:33Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=dbus-glib
-pkgver=0.80
+pkgver=0.86
 pkgrel=1
 pkgdesc="GLib bindings for DBUS"
 arch=(i686 x86_64)
 license=('GPL')
 url="http://www.freedesktop.org/wiki/Software/DBusBindings"
-depends=('dbus-core>=1.2.4' 'glib2>=2.18.4')
+depends=('dbus-core>=1.2.24' 'glib2>=2.24.1')
 makedepends=('pkgconfig')
 options=('!libtool' '!emptydirs')
 source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('cd0ab148fb0c786fc88be49d19971f50')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-static=no --enable-bash-completion=no || return 1
+  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+      --enable-static=no --enable-bash-completion=no || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
 }
-- 
cgit v0.12


From 26421ce6cd080a9abc7c286db9740d6ea1e4f1fc Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:52:49 -0700
Subject: dbus-python:Bumped/Updated for LinHES 7.

---
 abs/core-testing/dbus-python/PKGBUILD | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/abs/core-testing/dbus-python/PKGBUILD b/abs/core-testing/dbus-python/PKGBUILD
index ae77c04..2ec5e43 100644
--- a/abs/core-testing/dbus-python/PKGBUILD
+++ b/abs/core-testing/dbus-python/PKGBUILD
@@ -1,22 +1,22 @@
-# $Id: PKGBUILD 17272 2008-10-27 16:25:58Z douglas $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 75824 2010-04-04 12:03:46Z jgc $
+# Contributor: Jan de Groot <jgc@archlinux.org>
 
 pkgname=dbus-python
-pkgver=0.83.0
-pkgrel=2
+pkgver=0.83.1
+pkgrel=1
 pkgdesc="Python bindings for DBUS"
 arch=(i686 x86_64)
 license=('GPL' 'LGPL')
 url="http://www.freedesktop.org/wiki/Software/DBusBindings"
-depends=('dbus-glib>=0.76' 'python>=2.6')
-makedepends=('pkgconfig')
+depends=('dbus-glib>=0.82' 'python>=2.6.5')
+makedepends=('pkgconfig' 'docutils')
 options=('!libtool')
 source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('5fdf3970aa0c00020289de7ba8f3be18')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
-md5sums=('562c78876219bf458d79a041af18293d')
-- 
cgit v0.12


From 9a6779c18971439b9be0a505a802431a8119fcfa Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:52:54 -0700
Subject: dbus:Bumped/Updated for LinHES 7.

---
 abs/core-testing/dbus/PKGBUILD | 39 ++++++++++++++++++++-------------------
 1 file changed, 20 insertions(+), 19 deletions(-)

diff --git a/abs/core-testing/dbus/PKGBUILD b/abs/core-testing/dbus/PKGBUILD
index 3276f82..5759c51 100644
--- a/abs/core-testing/dbus/PKGBUILD
+++ b/abs/core-testing/dbus/PKGBUILD
@@ -1,38 +1,39 @@
-# $Id: PKGBUILD 19087 2008-11-14 21:39:51Z jgc $
+# $Id: PKGBUILD 73275 2010-03-24 11:40:17Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Link Dupont <link@subpop.net>
 #
 pkgname=dbus
-pkgver=1.2.4
+pkgver=1.2.24
 pkgrel=1
 pkgdesc="Freedesktop.org message bus system"
 url="http://www.freedesktop.org/Software/dbus"
 arch=(i686 x86_64)
 license=('GPL' 'custom')
-depends=("dbus-core>=${pkgver}" 'libx11' 'libsm')
+depends=("dbus-core>=${pkgver}" 'libx11')
+makedepends=('libsm' 'libice')
 source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz
-	30-dbus)
-md5sums=('2e643910a09f44b000a0d76038637999'
+        30-dbus)
+md5sums=('565346cecd9cfecf1463540c6086cc2c'
          'd14e59575f04e55d21a04907b6fd9f3c')
 
 build() {
-  cd ${srcdir}/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
-  	      --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=81 \
-              --with-system-pid-file=/var/run/dbus.pid \
-              --disable-verbose-mode --disable-static \
-	      --enable-inotify --disable-dnotify \
-	      --disable-tests --disable-asserts || return 1
+      --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=81 \
+      --with-system-pid-file=/var/run/dbus.pid \
+      --disable-verbose-mode --disable-static \
+      --enable-inotify --disable-dnotify \
+      --disable-tests --disable-asserts || return 1
   cd tools || return 1
   make dbus-launch || return 1
-  install -m755 -d ${pkgdir}/usr/bin
-  install -m755 -d ${pkgdir}/usr/share/man/man1
-  install -m755 dbus-launch ${pkgdir}/usr/bin/ || return 1
-  install -m644 dbus-launch.1 ${pkgdir}/usr/share/man/man1/ || return 1
+  install -m755 -d "${pkgdir}/usr/bin"
+  install -m755 -d "${pkgdir}/usr/share/man/man1"
+  install -m755 dbus-launch "${pkgdir}/usr/bin/" || return 1
+  install -m644 dbus-launch.1 "${pkgdir}/usr/share/man/man1/" || return 1
 
-  install -m755 -d ${pkgdir}/etc/X11/xinit/xinitrc.d
-  install -m755 ${srcdir}/30-dbus ${pkgdir}/etc/X11/xinit/xinitrc.d/ || return 1
+  install -m755 -d "${pkgdir}/etc/X11/xinit/xinitrc.d"
+  install -m755 "${srcdir}/30-dbus" "${pkgdir}/etc/X11/xinit/xinitrc.d/" || return 1
 
-  install -d -m755 ${startdir}/pkg/usr/share/licenses/dbus
-  install -m644 ../COPYING ${pkgdir}/usr/share/licenses/dbus/ || return 1
+  install -d -m755 "${pkgdir}/usr/share/licenses/dbus"
+  install -m644 ../COPYING "${pkgdir}/usr/share/licenses/dbus/" || return 1
 }
-- 
cgit v0.12


From 8b10ab5f9a84a51d609aa7acf8ab458890dee889 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:53:18 -0700
Subject: device-mapper:Bumped/Updated for LinHES 7.

---
 abs/core-testing/device-mapper/ChangeLog           | 103 +++++++++++++++++++++
 abs/core-testing/device-mapper/PKGBUILD            |  82 +++++++++++-----
 abs/core-testing/device-mapper/device-mapper.rules |   1 -
 abs/core-testing/device-mapper/lvm2_hook           |  25 +++++
 abs/core-testing/device-mapper/lvm2_install        |  30 ++++++
 5 files changed, 216 insertions(+), 25 deletions(-)
 create mode 100644 abs/core-testing/device-mapper/ChangeLog
 delete mode 100644 abs/core-testing/device-mapper/device-mapper.rules
 create mode 100644 abs/core-testing/device-mapper/lvm2_hook
 create mode 100644 abs/core-testing/device-mapper/lvm2_install

diff --git a/abs/core-testing/device-mapper/ChangeLog b/abs/core-testing/device-mapper/ChangeLog
new file mode 100644
index 0000000..5809ab5
--- /dev/null
+++ b/abs/core-testing/device-mapper/ChangeLog
@@ -0,0 +1,103 @@
+2010-07-11  Thomas Bächler  <thomas@archlinux.org>
+
+	* lvm2/device-mapper 2.02.70-1
+	* Upstream update
+	* Do not move the dmeventd manpage, has been fixed upstream
+	* Remove all the || return 1 in PKGBUILD
+
+2010-07-01  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2/device-mapper 2.02.69-1
+	* Upstream update
+	* Moved dmeventd man page from lvm2 to device-mapper package
+
+2010-06-25  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2/device-mapper 2.02.68-1
+	* Upstream update
+	* Fixed tr path in lvmdump
+
+2010-04-05  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2/device-mapper 2.02.62-1
+	* Upstream update
+	* Fixed license
+
+2010-02-27  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2/device-mapper 2.02.61-1
+	* Upstream update
+
+2010-01-24  Thomas Bächler <thomas@archlinux.org>
+       * lvm2/device-mapper 2.02.60-2
+       * Rebuilt without -Wl,--as-needed, it breaks dmeventd monitoring
+
+2010-01-24  Thomas Bächler <thomas@archlinux.org>
+        * lvm2/device-mapper update to 2.02.60-1
+        * Clean up PKGBUILD, fix internal paths to dmeventd and its helpers
+
+2009-11-27  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.56-1
+	* device-mapper 1.02.40-1
+	* Upstream update
+
+2009-10-31  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.54-1
+	* device-mapper 1.02.39-1
+	* Upstream update
+	* Enabled the device-mapper event daemon
+	* Moved the udev rule from /etc to /lib
+
+2009-09-27  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.53-1
+	* device-mapper 1.02.38-1
+	* Upstream update
+
+2009-09-18  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.52-1
+	* device-mapper 1.02.37-1
+	* Upstream update
+	* Implemented split packages
+	* PKGBUILD clean up
+	* Renamed pkgconfig file (close FS#15909)
+
+2009-07-09  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.48-1
+	* device-mapper 1.02.33-1
+	* Upstream update
+	* Removed unneeded readline depends (close FS#15205)
+
+2009-05-24  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.47-1
+	* device-mapper 1.02.32-1
+	* Upstream update
+	* Added dmsetup.static
+
+2009-03-07  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.45-1
+	* device-mapper 1.02.31-1
+	* Upstream update
+
+2009-01-31  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.44-1
+	* device-mapper 1.02.30-1
+	* Upstream update
+	* Added bash depends
+	* Added readline depends
+        * Added pkgconfig file
+
+2008-11-11  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.43-1
+	* device-mapper 1.02.29-1
+	* Upstream update
+	* Disabled SMP build
+	* Added ChangeLog
diff --git a/abs/core-testing/device-mapper/PKGBUILD b/abs/core-testing/device-mapper/PKGBUILD
index 7c2cd46..b4be343 100644
--- a/abs/core-testing/device-mapper/PKGBUILD
+++ b/abs/core-testing/device-mapper/PKGBUILD
@@ -1,30 +1,64 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
-pkgname=device-mapper
-pkgver=1.02.27
-pkgrel=10
-pkgdesc="Device mapper userspace library and tools."
+# $Id: PKGBUILD 85275 2010-07-11 10:26:53Z thomas $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgbase=lvm2
+pkgname=('lvm2' 'device-mapper')
+pkgver=2.02.70
+_pkgverdm=1.02.52
+_pkgverlvm=${pkgver}
+pkgrel=1
 arch=('i686' 'x86_64')
-license=('GPL')
-url="http://sourceware.org/dm/"
+url="http://sourceware.org/lvm2/"
+license=('GPL2' 'LGPL2.1')
 groups=('base')
-depends=('glibc')
-source=(ftp://sources.redhat.com/pub/dm/device-mapper.$pkgver.tgz
-	device-mapper.rules)
-md5sums=('6074f2c2035c2a526422e691c7457277'
-         '065f32a36947e6183722ed9aef13dc0c')
+conflicts=('mkinitcpio<0.5.99')
+changelog=ChangeLog
+source=(ftp://sources.redhat.com/pub/lvm2/LVM2.${_pkgverlvm}.tgz
+        lvm2_install
+        lvm2_hook)
+md5sums=('39c26d5a821754cc347d7a19e82d4a24'
+         'f781c9f5dd4f9934952c687b73d26a18'
+         '95bed25bdbc2c2d8500e7a07aeff7f65')
+sha1sums=('6f88114e72204feee491befd5f0e203036b90f11'
+          '583424bb0a6f89ffe4e4ea446b912f0fedac7050'
+          '0dc0c0d620f634c4d078afdb78e3bae15ccf957b')
 
 build() {
-  cd $startdir/src/$pkgname.$pkgver
-  ./configure --prefix=/usr 
-  make || return 1
-  make DESTDIR=$startdir/pkg sbindir=$startdir/pkg/sbin \
-    libdir=$startdir/pkg/lib install
+  cd "${srcdir}/LVM2.${_pkgverlvm}"
+  sed -i 's|/usr/bin/tr|/bin/tr|' scripts/lvmdump.sh
+  unset LDFLAGS
+  ./configure --prefix= --sysconfdir=/etc --localstatedir=/var --datarootdir=/usr/share \
+    --includedir=/usr/include --with-usrlibdir=/usr/lib \
+    --enable-pkgconfig --enable-readline --enable-dmeventd --enable-cmdlib --enable-applib \
+    --with-udevdir=/lib/udev/rules.d/ --enable-udev_sync --enable-udev_rules
+  make
+}
+
+package_device-mapper() {
+  pkgdesc="Device mapper userspace library and tools"
+  url="http://sourceware.org/dm/"
+  depends=('glibc' 'udev')
+
+  cd "${srcdir}/LVM2.${_pkgverlvm}"
+  make DESTDIR="${pkgdir}" install_device-mapper
+}
+
+package_lvm2() {
+  pkgdesc="Logical Volume Manager 2 utilities"
+  depends=('bash' "device-mapper>=${pkgver}" 'udev' 'readline')
+  conflicts=('lvm' 'mkinitcpio<0.5.99')
+  backup=('etc/lvm/lvm.conf')
+  options=('!makeflags')
 
-  # install the static library as well
-  install -D -m644 lib/ioctl/libdevmapper.a $startdir/pkg/usr/lib/libdevmapper.a
-  # install udev rule
-  install -D -m644 $startdir/src/device-mapper.rules $startdir/pkg/etc/udev/rules.d/device-mapper.rules
-  # fix device-mapper link bug
-  ln -sf /lib/libdevmapper.so $startdir/pkg/usr/lib/libdevmapper.so
+  cd "${srcdir}/LVM2.${_pkgverlvm}"
+  make DESTDIR="${pkgdir}" install_lvm2
+  # install applib
+  cd liblvm
+  make DESTDIR="${pkgdir}" install
+  cd ..
+  # /etc directories
+  install -d "${pkgdir}"/etc/lvm/{archive,backup}
+  # mkinitcpio hook
+  install -D -m644 "${srcdir}/lvm2_hook" "${pkgdir}/lib/initcpio/hooks/lvm2"
+  install -D -m644 "${srcdir}/lvm2_install" "${pkgdir}/lib/initcpio/install/lvm2"
 }
diff --git a/abs/core-testing/device-mapper/device-mapper.rules b/abs/core-testing/device-mapper/device-mapper.rules
deleted file mode 100644
index 66204d4..0000000
--- a/abs/core-testing/device-mapper/device-mapper.rules
+++ /dev/null
@@ -1 +0,0 @@
-ACTION=="add|change", SUBSYSTEM=="block", KERNEL=="dm-[0-9]*", PROGRAM="/sbin/dmsetup info -c --noopencount --noheadings -o name -j %M -m %m", NAME="mapper/%c", MODE="0600", SYMLINK+="disk/by-name/%c"
diff --git a/abs/core-testing/device-mapper/lvm2_hook b/abs/core-testing/device-mapper/lvm2_hook
new file mode 100644
index 0000000..13183c6
--- /dev/null
+++ b/abs/core-testing/device-mapper/lvm2_hook
@@ -0,0 +1,25 @@
+# vim:set ft=sh:
+run_hook ()
+{
+    /sbin/modprobe -q dm-mod >/dev/null 2>&1
+    if [ -e "/sys/class/misc/device-mapper" ]; then
+        if [ ! -e "/dev/mapper/control" ]; then
+            /bin/mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
+        fi
+
+        # If the lvmwait= parameter has been specified on the command line
+        # wait for the device(s) before trying to activate the volume group(s)
+        if [ -n "${lvmwait}" ]; then
+            for pvdev in $(echo ${lvmwait} | sed 's|,| |g'); do
+                poll_device ${pvdev} ${rootdelay}
+            done
+        fi
+
+        [ "${quiet}" = "y" ] && LVMQUIET=">/dev/null"
+
+        msg "Scanning logical volumes..."
+        eval /sbin/lvm vgscan --ignorelockingfailure $LVMQUIET
+        msg "Activating logical volumes..."
+        eval /sbin/lvm vgchange --ignorelockingfailure --ignoremonitoring -ay $LVMQUIET
+    fi
+}
diff --git a/abs/core-testing/device-mapper/lvm2_install b/abs/core-testing/device-mapper/lvm2_install
new file mode 100644
index 0000000..4ce9f18
--- /dev/null
+++ b/abs/core-testing/device-mapper/lvm2_install
@@ -0,0 +1,30 @@
+# vim: set ft=sh:
+
+install ()
+{
+    MODULES=" dm-mod dm-snapshot dm-mirror"
+    BINARIES=""
+    FILES=""
+    SCRIPT="lvm2"
+
+    add_dir "/dev/mapper"
+    add_binary "/sbin/lvm"
+    add_binary "/sbin/dmsetup"
+    add_binary "/sbin/dmeventd"
+    add_file "/lib/udev/rules.d/10-dm.rules"
+    add_file "/lib/udev/rules.d/13-dm-disk.rules"
+    add_file "/lib/udev/rules.d/95-dm-notify.rules"
+    add_file "/lib/udev/rules.d/11-dm-lvm.rules"
+}
+
+help ()
+{
+cat<<HELPEOF
+  This hook loads the necessary modules for an LVM2 root device.
+
+  The optional lvmwait= parameter followed by a comma-separated
+  list of device names can be given on the command line.
+  It will cause the hook to wait until all given devices exist
+  before trying to scan and activate any volume groups.
+HELPEOF
+}
-- 
cgit v0.12


From cee99f37b58b34b03236a9ae5edd687105690ef6 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:53:27 -0700
Subject: docutils:Bumped/Updated for LinHES 7.

---
 abs/core-testing/docutils/PKGBUILD | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 abs/core-testing/docutils/PKGBUILD

diff --git a/abs/core-testing/docutils/PKGBUILD b/abs/core-testing/docutils/PKGBUILD
new file mode 100644
index 0000000..d1240c4
--- /dev/null
+++ b/abs/core-testing/docutils/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 21893 2010-07-18 10:50:27Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: tardo <tardo@nagi-fanboi.net>
+
+pkgname=docutils
+pkgver=0.7
+pkgrel=2
+pkgdesc="Set of tools for processing plaintext docs into formats such as HTML, XML, or LaTeX"
+arch=(any)
+url="http://docutils.sourceforge.net"
+license=('custom')
+depends=('python')
+source=(http://downloads.sourceforge.net/docutils/docutils-$pkgver.tar.gz)
+md5sums=('9aec716baf15d06b5aa57cf8d5591c15')
+
+build() {
+  pacman -Q docutils && { error "You should remove docutils" ; return 1; }
+
+  cd $srcdir/docutils-$pkgver
+  python setup.py install --root=$pkgdir
+
+  for f in $pkgdir/usr/bin/*.py; do
+      mv $f $pkgdir/usr/bin/$(basename $f .py)
+  done
+
+  install -D -m644 COPYING.txt $pkgdir/usr/share/licenses/$pkgname/COPYING.txt
+  install -D -m644 licenses/python* $pkgdir/usr/share/licenses/$pkgname/
+}
+
-- 
cgit v0.12


From d5808a3ae99038c87db125fe1729bb21956221e4 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:53:36 -0700
Subject: driproto:Bumped/Updated for LinHES 7.

---
 abs/core-testing/dri2proto/PKGBUILD | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/abs/core-testing/dri2proto/PKGBUILD b/abs/core-testing/dri2proto/PKGBUILD
index f7fd866..d05b73f 100644
--- a/abs/core-testing/dri2proto/PKGBUILD
+++ b/abs/core-testing/dri2proto/PKGBUILD
@@ -1,21 +1,23 @@
 # $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-#Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=dri2proto
-pkgver=1.99.3
+pkgver=2.3
 pkgrel=1
 pkgdesc="X11 DRI protocol"
-arch=(i686 x86_64)
+arch=(any)
 license=('custom')
 url="http://xorg.freedesktop.org/"
+makedepends=('xorg-util-macros')
 source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('fffbbb3c26368ac63d408e81c51ec374')
+sha1sums=('6c9e2c822e777db435a43616067f8dd21cc00a53')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
+
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-- 
cgit v0.12


From 686d860f2b8a4f76a312778b0db241186304477a Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:53:51 -0700
Subject: e2fsprogs:Bumped/Updated for LinHES 7.

---
 abs/core-testing/e2fsprogs/MIT-LICENSE       | 25 +++++++++++++
 abs/core-testing/e2fsprogs/PKGBUILD          | 55 +++++++++++++++-------------
 abs/core-testing/e2fsprogs/e2fsprogs.install | 23 ++++++------
 3 files changed, 66 insertions(+), 37 deletions(-)
 create mode 100644 abs/core-testing/e2fsprogs/MIT-LICENSE

diff --git a/abs/core-testing/e2fsprogs/MIT-LICENSE b/abs/core-testing/e2fsprogs/MIT-LICENSE
new file mode 100644
index 0000000..d849b28
--- /dev/null
+++ b/abs/core-testing/e2fsprogs/MIT-LICENSE
@@ -0,0 +1,25 @@
+Copyright (c) 2003-2007 Theodore Ts'o <tytso@mit.edu>
+Copyright (c) 1997-2003 Yann Dirson <dirson@debian.org>
+Copyright (c) 2001 Alcove <http://www.alcove.com/>
+Copyright (c) 1997 Klee Dienes
+Copyright (c) 1995-1996 Michael Nonweiler <mrn20@cam.ac.uk>
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject
+to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/abs/core-testing/e2fsprogs/PKGBUILD b/abs/core-testing/e2fsprogs/PKGBUILD
index 6da53ff..730522b 100644
--- a/abs/core-testing/e2fsprogs/PKGBUILD
+++ b/abs/core-testing/e2fsprogs/PKGBUILD
@@ -1,41 +1,46 @@
-# $Id: PKGBUILD 16283 2008-10-21 12:05:45Z ronald $
-# Maintainer: 
+# $Id: PKGBUILD 80571 2010-05-19 18:38:36Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org> 
 # Contributor: judd <jvinet@zeroflux.org>
 
 pkgname=e2fsprogs
-pkgver=1.41.3
-pkgrel=2
+pkgver=1.41.12
+pkgrel=1
 pkgdesc="Ext2/3/4 filesystem utilities"
 arch=('i686' 'x86_64')
 license=('GPL' 'LGPL' 'MIT')
 url="http://e2fsprogs.sourceforge.net"
 groups=('base')
-depends=('glibc')
+depends=('sh' 'util-linux-ng')
 makedepends=('bc')
-source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz
-	'Makefile-fsck.static.patch')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+        'MIT-LICENSE')
 backup=('etc/mke2fs.conf')
-install=$pkgname.install
-md5sums=('b21d26fc46c584021dc9c444933ee1c2'
-         'ce2b0daf84e17e8c7880ba3d43020ea3')
+install=${pkgname}.install
+sha1sums=('62b002fe507b2ddafc24b89532e472fe4b55a14f'
+          'f4a0d5b0cdb980e3fedd6f5e7dde0b0ffb7bbdfb')
 
 build() {
-  cd ${srcdir}/${pkgname}-${pkgver}
-  
+  cd "${srcdir}/${pkgname}-${pkgver}"
+
   # Remove unnecessary init.d directory
-  sed -i '/init\.d/s|^|#|' misc/Makefile.in
+  sed -i '/init\.d/s|^|#|' misc/Makefile.in || return 1
+
+  ./configure --prefix=/usr --with-root-prefix="" --enable-elf-shlibs \
+      --disable-fsck --disable-uuidd \
+      --disable-libuuid --disable-libblkid || return 1
+
 
-  ./configure --prefix=/usr --with-root-prefix="" --enable-elf-shlibs
-  
-  # add fsck.static for mkinitrd use
-  patch -Np1 -i ../Makefile-fsck.static.patch || return 1
-  
   make || return 1
-  make DESTDIR=${pkgdir} install install-libs || return 1
-  make -C ${srcdir}/${pkgname}-${pkgver}/misc fsck.static || return 1
-  
-  install -D -m755 ${srcdir}/${pkgname}-${pkgver}/misc/fsck.static \
-	 ${pkgdir}/sbin/fsck.static || return 1
-  
-  sed -i -e 's/^AWK=.*/AWK=awk/' ${pkgdir}/usr/bin/compile_et || return 1
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  make DESTDIR="${pkgdir}" install install-libs || return 1
+
+  sed -i -e 's/^AWK=.*/AWK=awk/' "${pkgdir}/usr/bin/compile_et" || return 1
+
+  # install MIT license
+  install -Dm644 "${srcdir}/MIT-LICENSE" \
+    "${pkgdir}/usr/share/licenses/${pkgname}/MIT-LICENSE" || return 1
+
 }
diff --git a/abs/core-testing/e2fsprogs/e2fsprogs.install b/abs/core-testing/e2fsprogs/e2fsprogs.install
index e207eb4..f91d39f 100644
--- a/abs/core-testing/e2fsprogs/e2fsprogs.install
+++ b/abs/core-testing/e2fsprogs/e2fsprogs.install
@@ -1,21 +1,20 @@
- infodir=/usr/share/info
-  filelist=(libext2fs.info.gz)
+infodir=/usr/share/info
+filelist=(libext2fs.info.gz)
 
-  post_install() {
+post_install() {
+  [ -x usr/bin/install-info ] || return 0
   for file in ${filelist[@]}; do
     install-info $infodir/$file $infodir/dir 2> /dev/null
   done
+}
 
-  }
+post_upgrade() {
+  post_install $1
+}
 
-  post_upgrade() {
-    post_install $1
-  }
-
-  post_remove() {
+pre_remove() {
+  [ -x usr/bin/install-info ] || return 0
   for file in ${filelist[@]}; do
     install-info --delete $infodir/$file $infodir/dir 2> /dev/null
   done
-
-  }
-
+}
-- 
cgit v0.12


From 979cf9af31331c9a9fd1d8b98287bdeca606971b Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:54:05 -0700
Subject: eggdbus:Bumped/Updated for LinHES 7.

---
 abs/core-testing/eggdbus/PKGBUILD | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
 create mode 100644 abs/core-testing/eggdbus/PKGBUILD

diff --git a/abs/core-testing/eggdbus/PKGBUILD b/abs/core-testing/eggdbus/PKGBUILD
new file mode 100644
index 0000000..ddadba2
--- /dev/null
+++ b/abs/core-testing/eggdbus/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 59198 2009-11-21 11:27:17Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=eggdbus
+pkgver=0.6
+pkgrel=1
+pkgdesc="Experimental D-Bus bindings for GObject"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://www.freedesktop.org/wiki/Software/Policykit"
+depends=('glib2>=2.22.2' 'dbus-glib>=0.82-2')
+makedepends=('gtk-doc')
+options=('!libtool')
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz)
+md5sums=('b43d2a6c523fcb8b9d0b0300c4222386')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr --disable-static --enable-gtk-doc || return 1
+  make || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+}
-- 
cgit v0.12


From 8531795e06d39d7edfea9bb2731ff171417669d5 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:54:15 -0700
Subject: expat:Bumped/Updated for LinHES 7.

---
 abs/core-testing/expat/CVE-2009-3560.patch | 13 +++++++++++++
 abs/core-testing/expat/CVE-2009-3720.patch | 12 ++++++++++++
 abs/core-testing/expat/PKGBUILD            | 26 ++++++++++++++++----------
 3 files changed, 41 insertions(+), 10 deletions(-)
 create mode 100644 abs/core-testing/expat/CVE-2009-3560.patch
 create mode 100644 abs/core-testing/expat/CVE-2009-3720.patch

diff --git a/abs/core-testing/expat/CVE-2009-3560.patch b/abs/core-testing/expat/CVE-2009-3560.patch
new file mode 100644
index 0000000..5fe9c36
--- /dev/null
+++ b/abs/core-testing/expat/CVE-2009-3560.patch
@@ -0,0 +1,13 @@
+diff -urNad trunk~/lib/xmlparse.c trunk/lib/xmlparse.c
+--- trunk~/lib/xmlparse.c	2007-05-08 04:25:35.000000000 +0200
++++ trunk/lib/xmlparse.c	2009-12-29 21:57:22.141732904 +0100
+@@ -3703,6 +3703,9 @@
+         return XML_ERROR_UNCLOSED_TOKEN;
+       case XML_TOK_PARTIAL_CHAR:
+         return XML_ERROR_PARTIAL_CHAR;
++      case -XML_TOK_PROLOG_S:
++        tok = -tok;
++        break;
+       case XML_TOK_NONE:
+ #ifdef XML_DTD
+         /* for internal PE NOT referenced between declarations */
diff --git a/abs/core-testing/expat/CVE-2009-3720.patch b/abs/core-testing/expat/CVE-2009-3720.patch
new file mode 100644
index 0000000..65d1643
--- /dev/null
+++ b/abs/core-testing/expat/CVE-2009-3720.patch
@@ -0,0 +1,12 @@
+diff -urNad trunk~/lib/xmltok_impl.c trunk/lib/xmltok_impl.c
+--- trunk~/lib/xmltok_impl.c	2006-11-26 18:34:46.000000000 +0100
++++ trunk/lib/xmltok_impl.c	2009-10-22 21:42:41.000000000 +0200
+@@ -1744,7 +1744,7 @@
+                        const char *end,
+                        POSITION *pos)
+ {
+-  while (ptr != end) {
++  while (ptr < end) {
+     switch (BYTE_TYPE(enc, ptr)) {
+ #define LEAD_CASE(n) \
+     case BT_LEAD ## n: \
diff --git a/abs/core-testing/expat/PKGBUILD b/abs/core-testing/expat/PKGBUILD
index 0d63ac7..e2f1038 100644
--- a/abs/core-testing/expat/PKGBUILD
+++ b/abs/core-testing/expat/PKGBUILD
@@ -1,23 +1,29 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 62836 2010-01-12 23:27:10Z allan $
 # Maintainer: dorphell <dorphell@archlinux.org>
 # Committer: Judd Vinet <jvinet@zeroflux.org>
 
 pkgname=expat
 pkgver=2.0.1
-pkgrel=1
+pkgrel=5
 pkgdesc="An XML Parser library written in C"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
+url="http://expat.sourceforge.net/"
 license=('custom')
 depends=('glibc')
 options=('!libtool')
-source=(http://heanet.dl.sourceforge.net/sourceforge/expat/${pkgname}-${pkgver}.tar.gz)
-url="http://expat.sourceforge.net/"
-md5sums=('ee8b492592568805593f81f8cdf2a04c')
+source=(http://downloads.sourceforge.net/sourceforge/expat/${pkgname}-${pkgver}.tar.gz
+        CVE-2009-3560.patch
+        CVE-2009-3720.patch)
+md5sums=('ee8b492592568805593f81f8cdf2a04c'
+         '50603cac0f03aabc7087415251f592be'
+         'f3eeb796f28945899216b815e5901996')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -Np1 -i $srcdir/CVE-2009-3560.patch
+  patch -Np1 -i $srcdir/CVE-2009-3720.patch
+  ./configure --prefix=/usr --mandir=/usr/share/man || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install
-  install -m644 -D COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING
+  make DESTDIR="${pkgdir}" install || return 1
+  install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" || return 1
 }
-- 
cgit v0.12


From 05408d178b3bb65f895b011705ade34c34b8dce6 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:54:43 -0700
Subject: fbsplash:Bumped/Updated for LinHES 7.

---
 abs/core-testing/fbsplash/PKGBUILD                 | 103 ++--
 abs/core-testing/fbsplash/__changelog              |   4 -
 abs/core-testing/fbsplash/darch.tar.bz2            | Bin 1572821 -> 0 bytes
 abs/core-testing/fbsplash/extra/encrypt_hook.patch |  24 -
 abs/core-testing/fbsplash/fbcondecor.conf          |   6 +
 abs/core-testing/fbsplash/fbcondecor.daemon        |  55 ++
 abs/core-testing/fbsplash/fbsplash-basic.sh        | 201 +++++++
 abs/core-testing/fbsplash/fbsplash.bootsteps       |   1 -
 abs/core-testing/fbsplash/fbsplash.conf            |   8 -
 abs/core-testing/fbsplash/fbsplash.daemon          |  56 --
 abs/core-testing/fbsplash/fbsplash.git.patch       | 166 ++++++
 abs/core-testing/fbsplash/fbsplash.initcpio_hook   | 102 ++++
 .../fbsplash/fbsplash.initcpio_install             | 117 +++-
 abs/core-testing/fbsplash/fbsplash.inithooks       |  91 ---
 abs/core-testing/fbsplash/fbsplash.install         |  36 +-
 abs/core-testing/fbsplash/splash-functions-arch.sh |  71 ---
 abs/core-testing/fbsplash/splash-functions.sh      | 618 ---------------------
 abs/core-testing/fbsplash/splash.conf              |  63 +++
 18 files changed, 768 insertions(+), 954 deletions(-)
 delete mode 100644 abs/core-testing/fbsplash/__changelog
 delete mode 100644 abs/core-testing/fbsplash/darch.tar.bz2
 delete mode 100644 abs/core-testing/fbsplash/extra/encrypt_hook.patch
 create mode 100644 abs/core-testing/fbsplash/fbcondecor.conf
 create mode 100644 abs/core-testing/fbsplash/fbcondecor.daemon
 create mode 100644 abs/core-testing/fbsplash/fbsplash-basic.sh
 delete mode 100644 abs/core-testing/fbsplash/fbsplash.bootsteps
 delete mode 100644 abs/core-testing/fbsplash/fbsplash.conf
 delete mode 100644 abs/core-testing/fbsplash/fbsplash.daemon
 create mode 100644 abs/core-testing/fbsplash/fbsplash.git.patch
 create mode 100644 abs/core-testing/fbsplash/fbsplash.initcpio_hook
 delete mode 100644 abs/core-testing/fbsplash/fbsplash.inithooks
 delete mode 100644 abs/core-testing/fbsplash/splash-functions-arch.sh
 delete mode 100644 abs/core-testing/fbsplash/splash-functions.sh
 create mode 100644 abs/core-testing/fbsplash/splash.conf

diff --git a/abs/core-testing/fbsplash/PKGBUILD b/abs/core-testing/fbsplash/PKGBUILD
index 736da1f..dcec71a 100644
--- a/abs/core-testing/fbsplash/PKGBUILD
+++ b/abs/core-testing/fbsplash/PKGBUILD
@@ -1,56 +1,71 @@
-# Maintainer: Greg Helton <gt@fallendusk.org>
+# Maintainer: Heiko Baums <heiko@baums-on-web.de>
+# Contributor: Kurt J. Bosch <kjb-temp-2009 at alpenjodel.de>
 
 pkgname=fbsplash
 pkgver=1.5.4.3
-pkgrel=15
+pkgrel=33
 pkgdesc="A userspace implementation of a splash screen for Linux (formerly known as gensplash)"
 arch=('i686' 'x86_64')
 url="http://fbsplash.berlios.de"
 license=('GPL')
-backup=('etc/conf.d/fbsplash.conf' 'etc/conf.d/fbsplash.bootsteps')
-makedepends=('klibc')
-depends=('initscripts' 'miscsplashutils' 'libjpeg' 'libpng' 'freetype2-static' 'gpm' 'libmng' 'which' 'linhes-splash') 
-conflicts=('bootsplash' 'gensplash')
+depends=('miscsplashutils' 'freetype2' 'libjpeg' 'libpng' 'libmng' 'lcms' 'gpm' 'linhes-splash') 
+optdepends=('kernel26-fbcondecor: enable console background images'
+            'fbsplash-extras: additional functionality like daemon icons'
+            'uswsusp-fbsplash: suspend to disk with fbsplash'
+            'python: convert themes from splashy to fbsplash')
+conflicts=('fbsplash-scripts' 'initscripts-extras-fbsplash')
+options=('!makeflags')
+backup=('etc/conf.d/fbcondecor' 'etc/conf.d/splash')
 install=fbsplash.install
-source=(http://download.berlios.de/fbsplash/splashutils-${pkgver}.tar.bz2 \
-	http://code.thewrecker.net/files/darch.tar.bz2 \
-	fbsplash.inithooks \
-	splash-functions-arch.sh \
-	fbsplash.conf \
-	fbsplash.initcpio_install \
-	fbsplash.daemon fbsplash.bootsteps)
+source=(http://dev.gentoo.org/~spock/projects/gensplash/archive/splashutils-${pkgver}.tar.bz2
+        fbsplash.git.patch
+        splash.conf
+        fbsplash-basic.sh
+        fbsplash.initcpio_install
+        fbsplash.initcpio_hook
+        fbcondecor.daemon
+        fbcondecor.conf)
+
 build() {
-	cd ${startdir}/src/splashutils-${pkgver}
-
-	# Configure, make, and install
-	./configure --prefix=/usr --sysconfdir=/etc --enable-fbcondecor --with-gpm --with-mng --with-png --with-ttf --with-ttf-kernel
-	make || return 1
- 	cp -f ${startdir}/splash-functions.sh  ${startdir}/src/splashutils-1.5.4.3/scripts/splash-functions.sh
-	make DESTDIR=${startdir}/pkg install || return 1
-	
-	# Create directories
-	mkdir -p ${startdir}/pkg/lib/splash/cache
-	mkdir -p ${startdir}/pkg/etc/splash
-	mkdir -p ${startdir}/pkg/etc/rc.d/functions.d
-
-	# Install scripts
-	install -D -m644 ${startdir}/src/fbsplash.initcpio_install ${startdir}/pkg/lib/initcpio/install/fbsplash
-	install -D -m644 ${startdir}/src/fbsplash.conf ${startdir}/pkg/etc/conf.d/fbsplash.conf
-	install -D -m744 ${startdir}/src/fbsplash.daemon ${startdir}/pkg/etc/rc.d/fbsplash
-	install -D -m744 ${startdir}/src/splash-functions-arch.sh ${startdir}/pkg/sbin/splash-functions-arch.sh
-	install -D -m755 $startdir/src/fbsplash.bootsteps ${startdir}/pkg/etc/conf.d/fbsplash.bootsteps
-
-	# install darch fbsplash theme
-	cp -r ${startdir}/src/darch ${startdir}/pkg/etc/splash/darch
-	
-	# install initscripts hooks
-	install -D -m744 ${startdir}/src/fbsplash.inithooks ${startdir}/pkg/etc/rc.d/functions.d/fbsplash.sh
+  cd ${srcdir}/splashutils-${pkgver}
+
+  # patch for building splashutils with glibc and dynamical linking
+  patch -Np0 -i ${srcdir}/fbsplash.git.patch || return 1
+  autoreconf
+
+  # fix fbcondecor_ctl splash type
+  sed -e 's,fbsplash_lib_init(fbspl_bootup),fbsplash_lib_init(fbspl_undef),' -i src/fbcon_decor_ctl.c
+
+  ./configure --prefix=/usr --sysconfdir=/etc --without-klibc --enable-fbcondecor --with-gpm --with-mng --with-png --with-ttf --with-ttf-kernel || return 1
+  make || return 1
+  make DESTDIR=${startdir}/pkg install || return 1
+
+  cd ${pkgdir}
+
+  # fix duplicate slashes to get splash_cache_cleanup grep to work
+  sed -r -e 's,^(export spl_.*="/)/+,\1,' -i sbin/splash-functions.sh
+
+  # fix the path to splash_util
+  sed -r -e 's,^(export spl_util=)\"/bin/,\1"/sbin/,' -i sbin/splash-functions.sh
+
+  # provide the mountpoint needed by splash-functions.sh
+  mkdir -p lib/splash/{cache,tmp}
+
+  # Install fbsplash scripts and config file
+  install -D -m644 ${srcdir}/splash.conf etc/conf.d/splash
+  install -D -m644 ${srcdir}/fbsplash-basic.sh etc/rc.d/functions.d/fbsplash-basic.sh
+  install -D -m644 ${srcdir}/fbsplash.initcpio_install lib/initcpio/install/fbsplash
+  install -D -m644 ${srcdir}/fbsplash.initcpio_hook lib/initcpio/hooks/fbsplash
 
+  # Install fbcodecor script and config file
+  install -D -m644 ${srcdir}/fbcondecor.conf etc/conf.d/fbcondecor
+  install -D -m755 ${srcdir}/fbcondecor.daemon etc/rc.d/fbcondecor
 }
 md5sums=('c722cd4148817b9c50381d9bdc1ea6ef'
-         '4ea33e99330abf4a9a468ac8c0ba48ca'
-         '33b3c7c2050670db0e8b2efd9e088ed9'
-         '8ffb29400a2518b16f3dbca653855268'
-         '82ef6f37c2795db1b4fec0e6f8443c66'
-         '21380586a5dafbf7045886ea4374ab65'
-         'bb5154529e4b5fbc701cf4540c15a61a')
+         '3a338c60ed0710c8b7e3e08929db521a'
+         'a8f40c99a32d20d505aa24fbbd703008'
+         'e69753dac753b8ba4e2e29ef5a9c46ca'
+         'e29b3db6ee059b9950febe976a0f2881'
+         'ac2351bc918b101bb9249ce8940722be'
+         '715926469d05eecd345c052e6248ca32'
+         'b3db9d4fd902b62ac9e38589677e2d16')
diff --git a/abs/core-testing/fbsplash/__changelog b/abs/core-testing/fbsplash/__changelog
deleted file mode 100644
index d673fc0..0000000
--- a/abs/core-testing/fbsplash/__changelog
+++ /dev/null
@@ -1,4 +0,0 @@
-modify  splash-functions to not use chvt for verbose
-modify  fbsplash.inithooks to not display "setting up splash"
-added default value for fbsplash.bootsteps
-
diff --git a/abs/core-testing/fbsplash/darch.tar.bz2 b/abs/core-testing/fbsplash/darch.tar.bz2
deleted file mode 100644
index 0faab98..0000000
Binary files a/abs/core-testing/fbsplash/darch.tar.bz2 and /dev/null differ
diff --git a/abs/core-testing/fbsplash/extra/encrypt_hook.patch b/abs/core-testing/fbsplash/extra/encrypt_hook.patch
deleted file mode 100644
index f059048..0000000
--- a/abs/core-testing/fbsplash/extra/encrypt_hook.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- /lib/initcpio/hooks/encrypt	2008-09-12 12:29:38.000000000 -0400
-+++ encrypt.1	2008-10-28 08:13:34.000000000 -0400
-@@ -1,6 +1,7 @@
- # vim: set ft=sh:
- # TODO this one needs some work to work with lots of different
- #       encryption schemes
-+. /sbin/splash-functions.sh
- run_hook ()
- {
-     /sbin/modprobe -a -q dm-crypt >/dev/null 2>&1
-@@ -59,6 +60,7 @@ run_hook ()
-                 fi
-             fi
-             # Ask for a passphrase
-+	    splash_verbose
-             if [ ${dopassphrase} -gt 0 ]; then
-                 echo ""
-                 echo "A password is required to access the ${cryptname} volume:"
-@@ -119,4 +121,5 @@ run_hook ()
-         fi
-         nuke ${ckeyfile}
-     fi
-+    splash_silent
- }
diff --git a/abs/core-testing/fbsplash/fbcondecor.conf b/abs/core-testing/fbsplash/fbcondecor.conf
new file mode 100644
index 0000000..18db844
--- /dev/null
+++ b/abs/core-testing/fbsplash/fbcondecor.conf
@@ -0,0 +1,6 @@
+
+# /etc/conf.d/fbcondecor
+#
+
+## Virtual terminals to load with fbcondecor backgrounds
+SPLASH_TTYS="1 2 3 4 5 6"
diff --git a/abs/core-testing/fbsplash/fbcondecor.daemon b/abs/core-testing/fbsplash/fbcondecor.daemon
new file mode 100644
index 0000000..4d78ea4
--- /dev/null
+++ b/abs/core-testing/fbsplash/fbcondecor.daemon
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+# /etc/rc.d/fbcondecor
+
+# Set FbConDecor backgrounds
+#
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/fbcondecor
+. /sbin/splash-functions.sh
+
+splash_setup force
+
+retval=0
+[ -z "${SPLASH_TTYS%% }" ] && retval=1
+case "$1"
+in start )
+	if [ "${SPLASH_MODE_REQ}" != "off" ]; then
+		stat_busy "Setting FBconDecor console images"
+		for tty in ${SPLASH_TTYS}; do
+			# avoid blinking on boot
+			[[ "$( fbcondecor_ctl --tty=${tty} -c getstate )" == *\ on ]] && continue
+			fbcondecor_set_theme ${SPLASH_THEME} ${tty} || retval=1
+		done
+		if [ $retval = 0 ]; then
+			stat_done
+		else
+			stat_fail
+		fi
+	fi
+;; stop )
+	stat_busy "Disabling FBconDecor console images"
+	for tty in ${SPLASH_TTYS}; do
+		# avoid errors on restart
+		[[ "$( fbcondecor_ctl --tty=${tty} -c getstate )" == *\ off ]] && continue
+		fbcondecor_ctl --tty=${tty} -c off || retval=1
+	done
+	if [ $retval = 0 ]; then
+		stat_done
+	else
+		stat_fail
+	fi
+;; restart )
+	$0 stop
+	sleep .1
+	echo # don't swallow our status line
+	$0 start
+;; * )
+	echo "usage: $0 {start|stop|restart}"
+esac
+
+exit 0
+
+# EOF #
diff --git a/abs/core-testing/fbsplash/fbsplash-basic.sh b/abs/core-testing/fbsplash/fbsplash-basic.sh
new file mode 100644
index 0000000..2834060
--- /dev/null
+++ b/abs/core-testing/fbsplash/fbsplash-basic.sh
@@ -0,0 +1,201 @@
+
+#  /etc/rc.d/functions.d/fbsplash-basic.sh                                   #
+
+#  Basic Fbsplash script for Arch Linux initscripts                          #
+#                                                                            #
+#  Author:                Kurt J. Bosch    <kjb-temp-2009 at alpenjodel.de>  #
+#  Based on the work of   Greg Helton                <gt at fallendusk.org>  #
+#                         Thomas Baechler         <thomas at archlinux.org>  #
+#                         and others                                         #
+#                                                                            #
+#  Distributed under the terms of the GNU General Public License (GPL)       #
+
+[[ $PREVLEVEL && $RUNLEVEL ]] || return 0
+
+# Do nothing if improved scripts are installed
+[ -r /etc/rc.d/functions.d/fbsplash-extras.sh ] && return
+
+# Only do this where needed
+# Since we use BASH, all important functions and variables are exported
+case ${0#/etc/rc.} in sysinit | multi | shutdown )
+	export SPLASH_PUSH_MESSAGES="no"
+	export SPLASH_VERBOSE_ON_ERRORS="no"
+	. /sbin/splash-functions.sh # /etc/conf.d/splash is also sourced by this
+	unset options opt i # eliminate splash_setup non local vars   ## FIX ME ##
+	declare -ix SPLASH_STEPS=3 # sysinit steps
+	declare -ix SPLASH_STEPS_DONE=0
+esac
+
+# Verbose mode is handled by fbcondecor kernel patch and daemon script
+[[ $SPLASH_MODE_REQ = silent ]] || return 0
+
+# Override - Don't try to use /usr/bin/basename
+splash_comm_send() {
+	[[ $( /bin/pidof -o %PPID $spl_daemon ) ]] && echo "$@" >$spl_fifo &
+}
+
+case $0 in /etc/rc.sysinit )
+	# Prevent splash destruction
+	CONSOLEFONT=""
+	# Continue to use a splash daamon started in initcpio
+	if /bin/mountpoint -q /dev/.splash-cache; then
+		/bin/mount --move /dev/.splash-cache $spl_cachedir || return
+		splash_comm_send set message "$SPLASH_BOOT_MESSAGE"
+	# Mount a tmpfs
+	else
+		( splash_cache_prep ) || return
+	fi
+	add_hook sysinit_udevsettled  splash_sysinit_udevsettled
+	add_hook sysinit_postfsck     splash_sysinit_postfsck
+	add_hook sysinit_postfsckloop splash_sysinit_postfsck
+	add_hook sysinit_premount     splash_sysinit_premount
+	add_hook sysinit_end          splash_sysinit_end
+	splash_sysinit_udevsettled() {
+		splash_begin
+		splash_progress_init
+		splash_progress
+	}
+	splash_sysinit_premount() {
+		splash_progress
+	}
+	splash_sysinit_postfsck() { # fsck failure emergency exit
+		[ ${fsckret} -gt 1 -a ${fsckret} -ne 32 ] && chvt 1
+	}
+	splash_sysinit_end() {
+		splash_progress
+	}
+;; /etc/rc.multi )
+	add_hook multi_start splash_multi_start
+	add_hook multi_end   splash_multi_end
+	splash_multi_start() {
+		SPLASH_STEPS_DONE=$SPLASH_STEPS
+		splash_progress_init
+	}
+	start_daemon() {
+		[[ $1 = $SPLASH_XSERVICE ]] && SPLASH_EXIT_TYPE=staysilent splash_stop
+		/etc/rc.d/$1 start
+		splash_progress
+	}
+	start_daemon_bkgd() {
+		[[ $1 = $SPLASH_XSERVICE ]] && SPLASH_EXIT_TYPE=staysilent splash_stop
+		stat_bkgd "Starting $1"
+		( SPLASH_PUSH_MESSAGES="no" SPLASH_VERBOSE_ON_ERRORS="no" \
+			/etc/rc.d/$1 start ) &>/dev/null &
+	}
+	splash_multi_end() {
+		if [[ $PREVLEVEL = N ]]; then
+			if ! in_array "$SPLASH_XSERVICE" "${DAEMONS[@]}"; then
+				if [[ $RUNLEVEL = 5 ]]; then
+					SPLASH_EXIT_TYPE=staysilent splash_stop
+				else
+					splash_stop
+					[[ $( $spl_bindir/fgconsole ) = $SPLASH_TTY ]] && chvt 1
+				fi
+			fi
+			# Now do setfont
+			set_consolefont
+			# Umount the tmpfs
+			splash_cache_cleanup
+		fi
+	}
+;; /etc/rc.shutdown )
+	( splash_cache_prep ) || return
+	# Not using XSERVICE here to avoid missing errors - X should chvt back to SPLASH_TTY
+	add_hook shutdown_start       splash_shutdown_start
+	add_hook shutdown_prekillall  splash_shutdown_prekillall
+	add_hook shutdown_postkillall splash_shutdown_postkillall
+	add_hook shutdown_poweroff    splash_shutdown_poweroff
+	splash_shutdown_start() {
+		splash_begin
+	}
+	## http://bugs.archlinux.org/task/10536                       ## FIX ME ##
+	splash_shutdown_prekillall() { /bin/sleep .1; }
+	splash_shutdown_postkillall() {
+		if [[ $( $spl_bindir/fgconsole ) = $SPLASH_TTY ]]; then
+			stat_busy "Restarting Fbsplash daemon"
+			PROGRESS=$(( 65535*2/3 )) splash_start
+			if [[ -e $spl_cachedir/stop_failed-fbsplash-dummy ]]; then
+				splash_comm_send update_svc fbsplash-dummy svc_stop_failed
+			fi
+			stat_done
+		fi
+	}
+	##
+	splash_shutdown_poweroff() {
+		SPLASH_EXIT_TYPE=staysilent splash_stop
+	}
+esac
+
+splash_progress_init() {
+	for daemon in "${DAEMONS[@]}"; do
+		case $daemon in $SPLASH_XSERVICE | @$SPLASH_XSERVICE ) break
+		;; \!* |@* ) continue
+		esac
+		SPLASH_STEPS+=1
+	done
+}
+
+splash_progress() {
+	splash_comm_send progress $(( 65535*++SPLASH_STEPS_DONE/SPLASH_STEPS ))
+	splash_comm_send paint
+}
+
+# Start the splash daemon - using upstream function
+splash_set_event_dev() { :; } # override - Never grab the keyboard
+splash_begin() {
+	if ! [[ $( /bin/pidof -o %PPID $spl_daemon ) ]]; then
+		stat_busy "Starting Fbsplash daemon"
+		if [ -x /etc/splash/$SPLASH_THEME/scripts/rc_init-pre ]; then
+			/etc/splash/$SPLASH_THEME/scripts/rc_init-pre ${0#/etc/rc.d} $RUNLEVEL
+		fi &&
+		splash_start &&
+		stat_done || stat_fail
+	fi
+}
+
+# Stop the splash daemon - if any
+splash_stop() {
+	if [[ $( /bin/pidof -o %PPID $spl_daemon ) ]]; then
+		SPLASH_PUSH_MESSAGES="no" stat_busy "Stopping Fbsplash daemon"
+		splash_comm_send progress 65535; splash_comm_send paint; /bin/sleep .1
+		splash_comm_send exit $SPLASH_EXIT_TYPE
+		# Wait for painting/fadeout
+		local -i i=0
+		while [[ i++ -lt 100 && $( /bin/pidof -o %PPID $spl_daemon ) ]]; do
+			/bin/sleep .1
+		done
+		stat_done
+	fi
+}
+
+stat_busy() {
+	printf "${C_OTHER}${PREFIX_REG} ${C_MAIN}${1}${C_CLEAR} "
+	printf "${SAVE_POSITION}"
+	deltext
+	printf "   ${C_OTHER}[${C_BUSY}BUSY${C_OTHER}]${C_CLEAR} "
+	SPLASH_BUSY_MSG=$1
+	if [[ $SPLASH_PUSH_MESSAGES = yes ]]; then
+		splash_comm_send set message "${1}"
+		splash_comm_send paint
+	fi
+}
+
+stat_fail() {
+	deltext
+	printf "   ${C_OTHER}[${C_FAIL}FAIL${C_OTHER}]${C_CLEAR} \n"
+	local event=stop_failed; [[ $PREVLEVEL = N ]] && event=start_failed
+	# Provide a general failure status event and write to msglog textbox
+	splash_comm_send update_svc fbsplash-dummy svc_${event}
+	splash_comm_send log "Error $SPLASH_BUSY_MSG"
+	splash_comm_send paint
+	# Save for daemon restart                                     ## FIX ME ##
+	if /bin/mountpoint -q $spl_cachedir; then
+		: >|$spl_cachedir/${event}-fbsplash-dummy
+	fi
+	# Upstream way of error handling
+	if [[ $SPLASH_VERBOSE_ON_ERRORS = yes ]]; then
+		chvt 1
+	fi
+}
+
+# EOF #
diff --git a/abs/core-testing/fbsplash/fbsplash.bootsteps b/abs/core-testing/fbsplash/fbsplash.bootsteps
deleted file mode 100644
index 7273c0f..0000000
--- a/abs/core-testing/fbsplash/fbsplash.bootsteps
+++ /dev/null
@@ -1 +0,0 @@
-25
diff --git a/abs/core-testing/fbsplash/fbsplash.conf b/abs/core-testing/fbsplash/fbsplash.conf
deleted file mode 100644
index ddd88f8..0000000
--- a/abs/core-testing/fbsplash/fbsplash.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# fbsplash.conf
-#
-
-THEMES="linhes"
-SPLASH_TTYS="1 2 3 4 5 6"
-
-#EOF
diff --git a/abs/core-testing/fbsplash/fbsplash.daemon b/abs/core-testing/fbsplash/fbsplash.daemon
deleted file mode 100644
index e615500..0000000
--- a/abs/core-testing/fbsplash/fbsplash.daemon
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash
-
-source /etc/rc.conf
-source /etc/rc.d/functions
-
-source /sbin/splash-functions.sh
-source /etc/conf.d/fbsplash.conf
-
-case "$1" in
-	start)
-		if [ "$(fbcondecor_supported)" = "true" ]
-		then
-			THEME="linhes"
-			if [ -f /proc/cmdline ]; then
-				OPTIONS=$(grep -o 'splash=[^ ]*' /proc/cmdline)
-				for i in $(echo "${OPTIONS#*=}" | sed -e 's/,/ /g')
-				do
-					case ${i%:*} in
-						theme)		THEME=${i#*:} ;;
-					esac
-				done
-			fi
-			stat_busy "Setting fbcondecor console images"
-			for TTY in ${SPLASH_TTYS}; do
-				fbcondecor_set_theme ${TTY} ${THEME}
-			done
-			stat_done
-		fi
-		save_boot_steps
-		splash_exit
-	;;
-
-	kill)
-		if [ "$(fbcondecor_supported)" = "true" ]
-		then
-			stat_busy "Disabling fbcondecor console images"
-			for TTY in ${SPLASH_TTYS}; do
-				fbcondecor_remove_theme ${TTY}
-			done
-			stat_done
-		fi
-	;;
-
-	restart)
-		$0 kill
-		sleep 1
-		$1 start
-	;;
-
-	*)
-		echo "usage: $0 {start|restart|kill}"
-esac
-exit 0
-
-#EOF
-
diff --git a/abs/core-testing/fbsplash/fbsplash.git.patch b/abs/core-testing/fbsplash/fbsplash.git.patch
new file mode 100644
index 0000000..15f041c
--- /dev/null
+++ b/abs/core-testing/fbsplash/fbsplash.git.patch
@@ -0,0 +1,166 @@
+From 4ecac1b2645afc8079aad4067a1aa0e8a96eab12 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?Micha=C5=82=20Januszewski?= <spock@gentoo.org>
+Date: Tue, 16 Feb 2010 23:30:18 +0100
+Subject: [PATCH] Make it possible to build fbcondecor_helper against glibc.
+
+---
+ configure.ac     |   34 ++++++++++++++++++++++++++++++++++
+ libs/Makefile.am |    2 ++
+ src/Makefile.am  |   34 +++++++++++++++++++++++++++++++++-
+ 3 files changed, 69 insertions(+), 1 deletions(-)
+
+diff --git configure.ac configure.ac
+index 63b1ff6..8db1498 100644
+--- configure.ac
++++ configure.ac
+@@ -76,6 +76,23 @@ AC_ARG_ENABLE([klibc-shared],
+ )
+ AM_CONDITIONAL([CONFIG_KLIBC_SHARED], [test "x${config_klibc_shared}" = "xyes"])
+ 
++AC_ARG_ENABLE([static-binaries],
++  AC_HELP_STRING([--disable-static-binaries], [do not build any statically linked binaries]),
++  [
++    AS_CASE(["${enableval}"],
++      [yes], [config_static_binaries="yes"],
++      [no],  [config_static_binaries="no"],
++             [AC_MSG_ERROR([bad value '${enableval}' for --disable-static-binaries])]
++    )
++  ],
++  [config_static_binaries="yes"]
++)
++AM_CONDITIONAL([CONFIG_STATIC_BINARIES], [test "x${config_static_binaries}" = "xyes"])
++AS_IF(
++  [test "x${config_static_binaries}" = "xyes"],
++  [AC_DEFINE([CONFIG_STATIC_BINARIES], [1], [Define to 1 to disable building of statically linked binaries.])]
++)
++
+ AC_ARG_ENABLE([deprecated],
+   AC_HELP_STRING([--enable-deprecated], [include support for deprecated features]),
+   [
+@@ -333,6 +350,23 @@ AC_ARG_WITH([themedir],
+ )
+ AC_SUBST([themedir])
+ 
++AC_ARG_WITH([klibc],
++  AC_HELP_STRING([--without-klibc], [link the kernel helper against glibc instead of klibc]),
++  [
++    AS_CASE(["${withval}"],
++      [yes], [config_klibc="yes"],
++      [no],  [config_klibc="no"],
++             [AC_MSG_ERROR([bad value ${withval} for --with-klibc])]
++    )
++  ],
++  [config_klibc="yes"]
++)
++AM_CONDITIONAL([CONFIG_KLIBC], [test "x${config_klibc}" = "xyes"])
++AS_IF(
++  [test "x${config_klibc}" = "xyes"],
++  [AC_DEFINE([CONFIG_KLIBC], [1], [use klibc])]
++)
++
+ M_CFLFAGS=
+ M_LIBS=
+ AC_CHECK_HEADER(
+diff --git libs/Makefile.am b/core/libs/Makefile.am
+index 6675ec1..d070b29 100644
+--- libs/Makefile.am
++++ libs/Makefile.am
+@@ -24,6 +24,7 @@ mostlyclean-local: \
+ 
+ noinst_LIBRARIES =
+ 
++if CONFIG_KLIBC
+ if CONFIG_HELPER
+ noinst_LIBRARIES += libjpeg.a
+ if CONFIG_PNG
+@@ -33,6 +34,7 @@ if CONFIG_TTF_KERNEL
+ noinst_LIBRARIES += libfreetype.a
+ endif
+ endif
++endif
+ 
+ libjpeg_a_SOURCES =
+ libpng_a_SOURCES =
+diff --git src/Makefile.am b/core/src/Makefile.am
+index fa6919d..7570b5e 100644
+--- src/Makefile.am
++++ src/Makefile.am
+@@ -167,7 +167,6 @@ sbin_PROGRAMS += fbcondecor_ctl
+ endif
+ sbin_PROGRAMS += fbsplashd
+ bin_PROGRAMS  += splash_util
+-eexecsbin_PROGRAMS += fbsplashctl
+ 
+ fbcondecor_ctl_SOURCES      = fbcon_decor_ctl.c fbcon_decor.h ../include/console_decor.h ../include/fbcondecor.h common.h fbsplash.h
+ fbcondecor_ctl_CPPFLAGS     = $(AM_CPPFLAGS) -DTARGET_UTIL $(libfbsplashrender_la_CFLAGS)
+@@ -185,6 +184,9 @@ splash_util_CPPFLAGS        = $(AM_CPPFLAGS) -DTARGET_UTIL $(libfbsplashrender_l
+ splash_util_LDFLAGS         = $(AM_LDFLAGS)
+ splash_util_LDADD           = libfbsplashrender.la libfbsplash.la
+ 
++if CONFIG_STATIC_BINARIES
++eexecsbin_PROGRAMS += fbsplashctl
++
+ fbsplashctl_SOURCES         = $(fbsplashd_SOURCES) $(splash_util_SOURCES) fbsplashctl.c
+ fbsplashctl_CFLAGS          = $(AM_CFLAGS) $(PTHREAD_STATIC_CFLAGS) $(RT_CFLAGS) $(libfbsplashrender_la_CFLAGS) -DUNIFIED_BUILD
+ fbsplashctl_CPPFLAGS        = $(fbsplashd_CPPFLAGS) $(splash_util_CPPFLAGS)
+@@ -210,6 +212,7 @@ uninstall-hook:
+ if CONFIG_FBCON_DECOR
+ 	rm -f $(DESTDIR)$(eexecsbindir)/fbcondecor_ctl.static$(EXEEXT)
+ endif
++endif
+ 
+ ################################################################################
+ # Kernel
+@@ -219,6 +222,7 @@ if CONFIG_HELPER
+ eexecsbin_PROGRAMS  += fbcondecor_helper
+ endif
+ 
++if CONFIG_KLIBC
+ fbcondecor_helper_SOURCES = \
+ 	kernel.c \
+ 	libfbsplash.c \
+@@ -236,10 +240,12 @@ fbcondecor_helper_SOURCES = \
+ 	common.h \
+ 	render.h \
+ 	fbsplash.h
++
+ fbcondecor_helper_CPPFLAGS  = -DWITH_ERRLIST -DTARGET_KERNEL -DTT_CONFIG_OPTION_BYTECODE_INTERPRETER
+ fbcondecor_helper_CFLAGS    = -Os -w -ffunction-sections -fdata-sections -I.@am__isrc@
+ fbcondecor_helper_LDFLAGS   = 
+ fbcondecor_helper_LDADD     = 
++
+ fbcondecor_helper_CFLAGS   += -I$(abs_top_builddir)/libs/libjpeg -I$(LIBJPEG_SOURCE)
+ fbcondecor_helper_LDADD    += $(top_builddir)/libs/libjpeg.a
+ if CONFIG_PNG
+@@ -280,3 +286,29 @@ fbcondecor_helper-%.o: %.c
+ 	@$(call infmsg,CC,$@)
+ 	$(Q)$(MKDIR_P) $(@D)
+ 	$(Q)$(KLCC) $(fbcondecor_helper_CPPFLAGS) $(fbcondecor_helper_CFLAGS) $(INCLUDES) -c $< -o $@
++else
++fbcondecor_helper_SOURCES = \
++	kernel.c \
++	libfbsplash.c \
++	libfbsplashrender.c \
++	fbcon_decor.c \
++	common.c \
++	parse.c \
++	list.c \
++	render.c \
++	image.c \
++	effects.c \
++	fbcon_decor.h \
++	../include/console_decor.h \
++	../include/fbcondecor.h \
++	common.h \
++	render.h \
++	fbsplash.h
++if CONFIG_TTF_KERNEL
++fbcondecor_helper_SOURCES  += ttf.c ttf.h
++endif
++fbcondecor_helper_CPPFLAGS = $(AM_CPPFLAGS) -DTARGET_KERNEL
++fbcondecor_helper_CFLAGS   = $(AM_CFLAGS) $(libfbsplashrender_la_CFLAGS)
++fbcondecor_helper_LDFLAGS  = $(AM_LDFLAGS)
++fbcondecor_helper_LDADD    = $(libfbsplashrender_la_LIBADD)
++endif
+-- 
+1.6.5.GIT
diff --git a/abs/core-testing/fbsplash/fbsplash.initcpio_hook b/abs/core-testing/fbsplash/fbsplash.initcpio_hook
new file mode 100644
index 0000000..62048df
--- /dev/null
+++ b/abs/core-testing/fbsplash/fbsplash.initcpio_hook
@@ -0,0 +1,102 @@
+run_hook ()
+{
+	SPLASH_INIT_MESSAGE="Initializing the kernel"
+	SPLASH_MODE_REQ="off"
+	SPLASH_THEME="default"
+	SPLASH_TTY=16
+	SPLASH_TEXTBOX="no"
+	SPLASH_AUTOVERBOSE=0
+
+	. /etc/conf.d/splash
+
+	# Kernel parameters override config file
+	local ifs="$IFS"
+	IFS=','
+	set -- $splash
+	IFS="$ifs"
+	local arg effects
+	for arg in "$@"; do
+		case "$arg"
+		in off      ) SPLASH_MODE_REQ="off"
+		;; silent   ) SPLASH_MODE_REQ="silent"
+		;; verbose  ) SPLASH_MODE_REQ="verbose"
+		;; theme:?* ) SPLASH_THEME="${arg#theme:}"
+		;;   tty:?* ) SPLASH_TTY="${arg#tty:}"
+		;; insane   ) SPLASH_SANITY="insane"
+		;; fadein | fadeout ) effects="$effects,$arg"
+		esac
+	done
+	if [ -n "$effects" ]; then
+		SPLASH_EFFECTS="${effects#,}"
+	fi
+
+	if [ "${SPLASH_MODE_REQ}" != "silent" ]; then
+		return
+	fi
+
+	if ! [ "$console" = tty1 -o "$SPLASH_SANITY" = insane ]; then
+		err "Fbsplash requires console=tty1 in kernel line!"
+		return 1
+	fi
+
+	# Start the daemon here if possible
+	# to show animations early and gain some bootup speed
+	if [ -x /sbin/fbsplashd.static ]; then
+		if [ -x /etc/splash/"$SPLASH_THEME"/scripts/rc_init-pre ]; then
+			msg "Found '/etc/splash/$SPLASH_THEME/scripts/rc_init-pre'"
+			msg "Not starting Fbsplash daemon - no theme hook support in initcpio."
+		else
+			msg "Starting Fbsplash Daemon"
+			(
+				set -e
+				# Hold the cache and fifo within /dev to get it moved to the new root
+				mkdir /dev/.splash-cache
+				# code line derived from splash-functions.sh
+				mount -t tmpfs cachedir /dev/.splash-cache -o rw,mode=0644,size=4096k
+				# Take over any existing cache content
+				mkdir -p /lib/splash/cache
+				mv /lib/splash/cache /lib/splash/.splash-cache
+				cp -a /lib/splash/.splash-cache /dev/
+				ln -s /dev/.splash-cache /lib/splash/cache
+				mkfifo -m 600 /lib/splash/cache/.splash
+				# Wait for any fbcondecor fadein - may take very long on some broken systems
+				i=0
+				while [ -n "$( pidof fbcondecor_helper )" ]; do
+					if [ $i -ge 50 ]; then
+						err "timeout on waiting for fbcondecor_helper to die!"
+						exit 1
+					fi
+					sleep .1
+					i=$(( i + 1 ))
+				done
+				# Actually start the daemon
+				options=""
+				[ -n "$SPLASH_THEME"      ] && options="$options --theme=$SPLASH_THEME"
+				[ -n "$SPLASH_EFFECTS"    ] && options="$options --effects=$SPLASH_EFFECTS"
+				[ "$SPLASH_TEXTBOX" = yes ] && options="$options --textbox"
+				cd /dev/.splash-cache
+				BOOT_MSG="${SPLASH_INIT_MESSAGE}" \
+					/sbin/fbsplashd.static --type=bootup --pidfile=daemon.pid $options
+				(
+					echo set tty silent $SPLASH_TTY
+					echo set mode silent
+					echo repaint
+					echo set autoverbose $SPLASH_AUTOVERBOSE
+				) >/lib/splash/cache/.splash &
+			)
+			return
+		fi
+	fi
+
+	# Start the fbcondecor helper if not already done by fbcondecor kernel
+	(
+		# code copied from splash-functions.sh
+		fbcondecor_supported() {
+			[ -e /dev/fbsplash -o -e /dev/fbcondecor ]
+		}
+		if ! fbcondecor_supported; then
+			BOOT_MSG="${SPLASH_INIT_MESSAGE}" \
+				/sbin/fbcondecor_helper 2 init 0 0 $SPLASH_THEME
+		fi
+	)
+}
diff --git a/abs/core-testing/fbsplash/fbsplash.initcpio_install b/abs/core-testing/fbsplash/fbsplash.initcpio_install
index 3fdd7e9..4485f91 100644
--- a/abs/core-testing/fbsplash/fbsplash.initcpio_install
+++ b/abs/core-testing/fbsplash/fbsplash.initcpio_install
@@ -1,29 +1,114 @@
 
 install() {
-	[ -x /sbin/fbcondecor_helper ] || return 1
+	(
+		. /etc/conf.d/splash
 
-	source /etc/conf.d/fbsplash.conf
-	[ -z "${THEME}" ] && THEME="linhes"
+		if /bin/mountpoint -q /lib/splash/cache; then
+			/bin/umount /lib/splash/cache
+		fi
 
-	add_binary "/sbin/fbcondecor_helper"	
+		# Add the helper
+		add_binary /sbin/fbcondecor_helper
 
-	add_device "/dev/null" c 1 3
-	add_device "/dev/console" c 5 1
-	add_device "/dev/tty0" c 4 0
+		# Add the daemon for early start
+		if [[ $SPLASH_DAEMON = early ]]; then
+			add_binary /sbin/fbsplashd.static
+		fi
 
-	for DIR in /dev /dev/fb /dev/misc /dev/vc /lib/splash/proc /lib/splash/sys
-	do
-		add_dir ${DIR}
-	done
+		# Add a clean config file avoiding errors when running the hook
+		file=$( /usr/bin/mktemp )
+		for var in SPLASH_INIT_MESSAGE SPLASH_MODE_REQ SPLASH_THEME SPLASH_TTY \
+		           SPLASH_AUTOVERBOSE SPLASH_EFFECTS SPLASH_TEXTBOX
+		do
+			eval value=\"\$$var\"
+			[ -n "$value" ] && echo $var="'$value'"
+		done >|$file
+		add_file $file /etc/conf.d/splash
 
-	for THEME in ${THEMES}
-	do
-		add_full_dir "/etc/splash/${THEME}"
-	done
+		# List file paths contained in given Fbsplash theme cfg file
+		_get_cfg_files() {
+			< "$1" /bin/sed -re '
+				# convert all whitespace into single blanks
+				s,[[:space:]]+, ,g ; t L1
+				:L1
+				# drop comments, grouping directives and blank lines
+				/^ *([#<]|$)/ d
+				# get a filepath or drop
+				s,.*[ =]([^ ]*/[^ ]+).*,\1, ; t ; d
+			' | /usr/bin/sort -u
+		}
+
+		# Check if cfg file name or path
+		_match_cfg() {
+			[[ "$1" =~ (^|/)[0-9]+x[0-9]+\.cfg$ ]]
+		}
+
+		# Add non-cfg files in given dir
+		_add_non_cfg_files() {
+			local file dir="$1"
+			for file in $( /bin/ls "$dir" ); do
+				if [ -f "$dir/$file" ]; then
+					_match_cfg "$file" || add_file "$dir/$file"
+				fi
+			done
+		}
+
+		# Add global non-cfg files
+		_add_non_cfg_files /etc/splash
+
+		# Add themes
+		dirs=""
+		for theme in ${SPLASH_THEMES[*]}; do # string list and array allowed
+			[ ${theme:0:1} = / ] || theme=/etc/splash/$theme
+			if [ -f $theme ]; then
+				if ! _match_cfg $theme; then
+					err "Not a valid theme cfg file name: $theme"
+					continue
+				fi
+				add_file $theme || continue
+				dir=$( dirname $theme )
+				# Add non-cfg files in theme dir
+				_add_non_cfg_files $dir
+				# Add files refered in cfg file by paths
+				for file in $( _get_cfg_files $theme ); do
+					if [ ${file:0:1} = / ]; then
+						add_file $file
+						continue
+					fi
+					# Path may be relative to theme-dir or to /etc/splash
+					[ -e $dir/$file -o ! -f /etc/splash/$file ] && add_file $dir/$file
+					[ -e /etc/splash/$file -o ! -f $dir/$file ] && add_file /etc/splash/$file
+				done
+			elif [ -d $theme ]; then
+				dir=$theme
+				add_full_dir $dir
+			else
+				err "Theme not found: $theme"
+				continue
+			fi
+			if [[ " "$dirs" " != *" "$dir" "* ]]; then
+				dirs+=" "$dir
+			fi
+		done
+		for dir in $dirs; do
+			# Add the rc_init-pre script if we have one
+			# Currently this just prevents early daemon start for the theme
+			if [[ $SPLASH_DAEMON = early && -x $dir/scripts/rc_init-pre ]]; then
+				add_file $dir/scripts/rc_init-pre || continue
+				echo "WARNING: rc_init-pre script found - no early daemon with '${dir##*/}'!" >&2
+			fi
+		done
+	)
+
+	SCRIPT="fbsplash"
 }
 
 help() {
-	echo "This hook includes Fbsplash in the initramfs image."
+cat<<HELPEOF
+  This hook adds the FBconDecor helper and Fbsplash themes and maybe the
+  Fbsplash daemon as specified in /etc/conf.d/splash. Put it after udev
+  for early daemon start or when using a FBconDecor kernel.
+HELPEOF
 }
 
 #EOF
diff --git a/abs/core-testing/fbsplash/fbsplash.inithooks b/abs/core-testing/fbsplash/fbsplash.inithooks
deleted file mode 100644
index c396b92..0000000
--- a/abs/core-testing/fbsplash/fbsplash.inithooks
+++ /dev/null
@@ -1,91 +0,0 @@
-# fbsplash function.d script #
-# Author: Greg Helton <gt@fallendusk.org> #
-
-# Who is calling? #
-CALLER=$0
-
-# splash stuff #
-. /etc/conf.d/fbsplash.conf
-. /sbin/splash-functions.sh
-
-# Redefine the stat functions #
-stat_bkgd() {
-	printf "${C_OTHER}${PREFIX_REG} ${C_MAIN}${1}${C_CLEAR} "
-	deltext
-	printf "   ${C_OTHER}[${C_BKGD}BKGD${C_OTHER}]${C_CLEAR} "
-}
-
-stat_busy() {
-	printf "${C_OTHER}${PREFIX_REG} ${C_MAIN}${1}${C_CLEAR} "
-	printf "${SAVE_POSITION}"
- 	deltext
-	printf "   ${C_OTHER}[${C_BUSY}BUSY${C_OTHER}]${C_CLEAR} "
-	# This checks to see if we just brought up the lo interface in rc.sysinit #
-	# if so, start the progress bar #
-	if [ "${1}" == 'Bringing up loopback interface' ]; then
-		splash rc_init
-	fi
-        # Load variables #
-        var_load STEP_NR MAX_STEPS RC_MULTI RC_SYSINIT RC_SHUTDOWN
-        # Only update the splash progress if we're in sysinit, multi, or shutdown. #
-        if [[ "${SPLASH_RC_MULTI}" == "1" || "${SPLASH_RC_SYSINIT}" == "1" || "${SPLASH_RC_SHUTDOWN}" == "1" ]]; then
-                ((SPLASH_STEP_NR++))
-                SPLASH_PROGRESS=$((100*${SPLASH_STEP_NR}/${SPLASH_MAX_STEPS}))
-                SPLASH_CURRENT_PROGRESS=${SPLASH_PROGRESS}
-                splash_update_progress ${SPLASH_PROGRESS}
-                var_save STEP_NR CURRENT_PROGRESS
-        fi
-	if [ "${SPLASH_RC_SHUTDOWN}" == "1" ]; then
-		save_shutdown_steps
-	fi
-
-}
-
-stat_done() {
-	deltext
-	printf "   ${C_OTHER}[${C_DONE}DONE${C_OTHER}]${C_CLEAR} \n"
-}
-
-stat_fail() {
-	deltext
-	printf "   ${C_OTHER}[${C_FAIL}FAIL${C_OTHER}]${C_CLEAR} \n"
-	splash_verbose
-}
-
-start_daemon() {
-	/etc/rc.d/$1 start
-}
-
-# rc.sysinit #
-if [ "$CALLER" == '/etc/rc.sysinit' ]; then
-#	echo "fbsplash: Setting up splash..."
-	splash_cache_prep
-	SPLASH_MAX_STEPS=$(load_boot_steps)
-	SPLASH_STEP_NR=0
-	SPLASH_RC_MULTI=0
-	SPLASH_RC_SYSINIT=1
-	SPLASH_RC_SHUTDOWN=0
-	var_save MAX_STEPS STEP_NR RC_MULTI RC_SYSINIT RC_SHUTDOWN
-fi
-
-# rc.multi #
-if [ "$CALLER" == '/etc/rc.multi' ]; then
-	SPLASH_RC_MULTI=1
-	SPLASH_RC_SYSINIT=0
-	var_save RC_MULTI RC_SYSINIT
-fi
-
-# rc.shutdown #
-if [ "$CALLER" == '/etc/rc.shutdown' ]; then
-#	echo "fbsplash: Setting up splash..."
-	splash_cache_prep
-	SPLASH_MAX_STEPS=$(load_shutdown_steps)
-	SPLASH_SHUTDOWN_STEPS=1
-	SPLASH_STEP_NR=0
-	SPLASH_RC_MULTI=0
-	SPLASH_RC_SYSINIT=0
-	SPLASH_RC_SHUTDOWN=1
-	var_save MAX_STEPS STEP_NR RC_MULTI RC_SYSINIT RC_SHUTDOWN DAEMON_STEPS
-	splash rc_init
-fi
-
diff --git a/abs/core-testing/fbsplash/fbsplash.install b/abs/core-testing/fbsplash/fbsplash.install
index 2899857..09da219 100644
--- a/abs/core-testing/fbsplash/fbsplash.install
+++ b/abs/core-testing/fbsplash/fbsplash.install
@@ -1,25 +1,19 @@
-
 post_install() {
-	echo ">"
-	echo "> ATTENTION!!!:"
-	echo "----------------------------------------------"
-	echo "> fbsplash has been rewritten and no longer depends "
-	echo "> on using a special initscripts. "
-	echo "> Please read http://wiki.archlinux.org/fbsplash "
-	echo "> for more details on the changes. "
-	echo "----------------------------------------------"
-	if ! [ -e /etc/conf.d/fbsplash.bootsteps ]; then
-		echo ""
-		echo "Creating step count files..."
-		echo "Note: The first boot's percentage will be wrong. "
-		echo "The scripts will update with the right steps after first boot"
-		echo ""
-		touch /etc/conf.d/fbsplash.bootsteps
-		touch /etc/conf.d/fbsplash.shutdownsteps
-		echo 25 > /etc/conf.d/fbsplash.bootsteps
-		echo 20 > /etc/conf.d/fbsplash.shutdownsteps
-	fi
-		echo 20 > /etc/conf.d/fbsplash.shutdownsteps
+	echo "------------------------------------------------------------"
+	echo "> This package doesn't contain a default theme."
+	echo "> You need to install one separately."
+        echo "> To find some themes, just search AUR for \"fbsplash-theme\","
+        echo "> or GNOME-Look.org or KDE-Look.org for \"fbsplash\"."
+        echo "------------------------------------------------------------"
+        echo "> Configuration for fbsplash: /etc/conf.d/splash"
+        echo "> Configuration for fbcondecor: /etc/conf.d/fbcondecor"
+	echo "------------------------------------------------------------"
+        echo "> Remember to rebuild the initrd after changing the"
+        echo "> configuration."
+        echo "------------------------------------------------------------"
+	echo "> Please read http://wiki.archlinux.org/index.php/Fbsplash"
+	echo "> for more details. "
+	echo "------------------------------------------------------------"
 }
 
 post_upgrade() {
diff --git a/abs/core-testing/fbsplash/splash-functions-arch.sh b/abs/core-testing/fbsplash/splash-functions-arch.sh
deleted file mode 100644
index 977ccef..0000000
--- a/abs/core-testing/fbsplash/splash-functions-arch.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-# ArchLinux specific splash functions #
-# Author: Greg Helton <gt@fallendusk.org> #
-
-splash_init() {
-	splash_setup	
-	splash_start
-}
-
-splash_exit() {
-	splash_comm_send "exit"
-	splash_cache_cleanup
-}
-
-splash_update_progress() {
-	local PROGRESS
-	PROGRESS=$(($1*65535/100))
-	splash_comm_send "progress ${PROGRESS}"
-	splash_comm_send "repaint"
-}
-
-var_save() {
-for i in $@ ;
-	do
-		local var
-		eval var=\$SPLASH_${i}
-		echo "SPLASH_$i=$(echo ${var})" > ${spl_cachedir}/${i}
-	done
-}
-
-var_load() {
-for i in $@ ;
-	do
-		local var
-		eval var=\$SPLASH_${i}
-		if [[ -z "$(echo ${var})" && -f ${spl_cachedir}/${i} ]] ; then
-			source ${spl_cachedir}/${i}
-		fi
-	done
-}
-
-save_boot_steps() {
-	var_load STEP_NR
-	echo $SPLASH_STEP_NR > /etc/conf.d/fbsplash.bootsteps
-}
-
-load_boot_steps() {
-	BOOT_STEPS=$(cat /etc/conf.d/fbsplash.bootsteps)
-	# Fail safe, so we don't divide by 0
-	if [ $BOOT_STEPS = 0 ]; then
-		BOOT_STEPS=1
-	fi
-	printf $BOOT_STEPS
-}
-
-save_shutdown_steps() {
-	var_load SHUTDOWN_STEPS
-	((SPLASH_SHUTDOWN_STEPS++))
-	echo $SPLASH_SHUTDOWN_STEPS > /etc/conf.d/fbsplash.shutdownsteps
-	var_save SHUTDOWN_STEPS
-}
-
-load_shutdown_steps() {
-	SHUTDOWN_STEPS=$(cat /etc/conf.d/fbsplash.shutdownsteps)
-	# Fail safe, so we don't divide by 0
-	if [ $SHUTDOWN_STEPS = 0 ]; then
-		SHUTDOWN_STEPS=1
-	fi
-	printf $SHUTDOWN_STEPS
-}
-
-# EOF #
diff --git a/abs/core-testing/fbsplash/splash-functions.sh b/abs/core-testing/fbsplash/splash-functions.sh
deleted file mode 100644
index 1c17663..0000000
--- a/abs/core-testing/fbsplash/splash-functions.sh
+++ /dev/null
@@ -1,618 +0,0 @@
-# Distributed under the terms of the GNU General Public License v2
-
-# Author:     Michal Januszewski <spock@gentoo.org>
-# Maintainer: Michal Januszewski <spock@gentoo.org>
-
-# This file is a part of splashutils. The functions contained in this
-# file are meant to be used by hook scripts in splash themes or by
-# initscript systems. The code will be kept distro-agnostic to facilitate
-# portability. It should also contain POSIX compatible code. No bashisms
-# allowed!
-
-# ####################################################################
-#    Change any settings ONLY if you are sure what you're doing.
-#    Don't cry if it breaks afterwards.
-# ####################################################################
-
-# The splash scripts need a cache which can be guaranteed to be
-# both readable and writable at all times, even when the root fs
-# is mounted read-only. To that end, an in-RAM fs is used. Valid
-# values for spl_cachetype are 'tmpfs' and 'ramfs'. spl_cachesize
-# is a size limit in KB, and it should probably be left with the
-# default value.
-export spl_cachesize="4096"
-export spl_cachetype="tmpfs"
-export spl_cachedir="//lib/splash/cache"
-export spl_tmpdir="//lib/splash/tmp"
-export spl_fifo="${spl_cachedir}/.splash"
-export spl_pidfile="${spl_cachedir}/daemon.pid"
-export spl_util="//bin/splash_util.static"
-export spl_daemon="//sbin/fbsplashd.static"
-export spl_decor="//sbin/fbcondecor_ctl.static"
-export spl_bindir="//lib/splash/bin"
-
-# This is the main function which handles all events.
-# Accepted parameters:
-#  svc_start <name>
-#  svc_stop <name>
-#  svc_started <name>
-#  svc_stopped <name>
-#  svc_start_failed <name>
-#  svc_stop_failed <name>
-#  svc_input_begin <name>
-#  svc_input_end <name>
-#  rc_init <internal_runlevel> - used to distinguish between 'boot' and 'sysinit'
-#  rc_exit
-#  critical
-splash() {
-	local event="$1"
-	shift
-
-	# Reload the splash settings in rc_init.  We could have set them wrong the
-	# first time splash_setup was called (when splash-functions.sh was first
-	# sourced) if /proc wasn't mounted.
-	if [ "${event}" = "rc_init" ]; then
-		splash_setup "force"
-	else
-		splash_setup
-	fi
-
-	[ "${SPLASH_MODE_REQ}" = "off" ] && return
-
-	# Prepare the cache here -- rc_init-pre might want to use it
-	if [ "${event}" = "rc_init" ]; then
-		if [ "${RUNLEVEL}" = "S" -a "$1" = "sysinit" ]; then
-			splash_cache_prep 'start' || return
-		elif [ "${RUNLEVEL}" = "6" -o "${RUNLEVEL}" = "0" ]; then
-			# Check if the splash cachedir is mounted readonly. If it is,
-			# we need to mount a tmpfs over it.
-			if ! touch "${spl_cachedir}/message" 2>/dev/null ; then
-				splash_cache_prep 'stop' || return
-			fi
-		fi
-	fi
-
-	local args=""
-
-	if [ "${event}" = "rc_init" -o "${event}" = "rc_exit" ]; then
-		args="$* ${RUNLEVEL}"
-	elif [ "${event}" = "svc_started" -o "${event}" = "svc_stopped" ]; then
-		if [ -z "$2" ]; then
-			# Backwards compatibility hack.  Add a 0 to the arguments to simulate
-			# an error code.
-			args="$* 0"
-		else
-			args="$*"
-
-			# Backwards compatibility: translate an error condition (non-zero
-			# error code) into an appropriate event.
-			if [ "$2" != "0" ]; then
-				if [ "${event}" = "svc_started" ]; then
-					event="svc_start_failed"
-				else
-					event="svc_stop_failed"
-				fi
-			fi
-		fi
-	else
-		args="$*"
-	fi
-
-	splash_profile "pre ${event} ${args}"
-
-	# Handle -pre event hooks
-	if [ -x "/etc/splash/${SPLASH_THEME}/scripts/${event}-pre" ]; then
-		/etc/splash/"${SPLASH_THEME}"/scripts/${event}-pre ${args}
-	fi
-
-	case "$event" in
-		svc_start)			splash_svc_start "$1";;
-		svc_stop)			splash_svc_stop "$1";;
-		svc_started) 		splash_svc "$1" "start";;
-		svc_stopped)		splash_svc "$1" "stop";;
-		svc_start_failed)	splash_svc_fail "$1" "start";;
-		svc_stop_failed)	splash_svc_fail "$1" "stop";;
-		svc_input_begin)	splash_input_begin "$1";;
-		svc_input_end)		splash_input_end "$1";;
-		rc_init) 			splash_init "$1" "${RUNLEVEL}";;
-		rc_exit) 			splash_exit "${RUNLEVEL}";;
-		critical) 			splash_verbose;;
-	esac
-
-	splash_profile "post ${event} ${args}"
-
-	# Handle -post event hooks
-	if [ -x "/etc/splash/${SPLASH_THEME}/scripts/${event}-post" ]; then
-		/etc/splash/"${SPLASH_THEME}"/scripts/${event}-post ${args}
-	fi
-
-	return 0
-}
-
-splash_setup() {
-	# If it's already set up, let's not waste time on parsing the config
-	# files again
-	if [ "${SPLASH_THEME}" != "" -a "${SPLASH_TTY}" != "" -a "$1" != "force" ]; then
-		return 0
-	fi
-
-	export SPLASH_EFFECTS=""
-	export SPLASH_SANITY=""
-	export SPLASH_TEXTBOX="no"
-	export SPLASH_MODE_REQ="off"
-	export SPLASH_PROFILE="off"
-	export SPLASH_THEME="default"
-	export SPLASH_TTY="16"
-	export SPLASH_KDMODE="TEXT"
-	export SPLASH_AUTOVERBOSE="0"
-	export SPLASH_BOOT_MESSAGE="Booting the system (\$progress%)... Press F2 for verbose mode."
-	export SPLASH_SHUTDOWN_MESSAGE="Shutting down the system (\$progress%)... Press F2 for verbose mode."
-	export SPLASH_REBOOT_MESSAGE="Rebooting the system (\$progress%)... Press F2 for verbose mode."
-	export SPLASH_XSERVICE="xdm"
-
-	[ -f /etc/splash/splash ] && . /etc/splash/splash
-	[ -f /etc/conf.d/splash ] && . /etc/conf.d/splash
-	[ -f /etc/conf.d/fbcondecor ] && . /etc/conf.d/fbcondecor
-
-	if [ -f /proc/cmdline ]; then
-		options=$(grep -o 'splash=[^ ]*' /proc/cmdline)
-
-		# Execute this loop over $options so that we can process multiple
-		# splash= arguments on the kernel command line. Useful for adjusting
-		# splash parameters from ISOLINUX.
-		for opt in ${options} ; do
-			options=${opt#*=}
-
-			for i in $(echo "${options}" | sed -e 's/,/ /g') ; do
-				case ${i%:*} in
-					theme)		SPLASH_THEME=${i#*:} ;;
-					tty)		SPLASH_TTY=${i#*:} ;;
-					verbose) 	SPLASH_MODE_REQ="verbose" ;;
-					silent)		SPLASH_MODE_REQ="silent" ;;
-					kdgraphics)	SPLASH_KDMODE="GRAPHICS" ;;
-					profile)	SPLASH_PROFILE="on" ;;
-					insane)		SPLASH_SANITY="insane" ;;
-				esac
-			done
-		done
-	fi
-}
-
-splash_get_boot_message() {
-	if [ "${RUNLEVEL}" = "6" ]; then
-		echo "${SPLASH_REBOOT_MESSAGE}"
-	elif [ "${RUNLEVEL}" = "0" ]; then
-		echo "${SPLASH_SHUTDOWN_MESSAGE}"
-	else
-		echo "${SPLASH_BOOT_MESSAGE}"
-	fi
-}
-
-splash_start() {
-	if [ "${SPLASH_MODE_REQ}" = "verbose" ]; then
-		${spl_decor} -c on 2>/dev/null
-		return 0
-	elif [ "${SPLASH_MODE_REQ}" != "silent" ]; then
-		return 0
-	fi
-
-	# Display a warning if the system is not configured to display init messages
-	# on tty1. This can cause a lot of problems if it's not handled correctly, so
-	# we don't allow silent splash to run on incorrectly configured systems.
-	if [ "${SPLASH_MODE_REQ}" = "silent" -a "${SPLASH_SANITY}" != "insane" ]; then
-		if [ -z "$(grep -E '(^| )CONSOLE=/dev/tty1( |$)' /proc/cmdline)" -a \
-			 -z "$(grep -E '(^| )console=tty1( |$)' /proc/cmdline)" ]; then
-			clear
-			splash_warn "You don't appear to have a correct console= setting on your kernel"
-			splash_warn "command line. Silent splash will not be enabled. Please add"
-			splash_warn "console=tty1 or CONSOLE=/dev/tty1 to your kernel command line"
-			splash_warn "to avoid this message."
-			if [ -n "$(grep 'CONSOLE=/dev/tty1' /proc/cmdline)" -o \
-				  -n "$(grep 'console=tty1' /proc/cmdline)" ]; then
-				splash_warn "Note that CONSOLE=/dev/tty1 and console=tty1 are general parameters and"
-				splash_warn "not splash= settings."
-			fi
-			return 1
-		fi
-
-		if [ -n "$(grep -E '(^| )CONSOLE=/dev/tty1( |$)' /proc/cmdline)" ]; then
-			mount -n --bind / ${spl_tmpdir}
-			if [ ! -c "${spl_tmpdir}/dev/tty1" ]; then
-				umount -n ${spl_tmpdir}
-				splash_warn "The filesystem mounted on / doesn't contain the /dev/tty1 device"
-				splash_warn "which is required for the silent splash to function properly."
-				splash_warn "Silent splash will not be enabled. Please create the appropriate"
-				splash_warn "device node to avoid this message."
-				return 1
-			fi
-			umount -n ${spl_tmpdir}
-		fi
-	fi
-
-	rm -f "${spl_pidfile}"
-
-	# Prepare the communications FIFO
-	rm -f "${spl_fifo}" 2>/dev/null
-	mkfifo "${spl_fifo}"
-
-	local options=""
-	[ "${SPLASH_KDMODE}" = "GRAPHICS" ] && options="--kdgraphics"
-	[ -n "${SPLASH_EFFECTS}" ] && options="${options} --effects=${SPLASH_EFFECTS}"
-	[ "${SPLASH_TEXTBOX}" = "yes" ] && options="${options} --textbox"
-
-	local ttype="bootup"
-	if [ "${RUNLEVEL}" = "6" ]; then
-		ttype="reboot"
-	elif [ "${RUNLEVEL}" = "0" ]; then
-		ttype="shutdown"
-	fi
-
-	# Start the splash daemon
-	BOOT_MSG="$(splash_get_boot_message)" ${spl_daemon} --theme="${SPLASH_THEME}" --pidfile="${spl_pidfile}" --type=${ttype} ${options}
-
-	# Set the silent TTY and boot message
-	splash_comm_send "set tty silent ${SPLASH_TTY}"
-
-	if [ "${SPLASH_MODE_REQ}" = "silent" ]; then
-		splash_comm_send "set mode silent"
-		splash_comm_send "repaint"
-		${spl_decor} -c on 2>/dev/null
-	fi
-
-	splash_comm_send "set autoverbose ${SPLASH_AUTOVERBOSE}"
-
-	splash_set_event_dev
-
-	return 0
-}
-
-###########################################################################
-# Cache-related functions
-###########################################################################
-
-splash_cache_prep() {
-	# Mount an in-RAM filesystem at spl_cachedir
-	mount -ns -t "${spl_cachetype}" cachedir "${spl_cachedir}" \
-		-o rw,mode=0644,size="${spl_cachesize}"k
-
-	retval="$?"
-
-	if [ ${retval} -ne 0 ]; then
-		splash_err "Unable to create splash cache - switching to verbose."
-		splash_verbose
-		return "${retval}"
-	fi
-}
-
-# args: list of files to save when the cache is umounted
-#       Note that the 'profile' file is already handled and thus shouldn't
-#       be included in the list.
-splash_cache_cleanup() {
-	# Don't try to clean anything up if the cachedir is not mounted.
-	[ -z "$(grep ${spl_cachedir} /proc/mounts)" ] && return;
-
-	# Create the temp dir if necessary.
-	if [ ! -d "${spl_tmpdir}" ]; then
-		mkdir -p "${spl_tmpdir}" 2>/dev/null
-		[ "$?" != "0" ] && return
-	fi
-
-	# Make sure the splash daemon is dead.
-	if [ -n "$(pgrep fbsplashd)" ]; then
-		sleep 1
-		killall -9 "${spl_daemon##*/}" 2>/dev/null
-	fi
-
-	# If /etc is not writable, don't update /etc/mtab. If it is
-	# writable, update it to avoid stale mtab entries (bug #121827).
-	local mntopt=""
-	[ -w /etc/mtab ] || mntopt="-n"
-	mount ${mntopt} --move "${spl_cachedir}" "${spl_tmpdir}" 2>/dev/null
-
-	# Don't try to copy anything if the cachedir is not writable.
-	[ -w "${spl_cachedir}" ] || return
-
-	if [ "${SPLASH_PROFILE}" != "off" ]; then
-		cp -a "${spl_tmpdir}/profile" "${spl_cachedir}" 2>/dev/null
-	fi
-
-	while [ -n "$1" ]; do
-		cp -a "${spl_tmpdir}/$1" "${spl_cachedir}" 2>/dev/null
-		shift
-	done
-
-	umount -l "${spl_tmpdir}" 2>/dev/null
-}
-
-###########################################################################
-# Common functions
-###########################################################################
-
-# Sends data to the splash FIFO after making sure there's someone
-# alive on the other end to receive it.
-splash_comm_send() {
-	if [ -z "`pidof $(basename ${spl_daemon})`" ]; then
-		return 1
-	else
-		splash_profile "comm $*"
-		echo "$*" > "${spl_fifo}" &
-	fi
-}
-
-# Returns the current splash mode.
-splash_get_mode() {
-	local ctty="${spl_bindir}/fgconsole"
-	local mode="$(${spl_util})"
-
-	if [ "${mode}" = "silent" ]; then
-		echo "silent"
-	else
-		if [ -z "$(${spl_decor} -c getstate --tty=${ctty} 2>/dev/null | grep off)" ]; then
-			echo "verbose"
-		else
-			echo "off"
-		fi
-	fi
-}
-
-# chvt <n>
-# --------
-# Switches to the n-th tty.
-chvt() {
-	local ntty=$1
-
-#	if [ -x /usr/bin/chvt ] ; then
-#		/usr/bin/chvt ${ntty}
-#	else
-		printf "\e[12;${ntty}]"
-#	fi
-}
-
-# Switches to verbose mode.
-splash_verbose() {
-#	chvt 1
-/bin/true
-}
-
-# Switches to silent mode.
-splash_silent() {
-	splash_comm_send "set mode silent"
-}
-
-# Saves profiling information
-splash_profile() {
-	if [ "${SPLASH_PROFILE}" = "on" ]; then
-		echo "$(cat /proc/uptime | cut -f1 -d' '): $*" >> "${spl_cachedir}/profile"
-	fi
-}
-
-# Set the input device if it exists. This will make it possible to use F2 to
-# switch from verbose to silent.
-splash_set_event_dev() {
-	local t="$(grep -Hsi keyboard /sys/class/input/input*/name | sed -e 's#.*input\([0-9]*\)/name.*#event\1#')"
-	if [ -z "${t}" ]; then
-		t="$(grep -Hsi keyboard /sys/class/input/event*/device/driver/description | grep -o 'event[0-9]\+')"
-		if [ -z "${t}" ]; then
-			for i in /sys/class/input/input* ; do
-				if [ "$((0x$(cat $i/capabilities/ev) & 0x100002))" = "1048578" ]; then
-					t="$(echo $i | sed -e 's#.*input\([0-9]*\)#event\1#')"
-				fi
-			done
-
-			if [ -z "${t}" ]; then
-				# Try an alternative method of finding the event device. The idea comes
-				# from Bombadil <bombadil(at)h3c.de>. We're couting on the keyboard controller
-				# being the first device handled by kbd listed in input/devices.
-				t="$(/bin/grep -s -m 1 '^H: Handlers=kbd' /proc/bus/input/devices | grep -o 'event[0-9]*')"
-			fi
-		fi
-	fi
-	[ -n "${t}" ] && splash_comm_send "set event dev /dev/input/${t}"
-}
-
-###########################################################################
-# Service
-###########################################################################
-
-# args: <svc> <action>
-splash_svc() {
-	local srv="$1"
-	local act="$2"
-
-	if [ "${act}" = "start" ]; then
-		splash_svc_update "${srv}" "svc_started"
-		if [ "${srv}" = "gpm" ]; then
-			splash_comm_send "set gpm"
-			splash_comm_send "repaint"
-		fi
-		splash_comm_send "log Service '${srv}' started."
-	else
-		splash_svc_update "${srv}" "svc_stopped"
-		splash_comm_send "log Service '${srv}' stopped."
-	fi
-
-	splash_update_progress "${srv}"
-}
-
-# args: <svc> <action>
-splash_svc_fail() {
-	local srv="$1"
-	local act="$2"
-
-	if [ "${SPLASH_VERBOSE_ON_ERRORS}" = "yes"  ]; then
-		splash_verbose
-		return 1
-	fi
-
-	if [ "${act}" = "start" ]; then
-		splash_svc_update "${srv}" "svc_start_failed"
-		splash_comm_send "log Service '${srv}' failed to start."
-	else
-		splash_svc_update "${srv}" "svc_stop_failed"
-		splash_comm_send "log Service '${srv}' failed to stop."
-	fi
-
-	splash_update_progress "${srv}"
-}
-
-# args: <svc> <state>
-#
-# Inform the splash daemon about service status changes.
-splash_svc_update() {
-	splash_comm_send "update_svc $1 $2"
-}
-
-# args: <svc>
-splash_svc_start() {
-	local svc="$1"
-
-	splash_svc_update "${svc}" "svc_start"
-	splash_comm_send "paint"
-}
-
-# args: <svc>
-splash_svc_stop() {
-	local svc="$1"
-
-	splash_svc_update "${svc}" "svc_stop"
-	splash_comm_send "paint"
-}
-
-# args: <svc>
-splash_input_begin() {
-	local svc="$1"
-
-	if [ "$(splash_get_mode)" = "silent" ]; then
-		splash_verbose
-		export SPL_SVC_INPUT_SILENT="${svc}"
-	fi
-}
-
-# args: <svc>
-splash_input_end() {
-	local svc="$1"
-
-	if [ "${SPL_SVC_INPUT_SILENT}" = "${svc}" ]; then
-		splash_silent
-		unset SPL_SVC_INPUT_SILENT
-	fi
-}
-
-###########################################################################
-# Framebuffer Console Decorations functions
-###########################################################################
-
-fbcondecor_supported()
-{
-	[ -e /dev/fbsplash -o -e /dev/fbcondecor ]
-}
-
-# args: <theme> <tty>
-fbcondecor_set_theme()
-{
-	local theme=$1
-	local tty=$2
-
-	[ -x ${spl_decor} ] || return 1
-
-	${spl_decor} --tty="${tty}" -t "${theme}" -c setcfg || return 1
-	${spl_decor} --tty="${tty}" -t "${theme}" -c setpic -q
-	${spl_decor} --tty="${tty}" -c on
-}
-
-###########################################################################
-# Service list
-###########################################################################
-
-# splash_svclist_get <type>
-# -------------------------
-# type:
-#  - start - to get a list of services to be started during bootup
-#  - stop  - to get a list of services to be stopped during shutdown/reboot
-splash_svclist_get() {
-	if [ "$1" = "start" -a -r "${spl_cachedir}/svcs_start" ]; then
-		cat "${spl_cachedir}/svcs_start"
-	elif [ "$1" = "stop" -a -r "${spl_cachedir}/svcs_stop" ]; then
-		cat "${spl_cachedir}/svcs_stop"
-	fi
-}
-
-splash_warn() {
-	echo "$*"
-}
-
-splash_err() {
-	echo "$*"
-}
-
-############################################################################
-# Functions to be overridden by distro-specific code
-###########################################################################
-
-# args: <internal_runlevel> <runlevel>
-#
-# This function is called when an 'rc_init' event takes place,
-# i.e. when the runlevel is changed.
-
-# It is normally used to initialize any internal splash-related 
-# variables (e.g. ones used to track the boot progress), calculate
-# and save the service list and call `splash_start` in appropriate 
-# runlevels.
-#
-# Note that the splash cache is already intialized when this
-# function is called.
-splash_init() {
-	if [ "$2" = "6" -o "$2" = "0" -o "$2" = "S" -a "$1" = "sysinit" ]; then
-		splash_start
-	fi
-}
-
-# args: <runlevel>
-#
-# This function is called when an 'rc_exit' event takes place,
-# i.e. at the end of processes all initscript from a runlevel.
-splash_exit() {
-	# If we're in sysinit or rebooting, do nothing.
-	[ "$1" = "S" -o "$1" = "6" -o "$1" = "0" ] && return 0
-
-	splash_comm_send "exit"
-	splash_cache_cleanup
-}
-
-# args: <svc>
-#
-# This function is called whenever the progress variable should be
-# updated.  It should recalculate the progress and send it to the
-# splash daemon.
-splash_update_progress() {
-	# splash_comm_send "progress ${progress}"
-	# splash_comm_send "paint"
-	return
-}
-
-# Export functions if we're running bash.
-if [ -n "${BASH}" ]; then
-	export -f splash
-	export -f splash_setup
-	export -f splash_get_boot_message
-	export -f splash_start
-	export -f splash_cache_prep
-	export -f splash_cache_cleanup
-	export -f splash_comm_send
-	export -f splash_get_mode
-	export -f chvt
-	export -f splash_verbose
-	export -f splash_silent
-	export -f splash_profile
-	export -f splash_set_event_dev
-	export -f splash_svclist_get
-fi
-
-# Load any supplementary splash functions.
-for i in /sbin/splash-functions-*.sh ; do
-	[ -r "${i}" ] && . "${i}"
-done
-
-splash_setup
-
-# vim:ts=4
diff --git a/abs/core-testing/fbsplash/splash.conf b/abs/core-testing/fbsplash/splash.conf
new file mode 100644
index 0000000..74cada9
--- /dev/null
+++ b/abs/core-testing/fbsplash/splash.conf
@@ -0,0 +1,63 @@
+#
+# /etc/conf.d/splash
+#
+
+####  initcpio and Fbsplash daemon  ##########################################
+
+## Themes to include into initcpio
+## For a smaller initcpio you may try theme cfg files instead of directories.
+SPLASH_THEMES=(
+    linhes
+)
+
+## Override the initial silent splash screen status message defaults.
+## Note: '$progress' will be replaced by Fbsplash itself.
+## * initcpio - (no effect with fbcondecor kernel)
+SPLASH_INIT_MESSAGE="Initializing the kernel"
+## * bootup
+SPLASH_BOOT_MESSAGE="Booting '$HOSTNAME' (\$progress%)"
+## * reboot
+SPLASH_REBOOT_MESSAGE="Rebooting '$HOSTNAME' (\$progress%)"
+## * shutdown
+SPLASH_SHUTDOWN_MESSAGE="Shutting down '$HOSTNAME' (\$progress%)"
+
+## To show animations early, include the Fbsplash daemon (1.5 MiB) into initcpio, too,
+## instead of the small helper only.
+## Note: Themes with 'scripts/rc_init-pre' like 'arch-banner-icons' are not supported.
+SPLASH_DAEMON="early"
+
+## Make the splash daemon use fade effects.
+## Note: The initcpio helper does only use the kernel parameter!
+# SPLASH_EFFECTS="fadein,fadeout"
+## Uggly hack to get that in from the kernel line :p
+SPLASH_EFFECTS=$(e=();IFS=',';for w in $splash;do [[ $w == fade* ]]&&e+=($w);done;echo "${e[*]}")
+
+## Enable the textbox when starting the Fbsplash daemon.
+## Useful if the theme provides a message log or other textbox.
+## The scripts write any initscripts [FAIL] messages to the log.
+## Note: The textbox can also be toggled by pressing F3-key.
+SPLASH_TEXTBOX="yes"
+
+## Splash progress timeout
+## If set to a positive value, Fbsplash will automatically switch to verbose
+## mode if there is no progress for the specified number of seconds.
+SPLASH_AUTOVERBOSE=0
+
+####  scripts behaviour  #####################################################
+
+## Change to verbose mode on any initscripts [FAIL] message
+## Useful with very simple themes and also when starting Xorg from DAEMONS
+SPLASH_VERBOSE_ON_ERRORS="no"
+
+## Name of the DAEMONS script starting Xorg if any
+## Set this to avoid virtual terminal change struggle between Xorg and Fbsplash.
+SPLASH_XSERVICE="gdm"
+#SPLASH_XSERVICE="kdm"
+#SPLASH_XSERVICE="xdm"
+#SPLASH_XSERVICE="lxdm"
+#SPLASH_XSERVICE="slim"
+
+## Push initscripts [BUSY] messages to the splash status message line.
+SPLASH_PUSH_MESSAGES="no"
+
+# EOF #
-- 
cgit v0.12


From 1cd0b5e2313df8a9b1a82e3db164a354f2876e10 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:54:52 -0700
Subject: fixesproto:Bumped/Updated for LinHES 7.

---
 abs/core-testing/fixesproto/PKGBUILD | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/abs/core-testing/fixesproto/PKGBUILD b/abs/core-testing/fixesproto/PKGBUILD
index 2f77d60..6af302b 100644
--- a/abs/core-testing/fixesproto/PKGBUILD
+++ b/abs/core-testing/fixesproto/PKGBUILD
@@ -1,20 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 54646 2009-10-11 16:21:38Z andyrtr $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=fixesproto
-pkgver=4.0
-pkgrel=2
+pkgver=4.1.1
+pkgrel=1
 pkgdesc="X11 Fixes extension wire protocol"
-arch=(i686 x86_64)
+arch=(any)
 url="http://xorg.freedesktop.org/"
-depends=(xproto xextproto)
+license=('custom')
+depends=('xproto' 'xextproto')
 source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2)
-md5sums=(8b298cc3424597f8138c7faf7763dce9)
+md5sums=('4c1cb4f2ed9f34de59f2f04783ca9483')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  cd ${srcdir}/${pkgname}-${pkgver}
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
 }
 
-- 
cgit v0.12


From 3019c60274ceb60738d2ed6d5df18c4a7460f1b3 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:57:15 -0700
Subject: fontconfig:Bumped/Updated for LinHES 7.

---
 abs/core-testing/fontconfig/30-urw-aliases.patch | 13 ++++++++++
 abs/core-testing/fontconfig/PKGBUILD             | 31 +++++++++++++-----------
 abs/core-testing/fontconfig/fontconfig.install   |  2 +-
 3 files changed, 31 insertions(+), 15 deletions(-)
 create mode 100644 abs/core-testing/fontconfig/30-urw-aliases.patch

diff --git a/abs/core-testing/fontconfig/30-urw-aliases.patch b/abs/core-testing/fontconfig/30-urw-aliases.patch
new file mode 100644
index 0000000..8077b86
--- /dev/null
+++ b/abs/core-testing/fontconfig/30-urw-aliases.patch
@@ -0,0 +1,13 @@
+--- a/conf.d/30-urw-aliases.conf	2009-08-06 16:23:57.000000000 +0100
++++ b/conf.d/30-urw-aliases.conf	2009-08-06 16:25:07.000000000 +0100
+@@ -29,6 +29,10 @@
+ 	  <family>Zapf Dingbats</family>
+ 	  <accept><family>Dingbats</family></accept>
+ 	</alias>
++	<alias binding="same">
++	  <family>ZapfDingbats</family>
++	  <accept><family>Dingbats</family></accept>
++	</alias>
+ 	<match target="pattern">
+ 	  <test name="family">
+ 	    <string>Symbol</string>
diff --git a/abs/core-testing/fontconfig/PKGBUILD b/abs/core-testing/fontconfig/PKGBUILD
index f5c3465..ff2130a 100644
--- a/abs/core-testing/fontconfig/PKGBUILD
+++ b/abs/core-testing/fontconfig/PKGBUILD
@@ -1,32 +1,35 @@
-# $Id: PKGBUILD 4424 2008-07-06 22:09:03Z jgc $
+# $Id: PKGBUILD 59983 2009-11-29 20:25:27Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 pkgname=fontconfig
-pkgver=2.6.0
-pkgrel=4
+pkgver=2.8.0
+pkgrel=1
 pkgdesc="A library for configuring and customizing font access"
 arch=(i686 x86_64)
 url="http://www.fontconfig.org/release/"
 license=('custom')
-depends=('expat>=2.0' 'freetype2>=2.3.7')
+depends=('expat>=2.0.1' 'freetype2>=2.3.11')
 options=('!libtool')
 install=fontconfig.install
 source=(http://www.fontconfig.org/release/${pkgname}-${pkgver}.tar.gz
-	29-replace-bitmap-fonts.conf)
-md5sums=('ab54ec1d4ddd836313fdbc0cd5299d6d'
-         'f6b67e8cc79197ed6abd4701911e83da')
+        29-replace-bitmap-fonts.conf
+        30-urw-aliases.patch)
+md5sums=('77e15a92006ddc2adbb06f840d591c0e'
+         'f6b67e8cc79197ed6abd4701911e83da'
+         '51bc6cb633b50f3c28793361738aac5b')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -Np1 -i "${srcdir}/30-urw-aliases.patch" || return 1
   # enable Position Independent Code for prelinking
   export CFLAGS="${CFLAGS} -fPIC"
   ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-  install -m644 ${startdir}/src/29-replace-bitmap-fonts.conf \
-      ${startdir}/pkg/etc/fonts/conf.avail || return 1
-  rm -f ${startdir}/pkg/etc/fonts/conf.d/*.conf
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m644 "${srcdir}/29-replace-bitmap-fonts.conf" \
+      "${pkgdir}/etc/fonts/conf.avail" || return 1
+  rm -f ${pkgdir}/etc/fonts/conf.d/*.conf
 
   #Install license
-  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
-  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
diff --git a/abs/core-testing/fontconfig/fontconfig.install b/abs/core-testing/fontconfig/fontconfig.install
index 6608834..20feb6e 100644
--- a/abs/core-testing/fontconfig/fontconfig.install
+++ b/abs/core-testing/fontconfig/fontconfig.install
@@ -35,7 +35,7 @@ post_upgrade() {
 
   The way fontconfig is configured has been changed. 
   Configuration is done via /etc/fonts/conf.avail and conf.d.
-  Read /etc/fonts/conf.avail/README for more information.
+  Read /etc/fonts/conf.d/README for more information.
 
   Configuration via /etc/fonts/local.conf is still possible,
   but is no longer recommended for options available in conf.avail.
-- 
cgit v0.12


From 2bad2d9848cb5c4ccdb624273454a31042d427ea Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:57:26 -0700
Subject: fontsproto:Bumped/Updated for LinHES 7.

---
 abs/core-testing/fontsproto/PKGBUILD | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/abs/core-testing/fontsproto/PKGBUILD b/abs/core-testing/fontsproto/PKGBUILD
index 7847a5c..595f2e3 100644
--- a/abs/core-testing/fontsproto/PKGBUILD
+++ b/abs/core-testing/fontsproto/PKGBUILD
@@ -1,19 +1,21 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 51009 2009-09-04 13:55:55Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=fontsproto
-pkgver=2.0.2
+pkgver=2.1.0
 pkgrel=1
 pkgdesc="X11 font extension wire protocol"
-arch=(i686 x86_64)
+arch=(any)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('c946f166107b016a21cc7a02e1132724')
-sha1sums=('1244f63bd90668c7ddc88febbf4a220fd83ea492')
+sha1sums=('395b300fd5120a7ff90cb8fea4e2356b9632dc3e')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-- 
cgit v0.12


From d238ee33ee968dd52f17f2c184c9bcbfd4e6052e Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:57:38 -0700
Subject: freetype2:Bumped/Updated for LinHES 7.

---
 abs/core-testing/freetype2/PKGBUILD | 31 +++++++++++++------------------
 1 file changed, 13 insertions(+), 18 deletions(-)

diff --git a/abs/core-testing/freetype2/PKGBUILD b/abs/core-testing/freetype2/PKGBUILD
index 177f421..19f921d 100644
--- a/abs/core-testing/freetype2/PKGBUILD
+++ b/abs/core-testing/freetype2/PKGBUILD
@@ -1,7 +1,8 @@
-# $Id: PKGBUILD 4337 2008-07-06 17:43:50Z jgc $
-# Maintainer: judd <jvinet@zeroflux.org>
+# $Id: PKGBUILD 85761 2010-07-19 13:01:22Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=freetype2
-pkgver=2.3.7
+pkgver=2.4.1
 pkgrel=1
 pkgdesc="TrueType font rendering library"
 arch=(i686 x86_64)
@@ -10,24 +11,18 @@ url="http://freetype.sourceforge.net"
 depends=('zlib')
 options=('!libtool')
 source=(http://downloads.sourceforge.net/sourceforge/freetype/freetype-${pkgver}.tar.bz2
-	bytecode.patch
-	freetype-2.3.0-enable-spr.patch
-	freetype-2.2.1-enable-valid.patch
-	freetype-2.2.1-memcpy-fix.patch)
-md5sums=('83306194817ebdea554133b4232a34aa'
-         '9ff19e742968c29e3ba52b08d6bf0a50'
+        freetype-2.3.0-enable-spr.patch
+        freetype-2.2.1-enable-valid.patch)
+md5sums=('567a27e5189ed581396f69fb51faf2d8'
          '816dc8619a6904a7385769433c0a8653'
-         '214119610444c9b02766ccee5e220680'
-         '6fb6606d28082ecb8e0c6d986b0b26aa')
+         '214119610444c9b02766ccee5e220680')
 
 build() {
-  cd ${startdir}/src/freetype-${pkgver}
-  patch -Np0 -i ${startdir}/src/bytecode.patch || return 1
-  patch -Np1 -i ${startdir}/src/freetype-2.3.0-enable-spr.patch || return 1
-  patch -Np1 -i ${startdir}/src/freetype-2.2.1-enable-valid.patch || return 1
-  patch -Np1 -i ${startdir}/src/freetype-2.2.1-memcpy-fix.patch || return 1
+  cd "${srcdir}/freetype-${pkgver}"
+  patch -Np1 -i "${srcdir}/freetype-2.3.0-enable-spr.patch" || return 1
+  patch -Np1 -i "${srcdir}/freetype-2.2.1-enable-valid.patch" || return 1
 
-  ./configure --prefix=/usr --disable-static || return 1
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
-- 
cgit v0.12


From dc0c8146a39dca5deb78e6afb7a7234de4e1b21e Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:58:05 -0700
Subject: gcc-libs:Removed for LinHES 7.

---
 abs/core-testing/gcc-libs/PKGBUILD                 |  72 ---------
 abs/core-testing/gcc-libs/buildfix_new_bison.patch |  22 ---
 .../gcc-libs/gcc-hash-style-both.patch             | 163 ---------------------
 abs/core-testing/gcc-libs/gcc_pure64.patch         |  26 ----
 4 files changed, 283 deletions(-)
 delete mode 100644 abs/core-testing/gcc-libs/PKGBUILD
 delete mode 100644 abs/core-testing/gcc-libs/buildfix_new_bison.patch
 delete mode 100644 abs/core-testing/gcc-libs/gcc-hash-style-both.patch
 delete mode 100644 abs/core-testing/gcc-libs/gcc_pure64.patch

diff --git a/abs/core-testing/gcc-libs/PKGBUILD b/abs/core-testing/gcc-libs/PKGBUILD
deleted file mode 100644
index 3edfc76..0000000
--- a/abs/core-testing/gcc-libs/PKGBUILD
+++ /dev/null
@@ -1,72 +0,0 @@
-# $Id: PKGBUILD 25244 2009-01-24 17:53:12Z andyrtr $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-
-pkgname=gcc-libs
-pkgver=4.3.3
-pkgrel=1
-#_snapshot=4.3-20080724
-pkgdesc="Runtime libraries shipped by GCC for C and C++ languages"
-arch=('i686' 'x86_64')
-license=('GPL' 'LGPL')
-groups=('base')
-url="http://gcc.gnu.org"
-depends=('glibc>=2.8-3')
-makedepends=('binutils>=2.19' 'gcc>=4.3.2' 'mpfr>=2.3.1' 'texinfo' 'flex')
-conflicts=('gcc-fortran' 'gcc-objc')
-provides=("gcc-objc=${pkgver}")
-options=('!libtool' '!emptydirs' '!docs')
-source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,objc}-${pkgver}.tar.bz2
-	#ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc}-${_snapshot}.tar.bz2
-	gcc_pure64.patch
-	gcc-hash-style-both.patch
-	buildfix_new_bison.patch)
-md5sums=('1739288c2c7b1472796b33d641dbdbbd'
-         '18428e313a9927d38b313e688c62219b'
-         '8771e6190dd4f3178b2a7978d2380a5d'
-         '125b75947c763ba59b7ea95d3739d431'
-         '4030ee1c08dd1e843c0225b772360e76'
-         'bb420bc84b1104455b7230b1cd4b96c2'
-         '412fb8ebb30958eb1a93e9bd89413dd7')
-
-build() {
-  if ! locale -a | grep ^de_DE; then
-    echo "You need the de_DE locale to build gcc."
-    return 1
-  fi
-  
-  cd ${srcdir}/gcc-${pkgver}
-  #cd ${srcdir}/gcc-${_snapshot}
-  # Don't install libiberty
-  sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
-
-  if [ "${CARCH}" = "x86_64" ]; then
-    patch -Np1 -i ../gcc_pure64.patch || return 1
-  fi
-  patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch || return 1
-  patch -Np0 -i ${srcdir}/buildfix_new_bison.patch || return 1
-
-  # Don't run fixincludes
-  sed -i -e 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
-
-#  echo ${pkgver} > gcc/BASE-VER
-
-  mkdir build
-  cd build
-  ../configure --prefix=/usr --enable-shared \
-      --enable-languages=c,c++,fortran,objc,obj-c++,treelang --enable-threads=posix \
-      --enable-__cxa_atexit  --disable-multilib --libdir=/usr/lib \
-      --libexecdir=/usr/lib --enable-clocale=gnu --disable-libstdcxx-pch \
-      --with-tune=generic
-  make || return 1
-  make -j1 DESTDIR=${pkgdir} install-target-libstdc++-v3 install-target-libmudflap install-target-libgomp install-target-libssp install-target-libgfortran install-target-libobjc install-target-libgcc || return 1
-
-  # Cleanup, libgomp installs the whole compiler it seems...
-  rm -rf ${pkgdir}/usr/include
-  rm -rf ${pkgdir}/usr/lib/gcc
-  rm -rf ${pkgdir}/usr/bin
-  rm -rf ${pkgdir}/usr{,share}/man
-  find ${pkgdir} -name gcc.mo -delete
-
-#  rm -f {pkgdir}/usr/share/info/dir
-}
diff --git a/abs/core-testing/gcc-libs/buildfix_new_bison.patch b/abs/core-testing/gcc-libs/buildfix_new_bison.patch
deleted file mode 100644
index 01b8880..0000000
--- a/abs/core-testing/gcc-libs/buildfix_new_bison.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- gcc/treelang/parse.y	2007-07-18 08:19:29.000000000 +0000
-+++ gcc/treelang/parse.y.new	2008-11-20 06:40:00.013275486 +0000
-@@ -369,7 +369,6 @@
-   current_function = NULL;
- }
- ;
--
- variable_defs_opt:
- /* Nil.  */ {
-   $$ = 0;
-@@ -685,9 +684,9 @@
- 
- expressions_with_commas_opt:
- /* Nil.  */ {
--$$ = 0
-+$$ = 0;
- }
--|expressions_with_commas { $$ = $1 }
-+|expressions_with_commas { $$ = $1; }
- ;
- 
- expressions_with_commas:
diff --git a/abs/core-testing/gcc-libs/gcc-hash-style-both.patch b/abs/core-testing/gcc-libs/gcc-hash-style-both.patch
deleted file mode 100644
index 8fea758..0000000
--- a/abs/core-testing/gcc-libs/gcc-hash-style-both.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-#! /bin/sh -e
-
-# DP: Link using --hash-style=both (alpha, amd64, ia64, i386, powerpc, ppc64, s390, sparc)
-
-dir=
-if [ $# -eq 3 -a "$2" = '-d' ]; then
-    pdir="-d $3"
-    dir="$3/"
-elif [ $# -ne 1 ]; then
-    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
-    exit 1
-fi
-case "$1" in
-    -patch)
-        patch $pdir -f --no-backup-if-mismatch -p0 < $0
-        #cd ${dir}gcc && autoconf
-        ;;
-    -unpatch)
-        patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
-        #rm ${dir}gcc/configure
-        ;;
-    *)
-        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
-        exit 1
-esac
-exit 0
-
-2006-07-11  Jakub Jelinek  <jakub@redhat.com>
-
-	* config/i386/linux.h (LINK_SPEC): Add --hash-style=both.
-	* config/i386/linux64.h (LINK_SPEC): Likewise.
-	* config/rs6000/sysv4.h (LINK_OS_LINUX_SPEC): Likewise.
-	* config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
-	LINK_OS_LINUX_SPEC64): Likewise.
-	* config/s390/linux.h (LINK_SPEC): Likewise.
-	* config/ia64/linux.h (LINK_SPEC): Likewise.
-	* config/sparc/linux.h (LINK_SPEC): Likewise.
-	* config/sparc/linux64.h (LINK_SPEC, LINK_ARCH32_SPEC,
-	LINK_ARCH64_SPEC): Likewise.
-	* config/alpha/linux-elf.h (LINK_SPEC): Likewise.
-
---- gcc/config/alpha/linux-elf.h.orig	2007-08-04 08:55:58.000000000 +0200
-+++ gcc/config/alpha/linux-elf.h	2007-09-01 15:47:26.605865578 +0200
-@@ -39,7 +39,7 @@
- 
- #define ELF_DYNAMIC_LINKER	LINUX_DYNAMIC_LINKER
- 
--#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}		\
-+#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax}	\
-   %{O*:-O3} %{!O*:-O1}						\
-   %{shared:-shared}						\
-   %{!shared:							\
---- gcc/config/s390/linux.h.orig	2007-08-04 08:55:59.000000000 +0200
-+++ gcc/config/s390/linux.h	2007-09-01 15:47:26.605865578 +0200
-@@ -77,7 +77,7 @@
- 
- #undef  LINK_SPEC
- #define LINK_SPEC \
--  "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
-+  "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \
-    %{shared:-shared} \
-    %{!shared: \
-       %{static:-static} \
---- gcc/config/sparc/linux.h.orig	2007-08-04 08:56:01.000000000 +0200
-+++ gcc/config/sparc/linux.h	2007-09-01 15:47:26.605865578 +0200
-@@ -132,7 +132,7 @@
- 
- 
- #undef  LINK_SPEC
--#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
-   %{!mno-relax:%{!r:-relax}} \
-   %{!shared: \
-     %{!ibcs: \
---- gcc/config/sparc/linux64.h.orig	2007-08-04 08:56:01.000000000 +0200
-+++ gcc/config/sparc/linux64.h	2007-09-01 15:47:26.605865578 +0200
-@@ -166,7 +166,7 @@
-   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },	  \
-   { "link_arch",	 LINK_ARCH_SPEC },
- 
--#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-@@ -175,7 +175,7 @@
-         %{static:-static}}} \
- "
- 
--#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
-+#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,/usr/lib64 %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-@@ -256,7 +256,7 @@
- #else /* !SPARC_BI_ARCH */
- 
- #undef LINK_SPEC
--#define LINK_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
-+#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,/usr/lib64 %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
---- gcc/config/i386/linux.h.orig	2007-08-04 08:56:07.000000000 +0200
-+++ gcc/config/i386/linux.h	2007-09-01 15:47:26.605865578 +0200
-@@ -108,7 +108,7 @@
-   { "dynamic_linker", LINUX_DYNAMIC_LINKER }
- 
- #undef	LINK_SPEC
--#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
-+#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
---- gcc/config/i386/linux64.h.orig	2007-08-04 08:56:07.000000000 +0200
-+++ gcc/config/i386/linux64.h	2007-09-01 15:48:27.336781690 +0200
-@@ -65,7 +65,7 @@
- #endif
- 
- #undef	LINK_SPEC
--#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
-+#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \
-   %{shared:-shared} \
-   %{!shared: \
-     %{!static: \
---- gcc/config/ia64/linux.h.orig	2006-12-12 18:59:53.000000000 +0100
-+++ gcc/config/ia64/linux.h	2007-09-01 15:47:26.605865578 +0200
-@@ -40,7 +40,7 @@
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
- 
- #undef LINK_SPEC
--#define LINK_SPEC "\
-+#define LINK_SPEC "--hash-style=both \
-   %{shared:-shared} \
-   %{!shared: \
-     %{!static: \
---- gcc/config/rs6000/sysv4.h.orig	2007-08-08 23:37:49.000000000 +0200
-+++ gcc/config/rs6000/sysv4.h	2007-09-01 15:47:26.615865729 +0200
-@@ -901,7 +901,7 @@
- #define LINUX_DYNAMIC_LINKER \
-   CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
- 
--#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-+#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
-   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
- 
---- gcc/config/rs6000/linux64.h.orig	2007-08-04 08:56:12.000000000 +0200
-+++ gcc/config/rs6000/linux64.h	2007-09-01 15:47:26.615865729 +0200
-@@ -354,11 +354,11 @@
-   CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
- 
- 
--#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
-+#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
-   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}}"
- 
--#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
-+#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
-   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}}"
- 
diff --git a/abs/core-testing/gcc-libs/gcc_pure64.patch b/abs/core-testing/gcc-libs/gcc_pure64.patch
deleted file mode 100644
index 8c0baf8..0000000
--- a/abs/core-testing/gcc-libs/gcc_pure64.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h
---- gcc-4.2.0.orig/gcc/config/i386/linux64.h	2007-05-16 19:21:19.000000000 -0400
-+++ gcc-4.2.0/gcc/config/i386/linux64.h	2007-05-18 17:04:05.000000000 -0400
-@@ -49,8 +49,8 @@
-    When the -shared link option is used a final link is not being
-    done.  */
- 
--#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
--#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
-+#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
- 
- #undef	LINK_SPEC
- #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
-diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
---- gcc-4.2.0.orig/gcc/config/i386/t-linux64	2007-05-16 19:21:19.000000000 -0400
-+++ gcc-4.2.0/gcc/config/i386/t-linux64	2007-05-18 17:04:36.000000000 -0400
-@@ -6,7 +6,7 @@
- 
- MULTILIB_OPTIONS = m64/m32
- MULTILIB_DIRNAMES = 64 32 
--MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
-+MULTILIB_OSDIRNAMES = ../lib ../lib32
- 
- LIBGCC = stmp-multilib
- INSTALL_LIBGCC = install-multilib
-- 
cgit v0.12


From 947b0a71611be195c3d099bc247d9bdd194467e7 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:58:18 -0700
Subject: gcc:Bumped/Updated for LinHES 7.

---
 abs/core-testing/gcc/PKGBUILD                  | 239 ++++++++++++++++++++-----
 abs/core-testing/gcc/gcc-ada.install           |  22 +++
 abs/core-testing/gcc/gcc-fortran.install       |  18 ++
 abs/core-testing/gcc/gcc-hash-style-both.patch |  12 +-
 abs/core-testing/gcc/gcc-libs.install          |  14 ++
 abs/core-testing/gcc/gcc.install               |   8 +-
 abs/core-testing/gcc/r160561.patch             |  64 +++++++
 7 files changed, 319 insertions(+), 58 deletions(-)
 create mode 100644 abs/core-testing/gcc/gcc-ada.install
 create mode 100644 abs/core-testing/gcc/gcc-fortran.install
 create mode 100644 abs/core-testing/gcc/gcc-libs.install
 create mode 100644 abs/core-testing/gcc/r160561.patch

diff --git a/abs/core-testing/gcc/PKGBUILD b/abs/core-testing/gcc/PKGBUILD
index fd796b4..40fd4b6 100644
--- a/abs/core-testing/gcc/PKGBUILD
+++ b/abs/core-testing/gcc/PKGBUILD
@@ -1,81 +1,222 @@
-# $Id: PKGBUILD 25249 2009-01-24 18:28:11Z andyrtr $
+# $Id: PKGBUILD 82472 2010-06-11 13:12:15Z allan $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Maintainer: Allan McRae <allan@archlinux.org>
 
-pkgname=gcc
-pkgver=4.3.3
-pkgrel=1
-#_snapshot=4.3-20080724
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: libtool requires rebuilt with each new gcc version
+
+pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada')
+pkgver=4.5.0
+pkgrel=6
+_snapshot=4.5-20100610
+_libstdcppmanver=20100312	# Note: check source directory name when updating this
 pkgdesc="The GNU Compiler Collection"
-arch=(i686 x86_64)
-license=('GPL' 'LGPL')
-groups=('base-devel')
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'custom')
 url="http://gcc.gnu.org"
-depends=('binutils>=2.19' "gcc-libs>=${pkgver}" 'mpfr>=2.3.1' 'texinfo')
-makedepends=('flex')
-replaces=('gcc-fortran' 'gcc-objc')
-options=('!libtool')
-install=gcc.install
-source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,objc,java}-${pkgver}.tar.bz2
-	#ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc,java}-${_snapshot}.tar.bz2
-	ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-man-20080118.tar.bz2
+makedepends=('binutils>=2.20.1' 'libmpc>=0.8.2-2' 'cloog-ppl>=0.15.8' 'libelf' 'gcc-ada')
+options=('!libtool' '!emptydirs')
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,objc,ada}-${pkgver}.tar.bz2
+	ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc,ada}-${_snapshot}.tar.bz2
+	ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-man.${_libstdcppmanver}.tar.bz2
 	gcc_pure64.patch
 	gcc-hash-style-both.patch
-	buildfix_new_bison.patch)
-md5sums=('1739288c2c7b1472796b33d641dbdbbd'
-         '18428e313a9927d38b313e688c62219b'
-         '8771e6190dd4f3178b2a7978d2380a5d'
-         '125b75947c763ba59b7ea95d3739d431'
-         '068938366ee0be5b70112bdf485898b4'
-         '990881456a89b1ffbd68d2d7188759da'
+	r160561.patch)
+md5sums=('d0c6573f18e61d0a6c6fe742066346cd'
+         '4c5369d27b8cb4c4e447553f064d0f16'
+         '2c191ab600e600c774a65674c542e210'
+         'a569128d6daf741b242e39f5c24debe4'
+         'a7527896c33759ccc40bb82173f8f27f'
+         'f9a21b9dfc174f49a09ddaacfd3ac78f'
          '4030ee1c08dd1e843c0225b772360e76'
-         'bb420bc84b1104455b7230b1cd4b96c2'
-         '412fb8ebb30958eb1a93e9bd89413dd7')
+         '6fd395bacbd7b6e47c7b74854b478363'
+         '79cb26e66eb2502171ef69438fa8666d')
+
+if [ -n "${_snapshot}" ]; then
+  _basedir="${srcdir}/gcc-${_snapshot}"
+else
+  _basedir="${srcdir}/gcc-${pkgver}"
+fi
 
 build() {
-  if ! locale -a | grep ^de_DE; then
+  if ! locale -a | grep ^de_DE > /dev/null; then
     echo "You need the de_DE locale to build gcc."
     return 1
   fi
   
-  cd ${srcdir}/gcc-${pkgver}
-  #cd ${srcdir}/gcc-${_snapshot}
-  # Don't install libiberty
+  cd ${_basedir}
+
+  # Do not install libiberty
   sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
 
+  # Do not run fixincludes
+  sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+
   if [ "${CARCH}" = "x86_64" ]; then
     patch -Np1 -i ../gcc_pure64.patch || return 1
   fi
   patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch || return 1
-  patch -Np0 -i ${srcdir}/buildfix_new_bison.patch || return 1
+
+  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44258
+  patch -Np1 -i ${srcdir}/r160561.patch || return 1
 
   echo ${pkgver} > gcc/BASE-VER
 
-  mkdir build
-  cd build
-  ../configure --prefix=/usr --enable-shared \
-      --enable-languages=c,c++,fortran,objc,obj-c++,treelang \
-      --enable-threads=posix --mandir=/usr/share/man --infodir=/usr/share/info \
-      --enable-__cxa_atexit  --disable-multilib --libdir=/usr/lib \
-      --libexecdir=/usr/lib --enable-clocale=gnu --disable-libstdcxx-pch \
-      --with-tune=generic
+  mkdir build && cd build      
+  ../configure --prefix=/usr --enable-languages=c,c++,fortran,objc,obj-c++,ada \
+      --enable-shared --enable-threads=posix --enable-__cxa_atexit \
+      --enable-clocale=gnu --enable-gnu-unique-object \
+      --enable-lto --enable-plugin \
+      --disable-multilib --disable-libstdcxx-pch \
+      --with-system-zlib --with-ppl --with-cloog \
+      --libdir=/usr/lib --libexecdir=/usr/lib \
+      --mandir=/usr/share/man --infodir=/usr/share/info
   make || return 1
+}
+
+package_gcc-libs()
+{
+  pkgdesc="Runtime libraries shipped by GCC for C and C++ languages"
+  groups=('base')
+  depends=('glibc>=2.12-4')
+  install=gcc-libs.install
+
+  cd ${_basedir}/build
+  make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
+  for lib in libmudflap libgomp libssp libstdc++-v3/src; do
+    make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+  done
+  make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
+  make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info
+
+  make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+
+  make -j1 DESTDIR=${pkgdir} install-target-libobjc
+  # I thought I said to only install the lib...
+  rm -rf ${pkgdir}/usr/lib/gcc/
+
+  # remove static libraries
+  find ${pkgdir} -name *.a -delete
+  
+  # Install Runtime Library Exception
+  install -Dm644 ${_basedir}/COPYING.RUNTIME \
+    ${pkgdir}/usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc()
+{
+  depends=('binutils>=2.20.1' 'libmpc>=0.8.1-2' 'cloog-ppl>=0.15.8' 'libelf')
+  groups=('base-devel')
+  install=gcc.install
+
+  cd ${_basedir}/build
+  
+  # much, much easier to install the lot and clean-up the mess
   make -j1 DESTDIR=${pkgdir} install || return 1
-  mkdir -p ${pkgdir}/lib
-  ln -sf ../usr/bin/cpp ${pkgdir}/lib/cpp
+  rm $pkgdir/usr/bin/{*gfortran,gnat*}
+  rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{ada{include,lib},finclude,include/objc}/*
+  rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,libgfortranbegin.a}
+  rm $pkgdir/usr/lib/{*.so*,lib{gfortran,objc}.a}
+  rm $pkgdir/usr/share/info/{gfortran,gnat*,libgomp}.info
+  rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
+  rm $pkgdir/usr/share/man/man1/gfortran.1
+
+  # many packages require these symlinks
+  install -dm755 ${pkgdir}/lib
+  ln -sf /usr/bin/cpp ${pkgdir}/lib/cpp
   ln -sf gcc ${pkgdir}/usr/bin/cc
   ln -sf g++ ${pkgdir}/usr/bin/c++
 
+  # POSIX conformance launcher scripts for c89 and c99
+  cat > $pkgdir/usr/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+  case "$opt" in
+    -ansi|-std=c89|-std=iso9899:1990) fl="";;
+    -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+	    exit 1;;
+  esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+  cat > $pkgdir/usr/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+  case "$opt" in
+    -std=c99|-std=iso9899:1999) fl="";;
+    -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+	    exit 1;;
+  esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+  chmod 755 $pkgdir/usr/bin/c{8,9}9
+
   # install the libstdc++ man pages
-  mkdir -p ${pkgdir}/usr/share/man/man3
-  install -m644 ${srcdir}/man/man3/* ${pkgdir}/usr/share/man/man3/
+  install -dm755 ${pkgdir}/usr/share/man/man3
+  install -m644 ${srcdir}/libstdc++-man.${_libstdcppmanver}/man3/* \
+    ${pkgdir}/usr/share/man/man3/
+  # deal with conflicts...
+  rm -f ${pkgdir}/usr/share/man/man3/{ctime,queue,random,regex,string}.3
+
+  # Install Runtime Library Exception
+  install -Dm644 ${_basedir}/COPYING.RUNTIME \
+    ${pkgdir}/usr/share/licenses/gcc/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-fortran()
+{
+  pkgdesc="Fortran front-end for GCC"
+  depends=("gcc=$pkgver-$pkgrel")
+  install=gcc-fortran.install
+
+  cd ${_basedir}/build
+  make -j1 DESTDIR=$pkgdir install-target-libgfortran
+  make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
+  make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
+  install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951
+  
+  # remove libraries included in gcc-libs
+  rm -f ${pkgdir}/usr/lib/libgfortran.so*
+  
+  # Install Runtime Library Exception
+  install -Dm644 ${_basedir}/COPYING.RUNTIME \
+    ${pkgdir}/usr/share/licenses/gcc-fortran/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-objc()
+{
+  pkgdesc="Objective-C front-end for GCC"
+  depends=("gcc=$pkgver-$pkgrel")
 
-  # Remove libraries and translations in gcc-libs
-  rm -f ${pkgdir}/usr/lib/lib*
-  find ${pkgdir} -name libstdc++.mo -delete
+  cd ${_basedir}/build
+  make -j1 DESTDIR=$pkgdir install-target-libobjc
+  install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+  install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
 
-  # Remove fixed includes, either no need for them, or they're not complete
-  rm -rf ${pkgdir}/usr/lib/${CHOST}/${pkgver}/include-fixed/*
+  # remove libraries included in gcc-libs
+  rm -f ${pkgdir}/usr/lib/libobjc.so*
 
-  rm -f ${pkgdir}/usr/share/info/dir
+  # Install Runtime Library Exception
+  install -Dm644 ${_basedir}/COPYING.RUNTIME \
+    ${pkgdir}/usr/share/licenses/gcc-objc/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-ada()
+{
+  pkgdesc="Ada front-end for GCC (GNAT)"
+  depends=("gcc=$pkgver-$pkgrel")
+  install=gcc-ada.install
+
+  cd ${_basedir}/build/gcc
+  make -j1 DESTDIR=$pkgdir ada.install-{common,info}
+  install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver
+  
+  # Install Runtime Library Exception
+  install -Dm644 ${_basedir}/COPYING.RUNTIME \
+    ${pkgdir}/usr/share/licenses/gcc-ada/RUNTIME.LIBRARY.EXCEPTION
 }
diff --git a/abs/core-testing/gcc/gcc-ada.install b/abs/core-testing/gcc/gcc-ada.install
new file mode 100644
index 0000000..1c8e086
--- /dev/null
+++ b/abs/core-testing/gcc/gcc-ada.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(gnat-style.info gnat_rm.info gnat_ugn.info)
+
+post_install() {
+  [ -x usr/bin/install-info ] || return 0
+  for file in ${filelist[@]}; do
+    install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  [ -x usr/bin/install-info ] || return 0
+  for file in ${filelist[@]}; do
+    install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+  done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core-testing/gcc/gcc-fortran.install b/abs/core-testing/gcc/gcc-fortran.install
new file mode 100644
index 0000000..acffc05
--- /dev/null
+++ b/abs/core-testing/gcc/gcc-fortran.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+file="gfortran.info"
+
+post_install() {
+  [ -x usr/bin/install-info ] || return 0
+  install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  [ -x usr/bin/install-info ] || return 0
+  install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core-testing/gcc/gcc-hash-style-both.patch b/abs/core-testing/gcc/gcc-hash-style-both.patch
index 8fea758..fbb2105 100644
--- a/abs/core-testing/gcc/gcc-hash-style-both.patch
+++ b/abs/core-testing/gcc/gcc-hash-style-both.patch
@@ -78,8 +78,8 @@ exit 0
    { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },	  \
    { "link_arch",	 LINK_ARCH_SPEC },
  
--#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
+-#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
++#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib %{shared:-shared} \
    %{!shared: \
      %{!ibcs: \
        %{!static: \
@@ -87,8 +87,8 @@ exit 0
          %{static:-static}}} \
  "
  
--#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
-+#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,/usr/lib64 %{shared:-shared} \
+-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
    %{!shared: \
      %{!ibcs: \
        %{!static: \
@@ -96,8 +96,8 @@ exit 0
  #else /* !SPARC_BI_ARCH */
  
  #undef LINK_SPEC
--#define LINK_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
-+#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,/usr/lib64 %{shared:-shared} \
+-#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
    %{!shared: \
      %{!ibcs: \
        %{!static: \
diff --git a/abs/core-testing/gcc/gcc-libs.install b/abs/core-testing/gcc/gcc-libs.install
new file mode 100644
index 0000000..bd57efb
--- /dev/null
+++ b/abs/core-testing/gcc/gcc-libs.install
@@ -0,0 +1,14 @@
+infodir=/usr/share/info
+file="libgomp.info"
+
+post_upgrade() {
+  [ -x usr/bin/install-info ] || return 0
+  install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+pre_remove() {
+  [ -x usr/bin/install-info ] || return 0
+  install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core-testing/gcc/gcc.install b/abs/core-testing/gcc/gcc.install
index 1ad170c..83d89b0 100644
--- a/abs/core-testing/gcc/gcc.install
+++ b/abs/core-testing/gcc/gcc.install
@@ -1,9 +1,10 @@
 infodir=/usr/share/info
-filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info gfortran.info libgomb.info treelang.info)
+filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info)
 
 post_install() {
+  [ -x usr/bin/install-info ] || return 0
   for file in ${filelist[@]}; do
-    install-info $infodir/$file $infodir/dir 2> /dev/null
+    install-info $infodir/$file.gz $infodir/dir 2> /dev/null
   done
 }
 
@@ -12,8 +13,9 @@ post_upgrade() {
 }
 
 pre_remove() {
+  [ -x usr/bin/install-info ] || return 0
   for file in ${filelist[@]}; do
-    install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+    install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
   done
 }
 
diff --git a/abs/core-testing/gcc/r160561.patch b/abs/core-testing/gcc/r160561.patch
new file mode 100644
index 0000000..f3c386b
--- /dev/null
+++ b/abs/core-testing/gcc/r160561.patch
@@ -0,0 +1,64 @@
+--- trunk/gcc/tree-sra.c	2010/06/10 16:44:04	160560
++++ trunk/gcc/tree-sra.c	2010/06/10 16:49:09	160561
+@@ -1689,9 +1689,10 @@
+ 
+ /* Build a subtree of accesses rooted in *ACCESS, and move the pointer in the
+    linked list along the way.  Stop when *ACCESS is NULL or the access pointed
+-   to it is not "within" the root.  */
++   to it is not "within" the root.  Return false iff some accesses partially
++   overlap.  */
+ 
+-static void
++static bool
+ build_access_subtree (struct access **access)
+ {
+   struct access *root = *access, *last_child = NULL;
+@@ -1706,24 +1707,32 @@
+ 	last_child->next_sibling = *access;
+       last_child = *access;
+ 
+-      build_access_subtree (access);
++      if (!build_access_subtree (access))
++	return false;
+     }
++
++  if (*access && (*access)->offset < limit)
++    return false;
++
++  return true;
+ }
+ 
+ /* Build a tree of access representatives, ACCESS is the pointer to the first
+-   one, others are linked in a list by the next_grp field.  Decide about scalar
+-   replacements on the way, return true iff any are to be created.  */
++   one, others are linked in a list by the next_grp field.  Return false iff
++   some accesses partially overlap.  */
+ 
+-static void
++static bool
+ build_access_trees (struct access *access)
+ {
+   while (access)
+     {
+       struct access *root = access;
+ 
+-      build_access_subtree (&access);
++      if (!build_access_subtree (&access))
++	return false;
+       root->next_grp = access;
+     }
++  return true;
+ }
+ 
+ /* Return true if expr contains some ARRAY_REFs into a variable bounded
+@@ -2062,9 +2071,7 @@
+       struct access *access;
+ 
+       access = sort_and_splice_var_accesses (var);
+-      if (access)
+-	build_access_trees (access);
+-      else
++      if (!access || !build_access_trees (access))
+ 	disqualify_candidate (var,
+ 			      "No or inhibitingly overlapping accesses.");
+     }
-- 
cgit v0.12


From 61e7a4805f64703c61d6e8a467de8c3060f5588d Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:59:03 -0700
Subject: glib2:Bumped/Updated for LinHES 7.

---
 abs/core-testing/glib2/PKGBUILD | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/abs/core-testing/glib2/PKGBUILD b/abs/core-testing/glib2/PKGBUILD
index db2bcae..32cf552 100644
--- a/abs/core-testing/glib2/PKGBUILD
+++ b/abs/core-testing/glib2/PKGBUILD
@@ -1,30 +1,33 @@
-# $Id: PKGBUILD 34596 2009-04-10 10:17:45Z jgc $
+# $Id: PKGBUILD 79346 2010-05-03 10:44:26Z ibiru $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=glib2
-pkgver=2.20.1
+pkgver=2.24.1
 pkgrel=1
 pkgdesc="Common C routines used by GTK+ 2.4 and other libs"
 url="http://www.gtk.org/"
 arch=(i686 x86_64)
 license=('LGPL')
-depends=('pcre>=7.8')
+depends=('pcre>=8.02')
 makedepends=('pkgconfig')
 options=('!libtool' '!docs')
-source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.20/glib-${pkgver}.tar.bz2
-	glib2.sh
-	glib2.csh)
-md5sums=('d7ef53c7b65827a1baa4bad1c6893fa3'
-         '803017b365bd35dc20b092ce43b8c8c5'
-         '90c7b830bef4baf225c2eb8b7ead0cab')
+source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.24/glib-${pkgver}.tar.bz2
+        glib2.sh
+        glib2.csh)
+sha256sums=('014c3da960bf17117371075c16495f05f36501db990851ceea658f15d2ea6d04'
+            '9456872cdedcc639fb679448d74b85b0facf81033e27157d2861b991823b5a2a'
+            '8d5626ffa361304ad3696493c0ef041d0ab10c857f6ef32116b3e2878ecf89e3')
 
 build() {
   cd "${srcdir}/glib-${pkgver}"
-  ./configure --prefix=/usr --enable-static --enable-shared --with-pcre=system --disable-fam || return 1
+  ./configure --prefix=/usr --enable-static --enable-shared \
+      --with-pcre=system --disable-fam || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
 
   install -d "${pkgdir}/etc/profile.d"
   install -m755 "${srcdir}/glib2.sh" "${pkgdir}/etc/profile.d/" || return 1
   install -m755 "${srcdir}/glib2.csh" "${pkgdir}/etc/profile.d/" || return 1
+
+  chmod 755 ${pkgdir}/usr/bin/gtester-report || return 1
 }
-- 
cgit v0.12


From 60a5bfb4db9124d735d7a6f37781bec87ac5a9a0 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:59:23 -0700
Subject: glibc:Bumped/Updated for LinHES 7.

---
 abs/core-testing/glibc/PKGBUILD                    | 146 ++++++++++++---------
 abs/core-testing/glibc/glibc-2.10-bz4781.patch     |  42 ++++++
 .../glibc/glibc-2.10-dont-build-timezone.patch     |  13 ++
 abs/core-testing/glibc/glibc-__i686.patch          |  13 ++
 abs/core-testing/glibc/glibc.install               | 129 +-----------------
 5 files changed, 162 insertions(+), 181 deletions(-)
 create mode 100644 abs/core-testing/glibc/glibc-2.10-bz4781.patch
 create mode 100644 abs/core-testing/glibc/glibc-2.10-dont-build-timezone.patch
 create mode 100644 abs/core-testing/glibc/glibc-__i686.patch

diff --git a/abs/core-testing/glibc/PKGBUILD b/abs/core-testing/glibc/PKGBUILD
index e7f866f..e31d7b6 100644
--- a/abs/core-testing/glibc/PKGBUILD
+++ b/abs/core-testing/glibc/PKGBUILD
@@ -1,67 +1,69 @@
-# $Id: PKGBUILD 25809 2009-01-29 17:49:56Z aaron $
+# $Id: PKGBUILD 83855 2010-06-23 10:51:26Z allan $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuilt with each new glibc version
 
 pkgname=glibc
-pkgver=2.9
+pkgver=2.12
 pkgrel=4
-_glibcdate=20081119
-install=glibc.install
-backup=(etc/locale.gen)
+_glibcdate=20100620
 pkgdesc="GNU C Library"
-arch=(i686 x86_64)
-license=('GPL' 'LGPL')
+arch=('i686' 'x86_64')
 url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
 groups=('base')
-depends=('kernel-headers>=2.6.27.6' 'tzdata')
-makedepends=('gcc>=4.3.2-2')
+depends=('linux-api-headers>=2.6.34' 'tzdata')
+makedepends=('gcc>=4.4')
 replaces=('glibc-xen')
+backup=(etc/locale.gen
+        etc/nscd.conf)
+options=('!strip')
+install=glibc.install
 source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.bz2
-	ftp://ftp.archlinux.org/other/glibc/glibc-patches-${pkgver}-2.tar.gz
-	nscd
-	locale.gen.txt
-	locale-gen)
-md5sums=('1f7cc590a7a9bbef8b09fe89af69fb8c'
-         '7679e2bcd981847efccb2bad9e57fee3'
+        glibc-2.10-dont-build-timezone.patch
+        glibc-2.10-bz4781.patch
+        glibc-__i686.patch
+        nscd
+        locale.gen.txt
+        locale-gen)    
+md5sums=('8857bfae3e0a659452ddd8f9d2606490'
+         '4dadb9203b69a3210d53514bb46f41c3'
+         '0c5540efc51c0b93996c51b57a8540ae'
+         '40cd342e21f71f5e49e32622b25acc52'
          'b587ee3a70c9b3713099295609afde49'
          '07ac979b6ab5eeb778d55f041529d623'
          '476e9113489f93b348b21e144b6a8fcf')
 
-build() {
-
-  # for cvs checkout
-  mkdir ${srcdir}/glibc-${_glibcdate}
-  cd ${srcdir}/glibc-${_glibcdate}
-  export _TAG=glibc-2_9-branch
-  export 'CVSROOT=:pserver:anoncvs@sources.redhat.com:/cvs/glibc'
-#  cvs -z9 co -r $_TAG libc || return 1
-#  tar -cvjf ../../glibc-2.9_${_glibcdate}.tar.bz2 libc
-#  return 1
-
-  cd ${srcdir}/libc
+mksource() {
+  git clone git://sourceware.org/git/glibc.git
+  pushd glibc
+  git checkout -b glibc-2.12-arch origin/release/2.12/master
+  popd
+  tar -cvjf glibc-${pkgver}_${_glibcdate}.tar.bz2 glibc/*
+}
 
-  # patch from Debian
-  patch -Np1 -i ${srcdir}/glibc-patches/glibc-2.5-localedef_segfault-1.patch || return 1 # still needed?
+build() {
+  cd ${srcdir}/glibc
 
-  # Upstream fixes. See sources.redhat.com bugzilla
-  patch -Np1 -i ${srcdir}/glibc-patches/glibc-2.7-bz4781.patch || return 1
+  # timezone data is in separate package (tzdata)
+  patch -Np1 -i ${srcdir}/glibc-2.10-dont-build-timezone.patch
 
-  # Gentoo fixes
-  patch -Np1 -i ${srcdir}/glibc-patches/glibc-dont-build-timezone.patch || return 1
+  # http://sources.redhat.com/bugzilla/show_bug.cgi?id=4781
+  patch -Np1 -i ${srcdir}/glibc-2.10-bz4781.patch
 
-  # fixes taken from FC10 2.9-3 rpm, fixes FS#12215
-  # see http://sources.redhat.com/bugzilla/show_bug.cgi?id=7060 
-  # see https://bugzilla.redhat.com/show_bug.cgi?id=459756
-  patch -Np1 -i ${srcdir}/glibc-patches/glibc-nss_dns-gethostbyname4-disable.patch || return 1
-  patch -Np1 -i ${srcdir}/glibc-patches/glibc-fixes1.patch || return 1
+  # http://sources.redhat.com/bugzilla/show_bug.cgi?id=411
+  # http://sourceware.org/ml/libc-alpha/2009-07/msg00072.html
+  patch -Np1 -i ${srcdir}/glibc-__i686.patch
 
-  install -m755 -d ${pkgdir}/etc
+  install -dm755 ${pkgdir}/etc
   touch ${pkgdir}/etc/ld.so.conf
 
   mkdir glibc-build
   cd glibc-build
 
-  if [ "${CARCH}" = "i686" ]; then
+  if [[ ${CARCH} = "i686" ]]; then
     # Hack to fix NPTL issues with Xen, only required on 32bit platforms
     export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
   fi
@@ -70,34 +72,41 @@ build() {
 
   ../configure --prefix=/usr \
       --enable-add-ons=nptl,libidn --without-cvs \
-      --enable-kernel=2.6.16 --disable-profile \
+      --enable-kernel=2.6.18 --disable-profile \
       --with-headers=/usr/include --libexecdir=/usr/lib \
       --enable-bind-now --with-tls --with-__thread \
-      --libdir=/usr/lib --without-gd
-    
-  make || return 1
-  make install_root=${pkgdir} install || return 1
+      --libdir=/usr/lib --without-gd --disable-multi-arch
+        
+  make
+}
 
-  rm -f ${pkgdir}/etc/ld.so.cache ${pkgdir}/etc/ld.so.conf ${pkgdir}/etc/localtime
+package() {
+  cd ${srcdir}/glibc/glibc-build
+  make install_root=${pkgdir} install
 
-  install -m755 -d ${pkgdir}/etc/rc.d
-  install -m755 -d ${pkgdir}/usr/sbin
-  install -m755 -d ${pkgdir}/usr/lib/locale
-  install -m644 ${srcdir}/libc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf
+  # provided by kernel-headers
+  rm ${pkgdir}/usr/include/scsi/scsi.h
+
+  rm ${pkgdir}/etc/ld.so.conf
+
+  install -dm755 ${pkgdir}/etc/rc.d
+  install -dm755 ${pkgdir}/usr/sbin
+  install -dm755 ${pkgdir}/usr/lib/locale
+  install -m644 ${srcdir}/glibc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf
   install -m755 ${srcdir}/nscd ${pkgdir}/etc/rc.d/nscd
   install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin
 
-  sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf || return 1
+  sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf
 
   # create /etc/locale.gen
   install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen
-  sed -i "s|/| |g" ${srcdir}/libc/localedata/SUPPORTED
-  sed -i 's|\\| |g' ${srcdir}/libc/localedata/SUPPORTED
-  sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/libc/localedata/SUPPORTED
-  cat ${srcdir}/libc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen
+  sed -i "s|/| |g" ${srcdir}/glibc/localedata/SUPPORTED
+  sed -i 's|\\| |g' ${srcdir}/glibc/localedata/SUPPORTED
+  sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/glibc/localedata/SUPPORTED
+  cat ${srcdir}/glibc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen
   sed -i "s|^|#|g" ${pkgdir}/etc/locale.gen
 
-  if [ "${CARCH}" = "x86_64" ]; then
+  if [[ ${CARCH} = "x86_64" ]]; then
     # fix for the linker
     sed -i '/RTLDLIST/s%/ld-linux.so.2 /lib64%%' ${pkgdir}/usr/bin/ldd
     #Comply with multilib binaries, they look for the linker in /lib64
@@ -105,6 +114,25 @@ build() {
     cd ${pkgdir}/lib64
     ln -v -s ../lib/ld* .
   fi
-
-  rm -f ${pkgdir}/usr/share/info/dir
+  
+  # manually strip files as stripping libpthread-*.so and libthread_db.so
+  # with the default $STRIP_SHARED breaks gdb and stripping ld-*.so breaks
+  # valgrind on x86_64
+
+  cd $pkgdir
+  strip $STRIP_BINARIES sbin/{ldconfig,sln} \
+                        usr/bin/{gencat,getconf,getent,iconv,locale} \
+                        usr/bin/{localedef,pcprofiledump,rpcgen,sprof} \
+                        usr/lib/getconf/* \
+                        usr/sbin/{iconvconfig,nscd,rpcinfo}
+  [[ $CARCH = "i686" ]] && strip $STRIP_BINARIES usr/bin/lddlibc4
+
+  strip $STRIP_STATIC usr/lib/*.a \
+                      lib/{{ld,libpthread}-2.12,libthread_db-1.0}.so
+
+  strip $STRIP_SHARED lib/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-2.12.so \
+                      lib/libnss_{compat,dns,files,hesiod,nis,nisplus}-2.12.so \
+                      lib/{libdl,libm,libnsl,libresolv,librt,libutil}-2.12.so \
+                      lib/{libmemusage,libpcprofile,libSegFault}.so \
+                      usr/lib/{pt_chown,gconv/*.so}
 }
diff --git a/abs/core-testing/glibc/glibc-2.10-bz4781.patch b/abs/core-testing/glibc/glibc-2.10-bz4781.patch
new file mode 100644
index 0000000..cf1a97a
--- /dev/null
+++ b/abs/core-testing/glibc/glibc-2.10-bz4781.patch
@@ -0,0 +1,42 @@
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/i386/clone.S glibc/sysdeps/unix/sysv/linux/i386/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/i386/clone.S	2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/i386/clone.S	2009-05-23 13:27:46.000000000 +1000
+@@ -120,9 +120,6 @@
+ 	ret
+ 
+ L(thread_start):
+-	cfi_startproc;
+-	/* Clearing frame pointer is insufficient, use CFI.  */
+-	cfi_undefined (eip);
+ 	/* Note: %esi is zero.  */
+ 	movl	%esi,%ebp	/* terminate the stack frame */
+ #ifdef RESET_PID
+@@ -155,7 +152,6 @@
+ 	jmp	L(haspid)
+ 	.previous
+ #endif
+-	cfi_endproc;
+ 
+ 	cfi_startproc
+ PSEUDO_END (BP_SYM (__clone))
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S glibc/sysdeps/unix/sysv/linux/x86_64/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S	2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/x86_64/clone.S	2009-05-23 13:27:46.000000000 +1000
+@@ -89,9 +89,6 @@
+ 	ret
+ 
+ L(thread_start):
+-	cfi_startproc;
+-	/* Clearing frame pointer is insufficient, use CFI.  */
+-	cfi_undefined (rip);
+ 	/* Clear the frame pointer.  The ABI suggests this be done, to mark
+ 	   the outermost frame obviously.  */
+ 	xorl	%ebp, %ebp
+@@ -116,7 +113,6 @@
+ 	/* Call exit with return value from function call. */
+ 	movq	%rax, %rdi
+ 	call	HIDDEN_JUMPTARGET (_exit)
+-	cfi_endproc;
+ 
+ 	cfi_startproc;
+ PSEUDO_END (BP_SYM (__clone))
diff --git a/abs/core-testing/glibc/glibc-2.10-dont-build-timezone.patch b/abs/core-testing/glibc/glibc-2.10-dont-build-timezone.patch
new file mode 100644
index 0000000..d3abeff
--- /dev/null
+++ b/abs/core-testing/glibc/glibc-2.10-dont-build-timezone.patch
@@ -0,0 +1,13 @@
+timezone data has been split into the package sys-libs/timezone-data
+
+--- glibc-2.4/Makeconfig
++++ glibc-2.4/Makeconfig
+@@ -931,7 +931,7 @@
+ 	      stdlib stdio-common libio malloc string wcsmbs time dirent    \
+ 	      grp pwd posix io termios resource misc socket sysvipc gmon    \
+ 	      gnulib iconv iconvdata wctype manual shadow gshadow po argp   \
+-	      crypt nss localedata timezone rt conform debug		    \
++	      crypt nss localedata rt conform debug		    \
+ 	      $(add-on-subdirs) $(dlfcn) $(binfmt-subdir)
+ 
+ ifndef avoid-generated
diff --git a/abs/core-testing/glibc/glibc-__i686.patch b/abs/core-testing/glibc/glibc-__i686.patch
new file mode 100644
index 0000000..28d5dd4
--- /dev/null
+++ b/abs/core-testing/glibc/glibc-__i686.patch
@@ -0,0 +1,13 @@
+diff -Naur glibc-old//sysdeps/i386/Makefile glibc//sysdeps/i386/Makefile
+--- glibc-old//sysdeps/i386/Makefile	2010-03-18 11:52:30.000000000 +1000
++++ glibc//sysdeps/i386/Makefile	2010-04-16 15:05:50.000000000 +1000
+@@ -1,6 +1,7 @@
+ # The mpn functions need a #define for asm syntax flavor.
+-# Every i386 port in use uses gas syntax (I think).
+-asm-CPPFLAGS += -DGAS_SYNTAX
++# Every i386 port in use uses gas syntax (I think).  Don't replace
++# __i686 in __i686.get_pc_thunk.bx.
++asm-CPPFLAGS += -DGAS_SYNTAX  -U __i686
+ 
+ # The i386 `long double' is a distinct type we support.
+ long-double-fcts = yes
diff --git a/abs/core-testing/glibc/glibc.install b/abs/core-testing/glibc/glibc.install
index 17c6b5d..0b250b4 100644
--- a/abs/core-testing/glibc/glibc.install
+++ b/abs/core-testing/glibc/glibc.install
@@ -2,135 +2,20 @@ infodir=/usr/share/info
 filelist=(libc.info libc.info-1 libc.info-2 libc.info-3 libc.info-4 libc.info-5 libc.info-6 libc.info-7 
           libc.info-8 libc.info-9 libc.info-10 libc.info-11)
 
-pre_upgrade() {
-if [ "`uname -m`" = "x86_64" ]; then
- if [ "`vercmp $2 2.4`" -lt 0 ]; then
-   cat << _EOF
-  ==> glibc oldpkgver < 2.4 detected!
-  ==> 
-  ==> ATTENTION x86_64 USERS:
-  ==>
-  ==> We now switch from the former lib-linking to pure /lib support. To get rid
-  ==> of all lib64 directories we have removed the link /lib -> /lib64 and
-  ==> /usr/lib -> /usr/lib64.
-  ==> 
-  ==> We have also rebuilt all packages we know that still used lib64 directories.
-  ==> Now all should go to /lib directories.
-  ==> 
-  ==> Internally we have removed the link and then mv /lib64 /lib. Same to /usr/lib64.
-  ==> /lib64 and /usr/lib64 shouldn't exist anymore. If any package still installs to
-  ==> /lib64 or /usr/lib64 let us know.
-  ==>
-_EOF
-
-# now the moving
-rm -rf /lib/tls && echo "/lib/tls removed"
-ldconfig -r .
-rm -f /usr/lib
-mv /usr/lib64 /usr/lib && echo "/usr/lib64 moved"
-rm -f /lib
-mv /lib64 /lib && echo "/lib64 moved"
-
- fi
-fi
-
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
-    usr/bin/install-info $infodir/$file $infodir/dir 2> /dev/null
- done
-}
-
 post_upgrade() {
   ldconfig -r .
-  init u
-
-  if [ "`vercmp $2 2.3.6`" -lt 0 ]; then
-    cat << _EOF
-  ==> ATTENTION INTERNATIONAL USERS:
-  ==>
-  ==> Locales are no longer included in the glibc package.
-  ==> They are generated by /usr/sbin/locale-gen depending on the contents
-  ==> of /etc/locale.gen.
-  ==> glibc will try to autodetect the required locales now, if you need
-  ==> additional locales, please enable them in /etc/locale.gen and run
-  ==> /usr/sbin/locale-gen
-  ==>  
-_EOF
-    # Check active locales, enable the ones that are in use
-    loc=("$LANG"
-         "`grep '^LOCALE=' etc/rc.conf | awk -F '=' '{ print $2 }'`")
-    for l in "${loc[@]}"; do
-      if [ ! -z "${l}" ]; then
-        line="`grep -i "^#${l}[[:space:]]" etc/locale.gen`"
-        if [ ! -z "${line}" ]; then
-          sed -i -e "s|${line}|${line/\#/}|" etc/locale.gen
-        fi
-      fi
-    done
-  fi
-
+  [ -x /sbin/init ] && init u
   usr/sbin/locale-gen
-
-# fix CHOST for arch64
-if [ "`uname -m`" = "x86_64" ]; then
- if [ "`vercmp $2 2.4`" -lt 0 ]; then
-  sed -i s/'x86_64-pc-linux-gnu'/'x86_64-unknown-linux-gnu'/ /etc/makepkg.conf && \
-  echo "in /etc/makepkg.conf CHOST has been changed to \"x86_64-unknown-linux-gnu\""
-
-  # we remove files from glibc 2.3.6 that are not removed automatically
-  rm -f /lib/ld-2.3.* && echo "removing unneeded old files"
-  rm -f /lib/libBrokenLocale-2.3.*
-  rm -f /lib/libNoVersion*
-  rm -f /lib/libanl-2.3.*
-  rm -f /lib/libc-2.3.*
-  rm -f /lib/libcidn-2.3.*
-  rm -f /lib/libcrypt-2.3.*
-  rm -f /lib/libdl-2.3.*
-  rm -f /lib/libm-2.3.*
-  rm -f /lib/libnsl-2.3.*
-  rm -f /lib/libnss1*
-  rm -f /lib/libnss_compat-2.3.*
-  rm -f /lib/libnss_dns-2.3.*
-  rm -f /lib/libnss_dns.so.1
-  rm -f /lib/libnss_files-2.3.*
-  rm -f /lib/libnss_files.so.1
-  rm -f /lib/libnss_hesiod-2.3.*
-  rm -f /lib/libnss_nis-2.3.*
-  rm -f /lib/libnss_nis.so.1
-  rm -f /lib/libnss_nisplus-2.3.*
-  rm -f /lib/libpthread-0.10.so
-  rm -f /lib/libresolv-2.3.*
-  rm -f /lib/librt-2.3.*
-  rm -f /lib/libutil-2.3.*
-  rm -fR /lib/nosegneg
-  #rm -fR /usr/include/asm
-  #rm -fR /usr/include/linux
-  rm -fR /usr/include/ntpl
-  rm -f /usr/lib/libNoVersion*
-  rm -f /usr/lib/libc_stubs.a
-  rm -f /usr/lib/libnss1*
-  rm -f /usr/lib/libnss_compat.so.1
-  rm -f /usr/lib/libnss_dns.so.1
-  rm -f /usr/lib/libnss_files.so.1
-  rm -f /usr/lib/libnss_nis.so.1
-  rm -fR /usr/lib/nptl
-  rm -f /usr/sbin/nscd_nischeck
-  rm -fR /usr/share/zoneinfo/SystemV
-  rm -fR /usr/share/zoneinfo/posix/SystemV
-  rm -fR /usr/share/zoneinfo/right/SystemV
-  ldconfig -r .
- fi
-fi
-
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
-    usr/bin/install-info $infodir/$file $infodir/dir 2> /dev/null
- done
+  
+  [ -x usr/bin/install-info ] || return 0
+  for file in ${filelist[@]}; do
+    usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+  done
 }
 
 pre_remove() {
   [ -x usr/bin/install-info ] || return 0
   for file in ${filelist[@]}; do
-    usr/bin/install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+    usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
   done
 }
-- 
cgit v0.12


From 467ba164297be9050c3374a43e6cff94458a1e33 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:59:33 -0700
Subject: gmp:Bumped/Updated for LinHES 7.

---
 abs/core-testing/gmp/PKGBUILD    | 24 ++++++++++++------------
 abs/core-testing/gmp/gmp.install |  2 ++
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/abs/core-testing/gmp/PKGBUILD b/abs/core-testing/gmp/PKGBUILD
index b747f73..0eee2df 100644
--- a/abs/core-testing/gmp/PKGBUILD
+++ b/abs/core-testing/gmp/PKGBUILD
@@ -1,27 +1,27 @@
-# $Id: PKGBUILD 14742 2008-10-10 10:19:37Z allan $
+# $Id: PKGBUILD 72634 2010-03-19 02:57:15Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
 # Maintainer: Jan de Groot <jgc@archlinux.org>
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
+
 pkgname=gmp
-pkgver=4.2.4
-pkgrel=1.1
+pkgver=5.0.1
+pkgrel=1
 pkgdesc="A free library for arbitrary precision arithmetic"
-arch=(i686 x86_64)
-depends=('gcc-libs' 'texinfo')
+arch=('i686' 'x86_64')
+url="http://gmplib.org/"
+depends=('gcc-libs' 'sh')
 license=('LGPL3')
 options=(!libtool)
 install=gmp.install
 source=(ftp://ftp.gnu.org/gnu/gmp/gmp-${pkgver}.tar.bz2)
-url="http://gmplib.org/"
-md5sums=('fc1e3b3a2a5038d4d74138d0b9cf8dbe')
+md5sums=('6bac6df75c192a13419dfd71d19240a7')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   [ "${CARCH}" = "i686" ] && export ABI="32"
-  ./configure --prefix=/usr --enable-cxx --infodir=/usr/share/info || return 1
+  ./configure --build=$CHOST \
+    --prefix=/usr --infodir=/usr/share/info \
+    --enable-cxx || return 1
   make || return 1
   make check || return 1
   make DESTDIR="${pkgdir}" install || return 1
-  cd "${pkgdir}/usr/share/info"
-  rm -f dir
-  gzip * || return 1
 }
diff --git a/abs/core-testing/gmp/gmp.install b/abs/core-testing/gmp/gmp.install
index 4f756bd..1c31ab3 100644
--- a/abs/core-testing/gmp/gmp.install
+++ b/abs/core-testing/gmp/gmp.install
@@ -2,6 +2,7 @@ info_dir=/usr/share/info
 info_files=(gmp.info gmp.info-1 gmp.info-2)
 
 post_install() {
+  [ -x usr/bin/install-info ] || return 0
   for f in ${info_files[@]}; do
     install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
   done
@@ -12,6 +13,7 @@ post_upgrade() {
 }
 
 pre_remove() {
+  [ -x usr/bin/install-info ] || return 0
   for f in ${info_files[@]}; do
     install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
   done
-- 
cgit v0.12


From 3060c339e09f01ad667684829b8637544f4ccebd Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:59:45 -0700
Subject: gnutls:Bumped/Updated for LinHES 7.

---
 abs/core-testing/gnutls/PKGBUILD       | 12 ++++--------
 abs/core-testing/gnutls/gnutls.install |  4 ++--
 2 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/abs/core-testing/gnutls/PKGBUILD b/abs/core-testing/gnutls/PKGBUILD
index 6948722..cd95ffd 100644
--- a/abs/core-testing/gnutls/PKGBUILD
+++ b/abs/core-testing/gnutls/PKGBUILD
@@ -1,11 +1,8 @@
-# $Id: PKGBUILD 35543 2009-04-13 20:57:08Z jgc $
+# $Id: PKGBUILD 72984 2010-03-21 17:04:24Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
-# Notice:
-# When building a new major version, build, install, build again.
-#
 pkgname=gnutls
-pkgver=2.6.5
+pkgver=2.8.6
 pkgrel=1
 pkgdesc="A library which provides a secure layer over a reliable transport layer"
 arch=(i686 x86_64)
@@ -13,14 +10,13 @@ license=('GPL3' 'LGPL')
 url="http://www.gnu.org/software/gnutls/"
 install=gnutls.install
 options=('libtool')
-depends=('gcc-libs>=4.3.3' 'libtasn1>=2.0' 'readline' 'zlib' 'libgcrypt>=1.4.4')
+depends=('gcc-libs>=4.4.3' 'libtasn1>=2.5' 'readline>=6.0' 'zlib' 'libgcrypt>=1.4.5' 'texinfo')
 source=(ftp://ftp.gnu.org/gnu/gnutls/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('92b92c36b616aa8bd69a9a0fb2b8eb24')
+md5sums=('eb0a6d7d3cb9ac684d971c14f9f6d3ba')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr --with-zlib --disable-guile || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
-  rm -f "${pkgdir}/usr/share/info/dir"
 }
diff --git a/abs/core-testing/gnutls/gnutls.install b/abs/core-testing/gnutls/gnutls.install
index 0cf66fa..b9a5bae 100644
--- a/abs/core-testing/gnutls/gnutls.install
+++ b/abs/core-testing/gnutls/gnutls.install
@@ -3,7 +3,7 @@ filelist=(gnutls.info gnutls.info-1 gnutls.info-2 gnutls.info-3)
 
 post_install() {
   for file in ${filelist[@]}; do
-    install-info $infodir/$file $infodir/dir 2> /dev/null
+    install-info $infodir/$file.gz $infodir/dir 2> /dev/null
   done
 }
 
@@ -13,6 +13,6 @@ post_upgrade() {
 
 pre_remove() {
   for file in ${filelist[@]}; do
-    install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+    install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
   done
 }
-- 
cgit v0.12


From e8291e84a75d1370c3284ece8dd0744f8e563296 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:00:11 -0700
Subject: gobject-introspection:Bumped/Updated for LinHES 7.

---
 abs/core-testing/gobject-introspection/PKGBUILD | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 abs/core-testing/gobject-introspection/PKGBUILD

diff --git a/abs/core-testing/gobject-introspection/PKGBUILD b/abs/core-testing/gobject-introspection/PKGBUILD
new file mode 100644
index 0000000..179c5bf
--- /dev/null
+++ b/abs/core-testing/gobject-introspection/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 81938 2010-06-07 11:01:46Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=gobject-introspection
+pkgver=0.6.14
+pkgrel=1
+pkgdesc="Introspection system for GObject-based libraries"
+url="http://live.gnome.org/GObjectInstrospection"
+arch=('x86_64' 'i686')
+license=('LGPL' 'GPL')
+depends=('libffi>=3.0.8' 'glib2>=2.24.1' 'python' 'cairo>=1.8.10')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.6/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('c4713bcbcebb06861738a8f630ab05289666e631f42f7abbf2e836978db7eba6')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr --disable-static || return 1
+  make || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+}
-- 
cgit v0.12


From 6471f8824f40b1285d2f017c9fcba86018f95198 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:00:24 -0700
Subject: gtk2:Bumped/Updated for LinHES 7.

---
 abs/core-testing/gtk2/PKGBUILD                  | 34 +++++++++++++------------
 abs/core-testing/gtk2/revert_64bit_fix.patch    | 31 ++++++++++++++++++++++
 abs/core-testing/gtk2/xid-collision-debug.patch | 15 +++++++++++
 3 files changed, 64 insertions(+), 16 deletions(-)
 create mode 100644 abs/core-testing/gtk2/revert_64bit_fix.patch
 create mode 100644 abs/core-testing/gtk2/xid-collision-debug.patch

diff --git a/abs/core-testing/gtk2/PKGBUILD b/abs/core-testing/gtk2/PKGBUILD
index 6cdc6e1..7d9c9f9 100644
--- a/abs/core-testing/gtk2/PKGBUILD
+++ b/abs/core-testing/gtk2/PKGBUILD
@@ -1,35 +1,37 @@
-# $Id: PKGBUILD 35332 2009-04-12 12:46:16Z jgc $
+# $Id: PKGBUILD 79610 2010-05-04 20:23:20Z ibiru $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=gtk2
-pkgver=2.16.1
-pkgrel=6
+pkgver=2.20.1
+pkgrel=2
 pkgdesc="The GTK+ Toolkit (v2)"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
 url="http://www.gtk.org/"
 install=gtk2.install
-depends=('atk>=1.26.0' 'pango>=1.24.0-2' 'libxcursor' 'libxinerama' 'libxrandr>=1.3.0' 'libxi>=1.2.1' 'libcups>=1.3.9' 'libxcomposite' 'libxdamage' 'heimdal>=1.2.1' 'gnutls>=2.6.4' 'shared-mime-info')
-makedepends=('pkgconfig')
+depends=('atk>=1.30.0' 'pango>=1.28.0' 'libxcursor' 'libxinerama' 'libxrandr>=1.3.0' 'libxi>=1.3' 'libxcomposite' 'libxdamage' 'heimdal>=1.3.2' 'gnutls>=2.8.6' 'shared-mime-info' 'cairo>=1.8.10' 'libtiff>=3.9.2-2' 'libcups>=1.4.2-3')
+makedepends=('pkgconfig' 'gtk-doc' 'gobject-introspection')
 replaces=('gtkprint-cups' 'gail')
 conflicts=('gtkprint-cups' 'gail')
 provides=('gail=1.22.3')
 options=('!libtool' '!docs')
 backup=(etc/gtk-2.0/gtkrc)
 license=('LGPL')
-source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/2.16/gtk+-${pkgver}.tar.bz2
-	gtkclipboard-check.patch)
-md5sums=('74e35ff3e6e02c960fe2117a4b6b102f'
-         '4025d3c15d6c6f73a032f403ffd4ff1c')
+source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/2.20/gtk+-${pkgver}.tar.bz2
+        xid-collision-debug.patch
+	revert_64bit_fix.patch)
+sha256sums=('0e081731d21e34ff45c82199490c2889504fa8b3c7e117c043e82ababaec0f65'
+            'd758bb93e59df15a4ea7732cf984d1c3c19dff67c94b957575efea132b8fe558'
+	    '20f3a03760f765b68b85b614810e5df4a689b609da1ae200aa30072475121b4c')
 
 build() {
   cd "${srcdir}/gtk+-${pkgver}"
-  # Workaround patch for flash
-  patch -Np1 -i "${srcdir}/gtkclipboard-check.patch" || return 1
+  patch -Np1 -i "${srcdir}/xid-collision-debug.patch" || return 1
+  patch -RNp1 -i ${srcdir}/revert_64bit_fix.patch || retun 1
 
-  ./configure --prefix=/usr --sysconfdir=/etc \
-              --localstatedir=/var --with-xinput=yes \
-	      --without-libjasper \
-	      --with-included-loaders=png || return 1
+  CXX=/bin/false ./configure --prefix=/usr --sysconfdir=/etc \
+      --localstatedir=/var --with-xinput=yes \
+      --without-libjasper \
+      --with-included-loaders=png || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
 
diff --git a/abs/core-testing/gtk2/revert_64bit_fix.patch b/abs/core-testing/gtk2/revert_64bit_fix.patch
new file mode 100644
index 0000000..a6453e3
--- /dev/null
+++ b/abs/core-testing/gtk2/revert_64bit_fix.patch
@@ -0,0 +1,31 @@
+From a0f23e1706b34bca6a65183040d1f1498cce2a50 Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen@redhat.com>
+Date: Thu, 25 Mar 2010 04:55:15 +0000
+Subject: Fix a 64bit issue
+
+Thank you libpng, for typedef unsigned long png_uint_32.
+---
+diff --git a/gdk-pixbuf/io-png.c b/gdk-pixbuf/io-png.c
+index c0374ca..43db70a 100644
+--- a/gdk-pixbuf/io-png.c
++++ b/gdk-pixbuf/io-png.c
+@@ -261,7 +261,7 @@ gdk_pixbuf__png_image_load (FILE *f, GError **error)
+         gchar *icc_profile_base64;
+         const gchar *icc_profile_title;
+         const gchar *icc_profile;
+-        guint icc_profile_size;
++        gulong icc_profile_size;
+         guint32 retval;
+         gint compression_type;
+ 
+@@ -607,7 +607,7 @@ png_info_callback   (png_structp png_read_ptr,
+         gchar *icc_profile_base64;
+         const gchar *icc_profile_title;
+         const gchar *icc_profile;
+-        guint icc_profile_size;
++        gulong icc_profile_size;
+         guint32 retval;
+         gint compression_type;
+ 
+--
+cgit v0.8.3.1
diff --git a/abs/core-testing/gtk2/xid-collision-debug.patch b/abs/core-testing/gtk2/xid-collision-debug.patch
new file mode 100644
index 0000000..d61238c
--- /dev/null
+++ b/abs/core-testing/gtk2/xid-collision-debug.patch
@@ -0,0 +1,15 @@
+--- gtk+-2.18.3/gdk/x11/gdkxid.c	2009-06-19 04:59:18.000000000 +0200
++++ gtk+-2.18.3/gdk/x11/gdkxid.c.new	2009-07-22 11:30:12.000000000 +0200
+@@ -56,10 +56,10 @@
+   if (!display_x11->xid_ht)
+     display_x11->xid_ht = g_hash_table_new ((GHashFunc) gdk_xid_hash,
+ 					    (GEqualFunc) gdk_xid_equal);
+-
++/*
+   if (g_hash_table_lookup (display_x11->xid_ht, xid))
+     g_warning ("XID collision, trouble ahead");
+-
++*/
+   g_hash_table_insert (display_x11->xid_ht, xid, data);
+ }
+ 
-- 
cgit v0.12


From f981fba17589b6b5df112a62ea910525d9fa6cce Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:00:33 -0700
Subject: hal-info:Bumped/Updated for LinHES 7.

---
 abs/core-testing/hal-info/PKGBUILD | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/abs/core-testing/hal-info/PKGBUILD b/abs/core-testing/hal-info/PKGBUILD
index a7f8dd0..ca6f5ad 100644
--- a/abs/core-testing/hal-info/PKGBUILD
+++ b/abs/core-testing/hal-info/PKGBUILD
@@ -1,20 +1,22 @@
-# $Id: PKGBUILD 22303 2008-12-25 18:44:16Z jgc $
+# $Id: PKGBUILD 61557 2009-12-19 19:17:15Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=hal-info
-_date=20081219
+_date=20091130
 pkgver=0.${_date}
 pkgrel=1
 pkgdesc="Hardware Abstraction Layer information files"
-arch=(i686 x86_64)
+arch=(any)
 license=('GPL' 'custom')
 url="http://www.freedesktop.org/wiki/Software/hal"
 source=(http://hal.freedesktop.org/releases/hal-info-${_date}.tar.gz)
-md5sums=('be7d6d47fd18250a99a3267e712d8af7')
+md5sums=('34375489a02a00b250fdc0b280be11b8')
 
 build() {
   cd "${srcdir}/${pkgname}-${_date}"
-  ./configure --prefix=/usr --sysconfdir=/etc || return 1
+  ./configure --prefix=/usr --sysconfdir=/etc \
+    --enable-killswitch-dell-wlan=no --enable-killswitch-dell-bluetooth=no \
+    --enable-killswitch-dell-wwan=no || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
 
-- 
cgit v0.12


From a5ecb8225388941a95fdc3d8dd2f16a0736cb956 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:00:44 -0700
Subject: hal:Bumped/Updated for LinHES 7.

---
 abs/core-testing/hal/PKGBUILD                      | 104 ++++++----
 abs/core-testing/hal/dbus-error-init.patch         | 231 +++++++++++++++++++++
 abs/core-testing/hal/fix-libusb-detection.patch    |  66 ++++++
 abs/core-testing/hal/hal-HDAPS-blacklist.patch     |  30 +++
 abs/core-testing/hal/hal-KVM-evdev.patch           |  36 ++++
 .../hal/hal-remove-dell-killswitch.patch           | 201 ++++++++++++++++++
 abs/core-testing/hal/hal-use-at-console.patch      |  45 ++++
 abs/core-testing/hal/hal-xen-unignore-axes.patch   |  39 ++++
 abs/core-testing/hal/hal.install                   |  15 +-
 abs/core-testing/hal/handle-input-touchpad.patch   | 101 +++++++++
 abs/core-testing/hal/macbook-fix-ioperm.patch      |  41 ++++
 abs/core-testing/hal/path-max.patch                |  31 +++
 12 files changed, 892 insertions(+), 48 deletions(-)
 create mode 100644 abs/core-testing/hal/dbus-error-init.patch
 create mode 100644 abs/core-testing/hal/fix-libusb-detection.patch
 create mode 100644 abs/core-testing/hal/hal-HDAPS-blacklist.patch
 create mode 100644 abs/core-testing/hal/hal-KVM-evdev.patch
 create mode 100644 abs/core-testing/hal/hal-remove-dell-killswitch.patch
 create mode 100644 abs/core-testing/hal/hal-use-at-console.patch
 create mode 100644 abs/core-testing/hal/hal-xen-unignore-axes.patch
 create mode 100644 abs/core-testing/hal/handle-input-touchpad.patch
 create mode 100644 abs/core-testing/hal/macbook-fix-ioperm.patch
 create mode 100644 abs/core-testing/hal/path-max.patch

diff --git a/abs/core-testing/hal/PKGBUILD b/abs/core-testing/hal/PKGBUILD
index f3e48cc..6e928fd 100644
--- a/abs/core-testing/hal/PKGBUILD
+++ b/abs/core-testing/hal/PKGBUILD
@@ -1,59 +1,83 @@
-# $Id: PKGBUILD 12450 2008-09-14 10:49:05Z pierre $
+# $Id: PKGBUILD 82401 2010-06-10 21:48:17Z thomas $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Link Dupont <link@subpop.net>
 
 pkgname=hal
-pkgver=0.5.11
-pkgrel=5
+pkgver=0.5.14
+pkgrel=4
 pkgdesc="Hardware Abstraction Layer"
 arch=(i686 x86_64)
 license=('GPL' 'custom')
 url="http://www.freedesktop.org/wiki/Software/hal"
-depends=('dbus-glib>=0.74' 'dbus>=1.2.1' 'libusb>=0.1.12' 'udev>=118' 'filesystem>=0.7.1-5' 'hal-info>=0.20080508' 'eject' 'libsmbios>=2.0.2' 'dmidecode' 'pciutils>=2.2.8-3' 'usbutils>=0.73-5' 'pm-utils>=1.1.2')
+depends=('dbus-glib>=0.82' 'libusb>=0.1.12' 'udev>=146' 'filesystem>=0.7.1-5' 'hal-info>=0.20090716' 'eject' 'dmidecode' 'pciutils>=3.0.2' 'usbutils>=0.73-5' 'pm-utils>=1.2.5' 'consolekit>=0.4.1' 'util-linux-ng>=2.16')
 makedepends=('pkgconfig' 'gperf')
-options=('!libtool')
+options=('!libtool' '!makeflags')
 install=hal.install
-source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.bz2
-	hal
-	hal-policy.patch
-	cryptsetup_location.patch
-	hal-0.5.9-hide-diagnostic.patch
-	ntfs3g-valid-options.patch
-	fix-udev-compatibility.patch
-	ntfs-mount-fix.patch)
-md5sums=('5e8935ab61bcb14afd2d4548084aace0'
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz
+        hal
+        hal-0.5.9-hide-diagnostic.patch
+        hal-remove-dell-killswitch.patch
+        hal-KVM-evdev.patch
+        hal-HDAPS-blacklist.patch
+        hal-xen-unignore-axes.patch
+        hal-use-at-console.patch
+        fix-libusb-detection.patch
+        dbus-error-init.patch
+        path-max.patch
+        handle-input-touchpad.patch
+        macbook-fix-ioperm.patch)
+md5sums=('e9163df591a6f38f59fdbfe33e73bf20'
          '277e96ac130d7bfce0b30f0b80db8782'
-         '18dcdaa79952e2057c2e4745fbc8ad52'
-         'c688a3c6574699365926f4fef7441545'
          '4d4b6801a1cedca22b8bdd9db73b16fb'
-         '4242a2c78885e396f639d0cd5e33218c'
-         '1a33d73fa422df2f05b7e3483836f778'
-         '96cf8835c30dc581c4fcf72b6ad7675e')
+         '6d87c3e63184ae3a69caafc846f538a3'
+         '6507e5091ee2d11a87ae738a8e2caecb'
+         '1171c2d83b76059f2da7a3538e08fa4e'
+         '52bd305299aa22ae07f1a862c22d30fa'
+         '3f11234fb5e5044fbfc5199ec65b182c'
+         'da088f12cfc2d190bbf95b747e19ab9e'
+         '634f4ec2203eff7de8fa2ed2c6b9cbe0'
+         'f8c9b3a40d03907b498feef571d42466'
+         '0575677614db0632b17b1a719798c7e0'
+         '46a5db3ff896ee37762aa8d7e70942c4')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  patch -Np1 -i ${startdir}/src/hal-policy.patch || return 1
-  patch -Np1 -i ${startdir}/src/cryptsetup_location.patch || return 1
-  patch -Np1 -i ${startdir}/src/hal-0.5.9-hide-diagnostic.patch || return 1
-  patch -Np0 -i ${startdir}/src/ntfs3g-valid-options.patch || return 1
-  # Fix compatibility with udev 126 and later
-  patch -Np1 -i ${startdir}/src/fix-udev-compatibility.patch || return 1
-  patch -p0 -i ${srcdir}/ntfs-mount-fix.patch || return 1
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -Np1 -i "${srcdir}/hal-0.5.9-hide-diagnostic.patch" || return 1
+  patch -Np1 -i "${srcdir}/hal-remove-dell-killswitch.patch" || return 1
+  patch -Np1 -i "${srcdir}/hal-KVM-evdev.patch" || return 1
+  patch -Np1 -i "${srcdir}/hal-HDAPS-blacklist.patch" || return 1
+  patch -Np1 -i "${srcdir}/hal-xen-unignore-axes.patch" || return 1
+  patch -Np1 -i "${srcdir}/hal-use-at-console.patch" || return 1
+  patch -Np1 -i "${srcdir}/fix-libusb-detection.patch" || return 1
+  patch -Np1 -i "${srcdir}/dbus-error-init.patch" || return 1
+  patch -Np1 -i "${srcdir}/path-max.patch" || return 1
+  patch -Np1 -i "${srcdir}/handle-input-touchpad.patch" || return 1
+  patch -Np1 -i "${srcdir}/macbook-fix-ioperm.patch" || return 1
+  
+  libtoolize --force || return 1
+  aclocal || return 1
+  autoconf || return 1
+  automake || return 1
 
   ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
-              --libexecdir=/usr/lib/hal --enable-static=no \
-	      --enable-acpi-ibm --enable-acpi-toshiba \
-              --disable-docbook-docs --disable-doxygen-docs \
-	      --with-hal-user=hal --with-hal-group=hal \
-	      --with-pid-file=/var/run/hald.pid \
-	      --enable-policy-kit=no || return 1
-  sed -e 's/device-manager//' -i tools/Makefile || return 1
+      --libexecdir=/usr/lib/hal --with-udev-prefix=/etc \
+      --enable-static=no --disable-acpi-ibm \
+      --disable-docbook-docs --disable-console-kit \
+      --disable-policy-kit --disable-acl-management \
+      --enable-umount-helper --disable-smbios \
+      --with-hal-user=hal --with-hal-group=hal \
+      --with-pid-file=/var/run/hald.pid \
+      --disable-gtk-doc || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-  install -m755 -d ${startdir}/pkg/etc/rc.d
-  install -m755 -d ${startdir}/pkg/media || return 1
-  install -m 755 ${startdir}/src/hal ${startdir}/pkg/etc/rc.d/hal || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/etc/rc.d"
+  install -m755 -d "${pkgdir}/media" || return 1
+  install -m755 "${srcdir}/hal" "${pkgdir}/etc/rc.d/" || return 1
 
-  install -m755 -d ${startdir}/pkg/usr/share/licenses/${pkgname}
-  install -m644 COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/ || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+  
+  # Fix udev rule location
+  install -d -m755 "${pkgdir}/lib"
+  mv "${pkgdir}/etc/udev" "${pkgdir}/lib/"
 }
diff --git a/abs/core-testing/hal/dbus-error-init.patch b/abs/core-testing/hal/dbus-error-init.patch
new file mode 100644
index 0000000..fb3ad02
--- /dev/null
+++ b/abs/core-testing/hal/dbus-error-init.patch
@@ -0,0 +1,231 @@
+From dcb2829b8eff61463b0869614ddb07b1c86cecaa Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+Date: Wed, 30 Dec 2009 11:42:52 +0000
+Subject: linux/probe-input: don't use error prio init
+
+it may happen in the out: case that LIBHAL_FREE_DBUS_ERROR (&error) is
+called before the error structure is initialized via
+dbus_error_init (&error). This could lead to a segfault during startup
+as seen in dmesg:
+
+|Intel AES-NI instructions are not detected.
+|padlock: VIA PadLock not detected.
+|hald-probe-inpu[1793]: segfault at 2 ip 00007f656fb68969 sp 00007fff39eeb950 error 4 in libc-2.10.2.so[7f656faf3000+14a000]
+|hald-probe-inpu[1796]: segfault at 2 ip 00007fa2c3293969 sp 00007fffd92a5dd0 error 4 in libc-2.10.2.so[7fa2c321e000+14a000]
+|hald-probe-inpu[1797]: segfault at 2 ip 00007f1d08ba2969 sp 00007fff34244e30 error 4 in libc-2.10.2.so[7f1d08b2d000+14a000]
+|hald-probe-inpu[1799]: segfault at 2 ip 00007f35c0e3d969 sp 00007fffe5ec7ee0 error 4 in libc-2.10.2.so[7f35c0dc8000+14a000]
+|hald-probe-inpu[1800]: segfault at 2 ip 00007f931c556969 sp 00007fffe1825b60 error 4 in libc-2.10.2.so[7f931c4e1000+14a000]
+|hald-probe-inpu[1801]: segfault at 2 ip 00007f5156d9a969 sp 00007fff4e620af0 error 4 in libc-2.10.2.so[7f5156d25000+14a000]
+|RPC: Registered udp transport module.
+|RPC: Registered tcp transport module.
+
+What I run into seems to be reported as Debian #562068 [0]. This patch
+makes the segfault go away on my machine.
+
+[0] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562068
+
+Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
+---
+diff --git a/hald/linux/probing/probe-input.c b/hald/linux/probing/probe-input.c
+index 94e9929..cad47d3 100644
+--- a/hald/linux/probing/probe-input.c
++++ b/hald/linux/probing/probe-input.c
+@@ -70,6 +70,7 @@ main (int argc, char *argv[])
+ 	fd = -1;
+ 
+ 	setup_logger ();
++	dbus_error_init (&error);
+ 
+ 	button_type = getenv ("HAL_PROP_BUTTON_TYPE");
+ 	if (button_type == NULL)
+@@ -96,7 +97,6 @@ main (int argc, char *argv[])
+ 	if (udi == NULL)
+ 		goto out;
+ 
+-	dbus_error_init (&error);
+ 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ 		goto out;
+ 
+--
+cgit v0.8.3-6-g21f6
+From baa61a879985d63f549854518ef14efd40e62e8c Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones@redhat.com>
+Date: Wed, 24 Feb 2010 16:19:28 +0000
+Subject: Make sure dbus_error_init() is called before LIBHAL_FREE_DBUS_ERROR()
+
+If dbus_error_init() is not called before LIBHAL_FREE_DBUS_ERROR() is
+called on that error, then it is uninitialized and may segfault.  This
+means that dbus_error_init() must be called before any "goto out" if
+"out:" calls LIBHAL_FREE_DBUS_ERROR().
+
+Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
+---
+diff --git a/hald/linux/probing/probe-hiddev.c b/hald/linux/probing/probe-hiddev.c
+index 45d2084..bffc040 100644
+--- a/hald/linux/probing/probe-hiddev.c
++++ b/hald/linux/probing/probe-hiddev.c
+@@ -57,11 +57,12 @@ main (int argc, char *argv[])
+ 	/* assume failure */
+ 	ret = 1;
+ 
++	dbus_error_init (&error);
++
+ 	udi = getenv ("UDI");
+ 	if (udi == NULL)
+ 		goto out;
+ 
+-	dbus_error_init (&error);
+ 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ 		goto out;
+ 
+diff --git a/hald/linux/probing/probe-ieee1394-unit.c b/hald/linux/probing/probe-ieee1394-unit.c
+index 70b0f86..aaa92e2 100644
+--- a/hald/linux/probing/probe-ieee1394-unit.c
++++ b/hald/linux/probing/probe-ieee1394-unit.c
+@@ -388,6 +388,8 @@ int main (int argc, char *argv[])
+ 
+ 	setup_logger ();
+ 
++	dbus_error_init (&error);
++
+ 	udi = getenv ("UDI");
+ 	if (udi == NULL)
+ 		goto out;
+@@ -396,7 +398,6 @@ int main (int argc, char *argv[])
+ 	if (ieee1394_udi == NULL)
+ 		goto out;
+ 
+-	dbus_error_init (&error);
+ 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ 		goto out;
+ 
+diff --git a/hald/linux/probing/probe-net-bluetooth.c b/hald/linux/probing/probe-net-bluetooth.c
+index 0b1b912..e911eea 100644
+--- a/hald/linux/probing/probe-net-bluetooth.c
++++ b/hald/linux/probing/probe-net-bluetooth.c
+@@ -141,6 +141,8 @@ main (int argc, char *argv[])
+ 	DBusMessage *reply = NULL;
+ 	DBusError error;
+ 
++	dbus_error_init (&error);
++
+ 	udi = getenv ("UDI");
+ 	if (udi == NULL)
+ 		goto out;
+@@ -151,8 +153,6 @@ main (int argc, char *argv[])
+ 
+ 	HAL_INFO (("Investigating '%s'", iface));
+ 
+-	dbus_error_init (&error);
+-
+ 	if ((conn = dbus_bus_get (DBUS_BUS_SYSTEM, &error)) == NULL)
+ 		goto out;
+ 
+diff --git a/hald/linux/probing/probe-printer.c b/hald/linux/probing/probe-printer.c
+index 91ed7bc..7c6d1c6 100644
+--- a/hald/linux/probing/probe-printer.c
++++ b/hald/linux/probing/probe-printer.c
+@@ -66,6 +66,8 @@ main (int argc, char *argv[])
+ 	ret = 1;
+ 
+ 	setup_logger ();
++
++	dbus_error_init (&error);
+ 	
+ 	udi = getenv ("UDI");
+ 	if (udi == NULL) {
+@@ -73,7 +75,6 @@ main (int argc, char *argv[])
+ 		goto out;
+ 	}
+ 
+-	dbus_error_init (&error);
+ 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL) {
+ 		HAL_ERROR (("ctx init failed"));
+ 		goto out;
+diff --git a/hald/linux/probing/probe-smbios.c b/hald/linux/probing/probe-smbios.c
+index 0bc9689..15c0d4f 100644
+--- a/hald/linux/probing/probe-smbios.c
++++ b/hald/linux/probing/probe-smbios.c
+@@ -129,6 +129,8 @@ main (int argc, char *argv[])
+ 	ret = 1;
+ 
+ 	setup_logger ();
++
++	dbus_error_init (&error);
+ 	
+ 	udi = getenv ("UDI");
+ 	if (udi == NULL) {
+@@ -136,7 +138,6 @@ main (int argc, char *argv[])
+ 		goto out;
+ 	}
+ 
+-	dbus_error_init (&error);
+ 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL) {
+ 		HAL_ERROR (("ctx init failed"));
+ 		goto out;
+diff --git a/hald/linux/probing/probe-storage.c b/hald/linux/probing/probe-storage.c
+index 824a82e..dd524ca 100644
+--- a/hald/linux/probing/probe-storage.c
++++ b/hald/linux/probing/probe-storage.c
+@@ -109,6 +109,8 @@ main (int argc, char *argv[])
+ 	/* assume failure */
+ 	ret = 1;
+ 
++	dbus_error_init (&error);
++
+ 	if ((udi = getenv ("UDI")) == NULL)
+ 		goto out;
+ 	if ((device_file = getenv ("HAL_PROP_BLOCK_DEVICE")) == NULL)
+@@ -127,7 +129,6 @@ main (int argc, char *argv[])
+ 	else
+ 		only_check_for_fs = FALSE;
+ 
+-	dbus_error_init (&error);
+ 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ 		goto out;
+ 
+diff --git a/hald/linux/probing/probe-video4linux.c b/hald/linux/probing/probe-video4linux.c
+index cf913c0..7bc13e8 100644
+--- a/hald/linux/probing/probe-video4linux.c
++++ b/hald/linux/probing/probe-video4linux.c
+@@ -58,6 +58,8 @@ main (int argc, char *argv[])
+ 
+ 	setup_logger ();
+ 
++	dbus_error_init (&error);
++
+ 	device_file = getenv ("HAL_PROP_VIDEO4LINUX_DEVICE");
+ 	if (device_file == NULL)
+ 		goto out;
+@@ -66,7 +68,6 @@ main (int argc, char *argv[])
+ 	if (udi == NULL)
+ 		goto out;
+ 
+-	dbus_error_init (&error);
+ 	ctx = libhal_ctx_init_direct (&error);
+ 	if (ctx == NULL)
+ 		goto out;
+diff --git a/hald/linux/probing/probe-volume.c b/hald/linux/probing/probe-volume.c
+index 0de1b91..7268fff 100644
+--- a/hald/linux/probing/probe-volume.c
++++ b/hald/linux/probing/probe-volume.c
+@@ -318,6 +318,8 @@ main (int argc, char *argv[])
+ 	/* assume failure */
+ 	ret = 1;
+ 
++	dbus_error_init (&error);
++
+ 	if ((udi = getenv ("UDI")) == NULL)
+ 		goto out;
+ 	if ((device_file = getenv ("HAL_PROP_BLOCK_DEVICE")) == NULL)
+@@ -346,7 +348,6 @@ main (int argc, char *argv[])
+ 
+ 	fsusage = getenv ("HAL_PROP_VOLUME_FSUSAGE");
+ 
+-	dbus_error_init (&error);
+ 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ 		goto out;
+ 
+--
+cgit v0.8.3-6-g21f6
diff --git a/abs/core-testing/hal/fix-libusb-detection.patch b/abs/core-testing/hal/fix-libusb-detection.patch
new file mode 100644
index 0000000..d4f966d
--- /dev/null
+++ b/abs/core-testing/hal/fix-libusb-detection.patch
@@ -0,0 +1,66 @@
+From fce91df8ba7f305c624baf1f06961c040b088ecc Mon Sep 17 00:00:00 2001
+From: Joe Marcus Clarke <marcus@FreeBSD.org>
+Date: Tue, 08 Dec 2009 00:05:27 +0000
+Subject: Fix libusb detection on Linux
+
+Adjust the FreeBSD libusb20 code so that it does not interfere with the
+Linux libusb detection.
+
+Reported by:	Robby Workman <rw@rlworkman.net>
+---
+diff --git a/configure.in b/configure.in
+index a8fda51..8363595 100644
+--- a/configure.in
++++ b/configure.in
+@@ -479,9 +479,6 @@ if test "x$with_libpci" != xno ; then
+ fi 
+ AM_CONDITIONAL([HAVE_LIBPCI], [test "x$USE_LIBPCI" = "xyes"])
+ 
+-USE_LIBUSB20=no
+-USE_LIBUSB=no
+-LIBUSB20_LIBS=""
+ AC_ARG_WITH([backend],
+ 	    AS_HELP_STRING([--with-backend=<name>],
+ 	                   [backend to use (linux/solaris/freebsd/dummy)]),
+@@ -510,21 +507,25 @@ AM_CONDITIONAL(HALD_COMPILE_FREEBSD, [test x$HALD_BACKEND = xfreebsd], [Compilin
+ AM_CONDITIONAL(HALD_COMPILE_SOLARIS, [test x$HALD_BACKEND = xsolaris], [Compiling for Solaris])
+ AC_SUBST(HALD_BACKEND)
+ if test "x$HALD_BACKEND" = "xfreebsd"; then
+-    AC_CHECK_LIB([usb20], [libusb20_dev_get_info], [USE_LIBUSB20=yes], [USE_LIBUSB20=no])
+-fi
+-if test "x$USE_LIBUSB20" = "xno"; then
+-    AC_CHECK_LIB([usb], [libusb20_dev_get_info], [USE_LIBUSB=yes], [USE_LIBUSB=no])
+-fi
+-AM_CONDITIONAL([HAVE_LIBUSB20],[test "x$USE_LIBUSB20" = "xyes"])
+-AM_CONDITIONAL([HAVE_LIBUSB20],[test "x$USE_LIBUSB" = "xyes"])
+-if test "x$USE_LIBUSB20" = "xyes"; then
+-    AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libusb20])
+-    LIBUSB20_LIBS="-lusb20"
+-elif test "x$USE_LIBUSB" = "xyes"; then
+-    AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libsub20])
+-    LIBUSB20_LIBS="-lusb"
++    USE_BSDLIBUSB20=no
++    USE_BSDLIBUSB=no
++    LIBUSB20_LIBS=""
++    AC_CHECK_LIB([usb20], [libusb20_dev_get_info], [USE_BSDLIBUSB20=yes], [USE_BSDLIBUSB20=no])
++    if test "x$USE_BSDLIBUSB20" = "xno"; then
++        AC_CHECK_LIB([usb], [libusb20_dev_get_info], [USE_BSDLIBUSB=yes], [USE_BSDLIBUSB=no])
++    fi
++    AM_CONDITIONAL([HAVE_LIBUSB20],[test "x$USE_BSDLIBUSB20" = "xyes" -o "x$USE_BSDLIBUSB" = "xyes"])
++    if test "x$USE_BSDLIBUSB20" = "xyes"; then
++        AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libusb20])
++        LIBUSB20_LIBS="-lusb20"
++    elif test "x$USE_BSDLIBUSB" = "xyes"; then
++        AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libsub20])
++        LIBUSB20_LIBS="-lusb"
++    fi
++    AC_SUBST(LIBUSB20_LIBS)
++else
++    AM_CONDITIONAL([HAVE_LIBUSB20], [false])
+ fi
+-AC_SUBST(LIBUSB20_LIBS)
+ 
+ dnl DBUS API is subject to changes
+ AC_DEFINE_UNQUOTED(DBUS_API_SUBJECT_TO_CHANGE, [], [DBUS API is subject to change])
+--
+cgit v0.8.3-6-g21f6
diff --git a/abs/core-testing/hal/hal-HDAPS-blacklist.patch b/abs/core-testing/hal/hal-HDAPS-blacklist.patch
new file mode 100644
index 0000000..8a68228
--- /dev/null
+++ b/abs/core-testing/hal/hal-HDAPS-blacklist.patch
@@ -0,0 +1,30 @@
+From e1f85fe0cdfa7e4d4ce7a811d0b0c90bf38fba0c Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu, 25 Jun 2009 09:47:27 +1000
+Subject: [PATCH] Blacklist HDAPS accelerometer device from being picked up in X.
+
+This device posts accelerometer data through ABS_X/ABS_Y, making X unusable
+if it's controlling the pointer.
+---
+ fdi/policy/10osvendor/10-x11-input.fdi |    6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi
+index a342421..89ba672 100644
+--- a/fdi/policy/10osvendor/10-x11-input.fdi
++++ b/fdi/policy/10osvendor/10-x11-input.fdi
+@@ -38,5 +38,11 @@
+         <merge key="input.x11_driver" type="string">evdev</merge>
+       </match>
+     </match>
++
++    <!-- http://bugs.freedesktop.org/show_bug.cgi?id=22442 
++         Posts accel data through ABS_X/ABS_Y, makes X unusable -->
++    <match key="info.product" contains="ThinkPad HDAPS accelerometer data">
++        <remove key="input.x11_driver" />
++    </match>
+   </device>
+ </deviceinfo>
+-- 
+1.6.3.rc1.2.g0164.dirty
+
diff --git a/abs/core-testing/hal/hal-KVM-evdev.patch b/abs/core-testing/hal/hal-KVM-evdev.patch
new file mode 100644
index 0000000..917655e
--- /dev/null
+++ b/abs/core-testing/hal/hal-KVM-evdev.patch
@@ -0,0 +1,36 @@
+From 7618498eec840cb26474dc47821e083957772706 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Fri, 20 Mar 2009 14:37:24 +1000
+Subject: [PATCH] Add x11_driver for American Megatrends KVM.
+
+This device exposes only ABS_X, ABS_Y and buttons. It gets input.joystick
+assigned but not input.mouse, hence the default evdev mapping doesn't pick up
+on it.
+
+Red Hat Bug 484776 <https://bugzilla.redhat.com/show_bug.cgi?id=484776>
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+ fdi/policy/10osvendor/10-x11-input.fdi |    6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi
+index 769f75b..eb9767e 100644
+--- a/fdi/policy/10osvendor/10-x11-input.fdi
++++ b/fdi/policy/10osvendor/10-x11-input.fdi
+@@ -2,6 +2,12 @@
+ <deviceinfo version="0.2">
+   <device>
+ 
++    <!-- This KVMS has abs x/y and buttons. It only has inputInfo.joystick
++         set by hal and doesn't get picked up by default -->
++    <match key="input.product" contains="American Megatrends Inc. Virtual Keyboard and Mouse">
++       <merge key="input.x11_driver" type="string">evdev</merge>
++    </match>
++
+     <!-- KVM emulates a USB graphics tablet which works in absolute coordinate mode -->
+     <match key="input.product" contains="QEMU USB Tablet">
+        <merge key="input.x11_driver" type="string">evdev</merge>
+-- 
+1.6.0.6
+
diff --git a/abs/core-testing/hal/hal-remove-dell-killswitch.patch b/abs/core-testing/hal/hal-remove-dell-killswitch.patch
new file mode 100644
index 0000000..ae0cf7a
--- /dev/null
+++ b/abs/core-testing/hal/hal-remove-dell-killswitch.patch
@@ -0,0 +1,201 @@
+diff -upr hal-0.5.12/tools/linux/hal-system-killswitch-get-power-linux hal-0.5.12.new/tools/linux/hal-system-killswitch-get-power-linux
+--- hal-0.5.12/tools/linux/hal-system-killswitch-get-power-linux	2008-08-22 07:34:47.000000000 +0100
++++ hal-0.5.12.new/tools/linux/hal-system-killswitch-get-power-linux	2009-03-03 10:45:20.000000000 +0000
+@@ -8,11 +8,6 @@
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ 
+-DELL_WCTL=/usr/bin/dellWirelessCtl
+-if [ -x "/usr/sbin/dellWirelessCtl" ]; then
+-  DELL_WCTL=/usr/sbin/dellWirelessCtl
+-fi
+-
+ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "bluetooth" ]; then
+     if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "sonypic" ]; then
+ 	value="`hal-system-sonypic getbluetooth`"
+@@ -22,25 +17,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue
+ 	    exit 1
+ 	fi
+ 	exit ${value}
+-    elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+-	if [ -x "$DELL_WCTL" ]; then
+-	    # TODO: write our own binary that links with libsmbios?
+-	    $DELL_WCTL --st_bt
+-	    value=$?
+-	    if [ "$value" = "0" ]; then
+-	        exit 1
+-	    elif [ "$value" = "1" ]; then
+-	        exit 0
+-	    else
+-	        echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-	        echo "dellWirelessCtl returned $value" >&2
+-                exit 1
+-	    fi
+-        else
+-	    echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-	    echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+-	    exit 1
+-	fi
+     elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = thinkpad -a -r "$HAL_PROP_LINUX_SYSFS_PATH" ]; then
+ 	read value < $HAL_PROP_LINUX_SYSFS_PATH 2> /dev/null
+ 	if [ $? -eq 0 ]; then
+@@ -55,56 +31,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue
+ 	echo "Access type not supported" >&2
+ 	exit 1
+     fi
+-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wlan" ]; then
+-    if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+-	if [ -x "$DELL_WCTL" ]; then
+- 	    # TODO: write our own binary that links with libsmbios?
+-	    $DELL_WCTL --st_wlan
+-	    value=$?
+-	    if [ "$value" = "0" ]; then
+-	        exit 1
+-	    elif [ "$value" = "1" ]; then
+-	        exit 0
+-	    else
+-	        echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-	        echo "dellWirelessCtl returned $value" >&2
+-                exit 1
+-	    fi
+-	else 
+-	    echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-	    echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+-	    exit 1
+-	fi
+-    else
+-	echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-	echo "Access type not supported" >&2
+-	exit 1
+-    fi
+-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wwan" ]; then
+-    if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+-	if [ -x "$DELL_WCTL" ]; then
+-   	    # TODO: write our own binary that links with libsmbios?
+-	    $DELL_WCTL --st_wwan
+-	    value=$?
+-	    if [ "$value" = "0" ]; then
+-	        exit 1
+-	    elif [ "$value" = "1" ]; then
+-	        exit 0
+-	    else
+-	        echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-	        echo "dellWirelessCtl returned $value" >&2
+-                exit 1
+-	    fi
+-	else 
+-	    echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-	    echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+-	    exit 1
+-	fi
+-    else
+-	echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-	echo "Access type not supported" >&2
+-	exit 1
+-    fi
+ else
+     echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+     echo "Killswitch type not supported" >&2
+diff -upr hal-0.5.12/tools/linux/hal-system-killswitch-set-power-linux hal-0.5.12.new/tools/linux/hal-system-killswitch-set-power-linux
+--- hal-0.5.12/tools/linux/hal-system-killswitch-set-power-linux	2008-10-24 09:45:54.000000000 +0100
++++ hal-0.5.12.new/tools/linux/hal-system-killswitch-set-power-linux	2009-03-03 10:44:49.000000000 +0000
+@@ -8,11 +8,6 @@
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ 
+-DELL_WCTL=/usr/bin/dellWirelessCtl
+-if [ -x "/usr/sbin/dellWirelessCtl" ]; then
+-    DELL_WCTL=/usr/sbin/dellWirelessCtl
+-fi
+-
+ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "bluetooth" ]; then
+     if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "sonypic" ]; then
+ 	hal-system-sonypic setbluetooth $value
+@@ -23,26 +18,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue
+ 	    exit 1
+ 	fi
+ 	exit 0
+-    elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+-	if [ -x "$DELL_WCTL" ]; then
+-	    # TODO: write our own binary that links with libsmbios?
+-	    if [ "$value" = "true" ]; then
+-	        $DELL_WCTL --bt 1
+-	        ret=$?
+-	    else
+-	        $DELL_WCTL --bt 0
+-	        ret=$?
+-	    fi
+-	    if [ "$ret" != "0" ]; then
+-	        echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-	        echo "dellWirelessCtl returned $ret" >&2
+-	        exit 1
+-	    fi
+-        else
+-            echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-            echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+-            exit 1
+-        fi
+     elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = thinkpad -a -w "$HAL_PROP_LINUX_SYSFS_PATH" ]; then
+         if [ "$value" = "true" ]; then 
+ 	    bit=1; 
+@@ -61,60 +36,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue
+ 	echo "Access type not supported" >&2
+ 	exit 1
+     fi
+-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wlan" ]; then
+-    if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+-	if [ -x "$DELL_WCTL" ]; then
+-	    # As a side effect we disable the physical kill switch
+-	    # TODO: write our own binary that links with libsmbios?
+-	    if [ "$value" = "true" ]; then
+-	        $DELL_WCTL --sw_wlan 0 --wlan 1
+-	        ret=$?
+-	    else
+-	        $DELL_WCTL --sw_wlan 0 --wlan 0
+-	        ret=$?
+-	    fi
+-	    if [ "$ret" != "0" ]; then
+-	        echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-	        echo "dellWirelessCtl returned $ret" >&2
+-                exit 1
+-	    fi
+-        else
+-            echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-            echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+-            exit 1
+-        fi
+-    else
+-	echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-	echo "Access type not supported" >&2
+-	exit 1
+-    fi
+-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wwan" ]; then
+-    if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then 
+-	if [ -x "$DELL_WCTL" ]; then
+-	    # As a side effect we disable the physical kill switch
+-	    # TODO: write our own binary that links with libsmbios?
+-	    if [ "$value" = "true" ]; then
+-	        $DELL_WCTL --sw_wwan 0 --wwan 1
+-	        ret=$?
+-	    else
+-	        $DELL_WCTL --sw_wwan 0 --wwan 0
+-	        ret=$?
+-	    fi
+-	    if [ "$ret" != "0" ]; then
+-	        echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-	        echo "dellWirelessCtl returned $ret" >&2
+-                exit 1
+-	    fi
+-        else
+-            echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-            echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+-            exit 1
+-        fi
+-    else
+-	echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+-	echo "Access type not supported" >&2
+-	exit 1
+-    fi
+ else
+     echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+     echo "Killswitch type not supported" >&2
diff --git a/abs/core-testing/hal/hal-use-at-console.patch b/abs/core-testing/hal/hal-use-at-console.patch
new file mode 100644
index 0000000..0b32f17
--- /dev/null
+++ b/abs/core-testing/hal/hal-use-at-console.patch
@@ -0,0 +1,45 @@
+diff -up hal-0.5.13/hal.conf.in.drop-polkit hal-0.5.13/hal.conf.in
+--- hal-0.5.13/hal.conf.in.drop-polkit	2009-02-04 17:07:23.000000000 -0500
++++ hal-0.5.13/hal.conf.in	2009-07-29 23:15:16.866766074 -0400
+@@ -25,7 +25,41 @@
+            send_interface="org.freedesktop.Hal.Device"/>
+     <allow send_destination="org.freedesktop.Hal"
+            send_interface="org.freedesktop.Hal.Manager"/>
++  </policy>
++
++  <!-- Only allow users at the local console to manipulate devices -->
++  <policy at_console="true">
++    <allow send_destination="org.freedesktop.Hal"
++           send_interface="org.freedesktop.Hal.Device.CPUFreq"/>
++    <allow send_destination="org.freedesktop.Hal"
++    	   send_interface="org.freedesktop.Hal.Device.DockStation"/>
++    <allow send_destination="org.freedesktop.Hal"
++    	   send_interface="org.freedesktop.Hal.Device.KillSwitch"/>
++    <allow send_destination="org.freedesktop.Hal"
++    	   send_interface="org.freedesktop.Hal.Device.KeyboardBacklight"/>
++    <allow send_destination="org.freedesktop.Hal"
++    	   send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
++    <allow send_destination="org.freedesktop.Hal"
++    	   send_interface="org.freedesktop.Hal.Device.Leds"/>
++    <allow send_destination="org.freedesktop.Hal"
++    	   send_interface="org.freedesktop.Hal.Device.LightSensor"/>
++    <allow send_destination="org.freedesktop.Hal"
++    	   send_interface="org.freedesktop.Hal.Device.Storage"/>
++    <allow send_destination="org.freedesktop.Hal"
++    	   send_interface="org.freedesktop.Hal.Device.Storage.Removable"/>
++    <allow send_destination="org.freedesktop.Hal"
++    	   send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
++    <allow send_destination="org.freedesktop.Hal"
++    	   send_interface="org.freedesktop.Hal.Device.Volume"/>
++    <allow send_destination="org.freedesktop.Hal"
++    	   send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
++    <allow send_destination="org.freedesktop.Hal"
++    	   send_interface="org.freedesktop.Hal.Device.WakeOnLan"/>
++
++  </policy>
+ 
++  <!-- well,...and root too -->
++  <policy user="root">
+     <allow send_destination="org.freedesktop.Hal"
+            send_interface="org.freedesktop.Hal.Device.CPUFreq"/>
+     <allow send_destination="org.freedesktop.Hal"
diff --git a/abs/core-testing/hal/hal-xen-unignore-axes.patch b/abs/core-testing/hal/hal-xen-unignore-axes.patch
new file mode 100644
index 0000000..b248639
--- /dev/null
+++ b/abs/core-testing/hal/hal-xen-unignore-axes.patch
@@ -0,0 +1,39 @@
+From e48f59d2b9bcb43ea8a7b8c884dcb73c8f65b170 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon, 19 Oct 2009 14:27:20 +1000
+Subject: [PATCH] Un-ignore absolute axes for the Xen Virtual Pointer.
+
+The evdev-internal axis type picking fails for the Xen Virtual Pointer as it
+exposes both relative and absolute axes. Evdev picks the relative axes by
+default, leading to a immovable pointer if the Xen backend only sends
+absolute coordinates.
+
+Explicitly tell evdev to not ignore the absolute axes.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=523914
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+ fdi/policy/10osvendor/10-x11-input.fdi |    7 +++++++
+ 1 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi
+index 89ba672..752c4ab 100644
+--- a/fdi/policy/10osvendor/10-x11-input.fdi
++++ b/fdi/policy/10osvendor/10-x11-input.fdi
+@@ -44,5 +44,12 @@
+     <match key="info.product" contains="ThinkPad HDAPS accelerometer data">
+         <remove key="input.x11_driver" />
+     </match>
++
++    <!-- https://bugzilla.redhat.com/show_bug.cgi?id=523914
++         Mouse does not move in PV Xen guest -->
++    <match key="info.product" contains="Xen Virtual Pointer">
++      <merge key="input.x11_options.IgnoreAbsoluteAxes" type="string">false</merge>
++      <merge key="input.x11_options.IgnoreRelativeAxes" type="string">false</merge>
++    </match>
+   </device>
+ </deviceinfo>
+-- 
+1.6.2.5
+
diff --git a/abs/core-testing/hal/hal.install b/abs/core-testing/hal/hal.install
index d3f3686..d6afee3 100644
--- a/abs/core-testing/hal/hal.install
+++ b/abs/core-testing/hal/hal.install
@@ -14,12 +14,11 @@ post_upgrade() {
 }
 
 # arg 1:  the old package version
-pre_remove() {
-  usr/sbin/userdel hal &>/dev/null
-  usr/sbin/groupdel hal &>/dev/null
+post_remove() {
+  if getent passwd hal &>/dev/null; then
+    usr/sbin/userdel hal
+  fi
+  if getent group hal &>/dev/null; then
+    usr/sbin/groupdel hal
+  fi
 }
-
-op=$1
-shift
-
-$op $*
diff --git a/abs/core-testing/hal/handle-input-touchpad.patch b/abs/core-testing/hal/handle-input-touchpad.patch
new file mode 100644
index 0000000..9cd6464
--- /dev/null
+++ b/abs/core-testing/hal/handle-input-touchpad.patch
@@ -0,0 +1,101 @@
+From 6dccf8e3ad181e8f56b1d2a994ec50a1953a1c2d Mon Sep 17 00:00:00 2001
+From: Michael Witten <mfwitten@gmail.com>
+Date: Wed, 06 Jan 2010 00:53:17 +0000
+Subject: Policy: handle `input.touchpad' explicitly
+
+This commit essentially duplicates the policy for:
+
+   <match key="info.capabilities" contains="input.mouse">
+
+and then changes `input.mouse' to `input.touchpad'. This
+is necessary because in Linus Torvalds's Linux repo:
+
+    git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
+
+the following commit:
+
+    commit 7105d2ea73e1391b681d0e1212c42f561c64d429
+    Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+    Date:   Fri Dec 11 23:54:54 2009 -0800
+
+        Input: ALPS - do not set REL_X/REL_Y capabilities on the touchpad
+
+        Relative events are only reported via secondary device therefore device
+        associated with the touchpad should not advertise these capabilities.
+
+        Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+
+made these few changes:
+
+    diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
+    index a3f492a..b03e7e0 100644
+    /--- a/drivers/input/mouse/alps.c
+    /+++ b/drivers/input/mouse/alps.c
+    /@@ -487,6 +487,17 @@ int alps_init(struct psmouse *psmouse)
+     	if (alps_hw_init(psmouse))
+     		goto init_fail;
+
+    +	/*
+    +	 * Undo part of setup done for us by psmouse core since touchpad
+    +	 * is not a relative device.
+    +	 */
+    +	__clear_bit(EV_REL, dev1->evbit);
+    +	__clear_bit(REL_X, dev1->relbit);
+    +	__clear_bit(REL_Y, dev1->relbit);
+    +
+    +	/*
+    +	 * Now set up our capabilities.
+    +	 */
+     	dev1->evbit[BIT_WORD(EV_KEY)] |= BIT_MASK(EV_KEY);
+     	dev1->keybit[BIT_WORD(BTN_TOUCH)] |= BIT_MASK(BTN_TOUCH);
+     	dev1->keybit[BIT_WORD(BTN_TOOL_FINGER)] |= BIT_MASK(BTN_TOOL_FINGER);
+
+so that HAL no longer adds:
+
+    input.mouse
+
+to an ALPS touchpad's:
+
+    info.capabilities
+
+so that HAL no longer marks the ALPS touchpad with:
+
+    input.x11_driver = 'evdev'
+
+because the policy file:
+
+    fdi/policy/10osvendor/10-x11-input.fdi
+
+doesn't define the policy for:
+
+    <match key="info.capabilities" contains="input.touchpad">
+
+which was previous unnecessary because everything used to
+be caught by the policy for:
+
+    <match key="info.capabilities" contains="input.mouse">
+
+Signed-off-by: Michael Witten <mfwitten@gmail.com>
+Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
+---
+diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi
+index cff8fc5..8bbe263 100644
+--- a/fdi/policy/10osvendor/10-x11-input.fdi
++++ b/fdi/policy/10osvendor/10-x11-input.fdi
+@@ -16,6 +16,14 @@
+       </match>
+     </match>
+ 
++    <match key="info.capabilities" contains="input.touchpad">
++      <merge key="input.x11_driver" type="string">mouse</merge>
++      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
++             string="Linux">
++        <merge key="input.x11_driver" type="string">evdev</merge>
++      </match>
++    </match>
++
+     <match key="info.capabilities" contains="input.tablet">
+       <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
+              string="Linux">
+--
+cgit v0.8.3-6-g21f6
diff --git a/abs/core-testing/hal/macbook-fix-ioperm.patch b/abs/core-testing/hal/macbook-fix-ioperm.patch
new file mode 100644
index 0000000..14d0b39
--- /dev/null
+++ b/abs/core-testing/hal/macbook-fix-ioperm.patch
@@ -0,0 +1,41 @@
+From 597c1ffffd61a15a334ce42f2a569c59f0270bcb Mon Sep 17 00:00:00 2001
+From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Date: Thu, 25 Feb 2010 10:25:18 +0000
+Subject: Fix incorrect arguments to ioperm() call
+
+The second argument of ioperm() is not the last port to be accessed
+but rather length of the port range [port, port + len).
+
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
+---
+diff --git a/hald/linux/addons/addon-imac-backlight.c b/hald/linux/addons/addon-imac-backlight.c
+index e869192..54e4ea3 100644
+--- a/hald/linux/addons/addon-imac-backlight.c
++++ b/hald/linux/addons/addon-imac-backlight.c
+@@ -158,7 +158,8 @@ main (int argc, char **argv)
+ 		goto out;
+ 	}
+ 
+-	if (ioperm(0xB2, 0xB3, 1) < 0)
++	/* Allow access to ports 0xB2 and 0xB3 */
++	if (ioperm(0xB2, 2, 1) < 0)
+ 	{
+ 		HAL_ERROR (("ioperm failed (you should be root)."));
+ 		exit(1);
+diff --git a/hald/linux/addons/addon-macbookpro-backlight.c b/hald/linux/addons/addon-macbookpro-backlight.c
+index 2a6fef6..c1bbbac 100644
+--- a/hald/linux/addons/addon-macbookpro-backlight.c
++++ b/hald/linux/addons/addon-macbookpro-backlight.c
+@@ -507,7 +507,8 @@ main (int argc, char *argv[])
+  	state = INREG(0x7ae4);
+  	OUTREG(0x7ae4, state);
+ 
+-	if (ioperm (0x300, 0x304, 1) < 0) {
++	/* Allow access to porta 0x300 through 0x304 */
++	if (ioperm (0x300, 5, 1) < 0) {
+ 		HAL_ERROR (("ioperm failed (you should be root)."));
+ 		exit(1);
+ 	}
+--
+cgit v0.8.3-6-g21f6
diff --git a/abs/core-testing/hal/path-max.patch b/abs/core-testing/hal/path-max.patch
new file mode 100644
index 0000000..304185d
--- /dev/null
+++ b/abs/core-testing/hal/path-max.patch
@@ -0,0 +1,31 @@
+From a2c3dd5a04d79265772c09c4280606d5c2ed72c6 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt@ubuntu.com>
+Date: Mon, 04 Jan 2010 15:56:13 +0000
+Subject: Bump HAL_PATH_MAX to 4096
+
+Some bits in the code use realpath() with destination paths of size
+HAL_PATH_MAX. This potentially breaks on systems where PATH_MAX is bigger than
+HAL_PATH_MAX (which was 512 until now).
+
+Since we can't use PATH_MAX directly (due to platforms like GNU/Hurd, which
+apparently don't have it), just bump HAL_PATH_MAX to 4096 (as PATH_MAX is on
+Linux), to avoid potential buffer overflows and also fix hal on Linux when
+enabling FORTIFY in gcc.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=25888
+---
+diff --git a/hald/util.h b/hald/util.h
+index c2a1584..7883333 100644
+--- a/hald/util.h
++++ b/hald/util.h
+@@ -38,7 +38,7 @@
+ #endif
+ 
+ #define HAL_NAME_MAX 256
+-#define HAL_PATH_MAX 512
++#define HAL_PATH_MAX 4096
+ 
+ gboolean hal_util_remove_trailing_slash (gchar *path);
+ 
+--
+cgit v0.8.3-6-g21f6
-- 
cgit v0.12


From 368a6d9705b38dcb5b3c29a80aec261b25e6d602 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:01:01 -0700
Subject: heimdal:Bumped/Updated for LinHES 7.

---
 .../heimdal/001_all_heimdal-no_libedit.patch       |  10 ++
 abs/core-testing/heimdal/002_all_heimal-fPIC.patch |  12 ++
 .../heimdal/003_all_heimdal-rxapps.patch           |  22 ++++
 .../heimdal/005_all_heimdal-suid_fix.patch         |  20 ++++
 .../heimdal/012_all_heimdal-berkdb.patch           | 124 +++++++++++++++++++++
 .../heimdal/013_all_heimdal-pthread-lib.patch      |  11 ++
 .../heimdal/014_all_heimdal-path.patch             |  50 +++++++++
 abs/core-testing/heimdal/PKGBUILD                  |  96 +++++++++-------
 8 files changed, 304 insertions(+), 41 deletions(-)
 create mode 100644 abs/core-testing/heimdal/001_all_heimdal-no_libedit.patch
 create mode 100644 abs/core-testing/heimdal/002_all_heimal-fPIC.patch
 create mode 100644 abs/core-testing/heimdal/003_all_heimdal-rxapps.patch
 create mode 100644 abs/core-testing/heimdal/005_all_heimdal-suid_fix.patch
 create mode 100644 abs/core-testing/heimdal/012_all_heimdal-berkdb.patch
 create mode 100644 abs/core-testing/heimdal/013_all_heimdal-pthread-lib.patch
 create mode 100644 abs/core-testing/heimdal/014_all_heimdal-path.patch

diff --git a/abs/core-testing/heimdal/001_all_heimdal-no_libedit.patch b/abs/core-testing/heimdal/001_all_heimdal-no_libedit.patch
new file mode 100644
index 0000000..a551bdc
--- /dev/null
+++ b/abs/core-testing/heimdal/001_all_heimdal-no_libedit.patch
@@ -0,0 +1,10 @@
+--- cf/krb-readline.m4	2005-06-16 18:28:32.000000000 +0200
++++ cf/krb-readline.m4	2005-06-27 23:17:06.000000000 +0200
+@@ -6,7 +6,6 @@
+ dnl el_init
+ 
+ AC_DEFUN([KRB_READLINE],[
+-AC_FIND_FUNC_NO_LIBS(el_init, edit, [], [], [$LIB_tgetent])
+ if test "$ac_cv_func_el_init" = yes ; then
+ 	AC_CACHE_CHECK(for four argument el_init, ac_cv_func_el_init_four,[
+ 		AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
diff --git a/abs/core-testing/heimdal/002_all_heimal-fPIC.patch b/abs/core-testing/heimdal/002_all_heimal-fPIC.patch
new file mode 100644
index 0000000..c67dbae
--- /dev/null
+++ b/abs/core-testing/heimdal/002_all_heimal-fPIC.patch
@@ -0,0 +1,12 @@
+--- lib/editline/Makefile.am	2005-06-16 18:28:44.000000000 +0200
++++ lib/editline/Makefile.am	2005-06-27 23:21:02.000000000 +0200
+@@ -41,6 +41,9 @@
+ 
+ EXTRA_DIST = $(man_MANS)
+ 
++$(libeditline_la_OBJECTS): %.lo: %.c
++	$(LTCOMPILE) -fPIC -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
++
+ snprintf.c:
+ 	$(LN_S) $(srcdir)/../roken/snprintf.c .
+ strdup.c:
diff --git a/abs/core-testing/heimdal/003_all_heimdal-rxapps.patch b/abs/core-testing/heimdal/003_all_heimdal-rxapps.patch
new file mode 100644
index 0000000..40fc05f
--- /dev/null
+++ b/abs/core-testing/heimdal/003_all_heimdal-rxapps.patch
@@ -0,0 +1,22 @@
+--- appl/kx/rxtelnet.in	2005-06-16 18:29:10.000000000 +0200
++++ appl/kx/rxtelnet.in	2005-06-27 23:21:34.000000000 +0200
+@@ -2,7 +2,7 @@
+ # $Id: rxtelnet.in,v 1.31 2004/03/07 17:22:06 lha Exp $
+ #
+ usage="Usage: $0 [-l username] [-k] [-fF] [-t args_to_telnet] [-x args_to_xterm] [-K args_to_kx] [-w term_emulator] [-b telnet_binary] [-n] [-v] [-h | --help] [--version] host [port]"
+-binary=telnet
++binary=ktelnet
+ term=
+ kx_args=-P
+ while true
+--- appl/kx/rxterm.in	2005-06-16 18:29:10.000000000 +0200
++++ appl/kx/rxterm.in	2005-06-27 23:21:55.000000000 +0200
+@@ -2,7 +2,7 @@
+ # $Id: rxterm.in,v 1.23 2002/03/18 17:37:34 joda Exp $
+ #
+ usage="Usage: $0 [-l username] [-k] [-f] [-r rsh_args] [-x xterm_args] [-K kx_args] [-w term_emulator] [-b rsh_binary][-v] [-h | --help] [--version] host"
+-binary=rsh
++binary=krsh
+ term=xterm
+ while true
+ do
diff --git a/abs/core-testing/heimdal/005_all_heimdal-suid_fix.patch b/abs/core-testing/heimdal/005_all_heimdal-suid_fix.patch
new file mode 100644
index 0000000..35a9ed9
--- /dev/null
+++ b/abs/core-testing/heimdal/005_all_heimdal-suid_fix.patch
@@ -0,0 +1,20 @@
+--- appl/su/Makefile.am	2005-06-16 18:27:46.000000000 +0200
++++ appl/su/Makefile.am	2005-06-27 23:25:21.000000000 +0200
+@@ -7,6 +7,7 @@
+ bin_PROGRAMS = su
+ bin_SUIDS = su
+ su_SOURCES = su.c supaths.h
++su_LDFLAGS = -Wl,-z,now
+ man_MANS = su.1
+ 
+ LDADD = $(LIB_kafs) \
+--- appl/otp/Makefile.am	2005-06-16 18:28:46.000000000 +0200
++++ appl/otp/Makefile.am	2005-06-27 23:25:40.000000000 +0200
+@@ -8,6 +8,7 @@
+ bin_SUIDS = otp
+ otp_SOURCES = otp.c otp_locl.h
+ otpprint_SOURCES = otpprint.c otp_locl.h
++otp_LDFLAGS = -Wl,-z,now
+ 
+ man_MANS = otp.1  otpprint.1
+ 
diff --git a/abs/core-testing/heimdal/012_all_heimdal-berkdb.patch b/abs/core-testing/heimdal/012_all_heimdal-berkdb.patch
new file mode 100644
index 0000000..46762c2
--- /dev/null
+++ b/abs/core-testing/heimdal/012_all_heimdal-berkdb.patch
@@ -0,0 +1,124 @@
+Binary files heimdal-0.7-old/cf/.find-func-no-libs2.m4.swp and heimdal-0.7/cf/.find-func-no-libs2.m4.swp differ
+Index: heimdal/cf/db.m4
+===================================================================
+--- heimdal.orig/cf/db.m4
++++ heimdal/cf/db.m4
+@@ -18,24 +18,13 @@ db_type=unknown
+ 
+ if test "$enable_berkeley_db" != no; then
+ 
+-  AC_CHECK_HEADERS([				\
+-	db4/db.h				\
+-	db3/db.h				\
+-	db.h					\
+-	db_185.h				\
+-  ])
++  AC_CHECK_HEADERS([db.h])
+ 
+ dnl db_create is used by db3 and db4
+ 
+-  AC_FIND_FUNC_NO_LIBS(db_create, db4 db3 db, [
++  AC_FIND_FUNC_NO_LIBS(db_create, db, [
+   #include <stdio.h>
+-  #ifdef HAVE_DB4_DB_H
+-  #include <db4/db.h>
+-  #elif defined(HAVE_DB3_DB_H)
+-  #include <db3/db.h>
+-  #else
+   #include <db.h>
+-  #endif
+   ],[NULL, NULL, 0])
+ 
+   if test "$ac_cv_func_db_create" = "yes"; then
+@@ -50,17 +39,9 @@ dnl db_create is used by db3 and db4
+ 
+ dnl dbopen is used by db1/db2
+ 
+-    AC_FIND_FUNC_NO_LIBS(dbopen, db2 db, [
++    AC_FIND_FUNC_NO_LIBS(dbopen, db, [
+     #include <stdio.h>
+-    #if defined(HAVE_DB2_DB_H)
+-    #include <db2/db.h>
+-    #elif defined(HAVE_DB_185_H)
+-    #include <db_185.h>
+-    #elif defined(HAVE_DB_H)
+     #include <db.h>
+-    #else
+-    #error no db.h
+-    #endif
+     ],[NULL, 0, 0, 0, NULL])
+ 
+     if test "$ac_cv_func_dbopen" = "yes"; then
+Index: heimdal/lib/hdb/db.c
+===================================================================
+--- heimdal.orig/lib/hdb/db.c
++++ heimdal/lib/hdb/db.c
+@@ -37,11 +37,7 @@ RCSID("$Id: db.c 20215 2007-02-09 21:59:
+ 
+ #if HAVE_DB1
+ 
+-#if defined(HAVE_DB_185_H)
+-#include <db_185.h>
+-#elif defined(HAVE_DB_H)
+ #include <db.h>
+-#endif
+ 
+ static krb5_error_code
+ DB_close(krb5_context context, HDB *db)
+Index: heimdal/lib/hdb/db3.c
+===================================================================
+--- heimdal.orig/lib/hdb/db3.c
++++ heimdal/lib/hdb/db3.c
+@@ -37,13 +37,7 @@ RCSID("$Id: db3.c 21610 2007-07-17 07:10
+ 
+ #if HAVE_DB3
+ 
+-#ifdef HAVE_DB4_DB_H
+-#include <db4/db.h>
+-#elif defined(HAVE_DB3_DB_H)
+-#include <db3/db.h>
+-#else
+ #include <db.h>
+-#endif
+ 
+ static krb5_error_code
+ DB_close(krb5_context context, HDB *db)
+Index: heimdal/lib/roken/getcap.c
+===================================================================
+--- heimdal.orig/lib/roken/getcap.c
++++ heimdal/lib/roken/getcap.c
+@@ -38,11 +38,13 @@
+ #include "roken.h"
+ RCSID("$Id: getcap.c 16561 2006-01-13 14:25:32Z lha $");
+ 
++#if defined(HAVE_DBOPEN) && defined(HAVE_DB_H)
++#define USE_DB
++#endif
++
+ #include <sys/types.h>
+ #include <ctype.h>
+-#if defined(HAVE_DB_185_H)
+-#include <db_185.h>
+-#elif defined(HAVE_DB_H)
++#ifdef USE_DB
+ #include <db.h>
+ #endif
+ #include <errno.h>	
+Index: heimdal/lib/roken/ndbm_wrap.c
+===================================================================
+--- heimdal.orig/lib/roken/ndbm_wrap.c
++++ heimdal/lib/roken/ndbm_wrap.c
+@@ -37,13 +37,7 @@ RCSID("$Id: ndbm_wrap.c 21634 2007-07-17
+ #endif
+ 
+ #include "ndbm_wrap.h"
+-#if defined(HAVE_DB4_DB_H)
+-#include <db4/db.h>
+-#elif defined(HAVE_DB3_DB_H)
+-#include <db3/db.h>
+-#else
+ #include <db.h>
+-#endif
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
diff --git a/abs/core-testing/heimdal/013_all_heimdal-pthread-lib.patch b/abs/core-testing/heimdal/013_all_heimdal-pthread-lib.patch
new file mode 100644
index 0000000..19f8794
--- /dev/null
+++ b/abs/core-testing/heimdal/013_all_heimdal-pthread-lib.patch
@@ -0,0 +1,11 @@
+--- heimdal-0.7.1/cf/pthreads.m4.old	2005-09-09 12:12:28.000000000 +0000
++++ heimdal-0.7.1/cf/pthreads.m4	2005-09-17 22:23:23.000000000 +0000
+@@ -32,7 +32,7 @@
+ 	2.*)
+ 		native_pthread_support=yes
+ 		PTHREADS_CFLAGS=-pthread
+-		PTHREADS_LIBS=-pthread
++		PTHREADS_LIBS=-lpthread
+ 		;;
+ 	esac
+ 	;;
diff --git a/abs/core-testing/heimdal/014_all_heimdal-path.patch b/abs/core-testing/heimdal/014_all_heimdal-path.patch
new file mode 100644
index 0000000..36a86f1
--- /dev/null
+++ b/abs/core-testing/heimdal/014_all_heimdal-path.patch
@@ -0,0 +1,50 @@
+--- appl/rcp/rcp.c.old	2006-05-03 13:31:59.398493625 +0200
++++ appl/rcp/rcp.c	2006-05-03 13:32:04.494485981 +0200
+@@ -34,7 +34,7 @@
+ #include "rcp_locl.h"
+ #include <getarg.h>
+ 
+-#define RSH_PROGRAM "rsh"
++#define RSH_PROGRAM "krsh"
+ 
+ struct  passwd *pwd;
+ uid_t	userid;
+--- appl/rcp/rcp_locl.h.old	2006-05-03 02:30:31.602025409 +0200
++++ appl/rcp/rcp_locl.h	2006-05-03 02:30:35.886018983 +0200
+@@ -64,4 +64,4 @@
+ #define	_PATH_CP	"/bin/cp"
+ #endif
+ #undef _PATH_RSH
+-#define	_PATH_RSH	BINDIR "/rsh"
++#define	_PATH_RSH	BINDIR "/krsh"
+--- appl/telnet/telnetd/telnetd.h.old	2006-05-03 02:23:14.582680939 +0200
++++ appl/telnet/telnetd/telnetd.h	2006-05-03 02:23:23.746667193 +0200
+@@ -192,7 +192,7 @@
+ #endif
+ 
+ #undef _PATH_LOGIN
+-#define _PATH_LOGIN	BINDIR "/login"
++#define _PATH_LOGIN	BINDIR "/klogin"
+ 
+ /* fallbacks */
+ 
+--- appl/login/shadow.c.old	2006-05-05 06:31:29.517138115 +0200
++++ appl/login/shadow.c	2006-05-05 06:32:26.433052741 +0200
+@@ -38,7 +38,7 @@
+ #ifdef HAVE_SHADOW_H
+ 
+ #ifndef _PATH_CHPASS
+-#define _PATH_CHPASS "/usr/bin/passwd"
++#define _PATH_CHPASS "/usr/bin/kpasswd"
+ #endif
+ 
+ static int
+@@ -52,7 +52,7 @@
+         printf("fork /bin/passwd");
+         exit(1);
+     case 0:
+-        execlp(_PATH_CHPASS, "passwd", who->pw_name, (char *) 0);
++        execlp(_PATH_CHPASS, "kpasswd", who->pw_name, (char *) 0);
+         exit(1);
+     default:
+         waitpid(pid, &status, 0);
diff --git a/abs/core-testing/heimdal/PKGBUILD b/abs/core-testing/heimdal/PKGBUILD
index 06dd0cd..2074973 100644
--- a/abs/core-testing/heimdal/PKGBUILD
+++ b/abs/core-testing/heimdal/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 21345 2008-12-12 02:52:37Z allan $
+# $Id: PKGBUILD 81228 2010-05-27 15:14:39Z allan $
 # Maintainer: Allan McRae <allan@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 
@@ -7,86 +7,100 @@
 #
 
 pkgname=heimdal
-pkgver=1.2.1
-pkgrel=2
+pkgver=1.3.3
+pkgrel=1
 pkgdesc="Implementation of Kerberos V5 libraries"
 arch=('i686' 'x86_64')
 url="http://www.h5l.org/"
 license=('custom')
-depends=('db>=4.7' 'openssl' 'e2fsprogs')
+depends=('db' 'openssl' 'sqlite3' 'e2fsprogs')
 backup=(etc/krb5.conf)
 options=('!libtool' '!emptydirs')
-install=$pkgname.install
-source=(http://www.h5l.org/dist/src/${pkgname}-${pkgver}.tar.gz \
-	002_all_heimdal-no_libedit.patch \
-	003_all_heimdal-fPIC.patch \
-	004_all_heimdal-rxapps.patch \
-	heimdal-kdc.rc \
-	kadmind.rc \
+install=heimdal.install
+source=(http://www.h5l.org/dist/src/${pkgname}-${pkgver}.tar.gz
+	001_all_heimdal-no_libedit.patch
+	002_all_heimal-fPIC.patch
+	003_all_heimdal-rxapps.patch
+	005_all_heimdal-suid_fix.patch
+	012_all_heimdal-berkdb.patch
+	013_all_heimdal-pthread-lib.patch
+	014_all_heimdal-path.patch
+	heimdal-kdc.rc
+	kadmind.rc
 	kpasswd.rc)
-md5sums=('6e5028077e2a6b101a4a72801ba71b9e'
-         '1199c4a4a38e9c2b2c0a99bd5781767a'
-         '3d0262aa218e1611500de735d3581e28'
-         '0fe81cb1e33b2a2e60edaf47dfdfe4de'
+md5sums=('963c09f1b14c41660be70b55fae9f163'
+         '98e28f11f906c967aac22d6184102c9e'
+         '6d5571bdedba2e2423b90bccdbac2c0a'
+         '2feec3924ee5230b54175b4d4000c872'
+         '45aeb207f360f9f4e9e0fabc8bfeecbc'
+         '56f5d10d0ec40f2fda82ef144ffac1e0'
+         '1b8665b771c4eb6b56ea8582c96e56e3'
+         '8208ae8c0b6ff5ab4f64af1693e9e396'
          'e59650992b9541a30dfce727a194f6e0'
          '1f2f86a67bbfddb7af581d35fdca9627'
          'f8f1eca95b9d3f2b4ebf2417b71b81cf')
 
 build() {
-  [ -e /usr/lib/libasn1.so ] && echo "## remove old heimdal pkg first ##" && return 1
-
   cd ${srcdir}/heimdal-${pkgver}
-  patch -Np0 -i ${srcdir}/002_all_heimdal-no_libedit.patch || return 1
-  patch -Np0 -i ${srcdir}/003_all_heimdal-fPIC.patch || return 1
-  patch -Np0 -i ${srcdir}/004_all_heimdal-rxapps.patch || return 1
+  patch -Np0 -i ${srcdir}/001_all_heimdal-no_libedit.patch || return 1
+  patch -Np0 -i ${srcdir}/002_all_heimal-fPIC.patch || return 1
+  patch -Np0 -i ${srcdir}/003_all_heimdal-rxapps.patch || return 1
+  patch -Np0 -i ${srcdir}/005_all_heimdal-suid_fix.patch || return 1
+  patch -Np1 -i ${srcdir}/012_all_heimdal-berkdb.patch || return 1
+  patch -Np1 -i ${srcdir}/013_all_heimdal-pthread-lib.patch || return 1
+  patch -Np0 -i ${srcdir}/014_all_heimdal-path.patch || return 1
 
-  sed -i -e 's|var/heimdal|var/lib/heimdal|g' configure.in configure \
+  sed -i -e 's|var/heimdal|var/lib/heimdal|g' configure.in \
 	doc/setup.texi doc/heimdal.info kadmin/kadmind.8 kdc/kdc.8 \
 	lib/hdb/hdb.h lib/krb5/krb5.conf.5 lib/krb5/krb5.conf.cat5
 
+  libtoolize --force || return 1
+  aclocal -I cf || return 1
+  autoconf || return 1
+  automake || return 1
+
   ./configure --prefix=/usr --enable-shared=yes --without-x \
-	--sysconfdir=/etc  --mandir=/usr/share/man \
+	--sysconfdir=/etc --mandir=/usr/share/man \
 	--datadir=/var/lib/heimdal \
 	--localstatedir=/var/lib/heimdal \
 	--with-openssl=/usr \
 	--with-readline-lib=/usr/lib \
 	--with-readline-include=/usr/include/readline \
-	--libexecdir=/usr/sbin --with-berkeley-db \
-	--disable-krb4
+	--with-sqlite3-lib=/usr/lib \
+	--with-sqlite3-include=/usr/include \
+	--libexecdir=/usr/sbin
 	
   make || return 1
   make DESTDIR=${pkgdir} install || return 1
 
+  # Rename daemons and their manpages
   for i in telnetd ftpd rshd; do
-    mv ${pkgdir}/usr/share/man/man8/${i}.8 ${pkgdir}/usr/share/man/man8/k${i}.8
-    mv ${pkgdir}/usr/sbin/${i} ${pkgdir}/usr/sbin/k${i}
+    mv ${pkgdir}/usr/share/man/man8/{,k}${i}.8 || return 1
+    mv ${pkgdir}/usr/sbin/{,k}${i} || return 1
   done
   
+  # Rename clients and their manpages
   for i in rcp rsh telnet ftp su login; do
     if [ -f ${pkgdir}/usr/share/man/man1/${i}.1 ]; then
-      mv ${pkgdir}/usr/share/man/man1/${i}.1 ${pkgdir}/usr/share/man/man1/k${i}.1
+      mv ${pkgdir}/usr/share/man/man1/{,k}${i}.1 || return 1
     fi
-    mv ${pkgdir}/usr/bin/${i} ${pkgdir}/usr/bin/k${i}
+    mv ${pkgdir}/usr/bin/{,k}${i} || return 1
   done
   rm -rf ${pkgdir}/usr/share/man/cat{1,3,5,8}
   
   # Arch could be a KDC too
-  mkdir -p ${pkgdir}/etc/rc.d
-  install -m644 ${srcdir}/heimdal-${pkgver}/krb5.conf ${pkgdir}/etc
+  install -d ${pkgdir}/etc/rc.d
+  install -m644 ${srcdir}/heimdal-${pkgver}/krb5.conf ${pkgdir}/etc/ || return 1
   for i in heimdal-kdc kadmind kpasswd; do
-    install -m755 ${srcdir}/${i}.rc ${pkgdir}/etc/rc.d/${i}
+    install -m755 ${srcdir}/${i}.rc ${pkgdir}/etc/rc.d/${i} || return 1
   done
 
-  # Remove conflicts 
-  rm ${pkgdir}/usr/share/man/man5/ftpusers.5*		# man-pages
-  rm ${pkgdir}/usr/share/info/dir
-
-  # Compress info pages
-  for page in heimdal hx509; do
-    gzip -9 ${pkgdir}/usr/share/info/${page}.info
-  done
+  # Remove conflicts
+  rm ${pkgdir}/usr/share/man/man5/ftpusers.5*		          # man-pages
+  rm ${pkgdir}/usr/share/man/man3/{DES,DH,EVP,OpenSSL,RAND,RSA}*  # openssl (a bit overzealous...)
+  rm ${pkgdir}/usr/share/man/man3/os.3*                           # erlang
 
   # Install the license
-  install -D -m644 ${srcdir}/${pkgname}-${pkgver}/LICENSE \
-  	${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+  install -Dm644 ${srcdir}/${pkgname}-${pkgver}/LICENSE \
+  	${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
 }
-- 
cgit v0.12


From 2e70bd6665c0348df10050a0d2c88f98bad6741c Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:01:09 -0700
Subject: imlib2:Bumped/Updated for LinHES 7.

---
 abs/core-testing/imlib2/PKGBUILD | 44 +++++++++++++++++++++++-----------------
 1 file changed, 25 insertions(+), 19 deletions(-)

diff --git a/abs/core-testing/imlib2/PKGBUILD b/abs/core-testing/imlib2/PKGBUILD
index b465ca2..0307519 100644
--- a/abs/core-testing/imlib2/PKGBUILD
+++ b/abs/core-testing/imlib2/PKGBUILD
@@ -1,28 +1,34 @@
-# $Id: PKGBUILD 2921 2008-06-15 20:14:02Z eric $
-# Maintainer: arjan <arjan@archlinux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# $Id: PKGBUILD 79752 2010-05-06 13:39:04Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Arjan Timmerman <arjan.archlinux.org>
+# Contributor: Tom Newsom <Jeepster.gmx.co.uk>
+
 pkgname=imlib2
-pkgver=1.4.1
-pkgrel=2
-pkgdesc="Imlib2 is the successor to Imlib. It is NOT a newer version -- Imlib 2 can be installed alongside Imlib 1.x"
-arch=(i686 x86_64)
-url="http://sourceforge.net/projects/enlightenment"
+pkgver=1.4.4
+pkgrel=1
+pkgdesc="Library that does image file loading and saving as well as rendering, manipulation, arbitrary polygon support"
+url="http://sourceforge.net/projects/enlightenment/"
+arch=('i686' 'x86_64')
 license=('BSD')
-depends=('libtiff' 'giflib' 'bzip2' 'freetype2' 'libxext' 'libpng' 'libid3tag')
+depends=('libtiff>=3.9.2-2' 'giflib' 'bzip2' 'freetype2' 'libxext' 'libpng>=1.4.0' 'libid3tag' 'libjpeg>=8')
 options=('!libtool')
-source=(http://downloads.sourceforge.net/sourceforge/enlightenment/$pkgname-$pkgver.tar.gz)
-md5sums=('16a3d885e523303be794282c0ed90841')
+source=("http://downloads.sourceforge.net/enlightenment/$pkgname-$pkgver.tar.bz2")
+sha1sums=('aca2cf5d40ddcd8a3acfde605f319fccce7c2a2b')
 
 build() {
-  cd $startdir/src/$pkgname-$pkgver
+  cd $srcdir/$pkgname-$pkgver
 
-  # Enable x86 MMX optimizations for i686 (32-bit assembler code not compatible with x86_64)
-  [ "${CARCH}" = "i686" ] && EXTRAOPTS="--disable-mmx"
-  # Disable AMD64 optimizations due to bug in assembler code
-  [ "${CARCH}" = "x86_64" ] && EXTRAOPTS="--disable-amd64"
+  # disable optimizations, they cause problems (e.g. FS#12268)
+  [ $CARCH = "i686" ] && EXTRAOPTS="--disable-mmx"
+  [ $CARCH = "x86_64" ] && EXTRAOPTS="--disable-amd64"
 
-  ./configure --prefix=/usr --sysconfdir=/etc/imlib2 --x-libraries=/usr/lib $EXTRAOPTS
+  # Configure and Build
+  ./configure --prefix=/usr \
+              --sysconfdir=/etc/imlib2 \
+              --x-libraries=/usr/lib $EXTRAOPTS || return 1
   make || return 1
-  make DESTDIR=$startdir/pkg install
-  install -D -m644 COPYING $startdir/pkg/usr/share/licenses/$pkgname/LICENSE.txt
+  make DESTDIR=$pkgdir install || return 1
+
+  # Install License
+  install -Dm644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
 }
-- 
cgit v0.12


From 4e350c428b99f783930fc9aa53761bc2df173b2c Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:01:22 -0700
Subject: initscripts:Bumped/Updated for LinHES 7.

---
 abs/core-testing/initscripts/PKGBUILD            | 32 ++++++++++++++++--------
 abs/core-testing/initscripts/initscripts.install | 28 ++++-----------------
 abs/core-testing/initscripts/rc.shutdown.patch   | 28 ++++++++-------------
 abs/core-testing/initscripts/rc.sysinit.patch    | 18 ++++---------
 4 files changed, 41 insertions(+), 65 deletions(-)

diff --git a/abs/core-testing/initscripts/PKGBUILD b/abs/core-testing/initscripts/PKGBUILD
index 7f886e0..df2897e 100644
--- a/abs/core-testing/initscripts/PKGBUILD
+++ b/abs/core-testing/initscripts/PKGBUILD
@@ -1,23 +1,33 @@
-# $Id: PKGBUILD 25007 2009-01-22 17:10:39Z aaron $
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
+# $Id: PKGBUILD 85250 2010-07-11 09:54:57Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
 # Maintainer: Aaron Griffin <aaron@archlinux.org>
 
 pkgname=initscripts
-pkgver=2009.01
-pkgrel=9
+pkgver=2010.07
+pkgrel=1
 pkgdesc="System initialization/bootup scripts"
 arch=('i686' 'x86_64')
 url="http://www.archlinux.org"
 license=('GPL')
 groups=('base')
 backup=(etc/inittab etc/rc.conf etc/rc.local etc/rc.local.shutdown)
-depends=('glibc' 'bash' 'awk' 'grep' 'coreutils' 'sed' 'udev>=118' 'net-tools' 'ncurses' 'kbd' 'findutils')
-source=(ftp://ftp.archlinux.org/other/initscripts/${pkgname}-${pkgver}.tar.gz rc.sysinit.patch rc.shutdown.patch)
-md5sums=('b947f3efd5d4681459fe8073d610f1b5')
+depends=('glibc' 'bash' 'awk' 'grep' 'coreutils' 'sed' 'udev>=139-1'
+         'net-tools' 'ncurses' 'kbd' 'findutils' 'sysvinit')
+optdepends=('bridge-utils: Network bridging support'
+            'dhcpcd: DHCP network configuration'
+            'wireless_tools: Wireless networking')
+install=initscripts.install
+source=(ftp://ftp.archlinux.org/other/initscripts/${pkgname}-${pkgver}-${pkgrel}.tar.xz rc.sysinit.patch rc.shutdown.patch)
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}/
-   patch -p0 < $startdir/src/rc.sysinit.patch  || exit 1
-   patch -p0 < $startdir/src/rc.shutdown.patch || exit 1
-  DESTDIR=$startdir/pkg ./install.sh
+  cd ${srcdir}/${pkgname}-${pkgver}-${pkgrel}/
+  patch -p0 < ${srcdir}/rc.sysinit.patch || exit 1
+  patch -p0 < ${srcdir}/rc.shutdown.patch || exit 1
+  DESTDIR=${pkgdir} ./install.sh
 }
+sha256sums=('16b89a9108deacb7d2afd965e59e31aa4b313fc4d1a660fb3cc1fa5c28cfc053'
+            '3a8a82edd680263c4ffa7289fdb6dac69d4611905d093ee3457c00e008e95a1a'
+            'caeb8d9e56783d01001875ffa12d207bc78e06d0fbe3883ce1b68efdfa6ce195')
+sha256sums=('16b89a9108deacb7d2afd965e59e31aa4b313fc4d1a660fb3cc1fa5c28cfc053'
+            '3a8a82edd680263c4ffa7289fdb6dac69d4611905d093ee3457c00e008e95a1a'
+            'fd5248ccfc927ca0d8722cec61c041083b4bf79126176d18d51d5e21378ec5fa')
diff --git a/abs/core-testing/initscripts/initscripts.install b/abs/core-testing/initscripts/initscripts.install
index 9fffa9b..360101c 100644
--- a/abs/core-testing/initscripts/initscripts.install
+++ b/abs/core-testing/initscripts/initscripts.install
@@ -1,25 +1,7 @@
 post_upgrade() {
-  cat << "EOF"
------------------------------------------------------------
-IMPORTANT NOTICE FOR ENCRYPTION USERS
-
-The "password" column in /etc/crypttab has now
-two special keywords:
-- ASK  ask for a passphrase on boot
-- SWAP use a random key and create swapspace
-       This is particularly dangerous, as the
-       volume in question will be overwritten
-       If you use SWAP as your passphrase (which
-       is insecure anyway), be sure to remove it
-       from /etc/crypttab to avoid dataloss!
-
-See /etc/crypttab(.pacnew) for more information.
------------------------------------------------------------
-Attention netcfg users: netcfg is no longer included as
-part of the initscripts package.
-Be aware that rc.conf's NET_PROFILES has changed to
-NETWORKS, and that netcfg must be installed separately.
-For more info, see the netcfg man page.
------------------------------------------------------------
-EOF
+  if [ "$(vercmp $2 2009.07)" -lt 0 ]; then
+    echo "==> Adjusting /etc/inittab for transition to /dev/tty standard."
+    echo "==> Original file saved as /etc/inittab.pacsave"
+    sed -i'.pacsave' 's#vc/\([0-9]\)#tty\1#' /etc/inittab
+  fi
 }
diff --git a/abs/core-testing/initscripts/rc.shutdown.patch b/abs/core-testing/initscripts/rc.shutdown.patch
index 7456b54..329164d 100644
--- a/abs/core-testing/initscripts/rc.shutdown.patch
+++ b/abs/core-testing/initscripts/rc.shutdown.patch
@@ -1,23 +1,15 @@
---- rc.shutdown.orig	2009-02-06 15:32:04.000000000 +0000
-+++ rc.shutdown	2009-02-06 15:45:05.000000000 +0000
-@@ -22,6 +22,12 @@
- 	/etc/rc.local.shutdown
+--- rc.shutdown.orig	2010-08-08 23:50:24.000000000 +0000
++++ rc.shutdown	2010-08-08 23:51:37.000000000 +0000
+@@ -32,6 +32,12 @@
+ 		fi
+ 	done
  fi
- 
 +#unmount network filesystems for runit
-+#if [ -e /var/service/netfs ]
++#if [ -e /var/services/netfs ]
 +#then
-+    /etc/rc.d/netfs stop
++   /etc/rc.d/netfs stop
 +#fi
 +
- if [ "$PREVLEVEL" = "3" -o "$PREVLEVEL" = "5" ]; then
- 	# Shutdown daemons
- 	let i=${#DAEMONS[@]}
-@@ -39,6 +45,7 @@
- 	fi
- fi
- 
-+
- # Terminate all processes
- stat_busy "Sending SIGTERM To Processes"
- /sbin/killall5 -15 &> /dev/null
+ # Shutdown daemons in reverse order
+ let i=${#DAEMONS[@]}-1
+ while [ $i -ge 0 ]; do
diff --git a/abs/core-testing/initscripts/rc.sysinit.patch b/abs/core-testing/initscripts/rc.sysinit.patch
index 6556069..b0253d0 100644
--- a/abs/core-testing/initscripts/rc.sysinit.patch
+++ b/abs/core-testing/initscripts/rc.sysinit.patch
@@ -1,5 +1,5 @@
---- /tmp/rc.sysinit.orig	2009-04-02 16:40:47.000000000 +0000
-+++ rc.sysinit	2009-04-02 16:44:20.000000000 +0000
+--- rc.sysinit.orig	2010-08-08 23:42:36.000000000 +0000
++++ rc.sysinit	2010-08-08 23:44:28.000000000 +0000
 @@ -7,10 +7,9 @@
  . /etc/rc.d/functions
  
@@ -7,18 +7,10 @@
 -printhl "Arch Linux\n"
 -printhl "${C_H2}http://www.archlinux.org"
 -printhl "Copyright 2002-2007 Judd Vinet"
--printhl "Copyright 2007-2009 Aaron Griffin"
-+printhl "LinHES"
-+printhl "The Linux Home Entertainment System"
+-printhl "Copyright 2007-2010 Aaron Griffin"
++printhl "LinHES\n"
++printhl "The Linux Home Entertainment System\n"
 +printhl "${C_H2}http://www.linhes.org"
  printhl "Distributed under the GNU General Public License (GPL)"
  printsep
  
-@@ -85,6 +84,7 @@
- if ! [ "$load_modules" = "off" ]; then
- 	if [ -f /proc/modules ]; then
- 		stat_busy "Loading Modules"
-+		/usr/LH/bin/load-modules-mythvantage.sh
- 		for mod in "${MODULES[@]}"; do
- 			if [ "$mod" = "${mod#!}" ]; then
- 				/sbin/modprobe $mod
-- 
cgit v0.12


From 524df6c64b4e2c1107152f53d04607578edc04a5 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:01:31 -0700
Subject: inputproto:Bumped/Updated for LinHES 7.

---
 abs/core-testing/inputproto/PKGBUILD | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/abs/core-testing/inputproto/PKGBUILD b/abs/core-testing/inputproto/PKGBUILD
index 23f98c4..2741bb7 100644
--- a/abs/core-testing/inputproto/PKGBUILD
+++ b/abs/core-testing/inputproto/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 26845 2009-02-13 15:22:04Z andyrtr $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 54533 2009-10-11 09:28:09Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=inputproto
-pkgver=1.5.0
+pkgver=2.0
 pkgrel=1
 pkgdesc="X11 Input extension wire protocol"
-arch=(i686 x86_64)
+arch=(any)
 license=('custom')
 url="http://xorg.freedesktop.org/"
 source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('dcc36554aea1338b3813943daf1e9988')
+md5sums=('0f7acbc14a082f9ae03744396527d23d')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-- 
cgit v0.12


From 62af3ffd3cd796116b55834811a5a1a60230b7e0 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:02:18 -0700
Subject: intel-dri:Removed for LinHES 7.

---
 abs/core-testing/intel-dri/PKGBUILD                |  43 ---------
 .../intel-dri/intel-disable-ttm-warning.patch      |  13 ---
 abs/core-testing/intel-dri/intel-revert-vbl.patch  |  21 -----
 .../intel-dri/mesa-7.1-link-shared.patch           | 102 ---------------------
 4 files changed, 179 deletions(-)
 delete mode 100644 abs/core-testing/intel-dri/PKGBUILD
 delete mode 100644 abs/core-testing/intel-dri/intel-disable-ttm-warning.patch
 delete mode 100644 abs/core-testing/intel-dri/intel-revert-vbl.patch
 delete mode 100644 abs/core-testing/intel-dri/mesa-7.1-link-shared.patch

diff --git a/abs/core-testing/intel-dri/PKGBUILD b/abs/core-testing/intel-dri/PKGBUILD
deleted file mode 100644
index 8da4e48..0000000
--- a/abs/core-testing/intel-dri/PKGBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# $Id: $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
-pkgname=intel-dri
-pkgver=7.2
-pkgrel=2
-pkgdesc="Mesa DRI drivers for Intel chipsets"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('libdrm>=2.3.1' 'expat>=2.0.1' 'libgl>=7.2')
-makedepends=('glproto>=1.4.9' 'pkgconfig' 'libxfixes' 'libxdamage' 'libxxf86vm' 'libxext')
-options=('!libtool')
-source=(http://downloads.sourceforge.net/mesa3d/MesaLib-${pkgver}.tar.bz2
-	mesa-7.1-link-shared.patch
-	intel-revert-vbl.patch
-	intel-disable-ttm-warning.patch)
-md5sums=('04d379292e023df0b0266825cb0dbde5'
-         'f0baa948d9810f268413111ee439d24b'
-         'a111f4dc82e894f8801bc3fa129af7af'
-         'a393d374b5d187ff2a5bb90b0f347c9a')
-
-build() {
-  cd ${srcdir}/Mesa-${pkgver}
-  patch -Np1 -i "${srcdir}/intel-revert-vbl.patch" || return 1
-  patch -Np1 -i "${srcdir}/intel-disable-ttm-warning.patch" || return 1
-  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1
-  ./configure --prefix=/usr \
-    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
-    --with-dri-drivers=i810,i915,i965 \
-    --enable-glx-tls \
-    --disable-ttm-api \
-    --with-driver=dri \
-    --enable-xcb \
-    --disable-glu \
-    --disable-glut \
-    --disable-glw || return 1
-  make || return 1
-  cd src/mesa/drivers/dri || return 1
-  make DESTDIR=${pkgdir} install || return 1
-  rm -rf ${pkgdir}/usr/lib/pkgconfig
-  rm -rf ${pkgdir}/usr/include
-  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so
-}
diff --git a/abs/core-testing/intel-dri/intel-disable-ttm-warning.patch b/abs/core-testing/intel-dri/intel-disable-ttm-warning.patch
deleted file mode 100644
index f9d5223..0000000
--- a/abs/core-testing/intel-dri/intel-disable-ttm-warning.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -ruN Mesa-7.2.orig/src/mesa/drivers/dri/intel/intel_context.c Mesa-7.2/src/mesa/drivers/dri/intel/intel_context.c
---- Mesa-7.2.orig/src/mesa/drivers/dri/intel/intel_context.c	2008-09-13 20:25:44.000000000 +0000
-+++ Mesa-7.2/src/mesa/drivers/dri/intel/intel_context.c	2008-12-21 21:27:45.000000000 +0000
-@@ -490,9 +490,6 @@
-    if (intel->bufmgr == NULL) {
-       if (ttm_disable) {
- 	 fprintf(stderr, "TTM buffer manager disabled.  Using classic.\n");
--      } else {
--	 fprintf(stderr, "Failed to initialize TTM buffer manager.  "
--		 "Falling back to classic.\n");
-       }
- 
-       if (intelScreen->tex.size == 0) {
diff --git a/abs/core-testing/intel-dri/intel-revert-vbl.patch b/abs/core-testing/intel-dri/intel-revert-vbl.patch
deleted file mode 100644
index 0394414..0000000
--- a/abs/core-testing/intel-dri/intel-revert-vbl.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-commit 532d2051245a1d8afe7ca236f1d966d555bb121a
-Author: Dave Airlie <airlied@linux.ie>
-Date:   Fri Sep 12 17:21:25 2008 +1000
-
-    Revert "intel: sync to vblank by default"
-    
-    This reverts commit e9bf3e4cc9a7e4bcd4c45bd707541d26ecdf0409.
-
-diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
-index c193830..f02192d 100644
---- a/src/mesa/drivers/dri/intel/intel_screen.c
-+++ b/src/mesa/drivers/dri/intel/intel_screen.c
-@@ -55,7 +55,7 @@ PUBLIC const char __driConfigOptions[] =
-    DRI_CONF_BEGIN
-    DRI_CONF_SECTION_PERFORMANCE
-       DRI_CONF_FTHROTTLE_MODE(DRI_CONF_FTHROTTLE_IRQS)
--      DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_ALWAYS_SYNC)
-+      DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_DEF_INTERVAL_0)
-       /* Options correspond to DRI_CONF_BO_REUSE_DISABLED,
-        * DRI_CONF_BO_REUSE_ALL
-        */
diff --git a/abs/core-testing/intel-dri/mesa-7.1-link-shared.patch b/abs/core-testing/intel-dri/mesa-7.1-link-shared.patch
deleted file mode 100644
index 7fdbf14..0000000
--- a/abs/core-testing/intel-dri/mesa-7.1-link-shared.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
---- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
-+++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
-@@ -6,12 +6,17 @@ include $(TOP)/configs/current
- 
- 
- 
--default: $(TOP)/$(LIB_DIR) subdirs
-+default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
- 
- 
- $(TOP)/$(LIB_DIR):
- 	-mkdir $(TOP)/$(LIB_DIR)
- 
-+libdricore.so:
-+	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
-+
-+$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
-+	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
- 
- subdirs:
- 	@for dir in $(DRI_DIRS) ; do \
-@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
- 	$(pcedit) $< > $@
- 
- 
--install: dri.pc
-+install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
- 	@for dir in $(DRI_DIRS) ; do \
- 		if [ -d $$dir ] ; then \
- 			(cd $$dir && $(MAKE) install) || exit 1 ; \
- 		fi \
- 	done
-+	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
-+	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
- 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
- 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
- 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
-@@ -52,5 +59,6 @@ clean:
- 			(cd $$dir && $(MAKE) clean) ; \
- 		fi \
- 	done
-+	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
- 	-rm -f common/*.o
- 	-rm -f *.pc
-diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
---- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
-+++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
-@@ -1,6 +1,6 @@
- # -*-makefile-*-
- 
--MESA_MODULES = $(TOP)/src/mesa/libmesa.a
-+MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
- 
- COMMON_SOURCES = \
-         ../common/utils.c \
-@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
- 
- $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
- 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
--		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
-+		$(OBJECTS) $(WINOBJ) \
-+		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
-+		$(DRI_LIB_DEPS)
- 
- 
- $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
-diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
---- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
-+++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
-@@ -77,7 +77,6 @@
-  */
- 
- .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
--.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
- 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
- _generic_read_RGBA_span_BGRA8888_REV_MMX:
- 	pushl	%ebx
-@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
-  */
- 
- .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
--.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
- 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
- _generic_read_RGBA_span_BGRA8888_REV_SSE:
- 	pushl	%esi
-@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
- 
- 	.text
- .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
--.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
- 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
- _generic_read_RGBA_span_BGRA8888_REV_SSE2:
- 	pushl	%esi
-@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
- 
- 	.text
- 	.globl	_generic_read_RGBA_span_RGB565_MMX
--        .hidden _generic_read_RGBA_span_RGB565_MMX
- 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
- 
- _generic_read_RGBA_span_RGB565_MMX:
-- 
cgit v0.12


From b08ed1871d6bdc405d611592632f8ae11aed5d72 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:02:35 -0700
Subject: iproute2:Bumped/Updated for LinHES 7.

---
 abs/core-testing/iproute2/PKGBUILD           | 35 ++++++++++-------
 abs/core-testing/iproute2/iproute2-fhs.patch | 57 ++++++++++++++++++++++++++++
 abs/core-testing/iproute2/tc.patch           | 26 +++++++++++++
 3 files changed, 104 insertions(+), 14 deletions(-)
 create mode 100644 abs/core-testing/iproute2/iproute2-fhs.patch
 create mode 100644 abs/core-testing/iproute2/tc.patch

diff --git a/abs/core-testing/iproute2/PKGBUILD b/abs/core-testing/iproute2/PKGBUILD
index ed280e5..38b5a4c 100644
--- a/abs/core-testing/iproute2/PKGBUILD
+++ b/abs/core-testing/iproute2/PKGBUILD
@@ -1,37 +1,44 @@
-# $Id: PKGBUILD 24415 2009-01-16 12:43:06Z ronald $
+# $Id: PKGBUILD 82589 2010-06-14 06:49:40Z ronald $
 # Maintainer: Ronald van Haren <ronald.archlinux.org>
 # Contributor: Judd Vinet <jvinet@zeroflux.org>
 
 pkgname=iproute2
-pkgver=2.6.28
-pkgrel=1
+pkgver=2.6.34
+pkgrel=2
 pkgdesc="IP Routing Utilities"
 arch=('i686' 'x86_64')
 license=('GPL2')
 url="http://www.linux-foundation.org/en/Net:Iproute2"
 depends=('linux-atm' 'perl')
-
 provides=('iproute')
 conflicts=('iproute')
 replaces=('iproute')
-
+options=('!makeflags')
 backup=('etc/iproute2/ematch_map' 'etc/iproute2/rt_dsfield' 'etc/iproute2/rt_protos' \
 	'etc/iproute2/rt_realms' 'etc/iproute2/rt_scopes' 'etc/iproute2/rt_tables')
-
-source=(http://devresources.linux-foundation.org/dev/iproute2/download/iproute2-${pkgver}.tar.bz2)
-md5sums=('595f9b17320f69e8d30d2fa80f1bca14')
+source=(http://devresources.linux-foundation.org/dev/iproute2/download/iproute2-${pkgver}.tar.bz2
+	'iproute2-fhs.patch' 'tc.patch')
+sha1sums=('b57f98e284c68a464b9c3e132d29760de6331688'
+          'ae7c4529555e1dce389fcedcbb7e0df5c726741a'
+          'de7ffa44922741c1239e1715e1d81d8f4e7b04e4')
 
 build() {
   cd $srcdir/iproute2-${pkgver}
   
-  sed -i 's|/usr/local/lib/iptables|/usr/lib/iptables|' include/iptables.h || return 1
-  sed -i 's|=/share|=/usr/share|' Makefile || return 1
-  sed -i 's|=/sbin|=/usr/sbin|' Makefile || return 1
-
+  # set correct fhs structure
+  patch -Np1 -i ${srcdir}/iproute2-fhs.patch || return 1
+  patch -Np0 -i ${srcdir}/tc.patch || return 1
   ./configure || return 1
   make || return 1
-  make DESTDIR=$pkgdir install || return 1
+}
 
-#  chmod 755 $pkgdir/usr/sbin/ifcfg || return 1
+package() {
+  cd $srcdir/iproute2-${pkgver}
 
+  make DESTDIR=$pkgdir install || return 1
+
+  # libnetlink isn't installed, install it FS#19385
+  install -Dm644 include/libnetlink.h ${pkgdir}/usr/include/libnetlink.h || return 1
+  install -Dm644 lib/libnetlink.a ${pkgdir}/usr/lib/libnetlink.a || return 1
 }
+
diff --git a/abs/core-testing/iproute2/iproute2-fhs.patch b/abs/core-testing/iproute2/iproute2-fhs.patch
new file mode 100644
index 0000000..563a915
--- /dev/null
+++ b/abs/core-testing/iproute2/iproute2-fhs.patch
@@ -0,0 +1,57 @@
+diff -Naur iproute2.old/Makefile iproute2-2.6.29/Makefile
+--- iproute2.old/Makefile	2009-11-11 22:05:21.251407668 +0100
++++ iproute2-2.6.29/Makefile	2009-11-11 22:07:09.891833516 +0100
+@@ -1,11 +1,12 @@
+ DESTDIR=/usr/
+ ROOTDIR=$(DESTDIR)
+ LIBDIR=/usr/lib/
+-SBINDIR=/sbin
++SBINDIR=/usr/sbin
+ CONFDIR=/etc/iproute2
+-DOCDIR=/share/doc/iproute2
+-MANDIR=/share/man
++DOCDIR=/usr/share/doc/iproute2
++MANDIR=/usr/share/man
+ ARPDDIR=/var/lib/arpd
++SHAREDIR=/usr/share
+
+ # Path to db_185.h include
+ DBM_INCLUDE:=$(ROOTDIR)/usr/include
+diff -Naur iproute2.old/netem/Makefile iproute2-2.6.29/netem/Makefile
+--- iproute2.old/netem/Makefile	2009-11-11 22:05:21.284750207 +0100
++++ iproute2-2.6.29/netem/Makefile	2009-11-11 22:07:54.674736924 +0100
+@@ -20,9 +20,9 @@
+ 	$(HOSTCC) $(CCOPTS) -I../include -o $@ $@.c -lm
+ 
+ install: all
+-	mkdir -p $(DESTDIR)/lib/tc
++	mkdir -p $(DESTDIR)/${SHAREDIR}/tc
+ 	for i in $(DISTDATA); \
+-	do install -m 755 $$i $(DESTDIR)/lib/tc; \
++	do install -m 755 $$i $(DESTDIR)/${SHAREDIR}/tc; \
+ 	done
+ 
+ clean:
+diff -Naur iproute2.old/tc/tc_util.c iproute2-2.6.29/tc/tc_util.c
+--- iproute2.old/tc/tc_util.c	2009-11-11 22:05:21.298076943 +0100
++++ iproute2-2.6.29/tc/tc_util.c	2009-11-11 22:09:32.865152646 +0100
+@@ -24,8 +24,8 @@
+ #include "utils.h"
+ #include "tc_util.h"
+ 
+-#ifndef LIBDIR
+-#define LIBDIR "/usr/lib/"
++#ifndef SHAREDIR
++#define SHAREDIR "/usr/share"
+ #endif
+ 
+ const char *get_tc_lib(void)
+@@ -34,7 +34,7 @@
+ 
+ 	lib_dir = getenv("TC_LIB_DIR");
+ 	if (!lib_dir)
+-		lib_dir = LIBDIR "/tc/";
++		lib_dir = SHAREDIR "/tc/";
+ 
+ 	return lib_dir;
+ }
diff --git a/abs/core-testing/iproute2/tc.patch b/abs/core-testing/iproute2/tc.patch
new file mode 100644
index 0000000..e6d6276
--- /dev/null
+++ b/abs/core-testing/iproute2/tc.patch
@@ -0,0 +1,26 @@
+--- tc/Makefile.old	2010-06-14 08:29:49.257421437 +0200
++++ tc/Makefile	2010-06-14 08:30:07.157419977 +0200
+@@ -99,18 +99,11 @@
+ 	$(AR) rcs $@ $(TCLIB)
+ 
+ install: all
+-	echo mkdir -p $(MODDESTDIR)
+-	echo install -m 0755 tc $(DESTDIR)$(SBINDIR)
+-	for i in $(TCSO); \
+-	do echo install -m 755 $$i $(MODDESTDIR); \
+-	done
+-	if [ ! -f $(MODDESTDIR)/m_ipt.so ]; then \
+-	if [ -f $(MODDESTDIR)/m_xt.so ]; \
+-		then ln -s m_xt.so $(MODDESTDIR)/m_ipt.so ; \
+-	elif [ -f $(MODDESTDIR)/m_xt_old.so ]; \
+-		then ln -s m_xt_old.so $(MODDESTDIR)/m_ipt.so ; \
+-	fi; \
+-	fi
++	mkdir -p $(DESTDIR)$(LIBDIR)/tc
++	install -m 0755 tc $(DESTDIR)$(SBINDIR)
++	for i in $(TCSO); \
++	do install -m 755 $$i $(DESTDIR)$(LIBDIR)/tc; \
++	done
+ 
+ clean:
+ 	rm -f $(TCOBJ) $(TCLIB) libtc.a tc *.so emp_ematch.yacc.h; \
-- 
cgit v0.12


From 92a89d1548f56512976478f8e5fe1681e3dbcdcd Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:02:49 -0700
Subject: ipw2100:Bumped/Updated for LinHES 7.

---
 abs/core-testing/ipw2100-fw/PKGBUILD | 39 ++++++++++++++----------------------
 1 file changed, 15 insertions(+), 24 deletions(-)

diff --git a/abs/core-testing/ipw2100-fw/PKGBUILD b/abs/core-testing/ipw2100-fw/PKGBUILD
index 52cd9f5..ccb797a 100644
--- a/abs/core-testing/ipw2100-fw/PKGBUILD
+++ b/abs/core-testing/ipw2100-fw/PKGBUILD
@@ -1,36 +1,27 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+# $Id: PKGBUILD 59422 2009-11-23 20:05:10Z giovanni $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
 
 pkgname=ipw2100-fw
 pkgver=1.3
-pkgrel=2
+pkgrel=4
 pkgdesc="Intel Centrino Drivers firmware for IPW2100"
-arch=(i686 x86_64)
+arch=('any')
 url="http://ipw2100.sourceforge.net/"
-depends=('wireless_tools')
-#source=(ipw2100-fw-1.3.tgz http://switch.dl.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tgz)
-source=(http://bughost.org/firmware/$pkgname-$pkgver.tgz)
-install=ipw2100-fw.install
-replaces=ipw2100
+license=('custom')
+depends=()
+replaces=('ipw2100')
+source=(http://bughost.org/firmware/${pkgname}-${pkgver}.tgz)
+md5sums=('46aa75bcda1a00efa841f9707bbbd113')
 
 build() {
-  #cd $startdir/src/$pkgname-$pkgver
-  #make
-  #Install kernel modules
-  #for i in *.ko
-  #do
-  #install -D -m 644 $i $startdir/pkg/lib/modules/$(uname -r)/kernel/drivers/net/wireless/ipw2100/$i
-  #done
-  
-  cd $startdir/src
+  cd "${srcdir}"
   
   # Install firmware
   for i in *.fw
   do
-  install -D -m 644 $i $startdir/pkg/lib/firmware/$i
+    install -D -m 644 $i "${pkgdir}/lib/firmware/$i" || return 1
   done 
-  
-  # Install firmware license
-  install -D -m 644 LICENSE $startdir/pkg/lib/firmware/LICENSE.ipw2100-fw
- }
-md5sums=('46aa75bcda1a00efa841f9707bbbd113')
+  # Install license
+  install -D -m 644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
-- 
cgit v0.12


From 9e8224f459764afc3f6f4702929130bffc33f98c Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:02:57 -0700
Subject: ipw2200:Bumped/Updated for LinHES 7.

---
 abs/core-testing/ipw2200-fw/PKGBUILD | 45 +++++++++++++++---------------------
 1 file changed, 18 insertions(+), 27 deletions(-)

diff --git a/abs/core-testing/ipw2200-fw/PKGBUILD b/abs/core-testing/ipw2200-fw/PKGBUILD
index 5ff080b..75b4be9 100644
--- a/abs/core-testing/ipw2200-fw/PKGBUILD
+++ b/abs/core-testing/ipw2200-fw/PKGBUILD
@@ -1,34 +1,25 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+# $Id: PKGBUILD 59427 2009-11-23 20:20:15Z giovanni $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
 
 pkgname=ipw2200-fw
-pkgver=3.0
+pkgver=3.1
 pkgrel=2
-pkgdesc="Intel Centrino Drivers firmware for IPW2200"
-arch=(i686 x86_64)
-url="http://ipw2200.sourceforge.net/"
-depends=('wireless_tools')
-source=(http://bughost.org/firmware/$pkgname-$pkgver.tgz)
-install=ipw2200-fw.install
-replaces=ipw2200
+pkgdesc="Firmware for the Intel PRO/Wireless 2200BG"
+arch=('any')
+url='http://ipw2200.sourceforge.net/'
+license=('custom')
+depends=()
+source=(http://bughost.org/firmware/${pkgname}-${pkgver}.tgz)
+replaces=('ipw2200')
+md5sums=('eaba788643c7cc7483dd67ace70f6e99')
 
 build() {
-  #cd $startdir/src/$pkgname-$pkgver
-  #make
-  #Install kernel modules
-  #for i in *.ko
-  #do
-  #install -D -m 644 $i  $startdir/pkg/lib/modules/$(uname -r)/kernel/drivers/net/wireless/ipw2200/$i
-  #done
- 
-  cd $startdir/src/ipw2200-fw-3.0
-  
+  cd "${srcdir}/ipw2200-fw-${pkgver}"
   # Install firmware
-  for i in *.fw
-  do
-  install -D -m 644 $i $startdir/pkg/lib/firmware/$i
+  for i in ipw*.fw; do
+    install -D -m 644 $i "${pkgdir}/lib/firmware/$i"
   done
-  # Install firmware license
-  install -D -m 644 LICENSE.ipw2200-fw $startdir/pkg/lib/firmware/LICENSE.ipw2200-fw
- }
-md5sums=('34a5ed3702006f5470ebfd513e04d9eb')
+  # Install license
+  install -D -m 644 LICENSE.ipw2200-fw "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
-- 
cgit v0.12


From 8549bc541dc177b61cad87c0f3829cb7365a8c71 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:03:39 -0700
Subject: iwlwifi-3945-ucode:Removed for LinHES 7.

---
 abs/core-testing/iwlwifi-3945-ucode/PKGBUILD | 28 ----------------------------
 1 file changed, 28 deletions(-)
 delete mode 100644 abs/core-testing/iwlwifi-3945-ucode/PKGBUILD

diff --git a/abs/core-testing/iwlwifi-3945-ucode/PKGBUILD b/abs/core-testing/iwlwifi-3945-ucode/PKGBUILD
deleted file mode 100644
index 14de93b..0000000
--- a/abs/core-testing/iwlwifi-3945-ucode/PKGBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
-
-pkgname=iwlwifi-3945-ucode
-pkgver=2.14.1.5
-pkgrel=2
-pkgdesc="Intel wireless firmware for IPW3945 (iwlwifi driver)"
-arch=(i686 x86_64)
-url="http://intellinuxwireless.org/?p=iwlwifi"
-license=('custom')
-depends=()
-source=(http://intellinuxwireless.org/iwlwifi/downloads/$pkgname-2.14.4.tgz
-        http://intellinuxwireless.org/iwlwifi/downloads/$pkgname-$pkgver.tgz)
-md5sums=('7178aa3a6e08655b8ac9565095bbd441'
-         'a8122d3e026561055f488dc654ccfcd1')
-force=y
-
-build() {
-  cd $startdir/src/$pkgname-2.14.4
-  # Install old firmware for compatibility
-  install -D -m 644 iwlwifi-3945.ucode $startdir/pkg/lib/firmware/iwlwifi-3945.ucode || return 1
-
-  cd $startdir/src/$pkgname-$pkgver
-  # Install firmware
-  install -D -m 644 iwlwifi-3945-1.ucode $startdir/pkg/lib/firmware/iwlwifi-3945-1.ucode || return 1
-  # Install license
-  install -D -m 644 LICENSE.iwlwifi-3945-ucode $startdir/pkg/usr/share/licenses/$pkgname/LICENSE || return 1
-}
-- 
cgit v0.12


From 719250d4230418fa29136084ae3da1a4f63df3b8 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:04:03 -0700
Subject: iwlwifi-4965-ucode:Removed for LinHES 7.

---
 abs/core-testing/iwlwifi-4965-ucode/PKGBUILD | 26 --------------------------
 1 file changed, 26 deletions(-)
 delete mode 100644 abs/core-testing/iwlwifi-4965-ucode/PKGBUILD

diff --git a/abs/core-testing/iwlwifi-4965-ucode/PKGBUILD b/abs/core-testing/iwlwifi-4965-ucode/PKGBUILD
deleted file mode 100644
index 4ce295a..0000000
--- a/abs/core-testing/iwlwifi-4965-ucode/PKGBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# $Id: PKGBUILD 4446 2008-07-07 12:03:57Z thomas $
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
-
-pkgname=iwlwifi-4965-ucode
-pkgver=228.57.2.21
-pkgrel=1
-pkgdesc="Intel wireless firmware for IPW4965 (iwlwifi driver)"
-arch=(i686 x86_64)
-url="http://intellinuxwireless.org/?p=iwlwifi"
-license=('custom')
-depends=()
-source=(http://intellinuxwireless.org/iwlwifi/downloads/$pkgname-$pkgver.tgz
-        http://intellinuxwireless.org/iwlwifi/downloads/$pkgname-228.57.1.21.tgz)
-md5sums=('83804fb4bfa991ffd4849c19a74bf38d'
-         'bce5a13d681100aeee2ddac3beaff437')
-
-build() {
-  cd $startdir/src/$pkgname-228.57.1.21
-  # Install firmware (ABI version 1, for compatibility)
-  install -D -m 644 iwlwifi-4965-1.ucode $startdir/pkg/lib/firmware/iwlwifi-4965-1.ucode || return 1
-  cd $startdir/src/$pkgname-$pkgver
-  # Install firmware (ABI version 2, for future versions of iwl4965)
-  install -D -m 644 iwlwifi-4965-2.ucode $startdir/pkg/lib/firmware/iwlwifi-4965-2.ucode || return 1
-  # Install license
-  install -D -m 644 LICENSE.iwlwifi-4965-ucode $startdir/pkg/usr/share/licenses/$pkgname/LICENSE || return 1
-}
-- 
cgit v0.12


From fd0b50814bfd415967bf312971924496bc1b7626 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:04:10 -0700
Subject: kbproto:Bumped/Updated for LinHES 7.

---
 abs/core-testing/kbproto/PKGBUILD | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/abs/core-testing/kbproto/PKGBUILD b/abs/core-testing/kbproto/PKGBUILD
index f902e44..9cd471d 100644
--- a/abs/core-testing/kbproto/PKGBUILD
+++ b/abs/core-testing/kbproto/PKGBUILD
@@ -1,18 +1,21 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 56308 2009-10-21 14:34:49Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=kbproto
-pkgver=1.0.3
+pkgver=1.0.4
 pkgrel=1
 pkgdesc="X11 XKB extension wire protocol"
-arch=(i686 x86_64)
+arch=(any)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('6092cdb0a1225f95356ddbe6c2abaad5')
+sha1sums=('d300745389d3a80d90c9a3c989651f228db486e5')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-- 
cgit v0.12


From fc386ec94ee9c93fd5296073de04874fedd08ff3 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:04:41 -0700
Subject: kernel-headers:Removed for LinHES 7.

---
 abs/core-testing/kernel-headers/PKGBUILD           | 30 -------
 .../kernel-headers/netfilter-includes.patch        | 91 ----------------------
 abs/core-testing/kernel-headers/serial.diff        | 13 ----
 3 files changed, 134 deletions(-)
 delete mode 100644 abs/core-testing/kernel-headers/PKGBUILD
 delete mode 100644 abs/core-testing/kernel-headers/netfilter-includes.patch
 delete mode 100644 abs/core-testing/kernel-headers/serial.diff

diff --git a/abs/core-testing/kernel-headers/PKGBUILD b/abs/core-testing/kernel-headers/PKGBUILD
deleted file mode 100644
index d928a77..0000000
--- a/abs/core-testing/kernel-headers/PKGBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# $Id: PKGBUILD 19341 2008-11-20 14:48:13Z andyrtr $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-
-pkgname=kernel-headers
-pkgver=2.6.28.5
-_basever=2.6.28
-pkgrel=1
-pkgdesc="Kernel headers sanitized for use in userspace"
-arch=('i686' 'x86_64')
-license=('GPL')
-url="http://www.gnu.org/software/libc"
-groups=('base')
-source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${_basever}.tar.bz2
-	http://www.kernel.org/pub/linux/kernel/v2.6/patch-${pkgver}.bz2 serial.diff)
-md5sums=('d351e44709c9810b85e29b877f50968a'
-         '7a062fcdec46cec78c3fedbf558e334b'
-	 'd66b5cc1e1c2ce40d06d77167f36dfd9')
-
-build() {
-  cd ${srcdir}/linux-${_basever}
-  patch -Np1 -i ${srcdir}/patch-${pkgver} || return 1
-#  patch -p0 < ../../serial.diff
-
-  make mrproper
-  make headers_check || return 1
-  make INSTALL_HDR_PATH=${pkgdir}/usr headers_install
-
-  rm -rf ${pkgdir}/usr/include/drm
-}
diff --git a/abs/core-testing/kernel-headers/netfilter-includes.patch b/abs/core-testing/kernel-headers/netfilter-includes.patch
deleted file mode 100644
index b39a4dd..0000000
--- a/abs/core-testing/kernel-headers/netfilter-includes.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From: Patrick McHardy <kaber@trash.net>
-Date: Wed, 21 May 2008 21:08:38 +0000 (-0700)
-Subject: netfilter: Move linux/types.h inclusions outside of #ifdef __KERNEL__
-X-Git-Tag: v2.6.26-rc4~7^2~9
-X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=c8942f1f0a7e2160ebf2e51ba89e50ee5895a1e7
-
-netfilter: Move linux/types.h inclusions outside of #ifdef __KERNEL__
-
-Greg Steuck <greg@nest.cx> points out that some of the netfilter
-headers can't be used in userspace without including linux/types.h
-first. The headers include their own linux/types.h include statements,
-these are stripped by make headers-install because they are inside
-#ifdef __KERNEL__ however. Move them out to fix this.
-
-Reported and Tested by Greg Steuck.
-
-Signed-off-by: Patrick McHardy <kaber@trash.net>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
-
-diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
-index e4c6659..0c5eb7e 100644
---- a/include/linux/netfilter.h
-+++ b/include/linux/netfilter.h
-@@ -3,7 +3,6 @@
- 
- #ifdef __KERNEL__
- #include <linux/init.h>
--#include <linux/types.h>
- #include <linux/skbuff.h>
- #include <linux/net.h>
- #include <linux/netdevice.h>
-@@ -14,6 +13,7 @@
- #include <linux/list.h>
- #include <net/net_namespace.h>
- #endif
-+#include <linux/types.h>
- #include <linux/compiler.h>
- 
- /* Responses from hook functions. */
-diff --git a/include/linux/netfilter_arp/arp_tables.h b/include/linux/netfilter_arp/arp_tables.h
-index dd9c97f..590ac3d 100644
---- a/include/linux/netfilter_arp/arp_tables.h
-+++ b/include/linux/netfilter_arp/arp_tables.h
-@@ -11,11 +11,11 @@
- 
- #ifdef __KERNEL__
- #include <linux/if.h>
--#include <linux/types.h>
- #include <linux/in.h>
- #include <linux/if_arp.h>
- #include <linux/skbuff.h>
- #endif
-+#include <linux/types.h>
- #include <linux/compiler.h>
- #include <linux/netfilter_arp.h>
- 
-diff --git a/include/linux/netfilter_ipv4/ip_tables.h b/include/linux/netfilter_ipv4/ip_tables.h
-index bfc889f..092bd50 100644
---- a/include/linux/netfilter_ipv4/ip_tables.h
-+++ b/include/linux/netfilter_ipv4/ip_tables.h
-@@ -17,11 +17,11 @@
- 
- #ifdef __KERNEL__
- #include <linux/if.h>
--#include <linux/types.h>
- #include <linux/in.h>
- #include <linux/ip.h>
- #include <linux/skbuff.h>
- #endif
-+#include <linux/types.h>
- #include <linux/compiler.h>
- #include <linux/netfilter_ipv4.h>
- 
-diff --git a/include/linux/netfilter_ipv6/ip6_tables.h b/include/linux/netfilter_ipv6/ip6_tables.h
-index f2507dc..1089e33 100644
---- a/include/linux/netfilter_ipv6/ip6_tables.h
-+++ b/include/linux/netfilter_ipv6/ip6_tables.h
-@@ -17,11 +17,11 @@
- 
- #ifdef __KERNEL__
- #include <linux/if.h>
--#include <linux/types.h>
- #include <linux/in6.h>
- #include <linux/ipv6.h>
- #include <linux/skbuff.h>
- #endif
-+#include <linux/types.h>
- #include <linux/compiler.h>
- #include <linux/netfilter_ipv6.h>
- 
diff --git a/abs/core-testing/kernel-headers/serial.diff b/abs/core-testing/kernel-headers/serial.diff
deleted file mode 100644
index 9b53e48..0000000
--- a/abs/core-testing/kernel-headers/serial.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- include/linux/serial.h.orig	2009-02-11 05:59:28.000000000 +0000
-+++ include/linux/serial.h	2009-02-11 06:09:24.000000000 +0000
-@@ -10,8 +10,9 @@
- #ifndef _LINUX_SERIAL_H
- #define _LINUX_SERIAL_H
- 
--#ifdef __KERNEL__
- #include <linux/types.h>
-+
-+#ifdef __KERNEL__
- #include <asm/page.h>
- 
- /*
-- 
cgit v0.12


From d933cc14d917ad4a2f49aac8ff467c51ba902a48 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:05:18 -0700
Subject: kernel26.orig:temp package for 2.6.28-LinHES

---
 abs/core-testing/kernel26.orig/PKGBUILD            |  242 +
 abs/core-testing/kernel26.orig/config              | 4957 ++++++++++++++++++++
 abs/core-testing/kernel26.orig/config.x86_64       | 4761 +++++++++++++++++++
 abs/core-testing/kernel26.orig/coretemp.patch      |   86 +
 abs/core-testing/kernel26.orig/ext4.patch          |  152 +
 abs/core-testing/kernel26.orig/kernel26.install    |  147 +
 abs/core-testing/kernel26.orig/kernel26.preset     |   17 +
 .../kernel26.orig/logo_linux_clut224.ppm           |  883 ++++
 abs/core-testing/kernel26.orig/logo_linux_mono.pbm |   95 +
 .../kernel26.orig/logo_linux_vga16.ppm             |  883 ++++
 abs/core-testing/kernel26.orig/serial.diff         |   13 +
 11 files changed, 12236 insertions(+)
 create mode 100644 abs/core-testing/kernel26.orig/PKGBUILD
 create mode 100644 abs/core-testing/kernel26.orig/config
 create mode 100644 abs/core-testing/kernel26.orig/config.x86_64
 create mode 100644 abs/core-testing/kernel26.orig/coretemp.patch
 create mode 100644 abs/core-testing/kernel26.orig/ext4.patch
 create mode 100644 abs/core-testing/kernel26.orig/kernel26.install
 create mode 100644 abs/core-testing/kernel26.orig/kernel26.preset
 create mode 100644 abs/core-testing/kernel26.orig/logo_linux_clut224.ppm
 create mode 100644 abs/core-testing/kernel26.orig/logo_linux_mono.pbm
 create mode 100644 abs/core-testing/kernel26.orig/logo_linux_vga16.ppm
 create mode 100644 abs/core-testing/kernel26.orig/serial.diff

diff --git a/abs/core-testing/kernel26.orig/PKGBUILD b/abs/core-testing/kernel26.orig/PKGBUILD
new file mode 100644
index 0000000..b74b950
--- /dev/null
+++ b/abs/core-testing/kernel26.orig/PKGBUILD
@@ -0,0 +1,242 @@
+# $Id: PKGBUILD 86792 2010-08-04 14:39:45Z thomas $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+pkgbase="kernel26"
+pkgname=('kernel26' 'kernel26-headers' 'kernel26-manpages' 'kernel26-docs') # Build stock -ARCH kernel
+# pkgname=kernel26-custom       # Build kernel with a different name
+_kernelname=${pkgname#kernel26}
+_basekernel=2.6.34
+pkgver=${_basekernel}.2
+pkgrel=2
+makedepends=('xmlto' 'docbook-xsl')
+_patchname="patch-${pkgver}-${pkgrel}-ARCH"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://www.kernel.org"
+source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2
+        ftp://ftp.archlinux.org/other/kernel26/${_patchname}.bz2
+        # the main kernel config files
+        config config.x86_64
+        # standard config files for mkinitcpio ramdisk
+        kernel26.preset)
+md5sums=('10eebcb0178fb4540e2165bfd7efc7ad'
+         '2a8f0f455395296a1678b226ae63c5a7'
+         '79a11916d1ff63a51eaebe0e750fa9b7'
+         'a7e0aae92e964a0df9e42bdebd548e8c'
+         '25584700a0a679542929c4bed31433b6')
+
+build() {
+  cd ${srcdir}/linux-$_basekernel
+  # Add -ARCH patches
+  # See http://projects.archlinux.org/linux-2.6-ARCH.git/
+  patch -Np1 -i ${srcdir}/${_patchname} || return 1
+
+  if [ "$CARCH" = "x86_64" ]; then
+    cat ../config.x86_64 >./.config
+  else
+    cat ../config >./.config
+  fi
+  if [ "${_kernelname}" != "" ]; then
+    sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
+  fi
+  #
+## A hack to prevent output kernel from being marked as dirty or git
+    sed 's/head=$(git rev-parse --verify --short HEAD 2>\/dev\/null)/0/' \
+        ${srcdir}/linux-$_basekernel/scripts/setlocalversion \
+        > ${srcdir}/linux-$_basekernel/scripts/setlocalversion
+##
+  # get kernel version  
+  make prepare
+  # load configuration
+  # Configure the kernel. Replace the line below with one of your choice.
+  #make menuconfig # CLI menu for configuration
+  #make xconfig # X-based configuration
+  #make oldconfig # using old config from previous kernel version
+  # ... or manually edit .config
+  ####################
+  # stop here
+  # this is useful to configure the kernel
+  #msg "Stopping build"
+  #return 1
+  ####################
+  yes "" | make config
+  # build!
+  make bzImage modules || return 1
+}
+
+package_kernel26() {
+  pkgdesc="The Linux Kernel and modules"
+  groups=('base')
+  backup=(etc/mkinitcpio.d/${pkgname}.preset)
+  depends=('coreutils' 'linux-firmware' 'module-init-tools' 'mkinitcpio>=0.5.20')
+  # pwc, ieee80211 and hostap-driver26 modules are included in kernel26 now
+  # nforce package support was abandoned by nvidia, kernel modules should cover everything now.
+  # kernel24 support is dropped since glibc24
+  replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi'
+            'alsa-driver' 'ieee80211' 'hostap-driver26'
+            'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv'
+            'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs'
+            'gspcav1' 'atl2' 'wlan-ng26' 'rt2500' 'nouveau-drm')
+  install=kernel26.install
+  optdepends=('crda: to set the correct wireless channels of your country')
+
+  KARCH=x86
+  cd ${srcdir}/linux-$_basekernel
+  # get kernel version
+  _kernver="$(make kernelrelease)"
+  mkdir -p ${pkgdir}/{lib/modules,boot}
+  make INSTALL_MOD_PATH=${pkgdir} modules_install || return 1
+  cp System.map ${pkgdir}/boot/System.map26${_kernelname}
+  cp arch/$KARCH/boot/bzImage ${pkgdir}/boot/vmlinuz26${_kernelname}
+  #  # add vmlinux
+  install -m644 -D vmlinux ${pkgdir}/usr/src/linux-${_kernver}/vmlinux
+
+  # install fallback mkinitcpio.conf file and preset file for kernel
+  install -m644 -D ${srcdir}/kernel26.preset ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset || return 1
+  # set correct depmod command for install
+  sed \
+    -e  "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \
+    -e  "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
+    -i $startdir/kernel26.install
+  sed \
+    -e "s|source .*|source /etc/mkinitcpio.d/kernel26${_kernelname}.kver|g" \
+    -e "s|default_image=.*|default_image=\"/boot/${pkgname}.img\"|g" \
+    -e "s|fallback_image=.*|fallback_image=\"/boot/${pkgname}-fallback.img\"|g" \
+    -i ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset
+
+  echo -e "# DO NOT EDIT THIS FILE\nALL_kver='${_kernver}'" > ${pkgdir}/etc/mkinitcpio.d/${pkgname}.kver
+  # remove build and source links
+  rm -f ${pkgdir}/lib/modules/${_kernver}/{source,build}
+  # remove the firmware
+  rm -rf ${pkgdir}/lib/firmware
+}
+
+package_kernel26-headers() {
+  pkgdesc="Header files and scripts for building modules for kernel26"
+  mkdir -p ${pkgdir}/lib/modules/${_kernver}
+  cd ${pkgdir}/lib/modules/${_kernver}
+  ln -sf ../../../usr/src/linux-${_kernver} build
+  cd ${srcdir}/linux-$_basekernel
+  install -D -m644 Makefile \
+    ${pkgdir}/usr/src/linux-${_kernver}/Makefile
+  install -D -m644 kernel/Makefile \
+    ${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile
+  install -D -m644 .config \
+    ${pkgdir}/usr/src/linux-${_kernver}/.config
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include
+
+  for i in acpi asm-generic config generated linux math-emu media net pcmcia scsi sound trace video; do
+    cp -a include/$i ${pkgdir}/usr/src/linux-${_kernver}/include/
+  done
+
+  # copy arch includes for external modules
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/x86
+  cp -a arch/x86/include ${pkgdir}/usr/src/linux-${_kernver}/arch/x86/
+
+  # copy files necessary for later builds, like nvidia and vmware
+  cp Module.symvers ${pkgdir}/usr/src/linux-${_kernver}
+  cp -a scripts ${pkgdir}/usr/src/linux-${_kernver}
+  # fix permissions on scripts dir
+  chmod og-w -R ${pkgdir}/usr/src/linux-${_kernver}/scripts
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions
+
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel
+
+  cp arch/$KARCH/Makefile ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
+  if [ "$CARCH" = "i686" ]; then
+    cp arch/$KARCH/Makefile_32.cpu ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
+  fi
+  cp arch/$KARCH/kernel/asm-offsets.s ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel/
+
+  # add headers for lirc package
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video
+  cp drivers/media/video/*.h  ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/
+  for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102 usbvideo zc0301; do
+   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i
+   cp -a drivers/media/video/$i/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i
+  done
+  # add docbook makefile
+  install -D -m644 Documentation/DocBook/Makefile \
+    ${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile
+  # add dm headers
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
+  cp drivers/md/*.h  ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
+  # add inotify.h
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/linux
+  cp include/linux/inotify.h ${pkgdir}/usr/src/linux-${_kernver}/include/linux/
+  # add wireless headers
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/
+  cp net/mac80211/*.h ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/
+  # add dvb headers for external modules
+  # in reference to:
+  # http://bugs.archlinux.org/task/9912
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core
+  cp drivers/media/dvb/dvb-core/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/
+  # add dvb headers for external modules
+  # in reference to:
+  # http://bugs.archlinux.org/task/11194
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
+  cp include/config/dvb/*.h ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
+  # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
+  # in reference to:
+  # http://bugs.archlinux.org/task/13146
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
+  cp drivers/media/dvb/frontends/lgdt330x.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
+  cp drivers/media/video/msp3400-driver.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
+  # add xfs and shmem for aufs building
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/mm
+  cp fs/xfs/xfs_sb.h ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h
+  # add headers vor virtualbox
+  # in reference to:
+  # http://bugs.archlinux.org/task/14568
+  cp -a include/drm $pkgdir/usr/src/linux-${_kernver}/include/
+  # add headers for broadcom wl
+  # in reference to:
+  # http://bugs.archlinux.org/task/14568
+  cp -a include/trace $pkgdir/usr/src/linux-${_kernver}/include/
+  # copy in Kconfig files
+  for i in `find . -name "Kconfig*"`; do 
+    mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'`
+    cp $i ${pkgdir}/usr/src/linux-${_kernver}/$i
+  done
+
+  chown -R root.root ${pkgdir}/usr/src/linux-${_kernver}
+  find ${pkgdir}/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \;
+  # remove unneeded architectures
+  rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
+}
+
+#package_kernel26-firmware() {
+#  pkgdesc="The included firmware files of the Linux Kernel"
+#  groups=('base')
+#
+#  cd ${srcdir}/linux-$_basekernel
+#  make firmware || return 1
+#  make INSTALL_MOD_PATH=${pkgdir} firmware_install || return 1
+#}
+
+package_kernel26-manpages() {
+pkgdesc="Kernel hackers manual - Section 9 manpages that comes with the Linux kernel."
+
+cd ${srcdir}/linux-$_basekernel
+make mandocs || return 1
+
+install -d ${pkgdir}/usr/share/man/man9/
+install ${srcdir}/linux-${_basekernel}/Documentation/DocBook/man/*.9.gz \
+${pkgdir}/usr/share/man/man9/
+
+find ${pkgdir} -type f -exec chmod 644 {} \;
+}
+
+package_kernel26-docs() {
+pkgdesc="Kernel hackers manual - HTML documentation that comes with the Linux kernel."
+
+cd ${srcdir}/linux-$_basekernel
+mkdir -p $pkgdir/usr/src/linux-$_kernver
+mv Documentation $pkgdir/usr/src/linux-$_kernver
+find $pkgdir -type f -exec chmod 444 {} \;
+find $pkgdir -type d -exec chmod 755 {} \;
+# remove a file already in kernel26 package
+rm -f $pkgdir/usr/src/linux-$_kernver/Documentation/DocBook/Makefile
+}
diff --git a/abs/core-testing/kernel26.orig/config b/abs/core-testing/kernel26.orig/config
new file mode 100644
index 0000000..7242990
--- /dev/null
+++ b/abs/core-testing/kernel26.orig/config
@@ -0,0 +1,4957 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.34
+# Mon May 17 05:55:59 2010
+#
+# CONFIG_64BIT is not set
+CONFIG_X86_32=y
+# CONFIG_X86_64 is not set
+CONFIG_X86=y
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+# CONFIG_GENERIC_TIME_VSYSCALL is not set
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# CONFIG_ZONE_DMA32 is not set
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+# CONFIG_AUDIT_ARCH is not set
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_EARLY_RES=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_X86_32_SMP=y
+CONFIG_X86_HT=y
+CONFIG_X86_TRAMPOLINE=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION="-ARCH"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_LZO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_TREE=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_TINY_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=19
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_NS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_MM_OWNER=y
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_RELAY=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+CONFIG_PERF_COUNTERS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_SLOW_WORK=y
+# CONFIG_SLOW_WORK_DEBUG is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_CFQ_GROUP_IOSCHED is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+# CONFIG_SPARSE_IRQ is not set
+CONFIG_X86_MPPARSE=y
+# CONFIG_X86_BIGSMP is not set
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_VMI=y
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_LGUEST_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
+# CONFIG_MEMTEST is not set
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+CONFIG_M686=y
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+# CONFIG_GENERIC_CPU is not set
+CONFIG_X86_GENERIC=y
+CONFIG_X86_CPU=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_XADD=y
+# CONFIG_X86_PPRO_FENCE is not set
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=5
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_CYRIX_32=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_CPU_SUP_TRANSMETA_32=y
+CONFIG_CPU_SUP_UMC_32=y
+# CONFIG_X86_DS is not set
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+# CONFIG_IOMMU_HELPER is not set
+CONFIG_IOMMU_API=y
+CONFIG_NR_CPUS=8
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_VM86=y
+CONFIG_TOSHIBA=m
+CONFIG_I8K=m
+CONFIG_X86_REBOOTFIXUPS=y
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+# CONFIG_NOHIGHMEM is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_HIGHMEM=y
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ILLEGAL_POINTER_VALUE=0
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_HWPOISON_INJECT=m
+# CONFIG_HIGHPTE is not set
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW_64K=y
+# CONFIG_MATH_EMULATION is not set
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_EFI=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+CONFIG_HZ_300=y
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=300
+CONFIG_SCHED_HRTICK=y
+CONFIG_KEXEC=y
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_KEXEC_JUMP is not set
+CONFIG_PHYSICAL_START=0x1000000
+# CONFIG_RELOCATABLE is not set
+CONFIG_PHYSICAL_ALIGN=0x100000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_CAN_PM_TRACE=y
+# CONFIG_PM_TRACE_RTC is not set
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_SLEEP=y
+# CONFIG_PM_SLEEP_ADVANCED_DEBUG is not set
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATION_NVS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_RUNTIME=y
+CONFIG_PM_OPS=y
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_PROCFS=y
+CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_ACPI_POWER_METER=m
+CONFIG_ACPI_SYSFS_POWER=y
+CONFIG_ACPI_PROC_EVENT=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=m
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=m
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=m
+CONFIG_ACPI_SBS=m
+CONFIG_SFI=y
+CONFIG_X86_APM_BOOT=y
+CONFIG_APM=y
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+CONFIG_APM_DO_ENABLE=y
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+# CONFIG_APM_ALLOW_INTS is not set
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=m
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# CPUFreq processor drivers
+#
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_POWERNOW_K6=m
+CONFIG_X86_POWERNOW_K7=m
+CONFIG_X86_POWERNOW_K7_ACPI=y
+CONFIG_X86_POWERNOW_K8=m
+CONFIG_X86_GX_SUSPMOD=m
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_SPEEDSTEP_ICH=m
+CONFIG_X86_SPEEDSTEP_SMI=m
+CONFIG_X86_P4_CLOCKMOD=m
+CONFIG_X86_CPUFREQ_NFORCE2=m
+CONFIG_X86_LONGRUN=m
+CONFIG_X86_LONGHAUL=m
+CONFIG_X86_E_POWERSAVER=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOOLPC is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_OLPC=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_DMAR=y
+# CONFIG_DMAR_DEFAULT_ON is not set
+CONFIG_DMAR_FLOPPY_WA=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+# CONFIG_PCIEASPM is not set
+CONFIG_PCIE_PME=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_STUB=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_IOAPIC=y
+CONFIG_ISA_DMA_API=y
+CONFIG_ISA=y
+# CONFIG_EISA is not set
+# CONFIG_MCA is not set
+# CONFIG_SCx200 is not set
+CONFIG_OLPC=y
+CONFIG_K8_NB=y
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+CONFIG_TCIC=m
+CONFIG_PCMCIA_PROBE=y
+CONFIG_PCCARD_NONSTATIC=m
+CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_COMPAQ=m
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+CONFIG_HOTPLUG_PCI_IBM=m
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+CONFIG_BINFMT_AOUT=m
+CONFIG_BINFMT_MISC=y
+CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+# CONFIG_DEFAULT_BIC is not set
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_HTCP is not set
+# CONFIG_DEFAULT_VEGAS is not set
+# CONFIG_DEFAULT_WESTWOOD is not set
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_IPV6 is not set
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_CCID3_RTO=100
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+CONFIG_SCTP_HMAC_SHA1=y
+# CONFIG_SCTP_HMAC_MD5 is not set
+CONFIG_RDS=m
+CONFIG_RDS_TCP=m
+# CONFIG_RDS_DEBUG is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_LTPC=m
+CONFIG_COPS=m
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+CONFIG_IEEE802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_TOSHIBA_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_RC_MINSTREL=y
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_CONNECTOR=m
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_RAM=m
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_TS5500 is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+CONFIG_MTD_PLATRAM=m
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+CONFIG_MTD_SST25L=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_ISAPNP=y
+# CONFIG_PNPBIOS is not set
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=m
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_MISC_DEVICES=y
+CONFIG_AD525X_DPOT=m
+# CONFIG_IBM_ASM is not set
+CONFIG_PHANTOM=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+CONFIG_HP_ILO=m
+CONFIG_ISL29003=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_DS1682=m
+CONFIG_TI_DAC7512=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=m
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+CONFIG_IDE_XFER_MODE=y
+CONFIG_IDE_TIMINGS=y
+CONFIG_IDE_ATAPI=y
+CONFIG_IDE_LEGACY=y
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_IDE_GD=m
+CONFIG_IDE_GD_ATA=y
+CONFIG_IDE_GD_ATAPI=y
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEACPI=y
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_PROC_FS=y
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_PLATFORM=m
+CONFIG_BLK_DEV_CMD640=m
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_IDEPNP=m
+CONFIG_BLK_DEV_IDEDMA_SFF=y
+
+#
+# PCI IDE chipsets support
+#
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=m
+CONFIG_BLK_DEV_OPTI621=m
+CONFIG_BLK_DEV_RZ1000=m
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_AEC62XX=m
+CONFIG_BLK_DEV_ALI15X3=m
+CONFIG_BLK_DEV_AMD74XX=m
+CONFIG_BLK_DEV_ATIIXP=m
+CONFIG_BLK_DEV_CMD64X=m
+CONFIG_BLK_DEV_TRIFLEX=m
+CONFIG_BLK_DEV_CS5520=m
+CONFIG_BLK_DEV_CS5530=m
+CONFIG_BLK_DEV_CS5535=m
+CONFIG_BLK_DEV_CS5536=m
+CONFIG_BLK_DEV_HPT366=m
+CONFIG_BLK_DEV_JMICRON=m
+CONFIG_BLK_DEV_SC1200=m
+CONFIG_BLK_DEV_PIIX=m
+CONFIG_BLK_DEV_IT8172=m
+CONFIG_BLK_DEV_IT8213=m
+CONFIG_BLK_DEV_IT821X=m
+CONFIG_BLK_DEV_NS87415=m
+CONFIG_BLK_DEV_PDC202XX_OLD=m
+CONFIG_BLK_DEV_PDC202XX_NEW=m
+CONFIG_BLK_DEV_SVWKS=m
+CONFIG_BLK_DEV_SIIMAGE=m
+CONFIG_BLK_DEV_SIS5513=m
+CONFIG_BLK_DEV_SLC90E66=m
+CONFIG_BLK_DEV_TRM290=m
+CONFIG_BLK_DEV_VIA82CXXX=m
+CONFIG_BLK_DEV_TC86C001=m
+
+#
+# Other IDE chipsets support
+#
+
+#
+# Note: most of these also require special kernel boot parameters
+#
+CONFIG_BLK_DEV_4DRIVES=m
+CONFIG_BLK_DEV_ALI14XX=m
+CONFIG_BLK_DEV_DTC2278=m
+CONFIG_BLK_DEV_HT6560B=m
+CONFIG_BLK_DEV_QD65XX=m
+CONFIG_BLK_DEV_UMC8672=m
+CONFIG_BLK_DEV_IDEDMA=y
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ARCMSR_AER=y
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_FLASHPOINT is not set
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+# CONFIG_SCSI_U14_34F_TAGGED_QUEUE is not set
+# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_PMP=y
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+CONFIG_SATA_SVW=m
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SX4=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+CONFIG_SATA_INIC162X=m
+CONFIG_PATA_ACPI=m
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5535=m
+CONFIG_PATA_CS5536=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_ISAPNP=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_LEGACY=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_QDI=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_RZ1000=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+CONFIG_PATA_WINBOND_VLB=m
+CONFIG_PATA_SCH=m
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_RAID6_PQ=m
+CONFIG_ASYNC_RAID6_TEST=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# You can enable one or both FireWire driver stacks.
+#
+
+#
+# The newer stack is recommended.
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+# CONFIG_IEEE1394 is not set
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_NETDEVICES=y
+CONFIG_IFB=m
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_SB1000=m
+# CONFIG_ARCNET is not set
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_LANCE=m
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRA=m
+CONFIG_SMC9194=m
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ETHOC=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI52=m
+CONFIG_NI65=m
+CONFIG_DNET=m
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_ZNET=m
+CONFIG_SEEQ8005=m
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_AC3200=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_FORCEDETH=m
+# CONFIG_FORCEDETH_NAPI is not set
+CONFIG_CS89x0=m
+CONFIG_E100=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R6040=m
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_SC92031=m
+CONFIG_NET_POCKET=y
+CONFIG_ATP=m
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_ATL2=m
+CONFIG_NETDEV_1000=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IP1000=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+# CONFIG_R8169_VLAN is not set
+CONFIG_SIS190=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_QLA3XXX=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_JME=m
+CONFIG_NETDEV_10000=y
+CONFIG_MDIO=m
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3_DEPENDS=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4_DEPENDS=y
+CONFIG_CHELSIO_T4=m
+CONFIG_ENIC=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_IXGB=m
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NIU=m
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_TEHUTI=m
+CONFIG_BNX2X=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_BE2NET=m
+# CONFIG_TR is not set
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS_THINFIRM=m
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K=m
+# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_AR9170_USB=m
+CONFIG_AR9170_LEDS=y
+CONFIG_B43=m
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLWIFI=m
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWLAGN=m
+CONFIG_IWL4965=y
+CONFIG_IWL5000=y
+CONFIG_IWL3945=m
+CONFIG_IWM=m
+# CONFIG_IWM_DEBUG is not set
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI_PCI=y
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT30XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT30XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_HT=y
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_WL12XX=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL1271=m
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_SDIO=m
+# CONFIG_WIMAX_IWMC3200_SDIO is not set
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+# CONFIG_WAN is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+CONFIG_PPPOATM=m
+CONFIG_PPPOL2TP=m
+CONFIG_SLIP=m
+# CONFIG_SLIP_COMPRESSED is not set
+CONFIG_SLHC=m
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VMXNET3=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_TELES_CS=m
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+
+#
+# Active cards
+#
+CONFIG_ISDN_DRV_ICN=m
+CONFIG_ISDN_DRV_PCBIT=m
+CONFIG_ISDN_DRV_SC=m
+CONFIG_ISDN_DRV_ACT2000=m
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_T1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_QT2160=m
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_OLPC=y
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_INPORT=m
+# CONFIG_MOUSE_ATIXL is not set
+CONFIG_MOUSE_LOGIBM=m
+CONFIG_MOUSE_PC110PAD=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_HTCPEN=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+# CONFIG_TOUCHSCREEN_WM9705 is not set
+# CONFIG_TOUCHSCREEN_WM9712 is not set
+# CONFIG_TOUCHSCREEN_WM9713 is not set
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+# CONFIG_TOUCHSCREEN_MC13783 is not set
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+# CONFIG_TOUCHSCREEN_USB_E2I is not set
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC5UH=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+# CONFIG_TOUCHSCREEN_PCAP is not set
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_WISTRON_BTNS=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_WINBOND_CIR=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+# CONFIG_INPUT_PCAP is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_DEVKMEM=y
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+# CONFIG_SYNCLINK_GT is not set
+CONFIG_N_HDLC=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_STALDRV is not set
+CONFIG_NOZOMI=m
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_UARTLITE=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_GEODE=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_NVRAM=m
+CONFIG_DTLK=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+CONFIG_SONYPI=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+CONFIG_PC8736x_GPIO=m
+CONFIG_NSC_GPIO=m
+CONFIG_CS5535_GPIO=m
+# CONFIG_RAW_DRIVER is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_PCA_ISA=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_STUB is not set
+CONFIG_SCx200_ACB=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_XILINX=m
+CONFIG_SPI_XILINX_PLTFM=m
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO expanders:
+#
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_WM8994=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_LANGWELL=y
+CONFIG_GPIO_TIMBERDALE=y
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_MC33880=m
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_OLPC=m
+CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_CHARGER_PCF50633=m
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_HDAPS=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_MC13783_ADC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ATK0110=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_GEODE_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_SBC7240_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+
+#
+# ISA-based Watchdog Cards
+#
+CONFIG_PCWATCHDOG=m
+CONFIG_MIXCOMWD=m
+CONFIG_WDT=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=m
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS65010=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM8994=m
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_MC13783=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_EZX_PCAP=y
+CONFIG_AB4500_CORE=m
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_ALLOW_V4L1=y
+CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_DVB_CORE=m
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_IR_CORE=m
+CONFIG_VIDEO_IR=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_V4L1=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders/decoders and other helper chips
+#
+
+#
+# Audio decoders
+#
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TDA9875=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_VP27SMPX=m
+
+#
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_TCM825X=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_VPX3220=m
+
+#
+# Video and audio decoders
+#
+CONFIG_VIDEO_CX25840=m
+
+#
+# MPEG video encoders
+#
+CONFIG_VIDEO_CX2341X=m
+
+#
+# Video encoders
+#
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_ADV7343=m
+
+#
+# Video improvement chips
+#
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+CONFIG_VIDEO_VIVI=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_PMS=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA=m
+CONFIG_VIDEO_CPIA_PP=m
+CONFIG_VIDEO_CPIA_USB=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_SAA5246A=m
+CONFIG_VIDEO_SAA5249=m
+CONFIG_VIDEO_STRADIS=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SN9C20X_EVDEV=y
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_VIDEO_USBVIDEO=m
+CONFIG_USB_VICAM=m
+CONFIG_USB_IBMCAM=m
+CONFIG_USB_KONICAWC=m
+CONFIG_USB_QUICKCAM_MESSENGER=m
+CONFIG_USB_ET61X251=m
+CONFIG_VIDEO_OVCAMCHIP=m
+CONFIG_USB_W9968CF=m
+CONFIG_USB_OV511=m
+CONFIG_USB_SE401=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_STV680=m
+CONFIG_USB_ZC0301=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_CADET=m
+CONFIG_RADIO_RTRACK=m
+CONFIG_RADIO_RTRACK2=m
+CONFIG_RADIO_AZTECH=m
+CONFIG_RADIO_GEMTEK=m
+CONFIG_RADIO_GEMTEK_PCI=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MAESTRO=m
+CONFIG_RADIO_MIROPCM20=m
+CONFIG_RADIO_SF16FMI=m
+CONFIG_RADIO_SF16FMR2=m
+CONFIG_RADIO_TERRATEC=m
+CONFIG_RADIO_TRUST=m
+CONFIG_RADIO_TYPHOON=m
+CONFIG_RADIO_ZOLTRIX=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_USB_MR800=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_TIMBERDALE=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+CONFIG_TTPCI_EEPROM=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported BT878 Adapters
+#
+CONFIG_DVB_BT8XX=m
+
+#
+# Supported Pluto2 Adapters
+#
+CONFIG_DVB_PLUTO2=m
+
+#
+# Supported SDMC DM1105 Adapters
+#
+CONFIG_DVB_DM1105=m
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_FIREWIRE=y
+# CONFIG_DVB_FIREDTV_IEEE1394 is not set
+CONFIG_DVB_FIREDTV_INPUT=y
+
+#
+# Supported Earthsoft PT1 Adapters
+#
+CONFIG_DVB_PT1=m
+
+#
+# Supported Mantis Adapters
+#
+CONFIG_MANTIS_CORE=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_HOPPER=m
+
+#
+# Supported nGene Adapters
+#
+CONFIG_DVB_NGENE=m
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_MB86A16=m
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_S5H1411=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DAB=y
+CONFIG_USB_DABUSB=m
+
+#
+# Graphics support
+#
+CONFIG_AGP=m
+CONFIG_AGP_ALI=m
+CONFIG_AGP_ATI=m
+CONFIG_AGP_AMD=m
+CONFIG_AGP_AMD64=m
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_NVIDIA=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_SWORKS=m
+CONFIG_AGP_VIA=m
+CONFIG_AGP_EFFICEON=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_I810=m
+CONFIG_DRM_I830=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_VGASTATE=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_DDC=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_SVGALIB=m
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_VGA16 is not set
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_I2C=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_BACKLIGHT=y
+CONFIG_FB_I810=m
+# CONFIG_FB_I810_GTF is not set
+CONFIG_FB_LE80578=m
+CONFIG_FB_CARILLO_RANCH=m
+# CONFIG_FB_MATROX is not set
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_S3=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SAVAGE_ACCEL=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_VIA=m
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_3DFX_ACCEL=y
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FB_TRIDENT=m
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_SM501 is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_MBP_NVIDIA=m
+CONFIG_BACKLIGHT_SAHARA=m
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=m
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+# CONFIG_MDA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OPL4_LIB_SEQ=m
+CONFIG_SND_SBAWE_SEQ=m
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL4_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_PCSP is not set
+CONFIG_SND_DUMMY=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_WSS_LIB=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB8_DSP=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_ISA=y
+CONFIG_SND_ADLIB=m
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_ES968=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_SC6000=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_JAZZ16=m
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_MIRO=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_SGALAXY=m
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_WAVEFRONT=m
+CONFIG_SND_MSND_PINNACLE=m
+CONFIG_SND_MSND_CLASSIC=m
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_FM801_TEA575X=m
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_ATIHDMI=y
+CONFIG_SND_HDA_CODEC_NVHDMI=y
+CONFIG_SND_HDA_CODEC_INTELHDMI=y
+CONFIG_SND_HDA_ELD=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_HIFIER=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SIS7019=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# Special HID drivers
+#
+CONFIG_HID_3M_PCT=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EZKEY=m
+CONFIG_HID_KYE=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LOGITECH=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MOSART=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_QUANTA=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_STANTUM=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_MON=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
+# CONFIG_USB_GADGET_IMX is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_NET2280=m
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_MASS_STORAGE is not set
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_MULTI is not set
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_WLP=m
+CONFIG_UWB_I1480U=m
+CONFIG_UWB_I1480U_WLP=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=m
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_ALIX2 is not set
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_IDE_DISK=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_AMD76X=m
+CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82875P=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I82860=m
+CONFIG_EDAC_R82600=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_RTC_LIB=m
+CONFIG_RTC_CLASS=m
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_TEST=m
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=m
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_PCF50633=m
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PCAP is not set
+CONFIG_RTC_DRV_MC13783=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y
+CONFIG_INTEL_IOATDMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+
+#
+# TI VLYNQ
+#
+CONFIG_STAGING=y
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+CONFIG_ET131X=m
+# CONFIG_ET131X_DEBUG is not set
+CONFIG_SLICOSS=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_USB_IP_COMMON=m
+CONFIG_USB_IP_VHCI_HCD=m
+CONFIG_USB_IP_HOST=m
+# CONFIG_USB_IP_DEBUG_ENABLE is not set
+CONFIG_W35UND=m
+CONFIG_PRISM2_USB=m
+CONFIG_ECHO=m
+CONFIG_POCH=m
+CONFIG_OTUS=m
+CONFIG_RT2860=m
+CONFIG_RT2870=m
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+CONFIG_R8187SE=m
+CONFIG_RTL8192SU=m
+CONFIG_RTL8192U=m
+CONFIG_RTL8192E=m
+# CONFIG_TRANZPORT is not set
+
+#
+# Qualcomm MSM Camera And Video
+#
+
+#
+# Camera Sensor Selection
+#
+CONFIG_INPUT_GPIO=m
+CONFIG_POHMELFS=m
+# CONFIG_POHMELFS_DEBUG is not set
+CONFIG_POHMELFS_CRYPTO=y
+CONFIG_IDE_PHISON=m
+CONFIG_LINE6_USB=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_FB_UDL=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_BLOCK=m
+CONFIG_HYPERV_NET=m
+# CONFIG_VME_BUS is not set
+
+#
+# RAR Register Driver
+#
+# CONFIG_RAR_REGISTER is not set
+# CONFIG_IIO is not set
+CONFIG_RAMZSWAP=m
+CONFIG_RAMZSWAP_STATS=y
+# CONFIG_BATMAN_ADV is not set
+CONFIG_SAMSUNG_LAPTOP=m
+# CONFIG_STRIP is not set
+CONFIG_ARLAN=m
+CONFIG_WAVELAN=m
+CONFIG_PCMCIA_WAVELAN=m
+CONFIG_PCMCIA_NETWAVE=m
+CONFIG_FB_SM7XX=m
+CONFIG_DT3155=m
+CONFIG_CRYSTALHD=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_TC1100_WMI=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_ACPI_ASUS=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=m
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+# CONFIG_ISCSI_IBFT_FIND is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=m
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+# CONFIG_AUTOFS_FS is not set
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+# CONFIG_HUGETLBFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_LOGFS=m
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+CONFIG_OMFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPCSEC_GSS_SPKM3=m
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CEPH_FS=m
+# CONFIG_CEPH_FS_PRETTYDEBUG is not set
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+# CONFIG_CIFS_UPCALL is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+# CONFIG_MINIX_SUBPARTITION is not set
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_LKDTM=m
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+# CONFIG_SYSPROF_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_FTRACE_SYSCALLS is not set
+# CONFIG_BOOT_TRACER is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_KSYM_TRACER is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_KMEMTRACE is not set
+# CONFIG_WORKQUEUE_TRACER is not set
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_KMEMCHECK is not set
+CONFIG_STRICT_DEVMEM=y
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_X86_PTDUMP is not set
+# CONFIG_DEBUG_RODATA is not set
+# CONFIG_DEBUG_NX_TEST is not set
+# CONFIG_4KSTACKS is not set
+CONFIG_DOUBLEFAULT=y
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+# CONFIG_SECURITY_PATH is not set
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
+# CONFIG_SECURITY_SMACK is not set
+# CONFIG_SECURITY_TOMOYO is not set
+# CONFIG_IMA is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_FIPS=y
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_586=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_586=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_GEODE=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_VHOST_NET=m
+CONFIG_LGUEST=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_RING=y
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_AUDIT_GENERIC=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=m
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_BTREE=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_NLATTR=y
+CONFIG_LRU_CACHE=m
diff --git a/abs/core-testing/kernel26.orig/config.x86_64 b/abs/core-testing/kernel26.orig/config.x86_64
new file mode 100644
index 0000000..09f7cf3
--- /dev/null
+++ b/abs/core-testing/kernel26.orig/config.x86_64
@@ -0,0 +1,4761 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.34
+# Mon May 17 07:56:01 2010
+#
+CONFIG_64BIT=y
+# CONFIG_X86_32 is not set
+CONFIG_X86_64=y
+CONFIG_X86=y
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_EARLY_RES=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_HT=y
+CONFIG_X86_TRAMPOLINE=y
+# CONFIG_KTIME_SCALAR is not set
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION="-ARCH"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_LZO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_TREE=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_TINY_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=64
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=19
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_NS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_MM_OWNER=y
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_RELAY=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+CONFIG_PERF_COUNTERS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_SLOW_WORK=y
+# CONFIG_SLOW_WORK_DEBUG is not set
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+CONFIG_BLOCK_COMPAT=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_CFQ_GROUP_IOSCHED is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+# CONFIG_SPARSE_IRQ is not set
+CONFIG_X86_MPPARSE=y
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_XEN=y
+CONFIG_XEN_MAX_DOMAIN_MEMORY=32
+CONFIG_XEN_SAVE_RESTORE=y
+# CONFIG_XEN_DEBUG_FS is not set
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
+# CONFIG_MEMTEST is not set
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M686 is not set
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_GENERIC_CPU=y
+CONFIG_X86_CPU=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_XADD=y
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+# CONFIG_X86_DS is not set
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+CONFIG_GART_IOMMU=y
+CONFIG_CALGARY_IOMMU=y
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+# CONFIG_AMD_IOMMU is not set
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
+CONFIG_IOMMU_API=y
+# CONFIG_MAXSMP is not set
+CONFIG_NR_CPUS=16
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_I8K=m
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_DIRECT_GBPAGES=y
+# CONFIG_NUMA is not set
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_MEMORY_PROBE=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_SELECT_MEMORY_MODEL=y
+# CONFIG_FLATMEM_MANUAL is not set
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_HWPOISON_INJECT=m
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW_64K=y
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_EFI=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+CONFIG_HZ_300=y
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=300
+CONFIG_SCHED_HRTICK=y
+CONFIG_KEXEC=y
+# CONFIG_CRASH_DUMP is not set
+CONFIG_KEXEC_JUMP=y
+CONFIG_PHYSICAL_START=0x1000000
+# CONFIG_RELOCATABLE is not set
+CONFIG_PHYSICAL_ALIGN=0x1000000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_CAN_PM_TRACE=y
+# CONFIG_PM_TRACE_RTC is not set
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_SLEEP=y
+# CONFIG_PM_SLEEP_ADVANCED_DEBUG is not set
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATION_NVS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_RUNTIME=y
+CONFIG_PM_OPS=y
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_PROCFS=y
+CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_ACPI_POWER_METER=m
+CONFIG_ACPI_SYSFS_POWER=y
+CONFIG_ACPI_PROC_EVENT=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=m
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=m
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=m
+CONFIG_ACPI_HOTPLUG_MEMORY=m
+CONFIG_ACPI_SBS=m
+CONFIG_SFI=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=m
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# CPUFreq processor drivers
+#
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_POWERNOW_K8=m
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_P4_CLOCKMOD=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+
+#
+# Memory power savings
+#
+CONFIG_I7300_IDLE_IOAT_CHANNEL=y
+CONFIG_I7300_IDLE=m
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_DMAR=y
+# CONFIG_DMAR_DEFAULT_ON is not set
+CONFIG_DMAR_FLOPPY_WA=y
+# CONFIG_INTR_REMAP is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+# CONFIG_PCIEASPM is not set
+CONFIG_PCIE_PME=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_STUB=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_IOAPIC=y
+CONFIG_ISA_DMA_API=y
+CONFIG_K8_NB=y
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_PCCARD_NONSTATIC=m
+CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+# CONFIG_HAVE_AOUT is not set
+CONFIG_BINFMT_MISC=y
+CONFIG_IA32_EMULATION=y
+CONFIG_IA32_AOUT=m
+CONFIG_COMPAT=y
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+# CONFIG_DEFAULT_BIC is not set
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_HTCP is not set
+# CONFIG_DEFAULT_VEGAS is not set
+# CONFIG_DEFAULT_WESTWOOD is not set
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_IPV6 is not set
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_CCID3_RTO=100
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+CONFIG_SCTP_HMAC_SHA1=y
+# CONFIG_SCTP_HMAC_MD5 is not set
+CONFIG_RDS=m
+CONFIG_RDS_TCP=m
+# CONFIG_RDS_DEBUG is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+CONFIG_IEEE802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_RC_MINSTREL=y
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_CONNECTOR=m
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_RAM=m
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_TS5500 is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+CONFIG_MTD_PLATRAM=m
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+CONFIG_MTD_SST25L=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=m
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_XEN_BLKDEV_FRONTEND=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_MISC_DEVICES=y
+CONFIG_AD525X_DPOT=m
+# CONFIG_IBM_ASM is not set
+CONFIG_PHANTOM=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+CONFIG_HP_ILO=m
+CONFIG_ISL29003=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_DS1682=m
+CONFIG_TI_DAC7512=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=m
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+CONFIG_IDE_XFER_MODE=y
+CONFIG_IDE_TIMINGS=y
+CONFIG_IDE_ATAPI=y
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_IDE_GD=m
+CONFIG_IDE_GD_ATA=y
+CONFIG_IDE_GD_ATAPI=y
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEACPI=y
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_PROC_FS=y
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_PLATFORM=m
+CONFIG_BLK_DEV_CMD640=m
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_IDEPNP=m
+CONFIG_BLK_DEV_IDEDMA_SFF=y
+
+#
+# PCI IDE chipsets support
+#
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=m
+CONFIG_BLK_DEV_OPTI621=m
+CONFIG_BLK_DEV_RZ1000=m
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_AEC62XX=m
+CONFIG_BLK_DEV_ALI15X3=m
+CONFIG_BLK_DEV_AMD74XX=m
+CONFIG_BLK_DEV_ATIIXP=m
+CONFIG_BLK_DEV_CMD64X=m
+CONFIG_BLK_DEV_TRIFLEX=m
+CONFIG_BLK_DEV_CS5520=m
+CONFIG_BLK_DEV_CS5530=m
+CONFIG_BLK_DEV_HPT366=m
+CONFIG_BLK_DEV_JMICRON=m
+CONFIG_BLK_DEV_SC1200=m
+CONFIG_BLK_DEV_PIIX=m
+CONFIG_BLK_DEV_IT8172=m
+CONFIG_BLK_DEV_IT8213=m
+CONFIG_BLK_DEV_IT821X=m
+CONFIG_BLK_DEV_NS87415=m
+CONFIG_BLK_DEV_PDC202XX_OLD=m
+CONFIG_BLK_DEV_PDC202XX_NEW=m
+CONFIG_BLK_DEV_SVWKS=m
+CONFIG_BLK_DEV_SIIMAGE=m
+CONFIG_BLK_DEV_SIS5513=m
+CONFIG_BLK_DEV_SLC90E66=m
+CONFIG_BLK_DEV_TRM290=m
+CONFIG_BLK_DEV_VIA82CXXX=m
+CONFIG_BLK_DEV_TC86C001=m
+CONFIG_BLK_DEV_IDEDMA=y
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ARCMSR_AER=y
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_PMP=y
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+CONFIG_SATA_SVW=m
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SX4=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+CONFIG_SATA_INIC162X=m
+CONFIG_PATA_ACPI=m
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_LEGACY=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_RZ1000=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+CONFIG_PATA_SCH=m
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_RAID6_PQ=m
+CONFIG_ASYNC_RAID6_TEST=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# You can enable one or both FireWire driver stacks.
+#
+
+#
+# The newer stack is recommended.
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+# CONFIG_IEEE1394 is not set
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_NETDEVICES=y
+CONFIG_IFB=m
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_SB1000=m
+# CONFIG_ARCNET is not set
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ETHOC=m
+CONFIG_DNET=m
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_HP100=m
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_FORCEDETH=m
+# CONFIG_FORCEDETH_NAPI is not set
+CONFIG_E100=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R6040=m
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_SC92031=m
+CONFIG_NET_POCKET=y
+CONFIG_ATP=m
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_ATL2=m
+CONFIG_NETDEV_1000=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IP1000=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+# CONFIG_R8169_VLAN is not set
+CONFIG_SIS190=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_QLA3XXX=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_JME=m
+CONFIG_NETDEV_10000=y
+CONFIG_MDIO=m
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3_DEPENDS=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4_DEPENDS=y
+CONFIG_CHELSIO_T4=m
+CONFIG_ENIC=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_IXGB=m
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NIU=m
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_TEHUTI=m
+CONFIG_BNX2X=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_BE2NET=m
+# CONFIG_TR is not set
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS_THINFIRM=m
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K=m
+# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_AR9170_USB=m
+CONFIG_AR9170_LEDS=y
+CONFIG_B43=m
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLWIFI=m
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWLAGN=m
+CONFIG_IWL4965=y
+CONFIG_IWL5000=y
+CONFIG_IWL3945=m
+CONFIG_IWM=m
+# CONFIG_IWM_DEBUG is not set
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI_PCI=y
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT30XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT30XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_HT=y
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_WL12XX=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL1271=m
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_SDIO=m
+# CONFIG_WIMAX_IWMC3200_SDIO is not set
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+# CONFIG_WAN is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_XEN_NETDEV_FRONTEND=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+CONFIG_PPPOATM=m
+CONFIG_PPPOL2TP=m
+CONFIG_SLIP=m
+# CONFIG_SLIP_COMPRESSED is not set
+CONFIG_SLHC=m
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VMXNET3=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_TELES_CS=m
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+
+#
+# Active cards
+#
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+CONFIG_XEN_KBDDEV_FRONTEND=m
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_QT2160=m
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+# CONFIG_TOUCHSCREEN_WM9705 is not set
+# CONFIG_TOUCHSCREEN_WM9712 is not set
+# CONFIG_TOUCHSCREEN_WM9713 is not set
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+# CONFIG_TOUCHSCREEN_MC13783 is not set
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+# CONFIG_TOUCHSCREEN_USB_E2I is not set
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC5UH=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+# CONFIG_TOUCHSCREEN_PCAP is not set
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_WINBOND_CIR=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+# CONFIG_INPUT_PCAP is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_DEVKMEM=y
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+# CONFIG_SYNCLINK_GT is not set
+CONFIG_N_HDLC=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_STALDRV is not set
+CONFIG_NOZOMI=m
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_UARTLITE=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+CONFIG_VIRTIO_CONSOLE=m
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_NVRAM=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+CONFIG_PC8736x_GPIO=m
+CONFIG_NSC_GPIO=m
+# CONFIG_RAW_DRIVER is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_XILINX=m
+CONFIG_SPI_XILINX_PLTFM=m
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO expanders:
+#
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_WM8994=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_LANGWELL=y
+CONFIG_GPIO_TIMBERDALE=y
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_MC33880=m
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_CHARGER_PCF50633=m
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_HDAPS=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_MC13783_ADC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ATK0110=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_GEODE_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=m
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS65010=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM8994=m
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_MC13783=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_EZX_PCAP=y
+CONFIG_AB4500_CORE=m
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_ALLOW_V4L1=y
+CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_DVB_CORE=m
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_IR_CORE=m
+CONFIG_VIDEO_IR=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_V4L1=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders/decoders and other helper chips
+#
+
+#
+# Audio decoders
+#
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TDA9875=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_VP27SMPX=m
+
+#
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_TCM825X=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_VPX3220=m
+
+#
+# Video and audio decoders
+#
+CONFIG_VIDEO_CX25840=m
+
+#
+# MPEG video encoders
+#
+CONFIG_VIDEO_CX2341X=m
+
+#
+# Video encoders
+#
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_ADV7343=m
+
+#
+# Video improvement chips
+#
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+CONFIG_VIDEO_VIVI=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA=m
+CONFIG_VIDEO_CPIA_PP=m
+CONFIG_VIDEO_CPIA_USB=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_SAA5246A=m
+CONFIG_VIDEO_SAA5249=m
+CONFIG_VIDEO_STRADIS=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SN9C20X_EVDEV=y
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_VIDEO_USBVIDEO=m
+CONFIG_USB_VICAM=m
+CONFIG_USB_IBMCAM=m
+CONFIG_USB_KONICAWC=m
+CONFIG_USB_QUICKCAM_MESSENGER=m
+CONFIG_USB_ET61X251=m
+CONFIG_VIDEO_OVCAMCHIP=m
+CONFIG_USB_W9968CF=m
+CONFIG_USB_OV511=m
+CONFIG_USB_SE401=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_STV680=m
+CONFIG_USB_ZC0301=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_GEMTEK_PCI=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MAESTRO=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_USB_MR800=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_TIMBERDALE=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+CONFIG_TTPCI_EEPROM=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported BT878 Adapters
+#
+CONFIG_DVB_BT8XX=m
+
+#
+# Supported Pluto2 Adapters
+#
+CONFIG_DVB_PLUTO2=m
+
+#
+# Supported SDMC DM1105 Adapters
+#
+CONFIG_DVB_DM1105=m
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_FIREWIRE=y
+# CONFIG_DVB_FIREDTV_IEEE1394 is not set
+CONFIG_DVB_FIREDTV_INPUT=y
+
+#
+# Supported Earthsoft PT1 Adapters
+#
+CONFIG_DVB_PT1=m
+
+#
+# Supported Mantis Adapters
+#
+CONFIG_MANTIS_CORE=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_HOPPER=m
+
+#
+# Supported nGene Adapters
+#
+CONFIG_DVB_NGENE=m
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_MB86A16=m
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_S5H1411=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DAB=y
+CONFIG_USB_DABUSB=m
+
+#
+# Graphics support
+#
+CONFIG_AGP=y
+CONFIG_AGP_AMD64=y
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_VIA=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_I810=m
+CONFIG_DRM_I830=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_VGASTATE=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_DDC=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_SVGALIB=m
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_VGA16 is not set
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_I2C=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_BACKLIGHT=y
+CONFIG_FB_LE80578=m
+CONFIG_FB_CARILLO_RANCH=m
+# CONFIG_FB_MATROX is not set
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_S3=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SAVAGE_ACCEL=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_VIA=m
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_3DFX_ACCEL=y
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FB_TRIDENT=m
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_SM501 is not set
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_XEN_FBDEV_FRONTEND=m
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_MBP_NVIDIA=m
+CONFIG_BACKLIGHT_SAHARA=m
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=m
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_PCSP is not set
+CONFIG_SND_DUMMY=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_FM801_TEA575X=m
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_ATIHDMI=y
+CONFIG_SND_HDA_CODEC_NVHDMI=y
+CONFIG_SND_HDA_CODEC_INTELHDMI=y
+CONFIG_SND_HDA_ELD=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_HIFIER=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# Special HID drivers
+#
+CONFIG_HID_3M_PCT=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EZKEY=m
+CONFIG_HID_KYE=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LOGITECH=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MOSART=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_QUANTA=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_STANTUM=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_MON=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
+# CONFIG_USB_GADGET_IMX is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_NET2280=m
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_MASS_STORAGE is not set
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_MULTI is not set
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_WLP=m
+CONFIG_UWB_I1480U=m
+CONFIG_UWB_I1480U_WLP=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SPI=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=m
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_ALIX2 is not set
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_IDE_DISK=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_RTC_LIB=m
+CONFIG_RTC_CLASS=m
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_TEST=m
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=m
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_PCF50633=m
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PCAP is not set
+CONFIG_RTC_DRV_MC13783=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y
+CONFIG_INTEL_IOATDMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+
+#
+# TI VLYNQ
+#
+
+#
+# Xen driver support
+#
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_SCRUB_PAGES=y
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XENFS=m
+CONFIG_XEN_COMPAT_XENFS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_STAGING=y
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+CONFIG_ET131X=m
+# CONFIG_ET131X_DEBUG is not set
+CONFIG_SLICOSS=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_USB_IP_COMMON=m
+CONFIG_USB_IP_VHCI_HCD=m
+CONFIG_USB_IP_HOST=m
+# CONFIG_USB_IP_DEBUG_ENABLE is not set
+CONFIG_W35UND=m
+CONFIG_PRISM2_USB=m
+CONFIG_ECHO=m
+CONFIG_POCH=m
+CONFIG_OTUS=m
+CONFIG_RT2860=m
+CONFIG_RT2870=m
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+CONFIG_R8187SE=m
+CONFIG_RTL8192SU=m
+CONFIG_RTL8192U=m
+CONFIG_RTL8192E=m
+# CONFIG_TRANZPORT is not set
+
+#
+# Qualcomm MSM Camera And Video
+#
+
+#
+# Camera Sensor Selection
+#
+CONFIG_INPUT_GPIO=m
+CONFIG_POHMELFS=m
+# CONFIG_POHMELFS_DEBUG is not set
+CONFIG_POHMELFS_CRYPTO=y
+CONFIG_IDE_PHISON=m
+CONFIG_LINE6_USB=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_FB_UDL=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_BLOCK=m
+CONFIG_HYPERV_NET=m
+# CONFIG_VME_BUS is not set
+
+#
+# RAR Register Driver
+#
+# CONFIG_RAR_REGISTER is not set
+# CONFIG_IIO is not set
+CONFIG_RAMZSWAP=m
+CONFIG_RAMZSWAP_STATS=y
+# CONFIG_BATMAN_ADV is not set
+CONFIG_SAMSUNG_LAPTOP=m
+# CONFIG_STRIP is not set
+CONFIG_PCMCIA_WAVELAN=m
+CONFIG_PCMCIA_NETWAVE=m
+CONFIG_FB_SM7XX=m
+CONFIG_DT3155=m
+CONFIG_CRYSTALHD=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_ACPI_ASUS=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=m
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+# CONFIG_ISCSI_IBFT_FIND is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=m
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_QUOTACTL_COMPAT=y
+# CONFIG_AUTOFS_FS is not set
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+# CONFIG_HUGETLBFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_LOGFS=m
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+CONFIG_OMFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPCSEC_GSS_SPKM3=m
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CEPH_FS=m
+# CONFIG_CEPH_FS_PRETTYDEBUG is not set
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+# CONFIG_CIFS_UPCALL is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+# CONFIG_MINIX_SUBPARTITION is not set
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=2048
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_LKDTM=m
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+# CONFIG_SYSPROF_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_FTRACE_SYSCALLS is not set
+# CONFIG_BOOT_TRACER is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_KSYM_TRACER is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_KMEMTRACE is not set
+# CONFIG_WORKQUEUE_TRACER is not set
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_KMEMCHECK is not set
+CONFIG_STRICT_DEVMEM=y
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_X86_PTDUMP is not set
+# CONFIG_DEBUG_RODATA is not set
+# CONFIG_DEBUG_NX_TEST is not set
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+# CONFIG_SECURITY_PATH is not set
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
+# CONFIG_SECURITY_SMACK is not set
+# CONFIG_SECURITY_TOMOYO is not set
+# CONFIG_IMA is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_FIPS=y
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+CONFIG_CRYPTO_FPU=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_X86_64=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_X86_64=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_VHOST_NET=m
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_RING=m
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=m
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_BTREE=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_NLATTR=y
+CONFIG_LRU_CACHE=m
diff --git a/abs/core-testing/kernel26.orig/coretemp.patch b/abs/core-testing/kernel26.orig/coretemp.patch
new file mode 100644
index 0000000..07ce434
--- /dev/null
+++ b/abs/core-testing/kernel26.orig/coretemp.patch
@@ -0,0 +1,86 @@
+diff -ubr orig/linux-2.6.28/Documentation/hwmon/coretemp linux-2.6.28/Documentation/hwmon/coretemp
+--- orig/linux-2.6.28/Documentation/hwmon/coretemp	2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.28/Documentation/hwmon/coretemp	2009-07-18 07:29:37.000000000 +0200
+@@ -4,7 +4,7 @@
+ Supported chips:
+   * All Intel Core family
+     Prefix: 'coretemp'
+-    CPUID: family 0x6, models 0xe, 0xf, 0x16, 0x17
++    CPUID: family 0x6, models 0xe, 0xf, 0x16, 0x17, 0x1c
+     Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual
+                Volume 3A: System Programming Guide
+                http://softwarecommunity.intel.com/Wiki/Mobility/720.htm
+@@ -14,10 +14,11 @@
+ Description
+ -----------
+ 
+-This driver permits reading temperature sensor embedded inside Intel Core CPU.
+-Temperature is measured in degrees Celsius and measurement resolution is
+-1 degree C. Valid temperatures are from 0 to TjMax degrees C, because
+-the actual value of temperature register is in fact a delta from TjMax.
++This driver permits reading temperature sensor embedded inside Intel
++Core  and Intel Atom CPUs. Temperature is measured in degrees Celsius
++and measurement resolution is 1 degree C. Valid temperatures are from 0
++to TjMax degrees C, because the actual value of temperature register is
++in fact a delta from TjMax.
+ 
+ Temperature known as TjMax is the maximum junction temperature of processor.
+ Intel defines this temperature as 85C or 100C. At this temperature, protection
+@@ -35,4 +36,5 @@
+ 
+ The TjMax temperature is set to 85 degrees C if undocumented model specific
+ register (UMSR) 0xee has bit 30 set. If not the TjMax is 100 degrees C as
+-(sometimes) documented in processor datasheet.
++(sometimes) documented in processor datasheet. The Intel Atom has TjMax 95C
++as per the specification.
+diff -ubr orig/linux-2.6.28/drivers/hwmon/coretemp.c linux-2.6.28/drivers/hwmon/coretemp.c
+--- orig/linux-2.6.28/drivers/hwmon/coretemp.c	2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.28/drivers/hwmon/coretemp.c	2009-07-18 08:12:16.000000000 +0200
+@@ -1,7 +1,7 @@
+ /*
+  * coretemp.c - Linux kernel module for hardware monitoring
+  *
+- * Copyright (C) 2007 Rudolf Marek <r.marek@assembler.cz>
++ * Copyright (C) 2007, 2008 Rudolf Marek <r.marek@assembler.cz>
+  *
+  * Inspired from many hwmon drivers
+  *
+@@ -244,8 +244,14 @@
+ 		}
+ 	}
+ 
++	/* Intel Atom has only fixed TjMax at 95C */
++
++	if (c->x86_model == 0x1c) {
++		data->tjmax = 95000;
++	} else {
++		/* Adjust the TjMax for the rest of Core2 family */
+ 	data->tjmax = adjust_tjmax(c, data->id, &pdev->dev);
+-	platform_set_drvdata(pdev, data);
++	}
+ 
+ 	/* read the still undocumented IA32_TEMPERATURE_TARGET it exists
+ 	   on older CPUs but not in this register */
+@@ -265,6 +271,8 @@
+ 		}
+ 	}
+ 
++	platform_set_drvdata(pdev, data);
++
+ 	if ((err = sysfs_create_group(&pdev->dev.kobj, &coretemp_group)))
+ 		goto exit_dev;
+ 
+@@ -413,11 +421,11 @@
+ 	for_each_online_cpu(i) {
+ 		struct cpuinfo_x86 *c = &cpu_data(i);
+ 
+-		/* check if family 6, models 0xe, 0xf, 0x16, 0x17, 0x1A */
++		/* check if family 6, models 0xe, 0xf, 0x16, 0x17, 0x1A, 0x1C */
+ 		if ((c->cpuid_level < 0) || (c->x86 != 0x6) ||
+ 		    !((c->x86_model == 0xe) || (c->x86_model == 0xf) ||
+ 			(c->x86_model == 0x16) || (c->x86_model == 0x17) ||
+-			(c->x86_model == 0x1A))) {
++			(c->x86_model == 0x1A) || (c->x86_model == 0x1C))) {
+ 
+ 			/* supported CPU not found, but report the unknown
+ 			   family 6 CPU */
diff --git a/abs/core-testing/kernel26.orig/ext4.patch b/abs/core-testing/kernel26.orig/ext4.patch
new file mode 100644
index 0000000..40ecfde
--- /dev/null
+++ b/abs/core-testing/kernel26.orig/ext4.patch
@@ -0,0 +1,152 @@
+diff -ruaN linux-2.6.28.orig/fs/ext4/ext4.h linux-2.6.28/fs/ext4/ext4.h
+--- linux-2.6.28.orig/fs/ext4/ext4.h	2008-12-24 23:26:37.000000000 +0000
++++ linux-2.6.28/fs/ext4/ext4.h	2009-08-17 04:22:43.000000000 +0000
+@@ -254,6 +254,7 @@
+ #define EXT4_STATE_NEW			0x00000002 /* inode is newly created */
+ #define EXT4_STATE_XATTR		0x00000004 /* has in-inode xattrs */
+ #define EXT4_STATE_NO_EXPAND		0x00000008 /* No space for expansion */
++#define EXT4_STATE_DA_ALLOC_CLOSE	0x00000010 /* Alloc DA blks on close */
+ 
+ /* Used to pass group descriptor data when online resize is done */
+ struct ext4_new_group_input {
+@@ -301,7 +302,9 @@
+ #define EXT4_IOC_GROUP_EXTEND		_IOW('f', 7, unsigned long)
+ #define EXT4_IOC_GROUP_ADD		_IOW('f', 8, struct ext4_new_group_input)
+ #define EXT4_IOC_MIGRATE		_IO('f', 9)
++ /* note ioctl 10 reserved for an early version of the FIEMAP ioctl */
+  /* note ioctl 11 reserved for filesystem-independent FIEMAP ioctl */
++#define EXT4_IOC_ALLOC_DA_BLKS		_IO('f', 12)
+ 
+ /*
+  * ioctl commands in 32 bit emulation
+@@ -1088,6 +1091,7 @@
+ extern void ext4_truncate(struct inode *);
+ extern void ext4_set_inode_flags(struct inode *);
+ extern void ext4_get_inode_flags(struct ext4_inode_info *);
++extern int ext4_alloc_da_blocks(struct inode *inode);
+ extern void ext4_set_aops(struct inode *inode);
+ extern int ext4_writepage_trans_blocks(struct inode *);
+ extern int ext4_meta_trans_blocks(struct inode *, int nrblocks, int idxblocks);
+diff -ruaN linux-2.6.28.orig/fs/ext4/file.c linux-2.6.28/fs/ext4/file.c
+--- linux-2.6.28.orig/fs/ext4/file.c	2008-12-24 23:26:37.000000000 +0000
++++ linux-2.6.28/fs/ext4/file.c	2009-08-17 04:15:17.000000000 +0000
+@@ -33,6 +33,10 @@
+  */
+ static int ext4_release_file(struct inode *inode, struct file *filp)
+ {
++	if (EXT4_I(inode)->i_state & EXT4_STATE_DA_ALLOC_CLOSE) {
++		ext4_alloc_da_blocks(inode);
++		EXT4_I(inode)->i_state &= ~EXT4_STATE_DA_ALLOC_CLOSE;
++	}
+ 	/* if we are the last writer on the inode, drop the block reservation */
+ 	if ((filp->f_mode & FMODE_WRITE) &&
+ 			(atomic_read(&inode->i_writecount) == 1))
+diff -ruaN linux-2.6.28.orig/fs/ext4/inode.c linux-2.6.28/fs/ext4/inode.c
+--- linux-2.6.28.orig/fs/ext4/inode.c	2008-12-24 23:26:37.000000000 +0000
++++ linux-2.6.28/fs/ext4/inode.c	2009-08-17 04:34:48.000000000 +0000
+@@ -2686,6 +2686,42 @@
+ 	return;
+ }
+ 
++/*
++ * Force all delayed allocation blocks to be allocated for a given inode.
++ */
++int ext4_alloc_da_blocks(struct inode *inode)
++{
++	if (!EXT4_I(inode)->i_reserved_data_blocks &&
++	    !EXT4_I(inode)->i_reserved_meta_blocks)
++		return 0;
++	/*
++	 * We do something simple for now.  The filemap_flush() will
++	 * also start triggering a write of the data blocks, which is 
++	 * not strictly speaking necessary (and for users of
++	 * laptop_mode, not even desirable).  However, to do otherwise
++	 * would require replicating code paths in:
++	 *
++	 * ext4_da_writepages() ->
++	 *    write_cache_pages() ---> (via passed in callback function)
++	 *        __mpage_da_writepage() -->
++	 *           mpage_ad_bh_to_extent()
++	 *           mpage_da_map_blocks()
++	 *
++	 * The problem is that write_cache_pages(), and then redirty all of
++	 * the pages calling redirty_page_for_writeback() but that
++	 * would be ugly in the extreme.  So instead we would need to
++	 * replicate parts of the code in teh above functions,
++	 * simplifying them because we wouldn't actually intend to
++	 * write out the pages, but rather only collect contiguous
++	 * logical block extents, call the multi-block allocator, and
++	 * then update the buffer heads with the block allocations.
++	 *
++	 * For now, though we'll cheat by calling filemap_flush(),
++	 * which will map the blocks, and start the I/O, but not
++	 * actually wait for the I/O to complte.
++	 */
++	return filemap_flush(inode->i_mapping);
++}
+ 
+ /*
+  * bmap() is special.  It gets used by applications such as lilo and by
+@@ -3695,6 +3731,9 @@
+ 	if (!ext4_can_truncate(inode))
+ 		return;
+ 
++	if (inode->i_size == 0)
++		ei->i_state |= EXT4_STATE_DA_ALLOC_CLOSE;
++
+ 	if (EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL) {
+ 		ext4_ext_truncate(inode);
+ 		return;
+diff -ruaN linux-2.6.28.orig/fs/ext4/ioctl.c linux-2.6.28/fs/ext4/ioctl.c
+--- linux-2.6.28.orig/fs/ext4/ioctl.c	2008-12-24 23:26:37.000000000 +0000
++++ linux-2.6.28/fs/ext4/ioctl.c	2009-08-17 04:38:43.000000000 +0000
+@@ -263,6 +263,20 @@
+ 		return err;
+ 	}
+ 
++	case EXT4_IOC_ALLOC_DA_BLKS:
++	{
++		int err;
++		if (!is_owner_or_cap(inode))
++			return -EACCES;
++
++		err = mnt_want_write(filp->f_path.mnt);
++		if (err)
++			return err;
++		err = ext4_alloc_da_blocks(inode);
++		mnt_drop_write(filp->f_path.mnt);
++		return err;
++	}
++
+ 	default:
+ 		return -ENOTTY;
+ 	}
+diff -ruaN linux-2.6.28.orig/fs/ext4/namei.c linux-2.6.28/fs/ext4/namei.c
+--- linux-2.6.28.orig/fs/ext4/namei.c	2008-12-24 23:26:37.000000000 +0000
++++ linux-2.6.28/fs/ext4/namei.c	2009-08-17 04:11:01.000000000 +0000
+@@ -2283,7 +2283,7 @@
+ 	struct inode *old_inode, *new_inode;
+ 	struct buffer_head *old_bh, *new_bh, *dir_bh;
+ 	struct ext4_dir_entry_2 *old_de, *new_de;
+-	int retval;
++	int retval, force_da_alloc = 0;
+ 
+ 	old_bh = new_bh = dir_bh = NULL;
+ 
+@@ -2421,6 +2421,7 @@
+ 		ext4_mark_inode_dirty(handle, new_inode);
+ 		if (!new_inode->i_nlink)
+ 			ext4_orphan_add(handle, new_inode);
++		force_da_alloc = 1;
+ 	}
+ 	retval = 0;
+ 
+@@ -2429,6 +2430,8 @@
+ 	brelse(old_bh);
+ 	brelse(new_bh);
+ 	ext4_journal_stop(handle);
++	if (retval == 0 && force_da_alloc)
++		ext4_alloc_da_blocks(old_inode);
+ 	return retval;
+ }
+ 
diff --git a/abs/core-testing/kernel26.orig/kernel26.install b/abs/core-testing/kernel26.orig/kernel26.install
new file mode 100644
index 0000000..da92142
--- /dev/null
+++ b/abs/core-testing/kernel26.orig/kernel26.install
@@ -0,0 +1,147 @@
+# arg 1:  the new package version
+# arg 2:  the old package version
+
+KERNEL_NAME=
+KERNEL_VERSION=2.6.34-ARCH
+
+post_install () {
+  # updating module dependencies
+  echo ">>> Updating module dependencies. Please wait ..."
+  depmod $KERNEL_VERSION 
+  # generate init ramdisks
+  echo ">>> MKINITCPIO SETUP"
+  echo ">>> ----------------"
+  echo ">>> If you use LVM2, Encrypted root or software RAID,"
+  echo ">>> Ensure you enable support in /etc/mkinitcpio.conf ."
+  echo ">>> More information about mkinitcpio setup can be found here:"
+  echo ">>> http://wiki.archlinux.org/index.php/Mkinitcpio"
+  echo ""
+  echo ">>> Generating initial ramdisk, using mkinitcpio.  Please wait..."
+  /sbin/mkinitcpio -p kernel26${KERNEL_NAME}
+}
+
+post_upgrade() {
+  pacman -Q grub &>/dev/null
+  hasgrub=$?
+  pacman -Q grub2 &>/dev/null
+  hasgrub2=$?
+  pacman -Q lilo &>/dev/null
+  haslilo=$?
+  # reminder notices
+  if [ $haslilo -eq 0 ]; then
+    echo ">>>"
+    if [ $hasgrub -eq 0 -o $hasgrub2 -eq 0 ]; then
+      echo ">>> If you use the LILO bootloader, you should run 'lilo' before rebooting."
+    else
+      echo ">>> You appear to be using the LILO bootloader. You should run"
+      echo ">>> 'lilo' before rebooting."
+    fi
+    echo ">>>"
+  fi
+
+  if grep "^[^#]*/boot" /etc/fstab 2>&1 >/dev/null; then
+    if ! grep "/boot" /etc/mtab 2>&1 >/dev/null; then
+      echo "WARNING: /boot appears to be a seperate partition but is not mounted"
+      echo "         This is most likely not what you want.  Please mount your /boot"
+      echo "         partition and reinstall the kernel unless you are sure this is OK"
+    fi
+  fi
+
+  if [ "`vercmp $2 2.6.13`" -lt 0 ]; then
+    # important upgrade notice
+    echo ">>>"
+    echo ">>> IMPORTANT KERNEL UPGRADE NOTICE"
+    echo ">>> -------------------------------"
+    echo ">>> As of kernel 2.6.13, DevFS is NO LONGER AVAILABLE!"
+    echo ">>> If you still use DevFS, please make the transition to uDev before"
+    echo ">>> rebooting.  If you really need to stay with DevFS for some reason,"
+    echo ">>> then you can manually downgrade to an older version:"
+    echo ">>>"
+    echo ">>> # pacman -U http://archlinux.org/~judd/kernel/kernel26-scsi-2.6.12.2-1.pkg.tar.gz"
+    echo ">>>"
+    echo ">>> If you choose to downgrade, don't forget to add kernel26-scsi to your"
+    echo ">>> IgnorePkg list in /etc/pacman.conf"
+    echo ">>>"
+    echo ">>> (NOTE: The following portion applies to uDev users as well!)"
+    echo ">>>"
+    echo ">>> If you use any DevFS paths in your GRUB menu.lst, then you will not"
+    echo ">>> be able to boot!  Change your root= parameter to use the classic"
+    echo ">>> naming scheme."
+    echo ">>>"
+    echo ">>> EXAMPLES:"
+    echo ">>> - change root=/dev/discs/disc0/part3 to root=/dev/sda3"
+    echo ">>> - change root=/dev/md/0 to root=/dev/md0"
+    echo ">>>"
+  fi
+  # generate new init ramdisk
+  if [ "`vercmp $2 2.6.18`" -lt 0 ]; then
+    echo ">>> --------------------------------------------------------------"
+    echo ">>> |                          WARNING:                          |"
+    echo ">>> |mkinitrd is not supported anymore in kernel >=2.6.18 series!|"
+    echo ">>> |              Please change to Mkinitcpio setup.            |"
+    echo ">>> --------------------------------------------------------------"
+    echo ">>>"
+  fi
+  # updating module dependencies
+  echo ">>> Updating module dependencies. Please wait ..."
+  depmod $KERNEL_VERSION
+  echo ">>> MKINITCPIO SETUP"
+  echo ">>> ----------------"
+  if [ "`vercmp $2 2.6.18`" -lt 0 ]; then
+    echo ">>> Please change your bootloader config files:"
+    echo ">>> Grub: /boot/grub/menu.lst | Lilo: /etc/lilo.conf"
+    echo "------------------------------------------------"
+    echo "| - initrd26.img to kernel26${KERNEL_NAME}.img               |"
+    echo "| - initrd26-full.img to kernel26${KERNEL_NAME}-fallback.img |"
+    echo "------------------------------------------------"
+  fi
+  if [ "`vercmp $2 2.6.19`" -lt 0 ]; then
+    echo ""
+    echo ">>> New PATA/IDE subsystem - EXPERIMENTAL"
+    echo ">>> ----------"
+    echo ">>> To use the new pata drivers, change the 'ide' hook "
+    echo ">>> to 'pata' in /etc/mkinicpio.conf HOOKS="
+    echo ">>> The new system changes: /dev/hd? to /dev/sd?"
+    echo ">>> Don't forget to modify GRUB, LILO and fstab to the"
+    echo ">>> new naming system. "
+    echo ">>> eg: hda3 --> sda3, hdc8 --> sdc8"
+    echo ""
+    echo ">>> piix/ata_piix (Intel chipsets) - IMPORTANT"
+    echo "----------"
+    echo ">>> If you have enabled ide/pata/sata HOOKs in /etc/mkinitcpio.conf" 
+    echo ">>> the 'ata_piix' module will be used."
+    echo ">>> This may cause your devices to shift names, eg:"
+    echo ">>> - IDE: devices from hd? to sd?"
+    echo ">>> - SATA: sda might shift to sdc if you have 2 other disks on a PIIX IDE port."
+    echo ">>> To check if this will affect you, check 'mkinitcpio -M' for piix/ata_piix"
+    echo ""
+  fi
+
+  echo ">>> If you use LVM2, Encrypted root or software RAID,"
+  echo ">>> Ensure you enable support in /etc/mkinitcpio.conf ."
+  echo ">>> More information about mkinitcpio setup can be found here:"
+  echo ">>> http://wiki.archlinux.org/index.php/Mkinitcpio"
+  echo ""
+  echo ">>> Generating initial ramdisk, using mkinitcpio.  Please wait..."
+if [ "`vercmp $2 2.6.19`" -lt 0 ]; then
+  /sbin/mkinitcpio -p kernel26${KERNEL_NAME} -m "ATTENTION:\nIf you get a kernel panic below
+and are using an Intel chipset, append 'earlymodules=piix' to the
+kernel commandline"
+else
+  /sbin/mkinitcpio -p kernel26${KERNEL_NAME}
+fi
+if [ "`vercmp $2 2.6.21`" -lt 0 ]; then
+  echo ""
+  echo "Important ACPI Information:"
+  echo ">>> Since 2.6.20.7 all possible ACPI parts are modularized."
+  echo ">>> The modules are located at:"
+  echo ">>> /lib/modules/$(uname -r)/kernel/drivers/acpi"
+  echo ">>> For more information about ACPI modules check this wiki page:"
+  echo ">>> 'http://wiki.archlinux.org/index.php/ACPI_modules'"
+fi
+}
+
+post_remove() {
+  rm -f /boot/kernel26${KERNEL_NAME}.img
+  rm -f /boot/kernel26${KERNEL_NAME}-fallback.img
+}
\ No newline at end of file
diff --git a/abs/core-testing/kernel26.orig/kernel26.preset b/abs/core-testing/kernel26.orig/kernel26.preset
new file mode 100644
index 0000000..742a442
--- /dev/null
+++ b/abs/core-testing/kernel26.orig/kernel26.preset
@@ -0,0 +1,17 @@
+# mkinitcpio preset file for kernel26
+
+########################################
+# DO NOT EDIT THIS LINE:
+source /etc/mkinitcpio.d/kernel26.kver
+########################################
+ALL_config="/etc/mkinitcpio.conf"
+
+PRESETS=('default' 'fallback')
+
+#default_config="/etc/mkinitcpio.conf"
+default_image="/boot/kernel26.img"
+#default_options=""
+
+#fallback_config="/etc/mkinitcpio.conf"
+fallback_image="/boot/kernel26-fallback.img" 
+fallback_options="-S autodetect"
\ No newline at end of file
diff --git a/abs/core-testing/kernel26.orig/logo_linux_clut224.ppm b/abs/core-testing/kernel26.orig/logo_linux_clut224.ppm
new file mode 100644
index 0000000..c539d32
--- /dev/null
+++ b/abs/core-testing/kernel26.orig/logo_linux_clut224.ppm
@@ -0,0 +1,883 @@
+P3
+80 80
+255
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 24 24 24 95 95 95 143 148 147 219 219 219 224 224 224 224 224 224 221 221 221 
+231 231 230 232 232 232 217 218 217 194 194 194 143 148 147 61 61 61 1 1 1 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 65 65 65 
+179 180 180 224 224 224 141 142 141 85 85 85 25 25 26 2 2 2 0 0 0 0 0 0 
+0 0 0 0 0 0 11 11 11 35 37 37 95 95 95 179 180 180 221 221 221 136 141 140 
+28 28 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 24 24 191 191 191 194 194 194 
+73 73 73 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 16 16 109 109 110 
+224 223 222 104 104 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 73 73 73 234 234 234 104 104 104 1 1 1 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 
+20 20 20 204 204 204 119 120 120 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 35 35 36 228 228 227 56 56 56 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 28 28 28 69 69 69 45 47 47 7 7 7 
+0 0 0 16 16 16 159 159 159 197 197 197 8 8 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 1 1 1 208 207 206 88 88 88 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 51 51 51 111 114 112 109 109 110 51 51 51 
+2 2 2 0 0 0 1 1 1 146 149 148 167 167 166 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 81 79 75 197 202 202 1 1 1 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 61 61 61 104 104 104 81 79 75 43 43 43 
+8 8 8 0 0 0 0 0 0 7 7 7 213 213 213 65 65 65 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 191 191 191 88 88 88 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 28 28 28 28 28 28 7 7 7 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 65 65 65 228 228 227 20 20 20 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 1 1 1 246 246 246 22 22 22 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 159 160 131 131 131 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 8 8 8 246 246 246 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 65 65 197 197 197 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 12 12 12 241 241 241 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 22 22 22 5 5 5 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 225 224 224 56 56 56 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 7 7 7 246 246 246 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 
+20 20 20 43 43 43 31 31 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 4 4 4 25 25 26 31 31 31 20 20 20 65 65 65 20 20 20 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 146 149 148 124 129 126 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 3 3 3 254 254 254 4 4 4 0 0 0 0 0 0 31 31 31 104 104 104 
+119 120 120 51 51 51 28 28 28 20 20 20 0 0 0 0 0 0 0 0 0 0 0 0 
+7 7 7 73 73 73 131 131 131 153 159 160 159 159 159 153 159 160 35 35 36 24 24 24 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 95 95 175 172 168 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 4 4 4 254 254 254 4 4 4 0 0 0 25 25 26 141 142 141 187 186 186 
+197 197 197 167 167 166 65 65 65 4 4 4 0 0 0 0 0 0 0 0 0 9 9 9 
+109 109 110 179 180 180 197 197 197 208 207 206 213 213 213 191 191 191 123 123 123 7 7 7 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 65 65 187 186 186 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 1 1 1 241 241 241 5 5 5 0 0 0 85 85 85 208 207 206 226 227 227 
+235 235 235 246 246 246 221 221 221 22 22 22 0 0 0 0 0 0 0 0 0 85 85 85 
+217 218 217 246 246 246 226 227 227 167 167 166 202 202 202 239 239 239 197 197 197 73 73 73 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 40 40 217 218 217 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 235 235 235 7 7 7 0 0 0 131 136 135 159 159 159 11 11 11 
+69 69 69 131 136 135 246 246 246 104 104 104 0 0 0 0 0 0 0 0 0 123 123 123 
+236 237 236 203 203 203 20 20 20 20 20 20 88 88 88 124 129 126 246 246 246 194 194 194 
+7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 25 26 226 227 227 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 234 234 234 28 28 28 0 0 0 146 149 148 65 65 65 0 0 0 
+109 109 110 51 51 51 234 234 234 131 136 135 0 0 0 35 35 36 22 22 22 123 123 123 
+239 239 239 95 95 95 0 0 0 0 0 0 43 43 43 16 16 16 225 224 224 244 244 244 
+45 47 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 16 16 241 241 241 
+1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 217 218 217 51 51 51 1 1 1 131 131 131 85 85 85 0 0 0 
+22 22 22 28 28 28 208 207 206 127 128 122 58 43 7 58 43 7 30 20 1 73 73 73 
+231 230 229 65 65 65 0 0 0 0 0 0 0 0 0 0 0 0 202 202 202 246 246 246 
+43 43 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 246 246 246 
+24 24 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 172 176 175 85 85 85 0 0 0 73 73 73 187 186 186 5 5 5 
+0 0 0 30 20 1 190 146 50 224 170 17 221 175 7 221 175 7 201 165 9 191 150 3 
+220 185 82 91 70 38 8 6 3 1 1 0 0 0 0 43 43 43 239 239 239 228 228 227 
+11 11 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 232 232 232 
+35 35 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 172 176 175 95 95 95 0 0 0 9 9 9 204 204 204 131 136 135 
+91 61 1 204 146 9 217 163 7 232 191 11 232 191 11 226 196 19 219 193 11 197 162 19 
+226 196 19 219 193 11 201 165 9 130 96 8 107 93 64 228 228 227 248 248 248 112 118 114 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 235 235 
+16 16 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 143 148 147 109 109 110 0 0 0 0 0 0 81 79 75 227 180 59 
+204 146 9 234 184 12 239 191 15 237 191 8 238 196 12 238 196 12 226 196 19 231 199 39 
+231 199 39 231 199 39 219 193 11 219 193 11 219 193 11 227 180 59 192 156 83 8 6 3 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 239 239 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 131 131 131 111 114 112 0 0 0 30 20 1 155 102 4 198 139 9 
+230 172 11 238 184 11 237 191 8 238 196 12 238 196 12 226 196 19 231 199 39 220 185 82 
+231 199 39 231 199 39 226 196 19 219 193 11 219 193 11 219 193 11 226 196 19 159 120 9 
+4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+20 20 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 131 131 131 123 123 123 0 0 0 120 77 2 187 136 3 217 155 7 
+229 171 7 238 184 8 238 184 8 238 196 12 238 196 12 231 199 39 231 199 39 231 199 39 
+231 199 39 219 193 11 219 193 11 219 193 11 219 193 11 191 150 3 197 162 19 201 165 9 
+30 20 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 202 202 202 
+56 56 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 119 120 120 141 142 141 1 1 0 104 68 5 175 125 4 217 155 7 
+229 171 7 238 184 8 238 196 12 238 196 12 226 196 19 231 199 39 231 199 39 226 196 19 
+219 193 11 219 193 11 219 193 11 191 150 3 191 150 3 201 165 9 217 155 7 183 127 3 
+4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 186 186 
+73 73 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51 51 51 
+143 148 147 224 223 222 225 224 224 146 149 148 4 4 4 8 6 3 130 96 8 175 125 4 
+217 163 7 238 184 8 238 196 12 231 199 39 231 199 39 226 196 19 226 196 19 219 193 11 
+201 165 9 191 150 3 175 125 4 191 150 3 216 159 5 206 148 3 198 139 9 91 70 38 
+0 0 0 0 0 0 5 5 5 45 47 47 12 12 12 0 0 0 0 0 0 167 167 166 
+88 88 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 20 20 159 159 159 226 227 227 
+172 176 175 136 141 140 123 135 137 124 131 129 112 118 114 45 47 47 141 122 119 130 96 8 
+155 102 4 191 150 3 219 193 11 219 193 11 201 165 9 191 150 3 191 150 3 175 125 4 
+191 150 3 191 150 3 191 150 3 187 136 3 188 133 20 190 146 50 175 172 168 175 172 168 
+25 25 26 0 0 0 1 1 1 56 56 56 94 100 97 56 56 56 2 2 2 95 95 95 
+172 176 175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 159 160 217 218 217 144 156 160 
+144 156 160 144 156 160 138 149 149 123 135 137 94 103 103 104 116 120 183 181 175 162 157 129 
+148 102 14 155 102 4 175 125 4 191 150 3 191 150 3 191 150 3 191 150 3 191 150 3 
+200 140 3 199 131 5 188 133 20 192 156 83 175 172 168 197 197 197 194 194 194 187 186 186 
+109 109 110 0 0 0 0 0 0 8 8 8 95 95 95 111 114 112 31 31 31 18 18 18 
+241 241 241 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 248 248 159 166 168 86 124 118 
+144 156 160 138 149 149 123 135 137 144 156 160 94 103 103 124 131 129 159 159 159 191 191 191 
+162 157 129 148 102 14 155 102 4 182 124 9 198 139 9 187 136 3 199 131 5 170 114 5 
+170 114 5 190 146 50 163 157 151 187 186 186 197 197 197 231 230 229 241 240 237 221 221 221 
+191 191 191 34 34 34 0 0 0 0 0 0 9 9 9 39 40 40 4 4 4 1 1 1 
+228 228 227 25 25 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 248 248 138 149 149 123 135 137 
+123 135 137 138 149 149 104 116 120 146 149 148 119 128 123 131 136 135 123 135 137 204 204 204 
+192 192 192 175 172 168 145 135 65 148 102 14 148 102 14 148 102 14 148 102 14 145 135 65 
+162 157 129 183 181 175 191 191 191 208 207 206 241 240 237 255 255 254 254 254 254 254 254 254 
+236 237 236 119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+146 149 148 131 131 131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 204 204 159 166 168 144 156 160 
+113 134 127 144 156 160 94 103 103 136 141 140 119 128 123 119 128 123 112 118 114 221 221 221 
+194 194 194 187 186 186 187 186 186 172 176 175 175 172 168 179 180 180 187 186 186 187 186 186 
+194 194 194 197 197 197 224 223 222 251 251 251 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 232 232 232 31 31 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+69 69 69 225 224 224 35 35 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 35 35 36 226 227 227 123 135 137 159 166 168 
+86 124 118 138 149 149 113 134 127 112 118 114 131 136 135 104 104 104 124 131 129 204 204 204 
+224 224 224 191 191 191 187 186 186 187 186 186 179 180 180 187 186 186 187 186 186 194 194 194 
+213 213 213 241 240 237 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 146 149 148 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 81 79 75 226 227 227 81 79 75 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 39 40 40 231 230 229 73 73 73 25 25 26 153 159 160 
+104 116 120 123 135 137 123 135 137 104 116 120 141 142 141 94 103 103 136 141 140 153 159 160 
+253 252 251 225 224 224 197 197 197 189 189 189 189 189 189 191 191 191 208 207 206 233 231 230 
+253 252 251 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 246 246 246 34 34 34 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 34 34 34 197 197 197 167 167 166 9 9 9 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 25 25 26 221 221 221 69 69 69 0 0 0 2 2 2 123 135 137 
+123 135 137 104 116 120 136 141 140 119 128 123 131 136 135 113 134 127 113 134 127 113 134 127 
+254 254 254 254 254 254 244 244 244 228 228 227 228 228 227 239 239 239 251 251 251 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 131 136 135 1 1 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 2 2 2 167 167 166 146 149 148 1 1 1 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 3 3 3 202 202 202 104 104 104 0 0 0 0 0 0 0 0 0 77 85 86 
+153 159 160 141 122 119 123 135 137 94 103 103 94 103 103 113 134 127 145 140 129 112 118 114 
+231 233 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 239 239 239 16 16 16 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 31 31 31 219 219 219 81 79 75 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 143 148 147 179 180 180 1 1 1 0 0 0 0 0 0 0 0 0 35 37 37 
+159 166 168 143 148 147 94 103 103 109 109 110 86 124 118 119 128 123 94 100 97 127 128 122 
+179 180 180 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 95 95 95 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43 43 43 236 237 236 20 20 20 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+3 3 3 235 235 235 25 25 26 0 0 0 0 0 0 0 0 0 0 0 0 8 8 8 
+138 149 149 123 135 137 77 85 86 112 118 114 94 103 103 104 116 120 111 114 112 145 140 129 
+143 148 147 254 254 254 254 254 254 253 252 251 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+251 251 251 241 241 241 246 246 246 254 254 254 179 180 180 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141 167 167 166 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+111 114 112 172 176 175 16 16 16 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 
+94 100 97 159 166 168 113 134 127 104 104 104 94 103 103 104 116 120 113 134 127 113 134 127 
+119 128 123 251 251 251 236 237 236 226 227 227 231 230 229 244 244 244 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 246 246 246 232 232 232 224 224 224 217 218 217 213 213 213 
+203 203 203 204 204 204 203 203 203 221 221 221 251 251 251 56 56 56 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 16 16 236 237 236 
+22 22 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 
+217 218 217 65 65 65 104 104 104 45 47 47 1 1 1 0 0 0 0 0 0 1 1 0 
+43 43 43 153 159 160 162 157 129 136 141 140 113 134 127 119 128 123 124 131 129 104 116 120 
+109 109 110 236 237 236 248 248 248 232 232 232 251 251 251 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 251 251 251 239 239 239 224 223 222 213 213 213 167 167 166 
+123 123 123 94 100 97 192 192 192 194 194 194 224 223 222 189 189 189 3 3 3 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 35 37 37 11 11 11 131 131 131 
+159 159 159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 47 47 
+213 213 213 9 9 9 119 120 120 123 123 123 43 43 43 3 3 3 0 0 0 0 0 0 
+35 37 37 138 149 149 113 134 127 111 114 112 119 128 123 94 103 103 124 129 126 94 103 103 
+124 131 129 197 202 202 251 251 251 253 252 251 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 246 246 246 153 159 160 
+73 73 73 4 4 4 189 189 189 197 197 197 197 197 197 235 235 235 85 85 85 0 0 0 
+0 0 0 0 0 0 0 0 0 12 12 12 65 65 65 81 79 75 11 11 11 12 12 12 
+251 251 251 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 123 123 
+136 141 140 0 0 0 39 40 40 109 109 110 123 123 123 104 104 104 56 56 56 24 24 24 
+131 136 135 167 167 166 131 136 135 112 118 114 124 131 129 112 118 114 124 131 129 112 118 114 
+119 128 123 159 166 168 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 219 219 219 109 109 110 
+16 16 16 1 1 0 172 176 175 231 231 230 208 207 206 203 203 203 213 213 213 18 18 18 
+3 3 3 35 37 37 85 85 85 104 104 104 65 65 65 9 9 9 0 0 0 0 0 0 
+240 240 239 12 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 186 186 
+73 73 73 0 0 0 1 1 1 18 18 18 61 61 61 109 109 110 123 123 123 124 129 126 
+136 141 140 153 159 160 153 159 160 138 149 149 146 149 148 138 149 149 146 149 148 138 149 149 
+138 149 149 159 166 168 253 252 251 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 192 192 192 88 88 88 
+4 4 4 0 0 0 141 142 141 254 254 254 239 239 239 202 202 202 187 186 186 136 141 140 
+112 118 114 95 95 95 61 61 61 22 22 22 2 2 2 0 0 0 0 0 0 0 0 0 
+204 204 204 51 51 51 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 219 219 
+39 40 40 0 0 0 0 0 0 0 0 0 1 1 1 16 16 16 56 56 56 95 95 95 
+112 118 114 123 123 123 127 128 122 127 128 122 124 129 126 124 131 129 131 136 135 136 141 140 
+136 141 140 141 142 141 159 159 159 159 159 159 112 118 114 104 104 104 232 232 232 254 254 254 
+254 254 254 254 254 254 219 219 219 175 172 168 153 159 160 131 131 131 131 131 131 61 61 61 
+2 2 2 0 0 0 51 51 51 131 131 131 123 123 123 111 114 112 95 95 95 56 56 56 
+28 28 28 5 5 5 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+146 149 148 104 104 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 225 224 224 
+35 35 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 11 11 11 
+25 25 26 51 51 51 73 73 73 88 88 88 94 100 97 104 104 104 104 104 104 94 100 97 
+104 104 104 95 95 95 88 88 88 65 65 65 12 12 12 1 1 1 69 69 69 254 254 254 
+254 254 254 221 221 221 31 31 31 61 61 61 73 73 73 81 79 75 56 56 56 11 11 11 
+0 0 0 0 0 0 5 5 5 24 24 24 24 24 24 12 12 12 4 4 4 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+141 142 141 104 104 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 227 227 
+34 34 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 2 2 2 9 9 9 12 12 12 12 12 12 16 16 16 18 18 18 
+12 12 12 7 7 7 4 4 4 1 1 1 0 0 0 0 0 0 1 1 1 234 234 234 
+254 254 254 136 141 140 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 
+131 131 131 124 129 126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 213 213 
+51 51 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 218 217 
+254 254 254 112 118 114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+153 159 160 119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141 
+131 131 131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 12 12 248 248 248 
+255 255 255 146 149 148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34 34 34 
+233 231 230 16 16 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 37 37 
+239 239 239 31 31 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 104 104 254 254 254 
+254 254 254 235 235 235 12 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 111 114 112 
+159 159 159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+159 159 159 141 142 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 40 40 236 237 236 254 254 254 
+254 254 254 254 254 254 159 159 159 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 241 241 
+61 61 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+197 197 197 65 65 65 0 0 0 8 8 8 16 16 16 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 73 73 73 232 232 232 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 159 159 159 16 16 16 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 228 227 
+35 37 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 5 5 
+244 244 244 7 7 7 0 0 0 73 73 73 236 237 236 131 136 135 43 43 43 1 1 1 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 24 24 24 94 100 97 194 194 194 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 235 235 235 131 131 131 45 47 47 2 2 2 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 197 197 
+65 65 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 47 47 
+204 204 204 0 0 0 0 0 0 111 114 112 255 255 255 255 255 255 255 255 255 225 224 224 
+167 167 166 131 131 131 104 104 104 88 88 88 88 88 88 104 104 104 131 131 131 167 167 166 
+203 203 203 225 224 224 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 231 231 230 
+172 176 175 131 131 131 94 100 97 81 79 75 69 69 69 73 73 73 95 95 95 123 123 123 
+175 172 168 191 191 191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 176 175 
+88 88 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 
+175 172 168 0 0 0 1 1 0 131 136 135 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 
+240 240 239 228 228 227 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 219 219 219 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 131 136 135 
+124 129 126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 
+179 180 180 0 0 0 0 0 0 141 142 141 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+240 240 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 219 219 219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141 
+111 114 112 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 25 26 159 159 159 224 223 222 
+167 167 166 0 0 0 1 1 1 141 142 141 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+240 240 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 
+255 255 255 204 204 204 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 141 142 141 
+119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 2 2 2 131 131 131 240 235 222 231 198 127 231 199 39 
+190 146 50 58 43 7 1 1 0 131 131 131 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+239 239 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 
+254 254 254 153 159 160 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 141 142 141 
+111 114 112 2 2 2 16 16 16 34 34 34 35 35 36 16 16 16 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 1 1 0 163 157 151 218 210 190 233 177 11 239 191 15 239 191 15 
+239 194 10 230 173 7 104 68 5 127 128 122 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+239 239 239 231 231 230 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 253 252 251 253 252 251 
+237 229 207 141 122 119 5 4 2 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141 
+244 244 244 240 235 222 240 235 222 237 229 207 237 229 207 237 229 207 208 207 206 51 51 51 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 95 95 95 237 229 207 224 170 17 233 177 11 237 185 13 239 191 15 
+239 191 15 239 191 15 233 179 8 192 156 83 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+239 239 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 240 235 222 222 169 38 
+215 152 18 219 157 11 204 146 9 188 133 20 148 102 14 130 96 8 148 102 14 188 133 20 
+190 146 50 215 152 18 215 152 18 221 159 7 217 155 7 215 152 18 220 185 82 236 237 236 
+25 25 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 28 28 28 233 231 230 227 180 59 215 152 18 223 162 13 233 177 11 238 184 11 
+239 191 15 238 184 11 239 191 15 238 196 12 214 199 171 255 255 255 255 255 255 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+241 241 241 226 227 227 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 255 255 254 253 252 251 203 181 131 198 139 9 
+204 146 9 219 157 11 219 157 11 215 152 18 219 157 11 215 152 18 215 152 18 215 152 18 
+223 162 13 224 170 17 230 172 11 233 177 11 231 175 8 223 162 13 215 152 18 231 198 127 
+141 142 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 11 11 
+85 85 85 230 228 223 220 185 82 204 146 9 219 157 11 230 172 11 234 181 11 236 184 12 
+237 185 13 237 185 13 238 184 11 239 194 10 239 191 15 249 244 230 253 252 251 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 251 251 251 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 254 254 254 240 235 222 182 124 9 199 131 5 
+217 155 7 221 159 7 227 169 7 233 176 9 230 172 11 230 172 11 230 172 11 233 177 11 
+233 177 11 235 179 10 235 179 10 236 183 11 234 181 11 230 172 11 224 170 17 227 180 59 
+231 233 233 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 61 61 61 88 88 88 146 149 148 191 191 191 230 228 223 
+237 229 207 190 146 50 215 152 18 219 157 11 230 172 11 233 177 11 234 182 11 236 185 13 
+237 185 13 237 185 13 237 185 13 238 184 11 239 194 10 227 180 59 249 244 230 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 235 235 235 202 202 202 203 181 131 170 114 5 198 139 9 
+216 159 5 227 169 7 234 178 8 236 182 10 234 181 11 234 181 11 234 181 11 234 182 11 
+236 183 11 234 181 11 236 182 10 236 183 11 236 182 10 231 175 8 224 170 17 215 152 18 
+244 244 244 34 34 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 131 131 131 240 235 222 231 198 127 231 198 127 227 180 59 188 133 20 
+204 146 9 217 144 7 219 157 11 227 166 7 233 177 11 236 182 10 237 185 11 237 185 13 
+237 185 13 237 185 13 239 191 15 238 184 11 238 184 8 232 191 11 220 185 82 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 248 248 248 197 197 197 192 192 192 192 156 83 170 114 5 204 146 9 
+221 159 7 229 171 7 234 180 8 236 184 10 237 185 11 237 185 11 236 183 11 235 183 10 
+235 183 10 236 184 11 237 185 11 237 183 10 237 181 9 235 179 10 227 169 7 198 139 9 
+218 210 190 119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+1 1 0 111 114 112 237 229 207 222 169 38 223 162 13 227 166 7 224 170 17 230 172 11 
+230 172 11 230 172 11 230 172 11 233 176 9 236 180 8 237 183 10 237 185 11 237 185 12 
+237 185 13 237 185 13 237 185 13 236 186 12 238 184 8 236 186 12 232 191 11 214 199 171 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 248 248 248 197 197 197 187 186 186 192 156 83 182 124 9 198 139 9 
+217 163 7 233 176 6 236 182 9 237 183 10 236 184 10 237 183 10 236 182 9 235 182 10 
+235 183 10 235 184 12 236 186 12 235 183 9 237 181 9 235 179 10 227 169 7 217 155 7 
+192 156 83 238 236 230 28 28 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 203 203 203 227 180 59 215 152 18 224 170 17 233 177 11 235 179 10 236 180 8 
+236 180 8 236 180 8 234 180 8 235 179 10 235 181 9 236 183 11 236 184 11 236 185 13 
+237 185 13 237 185 13 237 185 13 237 185 13 238 184 11 238 184 8 237 191 8 226 196 19 
+240 235 222 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 248 248 248 197 197 197 192 192 192 192 156 83 175 125 4 204 146 9 
+221 159 7 233 176 6 235 181 9 235 181 9 235 183 9 235 182 10 235 183 10 235 183 10 
+235 183 10 235 184 11 236 184 12 235 183 9 236 180 8 234 178 8 230 172 11 217 155 7 
+198 139 9 203 181 131 240 235 222 56 56 56 0 0 0 0 0 0 0 0 0 0 0 0 
+
+1 1 1 217 218 217 227 180 59 227 169 7 235 179 10 236 182 10 237 183 10 237 183 10 
+236 182 9 236 182 9 235 183 9 235 183 9 235 183 10 236 184 11 236 184 11 236 184 11 
+236 185 13 237 185 13 237 185 13 237 185 13 237 185 13 237 185 11 236 182 9 232 191 11 
+227 180 59 248 248 248 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 208 207 206 189 189 189 192 156 83 183 127 3 217 155 7 
+227 169 7 236 182 10 233 179 8 234 178 8 235 181 9 235 182 10 235 182 10 235 183 10 
+235 183 10 235 183 10 236 184 10 235 183 9 234 180 8 234 180 8 229 171 7 223 162 13 
+217 155 7 199 131 5 220 185 82 238 236 230 167 167 166 39 40 40 0 0 0 0 0 0 
+
+0 0 0 217 218 217 220 185 82 215 152 18 233 177 11 236 182 10 236 183 11 237 185 11 
+236 185 13 236 184 12 236 184 10 236 184 10 236 183 11 236 184 11 236 183 11 236 184 11 
+236 184 12 237 185 12 237 185 13 237 185 13 237 185 13 237 185 11 238 184 8 237 191 8 
+222 189 8 231 198 127 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 219 219 219 179 180 180 107 93 64 198 139 9 206 148 3 
+227 169 7 234 178 7 234 180 8 234 178 7 235 181 9 235 182 10 235 182 10 235 183 10 
+235 183 10 235 183 10 236 184 10 235 183 9 234 180 8 234 178 8 233 176 9 229 171 7 
+223 162 13 219 157 11 217 144 7 215 152 18 220 185 82 249 244 230 124 129 126 0 0 0 
+
+1 1 1 194 194 194 220 185 82 219 157 11 230 172 11 234 181 11 235 184 11 235 184 11 
+235 184 11 235 183 10 235 183 10 235 183 10 235 182 10 236 183 11 236 183 11 236 184 12 
+236 184 12 236 184 12 236 185 13 236 185 13 237 184 12 235 184 12 236 184 11 237 183 10 
+238 196 12 221 175 7 237 229 207 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 197 197 197 39 40 40 104 68 5 187 136 3 206 148 3 
+227 169 7 234 178 7 235 181 9 234 180 8 235 181 9 235 182 10 235 182 10 236 183 11 
+235 182 10 235 183 10 235 183 10 235 183 10 235 183 9 235 181 9 235 181 9 235 179 10 
+231 175 8 227 166 7 219 157 11 215 152 18 215 152 18 222 169 38 225 224 224 1 1 1 
+
+0 0 0 179 180 180 231 198 127 204 146 9 230 172 11 234 181 11 234 181 11 235 183 10 
+235 183 10 235 183 10 235 183 10 235 183 10 235 183 10 236 183 11 236 183 11 236 183 11 
+236 183 11 236 184 11 236 184 11 235 184 11 234 184 12 234 184 12 235 184 11 237 185 11 
+238 184 8 237 191 8 222 169 38 249 244 230 253 252 251 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 194 194 194 25 25 26 1 1 0 104 68 5 187 136 3 217 155 7 
+227 169 7 234 178 7 235 181 9 235 182 10 235 182 10 235 183 10 235 183 10 236 183 11 
+236 183 11 236 183 11 236 183 11 236 184 11 236 184 11 236 184 10 236 184 10 237 183 10 
+235 181 9 233 177 11 227 169 7 219 157 11 217 144 7 231 198 127 197 197 197 2 2 2 
+
+1 1 1 153 159 160 231 198 127 215 152 18 224 170 17 233 177 11 235 184 11 236 182 10 
+236 182 10 235 182 10 235 182 10 235 182 10 235 184 11 236 183 11 236 183 11 236 183 11 
+236 183 11 236 183 11 235 184 11 235 184 11 235 184 11 234 184 12 234 182 11 236 184 11 
+238 184 8 234 187 8 232 191 11 220 185 82 253 252 251 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+241 241 241 119 120 120 4 4 4 0 0 0 0 0 0 130 96 8 187 136 3 216 159 5 
+230 173 7 234 178 7 234 180 8 235 183 9 236 184 11 236 184 12 236 184 11 237 185 11 
+237 185 11 236 183 11 236 183 11 236 184 11 236 184 11 236 184 11 236 185 13 237 185 12 
+236 184 12 235 179 10 223 162 13 199 131 5 220 185 82 219 219 219 11 11 11 0 0 0 
+
+0 0 0 136 141 140 231 198 127 215 152 18 223 162 13 233 177 11 237 184 12 238 184 11 
+236 182 10 235 182 10 235 182 10 235 182 10 235 182 10 236 183 11 236 183 11 236 184 11 
+237 185 11 236 184 12 235 184 11 235 184 11 235 184 12 234 182 11 235 184 11 235 183 10 
+236 182 9 233 181 8 222 189 8 221 175 7 231 198 127 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 251 251 251 159 159 159 
+28 28 28 0 0 0 0 0 0 0 0 0 8 6 3 130 96 8 200 140 3 221 159 7 
+229 171 7 233 176 6 234 178 7 234 187 8 237 185 13 237 185 13 237 185 13 237 185 12 
+237 185 11 236 184 11 235 184 11 235 184 11 236 184 11 237 185 12 237 185 12 237 185 13 
+237 185 13 230 172 11 199 131 5 215 152 18 246 246 246 31 31 31 2 2 2 1 1 1 
+
+0 0 0 159 159 159 231 198 127 215 152 18 227 166 7 235 179 10 236 183 11 237 185 11 
+236 183 11 235 181 9 233 179 8 234 180 8 235 181 9 236 183 11 236 183 11 236 184 11 
+236 184 11 236 185 13 236 185 13 236 185 13 236 185 13 234 184 12 234 182 11 235 183 9 
+234 178 7 233 181 8 221 175 7 221 175 7 198 139 9 214 199 171 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 244 244 244 167 167 166 45 47 47 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 30 20 1 155 102 4 200 140 3 216 159 5 
+229 171 7 233 176 6 235 183 9 234 184 12 235 184 12 237 185 13 236 186 12 236 186 12 
+237 185 11 235 184 11 235 184 11 235 184 11 235 184 12 236 185 13 237 185 13 238 184 11 
+233 177 11 217 144 7 222 169 38 246 246 246 109 109 110 2 2 2 0 0 0 0 0 0 
+
+0 0 0 213 213 213 227 180 59 217 144 7 227 166 7 233 176 9 234 180 8 236 182 10 
+236 182 10 233 176 6 231 175 8 231 175 8 233 179 8 236 182 10 236 183 11 236 184 12 
+236 184 12 236 185 13 236 185 13 236 185 13 235 184 12 234 184 12 235 184 11 235 183 9 
+236 180 8 234 178 7 227 169 7 217 163 7 204 146 9 130 96 8 81 79 75 167 167 166 
+232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 253 252 251 
+239 239 239 204 204 204 146 149 148 85 85 85 16 16 16 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 30 20 1 155 102 4 206 148 3 217 163 7 
+229 171 7 233 176 6 233 181 8 234 184 12 236 185 13 237 185 13 237 185 12 236 185 13 
+235 184 11 235 184 11 235 184 11 234 182 11 234 182 11 233 176 9 230 172 11 229 171 7 
+215 152 18 231 198 127 233 231 230 69 69 69 5 4 2 0 0 0 0 0 0 0 0 0 
+
+18 18 18 244 244 244 215 152 18 217 155 7 221 159 7 223 165 7 227 169 7 230 173 7 
+231 175 8 230 173 7 231 175 8 231 175 8 233 176 6 234 180 8 236 182 10 237 184 12 
+237 184 12 237 185 12 237 185 13 237 185 13 237 185 13 236 185 13 235 184 12 236 184 11 
+236 182 9 237 183 8 229 171 7 217 163 7 204 146 9 170 114 5 91 61 1 1 1 0 
+2 2 2 31 31 31 39 40 40 43 43 43 43 43 43 39 40 40 35 37 37 20 20 20 
+3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 1 1 0 58 43 7 170 114 5 200 140 3 216 159 5 
+229 171 7 233 176 6 234 178 7 235 183 9 235 184 11 237 185 12 237 185 12 235 181 9 
+235 179 10 234 181 11 235 179 10 233 176 9 231 175 8 230 172 11 215 152 18 215 152 18 
+240 235 222 141 142 141 16 16 16 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+43 43 43 249 244 230 215 152 18 204 146 9 204 146 9 204 146 9 217 155 7 217 155 7 
+216 159 5 216 159 5 223 165 7 223 165 7 227 169 7 229 171 7 231 175 8 233 176 9 
+235 179 10 235 179 10 236 183 11 237 185 11 236 183 11 236 183 11 236 183 11 236 183 11 
+236 183 11 234 180 8 227 169 7 216 159 5 187 136 3 170 114 5 104 68 5 15 12 7 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 91 61 1 155 102 4 200 140 3 217 155 7 
+223 165 7 230 173 7 233 176 6 234 178 7 233 179 8 236 180 8 235 179 10 233 176 9 
+233 176 9 230 173 7 227 166 7 223 165 7 215 152 18 190 146 50 231 198 127 241 240 237 
+85 85 85 5 4 2 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+4 4 4 202 202 202 237 229 207 192 156 83 188 133 20 182 124 9 182 124 9 183 127 3 
+199 131 5 198 139 9 204 146 9 204 146 9 204 146 9 206 148 3 217 155 7 217 163 7 
+223 165 7 223 165 7 230 173 7 233 179 8 234 178 8 234 178 8 234 178 8 233 176 9 
+231 175 8 229 171 7 216 159 5 198 139 9 175 125 4 155 102 4 104 68 5 30 20 1 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 58 43 7 155 102 4 183 127 3 200 140 3 
+216 159 5 223 165 7 229 171 7 233 176 6 231 175 8 231 175 8 229 171 7 227 166 7 
+223 165 7 217 155 7 204 146 9 188 133 20 231 198 127 224 223 222 119 120 120 22 22 22 
+1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 3 3 3 95 95 95 179 180 180 234 234 234 237 229 207 203 181 131 192 156 83 
+188 133 20 159 120 9 170 114 5 182 124 9 182 124 9 182 124 9 183 127 3 187 136 3 
+198 139 9 198 139 9 217 155 7 217 163 7 223 165 7 223 165 7 223 165 7 223 165 7 
+216 159 5 204 146 9 198 139 9 175 125 4 155 102 4 120 77 2 91 61 1 15 12 7 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 58 43 7 120 77 2 170 114 5 183 127 3 
+200 140 3 206 148 3 216 159 5 216 159 5 221 159 7 216 159 5 217 155 7 204 146 9 
+198 139 9 182 124 9 190 146 50 218 210 190 146 149 148 7 7 7 0 0 0 1 1 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 45 47 47 109 109 110 159 166 168 
+226 227 227 248 248 248 218 210 190 203 181 131 192 156 83 148 102 14 148 102 14 148 102 14 
+155 102 4 170 114 5 182 124 9 183 127 3 187 136 3 198 139 9 198 139 9 198 139 9 
+187 136 3 182 124 9 170 114 5 155 102 4 130 96 8 104 68 5 58 43 7 8 6 3 
+73 73 73 141 142 141 179 180 180 203 203 203 208 207 206 213 213 213 213 213 213 219 219 219 
+234 234 234 235 235 235 236 237 236 235 235 235 236 237 236 239 239 239 234 234 234 240 240 239 
+224 224 224 225 224 224 217 218 217 131 131 131 58 43 7 120 77 2 155 102 4 170 114 5 
+182 124 9 183 127 3 198 139 9 200 140 3 200 140 3 200 140 3 187 136 3 175 125 4 
+155 102 4 192 156 83 230 228 223 85 85 85 1 1 1 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 
+1 1 1 35 35 36 81 79 75 104 104 104 146 149 148 208 207 206 233 231 230 214 199 171 
+162 157 129 148 102 14 130 96 8 148 102 14 155 102 4 170 114 5 170 114 5 155 102 4 
+155 102 4 155 102 4 130 96 8 120 77 2 104 68 5 91 61 1 167 167 166 233 231 230 
+172 176 175 88 88 88 43 43 43 12 12 12 8 8 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 20 20 20 179 180 180 162 157 129 91 61 1 120 77 2 155 102 4 
+170 114 5 170 114 5 175 125 4 182 124 9 182 124 9 170 114 5 155 102 4 130 96 8 
+203 181 131 197 197 197 35 35 36 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 1 1 1 2 2 2 1 1 1 1 1 1 22 22 22 73 73 73 
+131 136 135 192 192 192 230 228 223 162 157 129 107 93 64 104 68 5 120 77 2 130 96 8 
+130 96 8 120 77 2 104 68 5 91 61 1 91 70 38 224 223 222 123 123 123 7 7 7 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 1 1 1 43 43 43 228 228 227 91 70 38 91 61 1 104 68 5 
+120 77 2 130 96 8 155 102 4 155 102 4 155 102 4 120 77 2 107 93 64 214 199 171 
+172 176 175 7 7 7 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+1 1 1 1 1 1 24 24 24 111 114 112 218 210 190 218 210 190 141 122 119 107 93 64 
+107 93 64 91 70 38 107 93 64 175 172 168 249 244 230 109 109 110 1 1 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 1 1 1 88 88 88 246 246 246 175 172 168 145 135 65 
+91 70 38 91 61 1 58 43 7 91 61 1 107 93 64 163 157 151 237 229 207 109 109 110 
+4 4 4 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 65 65 65 145 140 129 163 157 151 
+175 172 168 218 210 190 197 197 197 141 122 119 18 18 18 1 1 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 35 35 36 95 95 95 146 149 148 
+197 197 197 221 221 221 231 230 229 235 235 235 187 186 186 123 123 123 12 12 12 1 1 1 
+1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
diff --git a/abs/core-testing/kernel26.orig/logo_linux_mono.pbm b/abs/core-testing/kernel26.orig/logo_linux_mono.pbm
new file mode 100644
index 0000000..7b1369c
--- /dev/null
+++ b/abs/core-testing/kernel26.orig/logo_linux_mono.pbm
@@ -0,0 +1,95 @@
+P1
+# CREATOR: GIMP PNM Filter Version 1.1
+80 80
+1111111111111111111111111111111111000000000000111111111111111111111111
+1111111111111111111111111111111111111111100000010101000000111111111111
+1111111111111111111111111111111111111111111111111100011111111111110000
+1111111111111111111111111111111111111111111111111111111111000111111111
+1111111100011111111111111111111111111111111111111111111111111111111100
+1111111111111110111100111111111111111111111111111111111111111111111111
+1111111001111111111111111000110001111111111111111111111111111111111111
+1111111111111111000111111111111111001111110011111111111111111111111111
+1111111111111111111111111100111111111111111111111111001111111111111111
+1111111111111111111111111111111111110011111111111111111111111110011111
+1111111111111111111111111111111111111111111110011111111111111111111111
+1110011111111111111111111111111111111111111111111111111100111111111111
+1111111111111100111111111111111111111111111111111111111111111111100111
+1110111111111111011111100011111111111111111111111111111111111111111111
+1111110011100111111110000001111111001111111111111111111111111111111111
+1111111111111110011100000111110000000111111100111111111111111111111111
+1111111111111111111111111100100000001110000000001111111001111111111111
+1111111111111111111111111111111111100110000000111000000000111111001111
+1111111111111111111111111111111111111111111111001001000011100011010001
+1111100111111111111111111111111111111111111111111111111001100110000100
+0011100011111100111111111111111111111111111111111111111111111111110010
+0111000000001111000111111001111111111111111111111111111111111111111111
+1111110011000000000000000000111111001111111111111111111111111111111111
+1111111111111111001100000000000000000011111110011111111111111111111111
+1111111111111111111111111100110000000000000000001111110011111111111111
+1111111111111111111111111111111111110010000000000000000000111111100111
+1111111111111111111111111111111111111111111111001000000000000000000011
+1111100111111111111111111111111111111111111111111111110000110000000000
+0000000011111110011111111111111111111111111111111111111111111100000000
+0000000000000000001110001001111111111111111111111111111111111111111111
+1000000000000000000000000000011100110011111111111111111111111111111111
+1111111111000000000000000000000000000001111110011111111111111111111111
+1111111111111111111110000000000000000000000000000011111100111111111111
+1111111111111111111111111111110000000000000000000000000000000111110011
+1111111111111111111111111111111111111111100000000000000000000000000000
+0111111000111111111111111111111111111111111111111000000000000000000000
+0000000000011111110001111111111111111111111111111111111111100110000000
+0000000000000000000000111111110011111111111111111111111111111111111100
+1110000000000000000000000000000011111111000111111111111111111111111111
+1111111000111000000000000000000000000000000111111110011111111111111111
+1111111111111111001111110000000000000000000000000000011111111100111111
+1111111111111111111111111100011111000000000000000000000000000000111111
+1100011111111111111111111111111111110001111100000000000000000000000000
+0000111111111001111111111111111111111111111110010011111000000000000000
+0000000000000001111100110011111111111111111111111111111001100001000000
+0000000000000000001000000111001110011111111111111111111111111111100111
+0000000000000000000000000000110000000001111100111111111111111111111111
+1111001111111000000000000000000000000011000000111111110011111111111111
+1111111111111110011111111000000000000100000000011110101111111111001111
+1111111111111111111111110011111111111111111111110000111111111111111111
+1111001111111111111111111111111111100111111111111111111111100011111111
+1111111111111100111111111111111111111111111110011111111111111111111100
+0011111111111111111111100111111111111111111111111111111000111111111111
+1111111100000111111111111111111110011111111111111111111111111111110011
+1111111111111111100000011111111111111111111001111111111111111111111111
+1111110011111111111111111100000000111111111111111111100111111111111111
+1111111111111110011000111111111111000000000000111111111111111100011111
+1111111111111111111111111100100000000000000000000000000000000010000011
+1110011111111111111111111111111111100110000000000000000000000000000000
+0000000011111001111111111111111111111111111110011000000000000000000000
+0000000000000000000111100111111111111111111111111111100001000000000000
+0000000000000000000000000000111110011111111111111111111111111100000010
+0000000000000000000000000000000000000001111001111111111111111111111111
+1000000000000000000000000000000000000000000000001111100000000111111111
+1111111111000000000000000000000000000000000000000000000000000000000000
+0001111111111111111000000000000000000000000000000000000000000000000000
+0000000000000111111111111111000000000000000000000000000000000000000000
+0000000000000000000000011111111111000000000000000000000000000000000000
+0000000000000000000000000000000001111111110000000000000000000000000000
+0000000000000000000000000000000000000000000011111110000000000000000000
+0000000000000000000000000000000000000000000000000000001111111000000000
+0000000000000000000000000000000000000000000000000000000000000000001111
+0000000000000000000000000000000000000000000000000000000000000000000000
+0000000111100000000000000000000000000000000000000000000000000000000000
+0000000000000000000110000000000000000000000000000000000000000000000000
+0000000000000000000000000000011000000000000000000000000000000000000000
+0000000000001000000000000000000000000000000000000000000000000000000000
+0000000000000000000001100000000000000000000000001110000000000000000000
+0000000000000000000000000000011110000000000000000000000000111000000000
+0000000000000000000000000000000000000011111000000000000000000000000111
+1000000000000000000000000000000000000000000001111111100000000000000000
+0000001111000000000000000000000000000000001000000001011111111100000000
+0000000000000001111110000000000000000000000000000001111111111111111111
+1110000000000000000000011111110000000000000000000000000000000111111111
+1111111111110000000000000000000011111111110000000000000000000000000000
+1111111111111111111111100000000000000000111111111111101000000000000000
+0000000000010000000000000000000000000000000000001111111111111111111010
+0000000000000000000100000010101010101010100000000000000001111111111111
+1111111111111100000000000001000011111111111111111110001000000000011111
+1111111111111111111111111110100000000000111111111111111111111100000000
+0000011111111111111111111111111111111111100000000111111111111111111111
+111000000000011111111111111111
\ No newline at end of file
diff --git a/abs/core-testing/kernel26.orig/logo_linux_vga16.ppm b/abs/core-testing/kernel26.orig/logo_linux_vga16.ppm
new file mode 100644
index 0000000..8b2d1ea
--- /dev/null
+++ b/abs/core-testing/kernel26.orig/logo_linux_vga16.ppm
@@ -0,0 +1,883 @@
+P3
+80 80
+255
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 36 26 8 102 124 121 157 146 143 232 232 232 232 232 232 232 232 232 232 232 232 
+232 232 232 232 232 232 232 232 232 214 202 162 157 146 143 44 44 44 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+157 146 143 232 232 232 157 146 143 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 214 202 162 232 232 232 157 146 143 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 214 202 162 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
+232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 102 124 121 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 44 44 44 44 44 44 0 0 0 
+0 0 0 44 44 44 157 146 143 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 102 124 121 44 44 44 
+0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 102 124 121 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 118 110 50 44 44 44 
+0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 44 44 44 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 36 26 8 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 232 232 232 44 44 44 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+36 26 8 44 44 44 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 44 44 44 36 26 8 44 44 44 44 44 44 44 44 44 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 102 124 121 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 
+102 124 121 44 44 44 36 26 8 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 44 44 44 157 146 143 157 146 143 157 146 143 157 146 143 44 44 44 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 157 146 143 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 255 255 254 0 0 0 0 0 0 36 26 8 157 146 143 157 146 143 
+232 232 232 157 146 143 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+102 124 121 214 202 162 214 202 162 232 232 232 232 232 232 214 202 162 102 124 121 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 250 246 233 0 0 0 0 0 0 102 124 121 214 202 162 232 232 232 
+232 232 232 254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 102 124 121 
+232 232 232 232 232 232 232 232 232 157 146 143 214 202 162 232 232 232 232 232 232 44 44 44 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 102 124 121 157 146 143 0 0 0 
+44 44 44 157 146 143 232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 102 124 121 
+232 232 232 214 202 162 44 44 44 0 0 0 102 124 121 102 124 121 232 232 232 232 232 232 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 157 146 143 44 44 44 44 44 44 
+102 124 121 44 44 44 232 232 232 157 146 143 0 0 0 44 44 44 36 26 8 102 124 121 
+232 232 232 102 124 121 0 0 0 0 0 0 44 44 44 0 0 0 232 232 232 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 157 146 143 102 124 121 0 0 0 
+0 0 0 44 44 44 214 202 162 157 146 143 36 26 8 36 26 8 36 26 8 44 44 44 
+232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162 254 254 254 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 44 44 44 214 202 162 0 0 0 
+0 0 0 36 26 8 188 146 47 227 174 11 227 174 11 226 188 8 227 174 11 188 146 47 
+226 177 55 118 110 50 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 232 232 232 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 232 232 232 157 146 143 
+44 44 44 223 156 6 188 146 47 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 
+226 177 55 226 188 8 188 146 47 118 110 50 118 110 50 232 232 232 254 254 254 102 124 121 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 44 44 44 226 177 55 
+223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 
+226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 157 146 143 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 102 124 121 102 124 121 0 0 0 36 26 8 118 110 50 223 156 6 
+227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55 
+226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 118 110 50 223 156 6 223 156 6 
+223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55 
+226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 223 156 6 223 156 6 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 102 124 121 157 146 143 36 26 8 36 26 8 188 146 47 223 156 6 
+227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55 226 188 8 
+226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 223 156 6 223 156 6 188 146 47 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+157 146 143 232 232 232 232 232 232 157 146 143 0 0 0 36 26 8 118 110 50 188 146 47 
+223 156 6 226 188 8 226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 226 188 8 
+226 188 8 188 146 47 188 146 47 188 146 47 188 146 47 223 156 6 188 146 47 36 26 8 
+36 26 8 0 0 0 0 0 0 44 44 44 36 26 8 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 157 146 143 232 232 232 
+157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 44 44 44 118 110 50 118 110 50 
+118 110 50 223 156 6 226 188 8 226 188 8 226 188 8 188 146 47 226 188 8 188 146 47 
+188 146 47 188 146 47 188 146 47 188 146 47 188 146 47 188 146 47 157 146 143 214 202 162 
+36 26 8 0 0 0 0 0 0 44 44 44 102 124 121 44 44 44 0 0 0 102 124 121 
+157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 232 232 232 157 146 143 
+157 146 143 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 214 202 162 157 146 143 
+118 110 50 188 146 47 188 146 47 223 156 6 188 146 47 223 156 6 188 146 47 188 146 47 
+188 146 47 188 146 47 188 146 47 188 146 47 157 146 143 214 202 162 214 202 162 214 202 162 
+102 124 121 0 0 0 0 0 0 0 0 0 102 124 121 102 124 121 44 44 44 0 0 0 
+254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 157 146 143 102 124 121 
+157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 157 146 143 214 202 162 
+188 146 47 118 110 50 118 110 50 118 110 50 188 146 47 188 146 47 188 146 47 188 146 47 
+118 110 50 188 146 47 157 146 143 214 202 162 214 202 162 232 232 232 232 232 232 232 232 232 
+214 202 162 44 44 44 0 0 0 0 0 0 0 0 0 44 44 44 0 0 0 0 0 0 
+232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 157 146 143 102 124 121 
+102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 232 232 232 
+157 146 143 214 202 162 188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 188 146 47 
+188 146 47 214 202 162 157 146 143 232 232 232 232 232 232 232 232 232 254 254 254 232 232 232 
+232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 157 146 143 157 146 143 
+102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 232 232 232 
+232 232 232 214 202 162 157 146 143 214 202 162 157 146 143 214 202 162 157 146 143 214 202 162 
+157 146 143 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+44 44 44 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 102 124 121 232 232 232 
+102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121 102 124 121 214 202 162 
+232 232 232 157 146 143 232 232 232 157 146 143 214 202 162 157 146 143 232 232 232 214 202 162 
+232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 102 124 121 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 44 44 44 102 124 121 
+102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 157 146 143 
+232 232 232 232 232 232 157 146 143 232 232 232 157 146 143 232 232 232 214 202 162 232 232 232 
+232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 36 26 8 232 232 232 214 202 162 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 36 26 8 232 232 232 44 44 44 0 0 0 0 0 0 157 146 143 
+102 124 121 102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 
+254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 102 124 121 
+157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121 
+232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 157 146 143 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 
+214 202 162 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 102 124 121 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 254 254 254 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 157 146 143 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 
+157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 232 232 232 250 246 233 255 255 254 157 146 143 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+102 124 121 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 118 110 50 102 124 121 102 124 121 
+102 124 121 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 
+214 202 162 232 232 232 214 202 162 232 232 232 254 254 254 44 44 44 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+232 232 232 44 44 44 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
+44 44 44 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 
+102 124 121 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 157 146 143 
+102 124 121 102 124 121 214 202 162 214 202 162 232 232 232 214 202 162 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 0 0 0 157 146 143 
+157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+232 232 232 0 0 0 102 124 121 157 146 143 44 44 44 0 0 0 0 0 0 0 0 0 
+44 44 44 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 
+102 124 121 214 202 162 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 157 146 143 
+44 44 44 0 0 0 214 202 162 232 232 232 157 146 143 232 232 232 102 124 121 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 0 0 0 0 0 0 
+254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
+157 146 143 0 0 0 44 44 44 102 124 121 102 124 121 102 124 121 44 44 44 44 44 44 
+157 146 143 157 146 143 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 
+157 146 143 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 102 124 121 
+44 44 44 0 0 0 157 146 143 232 232 232 232 232 232 214 202 162 232 232 232 36 26 8 
+0 0 0 36 26 8 102 124 121 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 
+254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162 
+44 44 44 0 0 0 0 0 0 36 26 8 44 44 44 102 124 121 102 124 121 102 124 121 
+157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 
+157 146 143 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 214 202 162 102 124 121 
+0 0 0 0 0 0 157 146 143 232 232 232 232 232 232 232 232 232 157 146 143 102 124 121 
+102 124 121 102 124 121 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 
+232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44 102 124 121 
+102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121 
+157 146 143 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 232 232 232 254 254 254 
+254 254 254 254 254 254 232 232 232 157 146 143 157 146 143 157 146 143 102 124 121 44 44 44 
+0 0 0 0 0 0 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 44 44 44 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+44 44 44 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 
+102 124 121 102 124 121 102 124 121 44 44 44 36 26 8 0 0 0 44 44 44 255 255 254 
+254 254 254 232 232 232 36 26 8 44 44 44 102 124 121 44 44 44 44 44 44 44 44 44 
+0 0 0 0 0 0 0 0 0 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+102 124 121 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+254 254 254 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 254 254 254 
+254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
+157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 254 254 254 
+254 254 254 255 255 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+214 202 162 44 44 44 0 0 0 0 0 0 36 26 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 250 246 233 254 254 254 254 254 254 
+254 254 254 254 254 254 255 255 254 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+254 254 254 0 0 0 0 0 0 102 124 121 232 232 232 157 146 143 44 44 44 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 36 26 8 102 124 121 214 202 162 255 255 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 157 146 143 44 44 44 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+232 232 232 0 0 0 0 0 0 102 124 121 254 254 254 254 254 254 254 254 254 232 232 232 
+157 146 143 157 146 143 102 124 121 118 110 50 102 124 121 102 124 121 102 124 121 157 146 143 
+232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 
+214 202 162 102 124 121 102 124 121 44 44 44 102 124 121 44 44 44 102 124 121 102 124 121 
+157 146 143 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
+157 146 143 0 0 0 0 0 0 102 124 121 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 254 254 254 250 246 233 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+214 202 162 0 0 0 0 0 0 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 157 146 143 232 232 232 
+157 146 143 0 0 0 0 0 0 157 146 143 254 254 254 254 254 254 255 255 254 255 255 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+250 246 233 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 232 232 232 214 202 162 226 177 55 
+226 177 55 36 26 8 0 0 0 157 146 143 254 254 254 254 254 254 254 254 254 255 255 254 
+255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 36 26 8 44 44 44 44 44 44 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 157 146 143 214 202 162 227 174 11 226 188 8 226 188 8 
+226 188 8 223 156 6 118 110 50 102 124 121 254 254 254 254 254 254 255 255 254 255 255 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 250 246 233 
+232 232 232 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+250 246 233 232 232 232 232 232 232 232 232 232 214 202 162 232 232 232 232 232 232 44 44 44 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 102 124 121 232 232 232 227 174 11 227 174 11 226 188 8 226 188 8 
+226 188 8 226 188 8 227 174 11 188 146 47 255 255 254 255 255 254 255 255 254 255 255 254 
+255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+250 246 233 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 250 246 233 188 146 47 
+223 156 6 223 156 6 188 146 47 188 146 47 118 110 50 118 110 50 118 110 50 188 146 47 
+223 156 6 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6 226 177 55 232 232 232 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 36 26 8 232 232 232 226 177 55 223 156 6 227 174 11 227 174 11 226 188 8 
+226 188 8 226 188 8 226 188 8 226 188 8 214 202 162 255 255 254 255 255 254 255 255 254 
+255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 226 177 55 223 156 6 
+223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 
+223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 214 202 162 
+157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+102 124 121 232 232 232 226 177 55 188 146 47 223 156 6 227 174 11 227 174 11 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 255 255 254 
+255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 254 254 254 254 232 232 232 188 146 47 188 146 47 
+223 156 6 223 156 6 223 156 6 227 174 11 223 156 6 227 174 11 223 156 6 227 174 11 
+227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 226 177 55 
+232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 157 146 143 214 202 162 232 232 232 
+214 202 162 188 146 47 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 
+226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 
+255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 226 177 55 118 110 50 188 146 47 
+223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 188 146 47 
+250 246 233 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 102 124 121 250 246 233 214 202 162 214 202 162 226 177 55 188 146 47 
+223 156 6 223 156 6 223 156 6 223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 
+226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 255 255 254 
+255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 214 202 162 157 146 143 157 146 143 223 156 6 223 156 6 
+223 156 6 223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 
+226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 227 174 11 227 174 11 223 156 6 
+214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 102 124 121 232 232 232 223 156 6 223 156 6 223 156 6 223 156 6 227 174 11 
+223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8 227 174 11 
+226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 214 202 162 
+255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 232 232 232 232 232 232 214 202 162 188 146 47 118 110 50 188 146 47 
+223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
+227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 223 156 6 188 146 47 
+226 177 55 232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 214 202 162 226 177 55 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 177 55 
+250 246 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 214 202 162 214 202 162 157 146 143 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 223 156 6 
+188 146 47 226 177 55 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 232 232 232 226 177 55 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8 
+226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 
+226 177 55 250 246 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 232 232 232 232 232 232 157 146 143 188 146 47 188 146 47 223 156 6 
+223 156 6 226 188 8 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 227 174 11 227 174 11 223 156 6 
+223 156 6 188 146 47 226 177 55 254 254 254 157 146 143 44 44 44 0 0 0 0 0 0 
+
+0 0 0 232 232 232 226 177 55 223 156 6 227 174 11 226 188 8 227 174 11 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 
+226 188 8 214 202 162 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 157 146 143 102 124 121 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 
+223 156 6 223 156 6 188 146 47 223 156 6 214 202 162 250 246 233 102 124 121 0 0 0 
+
+0 0 0 214 202 162 214 202 162 223 156 6 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
+226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
+226 188 8 226 188 8 214 202 162 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 232 232 232 232 232 232 36 26 8 118 110 50 118 110 50 223 156 6 
+223 156 6 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 
+227 174 11 223 156 6 223 156 6 223 156 6 223 156 6 226 177 55 232 232 232 0 0 0 
+
+0 0 0 157 146 143 214 202 162 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 
+226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 214 202 162 0 0 0 0 0 0 118 110 50 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 
+226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 
+227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 214 202 162 214 202 162 0 0 0 
+
+0 0 0 157 146 143 214 202 162 223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 226 188 8 226 177 55 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 102 124 121 0 0 0 0 0 0 36 26 8 36 26 8 188 146 47 223 156 6 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 223 156 6 223 156 6 226 177 55 232 232 232 0 0 0 0 0 0 
+
+0 0 0 157 146 143 214 202 162 223 156 6 223 156 6 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 214 202 162 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 157 146 143 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 188 146 47 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 
+226 188 8 227 174 11 223 156 6 188 146 47 232 232 232 36 26 8 0 0 0 0 0 0 
+
+0 0 0 157 146 143 226 177 55 223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
+226 177 55 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 227 174 11 227 174 11 223 156 6 214 202 162 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 157 146 143 44 44 44 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 110 50 223 156 6 223 156 6 
+227 174 11 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 
+227 174 11 223 156 6 226 177 55 232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 
+
+0 0 0 232 232 232 226 177 55 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 
+226 188 8 227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 
+227 174 11 226 188 8 227 174 11 223 156 6 223 156 6 118 110 50 118 110 50 157 146 143 
+232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 118 110 50 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 
+223 156 6 214 202 162 232 232 232 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 
+
+36 26 8 250 246 233 188 146 47 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 
+227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 226 177 55 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 223 156 6 223 156 6 223 156 6 188 146 47 36 26 8 0 0 0 
+0 0 0 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 36 26 8 36 26 8 118 110 50 223 156 6 223 156 6 
+227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 
+227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 
+232 232 232 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+44 44 44 250 246 233 223 156 6 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6 
+223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 227 174 11 
+226 188 8 227 174 11 227 174 11 223 156 6 188 146 47 118 110 50 118 110 50 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 223 156 6 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 227 174 11 226 188 8 
+227 174 11 227 174 11 227 174 11 227 174 11 223 156 6 188 146 47 214 202 162 250 246 233 
+118 110 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 232 232 232 214 202 162 226 177 55 118 110 50 188 146 47 188 146 47 188 146 47 
+223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 227 174 11 
+227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 227 174 11 223 156 6 188 146 47 223 156 6 118 110 50 118 110 50 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 36 26 8 36 26 8 118 110 50 118 110 50 223 156 6 
+223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 223 156 6 223 156 6 223 156 6 214 202 162 232 232 232 102 124 121 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 102 124 121 157 146 143 250 246 233 214 202 162 214 202 162 188 146 47 
+118 110 50 188 146 47 118 110 50 223 156 6 118 110 50 223 156 6 188 146 47 223 156 6 
+188 146 47 223 156 6 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 
+223 156 6 223 156 6 223 156 6 118 110 50 118 110 50 118 110 50 36 26 8 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 188 146 47 188 146 47 188 146 47 
+223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 
+223 156 6 188 146 47 118 110 50 232 232 232 157 146 143 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 157 146 143 
+232 232 232 250 246 233 214 202 162 157 146 143 188 146 47 118 110 50 118 110 50 118 110 50 
+118 110 50 118 110 50 188 146 47 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6 
+188 146 47 223 156 6 118 110 50 188 146 47 118 110 50 118 110 50 36 26 8 36 26 8 
+44 44 44 157 146 143 157 146 143 232 232 232 214 202 162 232 232 232 214 202 162 232 232 232 
+232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 
+232 232 232 232 232 232 232 232 232 157 146 143 36 26 8 36 26 8 118 110 50 118 110 50 
+188 146 47 118 110 50 223 156 6 223 156 6 223 156 6 223 156 6 188 146 47 223 156 6 
+118 110 50 188 146 47 232 232 232 118 110 50 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 36 26 8 118 110 50 102 124 121 157 146 143 214 202 162 232 232 232 214 202 162 
+188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 
+118 110 50 118 110 50 118 110 50 118 110 50 36 26 8 118 110 50 157 146 143 232 232 232 
+214 202 162 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 214 202 162 157 146 143 118 110 50 118 110 50 188 146 47 
+118 110 50 223 156 6 118 110 50 188 146 47 118 110 50 188 146 47 118 110 50 118 110 50 
+157 146 143 214 202 162 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44 
+157 146 143 214 202 162 232 232 232 188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 
+118 110 50 118 110 50 118 110 50 36 26 8 118 110 50 214 202 162 157 146 143 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 118 110 50 36 26 8 36 26 8 
+118 110 50 118 110 50 118 110 50 118 110 50 188 146 47 36 26 8 118 110 50 214 202 162 
+214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 
+0 0 0 0 0 0 36 26 8 102 124 121 214 202 162 214 202 162 118 110 50 118 110 50 
+118 110 50 118 110 50 118 110 50 157 146 143 232 232 232 102 124 121 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 232 232 232 214 202 162 188 146 47 
+36 26 8 36 26 8 118 110 50 36 26 8 118 110 50 157 146 143 214 202 162 102 124 121 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44 157 146 143 157 146 143 
+157 146 143 214 202 162 214 202 162 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 118 110 50 157 146 143 
+232 232 232 214 202 162 232 232 232 232 232 232 214 202 162 157 146 143 36 26 8 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
diff --git a/abs/core-testing/kernel26.orig/serial.diff b/abs/core-testing/kernel26.orig/serial.diff
new file mode 100644
index 0000000..9b53e48
--- /dev/null
+++ b/abs/core-testing/kernel26.orig/serial.diff
@@ -0,0 +1,13 @@
+--- include/linux/serial.h.orig	2009-02-11 05:59:28.000000000 +0000
++++ include/linux/serial.h	2009-02-11 06:09:24.000000000 +0000
+@@ -10,8 +10,9 @@
+ #ifndef _LINUX_SERIAL_H
+ #define _LINUX_SERIAL_H
+ 
+-#ifdef __KERNEL__
+ #include <linux/types.h>
++
++#ifdef __KERNEL__
+ #include <asm/page.h>
+ 
+ /*
-- 
cgit v0.12


From af207d9477640457510a19cc7d186c0c3d26f7c4 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:05:52 -0700
Subject: kernel26:Bumped/Updated for LinHES 7.

---
 abs/core-testing/kernel26/PKGBUILD                 |  207 +-
 abs/core-testing/kernel26/config                   | 1660 +++++--
 abs/core-testing/kernel26/config.arch              | 4955 ++++++++++++++++++++
 abs/core-testing/kernel26/config.x86_64            | 1609 +++++--
 abs/core-testing/kernel26/coretemp.patch           |   86 -
 abs/core-testing/kernel26/ext4.patch               |  152 -
 .../kernel26/fbcondecor-2.6.34-fix.patch           |   19 +
 abs/core-testing/kernel26/kernel26.install         |   27 +-
 abs/core-testing/kernel26/kernel26.preset          |    2 +-
 abs/core-testing/kernel26/logo_linux_clut224.ppm   |  883 ----
 abs/core-testing/kernel26/logo_linux_mono.pbm      |   95 -
 abs/core-testing/kernel26/logo_linux_vga16.ppm     |  883 ----
 abs/core-testing/kernel26/serial.diff              |   13 -
 13 files changed, 7567 insertions(+), 3024 deletions(-)
 create mode 100644 abs/core-testing/kernel26/config.arch
 delete mode 100644 abs/core-testing/kernel26/coretemp.patch
 delete mode 100644 abs/core-testing/kernel26/ext4.patch
 create mode 100644 abs/core-testing/kernel26/fbcondecor-2.6.34-fix.patch
 delete mode 100644 abs/core-testing/kernel26/logo_linux_clut224.ppm
 delete mode 100644 abs/core-testing/kernel26/logo_linux_mono.pbm
 delete mode 100644 abs/core-testing/kernel26/logo_linux_vga16.ppm
 delete mode 100644 abs/core-testing/kernel26/serial.diff

diff --git a/abs/core-testing/kernel26/PKGBUILD b/abs/core-testing/kernel26/PKGBUILD
index 0095428..01f2398 100644
--- a/abs/core-testing/kernel26/PKGBUILD
+++ b/abs/core-testing/kernel26/PKGBUILD
@@ -1,22 +1,22 @@
-# $Id: PKGBUILD 25277 2009-01-25 10:01:21Z tpowa $
+# $Id: PKGBUILD 86792 2010-08-04 14:39:45Z thomas $
 # Maintainer: Tobias Powalowski <tpowa@archlinux.org>
 # Maintainer: Thomas Baechler <thomas@archlinux.org>
-# Mainterner: Cecil Waton <knoppmyth@gmail.com>
-pkgname=kernel26
-_basekernel=2.6.28
-pkgver=2.6.28.5
-pkgrel=5
-_pkgrel=1
-_patchname="patch-${pkgver}-${_pkgrel}-ARCH"
-_fbpatchname="fbcondecor-0.9.5-2.6.28.patch"
-#_patchname="patch-${pkgver}-1-ARCH"
+# Maintainer: Heiko Baums <heiko@baums-on-web.de>
+# pkgbase="kernel26"
+pkgname=('kernel26' 'kernel26-headers' 'kernel26-manpages' 'kernel26-docs') # Build stock -ARCH kernel
+#pkgname=kernel26-fbcondecor       # Build kernel with a different name
+_kernelname=${pkgname#kernel26}
+_basekernel=2.6.34
+pkgver=${_basekernel}.2
+pkgrel=2
+_patchname="patch-${pkgver}-${pkgrel}-ARCH"
+_fbpatchname="fbcondecor-0.9.6-2.6.33-rc7.patch"
 pkgdesc="The Linux Kernel and modules"
 arch=(i686 x86_64)
 license=('GPL2')
-groups=('base')
 url="http://www.kernel.org"
 backup=(etc/mkinitcpio.d/${pkgname}.preset)
-depends=('coreutils' 'module-init-tools' 'mkinitcpio>=0.5.20')
+depends=('coreutils' 'linux-firmware' 'module-init-tools' 'mkinitcpio>=0.5.20')
 # pwc, ieee80211 and hostap-driver26 modules are included in kernel26 now
 # nforce package support was abandoned by nvidia, kernel modules should cover everything now.
 # kernel24 support is dropped since glibc24
@@ -24,67 +24,115 @@ replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi'
           'alsa-driver' 'ieee80211' 'hostap-driver26'
           'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv'
           'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs'
-          'gspcav1' 'atl2' 'wlan-ng26')
+          'gspcav1' 'atl2' 'wlan-ng26' 'rt2500' 'nouveau-drm')
 install=kernel26.install
+optdepends=('crda: to set the correct wireless channels of your country')
 source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2
         ftp://ftp.archlinux.org/other/kernel26/${_patchname}.bz2
-	http://dev.gentoo.org/~spock/projects/fbcondecor/archive/${_fbpatchname}
+        http://dev.gentoo.org/~spock/projects/fbcondecor/archive/${_fbpatchname}
+        fbcondecor-2.6.34-fix.patch
         # the main kernel config files
         config config.x86_64
         # standard config files for mkinitcpio ramdisk
-        kernel26.preset
-	logo_linux_clut224.ppm
-	serial.diff
-	ext4.patch
-	coretemp.patch)
-optdepends=('crda: to set the correct wireless channels of your country')
-md5sums=('d351e44709c9810b85e29b877f50968a'
-         '6e63a5f54c142f42de7e59fc5f75eab2'
-         '04b1413586111705ba790542c6e82350'
-         '4c3f00c90fb23c91d600694c886f2ddc'
-         '959b317feb974d8906c5e15e7c76ad8f'
-         'ceb38003807a5aa1a00c8d4b9f028893'
-         '7bdfe2e1daedb324fdfdfa95ba4e2430'
-         'd66b5cc1e1c2ce40d06d77167f36dfd9'
-	 '695a2d6f1b0b4c7001bf665d5f667a5d')
+        kernel26.preset)
 
 build() {
   KARCH=x86
 
+  cd ${srcdir}
+  patch -Np0 -i fbcondecor-2.6.34-fix.patch || return 1
+
   cd ${srcdir}/linux-$_basekernel
   # Add -ARCH patches
-  # See http://projects.archlinux.org/git/?p=linux-2.6-ARCH.git;a=summary
+  # See http://projects.archlinux.org/linux-2.6-ARCH.git/
   patch -Np1 -i ${srcdir}/${_patchname} || return 1
   patch -Np1 -i ${srcdir}/${_fbpatchname} || return 1
-  patch -Np1 -i ${srcdir}/ext4.patch || return 1
-  patch -Np1 -i ${srcdir}/coretemp.patch || return 1
-#  patch -Np1 -i ${srcdir}/patch-2.6.28.5 || return 1
-#  patch -p0 < ../../serial.diff
 
   if [ "$CARCH" = "x86_64" ]; then
     cat ../config.x86_64 >./.config
   else
     cat ../config >./.config
   fi
+  if [ "${_kernelname}" != "" ]; then
+    sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
+  fi
+## A hack to prevent output kernel from being marked as dirty or git
+  sed 's/head=$(git rev-parse --verify --short HEAD 2>\/dev\/null)/0/' \
+      ${srcdir}/linux-$_basekernel/scripts/setlocalversion \
+      > ${srcdir}/linux-$_basekernel/scripts/setlocalversion
+##
   # get kernel version  
-  cp ../logo_linux_clut224.ppm drivers/video/logo
-  echo \#\!/bin/sh > scripts/setlocalversion
   make prepare
-  _kernver="$(make kernelrelease)"
   # load configuration
-  yes "" | make config
-  # build!
+  # Configure the kernel. Replace the line below with one of your choice.
+  #make menuconfig # CLI menu for configuration
+  #make xconfig # X-based configuration
+  #make oldconfig # using old config from previous kernel version
+  # ... or manually edit .config
   ####################
   # stop here
   # this is useful to configure the kernel
   #msg "Stopping build"
   #return 1
   ####################
+  yes "" | make config
+  # build!
   make bzImage modules || return 1
+  }
+
+package_kernel26() {
+  pkgdesc="The Linux Kernel and modules"
+  groups=('base')
+  backup=(etc/mkinitcpio.d/${pkgname}.preset)
+  depends=('coreutils' 'linux-firmware' 'module-init-tools' 'mkinitcpio>=0.5.20')
+  # pwc, ieee80211 and hostap-driver26 modules are included in kernel26 now
+  # nforce package support was abandoned by nvidia, kernel modules should cover everything now.
+  # kernel24 support is dropped since glibc24
+  replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi'
+            'alsa-driver' 'ieee80211' 'hostap-driver26'
+            'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv'
+            'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs'
+            'gspcav1' 'atl2' 'wlan-ng26' 'rt2500' 'nouveau-drm')
+  install=kernel26.install
+  optdepends=('crda: to set the correct wireless channels of your country')
+
+  KARCH=x86
+  cd ${srcdir}/linux-$_basekernel
+  # get kernel version
+  _kernver="$(make kernelrelease)"
   mkdir -p ${pkgdir}/{lib/modules,boot}
   make INSTALL_MOD_PATH=${pkgdir} modules_install || return 1
-  cp System.map ${pkgdir}/boot/System.map26
-  cp arch/$KARCH/boot/bzImage ${pkgdir}/boot/vmlinuz26
+  cp System.map ${pkgdir}/boot/System.map26${_kernelname}
+  cp arch/$KARCH/boot/bzImage ${pkgdir}/boot/vmlinuz26${_kernelname}
+  #  # add vmlinux
+  install -m644 -D vmlinux ${pkgdir}/usr/src/linux-${_kernver}/vmlinux
+
+  # install fallback mkinitcpio.conf file and preset file for kernel
+  install -m644 -D ${srcdir}/kernel26.preset ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset || return 1
+  # set correct depmod command for install
+  sed \
+    -e  "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \
+    -e  "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
+    -i $startdir/kernel26.install
+  sed \
+    -e "s|source .*|source /etc/mkinitcpio.d/kernel26${_kernelname}.kver|g" \
+    -e "s|default_image=.*|default_image=\"/boot/${pkgname}.img\"|g" \
+    -e "s|fallback_image=.*|fallback_image=\"/boot/${pkgname}-fallback.img\"|g" \
+    -i ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset
+
+  echo -e "# DO NOT EDIT THIS FILE\nALL_kver='${_kernver}'" > ${pkgdir}/etc/mkinitcpio.d/${pkgname}.kver
+  # remove build and source links
+  rm -f ${pkgdir}/lib/modules/${_kernver}/{source,build}
+  # remove the firmware
+  rm -rf ${pkgdir}/lib/firmware
+}
+
+package_kernel26-headers() {
+  pkgdesc="Header files and scripts for building modules for kernel26"
+  mkdir -p ${pkgdir}/lib/modules/${_kernver}
+  cd ${pkgdir}/lib/modules/${_kernver}
+  ln -sf ../../../usr/src/linux-${_kernver} build
+  cd ${srcdir}/linux-$_basekernel
   install -D -m644 Makefile \
     ${pkgdir}/usr/src/linux-${_kernver}/Makefile
   install -D -m644 kernel/Makefile \
@@ -93,7 +141,7 @@ build() {
     ${pkgdir}/usr/src/linux-${_kernver}/.config
   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include
 
-  for i in acpi asm-{generic,x86} config linux math-emu media net pcmcia scsi sound video; do
+  for i in acpi asm-generic config generated linux math-emu media net pcmcia scsi sound trace video; do
     cp -a include/$i ${pkgdir}/usr/src/linux-${_kernver}/include/
   done
 
@@ -106,7 +154,7 @@ build() {
   cp -a scripts ${pkgdir}/usr/src/linux-${_kernver}
   # fix permissions on scripts dir
   chmod og-w -R ${pkgdir}/usr/src/linux-${_kernver}/scripts
-  #mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions
 
   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel
 
@@ -123,14 +171,15 @@ build() {
    mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i
    cp -a drivers/media/video/$i/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i
   done
+  # add docbook makefile
+  install -D -m644 Documentation/DocBook/Makefile \
+    ${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile
   # add dm headers
   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
   cp drivers/md/*.h  ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
   # add inotify.h
   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/linux
   cp include/linux/inotify.h ${pkgdir}/usr/src/linux-${_kernver}/include/linux/
-  # add CLUSTERIP file for iptables
-  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/net/ipv4/netfilter/
   # add wireless headers
   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/
   cp net/mac80211/*.h ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/
@@ -144,29 +193,73 @@ build() {
   # http://bugs.archlinux.org/task/11194
   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
   cp include/config/dvb/*.h ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
+  # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
+  # in reference to:
+  # http://bugs.archlinux.org/task/13146
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
+  cp drivers/media/dvb/frontends/lgdt330x.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
+  cp drivers/media/video/msp3400-driver.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
   # add xfs and shmem for aufs building
   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs
   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/mm
   cp fs/xfs/xfs_sb.h ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h
-  # add vmlinux
-  cp vmlinux ${pkgdir}/usr/src/linux-${_kernver}
+  # add headers vor virtualbox
+  # in reference to:
+  # http://bugs.archlinux.org/task/14568
+  cp -a include/drm $pkgdir/usr/src/linux-${_kernver}/include/
+  # add headers for broadcom wl
+  # in reference to:
+  # http://bugs.archlinux.org/task/14568
+  cp -a include/trace $pkgdir/usr/src/linux-${_kernver}/include/
   # copy in Kconfig files
   for i in `find . -name "Kconfig*"`; do 
     mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'`
     cp $i ${pkgdir}/usr/src/linux-${_kernver}/$i
   done
 
-  cd ${pkgdir}/usr/src/linux-${_kernver}/include && ln -s asm-$KARCH asm
-
   chown -R root.root ${pkgdir}/usr/src/linux-${_kernver}
   find ${pkgdir}/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \;
-  cd ${pkgdir}/lib/modules/${_kernver} && \
-    (rm -f source build; ln -sf ../../../usr/src/linux-${_kernver} build)
-  # install fallback mkinitcpio.conf file and preset file for kernel
-  install -m644 -D ${srcdir}/${pkgname}.preset ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset || return 1
-  # set correct depmod command for install
-  sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/kernel26.install
-  echo -e "# DO NOT EDIT THIS FILE\nALL_kver='${_kernver}'" > ${startdir}/pkg/etc/mkinitcpio.d/${pkgname}.kver
   # remove unneeded architectures
-  rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
+  rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
+}
+
+#package_kernel26-firmware() {
+#  pkgdesc="The included firmware files of the Linux Kernel"
+#  groups=('base')
+#
+#  cd ${srcdir}/linux-$_basekernel
+#  make firmware || return 1
+#  make INSTALL_MOD_PATH=${pkgdir} firmware_install || return 1
+#}
+
+package_kernel26-manpages() {
+pkgdesc="Kernel hackers manual - Section 9 manpages that comes with the Linux kernel."
+
+cd ${srcdir}/linux-$_basekernel
+make mandocs || return 1
+
+install -d ${pkgdir}/usr/share/man/man9/
+install ${srcdir}/linux-${_basekernel}/Documentation/DocBook/man/*.9.gz \
+${pkgdir}/usr/share/man/man9/
+
+find ${pkgdir} -type f -exec chmod 644 {} \;
+}
+
+package_kernel26-docs() {
+pkgdesc="Kernel hackers manual - HTML documentation that comes with the Linux kernel."
+
+cd ${srcdir}/linux-$_basekernel
+mkdir -p $pkgdir/usr/src/linux-$_kernver
+mv Documentation $pkgdir/usr/src/linux-$_kernver
+find $pkgdir -type f -exec chmod 444 {} \;
+find $pkgdir -type d -exec chmod 755 {} \;
+# remove a file already in kernel26 package
+rm -f $pkgdir/usr/src/linux-$_kernver/Documentation/DocBook/Makefile
 }
+md5sums=('10eebcb0178fb4540e2165bfd7efc7ad'
+         '2a8f0f455395296a1678b226ae63c5a7'
+         'c72c30fc2787e6d5d72ffae3cfb5341b'
+         'ed65c8f0da0d8159ce4bfc198657ea83'
+         '6f37aeab713a3d59185a53066c923092'
+         'c81068add4917fca813417e8aa6c4f22'
+         '25584700a0a679542929c4bed31433b6')
diff --git a/abs/core-testing/kernel26/config b/abs/core-testing/kernel26/config
index b188b73..35c3eba 100644
--- a/abs/core-testing/kernel26/config
+++ b/abs/core-testing/kernel26/config
@@ -1,12 +1,13 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.28
-# Wed Jul  1 14:07:15 2009
+# Linux kernel version: 2.6.34
+# Sun Aug 15 19:47:24 2010
 #
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
 # CONFIG_X86_64 is not set
 CONFIG_X86=y
+CONFIG_OUTPUT_FORMAT="elf32-i386"
 CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
 CONFIG_GENERIC_TIME=y
 CONFIG_GENERIC_CMOS_UPDATE=y
@@ -16,13 +17,14 @@ CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
 CONFIG_LOCKDEP_SUPPORT=y
 CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_FAST_CMPXCHG_LOCAL=y
 CONFIG_MMU=y
 CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_GENERIC_ISA_DMA=y
 CONFIG_GENERIC_IOMAP=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
 CONFIG_ARCH_MAY_HAVE_PC_FDC=y
 # CONFIG_RWSEM_GENERIC_SPINLOCK is not set
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
@@ -33,6 +35,8 @@ CONFIG_ARCH_HAS_CPU_RELAX=y
 CONFIG_ARCH_HAS_DEFAULT_IDLE=y
 CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
 CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
 # CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
@@ -40,17 +44,20 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_ARCH_POPULATES_NODE_MAP=y
 # CONFIG_AUDIT_ARCH is not set
 CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_EARLY_RES=y
+CONFIG_HAVE_INTEL_TXT=y
 CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_X86_SMP=y
 CONFIG_USE_GENERIC_SMP_HELPERS=y
 CONFIG_X86_32_SMP=y
 CONFIG_X86_HT=y
-CONFIG_X86_BIOS_REBOOT=y
 CONFIG_X86_TRAMPOLINE=y
 CONFIG_KTIME_SCALAR=y
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
 
 #
 # General setup
@@ -60,35 +67,76 @@ CONFIG_LOCK_KERNEL=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
 CONFIG_LOCALVERSION="-LinHES"
 CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_LZO is not set
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSVIPC_SYSCTL=y
 CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
 CONFIG_TASKSTATS=y
 CONFIG_TASK_DELAY_ACCT=y
 CONFIG_TASK_XACCT=y
 CONFIG_TASK_IO_ACCOUNTING=y
-# CONFIG_AUDIT is not set
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_TREE=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_TINY_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
+# CONFIG_TREE_RCU_TRACE is not set
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_LOG_BUF_SHIFT=19
-# CONFIG_CGROUPS is not set
 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
-# CONFIG_GROUP_SCHED is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_NS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_MM_OWNER=y
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
 CONFIG_RELAY=y
 CONFIG_NAMESPACES=y
-# CONFIG_UTS_NS is not set
-# CONFIG_IPC_NS is not set
-# CONFIG_USER_NS is not set
-# CONFIG_PID_NS is not set
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_LZO=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
 # CONFIG_EMBEDDED is not set
 CONFIG_UID16=y
 CONFIG_SYSCTL_SYSCALL=y
@@ -100,37 +148,57 @@ CONFIG_PRINTK=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
 CONFIG_PCSPKR_PLATFORM=y
-# CONFIG_COMPAT_BRK is not set
 CONFIG_BASE_FULL=y
 CONFIG_FUTEX=y
-CONFIG_ANON_INODES=y
 CONFIG_EPOLL=y
 CONFIG_SIGNALFD=y
 CONFIG_TIMERFD=y
 CONFIG_EVENTFD=y
 CONFIG_SHMEM=y
 CONFIG_AIO=y
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+CONFIG_PERF_COUNTERS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 CONFIG_VM_EVENT_COUNTERS=y
 CONFIG_PCI_QUIRKS=y
 CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
 # CONFIG_SLAB is not set
 CONFIG_SLUB=y
 # CONFIG_SLOB is not set
 CONFIG_PROFILING=y
-# CONFIG_MARKERS is not set
+CONFIG_TRACEPOINTS=y
 CONFIG_OPROFILE=m
-CONFIG_OPROFILE_IBS=y
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
 CONFIG_HAVE_OPROFILE=y
 # CONFIG_KPROBES is not set
 CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
 CONFIG_HAVE_IOREMAP_PROT=y
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_SLOW_WORK=y
+# CONFIG_SLOW_WORK_DEBUG is not set
 CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
-# CONFIG_TINY_SHMEM is not set
 CONFIG_BASE_SMALL=0
 CONFIG_MODULES=y
 CONFIG_MODULE_FORCE_LOAD=y
@@ -138,12 +206,9 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_MODULE_FORCE_UNLOAD=y
 # CONFIG_MODVERSIONS is not set
 # CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
 CONFIG_STOP_MACHINE=y
 CONFIG_BLOCK=y
-CONFIG_LBD=y
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_LSF=y
+CONFIG_LBDAF=y
 CONFIG_BLK_DEV_BSG=y
 # CONFIG_BLK_DEV_INTEGRITY is not set
 
@@ -151,16 +216,44 @@ CONFIG_BLK_DEV_BSG=y
 # IO Schedulers
 #
 CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
 CONFIG_IOSCHED_DEADLINE=y
 CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
+# CONFIG_CFQ_GROUP_IOSCHED is not set
 # CONFIG_DEFAULT_DEADLINE is not set
 CONFIG_DEFAULT_CFQ=y
 # CONFIG_DEFAULT_NOOP is not set
 CONFIG_DEFAULT_IOSCHED="cfq"
 CONFIG_PREEMPT_NOTIFIERS=y
-CONFIG_CLASSIC_RCU=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
 CONFIG_FREEZER=y
 
 #
@@ -171,23 +264,22 @@ CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
 CONFIG_SMP=y
-CONFIG_X86_FIND_SMP_CONFIG=y
+# CONFIG_SPARSE_IRQ is not set
 CONFIG_X86_MPPARSE=y
-CONFIG_X86_PC=y
-# CONFIG_X86_ELAN is not set
-# CONFIG_X86_VOYAGER is not set
-# CONFIG_X86_GENERICARCH is not set
-# CONFIG_X86_VSMP is not set
-# CONFIG_X86_RDC321X is not set
-CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+# CONFIG_X86_BIGSMP is not set
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
 CONFIG_PARAVIRT_GUEST=y
 CONFIG_VMI=y
-# CONFIG_KVM_CLOCK is not set
-# CONFIG_KVM_GUEST is not set
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
 CONFIG_LGUEST_GUEST=y
 CONFIG_PARAVIRT=y
-# CONFIG_PARAVIRT_CLOCK is not set
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
 # CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
 # CONFIG_MEMTEST is not set
 # CONFIG_M386 is not set
 # CONFIG_M486 is not set
@@ -213,11 +305,13 @@ CONFIG_M686=y
 # CONFIG_MVIAC7 is not set
 # CONFIG_MPSC is not set
 # CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
 # CONFIG_GENERIC_CPU is not set
 CONFIG_X86_GENERIC=y
 CONFIG_X86_CPU=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
 CONFIG_X86_CMPXCHG=y
-CONFIG_X86_L1_CACHE_SHIFT=7
+CONFIG_X86_L1_CACHE_SHIFT=6
 CONFIG_X86_XADD=y
 # CONFIG_X86_PPRO_FENCE is not set
 CONFIG_X86_WP_WORKS_OK=y
@@ -227,13 +321,14 @@ CONFIG_X86_POPAD_OK=y
 CONFIG_X86_INTEL_USERCOPY=y
 CONFIG_X86_USE_PPRO_CHECKSUM=y
 CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
 CONFIG_X86_CMOV=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=4
+CONFIG_X86_MINIMUM_CPU_FAMILY=5
 CONFIG_X86_DEBUGCTLMSR=y
 CONFIG_CPU_SUP_INTEL=y
 CONFIG_CPU_SUP_CYRIX_32=y
 CONFIG_CPU_SUP_AMD=y
-CONFIG_CPU_SUP_CENTAUR_32=y
+CONFIG_CPU_SUP_CENTAUR=y
 CONFIG_CPU_SUP_TRANSMETA_32=y
 CONFIG_CPU_SUP_UMC_32=y
 # CONFIG_X86_DS is not set
@@ -241,18 +336,23 @@ CONFIG_HPET_TIMER=y
 CONFIG_HPET_EMULATE_RTC=y
 CONFIG_DMI=y
 # CONFIG_IOMMU_HELPER is not set
-CONFIG_NR_CPUS=16
+CONFIG_IOMMU_API=y
+CONFIG_NR_CPUS=8
 CONFIG_SCHED_SMT=y
 CONFIG_SCHED_MC=y
 # CONFIG_PREEMPT_NONE is not set
 # CONFIG_PREEMPT_VOLUNTARY is not set
 CONFIG_PREEMPT=y
-# CONFIG_PREEMPT_RCU is not set
 CONFIG_X86_LOCAL_APIC=y
 CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
 CONFIG_X86_MCE=y
-CONFIG_X86_MCE_NONFATAL=m
-CONFIG_X86_MCE_P4THERMAL=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
 CONFIG_VM86=y
 CONFIG_TOSHIBA=m
 CONFIG_I8K=m
@@ -272,6 +372,7 @@ CONFIG_HIGHMEM=y
 CONFIG_ARCH_FLATMEM_ENABLE=y
 CONFIG_ARCH_SPARSEMEM_ENABLE=y
 CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ILLEGAL_POINTER_VALUE=0
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_FLATMEM_MANUAL=y
 # CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -281,23 +382,30 @@ CONFIG_FLAT_NODE_MEM_MAP=y
 CONFIG_SPARSEMEM_STATIC=y
 CONFIG_PAGEFLAGS_EXTENDED=y
 CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_RESOURCES_64BIT is not set
 # CONFIG_PHYS_ADDR_T_64BIT is not set
 CONFIG_ZONE_DMA_FLAG=1
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
-CONFIG_UNEVICTABLE_LRU=y
 CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_HWPOISON_INJECT=m
 # CONFIG_HIGHPTE is not set
 CONFIG_X86_CHECK_BIOS_CORRUPTION=y
 CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
 CONFIG_X86_RESERVE_LOW_64K=y
 # CONFIG_MATH_EMULATION is not set
 CONFIG_MTRR=y
-# CONFIG_MTRR_SANITIZER is not set
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
 CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
 CONFIG_EFI=y
 CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
 # CONFIG_HZ_100 is not set
 # CONFIG_HZ_250 is not set
 CONFIG_HZ_300=y
@@ -307,7 +415,7 @@ CONFIG_SCHED_HRTICK=y
 CONFIG_KEXEC=y
 # CONFIG_CRASH_DUMP is not set
 # CONFIG_KEXEC_JUMP is not set
-CONFIG_PHYSICAL_START=0x100000
+CONFIG_PHYSICAL_START=0x1000000
 # CONFIG_RELOCATABLE is not set
 CONFIG_PHYSICAL_ALIGN=0x100000
 CONFIG_HOTPLUG_CPU=y
@@ -319,17 +427,26 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
 # Power management and ACPI options
 #
 CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_CAN_PM_TRACE=y
+# CONFIG_PM_TRACE_RTC is not set
 CONFIG_PM_SLEEP_SMP=y
 CONFIG_PM_SLEEP=y
+# CONFIG_PM_SLEEP_ADVANCED_DEBUG is not set
 CONFIG_SUSPEND=y
 CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATION_NVS=y
 CONFIG_HIBERNATION=y
 CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_RUNTIME=y
+CONFIG_PM_OPS=y
 CONFIG_ACPI=y
 CONFIG_ACPI_SLEEP=y
 CONFIG_ACPI_PROCFS=y
 CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_ACPI_POWER_METER=m
 CONFIG_ACPI_SYSFS_POWER=y
 CONFIG_ACPI_PROC_EVENT=y
 CONFIG_ACPI_AC=m
@@ -340,19 +457,16 @@ CONFIG_ACPI_FAN=m
 CONFIG_ACPI_DOCK=y
 CONFIG_ACPI_PROCESSOR=m
 CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
 CONFIG_ACPI_THERMAL=m
-CONFIG_ACPI_WMI=m
-CONFIG_ACPI_ASUS=m
-CONFIG_ACPI_TOSHIBA=m
 # CONFIG_ACPI_CUSTOM_DSDT is not set
-CONFIG_ACPI_CUSTOM_DSDT_INITRD=y
 CONFIG_ACPI_BLACKLIST_YEAR=0
 # CONFIG_ACPI_DEBUG is not set
 CONFIG_ACPI_PCI_SLOT=m
-CONFIG_ACPI_SYSTEM=y
 CONFIG_X86_PM_TIMER=y
 CONFIG_ACPI_CONTAINER=m
 CONFIG_ACPI_SBS=m
+CONFIG_SFI=y
 CONFIG_X86_APM_BOOT=y
 CONFIG_APM=y
 # CONFIG_APM_IGNORE_USER_SUSPEND is not set
@@ -360,7 +474,6 @@ CONFIG_APM_DO_ENABLE=y
 # CONFIG_APM_CPU_IDLE is not set
 # CONFIG_APM_DISPLAY_BLANK is not set
 # CONFIG_APM_ALLOW_INTS is not set
-CONFIG_APM_REAL_MODE_POWER_OFF=y
 
 #
 # CPU Frequency scaling
@@ -384,12 +497,12 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
 #
 # CPUFreq processor drivers
 #
+CONFIG_X86_PCC_CPUFREQ=m
 CONFIG_X86_ACPI_CPUFREQ=m
 CONFIG_X86_POWERNOW_K6=m
 CONFIG_X86_POWERNOW_K7=m
 CONFIG_X86_POWERNOW_K7_ACPI=y
 CONFIG_X86_POWERNOW_K8=m
-CONFIG_X86_POWERNOW_K8_ACPI=y
 CONFIG_X86_GX_SUSPMOD=m
 # CONFIG_X86_SPEEDSTEP_CENTRINO is not set
 CONFIG_X86_SPEEDSTEP_ICH=m
@@ -403,7 +516,6 @@ CONFIG_X86_E_POWERSAVER=m
 #
 # shared options
 #
-# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
 CONFIG_X86_SPEEDSTEP_LIB=m
 CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
 CONFIG_CPU_IDLE=y
@@ -424,15 +536,23 @@ CONFIG_PCI_DIRECT=y
 CONFIG_PCI_MMCONFIG=y
 CONFIG_PCI_OLPC=y
 CONFIG_PCI_DOMAINS=y
+CONFIG_DMAR=y
+# CONFIG_DMAR_DEFAULT_ON is not set
+CONFIG_DMAR_FLOPPY_WA=y
 CONFIG_PCIEPORTBUS=y
 CONFIG_HOTPLUG_PCI_PCIE=m
 CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
 # CONFIG_PCIEASPM is not set
+CONFIG_PCIE_PME=y
 CONFIG_ARCH_SUPPORTS_MSI=y
 CONFIG_PCI_MSI=y
-CONFIG_PCI_LEGACY=y
 # CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_STUB=m
 CONFIG_HT_IRQ=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_IOAPIC=y
 CONFIG_ISA_DMA_API=y
 CONFIG_ISA=y
 # CONFIG_EISA is not set
@@ -441,10 +561,8 @@ CONFIG_ISA=y
 CONFIG_OLPC=y
 CONFIG_K8_NB=y
 CONFIG_PCCARD=m
-# CONFIG_PCMCIA_DEBUG is not set
 CONFIG_PCMCIA=m
 CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_PCMCIA_IOCTL=y
 CONFIG_CARDBUS=y
 
 #
@@ -489,7 +607,6 @@ CONFIG_NET=y
 # Networking options
 #
 CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
 CONFIG_UNIX=y
 CONFIG_XFRM=y
 CONFIG_XFRM_USER=m
@@ -508,10 +625,7 @@ CONFIG_IP_FIB_HASH=y
 CONFIG_IP_MULTIPLE_TABLES=y
 CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
+# CONFIG_IP_PNP is not set
 CONFIG_NET_IPIP=m
 CONFIG_NET_IPGRE=m
 # CONFIG_NET_IPGRE_BROADCAST is not set
@@ -528,11 +642,28 @@ CONFIG_INET_TUNNEL=m
 CONFIG_INET_XFRM_MODE_TRANSPORT=m
 CONFIG_INET_XFRM_MODE_TUNNEL=m
 CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_LRO=m
+CONFIG_INET_LRO=y
 CONFIG_INET_DIAG=y
 CONFIG_INET_TCP_DIAG=y
-# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
 CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+# CONFIG_DEFAULT_BIC is not set
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_HTCP is not set
+# CONFIG_DEFAULT_VEGAS is not set
+# CONFIG_DEFAULT_WESTWOOD is not set
+# CONFIG_DEFAULT_RENO is not set
 CONFIG_DEFAULT_TCP_CONG="cubic"
 # CONFIG_TCP_MD5SIG is not set
 CONFIG_IPV6=m
@@ -551,6 +682,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
 CONFIG_INET6_XFRM_MODE_BEET=m
 CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
 CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
 CONFIG_IPV6_NDISC_NODETYPE=y
 CONFIG_IPV6_TUNNEL=m
 CONFIG_IPV6_MULTIPLE_TABLES=y
@@ -573,6 +705,7 @@ CONFIG_NF_CONNTRACK=m
 CONFIG_NF_CT_ACCT=y
 CONFIG_NF_CONNTRACK_MARK=y
 CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
 CONFIG_NF_CONNTRACK_EVENTS=y
 CONFIG_NF_CT_PROTO_DCCP=m
 CONFIG_NF_CT_PROTO_GRE=m
@@ -593,7 +726,10 @@ CONFIG_NETFILTER_XTABLES=m
 CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
 CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
 CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
 CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
 CONFIG_NETFILTER_XT_TARGET_MARK=m
 CONFIG_NETFILTER_XT_TARGET_NFLOG=m
 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -604,6 +740,7 @@ CONFIG_NETFILTER_XT_TARGET_TRACE=m
 CONFIG_NETFILTER_XT_TARGET_SECMARK=m
 CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
 CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
 CONFIG_NETFILTER_XT_MATCH_COMMENT=m
 CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
 CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -614,6 +751,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
 CONFIG_NETFILTER_XT_MATCH_ESP=m
 CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
 CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
 CONFIG_NETFILTER_XT_MATCH_LENGTH=m
 CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -637,6 +775,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
 CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
 CONFIG_NETFILTER_XT_MATCH_TIME=m
 CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
 CONFIG_IP_VS=m
 # CONFIG_IP_VS_IPV6 is not set
 # CONFIG_IP_VS_DEBUG is not set
@@ -650,6 +789,7 @@ CONFIG_IP_VS_PROTO_UDP=y
 CONFIG_IP_VS_PROTO_AH_ESP=y
 CONFIG_IP_VS_PROTO_ESP=y
 CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
 
 #
 # IPVS scheduler
@@ -727,11 +867,11 @@ CONFIG_IP6_NF_MATCH_HL=m
 CONFIG_IP6_NF_MATCH_IPV6HEADER=m
 CONFIG_IP6_NF_MATCH_MH=m
 CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
 CONFIG_IP6_NF_TARGET_LOG=m
 CONFIG_IP6_NF_FILTER=m
 CONFIG_IP6_NF_TARGET_REJECT=m
 CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_TARGET_HL=m
 CONFIG_IP6_NF_RAW=m
 CONFIG_IP6_NF_SECURITY=m
 CONFIG_BRIDGE_NF_EBTABLES=m
@@ -756,13 +896,31 @@ CONFIG_BRIDGE_EBT_SNAT=m
 CONFIG_BRIDGE_EBT_LOG=m
 CONFIG_BRIDGE_EBT_ULOG=m
 CONFIG_BRIDGE_EBT_NFLOG=m
-# CONFIG_IP_DCCP is not set
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_CCID3_RTO=100
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
 CONFIG_IP_SCTP=m
 # CONFIG_SCTP_DBG_MSG is not set
 # CONFIG_SCTP_DBG_OBJCNT is not set
 # CONFIG_SCTP_HMAC_NONE is not set
 CONFIG_SCTP_HMAC_SHA1=y
 # CONFIG_SCTP_HMAC_MD5 is not set
+CONFIG_RDS=m
+CONFIG_RDS_TCP=m
+# CONFIG_RDS_DEBUG is not set
 # CONFIG_TIPC is not set
 CONFIG_ATM=m
 CONFIG_ATM_CLIP=m
@@ -773,6 +931,7 @@ CONFIG_ATM_BR2684=m
 # CONFIG_ATM_BR2684_IPFILTER is not set
 CONFIG_STP=m
 CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
 # CONFIG_NET_DSA is not set
 CONFIG_VLAN_8021Q=m
 # CONFIG_VLAN_8021Q_GVRP is not set
@@ -781,11 +940,21 @@ CONFIG_LLC=m
 CONFIG_LLC2=m
 CONFIG_IPX=m
 # CONFIG_IPX_INTERN is not set
-# CONFIG_ATALK is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_LTPC=m
+CONFIG_COPS=m
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
 # CONFIG_X25 is not set
 # CONFIG_LAPB is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+CONFIG_IEEE802154=m
 CONFIG_NET_SCHED=y
 
 #
@@ -804,6 +973,7 @@ CONFIG_NET_SCH_TBF=m
 CONFIG_NET_SCH_GRED=m
 CONFIG_NET_SCH_DSMARK=m
 CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
 CONFIG_NET_SCH_INGRESS=m
 
 #
@@ -821,6 +991,7 @@ CONFIG_NET_CLS_U32=m
 CONFIG_NET_CLS_RSVP=m
 CONFIG_NET_CLS_RSVP6=m
 CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
 # CONFIG_NET_EMATCH is not set
 CONFIG_NET_CLS_ACT=y
 CONFIG_NET_ACT_POLICE=m
@@ -834,11 +1005,13 @@ CONFIG_NET_ACT_SIMP=m
 CONFIG_NET_ACT_SKBEDIT=m
 CONFIG_NET_CLS_IND=y
 CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
 
 #
 # Network testing
 #
 CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=y
 # CONFIG_HAMRADIO is not set
 # CONFIG_CAN is not set
 CONFIG_IRDA=m
@@ -912,9 +1085,7 @@ CONFIG_BT_HIDP=m
 #
 # Bluetooth device drivers
 #
-CONFIG_BT_HCIUSB=m
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIBTUSB is not set
+CONFIG_BT_HCIBTUSB=m
 CONFIG_BT_HCIBTSDIO=m
 CONFIG_BT_HCIUART=m
 CONFIG_BT_HCIUART_H4=y
@@ -928,39 +1099,48 @@ CONFIG_BT_HCIBT3C=m
 CONFIG_BT_HCIBLUECARD=m
 CONFIG_BT_HCIBTUART=m
 CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
 CONFIG_AF_RXRPC=m
 # CONFIG_AF_RXRPC_DEBUG is not set
 CONFIG_RXKAD=m
-CONFIG_PHONET=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
-CONFIG_CFG80211=m
-CONFIG_NL80211=y
-CONFIG_WIRELESS_OLD_REGULATORY=y
 CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
 CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
 CONFIG_MAC80211=m
-
-#
-# Rate control algorithm selection
-#
-CONFIG_MAC80211_RC_PID=y
+CONFIG_MAC80211_HAS_RC=y
 CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT_PID=y
-# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
-CONFIG_MAC80211_RC_DEFAULT="pid"
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel"
 CONFIG_MAC80211_MESH=y
 CONFIG_MAC80211_LEDS=y
 # CONFIG_MAC80211_DEBUGFS is not set
 # CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_IEEE80211=m
-# CONFIG_IEEE80211_DEBUG is not set
-CONFIG_IEEE80211_CRYPT_WEP=m
-CONFIG_IEEE80211_CRYPT_CCMP=m
-CONFIG_IEEE80211_CRYPT_TKIP=m
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
 CONFIG_RFKILL=m
-CONFIG_RFKILL_INPUT=m
 CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
 CONFIG_NET_9P=m
 CONFIG_NET_9P_VIRTIO=m
 # CONFIG_NET_9P_DEBUG is not set
@@ -973,6 +1153,8 @@ CONFIG_NET_9P_VIRTIO=m
 # Generic Driver Options
 #
 CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
 CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 CONFIG_FW_LOADER=y
@@ -984,6 +1166,7 @@ CONFIG_EXTRA_FIRMWARE=""
 CONFIG_CONNECTOR=m
 CONFIG_MTD=m
 # CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
 # CONFIG_MTD_CONCAT is not set
 CONFIG_MTD_PARTITIONS=y
 # CONFIG_MTD_REDBOOT_PARTS is not set
@@ -1036,6 +1219,7 @@ CONFIG_MTD_PLATRAM=m
 # CONFIG_MTD_PMC551 is not set
 # CONFIG_MTD_DATAFLASH is not set
 # CONFIG_MTD_M25P80 is not set
+CONFIG_MTD_SST25L=m
 CONFIG_MTD_SLRAM=m
 CONFIG_MTD_PHRAM=m
 # CONFIG_MTD_MTDRAM is not set
@@ -1051,6 +1235,11 @@ CONFIG_MTD_PHRAM=m
 # CONFIG_MTD_ONENAND is not set
 
 #
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
 # UBI - Unsorted block images
 #
 # CONFIG_MTD_UBI is not set
@@ -1085,7 +1274,10 @@ CONFIG_BLK_DEV_DAC960=m
 # CONFIG_BLK_DEV_COW_COMMON is not set
 CONFIG_BLK_DEV_LOOP=m
 CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
 CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
 CONFIG_BLK_DEV_SX8=m
 # CONFIG_BLK_DEV_UB is not set
 CONFIG_BLK_DEV_RAM=m
@@ -1099,43 +1291,50 @@ CONFIG_ATA_OVER_ETH=m
 CONFIG_VIRTIO_BLK=m
 # CONFIG_BLK_DEV_HD is not set
 CONFIG_MISC_DEVICES=y
+CONFIG_AD525X_DPOT=m
 # CONFIG_IBM_ASM is not set
 CONFIG_PHANTOM=m
-CONFIG_EEPROM_93CX6=m
 CONFIG_SGI_IOC4=m
 CONFIG_TIFM_CORE=m
 CONFIG_TIFM_7XX1=m
-CONFIG_ACER_WMI=m
-CONFIG_ASUS_LAPTOP=m
-CONFIG_FUJITSU_LAPTOP=m
-# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
-CONFIG_TC1100_WMI=m
-CONFIG_HP_WMI=m
 CONFIG_ICS932S401=m
-CONFIG_MSI_LAPTOP=m
-CONFIG_PANASONIC_LAPTOP=m
-CONFIG_COMPAL_LAPTOP=m
-CONFIG_SONY_LAPTOP=m
-# CONFIG_SONYPI_COMPAT is not set
-CONFIG_THINKPAD_ACPI=m
-# CONFIG_THINKPAD_ACPI_DEBUG is not set
-CONFIG_THINKPAD_ACPI_BAY=y
-CONFIG_THINKPAD_ACPI_VIDEO=y
-CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
-CONFIG_INTEL_MENLOW=m
-CONFIG_EEEPC_LAPTOP=m
 CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
 CONFIG_HP_ILO=m
+CONFIG_ISL29003=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_DS1682=m
+CONFIG_TI_DAC7512=m
+CONFIG_VMWARE_BALLOON=m
 CONFIG_C2PORT=m
 CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
 CONFIG_HAVE_IDE=y
 CONFIG_IDE=m
 
 #
 # Please see Documentation/ide/ide.txt for help/info on IDE drives
 #
+CONFIG_IDE_XFER_MODE=y
 CONFIG_IDE_TIMINGS=y
 CONFIG_IDE_ATAPI=y
+CONFIG_IDE_LEGACY=y
 # CONFIG_BLK_DEV_IDE_SATA is not set
 CONFIG_IDE_GD=m
 CONFIG_IDE_GD_ATA=y
@@ -1145,7 +1344,6 @@ CONFIG_BLK_DEV_DELKIN=m
 CONFIG_BLK_DEV_IDECD=m
 CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
 CONFIG_BLK_DEV_IDETAPE=m
-CONFIG_BLK_DEV_IDESCSI=m
 CONFIG_BLK_DEV_IDEACPI=y
 # CONFIG_IDE_TASK_IOCTL is not set
 CONFIG_IDE_PROC_FS=y
@@ -1178,10 +1376,12 @@ CONFIG_BLK_DEV_TRIFLEX=m
 CONFIG_BLK_DEV_CS5520=m
 CONFIG_BLK_DEV_CS5530=m
 CONFIG_BLK_DEV_CS5535=m
+CONFIG_BLK_DEV_CS5536=m
 CONFIG_BLK_DEV_HPT366=m
 CONFIG_BLK_DEV_JMICRON=m
 CONFIG_BLK_DEV_SC1200=m
 CONFIG_BLK_DEV_PIIX=m
+CONFIG_BLK_DEV_IT8172=m
 CONFIG_BLK_DEV_IT8213=m
 CONFIG_BLK_DEV_IT821X=m
 CONFIG_BLK_DEV_NS87415=m
@@ -1213,6 +1413,7 @@ CONFIG_BLK_DEV_IDEDMA=y
 #
 # SCSI device support
 #
+CONFIG_SCSI_MOD=m
 CONFIG_RAID_ATTRS=m
 CONFIG_SCSI=m
 CONFIG_SCSI_DMA=y
@@ -1231,10 +1432,6 @@ CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_CHR_DEV_SCH=m
 CONFIG_SCSI_ENCLOSURE=m
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
 CONFIG_SCSI_MULTI_LUN=y
 # CONFIG_SCSI_CONSTANTS is not set
 # CONFIG_SCSI_LOGGING is not set
@@ -1257,8 +1454,13 @@ CONFIG_SCSI_SRP_ATTRS=m
 CONFIG_SCSI_SRP_TGT_ATTRS=y
 CONFIG_SCSI_LOWLEVEL=y
 CONFIG_ISCSI_TCP=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_BE2ISCSI=m
 CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
 CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
 CONFIG_SCSI_7000FASST=m
 CONFIG_SCSI_ACARD=m
 CONFIG_SCSI_AHA152X=m
@@ -1279,6 +1481,8 @@ CONFIG_AIC79XX_DEBUG_MASK=0
 CONFIG_AIC79XX_REG_PRETTY_PRINT=y
 CONFIG_SCSI_AIC94XX=m
 # CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
 CONFIG_SCSI_DPT_I2O=m
 CONFIG_SCSI_ADVANSYS=m
 CONFIG_SCSI_IN2000=m
@@ -1289,9 +1493,17 @@ CONFIG_MEGARAID_MM=m
 CONFIG_MEGARAID_MAILBOX=m
 CONFIG_MEGARAID_LEGACY=m
 CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
 CONFIG_SCSI_HPTIOP=m
 CONFIG_SCSI_BUSLOGIC=m
 # CONFIG_SCSI_FLASHPOINT is not set
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
 CONFIG_SCSI_DMX3191D=m
 CONFIG_SCSI_DTC3280=m
 CONFIG_SCSI_EATA=m
@@ -1310,7 +1522,6 @@ CONFIG_SCSI_PPA=m
 CONFIG_SCSI_IMM=m
 # CONFIG_SCSI_IZIP_EPP16 is not set
 # CONFIG_SCSI_IZIP_SLOW_CTR is not set
-CONFIG_SCSI_MVSAS=m
 CONFIG_SCSI_NCR53C406A=m
 CONFIG_SCSI_STEX=m
 CONFIG_SCSI_SYM53C8XX_2=m
@@ -1327,6 +1538,7 @@ CONFIG_SCSI_QLOGIC_1280=m
 CONFIG_SCSI_QLA_FC=m
 CONFIG_SCSI_QLA_ISCSI=m
 CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
 CONFIG_SCSI_SYM53C416=m
 CONFIG_SCSI_DC395x=m
 CONFIG_SCSI_DC390T=m
@@ -1338,7 +1550,10 @@ CONFIG_SCSI_U14_34F_MAX_TAGS=8
 CONFIG_SCSI_ULTRASTOR=m
 CONFIG_SCSI_NSP32=m
 # CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
 CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
 CONFIG_SCSI_LOWLEVEL_PCMCIA=y
 CONFIG_PCMCIA_AHA152X=m
 CONFIG_PCMCIA_FDOMAIN=m
@@ -1350,8 +1565,13 @@ CONFIG_SCSI_DH_RDAC=m
 CONFIG_SCSI_DH_HP_SW=m
 CONFIG_SCSI_DH_EMC=m
 CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
 CONFIG_ATA=m
 # CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
 CONFIG_ATA_ACPI=y
 CONFIG_SATA_PMP=y
 CONFIG_SATA_AHCI=m
@@ -1375,6 +1595,7 @@ CONFIG_PATA_ACPI=m
 CONFIG_PATA_ALI=m
 CONFIG_PATA_AMD=m
 CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATP867X=m
 CONFIG_PATA_ATIIXP=m
 CONFIG_PATA_CMD640_PCI=m
 CONFIG_PATA_CMD64X=m
@@ -1406,15 +1627,17 @@ CONFIG_PATA_NS87415=m
 CONFIG_PATA_OPTI=m
 CONFIG_PATA_OPTIDMA=m
 CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_PDC_OLD=m
 CONFIG_PATA_QDI=m
 CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
 CONFIG_PATA_RZ1000=m
 CONFIG_PATA_SC1200=m
 CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_SIL680=m
 CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
 CONFIG_PATA_VIA=m
 CONFIG_PATA_WINBOND=m
 CONFIG_PATA_WINBOND_VLB=m
@@ -1426,7 +1649,9 @@ CONFIG_MD_RAID0=m
 CONFIG_MD_RAID1=m
 CONFIG_MD_RAID10=m
 CONFIG_MD_RAID456=m
-CONFIG_MD_RAID5_RESHAPE=y
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_RAID6_PQ=m
+CONFIG_ASYNC_RAID6_TEST=m
 CONFIG_MD_MULTIPATH=m
 CONFIG_MD_FAULTY=m
 CONFIG_BLK_DEV_DM=m
@@ -1434,8 +1659,11 @@ CONFIG_BLK_DEV_DM=m
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=m
 CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
 CONFIG_DM_ZERO=m
 CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
 CONFIG_DM_DELAY=m
 CONFIG_DM_UEVENT=y
 CONFIG_FUSION=y
@@ -1451,20 +1679,18 @@ CONFIG_FUSION_CTL=m
 #
 
 #
-# Enable only one of the two stacks, unless you know what you are doing
+# You can enable one or both FireWire driver stacks.
 #
-# CONFIG_FIREWIRE is not set
-CONFIG_IEEE1394=m
-CONFIG_IEEE1394_OHCI1394=m
-CONFIG_IEEE1394_PCILYNX=m
-CONFIG_IEEE1394_SBP2=m
-# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
-CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
-CONFIG_IEEE1394_ETH1394=m
-CONFIG_IEEE1394_RAWIO=m
-CONFIG_IEEE1394_VIDEO1394=m
-CONFIG_IEEE1394_DV1394=m
-# CONFIG_IEEE1394_VERBOSEDEBUG is not set
+
+#
+# The newer stack is recommended.
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+# CONFIG_IEEE1394 is not set
 CONFIG_I2O=m
 CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
 CONFIG_I2O_EXT_ADAPTEC=y
@@ -1481,30 +1707,34 @@ CONFIG_IFB=m
 CONFIG_DUMMY=m
 CONFIG_BONDING=m
 CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
 CONFIG_EQUALIZER=m
 CONFIG_TUN=m
 CONFIG_VETH=m
 CONFIG_NET_SB1000=m
 # CONFIG_ARCNET is not set
-CONFIG_PHYLIB=y
+CONFIG_PHYLIB=m
 
 #
 # MII PHY device drivers
 #
-# CONFIG_MARVELL_PHY is not set
-# CONFIG_DAVICOM_PHY is not set
-# CONFIG_QSEMI_PHY is not set
-# CONFIG_LXT_PHY is not set
-# CONFIG_CICADA_PHY is not set
-# CONFIG_VITESSE_PHY is not set
-# CONFIG_SMSC_PHY is not set
-# CONFIG_BROADCOM_PHY is not set
-# CONFIG_ICPLUS_PHY is not set
-# CONFIG_REALTEK_PHY is not set
-# CONFIG_FIXED_PHY is not set
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
 # CONFIG_MDIO_BITBANG is not set
 CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
+CONFIG_MII=m
 CONFIG_HAPPYMEAL=m
 CONFIG_SUNGEM=m
 CONFIG_CASSINI=m
@@ -1513,34 +1743,37 @@ CONFIG_EL1=m
 CONFIG_EL2=m
 CONFIG_ELPLUS=m
 CONFIG_EL16=m
-CONFIG_EL3=y
+CONFIG_EL3=m
 CONFIG_3C515=m
-CONFIG_VORTEX=y
-CONFIG_TYPHOON=y
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
 CONFIG_LANCE=m
 CONFIG_NET_VENDOR_SMC=y
 CONFIG_WD80x3=m
-CONFIG_ULTRA=y
+CONFIG_ULTRA=m
 CONFIG_SMC9194=m
 CONFIG_ENC28J60=m
 # CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ETHOC=m
 CONFIG_NET_VENDOR_RACAL=y
 CONFIG_NI52=m
 CONFIG_NI65=m
+CONFIG_DNET=m
 CONFIG_NET_TULIP=y
 CONFIG_DE2104X=m
-CONFIG_TULIP=y
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
 # CONFIG_TULIP_MWI is not set
 # CONFIG_TULIP_MMIO is not set
 # CONFIG_TULIP_NAPI is not set
 CONFIG_DE4X5=m
-CONFIG_WINBOND_840=y
-CONFIG_DM9102=y
-CONFIG_ULI526X=y
-CONFIG_PCMCIA_XIRCOM=y
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
 CONFIG_AT1700=m
 CONFIG_DEPCA=m
-CONFIG_HP100=y
+CONFIG_HP100=m
 CONFIG_NET_ISA=y
 CONFIG_E2100=m
 CONFIG_EWRK3=m
@@ -1561,37 +1794,41 @@ CONFIG_SEEQ8005=m
 # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
 # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
 CONFIG_NET_PCI=y
-CONFIG_PCNET32=y
-CONFIG_AMD8111_ETH=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
 CONFIG_ADAPTEC_STARFIRE=m
 CONFIG_AC3200=m
+CONFIG_KSZ884X_PCI=m
 CONFIG_APRICOT=m
-CONFIG_B44=y
+CONFIG_B44=m
 CONFIG_B44_PCI_AUTOSELECT=y
 CONFIG_B44_PCICORE_AUTOSELECT=y
 CONFIG_B44_PCI=y
-CONFIG_FORCEDETH=y
+CONFIG_FORCEDETH=m
 # CONFIG_FORCEDETH_NAPI is not set
 CONFIG_CS89x0=m
-CONFIG_EEPRO100=y
-CONFIG_E100=y
+CONFIG_E100=m
 CONFIG_FEALNX=m
-CONFIG_NATSEMI=y
+CONFIG_NATSEMI=m
 CONFIG_NE2K_PCI=m
 CONFIG_8139CP=m
-CONFIG_8139TOO=y
+CONFIG_8139TOO=m
 # CONFIG_8139TOO_PIO is not set
 CONFIG_8139TOO_TUNE_TWISTER=y
 CONFIG_8139TOO_8129=y
 # CONFIG_8139_OLD_RX_RESET is not set
 CONFIG_R6040=m
-CONFIG_SIS900=y
-CONFIG_EPIC100=y
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
 CONFIG_SUNDANCE=m
 # CONFIG_SUNDANCE_MMIO is not set
 CONFIG_TLAN=m
-CONFIG_VIA_RHINE=y
-CONFIG_VIA_RHINE_MMIO=y
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
 CONFIG_SC92031=m
 CONFIG_NET_POCKET=y
 CONFIG_ATP=m
@@ -1601,39 +1838,48 @@ CONFIG_ATL2=m
 CONFIG_NETDEV_1000=y
 CONFIG_ACENIC=m
 # CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=y
+CONFIG_DL2K=m
 CONFIG_E1000=m
 CONFIG_E1000E=m
 CONFIG_IP1000=m
 CONFIG_IGB=m
-# CONFIG_IGB_LRO is not set
 CONFIG_IGB_DCA=y
-CONFIG_NS83820=y
+CONFIG_IGBVF=m
+CONFIG_NS83820=m
 CONFIG_HAMACHI=m
 CONFIG_YELLOWFIN=m
-CONFIG_R8169=y
-CONFIG_R8169_VLAN=y
-CONFIG_SIS190=y
-CONFIG_SKGE=y
+CONFIG_R8169=m
+# CONFIG_R8169_VLAN is not set
+CONFIG_SIS190=m
+CONFIG_SKGE=m
 # CONFIG_SKGE_DEBUG is not set
 CONFIG_SKY2=m
 # CONFIG_SKY2_DEBUG is not set
-CONFIG_VIA_VELOCITY=y
-CONFIG_TIGON3=y
-CONFIG_BNX2=y
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
 CONFIG_QLA3XXX=m
 CONFIG_ATL1=m
 CONFIG_ATL1E=m
+CONFIG_ATL1C=m
 CONFIG_JME=m
 CONFIG_NETDEV_10000=y
+CONFIG_MDIO=m
 CONFIG_CHELSIO_T1=m
 CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3_DEPENDS=y
 CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4_DEPENDS=y
+CONFIG_CHELSIO_T4=m
 CONFIG_ENIC=m
 CONFIG_IXGBE=m
 CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
 CONFIG_IXGB=m
 CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
 CONFIG_MYRI10GE=m
 CONFIG_MYRI10GE_DCA=y
 CONFIG_NETXEN_NIC=m
@@ -1643,43 +1889,21 @@ CONFIG_MLX4_CORE=m
 CONFIG_MLX4_DEBUG=y
 CONFIG_TEHUTI=m
 CONFIG_BNX2X=m
+CONFIG_QLCNIC=m
 CONFIG_QLGE=m
 CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_BE2NET=m
 # CONFIG_TR is not set
-
-#
-# Wireless LAN
-#
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
+CONFIG_WLAN=y
 CONFIG_PCMCIA_RAYCS=m
-CONFIG_IPW2100=m
-CONFIG_IPW2100_MONITOR=y
-# CONFIG_IPW2100_DEBUG is not set
-CONFIG_IPW2200=m
-CONFIG_IPW2200_MONITOR=y
-CONFIG_IPW2200_RADIOTAP=y
-CONFIG_IPW2200_PROMISCUOUS=y
-CONFIG_IPW2200_QOS=y
-# CONFIG_IPW2200_DEBUG is not set
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_CS=m
-CONFIG_LIBERTAS_SDIO=m
-# CONFIG_LIBERTAS_DEBUG is not set
 CONFIG_LIBERTAS_THINFIRM=m
 CONFIG_LIBERTAS_THINFIRM_USB=m
 CONFIG_AIRO=m
-CONFIG_HERMES=m
-CONFIG_PLX_HERMES=m
-CONFIG_TMD_HERMES=m
-CONFIG_NORTEL_HERMES=m
-CONFIG_PCI_HERMES=m
-CONFIG_PCMCIA_HERMES=m
-CONFIG_PCMCIA_SPECTRUM=m
 CONFIG_ATMEL=m
 CONFIG_PCI_ATMEL=m
 CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
 CONFIG_AIRO_CS=m
 CONFIG_PCMCIA_WL3501=m
 CONFIG_PRISM54=m
@@ -1687,68 +1911,126 @@ CONFIG_USB_ZD1201=m
 CONFIG_USB_NET_RNDIS_WLAN=m
 CONFIG_RTL8180=m
 CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
 CONFIG_ADM8211=m
 # CONFIG_MAC80211_HWSIM is not set
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_PCI=m
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
 CONFIG_ATH5K=m
 # CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
 CONFIG_ATH9K=m
-CONFIG_IWLWIFI=m
-CONFIG_IWLCORE=m
-CONFIG_IWLWIFI_LEDS=y
-CONFIG_IWLWIFI_RFKILL=y
-# CONFIG_IWLWIFI_DEBUG is not set
-CONFIG_IWLAGN=m
-CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y
-CONFIG_IWLAGN_LEDS=y
-CONFIG_IWL4965=y
-CONFIG_IWL5000=y
-CONFIG_IWL3945=m
-CONFIG_IWL3945_RFKILL=y
-CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
-CONFIG_IWL3945_LEDS=y
-# CONFIG_IWL3945_DEBUG is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
+# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_AR9170_USB=m
+CONFIG_AR9170_LEDS=y
 CONFIG_B43=m
 CONFIG_B43_PCI_AUTOSELECT=y
 CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_LP=y
 CONFIG_B43_LEDS=y
-CONFIG_B43_RFKILL=y
+CONFIG_B43_HWRNG=y
 # CONFIG_B43_DEBUG is not set
 CONFIG_B43LEGACY=m
 CONFIG_B43LEGACY_PCI_AUTOSELECT=y
 CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
 CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_RFKILL=y
+CONFIG_B43LEGACY_HWRNG=y
 # CONFIG_B43LEGACY_DEBUG is not set
 CONFIG_B43LEGACY_DMA=y
 CONFIG_B43LEGACY_PIO=y
 CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
 # CONFIG_B43LEGACY_DMA_MODE is not set
 # CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLWIFI=m
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWLAGN=m
+CONFIG_IWL4965=y
+CONFIG_IWL5000=y
+CONFIG_IWL3945=m
+CONFIG_IWM=m
+# CONFIG_IWM_DEBUG is not set
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_LEDS=y
 CONFIG_RT2X00=m
 CONFIG_RT2400PCI=m
 CONFIG_RT2500PCI=m
 CONFIG_RT61PCI=m
+CONFIG_RT2800PCI_PCI=y
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT30XX=y
+CONFIG_RT2800PCI_RT35XX=y
 CONFIG_RT2500USB=m
 CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT30XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
 CONFIG_RT2X00_LIB_PCI=m
 CONFIG_RT2X00_LIB_USB=m
 CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_HT=y
 CONFIG_RT2X00_LIB_FIRMWARE=y
 CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_RFKILL=y
 CONFIG_RT2X00_LIB_LEDS=y
 # CONFIG_RT2X00_DEBUG is not set
+CONFIG_WL12XX=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL1271=m
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_SDIO=m
+# CONFIG_WIMAX_IWMC3200_SDIO is not set
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
 
 #
 # USB Network Adapters
@@ -1760,7 +2042,9 @@ CONFIG_USB_RTL8150=m
 CONFIG_USB_USBNET=m
 CONFIG_USB_NET_AX8817X=m
 CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
 CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
 CONFIG_USB_NET_SMSC95XX=m
 CONFIG_USB_NET_GL620A=m
 CONFIG_USB_NET_NET1080=m
@@ -1776,6 +2060,10 @@ CONFIG_USB_EPSON2888=y
 CONFIG_USB_KC2190=y
 CONFIG_USB_NET_ZAURUS=m
 CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
 CONFIG_NET_PCMCIA=y
 CONFIG_PCMCIA_3C589=m
 CONFIG_PCMCIA_3C574=m
@@ -1815,6 +2103,9 @@ CONFIG_ATM_FORE200E_TX_RETRY=16
 CONFIG_ATM_FORE200E_DEBUG=0
 CONFIG_ATM_HE=m
 # CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
 # CONFIG_FDDI is not set
 # CONFIG_HIPPI is not set
 CONFIG_PLIP=m
@@ -1841,16 +2132,8 @@ CONFIG_NETPOLL=y
 # CONFIG_NETPOLL_TRAP is not set
 CONFIG_NET_POLL_CONTROLLER=y
 CONFIG_VIRTIO_NET=m
+CONFIG_VMXNET3=m
 CONFIG_ISDN=y
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
-
-#
-# mISDN hardware drivers
-#
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
 CONFIG_ISDN_I4L=m
 CONFIG_ISDN_PPP=y
 CONFIG_ISDN_PPP_VJ=y
@@ -1934,7 +2217,6 @@ CONFIG_HISAX_ST5481=m
 CONFIG_HISAX_HFCUSB=m
 CONFIG_HISAX_HFC4S8S=m
 CONFIG_HISAX_FRITZ_PCIPNP=m
-CONFIG_HISAX_HDLC=y
 
 #
 # Active cards
@@ -1943,14 +2225,6 @@ CONFIG_ISDN_DRV_ICN=m
 CONFIG_ISDN_DRV_PCBIT=m
 CONFIG_ISDN_DRV_SC=m
 CONFIG_ISDN_DRV_ACT2000=m
-CONFIG_HYSDN=m
-CONFIG_HYSDN_CAPI=y
-CONFIG_ISDN_DRV_GIGASET=m
-CONFIG_GIGASET_BASE=m
-CONFIG_GIGASET_M105=m
-CONFIG_GIGASET_M101=m
-# CONFIG_GIGASET_DEBUG is not set
-CONFIG_GIGASET_UNDOCREQ=y
 CONFIG_ISDN_CAPI=m
 CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
 CONFIG_CAPI_TRACE=y
@@ -1979,6 +2253,34 @@ CONFIG_ISDN_DIVAS_PRIPCI=y
 CONFIG_ISDN_DIVAS_DIVACAPI=m
 CONFIG_ISDN_DIVAS_USERIDI=m
 CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
 # CONFIG_PHONE is not set
 
 #
@@ -1987,6 +2289,7 @@ CONFIG_ISDN_DIVAS_MAINT=m
 CONFIG_INPUT=y
 CONFIG_INPUT_FF_MEMLESS=m
 CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
 
 #
 # Userland interfaces
@@ -2003,12 +2306,19 @@ CONFIG_INPUT_EVDEV=m
 # Input Device Drivers
 #
 CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
 CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_SUNKBD is not set
+CONFIG_QT2160=m
 # CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
 # CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
 CONFIG_INPUT_MOUSE=y
 CONFIG_MOUSE_PS2=m
 CONFIG_MOUSE_PS2_ALPS=y
@@ -2017,6 +2327,7 @@ CONFIG_MOUSE_PS2_SYNAPTICS=y
 CONFIG_MOUSE_PS2_LIFEBOOK=y
 CONFIG_MOUSE_PS2_TRACKPOINT=y
 CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
 # CONFIG_MOUSE_PS2_TOUCHKIT is not set
 CONFIG_MOUSE_PS2_OLPC=y
 CONFIG_MOUSE_SERIAL=y
@@ -2027,6 +2338,8 @@ CONFIG_MOUSE_INPORT=m
 CONFIG_MOUSE_LOGIBM=m
 CONFIG_MOUSE_PC110PAD=m
 CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
 CONFIG_INPUT_JOYSTICK=y
 CONFIG_JOYSTICK_ANALOG=m
 CONFIG_JOYSTICK_A3D=m
@@ -2056,6 +2369,7 @@ CONFIG_JOYSTICK_JOYDUMP=m
 CONFIG_JOYSTICK_XPAD=m
 CONFIG_JOYSTICK_XPAD_FF=y
 CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
 CONFIG_INPUT_TABLET=y
 CONFIG_TABLET_USB_ACECAD=m
 CONFIG_TABLET_USB_AIPTEK=m
@@ -2064,9 +2378,16 @@ CONFIG_TABLET_USB_KBTAB=m
 CONFIG_TABLET_USB_WACOM=m
 CONFIG_INPUT_TOUCHSCREEN=y
 CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_EETI=m
 CONFIG_TOUCHSCREEN_FUJITSU=m
 CONFIG_TOUCHSCREEN_GUNZE=m
 CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_MCS5000=m
 CONFIG_TOUCHSCREEN_MTOUCH=m
 CONFIG_TOUCHSCREEN_INEXIO=m
 CONFIG_TOUCHSCREEN_MK712=m
@@ -2074,11 +2395,13 @@ CONFIG_TOUCHSCREEN_HTCPEN=m
 CONFIG_TOUCHSCREEN_PENMOUNT=m
 CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
 CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
 CONFIG_TOUCHSCREEN_WM97XX=m
 # CONFIG_TOUCHSCREEN_WM9705 is not set
 # CONFIG_TOUCHSCREEN_WM9712 is not set
 # CONFIG_TOUCHSCREEN_WM9713 is not set
 CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+# CONFIG_TOUCHSCREEN_MC13783 is not set
 CONFIG_TOUCHSCREEN_USB_EGALAX=y
 CONFIG_TOUCHSCREEN_USB_PANJIT=y
 CONFIG_TOUCHSCREEN_USB_3M=y
@@ -2090,7 +2413,14 @@ CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
 CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
 CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
 CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+# CONFIG_TOUCHSCREEN_USB_E2I is not set
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC5UH=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
 CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+# CONFIG_TOUCHSCREEN_PCAP is not set
 CONFIG_INPUT_MISC=y
 CONFIG_INPUT_PCSPKR=m
 CONFIG_INPUT_APANEL=m
@@ -2103,6 +2433,10 @@ CONFIG_INPUT_POWERMATE=m
 CONFIG_INPUT_YEALINK=m
 CONFIG_INPUT_CM109=m
 CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_WINBOND_CIR=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+# CONFIG_INPUT_PCAP is not set
 
 #
 # Hardware I/O ports
@@ -2115,6 +2449,7 @@ CONFIG_SERIO_PARKBD=m
 CONFIG_SERIO_PCIPS2=m
 CONFIG_SERIO_LIBPS2=y
 CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
 CONFIG_GAMEPORT=m
 CONFIG_GAMEPORT_NS558=m
 CONFIG_GAMEPORT_L4=m
@@ -2136,7 +2471,6 @@ CONFIG_ROCKETPORT=m
 CONFIG_CYCLADES=m
 # CONFIG_CYZ_INTR is not set
 # CONFIG_DIGIEPCA is not set
-# CONFIG_ESPSERIAL is not set
 # CONFIG_MOXA_INTELLIO is not set
 # CONFIG_MOXA_SMARTIO is not set
 # CONFIG_ISI is not set
@@ -2146,8 +2480,6 @@ CONFIG_SYNCLINKMP=m
 CONFIG_N_HDLC=m
 # CONFIG_RISCOM8 is not set
 # CONFIG_SPECIALIX is not set
-# CONFIG_SX is not set
-# CONFIG_RIO is not set
 # CONFIG_STALDRV is not set
 CONFIG_NOZOMI=m
 
@@ -2160,17 +2492,21 @@ CONFIG_FIX_EARLYCON_MEM=y
 CONFIG_SERIAL_8250_PCI=y
 CONFIG_SERIAL_8250_PNP=y
 CONFIG_SERIAL_8250_CS=m
-CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_NR_UARTS=32
 CONFIG_SERIAL_8250_RUNTIME_UARTS=4
 # CONFIG_SERIAL_8250_EXTENDED is not set
 
 #
 # Non-8250 serial port support
 #
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_UARTLITE=m
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_TIMBERDALE=m
 CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
 # CONFIG_LEGACY_PTYS is not set
 CONFIG_PRINTER=m
 # CONFIG_LP_CONSOLE is not set
@@ -2184,6 +2520,7 @@ CONFIG_IPMI_SI=m
 CONFIG_IPMI_WATCHDOG=m
 CONFIG_IPMI_POWEROFF=m
 CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
 CONFIG_HW_RANDOM_INTEL=m
 CONFIG_HW_RANDOM_AMD=m
 CONFIG_HW_RANDOM_GEODE=m
@@ -2207,7 +2544,8 @@ CONFIG_PC8736x_GPIO=m
 CONFIG_NSC_GPIO=m
 CONFIG_CS5535_GPIO=m
 # CONFIG_RAW_DRIVER is not set
-# CONFIG_HPET is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
 CONFIG_HANGCHECK_TIMER=m
 CONFIG_TCG_TPM=m
 CONFIG_TCG_TIS=m
@@ -2218,8 +2556,10 @@ CONFIG_TELCLOCK=m
 CONFIG_DEVPORT=y
 CONFIG_I2C=m
 CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
 CONFIG_I2C_CHARDEV=m
 CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
 CONFIG_I2C_ALGOBIT=m
 CONFIG_I2C_ALGOPCA=m
 
@@ -2248,10 +2588,17 @@ CONFIG_I2C_VIA=m
 CONFIG_I2C_VIAPRO=m
 
 #
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
+CONFIG_I2C_GPIO=m
 CONFIG_I2C_OCORES=m
 CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
 
 #
 # External I2C/SMBus adapter drivers
@@ -2262,34 +2609,15 @@ CONFIG_I2C_TAOS_EVM=m
 CONFIG_I2C_TINY_USB=m
 
 #
-# Graphics adapter I2C/DDC channel drivers
-#
-CONFIG_I2C_VOODOO3=m
-
-#
 # Other I2C/SMBus bus drivers
 #
 CONFIG_I2C_PCA_ISA=m
 CONFIG_I2C_PCA_PLATFORM=m
 # CONFIG_I2C_STUB is not set
 CONFIG_SCx200_ACB=m
-
-#
-# Miscellaneous I2C Chip support
-#
-CONFIG_DS1682=m
-CONFIG_AT24=m
-CONFIG_SENSORS_EEPROM=m
-CONFIG_SENSORS_PCF8574=m
-CONFIG_PCF8575=m
-CONFIG_SENSORS_PCA9539=m
-CONFIG_SENSORS_PCF8591=m
-CONFIG_SENSORS_MAX6875=m
-CONFIG_SENSORS_TSL2550=m
 # CONFIG_I2C_DEBUG_CORE is not set
 # CONFIG_I2C_DEBUG_ALGO is not set
 # CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
 CONFIG_SPI=y
 # CONFIG_SPI_DEBUG is not set
 CONFIG_SPI_MASTER=y
@@ -2299,16 +2627,69 @@ CONFIG_SPI_MASTER=y
 #
 CONFIG_SPI_BITBANG=m
 CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
 CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_XILINX=m
+CONFIG_SPI_XILINX_PLTFM=m
+# CONFIG_SPI_DESIGNWARE is not set
 
 #
 # SPI Protocol Masters
 #
-CONFIG_SPI_AT25=m
 CONFIG_SPI_SPIDEV=m
 CONFIG_SPI_TLE62X0=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
 CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-# CONFIG_GPIOLIB is not set
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO expanders:
+#
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_WM8994=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_LANGWELL=y
+CONFIG_GPIO_TIMBERDALE=y
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_MC33880=m
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
 CONFIG_W1=m
 CONFIG_W1_CON=y
 
@@ -2318,12 +2699,14 @@ CONFIG_W1_CON=y
 CONFIG_W1_MASTER_MATROX=m
 CONFIG_W1_MASTER_DS2490=m
 CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_GPIO=m
 
 #
 # 1-wire Slaves
 #
 CONFIG_W1_SLAVE_THERM=m
 CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2431=m
 CONFIG_W1_SLAVE_DS2433=m
 # CONFIG_W1_SLAVE_DS2433_CRC is not set
 CONFIG_W1_SLAVE_DS2760=m
@@ -2332,10 +2715,18 @@ CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 CONFIG_PDA_POWER=m
 CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2782=m
 CONFIG_BATTERY_OLPC=m
 CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_CHARGER_PCF50633=m
 CONFIG_HWMON=y
 CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
 CONFIG_SENSORS_ABITUGURU=m
 CONFIG_SENSORS_ABITUGURU3=m
 CONFIG_SENSORS_AD7414=m
@@ -2347,10 +2738,13 @@ CONFIG_SENSORS_ADM1026=m
 CONFIG_SENSORS_ADM1029=m
 CONFIG_SENSORS_ADM1031=m
 CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
 CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7473=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
 CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
 CONFIG_SENSORS_ASB100=m
 CONFIG_SENSORS_ATXP1=m
 CONFIG_SENSORS_DS1621=m
@@ -2358,9 +2752,8 @@ CONFIG_SENSORS_I5K_AMB=m
 CONFIG_SENSORS_F71805F=m
 CONFIG_SENSORS_F71882FG=m
 CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_FSCHER=m
-CONFIG_SENSORS_FSCPOS=m
 CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
 CONFIG_SENSORS_GL518SM=m
 CONFIG_SENSORS_GL520SM=m
 CONFIG_SENSORS_CORETEMP=m
@@ -2369,6 +2762,7 @@ CONFIG_SENSORS_IBMPEX=m
 CONFIG_SENSORS_IT87=m
 CONFIG_SENSORS_LM63=m
 CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
 CONFIG_SENSORS_LM75=m
 CONFIG_SENSORS_LM77=m
 CONFIG_SENSORS_LM78=m
@@ -2379,18 +2773,27 @@ CONFIG_SENSORS_LM87=m
 CONFIG_SENSORS_LM90=m
 CONFIG_SENSORS_LM92=m
 CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LM95241=m
 CONFIG_SENSORS_MAX1111=m
 CONFIG_SENSORS_MAX1619=m
 CONFIG_SENSORS_MAX6650=m
 CONFIG_SENSORS_PC87360=m
 CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_SHT15=m
 CONFIG_SENSORS_SIS5595=m
 CONFIG_SENSORS_DME1737=m
 CONFIG_SENSORS_SMSC47M1=m
 CONFIG_SENSORS_SMSC47M192=m
 CONFIG_SENSORS_SMSC47B397=m
 CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
 CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
 CONFIG_SENSORS_VIA686A=m
 CONFIG_SENSORS_VT1211=m
 CONFIG_SENSORS_VT8231=m
@@ -2403,9 +2806,15 @@ CONFIG_SENSORS_W83L786NG=m
 CONFIG_SENSORS_W83627HF=m
 CONFIG_SENSORS_W83627EHF=m
 CONFIG_SENSORS_HDAPS=m
-CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_SENSORS_LIS3_I2C=m
 CONFIG_SENSORS_APPLESMC=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
+CONFIG_SENSORS_MC13783_ADC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ATK0110=m
+CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_THERMAL=y
 CONFIG_THERMAL_HWMON=y
 CONFIG_WATCHDOG=y
@@ -2419,7 +2828,9 @@ CONFIG_ACQUIRE_WDT=m
 CONFIG_ADVANTECH_WDT=m
 CONFIG_ALIM1535_WDT=m
 CONFIG_ALIM7101_WDT=m
+CONFIG_GEODE_WDT=m
 CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
 CONFIG_EUROTECH_WDT=m
 CONFIG_IB700_WDT=m
 CONFIG_IBMASR=m
@@ -2436,6 +2847,7 @@ CONFIG_60XX_WDT=m
 CONFIG_SBC8360_WDT=m
 CONFIG_SBC7240_WDT=m
 CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
 CONFIG_SMSC37B787_WDT=m
 CONFIG_W83627HF_WDT=m
 CONFIG_W83697HF_WDT=m
@@ -2451,14 +2863,12 @@ CONFIG_SBC_EPX_C3_WATCHDOG=m
 CONFIG_PCWATCHDOG=m
 CONFIG_MIXCOMWD=m
 CONFIG_WDT=m
-CONFIG_WDT_501=y
 
 #
 # PCI-based Watchdog Cards
 #
 CONFIG_PCIPCWATCHDOG=m
 CONFIG_WDTPCI=m
-CONFIG_WDT_501_PCI=y
 
 #
 # USB-based Watchdog Cards
@@ -2469,11 +2879,16 @@ CONFIG_SSB_POSSIBLE=y
 #
 # Sonics Silicon Backplane
 #
-CONFIG_SSB=y
+CONFIG_SSB=m
 CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
 CONFIG_SSB_PCIHOST_POSSIBLE=y
 CONFIG_SSB_PCIHOST=y
 CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
 # CONFIG_SSB_DEBUG is not set
 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
 CONFIG_SSB_DRIVER_PCICORE=y
@@ -2481,18 +2896,25 @@ CONFIG_SSB_DRIVER_PCICORE=y
 #
 # Multifunction device drivers
 #
-# CONFIG_MFD_CORE is not set
+CONFIG_MFD_CORE=m
 CONFIG_MFD_SM501=m
-# CONFIG_HTC_PASIC3 is not set
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS65010=m
 # CONFIG_MFD_TMIO is not set
 CONFIG_MFD_WM8400=m
-CONFIG_MFD_WM8350=m
-CONFIG_MFD_WM8350_I2C=m
+CONFIG_MFD_WM8994=m
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_MC13783=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_EZX_PCAP=y
+CONFIG_AB4500_CORE=m
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
 # CONFIG_REGULATOR is not set
-
-#
-# Multimedia devices
-#
+CONFIG_MEDIA_SUPPORT=m
 
 #
 # Multimedia core support
@@ -2509,9 +2931,11 @@ CONFIG_VIDEO_MEDIA=m
 #
 CONFIG_VIDEO_SAA7146=m
 CONFIG_VIDEO_SAA7146_VV=m
-# CONFIG_MEDIA_ATTACH is not set
+CONFIG_IR_CORE=m
+CONFIG_VIDEO_IR=m
+CONFIG_MEDIA_ATTACH=y
 CONFIG_MEDIA_TUNER=m
-# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
 CONFIG_MEDIA_TUNER_SIMPLE=m
 CONFIG_MEDIA_TUNER_TDA8290=m
 CONFIG_MEDIA_TUNER_TDA827X=m
@@ -2528,15 +2952,15 @@ CONFIG_MEDIA_TUNER_XC2028=m
 CONFIG_MEDIA_TUNER_XC5000=m
 CONFIG_MEDIA_TUNER_MXL5005S=m
 CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
 CONFIG_VIDEO_V4L2=m
 CONFIG_VIDEO_V4L1=m
 CONFIG_VIDEOBUF_GEN=m
 CONFIG_VIDEOBUF_DMA_SG=m
 CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF_DMA_CONTIG=m
 CONFIG_VIDEOBUF_DVB=m
 CONFIG_VIDEO_BTCX=m
-CONFIG_VIDEO_IR=m
 CONFIG_VIDEO_TVEEPROM=m
 CONFIG_VIDEO_TUNER=m
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
@@ -2568,21 +2992,28 @@ CONFIG_VIDEO_WM8739=m
 CONFIG_VIDEO_VP27SMPX=m
 
 #
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
 # Video decoders
 #
+CONFIG_VIDEO_ADV7180=m
 CONFIG_VIDEO_BT819=m
 CONFIG_VIDEO_BT856=m
 CONFIG_VIDEO_BT866=m
 CONFIG_VIDEO_KS0127=m
 CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9V011=m
 CONFIG_VIDEO_TCM825X=m
 CONFIG_VIDEO_SAA7110=m
-CONFIG_VIDEO_SAA7111=m
-CONFIG_VIDEO_SAA7114=m
 CONFIG_VIDEO_SAA711X=m
 CONFIG_VIDEO_SAA717X=m
 CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
 CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
 CONFIG_VIDEO_VPX3220=m
 
 #
@@ -2602,6 +3033,8 @@ CONFIG_VIDEO_SAA7127=m
 CONFIG_VIDEO_SAA7185=m
 CONFIG_VIDEO_ADV7170=m
 CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_ADV7343=m
 
 #
 # Video improvement chips
@@ -2611,7 +3044,6 @@ CONFIG_VIDEO_UPD64083=m
 CONFIG_VIDEO_VIVI=m
 CONFIG_VIDEO_BT848=m
 CONFIG_VIDEO_BT848_DVB=y
-CONFIG_VIDEO_SAA6588=m
 CONFIG_VIDEO_PMS=m
 CONFIG_VIDEO_BWQCAM=m
 CONFIG_VIDEO_CQCAM=m
@@ -2642,31 +3074,51 @@ CONFIG_VIDEO_CX88=m
 CONFIG_VIDEO_CX88_ALSA=m
 CONFIG_VIDEO_CX88_BLACKBIRD=m
 CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
 CONFIG_VIDEO_CX88_VP3054=m
 CONFIG_VIDEO_CX23885=m
 CONFIG_VIDEO_AU0828=m
 CONFIG_VIDEO_IVTV=m
 CONFIG_VIDEO_FB_IVTV=m
 CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_SAA7164=m
 CONFIG_VIDEO_CAFE_CCIC=m
 CONFIG_SOC_CAMERA=m
 CONFIG_SOC_CAMERA_MT9M001=m
 CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
 CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
 CONFIG_SOC_CAMERA_PLATFORM=m
-CONFIG_VIDEO_SH_MOBILE_CEU=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
 CONFIG_V4L_USB_DRIVERS=y
 CONFIG_USB_VIDEO_CLASS=m
 CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
 CONFIG_USB_GSPCA=m
 CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
 CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
 CONFIG_USB_GSPCA_ETOMS=m
 CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
 CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
 CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
 CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
 CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SN9C20X_EVDEV=y
 CONFIG_USB_GSPCA_SONIXB=m
 CONFIG_USB_GSPCA_SONIXJ=m
 CONFIG_USB_GSPCA_SPCA500=m
@@ -2675,7 +3127,10 @@ CONFIG_USB_GSPCA_SPCA505=m
 CONFIG_USB_GSPCA_SPCA506=m
 CONFIG_USB_GSPCA_SPCA508=m
 CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
 CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
 CONFIG_USB_GSPCA_SUNPLUS=m
 CONFIG_USB_GSPCA_T613=m
 CONFIG_USB_GSPCA_TV8532=m
@@ -2685,9 +3140,14 @@ CONFIG_VIDEO_PVRUSB2=m
 CONFIG_VIDEO_PVRUSB2_SYSFS=y
 CONFIG_VIDEO_PVRUSB2_DVB=y
 # CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
 CONFIG_VIDEO_EM28XX=m
 CONFIG_VIDEO_EM28XX_ALSA=m
 CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
 CONFIG_VIDEO_USBVISION=m
 CONFIG_VIDEO_USBVIDEO=m
 CONFIG_USB_VICAM=m
@@ -2704,6 +3164,7 @@ CONFIG_USB_STV680=m
 CONFIG_USB_ZC0301=m
 CONFIG_USB_PWC=m
 # CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
 CONFIG_USB_ZR364XX=m
 CONFIG_USB_STKWEBCAM=m
 CONFIG_USB_S2255=m
@@ -2716,16 +3177,26 @@ CONFIG_RADIO_GEMTEK=m
 CONFIG_RADIO_GEMTEK_PCI=m
 CONFIG_RADIO_MAXIRADIO=m
 CONFIG_RADIO_MAESTRO=m
+CONFIG_RADIO_MIROPCM20=m
 CONFIG_RADIO_SF16FMI=m
 CONFIG_RADIO_SF16FMR2=m
 CONFIG_RADIO_TERRATEC=m
 CONFIG_RADIO_TRUST=m
 CONFIG_RADIO_TYPHOON=m
-# CONFIG_RADIO_TYPHOON_PROC_FS is not set
 CONFIG_RADIO_ZOLTRIX=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
 CONFIG_USB_DSBR=m
+CONFIG_RADIO_SI470X=y
 CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
 CONFIG_USB_MR800=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_TIMBERDALE=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
 CONFIG_DVB_CAPTURE_DRIVERS=y
 
 #
@@ -2770,10 +3241,19 @@ CONFIG_DVB_USB_CINERGY_T2=m
 CONFIG_DVB_USB_ANYSEE=m
 CONFIG_DVB_USB_DTV5100=m
 CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6027=m
 CONFIG_DVB_TTUSB_BUDGET=m
 CONFIG_DVB_TTUSB_DEC=m
-CONFIG_DVB_SIANO_SMS1XXX=m
-CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS=y
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
 
 #
 # Supported FlexCopII (B2C2) Adapters
@@ -2797,43 +3277,63 @@ CONFIG_DVB_PLUTO2=m
 # Supported SDMC DM1105 Adapters
 #
 CONFIG_DVB_DM1105=m
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_FIREWIRE=y
+# CONFIG_DVB_FIREDTV_IEEE1394 is not set
+CONFIG_DVB_FIREDTV_INPUT=y
 
 #
-# Supported DVB Frontends
+# Supported Earthsoft PT1 Adapters
 #
+CONFIG_DVB_PT1=m
 
 #
-# Customise DVB Frontends
+# Supported Mantis Adapters
 #
-# CONFIG_DVB_FE_CUSTOMISE is not set
+CONFIG_MANTIS_CORE=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_HOPPER=m
 
 #
-# DVB-S (satellite) frontends
+# Supported nGene Adapters
 #
+CONFIG_DVB_NGENE=m
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
 CONFIG_DVB_CX24110=m
 CONFIG_DVB_CX24123=m
 CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
 CONFIG_DVB_S5H1420=m
 CONFIG_DVB_STV0288=m
 CONFIG_DVB_STB6000=m
 CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
 CONFIG_DVB_TDA8083=m
 CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
 CONFIG_DVB_VES1X93=m
 CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
 CONFIG_DVB_TDA826X=m
 CONFIG_DVB_TUA6100=m
 CONFIG_DVB_CX24116=m
 CONFIG_DVB_SI21XX=m
-
-#
-# DVB-T (terrestrial) frontends
-#
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_MB86A16=m
 CONFIG_DVB_SP8870=m
 CONFIG_DVB_SP887X=m
 CONFIG_DVB_CX22700=m
 CONFIG_DVB_CX22702=m
-# CONFIG_DVB_DRX397XD is not set
 CONFIG_DVB_L64781=m
 CONFIG_DVB_TDA1004X=m
 CONFIG_DVB_NXT6000=m
@@ -2844,46 +3344,30 @@ CONFIG_DVB_DIB3000MC=m
 CONFIG_DVB_DIB7000M=m
 CONFIG_DVB_DIB7000P=m
 CONFIG_DVB_TDA10048=m
-
-#
-# DVB-C (cable) frontends
-#
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
 CONFIG_DVB_VES1820=m
 CONFIG_DVB_TDA10021=m
 CONFIG_DVB_TDA10023=m
 CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
 CONFIG_DVB_NXT200X=m
 CONFIG_DVB_OR51211=m
 CONFIG_DVB_OR51132=m
 CONFIG_DVB_BCM3510=m
 CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
 CONFIG_DVB_S5H1409=m
 CONFIG_DVB_AU8522=m
 CONFIG_DVB_S5H1411=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
+CONFIG_DVB_DIB8000=m
 CONFIG_DVB_PLL=m
 CONFIG_DVB_TUNER_DIB0070=m
-
-#
-# SEC control devices for DVB-S
-#
 CONFIG_DVB_LNBP21=m
 CONFIG_DVB_ISL6405=m
 CONFIG_DVB_ISL6421=m
-CONFIG_DVB_LGS8GL5=m
-
-#
-# Tools to develop new frontends
-#
-# CONFIG_DVB_DUMMY_FE is not set
-CONFIG_DVB_AF9013=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
 CONFIG_DAB=y
 CONFIG_USB_DABUSB=m
 
@@ -2901,13 +3385,20 @@ CONFIG_AGP_SIS=m
 CONFIG_AGP_SWORKS=m
 CONFIG_AGP_VIA=m
 CONFIG_AGP_EFFICEON=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
 CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_TTM=m
 CONFIG_DRM_TDFX=m
 CONFIG_DRM_R128=m
 CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
 CONFIG_DRM_I810=m
 CONFIG_DRM_I830=m
 CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
 CONFIG_DRM_MGA=m
 CONFIG_DRM_SIS=m
 CONFIG_DRM_VIA=m
@@ -2927,6 +3418,7 @@ CONFIG_FB_SYS_COPYAREA=m
 CONFIG_FB_SYS_IMAGEBLIT=m
 # CONFIG_FB_FOREIGN_ENDIAN is not set
 CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_DEFERRED_IO=y
 # CONFIG_FB_SVGALIB is not set
 # CONFIG_FB_MACMODES is not set
 CONFIG_FB_BACKLIGHT=y
@@ -2962,9 +3454,6 @@ CONFIG_FB_I810=m
 # CONFIG_FB_I810_GTF is not set
 CONFIG_FB_LE80578=m
 CONFIG_FB_CARILLO_RANCH=m
-CONFIG_FB_INTEL=m
-# CONFIG_FB_INTEL_DEBUG is not set
-CONFIG_FB_INTEL_I2C=y
 # CONFIG_FB_MATROX is not set
 CONFIG_FB_RADEON=m
 CONFIG_FB_RADEON_I2C=y
@@ -2989,28 +3478,31 @@ CONFIG_FB_NEOMAGIC=m
 CONFIG_FB_KYRO=m
 CONFIG_FB_3DFX=m
 CONFIG_FB_3DFX_ACCEL=y
+CONFIG_FB_3DFX_I2C=y
 CONFIG_FB_VOODOO1=m
 # CONFIG_FB_VT8623 is not set
-CONFIG_FB_CYBLA=m
 CONFIG_FB_TRIDENT=m
-CONFIG_FB_TRIDENT_ACCEL=y
 # CONFIG_FB_ARK is not set
 # CONFIG_FB_PM3 is not set
 # CONFIG_FB_CARMINE is not set
 # CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
 # CONFIG_FB_SM501 is not set
 # CONFIG_FB_VIRTUAL is not set
 # CONFIG_FB_METRONOME is not set
 # CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
 CONFIG_LCD_LTV350QV=m
 CONFIG_LCD_ILI9320=m
 CONFIG_LCD_TDO24M=m
 CONFIG_LCD_VGG2432A4=m
 CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_CORGI=m
+CONFIG_BACKLIGHT_GENERIC=m
 CONFIG_BACKLIGHT_PROGEAR=m
 CONFIG_BACKLIGHT_CARILLO_RANCH=m
 CONFIG_BACKLIGHT_MBP_NVIDIA=m
@@ -3050,31 +3542,41 @@ CONFIG_FONT_8x16=y
 # CONFIG_LOGO is not set
 CONFIG_SOUND=m
 CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
 CONFIG_SND=m
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
 CONFIG_SND_HWDEP=m
 CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
 CONFIG_SND_SEQUENCER=m
-# CONFIG_SND_SEQ_DUMMY is not set
+CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_OSSEMUL=y
 CONFIG_SND_MIXER_OSS=m
 CONFIG_SND_PCM_OSS=m
 CONFIG_SND_PCM_OSS_PLUGINS=y
 CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
 CONFIG_SND_DYNAMIC_MINORS=y
 CONFIG_SND_SUPPORT_OLD_API=y
 CONFIG_SND_VERBOSE_PROCFS=y
 # CONFIG_SND_VERBOSE_PRINTK is not set
 # CONFIG_SND_DEBUG is not set
 CONFIG_SND_VMASTER=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OPL4_LIB_SEQ=m
+CONFIG_SND_SBAWE_SEQ=m
+CONFIG_SND_EMU10K1_SEQ=m
 CONFIG_SND_MPU401_UART=m
 CONFIG_SND_OPL3_LIB=m
 CONFIG_SND_OPL4_LIB=m
 CONFIG_SND_VX_LIB=m
 CONFIG_SND_AC97_CODEC=m
 CONFIG_SND_DRIVERS=y
-CONFIG_SND_PCSP=m
+# CONFIG_SND_PCSP is not set
 CONFIG_SND_DUMMY=m
 CONFIG_SND_VIRMIDI=m
 CONFIG_SND_MTPAV=m
@@ -3096,9 +3598,7 @@ CONFIG_SND_ALS100=m
 CONFIG_SND_AZT2320=m
 CONFIG_SND_CMI8330=m
 CONFIG_SND_CS4231=m
-CONFIG_SND_CS4232=m
 CONFIG_SND_CS4236=m
-CONFIG_SND_DT019X=m
 CONFIG_SND_ES968=m
 CONFIG_SND_ES1688=m
 CONFIG_SND_ES18XX=m
@@ -3108,6 +3608,7 @@ CONFIG_SND_GUSEXTREME=m
 CONFIG_SND_GUSMAX=m
 CONFIG_SND_INTERWAVE=m
 CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_JAZZ16=m
 CONFIG_SND_OPL3SA2=m
 CONFIG_SND_OPTI92X_AD1848=m
 CONFIG_SND_OPTI92X_CS4231=m
@@ -3120,7 +3621,8 @@ CONFIG_SND_SB16_CSP=y
 CONFIG_SND_SGALAXY=m
 CONFIG_SND_SSCAPE=m
 CONFIG_SND_WAVEFRONT=m
-CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL=y
+CONFIG_SND_MSND_PINNACLE=m
+CONFIG_SND_MSND_CLASSIC=m
 CONFIG_SND_PCI=y
 CONFIG_SND_AD1889=m
 CONFIG_SND_ALS300=m
@@ -3144,6 +3646,7 @@ CONFIG_SND_CS46XX=m
 CONFIG_SND_CS46XX_NEW_DSP=y
 CONFIG_SND_CS5530=m
 CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
 CONFIG_SND_DARLA20=m
 CONFIG_SND_GINA20=m
 CONFIG_SND_LAYLA20=m
@@ -3156,6 +3659,8 @@ CONFIG_SND_ECHO3G=m
 CONFIG_SND_INDIGO=m
 CONFIG_SND_INDIGOIO=m
 CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
 CONFIG_SND_EMU10K1=m
 CONFIG_SND_EMU10K1X=m
 CONFIG_SND_ENS1370=m
@@ -3167,14 +3672,22 @@ CONFIG_SND_FM801_TEA575X_BOOL=y
 CONFIG_SND_FM801_TEA575X=m
 CONFIG_SND_HDA_INTEL=m
 CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
 CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
 CONFIG_SND_HDA_CODEC_REALTEK=y
 CONFIG_SND_HDA_CODEC_ANALOG=y
 CONFIG_SND_HDA_CODEC_SIGMATEL=y
 CONFIG_SND_HDA_CODEC_VIA=y
 CONFIG_SND_HDA_CODEC_ATIHDMI=y
 CONFIG_SND_HDA_CODEC_NVHDMI=y
+CONFIG_SND_HDA_CODEC_INTELHDMI=y
+CONFIG_SND_HDA_ELD=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
 CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
 CONFIG_SND_HDA_CODEC_CMEDIA=y
 CONFIG_SND_HDA_CODEC_SI3054=y
 CONFIG_SND_HDA_GENERIC=y
@@ -3188,6 +3701,7 @@ CONFIG_SND_ICE1724=m
 CONFIG_SND_INTEL8X0=m
 CONFIG_SND_INTEL8X0M=m
 CONFIG_SND_KORG1212=m
+CONFIG_SND_LX6464ES=m
 CONFIG_SND_MAESTRO3=m
 CONFIG_SND_MIXART=m
 CONFIG_SND_NM256=m
@@ -3207,6 +3721,7 @@ CONFIG_SND_YMFPCI=m
 CONFIG_SND_SPI=y
 CONFIG_SND_USB=y
 CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
 CONFIG_SND_USB_USX2Y=m
 CONFIG_SND_USB_CAIAQ=m
 CONFIG_SND_USB_CAIAQ_INPUT=y
@@ -3215,12 +3730,12 @@ CONFIG_SND_PCMCIA=y
 CONFIG_SND_VXPOCKET=m
 CONFIG_SND_PDAUDIOCF=m
 CONFIG_SND_SOC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
 # CONFIG_SND_SOC_ALL_CODECS is not set
 # CONFIG_SOUND_PRIME is not set
 CONFIG_AC97_BUS=m
 CONFIG_HID_SUPPORT=y
 CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
 CONFIG_HIDRAW=y
 
 #
@@ -3231,38 +3746,50 @@ CONFIG_HID_PID=y
 CONFIG_USB_HIDDEV=y
 
 #
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-
-#
 # Special HID drivers
 #
-# CONFIG_HID_COMPAT is not set
+CONFIG_HID_3M_PCT=m
 CONFIG_HID_A4TECH=m
 CONFIG_HID_APPLE=m
 CONFIG_HID_BELKIN=m
-CONFIG_HID_BRIGHT=m
 CONFIG_HID_CHERRY=m
 CONFIG_HID_CHICONY=m
 CONFIG_HID_CYPRESS=m
-CONFIG_HID_DELL=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
 CONFIG_HID_EZKEY=m
+CONFIG_HID_KYE=m
 CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
 CONFIG_HID_LOGITECH=m
 CONFIG_LOGITECH_FF=y
 CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_HID_MAGICMOUSE=m
 CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MOSART=m
 CONFIG_HID_MONTEREY=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
 CONFIG_HID_PANTHERLORD=m
 CONFIG_PANTHERLORD_FF=y
 CONFIG_HID_PETALYNX=m
+CONFIG_HID_QUANTA=m
 CONFIG_HID_SAMSUNG=m
 CONFIG_HID_SONY=m
+CONFIG_HID_STANTUM=m
 CONFIG_HID_SUNPLUS=m
-CONFIG_THRUSTMASTER_FF=m
-CONFIG_ZEROPLUS_FF=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
 CONFIG_USB_SUPPORT=y
 CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
@@ -3275,11 +3802,11 @@ CONFIG_USB=m
 # Miscellaneous USB options
 #
 CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
+# CONFIG_USB_DEVICE_CLASS is not set
 CONFIG_USB_DYNAMIC_MINORS=y
 CONFIG_USB_SUSPEND=y
 # CONFIG_USB_OTG is not set
-CONFIG_USB_MON=y
+CONFIG_USB_MON=m
 CONFIG_USB_WUSB=m
 CONFIG_USB_WUSB_CBAF=m
 # CONFIG_USB_WUSB_CBAF_DEBUG is not set
@@ -3288,11 +3815,15 @@ CONFIG_USB_WUSB_CBAF=m
 # USB Host Controller Drivers
 #
 CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
 CONFIG_USB_EHCI_HCD=m
 CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_OXU210HP_HCD=m
 CONFIG_USB_ISP116X_HCD=m
 CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
 CONFIG_USB_OHCI_HCD=m
 # CONFIG_USB_OHCI_HCD_SSB is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
@@ -3316,26 +3847,25 @@ CONFIG_USB_WDM=m
 CONFIG_USB_TMC=m
 
 #
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
 #
 
 #
-# see USB_STORAGE Help for more information
+# also be needed; see USB_STORAGE Help for more info
 #
 CONFIG_USB_STORAGE=m
 # CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_DATAFAB=y
-CONFIG_USB_STORAGE_FREECOM=y
-CONFIG_USB_STORAGE_ISD200=y
-CONFIG_USB_STORAGE_DPCM=y
-CONFIG_USB_STORAGE_USBAT=y
-CONFIG_USB_STORAGE_SDDR09=y
-CONFIG_USB_STORAGE_SDDR55=y
-CONFIG_USB_STORAGE_JUMPSHOT=y
-CONFIG_USB_STORAGE_ALAUDA=y
-CONFIG_USB_STORAGE_ONETOUCH=y
-CONFIG_USB_STORAGE_KARMA=y
-CONFIG_USB_STORAGE_CYPRESS_ATACB=y
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
 # CONFIG_USB_LIBUSUAL is not set
 
 #
@@ -3357,7 +3887,7 @@ CONFIG_USB_SERIAL_BELKIN=m
 CONFIG_USB_SERIAL_CH341=m
 CONFIG_USB_SERIAL_WHITEHEAT=m
 CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP2101=m
+CONFIG_USB_SERIAL_CP210X=m
 CONFIG_USB_SERIAL_CYPRESS_M8=m
 CONFIG_USB_SERIAL_EMPEG=m
 CONFIG_USB_SERIAL_FTDI_SIO=m
@@ -3393,16 +3923,22 @@ CONFIG_USB_SERIAL_MOTOROLA=m
 CONFIG_USB_SERIAL_NAVMAN=m
 CONFIG_USB_SERIAL_PL2303=m
 CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
 CONFIG_USB_SERIAL_SPCP8X5=m
 CONFIG_USB_SERIAL_HP4X=m
 CONFIG_USB_SERIAL_SAFE=m
 # CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
 CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
 CONFIG_USB_SERIAL_TI=m
 CONFIG_USB_SERIAL_CYBERJACK=m
 CONFIG_USB_SERIAL_XIRCOM=m
 CONFIG_USB_SERIAL_OPTION=m
 CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
 # CONFIG_USB_SERIAL_DEBUG is not set
 
 #
@@ -3415,14 +3951,9 @@ CONFIG_USB_SEVSEG=m
 CONFIG_USB_RIO500=m
 CONFIG_USB_LEGOTOWER=m
 CONFIG_USB_LCD=m
-CONFIG_USB_BERRY_CHARGE=m
 CONFIG_USB_LED=m
 CONFIG_USB_CYPRESS_CY7C63=m
 CONFIG_USB_CYTHERM=m
-CONFIG_USB_PHIDGET=m
-CONFIG_USB_PHIDGETKIT=m
-CONFIG_USB_PHIDGETMOTORCONTROL=m
-CONFIG_USB_PHIDGETSERVO=m
 CONFIG_USB_IDMOUSE=m
 CONFIG_USB_FTDI_ELAN=m
 CONFIG_USB_APPLEDISPLAY=m
@@ -3433,7 +3964,6 @@ CONFIG_USB_TRANCEVIBRATOR=m
 CONFIG_USB_IOWARRIOR=m
 CONFIG_USB_TEST=m
 CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_VST=m
 CONFIG_USB_ATM=m
 CONFIG_USB_SPEEDTOUCH=m
 CONFIG_USB_CXACRU=m
@@ -3451,26 +3981,43 @@ CONFIG_USB_GADGET_SELECTED=y
 # CONFIG_USB_GADGET_LH7A40X is not set
 # CONFIG_USB_GADGET_OMAP is not set
 # CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
 # CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
+# CONFIG_USB_GADGET_IMX is not set
 # CONFIG_USB_GADGET_S3C2410 is not set
 # CONFIG_USB_GADGET_M66592 is not set
 # CONFIG_USB_GADGET_AMD5536UDC is not set
 # CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
 CONFIG_USB_GADGET_NET2280=y
 CONFIG_USB_NET2280=m
 # CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
 # CONFIG_USB_GADGET_DUMMY_HCD is not set
 CONFIG_USB_GADGET_DUALSPEED=y
 # CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
 CONFIG_USB_ETH=m
 CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
 CONFIG_USB_GADGETFS=m
 CONFIG_USB_FILE_STORAGE=m
 # CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_MASS_STORAGE is not set
 CONFIG_USB_G_SERIAL=m
 CONFIG_USB_MIDI_GADGET=m
 CONFIG_USB_G_PRINTER=m
 # CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_MULTI is not set
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_NOP_USB_XCEIV=m
 CONFIG_UWB=m
 CONFIG_UWB_HWA=m
 CONFIG_UWB_WHCI=m
@@ -3494,10 +4041,13 @@ CONFIG_SDIO_UART=m
 #
 CONFIG_MMC_SDHCI=m
 CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_PLTFM=m
 CONFIG_MMC_WBSD=m
 CONFIG_MMC_TIFM_SD=m
 CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
 CONFIG_MEMSTICK=m
 # CONFIG_MEMSTICK_DEBUG is not set
 
@@ -3518,20 +4068,33 @@ CONFIG_LEDS_CLASS=m
 #
 # LED drivers
 #
+# CONFIG_LEDS_ALIX2 is not set
 CONFIG_LEDS_PCA9532=m
-CONFIG_LEDS_HP_DISK=m
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+CONFIG_LEDS_LP3944=m
 CONFIG_LEDS_CLEVO_MAIL=m
 CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_TRIGGERS=y
 
 #
 # LED Triggers
 #
-CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_IDE_DISK=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
 CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
 CONFIG_ACCESSIBILITY=y
 CONFIG_A11Y_BRAILLE_CONSOLE=y
 # CONFIG_INFINIBAND is not set
@@ -3541,6 +4104,7 @@ CONFIG_EDAC=y
 # Reporting subsystems
 #
 # CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
 CONFIG_EDAC_MM_EDAC=m
 CONFIG_EDAC_AMD76X=m
 CONFIG_EDAC_E7XXX=m
@@ -3548,7 +4112,9 @@ CONFIG_EDAC_E752X=m
 CONFIG_EDAC_I82875P=m
 CONFIG_EDAC_I82975X=m
 CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
 CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
 CONFIG_EDAC_I82860=m
 CONFIG_EDAC_R82600=m
 CONFIG_EDAC_I5000=m
@@ -3579,9 +4145,11 @@ CONFIG_RTC_DRV_PCF8563=m
 CONFIG_RTC_DRV_PCF8583=m
 CONFIG_RTC_DRV_M41T80=m
 CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
 CONFIG_RTC_DRV_S35390A=m
 CONFIG_RTC_DRV_FM3130=m
 CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
 
 #
 # SPI RTC drivers
@@ -3593,6 +4161,7 @@ CONFIG_RTC_DRV_MAX6902=m
 CONFIG_RTC_DRV_R9701=m
 CONFIG_RTC_DRV_RS5C348=m
 CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
 
 #
 # Platform RTC drivers
@@ -3606,18 +4175,24 @@ CONFIG_RTC_DRV_STK17TA8=m
 CONFIG_RTC_DRV_M48T86=m
 CONFIG_RTC_DRV_M48T35=m
 CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
 CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
 CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM8350=m
+CONFIG_RTC_DRV_PCF50633=m
 
 #
 # on-CPU RTC drivers
 #
+# CONFIG_RTC_DRV_PCAP is not set
+CONFIG_RTC_DRV_MC13783=m
 CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
 
 #
 # DMA Devices
 #
+CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y
 CONFIG_INTEL_IOATDMA=m
 CONFIG_DMA_ENGINE=y
 
@@ -3625,6 +4200,7 @@ CONFIG_DMA_ENGINE=y
 # DMA Clients
 #
 CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
 # CONFIG_DMATEST is not set
 CONFIG_DCA=m
 CONFIG_AUXDISPLAY=y
@@ -3637,25 +4213,137 @@ CONFIG_UIO=m
 CONFIG_UIO_CIF=m
 CONFIG_UIO_PDRV=m
 CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_SMX=m
+CONFIG_UIO_AEC=m
 CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+
+#
+# TI VLYNQ
+#
 CONFIG_STAGING=y
 # CONFIG_STAGING_EXCLUDE_BUILD is not set
 CONFIG_ET131X=m
 # CONFIG_ET131X_DEBUG is not set
 CONFIG_SLICOSS=m
-CONFIG_SXG=m
-CONFIG_ME4000=m
 CONFIG_VIDEO_GO7007=m
 CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
 CONFIG_USB_IP_COMMON=m
 CONFIG_USB_IP_VHCI_HCD=m
 CONFIG_USB_IP_HOST=m
+# CONFIG_USB_IP_DEBUG_ENABLE is not set
 CONFIG_W35UND=m
 CONFIG_PRISM2_USB=m
 CONFIG_ECHO=m
-CONFIG_USB_ATMEL=m
 CONFIG_POCH=m
+CONFIG_OTUS=m
+CONFIG_RT2860=m
+CONFIG_RT2870=m
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+CONFIG_R8187SE=m
+CONFIG_RTL8192SU=m
+CONFIG_RTL8192U=m
+CONFIG_RTL8192E=m
+# CONFIG_TRANZPORT is not set
+
+#
+# Qualcomm MSM Camera And Video
+#
+
+#
+# Camera Sensor Selection
+#
+CONFIG_INPUT_GPIO=m
+CONFIG_POHMELFS=m
+# CONFIG_POHMELFS_DEBUG is not set
+CONFIG_POHMELFS_CRYPTO=y
+CONFIG_IDE_PHISON=m
+CONFIG_LINE6_USB=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_FB_UDL=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_BLOCK=m
+CONFIG_HYPERV_NET=m
+# CONFIG_VME_BUS is not set
+
+#
+# RAR Register Driver
+#
+# CONFIG_RAR_REGISTER is not set
+# CONFIG_IIO is not set
+CONFIG_RAMZSWAP=m
+CONFIG_RAMZSWAP_STATS=y
+# CONFIG_BATMAN_ADV is not set
+CONFIG_SAMSUNG_LAPTOP=m
+# CONFIG_STRIP is not set
+CONFIG_ARLAN=m
+CONFIG_WAVELAN=m
+CONFIG_PCMCIA_WAVELAN=m
+CONFIG_PCMCIA_NETWAVE=m
+CONFIG_FB_SM7XX=m
+CONFIG_DT3155=m
+CONFIG_CRYSTALHD=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_TC1100_WMI=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_ACPI_ASUS=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
 
 #
 # Firmware Drivers
@@ -3678,14 +4366,15 @@ CONFIG_EXT2_FS_POSIX_ACL=y
 CONFIG_EXT2_FS_SECURITY=y
 # CONFIG_EXT2_FS_XIP is not set
 CONFIG_EXT3_FS=m
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
 CONFIG_EXT3_FS_XATTR=y
 CONFIG_EXT3_FS_POSIX_ACL=y
 CONFIG_EXT3_FS_SECURITY=y
 CONFIG_EXT4_FS=m
-CONFIG_EXT4DEV_COMPAT=y
 CONFIG_EXT4_FS_XATTR=y
 CONFIG_EXT4_FS_POSIX_ACL=y
 CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
 CONFIG_JBD=m
 # CONFIG_JBD_DEBUG is not set
 CONFIG_JBD2=m
@@ -3693,7 +4382,7 @@ CONFIG_JBD2=m
 CONFIG_FS_MBCACHE=m
 CONFIG_REISERFS_FS=m
 # CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_PROC_INFO=y
 CONFIG_REISERFS_FS_XATTR=y
 CONFIG_REISERFS_FS_POSIX_ACL=y
 CONFIG_REISERFS_FS_SECURITY=y
@@ -3701,38 +4390,56 @@ CONFIG_JFS_FS=m
 CONFIG_JFS_POSIX_ACL=y
 CONFIG_JFS_SECURITY=y
 # CONFIG_JFS_DEBUG is not set
-# CONFIG_JFS_STATISTICS is not set
+CONFIG_JFS_STATISTICS=y
 CONFIG_FS_POSIX_ACL=y
-CONFIG_FILE_LOCKING=y
 CONFIG_XFS_FS=m
 CONFIG_XFS_QUOTA=y
 CONFIG_XFS_POSIX_ACL=y
 CONFIG_XFS_RT=y
 # CONFIG_XFS_DEBUG is not set
 CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
 CONFIG_OCFS2_FS=m
 CONFIG_OCFS2_FS_O2CB=m
 CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
 CONFIG_OCFS2_FS_STATS=y
 # CONFIG_OCFS2_DEBUG_MASKLOG is not set
 # CONFIG_OCFS2_DEBUG_FS is not set
-# CONFIG_OCFS2_COMPAT_JBD is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
 CONFIG_DNOTIFY=y
 CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
 CONFIG_QUOTA=y
 CONFIG_QUOTA_NETLINK_INTERFACE=y
 # CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
 CONFIG_QFMT_V1=m
 CONFIG_QFMT_V2=m
 CONFIG_QUOTACTL=y
 # CONFIG_AUTOFS_FS is not set
 CONFIG_AUTOFS4_FS=m
 CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
 CONFIG_GENERIC_ACL=y
 
 #
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
 # CD-ROM/DVD Filesystems
 #
 CONFIG_ISO9660_FS=m
@@ -3766,20 +4473,10 @@ CONFIG_TMPFS_POSIX_ACL=y
 # CONFIG_HUGETLBFS is not set
 # CONFIG_HUGETLB_PAGE is not set
 CONFIG_CONFIGFS_FS=m
-
-#
-# Layered filesystems
-#
-CONFIG_ECRYPT_FS=m
-CONFIG_UNION_FS=m
-CONFIG_UNION_FS_XATTR=y
-# CONFIG_UNION_FS_DEBUG is not set
-
-#
-# Miscellaneous filesystems
-#
+CONFIG_MISC_FILESYSTEMS=y
 # CONFIG_ADFS_FS is not set
 CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
 CONFIG_HFS_FS=m
 CONFIG_HFSPLUS_FS=m
 CONFIG_BEFS_FS=m
@@ -3797,6 +4494,7 @@ CONFIG_JFFS2_ZLIB=y
 # CONFIG_JFFS2_LZO is not set
 CONFIG_JFFS2_RTIME=y
 # CONFIG_JFFS2_RUBIN is not set
+CONFIG_LOGFS=m
 CONFIG_CRAMFS=m
 CONFIG_SQUASHFS=m
 # CONFIG_SQUASHFS_EMBEDDED is not set
@@ -3811,29 +4509,33 @@ CONFIG_OMFS_FS=m
 CONFIG_UFS_FS=m
 # CONFIG_UFS_FS_WRITE is not set
 # CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
 CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
+CONFIG_NFS_FS=m
 CONFIG_NFS_V3=y
 CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
-CONFIG_ROOT_NFS=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
 CONFIG_NFSD=m
 CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
 CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
-CONFIG_LOCKD=y
+CONFIG_LOCKD=m
 CONFIG_LOCKD_V4=y
 CONFIG_EXPORTFS=m
-CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_ACL_SUPPORT=m
 CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
-# CONFIG_SUNRPC_REGISTER_V4 is not set
-CONFIG_RPCSEC_GSS_KRB5=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
 CONFIG_RPCSEC_GSS_SPKM3=m
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CEPH_FS=m
+# CONFIG_CEPH_FS_PRETTYDEBUG is not set
 CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
 # CONFIG_CIFS_STATS2 is not set
@@ -3842,6 +4544,7 @@ CONFIG_CIFS_WEAK_PW_HASH=y
 CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
 # CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
 # CONFIG_CIFS_EXPERIMENTAL is not set
 CONFIG_NCP_FS=m
 # CONFIG_NCPFS_PACKET_SIGNING is not set
@@ -3855,7 +4558,9 @@ CONFIG_NCPFS_NLS=y
 CONFIG_CODA_FS=m
 CONFIG_AFS_FS=m
 # CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
 CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
 
 #
 # Partition Types
@@ -3871,7 +4576,8 @@ CONFIG_BSD_DISKLABEL=y
 # CONFIG_MINIX_SUBPARTITION is not set
 CONFIG_SOLARIS_X86_PARTITION=y
 # CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
 # CONFIG_SGI_PARTITION is not set
 # CONFIG_ULTRIX_PARTITION is not set
 # CONFIG_SUN_PARTITION is not set
@@ -3930,6 +4636,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_FRAME_WARN=1024
 CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
 CONFIG_UNUSED_SYMBOLS=y
 CONFIG_DEBUG_FS=y
 # CONFIG_HEADERS_CHECK is not set
@@ -3938,12 +4645,16 @@ CONFIG_DEBUG_KERNEL=y
 CONFIG_DETECT_SOFTLOCKUP=y
 # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
 CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-# CONFIG_SCHED_DEBUG is not set
+CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
 # CONFIG_SCHEDSTATS is not set
 CONFIG_TIMER_STATS=y
 # CONFIG_DEBUG_OBJECTS is not set
 # CONFIG_SLUB_DEBUG_ON is not set
 # CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
 # CONFIG_DEBUG_PREEMPT is not set
 # CONFIG_DEBUG_RT_MUTEXES is not set
 # CONFIG_RT_MUTEX_TESTER is not set
@@ -3954,6 +4665,7 @@ CONFIG_DEBUG_MUTEXES=y
 # CONFIG_LOCK_STAT is not set
 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
 # CONFIG_DEBUG_KOBJECT is not set
 # CONFIG_DEBUG_HIGHMEM is not set
 CONFIG_DEBUG_BUGVERBOSE=y
@@ -3964,49 +4676,80 @@ CONFIG_DEBUG_BUGVERBOSE=y
 CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_LIST is not set
 # CONFIG_DEBUG_SG is not set
-# CONFIG_FRAME_POINTER is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
 # CONFIG_BOOT_PRINTK_DELAY is not set
 # CONFIG_RCU_TORTURE_TEST is not set
 # CONFIG_RCU_CPU_STALL_DETECTOR is not set
 # CONFIG_BACKTRACE_SELF_TEST is not set
 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_LKDTM=m
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_LATENCYTOP is not set
 CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
 CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
 CONFIG_HAVE_DYNAMIC_FTRACE=y
 CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-
-#
-# Tracers
-#
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
 # CONFIG_FUNCTION_TRACER is not set
 # CONFIG_IRQSOFF_TRACER is not set
 # CONFIG_PREEMPT_TRACER is not set
 # CONFIG_SYSPROF_TRACER is not set
 # CONFIG_SCHED_TRACER is not set
-# CONFIG_CONTEXT_SWITCH_TRACER is not set
+# CONFIG_FTRACE_SYSCALLS is not set
 # CONFIG_BOOT_TRACER is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_KSYM_TRACER is not set
 # CONFIG_STACK_TRACER is not set
+# CONFIG_KMEMTRACE is not set
+# CONFIG_WORKQUEUE_TRACER is not set
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
-# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
-# CONFIG_STRICT_DEVMEM is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_KMEMCHECK is not set
+CONFIG_STRICT_DEVMEM=y
 CONFIG_X86_VERBOSE_BOOTUP=y
 CONFIG_EARLY_PRINTK=y
 # CONFIG_EARLY_PRINTK_DBGP is not set
 # CONFIG_DEBUG_STACKOVERFLOW is not set
 # CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_PAGEALLOC is not set
 # CONFIG_DEBUG_PER_CPU_MAPS is not set
 # CONFIG_X86_PTDUMP is not set
 # CONFIG_DEBUG_RODATA is not set
 # CONFIG_DEBUG_NX_TEST is not set
 # CONFIG_4KSTACKS is not set
 CONFIG_DOUBLEFAULT=y
-# CONFIG_MMIOTRACE is not set
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
 CONFIG_IO_DELAY_TYPE_0X80=0
 CONFIG_IO_DELAY_TYPE_0XED=1
 CONFIG_IO_DELAY_TYPE_UDELAY=2
@@ -4019,6 +4762,7 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0
 # CONFIG_DEBUG_BOOT_PARAMS is not set
 # CONFIG_CPA_DEBUG is not set
 # CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
 
 #
 # Security options
@@ -4029,33 +4773,48 @@ CONFIG_SECURITY=y
 CONFIG_SECURITYFS=y
 CONFIG_SECURITY_NETWORK=y
 # CONFIG_SECURITY_NETWORK_XFRM is not set
-CONFIG_SECURITY_FILE_CAPABILITIES=y
-CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
+# CONFIG_SECURITY_PATH is not set
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
 # CONFIG_SECURITY_SMACK is not set
+# CONFIG_SECURITY_TOMOYO is not set
+# CONFIG_IMA is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
 CONFIG_XOR_BLOCKS=m
 CONFIG_ASYNC_CORE=m
 CONFIG_ASYNC_MEMCPY=m
 CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
 CONFIG_CRYPTO=y
 
 #
 # Crypto core or helper
 #
 CONFIG_CRYPTO_FIPS=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
 CONFIG_CRYPTO_ALGAPI2=y
 CONFIG_CRYPTO_AEAD=m
 CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER=m
 CONFIG_CRYPTO_BLKCIPHER2=y
 CONFIG_CRYPTO_HASH=m
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_RNG=m
 CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=y
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
 CONFIG_CRYPTO_GF128MUL=m
 CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
 CONFIG_CRYPTO_CRYPTD=m
 CONFIG_CRYPTO_AUTHENC=m
 CONFIG_CRYPTO_TEST=m
@@ -4070,7 +4829,7 @@ CONFIG_CRYPTO_SEQIV=m
 #
 # Block modes
 #
-CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CBC=m
 CONFIG_CRYPTO_CTR=m
 CONFIG_CRYPTO_CTS=m
 CONFIG_CRYPTO_ECB=m
@@ -4083,14 +4842,16 @@ CONFIG_CRYPTO_XTS=m
 #
 CONFIG_CRYPTO_HMAC=m
 CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
 
 #
 # Digest
 #
 CONFIG_CRYPTO_CRC32C=m
 CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
 CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MD5=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_RMD128=m
 CONFIG_CRYPTO_RMD160=m
@@ -4113,7 +4874,7 @@ CONFIG_CRYPTO_BLOWFISH=m
 CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_DES=m
 CONFIG_CRYPTO_FCRYPT=m
 CONFIG_CRYPTO_KHAZAD=m
 CONFIG_CRYPTO_SALSA20=m
@@ -4129,6 +4890,7 @@ CONFIG_CRYPTO_TWOFISH_586=m
 # Compression
 #
 CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
 CONFIG_CRYPTO_LZO=m
 
 #
@@ -4143,15 +4905,21 @@ CONFIG_CRYPTO_DEV_GEODE=m
 CONFIG_CRYPTO_DEV_HIFN_795X=m
 CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
 CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
 CONFIG_VIRTUALIZATION=y
 CONFIG_KVM=m
 CONFIG_KVM_INTEL=m
 CONFIG_KVM_AMD=m
+CONFIG_VHOST_NET=m
 CONFIG_LGUEST=m
 CONFIG_VIRTIO=y
 CONFIG_VIRTIO_RING=y
-# CONFIG_VIRTIO_PCI is not set
-# CONFIG_VIRTIO_BALLOON is not set
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_BINARY_PRINTF=y
 
 #
 # Library routines
@@ -4159,23 +4927,31 @@ CONFIG_VIRTIO_RING=y
 CONFIG_BITREVERSE=y
 CONFIG_GENERIC_FIND_FIRST_BIT=y
 CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_CRC_CCITT=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_CRC_CCITT=m
 CONFIG_CRC16=m
 CONFIG_CRC_T10DIF=m
 CONFIG_CRC_ITU_T=m
 CONFIG_CRC32=y
 CONFIG_CRC7=m
 CONFIG_LIBCRC32C=m
+CONFIG_AUDIT_GENERIC=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=m
 CONFIG_LZO_COMPRESS=m
-CONFIG_LZO_DECOMPRESS=m
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_LZO=y
 CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
 CONFIG_TEXTSEARCH_FSM=m
-CONFIG_PLIST=y
+CONFIG_BTREE=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
 CONFIG_CHECK_SIGNATURE=y
+CONFIG_NLATTR=y
+CONFIG_LRU_CACHE=m
diff --git a/abs/core-testing/kernel26/config.arch b/abs/core-testing/kernel26/config.arch
new file mode 100644
index 0000000..f0aff2c
--- /dev/null
+++ b/abs/core-testing/kernel26/config.arch
@@ -0,0 +1,4955 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.34
+# Mon May 17 05:55:59 2010
+#
+# CONFIG_64BIT is not set
+CONFIG_X86_32=y
+# CONFIG_X86_64 is not set
+CONFIG_X86=y
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+# CONFIG_GENERIC_TIME_VSYSCALL is not set
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# CONFIG_ZONE_DMA32 is not set
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+# CONFIG_AUDIT_ARCH is not set
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_EARLY_RES=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_X86_32_SMP=y
+CONFIG_X86_HT=y
+CONFIG_X86_TRAMPOLINE=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION="-ARCH"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_LZO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_TREE=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_TINY_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=19
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_NS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_MM_OWNER=y
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_RELAY=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+CONFIG_PERF_COUNTERS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_SLOW_WORK=y
+# CONFIG_SLOW_WORK_DEBUG is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_CFQ_GROUP_IOSCHED is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+# CONFIG_SPARSE_IRQ is not set
+CONFIG_X86_MPPARSE=y
+# CONFIG_X86_BIGSMP is not set
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_VMI=y
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_LGUEST_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
+# CONFIG_MEMTEST is not set
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+CONFIG_M686=y
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+# CONFIG_GENERIC_CPU is not set
+CONFIG_X86_GENERIC=y
+CONFIG_X86_CPU=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_XADD=y
+# CONFIG_X86_PPRO_FENCE is not set
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=5
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_CYRIX_32=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_CPU_SUP_TRANSMETA_32=y
+CONFIG_CPU_SUP_UMC_32=y
+# CONFIG_X86_DS is not set
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+# CONFIG_IOMMU_HELPER is not set
+CONFIG_IOMMU_API=y
+CONFIG_NR_CPUS=8
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_VM86=y
+CONFIG_TOSHIBA=m
+CONFIG_I8K=m
+CONFIG_X86_REBOOTFIXUPS=y
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+# CONFIG_NOHIGHMEM is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_HIGHMEM=y
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ILLEGAL_POINTER_VALUE=0
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_HWPOISON_INJECT=m
+# CONFIG_HIGHPTE is not set
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW_64K=y
+# CONFIG_MATH_EMULATION is not set
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_EFI=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+CONFIG_HZ_300=y
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=300
+CONFIG_SCHED_HRTICK=y
+CONFIG_KEXEC=y
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_KEXEC_JUMP is not set
+CONFIG_PHYSICAL_START=0x1000000
+# CONFIG_RELOCATABLE is not set
+CONFIG_PHYSICAL_ALIGN=0x100000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_CAN_PM_TRACE=y
+# CONFIG_PM_TRACE_RTC is not set
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_SLEEP=y
+# CONFIG_PM_SLEEP_ADVANCED_DEBUG is not set
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATION_NVS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_RUNTIME=y
+CONFIG_PM_OPS=y
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_PROCFS=y
+CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_ACPI_POWER_METER=m
+CONFIG_ACPI_SYSFS_POWER=y
+CONFIG_ACPI_PROC_EVENT=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=m
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=m
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=m
+CONFIG_ACPI_SBS=m
+CONFIG_SFI=y
+CONFIG_X86_APM_BOOT=y
+CONFIG_APM=y
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+CONFIG_APM_DO_ENABLE=y
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+# CONFIG_APM_ALLOW_INTS is not set
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=m
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# CPUFreq processor drivers
+#
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_POWERNOW_K6=m
+CONFIG_X86_POWERNOW_K7=m
+CONFIG_X86_POWERNOW_K7_ACPI=y
+CONFIG_X86_POWERNOW_K8=m
+CONFIG_X86_GX_SUSPMOD=m
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_SPEEDSTEP_ICH=m
+CONFIG_X86_SPEEDSTEP_SMI=m
+CONFIG_X86_P4_CLOCKMOD=m
+CONFIG_X86_CPUFREQ_NFORCE2=m
+CONFIG_X86_LONGRUN=m
+CONFIG_X86_LONGHAUL=m
+CONFIG_X86_E_POWERSAVER=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOOLPC is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_OLPC=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_DMAR=y
+# CONFIG_DMAR_DEFAULT_ON is not set
+CONFIG_DMAR_FLOPPY_WA=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+# CONFIG_PCIEASPM is not set
+CONFIG_PCIE_PME=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_STUB=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_IOAPIC=y
+CONFIG_ISA_DMA_API=y
+CONFIG_ISA=y
+# CONFIG_EISA is not set
+# CONFIG_MCA is not set
+# CONFIG_SCx200 is not set
+CONFIG_OLPC=y
+CONFIG_K8_NB=y
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+CONFIG_TCIC=m
+CONFIG_PCMCIA_PROBE=y
+CONFIG_PCCARD_NONSTATIC=m
+CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_COMPAQ=m
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+CONFIG_HOTPLUG_PCI_IBM=m
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+CONFIG_BINFMT_AOUT=m
+CONFIG_BINFMT_MISC=y
+CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+# CONFIG_DEFAULT_BIC is not set
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_HTCP is not set
+# CONFIG_DEFAULT_VEGAS is not set
+# CONFIG_DEFAULT_WESTWOOD is not set
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_IPV6 is not set
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_CCID3_RTO=100
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+CONFIG_SCTP_HMAC_SHA1=y
+# CONFIG_SCTP_HMAC_MD5 is not set
+CONFIG_RDS=m
+CONFIG_RDS_TCP=m
+# CONFIG_RDS_DEBUG is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_LTPC=m
+CONFIG_COPS=m
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+CONFIG_IEEE802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_TOSHIBA_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_RC_MINSTREL=y
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_CONNECTOR=m
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_RAM=m
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_TS5500 is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+CONFIG_MTD_PLATRAM=m
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+CONFIG_MTD_SST25L=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_ISAPNP=y
+# CONFIG_PNPBIOS is not set
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=m
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_MISC_DEVICES=y
+CONFIG_AD525X_DPOT=m
+# CONFIG_IBM_ASM is not set
+CONFIG_PHANTOM=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+CONFIG_HP_ILO=m
+CONFIG_ISL29003=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_DS1682=m
+CONFIG_TI_DAC7512=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=m
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+CONFIG_IDE_XFER_MODE=y
+CONFIG_IDE_TIMINGS=y
+CONFIG_IDE_ATAPI=y
+CONFIG_IDE_LEGACY=y
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_IDE_GD=m
+CONFIG_IDE_GD_ATA=y
+CONFIG_IDE_GD_ATAPI=y
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEACPI=y
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_PROC_FS=y
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_PLATFORM=m
+CONFIG_BLK_DEV_CMD640=m
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_IDEPNP=m
+CONFIG_BLK_DEV_IDEDMA_SFF=y
+
+#
+# PCI IDE chipsets support
+#
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=m
+CONFIG_BLK_DEV_OPTI621=m
+CONFIG_BLK_DEV_RZ1000=m
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_AEC62XX=m
+CONFIG_BLK_DEV_ALI15X3=m
+CONFIG_BLK_DEV_AMD74XX=m
+CONFIG_BLK_DEV_ATIIXP=m
+CONFIG_BLK_DEV_CMD64X=m
+CONFIG_BLK_DEV_TRIFLEX=m
+CONFIG_BLK_DEV_CS5520=m
+CONFIG_BLK_DEV_CS5530=m
+CONFIG_BLK_DEV_CS5535=m
+CONFIG_BLK_DEV_CS5536=m
+CONFIG_BLK_DEV_HPT366=m
+CONFIG_BLK_DEV_JMICRON=m
+CONFIG_BLK_DEV_SC1200=m
+CONFIG_BLK_DEV_PIIX=m
+CONFIG_BLK_DEV_IT8172=m
+CONFIG_BLK_DEV_IT8213=m
+CONFIG_BLK_DEV_IT821X=m
+CONFIG_BLK_DEV_NS87415=m
+CONFIG_BLK_DEV_PDC202XX_OLD=m
+CONFIG_BLK_DEV_PDC202XX_NEW=m
+CONFIG_BLK_DEV_SVWKS=m
+CONFIG_BLK_DEV_SIIMAGE=m
+CONFIG_BLK_DEV_SIS5513=m
+CONFIG_BLK_DEV_SLC90E66=m
+CONFIG_BLK_DEV_TRM290=m
+CONFIG_BLK_DEV_VIA82CXXX=m
+CONFIG_BLK_DEV_TC86C001=m
+
+#
+# Other IDE chipsets support
+#
+
+#
+# Note: most of these also require special kernel boot parameters
+#
+CONFIG_BLK_DEV_4DRIVES=m
+CONFIG_BLK_DEV_ALI14XX=m
+CONFIG_BLK_DEV_DTC2278=m
+CONFIG_BLK_DEV_HT6560B=m
+CONFIG_BLK_DEV_QD65XX=m
+CONFIG_BLK_DEV_UMC8672=m
+CONFIG_BLK_DEV_IDEDMA=y
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ARCMSR_AER=y
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_FLASHPOINT is not set
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+# CONFIG_SCSI_U14_34F_TAGGED_QUEUE is not set
+# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_PMP=y
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+CONFIG_SATA_SVW=m
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SX4=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+CONFIG_SATA_INIC162X=m
+CONFIG_PATA_ACPI=m
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5535=m
+CONFIG_PATA_CS5536=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_ISAPNP=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_LEGACY=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_QDI=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_RZ1000=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+CONFIG_PATA_WINBOND_VLB=m
+CONFIG_PATA_SCH=m
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_RAID6_PQ=m
+CONFIG_ASYNC_RAID6_TEST=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# You can enable one or both FireWire driver stacks.
+#
+
+#
+# The newer stack is recommended.
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+# CONFIG_IEEE1394 is not set
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_NETDEVICES=y
+CONFIG_IFB=m
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_SB1000=m
+# CONFIG_ARCNET is not set
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_LANCE=m
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRA=m
+CONFIG_SMC9194=m
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ETHOC=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI52=m
+CONFIG_NI65=m
+CONFIG_DNET=m
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_ZNET=m
+CONFIG_SEEQ8005=m
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_AC3200=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_FORCEDETH=m
+# CONFIG_FORCEDETH_NAPI is not set
+CONFIG_CS89x0=m
+CONFIG_E100=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R6040=m
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_SC92031=m
+CONFIG_NET_POCKET=y
+CONFIG_ATP=m
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_ATL2=m
+CONFIG_NETDEV_1000=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IP1000=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+# CONFIG_R8169_VLAN is not set
+CONFIG_SIS190=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_QLA3XXX=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_JME=m
+CONFIG_NETDEV_10000=y
+CONFIG_MDIO=m
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3_DEPENDS=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4_DEPENDS=y
+CONFIG_CHELSIO_T4=m
+CONFIG_ENIC=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_IXGB=m
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NIU=m
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_TEHUTI=m
+CONFIG_BNX2X=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_BE2NET=m
+# CONFIG_TR is not set
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS_THINFIRM=m
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K=m
+# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_AR9170_USB=m
+CONFIG_AR9170_LEDS=y
+CONFIG_B43=m
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLWIFI=m
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWLAGN=m
+CONFIG_IWL4965=y
+CONFIG_IWL5000=y
+CONFIG_IWL3945=m
+CONFIG_IWM=m
+# CONFIG_IWM_DEBUG is not set
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI_PCI=y
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT30XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT30XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_HT=y
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_WL12XX=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL1271=m
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_SDIO=m
+# CONFIG_WIMAX_IWMC3200_SDIO is not set
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+# CONFIG_WAN is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+CONFIG_PPPOATM=m
+CONFIG_PPPOL2TP=m
+CONFIG_SLIP=m
+# CONFIG_SLIP_COMPRESSED is not set
+CONFIG_SLHC=m
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VMXNET3=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_TELES_CS=m
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+
+#
+# Active cards
+#
+CONFIG_ISDN_DRV_ICN=m
+CONFIG_ISDN_DRV_PCBIT=m
+CONFIG_ISDN_DRV_SC=m
+CONFIG_ISDN_DRV_ACT2000=m
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_T1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_QT2160=m
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_OLPC=y
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_INPORT=m
+# CONFIG_MOUSE_ATIXL is not set
+CONFIG_MOUSE_LOGIBM=m
+CONFIG_MOUSE_PC110PAD=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_HTCPEN=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+# CONFIG_TOUCHSCREEN_WM9705 is not set
+# CONFIG_TOUCHSCREEN_WM9712 is not set
+# CONFIG_TOUCHSCREEN_WM9713 is not set
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+# CONFIG_TOUCHSCREEN_MC13783 is not set
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+# CONFIG_TOUCHSCREEN_USB_E2I is not set
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC5UH=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+# CONFIG_TOUCHSCREEN_PCAP is not set
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_WISTRON_BTNS=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_WINBOND_CIR=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+# CONFIG_INPUT_PCAP is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_DEVKMEM=y
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+# CONFIG_SYNCLINK_GT is not set
+CONFIG_N_HDLC=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_STALDRV is not set
+CONFIG_NOZOMI=m
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_UARTLITE=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_GEODE=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_NVRAM=m
+CONFIG_DTLK=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+CONFIG_SONYPI=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+CONFIG_PC8736x_GPIO=m
+CONFIG_NSC_GPIO=m
+CONFIG_CS5535_GPIO=m
+# CONFIG_RAW_DRIVER is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_PCA_ISA=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_STUB is not set
+CONFIG_SCx200_ACB=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_XILINX=m
+CONFIG_SPI_XILINX_PLTFM=m
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO expanders:
+#
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_WM8994=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_LANGWELL=y
+CONFIG_GPIO_TIMBERDALE=y
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_MC33880=m
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_OLPC=m
+CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_CHARGER_PCF50633=m
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_HDAPS=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_MC13783_ADC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ATK0110=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_GEODE_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_SBC7240_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+
+#
+# ISA-based Watchdog Cards
+#
+CONFIG_PCWATCHDOG=m
+CONFIG_MIXCOMWD=m
+CONFIG_WDT=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=m
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS65010=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM8994=m
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_MC13783=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_EZX_PCAP=y
+CONFIG_AB4500_CORE=m
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_ALLOW_V4L1=y
+CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_DVB_CORE=m
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_IR_CORE=m
+CONFIG_VIDEO_IR=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_V4L1=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders/decoders and other helper chips
+#
+
+#
+# Audio decoders
+#
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TDA9875=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_VP27SMPX=m
+
+#
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_TCM825X=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_VPX3220=m
+
+#
+# Video and audio decoders
+#
+CONFIG_VIDEO_CX25840=m
+
+#
+# MPEG video encoders
+#
+CONFIG_VIDEO_CX2341X=m
+
+#
+# Video encoders
+#
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_ADV7343=m
+
+#
+# Video improvement chips
+#
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+CONFIG_VIDEO_VIVI=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_PMS=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA=m
+CONFIG_VIDEO_CPIA_PP=m
+CONFIG_VIDEO_CPIA_USB=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_SAA5246A=m
+CONFIG_VIDEO_SAA5249=m
+CONFIG_VIDEO_STRADIS=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SN9C20X_EVDEV=y
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_VIDEO_USBVIDEO=m
+CONFIG_USB_VICAM=m
+CONFIG_USB_IBMCAM=m
+CONFIG_USB_KONICAWC=m
+CONFIG_USB_QUICKCAM_MESSENGER=m
+CONFIG_USB_ET61X251=m
+CONFIG_VIDEO_OVCAMCHIP=m
+CONFIG_USB_W9968CF=m
+CONFIG_USB_OV511=m
+CONFIG_USB_SE401=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_STV680=m
+CONFIG_USB_ZC0301=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_CADET=m
+CONFIG_RADIO_RTRACK=m
+CONFIG_RADIO_RTRACK2=m
+CONFIG_RADIO_AZTECH=m
+CONFIG_RADIO_GEMTEK=m
+CONFIG_RADIO_GEMTEK_PCI=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MAESTRO=m
+CONFIG_RADIO_MIROPCM20=m
+CONFIG_RADIO_SF16FMI=m
+CONFIG_RADIO_SF16FMR2=m
+CONFIG_RADIO_TERRATEC=m
+CONFIG_RADIO_TRUST=m
+CONFIG_RADIO_TYPHOON=m
+CONFIG_RADIO_ZOLTRIX=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_USB_MR800=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_TIMBERDALE=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+CONFIG_TTPCI_EEPROM=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported BT878 Adapters
+#
+CONFIG_DVB_BT8XX=m
+
+#
+# Supported Pluto2 Adapters
+#
+CONFIG_DVB_PLUTO2=m
+
+#
+# Supported SDMC DM1105 Adapters
+#
+CONFIG_DVB_DM1105=m
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_FIREWIRE=y
+# CONFIG_DVB_FIREDTV_IEEE1394 is not set
+CONFIG_DVB_FIREDTV_INPUT=y
+
+#
+# Supported Earthsoft PT1 Adapters
+#
+CONFIG_DVB_PT1=m
+
+#
+# Supported Mantis Adapters
+#
+CONFIG_MANTIS_CORE=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_HOPPER=m
+
+#
+# Supported nGene Adapters
+#
+CONFIG_DVB_NGENE=m
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_MB86A16=m
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_S5H1411=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DAB=y
+CONFIG_USB_DABUSB=m
+
+#
+# Graphics support
+#
+CONFIG_AGP=m
+CONFIG_AGP_ALI=m
+CONFIG_AGP_ATI=m
+CONFIG_AGP_AMD=m
+CONFIG_AGP_AMD64=m
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_NVIDIA=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_SWORKS=m
+CONFIG_AGP_VIA=m
+CONFIG_AGP_EFFICEON=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_I810=m
+CONFIG_DRM_I830=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_VGASTATE=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_DDC=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_VGA16 is not set
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_I2C=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_BACKLIGHT=y
+CONFIG_FB_I810=m
+# CONFIG_FB_I810_GTF is not set
+CONFIG_FB_LE80578=m
+CONFIG_FB_CARILLO_RANCH=m
+# CONFIG_FB_MATROX is not set
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+# CONFIG_FB_S3 is not set
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SAVAGE_ACCEL=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_VIA=m
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_3DFX_ACCEL=y
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_VOODOO1=m
+# CONFIG_FB_VT8623 is not set
+CONFIG_FB_TRIDENT=m
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_SM501 is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_MBP_NVIDIA=m
+CONFIG_BACKLIGHT_SAHARA=m
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=m
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+# CONFIG_MDA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FB_CON_DECOR=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+# CONFIG_LOGO is not set
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OPL4_LIB_SEQ=m
+CONFIG_SND_SBAWE_SEQ=m
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL4_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_PCSP is not set
+CONFIG_SND_DUMMY=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_WSS_LIB=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB8_DSP=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_ISA=y
+CONFIG_SND_ADLIB=m
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_ES968=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_SC6000=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_JAZZ16=m
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_MIRO=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_SGALAXY=m
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_WAVEFRONT=m
+CONFIG_SND_MSND_PINNACLE=m
+CONFIG_SND_MSND_CLASSIC=m
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_FM801_TEA575X=m
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_ATIHDMI=y
+CONFIG_SND_HDA_CODEC_NVHDMI=y
+CONFIG_SND_HDA_CODEC_INTELHDMI=y
+CONFIG_SND_HDA_ELD=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_HIFIER=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SIS7019=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# Special HID drivers
+#
+CONFIG_HID_3M_PCT=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EZKEY=m
+CONFIG_HID_KYE=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LOGITECH=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MOSART=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_QUANTA=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_STANTUM=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_MON=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
+# CONFIG_USB_GADGET_IMX is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_NET2280=m
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_MASS_STORAGE is not set
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_MULTI is not set
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_WLP=m
+CONFIG_UWB_I1480U=m
+CONFIG_UWB_I1480U_WLP=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=m
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_ALIX2 is not set
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_IDE_DISK=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_AMD76X=m
+CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82875P=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I82860=m
+CONFIG_EDAC_R82600=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_RTC_LIB=m
+CONFIG_RTC_CLASS=m
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_TEST=m
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=m
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_PCF50633=m
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PCAP is not set
+CONFIG_RTC_DRV_MC13783=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y
+CONFIG_INTEL_IOATDMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+
+#
+# TI VLYNQ
+#
+CONFIG_STAGING=y
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+CONFIG_ET131X=m
+# CONFIG_ET131X_DEBUG is not set
+CONFIG_SLICOSS=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_USB_IP_COMMON=m
+CONFIG_USB_IP_VHCI_HCD=m
+CONFIG_USB_IP_HOST=m
+# CONFIG_USB_IP_DEBUG_ENABLE is not set
+CONFIG_W35UND=m
+CONFIG_PRISM2_USB=m
+CONFIG_ECHO=m
+CONFIG_POCH=m
+CONFIG_OTUS=m
+CONFIG_RT2860=m
+CONFIG_RT2870=m
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+CONFIG_R8187SE=m
+CONFIG_RTL8192SU=m
+CONFIG_RTL8192U=m
+CONFIG_RTL8192E=m
+# CONFIG_TRANZPORT is not set
+
+#
+# Qualcomm MSM Camera And Video
+#
+
+#
+# Camera Sensor Selection
+#
+CONFIG_INPUT_GPIO=m
+CONFIG_POHMELFS=m
+# CONFIG_POHMELFS_DEBUG is not set
+CONFIG_POHMELFS_CRYPTO=y
+CONFIG_IDE_PHISON=m
+CONFIG_LINE6_USB=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_FB_UDL=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_BLOCK=m
+CONFIG_HYPERV_NET=m
+# CONFIG_VME_BUS is not set
+
+#
+# RAR Register Driver
+#
+# CONFIG_RAR_REGISTER is not set
+# CONFIG_IIO is not set
+CONFIG_RAMZSWAP=m
+CONFIG_RAMZSWAP_STATS=y
+# CONFIG_BATMAN_ADV is not set
+CONFIG_SAMSUNG_LAPTOP=m
+# CONFIG_STRIP is not set
+CONFIG_ARLAN=m
+CONFIG_WAVELAN=m
+CONFIG_PCMCIA_WAVELAN=m
+CONFIG_PCMCIA_NETWAVE=m
+CONFIG_FB_SM7XX=m
+CONFIG_DT3155=m
+CONFIG_CRYSTALHD=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_TC1100_WMI=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_ACPI_ASUS=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=m
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+# CONFIG_ISCSI_IBFT_FIND is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=m
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+# CONFIG_AUTOFS_FS is not set
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+# CONFIG_HUGETLBFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_LOGFS=m
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+CONFIG_OMFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPCSEC_GSS_SPKM3=m
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CEPH_FS=m
+# CONFIG_CEPH_FS_PRETTYDEBUG is not set
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+# CONFIG_CIFS_UPCALL is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+# CONFIG_MINIX_SUBPARTITION is not set
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_LKDTM=m
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+# CONFIG_SYSPROF_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_FTRACE_SYSCALLS is not set
+# CONFIG_BOOT_TRACER is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_KSYM_TRACER is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_KMEMTRACE is not set
+# CONFIG_WORKQUEUE_TRACER is not set
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_KMEMCHECK is not set
+CONFIG_STRICT_DEVMEM=y
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_X86_PTDUMP is not set
+# CONFIG_DEBUG_RODATA is not set
+# CONFIG_DEBUG_NX_TEST is not set
+# CONFIG_4KSTACKS is not set
+CONFIG_DOUBLEFAULT=y
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+# CONFIG_SECURITY_PATH is not set
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
+# CONFIG_SECURITY_SMACK is not set
+# CONFIG_SECURITY_TOMOYO is not set
+# CONFIG_IMA is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_FIPS=y
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_586=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_586=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_GEODE=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_VHOST_NET=m
+CONFIG_LGUEST=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_RING=y
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_AUDIT_GENERIC=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=m
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_BTREE=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_NLATTR=y
+CONFIG_LRU_CACHE=m
diff --git a/abs/core-testing/kernel26/config.x86_64 b/abs/core-testing/kernel26/config.x86_64
index 6f6fc87..f400618 100644
--- a/abs/core-testing/kernel26/config.x86_64
+++ b/abs/core-testing/kernel26/config.x86_64
@@ -1,12 +1,13 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.28
-# Thu Dec 25 19:41:06 2008
+# Linux kernel version: 2.6.34
+# Mon May 17 07:56:01 2010
 #
 CONFIG_64BIT=y
 # CONFIG_X86_32 is not set
 CONFIG_X86_64=y
 CONFIG_X86=y
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
 CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
 CONFIG_GENERIC_TIME=y
 CONFIG_GENERIC_CMOS_UPDATE=y
@@ -16,16 +17,18 @@ CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
 CONFIG_LOCKDEP_SUPPORT=y
 CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_FAST_CMPXCHG_LOCAL=y
 CONFIG_MMU=y
 CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_GENERIC_ISA_DMA=y
 CONFIG_GENERIC_IOMAP=y
 CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
 CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
 CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
 CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
 CONFIG_GENERIC_CALIBRATE_DELAY=y
 CONFIG_GENERIC_TIME_VSYSCALL=y
@@ -33,6 +36,8 @@ CONFIG_ARCH_HAS_CPU_RELAX=y
 CONFIG_ARCH_HAS_DEFAULT_IDLE=y
 CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
 CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
 CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
@@ -40,17 +45,20 @@ CONFIG_ZONE_DMA32=y
 CONFIG_ARCH_POPULATES_NODE_MAP=y
 CONFIG_AUDIT_ARCH=y
 CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_EARLY_RES=y
+CONFIG_HAVE_INTEL_TXT=y
 CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_X86_SMP=y
 CONFIG_USE_GENERIC_SMP_HELPERS=y
 CONFIG_X86_64_SMP=y
 CONFIG_X86_HT=y
-CONFIG_X86_BIOS_REBOOT=y
 CONFIG_X86_TRAMPOLINE=y
 # CONFIG_KTIME_SCALAR is not set
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
 
 #
 # General setup
@@ -60,35 +68,76 @@ CONFIG_LOCK_KERNEL=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
 CONFIG_LOCALVERSION="-ARCH"
 CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_LZO is not set
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSVIPC_SYSCTL=y
 CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
 CONFIG_TASKSTATS=y
 CONFIG_TASK_DELAY_ACCT=y
 CONFIG_TASK_XACCT=y
 CONFIG_TASK_IO_ACCOUNTING=y
-# CONFIG_AUDIT is not set
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_TREE=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_TINY_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=64
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
+# CONFIG_TREE_RCU_TRACE is not set
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_LOG_BUF_SHIFT=19
-# CONFIG_CGROUPS is not set
 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
-# CONFIG_GROUP_SCHED is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_NS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_MM_OWNER=y
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
 CONFIG_RELAY=y
 CONFIG_NAMESPACES=y
-# CONFIG_UTS_NS is not set
-# CONFIG_IPC_NS is not set
-# CONFIG_USER_NS is not set
-# CONFIG_PID_NS is not set
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_LZO=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
 # CONFIG_EMBEDDED is not set
 CONFIG_UID16=y
 CONFIG_SYSCTL_SYSCALL=y
@@ -100,37 +149,57 @@ CONFIG_PRINTK=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
 CONFIG_PCSPKR_PLATFORM=y
-# CONFIG_COMPAT_BRK is not set
 CONFIG_BASE_FULL=y
 CONFIG_FUTEX=y
-CONFIG_ANON_INODES=y
 CONFIG_EPOLL=y
 CONFIG_SIGNALFD=y
 CONFIG_TIMERFD=y
 CONFIG_EVENTFD=y
 CONFIG_SHMEM=y
 CONFIG_AIO=y
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+CONFIG_PERF_COUNTERS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 CONFIG_VM_EVENT_COUNTERS=y
 CONFIG_PCI_QUIRKS=y
 CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
 # CONFIG_SLAB is not set
 CONFIG_SLUB=y
 # CONFIG_SLOB is not set
 CONFIG_PROFILING=y
-# CONFIG_MARKERS is not set
+CONFIG_TRACEPOINTS=y
 CONFIG_OPROFILE=m
-CONFIG_OPROFILE_IBS=y
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
 CONFIG_HAVE_OPROFILE=y
 # CONFIG_KPROBES is not set
 CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
 CONFIG_HAVE_IOREMAP_PROT=y
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_SLOW_WORK=y
+# CONFIG_SLOW_WORK_DEBUG is not set
 # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
-# CONFIG_TINY_SHMEM is not set
 CONFIG_BASE_SMALL=0
 CONFIG_MODULES=y
 CONFIG_MODULE_FORCE_LOAD=y
@@ -138,10 +207,8 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_MODULE_FORCE_UNLOAD=y
 # CONFIG_MODVERSIONS is not set
 # CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
 CONFIG_STOP_MACHINE=y
 CONFIG_BLOCK=y
-CONFIG_BLK_DEV_IO_TRACE=y
 CONFIG_BLK_DEV_BSG=y
 # CONFIG_BLK_DEV_INTEGRITY is not set
 CONFIG_BLOCK_COMPAT=y
@@ -150,16 +217,44 @@ CONFIG_BLOCK_COMPAT=y
 # IO Schedulers
 #
 CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
 CONFIG_IOSCHED_DEADLINE=y
 CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
+# CONFIG_CFQ_GROUP_IOSCHED is not set
 # CONFIG_DEFAULT_DEADLINE is not set
 CONFIG_DEFAULT_CFQ=y
 # CONFIG_DEFAULT_NOOP is not set
 CONFIG_DEFAULT_IOSCHED="cfq"
 CONFIG_PREEMPT_NOTIFIERS=y
-CONFIG_CLASSIC_RCU=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
 CONFIG_FREEZER=y
 
 #
@@ -170,20 +265,23 @@ CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
 CONFIG_SMP=y
-CONFIG_X86_FIND_SMP_CONFIG=y
+# CONFIG_SPARSE_IRQ is not set
 CONFIG_X86_MPPARSE=y
-CONFIG_X86_PC=y
-# CONFIG_X86_ELAN is not set
-# CONFIG_X86_VOYAGER is not set
-# CONFIG_X86_GENERICARCH is not set
-# CONFIG_X86_VSMP is not set
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
 CONFIG_PARAVIRT_GUEST=y
-# CONFIG_XEN is not set
-# CONFIG_KVM_CLOCK is not set
-# CONFIG_KVM_GUEST is not set
+CONFIG_XEN=y
+CONFIG_XEN_MAX_DOMAIN_MEMORY=32
+CONFIG_XEN_SAVE_RESTORE=y
+# CONFIG_XEN_DEBUG_FS is not set
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
 CONFIG_PARAVIRT=y
-# CONFIG_PARAVIRT_CLOCK is not set
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
 # CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
 # CONFIG_MEMTEST is not set
 # CONFIG_M386 is not set
 # CONFIG_M486 is not set
@@ -209,12 +307,13 @@ CONFIG_PARAVIRT=y
 # CONFIG_MVIAC7 is not set
 # CONFIG_MPSC is not set
 # CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
 CONFIG_GENERIC_CPU=y
 CONFIG_X86_CPU=y
-CONFIG_X86_L1_CACHE_BYTES=128
-CONFIG_X86_INTERNODE_CACHE_BYTES=128
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
 CONFIG_X86_CMPXCHG=y
-CONFIG_X86_L1_CACHE_SHIFT=7
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_XADD=y
 CONFIG_X86_WP_WORKS_OK=y
 CONFIG_X86_TSC=y
 CONFIG_X86_CMPXCHG64=y
@@ -223,7 +322,7 @@ CONFIG_X86_MINIMUM_CPU_FAMILY=64
 CONFIG_X86_DEBUGCTLMSR=y
 CONFIG_CPU_SUP_INTEL=y
 CONFIG_CPU_SUP_AMD=y
-CONFIG_CPU_SUP_CENTAUR_64=y
+CONFIG_CPU_SUP_CENTAUR=y
 # CONFIG_X86_DS is not set
 CONFIG_HPET_TIMER=y
 CONFIG_HPET_EMULATE_RTC=y
@@ -234,18 +333,23 @@ CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
 # CONFIG_AMD_IOMMU is not set
 CONFIG_SWIOTLB=y
 CONFIG_IOMMU_HELPER=y
+CONFIG_IOMMU_API=y
+# CONFIG_MAXSMP is not set
 CONFIG_NR_CPUS=16
 CONFIG_SCHED_SMT=y
 CONFIG_SCHED_MC=y
 # CONFIG_PREEMPT_NONE is not set
 # CONFIG_PREEMPT_VOLUNTARY is not set
 CONFIG_PREEMPT=y
-# CONFIG_PREEMPT_RCU is not set
 CONFIG_X86_LOCAL_APIC=y
 CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
 CONFIG_X86_MCE=y
 CONFIG_X86_MCE_INTEL=y
 CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
 CONFIG_I8K=m
 CONFIG_MICROCODE=m
 CONFIG_MICROCODE_INTEL=y
@@ -254,10 +358,14 @@ CONFIG_MICROCODE_OLD_INTERFACE=y
 CONFIG_X86_MSR=m
 CONFIG_X86_CPUID=m
 CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_DIRECT_GBPAGES=y
 # CONFIG_NUMA is not set
+CONFIG_ARCH_PROC_KCORE_TEXT=y
 CONFIG_ARCH_SPARSEMEM_DEFAULT=y
 CONFIG_ARCH_SPARSEMEM_ENABLE=y
 CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_MEMORY_PROBE=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
 CONFIG_SELECT_MEMORY_MODEL=y
 # CONFIG_FLATMEM_MANUAL is not set
 # CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -266,28 +374,36 @@ CONFIG_SPARSEMEM=y
 CONFIG_HAVE_MEMORY_PRESENT=y
 CONFIG_SPARSEMEM_EXTREME=y
 CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
 CONFIG_SPARSEMEM_VMEMMAP=y
-
-#
-# Memory hotplug is currently incompatible with Software Suspend
-#
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
 CONFIG_PAGEFLAGS_EXTENDED=y
 CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_RESOURCES_64BIT=y
+CONFIG_MIGRATION=y
 CONFIG_PHYS_ADDR_T_64BIT=y
 CONFIG_ZONE_DMA_FLAG=1
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
-CONFIG_UNEVICTABLE_LRU=y
 CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_HWPOISON_INJECT=m
 CONFIG_X86_CHECK_BIOS_CORRUPTION=y
 CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
 CONFIG_X86_RESERVE_LOW_64K=y
 CONFIG_MTRR=y
-# CONFIG_MTRR_SANITIZER is not set
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
 CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
 CONFIG_EFI=y
 CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
 # CONFIG_HZ_100 is not set
 # CONFIG_HZ_250 is not set
 CONFIG_HZ_300=y
@@ -296,30 +412,41 @@ CONFIG_HZ=300
 CONFIG_SCHED_HRTICK=y
 CONFIG_KEXEC=y
 # CONFIG_CRASH_DUMP is not set
-CONFIG_PHYSICAL_START=0x200000
+CONFIG_KEXEC_JUMP=y
+CONFIG_PHYSICAL_START=0x1000000
 # CONFIG_RELOCATABLE is not set
-CONFIG_PHYSICAL_ALIGN=0x200000
+CONFIG_PHYSICAL_ALIGN=0x1000000
 CONFIG_HOTPLUG_CPU=y
 # CONFIG_COMPAT_VDSO is not set
 # CONFIG_CMDLINE_BOOL is not set
 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
 
 #
 # Power management and ACPI options
 #
 CONFIG_ARCH_HIBERNATION_HEADER=y
 CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_CAN_PM_TRACE=y
+# CONFIG_PM_TRACE_RTC is not set
 CONFIG_PM_SLEEP_SMP=y
 CONFIG_PM_SLEEP=y
+# CONFIG_PM_SLEEP_ADVANCED_DEBUG is not set
 CONFIG_SUSPEND=y
 CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATION_NVS=y
 CONFIG_HIBERNATION=y
 CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_RUNTIME=y
+CONFIG_PM_OPS=y
 CONFIG_ACPI=y
 CONFIG_ACPI_SLEEP=y
 CONFIG_ACPI_PROCFS=y
 CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_ACPI_POWER_METER=m
 CONFIG_ACPI_SYSFS_POWER=y
 CONFIG_ACPI_PROC_EVENT=y
 CONFIG_ACPI_AC=m
@@ -330,19 +457,17 @@ CONFIG_ACPI_FAN=m
 CONFIG_ACPI_DOCK=y
 CONFIG_ACPI_PROCESSOR=m
 CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
 CONFIG_ACPI_THERMAL=m
-CONFIG_ACPI_WMI=m
-CONFIG_ACPI_ASUS=m
-CONFIG_ACPI_TOSHIBA=m
 # CONFIG_ACPI_CUSTOM_DSDT is not set
-CONFIG_ACPI_CUSTOM_DSDT_INITRD=y
 CONFIG_ACPI_BLACKLIST_YEAR=0
 # CONFIG_ACPI_DEBUG is not set
 CONFIG_ACPI_PCI_SLOT=m
-CONFIG_ACPI_SYSTEM=y
 CONFIG_X86_PM_TIMER=y
 CONFIG_ACPI_CONTAINER=m
+CONFIG_ACPI_HOTPLUG_MEMORY=m
 CONFIG_ACPI_SBS=m
+CONFIG_SFI=y
 
 #
 # CPU Frequency scaling
@@ -366,16 +491,15 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
 #
 # CPUFreq processor drivers
 #
+CONFIG_X86_PCC_CPUFREQ=m
 CONFIG_X86_ACPI_CPUFREQ=m
 CONFIG_X86_POWERNOW_K8=m
-CONFIG_X86_POWERNOW_K8_ACPI=y
 # CONFIG_X86_SPEEDSTEP_CENTRINO is not set
 CONFIG_X86_P4_CLOCKMOD=m
 
 #
 # shared options
 #
-# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
 CONFIG_X86_SPEEDSTEP_LIB=m
 CONFIG_CPU_IDLE=y
 CONFIG_CPU_IDLE_GOV_LADDER=y
@@ -394,24 +518,29 @@ CONFIG_PCI=y
 CONFIG_PCI_DIRECT=y
 CONFIG_PCI_MMCONFIG=y
 CONFIG_PCI_DOMAINS=y
-# CONFIG_DMAR is not set
+CONFIG_DMAR=y
+# CONFIG_DMAR_DEFAULT_ON is not set
+CONFIG_DMAR_FLOPPY_WA=y
 # CONFIG_INTR_REMAP is not set
 CONFIG_PCIEPORTBUS=y
 CONFIG_HOTPLUG_PCI_PCIE=m
 CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
 # CONFIG_PCIEASPM is not set
+CONFIG_PCIE_PME=y
 CONFIG_ARCH_SUPPORTS_MSI=y
 CONFIG_PCI_MSI=y
-CONFIG_PCI_LEGACY=y
 # CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_STUB=m
 CONFIG_HT_IRQ=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_IOAPIC=y
 CONFIG_ISA_DMA_API=y
 CONFIG_K8_NB=y
 CONFIG_PCCARD=m
-# CONFIG_PCMCIA_DEBUG is not set
 CONFIG_PCMCIA=m
 CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_PCMCIA_IOCTL=y
 CONFIG_CARDBUS=y
 
 #
@@ -449,12 +578,12 @@ CONFIG_COMPAT=y
 CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
 CONFIG_SYSVIPC_COMPAT=y
 CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
 
 #
 # Networking options
 #
 CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
 CONFIG_UNIX=y
 CONFIG_XFRM=y
 CONFIG_XFRM_USER=m
@@ -490,11 +619,28 @@ CONFIG_INET_TUNNEL=m
 CONFIG_INET_XFRM_MODE_TRANSPORT=m
 CONFIG_INET_XFRM_MODE_TUNNEL=m
 CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_LRO=m
+CONFIG_INET_LRO=y
 CONFIG_INET_DIAG=y
 CONFIG_INET_TCP_DIAG=y
-# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
 CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+# CONFIG_DEFAULT_BIC is not set
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_HTCP is not set
+# CONFIG_DEFAULT_VEGAS is not set
+# CONFIG_DEFAULT_WESTWOOD is not set
+# CONFIG_DEFAULT_RENO is not set
 CONFIG_DEFAULT_TCP_CONG="cubic"
 # CONFIG_TCP_MD5SIG is not set
 CONFIG_IPV6=m
@@ -513,6 +659,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
 CONFIG_INET6_XFRM_MODE_BEET=m
 CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
 CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
 CONFIG_IPV6_NDISC_NODETYPE=y
 CONFIG_IPV6_TUNNEL=m
 CONFIG_IPV6_MULTIPLE_TABLES=y
@@ -535,6 +682,7 @@ CONFIG_NF_CONNTRACK=m
 CONFIG_NF_CT_ACCT=y
 CONFIG_NF_CONNTRACK_MARK=y
 CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
 CONFIG_NF_CONNTRACK_EVENTS=y
 CONFIG_NF_CT_PROTO_DCCP=m
 CONFIG_NF_CT_PROTO_GRE=m
@@ -555,7 +703,10 @@ CONFIG_NETFILTER_XTABLES=m
 CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
 CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
 CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
 CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
 CONFIG_NETFILTER_XT_TARGET_MARK=m
 CONFIG_NETFILTER_XT_TARGET_NFLOG=m
 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -566,6 +717,7 @@ CONFIG_NETFILTER_XT_TARGET_TRACE=m
 CONFIG_NETFILTER_XT_TARGET_SECMARK=m
 CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
 CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
 CONFIG_NETFILTER_XT_MATCH_COMMENT=m
 CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
 CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -576,6 +728,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
 CONFIG_NETFILTER_XT_MATCH_ESP=m
 CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
 CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
 CONFIG_NETFILTER_XT_MATCH_LENGTH=m
 CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -599,6 +752,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
 CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
 CONFIG_NETFILTER_XT_MATCH_TIME=m
 CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
 CONFIG_IP_VS=m
 # CONFIG_IP_VS_IPV6 is not set
 # CONFIG_IP_VS_DEBUG is not set
@@ -612,6 +766,7 @@ CONFIG_IP_VS_PROTO_UDP=y
 CONFIG_IP_VS_PROTO_AH_ESP=y
 CONFIG_IP_VS_PROTO_ESP=y
 CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
 
 #
 # IPVS scheduler
@@ -689,11 +844,11 @@ CONFIG_IP6_NF_MATCH_HL=m
 CONFIG_IP6_NF_MATCH_IPV6HEADER=m
 CONFIG_IP6_NF_MATCH_MH=m
 CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
 CONFIG_IP6_NF_TARGET_LOG=m
 CONFIG_IP6_NF_FILTER=m
 CONFIG_IP6_NF_TARGET_REJECT=m
 CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_TARGET_HL=m
 CONFIG_IP6_NF_RAW=m
 CONFIG_IP6_NF_SECURITY=m
 CONFIG_BRIDGE_NF_EBTABLES=m
@@ -718,13 +873,31 @@ CONFIG_BRIDGE_EBT_SNAT=m
 CONFIG_BRIDGE_EBT_LOG=m
 CONFIG_BRIDGE_EBT_ULOG=m
 CONFIG_BRIDGE_EBT_NFLOG=m
-# CONFIG_IP_DCCP is not set
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_CCID3_RTO=100
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
 CONFIG_IP_SCTP=m
 # CONFIG_SCTP_DBG_MSG is not set
 # CONFIG_SCTP_DBG_OBJCNT is not set
 # CONFIG_SCTP_HMAC_NONE is not set
 CONFIG_SCTP_HMAC_SHA1=y
 # CONFIG_SCTP_HMAC_MD5 is not set
+CONFIG_RDS=m
+CONFIG_RDS_TCP=m
+# CONFIG_RDS_DEBUG is not set
 # CONFIG_TIPC is not set
 CONFIG_ATM=m
 CONFIG_ATM_CLIP=m
@@ -735,6 +908,7 @@ CONFIG_ATM_BR2684=m
 # CONFIG_ATM_BR2684_IPFILTER is not set
 CONFIG_STP=m
 CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
 # CONFIG_NET_DSA is not set
 CONFIG_VLAN_8021Q=m
 # CONFIG_VLAN_8021Q_GVRP is not set
@@ -743,11 +917,17 @@ CONFIG_LLC=m
 CONFIG_LLC2=m
 CONFIG_IPX=m
 # CONFIG_IPX_INTERN is not set
-# CONFIG_ATALK is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
 # CONFIG_X25 is not set
 # CONFIG_LAPB is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+CONFIG_IEEE802154=m
 CONFIG_NET_SCHED=y
 
 #
@@ -766,6 +946,7 @@ CONFIG_NET_SCH_TBF=m
 CONFIG_NET_SCH_GRED=m
 CONFIG_NET_SCH_DSMARK=m
 CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
 CONFIG_NET_SCH_INGRESS=m
 
 #
@@ -783,6 +964,7 @@ CONFIG_NET_CLS_U32=m
 CONFIG_NET_CLS_RSVP=m
 CONFIG_NET_CLS_RSVP6=m
 CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
 # CONFIG_NET_EMATCH is not set
 CONFIG_NET_CLS_ACT=y
 CONFIG_NET_ACT_POLICE=m
@@ -796,11 +978,13 @@ CONFIG_NET_ACT_SIMP=m
 CONFIG_NET_ACT_SKBEDIT=m
 CONFIG_NET_CLS_IND=y
 CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
 
 #
 # Network testing
 #
 CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=y
 # CONFIG_HAMRADIO is not set
 # CONFIG_CAN is not set
 CONFIG_IRDA=m
@@ -873,9 +1057,7 @@ CONFIG_BT_HIDP=m
 #
 # Bluetooth device drivers
 #
-CONFIG_BT_HCIUSB=m
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIBTUSB is not set
+CONFIG_BT_HCIBTUSB=m
 CONFIG_BT_HCIBTSDIO=m
 CONFIG_BT_HCIUART=m
 CONFIG_BT_HCIUART_H4=y
@@ -889,40 +1071,49 @@ CONFIG_BT_HCIBT3C=m
 CONFIG_BT_HCIBLUECARD=m
 CONFIG_BT_HCIBTUART=m
 CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
 CONFIG_AF_RXRPC=m
 # CONFIG_AF_RXRPC_DEBUG is not set
 CONFIG_RXKAD=m
-CONFIG_PHONET=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
-CONFIG_CFG80211=m
-CONFIG_NL80211=y
-CONFIG_WIRELESS_OLD_REGULATORY=y
 CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
 CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
 CONFIG_MAC80211=m
-
-#
-# Rate control algorithm selection
-#
-CONFIG_MAC80211_RC_PID=y
 CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT_PID=y
-# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
-CONFIG_MAC80211_RC_DEFAULT="pid"
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel"
 CONFIG_MAC80211_MESH=y
 CONFIG_MAC80211_LEDS=y
 # CONFIG_MAC80211_DEBUGFS is not set
 # CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_IEEE80211=m
-# CONFIG_IEEE80211_DEBUG is not set
-CONFIG_IEEE80211_CRYPT_WEP=m
-CONFIG_IEEE80211_CRYPT_CCMP=m
-CONFIG_IEEE80211_CRYPT_TKIP=m
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
 CONFIG_RFKILL=m
-CONFIG_RFKILL_INPUT=m
 CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
 CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
 # CONFIG_NET_9P_DEBUG is not set
 
 #
@@ -933,6 +1124,8 @@ CONFIG_NET_9P=m
 # Generic Driver Options
 #
 CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
 CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 CONFIG_FW_LOADER=y
@@ -940,10 +1133,11 @@ CONFIG_FIRMWARE_IN_KERNEL=y
 CONFIG_EXTRA_FIRMWARE=""
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_SYS_HYPERVISOR=y
 CONFIG_CONNECTOR=m
 CONFIG_MTD=m
 # CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
 # CONFIG_MTD_CONCAT is not set
 CONFIG_MTD_PARTITIONS=y
 # CONFIG_MTD_REDBOOT_PARTS is not set
@@ -996,6 +1190,7 @@ CONFIG_MTD_PLATRAM=m
 # CONFIG_MTD_PMC551 is not set
 # CONFIG_MTD_DATAFLASH is not set
 # CONFIG_MTD_M25P80 is not set
+CONFIG_MTD_SST25L=m
 CONFIG_MTD_SLRAM=m
 CONFIG_MTD_PHRAM=m
 # CONFIG_MTD_MTDRAM is not set
@@ -1011,6 +1206,11 @@ CONFIG_MTD_PHRAM=m
 # CONFIG_MTD_ONENAND is not set
 
 #
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
 # UBI - Unsorted block images
 #
 # CONFIG_MTD_UBI is not set
@@ -1042,7 +1242,10 @@ CONFIG_BLK_DEV_DAC960=m
 # CONFIG_BLK_DEV_COW_COMMON is not set
 CONFIG_BLK_DEV_LOOP=m
 CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
 CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
 CONFIG_BLK_DEV_SX8=m
 # CONFIG_BLK_DEV_UB is not set
 CONFIG_BLK_DEV_RAM=m
@@ -1053,45 +1256,51 @@ CONFIG_CDROM_PKTCDVD=m
 CONFIG_CDROM_PKTCDVD_BUFFERS=8
 # CONFIG_CDROM_PKTCDVD_WCACHE is not set
 CONFIG_ATA_OVER_ETH=m
+CONFIG_XEN_BLKDEV_FRONTEND=m
+CONFIG_VIRTIO_BLK=m
 # CONFIG_BLK_DEV_HD is not set
 CONFIG_MISC_DEVICES=y
+CONFIG_AD525X_DPOT=m
 # CONFIG_IBM_ASM is not set
 CONFIG_PHANTOM=m
-CONFIG_EEPROM_93CX6=m
 CONFIG_SGI_IOC4=m
 CONFIG_TIFM_CORE=m
 CONFIG_TIFM_7XX1=m
-CONFIG_ACER_WMI=m
-CONFIG_ASUS_LAPTOP=m
-CONFIG_FUJITSU_LAPTOP=m
-# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
-CONFIG_HP_WMI=m
 CONFIG_ICS932S401=m
-CONFIG_MSI_LAPTOP=m
-CONFIG_PANASONIC_LAPTOP=m
-CONFIG_COMPAL_LAPTOP=m
-CONFIG_SONY_LAPTOP=m
-# CONFIG_SONYPI_COMPAT is not set
-CONFIG_THINKPAD_ACPI=m
-# CONFIG_THINKPAD_ACPI_DEBUG is not set
-CONFIG_THINKPAD_ACPI_BAY=y
-CONFIG_THINKPAD_ACPI_VIDEO=y
-CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
-CONFIG_INTEL_MENLOW=m
-CONFIG_EEEPC_LAPTOP=m
 CONFIG_ENCLOSURE_SERVICES=m
-CONFIG_SGI_XP=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
 CONFIG_HP_ILO=m
-CONFIG_SGI_GRU=m
-# CONFIG_SGI_GRU_DEBUG is not set
+CONFIG_ISL29003=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_DS1682=m
+CONFIG_TI_DAC7512=m
+CONFIG_VMWARE_BALLOON=m
 CONFIG_C2PORT=m
 CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
 CONFIG_HAVE_IDE=y
 CONFIG_IDE=m
 
 #
 # Please see Documentation/ide/ide.txt for help/info on IDE drives
 #
+CONFIG_IDE_XFER_MODE=y
 CONFIG_IDE_TIMINGS=y
 CONFIG_IDE_ATAPI=y
 # CONFIG_BLK_DEV_IDE_SATA is not set
@@ -1103,7 +1312,6 @@ CONFIG_BLK_DEV_DELKIN=m
 CONFIG_BLK_DEV_IDECD=m
 CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
 CONFIG_BLK_DEV_IDETAPE=m
-CONFIG_BLK_DEV_IDESCSI=m
 CONFIG_BLK_DEV_IDEACPI=y
 # CONFIG_IDE_TASK_IOCTL is not set
 CONFIG_IDE_PROC_FS=y
@@ -1139,6 +1347,7 @@ CONFIG_BLK_DEV_HPT366=m
 CONFIG_BLK_DEV_JMICRON=m
 CONFIG_BLK_DEV_SC1200=m
 CONFIG_BLK_DEV_PIIX=m
+CONFIG_BLK_DEV_IT8172=m
 CONFIG_BLK_DEV_IT8213=m
 CONFIG_BLK_DEV_IT821X=m
 CONFIG_BLK_DEV_NS87415=m
@@ -1156,6 +1365,7 @@ CONFIG_BLK_DEV_IDEDMA=y
 #
 # SCSI device support
 #
+CONFIG_SCSI_MOD=m
 CONFIG_RAID_ATTRS=m
 CONFIG_SCSI=m
 CONFIG_SCSI_DMA=y
@@ -1174,10 +1384,6 @@ CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_CHR_DEV_SCH=m
 CONFIG_SCSI_ENCLOSURE=m
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
 CONFIG_SCSI_MULTI_LUN=y
 # CONFIG_SCSI_CONSTANTS is not set
 # CONFIG_SCSI_LOGGING is not set
@@ -1200,8 +1406,13 @@ CONFIG_SCSI_SRP_ATTRS=m
 CONFIG_SCSI_SRP_TGT_ATTRS=y
 CONFIG_SCSI_LOWLEVEL=y
 CONFIG_ISCSI_TCP=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_BE2ISCSI=m
 CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
 CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
 CONFIG_SCSI_ACARD=m
 CONFIG_SCSI_AACRAID=m
 CONFIG_SCSI_AIC7XXX=m
@@ -1219,6 +1430,8 @@ CONFIG_AIC79XX_DEBUG_MASK=0
 CONFIG_AIC79XX_REG_PRETTY_PRINT=y
 CONFIG_SCSI_AIC94XX=m
 # CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
 CONFIG_SCSI_DPT_I2O=m
 CONFIG_SCSI_ADVANSYS=m
 CONFIG_SCSI_ARCMSR=m
@@ -1228,8 +1441,16 @@ CONFIG_MEGARAID_MM=m
 CONFIG_MEGARAID_MAILBOX=m
 CONFIG_MEGARAID_LEGACY=m
 CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
 CONFIG_SCSI_HPTIOP=m
 CONFIG_SCSI_BUSLOGIC=m
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
 CONFIG_SCSI_DMX3191D=m
 CONFIG_SCSI_EATA=m
 # CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
@@ -1244,7 +1465,6 @@ CONFIG_SCSI_PPA=m
 CONFIG_SCSI_IMM=m
 # CONFIG_SCSI_IZIP_EPP16 is not set
 # CONFIG_SCSI_IZIP_SLOW_CTR is not set
-CONFIG_SCSI_MVSAS=m
 CONFIG_SCSI_STEX=m
 CONFIG_SCSI_SYM53C8XX_2=m
 CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
@@ -1258,10 +1478,14 @@ CONFIG_SCSI_QLOGIC_1280=m
 CONFIG_SCSI_QLA_FC=m
 CONFIG_SCSI_QLA_ISCSI=m
 CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
 CONFIG_SCSI_DC395x=m
 CONFIG_SCSI_DC390T=m
 # CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
 CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
 CONFIG_SCSI_LOWLEVEL_PCMCIA=y
 CONFIG_PCMCIA_FDOMAIN=m
 CONFIG_PCMCIA_QLOGIC=m
@@ -1271,8 +1495,13 @@ CONFIG_SCSI_DH_RDAC=m
 CONFIG_SCSI_DH_HP_SW=m
 CONFIG_SCSI_DH_EMC=m
 CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
 CONFIG_ATA=m
 # CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
 CONFIG_ATA_ACPI=y
 CONFIG_SATA_PMP=y
 CONFIG_SATA_AHCI=m
@@ -1296,6 +1525,7 @@ CONFIG_PATA_ACPI=m
 CONFIG_PATA_ALI=m
 CONFIG_PATA_AMD=m
 CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATP867X=m
 CONFIG_PATA_ATIIXP=m
 CONFIG_PATA_CMD640_PCI=m
 CONFIG_PATA_CMD64X=m
@@ -1312,6 +1542,7 @@ CONFIG_PATA_HPT3X3=m
 CONFIG_PATA_IT821X=m
 CONFIG_PATA_IT8213=m
 CONFIG_PATA_JMICRON=m
+CONFIG_PATA_LEGACY=m
 CONFIG_PATA_TRIFLEX=m
 CONFIG_PATA_MARVELL=m
 CONFIG_PATA_MPIIX=m
@@ -1323,14 +1554,16 @@ CONFIG_PATA_NS87415=m
 CONFIG_PATA_OPTI=m
 CONFIG_PATA_OPTIDMA=m
 CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_PDC_OLD=m
 CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
 CONFIG_PATA_RZ1000=m
 CONFIG_PATA_SC1200=m
 CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_SIL680=m
 CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
 CONFIG_PATA_VIA=m
 CONFIG_PATA_WINBOND=m
 CONFIG_PATA_SCH=m
@@ -1341,7 +1574,9 @@ CONFIG_MD_RAID0=m
 CONFIG_MD_RAID1=m
 CONFIG_MD_RAID10=m
 CONFIG_MD_RAID456=m
-CONFIG_MD_RAID5_RESHAPE=y
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_RAID6_PQ=m
+CONFIG_ASYNC_RAID6_TEST=m
 CONFIG_MD_MULTIPATH=m
 CONFIG_MD_FAULTY=m
 CONFIG_BLK_DEV_DM=m
@@ -1349,8 +1584,11 @@ CONFIG_BLK_DEV_DM=m
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=m
 CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
 CONFIG_DM_ZERO=m
 CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
 CONFIG_DM_DELAY=m
 CONFIG_DM_UEVENT=y
 CONFIG_FUSION=y
@@ -1366,20 +1604,18 @@ CONFIG_FUSION_CTL=m
 #
 
 #
-# Enable only one of the two stacks, unless you know what you are doing
+# You can enable one or both FireWire driver stacks.
+#
+
 #
-# CONFIG_FIREWIRE is not set
-CONFIG_IEEE1394=m
-CONFIG_IEEE1394_OHCI1394=m
-CONFIG_IEEE1394_PCILYNX=m
-CONFIG_IEEE1394_SBP2=m
-# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
-CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
-CONFIG_IEEE1394_ETH1394=m
-CONFIG_IEEE1394_RAWIO=m
-CONFIG_IEEE1394_VIDEO1394=m
-CONFIG_IEEE1394_DV1394=m
-# CONFIG_IEEE1394_VERBOSEDEBUG is not set
+# The newer stack is recommended.
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+# CONFIG_IEEE1394 is not set
 CONFIG_I2O=m
 CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
 CONFIG_I2O_EXT_ADAPTEC=y
@@ -1397,6 +1633,7 @@ CONFIG_IFB=m
 CONFIG_DUMMY=m
 CONFIG_BONDING=m
 CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
 CONFIG_EQUALIZER=m
 CONFIG_TUN=m
 CONFIG_VETH=m
@@ -1407,16 +1644,20 @@ CONFIG_PHYLIB=m
 #
 # MII PHY device drivers
 #
-# CONFIG_MARVELL_PHY is not set
-# CONFIG_DAVICOM_PHY is not set
-# CONFIG_QSEMI_PHY is not set
-# CONFIG_LXT_PHY is not set
-# CONFIG_CICADA_PHY is not set
-# CONFIG_VITESSE_PHY is not set
-# CONFIG_SMSC_PHY is not set
-# CONFIG_BROADCOM_PHY is not set
-# CONFIG_ICPLUS_PHY is not set
-# CONFIG_REALTEK_PHY is not set
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
 # CONFIG_MDIO_BITBANG is not set
 CONFIG_NET_ETHERNET=y
 CONFIG_MII=m
@@ -1428,8 +1669,11 @@ CONFIG_VORTEX=m
 CONFIG_TYPHOON=m
 CONFIG_ENC28J60=m
 # CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ETHOC=m
+CONFIG_DNET=m
 CONFIG_NET_TULIP=y
 CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
 CONFIG_TULIP=m
 # CONFIG_TULIP_MWI is not set
 # CONFIG_TULIP_MMIO is not set
@@ -1451,13 +1695,13 @@ CONFIG_NET_PCI=y
 CONFIG_PCNET32=m
 CONFIG_AMD8111_ETH=m
 CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_KSZ884X_PCI=m
 CONFIG_B44=m
 CONFIG_B44_PCI_AUTOSELECT=y
 CONFIG_B44_PCICORE_AUTOSELECT=y
 CONFIG_B44_PCI=y
 CONFIG_FORCEDETH=m
 # CONFIG_FORCEDETH_NAPI is not set
-CONFIG_EEPRO100=m
 CONFIG_E100=m
 CONFIG_FEALNX=m
 CONFIG_NATSEMI=m
@@ -1471,9 +1715,13 @@ CONFIG_8139TOO_8129=y
 CONFIG_R6040=m
 CONFIG_SIS900=m
 CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
 CONFIG_SUNDANCE=m
 # CONFIG_SUNDANCE_MMIO is not set
-# CONFIG_TLAN is not set
+CONFIG_TLAN=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
 CONFIG_VIA_RHINE=m
 # CONFIG_VIA_RHINE_MMIO is not set
 CONFIG_SC92031=m
@@ -1490,8 +1738,8 @@ CONFIG_E1000=m
 CONFIG_E1000E=m
 CONFIG_IP1000=m
 CONFIG_IGB=m
-# CONFIG_IGB_LRO is not set
 CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
 CONFIG_NS83820=m
 CONFIG_HAMACHI=m
 CONFIG_YELLOWFIN=m
@@ -1505,19 +1753,28 @@ CONFIG_SKY2=m
 CONFIG_VIA_VELOCITY=m
 CONFIG_TIGON3=m
 CONFIG_BNX2=m
+CONFIG_CNIC=m
 CONFIG_QLA3XXX=m
 CONFIG_ATL1=m
 CONFIG_ATL1E=m
+CONFIG_ATL1C=m
 CONFIG_JME=m
 CONFIG_NETDEV_10000=y
+CONFIG_MDIO=m
 CONFIG_CHELSIO_T1=m
 CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3_DEPENDS=y
 CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4_DEPENDS=y
+CONFIG_CHELSIO_T4=m
 CONFIG_ENIC=m
 CONFIG_IXGBE=m
 CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
 CONFIG_IXGB=m
 CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
 CONFIG_MYRI10GE=m
 CONFIG_MYRI10GE_DCA=y
 CONFIG_NETXEN_NIC=m
@@ -1527,43 +1784,21 @@ CONFIG_MLX4_CORE=m
 CONFIG_MLX4_DEBUG=y
 CONFIG_TEHUTI=m
 CONFIG_BNX2X=m
+CONFIG_QLCNIC=m
 CONFIG_QLGE=m
 CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_BE2NET=m
 # CONFIG_TR is not set
-
-#
-# Wireless LAN
-#
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
+CONFIG_WLAN=y
 CONFIG_PCMCIA_RAYCS=m
-CONFIG_IPW2100=m
-CONFIG_IPW2100_MONITOR=y
-# CONFIG_IPW2100_DEBUG is not set
-CONFIG_IPW2200=m
-CONFIG_IPW2200_MONITOR=y
-CONFIG_IPW2200_RADIOTAP=y
-CONFIG_IPW2200_PROMISCUOUS=y
-CONFIG_IPW2200_QOS=y
-# CONFIG_IPW2200_DEBUG is not set
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_CS=m
-CONFIG_LIBERTAS_SDIO=m
-# CONFIG_LIBERTAS_DEBUG is not set
 CONFIG_LIBERTAS_THINFIRM=m
 CONFIG_LIBERTAS_THINFIRM_USB=m
 CONFIG_AIRO=m
-CONFIG_HERMES=m
-CONFIG_PLX_HERMES=m
-CONFIG_TMD_HERMES=m
-CONFIG_NORTEL_HERMES=m
-CONFIG_PCI_HERMES=m
-CONFIG_PCMCIA_HERMES=m
-CONFIG_PCMCIA_SPECTRUM=m
 CONFIG_ATMEL=m
 CONFIG_PCI_ATMEL=m
 CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
 CONFIG_AIRO_CS=m
 CONFIG_PCMCIA_WL3501=m
 CONFIG_PRISM54=m
@@ -1571,70 +1806,126 @@ CONFIG_USB_ZD1201=m
 CONFIG_USB_NET_RNDIS_WLAN=m
 CONFIG_RTL8180=m
 CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
 CONFIG_ADM8211=m
 # CONFIG_MAC80211_HWSIM is not set
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_PCI=m
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
 CONFIG_ATH5K=m
 # CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
 CONFIG_ATH9K=m
-CONFIG_IWLWIFI=m
-CONFIG_IWLCORE=m
-CONFIG_IWLWIFI_LEDS=y
-CONFIG_IWLWIFI_RFKILL=y
-# CONFIG_IWLWIFI_DEBUG is not set
-CONFIG_IWLAGN=m
-CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y
-CONFIG_IWLAGN_LEDS=y
-CONFIG_IWL4965=y
-CONFIG_IWL5000=y
-CONFIG_IWL3945=m
-CONFIG_IWL3945_RFKILL=y
-CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
-CONFIG_IWL3945_LEDS=y
-# CONFIG_IWL3945_DEBUG is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
+# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_AR9170_USB=m
+CONFIG_AR9170_LEDS=y
 CONFIG_B43=m
 CONFIG_B43_PCI_AUTOSELECT=y
 CONFIG_B43_PCICORE_AUTOSELECT=y
 CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
 CONFIG_B43_PIO=y
+CONFIG_B43_PHY_LP=y
 CONFIG_B43_LEDS=y
-CONFIG_B43_RFKILL=y
+CONFIG_B43_HWRNG=y
 # CONFIG_B43_DEBUG is not set
 CONFIG_B43LEGACY=m
 CONFIG_B43LEGACY_PCI_AUTOSELECT=y
 CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
 CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_RFKILL=y
+CONFIG_B43LEGACY_HWRNG=y
 # CONFIG_B43LEGACY_DEBUG is not set
 CONFIG_B43LEGACY_DMA=y
 CONFIG_B43LEGACY_PIO=y
 CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
 # CONFIG_B43LEGACY_DMA_MODE is not set
 # CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLWIFI=m
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWLAGN=m
+CONFIG_IWL4965=y
+CONFIG_IWL5000=y
+CONFIG_IWL3945=m
+CONFIG_IWM=m
+# CONFIG_IWM_DEBUG is not set
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_LEDS=y
 CONFIG_RT2X00=m
 CONFIG_RT2400PCI=m
 CONFIG_RT2500PCI=m
 CONFIG_RT61PCI=m
+CONFIG_RT2800PCI_PCI=y
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT30XX=y
+CONFIG_RT2800PCI_RT35XX=y
 CONFIG_RT2500USB=m
 CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT30XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
 CONFIG_RT2X00_LIB_PCI=m
 CONFIG_RT2X00_LIB_USB=m
 CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_HT=y
 CONFIG_RT2X00_LIB_FIRMWARE=y
 CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_RFKILL=y
 CONFIG_RT2X00_LIB_LEDS=y
 # CONFIG_RT2X00_DEBUG is not set
+CONFIG_WL12XX=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL1271=m
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_SDIO=m
+# CONFIG_WIMAX_IWMC3200_SDIO is not set
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
 
 #
 # USB Network Adapters
@@ -1646,7 +1937,9 @@ CONFIG_USB_RTL8150=m
 CONFIG_USB_USBNET=m
 CONFIG_USB_NET_AX8817X=m
 CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
 CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
 CONFIG_USB_NET_SMSC95XX=m
 CONFIG_USB_NET_GL620A=m
 CONFIG_USB_NET_NET1080=m
@@ -1662,6 +1955,10 @@ CONFIG_USB_EPSON2888=y
 CONFIG_USB_KC2190=y
 CONFIG_USB_NET_ZAURUS=m
 CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
 CONFIG_NET_PCMCIA=y
 CONFIG_PCMCIA_3C589=m
 CONFIG_PCMCIA_3C574=m
@@ -1698,6 +1995,10 @@ CONFIG_ATM_FORE200E_TX_RETRY=16
 CONFIG_ATM_FORE200E_DEBUG=0
 CONFIG_ATM_HE=m
 # CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_XEN_NETDEV_FRONTEND=m
 # CONFIG_FDDI is not set
 # CONFIG_HIPPI is not set
 CONFIG_PLIP=m
@@ -1723,16 +2024,9 @@ CONFIG_NETCONSOLE_DYNAMIC=y
 CONFIG_NETPOLL=y
 # CONFIG_NETPOLL_TRAP is not set
 CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VMXNET3=m
 CONFIG_ISDN=y
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
-
-#
-# mISDN hardware drivers
-#
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
 CONFIG_ISDN_I4L=m
 CONFIG_ISDN_PPP=y
 CONFIG_ISDN_PPP_VJ=y
@@ -1806,19 +2100,10 @@ CONFIG_HISAX_ST5481=m
 CONFIG_HISAX_HFCUSB=m
 CONFIG_HISAX_HFC4S8S=m
 CONFIG_HISAX_FRITZ_PCIPNP=m
-CONFIG_HISAX_HDLC=y
 
 #
 # Active cards
 #
-CONFIG_HYSDN=m
-CONFIG_HYSDN_CAPI=y
-CONFIG_ISDN_DRV_GIGASET=m
-CONFIG_GIGASET_BASE=m
-CONFIG_GIGASET_M105=m
-CONFIG_GIGASET_M101=m
-# CONFIG_GIGASET_DEBUG is not set
-CONFIG_GIGASET_UNDOCREQ=y
 CONFIG_ISDN_CAPI=m
 CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
 CONFIG_CAPI_TRACE=y
@@ -1845,6 +2130,34 @@ CONFIG_ISDN_DIVAS_PRIPCI=y
 CONFIG_ISDN_DIVAS_DIVACAPI=m
 CONFIG_ISDN_DIVAS_USERIDI=m
 CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
 # CONFIG_PHONE is not set
 
 #
@@ -1853,6 +2166,7 @@ CONFIG_ISDN_DIVAS_MAINT=m
 CONFIG_INPUT=y
 CONFIG_INPUT_FF_MEMLESS=m
 CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
 
 #
 # Userland interfaces
@@ -1864,17 +2178,25 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
 CONFIG_INPUT_JOYDEV=m
 CONFIG_INPUT_EVDEV=m
 # CONFIG_INPUT_EVBUG is not set
+CONFIG_XEN_KBDDEV_FRONTEND=m
 
 #
 # Input Device Drivers
 #
 CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
 CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_SUNKBD is not set
+CONFIG_QT2160=m
 # CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
 # CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
 CONFIG_INPUT_MOUSE=y
 CONFIG_MOUSE_PS2=m
 CONFIG_MOUSE_PS2_ALPS=y
@@ -1883,11 +2205,14 @@ CONFIG_MOUSE_PS2_SYNAPTICS=y
 CONFIG_MOUSE_PS2_LIFEBOOK=y
 CONFIG_MOUSE_PS2_TRACKPOINT=y
 CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
 # CONFIG_MOUSE_PS2_TOUCHKIT is not set
 CONFIG_MOUSE_SERIAL=y
 CONFIG_MOUSE_APPLETOUCH=m
 CONFIG_MOUSE_BCM5974=m
 CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
 CONFIG_INPUT_JOYSTICK=y
 CONFIG_JOYSTICK_ANALOG=m
 CONFIG_JOYSTICK_A3D=m
@@ -1917,6 +2242,7 @@ CONFIG_JOYSTICK_JOYDUMP=m
 CONFIG_JOYSTICK_XPAD=m
 CONFIG_JOYSTICK_XPAD_FF=y
 CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
 CONFIG_INPUT_TABLET=y
 CONFIG_TABLET_USB_ACECAD=m
 CONFIG_TABLET_USB_AIPTEK=m
@@ -1925,20 +2251,29 @@ CONFIG_TABLET_USB_KBTAB=m
 CONFIG_TABLET_USB_WACOM=m
 CONFIG_INPUT_TOUCHSCREEN=y
 CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_EETI=m
 CONFIG_TOUCHSCREEN_FUJITSU=m
 CONFIG_TOUCHSCREEN_GUNZE=m
 CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_MCS5000=m
 CONFIG_TOUCHSCREEN_MTOUCH=m
 CONFIG_TOUCHSCREEN_INEXIO=m
 CONFIG_TOUCHSCREEN_MK712=m
 CONFIG_TOUCHSCREEN_PENMOUNT=m
 CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
 CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
 CONFIG_TOUCHSCREEN_WM97XX=m
 # CONFIG_TOUCHSCREEN_WM9705 is not set
 # CONFIG_TOUCHSCREEN_WM9712 is not set
 # CONFIG_TOUCHSCREEN_WM9713 is not set
 CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+# CONFIG_TOUCHSCREEN_MC13783 is not set
 CONFIG_TOUCHSCREEN_USB_EGALAX=y
 CONFIG_TOUCHSCREEN_USB_PANJIT=y
 CONFIG_TOUCHSCREEN_USB_3M=y
@@ -1950,7 +2285,14 @@ CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
 CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
 CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
 CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+# CONFIG_TOUCHSCREEN_USB_E2I is not set
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC5UH=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
 CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+# CONFIG_TOUCHSCREEN_PCAP is not set
 CONFIG_INPUT_MISC=y
 CONFIG_INPUT_PCSPKR=m
 CONFIG_INPUT_APANEL=m
@@ -1962,6 +2304,10 @@ CONFIG_INPUT_POWERMATE=m
 CONFIG_INPUT_YEALINK=m
 CONFIG_INPUT_CM109=m
 CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_WINBOND_CIR=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+# CONFIG_INPUT_PCAP is not set
 
 #
 # Hardware I/O ports
@@ -1974,6 +2320,7 @@ CONFIG_SERIO_PARKBD=m
 CONFIG_SERIO_PCIPS2=m
 CONFIG_SERIO_LIBPS2=y
 CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
 CONFIG_GAMEPORT=m
 CONFIG_GAMEPORT_NS558=m
 CONFIG_GAMEPORT_L4=m
@@ -2004,8 +2351,6 @@ CONFIG_SYNCLINKMP=m
 CONFIG_N_HDLC=m
 # CONFIG_RISCOM8 is not set
 # CONFIG_SPECIALIX is not set
-# CONFIG_SX is not set
-# CONFIG_RIO is not set
 # CONFIG_STALDRV is not set
 CONFIG_NOZOMI=m
 
@@ -2018,21 +2363,29 @@ CONFIG_FIX_EARLYCON_MEM=y
 CONFIG_SERIAL_8250_PCI=y
 CONFIG_SERIAL_8250_PNP=y
 CONFIG_SERIAL_8250_CS=m
-CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_NR_UARTS=32
 CONFIG_SERIAL_8250_RUNTIME_UARTS=4
 # CONFIG_SERIAL_8250_EXTENDED is not set
 
 #
 # Non-8250 serial port support
 #
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_UARTLITE=m
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_TIMBERDALE=m
 CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
 # CONFIG_LEGACY_PTYS is not set
 CONFIG_PRINTER=m
 # CONFIG_LP_CONSOLE is not set
 CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+CONFIG_VIRTIO_CONSOLE=m
 CONFIG_IPMI_HANDLER=m
 # CONFIG_IPMI_PANIC_EVENT is not set
 CONFIG_IPMI_DEVICE_INTERFACE=m
@@ -2040,8 +2393,11 @@ CONFIG_IPMI_SI=m
 CONFIG_IPMI_WATCHDOG=m
 CONFIG_IPMI_POWEROFF=m
 CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
 CONFIG_HW_RANDOM_INTEL=m
 CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
 CONFIG_NVRAM=m
 CONFIG_R3964=m
 CONFIG_APPLICOM=m
@@ -2057,7 +2413,8 @@ CONFIG_MWAVE=m
 CONFIG_PC8736x_GPIO=m
 CONFIG_NSC_GPIO=m
 # CONFIG_RAW_DRIVER is not set
-# CONFIG_HPET is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
 CONFIG_HANGCHECK_TIMER=m
 CONFIG_TCG_TPM=m
 CONFIG_TCG_TIS=m
@@ -2068,8 +2425,10 @@ CONFIG_TELCLOCK=m
 CONFIG_DEVPORT=y
 CONFIG_I2C=m
 CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
 CONFIG_I2C_CHARDEV=m
 CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
 CONFIG_I2C_ALGOBIT=m
 CONFIG_I2C_ALGOPCA=m
 
@@ -2098,10 +2457,17 @@ CONFIG_I2C_VIA=m
 CONFIG_I2C_VIAPRO=m
 
 #
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
+CONFIG_I2C_GPIO=m
 CONFIG_I2C_OCORES=m
 CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
 
 #
 # External I2C/SMBus adapter drivers
@@ -2112,32 +2478,13 @@ CONFIG_I2C_TAOS_EVM=m
 CONFIG_I2C_TINY_USB=m
 
 #
-# Graphics adapter I2C/DDC channel drivers
-#
-CONFIG_I2C_VOODOO3=m
-
-#
 # Other I2C/SMBus bus drivers
 #
 CONFIG_I2C_PCA_PLATFORM=m
 # CONFIG_I2C_STUB is not set
-
-#
-# Miscellaneous I2C Chip support
-#
-CONFIG_DS1682=m
-CONFIG_AT24=m
-CONFIG_SENSORS_EEPROM=m
-CONFIG_SENSORS_PCF8574=m
-CONFIG_PCF8575=m
-CONFIG_SENSORS_PCA9539=m
-CONFIG_SENSORS_PCF8591=m
-CONFIG_SENSORS_MAX6875=m
-CONFIG_SENSORS_TSL2550=m
 # CONFIG_I2C_DEBUG_CORE is not set
 # CONFIG_I2C_DEBUG_ALGO is not set
 # CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
 CONFIG_SPI=y
 # CONFIG_SPI_DEBUG is not set
 CONFIG_SPI_MASTER=y
@@ -2147,16 +2494,69 @@ CONFIG_SPI_MASTER=y
 #
 CONFIG_SPI_BITBANG=m
 CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
 CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_XILINX=m
+CONFIG_SPI_XILINX_PLTFM=m
+# CONFIG_SPI_DESIGNWARE is not set
 
 #
 # SPI Protocol Masters
 #
-CONFIG_SPI_AT25=m
 CONFIG_SPI_SPIDEV=m
 CONFIG_SPI_TLE62X0=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
 CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-# CONFIG_GPIOLIB is not set
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO expanders:
+#
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_WM8994=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_LANGWELL=y
+CONFIG_GPIO_TIMBERDALE=y
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_MC33880=m
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
 CONFIG_W1=m
 CONFIG_W1_CON=y
 
@@ -2166,12 +2566,14 @@ CONFIG_W1_CON=y
 CONFIG_W1_MASTER_MATROX=m
 CONFIG_W1_MASTER_DS2490=m
 CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_GPIO=m
 
 #
 # 1-wire Slaves
 #
 CONFIG_W1_SLAVE_THERM=m
 CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2431=m
 CONFIG_W1_SLAVE_DS2433=m
 # CONFIG_W1_SLAVE_DS2433_CRC is not set
 CONFIG_W1_SLAVE_DS2760=m
@@ -2180,9 +2582,17 @@ CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 CONFIG_PDA_POWER=m
 CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2782=m
 CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_CHARGER_PCF50633=m
 CONFIG_HWMON=y
 CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
 CONFIG_SENSORS_ABITUGURU=m
 CONFIG_SENSORS_ABITUGURU3=m
 CONFIG_SENSORS_AD7414=m
@@ -2194,10 +2604,13 @@ CONFIG_SENSORS_ADM1026=m
 CONFIG_SENSORS_ADM1029=m
 CONFIG_SENSORS_ADM1031=m
 CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
 CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7473=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
 CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
 CONFIG_SENSORS_ASB100=m
 CONFIG_SENSORS_ATXP1=m
 CONFIG_SENSORS_DS1621=m
@@ -2205,9 +2618,8 @@ CONFIG_SENSORS_I5K_AMB=m
 CONFIG_SENSORS_F71805F=m
 CONFIG_SENSORS_F71882FG=m
 CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_FSCHER=m
-CONFIG_SENSORS_FSCPOS=m
 CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
 CONFIG_SENSORS_GL518SM=m
 CONFIG_SENSORS_GL520SM=m
 CONFIG_SENSORS_CORETEMP=m
@@ -2216,6 +2628,7 @@ CONFIG_SENSORS_IBMPEX=m
 CONFIG_SENSORS_IT87=m
 CONFIG_SENSORS_LM63=m
 CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
 CONFIG_SENSORS_LM75=m
 CONFIG_SENSORS_LM77=m
 CONFIG_SENSORS_LM78=m
@@ -2226,18 +2639,27 @@ CONFIG_SENSORS_LM87=m
 CONFIG_SENSORS_LM90=m
 CONFIG_SENSORS_LM92=m
 CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LM95241=m
 CONFIG_SENSORS_MAX1111=m
 CONFIG_SENSORS_MAX1619=m
 CONFIG_SENSORS_MAX6650=m
 CONFIG_SENSORS_PC87360=m
 CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_SHT15=m
 CONFIG_SENSORS_SIS5595=m
 CONFIG_SENSORS_DME1737=m
 CONFIG_SENSORS_SMSC47M1=m
 CONFIG_SENSORS_SMSC47M192=m
 CONFIG_SENSORS_SMSC47B397=m
 CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
 CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
 CONFIG_SENSORS_VIA686A=m
 CONFIG_SENSORS_VT1211=m
 CONFIG_SENSORS_VT8231=m
@@ -2250,9 +2672,15 @@ CONFIG_SENSORS_W83L786NG=m
 CONFIG_SENSORS_W83627HF=m
 CONFIG_SENSORS_W83627EHF=m
 CONFIG_SENSORS_HDAPS=m
-CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_SENSORS_LIS3_I2C=m
 CONFIG_SENSORS_APPLESMC=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
+CONFIG_SENSORS_MC13783_ADC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ATK0110=m
+CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_THERMAL=y
 CONFIG_THERMAL_HWMON=y
 CONFIG_WATCHDOG=y
@@ -2266,7 +2694,9 @@ CONFIG_ACQUIRE_WDT=m
 CONFIG_ADVANTECH_WDT=m
 CONFIG_ALIM1535_WDT=m
 CONFIG_ALIM7101_WDT=m
+CONFIG_GEODE_WDT=m
 CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
 CONFIG_EUROTECH_WDT=m
 CONFIG_IB700_WDT=m
 CONFIG_IBMASR=m
@@ -2282,6 +2712,7 @@ CONFIG_PC87413_WDT=m
 CONFIG_60XX_WDT=m
 CONFIG_SBC8360_WDT=m
 CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
 CONFIG_SMSC37B787_WDT=m
 CONFIG_W83627HF_WDT=m
 CONFIG_W83697HF_WDT=m
@@ -2296,7 +2727,6 @@ CONFIG_SBC_EPX_C3_WATCHDOG=m
 #
 CONFIG_PCIPCWATCHDOG=m
 CONFIG_WDTPCI=m
-CONFIG_WDT_501_PCI=y
 
 #
 # USB-based Watchdog Cards
@@ -2315,6 +2745,8 @@ CONFIG_SSB_PCIHOST=y
 CONFIG_SSB_B43_PCI_BRIDGE=y
 CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
 CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
 # CONFIG_SSB_DEBUG is not set
 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
 CONFIG_SSB_DRIVER_PCICORE=y
@@ -2322,18 +2754,25 @@ CONFIG_SSB_DRIVER_PCICORE=y
 #
 # Multifunction device drivers
 #
-# CONFIG_MFD_CORE is not set
+CONFIG_MFD_CORE=m
 CONFIG_MFD_SM501=m
-# CONFIG_HTC_PASIC3 is not set
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS65010=m
 # CONFIG_MFD_TMIO is not set
 CONFIG_MFD_WM8400=m
-CONFIG_MFD_WM8350=m
-CONFIG_MFD_WM8350_I2C=m
+CONFIG_MFD_WM8994=m
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_MC13783=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_EZX_PCAP=y
+CONFIG_AB4500_CORE=m
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
 # CONFIG_REGULATOR is not set
-
-#
-# Multimedia devices
-#
+CONFIG_MEDIA_SUPPORT=m
 
 #
 # Multimedia core support
@@ -2350,9 +2789,11 @@ CONFIG_VIDEO_MEDIA=m
 #
 CONFIG_VIDEO_SAA7146=m
 CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_IR_CORE=m
+CONFIG_VIDEO_IR=m
 CONFIG_MEDIA_ATTACH=y
 CONFIG_MEDIA_TUNER=m
-# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
 CONFIG_MEDIA_TUNER_SIMPLE=m
 CONFIG_MEDIA_TUNER_TDA8290=m
 CONFIG_MEDIA_TUNER_TDA827X=m
@@ -2369,15 +2810,15 @@ CONFIG_MEDIA_TUNER_XC2028=m
 CONFIG_MEDIA_TUNER_XC5000=m
 CONFIG_MEDIA_TUNER_MXL5005S=m
 CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
 CONFIG_VIDEO_V4L2=m
 CONFIG_VIDEO_V4L1=m
 CONFIG_VIDEOBUF_GEN=m
 CONFIG_VIDEOBUF_DMA_SG=m
 CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF_DMA_CONTIG=m
 CONFIG_VIDEOBUF_DVB=m
 CONFIG_VIDEO_BTCX=m
-CONFIG_VIDEO_IR=m
 CONFIG_VIDEO_TVEEPROM=m
 CONFIG_VIDEO_TUNER=m
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
@@ -2409,21 +2850,28 @@ CONFIG_VIDEO_WM8739=m
 CONFIG_VIDEO_VP27SMPX=m
 
 #
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
 # Video decoders
 #
+CONFIG_VIDEO_ADV7180=m
 CONFIG_VIDEO_BT819=m
 CONFIG_VIDEO_BT856=m
 CONFIG_VIDEO_BT866=m
 CONFIG_VIDEO_KS0127=m
 CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9V011=m
 CONFIG_VIDEO_TCM825X=m
 CONFIG_VIDEO_SAA7110=m
-CONFIG_VIDEO_SAA7111=m
-CONFIG_VIDEO_SAA7114=m
 CONFIG_VIDEO_SAA711X=m
 CONFIG_VIDEO_SAA717X=m
 CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
 CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
 CONFIG_VIDEO_VPX3220=m
 
 #
@@ -2443,6 +2891,8 @@ CONFIG_VIDEO_SAA7127=m
 CONFIG_VIDEO_SAA7185=m
 CONFIG_VIDEO_ADV7170=m
 CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_ADV7343=m
 
 #
 # Video improvement chips
@@ -2452,7 +2902,6 @@ CONFIG_VIDEO_UPD64083=m
 CONFIG_VIDEO_VIVI=m
 CONFIG_VIDEO_BT848=m
 CONFIG_VIDEO_BT848_DVB=y
-CONFIG_VIDEO_SAA6588=m
 CONFIG_VIDEO_BWQCAM=m
 CONFIG_VIDEO_CQCAM=m
 CONFIG_VIDEO_W9966=m
@@ -2482,31 +2931,51 @@ CONFIG_VIDEO_CX88=m
 CONFIG_VIDEO_CX88_ALSA=m
 CONFIG_VIDEO_CX88_BLACKBIRD=m
 CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
 CONFIG_VIDEO_CX88_VP3054=m
 CONFIG_VIDEO_CX23885=m
 CONFIG_VIDEO_AU0828=m
 CONFIG_VIDEO_IVTV=m
 CONFIG_VIDEO_FB_IVTV=m
 CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_SAA7164=m
 CONFIG_VIDEO_CAFE_CCIC=m
 CONFIG_SOC_CAMERA=m
 CONFIG_SOC_CAMERA_MT9M001=m
 CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
 CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
 CONFIG_SOC_CAMERA_PLATFORM=m
-CONFIG_VIDEO_SH_MOBILE_CEU=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
 CONFIG_V4L_USB_DRIVERS=y
 CONFIG_USB_VIDEO_CLASS=m
 CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
 CONFIG_USB_GSPCA=m
 CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
 CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
 CONFIG_USB_GSPCA_ETOMS=m
 CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
 CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
 CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
 CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
 CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SN9C20X_EVDEV=y
 CONFIG_USB_GSPCA_SONIXB=m
 CONFIG_USB_GSPCA_SONIXJ=m
 CONFIG_USB_GSPCA_SPCA500=m
@@ -2515,7 +2984,10 @@ CONFIG_USB_GSPCA_SPCA505=m
 CONFIG_USB_GSPCA_SPCA506=m
 CONFIG_USB_GSPCA_SPCA508=m
 CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
 CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
 CONFIG_USB_GSPCA_SUNPLUS=m
 CONFIG_USB_GSPCA_T613=m
 CONFIG_USB_GSPCA_TV8532=m
@@ -2525,9 +2997,14 @@ CONFIG_VIDEO_PVRUSB2=m
 CONFIG_VIDEO_PVRUSB2_SYSFS=y
 CONFIG_VIDEO_PVRUSB2_DVB=y
 # CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
 CONFIG_VIDEO_EM28XX=m
 CONFIG_VIDEO_EM28XX_ALSA=m
 CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
 CONFIG_VIDEO_USBVISION=m
 CONFIG_VIDEO_USBVIDEO=m
 CONFIG_USB_VICAM=m
@@ -2544,6 +3021,7 @@ CONFIG_USB_STV680=m
 CONFIG_USB_ZC0301=m
 CONFIG_USB_PWC=m
 # CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
 CONFIG_USB_ZR364XX=m
 CONFIG_USB_STKWEBCAM=m
 CONFIG_USB_S2255=m
@@ -2551,9 +3029,19 @@ CONFIG_RADIO_ADAPTERS=y
 CONFIG_RADIO_GEMTEK_PCI=m
 CONFIG_RADIO_MAXIRADIO=m
 CONFIG_RADIO_MAESTRO=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
 CONFIG_USB_DSBR=m
+CONFIG_RADIO_SI470X=y
 CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
 CONFIG_USB_MR800=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_TIMBERDALE=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
 CONFIG_DVB_CAPTURE_DRIVERS=y
 
 #
@@ -2598,10 +3086,19 @@ CONFIG_DVB_USB_CINERGY_T2=m
 CONFIG_DVB_USB_ANYSEE=m
 CONFIG_DVB_USB_DTV5100=m
 CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6027=m
 CONFIG_DVB_TTUSB_BUDGET=m
 CONFIG_DVB_TTUSB_DEC=m
-CONFIG_DVB_SIANO_SMS1XXX=m
-CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS=y
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
 
 #
 # Supported FlexCopII (B2C2) Adapters
@@ -2625,43 +3122,63 @@ CONFIG_DVB_PLUTO2=m
 # Supported SDMC DM1105 Adapters
 #
 CONFIG_DVB_DM1105=m
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_FIREWIRE=y
+# CONFIG_DVB_FIREDTV_IEEE1394 is not set
+CONFIG_DVB_FIREDTV_INPUT=y
 
 #
-# Supported DVB Frontends
+# Supported Earthsoft PT1 Adapters
 #
+CONFIG_DVB_PT1=m
 
 #
-# Customise DVB Frontends
+# Supported Mantis Adapters
 #
-# CONFIG_DVB_FE_CUSTOMISE is not set
+CONFIG_MANTIS_CORE=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_HOPPER=m
+
+#
+# Supported nGene Adapters
+#
+CONFIG_DVB_NGENE=m
 
 #
-# DVB-S (satellite) frontends
+# Supported DVB Frontends
 #
+# CONFIG_DVB_FE_CUSTOMISE is not set
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
 CONFIG_DVB_CX24110=m
 CONFIG_DVB_CX24123=m
 CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
 CONFIG_DVB_S5H1420=m
 CONFIG_DVB_STV0288=m
 CONFIG_DVB_STB6000=m
 CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
 CONFIG_DVB_TDA8083=m
 CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
 CONFIG_DVB_VES1X93=m
 CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
 CONFIG_DVB_TDA826X=m
 CONFIG_DVB_TUA6100=m
 CONFIG_DVB_CX24116=m
 CONFIG_DVB_SI21XX=m
-
-#
-# DVB-T (terrestrial) frontends
-#
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_MB86A16=m
 CONFIG_DVB_SP8870=m
 CONFIG_DVB_SP887X=m
 CONFIG_DVB_CX22700=m
 CONFIG_DVB_CX22702=m
-# CONFIG_DVB_DRX397XD is not set
 CONFIG_DVB_L64781=m
 CONFIG_DVB_TDA1004X=m
 CONFIG_DVB_NXT6000=m
@@ -2672,46 +3189,29 @@ CONFIG_DVB_DIB3000MC=m
 CONFIG_DVB_DIB7000M=m
 CONFIG_DVB_DIB7000P=m
 CONFIG_DVB_TDA10048=m
-
-#
-# DVB-C (cable) frontends
-#
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
 CONFIG_DVB_VES1820=m
 CONFIG_DVB_TDA10021=m
 CONFIG_DVB_TDA10023=m
 CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
 CONFIG_DVB_NXT200X=m
 CONFIG_DVB_OR51211=m
 CONFIG_DVB_OR51132=m
 CONFIG_DVB_BCM3510=m
 CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
 CONFIG_DVB_S5H1409=m
 CONFIG_DVB_AU8522=m
 CONFIG_DVB_S5H1411=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
+CONFIG_DVB_DIB8000=m
 CONFIG_DVB_PLL=m
 CONFIG_DVB_TUNER_DIB0070=m
-
-#
-# SEC control devices for DVB-S
-#
 CONFIG_DVB_LNBP21=m
 CONFIG_DVB_ISL6405=m
 CONFIG_DVB_ISL6421=m
-CONFIG_DVB_LGS8GL5=m
-
-#
-# Tools to develop new frontends
-#
-# CONFIG_DVB_DUMMY_FE is not set
-CONFIG_DVB_AF9013=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
 CONFIG_DAB=y
 CONFIG_USB_DABUSB=m
 
@@ -2723,13 +3223,20 @@ CONFIG_AGP_AMD64=y
 CONFIG_AGP_INTEL=m
 CONFIG_AGP_SIS=m
 CONFIG_AGP_VIA=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
 CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_TTM=m
 CONFIG_DRM_TDFX=m
 CONFIG_DRM_R128=m
 CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
 CONFIG_DRM_I810=m
 CONFIG_DRM_I830=m
 CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
 CONFIG_DRM_MGA=m
 CONFIG_DRM_SIS=m
 CONFIG_DRM_VIA=m
@@ -2749,11 +3256,12 @@ CONFIG_FB_SYS_COPYAREA=m
 CONFIG_FB_SYS_IMAGEBLIT=m
 # CONFIG_FB_FOREIGN_ENDIAN is not set
 CONFIG_FB_SYS_FOPS=m
-CONFIG_FB_SVGALIB=m
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
 # CONFIG_FB_MACMODES is not set
 CONFIG_FB_BACKLIGHT=y
 CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
+# CONFIG_FB_TILEBLITTING is not set
 
 #
 # Frame buffer hardware drivers
@@ -2782,9 +3290,6 @@ CONFIG_FB_RIVA_I2C=y
 CONFIG_FB_RIVA_BACKLIGHT=y
 CONFIG_FB_LE80578=m
 CONFIG_FB_CARILLO_RANCH=m
-CONFIG_FB_INTEL=m
-# CONFIG_FB_INTEL_DEBUG is not set
-CONFIG_FB_INTEL_I2C=y
 # CONFIG_FB_MATROX is not set
 CONFIG_FB_RADEON=m
 CONFIG_FB_RADEON_I2C=y
@@ -2797,7 +3302,7 @@ CONFIG_FB_ATY_CT=y
 CONFIG_FB_ATY_GENERIC_LCD=y
 CONFIG_FB_ATY_GX=y
 CONFIG_FB_ATY_BACKLIGHT=y
-CONFIG_FB_S3=m
+# CONFIG_FB_S3 is not set
 CONFIG_FB_SAVAGE=m
 CONFIG_FB_SAVAGE_I2C=y
 CONFIG_FB_SAVAGE_ACCEL=y
@@ -2809,27 +3314,32 @@ CONFIG_FB_NEOMAGIC=m
 CONFIG_FB_KYRO=m
 CONFIG_FB_3DFX=m
 CONFIG_FB_3DFX_ACCEL=y
+CONFIG_FB_3DFX_I2C=y
 CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
+# CONFIG_FB_VT8623 is not set
 CONFIG_FB_TRIDENT=m
-CONFIG_FB_TRIDENT_ACCEL=y
 # CONFIG_FB_ARK is not set
 # CONFIG_FB_PM3 is not set
 # CONFIG_FB_CARMINE is not set
 # CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
 # CONFIG_FB_SM501 is not set
 # CONFIG_FB_VIRTUAL is not set
+CONFIG_XEN_FBDEV_FRONTEND=m
 # CONFIG_FB_METRONOME is not set
 # CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
 CONFIG_LCD_LTV350QV=m
 CONFIG_LCD_ILI9320=m
 CONFIG_LCD_TDO24M=m
 CONFIG_LCD_VGG2432A4=m
 CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_CORGI=m
+CONFIG_BACKLIGHT_GENERIC=m
 CONFIG_BACKLIGHT_PROGEAR=m
 CONFIG_BACKLIGHT_CARILLO_RANCH=m
 CONFIG_BACKLIGHT_MBP_NVIDIA=m
@@ -2853,6 +3363,7 @@ CONFIG_DUMMY_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
 # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
 CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FB_CON_DECOR=y
 CONFIG_FONTS=y
 # CONFIG_FONT_8x8 is not set
 CONFIG_FONT_8x16=y
@@ -2864,36 +3375,43 @@ CONFIG_FONT_8x16=y
 # CONFIG_FONT_SUN8x16 is not set
 # CONFIG_FONT_SUN12x22 is not set
 # CONFIG_FONT_10x18 is not set
-CONFIG_LOGO=y
-CONFIG_LOGO_LINUX_MONO=y
-CONFIG_LOGO_LINUX_VGA16=y
-CONFIG_LOGO_LINUX_CLUT224=y
+# CONFIG_LOGO is not set
 CONFIG_SOUND=m
 CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
 CONFIG_SND=m
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
 CONFIG_SND_HWDEP=m
 CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
 CONFIG_SND_SEQUENCER=m
-# CONFIG_SND_SEQ_DUMMY is not set
+CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_OSSEMUL=y
 CONFIG_SND_MIXER_OSS=m
 CONFIG_SND_PCM_OSS=m
 CONFIG_SND_PCM_OSS_PLUGINS=y
 CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
 CONFIG_SND_DYNAMIC_MINORS=y
 CONFIG_SND_SUPPORT_OLD_API=y
 CONFIG_SND_VERBOSE_PROCFS=y
 # CONFIG_SND_VERBOSE_PRINTK is not set
 # CONFIG_SND_DEBUG is not set
 CONFIG_SND_VMASTER=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+CONFIG_SND_EMU10K1_SEQ=m
 CONFIG_SND_MPU401_UART=m
 CONFIG_SND_OPL3_LIB=m
 CONFIG_SND_VX_LIB=m
 CONFIG_SND_AC97_CODEC=m
 CONFIG_SND_DRIVERS=y
-CONFIG_SND_PCSP=m
+# CONFIG_SND_PCSP is not set
 CONFIG_SND_DUMMY=m
 CONFIG_SND_VIRMIDI=m
 CONFIG_SND_MTPAV=m
@@ -2927,6 +3445,8 @@ CONFIG_SND_CS4281=m
 CONFIG_SND_CS46XX=m
 CONFIG_SND_CS46XX_NEW_DSP=y
 CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
 CONFIG_SND_DARLA20=m
 CONFIG_SND_GINA20=m
 CONFIG_SND_LAYLA20=m
@@ -2939,6 +3459,8 @@ CONFIG_SND_ECHO3G=m
 CONFIG_SND_INDIGO=m
 CONFIG_SND_INDIGOIO=m
 CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
 CONFIG_SND_EMU10K1=m
 CONFIG_SND_EMU10K1X=m
 CONFIG_SND_ENS1370=m
@@ -2950,14 +3472,22 @@ CONFIG_SND_FM801_TEA575X_BOOL=y
 CONFIG_SND_FM801_TEA575X=m
 CONFIG_SND_HDA_INTEL=m
 CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
 CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
 CONFIG_SND_HDA_CODEC_REALTEK=y
 CONFIG_SND_HDA_CODEC_ANALOG=y
 CONFIG_SND_HDA_CODEC_SIGMATEL=y
 CONFIG_SND_HDA_CODEC_VIA=y
 CONFIG_SND_HDA_CODEC_ATIHDMI=y
 CONFIG_SND_HDA_CODEC_NVHDMI=y
+CONFIG_SND_HDA_CODEC_INTELHDMI=y
+CONFIG_SND_HDA_ELD=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
 CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
 CONFIG_SND_HDA_CODEC_CMEDIA=y
 CONFIG_SND_HDA_CODEC_SI3054=y
 CONFIG_SND_HDA_GENERIC=y
@@ -2971,6 +3501,7 @@ CONFIG_SND_ICE1724=m
 CONFIG_SND_INTEL8X0=m
 CONFIG_SND_INTEL8X0M=m
 CONFIG_SND_KORG1212=m
+CONFIG_SND_LX6464ES=m
 CONFIG_SND_MAESTRO3=m
 CONFIG_SND_MIXART=m
 CONFIG_SND_NM256=m
@@ -2989,6 +3520,7 @@ CONFIG_SND_YMFPCI=m
 CONFIG_SND_SPI=y
 CONFIG_SND_USB=y
 CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
 CONFIG_SND_USB_USX2Y=m
 CONFIG_SND_USB_CAIAQ=m
 CONFIG_SND_USB_CAIAQ_INPUT=y
@@ -2997,12 +3529,12 @@ CONFIG_SND_PCMCIA=y
 CONFIG_SND_VXPOCKET=m
 CONFIG_SND_PDAUDIOCF=m
 CONFIG_SND_SOC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
 # CONFIG_SND_SOC_ALL_CODECS is not set
 # CONFIG_SOUND_PRIME is not set
 CONFIG_AC97_BUS=m
 CONFIG_HID_SUPPORT=y
 CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
 CONFIG_HIDRAW=y
 
 #
@@ -3013,38 +3545,50 @@ CONFIG_HID_PID=y
 CONFIG_USB_HIDDEV=y
 
 #
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-
-#
 # Special HID drivers
 #
-# CONFIG_HID_COMPAT is not set
+CONFIG_HID_3M_PCT=m
 CONFIG_HID_A4TECH=m
 CONFIG_HID_APPLE=m
 CONFIG_HID_BELKIN=m
-CONFIG_HID_BRIGHT=m
 CONFIG_HID_CHERRY=m
 CONFIG_HID_CHICONY=m
 CONFIG_HID_CYPRESS=m
-CONFIG_HID_DELL=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
 CONFIG_HID_EZKEY=m
+CONFIG_HID_KYE=m
 CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
 CONFIG_HID_LOGITECH=m
 CONFIG_LOGITECH_FF=y
 CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_HID_MAGICMOUSE=m
 CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MOSART=m
 CONFIG_HID_MONTEREY=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
 CONFIG_HID_PANTHERLORD=m
 CONFIG_PANTHERLORD_FF=y
 CONFIG_HID_PETALYNX=m
+CONFIG_HID_QUANTA=m
 CONFIG_HID_SAMSUNG=m
 CONFIG_HID_SONY=m
+CONFIG_HID_STANTUM=m
 CONFIG_HID_SUNPLUS=m
-CONFIG_THRUSTMASTER_FF=m
-CONFIG_ZEROPLUS_FF=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
 CONFIG_USB_SUPPORT=y
 CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
@@ -3057,11 +3601,11 @@ CONFIG_USB=m
 # Miscellaneous USB options
 #
 CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
+# CONFIG_USB_DEVICE_CLASS is not set
 CONFIG_USB_DYNAMIC_MINORS=y
 CONFIG_USB_SUSPEND=y
 # CONFIG_USB_OTG is not set
-CONFIG_USB_MON=y
+CONFIG_USB_MON=m
 CONFIG_USB_WUSB=m
 CONFIG_USB_WUSB_CBAF=m
 # CONFIG_USB_WUSB_CBAF_DEBUG is not set
@@ -3070,11 +3614,15 @@ CONFIG_USB_WUSB_CBAF=m
 # USB Host Controller Drivers
 #
 CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
 CONFIG_USB_EHCI_HCD=m
 CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_OXU210HP_HCD=m
 CONFIG_USB_ISP116X_HCD=m
 CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
 CONFIG_USB_OHCI_HCD=m
 # CONFIG_USB_OHCI_HCD_SSB is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
@@ -3098,26 +3646,25 @@ CONFIG_USB_WDM=m
 CONFIG_USB_TMC=m
 
 #
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
 #
 
 #
-# see USB_STORAGE Help for more information
+# also be needed; see USB_STORAGE Help for more info
 #
 CONFIG_USB_STORAGE=m
 # CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_DATAFAB=y
-CONFIG_USB_STORAGE_FREECOM=y
-CONFIG_USB_STORAGE_ISD200=y
-CONFIG_USB_STORAGE_DPCM=y
-CONFIG_USB_STORAGE_USBAT=y
-CONFIG_USB_STORAGE_SDDR09=y
-CONFIG_USB_STORAGE_SDDR55=y
-CONFIG_USB_STORAGE_JUMPSHOT=y
-CONFIG_USB_STORAGE_ALAUDA=y
-CONFIG_USB_STORAGE_ONETOUCH=y
-CONFIG_USB_STORAGE_KARMA=y
-CONFIG_USB_STORAGE_CYPRESS_ATACB=y
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
 # CONFIG_USB_LIBUSUAL is not set
 
 #
@@ -3139,7 +3686,7 @@ CONFIG_USB_SERIAL_BELKIN=m
 CONFIG_USB_SERIAL_CH341=m
 CONFIG_USB_SERIAL_WHITEHEAT=m
 CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP2101=m
+CONFIG_USB_SERIAL_CP210X=m
 CONFIG_USB_SERIAL_CYPRESS_M8=m
 CONFIG_USB_SERIAL_EMPEG=m
 CONFIG_USB_SERIAL_FTDI_SIO=m
@@ -3175,16 +3722,22 @@ CONFIG_USB_SERIAL_MOTOROLA=m
 CONFIG_USB_SERIAL_NAVMAN=m
 CONFIG_USB_SERIAL_PL2303=m
 CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
 CONFIG_USB_SERIAL_SPCP8X5=m
 CONFIG_USB_SERIAL_HP4X=m
 CONFIG_USB_SERIAL_SAFE=m
 # CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
 CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
 CONFIG_USB_SERIAL_TI=m
 CONFIG_USB_SERIAL_CYBERJACK=m
 CONFIG_USB_SERIAL_XIRCOM=m
 CONFIG_USB_SERIAL_OPTION=m
 CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
 # CONFIG_USB_SERIAL_DEBUG is not set
 
 #
@@ -3197,14 +3750,9 @@ CONFIG_USB_SEVSEG=m
 CONFIG_USB_RIO500=m
 CONFIG_USB_LEGOTOWER=m
 CONFIG_USB_LCD=m
-CONFIG_USB_BERRY_CHARGE=m
 CONFIG_USB_LED=m
 CONFIG_USB_CYPRESS_CY7C63=m
 CONFIG_USB_CYTHERM=m
-CONFIG_USB_PHIDGET=m
-CONFIG_USB_PHIDGETKIT=m
-CONFIG_USB_PHIDGETMOTORCONTROL=m
-CONFIG_USB_PHIDGETSERVO=m
 CONFIG_USB_IDMOUSE=m
 CONFIG_USB_FTDI_ELAN=m
 CONFIG_USB_APPLEDISPLAY=m
@@ -3215,7 +3763,6 @@ CONFIG_USB_TRANCEVIBRATOR=m
 CONFIG_USB_IOWARRIOR=m
 CONFIG_USB_TEST=m
 CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_VST=m
 CONFIG_USB_ATM=m
 CONFIG_USB_SPEEDTOUCH=m
 CONFIG_USB_CXACRU=m
@@ -3233,26 +3780,43 @@ CONFIG_USB_GADGET_SELECTED=y
 # CONFIG_USB_GADGET_LH7A40X is not set
 # CONFIG_USB_GADGET_OMAP is not set
 # CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
 # CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
+# CONFIG_USB_GADGET_IMX is not set
 # CONFIG_USB_GADGET_S3C2410 is not set
 # CONFIG_USB_GADGET_M66592 is not set
 # CONFIG_USB_GADGET_AMD5536UDC is not set
 # CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
 CONFIG_USB_GADGET_NET2280=y
 CONFIG_USB_NET2280=m
 # CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
 # CONFIG_USB_GADGET_DUMMY_HCD is not set
 CONFIG_USB_GADGET_DUALSPEED=y
 # CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
 CONFIG_USB_ETH=m
 CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
 CONFIG_USB_GADGETFS=m
 CONFIG_USB_FILE_STORAGE=m
 # CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_MASS_STORAGE is not set
 CONFIG_USB_G_SERIAL=m
 CONFIG_USB_MIDI_GADGET=m
 CONFIG_USB_G_PRINTER=m
 # CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_MULTI is not set
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_NOP_USB_XCEIV=m
 CONFIG_UWB=m
 CONFIG_UWB_HWA=m
 CONFIG_UWB_WHCI=m
@@ -3276,11 +3840,14 @@ CONFIG_SDIO_UART=m
 #
 CONFIG_MMC_SDHCI=m
 CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_PLTFM=m
 CONFIG_MMC_WBSD=m
 CONFIG_MMC_TIFM_SD=m
 CONFIG_MMC_SPI=m
 CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
 CONFIG_MEMSTICK=m
 # CONFIG_MEMSTICK_DEBUG is not set
 
@@ -3301,20 +3868,33 @@ CONFIG_LEDS_CLASS=m
 #
 # LED drivers
 #
+# CONFIG_LEDS_ALIX2 is not set
 CONFIG_LEDS_PCA9532=m
-CONFIG_LEDS_HP_DISK=m
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+CONFIG_LEDS_LP3944=m
 CONFIG_LEDS_CLEVO_MAIL=m
 CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_TRIGGERS=y
 
 #
 # LED Triggers
 #
-CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_IDE_DISK=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
 CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
 CONFIG_ACCESSIBILITY=y
 CONFIG_A11Y_BRAILLE_CONSOLE=y
 # CONFIG_INFINIBAND is not set
@@ -3324,11 +3904,16 @@ CONFIG_EDAC=y
 # Reporting subsystems
 #
 # CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
 CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
 CONFIG_EDAC_E752X=m
 CONFIG_EDAC_I82975X=m
 CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
 CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
 CONFIG_EDAC_I5000=m
 CONFIG_EDAC_I5100=m
 CONFIG_RTC_LIB=m
@@ -3357,9 +3942,11 @@ CONFIG_RTC_DRV_PCF8563=m
 CONFIG_RTC_DRV_PCF8583=m
 CONFIG_RTC_DRV_M41T80=m
 CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
 CONFIG_RTC_DRV_S35390A=m
 CONFIG_RTC_DRV_FM3130=m
 CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
 
 #
 # SPI RTC drivers
@@ -3371,6 +3958,7 @@ CONFIG_RTC_DRV_MAX6902=m
 CONFIG_RTC_DRV_R9701=m
 CONFIG_RTC_DRV_RS5C348=m
 CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
 
 #
 # Platform RTC drivers
@@ -3384,18 +3972,24 @@ CONFIG_RTC_DRV_STK17TA8=m
 CONFIG_RTC_DRV_M48T86=m
 CONFIG_RTC_DRV_M48T35=m
 CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
 CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
 CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM8350=m
+CONFIG_RTC_DRV_PCF50633=m
 
 #
 # on-CPU RTC drivers
 #
+# CONFIG_RTC_DRV_PCAP is not set
+CONFIG_RTC_DRV_MC13783=m
 CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
 
 #
 # DMA Devices
 #
+CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y
 CONFIG_INTEL_IOATDMA=m
 CONFIG_DMA_ENGINE=y
 
@@ -3403,6 +3997,7 @@ CONFIG_DMA_ENGINE=y
 # DMA Clients
 #
 CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
 # CONFIG_DMATEST is not set
 CONFIG_DCA=m
 CONFIG_AUXDISPLAY=y
@@ -3415,25 +4010,144 @@ CONFIG_UIO=m
 CONFIG_UIO_CIF=m
 CONFIG_UIO_PDRV=m
 CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_SMX=m
+CONFIG_UIO_AEC=m
 CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+
+#
+# TI VLYNQ
+#
+
+#
+# Xen driver support
+#
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_SCRUB_PAGES=y
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XENFS=m
+CONFIG_XEN_COMPAT_XENFS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
 CONFIG_STAGING=y
 # CONFIG_STAGING_EXCLUDE_BUILD is not set
 CONFIG_ET131X=m
 # CONFIG_ET131X_DEBUG is not set
 CONFIG_SLICOSS=m
-CONFIG_SXG=m
-CONFIG_ME4000=m
 CONFIG_VIDEO_GO7007=m
 CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
 CONFIG_USB_IP_COMMON=m
 CONFIG_USB_IP_VHCI_HCD=m
 CONFIG_USB_IP_HOST=m
+# CONFIG_USB_IP_DEBUG_ENABLE is not set
 CONFIG_W35UND=m
 CONFIG_PRISM2_USB=m
 CONFIG_ECHO=m
-CONFIG_USB_ATMEL=m
 CONFIG_POCH=m
+CONFIG_OTUS=m
+CONFIG_RT2860=m
+CONFIG_RT2870=m
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+CONFIG_R8187SE=m
+CONFIG_RTL8192SU=m
+CONFIG_RTL8192U=m
+CONFIG_RTL8192E=m
+# CONFIG_TRANZPORT is not set
+
+#
+# Qualcomm MSM Camera And Video
+#
+
+#
+# Camera Sensor Selection
+#
+CONFIG_INPUT_GPIO=m
+CONFIG_POHMELFS=m
+# CONFIG_POHMELFS_DEBUG is not set
+CONFIG_POHMELFS_CRYPTO=y
+CONFIG_IDE_PHISON=m
+CONFIG_LINE6_USB=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_FB_UDL=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_BLOCK=m
+CONFIG_HYPERV_NET=m
+# CONFIG_VME_BUS is not set
+
+#
+# RAR Register Driver
+#
+# CONFIG_RAR_REGISTER is not set
+# CONFIG_IIO is not set
+CONFIG_RAMZSWAP=m
+CONFIG_RAMZSWAP_STATS=y
+# CONFIG_BATMAN_ADV is not set
+CONFIG_SAMSUNG_LAPTOP=m
+# CONFIG_STRIP is not set
+CONFIG_PCMCIA_WAVELAN=m
+CONFIG_PCMCIA_NETWAVE=m
+CONFIG_FB_SM7XX=m
+CONFIG_DT3155=m
+CONFIG_CRYSTALHD=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_ACPI_ASUS=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
 
 #
 # Firmware Drivers
@@ -3456,14 +4170,15 @@ CONFIG_EXT2_FS_POSIX_ACL=y
 CONFIG_EXT2_FS_SECURITY=y
 # CONFIG_EXT2_FS_XIP is not set
 CONFIG_EXT3_FS=m
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
 CONFIG_EXT3_FS_XATTR=y
 CONFIG_EXT3_FS_POSIX_ACL=y
 CONFIG_EXT3_FS_SECURITY=y
 CONFIG_EXT4_FS=m
-CONFIG_EXT4DEV_COMPAT=y
 CONFIG_EXT4_FS_XATTR=y
 CONFIG_EXT4_FS_POSIX_ACL=y
 CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
 CONFIG_JBD=m
 # CONFIG_JBD_DEBUG is not set
 CONFIG_JBD2=m
@@ -3471,7 +4186,7 @@ CONFIG_JBD2=m
 CONFIG_FS_MBCACHE=m
 CONFIG_REISERFS_FS=m
 # CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_PROC_INFO=y
 CONFIG_REISERFS_FS_XATTR=y
 CONFIG_REISERFS_FS_POSIX_ACL=y
 CONFIG_REISERFS_FS_SECURITY=y
@@ -3479,38 +4194,57 @@ CONFIG_JFS_FS=m
 CONFIG_JFS_POSIX_ACL=y
 CONFIG_JFS_SECURITY=y
 # CONFIG_JFS_DEBUG is not set
-# CONFIG_JFS_STATISTICS is not set
+CONFIG_JFS_STATISTICS=y
 CONFIG_FS_POSIX_ACL=y
-CONFIG_FILE_LOCKING=y
 CONFIG_XFS_FS=m
 CONFIG_XFS_QUOTA=y
 CONFIG_XFS_POSIX_ACL=y
 CONFIG_XFS_RT=y
 # CONFIG_XFS_DEBUG is not set
 CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
 CONFIG_OCFS2_FS=m
 CONFIG_OCFS2_FS_O2CB=m
 CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
 CONFIG_OCFS2_FS_STATS=y
 # CONFIG_OCFS2_DEBUG_MASKLOG is not set
 # CONFIG_OCFS2_DEBUG_FS is not set
-# CONFIG_OCFS2_COMPAT_JBD is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
 CONFIG_DNOTIFY=y
 CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
 CONFIG_QUOTA=y
 CONFIG_QUOTA_NETLINK_INTERFACE=y
 # CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
 CONFIG_QFMT_V1=m
 CONFIG_QFMT_V2=m
 CONFIG_QUOTACTL=y
+CONFIG_QUOTACTL_COMPAT=y
 # CONFIG_AUTOFS_FS is not set
 CONFIG_AUTOFS4_FS=m
 CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
 CONFIG_GENERIC_ACL=y
 
 #
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
 # CD-ROM/DVD Filesystems
 #
 CONFIG_ISO9660_FS=m
@@ -3544,20 +4278,10 @@ CONFIG_TMPFS_POSIX_ACL=y
 # CONFIG_HUGETLBFS is not set
 # CONFIG_HUGETLB_PAGE is not set
 CONFIG_CONFIGFS_FS=m
-
-#
-# Layered filesystems
-#
-CONFIG_ECRYPT_FS=m
-CONFIG_UNION_FS=m
-CONFIG_UNION_FS_XATTR=y
-# CONFIG_UNION_FS_DEBUG is not set
-
-#
-# Miscellaneous filesystems
-#
+CONFIG_MISC_FILESYSTEMS=y
 # CONFIG_ADFS_FS is not set
 CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
 CONFIG_HFS_FS=m
 CONFIG_HFSPLUS_FS=m
 CONFIG_BEFS_FS=m
@@ -3575,6 +4299,7 @@ CONFIG_JFFS2_ZLIB=y
 # CONFIG_JFFS2_LZO is not set
 CONFIG_JFFS2_RTIME=y
 # CONFIG_JFFS2_RUBIN is not set
+CONFIG_LOGFS=m
 CONFIG_CRAMFS=m
 CONFIG_SQUASHFS=m
 # CONFIG_SQUASHFS_EMBEDDED is not set
@@ -3589,11 +4314,15 @@ CONFIG_OMFS_FS=m
 CONFIG_UFS_FS=m
 # CONFIG_UFS_FS_WRITE is not set
 # CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
 CONFIG_NFS_V3=y
 CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
 CONFIG_NFSD=m
 CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
@@ -3606,11 +4335,12 @@ CONFIG_NFS_ACL_SUPPORT=m
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
-# CONFIG_SUNRPC_REGISTER_V4 is not set
 CONFIG_RPCSEC_GSS_KRB5=m
 CONFIG_RPCSEC_GSS_SPKM3=m
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CEPH_FS=m
+# CONFIG_CEPH_FS_PRETTYDEBUG is not set
 CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
 # CONFIG_CIFS_STATS2 is not set
@@ -3619,6 +4349,7 @@ CONFIG_CIFS_WEAK_PW_HASH=y
 CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
 # CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
 # CONFIG_CIFS_EXPERIMENTAL is not set
 CONFIG_NCP_FS=m
 # CONFIG_NCPFS_PACKET_SIGNING is not set
@@ -3632,7 +4363,9 @@ CONFIG_NCPFS_NLS=y
 CONFIG_CODA_FS=m
 CONFIG_AFS_FS=m
 # CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
 CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
 
 #
 # Partition Types
@@ -3648,7 +4381,8 @@ CONFIG_BSD_DISKLABEL=y
 # CONFIG_MINIX_SUBPARTITION is not set
 CONFIG_SOLARIS_X86_PARTITION=y
 # CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
 # CONFIG_SGI_PARTITION is not set
 # CONFIG_ULTRIX_PARTITION is not set
 # CONFIG_SUN_PARTITION is not set
@@ -3694,7 +4428,7 @@ CONFIG_NLS_ISO8859_14=m
 CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_KOI8_R=m
 CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=y
+CONFIG_NLS_UTF8=m
 CONFIG_DLM=m
 # CONFIG_DLM_DEBUG is not set
 
@@ -3707,6 +4441,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_FRAME_WARN=2048
 CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
 CONFIG_UNUSED_SYMBOLS=y
 CONFIG_DEBUG_FS=y
 # CONFIG_HEADERS_CHECK is not set
@@ -3715,7 +4450,10 @@ CONFIG_DEBUG_KERNEL=y
 CONFIG_DETECT_SOFTLOCKUP=y
 # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
 CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-# CONFIG_SCHED_DEBUG is not set
+CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
 # CONFIG_SCHEDSTATS is not set
 CONFIG_TIMER_STATS=y
 # CONFIG_DEBUG_OBJECTS is not set
@@ -3731,6 +4469,7 @@ CONFIG_DEBUG_MUTEXES=y
 # CONFIG_LOCK_STAT is not set
 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
 # CONFIG_DEBUG_KOBJECT is not set
 CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_DEBUG_INFO is not set
@@ -3740,49 +4479,79 @@ CONFIG_DEBUG_BUGVERBOSE=y
 CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_LIST is not set
 # CONFIG_DEBUG_SG is not set
-# CONFIG_FRAME_POINTER is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
 # CONFIG_BOOT_PRINTK_DELAY is not set
 # CONFIG_RCU_TORTURE_TEST is not set
 # CONFIG_RCU_CPU_STALL_DETECTOR is not set
 # CONFIG_BACKTRACE_SELF_TEST is not set
 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_LKDTM=m
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_LATENCYTOP is not set
 CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
 CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
 CONFIG_HAVE_DYNAMIC_FTRACE=y
 CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-
-#
-# Tracers
-#
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
 # CONFIG_FUNCTION_TRACER is not set
 # CONFIG_IRQSOFF_TRACER is not set
 # CONFIG_PREEMPT_TRACER is not set
 # CONFIG_SYSPROF_TRACER is not set
 # CONFIG_SCHED_TRACER is not set
-# CONFIG_CONTEXT_SWITCH_TRACER is not set
+# CONFIG_FTRACE_SYSCALLS is not set
 # CONFIG_BOOT_TRACER is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_KSYM_TRACER is not set
 # CONFIG_STACK_TRACER is not set
+# CONFIG_KMEMTRACE is not set
+# CONFIG_WORKQUEUE_TRACER is not set
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
-# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
-# CONFIG_STRICT_DEVMEM is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_KMEMCHECK is not set
+CONFIG_STRICT_DEVMEM=y
 CONFIG_X86_VERBOSE_BOOTUP=y
 CONFIG_EARLY_PRINTK=y
 # CONFIG_EARLY_PRINTK_DBGP is not set
 # CONFIG_DEBUG_STACKOVERFLOW is not set
 # CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_PAGEALLOC is not set
 # CONFIG_DEBUG_PER_CPU_MAPS is not set
 # CONFIG_X86_PTDUMP is not set
 # CONFIG_DEBUG_RODATA is not set
-# CONFIG_DIRECT_GBPAGES is not set
 # CONFIG_DEBUG_NX_TEST is not set
 # CONFIG_IOMMU_DEBUG is not set
-# CONFIG_MMIOTRACE is not set
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
 CONFIG_IO_DELAY_TYPE_0X80=0
 CONFIG_IO_DELAY_TYPE_0XED=1
 CONFIG_IO_DELAY_TYPE_UDELAY=2
@@ -3795,6 +4564,7 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0
 # CONFIG_DEBUG_BOOT_PARAMS is not set
 # CONFIG_CPA_DEBUG is not set
 # CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
 
 #
 # Security options
@@ -3805,13 +4575,25 @@ CONFIG_SECURITY=y
 CONFIG_SECURITYFS=y
 CONFIG_SECURITY_NETWORK=y
 # CONFIG_SECURITY_NETWORK_XFRM is not set
-CONFIG_SECURITY_FILE_CAPABILITIES=y
-CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
+# CONFIG_SECURITY_PATH is not set
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
 # CONFIG_SECURITY_SMACK is not set
+# CONFIG_SECURITY_TOMOYO is not set
+# CONFIG_IMA is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
 CONFIG_XOR_BLOCKS=m
 CONFIG_ASYNC_CORE=m
 CONFIG_ASYNC_MEMCPY=m
 CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
 CONFIG_CRYPTO=y
 
 #
@@ -3828,10 +4610,13 @@ CONFIG_CRYPTO_HASH=m
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_RNG=m
 CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=y
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
 CONFIG_CRYPTO_GF128MUL=m
 CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
 CONFIG_CRYPTO_CRYPTD=m
 CONFIG_CRYPTO_AUTHENC=m
 CONFIG_CRYPTO_TEST=m
@@ -3853,18 +4638,21 @@ CONFIG_CRYPTO_ECB=m
 CONFIG_CRYPTO_LRW=m
 CONFIG_CRYPTO_PCBC=m
 CONFIG_CRYPTO_XTS=m
+CONFIG_CRYPTO_FPU=m
 
 #
 # Hash modes
 #
 CONFIG_CRYPTO_HMAC=m
 CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
 
 #
 # Digest
 #
 CONFIG_CRYPTO_CRC32C=m
 CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
 CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
@@ -3877,12 +4665,14 @@ CONFIG_CRYPTO_SHA256=m
 CONFIG_CRYPTO_SHA512=m
 CONFIG_CRYPTO_TGR192=m
 CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
 
 #
 # Ciphers
 #
 CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_AES_X86_64=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
 CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_BLOWFISH=m
@@ -3905,6 +4695,7 @@ CONFIG_CRYPTO_TWOFISH_X86_64=m
 # Compression
 #
 CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
 CONFIG_CRYPTO_LZO=m
 
 #
@@ -3912,15 +4703,26 @@ CONFIG_CRYPTO_LZO=m
 #
 CONFIG_CRYPTO_ANSI_CPRNG=m
 CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
 CONFIG_CRYPTO_DEV_HIFN_795X=m
 CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
 CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
 CONFIG_VIRTUALIZATION=y
 CONFIG_KVM=m
 CONFIG_KVM_INTEL=m
 CONFIG_KVM_AMD=m
-# CONFIG_VIRTIO_PCI is not set
-# CONFIG_VIRTIO_BALLOON is not set
+CONFIG_VHOST_NET=m
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_RING=m
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_BINARY_PRINTF=y
 
 #
 # Library routines
@@ -3928,6 +4730,7 @@ CONFIG_KVM_AMD=m
 CONFIG_BITREVERSE=y
 CONFIG_GENERIC_FIND_FIRST_BIT=y
 CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
 CONFIG_CRC_CCITT=m
 CONFIG_CRC16=m
 CONFIG_CRC_T10DIF=m
@@ -3935,16 +4738,22 @@ CONFIG_CRC_ITU_T=m
 CONFIG_CRC32=y
 CONFIG_CRC7=m
 CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=m
 CONFIG_LZO_COMPRESS=m
-CONFIG_LZO_DECOMPRESS=m
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_LZO=y
 CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
 CONFIG_TEXTSEARCH_FSM=m
-CONFIG_PLIST=y
+CONFIG_BTREE=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
 CONFIG_CHECK_SIGNATURE=y
+CONFIG_NLATTR=y
+CONFIG_LRU_CACHE=m
diff --git a/abs/core-testing/kernel26/coretemp.patch b/abs/core-testing/kernel26/coretemp.patch
deleted file mode 100644
index 07ce434..0000000
--- a/abs/core-testing/kernel26/coretemp.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-diff -ubr orig/linux-2.6.28/Documentation/hwmon/coretemp linux-2.6.28/Documentation/hwmon/coretemp
---- orig/linux-2.6.28/Documentation/hwmon/coretemp	2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.28/Documentation/hwmon/coretemp	2009-07-18 07:29:37.000000000 +0200
-@@ -4,7 +4,7 @@
- Supported chips:
-   * All Intel Core family
-     Prefix: 'coretemp'
--    CPUID: family 0x6, models 0xe, 0xf, 0x16, 0x17
-+    CPUID: family 0x6, models 0xe, 0xf, 0x16, 0x17, 0x1c
-     Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual
-                Volume 3A: System Programming Guide
-                http://softwarecommunity.intel.com/Wiki/Mobility/720.htm
-@@ -14,10 +14,11 @@
- Description
- -----------
- 
--This driver permits reading temperature sensor embedded inside Intel Core CPU.
--Temperature is measured in degrees Celsius and measurement resolution is
--1 degree C. Valid temperatures are from 0 to TjMax degrees C, because
--the actual value of temperature register is in fact a delta from TjMax.
-+This driver permits reading temperature sensor embedded inside Intel
-+Core  and Intel Atom CPUs. Temperature is measured in degrees Celsius
-+and measurement resolution is 1 degree C. Valid temperatures are from 0
-+to TjMax degrees C, because the actual value of temperature register is
-+in fact a delta from TjMax.
- 
- Temperature known as TjMax is the maximum junction temperature of processor.
- Intel defines this temperature as 85C or 100C. At this temperature, protection
-@@ -35,4 +36,5 @@
- 
- The TjMax temperature is set to 85 degrees C if undocumented model specific
- register (UMSR) 0xee has bit 30 set. If not the TjMax is 100 degrees C as
--(sometimes) documented in processor datasheet.
-+(sometimes) documented in processor datasheet. The Intel Atom has TjMax 95C
-+as per the specification.
-diff -ubr orig/linux-2.6.28/drivers/hwmon/coretemp.c linux-2.6.28/drivers/hwmon/coretemp.c
---- orig/linux-2.6.28/drivers/hwmon/coretemp.c	2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.28/drivers/hwmon/coretemp.c	2009-07-18 08:12:16.000000000 +0200
-@@ -1,7 +1,7 @@
- /*
-  * coretemp.c - Linux kernel module for hardware monitoring
-  *
-- * Copyright (C) 2007 Rudolf Marek <r.marek@assembler.cz>
-+ * Copyright (C) 2007, 2008 Rudolf Marek <r.marek@assembler.cz>
-  *
-  * Inspired from many hwmon drivers
-  *
-@@ -244,8 +244,14 @@
- 		}
- 	}
- 
-+	/* Intel Atom has only fixed TjMax at 95C */
-+
-+	if (c->x86_model == 0x1c) {
-+		data->tjmax = 95000;
-+	} else {
-+		/* Adjust the TjMax for the rest of Core2 family */
- 	data->tjmax = adjust_tjmax(c, data->id, &pdev->dev);
--	platform_set_drvdata(pdev, data);
-+	}
- 
- 	/* read the still undocumented IA32_TEMPERATURE_TARGET it exists
- 	   on older CPUs but not in this register */
-@@ -265,6 +271,8 @@
- 		}
- 	}
- 
-+	platform_set_drvdata(pdev, data);
-+
- 	if ((err = sysfs_create_group(&pdev->dev.kobj, &coretemp_group)))
- 		goto exit_dev;
- 
-@@ -413,11 +421,11 @@
- 	for_each_online_cpu(i) {
- 		struct cpuinfo_x86 *c = &cpu_data(i);
- 
--		/* check if family 6, models 0xe, 0xf, 0x16, 0x17, 0x1A */
-+		/* check if family 6, models 0xe, 0xf, 0x16, 0x17, 0x1A, 0x1C */
- 		if ((c->cpuid_level < 0) || (c->x86 != 0x6) ||
- 		    !((c->x86_model == 0xe) || (c->x86_model == 0xf) ||
- 			(c->x86_model == 0x16) || (c->x86_model == 0x17) ||
--			(c->x86_model == 0x1A))) {
-+			(c->x86_model == 0x1A) || (c->x86_model == 0x1C))) {
- 
- 			/* supported CPU not found, but report the unknown
- 			   family 6 CPU */
diff --git a/abs/core-testing/kernel26/ext4.patch b/abs/core-testing/kernel26/ext4.patch
deleted file mode 100644
index 40ecfde..0000000
--- a/abs/core-testing/kernel26/ext4.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-diff -ruaN linux-2.6.28.orig/fs/ext4/ext4.h linux-2.6.28/fs/ext4/ext4.h
---- linux-2.6.28.orig/fs/ext4/ext4.h	2008-12-24 23:26:37.000000000 +0000
-+++ linux-2.6.28/fs/ext4/ext4.h	2009-08-17 04:22:43.000000000 +0000
-@@ -254,6 +254,7 @@
- #define EXT4_STATE_NEW			0x00000002 /* inode is newly created */
- #define EXT4_STATE_XATTR		0x00000004 /* has in-inode xattrs */
- #define EXT4_STATE_NO_EXPAND		0x00000008 /* No space for expansion */
-+#define EXT4_STATE_DA_ALLOC_CLOSE	0x00000010 /* Alloc DA blks on close */
- 
- /* Used to pass group descriptor data when online resize is done */
- struct ext4_new_group_input {
-@@ -301,7 +302,9 @@
- #define EXT4_IOC_GROUP_EXTEND		_IOW('f', 7, unsigned long)
- #define EXT4_IOC_GROUP_ADD		_IOW('f', 8, struct ext4_new_group_input)
- #define EXT4_IOC_MIGRATE		_IO('f', 9)
-+ /* note ioctl 10 reserved for an early version of the FIEMAP ioctl */
-  /* note ioctl 11 reserved for filesystem-independent FIEMAP ioctl */
-+#define EXT4_IOC_ALLOC_DA_BLKS		_IO('f', 12)
- 
- /*
-  * ioctl commands in 32 bit emulation
-@@ -1088,6 +1091,7 @@
- extern void ext4_truncate(struct inode *);
- extern void ext4_set_inode_flags(struct inode *);
- extern void ext4_get_inode_flags(struct ext4_inode_info *);
-+extern int ext4_alloc_da_blocks(struct inode *inode);
- extern void ext4_set_aops(struct inode *inode);
- extern int ext4_writepage_trans_blocks(struct inode *);
- extern int ext4_meta_trans_blocks(struct inode *, int nrblocks, int idxblocks);
-diff -ruaN linux-2.6.28.orig/fs/ext4/file.c linux-2.6.28/fs/ext4/file.c
---- linux-2.6.28.orig/fs/ext4/file.c	2008-12-24 23:26:37.000000000 +0000
-+++ linux-2.6.28/fs/ext4/file.c	2009-08-17 04:15:17.000000000 +0000
-@@ -33,6 +33,10 @@
-  */
- static int ext4_release_file(struct inode *inode, struct file *filp)
- {
-+	if (EXT4_I(inode)->i_state & EXT4_STATE_DA_ALLOC_CLOSE) {
-+		ext4_alloc_da_blocks(inode);
-+		EXT4_I(inode)->i_state &= ~EXT4_STATE_DA_ALLOC_CLOSE;
-+	}
- 	/* if we are the last writer on the inode, drop the block reservation */
- 	if ((filp->f_mode & FMODE_WRITE) &&
- 			(atomic_read(&inode->i_writecount) == 1))
-diff -ruaN linux-2.6.28.orig/fs/ext4/inode.c linux-2.6.28/fs/ext4/inode.c
---- linux-2.6.28.orig/fs/ext4/inode.c	2008-12-24 23:26:37.000000000 +0000
-+++ linux-2.6.28/fs/ext4/inode.c	2009-08-17 04:34:48.000000000 +0000
-@@ -2686,6 +2686,42 @@
- 	return;
- }
- 
-+/*
-+ * Force all delayed allocation blocks to be allocated for a given inode.
-+ */
-+int ext4_alloc_da_blocks(struct inode *inode)
-+{
-+	if (!EXT4_I(inode)->i_reserved_data_blocks &&
-+	    !EXT4_I(inode)->i_reserved_meta_blocks)
-+		return 0;
-+	/*
-+	 * We do something simple for now.  The filemap_flush() will
-+	 * also start triggering a write of the data blocks, which is 
-+	 * not strictly speaking necessary (and for users of
-+	 * laptop_mode, not even desirable).  However, to do otherwise
-+	 * would require replicating code paths in:
-+	 *
-+	 * ext4_da_writepages() ->
-+	 *    write_cache_pages() ---> (via passed in callback function)
-+	 *        __mpage_da_writepage() -->
-+	 *           mpage_ad_bh_to_extent()
-+	 *           mpage_da_map_blocks()
-+	 *
-+	 * The problem is that write_cache_pages(), and then redirty all of
-+	 * the pages calling redirty_page_for_writeback() but that
-+	 * would be ugly in the extreme.  So instead we would need to
-+	 * replicate parts of the code in teh above functions,
-+	 * simplifying them because we wouldn't actually intend to
-+	 * write out the pages, but rather only collect contiguous
-+	 * logical block extents, call the multi-block allocator, and
-+	 * then update the buffer heads with the block allocations.
-+	 *
-+	 * For now, though we'll cheat by calling filemap_flush(),
-+	 * which will map the blocks, and start the I/O, but not
-+	 * actually wait for the I/O to complte.
-+	 */
-+	return filemap_flush(inode->i_mapping);
-+}
- 
- /*
-  * bmap() is special.  It gets used by applications such as lilo and by
-@@ -3695,6 +3731,9 @@
- 	if (!ext4_can_truncate(inode))
- 		return;
- 
-+	if (inode->i_size == 0)
-+		ei->i_state |= EXT4_STATE_DA_ALLOC_CLOSE;
-+
- 	if (EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL) {
- 		ext4_ext_truncate(inode);
- 		return;
-diff -ruaN linux-2.6.28.orig/fs/ext4/ioctl.c linux-2.6.28/fs/ext4/ioctl.c
---- linux-2.6.28.orig/fs/ext4/ioctl.c	2008-12-24 23:26:37.000000000 +0000
-+++ linux-2.6.28/fs/ext4/ioctl.c	2009-08-17 04:38:43.000000000 +0000
-@@ -263,6 +263,20 @@
- 		return err;
- 	}
- 
-+	case EXT4_IOC_ALLOC_DA_BLKS:
-+	{
-+		int err;
-+		if (!is_owner_or_cap(inode))
-+			return -EACCES;
-+
-+		err = mnt_want_write(filp->f_path.mnt);
-+		if (err)
-+			return err;
-+		err = ext4_alloc_da_blocks(inode);
-+		mnt_drop_write(filp->f_path.mnt);
-+		return err;
-+	}
-+
- 	default:
- 		return -ENOTTY;
- 	}
-diff -ruaN linux-2.6.28.orig/fs/ext4/namei.c linux-2.6.28/fs/ext4/namei.c
---- linux-2.6.28.orig/fs/ext4/namei.c	2008-12-24 23:26:37.000000000 +0000
-+++ linux-2.6.28/fs/ext4/namei.c	2009-08-17 04:11:01.000000000 +0000
-@@ -2283,7 +2283,7 @@
- 	struct inode *old_inode, *new_inode;
- 	struct buffer_head *old_bh, *new_bh, *dir_bh;
- 	struct ext4_dir_entry_2 *old_de, *new_de;
--	int retval;
-+	int retval, force_da_alloc = 0;
- 
- 	old_bh = new_bh = dir_bh = NULL;
- 
-@@ -2421,6 +2421,7 @@
- 		ext4_mark_inode_dirty(handle, new_inode);
- 		if (!new_inode->i_nlink)
- 			ext4_orphan_add(handle, new_inode);
-+		force_da_alloc = 1;
- 	}
- 	retval = 0;
- 
-@@ -2429,6 +2430,8 @@
- 	brelse(old_bh);
- 	brelse(new_bh);
- 	ext4_journal_stop(handle);
-+	if (retval == 0 && force_da_alloc)
-+		ext4_alloc_da_blocks(old_inode);
- 	return retval;
- }
- 
diff --git a/abs/core-testing/kernel26/fbcondecor-2.6.34-fix.patch b/abs/core-testing/kernel26/fbcondecor-2.6.34-fix.patch
new file mode 100644
index 0000000..16e54f9
--- /dev/null
+++ b/abs/core-testing/kernel26/fbcondecor-2.6.34-fix.patch
@@ -0,0 +1,19 @@
+--- fbcondecor-0.9.6-2.6.33-rc7.patch	2010-07-05 19:01:13.000000000 +0200
++++ fbcondecor-0.9.6-2.6.33-rc7.patch	2010-07-05 19:06:43.000000000 +0200
+@@ -348,7 +348,7 @@
+ index 0000000..7654ec6
+ --- /dev/null
+ +++ b/drivers/video/console/cfbcondecor.c
+-@@ -0,0 +1,471 @@
++@@ -0,0 +1,472 @@
+ +/*
+ + *  linux/drivers/video/cfbcon_decor.c -- Framebuffer decor render functions
+ + *
+@@ -369,6 +369,7 @@
+ +#include <linux/types.h>
+ +#include <linux/fb.h>
+ +#include <linux/selection.h>
+++#include <linux/slab.h>
+ +#include <linux/vt_kern.h>
+ +#include <asm/irq.h>
+ +#include <asm/system.h>
diff --git a/abs/core-testing/kernel26/kernel26.install b/abs/core-testing/kernel26/kernel26.install
index f0bd904..2055db9 100644
--- a/abs/core-testing/kernel26/kernel26.install
+++ b/abs/core-testing/kernel26/kernel26.install
@@ -1,7 +1,8 @@
 # arg 1:  the new package version
 # arg 2:  the old package version
 
-KERNEL_VERSION=2.6.28-LinHES
+KERNEL_NAME=
+KERNEL_VERSION=2.6.34-LinHES
 
 post_install () {
   # updating module dependencies
@@ -16,18 +17,20 @@ post_install () {
   echo ">>> http://wiki.archlinux.org/index.php/Mkinitcpio"
   echo ""
   echo ">>> Generating initial ramdisk, using mkinitcpio.  Please wait..."
-  /sbin/mkinitcpio -p kernel26
+  /sbin/mkinitcpio -p kernel26${KERNEL_NAME}
 }
 
 post_upgrade() {
   pacman -Q grub &>/dev/null
   hasgrub=$?
+  pacman -Q grub2 &>/dev/null
+  hasgrub2=$?
   pacman -Q lilo &>/dev/null
   haslilo=$?
   # reminder notices
   if [ $haslilo -eq 0 ]; then
     echo ">>>"
-    if [ $hasgrub -eq 0 ]; then
+    if [ $hasgrub -eq 0 -o $hasgrub2 -eq 0 ]; then
       echo ">>> If you use the LILO bootloader, you should run 'lilo' before rebooting."
     else
       echo ">>> You appear to be using the LILO bootloader. You should run"
@@ -36,7 +39,7 @@ post_upgrade() {
     echo ">>>"
   fi
 
-  if grep "/boot" /etc/fstab 2>&1 >/dev/null; then
+  if grep "^[^#]*/boot" /etc/fstab 2>&1 >/dev/null; then
     if ! grep "/boot" /etc/mtab 2>&1 >/dev/null; then
       echo "WARNING: /boot appears to be a seperate partition but is not mounted"
       echo "         This is most likely not what you want.  Please mount your /boot"
@@ -88,8 +91,8 @@ post_upgrade() {
     echo ">>> Please change your bootloader config files:"
     echo ">>> Grub: /boot/grub/menu.lst | Lilo: /etc/lilo.conf"
     echo "------------------------------------------------"
-    echo "| - initrd26.img to kernel26.img               |"
-    echo "| - initrd26-full.img to kernel26-fallback.img |"
+    echo "| - initrd26.img to kernel26${KERNEL_NAME}.img               |"
+    echo "| - initrd26-full.img to kernel26${KERNEL_NAME}-fallback.img |"
     echo "------------------------------------------------"
   fi
   if [ "`vercmp $2 2.6.19`" -lt 0 ]; then
@@ -121,11 +124,11 @@ post_upgrade() {
   echo ""
   echo ">>> Generating initial ramdisk, using mkinitcpio.  Please wait..."
 if [ "`vercmp $2 2.6.19`" -lt 0 ]; then
-  /sbin/mkinitcpio -p kernel26 -m "ATTENTION:\nIf you get a kernel panic below
+  /sbin/mkinitcpio -p kernel26${KERNEL_NAME} -m "ATTENTION:\nIf you get a kernel panic below
 and are using an Intel chipset, append 'earlymodules=piix' to the
 kernel commandline"
 else
-  /sbin/mkinitcpio -p kernel26
+  /sbin/mkinitcpio -p kernel26${KERNEL_NAME}
 fi
 if [ "`vercmp $2 2.6.21`" -lt 0 ]; then
   echo ""
@@ -138,7 +141,7 @@ if [ "`vercmp $2 2.6.21`" -lt 0 ]; then
 fi
 }
 
-op=$1
-shift
-
-$op $*
+post_remove() {
+  rm -f /boot/kernel26${KERNEL_NAME}.img
+  rm -f /boot/kernel26${KERNEL_NAME}-fallback.img
+}
\ No newline at end of file
diff --git a/abs/core-testing/kernel26/kernel26.preset b/abs/core-testing/kernel26/kernel26.preset
index 269b23a..742a442 100644
--- a/abs/core-testing/kernel26/kernel26.preset
+++ b/abs/core-testing/kernel26/kernel26.preset
@@ -14,4 +14,4 @@ default_image="/boot/kernel26.img"
 
 #fallback_config="/etc/mkinitcpio.conf"
 fallback_image="/boot/kernel26-fallback.img" 
-fallback_options="-S autodetect"
+fallback_options="-S autodetect"
\ No newline at end of file
diff --git a/abs/core-testing/kernel26/logo_linux_clut224.ppm b/abs/core-testing/kernel26/logo_linux_clut224.ppm
deleted file mode 100644
index c539d32..0000000
--- a/abs/core-testing/kernel26/logo_linux_clut224.ppm
+++ /dev/null
@@ -1,883 +0,0 @@
-P3
-80 80
-255
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 24 24 24 95 95 95 143 148 147 219 219 219 224 224 224 224 224 224 221 221 221 
-231 231 230 232 232 232 217 218 217 194 194 194 143 148 147 61 61 61 1 1 1 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 65 65 65 
-179 180 180 224 224 224 141 142 141 85 85 85 25 25 26 2 2 2 0 0 0 0 0 0 
-0 0 0 0 0 0 11 11 11 35 37 37 95 95 95 179 180 180 221 221 221 136 141 140 
-28 28 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 24 24 191 191 191 194 194 194 
-73 73 73 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 16 16 109 109 110 
-224 223 222 104 104 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 73 73 73 234 234 234 104 104 104 1 1 1 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 
-20 20 20 204 204 204 119 120 120 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 35 35 36 228 228 227 56 56 56 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 28 28 28 69 69 69 45 47 47 7 7 7 
-0 0 0 16 16 16 159 159 159 197 197 197 8 8 8 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 1 1 1 208 207 206 88 88 88 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 51 51 51 111 114 112 109 109 110 51 51 51 
-2 2 2 0 0 0 1 1 1 146 149 148 167 167 166 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 81 79 75 197 202 202 1 1 1 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 61 61 61 104 104 104 81 79 75 43 43 43 
-8 8 8 0 0 0 0 0 0 7 7 7 213 213 213 65 65 65 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 191 191 191 88 88 88 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 28 28 28 28 28 28 7 7 7 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 65 65 65 228 228 227 20 20 20 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 1 1 1 246 246 246 22 22 22 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 159 160 131 131 131 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 8 8 8 246 246 246 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 65 65 197 197 197 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 12 12 12 241 241 241 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 22 22 22 5 5 5 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 225 224 224 56 56 56 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 7 7 7 246 246 246 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 
-20 20 20 43 43 43 31 31 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 4 4 4 25 25 26 31 31 31 20 20 20 65 65 65 20 20 20 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 146 149 148 124 129 126 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 3 3 3 254 254 254 4 4 4 0 0 0 0 0 0 31 31 31 104 104 104 
-119 120 120 51 51 51 28 28 28 20 20 20 0 0 0 0 0 0 0 0 0 0 0 0 
-7 7 7 73 73 73 131 131 131 153 159 160 159 159 159 153 159 160 35 35 36 24 24 24 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 95 95 175 172 168 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 4 4 4 254 254 254 4 4 4 0 0 0 25 25 26 141 142 141 187 186 186 
-197 197 197 167 167 166 65 65 65 4 4 4 0 0 0 0 0 0 0 0 0 9 9 9 
-109 109 110 179 180 180 197 197 197 208 207 206 213 213 213 191 191 191 123 123 123 7 7 7 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 65 65 187 186 186 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 1 1 1 241 241 241 5 5 5 0 0 0 85 85 85 208 207 206 226 227 227 
-235 235 235 246 246 246 221 221 221 22 22 22 0 0 0 0 0 0 0 0 0 85 85 85 
-217 218 217 246 246 246 226 227 227 167 167 166 202 202 202 239 239 239 197 197 197 73 73 73 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 40 40 217 218 217 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 235 235 235 7 7 7 0 0 0 131 136 135 159 159 159 11 11 11 
-69 69 69 131 136 135 246 246 246 104 104 104 0 0 0 0 0 0 0 0 0 123 123 123 
-236 237 236 203 203 203 20 20 20 20 20 20 88 88 88 124 129 126 246 246 246 194 194 194 
-7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 25 26 226 227 227 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 234 234 234 28 28 28 0 0 0 146 149 148 65 65 65 0 0 0 
-109 109 110 51 51 51 234 234 234 131 136 135 0 0 0 35 35 36 22 22 22 123 123 123 
-239 239 239 95 95 95 0 0 0 0 0 0 43 43 43 16 16 16 225 224 224 244 244 244 
-45 47 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 16 16 241 241 241 
-1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 217 218 217 51 51 51 1 1 1 131 131 131 85 85 85 0 0 0 
-22 22 22 28 28 28 208 207 206 127 128 122 58 43 7 58 43 7 30 20 1 73 73 73 
-231 230 229 65 65 65 0 0 0 0 0 0 0 0 0 0 0 0 202 202 202 246 246 246 
-43 43 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 246 246 246 
-24 24 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 172 176 175 85 85 85 0 0 0 73 73 73 187 186 186 5 5 5 
-0 0 0 30 20 1 190 146 50 224 170 17 221 175 7 221 175 7 201 165 9 191 150 3 
-220 185 82 91 70 38 8 6 3 1 1 0 0 0 0 43 43 43 239 239 239 228 228 227 
-11 11 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 232 232 232 
-35 35 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 172 176 175 95 95 95 0 0 0 9 9 9 204 204 204 131 136 135 
-91 61 1 204 146 9 217 163 7 232 191 11 232 191 11 226 196 19 219 193 11 197 162 19 
-226 196 19 219 193 11 201 165 9 130 96 8 107 93 64 228 228 227 248 248 248 112 118 114 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 235 235 
-16 16 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 143 148 147 109 109 110 0 0 0 0 0 0 81 79 75 227 180 59 
-204 146 9 234 184 12 239 191 15 237 191 8 238 196 12 238 196 12 226 196 19 231 199 39 
-231 199 39 231 199 39 219 193 11 219 193 11 219 193 11 227 180 59 192 156 83 8 6 3 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 239 239 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 131 131 131 111 114 112 0 0 0 30 20 1 155 102 4 198 139 9 
-230 172 11 238 184 11 237 191 8 238 196 12 238 196 12 226 196 19 231 199 39 220 185 82 
-231 199 39 231 199 39 226 196 19 219 193 11 219 193 11 219 193 11 226 196 19 159 120 9 
-4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
-20 20 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 131 131 131 123 123 123 0 0 0 120 77 2 187 136 3 217 155 7 
-229 171 7 238 184 8 238 184 8 238 196 12 238 196 12 231 199 39 231 199 39 231 199 39 
-231 199 39 219 193 11 219 193 11 219 193 11 219 193 11 191 150 3 197 162 19 201 165 9 
-30 20 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 202 202 202 
-56 56 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 119 120 120 141 142 141 1 1 0 104 68 5 175 125 4 217 155 7 
-229 171 7 238 184 8 238 196 12 238 196 12 226 196 19 231 199 39 231 199 39 226 196 19 
-219 193 11 219 193 11 219 193 11 191 150 3 191 150 3 201 165 9 217 155 7 183 127 3 
-4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 186 186 
-73 73 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51 51 51 
-143 148 147 224 223 222 225 224 224 146 149 148 4 4 4 8 6 3 130 96 8 175 125 4 
-217 163 7 238 184 8 238 196 12 231 199 39 231 199 39 226 196 19 226 196 19 219 193 11 
-201 165 9 191 150 3 175 125 4 191 150 3 216 159 5 206 148 3 198 139 9 91 70 38 
-0 0 0 0 0 0 5 5 5 45 47 47 12 12 12 0 0 0 0 0 0 167 167 166 
-88 88 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 20 20 159 159 159 226 227 227 
-172 176 175 136 141 140 123 135 137 124 131 129 112 118 114 45 47 47 141 122 119 130 96 8 
-155 102 4 191 150 3 219 193 11 219 193 11 201 165 9 191 150 3 191 150 3 175 125 4 
-191 150 3 191 150 3 191 150 3 187 136 3 188 133 20 190 146 50 175 172 168 175 172 168 
-25 25 26 0 0 0 1 1 1 56 56 56 94 100 97 56 56 56 2 2 2 95 95 95 
-172 176 175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 159 160 217 218 217 144 156 160 
-144 156 160 144 156 160 138 149 149 123 135 137 94 103 103 104 116 120 183 181 175 162 157 129 
-148 102 14 155 102 4 175 125 4 191 150 3 191 150 3 191 150 3 191 150 3 191 150 3 
-200 140 3 199 131 5 188 133 20 192 156 83 175 172 168 197 197 197 194 194 194 187 186 186 
-109 109 110 0 0 0 0 0 0 8 8 8 95 95 95 111 114 112 31 31 31 18 18 18 
-241 241 241 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 248 248 159 166 168 86 124 118 
-144 156 160 138 149 149 123 135 137 144 156 160 94 103 103 124 131 129 159 159 159 191 191 191 
-162 157 129 148 102 14 155 102 4 182 124 9 198 139 9 187 136 3 199 131 5 170 114 5 
-170 114 5 190 146 50 163 157 151 187 186 186 197 197 197 231 230 229 241 240 237 221 221 221 
-191 191 191 34 34 34 0 0 0 0 0 0 9 9 9 39 40 40 4 4 4 1 1 1 
-228 228 227 25 25 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 248 248 138 149 149 123 135 137 
-123 135 137 138 149 149 104 116 120 146 149 148 119 128 123 131 136 135 123 135 137 204 204 204 
-192 192 192 175 172 168 145 135 65 148 102 14 148 102 14 148 102 14 148 102 14 145 135 65 
-162 157 129 183 181 175 191 191 191 208 207 206 241 240 237 255 255 254 254 254 254 254 254 254 
-236 237 236 119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-146 149 148 131 131 131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 204 204 159 166 168 144 156 160 
-113 134 127 144 156 160 94 103 103 136 141 140 119 128 123 119 128 123 112 118 114 221 221 221 
-194 194 194 187 186 186 187 186 186 172 176 175 175 172 168 179 180 180 187 186 186 187 186 186 
-194 194 194 197 197 197 224 223 222 251 251 251 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 232 232 232 31 31 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-69 69 69 225 224 224 35 35 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 35 35 36 226 227 227 123 135 137 159 166 168 
-86 124 118 138 149 149 113 134 127 112 118 114 131 136 135 104 104 104 124 131 129 204 204 204 
-224 224 224 191 191 191 187 186 186 187 186 186 179 180 180 187 186 186 187 186 186 194 194 194 
-213 213 213 241 240 237 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 146 149 148 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 81 79 75 226 227 227 81 79 75 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 39 40 40 231 230 229 73 73 73 25 25 26 153 159 160 
-104 116 120 123 135 137 123 135 137 104 116 120 141 142 141 94 103 103 136 141 140 153 159 160 
-253 252 251 225 224 224 197 197 197 189 189 189 189 189 189 191 191 191 208 207 206 233 231 230 
-253 252 251 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 246 246 246 34 34 34 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 34 34 34 197 197 197 167 167 166 9 9 9 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 25 25 26 221 221 221 69 69 69 0 0 0 2 2 2 123 135 137 
-123 135 137 104 116 120 136 141 140 119 128 123 131 136 135 113 134 127 113 134 127 113 134 127 
-254 254 254 254 254 254 244 244 244 228 228 227 228 228 227 239 239 239 251 251 251 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 131 136 135 1 1 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 2 2 2 167 167 166 146 149 148 1 1 1 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 3 3 3 202 202 202 104 104 104 0 0 0 0 0 0 0 0 0 77 85 86 
-153 159 160 141 122 119 123 135 137 94 103 103 94 103 103 113 134 127 145 140 129 112 118 114 
-231 233 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 239 239 239 16 16 16 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 31 31 31 219 219 219 81 79 75 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 143 148 147 179 180 180 1 1 1 0 0 0 0 0 0 0 0 0 35 37 37 
-159 166 168 143 148 147 94 103 103 109 109 110 86 124 118 119 128 123 94 100 97 127 128 122 
-179 180 180 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 255 255 255 95 95 95 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43 43 43 236 237 236 20 20 20 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-3 3 3 235 235 235 25 25 26 0 0 0 0 0 0 0 0 0 0 0 0 8 8 8 
-138 149 149 123 135 137 77 85 86 112 118 114 94 103 103 104 116 120 111 114 112 145 140 129 
-143 148 147 254 254 254 254 254 254 253 252 251 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-251 251 251 241 241 241 246 246 246 254 254 254 179 180 180 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141 167 167 166 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-111 114 112 172 176 175 16 16 16 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 
-94 100 97 159 166 168 113 134 127 104 104 104 94 103 103 104 116 120 113 134 127 113 134 127 
-119 128 123 251 251 251 236 237 236 226 227 227 231 230 229 244 244 244 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 246 246 246 232 232 232 224 224 224 217 218 217 213 213 213 
-203 203 203 204 204 204 203 203 203 221 221 221 251 251 251 56 56 56 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 16 16 236 237 236 
-22 22 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 
-217 218 217 65 65 65 104 104 104 45 47 47 1 1 1 0 0 0 0 0 0 1 1 0 
-43 43 43 153 159 160 162 157 129 136 141 140 113 134 127 119 128 123 124 131 129 104 116 120 
-109 109 110 236 237 236 248 248 248 232 232 232 251 251 251 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 251 251 251 239 239 239 224 223 222 213 213 213 167 167 166 
-123 123 123 94 100 97 192 192 192 194 194 194 224 223 222 189 189 189 3 3 3 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 35 37 37 11 11 11 131 131 131 
-159 159 159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 47 47 
-213 213 213 9 9 9 119 120 120 123 123 123 43 43 43 3 3 3 0 0 0 0 0 0 
-35 37 37 138 149 149 113 134 127 111 114 112 119 128 123 94 103 103 124 129 126 94 103 103 
-124 131 129 197 202 202 251 251 251 253 252 251 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 246 246 246 153 159 160 
-73 73 73 4 4 4 189 189 189 197 197 197 197 197 197 235 235 235 85 85 85 0 0 0 
-0 0 0 0 0 0 0 0 0 12 12 12 65 65 65 81 79 75 11 11 11 12 12 12 
-251 251 251 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 123 123 
-136 141 140 0 0 0 39 40 40 109 109 110 123 123 123 104 104 104 56 56 56 24 24 24 
-131 136 135 167 167 166 131 136 135 112 118 114 124 131 129 112 118 114 124 131 129 112 118 114 
-119 128 123 159 166 168 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 219 219 219 109 109 110 
-16 16 16 1 1 0 172 176 175 231 231 230 208 207 206 203 203 203 213 213 213 18 18 18 
-3 3 3 35 37 37 85 85 85 104 104 104 65 65 65 9 9 9 0 0 0 0 0 0 
-240 240 239 12 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 186 186 
-73 73 73 0 0 0 1 1 1 18 18 18 61 61 61 109 109 110 123 123 123 124 129 126 
-136 141 140 153 159 160 153 159 160 138 149 149 146 149 148 138 149 149 146 149 148 138 149 149 
-138 149 149 159 166 168 253 252 251 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 192 192 192 88 88 88 
-4 4 4 0 0 0 141 142 141 254 254 254 239 239 239 202 202 202 187 186 186 136 141 140 
-112 118 114 95 95 95 61 61 61 22 22 22 2 2 2 0 0 0 0 0 0 0 0 0 
-204 204 204 51 51 51 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 219 219 
-39 40 40 0 0 0 0 0 0 0 0 0 1 1 1 16 16 16 56 56 56 95 95 95 
-112 118 114 123 123 123 127 128 122 127 128 122 124 129 126 124 131 129 131 136 135 136 141 140 
-136 141 140 141 142 141 159 159 159 159 159 159 112 118 114 104 104 104 232 232 232 254 254 254 
-254 254 254 254 254 254 219 219 219 175 172 168 153 159 160 131 131 131 131 131 131 61 61 61 
-2 2 2 0 0 0 51 51 51 131 131 131 123 123 123 111 114 112 95 95 95 56 56 56 
-28 28 28 5 5 5 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-146 149 148 104 104 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 225 224 224 
-35 35 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 11 11 11 
-25 25 26 51 51 51 73 73 73 88 88 88 94 100 97 104 104 104 104 104 104 94 100 97 
-104 104 104 95 95 95 88 88 88 65 65 65 12 12 12 1 1 1 69 69 69 254 254 254 
-254 254 254 221 221 221 31 31 31 61 61 61 73 73 73 81 79 75 56 56 56 11 11 11 
-0 0 0 0 0 0 5 5 5 24 24 24 24 24 24 12 12 12 4 4 4 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-141 142 141 104 104 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 227 227 
-34 34 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 2 2 2 9 9 9 12 12 12 12 12 12 16 16 16 18 18 18 
-12 12 12 7 7 7 4 4 4 1 1 1 0 0 0 0 0 0 1 1 1 234 234 234 
-254 254 254 136 141 140 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 
-131 131 131 124 129 126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 213 213 
-51 51 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 218 217 
-254 254 254 112 118 114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-153 159 160 119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141 
-131 131 131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 12 12 248 248 248 
-255 255 255 146 149 148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34 34 34 
-233 231 230 16 16 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 37 37 
-239 239 239 31 31 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 104 104 254 254 254 
-254 254 254 235 235 235 12 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 111 114 112 
-159 159 159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-159 159 159 141 142 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 40 40 236 237 236 254 254 254 
-254 254 254 254 254 254 159 159 159 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 241 241 
-61 61 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-197 197 197 65 65 65 0 0 0 8 8 8 16 16 16 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 73 73 73 232 232 232 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 159 159 159 16 16 16 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 228 227 
-35 37 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 5 5 
-244 244 244 7 7 7 0 0 0 73 73 73 236 237 236 131 136 135 43 43 43 1 1 1 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 24 24 24 94 100 97 194 194 194 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 235 235 235 131 131 131 45 47 47 2 2 2 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 197 197 
-65 65 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 47 47 
-204 204 204 0 0 0 0 0 0 111 114 112 255 255 255 255 255 255 255 255 255 225 224 224 
-167 167 166 131 131 131 104 104 104 88 88 88 88 88 88 104 104 104 131 131 131 167 167 166 
-203 203 203 225 224 224 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 231 231 230 
-172 176 175 131 131 131 94 100 97 81 79 75 69 69 69 73 73 73 95 95 95 123 123 123 
-175 172 168 191 191 191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 176 175 
-88 88 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 
-175 172 168 0 0 0 1 1 0 131 136 135 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 
-240 240 239 228 228 227 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 219 219 219 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 131 136 135 
-124 129 126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 
-179 180 180 0 0 0 0 0 0 141 142 141 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-240 240 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 219 219 219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141 
-111 114 112 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 25 26 159 159 159 224 223 222 
-167 167 166 0 0 0 1 1 1 141 142 141 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-240 240 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 
-255 255 255 204 204 204 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 141 142 141 
-119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 2 2 2 131 131 131 240 235 222 231 198 127 231 199 39 
-190 146 50 58 43 7 1 1 0 131 131 131 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-239 239 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 
-254 254 254 153 159 160 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 141 142 141 
-111 114 112 2 2 2 16 16 16 34 34 34 35 35 36 16 16 16 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 1 1 0 163 157 151 218 210 190 233 177 11 239 191 15 239 191 15 
-239 194 10 230 173 7 104 68 5 127 128 122 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-239 239 239 231 231 230 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 253 252 251 253 252 251 
-237 229 207 141 122 119 5 4 2 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141 
-244 244 244 240 235 222 240 235 222 237 229 207 237 229 207 237 229 207 208 207 206 51 51 51 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 95 95 95 237 229 207 224 170 17 233 177 11 237 185 13 239 191 15 
-239 191 15 239 191 15 233 179 8 192 156 83 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-239 239 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 240 235 222 222 169 38 
-215 152 18 219 157 11 204 146 9 188 133 20 148 102 14 130 96 8 148 102 14 188 133 20 
-190 146 50 215 152 18 215 152 18 221 159 7 217 155 7 215 152 18 220 185 82 236 237 236 
-25 25 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 28 28 28 233 231 230 227 180 59 215 152 18 223 162 13 233 177 11 238 184 11 
-239 191 15 238 184 11 239 191 15 238 196 12 214 199 171 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-241 241 241 226 227 227 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 255 255 255 255 255 254 253 252 251 203 181 131 198 139 9 
-204 146 9 219 157 11 219 157 11 215 152 18 219 157 11 215 152 18 215 152 18 215 152 18 
-223 162 13 224 170 17 230 172 11 233 177 11 231 175 8 223 162 13 215 152 18 231 198 127 
-141 142 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 11 11 
-85 85 85 230 228 223 220 185 82 204 146 9 219 157 11 230 172 11 234 181 11 236 184 12 
-237 185 13 237 185 13 238 184 11 239 194 10 239 191 15 249 244 230 253 252 251 255 255 255 
-255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 251 251 251 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 255 255 255 254 254 254 240 235 222 182 124 9 199 131 5 
-217 155 7 221 159 7 227 169 7 233 176 9 230 172 11 230 172 11 230 172 11 233 177 11 
-233 177 11 235 179 10 235 179 10 236 183 11 234 181 11 230 172 11 224 170 17 227 180 59 
-231 233 233 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 61 61 61 88 88 88 146 149 148 191 191 191 230 228 223 
-237 229 207 190 146 50 215 152 18 219 157 11 230 172 11 233 177 11 234 182 11 236 185 13 
-237 185 13 237 185 13 237 185 13 238 184 11 239 194 10 227 180 59 249 244 230 255 255 255 
-255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 235 235 235 202 202 202 203 181 131 170 114 5 198 139 9 
-216 159 5 227 169 7 234 178 8 236 182 10 234 181 11 234 181 11 234 181 11 234 182 11 
-236 183 11 234 181 11 236 182 10 236 183 11 236 182 10 231 175 8 224 170 17 215 152 18 
-244 244 244 34 34 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 131 131 131 240 235 222 231 198 127 231 198 127 227 180 59 188 133 20 
-204 146 9 217 144 7 219 157 11 227 166 7 233 177 11 236 182 10 237 185 11 237 185 13 
-237 185 13 237 185 13 239 191 15 238 184 11 238 184 8 232 191 11 220 185 82 255 255 255 
-255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 248 248 248 197 197 197 192 192 192 192 156 83 170 114 5 204 146 9 
-221 159 7 229 171 7 234 180 8 236 184 10 237 185 11 237 185 11 236 183 11 235 183 10 
-235 183 10 236 184 11 237 185 11 237 183 10 237 181 9 235 179 10 227 169 7 198 139 9 
-218 210 190 119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-1 1 0 111 114 112 237 229 207 222 169 38 223 162 13 227 166 7 224 170 17 230 172 11 
-230 172 11 230 172 11 230 172 11 233 176 9 236 180 8 237 183 10 237 185 11 237 185 12 
-237 185 13 237 185 13 237 185 13 236 186 12 238 184 8 236 186 12 232 191 11 214 199 171 
-255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 248 248 248 197 197 197 187 186 186 192 156 83 182 124 9 198 139 9 
-217 163 7 233 176 6 236 182 9 237 183 10 236 184 10 237 183 10 236 182 9 235 182 10 
-235 183 10 235 184 12 236 186 12 235 183 9 237 181 9 235 179 10 227 169 7 217 155 7 
-192 156 83 238 236 230 28 28 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 203 203 203 227 180 59 215 152 18 224 170 17 233 177 11 235 179 10 236 180 8 
-236 180 8 236 180 8 234 180 8 235 179 10 235 181 9 236 183 11 236 184 11 236 185 13 
-237 185 13 237 185 13 237 185 13 237 185 13 238 184 11 238 184 8 237 191 8 226 196 19 
-240 235 222 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 248 248 248 197 197 197 192 192 192 192 156 83 175 125 4 204 146 9 
-221 159 7 233 176 6 235 181 9 235 181 9 235 183 9 235 182 10 235 183 10 235 183 10 
-235 183 10 235 184 11 236 184 12 235 183 9 236 180 8 234 178 8 230 172 11 217 155 7 
-198 139 9 203 181 131 240 235 222 56 56 56 0 0 0 0 0 0 0 0 0 0 0 0 
-
-1 1 1 217 218 217 227 180 59 227 169 7 235 179 10 236 182 10 237 183 10 237 183 10 
-236 182 9 236 182 9 235 183 9 235 183 9 235 183 10 236 184 11 236 184 11 236 184 11 
-236 185 13 237 185 13 237 185 13 237 185 13 237 185 13 237 185 11 236 182 9 232 191 11 
-227 180 59 248 248 248 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 208 207 206 189 189 189 192 156 83 183 127 3 217 155 7 
-227 169 7 236 182 10 233 179 8 234 178 8 235 181 9 235 182 10 235 182 10 235 183 10 
-235 183 10 235 183 10 236 184 10 235 183 9 234 180 8 234 180 8 229 171 7 223 162 13 
-217 155 7 199 131 5 220 185 82 238 236 230 167 167 166 39 40 40 0 0 0 0 0 0 
-
-0 0 0 217 218 217 220 185 82 215 152 18 233 177 11 236 182 10 236 183 11 237 185 11 
-236 185 13 236 184 12 236 184 10 236 184 10 236 183 11 236 184 11 236 183 11 236 184 11 
-236 184 12 237 185 12 237 185 13 237 185 13 237 185 13 237 185 11 238 184 8 237 191 8 
-222 189 8 231 198 127 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 219 219 219 179 180 180 107 93 64 198 139 9 206 148 3 
-227 169 7 234 178 7 234 180 8 234 178 7 235 181 9 235 182 10 235 182 10 235 183 10 
-235 183 10 235 183 10 236 184 10 235 183 9 234 180 8 234 178 8 233 176 9 229 171 7 
-223 162 13 219 157 11 217 144 7 215 152 18 220 185 82 249 244 230 124 129 126 0 0 0 
-
-1 1 1 194 194 194 220 185 82 219 157 11 230 172 11 234 181 11 235 184 11 235 184 11 
-235 184 11 235 183 10 235 183 10 235 183 10 235 182 10 236 183 11 236 183 11 236 184 12 
-236 184 12 236 184 12 236 185 13 236 185 13 237 184 12 235 184 12 236 184 11 237 183 10 
-238 196 12 221 175 7 237 229 207 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 197 197 197 39 40 40 104 68 5 187 136 3 206 148 3 
-227 169 7 234 178 7 235 181 9 234 180 8 235 181 9 235 182 10 235 182 10 236 183 11 
-235 182 10 235 183 10 235 183 10 235 183 10 235 183 9 235 181 9 235 181 9 235 179 10 
-231 175 8 227 166 7 219 157 11 215 152 18 215 152 18 222 169 38 225 224 224 1 1 1 
-
-0 0 0 179 180 180 231 198 127 204 146 9 230 172 11 234 181 11 234 181 11 235 183 10 
-235 183 10 235 183 10 235 183 10 235 183 10 235 183 10 236 183 11 236 183 11 236 183 11 
-236 183 11 236 184 11 236 184 11 235 184 11 234 184 12 234 184 12 235 184 11 237 185 11 
-238 184 8 237 191 8 222 169 38 249 244 230 253 252 251 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 194 194 194 25 25 26 1 1 0 104 68 5 187 136 3 217 155 7 
-227 169 7 234 178 7 235 181 9 235 182 10 235 182 10 235 183 10 235 183 10 236 183 11 
-236 183 11 236 183 11 236 183 11 236 184 11 236 184 11 236 184 10 236 184 10 237 183 10 
-235 181 9 233 177 11 227 169 7 219 157 11 217 144 7 231 198 127 197 197 197 2 2 2 
-
-1 1 1 153 159 160 231 198 127 215 152 18 224 170 17 233 177 11 235 184 11 236 182 10 
-236 182 10 235 182 10 235 182 10 235 182 10 235 184 11 236 183 11 236 183 11 236 183 11 
-236 183 11 236 183 11 235 184 11 235 184 11 235 184 11 234 184 12 234 182 11 236 184 11 
-238 184 8 234 187 8 232 191 11 220 185 82 253 252 251 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-241 241 241 119 120 120 4 4 4 0 0 0 0 0 0 130 96 8 187 136 3 216 159 5 
-230 173 7 234 178 7 234 180 8 235 183 9 236 184 11 236 184 12 236 184 11 237 185 11 
-237 185 11 236 183 11 236 183 11 236 184 11 236 184 11 236 184 11 236 185 13 237 185 12 
-236 184 12 235 179 10 223 162 13 199 131 5 220 185 82 219 219 219 11 11 11 0 0 0 
-
-0 0 0 136 141 140 231 198 127 215 152 18 223 162 13 233 177 11 237 184 12 238 184 11 
-236 182 10 235 182 10 235 182 10 235 182 10 235 182 10 236 183 11 236 183 11 236 184 11 
-237 185 11 236 184 12 235 184 11 235 184 11 235 184 12 234 182 11 235 184 11 235 183 10 
-236 182 9 233 181 8 222 189 8 221 175 7 231 198 127 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 251 251 251 159 159 159 
-28 28 28 0 0 0 0 0 0 0 0 0 8 6 3 130 96 8 200 140 3 221 159 7 
-229 171 7 233 176 6 234 178 7 234 187 8 237 185 13 237 185 13 237 185 13 237 185 12 
-237 185 11 236 184 11 235 184 11 235 184 11 236 184 11 237 185 12 237 185 12 237 185 13 
-237 185 13 230 172 11 199 131 5 215 152 18 246 246 246 31 31 31 2 2 2 1 1 1 
-
-0 0 0 159 159 159 231 198 127 215 152 18 227 166 7 235 179 10 236 183 11 237 185 11 
-236 183 11 235 181 9 233 179 8 234 180 8 235 181 9 236 183 11 236 183 11 236 184 11 
-236 184 11 236 185 13 236 185 13 236 185 13 236 185 13 234 184 12 234 182 11 235 183 9 
-234 178 7 233 181 8 221 175 7 221 175 7 198 139 9 214 199 171 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 244 244 244 167 167 166 45 47 47 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 30 20 1 155 102 4 200 140 3 216 159 5 
-229 171 7 233 176 6 235 183 9 234 184 12 235 184 12 237 185 13 236 186 12 236 186 12 
-237 185 11 235 184 11 235 184 11 235 184 11 235 184 12 236 185 13 237 185 13 238 184 11 
-233 177 11 217 144 7 222 169 38 246 246 246 109 109 110 2 2 2 0 0 0 0 0 0 
-
-0 0 0 213 213 213 227 180 59 217 144 7 227 166 7 233 176 9 234 180 8 236 182 10 
-236 182 10 233 176 6 231 175 8 231 175 8 233 179 8 236 182 10 236 183 11 236 184 12 
-236 184 12 236 185 13 236 185 13 236 185 13 235 184 12 234 184 12 235 184 11 235 183 9 
-236 180 8 234 178 7 227 169 7 217 163 7 204 146 9 130 96 8 81 79 75 167 167 166 
-232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 253 252 251 
-239 239 239 204 204 204 146 149 148 85 85 85 16 16 16 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 30 20 1 155 102 4 206 148 3 217 163 7 
-229 171 7 233 176 6 233 181 8 234 184 12 236 185 13 237 185 13 237 185 12 236 185 13 
-235 184 11 235 184 11 235 184 11 234 182 11 234 182 11 233 176 9 230 172 11 229 171 7 
-215 152 18 231 198 127 233 231 230 69 69 69 5 4 2 0 0 0 0 0 0 0 0 0 
-
-18 18 18 244 244 244 215 152 18 217 155 7 221 159 7 223 165 7 227 169 7 230 173 7 
-231 175 8 230 173 7 231 175 8 231 175 8 233 176 6 234 180 8 236 182 10 237 184 12 
-237 184 12 237 185 12 237 185 13 237 185 13 237 185 13 236 185 13 235 184 12 236 184 11 
-236 182 9 237 183 8 229 171 7 217 163 7 204 146 9 170 114 5 91 61 1 1 1 0 
-2 2 2 31 31 31 39 40 40 43 43 43 43 43 43 39 40 40 35 37 37 20 20 20 
-3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 1 1 0 58 43 7 170 114 5 200 140 3 216 159 5 
-229 171 7 233 176 6 234 178 7 235 183 9 235 184 11 237 185 12 237 185 12 235 181 9 
-235 179 10 234 181 11 235 179 10 233 176 9 231 175 8 230 172 11 215 152 18 215 152 18 
-240 235 222 141 142 141 16 16 16 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-43 43 43 249 244 230 215 152 18 204 146 9 204 146 9 204 146 9 217 155 7 217 155 7 
-216 159 5 216 159 5 223 165 7 223 165 7 227 169 7 229 171 7 231 175 8 233 176 9 
-235 179 10 235 179 10 236 183 11 237 185 11 236 183 11 236 183 11 236 183 11 236 183 11 
-236 183 11 234 180 8 227 169 7 216 159 5 187 136 3 170 114 5 104 68 5 15 12 7 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 91 61 1 155 102 4 200 140 3 217 155 7 
-223 165 7 230 173 7 233 176 6 234 178 7 233 179 8 236 180 8 235 179 10 233 176 9 
-233 176 9 230 173 7 227 166 7 223 165 7 215 152 18 190 146 50 231 198 127 241 240 237 
-85 85 85 5 4 2 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-4 4 4 202 202 202 237 229 207 192 156 83 188 133 20 182 124 9 182 124 9 183 127 3 
-199 131 5 198 139 9 204 146 9 204 146 9 204 146 9 206 148 3 217 155 7 217 163 7 
-223 165 7 223 165 7 230 173 7 233 179 8 234 178 8 234 178 8 234 178 8 233 176 9 
-231 175 8 229 171 7 216 159 5 198 139 9 175 125 4 155 102 4 104 68 5 30 20 1 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 58 43 7 155 102 4 183 127 3 200 140 3 
-216 159 5 223 165 7 229 171 7 233 176 6 231 175 8 231 175 8 229 171 7 227 166 7 
-223 165 7 217 155 7 204 146 9 188 133 20 231 198 127 224 223 222 119 120 120 22 22 22 
-1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 3 3 3 95 95 95 179 180 180 234 234 234 237 229 207 203 181 131 192 156 83 
-188 133 20 159 120 9 170 114 5 182 124 9 182 124 9 182 124 9 183 127 3 187 136 3 
-198 139 9 198 139 9 217 155 7 217 163 7 223 165 7 223 165 7 223 165 7 223 165 7 
-216 159 5 204 146 9 198 139 9 175 125 4 155 102 4 120 77 2 91 61 1 15 12 7 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 58 43 7 120 77 2 170 114 5 183 127 3 
-200 140 3 206 148 3 216 159 5 216 159 5 221 159 7 216 159 5 217 155 7 204 146 9 
-198 139 9 182 124 9 190 146 50 218 210 190 146 149 148 7 7 7 0 0 0 1 1 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 45 47 47 109 109 110 159 166 168 
-226 227 227 248 248 248 218 210 190 203 181 131 192 156 83 148 102 14 148 102 14 148 102 14 
-155 102 4 170 114 5 182 124 9 183 127 3 187 136 3 198 139 9 198 139 9 198 139 9 
-187 136 3 182 124 9 170 114 5 155 102 4 130 96 8 104 68 5 58 43 7 8 6 3 
-73 73 73 141 142 141 179 180 180 203 203 203 208 207 206 213 213 213 213 213 213 219 219 219 
-234 234 234 235 235 235 236 237 236 235 235 235 236 237 236 239 239 239 234 234 234 240 240 239 
-224 224 224 225 224 224 217 218 217 131 131 131 58 43 7 120 77 2 155 102 4 170 114 5 
-182 124 9 183 127 3 198 139 9 200 140 3 200 140 3 200 140 3 187 136 3 175 125 4 
-155 102 4 192 156 83 230 228 223 85 85 85 1 1 1 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 
-1 1 1 35 35 36 81 79 75 104 104 104 146 149 148 208 207 206 233 231 230 214 199 171 
-162 157 129 148 102 14 130 96 8 148 102 14 155 102 4 170 114 5 170 114 5 155 102 4 
-155 102 4 155 102 4 130 96 8 120 77 2 104 68 5 91 61 1 167 167 166 233 231 230 
-172 176 175 88 88 88 43 43 43 12 12 12 8 8 8 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 20 20 20 179 180 180 162 157 129 91 61 1 120 77 2 155 102 4 
-170 114 5 170 114 5 175 125 4 182 124 9 182 124 9 170 114 5 155 102 4 130 96 8 
-203 181 131 197 197 197 35 35 36 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 1 1 1 2 2 2 1 1 1 1 1 1 22 22 22 73 73 73 
-131 136 135 192 192 192 230 228 223 162 157 129 107 93 64 104 68 5 120 77 2 130 96 8 
-130 96 8 120 77 2 104 68 5 91 61 1 91 70 38 224 223 222 123 123 123 7 7 7 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 1 1 1 43 43 43 228 228 227 91 70 38 91 61 1 104 68 5 
-120 77 2 130 96 8 155 102 4 155 102 4 155 102 4 120 77 2 107 93 64 214 199 171 
-172 176 175 7 7 7 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-1 1 1 1 1 1 24 24 24 111 114 112 218 210 190 218 210 190 141 122 119 107 93 64 
-107 93 64 91 70 38 107 93 64 175 172 168 249 244 230 109 109 110 1 1 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 1 1 1 88 88 88 246 246 246 175 172 168 145 135 65 
-91 70 38 91 61 1 58 43 7 91 61 1 107 93 64 163 157 151 237 229 207 109 109 110 
-4 4 4 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 65 65 65 145 140 129 163 157 151 
-175 172 168 218 210 190 197 197 197 141 122 119 18 18 18 1 1 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 35 35 36 95 95 95 146 149 148 
-197 197 197 221 221 221 231 230 229 235 235 235 187 186 186 123 123 123 12 12 12 1 1 1 
-1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
diff --git a/abs/core-testing/kernel26/logo_linux_mono.pbm b/abs/core-testing/kernel26/logo_linux_mono.pbm
deleted file mode 100644
index 7b1369c..0000000
--- a/abs/core-testing/kernel26/logo_linux_mono.pbm
+++ /dev/null
@@ -1,95 +0,0 @@
-P1
-# CREATOR: GIMP PNM Filter Version 1.1
-80 80
-1111111111111111111111111111111111000000000000111111111111111111111111
-1111111111111111111111111111111111111111100000010101000000111111111111
-1111111111111111111111111111111111111111111111111100011111111111110000
-1111111111111111111111111111111111111111111111111111111111000111111111
-1111111100011111111111111111111111111111111111111111111111111111111100
-1111111111111110111100111111111111111111111111111111111111111111111111
-1111111001111111111111111000110001111111111111111111111111111111111111
-1111111111111111000111111111111111001111110011111111111111111111111111
-1111111111111111111111111100111111111111111111111111001111111111111111
-1111111111111111111111111111111111110011111111111111111111111110011111
-1111111111111111111111111111111111111111111110011111111111111111111111
-1110011111111111111111111111111111111111111111111111111100111111111111
-1111111111111100111111111111111111111111111111111111111111111111100111
-1110111111111111011111100011111111111111111111111111111111111111111111
-1111110011100111111110000001111111001111111111111111111111111111111111
-1111111111111110011100000111110000000111111100111111111111111111111111
-1111111111111111111111111100100000001110000000001111111001111111111111
-1111111111111111111111111111111111100110000000111000000000111111001111
-1111111111111111111111111111111111111111111111001001000011100011010001
-1111100111111111111111111111111111111111111111111111111001100110000100
-0011100011111100111111111111111111111111111111111111111111111111110010
-0111000000001111000111111001111111111111111111111111111111111111111111
-1111110011000000000000000000111111001111111111111111111111111111111111
-1111111111111111001100000000000000000011111110011111111111111111111111
-1111111111111111111111111100110000000000000000001111110011111111111111
-1111111111111111111111111111111111110010000000000000000000111111100111
-1111111111111111111111111111111111111111111111001000000000000000000011
-1111100111111111111111111111111111111111111111111111110000110000000000
-0000000011111110011111111111111111111111111111111111111111111100000000
-0000000000000000001110001001111111111111111111111111111111111111111111
-1000000000000000000000000000011100110011111111111111111111111111111111
-1111111111000000000000000000000000000001111110011111111111111111111111
-1111111111111111111110000000000000000000000000000011111100111111111111
-1111111111111111111111111111110000000000000000000000000000000111110011
-1111111111111111111111111111111111111111100000000000000000000000000000
-0111111000111111111111111111111111111111111111111000000000000000000000
-0000000000011111110001111111111111111111111111111111111111100110000000
-0000000000000000000000111111110011111111111111111111111111111111111100
-1110000000000000000000000000000011111111000111111111111111111111111111
-1111111000111000000000000000000000000000000111111110011111111111111111
-1111111111111111001111110000000000000000000000000000011111111100111111
-1111111111111111111111111100011111000000000000000000000000000000111111
-1100011111111111111111111111111111110001111100000000000000000000000000
-0000111111111001111111111111111111111111111110010011111000000000000000
-0000000000000001111100110011111111111111111111111111111001100001000000
-0000000000000000001000000111001110011111111111111111111111111111100111
-0000000000000000000000000000110000000001111100111111111111111111111111
-1111001111111000000000000000000000000011000000111111110011111111111111
-1111111111111110011111111000000000000100000000011110101111111111001111
-1111111111111111111111110011111111111111111111110000111111111111111111
-1111001111111111111111111111111111100111111111111111111111100011111111
-1111111111111100111111111111111111111111111110011111111111111111111100
-0011111111111111111111100111111111111111111111111111111000111111111111
-1111111100000111111111111111111110011111111111111111111111111111110011
-1111111111111111100000011111111111111111111001111111111111111111111111
-1111110011111111111111111100000000111111111111111111100111111111111111
-1111111111111110011000111111111111000000000000111111111111111100011111
-1111111111111111111111111100100000000000000000000000000000000010000011
-1110011111111111111111111111111111100110000000000000000000000000000000
-0000000011111001111111111111111111111111111110011000000000000000000000
-0000000000000000000111100111111111111111111111111111100001000000000000
-0000000000000000000000000000111110011111111111111111111111111100000010
-0000000000000000000000000000000000000001111001111111111111111111111111
-1000000000000000000000000000000000000000000000001111100000000111111111
-1111111111000000000000000000000000000000000000000000000000000000000000
-0001111111111111111000000000000000000000000000000000000000000000000000
-0000000000000111111111111111000000000000000000000000000000000000000000
-0000000000000000000000011111111111000000000000000000000000000000000000
-0000000000000000000000000000000001111111110000000000000000000000000000
-0000000000000000000000000000000000000000000011111110000000000000000000
-0000000000000000000000000000000000000000000000000000001111111000000000
-0000000000000000000000000000000000000000000000000000000000000000001111
-0000000000000000000000000000000000000000000000000000000000000000000000
-0000000111100000000000000000000000000000000000000000000000000000000000
-0000000000000000000110000000000000000000000000000000000000000000000000
-0000000000000000000000000000011000000000000000000000000000000000000000
-0000000000001000000000000000000000000000000000000000000000000000000000
-0000000000000000000001100000000000000000000000001110000000000000000000
-0000000000000000000000000000011110000000000000000000000000111000000000
-0000000000000000000000000000000000000011111000000000000000000000000111
-1000000000000000000000000000000000000000000001111111100000000000000000
-0000001111000000000000000000000000000000001000000001011111111100000000
-0000000000000001111110000000000000000000000000000001111111111111111111
-1110000000000000000000011111110000000000000000000000000000000111111111
-1111111111110000000000000000000011111111110000000000000000000000000000
-1111111111111111111111100000000000000000111111111111101000000000000000
-0000000000010000000000000000000000000000000000001111111111111111111010
-0000000000000000000100000010101010101010100000000000000001111111111111
-1111111111111100000000000001000011111111111111111110001000000000011111
-1111111111111111111111111110100000000000111111111111111111111100000000
-0000011111111111111111111111111111111111100000000111111111111111111111
-111000000000011111111111111111
\ No newline at end of file
diff --git a/abs/core-testing/kernel26/logo_linux_vga16.ppm b/abs/core-testing/kernel26/logo_linux_vga16.ppm
deleted file mode 100644
index 8b2d1ea..0000000
--- a/abs/core-testing/kernel26/logo_linux_vga16.ppm
+++ /dev/null
@@ -1,883 +0,0 @@
-P3
-80 80
-255
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 36 26 8 102 124 121 157 146 143 232 232 232 232 232 232 232 232 232 232 232 232 
-232 232 232 232 232 232 232 232 232 214 202 162 157 146 143 44 44 44 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
-157 146 143 232 232 232 157 146 143 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 214 202 162 232 232 232 157 146 143 
-36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 214 202 162 232 232 232 
-44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
-232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 102 124 121 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 44 44 44 44 44 44 0 0 0 
-0 0 0 44 44 44 157 146 143 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 102 124 121 44 44 44 
-0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 102 124 121 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 118 110 50 44 44 44 
-0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 44 44 44 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 36 26 8 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 232 232 232 44 44 44 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-36 26 8 44 44 44 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 44 44 44 36 26 8 44 44 44 44 44 44 44 44 44 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 102 124 121 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 
-102 124 121 44 44 44 36 26 8 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 44 44 44 157 146 143 157 146 143 157 146 143 157 146 143 44 44 44 36 26 8 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 157 146 143 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 255 255 254 0 0 0 0 0 0 36 26 8 157 146 143 157 146 143 
-232 232 232 157 146 143 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-102 124 121 214 202 162 214 202 162 232 232 232 232 232 232 214 202 162 102 124 121 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 250 246 233 0 0 0 0 0 0 102 124 121 214 202 162 232 232 232 
-232 232 232 254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 102 124 121 
-232 232 232 232 232 232 232 232 232 157 146 143 214 202 162 232 232 232 232 232 232 44 44 44 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 102 124 121 157 146 143 0 0 0 
-44 44 44 157 146 143 232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 102 124 121 
-232 232 232 214 202 162 44 44 44 0 0 0 102 124 121 102 124 121 232 232 232 232 232 232 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 157 146 143 44 44 44 44 44 44 
-102 124 121 44 44 44 232 232 232 157 146 143 0 0 0 44 44 44 36 26 8 102 124 121 
-232 232 232 102 124 121 0 0 0 0 0 0 44 44 44 0 0 0 232 232 232 232 232 232 
-44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 157 146 143 102 124 121 0 0 0 
-0 0 0 44 44 44 214 202 162 157 146 143 36 26 8 36 26 8 36 26 8 44 44 44 
-232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162 254 254 254 
-44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
-36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 44 44 44 214 202 162 0 0 0 
-0 0 0 36 26 8 188 146 47 227 174 11 227 174 11 226 188 8 227 174 11 188 146 47 
-226 177 55 118 110 50 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 232 232 232 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
-44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 232 232 232 157 146 143 
-44 44 44 223 156 6 188 146 47 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 
-226 177 55 226 188 8 188 146 47 118 110 50 118 110 50 232 232 232 254 254 254 102 124 121 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 44 44 44 226 177 55 
-223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 
-226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 157 146 143 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 102 124 121 102 124 121 0 0 0 36 26 8 118 110 50 223 156 6 
-227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55 
-226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
-36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 118 110 50 223 156 6 223 156 6 
-223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55 
-226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 223 156 6 223 156 6 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
-44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 102 124 121 157 146 143 36 26 8 36 26 8 188 146 47 223 156 6 
-227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55 226 188 8 
-226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 223 156 6 223 156 6 188 146 47 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162 
-44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
-157 146 143 232 232 232 232 232 232 157 146 143 0 0 0 36 26 8 118 110 50 188 146 47 
-223 156 6 226 188 8 226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 226 188 8 
-226 188 8 188 146 47 188 146 47 188 146 47 188 146 47 223 156 6 188 146 47 36 26 8 
-36 26 8 0 0 0 0 0 0 44 44 44 36 26 8 0 0 0 0 0 0 157 146 143 
-102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 157 146 143 232 232 232 
-157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 44 44 44 118 110 50 118 110 50 
-118 110 50 223 156 6 226 188 8 226 188 8 226 188 8 188 146 47 226 188 8 188 146 47 
-188 146 47 188 146 47 188 146 47 188 146 47 188 146 47 188 146 47 157 146 143 214 202 162 
-36 26 8 0 0 0 0 0 0 44 44 44 102 124 121 44 44 44 0 0 0 102 124 121 
-157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 232 232 232 157 146 143 
-157 146 143 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 214 202 162 157 146 143 
-118 110 50 188 146 47 188 146 47 223 156 6 188 146 47 223 156 6 188 146 47 188 146 47 
-188 146 47 188 146 47 188 146 47 188 146 47 157 146 143 214 202 162 214 202 162 214 202 162 
-102 124 121 0 0 0 0 0 0 0 0 0 102 124 121 102 124 121 44 44 44 0 0 0 
-254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 157 146 143 102 124 121 
-157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 157 146 143 214 202 162 
-188 146 47 118 110 50 118 110 50 118 110 50 188 146 47 188 146 47 188 146 47 188 146 47 
-118 110 50 188 146 47 157 146 143 214 202 162 214 202 162 232 232 232 232 232 232 232 232 232 
-214 202 162 44 44 44 0 0 0 0 0 0 0 0 0 44 44 44 0 0 0 0 0 0 
-232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 157 146 143 102 124 121 
-102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 232 232 232 
-157 146 143 214 202 162 188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 188 146 47 
-188 146 47 214 202 162 157 146 143 232 232 232 232 232 232 232 232 232 254 254 254 232 232 232 
-232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 157 146 143 157 146 143 
-102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 232 232 232 
-232 232 232 214 202 162 157 146 143 214 202 162 157 146 143 214 202 162 157 146 143 214 202 162 
-157 146 143 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-44 44 44 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 102 124 121 232 232 232 
-102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121 102 124 121 214 202 162 
-232 232 232 157 146 143 232 232 232 157 146 143 214 202 162 157 146 143 232 232 232 214 202 162 
-232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 102 124 121 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 44 44 44 102 124 121 
-102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 157 146 143 
-232 232 232 232 232 232 157 146 143 232 232 232 157 146 143 232 232 232 214 202 162 232 232 232 
-232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 36 26 8 232 232 232 214 202 162 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 36 26 8 232 232 232 44 44 44 0 0 0 0 0 0 157 146 143 
-102 124 121 102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 
-254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 102 124 121 
-157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121 
-232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 157 146 143 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
-157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 
-214 202 162 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 102 124 121 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 254 254 254 36 26 8 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-157 146 143 157 146 143 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 
-157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 232 232 232 250 246 233 255 255 254 157 146 143 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-102 124 121 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 118 110 50 102 124 121 102 124 121 
-102 124 121 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 
-214 202 162 232 232 232 214 202 162 232 232 232 254 254 254 44 44 44 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
-36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-232 232 232 44 44 44 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
-44 44 44 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 
-102 124 121 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 157 146 143 
-102 124 121 102 124 121 214 202 162 214 202 162 232 232 232 214 202 162 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 0 0 0 157 146 143 
-157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
-232 232 232 0 0 0 102 124 121 157 146 143 44 44 44 0 0 0 0 0 0 0 0 0 
-44 44 44 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 
-102 124 121 214 202 162 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 157 146 143 
-44 44 44 0 0 0 214 202 162 232 232 232 157 146 143 232 232 232 102 124 121 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 0 0 0 0 0 0 
-254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
-157 146 143 0 0 0 44 44 44 102 124 121 102 124 121 102 124 121 44 44 44 44 44 44 
-157 146 143 157 146 143 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 
-157 146 143 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 102 124 121 
-44 44 44 0 0 0 157 146 143 232 232 232 232 232 232 214 202 162 232 232 232 36 26 8 
-0 0 0 36 26 8 102 124 121 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 
-254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162 
-44 44 44 0 0 0 0 0 0 36 26 8 44 44 44 102 124 121 102 124 121 102 124 121 
-157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 
-157 146 143 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 214 202 162 102 124 121 
-0 0 0 0 0 0 157 146 143 232 232 232 232 232 232 232 232 232 157 146 143 102 124 121 
-102 124 121 102 124 121 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 
-232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
-44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44 102 124 121 
-102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121 
-157 146 143 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 232 232 232 254 254 254 
-254 254 254 254 254 254 232 232 232 157 146 143 157 146 143 157 146 143 102 124 121 44 44 44 
-0 0 0 0 0 0 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 44 44 44 
-44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
-44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-44 44 44 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 
-102 124 121 102 124 121 102 124 121 44 44 44 36 26 8 0 0 0 44 44 44 255 255 254 
-254 254 254 232 232 232 36 26 8 44 44 44 102 124 121 44 44 44 44 44 44 44 44 44 
-0 0 0 0 0 0 0 0 0 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
-44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
-254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-102 124 121 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
-44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
-254 254 254 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
-102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
-254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
-232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
-232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 254 254 254 
-254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
-157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 254 254 254 
-254 254 254 255 255 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
-44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-214 202 162 44 44 44 0 0 0 0 0 0 36 26 8 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 250 246 233 254 254 254 254 254 254 
-254 254 254 254 254 254 255 255 254 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
-44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-254 254 254 0 0 0 0 0 0 102 124 121 232 232 232 157 146 143 44 44 44 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 36 26 8 102 124 121 214 202 162 255 255 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 157 146 143 44 44 44 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
-44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
-232 232 232 0 0 0 0 0 0 102 124 121 254 254 254 254 254 254 254 254 254 232 232 232 
-157 146 143 157 146 143 102 124 121 118 110 50 102 124 121 102 124 121 102 124 121 157 146 143 
-232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 
-214 202 162 102 124 121 102 124 121 44 44 44 102 124 121 44 44 44 102 124 121 102 124 121 
-157 146 143 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
-102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
-157 146 143 0 0 0 0 0 0 102 124 121 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 232 232 232 254 254 254 250 246 233 254 254 254 254 254 254 
-232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
-102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
-214 202 162 0 0 0 0 0 0 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
-102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 157 146 143 232 232 232 
-157 146 143 0 0 0 0 0 0 157 146 143 254 254 254 254 254 254 255 255 254 255 255 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-250 246 233 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
-102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 232 232 232 214 202 162 226 177 55 
-226 177 55 36 26 8 0 0 0 157 146 143 254 254 254 254 254 254 254 254 254 255 255 254 
-255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
-102 124 121 0 0 0 36 26 8 44 44 44 44 44 44 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 157 146 143 214 202 162 227 174 11 226 188 8 226 188 8 
-226 188 8 223 156 6 118 110 50 102 124 121 254 254 254 254 254 254 255 255 254 255 255 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 250 246 233 
-232 232 232 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
-250 246 233 232 232 232 232 232 232 232 232 232 214 202 162 232 232 232 232 232 232 44 44 44 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 102 124 121 232 232 232 227 174 11 227 174 11 226 188 8 226 188 8 
-226 188 8 226 188 8 227 174 11 188 146 47 255 255 254 255 255 254 255 255 254 255 255 254 
-255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-250 246 233 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 250 246 233 188 146 47 
-223 156 6 223 156 6 188 146 47 188 146 47 118 110 50 118 110 50 118 110 50 188 146 47 
-223 156 6 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6 226 177 55 232 232 232 
-36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 36 26 8 232 232 232 226 177 55 223 156 6 227 174 11 227 174 11 226 188 8 
-226 188 8 226 188 8 226 188 8 226 188 8 214 202 162 255 255 254 255 255 254 255 255 254 
-255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 226 177 55 223 156 6 
-223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 
-223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 214 202 162 
-157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-102 124 121 232 232 232 226 177 55 188 146 47 223 156 6 227 174 11 227 174 11 226 188 8 
-227 174 11 226 188 8 226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 255 255 254 
-255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 255 255 254 254 254 254 232 232 232 188 146 47 188 146 47 
-223 156 6 223 156 6 223 156 6 227 174 11 223 156 6 227 174 11 223 156 6 227 174 11 
-227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 226 177 55 
-232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 157 146 143 214 202 162 232 232 232 
-214 202 162 188 146 47 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 
-226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 
-255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 226 177 55 118 110 50 188 146 47 
-223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
-227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 188 146 47 
-250 246 233 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 102 124 121 250 246 233 214 202 162 214 202 162 226 177 55 188 146 47 
-223 156 6 223 156 6 223 156 6 223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 
-226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 255 255 254 
-255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 214 202 162 157 146 143 157 146 143 223 156 6 223 156 6 
-223 156 6 223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 
-226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 227 174 11 227 174 11 223 156 6 
-214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 102 124 121 232 232 232 223 156 6 223 156 6 223 156 6 223 156 6 227 174 11 
-223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8 227 174 11 
-226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 214 202 162 
-255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 232 232 232 232 232 232 214 202 162 188 146 47 118 110 50 188 146 47 
-223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
-227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 223 156 6 188 146 47 
-226 177 55 232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 214 202 162 226 177 55 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 
-227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
-227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 177 55 
-250 246 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 214 202 162 214 202 162 157 146 143 223 156 6 223 156 6 
-223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
-226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 223 156 6 
-188 146 47 226 177 55 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 232 232 232 226 177 55 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8 
-226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 
-226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 
-226 177 55 250 246 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 232 232 232 232 232 232 157 146 143 188 146 47 188 146 47 223 156 6 
-223 156 6 226 188 8 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
-227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 227 174 11 227 174 11 223 156 6 
-223 156 6 188 146 47 226 177 55 254 254 254 157 146 143 44 44 44 0 0 0 0 0 0 
-
-0 0 0 232 232 232 226 177 55 223 156 6 227 174 11 226 188 8 227 174 11 226 188 8 
-227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
-227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 
-226 188 8 214 202 162 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 232 232 232 157 146 143 102 124 121 223 156 6 223 156 6 
-223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
-226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 
-223 156 6 223 156 6 188 146 47 223 156 6 214 202 162 250 246 233 102 124 121 0 0 0 
-
-0 0 0 214 202 162 214 202 162 223 156 6 227 174 11 226 188 8 227 174 11 226 188 8 
-226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
-226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
-226 188 8 226 188 8 214 202 162 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 232 232 232 232 232 232 36 26 8 118 110 50 118 110 50 223 156 6 
-223 156 6 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
-226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 
-227 174 11 223 156 6 223 156 6 223 156 6 223 156 6 226 177 55 232 232 232 0 0 0 
-
-0 0 0 157 146 143 214 202 162 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 
-227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 
-226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 
-226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 214 202 162 0 0 0 0 0 0 118 110 50 223 156 6 223 156 6 
-223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 
-226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 
-227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 214 202 162 214 202 162 0 0 0 
-
-0 0 0 157 146 143 214 202 162 223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 
-226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
-227 174 11 226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 227 174 11 226 188 8 
-226 188 8 226 188 8 226 188 8 226 177 55 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 102 124 121 0 0 0 0 0 0 36 26 8 36 26 8 188 146 47 223 156 6 
-227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
-227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
-226 188 8 227 174 11 223 156 6 223 156 6 226 177 55 232 232 232 0 0 0 0 0 0 
-
-0 0 0 157 146 143 214 202 162 223 156 6 223 156 6 227 174 11 226 188 8 226 188 8 
-227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
-226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
-227 174 11 226 188 8 226 188 8 226 188 8 214 202 162 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 157 146 143 
-36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 188 146 47 223 156 6 223 156 6 
-223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 
-226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 
-226 188 8 227 174 11 223 156 6 188 146 47 232 232 232 36 26 8 0 0 0 0 0 0 
-
-0 0 0 157 146 143 226 177 55 223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 
-226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
-226 177 55 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
-226 188 8 227 174 11 227 174 11 227 174 11 223 156 6 214 202 162 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 157 146 143 44 44 44 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 110 50 223 156 6 223 156 6 
-227 174 11 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 
-227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 
-227 174 11 223 156 6 226 177 55 232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 
-
-0 0 0 232 232 232 226 177 55 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 
-226 188 8 227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 
-226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 
-227 174 11 226 188 8 227 174 11 223 156 6 223 156 6 118 110 50 118 110 50 157 146 143 
-232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-232 232 232 232 232 232 157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 118 110 50 223 156 6 223 156 6 
-223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 
-226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 
-223 156 6 214 202 162 232 232 232 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 
-
-36 26 8 250 246 233 188 146 47 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 
-227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8 
-227 174 11 226 188 8 226 188 8 226 188 8 226 177 55 227 174 11 226 188 8 226 188 8 
-227 174 11 226 188 8 223 156 6 223 156 6 223 156 6 188 146 47 36 26 8 0 0 0 
-0 0 0 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 36 26 8 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 36 26 8 36 26 8 118 110 50 223 156 6 223 156 6 
-227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 
-227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 
-232 232 232 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-44 44 44 250 246 233 223 156 6 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6 
-223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
-227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 227 174 11 
-226 188 8 227 174 11 227 174 11 223 156 6 188 146 47 118 110 50 118 110 50 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 223 156 6 223 156 6 223 156 6 
-223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 227 174 11 226 188 8 
-227 174 11 227 174 11 227 174 11 227 174 11 223 156 6 188 146 47 214 202 162 250 246 233 
-118 110 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 232 232 232 214 202 162 226 177 55 118 110 50 188 146 47 188 146 47 188 146 47 
-223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 227 174 11 
-227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
-227 174 11 227 174 11 223 156 6 188 146 47 223 156 6 118 110 50 118 110 50 36 26 8 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 36 26 8 36 26 8 118 110 50 118 110 50 223 156 6 
-223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
-227 174 11 223 156 6 223 156 6 223 156 6 214 202 162 232 232 232 102 124 121 36 26 8 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 102 124 121 157 146 143 250 246 233 214 202 162 214 202 162 188 146 47 
-118 110 50 188 146 47 118 110 50 223 156 6 118 110 50 223 156 6 188 146 47 223 156 6 
-188 146 47 223 156 6 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 
-223 156 6 223 156 6 223 156 6 118 110 50 118 110 50 118 110 50 36 26 8 36 26 8 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 188 146 47 188 146 47 188 146 47 
-223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 
-223 156 6 188 146 47 118 110 50 232 232 232 157 146 143 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 157 146 143 
-232 232 232 250 246 233 214 202 162 157 146 143 188 146 47 118 110 50 118 110 50 118 110 50 
-118 110 50 118 110 50 188 146 47 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6 
-188 146 47 223 156 6 118 110 50 188 146 47 118 110 50 118 110 50 36 26 8 36 26 8 
-44 44 44 157 146 143 157 146 143 232 232 232 214 202 162 232 232 232 214 202 162 232 232 232 
-232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 
-232 232 232 232 232 232 232 232 232 157 146 143 36 26 8 36 26 8 118 110 50 118 110 50 
-188 146 47 118 110 50 223 156 6 223 156 6 223 156 6 223 156 6 188 146 47 223 156 6 
-118 110 50 188 146 47 232 232 232 118 110 50 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 36 26 8 118 110 50 102 124 121 157 146 143 214 202 162 232 232 232 214 202 162 
-188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 
-118 110 50 118 110 50 118 110 50 118 110 50 36 26 8 118 110 50 157 146 143 232 232 232 
-214 202 162 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 214 202 162 157 146 143 118 110 50 118 110 50 188 146 47 
-118 110 50 223 156 6 118 110 50 188 146 47 118 110 50 188 146 47 118 110 50 118 110 50 
-157 146 143 214 202 162 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44 
-157 146 143 214 202 162 232 232 232 188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 
-118 110 50 118 110 50 118 110 50 36 26 8 118 110 50 214 202 162 157 146 143 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 118 110 50 36 26 8 36 26 8 
-118 110 50 118 110 50 118 110 50 118 110 50 188 146 47 36 26 8 118 110 50 214 202 162 
-214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 
-0 0 0 0 0 0 36 26 8 102 124 121 214 202 162 214 202 162 118 110 50 118 110 50 
-118 110 50 118 110 50 118 110 50 157 146 143 232 232 232 102 124 121 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 232 232 232 214 202 162 188 146 47 
-36 26 8 36 26 8 118 110 50 36 26 8 118 110 50 157 146 143 214 202 162 102 124 121 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44 157 146 143 157 146 143 
-157 146 143 214 202 162 214 202 162 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 118 110 50 157 146 143 
-232 232 232 214 202 162 232 232 232 232 232 232 214 202 162 157 146 143 36 26 8 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
diff --git a/abs/core-testing/kernel26/serial.diff b/abs/core-testing/kernel26/serial.diff
deleted file mode 100644
index 9b53e48..0000000
--- a/abs/core-testing/kernel26/serial.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- include/linux/serial.h.orig	2009-02-11 05:59:28.000000000 +0000
-+++ include/linux/serial.h	2009-02-11 06:09:24.000000000 +0000
-@@ -10,8 +10,9 @@
- #ifndef _LINUX_SERIAL_H
- #define _LINUX_SERIAL_H
- 
--#ifdef __KERNEL__
- #include <linux/types.h>
-+
-+#ifdef __KERNEL__
- #include <asm/page.h>
- 
- /*
-- 
cgit v0.12


From 4946a061113b93e9e296c5b1908bfe283a3d98da Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:06:27 -0700
Subject: klibc:Removed for LinHES 7.

---
 abs/core-testing/klibc-extras/PKGBUILD             |  23 ---
 abs/core-testing/klibc-kbd/PKGBUILD                |  48 ------
 abs/core-testing/klibc-kbd/keymap_hook             |  27 ---
 abs/core-testing/klibc-kbd/keymap_install          |  76 ---------
 abs/core-testing/klibc-kbd/no-exit.patch           |  31 ----
 abs/core-testing/klibc-kbd/no-fflush.patch         |  14 --
 abs/core-testing/klibc-kbd/no-isatty.patch         |  58 -------
 abs/core-testing/klibc-module-init-tools/PKGBUILD  |  25 ---
 .../fix-modprobe-ignore-path.patch                 |  14 --
 .../klibc-module-init-tools/makefile.patch         |  54 ------
 abs/core-testing/klibc-udev/50-udev-default.rules  |   5 -
 .../klibc-udev/60-persistent-storage.rules         |  47 ------
 abs/core-testing/klibc-udev/64-device-mapper.rules |   4 -
 abs/core-testing/klibc-udev/64-md-raid.rules       |  18 --
 abs/core-testing/klibc-udev/80-drivers.rules       |   7 -
 abs/core-testing/klibc-udev/PKGBUILD               |  59 -------
 .../klibc-udev/disable-uid-gid-lookup.patch        |  33 ----
 .../klibc-udev/klibc-remove-revert.patch           | 111 ------------
 abs/core-testing/klibc-udev/load-modules.sh        |  51 ------
 abs/core-testing/klibc-udev/post-107.patch         | 176 -------------------
 abs/core-testing/klibc-udev/start_udev             | 115 -------------
 .../klibc-udev/udev-fix-klibc-build.patch          |  48 ------
 abs/core-testing/klibc-udev/udev.rules             | 187 ---------------------
 abs/core-testing/klibc-udev/udev_hook              |  10 --
 abs/core-testing/klibc-udev/udev_install           |  29 ----
 abs/core-testing/klibc-udev/vol_id-suspend2.patch  |  15 --
 abs/core-testing/klibc/PKGBUILD                    |  56 ------
 abs/core-testing/klibc/klibc-2.6.24.patch          |  44 -----
 abs/core-testing/klibc/klibc-Kbuild.patch          |  80 ---------
 .../klibc/klibc-compile-shared-by-default.patch    |  12 --
 .../klibc/klibc-fix-2.6.28-includes.patch          |  12 --
 .../klibc/klibc-module-init-tools.patch            |  63 -------
 abs/core-testing/klibc/klibc-x86_64-fix-io.h.patch |  28 ---
 .../klibc/multiple_raid_assembly_fix.patch         |  20 ---
 34 files changed, 1600 deletions(-)
 delete mode 100644 abs/core-testing/klibc-extras/PKGBUILD
 delete mode 100644 abs/core-testing/klibc-kbd/PKGBUILD
 delete mode 100644 abs/core-testing/klibc-kbd/keymap_hook
 delete mode 100644 abs/core-testing/klibc-kbd/keymap_install
 delete mode 100644 abs/core-testing/klibc-kbd/no-exit.patch
 delete mode 100644 abs/core-testing/klibc-kbd/no-fflush.patch
 delete mode 100644 abs/core-testing/klibc-kbd/no-isatty.patch
 delete mode 100644 abs/core-testing/klibc-module-init-tools/PKGBUILD
 delete mode 100644 abs/core-testing/klibc-module-init-tools/fix-modprobe-ignore-path.patch
 delete mode 100644 abs/core-testing/klibc-module-init-tools/makefile.patch
 delete mode 100644 abs/core-testing/klibc-udev/50-udev-default.rules
 delete mode 100644 abs/core-testing/klibc-udev/60-persistent-storage.rules
 delete mode 100644 abs/core-testing/klibc-udev/64-device-mapper.rules
 delete mode 100644 abs/core-testing/klibc-udev/64-md-raid.rules
 delete mode 100644 abs/core-testing/klibc-udev/80-drivers.rules
 delete mode 100644 abs/core-testing/klibc-udev/PKGBUILD
 delete mode 100644 abs/core-testing/klibc-udev/disable-uid-gid-lookup.patch
 delete mode 100644 abs/core-testing/klibc-udev/klibc-remove-revert.patch
 delete mode 100755 abs/core-testing/klibc-udev/load-modules.sh
 delete mode 100644 abs/core-testing/klibc-udev/post-107.patch
 delete mode 100755 abs/core-testing/klibc-udev/start_udev
 delete mode 100644 abs/core-testing/klibc-udev/udev-fix-klibc-build.patch
 delete mode 100644 abs/core-testing/klibc-udev/udev.rules
 delete mode 100644 abs/core-testing/klibc-udev/udev_hook
 delete mode 100644 abs/core-testing/klibc-udev/udev_install
 delete mode 100644 abs/core-testing/klibc-udev/vol_id-suspend2.patch
 delete mode 100644 abs/core-testing/klibc/PKGBUILD
 delete mode 100644 abs/core-testing/klibc/klibc-2.6.24.patch
 delete mode 100644 abs/core-testing/klibc/klibc-Kbuild.patch
 delete mode 100644 abs/core-testing/klibc/klibc-compile-shared-by-default.patch
 delete mode 100644 abs/core-testing/klibc/klibc-fix-2.6.28-includes.patch
 delete mode 100644 abs/core-testing/klibc/klibc-module-init-tools.patch
 delete mode 100644 abs/core-testing/klibc/klibc-x86_64-fix-io.h.patch
 delete mode 100644 abs/core-testing/klibc/multiple_raid_assembly_fix.patch

diff --git a/abs/core-testing/klibc-extras/PKGBUILD b/abs/core-testing/klibc-extras/PKGBUILD
deleted file mode 100644
index 286616c..0000000
--- a/abs/core-testing/klibc-extras/PKGBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# $Id: PKGBUILD 23611 2009-01-11 14:09:50Z thomas $
-# Maintainer: Aaron Griffin <aaron@archlinux.org>
-
-pkgname=klibc-extras
-pkgver=2.5
-pkgrel=30
-pkgdesc="Extra apps for klibc early-userspace"
-arch=(i686 x86_64)
-url="http://projects.archlinux.org/?p=klibc-extras.git"
-license=('GPL')
-groups=('base')
-depends=('klibc' $(basename /lib/klibc-*.so .so))
-source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('edd16b1a558164db0107c7319a21f0d4')
-
-build()
-{
-  cd $startdir/src/${pkgname}-${pkgver}
-
-  make || return 1
-  make DESTDIR=$startdir/pkg install || return 1
-  rm -f ${pkgdir}/usr/lib/klibc/bin/mknod
-}
diff --git a/abs/core-testing/klibc-kbd/PKGBUILD b/abs/core-testing/klibc-kbd/PKGBUILD
deleted file mode 100644
index 9b232ce..0000000
--- a/abs/core-testing/klibc-kbd/PKGBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# $Id: PKGBUILD 23614 2009-01-11 14:10:20Z thomas $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-
-pkgname=klibc-kbd
-pkgver=1.15.20080312
-pkgrel=30
-pkgdesc="Keytable files and keyboard utilities"
-arch=('i686' 'x86_64')
-url="ftp://ftp.altlinux.org/pub/people/legion/kbd/"
-license=('GPL')
-groups=('base')
-depends=('klibc' $(basename /lib/klibc-*.so .so) 'kbd')
-source=(ftp://ftp.archlinux.org/other/kbd/kbd-$pkgver.tar.gz
-        #ftp://ftp.altlinux.org/pub/people/legion/kbd/kbd-${pkgver}.tar.gz
-        no-isatty.patch
-        no-exit.patch
-        no-fflush.patch
-        keymap_install
-        keymap_hook)
-md5sums=('709b087bb9d6c073bade70eda2da7770'
-         '53e9612ac5fc1b23601f793410742ed3'
-         '8c1bec330e8c98355502ac861561667d'
-         '8310d1a6cc72b5827898d0e9e29824ab'
-         '735d7268f567deee4db3bed951a8303a'
-         '85457e44dfd7046224e87f0add8da4b2')
-
-build() {
-  cd ${startdir}/src
-  #cd ${startdir}/src/kbd-${pkgver}
-  patch -Np1 -i no-isatty.patch || return 1
-  patch -Np1 -i no-exit.patch || return 1
-  patch -Np1 -i no-fflush.patch || return 1
-
-  aclocal
-  autoconf
-  automake --add-missing
-  ./configure --datadir=/share/kbd --enable-klibc
-
-  cd src/
-  make kbd_mode loadkeys setfont || return 1
-
-  install -D loadkeys ${startdir}/pkg/lib/initcpio/kbd/loadkeys
-  install -D kbd_mode ${startdir}/pkg/lib/initcpio/kbd/kbd_mode
-  install -D setfont ${startdir}/pkg/lib/initcpio/kbd/setfont
-  # install hook
-  install -Dm644 ${startdir}/src/keymap_hook ${startdir}/pkg/lib/initcpio/hooks/keymap
-  install -Dm644 ${startdir}/src/keymap_install ${startdir}/pkg/lib/initcpio/install/keymap
-}
diff --git a/abs/core-testing/klibc-kbd/keymap_hook b/abs/core-testing/klibc-kbd/keymap_hook
deleted file mode 100644
index 913b247..0000000
--- a/abs/core-testing/klibc-kbd/keymap_hook
+++ /dev/null
@@ -1,27 +0,0 @@
-# vim: set ft=sh:
-run_hook ()
-{
-    msg -n ":: Loading keymap..."
-    . /keymap
-    if [ "${UTF8}" = "yes" ]; then
-        /bin/kbd_mode -u
-        printf "\033%%G" >> /dev/console
-        [ -n "${KEYMAP}" ] && /bin/loadkeys -q -u ${KEYMAP}
-    else
-        /bin/kbd_mode -a
-        printf "\033%%@" >> /dev/console
-        [ -n "${KEYMAP}" ] && /bin/loadkeys -q ${KEYMAP}
-    fi
-    if [ -n "${CONSOLEFONT}" ]; then
-        if [ "${UTF8}" = "yes" ]; then
-             CONSOLEMAP=""
-        fi
-        if [ -n "${CONSOLEMAP}" ]; then
-            /bin/setfont -m ${CONSOLEMAP} ${CONSOLEFONT} -C /dev/console
-        else
-            /bin/setfont ${CONSOLEFONT} -C /dev/console
-        fi
-        printf "\033(K" >> /dev/console
-    fi
-    msg "done."
-}
diff --git a/abs/core-testing/klibc-kbd/keymap_install b/abs/core-testing/klibc-kbd/keymap_install
deleted file mode 100644
index e61577e..0000000
--- a/abs/core-testing/klibc-kbd/keymap_install
+++ /dev/null
@@ -1,76 +0,0 @@
-# vim: set ft=sh:
-
-# this is needed because kbd utilities compiled with klibc cannot use gunzip
-add_ucfile ()
-{
-    temp=$(mktemp ${TMPDIR}/kbd.XXXX)
-    dest=$(echo "${1}" | sed 's|/usr||' | sed 's|.gz||')
-    name=$(echo "${1}" | sed 's|.*/||')
-
-    if [ $(echo "${1}" | grep '.gz$') ]; then
-        gunzip -c ${1} > ${temp}
-        add_file ${temp} ${dest}
-    else
-        add_file ${1} ${dest}
-    fi
-}
-
-add_includes()
-{
-    for i in $(zgrep -e '^include ".*"' ${1} | cut -d '"' -f 2); do
-        for j in $(find /usr/share/kbd/keymaps -name "${i}" -o -name "${i}.*"); do
-            add_ucfile ${j}
-            add_includes ${j}
-        done
-    done
-}
-
-install ()
-{
-    MODULES=""
-    BINARIES=""
-    FILES=""
-    SCRIPT="keymap"
-    KEYMAP_FILE="$(mktemp ${TMPDIR}/keymap.XXXXXX)"
-    add_file /lib/initcpio/kbd/loadkeys /bin/loadkeys
-    add_file /lib/initcpio/kbd/kbd_mode /bin/kbd_mode
-    add_file /lib/initcpio/kbd/setfont /bin/setfont
-    eval "$(grep -e "^LOCALE=" -e "^KEYMAP=" -e "^CONSOLEFONT=" -e "^CONSOLEMAP=" /etc/rc.conf)"
-    echo "KEYMAP='${KEYMAP}'" >> ${KEYMAP_FILE}
-    echo "CONSOLEFONT='${CONSOLEFONT}'" >> ${KEYMAP_FILE}
-    echo "CONSOLEMAP='${CONSOLEMAP}'" >> ${KEYMAP_FILE}
-    if [ -n "$(echo ${LOCALE} | grep -i utf)" ]; then
-        echo "UTF8='yes'" >> ${KEYMAP_FILE}
-    fi
-    . ${KEYMAP_FILE}
-    add_file ${KEYMAP_FILE} /keymap
-    if [ -n "${KEYMAP}" ]; then
-        for i in $(echo ${KEYMAP}); do
-            for j in $(find /usr/share/kbd/keymaps -name "${i}.map.gz"); do
-                add_ucfile ${j}
-                add_includes ${j}
-            done
-        done
-    fi
-    if [ -n "${CONSOLEFONT}" ]; then
-        for i in $(find /usr/share/kbd/consolefonts -name "${CONSOLEFONT}.*gz"); do
-            add_ucfile ${i}
-        done
-    fi
-    if [ -n "${CONSOLEMAP}" ]; then
-        for i in $(find /usr/share/kbd/unimaps -name "${CONSOLEMAP}.uni"); do
-            add_ucfile ${i}
-        done
-        for i in $(find /usr/share/kbd/consoletrans -name "${CONSOLEMAP}.trans" -o -name "${CONSOLEMAP}"); do
-            add_ucfile ${i}
-        done
-    fi
-}
-
-help ()
-{
-cat<<HELPEOF
-  This hook loads keymap(s) and consolefont specified in rc.conf
-  during early userspace.
-HELPEOF
-}
diff --git a/abs/core-testing/klibc-kbd/no-exit.patch b/abs/core-testing/klibc-kbd/no-exit.patch
deleted file mode 100644
index 2f207dc..0000000
--- a/abs/core-testing/klibc-kbd/no-exit.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 96dc0b9e56da64d2c063d1e74c81034b6b404bc2 Mon Sep 17 00:00:00 2001
-From: Roman Kyrylych <roman@archlinux.org>
-Date: Sat, 15 Mar 2008 21:46:35 +0200
-Subject: [PATCH] Do not exit on ferror during psf font loading when built with klibc
-
-Signed-off-by: Roman Kyrylych <roman@archlinux.org>
----
- src/psffontop.c |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/src/psffontop.c b/src/psffontop.c
-index 1b99e9b..75a6048 100644
---- a/src/psffontop.c
-+++ b/src/psffontop.c
-@@ -203,9 +203,13 @@ readpsffont(FILE *fontf, char **allbufp, int *allszp,
- 			}
- 			n += fread(inputbuf+n, 1, inputbuflth-n, fontf);
- 			if (ferror(fontf)) {
-+				#ifndef __klibc__
- 				char *u = _("%s: Error reading input font");
- 				fprintf(stderr, u, progname);
- 				exit(EX_DATAERR);
-+				#else
-+				break;
-+				#endif
- 			}
- 			if (feof(fontf))
- 				break;
--- 
-1.5.3.7
-
diff --git a/abs/core-testing/klibc-kbd/no-fflush.patch b/abs/core-testing/klibc-kbd/no-fflush.patch
deleted file mode 100644
index 1a2bd78..0000000
--- a/abs/core-testing/klibc-kbd/no-fflush.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -Nur src.orig/src/klibc_compat.c src/src/klibc_compat.c
---- src.orig/src/klibc_compat.c	2008-03-12 01:56:14.000000000 +0100
-+++ src/src/klibc_compat.c	2008-09-15 18:59:31.000000000 +0200
-@@ -18,10 +18,6 @@
-     return (errno != 0 && errno != EOF);
- }
- 
--int fflush(FILE *stream) {
--    return 0;
--}
--
- int ungetc(int c, FILE *stream) {
-     if (fseek(stream, -1, SEEK_CUR) < 0)
- 	return EOF;
diff --git a/abs/core-testing/klibc-kbd/no-isatty.patch b/abs/core-testing/klibc-kbd/no-isatty.patch
deleted file mode 100644
index ce02a7a..0000000
--- a/abs/core-testing/klibc-kbd/no-isatty.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 92dc27dd57c83e9e2c798bda41ec111d26e1e3e2 Mon Sep 17 00:00:00 2001
-From: Roman Kyrylych <roman@archlinux.org>
-Date: Sat, 15 Mar 2008 18:57:04 +0200
-Subject: [PATCH] Do not use isatty() when built with klibc
-
-Signed-off-by: Roman Kyrylych <roman@archlinux.org>
----
- src/getfd.c |    6 ++++++
- 1 files changed, 6 insertions(+), 0 deletions(-)
-
-diff --git a/src/getfd.c b/src/getfd.c
-index 7f6d70e..3cef522 100644
---- a/src/getfd.c
-+++ b/src/getfd.c
-@@ -16,6 +16,7 @@
-  * if someone else used X (which does a chown on /dev/console).
-  */
- 
-+#ifndef __klibc__
- static int
- is_a_console(int fd) {
- 	char arg;
-@@ -25,6 +26,7 @@ is_a_console(int fd) {
- 		&& ioctl(fd, KDGKBTYPE, &arg) == 0
- 		&& ((arg == KB_101) || (arg == KB_84)));
- }
-+#endif
- 
- static int
- open_a_console(const char *fnam) {
-@@ -41,10 +43,12 @@ open_a_console(const char *fnam) {
- 		fd = open(fnam, O_RDONLY);
- 	if (fd < 0)
- 		return -1;
-+	#ifndef __klibc__
- 	if (!is_a_console(fd)) {
- 		close(fd);
- 		return -1;
- 	}
-+	#endif
- 	return fd;
- }
- 
-@@ -80,9 +84,11 @@ int getfd(const char *fnam) {
- 	if (fd >= 0)
- 		return fd;
- 
-+	#ifndef __klibc__
- 	for (fd = 0; fd < 3; fd++)
- 		if (is_a_console(fd))
- 			return fd;
-+	#endif
- 
- 	fprintf(stderr,
- 		_("Couldnt get a file descriptor referring to the console\n"));
--- 
-1.5.3.7
-
diff --git a/abs/core-testing/klibc-module-init-tools/PKGBUILD b/abs/core-testing/klibc-module-init-tools/PKGBUILD
deleted file mode 100644
index a7d6884..0000000
--- a/abs/core-testing/klibc-module-init-tools/PKGBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# $Id: PKGBUILD 23617 2009-01-11 14:11:13Z thomas $
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
-
-pkgname=klibc-module-init-tools
-pkgver=3.5
-pkgrel=30
-pkgdesc="Utilities for inserting and removing modules from the Linux kernel"
-arch=(i686 x86_64)
-url="http://www.kernel.org"
-license=('GPL')
-groups=('base')
-depends=('klibc' $(basename /lib/klibc-*.so .so))
-source=(http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-$pkgver.tar.bz2)
-md5sums=('2b47686247fc9a99bfdb9dd1d1d80e6f')
-
-build() {
-  cd $startdir/src/module-init-tools-$pkgver
-  CFLAGS="${CFLAGS} -DCONFIG_NO_BACKWARDS_COMPAT" CC=klcc LD=klcc ./configure --prefix=/usr/lib/klibc
-  # klibc lacks getc_unlocked, so use getc instead
-  sed 's|getc_unlocked|getc|g' -i *.c
-  make || return 1
-  INSTALL=/bin/install make DESTDIR=$startdir/pkg install || return 1
-  rm -f $startdir/pkg/usr/lib/klibc/sbin/{generate-modprobe.conf,insmod.static}
-  rm -rf $startdir/pkg/usr/lib/klibc/{share,man}
-}
diff --git a/abs/core-testing/klibc-module-init-tools/fix-modprobe-ignore-path.patch b/abs/core-testing/klibc-module-init-tools/fix-modprobe-ignore-path.patch
deleted file mode 100644
index c562b3f..0000000
--- a/abs/core-testing/klibc-module-init-tools/fix-modprobe-ignore-path.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- modprobe.c~	2005-12-02 00:42:09.000000000 +0100
-+++ modprobe.c	2008-03-12 09:39:14.000000000 +0100
-@@ -1236,9 +1236,8 @@
- 
- 	/* Try defaults. */
- 	for (i = 0; i < ARRAY_SIZE(default_configs); i++) {
--		if (read_config(default_configs[i], name, dump_only, removing,
--				options, commands, aliases, blacklist))
--			return;
-+		read_config(default_configs[i], name, dump_only, removing,
-+				options, commands, aliases, blacklist);
- 	}
- }
- 
diff --git a/abs/core-testing/klibc-module-init-tools/makefile.patch b/abs/core-testing/klibc-module-init-tools/makefile.patch
deleted file mode 100644
index df0836f..0000000
--- a/abs/core-testing/klibc-module-init-tools/makefile.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -Nur module-init-tools-3.4.orig/Makefile.am module-init-tools-3.4/Makefile.am
---- module-init-tools-3.4.orig/Makefile.am	2007-10-07 23:51:46.000000000 +0200
-+++ module-init-tools-3.4/Makefile.am	2008-07-22 14:49:09.000000000 +0200
-@@ -18,16 +18,9 @@
- EXTRA_depmod_SOURCES = moduleops_core.c
- EXTRA_modinfo_SOURCES = backwards_compat.c
- 
--MAN5 = modprobe.conf.5 modules.dep.5 depmod.conf.5
--MAN8 = depmod.8 insmod.8 lsmod.8 rmmod.8 modprobe.8 modinfo.8
--SGML = $(addprefix doc/,  $(MAN5:%.5=%.sgml) $(MAN8:%.8=%.sgml))
--man_MANS = $(MAN5) $(MAN8)
--# If they haven't overridden mandir, fix it (never /man!)
--mandir =$(shell if [ @mandir@ = $(prefix)/man ]; then if [ $(prefix) = / ]; then echo /usr/share/man; else echo $(prefix)/share/man; fi; else echo @mandir@; fi)
--
- TESTSUITE := $(shell find tests -type f ! -name '*~') tests/vg-suppressions
- 
--EXTRA_DIST = generate-modprobe.conf modprobe.devfs FAQ CODING stress_modules.sh install-with-care $(SGML) $(man_MANS) $(TESTSUITE)
-+EXTRA_DIST = generate-modprobe.conf modprobe.devfs FAQ CODING stress_modules.sh install-with-care $(TESTSUITE)
- 
- sbin_PROGRAMS = insmod modprobe rmmod depmod modinfo insmod.static
- bin_PROGRAMS = lsmod
-@@ -38,32 +31,6 @@
- 
- DIST_DIR := /home/rusty/devel/kernel/www/modules/
- 
--MAINTAINERCLEANFILES := $(man_MANS)
--
--# According to Warren Togami, RH has docbook2man in the docbook-utils rpm.
--DOCBOOKTOMAN := $(shell if command -v docbook-to-man >/dev/null 2>&1; then echo docbook-to-man; else echo docbook2man; fi)
--
--# docbook2man writes file itself, doesn't do stdout.
--%.8: doc/%.sgml
--	if [ "$(DOCBOOKTOMAN)" = "docbook2man" ]; then                     \
--	    $(DOCBOOKTOMAN) $< > /dev/null 2>&1;                       \
--	else                                                               \
--	    $(DOCBOOKTOMAN) $< 2>&1 > $@ | sed 's/^[^:]*://';              \
--	fi
--
--%.5: doc/%.sgml
--	if [ "$(DOCBOOKTOMAN)" = "docbook2man" ]; then                     \
--	    $(DOCBOOKTOMAN) $< > /dev/null 2>&1;                       \
--	else                                                               \
--	    $(DOCBOOKTOMAN) $< 2>&1 > $@ | sed 's/^[^:]*://';              \
--	fi
--
--# docbook2man creates extra crap files which need cleaning.
--distclean: killbuildmanpages
--
--killbuildmanpages:
--	rm -f doc/*.tmp manpage.refs manpage.links
--
- tarball: $(DIST_DIR)/module-init-tools-$(VERSION).tar.gz
- 
- $(DIST_DIR)/module-init-tools-$(VERSION).tar.gz: dist
diff --git a/abs/core-testing/klibc-udev/50-udev-default.rules b/abs/core-testing/klibc-udev/50-udev-default.rules
deleted file mode 100644
index 8593c7b..0000000
--- a/abs/core-testing/klibc-udev/50-udev-default.rules
+++ /dev/null
@@ -1,5 +0,0 @@
-# firmware class requests
-SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh"
-
-# do not delete static device nodes
-ACTION=="remove", NAME=="?*", TEST=="/lib/udev/devices/$name", OPTIONS+="ignore_remove"
diff --git a/abs/core-testing/klibc-udev/60-persistent-storage.rules b/abs/core-testing/klibc-udev/60-persistent-storage.rules
deleted file mode 100644
index d32a143..0000000
--- a/abs/core-testing/klibc-udev/60-persistent-storage.rules
+++ /dev/null
@@ -1,47 +0,0 @@
-# do not edit this file, it will be overwritten on update
-
-# persistent storage links: /dev/disk/{by-id,by-uuid,by-label,by-path}
-# scheme based on "Linux persistent device names", 2004, Hannes Reinecke <hare@suse.de>
-
-# forward scsi device event to corresponding block device
-ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block", ATTR{block/*/uevent}="change"
-
-ACTION!="add|change", GOTO="persistent_storage_end"
-SUBSYSTEM!="block", GOTO="persistent_storage_end"
-
-# skip rules for inappropriate block devices
-KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|md*|btibm*", GOTO="persistent_storage_end"
-
-# never access non-cdrom removable ide devices, the drivers are causing event loops on open()
-KERNEL=="hd*[!0-9]", ATTR{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end"
-KERNEL=="hd*[0-9]", ATTRS{removable}=="1", GOTO="persistent_storage_end"
-
-# ignore partitions that span the entire disk
-TEST=="whole_disk", GOTO="persistent_storage_end"
-
-# /sys/class/block will export this
-ENV{DEVTYPE}!="?*", ATTR{range}=="?*", ENV{DEVTYPE}="disk"
-ENV{DEVTYPE}!="?*", ATTR{start}=="?*", ENV{DEVTYPE}="partition"
-
-# for partitions import parent information
-ENV{DEVTYPE}=="partition", IMPORT{parent}="ID_*"
-
-# by-path (parent device path)
-ENV{DEVTYPE}=="disk", IMPORT{program}="path_id %p"
-ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}"
-ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n"
-
-# skip unpartitioned removable media devices from drivers which do not send "change" events
-ENV{DEVTYPE}=="disk", KERNEL!="sd*|sr*", ATTR{removable}=="1", GOTO="persistent_storage_end"
-
-# probe filesystem metadata of optical drives which have a media inserted
-KERNEL=="sr*", ENV{ID_CDROM_MEDIA_TRACK_COUNT}=="?*", IMPORT{program}="vol_id --export --skip-raid --offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET} $tempnode"
-
-# probe filesystem metadata of disks
-KERNEL!="sr*", IMPORT{program}="vol_id --export $tempnode"
-
-# by-label/by-uuid links (filesystem metadata)
-ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
-ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
-
-LABEL="persistent_storage_end"
diff --git a/abs/core-testing/klibc-udev/64-device-mapper.rules b/abs/core-testing/klibc-udev/64-device-mapper.rules
deleted file mode 100644
index 8154ef3..0000000
--- a/abs/core-testing/klibc-udev/64-device-mapper.rules
+++ /dev/null
@@ -1,4 +0,0 @@
-# do not edit this file, it will be overwritten on update
-
-KERNEL=="device-mapper",	NAME="mapper/control"
-
diff --git a/abs/core-testing/klibc-udev/64-md-raid.rules b/abs/core-testing/klibc-udev/64-md-raid.rules
deleted file mode 100644
index e094ca7..0000000
--- a/abs/core-testing/klibc-udev/64-md-raid.rules
+++ /dev/null
@@ -1,18 +0,0 @@
-# do not edit this file, it will be overwritten on update
-
-SUBSYSTEM!="block", GOTO="md_end"
-ACTION!="add|change", GOTO="md_end"
-
-# import data from a raid member and activate it
-#ENV{ID_FS_TYPE}=="linux_raid_member", IMPORT{program}="/sbin/mdadm --examine --export $tempnode", RUN+="/sbin/mdadm --incremental $env{DEVNAME}"
-# import data from a raid set
-KERNEL!="md*", GOTO="md_end"
-
-ATTR{md/array_state}=="|clear|inactive", GOTO="md_end"
-
-IMPORT{program}="vol_id --export $tempnode"
-OPTIONS+="link_priority=100"
-ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
-ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
-
-LABEL="md_end"
diff --git a/abs/core-testing/klibc-udev/80-drivers.rules b/abs/core-testing/klibc-udev/80-drivers.rules
deleted file mode 100644
index 6f6fcc3..0000000
--- a/abs/core-testing/klibc-udev/80-drivers.rules
+++ /dev/null
@@ -1,7 +0,0 @@
-# do not edit this file, it will be overwritten on update
-
-ACTION!="add", GOTO="drivers_end"
-
-DRIVER!="?*", ENV{MODALIAS}=="?*", RUN{ignore_error}+="/lib/udev/load-modules.sh $env{MODALIAS}"
-
-LABEL="drivers_end"
diff --git a/abs/core-testing/klibc-udev/PKGBUILD b/abs/core-testing/klibc-udev/PKGBUILD
deleted file mode 100644
index 0775b05..0000000
--- a/abs/core-testing/klibc-udev/PKGBUILD
+++ /dev/null
@@ -1,59 +0,0 @@
-# $Id: PKGBUILD 23620 2009-01-11 14:11:40Z thomas $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-
-pkgname=klibc-udev
-pkgver=135
-pkgrel=30
-pkgdesc="udev compiled for klibc"
-arch=(i686 x86_64)
-url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
-groups=('base')
-depends=('coreutils' 'klibc' $(basename /lib/klibc-*.so .so))
-license=('GPL')
-source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-$pkgver.tar.bz2
-        udev-fix-klibc-build.patch
-        disable-uid-gid-lookup.patch
-        udev_hook
-        udev_install
-        50-udev-default.rules
-        60-persistent-storage.rules
-        64-device-mapper.rules
-        64-md-raid.rules
-        80-drivers.rules
-        load-modules.sh)
-md5sums=('661b9df34e1304dad10f595d95b472bb'
-         'c769a0440fc90ba0fee7a2ae2bf7d76f'
-         '89acd170a2771f81ca9e4b7920820555'
-         '042fd2ba6a0351bbae30da33ff492c03'
-         'a3d81917e2bbe66f6c24486a86d4dc9c'
-         'f9095dbad80fc93bcde60d7fe4572022'
-         '6625a4000069b9d46ae0ff9d9c2cebb7'
-         '258fea1c2b024f9755f905a21bd45a01'
-         'e20efd69738bbbba35c49e7b63ee0212'
-         'd42740d13b6bb5c5d90bfc2062019f58'
-         '5dd248da5d5fa3adfbe87309807ab734')
-
-build() {
-  cd ${srcdir}/udev-$pkgver
-  patch -p1 -i ../udev-fix-klibc-build.patch || return 1
-  # uid/gid lookup fails to build on klibc due to incomplete headers
-  # we don't use this feature in klibc, simply omit it
-  patch -p1 -i ../disable-uid-gid-lookup.patch || return 1
-
-  CC=klcc LD=klcc ./configure --prefix=""
-  make || return 1
-
-  mkdir -p ${pkgdir}/lib/initcpio/udev
-  install -m755 udev/udevd ${pkgdir}/lib/initcpio/udev/ || return 1
-  install -m755 udev/udevadm  ${pkgdir}/lib/initcpio/udev/ || return 1
-  install -m755 extras/path_id/path_id ${pkgdir}/lib/initcpio/udev/ || return 1
-  install -m755 extras/volume_id/vol_id ${pkgdir}/lib/initcpio/udev/ || return 1
-  install -m755 extras/firmware/firmware.sh ${pkgdir}/lib/initcpio/udev/ || return 1
-  for rules in 50-udev-default.rules 60-persistent-storage.rules 64-device-mapper.rules 64-md-raid.rules 80-drivers.rules; do
-    install -m644 ${srcdir}/${rules} ${pkgdir}/lib/initcpio/udev/ || return 1
-  done
-  install -m755 ${srcdir}/load-modules.sh ${pkgdir}/lib/initcpio/udev/ || return 1
-
-  install -D -m644 ${srcdir}/udev_install ${pkgdir}/lib/initcpio/install/udev || return 1
-  install -D -m644 ${srcdir}/udev_hook ${pkgdir}/lib/initcpio/hooks/udev || return 1
-}
diff --git a/abs/core-testing/klibc-udev/disable-uid-gid-lookup.patch b/abs/core-testing/klibc-udev/disable-uid-gid-lookup.patch
deleted file mode 100644
index 578c3ee..0000000
--- a/abs/core-testing/klibc-udev/disable-uid-gid-lookup.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -Nur udev-132.orig/udev/udev-util.c udev-132/udev/udev-util.c
---- udev-132.orig/udev/udev-util.c	2008-11-06 02:56:15.000000000 +0100
-+++ udev-132/udev/udev-util.c	2008-11-09 18:28:30.000000000 +0100
-@@ -126,6 +126,7 @@
- 
- uid_t util_lookup_user(struct udev *udev, const char *user)
- {
-+	/*
- 	char *endptr;
- 	int buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
- 	char buf[buflen];
-@@ -147,11 +148,13 @@
- 		err(udev, "specified user '%s' unknown\n", user);
- 	else
- 		err(udev, "error resolving user '%s': %m\n", user);
-+	*/
- 	return 0;
- }
- 
- extern gid_t util_lookup_group(struct udev *udev, const char *group)
- {
-+	/*
- 	char *endptr;
- 	int buflen = sysconf(_SC_GETGR_R_SIZE_MAX);
- 	char buf[buflen];
-@@ -173,6 +176,7 @@
- 		err(udev, "specified group '%s' unknown\n", group);
- 	else
- 		err(udev, "error resolving group '%s': %m\n", group);
-+	*/
- 	return 0;
- }
- 
diff --git a/abs/core-testing/klibc-udev/klibc-remove-revert.patch b/abs/core-testing/klibc-udev/klibc-remove-revert.patch
deleted file mode 100644
index 8d9484f..0000000
--- a/abs/core-testing/klibc-udev/klibc-remove-revert.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-### Archlinux revert
-### revert this patch, crazy udev devs
-From: Kay Sievers <kay.sievers@suse.de>
-Date: Fri, 4 Aug 2006 22:02:58 +0000 (+0200)
-Subject: libvolume_id: read ufs2 label
-X-Git-Tag: 097
-X-Git-Url: http://www.kernel.org/git/?p=linux/hotplug/udev.git;a=commitdiff;h=eb82b76dedc1482b6434c46fee84d3ef13cb9648
-
-libvolume_id: read ufs2 label
-
-Taken from the FreeBSD HAL repository.
----
-
---- a/Makefile
-+++ b/Makefile
-@@ -33,6 +33,9 @@ USE_GCOV = false
- # include Security-Enhanced Linux support
- USE_SELINUX = false
- 
-+# comile with klibc instead of glibc
-+USE_KLIBC = false
-+
- # set this to create statically linked binaries
- USE_STATIC = false
- 
-@@ -139,6 +142,12 @@ ifeq ($(strip $(USE_GCOV)),true)
- 	LDFLAGS += -fprofile-arcs
- endif
- 
-+ifeq ($(strip $(USE_KLIBC)),true)
-+	KLCC		= /usr/bin/$(CROSS_COMPILE)klcc
-+	CC		= $(KLCC)
-+	LD		= $(KLCC)
-+endif
-+
- ifeq ($(strip $(USE_SELINUX)),true)
- 	UDEV_OBJS += udev_selinux.o
- 	LIB_OBJS += -lselinux -lsepol
---- a/README
-+++ b/README
-@@ -69,6 +69,10 @@ Compile Options:
-   USE_SELINUX
-   	If set to 'true', udev will be built with SELinux support
-   	enabled.  This is disabled by default.
-+  USE_KLIBC
-+  	If set to 'true', udev is built and linked against klibc.
-+  	Default value is 'false'. KLCC specifies the klibc compiler
-+  	wrapper, usually located at /usr/bin/klcc.
-   EXTRAS
-   	list of helper programs in extras/ to build.
-         make EXTRAS="extras/cdrom_id extras/scsi_id extras/volume_id"
---- a/extras/scsi_id/scsi_id.c
-+++ b/extras/scsi_id/scsi_id.c
-@@ -402,7 +402,8 @@ static int set_options(int argc, char **
- 	/*
- 	 * optind is a global extern used by getopt. Since we can call
- 	 * set_options twice (once for command line, and once for config
--	 * file) we have to reset this back to 1.
-+	 * file) we have to reset this back to 1. [Note glibc handles
-+	 * setting this to 0, but klibc does not.]
- 	 */
- 	optind = 1;
- 	while (1) {
---- a/test/simple-build-check.sh
-+++ b/test/simple-build-check.sh
-@@ -23,6 +23,14 @@ make clean EXTRAS="$EXTRAS" >/dev/null
- make all $MAKEOPTS USE_LOG=false EXTRAS="$EXTRAS" || exit
- echo -e "\n\n"
- 
-+# klibc build
-+if [ -n "$KLCC" -a -e "$KLCC" ]; then
-+	echo KLCC: "$KLCC"
-+	make clean EXTRAS="$EXTRAS" >/dev/null
-+	make all -j4 $MAKEOPTS USE_KLIBC=true DEBUG=true EXTRAS="$EXTRAS" KLCC="$KLCC" || exit
-+	echo -e "\n\n"
-+fi
-+
- # install in temporary dir and show it
- TEMPDIR="`pwd`/.tmp"
- rm -rf $TEMPDIR
---- a/udev_libc_wrapper.c
-+++ b/udev_libc_wrapper.c
-@@ -30,7 +30,7 @@
- 
- #include "udev.h"
- 
--#ifndef __GLIBC__
-+#ifdef __KLIBC__
- #define __OWN_USERDB_PARSER__
- #endif
- 
---- a/udev_libc_wrapper.h
-+++ b/udev_libc_wrapper.h
-@@ -105,7 +105,7 @@ static inline int inotify_add_watch(int 
- }
- #else
- /* needed until /usr/include/sys/inotify.h is working */
--#ifndef __GLIBC__
-+#ifdef __KLIBC__
- #include <sys/inotify.h>
- #else
- static inline int inotify_init(void)
-@@ -117,7 +117,7 @@ static inline int inotify_add_watch(int 
- {
- 	return syscall(__NR_inotify_add_watch, fd, name, mask);
- }
--#endif /* __GLIBC__ */
-+#endif /* __KLIBC__ */
- #endif /* __NR_inotify_init */
- 
- #ifndef IN_CREATE
diff --git a/abs/core-testing/klibc-udev/load-modules.sh b/abs/core-testing/klibc-udev/load-modules.sh
deleted file mode 100755
index 3d52d6b..0000000
--- a/abs/core-testing/klibc-udev/load-modules.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#! /bin/sh
-# Implement blacklisting for udev-loaded modules
-#   Includes module checking
-# - Aaron Griffin & Tobias Powalowski for Archlinux
-[ $# -ne 1 ] && exit 1
-
-MODPROBE="/sbin/modprobe"
-RESOLVEALIAS="/bin/resolve-modalias"
-USEBLACKLIST="--use-blacklist"
-REPLACE="/bin/replace"
-MODDEPS="/bin/moddeps"
-
-if [ -f /proc/cmdline ]; then 
-  for cmd in $(cat /proc/cmdline); do
-    case $cmd in
-      disablemodules=*) eval $cmd ;;
-      load_modules=off) exit ;;
-    esac
-  done
-  #parse cmdline entries of the form "disablemodules=x,y,z"
-  if [ -n "${disablemodules}" ]; then
-    BLACKLIST="$(${REPLACE} ${disablemodules} ',')"
-  fi
-fi
-
-# sanitize the module names
-BLACKLIST="$(${REPLACE} "${BLACKLIST}" '-' '_')"
-
-if [ -n "${BLACKLIST}" ] ; then
-  # Try to find all modules for the alias
-  mods="$($RESOLVEALIAS /lib/modules/$(uname -r)/modules.alias $1)"
-  # If no modules could be found, try if the alias name is a module name
-  # In that case, omit the --use-blacklist parameter to imitate normal modprobe behaviour
-  [ -z "${mods}" ] && $MODPROBE -qni $1 && mods="$1" && USEBLACKLIST=""
-  [ -z "${mods}" ] && exit
-  for mod in ${mods}; do
-    deps="$(${MODDEPS} ${mod})"
-    [ $? -ne 0 ] && continue
-    # If the module or any of its dependencies is blacklisted, don't load it
-    for dep in $deps; do
-      for blackmod in ${BLACKLIST}; do
-        [ "${blackmod}" = "${dep}" ] && continue 3
-      done
-    done
-    $MODPROBE $USEBLACKLIST ${mod}
-  done
-else
-  $MODPROBE $1
-fi
-
-# vim: set et ts=4:
diff --git a/abs/core-testing/klibc-udev/post-107.patch b/abs/core-testing/klibc-udev/post-107.patch
deleted file mode 100644
index cb6e618..0000000
--- a/abs/core-testing/klibc-udev/post-107.patch
+++ /dev/null
@@ -1,176 +0,0 @@
-From: Matthias Schwarzott <zzam@gentoo.org>
-Date: Thu, 22 Mar 2007 20:05:56 +0000 (+0100)
-Subject: write_cd_rules: set default link type to "by-id" for usb and ieee1394 devices
-X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=491a6a71ff685373422621f4b67f550806072d17
-
-write_cd_rules: set default link type to "by-id" for usb and ieee1394 devices
----
-
-diff --git a/extras/rule_generator/write_cd_rules b/extras/rule_generator/write_cd_rules
-index 1dbe6b7..bd951c5 100644
---- a/extras/rule_generator/write_cd_rules
-+++ b/extras/rule_generator/write_cd_rules
-@@ -53,7 +53,15 @@ fi
- if [ "$1" ]; then
- 	METHOD="$1"
- else
--	METHOD='by-path'
-+	case "$ID_BUS" in
-+		usb|ieee1394)
-+		METHOD='by-id'
-+		;;
-+
-+		*)
-+		METHOD='by-path'
-+		;;
-+	esac
- fi
- 
- case "$METHOD" in
-From: Kay Sievers <kay.sievers@vrfy.org>
-Date: Fri, 23 Mar 2007 16:17:18 +0000 (+0100)
-Subject: udevinfo: relax check for the correct device if looked up by name
-X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=be8594ab14f15203fcea4b2aa0115171472f3e43
-
-udevinfo: relax check for the correct device if looked up by name
----
-
-diff --git a/udev_db.c b/udev_db.c
-index 00d68d6..7b8d02b 100644
---- a/udev_db.c
-+++ b/udev_db.c
-@@ -186,7 +186,7 @@ int udev_db_get_device(struct udevice *udev, const char *devpath)
- 	size_t cur;
- 	size_t count;
- 
--	strlcpy(udev->dev->devpath, devpath, sizeof(udev->dev->devpath));
-+	sysfs_device_set_values(udev->dev, devpath, NULL, NULL);
- 	devpath_to_db_path(devpath, filename, sizeof(filename));
- 
- 	if (lstat(filename, &stats) != 0) {
-diff --git a/udevinfo.c b/udevinfo.c
-index 3f25be0..4b4876c 100644
---- a/udevinfo.c
-+++ b/udevinfo.c
-@@ -173,13 +173,17 @@ static void export_db(void) {
- static int lookup_device_by_name(struct udevice *udev, const char *name)
- {
- 	LIST_HEAD(name_list);
-+	int count;
- 	struct name_entry *device;
- 	int rc  = -1;
- 
--	if (udev_db_get_devices_by_name(name, &name_list) <= 0)
-+	count = udev_db_get_devices_by_name(name, &name_list);
-+	if (count <= 0)
- 		goto out;
- 
--	/* select the device that matches the dev_t of name */
-+	info("found %i devices for '%s'", count, name);
-+
-+	/* select the device that seems to match */
- 	list_for_each_entry(device, &name_list, node) {
- 		char filename[PATH_SIZE];
- 		struct stat statbuf;
-@@ -189,16 +193,18 @@ static int lookup_device_by_name(struct udevice *udev, const char *name)
- 			continue;
- 		info("found db entry '%s'", device->name);
- 
-+		/* make sure, we don't get a link of a differnt device */
- 		strlcpy(filename, udev_root, sizeof(filename));
- 		strlcat(filename, "/", sizeof(filename));
- 		strlcat(filename, name, sizeof(filename));
- 		if (stat(filename, &statbuf) != 0)
- 			continue;
--		if (statbuf.st_rdev == udev->devt) {
--			info("found '%s', dev_t matches", udev->name);
--			rc = 0;
--			break;
-+		if (major(udev->devt) > 0 && udev->devt != statbuf.st_rdev) {
-+			info("skip '%s', dev_t doesn't match", udev->name);
-+			continue;
- 		}
-+		rc = 0;
-+		break;
- 	}
- out:
- 	name_list_cleanup(&name_list);
-From: Kay Sievers <kay.sievers@vrfy.org>
-Date: Fri, 23 Mar 2007 16:18:03 +0000 (+0100)
-Subject: don't write to sysfs files during test run
-X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=d2c9a56e0e624ed448aed8ad18460deed63973e1
-
-don't write to sysfs files during test run
----
-
-diff --git a/udev_rules.c b/udev_rules.c
-index f8844a8..5078f2d 100644
---- a/udev_rules.c
-+++ b/udev_rules.c
-@@ -861,8 +861,9 @@ try_parent:
- 			info("writing '%s' to sysfs file '%s'", value, attr);
- 			f = fopen(attr, "w");
- 			if (f != NULL) {
--				if (fprintf(f, "%s", value) <= 0)
--					err("error writing ATTR{%s}: %s", attr, strerror(errno));
-+				if (!udev->test_run)
-+					if (fprintf(f, "%s", value) <= 0)
-+						err("error writing ATTR{%s}: %s", attr, strerror(errno));
- 				fclose(f);
- 			} else
- 				err("error opening ATTR{%s} for writing: %s", attr, strerror(errno));
-From: Pozsar Balazs <pozsy@uhulinux.hu>
-Date: Fri, 23 Mar 2007 16:21:46 +0000 (+0100)
-Subject: udevsettle: read udev not kernel seqnum first
-X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=4e2b290821d083361260f8cdbe7c54886463673e
-
-udevsettle: read udev not kernel seqnum first
----
-
-diff --git a/udevsettle.c b/udevsettle.c
-index 9e3e03b..f76ad71 100644
---- a/udevsettle.c
-+++ b/udevsettle.c
-@@ -110,9 +110,9 @@ int main(int argc, char *argv[], char *envp[])
- 			goto exit;
- 		}
- 
--		/* read current kernel seqnum */
--		strlcpy(filename, sysfs_path, sizeof(filename));
--		strlcat(filename, "/kernel/uevent_seqnum", sizeof(filename));
-+		/* read current udev seqnum */
-+		strlcpy(filename, udev_root, sizeof(filename));
-+		strlcat(filename, "/" EVENT_SEQNUM, sizeof(filename));
- 		fd = open(filename, O_RDONLY);
- 		if (fd < 0)
- 			goto exit;
-@@ -121,12 +121,12 @@ int main(int argc, char *argv[], char *envp[])
- 		if (len <= 0)
- 			goto exit;
- 		seqnum[len] = '\0';
--		seq_kernel = strtoull(seqnum, NULL, 10);
--		info("kernel seqnum = %llu", seq_kernel);
-+		seq_udev = strtoull(seqnum, NULL, 10);
-+		info("udev seqnum = %llu", seq_udev);
- 
--		/* read current udev seqnum */
--		strlcpy(filename, udev_root, sizeof(filename));
--		strlcat(filename, "/" EVENT_SEQNUM, sizeof(filename));
-+		/* read current kernel seqnum */
-+		strlcpy(filename, sysfs_path, sizeof(filename));
-+		strlcat(filename, "/kernel/uevent_seqnum", sizeof(filename));
- 		fd = open(filename, O_RDONLY);
- 		if (fd < 0)
- 			goto exit;
-@@ -135,8 +135,8 @@ int main(int argc, char *argv[], char *envp[])
- 		if (len <= 0)
- 			goto exit;
- 		seqnum[len] = '\0';
--		seq_udev = strtoull(seqnum, NULL, 10);
--		info("udev seqnum = %llu", seq_udev);
-+		seq_kernel = strtoull(seqnum, NULL, 10);
-+		info("kernel seqnum = %llu", seq_kernel);
- 
- 		/* make sure all kernel events have arrived in the queue */
- 		if (seq_udev >= seq_kernel) {
- 
diff --git a/abs/core-testing/klibc-udev/start_udev b/abs/core-testing/klibc-udev/start_udev
deleted file mode 100755
index 8503bb9..0000000
--- a/abs/core-testing/klibc-udev/start_udev
+++ /dev/null
@@ -1,115 +0,0 @@
-#! /bin/sh
-#
-# start_udev
-# script to initialize /dev by using udev.
-#
-# Modified for Archlinux by Tobias Powalowski <tpowa@archlinux.org>
-#
-# Inspired by:
-# 
-# Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com>
-#
-# Released under the GPL v2 only.
-#
-# This needs to be run at the earliest possible point in the boot 
-# process.
-#
-# Based on the udev init.d script
-#
-# Thanks go out to the Gentoo developers for proving 
-# that this is possible to do.
-#
-# Yes, it's very verbose, feel free to turn off all of the echo calls,
-# they were there to make me feel better that everything was working
-# properly during development...
-
-prog=udev
-sysfs_dir=/sys
-bin=/sbin/udev
-udevd=/sbin/udevd
-udev_root="/dev"
-
-trigger_device_events () 
-{
-	/sbin/udevtrigger
-}
-
-wait_for_queue () 
-{
-	# disabled because it hangs network boot
-	#loop=20
-        #while ! [ "$loop" -gt 0 -a -d /dev/.udev/queue ]; do
-        #           sleep 0.1;
-        #           loop=$(($loop - 1))
-        #done
-	/sbin/udevsettle
-}
-
-make_extra_nodes () 
-{
-	# there are a few things that sysfs does not export for us.
-	# these things go here (and remember to remove them in 
-	# remove_extra_nodes()
-	#
-	# Thanks to Gentoo for the initial list of these.
-	ln -sf /proc/self/fd $udev_root/fd
-	ln -sf /proc/self/fd/0 $udev_root/stdin
-	ln -sf /proc/self/fd/1 $udev_root/stdout
-	ln -sf /proc/self/fd/2 $udev_root/stderr
-	ln -sf /proc/kcore $udev_root/core
-}
-
-udev_init  () 
-{
-# don't use udev if sysfs is not mounted.
-if [ ! -d $sysfs_dir/block ]; then
-	exit 1
-fi
-
-# Do not mount ramfs, we are already in ramfs
-#mount -t ramfs none $udev_root
-
-# propogate /udev from /sys
-#echo "Creating initial udev device nodes:"
-
-#echo "making extra nodes"
-make_extra_nodes
-
-# check if udevd is already running
-#echo "start udev daemon"
-/sbin/udevd --daemon
-
-case "$(uname -r)" in
-       2.6.[0-9]|2.6.[0-9][!0-9]*) ;;
-       *) 	if [ -f "/sys/class/tty/console/uevent" ]; then
-			#echo "Kernel >= 2.6.15 and supports uevents"
-			# trigger the sorted events
-			echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
-			# catch events that are real fast
-			mkdir -p /dev/.udev/queue
-		else
-			# for older kernels without uevents will be removed when udevstart dies in udev
-			echo "Kernel does not support uevents, you need a kernel >= 2.6.15!"
-			exit 1
-		fi 
-	;;
-esac
-}
-
-udev_uevents () 
-{
-# configure all devices
-trigger_device_events
-# until we know how to do better, just wait for _all_ events to finish
-wait_for_queue
-}
-
-if [ $# -eq 0 ]; then
-udev_init
-udev_uevents
-fi
-
-[ "$1" = "init" ] && udev_init
-[ "$1" = "uevents" ] && udev_uevents
-
-exit 0
diff --git a/abs/core-testing/klibc-udev/udev-fix-klibc-build.patch b/abs/core-testing/klibc-udev/udev-fix-klibc-build.patch
deleted file mode 100644
index 7ac0917..0000000
--- a/abs/core-testing/klibc-udev/udev-fix-klibc-build.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -Nur udev-128.orig/extras/Makefile.in udev-128/extras/Makefile.in
---- udev-128.orig/extras/Makefile.in	2008-09-11 16:58:01.000000000 +0200
-+++ udev-128/extras/Makefile.in	2008-09-18 12:03:09.000000000 +0200
-@@ -176,15 +176,11 @@
- udev_prefix = @udev_prefix@
- SUBDIRS = \
- 	ata_id \
--	cdrom_id \
- 	edd_id \
- 	path_id \
- 	firmware \
--	collect \
- 	floppy \
--	fstab_import \
- 	rule_generator \
--	scsi_id \
- 	usb_id \
- 	volume_id
- 
-diff -Nur udev-128.orig/extras/volume_id/lib/libvolume_id-private.h udev-128/extras/volume_id/lib/libvolume_id-private.h
---- udev-128.orig/extras/volume_id/lib/libvolume_id-private.h	2008-09-10 02:37:09.000000000 +0200
-+++ udev-128/extras/volume_id/lib/libvolume_id-private.h	2008-09-18 12:07:57.000000000 +0200
-@@ -35,12 +35,8 @@
- log_null(const char *format, ...) {}
- 
- #define err(format, arg...)	volume_id_log_fn(LOG_ERR, __FILE__, __LINE__, format, ##arg)
--#define info(format, arg...)	volume_id_log_fn(LOG_INFO, __FILE__, __LINE__, format, ##arg)
--#ifdef DEBUG
--#define dbg(format, arg...)	volume_id_log_fn(LOG_DEBUG, __FILE__, __LINE__, format, ##arg)
--#else
-+#define info(format, arg...)    log_null(format, ##arg)
- #define dbg(format, arg...)	log_null(format, ##arg)
--#endif
- 
- #if (__BYTE_ORDER == __LITTLE_ENDIAN)
- #define le16_to_cpu(x) (x)
-diff -Nur udev-128.orig/extras/volume_id/lib/md5.c udev-128/extras/volume_id/lib/md5.c
---- udev-128.orig/extras/volume_id/lib/md5.c	2008-09-10 02:18:59.000000000 +0200
-+++ udev-128/extras/volume_id/lib/md5.c	2008-09-18 12:03:09.000000000 +0200
-@@ -21,7 +21,7 @@
-  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
-  */
- 
--#include <stdint.h>
-+/*#include <stdint.h>*/
- #include <string.h>
- #include <endian.h>
- #include <byteswap.h>
diff --git a/abs/core-testing/klibc-udev/udev.rules b/abs/core-testing/klibc-udev/udev.rules
deleted file mode 100644
index 22f422a..0000000
--- a/abs/core-testing/klibc-udev/udev.rules
+++ /dev/null
@@ -1,187 +0,0 @@
-# Udev rules for Archlinux by Tobias Powalowski <tpowa@archlinux.org>
-#
-# This ruleset should provide a DevFS-compatible device tree.
-#
-# There are a number of modifiers that are allowed to be used in some
-# of the different fields. They provide the following subsitutions:
-#
-# %n the "kernel number" of the device.
-#    For example, 'sda3' has a "kernel number" of '3'
-# %k the kernel name for the device.
-# %M the kernel major number for the device
-# %m the kernel minor number for the device
-# %b the bus id for the device
-# %c the string returned by the PROGRAM
-# %s{filename} the content of a sysfs attribute.
-# %% the '%' char itself.
-#
-# There are a number of modifiers that are allowed to be used in some of the
-# fields.  See the udev man page for a full description of them.
-# global stuff
-#
-
-#####################################
-# Early rules - begin
-#####################################
-# wait for sysfs
-ACTION=="add", KERNEL=="[0-9]*:[0-9]*", SUBSYSTEM=="scsi", WAIT_FOR_SYSFS="ioerr_cnt"
-# Setting timeout for tape-devices (type 1) to 900 seconds
-# and 60 seconds for device types 0, 7 and 14
-SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="0|7|14", ATTR{timeout}="60"
-SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="1", ATTR{timeout}="900"
-#####################################
-# Early rules -end
-#####################################
-
-#####################################
-###### Hotplug rules - begin
-#####################################
-
-# Modaliases to load
-ACTION=="add", ENV{MODALIAS}=="?*", RUN{ignore_error}+="/lib/udev/load-modules.sh $env{MODALIAS}"
-# SCSI addon modules
-ACTION=="add", SUBSYSTEM=="scsi", ATTRS{type}=="[07]", RUN+="/lib/udev/load-modules.sh sd_mod"
-ACTION=="add", SUBSYSTEM=="scsi", ATTRS{type}=="14", RUN+="/lib/udev/load-modules.sh sd_mod"
-ACTION=="add", SUBSYSTEM=="scsi", ATTRS{type}=="[45]", RUN+="/lib/udev/load-modules.sh sr_mod"
-ACTION=="add", SUBSYSTEM=="scsi", ATTRS{type}=="1", ATTRS{vendor}=="Onstream", ATTRS{model}!="ADR*", RUN+="/lib/udev/load-modules.sh osst"
-ACTION=="add", SUBSYSTEM=="scsi", ATTRS{type}=="1", ATTRS{vendor}=="Onstream", ATTRS{model}=="ADR*", RUN+="/lib/udev/load-modules.sh st"
-ACTION=="add", SUBSYSTEM=="scsi", ATTRS{type}=="1", ATTRS{vendor}!="Onstream", RUN+="/lib/udev/load-modules.sh st"
-ACTION=="add", SUBSYSTEM=="scsi", ATTRS{type}=="[23689]", TEST!="[module/sg]", RUN+="/lib/udev/load-modules.sh sg"
-ACTION=="add", SUBSYSTEM=="mmc", RUN+="/lib/udev/load-modules.sh mmc_block"
-
-LABEL="hotplug_driver_loaded"
-
-# FIRMWARE
-ACTION=="add", SUBSYSTEM=="firmware", ENV{FIRMWARE}=="?*", RUN+="/lib/udev/firmware.sh"
-#####################################
-##### Hotplug rules - end
-#####################################
-
-#####################################
-###### CD/DVD symlinks - begin
-#####################################
-ACTION=="add", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", IMPORT="/lib/udev/cdrom_id --export $tempnode"
-ACTION=="add", SUBSYSTEMS=="scsi",	KERNEL=="sr[0-9]*", IMPORT="/lib/udev/cdrom_id --export $tempnode"
-ACTION=="add", SUBSYSTEMS=="scsi",	KERNEL=="scd[a-z]", IMPORT="/lib/udev/cdrom_id --export $tempnode"
-ENV{ID_CDROM}=="?*", SYMLINK+="cd/cdrom-%b"
-ENV{ID_CDROM_CD_RW}=="?*", SYMLINK+="cd/cdrw-%b"
-ENV{ID_CDROM_DVD}=="?*", SYMLINK+="cd/dvd-%b"
-ENV{ID_CDROM_DVD_R}=="?*", SYMLINK+="cd/dvd-%b"
-#####################################
-###### CD/DVD symlinks - end
-#####################################
-
-#####################################
-##### PCMCIA rules - begin
-#####################################
-# PCMCIA devices:
-#
-
-# Very few CIS firmware entries (which we use for matching)
-# are so broken that we need to read out random bytes of it
-# instead of the manufactor, card or product ID. Then the
-# matching is done in userspace.
-ACTION=="add", SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", RUN+="/sbin/pcmcia-check-broken-cis.static"
-
-# However, the "weak" matching by func_id is only allowed _after_ modprobe
-# returns, so that "strong" matches have a higher priority.
-ACTION=="add", SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", RUN+="/bin/sh -c 'echo 1 > /sys/$devpath/allow_func_id_match'"
-
-# PCMCIA sockets:
-#
-# modprobe the pcmcia bus module so that 16-bit PCMCIA devices work
-ACTION=="add", SUBSYSTEM=="pcmcia_socket", RUN+="/lib/udev/load-modules.sh pcmcia"
-
-# if this is a PCMCIA socket which needs a resource database,
-# pcmcia-socket-startup sets it up
-ACTION=="add", SUBSYSTEM=="pcmcia_socket", RUN+="/sbin/pcmcia-socket-startup.static"
-#####################################
-##### PCMCIA rules - end
-#####################################
-
-#######################################
-# Persistant block device stuff - begin
-#######################################
-# persistent storage links: /dev/{disk,tape}/{by-id,by-uuid,by-label,by-path,by-name}
-# scheme based on "Linux persistent device names", 2004, Hannes Reinecke <hare@suse.de>
-
-# needed like this!!!
-ACTION!="add|change", GOTO="persistent_storage_end"
-#KERNEL=="nst[0-9]", SUBSYSTEMS=="scsi", IMPORT{program}="/lib/udev/scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}-nst"
-
-# type 8 devices are "Medium Changers"
-#KERNEL=="sg*", SUBSYSTEMS=="scsi", ATTRS{type}=="8", IMPORT{program}="/lib/udev/scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
-SUBSYSTEM!="block", GOTO="persistent_storage_end"
-
-# skip rules for inappropriate block devices
-# don't add dm-*!!!
-KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|md*", GOTO="persistent_storage_end"
-
-# never access non-cdrom removable ide devices, the drivers are causing event loops on open()
-KERNEL=="hd*[!0-9]", ATTR{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end"
-KERNEL=="hd*[0-9]", ATTRS{removable}=="1", GOTO="persistent_storage_end"
-
-# ignore partitions that span the entire disk
-ATTR{whole_disk}=="*", GOTO="persistent_storage_end"
-
-# /sys/class/block will export this
-ENV{DEVTYPE}!="?*", ATTR{range}=="?*", ENV{DEVTYPE}="disk"
-ENV{DEVTYPE}!="?*", ATTR{start}=="?*", ENV{DEVTYPE}="partition"
-
-# for partitions import parent information
-ENV{DEVTYPE}=="partition", IMPORT{parent}="ID_*"
-
-# by-id (hardware serial number)
-KERNEL=="hd*[!0-9]", IMPORT{program}="/lib/udev/ata_id --export $tempnode"
-KERNEL=="hd*[!0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}"
-KERNEL=="hd*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}-part%n"
-
-KERNEL=="sd*[!0-9]|sr*|st*", ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_SUBSYSTEMS}="ieee1394"
-KERNEL=="sd*[!0-9]|sr*|st*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{program}="/lib/udev/usb_id --export %p"
-#KERNEL=="sd*[!0-9]|sr*|st*", ENV{ID_SERIAL}!="?*", IMPORT{program}="/lib/udev/scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode"
-#KERNEL=="cciss?c[0-9]d[0-9]", ENV{ID_SERIAL}!="?*", IMPORT{program}="/lib/udev/scsi_id --export --whitelisted --ignore-sysfs -s %p -d $tempnode", ENV{ID_BUS}="cciss"
-KERNEL=="sd*[!0-9]|sr*|cciss?c[0-9]d[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
-KERNEL=="sd*[0-9]|cciss*p[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
-KERNEL=="st*", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
-
-# libata compat (links like hd*)
-KERNEL=="sd*[!0-9]|sr*", ENV{ID_VENDOR}=="ATA", PROGRAM="/lib/udev/ata_id $tempnode", RESULT=="?*", ENV{ID_ATA_COMPAT}="$result", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}"
-KERNEL=="sd*[0-9]", ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}-part%n"
-
-KERNEL=="mmcblk[0-9]", SUBSYSTEMS=="mmc", ATTRS{name}=="?*", ATTRS{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}"
-KERNEL=="mmcblk[0-9]p[0-9]", ENV{ID_NAME}=="?*", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}-part%n"
- 
-# by-path (shortest physical path) broken atm
-#ENV{DEVTYPE}=="disk", IMPORT{program}="/lib/udev/path_id %p"
-#ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}"
-#ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n"
-#KERNEL=="st*", ENV{ID_PATH}=="?*", SYMLINK+="tape/by-path/$env{ID_PATH}"
-
-KERNEL=="sr*|st*", GOTO="persistent_storage_end"
-KERNEL=="hd*[!0-9]", ATTR{removable}=="1", GOTO="persistent_storage_end"
-
-# by-label/by-uuid (filesystem properties)
-IMPORT{program}="/lib/udev/vol_id --export $tempnode"
-ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
-ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
-
-# BIOS Enhanced Disk Device
-ENV{DEVTYPE}=="disk", IMPORT{program}="/lib/udev/edd_id --export $tempnode"
-ENV{DEVTYPE}=="disk", ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}"
-ENV{DEVTYPE}=="partition", ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}-part%n"
-LABEL="persistent_storage_end"
-
-# md links hook into "change" events, when the array becomes available
-KERNEL!="md[0-9]*", GOTO="md_end"
-ACTION!="add|change", GOTO="md_end"
-
-ATTR{md/array_state}=="|clear|inactive", GOTO="md_end"
-IMPORT{program}="/lib/udev/vol_id --export $tempnode"
-OPTIONS="link_priority=100"
-ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
-ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}""
- 
-LABEL="md_end"
-#####################################
-# Persistant block device stuff - end
-#####################################
diff --git a/abs/core-testing/klibc-udev/udev_hook b/abs/core-testing/klibc-udev/udev_hook
deleted file mode 100644
index 4d8212a..0000000
--- a/abs/core-testing/klibc-udev/udev_hook
+++ /dev/null
@@ -1,10 +0,0 @@
-# vim: set ft=sh:
-run_hook ()
-{
-    msg -n ":: Loading udev..."
-    echo > /proc/sys/kernel/hotplug
-    /sbin/udevd --daemon
-    /sbin/udevadm trigger
-    /sbin/udevadm settle
-    msg "done."
-}
diff --git a/abs/core-testing/klibc-udev/udev_install b/abs/core-testing/klibc-udev/udev_install
deleted file mode 100644
index 94dcd80..0000000
--- a/abs/core-testing/klibc-udev/udev_install
+++ /dev/null
@@ -1,29 +0,0 @@
-# vim:set ft=sh:
-
-install ()
-{
-    MODULES=""
-    BINARIES=""
-    FILES=" /etc/udev/udev.conf"
-    SCRIPT="udev"
-    add_file /lib/initcpio/udev/udevd /sbin/udevd
-    add_file /lib/initcpio/udev/udevadm /sbin/udevadm
-    add_file /lib/initcpio/udev/50-udev-default.rules /lib/udev/rules.d/50-udev-default.rules
-    add_file /lib/initcpio/udev/60-persistent-storage.rules /lib/udev/rules.d/60-persistent-storage.rules
-    add_file /lib/initcpio/udev/64-device-mapper.rules /lib/udev/rules.d/64-device-mapper.rules
-    add_file /lib/initcpio/udev/64-md-raid.rules /lib/udev/rules.d/64-md-raid.rules
-    add_file /lib/initcpio/udev/80-drivers.rules /lib/udev/rules.d/80-drivers.rules
-    add_file /lib/initcpio/udev/firmware.sh /lib/udev/firmware.sh
-    add_file /lib/initcpio/udev/path_id /lib/udev/path_id
-    add_file /lib/initcpio/udev/vol_id /lib/udev/vol_id
-    add_file /lib/initcpio/udev/load-modules.sh /lib/udev/load-modules.sh
-}
-
-help ()
-{
-cat <<HELPEOF
-  This hook will use udev to create your root device node
-  and detect the needed modules for your root device.
-  It is recommended to use this hook instead of modload.
-HELPEOF
-}
diff --git a/abs/core-testing/klibc-udev/vol_id-suspend2.patch b/abs/core-testing/klibc-udev/vol_id-suspend2.patch
deleted file mode 100644
index 525e17e..0000000
--- a/abs/core-testing/klibc-udev/vol_id-suspend2.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -Nur udev-103.orig/extras/volume_id/lib/linux_swap.c udev-103/extras/volume_id/lib/linux_swap.c
---- udev-103.orig/extras/volume_id/lib/linux_swap.c	2006-10-20 14:43:35.000000000 +0200
-+++ udev-103/extras/volume_id/lib/linux_swap.c	2006-10-29 17:15:19.000000000 +0100
-@@ -73,6 +73,11 @@
- 				strcpy(id->type_version, "ulsuspend");
- 				goto found_label;
- 			}
-+			if (memcmp(buf, "z", 1) == 0 || memcmp(buf, "Z", 1) == 0) {
-+				id->type = "suspend";
-+				strcpy(id->type_version, "suspend2");
-+				goto found_label;
-+			}
- 	}
- 	return -1;
- 
diff --git a/abs/core-testing/klibc/PKGBUILD b/abs/core-testing/klibc/PKGBUILD
deleted file mode 100644
index 11080c0..0000000
--- a/abs/core-testing/klibc/PKGBUILD
+++ /dev/null
@@ -1,56 +0,0 @@
-# $Id: PKGBUILD 23627 2009-01-11 14:22:23Z thomas $
-# Maintainer: Aaron Griffin <aaron@archlinux.org>
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
-
-###
-### NOTE: Do not build this package with anything except gcc - using ccache
-###  forces others to use it as well as it becomes hardcoded in the klibc
-###  script.
-###
-
-pkgname=klibc
-pkgver=1.5.15
-_klibcbranch=Testing #Stable/Testing
-_kver=2.6.28-ARCH
-pkgrel=30
-pkgdesc="A minimal libc made for early-userspace"
-arch=(i686 x86_64)
-url="http://www.kernel.org/pub/linux/libs/klibc/"
-license=('BSD')
-groups=('base')
-options=(!ccache !strip)
-source=(http://www.kernel.org/pub/linux/libs/klibc/${_klibcbranch}/${pkgname}-${pkgver}.tar.gz
-        klibc-compile-shared-by-default.patch
-        klibc-Kbuild.patch
-        klibc-x86_64-fix-io.h.patch
-        klibc-fix-2.6.28-includes.patch)
-md5sums=('b5527be46f24779884557b11888c8075'
-         'c263a7c3fd290fcc84a4e230d456d022'
-         'ff5b113024256de31af59c2f1a966516'
-         'fcee75cfaa65638b07f9cc4a7719fa29'
-         '85e39751debc304119eb481d6bc26d59')
-                  
-build()
-{
-  cd $startdir/src/$pkgname-$pkgver
-  #INI_DEBUG causes ipconfig to fail within kinit
-  sed -i "/#define INI_DEBUG/d" usr/kinit/kinit.h || return 1
-  ln -sf /usr/src/linux-${_kver} linux
-
-  # compile binaries shared by default
-  patch -p1 -i ../klibc-compile-shared-by-default.patch || return 1
-  # don't build gzip, cpio, kill, build shared binaries for kinit and sh
-  patch -p1 -i ../klibc-Kbuild.patch || return 1
-  # fix errors in io.h header
-  patch -p1 -i ../klibc-x86_64-fix-io.h.patch || return 1
-  # fix includes for 2.6.28 build
-  patch -p1 -i ../klibc-fix-2.6.28-includes.patch || return 1
-  
-  make EXTRA_KLIBCFLAGS='' || return 1
-  make INSTALLROOT=$startdir/pkg install || return 1
-  #ln -sf asm-x86 $startdir/pkg/usr/lib/klibc/include/asm
-  cp -a linux/arch/x86/include/asm/* $startdir/pkg/usr/lib/klibc/include/asm/
-  
-  provides[${#provides[@]}]="$(basename $startdir/pkg/lib/klibc-*.so .so)"
-  export provides
-}
diff --git a/abs/core-testing/klibc/klibc-2.6.24.patch b/abs/core-testing/klibc/klibc-2.6.24.patch
deleted file mode 100644
index 2527699..0000000
--- a/abs/core-testing/klibc/klibc-2.6.24.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-unchanged:
---- klibc-1.5.orig/usr/klibc/arch/i386/MCONFIG	2007-03-04 02:52:10.000000000 +0100
-+++ klibc-1.5/usr/klibc/arch/i386/MCONFIG	2008-01-27 16:06:08.000000000 +0100
-@@ -31,3 +31,4 @@
- # calls, and work on the memory models for this architecture
- # 96 MB - normal binaries start at 128 MB
- KLIBCSHAREDFLAGS	= -Ttext 0x06000200
-+KLIBCASMARCH = x86
-unchanged:
---- klibc-1.5.orig/usr/klibc/arch/x86_64/MCONFIG	2007-03-04 02:52:10.000000000 +0100
-+++ klibc-1.5/usr/klibc/arch/x86_64/MCONFIG	2008-01-27 16:05:43.000000000 +0100
-@@ -36,4 +36,4 @@
- KLIBCSHAREDFLAGS     = -Ttext 0x00200200 -z max-page-size=0x100000
- 
- # Additional asm- directories needed during installation
--ASMARCH = asm-i386
-+KLIBCASMARCH = x86
-only in patch2:
-unchanged:
---- a/scripts/Kbuild.install	2007-03-04 02:52:10.000000000 +0100
-+++ b/scripts/Kbuild.install    2007-11-04 15:43:28.000000000 +0100
-@@ -84,6 +84,13 @@
- # 1) Create directories, install headers and man pages
- # 2) Tell that we now install binaries
- # 3) Install binaries by descending
-+
-+# Arch specific definitions for klibc
-+include $(KLIBCSRC)/arch/$(KLIBCARCHDIR)/MCONFIG
-+
-+# include/asm-* architecture
-+KLIBCASMARCH      ?= $(KLIBCARCH)
-+
- .PHONY: header footer descend
- header:
- 	$(Q)echo "  INSTALL headers + man pages to $(INSTALLROOT)$(INSTALLDIR)"
-@@ -95,7 +102,7 @@
- 	$(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include
- 	$(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib
- 	$(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin
--	$(Q)set -e ; for d in linux scsi asm-$(KLIBCARCH) asm-generic $(ASMKLIBCARCH); do \
-+	$(Q)set -e ; for d in linux scsi asm-$(KLIBCASMARCH) asm-generic $(ASMKLIBCARCH); do \
- 	  mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KLIBCCROSS)include/$$d ; \
- 	  for r in $(KLIBCKERNELSRC)/include $(KLIBCKERNELOBJ)/include \
- 	           $(KLIBCKERNELOBJ)/include2 ; do \
diff --git a/abs/core-testing/klibc/klibc-Kbuild.patch b/abs/core-testing/klibc/klibc-Kbuild.patch
deleted file mode 100644
index 28beee9..0000000
--- a/abs/core-testing/klibc/klibc-Kbuild.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-diff -Nur klibc-1.5.14.orig/Kbuild klibc-1.5.14/Kbuild
---- klibc-1.5.14.orig/Kbuild	2008-07-30 23:06:03.000000000 +0200
-+++ klibc-1.5.14/Kbuild	2008-09-18 13:08:42.000000000 +0200
-@@ -10,9 +10,8 @@
- 	$(Q)$(MAKE) $(klibc)=usr/kinit
- 	$(Q)$(MAKE) $(klibc)=usr/dash
- 	$(Q)$(MAKE) $(klibc)=usr/utils
--	$(Q)$(MAKE) $(klibc)=usr/gzip
- 
- 
- # Directories to visit during clean and install
--subdir- := scripts/basic klcc usr/klibc usr/dash usr/utils usr/gzip \
-+subdir- := scripts/basic klcc usr/klibc usr/dash usr/utils \
- 	   usr/kinit usr/klibc/tests
-diff -Nur klibc-1.5.14.orig/usr/Kbuild klibc-1.5.14/usr/Kbuild
---- klibc-1.5.14.orig/usr/Kbuild	2008-07-30 23:06:03.000000000 +0200
-+++ klibc-1.5.14/usr/Kbuild	2008-09-18 13:08:42.000000000 +0200
-@@ -6,7 +6,7 @@
- 
- include-subdir := include
- klibc-subdir := klibc
--usr-subdirs  := kinit utils dash gzip
-+usr-subdirs  := kinit utils dash
- subdir-      := $(include-subdir) $(klibc-subdir) $(usr-subdirs)
- 
- usr-subdirs  := $(addprefix _usr_,$(usr-subdirs))
-diff -Nur klibc-1.5.14.orig/usr/dash/Kbuild klibc-1.5.14/usr/dash/Kbuild
---- klibc-1.5.14.orig/usr/dash/Kbuild	2008-07-30 23:06:03.000000000 +0200
-+++ klibc-1.5.14/usr/dash/Kbuild	2008-09-18 13:08:42.000000000 +0200
-@@ -23,11 +23,8 @@
- hostprogs-y := mkinit mksyntax mknodes mksignames
- gen-h-files := arith.h builtins.h nodes.h syntax.h token.h
- 
--static-y := sh
--
- # The shared binary
--shared-y    := sh.shared
--sh.shared-y := $(sh-y)
-+shared-y    := sh
- 
- # For cleaning
- targets := sh sh.g sh.shared sh.shared.g $(gen-o-files)
-@@ -108,4 +105,4 @@
- 	$(Q):
- 
- # Targets to install
--install-y := sh.shared
-+install-y := sh
-diff -Nur klibc-1.5.14.orig/usr/kinit/Kbuild klibc-1.5.14/usr/kinit/Kbuild
---- klibc-1.5.14.orig/usr/kinit/Kbuild	2008-07-30 23:06:03.000000000 +0200
-+++ klibc-1.5.14/usr/kinit/Kbuild	2008-09-18 13:08:42.000000000 +0200
-@@ -17,9 +17,7 @@
- kinit-y  += fstype/
- kinit-y  += resume/
- 
--static-y := kinit
--shared-y := kinit.shared
--kinit.shared-y := $(kinit-y)
-+shared-y := kinit
- 
- # Additional include paths files
- KLIBCCFLAGS += -I$(srctree)/$(src)/fstype \
-@@ -34,4 +32,4 @@
- 
- 
- # install binary
--install-y := kinit kinit.shared
-+install-y := kinit
-diff -Nur klibc-1.5.14.orig/usr/utils/Kbuild klibc-1.5.14/usr/utils/Kbuild
---- klibc-1.5.14.orig/usr/utils/Kbuild	2008-07-30 23:06:03.000000000 +0200
-+++ klibc-1.5.14/usr/utils/Kbuild	2008-09-18 13:08:56.000000000 +0200
-@@ -4,7 +4,7 @@
- 
- progs := chroot dd mkdir mkfifo mknod mount pivot_root umount
- progs += true false sleep ln nuke minips cat
--progs += uname halt kill readlink cpio sync dmesg
-+progs += uname halt readlink sync dmesg
- 
- static-y := $(addprefix static/, $(progs))
- shared-y := $(addprefix shared/, $(progs))
diff --git a/abs/core-testing/klibc/klibc-compile-shared-by-default.patch b/abs/core-testing/klibc/klibc-compile-shared-by-default.patch
deleted file mode 100644
index e144c3e..0000000
--- a/abs/core-testing/klibc/klibc-compile-shared-by-default.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur klibc-1.5.orig/klcc/klcc.in klibc-1.5/klcc/klcc.in
---- klibc-1.5.orig/klcc/klcc.in	2007-03-04 02:52:10.000000000 +0100
-+++ klibc-1.5/klcc/klcc.in	2007-10-31 09:20:34.000000000 +0100
-@@ -113,7 +113,7 @@
- 
- $save_temps = 0;		# The -save-temps option
- $verbose = 0;			# The -v option
--$shared = 0;	   		# Are we compiling shared?
-+$shared = 1;	   		# Are we compiling shared?
- $debugging = 0;	   		# -g or -p option present?
- $strip = 0;			# -s option present?
- undef $output;			# -o option present?
diff --git a/abs/core-testing/klibc/klibc-fix-2.6.28-includes.patch b/abs/core-testing/klibc/klibc-fix-2.6.28-includes.patch
deleted file mode 100644
index d7108a4..0000000
--- a/abs/core-testing/klibc/klibc-fix-2.6.28-includes.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur klibc-1.5.14.orig/scripts/Kbuild.klibc klibc-1.5.14/scripts/Kbuild.klibc
---- klibc-1.5.14.orig/scripts/Kbuild.klibc	2008-07-30 23:06:03.000000000 +0200
-+++ klibc-1.5.14/scripts/Kbuild.klibc	2008-12-29 23:59:14.000000000 +0100
-@@ -103,7 +103,7 @@
-                     -I$(KLIBCINC)
- # kernel include paths
- KLIBCKERNELSRC	 ?= $(srctree)/
--KLIBCCPPFLAGS    += -I$(KLIBCKERNELSRC)include		\
-+KLIBCCPPFLAGS    += -I$(KLIBCKERNELSRC)include -I$(KLIBCKERNELSRC)arch/x86/include		\
-                      $(if $(KBUILD_SRC),-I$(KLIBCKERNELOBJ)include2 -I$(KLIBCKERNELOBJ)include -I$(srctree)/include)    \
- 		     $(KLIBCARCHINCFLAGS)
- 
diff --git a/abs/core-testing/klibc/klibc-module-init-tools.patch b/abs/core-testing/klibc/klibc-module-init-tools.patch
deleted file mode 100644
index a5e4532..0000000
--- a/abs/core-testing/klibc/klibc-module-init-tools.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff -Nur klibc-1.5.orig/usr/include/sys/elf32.h klibc-1.5/usr/include/sys/elf32.h
---- klibc-1.5.orig/usr/include/sys/elf32.h	2007-03-04 02:52:10.000000000 +0100
-+++ klibc-1.5/usr/include/sys/elf32.h	2007-10-31 09:18:09.000000000 +0100
-@@ -110,4 +110,8 @@
- 	Elf32_Word n_type;	/* Content type */
- } Elf32_Nhdr;
- 
-+/* How to extract and insert information held in the st_info field.  */
-+#define ELF32_ST_BIND(val)		(((unsigned char) (val)) >> 4)
-+#define ELF32_ST_TYPE(val)		((val) & 0xf)
-+
- #endif				/* _SYS_ELF32_H */
-diff -Nur klibc-1.5.orig/usr/include/sys/elf64.h klibc-1.5/usr/include/sys/elf64.h
---- klibc-1.5.orig/usr/include/sys/elf64.h	2007-03-04 02:52:10.000000000 +0100
-+++ klibc-1.5/usr/include/sys/elf64.h	2007-10-31 09:18:09.000000000 +0100
-@@ -110,4 +110,8 @@
- 	Elf64_Word n_type;	/* Content type */
- } Elf64_Nhdr;
- 
-+/* Both Elf32_Sym and Elf64_Sym use the same one-byte st_info field.  */
-+#define ELF64_ST_BIND(val)		ELF32_ST_BIND (val)
-+#define ELF64_ST_TYPE(val)		ELF32_ST_TYPE (val)
-+
- #endif				/* _SYS_ELF64_H */
-diff -Nur klibc-1.5.orig/usr/include/sys/elfcommon.h klibc-1.5/usr/include/sys/elfcommon.h
---- klibc-1.5.orig/usr/include/sys/elfcommon.h	2007-03-04 02:52:10.000000000 +0100
-+++ klibc-1.5/usr/include/sys/elfcommon.h	2007-10-31 09:18:09.000000000 +0100
-@@ -184,4 +184,14 @@
- #define ELFOSABI_NONE   0
- #define ELFOSABI_LINUX  3
- 
-+/* Legal values for ST_BIND subfield of st_info (symbol binding).  */
-+#define STB_LOCAL	0		/* Local symbol */
-+#define STB_GLOBAL	1		/* Global symbol */
-+#define STB_WEAK	2		/* Weak symbol */
-+#define STB_NUM		3		/* Number of defined types.  */
-+#define STB_LOOS	10		/* Start of OS-specific */
-+#define STB_HIOS	12		/* End of OS-specific */
-+#define STB_LOPROC	13		/* Start of processor-specific */
-+#define STB_HIPROC	15		/* End of processor-specific */
-+
- #endif				/* _SYS_ELFCOMMON_H */
-diff -Nur klibc-1.5.orig/usr/utils/Kbuild klibc-1.5/usr/utils/Kbuild
---- klibc-1.5.orig/usr/utils/Kbuild	2007-03-04 02:52:10.000000000 +0100
-+++ klibc-1.5/usr/utils/Kbuild	2007-10-31 09:18:28.000000000 +0100
-@@ -4,7 +4,7 @@
- 
- progs := chroot dd mkdir mkfifo mknod mount pivot_root umount
- progs += true false sleep ln nuke minips cat
--progs += insmod uname halt kill readlink cpio
-+progs += uname halt kill readlink cpio
- 
- static-y := $(addprefix static/, $(progs))
- shared-y := $(addprefix shared/, $(progs))
-@@ -40,8 +40,6 @@
- shared/minips-y     := minips.o
- static/cat-y        := cat.o
- shared/cat-y        := cat.o
--static/insmod-y     := insmod.o
--shared/insmod-y     := insmod.o
- static/uname-y      := uname.o
- shared/uname-y      := uname.o
- static/halt-y       := halt.o
diff --git a/abs/core-testing/klibc/klibc-x86_64-fix-io.h.patch b/abs/core-testing/klibc/klibc-x86_64-fix-io.h.patch
deleted file mode 100644
index 25ef789..0000000
--- a/abs/core-testing/klibc/klibc-x86_64-fix-io.h.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -Nur klibc-1.5.14.orig/usr/include/arch/x86_64/sys/io.h klibc-1.5.14/usr/include/arch/x86_64/sys/io.h
---- klibc-1.5.14.orig/usr/include/arch/x86_64/sys/io.h	2008-07-30 23:06:03.000000000 +0200
-+++ klibc-1.5.14/usr/include/arch/x86_64/sys/io.h	2008-09-18 14:34:20.000000000 +0200
-@@ -60,21 +60,21 @@
- {
- 	unsigned char __v;
- 	asm volatile ("inb %1,%0" : "=a" (__v) : "dN"(__p));
--	return v;
-+	return __v;
- }
- 
- static __inline__ unsigned short inw(unsigned short __p)
- {
- 	unsigned short __v;
- 	asm volatile ("inw %1,%0" : "=a" (__v) : "dN"(__p));
--	return v;
-+	return __v;
- }
- 
- static __inline__ unsigned int inl(unsigned short __p)
- {
- 	unsigned int __v;
- 	asm volatile ("inl %1,%0" : "=a" (__v) : "dN"(__p));
--	return v;
-+	return __v;
- }
- 
- /* String I/O macros */
diff --git a/abs/core-testing/klibc/multiple_raid_assembly_fix.patch b/abs/core-testing/klibc/multiple_raid_assembly_fix.patch
deleted file mode 100644
index 237a1db..0000000
--- a/abs/core-testing/klibc/multiple_raid_assembly_fix.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/usr/kinit/do_mounts_md.c	2006-07-31 21:16:01.000000000 -0500
-+++ b/usr/kinit/do_mounts_md.c	2006-07-31 21:18:46.000000000 -0500
-@@ -228,6 +228,7 @@
- 		char *devname;
- 		mdu_disk_info_t dinfo;
- 		char name[16];
-+		struct stat st_chk;
- 
- 		dev_minor = md_setup_args[ent].minor;
- 		partitioned = md_setup_args[ent].partitioned;
-@@ -236,6 +237,9 @@
- 		snprintf(name, sizeof name,
- 			 "/dev/md%s%d", partitioned ? "_d" : "", dev_minor);
- 
-+		if (stat(name, &st_chk) == 0)
-+			continue;
-+
- 		if (partitioned)
- 			dev = makedev(mdp_major(), dev_minor << MdpMinorShift);
- 		else
-- 
cgit v0.12


From 701976eb6c563257193ee08b6d3f612fbdb9c59b Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:06:43 -0700
Subject: libcups:Removed for LinHES 7.

---
 abs/core-testing/libcups/PKGBUILD | 33 ---------------------------------
 1 file changed, 33 deletions(-)
 delete mode 100644 abs/core-testing/libcups/PKGBUILD

diff --git a/abs/core-testing/libcups/PKGBUILD b/abs/core-testing/libcups/PKGBUILD
deleted file mode 100644
index 9b31bd0..0000000
--- a/abs/core-testing/libcups/PKGBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id: PKGBUILD 20496 2008-12-05 11:29:11Z allan $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-
-pkgname=libcups
-pkgver=1.3.9
-pkgrel=4
-pkgdesc="The CUPS Printing System"
-arch=('i686' 'x86_64')
-license=('GPL')
-url="http://www.cups.org/"
-depends=('gnutls>=2.4.1' 'libtiff' 'libpng' 'heimdal>=1.2')
-source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2)
-md5sums=('72430b36094cf587cf2e0087047d5643')
-
-build() {
-  cd ${srcdir}/cups-${pkgver}
-  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
-     --with-logdir=/var/log/cups -with-docdir=/usr/share/cups/doc \
-     --with-cups-user=daemon --with-cups-group=lp --enable-ssl=yes \
-     --disable-ldap --disable-dbus --libdir=/usr/lib
-
-  for dir in cups filter; do
-    pushd ${dir}
-    make
-    make BUILDROOT=${pkgdir} install
-    popd
-  done
-
-  mkdir -p ${startdir}/pkg/usr/bin
-  install -m755 cups-config ${startdir}/pkg/usr/bin/cups-config
-  #Remove filters
-  rm -rf ${startdir}/pkg/usr/lib/cups
-}
-- 
cgit v0.12


From d4036a9bd6c8683e2c48300707cd01db0f5a51db Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:06:53 -0700
Subject: libdatrie:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libdatrie/PKGBUILD | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/core-testing/libdatrie/PKGBUILD b/abs/core-testing/libdatrie/PKGBUILD
index a4408d7..9da01c0 100644
--- a/abs/core-testing/libdatrie/PKGBUILD
+++ b/abs/core-testing/libdatrie/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 35276 2009-04-11 20:11:41Z jgc $
+# $Id: PKGBUILD 71215 2010-03-05 15:34:36Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Chaiwat Suttipongsakul <cwt114@gmail.com>
 
 pkgname=libdatrie
-pkgver=0.2.1
+pkgver=0.2.3
 pkgrel=1
 pkgdesc="Libdatrie is an implementation of double-array structure for representing trie, as proposed by Junichi Aoe."
 url="http://linux.thai.net/~thep/datrie/datrie.html"
@@ -12,7 +12,7 @@ arch=('i686' 'x86_64')
 depends=('glibc')
 options=('!libtool' '!emptydirs')
 source=(http://linux.thai.net/pub/thailinux/software/libthai/${pkgname}-${pkgver}.tar.gz)
-md5sums=('196e485958f74cf13e676d93729067cf')
+md5sums=('c6814f4fe68aa8d41d1b7183ad78d319')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-- 
cgit v0.12


From 49223c24b3a7c4a505602ec017789c2e007b6469 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:07:05 -0700
Subject: libdrm:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libdrm/COPYING                    |  48 ++
 abs/core-testing/libdrm/PKGBUILD                   |  36 +-
 .../libdrm/libdrm-2.4.21-b803918f3f.patch          | 506 +++++++++++++++++++++
 abs/core-testing/libdrm/no-pthread-stubs.patch     |  65 +++
 4 files changed, 646 insertions(+), 9 deletions(-)
 create mode 100644 abs/core-testing/libdrm/COPYING
 create mode 100644 abs/core-testing/libdrm/libdrm-2.4.21-b803918f3f.patch
 create mode 100644 abs/core-testing/libdrm/no-pthread-stubs.patch

diff --git a/abs/core-testing/libdrm/COPYING b/abs/core-testing/libdrm/COPYING
new file mode 100644
index 0000000..6e74c33
--- /dev/null
+++ b/abs/core-testing/libdrm/COPYING
@@ -0,0 +1,48 @@
+ Copyright 2005 Adam Jackson.
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation on the rights to use, copy, modify, merge,
+ publish, distribute, sub license, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice (including the
+ next paragraph) shall be included in all copies or substantial
+ portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NON-INFRINGEMENT.  IN NO EVENT SHALL ADAM JACKSON BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+------------------------------------------------------------------------
+
+ Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
+ Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ All Rights Reserved.
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice (including the
+ next paragraph) shall be included in all copies or substantial
+ portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT.  IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS
+ SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
diff --git a/abs/core-testing/libdrm/PKGBUILD b/abs/core-testing/libdrm/PKGBUILD
index 816aa2a..68a5a06 100644
--- a/abs/core-testing/libdrm/PKGBUILD
+++ b/abs/core-testing/libdrm/PKGBUILD
@@ -1,20 +1,38 @@
-# $Id: PKGBUILD 19237 2008-11-17 22:36:17Z jgc $
+# $Id: PKGBUILD 86650 2010-08-02 19:36:00Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=libdrm
-pkgver=2.3.1
+pkgver=2.4.21
 pkgrel=2
 pkgdesc="Userspace interface to kernel DRM services"
 arch=(i686 x86_64)
+license=('custom')
 depends=('glibc')
-options=('!libtool' 'force')
+options=('!libtool')
 url="http://dri.freedesktop.org/"
-source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('620fe7dd02c3236c3e9881a3a238173d')
-
+source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+        libdrm-2.4.21-b803918f3f.patch
+        no-pthread-stubs.patch
+        COPYING)
+md5sums=('273ed9dad986e3a931649f3d8762ff74'
+         'd67fab8381b371fe2a8f86e2819aef2b'
+         '9b5ec3bbebe86921e2057694c42f65b8'
+         'ba65e71c481b94ef0fb6c23c7f21ffa1')
+     
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR="${pkgdir}" install || return 1
+  patch -Np1 -i "${srcdir}/libdrm-2.4.21-b803918f3f.patch"
+  patch -Np1 -i "${srcdir}/no-pthread-stubs.patch"
+  libtoolize --force
+  aclocal
+  autoconf
+  automake
+  ./configure --prefix=/usr \
+      --enable-intel --enable-radeon \
+      --enable-vmwgfx-experimental-api --enable-nouveau-experimental-api \
+      --enable-udev
+  make
+  make DESTDIR="${pkgdir}" install
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 "${srcdir}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/"
 }
diff --git a/abs/core-testing/libdrm/libdrm-2.4.21-b803918f3f.patch b/abs/core-testing/libdrm/libdrm-2.4.21-b803918f3f.patch
new file mode 100644
index 0000000..ff8c1c4
--- /dev/null
+++ b/abs/core-testing/libdrm/libdrm-2.4.21-b803918f3f.patch
@@ -0,0 +1,506 @@
+diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
+index a8e072d..3446390 100644
+--- a/intel/intel_bufmgr_gem.c
++++ b/intel/intel_bufmgr_gem.c
+@@ -93,6 +93,7 @@ typedef struct _drm_intel_bufmgr_gem {
+ 	/** Array of lists of cached gem objects of power-of-two sizes */
+ 	struct drm_intel_gem_bo_bucket cache_bucket[14 * 4];
+ 	int num_buckets;
++	time_t time;
+ 
+ 	uint64_t gtt_size;
+ 	int available_fences;
+@@ -132,6 +133,7 @@ struct _drm_intel_bo_gem {
+ 	 */
+ 	uint32_t tiling_mode;
+ 	uint32_t swizzle_mode;
++	unsigned long stride;
+ 
+ 	time_t free_time;
+ 
+@@ -200,8 +202,9 @@ drm_intel_gem_bo_get_tiling(drm_intel_bo *bo, uint32_t * tiling_mode,
+ 			    uint32_t * swizzle_mode);
+ 
+ static int
+-drm_intel_gem_bo_set_tiling(drm_intel_bo *bo, uint32_t * tiling_mode,
+-			    uint32_t stride);
++drm_intel_gem_bo_set_tiling_internal(drm_intel_bo *bo,
++				     uint32_t tiling_mode,
++				     uint32_t stride);
+ 
+ static void drm_intel_gem_bo_unreference_locked_timed(drm_intel_bo *bo,
+ 						      time_t time);
+@@ -251,7 +254,7 @@ drm_intel_gem_bo_tile_size(drm_intel_bufmgr_gem *bufmgr_gem, unsigned long size,
+  */
+ static unsigned long
+ drm_intel_gem_bo_tile_pitch(drm_intel_bufmgr_gem *bufmgr_gem,
+-			    unsigned long pitch, uint32_t tiling_mode)
++			    unsigned long pitch, uint32_t *tiling_mode)
+ {
+ 	unsigned long tile_width;
+ 	unsigned long i;
+@@ -259,10 +262,10 @@ drm_intel_gem_bo_tile_pitch(drm_intel_bufmgr_gem *bufmgr_gem,
+ 	/* If untiled, then just align it so that we can do rendering
+ 	 * to it with the 3D engine.
+ 	 */
+-	if (tiling_mode == I915_TILING_NONE)
++	if (*tiling_mode == I915_TILING_NONE)
+ 		return ALIGN(pitch, 64);
+ 
+-	if (tiling_mode == I915_TILING_X)
++	if (*tiling_mode == I915_TILING_X)
+ 		tile_width = 512;
+ 	else
+ 		tile_width = 128;
+@@ -271,6 +274,14 @@ drm_intel_gem_bo_tile_pitch(drm_intel_bufmgr_gem *bufmgr_gem,
+ 	if (bufmgr_gem->gen >= 4)
+ 		return ROUND_UP_TO(pitch, tile_width);
+ 
++	/* The older hardware has a maximum pitch of 8192 with tiled
++	 * surfaces, so fallback to untiled if it's too large.
++	 */
++	if (pitch > 8192) {
++		*tiling_mode = I915_TILING_NONE;
++		return ALIGN(pitch, 64);
++	}
++
+ 	/* Pre-965 needs power of two tile width */
+ 	for (i = tile_width; i < pitch; i <<= 1)
+ 		;
+@@ -549,7 +560,9 @@ static drm_intel_bo *
+ drm_intel_gem_bo_alloc_internal(drm_intel_bufmgr *bufmgr,
+ 				const char *name,
+ 				unsigned long size,
+-				unsigned long flags)
++				unsigned long flags,
++				uint32_t tiling_mode,
++				unsigned long stride)
+ {
+ 	drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bufmgr;
+ 	drm_intel_bo_gem *bo_gem;
+@@ -615,6 +628,13 @@ retry:
+ 								    bucket);
+ 				goto retry;
+ 			}
++
++			if (drm_intel_gem_bo_set_tiling_internal(&bo_gem->bo,
++								 tiling_mode,
++								 stride)) {
++				drm_intel_gem_bo_free(&bo_gem->bo);
++				goto retry;
++			}
+ 		}
+ 	}
+ 	pthread_mutex_unlock(&bufmgr_gem->lock);
+@@ -642,6 +662,17 @@ retry:
+ 			return NULL;
+ 		}
+ 		bo_gem->bo.bufmgr = bufmgr;
++
++		bo_gem->tiling_mode = I915_TILING_NONE;
++		bo_gem->swizzle_mode = I915_BIT_6_SWIZZLE_NONE;
++		bo_gem->stride = 0;
++
++		if (drm_intel_gem_bo_set_tiling_internal(&bo_gem->bo,
++							 tiling_mode,
++							 stride)) {
++		    drm_intel_gem_bo_free(&bo_gem->bo);
++		    return NULL;
++		}
+ 	}
+ 
+ 	bo_gem->name = name;
+@@ -650,8 +681,6 @@ retry:
+ 	bo_gem->reloc_tree_fences = 0;
+ 	bo_gem->used_as_reloc_target = 0;
+ 	bo_gem->has_error = 0;
+-	bo_gem->tiling_mode = I915_TILING_NONE;
+-	bo_gem->swizzle_mode = I915_BIT_6_SWIZZLE_NONE;
+ 	bo_gem->reusable = 1;
+ 
+ 	drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem);
+@@ -669,7 +698,8 @@ drm_intel_gem_bo_alloc_for_render(drm_intel_bufmgr *bufmgr,
+ 				  unsigned int alignment)
+ {
+ 	return drm_intel_gem_bo_alloc_internal(bufmgr, name, size,
+-					       BO_ALLOC_FOR_RENDER);
++					       BO_ALLOC_FOR_RENDER,
++					       I915_TILING_NONE, 0);
+ }
+ 
+ static drm_intel_bo *
+@@ -678,7 +708,8 @@ drm_intel_gem_bo_alloc(drm_intel_bufmgr *bufmgr,
+ 		       unsigned long size,
+ 		       unsigned int alignment)
+ {
+-	return drm_intel_gem_bo_alloc_internal(bufmgr, name, size, 0);
++	return drm_intel_gem_bo_alloc_internal(bufmgr, name, size, 0,
++					       I915_TILING_NONE, 0);
+ }
+ 
+ static drm_intel_bo *
+@@ -687,10 +718,8 @@ drm_intel_gem_bo_alloc_tiled(drm_intel_bufmgr *bufmgr, const char *name,
+ 			     unsigned long *pitch, unsigned long flags)
+ {
+ 	drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr;
+-	drm_intel_bo *bo;
+ 	unsigned long size, stride;
+ 	uint32_t tiling;
+-	int ret;
+ 
+ 	do {
+ 		unsigned long aligned_y;
+@@ -717,24 +746,17 @@ drm_intel_gem_bo_alloc_tiled(drm_intel_bufmgr *bufmgr, const char *name,
+ 			aligned_y = ALIGN(y, 32);
+ 
+ 		stride = x * cpp;
+-		stride = drm_intel_gem_bo_tile_pitch(bufmgr_gem, stride, tiling);
++		stride = drm_intel_gem_bo_tile_pitch(bufmgr_gem, stride, tiling_mode);
+ 		size = stride * aligned_y;
+ 		size = drm_intel_gem_bo_tile_size(bufmgr_gem, size, tiling_mode);
+ 	} while (*tiling_mode != tiling);
+-
+-	bo = drm_intel_gem_bo_alloc_internal(bufmgr, name, size, flags);
+-	if (!bo)
+-		return NULL;
+-
+-	ret = drm_intel_gem_bo_set_tiling(bo, tiling_mode, stride);
+-	if (ret != 0) {
+-		drm_intel_gem_bo_unreference(bo);
+-		return NULL;
+-	}
+-
+ 	*pitch = stride;
+ 
+-	return bo;
++	if (tiling == I915_TILING_NONE)
++		stride = 0;
++
++	return drm_intel_gem_bo_alloc_internal(bufmgr, name, size, flags,
++					       tiling, stride);
+ }
+ 
+ /**
+@@ -791,6 +813,7 @@ drm_intel_bo_gem_create_from_name(drm_intel_bufmgr *bufmgr,
+ 	}
+ 	bo_gem->tiling_mode = get_tiling.tiling_mode;
+ 	bo_gem->swizzle_mode = get_tiling.swizzle_mode;
++	/* XXX stride is unknown */
+ 	drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem);
+ 
+ 	DBG("bo_create_from_handle: %d (%s)\n", handle, bo_gem->name);
+@@ -829,6 +852,9 @@ drm_intel_gem_cleanup_bo_cache(drm_intel_bufmgr_gem *bufmgr_gem, time_t time)
+ {
+ 	int i;
+ 
++	if (bufmgr_gem->time == time)
++		return;
++
+ 	for (i = 0; i < bufmgr_gem->num_buckets; i++) {
+ 		struct drm_intel_gem_bo_bucket *bucket =
+ 		    &bufmgr_gem->cache_bucket[i];
+@@ -846,6 +872,8 @@ drm_intel_gem_cleanup_bo_cache(drm_intel_bufmgr_gem *bufmgr_gem, time_t time)
+ 			drm_intel_gem_bo_free(&bo_gem->bo);
+ 		}
+ 	}
++
++	bufmgr_gem->time = time;
+ }
+ 
+ static void
+@@ -854,7 +882,6 @@ drm_intel_gem_bo_unreference_final(drm_intel_bo *bo, time_t time)
+ 	drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr;
+ 	drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
+ 	struct drm_intel_gem_bo_bucket *bucket;
+-	uint32_t tiling_mode;
+ 	int i;
+ 
+ 	/* Unreference all the target buffers */
+@@ -883,9 +910,7 @@ drm_intel_gem_bo_unreference_final(drm_intel_bo *bo, time_t time)
+ 
+ 	bucket = drm_intel_gem_bo_bucket_for_size(bufmgr_gem, bo->size);
+ 	/* Put the buffer into our internal cache for reuse if we can. */
+-	tiling_mode = I915_TILING_NONE;
+ 	if (bufmgr_gem->bo_reuse && bo_gem->reusable && bucket != NULL &&
+-	    drm_intel_gem_bo_set_tiling(bo, &tiling_mode, 0) == 0 &&
+ 	    drm_intel_gem_bo_madvise_internal(bufmgr_gem, bo_gem,
+ 					      I915_MADV_DONTNEED)) {
+ 		bo_gem->free_time = time;
+@@ -894,8 +919,6 @@ drm_intel_gem_bo_unreference_final(drm_intel_bo *bo, time_t time)
+ 		bo_gem->validate_index = -1;
+ 
+ 		DRMLISTADDTAIL(&bo_gem->head, &bucket->head);
+-
+-		drm_intel_gem_cleanup_bo_cache(bufmgr_gem, time);
+ 	} else {
+ 		drm_intel_gem_bo_free(bo);
+ 	}
+@@ -925,6 +948,7 @@ static void drm_intel_gem_bo_unreference(drm_intel_bo *bo)
+ 
+ 		pthread_mutex_lock(&bufmgr_gem->lock);
+ 		drm_intel_gem_bo_unreference_final(bo, time.tv_sec);
++		drm_intel_gem_cleanup_bo_cache(bufmgr_gem, time.tv_sec);
+ 		pthread_mutex_unlock(&bufmgr_gem->lock);
+ 	}
+ }
+@@ -982,12 +1006,9 @@ static int drm_intel_gem_bo_map(drm_intel_bo *bo, int write_enable)
+ 			    &set_domain);
+ 	} while (ret == -1 && errno == EINTR);
+ 	if (ret != 0) {
+-		ret = -errno;
+ 		fprintf(stderr, "%s:%d: Error setting to CPU domain %d: %s\n",
+ 			__FILE__, __LINE__, bo_gem->gem_handle,
+ 			strerror(errno));
+-		pthread_mutex_unlock(&bufmgr_gem->lock);
+-		return ret;
+ 	}
+ 
+ 	pthread_mutex_unlock(&bufmgr_gem->lock);
+@@ -1062,9 +1083,7 @@ int drm_intel_gem_bo_map_gtt(drm_intel_bo *bo)
+ 			    DRM_IOCTL_I915_GEM_SET_DOMAIN,
+ 			    &set_domain);
+ 	} while (ret == -1 && errno == EINTR);
+-
+ 	if (ret != 0) {
+-		ret = -errno;
+ 		fprintf(stderr, "%s:%d: Error setting domain %d: %s\n",
+ 			__FILE__, __LINE__, bo_gem->gem_handle,
+ 			strerror(errno));
+@@ -1072,7 +1091,7 @@ int drm_intel_gem_bo_map_gtt(drm_intel_bo *bo)
+ 
+ 	pthread_mutex_unlock(&bufmgr_gem->lock);
+ 
+-	return ret;
++	return 0;
+ }
+ 
+ int drm_intel_gem_bo_unmap_gtt(drm_intel_bo *bo)
+@@ -1587,7 +1606,7 @@ drm_intel_gem_bo_mrb_exec2(drm_intel_bo *bo, int used,
+ 
+ 	if (ret != 0) {
+ 		ret = -errno;
+-		if (ret == -ENOMEM) {
++		if (ret == -ENOSPC) {
+ 			fprintf(stderr,
+ 				"Execbuffer fails to pin. "
+ 				"Estimate: %u. Actual: %u. Available: %u\n",
+@@ -1671,34 +1690,56 @@ drm_intel_gem_bo_unpin(drm_intel_bo *bo)
+ }
+ 
+ static int
+-drm_intel_gem_bo_set_tiling(drm_intel_bo *bo, uint32_t * tiling_mode,
+-			    uint32_t stride)
++drm_intel_gem_bo_set_tiling_internal(drm_intel_bo *bo,
++				     uint32_t tiling_mode,
++				     uint32_t stride)
+ {
+ 	drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr;
+ 	drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
+ 	struct drm_i915_gem_set_tiling set_tiling;
+ 	int ret;
+ 
+-	if (bo_gem->global_name == 0 && *tiling_mode == bo_gem->tiling_mode)
++	if (bo_gem->global_name == 0 &&
++	    tiling_mode == bo_gem->tiling_mode &&
++	    stride == bo_gem->stride)
+ 		return 0;
+ 
+ 	memset(&set_tiling, 0, sizeof(set_tiling));
+-	set_tiling.handle = bo_gem->gem_handle;
+-
+ 	do {
+-		set_tiling.tiling_mode = *tiling_mode;
++		set_tiling.handle = bo_gem->gem_handle;
++		set_tiling.tiling_mode = tiling_mode;
+ 		set_tiling.stride = stride;
+ 
+ 		ret = ioctl(bufmgr_gem->fd,
+ 			    DRM_IOCTL_I915_GEM_SET_TILING,
+ 			    &set_tiling);
+ 	} while (ret == -1 && errno == EINTR);
+-	if (ret == 0) {
+-		bo_gem->tiling_mode = set_tiling.tiling_mode;
+-		bo_gem->swizzle_mode = set_tiling.swizzle_mode;
++	if (ret == -1)
++		return -errno;
++
++	bo_gem->tiling_mode = set_tiling.tiling_mode;
++	bo_gem->swizzle_mode = set_tiling.swizzle_mode;
++	bo_gem->stride = set_tiling.stride;
++	return 0;
++}
++
++static int
++drm_intel_gem_bo_set_tiling(drm_intel_bo *bo, uint32_t * tiling_mode,
++			    uint32_t stride)
++{
++	drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr;
++	drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
++	int ret;
++
++	/* Linear buffers have no stride. By ensuring that we only ever use
++	 * stride 0 with linear buffers, we simplify our code.
++	 */
++	if (*tiling_mode == I915_TILING_NONE)
++		stride = 0;
++
++	ret = drm_intel_gem_bo_set_tiling_internal(bo, *tiling_mode, stride);
++	if (ret == 0)
+ 		drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem);
+-	} else
+-		ret = -errno;
+ 
+ 	*tiling_mode = bo_gem->tiling_mode;
+ 	return ret;
+diff --git a/xf86drmMode.c b/xf86drmMode.c
+index f330e6f..ecb1fd5 100644
+--- a/xf86drmMode.c
++++ b/xf86drmMode.c
+@@ -52,6 +52,12 @@
+ #define U642VOID(x) ((void *)(unsigned long)(x))
+ #define VOID2U64(x) ((uint64_t)(unsigned long)(x))
+ 
++static inline DRM_IOCTL(int fd, int cmd, void *arg)
++{
++	int ret = drmIoctl(fd, cmd, arg);
++	return ret < 0 ? -errno : ret;
++}
++
+ /*
+  * Util functions
+  */
+@@ -242,7 +248,7 @@ int drmModeAddFB(int fd, uint32_t width, uint32_t height, uint8_t depth,
+ 	f.depth  = depth;
+ 	f.handle = bo_handle;
+ 
+-	if ((ret = drmIoctl(fd, DRM_IOCTL_MODE_ADDFB, &f)))
++	if ((ret = DRM_IOCTL(fd, DRM_IOCTL_MODE_ADDFB, &f)))
+ 		return ret;
+ 
+ 	*buf_id = f.fb_id;
+@@ -251,7 +257,7 @@ int drmModeAddFB(int fd, uint32_t width, uint32_t height, uint8_t depth,
+ 
+ int drmModeRmFB(int fd, uint32_t bufferId)
+ {
+-	return drmIoctl(fd, DRM_IOCTL_MODE_RMFB, &bufferId);
++	return DRM_IOCTL(fd, DRM_IOCTL_MODE_RMFB, &bufferId);
+ 
+ 
+ }
+@@ -289,7 +295,7 @@ int drmModeDirtyFB(int fd, uint32_t bufferId,
+ 	dirty.clips_ptr = VOID2U64(clips);
+ 	dirty.num_clips = num_clips;
+ 
+-	return drmIoctl(fd, DRM_IOCTL_MODE_DIRTYFB, &dirty);
++	return DRM_IOCTL(fd, DRM_IOCTL_MODE_DIRTYFB, &dirty);
+ }
+ 
+ 
+@@ -344,7 +350,7 @@ int drmModeSetCrtc(int fd, uint32_t crtcId, uint32_t bufferId,
+ 	} else
+ 	  crtc.mode_valid = 0;
+ 
+-	return drmIoctl(fd, DRM_IOCTL_MODE_SETCRTC, &crtc);
++	return DRM_IOCTL(fd, DRM_IOCTL_MODE_SETCRTC, &crtc);
+ }
+ 
+ /*
+@@ -361,7 +367,7 @@ int drmModeSetCursor(int fd, uint32_t crtcId, uint32_t bo_handle, uint32_t width
+ 	arg.height = height;
+ 	arg.handle = bo_handle;
+ 
+-	return drmIoctl(fd, DRM_IOCTL_MODE_CURSOR, &arg);
++	return DRM_IOCTL(fd, DRM_IOCTL_MODE_CURSOR, &arg);
+ }
+ 
+ int drmModeMoveCursor(int fd, uint32_t crtcId, int x, int y)
+@@ -373,7 +379,7 @@ int drmModeMoveCursor(int fd, uint32_t crtcId, int x, int y)
+ 	arg.x = x;
+ 	arg.y = y;
+ 
+-	return drmIoctl(fd, DRM_IOCTL_MODE_CURSOR, &arg);
++	return DRM_IOCTL(fd, DRM_IOCTL_MODE_CURSOR, &arg);
+ }
+ 
+ /*
+@@ -510,7 +516,7 @@ int drmModeAttachMode(int fd, uint32_t connector_id, drmModeModeInfoPtr mode_inf
+ 	memcpy(&res.mode, mode_info, sizeof(struct drm_mode_modeinfo));
+ 	res.connector_id = connector_id;
+ 
+-	return drmIoctl(fd, DRM_IOCTL_MODE_ATTACHMODE, &res);
++	return DRM_IOCTL(fd, DRM_IOCTL_MODE_ATTACHMODE, &res);
+ }
+ 
+ int drmModeDetachMode(int fd, uint32_t connector_id, drmModeModeInfoPtr mode_info)
+@@ -520,7 +526,7 @@ int drmModeDetachMode(int fd, uint32_t connector_id, drmModeModeInfoPtr mode_inf
+ 	memcpy(&res.mode, mode_info, sizeof(struct drm_mode_modeinfo));
+ 	res.connector_id = connector_id;
+ 
+-	return drmIoctl(fd, DRM_IOCTL_MODE_DETACHMODE, &res);
++	return DRM_IOCTL(fd, DRM_IOCTL_MODE_DETACHMODE, &res);
+ }
+ 
+ 
+@@ -637,16 +643,12 @@ int drmModeConnectorSetProperty(int fd, uint32_t connector_id, uint32_t property
+ 			     uint64_t value)
+ {
+ 	struct drm_mode_connector_set_property osp;
+-	int ret;
+ 
+ 	osp.connector_id = connector_id;
+ 	osp.prop_id = property_id;
+ 	osp.value = value;
+ 
+-	if ((ret = drmIoctl(fd, DRM_IOCTL_MODE_SETPROPERTY, &osp)))
+-		return ret;
+-
+-	return 0;
++	return DRM_IOCTL(fd, DRM_IOCTL_MODE_SETPROPERTY, &osp);
+ }
+ 
+ /*
+@@ -715,7 +717,6 @@ int drmCheckModesettingSupported(const char *busid)
+ int drmModeCrtcGetGamma(int fd, uint32_t crtc_id, uint32_t size,
+ 			uint16_t *red, uint16_t *green, uint16_t *blue)
+ {
+-	int ret;
+ 	struct drm_mode_crtc_lut l;
+ 
+ 	l.crtc_id = crtc_id;
+@@ -724,16 +725,12 @@ int drmModeCrtcGetGamma(int fd, uint32_t crtc_id, uint32_t size,
+ 	l.green = VOID2U64(green);
+ 	l.blue = VOID2U64(blue);
+ 
+-	if ((ret = drmIoctl(fd, DRM_IOCTL_MODE_GETGAMMA, &l)))
+-		return ret;
+-
+-	return 0;
++	return DRM_IOCTL(fd, DRM_IOCTL_MODE_GETGAMMA, &l);
+ }
+ 
+ int drmModeCrtcSetGamma(int fd, uint32_t crtc_id, uint32_t size,
+ 			uint16_t *red, uint16_t *green, uint16_t *blue)
+ {
+-	int ret;
+ 	struct drm_mode_crtc_lut l;
+ 
+ 	l.crtc_id = crtc_id;
+@@ -742,10 +739,7 @@ int drmModeCrtcSetGamma(int fd, uint32_t crtc_id, uint32_t size,
+ 	l.green = VOID2U64(green);
+ 	l.blue = VOID2U64(blue);
+ 
+-	if ((ret = drmIoctl(fd, DRM_IOCTL_MODE_SETGAMMA, &l)))
+-		return ret;
+-
+-	return 0;
++	return DRM_IOCTL(fd, DRM_IOCTL_MODE_SETGAMMA, &l);
+ }
+ 
+ int drmHandleEvent(int fd, drmEventContextPtr evctx)
+@@ -810,5 +804,5 @@ int drmModePageFlip(int fd, uint32_t crtc_id, uint32_t fb_id,
+ 	flip.flags = flags;
+ 	flip.reserved = 0;
+ 
+-	return drmIoctl(fd, DRM_IOCTL_MODE_PAGE_FLIP, &flip);
++	return DRM_IOCTL(fd, DRM_IOCTL_MODE_PAGE_FLIP, &flip);
+ }
diff --git a/abs/core-testing/libdrm/no-pthread-stubs.patch b/abs/core-testing/libdrm/no-pthread-stubs.patch
new file mode 100644
index 0000000..6602f87
--- /dev/null
+++ b/abs/core-testing/libdrm/no-pthread-stubs.patch
@@ -0,0 +1,65 @@
+diff -ru libdrm-2.4.0/configure.ac libdrm-2.4.0-nostubs/configure.ac
+--- libdrm-2.4.0/configure.ac	2008-10-09 21:57:09.000000000 +0200
++++ libdrm-2.4.0-nostubs/configure.ac	2008-10-21 10:48:24.000000000 +0200
+@@ -32,10 +32,6 @@
+ AC_HEADER_STDC
+ AC_SYS_LARGEFILE
+ 
+-PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
+-AC_SUBST(PTHREADSTUBS_CFLAGS)
+-AC_SUBST(PTHREADSTUBS_LIBS)
+-
+ pkgconfigdir=${libdir}/pkgconfig
+ AC_SUBST(pkgconfigdir)
+ AC_ARG_ENABLE(udev,	AS_HELP_STRING([--enable-udev],
+--- libdrm-2.4.16/intel/Makefile.am	2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/intel/Makefile.am.new	2009-12-07 08:11:32.235748069 +0000
+@@ -26,13 +26,12 @@
+ 	$(WARN_CFLAGS) \
+ 	-I$(top_srcdir) \
+ 	-I$(top_srcdir)/intel \
+-	$(PTHREADSTUBS_CFLAGS) \
+ 	-I$(top_srcdir)/include/drm
+ 
+ libdrm_intel_la_LTLIBRARIES = libdrm_intel.la
+ libdrm_intel_ladir = $(libdir)
+ libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @CLOCK_LIB@
++libdrm_intel_la_LIBADD = ../libdrm.la @CLOCK_LIB@
+ 
+ libdrm_intel_la_SOURCES = \
+ 	intel_atomic.h \
+--- libdrm-2.4.16/radeon/Makefile.am	2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/radeon/Makefile.am.new	2009-12-07 08:12:31.889075388 +0000
+@@ -26,13 +26,12 @@
+ 	$(WARN_CFLAGS) \
+ 	-I$(top_srcdir) \
+ 	-I$(top_srcdir)/radeon \
+-	$(PTHREADSTUBS_CFLAGS) \
+ 	-I$(top_srcdir)/include/drm
+ 
+ libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la
+ libdrm_radeon_ladir = $(libdir)
+ libdrm_radeon_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_radeon_la_LIBADD = ../libdrm.la
+ 
+ libdrm_radeon_la_SOURCES = \
+ 	radeon_bo_gem.c \
+--- libdrm-2.4.16/nouveau/Makefile.am	2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/nouveau/Makefile.am.new	2009-12-07 08:13:01.489072320 +0000
+@@ -2,13 +2,12 @@
+ 	$(WARN_CFLAGS) \
+ 	-I$(top_srcdir) \
+ 	-I$(top_srcdir)/nouveau \
+-	$(PTHREADSTUBS_CFLAGS) \
+ 	-I$(top_srcdir)/include/drm
+ 
+ libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la
+ libdrm_nouveau_ladir = $(libdir)
+ libdrm_nouveau_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_nouveau_la_LIBADD = ../libdrm.la
+ 
+ libdrm_nouveau_la_SOURCES = \
+ 			    nouveau_device.c \
-- 
cgit v0.12


From 578ec0ccb78dca1508831dca088a8f32ae9415e8 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:07:15 -0700
Subject: libelf:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libelf/PKGBUILD | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 abs/core-testing/libelf/PKGBUILD

diff --git a/abs/core-testing/libelf/PKGBUILD b/abs/core-testing/libelf/PKGBUILD
new file mode 100644
index 0000000..17f4877
--- /dev/null
+++ b/abs/core-testing/libelf/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 66485 2010-01-31 10:45:08Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libelf
+pkgver=0.8.13
+pkgrel=1
+pkgdesc="libelf is a free ELF object file access library"
+arch=('i686' 'x86_64')
+url="http://www.mr511.de/software/"
+license=('GPL')
+depends=('glibc')
+source=(http://www.mr511.de/software/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4136d7b4c04df68b686570afa26988ac')
+
+build() {
+    cd "${srcdir}/${pkgname}-${pkgver}"
+    ./configure --prefix=/usr --enable-shared \
+      --enable-gnu-names --enable-compat || return 1
+    make || return 1
+    make prefix="${pkgdir}/usr" install || return 1
+}
-- 
cgit v0.12


From a7d5a436f5cb1f6aa09ae8abb01a2b766fcbe912 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:07:26 -0700
Subject: libfontenc:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libfontenc/PKGBUILD | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/abs/core-testing/libfontenc/PKGBUILD b/abs/core-testing/libfontenc/PKGBUILD
index 8e79264..b4d7cbe 100644
--- a/abs/core-testing/libfontenc/PKGBUILD
+++ b/abs/core-testing/libfontenc/PKGBUILD
@@ -1,24 +1,27 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 50982 2009-09-04 12:17:17Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=libfontenc
-pkgver=1.0.4
+pkgver=1.0.5
 pkgrel=1
 pkgdesc="X11 font encoding library"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('zlib')
-makedepends=('pkgconfig' 'xproto')
-options=('libtool')
+makedepends=('pkgconfig' 'xproto>=7.0.15')
+options=('!libtool')
 source=(${url}/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('5cd16a2e51ca7b96a3081c7486ff98b9')
+sha1sums=('e71370c349e93ba70f91ad1148ca9e5cabfcca4f')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr --sysconfdir=/etc \
-              --localstatedir=/var --disable-static \
-              --with-encodingsdir=/usr/share/fonts/encodings
+      --localstatedir=/var --disable-static \
+      --with-encodingsdir=/usr/share/fonts/encodings || return 1
               
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-- 
cgit v0.12


From 14caab719e5ec2e1360288edabd0240baf866cbe Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:07:58 -0700
Subject: libgcrypt:Removed for LinHES 7.

---
 abs/core-testing/libgcrypt/PKGBUILD | 31 ++++++++++++++++++++-----------
 1 file changed, 20 insertions(+), 11 deletions(-)

diff --git a/abs/core-testing/libgcrypt/PKGBUILD b/abs/core-testing/libgcrypt/PKGBUILD
index 5498563..c262700 100644
--- a/abs/core-testing/libgcrypt/PKGBUILD
+++ b/abs/core-testing/libgcrypt/PKGBUILD
@@ -1,24 +1,33 @@
-# $Id: PKGBUILD 32861 2009-04-01 19:16:30Z andyrtr $
+# $Id: PKGBUILD 85547 2010-07-15 21:16:57Z andyrtr $
 # Maintainer: Andreas Radke <andyrtr@archlinux.org>
 
 pkgname=libgcrypt
-pkgver=1.4.4
+pkgver=1.4.6
 pkgrel=1
 pkgdesc="a general purpose crypto library based on the code used"
 arch=(i686 x86_64)
 url="http://www.gnupg.org"
 license=('LGPL')
-groups=('base')
-depends=('libgpg-error>=1.6' 'texinfo')
+depends=('libgpg-error>=1.7')
 options=(!libtool)
-source=(#ftp://ftp.gnupg.org/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2
-	ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/libgcrypt/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('34105aa927e23c217741966496b97e67')
+source=(ftp://ftp.gnupg.org/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+	#ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/libgcrypt/${pkgname}-${pkgver}.tar.bz2
+)
+md5sums=('dbf99425a4fe9217c84ce3a35d938634')
 
 build() {
   cd ${srcdir}/${pkgname}-${pkgver}
-  ./configure --prefix=/usr --disable-padlock-support --disable-static
-  make || return 1
-  make DESTDIR=${pkgdir} install || return 1
-  rm -f ${pkgdir}/usr/share/info/dir
+  # keep static library for , needed for cryptsetup
+  ./configure --prefix=/usr --disable-padlock-support
+  make
+}
+
+package() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  make DESTDIR=${pkgdir} install
+
+  # Move dynamic libraries to /lib
+  install -d -m755 "${pkgdir}"/lib/ || return 1
+  mv "${pkgdir}"/usr/lib/libgcrypt.so* "${pkgdir}"/lib/ || return 1
+  ln -sf /lib/libgcrypt.so "${pkgdir}"/usr/lib/libgcrypt.so || return 1
 }
-- 
cgit v0.12


From f2a8249c868640483227db832870bad1501ff4f5 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:08:19 -0700
Subject: libgl:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libgl/PKGBUILD                   |  40 ---------
 abs/core-testing/libgl/mesa-7.1-link-shared.patch | 102 ----------------------
 2 files changed, 142 deletions(-)
 delete mode 100644 abs/core-testing/libgl/PKGBUILD
 delete mode 100644 abs/core-testing/libgl/mesa-7.1-link-shared.patch

diff --git a/abs/core-testing/libgl/PKGBUILD b/abs/core-testing/libgl/PKGBUILD
deleted file mode 100644
index ce2faba..0000000
--- a/abs/core-testing/libgl/PKGBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# $Id: PKGBUILD 12994 2008-09-25 18:01:13Z jgc $
-# Maintainer: Alexander Baldeck <kth5@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
-pkgname=libgl
-pkgver=7.2
-pkgrel=1
-pkgdesc="Mesa DRI OpenGL library and drivers"
-arch=(i686 x86_64)
-license=('LGPL')
-url="http://www.mesa3d.org"
-depends=('libdrm>=2.3.1' 'libxxf86vm' 'libxdamage' 'expat>=2.0.1')
-makedepends=('dri2proto>=1.1' 'glproto>=1.4.9' 'pkgconfig')
-provides=('libgl-dri')
-replaces=('libgl-dri' 'libgl-mesa')
-options=(!makeflags)
-source=(http://downloads.sourceforge.net/mesa3d/MesaLib-${pkgver}.tar.bz2
-	mesa-7.1-link-shared.patch)
-md5sums=('04d379292e023df0b0266825cb0dbde5'
-         'f0baa948d9810f268413111ee439d24b')
-
-build() {
-  cd ${startdir}/src/Mesa-${pkgver}
-  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch || return 1
-  ./configure --prefix=/usr \
-    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
-    --with-dri-drivers=swrast \
-    --enable-glx-tls \
-    --disable-ttm-api \
-    --with-driver=dri \
-    --enable-xcb \
-    --disable-glu \
-    --disable-glut \
-    --disable-glw || return 1
-  make || return 1
-  make DESTDIR=${pkgdir} install || return 1
-  rm -rf ${pkgdir}/usr/include
-  rm -rf ${pkgdir}/usr/lib/pkgconfig
-  install -m755 -d ${pkgdir}/usr/lib/xorg/modules/extensions
-  ln -sf libglx.xorg ${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so || return 1
-}
diff --git a/abs/core-testing/libgl/mesa-7.1-link-shared.patch b/abs/core-testing/libgl/mesa-7.1-link-shared.patch
deleted file mode 100644
index 7fdbf14..0000000
--- a/abs/core-testing/libgl/mesa-7.1-link-shared.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
---- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
-+++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
-@@ -6,12 +6,17 @@ include $(TOP)/configs/current
- 
- 
- 
--default: $(TOP)/$(LIB_DIR) subdirs
-+default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
- 
- 
- $(TOP)/$(LIB_DIR):
- 	-mkdir $(TOP)/$(LIB_DIR)
- 
-+libdricore.so:
-+	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
-+
-+$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
-+	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
- 
- subdirs:
- 	@for dir in $(DRI_DIRS) ; do \
-@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
- 	$(pcedit) $< > $@
- 
- 
--install: dri.pc
-+install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
- 	@for dir in $(DRI_DIRS) ; do \
- 		if [ -d $$dir ] ; then \
- 			(cd $$dir && $(MAKE) install) || exit 1 ; \
- 		fi \
- 	done
-+	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
-+	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
- 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
- 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
- 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
-@@ -52,5 +59,6 @@ clean:
- 			(cd $$dir && $(MAKE) clean) ; \
- 		fi \
- 	done
-+	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
- 	-rm -f common/*.o
- 	-rm -f *.pc
-diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
---- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
-+++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
-@@ -1,6 +1,6 @@
- # -*-makefile-*-
- 
--MESA_MODULES = $(TOP)/src/mesa/libmesa.a
-+MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
- 
- COMMON_SOURCES = \
-         ../common/utils.c \
-@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
- 
- $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
- 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
--		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
-+		$(OBJECTS) $(WINOBJ) \
-+		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
-+		$(DRI_LIB_DEPS)
- 
- 
- $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
-diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
---- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
-+++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
-@@ -77,7 +77,6 @@
-  */
- 
- .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
--.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
- 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
- _generic_read_RGBA_span_BGRA8888_REV_MMX:
- 	pushl	%ebx
-@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
-  */
- 
- .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
--.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
- 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
- _generic_read_RGBA_span_BGRA8888_REV_SSE:
- 	pushl	%esi
-@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
- 
- 	.text
- .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
--.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
- 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
- _generic_read_RGBA_span_BGRA8888_REV_SSE2:
- 	pushl	%esi
-@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
- 
- 	.text
- 	.globl	_generic_read_RGBA_span_RGB565_MMX
--        .hidden _generic_read_RGBA_span_RGB565_MMX
- 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
- 
- _generic_read_RGBA_span_RGB565_MMX:
-- 
cgit v0.12


From b1154a5aec01500c3832b8061e325292059585d4 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:46:02 -0700
Subject: libgpg-error:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libgpg-error/PKGBUILD | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/abs/core-testing/libgpg-error/PKGBUILD b/abs/core-testing/libgpg-error/PKGBUILD
index 834b39c..b7083bb 100644
--- a/abs/core-testing/libgpg-error/PKGBUILD
+++ b/abs/core-testing/libgpg-error/PKGBUILD
@@ -1,23 +1,28 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 80074 2010-05-10 21:13:12Z thomas $
 # Maintainer: judd <jvinet@zeroflux.org>
 
 pkgname=libgpg-error
-pkgver=1.6
-pkgrel=10
+pkgver=1.7
+pkgrel=3
 pkgdesc="Support library for libgcrypt"
 arch=(i686 x86_64)
 url="http://www.gnupg.org"
 license=('LGPL')
-groups=('base')
-depends=('glibc')
+depends=('glibc' 'sh')
 options=(!libtool)
 source=(#ftp://ftp.gnupg.org/gcrypt/libgpg-error/${pkgname}-${pkgver}.tar.bz2
 	ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/libgpg-error/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('f3e9870e213518b407a959f8d29cd554')
+md5sums=('62c0d09d1e76c5b6da8fff92314c4665')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}"/${pkgname}-${pkgver}
+  # keep static lib for crypsetup
   ./configure --prefix=/usr
   make || return 1
-  make DESTDIR=${startdir}/pkg install
+  make DESTDIR="${pkgdir}/" install || return 1
+
+  # Move dynamic libraries to /lib
+  install -d -m755 "${pkgdir}"/lib/ || return 1
+  mv "${pkgdir}"/usr/lib/libgpg-error.so* "${pkgdir}"/lib/ || return 1
+  ln -sf /lib/libgpg-error.so "${pkgdir}"/usr/lib/libgpg-error.so || return 1
 }
-- 
cgit v0.12


From 94784a75ad75e56dfa2b40c6d74ddb03d11953b3 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:46:10 -0700
Subject: libjpeg:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libjpeg/PKGBUILD | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/abs/core-testing/libjpeg/PKGBUILD b/abs/core-testing/libjpeg/PKGBUILD
index 3f671b4..bd2b17f 100644
--- a/abs/core-testing/libjpeg/PKGBUILD
+++ b/abs/core-testing/libjpeg/PKGBUILD
@@ -1,9 +1,10 @@
-# $Id$
+# $Id: PKGBUILD 81760 2010-06-02 23:44:07Z allan $
 # Maintainer: Allan McRae <allan@archlinux.org>
 # Contributor: Judd Vinet <jvinet@zeroflux.org>
 
 pkgname=libjpeg
-pkgver=7
+pkgver=8.0.2
+_pkgver=8b
 pkgrel=1
 pkgdesc="Library of JPEG support functions"
 arch=('i686' 'x86_64')
@@ -11,17 +12,17 @@ url="http://www.ijg.org/"
 license=('custom')
 depends=('glibc')
 makedepends=('libtool')
-options=(!libtool)
-source=(http://www.ijg.org/files/jpegsrc.v7.tar.gz)
-md5sums=('382ef33b339c299b56baf1296cda9785')
+options=('!libtool')
+source=(http://www.ijg.org/files/jpegsrc.v${_pkgver}.tar.gz)
+md5sums=('e022acbc5b36cd2cb70785f5b575661e')
 
 build() {
-  cd $srcdir/jpeg-$pkgver
+  cd $srcdir/jpeg-${_pkgver}
   ./configure --prefix=/usr --enable-shared --enable-static
   make || return 1
   make prefix=$pkgdir/usr mandir=$pkgdir/usr/share/man install
   
-  # See FS#11116 - re-assess need with v7 release sometime...
+  # See FS#11116 - re-assess current need sometime...
   install -m644 jpegint.h $pkgdir/usr/include
 
   install -Dm644 README $pkgdir/usr/share/licenses/libjpeg/README
-- 
cgit v0.12


From 1f3b4ba1dd55908ecb5b5d2ab307d4cd1b108ca2 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:46:21 -0700
Subject: libldap:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libldap/PKGBUILD   |  74 +++++++++++--------
 abs/core-testing/libldap/ntlm.patch | 139 +++++++++++++++++++++++-------------
 2 files changed, 133 insertions(+), 80 deletions(-)

diff --git a/abs/core-testing/libldap/PKGBUILD b/abs/core-testing/libldap/PKGBUILD
index 616e6a3..06babfd 100644
--- a/abs/core-testing/libldap/PKGBUILD
+++ b/abs/core-testing/libldap/PKGBUILD
@@ -1,62 +1,74 @@
-# $Id: PKGBUILD 1627 2008-05-14 03:02:30Z eric $
-# Maintainer: Judd Vinet <jvinet@zeroflux.org>
+# $Id: PKGBUILD 83737 2010-06-22 18:32:52Z andrea $
+# Maintainer:
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
 pkgname=libldap
-pkgver=2.4.11
+pkgver=2.4.22
 pkgrel=1
-pkgdesc="LDAP client libraries"
-arch=(i686 x86_64)
+pkgdesc="Lightweight Directory Access Protocol (LDAP) client libraries"
+arch=('i686' 'x86_64')
 license=('custom')
 url="http://www.openldap.org/"
 backup=(etc/openldap/ldap.conf)
-depends=('libsasl' 'openssl>=0.9.8f')
-options=('!libtool' '!makeflags')
+depends=('libsasl' 'openssl')
 makedepends=('tcp_wrappers')
-source=(ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-${pkgver}.tgz
-	ntlm.patch
-	peercred.patch)
+options=('!libtool')
+source=("ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-${pkgver}.tgz"
+        'ntlm.patch')
+md5sums=('ef01b52255ce8e3fbf8aa34f6fe7598b'
+         'dfa9eb6f2fd9d0a3dab0e1860923489e')
 
 build() {
-  cd ${startdir}/src/openldap-${pkgver}
-#  patch -Np0 -i ${startdir}/src/ntlm.patch || return 1
-  patch -Np0 -i ${startdir}/src/peercred.patch || return 1
+  cd ${srcdir}/openldap-${pkgver}
+
+  patch -Np1 -i ${srcdir}/ntlm.patch
 
   ./configure --prefix=/usr \
               --libexecdir=/usr/sbin \
               --sysconfdir=/etc \
+	      --mandir=/usr/share/man \
               --localstatedir=/var/lib/openldap \
               --enable-crypt --enable-dynamic \
               --with-threads --enable-wrappers \
 	      --enable-spasswd --with-cyrus-sasl \
 	      --disable-bdb --disable-hdb
+
   cd include
-  make || return 1
-  make DESTDIR=${startdir}/pkg install
+  make
 
   cd ../libraries
   make depend
-  make || return 1
-
-  make DESTDIR=${startdir}/pkg install
+  make
 
   cd ../doc/man/man3
   make
-  make DESTDIR=${startdir}/pkg install
+  
+  cd ../man5
+  make
+}
+
+package() {
+  cd ${srcdir}/openldap-${pkgver}
+
+  cd include
+  make DESTDIR=${pkgdir} install
+
+  cd ../libraries
+  make DESTDIR=${pkgdir} install
+
+  cd ../doc/man/man3
+  make DESTDIR=${pkgdir} install
 
   cd ../man5
-  make 
-  mkdir -p ${startdir}/pkg/usr/man/man5
-  install -m644 ldap.conf.5.tmp ${startdir}/pkg/usr/man/man5/ldap.conf.5
+  install -Dm644 ldap.conf.5.tmp \
+    ${pkgdir}/usr/share/man/man5/ldap.conf.5
   
   # get rid of duplicate default conf files
-  rm ${startdir}/pkg/etc/openldap/*.default
+  rm ${pkgdir}/etc/openldap/*.default
 
-  ln -sf liblber.so ${startdir}/pkg/usr/lib/liblber.so.2
-  ln -sf libldap.so ${startdir}/pkg/usr/lib/libldap.so.2
+  ln -sf liblber.so ${pkgdir}/usr/lib/liblber.so.2
+  ln -sf libldap.so ${pkgdir}/usr/lib/libldap.so.2
 
-  mkdir -p ${startdir}/pkg/usr/share/licenses/openldap
-  install -m644 ${startdir}/src/openldap-${pkgver}/LICENSE \
-    ${startdir}/pkg/usr/share/licenses/openldap/
+  install -Dm644 ${srcdir}/openldap-${pkgver}/LICENSE \
+    ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
 }
-md5sums=('920fedbbb5bc61c2ca52c56edeef770a'
-         '64c539d5f01f46f329b9d5c1324be4e9'
-	 'acc4112845522a6a1a517064c216f781')
diff --git a/abs/core-testing/libldap/ntlm.patch b/abs/core-testing/libldap/ntlm.patch
index fca806b..a4fe4d4 100644
--- a/abs/core-testing/libldap/ntlm.patch
+++ b/abs/core-testing/libldap/ntlm.patch
@@ -1,25 +1,50 @@
---- libraries/libldap/Makefile.in.orig	2004-01-01 13:16:29.000000000 -0500
-+++ libraries/libldap/Makefile.in	2004-07-14 13:37:23.000000000 -0400
-@@ -20,7 +20,7 @@
- SRCS	= bind.c open.c result.c error.c compare.c search.c \
- 	controls.c messages.c references.c extended.c cyrus.c \
- 	modify.c add.c modrdn.c delete.c abandon.c \
--	sasl.c sbind.c kbind.c unbind.c cancel.c  \
-+	sasl.c ntlm.c sbind.c kbind.c unbind.c cancel.c  \
- 	filter.c free.c sort.c passwd.c whoami.c \
- 	getdn.c getentry.c getattr.c getvalues.c addentry.c \
- 	request.c os-ip.c url.c sortctrl.c vlvctrl.c \
-@@ -29,7 +29,7 @@
- OBJS	= bind.lo open.lo result.lo error.lo compare.lo search.lo \
- 	controls.lo messages.lo references.lo extended.lo cyrus.lo \
- 	modify.lo add.lo modrdn.lo delete.lo abandon.lo \
--	sasl.lo sbind.lo kbind.lo unbind.lo cancel.lo \
-+	sasl.lo ntlm.lo sbind.lo kbind.lo unbind.lo cancel.lo \
- 	filter.lo free.lo sort.lo passwd.lo whoami.lo \
- 	getdn.lo getentry.lo getattr.lo getvalues.lo addentry.lo \
- 	request.lo os-ip.lo url.lo sortctrl.lo vlvctrl.lo \
---- /dev/null	1970-01-01 01:00:00.000000000 +0100
-+++ libraries/libldap/ntlm.c	2005-12-02 09:47:08.226364500 +0100
+Patch from evolution-exchange (2.10.3).  The ldap_ntlm_bind function is
+actually called by evolution-data-server, checked at version 1.12.2.
+Without this patch, the Exchange addressbook integration uses simple binds
+with cleartext passwords.
+
+Russ checked with openldap-software for upstream's opinion on this patch
+on 2007-12-21.  Upstream had never received it as a patch submission and
+given that it's apparently only for older Exchange servers that can't do
+SASL and DIGEST-MD5, it's not very appealing.
+
+Bug#457374 filed against evolution-data-server asking if this support is
+still required on 2007-12-21.
+
+Index: trunk/include/ldap.h
+===================================================================
+--- trunk.orig/include/ldap.h
++++ trunk/include/ldap.h
+@@ -2461,5 +2461,25 @@
+ 	LDAPControl	**ctrls,
+ 	LDAPDerefRes	**drp ));
+ 
++/*
++ * hacks for NTLM
++ */
++#define LDAP_AUTH_NTLM_REQUEST ((ber_tag_t) 0x8aU)
++#define LDAP_AUTH_NTLM_RESPONSE  ((ber_tag_t) 0x8bU)
++LDAP_F( int )
++ldap_ntlm_bind LDAP_P((
++      LDAP    *ld,
++      LDAP_CONST char *dn,
++      ber_tag_t tag,
++      struct berval *cred,
++      LDAPControl **sctrls,
++      LDAPControl **cctrls,
++      int   *msgidp ));
++LDAP_F( int )
++ldap_parse_ntlm_bind_result LDAP_P((
++      LDAP    *ld,
++      LDAPMessage *res,
++      struct berval *challenge));
++
+ LDAP_END_DECL
+ #endif /* _LDAP_H */
+Index: trunk/libraries/libldap/ntlm.c
+===================================================================
+--- /dev/null
++++ trunk/libraries/libldap/ntlm.c
 @@ -0,0 +1,138 @@
 +/* $OpenLDAP: pkg/ldap/libraries/libldap/ntlm.c,v 1.1.4.10 2002/01/04 20:38:21 kurt Exp $ */
 +/*
@@ -159,31 +184,47 @@
 + return( ld->ld_errno );
 +}
 +
---- include/ldap.h.orig
-+++ include/ldap.h
-@@ -2115,5 +2115,25 @@
- ldap_passwordpolicy_err2txt LDAP_P(( LDAPPasswordPolicyError ));
- #endif /* LDAP_CONTROL_PASSWORDPOLICYREQUEST */
+Index: trunk/libraries/libldap/Makefile.in
+===================================================================
+--- trunk.orig/libraries/libldap/Makefile.in
++++ trunk/libraries/libldap/Makefile.in
+@@ -27,7 +27,7 @@
+ 	init.c options.c print.c string.c util-int.c schema.c \
+ 	charray.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \
+ 	tls2.c tls_o.c tls_g.c tls_m.c \
+-	turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c \
++	turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c ntlm.c \
+ 	assertion.c deref.c
  
-+/*
-+ * hacks for NTLM
-+ */
-+#define LDAP_AUTH_NTLM_REQUEST ((ber_tag_t) 0x8aU)
-+#define LDAP_AUTH_NTLM_RESPONSE  ((ber_tag_t) 0x8bU)
-+LDAP_F( int )
-+ldap_ntlm_bind LDAP_P((
-+      LDAP    *ld,
-+      LDAP_CONST char *dn,
-+      ber_tag_t tag,
-+      struct berval *cred,
-+      LDAPControl **sctrls,
-+      LDAPControl **cctrls,
-+      int   *msgidp ));
-+LDAP_F( int )
-+ldap_parse_ntlm_bind_result LDAP_P((
-+      LDAP    *ld,
-+      LDAPMessage *res,
-+      struct berval *challenge));
-+
- LDAP_END_DECL
- #endif /* _LDAP_H */
+ OBJS	= bind.lo open.lo result.lo error.lo compare.lo search.lo \
+@@ -40,7 +40,7 @@
+ 	init.lo options.lo print.lo string.lo util-int.lo schema.lo \
+ 	charray.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \
+ 	tls2.lo tls_o.lo tls_g.lo tls_m.lo \
+-	turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo \
++	turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo ntlm.lo \
+ 	assertion.lo deref.lo
+ 
+ LDAP_INCDIR= ../../include       
+Index: trunk/libraries/libldap_r/Makefile.in
+===================================================================
+--- trunk.orig/libraries/libldap_r/Makefile.in
++++ trunk/libraries/libldap_r/Makefile.in
+@@ -29,7 +29,7 @@
+ 	init.c options.c print.c string.c util-int.c schema.c \
+ 	charray.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \
+ 	tls2.c tls_o.c tls_g.c tls_m.c \
+-	turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c \
++	turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c ntlm.c \
+ 	assertion.c deref.c
+ SRCS	= threads.c rdwr.c rmutex.c tpool.c rq.c \
+ 	thr_posix.c thr_cthreads.c thr_thr.c thr_lwp.c thr_nt.c \
+@@ -47,7 +47,7 @@
+ 	init.lo options.lo print.lo string.lo util-int.lo schema.lo \
+ 	charray.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \
+ 	tls2.lo tls_o.lo tls_g.lo tls_m.lo \
+-	turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo \
++	turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo ntlm.lo \
+ 	assertion.lo deref.lo
+ 
+ LDAP_INCDIR= ../../include       
-- 
cgit v0.12


From 28529e9eb61bc25c1392daa9719d61ee4ee75dcb Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:46:33 -0700
Subject: libmpc:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libmpc/PKGBUILD       | 28 ++++++++++++++++++++++++++++
 abs/core-testing/libmpc/libmpc.install | 20 ++++++++++++++++++++
 2 files changed, 48 insertions(+)
 create mode 100644 abs/core-testing/libmpc/PKGBUILD
 create mode 100644 abs/core-testing/libmpc/libmpc.install

diff --git a/abs/core-testing/libmpc/PKGBUILD b/abs/core-testing/libmpc/PKGBUILD
new file mode 100644
index 0000000..9aad761
--- /dev/null
+++ b/abs/core-testing/libmpc/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 82441 2010-06-11 06:42:48Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=libmpc
+pkgver=0.8.2
+pkgrel=2
+pkgdesc="Library for the arithmetic of complex numbers with arbitrarily high precision"
+arch=('i686' 'x86_64')
+url="http://www.multiprecision.org"
+license=('LGPL')
+depends=('mpfr>=3.0.0')
+options=('!libtool')
+install=libmpc.install
+source=(http://www.multiprecision.org/mpc/download/mpc-${pkgver/_/-}.tar.gz)
+md5sums=('e98267ebd5648a39f881d66797122fb6')
+
+build() {
+  cd $srcdir/mpc-$pkgver
+  ./configure --prefix=/usr
+  make
+  make check
+}
+
+package() {
+  cd $srcdir/mpc-$pkgver
+  make DESTDIR=$pkgdir/ install
+  mv -f $pkgdir/usr/share/info/{mpc,libmpc}.info
+}
diff --git a/abs/core-testing/libmpc/libmpc.install b/abs/core-testing/libmpc/libmpc.install
new file mode 100644
index 0000000..bb20831
--- /dev/null
+++ b/abs/core-testing/libmpc/libmpc.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(libmpc.info)
+
+post_install() {
+  [ -x usr/bin/install-info ] || return 0
+  for file in ${filelist[@]}; do
+    install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  [ -x usr/bin/install-info ] || return 0
+  for file in ${filelist[@]}; do
+    install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+  done
+}
-- 
cgit v0.12


From 4a5ef0d545d50e8870f18a4cfe19276000aec1fb Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:46:42 -0700
Subject: libpciaccess:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libpciaccess/PKGBUILD | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/abs/core-testing/libpciaccess/PKGBUILD b/abs/core-testing/libpciaccess/PKGBUILD
index 499f365..de8174d 100644
--- a/abs/core-testing/libpciaccess/PKGBUILD
+++ b/abs/core-testing/libpciaccess/PKGBUILD
@@ -1,18 +1,18 @@
 # $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
 pkgname=libpciaccess
-pkgver=0.10.5
+pkgver=0.11.0
 pkgrel=1
 pkgdesc="X11 PCI access library"
 arch=(i686 x86_64)
 license=('custom')
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig')
+makedepends=('pkgconfig' 'xorg-util-macros')
 options=('!libtool')
 source=(${url}/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('617bebf31e5685c83f935009aeae5f38')
+sha1sums=('bcebba8b8441af151b59b63e8e91e66133b64158')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-- 
cgit v0.12


From be641a1b4f4d15467d07ada9b1f264f11dc7f0f2 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:46:51 -0700
Subject: libpng:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libpng/PKGBUILD | 48 ++++++++++++++++++++--------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/abs/core-testing/libpng/PKGBUILD b/abs/core-testing/libpng/PKGBUILD
index 12515ed..d665f3f 100644
--- a/abs/core-testing/libpng/PKGBUILD
+++ b/abs/core-testing/libpng/PKGBUILD
@@ -1,10 +1,12 @@
-# $Id: PKGBUILD 22148 2008-12-22 12:33:23Z pierre $
-# Maintainer: dorphell <dorphell@archlinux.org>
-# Maintainer: Travis Willard <travis@archlinux.org>
-# Maintainer: Douglas Soares de Andrade <douglas@archlinux.org>
+# $Id: PKGBUILD 84179 2010-06-27 07:28:57Z pierre $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Travis Willard <travis@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
 
 pkgname=libpng
-pkgver=1.2.34
+pkgver=1.4.3
+_apngver=1.4.2
 pkgrel=1
 pkgdesc="A collection of routines used to create PNG format graphics files"
 arch=('i686' 'x86_64')
@@ -12,31 +14,29 @@ url="http://www.libpng.org/pub/png/libpng.html"
 license=('custom')
 depends=('zlib')
 options=('!libtool')
-source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
-        "http://hp.vector.co.jp/authors/VA013651/lib/libpng-${pkgver}-apng.patch.gz")
-options=('!libtool')
-md5sums=('37362876feb21344fd3af1228527db0f'
-         'a7ee9fd9af34692b75eedd5b03b69ca9')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.xz"
+        "http://downloads.sourceforge.net/sourceforge/libpng-apng/libpng-${_apngver}-apng.patch.gz")
+md5sums=('322e2e0c0dea7a374ce6e60d9a72e604'
+         '378ade7c68c25d00e099b28911d06561')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
 
   # Add animated PNG (apng) support
-  # see http://hp.vector.co.jp/authors/VA013651/freeSoftware/apng.html
-  patch -p1 -i $srcdir/libpng-${pkgver}-apng.patch || return 1
+  # see http://sourceforge.net/projects/libpng-apng/
+  patch -p1 -i "${srcdir}/libpng-${_apngver}-apng.patch"
 
-  libtoolize --force --copy || return 1
-  aclocal || return 1
-  autoconf || return 1
-  automake --add-missing || return 1
+  libtoolize --force --copy
+  aclocal
+  autoconf
+  automake --add-missing
 
-  ./configure --prefix=/usr || return 1
-  make ECHO=echo || return 1
-  make ECHO=echo DESTDIR=${startdir}/pkg install || return 1
+  ./configure --prefix=/usr
+  make
+  make DESTDIR="${pkgdir}" install
 
   cd contrib/pngminus
-  make ECHO=echo PNGLIB="-L${startdir}/pkg/usr/lib -lpng" -f makefile.std png2pnm pnm2png
-  install -m755 png2pnm pnm2png ${startdir}/pkg/usr/bin/
-  install -m755 -d ${startdir}/pkg/usr/share/licenses/${pkgname}
-  install -m644 ../../LICENSE ${startdir}/pkg/usr/share/licenses/${pkgname}/ || return 1
+  make PNGLIB="-L${pkgdir}/usr/lib -lpng" -f makefile.std png2pnm pnm2png
+  install -m755 png2pnm pnm2png "${pkgdir}/usr/bin/"
+  install -D -m644 ../../LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
 }
-- 
cgit v0.12


From 603faa64a1682422153693259f6b2705e46892be Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:47:00 -0700
Subject: libtasn1:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libtasn1/PKGBUILD | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/abs/core-testing/libtasn1/PKGBUILD b/abs/core-testing/libtasn1/PKGBUILD
index 5187cef..a680004 100644
--- a/abs/core-testing/libtasn1/PKGBUILD
+++ b/abs/core-testing/libtasn1/PKGBUILD
@@ -1,26 +1,26 @@
-# $Id: PKGBUILD 35541 2009-04-13 20:54:05Z jgc $
+# $Id: PKGBUILD 79844 2010-05-08 11:48:57Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: judd <jvinet@zeroflux.org>
 
 pkgname=libtasn1
-pkgver=2.0
+pkgver=2.6
 pkgrel=1
 pkgdesc="The ASN.1 library used in GNUTLS"
 arch=(i686 x86_64)
 license=('GPL3' 'LGPL')
-url="http://www.gnu.org/software/gnutls/"
+url="http://www.gnu.org/software/libtasn1/"
 depends=('glibc' 'texinfo')
 options=('!libtool')
 install=libtasn1.install
-source=(ftp://ftp.gnu.org/gnu/gnutls/${pkgname}-${pkgver}.tar.gz)
-md5sums=('e9b1462f04b2586b03905b0ed9528261')
+source=(ftp://ftp.gnu.org/gnu/libtasn1/${pkgname}-${pkgver}.tar.gz)
+md5sums=('d410671e13038324336917ceed7470a5')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr || return 1
+  ./configure --prefix=/usr \
+      --with-packager=Archlinux \
+      --with-packager-bug-reports="http://bugs.archlinux.org/" \
+      --with-packager-version=${pkgver}-${pkgrel} || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
-
-  rm -f "${pkgdir}/usr/share/info/dir"
-  gzip ${pkgdir}/usr/share/info/* || return 1
 }
-- 
cgit v0.12


From 68c9340c3d557cde366a13f9636bbe2be0906bb9 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:47:11 -0700
Subject: libthai:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libthai/PKGBUILD | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/abs/core-testing/libthai/PKGBUILD b/abs/core-testing/libthai/PKGBUILD
index aa5ba12..f96f7f3 100644
--- a/abs/core-testing/libthai/PKGBUILD
+++ b/abs/core-testing/libthai/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 35277 2009-04-11 20:15:53Z jgc $
+# $Id: PKGBUILD 71220 2010-03-05 15:38:39Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Chaiwat Suttipongsakul <cwt114@gmail.com>
 pkgname=libthai
-pkgver=0.1.11
-pkgrel=2
+pkgver=0.1.14
+pkgrel=1
 pkgdesc="Thai language support routines"
 url="http://linux.thai.net/projects/libthai"
 arch=('i686' 'x86_64')
 license=('LGPL')
-depends=('libdatrie>=0.2.1')
+depends=('libdatrie>=0.2.3')
 makedepends=('pkgconfig')
 options=('!libtool' '!emptydirs')
 source=(http://linux.thai.net/pub/thailinux/software/${pkgname}/${pkgname}-${pkgver}.tar.gz)
-md5sums=('f27fd7b67116939b2676ddff7180957a')
+md5sums=('34f64b37ed8f8f49f4a18ae972e6f41e')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-- 
cgit v0.12


From c2d8a1e536dd0820041baa03da35a4eb1c79e768 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:47:21 -0700
Subject: libtiff:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libtiff/ChangeLog                 | 27 ++++++++++++++
 abs/core-testing/libtiff/PKGBUILD                  | 43 ++++++++--------------
 .../libtiff/libtiff-CVE-2009-2285.patch            | 22 +++++++++++
 3 files changed, 65 insertions(+), 27 deletions(-)
 create mode 100644 abs/core-testing/libtiff/libtiff-CVE-2009-2285.patch

diff --git a/abs/core-testing/libtiff/ChangeLog b/abs/core-testing/libtiff/ChangeLog
index 1a1c85b..88edcc7 100644
--- a/abs/core-testing/libtiff/ChangeLog
+++ b/abs/core-testing/libtiff/ChangeLog
@@ -1,3 +1,30 @@
+2010-06-20  Eric Belanger  <eric@archlinux.org>
+
+	* libtiff 3.9.4-1
+	* Upstream update
+
+2009-11-05  Eric Belanger  <eric@archlinux.org>
+
+	* libtiff 3.9.2-1
+	* Upstream update
+
+2009-08-28  Eric Belanger  <eric@archlinux.org>
+
+	* libtiff 3.9.1-1
+	* Upstream update
+
+2009-08-26  Eric Belanger  <eric@archlinux.org>
+
+	* libtiff 3.9.0-1
+	* Upstream update
+	* Updated url
+	* Updated patches
+
+2009-08-14  Eric Belanger  <eric@archlinux.org>
+
+	* libtiff 3.8.2-6
+	* Added security fixes (close FS#15931)
+
 2008-09-05  Eric Belanger  <eric@archlinux.org>
 
 	* libtiff 3.8.2-4
diff --git a/abs/core-testing/libtiff/PKGBUILD b/abs/core-testing/libtiff/PKGBUILD
index 51e106c..ed80a2b 100644
--- a/abs/core-testing/libtiff/PKGBUILD
+++ b/abs/core-testing/libtiff/PKGBUILD
@@ -1,43 +1,32 @@
-# $Id$
+# $Id: PKGBUILD 83314 2010-06-20 21:43:27Z eric $
 # Maintainer: Eric Belanger <eric@archlinux.org>
 # Contributor: dorphell <dorphell@archlinux.org>
 
 pkgname=libtiff
-pkgver=3.8.2
-pkgrel=5
+pkgver=3.9.4
+pkgrel=1
 pkgdesc="Library for manipulation of TIFF images"
 arch=('i686' 'x86_64')
-url="http://www.libtiff.org/"
+url="http://www.remotesensing.org/libtiff/"
 license=('custom')
-depends=('libjpeg>=7' 'zlib')
+depends=('libjpeg' 'zlib')
 makedepends=('libgl' 'freeglut' 'libxmu' 'libxi')
 optdepends=('freeglut: for using tiffgt')
 options=('!libtool')
 source=(ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz \
-	tiff2pdf-octal-printf.patch \
-       	tiffsplit-fname-overflow.patch \
-	CVE-2006-3459-3465.patch \
-	tiff2pdf-compression.patch \
-        tiff-3.8.2-CVE-2008-2327.patch)
-md5sums=('fbb6f446ea4ed18955e2714934e5b698' 'd54368687d2645ffbbe6c2df384b11bf'\
-         '323352fd60a7bd3ffac8724c3c031669' '624d3067e6a4c0680767eb62253ea980'\
-         'b443ffca9d498bb3a88c17da0200025b' 'c2c2e22557d9c63011df5777dda6a86b')
-sha1sums=('549e67b6a15b42bfcd72fe17cda7c9a198a393eb'
-          'c79245249634a121bfaff6cfecb763f72fe7f8eb'
-          'dc86bb68c7831ff70ff01d952d553be9f986be46'
-          '85dc50a60a10025757e249d869dab7eb73ba6e3c'
-          '508751f55131356ea8a7e7c4994ffbc9bd881769'
-          '1da2ec6a47c0666cad9d07fb8427c1c75ca27b10')
+        libtiff-CVE-2009-2285.patch)
+md5sums=('2006c1bdd12644dbf02956955175afd6' 'ff61077408727a82281f77a94f555e2a')
+sha1sums=('a4e32d55afbbcabd0391a9c89995e8e8a19961de' 'eadce8c8bd72ea9c74f35300bf299131813b0c8b')
 
 build() {
-  cd ${srcdir}/tiff-${pkgver}
-  patch -Np1 -i ${srcdir}/tiff2pdf-octal-printf.patch || return 1
-  patch -Np1 -i ${srcdir}/tiffsplit-fname-overflow.patch || return 1
-  patch -Np1 -i ${srcdir}/CVE-2006-3459-3465.patch || return 1
-  patch -Np1 -i ${srcdir}/tiff2pdf-compression.patch || return 1
-  patch -Np1 -i ${srcdir}/tiff-3.8.2-CVE-2008-2327.patch || return 1
+  cd "${srcdir}/tiff-${pkgver}"
+  patch -p1 < ../libtiff-CVE-2009-2285.patch || return 1
   ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man || return 1
   make || return 1
-  make DESTDIR=${pkgdir} install || return 1
-  install -D -m644 COPYRIGHT ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
+}
+
+package() {
+  cd "${srcdir}/tiff-${pkgver}"
+  make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
diff --git a/abs/core-testing/libtiff/libtiff-CVE-2009-2285.patch b/abs/core-testing/libtiff/libtiff-CVE-2009-2285.patch
new file mode 100644
index 0000000..435a84b
--- /dev/null
+++ b/abs/core-testing/libtiff/libtiff-CVE-2009-2285.patch
@@ -0,0 +1,22 @@
+Index: tiff-3.8.2/libtiff/tif_lzw.c
+===================================================================
+--- tiff-3.8.2.orig/libtiff/tif_lzw.c
++++ tiff-3.8.2/libtiff/tif_lzw.c
+@@ -421,7 +421,7 @@ LZWDecode(TIFF* tif, tidata_t op0, tsize
+ 			NextCode(tif, sp, bp, code, GetNextCode);
+ 			if (code == CODE_EOI)
+ 				break;
+-			if (code == CODE_CLEAR) {
++			if (code >= CODE_CLEAR) {
+ 				TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
+ 				"LZWDecode: Corrupted LZW table at scanline %d",
+ 				tif->tif_row);
+@@ -624,7 +624,7 @@ LZWDecodeCompat(TIFF* tif, tidata_t op0,
+ 			NextCode(tif, sp, bp, code, GetNextCodeCompat);
+ 			if (code == CODE_EOI)
+ 				break;
+-			if (code == CODE_CLEAR) {
++			if (code >= CODE_CLEAR) {
+ 				TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
+ 				"LZWDecode: Corrupted LZW table at scanline %d",
+ 				tif->tif_row);
-- 
cgit v0.12


From 4efbd953921069c46d21a0ed490cf9e9e88161f1 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:47:29 -0700
Subject: libtool:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libtool/PKGBUILD        | 29 +++++++++++++++++------------
 abs/core-testing/libtool/libtool.install |  6 ++++--
 2 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/abs/core-testing/libtool/PKGBUILD b/abs/core-testing/libtool/PKGBUILD
index f861926..c6f5f7a 100644
--- a/abs/core-testing/libtool/PKGBUILD
+++ b/abs/core-testing/libtool/PKGBUILD
@@ -1,25 +1,30 @@
-# $Id: PKGBUILD 12053 2008-09-08 14:37:58Z andyrtr $
-# Maintainer: judd <jvinet@zeroflux.org>
+# $Id: PKGBUILD 82294 2010-06-10 03:52:16Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+# NOTE: requires rebuilt with each new gcc version
+
 pkgname=libtool
-pkgver=2.2.6a
+pkgver=2.2.10
 pkgrel=1
 pkgdesc="A generic library support script"
 arch=('i686' 'x86_64')
-license=('GPL')
 url="http://www.gnu.org/software/libtool"
-install=libtool.install
+license=('GPL')
+depends=('sh' 'tar' 'texinfo')
 groups=('base-devel')
-depends=('sh' 'tar')
-source=(ftp://ftp.gnu.org/pub/gnu/libtool/${pkgname}-${pkgver}.tar.gz)
-md5sums=('8ca1ea241cd27ff9832e045fe9afe4fd')
 options=('!libtool')
+install=libtool.install
+source=(ftp://ftp.gnu.org/pub/gnu/libtool/${pkgname}-${pkgver}.tar.gz)
+md5sums=('b745d220e88163fcd9eea0a90ccf21b0')
 
 build() {
-  #cd ${startdir}/src/${pkgname}-${pkgver}
-  cd ${startdir}/src/${pkgname}-2.2.6
+  cd ${srcdir}/${pkgname}-${pkgver}
   ./configure --prefix=/usr
   make || return 1
-  make DESTDIR=${startdir}/pkg install
+}
 
-  rm -f ${pkgdir}/usr/share/info/dir
+package() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  make DESTDIR=${pkgdir} install
 }
diff --git a/abs/core-testing/libtool/libtool.install b/abs/core-testing/libtool/libtool.install
index 1794742..424c8cb 100644
--- a/abs/core-testing/libtool/libtool.install
+++ b/abs/core-testing/libtool/libtool.install
@@ -2,8 +2,9 @@ infodir=/usr/share/info
 filelist=(libtool.info  libtool.info-1  libtool.info-2)
 
 post_install() {
+  [ -x usr/bin/install-info ] || return 0
   for file in ${filelist[@]}; do
-    install-info $infodir/$file $infodir/dir 2> /dev/null
+    install-info $infodir/$file.gz $infodir/dir 2> /dev/null
   done
 }
 
@@ -12,8 +13,9 @@ post_upgrade() {
 }
 
 pre_remove() {
+  [ -x usr/bin/install-info ] || return 0
   for file in ${filelist[@]}; do
-    install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+    install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
   done
 }
 
-- 
cgit v0.12


From 784a7992c496f5833ad22cd335f1c2443c8c4236 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:47:41 -0700
Subject: libx11:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libx11/PKGBUILD | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/abs/core-testing/libx11/PKGBUILD b/abs/core-testing/libx11/PKGBUILD
index cfcc85a..2261d79 100644
--- a/abs/core-testing/libx11/PKGBUILD
+++ b/abs/core-testing/libx11/PKGBUILD
@@ -1,31 +1,31 @@
-# $Id: PKGBUILD 34217 2009-04-08 08:01:42Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 81970 2010-06-07 13:27:07Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=libx11
-pkgver=1.2.1
+pkgver=1.3.4
 pkgrel=1
 pkgdesc="X11 client-side library"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libxcb>=1.2' 'kbproto>=1.0.3')
-makedepends=('xproto>=7.0.14' 'xextproto>=7.0.5' 'xf86bigfontproto>=1.1.2' 'xtrans>=1.2.3' 'kbproto>=1.0.3' 'inputproto>=1.5.0' 'xorg-util-macros>=1.2.1')
+depends=('libxcb>=1.6' 'kbproto>=1.0.4')
+makedepends=('xproto>=7.0.17' 'xextproto>=7.1.1' 'xf86bigfontproto>=1.2.0' 'xtrans>=1.2.5' 'inputproto>=2.0' 'xorg-util-macros>=1.8.0')
 options=('!libtool')
 license=('custom:XFREE86')
 source=(${url}/releases/individual/lib/libX11-${pkgver}.tar.bz2
-	xorg.sh)
-md5sums=('2f2beb98e71f397e1209beaca4e97cb1'
-         '942ff006e69e041f0307c1316e0dec5d')
+        xorg.sh)
+sha1sums=('5aab6dc8ed5ec0e86419626715efc3edd34d1db4'
+          'b59214fe7d1d213f86b074a677eb624e52142ad7')
 
 build() {
   cd "${srcdir}/libX11-${pkgver}"
   ./configure --prefix=/usr \
-              --with-xcb || return 1
+      --with-xcb --disable-static || return 1
   make || return 1
+  make check || return 1
   make DESTDIR="${pkgdir}" install || return 1
 
   install -m755 -d "${pkgdir}/etc/profile.d"
-  install -m755 "${srcdir}/xorg.sh" \
-                "${pkgdir}/etc/profile.d/" || return 1
+  install -m755 "${srcdir}/xorg.sh" "${pkgdir}/etc/profile.d/" || return 1
 
   install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
-- 
cgit v0.12


From 67d05b6bbc8ce9d2b495102bcdf0c57d14d76950 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:47:49 -0700
Subject: libxau:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxau/PKGBUILD | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/abs/core-testing/libxau/PKGBUILD b/abs/core-testing/libxau/PKGBUILD
index 7b2116b..7d58219 100644
--- a/abs/core-testing/libxau/PKGBUILD
+++ b/abs/core-testing/libxau/PKGBUILD
@@ -1,22 +1,25 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 50978 2009-09-04 12:12:03Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=libxau
-pkgver=1.0.3
+pkgver=1.0.5
 pkgrel=1
 pkgdesc="X11 authorisation library"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xproto')
+makedepends=('pkgconfig' 'xproto>=7.0.15')
+license=('custom')
 options=('!libtool')
 source=(${url}/releases/individual/lib/libXau-${pkgver}.tar.bz2)
+sha1sums=('b1c68843edf7e80ce952f7ee0541448f41bac202')
 
 build() {
-  cd ${startdir}/src/libXau-${pkgver}
-  ./configure --prefix=/usr --sysconfdir=/etc \
-              --host=${CHOST} --build=${CHOST}
+  cd "${srcdir}/libXau-${pkgver}"
+  ./configure --prefix=/usr --sysconfdir=/etc || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-md5sums=('75a9f2b85cd1617b5ca98c9095323853')
-- 
cgit v0.12


From e9312661ce6e315b18d157bede6bf148019c3710 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:48:00 -0700
Subject: libxaw:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxaw/PKGBUILD | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/abs/core-testing/libxaw/PKGBUILD b/abs/core-testing/libxaw/PKGBUILD
index c1d71de..db77f9f 100644
--- a/abs/core-testing/libxaw/PKGBUILD
+++ b/abs/core-testing/libxaw/PKGBUILD
@@ -1,22 +1,22 @@
-# $Id: PKGBUILD 18578 2008-11-07 22:16:28Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 56419 2009-10-21 20:31:46Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=libxaw
-pkgver=1.0.5
+pkgver=1.0.7
 pkgrel=1
 pkgdesc="X11 Athena Widget library"
 arch=(i686 x86_64)
-license=('custom:')
+license=('custom')
 url="http://xorg.freedesktop.org/"
 depends=('libxmu' 'libxpm')
 makedepends=('pkgconfig')
 options=('!libtool')
 source=(${url}/releases/individual/lib/libXaw-${pkgver}.tar.bz2)
-md5sums=('64e7782db4653cb57c7f7e660b2431c3')
+md5sums=('815e74de989ccda684e2baf8d12cf519')
 
 build() {
   cd "${srcdir}/libXaw-${pkgver}"
-  ./configure --prefix=/usr --sysconfdir=/etc || return 1
+  ./configure --prefix=/usr --sysconfdir=/etc --disable-static || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
 
-- 
cgit v0.12


From 5d8e021518a768d33c2ae1893ea70b834aaedea5 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:48:12 -0700
Subject: libxcb:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxcb/PKGBUILD                          | 12 ++++++------
 abs/core-testing/libxcb/libxcb-1.1-no-pthread-stubs.patch |  2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/abs/core-testing/libxcb/PKGBUILD b/abs/core-testing/libxcb/PKGBUILD
index 59982e9..cbe31bd 100644
--- a/abs/core-testing/libxcb/PKGBUILD
+++ b/abs/core-testing/libxcb/PKGBUILD
@@ -1,21 +1,21 @@
-# $Id: PKGBUILD 27498 2009-02-22 09:23:59Z andyrtr $
+# $Id: PKGBUILD 79958 2010-05-09 18:41:21Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=libxcb
-pkgver=1.2
+pkgver=1.6
 pkgrel=1
 pkgdesc="X11 client-side library"
 arch=(i686 x86_64)
 url="http://xcb.freedesktop.org/"
-depends=('xcb-proto>=1.4' 'libxdmcp' 'libxau')
+depends=('xcb-proto>=1.6' 'libxdmcp' 'libxau')
 makedepends=('pkgconfig' 'libxslt' 'python')
 conflicts=('libx11<1.1.99.2')
 options=('!libtool')
 license=('custom')
 source=(${url}/dist/${pkgname}-${pkgver}.tar.bz2
-	libxcb-1.1-no-pthread-stubs.patch)
-md5sums=('ae32b7846a7d83f5ec542a5431117564'
-         'a53f09ab3ec5cbfc1b0848bd137c535a')
+        libxcb-1.1-no-pthread-stubs.patch)
+sha1sums=('b0a6fec4c02ec876f32bbd4b64ffe8a25f0da518'
+         '3455e84642283bc91c8313af319002a20bbcbdf4')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/abs/core-testing/libxcb/libxcb-1.1-no-pthread-stubs.patch b/abs/core-testing/libxcb/libxcb-1.1-no-pthread-stubs.patch
index 67a09f2..f17de1b 100644
--- a/abs/core-testing/libxcb/libxcb-1.1-no-pthread-stubs.patch
+++ b/abs/core-testing/libxcb/libxcb-1.1-no-pthread-stubs.patch
@@ -4,7 +4,7 @@ diff -up libxcb-1.1/configure.ac.pthread-stubs libxcb-1.1/configure.ac
 @@ -31,7 +31,7 @@ AC_SUBST(HTML_CHECK_RESULT)
  
  # Checks for pkg-config packages
- PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.1)
+ PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.6)
 -NEEDED="pthread-stubs xau >= 0.99.2"
 +NEEDED="xau >= 0.99.2"
  PKG_CHECK_MODULES(NEEDED, $NEEDED)
-- 
cgit v0.12


From c9258a874453fd440a7138b9c1e3fc77c143bac6 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:50:08 -0700
Subject: libxdamage:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxdamage/PKGBUILD | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/abs/core-testing/libxdamage/PKGBUILD b/abs/core-testing/libxdamage/PKGBUILD
index f174581..231b4ce 100644
--- a/abs/core-testing/libxdamage/PKGBUILD
+++ b/abs/core-testing/libxdamage/PKGBUILD
@@ -1,22 +1,24 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 82169 2010-06-09 06:52:23Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=libxdamage
-pkgver=1.1.1
+pkgver=1.1.3
 pkgrel=1
 pkgdesc="X11 damaged region extension library"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libxfixes>=4.0.3' 'damageproto>=1.1')
-makedepends=('pkgconfig')
+license=('custom')
+depends=('libxfixes>=4.0.4' 'damageproto>=1.2.0')
+makedepends=('pkg-config')
 options=('!libtool')
 source=(${url}/releases/individual/lib/libXdamage-${pkgver}.tar.bz2)
+sha1sums=('7d96e8de107fede16951cb47d5e147630fbc7dee')
 
 build() {
-  cd ${startdir}/src/libXdamage-${pkgver}
-  ./configure --prefix=/usr --sysconfdir=/etc \
-              --build=${CHOST} --host=${CHOST}
+  cd "${srcdir}/libXdamage-${pkgver}"
+  ./configure --prefix=/usr --sysconfdir=/etc --disable-static || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-md5sums=('ac0ce6b0063a9858c8f24ddb4c60487d')
-- 
cgit v0.12


From 49e7f97eeaedc7e6c36833989e761ccfee2ebe31 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:50:40 -0700
Subject: libxext:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxext/PKGBUILD | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/abs/core-testing/libxext/PKGBUILD b/abs/core-testing/libxext/PKGBUILD
index 66cc29a..3050eeb 100644
--- a/abs/core-testing/libxext/PKGBUILD
+++ b/abs/core-testing/libxext/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 35597 2009-04-14 06:27:02Z eric $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 81975 2010-06-07 13:30:21Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=libxext
-pkgver=1.0.5
-pkgrel=2
+pkgver=1.1.2
+pkgrel=1
 pkgdesc="X11 miscellaneous extensions library"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 license=('custom')
-depends=('libx11>=1.1.93' 'xextproto>=7.0.5')
+depends=('libx11>=1.3.3' 'xextproto>=7.1.1')
 makedepends=('pkgconfig')
 options=('!libtool')
 source=(${url}/releases/individual/lib/libXext-${pkgver}.tar.bz2)
-md5sums=('aa11d859cc8e9a0bad3bb55e1666547b')
+sha1sums=('b48a4e55d21e5ce9dd3356281f32e00b17b4c9f7')
 
 build() {
   cd "${srcdir}/libXext-${pkgver}"
-  ./configure --prefix=/usr --sysconfdir=/etc || return 1
+  ./configure --prefix=/usr --sysconfdir=/etc --disable-static || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
-  install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+  install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
-- 
cgit v0.12


From 82429eb2f6bd8d95a4beec7c746431089ba052ab Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:50:50 -0700
Subject: libxfixes:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxfixes/PKGBUILD | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/abs/core-testing/libxfixes/PKGBUILD b/abs/core-testing/libxfixes/PKGBUILD
index e088300..aff9bd0 100644
--- a/abs/core-testing/libxfixes/PKGBUILD
+++ b/abs/core-testing/libxfixes/PKGBUILD
@@ -1,22 +1,25 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 82357 2010-06-10 12:31:08Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=libxfixes
-pkgver=4.0.3
+pkgver=4.0.5
 pkgrel=1
 pkgdesc="X11 miscellaneous 'fixes' extension library"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
 url="http://xorg.freedesktop.org/"
-depends=('libx11' 'fixesproto')
-makedepends=('pkgconfig')
+license=('custom')
+depends=('libx11>=1.3.4' 'fixesproto>=4.1.1')
+makedepends=('pkg-config')
 options=('!libtool')
 source=(${url}/releases/individual/lib/libXfixes-${pkgver}.tar.bz2)
-md5sums=('1990d19725a3c7f32290037f02d3737f')
+sha1sums=('255dfb9a8c50d795c60711ec4764f76cd0620cbf')
 
 build() {
-  cd ${startdir}/src/libXfixes-${pkgver}
-  ./configure --prefix=/usr --sysconfdir=/etc \
-              --build=${CHOST} --host=${CHOST}
+  cd "${srcdir}/libXfixes-${pkgver}"
+  ./configure --prefix=/usr --sysconfdir=/etc --disable-static || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-- 
cgit v0.12


From c81be9a58cbfa5543a692ff1525a32161dd7ae65 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:51:04 -0700
Subject: libxfont:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxfont/PKGBUILD | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/abs/core-testing/libxfont/PKGBUILD b/abs/core-testing/libxfont/PKGBUILD
index a9decca..e872e51 100644
--- a/abs/core-testing/libxfont/PKGBUILD
+++ b/abs/core-testing/libxfont/PKGBUILD
@@ -1,24 +1,24 @@
-# $Id: PKGBUILD 4410 2008-07-06 20:50:37Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 83929 2010-06-23 19:51:39Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=libxfont
-pkgver=1.3.3
-pkgrel=3
+pkgver=1.4.2
+pkgrel=1
 pkgdesc="X11 font rasterisation library"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 license=('custom')
-depends=('libfontenc' 'freetype2>=2.3.7' 'fontsproto')
+depends=('libfontenc>=1.0.5' 'freetype2>=2.3.12' 'fontsproto>=2.1.0')
 makedepends=('pkgconfig' 'xtrans' 'fontcacheproto' 'xproto')
 options=('!libtool')
 source=(${url}/archive/individual/lib/libXfont-${pkgver}.tar.bz2)
-md5sums=('4f174b9613f87cf00d731da428a1b194')
+sha1sums=('79c2089fec014da4b7976e6762f1e9e447fd5767')
 
 build() {
-  cd ${startdir}/src/libXfont-${pkgver}
-  ./configure --prefix=/usr --sysconfdir=/etc || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
-  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
+  cd "${srcdir}/libXfont-${pkgver}"
+  ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+  make
+  make DESTDIR="${pkgdir}" install
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
 }
-- 
cgit v0.12


From cfa40965aa1add87de437e9b17c8475028322ffb Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:53:57 -0700
Subject: libxfontcache:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxfontcache/LICENSE  | 100 ++++++++++++++++++++++++++++++++
 abs/core-testing/libxfontcache/PKGBUILD |  21 ++++---
 2 files changed, 112 insertions(+), 9 deletions(-)
 create mode 100644 abs/core-testing/libxfontcache/LICENSE

diff --git a/abs/core-testing/libxfontcache/LICENSE b/abs/core-testing/libxfontcache/LICENSE
new file mode 100644
index 0000000..4718936
--- /dev/null
+++ b/abs/core-testing/libxfontcache/LICENSE
@@ -0,0 +1,100 @@
+
+ * Copyright (c) 1998-1999 Shunsuke Akiyama <akiyama@jp.FreeBSD.org>.
+ * All rights reserved.
+ * Copyright (c) 1998-1999 X-TrueType Server Project, All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+
+
+#
+#  Copyright 2005  Red Hat, Inc.
+#
+#  Permission to use, copy, modify, distribute, and sell this software and its
+#  documentation for any purpose is hereby granted without fee, provided that
+#  the above copyright notice appear in all copies and that both that
+#  copyright notice and this permission notice appear in supporting
+#  documentation, and that the name of Red Hat not be used in
+#  advertising or publicity pertaining to distribution of the software without
+#  specific, written prior permission.  Red Hat makes no
+#  representations about the suitability of this software for any purpose.  It
+#  is provided "as is" without express or implied warranty.
+#
+#  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+#  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+#  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+#  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+#  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+#  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+#  PERFORMANCE OF THIS SOFTWARE.
+
+
+#
+# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation.
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the copyright holders shall
+# not be used in advertising or otherwise to promote the sale, use or
+# other dealings in this Software without prior written authorization
+# from the copyright holders.
+#
+
+
+
+Copyright (C) 2003 The XFree86 Project, Inc.  All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES
+OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+from the XFree86 Project.
+
diff --git a/abs/core-testing/libxfontcache/PKGBUILD b/abs/core-testing/libxfontcache/PKGBUILD
index 4557c80..925a62c 100644
--- a/abs/core-testing/libxfontcache/PKGBUILD
+++ b/abs/core-testing/libxfontcache/PKGBUILD
@@ -1,22 +1,25 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 55250 2009-10-12 16:05:23Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=libxfontcache
-pkgver=1.0.4
+pkgver=1.0.5
 pkgrel=1
 pkgdesc="X11 font cache library"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('libxext' 'fontcacheproto')
 makedepends=('pkgconfig')
 options=('!libtool')
-source=(${url}/releases/individual/lib/libXfontcache-${pkgver}.tar.bz2)
+source=(${url}/releases/individual/lib/libXfontcache-${pkgver}.tar.bz2 LICENSE)
+md5sums=('bbd37768c87f63cf2eb845b2c0f56515'
+         '152d5429e5292e8098c667e0d0d22f01')
 
 build() {
-  cd ${startdir}/src/libXfontcache-${pkgver}
-  ./configure --prefix=/usr --sysconfdir=/etc \
+  cd ${srcdir}/libXfontcache-${pkgver}
+  ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
               --build=${CHOST} --host=${CHOST}
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  install -D -m644 ../LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
 }
-md5sums=('1adca018aa7bf2d215f20a69c10828ad')
-- 
cgit v0.12


From d4de9ad16e2227c4f1935b204d9cb778475676bf Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:54:09 -0700
Subject: libxft:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxft/PKGBUILD | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/abs/core-testing/libxft/PKGBUILD b/abs/core-testing/libxft/PKGBUILD
index c4a8b4f..62bd015 100644
--- a/abs/core-testing/libxft/PKGBUILD
+++ b/abs/core-testing/libxft/PKGBUILD
@@ -1,22 +1,22 @@
-# $Id: PKGBUILD 4363 2008-07-06 19:22:55Z jgc $
-# Maintainer: Alexander Baldeck<alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 55090 2009-10-11 22:04:17Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=libxft
-pkgver=2.1.13
+pkgver=2.1.14
 pkgrel=1
 pkgdesc="FreeType-based font drawing library for X"
 arch=('i686' 'x86_64')
 license=('custom')
 url="http://xorg.freedesktop.org/"
-depends=('fontconfig>=2.6.0' 'libxrender')
+depends=('fontconfig>=2.6.0' 'libxrender' 'sh')
 makedepends=('pkgconfig')
 options=('!libtool')
 source=(${url}/releases/individual/lib/libXft-${pkgver}.tar.bz2)
-md5sums=('bc8881851f3bd8dcc625fac37350a1c6')
+md5sums=('254e62a233491e0e1251636536163e20')
 
 build() {
   cd ${startdir}/src/libXft-${pkgver}
-  ./configure --prefix=/usr --sysconfdir=/etc || return 1
+  ./configure --prefix=/usr --sysconfdir=/etc --disable-static || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
   install -d -m755 ${pkgdir}/usr/share/licenses/${pkgname}
-- 
cgit v0.12


From 79c4bd48688138406ca63ddaac95948944cb51d5 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:54:16 -0700
Subject: libxi:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxi/PKGBUILD | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/abs/core-testing/libxi/PKGBUILD b/abs/core-testing/libxi/PKGBUILD
index 593d805..6abbf85 100644
--- a/abs/core-testing/libxi/PKGBUILD
+++ b/abs/core-testing/libxi/PKGBUILD
@@ -1,22 +1,22 @@
-# $Id: PKGBUILD 28322 2009-02-28 18:50:37Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 57676 2009-11-01 14:14:29Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=libxi
-pkgver=1.2.1
-pkgrel=1
+pkgver=1.3
+pkgrel=2
 pkgdesc="X11 Input extension library"
 arch=('i686' 'x86_64')
 url="http://xorg.freedesktop.org"
-depends=('libxext>=1.0.5')
+depends=('libxext>=1.1' 'inputproto>=2.0')
 makedepends=('pkgconfig')
 options=(!libtool force)
 license=('custom')
 source=(${url}/releases/individual/lib/libXi-${pkgver}.tar.bz2)
-md5sums=('cfb36307e8e7ffafe40848dba24e0b11')
+md5sums=('8df4ece9bd1efb02c28acb2b6f485e09')
 
 build() {
   cd "${srcdir}/libXi-${pkgver}"
-  ./configure --prefix=/usr --sysconfdir=/etc || return 1
+  ./configure --prefix=/usr --sysconfdir=/etc --disable-static || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
 
-- 
cgit v0.12


From 197fe731cd91b5852e04c9038f2532a53b950c1b Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:54:24 -0700
Subject: libxml:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxml2/PKGBUILD | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/abs/core-testing/libxml2/PKGBUILD b/abs/core-testing/libxml2/PKGBUILD
index 8123cfc..d61e61e 100644
--- a/abs/core-testing/libxml2/PKGBUILD
+++ b/abs/core-testing/libxml2/PKGBUILD
@@ -1,22 +1,25 @@
-# $Id: PKGBUILD 26966 2009-02-14 23:57:37Z jgc $
+# $Id: PKGBUILD 73765 2010-03-28 13:12:08Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: John Proctor <jproctor@prium.net>
 
 pkgname=libxml2
-pkgver=2.7.3
+pkgver=2.7.7
 pkgrel=1
 pkgdesc="XML parsing library, version 2"
 arch=(i686 x86_64)
 license=('custom')
-depends=('zlib>=1.2.3.3' 'readline>=5.2.013' 'ncurses>=5.7')
+depends=('zlib>=1.2.4' 'readline>=6.1' 'ncurses>=5.7')
 makedepends=('python')
 options=('!libtool')
 url="http://www.xmlsoft.org/"
-source=(ftp://ftp.xmlsoft.org/${pkgname}/${pkgname}-${pkgver}.tar.gz)
-md5sums=('8f4fda3969237c2a33bdb1583b5d06b2')
+source=(ftp://ftp.xmlsoft.org/${pkgname}/${pkgname}-${pkgver}.tar.gz
+        largefile64.patch)
+md5sums=('9abc9959823ca9ff904f1fbcf21df066'
+         '5ad4915665608ebfa5b89f7908467a72')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -Np1 -i "${srcdir}/largefile64.patch" || return 1
   ./configure --prefix=/usr --with-threads --with-history || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
-- 
cgit v0.12


From af5975e665e081fbeb5fa4009ed8beb082485672 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:54:33 -0700
Subject: libxt:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxt/PKGBUILD | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/abs/core-testing/libxt/PKGBUILD b/abs/core-testing/libxt/PKGBUILD
index 1d1ab51..86695f7 100644
--- a/abs/core-testing/libxt/PKGBUILD
+++ b/abs/core-testing/libxt/PKGBUILD
@@ -1,23 +1,26 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 73000 2010-03-21 17:33:15Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=libxt
-pkgver=1.0.5
+pkgver=1.0.8
 pkgrel=1
 pkgdesc="X11 toolkit intrinsics library"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('libsm' 'libx11')
 makedepends=('pkgconfig')
 options=('!libtool')
 source=(${url}/releases/individual/lib/libXt-${pkgver}.tar.bz2)
-md5sums=('f3bdd67785ace8cd0b23249e9d8c9975')
+sha1sums=('d5e3dfba90a12169771399b3e2ccae07243489c9')
 
 build() {
-  cd ${startdir}/src/libXt-${pkgver}
-  ./configure --prefix=/usr --sysconfdir=/etc \
-              --build=${CHOST} --host=${CHOST} \
-	      --disable-install-makestrs
+  cd "${srcdir}/libXt-${pkgver}"
+  ./configure --prefix=/usr --sysconfdir=/etc --disable-static || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+
+# install custom license
+  install -Dm644 "${srcdir}/libXt-${pkgver}/COPYING" \
+      "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" || return 1
 }
-- 
cgit v0.12


From 74dbf89d863f8e477f8effcf0d5e6bcda6a58b88 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:54:39 -0700
Subject: libxv:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxv/PKGBUILD | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/abs/core-testing/libxv/PKGBUILD b/abs/core-testing/libxv/PKGBUILD
index fa03f4c..ded0f7a 100644
--- a/abs/core-testing/libxv/PKGBUILD
+++ b/abs/core-testing/libxv/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 577 2008-04-21 09:50:50Z alexander $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org.
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 55267 2009-10-12 16:19:29Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=libxv
-pkgver=1.0.4
+pkgver=1.0.5
 pkgrel=1
 pkgdesc="X11 Video extension library"
 arch=(i686 x86_64)
@@ -12,14 +12,14 @@ depends=('libxext' 'videoproto')
 makedepends=('pkgconfig')
 options=('!libtool')
 source=(${url}/releases/individual/lib/libXv-${pkgver}.tar.bz2)
+md5sums=('1d97798b1d8bbf8d9085e1b223a0738f')
 
 build() {
   cd ${startdir}/src/libXv-${pkgver}
-  ./configure --prefix=/usr
+  ./configure --prefix=/usr --disable-static 
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 
   install -D -m644 ${startdir}/src/libXv-${pkgver}/COPYING \
                    ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING
 }
-md5sums=('723a0275227165383e967a1ca8899b52')
-- 
cgit v0.12


From 3449ca7835a10709832b5aadbe443143173eefb3 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:54:51 -0700
Subject: libxvmc:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxvmc/LICENSE  | 23 +++++++++++++++++++++++
 abs/core-testing/libxvmc/PKGBUILD | 20 +++++++++++---------
 2 files changed, 34 insertions(+), 9 deletions(-)
 create mode 100644 abs/core-testing/libxvmc/LICENSE

diff --git a/abs/core-testing/libxvmc/LICENSE b/abs/core-testing/libxvmc/LICENSE
new file mode 100644
index 0000000..e423bcb
--- /dev/null
+++ b/abs/core-testing/libxvmc/LICENSE
@@ -0,0 +1,23 @@
+Copyright (c) 1995, 1996  The XFree86 Project, Inc
+XvMCWrapper.c - Copyright (c) 2004 The Unichrome project. All rights reserved.
+XvMCWrapper.c - Author: Thomas Hellstr�m (2004)
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHOR(S) OR COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
diff --git a/abs/core-testing/libxvmc/PKGBUILD b/abs/core-testing/libxvmc/PKGBUILD
index 49c76b7..c22aeb4 100644
--- a/abs/core-testing/libxvmc/PKGBUILD
+++ b/abs/core-testing/libxvmc/PKGBUILD
@@ -1,23 +1,25 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 55272 2009-10-12 16:22:20Z andyrtr $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=libxvmc
-pkgver=1.0.4
+pkgver=1.0.5
 pkgrel=1
 pkgdesc="X11 Video Motion Compensation extension library"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libxv>=1.0.3')
+license=('custom')
+depends=('libxv>=1.0.5')
 makedepends=('pkgconfig')
 options=('!libtool')
-source=(${url}/releases/individual/lib/libXvMC-${pkgver}.tar.bz2)
-md5sums=('b54600573daf9d1a29b952e8d35b389e')
+source=(${url}/releases/individual/lib/libXvMC-${pkgver}.tar.bz2 LICENSE)
+md5sums=('16c3a11add14979beb7510e44623cac6'
+         'ca9d908b0fa487a213802ff38336259d')
 
 build() {
-  cd ${startdir}/src/libXvMC-${pkgver}
-  ./configure --prefix=/usr --sysconfdir=/etc \
+  cd ${srcdir}/libXvMC-${pkgver}
+  ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
               --build=${CHOST} --host=${CHOST}
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  install -D -m644 ../LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
 }
-
-- 
cgit v0.12


From e82d0c5c1b822c1f528e882a450f4a617975686f Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:55:11 -0700
Subject: libxxf86dga:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxxf86dga/PKGBUILD | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/abs/core-testing/libxxf86dga/PKGBUILD b/abs/core-testing/libxxf86dga/PKGBUILD
index 5adc89f..a71b8e2 100644
--- a/abs/core-testing/libxxf86dga/PKGBUILD
+++ b/abs/core-testing/libxxf86dga/PKGBUILD
@@ -1,23 +1,25 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 55279 2009-10-12 16:27:32Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
 pkgname=libxxf86dga
-pkgver=1.0.2
+pkgver=1.1.1
 pkgrel=1
 pkgdesc="X11 Direct Graphics Access extension library"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libxext' 'xf86dgaproto>=2.0.3')
+license=('custom')
+depends=('libxext>=1.1' 'xf86dgaproto>=2.1')
 makedepends=('pkgconfig')
 options=('!libtool')
 source=(${url}/releases/individual/lib/libXxf86dga-${pkgver}.tar.bz2)
+md5sums=('368837d3d7a4d3b4f70be48383e3544e')
 
 build() {
-  cd ${startdir}/src/libXxf86dga-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  cd "${srcdir}/libXxf86dga-${pkgver}"
+  ./configure --prefix=/usr --disable-static || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-
-md5sums=('6f5f621804ee652b6cc6f2025c517c78')
-- 
cgit v0.12


From db4d2da9fbc50e6e5fccce1138810b5b88e9fe95 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:58:59 -0700
Subject: libxxf86misc:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxxf86misc/PKGBUILD | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/abs/core-testing/libxxf86misc/PKGBUILD b/abs/core-testing/libxxf86misc/PKGBUILD
index 6899377..1df2bbf 100644
--- a/abs/core-testing/libxxf86misc/PKGBUILD
+++ b/abs/core-testing/libxxf86misc/PKGBUILD
@@ -1,23 +1,25 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 55245 2009-10-12 16:01:59Z andyrtr $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=libxxf86misc
-pkgver=1.0.1
+pkgver=1.0.2
 pkgrel=1
 pkgdesc="X11 XFree86 miscellaneous extension library"
+arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=(libxext xf86miscproto)
 makedepends=(pkgconfig)
 options=(!libtool)
-arch=('i686' 'x86_64')
 source=(${url}/releases/individual/lib/libXxf86misc-${pkgver}.tar.bz2)
-md5sums=(7cee0df63903cef7f7a3fb68cdd99eef)
+md5sums=('51fed53e8de067d4b8666f75a0212400')
 
 build() {
-  cd ${startdir}/src/libXxf86misc-${pkgver}
-  ./configure --prefix=/usr \
+  cd ${srcdir}/libXxf86misc-${pkgver}
+  ./configure --prefix=/usr --mandir=/usr/share/man --disable-static \
               --build=${CHOST} --host=${CHOST}
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
 }
 
-- 
cgit v0.12


From e3b0184d8c41dd10e7a5926f1bf4bf228038189a Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:59:09 -0700
Subject: libxxf86vm:Bumped/Updated for LinHES 7.

---
 abs/core-testing/libxxf86vm/PKGBUILD | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/abs/core-testing/libxxf86vm/PKGBUILD b/abs/core-testing/libxxf86vm/PKGBUILD
index 58a2803..7d0f7d7 100644
--- a/abs/core-testing/libxxf86vm/PKGBUILD
+++ b/abs/core-testing/libxxf86vm/PKGBUILD
@@ -1,24 +1,24 @@
-# $Id: PKGBUILD 4409 2008-07-06 20:49:15Z jgc $
+# $Id: PKGBUILD 54608 2009-10-11 11:43:26Z andyrtr $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=libxxf86vm
-pkgver=1.0.2
+pkgver=1.1.0
 pkgrel=1
 pkgdesc="X11 XFree86 video mode extension library"
 arch=('x86_64' 'i686')
 license=('custom')
 url="http://xorg.freedesktop.org/"
-depends=('libxext' 'xf86vidmodeproto')
+depends=('libxext>=1.1' 'xf86vidmodeproto>=2.3')
 makedepends=('pkgconfig')
 options=('!libtool')
 source=(${url}/releases/individual/lib/libXxf86vm-${pkgver}.tar.bz2)
-md5sums=('304d37bd0a10d9b58aa9b64469ad73e5')
+md5sums=('b431ad7084e1055fef99a9115237edd8')
 
 build() {
-  cd ${startdir}/src/libXxf86vm-${pkgver}
-  ./configure --prefix=/usr || return 1
+  cd "${srcdir}/libXxf86vm-${pkgver}"
+  ./configure --prefix=/usr --disable-static || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-  install -d -m755 ${pkgdir}/usr/share/licenses/${pkgname}
-  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-- 
cgit v0.12


From 96e7fd102d427ccab2fd62b05b32dbcc40c3f70e Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:59:24 -0700
Subject: linux-api-headers:Bumped/Updated for LinHES 7.

---
 abs/core-testing/linux-api-headers/PKGBUILD   | 43 +++++++++++++++++++++++++++
 abs/core-testing/linux-api-headers/scsi.patch | 42 ++++++++++++++++++++++++++
 2 files changed, 85 insertions(+)
 create mode 100644 abs/core-testing/linux-api-headers/PKGBUILD
 create mode 100644 abs/core-testing/linux-api-headers/scsi.patch

diff --git a/abs/core-testing/linux-api-headers/PKGBUILD b/abs/core-testing/linux-api-headers/PKGBUILD
new file mode 100644
index 0000000..7090df8
--- /dev/null
+++ b/abs/core-testing/linux-api-headers/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 80778 2010-05-22 07:55:08Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=linux-api-headers
+pkgver=2.6.34
+_basever=2.6.34
+pkgrel=1
+pkgdesc="Kernel headers sanitized for use in userspace"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL2')
+provides=("kernel-headers=${pkgver}")
+conflicts=("glibc<=2.10.1-4" 'kernel-headers')
+replaces=('kernel-headers')
+source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${_basever}.tar.bz2
+	#http://www.kernel.org/pub/linux/kernel/v2.6/patch-${pkgver}.bz2
+	scsi.patch)
+md5sums=('10eebcb0178fb4540e2165bfd7efc7ad'
+         'b6d05566fcfe07770d9386f0588f8758')
+
+build() {
+  cd ${srcdir}/linux-${_basever}
+  #patch -Np1 -i ${srcdir}/patch-${pkgver}
+  
+  # fix issues with transition of scsi.h from glibc
+  patch -Np1 -i ${srcdir}/scsi.patch
+
+  make mrproper
+  make headers_check
+}
+
+package() {
+  cd ${srcdir}/linux-${_basever}
+  make INSTALL_HDR_PATH=${pkgdir}/usr headers_install
+
+  # use headers from libdrm
+  rm -rf ${pkgdir}/usr/include/drm
+  
+  rm -f $(find ${pkgdir} -name .install -or -name ..install.cmd)
+}
diff --git a/abs/core-testing/linux-api-headers/scsi.patch b/abs/core-testing/linux-api-headers/scsi.patch
new file mode 100644
index 0000000..f85a3b7
--- /dev/null
+++ b/abs/core-testing/linux-api-headers/scsi.patch
@@ -0,0 +1,42 @@
+diff -Naur linux-2.6.32-old/include/scsi/scsi.h linux-2.6.32/include/scsi/scsi.h
+--- linux-2.6.32-old/include/scsi/scsi.h	2009-12-03 13:51:21.000000000 +1000
++++ linux-2.6.32/include/scsi/scsi.h	2009-12-12 10:43:11.000000000 +1000
+@@ -145,14 +145,15 @@
+ 
+ /* defined in T10 SCSI Primary Commands-2 (SPC2) */
+ struct scsi_varlen_cdb_hdr {
+-	u8 opcode;        /* opcode always == VARIABLE_LENGTH_CMD */
+-	u8 control;
+-	u8 misc[5];
+-	u8 additional_cdb_length;         /* total cdb length - 8 */
++	__u8 opcode;        /* opcode always == VARIABLE_LENGTH_CMD */
++	__u8 control;
++	__u8 misc[5];
++	__u8 additional_cdb_length;         /* total cdb length - 8 */
+ 	__be16 service_action;
+ 	/* service specific data follows */
+ };
+ 
++#ifdef __KERNEL__
+ static inline unsigned
+ scsi_varlen_cdb_length(const void *hdr)
+ {
+@@ -168,6 +169,7 @@
+ 	return (cmnd[0] == VARIABLE_LENGTH_CMD) ?
+ 		scsi_varlen_cdb_length(cmnd) : COMMAND_SIZE(cmnd[0]);
+ }
++#endif
+ 
+ /*
+  *  SCSI Architecture Model (SAM) Status codes. Taken from SAM-3 draft
+@@ -284,8 +286,10 @@
+ 	SCSI_PROTOCOL_UNSPEC = 0xf, /* No specific protocol */
+ };
+ 
++#ifdef __KERNEL__
+ /* Returns a human-readable name for the device */
+ extern const char * scsi_device_type(unsigned type);
++#endif
+ 
+ /*
+  * standard mode-select header prepended to all mode-select commands
-- 
cgit v0.12


From 3ebde4048c80fca347c226e2b48356807c948209 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:59:40 -0700
Subject: linux-firmware:Bumped/Updated for LinHES 7.

---
 abs/core-testing/linux-firmware/PKGBUILD | 62 ++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)
 create mode 100644 abs/core-testing/linux-firmware/PKGBUILD

diff --git a/abs/core-testing/linux-firmware/PKGBUILD b/abs/core-testing/linux-firmware/PKGBUILD
new file mode 100644
index 0000000..c1a32bb
--- /dev/null
+++ b/abs/core-testing/linux-firmware/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 85247 2010-07-11 09:33:36Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+#
+# Create a new tarball from the linux-firmware git tree with the following command:
+# git archive --format=tar --prefix linux-firmware-$(date +%Y%m%d)/ master | xz -9 > linux-firmware-$(date +%Y%m%d).tar.xz
+#
+
+pkgname=linux-firmware
+pkgver=20100623
+pkgrel=2
+pkgdesc="Firmware files for Linux"
+arch=('any')
+url="http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=summary"
+license=('GPL2' 'GPL3' 'custom')
+provides=('kernel26-firmware=2.6.34.99')
+conflicts=('linux-firmware-git'
+           'kernel26-firmware'
+           'ar9170-fw'
+           'iwlwifi-1000-ucode'
+           'iwlwifi-3945-ucode'
+           'iwlwifi-4965-ucode'
+           'iwlwifi-5000-ucode'
+           'iwlwifi-5150-ucode'
+           'iwlwifi-6000-ucode'
+           'rt2870usb-fw'
+           'rt2x00-rt61-fw'
+           'rt2x00-rt71w-fw')
+replaces=('kernel26-firmware'
+           'ar9170-fw'
+           'iwlwifi-1000-ucode'
+           'iwlwifi-3945-ucode'
+           'iwlwifi-4965-ucode'
+           'iwlwifi-5000-ucode'
+           'iwlwifi-5150-ucode'
+           'iwlwifi-6000-ucode'
+           'rt2870usb-fw'
+           'rt2x00-rt61-fw'
+           'rt2x00-rt71w-fw')
+options=(!strip)
+source=(ftp://ftp.archlinux.org/other/linux-firmware/$pkgname-$pkgver.tar.xz
+        http://www.kernel.org/pub/linux/kernel/people/mcgrof/firmware/ar9170/ar9170.fw)
+sha256sums=('f78f96a4d330ecded5e6a6e61c1e6f2cdf915625b65040f4bd3e6dfea44f367d'
+            '1b379c5a8d6ab3a43911f7949d6306fe2dae3afb1368be5452a8fc7d9c54e0a0')
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+
+  install -d -m755 "${pkgdir}/lib/firmware"
+  cp -a * "${pkgdir}/lib/firmware/"
+  install -d -m755 "${pkgdir}/usr/share/licenses/linux-firmware/"
+  rm -f "${pkgdir}/lib/firmware/GPL*"
+  mv "${pkgdir}/lib/firmware"/{LICEN*,WHENCE} "${pkgdir}/usr/share/licenses/linux-firmware/"
+
+  # Add missing firmware files
+  # https://bugs.archlinux.org/task/19912
+  cd "${pkgdir}/lib/firmware/bnx2"
+  ln -s bnx2-mips-09-5.0.0.j15.fw bnx2-mips-09-5.0.0.j9.fw
+  cd -
+  # https://bugs.archlinux.org/task/20064
+  install -m644 "${srcdir}/ar9170.fw" "${pkgdir}/lib/firmware/"
+}
+# vim:set ts=2 sw=2 et:
-- 
cgit v0.12


From e56e4b9867cfab4cf036b9f7bddfadaccf1afd64 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 16:59:54 -0700
Subject: lirc-utils:Bumped/Updated for LinHES 7.

---
 abs/core-testing/lirc-utils/PKGBUILD            |   73 +-
 abs/core-testing/lirc-utils/hw_commandir.c      | 1926 -----------------------
 abs/core-testing/lirc-utils/hw_commandir.h      |  175 --
 abs/core-testing/lirc-utils/irexec.conf         |    5 +
 abs/core-testing/lirc-utils/irexecd             |   38 +
 abs/core-testing/lirc-utils/kernel-2.6.26.patch |  122 --
 abs/core-testing/lirc-utils/kernel-2.6.33.patch |  475 ++++++
 abs/core-testing/lirc-utils/lirc.logrotate      |    3 -
 abs/core-testing/lirc-utils/lirc_atiusb.patch   |   27 -
 abs/core-testing/lirc-utils/lirc_patch          |  270 ++++
 abs/core-testing/lirc-utils/lircd               |   12 +-
 abs/core-testing/lirc-utils/lircd.conf          |    8 +
 abs/core-testing/lirc-utils/lircd.conf.d        |    8 -
 13 files changed, 846 insertions(+), 2296 deletions(-)
 delete mode 100755 abs/core-testing/lirc-utils/hw_commandir.c
 delete mode 100755 abs/core-testing/lirc-utils/hw_commandir.h
 create mode 100644 abs/core-testing/lirc-utils/irexec.conf
 create mode 100755 abs/core-testing/lirc-utils/irexecd
 delete mode 100644 abs/core-testing/lirc-utils/kernel-2.6.26.patch
 create mode 100644 abs/core-testing/lirc-utils/kernel-2.6.33.patch
 delete mode 100644 abs/core-testing/lirc-utils/lirc_atiusb.patch
 create mode 100644 abs/core-testing/lirc-utils/lirc_patch
 create mode 100644 abs/core-testing/lirc-utils/lircd.conf
 delete mode 100644 abs/core-testing/lirc-utils/lircd.conf.d

diff --git a/abs/core-testing/lirc-utils/PKGBUILD b/abs/core-testing/lirc-utils/PKGBUILD
index c4d5759..9eff254 100644
--- a/abs/core-testing/lirc-utils/PKGBUILD
+++ b/abs/core-testing/lirc-utils/PKGBUILD
@@ -1,36 +1,27 @@
-# $Id: PKGBUILD 6058 2008-07-23 02:50:00Z eric $
+# $Id: PKGBUILD 56261 2009-10-20 19:13:10Z hugo $
 # Maintainer: Paul Mattal <paul@archlinux.org>
 
 pkgname=lirc-utils
-pkgver=0.8.5CVS
-pkgrel=7
+pkgver=0.8.6
+pkgrel=4
 pkgdesc="Linux Infrared Remote Control utils"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
 url="http://www.lirc.org/"
 license=('GPL')
-_kernver=2.6.28-LinHES
-depends=('alsa-lib' 'libusb' 'libx11' 'libsm' 'iguanaIR')
-#makedepends=('help2man')
+_kernver=2.6.34-ARCH
+depends=('alsa-lib' 'libusb' 'libx11' 'libsm' 'python' 'libftdi')
+makedepends=('help2man')
 replaces=('lirc+pctv')
-backup=('etc/lircd.conf' 'etc/lircmd.conf'\
-        'etc/conf.d/lircd')
+backup=('etc/conf.d/lircd.conf' 'etc/conf.d/lircmd.conf' 'etc/lirc/lircd.conf')
 options=('!libtool' '!makeflags')
-source=(http://www.blushingpenguin.com/mark/lmilk/lirc-0.8.5-CVS-pvr150.tar.bz2 \
-	lircd lircmd lirc.logrotate lircd.conf.d \
-	kernel-2.6.26.patch lirc_atiusb.patch
-	hw_commandir.c 
-	hw_commandir.h) 
-md5sums=('b96dae91b566143b3af433fa2714ec9a' '909ad968afa10e4511e1da277bb23c3b'\
-         '85f7fdac55e5256967241864049bf5e9' '3deb02604b37811d41816e9b4385fcc3'\
-         '5b1f8c9cd788a39a6283f93302ce5c6e' '1753acd774f50b638e6173d364de53fd'\
-	 '7eccd7826ab99e5cf1b9154171c8b927')
+source=(http://downloads.sourceforge.net/sourceforge/lirc/lirc-$pkgver.tar.bz2
+	lircd lircmd lirc.logrotate lircd.conf irexec.conf irexecd kernel-2.6.33.patch)
 
 build() {
 	# configure
-	cd $startdir/src/lirc-0.8.5-CVS-pvr150 || return 1
-	cp $startdir/src/hw_commandir.* $startdir/src/lirc-0.8.5-CVS-pvr150/daemons
-#	patch -Np1 -i ../kernel-2.6.26.patch || return 1
-	patch -Np1 -i ../lirc_atiusb.patch || return 1
+	cd ${srcdir}/lirc-$pkgver || return 1
+
+	patch -p0 < ../kernel-2.6.33.patch || return 1
 
       # Disabling lirc_gpio driver as it does no longer work Kernel 2.6.22+
 	sed -i -e "s:lirc_gpio\.o::" drivers/lirc_gpio/Makefile.am || return 1
@@ -51,22 +42,38 @@ build() {
 
   	# build
 	make || return 1
-	make DESTDIR=$startdir/pkg install || return 1
-	mkdir -p $startdir/pkg/usr/share/lirc $startdir/pkg/etc/rc.d \
+	make DESTDIR=${pkgdir} install || return 1
+	mkdir -p ${pkgdir}/usr/share/lirc ${pkgdir}/etc/rc.d \
 		|| return 1
-	cp $startdir/src/{lircd,lircmd} $startdir/pkg/etc/rc.d/ \
+	cp ${srcdir}/{lircd,lircmd,irexecd} ${pkgdir}/etc/rc.d/ \
 		|| return 1
-	cp -rp remotes $startdir/pkg/usr/share/lirc || return 1
-	chmod -R go-w $startdir/pkg/usr/share/lirc/ || return 1
+	cp -rp remotes ${pkgdir}/usr/share/lirc || return 1
+	chmod -R go-w ${pkgdir}/usr/share/lirc/ || return 1
+
 
 	# install the logrotate config
-	install -D -m644 $startdir/src/lirc.logrotate \
-		$startdir/pkg/etc/logrotate.d/lirc || return 1
-	
+    	install -D -m644 ${srcdir}/lirc.logrotate \
+        	${pkgdir}/etc/logrotate.d/lirc || return 1
+    
 	# install conf.d file
-	install -D -m644 $startdir/src/lircd.conf.d \
-		$startdir/pkg/etc/conf.d/lircd || return 1
+	install -D -m644 ${srcdir}/lircd.conf \
+        	${pkgdir}/etc/conf.d/lircd.conf || return 1
+
+	# install conf.d file
+        install -D -m644 ${srcdir}/irexec.conf \
+                ${pkgdir}/etc/conf.d/irexec.conf || return 1
+
+	install -d -m755 ${pkgdir}/etc/lirc || return 1
+	install -d -m755 ${pkgdir}/var/run/lirc || return 1
 
 	# remove built modules
-	rm -r $startdir/pkg/lib/
+	rm -r ${pkgdir}/lib/
 }
+md5sums=('4ca24da6f5e7c2dcea74878c27a4a3f7'
+         '310f718169b16b6afa6615fa53a0ef21'
+         '85f7fdac55e5256967241864049bf5e9'
+         '3deb02604b37811d41816e9b4385fcc3'
+         '5b1f8c9cd788a39a6283f93302ce5c6e'
+         'f0c0ac930326168035f0c8e24357ae55'
+         '618ca4f666341d6ade8c616ce59f4d1b'
+         'f029698154cf32bc51e5e69879d53a12')
diff --git a/abs/core-testing/lirc-utils/hw_commandir.c b/abs/core-testing/lirc-utils/hw_commandir.c
deleted file mode 100755
index 40ac0de..0000000
--- a/abs/core-testing/lirc-utils/hw_commandir.c
+++ /dev/null
@@ -1,1926 +0,0 @@
-/* CommandIR transceivers driver 0.96
- * Supporting CommandIR II and CommandIR Mini (and multiple of both)
- * April-June 2008, Matthew Bodkin
- * December 2008, bug fixes, Matthew Bodkin
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <limits.h>
-#include <signal.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <sys/un.h>
-#include <sys/utsname.h>
-
-#include "hardware.h"
-#include "ir_remote.h"
-#include "lircd.h"
-#include "receive.h"
-#include "transmit.h"
-#include "hw_commandir.h"
-#include <usb.h>
-
-#define RAPID_DECODE 1
-
-extern struct ir_remote *repeat_remote;
-extern char *progname;
-
-
-/**********************************************************************
- *
- * internal function prototypes
- *
- **********************************************************************/
-static int commandir_init();
-static int commandir_deinit(void);
-static char *commandir_rec(struct ir_remote *remotes);
-static void commandir_read_loop();
-static int cmdir_convert_RX(unsigned char *orig_rxbuffer);
-static unsigned int get_time_value(unsigned int firstint, 
-		unsigned int secondint, unsigned char overflow);
-static lirc_t commandir_readdata(lirc_t timeout);
-static int commandir_send(struct ir_remote *remote,struct ir_ncode *code);
-static int commandir_ioctl(unsigned int cmd, void *arg);
-//static void setEmitterMask(unsigned char highbyte, unsigned char lowbyte);
-static void setEmitterMask(int bitmask);
-static void commandir_transmit(char *buffer, int bytes, int bitmask, 
-		unsigned int);
-static void commandir_child_init();
-static void shutdown_usb();
-static void hardware_scan();
-static void hardware_disconnect(int);
-static void hardware_setorder();
-static void raise_event(unsigned int);
-static int commandir_read();
-static int check_irsend_commandir(unsigned char *command);
-static int commandir_decode(char *command);
-static int commandir_receive_decode(struct ir_remote *remote,
-                   ir_code *prep,ir_code *codep,ir_code *postp,
-                   int *repeat_flagp,
-                   lirc_t *min_remaining_gapp, lirc_t *max_remaining_gapp);
-static void pipeline_check();
-static int inline get_bit(int bitnum);
-static void add_to_tx_pipeline(unsigned char *buffer, int bytes, 
-		int channel_mask, unsigned int);
-static void recalc_tx_available(int);
-static void set_hash_mask(int channel_mask);
-static int commandir2_convert_RX(unsigned short *bufferrx, 
-		unsigned char numvalues);
-static void cleanup_commandir_dev(int spotnum);
-
-/**********************************************************************
- *
- * CommandIR Vars
- *
- **********************************************************************/
-static int current_transmitter_mask = 0xff;
-static char unsigned commandir_data_buffer[512];
-static int last_mc_time = -1;	
-static int commandir_rx_num = 0;
-
-
-static char channels_en[MAX_DEVICES]; 
-static char open_bus_hash[USB_MAX_BUSES][USB_MAX_BUSDEV];
-static int tx_order[MAX_DEVICES];
-static char device_count = 0;
-static int mini_freq[MAX_DEVICES];
-static int child_pipe_write = 0;
-static char haveInited = 0;
-// Fake 'commandir' remote signal values
-static unsigned int signal_base[2][2] = { {100|PULSE_BIT, 200},
-		 {1000|PULSE_BIT, 200} };
-
-// Pipes to and from the child/parent
-static pid_t child_pid = -1;
-static int pipe_fd[2] = { -1, -1 };
-static int pipe_tochild[2] = { -1, -1 };
-static int tochild_read = -1, tochild_write = -1;
-
-struct commandir_device
-{
-	usb_dev_handle *cmdir_udev;
-	int bus;
-	int busdev;
-	int interface;
-	int location;
-	int hw_type;
-	int hw_revision;
-	int hw_subversion;
-	unsigned char devnum;
-	int endpoint_max[3];
-} open_commandir_devices[4];
-
-struct hardware hw_commandir =
-{
-	NULL,					 	/* default device */
-	-1,                 		/* fd */
-	LIRC_CAN_SET_SEND_CARRIER|
-	LIRC_CAN_SEND_PULSE|
-	LIRC_CAN_SET_TRANSMITTER_MASK|
-	LIRC_CAN_REC_MODE2, 		
-	LIRC_MODE_PULSE,			/* send_mode */ 
-	LIRC_MODE_MODE2,            /* rec_mode */
-	sizeof(lirc_t),        		/* code_length in BITS */
-	commandir_init,       		/* init_func */
-	NULL,     			  		/* config_func */
-	commandir_deinit,     		/* deinit_func */
-	commandir_send,				/* send_func */
- 	commandir_rec,        		/* rec_func  */
-	commandir_receive_decode,   /* decode_func */
-	commandir_ioctl,            /* ioctl_func */
-	commandir_readdata,		    /* readdata */
-	"commandir"
-};
-
-/***   LIRC Interface Functions - Non-blocking parent thread
-*/
-
-static int commandir_receive_decode(struct ir_remote *remote,
-                   ir_code *prep,ir_code *codep,ir_code *postp,
-                   int *repeat_flagp,
-                   lirc_t *min_remaining_gapp, lirc_t *max_remaining_gapp) {
-
-	int i;
-	i = receive_decode(remote,
-                   prep,codep,postp,
-                   repeat_flagp,
-                   min_remaining_gapp, max_remaining_gapp);
-
-	if(i > 0){
-		static char rx_char[3] = {3, 0, RXDECODE_HEADER_LIRC};
-		write(tochild_write, rx_char, 3);	
-	}
-	
-	return i;
-}
-
-
-static int commandir_init()
-{
-	long fd_flags;
-	if(haveInited){
-		static char init_char[3] = {3, 0, INIT_HEADER_LIRC};
-		write(tochild_write, init_char, 3);	
-		return 1;
-	}
-	
-	init_rec_buffer();	// LIRC's rec
-	init_send_buffer();	// LIRC's send
-	
-	/* A separate process will be forked to read data from the USB
-	 * receiver and write it to a pipe. hw.fd is set to the readable
-	 * end of this pipe. */
-	if (pipe(pipe_fd) != 0)
-	{
-		logprintf(LOG_ERR, "couldn't open pipe 1");
-		return 0;
-	}
-	
-	hw.fd = pipe_fd[0];	// the READ end of the Pipe
-	
-	if (pipe(pipe_tochild) != 0)
-	{
-		logprintf(LOG_ERR, "couldn't open pipe 1");
-		return 0;
-	}
-	
-	tochild_read = pipe_tochild[0];	// the READ end of the Pipe 
-	tochild_write = pipe_tochild[1];	// the WRITE end of the Pipe 
-	
-	fd_flags = fcntl(pipe_tochild[0], F_GETFL);
-  	if(fcntl(pipe_tochild[0], F_SETFL, fd_flags | O_NONBLOCK) == -1)
-	{
-		logprintf(LOG_ERR, "can't set pipe to non-blocking");
-		return 0;
-	}	
-	
-	child_pid= fork();
-	if (child_pid== -1)
-	{
-		logprintf(LOG_ERR, "couldn't fork child process");
-		return 0;
-	}
-	else if (child_pid== 0)
-	{
-		child_pipe_write = pipe_fd[1];	
-		commandir_child_init();
-		commandir_read_loop();
-		return 0;	
-	}
-	haveInited = 1;
-	
-	logprintf(LOG_ERR, "CommandIR driver initialized");
-	return 1;	
-}
-
-
-static int commandir_deinit(void)
-{
-	/* Trying something a bit new with this driver. Keeping the driver
-	 * connected so in the future we can still monitor in the client */
-	if(USB_KEEP_WARM && (!strncmp(progname, "lircd", 5)))
-	{
-		static char deinit_char[3] = {3, 0, DEINIT_HEADER_LIRC};
-		write(tochild_write, deinit_char, 3);
-		logprintf(LOG_ERR, "LIRC_deinit but keeping warm");
-	}
-	else
-	{
-		if (tochild_read >= 0)
-		{
-			if (close(tochild_read) < 0) 
-			{
-				logprintf(LOG_ERR, "Error closing pipe2");;
-			}
-			tochild_read = tochild_write = -1;
-		}
-		
-		if(haveInited){
-			// shutdown all USB
-			if(child_pid > 0)
-			{
-				logprintf(LOG_ERR, "Closing child process");
-				kill(child_pid, SIGTERM);
-				waitpid(child_pid, NULL, 0);
-				child_pid = -1;
-				haveInited = 0;
-			}
-		}
-		
-		if (hw.fd >= 0)
-		{
-			if (close(hw.fd) < 0) logprintf(LOG_ERR, "Error closing pipe");
-			hw.fd = -1;
-		}
-		
-		logprintf(LOG_ERR, "commandir_deinit()");
-	}
-	return(1);
-}
-
-static int commandir_send(struct ir_remote *remote,struct ir_ncode *code)
-{
-	int length;
-	lirc_t *signals;
-
-	if(!init_send(remote,code)) {
-		return 0;
-	}
-
-	length = send_buffer.wptr;
-	signals = send_buffer.data;
-
-	if (length <= 0 || signals == NULL) {
-		return 0;
-	}
-	
-	int cmdir_cnt =0;
-	char cmdir_char[70];
-	
-	// Set the frequency of the signal along with the signal + transmitters
-	cmdir_char[0] = 7;
-	cmdir_char[1] = 0;
-
-	cmdir_char[2] = FREQ_HEADER_LIRC;
-	cmdir_char[3] = (remote->freq >> 24) & (0xff);
-	cmdir_char[4] = (remote->freq >> 16) & (0xff);
-	cmdir_char[5] = (remote->freq >> 8) & (0xff);
-	cmdir_char[6] = (remote->freq & 0xff);
-	
-	write(tochild_write, cmdir_char, cmdir_char[0]);
-
-	cmdir_cnt = 3;
-	
-	unsigned char * send_signals = malloc(sizeof(signals) * length + 4);
-	
-	send_signals[0] = (sizeof(lirc_t) * length + 4) & 0xff;
-	send_signals[1] = ((sizeof(lirc_t) * length + 4) >> 8) & 0xff;
-	
-	send_signals[2] = TX_LIRC_T;
-	send_signals[3] = (char)current_transmitter_mask;	
-	
-	memcpy(&send_signals[4], signals, sizeof(lirc_t) * length);
-	
-	if(write(tochild_write, send_signals, 
-		send_signals[0] + send_signals[1] * 256) < 0)
-	{
-		logprintf(LOG_ERR, "Error writing to child_write");
-	}
-	
-	free(send_signals);
-	return(length);
-}
-
-static char *commandir_rec(struct ir_remote *remotes)
-{
-	char * returnit;
-	if (!clear_rec_buffer()) return NULL;
-	returnit = decode_all(remotes);
-	return returnit;
-}
-
-static int commandir_ioctl(unsigned int cmd, void *arg)
-{
-	unsigned int ivalue;
-	char cmdir_char[5];
-	
-	switch(cmd)
-	{
-	case LIRC_SET_TRANSMITTER_MASK:
-		
-		ivalue=*(unsigned int*)arg;
-		
-		if(ivalue >= MAX_MASK) return (MAX_CHANNELS);
-		
-		/* Support the old way of setting the frequency of the signal along 
-		 * with the signal + transmitters */
-		cmdir_char[0] = 5;
-		cmdir_char[1] = 0;
-		cmdir_char[2] = CHANNEL_EN_MASK;
-		cmdir_char[3] = (unsigned char)(ivalue & 0x00FF);	// Low bits
-		cmdir_char[4] = (unsigned char)(ivalue >> 8);		// High bits
-		
-		write(tochild_write, cmdir_char, cmdir_char[0]);
-
-		return (0);
-		
-	default:
-		logprintf(LOG_ERR, "Unknown ioctl - %d", cmd);
-		return(-1);
-	}
-	
-	return 1;
-}
-
-static lirc_t commandir_readdata(lirc_t timeout)
-{
-	lirc_t code = 0;
-	struct timeval tv = {0, timeout};
-	fd_set fds;
-
-	FD_ZERO(&fds);
-	FD_SET(hw.fd, &fds);
-
-	/* attempt a read with a timeout using select */
-	if (select(hw.fd + 1, &fds, NULL, &fds, &tv) > 0)
-		/* if we failed to get data return 0 */
-		if (read(hw.fd, &code, sizeof(lirc_t)) <= 0)
-                        commandir_deinit();
-	return code;
-}
-
-/***  End of parent fork / LIRC accessible functions  */
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/***  CommandIR Client Process Functions (Handle all USB operations)
- */
- 
-int channels_space_available[MAX_CHANNELS]; 
-int channels_space_updated = 0; // last updated time
-
-char * signalq[MAX_SIGNALQ];	// how many signals can be queued
-int signalq_len[MAX_SIGNALQ];
-int signalq_bitmask[MAX_SIGNALQ];
-unsigned int signalq_frequency[MAX_SIGNALQ];
-
-int top_signalq = -1;
-int next_signalq_per_channel[MAX_CHANNELS];	
-
-unsigned char commandir_tx_start[MAX_CHANNELS*4];
-unsigned char commandir_tx_end[MAX_CHANNELS*4];
-unsigned char commandir_tx_available[MAX_CHANNELS];
-unsigned char lastSendSignalID[MAX_CHANNELS];
-unsigned char commandir_last_signal_id[MAX_CHANNELS];
-
-
-// Global variables to convert channel masks to consistant easier formats
-unsigned char hash_mask[MAX_CHANNELS];
-unsigned char selected_channels[MAX_CHANNELS];
-unsigned char total_selected_channels = 0;
-int shutdown_pending = 0;
-int read_delay = WAIT_BETWEEN_READS_US;
-int insert_fast_zeros = 0;
-
-int rx_hold = 0;
-
-// This is the only one for pre-pipelinging
-int pre_pipeline_emitter_mask = 0x000f; // default tx on only first CommandIR
-
-
-static void pipeline_check()
-{
-	/* Transmit from the pipeline if it's time and there's space
-	 * what's available should now be updated in the main_loop
-	 */
-	
-	int i,j,k;
-	
-	i=0;
-	if(top_signalq < 0) return;
-	
-	while(i <= top_signalq)
-	{
-
-		// Are ALL the channels this signal should TX on currently available?
-		int oktosend = 1;
-		set_hash_mask( signalq_bitmask[ i ] );
-		for(j = 0; j<total_selected_channels; j++)
-		{
-			if(commandir_tx_available[ selected_channels[j] ] < 
-				(36 + (signalq_len[ i ])/sizeof(lirc_t)))	
-			{
-				oktosend = 0;
-				break;
-			}
-		}
-		
-		if(oktosend)
-		{
-			// great, TX this on all the channels.
-			
-			commandir_transmit(signalq[ i ], signalq_len[ i ], signalq_bitmask[ i ], signalq_frequency[ i ]);
-			
-			for(j = 0; j<total_selected_channels; j++)
-			{
-				/*  commandir_tx_available[ selected_channels[j] ] -= 
-					(64 + (signalq_len[ i ])/sizeof(lirc_t));  */
-				commandir_tx_available[ selected_channels[j] ] = 0; 
-			}
-			
-			/* Free up the memory, and see if there are new next_signalq's 
-			 * (any more for this channel to TX)
-			 */
-			free(signalq[i]);
-			
-			for(k=i; k<top_signalq; k++)
-			{
-				signalq[k] = signalq[k+1];
-				signalq_len[k] = signalq_len[k+1];
-				signalq_bitmask[k] = signalq_bitmask[k+1];
-				signalq_frequency[k] = signalq_frequency[k+1];
-			}
-			top_signalq--;
-		}
-		else
-		{
-			i++;
-		}
-	}
-}
-
-static int get_bit(int bitnum)
-{
-	int r = 1;
-	return r << bitnum; // bit 0 is 1, bit 1 is 10, bit 2 is 100...
-}
-
-static void add_to_tx_pipeline(unsigned char *buffer, int bytes, 
-	int channel_mask, unsigned int frequency)
-{
-	/* *buffer points to a buffer that will be OVERWRITTEN; malloc our copy.
-	 * buffer is a LIRC_T packet for CommandIR 
-	 */
-	top_signalq++;
-	if(top_signalq > MAX_SIGNALQ)
-	{
-		logprintf(LOG_ERR, "Too many signals in queue: > %d", MAX_SIGNALQ);
-		return;
-	}
-	
-	signalq[top_signalq] = malloc(bytes);
-	
-	signalq_len[top_signalq] = bytes;
-	signalq_bitmask[top_signalq] = channel_mask;
-	signalq_frequency[top_signalq] = frequency;
-	
-	lirc_t *oldsignal, *newsignal;
-	int x, pulse_now = 1;
-	int projected_signal_length;
-	short aPCAFOM = 0;
-	float afPCAFOM = 0.0;
-	int difference = 0;
-					
-	afPCAFOM = (6000000.0 / ((frequency > 0) ? frequency : DEFAULT_FREQ)  ) ; 
-	aPCAFOM = afPCAFOM;
-	
-	// Trim off mid-modulation pulse fragments, add to space for exact signals
-	for(x=0; x<(bytes/sizeof(lirc_t)); x++)
-	{
-		oldsignal = (lirc_t *)&buffer[x*sizeof(lirc_t)];
-		newsignal = (lirc_t *)signalq[top_signalq];
-		newsignal += x;
-		
-		if(pulse_now==1){
-			projected_signal_length =  
-				(((int)( (*oldsignal * 12)/( afPCAFOM ) ))  * aPCAFOM) / 12;
-			difference = *oldsignal - projected_signal_length;
-			// take off difference plus 1 full FOM cycle
-			*newsignal = *oldsignal - difference - (aPCAFOM / 12);	
-			
-		}
-		else
-		{
-			if(difference != 0)
-			{
-				// Add anything subtracted from the pulse to the space
-				*newsignal = *oldsignal + difference + (aPCAFOM / 12);
-				difference = 0;
-			}
-		
-		}
-		
-		pulse_now++;
-		if(pulse_now > 1) pulse_now = 0;
-	}
-	
-	return;
-}
-
-static void recalc_tx_available(int which_commandir)
-{
-	int i;
-	int length = 0;
-	static int failsafe = 0;
-	
-	if(lastSendSignalID[which_commandir] != 
-		commandir_last_signal_id[which_commandir])
-	{
-		/* INNOVATIONONE_FLAG:REMOVE  This will be removed pending testing
-		 * for a future release
-		 */
-		if(failsafe++ < 1000)
-		{
-			return;
-		}
-		logprintf(LOG_ERR, "Error: required the failsafe");
-	}
-	
-	failsafe = 0;
-	for(i=which_commandir*4; i<((which_commandir+1)*4); i++)
-	{
-		length = commandir_tx_end[i] - commandir_tx_start[i];
-		if(length < 0) length += 0xff;
-		
-		if(commandir_tx_available[i] < 0xff - length)
-			commandir_tx_available[i] = 0xff - length;
-			
-	}
-}
-
-static void set_hash_mask(int channel_mask) // eg, 8
-{
-	// bitwise set of hash_mask for easier coding...
-	int i,j;
-	j=channel_mask;
-	total_selected_channels = 0;
-	for(i=0; i<MAX_CHANNELS; i++)
-	{
-		hash_mask[i] = j & 0x01;
-		j = j >> 1;
-		if(hash_mask[i])
-			selected_channels[total_selected_channels++] = i;
-	}
-}
-
-
-static void commandir_transmit(char *buffer, int bytes, int bitmask, 
-	unsigned int frequency)
-{
-	/*** Send a TX command to 1 or more CommandIRs.
-	 * Keep in mind: TX frequency, TX channels, TX signal length, 
-	 * which CommandIR, & what hardware version
-	 */
-	
-	int send_status;
-	unsigned char packet[TX_BUFFER_SIZE];
-	/* So we know where there should be gaps between signals and more 
-	 * importantly, where there shouldn't be
-	 */
-	static char signalid = 1;	
-	
-	/* Depending on the tx channels, then depending on what hardware it is, 
-	 * set the freq if needed, and send the buffer with the channel header 
-	 * that's right for that CommandIR
-	 */
-	
-	int devicenum = 0;
-	int sent = 0, tosend = 0;
-	unsigned char mini_tx_mask = 0;
-	lirc_t * signals;	// have bytes/sizeof(lirc_t) signals
-	signals = (lirc_t *)buffer;
-	int total_signals = 0;
-	int i;
-	char cmdir_char[66];
-	int which_signal = 0;
-	
-	total_signals = bytes / sizeof(lirc_t);
-	
-	setEmitterMask(bitmask);
-	
-	for(devicenum = 0; devicenum < device_count; devicenum++)
-	{
-		// Do we transmit on any channels on this device?
-		if(channels_en[ devicenum ])
-		{
-			which_signal = 0;
-			switch(open_commandir_devices[ tx_order[devicenum] ].hw_type)
-			{
-				case HW_COMMANDIR_2:
-					
-					mini_tx_mask = 0;
-					// Short enough loop to unroll
-					if(channels_en[ devicenum ] & 1) mini_tx_mask |= 0x10;
-					if(channels_en[ devicenum ] & 2) mini_tx_mask |= 0x20;
-					if(channels_en[ devicenum ] & 4) mini_tx_mask |= 0x40;
-					if(channels_en[ devicenum ] & 8) mini_tx_mask |= 0x80;
-					
-					packet[1] = TX_COMMANDIR_II;
-					packet[2] = mini_tx_mask;
-					
-					short PCAFOM = 0;
-					float fPCAFOM = 0.0;
-					
-					if(bytes/sizeof(lirc_t) > 255)
-					{
-						logprintf(LOG_ERR, "Error: signal over max size");
-						continue; 
-					}
-					
-					fPCAFOM = (6000000 / ((frequency > 0) ? frequency : 
-						DEFAULT_FREQ)  ) ; 
-					PCAFOM = fPCAFOM;
-					
-					lastSendSignalID[  tx_order[devicenum]   ] = packet[5] = (getpid() + signalid++) + 1;	
-					
-					packet[4] = PCAFOM & 0xff;
-					packet[3] = (PCAFOM >> 8) & 0xff;					
-					
-					short packlets_to_send = 0, sending_this_time = 0;
-					
-					packlets_to_send = bytes / sizeof(lirc_t);
-					
-					int attempts;
-					for(attempts = 0; attempts < 10; attempts++)
-					{
-					
-						if((packlets_to_send*3 + 7) > open_commandir_devices[ tx_order[devicenum] ].endpoint_max[1])
-						{
-							sending_this_time = open_commandir_devices[ tx_order[devicenum] ].endpoint_max[1]/3 - 3;
-						}
-						else
-						{
-							sending_this_time = packlets_to_send;
-						}
-						int sending;
-
-						for(i=0; i<sending_this_time; i++)
-						{
-							sending = signals[which_signal++];
-							
-							packet[i*3+7] = sending >> 8; // high1
-							packet[i*3+8] = sending & 0xff; // low
-							packet[i*3+9] = sending >> 16 & 0xff; // high2
-						}
-						
-						packet[0] = (sending_this_time * 3 + 7);
-						packet[6] = (sending_this_time == packlets_to_send)  ? 0xcb :  0x00;
-						
-						send_status=usb_bulk_write(
-							open_commandir_devices[ tx_order[devicenum] ].cmdir_udev, 
-							2, // endpoint2
-							(char*)packet,
-							packet[0], 
-							USB_TIMEOUT_MS);
-						if(send_status < 0)
-						{
-							// Error transmitting.
-							hardware_scan();
-							return;
-						}
-						
-						packlets_to_send -= ((send_status - 7) / 3);
-						if(!packlets_to_send)
-						{
-							// "No more packlets to send\n"
-							break;
-						}
-					}
-					continue; // for transmitting on next CommandIR device
-					
-			
-				case HW_COMMANDIR_MINI:
-					mini_tx_mask = 0;
-					if(channels_en[ devicenum ] & 1) mini_tx_mask |= 0x80;
-					if(channels_en[ devicenum ] & 2) mini_tx_mask |= 0x40;
-					if(channels_en[ devicenum ] & 4) mini_tx_mask |= 0x20;
-					if(channels_en[ devicenum ] & 8) mini_tx_mask |= 0x10;
-					
-					char freqPulseWidth = DEFAULT_PULSE_WIDTH;
-					
-					freqPulseWidth = (unsigned char)((1000000 / 
-						((frequency > 0) ? frequency: DEFAULT_FREQ)  ) / 2);
-					
-					if(freqPulseWidth == 0)
-					{
-						freqPulseWidth = DEFAULT_PULSE_WIDTH;
-					}
-					
-					if(mini_freq[ tx_order[devicenum] ] != freqPulseWidth)
-					{
-						// Update the CommandIR Mini's next tx frequency
-						cmdir_char[0] = FREQ_HEADER;
-						cmdir_char[1] = freqPulseWidth;
-						cmdir_char[2] = 0;
-						mini_freq[ tx_order[devicenum] ] = freqPulseWidth;
-						send_status=usb_bulk_write(
-							open_commandir_devices[ tx_order[devicenum] ].cmdir_udev, 
-							2, // endpoint2
-							cmdir_char,
-							2, // 2 bytes
-							USB_TIMEOUT_MS);
-						if(send_status < 2)
-						{
-							// Error transmitting.
-							hardware_scan();
-							return ;
-						}
- 					}
-					
-					unsigned int mod_signal_length=0;
-					
-					cmdir_char[0] = TX_HEADER_NEW;
- 					cmdir_char[1] = mini_tx_mask;
-					
-					unsigned int hibyte, lobyte;
-
-					sent = 0;
-					which_signal = 0;
-					while(sent < (bytes / sizeof(lirc_t) * 2 ) )
-					{
- 						tosend = (bytes / sizeof(lirc_t) * 2 ) - sent;
-						
-						if(tosend > (MAX_HW_MINI_PACKET - 2))
-						{
-							tosend = MAX_HW_MINI_PACKET - 2;
-						}
-						
-						for(i=0;i<(tosend/2);i++) // 2 bytes per CommandIR pkt
-						{
-							mod_signal_length = signals[which_signal++] >> 3;
-							hibyte = mod_signal_length/256;
-							lobyte = mod_signal_length%256;
-							cmdir_char[i*2+3] = lobyte;
-							cmdir_char[i*2+2] = hibyte;
-						}
-
-						send_status=usb_bulk_write(
-							open_commandir_devices[ tx_order[devicenum] ].cmdir_udev, 
-							2, // endpoint2
-							cmdir_char,
-							tosend + 2, 
-							USB_TIMEOUT_MS);
-						if(send_status < 1)
-						{
-							// Error transmitting.
-							hardware_scan();
-							return;
-						}
-						sent += tosend;
-					} // while unsent data
-					continue; // for transmitting on next CommandIR device
-				default:
-					logprintf(LOG_ERR, "Unknown hardware: %d", 
-						open_commandir_devices[tx_order[devicenum]].hw_type);
-			} // hardware switch()
-		} // if we should tx on this device
-	} // for each device we have
-}
-
-
-static void commandir_child_init()
-{
-	alarm(0);
-	signal(SIGTERM, shutdown_usb);
-	signal(SIGPIPE, SIG_DFL);
-	signal(SIGINT, shutdown_usb);
-	signal(SIGHUP, SIG_IGN);
-	signal(SIGALRM, SIG_IGN);
-	
-	logprintf(LOG_ERR, "Child Initializing CommandIR Hardware");
-	
-	usb_init();
-	int i;
-	for(i=0;i<MAX_CHANNELS;i++)
-	{
-		next_signalq_per_channel[i] = -1;
-		channels_en[i] = 0xff;
-	}
-/*	
-	// Check kernel version: support fast decoding
-	char checkV[] = {0,0,0,0,0,0,0,0,0,0};
-	FILE * checkfile;
-	int kernel_major = 0, kernel_minor = 0;
-	
-	checkfile=fopen("/proc/sys/kernel/osrelease", "r");
-	if(checkfile!=NULL)
-	{
-		fgets(checkV, 7, checkfile);
-		printf("Checking: %s.\n", checkV);
-		printf("Version checking %s.\n", &checkV[4]);
-		kernel_major = atoi(&checkV[2]);
-		kernel_minor = atoi(&checkV[4]);
-		printf("Major is: %d, minor is %d.\n", kernel_major, kernel_minor);
-		fclose(checkfile);
-	}
-	
-	if(kernel_major < 6){
-		insert_fast_zeros = 0;
-		logprintf(LOG_ERR, "Fast decoding disabled");
-	}
-	else
-	{
-		if(kernel_minor <= 24)
-		{
-			logprintf(LOG_ERR, "Fast decoding enabled (1)");
-			insert_fast_zeros = 1;
-		}
-		else
-		{
-			logprintf(LOG_ERR, "Fast decoding enabled");
-			insert_fast_zeros = 2;
-		}
-	}*/
-	hardware_scan();
-}
-
-static void hardware_disconnect(int commandir_spot)
-{
-	/* We had a read/write error, try disconnecting it and force _scan to 
-	 * reconnect - otherwise we may get perpetual read/write errors
-	 */
-	
-	int x;
-	
-	//	reset the hash so we don't try and disconnect this device again
-	//  device_count is decremented here
-	cleanup_commandir_dev(commandir_spot);
-	
-	raise_event(COMMANDIR_UNPLUG_1 + commandir_spot);
-	
-	/* Cases are:
-	removing device 0 when there's no more device (do nothing)
-	removing device < MAX when there's still 1+ devices (patch up)
-	removing device==MAX when there's more devices (do nothing)
-	*/
-	
-	// new device count-- from cleanup (if device_count > 0 AND commandir removed isn't 0 or max)
-	if( (device_count > 0) && (commandir_spot != device_count) )
-	{
-		/* It wasn't the top device removed, and there's 
-			* more than 1 device, so we have some vars to patch up
-			*/
-		for(x=commandir_spot; x<(device_count); x++)
-		{
-			channels_en[x] = channels_en[x+1];
-			mini_freq[x] = mini_freq[x+1];
-			commandir_last_signal_id[x] = commandir_last_signal_id[x+1];
-			lastSendSignalID[x] = lastSendSignalID[x+1];
-			memcpy(&open_commandir_devices[x], 
-				&open_commandir_devices[x+1], 
-				sizeof(struct commandir_device));	
-		}
-	
-	// Reset the TOP one that was just removed:
-		channels_en[(int)device_count] = 0x0f;
-		mini_freq[(int)device_count] = -1;
-		commandir_last_signal_id[(int)device_count] = 0;
-		lastSendSignalID[(int)device_count] = 0;
-		open_commandir_devices[(int)device_count].cmdir_udev = 0;
-		open_commandir_devices[(int)device_count].bus = 0;
-		open_commandir_devices[(int)device_count].busdev = 0;
-		open_commandir_devices[(int)device_count].interface = 0; 
-		open_commandir_devices[(int)device_count].hw_type = 0;
-		open_commandir_devices[(int)device_count].hw_revision = 0;
-		open_commandir_devices[(int)device_count].hw_subversion = 0;
-		
-	}
-	
-	if(commandir_rx_num>=commandir_spot)
-	{
-		commandir_rx_num--;	
-	}
-
-	hardware_setorder();
-}
-
-static void hardware_setorder(){
-	/* Tried to order to the detected CommandIRs based on bus and dev ids
-		* so they remain the same on reboot.  Adding a new device in front
-		* will mean it becomes device 0 and emitters or scripts must be fixed
-		* Need a different param, these still change. 
-		*/
-		
-	tx_order[0] = tx_order[1] = tx_order[2] = tx_order[3] = 0; 
-	mini_freq[0] = mini_freq[1] = mini_freq[2] = mini_freq[3] = -1;
-	int largest = 0;
-	int tmpvals[4];
-	int x, tx_spots, find_spot;
-	
-	for(x=0; x<device_count; x++)
-	{
-		tmpvals[x] = 256 * open_commandir_devices[x].bus + 
-			open_commandir_devices[x].busdev;
-	}
-	
-	for(tx_spots = 0; tx_spots < device_count; tx_spots++)
-	{
-		largest = 0;
-		for(find_spot = 0; find_spot < device_count; find_spot++)
-		{
-			if(tmpvals[find_spot] > tmpvals[largest])
-			{
-				largest = find_spot;
-			}
-		}
-		tx_order[device_count - tx_spots - 1 ] = largest;
-		tmpvals[largest] = 0;
-	}
-	
-	
-	// The formerly receiving CommandIR has been unplugged
-	if(commandir_rx_num < 0)
-	{
-		if(device_count > 0)
-			commandir_rx_num = 0;
-	}
-	
-	// Clear all pending signals
-	for(x=top_signalq; x >= 0; x--)
-	{
-		free(signalq[top_signalq]);
-	}
-	top_signalq = -1;
-	
-}
-
-static void cleanup_commandir_dev(int spotnum)
-{
-	int location, devnum;
-
-	location = open_commandir_devices[spotnum].location;
-	devnum = open_commandir_devices[spotnum].devnum;
-
-  open_bus_hash[ location ][ devnum ] = 0;
-	device_count--;	
-  
-	if(open_commandir_devices[spotnum].cmdir_udev==NULL)
-	{
-		return;
-	}
-	usb_release_interface(open_commandir_devices[spotnum].cmdir_udev, 
-		open_commandir_devices[spotnum].interface);
-	usb_close(open_commandir_devices[spotnum].cmdir_udev);
-	open_commandir_devices[spotnum].cmdir_udev = NULL;
-}
-
-
-static void hardware_scan()
-{
-	// Scan for hardware changes; libusb doesn't notify us...
-	unsigned char located = 0;
-	struct usb_bus *bus = 0;
-	struct usb_device *dev = 0;
-	
-	int scan_find[MAX_DEVICES][2]; // [0]=bus#, [1]=busdev#
-	unsigned char found = 0;
-	// Using hash for performance instead of memory conservation (+1k)
-	unsigned char still_found[USB_MAX_BUSES][USB_MAX_BUSDEV];
-	unsigned changed = 0;
-	int find_spot = 0;
-	
-	usb_find_busses();
-	usb_find_devices();
- 	
- 	for (bus = usb_busses; bus; bus = bus->next)
-	{
-		for (dev = bus->devices; dev; dev = dev->next)	
-		{
-			if (dev->descriptor.idVendor == USB_CMDIR_VENDOR_ID) 
-			{
-				located++;
-				// Do we already know about it?
-				if(!open_bus_hash[bus->location][dev->devnum]){
-				  // Then it's new, open it if we have a spot available
-				  for(find_spot=0; find_spot < MAX_DEVICES; find_spot++)
-				  {
-					if(open_commandir_devices[find_spot].cmdir_udev == NULL)
-					{
-					  // Try to open here
-					  open_commandir_devices[find_spot].cmdir_udev = usb_open(dev);
-					  if(open_commandir_devices[find_spot].cmdir_udev == NULL)
-					  {
-						logprintf(LOG_ERR, 
-						  "Error opening commandir - bus %d, device %d.",
-						  bus, dev);
-						  break;
-						}
-						else 
-						{
-						  
-						// Try to set configuration; not needed on Linux
-// 						int usb_set_configuration(usb_dev_handle *dev, int configuration);
- 							int r = 0;
-// 							r = usb_set_configuration(open_commandir_devices[find_spot].cmdir_udev, 1);
-// 						printf("Set_configuration returned %d.\n", r);
-						  
-						  r = usb_claim_interface(
-						  	open_commandir_devices[find_spot].cmdir_udev,0);
-						  if(r < 0)
-						  {
-						  	cleanup_commandir_dev(find_spot);
-								logprintf(LOG_ERR, 
-								"Unable to claim CommandIR - Is it already busy?"
-								);
-								logprintf(LOG_ERR, 
-								"Try 'rmmod commandir' or check for other lircds"
-								);
-								break;
-						  }
-						  else 
-						  {
-							// great, it's ours
-							open_commandir_devices[find_spot].location = bus->location;
-							open_commandir_devices[find_spot].devnum = dev->devnum;
-							open_bus_hash[bus->location][dev->devnum] = 1;
-							open_commandir_devices[find_spot].bus = bus->location;
-							open_commandir_devices[find_spot].busdev = dev->devnum;
-							scan_find[++found][0] = bus->location;
-							scan_find[found][1] = dev->devnum;
-							device_count++;
-							changed++;
-							still_found[bus->location][dev->devnum] = 1;	
-							 
-							struct usb_config_descriptor *config = &dev->config[0];
-							struct usb_interface *interface = &config->interface[0];
-							struct usb_interface_descriptor *ainterface = &interface->altsetting[0];
-/*						struct usb_endpoint_descriptor *endpoint = &ainterface->endpoint[2];*/
-							
-							int i;// Load wMaxPacketSize for each endpoint; subtract 0x80 
-										// for double-buffer bit
-							for (i = 0; i < ainterface->bNumEndpoints; i++)
-							{
-								open_commandir_devices[find_spot].endpoint_max[ 
-									(ainterface->endpoint[i].bEndpointAddress >= 0x80) 
-									? (ainterface->endpoint[i].bEndpointAddress-0x80) 
-									: (ainterface->endpoint[i].bEndpointAddress)] 
-									= ainterface->endpoint[i].wMaxPacketSize;
-							}
-							
-							// compensate for double buffer:
-							open_commandir_devices[find_spot].endpoint_max[1] *= 2;
-							
-							// Always use the latest to RX:
-							commandir_rx_num = find_spot;	
-							
-							switch(dev->descriptor.iProduct)
-							{
-							 case 2:
-							 	logprintf(LOG_ERR, "Product identified as CommandIR II");
-							 	open_commandir_devices[find_spot].hw_type = HW_COMMANDIR_2;
-							  open_commandir_devices[find_spot].hw_revision = 0;
-							  open_commandir_devices[find_spot].hw_subversion = 0;
-							  
-							  int send_status = 0, tries=20;
-							  static char get_version[] = {2, GET_VERSION};
-
-								send_status = 4;	// just to start the while()
-								
-								while(tries--){
-									usleep(USB_TIMEOUT_US);	// wait a moment
-										
-									// try moving this below:
-									send_status = usb_bulk_write(
-									open_commandir_devices[find_spot].cmdir_udev, 
-										2, // endpoint2
-										get_version,
-										2, 
-										1500);
-									if(send_status < 0)
-									{
-										logprintf(LOG_ERR, 
-											"Unable to write version request - Is CommandIR busy? Error %d", send_status);
-										break;
-									}
-									
-									send_status = usb_bulk_read(
-										open_commandir_devices[find_spot].cmdir_udev,
-										1,
-										(char *)commandir_data_buffer,
-										open_commandir_devices[ find_spot ].endpoint_max[1],
-										1500);
-										
-									if(send_status < 0)
-									{
-										logprintf(LOG_ERR, 
-											"Unable to read version request - Is CommandIR busy? Error %d", send_status);
-										cleanup_commandir_dev(find_spot);
-										break;
-									}
-									if(send_status==3)
-									{
-										if(commandir_data_buffer[0]==GET_VERSION)
-										{
-											// Sending back version information.
-											open_commandir_devices[find_spot].hw_revision = 
-												commandir_data_buffer[1];
-											open_commandir_devices[find_spot].hw_subversion = 
-												commandir_data_buffer[2];
-											logprintf(LOG_ERR, "Hardware revision is %d.%d.", 
-												commandir_data_buffer[1], commandir_data_buffer[2]);
-											break;
-										}
-										else
-										{
-											continue;
-										}
-									}
-									
-							}
-							break;
-							default:
-								logprintf(LOG_ERR, "Product identified as CommandIR Mini");
-   							open_commandir_devices[find_spot].hw_type = 
-								HW_COMMANDIR_MINI;
-							}
-							
-							if(open_commandir_devices[find_spot].hw_type == 
-								HW_COMMANDIR_UNKNOWN)
-							{
-								logprintf(LOG_ERR, "Product UNKNOWN - cleanup");
-								cleanup_commandir_dev(find_spot);
-							}
-							else
-							{
-								lastSendSignalID[find_spot] = 0;
-								commandir_last_signal_id[find_spot] = 0;
-							}
-							break; // don't keep looping through find_spot
-							} // claim?
-						}// open?
-					}// spot available?
-				 }// for(spots)
-				} // if we haven't seen it before
-				else
-				{
-					still_found[bus->location][dev->devnum] = 1;
-				}
-			}// if it's a CommandIR
-		}// for bus dev's
-	}// for bus's
-	
-	if(!located)
-	{
-		logprintf(LOG_ERR, "No CommandIRs found");
-	}
-	
-	/* Check if any we currently know about have been removed
-	 * (Usually, we get a read/write error first)
-	 */
-	for(find_spot = 0; find_spot < MAX_DEVICES; find_spot++)
-	{
-		if(open_commandir_devices[find_spot].cmdir_udev != NULL)
-		{
-			if(still_found[open_commandir_devices[find_spot].location]
-				[open_commandir_devices[find_spot].devnum] != 1)
-			{
-				logprintf(LOG_ERR, "Commandir %d removed from [%d][%d].", find_spot,open_commandir_devices[find_spot].location, open_commandir_devices[find_spot].devnum);
-				raise_event(COMMANDIR_UNPLUG_1 + find_spot);
-				hardware_disconnect(find_spot);
-				commandir_rx_num = -1;
-				changed++;
-			}
-		}
-	}
-	
-	if(changed)
-	{
-		hardware_setorder();
-		raise_event(COMMANDIR_REORDERED);
-	}
-	
-}
-
-
-// Shutdown everything and terminate 
-static void shutdown_usb()
-{
-	int x;
-	
-	// Wait for any TX to complete before shutting down
-	if(top_signalq >= 0)
-	{
-		shutdown_pending++;
-		logprintf(LOG_ERR, "Waiting for signals to finish transmitting before shutdown");
-		return;
-	}
-	
-	for(x=0; x<MAX_DEVICES; x++)
-	{
-		if(open_commandir_devices[x].cmdir_udev )
-		{
-			usb_release_interface(open_commandir_devices[x].cmdir_udev, 
-				open_commandir_devices[x].interface);
-			usb_close(open_commandir_devices[x].cmdir_udev);
-		}
-	}
-	logprintf(LOG_ERR, "CommandIR driver child cleaned up and exiting");
-	raise_event(COMMANDIR_STOPPED);
-
-	_exit(EXIT_SUCCESS);
-}
-
-static void commandir_read_loop()
-{
-	// Read from CommandIR, Write to pipe
-	
-	unsigned char commands[MAX_COMMAND];
-	int curCommandStart = 0;
-	int curCommandLength = 0;
-	int bytes_read;
-	unsigned char periodic_checks = 0;
-	static unsigned char rx_decode_led[7] = {7, PROC_SET, 0x40, 0, 0,4, 2}; 
-	static unsigned char init_led[7] = {7, PROC_SET, 0x00, 0x01, 3, 55, 2}; 
-	static unsigned char deinit_led[7] = {7, PROC_SET, 0x0, 0x02, 3, 45, 2}; 
-	static unsigned int LIRC_frequency = 38000; 
-
-	int send_status = 0; 
-	int i = 0;
-	int tmp = 0;
-	int tmp2 = 0;
-
-	raise_event(COMMANDIR_READY);
-	
-	for(;;){
-		/*** This is the main loop the monitors control and TX events from 
-		  * the parent, and monitors the CommandIR RX buffer
-		  */
-		
-		curCommandStart = 0;
-		curCommandLength = 0;
-		bytes_read = read(tochild_read, commands, MAX_COMMAND); 
-		
-		if(shutdown_pending > 0 && (top_signalq==-1))
-			shutdown_usb();
-		
-		if(bytes_read > 0){
-		
-			while(curCommandStart < bytes_read){
-				curCommandLength = commands[curCommandStart] + 
-					commands[curCommandStart + 1] * 256;
-				
-				switch(commands[curCommandStart + 2]){	// the control value
-					case DEINIT_HEADER_LIRC:
-						for(i=0; i<device_count; i++)
-						{
-						 if(open_commandir_devices[tx_order[i]].hw_type ==
-						  HW_COMMANDIR_2)
-						 {
-						  if(open_commandir_devices[tx_order[i]].cmdir_udev > 0)
-						  {
-							send_status=usb_bulk_write(
-								open_commandir_devices[tx_order[i]].cmdir_udev, 
-								2, // endpoint2
-								(char*)deinit_led,
-								7, // bytes
-								USB_TIMEOUT_MS);
-						  }
-						  rx_hold = 1;	// Put a hold on RX, but queue events
-						 }
-						}
-						
-						break;
-					case INIT_HEADER_LIRC:
-						for(i=0; i<device_count; i++)
-						{
-						 if(open_commandir_devices[tx_order[i]].hw_type == 
-							HW_COMMANDIR_2)
-						 {
-						 if(open_commandir_devices[tx_order[i] ].cmdir_udev > 0)
-						  {
-							send_status=usb_bulk_write(
-								open_commandir_devices[tx_order[i] ].cmdir_udev,
-								2, // endpoint2
-								(char*)init_led,
-								7, // bytes
-								USB_TIMEOUT_MS);
-						  }
-						  rx_hold = 0;	// Resume RX after queue events
-						 }
-						}
-						break;
-					case RXDECODE_HEADER_LIRC:
-					  //	Successful RX decode: show it on the light.
-					  if(open_commandir_devices[commandir_rx_num].cmdir_udev > 0)
-					  {
-						send_status=usb_bulk_write(
-							open_commandir_devices[commandir_rx_num].cmdir_udev,
-							2, // endpoint2
-							(char*)rx_decode_led,
-							7, // bytes
-							USB_TIMEOUT_MS);
-
-					  }
-					  break;
-
-					case FREQ_HEADER_LIRC:
-						LIRC_frequency = (commands[curCommandStart + 6] & 0x000000ff) | 
-							((commands[curCommandStart + 5] << 8) & 0x0000ff00) | 
-							((commands[curCommandStart + 4] << 16) & 0x00ff0000) | 
-							((commands[curCommandStart + 3] << 24) & 0xff000000);
-						if(!LIRC_frequency)
-							LIRC_frequency = DEFAULT_FREQ;
-						break;
-					case TX_HEADER_NEW:
-					case TX_LIRC_T:
-						if(curCommandLength==64)
-						{
-							if(check_irsend_commandir(&commands[curCommandStart + 4]))
-							{
-								break; // it's a command for us
-							}
-						}
-						add_to_tx_pipeline(&commands[curCommandStart + 4], 
-							curCommandLength - 4, pre_pipeline_emitter_mask, LIRC_frequency);
-						break;
-						
-					case CHANNEL_EN_MASK:
-						pre_pipeline_emitter_mask = (commands[curCommandStart+4] << 8) |
-							 commands[curCommandStart+3];
-						break;
-				}
-				curCommandStart += curCommandLength;
-			
-			}
-		}
-		// If we're receiving, make sure the commandir buffer doesn't overrun
-		if(commandir_read() < 20 )
-			tmp = 2;
-		while(tmp-- > 0)
-		{
-			tmp2 = commandir_read();
-// 		printf("commandir_read() (%d) returning %d.\n", tmp,tmp2);
-		}
-		if(tmp2 < 20 ){
-			// once in a while, but never while we're retreaving a signal
-			if(++periodic_checks>100)
-			{
-				hardware_scan();
-				periodic_checks = 0;
-			}
-			else
-			{
- 				usleep(read_delay);
- 			}
-		}
-	}
-
-}
-
-static int check_irsend_commandir(unsigned char *command)
-{
-	// decode the code like LIRC would do, and take an action
-	int commandir_code = 0;
-	
-	commandir_code = commandir_decode((char*)command);
-	
-	if(commandir_code > 0xef)
-	{
-		// It's a settransmitters command
-		int channel = commandir_code & 0x0f;
-		
-		// can only set 1 bit from here so far..,
-		pre_pipeline_emitter_mask = 0x0001 << channel;	
-		
-		return commandir_code;
-	}
-	
-	switch(commandir_code)
-	{
-		case 0x53:
-			read_delay /= 2;	// "faster" means less time
-			if(read_delay < MIN_WAIT_BETWEEN_READS_US)
-				read_delay = MIN_WAIT_BETWEEN_READS_US;
-			break;
-		case 0x54:
-			read_delay *= 2;	// "slower" means more time
-			if(read_delay > MAX_WAIT_BETWEEN_READS_US)
-				read_delay = MAX_WAIT_BETWEEN_READS_US;
-			break;
-	
-		case 0x09: 
-		case 0x0A:
-			logprintf(LOG_ERR, "Re-selecting RX not implemented yet");
-			break;
-			
-		case 0xe6:	//	disable-fast-decode
-			logprintf(LOG_ERR, "Fast decoding disabled");
-			insert_fast_zeros = 0;
-			break;
-			
-		case 0xe7:	//	enable-fast-decode
-		case 0xe9:	//	force-fast-decode-2
-			logprintf(LOG_ERR, "Fast decoding enabled");
-			insert_fast_zeros = 2;
-			break;
-		
-		case 0xe8:	//	force-fast-decode-1
-			logprintf(LOG_ERR, "Fast decoding enabled (1)");
-			insert_fast_zeros = 1;
-			break;
-			
-		default:
-			if(commandir_code > 0x60 && commandir_code < 0xf0)
-			{
-				int ledhigh = 0, ledlow = 0, ledprog = -1;
-				// LED Command
-				switch(commandir_code >> 4)
-				{
-					case 0x6: ledlow = 0x80; break;
-					case 0x7: ledlow = 0x40; break;
-					case 0x8: ledlow = 0x20; break;
-					case 0x9: ledlow = 0x10; break;
-					case 0xa: ledlow = 0x04; break;
-					case 0xb: ledhigh = 0x80; break;
-					case 0xc: ledlow = 0x01; break;
-					case 0xd: ledlow = 0x02; break;
-					case 0xe: ledlow = 0x08; break;
-				}
-				ledprog = (commandir_code & 0x0f) - 1;
-				
-				if( ((ledhigh + ledlow) > 0) && ledprog > -1)
-				{
-					//	Set light:
-					static unsigned char lightchange[7] = {7, 
-					PROC_SET, 0, 0, 0, 0, 3}; 
-					lightchange[2] = ledhigh;
-					lightchange[3] = ledlow;
-					lightchange[4] = ledprog;
-					int send_status = 0; 
-					
-					send_status=usb_bulk_write(
-						open_commandir_devices[tx_order[0]].cmdir_udev, 
-						2, // endpoint2
-						(char *)lightchange,
-						7, // bytes
-						USB_TIMEOUT_MS);
-				}
-				
-				return commandir_code; // done
-			}
-		
-	}
-
-	return commandir_code;
-}
-
-
-// return how many RX's were in the last receive; so we know whether to poll more frequently or not
-static int commandir_read() 
-{
-	
-	/***  Which CommandIRs do we have to read from?  Poll RX CommandIRs 
-		* regularly, but non-receiving CommandIRs should be more periodically
-		*/
-	
-	int i,j;
-	int read_received = 0;
-	int read_retval = 0;
-	int conv_retval = 0;
-	int max_read = 5;
-	static int zeroterminated = 0;
-
-	for(i=0; i<device_count; i++)
-	{
-	
-		switch(open_commandir_devices[tx_order[i]].hw_type)
-		{
-			case HW_COMMANDIR_2:
-		
-				read_retval = usb_bulk_read(
-					open_commandir_devices[ tx_order[i] ].cmdir_udev,
-					1,
-					(char *)commandir_data_buffer,
-					open_commandir_devices[ tx_order[i] ].endpoint_max[1],
-					5000);	
-					
-				if(read_retval==0)
-					break;
-				
-				if(read_retval < 1)
-				{
-					if(read_retval < 0)
-					{
-						if(read_retval == -19){
-							logprintf(LOG_ERR, "Read Error - CommandIR probably unplugged");
-						}
-						else
-						{
-							logprintf(LOG_ERR, 
-								"Didn't receive a full packet from a CommandIR II! - err %d ."
-								, read_retval);
-						}
-						hardware_disconnect(tx_order[i]);
-						hardware_scan();
-					}
-					// 0 bytes is the most frequency case; nothing to report
-
-					break;
-				} 
-				
-				if(commandir_data_buffer[0]==RX_HEADER_TXAVAIL)
-				{
-					// sending us the current tx_start, tx_end arrays, and where it's at
-					commandir_tx_start[tx_order[i]*4] = commandir_data_buffer[4];
-					commandir_tx_start[tx_order[i]*4+1] = commandir_data_buffer[3];
-					commandir_tx_start[tx_order[i]*4+2] = commandir_data_buffer[2];
-					commandir_tx_start[tx_order[i]*4+3] = commandir_data_buffer[1];
-					
-					commandir_tx_end[tx_order[i]*4] = commandir_data_buffer[8];
-					commandir_tx_end[tx_order[i]*4+1] = commandir_data_buffer[7];
-					commandir_tx_end[tx_order[i]*4+2] = commandir_data_buffer[6];
-					commandir_tx_end[tx_order[i]*4+3] = commandir_data_buffer[5];
-					
-					commandir_last_signal_id[ tx_order[i] ] = commandir_data_buffer[9];
-					
-					recalc_tx_available(tx_order[i]); 
-					pipeline_check();
-					if(top_signalq > 0)
-					{
-						read_received++;	
-					}
-					
-					// This ALSO implies there's NO MORE RX DATA.
-					lirc_t lirc_zero_buffer[2] = {0, 0};
-					
-					int tmp4 = 0;
-					if(zeroterminated>1001)
-					{
-						// Send LIRC a 0,0 packet to allow IMMEDIATE decoding
-						if(insert_fast_zeros > 0)
-						{
-							tmp4 = write(child_pipe_write, lirc_zero_buffer, sizeof(lirc_t)*insert_fast_zeros);
-						}
-						zeroterminated = 0;
-					}
-					else
-					{
-						if((zeroterminated < 1000) && (zeroterminated > 0))
-							zeroterminated += 1000;
-						if(zeroterminated > 1000)
-							zeroterminated++;
-					}
-					
-					break;
-				}
-						
-						
-				if(commandir_data_buffer[0]==RX_HEADER_EVENTS)
-				{
-					for(j=1; j<(read_retval); j++)
-					{
-						raise_event(commandir_data_buffer[j]+tx_order[i]*0x10);
-					}
-				}
-				else
-				{
-					if( (commandir_data_buffer[0]==RX_HEADER_DATA) && 
-						(commandir_rx_num==tx_order[i]) )
-					{
-						if(rx_hold==0)	// Only if we should be listening for remote cmds
-						{
-							zeroterminated = 1;
-							conv_retval = commandir2_convert_RX(
-								(unsigned short *)&commandir_data_buffer[2], 
-								commandir_data_buffer[1]);
-							read_received = conv_retval; // header
-						}
-					}
-				}
-				break;
-			
-			case HW_COMMANDIR_MINI:
-			
-				max_read = 5;
-				while(max_read--){
-					
-					read_retval = usb_bulk_read(
-						open_commandir_devices[ tx_order[i] ].cmdir_udev,
-						1,
-						(char *)commandir_data_buffer,
-						64,
-						USB_TIMEOUT_MS);
-							
-					if (!(read_retval == MAX_HW_MINI_PACKET)) 
-					{
-						if(read_retval == -19){
-							logprintf(LOG_ERR, "Read Error - CommandIR probably unplugged");
-						}
-						else
-						{
-							logprintf(LOG_ERR, 
-								"Didn't receive a full packet from a Mini! - err %d ."
-								, read_retval);
-						}
-						
-						hardware_disconnect(tx_order[i]);
-						hardware_scan();
-						break; 
-					}
-
-					
-					if ( (commandir_data_buffer[1] > 0)  && 
-						(commandir_rx_num==tx_order[i]) ) 
-					{
-						conv_retval = cmdir_convert_RX(commandir_data_buffer);
-						
-						read_received += commandir_data_buffer[1];					
-						
-						if(commandir_data_buffer[1] < 20)
-						{
-							// Lots of hardware buffer room left; don't tie up CPU
-							break;
-						}
-					}
-					else
-					{
-						break;
-					}
-				} // while; should only repeat if there's more RX data
-				
-				/* CommandIR Mini only has 1 buffer  */
-				commandir_tx_start[tx_order[i]*4] = 0;
-				commandir_tx_start[tx_order[i]*4+1] = 0;
-				commandir_tx_start[tx_order[i]*4+2] = 0;
-				commandir_tx_start[tx_order[i]*4+3] = 0;
-				
-				commandir_tx_end[tx_order[i]*4] = commandir_data_buffer[2];
-				commandir_tx_end[tx_order[i]*4+1] = commandir_data_buffer[2];
-				commandir_tx_end[tx_order[i]*4+2] = commandir_data_buffer[2];
-				commandir_tx_end[tx_order[i]*4+3] = commandir_data_buffer[2];
-				
-				/* .. and it can't pipeline... */
-				commandir_last_signal_id[i] = lastSendSignalID[i];
-				recalc_tx_available(tx_order[i]); 
-				pipeline_check();
-				break;
-			case HW_COMMANDIR_UNKNOWN:
-					break;
-		} // end switch
-	} // for each attached hardware device
-	return read_received;
-}
-
-static void setEmitterMask(int bitmask)
-{
-	channels_en[0] = bitmask & 0x0F;
-	channels_en[1] = (bitmask >> 4) & 0xfF;
-	channels_en[2] = (bitmask >> 8) & 0xfF;
-	channels_en[3] = (bitmask >> 12) & 0xfF;
-}
-
-
-static int commandir2_convert_RX(unsigned short *bufferrx, 
-	unsigned char numvalues)
-{
-	// convert hardware timestamp values to elapsed time values
-	
-	int i;
-	int curpos = 0;
-	int bytes_w = 0;
-	lirc_t lirc_data_buffer[256];	
-	
-	i=0;
-	int pca_count = 0;
-	int overflows = 0;
-	
-	while(curpos < numvalues )
-	{
-		pca_count = (bufferrx[curpos] & 0x3fff) << 2; 
-		pca_count = pca_count / 12;
-		
-		if(bufferrx[curpos] & COMMANDIR_2_OVERFLOW_MASK)
-		{
-			overflows = bufferrx[curpos+1];
-			lirc_data_buffer[i] =  pca_count + (overflows * 0xffff / 12);
-			
-			if(bufferrx[curpos] & COMMANDIR_2_PULSE_MASK)
-			{
-				lirc_data_buffer[i] |= PULSE_BIT;
-			}
-			curpos++;
-		
-		}
-		else
-		{
-			lirc_data_buffer[i] = pca_count;
-			if(bufferrx[curpos] & COMMANDIR_2_PULSE_MASK)
-			{
-				lirc_data_buffer[i] |= PULSE_BIT;
-			}
-		}
-		
-		curpos++;
-		i++;
-		if(i> 255)
-		{
-			break;
-		}
-	}
-		
- 	bytes_w = write(child_pipe_write, lirc_data_buffer, sizeof(lirc_t)*i);
-	
-	if (bytes_w < 0)
-	{
-		logprintf(LOG_ERR, "Can't write to LIRC pipe! %d", child_pipe_write);
-		return 0;
-	}	
-	
-	return bytes_w;
-}
-
-
-
-
-// Originally from lirc_cmdir.c
-static int cmdir_convert_RX(unsigned char *orig_rxbuffer)
-{
-	unsigned int num_data_values = 0;
-	unsigned int num_data_bytes = 0;
-	unsigned int asint1 = 0, asint2 = 0, overflows = 0;
-	int i;
-	int bytes_w;	// Pipe write
-	lirc_t lirc_data_buffer[256];	
-	
-
-	num_data_bytes = orig_rxbuffer[1];
-	
-	/* check if num_bytes is multiple of 3; if not, error  */
-	if (num_data_bytes%3 > 0) return -1;
-	if (num_data_bytes > 60) return -3; 
-	if (num_data_bytes < 3) return -2;
-	
-	num_data_values = num_data_bytes/3;
-	
-	asint2 = orig_rxbuffer[3] + orig_rxbuffer[4] * 0xff;
-	if(last_mc_time==-1)
-	{
-		// The first time we run there's no previous time value
-		last_mc_time = asint2 - 110000;	
-		if(last_mc_time < 0) last_mc_time+=0xffff;
-	}
-	
-	asint1 = last_mc_time;
-	overflows = orig_rxbuffer[5];
-	
-	for(i=2; i<num_data_values+2; i++)
-	{
-		if(overflows < 0xff)
-		{
-			// space
-			lirc_data_buffer[i-2] = get_time_value(asint1,
-				 asint2, overflows) - 26;
-		} 
-		else 
-		{	// pulse
-			lirc_data_buffer[i-2] = get_time_value(asint1,
-				 asint2, 0) + 26;
-			lirc_data_buffer[i-2] |= PULSE_BIT;
-		}	
-		asint1 = asint2; 
-		asint2 = orig_rxbuffer[i*3] + orig_rxbuffer[i*3+1] * 0xff;
-		overflows = orig_rxbuffer[i*3+2];	
-	}
-	last_mc_time = asint1;
-	
-	
- 	bytes_w = write(child_pipe_write, lirc_data_buffer, sizeof(lirc_t)*num_data_values);
-	
-	if (bytes_w < 0)
-	{
-		logprintf(LOG_ERR, "Can't write to LIRC pipe! %d", child_pipe_write);
-		goto done;
-	}	
-	
-done:
-	return bytes_w;
-
-}
-
-
-
-
-static unsigned int get_time_value(unsigned int firstint, 
-	unsigned int secondint, unsigned char overflow) 
-{	
-	/* get difference between two MCU timestamps, CommandIR Mini version  */
-	unsigned int t_answer = 0;
-	
-	if (secondint > firstint) 
-	{
-		t_answer = secondint - firstint + overflow*0xffff;
-	} 
-	else 
-	{
-		if (overflow > 0) 
-		{
-			t_answer = (65536 - firstint) + secondint + (overflow - 1)*0xffff - 250;
-		} 
-		else 
-		{
-			t_answer = (65536 - firstint) + secondint;
-		}
-	}
-
-	/* clamp to long signal  */
-	if (t_answer > 16000000) t_answer = PULSE_MASK;
-	return t_answer;
-}
-
-
-static void raise_event(unsigned int eventid)
-{
-	/* Raise an LIRC Event by
-	 * Generating lirc_t Pattern
-	 */
-	static lirc_t event_data[18] = {LIRCCODE_GAP, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-	int i, bytes_w;
-
-	// 	logprintf(LOG_ERR, "Raising event %d", eventid);
-	for(i=0; i<8; i++)
-	{
-		if( (eventid & 0x80) )
-		{
-			event_data[i*2+1] = signal_base[0][0];
-			event_data[i*2+2] = signal_base[0][1];
-		}
-		else
-		{
-			event_data[i*2+1] = signal_base[1][0];
-			event_data[i*2+2] = signal_base[1][1];
-		}
-		eventid = eventid << 1;
-	}
-	
- 	event_data[16] = LIRCCODE_GAP*4;
- 	
- 	bytes_w = write(child_pipe_write, event_data, sizeof(lirc_t) * 17);
-	
-	if (bytes_w < 0)
-	{
-		logprintf(LOG_ERR, "Can't write to LIRC pipe! %d", child_pipe_write);
-	}	
-	
-}
-
-static int commandir_decode(char *command)
-{
-	// Decode the signal to a number, just like LIRC; 
-	// there's probably a built-in way to do this.
-	int i;
-	int code = 0;
-	
-	lirc_t *codes;	
-	codes = (lirc_t *)command;
-	
-	for(i=0; i<15; i+=2)
-	{
-		code = code << 1;
-		if(codes[i]==100)
-			code |= 1;
-	}
-	return code;
-}
-
diff --git a/abs/core-testing/lirc-utils/hw_commandir.h b/abs/core-testing/lirc-utils/hw_commandir.h
deleted file mode 100755
index 2280f6c..0000000
--- a/abs/core-testing/lirc-utils/hw_commandir.h
+++ /dev/null
@@ -1,175 +0,0 @@
- 
-/****************************************************************************
- ** hw_commandir.h **********************************************************
- ****************************************************************************
- * 
- * Copyright (C) 1999 Christoph Bartelmus <lirc@bartelmus.de>
- * -- Original hw_default.h
- * Modified for CommandIR Transceivers, April-June 2008, Matthew Bodkin 
- *
- */
-
-#ifndef HW_COMMANDIR_H
-#define HW_COMMANDIR_H
-
-#define RX_BUFFER_SIZE 1024
-#define TX_BUFFER_SIZE 1024
-#define TX_QUEUE 1
-#define RX_QUEUE 0
-#define MAX_COMMANDIRS 4
-#define MAX_COMMAND 8192
-
-/* transmitter channel control */
-#define MAX_DEVICES		4
-#define MAX_CHANNELS    16
-#define DEVICE_CHANNELS	4
-#define MAX_MASK 		0xffff
-#define MAX_SIGNALQ		100
-
-/* CommandIR control codes */
-#define CHANNEL_EN_MASK	1
-#define FREQ_HEADER     2
-#define MCU_CTRL_SIZE   3
-#define TX_HEADER       7
-#define TX_HEADER_NEW	8
-/* New for CommandIR II  */
-
-#define READ_INPUTS		10
-#define PROC_SET		11
-#define INIT_FUNCTION	12
-#define RX_SELECT		13
-#define TX_COMMANDIR_II 14
-/* Internal to driver */
-#define TX_LIRC_T	    15
-#define FREQ_HEADER_LIRC 16
-#define RXDECODE_HEADER_LIRC 17
-#define INIT_HEADER_LIRC 18
-#define DEINIT_HEADER_LIRC 19
-#define GET_VERSION 	20
-
-#define COMMANDIR_2_PULSE_MASK 0x8000
-#define COMMANDIR_2_OVERFLOW_MASK 0x4000
-
-#define DEFAULT_PULSE_WIDTH 13
-
-#define USB_CMDIR_VENDOR_ID		0x10c4
-#define USB_CMDIR_PRODUCT_ID	0x0003
-#define USB_CMDIR_MINOR_BASE	192
-
-#define HW_COMMANDIR_MINI 	1
-#define HW_COMMANDIR_2		2
-#define HW_COMMANDIR_UNKNOWN 127
-
-#define MAX_HW_MINI_PACKET 64
-
-// CommandIR has lots of buffer room, we don't need to poll constantly
-#define USB_TIMEOUT_MS 5000
-#define USB_TIMEOUT_US 1000
-#define WAIT_BETWEEN_READS_US 10000
-#define MAX_WAIT_BETWEEN_READS_US 5000000
-#define MIN_WAIT_BETWEEN_READS_US 5000
-
-#define USB_MAX_BUSES	8
-#define USB_MAX_BUSDEV	127
-
-#define RX_HEADER_DATA 		0x01
-#define RX_HEADER_EVENTS 	0x02
-#define RX_HEADER_TXAVAIL 	0x03
-
-
-// We keep CommandIR's OPEN even on -deinit for speed and to monitor 
-// Other non-LIRC events (plugin, suspend, etc)
-#define USB_KEEP_WARM 1
-
-// CommandIR lircd.conf event driven code definitions
-#define LIRCCODE_GAP  125000
-#define JACK_PLUG_1		0x01
-#define JACK_PLUG_2		0x02
-#define JACK_PLUG_3		0x03
-#define JACK_PLUG_4		0x04
-#define JACK_PLUG_5		0x11
-#define JACK_PLUG_6		0x12
-#define JACK_PLUG_7		0x13
-#define JACK_PLUG_8		0x14
-#define JACK_PLUG_9		0x21
-#define JACK_PLUG_10	0x22
-#define JACK_PLUG_11	0x23
-#define JACK_PLUG_12	0x24
-#define JACK_PLUG_13	0x31
-#define JACK_PLUG_14	0x32
-#define JACK_PLUG_15	0x33
-#define JACK_PLUG_16	0x34
-
-#define JACK_UNPLUG_1	0x05
-#define JACK_UNPLUG_2	0x06
-#define JACK_UNPLUG_3	0x07
-#define JACK_UNPLUG_4	0x08
-#define JACK_UNPLUG_5	0x15
-#define JACK_UNPLUG_6	0x16
-#define JACK_UNPLUG_7	0x17
-#define JACK_UNPLUG_8	0x18
-#define JACK_UNPLUG_9	0x25
-#define JACK_UNPLUG_10	0x26
-#define JACK_UNPLUG_11	0x27
-#define JACK_UNPLUG_12	0x28
-#define JACK_UNPLUG_13	0x35
-#define JACK_UNPLUG_14	0x36
-#define JACK_UNPLUG_15	0x37
-#define JACK_UNPLUG_16	0x38
-
-#define SELECT_TX_INTERNAL	0x09
-#define SELECT_TX_ExTERNAL	0x0A
-
-#define SELECT_TX_ON_1		0x0D
-#define SELECT_TX_ON_2		0x1D
-#define SELECT_TX_ON_3		0x2D
-#define SELECT_TX_ON_4		0x3D
-
-#define JACK_PLUG_RX_1		0x0B
-#define JACK_UNPLUG_RX_1	0x0C
-#define JACK_PLUG_RX_2		0x1B
-#define JACK_UNPLUG_RX_2	0x1C
-#define JACK_PLUG_RX_3		0x2B
-#define JACK_UNPLUG_RX_3	0x2C
-#define JACK_PLUG_RX_4		0x3B
-#define JACK_UNPLUG_RX_4	0x3C
-
-#define COMMANDIR_PLUG_1	0x41
-#define COMMANDIR_PLUG_2	0x42
-#define COMMANDIR_PLUG_3	0x43
-#define COMMANDIR_PLUG_4	0x44
-
-#define COMMANDIR_UNPLUG_1	0x45
-#define COMMANDIR_UNPLUG_2	0x46
-#define COMMANDIR_UNPLUG_3	0x47
-#define COMMANDIR_UNPLUG_4	0x48
-
-#define COMMANDIR_REORDERED	0x50
-#define COMMANDIR_READY		0x51
-#define COMMANDIR_STOPPED	0x52
-#define COMMANDIR_POLL_FASTER	0x53
-#define COMMANDIR_POLL_SLOWER	0x54
-
-#define SETTRANSMITTERS_1	0xf0
-#define SETTRANSMITTERS_2	0xf1
-#define SETTRANSMITTERS_3	0xf2
-#define SETTRANSMITTERS_4	0xf3
-#define SETTRANSMITTERS_5	0xf4
-#define SETTRANSMITTERS_6	0xf5
-#define SETTRANSMITTERS_7	0xf6
-#define SETTRANSMITTERS_8	0xf7
-#define SETTRANSMITTERS_9	0xf8
-#define SETTRANSMITTERS_10	0xf9
-#define SETTRANSMITTERS_11	0xfa
-#define SETTRANSMITTERS_12	0xfb
-#define SETTRANSMITTERS_13	0xfc
-#define SETTRANSMITTERS_14	0xfd
-#define SETTRANSMITTERS_15	0xfe
-#define SETTRANSMITTERS_16	0xff
-
-// What's in a returning data packet
-#define COMMANDIR_RX_EVENTS 		0x02
-#define COMMANDIR_RX_DATA			0x01
-
-
-#endif
diff --git a/abs/core-testing/lirc-utils/irexec.conf b/abs/core-testing/lirc-utils/irexec.conf
new file mode 100644
index 0000000..f911c75
--- /dev/null
+++ b/abs/core-testing/lirc-utils/irexec.conf
@@ -0,0 +1,5 @@
+#
+# Parameters for irexec daemon (path to lircrc)
+#
+
+IREXEC_OPTS=""
\ No newline at end of file
diff --git a/abs/core-testing/lirc-utils/irexecd b/abs/core-testing/lirc-utils/irexecd
new file mode 100755
index 0000000..b8c902d
--- /dev/null
+++ b/abs/core-testing/lirc-utils/irexecd
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/irexec.conf
+
+PID=`pidof -o %PPID /usr/bin/irexec`
+case "$1" in
+  start)
+    stat_busy "Starting IREXEC Daemon"
+    [ -z "$PID" ] && /usr/bin/irexec --daemon $IREXEC_OPTS
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      add_daemon irexec
+      stat_done
+    fi
+    ;;
+  stop)
+    stat_busy "Stopping IREXEC Daemon"
+    [ ! -z "$PID" ]  && kill $PID &> /dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      rm_daemon irexec
+      stat_done
+    fi
+    ;;
+  restart)
+    $0 stop
+    sleep 1
+    $0 start
+    ;;
+  *)
+    echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+
diff --git a/abs/core-testing/lirc-utils/kernel-2.6.26.patch b/abs/core-testing/lirc-utils/kernel-2.6.26.patch
deleted file mode 100644
index 74bb986..0000000
--- a/abs/core-testing/lirc-utils/kernel-2.6.26.patch
+++ /dev/null
@@ -1,122 +0,0 @@
---- a/drivers/kcompat.h	2008-01-13 11:26:28.000000000 +0100
-+++ b/drivers/kcompat.h	2008-05-14 18:37:49.000000000 +0200
-@@ -1,4 +1,4 @@
--/*      $Id: kcompat.h,v 5.34 2008/01/13 10:26:28 lirc Exp $      */
-+/*      $Id: kcompat.h,v 5.36 2008/05/14 16:37:49 lirc Exp $      */
- 
- #ifndef _KCOMPAT_H
- #define _KCOMPAT_H
-@@ -36,10 +36,10 @@
- 	class_simple_destroy(cls);
- }
- 
--#define lirc_class_device_create(cs, parent, dev, device, fmt, args...) \
--	class_simple_device_add(cs, dev, device, fmt, ## args)
-+#define lirc_device_create(cs, parent, dev, fmt, args...) \
-+	class_simple_device_add(cs, dev, parent, fmt, ## args)
- 
--static inline void class_device_destroy(lirc_class_t *cls, dev_t devt)
-+static inline void lirc_device_destroy(lirc_class_t *cls, dev_t devt)
- {
- 	class_simple_device_remove(devt);
- }
-@@ -48,20 +48,40 @@
- 
- #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15)
- 
--#define lirc_class_device_create(cs, parent, dev, device, fmt, args...) \
--	class_device_create(cs, dev, device, fmt, ## args)
-+#define lirc_device_create(cs, parent, dev, fmt, args...) \
-+	class_device_create(cs, dev, parent, fmt, ## args)
- 
- #else /* >= 2.6.15 */
- 
--#define lirc_class_device_create class_device_create
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
-+
-+#define lirc_device_create(cs, parent, dev, fmt, args...) \
-+	class_device_create(cs, NULL, dev, parent, fmt, ## args)
-+
-+#else /* >= 2.6.26 */
-+
-+#define lirc_device_create device_create
-+
-+#endif /* >= 2.6.26 */
-+
- #define LIRC_DEVFS_PREFIX
- 
--#endif
-+#endif /* >= 2.6.15 */
- 
- typedef struct class lirc_class_t;
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
-+
-+#define lirc_device_destroy class_device_destroy
-+
-+#else
-+
-+#define lirc_device_destroy device_destroy
-+
- #endif
- 
-+#endif /* >= 2.6.13 */
-+
- #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
- #define LIRC_HAVE_DEVFS
- #define LIRC_HAVE_DEVFS_24
-@@ -133,8 +153,8 @@
- #ifndef LIRC_HAVE_SYSFS
- #define class_destroy(x) do { } while (0)
- #define class_create(x, y) NULL
--#define class_device_destroy(x, y) do { } while (0)
--#define lirc_class_device_create(x, y, z, xx, yy, zz) 0
-+#define lirc_class_destroy(x, y) do { } while (0)
-+#define lirc_class_create(x, y, z, xx, yy, zz) 0
- #define IS_ERR(x) 0
- typedef struct class_simple
- {
---- a/drivers/lirc_dev/lirc_dev.c	2008-01-13 11:45:02.000000000 +0100
-+++ b/drivers/lirc_dev/lirc_dev.c	2008-05-14 18:37:49.000000000 +0200
-@@ -17,7 +17,7 @@
-  *  along with this program; if not, write to the Free Software
-  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-  *
-- * $Id: lirc_dev.c,v 1.56 2008/01/13 10:45:02 lirc Exp $
-+ * $Id: lirc_dev.c,v 1.58 2008/05/14 16:37:49 lirc Exp $
-  *
-  */
- 
-@@ -145,7 +145,8 @@
- #ifdef LIRC_HAVE_DEVFS_26
- 	devfs_remove(DEV_LIRC "/%u", ir->p.minor);
- #endif
--	class_device_destroy(lirc_class, MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
-+	lirc_device_destroy(lirc_class,
-+			    MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
- 
- 	if (ir->buf != ir->p.rbuf) {
- 		lirc_buffer_free(ir->buf);
-@@ -400,9 +401,9 @@
- 			S_IFCHR|S_IRUSR|S_IWUSR,
- 			DEV_LIRC "/%u", ir->p.minor);
- #endif
--	(void) lirc_class_device_create(lirc_class, NULL,
--					MKDEV(IRCTL_DEV_MAJOR, ir->p.minor),
--					ir->p.dev, "lirc%u", ir->p.minor);
-+	(void) lirc_device_create(lirc_class, ir->p.dev,
-+				  MKDEV(IRCTL_DEV_MAJOR, ir->p.minor),
-+				  "lirc%u", ir->p.minor);
- 
- 	if (p->sample_rate || p->get_queue) {
- 		/* try to fire up polling thread */
-@@ -441,7 +442,8 @@
- 	return minor;
- 
- out_sysfs:
--	class_device_destroy(lirc_class, MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
-+	lirc_device_destroy(lirc_class,
-+			    MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
- #ifdef LIRC_HAVE_DEVFS_24
- 	devfs_unregister(ir->devfs_handle);
- #endif
diff --git a/abs/core-testing/lirc-utils/kernel-2.6.33.patch b/abs/core-testing/lirc-utils/kernel-2.6.33.patch
new file mode 100644
index 0000000..7827e00
--- /dev/null
+++ b/abs/core-testing/lirc-utils/kernel-2.6.33.patch
@@ -0,0 +1,475 @@
+--- drivers/lirc_dev/lirc_dev.h	2009/03/15 09:34:00	1.37 lirc-0_8_6
++++ drivers/lirc_dev/lirc_dev.h	2009/12/28 15:21:17	1.38
+@@ -4,7 +4,7 @@
+  * (L) by Artur Lipowski <alipowski@interia.pl>
+  *        This code is licensed under GNU GPL
+  *
+- * $Id: lirc_dev.h,v 1.37 2009/03/15 09:34:00 lirc Exp $
++ * $Id: lirc_dev.h,v 1.38 2009/12/28 15:21:17 jarodwilson Exp $
+  *
+  */
+ 
+@@ -30,14 +30,19 @@
+ 
+ struct lirc_buffer {
+ 	wait_queue_head_t wait_poll;
+-	spinlock_t lock;
++	spinlock_t fifo_lock;
+ 	unsigned int chunk_size;
+ 	unsigned int size; /* in chunks */
+ 	/* Using chunks instead of bytes pretends to simplify boundary checking
+ 	 * And should allow for some performance fine tunning later */
+ #ifdef LIRC_HAVE_KFIFO
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ 	struct kfifo *fifo;
+ #else
++	struct kfifo fifo;
++	u8 fifo_initialized;
++#endif
++#else
+ 	unsigned int fill; /* in chunks */
+ 	int head, tail;    /* in chunks */
+ 	unsigned char *data;
+@@ -47,12 +52,12 @@
+ static inline void lirc_buffer_lock(struct lirc_buffer *buf,
+ 				    unsigned long *flags)
+ {
+-	spin_lock_irqsave(&buf->lock, *flags);
++	spin_lock_irqsave(&buf->fifo_lock, *flags);
+ }
+ static inline void lirc_buffer_unlock(struct lirc_buffer *buf,
+ 				      unsigned long *flags)
+ {
+-	spin_unlock_irqrestore(&buf->lock, *flags);
++	spin_unlock_irqrestore(&buf->fifo_lock, *flags);
+ }
+ static inline void _lirc_buffer_clear(struct lirc_buffer *buf)
+ {
+@@ -63,11 +68,20 @@
+ #endif
+ static inline void lirc_buffer_clear(struct lirc_buffer *buf)
+ {
++	unsigned long flags;
++
+ #ifdef LIRC_HAVE_KFIFO
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ 	if (buf->fifo)
+ 		kfifo_reset(buf->fifo);
+ #else
+-	unsigned long flags;
++	if (buf->fifo_initialized) {
++		spin_lock_irqsave(&buf->fifo_lock, flags);
++		kfifo_reset(&buf->fifo);
++		spin_unlock_irqrestore(&buf->fifo_lock, flags);
++	}
++#endif
++#else
+ 	lirc_buffer_lock(buf, &flags);
+ 	_lirc_buffer_clear(buf);
+ 	lirc_buffer_unlock(buf, &flags);
+@@ -77,31 +91,47 @@
+ 				    unsigned int chunk_size,
+ 				    unsigned int size)
+ {
++	int ret = 0;
++
+ 	init_waitqueue_head(&buf->wait_poll);
+-	spin_lock_init(&buf->lock);
++	spin_lock_init(&buf->fifo_lock);
+ #ifndef LIRC_HAVE_KFIFO
+ 	_lirc_buffer_clear(buf);
+ #endif
+ 	buf->chunk_size = chunk_size;
+ 	buf->size = size;
+ #ifdef LIRC_HAVE_KFIFO
+-	buf->fifo = kfifo_alloc(size*chunk_size, GFP_KERNEL, &buf->lock);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++	buf->fifo = kfifo_alloc(size*chunk_size, GFP_KERNEL, &buf->fifo_lock);
+ 	if (!buf->fifo)
+ 		return -ENOMEM;
+ #else
++	ret = kfifo_alloc(&buf->fifo, size * chunk_size, GFP_KERNEL);
++	if (ret == 0)
++		buf->fifo_initialized = 1;
++#endif
++#else
+ 	buf->data = kmalloc(size*chunk_size, GFP_KERNEL);
+ 	if (buf->data == NULL)
+ 		return -ENOMEM;
+ 	memset(buf->data, 0, size*chunk_size);
+ #endif
+-	return 0;
++
++	return ret;
+ }
+ static inline void lirc_buffer_free(struct lirc_buffer *buf)
+ {
+ #ifdef LIRC_HAVE_KFIFO
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ 	if (buf->fifo)
+ 		kfifo_free(buf->fifo);
+ #else
++	if (buf->fifo_initialized) {
++		kfifo_free(&buf->fifo);
++		buf->fifo_initialized = 0;
++	}
++#endif
++#else
+ 	kfree(buf->data);
+ 	buf->data = NULL;
+ 	buf->head = 0;
+@@ -111,6 +141,25 @@
+ 	buf->size = 0;
+ #endif
+ }
++
++#ifdef LIRC_HAVE_KFIFO
++static inline int lirc_buffer_len(struct lirc_buffer *buf)
++{
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++	return kfifo_len(buf->fifo);
++#else
++	int len;
++	unsigned long flags;
++
++	spin_lock_irqsave(&buf->fifo_lock, flags);
++	len = kfifo_len(&buf->fifo);
++	spin_unlock_irqrestore(&buf->fifo_lock, flags);
++
++	return len;
++#endif
++}
++#endif
++
+ #ifndef LIRC_HAVE_KFIFO
+ static inline int  _lirc_buffer_full(struct lirc_buffer *buf)
+ {
+@@ -120,7 +169,7 @@
+ static inline int  lirc_buffer_full(struct lirc_buffer *buf)
+ {
+ #ifdef LIRC_HAVE_KFIFO
+-	return kfifo_len(buf->fifo) == buf->size * buf->chunk_size;
++	return lirc_buffer_len(buf) == buf->size * buf->chunk_size;
+ #else
+ 	unsigned long flags;
+ 	int ret;
+@@ -139,7 +188,7 @@
+ static inline int  lirc_buffer_empty(struct lirc_buffer *buf)
+ {
+ #ifdef LIRC_HAVE_KFIFO
+-	return !kfifo_len(buf->fifo);
++	return !lirc_buffer_len(buf);
+ #else
+ 	unsigned long flags;
+ 	int ret;
+@@ -158,7 +207,7 @@
+ static inline int  lirc_buffer_available(struct lirc_buffer *buf)
+ {
+ #ifdef LIRC_HAVE_KFIFO
+-	return buf->size - (kfifo_len(buf->fifo) / buf->chunk_size);
++	return buf->size - (lirc_buffer_len(buf) / buf->chunk_size);
+ #else
+ 	unsigned long flags;
+ 	int ret;
+@@ -177,21 +226,30 @@
+ 	buf->fill -= 1;
+ }
+ #endif
+-static inline void lirc_buffer_read(struct lirc_buffer *buf,
+-				    unsigned char *dest)
++static inline unsigned int lirc_buffer_read(struct lirc_buffer *buf,
++					    unsigned char *dest)
+ {
++	unsigned int ret = 0;
++
+ #ifdef LIRC_HAVE_KFIFO
+-	if (kfifo_len(buf->fifo) >= buf->chunk_size)
+-		kfifo_get(buf->fifo, dest, buf->chunk_size);
++	if (lirc_buffer_len(buf) >= buf->chunk_size)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++		ret = kfifo_get(buf->fifo, dest, buf->chunk_size);
++#else
++		ret = kfifo_out_locked(&buf->fifo, dest, buf->chunk_size,
++				       &buf->fifo_lock);
++#endif
+ #else
+ 	unsigned long flags;
+ 	lirc_buffer_lock(buf, &flags);
+ 	_lirc_buffer_read_1(buf, dest);
+ 	lirc_buffer_unlock(buf, &flags);
+ #endif
++
++	return ret;
+ }
+ #ifndef LIRC_HAVE_KFIFO
+-static inline void _lirc_buffer_write_1(struct lirc_buffer *buf,
++static inline  _lirc_buffer_write_1(struct lirc_buffer *buf,
+ 				      unsigned char *orig)
+ {
+ 	memcpy(&buf->data[buf->tail*buf->chunk_size], orig, buf->chunk_size);
+@@ -199,17 +257,26 @@
+ 	buf->fill++;
+ }
+ #endif
+-static inline void lirc_buffer_write(struct lirc_buffer *buf,
+-				     unsigned char *orig)
++static inline unsigned int lirc_buffer_write(struct lirc_buffer *buf,
++					     unsigned char *orig)
+ {
++	unsigned int ret = 0;
++
+ #ifdef LIRC_HAVE_KFIFO
+-	kfifo_put(buf->fifo, orig, buf->chunk_size);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++	ret = kfifo_put(buf->fifo, orig, buf->chunk_size);
++#else
++	ret = kfifo_in_locked(&buf->fifo, orig, buf->chunk_size,
++			      &buf->fifo_lock);
++#endif
+ #else
+ 	unsigned long flags;
+ 	lirc_buffer_lock(buf, &flags);
+ 	_lirc_buffer_write_1(buf, orig);
+ 	lirc_buffer_unlock(buf, &flags);
+ #endif
++
++	return ret;
+ }
+ #ifndef LIRC_HAVE_KFIFO
+ static inline void _lirc_buffer_write_n(struct lirc_buffer *buf,
+@@ -234,17 +301,26 @@
+ 	buf->fill += count;
+ }
+ #endif
+-static inline void lirc_buffer_write_n(struct lirc_buffer *buf,
+-				       unsigned char *orig, int count)
++static inline unsigned int lirc_buffer_write_n(struct lirc_buffer *buf,
++					       unsigned char *orig, int count)
+ {
++	unsigned int ret = 0;
++
+ #ifdef LIRC_HAVE_KFIFO
+-	kfifo_put(buf->fifo, orig, count * buf->chunk_size);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++	ret = kfifo_put(buf->fifo, orig, count * buf->chunk_size);
++#else
++	ret = kfifo_in_locked(&buf->fifo, orig, count * buf->chunk_size,
++			      &buf->fifo_lock);
++#endif
+ #else
+ 	unsigned long flags;
+ 	lirc_buffer_lock(buf, &flags);
+ 	_lirc_buffer_write_n(buf, orig, count);
+ 	lirc_buffer_unlock(buf, &flags);
+ #endif
++
++	return ret;
+ }
+ 
+ struct lirc_driver {
+--- drivers/lirc_dev/lirc_dev.c.old	2009-08-31 12:57:55.000000000 -0400
++++ drivers/lirc_dev/lirc_dev.c	2010-03-07 01:40:17.000000000 -0500
+@@ -32,7 +32,11 @@
+ #error "**********************************************************"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #include <linux/module.h>
+ #include <linux/kernel.h>
+ #include <linux/sched.h>
+--- drivers/lirc_sir/lirc_sir.c.old	2009-07-09 18:24:23.000000000 -0400
++++ drivers/lirc_sir/lirc_sir.c	2010-03-07 01:40:17.000000000 -0500
+@@ -45,7 +45,11 @@
+ # include <config.h>
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #if !defined(CONFIG_SERIAL_MODULE)
+ #if !defined(LIRC_ON_SA1100)
+ #warning "******************************************"
+--- drivers/lirc_serial/lirc_serial.c.old	2009-03-15 05:34:00.000000000 -0400
++++ drivers/lirc_serial/lirc_serial.c	2010-03-07 01:40:17.000000000 -0500
+@@ -60,7 +60,11 @@
+ #error "**********************************************************"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ 
+ #if defined(CONFIG_SERIAL) || defined(CONFIG_SERIAL_8250)
+ #warning "******************************************"
+--- drivers/lirc_bt829/lirc_bt829.c.old	2009-03-09 14:54:17.000000000 -0400
++++ drivers/lirc_bt829/lirc_bt829.c	2010-03-07 01:40:17.000000000 -0500
+@@ -22,7 +22,11 @@
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)
+ #error "This driver needs kernel version 2.4.0 or higher"
+ #endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #include <linux/kernel.h>
+ #include <linux/module.h>
+ #include <linux/threads.h>
+--- drivers/lirc_sasem/lirc_sasem.c.old	2009-02-28 05:27:10.000000000 -0500
++++ drivers/lirc_sasem/lirc_sasem.c	2010-03-07 01:40:17.000000000 -0500
+@@ -41,7 +41,11 @@
+ #error "*** Sorry, this driver requires kernel version 2.4.22 or higher"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ 
+ #include <linux/errno.h>
+ #include <linux/init.h>
+--- drivers/lirc_igorplugusb/lirc_igorplugusb.c.old	2009-08-02 05:54:10.000000000 -0400
++++ drivers/lirc_igorplugusb/lirc_igorplugusb.c	2010-03-07 01:40:17.000000000 -0500
+@@ -47,7 +47,11 @@
+ #error "*******************************************************"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #include <linux/module.h>
+ #include <linux/kernel.h>
+ #include <linux/kmod.h>
+--- drivers/lirc_imon/lirc_imon.c.old	2009-09-11 00:56:18.000000000 -0400
++++ drivers/lirc_imon/lirc_imon.c	2010-03-07 01:40:17.000000000 -0500
+@@ -30,7 +30,11 @@
+ #error "*** Sorry, this driver requires a 2.6 kernel"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ 
+ #include <linux/errno.h>
+ #include <linux/init.h>
+--- drivers/lirc_it87/lirc_it87.c.old	2009-06-01 08:21:31.000000000 -0400
++++ drivers/lirc_it87/lirc_it87.c	2010-03-07 01:40:17.000000000 -0500
+@@ -36,7 +36,11 @@
+ 
+ #include <linux/version.h>
+ #include <linux/module.h>
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #include <linux/sched.h>
+ #include <linux/errno.h>
+ #include <linux/signal.h>
+--- drivers/lirc_streamzap/lirc_streamzap.c.old	2009-03-15 05:34:00.000000000 -0400
++++ drivers/lirc_streamzap/lirc_streamzap.c	2010-03-07 01:40:17.000000000 -0500
+@@ -35,7 +35,11 @@
+ #error "Sorry, this driver needs kernel version 2.4.0 or higher"
+ #error "*******************************************************"
+ #endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #include <linux/kernel.h>
+ #include <linux/errno.h>
+ #include <linux/init.h>
+--- drivers/lirc_atiusb/lirc_atiusb.c.old	2009-03-10 20:21:46.000000000 -0400
++++ drivers/lirc_atiusb/lirc_atiusb.c	2010-03-07 01:40:17.000000000 -0500
+@@ -43,7 +43,11 @@
+ #error "*******************************************************"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ 
+ #include <linux/kernel.h>
+ #include <linux/errno.h>
+--- drivers/lirc_parallel/lirc_parallel.c.old	2009-03-08 15:22:28.000000000 -0400
++++ drivers/lirc_parallel/lirc_parallel.c	2010-03-07 01:40:17.000000000 -0500
+@@ -34,7 +34,11 @@
+ #error "**********************************************************"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #ifdef CONFIG_SMP
+ #error "--- Sorry, this driver is not SMP safe. ---"
+ #endif
+@@ -43,7 +47,11 @@
+ #include <linux/sched.h>
+ #include <linux/errno.h>
+ #include <linux/signal.h>
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #include <linux/fs.h>
+ #include <linux/kernel.h>
+ #include <linux/ioport.h>
+--- drivers/lirc_wpc8769l/lirc_wpc8769l.c.old	2009-03-15 05:34:01.000000000 -0400
++++ drivers/lirc_wpc8769l/lirc_wpc8769l.c	2010-03-07 01:40:17.000000000 -0500
+@@ -37,7 +37,11 @@
+ #error "**********************************************************"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ 
+ #include <linux/module.h>
+ #include <linux/errno.h>
+--- drivers/lirc_mceusb/lirc_mceusb.c.old	2009-09-02 10:04:02.000000000 -0400
++++ drivers/lirc_mceusb/lirc_mceusb.c	2010-03-07 01:40:17.000000000 -0500
+@@ -52,7 +52,11 @@
+ #error "Sorry, this driver needs kernel version 2.6.5 or higher"
+ #error "*******************************************************"
+ #endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #include <linux/kernel.h>
+ #include <linux/errno.h>
+ #include <linux/init.h>
+--- drivers/lirc_i2c/lirc_i2c.c	2009/08/30 16:59:53	1.70
++++ drivers/lirc_i2c/lirc_i2c.c	2009/12/15 05:37:00	1.71
+@@ -399,8 +399,8 @@
+ 		.name	= "i2c ir driver",
+ 	},
+ #endif
+-	.id		= I2C_DRIVERID_EXP3, /* FIXME */
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
++	.id		= I2C_DRIVERID_EXP3, /* FIXME */
+ 	.attach_adapter	= ir_probe,
+ 	.detach_client	= ir_remove,
+ #else
diff --git a/abs/core-testing/lirc-utils/lirc.logrotate b/abs/core-testing/lirc-utils/lirc.logrotate
index df97c60..623c4f3 100644
--- a/abs/core-testing/lirc-utils/lirc.logrotate
+++ b/abs/core-testing/lirc-utils/lirc.logrotate
@@ -2,7 +2,4 @@
    missingok
    notifempty
    delaycompress
-   postrotate
-      /usr/bin/killall -HUP -q lircd
-   endscript
 }
diff --git a/abs/core-testing/lirc-utils/lirc_atiusb.patch b/abs/core-testing/lirc-utils/lirc_atiusb.patch
deleted file mode 100644
index 2f0c61e..0000000
--- a/abs/core-testing/lirc-utils/lirc_atiusb.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -ruaN lirc-0.8.4.orig/drivers/lirc_atiusb/lirc_atiusb.c lirc-0.8.4/drivers/lirc_atiusb/lirc_atiusb.c
---- lirc-0.8.4.orig/drivers/lirc_atiusb/lirc_atiusb.c	2008-05-19 08:10:35.000000000 +0000
-+++ lirc-0.8.4/drivers/lirc_atiusb/lirc_atiusb.c	2009-02-14 22:35:44.000000000 +0000
-@@ -192,8 +192,9 @@
- /* init strings */
- #define USB_OUTLEN		7
- 
--static char init1[] = {0x01, 0x00, 0x20, 0x14};
--static char init2[] = {0x01, 0x00, 0x20, 0x14, 0x20, 0x20, 0x20};
-+static char init1[] = {0x80, 0x05, 0x1b, 0x15, 0x14, 0x20, 0x24, 0x15};
-+static char init2[] = {0x83, 0x03};
-+static char init3[] = {0x84, 0xd7, 0x020};
- 
- struct in_endpt {
- 	/* inner link in list of endpoints for the remote specified by ir */
-@@ -1183,8 +1184,9 @@
- 			oep->buf, USB_OUTLEN, usb_remote_send,
- 			oep, oep->ep->bInterval);
- 
--		send_packet(oep, 0x8004, init1);
--		send_packet(oep, 0x8007, init2);
-+               send_packet(oep, 0x8007, init1);
-+               send_packet(oep, 0x8002, init2);
-+               send_packet(oep, 0x8003, init3);
- 	}
- }
- 
diff --git a/abs/core-testing/lirc-utils/lirc_patch b/abs/core-testing/lirc-utils/lirc_patch
new file mode 100644
index 0000000..021ad50
--- /dev/null
+++ b/abs/core-testing/lirc-utils/lirc_patch
@@ -0,0 +1,270 @@
+diff -ruaN lirc-0.8.6.orig//drivers/lirc_dev/lirc_dev.h lirc-0.8.6/drivers/lirc_dev/lirc_dev.h
+--- lirc-0.8.6.orig//drivers/lirc_dev/lirc_dev.h	2009-03-15 09:34:00.000000000 +0000
++++ lirc-0.8.6/drivers/lirc_dev/lirc_dev.h	2010-08-04 02:20:07.000000000 +0000
+@@ -4,7 +4,7 @@
+  * (L) by Artur Lipowski <alipowski@interia.pl>
+  *        This code is licensed under GNU GPL
+  *
+- * $Id: lirc_dev.h,v 1.37 2009/03/15 09:34:00 lirc Exp $
++ * $Id: lirc_dev.h,v 1.39 2010/01/23 16:28:07 lirc Exp $
+  *
+  */
+ 
+@@ -30,14 +30,19 @@
+ 
+ struct lirc_buffer {
+ 	wait_queue_head_t wait_poll;
+-	spinlock_t lock;
++	spinlock_t fifo_lock;
+ 	unsigned int chunk_size;
+ 	unsigned int size; /* in chunks */
+ 	/* Using chunks instead of bytes pretends to simplify boundary checking
+ 	 * And should allow for some performance fine tunning later */
+ #ifdef LIRC_HAVE_KFIFO
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ 	struct kfifo *fifo;
+ #else
++	struct kfifo fifo;
++	u8 fifo_initialized;
++#endif
++#else
+ 	unsigned int fill; /* in chunks */
+ 	int head, tail;    /* in chunks */
+ 	unsigned char *data;
+@@ -47,12 +52,12 @@
+ static inline void lirc_buffer_lock(struct lirc_buffer *buf,
+ 				    unsigned long *flags)
+ {
+-	spin_lock_irqsave(&buf->lock, *flags);
++	spin_lock_irqsave(&buf->fifo_lock, *flags);
+ }
+ static inline void lirc_buffer_unlock(struct lirc_buffer *buf,
+ 				      unsigned long *flags)
+ {
+-	spin_unlock_irqrestore(&buf->lock, *flags);
++	spin_unlock_irqrestore(&buf->fifo_lock, *flags);
+ }
+ static inline void _lirc_buffer_clear(struct lirc_buffer *buf)
+ {
+@@ -64,10 +69,21 @@
+ static inline void lirc_buffer_clear(struct lirc_buffer *buf)
+ {
+ #ifdef LIRC_HAVE_KFIFO
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ 	if (buf->fifo)
+ 		kfifo_reset(buf->fifo);
+ #else
+ 	unsigned long flags;
++
++	if (buf->fifo_initialized) {
++		spin_lock_irqsave(&buf->fifo_lock, flags);
++		kfifo_reset(&buf->fifo);
++		spin_unlock_irqrestore(&buf->fifo_lock, flags);
++	}
++#endif
++#else
++	unsigned long flags;
++
+ 	lirc_buffer_lock(buf, &flags);
+ 	_lirc_buffer_clear(buf);
+ 	lirc_buffer_unlock(buf, &flags);
+@@ -77,31 +93,47 @@
+ 				    unsigned int chunk_size,
+ 				    unsigned int size)
+ {
++	int ret = 0;
++
+ 	init_waitqueue_head(&buf->wait_poll);
+-	spin_lock_init(&buf->lock);
++	spin_lock_init(&buf->fifo_lock);
+ #ifndef LIRC_HAVE_KFIFO
+ 	_lirc_buffer_clear(buf);
+ #endif
+ 	buf->chunk_size = chunk_size;
+ 	buf->size = size;
+ #ifdef LIRC_HAVE_KFIFO
+-	buf->fifo = kfifo_alloc(size*chunk_size, GFP_KERNEL, &buf->lock);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++	buf->fifo = kfifo_alloc(size*chunk_size, GFP_KERNEL, &buf->fifo_lock);
+ 	if (!buf->fifo)
+ 		return -ENOMEM;
+ #else
++	ret = kfifo_alloc(&buf->fifo, size * chunk_size, GFP_KERNEL);
++	if (ret == 0)
++		buf->fifo_initialized = 1;
++#endif
++#else
+ 	buf->data = kmalloc(size*chunk_size, GFP_KERNEL);
+ 	if (buf->data == NULL)
+ 		return -ENOMEM;
+ 	memset(buf->data, 0, size*chunk_size);
+ #endif
+-	return 0;
++
++	return ret;
+ }
+ static inline void lirc_buffer_free(struct lirc_buffer *buf)
+ {
+ #ifdef LIRC_HAVE_KFIFO
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ 	if (buf->fifo)
+ 		kfifo_free(buf->fifo);
+ #else
++	if (buf->fifo_initialized) {
++		kfifo_free(&buf->fifo);
++		buf->fifo_initialized = 0;
++	}
++#endif
++#else
+ 	kfree(buf->data);
+ 	buf->data = NULL;
+ 	buf->head = 0;
+@@ -111,6 +143,25 @@
+ 	buf->size = 0;
+ #endif
+ }
++
++#ifdef LIRC_HAVE_KFIFO
++static inline int lirc_buffer_len(struct lirc_buffer *buf)
++{
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++	return kfifo_len(buf->fifo);
++#else
++	int len;
++	unsigned long flags;
++
++	spin_lock_irqsave(&buf->fifo_lock, flags);
++	len = kfifo_len(&buf->fifo);
++	spin_unlock_irqrestore(&buf->fifo_lock, flags);
++
++	return len;
++#endif
++}
++#endif
++
+ #ifndef LIRC_HAVE_KFIFO
+ static inline int  _lirc_buffer_full(struct lirc_buffer *buf)
+ {
+@@ -120,7 +171,7 @@
+ static inline int  lirc_buffer_full(struct lirc_buffer *buf)
+ {
+ #ifdef LIRC_HAVE_KFIFO
+-	return kfifo_len(buf->fifo) == buf->size * buf->chunk_size;
++	return lirc_buffer_len(buf) == buf->size * buf->chunk_size;
+ #else
+ 	unsigned long flags;
+ 	int ret;
+@@ -139,7 +190,7 @@
+ static inline int  lirc_buffer_empty(struct lirc_buffer *buf)
+ {
+ #ifdef LIRC_HAVE_KFIFO
+-	return !kfifo_len(buf->fifo);
++	return !lirc_buffer_len(buf);
+ #else
+ 	unsigned long flags;
+ 	int ret;
+@@ -158,7 +209,7 @@
+ static inline int  lirc_buffer_available(struct lirc_buffer *buf)
+ {
+ #ifdef LIRC_HAVE_KFIFO
+-	return buf->size - (kfifo_len(buf->fifo) / buf->chunk_size);
++	return buf->size - (lirc_buffer_len(buf) / buf->chunk_size);
+ #else
+ 	unsigned long flags;
+ 	int ret;
+@@ -177,21 +228,30 @@
+ 	buf->fill -= 1;
+ }
+ #endif
+-static inline void lirc_buffer_read(struct lirc_buffer *buf,
+-				    unsigned char *dest)
++static inline unsigned int lirc_buffer_read(struct lirc_buffer *buf,
++					    unsigned char *dest)
+ {
++	unsigned int ret = 0;
++
+ #ifdef LIRC_HAVE_KFIFO
+-	if (kfifo_len(buf->fifo) >= buf->chunk_size)
+-		kfifo_get(buf->fifo, dest, buf->chunk_size);
++	if (lirc_buffer_len(buf) >= buf->chunk_size)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++		ret = kfifo_get(buf->fifo, dest, buf->chunk_size);
++#else
++		ret = kfifo_out_locked(&buf->fifo, dest, buf->chunk_size,
++				       &buf->fifo_lock);
++#endif
+ #else
+ 	unsigned long flags;
+ 	lirc_buffer_lock(buf, &flags);
+ 	_lirc_buffer_read_1(buf, dest);
+ 	lirc_buffer_unlock(buf, &flags);
+ #endif
++
++	return ret;
+ }
+ #ifndef LIRC_HAVE_KFIFO
+-static inline void _lirc_buffer_write_1(struct lirc_buffer *buf,
++static inline  _lirc_buffer_write_1(struct lirc_buffer *buf,
+ 				      unsigned char *orig)
+ {
+ 	memcpy(&buf->data[buf->tail*buf->chunk_size], orig, buf->chunk_size);
+@@ -199,17 +259,26 @@
+ 	buf->fill++;
+ }
+ #endif
+-static inline void lirc_buffer_write(struct lirc_buffer *buf,
+-				     unsigned char *orig)
++static inline unsigned int lirc_buffer_write(struct lirc_buffer *buf,
++					     unsigned char *orig)
+ {
++	unsigned int ret = 0;
++
+ #ifdef LIRC_HAVE_KFIFO
+-	kfifo_put(buf->fifo, orig, buf->chunk_size);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++	ret = kfifo_put(buf->fifo, orig, buf->chunk_size);
++#else
++	ret = kfifo_in_locked(&buf->fifo, orig, buf->chunk_size,
++			      &buf->fifo_lock);
++#endif
+ #else
+ 	unsigned long flags;
+ 	lirc_buffer_lock(buf, &flags);
+ 	_lirc_buffer_write_1(buf, orig);
+ 	lirc_buffer_unlock(buf, &flags);
+ #endif
++
++	return ret;
+ }
+ #ifndef LIRC_HAVE_KFIFO
+ static inline void _lirc_buffer_write_n(struct lirc_buffer *buf,
+@@ -234,17 +303,26 @@
+ 	buf->fill += count;
+ }
+ #endif
+-static inline void lirc_buffer_write_n(struct lirc_buffer *buf,
+-				       unsigned char *orig, int count)
++static inline unsigned int lirc_buffer_write_n(struct lirc_buffer *buf,
++					       unsigned char *orig, int count)
+ {
++	unsigned int ret = 0;
++
+ #ifdef LIRC_HAVE_KFIFO
+-	kfifo_put(buf->fifo, orig, count * buf->chunk_size);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++	ret = kfifo_put(buf->fifo, orig, count * buf->chunk_size);
++#else
++	ret = kfifo_in_locked(&buf->fifo, orig, count * buf->chunk_size,
++			      &buf->fifo_lock);
++#endif
+ #else
+ 	unsigned long flags;
+ 	lirc_buffer_lock(buf, &flags);
+ 	_lirc_buffer_write_n(buf, orig, count);
+ 	lirc_buffer_unlock(buf, &flags);
+ #endif
++
++	return ret;
+ }
+ 
+ struct lirc_driver {
diff --git a/abs/core-testing/lirc-utils/lircd b/abs/core-testing/lirc-utils/lircd
index f4686d7..27e5af3 100755
--- a/abs/core-testing/lirc-utils/lircd
+++ b/abs/core-testing/lirc-utils/lircd
@@ -2,12 +2,19 @@
 
 . /etc/rc.conf
 . /etc/rc.d/functions
-. /etc/conf.d/lircd
+. /etc/conf.d/lircd.conf
 
 PID=$(pidof -o %PPID /usr/sbin/lircd)
+LIRCD_SYMLINKFILE=/dev/lircd
+LIRCD_SOCKET=/var/run/lirc/lircd
 case "$1" in
   start)
     stat_busy "Starting LIRC Daemon"
+    rm -f $LIRCD_SOCKET && ln -s $LIRCD_SOCKET $LIRCD_SYMLINKFILE
+    if [ $? -ne 0 ]; then
+      stat_fail
+      exit 0
+    fi
     [ -n "$LIRC_DRIVER" ] && LIRC_EXTRAOPTS="-H $LIRC_DRIVER $LIRC_EXTRAOPTS"
     [ -z "$PID" ] && 
       if [ -n "$LIRC_DEVICE" ] ; then
@@ -24,6 +31,7 @@ case "$1" in
     ;;
   stop)
     stat_busy "Stopping LIRC Daemon"
+    rm -f $LIRCD_SYMLINKFILE
     [ ! -z "$PID" ] && kill $PID &> /dev/null
     if [ $? -gt 0 ]; then
       stat_fail
@@ -38,6 +46,6 @@ case "$1" in
     $0 start
     ;;
   *)
-    echo "usage: $0 {start|stop|restart}"
+    echo "usage: $0 start|stop|restart"
 esac
 exit 0
diff --git a/abs/core-testing/lirc-utils/lircd.conf b/abs/core-testing/lirc-utils/lircd.conf
new file mode 100644
index 0000000..760dab0
--- /dev/null
+++ b/abs/core-testing/lirc-utils/lircd.conf
@@ -0,0 +1,8 @@
+#
+# Parameters for lirc daemon
+#
+
+LIRC_DEVICE="/dev/lirc0"
+LIRC_DRIVER=""
+LIRC_EXTRAOPTS=""
+LIRC_CONFIGFILE=""
diff --git a/abs/core-testing/lirc-utils/lircd.conf.d b/abs/core-testing/lirc-utils/lircd.conf.d
deleted file mode 100644
index 760dab0..0000000
--- a/abs/core-testing/lirc-utils/lircd.conf.d
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# Parameters for lirc daemon
-#
-
-LIRC_DEVICE="/dev/lirc0"
-LIRC_DRIVER=""
-LIRC_EXTRAOPTS=""
-LIRC_CONFIGFILE=""
-- 
cgit v0.12


From cc0046aa355811c343c144e4898194c8471ec07f Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 17:00:11 -0700
Subject: lirc:Bumped/Updated for LinHES 7.

---
 abs/core-testing/lirc/PKGBUILD            |   68 +-
 abs/core-testing/lirc/dvicoIR.rules       |   15 -
 abs/core-testing/lirc/hw_commandir.c      | 1926 -----------------------------
 abs/core-testing/lirc/hw_commandir.h      |  175 ---
 abs/core-testing/lirc/kernel-2.6.26.patch |  122 --
 abs/core-testing/lirc/kernel-2.6.27.patch |   78 --
 abs/core-testing/lirc/kernel-2.6.33.patch |  475 +++++++
 abs/core-testing/lirc/lirc.fdi            |   11 -
 abs/core-testing/lirc/lirc.install        |    6 +-
 abs/core-testing/lirc/lirc_atiusb.patch   |   27 -
 abs/core-testing/lirc/lirc_mod_mce.patch  |  187 ---
 11 files changed, 495 insertions(+), 2595 deletions(-)
 delete mode 100644 abs/core-testing/lirc/dvicoIR.rules
 delete mode 100755 abs/core-testing/lirc/hw_commandir.c
 delete mode 100755 abs/core-testing/lirc/hw_commandir.h
 delete mode 100644 abs/core-testing/lirc/kernel-2.6.26.patch
 delete mode 100644 abs/core-testing/lirc/kernel-2.6.27.patch
 create mode 100644 abs/core-testing/lirc/kernel-2.6.33.patch
 delete mode 100644 abs/core-testing/lirc/lirc.fdi
 delete mode 100644 abs/core-testing/lirc/lirc_atiusb.patch
 delete mode 100644 abs/core-testing/lirc/lirc_mod_mce.patch

diff --git a/abs/core-testing/lirc/PKGBUILD b/abs/core-testing/lirc/PKGBUILD
index 12dc3b4..8c3b5a6 100644
--- a/abs/core-testing/lirc/PKGBUILD
+++ b/abs/core-testing/lirc/PKGBUILD
@@ -1,38 +1,29 @@
-# $Id: PKGBUILD 14978 2008-10-11 21:04:37Z tpowa $
+# $Id: PKGBUILD 80419 2010-05-17 08:09:39Z tpowa $
 # Maintainer: Paul Mattal <paul@archlinux.org>
 
 pkgname=lirc
-pkgver=0.8.5CVS
-pkgrel=17
-_kernver=2.6.28-LinHES
+pkgver=0.8.6
+pkgrel=5
+_kernver=2.6.34-LinHES
 pkgdesc="Linux Infrared Remote Control kernel modules for stock arch kernel"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
 url="http://www.lirc.org/"
 license=('GPL')
-depends=('lirc-utils=0.8.5CVS' 'kernel26>=2.6.27' 'kernel26<2.6.29' 'iguanaIR')
-makedepends=('python')
+depends=('lirc-utils=0.8.6' 'kernel26>=2.6.34' 'kernel26<2.6.35')
+makedepends=('help2man' 'kernel26-headers>=2.6.34' 'kernel26-headers<2.6.35')
 replaces=('lirc+pctv')
 options=('!makeflags')
 install=$pkgname.install
-source=(http://www.blushingpenguin.com/mark/lmilk/lirc-0.8.5-CVS-pvr150.tar.bz2 \
-	kernel-2.6.26.patch
-	kernel-2.6.27.patch
-	lirc_atiusb.patch
-	http://superb-east.dl.sourceforge.net/sourceforge/mod-mce/lirc_mod_mce-0.1.5.tar.bz2
-	lirc_mod_mce.patch
-	hw_commandir.c
-	hw_commandir.h
-	dvicoIR.rules
-        lirc.fdi)
+source=("http://prdownloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+        'kernel-2.6.33.patch')
+md5sums=('4ca24da6f5e7c2dcea74878c27a4a3f7'
+         'f029698154cf32bc51e5e69879d53a12')
 
 build() {
 	# configure
-	cd $startdir/src/lirc-0.8.5-CVS-pvr150 || return 1
-	cp $startdir/src/hw_commandir.* $startdir/src/lirc-0.8.5-CVS-pvr150/daemons
-#	patch -Np1 -i ../kernel-2.6.26.patch || return 1
-#	patch -Np1 -i ../kernel-2.6.27.patch || return 1
-	patch -Np1 -i ../lirc_atiusb.patch || return 1
-
+	cd ${srcdir}/lirc-${pkgver} || return 1
+	# see http://bugs.gentoo.org/301321
+	patch -p0 -i ../kernel-2.6.33.patch || return 1
 	./configure --enable-sandboxed --prefix=/usr \
 		--with-driver=all --with-kerneldir=/usr/src/linux-${_kernver}/ \
 		--with-moduledir=/lib/modules/${_kernver}/kernel/drivers/misc \
@@ -44,6 +35,7 @@ build() {
         sed -i -e "s:lirc_parallel::" -e "s:lirc_bt829::" \
 		Makefile drivers/Makefile drivers/*/Makefile tools/Makefile \
                 || return 1
+
 	# disable lirc_gpio due to brokeness of kernel 2.6.23
 	sed -i -e "s:lirc_gpio::" \
 		Makefile drivers/Makefile drivers/*/Makefile tools/Makefile \
@@ -52,35 +44,9 @@ build() {
 	# build
 	cd drivers || return 1
 	make || return 1
-	make DESTDIR=$startdir/pkg install || return 1
+	make DESTDIR=${pkgdir} install || return 1
 
 	# set the kernel we've built for inside the install script
 	sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
-		$startdir/lirc.install || return 1
-	cd $startdir/src/lirc_mod_mce
-	cp ../lirc-0.8.5-CVS-pvr150/drivers/lirc_dev/lirc_dev.h .
-	patch -p1 < ../lirc_mod_mce.patch
-	make KDIR=/usr/src/linux-2.6.28-LinHES/
-	cp lirc_mod_mce.ko $startdir/pkg/lib/modules/2.6.28-LinHES/kernel/drivers/misc/
-	mv $startdir/pkg/lib/modules/2.6.28-LinHES/kernel/drivers/misc/lirc_mceusb2.ko $startdir/pkg/lib/modules/2.6.28-LinHES/kernel/drivers/misc/lirc_mceusb2.ko.not
-	#remove old commandir
-	rm $startdir/pkg/lib/modules/$_kernver/kernel/drivers/misc/lirc_cmdir.ko
-	rm $startdir/pkg/lib/modules/$_kernver/kernel/drivers/misc/commandir.ko
-
-	# Add a udev rule for the DVICO remote so that if there is more than 
-	# one hiddev device, the system cant get confused.
-	install -D -m644 $srcdir/dvicoIR.rules $pkgdir/etc/udev/rules.d/dvicoIR.rules
-
-	# Add the fdi file to prevent the Dvico dual 4 remotes from screwing up keyboard interaction.
-	install -D -m644 $srcdir/lirc.fdi $pkgdir/usr/share/hal/fdi/preprobe/20thirdparty/lirc.fdi
+		${startdir}/lirc.install || return 1
 }
-md5sums=('b96dae91b566143b3af433fa2714ec9a'
-         '1753acd774f50b638e6173d364de53fd'
-         '6f151eb4e81fc7776a06c9063e6ad9a5'
-         '7eccd7826ab99e5cf1b9154171c8b927'
-         '21ce358809105f005e888e3b138c59e6'
-         'b5d52566a9dae8d76e24e8753f33abef'
-         'f059f4030afc682c9539a03bf837c1cf'
-         '4e698654cc44fc6c4163814acda5a7ee'
-         '9a3a6dc03647ee6674a166dfb884ddd6'
-         '203d9cd014c4276be4c84cecd103919d')
diff --git a/abs/core-testing/lirc/dvicoIR.rules b/abs/core-testing/lirc/dvicoIR.rules
deleted file mode 100644
index ada5466..0000000
--- a/abs/core-testing/lirc/dvicoIR.rules
+++ /dev/null
@@ -1,15 +0,0 @@
-# This rule is for the Dvico Dual Digital 4 Rev 2. It has 2 IR modules 
-# identified, only the first of which is connected to the receiver.
-# The KERNELS=="*-1" part of this rule makes sure that the first 
-# device is the one that gets the symlink.
-KERNEL=="event*", \
-    KERNELS=="*-1", \
-    ATTRS{manufacturer}=="Dvico", \
-    ATTRS{idVendor}=="0fe9", \
-    ATTRS{idProduct}=="db98", \
-    SYMLINK="input/irremote"
-
-# This rule is for the older style USB DVICO remote dongles.
-SUBSYSTEMS=="usb", KERNEL=="hiddev*", \
-    ATTRS{product}=="DVICO USB HID Remocon V1.00", \
-    SYMLINK+="usb/dvicoIR"
diff --git a/abs/core-testing/lirc/hw_commandir.c b/abs/core-testing/lirc/hw_commandir.c
deleted file mode 100755
index 40ac0de..0000000
--- a/abs/core-testing/lirc/hw_commandir.c
+++ /dev/null
@@ -1,1926 +0,0 @@
-/* CommandIR transceivers driver 0.96
- * Supporting CommandIR II and CommandIR Mini (and multiple of both)
- * April-June 2008, Matthew Bodkin
- * December 2008, bug fixes, Matthew Bodkin
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <limits.h>
-#include <signal.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <sys/un.h>
-#include <sys/utsname.h>
-
-#include "hardware.h"
-#include "ir_remote.h"
-#include "lircd.h"
-#include "receive.h"
-#include "transmit.h"
-#include "hw_commandir.h"
-#include <usb.h>
-
-#define RAPID_DECODE 1
-
-extern struct ir_remote *repeat_remote;
-extern char *progname;
-
-
-/**********************************************************************
- *
- * internal function prototypes
- *
- **********************************************************************/
-static int commandir_init();
-static int commandir_deinit(void);
-static char *commandir_rec(struct ir_remote *remotes);
-static void commandir_read_loop();
-static int cmdir_convert_RX(unsigned char *orig_rxbuffer);
-static unsigned int get_time_value(unsigned int firstint, 
-		unsigned int secondint, unsigned char overflow);
-static lirc_t commandir_readdata(lirc_t timeout);
-static int commandir_send(struct ir_remote *remote,struct ir_ncode *code);
-static int commandir_ioctl(unsigned int cmd, void *arg);
-//static void setEmitterMask(unsigned char highbyte, unsigned char lowbyte);
-static void setEmitterMask(int bitmask);
-static void commandir_transmit(char *buffer, int bytes, int bitmask, 
-		unsigned int);
-static void commandir_child_init();
-static void shutdown_usb();
-static void hardware_scan();
-static void hardware_disconnect(int);
-static void hardware_setorder();
-static void raise_event(unsigned int);
-static int commandir_read();
-static int check_irsend_commandir(unsigned char *command);
-static int commandir_decode(char *command);
-static int commandir_receive_decode(struct ir_remote *remote,
-                   ir_code *prep,ir_code *codep,ir_code *postp,
-                   int *repeat_flagp,
-                   lirc_t *min_remaining_gapp, lirc_t *max_remaining_gapp);
-static void pipeline_check();
-static int inline get_bit(int bitnum);
-static void add_to_tx_pipeline(unsigned char *buffer, int bytes, 
-		int channel_mask, unsigned int);
-static void recalc_tx_available(int);
-static void set_hash_mask(int channel_mask);
-static int commandir2_convert_RX(unsigned short *bufferrx, 
-		unsigned char numvalues);
-static void cleanup_commandir_dev(int spotnum);
-
-/**********************************************************************
- *
- * CommandIR Vars
- *
- **********************************************************************/
-static int current_transmitter_mask = 0xff;
-static char unsigned commandir_data_buffer[512];
-static int last_mc_time = -1;	
-static int commandir_rx_num = 0;
-
-
-static char channels_en[MAX_DEVICES]; 
-static char open_bus_hash[USB_MAX_BUSES][USB_MAX_BUSDEV];
-static int tx_order[MAX_DEVICES];
-static char device_count = 0;
-static int mini_freq[MAX_DEVICES];
-static int child_pipe_write = 0;
-static char haveInited = 0;
-// Fake 'commandir' remote signal values
-static unsigned int signal_base[2][2] = { {100|PULSE_BIT, 200},
-		 {1000|PULSE_BIT, 200} };
-
-// Pipes to and from the child/parent
-static pid_t child_pid = -1;
-static int pipe_fd[2] = { -1, -1 };
-static int pipe_tochild[2] = { -1, -1 };
-static int tochild_read = -1, tochild_write = -1;
-
-struct commandir_device
-{
-	usb_dev_handle *cmdir_udev;
-	int bus;
-	int busdev;
-	int interface;
-	int location;
-	int hw_type;
-	int hw_revision;
-	int hw_subversion;
-	unsigned char devnum;
-	int endpoint_max[3];
-} open_commandir_devices[4];
-
-struct hardware hw_commandir =
-{
-	NULL,					 	/* default device */
-	-1,                 		/* fd */
-	LIRC_CAN_SET_SEND_CARRIER|
-	LIRC_CAN_SEND_PULSE|
-	LIRC_CAN_SET_TRANSMITTER_MASK|
-	LIRC_CAN_REC_MODE2, 		
-	LIRC_MODE_PULSE,			/* send_mode */ 
-	LIRC_MODE_MODE2,            /* rec_mode */
-	sizeof(lirc_t),        		/* code_length in BITS */
-	commandir_init,       		/* init_func */
-	NULL,     			  		/* config_func */
-	commandir_deinit,     		/* deinit_func */
-	commandir_send,				/* send_func */
- 	commandir_rec,        		/* rec_func  */
-	commandir_receive_decode,   /* decode_func */
-	commandir_ioctl,            /* ioctl_func */
-	commandir_readdata,		    /* readdata */
-	"commandir"
-};
-
-/***   LIRC Interface Functions - Non-blocking parent thread
-*/
-
-static int commandir_receive_decode(struct ir_remote *remote,
-                   ir_code *prep,ir_code *codep,ir_code *postp,
-                   int *repeat_flagp,
-                   lirc_t *min_remaining_gapp, lirc_t *max_remaining_gapp) {
-
-	int i;
-	i = receive_decode(remote,
-                   prep,codep,postp,
-                   repeat_flagp,
-                   min_remaining_gapp, max_remaining_gapp);
-
-	if(i > 0){
-		static char rx_char[3] = {3, 0, RXDECODE_HEADER_LIRC};
-		write(tochild_write, rx_char, 3);	
-	}
-	
-	return i;
-}
-
-
-static int commandir_init()
-{
-	long fd_flags;
-	if(haveInited){
-		static char init_char[3] = {3, 0, INIT_HEADER_LIRC};
-		write(tochild_write, init_char, 3);	
-		return 1;
-	}
-	
-	init_rec_buffer();	// LIRC's rec
-	init_send_buffer();	// LIRC's send
-	
-	/* A separate process will be forked to read data from the USB
-	 * receiver and write it to a pipe. hw.fd is set to the readable
-	 * end of this pipe. */
-	if (pipe(pipe_fd) != 0)
-	{
-		logprintf(LOG_ERR, "couldn't open pipe 1");
-		return 0;
-	}
-	
-	hw.fd = pipe_fd[0];	// the READ end of the Pipe
-	
-	if (pipe(pipe_tochild) != 0)
-	{
-		logprintf(LOG_ERR, "couldn't open pipe 1");
-		return 0;
-	}
-	
-	tochild_read = pipe_tochild[0];	// the READ end of the Pipe 
-	tochild_write = pipe_tochild[1];	// the WRITE end of the Pipe 
-	
-	fd_flags = fcntl(pipe_tochild[0], F_GETFL);
-  	if(fcntl(pipe_tochild[0], F_SETFL, fd_flags | O_NONBLOCK) == -1)
-	{
-		logprintf(LOG_ERR, "can't set pipe to non-blocking");
-		return 0;
-	}	
-	
-	child_pid= fork();
-	if (child_pid== -1)
-	{
-		logprintf(LOG_ERR, "couldn't fork child process");
-		return 0;
-	}
-	else if (child_pid== 0)
-	{
-		child_pipe_write = pipe_fd[1];	
-		commandir_child_init();
-		commandir_read_loop();
-		return 0;	
-	}
-	haveInited = 1;
-	
-	logprintf(LOG_ERR, "CommandIR driver initialized");
-	return 1;	
-}
-
-
-static int commandir_deinit(void)
-{
-	/* Trying something a bit new with this driver. Keeping the driver
-	 * connected so in the future we can still monitor in the client */
-	if(USB_KEEP_WARM && (!strncmp(progname, "lircd", 5)))
-	{
-		static char deinit_char[3] = {3, 0, DEINIT_HEADER_LIRC};
-		write(tochild_write, deinit_char, 3);
-		logprintf(LOG_ERR, "LIRC_deinit but keeping warm");
-	}
-	else
-	{
-		if (tochild_read >= 0)
-		{
-			if (close(tochild_read) < 0) 
-			{
-				logprintf(LOG_ERR, "Error closing pipe2");;
-			}
-			tochild_read = tochild_write = -1;
-		}
-		
-		if(haveInited){
-			// shutdown all USB
-			if(child_pid > 0)
-			{
-				logprintf(LOG_ERR, "Closing child process");
-				kill(child_pid, SIGTERM);
-				waitpid(child_pid, NULL, 0);
-				child_pid = -1;
-				haveInited = 0;
-			}
-		}
-		
-		if (hw.fd >= 0)
-		{
-			if (close(hw.fd) < 0) logprintf(LOG_ERR, "Error closing pipe");
-			hw.fd = -1;
-		}
-		
-		logprintf(LOG_ERR, "commandir_deinit()");
-	}
-	return(1);
-}
-
-static int commandir_send(struct ir_remote *remote,struct ir_ncode *code)
-{
-	int length;
-	lirc_t *signals;
-
-	if(!init_send(remote,code)) {
-		return 0;
-	}
-
-	length = send_buffer.wptr;
-	signals = send_buffer.data;
-
-	if (length <= 0 || signals == NULL) {
-		return 0;
-	}
-	
-	int cmdir_cnt =0;
-	char cmdir_char[70];
-	
-	// Set the frequency of the signal along with the signal + transmitters
-	cmdir_char[0] = 7;
-	cmdir_char[1] = 0;
-
-	cmdir_char[2] = FREQ_HEADER_LIRC;
-	cmdir_char[3] = (remote->freq >> 24) & (0xff);
-	cmdir_char[4] = (remote->freq >> 16) & (0xff);
-	cmdir_char[5] = (remote->freq >> 8) & (0xff);
-	cmdir_char[6] = (remote->freq & 0xff);
-	
-	write(tochild_write, cmdir_char, cmdir_char[0]);
-
-	cmdir_cnt = 3;
-	
-	unsigned char * send_signals = malloc(sizeof(signals) * length + 4);
-	
-	send_signals[0] = (sizeof(lirc_t) * length + 4) & 0xff;
-	send_signals[1] = ((sizeof(lirc_t) * length + 4) >> 8) & 0xff;
-	
-	send_signals[2] = TX_LIRC_T;
-	send_signals[3] = (char)current_transmitter_mask;	
-	
-	memcpy(&send_signals[4], signals, sizeof(lirc_t) * length);
-	
-	if(write(tochild_write, send_signals, 
-		send_signals[0] + send_signals[1] * 256) < 0)
-	{
-		logprintf(LOG_ERR, "Error writing to child_write");
-	}
-	
-	free(send_signals);
-	return(length);
-}
-
-static char *commandir_rec(struct ir_remote *remotes)
-{
-	char * returnit;
-	if (!clear_rec_buffer()) return NULL;
-	returnit = decode_all(remotes);
-	return returnit;
-}
-
-static int commandir_ioctl(unsigned int cmd, void *arg)
-{
-	unsigned int ivalue;
-	char cmdir_char[5];
-	
-	switch(cmd)
-	{
-	case LIRC_SET_TRANSMITTER_MASK:
-		
-		ivalue=*(unsigned int*)arg;
-		
-		if(ivalue >= MAX_MASK) return (MAX_CHANNELS);
-		
-		/* Support the old way of setting the frequency of the signal along 
-		 * with the signal + transmitters */
-		cmdir_char[0] = 5;
-		cmdir_char[1] = 0;
-		cmdir_char[2] = CHANNEL_EN_MASK;
-		cmdir_char[3] = (unsigned char)(ivalue & 0x00FF);	// Low bits
-		cmdir_char[4] = (unsigned char)(ivalue >> 8);		// High bits
-		
-		write(tochild_write, cmdir_char, cmdir_char[0]);
-
-		return (0);
-		
-	default:
-		logprintf(LOG_ERR, "Unknown ioctl - %d", cmd);
-		return(-1);
-	}
-	
-	return 1;
-}
-
-static lirc_t commandir_readdata(lirc_t timeout)
-{
-	lirc_t code = 0;
-	struct timeval tv = {0, timeout};
-	fd_set fds;
-
-	FD_ZERO(&fds);
-	FD_SET(hw.fd, &fds);
-
-	/* attempt a read with a timeout using select */
-	if (select(hw.fd + 1, &fds, NULL, &fds, &tv) > 0)
-		/* if we failed to get data return 0 */
-		if (read(hw.fd, &code, sizeof(lirc_t)) <= 0)
-                        commandir_deinit();
-	return code;
-}
-
-/***  End of parent fork / LIRC accessible functions  */
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/***  CommandIR Client Process Functions (Handle all USB operations)
- */
- 
-int channels_space_available[MAX_CHANNELS]; 
-int channels_space_updated = 0; // last updated time
-
-char * signalq[MAX_SIGNALQ];	// how many signals can be queued
-int signalq_len[MAX_SIGNALQ];
-int signalq_bitmask[MAX_SIGNALQ];
-unsigned int signalq_frequency[MAX_SIGNALQ];
-
-int top_signalq = -1;
-int next_signalq_per_channel[MAX_CHANNELS];	
-
-unsigned char commandir_tx_start[MAX_CHANNELS*4];
-unsigned char commandir_tx_end[MAX_CHANNELS*4];
-unsigned char commandir_tx_available[MAX_CHANNELS];
-unsigned char lastSendSignalID[MAX_CHANNELS];
-unsigned char commandir_last_signal_id[MAX_CHANNELS];
-
-
-// Global variables to convert channel masks to consistant easier formats
-unsigned char hash_mask[MAX_CHANNELS];
-unsigned char selected_channels[MAX_CHANNELS];
-unsigned char total_selected_channels = 0;
-int shutdown_pending = 0;
-int read_delay = WAIT_BETWEEN_READS_US;
-int insert_fast_zeros = 0;
-
-int rx_hold = 0;
-
-// This is the only one for pre-pipelinging
-int pre_pipeline_emitter_mask = 0x000f; // default tx on only first CommandIR
-
-
-static void pipeline_check()
-{
-	/* Transmit from the pipeline if it's time and there's space
-	 * what's available should now be updated in the main_loop
-	 */
-	
-	int i,j,k;
-	
-	i=0;
-	if(top_signalq < 0) return;
-	
-	while(i <= top_signalq)
-	{
-
-		// Are ALL the channels this signal should TX on currently available?
-		int oktosend = 1;
-		set_hash_mask( signalq_bitmask[ i ] );
-		for(j = 0; j<total_selected_channels; j++)
-		{
-			if(commandir_tx_available[ selected_channels[j] ] < 
-				(36 + (signalq_len[ i ])/sizeof(lirc_t)))	
-			{
-				oktosend = 0;
-				break;
-			}
-		}
-		
-		if(oktosend)
-		{
-			// great, TX this on all the channels.
-			
-			commandir_transmit(signalq[ i ], signalq_len[ i ], signalq_bitmask[ i ], signalq_frequency[ i ]);
-			
-			for(j = 0; j<total_selected_channels; j++)
-			{
-				/*  commandir_tx_available[ selected_channels[j] ] -= 
-					(64 + (signalq_len[ i ])/sizeof(lirc_t));  */
-				commandir_tx_available[ selected_channels[j] ] = 0; 
-			}
-			
-			/* Free up the memory, and see if there are new next_signalq's 
-			 * (any more for this channel to TX)
-			 */
-			free(signalq[i]);
-			
-			for(k=i; k<top_signalq; k++)
-			{
-				signalq[k] = signalq[k+1];
-				signalq_len[k] = signalq_len[k+1];
-				signalq_bitmask[k] = signalq_bitmask[k+1];
-				signalq_frequency[k] = signalq_frequency[k+1];
-			}
-			top_signalq--;
-		}
-		else
-		{
-			i++;
-		}
-	}
-}
-
-static int get_bit(int bitnum)
-{
-	int r = 1;
-	return r << bitnum; // bit 0 is 1, bit 1 is 10, bit 2 is 100...
-}
-
-static void add_to_tx_pipeline(unsigned char *buffer, int bytes, 
-	int channel_mask, unsigned int frequency)
-{
-	/* *buffer points to a buffer that will be OVERWRITTEN; malloc our copy.
-	 * buffer is a LIRC_T packet for CommandIR 
-	 */
-	top_signalq++;
-	if(top_signalq > MAX_SIGNALQ)
-	{
-		logprintf(LOG_ERR, "Too many signals in queue: > %d", MAX_SIGNALQ);
-		return;
-	}
-	
-	signalq[top_signalq] = malloc(bytes);
-	
-	signalq_len[top_signalq] = bytes;
-	signalq_bitmask[top_signalq] = channel_mask;
-	signalq_frequency[top_signalq] = frequency;
-	
-	lirc_t *oldsignal, *newsignal;
-	int x, pulse_now = 1;
-	int projected_signal_length;
-	short aPCAFOM = 0;
-	float afPCAFOM = 0.0;
-	int difference = 0;
-					
-	afPCAFOM = (6000000.0 / ((frequency > 0) ? frequency : DEFAULT_FREQ)  ) ; 
-	aPCAFOM = afPCAFOM;
-	
-	// Trim off mid-modulation pulse fragments, add to space for exact signals
-	for(x=0; x<(bytes/sizeof(lirc_t)); x++)
-	{
-		oldsignal = (lirc_t *)&buffer[x*sizeof(lirc_t)];
-		newsignal = (lirc_t *)signalq[top_signalq];
-		newsignal += x;
-		
-		if(pulse_now==1){
-			projected_signal_length =  
-				(((int)( (*oldsignal * 12)/( afPCAFOM ) ))  * aPCAFOM) / 12;
-			difference = *oldsignal - projected_signal_length;
-			// take off difference plus 1 full FOM cycle
-			*newsignal = *oldsignal - difference - (aPCAFOM / 12);	
-			
-		}
-		else
-		{
-			if(difference != 0)
-			{
-				// Add anything subtracted from the pulse to the space
-				*newsignal = *oldsignal + difference + (aPCAFOM / 12);
-				difference = 0;
-			}
-		
-		}
-		
-		pulse_now++;
-		if(pulse_now > 1) pulse_now = 0;
-	}
-	
-	return;
-}
-
-static void recalc_tx_available(int which_commandir)
-{
-	int i;
-	int length = 0;
-	static int failsafe = 0;
-	
-	if(lastSendSignalID[which_commandir] != 
-		commandir_last_signal_id[which_commandir])
-	{
-		/* INNOVATIONONE_FLAG:REMOVE  This will be removed pending testing
-		 * for a future release
-		 */
-		if(failsafe++ < 1000)
-		{
-			return;
-		}
-		logprintf(LOG_ERR, "Error: required the failsafe");
-	}
-	
-	failsafe = 0;
-	for(i=which_commandir*4; i<((which_commandir+1)*4); i++)
-	{
-		length = commandir_tx_end[i] - commandir_tx_start[i];
-		if(length < 0) length += 0xff;
-		
-		if(commandir_tx_available[i] < 0xff - length)
-			commandir_tx_available[i] = 0xff - length;
-			
-	}
-}
-
-static void set_hash_mask(int channel_mask) // eg, 8
-{
-	// bitwise set of hash_mask for easier coding...
-	int i,j;
-	j=channel_mask;
-	total_selected_channels = 0;
-	for(i=0; i<MAX_CHANNELS; i++)
-	{
-		hash_mask[i] = j & 0x01;
-		j = j >> 1;
-		if(hash_mask[i])
-			selected_channels[total_selected_channels++] = i;
-	}
-}
-
-
-static void commandir_transmit(char *buffer, int bytes, int bitmask, 
-	unsigned int frequency)
-{
-	/*** Send a TX command to 1 or more CommandIRs.
-	 * Keep in mind: TX frequency, TX channels, TX signal length, 
-	 * which CommandIR, & what hardware version
-	 */
-	
-	int send_status;
-	unsigned char packet[TX_BUFFER_SIZE];
-	/* So we know where there should be gaps between signals and more 
-	 * importantly, where there shouldn't be
-	 */
-	static char signalid = 1;	
-	
-	/* Depending on the tx channels, then depending on what hardware it is, 
-	 * set the freq if needed, and send the buffer with the channel header 
-	 * that's right for that CommandIR
-	 */
-	
-	int devicenum = 0;
-	int sent = 0, tosend = 0;
-	unsigned char mini_tx_mask = 0;
-	lirc_t * signals;	// have bytes/sizeof(lirc_t) signals
-	signals = (lirc_t *)buffer;
-	int total_signals = 0;
-	int i;
-	char cmdir_char[66];
-	int which_signal = 0;
-	
-	total_signals = bytes / sizeof(lirc_t);
-	
-	setEmitterMask(bitmask);
-	
-	for(devicenum = 0; devicenum < device_count; devicenum++)
-	{
-		// Do we transmit on any channels on this device?
-		if(channels_en[ devicenum ])
-		{
-			which_signal = 0;
-			switch(open_commandir_devices[ tx_order[devicenum] ].hw_type)
-			{
-				case HW_COMMANDIR_2:
-					
-					mini_tx_mask = 0;
-					// Short enough loop to unroll
-					if(channels_en[ devicenum ] & 1) mini_tx_mask |= 0x10;
-					if(channels_en[ devicenum ] & 2) mini_tx_mask |= 0x20;
-					if(channels_en[ devicenum ] & 4) mini_tx_mask |= 0x40;
-					if(channels_en[ devicenum ] & 8) mini_tx_mask |= 0x80;
-					
-					packet[1] = TX_COMMANDIR_II;
-					packet[2] = mini_tx_mask;
-					
-					short PCAFOM = 0;
-					float fPCAFOM = 0.0;
-					
-					if(bytes/sizeof(lirc_t) > 255)
-					{
-						logprintf(LOG_ERR, "Error: signal over max size");
-						continue; 
-					}
-					
-					fPCAFOM = (6000000 / ((frequency > 0) ? frequency : 
-						DEFAULT_FREQ)  ) ; 
-					PCAFOM = fPCAFOM;
-					
-					lastSendSignalID[  tx_order[devicenum]   ] = packet[5] = (getpid() + signalid++) + 1;	
-					
-					packet[4] = PCAFOM & 0xff;
-					packet[3] = (PCAFOM >> 8) & 0xff;					
-					
-					short packlets_to_send = 0, sending_this_time = 0;
-					
-					packlets_to_send = bytes / sizeof(lirc_t);
-					
-					int attempts;
-					for(attempts = 0; attempts < 10; attempts++)
-					{
-					
-						if((packlets_to_send*3 + 7) > open_commandir_devices[ tx_order[devicenum] ].endpoint_max[1])
-						{
-							sending_this_time = open_commandir_devices[ tx_order[devicenum] ].endpoint_max[1]/3 - 3;
-						}
-						else
-						{
-							sending_this_time = packlets_to_send;
-						}
-						int sending;
-
-						for(i=0; i<sending_this_time; i++)
-						{
-							sending = signals[which_signal++];
-							
-							packet[i*3+7] = sending >> 8; // high1
-							packet[i*3+8] = sending & 0xff; // low
-							packet[i*3+9] = sending >> 16 & 0xff; // high2
-						}
-						
-						packet[0] = (sending_this_time * 3 + 7);
-						packet[6] = (sending_this_time == packlets_to_send)  ? 0xcb :  0x00;
-						
-						send_status=usb_bulk_write(
-							open_commandir_devices[ tx_order[devicenum] ].cmdir_udev, 
-							2, // endpoint2
-							(char*)packet,
-							packet[0], 
-							USB_TIMEOUT_MS);
-						if(send_status < 0)
-						{
-							// Error transmitting.
-							hardware_scan();
-							return;
-						}
-						
-						packlets_to_send -= ((send_status - 7) / 3);
-						if(!packlets_to_send)
-						{
-							// "No more packlets to send\n"
-							break;
-						}
-					}
-					continue; // for transmitting on next CommandIR device
-					
-			
-				case HW_COMMANDIR_MINI:
-					mini_tx_mask = 0;
-					if(channels_en[ devicenum ] & 1) mini_tx_mask |= 0x80;
-					if(channels_en[ devicenum ] & 2) mini_tx_mask |= 0x40;
-					if(channels_en[ devicenum ] & 4) mini_tx_mask |= 0x20;
-					if(channels_en[ devicenum ] & 8) mini_tx_mask |= 0x10;
-					
-					char freqPulseWidth = DEFAULT_PULSE_WIDTH;
-					
-					freqPulseWidth = (unsigned char)((1000000 / 
-						((frequency > 0) ? frequency: DEFAULT_FREQ)  ) / 2);
-					
-					if(freqPulseWidth == 0)
-					{
-						freqPulseWidth = DEFAULT_PULSE_WIDTH;
-					}
-					
-					if(mini_freq[ tx_order[devicenum] ] != freqPulseWidth)
-					{
-						// Update the CommandIR Mini's next tx frequency
-						cmdir_char[0] = FREQ_HEADER;
-						cmdir_char[1] = freqPulseWidth;
-						cmdir_char[2] = 0;
-						mini_freq[ tx_order[devicenum] ] = freqPulseWidth;
-						send_status=usb_bulk_write(
-							open_commandir_devices[ tx_order[devicenum] ].cmdir_udev, 
-							2, // endpoint2
-							cmdir_char,
-							2, // 2 bytes
-							USB_TIMEOUT_MS);
-						if(send_status < 2)
-						{
-							// Error transmitting.
-							hardware_scan();
-							return ;
-						}
- 					}
-					
-					unsigned int mod_signal_length=0;
-					
-					cmdir_char[0] = TX_HEADER_NEW;
- 					cmdir_char[1] = mini_tx_mask;
-					
-					unsigned int hibyte, lobyte;
-
-					sent = 0;
-					which_signal = 0;
-					while(sent < (bytes / sizeof(lirc_t) * 2 ) )
-					{
- 						tosend = (bytes / sizeof(lirc_t) * 2 ) - sent;
-						
-						if(tosend > (MAX_HW_MINI_PACKET - 2))
-						{
-							tosend = MAX_HW_MINI_PACKET - 2;
-						}
-						
-						for(i=0;i<(tosend/2);i++) // 2 bytes per CommandIR pkt
-						{
-							mod_signal_length = signals[which_signal++] >> 3;
-							hibyte = mod_signal_length/256;
-							lobyte = mod_signal_length%256;
-							cmdir_char[i*2+3] = lobyte;
-							cmdir_char[i*2+2] = hibyte;
-						}
-
-						send_status=usb_bulk_write(
-							open_commandir_devices[ tx_order[devicenum] ].cmdir_udev, 
-							2, // endpoint2
-							cmdir_char,
-							tosend + 2, 
-							USB_TIMEOUT_MS);
-						if(send_status < 1)
-						{
-							// Error transmitting.
-							hardware_scan();
-							return;
-						}
-						sent += tosend;
-					} // while unsent data
-					continue; // for transmitting on next CommandIR device
-				default:
-					logprintf(LOG_ERR, "Unknown hardware: %d", 
-						open_commandir_devices[tx_order[devicenum]].hw_type);
-			} // hardware switch()
-		} // if we should tx on this device
-	} // for each device we have
-}
-
-
-static void commandir_child_init()
-{
-	alarm(0);
-	signal(SIGTERM, shutdown_usb);
-	signal(SIGPIPE, SIG_DFL);
-	signal(SIGINT, shutdown_usb);
-	signal(SIGHUP, SIG_IGN);
-	signal(SIGALRM, SIG_IGN);
-	
-	logprintf(LOG_ERR, "Child Initializing CommandIR Hardware");
-	
-	usb_init();
-	int i;
-	for(i=0;i<MAX_CHANNELS;i++)
-	{
-		next_signalq_per_channel[i] = -1;
-		channels_en[i] = 0xff;
-	}
-/*	
-	// Check kernel version: support fast decoding
-	char checkV[] = {0,0,0,0,0,0,0,0,0,0};
-	FILE * checkfile;
-	int kernel_major = 0, kernel_minor = 0;
-	
-	checkfile=fopen("/proc/sys/kernel/osrelease", "r");
-	if(checkfile!=NULL)
-	{
-		fgets(checkV, 7, checkfile);
-		printf("Checking: %s.\n", checkV);
-		printf("Version checking %s.\n", &checkV[4]);
-		kernel_major = atoi(&checkV[2]);
-		kernel_minor = atoi(&checkV[4]);
-		printf("Major is: %d, minor is %d.\n", kernel_major, kernel_minor);
-		fclose(checkfile);
-	}
-	
-	if(kernel_major < 6){
-		insert_fast_zeros = 0;
-		logprintf(LOG_ERR, "Fast decoding disabled");
-	}
-	else
-	{
-		if(kernel_minor <= 24)
-		{
-			logprintf(LOG_ERR, "Fast decoding enabled (1)");
-			insert_fast_zeros = 1;
-		}
-		else
-		{
-			logprintf(LOG_ERR, "Fast decoding enabled");
-			insert_fast_zeros = 2;
-		}
-	}*/
-	hardware_scan();
-}
-
-static void hardware_disconnect(int commandir_spot)
-{
-	/* We had a read/write error, try disconnecting it and force _scan to 
-	 * reconnect - otherwise we may get perpetual read/write errors
-	 */
-	
-	int x;
-	
-	//	reset the hash so we don't try and disconnect this device again
-	//  device_count is decremented here
-	cleanup_commandir_dev(commandir_spot);
-	
-	raise_event(COMMANDIR_UNPLUG_1 + commandir_spot);
-	
-	/* Cases are:
-	removing device 0 when there's no more device (do nothing)
-	removing device < MAX when there's still 1+ devices (patch up)
-	removing device==MAX when there's more devices (do nothing)
-	*/
-	
-	// new device count-- from cleanup (if device_count > 0 AND commandir removed isn't 0 or max)
-	if( (device_count > 0) && (commandir_spot != device_count) )
-	{
-		/* It wasn't the top device removed, and there's 
-			* more than 1 device, so we have some vars to patch up
-			*/
-		for(x=commandir_spot; x<(device_count); x++)
-		{
-			channels_en[x] = channels_en[x+1];
-			mini_freq[x] = mini_freq[x+1];
-			commandir_last_signal_id[x] = commandir_last_signal_id[x+1];
-			lastSendSignalID[x] = lastSendSignalID[x+1];
-			memcpy(&open_commandir_devices[x], 
-				&open_commandir_devices[x+1], 
-				sizeof(struct commandir_device));	
-		}
-	
-	// Reset the TOP one that was just removed:
-		channels_en[(int)device_count] = 0x0f;
-		mini_freq[(int)device_count] = -1;
-		commandir_last_signal_id[(int)device_count] = 0;
-		lastSendSignalID[(int)device_count] = 0;
-		open_commandir_devices[(int)device_count].cmdir_udev = 0;
-		open_commandir_devices[(int)device_count].bus = 0;
-		open_commandir_devices[(int)device_count].busdev = 0;
-		open_commandir_devices[(int)device_count].interface = 0; 
-		open_commandir_devices[(int)device_count].hw_type = 0;
-		open_commandir_devices[(int)device_count].hw_revision = 0;
-		open_commandir_devices[(int)device_count].hw_subversion = 0;
-		
-	}
-	
-	if(commandir_rx_num>=commandir_spot)
-	{
-		commandir_rx_num--;	
-	}
-
-	hardware_setorder();
-}
-
-static void hardware_setorder(){
-	/* Tried to order to the detected CommandIRs based on bus and dev ids
-		* so they remain the same on reboot.  Adding a new device in front
-		* will mean it becomes device 0 and emitters or scripts must be fixed
-		* Need a different param, these still change. 
-		*/
-		
-	tx_order[0] = tx_order[1] = tx_order[2] = tx_order[3] = 0; 
-	mini_freq[0] = mini_freq[1] = mini_freq[2] = mini_freq[3] = -1;
-	int largest = 0;
-	int tmpvals[4];
-	int x, tx_spots, find_spot;
-	
-	for(x=0; x<device_count; x++)
-	{
-		tmpvals[x] = 256 * open_commandir_devices[x].bus + 
-			open_commandir_devices[x].busdev;
-	}
-	
-	for(tx_spots = 0; tx_spots < device_count; tx_spots++)
-	{
-		largest = 0;
-		for(find_spot = 0; find_spot < device_count; find_spot++)
-		{
-			if(tmpvals[find_spot] > tmpvals[largest])
-			{
-				largest = find_spot;
-			}
-		}
-		tx_order[device_count - tx_spots - 1 ] = largest;
-		tmpvals[largest] = 0;
-	}
-	
-	
-	// The formerly receiving CommandIR has been unplugged
-	if(commandir_rx_num < 0)
-	{
-		if(device_count > 0)
-			commandir_rx_num = 0;
-	}
-	
-	// Clear all pending signals
-	for(x=top_signalq; x >= 0; x--)
-	{
-		free(signalq[top_signalq]);
-	}
-	top_signalq = -1;
-	
-}
-
-static void cleanup_commandir_dev(int spotnum)
-{
-	int location, devnum;
-
-	location = open_commandir_devices[spotnum].location;
-	devnum = open_commandir_devices[spotnum].devnum;
-
-  open_bus_hash[ location ][ devnum ] = 0;
-	device_count--;	
-  
-	if(open_commandir_devices[spotnum].cmdir_udev==NULL)
-	{
-		return;
-	}
-	usb_release_interface(open_commandir_devices[spotnum].cmdir_udev, 
-		open_commandir_devices[spotnum].interface);
-	usb_close(open_commandir_devices[spotnum].cmdir_udev);
-	open_commandir_devices[spotnum].cmdir_udev = NULL;
-}
-
-
-static void hardware_scan()
-{
-	// Scan for hardware changes; libusb doesn't notify us...
-	unsigned char located = 0;
-	struct usb_bus *bus = 0;
-	struct usb_device *dev = 0;
-	
-	int scan_find[MAX_DEVICES][2]; // [0]=bus#, [1]=busdev#
-	unsigned char found = 0;
-	// Using hash for performance instead of memory conservation (+1k)
-	unsigned char still_found[USB_MAX_BUSES][USB_MAX_BUSDEV];
-	unsigned changed = 0;
-	int find_spot = 0;
-	
-	usb_find_busses();
-	usb_find_devices();
- 	
- 	for (bus = usb_busses; bus; bus = bus->next)
-	{
-		for (dev = bus->devices; dev; dev = dev->next)	
-		{
-			if (dev->descriptor.idVendor == USB_CMDIR_VENDOR_ID) 
-			{
-				located++;
-				// Do we already know about it?
-				if(!open_bus_hash[bus->location][dev->devnum]){
-				  // Then it's new, open it if we have a spot available
-				  for(find_spot=0; find_spot < MAX_DEVICES; find_spot++)
-				  {
-					if(open_commandir_devices[find_spot].cmdir_udev == NULL)
-					{
-					  // Try to open here
-					  open_commandir_devices[find_spot].cmdir_udev = usb_open(dev);
-					  if(open_commandir_devices[find_spot].cmdir_udev == NULL)
-					  {
-						logprintf(LOG_ERR, 
-						  "Error opening commandir - bus %d, device %d.",
-						  bus, dev);
-						  break;
-						}
-						else 
-						{
-						  
-						// Try to set configuration; not needed on Linux
-// 						int usb_set_configuration(usb_dev_handle *dev, int configuration);
- 							int r = 0;
-// 							r = usb_set_configuration(open_commandir_devices[find_spot].cmdir_udev, 1);
-// 						printf("Set_configuration returned %d.\n", r);
-						  
-						  r = usb_claim_interface(
-						  	open_commandir_devices[find_spot].cmdir_udev,0);
-						  if(r < 0)
-						  {
-						  	cleanup_commandir_dev(find_spot);
-								logprintf(LOG_ERR, 
-								"Unable to claim CommandIR - Is it already busy?"
-								);
-								logprintf(LOG_ERR, 
-								"Try 'rmmod commandir' or check for other lircds"
-								);
-								break;
-						  }
-						  else 
-						  {
-							// great, it's ours
-							open_commandir_devices[find_spot].location = bus->location;
-							open_commandir_devices[find_spot].devnum = dev->devnum;
-							open_bus_hash[bus->location][dev->devnum] = 1;
-							open_commandir_devices[find_spot].bus = bus->location;
-							open_commandir_devices[find_spot].busdev = dev->devnum;
-							scan_find[++found][0] = bus->location;
-							scan_find[found][1] = dev->devnum;
-							device_count++;
-							changed++;
-							still_found[bus->location][dev->devnum] = 1;	
-							 
-							struct usb_config_descriptor *config = &dev->config[0];
-							struct usb_interface *interface = &config->interface[0];
-							struct usb_interface_descriptor *ainterface = &interface->altsetting[0];
-/*						struct usb_endpoint_descriptor *endpoint = &ainterface->endpoint[2];*/
-							
-							int i;// Load wMaxPacketSize for each endpoint; subtract 0x80 
-										// for double-buffer bit
-							for (i = 0; i < ainterface->bNumEndpoints; i++)
-							{
-								open_commandir_devices[find_spot].endpoint_max[ 
-									(ainterface->endpoint[i].bEndpointAddress >= 0x80) 
-									? (ainterface->endpoint[i].bEndpointAddress-0x80) 
-									: (ainterface->endpoint[i].bEndpointAddress)] 
-									= ainterface->endpoint[i].wMaxPacketSize;
-							}
-							
-							// compensate for double buffer:
-							open_commandir_devices[find_spot].endpoint_max[1] *= 2;
-							
-							// Always use the latest to RX:
-							commandir_rx_num = find_spot;	
-							
-							switch(dev->descriptor.iProduct)
-							{
-							 case 2:
-							 	logprintf(LOG_ERR, "Product identified as CommandIR II");
-							 	open_commandir_devices[find_spot].hw_type = HW_COMMANDIR_2;
-							  open_commandir_devices[find_spot].hw_revision = 0;
-							  open_commandir_devices[find_spot].hw_subversion = 0;
-							  
-							  int send_status = 0, tries=20;
-							  static char get_version[] = {2, GET_VERSION};
-
-								send_status = 4;	// just to start the while()
-								
-								while(tries--){
-									usleep(USB_TIMEOUT_US);	// wait a moment
-										
-									// try moving this below:
-									send_status = usb_bulk_write(
-									open_commandir_devices[find_spot].cmdir_udev, 
-										2, // endpoint2
-										get_version,
-										2, 
-										1500);
-									if(send_status < 0)
-									{
-										logprintf(LOG_ERR, 
-											"Unable to write version request - Is CommandIR busy? Error %d", send_status);
-										break;
-									}
-									
-									send_status = usb_bulk_read(
-										open_commandir_devices[find_spot].cmdir_udev,
-										1,
-										(char *)commandir_data_buffer,
-										open_commandir_devices[ find_spot ].endpoint_max[1],
-										1500);
-										
-									if(send_status < 0)
-									{
-										logprintf(LOG_ERR, 
-											"Unable to read version request - Is CommandIR busy? Error %d", send_status);
-										cleanup_commandir_dev(find_spot);
-										break;
-									}
-									if(send_status==3)
-									{
-										if(commandir_data_buffer[0]==GET_VERSION)
-										{
-											// Sending back version information.
-											open_commandir_devices[find_spot].hw_revision = 
-												commandir_data_buffer[1];
-											open_commandir_devices[find_spot].hw_subversion = 
-												commandir_data_buffer[2];
-											logprintf(LOG_ERR, "Hardware revision is %d.%d.", 
-												commandir_data_buffer[1], commandir_data_buffer[2]);
-											break;
-										}
-										else
-										{
-											continue;
-										}
-									}
-									
-							}
-							break;
-							default:
-								logprintf(LOG_ERR, "Product identified as CommandIR Mini");
-   							open_commandir_devices[find_spot].hw_type = 
-								HW_COMMANDIR_MINI;
-							}
-							
-							if(open_commandir_devices[find_spot].hw_type == 
-								HW_COMMANDIR_UNKNOWN)
-							{
-								logprintf(LOG_ERR, "Product UNKNOWN - cleanup");
-								cleanup_commandir_dev(find_spot);
-							}
-							else
-							{
-								lastSendSignalID[find_spot] = 0;
-								commandir_last_signal_id[find_spot] = 0;
-							}
-							break; // don't keep looping through find_spot
-							} // claim?
-						}// open?
-					}// spot available?
-				 }// for(spots)
-				} // if we haven't seen it before
-				else
-				{
-					still_found[bus->location][dev->devnum] = 1;
-				}
-			}// if it's a CommandIR
-		}// for bus dev's
-	}// for bus's
-	
-	if(!located)
-	{
-		logprintf(LOG_ERR, "No CommandIRs found");
-	}
-	
-	/* Check if any we currently know about have been removed
-	 * (Usually, we get a read/write error first)
-	 */
-	for(find_spot = 0; find_spot < MAX_DEVICES; find_spot++)
-	{
-		if(open_commandir_devices[find_spot].cmdir_udev != NULL)
-		{
-			if(still_found[open_commandir_devices[find_spot].location]
-				[open_commandir_devices[find_spot].devnum] != 1)
-			{
-				logprintf(LOG_ERR, "Commandir %d removed from [%d][%d].", find_spot,open_commandir_devices[find_spot].location, open_commandir_devices[find_spot].devnum);
-				raise_event(COMMANDIR_UNPLUG_1 + find_spot);
-				hardware_disconnect(find_spot);
-				commandir_rx_num = -1;
-				changed++;
-			}
-		}
-	}
-	
-	if(changed)
-	{
-		hardware_setorder();
-		raise_event(COMMANDIR_REORDERED);
-	}
-	
-}
-
-
-// Shutdown everything and terminate 
-static void shutdown_usb()
-{
-	int x;
-	
-	// Wait for any TX to complete before shutting down
-	if(top_signalq >= 0)
-	{
-		shutdown_pending++;
-		logprintf(LOG_ERR, "Waiting for signals to finish transmitting before shutdown");
-		return;
-	}
-	
-	for(x=0; x<MAX_DEVICES; x++)
-	{
-		if(open_commandir_devices[x].cmdir_udev )
-		{
-			usb_release_interface(open_commandir_devices[x].cmdir_udev, 
-				open_commandir_devices[x].interface);
-			usb_close(open_commandir_devices[x].cmdir_udev);
-		}
-	}
-	logprintf(LOG_ERR, "CommandIR driver child cleaned up and exiting");
-	raise_event(COMMANDIR_STOPPED);
-
-	_exit(EXIT_SUCCESS);
-}
-
-static void commandir_read_loop()
-{
-	// Read from CommandIR, Write to pipe
-	
-	unsigned char commands[MAX_COMMAND];
-	int curCommandStart = 0;
-	int curCommandLength = 0;
-	int bytes_read;
-	unsigned char periodic_checks = 0;
-	static unsigned char rx_decode_led[7] = {7, PROC_SET, 0x40, 0, 0,4, 2}; 
-	static unsigned char init_led[7] = {7, PROC_SET, 0x00, 0x01, 3, 55, 2}; 
-	static unsigned char deinit_led[7] = {7, PROC_SET, 0x0, 0x02, 3, 45, 2}; 
-	static unsigned int LIRC_frequency = 38000; 
-
-	int send_status = 0; 
-	int i = 0;
-	int tmp = 0;
-	int tmp2 = 0;
-
-	raise_event(COMMANDIR_READY);
-	
-	for(;;){
-		/*** This is the main loop the monitors control and TX events from 
-		  * the parent, and monitors the CommandIR RX buffer
-		  */
-		
-		curCommandStart = 0;
-		curCommandLength = 0;
-		bytes_read = read(tochild_read, commands, MAX_COMMAND); 
-		
-		if(shutdown_pending > 0 && (top_signalq==-1))
-			shutdown_usb();
-		
-		if(bytes_read > 0){
-		
-			while(curCommandStart < bytes_read){
-				curCommandLength = commands[curCommandStart] + 
-					commands[curCommandStart + 1] * 256;
-				
-				switch(commands[curCommandStart + 2]){	// the control value
-					case DEINIT_HEADER_LIRC:
-						for(i=0; i<device_count; i++)
-						{
-						 if(open_commandir_devices[tx_order[i]].hw_type ==
-						  HW_COMMANDIR_2)
-						 {
-						  if(open_commandir_devices[tx_order[i]].cmdir_udev > 0)
-						  {
-							send_status=usb_bulk_write(
-								open_commandir_devices[tx_order[i]].cmdir_udev, 
-								2, // endpoint2
-								(char*)deinit_led,
-								7, // bytes
-								USB_TIMEOUT_MS);
-						  }
-						  rx_hold = 1;	// Put a hold on RX, but queue events
-						 }
-						}
-						
-						break;
-					case INIT_HEADER_LIRC:
-						for(i=0; i<device_count; i++)
-						{
-						 if(open_commandir_devices[tx_order[i]].hw_type == 
-							HW_COMMANDIR_2)
-						 {
-						 if(open_commandir_devices[tx_order[i] ].cmdir_udev > 0)
-						  {
-							send_status=usb_bulk_write(
-								open_commandir_devices[tx_order[i] ].cmdir_udev,
-								2, // endpoint2
-								(char*)init_led,
-								7, // bytes
-								USB_TIMEOUT_MS);
-						  }
-						  rx_hold = 0;	// Resume RX after queue events
-						 }
-						}
-						break;
-					case RXDECODE_HEADER_LIRC:
-					  //	Successful RX decode: show it on the light.
-					  if(open_commandir_devices[commandir_rx_num].cmdir_udev > 0)
-					  {
-						send_status=usb_bulk_write(
-							open_commandir_devices[commandir_rx_num].cmdir_udev,
-							2, // endpoint2
-							(char*)rx_decode_led,
-							7, // bytes
-							USB_TIMEOUT_MS);
-
-					  }
-					  break;
-
-					case FREQ_HEADER_LIRC:
-						LIRC_frequency = (commands[curCommandStart + 6] & 0x000000ff) | 
-							((commands[curCommandStart + 5] << 8) & 0x0000ff00) | 
-							((commands[curCommandStart + 4] << 16) & 0x00ff0000) | 
-							((commands[curCommandStart + 3] << 24) & 0xff000000);
-						if(!LIRC_frequency)
-							LIRC_frequency = DEFAULT_FREQ;
-						break;
-					case TX_HEADER_NEW:
-					case TX_LIRC_T:
-						if(curCommandLength==64)
-						{
-							if(check_irsend_commandir(&commands[curCommandStart + 4]))
-							{
-								break; // it's a command for us
-							}
-						}
-						add_to_tx_pipeline(&commands[curCommandStart + 4], 
-							curCommandLength - 4, pre_pipeline_emitter_mask, LIRC_frequency);
-						break;
-						
-					case CHANNEL_EN_MASK:
-						pre_pipeline_emitter_mask = (commands[curCommandStart+4] << 8) |
-							 commands[curCommandStart+3];
-						break;
-				}
-				curCommandStart += curCommandLength;
-			
-			}
-		}
-		// If we're receiving, make sure the commandir buffer doesn't overrun
-		if(commandir_read() < 20 )
-			tmp = 2;
-		while(tmp-- > 0)
-		{
-			tmp2 = commandir_read();
-// 		printf("commandir_read() (%d) returning %d.\n", tmp,tmp2);
-		}
-		if(tmp2 < 20 ){
-			// once in a while, but never while we're retreaving a signal
-			if(++periodic_checks>100)
-			{
-				hardware_scan();
-				periodic_checks = 0;
-			}
-			else
-			{
- 				usleep(read_delay);
- 			}
-		}
-	}
-
-}
-
-static int check_irsend_commandir(unsigned char *command)
-{
-	// decode the code like LIRC would do, and take an action
-	int commandir_code = 0;
-	
-	commandir_code = commandir_decode((char*)command);
-	
-	if(commandir_code > 0xef)
-	{
-		// It's a settransmitters command
-		int channel = commandir_code & 0x0f;
-		
-		// can only set 1 bit from here so far..,
-		pre_pipeline_emitter_mask = 0x0001 << channel;	
-		
-		return commandir_code;
-	}
-	
-	switch(commandir_code)
-	{
-		case 0x53:
-			read_delay /= 2;	// "faster" means less time
-			if(read_delay < MIN_WAIT_BETWEEN_READS_US)
-				read_delay = MIN_WAIT_BETWEEN_READS_US;
-			break;
-		case 0x54:
-			read_delay *= 2;	// "slower" means more time
-			if(read_delay > MAX_WAIT_BETWEEN_READS_US)
-				read_delay = MAX_WAIT_BETWEEN_READS_US;
-			break;
-	
-		case 0x09: 
-		case 0x0A:
-			logprintf(LOG_ERR, "Re-selecting RX not implemented yet");
-			break;
-			
-		case 0xe6:	//	disable-fast-decode
-			logprintf(LOG_ERR, "Fast decoding disabled");
-			insert_fast_zeros = 0;
-			break;
-			
-		case 0xe7:	//	enable-fast-decode
-		case 0xe9:	//	force-fast-decode-2
-			logprintf(LOG_ERR, "Fast decoding enabled");
-			insert_fast_zeros = 2;
-			break;
-		
-		case 0xe8:	//	force-fast-decode-1
-			logprintf(LOG_ERR, "Fast decoding enabled (1)");
-			insert_fast_zeros = 1;
-			break;
-			
-		default:
-			if(commandir_code > 0x60 && commandir_code < 0xf0)
-			{
-				int ledhigh = 0, ledlow = 0, ledprog = -1;
-				// LED Command
-				switch(commandir_code >> 4)
-				{
-					case 0x6: ledlow = 0x80; break;
-					case 0x7: ledlow = 0x40; break;
-					case 0x8: ledlow = 0x20; break;
-					case 0x9: ledlow = 0x10; break;
-					case 0xa: ledlow = 0x04; break;
-					case 0xb: ledhigh = 0x80; break;
-					case 0xc: ledlow = 0x01; break;
-					case 0xd: ledlow = 0x02; break;
-					case 0xe: ledlow = 0x08; break;
-				}
-				ledprog = (commandir_code & 0x0f) - 1;
-				
-				if( ((ledhigh + ledlow) > 0) && ledprog > -1)
-				{
-					//	Set light:
-					static unsigned char lightchange[7] = {7, 
-					PROC_SET, 0, 0, 0, 0, 3}; 
-					lightchange[2] = ledhigh;
-					lightchange[3] = ledlow;
-					lightchange[4] = ledprog;
-					int send_status = 0; 
-					
-					send_status=usb_bulk_write(
-						open_commandir_devices[tx_order[0]].cmdir_udev, 
-						2, // endpoint2
-						(char *)lightchange,
-						7, // bytes
-						USB_TIMEOUT_MS);
-				}
-				
-				return commandir_code; // done
-			}
-		
-	}
-
-	return commandir_code;
-}
-
-
-// return how many RX's were in the last receive; so we know whether to poll more frequently or not
-static int commandir_read() 
-{
-	
-	/***  Which CommandIRs do we have to read from?  Poll RX CommandIRs 
-		* regularly, but non-receiving CommandIRs should be more periodically
-		*/
-	
-	int i,j;
-	int read_received = 0;
-	int read_retval = 0;
-	int conv_retval = 0;
-	int max_read = 5;
-	static int zeroterminated = 0;
-
-	for(i=0; i<device_count; i++)
-	{
-	
-		switch(open_commandir_devices[tx_order[i]].hw_type)
-		{
-			case HW_COMMANDIR_2:
-		
-				read_retval = usb_bulk_read(
-					open_commandir_devices[ tx_order[i] ].cmdir_udev,
-					1,
-					(char *)commandir_data_buffer,
-					open_commandir_devices[ tx_order[i] ].endpoint_max[1],
-					5000);	
-					
-				if(read_retval==0)
-					break;
-				
-				if(read_retval < 1)
-				{
-					if(read_retval < 0)
-					{
-						if(read_retval == -19){
-							logprintf(LOG_ERR, "Read Error - CommandIR probably unplugged");
-						}
-						else
-						{
-							logprintf(LOG_ERR, 
-								"Didn't receive a full packet from a CommandIR II! - err %d ."
-								, read_retval);
-						}
-						hardware_disconnect(tx_order[i]);
-						hardware_scan();
-					}
-					// 0 bytes is the most frequency case; nothing to report
-
-					break;
-				} 
-				
-				if(commandir_data_buffer[0]==RX_HEADER_TXAVAIL)
-				{
-					// sending us the current tx_start, tx_end arrays, and where it's at
-					commandir_tx_start[tx_order[i]*4] = commandir_data_buffer[4];
-					commandir_tx_start[tx_order[i]*4+1] = commandir_data_buffer[3];
-					commandir_tx_start[tx_order[i]*4+2] = commandir_data_buffer[2];
-					commandir_tx_start[tx_order[i]*4+3] = commandir_data_buffer[1];
-					
-					commandir_tx_end[tx_order[i]*4] = commandir_data_buffer[8];
-					commandir_tx_end[tx_order[i]*4+1] = commandir_data_buffer[7];
-					commandir_tx_end[tx_order[i]*4+2] = commandir_data_buffer[6];
-					commandir_tx_end[tx_order[i]*4+3] = commandir_data_buffer[5];
-					
-					commandir_last_signal_id[ tx_order[i] ] = commandir_data_buffer[9];
-					
-					recalc_tx_available(tx_order[i]); 
-					pipeline_check();
-					if(top_signalq > 0)
-					{
-						read_received++;	
-					}
-					
-					// This ALSO implies there's NO MORE RX DATA.
-					lirc_t lirc_zero_buffer[2] = {0, 0};
-					
-					int tmp4 = 0;
-					if(zeroterminated>1001)
-					{
-						// Send LIRC a 0,0 packet to allow IMMEDIATE decoding
-						if(insert_fast_zeros > 0)
-						{
-							tmp4 = write(child_pipe_write, lirc_zero_buffer, sizeof(lirc_t)*insert_fast_zeros);
-						}
-						zeroterminated = 0;
-					}
-					else
-					{
-						if((zeroterminated < 1000) && (zeroterminated > 0))
-							zeroterminated += 1000;
-						if(zeroterminated > 1000)
-							zeroterminated++;
-					}
-					
-					break;
-				}
-						
-						
-				if(commandir_data_buffer[0]==RX_HEADER_EVENTS)
-				{
-					for(j=1; j<(read_retval); j++)
-					{
-						raise_event(commandir_data_buffer[j]+tx_order[i]*0x10);
-					}
-				}
-				else
-				{
-					if( (commandir_data_buffer[0]==RX_HEADER_DATA) && 
-						(commandir_rx_num==tx_order[i]) )
-					{
-						if(rx_hold==0)	// Only if we should be listening for remote cmds
-						{
-							zeroterminated = 1;
-							conv_retval = commandir2_convert_RX(
-								(unsigned short *)&commandir_data_buffer[2], 
-								commandir_data_buffer[1]);
-							read_received = conv_retval; // header
-						}
-					}
-				}
-				break;
-			
-			case HW_COMMANDIR_MINI:
-			
-				max_read = 5;
-				while(max_read--){
-					
-					read_retval = usb_bulk_read(
-						open_commandir_devices[ tx_order[i] ].cmdir_udev,
-						1,
-						(char *)commandir_data_buffer,
-						64,
-						USB_TIMEOUT_MS);
-							
-					if (!(read_retval == MAX_HW_MINI_PACKET)) 
-					{
-						if(read_retval == -19){
-							logprintf(LOG_ERR, "Read Error - CommandIR probably unplugged");
-						}
-						else
-						{
-							logprintf(LOG_ERR, 
-								"Didn't receive a full packet from a Mini! - err %d ."
-								, read_retval);
-						}
-						
-						hardware_disconnect(tx_order[i]);
-						hardware_scan();
-						break; 
-					}
-
-					
-					if ( (commandir_data_buffer[1] > 0)  && 
-						(commandir_rx_num==tx_order[i]) ) 
-					{
-						conv_retval = cmdir_convert_RX(commandir_data_buffer);
-						
-						read_received += commandir_data_buffer[1];					
-						
-						if(commandir_data_buffer[1] < 20)
-						{
-							// Lots of hardware buffer room left; don't tie up CPU
-							break;
-						}
-					}
-					else
-					{
-						break;
-					}
-				} // while; should only repeat if there's more RX data
-				
-				/* CommandIR Mini only has 1 buffer  */
-				commandir_tx_start[tx_order[i]*4] = 0;
-				commandir_tx_start[tx_order[i]*4+1] = 0;
-				commandir_tx_start[tx_order[i]*4+2] = 0;
-				commandir_tx_start[tx_order[i]*4+3] = 0;
-				
-				commandir_tx_end[tx_order[i]*4] = commandir_data_buffer[2];
-				commandir_tx_end[tx_order[i]*4+1] = commandir_data_buffer[2];
-				commandir_tx_end[tx_order[i]*4+2] = commandir_data_buffer[2];
-				commandir_tx_end[tx_order[i]*4+3] = commandir_data_buffer[2];
-				
-				/* .. and it can't pipeline... */
-				commandir_last_signal_id[i] = lastSendSignalID[i];
-				recalc_tx_available(tx_order[i]); 
-				pipeline_check();
-				break;
-			case HW_COMMANDIR_UNKNOWN:
-					break;
-		} // end switch
-	} // for each attached hardware device
-	return read_received;
-}
-
-static void setEmitterMask(int bitmask)
-{
-	channels_en[0] = bitmask & 0x0F;
-	channels_en[1] = (bitmask >> 4) & 0xfF;
-	channels_en[2] = (bitmask >> 8) & 0xfF;
-	channels_en[3] = (bitmask >> 12) & 0xfF;
-}
-
-
-static int commandir2_convert_RX(unsigned short *bufferrx, 
-	unsigned char numvalues)
-{
-	// convert hardware timestamp values to elapsed time values
-	
-	int i;
-	int curpos = 0;
-	int bytes_w = 0;
-	lirc_t lirc_data_buffer[256];	
-	
-	i=0;
-	int pca_count = 0;
-	int overflows = 0;
-	
-	while(curpos < numvalues )
-	{
-		pca_count = (bufferrx[curpos] & 0x3fff) << 2; 
-		pca_count = pca_count / 12;
-		
-		if(bufferrx[curpos] & COMMANDIR_2_OVERFLOW_MASK)
-		{
-			overflows = bufferrx[curpos+1];
-			lirc_data_buffer[i] =  pca_count + (overflows * 0xffff / 12);
-			
-			if(bufferrx[curpos] & COMMANDIR_2_PULSE_MASK)
-			{
-				lirc_data_buffer[i] |= PULSE_BIT;
-			}
-			curpos++;
-		
-		}
-		else
-		{
-			lirc_data_buffer[i] = pca_count;
-			if(bufferrx[curpos] & COMMANDIR_2_PULSE_MASK)
-			{
-				lirc_data_buffer[i] |= PULSE_BIT;
-			}
-		}
-		
-		curpos++;
-		i++;
-		if(i> 255)
-		{
-			break;
-		}
-	}
-		
- 	bytes_w = write(child_pipe_write, lirc_data_buffer, sizeof(lirc_t)*i);
-	
-	if (bytes_w < 0)
-	{
-		logprintf(LOG_ERR, "Can't write to LIRC pipe! %d", child_pipe_write);
-		return 0;
-	}	
-	
-	return bytes_w;
-}
-
-
-
-
-// Originally from lirc_cmdir.c
-static int cmdir_convert_RX(unsigned char *orig_rxbuffer)
-{
-	unsigned int num_data_values = 0;
-	unsigned int num_data_bytes = 0;
-	unsigned int asint1 = 0, asint2 = 0, overflows = 0;
-	int i;
-	int bytes_w;	// Pipe write
-	lirc_t lirc_data_buffer[256];	
-	
-
-	num_data_bytes = orig_rxbuffer[1];
-	
-	/* check if num_bytes is multiple of 3; if not, error  */
-	if (num_data_bytes%3 > 0) return -1;
-	if (num_data_bytes > 60) return -3; 
-	if (num_data_bytes < 3) return -2;
-	
-	num_data_values = num_data_bytes/3;
-	
-	asint2 = orig_rxbuffer[3] + orig_rxbuffer[4] * 0xff;
-	if(last_mc_time==-1)
-	{
-		// The first time we run there's no previous time value
-		last_mc_time = asint2 - 110000;	
-		if(last_mc_time < 0) last_mc_time+=0xffff;
-	}
-	
-	asint1 = last_mc_time;
-	overflows = orig_rxbuffer[5];
-	
-	for(i=2; i<num_data_values+2; i++)
-	{
-		if(overflows < 0xff)
-		{
-			// space
-			lirc_data_buffer[i-2] = get_time_value(asint1,
-				 asint2, overflows) - 26;
-		} 
-		else 
-		{	// pulse
-			lirc_data_buffer[i-2] = get_time_value(asint1,
-				 asint2, 0) + 26;
-			lirc_data_buffer[i-2] |= PULSE_BIT;
-		}	
-		asint1 = asint2; 
-		asint2 = orig_rxbuffer[i*3] + orig_rxbuffer[i*3+1] * 0xff;
-		overflows = orig_rxbuffer[i*3+2];	
-	}
-	last_mc_time = asint1;
-	
-	
- 	bytes_w = write(child_pipe_write, lirc_data_buffer, sizeof(lirc_t)*num_data_values);
-	
-	if (bytes_w < 0)
-	{
-		logprintf(LOG_ERR, "Can't write to LIRC pipe! %d", child_pipe_write);
-		goto done;
-	}	
-	
-done:
-	return bytes_w;
-
-}
-
-
-
-
-static unsigned int get_time_value(unsigned int firstint, 
-	unsigned int secondint, unsigned char overflow) 
-{	
-	/* get difference between two MCU timestamps, CommandIR Mini version  */
-	unsigned int t_answer = 0;
-	
-	if (secondint > firstint) 
-	{
-		t_answer = secondint - firstint + overflow*0xffff;
-	} 
-	else 
-	{
-		if (overflow > 0) 
-		{
-			t_answer = (65536 - firstint) + secondint + (overflow - 1)*0xffff - 250;
-		} 
-		else 
-		{
-			t_answer = (65536 - firstint) + secondint;
-		}
-	}
-
-	/* clamp to long signal  */
-	if (t_answer > 16000000) t_answer = PULSE_MASK;
-	return t_answer;
-}
-
-
-static void raise_event(unsigned int eventid)
-{
-	/* Raise an LIRC Event by
-	 * Generating lirc_t Pattern
-	 */
-	static lirc_t event_data[18] = {LIRCCODE_GAP, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-	int i, bytes_w;
-
-	// 	logprintf(LOG_ERR, "Raising event %d", eventid);
-	for(i=0; i<8; i++)
-	{
-		if( (eventid & 0x80) )
-		{
-			event_data[i*2+1] = signal_base[0][0];
-			event_data[i*2+2] = signal_base[0][1];
-		}
-		else
-		{
-			event_data[i*2+1] = signal_base[1][0];
-			event_data[i*2+2] = signal_base[1][1];
-		}
-		eventid = eventid << 1;
-	}
-	
- 	event_data[16] = LIRCCODE_GAP*4;
- 	
- 	bytes_w = write(child_pipe_write, event_data, sizeof(lirc_t) * 17);
-	
-	if (bytes_w < 0)
-	{
-		logprintf(LOG_ERR, "Can't write to LIRC pipe! %d", child_pipe_write);
-	}	
-	
-}
-
-static int commandir_decode(char *command)
-{
-	// Decode the signal to a number, just like LIRC; 
-	// there's probably a built-in way to do this.
-	int i;
-	int code = 0;
-	
-	lirc_t *codes;	
-	codes = (lirc_t *)command;
-	
-	for(i=0; i<15; i+=2)
-	{
-		code = code << 1;
-		if(codes[i]==100)
-			code |= 1;
-	}
-	return code;
-}
-
diff --git a/abs/core-testing/lirc/hw_commandir.h b/abs/core-testing/lirc/hw_commandir.h
deleted file mode 100755
index 2280f6c..0000000
--- a/abs/core-testing/lirc/hw_commandir.h
+++ /dev/null
@@ -1,175 +0,0 @@
- 
-/****************************************************************************
- ** hw_commandir.h **********************************************************
- ****************************************************************************
- * 
- * Copyright (C) 1999 Christoph Bartelmus <lirc@bartelmus.de>
- * -- Original hw_default.h
- * Modified for CommandIR Transceivers, April-June 2008, Matthew Bodkin 
- *
- */
-
-#ifndef HW_COMMANDIR_H
-#define HW_COMMANDIR_H
-
-#define RX_BUFFER_SIZE 1024
-#define TX_BUFFER_SIZE 1024
-#define TX_QUEUE 1
-#define RX_QUEUE 0
-#define MAX_COMMANDIRS 4
-#define MAX_COMMAND 8192
-
-/* transmitter channel control */
-#define MAX_DEVICES		4
-#define MAX_CHANNELS    16
-#define DEVICE_CHANNELS	4
-#define MAX_MASK 		0xffff
-#define MAX_SIGNALQ		100
-
-/* CommandIR control codes */
-#define CHANNEL_EN_MASK	1
-#define FREQ_HEADER     2
-#define MCU_CTRL_SIZE   3
-#define TX_HEADER       7
-#define TX_HEADER_NEW	8
-/* New for CommandIR II  */
-
-#define READ_INPUTS		10
-#define PROC_SET		11
-#define INIT_FUNCTION	12
-#define RX_SELECT		13
-#define TX_COMMANDIR_II 14
-/* Internal to driver */
-#define TX_LIRC_T	    15
-#define FREQ_HEADER_LIRC 16
-#define RXDECODE_HEADER_LIRC 17
-#define INIT_HEADER_LIRC 18
-#define DEINIT_HEADER_LIRC 19
-#define GET_VERSION 	20
-
-#define COMMANDIR_2_PULSE_MASK 0x8000
-#define COMMANDIR_2_OVERFLOW_MASK 0x4000
-
-#define DEFAULT_PULSE_WIDTH 13
-
-#define USB_CMDIR_VENDOR_ID		0x10c4
-#define USB_CMDIR_PRODUCT_ID	0x0003
-#define USB_CMDIR_MINOR_BASE	192
-
-#define HW_COMMANDIR_MINI 	1
-#define HW_COMMANDIR_2		2
-#define HW_COMMANDIR_UNKNOWN 127
-
-#define MAX_HW_MINI_PACKET 64
-
-// CommandIR has lots of buffer room, we don't need to poll constantly
-#define USB_TIMEOUT_MS 5000
-#define USB_TIMEOUT_US 1000
-#define WAIT_BETWEEN_READS_US 10000
-#define MAX_WAIT_BETWEEN_READS_US 5000000
-#define MIN_WAIT_BETWEEN_READS_US 5000
-
-#define USB_MAX_BUSES	8
-#define USB_MAX_BUSDEV	127
-
-#define RX_HEADER_DATA 		0x01
-#define RX_HEADER_EVENTS 	0x02
-#define RX_HEADER_TXAVAIL 	0x03
-
-
-// We keep CommandIR's OPEN even on -deinit for speed and to monitor 
-// Other non-LIRC events (plugin, suspend, etc)
-#define USB_KEEP_WARM 1
-
-// CommandIR lircd.conf event driven code definitions
-#define LIRCCODE_GAP  125000
-#define JACK_PLUG_1		0x01
-#define JACK_PLUG_2		0x02
-#define JACK_PLUG_3		0x03
-#define JACK_PLUG_4		0x04
-#define JACK_PLUG_5		0x11
-#define JACK_PLUG_6		0x12
-#define JACK_PLUG_7		0x13
-#define JACK_PLUG_8		0x14
-#define JACK_PLUG_9		0x21
-#define JACK_PLUG_10	0x22
-#define JACK_PLUG_11	0x23
-#define JACK_PLUG_12	0x24
-#define JACK_PLUG_13	0x31
-#define JACK_PLUG_14	0x32
-#define JACK_PLUG_15	0x33
-#define JACK_PLUG_16	0x34
-
-#define JACK_UNPLUG_1	0x05
-#define JACK_UNPLUG_2	0x06
-#define JACK_UNPLUG_3	0x07
-#define JACK_UNPLUG_4	0x08
-#define JACK_UNPLUG_5	0x15
-#define JACK_UNPLUG_6	0x16
-#define JACK_UNPLUG_7	0x17
-#define JACK_UNPLUG_8	0x18
-#define JACK_UNPLUG_9	0x25
-#define JACK_UNPLUG_10	0x26
-#define JACK_UNPLUG_11	0x27
-#define JACK_UNPLUG_12	0x28
-#define JACK_UNPLUG_13	0x35
-#define JACK_UNPLUG_14	0x36
-#define JACK_UNPLUG_15	0x37
-#define JACK_UNPLUG_16	0x38
-
-#define SELECT_TX_INTERNAL	0x09
-#define SELECT_TX_ExTERNAL	0x0A
-
-#define SELECT_TX_ON_1		0x0D
-#define SELECT_TX_ON_2		0x1D
-#define SELECT_TX_ON_3		0x2D
-#define SELECT_TX_ON_4		0x3D
-
-#define JACK_PLUG_RX_1		0x0B
-#define JACK_UNPLUG_RX_1	0x0C
-#define JACK_PLUG_RX_2		0x1B
-#define JACK_UNPLUG_RX_2	0x1C
-#define JACK_PLUG_RX_3		0x2B
-#define JACK_UNPLUG_RX_3	0x2C
-#define JACK_PLUG_RX_4		0x3B
-#define JACK_UNPLUG_RX_4	0x3C
-
-#define COMMANDIR_PLUG_1	0x41
-#define COMMANDIR_PLUG_2	0x42
-#define COMMANDIR_PLUG_3	0x43
-#define COMMANDIR_PLUG_4	0x44
-
-#define COMMANDIR_UNPLUG_1	0x45
-#define COMMANDIR_UNPLUG_2	0x46
-#define COMMANDIR_UNPLUG_3	0x47
-#define COMMANDIR_UNPLUG_4	0x48
-
-#define COMMANDIR_REORDERED	0x50
-#define COMMANDIR_READY		0x51
-#define COMMANDIR_STOPPED	0x52
-#define COMMANDIR_POLL_FASTER	0x53
-#define COMMANDIR_POLL_SLOWER	0x54
-
-#define SETTRANSMITTERS_1	0xf0
-#define SETTRANSMITTERS_2	0xf1
-#define SETTRANSMITTERS_3	0xf2
-#define SETTRANSMITTERS_4	0xf3
-#define SETTRANSMITTERS_5	0xf4
-#define SETTRANSMITTERS_6	0xf5
-#define SETTRANSMITTERS_7	0xf6
-#define SETTRANSMITTERS_8	0xf7
-#define SETTRANSMITTERS_9	0xf8
-#define SETTRANSMITTERS_10	0xf9
-#define SETTRANSMITTERS_11	0xfa
-#define SETTRANSMITTERS_12	0xfb
-#define SETTRANSMITTERS_13	0xfc
-#define SETTRANSMITTERS_14	0xfd
-#define SETTRANSMITTERS_15	0xfe
-#define SETTRANSMITTERS_16	0xff
-
-// What's in a returning data packet
-#define COMMANDIR_RX_EVENTS 		0x02
-#define COMMANDIR_RX_DATA			0x01
-
-
-#endif
diff --git a/abs/core-testing/lirc/kernel-2.6.26.patch b/abs/core-testing/lirc/kernel-2.6.26.patch
deleted file mode 100644
index 74bb986..0000000
--- a/abs/core-testing/lirc/kernel-2.6.26.patch
+++ /dev/null
@@ -1,122 +0,0 @@
---- a/drivers/kcompat.h	2008-01-13 11:26:28.000000000 +0100
-+++ b/drivers/kcompat.h	2008-05-14 18:37:49.000000000 +0200
-@@ -1,4 +1,4 @@
--/*      $Id: kcompat.h,v 5.34 2008/01/13 10:26:28 lirc Exp $      */
-+/*      $Id: kcompat.h,v 5.36 2008/05/14 16:37:49 lirc Exp $      */
- 
- #ifndef _KCOMPAT_H
- #define _KCOMPAT_H
-@@ -36,10 +36,10 @@
- 	class_simple_destroy(cls);
- }
- 
--#define lirc_class_device_create(cs, parent, dev, device, fmt, args...) \
--	class_simple_device_add(cs, dev, device, fmt, ## args)
-+#define lirc_device_create(cs, parent, dev, fmt, args...) \
-+	class_simple_device_add(cs, dev, parent, fmt, ## args)
- 
--static inline void class_device_destroy(lirc_class_t *cls, dev_t devt)
-+static inline void lirc_device_destroy(lirc_class_t *cls, dev_t devt)
- {
- 	class_simple_device_remove(devt);
- }
-@@ -48,20 +48,40 @@
- 
- #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15)
- 
--#define lirc_class_device_create(cs, parent, dev, device, fmt, args...) \
--	class_device_create(cs, dev, device, fmt, ## args)
-+#define lirc_device_create(cs, parent, dev, fmt, args...) \
-+	class_device_create(cs, dev, parent, fmt, ## args)
- 
- #else /* >= 2.6.15 */
- 
--#define lirc_class_device_create class_device_create
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
-+
-+#define lirc_device_create(cs, parent, dev, fmt, args...) \
-+	class_device_create(cs, NULL, dev, parent, fmt, ## args)
-+
-+#else /* >= 2.6.26 */
-+
-+#define lirc_device_create device_create
-+
-+#endif /* >= 2.6.26 */
-+
- #define LIRC_DEVFS_PREFIX
- 
--#endif
-+#endif /* >= 2.6.15 */
- 
- typedef struct class lirc_class_t;
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
-+
-+#define lirc_device_destroy class_device_destroy
-+
-+#else
-+
-+#define lirc_device_destroy device_destroy
-+
- #endif
- 
-+#endif /* >= 2.6.13 */
-+
- #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
- #define LIRC_HAVE_DEVFS
- #define LIRC_HAVE_DEVFS_24
-@@ -133,8 +153,8 @@
- #ifndef LIRC_HAVE_SYSFS
- #define class_destroy(x) do { } while (0)
- #define class_create(x, y) NULL
--#define class_device_destroy(x, y) do { } while (0)
--#define lirc_class_device_create(x, y, z, xx, yy, zz) 0
-+#define lirc_class_destroy(x, y) do { } while (0)
-+#define lirc_class_create(x, y, z, xx, yy, zz) 0
- #define IS_ERR(x) 0
- typedef struct class_simple
- {
---- a/drivers/lirc_dev/lirc_dev.c	2008-01-13 11:45:02.000000000 +0100
-+++ b/drivers/lirc_dev/lirc_dev.c	2008-05-14 18:37:49.000000000 +0200
-@@ -17,7 +17,7 @@
-  *  along with this program; if not, write to the Free Software
-  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-  *
-- * $Id: lirc_dev.c,v 1.56 2008/01/13 10:45:02 lirc Exp $
-+ * $Id: lirc_dev.c,v 1.58 2008/05/14 16:37:49 lirc Exp $
-  *
-  */
- 
-@@ -145,7 +145,8 @@
- #ifdef LIRC_HAVE_DEVFS_26
- 	devfs_remove(DEV_LIRC "/%u", ir->p.minor);
- #endif
--	class_device_destroy(lirc_class, MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
-+	lirc_device_destroy(lirc_class,
-+			    MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
- 
- 	if (ir->buf != ir->p.rbuf) {
- 		lirc_buffer_free(ir->buf);
-@@ -400,9 +401,9 @@
- 			S_IFCHR|S_IRUSR|S_IWUSR,
- 			DEV_LIRC "/%u", ir->p.minor);
- #endif
--	(void) lirc_class_device_create(lirc_class, NULL,
--					MKDEV(IRCTL_DEV_MAJOR, ir->p.minor),
--					ir->p.dev, "lirc%u", ir->p.minor);
-+	(void) lirc_device_create(lirc_class, ir->p.dev,
-+				  MKDEV(IRCTL_DEV_MAJOR, ir->p.minor),
-+				  "lirc%u", ir->p.minor);
- 
- 	if (p->sample_rate || p->get_queue) {
- 		/* try to fire up polling thread */
-@@ -441,7 +442,8 @@
- 	return minor;
- 
- out_sysfs:
--	class_device_destroy(lirc_class, MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
-+	lirc_device_destroy(lirc_class,
-+			    MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
- #ifdef LIRC_HAVE_DEVFS_24
- 	devfs_unregister(ir->devfs_handle);
- #endif
diff --git a/abs/core-testing/lirc/kernel-2.6.27.patch b/abs/core-testing/lirc/kernel-2.6.27.patch
deleted file mode 100644
index 05cf75b..0000000
--- a/abs/core-testing/lirc/kernel-2.6.27.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-diff -Nur lirc-0.8.3.orig/drivers/lirc_dev/lirc_dev.c lirc-0.8.3/drivers/lirc_dev/lirc_dev.c
---- lirc-0.8.3.orig/drivers/lirc_dev/lirc_dev.c	2008-01-13 11:45:02.000000000 +0100
-+++ lirc-0.8.3/drivers/lirc_dev/lirc_dev.c	2008-10-10 16:29:15.000000000 +0200
-@@ -49,7 +49,7 @@
- #include <linux/uaccess.h>
- #include <linux/errno.h>
- #endif
--#include <asm/semaphore.h>
-+#include <linux/semaphore.h>
- #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
- #include <linux/wrapper.h>
- #endif
-diff -Nur lirc-0.8.3.orig/drivers/lirc_i2c/lirc_i2c.c lirc-0.8.3/drivers/lirc_i2c/lirc_i2c.c
---- lirc-0.8.3.orig/drivers/lirc_i2c/lirc_i2c.c	2008-05-04 15:49:53.000000000 +0200
-+++ lirc-0.8.3/drivers/lirc_i2c/lirc_i2c.c	2008-10-10 16:29:00.000000000 +0200
-@@ -54,7 +54,7 @@
- #include <linux/i2c.h>
- #include <linux/i2c-algo-bit.h>
- 
--#include <asm/semaphore.h>
-+#include <linux/semaphore.h>
- 
- #include "drivers/kcompat.h"
- #include "drivers/lirc_dev/lirc_dev.h"
---- lirc-0.8.3.orig/drivers/kcompat.h	2008/05/14 16:37:49	5.36
-+++ lirc-0.8.3.orig/drivers/kcompat.h	2008/09/27 08:16:15	5.37
-@@ -36,7 +36,7 @@
- 	class_simple_destroy(cls);
- }
- 
--#define lirc_device_create(cs, parent, dev, fmt, args...) \
-+#define lirc_device_create(cs, parent, dev, drvdata, fmt, args...) \
- 	class_simple_device_add(cs, dev, parent, fmt, ## args)
- 
- static inline void lirc_device_destroy(lirc_class_t *cls, dev_t devt)
-@@ -48,20 +48,29 @@
- 
- #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15)
- 
--#define lirc_device_create(cs, parent, dev, fmt, args...) \
-+#define lirc_device_create(cs, parent, dev, drvdata, fmt, args...) \
- 	class_device_create(cs, dev, parent, fmt, ## args)
- 
- #else /* >= 2.6.15 */
- 
- #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
- 
--#define lirc_device_create(cs, parent, dev, fmt, args...) \
-+#define lirc_device_create(cs, parent, dev, drvdata, fmt, args...) \
- 	class_device_create(cs, NULL, dev, parent, fmt, ## args)
- 
- #else /* >= 2.6.26 */
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)
-+
-+#define lirc_device_create(cs, parent, dev, drvdata, fmt, args...) \
-+	class_device_create(cs, parent, dev, fmt, ## args)
-+
-+#else /* >= 2.6.27 */
-+
- #define lirc_device_create device_create
- 
-+#endif /* >= 2.6.27 */
-+
- #endif /* >= 2.6.26 */
- 
- #define LIRC_DEVFS_PREFIX
---- lirc-0.8.3.orig/drivers/lirc_dev/lirc_dev.c	2008/09/06 07:30:16	1.60
-+++ lirc-0.8.3.orig/drivers/lirc_dev/lirc_dev.c	2008/09/27 08:16:15	1.61
-@@ -397,7 +397,7 @@
- 			DEV_LIRC "/%u", ir->p.minor);
- #endif
- 	(void) lirc_device_create(lirc_class, ir->p.dev,
--				  MKDEV(IRCTL_DEV_MAJOR, ir->p.minor),
-+				  MKDEV(IRCTL_DEV_MAJOR, ir->p.minor), NULL,
- 				  "lirc%u", ir->p.minor);
- 
- 	if (p->sample_rate || p->get_queue) {
diff --git a/abs/core-testing/lirc/kernel-2.6.33.patch b/abs/core-testing/lirc/kernel-2.6.33.patch
new file mode 100644
index 0000000..7827e00
--- /dev/null
+++ b/abs/core-testing/lirc/kernel-2.6.33.patch
@@ -0,0 +1,475 @@
+--- drivers/lirc_dev/lirc_dev.h	2009/03/15 09:34:00	1.37 lirc-0_8_6
++++ drivers/lirc_dev/lirc_dev.h	2009/12/28 15:21:17	1.38
+@@ -4,7 +4,7 @@
+  * (L) by Artur Lipowski <alipowski@interia.pl>
+  *        This code is licensed under GNU GPL
+  *
+- * $Id: lirc_dev.h,v 1.37 2009/03/15 09:34:00 lirc Exp $
++ * $Id: lirc_dev.h,v 1.38 2009/12/28 15:21:17 jarodwilson Exp $
+  *
+  */
+ 
+@@ -30,14 +30,19 @@
+ 
+ struct lirc_buffer {
+ 	wait_queue_head_t wait_poll;
+-	spinlock_t lock;
++	spinlock_t fifo_lock;
+ 	unsigned int chunk_size;
+ 	unsigned int size; /* in chunks */
+ 	/* Using chunks instead of bytes pretends to simplify boundary checking
+ 	 * And should allow for some performance fine tunning later */
+ #ifdef LIRC_HAVE_KFIFO
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ 	struct kfifo *fifo;
+ #else
++	struct kfifo fifo;
++	u8 fifo_initialized;
++#endif
++#else
+ 	unsigned int fill; /* in chunks */
+ 	int head, tail;    /* in chunks */
+ 	unsigned char *data;
+@@ -47,12 +52,12 @@
+ static inline void lirc_buffer_lock(struct lirc_buffer *buf,
+ 				    unsigned long *flags)
+ {
+-	spin_lock_irqsave(&buf->lock, *flags);
++	spin_lock_irqsave(&buf->fifo_lock, *flags);
+ }
+ static inline void lirc_buffer_unlock(struct lirc_buffer *buf,
+ 				      unsigned long *flags)
+ {
+-	spin_unlock_irqrestore(&buf->lock, *flags);
++	spin_unlock_irqrestore(&buf->fifo_lock, *flags);
+ }
+ static inline void _lirc_buffer_clear(struct lirc_buffer *buf)
+ {
+@@ -63,11 +68,20 @@
+ #endif
+ static inline void lirc_buffer_clear(struct lirc_buffer *buf)
+ {
++	unsigned long flags;
++
+ #ifdef LIRC_HAVE_KFIFO
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ 	if (buf->fifo)
+ 		kfifo_reset(buf->fifo);
+ #else
+-	unsigned long flags;
++	if (buf->fifo_initialized) {
++		spin_lock_irqsave(&buf->fifo_lock, flags);
++		kfifo_reset(&buf->fifo);
++		spin_unlock_irqrestore(&buf->fifo_lock, flags);
++	}
++#endif
++#else
+ 	lirc_buffer_lock(buf, &flags);
+ 	_lirc_buffer_clear(buf);
+ 	lirc_buffer_unlock(buf, &flags);
+@@ -77,31 +91,47 @@
+ 				    unsigned int chunk_size,
+ 				    unsigned int size)
+ {
++	int ret = 0;
++
+ 	init_waitqueue_head(&buf->wait_poll);
+-	spin_lock_init(&buf->lock);
++	spin_lock_init(&buf->fifo_lock);
+ #ifndef LIRC_HAVE_KFIFO
+ 	_lirc_buffer_clear(buf);
+ #endif
+ 	buf->chunk_size = chunk_size;
+ 	buf->size = size;
+ #ifdef LIRC_HAVE_KFIFO
+-	buf->fifo = kfifo_alloc(size*chunk_size, GFP_KERNEL, &buf->lock);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++	buf->fifo = kfifo_alloc(size*chunk_size, GFP_KERNEL, &buf->fifo_lock);
+ 	if (!buf->fifo)
+ 		return -ENOMEM;
+ #else
++	ret = kfifo_alloc(&buf->fifo, size * chunk_size, GFP_KERNEL);
++	if (ret == 0)
++		buf->fifo_initialized = 1;
++#endif
++#else
+ 	buf->data = kmalloc(size*chunk_size, GFP_KERNEL);
+ 	if (buf->data == NULL)
+ 		return -ENOMEM;
+ 	memset(buf->data, 0, size*chunk_size);
+ #endif
+-	return 0;
++
++	return ret;
+ }
+ static inline void lirc_buffer_free(struct lirc_buffer *buf)
+ {
+ #ifdef LIRC_HAVE_KFIFO
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ 	if (buf->fifo)
+ 		kfifo_free(buf->fifo);
+ #else
++	if (buf->fifo_initialized) {
++		kfifo_free(&buf->fifo);
++		buf->fifo_initialized = 0;
++	}
++#endif
++#else
+ 	kfree(buf->data);
+ 	buf->data = NULL;
+ 	buf->head = 0;
+@@ -111,6 +141,25 @@
+ 	buf->size = 0;
+ #endif
+ }
++
++#ifdef LIRC_HAVE_KFIFO
++static inline int lirc_buffer_len(struct lirc_buffer *buf)
++{
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++	return kfifo_len(buf->fifo);
++#else
++	int len;
++	unsigned long flags;
++
++	spin_lock_irqsave(&buf->fifo_lock, flags);
++	len = kfifo_len(&buf->fifo);
++	spin_unlock_irqrestore(&buf->fifo_lock, flags);
++
++	return len;
++#endif
++}
++#endif
++
+ #ifndef LIRC_HAVE_KFIFO
+ static inline int  _lirc_buffer_full(struct lirc_buffer *buf)
+ {
+@@ -120,7 +169,7 @@
+ static inline int  lirc_buffer_full(struct lirc_buffer *buf)
+ {
+ #ifdef LIRC_HAVE_KFIFO
+-	return kfifo_len(buf->fifo) == buf->size * buf->chunk_size;
++	return lirc_buffer_len(buf) == buf->size * buf->chunk_size;
+ #else
+ 	unsigned long flags;
+ 	int ret;
+@@ -139,7 +188,7 @@
+ static inline int  lirc_buffer_empty(struct lirc_buffer *buf)
+ {
+ #ifdef LIRC_HAVE_KFIFO
+-	return !kfifo_len(buf->fifo);
++	return !lirc_buffer_len(buf);
+ #else
+ 	unsigned long flags;
+ 	int ret;
+@@ -158,7 +207,7 @@
+ static inline int  lirc_buffer_available(struct lirc_buffer *buf)
+ {
+ #ifdef LIRC_HAVE_KFIFO
+-	return buf->size - (kfifo_len(buf->fifo) / buf->chunk_size);
++	return buf->size - (lirc_buffer_len(buf) / buf->chunk_size);
+ #else
+ 	unsigned long flags;
+ 	int ret;
+@@ -177,21 +226,30 @@
+ 	buf->fill -= 1;
+ }
+ #endif
+-static inline void lirc_buffer_read(struct lirc_buffer *buf,
+-				    unsigned char *dest)
++static inline unsigned int lirc_buffer_read(struct lirc_buffer *buf,
++					    unsigned char *dest)
+ {
++	unsigned int ret = 0;
++
+ #ifdef LIRC_HAVE_KFIFO
+-	if (kfifo_len(buf->fifo) >= buf->chunk_size)
+-		kfifo_get(buf->fifo, dest, buf->chunk_size);
++	if (lirc_buffer_len(buf) >= buf->chunk_size)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++		ret = kfifo_get(buf->fifo, dest, buf->chunk_size);
++#else
++		ret = kfifo_out_locked(&buf->fifo, dest, buf->chunk_size,
++				       &buf->fifo_lock);
++#endif
+ #else
+ 	unsigned long flags;
+ 	lirc_buffer_lock(buf, &flags);
+ 	_lirc_buffer_read_1(buf, dest);
+ 	lirc_buffer_unlock(buf, &flags);
+ #endif
++
++	return ret;
+ }
+ #ifndef LIRC_HAVE_KFIFO
+-static inline void _lirc_buffer_write_1(struct lirc_buffer *buf,
++static inline  _lirc_buffer_write_1(struct lirc_buffer *buf,
+ 				      unsigned char *orig)
+ {
+ 	memcpy(&buf->data[buf->tail*buf->chunk_size], orig, buf->chunk_size);
+@@ -199,17 +257,26 @@
+ 	buf->fill++;
+ }
+ #endif
+-static inline void lirc_buffer_write(struct lirc_buffer *buf,
+-				     unsigned char *orig)
++static inline unsigned int lirc_buffer_write(struct lirc_buffer *buf,
++					     unsigned char *orig)
+ {
++	unsigned int ret = 0;
++
+ #ifdef LIRC_HAVE_KFIFO
+-	kfifo_put(buf->fifo, orig, buf->chunk_size);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++	ret = kfifo_put(buf->fifo, orig, buf->chunk_size);
++#else
++	ret = kfifo_in_locked(&buf->fifo, orig, buf->chunk_size,
++			      &buf->fifo_lock);
++#endif
+ #else
+ 	unsigned long flags;
+ 	lirc_buffer_lock(buf, &flags);
+ 	_lirc_buffer_write_1(buf, orig);
+ 	lirc_buffer_unlock(buf, &flags);
+ #endif
++
++	return ret;
+ }
+ #ifndef LIRC_HAVE_KFIFO
+ static inline void _lirc_buffer_write_n(struct lirc_buffer *buf,
+@@ -234,17 +301,26 @@
+ 	buf->fill += count;
+ }
+ #endif
+-static inline void lirc_buffer_write_n(struct lirc_buffer *buf,
+-				       unsigned char *orig, int count)
++static inline unsigned int lirc_buffer_write_n(struct lirc_buffer *buf,
++					       unsigned char *orig, int count)
+ {
++	unsigned int ret = 0;
++
+ #ifdef LIRC_HAVE_KFIFO
+-	kfifo_put(buf->fifo, orig, count * buf->chunk_size);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
++	ret = kfifo_put(buf->fifo, orig, count * buf->chunk_size);
++#else
++	ret = kfifo_in_locked(&buf->fifo, orig, count * buf->chunk_size,
++			      &buf->fifo_lock);
++#endif
+ #else
+ 	unsigned long flags;
+ 	lirc_buffer_lock(buf, &flags);
+ 	_lirc_buffer_write_n(buf, orig, count);
+ 	lirc_buffer_unlock(buf, &flags);
+ #endif
++
++	return ret;
+ }
+ 
+ struct lirc_driver {
+--- drivers/lirc_dev/lirc_dev.c.old	2009-08-31 12:57:55.000000000 -0400
++++ drivers/lirc_dev/lirc_dev.c	2010-03-07 01:40:17.000000000 -0500
+@@ -32,7 +32,11 @@
+ #error "**********************************************************"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #include <linux/module.h>
+ #include <linux/kernel.h>
+ #include <linux/sched.h>
+--- drivers/lirc_sir/lirc_sir.c.old	2009-07-09 18:24:23.000000000 -0400
++++ drivers/lirc_sir/lirc_sir.c	2010-03-07 01:40:17.000000000 -0500
+@@ -45,7 +45,11 @@
+ # include <config.h>
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #if !defined(CONFIG_SERIAL_MODULE)
+ #if !defined(LIRC_ON_SA1100)
+ #warning "******************************************"
+--- drivers/lirc_serial/lirc_serial.c.old	2009-03-15 05:34:00.000000000 -0400
++++ drivers/lirc_serial/lirc_serial.c	2010-03-07 01:40:17.000000000 -0500
+@@ -60,7 +60,11 @@
+ #error "**********************************************************"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ 
+ #if defined(CONFIG_SERIAL) || defined(CONFIG_SERIAL_8250)
+ #warning "******************************************"
+--- drivers/lirc_bt829/lirc_bt829.c.old	2009-03-09 14:54:17.000000000 -0400
++++ drivers/lirc_bt829/lirc_bt829.c	2010-03-07 01:40:17.000000000 -0500
+@@ -22,7 +22,11 @@
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)
+ #error "This driver needs kernel version 2.4.0 or higher"
+ #endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #include <linux/kernel.h>
+ #include <linux/module.h>
+ #include <linux/threads.h>
+--- drivers/lirc_sasem/lirc_sasem.c.old	2009-02-28 05:27:10.000000000 -0500
++++ drivers/lirc_sasem/lirc_sasem.c	2010-03-07 01:40:17.000000000 -0500
+@@ -41,7 +41,11 @@
+ #error "*** Sorry, this driver requires kernel version 2.4.22 or higher"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ 
+ #include <linux/errno.h>
+ #include <linux/init.h>
+--- drivers/lirc_igorplugusb/lirc_igorplugusb.c.old	2009-08-02 05:54:10.000000000 -0400
++++ drivers/lirc_igorplugusb/lirc_igorplugusb.c	2010-03-07 01:40:17.000000000 -0500
+@@ -47,7 +47,11 @@
+ #error "*******************************************************"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #include <linux/module.h>
+ #include <linux/kernel.h>
+ #include <linux/kmod.h>
+--- drivers/lirc_imon/lirc_imon.c.old	2009-09-11 00:56:18.000000000 -0400
++++ drivers/lirc_imon/lirc_imon.c	2010-03-07 01:40:17.000000000 -0500
+@@ -30,7 +30,11 @@
+ #error "*** Sorry, this driver requires a 2.6 kernel"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ 
+ #include <linux/errno.h>
+ #include <linux/init.h>
+--- drivers/lirc_it87/lirc_it87.c.old	2009-06-01 08:21:31.000000000 -0400
++++ drivers/lirc_it87/lirc_it87.c	2010-03-07 01:40:17.000000000 -0500
+@@ -36,7 +36,11 @@
+ 
+ #include <linux/version.h>
+ #include <linux/module.h>
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #include <linux/sched.h>
+ #include <linux/errno.h>
+ #include <linux/signal.h>
+--- drivers/lirc_streamzap/lirc_streamzap.c.old	2009-03-15 05:34:00.000000000 -0400
++++ drivers/lirc_streamzap/lirc_streamzap.c	2010-03-07 01:40:17.000000000 -0500
+@@ -35,7 +35,11 @@
+ #error "Sorry, this driver needs kernel version 2.4.0 or higher"
+ #error "*******************************************************"
+ #endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #include <linux/kernel.h>
+ #include <linux/errno.h>
+ #include <linux/init.h>
+--- drivers/lirc_atiusb/lirc_atiusb.c.old	2009-03-10 20:21:46.000000000 -0400
++++ drivers/lirc_atiusb/lirc_atiusb.c	2010-03-07 01:40:17.000000000 -0500
+@@ -43,7 +43,11 @@
+ #error "*******************************************************"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ 
+ #include <linux/kernel.h>
+ #include <linux/errno.h>
+--- drivers/lirc_parallel/lirc_parallel.c.old	2009-03-08 15:22:28.000000000 -0400
++++ drivers/lirc_parallel/lirc_parallel.c	2010-03-07 01:40:17.000000000 -0500
+@@ -34,7 +34,11 @@
+ #error "**********************************************************"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #ifdef CONFIG_SMP
+ #error "--- Sorry, this driver is not SMP safe. ---"
+ #endif
+@@ -43,7 +47,11 @@
+ #include <linux/sched.h>
+ #include <linux/errno.h>
+ #include <linux/signal.h>
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #include <linux/fs.h>
+ #include <linux/kernel.h>
+ #include <linux/ioport.h>
+--- drivers/lirc_wpc8769l/lirc_wpc8769l.c.old	2009-03-15 05:34:01.000000000 -0400
++++ drivers/lirc_wpc8769l/lirc_wpc8769l.c	2010-03-07 01:40:17.000000000 -0500
+@@ -37,7 +37,11 @@
+ #error "**********************************************************"
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ 
+ #include <linux/module.h>
+ #include <linux/errno.h>
+--- drivers/lirc_mceusb/lirc_mceusb.c.old	2009-09-02 10:04:02.000000000 -0400
++++ drivers/lirc_mceusb/lirc_mceusb.c	2010-03-07 01:40:17.000000000 -0500
+@@ -52,7 +52,11 @@
+ #error "Sorry, this driver needs kernel version 2.6.5 or higher"
+ #error "*******************************************************"
+ #endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
+ #include <linux/autoconf.h>
++#else
++#include <generated/autoconf.h>
++#endif
+ #include <linux/kernel.h>
+ #include <linux/errno.h>
+ #include <linux/init.h>
+--- drivers/lirc_i2c/lirc_i2c.c	2009/08/30 16:59:53	1.70
++++ drivers/lirc_i2c/lirc_i2c.c	2009/12/15 05:37:00	1.71
+@@ -399,8 +399,8 @@
+ 		.name	= "i2c ir driver",
+ 	},
+ #endif
+-	.id		= I2C_DRIVERID_EXP3, /* FIXME */
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
++	.id		= I2C_DRIVERID_EXP3, /* FIXME */
+ 	.attach_adapter	= ir_probe,
+ 	.detach_client	= ir_remove,
+ #else
diff --git a/abs/core-testing/lirc/lirc.fdi b/abs/core-testing/lirc/lirc.fdi
deleted file mode 100644
index 6f2443a..0000000
--- a/abs/core-testing/lirc/lirc.fdi
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deviceinfo version="0.2">
-  <device>
-     <!-- This rule prevents the Dvico dual digital4 rev 2
-          remote input device from making your keyboard act wierd. -->
-     <match key="info.product" contains_ncase="IR-receiver inside an USB DVB receiver">
-        <merge key="info.ignore" type="bool">true</merge>
-     </match>
-  </device>
-</deviceinfo>
diff --git a/abs/core-testing/lirc/lirc.install b/abs/core-testing/lirc/lirc.install
index 53340e5..ac4bf13 100644
--- a/abs/core-testing/lirc/lirc.install
+++ b/abs/core-testing/lirc/lirc.install
@@ -10,7 +10,7 @@ pre_install() {
 post_install() {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
-  KERNEL_VERSION=2.6.28-LinHES
+  KERNEL_VERSION=2.6.34-LinHES
   depmod -v $KERNEL_VERSION > /dev/null 2>&1
   /bin/true
 }
@@ -26,7 +26,7 @@ pre_upgrade() {
 post_upgrade() {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
-  KERNEL_VERSION=2.6.28-LinHES
+  KERNEL_VERSION=2.6.34-LinHES
   depmod -v $KERNEL_VERSION > /dev/null 2>&1
   /bin/true
 }
@@ -40,7 +40,7 @@ pre_remove() {
 post_remove() {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
-  KERNEL_VERSION=2.6.28-LinHES
+  KERNEL_VERSION=2.6.34-LinHES
   depmod -v $KERNEL_VERSION > /dev/null 2>&1
   /bin/true
 }
diff --git a/abs/core-testing/lirc/lirc_atiusb.patch b/abs/core-testing/lirc/lirc_atiusb.patch
deleted file mode 100644
index 2f0c61e..0000000
--- a/abs/core-testing/lirc/lirc_atiusb.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -ruaN lirc-0.8.4.orig/drivers/lirc_atiusb/lirc_atiusb.c lirc-0.8.4/drivers/lirc_atiusb/lirc_atiusb.c
---- lirc-0.8.4.orig/drivers/lirc_atiusb/lirc_atiusb.c	2008-05-19 08:10:35.000000000 +0000
-+++ lirc-0.8.4/drivers/lirc_atiusb/lirc_atiusb.c	2009-02-14 22:35:44.000000000 +0000
-@@ -192,8 +192,9 @@
- /* init strings */
- #define USB_OUTLEN		7
- 
--static char init1[] = {0x01, 0x00, 0x20, 0x14};
--static char init2[] = {0x01, 0x00, 0x20, 0x14, 0x20, 0x20, 0x20};
-+static char init1[] = {0x80, 0x05, 0x1b, 0x15, 0x14, 0x20, 0x24, 0x15};
-+static char init2[] = {0x83, 0x03};
-+static char init3[] = {0x84, 0xd7, 0x020};
- 
- struct in_endpt {
- 	/* inner link in list of endpoints for the remote specified by ir */
-@@ -1183,8 +1184,9 @@
- 			oep->buf, USB_OUTLEN, usb_remote_send,
- 			oep, oep->ep->bInterval);
- 
--		send_packet(oep, 0x8004, init1);
--		send_packet(oep, 0x8007, init2);
-+               send_packet(oep, 0x8007, init1);
-+               send_packet(oep, 0x8002, init2);
-+               send_packet(oep, 0x8003, init3);
- 	}
- }
- 
diff --git a/abs/core-testing/lirc/lirc_mod_mce.patch b/abs/core-testing/lirc/lirc_mod_mce.patch
deleted file mode 100644
index 1dc6644..0000000
--- a/abs/core-testing/lirc/lirc_mod_mce.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-diff -Naru lirc_mod_mce/lirc_mod_mce.c lirc_mod_mce_new/lirc_mod_mce.c
---- lirc_mod_mce/lirc_mod_mce.c	2008-04-18 02:12:28.000000000 +0930
-+++ lirc_mod_mce_new/lirc_mod_mce.c	2009-11-22 18:45:24.000000000 +1030
-@@ -171,17 +171,76 @@
- #define VENDOR_TATUNG           0x1460
- #define VENDOR_GATEWAY          0x107b
- #define VENDOR_SHUTTLE          0x1308
-+#define VENDOR_PHILIPS          0x0471
-+#define VENDOR_SMK              0x0609
-+#define VENDOR_TATUNG           0x1460
-+#define VENDOR_GATEWAY          0x107b
-+#define VENDOR_SHUTTLE          0x1308
-+#define VENDOR_SHUTTLE2         0x051c
-+#define VENDOR_MITSUMI          0x03ee
-+#define VENDOR_TOPSEED          0x1784
-+#define VENDOR_RICAVISION       0x179d
-+#define VENDOR_ITRON            0x195d
-+#define VENDOR_FIC              0x1509
-+#define VENDOR_LG               0x043e
-+#define VENDOR_MICROSOFT        0x045e
-+#define VENDOR_FORMOSA          0x147a
-+#define VENDOR_FINTEK           0x1934
- #define VENDOR_PINNACLE         0x2304
- 
--
- static struct usb_device_id usb_remote_table [] = {
--    { USB_DEVICE(VENDOR_PHILIPS, 0x0815) },  /* Philips eHome Infrared Transciever */
--    { USB_DEVICE(VENDOR_SMK, 0x031d) },      /* SMK/Toshiba G83C0004D410 */
--    { USB_DEVICE(VENDOR_TATUNG, 0x9150) },   /* Tatung eHome Infrared Transceiver */
--    { USB_DEVICE(VENDOR_SHUTTLE, 0xc001) },  /* Shuttle eHome Infrared Transceiver */
--    { USB_DEVICE(VENDOR_GATEWAY, 0x3009) },  /* Gateway eHome Infrared Transceiver */
--    { USB_DEVICE(VENDOR_PINNACLE, 0x0225) }, /* Pinnacle Remote USB RC6 */
--    { }                                      /* Terminating entry */
-+    /* Philips eHome Infrared Transciever */
-+    { USB_DEVICE(VENDOR_PHILIPS, 0x0815) },
-+    /* Philips Infrared Transciever - HP branded */
-+    { USB_DEVICE(VENDOR_PHILIPS, 0x060c) },
-+    /* Philips SRM5100 */
-+    { USB_DEVICE(VENDOR_PHILIPS, 0x060d) },
-+    /* SMK/Toshiba G83C0004D410 */
-+    { USB_DEVICE(VENDOR_SMK, 0x031d) },
-+    /* SMK eHome Infrared Transceiver (Sony VAIO) */
-+    { USB_DEVICE(VENDOR_SMK, 0x0322) },
-+    /* bundled with Hauppauge PVR-150 */
-+    { USB_DEVICE(VENDOR_SMK, 0x0334) },
-+    /* Tatung eHome Infrared Transceiver */
-+    { USB_DEVICE(VENDOR_TATUNG, 0x9150) },
-+    /* Shuttle eHome Infrared Transceiver */
-+    { USB_DEVICE(VENDOR_SHUTTLE, 0xc001) },
-+    /* Shuttle eHome Infrared Transceiver */
-+    { USB_DEVICE(VENDOR_SHUTTLE2, 0xc001) },
-+    /* Gateway eHome Infrared Transceiver */
-+    { USB_DEVICE(VENDOR_GATEWAY, 0x3009) },
-+    /* Mitsumi */
-+    { USB_DEVICE(VENDOR_MITSUMI, 0x2501) },
-+    /* Topseed eHome Infrared Transceiver */
-+    { USB_DEVICE(VENDOR_TOPSEED, 0x0001) },
-+    /* Topseed HP eHome Infrared Transceiver */
-+    { USB_DEVICE(VENDOR_TOPSEED, 0x0006) },
-+    /* Topseed eHome Infrared Transceiver */
-+    { USB_DEVICE(VENDOR_TOPSEED, 0x0007) },
-+    /* Topseed eHome Infrared Transceiver */
-+    { USB_DEVICE(VENDOR_TOPSEED, 0x0008) },
-+    /* Ricavision internal Infrared Transceiver */
-+    { USB_DEVICE(VENDOR_RICAVISION, 0x0010) },
-+    /* Itron ione Libra Q-11 */
-+    { USB_DEVICE(VENDOR_ITRON, 0x7002) },
-+    /* FIC eHome Infrared Transceiver */
-+    { USB_DEVICE(VENDOR_FIC, 0x9242) },
-+    /* LG eHome Infrared Transceiver */
-+    { USB_DEVICE(VENDOR_LG, 0x9803) },
-+    /* Microsoft MCE Infrared Transceiver */
-+    { USB_DEVICE(VENDOR_MICROSOFT, 0x00a0) },
-+    /* Formosa eHome Infrared Transceiver */
-+    { USB_DEVICE(VENDOR_FORMOSA, 0xe015) },
-+    /* Formosa aim / Trust MCE Infrared Receiver */
-+    { USB_DEVICE(VENDOR_FORMOSA, 0xe017) },
-+    /* Formosa Industrial Computing / Beanbag Emulation Device */
-+    { USB_DEVICE(VENDOR_FORMOSA, 0xe018) },
-+    /* Fintek eHome Infrared Transceiver */
-+    { USB_DEVICE(VENDOR_FINTEK, 0x0602) },
-+    /* Pinnacle Remote USB RC6 */
-+    { USB_DEVICE(VENDOR_PINNACLE, 0x0225) },
-+    /* Terminating entry */
-+    { }
- };
- 
- static unsigned char usb_kbd_keycode[256] = {
-@@ -252,6 +311,8 @@
-     struct semaphore lock;
-     char name[NAME_BUFSIZE];
-     char phys[NAME_BUFSIZE];
-+
-+    unsigned int carrier_freq;
- };
- 
- /* init strings */
-@@ -889,6 +950,51 @@
-     }
- }
- 
-+/* Sets the send carrier frequency */
-+static int set_send_carrier(struct irctl *ir, int carrier)
-+{
-+    	int clk = 10000000;
-+	int prescaler = 0, divisor = 0;
-+	unsigned char cmdbuf[] = { 0x9F, 0x06, 0x01, 0x80 };
-+
-+	/* Carrier is changed */
-+	if (ir->carrier_freq != carrier) {
-+
-+		if (carrier <= 0) {
-+			ir->carrier_freq = carrier;
-+			dprintk(DRIVER_NAME "[%d]: SET_CARRIER disabling "
-+				"carrier modulation\n", ir->devnum);
-+			request_packet_async(ir, ir->usb_ep_out,
-+					     cmdbuf, sizeof(cmdbuf),
-+					     PHILUSB_OUTBOUND);
-+			return carrier;
-+		}
-+
-+		for (prescaler = 0; prescaler < 4; ++prescaler) {
-+			divisor = (clk >> (2 * prescaler)) / carrier;
-+			if (divisor <= 0xFF) {
-+				ir->carrier_freq = carrier;
-+				cmdbuf[2] = prescaler;
-+				cmdbuf[3] = divisor;
-+				dprintk(DRIVER_NAME "[%d]: SET_CARRIER "
-+					"requesting %d Hz\n",
-+					ir->devnum, carrier);
-+
-+				/* Transmit new carrier to mce device */
-+				request_packet_async(ir, ir->usb_ep_out,
-+						     cmdbuf, sizeof(cmdbuf),
-+						     PHILUSB_OUTBOUND);
-+				return carrier;
-+			}
-+		}
-+
-+		return -EINVAL;
-+
-+	}
-+
-+	return carrier;
-+}
-+
- static int input_open(struct input_dev *id)
- {
-     return 0;
-@@ -945,6 +1051,18 @@
-         if(lvalue!=(LIRC_MODE_PULSE&LIRC_CAN_SEND_MASK)) return -EINVAL;
-         break;
- 
-+    case LIRC_SET_SEND_CARRIER:
-+        /* Retrieve lirc_plugin data for the device */
-+        ir=lirc_get_pdata(filep);
-+        if (!ir && !ir->usb_ep_out) return -EFAULT;
-+
-+	result = get_user(ivalue, (unsigned int *) arg);
-+	if (result)
-+	    return result;
-+
-+	set_send_carrier(ir, ivalue);
-+	break;
-+
-     default:
-         return -ENOIOCTLCMD;
-     }
-@@ -1047,7 +1165,8 @@
-             plugin->minor = -1;
-             plugin->features = LIRC_CAN_SEND_PULSE |
-                                 LIRC_CAN_SET_TRANSMITTER_MASK |
--                                LIRC_CAN_REC_MODE2;
-+                                LIRC_CAN_REC_MODE2 |
-+                                LIRC_CAN_SET_SEND_CARRIER;
-             plugin->data = ir;
-             plugin->rbuf = rbuf;
-             plugin->set_use_inc = &set_use_inc;
-@@ -1108,7 +1227,7 @@
-     input_dev->name = ir->name;
-     input_dev->phys = ir->phys;
-     usb_to_input_id(dev, &input_dev->id);
--    input_dev->cdev.dev = &dev->dev;
-+    input_dev->dev.parent = &dev->dev;
-     input_dev->evbit[BIT_WORD(EV_KEY)] |= BIT_MASK(EV_KEY);
-     input_dev->evbit[BIT_WORD(EV_REL)] |= BIT_MASK(EV_REL);
-     input_dev->relbit[BIT_WORD(REL_X)] |= BIT_MASK(REL_X);
-- 
cgit v0.12


From 525ff794ffbaa59414fdd94c9aa4dcfc6625fa2a Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 17:00:50 -0700
Subject: lirc_085:lirc package w/ pvr 150 support.

---
 abs/core-testing/lirc_085-utils/PKGBUILD           |   72 +
 abs/core-testing/lirc_085-utils/hw_commandir.c     | 1926 ++++++++++++++++++++
 abs/core-testing/lirc_085-utils/hw_commandir.h     |  175 ++
 .../lirc_085-utils/kernel-2.6.26.patch             |  122 ++
 abs/core-testing/lirc_085-utils/lirc.logrotate     |    8 +
 abs/core-testing/lirc_085-utils/lirc_atiusb.patch  |   27 +
 abs/core-testing/lirc_085-utils/lircd              |   43 +
 abs/core-testing/lirc_085-utils/lircd.conf.d       |    8 +
 abs/core-testing/lirc_085-utils/lircmd             |   36 +
 abs/core-testing/lirc_085/PKGBUILD                 |   86 +
 abs/core-testing/lirc_085/dvicoIR.rules            |   15 +
 abs/core-testing/lirc_085/hw_commandir.c           | 1926 ++++++++++++++++++++
 abs/core-testing/lirc_085/hw_commandir.h           |  175 ++
 abs/core-testing/lirc_085/kernel-2.6.26.patch      |  122 ++
 abs/core-testing/lirc_085/kernel-2.6.27.patch      |   78 +
 abs/core-testing/lirc_085/lirc.fdi                 |   11 +
 abs/core-testing/lirc_085/lirc.install             |   50 +
 abs/core-testing/lirc_085/lirc_atiusb.patch        |   27 +
 abs/core-testing/lirc_085/lirc_mod_mce.patch       |  187 ++
 19 files changed, 5094 insertions(+)
 create mode 100644 abs/core-testing/lirc_085-utils/PKGBUILD
 create mode 100755 abs/core-testing/lirc_085-utils/hw_commandir.c
 create mode 100755 abs/core-testing/lirc_085-utils/hw_commandir.h
 create mode 100644 abs/core-testing/lirc_085-utils/kernel-2.6.26.patch
 create mode 100644 abs/core-testing/lirc_085-utils/lirc.logrotate
 create mode 100644 abs/core-testing/lirc_085-utils/lirc_atiusb.patch
 create mode 100755 abs/core-testing/lirc_085-utils/lircd
 create mode 100644 abs/core-testing/lirc_085-utils/lircd.conf.d
 create mode 100755 abs/core-testing/lirc_085-utils/lircmd
 create mode 100644 abs/core-testing/lirc_085/PKGBUILD
 create mode 100644 abs/core-testing/lirc_085/dvicoIR.rules
 create mode 100755 abs/core-testing/lirc_085/hw_commandir.c
 create mode 100755 abs/core-testing/lirc_085/hw_commandir.h
 create mode 100644 abs/core-testing/lirc_085/kernel-2.6.26.patch
 create mode 100644 abs/core-testing/lirc_085/kernel-2.6.27.patch
 create mode 100644 abs/core-testing/lirc_085/lirc.fdi
 create mode 100644 abs/core-testing/lirc_085/lirc.install
 create mode 100644 abs/core-testing/lirc_085/lirc_atiusb.patch
 create mode 100644 abs/core-testing/lirc_085/lirc_mod_mce.patch

diff --git a/abs/core-testing/lirc_085-utils/PKGBUILD b/abs/core-testing/lirc_085-utils/PKGBUILD
new file mode 100644
index 0000000..c4d5759
--- /dev/null
+++ b/abs/core-testing/lirc_085-utils/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 6058 2008-07-23 02:50:00Z eric $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgname=lirc-utils
+pkgver=0.8.5CVS
+pkgrel=7
+pkgdesc="Linux Infrared Remote Control utils"
+arch=(i686 x86_64)
+url="http://www.lirc.org/"
+license=('GPL')
+_kernver=2.6.28-LinHES
+depends=('alsa-lib' 'libusb' 'libx11' 'libsm' 'iguanaIR')
+#makedepends=('help2man')
+replaces=('lirc+pctv')
+backup=('etc/lircd.conf' 'etc/lircmd.conf'\
+        'etc/conf.d/lircd')
+options=('!libtool' '!makeflags')
+source=(http://www.blushingpenguin.com/mark/lmilk/lirc-0.8.5-CVS-pvr150.tar.bz2 \
+	lircd lircmd lirc.logrotate lircd.conf.d \
+	kernel-2.6.26.patch lirc_atiusb.patch
+	hw_commandir.c 
+	hw_commandir.h) 
+md5sums=('b96dae91b566143b3af433fa2714ec9a' '909ad968afa10e4511e1da277bb23c3b'\
+         '85f7fdac55e5256967241864049bf5e9' '3deb02604b37811d41816e9b4385fcc3'\
+         '5b1f8c9cd788a39a6283f93302ce5c6e' '1753acd774f50b638e6173d364de53fd'\
+	 '7eccd7826ab99e5cf1b9154171c8b927')
+
+build() {
+	# configure
+	cd $startdir/src/lirc-0.8.5-CVS-pvr150 || return 1
+	cp $startdir/src/hw_commandir.* $startdir/src/lirc-0.8.5-CVS-pvr150/daemons
+#	patch -Np1 -i ../kernel-2.6.26.patch || return 1
+	patch -Np1 -i ../lirc_atiusb.patch || return 1
+
+      # Disabling lirc_gpio driver as it does no longer work Kernel 2.6.22+
+	sed -i -e "s:lirc_gpio\.o::" drivers/lirc_gpio/Makefile.am || return 1
+
+	autoreconf || return 1
+	libtoolize || return 1
+
+	./configure --enable-sandboxed --prefix=/usr \
+	--with-driver=all --with-kerneldir=/usr/src/linux-${_kernver} \
+	--with-moduledir=/lib/modules/${_kernver}/kernel/drivers/misc \
+	--with-transmitter \
+		|| return 1
+	# disable parallel and bt829
+        # because of incompatibility with smp systems
+        sed -i -e "s:lirc_parallel::" -e "s:lirc_bt829::" \
+		Makefile drivers/Makefile drivers/*/Makefile tools/Makefile \
+                || return 1
+
+  	# build
+	make || return 1
+	make DESTDIR=$startdir/pkg install || return 1
+	mkdir -p $startdir/pkg/usr/share/lirc $startdir/pkg/etc/rc.d \
+		|| return 1
+	cp $startdir/src/{lircd,lircmd} $startdir/pkg/etc/rc.d/ \
+		|| return 1
+	cp -rp remotes $startdir/pkg/usr/share/lirc || return 1
+	chmod -R go-w $startdir/pkg/usr/share/lirc/ || return 1
+
+	# install the logrotate config
+	install -D -m644 $startdir/src/lirc.logrotate \
+		$startdir/pkg/etc/logrotate.d/lirc || return 1
+	
+	# install conf.d file
+	install -D -m644 $startdir/src/lircd.conf.d \
+		$startdir/pkg/etc/conf.d/lircd || return 1
+
+	# remove built modules
+	rm -r $startdir/pkg/lib/
+}
diff --git a/abs/core-testing/lirc_085-utils/hw_commandir.c b/abs/core-testing/lirc_085-utils/hw_commandir.c
new file mode 100755
index 0000000..40ac0de
--- /dev/null
+++ b/abs/core-testing/lirc_085-utils/hw_commandir.c
@@ -0,0 +1,1926 @@
+/* CommandIR transceivers driver 0.96
+ * Supporting CommandIR II and CommandIR Mini (and multiple of both)
+ * April-June 2008, Matthew Bodkin
+ * December 2008, bug fixes, Matthew Bodkin
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <limits.h>
+#include <signal.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <sys/wait.h>
+#include <sys/un.h>
+#include <sys/utsname.h>
+
+#include "hardware.h"
+#include "ir_remote.h"
+#include "lircd.h"
+#include "receive.h"
+#include "transmit.h"
+#include "hw_commandir.h"
+#include <usb.h>
+
+#define RAPID_DECODE 1
+
+extern struct ir_remote *repeat_remote;
+extern char *progname;
+
+
+/**********************************************************************
+ *
+ * internal function prototypes
+ *
+ **********************************************************************/
+static int commandir_init();
+static int commandir_deinit(void);
+static char *commandir_rec(struct ir_remote *remotes);
+static void commandir_read_loop();
+static int cmdir_convert_RX(unsigned char *orig_rxbuffer);
+static unsigned int get_time_value(unsigned int firstint, 
+		unsigned int secondint, unsigned char overflow);
+static lirc_t commandir_readdata(lirc_t timeout);
+static int commandir_send(struct ir_remote *remote,struct ir_ncode *code);
+static int commandir_ioctl(unsigned int cmd, void *arg);
+//static void setEmitterMask(unsigned char highbyte, unsigned char lowbyte);
+static void setEmitterMask(int bitmask);
+static void commandir_transmit(char *buffer, int bytes, int bitmask, 
+		unsigned int);
+static void commandir_child_init();
+static void shutdown_usb();
+static void hardware_scan();
+static void hardware_disconnect(int);
+static void hardware_setorder();
+static void raise_event(unsigned int);
+static int commandir_read();
+static int check_irsend_commandir(unsigned char *command);
+static int commandir_decode(char *command);
+static int commandir_receive_decode(struct ir_remote *remote,
+                   ir_code *prep,ir_code *codep,ir_code *postp,
+                   int *repeat_flagp,
+                   lirc_t *min_remaining_gapp, lirc_t *max_remaining_gapp);
+static void pipeline_check();
+static int inline get_bit(int bitnum);
+static void add_to_tx_pipeline(unsigned char *buffer, int bytes, 
+		int channel_mask, unsigned int);
+static void recalc_tx_available(int);
+static void set_hash_mask(int channel_mask);
+static int commandir2_convert_RX(unsigned short *bufferrx, 
+		unsigned char numvalues);
+static void cleanup_commandir_dev(int spotnum);
+
+/**********************************************************************
+ *
+ * CommandIR Vars
+ *
+ **********************************************************************/
+static int current_transmitter_mask = 0xff;
+static char unsigned commandir_data_buffer[512];
+static int last_mc_time = -1;	
+static int commandir_rx_num = 0;
+
+
+static char channels_en[MAX_DEVICES]; 
+static char open_bus_hash[USB_MAX_BUSES][USB_MAX_BUSDEV];
+static int tx_order[MAX_DEVICES];
+static char device_count = 0;
+static int mini_freq[MAX_DEVICES];
+static int child_pipe_write = 0;
+static char haveInited = 0;
+// Fake 'commandir' remote signal values
+static unsigned int signal_base[2][2] = { {100|PULSE_BIT, 200},
+		 {1000|PULSE_BIT, 200} };
+
+// Pipes to and from the child/parent
+static pid_t child_pid = -1;
+static int pipe_fd[2] = { -1, -1 };
+static int pipe_tochild[2] = { -1, -1 };
+static int tochild_read = -1, tochild_write = -1;
+
+struct commandir_device
+{
+	usb_dev_handle *cmdir_udev;
+	int bus;
+	int busdev;
+	int interface;
+	int location;
+	int hw_type;
+	int hw_revision;
+	int hw_subversion;
+	unsigned char devnum;
+	int endpoint_max[3];
+} open_commandir_devices[4];
+
+struct hardware hw_commandir =
+{
+	NULL,					 	/* default device */
+	-1,                 		/* fd */
+	LIRC_CAN_SET_SEND_CARRIER|
+	LIRC_CAN_SEND_PULSE|
+	LIRC_CAN_SET_TRANSMITTER_MASK|
+	LIRC_CAN_REC_MODE2, 		
+	LIRC_MODE_PULSE,			/* send_mode */ 
+	LIRC_MODE_MODE2,            /* rec_mode */
+	sizeof(lirc_t),        		/* code_length in BITS */
+	commandir_init,       		/* init_func */
+	NULL,     			  		/* config_func */
+	commandir_deinit,     		/* deinit_func */
+	commandir_send,				/* send_func */
+ 	commandir_rec,        		/* rec_func  */
+	commandir_receive_decode,   /* decode_func */
+	commandir_ioctl,            /* ioctl_func */
+	commandir_readdata,		    /* readdata */
+	"commandir"
+};
+
+/***   LIRC Interface Functions - Non-blocking parent thread
+*/
+
+static int commandir_receive_decode(struct ir_remote *remote,
+                   ir_code *prep,ir_code *codep,ir_code *postp,
+                   int *repeat_flagp,
+                   lirc_t *min_remaining_gapp, lirc_t *max_remaining_gapp) {
+
+	int i;
+	i = receive_decode(remote,
+                   prep,codep,postp,
+                   repeat_flagp,
+                   min_remaining_gapp, max_remaining_gapp);
+
+	if(i > 0){
+		static char rx_char[3] = {3, 0, RXDECODE_HEADER_LIRC};
+		write(tochild_write, rx_char, 3);	
+	}
+	
+	return i;
+}
+
+
+static int commandir_init()
+{
+	long fd_flags;
+	if(haveInited){
+		static char init_char[3] = {3, 0, INIT_HEADER_LIRC};
+		write(tochild_write, init_char, 3);	
+		return 1;
+	}
+	
+	init_rec_buffer();	// LIRC's rec
+	init_send_buffer();	// LIRC's send
+	
+	/* A separate process will be forked to read data from the USB
+	 * receiver and write it to a pipe. hw.fd is set to the readable
+	 * end of this pipe. */
+	if (pipe(pipe_fd) != 0)
+	{
+		logprintf(LOG_ERR, "couldn't open pipe 1");
+		return 0;
+	}
+	
+	hw.fd = pipe_fd[0];	// the READ end of the Pipe
+	
+	if (pipe(pipe_tochild) != 0)
+	{
+		logprintf(LOG_ERR, "couldn't open pipe 1");
+		return 0;
+	}
+	
+	tochild_read = pipe_tochild[0];	// the READ end of the Pipe 
+	tochild_write = pipe_tochild[1];	// the WRITE end of the Pipe 
+	
+	fd_flags = fcntl(pipe_tochild[0], F_GETFL);
+  	if(fcntl(pipe_tochild[0], F_SETFL, fd_flags | O_NONBLOCK) == -1)
+	{
+		logprintf(LOG_ERR, "can't set pipe to non-blocking");
+		return 0;
+	}	
+	
+	child_pid= fork();
+	if (child_pid== -1)
+	{
+		logprintf(LOG_ERR, "couldn't fork child process");
+		return 0;
+	}
+	else if (child_pid== 0)
+	{
+		child_pipe_write = pipe_fd[1];	
+		commandir_child_init();
+		commandir_read_loop();
+		return 0;	
+	}
+	haveInited = 1;
+	
+	logprintf(LOG_ERR, "CommandIR driver initialized");
+	return 1;	
+}
+
+
+static int commandir_deinit(void)
+{
+	/* Trying something a bit new with this driver. Keeping the driver
+	 * connected so in the future we can still monitor in the client */
+	if(USB_KEEP_WARM && (!strncmp(progname, "lircd", 5)))
+	{
+		static char deinit_char[3] = {3, 0, DEINIT_HEADER_LIRC};
+		write(tochild_write, deinit_char, 3);
+		logprintf(LOG_ERR, "LIRC_deinit but keeping warm");
+	}
+	else
+	{
+		if (tochild_read >= 0)
+		{
+			if (close(tochild_read) < 0) 
+			{
+				logprintf(LOG_ERR, "Error closing pipe2");;
+			}
+			tochild_read = tochild_write = -1;
+		}
+		
+		if(haveInited){
+			// shutdown all USB
+			if(child_pid > 0)
+			{
+				logprintf(LOG_ERR, "Closing child process");
+				kill(child_pid, SIGTERM);
+				waitpid(child_pid, NULL, 0);
+				child_pid = -1;
+				haveInited = 0;
+			}
+		}
+		
+		if (hw.fd >= 0)
+		{
+			if (close(hw.fd) < 0) logprintf(LOG_ERR, "Error closing pipe");
+			hw.fd = -1;
+		}
+		
+		logprintf(LOG_ERR, "commandir_deinit()");
+	}
+	return(1);
+}
+
+static int commandir_send(struct ir_remote *remote,struct ir_ncode *code)
+{
+	int length;
+	lirc_t *signals;
+
+	if(!init_send(remote,code)) {
+		return 0;
+	}
+
+	length = send_buffer.wptr;
+	signals = send_buffer.data;
+
+	if (length <= 0 || signals == NULL) {
+		return 0;
+	}
+	
+	int cmdir_cnt =0;
+	char cmdir_char[70];
+	
+	// Set the frequency of the signal along with the signal + transmitters
+	cmdir_char[0] = 7;
+	cmdir_char[1] = 0;
+
+	cmdir_char[2] = FREQ_HEADER_LIRC;
+	cmdir_char[3] = (remote->freq >> 24) & (0xff);
+	cmdir_char[4] = (remote->freq >> 16) & (0xff);
+	cmdir_char[5] = (remote->freq >> 8) & (0xff);
+	cmdir_char[6] = (remote->freq & 0xff);
+	
+	write(tochild_write, cmdir_char, cmdir_char[0]);
+
+	cmdir_cnt = 3;
+	
+	unsigned char * send_signals = malloc(sizeof(signals) * length + 4);
+	
+	send_signals[0] = (sizeof(lirc_t) * length + 4) & 0xff;
+	send_signals[1] = ((sizeof(lirc_t) * length + 4) >> 8) & 0xff;
+	
+	send_signals[2] = TX_LIRC_T;
+	send_signals[3] = (char)current_transmitter_mask;	
+	
+	memcpy(&send_signals[4], signals, sizeof(lirc_t) * length);
+	
+	if(write(tochild_write, send_signals, 
+		send_signals[0] + send_signals[1] * 256) < 0)
+	{
+		logprintf(LOG_ERR, "Error writing to child_write");
+	}
+	
+	free(send_signals);
+	return(length);
+}
+
+static char *commandir_rec(struct ir_remote *remotes)
+{
+	char * returnit;
+	if (!clear_rec_buffer()) return NULL;
+	returnit = decode_all(remotes);
+	return returnit;
+}
+
+static int commandir_ioctl(unsigned int cmd, void *arg)
+{
+	unsigned int ivalue;
+	char cmdir_char[5];
+	
+	switch(cmd)
+	{
+	case LIRC_SET_TRANSMITTER_MASK:
+		
+		ivalue=*(unsigned int*)arg;
+		
+		if(ivalue >= MAX_MASK) return (MAX_CHANNELS);
+		
+		/* Support the old way of setting the frequency of the signal along 
+		 * with the signal + transmitters */
+		cmdir_char[0] = 5;
+		cmdir_char[1] = 0;
+		cmdir_char[2] = CHANNEL_EN_MASK;
+		cmdir_char[3] = (unsigned char)(ivalue & 0x00FF);	// Low bits
+		cmdir_char[4] = (unsigned char)(ivalue >> 8);		// High bits
+		
+		write(tochild_write, cmdir_char, cmdir_char[0]);
+
+		return (0);
+		
+	default:
+		logprintf(LOG_ERR, "Unknown ioctl - %d", cmd);
+		return(-1);
+	}
+	
+	return 1;
+}
+
+static lirc_t commandir_readdata(lirc_t timeout)
+{
+	lirc_t code = 0;
+	struct timeval tv = {0, timeout};
+	fd_set fds;
+
+	FD_ZERO(&fds);
+	FD_SET(hw.fd, &fds);
+
+	/* attempt a read with a timeout using select */
+	if (select(hw.fd + 1, &fds, NULL, &fds, &tv) > 0)
+		/* if we failed to get data return 0 */
+		if (read(hw.fd, &code, sizeof(lirc_t)) <= 0)
+                        commandir_deinit();
+	return code;
+}
+
+/***  End of parent fork / LIRC accessible functions  */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/***  CommandIR Client Process Functions (Handle all USB operations)
+ */
+ 
+int channels_space_available[MAX_CHANNELS]; 
+int channels_space_updated = 0; // last updated time
+
+char * signalq[MAX_SIGNALQ];	// how many signals can be queued
+int signalq_len[MAX_SIGNALQ];
+int signalq_bitmask[MAX_SIGNALQ];
+unsigned int signalq_frequency[MAX_SIGNALQ];
+
+int top_signalq = -1;
+int next_signalq_per_channel[MAX_CHANNELS];	
+
+unsigned char commandir_tx_start[MAX_CHANNELS*4];
+unsigned char commandir_tx_end[MAX_CHANNELS*4];
+unsigned char commandir_tx_available[MAX_CHANNELS];
+unsigned char lastSendSignalID[MAX_CHANNELS];
+unsigned char commandir_last_signal_id[MAX_CHANNELS];
+
+
+// Global variables to convert channel masks to consistant easier formats
+unsigned char hash_mask[MAX_CHANNELS];
+unsigned char selected_channels[MAX_CHANNELS];
+unsigned char total_selected_channels = 0;
+int shutdown_pending = 0;
+int read_delay = WAIT_BETWEEN_READS_US;
+int insert_fast_zeros = 0;
+
+int rx_hold = 0;
+
+// This is the only one for pre-pipelinging
+int pre_pipeline_emitter_mask = 0x000f; // default tx on only first CommandIR
+
+
+static void pipeline_check()
+{
+	/* Transmit from the pipeline if it's time and there's space
+	 * what's available should now be updated in the main_loop
+	 */
+	
+	int i,j,k;
+	
+	i=0;
+	if(top_signalq < 0) return;
+	
+	while(i <= top_signalq)
+	{
+
+		// Are ALL the channels this signal should TX on currently available?
+		int oktosend = 1;
+		set_hash_mask( signalq_bitmask[ i ] );
+		for(j = 0; j<total_selected_channels; j++)
+		{
+			if(commandir_tx_available[ selected_channels[j] ] < 
+				(36 + (signalq_len[ i ])/sizeof(lirc_t)))	
+			{
+				oktosend = 0;
+				break;
+			}
+		}
+		
+		if(oktosend)
+		{
+			// great, TX this on all the channels.
+			
+			commandir_transmit(signalq[ i ], signalq_len[ i ], signalq_bitmask[ i ], signalq_frequency[ i ]);
+			
+			for(j = 0; j<total_selected_channels; j++)
+			{
+				/*  commandir_tx_available[ selected_channels[j] ] -= 
+					(64 + (signalq_len[ i ])/sizeof(lirc_t));  */
+				commandir_tx_available[ selected_channels[j] ] = 0; 
+			}
+			
+			/* Free up the memory, and see if there are new next_signalq's 
+			 * (any more for this channel to TX)
+			 */
+			free(signalq[i]);
+			
+			for(k=i; k<top_signalq; k++)
+			{
+				signalq[k] = signalq[k+1];
+				signalq_len[k] = signalq_len[k+1];
+				signalq_bitmask[k] = signalq_bitmask[k+1];
+				signalq_frequency[k] = signalq_frequency[k+1];
+			}
+			top_signalq--;
+		}
+		else
+		{
+			i++;
+		}
+	}
+}
+
+static int get_bit(int bitnum)
+{
+	int r = 1;
+	return r << bitnum; // bit 0 is 1, bit 1 is 10, bit 2 is 100...
+}
+
+static void add_to_tx_pipeline(unsigned char *buffer, int bytes, 
+	int channel_mask, unsigned int frequency)
+{
+	/* *buffer points to a buffer that will be OVERWRITTEN; malloc our copy.
+	 * buffer is a LIRC_T packet for CommandIR 
+	 */
+	top_signalq++;
+	if(top_signalq > MAX_SIGNALQ)
+	{
+		logprintf(LOG_ERR, "Too many signals in queue: > %d", MAX_SIGNALQ);
+		return;
+	}
+	
+	signalq[top_signalq] = malloc(bytes);
+	
+	signalq_len[top_signalq] = bytes;
+	signalq_bitmask[top_signalq] = channel_mask;
+	signalq_frequency[top_signalq] = frequency;
+	
+	lirc_t *oldsignal, *newsignal;
+	int x, pulse_now = 1;
+	int projected_signal_length;
+	short aPCAFOM = 0;
+	float afPCAFOM = 0.0;
+	int difference = 0;
+					
+	afPCAFOM = (6000000.0 / ((frequency > 0) ? frequency : DEFAULT_FREQ)  ) ; 
+	aPCAFOM = afPCAFOM;
+	
+	// Trim off mid-modulation pulse fragments, add to space for exact signals
+	for(x=0; x<(bytes/sizeof(lirc_t)); x++)
+	{
+		oldsignal = (lirc_t *)&buffer[x*sizeof(lirc_t)];
+		newsignal = (lirc_t *)signalq[top_signalq];
+		newsignal += x;
+		
+		if(pulse_now==1){
+			projected_signal_length =  
+				(((int)( (*oldsignal * 12)/( afPCAFOM ) ))  * aPCAFOM) / 12;
+			difference = *oldsignal - projected_signal_length;
+			// take off difference plus 1 full FOM cycle
+			*newsignal = *oldsignal - difference - (aPCAFOM / 12);	
+			
+		}
+		else
+		{
+			if(difference != 0)
+			{
+				// Add anything subtracted from the pulse to the space
+				*newsignal = *oldsignal + difference + (aPCAFOM / 12);
+				difference = 0;
+			}
+		
+		}
+		
+		pulse_now++;
+		if(pulse_now > 1) pulse_now = 0;
+	}
+	
+	return;
+}
+
+static void recalc_tx_available(int which_commandir)
+{
+	int i;
+	int length = 0;
+	static int failsafe = 0;
+	
+	if(lastSendSignalID[which_commandir] != 
+		commandir_last_signal_id[which_commandir])
+	{
+		/* INNOVATIONONE_FLAG:REMOVE  This will be removed pending testing
+		 * for a future release
+		 */
+		if(failsafe++ < 1000)
+		{
+			return;
+		}
+		logprintf(LOG_ERR, "Error: required the failsafe");
+	}
+	
+	failsafe = 0;
+	for(i=which_commandir*4; i<((which_commandir+1)*4); i++)
+	{
+		length = commandir_tx_end[i] - commandir_tx_start[i];
+		if(length < 0) length += 0xff;
+		
+		if(commandir_tx_available[i] < 0xff - length)
+			commandir_tx_available[i] = 0xff - length;
+			
+	}
+}
+
+static void set_hash_mask(int channel_mask) // eg, 8
+{
+	// bitwise set of hash_mask for easier coding...
+	int i,j;
+	j=channel_mask;
+	total_selected_channels = 0;
+	for(i=0; i<MAX_CHANNELS; i++)
+	{
+		hash_mask[i] = j & 0x01;
+		j = j >> 1;
+		if(hash_mask[i])
+			selected_channels[total_selected_channels++] = i;
+	}
+}
+
+
+static void commandir_transmit(char *buffer, int bytes, int bitmask, 
+	unsigned int frequency)
+{
+	/*** Send a TX command to 1 or more CommandIRs.
+	 * Keep in mind: TX frequency, TX channels, TX signal length, 
+	 * which CommandIR, & what hardware version
+	 */
+	
+	int send_status;
+	unsigned char packet[TX_BUFFER_SIZE];
+	/* So we know where there should be gaps between signals and more 
+	 * importantly, where there shouldn't be
+	 */
+	static char signalid = 1;	
+	
+	/* Depending on the tx channels, then depending on what hardware it is, 
+	 * set the freq if needed, and send the buffer with the channel header 
+	 * that's right for that CommandIR
+	 */
+	
+	int devicenum = 0;
+	int sent = 0, tosend = 0;
+	unsigned char mini_tx_mask = 0;
+	lirc_t * signals;	// have bytes/sizeof(lirc_t) signals
+	signals = (lirc_t *)buffer;
+	int total_signals = 0;
+	int i;
+	char cmdir_char[66];
+	int which_signal = 0;
+	
+	total_signals = bytes / sizeof(lirc_t);
+	
+	setEmitterMask(bitmask);
+	
+	for(devicenum = 0; devicenum < device_count; devicenum++)
+	{
+		// Do we transmit on any channels on this device?
+		if(channels_en[ devicenum ])
+		{
+			which_signal = 0;
+			switch(open_commandir_devices[ tx_order[devicenum] ].hw_type)
+			{
+				case HW_COMMANDIR_2:
+					
+					mini_tx_mask = 0;
+					// Short enough loop to unroll
+					if(channels_en[ devicenum ] & 1) mini_tx_mask |= 0x10;
+					if(channels_en[ devicenum ] & 2) mini_tx_mask |= 0x20;
+					if(channels_en[ devicenum ] & 4) mini_tx_mask |= 0x40;
+					if(channels_en[ devicenum ] & 8) mini_tx_mask |= 0x80;
+					
+					packet[1] = TX_COMMANDIR_II;
+					packet[2] = mini_tx_mask;
+					
+					short PCAFOM = 0;
+					float fPCAFOM = 0.0;
+					
+					if(bytes/sizeof(lirc_t) > 255)
+					{
+						logprintf(LOG_ERR, "Error: signal over max size");
+						continue; 
+					}
+					
+					fPCAFOM = (6000000 / ((frequency > 0) ? frequency : 
+						DEFAULT_FREQ)  ) ; 
+					PCAFOM = fPCAFOM;
+					
+					lastSendSignalID[  tx_order[devicenum]   ] = packet[5] = (getpid() + signalid++) + 1;	
+					
+					packet[4] = PCAFOM & 0xff;
+					packet[3] = (PCAFOM >> 8) & 0xff;					
+					
+					short packlets_to_send = 0, sending_this_time = 0;
+					
+					packlets_to_send = bytes / sizeof(lirc_t);
+					
+					int attempts;
+					for(attempts = 0; attempts < 10; attempts++)
+					{
+					
+						if((packlets_to_send*3 + 7) > open_commandir_devices[ tx_order[devicenum] ].endpoint_max[1])
+						{
+							sending_this_time = open_commandir_devices[ tx_order[devicenum] ].endpoint_max[1]/3 - 3;
+						}
+						else
+						{
+							sending_this_time = packlets_to_send;
+						}
+						int sending;
+
+						for(i=0; i<sending_this_time; i++)
+						{
+							sending = signals[which_signal++];
+							
+							packet[i*3+7] = sending >> 8; // high1
+							packet[i*3+8] = sending & 0xff; // low
+							packet[i*3+9] = sending >> 16 & 0xff; // high2
+						}
+						
+						packet[0] = (sending_this_time * 3 + 7);
+						packet[6] = (sending_this_time == packlets_to_send)  ? 0xcb :  0x00;
+						
+						send_status=usb_bulk_write(
+							open_commandir_devices[ tx_order[devicenum] ].cmdir_udev, 
+							2, // endpoint2
+							(char*)packet,
+							packet[0], 
+							USB_TIMEOUT_MS);
+						if(send_status < 0)
+						{
+							// Error transmitting.
+							hardware_scan();
+							return;
+						}
+						
+						packlets_to_send -= ((send_status - 7) / 3);
+						if(!packlets_to_send)
+						{
+							// "No more packlets to send\n"
+							break;
+						}
+					}
+					continue; // for transmitting on next CommandIR device
+					
+			
+				case HW_COMMANDIR_MINI:
+					mini_tx_mask = 0;
+					if(channels_en[ devicenum ] & 1) mini_tx_mask |= 0x80;
+					if(channels_en[ devicenum ] & 2) mini_tx_mask |= 0x40;
+					if(channels_en[ devicenum ] & 4) mini_tx_mask |= 0x20;
+					if(channels_en[ devicenum ] & 8) mini_tx_mask |= 0x10;
+					
+					char freqPulseWidth = DEFAULT_PULSE_WIDTH;
+					
+					freqPulseWidth = (unsigned char)((1000000 / 
+						((frequency > 0) ? frequency: DEFAULT_FREQ)  ) / 2);
+					
+					if(freqPulseWidth == 0)
+					{
+						freqPulseWidth = DEFAULT_PULSE_WIDTH;
+					}
+					
+					if(mini_freq[ tx_order[devicenum] ] != freqPulseWidth)
+					{
+						// Update the CommandIR Mini's next tx frequency
+						cmdir_char[0] = FREQ_HEADER;
+						cmdir_char[1] = freqPulseWidth;
+						cmdir_char[2] = 0;
+						mini_freq[ tx_order[devicenum] ] = freqPulseWidth;
+						send_status=usb_bulk_write(
+							open_commandir_devices[ tx_order[devicenum] ].cmdir_udev, 
+							2, // endpoint2
+							cmdir_char,
+							2, // 2 bytes
+							USB_TIMEOUT_MS);
+						if(send_status < 2)
+						{
+							// Error transmitting.
+							hardware_scan();
+							return ;
+						}
+ 					}
+					
+					unsigned int mod_signal_length=0;
+					
+					cmdir_char[0] = TX_HEADER_NEW;
+ 					cmdir_char[1] = mini_tx_mask;
+					
+					unsigned int hibyte, lobyte;
+
+					sent = 0;
+					which_signal = 0;
+					while(sent < (bytes / sizeof(lirc_t) * 2 ) )
+					{
+ 						tosend = (bytes / sizeof(lirc_t) * 2 ) - sent;
+						
+						if(tosend > (MAX_HW_MINI_PACKET - 2))
+						{
+							tosend = MAX_HW_MINI_PACKET - 2;
+						}
+						
+						for(i=0;i<(tosend/2);i++) // 2 bytes per CommandIR pkt
+						{
+							mod_signal_length = signals[which_signal++] >> 3;
+							hibyte = mod_signal_length/256;
+							lobyte = mod_signal_length%256;
+							cmdir_char[i*2+3] = lobyte;
+							cmdir_char[i*2+2] = hibyte;
+						}
+
+						send_status=usb_bulk_write(
+							open_commandir_devices[ tx_order[devicenum] ].cmdir_udev, 
+							2, // endpoint2
+							cmdir_char,
+							tosend + 2, 
+							USB_TIMEOUT_MS);
+						if(send_status < 1)
+						{
+							// Error transmitting.
+							hardware_scan();
+							return;
+						}
+						sent += tosend;
+					} // while unsent data
+					continue; // for transmitting on next CommandIR device
+				default:
+					logprintf(LOG_ERR, "Unknown hardware: %d", 
+						open_commandir_devices[tx_order[devicenum]].hw_type);
+			} // hardware switch()
+		} // if we should tx on this device
+	} // for each device we have
+}
+
+
+static void commandir_child_init()
+{
+	alarm(0);
+	signal(SIGTERM, shutdown_usb);
+	signal(SIGPIPE, SIG_DFL);
+	signal(SIGINT, shutdown_usb);
+	signal(SIGHUP, SIG_IGN);
+	signal(SIGALRM, SIG_IGN);
+	
+	logprintf(LOG_ERR, "Child Initializing CommandIR Hardware");
+	
+	usb_init();
+	int i;
+	for(i=0;i<MAX_CHANNELS;i++)
+	{
+		next_signalq_per_channel[i] = -1;
+		channels_en[i] = 0xff;
+	}
+/*	
+	// Check kernel version: support fast decoding
+	char checkV[] = {0,0,0,0,0,0,0,0,0,0};
+	FILE * checkfile;
+	int kernel_major = 0, kernel_minor = 0;
+	
+	checkfile=fopen("/proc/sys/kernel/osrelease", "r");
+	if(checkfile!=NULL)
+	{
+		fgets(checkV, 7, checkfile);
+		printf("Checking: %s.\n", checkV);
+		printf("Version checking %s.\n", &checkV[4]);
+		kernel_major = atoi(&checkV[2]);
+		kernel_minor = atoi(&checkV[4]);
+		printf("Major is: %d, minor is %d.\n", kernel_major, kernel_minor);
+		fclose(checkfile);
+	}
+	
+	if(kernel_major < 6){
+		insert_fast_zeros = 0;
+		logprintf(LOG_ERR, "Fast decoding disabled");
+	}
+	else
+	{
+		if(kernel_minor <= 24)
+		{
+			logprintf(LOG_ERR, "Fast decoding enabled (1)");
+			insert_fast_zeros = 1;
+		}
+		else
+		{
+			logprintf(LOG_ERR, "Fast decoding enabled");
+			insert_fast_zeros = 2;
+		}
+	}*/
+	hardware_scan();
+}
+
+static void hardware_disconnect(int commandir_spot)
+{
+	/* We had a read/write error, try disconnecting it and force _scan to 
+	 * reconnect - otherwise we may get perpetual read/write errors
+	 */
+	
+	int x;
+	
+	//	reset the hash so we don't try and disconnect this device again
+	//  device_count is decremented here
+	cleanup_commandir_dev(commandir_spot);
+	
+	raise_event(COMMANDIR_UNPLUG_1 + commandir_spot);
+	
+	/* Cases are:
+	removing device 0 when there's no more device (do nothing)
+	removing device < MAX when there's still 1+ devices (patch up)
+	removing device==MAX when there's more devices (do nothing)
+	*/
+	
+	// new device count-- from cleanup (if device_count > 0 AND commandir removed isn't 0 or max)
+	if( (device_count > 0) && (commandir_spot != device_count) )
+	{
+		/* It wasn't the top device removed, and there's 
+			* more than 1 device, so we have some vars to patch up
+			*/
+		for(x=commandir_spot; x<(device_count); x++)
+		{
+			channels_en[x] = channels_en[x+1];
+			mini_freq[x] = mini_freq[x+1];
+			commandir_last_signal_id[x] = commandir_last_signal_id[x+1];
+			lastSendSignalID[x] = lastSendSignalID[x+1];
+			memcpy(&open_commandir_devices[x], 
+				&open_commandir_devices[x+1], 
+				sizeof(struct commandir_device));	
+		}
+	
+	// Reset the TOP one that was just removed:
+		channels_en[(int)device_count] = 0x0f;
+		mini_freq[(int)device_count] = -1;
+		commandir_last_signal_id[(int)device_count] = 0;
+		lastSendSignalID[(int)device_count] = 0;
+		open_commandir_devices[(int)device_count].cmdir_udev = 0;
+		open_commandir_devices[(int)device_count].bus = 0;
+		open_commandir_devices[(int)device_count].busdev = 0;
+		open_commandir_devices[(int)device_count].interface = 0; 
+		open_commandir_devices[(int)device_count].hw_type = 0;
+		open_commandir_devices[(int)device_count].hw_revision = 0;
+		open_commandir_devices[(int)device_count].hw_subversion = 0;
+		
+	}
+	
+	if(commandir_rx_num>=commandir_spot)
+	{
+		commandir_rx_num--;	
+	}
+
+	hardware_setorder();
+}
+
+static void hardware_setorder(){
+	/* Tried to order to the detected CommandIRs based on bus and dev ids
+		* so they remain the same on reboot.  Adding a new device in front
+		* will mean it becomes device 0 and emitters or scripts must be fixed
+		* Need a different param, these still change. 
+		*/
+		
+	tx_order[0] = tx_order[1] = tx_order[2] = tx_order[3] = 0; 
+	mini_freq[0] = mini_freq[1] = mini_freq[2] = mini_freq[3] = -1;
+	int largest = 0;
+	int tmpvals[4];
+	int x, tx_spots, find_spot;
+	
+	for(x=0; x<device_count; x++)
+	{
+		tmpvals[x] = 256 * open_commandir_devices[x].bus + 
+			open_commandir_devices[x].busdev;
+	}
+	
+	for(tx_spots = 0; tx_spots < device_count; tx_spots++)
+	{
+		largest = 0;
+		for(find_spot = 0; find_spot < device_count; find_spot++)
+		{
+			if(tmpvals[find_spot] > tmpvals[largest])
+			{
+				largest = find_spot;
+			}
+		}
+		tx_order[device_count - tx_spots - 1 ] = largest;
+		tmpvals[largest] = 0;
+	}
+	
+	
+	// The formerly receiving CommandIR has been unplugged
+	if(commandir_rx_num < 0)
+	{
+		if(device_count > 0)
+			commandir_rx_num = 0;
+	}
+	
+	// Clear all pending signals
+	for(x=top_signalq; x >= 0; x--)
+	{
+		free(signalq[top_signalq]);
+	}
+	top_signalq = -1;
+	
+}
+
+static void cleanup_commandir_dev(int spotnum)
+{
+	int location, devnum;
+
+	location = open_commandir_devices[spotnum].location;
+	devnum = open_commandir_devices[spotnum].devnum;
+
+  open_bus_hash[ location ][ devnum ] = 0;
+	device_count--;	
+  
+	if(open_commandir_devices[spotnum].cmdir_udev==NULL)
+	{
+		return;
+	}
+	usb_release_interface(open_commandir_devices[spotnum].cmdir_udev, 
+		open_commandir_devices[spotnum].interface);
+	usb_close(open_commandir_devices[spotnum].cmdir_udev);
+	open_commandir_devices[spotnum].cmdir_udev = NULL;
+}
+
+
+static void hardware_scan()
+{
+	// Scan for hardware changes; libusb doesn't notify us...
+	unsigned char located = 0;
+	struct usb_bus *bus = 0;
+	struct usb_device *dev = 0;
+	
+	int scan_find[MAX_DEVICES][2]; // [0]=bus#, [1]=busdev#
+	unsigned char found = 0;
+	// Using hash for performance instead of memory conservation (+1k)
+	unsigned char still_found[USB_MAX_BUSES][USB_MAX_BUSDEV];
+	unsigned changed = 0;
+	int find_spot = 0;
+	
+	usb_find_busses();
+	usb_find_devices();
+ 	
+ 	for (bus = usb_busses; bus; bus = bus->next)
+	{
+		for (dev = bus->devices; dev; dev = dev->next)	
+		{
+			if (dev->descriptor.idVendor == USB_CMDIR_VENDOR_ID) 
+			{
+				located++;
+				// Do we already know about it?
+				if(!open_bus_hash[bus->location][dev->devnum]){
+				  // Then it's new, open it if we have a spot available
+				  for(find_spot=0; find_spot < MAX_DEVICES; find_spot++)
+				  {
+					if(open_commandir_devices[find_spot].cmdir_udev == NULL)
+					{
+					  // Try to open here
+					  open_commandir_devices[find_spot].cmdir_udev = usb_open(dev);
+					  if(open_commandir_devices[find_spot].cmdir_udev == NULL)
+					  {
+						logprintf(LOG_ERR, 
+						  "Error opening commandir - bus %d, device %d.",
+						  bus, dev);
+						  break;
+						}
+						else 
+						{
+						  
+						// Try to set configuration; not needed on Linux
+// 						int usb_set_configuration(usb_dev_handle *dev, int configuration);
+ 							int r = 0;
+// 							r = usb_set_configuration(open_commandir_devices[find_spot].cmdir_udev, 1);
+// 						printf("Set_configuration returned %d.\n", r);
+						  
+						  r = usb_claim_interface(
+						  	open_commandir_devices[find_spot].cmdir_udev,0);
+						  if(r < 0)
+						  {
+						  	cleanup_commandir_dev(find_spot);
+								logprintf(LOG_ERR, 
+								"Unable to claim CommandIR - Is it already busy?"
+								);
+								logprintf(LOG_ERR, 
+								"Try 'rmmod commandir' or check for other lircds"
+								);
+								break;
+						  }
+						  else 
+						  {
+							// great, it's ours
+							open_commandir_devices[find_spot].location = bus->location;
+							open_commandir_devices[find_spot].devnum = dev->devnum;
+							open_bus_hash[bus->location][dev->devnum] = 1;
+							open_commandir_devices[find_spot].bus = bus->location;
+							open_commandir_devices[find_spot].busdev = dev->devnum;
+							scan_find[++found][0] = bus->location;
+							scan_find[found][1] = dev->devnum;
+							device_count++;
+							changed++;
+							still_found[bus->location][dev->devnum] = 1;	
+							 
+							struct usb_config_descriptor *config = &dev->config[0];
+							struct usb_interface *interface = &config->interface[0];
+							struct usb_interface_descriptor *ainterface = &interface->altsetting[0];
+/*						struct usb_endpoint_descriptor *endpoint = &ainterface->endpoint[2];*/
+							
+							int i;// Load wMaxPacketSize for each endpoint; subtract 0x80 
+										// for double-buffer bit
+							for (i = 0; i < ainterface->bNumEndpoints; i++)
+							{
+								open_commandir_devices[find_spot].endpoint_max[ 
+									(ainterface->endpoint[i].bEndpointAddress >= 0x80) 
+									? (ainterface->endpoint[i].bEndpointAddress-0x80) 
+									: (ainterface->endpoint[i].bEndpointAddress)] 
+									= ainterface->endpoint[i].wMaxPacketSize;
+							}
+							
+							// compensate for double buffer:
+							open_commandir_devices[find_spot].endpoint_max[1] *= 2;
+							
+							// Always use the latest to RX:
+							commandir_rx_num = find_spot;	
+							
+							switch(dev->descriptor.iProduct)
+							{
+							 case 2:
+							 	logprintf(LOG_ERR, "Product identified as CommandIR II");
+							 	open_commandir_devices[find_spot].hw_type = HW_COMMANDIR_2;
+							  open_commandir_devices[find_spot].hw_revision = 0;
+							  open_commandir_devices[find_spot].hw_subversion = 0;
+							  
+							  int send_status = 0, tries=20;
+							  static char get_version[] = {2, GET_VERSION};
+
+								send_status = 4;	// just to start the while()
+								
+								while(tries--){
+									usleep(USB_TIMEOUT_US);	// wait a moment
+										
+									// try moving this below:
+									send_status = usb_bulk_write(
+									open_commandir_devices[find_spot].cmdir_udev, 
+										2, // endpoint2
+										get_version,
+										2, 
+										1500);
+									if(send_status < 0)
+									{
+										logprintf(LOG_ERR, 
+											"Unable to write version request - Is CommandIR busy? Error %d", send_status);
+										break;
+									}
+									
+									send_status = usb_bulk_read(
+										open_commandir_devices[find_spot].cmdir_udev,
+										1,
+										(char *)commandir_data_buffer,
+										open_commandir_devices[ find_spot ].endpoint_max[1],
+										1500);
+										
+									if(send_status < 0)
+									{
+										logprintf(LOG_ERR, 
+											"Unable to read version request - Is CommandIR busy? Error %d", send_status);
+										cleanup_commandir_dev(find_spot);
+										break;
+									}
+									if(send_status==3)
+									{
+										if(commandir_data_buffer[0]==GET_VERSION)
+										{
+											// Sending back version information.
+											open_commandir_devices[find_spot].hw_revision = 
+												commandir_data_buffer[1];
+											open_commandir_devices[find_spot].hw_subversion = 
+												commandir_data_buffer[2];
+											logprintf(LOG_ERR, "Hardware revision is %d.%d.", 
+												commandir_data_buffer[1], commandir_data_buffer[2]);
+											break;
+										}
+										else
+										{
+											continue;
+										}
+									}
+									
+							}
+							break;
+							default:
+								logprintf(LOG_ERR, "Product identified as CommandIR Mini");
+   							open_commandir_devices[find_spot].hw_type = 
+								HW_COMMANDIR_MINI;
+							}
+							
+							if(open_commandir_devices[find_spot].hw_type == 
+								HW_COMMANDIR_UNKNOWN)
+							{
+								logprintf(LOG_ERR, "Product UNKNOWN - cleanup");
+								cleanup_commandir_dev(find_spot);
+							}
+							else
+							{
+								lastSendSignalID[find_spot] = 0;
+								commandir_last_signal_id[find_spot] = 0;
+							}
+							break; // don't keep looping through find_spot
+							} // claim?
+						}// open?
+					}// spot available?
+				 }// for(spots)
+				} // if we haven't seen it before
+				else
+				{
+					still_found[bus->location][dev->devnum] = 1;
+				}
+			}// if it's a CommandIR
+		}// for bus dev's
+	}// for bus's
+	
+	if(!located)
+	{
+		logprintf(LOG_ERR, "No CommandIRs found");
+	}
+	
+	/* Check if any we currently know about have been removed
+	 * (Usually, we get a read/write error first)
+	 */
+	for(find_spot = 0; find_spot < MAX_DEVICES; find_spot++)
+	{
+		if(open_commandir_devices[find_spot].cmdir_udev != NULL)
+		{
+			if(still_found[open_commandir_devices[find_spot].location]
+				[open_commandir_devices[find_spot].devnum] != 1)
+			{
+				logprintf(LOG_ERR, "Commandir %d removed from [%d][%d].", find_spot,open_commandir_devices[find_spot].location, open_commandir_devices[find_spot].devnum);
+				raise_event(COMMANDIR_UNPLUG_1 + find_spot);
+				hardware_disconnect(find_spot);
+				commandir_rx_num = -1;
+				changed++;
+			}
+		}
+	}
+	
+	if(changed)
+	{
+		hardware_setorder();
+		raise_event(COMMANDIR_REORDERED);
+	}
+	
+}
+
+
+// Shutdown everything and terminate 
+static void shutdown_usb()
+{
+	int x;
+	
+	// Wait for any TX to complete before shutting down
+	if(top_signalq >= 0)
+	{
+		shutdown_pending++;
+		logprintf(LOG_ERR, "Waiting for signals to finish transmitting before shutdown");
+		return;
+	}
+	
+	for(x=0; x<MAX_DEVICES; x++)
+	{
+		if(open_commandir_devices[x].cmdir_udev )
+		{
+			usb_release_interface(open_commandir_devices[x].cmdir_udev, 
+				open_commandir_devices[x].interface);
+			usb_close(open_commandir_devices[x].cmdir_udev);
+		}
+	}
+	logprintf(LOG_ERR, "CommandIR driver child cleaned up and exiting");
+	raise_event(COMMANDIR_STOPPED);
+
+	_exit(EXIT_SUCCESS);
+}
+
+static void commandir_read_loop()
+{
+	// Read from CommandIR, Write to pipe
+	
+	unsigned char commands[MAX_COMMAND];
+	int curCommandStart = 0;
+	int curCommandLength = 0;
+	int bytes_read;
+	unsigned char periodic_checks = 0;
+	static unsigned char rx_decode_led[7] = {7, PROC_SET, 0x40, 0, 0,4, 2}; 
+	static unsigned char init_led[7] = {7, PROC_SET, 0x00, 0x01, 3, 55, 2}; 
+	static unsigned char deinit_led[7] = {7, PROC_SET, 0x0, 0x02, 3, 45, 2}; 
+	static unsigned int LIRC_frequency = 38000; 
+
+	int send_status = 0; 
+	int i = 0;
+	int tmp = 0;
+	int tmp2 = 0;
+
+	raise_event(COMMANDIR_READY);
+	
+	for(;;){
+		/*** This is the main loop the monitors control and TX events from 
+		  * the parent, and monitors the CommandIR RX buffer
+		  */
+		
+		curCommandStart = 0;
+		curCommandLength = 0;
+		bytes_read = read(tochild_read, commands, MAX_COMMAND); 
+		
+		if(shutdown_pending > 0 && (top_signalq==-1))
+			shutdown_usb();
+		
+		if(bytes_read > 0){
+		
+			while(curCommandStart < bytes_read){
+				curCommandLength = commands[curCommandStart] + 
+					commands[curCommandStart + 1] * 256;
+				
+				switch(commands[curCommandStart + 2]){	// the control value
+					case DEINIT_HEADER_LIRC:
+						for(i=0; i<device_count; i++)
+						{
+						 if(open_commandir_devices[tx_order[i]].hw_type ==
+						  HW_COMMANDIR_2)
+						 {
+						  if(open_commandir_devices[tx_order[i]].cmdir_udev > 0)
+						  {
+							send_status=usb_bulk_write(
+								open_commandir_devices[tx_order[i]].cmdir_udev, 
+								2, // endpoint2
+								(char*)deinit_led,
+								7, // bytes
+								USB_TIMEOUT_MS);
+						  }
+						  rx_hold = 1;	// Put a hold on RX, but queue events
+						 }
+						}
+						
+						break;
+					case INIT_HEADER_LIRC:
+						for(i=0; i<device_count; i++)
+						{
+						 if(open_commandir_devices[tx_order[i]].hw_type == 
+							HW_COMMANDIR_2)
+						 {
+						 if(open_commandir_devices[tx_order[i] ].cmdir_udev > 0)
+						  {
+							send_status=usb_bulk_write(
+								open_commandir_devices[tx_order[i] ].cmdir_udev,
+								2, // endpoint2
+								(char*)init_led,
+								7, // bytes
+								USB_TIMEOUT_MS);
+						  }
+						  rx_hold = 0;	// Resume RX after queue events
+						 }
+						}
+						break;
+					case RXDECODE_HEADER_LIRC:
+					  //	Successful RX decode: show it on the light.
+					  if(open_commandir_devices[commandir_rx_num].cmdir_udev > 0)
+					  {
+						send_status=usb_bulk_write(
+							open_commandir_devices[commandir_rx_num].cmdir_udev,
+							2, // endpoint2
+							(char*)rx_decode_led,
+							7, // bytes
+							USB_TIMEOUT_MS);
+
+					  }
+					  break;
+
+					case FREQ_HEADER_LIRC:
+						LIRC_frequency = (commands[curCommandStart + 6] & 0x000000ff) | 
+							((commands[curCommandStart + 5] << 8) & 0x0000ff00) | 
+							((commands[curCommandStart + 4] << 16) & 0x00ff0000) | 
+							((commands[curCommandStart + 3] << 24) & 0xff000000);
+						if(!LIRC_frequency)
+							LIRC_frequency = DEFAULT_FREQ;
+						break;
+					case TX_HEADER_NEW:
+					case TX_LIRC_T:
+						if(curCommandLength==64)
+						{
+							if(check_irsend_commandir(&commands[curCommandStart + 4]))
+							{
+								break; // it's a command for us
+							}
+						}
+						add_to_tx_pipeline(&commands[curCommandStart + 4], 
+							curCommandLength - 4, pre_pipeline_emitter_mask, LIRC_frequency);
+						break;
+						
+					case CHANNEL_EN_MASK:
+						pre_pipeline_emitter_mask = (commands[curCommandStart+4] << 8) |
+							 commands[curCommandStart+3];
+						break;
+				}
+				curCommandStart += curCommandLength;
+			
+			}
+		}
+		// If we're receiving, make sure the commandir buffer doesn't overrun
+		if(commandir_read() < 20 )
+			tmp = 2;
+		while(tmp-- > 0)
+		{
+			tmp2 = commandir_read();
+// 		printf("commandir_read() (%d) returning %d.\n", tmp,tmp2);
+		}
+		if(tmp2 < 20 ){
+			// once in a while, but never while we're retreaving a signal
+			if(++periodic_checks>100)
+			{
+				hardware_scan();
+				periodic_checks = 0;
+			}
+			else
+			{
+ 				usleep(read_delay);
+ 			}
+		}
+	}
+
+}
+
+static int check_irsend_commandir(unsigned char *command)
+{
+	// decode the code like LIRC would do, and take an action
+	int commandir_code = 0;
+	
+	commandir_code = commandir_decode((char*)command);
+	
+	if(commandir_code > 0xef)
+	{
+		// It's a settransmitters command
+		int channel = commandir_code & 0x0f;
+		
+		// can only set 1 bit from here so far..,
+		pre_pipeline_emitter_mask = 0x0001 << channel;	
+		
+		return commandir_code;
+	}
+	
+	switch(commandir_code)
+	{
+		case 0x53:
+			read_delay /= 2;	// "faster" means less time
+			if(read_delay < MIN_WAIT_BETWEEN_READS_US)
+				read_delay = MIN_WAIT_BETWEEN_READS_US;
+			break;
+		case 0x54:
+			read_delay *= 2;	// "slower" means more time
+			if(read_delay > MAX_WAIT_BETWEEN_READS_US)
+				read_delay = MAX_WAIT_BETWEEN_READS_US;
+			break;
+	
+		case 0x09: 
+		case 0x0A:
+			logprintf(LOG_ERR, "Re-selecting RX not implemented yet");
+			break;
+			
+		case 0xe6:	//	disable-fast-decode
+			logprintf(LOG_ERR, "Fast decoding disabled");
+			insert_fast_zeros = 0;
+			break;
+			
+		case 0xe7:	//	enable-fast-decode
+		case 0xe9:	//	force-fast-decode-2
+			logprintf(LOG_ERR, "Fast decoding enabled");
+			insert_fast_zeros = 2;
+			break;
+		
+		case 0xe8:	//	force-fast-decode-1
+			logprintf(LOG_ERR, "Fast decoding enabled (1)");
+			insert_fast_zeros = 1;
+			break;
+			
+		default:
+			if(commandir_code > 0x60 && commandir_code < 0xf0)
+			{
+				int ledhigh = 0, ledlow = 0, ledprog = -1;
+				// LED Command
+				switch(commandir_code >> 4)
+				{
+					case 0x6: ledlow = 0x80; break;
+					case 0x7: ledlow = 0x40; break;
+					case 0x8: ledlow = 0x20; break;
+					case 0x9: ledlow = 0x10; break;
+					case 0xa: ledlow = 0x04; break;
+					case 0xb: ledhigh = 0x80; break;
+					case 0xc: ledlow = 0x01; break;
+					case 0xd: ledlow = 0x02; break;
+					case 0xe: ledlow = 0x08; break;
+				}
+				ledprog = (commandir_code & 0x0f) - 1;
+				
+				if( ((ledhigh + ledlow) > 0) && ledprog > -1)
+				{
+					//	Set light:
+					static unsigned char lightchange[7] = {7, 
+					PROC_SET, 0, 0, 0, 0, 3}; 
+					lightchange[2] = ledhigh;
+					lightchange[3] = ledlow;
+					lightchange[4] = ledprog;
+					int send_status = 0; 
+					
+					send_status=usb_bulk_write(
+						open_commandir_devices[tx_order[0]].cmdir_udev, 
+						2, // endpoint2
+						(char *)lightchange,
+						7, // bytes
+						USB_TIMEOUT_MS);
+				}
+				
+				return commandir_code; // done
+			}
+		
+	}
+
+	return commandir_code;
+}
+
+
+// return how many RX's were in the last receive; so we know whether to poll more frequently or not
+static int commandir_read() 
+{
+	
+	/***  Which CommandIRs do we have to read from?  Poll RX CommandIRs 
+		* regularly, but non-receiving CommandIRs should be more periodically
+		*/
+	
+	int i,j;
+	int read_received = 0;
+	int read_retval = 0;
+	int conv_retval = 0;
+	int max_read = 5;
+	static int zeroterminated = 0;
+
+	for(i=0; i<device_count; i++)
+	{
+	
+		switch(open_commandir_devices[tx_order[i]].hw_type)
+		{
+			case HW_COMMANDIR_2:
+		
+				read_retval = usb_bulk_read(
+					open_commandir_devices[ tx_order[i] ].cmdir_udev,
+					1,
+					(char *)commandir_data_buffer,
+					open_commandir_devices[ tx_order[i] ].endpoint_max[1],
+					5000);	
+					
+				if(read_retval==0)
+					break;
+				
+				if(read_retval < 1)
+				{
+					if(read_retval < 0)
+					{
+						if(read_retval == -19){
+							logprintf(LOG_ERR, "Read Error - CommandIR probably unplugged");
+						}
+						else
+						{
+							logprintf(LOG_ERR, 
+								"Didn't receive a full packet from a CommandIR II! - err %d ."
+								, read_retval);
+						}
+						hardware_disconnect(tx_order[i]);
+						hardware_scan();
+					}
+					// 0 bytes is the most frequency case; nothing to report
+
+					break;
+				} 
+				
+				if(commandir_data_buffer[0]==RX_HEADER_TXAVAIL)
+				{
+					// sending us the current tx_start, tx_end arrays, and where it's at
+					commandir_tx_start[tx_order[i]*4] = commandir_data_buffer[4];
+					commandir_tx_start[tx_order[i]*4+1] = commandir_data_buffer[3];
+					commandir_tx_start[tx_order[i]*4+2] = commandir_data_buffer[2];
+					commandir_tx_start[tx_order[i]*4+3] = commandir_data_buffer[1];
+					
+					commandir_tx_end[tx_order[i]*4] = commandir_data_buffer[8];
+					commandir_tx_end[tx_order[i]*4+1] = commandir_data_buffer[7];
+					commandir_tx_end[tx_order[i]*4+2] = commandir_data_buffer[6];
+					commandir_tx_end[tx_order[i]*4+3] = commandir_data_buffer[5];
+					
+					commandir_last_signal_id[ tx_order[i] ] = commandir_data_buffer[9];
+					
+					recalc_tx_available(tx_order[i]); 
+					pipeline_check();
+					if(top_signalq > 0)
+					{
+						read_received++;	
+					}
+					
+					// This ALSO implies there's NO MORE RX DATA.
+					lirc_t lirc_zero_buffer[2] = {0, 0};
+					
+					int tmp4 = 0;
+					if(zeroterminated>1001)
+					{
+						// Send LIRC a 0,0 packet to allow IMMEDIATE decoding
+						if(insert_fast_zeros > 0)
+						{
+							tmp4 = write(child_pipe_write, lirc_zero_buffer, sizeof(lirc_t)*insert_fast_zeros);
+						}
+						zeroterminated = 0;
+					}
+					else
+					{
+						if((zeroterminated < 1000) && (zeroterminated > 0))
+							zeroterminated += 1000;
+						if(zeroterminated > 1000)
+							zeroterminated++;
+					}
+					
+					break;
+				}
+						
+						
+				if(commandir_data_buffer[0]==RX_HEADER_EVENTS)
+				{
+					for(j=1; j<(read_retval); j++)
+					{
+						raise_event(commandir_data_buffer[j]+tx_order[i]*0x10);
+					}
+				}
+				else
+				{
+					if( (commandir_data_buffer[0]==RX_HEADER_DATA) && 
+						(commandir_rx_num==tx_order[i]) )
+					{
+						if(rx_hold==0)	// Only if we should be listening for remote cmds
+						{
+							zeroterminated = 1;
+							conv_retval = commandir2_convert_RX(
+								(unsigned short *)&commandir_data_buffer[2], 
+								commandir_data_buffer[1]);
+							read_received = conv_retval; // header
+						}
+					}
+				}
+				break;
+			
+			case HW_COMMANDIR_MINI:
+			
+				max_read = 5;
+				while(max_read--){
+					
+					read_retval = usb_bulk_read(
+						open_commandir_devices[ tx_order[i] ].cmdir_udev,
+						1,
+						(char *)commandir_data_buffer,
+						64,
+						USB_TIMEOUT_MS);
+							
+					if (!(read_retval == MAX_HW_MINI_PACKET)) 
+					{
+						if(read_retval == -19){
+							logprintf(LOG_ERR, "Read Error - CommandIR probably unplugged");
+						}
+						else
+						{
+							logprintf(LOG_ERR, 
+								"Didn't receive a full packet from a Mini! - err %d ."
+								, read_retval);
+						}
+						
+						hardware_disconnect(tx_order[i]);
+						hardware_scan();
+						break; 
+					}
+
+					
+					if ( (commandir_data_buffer[1] > 0)  && 
+						(commandir_rx_num==tx_order[i]) ) 
+					{
+						conv_retval = cmdir_convert_RX(commandir_data_buffer);
+						
+						read_received += commandir_data_buffer[1];					
+						
+						if(commandir_data_buffer[1] < 20)
+						{
+							// Lots of hardware buffer room left; don't tie up CPU
+							break;
+						}
+					}
+					else
+					{
+						break;
+					}
+				} // while; should only repeat if there's more RX data
+				
+				/* CommandIR Mini only has 1 buffer  */
+				commandir_tx_start[tx_order[i]*4] = 0;
+				commandir_tx_start[tx_order[i]*4+1] = 0;
+				commandir_tx_start[tx_order[i]*4+2] = 0;
+				commandir_tx_start[tx_order[i]*4+3] = 0;
+				
+				commandir_tx_end[tx_order[i]*4] = commandir_data_buffer[2];
+				commandir_tx_end[tx_order[i]*4+1] = commandir_data_buffer[2];
+				commandir_tx_end[tx_order[i]*4+2] = commandir_data_buffer[2];
+				commandir_tx_end[tx_order[i]*4+3] = commandir_data_buffer[2];
+				
+				/* .. and it can't pipeline... */
+				commandir_last_signal_id[i] = lastSendSignalID[i];
+				recalc_tx_available(tx_order[i]); 
+				pipeline_check();
+				break;
+			case HW_COMMANDIR_UNKNOWN:
+					break;
+		} // end switch
+	} // for each attached hardware device
+	return read_received;
+}
+
+static void setEmitterMask(int bitmask)
+{
+	channels_en[0] = bitmask & 0x0F;
+	channels_en[1] = (bitmask >> 4) & 0xfF;
+	channels_en[2] = (bitmask >> 8) & 0xfF;
+	channels_en[3] = (bitmask >> 12) & 0xfF;
+}
+
+
+static int commandir2_convert_RX(unsigned short *bufferrx, 
+	unsigned char numvalues)
+{
+	// convert hardware timestamp values to elapsed time values
+	
+	int i;
+	int curpos = 0;
+	int bytes_w = 0;
+	lirc_t lirc_data_buffer[256];	
+	
+	i=0;
+	int pca_count = 0;
+	int overflows = 0;
+	
+	while(curpos < numvalues )
+	{
+		pca_count = (bufferrx[curpos] & 0x3fff) << 2; 
+		pca_count = pca_count / 12;
+		
+		if(bufferrx[curpos] & COMMANDIR_2_OVERFLOW_MASK)
+		{
+			overflows = bufferrx[curpos+1];
+			lirc_data_buffer[i] =  pca_count + (overflows * 0xffff / 12);
+			
+			if(bufferrx[curpos] & COMMANDIR_2_PULSE_MASK)
+			{
+				lirc_data_buffer[i] |= PULSE_BIT;
+			}
+			curpos++;
+		
+		}
+		else
+		{
+			lirc_data_buffer[i] = pca_count;
+			if(bufferrx[curpos] & COMMANDIR_2_PULSE_MASK)
+			{
+				lirc_data_buffer[i] |= PULSE_BIT;
+			}
+		}
+		
+		curpos++;
+		i++;
+		if(i> 255)
+		{
+			break;
+		}
+	}
+		
+ 	bytes_w = write(child_pipe_write, lirc_data_buffer, sizeof(lirc_t)*i);
+	
+	if (bytes_w < 0)
+	{
+		logprintf(LOG_ERR, "Can't write to LIRC pipe! %d", child_pipe_write);
+		return 0;
+	}	
+	
+	return bytes_w;
+}
+
+
+
+
+// Originally from lirc_cmdir.c
+static int cmdir_convert_RX(unsigned char *orig_rxbuffer)
+{
+	unsigned int num_data_values = 0;
+	unsigned int num_data_bytes = 0;
+	unsigned int asint1 = 0, asint2 = 0, overflows = 0;
+	int i;
+	int bytes_w;	// Pipe write
+	lirc_t lirc_data_buffer[256];	
+	
+
+	num_data_bytes = orig_rxbuffer[1];
+	
+	/* check if num_bytes is multiple of 3; if not, error  */
+	if (num_data_bytes%3 > 0) return -1;
+	if (num_data_bytes > 60) return -3; 
+	if (num_data_bytes < 3) return -2;
+	
+	num_data_values = num_data_bytes/3;
+	
+	asint2 = orig_rxbuffer[3] + orig_rxbuffer[4] * 0xff;
+	if(last_mc_time==-1)
+	{
+		// The first time we run there's no previous time value
+		last_mc_time = asint2 - 110000;	
+		if(last_mc_time < 0) last_mc_time+=0xffff;
+	}
+	
+	asint1 = last_mc_time;
+	overflows = orig_rxbuffer[5];
+	
+	for(i=2; i<num_data_values+2; i++)
+	{
+		if(overflows < 0xff)
+		{
+			// space
+			lirc_data_buffer[i-2] = get_time_value(asint1,
+				 asint2, overflows) - 26;
+		} 
+		else 
+		{	// pulse
+			lirc_data_buffer[i-2] = get_time_value(asint1,
+				 asint2, 0) + 26;
+			lirc_data_buffer[i-2] |= PULSE_BIT;
+		}	
+		asint1 = asint2; 
+		asint2 = orig_rxbuffer[i*3] + orig_rxbuffer[i*3+1] * 0xff;
+		overflows = orig_rxbuffer[i*3+2];	
+	}
+	last_mc_time = asint1;
+	
+	
+ 	bytes_w = write(child_pipe_write, lirc_data_buffer, sizeof(lirc_t)*num_data_values);
+	
+	if (bytes_w < 0)
+	{
+		logprintf(LOG_ERR, "Can't write to LIRC pipe! %d", child_pipe_write);
+		goto done;
+	}	
+	
+done:
+	return bytes_w;
+
+}
+
+
+
+
+static unsigned int get_time_value(unsigned int firstint, 
+	unsigned int secondint, unsigned char overflow) 
+{	
+	/* get difference between two MCU timestamps, CommandIR Mini version  */
+	unsigned int t_answer = 0;
+	
+	if (secondint > firstint) 
+	{
+		t_answer = secondint - firstint + overflow*0xffff;
+	} 
+	else 
+	{
+		if (overflow > 0) 
+		{
+			t_answer = (65536 - firstint) + secondint + (overflow - 1)*0xffff - 250;
+		} 
+		else 
+		{
+			t_answer = (65536 - firstint) + secondint;
+		}
+	}
+
+	/* clamp to long signal  */
+	if (t_answer > 16000000) t_answer = PULSE_MASK;
+	return t_answer;
+}
+
+
+static void raise_event(unsigned int eventid)
+{
+	/* Raise an LIRC Event by
+	 * Generating lirc_t Pattern
+	 */
+	static lirc_t event_data[18] = {LIRCCODE_GAP, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+	int i, bytes_w;
+
+	// 	logprintf(LOG_ERR, "Raising event %d", eventid);
+	for(i=0; i<8; i++)
+	{
+		if( (eventid & 0x80) )
+		{
+			event_data[i*2+1] = signal_base[0][0];
+			event_data[i*2+2] = signal_base[0][1];
+		}
+		else
+		{
+			event_data[i*2+1] = signal_base[1][0];
+			event_data[i*2+2] = signal_base[1][1];
+		}
+		eventid = eventid << 1;
+	}
+	
+ 	event_data[16] = LIRCCODE_GAP*4;
+ 	
+ 	bytes_w = write(child_pipe_write, event_data, sizeof(lirc_t) * 17);
+	
+	if (bytes_w < 0)
+	{
+		logprintf(LOG_ERR, "Can't write to LIRC pipe! %d", child_pipe_write);
+	}	
+	
+}
+
+static int commandir_decode(char *command)
+{
+	// Decode the signal to a number, just like LIRC; 
+	// there's probably a built-in way to do this.
+	int i;
+	int code = 0;
+	
+	lirc_t *codes;	
+	codes = (lirc_t *)command;
+	
+	for(i=0; i<15; i+=2)
+	{
+		code = code << 1;
+		if(codes[i]==100)
+			code |= 1;
+	}
+	return code;
+}
+
diff --git a/abs/core-testing/lirc_085-utils/hw_commandir.h b/abs/core-testing/lirc_085-utils/hw_commandir.h
new file mode 100755
index 0000000..2280f6c
--- /dev/null
+++ b/abs/core-testing/lirc_085-utils/hw_commandir.h
@@ -0,0 +1,175 @@
+ 
+/****************************************************************************
+ ** hw_commandir.h **********************************************************
+ ****************************************************************************
+ * 
+ * Copyright (C) 1999 Christoph Bartelmus <lirc@bartelmus.de>
+ * -- Original hw_default.h
+ * Modified for CommandIR Transceivers, April-June 2008, Matthew Bodkin 
+ *
+ */
+
+#ifndef HW_COMMANDIR_H
+#define HW_COMMANDIR_H
+
+#define RX_BUFFER_SIZE 1024
+#define TX_BUFFER_SIZE 1024
+#define TX_QUEUE 1
+#define RX_QUEUE 0
+#define MAX_COMMANDIRS 4
+#define MAX_COMMAND 8192
+
+/* transmitter channel control */
+#define MAX_DEVICES		4
+#define MAX_CHANNELS    16
+#define DEVICE_CHANNELS	4
+#define MAX_MASK 		0xffff
+#define MAX_SIGNALQ		100
+
+/* CommandIR control codes */
+#define CHANNEL_EN_MASK	1
+#define FREQ_HEADER     2
+#define MCU_CTRL_SIZE   3
+#define TX_HEADER       7
+#define TX_HEADER_NEW	8
+/* New for CommandIR II  */
+
+#define READ_INPUTS		10
+#define PROC_SET		11
+#define INIT_FUNCTION	12
+#define RX_SELECT		13
+#define TX_COMMANDIR_II 14
+/* Internal to driver */
+#define TX_LIRC_T	    15
+#define FREQ_HEADER_LIRC 16
+#define RXDECODE_HEADER_LIRC 17
+#define INIT_HEADER_LIRC 18
+#define DEINIT_HEADER_LIRC 19
+#define GET_VERSION 	20
+
+#define COMMANDIR_2_PULSE_MASK 0x8000
+#define COMMANDIR_2_OVERFLOW_MASK 0x4000
+
+#define DEFAULT_PULSE_WIDTH 13
+
+#define USB_CMDIR_VENDOR_ID		0x10c4
+#define USB_CMDIR_PRODUCT_ID	0x0003
+#define USB_CMDIR_MINOR_BASE	192
+
+#define HW_COMMANDIR_MINI 	1
+#define HW_COMMANDIR_2		2
+#define HW_COMMANDIR_UNKNOWN 127
+
+#define MAX_HW_MINI_PACKET 64
+
+// CommandIR has lots of buffer room, we don't need to poll constantly
+#define USB_TIMEOUT_MS 5000
+#define USB_TIMEOUT_US 1000
+#define WAIT_BETWEEN_READS_US 10000
+#define MAX_WAIT_BETWEEN_READS_US 5000000
+#define MIN_WAIT_BETWEEN_READS_US 5000
+
+#define USB_MAX_BUSES	8
+#define USB_MAX_BUSDEV	127
+
+#define RX_HEADER_DATA 		0x01
+#define RX_HEADER_EVENTS 	0x02
+#define RX_HEADER_TXAVAIL 	0x03
+
+
+// We keep CommandIR's OPEN even on -deinit for speed and to monitor 
+// Other non-LIRC events (plugin, suspend, etc)
+#define USB_KEEP_WARM 1
+
+// CommandIR lircd.conf event driven code definitions
+#define LIRCCODE_GAP  125000
+#define JACK_PLUG_1		0x01
+#define JACK_PLUG_2		0x02
+#define JACK_PLUG_3		0x03
+#define JACK_PLUG_4		0x04
+#define JACK_PLUG_5		0x11
+#define JACK_PLUG_6		0x12
+#define JACK_PLUG_7		0x13
+#define JACK_PLUG_8		0x14
+#define JACK_PLUG_9		0x21
+#define JACK_PLUG_10	0x22
+#define JACK_PLUG_11	0x23
+#define JACK_PLUG_12	0x24
+#define JACK_PLUG_13	0x31
+#define JACK_PLUG_14	0x32
+#define JACK_PLUG_15	0x33
+#define JACK_PLUG_16	0x34
+
+#define JACK_UNPLUG_1	0x05
+#define JACK_UNPLUG_2	0x06
+#define JACK_UNPLUG_3	0x07
+#define JACK_UNPLUG_4	0x08
+#define JACK_UNPLUG_5	0x15
+#define JACK_UNPLUG_6	0x16
+#define JACK_UNPLUG_7	0x17
+#define JACK_UNPLUG_8	0x18
+#define JACK_UNPLUG_9	0x25
+#define JACK_UNPLUG_10	0x26
+#define JACK_UNPLUG_11	0x27
+#define JACK_UNPLUG_12	0x28
+#define JACK_UNPLUG_13	0x35
+#define JACK_UNPLUG_14	0x36
+#define JACK_UNPLUG_15	0x37
+#define JACK_UNPLUG_16	0x38
+
+#define SELECT_TX_INTERNAL	0x09
+#define SELECT_TX_ExTERNAL	0x0A
+
+#define SELECT_TX_ON_1		0x0D
+#define SELECT_TX_ON_2		0x1D
+#define SELECT_TX_ON_3		0x2D
+#define SELECT_TX_ON_4		0x3D
+
+#define JACK_PLUG_RX_1		0x0B
+#define JACK_UNPLUG_RX_1	0x0C
+#define JACK_PLUG_RX_2		0x1B
+#define JACK_UNPLUG_RX_2	0x1C
+#define JACK_PLUG_RX_3		0x2B
+#define JACK_UNPLUG_RX_3	0x2C
+#define JACK_PLUG_RX_4		0x3B
+#define JACK_UNPLUG_RX_4	0x3C
+
+#define COMMANDIR_PLUG_1	0x41
+#define COMMANDIR_PLUG_2	0x42
+#define COMMANDIR_PLUG_3	0x43
+#define COMMANDIR_PLUG_4	0x44
+
+#define COMMANDIR_UNPLUG_1	0x45
+#define COMMANDIR_UNPLUG_2	0x46
+#define COMMANDIR_UNPLUG_3	0x47
+#define COMMANDIR_UNPLUG_4	0x48
+
+#define COMMANDIR_REORDERED	0x50
+#define COMMANDIR_READY		0x51
+#define COMMANDIR_STOPPED	0x52
+#define COMMANDIR_POLL_FASTER	0x53
+#define COMMANDIR_POLL_SLOWER	0x54
+
+#define SETTRANSMITTERS_1	0xf0
+#define SETTRANSMITTERS_2	0xf1
+#define SETTRANSMITTERS_3	0xf2
+#define SETTRANSMITTERS_4	0xf3
+#define SETTRANSMITTERS_5	0xf4
+#define SETTRANSMITTERS_6	0xf5
+#define SETTRANSMITTERS_7	0xf6
+#define SETTRANSMITTERS_8	0xf7
+#define SETTRANSMITTERS_9	0xf8
+#define SETTRANSMITTERS_10	0xf9
+#define SETTRANSMITTERS_11	0xfa
+#define SETTRANSMITTERS_12	0xfb
+#define SETTRANSMITTERS_13	0xfc
+#define SETTRANSMITTERS_14	0xfd
+#define SETTRANSMITTERS_15	0xfe
+#define SETTRANSMITTERS_16	0xff
+
+// What's in a returning data packet
+#define COMMANDIR_RX_EVENTS 		0x02
+#define COMMANDIR_RX_DATA			0x01
+
+
+#endif
diff --git a/abs/core-testing/lirc_085-utils/kernel-2.6.26.patch b/abs/core-testing/lirc_085-utils/kernel-2.6.26.patch
new file mode 100644
index 0000000..74bb986
--- /dev/null
+++ b/abs/core-testing/lirc_085-utils/kernel-2.6.26.patch
@@ -0,0 +1,122 @@
+--- a/drivers/kcompat.h	2008-01-13 11:26:28.000000000 +0100
++++ b/drivers/kcompat.h	2008-05-14 18:37:49.000000000 +0200
+@@ -1,4 +1,4 @@
+-/*      $Id: kcompat.h,v 5.34 2008/01/13 10:26:28 lirc Exp $      */
++/*      $Id: kcompat.h,v 5.36 2008/05/14 16:37:49 lirc Exp $      */
+ 
+ #ifndef _KCOMPAT_H
+ #define _KCOMPAT_H
+@@ -36,10 +36,10 @@
+ 	class_simple_destroy(cls);
+ }
+ 
+-#define lirc_class_device_create(cs, parent, dev, device, fmt, args...) \
+-	class_simple_device_add(cs, dev, device, fmt, ## args)
++#define lirc_device_create(cs, parent, dev, fmt, args...) \
++	class_simple_device_add(cs, dev, parent, fmt, ## args)
+ 
+-static inline void class_device_destroy(lirc_class_t *cls, dev_t devt)
++static inline void lirc_device_destroy(lirc_class_t *cls, dev_t devt)
+ {
+ 	class_simple_device_remove(devt);
+ }
+@@ -48,20 +48,40 @@
+ 
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15)
+ 
+-#define lirc_class_device_create(cs, parent, dev, device, fmt, args...) \
+-	class_device_create(cs, dev, device, fmt, ## args)
++#define lirc_device_create(cs, parent, dev, fmt, args...) \
++	class_device_create(cs, dev, parent, fmt, ## args)
+ 
+ #else /* >= 2.6.15 */
+ 
+-#define lirc_class_device_create class_device_create
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
++
++#define lirc_device_create(cs, parent, dev, fmt, args...) \
++	class_device_create(cs, NULL, dev, parent, fmt, ## args)
++
++#else /* >= 2.6.26 */
++
++#define lirc_device_create device_create
++
++#endif /* >= 2.6.26 */
++
+ #define LIRC_DEVFS_PREFIX
+ 
+-#endif
++#endif /* >= 2.6.15 */
+ 
+ typedef struct class lirc_class_t;
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
++
++#define lirc_device_destroy class_device_destroy
++
++#else
++
++#define lirc_device_destroy device_destroy
++
+ #endif
+ 
++#endif /* >= 2.6.13 */
++
+ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
+ #define LIRC_HAVE_DEVFS
+ #define LIRC_HAVE_DEVFS_24
+@@ -133,8 +153,8 @@
+ #ifndef LIRC_HAVE_SYSFS
+ #define class_destroy(x) do { } while (0)
+ #define class_create(x, y) NULL
+-#define class_device_destroy(x, y) do { } while (0)
+-#define lirc_class_device_create(x, y, z, xx, yy, zz) 0
++#define lirc_class_destroy(x, y) do { } while (0)
++#define lirc_class_create(x, y, z, xx, yy, zz) 0
+ #define IS_ERR(x) 0
+ typedef struct class_simple
+ {
+--- a/drivers/lirc_dev/lirc_dev.c	2008-01-13 11:45:02.000000000 +0100
++++ b/drivers/lirc_dev/lirc_dev.c	2008-05-14 18:37:49.000000000 +0200
+@@ -17,7 +17,7 @@
+  *  along with this program; if not, write to the Free Software
+  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  *
+- * $Id: lirc_dev.c,v 1.56 2008/01/13 10:45:02 lirc Exp $
++ * $Id: lirc_dev.c,v 1.58 2008/05/14 16:37:49 lirc Exp $
+  *
+  */
+ 
+@@ -145,7 +145,8 @@
+ #ifdef LIRC_HAVE_DEVFS_26
+ 	devfs_remove(DEV_LIRC "/%u", ir->p.minor);
+ #endif
+-	class_device_destroy(lirc_class, MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
++	lirc_device_destroy(lirc_class,
++			    MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
+ 
+ 	if (ir->buf != ir->p.rbuf) {
+ 		lirc_buffer_free(ir->buf);
+@@ -400,9 +401,9 @@
+ 			S_IFCHR|S_IRUSR|S_IWUSR,
+ 			DEV_LIRC "/%u", ir->p.minor);
+ #endif
+-	(void) lirc_class_device_create(lirc_class, NULL,
+-					MKDEV(IRCTL_DEV_MAJOR, ir->p.minor),
+-					ir->p.dev, "lirc%u", ir->p.minor);
++	(void) lirc_device_create(lirc_class, ir->p.dev,
++				  MKDEV(IRCTL_DEV_MAJOR, ir->p.minor),
++				  "lirc%u", ir->p.minor);
+ 
+ 	if (p->sample_rate || p->get_queue) {
+ 		/* try to fire up polling thread */
+@@ -441,7 +442,8 @@
+ 	return minor;
+ 
+ out_sysfs:
+-	class_device_destroy(lirc_class, MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
++	lirc_device_destroy(lirc_class,
++			    MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
+ #ifdef LIRC_HAVE_DEVFS_24
+ 	devfs_unregister(ir->devfs_handle);
+ #endif
diff --git a/abs/core-testing/lirc_085-utils/lirc.logrotate b/abs/core-testing/lirc_085-utils/lirc.logrotate
new file mode 100644
index 0000000..df97c60
--- /dev/null
+++ b/abs/core-testing/lirc_085-utils/lirc.logrotate
@@ -0,0 +1,8 @@
+/var/log/lircd {
+   missingok
+   notifempty
+   delaycompress
+   postrotate
+      /usr/bin/killall -HUP -q lircd
+   endscript
+}
diff --git a/abs/core-testing/lirc_085-utils/lirc_atiusb.patch b/abs/core-testing/lirc_085-utils/lirc_atiusb.patch
new file mode 100644
index 0000000..2f0c61e
--- /dev/null
+++ b/abs/core-testing/lirc_085-utils/lirc_atiusb.patch
@@ -0,0 +1,27 @@
+diff -ruaN lirc-0.8.4.orig/drivers/lirc_atiusb/lirc_atiusb.c lirc-0.8.4/drivers/lirc_atiusb/lirc_atiusb.c
+--- lirc-0.8.4.orig/drivers/lirc_atiusb/lirc_atiusb.c	2008-05-19 08:10:35.000000000 +0000
++++ lirc-0.8.4/drivers/lirc_atiusb/lirc_atiusb.c	2009-02-14 22:35:44.000000000 +0000
+@@ -192,8 +192,9 @@
+ /* init strings */
+ #define USB_OUTLEN		7
+ 
+-static char init1[] = {0x01, 0x00, 0x20, 0x14};
+-static char init2[] = {0x01, 0x00, 0x20, 0x14, 0x20, 0x20, 0x20};
++static char init1[] = {0x80, 0x05, 0x1b, 0x15, 0x14, 0x20, 0x24, 0x15};
++static char init2[] = {0x83, 0x03};
++static char init3[] = {0x84, 0xd7, 0x020};
+ 
+ struct in_endpt {
+ 	/* inner link in list of endpoints for the remote specified by ir */
+@@ -1183,8 +1184,9 @@
+ 			oep->buf, USB_OUTLEN, usb_remote_send,
+ 			oep, oep->ep->bInterval);
+ 
+-		send_packet(oep, 0x8004, init1);
+-		send_packet(oep, 0x8007, init2);
++               send_packet(oep, 0x8007, init1);
++               send_packet(oep, 0x8002, init2);
++               send_packet(oep, 0x8003, init3);
+ 	}
+ }
+ 
diff --git a/abs/core-testing/lirc_085-utils/lircd b/abs/core-testing/lirc_085-utils/lircd
new file mode 100755
index 0000000..f4686d7
--- /dev/null
+++ b/abs/core-testing/lirc_085-utils/lircd
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/lircd
+
+PID=$(pidof -o %PPID /usr/sbin/lircd)
+case "$1" in
+  start)
+    stat_busy "Starting LIRC Daemon"
+    [ -n "$LIRC_DRIVER" ] && LIRC_EXTRAOPTS="-H $LIRC_DRIVER $LIRC_EXTRAOPTS"
+    [ -z "$PID" ] && 
+      if [ -n "$LIRC_DEVICE" ] ; then
+        /usr/sbin/lircd -d "$LIRC_DEVICE" $LIRC_EXTRAOPTS $LIRC_CONFIGFILE
+      else
+        /usr/sbin/lircd $LIRC_EXTRAOPTS $LIRC_CONFIGFILE
+      fi
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      add_daemon lircd
+      stat_done
+    fi
+    ;;
+  stop)
+    stat_busy "Stopping LIRC Daemon"
+    [ ! -z "$PID" ] && kill $PID &> /dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      rm_daemon lircd
+      stat_done
+    fi
+    ;;
+  restart)
+    $0 stop
+    sleep 1
+    $0 start
+    ;;
+  *)
+    echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/core-testing/lirc_085-utils/lircd.conf.d b/abs/core-testing/lirc_085-utils/lircd.conf.d
new file mode 100644
index 0000000..760dab0
--- /dev/null
+++ b/abs/core-testing/lirc_085-utils/lircd.conf.d
@@ -0,0 +1,8 @@
+#
+# Parameters for lirc daemon
+#
+
+LIRC_DEVICE="/dev/lirc0"
+LIRC_DRIVER=""
+LIRC_EXTRAOPTS=""
+LIRC_CONFIGFILE=""
diff --git a/abs/core-testing/lirc_085-utils/lircmd b/abs/core-testing/lirc_085-utils/lircmd
new file mode 100755
index 0000000..220c47c
--- /dev/null
+++ b/abs/core-testing/lirc_085-utils/lircmd
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/lircmd`
+case "$1" in
+  start)
+    stat_busy "Starting lircmd Daemon"
+    [ -z "$PID" ] && /usr/sbin/lircmd
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      add_daemon lircmd
+      stat_done
+    fi
+    ;;
+  stop)
+    stat_busy "Stopping lircmd Daemon"
+    [ ! -z "$PID" ]  && kill $PID &> /dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      rm_daemon lircmd
+      stat_done
+    fi
+    ;;
+  restart)
+    $0 stop
+    sleep 1
+    $0 start
+    ;;
+  *)
+    echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/core-testing/lirc_085/PKGBUILD b/abs/core-testing/lirc_085/PKGBUILD
new file mode 100644
index 0000000..12dc3b4
--- /dev/null
+++ b/abs/core-testing/lirc_085/PKGBUILD
@@ -0,0 +1,86 @@
+# $Id: PKGBUILD 14978 2008-10-11 21:04:37Z tpowa $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgname=lirc
+pkgver=0.8.5CVS
+pkgrel=17
+_kernver=2.6.28-LinHES
+pkgdesc="Linux Infrared Remote Control kernel modules for stock arch kernel"
+arch=(i686 x86_64)
+url="http://www.lirc.org/"
+license=('GPL')
+depends=('lirc-utils=0.8.5CVS' 'kernel26>=2.6.27' 'kernel26<2.6.29' 'iguanaIR')
+makedepends=('python')
+replaces=('lirc+pctv')
+options=('!makeflags')
+install=$pkgname.install
+source=(http://www.blushingpenguin.com/mark/lmilk/lirc-0.8.5-CVS-pvr150.tar.bz2 \
+	kernel-2.6.26.patch
+	kernel-2.6.27.patch
+	lirc_atiusb.patch
+	http://superb-east.dl.sourceforge.net/sourceforge/mod-mce/lirc_mod_mce-0.1.5.tar.bz2
+	lirc_mod_mce.patch
+	hw_commandir.c
+	hw_commandir.h
+	dvicoIR.rules
+        lirc.fdi)
+
+build() {
+	# configure
+	cd $startdir/src/lirc-0.8.5-CVS-pvr150 || return 1
+	cp $startdir/src/hw_commandir.* $startdir/src/lirc-0.8.5-CVS-pvr150/daemons
+#	patch -Np1 -i ../kernel-2.6.26.patch || return 1
+#	patch -Np1 -i ../kernel-2.6.27.patch || return 1
+	patch -Np1 -i ../lirc_atiusb.patch || return 1
+
+	./configure --enable-sandboxed --prefix=/usr \
+		--with-driver=all --with-kerneldir=/usr/src/linux-${_kernver}/ \
+		--with-moduledir=/lib/modules/${_kernver}/kernel/drivers/misc \
+	        --with-transmitter \
+		|| return 1
+
+	# disable parallel and bt829
+        # because of incompatibility with smp systems
+        sed -i -e "s:lirc_parallel::" -e "s:lirc_bt829::" \
+		Makefile drivers/Makefile drivers/*/Makefile tools/Makefile \
+                || return 1
+	# disable lirc_gpio due to brokeness of kernel 2.6.23
+	sed -i -e "s:lirc_gpio::" \
+		Makefile drivers/Makefile drivers/*/Makefile tools/Makefile \
+                || return 1
+
+	# build
+	cd drivers || return 1
+	make || return 1
+	make DESTDIR=$startdir/pkg install || return 1
+
+	# set the kernel we've built for inside the install script
+	sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
+		$startdir/lirc.install || return 1
+	cd $startdir/src/lirc_mod_mce
+	cp ../lirc-0.8.5-CVS-pvr150/drivers/lirc_dev/lirc_dev.h .
+	patch -p1 < ../lirc_mod_mce.patch
+	make KDIR=/usr/src/linux-2.6.28-LinHES/
+	cp lirc_mod_mce.ko $startdir/pkg/lib/modules/2.6.28-LinHES/kernel/drivers/misc/
+	mv $startdir/pkg/lib/modules/2.6.28-LinHES/kernel/drivers/misc/lirc_mceusb2.ko $startdir/pkg/lib/modules/2.6.28-LinHES/kernel/drivers/misc/lirc_mceusb2.ko.not
+	#remove old commandir
+	rm $startdir/pkg/lib/modules/$_kernver/kernel/drivers/misc/lirc_cmdir.ko
+	rm $startdir/pkg/lib/modules/$_kernver/kernel/drivers/misc/commandir.ko
+
+	# Add a udev rule for the DVICO remote so that if there is more than 
+	# one hiddev device, the system cant get confused.
+	install -D -m644 $srcdir/dvicoIR.rules $pkgdir/etc/udev/rules.d/dvicoIR.rules
+
+	# Add the fdi file to prevent the Dvico dual 4 remotes from screwing up keyboard interaction.
+	install -D -m644 $srcdir/lirc.fdi $pkgdir/usr/share/hal/fdi/preprobe/20thirdparty/lirc.fdi
+}
+md5sums=('b96dae91b566143b3af433fa2714ec9a'
+         '1753acd774f50b638e6173d364de53fd'
+         '6f151eb4e81fc7776a06c9063e6ad9a5'
+         '7eccd7826ab99e5cf1b9154171c8b927'
+         '21ce358809105f005e888e3b138c59e6'
+         'b5d52566a9dae8d76e24e8753f33abef'
+         'f059f4030afc682c9539a03bf837c1cf'
+         '4e698654cc44fc6c4163814acda5a7ee'
+         '9a3a6dc03647ee6674a166dfb884ddd6'
+         '203d9cd014c4276be4c84cecd103919d')
diff --git a/abs/core-testing/lirc_085/dvicoIR.rules b/abs/core-testing/lirc_085/dvicoIR.rules
new file mode 100644
index 0000000..ada5466
--- /dev/null
+++ b/abs/core-testing/lirc_085/dvicoIR.rules
@@ -0,0 +1,15 @@
+# This rule is for the Dvico Dual Digital 4 Rev 2. It has 2 IR modules 
+# identified, only the first of which is connected to the receiver.
+# The KERNELS=="*-1" part of this rule makes sure that the first 
+# device is the one that gets the symlink.
+KERNEL=="event*", \
+    KERNELS=="*-1", \
+    ATTRS{manufacturer}=="Dvico", \
+    ATTRS{idVendor}=="0fe9", \
+    ATTRS{idProduct}=="db98", \
+    SYMLINK="input/irremote"
+
+# This rule is for the older style USB DVICO remote dongles.
+SUBSYSTEMS=="usb", KERNEL=="hiddev*", \
+    ATTRS{product}=="DVICO USB HID Remocon V1.00", \
+    SYMLINK+="usb/dvicoIR"
diff --git a/abs/core-testing/lirc_085/hw_commandir.c b/abs/core-testing/lirc_085/hw_commandir.c
new file mode 100755
index 0000000..40ac0de
--- /dev/null
+++ b/abs/core-testing/lirc_085/hw_commandir.c
@@ -0,0 +1,1926 @@
+/* CommandIR transceivers driver 0.96
+ * Supporting CommandIR II and CommandIR Mini (and multiple of both)
+ * April-June 2008, Matthew Bodkin
+ * December 2008, bug fixes, Matthew Bodkin
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <limits.h>
+#include <signal.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <sys/wait.h>
+#include <sys/un.h>
+#include <sys/utsname.h>
+
+#include "hardware.h"
+#include "ir_remote.h"
+#include "lircd.h"
+#include "receive.h"
+#include "transmit.h"
+#include "hw_commandir.h"
+#include <usb.h>
+
+#define RAPID_DECODE 1
+
+extern struct ir_remote *repeat_remote;
+extern char *progname;
+
+
+/**********************************************************************
+ *
+ * internal function prototypes
+ *
+ **********************************************************************/
+static int commandir_init();
+static int commandir_deinit(void);
+static char *commandir_rec(struct ir_remote *remotes);
+static void commandir_read_loop();
+static int cmdir_convert_RX(unsigned char *orig_rxbuffer);
+static unsigned int get_time_value(unsigned int firstint, 
+		unsigned int secondint, unsigned char overflow);
+static lirc_t commandir_readdata(lirc_t timeout);
+static int commandir_send(struct ir_remote *remote,struct ir_ncode *code);
+static int commandir_ioctl(unsigned int cmd, void *arg);
+//static void setEmitterMask(unsigned char highbyte, unsigned char lowbyte);
+static void setEmitterMask(int bitmask);
+static void commandir_transmit(char *buffer, int bytes, int bitmask, 
+		unsigned int);
+static void commandir_child_init();
+static void shutdown_usb();
+static void hardware_scan();
+static void hardware_disconnect(int);
+static void hardware_setorder();
+static void raise_event(unsigned int);
+static int commandir_read();
+static int check_irsend_commandir(unsigned char *command);
+static int commandir_decode(char *command);
+static int commandir_receive_decode(struct ir_remote *remote,
+                   ir_code *prep,ir_code *codep,ir_code *postp,
+                   int *repeat_flagp,
+                   lirc_t *min_remaining_gapp, lirc_t *max_remaining_gapp);
+static void pipeline_check();
+static int inline get_bit(int bitnum);
+static void add_to_tx_pipeline(unsigned char *buffer, int bytes, 
+		int channel_mask, unsigned int);
+static void recalc_tx_available(int);
+static void set_hash_mask(int channel_mask);
+static int commandir2_convert_RX(unsigned short *bufferrx, 
+		unsigned char numvalues);
+static void cleanup_commandir_dev(int spotnum);
+
+/**********************************************************************
+ *
+ * CommandIR Vars
+ *
+ **********************************************************************/
+static int current_transmitter_mask = 0xff;
+static char unsigned commandir_data_buffer[512];
+static int last_mc_time = -1;	
+static int commandir_rx_num = 0;
+
+
+static char channels_en[MAX_DEVICES]; 
+static char open_bus_hash[USB_MAX_BUSES][USB_MAX_BUSDEV];
+static int tx_order[MAX_DEVICES];
+static char device_count = 0;
+static int mini_freq[MAX_DEVICES];
+static int child_pipe_write = 0;
+static char haveInited = 0;
+// Fake 'commandir' remote signal values
+static unsigned int signal_base[2][2] = { {100|PULSE_BIT, 200},
+		 {1000|PULSE_BIT, 200} };
+
+// Pipes to and from the child/parent
+static pid_t child_pid = -1;
+static int pipe_fd[2] = { -1, -1 };
+static int pipe_tochild[2] = { -1, -1 };
+static int tochild_read = -1, tochild_write = -1;
+
+struct commandir_device
+{
+	usb_dev_handle *cmdir_udev;
+	int bus;
+	int busdev;
+	int interface;
+	int location;
+	int hw_type;
+	int hw_revision;
+	int hw_subversion;
+	unsigned char devnum;
+	int endpoint_max[3];
+} open_commandir_devices[4];
+
+struct hardware hw_commandir =
+{
+	NULL,					 	/* default device */
+	-1,                 		/* fd */
+	LIRC_CAN_SET_SEND_CARRIER|
+	LIRC_CAN_SEND_PULSE|
+	LIRC_CAN_SET_TRANSMITTER_MASK|
+	LIRC_CAN_REC_MODE2, 		
+	LIRC_MODE_PULSE,			/* send_mode */ 
+	LIRC_MODE_MODE2,            /* rec_mode */
+	sizeof(lirc_t),        		/* code_length in BITS */
+	commandir_init,       		/* init_func */
+	NULL,     			  		/* config_func */
+	commandir_deinit,     		/* deinit_func */
+	commandir_send,				/* send_func */
+ 	commandir_rec,        		/* rec_func  */
+	commandir_receive_decode,   /* decode_func */
+	commandir_ioctl,            /* ioctl_func */
+	commandir_readdata,		    /* readdata */
+	"commandir"
+};
+
+/***   LIRC Interface Functions - Non-blocking parent thread
+*/
+
+static int commandir_receive_decode(struct ir_remote *remote,
+                   ir_code *prep,ir_code *codep,ir_code *postp,
+                   int *repeat_flagp,
+                   lirc_t *min_remaining_gapp, lirc_t *max_remaining_gapp) {
+
+	int i;
+	i = receive_decode(remote,
+                   prep,codep,postp,
+                   repeat_flagp,
+                   min_remaining_gapp, max_remaining_gapp);
+
+	if(i > 0){
+		static char rx_char[3] = {3, 0, RXDECODE_HEADER_LIRC};
+		write(tochild_write, rx_char, 3);	
+	}
+	
+	return i;
+}
+
+
+static int commandir_init()
+{
+	long fd_flags;
+	if(haveInited){
+		static char init_char[3] = {3, 0, INIT_HEADER_LIRC};
+		write(tochild_write, init_char, 3);	
+		return 1;
+	}
+	
+	init_rec_buffer();	// LIRC's rec
+	init_send_buffer();	// LIRC's send
+	
+	/* A separate process will be forked to read data from the USB
+	 * receiver and write it to a pipe. hw.fd is set to the readable
+	 * end of this pipe. */
+	if (pipe(pipe_fd) != 0)
+	{
+		logprintf(LOG_ERR, "couldn't open pipe 1");
+		return 0;
+	}
+	
+	hw.fd = pipe_fd[0];	// the READ end of the Pipe
+	
+	if (pipe(pipe_tochild) != 0)
+	{
+		logprintf(LOG_ERR, "couldn't open pipe 1");
+		return 0;
+	}
+	
+	tochild_read = pipe_tochild[0];	// the READ end of the Pipe 
+	tochild_write = pipe_tochild[1];	// the WRITE end of the Pipe 
+	
+	fd_flags = fcntl(pipe_tochild[0], F_GETFL);
+  	if(fcntl(pipe_tochild[0], F_SETFL, fd_flags | O_NONBLOCK) == -1)
+	{
+		logprintf(LOG_ERR, "can't set pipe to non-blocking");
+		return 0;
+	}	
+	
+	child_pid= fork();
+	if (child_pid== -1)
+	{
+		logprintf(LOG_ERR, "couldn't fork child process");
+		return 0;
+	}
+	else if (child_pid== 0)
+	{
+		child_pipe_write = pipe_fd[1];	
+		commandir_child_init();
+		commandir_read_loop();
+		return 0;	
+	}
+	haveInited = 1;
+	
+	logprintf(LOG_ERR, "CommandIR driver initialized");
+	return 1;	
+}
+
+
+static int commandir_deinit(void)
+{
+	/* Trying something a bit new with this driver. Keeping the driver
+	 * connected so in the future we can still monitor in the client */
+	if(USB_KEEP_WARM && (!strncmp(progname, "lircd", 5)))
+	{
+		static char deinit_char[3] = {3, 0, DEINIT_HEADER_LIRC};
+		write(tochild_write, deinit_char, 3);
+		logprintf(LOG_ERR, "LIRC_deinit but keeping warm");
+	}
+	else
+	{
+		if (tochild_read >= 0)
+		{
+			if (close(tochild_read) < 0) 
+			{
+				logprintf(LOG_ERR, "Error closing pipe2");;
+			}
+			tochild_read = tochild_write = -1;
+		}
+		
+		if(haveInited){
+			// shutdown all USB
+			if(child_pid > 0)
+			{
+				logprintf(LOG_ERR, "Closing child process");
+				kill(child_pid, SIGTERM);
+				waitpid(child_pid, NULL, 0);
+				child_pid = -1;
+				haveInited = 0;
+			}
+		}
+		
+		if (hw.fd >= 0)
+		{
+			if (close(hw.fd) < 0) logprintf(LOG_ERR, "Error closing pipe");
+			hw.fd = -1;
+		}
+		
+		logprintf(LOG_ERR, "commandir_deinit()");
+	}
+	return(1);
+}
+
+static int commandir_send(struct ir_remote *remote,struct ir_ncode *code)
+{
+	int length;
+	lirc_t *signals;
+
+	if(!init_send(remote,code)) {
+		return 0;
+	}
+
+	length = send_buffer.wptr;
+	signals = send_buffer.data;
+
+	if (length <= 0 || signals == NULL) {
+		return 0;
+	}
+	
+	int cmdir_cnt =0;
+	char cmdir_char[70];
+	
+	// Set the frequency of the signal along with the signal + transmitters
+	cmdir_char[0] = 7;
+	cmdir_char[1] = 0;
+
+	cmdir_char[2] = FREQ_HEADER_LIRC;
+	cmdir_char[3] = (remote->freq >> 24) & (0xff);
+	cmdir_char[4] = (remote->freq >> 16) & (0xff);
+	cmdir_char[5] = (remote->freq >> 8) & (0xff);
+	cmdir_char[6] = (remote->freq & 0xff);
+	
+	write(tochild_write, cmdir_char, cmdir_char[0]);
+
+	cmdir_cnt = 3;
+	
+	unsigned char * send_signals = malloc(sizeof(signals) * length + 4);
+	
+	send_signals[0] = (sizeof(lirc_t) * length + 4) & 0xff;
+	send_signals[1] = ((sizeof(lirc_t) * length + 4) >> 8) & 0xff;
+	
+	send_signals[2] = TX_LIRC_T;
+	send_signals[3] = (char)current_transmitter_mask;	
+	
+	memcpy(&send_signals[4], signals, sizeof(lirc_t) * length);
+	
+	if(write(tochild_write, send_signals, 
+		send_signals[0] + send_signals[1] * 256) < 0)
+	{
+		logprintf(LOG_ERR, "Error writing to child_write");
+	}
+	
+	free(send_signals);
+	return(length);
+}
+
+static char *commandir_rec(struct ir_remote *remotes)
+{
+	char * returnit;
+	if (!clear_rec_buffer()) return NULL;
+	returnit = decode_all(remotes);
+	return returnit;
+}
+
+static int commandir_ioctl(unsigned int cmd, void *arg)
+{
+	unsigned int ivalue;
+	char cmdir_char[5];
+	
+	switch(cmd)
+	{
+	case LIRC_SET_TRANSMITTER_MASK:
+		
+		ivalue=*(unsigned int*)arg;
+		
+		if(ivalue >= MAX_MASK) return (MAX_CHANNELS);
+		
+		/* Support the old way of setting the frequency of the signal along 
+		 * with the signal + transmitters */
+		cmdir_char[0] = 5;
+		cmdir_char[1] = 0;
+		cmdir_char[2] = CHANNEL_EN_MASK;
+		cmdir_char[3] = (unsigned char)(ivalue & 0x00FF);	// Low bits
+		cmdir_char[4] = (unsigned char)(ivalue >> 8);		// High bits
+		
+		write(tochild_write, cmdir_char, cmdir_char[0]);
+
+		return (0);
+		
+	default:
+		logprintf(LOG_ERR, "Unknown ioctl - %d", cmd);
+		return(-1);
+	}
+	
+	return 1;
+}
+
+static lirc_t commandir_readdata(lirc_t timeout)
+{
+	lirc_t code = 0;
+	struct timeval tv = {0, timeout};
+	fd_set fds;
+
+	FD_ZERO(&fds);
+	FD_SET(hw.fd, &fds);
+
+	/* attempt a read with a timeout using select */
+	if (select(hw.fd + 1, &fds, NULL, &fds, &tv) > 0)
+		/* if we failed to get data return 0 */
+		if (read(hw.fd, &code, sizeof(lirc_t)) <= 0)
+                        commandir_deinit();
+	return code;
+}
+
+/***  End of parent fork / LIRC accessible functions  */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/***  CommandIR Client Process Functions (Handle all USB operations)
+ */
+ 
+int channels_space_available[MAX_CHANNELS]; 
+int channels_space_updated = 0; // last updated time
+
+char * signalq[MAX_SIGNALQ];	// how many signals can be queued
+int signalq_len[MAX_SIGNALQ];
+int signalq_bitmask[MAX_SIGNALQ];
+unsigned int signalq_frequency[MAX_SIGNALQ];
+
+int top_signalq = -1;
+int next_signalq_per_channel[MAX_CHANNELS];	
+
+unsigned char commandir_tx_start[MAX_CHANNELS*4];
+unsigned char commandir_tx_end[MAX_CHANNELS*4];
+unsigned char commandir_tx_available[MAX_CHANNELS];
+unsigned char lastSendSignalID[MAX_CHANNELS];
+unsigned char commandir_last_signal_id[MAX_CHANNELS];
+
+
+// Global variables to convert channel masks to consistant easier formats
+unsigned char hash_mask[MAX_CHANNELS];
+unsigned char selected_channels[MAX_CHANNELS];
+unsigned char total_selected_channels = 0;
+int shutdown_pending = 0;
+int read_delay = WAIT_BETWEEN_READS_US;
+int insert_fast_zeros = 0;
+
+int rx_hold = 0;
+
+// This is the only one for pre-pipelinging
+int pre_pipeline_emitter_mask = 0x000f; // default tx on only first CommandIR
+
+
+static void pipeline_check()
+{
+	/* Transmit from the pipeline if it's time and there's space
+	 * what's available should now be updated in the main_loop
+	 */
+	
+	int i,j,k;
+	
+	i=0;
+	if(top_signalq < 0) return;
+	
+	while(i <= top_signalq)
+	{
+
+		// Are ALL the channels this signal should TX on currently available?
+		int oktosend = 1;
+		set_hash_mask( signalq_bitmask[ i ] );
+		for(j = 0; j<total_selected_channels; j++)
+		{
+			if(commandir_tx_available[ selected_channels[j] ] < 
+				(36 + (signalq_len[ i ])/sizeof(lirc_t)))	
+			{
+				oktosend = 0;
+				break;
+			}
+		}
+		
+		if(oktosend)
+		{
+			// great, TX this on all the channels.
+			
+			commandir_transmit(signalq[ i ], signalq_len[ i ], signalq_bitmask[ i ], signalq_frequency[ i ]);
+			
+			for(j = 0; j<total_selected_channels; j++)
+			{
+				/*  commandir_tx_available[ selected_channels[j] ] -= 
+					(64 + (signalq_len[ i ])/sizeof(lirc_t));  */
+				commandir_tx_available[ selected_channels[j] ] = 0; 
+			}
+			
+			/* Free up the memory, and see if there are new next_signalq's 
+			 * (any more for this channel to TX)
+			 */
+			free(signalq[i]);
+			
+			for(k=i; k<top_signalq; k++)
+			{
+				signalq[k] = signalq[k+1];
+				signalq_len[k] = signalq_len[k+1];
+				signalq_bitmask[k] = signalq_bitmask[k+1];
+				signalq_frequency[k] = signalq_frequency[k+1];
+			}
+			top_signalq--;
+		}
+		else
+		{
+			i++;
+		}
+	}
+}
+
+static int get_bit(int bitnum)
+{
+	int r = 1;
+	return r << bitnum; // bit 0 is 1, bit 1 is 10, bit 2 is 100...
+}
+
+static void add_to_tx_pipeline(unsigned char *buffer, int bytes, 
+	int channel_mask, unsigned int frequency)
+{
+	/* *buffer points to a buffer that will be OVERWRITTEN; malloc our copy.
+	 * buffer is a LIRC_T packet for CommandIR 
+	 */
+	top_signalq++;
+	if(top_signalq > MAX_SIGNALQ)
+	{
+		logprintf(LOG_ERR, "Too many signals in queue: > %d", MAX_SIGNALQ);
+		return;
+	}
+	
+	signalq[top_signalq] = malloc(bytes);
+	
+	signalq_len[top_signalq] = bytes;
+	signalq_bitmask[top_signalq] = channel_mask;
+	signalq_frequency[top_signalq] = frequency;
+	
+	lirc_t *oldsignal, *newsignal;
+	int x, pulse_now = 1;
+	int projected_signal_length;
+	short aPCAFOM = 0;
+	float afPCAFOM = 0.0;
+	int difference = 0;
+					
+	afPCAFOM = (6000000.0 / ((frequency > 0) ? frequency : DEFAULT_FREQ)  ) ; 
+	aPCAFOM = afPCAFOM;
+	
+	// Trim off mid-modulation pulse fragments, add to space for exact signals
+	for(x=0; x<(bytes/sizeof(lirc_t)); x++)
+	{
+		oldsignal = (lirc_t *)&buffer[x*sizeof(lirc_t)];
+		newsignal = (lirc_t *)signalq[top_signalq];
+		newsignal += x;
+		
+		if(pulse_now==1){
+			projected_signal_length =  
+				(((int)( (*oldsignal * 12)/( afPCAFOM ) ))  * aPCAFOM) / 12;
+			difference = *oldsignal - projected_signal_length;
+			// take off difference plus 1 full FOM cycle
+			*newsignal = *oldsignal - difference - (aPCAFOM / 12);	
+			
+		}
+		else
+		{
+			if(difference != 0)
+			{
+				// Add anything subtracted from the pulse to the space
+				*newsignal = *oldsignal + difference + (aPCAFOM / 12);
+				difference = 0;
+			}
+		
+		}
+		
+		pulse_now++;
+		if(pulse_now > 1) pulse_now = 0;
+	}
+	
+	return;
+}
+
+static void recalc_tx_available(int which_commandir)
+{
+	int i;
+	int length = 0;
+	static int failsafe = 0;
+	
+	if(lastSendSignalID[which_commandir] != 
+		commandir_last_signal_id[which_commandir])
+	{
+		/* INNOVATIONONE_FLAG:REMOVE  This will be removed pending testing
+		 * for a future release
+		 */
+		if(failsafe++ < 1000)
+		{
+			return;
+		}
+		logprintf(LOG_ERR, "Error: required the failsafe");
+	}
+	
+	failsafe = 0;
+	for(i=which_commandir*4; i<((which_commandir+1)*4); i++)
+	{
+		length = commandir_tx_end[i] - commandir_tx_start[i];
+		if(length < 0) length += 0xff;
+		
+		if(commandir_tx_available[i] < 0xff - length)
+			commandir_tx_available[i] = 0xff - length;
+			
+	}
+}
+
+static void set_hash_mask(int channel_mask) // eg, 8
+{
+	// bitwise set of hash_mask for easier coding...
+	int i,j;
+	j=channel_mask;
+	total_selected_channels = 0;
+	for(i=0; i<MAX_CHANNELS; i++)
+	{
+		hash_mask[i] = j & 0x01;
+		j = j >> 1;
+		if(hash_mask[i])
+			selected_channels[total_selected_channels++] = i;
+	}
+}
+
+
+static void commandir_transmit(char *buffer, int bytes, int bitmask, 
+	unsigned int frequency)
+{
+	/*** Send a TX command to 1 or more CommandIRs.
+	 * Keep in mind: TX frequency, TX channels, TX signal length, 
+	 * which CommandIR, & what hardware version
+	 */
+	
+	int send_status;
+	unsigned char packet[TX_BUFFER_SIZE];
+	/* So we know where there should be gaps between signals and more 
+	 * importantly, where there shouldn't be
+	 */
+	static char signalid = 1;	
+	
+	/* Depending on the tx channels, then depending on what hardware it is, 
+	 * set the freq if needed, and send the buffer with the channel header 
+	 * that's right for that CommandIR
+	 */
+	
+	int devicenum = 0;
+	int sent = 0, tosend = 0;
+	unsigned char mini_tx_mask = 0;
+	lirc_t * signals;	// have bytes/sizeof(lirc_t) signals
+	signals = (lirc_t *)buffer;
+	int total_signals = 0;
+	int i;
+	char cmdir_char[66];
+	int which_signal = 0;
+	
+	total_signals = bytes / sizeof(lirc_t);
+	
+	setEmitterMask(bitmask);
+	
+	for(devicenum = 0; devicenum < device_count; devicenum++)
+	{
+		// Do we transmit on any channels on this device?
+		if(channels_en[ devicenum ])
+		{
+			which_signal = 0;
+			switch(open_commandir_devices[ tx_order[devicenum] ].hw_type)
+			{
+				case HW_COMMANDIR_2:
+					
+					mini_tx_mask = 0;
+					// Short enough loop to unroll
+					if(channels_en[ devicenum ] & 1) mini_tx_mask |= 0x10;
+					if(channels_en[ devicenum ] & 2) mini_tx_mask |= 0x20;
+					if(channels_en[ devicenum ] & 4) mini_tx_mask |= 0x40;
+					if(channels_en[ devicenum ] & 8) mini_tx_mask |= 0x80;
+					
+					packet[1] = TX_COMMANDIR_II;
+					packet[2] = mini_tx_mask;
+					
+					short PCAFOM = 0;
+					float fPCAFOM = 0.0;
+					
+					if(bytes/sizeof(lirc_t) > 255)
+					{
+						logprintf(LOG_ERR, "Error: signal over max size");
+						continue; 
+					}
+					
+					fPCAFOM = (6000000 / ((frequency > 0) ? frequency : 
+						DEFAULT_FREQ)  ) ; 
+					PCAFOM = fPCAFOM;
+					
+					lastSendSignalID[  tx_order[devicenum]   ] = packet[5] = (getpid() + signalid++) + 1;	
+					
+					packet[4] = PCAFOM & 0xff;
+					packet[3] = (PCAFOM >> 8) & 0xff;					
+					
+					short packlets_to_send = 0, sending_this_time = 0;
+					
+					packlets_to_send = bytes / sizeof(lirc_t);
+					
+					int attempts;
+					for(attempts = 0; attempts < 10; attempts++)
+					{
+					
+						if((packlets_to_send*3 + 7) > open_commandir_devices[ tx_order[devicenum] ].endpoint_max[1])
+						{
+							sending_this_time = open_commandir_devices[ tx_order[devicenum] ].endpoint_max[1]/3 - 3;
+						}
+						else
+						{
+							sending_this_time = packlets_to_send;
+						}
+						int sending;
+
+						for(i=0; i<sending_this_time; i++)
+						{
+							sending = signals[which_signal++];
+							
+							packet[i*3+7] = sending >> 8; // high1
+							packet[i*3+8] = sending & 0xff; // low
+							packet[i*3+9] = sending >> 16 & 0xff; // high2
+						}
+						
+						packet[0] = (sending_this_time * 3 + 7);
+						packet[6] = (sending_this_time == packlets_to_send)  ? 0xcb :  0x00;
+						
+						send_status=usb_bulk_write(
+							open_commandir_devices[ tx_order[devicenum] ].cmdir_udev, 
+							2, // endpoint2
+							(char*)packet,
+							packet[0], 
+							USB_TIMEOUT_MS);
+						if(send_status < 0)
+						{
+							// Error transmitting.
+							hardware_scan();
+							return;
+						}
+						
+						packlets_to_send -= ((send_status - 7) / 3);
+						if(!packlets_to_send)
+						{
+							// "No more packlets to send\n"
+							break;
+						}
+					}
+					continue; // for transmitting on next CommandIR device
+					
+			
+				case HW_COMMANDIR_MINI:
+					mini_tx_mask = 0;
+					if(channels_en[ devicenum ] & 1) mini_tx_mask |= 0x80;
+					if(channels_en[ devicenum ] & 2) mini_tx_mask |= 0x40;
+					if(channels_en[ devicenum ] & 4) mini_tx_mask |= 0x20;
+					if(channels_en[ devicenum ] & 8) mini_tx_mask |= 0x10;
+					
+					char freqPulseWidth = DEFAULT_PULSE_WIDTH;
+					
+					freqPulseWidth = (unsigned char)((1000000 / 
+						((frequency > 0) ? frequency: DEFAULT_FREQ)  ) / 2);
+					
+					if(freqPulseWidth == 0)
+					{
+						freqPulseWidth = DEFAULT_PULSE_WIDTH;
+					}
+					
+					if(mini_freq[ tx_order[devicenum] ] != freqPulseWidth)
+					{
+						// Update the CommandIR Mini's next tx frequency
+						cmdir_char[0] = FREQ_HEADER;
+						cmdir_char[1] = freqPulseWidth;
+						cmdir_char[2] = 0;
+						mini_freq[ tx_order[devicenum] ] = freqPulseWidth;
+						send_status=usb_bulk_write(
+							open_commandir_devices[ tx_order[devicenum] ].cmdir_udev, 
+							2, // endpoint2
+							cmdir_char,
+							2, // 2 bytes
+							USB_TIMEOUT_MS);
+						if(send_status < 2)
+						{
+							// Error transmitting.
+							hardware_scan();
+							return ;
+						}
+ 					}
+					
+					unsigned int mod_signal_length=0;
+					
+					cmdir_char[0] = TX_HEADER_NEW;
+ 					cmdir_char[1] = mini_tx_mask;
+					
+					unsigned int hibyte, lobyte;
+
+					sent = 0;
+					which_signal = 0;
+					while(sent < (bytes / sizeof(lirc_t) * 2 ) )
+					{
+ 						tosend = (bytes / sizeof(lirc_t) * 2 ) - sent;
+						
+						if(tosend > (MAX_HW_MINI_PACKET - 2))
+						{
+							tosend = MAX_HW_MINI_PACKET - 2;
+						}
+						
+						for(i=0;i<(tosend/2);i++) // 2 bytes per CommandIR pkt
+						{
+							mod_signal_length = signals[which_signal++] >> 3;
+							hibyte = mod_signal_length/256;
+							lobyte = mod_signal_length%256;
+							cmdir_char[i*2+3] = lobyte;
+							cmdir_char[i*2+2] = hibyte;
+						}
+
+						send_status=usb_bulk_write(
+							open_commandir_devices[ tx_order[devicenum] ].cmdir_udev, 
+							2, // endpoint2
+							cmdir_char,
+							tosend + 2, 
+							USB_TIMEOUT_MS);
+						if(send_status < 1)
+						{
+							// Error transmitting.
+							hardware_scan();
+							return;
+						}
+						sent += tosend;
+					} // while unsent data
+					continue; // for transmitting on next CommandIR device
+				default:
+					logprintf(LOG_ERR, "Unknown hardware: %d", 
+						open_commandir_devices[tx_order[devicenum]].hw_type);
+			} // hardware switch()
+		} // if we should tx on this device
+	} // for each device we have
+}
+
+
+static void commandir_child_init()
+{
+	alarm(0);
+	signal(SIGTERM, shutdown_usb);
+	signal(SIGPIPE, SIG_DFL);
+	signal(SIGINT, shutdown_usb);
+	signal(SIGHUP, SIG_IGN);
+	signal(SIGALRM, SIG_IGN);
+	
+	logprintf(LOG_ERR, "Child Initializing CommandIR Hardware");
+	
+	usb_init();
+	int i;
+	for(i=0;i<MAX_CHANNELS;i++)
+	{
+		next_signalq_per_channel[i] = -1;
+		channels_en[i] = 0xff;
+	}
+/*	
+	// Check kernel version: support fast decoding
+	char checkV[] = {0,0,0,0,0,0,0,0,0,0};
+	FILE * checkfile;
+	int kernel_major = 0, kernel_minor = 0;
+	
+	checkfile=fopen("/proc/sys/kernel/osrelease", "r");
+	if(checkfile!=NULL)
+	{
+		fgets(checkV, 7, checkfile);
+		printf("Checking: %s.\n", checkV);
+		printf("Version checking %s.\n", &checkV[4]);
+		kernel_major = atoi(&checkV[2]);
+		kernel_minor = atoi(&checkV[4]);
+		printf("Major is: %d, minor is %d.\n", kernel_major, kernel_minor);
+		fclose(checkfile);
+	}
+	
+	if(kernel_major < 6){
+		insert_fast_zeros = 0;
+		logprintf(LOG_ERR, "Fast decoding disabled");
+	}
+	else
+	{
+		if(kernel_minor <= 24)
+		{
+			logprintf(LOG_ERR, "Fast decoding enabled (1)");
+			insert_fast_zeros = 1;
+		}
+		else
+		{
+			logprintf(LOG_ERR, "Fast decoding enabled");
+			insert_fast_zeros = 2;
+		}
+	}*/
+	hardware_scan();
+}
+
+static void hardware_disconnect(int commandir_spot)
+{
+	/* We had a read/write error, try disconnecting it and force _scan to 
+	 * reconnect - otherwise we may get perpetual read/write errors
+	 */
+	
+	int x;
+	
+	//	reset the hash so we don't try and disconnect this device again
+	//  device_count is decremented here
+	cleanup_commandir_dev(commandir_spot);
+	
+	raise_event(COMMANDIR_UNPLUG_1 + commandir_spot);
+	
+	/* Cases are:
+	removing device 0 when there's no more device (do nothing)
+	removing device < MAX when there's still 1+ devices (patch up)
+	removing device==MAX when there's more devices (do nothing)
+	*/
+	
+	// new device count-- from cleanup (if device_count > 0 AND commandir removed isn't 0 or max)
+	if( (device_count > 0) && (commandir_spot != device_count) )
+	{
+		/* It wasn't the top device removed, and there's 
+			* more than 1 device, so we have some vars to patch up
+			*/
+		for(x=commandir_spot; x<(device_count); x++)
+		{
+			channels_en[x] = channels_en[x+1];
+			mini_freq[x] = mini_freq[x+1];
+			commandir_last_signal_id[x] = commandir_last_signal_id[x+1];
+			lastSendSignalID[x] = lastSendSignalID[x+1];
+			memcpy(&open_commandir_devices[x], 
+				&open_commandir_devices[x+1], 
+				sizeof(struct commandir_device));	
+		}
+	
+	// Reset the TOP one that was just removed:
+		channels_en[(int)device_count] = 0x0f;
+		mini_freq[(int)device_count] = -1;
+		commandir_last_signal_id[(int)device_count] = 0;
+		lastSendSignalID[(int)device_count] = 0;
+		open_commandir_devices[(int)device_count].cmdir_udev = 0;
+		open_commandir_devices[(int)device_count].bus = 0;
+		open_commandir_devices[(int)device_count].busdev = 0;
+		open_commandir_devices[(int)device_count].interface = 0; 
+		open_commandir_devices[(int)device_count].hw_type = 0;
+		open_commandir_devices[(int)device_count].hw_revision = 0;
+		open_commandir_devices[(int)device_count].hw_subversion = 0;
+		
+	}
+	
+	if(commandir_rx_num>=commandir_spot)
+	{
+		commandir_rx_num--;	
+	}
+
+	hardware_setorder();
+}
+
+static void hardware_setorder(){
+	/* Tried to order to the detected CommandIRs based on bus and dev ids
+		* so they remain the same on reboot.  Adding a new device in front
+		* will mean it becomes device 0 and emitters or scripts must be fixed
+		* Need a different param, these still change. 
+		*/
+		
+	tx_order[0] = tx_order[1] = tx_order[2] = tx_order[3] = 0; 
+	mini_freq[0] = mini_freq[1] = mini_freq[2] = mini_freq[3] = -1;
+	int largest = 0;
+	int tmpvals[4];
+	int x, tx_spots, find_spot;
+	
+	for(x=0; x<device_count; x++)
+	{
+		tmpvals[x] = 256 * open_commandir_devices[x].bus + 
+			open_commandir_devices[x].busdev;
+	}
+	
+	for(tx_spots = 0; tx_spots < device_count; tx_spots++)
+	{
+		largest = 0;
+		for(find_spot = 0; find_spot < device_count; find_spot++)
+		{
+			if(tmpvals[find_spot] > tmpvals[largest])
+			{
+				largest = find_spot;
+			}
+		}
+		tx_order[device_count - tx_spots - 1 ] = largest;
+		tmpvals[largest] = 0;
+	}
+	
+	
+	// The formerly receiving CommandIR has been unplugged
+	if(commandir_rx_num < 0)
+	{
+		if(device_count > 0)
+			commandir_rx_num = 0;
+	}
+	
+	// Clear all pending signals
+	for(x=top_signalq; x >= 0; x--)
+	{
+		free(signalq[top_signalq]);
+	}
+	top_signalq = -1;
+	
+}
+
+static void cleanup_commandir_dev(int spotnum)
+{
+	int location, devnum;
+
+	location = open_commandir_devices[spotnum].location;
+	devnum = open_commandir_devices[spotnum].devnum;
+
+  open_bus_hash[ location ][ devnum ] = 0;
+	device_count--;	
+  
+	if(open_commandir_devices[spotnum].cmdir_udev==NULL)
+	{
+		return;
+	}
+	usb_release_interface(open_commandir_devices[spotnum].cmdir_udev, 
+		open_commandir_devices[spotnum].interface);
+	usb_close(open_commandir_devices[spotnum].cmdir_udev);
+	open_commandir_devices[spotnum].cmdir_udev = NULL;
+}
+
+
+static void hardware_scan()
+{
+	// Scan for hardware changes; libusb doesn't notify us...
+	unsigned char located = 0;
+	struct usb_bus *bus = 0;
+	struct usb_device *dev = 0;
+	
+	int scan_find[MAX_DEVICES][2]; // [0]=bus#, [1]=busdev#
+	unsigned char found = 0;
+	// Using hash for performance instead of memory conservation (+1k)
+	unsigned char still_found[USB_MAX_BUSES][USB_MAX_BUSDEV];
+	unsigned changed = 0;
+	int find_spot = 0;
+	
+	usb_find_busses();
+	usb_find_devices();
+ 	
+ 	for (bus = usb_busses; bus; bus = bus->next)
+	{
+		for (dev = bus->devices; dev; dev = dev->next)	
+		{
+			if (dev->descriptor.idVendor == USB_CMDIR_VENDOR_ID) 
+			{
+				located++;
+				// Do we already know about it?
+				if(!open_bus_hash[bus->location][dev->devnum]){
+				  // Then it's new, open it if we have a spot available
+				  for(find_spot=0; find_spot < MAX_DEVICES; find_spot++)
+				  {
+					if(open_commandir_devices[find_spot].cmdir_udev == NULL)
+					{
+					  // Try to open here
+					  open_commandir_devices[find_spot].cmdir_udev = usb_open(dev);
+					  if(open_commandir_devices[find_spot].cmdir_udev == NULL)
+					  {
+						logprintf(LOG_ERR, 
+						  "Error opening commandir - bus %d, device %d.",
+						  bus, dev);
+						  break;
+						}
+						else 
+						{
+						  
+						// Try to set configuration; not needed on Linux
+// 						int usb_set_configuration(usb_dev_handle *dev, int configuration);
+ 							int r = 0;
+// 							r = usb_set_configuration(open_commandir_devices[find_spot].cmdir_udev, 1);
+// 						printf("Set_configuration returned %d.\n", r);
+						  
+						  r = usb_claim_interface(
+						  	open_commandir_devices[find_spot].cmdir_udev,0);
+						  if(r < 0)
+						  {
+						  	cleanup_commandir_dev(find_spot);
+								logprintf(LOG_ERR, 
+								"Unable to claim CommandIR - Is it already busy?"
+								);
+								logprintf(LOG_ERR, 
+								"Try 'rmmod commandir' or check for other lircds"
+								);
+								break;
+						  }
+						  else 
+						  {
+							// great, it's ours
+							open_commandir_devices[find_spot].location = bus->location;
+							open_commandir_devices[find_spot].devnum = dev->devnum;
+							open_bus_hash[bus->location][dev->devnum] = 1;
+							open_commandir_devices[find_spot].bus = bus->location;
+							open_commandir_devices[find_spot].busdev = dev->devnum;
+							scan_find[++found][0] = bus->location;
+							scan_find[found][1] = dev->devnum;
+							device_count++;
+							changed++;
+							still_found[bus->location][dev->devnum] = 1;	
+							 
+							struct usb_config_descriptor *config = &dev->config[0];
+							struct usb_interface *interface = &config->interface[0];
+							struct usb_interface_descriptor *ainterface = &interface->altsetting[0];
+/*						struct usb_endpoint_descriptor *endpoint = &ainterface->endpoint[2];*/
+							
+							int i;// Load wMaxPacketSize for each endpoint; subtract 0x80 
+										// for double-buffer bit
+							for (i = 0; i < ainterface->bNumEndpoints; i++)
+							{
+								open_commandir_devices[find_spot].endpoint_max[ 
+									(ainterface->endpoint[i].bEndpointAddress >= 0x80) 
+									? (ainterface->endpoint[i].bEndpointAddress-0x80) 
+									: (ainterface->endpoint[i].bEndpointAddress)] 
+									= ainterface->endpoint[i].wMaxPacketSize;
+							}
+							
+							// compensate for double buffer:
+							open_commandir_devices[find_spot].endpoint_max[1] *= 2;
+							
+							// Always use the latest to RX:
+							commandir_rx_num = find_spot;	
+							
+							switch(dev->descriptor.iProduct)
+							{
+							 case 2:
+							 	logprintf(LOG_ERR, "Product identified as CommandIR II");
+							 	open_commandir_devices[find_spot].hw_type = HW_COMMANDIR_2;
+							  open_commandir_devices[find_spot].hw_revision = 0;
+							  open_commandir_devices[find_spot].hw_subversion = 0;
+							  
+							  int send_status = 0, tries=20;
+							  static char get_version[] = {2, GET_VERSION};
+
+								send_status = 4;	// just to start the while()
+								
+								while(tries--){
+									usleep(USB_TIMEOUT_US);	// wait a moment
+										
+									// try moving this below:
+									send_status = usb_bulk_write(
+									open_commandir_devices[find_spot].cmdir_udev, 
+										2, // endpoint2
+										get_version,
+										2, 
+										1500);
+									if(send_status < 0)
+									{
+										logprintf(LOG_ERR, 
+											"Unable to write version request - Is CommandIR busy? Error %d", send_status);
+										break;
+									}
+									
+									send_status = usb_bulk_read(
+										open_commandir_devices[find_spot].cmdir_udev,
+										1,
+										(char *)commandir_data_buffer,
+										open_commandir_devices[ find_spot ].endpoint_max[1],
+										1500);
+										
+									if(send_status < 0)
+									{
+										logprintf(LOG_ERR, 
+											"Unable to read version request - Is CommandIR busy? Error %d", send_status);
+										cleanup_commandir_dev(find_spot);
+										break;
+									}
+									if(send_status==3)
+									{
+										if(commandir_data_buffer[0]==GET_VERSION)
+										{
+											// Sending back version information.
+											open_commandir_devices[find_spot].hw_revision = 
+												commandir_data_buffer[1];
+											open_commandir_devices[find_spot].hw_subversion = 
+												commandir_data_buffer[2];
+											logprintf(LOG_ERR, "Hardware revision is %d.%d.", 
+												commandir_data_buffer[1], commandir_data_buffer[2]);
+											break;
+										}
+										else
+										{
+											continue;
+										}
+									}
+									
+							}
+							break;
+							default:
+								logprintf(LOG_ERR, "Product identified as CommandIR Mini");
+   							open_commandir_devices[find_spot].hw_type = 
+								HW_COMMANDIR_MINI;
+							}
+							
+							if(open_commandir_devices[find_spot].hw_type == 
+								HW_COMMANDIR_UNKNOWN)
+							{
+								logprintf(LOG_ERR, "Product UNKNOWN - cleanup");
+								cleanup_commandir_dev(find_spot);
+							}
+							else
+							{
+								lastSendSignalID[find_spot] = 0;
+								commandir_last_signal_id[find_spot] = 0;
+							}
+							break; // don't keep looping through find_spot
+							} // claim?
+						}// open?
+					}// spot available?
+				 }// for(spots)
+				} // if we haven't seen it before
+				else
+				{
+					still_found[bus->location][dev->devnum] = 1;
+				}
+			}// if it's a CommandIR
+		}// for bus dev's
+	}// for bus's
+	
+	if(!located)
+	{
+		logprintf(LOG_ERR, "No CommandIRs found");
+	}
+	
+	/* Check if any we currently know about have been removed
+	 * (Usually, we get a read/write error first)
+	 */
+	for(find_spot = 0; find_spot < MAX_DEVICES; find_spot++)
+	{
+		if(open_commandir_devices[find_spot].cmdir_udev != NULL)
+		{
+			if(still_found[open_commandir_devices[find_spot].location]
+				[open_commandir_devices[find_spot].devnum] != 1)
+			{
+				logprintf(LOG_ERR, "Commandir %d removed from [%d][%d].", find_spot,open_commandir_devices[find_spot].location, open_commandir_devices[find_spot].devnum);
+				raise_event(COMMANDIR_UNPLUG_1 + find_spot);
+				hardware_disconnect(find_spot);
+				commandir_rx_num = -1;
+				changed++;
+			}
+		}
+	}
+	
+	if(changed)
+	{
+		hardware_setorder();
+		raise_event(COMMANDIR_REORDERED);
+	}
+	
+}
+
+
+// Shutdown everything and terminate 
+static void shutdown_usb()
+{
+	int x;
+	
+	// Wait for any TX to complete before shutting down
+	if(top_signalq >= 0)
+	{
+		shutdown_pending++;
+		logprintf(LOG_ERR, "Waiting for signals to finish transmitting before shutdown");
+		return;
+	}
+	
+	for(x=0; x<MAX_DEVICES; x++)
+	{
+		if(open_commandir_devices[x].cmdir_udev )
+		{
+			usb_release_interface(open_commandir_devices[x].cmdir_udev, 
+				open_commandir_devices[x].interface);
+			usb_close(open_commandir_devices[x].cmdir_udev);
+		}
+	}
+	logprintf(LOG_ERR, "CommandIR driver child cleaned up and exiting");
+	raise_event(COMMANDIR_STOPPED);
+
+	_exit(EXIT_SUCCESS);
+}
+
+static void commandir_read_loop()
+{
+	// Read from CommandIR, Write to pipe
+	
+	unsigned char commands[MAX_COMMAND];
+	int curCommandStart = 0;
+	int curCommandLength = 0;
+	int bytes_read;
+	unsigned char periodic_checks = 0;
+	static unsigned char rx_decode_led[7] = {7, PROC_SET, 0x40, 0, 0,4, 2}; 
+	static unsigned char init_led[7] = {7, PROC_SET, 0x00, 0x01, 3, 55, 2}; 
+	static unsigned char deinit_led[7] = {7, PROC_SET, 0x0, 0x02, 3, 45, 2}; 
+	static unsigned int LIRC_frequency = 38000; 
+
+	int send_status = 0; 
+	int i = 0;
+	int tmp = 0;
+	int tmp2 = 0;
+
+	raise_event(COMMANDIR_READY);
+	
+	for(;;){
+		/*** This is the main loop the monitors control and TX events from 
+		  * the parent, and monitors the CommandIR RX buffer
+		  */
+		
+		curCommandStart = 0;
+		curCommandLength = 0;
+		bytes_read = read(tochild_read, commands, MAX_COMMAND); 
+		
+		if(shutdown_pending > 0 && (top_signalq==-1))
+			shutdown_usb();
+		
+		if(bytes_read > 0){
+		
+			while(curCommandStart < bytes_read){
+				curCommandLength = commands[curCommandStart] + 
+					commands[curCommandStart + 1] * 256;
+				
+				switch(commands[curCommandStart + 2]){	// the control value
+					case DEINIT_HEADER_LIRC:
+						for(i=0; i<device_count; i++)
+						{
+						 if(open_commandir_devices[tx_order[i]].hw_type ==
+						  HW_COMMANDIR_2)
+						 {
+						  if(open_commandir_devices[tx_order[i]].cmdir_udev > 0)
+						  {
+							send_status=usb_bulk_write(
+								open_commandir_devices[tx_order[i]].cmdir_udev, 
+								2, // endpoint2
+								(char*)deinit_led,
+								7, // bytes
+								USB_TIMEOUT_MS);
+						  }
+						  rx_hold = 1;	// Put a hold on RX, but queue events
+						 }
+						}
+						
+						break;
+					case INIT_HEADER_LIRC:
+						for(i=0; i<device_count; i++)
+						{
+						 if(open_commandir_devices[tx_order[i]].hw_type == 
+							HW_COMMANDIR_2)
+						 {
+						 if(open_commandir_devices[tx_order[i] ].cmdir_udev > 0)
+						  {
+							send_status=usb_bulk_write(
+								open_commandir_devices[tx_order[i] ].cmdir_udev,
+								2, // endpoint2
+								(char*)init_led,
+								7, // bytes
+								USB_TIMEOUT_MS);
+						  }
+						  rx_hold = 0;	// Resume RX after queue events
+						 }
+						}
+						break;
+					case RXDECODE_HEADER_LIRC:
+					  //	Successful RX decode: show it on the light.
+					  if(open_commandir_devices[commandir_rx_num].cmdir_udev > 0)
+					  {
+						send_status=usb_bulk_write(
+							open_commandir_devices[commandir_rx_num].cmdir_udev,
+							2, // endpoint2
+							(char*)rx_decode_led,
+							7, // bytes
+							USB_TIMEOUT_MS);
+
+					  }
+					  break;
+
+					case FREQ_HEADER_LIRC:
+						LIRC_frequency = (commands[curCommandStart + 6] & 0x000000ff) | 
+							((commands[curCommandStart + 5] << 8) & 0x0000ff00) | 
+							((commands[curCommandStart + 4] << 16) & 0x00ff0000) | 
+							((commands[curCommandStart + 3] << 24) & 0xff000000);
+						if(!LIRC_frequency)
+							LIRC_frequency = DEFAULT_FREQ;
+						break;
+					case TX_HEADER_NEW:
+					case TX_LIRC_T:
+						if(curCommandLength==64)
+						{
+							if(check_irsend_commandir(&commands[curCommandStart + 4]))
+							{
+								break; // it's a command for us
+							}
+						}
+						add_to_tx_pipeline(&commands[curCommandStart + 4], 
+							curCommandLength - 4, pre_pipeline_emitter_mask, LIRC_frequency);
+						break;
+						
+					case CHANNEL_EN_MASK:
+						pre_pipeline_emitter_mask = (commands[curCommandStart+4] << 8) |
+							 commands[curCommandStart+3];
+						break;
+				}
+				curCommandStart += curCommandLength;
+			
+			}
+		}
+		// If we're receiving, make sure the commandir buffer doesn't overrun
+		if(commandir_read() < 20 )
+			tmp = 2;
+		while(tmp-- > 0)
+		{
+			tmp2 = commandir_read();
+// 		printf("commandir_read() (%d) returning %d.\n", tmp,tmp2);
+		}
+		if(tmp2 < 20 ){
+			// once in a while, but never while we're retreaving a signal
+			if(++periodic_checks>100)
+			{
+				hardware_scan();
+				periodic_checks = 0;
+			}
+			else
+			{
+ 				usleep(read_delay);
+ 			}
+		}
+	}
+
+}
+
+static int check_irsend_commandir(unsigned char *command)
+{
+	// decode the code like LIRC would do, and take an action
+	int commandir_code = 0;
+	
+	commandir_code = commandir_decode((char*)command);
+	
+	if(commandir_code > 0xef)
+	{
+		// It's a settransmitters command
+		int channel = commandir_code & 0x0f;
+		
+		// can only set 1 bit from here so far..,
+		pre_pipeline_emitter_mask = 0x0001 << channel;	
+		
+		return commandir_code;
+	}
+	
+	switch(commandir_code)
+	{
+		case 0x53:
+			read_delay /= 2;	// "faster" means less time
+			if(read_delay < MIN_WAIT_BETWEEN_READS_US)
+				read_delay = MIN_WAIT_BETWEEN_READS_US;
+			break;
+		case 0x54:
+			read_delay *= 2;	// "slower" means more time
+			if(read_delay > MAX_WAIT_BETWEEN_READS_US)
+				read_delay = MAX_WAIT_BETWEEN_READS_US;
+			break;
+	
+		case 0x09: 
+		case 0x0A:
+			logprintf(LOG_ERR, "Re-selecting RX not implemented yet");
+			break;
+			
+		case 0xe6:	//	disable-fast-decode
+			logprintf(LOG_ERR, "Fast decoding disabled");
+			insert_fast_zeros = 0;
+			break;
+			
+		case 0xe7:	//	enable-fast-decode
+		case 0xe9:	//	force-fast-decode-2
+			logprintf(LOG_ERR, "Fast decoding enabled");
+			insert_fast_zeros = 2;
+			break;
+		
+		case 0xe8:	//	force-fast-decode-1
+			logprintf(LOG_ERR, "Fast decoding enabled (1)");
+			insert_fast_zeros = 1;
+			break;
+			
+		default:
+			if(commandir_code > 0x60 && commandir_code < 0xf0)
+			{
+				int ledhigh = 0, ledlow = 0, ledprog = -1;
+				// LED Command
+				switch(commandir_code >> 4)
+				{
+					case 0x6: ledlow = 0x80; break;
+					case 0x7: ledlow = 0x40; break;
+					case 0x8: ledlow = 0x20; break;
+					case 0x9: ledlow = 0x10; break;
+					case 0xa: ledlow = 0x04; break;
+					case 0xb: ledhigh = 0x80; break;
+					case 0xc: ledlow = 0x01; break;
+					case 0xd: ledlow = 0x02; break;
+					case 0xe: ledlow = 0x08; break;
+				}
+				ledprog = (commandir_code & 0x0f) - 1;
+				
+				if( ((ledhigh + ledlow) > 0) && ledprog > -1)
+				{
+					//	Set light:
+					static unsigned char lightchange[7] = {7, 
+					PROC_SET, 0, 0, 0, 0, 3}; 
+					lightchange[2] = ledhigh;
+					lightchange[3] = ledlow;
+					lightchange[4] = ledprog;
+					int send_status = 0; 
+					
+					send_status=usb_bulk_write(
+						open_commandir_devices[tx_order[0]].cmdir_udev, 
+						2, // endpoint2
+						(char *)lightchange,
+						7, // bytes
+						USB_TIMEOUT_MS);
+				}
+				
+				return commandir_code; // done
+			}
+		
+	}
+
+	return commandir_code;
+}
+
+
+// return how many RX's were in the last receive; so we know whether to poll more frequently or not
+static int commandir_read() 
+{
+	
+	/***  Which CommandIRs do we have to read from?  Poll RX CommandIRs 
+		* regularly, but non-receiving CommandIRs should be more periodically
+		*/
+	
+	int i,j;
+	int read_received = 0;
+	int read_retval = 0;
+	int conv_retval = 0;
+	int max_read = 5;
+	static int zeroterminated = 0;
+
+	for(i=0; i<device_count; i++)
+	{
+	
+		switch(open_commandir_devices[tx_order[i]].hw_type)
+		{
+			case HW_COMMANDIR_2:
+		
+				read_retval = usb_bulk_read(
+					open_commandir_devices[ tx_order[i] ].cmdir_udev,
+					1,
+					(char *)commandir_data_buffer,
+					open_commandir_devices[ tx_order[i] ].endpoint_max[1],
+					5000);	
+					
+				if(read_retval==0)
+					break;
+				
+				if(read_retval < 1)
+				{
+					if(read_retval < 0)
+					{
+						if(read_retval == -19){
+							logprintf(LOG_ERR, "Read Error - CommandIR probably unplugged");
+						}
+						else
+						{
+							logprintf(LOG_ERR, 
+								"Didn't receive a full packet from a CommandIR II! - err %d ."
+								, read_retval);
+						}
+						hardware_disconnect(tx_order[i]);
+						hardware_scan();
+					}
+					// 0 bytes is the most frequency case; nothing to report
+
+					break;
+				} 
+				
+				if(commandir_data_buffer[0]==RX_HEADER_TXAVAIL)
+				{
+					// sending us the current tx_start, tx_end arrays, and where it's at
+					commandir_tx_start[tx_order[i]*4] = commandir_data_buffer[4];
+					commandir_tx_start[tx_order[i]*4+1] = commandir_data_buffer[3];
+					commandir_tx_start[tx_order[i]*4+2] = commandir_data_buffer[2];
+					commandir_tx_start[tx_order[i]*4+3] = commandir_data_buffer[1];
+					
+					commandir_tx_end[tx_order[i]*4] = commandir_data_buffer[8];
+					commandir_tx_end[tx_order[i]*4+1] = commandir_data_buffer[7];
+					commandir_tx_end[tx_order[i]*4+2] = commandir_data_buffer[6];
+					commandir_tx_end[tx_order[i]*4+3] = commandir_data_buffer[5];
+					
+					commandir_last_signal_id[ tx_order[i] ] = commandir_data_buffer[9];
+					
+					recalc_tx_available(tx_order[i]); 
+					pipeline_check();
+					if(top_signalq > 0)
+					{
+						read_received++;	
+					}
+					
+					// This ALSO implies there's NO MORE RX DATA.
+					lirc_t lirc_zero_buffer[2] = {0, 0};
+					
+					int tmp4 = 0;
+					if(zeroterminated>1001)
+					{
+						// Send LIRC a 0,0 packet to allow IMMEDIATE decoding
+						if(insert_fast_zeros > 0)
+						{
+							tmp4 = write(child_pipe_write, lirc_zero_buffer, sizeof(lirc_t)*insert_fast_zeros);
+						}
+						zeroterminated = 0;
+					}
+					else
+					{
+						if((zeroterminated < 1000) && (zeroterminated > 0))
+							zeroterminated += 1000;
+						if(zeroterminated > 1000)
+							zeroterminated++;
+					}
+					
+					break;
+				}
+						
+						
+				if(commandir_data_buffer[0]==RX_HEADER_EVENTS)
+				{
+					for(j=1; j<(read_retval); j++)
+					{
+						raise_event(commandir_data_buffer[j]+tx_order[i]*0x10);
+					}
+				}
+				else
+				{
+					if( (commandir_data_buffer[0]==RX_HEADER_DATA) && 
+						(commandir_rx_num==tx_order[i]) )
+					{
+						if(rx_hold==0)	// Only if we should be listening for remote cmds
+						{
+							zeroterminated = 1;
+							conv_retval = commandir2_convert_RX(
+								(unsigned short *)&commandir_data_buffer[2], 
+								commandir_data_buffer[1]);
+							read_received = conv_retval; // header
+						}
+					}
+				}
+				break;
+			
+			case HW_COMMANDIR_MINI:
+			
+				max_read = 5;
+				while(max_read--){
+					
+					read_retval = usb_bulk_read(
+						open_commandir_devices[ tx_order[i] ].cmdir_udev,
+						1,
+						(char *)commandir_data_buffer,
+						64,
+						USB_TIMEOUT_MS);
+							
+					if (!(read_retval == MAX_HW_MINI_PACKET)) 
+					{
+						if(read_retval == -19){
+							logprintf(LOG_ERR, "Read Error - CommandIR probably unplugged");
+						}
+						else
+						{
+							logprintf(LOG_ERR, 
+								"Didn't receive a full packet from a Mini! - err %d ."
+								, read_retval);
+						}
+						
+						hardware_disconnect(tx_order[i]);
+						hardware_scan();
+						break; 
+					}
+
+					
+					if ( (commandir_data_buffer[1] > 0)  && 
+						(commandir_rx_num==tx_order[i]) ) 
+					{
+						conv_retval = cmdir_convert_RX(commandir_data_buffer);
+						
+						read_received += commandir_data_buffer[1];					
+						
+						if(commandir_data_buffer[1] < 20)
+						{
+							// Lots of hardware buffer room left; don't tie up CPU
+							break;
+						}
+					}
+					else
+					{
+						break;
+					}
+				} // while; should only repeat if there's more RX data
+				
+				/* CommandIR Mini only has 1 buffer  */
+				commandir_tx_start[tx_order[i]*4] = 0;
+				commandir_tx_start[tx_order[i]*4+1] = 0;
+				commandir_tx_start[tx_order[i]*4+2] = 0;
+				commandir_tx_start[tx_order[i]*4+3] = 0;
+				
+				commandir_tx_end[tx_order[i]*4] = commandir_data_buffer[2];
+				commandir_tx_end[tx_order[i]*4+1] = commandir_data_buffer[2];
+				commandir_tx_end[tx_order[i]*4+2] = commandir_data_buffer[2];
+				commandir_tx_end[tx_order[i]*4+3] = commandir_data_buffer[2];
+				
+				/* .. and it can't pipeline... */
+				commandir_last_signal_id[i] = lastSendSignalID[i];
+				recalc_tx_available(tx_order[i]); 
+				pipeline_check();
+				break;
+			case HW_COMMANDIR_UNKNOWN:
+					break;
+		} // end switch
+	} // for each attached hardware device
+	return read_received;
+}
+
+static void setEmitterMask(int bitmask)
+{
+	channels_en[0] = bitmask & 0x0F;
+	channels_en[1] = (bitmask >> 4) & 0xfF;
+	channels_en[2] = (bitmask >> 8) & 0xfF;
+	channels_en[3] = (bitmask >> 12) & 0xfF;
+}
+
+
+static int commandir2_convert_RX(unsigned short *bufferrx, 
+	unsigned char numvalues)
+{
+	// convert hardware timestamp values to elapsed time values
+	
+	int i;
+	int curpos = 0;
+	int bytes_w = 0;
+	lirc_t lirc_data_buffer[256];	
+	
+	i=0;
+	int pca_count = 0;
+	int overflows = 0;
+	
+	while(curpos < numvalues )
+	{
+		pca_count = (bufferrx[curpos] & 0x3fff) << 2; 
+		pca_count = pca_count / 12;
+		
+		if(bufferrx[curpos] & COMMANDIR_2_OVERFLOW_MASK)
+		{
+			overflows = bufferrx[curpos+1];
+			lirc_data_buffer[i] =  pca_count + (overflows * 0xffff / 12);
+			
+			if(bufferrx[curpos] & COMMANDIR_2_PULSE_MASK)
+			{
+				lirc_data_buffer[i] |= PULSE_BIT;
+			}
+			curpos++;
+		
+		}
+		else
+		{
+			lirc_data_buffer[i] = pca_count;
+			if(bufferrx[curpos] & COMMANDIR_2_PULSE_MASK)
+			{
+				lirc_data_buffer[i] |= PULSE_BIT;
+			}
+		}
+		
+		curpos++;
+		i++;
+		if(i> 255)
+		{
+			break;
+		}
+	}
+		
+ 	bytes_w = write(child_pipe_write, lirc_data_buffer, sizeof(lirc_t)*i);
+	
+	if (bytes_w < 0)
+	{
+		logprintf(LOG_ERR, "Can't write to LIRC pipe! %d", child_pipe_write);
+		return 0;
+	}	
+	
+	return bytes_w;
+}
+
+
+
+
+// Originally from lirc_cmdir.c
+static int cmdir_convert_RX(unsigned char *orig_rxbuffer)
+{
+	unsigned int num_data_values = 0;
+	unsigned int num_data_bytes = 0;
+	unsigned int asint1 = 0, asint2 = 0, overflows = 0;
+	int i;
+	int bytes_w;	// Pipe write
+	lirc_t lirc_data_buffer[256];	
+	
+
+	num_data_bytes = orig_rxbuffer[1];
+	
+	/* check if num_bytes is multiple of 3; if not, error  */
+	if (num_data_bytes%3 > 0) return -1;
+	if (num_data_bytes > 60) return -3; 
+	if (num_data_bytes < 3) return -2;
+	
+	num_data_values = num_data_bytes/3;
+	
+	asint2 = orig_rxbuffer[3] + orig_rxbuffer[4] * 0xff;
+	if(last_mc_time==-1)
+	{
+		// The first time we run there's no previous time value
+		last_mc_time = asint2 - 110000;	
+		if(last_mc_time < 0) last_mc_time+=0xffff;
+	}
+	
+	asint1 = last_mc_time;
+	overflows = orig_rxbuffer[5];
+	
+	for(i=2; i<num_data_values+2; i++)
+	{
+		if(overflows < 0xff)
+		{
+			// space
+			lirc_data_buffer[i-2] = get_time_value(asint1,
+				 asint2, overflows) - 26;
+		} 
+		else 
+		{	// pulse
+			lirc_data_buffer[i-2] = get_time_value(asint1,
+				 asint2, 0) + 26;
+			lirc_data_buffer[i-2] |= PULSE_BIT;
+		}	
+		asint1 = asint2; 
+		asint2 = orig_rxbuffer[i*3] + orig_rxbuffer[i*3+1] * 0xff;
+		overflows = orig_rxbuffer[i*3+2];	
+	}
+	last_mc_time = asint1;
+	
+	
+ 	bytes_w = write(child_pipe_write, lirc_data_buffer, sizeof(lirc_t)*num_data_values);
+	
+	if (bytes_w < 0)
+	{
+		logprintf(LOG_ERR, "Can't write to LIRC pipe! %d", child_pipe_write);
+		goto done;
+	}	
+	
+done:
+	return bytes_w;
+
+}
+
+
+
+
+static unsigned int get_time_value(unsigned int firstint, 
+	unsigned int secondint, unsigned char overflow) 
+{	
+	/* get difference between two MCU timestamps, CommandIR Mini version  */
+	unsigned int t_answer = 0;
+	
+	if (secondint > firstint) 
+	{
+		t_answer = secondint - firstint + overflow*0xffff;
+	} 
+	else 
+	{
+		if (overflow > 0) 
+		{
+			t_answer = (65536 - firstint) + secondint + (overflow - 1)*0xffff - 250;
+		} 
+		else 
+		{
+			t_answer = (65536 - firstint) + secondint;
+		}
+	}
+
+	/* clamp to long signal  */
+	if (t_answer > 16000000) t_answer = PULSE_MASK;
+	return t_answer;
+}
+
+
+static void raise_event(unsigned int eventid)
+{
+	/* Raise an LIRC Event by
+	 * Generating lirc_t Pattern
+	 */
+	static lirc_t event_data[18] = {LIRCCODE_GAP, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+	int i, bytes_w;
+
+	// 	logprintf(LOG_ERR, "Raising event %d", eventid);
+	for(i=0; i<8; i++)
+	{
+		if( (eventid & 0x80) )
+		{
+			event_data[i*2+1] = signal_base[0][0];
+			event_data[i*2+2] = signal_base[0][1];
+		}
+		else
+		{
+			event_data[i*2+1] = signal_base[1][0];
+			event_data[i*2+2] = signal_base[1][1];
+		}
+		eventid = eventid << 1;
+	}
+	
+ 	event_data[16] = LIRCCODE_GAP*4;
+ 	
+ 	bytes_w = write(child_pipe_write, event_data, sizeof(lirc_t) * 17);
+	
+	if (bytes_w < 0)
+	{
+		logprintf(LOG_ERR, "Can't write to LIRC pipe! %d", child_pipe_write);
+	}	
+	
+}
+
+static int commandir_decode(char *command)
+{
+	// Decode the signal to a number, just like LIRC; 
+	// there's probably a built-in way to do this.
+	int i;
+	int code = 0;
+	
+	lirc_t *codes;	
+	codes = (lirc_t *)command;
+	
+	for(i=0; i<15; i+=2)
+	{
+		code = code << 1;
+		if(codes[i]==100)
+			code |= 1;
+	}
+	return code;
+}
+
diff --git a/abs/core-testing/lirc_085/hw_commandir.h b/abs/core-testing/lirc_085/hw_commandir.h
new file mode 100755
index 0000000..2280f6c
--- /dev/null
+++ b/abs/core-testing/lirc_085/hw_commandir.h
@@ -0,0 +1,175 @@
+ 
+/****************************************************************************
+ ** hw_commandir.h **********************************************************
+ ****************************************************************************
+ * 
+ * Copyright (C) 1999 Christoph Bartelmus <lirc@bartelmus.de>
+ * -- Original hw_default.h
+ * Modified for CommandIR Transceivers, April-June 2008, Matthew Bodkin 
+ *
+ */
+
+#ifndef HW_COMMANDIR_H
+#define HW_COMMANDIR_H
+
+#define RX_BUFFER_SIZE 1024
+#define TX_BUFFER_SIZE 1024
+#define TX_QUEUE 1
+#define RX_QUEUE 0
+#define MAX_COMMANDIRS 4
+#define MAX_COMMAND 8192
+
+/* transmitter channel control */
+#define MAX_DEVICES		4
+#define MAX_CHANNELS    16
+#define DEVICE_CHANNELS	4
+#define MAX_MASK 		0xffff
+#define MAX_SIGNALQ		100
+
+/* CommandIR control codes */
+#define CHANNEL_EN_MASK	1
+#define FREQ_HEADER     2
+#define MCU_CTRL_SIZE   3
+#define TX_HEADER       7
+#define TX_HEADER_NEW	8
+/* New for CommandIR II  */
+
+#define READ_INPUTS		10
+#define PROC_SET		11
+#define INIT_FUNCTION	12
+#define RX_SELECT		13
+#define TX_COMMANDIR_II 14
+/* Internal to driver */
+#define TX_LIRC_T	    15
+#define FREQ_HEADER_LIRC 16
+#define RXDECODE_HEADER_LIRC 17
+#define INIT_HEADER_LIRC 18
+#define DEINIT_HEADER_LIRC 19
+#define GET_VERSION 	20
+
+#define COMMANDIR_2_PULSE_MASK 0x8000
+#define COMMANDIR_2_OVERFLOW_MASK 0x4000
+
+#define DEFAULT_PULSE_WIDTH 13
+
+#define USB_CMDIR_VENDOR_ID		0x10c4
+#define USB_CMDIR_PRODUCT_ID	0x0003
+#define USB_CMDIR_MINOR_BASE	192
+
+#define HW_COMMANDIR_MINI 	1
+#define HW_COMMANDIR_2		2
+#define HW_COMMANDIR_UNKNOWN 127
+
+#define MAX_HW_MINI_PACKET 64
+
+// CommandIR has lots of buffer room, we don't need to poll constantly
+#define USB_TIMEOUT_MS 5000
+#define USB_TIMEOUT_US 1000
+#define WAIT_BETWEEN_READS_US 10000
+#define MAX_WAIT_BETWEEN_READS_US 5000000
+#define MIN_WAIT_BETWEEN_READS_US 5000
+
+#define USB_MAX_BUSES	8
+#define USB_MAX_BUSDEV	127
+
+#define RX_HEADER_DATA 		0x01
+#define RX_HEADER_EVENTS 	0x02
+#define RX_HEADER_TXAVAIL 	0x03
+
+
+// We keep CommandIR's OPEN even on -deinit for speed and to monitor 
+// Other non-LIRC events (plugin, suspend, etc)
+#define USB_KEEP_WARM 1
+
+// CommandIR lircd.conf event driven code definitions
+#define LIRCCODE_GAP  125000
+#define JACK_PLUG_1		0x01
+#define JACK_PLUG_2		0x02
+#define JACK_PLUG_3		0x03
+#define JACK_PLUG_4		0x04
+#define JACK_PLUG_5		0x11
+#define JACK_PLUG_6		0x12
+#define JACK_PLUG_7		0x13
+#define JACK_PLUG_8		0x14
+#define JACK_PLUG_9		0x21
+#define JACK_PLUG_10	0x22
+#define JACK_PLUG_11	0x23
+#define JACK_PLUG_12	0x24
+#define JACK_PLUG_13	0x31
+#define JACK_PLUG_14	0x32
+#define JACK_PLUG_15	0x33
+#define JACK_PLUG_16	0x34
+
+#define JACK_UNPLUG_1	0x05
+#define JACK_UNPLUG_2	0x06
+#define JACK_UNPLUG_3	0x07
+#define JACK_UNPLUG_4	0x08
+#define JACK_UNPLUG_5	0x15
+#define JACK_UNPLUG_6	0x16
+#define JACK_UNPLUG_7	0x17
+#define JACK_UNPLUG_8	0x18
+#define JACK_UNPLUG_9	0x25
+#define JACK_UNPLUG_10	0x26
+#define JACK_UNPLUG_11	0x27
+#define JACK_UNPLUG_12	0x28
+#define JACK_UNPLUG_13	0x35
+#define JACK_UNPLUG_14	0x36
+#define JACK_UNPLUG_15	0x37
+#define JACK_UNPLUG_16	0x38
+
+#define SELECT_TX_INTERNAL	0x09
+#define SELECT_TX_ExTERNAL	0x0A
+
+#define SELECT_TX_ON_1		0x0D
+#define SELECT_TX_ON_2		0x1D
+#define SELECT_TX_ON_3		0x2D
+#define SELECT_TX_ON_4		0x3D
+
+#define JACK_PLUG_RX_1		0x0B
+#define JACK_UNPLUG_RX_1	0x0C
+#define JACK_PLUG_RX_2		0x1B
+#define JACK_UNPLUG_RX_2	0x1C
+#define JACK_PLUG_RX_3		0x2B
+#define JACK_UNPLUG_RX_3	0x2C
+#define JACK_PLUG_RX_4		0x3B
+#define JACK_UNPLUG_RX_4	0x3C
+
+#define COMMANDIR_PLUG_1	0x41
+#define COMMANDIR_PLUG_2	0x42
+#define COMMANDIR_PLUG_3	0x43
+#define COMMANDIR_PLUG_4	0x44
+
+#define COMMANDIR_UNPLUG_1	0x45
+#define COMMANDIR_UNPLUG_2	0x46
+#define COMMANDIR_UNPLUG_3	0x47
+#define COMMANDIR_UNPLUG_4	0x48
+
+#define COMMANDIR_REORDERED	0x50
+#define COMMANDIR_READY		0x51
+#define COMMANDIR_STOPPED	0x52
+#define COMMANDIR_POLL_FASTER	0x53
+#define COMMANDIR_POLL_SLOWER	0x54
+
+#define SETTRANSMITTERS_1	0xf0
+#define SETTRANSMITTERS_2	0xf1
+#define SETTRANSMITTERS_3	0xf2
+#define SETTRANSMITTERS_4	0xf3
+#define SETTRANSMITTERS_5	0xf4
+#define SETTRANSMITTERS_6	0xf5
+#define SETTRANSMITTERS_7	0xf6
+#define SETTRANSMITTERS_8	0xf7
+#define SETTRANSMITTERS_9	0xf8
+#define SETTRANSMITTERS_10	0xf9
+#define SETTRANSMITTERS_11	0xfa
+#define SETTRANSMITTERS_12	0xfb
+#define SETTRANSMITTERS_13	0xfc
+#define SETTRANSMITTERS_14	0xfd
+#define SETTRANSMITTERS_15	0xfe
+#define SETTRANSMITTERS_16	0xff
+
+// What's in a returning data packet
+#define COMMANDIR_RX_EVENTS 		0x02
+#define COMMANDIR_RX_DATA			0x01
+
+
+#endif
diff --git a/abs/core-testing/lirc_085/kernel-2.6.26.patch b/abs/core-testing/lirc_085/kernel-2.6.26.patch
new file mode 100644
index 0000000..74bb986
--- /dev/null
+++ b/abs/core-testing/lirc_085/kernel-2.6.26.patch
@@ -0,0 +1,122 @@
+--- a/drivers/kcompat.h	2008-01-13 11:26:28.000000000 +0100
++++ b/drivers/kcompat.h	2008-05-14 18:37:49.000000000 +0200
+@@ -1,4 +1,4 @@
+-/*      $Id: kcompat.h,v 5.34 2008/01/13 10:26:28 lirc Exp $      */
++/*      $Id: kcompat.h,v 5.36 2008/05/14 16:37:49 lirc Exp $      */
+ 
+ #ifndef _KCOMPAT_H
+ #define _KCOMPAT_H
+@@ -36,10 +36,10 @@
+ 	class_simple_destroy(cls);
+ }
+ 
+-#define lirc_class_device_create(cs, parent, dev, device, fmt, args...) \
+-	class_simple_device_add(cs, dev, device, fmt, ## args)
++#define lirc_device_create(cs, parent, dev, fmt, args...) \
++	class_simple_device_add(cs, dev, parent, fmt, ## args)
+ 
+-static inline void class_device_destroy(lirc_class_t *cls, dev_t devt)
++static inline void lirc_device_destroy(lirc_class_t *cls, dev_t devt)
+ {
+ 	class_simple_device_remove(devt);
+ }
+@@ -48,20 +48,40 @@
+ 
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15)
+ 
+-#define lirc_class_device_create(cs, parent, dev, device, fmt, args...) \
+-	class_device_create(cs, dev, device, fmt, ## args)
++#define lirc_device_create(cs, parent, dev, fmt, args...) \
++	class_device_create(cs, dev, parent, fmt, ## args)
+ 
+ #else /* >= 2.6.15 */
+ 
+-#define lirc_class_device_create class_device_create
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
++
++#define lirc_device_create(cs, parent, dev, fmt, args...) \
++	class_device_create(cs, NULL, dev, parent, fmt, ## args)
++
++#else /* >= 2.6.26 */
++
++#define lirc_device_create device_create
++
++#endif /* >= 2.6.26 */
++
+ #define LIRC_DEVFS_PREFIX
+ 
+-#endif
++#endif /* >= 2.6.15 */
+ 
+ typedef struct class lirc_class_t;
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
++
++#define lirc_device_destroy class_device_destroy
++
++#else
++
++#define lirc_device_destroy device_destroy
++
+ #endif
+ 
++#endif /* >= 2.6.13 */
++
+ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
+ #define LIRC_HAVE_DEVFS
+ #define LIRC_HAVE_DEVFS_24
+@@ -133,8 +153,8 @@
+ #ifndef LIRC_HAVE_SYSFS
+ #define class_destroy(x) do { } while (0)
+ #define class_create(x, y) NULL
+-#define class_device_destroy(x, y) do { } while (0)
+-#define lirc_class_device_create(x, y, z, xx, yy, zz) 0
++#define lirc_class_destroy(x, y) do { } while (0)
++#define lirc_class_create(x, y, z, xx, yy, zz) 0
+ #define IS_ERR(x) 0
+ typedef struct class_simple
+ {
+--- a/drivers/lirc_dev/lirc_dev.c	2008-01-13 11:45:02.000000000 +0100
++++ b/drivers/lirc_dev/lirc_dev.c	2008-05-14 18:37:49.000000000 +0200
+@@ -17,7 +17,7 @@
+  *  along with this program; if not, write to the Free Software
+  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  *
+- * $Id: lirc_dev.c,v 1.56 2008/01/13 10:45:02 lirc Exp $
++ * $Id: lirc_dev.c,v 1.58 2008/05/14 16:37:49 lirc Exp $
+  *
+  */
+ 
+@@ -145,7 +145,8 @@
+ #ifdef LIRC_HAVE_DEVFS_26
+ 	devfs_remove(DEV_LIRC "/%u", ir->p.minor);
+ #endif
+-	class_device_destroy(lirc_class, MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
++	lirc_device_destroy(lirc_class,
++			    MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
+ 
+ 	if (ir->buf != ir->p.rbuf) {
+ 		lirc_buffer_free(ir->buf);
+@@ -400,9 +401,9 @@
+ 			S_IFCHR|S_IRUSR|S_IWUSR,
+ 			DEV_LIRC "/%u", ir->p.minor);
+ #endif
+-	(void) lirc_class_device_create(lirc_class, NULL,
+-					MKDEV(IRCTL_DEV_MAJOR, ir->p.minor),
+-					ir->p.dev, "lirc%u", ir->p.minor);
++	(void) lirc_device_create(lirc_class, ir->p.dev,
++				  MKDEV(IRCTL_DEV_MAJOR, ir->p.minor),
++				  "lirc%u", ir->p.minor);
+ 
+ 	if (p->sample_rate || p->get_queue) {
+ 		/* try to fire up polling thread */
+@@ -441,7 +442,8 @@
+ 	return minor;
+ 
+ out_sysfs:
+-	class_device_destroy(lirc_class, MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
++	lirc_device_destroy(lirc_class,
++			    MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
+ #ifdef LIRC_HAVE_DEVFS_24
+ 	devfs_unregister(ir->devfs_handle);
+ #endif
diff --git a/abs/core-testing/lirc_085/kernel-2.6.27.patch b/abs/core-testing/lirc_085/kernel-2.6.27.patch
new file mode 100644
index 0000000..05cf75b
--- /dev/null
+++ b/abs/core-testing/lirc_085/kernel-2.6.27.patch
@@ -0,0 +1,78 @@
+diff -Nur lirc-0.8.3.orig/drivers/lirc_dev/lirc_dev.c lirc-0.8.3/drivers/lirc_dev/lirc_dev.c
+--- lirc-0.8.3.orig/drivers/lirc_dev/lirc_dev.c	2008-01-13 11:45:02.000000000 +0100
++++ lirc-0.8.3/drivers/lirc_dev/lirc_dev.c	2008-10-10 16:29:15.000000000 +0200
+@@ -49,7 +49,7 @@
+ #include <linux/uaccess.h>
+ #include <linux/errno.h>
+ #endif
+-#include <asm/semaphore.h>
++#include <linux/semaphore.h>
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
+ #include <linux/wrapper.h>
+ #endif
+diff -Nur lirc-0.8.3.orig/drivers/lirc_i2c/lirc_i2c.c lirc-0.8.3/drivers/lirc_i2c/lirc_i2c.c
+--- lirc-0.8.3.orig/drivers/lirc_i2c/lirc_i2c.c	2008-05-04 15:49:53.000000000 +0200
++++ lirc-0.8.3/drivers/lirc_i2c/lirc_i2c.c	2008-10-10 16:29:00.000000000 +0200
+@@ -54,7 +54,7 @@
+ #include <linux/i2c.h>
+ #include <linux/i2c-algo-bit.h>
+ 
+-#include <asm/semaphore.h>
++#include <linux/semaphore.h>
+ 
+ #include "drivers/kcompat.h"
+ #include "drivers/lirc_dev/lirc_dev.h"
+--- lirc-0.8.3.orig/drivers/kcompat.h	2008/05/14 16:37:49	5.36
++++ lirc-0.8.3.orig/drivers/kcompat.h	2008/09/27 08:16:15	5.37
+@@ -36,7 +36,7 @@
+ 	class_simple_destroy(cls);
+ }
+ 
+-#define lirc_device_create(cs, parent, dev, fmt, args...) \
++#define lirc_device_create(cs, parent, dev, drvdata, fmt, args...) \
+ 	class_simple_device_add(cs, dev, parent, fmt, ## args)
+ 
+ static inline void lirc_device_destroy(lirc_class_t *cls, dev_t devt)
+@@ -48,20 +48,29 @@
+ 
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15)
+ 
+-#define lirc_device_create(cs, parent, dev, fmt, args...) \
++#define lirc_device_create(cs, parent, dev, drvdata, fmt, args...) \
+ 	class_device_create(cs, dev, parent, fmt, ## args)
+ 
+ #else /* >= 2.6.15 */
+ 
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
+ 
+-#define lirc_device_create(cs, parent, dev, fmt, args...) \
++#define lirc_device_create(cs, parent, dev, drvdata, fmt, args...) \
+ 	class_device_create(cs, NULL, dev, parent, fmt, ## args)
+ 
+ #else /* >= 2.6.26 */
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)
++
++#define lirc_device_create(cs, parent, dev, drvdata, fmt, args...) \
++	class_device_create(cs, parent, dev, fmt, ## args)
++
++#else /* >= 2.6.27 */
++
+ #define lirc_device_create device_create
+ 
++#endif /* >= 2.6.27 */
++
+ #endif /* >= 2.6.26 */
+ 
+ #define LIRC_DEVFS_PREFIX
+--- lirc-0.8.3.orig/drivers/lirc_dev/lirc_dev.c	2008/09/06 07:30:16	1.60
++++ lirc-0.8.3.orig/drivers/lirc_dev/lirc_dev.c	2008/09/27 08:16:15	1.61
+@@ -397,7 +397,7 @@
+ 			DEV_LIRC "/%u", ir->p.minor);
+ #endif
+ 	(void) lirc_device_create(lirc_class, ir->p.dev,
+-				  MKDEV(IRCTL_DEV_MAJOR, ir->p.minor),
++				  MKDEV(IRCTL_DEV_MAJOR, ir->p.minor), NULL,
+ 				  "lirc%u", ir->p.minor);
+ 
+ 	if (p->sample_rate || p->get_queue) {
diff --git a/abs/core-testing/lirc_085/lirc.fdi b/abs/core-testing/lirc_085/lirc.fdi
new file mode 100644
index 0000000..6f2443a
--- /dev/null
+++ b/abs/core-testing/lirc_085/lirc.fdi
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deviceinfo version="0.2">
+  <device>
+     <!-- This rule prevents the Dvico dual digital4 rev 2
+          remote input device from making your keyboard act wierd. -->
+     <match key="info.product" contains_ncase="IR-receiver inside an USB DVB receiver">
+        <merge key="info.ignore" type="bool">true</merge>
+     </match>
+  </device>
+</deviceinfo>
diff --git a/abs/core-testing/lirc_085/lirc.install b/abs/core-testing/lirc_085/lirc.install
new file mode 100644
index 0000000..53340e5
--- /dev/null
+++ b/abs/core-testing/lirc_085/lirc.install
@@ -0,0 +1,50 @@
+# This is a default template for a post-install scriptlet.  You can
+# remove any functions you don't need (and this header).
+
+# arg 1:  the new package version
+pre_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+post_install() {
+  # updating module dependencies
+  echo ">>> Updating module dependencies. Please wait ..."
+  KERNEL_VERSION=2.6.28-LinHES
+  depmod -v $KERNEL_VERSION > /dev/null 2>&1
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+pre_upgrade() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_upgrade() {
+  # updating module dependencies
+  echo ">>> Updating module dependencies. Please wait ..."
+  KERNEL_VERSION=2.6.28-LinHES
+  depmod -v $KERNEL_VERSION > /dev/null 2>&1
+  /bin/true
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  /bin/true
+}
+
+# arg 1:  the old package version
+post_remove() {
+  # updating module dependencies
+  echo ">>> Updating module dependencies. Please wait ..."
+  KERNEL_VERSION=2.6.28-LinHES
+  depmod -v $KERNEL_VERSION > /dev/null 2>&1
+  /bin/true
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/core-testing/lirc_085/lirc_atiusb.patch b/abs/core-testing/lirc_085/lirc_atiusb.patch
new file mode 100644
index 0000000..2f0c61e
--- /dev/null
+++ b/abs/core-testing/lirc_085/lirc_atiusb.patch
@@ -0,0 +1,27 @@
+diff -ruaN lirc-0.8.4.orig/drivers/lirc_atiusb/lirc_atiusb.c lirc-0.8.4/drivers/lirc_atiusb/lirc_atiusb.c
+--- lirc-0.8.4.orig/drivers/lirc_atiusb/lirc_atiusb.c	2008-05-19 08:10:35.000000000 +0000
++++ lirc-0.8.4/drivers/lirc_atiusb/lirc_atiusb.c	2009-02-14 22:35:44.000000000 +0000
+@@ -192,8 +192,9 @@
+ /* init strings */
+ #define USB_OUTLEN		7
+ 
+-static char init1[] = {0x01, 0x00, 0x20, 0x14};
+-static char init2[] = {0x01, 0x00, 0x20, 0x14, 0x20, 0x20, 0x20};
++static char init1[] = {0x80, 0x05, 0x1b, 0x15, 0x14, 0x20, 0x24, 0x15};
++static char init2[] = {0x83, 0x03};
++static char init3[] = {0x84, 0xd7, 0x020};
+ 
+ struct in_endpt {
+ 	/* inner link in list of endpoints for the remote specified by ir */
+@@ -1183,8 +1184,9 @@
+ 			oep->buf, USB_OUTLEN, usb_remote_send,
+ 			oep, oep->ep->bInterval);
+ 
+-		send_packet(oep, 0x8004, init1);
+-		send_packet(oep, 0x8007, init2);
++               send_packet(oep, 0x8007, init1);
++               send_packet(oep, 0x8002, init2);
++               send_packet(oep, 0x8003, init3);
+ 	}
+ }
+ 
diff --git a/abs/core-testing/lirc_085/lirc_mod_mce.patch b/abs/core-testing/lirc_085/lirc_mod_mce.patch
new file mode 100644
index 0000000..1dc6644
--- /dev/null
+++ b/abs/core-testing/lirc_085/lirc_mod_mce.patch
@@ -0,0 +1,187 @@
+diff -Naru lirc_mod_mce/lirc_mod_mce.c lirc_mod_mce_new/lirc_mod_mce.c
+--- lirc_mod_mce/lirc_mod_mce.c	2008-04-18 02:12:28.000000000 +0930
++++ lirc_mod_mce_new/lirc_mod_mce.c	2009-11-22 18:45:24.000000000 +1030
+@@ -171,17 +171,76 @@
+ #define VENDOR_TATUNG           0x1460
+ #define VENDOR_GATEWAY          0x107b
+ #define VENDOR_SHUTTLE          0x1308
++#define VENDOR_PHILIPS          0x0471
++#define VENDOR_SMK              0x0609
++#define VENDOR_TATUNG           0x1460
++#define VENDOR_GATEWAY          0x107b
++#define VENDOR_SHUTTLE          0x1308
++#define VENDOR_SHUTTLE2         0x051c
++#define VENDOR_MITSUMI          0x03ee
++#define VENDOR_TOPSEED          0x1784
++#define VENDOR_RICAVISION       0x179d
++#define VENDOR_ITRON            0x195d
++#define VENDOR_FIC              0x1509
++#define VENDOR_LG               0x043e
++#define VENDOR_MICROSOFT        0x045e
++#define VENDOR_FORMOSA          0x147a
++#define VENDOR_FINTEK           0x1934
+ #define VENDOR_PINNACLE         0x2304
+ 
+-
+ static struct usb_device_id usb_remote_table [] = {
+-    { USB_DEVICE(VENDOR_PHILIPS, 0x0815) },  /* Philips eHome Infrared Transciever */
+-    { USB_DEVICE(VENDOR_SMK, 0x031d) },      /* SMK/Toshiba G83C0004D410 */
+-    { USB_DEVICE(VENDOR_TATUNG, 0x9150) },   /* Tatung eHome Infrared Transceiver */
+-    { USB_DEVICE(VENDOR_SHUTTLE, 0xc001) },  /* Shuttle eHome Infrared Transceiver */
+-    { USB_DEVICE(VENDOR_GATEWAY, 0x3009) },  /* Gateway eHome Infrared Transceiver */
+-    { USB_DEVICE(VENDOR_PINNACLE, 0x0225) }, /* Pinnacle Remote USB RC6 */
+-    { }                                      /* Terminating entry */
++    /* Philips eHome Infrared Transciever */
++    { USB_DEVICE(VENDOR_PHILIPS, 0x0815) },
++    /* Philips Infrared Transciever - HP branded */
++    { USB_DEVICE(VENDOR_PHILIPS, 0x060c) },
++    /* Philips SRM5100 */
++    { USB_DEVICE(VENDOR_PHILIPS, 0x060d) },
++    /* SMK/Toshiba G83C0004D410 */
++    { USB_DEVICE(VENDOR_SMK, 0x031d) },
++    /* SMK eHome Infrared Transceiver (Sony VAIO) */
++    { USB_DEVICE(VENDOR_SMK, 0x0322) },
++    /* bundled with Hauppauge PVR-150 */
++    { USB_DEVICE(VENDOR_SMK, 0x0334) },
++    /* Tatung eHome Infrared Transceiver */
++    { USB_DEVICE(VENDOR_TATUNG, 0x9150) },
++    /* Shuttle eHome Infrared Transceiver */
++    { USB_DEVICE(VENDOR_SHUTTLE, 0xc001) },
++    /* Shuttle eHome Infrared Transceiver */
++    { USB_DEVICE(VENDOR_SHUTTLE2, 0xc001) },
++    /* Gateway eHome Infrared Transceiver */
++    { USB_DEVICE(VENDOR_GATEWAY, 0x3009) },
++    /* Mitsumi */
++    { USB_DEVICE(VENDOR_MITSUMI, 0x2501) },
++    /* Topseed eHome Infrared Transceiver */
++    { USB_DEVICE(VENDOR_TOPSEED, 0x0001) },
++    /* Topseed HP eHome Infrared Transceiver */
++    { USB_DEVICE(VENDOR_TOPSEED, 0x0006) },
++    /* Topseed eHome Infrared Transceiver */
++    { USB_DEVICE(VENDOR_TOPSEED, 0x0007) },
++    /* Topseed eHome Infrared Transceiver */
++    { USB_DEVICE(VENDOR_TOPSEED, 0x0008) },
++    /* Ricavision internal Infrared Transceiver */
++    { USB_DEVICE(VENDOR_RICAVISION, 0x0010) },
++    /* Itron ione Libra Q-11 */
++    { USB_DEVICE(VENDOR_ITRON, 0x7002) },
++    /* FIC eHome Infrared Transceiver */
++    { USB_DEVICE(VENDOR_FIC, 0x9242) },
++    /* LG eHome Infrared Transceiver */
++    { USB_DEVICE(VENDOR_LG, 0x9803) },
++    /* Microsoft MCE Infrared Transceiver */
++    { USB_DEVICE(VENDOR_MICROSOFT, 0x00a0) },
++    /* Formosa eHome Infrared Transceiver */
++    { USB_DEVICE(VENDOR_FORMOSA, 0xe015) },
++    /* Formosa aim / Trust MCE Infrared Receiver */
++    { USB_DEVICE(VENDOR_FORMOSA, 0xe017) },
++    /* Formosa Industrial Computing / Beanbag Emulation Device */
++    { USB_DEVICE(VENDOR_FORMOSA, 0xe018) },
++    /* Fintek eHome Infrared Transceiver */
++    { USB_DEVICE(VENDOR_FINTEK, 0x0602) },
++    /* Pinnacle Remote USB RC6 */
++    { USB_DEVICE(VENDOR_PINNACLE, 0x0225) },
++    /* Terminating entry */
++    { }
+ };
+ 
+ static unsigned char usb_kbd_keycode[256] = {
+@@ -252,6 +311,8 @@
+     struct semaphore lock;
+     char name[NAME_BUFSIZE];
+     char phys[NAME_BUFSIZE];
++
++    unsigned int carrier_freq;
+ };
+ 
+ /* init strings */
+@@ -889,6 +950,51 @@
+     }
+ }
+ 
++/* Sets the send carrier frequency */
++static int set_send_carrier(struct irctl *ir, int carrier)
++{
++    	int clk = 10000000;
++	int prescaler = 0, divisor = 0;
++	unsigned char cmdbuf[] = { 0x9F, 0x06, 0x01, 0x80 };
++
++	/* Carrier is changed */
++	if (ir->carrier_freq != carrier) {
++
++		if (carrier <= 0) {
++			ir->carrier_freq = carrier;
++			dprintk(DRIVER_NAME "[%d]: SET_CARRIER disabling "
++				"carrier modulation\n", ir->devnum);
++			request_packet_async(ir, ir->usb_ep_out,
++					     cmdbuf, sizeof(cmdbuf),
++					     PHILUSB_OUTBOUND);
++			return carrier;
++		}
++
++		for (prescaler = 0; prescaler < 4; ++prescaler) {
++			divisor = (clk >> (2 * prescaler)) / carrier;
++			if (divisor <= 0xFF) {
++				ir->carrier_freq = carrier;
++				cmdbuf[2] = prescaler;
++				cmdbuf[3] = divisor;
++				dprintk(DRIVER_NAME "[%d]: SET_CARRIER "
++					"requesting %d Hz\n",
++					ir->devnum, carrier);
++
++				/* Transmit new carrier to mce device */
++				request_packet_async(ir, ir->usb_ep_out,
++						     cmdbuf, sizeof(cmdbuf),
++						     PHILUSB_OUTBOUND);
++				return carrier;
++			}
++		}
++
++		return -EINVAL;
++
++	}
++
++	return carrier;
++}
++
+ static int input_open(struct input_dev *id)
+ {
+     return 0;
+@@ -945,6 +1051,18 @@
+         if(lvalue!=(LIRC_MODE_PULSE&LIRC_CAN_SEND_MASK)) return -EINVAL;
+         break;
+ 
++    case LIRC_SET_SEND_CARRIER:
++        /* Retrieve lirc_plugin data for the device */
++        ir=lirc_get_pdata(filep);
++        if (!ir && !ir->usb_ep_out) return -EFAULT;
++
++	result = get_user(ivalue, (unsigned int *) arg);
++	if (result)
++	    return result;
++
++	set_send_carrier(ir, ivalue);
++	break;
++
+     default:
+         return -ENOIOCTLCMD;
+     }
+@@ -1047,7 +1165,8 @@
+             plugin->minor = -1;
+             plugin->features = LIRC_CAN_SEND_PULSE |
+                                 LIRC_CAN_SET_TRANSMITTER_MASK |
+-                                LIRC_CAN_REC_MODE2;
++                                LIRC_CAN_REC_MODE2 |
++                                LIRC_CAN_SET_SEND_CARRIER;
+             plugin->data = ir;
+             plugin->rbuf = rbuf;
+             plugin->set_use_inc = &set_use_inc;
+@@ -1108,7 +1227,7 @@
+     input_dev->name = ir->name;
+     input_dev->phys = ir->phys;
+     usb_to_input_id(dev, &input_dev->id);
+-    input_dev->cdev.dev = &dev->dev;
++    input_dev->dev.parent = &dev->dev;
+     input_dev->evbit[BIT_WORD(EV_KEY)] |= BIT_MASK(EV_KEY);
+     input_dev->evbit[BIT_WORD(EV_REL)] |= BIT_MASK(EV_REL);
+     input_dev->relbit[BIT_WORD(REL_X)] |= BIT_MASK(REL_X);
-- 
cgit v0.12


From 97a671ec90e83af036869180b2b65e4e10fafa2b Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 17:01:03 -0700
Subject: lvm2:Bumped/Updated for LinHES 7.

---
 abs/core-testing/lvm2/ChangeLog    | 103 +++++++++++++++++++++++++++++++++++++
 abs/core-testing/lvm2/PKGBUILD     |  83 ++++++++++++++++++++----------
 abs/core-testing/lvm2/lvm2_hook    |  17 ++++--
 abs/core-testing/lvm2/lvm2_install |  15 +++++-
 4 files changed, 185 insertions(+), 33 deletions(-)
 create mode 100644 abs/core-testing/lvm2/ChangeLog

diff --git a/abs/core-testing/lvm2/ChangeLog b/abs/core-testing/lvm2/ChangeLog
new file mode 100644
index 0000000..5809ab5
--- /dev/null
+++ b/abs/core-testing/lvm2/ChangeLog
@@ -0,0 +1,103 @@
+2010-07-11  Thomas Bächler  <thomas@archlinux.org>
+
+	* lvm2/device-mapper 2.02.70-1
+	* Upstream update
+	* Do not move the dmeventd manpage, has been fixed upstream
+	* Remove all the || return 1 in PKGBUILD
+
+2010-07-01  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2/device-mapper 2.02.69-1
+	* Upstream update
+	* Moved dmeventd man page from lvm2 to device-mapper package
+
+2010-06-25  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2/device-mapper 2.02.68-1
+	* Upstream update
+	* Fixed tr path in lvmdump
+
+2010-04-05  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2/device-mapper 2.02.62-1
+	* Upstream update
+	* Fixed license
+
+2010-02-27  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2/device-mapper 2.02.61-1
+	* Upstream update
+
+2010-01-24  Thomas Bächler <thomas@archlinux.org>
+       * lvm2/device-mapper 2.02.60-2
+       * Rebuilt without -Wl,--as-needed, it breaks dmeventd monitoring
+
+2010-01-24  Thomas Bächler <thomas@archlinux.org>
+        * lvm2/device-mapper update to 2.02.60-1
+        * Clean up PKGBUILD, fix internal paths to dmeventd and its helpers
+
+2009-11-27  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.56-1
+	* device-mapper 1.02.40-1
+	* Upstream update
+
+2009-10-31  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.54-1
+	* device-mapper 1.02.39-1
+	* Upstream update
+	* Enabled the device-mapper event daemon
+	* Moved the udev rule from /etc to /lib
+
+2009-09-27  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.53-1
+	* device-mapper 1.02.38-1
+	* Upstream update
+
+2009-09-18  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.52-1
+	* device-mapper 1.02.37-1
+	* Upstream update
+	* Implemented split packages
+	* PKGBUILD clean up
+	* Renamed pkgconfig file (close FS#15909)
+
+2009-07-09  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.48-1
+	* device-mapper 1.02.33-1
+	* Upstream update
+	* Removed unneeded readline depends (close FS#15205)
+
+2009-05-24  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.47-1
+	* device-mapper 1.02.32-1
+	* Upstream update
+	* Added dmsetup.static
+
+2009-03-07  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.45-1
+	* device-mapper 1.02.31-1
+	* Upstream update
+
+2009-01-31  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.44-1
+	* device-mapper 1.02.30-1
+	* Upstream update
+	* Added bash depends
+	* Added readline depends
+        * Added pkgconfig file
+
+2008-11-11  Eric Belanger  <eric@archlinux.org>
+
+	* lvm2 2.02.43-1
+	* device-mapper 1.02.29-1
+	* Upstream update
+	* Disabled SMP build
+	* Added ChangeLog
diff --git a/abs/core-testing/lvm2/PKGBUILD b/abs/core-testing/lvm2/PKGBUILD
index 1819c76..b4be343 100644
--- a/abs/core-testing/lvm2/PKGBUILD
+++ b/abs/core-testing/lvm2/PKGBUILD
@@ -1,35 +1,64 @@
-# $Id: PKGBUILD 1726 2008-05-15 13:19:26Z thomas $
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
-pkgname=lvm2
-pkgver=2.02.37
-pkgrel=10
-pkgdesc="Logical Volume Manager 2 utilities"
+# $Id: PKGBUILD 85275 2010-07-11 10:26:53Z thomas $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgbase=lvm2
+pkgname=('lvm2' 'device-mapper')
+pkgver=2.02.70
+_pkgverdm=1.02.52
+_pkgverlvm=${pkgver}
+pkgrel=1
 arch=('i686' 'x86_64')
-license=('GPL')
 url="http://sourceware.org/lvm2/"
+license=('GPL2' 'LGPL2.1')
 groups=('base')
-depends=('device-mapper>=1.02.22')
-conflicts=('lvm')
-backup=('etc/lvm/lvm.conf')
-source=(ftp://sources.redhat.com/pub/lvm2/LVM2.$pkgver.tgz
+conflicts=('mkinitcpio<0.5.99')
+changelog=ChangeLog
+source=(ftp://sources.redhat.com/pub/lvm2/LVM2.${_pkgverlvm}.tgz
         lvm2_install
         lvm2_hook)
-md5sums=('19c19e1f31ec548dc31982478a8a5f63'
-         '40dccdb1044f00fc1e29ca549933d4bd'
-	 '73c8c2eba0fe891712c859c18b5b8aa2')
+md5sums=('39c26d5a821754cc347d7a19e82d4a24'
+         'f781c9f5dd4f9934952c687b73d26a18'
+         '95bed25bdbc2c2d8500e7a07aeff7f65')
+sha1sums=('6f88114e72204feee491befd5f0e203036b90f11'
+          '583424bb0a6f89ffe4e4ea446b912f0fedac7050'
+          '0dc0c0d620f634c4d078afdb78e3bae15ccf957b')
 
 build() {
-  cd $startdir/src/LVM2.$pkgver
-  ./configure --prefix=/usr --sysconfdir=/etc  --localstatedir=/var
-  make || return 1
-  make DESTDIR=$startdir/pkg sbindir=$startdir/pkg/sbin install || return 1
-  mkdir -p $startdir/pkg/etc/lvm/{archive,backup}
-  # a static binary is required for Arch's initrd
-  ./configure --prefix=/usr --sysconfdir=/etc  --localstatedir=/var \
-    --enable-static_link
-  make || return 1
-  install -D -m755 tools/lvm.static $startdir/pkg/sbin/lvm.static
-  # add hook
-  install -D -m644 $startdir/src/lvm2_hook $startdir/pkg/lib/initcpio/hooks/lvm2
-  install -D -m644 $startdir/src/lvm2_install $startdir/pkg/lib/initcpio/install/lvm2
+  cd "${srcdir}/LVM2.${_pkgverlvm}"
+  sed -i 's|/usr/bin/tr|/bin/tr|' scripts/lvmdump.sh
+  unset LDFLAGS
+  ./configure --prefix= --sysconfdir=/etc --localstatedir=/var --datarootdir=/usr/share \
+    --includedir=/usr/include --with-usrlibdir=/usr/lib \
+    --enable-pkgconfig --enable-readline --enable-dmeventd --enable-cmdlib --enable-applib \
+    --with-udevdir=/lib/udev/rules.d/ --enable-udev_sync --enable-udev_rules
+  make
+}
+
+package_device-mapper() {
+  pkgdesc="Device mapper userspace library and tools"
+  url="http://sourceware.org/dm/"
+  depends=('glibc' 'udev')
+
+  cd "${srcdir}/LVM2.${_pkgverlvm}"
+  make DESTDIR="${pkgdir}" install_device-mapper
+}
+
+package_lvm2() {
+  pkgdesc="Logical Volume Manager 2 utilities"
+  depends=('bash' "device-mapper>=${pkgver}" 'udev' 'readline')
+  conflicts=('lvm' 'mkinitcpio<0.5.99')
+  backup=('etc/lvm/lvm.conf')
+  options=('!makeflags')
+
+  cd "${srcdir}/LVM2.${_pkgverlvm}"
+  make DESTDIR="${pkgdir}" install_lvm2
+  # install applib
+  cd liblvm
+  make DESTDIR="${pkgdir}" install
+  cd ..
+  # /etc directories
+  install -d "${pkgdir}"/etc/lvm/{archive,backup}
+  # mkinitcpio hook
+  install -D -m644 "${srcdir}/lvm2_hook" "${pkgdir}/lib/initcpio/hooks/lvm2"
+  install -D -m644 "${srcdir}/lvm2_install" "${pkgdir}/lib/initcpio/install/lvm2"
 }
diff --git a/abs/core-testing/lvm2/lvm2_hook b/abs/core-testing/lvm2/lvm2_hook
index b98e87d..13183c6 100644
--- a/abs/core-testing/lvm2/lvm2_hook
+++ b/abs/core-testing/lvm2/lvm2_hook
@@ -3,14 +3,23 @@ run_hook ()
 {
     /sbin/modprobe -q dm-mod >/dev/null 2>&1
     if [ -e "/sys/class/misc/device-mapper" ]; then
-        read dev_t < /sys/class/misc/device-mapper/dev
-        /bin/mknod "/dev/mapper/control" c $(/bin/replace "${dev_t}" ':')
+        if [ ! -e "/dev/mapper/control" ]; then
+            /bin/mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
+        fi
+
+        # If the lvmwait= parameter has been specified on the command line
+        # wait for the device(s) before trying to activate the volume group(s)
+        if [ -n "${lvmwait}" ]; then
+            for pvdev in $(echo ${lvmwait} | sed 's|,| |g'); do
+                poll_device ${pvdev} ${rootdelay}
+            done
+        fi
 
         [ "${quiet}" = "y" ] && LVMQUIET=">/dev/null"
 
         msg "Scanning logical volumes..."
-        eval /bin/lvm vgscan --ignorelockingfailure $LVMQUIET
+        eval /sbin/lvm vgscan --ignorelockingfailure $LVMQUIET
         msg "Activating logical volumes..."
-        eval /bin/lvm vgchange --ignorelockingfailure -ay $LVMQUIET
+        eval /sbin/lvm vgchange --ignorelockingfailure --ignoremonitoring -ay $LVMQUIET
     fi
 }
diff --git a/abs/core-testing/lvm2/lvm2_install b/abs/core-testing/lvm2/lvm2_install
index c6cacc3..4ce9f18 100644
--- a/abs/core-testing/lvm2/lvm2_install
+++ b/abs/core-testing/lvm2/lvm2_install
@@ -2,18 +2,29 @@
 
 install ()
 {
-    MODULES=" dm-mod "
+    MODULES=" dm-mod dm-snapshot dm-mirror"
     BINARIES=""
     FILES=""
     SCRIPT="lvm2"
 
     add_dir "/dev/mapper"
-    add_file "/sbin/lvm.static" "/bin/lvm"
+    add_binary "/sbin/lvm"
+    add_binary "/sbin/dmsetup"
+    add_binary "/sbin/dmeventd"
+    add_file "/lib/udev/rules.d/10-dm.rules"
+    add_file "/lib/udev/rules.d/13-dm-disk.rules"
+    add_file "/lib/udev/rules.d/95-dm-notify.rules"
+    add_file "/lib/udev/rules.d/11-dm-lvm.rules"
 }
 
 help ()
 {
 cat<<HELPEOF
   This hook loads the necessary modules for an LVM2 root device.
+
+  The optional lvmwait= parameter followed by a comma-separated
+  list of device names can be given on the command line.
+  It will cause the hook to wait until all given devices exist
+  before trying to scan and activate any volume groups.
 HELPEOF
 }
-- 
cgit v0.12


From 1388847518943a2ab9f779ce75e4aaeca2e507c3 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 17:05:04 -0700
Subject: madwifi:Bumped/Updated for LinHES 7.

---
 abs/core-testing/madwifi-utils/PKGBUILD      | 14 +++++++-------
 abs/core-testing/madwifi/PKGBUILD            | 20 +++++++++++---------
 abs/core-testing/madwifi/kernel-2.6.30.patch | 14 ++++++++++++++
 abs/core-testing/madwifi/madwifi-ng.install  | 21 ++++++---------------
 4 files changed, 38 insertions(+), 31 deletions(-)
 create mode 100644 abs/core-testing/madwifi/kernel-2.6.30.patch

diff --git a/abs/core-testing/madwifi-utils/PKGBUILD b/abs/core-testing/madwifi-utils/PKGBUILD
index 6246983..35feeea 100644
--- a/abs/core-testing/madwifi-utils/PKGBUILD
+++ b/abs/core-testing/madwifi-utils/PKGBUILD
@@ -1,21 +1,21 @@
-# $Id: PKGBUILD 7960 2008-08-05 10:51:02Z tpowa $
+# $Id: PKGBUILD 70649 2010-02-27 18:41:30Z tpowa $
 # Originally by kleptophobiac <kleptophobiac@gmail.com>
 # Modified by James Rayner for the repositories <iphitus@gmail.com>
 
 pkgname=madwifi-utils
-pkgver=0.9.4.3844
-_kernver=2.6.28-LinHES
-pkgrel=3
+pkgver=0.9.4.4119
+_kernver=2.6.33-ARCH
+pkgrel=1
 pkgdesc="Userspace tools of madwifi drivers for Atheros wireless chipsets."
 arch=(i686 x86_64)
 license=('GPL')
-url="http://madwifi.org"
+url="http://madwifi-project.org"
 depends=('wireless_tools')
 makedepends=('sharutils')
 provides=("madwifi-ng-utils")
 conflicts=("madwifi-ng-utils")
 replaces=("madwifi-ng-utils")
-# subversion source: svn checkout http://svn.madwifi.org/madwifi/trunk madwifi
+# subversion source: svn checkout http://madwifi-project.org/svn/madwifi/trunk madwifi
 source=(ftp://ftp.archlinux.org/other/madwifi/madwifi-${pkgver}.tar.bz2
 	#http://downloads.sourceforge.net/sourceforge/madwifi/madwifi-$pkgver.tar.gz
 	)
@@ -32,4 +32,4 @@ build() {
        MANDIR=/usr/share/man \
        install-tools
 }
-md5sums=('fc8b627774a91a5f0d6bd4e0d0b206fd')
+md5sums=('a720a20264b312c0ff906b9888bb49ae')
diff --git a/abs/core-testing/madwifi/PKGBUILD b/abs/core-testing/madwifi/PKGBUILD
index 3cd078b..a6cb369 100644
--- a/abs/core-testing/madwifi/PKGBUILD
+++ b/abs/core-testing/madwifi/PKGBUILD
@@ -1,26 +1,27 @@
-# $Id: PKGBUILD 22482 2008-12-26 22:45:43Z tpowa $
+# $Id: PKGBUILD 80421 2010-05-17 08:11:17Z tpowa $
 # Originally by kleptophobiac <kleptophobiac@gmail.com>
 # Modified by James Rayner for the repositories <iphitus@gmail.com>
 
-_kernver=2.6.28-LinHES;
+_kernver=2.6.34-LinHES
 
 pkgname=madwifi
-pkgver=0.9.4.3844
-pkgrel=5
+pkgver=0.9.4.4119
+pkgrel=2
 pkgdesc="Madwifi drivers for Atheros wireless chipsets. For stock arch 2.6 kernel"
 arch=(i686 x86_64)
 license=('GPL')
-url="http://madwifi.org"
-depends=('madwifi-utils' 'kernel26>=2.6.28' 'kernel26<2.6.29')
+url="http://madwifi-project.org"
+depends=('madwifi-utils' 'kernel26>=2.6.34' 'kernel26<2.6.35')
+makedepends=('kernel26-headers>=2.6.34' 'kernel26-headers<2.6.35')
 makedepends=('sharutils')
 install=madwifi-ng.install
-# subversion source: svn checkout http://svn.madwifi.org/madwifi/trunk madwifi
+# subversion source: svn checkout http:/madwifi-project.org/svn/madwifi/trunk madwifi
 source=(ftp://ftp.archlinux.org/other/madwifi/madwifi-${pkgver}.tar.bz2
 	#http://downloads.sourceforge.net/madwifi/madwifi-${pkgver}.tar.gz
 	)
 
 build() {
-  [ "${CARCH}" == "i686" ] && export ARCH=i386
+  [ "${CARCH}" = "i686" ] && export ARCH=i386
 
   #cd $startdir/src/$pkgname-$pkgver
   cd $startdir/src/$pkgname
@@ -35,4 +36,5 @@ build() {
   mv $startdir/pkg/lib/modules/$_kernver/net/* $startdir/pkg/lib/modules/$_kernver/kernel/drivers/net/wireless/madwifi
   rm -r $startdir/pkg/lib/modules/$_kernver/net/
 }
-md5sums=('fc8b627774a91a5f0d6bd4e0d0b206fd')
+
+md5sums=('a720a20264b312c0ff906b9888bb49ae')
diff --git a/abs/core-testing/madwifi/kernel-2.6.30.patch b/abs/core-testing/madwifi/kernel-2.6.30.patch
new file mode 100644
index 0000000..f844668
--- /dev/null
+++ b/abs/core-testing/madwifi/kernel-2.6.30.patch
@@ -0,0 +1,14 @@
+--- ath/if_athvar.h~	2009-06-13 09:38:53.000000000 +0200
++++ ath/if_athvar.h	2009-06-13 09:38:53.000000000 +0200
+@@ -103,11 +103,6 @@
+ /*
+  * Guess how the interrupt handler should work.
+  */
+-#if !defined(IRQ_NONE)
+-typedef void irqreturn_t;
+-#define	IRQ_NONE
+-#define	IRQ_HANDLED
+-#endif /* !defined(IRQ_NONE) */
+ 
+ #ifndef SET_MODULE_OWNER
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
diff --git a/abs/core-testing/madwifi/madwifi-ng.install b/abs/core-testing/madwifi/madwifi-ng.install
index 800cb98..3711208 100644
--- a/abs/core-testing/madwifi/madwifi-ng.install
+++ b/abs/core-testing/madwifi/madwifi-ng.install
@@ -1,23 +1,14 @@
-# arg 1:  the new package version
 post_install() {
-  KERNEL_VERSION='2.6.28-LinHES'
-  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1		 
+  KERNEL_VERSION='2.6.34-LinHES'
+  depmod -ae $KERNEL_VERSION > /dev/null 2>&1
 }
 
-# arg 1:  the new package version
-# arg 2:  the old package version
 post_upgrade() {
-  KERNEL_VERSION='2.6.28-LinHES'
-  depmod -ae -v $KERNEL_VERSION	 > /dev/null 2>&1	 
-  
+  KERNEL_VERSION='2.6.34-LinHES'
+  depmod -ae $KERNEL_VERSION > /dev/null 2>&1
 }
 
-# arg 1:  the old package version
 post_remove() {
-  KERNEL_VERSION='2.6.28-LinHES'
-  depmod -ae -v $KERNEL_VERSION	 > /dev/null 2>&1	 
+  KERNEL_VERSION='2.6.34-LinHES'
+  depmod -ae $KERNEL_VERSION > /dev/null 2>&1
 }
-
-op=$1
-shift
-$op $*
-- 
cgit v0.12


From fe0ed033ac490249f1a083c2201e527e3b716b94 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 17:05:14 -0700
Subject: mesa:Bumped/Updated for LinHES 7.

---
 abs/core-testing/mesa/LICENSE         |   82 +
 abs/core-testing/mesa/PKGBUILD        |  188 +-
 abs/core-testing/mesa/nouveau_class.h | 9019 +++++++++++++++++++++++++++++++++
 3 files changed, 9260 insertions(+), 29 deletions(-)
 create mode 100644 abs/core-testing/mesa/LICENSE
 create mode 100644 abs/core-testing/mesa/nouveau_class.h

diff --git a/abs/core-testing/mesa/LICENSE b/abs/core-testing/mesa/LICENSE
new file mode 100644
index 0000000..ae33d27
--- /dev/null
+++ b/abs/core-testing/mesa/LICENSE
@@ -0,0 +1,82 @@
+Disclaimer
+
+Mesa is a 3-D graphics library with an API which is very similar to
+that of OpenGL*
+To the extent that Mesa utilizes the OpenGL command syntax or state
+machine, it is being used with authorization from Silicon Graphics,
+Inc.(SGI). However, the author does not possess an OpenGL license
+from SGI, and makes no claim that Mesa is in any way a compatible
+replacement for OpenGL or associated with SGI. Those who want a
+licensed implementation of OpenGL should contact a licensed
+vendor.
+
+Please do not refer to the library as MesaGL (for legal
+reasons). It's just Mesa or The Mesa 3-D graphics
+library
+
+* OpenGL is a trademark of Silicon Graphics Incorporated.
+
+License / Copyright Information
+
+The Mesa distribution consists of several components.  Different copyrights
+and licenses apply to different components.  For example, GLUT is copyrighted
+by Mark Kilgard, some demo programs are copyrighted by SGI, some of the Mesa
+device drivers are copyrighted by their authors.  See below for a list of
+Mesa's main components and the license for each.
+
+The core Mesa library is licensed according to the terms of the MIT license.
+This allows integration with the XFree86, Xorg and DRI projects.
+
+The default Mesa license is as follows:
+
+Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Attention, Contributors
+
+When contributing to the Mesa project you must agree to the licensing terms
+of the component to which you're contributing.
+The following section lists the primary components of the Mesa distribution
+and their respective licenses.
+
+
+Mesa Component Licenses
+
+Component         Location               Primary Author      License
+----------------------------------------------------------------------------
+Main Mesa code    src/mesa/              Brian Paul          Mesa (MIT)
+
+Device drivers    src/mesa/drivers/*     See drivers         See drivers
+
+Ext headers       include/GL/glext.h     SGI                 SGI Free B
+                  include/GL/glxext.h
+
+GLUT              src/glut/              Mark Kilgard        Mark's copyright
+
+Mesa GLU library  src/glu/mesa/          Brian Paul          GNU-LGPL
+
+SGI GLU library   src/glu/sgi/           SGI                 SGI Free B
+
+demo programs     progs/demos/           various             see source files
+
+X demos           progs/xdemos/          Brian Paul          see source files
+
+SGI demos         progs/samples/         SGI                 SGI copyright
+
+RedBook demos     progs/redbook/         SGI                 SGI copyright
diff --git a/abs/core-testing/mesa/PKGBUILD b/abs/core-testing/mesa/PKGBUILD
index 72d100e..a731cb1 100644
--- a/abs/core-testing/mesa/PKGBUILD
+++ b/abs/core-testing/mesa/PKGBUILD
@@ -1,46 +1,176 @@
-# $Id: PKGBUILD 12996 2008-09-25 18:06:12Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 83334 2010-06-21 11:46:47Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
 
-pkgname=mesa
-pkgver=7.2
+pkgbase=mesa
+pkgname=('mesa' 'libgl' 'ati-dri' 'intel-dri' 'unichrome-dri' 'mach64-dri' 'mga-dri' 'r128-dri' 'savage-dri' 'sis-dri' 'tdfx-dri' 'nouveau-dri')
+pkgver=7.8.2
 pkgrel=1
-pkgdesc="Mesa OpenGL library"
 arch=(i686 x86_64)
-license=('LGPL')
+makedepends=('glproto>=1.4.11' 'pkgconfig' 'libdrm>=2.4.21' 'libxxf86vm>=1.1.0' 'libxdamage>=1.1.2' 'expat>=2.0.1' 'libx11>=1.3.3' 'libxt>=1.0.8' 'gcc-libs>=4.5' 'dri2proto=2.3' 'python')
 url="http://mesa3d.sourceforge.net"
-depends=('libgl' 'libx11>=1.1.4-3' 'libxt' 'glproto>=1.4.9' 'gcc-libs>=4.3.1')
-makedepends=('pkgconfig' 'dri2proto>=1.1' 'libdrm>=2.3.1')
-conflicts=('mesa-apps')
-replaces=('mesa-apps')
-source=(http://downloads.sourceforge.net/mesa3d/MesaLib-${pkgver}.tar.bz2
-	http://downloads.sourceforge.net/mesa3d/MesaDemos-${pkgver}.tar.bz2
-	ftp://ftp.archlinux.org/other/mesa/gl-manpages-1.0.1.tar.bz2)
-md5sums=('04d379292e023df0b0266825cb0dbde5'
-         '22e03dc4038cd63f32c21eb60994892b'
-         '6ae05158e678f4594343f32c2ca50515')
+license=('custom')
+#options=(!makeflags)
+source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2
+        ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaDemos-${pkgver}.tar.bz2
+        ftp://ftp.archlinux.org/other/mesa/gl-manpages-1.0.1.tar.bz2
+        nouveau_class.h
+        LICENSE)
+md5sums=('6be2d343a0089bfd395ce02aaf8adb57'
+         '757d9e2e06f48b1a52848be9b0307ced'
+         '6ae05158e678f4594343f32c2ca50515'
+         '850546127f5185959407a78b55f898d8'
+         '5c65a0fe315dd347e09b1f2826a1df5a')
 
 build() {
-  cd ${srcdir}/Mesa-${pkgver}
+  cd "${srcdir}/Mesa-${pkgver}"
+  cp "${srcdir}/nouveau_class.h" "src/gallium/drivers/nouveau/" || return 1
   ./configure --prefix=/usr \
     --with-dri-driverdir=/usr/lib/xorg/modules/dri \
-    --with-dri-drivers=swrast \
+    --with-dri-drivers=swrast,radeon,r200,r300,r600,i810,i915,i965,unichrome,mach64,mga,r128,savage,sis,tdfx \
+    --disable-egl \
+    --disable-gallium-intel \
     --enable-glx-tls \
-    --disable-ttm-api \
     --with-driver=dri \
     --enable-xcb \
+    --with-state-trackers=dri,glx \
+    --enable-gallium-nouveau \
     --disable-glut || return 1
   make || return 1
-  make DESTDIR=${pkgdir} install || return 1
 
-  install -m755 -d ${pkgdir}/usr/bin
-  install -m755 progs/xdemos/glx{gears,info} ${pkgdir}/usr/bin/ || return 1
-
-  rm -f ${pkgdir}/usr/lib/libGL.so*
-  rm -rf ${pkgdir}/usr/lib/xorg
-
-  cd ${srcdir}/gl-manpages-1.0.1
+  cd "${srcdir}/gl-manpages-1.0.1"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${pkgdir} install || return 1
+}
+
+package_libgl() {
+  depends=('libdrm>=2.4.21' 'libxxf86vm>=1.1.0' 'libxdamage>=1.1.2' 'expat>=2.0.1')
+  pkgdesc="Mesa 3-D graphics library and DRI software rasterizer"
+
+  cd "${srcdir}/Mesa-${pkgver}" || return 1
+  install -m755 -d "${pkgdir}/usr/lib" || return 1
+  install -m755 -d "${pkgdir}/usr/lib/xorg/modules/extensions"
+
+  bin/minstall lib/libGL.so* "${pkgdir}/usr/lib/" || return 1
+
+  cd src/mesa/drivers/dri
+  make -C swrast DESTDIR="${pkgdir}" install || return 1
+  #install -m755 libdricore.so "${pkgdir}/usr/lib/xorg/modules/dri/" || return 1
+  ln -s libglx.xorg "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" || return 1
+
+  install -m755 -d "${pkgdir}/usr/share/licenses/libgl"
+  install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/libgl/" || return 1
+}
+
+package_mesa() {
+  depends=('libgl' 'libx11>=1.3.3' 'libxt>=1.0.8' 'gcc-libs>=4.5' 'dri2proto=2.3' 'libdrm>=2.4.20')
+  pkgdesc="Mesa 3-D graphics libraries and include files"
+
+  cd "${srcdir}/Mesa-${pkgver}" || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/bin"
+  install -m755 progs/xdemos/glx{gears,info} "${pkgdir}/usr/bin/" || return 1
+
+  rm -f "${pkgdir}/usr/lib/libGL.so"*
+  rm -rf "${pkgdir}/usr/lib/xorg"
+  rm -f "${pkgdir}/usr/include/GL/glew.h"
+  rm -f "${pkgdir}/usr/include/GL/glxew.h"
+  rm -f "${pkgdir}/usr/include/GL/wglew.h"
+
+  cd "${srcdir}/gl-manpages-1.0.1" || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+
+  install -m755 -d "${pkgdir}/usr/share/licenses/mesa"
+  install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa/" || return 1
+}
+
+package_ati-dri() {
+  depends=("libgl=${pkgver}")
+  pkgdesc="Mesa DRI drivers for AMD/ATI Radeon"
+  conflicts=('xf86-video-ati<6.9.0-6')
+
+  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
+  make -C radeon DESTDIR="${pkgdir}" install || return 1
+  make -C r200 DESTDIR="${pkgdir}" install || return 1
+  make -C r300 DESTDIR="${pkgdir}" install || return 1
+  make -C r600 DESTDIR="${pkgdir}" install || return 1
+}
+
+package_intel-dri() {
+  depends=("libgl=${pkgver}")
+  pkgdesc="Mesa DRI drivers for Intel"
+
+  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
+  make -C i810 DESTDIR="${pkgdir}" install || return 1
+  make -C i915 DESTDIR="${pkgdir}" install || return 1
+  make -C i965 DESTDIR="${pkgdir}" install || return 1
+}
+
+package_unichrome-dri() {
+  depends=("libgl=${pkgver}")
+  pkgdesc="Mesa DRI drivers for S3 Graphics/VIA Unichrome"
+
+  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
+  make -C unichrome DESTDIR="${pkgdir}" install || return 1
+}
+
+package_mach64-dri() {
+  depends=("libgl=${pkgver}")
+  pkgdesc="Mesa DRI drivers for ATI Mach64"
+  conflicts=('xf86-video-mach64<6.8.2')
+
+  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
+  make -C mach64 DESTDIR="${pkgdir}" install || return 1
+}
+
+package_mga-dri() {
+  depends=("libgl=${pkgver}")
+  pkgdesc="Mesa DRI drivers for Matrox"
+  conflicts=('xf86-video-mga<1.4.11')
+
+  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
+  make -C mga DESTDIR="${pkgdir}" install || return 1
+}
+
+package_r128-dri() {
+  depends=("libgl=${pkgver}")
+  pkgdesc="Mesa DRI drivers for ATI Rage128"
+  conflicts=('xf86-video-r128<6.8.1')
+
+  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
+  make -C r128 DESTDIR="${pkgdir}" install || return 1
+}
+
+package_savage-dri() {
+  depends=("libgl=${pkgver}")
+  pkgdesc="Mesa DRI drivers for S3 Sraphics/VIA Savage"
+  conflicts=('xf86-video-savage<2.3.1')
+
+  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
+  make -C savage DESTDIR="${pkgdir}" install || return 1
+}
+
+package_sis-dri() {
+  depends=("libgl=${pkgver}")
+  pkgdesc="Mesa DRI drivers for SiS"
+  conflicts=('xf86-video-sis<0.10.2')
+
+  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
+  make -C sis DESTDIR="${pkgdir}" install || return 1
+}
+
+package_tdfx-dri() {
+  depends=("libgl=${pkgver}")
+  pkgdesc="Mesa DRI drivers for 3dfx"
+  conflicts=('xf86-video-tdfx<1.4.3')
+
+  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
+  make -C tdfx DESTDIR="${pkgdir}" install || return 1
+}
+
+package_nouveau-dri() {
+  depends=("libgl=${pkgver}")
+  pkgdesc="Mesa Gallium3D DRI drivers for Nouveau - highly experimental/unsupported"
+
+  cd "${srcdir}/Mesa-${pkgver}/src/gallium/winsys/drm/nouveau/dri"
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/mesa/nouveau_class.h b/abs/core-testing/mesa/nouveau_class.h
new file mode 100644
index 0000000..0167cbc
--- /dev/null
+++ b/abs/core-testing/mesa/nouveau_class.h
@@ -0,0 +1,9019 @@
+/*************************************************************************
+
+   Autogenerated file, do not edit !
+
+   This file was generated by renouveau-gen from renouveau.xml, the
+   XML database of nvidia objects and methods. renouveau-gen and
+   renouveau.xml can be found in CVS module renouveau of sourceforge.net
+   project nouveau:
+
+cvs -z3 -d:pserver:anonymous@nouveau.cvs.sourceforge.net:/cvsroot/nouveau co -P renouveau
+
+**************************************************************************
+
+   Copyright (C) 2006-2008 :
+   Dmitry Baryshkov,
+   Laurent Carlier,
+   Matthieu Castet,
+   Dawid Gajownik,
+   Jeremy Kolb,
+   Stephane Loeuillet,
+   Patrice Mandin,
+   Stephane Marchesin,
+   Serge Martin,
+   Sylvain Munaut,
+   Simon Raffeiner,
+   Ben Skeggs,
+   Erik Waling,
+   koala_br,
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+*************************************************************************/
+
+
+#ifndef NOUVEAU_REG_H
+#define NOUVEAU_REG_H 1
+
+
+#define NV01_ROOT									0x00000001
+
+
+
+#define NV01_CONTEXT_DMA								0x00000002
+
+
+
+#define NV01_DEVICE									0x00000003
+
+
+
+#define NV01_TIMER									0x00000004
+
+#define  NV01_TIMER_SYNCHRONIZE								0x00000100
+#define  NV01_TIMER_STOP_ALARM								0x00000104
+#define  NV01_TIMER_DMA_NOTIFY								0x00000180
+#define  NV01_TIMER_TIME(x)								(0x00000300+((x)*4))
+#define  NV01_TIMER_TIME__SIZE								0x00000002
+#define  NV01_TIMER_ALARM_NOTIFY							0x00000308
+
+
+#define NV01_CONTEXT_BETA1								0x00000012
+
+#define  NV01_CONTEXT_BETA1_NOP								0x00000100
+#define  NV01_CONTEXT_BETA1_NOTIFY							0x00000104
+#define  NV01_CONTEXT_BETA1_DMA_NOTIFY							0x00000180
+#define  NV01_CONTEXT_BETA1_BETA_1D31							0x00000300
+
+
+#define NV01_CONTEXT_COLOR_KEY								0x00000017
+
+#define  NV01_CONTEXT_COLOR_KEY_NOP							0x00000100
+#define  NV01_CONTEXT_COLOR_KEY_NOTIFY							0x00000104
+#define  NV01_CONTEXT_COLOR_KEY_DMA_NOTIFY						0x00000180
+#define  NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT						0x00000300
+#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X16A8Y8					0x00000001
+#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X24Y8					0x00000002
+#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X16A1R5G5B5				0x00000003
+#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X17R5G5B5					0x00000004
+#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_A8R8G8B8					0x00000005
+#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X8R8G8B8					0x00000006
+#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_A16Y16					0x00000007
+#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X16Y16					0x00000008
+#define  NV01_CONTEXT_COLOR_KEY_COLOR							0x00000304
+
+
+#define NV04_CONTEXT_COLOR_KEY								0x00000057
+
+
+
+#define NV01_CONTEXT_PATTERN								0x00000018
+
+#define  NV01_CONTEXT_PATTERN_NOP							0x00000100
+#define  NV01_CONTEXT_PATTERN_NOTIFY							0x00000104
+#define  NV01_CONTEXT_PATTERN_DMA_NOTIFY						0x00000180
+#define  NV01_CONTEXT_PATTERN_COLOR_FORMAT						0x00000300
+#define  NV01_CONTEXT_PATTERN_MONOCHROME_FORMAT						0x00000304
+#define  NV01_CONTEXT_PATTERN_SHAPE							0x00000308
+#define  NV01_CONTEXT_PATTERN_COLOR(x)							(0x00000310+((x)*4))
+#define  NV01_CONTEXT_PATTERN_COLOR__SIZE						0x00000002
+#define  NV01_CONTEXT_PATTERN_PATTERN(x)						(0x00000318+((x)*4))
+#define  NV01_CONTEXT_PATTERN_PATTERN__SIZE						0x00000002
+
+
+#define NV01_CONTEXT_CLIP_RECTANGLE							0x00000019
+
+#define  NV01_CONTEXT_CLIP_RECTANGLE_NOP						0x00000100
+#define  NV01_CONTEXT_CLIP_RECTANGLE_NOTIFY						0x00000104
+#define  NV01_CONTEXT_CLIP_RECTANGLE_DMA_NOTIFY						0x00000180
+#define  NV01_CONTEXT_CLIP_RECTANGLE_POINT						0x00000300
+#define   NV01_CONTEXT_CLIP_RECTANGLE_POINT_X_SHIFT					0
+#define   NV01_CONTEXT_CLIP_RECTANGLE_POINT_X_MASK					0x0000ffff
+#define   NV01_CONTEXT_CLIP_RECTANGLE_POINT_Y_SHIFT					16
+#define   NV01_CONTEXT_CLIP_RECTANGLE_POINT_Y_MASK					0xffff0000
+#define  NV01_CONTEXT_CLIP_RECTANGLE_SIZE						0x00000304
+#define   NV01_CONTEXT_CLIP_RECTANGLE_SIZE_W_SHIFT					0
+#define   NV01_CONTEXT_CLIP_RECTANGLE_SIZE_W_MASK					0x0000ffff
+#define   NV01_CONTEXT_CLIP_RECTANGLE_SIZE_H_SHIFT					16
+#define   NV01_CONTEXT_CLIP_RECTANGLE_SIZE_H_MASK					0xffff0000
+
+
+#define NV01_RENDER_SOLID_LINE								0x0000001c
+
+#define  NV01_RENDER_SOLID_LINE_NOP							0x00000100
+#define  NV01_RENDER_SOLID_LINE_NOTIFY							0x00000104
+#define  NV01_RENDER_SOLID_LINE_PATCH							0x0000010c
+#define  NV01_RENDER_SOLID_LINE_DMA_NOTIFY						0x00000180
+#define  NV01_RENDER_SOLID_LINE_CLIP_RECTANGLE						0x00000184
+#define  NV01_RENDER_SOLID_LINE_PATTERN							0x00000188
+#define  NV01_RENDER_SOLID_LINE_ROP							0x0000018c
+#define  NV01_RENDER_SOLID_LINE_BETA1							0x00000190
+#define  NV01_RENDER_SOLID_LINE_SURFACE							0x00000194
+#define  NV01_RENDER_SOLID_LINE_OPERATION						0x000002fc
+#define   NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY_AND					0x00000000
+#define   NV01_RENDER_SOLID_LINE_OPERATION_ROP_AND					0x00000001
+#define   NV01_RENDER_SOLID_LINE_OPERATION_BLEND_AND					0x00000002
+#define   NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY					0x00000003
+#define   NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY_PREMULT				0x00000004
+#define   NV01_RENDER_SOLID_LINE_OPERATION_BLEND_PREMULT				0x00000005
+#define  NV01_RENDER_SOLID_LINE_COLOR_FORMAT						0x00000300
+#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X16A8Y8					0x00000001
+#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X24Y8					0x00000002
+#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X16A1R5G5B5				0x00000003
+#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X17R5G5B5					0x00000004
+#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_A8R8G8B8					0x00000005
+#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X8R8G8B8					0x00000006
+#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_A16Y16					0x00000007
+#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X16Y16					0x00000008
+#define  NV01_RENDER_SOLID_LINE_COLOR							0x00000304
+#define  NV01_RENDER_SOLID_LINE_LINE_POINT0(x)						(0x00000400+((x)*8))
+#define  NV01_RENDER_SOLID_LINE_LINE_POINT0__SIZE					0x00000010
+#define   NV01_RENDER_SOLID_LINE_LINE_POINT0_X_SHIFT					0
+#define   NV01_RENDER_SOLID_LINE_LINE_POINT0_X_MASK					0x0000ffff
+#define   NV01_RENDER_SOLID_LINE_LINE_POINT0_Y_SHIFT					16
+#define   NV01_RENDER_SOLID_LINE_LINE_POINT0_Y_MASK					0xffff0000
+#define  NV01_RENDER_SOLID_LINE_LINE_POINT1(x)						(0x00000404+((x)*8))
+#define  NV01_RENDER_SOLID_LINE_LINE_POINT1__SIZE					0x00000010
+#define   NV01_RENDER_SOLID_LINE_LINE_POINT1_X_SHIFT					0
+#define   NV01_RENDER_SOLID_LINE_LINE_POINT1_X_MASK					0x0000ffff
+#define   NV01_RENDER_SOLID_LINE_LINE_POINT1_Y_SHIFT					16
+#define   NV01_RENDER_SOLID_LINE_LINE_POINT1_Y_MASK					0xffff0000
+#define  NV01_RENDER_SOLID_LINE_LINE32_POINT0_X(x)					(0x00000480+((x)*16))
+#define  NV01_RENDER_SOLID_LINE_LINE32_POINT0_X__SIZE					0x00000010
+#define  NV01_RENDER_SOLID_LINE_LINE32_POINT0_Y(x)					(0x00000484+((x)*16))
+#define  NV01_RENDER_SOLID_LINE_LINE32_POINT0_Y__SIZE					0x00000010
+#define  NV01_RENDER_SOLID_LINE_LINE32_POINT1_X(x)					(0x00000488+((x)*16))
+#define  NV01_RENDER_SOLID_LINE_LINE32_POINT1_X__SIZE					0x00000010
+#define  NV01_RENDER_SOLID_LINE_LINE32_POINT1_Y(x)					(0x0000048c+((x)*16))
+#define  NV01_RENDER_SOLID_LINE_LINE32_POINT1_Y__SIZE					0x00000010
+#define  NV01_RENDER_SOLID_LINE_POLYLINE(x)						(0x00000500+((x)*4))
+#define  NV01_RENDER_SOLID_LINE_POLYLINE__SIZE						0x00000020
+#define   NV01_RENDER_SOLID_LINE_POLYLINE_X_SHIFT					0
+#define   NV01_RENDER_SOLID_LINE_POLYLINE_X_MASK					0x0000ffff
+#define   NV01_RENDER_SOLID_LINE_POLYLINE_Y_SHIFT					16
+#define   NV01_RENDER_SOLID_LINE_POLYLINE_Y_MASK					0xffff0000
+#define  NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_X(x)					(0x00000580+((x)*8))
+#define  NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_X__SIZE				0x00000010
+#define  NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_Y(x)					(0x00000584+((x)*8))
+#define  NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_Y__SIZE				0x00000010
+#define  NV01_RENDER_SOLID_LINE_CPOLYLINE_COLOR(x)					(0x00000600+((x)*8))
+#define  NV01_RENDER_SOLID_LINE_CPOLYLINE_COLOR__SIZE					0x00000010
+#define  NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT(x)					(0x00000604+((x)*8))
+#define  NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT__SIZE					0x00000010
+#define   NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_X_SHIFT				0
+#define   NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_X_MASK					0x0000ffff
+#define   NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_Y_SHIFT				16
+#define   NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_Y_MASK					0xffff0000
+
+
+#define NV04_RENDER_SOLID_LINE								0x0000005c
+
+#define  NV04_RENDER_SOLID_LINE_BETA4							0x00000194
+#define  NV04_RENDER_SOLID_LINE_SURFACE							0x00000198
+
+
+#define NV01_RENDER_SOLID_TRIANGLE							0x0000001d
+
+#define  NV01_RENDER_SOLID_TRIANGLE_NOP							0x00000100
+#define  NV01_RENDER_SOLID_TRIANGLE_NOTIFY						0x00000104
+#define  NV01_RENDER_SOLID_TRIANGLE_PATCH						0x0000010c
+#define  NV01_RENDER_SOLID_TRIANGLE_DMA_NOTIFY						0x00000180
+#define  NV01_RENDER_SOLID_TRIANGLE_CLIP_RECTANGLE					0x00000184
+#define  NV01_RENDER_SOLID_TRIANGLE_PATTERN						0x00000188
+#define  NV01_RENDER_SOLID_TRIANGLE_ROP							0x0000018c
+#define  NV01_RENDER_SOLID_TRIANGLE_BETA1						0x00000190
+#define  NV01_RENDER_SOLID_TRIANGLE_SURFACE						0x00000194
+#define  NV01_RENDER_SOLID_TRIANGLE_OPERATION						0x000002fc
+#define   NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY_AND				0x00000000
+#define   NV01_RENDER_SOLID_TRIANGLE_OPERATION_ROP_AND					0x00000001
+#define   NV01_RENDER_SOLID_TRIANGLE_OPERATION_BLEND_AND				0x00000002
+#define   NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY					0x00000003
+#define   NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY_PREMULT				0x00000004
+#define   NV01_RENDER_SOLID_TRIANGLE_OPERATION_BLEND_PREMULT				0x00000005
+#define  NV01_RENDER_SOLID_TRIANGLE_COLOR_FORMAT					0x00000300
+#define  NV01_RENDER_SOLID_TRIANGLE_COLOR						0x00000304
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0					0x00000310
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_X_SHIFT				0
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_X_MASK				0x0000ffff
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_Y_SHIFT				16
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_Y_MASK				0xffff0000
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1					0x00000314
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_X_SHIFT				0
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_X_MASK				0x0000ffff
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_Y_SHIFT				16
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_Y_MASK				0xffff0000
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2					0x00000318
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_X_SHIFT				0
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_X_MASK				0x0000ffff
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_Y_SHIFT				16
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_Y_MASK				0xffff0000
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT0_X					0x00000320
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT0_Y					0x00000324
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT1_X					0x00000328
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT1_Y					0x0000032c
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT2_X					0x00000330
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT2_Y					0x00000334
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIMESH(x)						(0x00000400+((x)*4))
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIMESH__SIZE					0x00000020
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIMESH_X_SHIFT					0
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIMESH_X_MASK					0x0000ffff
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIMESH_Y_SHIFT					16
+#define   NV01_RENDER_SOLID_TRIANGLE_TRIMESH_Y_MASK					0xffff0000
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_X(x)				(0x00000480+((x)*8))
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_X__SIZE				0x00000010
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_Y(x)				(0x00000484+((x)*8))
+#define  NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_Y__SIZE				0x00000010
+#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_COLOR(x)					(0x00000500+((x)*16))
+#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_COLOR__SIZE				0x00000008
+#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0(x)					(0x00000504+((x)*16))
+#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0__SIZE				0x00000008
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_X_SHIFT				0
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_X_MASK				0x0000ffff
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_Y_SHIFT				16
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_Y_MASK				0xffff0000
+#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1(x)					(0x00000508+((x)*16))
+#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1__SIZE				0x00000008
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_X_SHIFT				0
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_X_MASK				0x0000ffff
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_Y_SHIFT				16
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_Y_MASK				0xffff0000
+#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2(x)					(0x0000050c+((x)*16))
+#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2__SIZE				0x00000008
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_X_SHIFT				0
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_X_MASK				0x0000ffff
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_Y_SHIFT				16
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_Y_MASK				0xffff0000
+#define  NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_COLOR(x)					(0x00000580+((x)*8))
+#define  NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_COLOR__SIZE				0x00000010
+#define  NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT(x)					(0x00000584+((x)*8))
+#define  NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT__SIZE				0x00000010
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_X_SHIFT				0
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_X_MASK				0x0000ffff
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_Y_SHIFT				16
+#define   NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_Y_MASK				0xffff0000
+
+
+#define NV04_RENDER_SOLID_TRIANGLE							0x0000005d
+
+#define  NV04_RENDER_SOLID_TRIANGLE_BETA4						0x00000194
+#define  NV04_RENDER_SOLID_TRIANGLE_SURFACE						0x00000198
+
+
+#define NV01_RENDER_SOLID_RECTANGLE							0x0000001e
+
+#define  NV01_RENDER_SOLID_RECTANGLE_NOP						0x00000100
+#define  NV01_RENDER_SOLID_RECTANGLE_NOTIFY						0x00000104
+#define  NV01_RENDER_SOLID_RECTANGLE_PATCH						0x0000010c
+#define  NV01_RENDER_SOLID_RECTANGLE_DMA_NOTIFY						0x00000180
+#define  NV01_RENDER_SOLID_RECTANGLE_CLIP_RECTANGLE					0x00000184
+#define  NV01_RENDER_SOLID_RECTANGLE_PATTERN						0x00000188
+#define  NV01_RENDER_SOLID_RECTANGLE_ROP						0x0000018c
+#define  NV01_RENDER_SOLID_RECTANGLE_BETA1						0x00000190
+#define  NV01_RENDER_SOLID_RECTANGLE_SURFACE						0x00000194
+#define  NV01_RENDER_SOLID_RECTANGLE_OPERATION						0x000002fc
+#define   NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY_AND				0x00000000
+#define   NV01_RENDER_SOLID_RECTANGLE_OPERATION_ROP_AND					0x00000001
+#define   NV01_RENDER_SOLID_RECTANGLE_OPERATION_BLEND_AND				0x00000002
+#define   NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY					0x00000003
+#define   NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY_PREMULT				0x00000004
+#define   NV01_RENDER_SOLID_RECTANGLE_OPERATION_BLEND_PREMULT				0x00000005
+#define  NV01_RENDER_SOLID_RECTANGLE_COLOR_FORMAT					0x00000300
+#define  NV01_RENDER_SOLID_RECTANGLE_COLOR						0x00000304
+#define  NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT(x)					(0x00000400+((x)*8))
+#define  NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT__SIZE				0x00000010
+#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_X_SHIFT				0
+#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_X_MASK				0x0000ffff
+#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_Y_SHIFT				16
+#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_Y_MASK				0xffff0000
+#define  NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE(x)					(0x00000404+((x)*8))
+#define  NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE__SIZE				0x00000010
+#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_W_SHIFT				0
+#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_W_MASK				0x0000ffff
+#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_H_SHIFT				16
+#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_H_MASK				0xffff0000
+
+
+#define NV04_RENDER_SOLID_RECTANGLE							0x0000005e
+
+#define  NV04_RENDER_SOLID_RECTANGLE_BETA4						0x00000194
+#define  NV04_RENDER_SOLID_RECTANGLE_SURFACE						0x00000198
+
+
+#define NV01_IMAGE_BLIT									0x0000001f
+
+#define  NV01_IMAGE_BLIT_NOP								0x00000100
+#define  NV01_IMAGE_BLIT_NOTIFY								0x00000104
+#define  NV01_IMAGE_BLIT_PATCH								0x0000010c
+#define  NV01_IMAGE_BLIT_DMA_NOTIFY							0x00000180
+#define  NV01_IMAGE_BLIT_COLOR_KEY							0x00000184
+#define  NV01_IMAGE_BLIT_CLIP_RECTANGLE							0x00000188
+#define  NV01_IMAGE_BLIT_PATTERN							0x0000018c
+#define  NV01_IMAGE_BLIT_ROP								0x00000190
+#define  NV01_IMAGE_BLIT_BETA1								0x00000194
+#define  NV01_IMAGE_BLIT_SURFACE							0x0000019c
+#define  NV01_IMAGE_BLIT_OPERATION							0x000002fc
+#define   NV01_IMAGE_BLIT_OPERATION_SRCCOPY_AND						0x00000000
+#define   NV01_IMAGE_BLIT_OPERATION_ROP_AND						0x00000001
+#define   NV01_IMAGE_BLIT_OPERATION_BLEND_AND						0x00000002
+#define   NV01_IMAGE_BLIT_OPERATION_SRCCOPY						0x00000003
+#define   NV01_IMAGE_BLIT_OPERATION_SRCCOPY_PREMULT					0x00000004
+#define   NV01_IMAGE_BLIT_OPERATION_BLEND_PREMULT					0x00000005
+#define  NV01_IMAGE_BLIT_IMAGE_INPUT							0x00000204
+#define  NV01_IMAGE_BLIT_POINT_IN							0x00000300
+#define   NV01_IMAGE_BLIT_POINT_IN_X_SHIFT						0
+#define   NV01_IMAGE_BLIT_POINT_IN_X_MASK						0x0000ffff
+#define   NV01_IMAGE_BLIT_POINT_IN_Y_SHIFT						16
+#define   NV01_IMAGE_BLIT_POINT_IN_Y_MASK						0xffff0000
+#define  NV01_IMAGE_BLIT_POINT_OUT							0x00000304
+#define   NV01_IMAGE_BLIT_POINT_OUT_X_SHIFT						0
+#define   NV01_IMAGE_BLIT_POINT_OUT_X_MASK						0x0000ffff
+#define   NV01_IMAGE_BLIT_POINT_OUT_Y_SHIFT						16
+#define   NV01_IMAGE_BLIT_POINT_OUT_Y_MASK						0xffff0000
+#define  NV01_IMAGE_BLIT_SIZE								0x00000308
+#define   NV01_IMAGE_BLIT_SIZE_W_SHIFT							0
+#define   NV01_IMAGE_BLIT_SIZE_W_MASK							0x0000ffff
+#define   NV01_IMAGE_BLIT_SIZE_H_SHIFT							16
+#define   NV01_IMAGE_BLIT_SIZE_H_MASK							0xffff0000
+
+
+#define NV04_IMAGE_BLIT									0x0000005f
+
+#define  NV04_IMAGE_BLIT_ROP								0x00000190
+#define  NV04_IMAGE_BLIT_BETA4								0x00000198
+#define  NV04_IMAGE_BLIT_SURFACE							0x0000019c
+
+
+#define NV12_IMAGE_BLIT									0x0000009f
+
+#define  NV12_IMAGE_BLIT_WAIT_FOR_IDLE							0x00000108
+
+
+#define NV01_IMAGE_FROM_CPU								0x00000021
+
+#define  NV01_IMAGE_FROM_CPU_NOP							0x00000100
+#define  NV01_IMAGE_FROM_CPU_NOTIFY							0x00000104
+#define  NV01_IMAGE_FROM_CPU_PATCH							0x0000010c
+#define  NV01_IMAGE_FROM_CPU_DMA_NOTIFY							0x00000180
+#define  NV01_IMAGE_FROM_CPU_COLOR_KEY							0x00000184
+#define  NV01_IMAGE_FROM_CPU_CLIP_RECTANGLE						0x00000188
+#define  NV01_IMAGE_FROM_CPU_PATTERN							0x0000018c
+#define  NV01_IMAGE_FROM_CPU_ROP							0x00000190
+#define  NV01_IMAGE_FROM_CPU_BETA1							0x00000194
+#define  NV01_IMAGE_FROM_CPU_SURFACE							0x00000198
+#define  NV01_IMAGE_FROM_CPU_OPERATION							0x000002fc
+#define   NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY_AND					0x00000000
+#define   NV01_IMAGE_FROM_CPU_OPERATION_ROP_AND						0x00000001
+#define   NV01_IMAGE_FROM_CPU_OPERATION_BLEND_AND					0x00000002
+#define   NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY						0x00000003
+#define   NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY_PREMULT					0x00000004
+#define   NV01_IMAGE_FROM_CPU_OPERATION_BLEND_PREMULT					0x00000005
+#define  NV01_IMAGE_FROM_CPU_COLOR_FORMAT						0x00000300
+#define   NV01_IMAGE_FROM_CPU_COLOR_FORMAT_Y8						0x00000001
+#define   NV01_IMAGE_FROM_CPU_COLOR_FORMAT_A1R5G5B5					0x00000002
+#define   NV01_IMAGE_FROM_CPU_COLOR_FORMAT_X1R5G5B5					0x00000003
+#define   NV01_IMAGE_FROM_CPU_COLOR_FORMAT_A8R8G8B8					0x00000004
+#define   NV01_IMAGE_FROM_CPU_COLOR_FORMAT_X8R8G8B8					0x00000005
+#define  NV01_IMAGE_FROM_CPU_POINT							0x00000304
+#define   NV01_IMAGE_FROM_CPU_POINT_X_SHIFT						0
+#define   NV01_IMAGE_FROM_CPU_POINT_X_MASK						0x0000ffff
+#define   NV01_IMAGE_FROM_CPU_POINT_Y_SHIFT						16
+#define   NV01_IMAGE_FROM_CPU_POINT_Y_MASK						0xffff0000
+#define  NV01_IMAGE_FROM_CPU_SIZE_OUT							0x00000308
+#define   NV01_IMAGE_FROM_CPU_SIZE_OUT_W_SHIFT						0
+#define   NV01_IMAGE_FROM_CPU_SIZE_OUT_W_MASK						0x0000ffff
+#define   NV01_IMAGE_FROM_CPU_SIZE_OUT_H_SHIFT						16
+#define   NV01_IMAGE_FROM_CPU_SIZE_OUT_H_MASK						0xffff0000
+#define  NV01_IMAGE_FROM_CPU_SIZE_IN							0x0000030c
+#define   NV01_IMAGE_FROM_CPU_SIZE_IN_W_SHIFT						0
+#define   NV01_IMAGE_FROM_CPU_SIZE_IN_W_MASK						0x0000ffff
+#define   NV01_IMAGE_FROM_CPU_SIZE_IN_H_SHIFT						16
+#define   NV01_IMAGE_FROM_CPU_SIZE_IN_H_MASK						0xffff0000
+#define  NV01_IMAGE_FROM_CPU_COLOR(x)							(0x00000400+((x)*4))
+#define  NV01_IMAGE_FROM_CPU_COLOR__SIZE						0x00000020
+
+
+#define NV04_IMAGE_FROM_CPU								0x00000061
+
+#define  NV04_IMAGE_FROM_CPU_BETA4							0x00000198
+#define  NV04_IMAGE_FROM_CPU_SURFACE							0x0000019c
+
+
+#define NV05_IMAGE_FROM_CPU								0x00000065
+
+#define  NV05_IMAGE_FROM_CPU_COLOR_CONVERSION						0x000002f8
+
+
+#define NV10_IMAGE_FROM_CPU								0x0000008a
+
+#define  NV10_IMAGE_FROM_CPU_WAIT_FOR_IDLE						0x00000108
+
+
+#define NV30_IMAGE_FROM_CPU								0x0000038a
+
+
+
+#define NV40_IMAGE_FROM_CPU								0x0000308a
+
+
+
+#define NV01_NULL									0x00000030
+
+
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU							0x00000036
+
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_NOP						0x00000100
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_NOTIFY						0x00000104
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_PATCH						0x0000010c
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_DMA_NOTIFY					0x00000180
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_COLOR_KEY					0x00000184
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_PATTERN						0x00000188
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_ROP						0x0000018c
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_BETA1						0x00000190
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_SURFACE						0x00000194
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_OPERATION					0x000002fc
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_COLOR_FORMAT					0x00000300
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN						0x00000304
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_W_SHIFT					0
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_W_MASK					0x0000ffff
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_H_SHIFT					16
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_H_MASK					0xffff0000
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_DX_DU						0x00000308
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_DY_DV						0x0000030c
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT					0x00000310
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_X_SHIFT				0
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_X_MASK				0x0000ffff
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_Y_SHIFT				16
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_Y_MASK				0xffff0000
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE					0x00000314
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_W_SHIFT				0
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_W_MASK				0x0000ffff
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_H_SHIFT				16
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_H_MASK				0xffff0000
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4					0x00000318
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_X_SHIFT				0
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_X_MASK				0x0000ffff
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_Y_SHIFT				16
+#define   NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_Y_MASK				0xffff0000
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_COLOR(x)						(0x00000400+((x)*4))
+#define  NV03_STRETCHED_IMAGE_FROM_CPU_COLOR__SIZE					0x00000020
+
+
+#define NV04_STRETCHED_IMAGE_FROM_CPU							0x00000076
+
+#define  NV04_STRETCHED_IMAGE_FROM_CPU_BETA4						0x00000194
+#define  NV04_STRETCHED_IMAGE_FROM_CPU_SURFACE						0x00000198
+
+
+#define NV05_STRETCHED_IMAGE_FROM_CPU							0x00000066
+
+#define  NV05_STRETCHED_IMAGE_FROM_CPU_COLOR_CONVERSION					0x000002f8
+
+
+#define NV30_STRETCHED_IMAGE_FROM_CPU							0x00000366
+
+
+
+#define NV40_STRETCHED_IMAGE_FROM_CPU							0x00003066
+
+
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY							0x00000037
+
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_NOP						0x00000100
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_NOTIFY						0x00000104
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_DMA_NOTIFY					0x00000180
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_DMA_IMAGE					0x00000184
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_PATTERN						0x00000188
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_ROP						0x0000018c
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_BETA1						0x00000190
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_SURFACE						0x00000194
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT					0x00000300
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A1R5G5B5				0x00000001
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X1R5G5B5				0x00000002
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A8R8G8B8				0x00000003
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X8R8G8B8				0x00000004
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_V8YB8U8YA8				0x00000005
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_YB8V8YA8U8				0x00000006
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_R5G6B5				0x00000007
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_Y8					0x00000008
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_AY8				0x00000009
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION					0x00000304
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_AND				0x00000000
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_ROP_AND				0x00000001
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_AND				0x00000002
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY				0x00000003
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_PREMULT			0x00000004
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_PREMULT				0x00000005
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT					0x00000308
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X_SHIFT				0
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X_MASK				0x0000ffff
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y_SHIFT				16
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y_MASK				0xffff0000
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE					0x0000030c
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W_SHIFT				0
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W_MASK				0x0000ffff
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_SHIFT				16
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_MASK				0xffff0000
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT					0x00000310
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X_SHIFT				0
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X_MASK				0x0000ffff
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_SHIFT				16
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_MASK				0xffff0000
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE						0x00000314
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W_SHIFT				0
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W_MASK					0x0000ffff
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_SHIFT				16
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_MASK					0xffff0000
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_DU_DX						0x00000318
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_DV_DY						0x0000031c
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_SIZE						0x00000400
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_W_SHIFT					0
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_W_MASK					0x0000ffff
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H_SHIFT					16
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H_MASK					0xffff0000
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT						0x00000404
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_SHIFT				0
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_MASK				0x0000ffff
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_SHIFT				16
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_MASK				0x00ff0000
+#define    NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CENTER				0x00010000
+#define    NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CORNER				0x00020000
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_SHIFT				24
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_MASK				0xff000000
+#define    NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_POINT_SAMPLE			0x00000000
+#define    NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_BILINEAR				0x01000000
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_OFFSET						0x00000408
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_POINT						0x0000040c
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_POINT_U_SHIFT					0
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_POINT_U_MASK					0x0000ffff
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_POINT_V_SHIFT					16
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_POINT_V_MASK					0xffff0000
+
+
+#define NV04_SCALED_IMAGE_FROM_MEMORY							0x00000077
+
+#define  NV04_SCALED_IMAGE_FROM_MEMORY_BETA4						0x00000194
+#define  NV04_SCALED_IMAGE_FROM_MEMORY_SURFACE						0x00000198
+
+
+#define NV05_SCALED_IMAGE_FROM_MEMORY							0x00000063
+
+#define  NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION					0x000002fc
+#define   NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_DITHER				0x00000000
+#define   NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE			0x00000001
+#define   NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_SUBTR_TRUNCATE			0x00000002
+
+
+#define NV10_SCALED_IMAGE_FROM_MEMORY							0x00000089
+
+#define  NV10_SCALED_IMAGE_FROM_MEMORY_WAIT_FOR_IDLE					0x00000108
+
+
+#define NV30_SCALED_IMAGE_FROM_MEMORY							0x00000389
+
+
+
+#define NV40_SCALED_IMAGE_FROM_MEMORY							0x00003089
+
+
+
+#define NV04_DVD_SUBPICTURE								0x00000038
+
+#define  NV04_DVD_SUBPICTURE_NOP							0x00000100
+#define  NV04_DVD_SUBPICTURE_NOTIFY							0x00000104
+#define  NV04_DVD_SUBPICTURE_DMA_NOTIFY							0x00000180
+#define  NV04_DVD_SUBPICTURE_DMA_OVERLAY						0x00000184
+#define  NV04_DVD_SUBPICTURE_DMA_IMAGEIN						0x00000188
+#define  NV04_DVD_SUBPICTURE_DMA_IMAGEOUT						0x0000018c
+#define  NV04_DVD_SUBPICTURE_IMAGEOUT_POINT						0x00000300
+#define   NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_X_SHIFT					0
+#define   NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_X_MASK					0x0000ffff
+#define   NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_Y_SHIFT					16
+#define   NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_Y_MASK					0xffff0000
+#define  NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE						0x00000304
+#define   NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_W_SHIFT					0
+#define   NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_W_MASK					0x0000ffff
+#define   NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_H_SHIFT					16
+#define   NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_H_MASK					0xffff0000
+#define  NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT						0x00000308
+#define   NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_PITCH_SHIFT				0
+#define   NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_PITCH_MASK				0x0000ffff
+#define   NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_COLOR_SHIFT				16
+#define   NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_COLOR_MASK				0xffff0000
+#define  NV04_DVD_SUBPICTURE_IMAGEOUT_OFFSET						0x0000030c
+#define  NV04_DVD_SUBPICTURE_IMAGEIN_DELTA_DU_DX					0x00000310
+#define  NV04_DVD_SUBPICTURE_IMAGEIN_DELTA_DV_DY					0x00000314
+#define  NV04_DVD_SUBPICTURE_IMAGEIN_SIZE						0x00000318
+#define   NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_W_SHIFT					0
+#define   NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_W_MASK					0x0000ffff
+#define   NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_H_SHIFT					16
+#define   NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_H_MASK					0xffff0000
+#define  NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT						0x0000031c
+#define   NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_PITCH_SHIFT				0
+#define   NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_PITCH_MASK					0x0000ffff
+#define   NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_COLOR_SHIFT				16
+#define   NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_COLOR_MASK					0xffff0000
+#define  NV04_DVD_SUBPICTURE_IMAGEIN_OFFSET						0x00000320
+#define  NV04_DVD_SUBPICTURE_IMAGEIN_POINT						0x00000324
+#define   NV04_DVD_SUBPICTURE_IMAGEIN_POINT_U_SHIFT					0
+#define   NV04_DVD_SUBPICTURE_IMAGEIN_POINT_U_MASK					0x0000ffff
+#define   NV04_DVD_SUBPICTURE_IMAGEIN_POINT_V_SHIFT					16
+#define   NV04_DVD_SUBPICTURE_IMAGEIN_POINT_V_MASK					0xffff0000
+#define  NV04_DVD_SUBPICTURE_OVERLAY_DELTA_DU_DX					0x00000328
+#define  NV04_DVD_SUBPICTURE_OVERLAY_DELTA_DV_DY					0x0000032c
+#define  NV04_DVD_SUBPICTURE_OVERLAY_SIZE						0x00000330
+#define   NV04_DVD_SUBPICTURE_OVERLAY_SIZE_W_SHIFT					0
+#define   NV04_DVD_SUBPICTURE_OVERLAY_SIZE_W_MASK					0x0000ffff
+#define   NV04_DVD_SUBPICTURE_OVERLAY_SIZE_H_SHIFT					16
+#define   NV04_DVD_SUBPICTURE_OVERLAY_SIZE_H_MASK					0xffff0000
+#define  NV04_DVD_SUBPICTURE_OVERLAY_FORMAT						0x00000334
+#define   NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_PITCH_SHIFT				0
+#define   NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_PITCH_MASK					0x0000ffff
+#define   NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_COLOR_SHIFT				16
+#define   NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_COLOR_MASK					0xffff0000
+#define  NV04_DVD_SUBPICTURE_OVERLAY_OFFSET						0x00000338
+#define  NV04_DVD_SUBPICTURE_OVERLAY_POINT						0x0000033c
+#define   NV04_DVD_SUBPICTURE_OVERLAY_POINT_U_SHIFT					0
+#define   NV04_DVD_SUBPICTURE_OVERLAY_POINT_U_MASK					0x0000ffff
+#define   NV04_DVD_SUBPICTURE_OVERLAY_POINT_V_SHIFT					16
+#define   NV04_DVD_SUBPICTURE_OVERLAY_POINT_V_MASK					0xffff0000
+
+
+#define NV10_DVD_SUBPICTURE								0x00000088
+
+#define  NV10_DVD_SUBPICTURE_WAIT_FOR_IDLE						0x00000108
+
+
+#define NV04_MEMORY_TO_MEMORY_FORMAT							0x00000039
+
+#define  NV04_MEMORY_TO_MEMORY_FORMAT_NOP						0x00000100
+#define  NV04_MEMORY_TO_MEMORY_FORMAT_NOTIFY						0x00000104
+#define  NV04_MEMORY_TO_MEMORY_FORMAT_DMA_NOTIFY					0x00000180
+#define  NV04_MEMORY_TO_MEMORY_FORMAT_DMA_BUFFER_IN					0x00000184
+#define  NV04_MEMORY_TO_MEMORY_FORMAT_DMA_BUFFER_OUT					0x00000188
+#define  NV04_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN						0x0000030c
+#define  NV04_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT					0x00000310
+#define  NV04_MEMORY_TO_MEMORY_FORMAT_PITCH_IN						0x00000314
+#define  NV04_MEMORY_TO_MEMORY_FORMAT_PITCH_OUT						0x00000318
+#define  NV04_MEMORY_TO_MEMORY_FORMAT_LINE_LENGTH_IN					0x0000031c
+#define  NV04_MEMORY_TO_MEMORY_FORMAT_LINE_COUNT					0x00000320
+#define  NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT						0x00000324
+#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_SHIFT				0
+#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_MASK				0x000000ff
+#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_SHIFT				8
+#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_MASK				0x0000ff00
+#define  NV04_MEMORY_TO_MEMORY_FORMAT_BUF_NOTIFY					0x00000328
+
+
+#define NV50_MEMORY_TO_MEMORY_FORMAT							0x00005039
+
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_SERIALIZE						0x00000110
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_LINEAR_IN						0x00000200
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_IN					0x00000204
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_IN					0x00000208
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_IN					0x0000020c
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_IN					0x00000210
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Z				0x00000214
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN				0x00000218
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_X_SHIFT			0
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_X_MASK			0x0000ffff
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Y_SHIFT			16
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Y_MASK			0xffff0000
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_LINEAR_OUT					0x0000021c
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_OUT					0x00000220
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_OUT					0x00000224
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_OUT					0x00000228
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_OUT					0x0000022c
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Z				0x00000230
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT				0x00000234
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_X_SHIFT			0
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_X_MASK			0x0000ffff
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Y_SHIFT			16
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Y_MASK			0xffff0000
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_HIGH					0x00000238
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_HIGH					0x0000023c
+
+
+#define NV01_MEMORY_LOCAL_BANKED							0x0000003d
+
+
+
+#define NV01_MAPPING_SYSTEM								0x0000003e
+
+
+
+#define NV03_MEMORY_LOCAL_CURSOR							0x0000003f
+
+
+
+#define NV01_MEMORY_LOCAL_LINEAR							0x00000040
+
+
+
+#define NV01_MAPPING_LOCAL								0x00000041
+
+
+
+#define NV04_CONTEXT_SURFACES_2D							0x00000042
+
+#define  NV04_CONTEXT_SURFACES_2D_NOP							0x00000100
+#define  NV04_CONTEXT_SURFACES_2D_NOTIFY						0x00000104
+#define  NV04_CONTEXT_SURFACES_2D_PM_TRIGGER						0x00000140
+#define  NV04_CONTEXT_SURFACES_2D_DMA_NOTIFY						0x00000180
+#define  NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_SOURCE					0x00000184
+#define  NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_DESTIN					0x00000188
+#define  NV04_CONTEXT_SURFACES_2D_FORMAT						0x00000300
+#define   NV04_CONTEXT_SURFACES_2D_FORMAT_Y8						0x00000001
+#define   NV04_CONTEXT_SURFACES_2D_FORMAT_X1R5G5B5_Z1R5G5B5				0x00000002
+#define   NV04_CONTEXT_SURFACES_2D_FORMAT_X1R5G5B5_X1R5G5B5				0x00000003
+#define   NV04_CONTEXT_SURFACES_2D_FORMAT_R5G6B5					0x00000004
+#define   NV04_CONTEXT_SURFACES_2D_FORMAT_Y16						0x00000005
+#define   NV04_CONTEXT_SURFACES_2D_FORMAT_X8R8G8B8_Z8R8G8B8				0x00000006
+#define   NV04_CONTEXT_SURFACES_2D_FORMAT_X8R8G8B8_X8R8G8B8				0x00000007
+#define   NV04_CONTEXT_SURFACES_2D_FORMAT_X1A7R8G8B8_Z1A7R8G8B8				0x00000008
+#define   NV04_CONTEXT_SURFACES_2D_FORMAT_X1A7R8G8B8_X1A7R8G8B8				0x00000009
+#define   NV04_CONTEXT_SURFACES_2D_FORMAT_A8R8G8B8					0x0000000a
+#define   NV04_CONTEXT_SURFACES_2D_FORMAT_Y32						0x0000000b
+#define  NV04_CONTEXT_SURFACES_2D_PITCH							0x00000304
+#define   NV04_CONTEXT_SURFACES_2D_PITCH_SOURCE_SHIFT					0
+#define   NV04_CONTEXT_SURFACES_2D_PITCH_SOURCE_MASK					0x0000ffff
+#define   NV04_CONTEXT_SURFACES_2D_PITCH_DESTIN_SHIFT					16
+#define   NV04_CONTEXT_SURFACES_2D_PITCH_DESTIN_MASK					0xffff0000
+#define  NV04_CONTEXT_SURFACES_2D_OFFSET_SOURCE						0x00000308
+#define  NV04_CONTEXT_SURFACES_2D_OFFSET_DESTIN						0x0000030c
+
+
+#define NV10_CONTEXT_SURFACES_2D							0x00000062
+
+
+
+#define NV30_CONTEXT_SURFACES_2D							0x00000362
+
+
+
+#define NV40_CONTEXT_SURFACES_2D							0x00003062
+
+
+
+#define NV03_CONTEXT_ROP								0x00000043
+
+#define  NV03_CONTEXT_ROP_NOP								0x00000100
+#define  NV03_CONTEXT_ROP_NOTIFY							0x00000104
+#define  NV03_CONTEXT_ROP_DMA_NOTIFY							0x00000180
+#define  NV03_CONTEXT_ROP_ROP								0x00000300
+#define   NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_SHIFT					0
+#define   NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_MASK					0x0000000f
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_CLEAR					0x00000000
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_NOR					0x00000001
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_AND_INVERTED				0x00000002
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_COPY_INVERTED				0x00000003
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_AND_REVERSE				0x00000004
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_INVERT					0x00000005
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_XOR					0x00000006
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_NAND					0x00000007
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_AND					0x00000008
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_EQUI					0x00000009
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_NOOP					0x0000000a
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_OR_INVERTED				0x0000000b
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_COPY					0x0000000c
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_OR_REVERSE					0x0000000d
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_OR						0x0000000e
+#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_SET					0x0000000f
+#define   NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_SHIFT					4
+#define   NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_MASK					0x000000f0
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_CLEAR					0x00000000
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_NOR					0x00000010
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_AND_INVERTED				0x00000020
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_COPY_INVERTED				0x00000030
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_AND_REVERSE				0x00000040
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_INVERT					0x00000050
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_XOR					0x00000060
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_NAND					0x00000070
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_AND					0x00000080
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_EQUI					0x00000090
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_NOOP					0x000000a0
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_OR_INVERTED				0x000000b0
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_COPY					0x000000c0
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_OR_REVERSE					0x000000d0
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_OR						0x000000e0
+#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_SET					0x000000f0
+
+
+#define NV04_IMAGE_PATTERN								0x00000044
+
+#define  NV04_IMAGE_PATTERN_NOP								0x00000100
+#define  NV04_IMAGE_PATTERN_NOTIFY							0x00000104
+#define  NV04_IMAGE_PATTERN_DMA_NOTIFY							0x00000180
+#define  NV04_IMAGE_PATTERN_COLOR_FORMAT						0x00000300
+#define   NV04_IMAGE_PATTERN_COLOR_FORMAT_A16R5G6B5					0x00000001
+#define   NV04_IMAGE_PATTERN_COLOR_FORMAT_X16A1R5G5B5					0x00000002
+#define   NV04_IMAGE_PATTERN_COLOR_FORMAT_A8R8G8B8					0x00000003
+#define  NV04_IMAGE_PATTERN_MONOCHROME_FORMAT						0x00000304
+#define   NV04_IMAGE_PATTERN_MONOCHROME_FORMAT_CGA6					0x00000001
+#define   NV04_IMAGE_PATTERN_MONOCHROME_FORMAT_LE					0x00000002
+#define  NV04_IMAGE_PATTERN_MONOCHROME_SHAPE						0x00000308
+#define   NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_8X8					0x00000000
+#define   NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_64X1					0x00000001
+#define   NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_1X64					0x00000002
+#define  NV04_IMAGE_PATTERN_PATTERN_SELECT						0x0000030c
+#define   NV04_IMAGE_PATTERN_PATTERN_SELECT_MONO					0x00000001
+#define   NV04_IMAGE_PATTERN_PATTERN_SELECT_COLOR					0x00000002
+#define  NV04_IMAGE_PATTERN_MONOCHROME_COLOR0						0x00000310
+#define  NV04_IMAGE_PATTERN_MONOCHROME_COLOR1						0x00000314
+#define  NV04_IMAGE_PATTERN_MONOCHROME_PATTERN0						0x00000318
+#define  NV04_IMAGE_PATTERN_MONOCHROME_PATTERN1						0x0000031c
+#define  NV04_IMAGE_PATTERN_PATTERN_Y8(x)						(0x00000400+((x)*4))
+#define  NV04_IMAGE_PATTERN_PATTERN_Y8__SIZE						0x00000010
+#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y0_SHIFT					0
+#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y0_MASK						0x000000ff
+#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y1_SHIFT					8
+#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y1_MASK						0x0000ff00
+#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y2_SHIFT					16
+#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y2_MASK						0x00ff0000
+#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y3_SHIFT					24
+#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y3_MASK						0xff000000
+#define  NV04_IMAGE_PATTERN_PATTERN_R5G6B5(x)						(0x00000500+((x)*4))
+#define  NV04_IMAGE_PATTERN_PATTERN_R5G6B5__SIZE					0x00000020
+#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B0_SHIFT					0
+#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B0_MASK					0x0000001f
+#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G0_SHIFT					5
+#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G0_MASK					0x000007e0
+#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R0_SHIFT					11
+#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R0_MASK					0x0000f800
+#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B1_SHIFT					16
+#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B1_MASK					0x001f0000
+#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G1_SHIFT					21
+#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G1_MASK					0x07e00000
+#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R1_SHIFT					27
+#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R1_MASK					0xf8000000
+#define  NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5(x)						(0x00000600+((x)*4))
+#define  NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5__SIZE					0x00000020
+#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B0_SHIFT					0
+#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B0_MASK					0x0000001f
+#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G0_SHIFT					5
+#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G0_MASK					0x000003e0
+#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R0_SHIFT					10
+#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R0_MASK					0x00007c00
+#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B1_SHIFT					16
+#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B1_MASK					0x001f0000
+#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G1_SHIFT					21
+#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G1_MASK					0x03e00000
+#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R1_SHIFT					26
+#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R1_MASK					0x7c000000
+#define  NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8(x)						(0x00000700+((x)*4))
+#define  NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8__SIZE					0x00000040
+#define   NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_B_SHIFT					0
+#define   NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_B_MASK					0x000000ff
+#define   NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_G_SHIFT					8
+#define   NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_G_MASK					0x0000ff00
+#define   NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_R_SHIFT					16
+#define   NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_R_MASK					0x00ff0000
+
+
+#define NV03_VIDEO_LUT_CURSOR_DAC							0x00000046
+
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SYNCHRONIZE						0x00000100
+#define  NV03_VIDEO_LUT_CURSOR_DAC_STOP_IMAGE						0x00000104
+#define  NV03_VIDEO_LUT_CURSOR_DAC_STOP_CURSOR						0x00000108
+#define  NV03_VIDEO_LUT_CURSOR_DAC_STOP_DAC						0x0000010c
+#define  NV03_VIDEO_LUT_CURSOR_DAC_DMA_NOTIFY						0x00000180
+#define  NV03_VIDEO_LUT_CURSOR_DAC_DMA_IMAGE(x)						(0x00000184+((x)*4))
+#define  NV03_VIDEO_LUT_CURSOR_DAC_DMA_IMAGE__SIZE					0x00000002
+#define  NV03_VIDEO_LUT_CURSOR_DAC_DMA_LUT(x)						(0x0000018c+((x)*4))
+#define  NV03_VIDEO_LUT_CURSOR_DAC_DMA_LUT__SIZE					0x00000002
+#define  NV03_VIDEO_LUT_CURSOR_DAC_DMA_CURSOR(x)					(0x00000194+((x)*4))
+#define  NV03_VIDEO_LUT_CURSOR_DAC_DMA_CURSOR__SIZE					0x00000002
+#define  NV03_VIDEO_LUT_CURSOR_DAC_GET							0x000002fc
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_OFFSET(x)					(0x00000300+((x)*8))
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_OFFSET__SIZE				0x00000002
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT(x)					(0x00000304+((x)*8))
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT__SIZE				0x00000002
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_PITCH_SHIFT			0
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_PITCH_MASK				0x0000ffff
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_COLOR_SHIFT			16
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_COLOR_MASK				0x0fff0000
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_NOTIFY_SHIFT			28
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_NOTIFY_MASK			0xf0000000
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_OFFSET(x)					(0x00000340+((x)*12))
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_OFFSET__SIZE				0x00000002
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT(x)				(0x00000344+((x)*12))
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT__SIZE				0x00000002
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_X_SHIFT			0
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_X_MASK				0x0000ffff
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_Y_SHIFT			16
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_Y_MASK				0xffff0000
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_FORMAT(x)					(0x00000348+((x)*12))
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_FORMAT__SIZE				0x00000002
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A				0x00000358
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A_X_SHIFT			0
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A_X_MASK			0x0000ffff
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A_Y_SHIFT			16
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A_Y_MASK			0xffff0000
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE(x)				(0x00000380+((x)*16))
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE__SIZE				0x00000002
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE_W_SHIFT				0
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE_W_MASK				0x0000ffff
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE_H_SHIFT				16
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE_H_MASK				0xffff0000
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC(x)					(0x00000384+((x)*16))
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC__SIZE					0x00000002
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_START_SHIFT				0
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_START_MASK				0x0000ffff
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_WIDTH_SHIFT				16
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_WIDTH_MASK				0x0fff0000
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_POLARITY_SHIFT			28
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_POLARITY_MASK				0xf0000000
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC(x)					(0x00000388+((x)*16))
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC__SIZE					0x00000002
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_START_SHIFT				0
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_START_MASK				0x0000ffff
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_WIDTH_SHIFT				16
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_WIDTH_MASK				0x0fff0000
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_POLARITY_SHIFT			28
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_POLARITY_MASK				0xf0000000
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE(x)				(0x0000038c+((x)*16))
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE__SIZE				0x00000002
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_WIDTH_SHIFT			0
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_WIDTH_MASK			0x0000ffff
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_HEIGHT_SHIFT			16
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_HEIGHT_MASK			0x0fff0000
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_NOTIFY_SHIFT			28
+#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_NOTIFY_MASK			0xf0000000
+#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_PIXEL_CLOCK					0x000003a0
+
+
+#define NV03_TEXTURED_TRIANGLE								0x00000048
+
+#define  NV03_TEXTURED_TRIANGLE_NOP							0x00000100
+#define  NV03_TEXTURED_TRIANGLE_NOTIFY							0x00000104
+#define  NV03_TEXTURED_TRIANGLE_PATCH							0x0000010c
+#define  NV03_TEXTURED_TRIANGLE_DMA_NOTIFY						0x00000180
+#define  NV03_TEXTURED_TRIANGLE_DMA_TEXTURE						0x00000184
+#define  NV03_TEXTURED_TRIANGLE_CLIP_RECTANGLE						0x00000188
+#define  NV03_TEXTURED_TRIANGLE_SURFACE							0x0000018c
+#define  NV03_TEXTURED_TRIANGLE_TEXTURE_OFFSET						0x00000304
+#define  NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT						0x00000308
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_MASK_SHIFT			0
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_MASK_MASK			0x0000ffff
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_ENABLE_SHIFT			16
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_ENABLE_MASK			0x000f0000
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_SHIFT				20
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_MASK				0x00f00000
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MIN_SHIFT				24
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MIN_MASK				0x0f000000
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MAX_SHIFT				28
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MAX_MASK				0xf0000000
+#define  NV03_TEXTURED_TRIANGLE_FILTER							0x0000030c
+#define   NV03_TEXTURED_TRIANGLE_FILTER_SPREAD_X_SHIFT					0
+#define   NV03_TEXTURED_TRIANGLE_FILTER_SPREAD_X_MASK					0x0000001f
+#define   NV03_TEXTURED_TRIANGLE_FILTER_SPREAD_Y_SHIFT					8
+#define   NV03_TEXTURED_TRIANGLE_FILTER_SPREAD_Y_MASK					0x00001f00
+#define   NV03_TEXTURED_TRIANGLE_FILTER_SIZE_ADJUST_SHIFT				16
+#define   NV03_TEXTURED_TRIANGLE_FILTER_SIZE_ADJUST_MASK				0x00ff0000
+#define  NV03_TEXTURED_TRIANGLE_FOG_COLOR						0x00000310
+#define   NV03_TEXTURED_TRIANGLE_FOG_COLOR_B_SHIFT					0
+#define   NV03_TEXTURED_TRIANGLE_FOG_COLOR_B_MASK					0x000000ff
+#define   NV03_TEXTURED_TRIANGLE_FOG_COLOR_G_SHIFT					8
+#define   NV03_TEXTURED_TRIANGLE_FOG_COLOR_G_MASK					0x0000ff00
+#define   NV03_TEXTURED_TRIANGLE_FOG_COLOR_R_SHIFT					16
+#define   NV03_TEXTURED_TRIANGLE_FOG_COLOR_R_MASK					0x00ff0000
+#define  NV03_TEXTURED_TRIANGLE_CONTROL_OUT						0x00000314
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_INTERPOLATOR_SHIFT				0
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_INTERPOLATOR_MASK				0x0000000f
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_U_SHIFT				4
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_U_MASK				0x00000030
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_V_SHIFT				6
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_V_MASK				0x000000c0
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_SOURCE_COLOR_SHIFT				8
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_SOURCE_COLOR_MASK				0x00000f00
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_CULLING_SHIFT				12
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_CULLING_MASK				0x00007000
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_PERSPECTIVE_ENABLE			(1 << 15)
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_FUNC_SHIFT				16
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_FUNC_MASK				0x000f0000
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_WRITE_ENABLE_SHIFT			20
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_WRITE_ENABLE_MASK			0x00f00000
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_COLOR_WRITE_ENABLE_SHIFT			24
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_COLOR_WRITE_ENABLE_MASK			0x07000000
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_ROP_SHIFT					27
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_ROP_MASK					0x18000000
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_BETA					(1 << 29)
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_DST_BLEND					(1 << 30)
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_SRC_BLEND					(1 << 31)
+#define  NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL						0x00000318
+#define   NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_REF_SHIFT				0
+#define   NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_REF_MASK				0x000000ff
+#define   NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_FUNC_SHIFT				8
+#define   NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_FUNC_MASK				0xffffff00
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR(x)					(0x00001000+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR__SIZE					0x00000080
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I0_SHIFT				0
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I0_MASK				0x0000000f
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I1_SHIFT				4
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I1_MASK				0x000000f0
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I2_SHIFT				8
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I2_MASK				0x00000f00
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I3_SHIFT				12
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I3_MASK				0x0000f000
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I4_SHIFT				16
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I4_MASK				0x000f0000
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I5_SHIFT				20
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I5_MASK				0x00f00000
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_SHIFT				24
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_MASK				0xff000000
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_COLOR(x)					(0x00001004+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_COLOR__SIZE					0x00000080
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SX(x)						(0x00001008+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SX__SIZE					0x00000080
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SY(x)						(0x0000100c+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SY__SIZE					0x00000080
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SZ(x)						(0x00001010+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SZ__SIZE					0x00000080
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_RHW(x)						(0x00001014+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_RHW__SIZE					0x00000080
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_TU(x)						(0x00001018+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_TU__SIZE					0x00000080
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_TV(x)						(0x0000101c+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_TV__SIZE					0x00000080
+
+
+#define NV04_GDI_RECTANGLE_TEXT								0x0000004a
+
+#define  NV04_GDI_RECTANGLE_TEXT_NOP							0x00000100
+#define  NV04_GDI_RECTANGLE_TEXT_NOTIFY							0x00000104
+#define  NV04_GDI_RECTANGLE_TEXT_PATCH							0x0000010c
+#define  NV04_GDI_RECTANGLE_TEXT_PM_TRIGGER						0x00000140
+#define  NV04_GDI_RECTANGLE_TEXT_DMA_NOTIFY						0x00000180
+#define  NV04_GDI_RECTANGLE_TEXT_DMA_FONTS						0x00000184
+#define  NV04_GDI_RECTANGLE_TEXT_PATTERN						0x00000188
+#define  NV04_GDI_RECTANGLE_TEXT_ROP							0x0000018c
+#define  NV04_GDI_RECTANGLE_TEXT_BETA1							0x00000190
+#define  NV04_GDI_RECTANGLE_TEXT_BETA4							0x00000194
+#define  NV04_GDI_RECTANGLE_TEXT_SURFACE						0x00000198
+#define  NV04_GDI_RECTANGLE_TEXT_OPERATION						0x000002fc
+#define   NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY_AND					0x00000000
+#define   NV04_GDI_RECTANGLE_TEXT_OPERATION_ROP_AND					0x00000001
+#define   NV04_GDI_RECTANGLE_TEXT_OPERATION_BLEND_AND					0x00000002
+#define   NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY					0x00000003
+#define   NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY_PREMULT				0x00000004
+#define   NV04_GDI_RECTANGLE_TEXT_OPERATION_BLEND_PREMULT				0x00000005
+#define  NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT						0x00000300
+#define   NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A16R5G6B5				0x00000001
+#define   NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_X16A1R5G5B5				0x00000002
+#define   NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A8R8G8B8					0x00000003
+#define  NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT					0x00000304
+#define   NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT_CGA6				0x00000001
+#define   NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT_LE					0x00000002
+#define  NV04_GDI_RECTANGLE_TEXT_COLOR1_A						0x000003fc
+#define  NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT(x)				(0x00000400+((x)*8))
+#define  NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT__SIZE			0x00000020
+#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y_SHIFT			0
+#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y_MASK			0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X_SHIFT			16
+#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X_MASK			0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE(x)				(0x00000404+((x)*8))
+#define  NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE__SIZE				0x00000020
+#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H_SHIFT			0
+#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H_MASK			0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W_SHIFT			16
+#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W_MASK			0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0						0x000005f4
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_L_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_L_MASK					0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_T_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_T_MASK					0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1						0x000005f8
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_R_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_R_MASK					0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_B_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_B_MASK					0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_COLOR1_B						0x000005fc
+#define  NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0(x)				(0x00000600+((x)*8))
+#define  NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0__SIZE			0x00000020
+#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L_SHIFT			0
+#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L_MASK			0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T_SHIFT			16
+#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T_MASK			0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1(x)				(0x00000604+((x)*8))
+#define  NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1__SIZE			0x00000020
+#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R_SHIFT			0
+#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R_MASK			0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B_SHIFT			16
+#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B_MASK			0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0						0x000007ec
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L_MASK					0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T_MASK					0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1						0x000007f0
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R_MASK					0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B_MASK					0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_COLOR1_C						0x000007f4
+#define  NV04_GDI_RECTANGLE_TEXT_SIZE_C							0x000007f8
+#define   NV04_GDI_RECTANGLE_TEXT_SIZE_C_W_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_SIZE_C_W_MASK						0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_SIZE_C_H_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_SIZE_C_H_MASK						0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_POINT_C						0x000007fc
+#define   NV04_GDI_RECTANGLE_TEXT_POINT_C_X_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_POINT_C_X_MASK					0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_POINT_C_Y_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_POINT_C_Y_MASK					0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C(x)					(0x00000800+((x)*4))
+#define  NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C__SIZE				0x00000080
+#define  NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0						0x00000be4
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L_MASK					0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T_MASK					0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1						0x00000be8
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R_MASK					0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B_MASK					0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_COLOR0_E						0x00000bec
+#define  NV04_GDI_RECTANGLE_TEXT_COLOR1_E						0x00000bf0
+#define  NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E						0x00000bf4
+#define   NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_W_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_W_MASK					0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_H_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_H_MASK					0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E						0x00000bf8
+#define   NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W_MASK					0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H_MASK					0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_POINT_E						0x00000bfc
+#define   NV04_GDI_RECTANGLE_TEXT_POINT_E_X_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_POINT_E_X_MASK					0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_POINT_E_Y_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_POINT_E_Y_MASK					0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E(x)				(0x00000c00+((x)*4))
+#define  NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E__SIZE				0x00000080
+#define  NV04_GDI_RECTANGLE_TEXT_FONT_F							0x00000ff0
+#define   NV04_GDI_RECTANGLE_TEXT_FONT_F_OFFSET_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_FONT_F_OFFSET_MASK					0x0fffffff
+#define   NV04_GDI_RECTANGLE_TEXT_FONT_F_PITCH_SHIFT					28
+#define   NV04_GDI_RECTANGLE_TEXT_FONT_F_PITCH_MASK					0xf0000000
+#define  NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0						0x00000ff4
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_L_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_L_MASK					0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_T_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_T_MASK					0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1						0x00000ff8
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_R_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_R_MASK					0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_B_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_B_MASK					0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_COLOR1_F						0x00000ffc
+#define  NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F(x)					(0x00001000+((x)*4))
+#define  NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F__SIZE				0x00000100
+#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_INDEX_SHIFT			0
+#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_INDEX_MASK				0x000000ff
+#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_X_SHIFT				8
+#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_X_MASK				0x000fff00
+#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_Y_SHIFT				20
+#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_Y_MASK				0xfff00000
+#define  NV04_GDI_RECTANGLE_TEXT_FONT_G							0x000017f0
+#define   NV04_GDI_RECTANGLE_TEXT_FONT_G_OFFSET_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_FONT_G_OFFSET_MASK					0x0fffffff
+#define   NV04_GDI_RECTANGLE_TEXT_FONT_G_PITCH_SHIFT					28
+#define   NV04_GDI_RECTANGLE_TEXT_FONT_G_PITCH_MASK					0xf0000000
+#define  NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0						0x000017f4
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_L_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_L_MASK					0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_T_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_T_MASK					0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1						0x000017f8
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_R_SHIFT					0
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_R_MASK					0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_B_SHIFT					16
+#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_B_MASK					0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_COLOR1_G						0x000017fc
+#define  NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT(x)				(0x00001800+((x)*8))
+#define  NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT__SIZE				0x00000100
+#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_X_SHIFT			0
+#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_X_MASK			0x0000ffff
+#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_Y_SHIFT			16
+#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_Y_MASK			0xffff0000
+#define  NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_INDEX(x)				(0x00001804+((x)*8))
+#define  NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_INDEX__SIZE				0x00000100
+
+
+#define NV03_GDI_RECTANGLE_TEXT								0x0000004b
+
+#define  NV03_GDI_RECTANGLE_TEXT_NOP							0x00000100
+#define  NV03_GDI_RECTANGLE_TEXT_NOTIFY							0x00000104
+#define  NV03_GDI_RECTANGLE_TEXT_DMA_NOTIFY						0x00000180
+#define  NV03_GDI_RECTANGLE_TEXT_PATTERN						0x00000184
+#define  NV03_GDI_RECTANGLE_TEXT_ROP							0x00000188
+#define  NV03_GDI_RECTANGLE_TEXT_BETA1							0x0000018c
+#define  NV03_GDI_RECTANGLE_TEXT_SURFACE						0x00000190
+#define  NV03_GDI_RECTANGLE_TEXT_OPERATION						0x000002fc
+#define  NV03_GDI_RECTANGLE_TEXT_COLOR_FORMAT						0x00000300
+#define  NV03_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT					0x00000304
+#define  NV03_GDI_RECTANGLE_TEXT_COLOR1_A						0x000003fc
+#define  NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT				0x00000400
+#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y_SHIFT			0
+#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y_MASK			0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X_SHIFT			16
+#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X_MASK			0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE				0x00000404
+#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H_SHIFT			0
+#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H_MASK			0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W_SHIFT			16
+#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W_MASK			0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B						0x000007f4
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_L_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_L_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_T_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_T_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B						0x000007f8
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_R_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_R_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_B_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_B_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_COLOR1_B						0x000007fc
+#define  NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0				0x00000800
+#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L_SHIFT			0
+#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L_MASK			0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T_SHIFT			16
+#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T_MASK			0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1				0x00000804
+#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R_SHIFT			0
+#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R_MASK			0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B_SHIFT			16
+#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B_MASK			0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0						0x00000bec
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1						0x00000bf0
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_COLOR1_C						0x00000bf4
+#define  NV03_GDI_RECTANGLE_TEXT_SIZE_C							0x00000bf8
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_C_W_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_C_W_MASK						0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_C_H_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_C_H_MASK						0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_POINT_C						0x00000bfc
+#define   NV03_GDI_RECTANGLE_TEXT_POINT_C_X_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_POINT_C_X_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_POINT_C_Y_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_POINT_C_Y_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C(x)					(0x00000c00+((x)*4))
+#define  NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C__SIZE				0x00000020
+#define  NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0						0x00000fe8
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_L_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_L_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_T_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_T_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1						0x00000fec
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_R_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_R_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_B_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_B_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_COLOR1_D						0x00000ff0
+#define  NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D						0x00000ff4
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_W_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_W_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_H_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_H_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D						0x00000ff8
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_W_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_W_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_H_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_H_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_POINT_D						0x00000ffc
+#define   NV03_GDI_RECTANGLE_TEXT_POINT_D_X_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_POINT_D_X_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_POINT_D_Y_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_POINT_D_Y_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_D(x)					(0x00001000+((x)*4))
+#define  NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_D__SIZE				0x00000020
+#define  NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0						0x000013e4
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1						0x000013e8
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_COLOR0_E						0x000013ec
+#define  NV03_GDI_RECTANGLE_TEXT_COLOR1_E						0x000013f0
+#define  NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E						0x000013f4
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_W_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_W_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_H_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_H_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E						0x000013f8
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_POINT_E						0x000013fc
+#define   NV03_GDI_RECTANGLE_TEXT_POINT_E_X_SHIFT					0
+#define   NV03_GDI_RECTANGLE_TEXT_POINT_E_X_MASK					0x0000ffff
+#define   NV03_GDI_RECTANGLE_TEXT_POINT_E_Y_SHIFT					16
+#define   NV03_GDI_RECTANGLE_TEXT_POINT_E_Y_MASK					0xffff0000
+#define  NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E(x)				(0x00001400+((x)*4))
+#define  NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E__SIZE				0x00000020
+
+
+#define NV04_SWIZZLED_SURFACE								0x00000052
+
+#define  NV04_SWIZZLED_SURFACE_NOP							0x00000100
+#define  NV04_SWIZZLED_SURFACE_NOTIFY							0x00000104
+#define  NV04_SWIZZLED_SURFACE_DMA_NOTIFY						0x00000180
+#define  NV04_SWIZZLED_SURFACE_DMA_IMAGE						0x00000184
+#define  NV04_SWIZZLED_SURFACE_FORMAT							0x00000300
+#define   NV04_SWIZZLED_SURFACE_FORMAT_COLOR_SHIFT					0
+#define   NV04_SWIZZLED_SURFACE_FORMAT_COLOR_MASK					0x000000ff
+#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y8					0x00000001
+#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1R5G5B5_Z1R5G5B5				0x00000002
+#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1R5G5B5_X1R5G5B5				0x00000003
+#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_R5G6B5					0x00000004
+#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y16					0x00000005
+#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X8R8G8B8_Z8R8G8B8				0x00000006
+#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X8R8G8B8_X8R8G8B8				0x00000007
+#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1A7R8G8B8_Z1A7R8G8B8			0x00000008
+#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1A7R8G8B8_X1A7R8G8B8			0x00000009
+#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_A8R8G8B8					0x0000000a
+#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y32					0x0000000b
+#define   NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_U_SHIFT				16
+#define   NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_U_MASK					0x00ff0000
+#define   NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_V_SHIFT				24
+#define   NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_V_MASK					0xff000000
+#define  NV04_SWIZZLED_SURFACE_OFFSET							0x00000304
+
+
+#define NV20_SWIZZLED_SURFACE								0x0000009e
+
+
+
+#define NV30_SWIZZLED_SURFACE								0x0000039e
+
+
+
+#define NV40_SWIZZLED_SURFACE								0x0000309e
+
+
+
+#define NV04_CONTEXT_SURFACES_3D							0x00000053
+
+#define  NV04_CONTEXT_SURFACES_3D_NOP							0x00000100
+#define  NV04_CONTEXT_SURFACES_3D_NOTIFY						0x00000104
+#define  NV04_CONTEXT_SURFACES_3D_DMA_NOTIFY						0x00000180
+#define  NV04_CONTEXT_SURFACES_3D_DMA_COLOR						0x00000184
+#define  NV04_CONTEXT_SURFACES_3D_DMA_ZETA						0x00000188
+#define  NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL					0x000002f8
+#define   NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_X_SHIFT				0
+#define   NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_X_MASK				0x0000ffff
+#define   NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_W_SHIFT				16
+#define   NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_W_MASK				0xffff0000
+#define  NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL						0x000002fc
+#define   NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_Y_SHIFT				0
+#define   NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_Y_MASK					0x0000ffff
+#define   NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_H_SHIFT				16
+#define   NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_H_MASK					0xffff0000
+#define  NV04_CONTEXT_SURFACES_3D_FORMAT						0x00000300
+#define   NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_SHIFT					0
+#define   NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_MASK					0x000000ff
+#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1R5G5B5_Z1R5G5B5			0x00000001
+#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1R5G5B5_X1R5G5B5			0x00000002
+#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_R5G6B5					0x00000003
+#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X8R8G8B8_Z8R8G8B8			0x00000004
+#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X8R8G8B8_X8R8G8B8			0x00000005
+#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1A7R8G8B8_Z1A7R8G8B8			0x00000006
+#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1A7R8G8B8_X1A7R8G8B8			0x00000007
+#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_A8R8G8B8				0x00000008
+#define   NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_SHIFT					8
+#define   NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_MASK					0x0000ff00
+#define    NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_PITCH					0x00000100
+#define    NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_SWIZZLE					0x00000200
+#define   NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_U_SHIFT				16
+#define   NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_U_MASK				0x00ff0000
+#define   NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_V_SHIFT				24
+#define   NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_V_MASK				0xff000000
+#define  NV04_CONTEXT_SURFACES_3D_CLIP_SIZE						0x00000304
+#define   NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_W_SHIFT					0
+#define   NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_W_MASK					0x0000ffff
+#define   NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_H_SHIFT					16
+#define   NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_H_MASK					0xffff0000
+#define  NV04_CONTEXT_SURFACES_3D_PITCH							0x00000308
+#define   NV04_CONTEXT_SURFACES_3D_PITCH_COLOR_SHIFT					0
+#define   NV04_CONTEXT_SURFACES_3D_PITCH_COLOR_MASK					0x0000ffff
+#define   NV04_CONTEXT_SURFACES_3D_PITCH_ZETA_SHIFT					16
+#define   NV04_CONTEXT_SURFACES_3D_PITCH_ZETA_MASK					0xffff0000
+#define  NV04_CONTEXT_SURFACES_3D_OFFSET_COLOR						0x0000030c
+#define  NV04_CONTEXT_SURFACES_3D_OFFSET_ZETA						0x00000310
+
+
+#define NV10_CONTEXT_SURFACES_3D							0x00000093
+
+
+
+#define NV04_TEXTURED_TRIANGLE								0x00000054
+
+#define  NV04_TEXTURED_TRIANGLE_NOP							0x00000100
+#define  NV04_TEXTURED_TRIANGLE_NOTIFY							0x00000104
+#define  NV04_TEXTURED_TRIANGLE_DMA_NOTIFY						0x00000180
+#define  NV04_TEXTURED_TRIANGLE_DMA_A							0x00000184
+#define  NV04_TEXTURED_TRIANGLE_DMA_B							0x00000188
+#define  NV04_TEXTURED_TRIANGLE_SURFACE							0x0000018c
+#define  NV04_TEXTURED_TRIANGLE_COLORKEY						0x00000300
+#define  NV04_TEXTURED_TRIANGLE_OFFSET							0x00000304
+#define  NV04_TEXTURED_TRIANGLE_FORMAT							0x00000308
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_DMA_A						(1 <<  0)
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_DMA_B						(1 <<  1)
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_KEY_MATCH_SHIFT				2
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_KEY_MATCH_MASK				0x0000000c
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_SHIFT				4
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_MASK					0x00000030
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_CENTER				0x00000010
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_CORNER				0x00000020
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_SHIFT				6
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_MASK					0x000000c0
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_CENTER				0x00000040
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_CORNER				0x00000080
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_SHIFT					8
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_MASK					0x00000f00
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_Y8					0x00000100
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_A1R5G5B5					0x00000200
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_X1R5G5B5					0x00000300
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_A4R4G4B4					0x00000400
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_R5G6B5					0x00000500
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_A8R8G8B8					0x00000600
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_X8R8G8B8					0x00000700
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_MIPMAP_LEVELS_SHIFT				12
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_MIPMAP_LEVELS_MASK				0x0000f000
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_U_SHIFT				16
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_U_MASK				0x000f0000
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_V_SHIFT				20
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_V_MASK				0x00f00000
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_SHIFT					24
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_MASK					0x07000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_REPEAT				0x01000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_MIRRORED_REPEAT			0x02000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP_TO_EDGE				0x03000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP_TO_BORDER			0x04000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP					0x05000000
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_WRAPU						(1 << 27)
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_SHIFT					28
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_MASK					0x70000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_REPEAT				0x10000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_MIRRORED_REPEAT			0x20000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP_TO_EDGE				0x30000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP_TO_BORDER			0x40000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP					0x50000000
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_WRAPV						(1 << 31)
+#define  NV04_TEXTURED_TRIANGLE_FILTER							0x0000030c
+#define   NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_X_SHIFT				0
+#define   NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_X_MASK				0x000000ff
+#define   NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_Y_SHIFT				8
+#define   NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_Y_MASK				0x00007f00
+#define   NV04_TEXTURED_TRIANGLE_FILTER_MIPMAP_DITHER_ENABLE				(1 << 15)
+#define   NV04_TEXTURED_TRIANGLE_FILTER_MIPMAP_LODBIAS_SHIFT				16
+#define   NV04_TEXTURED_TRIANGLE_FILTER_MIPMAP_LODBIAS_MASK				0x00ff0000
+#define   NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_SHIFT					24
+#define   NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_MASK					0x07000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST					0x01000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR					0x02000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST			0x03000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST			0x04000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR			0x05000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR			0x06000000
+#define   NV04_TEXTURED_TRIANGLE_FILTER_ANISOTROPIC_MINIFY_ENABLE			(1 << 27)
+#define   NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY_SHIFT					28
+#define   NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY_MASK					0x70000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY_NEAREST				0x10000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY_LINEAR					0x20000000
+#define   NV04_TEXTURED_TRIANGLE_FILTER_ANISOTROPIC_MAGNIFY_ENABLE			(1 << 31)
+#define  NV04_TEXTURED_TRIANGLE_BLEND							0x00000310
+#define   NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_SHIFT				0
+#define   NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_MASK					0x0000000f
+#define   NV04_TEXTURED_TRIANGLE_BLEND_MASK_BIT_SHIFT					4
+#define   NV04_TEXTURED_TRIANGLE_BLEND_MASK_BIT_MASK					0x00000030
+#define   NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_SHIFT					6
+#define   NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_MASK					0x000000c0
+#define    NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_FLAT					0x00000040
+#define    NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_GOURAUD				0x00000080
+#define    NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_PHONG				0x000000c0
+#define   NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE			(1 <<  8)
+#define   NV04_TEXTURED_TRIANGLE_BLEND_SPECULAR_ENABLE					(1 << 12)
+#define   NV04_TEXTURED_TRIANGLE_BLEND_FOG_ENABLE					(1 << 16)
+#define   NV04_TEXTURED_TRIANGLE_BLEND_BLEND_ENABLE					(1 << 20)
+#define   NV04_TEXTURED_TRIANGLE_BLEND_SRC_SHIFT					24
+#define   NV04_TEXTURED_TRIANGLE_BLEND_SRC_MASK						0x0f000000
+#define   NV04_TEXTURED_TRIANGLE_BLEND_DST_SHIFT					28
+#define   NV04_TEXTURED_TRIANGLE_BLEND_DST_MASK						0xf0000000
+#define  NV04_TEXTURED_TRIANGLE_CONTROL							0x00000314
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_REF_SHIFT				0
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_REF_MASK					0x000000ff
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_SHIFT				8
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_MASK				0x00000f00
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_ENABLE					(1 << 12)
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_ORIGIN						(1 << 13)
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_Z_ENABLE					(1 << 14)
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_SHIFT					16
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_MASK					0x000f0000
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_SHIFT				20
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_MASK					0x00300000
+#define    NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_BOTH				0x00000000
+#define    NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_NONE				0x00100000
+#define    NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_CW					0x00200000
+#define    NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_CCW					0x00300000
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_DITHER_ENABLE					(1 << 22)
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_Z_PERSPECTIVE_ENABLE				(1 << 23)
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_Z_WRITE					(1 << 24)
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_Z_FORMAT_SHIFT					30
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_Z_FORMAT_MASK					0xc0000000
+#define  NV04_TEXTURED_TRIANGLE_FOGCOLOR						0x00000318
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_B_SHIFT					0
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_B_MASK					0x000000ff
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_G_SHIFT					8
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_G_MASK					0x0000ff00
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_R_SHIFT					16
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_R_MASK					0x00ff0000
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_A_SHIFT					24
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_A_MASK					0xff000000
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SX(x)						(0x00000400+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SX__SIZE					0x00000010
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SY(x)						(0x00000404+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SY__SIZE					0x00000010
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SZ(x)						(0x00000408+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SZ__SIZE					0x00000010
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_RHW(x)						(0x0000040c+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_RHW__SIZE					0x00000010
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR(x)					(0x00000410+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR__SIZE					0x00000010
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_B_SHIFT					0
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_B_MASK					0x000000ff
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_G_SHIFT					8
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_G_MASK					0x0000ff00
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_R_SHIFT					16
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_R_MASK					0x00ff0000
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_A_SHIFT					24
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_A_MASK					0xff000000
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR(x)					(0x00000414+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR__SIZE					0x00000010
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_B_SHIFT				0
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_B_MASK				0x000000ff
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_G_SHIFT				8
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_G_MASK				0x0000ff00
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_R_SHIFT				16
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_R_MASK				0x00ff0000
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_SHIFT				24
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_MASK				0xff000000
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_TU(x)						(0x00000418+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_TU__SIZE					0x00000010
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_TV(x)						(0x0000041c+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_TV__SIZE					0x00000010
+#define  NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE(x)					(0x00000600+((x)*4))
+#define  NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE__SIZE					0x00000040
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I0_SHIFT					0
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I0_MASK					0x0000000f
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I1_SHIFT					4
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I1_MASK					0x000000f0
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I2_SHIFT					8
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I2_MASK					0x00000f00
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I3_SHIFT					12
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I3_MASK					0x0000f000
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I4_SHIFT					16
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I4_MASK					0x000f0000
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I5_SHIFT					20
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I5_MASK					0x00f00000
+
+
+#define NV10_TEXTURED_TRIANGLE								0x00000094
+
+
+
+#define NV04_MULTITEX_TRIANGLE								0x00000055
+
+#define  NV04_MULTITEX_TRIANGLE_NOP							0x00000100
+#define  NV04_MULTITEX_TRIANGLE_NOTIFY							0x00000104
+#define  NV04_MULTITEX_TRIANGLE_DMA_NOTIFY						0x00000180
+#define  NV04_MULTITEX_TRIANGLE_DMA_A							0x00000184
+#define  NV04_MULTITEX_TRIANGLE_DMA_B							0x00000188
+#define  NV04_MULTITEX_TRIANGLE_SURFACE							0x0000018c
+#define  NV04_MULTITEX_TRIANGLE_OFFSET(x)						(0x00000308+((x)*4))
+#define  NV04_MULTITEX_TRIANGLE_OFFSET__SIZE						0x00000002
+#define  NV04_MULTITEX_TRIANGLE_FORMAT(x)						(0x00000310+((x)*4))
+#define  NV04_MULTITEX_TRIANGLE_FORMAT__SIZE						0x00000002
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_DMA_A						(1 <<  0)
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_DMA_B						(1 <<  1)
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_ZOH_SHIFT				4
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_ZOH_MASK					0x00000030
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_FOH_SHIFT				6
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_FOH_MASK					0x000000c0
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_COLOR_SHIFT					8
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_COLOR_MASK					0x00000f00
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_MIPMAP_LEVELS_SHIFT				12
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_MIPMAP_LEVELS_MASK				0x0000f000
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_U_SHIFT				16
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_U_MASK				0x000f0000
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_V_SHIFT				20
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_V_MASK				0x00f00000
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_SHIFT					24
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_MASK					0x07000000
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_WRAPU						(1 << 27)
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_SHIFT					28
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_MASK					0x70000000
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_WRAPV						(1 << 31)
+#define  NV04_MULTITEX_TRIANGLE_FILTER(x)						(0x00000318+((x)*4))
+#define  NV04_MULTITEX_TRIANGLE_FILTER__SIZE						0x00000002
+#define   NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_X_SHIFT				0
+#define   NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_X_MASK				0x000000ff
+#define   NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_Y_SHIFT				8
+#define   NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_Y_MASK				0x00007f00
+#define   NV04_MULTITEX_TRIANGLE_FILTER_MIPMAP_DITHER_ENABLE				(1 << 15)
+#define   NV04_MULTITEX_TRIANGLE_FILTER_MIPMAP_LODBIAS_SHIFT				16
+#define   NV04_MULTITEX_TRIANGLE_FILTER_MIPMAP_LODBIAS_MASK				0x00ff0000
+#define   NV04_MULTITEX_TRIANGLE_FILTER_MINIFY_SHIFT					24
+#define   NV04_MULTITEX_TRIANGLE_FILTER_MINIFY_MASK					0x07000000
+#define   NV04_MULTITEX_TRIANGLE_FILTER_ANISOTROPIC_MINIFY_ENABLE			(1 << 27)
+#define   NV04_MULTITEX_TRIANGLE_FILTER_MAGNIFY_SHIFT					28
+#define   NV04_MULTITEX_TRIANGLE_FILTER_MAGNIFY_MASK					0x70000000
+#define   NV04_MULTITEX_TRIANGLE_FILTER_ANISOTROPIC_MAGNIFY_ENABLE			(1 << 31)
+#define  NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA(x)					(0x00000320+((x)*12))
+#define  NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA__SIZE					0x00000002
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE0					(1 <<  0)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_SHIFT				2
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_MASK				0x000000fc
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_ZERO				0x00000004
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_CONSTANT			0x00000008
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_PRIMARY_COLOR			0x0000000c
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_PREVIOUS			0x00000010
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_TEXTURE0			0x00000014
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_TEXTURE1			0x00000018
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE1					(1 <<  8)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_SHIFT				10
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_MASK				0x0000fc00
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_ZERO				0x00000400
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_CONSTANT			0x00000800
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_PRIMARY_COLOR			0x00000c00
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_PREVIOUS			0x00001000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_TEXTURE0			0x00001400
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_TEXTURE1			0x00001800
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE2					(1 << 16)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_SHIFT				18
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_MASK				0x00fc0000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_ZERO				0x00040000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_CONSTANT			0x00080000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_PRIMARY_COLOR			0x000c0000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_PREVIOUS			0x00100000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_TEXTURE0			0x00140000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_TEXTURE1			0x00180000
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE3					(1 << 24)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_SHIFT				26
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_MASK				0x1c000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_ZERO				0x04000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_CONSTANT			0x08000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_PRIMARY_COLOR			0x0c000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_PREVIOUS			0x10000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_TEXTURE0			0x14000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_TEXTURE1			0x18000000
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_SHIFT				29
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_MASK					0xe0000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_IDENTITY				0x20000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_SCALE2				0x40000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_SCALE4				0x60000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_BIAS				0x80000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_BIAS_SCALE2				0xe0000000
+#define  NV04_MULTITEX_TRIANGLE_COMBINE_COLOR(x)					(0x00000324+((x)*12))
+#define  NV04_MULTITEX_TRIANGLE_COMBINE_COLOR__SIZE					0x00000002
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE0					(1 <<  0)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA0					(1 <<  1)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_SHIFT				2
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_MASK				0x000000fc
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_ZERO				0x00000004
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_CONSTANT			0x00000008
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_PRIMARY_COLOR			0x0000000c
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_PREVIOUS			0x00000010
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_TEXTURE0			0x00000014
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_TEXTURE1			0x00000018
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE1					(1 <<  8)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA1					(1 <<  9)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_SHIFT				10
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_MASK				0x0000fc00
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_ZERO				0x00000400
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_CONSTANT			0x00000800
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_PRIMARY_COLOR			0x00000c00
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_PREVIOUS			0x00001000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_TEXTURE0			0x00001400
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_TEXTURE1			0x00001800
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE2					(1 << 16)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA2					(1 << 17)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_SHIFT				18
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_MASK				0x00fc0000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_ZERO				0x00040000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_CONSTANT			0x00080000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_PRIMARY_COLOR			0x000c0000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_PREVIOUS			0x00100000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_TEXTURE0			0x00140000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_TEXTURE1			0x00180000
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE3					(1 << 24)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA3					(1 << 25)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_SHIFT				26
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_MASK				0x1c000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_ZERO				0x04000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_CONSTANT			0x08000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_PRIMARY_COLOR			0x0c000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_PREVIOUS			0x10000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_TEXTURE0			0x14000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_TEXTURE1			0x18000000
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_SHIFT				29
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_MASK					0xe0000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_IDENTITY				0x20000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_SCALE2				0x40000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_SCALE4				0x60000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_BIAS				0x80000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_BIAS_SCALE2				0xe0000000
+#define  NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR						0x00000334
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_B_SHIFT					0
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_B_MASK					0x000000ff
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_G_SHIFT					8
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_G_MASK					0x0000ff00
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_R_SHIFT					16
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_R_MASK					0x00ff0000
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_A_SHIFT					24
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_A_MASK					0xff000000
+#define  NV04_MULTITEX_TRIANGLE_BLEND							0x00000338
+#define   NV04_MULTITEX_TRIANGLE_BLEND_MASK_BIT_SHIFT					4
+#define   NV04_MULTITEX_TRIANGLE_BLEND_MASK_BIT_MASK					0x00000030
+#define   NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_SHIFT					6
+#define   NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_MASK					0x000000c0
+#define    NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_FLAT					0x00000040
+#define    NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_GOURAUD				0x00000080
+#define    NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_PHONG				0x000000c0
+#define   NV04_MULTITEX_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE			(1 <<  8)
+#define   NV04_MULTITEX_TRIANGLE_BLEND_SPECULAR_ENABLE					(1 << 12)
+#define   NV04_MULTITEX_TRIANGLE_BLEND_FOG_ENABLE					(1 << 16)
+#define   NV04_MULTITEX_TRIANGLE_BLEND_BLEND_ENABLE					(1 << 20)
+#define   NV04_MULTITEX_TRIANGLE_BLEND_SRC_SHIFT					24
+#define   NV04_MULTITEX_TRIANGLE_BLEND_SRC_MASK						0x0f000000
+#define   NV04_MULTITEX_TRIANGLE_BLEND_DST_SHIFT					28
+#define   NV04_MULTITEX_TRIANGLE_BLEND_DST_MASK						0xf0000000
+#define  NV04_MULTITEX_TRIANGLE_CONTROL0						0x0000033c
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_REF_SHIFT				0
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_REF_MASK				0x000000ff
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_SHIFT				8
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_MASK				0x00000f00
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_ENABLE					(1 << 12)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_ORIGIN					(1 << 13)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_Z_ENABLE					(1 << 14)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_SHIFT					16
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_MASK					0x000f0000
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_SHIFT				20
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_MASK				0x00300000
+#define    NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_BOTH				0x00000000
+#define    NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_NONE				0x00100000
+#define    NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_CW					0x00200000
+#define    NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_CCW				0x00300000
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_DITHER_ENABLE					(1 << 22)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_Z_PERSPECTIVE_ENABLE				(1 << 23)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_Z_WRITE					(1 << 24)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE					(1 << 25)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE					(1 << 26)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_RED_WRITE					(1 << 27)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_GREEN_WRITE					(1 << 28)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_BLUE_WRITE					(1 << 29)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FORMAT_SHIFT				30
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FORMAT_MASK					0xc0000000
+#define  NV04_MULTITEX_TRIANGLE_CONTROL1						0x00000340
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_ENABLE				(1 <<  0)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_FUNC_SHIFT				4
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_FUNC_MASK				0x000000f0
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_REF_SHIFT				8
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_REF_MASK				0x0000ff00
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_SHIFT			16
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_MASK			0x00ff0000
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_SHIFT			24
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_MASK			0xff000000
+#define  NV04_MULTITEX_TRIANGLE_CONTROL2						0x00000344
+#define   NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_FAIL_SHIFT				0
+#define   NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_FAIL_MASK				0x0000000f
+#define   NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZFAIL_SHIFT			4
+#define   NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZFAIL_MASK				0x000000f0
+#define   NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZPASS_SHIFT			8
+#define   NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZPASS_MASK				0x00000f00
+#define  NV04_MULTITEX_TRIANGLE_FOGCOLOR						0x00000348
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_B_SHIFT					0
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_B_MASK					0x000000ff
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_G_SHIFT					8
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_G_MASK					0x0000ff00
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_R_SHIFT					16
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_R_MASK					0x00ff0000
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_A_SHIFT					24
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_A_MASK					0xff000000
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SX(x)					(0x00000400+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SX__SIZE					0x00000008
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SY(x)					(0x00000404+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SY__SIZE					0x00000008
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SZ(x)					(0x00000408+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SZ__SIZE					0x00000008
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_RHW(x)					(0x0000040c+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_RHW__SIZE					0x00000008
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR(x)					(0x00000410+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR__SIZE					0x00000008
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_B_SHIFT				0
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_B_MASK				0x000000ff
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_G_SHIFT				8
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_G_MASK				0x0000ff00
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_R_SHIFT				16
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_R_MASK				0x00ff0000
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_A_SHIFT				24
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_A_MASK				0xff000000
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR(x)					(0x00000414+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR__SIZE				0x00000008
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_B_SHIFT				0
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_B_MASK				0x000000ff
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_G_SHIFT				8
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_G_MASK				0x0000ff00
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_R_SHIFT				16
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_R_MASK				0x00ff0000
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_FOG_SHIFT				24
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_FOG_MASK				0xff000000
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TU0(x)					(0x00000418+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TU0__SIZE					0x00000008
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TV0(x)					(0x0000041c+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TV0__SIZE					0x00000008
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TU1(x)					(0x00000420+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TU1__SIZE					0x00000008
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TV1(x)					(0x00000424+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TV1__SIZE					0x00000008
+#define  NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE(x)					(0x00000540+((x)*4))
+#define  NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE__SIZE					0x00000030
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I0_SHIFT					0
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I0_MASK					0x0000000f
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I1_SHIFT					4
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I1_MASK					0x000000f0
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I2_SHIFT					8
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I2_MASK					0x00000f00
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I3_SHIFT					12
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I3_MASK					0x0000f000
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I4_SHIFT					16
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I4_MASK					0x000f0000
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I5_SHIFT					20
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I5_MASK					0x00f00000
+
+
+#define NV10_MULTITEX_TRIANGLE								0x00000095
+
+
+
+#define NV10TCL										0x00000056
+
+#define  NV10TCL_NOP									0x00000100
+#define  NV10TCL_NOTIFY									0x00000104
+#define  NV10TCL_DMA_NOTIFY								0x00000180
+#define  NV10TCL_DMA_IN_MEMORY0								0x00000184
+#define  NV10TCL_DMA_IN_MEMORY1								0x00000188
+#define  NV10TCL_DMA_VTXBUF0								0x0000018c
+#define  NV10TCL_DMA_IN_MEMORY2								0x00000194
+#define  NV10TCL_DMA_IN_MEMORY3								0x00000198
+#define  NV10TCL_RT_HORIZ								0x00000200
+#define   NV10TCL_RT_HORIZ_X_SHIFT							0
+#define   NV10TCL_RT_HORIZ_X_MASK							0x0000ffff
+#define   NV10TCL_RT_HORIZ_W_SHIFT							16
+#define   NV10TCL_RT_HORIZ_W_MASK							0xffff0000
+#define  NV10TCL_RT_VERT								0x00000204
+#define   NV10TCL_RT_VERT_Y_SHIFT							0
+#define   NV10TCL_RT_VERT_Y_MASK							0x0000ffff
+#define   NV10TCL_RT_VERT_H_SHIFT							16
+#define   NV10TCL_RT_VERT_H_MASK							0xffff0000
+#define  NV10TCL_RT_FORMAT								0x00000208
+#define   NV10TCL_RT_FORMAT_TYPE_SHIFT							8
+#define   NV10TCL_RT_FORMAT_TYPE_MASK							0x00000f00
+#define    NV10TCL_RT_FORMAT_TYPE_LINEAR						0x00000100
+#define    NV10TCL_RT_FORMAT_TYPE_SWIZZLED						0x00000200
+#define   NV10TCL_RT_FORMAT_COLOR_SHIFT							0
+#define   NV10TCL_RT_FORMAT_COLOR_MASK							0x0000001f
+#define    NV10TCL_RT_FORMAT_COLOR_R5G6B5						0x00000003
+#define    NV10TCL_RT_FORMAT_COLOR_X8R8G8B8						0x00000005
+#define    NV10TCL_RT_FORMAT_COLOR_A8R8G8B8						0x00000008
+#define    NV10TCL_RT_FORMAT_COLOR_B8							0x00000009
+#define    NV10TCL_RT_FORMAT_COLOR_UNKNOWN						0x0000000d
+#define    NV10TCL_RT_FORMAT_COLOR_X8B8G8R8						0x0000000f
+#define    NV10TCL_RT_FORMAT_COLOR_A8B8G8R8						0x00000010
+#define  NV10TCL_RT_PITCH								0x0000020c
+#define   NV10TCL_RT_PITCH_COLOR_PITCH_SHIFT						0
+#define   NV10TCL_RT_PITCH_COLOR_PITCH_MASK						0x0000ffff
+#define   NV10TCL_RT_PITCH_ZETA_PITCH_SHIFT						16
+#define   NV10TCL_RT_PITCH_ZETA_PITCH_MASK						0xffff0000
+#define  NV10TCL_COLOR_OFFSET								0x00000210
+#define  NV10TCL_ZETA_OFFSET								0x00000214
+#define  NV10TCL_TX_OFFSET(x)								(0x00000218+((x)*4))
+#define  NV10TCL_TX_OFFSET__SIZE							0x00000002
+#define  NV10TCL_TX_FORMAT(x)								(0x00000220+((x)*4))
+#define  NV10TCL_TX_FORMAT__SIZE							0x00000002
+#define   NV10TCL_TX_FORMAT_DMA0							(1 <<  0)
+#define   NV10TCL_TX_FORMAT_DMA1							(1 <<  1)
+#define   NV10TCL_TX_FORMAT_CUBE_MAP							(1 <<  2)
+#define   NV10TCL_TX_FORMAT_FORMAT_SHIFT						7
+#define   NV10TCL_TX_FORMAT_FORMAT_MASK							0x00000f80
+#define    NV10TCL_TX_FORMAT_FORMAT_L8							0x00000000
+#define    NV10TCL_TX_FORMAT_FORMAT_A8							0x00000080
+#define    NV10TCL_TX_FORMAT_FORMAT_A1R5G5B5						0x00000100
+#define    NV10TCL_TX_FORMAT_FORMAT_A4R4G4B4						0x00000200
+#define    NV10TCL_TX_FORMAT_FORMAT_R5G6B5						0x00000280
+#define    NV10TCL_TX_FORMAT_FORMAT_A8R8G8B8						0x00000300
+#define    NV10TCL_TX_FORMAT_FORMAT_X8R8G8B8						0x00000380
+#define    NV10TCL_TX_FORMAT_FORMAT_INDEX8						0x00000580
+#define    NV10TCL_TX_FORMAT_FORMAT_DXT1						0x00000600
+#define    NV10TCL_TX_FORMAT_FORMAT_DXT3						0x00000700
+#define    NV10TCL_TX_FORMAT_FORMAT_DXT5						0x00000780
+#define    NV10TCL_TX_FORMAT_FORMAT_A1R5G5B5_RECT					0x00000800
+#define    NV10TCL_TX_FORMAT_FORMAT_R5G6B5_RECT						0x00000880
+#define    NV10TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT					0x00000900
+#define    NV10TCL_TX_FORMAT_FORMAT_A8_RECT						0x00000980
+#define   NV10TCL_TX_FORMAT_MIPMAP							(1 << 15)
+#define   NV10TCL_TX_FORMAT_BASE_SIZE_U_SHIFT						16
+#define   NV10TCL_TX_FORMAT_BASE_SIZE_U_MASK						0x000f0000
+#define   NV10TCL_TX_FORMAT_BASE_SIZE_V_SHIFT						20
+#define   NV10TCL_TX_FORMAT_BASE_SIZE_V_MASK						0x00f00000
+#define   NV10TCL_TX_FORMAT_WRAP_S_SHIFT						24
+#define   NV10TCL_TX_FORMAT_WRAP_S_MASK							0x0f000000
+#define    NV10TCL_TX_FORMAT_WRAP_S_REPEAT						0x01000000
+#define    NV10TCL_TX_FORMAT_WRAP_S_MIRRORED_REPEAT					0x02000000
+#define    NV10TCL_TX_FORMAT_WRAP_S_CLAMP_TO_EDGE					0x03000000
+#define    NV10TCL_TX_FORMAT_WRAP_S_CLAMP_TO_BORDER					0x04000000
+#define    NV10TCL_TX_FORMAT_WRAP_S_CLAMP						0x05000000
+#define   NV10TCL_TX_FORMAT_WRAP_T_SHIFT						28
+#define   NV10TCL_TX_FORMAT_WRAP_T_MASK							0xf0000000
+#define    NV10TCL_TX_FORMAT_WRAP_T_REPEAT						0x10000000
+#define    NV10TCL_TX_FORMAT_WRAP_T_MIRRORED_REPEAT					0x20000000
+#define    NV10TCL_TX_FORMAT_WRAP_T_CLAMP_TO_EDGE					0x30000000
+#define    NV10TCL_TX_FORMAT_WRAP_T_CLAMP_TO_BORDER					0x40000000
+#define    NV10TCL_TX_FORMAT_WRAP_T_CLAMP						0x50000000
+#define  NV10TCL_TX_ENABLE(x)								(0x00000228+((x)*4))
+#define  NV10TCL_TX_ENABLE__SIZE							0x00000002
+#define   NV10TCL_TX_ENABLE_CULL_SHIFT							0
+#define   NV10TCL_TX_ENABLE_CULL_MASK							0x0000000f
+#define    NV10TCL_TX_ENABLE_CULL_DISABLED						0x00000000
+#define    NV10TCL_TX_ENABLE_CULL_TEST_ALL						0x00000003
+#define    NV10TCL_TX_ENABLE_CULL_TEST_ALPHA						0x00000004
+#define   NV10TCL_TX_ENABLE_ANISOTROPY_SHIFT						4
+#define   NV10TCL_TX_ENABLE_ANISOTROPY_MASK						0x00000030
+#define   NV10TCL_TX_ENABLE_MIPMAP_MAX_LOD_SHIFT					14
+#define   NV10TCL_TX_ENABLE_MIPMAP_MAX_LOD_MASK						0x0003c000
+#define   NV10TCL_TX_ENABLE_MIPMAP_MIN_LOD_SHIFT					26
+#define   NV10TCL_TX_ENABLE_MIPMAP_MIN_LOD_MASK						0x3c000000
+#define   NV10TCL_TX_ENABLE_ENABLE							(1 << 30)
+#define  NV10TCL_TX_NPOT_PITCH(x)							(0x00000230+((x)*4))
+#define  NV10TCL_TX_NPOT_PITCH__SIZE							0x00000002
+#define   NV10TCL_TX_NPOT_PITCH_PITCH_SHIFT						16
+#define   NV10TCL_TX_NPOT_PITCH_PITCH_MASK						0xffff0000
+#define  NV10TCL_TX_NPOT_SIZE(x)							(0x00000240+((x)*4))
+#define  NV10TCL_TX_NPOT_SIZE__SIZE							0x00000002
+#define   NV10TCL_TX_NPOT_SIZE_H_SHIFT							0
+#define   NV10TCL_TX_NPOT_SIZE_H_MASK							0x0000ffff
+#define   NV10TCL_TX_NPOT_SIZE_W_SHIFT							16
+#define   NV10TCL_TX_NPOT_SIZE_W_MASK							0xffff0000
+#define  NV10TCL_TX_FILTER(x)								(0x00000248+((x)*4))
+#define  NV10TCL_TX_FILTER__SIZE							0x00000002
+#define   NV10TCL_TX_FILTER_LOD_BIAS_SHIFT						8
+#define   NV10TCL_TX_FILTER_LOD_BIAS_MASK						0x00000f00
+#define   NV10TCL_TX_FILTER_MINIFY_SHIFT						24
+#define   NV10TCL_TX_FILTER_MINIFY_MASK							0x0f000000
+#define    NV10TCL_TX_FILTER_MINIFY_NEAREST						0x01000000
+#define    NV10TCL_TX_FILTER_MINIFY_LINEAR						0x02000000
+#define    NV10TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST				0x03000000
+#define    NV10TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST				0x04000000
+#define    NV10TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR				0x05000000
+#define    NV10TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR				0x06000000
+#define   NV10TCL_TX_FILTER_MAGNIFY_SHIFT						28
+#define   NV10TCL_TX_FILTER_MAGNIFY_MASK						0xf0000000
+#define    NV10TCL_TX_FILTER_MAGNIFY_NEAREST						0x10000000
+#define    NV10TCL_TX_FILTER_MAGNIFY_LINEAR						0x20000000
+#define  NV10TCL_TX_PALETTE_OFFSET(x)							(0x00000250+((x)*4))
+#define  NV10TCL_TX_PALETTE_OFFSET__SIZE						0x00000002
+#define  NV10TCL_RC_IN_ALPHA(x)								(0x00000260+((x)*4))
+#define  NV10TCL_RC_IN_ALPHA__SIZE							0x00000002
+#define   NV10TCL_RC_IN_ALPHA_D_INPUT_SHIFT						0
+#define   NV10TCL_RC_IN_ALPHA_D_INPUT_MASK						0x0000000f
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0					0x00000001
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1					0x00000002
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_FOG						0x00000003
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR					0x00000004
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR					0x00000005
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE0						0x00000008
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE1						0x00000009
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE0						0x0000000c
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE1						0x0000000d
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F					0x0000000f
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE2						0x0000000a
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE3						0x0000000b
+#define   NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE						(1 <<  4)
+#define    NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE					0x00000000
+#define    NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA					0x00000010
+#define   NV10TCL_RC_IN_ALPHA_D_MAPPING_SHIFT						5
+#define   NV10TCL_RC_IN_ALPHA_D_MAPPING_MASK						0x000000e0
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT				0x00000020
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL					0x00000040
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE					0x00000060
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL				0x00000080
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE				0x000000a0
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY				0x000000c0
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE					0x000000e0
+#define   NV10TCL_RC_IN_ALPHA_C_INPUT_SHIFT						8
+#define   NV10TCL_RC_IN_ALPHA_C_INPUT_MASK						0x00000f00
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0					0x00000100
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1					0x00000200
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_FOG						0x00000300
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR					0x00000400
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR					0x00000500
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE0						0x00000800
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE1						0x00000900
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE0						0x00000c00
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE1						0x00000d00
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F					0x00000f00
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE2						0x00000a00
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE3						0x00000b00
+#define   NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE						(1 << 12)
+#define    NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE					0x00000000
+#define    NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA					0x00001000
+#define   NV10TCL_RC_IN_ALPHA_C_MAPPING_SHIFT						13
+#define   NV10TCL_RC_IN_ALPHA_C_MAPPING_MASK						0x0000e000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT				0x00002000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL					0x00004000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE					0x00006000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL				0x00008000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE				0x0000a000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY				0x0000c000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE					0x0000e000
+#define   NV10TCL_RC_IN_ALPHA_B_INPUT_SHIFT						16
+#define   NV10TCL_RC_IN_ALPHA_B_INPUT_MASK						0x000f0000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0					0x00010000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1					0x00020000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_FOG						0x00030000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR					0x00040000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR					0x00050000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE0						0x00080000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE1						0x00090000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE0						0x000c0000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE1						0x000d0000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000e0000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F					0x000f0000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE2						0x000a0000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE3						0x000b0000
+#define   NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE						(1 << 20)
+#define    NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE					0x00000000
+#define    NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA					0x00100000
+#define   NV10TCL_RC_IN_ALPHA_B_MAPPING_SHIFT						21
+#define   NV10TCL_RC_IN_ALPHA_B_MAPPING_MASK						0x00e00000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT				0x00200000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL					0x00400000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE					0x00600000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL				0x00800000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE				0x00a00000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY				0x00c00000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE					0x00e00000
+#define   NV10TCL_RC_IN_ALPHA_A_INPUT_SHIFT						24
+#define   NV10TCL_RC_IN_ALPHA_A_INPUT_MASK						0x0f000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0					0x01000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1					0x02000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_FOG						0x03000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR					0x04000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR					0x05000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE0						0x08000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE1						0x09000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE0						0x0c000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE1						0x0d000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0e000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F					0x0f000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE2						0x0a000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE3						0x0b000000
+#define   NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE						(1 << 28)
+#define    NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE					0x00000000
+#define    NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA					0x10000000
+#define   NV10TCL_RC_IN_ALPHA_A_MAPPING_SHIFT						29
+#define   NV10TCL_RC_IN_ALPHA_A_MAPPING_MASK						0xe0000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT				0x20000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL					0x40000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE					0x60000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL				0x80000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE				0xa0000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY				0xc0000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE					0xe0000000
+#define  NV10TCL_RC_IN_RGB(x)								(0x00000268+((x)*4))
+#define  NV10TCL_RC_IN_RGB__SIZE							0x00000002
+#define   NV10TCL_RC_IN_RGB_D_INPUT_SHIFT						0
+#define   NV10TCL_RC_IN_RGB_D_INPUT_MASK						0x0000000f
+#define    NV10TCL_RC_IN_RGB_D_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0					0x00000001
+#define    NV10TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1					0x00000002
+#define    NV10TCL_RC_IN_RGB_D_INPUT_FOG						0x00000003
+#define    NV10TCL_RC_IN_RGB_D_INPUT_PRIMARY_COLOR					0x00000004
+#define    NV10TCL_RC_IN_RGB_D_INPUT_SECONDARY_COLOR					0x00000005
+#define    NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE0						0x00000008
+#define    NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE1						0x00000009
+#define    NV10TCL_RC_IN_RGB_D_INPUT_SPARE0						0x0000000c
+#define    NV10TCL_RC_IN_RGB_D_INPUT_SPARE1						0x0000000d
+#define    NV10TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV10TCL_RC_IN_RGB_D_INPUT_E_TIMES_F						0x0000000f
+#define    NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE2						0x0000000a
+#define    NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE3						0x0000000b
+#define   NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE						(1 <<  4)
+#define    NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB					0x00000000
+#define    NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA					0x00000010
+#define   NV10TCL_RC_IN_RGB_D_MAPPING_SHIFT						5
+#define   NV10TCL_RC_IN_RGB_D_MAPPING_MASK						0x000000e0
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT					0x00000020
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL					0x00000040
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE					0x00000060
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL					0x00000080
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE					0x000000a0
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY					0x000000c0
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE					0x000000e0
+#define   NV10TCL_RC_IN_RGB_C_INPUT_SHIFT						8
+#define   NV10TCL_RC_IN_RGB_C_INPUT_MASK						0x00000f00
+#define    NV10TCL_RC_IN_RGB_C_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0					0x00000100
+#define    NV10TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1					0x00000200
+#define    NV10TCL_RC_IN_RGB_C_INPUT_FOG						0x00000300
+#define    NV10TCL_RC_IN_RGB_C_INPUT_PRIMARY_COLOR					0x00000400
+#define    NV10TCL_RC_IN_RGB_C_INPUT_SECONDARY_COLOR					0x00000500
+#define    NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE0						0x00000800
+#define    NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE1						0x00000900
+#define    NV10TCL_RC_IN_RGB_C_INPUT_SPARE0						0x00000c00
+#define    NV10TCL_RC_IN_RGB_C_INPUT_SPARE1						0x00000d00
+#define    NV10TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV10TCL_RC_IN_RGB_C_INPUT_E_TIMES_F						0x00000f00
+#define    NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE2						0x00000a00
+#define    NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE3						0x00000b00
+#define   NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE						(1 << 12)
+#define    NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB					0x00000000
+#define    NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA					0x00001000
+#define   NV10TCL_RC_IN_RGB_C_MAPPING_SHIFT						13
+#define   NV10TCL_RC_IN_RGB_C_MAPPING_MASK						0x0000e000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT					0x00002000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL					0x00004000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE					0x00006000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL					0x00008000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE					0x0000a000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY					0x0000c000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE					0x0000e000
+#define   NV10TCL_RC_IN_RGB_B_INPUT_SHIFT						16
+#define   NV10TCL_RC_IN_RGB_B_INPUT_MASK						0x000f0000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0					0x00010000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1					0x00020000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_FOG						0x00030000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_PRIMARY_COLOR					0x00040000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_SECONDARY_COLOR					0x00050000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE0						0x00080000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE1						0x00090000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_SPARE0						0x000c0000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_SPARE1						0x000d0000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000e0000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_E_TIMES_F						0x000f0000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE2						0x000a0000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE3						0x000b0000
+#define   NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE						(1 << 20)
+#define    NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB					0x00000000
+#define    NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA					0x00100000
+#define   NV10TCL_RC_IN_RGB_B_MAPPING_SHIFT						21
+#define   NV10TCL_RC_IN_RGB_B_MAPPING_MASK						0x00e00000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT					0x00200000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL					0x00400000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE					0x00600000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL					0x00800000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE					0x00a00000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY					0x00c00000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE					0x00e00000
+#define   NV10TCL_RC_IN_RGB_A_INPUT_SHIFT						24
+#define   NV10TCL_RC_IN_RGB_A_INPUT_MASK						0x0f000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0					0x01000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1					0x02000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_FOG						0x03000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_PRIMARY_COLOR					0x04000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_SECONDARY_COLOR					0x05000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE0						0x08000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE1						0x09000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_SPARE0						0x0c000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_SPARE1						0x0d000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0e000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_E_TIMES_F						0x0f000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE2						0x0a000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE3						0x0b000000
+#define   NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE						(1 << 28)
+#define    NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB					0x00000000
+#define    NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA					0x10000000
+#define   NV10TCL_RC_IN_RGB_A_MAPPING_SHIFT						29
+#define   NV10TCL_RC_IN_RGB_A_MAPPING_MASK						0xe0000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT					0x20000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL					0x40000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE					0x60000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL					0x80000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE					0xa0000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY					0xc0000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE					0xe0000000
+#define  NV10TCL_RC_COLOR(x)								(0x00000270+((x)*4))
+#define  NV10TCL_RC_COLOR__SIZE								0x00000002
+#define   NV10TCL_RC_COLOR_B_SHIFT							0
+#define   NV10TCL_RC_COLOR_B_MASK							0x000000ff
+#define   NV10TCL_RC_COLOR_G_SHIFT							8
+#define   NV10TCL_RC_COLOR_G_MASK							0x0000ff00
+#define   NV10TCL_RC_COLOR_R_SHIFT							16
+#define   NV10TCL_RC_COLOR_R_MASK							0x00ff0000
+#define   NV10TCL_RC_COLOR_A_SHIFT							24
+#define   NV10TCL_RC_COLOR_A_MASK							0xff000000
+#define  NV10TCL_RC_OUT_ALPHA(x)							(0x00000278+((x)*4))
+#define  NV10TCL_RC_OUT_ALPHA__SIZE							0x00000002
+#define   NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SHIFT						0
+#define   NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_MASK						0x0000000f
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_ZERO						0x00000000
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0				0x00000001
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1				0x00000002
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_FOG						0x00000003
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR					0x00000004
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR				0x00000005
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0					0x00000008
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1					0x00000009
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0					0x0000000c
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1					0x0000000d
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F					0x0000000f
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE2					0x0000000a
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE3					0x0000000b
+#define   NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT						4
+#define   NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK						0x000000f0
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO						0x00000000
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0				0x00000010
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1				0x00000020
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_FOG						0x00000030
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR					0x00000040
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR				0x00000050
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0					0x00000080
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1					0x00000090
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0					0x000000c0
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1					0x000000d0
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000000e0
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F					0x000000f0
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE2					0x000000a0
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE3					0x000000b0
+#define   NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT						8
+#define   NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK						0x00000f00
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO						0x00000000
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0				0x00000100
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1				0x00000200
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_FOG						0x00000300
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR				0x00000400
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR				0x00000500
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0					0x00000800
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1					0x00000900
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0					0x00000c00
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1					0x00000d00
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F					0x00000f00
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE2					0x00000a00
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE3					0x00000b00
+#define   NV10TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT						(1 << 12)
+#define   NV10TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT						(1 << 13)
+#define   NV10TCL_RC_OUT_ALPHA_MUX_SUM							(1 << 14)
+#define   NV10TCL_RC_OUT_ALPHA_BIAS							(1 << 15)
+#define    NV10TCL_RC_OUT_ALPHA_BIAS_NONE						0x00000000
+#define    NV10TCL_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF				0x00008000
+#define   NV10TCL_RC_OUT_ALPHA_SCALE_SHIFT						17
+#define   NV10TCL_RC_OUT_ALPHA_SCALE_MASK						0x00000000
+#define    NV10TCL_RC_OUT_ALPHA_SCALE_NONE						0x00000000
+#define    NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO					0x00020000
+#define    NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR					0x00040000
+#define    NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF					0x00060000
+#define  NV10TCL_RC_OUT_RGB(x)								(0x00000280+((x)*4))
+#define  NV10TCL_RC_OUT_RGB__SIZE							0x00000002
+#define   NV10TCL_RC_OUT_RGB_CD_OUTPUT_SHIFT						0
+#define   NV10TCL_RC_OUT_RGB_CD_OUTPUT_MASK						0x0000000f
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_ZERO						0x00000000
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0					0x00000001
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1					0x00000002
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_FOG						0x00000003
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR					0x00000004
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR					0x00000005
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE0					0x00000008
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE1					0x00000009
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0						0x0000000c
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1						0x0000000d
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F					0x0000000f
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE2					0x0000000a
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE3					0x0000000b
+#define   NV10TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT						4
+#define   NV10TCL_RC_OUT_RGB_AB_OUTPUT_MASK						0x000000f0
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_ZERO						0x00000000
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0					0x00000010
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1					0x00000020
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_FOG						0x00000030
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR					0x00000040
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR					0x00000050
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE0					0x00000080
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE1					0x00000090
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0						0x000000c0
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1						0x000000d0
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000000e0
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F					0x000000f0
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE2					0x000000a0
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE3					0x000000b0
+#define   NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT						8
+#define   NV10TCL_RC_OUT_RGB_SUM_OUTPUT_MASK						0x00000f00
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO						0x00000000
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0				0x00000100
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1				0x00000200
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_FOG						0x00000300
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR					0x00000400
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR				0x00000500
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0					0x00000800
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1					0x00000900
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0						0x00000c00
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1						0x00000d00
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F					0x00000f00
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE2					0x00000a00
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE3					0x00000b00
+#define   NV10TCL_RC_OUT_RGB_CD_DOT_PRODUCT						(1 << 12)
+#define   NV10TCL_RC_OUT_RGB_AB_DOT_PRODUCT						(1 << 13)
+#define   NV10TCL_RC_OUT_RGB_MUX_SUM							(1 << 14)
+#define   NV10TCL_RC_OUT_RGB_BIAS							(1 << 15)
+#define    NV10TCL_RC_OUT_RGB_BIAS_NONE							0x00000000
+#define    NV10TCL_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF				0x00008000
+#define   NV10TCL_RC_OUT_RGB_SCALE_SHIFT						17
+#define   NV10TCL_RC_OUT_RGB_SCALE_MASK							0x00000000
+#define    NV10TCL_RC_OUT_RGB_SCALE_NONE						0x00000000
+#define    NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_TWO					0x00020000
+#define    NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_FOUR					0x00040000
+#define    NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF					0x00060000
+#define   NV10TCL_RC_OUT_RGB_OPERATION_SHIFT						27
+#define   NV10TCL_RC_OUT_RGB_OPERATION_MASK						0x38000000
+#define  NV10TCL_RC_FINAL0								0x00000288
+#define   NV10TCL_RC_FINAL0_D_INPUT_SHIFT						0
+#define   NV10TCL_RC_FINAL0_D_INPUT_MASK						0x0000000f
+#define    NV10TCL_RC_FINAL0_D_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR0					0x00000001
+#define    NV10TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR1					0x00000002
+#define    NV10TCL_RC_FINAL0_D_INPUT_FOG						0x00000003
+#define    NV10TCL_RC_FINAL0_D_INPUT_PRIMARY_COLOR					0x00000004
+#define    NV10TCL_RC_FINAL0_D_INPUT_SECONDARY_COLOR					0x00000005
+#define    NV10TCL_RC_FINAL0_D_INPUT_TEXTURE0						0x00000008
+#define    NV10TCL_RC_FINAL0_D_INPUT_TEXTURE1						0x00000009
+#define    NV10TCL_RC_FINAL0_D_INPUT_SPARE0						0x0000000c
+#define    NV10TCL_RC_FINAL0_D_INPUT_SPARE1						0x0000000d
+#define    NV10TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV10TCL_RC_FINAL0_D_INPUT_E_TIMES_F						0x0000000f
+#define    NV10TCL_RC_FINAL0_D_INPUT_TEXTURE2						0x0000000a
+#define    NV10TCL_RC_FINAL0_D_INPUT_TEXTURE3						0x0000000b
+#define   NV10TCL_RC_FINAL0_D_COMPONENT_USAGE						(1 <<  4)
+#define    NV10TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB					0x00000000
+#define    NV10TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA					0x00000010
+#define   NV10TCL_RC_FINAL0_D_MAPPING_SHIFT						5
+#define   NV10TCL_RC_FINAL0_D_MAPPING_MASK						0x000000e0
+#define    NV10TCL_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT					0x00000020
+#define    NV10TCL_RC_FINAL0_D_MAPPING_EXPAND_NORMAL					0x00000040
+#define    NV10TCL_RC_FINAL0_D_MAPPING_EXPAND_NEGATE					0x00000060
+#define    NV10TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL					0x00000080
+#define    NV10TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE					0x000000a0
+#define    NV10TCL_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY					0x000000c0
+#define    NV10TCL_RC_FINAL0_D_MAPPING_SIGNED_NEGATE					0x000000e0
+#define   NV10TCL_RC_FINAL0_C_INPUT_SHIFT						8
+#define   NV10TCL_RC_FINAL0_C_INPUT_MASK						0x00000f00
+#define    NV10TCL_RC_FINAL0_C_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR0					0x00000100
+#define    NV10TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR1					0x00000200
+#define    NV10TCL_RC_FINAL0_C_INPUT_FOG						0x00000300
+#define    NV10TCL_RC_FINAL0_C_INPUT_PRIMARY_COLOR					0x00000400
+#define    NV10TCL_RC_FINAL0_C_INPUT_SECONDARY_COLOR					0x00000500
+#define    NV10TCL_RC_FINAL0_C_INPUT_TEXTURE0						0x00000800
+#define    NV10TCL_RC_FINAL0_C_INPUT_TEXTURE1						0x00000900
+#define    NV10TCL_RC_FINAL0_C_INPUT_SPARE0						0x00000c00
+#define    NV10TCL_RC_FINAL0_C_INPUT_SPARE1						0x00000d00
+#define    NV10TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV10TCL_RC_FINAL0_C_INPUT_E_TIMES_F						0x00000f00
+#define    NV10TCL_RC_FINAL0_C_INPUT_TEXTURE2						0x00000a00
+#define    NV10TCL_RC_FINAL0_C_INPUT_TEXTURE3						0x00000b00
+#define   NV10TCL_RC_FINAL0_C_COMPONENT_USAGE						(1 << 12)
+#define    NV10TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB					0x00000000
+#define    NV10TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA					0x00001000
+#define   NV10TCL_RC_FINAL0_C_MAPPING_SHIFT						13
+#define   NV10TCL_RC_FINAL0_C_MAPPING_MASK						0x0000e000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT					0x00002000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_EXPAND_NORMAL					0x00004000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_EXPAND_NEGATE					0x00006000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL					0x00008000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE					0x0000a000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY					0x0000c000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_SIGNED_NEGATE					0x0000e000
+#define   NV10TCL_RC_FINAL0_B_INPUT_SHIFT						16
+#define   NV10TCL_RC_FINAL0_B_INPUT_MASK						0x000f0000
+#define    NV10TCL_RC_FINAL0_B_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR0					0x00010000
+#define    NV10TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR1					0x00020000
+#define    NV10TCL_RC_FINAL0_B_INPUT_FOG						0x00030000
+#define    NV10TCL_RC_FINAL0_B_INPUT_PRIMARY_COLOR					0x00040000
+#define    NV10TCL_RC_FINAL0_B_INPUT_SECONDARY_COLOR					0x00050000
+#define    NV10TCL_RC_FINAL0_B_INPUT_TEXTURE0						0x00080000
+#define    NV10TCL_RC_FINAL0_B_INPUT_TEXTURE1						0x00090000
+#define    NV10TCL_RC_FINAL0_B_INPUT_SPARE0						0x000c0000
+#define    NV10TCL_RC_FINAL0_B_INPUT_SPARE1						0x000d0000
+#define    NV10TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000e0000
+#define    NV10TCL_RC_FINAL0_B_INPUT_E_TIMES_F						0x000f0000
+#define    NV10TCL_RC_FINAL0_B_INPUT_TEXTURE2						0x000a0000
+#define    NV10TCL_RC_FINAL0_B_INPUT_TEXTURE3						0x000b0000
+#define   NV10TCL_RC_FINAL0_B_COMPONENT_USAGE						(1 << 20)
+#define    NV10TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB					0x00000000
+#define    NV10TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA					0x00100000
+#define   NV10TCL_RC_FINAL0_B_MAPPING_SHIFT						21
+#define   NV10TCL_RC_FINAL0_B_MAPPING_MASK						0x00e00000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT					0x00200000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_EXPAND_NORMAL					0x00400000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_EXPAND_NEGATE					0x00600000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL					0x00800000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE					0x00a00000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY					0x00c00000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_SIGNED_NEGATE					0x00e00000
+#define   NV10TCL_RC_FINAL0_A_INPUT_SHIFT						24
+#define   NV10TCL_RC_FINAL0_A_INPUT_MASK						0x0f000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR0					0x01000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR1					0x02000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_FOG						0x03000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_PRIMARY_COLOR					0x04000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_SECONDARY_COLOR					0x05000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_TEXTURE0						0x08000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_TEXTURE1						0x09000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_SPARE0						0x0c000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_SPARE1						0x0d000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0e000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_E_TIMES_F						0x0f000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_TEXTURE2						0x0a000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_TEXTURE3						0x0b000000
+#define   NV10TCL_RC_FINAL0_A_COMPONENT_USAGE						(1 << 28)
+#define    NV10TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB					0x00000000
+#define    NV10TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA					0x10000000
+#define   NV10TCL_RC_FINAL0_A_MAPPING_SHIFT						29
+#define   NV10TCL_RC_FINAL0_A_MAPPING_MASK						0xe0000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT					0x20000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_EXPAND_NORMAL					0x40000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_EXPAND_NEGATE					0x60000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL					0x80000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE					0xa0000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY					0xc0000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_SIGNED_NEGATE					0xe0000000
+#define  NV10TCL_RC_FINAL1								0x0000028c
+#define   NV10TCL_RC_FINAL1_COLOR_SUM_CLAMP						(1 <<  7)
+#define   NV10TCL_RC_FINAL1_G_INPUT_SHIFT						8
+#define   NV10TCL_RC_FINAL1_G_INPUT_MASK						0x00000f00
+#define    NV10TCL_RC_FINAL1_G_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR0					0x00000100
+#define    NV10TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR1					0x00000200
+#define    NV10TCL_RC_FINAL1_G_INPUT_FOG						0x00000300
+#define    NV10TCL_RC_FINAL1_G_INPUT_PRIMARY_COLOR					0x00000400
+#define    NV10TCL_RC_FINAL1_G_INPUT_SECONDARY_COLOR					0x00000500
+#define    NV10TCL_RC_FINAL1_G_INPUT_TEXTURE0						0x00000800
+#define    NV10TCL_RC_FINAL1_G_INPUT_TEXTURE1						0x00000900
+#define    NV10TCL_RC_FINAL1_G_INPUT_SPARE0						0x00000c00
+#define    NV10TCL_RC_FINAL1_G_INPUT_SPARE1						0x00000d00
+#define    NV10TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV10TCL_RC_FINAL1_G_INPUT_E_TIMES_F						0x00000f00
+#define    NV10TCL_RC_FINAL1_G_INPUT_TEXTURE2						0x00000a00
+#define    NV10TCL_RC_FINAL1_G_INPUT_TEXTURE3						0x00000b00
+#define   NV10TCL_RC_FINAL1_G_COMPONENT_USAGE						(1 << 12)
+#define    NV10TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB					0x00000000
+#define    NV10TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA					0x00001000
+#define   NV10TCL_RC_FINAL1_G_MAPPING_SHIFT						13
+#define   NV10TCL_RC_FINAL1_G_MAPPING_MASK						0x0000e000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT					0x00002000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_EXPAND_NORMAL					0x00004000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_EXPAND_NEGATE					0x00006000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL					0x00008000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE					0x0000a000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY					0x0000c000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_SIGNED_NEGATE					0x0000e000
+#define   NV10TCL_RC_FINAL1_F_INPUT_SHIFT						16
+#define   NV10TCL_RC_FINAL1_F_INPUT_MASK						0x000f0000
+#define    NV10TCL_RC_FINAL1_F_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR0					0x00010000
+#define    NV10TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR1					0x00020000
+#define    NV10TCL_RC_FINAL1_F_INPUT_FOG						0x00030000
+#define    NV10TCL_RC_FINAL1_F_INPUT_PRIMARY_COLOR					0x00040000
+#define    NV10TCL_RC_FINAL1_F_INPUT_SECONDARY_COLOR					0x00050000
+#define    NV10TCL_RC_FINAL1_F_INPUT_TEXTURE0						0x00080000
+#define    NV10TCL_RC_FINAL1_F_INPUT_TEXTURE1						0x00090000
+#define    NV10TCL_RC_FINAL1_F_INPUT_SPARE0						0x000c0000
+#define    NV10TCL_RC_FINAL1_F_INPUT_SPARE1						0x000d0000
+#define    NV10TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000e0000
+#define    NV10TCL_RC_FINAL1_F_INPUT_E_TIMES_F						0x000f0000
+#define    NV10TCL_RC_FINAL1_F_INPUT_TEXTURE2						0x000a0000
+#define    NV10TCL_RC_FINAL1_F_INPUT_TEXTURE3						0x000b0000
+#define   NV10TCL_RC_FINAL1_F_COMPONENT_USAGE						(1 << 20)
+#define    NV10TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB					0x00000000
+#define    NV10TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA					0x00100000
+#define   NV10TCL_RC_FINAL1_F_MAPPING_SHIFT						21
+#define   NV10TCL_RC_FINAL1_F_MAPPING_MASK						0x00e00000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT					0x00200000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_EXPAND_NORMAL					0x00400000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_EXPAND_NEGATE					0x00600000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL					0x00800000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE					0x00a00000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY					0x00c00000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_SIGNED_NEGATE					0x00e00000
+#define   NV10TCL_RC_FINAL1_E_INPUT_SHIFT						24
+#define   NV10TCL_RC_FINAL1_E_INPUT_MASK						0x0f000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_ZERO						0x00000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR0					0x01000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR1					0x02000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_FOG						0x03000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_PRIMARY_COLOR					0x04000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_SECONDARY_COLOR					0x05000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_TEXTURE0						0x08000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_TEXTURE1						0x09000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_SPARE0						0x0c000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_SPARE1						0x0d000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0e000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_E_TIMES_F						0x0f000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_TEXTURE2						0x0a000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_TEXTURE3						0x0b000000
+#define   NV10TCL_RC_FINAL1_E_COMPONENT_USAGE						(1 << 28)
+#define    NV10TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB					0x00000000
+#define    NV10TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA					0x10000000
+#define   NV10TCL_RC_FINAL1_E_MAPPING_SHIFT						29
+#define   NV10TCL_RC_FINAL1_E_MAPPING_MASK						0xe0000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT					0x20000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_EXPAND_NORMAL					0x40000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_EXPAND_NEGATE					0x60000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL					0x80000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE					0xa0000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY					0xc0000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_SIGNED_NEGATE					0xe0000000
+#define  NV10TCL_LIGHT_MODEL								0x00000294
+#define   NV10TCL_LIGHT_MODEL_VERTEX_SPECULAR						(1 <<  0)
+#define   NV10TCL_LIGHT_MODEL_SEPARATE_SPECULAR						(1 <<  1)
+#define   NV10TCL_LIGHT_MODEL_LOCAL_VIEWER						(1 << 16)
+#define  NV10TCL_COLOR_MATERIAL								0x00000298
+#define   NV10TCL_COLOR_MATERIAL_EMISSION						(1 <<  0)
+#define   NV10TCL_COLOR_MATERIAL_AMBIENT						(1 <<  1)
+#define   NV10TCL_COLOR_MATERIAL_DIFFUSE						(1 <<  2)
+#define   NV10TCL_COLOR_MATERIAL_SPECULAR						(1 <<  3)
+#define  NV10TCL_FOG_MODE								0x0000029c
+#define   NV10TCL_FOG_MODE_LINEAR							0x00002601
+#define   NV10TCL_FOG_MODE_EXP								0x00000800
+#define   NV10TCL_FOG_MODE_EXP_ABS							0x00000802
+#define   NV10TCL_FOG_MODE_EXP2								0x00000803
+#define  NV10TCL_FOG_COORD								0x000002a0
+#define   NV10TCL_FOG_COORD_FOG								0x00000000
+#define   NV10TCL_FOG_COORD_DIST_RADIAL							0x00000001
+#define   NV10TCL_FOG_COORD_DIST_ORTHOGONAL						0x00000002
+#define   NV10TCL_FOG_COORD_DIST_ORTHOGONAL_ABS						0x00000003
+#define  NV10TCL_FOG_ENABLE								0x000002a4
+#define  NV10TCL_FOG_COLOR								0x000002a8
+#define   NV10TCL_FOG_COLOR_R_SHIFT							0
+#define   NV10TCL_FOG_COLOR_R_MASK							0x000000ff
+#define   NV10TCL_FOG_COLOR_G_SHIFT							8
+#define   NV10TCL_FOG_COLOR_G_MASK							0x0000ff00
+#define   NV10TCL_FOG_COLOR_B_SHIFT							16
+#define   NV10TCL_FOG_COLOR_B_MASK							0x00ff0000
+#define   NV10TCL_FOG_COLOR_A_SHIFT							24
+#define   NV10TCL_FOG_COLOR_A_MASK							0xff000000
+#define  NV10TCL_VIEWPORT_CLIP_MODE							0x000002b4
+#define  NV10TCL_VIEWPORT_CLIP_HORIZ(x)							(0x000002c0+((x)*4))
+#define  NV10TCL_VIEWPORT_CLIP_HORIZ__SIZE						0x00000008
+#define   NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_L_SHIFT					0
+#define   NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_L_MASK					0x000007ff
+#define   NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_LEFT_ENABLE					(1 << 11)
+#define   NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_R_SHIFT					16
+#define   NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_R_MASK					0x07ff0000
+#define   NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_RIGHT_ENABLE					(1 << 27)
+#define  NV10TCL_VIEWPORT_CLIP_VERT(x)							(0x000002e0+((x)*4))
+#define  NV10TCL_VIEWPORT_CLIP_VERT__SIZE						0x00000008
+#define   NV10TCL_VIEWPORT_CLIP_VERT_CLIP_T_SHIFT					0
+#define   NV10TCL_VIEWPORT_CLIP_VERT_CLIP_T_MASK					0x000007ff
+#define   NV10TCL_VIEWPORT_CLIP_VERT_CLIP_TOP_ENABLE					(1 << 11)
+#define   NV10TCL_VIEWPORT_CLIP_VERT_CLIP_B_SHIFT					16
+#define   NV10TCL_VIEWPORT_CLIP_VERT_CLIP_B_MASK					0x07ff0000
+#define   NV10TCL_VIEWPORT_CLIP_VERT_CLIP_BOTTOM_ENABLE					(1 << 27)
+#define  NV10TCL_ALPHA_FUNC_ENABLE							0x00000300
+#define  NV10TCL_BLEND_FUNC_ENABLE							0x00000304
+#define  NV10TCL_CULL_FACE_ENABLE							0x00000308
+#define  NV10TCL_DEPTH_TEST_ENABLE							0x0000030c
+#define  NV10TCL_DITHER_ENABLE								0x00000310
+#define  NV10TCL_LIGHTING_ENABLE							0x00000314
+#define  NV10TCL_POINT_PARAMETERS_ENABLE						0x00000318
+#define  NV10TCL_POINT_SMOOTH_ENABLE							0x0000031c
+#define  NV10TCL_LINE_SMOOTH_ENABLE							0x00000320
+#define  NV10TCL_POLYGON_SMOOTH_ENABLE							0x00000324
+#define  NV10TCL_VERTEX_WEIGHT_ENABLE							0x00000328
+#define  NV10TCL_STENCIL_ENABLE								0x0000032c
+#define  NV10TCL_POLYGON_OFFSET_POINT_ENABLE						0x00000330
+#define  NV10TCL_POLYGON_OFFSET_LINE_ENABLE						0x00000334
+#define  NV10TCL_POLYGON_OFFSET_FILL_ENABLE						0x00000338
+#define  NV10TCL_ALPHA_FUNC_FUNC							0x0000033c
+#define   NV10TCL_ALPHA_FUNC_FUNC_NEVER							0x00000200
+#define   NV10TCL_ALPHA_FUNC_FUNC_LESS							0x00000201
+#define   NV10TCL_ALPHA_FUNC_FUNC_EQUAL							0x00000202
+#define   NV10TCL_ALPHA_FUNC_FUNC_LEQUAL						0x00000203
+#define   NV10TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
+#define   NV10TCL_ALPHA_FUNC_FUNC_NOTEQUAL						0x00000205
+#define   NV10TCL_ALPHA_FUNC_FUNC_GEQUAL						0x00000206
+#define   NV10TCL_ALPHA_FUNC_FUNC_ALWAYS						0x00000207
+#define  NV10TCL_ALPHA_FUNC_REF								0x00000340
+#define  NV10TCL_BLEND_FUNC_SRC								0x00000344
+#define   NV10TCL_BLEND_FUNC_SRC_ZERO							0x00000000
+#define   NV10TCL_BLEND_FUNC_SRC_ONE							0x00000001
+#define   NV10TCL_BLEND_FUNC_SRC_SRC_COLOR						0x00000300
+#define   NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_SRC_COLOR					0x00000301
+#define   NV10TCL_BLEND_FUNC_SRC_SRC_ALPHA						0x00000302
+#define   NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_SRC_ALPHA					0x00000303
+#define   NV10TCL_BLEND_FUNC_SRC_DST_ALPHA						0x00000304
+#define   NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_DST_ALPHA					0x00000305
+#define   NV10TCL_BLEND_FUNC_SRC_DST_COLOR						0x00000306
+#define   NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_DST_COLOR					0x00000307
+#define   NV10TCL_BLEND_FUNC_SRC_SRC_ALPHA_SATURATE					0x00000308
+#define   NV10TCL_BLEND_FUNC_SRC_CONSTANT_COLOR						0x00008001
+#define   NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_COLOR				0x00008002
+#define   NV10TCL_BLEND_FUNC_SRC_CONSTANT_ALPHA						0x00008003
+#define   NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_ALPHA				0x00008004
+#define  NV10TCL_BLEND_FUNC_DST								0x00000348
+#define   NV10TCL_BLEND_FUNC_DST_ZERO							0x00000000
+#define   NV10TCL_BLEND_FUNC_DST_ONE							0x00000001
+#define   NV10TCL_BLEND_FUNC_DST_SRC_COLOR						0x00000300
+#define   NV10TCL_BLEND_FUNC_DST_ONE_MINUS_SRC_COLOR					0x00000301
+#define   NV10TCL_BLEND_FUNC_DST_SRC_ALPHA						0x00000302
+#define   NV10TCL_BLEND_FUNC_DST_ONE_MINUS_SRC_ALPHA					0x00000303
+#define   NV10TCL_BLEND_FUNC_DST_DST_ALPHA						0x00000304
+#define   NV10TCL_BLEND_FUNC_DST_ONE_MINUS_DST_ALPHA					0x00000305
+#define   NV10TCL_BLEND_FUNC_DST_DST_COLOR						0x00000306
+#define   NV10TCL_BLEND_FUNC_DST_ONE_MINUS_DST_COLOR					0x00000307
+#define   NV10TCL_BLEND_FUNC_DST_SRC_ALPHA_SATURATE					0x00000308
+#define   NV10TCL_BLEND_FUNC_DST_CONSTANT_COLOR						0x00008001
+#define   NV10TCL_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_COLOR				0x00008002
+#define   NV10TCL_BLEND_FUNC_DST_CONSTANT_ALPHA						0x00008003
+#define   NV10TCL_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_ALPHA				0x00008004
+#define  NV10TCL_BLEND_COLOR								0x0000034c
+#define   NV10TCL_BLEND_COLOR_B_SHIFT							0
+#define   NV10TCL_BLEND_COLOR_B_MASK							0x000000ff
+#define   NV10TCL_BLEND_COLOR_G_SHIFT							8
+#define   NV10TCL_BLEND_COLOR_G_MASK							0x0000ff00
+#define   NV10TCL_BLEND_COLOR_R_SHIFT							16
+#define   NV10TCL_BLEND_COLOR_R_MASK							0x00ff0000
+#define   NV10TCL_BLEND_COLOR_A_SHIFT							24
+#define   NV10TCL_BLEND_COLOR_A_MASK							0xff000000
+#define  NV10TCL_BLEND_EQUATION								0x00000350
+#define   NV10TCL_BLEND_EQUATION_FUNC_ADD						0x00008006
+#define   NV10TCL_BLEND_EQUATION_MIN							0x00008007
+#define   NV10TCL_BLEND_EQUATION_MAX							0x00008008
+#define   NV10TCL_BLEND_EQUATION_FUNC_SUBTRACT						0x0000800a
+#define   NV10TCL_BLEND_EQUATION_FUNC_REVERSE_SUBTRACT					0x0000800b
+#define  NV10TCL_DEPTH_FUNC								0x00000354
+#define   NV10TCL_DEPTH_FUNC_NEVER							0x00000200
+#define   NV10TCL_DEPTH_FUNC_LESS							0x00000201
+#define   NV10TCL_DEPTH_FUNC_EQUAL							0x00000202
+#define   NV10TCL_DEPTH_FUNC_LEQUAL							0x00000203
+#define   NV10TCL_DEPTH_FUNC_GREATER							0x00000204
+#define   NV10TCL_DEPTH_FUNC_NOTEQUAL							0x00000205
+#define   NV10TCL_DEPTH_FUNC_GEQUAL							0x00000206
+#define   NV10TCL_DEPTH_FUNC_ALWAYS							0x00000207
+#define  NV10TCL_COLOR_MASK								0x00000358
+#define   NV10TCL_COLOR_MASK_B								(1 <<  0)
+#define   NV10TCL_COLOR_MASK_G								(1 <<  8)
+#define   NV10TCL_COLOR_MASK_R								(1 << 16)
+#define   NV10TCL_COLOR_MASK_A								(1 << 24)
+#define  NV10TCL_DEPTH_WRITE_ENABLE							0x0000035c
+#define  NV10TCL_STENCIL_MASK								0x00000360
+#define  NV10TCL_STENCIL_FUNC_FUNC							0x00000364
+#define   NV10TCL_STENCIL_FUNC_FUNC_NEVER						0x00000200
+#define   NV10TCL_STENCIL_FUNC_FUNC_LESS						0x00000201
+#define   NV10TCL_STENCIL_FUNC_FUNC_EQUAL						0x00000202
+#define   NV10TCL_STENCIL_FUNC_FUNC_LEQUAL						0x00000203
+#define   NV10TCL_STENCIL_FUNC_FUNC_GREATER						0x00000204
+#define   NV10TCL_STENCIL_FUNC_FUNC_NOTEQUAL						0x00000205
+#define   NV10TCL_STENCIL_FUNC_FUNC_GEQUAL						0x00000206
+#define   NV10TCL_STENCIL_FUNC_FUNC_ALWAYS						0x00000207
+#define  NV10TCL_STENCIL_FUNC_REF							0x00000368
+#define  NV10TCL_STENCIL_FUNC_MASK							0x0000036c
+#define  NV10TCL_STENCIL_OP_FAIL							0x00000370
+#define   NV10TCL_STENCIL_OP_FAIL_ZERO							0x00000000
+#define   NV10TCL_STENCIL_OP_FAIL_INVERT						0x0000150a
+#define   NV10TCL_STENCIL_OP_FAIL_KEEP							0x00001e00
+#define   NV10TCL_STENCIL_OP_FAIL_REPLACE						0x00001e01
+#define   NV10TCL_STENCIL_OP_FAIL_INCR							0x00001e02
+#define   NV10TCL_STENCIL_OP_FAIL_DECR							0x00001e03
+#define   NV10TCL_STENCIL_OP_FAIL_INCR_WRAP						0x00008507
+#define   NV10TCL_STENCIL_OP_FAIL_DECR_WRAP						0x00008508
+#define  NV10TCL_STENCIL_OP_ZFAIL							0x00000374
+#define   NV10TCL_STENCIL_OP_ZFAIL_ZERO							0x00000000
+#define   NV10TCL_STENCIL_OP_ZFAIL_INVERT						0x0000150a
+#define   NV10TCL_STENCIL_OP_ZFAIL_KEEP							0x00001e00
+#define   NV10TCL_STENCIL_OP_ZFAIL_REPLACE						0x00001e01
+#define   NV10TCL_STENCIL_OP_ZFAIL_INCR							0x00001e02
+#define   NV10TCL_STENCIL_OP_ZFAIL_DECR							0x00001e03
+#define   NV10TCL_STENCIL_OP_ZFAIL_INCR_WRAP						0x00008507
+#define   NV10TCL_STENCIL_OP_ZFAIL_DECR_WRAP						0x00008508
+#define  NV10TCL_STENCIL_OP_ZPASS							0x00000378
+#define   NV10TCL_STENCIL_OP_ZPASS_ZERO							0x00000000
+#define   NV10TCL_STENCIL_OP_ZPASS_INVERT						0x0000150a
+#define   NV10TCL_STENCIL_OP_ZPASS_KEEP							0x00001e00
+#define   NV10TCL_STENCIL_OP_ZPASS_REPLACE						0x00001e01
+#define   NV10TCL_STENCIL_OP_ZPASS_INCR							0x00001e02
+#define   NV10TCL_STENCIL_OP_ZPASS_DECR							0x00001e03
+#define   NV10TCL_STENCIL_OP_ZPASS_INCR_WRAP						0x00008507
+#define   NV10TCL_STENCIL_OP_ZPASS_DECR_WRAP						0x00008508
+#define  NV10TCL_SHADE_MODEL								0x0000037c
+#define   NV10TCL_SHADE_MODEL_FLAT							0x00001d00
+#define   NV10TCL_SHADE_MODEL_SMOOTH							0x00001d01
+#define  NV10TCL_LINE_WIDTH								0x00000380
+#define  NV10TCL_POLYGON_OFFSET_FACTOR							0x00000384
+#define  NV10TCL_POLYGON_OFFSET_UNITS							0x00000388
+#define  NV10TCL_POLYGON_MODE_FRONT							0x0000038c
+#define   NV10TCL_POLYGON_MODE_FRONT_POINT						0x00001b00
+#define   NV10TCL_POLYGON_MODE_FRONT_LINE						0x00001b01
+#define   NV10TCL_POLYGON_MODE_FRONT_FILL						0x00001b02
+#define  NV10TCL_POLYGON_MODE_BACK							0x00000390
+#define   NV10TCL_POLYGON_MODE_BACK_POINT						0x00001b00
+#define   NV10TCL_POLYGON_MODE_BACK_LINE						0x00001b01
+#define   NV10TCL_POLYGON_MODE_BACK_FILL						0x00001b02
+#define  NV10TCL_DEPTH_RANGE_NEAR							0x00000394
+#define  NV10TCL_DEPTH_RANGE_FAR							0x00000398
+#define  NV10TCL_CULL_FACE								0x0000039c
+#define   NV10TCL_CULL_FACE_FRONT							0x00000404
+#define   NV10TCL_CULL_FACE_BACK							0x00000405
+#define   NV10TCL_CULL_FACE_FRONT_AND_BACK						0x00000408
+#define  NV10TCL_FRONT_FACE								0x000003a0
+#define   NV10TCL_FRONT_FACE_CW								0x00000900
+#define   NV10TCL_FRONT_FACE_CCW							0x00000901
+#define  NV10TCL_NORMALIZE_ENABLE							0x000003a4
+#define  NV10TCL_MATERIAL_FACTOR_R							0x000003a8
+#define  NV10TCL_MATERIAL_FACTOR_G							0x000003ac
+#define  NV10TCL_MATERIAL_FACTOR_B							0x000003b0
+#define  NV10TCL_MATERIAL_FACTOR_A							0x000003b4
+#define  NV10TCL_SEPARATE_SPECULAR_ENABLE						0x000003b8
+#define  NV10TCL_ENABLED_LIGHTS								0x000003bc
+#define   NV10TCL_ENABLED_LIGHTS_0_SHIFT						0
+#define   NV10TCL_ENABLED_LIGHTS_0_MASK							0x00000003
+#define    NV10TCL_ENABLED_LIGHTS_0_DISABLED						0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_0_NONPOSITIONAL					0x00000001
+#define    NV10TCL_ENABLED_LIGHTS_0_POSITIONAL						0x00000002
+#define    NV10TCL_ENABLED_LIGHTS_0_DIRECTIONAL						0x00000003
+#define   NV10TCL_ENABLED_LIGHTS_1_SHIFT						2
+#define   NV10TCL_ENABLED_LIGHTS_1_MASK							0x0000000c
+#define    NV10TCL_ENABLED_LIGHTS_1_DISABLED						0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_1_NONPOSITIONAL					0x00000004
+#define    NV10TCL_ENABLED_LIGHTS_1_POSITIONAL						0x00000008
+#define    NV10TCL_ENABLED_LIGHTS_1_DIRECTIONAL						0x0000000c
+#define   NV10TCL_ENABLED_LIGHTS_2_SHIFT						4
+#define   NV10TCL_ENABLED_LIGHTS_2_MASK							0x00000030
+#define    NV10TCL_ENABLED_LIGHTS_2_DISABLED						0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_2_NONPOSITIONAL					0x00000010
+#define    NV10TCL_ENABLED_LIGHTS_2_POSITIONAL						0x00000020
+#define    NV10TCL_ENABLED_LIGHTS_2_DIRECTIONAL						0x00000030
+#define   NV10TCL_ENABLED_LIGHTS_3_SHIFT						6
+#define   NV10TCL_ENABLED_LIGHTS_3_MASK							0x000000c0
+#define    NV10TCL_ENABLED_LIGHTS_3_DISABLED						0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_3_NONPOSITIONAL					0x00000040
+#define    NV10TCL_ENABLED_LIGHTS_3_POSITIONAL						0x00000080
+#define    NV10TCL_ENABLED_LIGHTS_3_DIRECTIONAL						0x000000c0
+#define   NV10TCL_ENABLED_LIGHTS_4_SHIFT						8
+#define   NV10TCL_ENABLED_LIGHTS_4_MASK							0x00000300
+#define    NV10TCL_ENABLED_LIGHTS_4_DISABLED						0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_4_NONPOSITIONAL					0x00000100
+#define    NV10TCL_ENABLED_LIGHTS_4_POSITIONAL						0x00000200
+#define    NV10TCL_ENABLED_LIGHTS_4_DIRECTIONAL						0x00000300
+#define   NV10TCL_ENABLED_LIGHTS_5_SHIFT						10
+#define   NV10TCL_ENABLED_LIGHTS_5_MASK							0x00000c00
+#define    NV10TCL_ENABLED_LIGHTS_5_DISABLED						0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_5_NONPOSITIONAL					0x00000400
+#define    NV10TCL_ENABLED_LIGHTS_5_POSITIONAL						0x00000800
+#define    NV10TCL_ENABLED_LIGHTS_5_DIRECTIONAL						0x00000c00
+#define   NV10TCL_ENABLED_LIGHTS_6_SHIFT						12
+#define   NV10TCL_ENABLED_LIGHTS_6_MASK							0x00003000
+#define    NV10TCL_ENABLED_LIGHTS_6_DISABLED						0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_6_NONPOSITIONAL					0x00001000
+#define    NV10TCL_ENABLED_LIGHTS_6_POSITIONAL						0x00002000
+#define    NV10TCL_ENABLED_LIGHTS_6_DIRECTIONAL						0x00003000
+#define   NV10TCL_ENABLED_LIGHTS_7_SHIFT						14
+#define   NV10TCL_ENABLED_LIGHTS_7_MASK							0x0000c000
+#define    NV10TCL_ENABLED_LIGHTS_7_DISABLED						0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_7_NONPOSITIONAL					0x00004000
+#define    NV10TCL_ENABLED_LIGHTS_7_POSITIONAL						0x00008000
+#define    NV10TCL_ENABLED_LIGHTS_7_DIRECTIONAL						0x0000c000
+#define  NV10TCL_TX_GEN_MODE_S(x)							(0x000003c0+((x)*16))
+#define  NV10TCL_TX_GEN_MODE_S__SIZE							0x00000002
+#define   NV10TCL_TX_GEN_MODE_S_FALSE							0x00000000
+#define   NV10TCL_TX_GEN_MODE_S_EYE_LINEAR						0x00002400
+#define   NV10TCL_TX_GEN_MODE_S_OBJECT_LINEAR						0x00002401
+#define   NV10TCL_TX_GEN_MODE_S_SPHERE_MAP						0x00002402
+#define   NV10TCL_TX_GEN_MODE_S_NORMAL_MAP						0x00008511
+#define   NV10TCL_TX_GEN_MODE_S_REFLECTION_MAP						0x00008512
+#define  NV10TCL_TX_GEN_MODE_T(x)							(0x000003c4+((x)*16))
+#define  NV10TCL_TX_GEN_MODE_T__SIZE							0x00000002
+#define   NV10TCL_TX_GEN_MODE_T_FALSE							0x00000000
+#define   NV10TCL_TX_GEN_MODE_T_EYE_LINEAR						0x00002400
+#define   NV10TCL_TX_GEN_MODE_T_OBJECT_LINEAR						0x00002401
+#define   NV10TCL_TX_GEN_MODE_T_SPHERE_MAP						0x00002402
+#define   NV10TCL_TX_GEN_MODE_T_NORMAL_MAP						0x00008511
+#define   NV10TCL_TX_GEN_MODE_T_REFLECTION_MAP						0x00008512
+#define  NV10TCL_TX_GEN_MODE_R(x)							(0x000003c8+((x)*16))
+#define  NV10TCL_TX_GEN_MODE_R__SIZE							0x00000002
+#define   NV10TCL_TX_GEN_MODE_R_FALSE							0x00000000
+#define   NV10TCL_TX_GEN_MODE_R_EYE_LINEAR						0x00002400
+#define   NV10TCL_TX_GEN_MODE_R_OBJECT_LINEAR						0x00002401
+#define   NV10TCL_TX_GEN_MODE_R_SPHERE_MAP						0x00002402
+#define   NV10TCL_TX_GEN_MODE_R_NORMAL_MAP						0x00008511
+#define   NV10TCL_TX_GEN_MODE_R_REFLECTION_MAP						0x00008512
+#define  NV10TCL_TX_GEN_MODE_Q(x)							(0x000003cc+((x)*16))
+#define  NV10TCL_TX_GEN_MODE_Q__SIZE							0x00000002
+#define   NV10TCL_TX_GEN_MODE_Q_FALSE							0x00000000
+#define   NV10TCL_TX_GEN_MODE_Q_EYE_LINEAR						0x00002400
+#define   NV10TCL_TX_GEN_MODE_Q_OBJECT_LINEAR						0x00002401
+#define   NV10TCL_TX_GEN_MODE_Q_SPHERE_MAP						0x00002402
+#define   NV10TCL_TX_GEN_MODE_Q_NORMAL_MAP						0x00008511
+#define   NV10TCL_TX_GEN_MODE_Q_REFLECTION_MAP						0x00008512
+#define  NV10TCL_TX_MATRIX_ENABLE(x)							(0x000003e0+((x)*4))
+#define  NV10TCL_TX_MATRIX_ENABLE__SIZE							0x00000002
+#define  NV10TCL_VIEW_MATRIX_ENABLE							0x000003e8
+#define   NV10TCL_VIEW_MATRIX_ENABLE_MODELVIEW1						(1 <<  0)
+#define   NV10TCL_VIEW_MATRIX_ENABLE_MODELVIEW0						(1 <<  1)
+#define   NV10TCL_VIEW_MATRIX_ENABLE_PROJECTION						(1 <<  2)
+#define  NV10TCL_POINT_SIZE								0x000003ec
+#define  NV10TCL_MODELVIEW0_MATRIX(x)							(0x00000400+((x)*4))
+#define  NV10TCL_MODELVIEW0_MATRIX__SIZE						0x00000010
+#define  NV10TCL_MODELVIEW1_MATRIX(x)							(0x00000440+((x)*4))
+#define  NV10TCL_MODELVIEW1_MATRIX__SIZE						0x00000010
+#define  NV10TCL_INVERSE_MODELVIEW0_MATRIX(x)						(0x00000480+((x)*4))
+#define  NV10TCL_INVERSE_MODELVIEW0_MATRIX__SIZE					0x00000010
+#define  NV10TCL_INVERSE_MODELVIEW1_MATRIX(x)						(0x000004c0+((x)*4))
+#define  NV10TCL_INVERSE_MODELVIEW1_MATRIX__SIZE					0x00000010
+#define  NV10TCL_PROJECTION_MATRIX(x)							(0x00000500+((x)*4))
+#define  NV10TCL_PROJECTION_MATRIX__SIZE						0x00000010
+#define  NV10TCL_TX0_MATRIX(x)								(0x00000540+((x)*4))
+#define  NV10TCL_TX0_MATRIX__SIZE							0x00000010
+#define  NV10TCL_TX1_MATRIX(x)								(0x00000580+((x)*4))
+#define  NV10TCL_TX1_MATRIX__SIZE							0x00000010
+#define  NV10TCL_TX_GEN_COEFF_S_A(x)							(0x00000600+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_S_A__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_S_B(x)							(0x00000604+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_S_B__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_S_C(x)							(0x00000608+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_S_C__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_S_D(x)							(0x0000060c+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_S_D__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_T_A(x)							(0x00000610+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_T_A__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_T_B(x)							(0x00000614+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_T_B__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_T_C(x)							(0x00000618+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_T_C__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_T_D(x)							(0x0000061c+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_T_D__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_R_A(x)							(0x00000620+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_R_A__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_R_B(x)							(0x00000624+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_R_B__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_R_C(x)							(0x00000628+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_R_C__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_R_D(x)							(0x0000062c+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_R_D__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_Q_A(x)							(0x00000630+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_Q_A__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_Q_B(x)							(0x00000634+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_Q_B__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_Q_C(x)							(0x00000638+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_Q_C__SIZE							0x00000002
+#define  NV10TCL_TX_GEN_COEFF_Q_D(x)							(0x0000063c+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_Q_D__SIZE							0x00000002
+#define  NV10TCL_FOG_EQUATION_CONSTANT							0x00000680
+#define  NV10TCL_FOG_EQUATION_LINEAR							0x00000684
+#define  NV10TCL_FOG_EQUATION_QUADRATIC							0x00000688
+#define  NV10TCL_MATERIAL_SHININESS(x)							(0x000006a0+((x)*4))
+#define  NV10TCL_MATERIAL_SHININESS__SIZE						0x00000006
+#define  NV10TCL_LIGHT_MODEL_AMBIENT_R							0x000006c4
+#define  NV10TCL_LIGHT_MODEL_AMBIENT_G							0x000006c8
+#define  NV10TCL_LIGHT_MODEL_AMBIENT_B							0x000006cc
+#define  NV10TCL_VIEWPORT_TRANSLATE_X							0x000006e8
+#define  NV10TCL_VIEWPORT_TRANSLATE_Y							0x000006ec
+#define  NV10TCL_VIEWPORT_TRANSLATE_Z							0x000006f0
+#define  NV10TCL_VIEWPORT_TRANSLATE_W							0x000006f4
+#define  NV10TCL_POINT_PARAMETER(x)							(0x000006f8+((x)*4))
+#define  NV10TCL_POINT_PARAMETER__SIZE							0x00000008
+#define  NV10TCL_LIGHT_AMBIENT_R(x)							(0x00000800+((x)*128))
+#define  NV10TCL_LIGHT_AMBIENT_R__SIZE							0x00000008
+#define  NV10TCL_LIGHT_AMBIENT_G(x)							(0x00000804+((x)*128))
+#define  NV10TCL_LIGHT_AMBIENT_G__SIZE							0x00000008
+#define  NV10TCL_LIGHT_AMBIENT_B(x)							(0x00000808+((x)*128))
+#define  NV10TCL_LIGHT_AMBIENT_B__SIZE							0x00000008
+#define  NV10TCL_LIGHT_DIFFUSE_R(x)							(0x0000080c+((x)*128))
+#define  NV10TCL_LIGHT_DIFFUSE_R__SIZE							0x00000008
+#define  NV10TCL_LIGHT_DIFFUSE_G(x)							(0x00000810+((x)*128))
+#define  NV10TCL_LIGHT_DIFFUSE_G__SIZE							0x00000008
+#define  NV10TCL_LIGHT_DIFFUSE_B(x)							(0x00000814+((x)*128))
+#define  NV10TCL_LIGHT_DIFFUSE_B__SIZE							0x00000008
+#define  NV10TCL_LIGHT_SPECULAR_R(x)							(0x00000818+((x)*128))
+#define  NV10TCL_LIGHT_SPECULAR_R__SIZE							0x00000008
+#define  NV10TCL_LIGHT_SPECULAR_G(x)							(0x0000081c+((x)*128))
+#define  NV10TCL_LIGHT_SPECULAR_G__SIZE							0x00000008
+#define  NV10TCL_LIGHT_SPECULAR_B(x)							(0x00000820+((x)*128))
+#define  NV10TCL_LIGHT_SPECULAR_B__SIZE							0x00000008
+#define  NV10TCL_LIGHT_HALF_VECTOR_X(x)							(0x00000828+((x)*128))
+#define  NV10TCL_LIGHT_HALF_VECTOR_X__SIZE						0x00000008
+#define  NV10TCL_LIGHT_HALF_VECTOR_Y(x)							(0x0000082c+((x)*128))
+#define  NV10TCL_LIGHT_HALF_VECTOR_Y__SIZE						0x00000008
+#define  NV10TCL_LIGHT_HALF_VECTOR_Z(x)							(0x00000830+((x)*128))
+#define  NV10TCL_LIGHT_HALF_VECTOR_Z__SIZE						0x00000008
+#define  NV10TCL_LIGHT_DIRECTION_X(x)							(0x00000834+((x)*128))
+#define  NV10TCL_LIGHT_DIRECTION_X__SIZE						0x00000008
+#define  NV10TCL_LIGHT_DIRECTION_Y(x)							(0x00000838+((x)*128))
+#define  NV10TCL_LIGHT_DIRECTION_Y__SIZE						0x00000008
+#define  NV10TCL_LIGHT_DIRECTION_Z(x)							(0x0000083c+((x)*128))
+#define  NV10TCL_LIGHT_DIRECTION_Z__SIZE						0x00000008
+#define  NV10TCL_LIGHT_SPOT_CUTOFF_A(x)							(0x00000840+((x)*128))
+#define  NV10TCL_LIGHT_SPOT_CUTOFF_A__SIZE						0x00000008
+#define  NV10TCL_LIGHT_SPOT_CUTOFF_B(x)							(0x00000844+((x)*128))
+#define  NV10TCL_LIGHT_SPOT_CUTOFF_B__SIZE						0x00000008
+#define  NV10TCL_LIGHT_SPOT_CUTOFF_C(x)							(0x00000848+((x)*128))
+#define  NV10TCL_LIGHT_SPOT_CUTOFF_C__SIZE						0x00000008
+#define  NV10TCL_LIGHT_SPOT_DIR_X(x)							(0x0000084c+((x)*128))
+#define  NV10TCL_LIGHT_SPOT_DIR_X__SIZE							0x00000008
+#define  NV10TCL_LIGHT_SPOT_DIR_Y(x)							(0x00000850+((x)*128))
+#define  NV10TCL_LIGHT_SPOT_DIR_Y__SIZE							0x00000008
+#define  NV10TCL_LIGHT_SPOT_DIR_Z(x)							(0x00000854+((x)*128))
+#define  NV10TCL_LIGHT_SPOT_DIR_Z__SIZE							0x00000008
+#define  NV10TCL_LIGHT_SPOT_CUTOFF_D(x)							(0x00000858+((x)*128))
+#define  NV10TCL_LIGHT_SPOT_CUTOFF_D__SIZE						0x00000008
+#define  NV10TCL_LIGHT_POSITION_X(x)							(0x0000085c+((x)*128))
+#define  NV10TCL_LIGHT_POSITION_X__SIZE							0x00000008
+#define  NV10TCL_LIGHT_POSITION_Y(x)							(0x00000860+((x)*128))
+#define  NV10TCL_LIGHT_POSITION_Y__SIZE							0x00000008
+#define  NV10TCL_LIGHT_POSITION_Z(x)							(0x00000864+((x)*128))
+#define  NV10TCL_LIGHT_POSITION_Z__SIZE							0x00000008
+#define  NV10TCL_LIGHT_ATTENUATION_CONSTANT(x)						(0x00000868+((x)*128))
+#define  NV10TCL_LIGHT_ATTENUATION_CONSTANT__SIZE					0x00000008
+#define  NV10TCL_LIGHT_ATTENUATION_LINEAR(x)						(0x0000086c+((x)*128))
+#define  NV10TCL_LIGHT_ATTENUATION_LINEAR__SIZE						0x00000008
+#define  NV10TCL_LIGHT_ATTENUATION_QUADRATIC(x)						(0x00000870+((x)*128))
+#define  NV10TCL_LIGHT_ATTENUATION_QUADRATIC__SIZE					0x00000008
+#define  NV10TCL_VERTEX_POS_3F_X							0x00000c00
+#define  NV10TCL_VERTEX_POS_3F_Y							0x00000c04
+#define  NV10TCL_VERTEX_POS_3F_Z							0x00000c08
+#define  NV10TCL_VERTEX_POS_4F_X							0x00000c18
+#define  NV10TCL_VERTEX_POS_4F_Y							0x00000c1c
+#define  NV10TCL_VERTEX_POS_4F_Z							0x00000c20
+#define  NV10TCL_VERTEX_POS_4F_W							0x00000c24
+#define  NV10TCL_VERTEX_NOR_3F_X							0x00000c30
+#define  NV10TCL_VERTEX_NOR_3F_Y							0x00000c34
+#define  NV10TCL_VERTEX_NOR_3F_Z							0x00000c38
+#define  NV10TCL_VERTEX_NOR_3I_XY							0x00000c40
+#define   NV10TCL_VERTEX_NOR_3I_XY_X_SHIFT						0
+#define   NV10TCL_VERTEX_NOR_3I_XY_X_MASK						0x0000ffff
+#define   NV10TCL_VERTEX_NOR_3I_XY_Y_SHIFT						16
+#define   NV10TCL_VERTEX_NOR_3I_XY_Y_MASK						0xffff0000
+#define  NV10TCL_VERTEX_NOR_3I_Z							0x00000c44
+#define   NV10TCL_VERTEX_NOR_3I_Z_Z_SHIFT						0
+#define   NV10TCL_VERTEX_NOR_3I_Z_Z_MASK						0x0000ffff
+#define  NV10TCL_VERTEX_COL_4F_R							0x00000c50
+#define  NV10TCL_VERTEX_COL_4F_G							0x00000c54
+#define  NV10TCL_VERTEX_COL_4F_B							0x00000c58
+#define  NV10TCL_VERTEX_COL_4F_A							0x00000c5c
+#define  NV10TCL_VERTEX_COL_3F_R							0x00000c60
+#define  NV10TCL_VERTEX_COL_3F_G							0x00000c64
+#define  NV10TCL_VERTEX_COL_3F_B							0x00000c68
+#define  NV10TCL_VERTEX_COL_4I								0x00000c6c
+#define   NV10TCL_VERTEX_COL_4I_R_SHIFT							0
+#define   NV10TCL_VERTEX_COL_4I_R_MASK							0x000000ff
+#define   NV10TCL_VERTEX_COL_4I_G_SHIFT							8
+#define   NV10TCL_VERTEX_COL_4I_G_MASK							0x0000ff00
+#define   NV10TCL_VERTEX_COL_4I_B_SHIFT							16
+#define   NV10TCL_VERTEX_COL_4I_B_MASK							0x00ff0000
+#define   NV10TCL_VERTEX_COL_4I_A_SHIFT							24
+#define   NV10TCL_VERTEX_COL_4I_A_MASK							0xff000000
+#define  NV10TCL_VERTEX_COL2_3F_R							0x00000c80
+#define  NV10TCL_VERTEX_COL2_3F_G							0x00000c84
+#define  NV10TCL_VERTEX_COL2_3F_B							0x00000c88
+#define  NV10TCL_VERTEX_COL2_3I								0x00000c8c
+#define   NV10TCL_VERTEX_COL2_3I_R_SHIFT						0
+#define   NV10TCL_VERTEX_COL2_3I_R_MASK							0x000000ff
+#define   NV10TCL_VERTEX_COL2_3I_G_SHIFT						8
+#define   NV10TCL_VERTEX_COL2_3I_G_MASK							0x0000ff00
+#define   NV10TCL_VERTEX_COL2_3I_B_SHIFT						16
+#define   NV10TCL_VERTEX_COL2_3I_B_MASK							0x00ff0000
+#define  NV10TCL_VERTEX_TX0_2F_S							0x00000c90
+#define  NV10TCL_VERTEX_TX0_2F_T							0x00000c94
+#define  NV10TCL_VERTEX_TX0_2I								0x00000c98
+#define   NV10TCL_VERTEX_TX0_2I_S_SHIFT							0
+#define   NV10TCL_VERTEX_TX0_2I_S_MASK							0x0000ffff
+#define   NV10TCL_VERTEX_TX0_2I_T_SHIFT							16
+#define   NV10TCL_VERTEX_TX0_2I_T_MASK							0xffff0000
+#define  NV10TCL_VERTEX_TX0_4F_S							0x00000ca0
+#define  NV10TCL_VERTEX_TX0_4F_T							0x00000ca4
+#define  NV10TCL_VERTEX_TX0_4F_R							0x00000ca8
+#define  NV10TCL_VERTEX_TX0_4F_Q							0x00000cac
+#define  NV10TCL_VERTEX_TX0_4I_ST							0x00000cb0
+#define   NV10TCL_VERTEX_TX0_4I_ST_S_SHIFT						0
+#define   NV10TCL_VERTEX_TX0_4I_ST_S_MASK						0x0000ffff
+#define   NV10TCL_VERTEX_TX0_4I_ST_T_SHIFT						16
+#define   NV10TCL_VERTEX_TX0_4I_ST_T_MASK						0xffff0000
+#define  NV10TCL_VERTEX_TX0_4I_RQ							0x00000cb4
+#define   NV10TCL_VERTEX_TX0_4I_RQ_R_SHIFT						0
+#define   NV10TCL_VERTEX_TX0_4I_RQ_R_MASK						0x0000ffff
+#define   NV10TCL_VERTEX_TX0_4I_RQ_Q_SHIFT						16
+#define   NV10TCL_VERTEX_TX0_4I_RQ_Q_MASK						0xffff0000
+#define  NV10TCL_VERTEX_TX1_2F_S							0x00000cb8
+#define  NV10TCL_VERTEX_TX1_2F_T							0x00000cbc
+#define  NV10TCL_VERTEX_TX1_2I								0x00000cc0
+#define   NV10TCL_VERTEX_TX1_2I_S_SHIFT							0
+#define   NV10TCL_VERTEX_TX1_2I_S_MASK							0x0000ffff
+#define   NV10TCL_VERTEX_TX1_2I_T_SHIFT							16
+#define   NV10TCL_VERTEX_TX1_2I_T_MASK							0xffff0000
+#define  NV10TCL_VERTEX_TX1_4F_S							0x00000cc8
+#define  NV10TCL_VERTEX_TX1_4F_T							0x00000ccc
+#define  NV10TCL_VERTEX_TX1_4F_R							0x00000cd0
+#define  NV10TCL_VERTEX_TX1_4F_Q							0x00000cd4
+#define  NV10TCL_VERTEX_TX1_4I_ST							0x00000cd8
+#define   NV10TCL_VERTEX_TX1_4I_ST_S_SHIFT						0
+#define   NV10TCL_VERTEX_TX1_4I_ST_S_MASK						0x0000ffff
+#define   NV10TCL_VERTEX_TX1_4I_ST_T_SHIFT						16
+#define   NV10TCL_VERTEX_TX1_4I_ST_T_MASK						0xffff0000
+#define  NV10TCL_VERTEX_TX1_4I_RQ							0x00000cdc
+#define   NV10TCL_VERTEX_TX1_4I_RQ_R_SHIFT						0
+#define   NV10TCL_VERTEX_TX1_4I_RQ_R_MASK						0x0000ffff
+#define   NV10TCL_VERTEX_TX1_4I_RQ_Q_SHIFT						16
+#define   NV10TCL_VERTEX_TX1_4I_RQ_Q_MASK						0xffff0000
+#define  NV10TCL_VERTEX_FOG_1F								0x00000ce0
+#define  NV10TCL_VERTEX_WGH_1F								0x00000ce4
+#define  NV10TCL_EDGEFLAG_ENABLE							0x00000cec
+#define  NV10TCL_VERTEX_ARRAY_VALIDATE							0x00000cf0
+#define  NV10TCL_VTXBUF_ADDRESS(x)							(0x00000d00+((x)*8))
+#define  NV10TCL_VTXBUF_ADDRESS__SIZE							0x00000008
+#define  NV10TCL_VTXFMT(x)								(0x00000d04+((x)*8))
+#define  NV10TCL_VTXFMT__SIZE								0x00000008
+#define   NV10TCL_VTXFMT_TYPE_SHIFT							0
+#define   NV10TCL_VTXFMT_TYPE_MASK							0x0000000f
+#define    NV10TCL_VTXFMT_TYPE_BYTE_BGRA						0x00000000
+#define    NV10TCL_VTXFMT_TYPE_SHORT							0x00000001
+#define    NV10TCL_VTXFMT_TYPE_FLOAT							0x00000002
+#define    NV10TCL_VTXFMT_TYPE_BYTE_RGBA						0x00000004
+#define   NV10TCL_VTXFMT_FIELDS_SHIFT							4
+#define   NV10TCL_VTXFMT_FIELDS_MASK							0x000000f0
+#define   NV10TCL_VTXFMT_STRIDE_SHIFT							8
+#define   NV10TCL_VTXFMT_STRIDE_MASK							0x0000ff00
+#define   NV10TCL_VTXFMT_POS_HOMOGENEOUS						(1 << 24)
+#define  NV10TCL_VERTEX_BEGIN_END							0x00000dfc
+#define   NV10TCL_VERTEX_BEGIN_END_STOP							0x00000000
+#define   NV10TCL_VERTEX_BEGIN_END_POINTS						0x00000001
+#define   NV10TCL_VERTEX_BEGIN_END_LINES						0x00000002
+#define   NV10TCL_VERTEX_BEGIN_END_LINE_LOOP						0x00000003
+#define   NV10TCL_VERTEX_BEGIN_END_LINE_STRIP						0x00000004
+#define   NV10TCL_VERTEX_BEGIN_END_TRIANGLES						0x00000005
+#define   NV10TCL_VERTEX_BEGIN_END_TRIANGLE_STRIP					0x00000006
+#define   NV10TCL_VERTEX_BEGIN_END_TRIANGLE_FAN						0x00000007
+#define   NV10TCL_VERTEX_BEGIN_END_QUADS						0x00000008
+#define   NV10TCL_VERTEX_BEGIN_END_QUAD_STRIP						0x00000009
+#define   NV10TCL_VERTEX_BEGIN_END_POLYGON						0x0000000a
+#define  NV10TCL_VB_ELEMENT_U16								0x00000e00
+#define   NV10TCL_VB_ELEMENT_U16_I0_SHIFT						0
+#define   NV10TCL_VB_ELEMENT_U16_I0_MASK						0x0000ffff
+#define   NV10TCL_VB_ELEMENT_U16_I1_SHIFT						16
+#define   NV10TCL_VB_ELEMENT_U16_I1_MASK						0xffff0000
+#define  NV10TCL_VB_ELEMENT_U32								0x00001100
+#define  NV10TCL_VERTEX_BUFFER_BEGIN_END						0x000013fc
+#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_STOP						0x00000000
+#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_POINTS					0x00000001
+#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_LINES						0x00000002
+#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_LINE_LOOP					0x00000003
+#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_LINE_STRIP					0x00000004
+#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_TRIANGLES					0x00000005
+#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_TRIANGLE_STRIP				0x00000006
+#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_TRIANGLE_FAN					0x00000007
+#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_QUADS						0x00000008
+#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_QUAD_STRIP					0x00000009
+#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_POLYGON					0x0000000a
+#define  NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS						0x00001400
+#define   NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS_FIRST_SHIFT					0
+#define   NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS_FIRST_MASK					0x0000ffff
+#define   NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS_LAST_SHIFT					24
+#define   NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS_LAST_MASK					0xff000000
+#define  NV10TCL_VERTEX_ARRAY_DATA							0x00001800
+
+
+#define NV11TCL										0x00000096
+
+#define  NV11TCL_COLOR_LOGIC_OP_ENABLE							0x00000d40
+#define  NV11TCL_COLOR_LOGIC_OP_OP							0x00000d44
+#define   NV11TCL_COLOR_LOGIC_OP_OP_CLEAR						0x00001500
+#define   NV11TCL_COLOR_LOGIC_OP_OP_AND							0x00001501
+#define   NV11TCL_COLOR_LOGIC_OP_OP_AND_REVERSE						0x00001502
+#define   NV11TCL_COLOR_LOGIC_OP_OP_COPY						0x00001503
+#define   NV11TCL_COLOR_LOGIC_OP_OP_AND_INVERTED					0x00001504
+#define   NV11TCL_COLOR_LOGIC_OP_OP_NOOP						0x00001505
+#define   NV11TCL_COLOR_LOGIC_OP_OP_XOR							0x00001506
+#define   NV11TCL_COLOR_LOGIC_OP_OP_OR							0x00001507
+#define   NV11TCL_COLOR_LOGIC_OP_OP_NOR							0x00001508
+#define   NV11TCL_COLOR_LOGIC_OP_OP_EQUIV						0x00001509
+#define   NV11TCL_COLOR_LOGIC_OP_OP_INVERT						0x0000150a
+#define   NV11TCL_COLOR_LOGIC_OP_OP_OR_REVERSE						0x0000150b
+#define   NV11TCL_COLOR_LOGIC_OP_OP_COPY_INVERTED					0x0000150c
+#define   NV11TCL_COLOR_LOGIC_OP_OP_OR_INVERTED						0x0000150d
+#define   NV11TCL_COLOR_LOGIC_OP_OP_NAND						0x0000150e
+#define   NV11TCL_COLOR_LOGIC_OP_OP_SET							0x0000150f
+
+
+#define NV17TCL										0x00000099
+
+#define  NV17TCL_DMA_IN_MEMORY4								0x000001ac
+#define  NV17TCL_DMA_IN_MEMORY5								0x000001b0
+#define  NV17TCL_COLOR_MASK_ENABLE							0x000002bc
+#define  NV17TCL_LMA_DEPTH_BUFFER_PITCH							0x00000d5c
+#define  NV17TCL_LMA_DEPTH_BUFFER_OFFSET						0x00000d60
+#define  NV17TCL_LMA_DEPTH_FILL_VALUE							0x00000d68
+#define  NV17TCL_LMA_DEPTH_BUFFER_CLEAR							0x00000d6c
+#define  NV17TCL_LMA_DEPTH_WINDOW_X							0x00001638
+#define  NV17TCL_LMA_DEPTH_WINDOW_Y							0x0000163c
+#define  NV17TCL_LMA_DEPTH_WINDOW_Z							0x00001640
+#define  NV17TCL_LMA_DEPTH_WINDOW_W							0x00001644
+#define  NV17TCL_LMA_DEPTH_ENABLE							0x00001658
+
+
+#define NV03_CONTEXT_SURFACES_2D							0x00000058
+
+#define  NV03_CONTEXT_SURFACES_2D_SYNCHRONIZE						0x00000100
+#define  NV03_CONTEXT_SURFACES_2D_DMA_NOTIFY						0x00000180
+#define  NV03_CONTEXT_SURFACES_2D_DMA_SOURCE						0x00000184
+#define  NV03_CONTEXT_SURFACES_2D_DMA_DESTIN						0x00000188
+#define  NV03_CONTEXT_SURFACES_2D_COLOR_FORMAT						0x00000300
+#define  NV03_CONTEXT_SURFACES_2D_PITCH							0x00000304
+#define   NV03_CONTEXT_SURFACES_2D_PITCH_SOURCE_SHIFT					0
+#define   NV03_CONTEXT_SURFACES_2D_PITCH_SOURCE_MASK					0x0000ffff
+#define   NV03_CONTEXT_SURFACES_2D_PITCH_DESTIN_SHIFT					16
+#define   NV03_CONTEXT_SURFACES_2D_PITCH_DESTIN_MASK					0xffff0000
+#define  NV03_CONTEXT_SURFACES_2D_OFFSET_SOURCE						0x00000308
+#define  NV03_CONTEXT_SURFACES_2D_OFFSET_DESTIN						0x0000030c
+
+
+#define NV03_CONTEXT_SURFACES_3D							0x0000005a
+
+#define  NV03_CONTEXT_SURFACES_3D_SYNCHRONIZE						0x00000100
+#define  NV03_CONTEXT_SURFACES_3D_DMA_NOTIFY						0x00000180
+#define  NV03_CONTEXT_SURFACES_3D_DMA_SURFACE						0x00000184
+#define  NV03_CONTEXT_SURFACES_3D_PITCH							0x00000300
+#define  NV03_CONTEXT_SURFACES_3D_OFFSET_COLOR						0x00000304
+#define  NV03_CONTEXT_SURFACES_3D_OFFSET_ZETA						0x00000308
+
+
+#define NV04_INDEXED_IMAGE_FROM_CPU							0x00000060
+
+#define  NV04_INDEXED_IMAGE_FROM_CPU_NOP						0x00000100
+#define  NV04_INDEXED_IMAGE_FROM_CPU_NOTIFY						0x00000104
+#define  NV04_INDEXED_IMAGE_FROM_CPU_PATCH						0x0000010c
+#define  NV04_INDEXED_IMAGE_FROM_CPU_DMA_NOTIFY						0x00000180
+#define  NV04_INDEXED_IMAGE_FROM_CPU_DMA_LUT						0x00000184
+#define  NV04_INDEXED_IMAGE_FROM_CPU_COLOR_KEY						0x00000188
+#define  NV04_INDEXED_IMAGE_FROM_CPU_CLIP_RECTANGLE					0x0000018c
+#define  NV04_INDEXED_IMAGE_FROM_CPU_PATTERN						0x00000190
+#define  NV04_INDEXED_IMAGE_FROM_CPU_ROP						0x00000194
+#define  NV04_INDEXED_IMAGE_FROM_CPU_BETA1						0x00000198
+#define  NV04_INDEXED_IMAGE_FROM_CPU_BETA4						0x0000019c
+#define  NV04_INDEXED_IMAGE_FROM_CPU_SURFACE						0x000001a0
+#define  NV04_INDEXED_IMAGE_FROM_CPU_OPERATION						0x000003e4
+#define  NV04_INDEXED_IMAGE_FROM_CPU_COLOR_FORMAT					0x000003e8
+#define  NV04_INDEXED_IMAGE_FROM_CPU_INDEX_FORMAT					0x000003ec
+#define  NV04_INDEXED_IMAGE_FROM_CPU_LUT_OFFSET						0x000003f0
+#define  NV04_INDEXED_IMAGE_FROM_CPU_POINT						0x000003f4
+#define  NV04_INDEXED_IMAGE_FROM_CPU_SIZE_OUT						0x000003f8
+#define  NV04_INDEXED_IMAGE_FROM_CPU_SIZE_IN						0x000003fc
+#define  NV04_INDEXED_IMAGE_FROM_CPU_COLOR(x)						(0x00000400+((x)*4))
+#define  NV04_INDEXED_IMAGE_FROM_CPU_COLOR__SIZE					0x00000700
+
+
+#define NV05_INDEXED_IMAGE_FROM_CPU							0x00000064
+
+#define  NV05_INDEXED_IMAGE_FROM_CPU_COLOR_CONVERSION					0x000003e0
+
+
+#define NV03_CHANNEL_PIO								0x0000006a
+
+
+
+#define NV03_CHANNEL_DMA								0x0000006b
+
+
+
+#define NV04_BETA_SOLID									0x00000072
+
+#define  NV04_BETA_SOLID_NOP								0x00000100
+#define  NV04_BETA_SOLID_NOTIFY								0x00000104
+#define  NV04_BETA_SOLID_DMA_NOTIFY							0x00000180
+#define  NV04_BETA_SOLID_BETA_OUTPUT							0x00000200
+#define  NV04_BETA_SOLID_BETA_FACTOR							0x00000300
+
+
+#define NV10_TEXTURE_FROM_CPU								0x0000007b
+
+#define  NV10_TEXTURE_FROM_CPU_NOP							0x00000100
+#define  NV10_TEXTURE_FROM_CPU_NOTIFY							0x00000104
+#define  NV10_TEXTURE_FROM_CPU_WAIT_FOR_IDLE						0x00000108
+#define  NV10_TEXTURE_FROM_CPU_PM_TRIGGER						0x00000140
+#define  NV10_TEXTURE_FROM_CPU_DMA_NOTIFY						0x00000180
+#define  NV10_TEXTURE_FROM_CPU_SURFACE							0x00000184
+#define  NV10_TEXTURE_FROM_CPU_COLOR_FORMAT						0x00000300
+#define  NV10_TEXTURE_FROM_CPU_POINT							0x00000304
+#define   NV10_TEXTURE_FROM_CPU_POINT_X_SHIFT						0
+#define   NV10_TEXTURE_FROM_CPU_POINT_X_MASK						0x0000ffff
+#define   NV10_TEXTURE_FROM_CPU_POINT_Y_SHIFT						16
+#define   NV10_TEXTURE_FROM_CPU_POINT_Y_MASK						0xffff0000
+#define  NV10_TEXTURE_FROM_CPU_SIZE							0x00000308
+#define   NV10_TEXTURE_FROM_CPU_SIZE_W_SHIFT						0
+#define   NV10_TEXTURE_FROM_CPU_SIZE_W_MASK						0x0000ffff
+#define   NV10_TEXTURE_FROM_CPU_SIZE_H_SHIFT						16
+#define   NV10_TEXTURE_FROM_CPU_SIZE_H_MASK						0xffff0000
+#define  NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL						0x0000030c
+#define   NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_X_SHIFT					0
+#define   NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_X_MASK					0x0000ffff
+#define   NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_W_SHIFT					16
+#define   NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_W_MASK					0xffff0000
+#define  NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL						0x00000310
+#define   NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_Y_SHIFT					0
+#define   NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_Y_MASK					0x0000ffff
+#define   NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_H_SHIFT					16
+#define   NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_H_MASK					0xffff0000
+#define  NV10_TEXTURE_FROM_CPU_COLOR(x)							(0x00000400+((x)*4))
+#define  NV10_TEXTURE_FROM_CPU_COLOR__SIZE						0x00000700
+
+
+#define NV30_TEXTURE_FROM_CPU								0x0000037b
+
+
+
+#define NV40_TEXTURE_FROM_CPU								0x0000307b
+
+
+
+#define NV10_VIDEO_DISPLAY								0x0000007c
+
+
+
+#define NV20TCL										0x00000097
+
+#define  NV20TCL_NOP									0x00000100
+#define  NV20TCL_NOTIFY									0x00000104
+#define  NV20TCL_DMA_NOTIFY								0x00000180
+#define  NV20TCL_DMA_TEXTURE0								0x00000184
+#define  NV20TCL_DMA_TEXTURE1								0x00000188
+#define  NV20TCL_DMA_COLOR								0x00000194
+#define  NV20TCL_DMA_ZETA								0x00000198
+#define  NV20TCL_DMA_VTXBUF0								0x0000019c
+#define  NV20TCL_DMA_VTXBUF1								0x000001a0
+#define  NV20TCL_DMA_FENCE								0x000001a4
+#define  NV20TCL_DMA_QUERY								0x000001a8
+#define  NV20TCL_RT_HORIZ								0x00000200
+#define   NV20TCL_RT_HORIZ_X_SHIFT							0
+#define   NV20TCL_RT_HORIZ_X_MASK							0x0000ffff
+#define   NV20TCL_RT_HORIZ_W_SHIFT							16
+#define   NV20TCL_RT_HORIZ_W_MASK							0xffff0000
+#define  NV20TCL_RT_VERT								0x00000204
+#define   NV20TCL_RT_VERT_Y_SHIFT							0
+#define   NV20TCL_RT_VERT_Y_MASK							0x0000ffff
+#define   NV20TCL_RT_VERT_H_SHIFT							16
+#define   NV20TCL_RT_VERT_H_MASK							0xffff0000
+#define  NV20TCL_RT_FORMAT								0x00000208
+#define   NV20TCL_RT_FORMAT_TYPE_SHIFT							8
+#define   NV20TCL_RT_FORMAT_TYPE_MASK							0x00000f00
+#define    NV20TCL_RT_FORMAT_TYPE_LINEAR						0x00000100
+#define    NV20TCL_RT_FORMAT_TYPE_SWIZZLED						0x00000200
+#define   NV20TCL_RT_FORMAT_COLOR_SHIFT							0
+#define   NV20TCL_RT_FORMAT_COLOR_MASK							0x0000001f
+#define    NV20TCL_RT_FORMAT_COLOR_R5G6B5						0x00000003
+#define    NV20TCL_RT_FORMAT_COLOR_X8R8G8B8						0x00000005
+#define    NV20TCL_RT_FORMAT_COLOR_A8R8G8B8						0x00000008
+#define    NV20TCL_RT_FORMAT_COLOR_B8							0x00000009
+#define    NV20TCL_RT_FORMAT_COLOR_UNKNOWN						0x0000000d
+#define    NV20TCL_RT_FORMAT_COLOR_X8B8G8R8						0x0000000f
+#define    NV20TCL_RT_FORMAT_COLOR_A8B8G8R8						0x00000010
+#define  NV20TCL_RT_PITCH								0x0000020c
+#define   NV20TCL_RT_PITCH_COLOR_PITCH_SHIFT						0
+#define   NV20TCL_RT_PITCH_COLOR_PITCH_MASK						0x0000ffff
+#define   NV20TCL_RT_PITCH_ZETA_PITCH_SHIFT						16
+#define   NV20TCL_RT_PITCH_ZETA_PITCH_MASK						0xffff0000
+#define  NV20TCL_COLOR_OFFSET								0x00000210
+#define  NV20TCL_ZETA_OFFSET								0x00000214
+#define  NV20TCL_RC_IN_ALPHA(x)								(0x00000260+((x)*4))
+#define  NV20TCL_RC_IN_ALPHA__SIZE							0x00000008
+#define   NV20TCL_RC_IN_ALPHA_D_INPUT_SHIFT						0
+#define   NV20TCL_RC_IN_ALPHA_D_INPUT_MASK						0x0000000f
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0					0x00000001
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1					0x00000002
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_FOG						0x00000003
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR					0x00000004
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR					0x00000005
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE0						0x00000008
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE1						0x00000009
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_SPARE0						0x0000000c
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_SPARE1						0x0000000d
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F					0x0000000f
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE2						0x0000000a
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE3						0x0000000b
+#define   NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE						(1 <<  4)
+#define    NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE					0x00000000
+#define    NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA					0x00000010
+#define   NV20TCL_RC_IN_ALPHA_D_MAPPING_SHIFT						5
+#define   NV20TCL_RC_IN_ALPHA_D_MAPPING_MASK						0x000000e0
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT				0x00000020
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL					0x00000040
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE					0x00000060
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL				0x00000080
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE				0x000000a0
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY				0x000000c0
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE					0x000000e0
+#define   NV20TCL_RC_IN_ALPHA_C_INPUT_SHIFT						8
+#define   NV20TCL_RC_IN_ALPHA_C_INPUT_MASK						0x00000f00
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0					0x00000100
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1					0x00000200
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_FOG						0x00000300
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR					0x00000400
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR					0x00000500
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE0						0x00000800
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE1						0x00000900
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_SPARE0						0x00000c00
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_SPARE1						0x00000d00
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F					0x00000f00
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE2						0x00000a00
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE3						0x00000b00
+#define   NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE						(1 << 12)
+#define    NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE					0x00000000
+#define    NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA					0x00001000
+#define   NV20TCL_RC_IN_ALPHA_C_MAPPING_SHIFT						13
+#define   NV20TCL_RC_IN_ALPHA_C_MAPPING_MASK						0x0000e000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT				0x00002000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL					0x00004000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE					0x00006000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL				0x00008000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE				0x0000a000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY				0x0000c000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE					0x0000e000
+#define   NV20TCL_RC_IN_ALPHA_B_INPUT_SHIFT						16
+#define   NV20TCL_RC_IN_ALPHA_B_INPUT_MASK						0x000f0000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0					0x00010000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1					0x00020000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_FOG						0x00030000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR					0x00040000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR					0x00050000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE0						0x00080000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE1						0x00090000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_SPARE0						0x000c0000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_SPARE1						0x000d0000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000e0000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F					0x000f0000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE2						0x000a0000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE3						0x000b0000
+#define   NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE						(1 << 20)
+#define    NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE					0x00000000
+#define    NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA					0x00100000
+#define   NV20TCL_RC_IN_ALPHA_B_MAPPING_SHIFT						21
+#define   NV20TCL_RC_IN_ALPHA_B_MAPPING_MASK						0x00e00000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT				0x00200000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL					0x00400000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE					0x00600000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL				0x00800000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE				0x00a00000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY				0x00c00000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE					0x00e00000
+#define   NV20TCL_RC_IN_ALPHA_A_INPUT_SHIFT						24
+#define   NV20TCL_RC_IN_ALPHA_A_INPUT_MASK						0x0f000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0					0x01000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1					0x02000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_FOG						0x03000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR					0x04000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR					0x05000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE0						0x08000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE1						0x09000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_SPARE0						0x0c000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_SPARE1						0x0d000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0e000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F					0x0f000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE2						0x0a000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE3						0x0b000000
+#define   NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE						(1 << 28)
+#define    NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE					0x00000000
+#define    NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA					0x10000000
+#define   NV20TCL_RC_IN_ALPHA_A_MAPPING_SHIFT						29
+#define   NV20TCL_RC_IN_ALPHA_A_MAPPING_MASK						0xe0000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT				0x20000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL					0x40000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE					0x60000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL				0x80000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE				0xa0000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY				0xc0000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE					0xe0000000
+#define  NV20TCL_RC_FINAL0								0x00000288
+#define   NV20TCL_RC_FINAL0_D_INPUT_SHIFT						0
+#define   NV20TCL_RC_FINAL0_D_INPUT_MASK						0x0000000f
+#define    NV20TCL_RC_FINAL0_D_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR0					0x00000001
+#define    NV20TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR1					0x00000002
+#define    NV20TCL_RC_FINAL0_D_INPUT_FOG						0x00000003
+#define    NV20TCL_RC_FINAL0_D_INPUT_PRIMARY_COLOR					0x00000004
+#define    NV20TCL_RC_FINAL0_D_INPUT_SECONDARY_COLOR					0x00000005
+#define    NV20TCL_RC_FINAL0_D_INPUT_TEXTURE0						0x00000008
+#define    NV20TCL_RC_FINAL0_D_INPUT_TEXTURE1						0x00000009
+#define    NV20TCL_RC_FINAL0_D_INPUT_SPARE0						0x0000000c
+#define    NV20TCL_RC_FINAL0_D_INPUT_SPARE1						0x0000000d
+#define    NV20TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV20TCL_RC_FINAL0_D_INPUT_E_TIMES_F						0x0000000f
+#define    NV20TCL_RC_FINAL0_D_INPUT_TEXTURE2						0x0000000a
+#define    NV20TCL_RC_FINAL0_D_INPUT_TEXTURE3						0x0000000b
+#define   NV20TCL_RC_FINAL0_D_COMPONENT_USAGE						(1 <<  4)
+#define    NV20TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB					0x00000000
+#define    NV20TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA					0x00000010
+#define   NV20TCL_RC_FINAL0_D_MAPPING_SHIFT						5
+#define   NV20TCL_RC_FINAL0_D_MAPPING_MASK						0x000000e0
+#define    NV20TCL_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT					0x00000020
+#define    NV20TCL_RC_FINAL0_D_MAPPING_EXPAND_NORMAL					0x00000040
+#define    NV20TCL_RC_FINAL0_D_MAPPING_EXPAND_NEGATE					0x00000060
+#define    NV20TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL					0x00000080
+#define    NV20TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE					0x000000a0
+#define    NV20TCL_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY					0x000000c0
+#define    NV20TCL_RC_FINAL0_D_MAPPING_SIGNED_NEGATE					0x000000e0
+#define   NV20TCL_RC_FINAL0_C_INPUT_SHIFT						8
+#define   NV20TCL_RC_FINAL0_C_INPUT_MASK						0x00000f00
+#define    NV20TCL_RC_FINAL0_C_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR0					0x00000100
+#define    NV20TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR1					0x00000200
+#define    NV20TCL_RC_FINAL0_C_INPUT_FOG						0x00000300
+#define    NV20TCL_RC_FINAL0_C_INPUT_PRIMARY_COLOR					0x00000400
+#define    NV20TCL_RC_FINAL0_C_INPUT_SECONDARY_COLOR					0x00000500
+#define    NV20TCL_RC_FINAL0_C_INPUT_TEXTURE0						0x00000800
+#define    NV20TCL_RC_FINAL0_C_INPUT_TEXTURE1						0x00000900
+#define    NV20TCL_RC_FINAL0_C_INPUT_SPARE0						0x00000c00
+#define    NV20TCL_RC_FINAL0_C_INPUT_SPARE1						0x00000d00
+#define    NV20TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV20TCL_RC_FINAL0_C_INPUT_E_TIMES_F						0x00000f00
+#define    NV20TCL_RC_FINAL0_C_INPUT_TEXTURE2						0x00000a00
+#define    NV20TCL_RC_FINAL0_C_INPUT_TEXTURE3						0x00000b00
+#define   NV20TCL_RC_FINAL0_C_COMPONENT_USAGE						(1 << 12)
+#define    NV20TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB					0x00000000
+#define    NV20TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA					0x00001000
+#define   NV20TCL_RC_FINAL0_C_MAPPING_SHIFT						13
+#define   NV20TCL_RC_FINAL0_C_MAPPING_MASK						0x0000e000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT					0x00002000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_EXPAND_NORMAL					0x00004000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_EXPAND_NEGATE					0x00006000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL					0x00008000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE					0x0000a000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY					0x0000c000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_SIGNED_NEGATE					0x0000e000
+#define   NV20TCL_RC_FINAL0_B_INPUT_SHIFT						16
+#define   NV20TCL_RC_FINAL0_B_INPUT_MASK						0x000f0000
+#define    NV20TCL_RC_FINAL0_B_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR0					0x00010000
+#define    NV20TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR1					0x00020000
+#define    NV20TCL_RC_FINAL0_B_INPUT_FOG						0x00030000
+#define    NV20TCL_RC_FINAL0_B_INPUT_PRIMARY_COLOR					0x00040000
+#define    NV20TCL_RC_FINAL0_B_INPUT_SECONDARY_COLOR					0x00050000
+#define    NV20TCL_RC_FINAL0_B_INPUT_TEXTURE0						0x00080000
+#define    NV20TCL_RC_FINAL0_B_INPUT_TEXTURE1						0x00090000
+#define    NV20TCL_RC_FINAL0_B_INPUT_SPARE0						0x000c0000
+#define    NV20TCL_RC_FINAL0_B_INPUT_SPARE1						0x000d0000
+#define    NV20TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000e0000
+#define    NV20TCL_RC_FINAL0_B_INPUT_E_TIMES_F						0x000f0000
+#define    NV20TCL_RC_FINAL0_B_INPUT_TEXTURE2						0x000a0000
+#define    NV20TCL_RC_FINAL0_B_INPUT_TEXTURE3						0x000b0000
+#define   NV20TCL_RC_FINAL0_B_COMPONENT_USAGE						(1 << 20)
+#define    NV20TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB					0x00000000
+#define    NV20TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA					0x00100000
+#define   NV20TCL_RC_FINAL0_B_MAPPING_SHIFT						21
+#define   NV20TCL_RC_FINAL0_B_MAPPING_MASK						0x00e00000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT					0x00200000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_EXPAND_NORMAL					0x00400000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_EXPAND_NEGATE					0x00600000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL					0x00800000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE					0x00a00000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY					0x00c00000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_SIGNED_NEGATE					0x00e00000
+#define   NV20TCL_RC_FINAL0_A_INPUT_SHIFT						24
+#define   NV20TCL_RC_FINAL0_A_INPUT_MASK						0x0f000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR0					0x01000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR1					0x02000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_FOG						0x03000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_PRIMARY_COLOR					0x04000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_SECONDARY_COLOR					0x05000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_TEXTURE0						0x08000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_TEXTURE1						0x09000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_SPARE0						0x0c000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_SPARE1						0x0d000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0e000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_E_TIMES_F						0x0f000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_TEXTURE2						0x0a000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_TEXTURE3						0x0b000000
+#define   NV20TCL_RC_FINAL0_A_COMPONENT_USAGE						(1 << 28)
+#define    NV20TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB					0x00000000
+#define    NV20TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA					0x10000000
+#define   NV20TCL_RC_FINAL0_A_MAPPING_SHIFT						29
+#define   NV20TCL_RC_FINAL0_A_MAPPING_MASK						0xe0000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT					0x20000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_EXPAND_NORMAL					0x40000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_EXPAND_NEGATE					0x60000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL					0x80000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE					0xa0000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY					0xc0000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_SIGNED_NEGATE					0xe0000000
+#define  NV20TCL_RC_FINAL1								0x0000028c
+#define   NV20TCL_RC_FINAL1_COLOR_SUM_CLAMP						(1 <<  7)
+#define   NV20TCL_RC_FINAL1_G_INPUT_SHIFT						8
+#define   NV20TCL_RC_FINAL1_G_INPUT_MASK						0x00000f00
+#define    NV20TCL_RC_FINAL1_G_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR0					0x00000100
+#define    NV20TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR1					0x00000200
+#define    NV20TCL_RC_FINAL1_G_INPUT_FOG						0x00000300
+#define    NV20TCL_RC_FINAL1_G_INPUT_PRIMARY_COLOR					0x00000400
+#define    NV20TCL_RC_FINAL1_G_INPUT_SECONDARY_COLOR					0x00000500
+#define    NV20TCL_RC_FINAL1_G_INPUT_TEXTURE0						0x00000800
+#define    NV20TCL_RC_FINAL1_G_INPUT_TEXTURE1						0x00000900
+#define    NV20TCL_RC_FINAL1_G_INPUT_SPARE0						0x00000c00
+#define    NV20TCL_RC_FINAL1_G_INPUT_SPARE1						0x00000d00
+#define    NV20TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV20TCL_RC_FINAL1_G_INPUT_E_TIMES_F						0x00000f00
+#define    NV20TCL_RC_FINAL1_G_INPUT_TEXTURE2						0x00000a00
+#define    NV20TCL_RC_FINAL1_G_INPUT_TEXTURE3						0x00000b00
+#define   NV20TCL_RC_FINAL1_G_COMPONENT_USAGE						(1 << 12)
+#define    NV20TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB					0x00000000
+#define    NV20TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA					0x00001000
+#define   NV20TCL_RC_FINAL1_G_MAPPING_SHIFT						13
+#define   NV20TCL_RC_FINAL1_G_MAPPING_MASK						0x0000e000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT					0x00002000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_EXPAND_NORMAL					0x00004000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_EXPAND_NEGATE					0x00006000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL					0x00008000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE					0x0000a000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY					0x0000c000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_SIGNED_NEGATE					0x0000e000
+#define   NV20TCL_RC_FINAL1_F_INPUT_SHIFT						16
+#define   NV20TCL_RC_FINAL1_F_INPUT_MASK						0x000f0000
+#define    NV20TCL_RC_FINAL1_F_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR0					0x00010000
+#define    NV20TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR1					0x00020000
+#define    NV20TCL_RC_FINAL1_F_INPUT_FOG						0x00030000
+#define    NV20TCL_RC_FINAL1_F_INPUT_PRIMARY_COLOR					0x00040000
+#define    NV20TCL_RC_FINAL1_F_INPUT_SECONDARY_COLOR					0x00050000
+#define    NV20TCL_RC_FINAL1_F_INPUT_TEXTURE0						0x00080000
+#define    NV20TCL_RC_FINAL1_F_INPUT_TEXTURE1						0x00090000
+#define    NV20TCL_RC_FINAL1_F_INPUT_SPARE0						0x000c0000
+#define    NV20TCL_RC_FINAL1_F_INPUT_SPARE1						0x000d0000
+#define    NV20TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000e0000
+#define    NV20TCL_RC_FINAL1_F_INPUT_E_TIMES_F						0x000f0000
+#define    NV20TCL_RC_FINAL1_F_INPUT_TEXTURE2						0x000a0000
+#define    NV20TCL_RC_FINAL1_F_INPUT_TEXTURE3						0x000b0000
+#define   NV20TCL_RC_FINAL1_F_COMPONENT_USAGE						(1 << 20)
+#define    NV20TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB					0x00000000
+#define    NV20TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA					0x00100000
+#define   NV20TCL_RC_FINAL1_F_MAPPING_SHIFT						21
+#define   NV20TCL_RC_FINAL1_F_MAPPING_MASK						0x00e00000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT					0x00200000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_EXPAND_NORMAL					0x00400000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_EXPAND_NEGATE					0x00600000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL					0x00800000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE					0x00a00000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY					0x00c00000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_SIGNED_NEGATE					0x00e00000
+#define   NV20TCL_RC_FINAL1_E_INPUT_SHIFT						24
+#define   NV20TCL_RC_FINAL1_E_INPUT_MASK						0x0f000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR0					0x01000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR1					0x02000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_FOG						0x03000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_PRIMARY_COLOR					0x04000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_SECONDARY_COLOR					0x05000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_TEXTURE0						0x08000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_TEXTURE1						0x09000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_SPARE0						0x0c000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_SPARE1						0x0d000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0e000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_E_TIMES_F						0x0f000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_TEXTURE2						0x0a000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_TEXTURE3						0x0b000000
+#define   NV20TCL_RC_FINAL1_E_COMPONENT_USAGE						(1 << 28)
+#define    NV20TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB					0x00000000
+#define    NV20TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA					0x10000000
+#define   NV20TCL_RC_FINAL1_E_MAPPING_SHIFT						29
+#define   NV20TCL_RC_FINAL1_E_MAPPING_MASK						0xe0000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT					0x20000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_EXPAND_NORMAL					0x40000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_EXPAND_NEGATE					0x60000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL					0x80000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE					0xa0000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY					0xc0000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_SIGNED_NEGATE					0xe0000000
+#define  NV20TCL_LIGHT_MODEL								0x00000294
+#define   NV20TCL_LIGHT_MODEL_VIEWER_SHIFT						16
+#define   NV20TCL_LIGHT_MODEL_VIEWER_MASK						0x00030000
+#define    NV20TCL_LIGHT_MODEL_VIEWER_NONLOCAL						0x00020000
+#define    NV20TCL_LIGHT_MODEL_VIEWER_LOCAL						0x00030000
+#define   NV20TCL_LIGHT_MODEL_SEPARATE_SPECULAR						(1 <<  0)
+#define  NV20TCL_COLOR_MATERIAL								0x00000298
+#define   NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_SHIFT					0
+#define   NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_MASK					0x00000003
+#define    NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_OFF					0x00000000
+#define    NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_COL1					0x00000001
+#define    NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_COL2					0x00000002
+#define   NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_SHIFT					2
+#define   NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_MASK					0x0000000c
+#define    NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_OFF					0x00000000
+#define    NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_COL1					0x00000004
+#define    NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_COL2					0x00000008
+#define   NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_SHIFT					4
+#define   NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_MASK					0x00000030
+#define    NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_OFF					0x00000000
+#define    NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_COL1					0x00000010
+#define    NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_COL2					0x00000020
+#define   NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_SHIFT					6
+#define   NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_MASK					0x000000c0
+#define    NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_OFF					0x00000000
+#define    NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_COL1					0x00000040
+#define    NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_COL2					0x00000080
+#define   NV20TCL_COLOR_MATERIAL_BACK_EMISSION_SHIFT					8
+#define   NV20TCL_COLOR_MATERIAL_BACK_EMISSION_MASK					0x00000300
+#define    NV20TCL_COLOR_MATERIAL_BACK_EMISSION_OFF					0x00000000
+#define    NV20TCL_COLOR_MATERIAL_BACK_EMISSION_COL1					0x00000100
+#define    NV20TCL_COLOR_MATERIAL_BACK_EMISSION_COL2					0x00000200
+#define   NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_SHIFT					10
+#define   NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_MASK					0x00000c00
+#define    NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_OFF					0x00000000
+#define    NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_COL1					0x00000400
+#define    NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_COL2					0x00000800
+#define   NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_SHIFT					12
+#define   NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_MASK					0x00003000
+#define    NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_OFF					0x00000000
+#define    NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_COL1					0x00001000
+#define    NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_COL2					0x00002000
+#define   NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_SHIFT					14
+#define   NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_MASK					0x0000c000
+#define    NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_OFF					0x00000000
+#define    NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_COL1					0x00004000
+#define    NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_COL2					0x00008000
+#define  NV20TCL_FOG_MODE								0x0000029c
+#define   NV20TCL_FOG_MODE_LINEAR_UNSIGNED						0x00000804
+#define   NV20TCL_FOG_MODE_LINEAR_SIGNED						0x00002601
+#define   NV20TCL_FOG_MODE_EXP_UNSIGNED							0x00000802
+#define   NV20TCL_FOG_MODE_EXP_SIGNED							0x00000800
+#define   NV20TCL_FOG_MODE_EXP2_UNSIGNED						0x00000803
+#define   NV20TCL_FOG_MODE_EXP2_SIGNED							0x00000801
+#define  NV20TCL_FOG_COORD								0x000002a0
+#define   NV20TCL_FOG_COORD_DIST_RADIAL							0x00000001
+#define   NV20TCL_FOG_COORD_DIST_ORTHOGONAL						0x00000002
+#define   NV20TCL_FOG_COORD_DIST_ORTHOGONAL_ABS						0x00000003
+#define   NV20TCL_FOG_COORD_FOG								0x00000006
+#define  NV20TCL_FOG_ENABLE								0x000002a4
+#define  NV20TCL_FOG_COLOR								0x000002a8
+#define   NV20TCL_FOG_COLOR_R_SHIFT							0
+#define   NV20TCL_FOG_COLOR_R_MASK							0x000000ff
+#define   NV20TCL_FOG_COLOR_G_SHIFT							8
+#define   NV20TCL_FOG_COLOR_G_MASK							0x0000ff00
+#define   NV20TCL_FOG_COLOR_B_SHIFT							16
+#define   NV20TCL_FOG_COLOR_B_MASK							0x00ff0000
+#define   NV20TCL_FOG_COLOR_A_SHIFT							24
+#define   NV20TCL_FOG_COLOR_A_MASK							0xff000000
+#define  NV20TCL_VIEWPORT_CLIP_MODE							0x000002b4
+#define  NV20TCL_VIEWPORT_CLIP_HORIZ(x)							(0x000002c0+((x)*4))
+#define  NV20TCL_VIEWPORT_CLIP_HORIZ__SIZE						0x00000008
+#define  NV20TCL_VIEWPORT_CLIP_VERT(x)							(0x000002e0+((x)*4))
+#define  NV20TCL_VIEWPORT_CLIP_VERT__SIZE						0x00000008
+#define  NV20TCL_ALPHA_FUNC_ENABLE							0x00000300
+#define  NV20TCL_BLEND_FUNC_ENABLE							0x00000304
+#define  NV20TCL_CULL_FACE_ENABLE							0x00000308
+#define  NV20TCL_DEPTH_TEST_ENABLE							0x0000030c
+#define  NV20TCL_DITHER_ENABLE								0x00000310
+#define  NV20TCL_LIGHTING_ENABLE							0x00000314
+#define  NV20TCL_POINT_PARAMETERS_ENABLE						0x00000318
+#define  NV20TCL_POINT_SMOOTH_ENABLE							0x0000031c
+#define  NV20TCL_LINE_SMOOTH_ENABLE							0x00000320
+#define  NV20TCL_POLYGON_SMOOTH_ENABLE							0x00000324
+#define  NV20TCL_STENCIL_ENABLE								0x0000032c
+#define  NV20TCL_POLYGON_OFFSET_POINT_ENABLE						0x00000330
+#define  NV20TCL_POLYGON_OFFSET_LINE_ENABLE						0x00000334
+#define  NV20TCL_POLYGON_OFFSET_FILL_ENABLE						0x00000338
+#define  NV20TCL_ALPHA_FUNC_FUNC							0x0000033c
+#define   NV20TCL_ALPHA_FUNC_FUNC_NEVER							0x00000200
+#define   NV20TCL_ALPHA_FUNC_FUNC_LESS							0x00000201
+#define   NV20TCL_ALPHA_FUNC_FUNC_EQUAL							0x00000202
+#define   NV20TCL_ALPHA_FUNC_FUNC_LEQUAL						0x00000203
+#define   NV20TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
+#define   NV20TCL_ALPHA_FUNC_FUNC_NOTEQUAL						0x00000205
+#define   NV20TCL_ALPHA_FUNC_FUNC_GEQUAL						0x00000206
+#define   NV20TCL_ALPHA_FUNC_FUNC_ALWAYS						0x00000207
+#define  NV20TCL_ALPHA_FUNC_REF								0x00000340
+#define  NV20TCL_BLEND_FUNC_SRC								0x00000344
+#define   NV20TCL_BLEND_FUNC_SRC_ZERO							0x00000000
+#define   NV20TCL_BLEND_FUNC_SRC_ONE							0x00000001
+#define   NV20TCL_BLEND_FUNC_SRC_SRC_COLOR						0x00000300
+#define   NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_SRC_COLOR					0x00000301
+#define   NV20TCL_BLEND_FUNC_SRC_SRC_ALPHA						0x00000302
+#define   NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_SRC_ALPHA					0x00000303
+#define   NV20TCL_BLEND_FUNC_SRC_DST_ALPHA						0x00000304
+#define   NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_DST_ALPHA					0x00000305
+#define   NV20TCL_BLEND_FUNC_SRC_DST_COLOR						0x00000306
+#define   NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_DST_COLOR					0x00000307
+#define   NV20TCL_BLEND_FUNC_SRC_SRC_ALPHA_SATURATE					0x00000308
+#define   NV20TCL_BLEND_FUNC_SRC_CONSTANT_COLOR						0x00008001
+#define   NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_COLOR				0x00008002
+#define   NV20TCL_BLEND_FUNC_SRC_CONSTANT_ALPHA						0x00008003
+#define   NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_ALPHA				0x00008004
+#define  NV20TCL_BLEND_FUNC_DST								0x00000348
+#define   NV20TCL_BLEND_FUNC_DST_ZERO							0x00000000
+#define   NV20TCL_BLEND_FUNC_DST_ONE							0x00000001
+#define   NV20TCL_BLEND_FUNC_DST_SRC_COLOR						0x00000300
+#define   NV20TCL_BLEND_FUNC_DST_ONE_MINUS_SRC_COLOR					0x00000301
+#define   NV20TCL_BLEND_FUNC_DST_SRC_ALPHA						0x00000302
+#define   NV20TCL_BLEND_FUNC_DST_ONE_MINUS_SRC_ALPHA					0x00000303
+#define   NV20TCL_BLEND_FUNC_DST_DST_ALPHA						0x00000304
+#define   NV20TCL_BLEND_FUNC_DST_ONE_MINUS_DST_ALPHA					0x00000305
+#define   NV20TCL_BLEND_FUNC_DST_DST_COLOR						0x00000306
+#define   NV20TCL_BLEND_FUNC_DST_ONE_MINUS_DST_COLOR					0x00000307
+#define   NV20TCL_BLEND_FUNC_DST_SRC_ALPHA_SATURATE					0x00000308
+#define   NV20TCL_BLEND_FUNC_DST_CONSTANT_COLOR						0x00008001
+#define   NV20TCL_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_COLOR				0x00008002
+#define   NV20TCL_BLEND_FUNC_DST_CONSTANT_ALPHA						0x00008003
+#define   NV20TCL_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_ALPHA				0x00008004
+#define  NV20TCL_BLEND_COLOR								0x0000034c
+#define   NV20TCL_BLEND_COLOR_B_SHIFT							0
+#define   NV20TCL_BLEND_COLOR_B_MASK							0x000000ff
+#define   NV20TCL_BLEND_COLOR_G_SHIFT							8
+#define   NV20TCL_BLEND_COLOR_G_MASK							0x0000ff00
+#define   NV20TCL_BLEND_COLOR_R_SHIFT							16
+#define   NV20TCL_BLEND_COLOR_R_MASK							0x00ff0000
+#define   NV20TCL_BLEND_COLOR_A_SHIFT							24
+#define   NV20TCL_BLEND_COLOR_A_MASK							0xff000000
+#define  NV20TCL_BLEND_EQUATION								0x00000350
+#define   NV20TCL_BLEND_EQUATION_FUNC_ADD						0x00008006
+#define   NV20TCL_BLEND_EQUATION_MIN							0x00008007
+#define   NV20TCL_BLEND_EQUATION_MAX							0x00008008
+#define   NV20TCL_BLEND_EQUATION_FUNC_SUBTRACT						0x0000800a
+#define   NV20TCL_BLEND_EQUATION_FUNC_REVERSE_SUBTRACT					0x0000800b
+#define  NV20TCL_DEPTH_FUNC								0x00000354
+#define   NV20TCL_DEPTH_FUNC_NEVER							0x00000200
+#define   NV20TCL_DEPTH_FUNC_LESS							0x00000201
+#define   NV20TCL_DEPTH_FUNC_EQUAL							0x00000202
+#define   NV20TCL_DEPTH_FUNC_LEQUAL							0x00000203
+#define   NV20TCL_DEPTH_FUNC_GREATER							0x00000204
+#define   NV20TCL_DEPTH_FUNC_NOTEQUAL							0x00000205
+#define   NV20TCL_DEPTH_FUNC_GEQUAL							0x00000206
+#define   NV20TCL_DEPTH_FUNC_ALWAYS							0x00000207
+#define  NV20TCL_COLOR_MASK								0x00000358
+#define   NV20TCL_COLOR_MASK_B								(1 <<  0)
+#define   NV20TCL_COLOR_MASK_G								(1 <<  8)
+#define   NV20TCL_COLOR_MASK_R								(1 << 16)
+#define   NV20TCL_COLOR_MASK_A								(1 << 24)
+#define  NV20TCL_DEPTH_WRITE_ENABLE							0x0000035c
+#define  NV20TCL_STENCIL_MASK								0x00000360
+#define  NV20TCL_STENCIL_FUNC_FUNC							0x00000364
+#define   NV20TCL_STENCIL_FUNC_FUNC_NEVER						0x00000200
+#define   NV20TCL_STENCIL_FUNC_FUNC_LESS						0x00000201
+#define   NV20TCL_STENCIL_FUNC_FUNC_EQUAL						0x00000202
+#define   NV20TCL_STENCIL_FUNC_FUNC_LEQUAL						0x00000203
+#define   NV20TCL_STENCIL_FUNC_FUNC_GREATER						0x00000204
+#define   NV20TCL_STENCIL_FUNC_FUNC_NOTEQUAL						0x00000205
+#define   NV20TCL_STENCIL_FUNC_FUNC_GEQUAL						0x00000206
+#define   NV20TCL_STENCIL_FUNC_FUNC_ALWAYS						0x00000207
+#define  NV20TCL_STENCIL_FUNC_REF							0x00000368
+#define  NV20TCL_STENCIL_FUNC_MASK							0x0000036c
+#define  NV20TCL_STENCIL_OP_FAIL							0x00000370
+#define   NV20TCL_STENCIL_OP_FAIL_ZERO							0x00000000
+#define   NV20TCL_STENCIL_OP_FAIL_INVERT						0x0000150a
+#define   NV20TCL_STENCIL_OP_FAIL_KEEP							0x00001e00
+#define   NV20TCL_STENCIL_OP_FAIL_REPLACE						0x00001e01
+#define   NV20TCL_STENCIL_OP_FAIL_INCR							0x00001e02
+#define   NV20TCL_STENCIL_OP_FAIL_DECR							0x00001e03
+#define   NV20TCL_STENCIL_OP_FAIL_INCR_WRAP						0x00008507
+#define   NV20TCL_STENCIL_OP_FAIL_DECR_WRAP						0x00008508
+#define  NV20TCL_STENCIL_OP_ZFAIL							0x00000374
+#define   NV20TCL_STENCIL_OP_ZFAIL_ZERO							0x00000000
+#define   NV20TCL_STENCIL_OP_ZFAIL_INVERT						0x0000150a
+#define   NV20TCL_STENCIL_OP_ZFAIL_KEEP							0x00001e00
+#define   NV20TCL_STENCIL_OP_ZFAIL_REPLACE						0x00001e01
+#define   NV20TCL_STENCIL_OP_ZFAIL_INCR							0x00001e02
+#define   NV20TCL_STENCIL_OP_ZFAIL_DECR							0x00001e03
+#define   NV20TCL_STENCIL_OP_ZFAIL_INCR_WRAP						0x00008507
+#define   NV20TCL_STENCIL_OP_ZFAIL_DECR_WRAP						0x00008508
+#define  NV20TCL_STENCIL_OP_ZPASS							0x00000378
+#define   NV20TCL_STENCIL_OP_ZPASS_ZERO							0x00000000
+#define   NV20TCL_STENCIL_OP_ZPASS_INVERT						0x0000150a
+#define   NV20TCL_STENCIL_OP_ZPASS_KEEP							0x00001e00
+#define   NV20TCL_STENCIL_OP_ZPASS_REPLACE						0x00001e01
+#define   NV20TCL_STENCIL_OP_ZPASS_INCR							0x00001e02
+#define   NV20TCL_STENCIL_OP_ZPASS_DECR							0x00001e03
+#define   NV20TCL_STENCIL_OP_ZPASS_INCR_WRAP						0x00008507
+#define   NV20TCL_STENCIL_OP_ZPASS_DECR_WRAP						0x00008508
+#define  NV20TCL_SHADE_MODEL								0x0000037c
+#define   NV20TCL_SHADE_MODEL_FLAT							0x00001d00
+#define   NV20TCL_SHADE_MODEL_SMOOTH							0x00001d01
+#define  NV20TCL_LINE_WIDTH								0x00000380
+#define  NV20TCL_POLYGON_OFFSET_FACTOR							0x00000384
+#define  NV20TCL_POLYGON_OFFSET_UNITS							0x00000388
+#define  NV20TCL_POLYGON_MODE_FRONT							0x0000038c
+#define   NV20TCL_POLYGON_MODE_FRONT_POINT						0x00001b00
+#define   NV20TCL_POLYGON_MODE_FRONT_LINE						0x00001b01
+#define   NV20TCL_POLYGON_MODE_FRONT_FILL						0x00001b02
+#define  NV20TCL_POLYGON_MODE_BACK							0x00000390
+#define   NV20TCL_POLYGON_MODE_BACK_POINT						0x00001b00
+#define   NV20TCL_POLYGON_MODE_BACK_LINE						0x00001b01
+#define   NV20TCL_POLYGON_MODE_BACK_FILL						0x00001b02
+#define  NV20TCL_DEPTH_RANGE_NEAR							0x00000394
+#define  NV20TCL_DEPTH_RANGE_FAR							0x00000398
+#define  NV20TCL_CULL_FACE								0x0000039c
+#define   NV20TCL_CULL_FACE_FRONT							0x00000404
+#define   NV20TCL_CULL_FACE_BACK							0x00000405
+#define   NV20TCL_CULL_FACE_FRONT_AND_BACK						0x00000408
+#define  NV20TCL_FRONT_FACE								0x000003a0
+#define   NV20TCL_FRONT_FACE_CW								0x00000900
+#define   NV20TCL_FRONT_FACE_CCW							0x00000901
+#define  NV20TCL_NORMALIZE_ENABLE							0x000003a4
+#define  NV20TCL_MATERIAL_FACTOR_FRONT_R						0x000003a8
+#define  NV20TCL_MATERIAL_FACTOR_FRONT_G						0x000003ac
+#define  NV20TCL_MATERIAL_FACTOR_FRONT_B						0x000003b0
+#define  NV20TCL_MATERIAL_FACTOR_FRONT_A						0x000003b4
+#define  NV20TCL_SEPARATE_SPECULAR_ENABLE						0x000003b8
+#define  NV20TCL_ENABLED_LIGHTS								0x000003bc
+#define   NV20TCL_ENABLED_LIGHTS_0_SHIFT						0
+#define   NV20TCL_ENABLED_LIGHTS_0_MASK							0x00000003
+#define    NV20TCL_ENABLED_LIGHTS_0_DISABLED						0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_0_NONPOSITIONAL					0x00000001
+#define    NV20TCL_ENABLED_LIGHTS_0_POSITIONAL						0x00000002
+#define    NV20TCL_ENABLED_LIGHTS_0_DIRECTIONAL						0x00000003
+#define   NV20TCL_ENABLED_LIGHTS_1_SHIFT						2
+#define   NV20TCL_ENABLED_LIGHTS_1_MASK							0x0000000c
+#define    NV20TCL_ENABLED_LIGHTS_1_DISABLED						0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_1_NONPOSITIONAL					0x00000004
+#define    NV20TCL_ENABLED_LIGHTS_1_POSITIONAL						0x00000008
+#define    NV20TCL_ENABLED_LIGHTS_1_DIRECTIONAL						0x0000000c
+#define   NV20TCL_ENABLED_LIGHTS_2_SHIFT						4
+#define   NV20TCL_ENABLED_LIGHTS_2_MASK							0x00000030
+#define    NV20TCL_ENABLED_LIGHTS_2_DISABLED						0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_2_NONPOSITIONAL					0x00000010
+#define    NV20TCL_ENABLED_LIGHTS_2_POSITIONAL						0x00000020
+#define    NV20TCL_ENABLED_LIGHTS_2_DIRECTIONAL						0x00000030
+#define   NV20TCL_ENABLED_LIGHTS_3_SHIFT						6
+#define   NV20TCL_ENABLED_LIGHTS_3_MASK							0x000000c0
+#define    NV20TCL_ENABLED_LIGHTS_3_DISABLED						0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_3_NONPOSITIONAL					0x00000040
+#define    NV20TCL_ENABLED_LIGHTS_3_POSITIONAL						0x00000080
+#define    NV20TCL_ENABLED_LIGHTS_3_DIRECTIONAL						0x000000c0
+#define   NV20TCL_ENABLED_LIGHTS_4_SHIFT						8
+#define   NV20TCL_ENABLED_LIGHTS_4_MASK							0x00000300
+#define    NV20TCL_ENABLED_LIGHTS_4_DISABLED						0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_4_NONPOSITIONAL					0x00000100
+#define    NV20TCL_ENABLED_LIGHTS_4_POSITIONAL						0x00000200
+#define    NV20TCL_ENABLED_LIGHTS_4_DIRECTIONAL						0x00000300
+#define   NV20TCL_ENABLED_LIGHTS_5_SHIFT						10
+#define   NV20TCL_ENABLED_LIGHTS_5_MASK							0x00000c00
+#define    NV20TCL_ENABLED_LIGHTS_5_DISABLED						0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_5_NONPOSITIONAL					0x00000400
+#define    NV20TCL_ENABLED_LIGHTS_5_POSITIONAL						0x00000800
+#define    NV20TCL_ENABLED_LIGHTS_5_DIRECTIONAL						0x00000c00
+#define   NV20TCL_ENABLED_LIGHTS_6_SHIFT						12
+#define   NV20TCL_ENABLED_LIGHTS_6_MASK							0x00003000
+#define    NV20TCL_ENABLED_LIGHTS_6_DISABLED						0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_6_NONPOSITIONAL					0x00001000
+#define    NV20TCL_ENABLED_LIGHTS_6_POSITIONAL						0x00002000
+#define    NV20TCL_ENABLED_LIGHTS_6_DIRECTIONAL						0x00003000
+#define   NV20TCL_ENABLED_LIGHTS_7_SHIFT						14
+#define   NV20TCL_ENABLED_LIGHTS_7_MASK							0x0000c000
+#define    NV20TCL_ENABLED_LIGHTS_7_DISABLED						0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_7_NONPOSITIONAL					0x00004000
+#define    NV20TCL_ENABLED_LIGHTS_7_POSITIONAL						0x00008000
+#define    NV20TCL_ENABLED_LIGHTS_7_DIRECTIONAL						0x0000c000
+#define  NV20TCL_TX_GEN_MODE_S(x)							(0x000003c0+((x)*16))
+#define  NV20TCL_TX_GEN_MODE_S__SIZE							0x00000004
+#define   NV20TCL_TX_GEN_MODE_S_FALSE							0x00000000
+#define   NV20TCL_TX_GEN_MODE_S_EYE_LINEAR						0x00002400
+#define   NV20TCL_TX_GEN_MODE_S_OBJECT_LINEAR						0x00002401
+#define   NV20TCL_TX_GEN_MODE_S_SPHERE_MAP						0x00002402
+#define   NV20TCL_TX_GEN_MODE_S_NORMAL_MAP						0x00008511
+#define   NV20TCL_TX_GEN_MODE_S_REFLECTION_MAP						0x00008512
+#define  NV20TCL_TX_GEN_MODE_T(x)							(0x000003c4+((x)*16))
+#define  NV20TCL_TX_GEN_MODE_T__SIZE							0x00000004
+#define   NV20TCL_TX_GEN_MODE_T_FALSE							0x00000000
+#define   NV20TCL_TX_GEN_MODE_T_EYE_LINEAR						0x00002400
+#define   NV20TCL_TX_GEN_MODE_T_OBJECT_LINEAR						0x00002401
+#define   NV20TCL_TX_GEN_MODE_T_SPHERE_MAP						0x00002402
+#define   NV20TCL_TX_GEN_MODE_T_NORMAL_MAP						0x00008511
+#define   NV20TCL_TX_GEN_MODE_T_REFLECTION_MAP						0x00008512
+#define  NV20TCL_TX_GEN_MODE_R(x)							(0x000003c8+((x)*16))
+#define  NV20TCL_TX_GEN_MODE_R__SIZE							0x00000004
+#define   NV20TCL_TX_GEN_MODE_R_FALSE							0x00000000
+#define   NV20TCL_TX_GEN_MODE_R_EYE_LINEAR						0x00002400
+#define   NV20TCL_TX_GEN_MODE_R_OBJECT_LINEAR						0x00002401
+#define   NV20TCL_TX_GEN_MODE_R_SPHERE_MAP						0x00002402
+#define   NV20TCL_TX_GEN_MODE_R_NORMAL_MAP						0x00008511
+#define   NV20TCL_TX_GEN_MODE_R_REFLECTION_MAP						0x00008512
+#define  NV20TCL_TX_GEN_MODE_Q(x)							(0x000003cc+((x)*16))
+#define  NV20TCL_TX_GEN_MODE_Q__SIZE							0x00000004
+#define   NV20TCL_TX_GEN_MODE_Q_FALSE							0x00000000
+#define   NV20TCL_TX_GEN_MODE_Q_EYE_LINEAR						0x00002400
+#define   NV20TCL_TX_GEN_MODE_Q_OBJECT_LINEAR						0x00002401
+#define   NV20TCL_TX_GEN_MODE_Q_SPHERE_MAP						0x00002402
+#define   NV20TCL_TX_GEN_MODE_Q_NORMAL_MAP						0x00008511
+#define   NV20TCL_TX_GEN_MODE_Q_REFLECTION_MAP						0x00008512
+#define  NV20TCL_TX_MATRIX_ENABLE(x)							(0x00000420+((x)*4))
+#define  NV20TCL_TX_MATRIX_ENABLE__SIZE							0x00000004
+#define  NV20TCL_POINT_SIZE								0x0000043c
+#define  NV20TCL_MODELVIEW0_MATRIX(x)							(0x00000480+((x)*4))
+#define  NV20TCL_MODELVIEW0_MATRIX__SIZE						0x00000010
+#define  NV20TCL_MODELVIEW1_MATRIX(x)							(0x000004c0+((x)*4))
+#define  NV20TCL_MODELVIEW1_MATRIX__SIZE						0x00000010
+#define  NV20TCL_MODELVIEW2_MATRIX(x)							(0x00000500+((x)*4))
+#define  NV20TCL_MODELVIEW2_MATRIX__SIZE						0x00000010
+#define  NV20TCL_MODELVIEW3_MATRIX(x)							(0x00000540+((x)*4))
+#define  NV20TCL_MODELVIEW3_MATRIX__SIZE						0x00000010
+#define  NV20TCL_INVERSE_MODELVIEW0_MATRIX(x)						(0x00000580+((x)*4))
+#define  NV20TCL_INVERSE_MODELVIEW0_MATRIX__SIZE					0x00000010
+#define  NV20TCL_INVERSE_MODELVIEW1_MATRIX(x)						(0x000005c0+((x)*4))
+#define  NV20TCL_INVERSE_MODELVIEW1_MATRIX__SIZE					0x00000010
+#define  NV20TCL_INVERSE_MODELVIEW2_MATRIX(x)						(0x00000600+((x)*4))
+#define  NV20TCL_INVERSE_MODELVIEW2_MATRIX__SIZE					0x00000010
+#define  NV20TCL_INVERSE_MODELVIEW3_MATRIX(x)						(0x00000640+((x)*4))
+#define  NV20TCL_INVERSE_MODELVIEW3_MATRIX__SIZE					0x00000010
+#define  NV20TCL_PROJECTION_MATRIX(x)							(0x00000680+((x)*4))
+#define  NV20TCL_PROJECTION_MATRIX__SIZE						0x00000010
+#define  NV20TCL_TX0_MATRIX(x)								(0x000006c0+((x)*4))
+#define  NV20TCL_TX0_MATRIX__SIZE							0x00000010
+#define  NV20TCL_TX1_MATRIX(x)								(0x00000700+((x)*4))
+#define  NV20TCL_TX1_MATRIX__SIZE							0x00000010
+#define  NV20TCL_TX2_MATRIX(x)								(0x00000740+((x)*4))
+#define  NV20TCL_TX2_MATRIX__SIZE							0x00000010
+#define  NV20TCL_TX3_MATRIX(x)								(0x00000780+((x)*4))
+#define  NV20TCL_TX3_MATRIX__SIZE							0x00000010
+#define  NV20TCL_TX_GEN_COEFF_S_A(x)							(0x00000840+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_S_A__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_S_B(x)							(0x00000844+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_S_B__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_S_C(x)							(0x00000848+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_S_C__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_S_D(x)							(0x0000084c+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_S_D__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_T_A(x)							(0x00000850+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_T_A__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_T_B(x)							(0x00000854+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_T_B__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_T_C(x)							(0x00000858+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_T_C__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_T_D(x)							(0x0000085c+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_T_D__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_R_A(x)							(0x00000860+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_R_A__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_R_B(x)							(0x00000864+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_R_B__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_R_C(x)							(0x00000868+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_R_C__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_R_D(x)							(0x0000086c+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_R_D__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_Q_A(x)							(0x00000870+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_Q_A__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_Q_B(x)							(0x00000874+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_Q_B__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_Q_C(x)							(0x00000878+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_Q_C__SIZE							0x00000004
+#define  NV20TCL_TX_GEN_COEFF_Q_D(x)							(0x0000087c+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_Q_D__SIZE							0x00000004
+#define  NV20TCL_FOG_EQUATION_CONSTANT							0x000009c0
+#define  NV20TCL_FOG_EQUATION_LINEAR							0x000009c4
+#define  NV20TCL_FOG_EQUATION_QUADRATIC							0x000009c8
+#define  NV20TCL_FRONT_MATERIAL_SHININESS(x)						(0x000009e0+((x)*4))
+#define  NV20TCL_FRONT_MATERIAL_SHININESS__SIZE						0x00000006
+#define  NV20TCL_LIGHT_MODEL_FRONT_AMBIENT_R						0x00000a10
+#define  NV20TCL_LIGHT_MODEL_FRONT_AMBIENT_G						0x00000a14
+#define  NV20TCL_LIGHT_MODEL_FRONT_AMBIENT_B						0x00000a18
+#define  NV20TCL_VIEWPORT_TRANSLATE_X							0x00000a20
+#define  NV20TCL_VIEWPORT_TRANSLATE_Y							0x00000a24
+#define  NV20TCL_VIEWPORT_TRANSLATE_Z							0x00000a28
+#define  NV20TCL_VIEWPORT_TRANSLATE_W							0x00000a2c
+#define  NV20TCL_POINT_PARAMETER(x)							(0x00000a30+((x)*4))
+#define  NV20TCL_POINT_PARAMETER__SIZE							0x00000008
+#define  NV20TCL_RC_CONSTANT_COLOR0(x)							(0x00000a60+((x)*4))
+#define  NV20TCL_RC_CONSTANT_COLOR0__SIZE						0x00000008
+#define   NV20TCL_RC_CONSTANT_COLOR0_B_SHIFT						0
+#define   NV20TCL_RC_CONSTANT_COLOR0_B_MASK						0x000000ff
+#define   NV20TCL_RC_CONSTANT_COLOR0_G_SHIFT						8
+#define   NV20TCL_RC_CONSTANT_COLOR0_G_MASK						0x0000ff00
+#define   NV20TCL_RC_CONSTANT_COLOR0_R_SHIFT						16
+#define   NV20TCL_RC_CONSTANT_COLOR0_R_MASK						0x00ff0000
+#define   NV20TCL_RC_CONSTANT_COLOR0_A_SHIFT						24
+#define   NV20TCL_RC_CONSTANT_COLOR0_A_MASK						0xff000000
+#define  NV20TCL_RC_CONSTANT_COLOR1(x)							(0x00000a80+((x)*4))
+#define  NV20TCL_RC_CONSTANT_COLOR1__SIZE						0x00000008
+#define   NV20TCL_RC_CONSTANT_COLOR1_B_SHIFT						0
+#define   NV20TCL_RC_CONSTANT_COLOR1_B_MASK						0x000000ff
+#define   NV20TCL_RC_CONSTANT_COLOR1_G_SHIFT						8
+#define   NV20TCL_RC_CONSTANT_COLOR1_G_MASK						0x0000ff00
+#define   NV20TCL_RC_CONSTANT_COLOR1_R_SHIFT						16
+#define   NV20TCL_RC_CONSTANT_COLOR1_R_MASK						0x00ff0000
+#define   NV20TCL_RC_CONSTANT_COLOR1_A_SHIFT						24
+#define   NV20TCL_RC_CONSTANT_COLOR1_A_MASK						0xff000000
+#define  NV20TCL_RC_OUT_ALPHA(x)							(0x00000aa0+((x)*4))
+#define  NV20TCL_RC_OUT_ALPHA__SIZE							0x00000008
+#define   NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SHIFT						0
+#define   NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_MASK						0x0000000f
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_ZERO						0x00000000
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0				0x00000001
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1				0x00000002
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_FOG						0x00000003
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR					0x00000004
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR				0x00000005
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0					0x00000008
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1					0x00000009
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0					0x0000000c
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1					0x0000000d
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F					0x0000000f
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE2					0x0000000a
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE3					0x0000000b
+#define   NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT						4
+#define   NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK						0x000000f0
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO						0x00000000
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0				0x00000010
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1				0x00000020
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_FOG						0x00000030
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR					0x00000040
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR				0x00000050
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0					0x00000080
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1					0x00000090
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0					0x000000c0
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1					0x000000d0
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000000e0
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F					0x000000f0
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE2					0x000000a0
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE3					0x000000b0
+#define   NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT						8
+#define   NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK						0x00000f00
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO						0x00000000
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0				0x00000100
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1				0x00000200
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_FOG						0x00000300
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR				0x00000400
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR				0x00000500
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0					0x00000800
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1					0x00000900
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0					0x00000c00
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1					0x00000d00
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F					0x00000f00
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE2					0x00000a00
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE3					0x00000b00
+#define   NV20TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT						(1 << 12)
+#define   NV20TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT						(1 << 13)
+#define   NV20TCL_RC_OUT_ALPHA_MUX_SUM							(1 << 14)
+#define   NV20TCL_RC_OUT_ALPHA_BIAS							(1 << 15)
+#define    NV20TCL_RC_OUT_ALPHA_BIAS_NONE						0x00000000
+#define    NV20TCL_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF				0x00008000
+#define   NV20TCL_RC_OUT_ALPHA_SCALE_SHIFT						17
+#define   NV20TCL_RC_OUT_ALPHA_SCALE_MASK						0x00000000
+#define    NV20TCL_RC_OUT_ALPHA_SCALE_NONE						0x00000000
+#define    NV20TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO					0x00020000
+#define    NV20TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR					0x00040000
+#define    NV20TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF					0x00060000
+#define  NV20TCL_RC_IN_RGB(x)								(0x00000ac0+((x)*4))
+#define  NV20TCL_RC_IN_RGB__SIZE							0x00000008
+#define   NV20TCL_RC_IN_RGB_D_INPUT_SHIFT						0
+#define   NV20TCL_RC_IN_RGB_D_INPUT_MASK						0x0000000f
+#define    NV20TCL_RC_IN_RGB_D_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0					0x00000001
+#define    NV20TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1					0x00000002
+#define    NV20TCL_RC_IN_RGB_D_INPUT_FOG						0x00000003
+#define    NV20TCL_RC_IN_RGB_D_INPUT_PRIMARY_COLOR					0x00000004
+#define    NV20TCL_RC_IN_RGB_D_INPUT_SECONDARY_COLOR					0x00000005
+#define    NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE0						0x00000008
+#define    NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE1						0x00000009
+#define    NV20TCL_RC_IN_RGB_D_INPUT_SPARE0						0x0000000c
+#define    NV20TCL_RC_IN_RGB_D_INPUT_SPARE1						0x0000000d
+#define    NV20TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV20TCL_RC_IN_RGB_D_INPUT_E_TIMES_F						0x0000000f
+#define    NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE2						0x0000000a
+#define    NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE3						0x0000000b
+#define   NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE						(1 <<  4)
+#define    NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB					0x00000000
+#define    NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA					0x00000010
+#define   NV20TCL_RC_IN_RGB_D_MAPPING_SHIFT						5
+#define   NV20TCL_RC_IN_RGB_D_MAPPING_MASK						0x000000e0
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT					0x00000020
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL					0x00000040
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE					0x00000060
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL					0x00000080
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE					0x000000a0
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY					0x000000c0
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE					0x000000e0
+#define   NV20TCL_RC_IN_RGB_C_INPUT_SHIFT						8
+#define   NV20TCL_RC_IN_RGB_C_INPUT_MASK						0x00000f00
+#define    NV20TCL_RC_IN_RGB_C_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0					0x00000100
+#define    NV20TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1					0x00000200
+#define    NV20TCL_RC_IN_RGB_C_INPUT_FOG						0x00000300
+#define    NV20TCL_RC_IN_RGB_C_INPUT_PRIMARY_COLOR					0x00000400
+#define    NV20TCL_RC_IN_RGB_C_INPUT_SECONDARY_COLOR					0x00000500
+#define    NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE0						0x00000800
+#define    NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE1						0x00000900
+#define    NV20TCL_RC_IN_RGB_C_INPUT_SPARE0						0x00000c00
+#define    NV20TCL_RC_IN_RGB_C_INPUT_SPARE1						0x00000d00
+#define    NV20TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV20TCL_RC_IN_RGB_C_INPUT_E_TIMES_F						0x00000f00
+#define    NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE2						0x00000a00
+#define    NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE3						0x00000b00
+#define   NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE						(1 << 12)
+#define    NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB					0x00000000
+#define    NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA					0x00001000
+#define   NV20TCL_RC_IN_RGB_C_MAPPING_SHIFT						13
+#define   NV20TCL_RC_IN_RGB_C_MAPPING_MASK						0x0000e000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT					0x00002000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL					0x00004000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE					0x00006000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL					0x00008000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE					0x0000a000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY					0x0000c000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE					0x0000e000
+#define   NV20TCL_RC_IN_RGB_B_INPUT_SHIFT						16
+#define   NV20TCL_RC_IN_RGB_B_INPUT_MASK						0x000f0000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0					0x00010000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1					0x00020000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_FOG						0x00030000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_PRIMARY_COLOR					0x00040000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_SECONDARY_COLOR					0x00050000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE0						0x00080000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE1						0x00090000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_SPARE0						0x000c0000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_SPARE1						0x000d0000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000e0000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_E_TIMES_F						0x000f0000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE2						0x000a0000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE3						0x000b0000
+#define   NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE						(1 << 20)
+#define    NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB					0x00000000
+#define    NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA					0x00100000
+#define   NV20TCL_RC_IN_RGB_B_MAPPING_SHIFT						21
+#define   NV20TCL_RC_IN_RGB_B_MAPPING_MASK						0x00e00000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT					0x00200000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL					0x00400000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE					0x00600000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL					0x00800000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE					0x00a00000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY					0x00c00000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE					0x00e00000
+#define   NV20TCL_RC_IN_RGB_A_INPUT_SHIFT						24
+#define   NV20TCL_RC_IN_RGB_A_INPUT_MASK						0x0f000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_ZERO						0x00000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0					0x01000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1					0x02000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_FOG						0x03000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_PRIMARY_COLOR					0x04000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_SECONDARY_COLOR					0x05000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE0						0x08000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE1						0x09000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_SPARE0						0x0c000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_SPARE1						0x0d000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0e000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_E_TIMES_F						0x0f000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE2						0x0a000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE3						0x0b000000
+#define   NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE						(1 << 28)
+#define    NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB					0x00000000
+#define    NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA					0x10000000
+#define   NV20TCL_RC_IN_RGB_A_MAPPING_SHIFT						29
+#define   NV20TCL_RC_IN_RGB_A_MAPPING_MASK						0xe0000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT					0x20000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL					0x40000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE					0x60000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL					0x80000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE					0xa0000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY					0xc0000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE					0xe0000000
+#define  NV20TCL_VIEWPORT_SCALE_X							0x00000af0
+#define  NV20TCL_VIEWPORT_SCALE_Y							0x00000af4
+#define  NV20TCL_VIEWPORT_SCALE_Z							0x00000af8
+#define  NV20TCL_VIEWPORT_SCALE_W							0x00000afc
+#define  NV20TCL_VP_UPLOAD_INST(x)							(0x00000b00+((x)*4))
+#define  NV20TCL_VP_UPLOAD_INST__SIZE							0x00000004
+#define  NV20TCL_VP_UPLOAD_CONST(x)							(0x00000b80+((x)*4))
+#define  NV20TCL_VP_UPLOAD_CONST__SIZE							0x00000004
+#define  NV20TCL_LIGHT_BACK_AMBIENT_R(x)						(0x00000c00+((x)*64))
+#define  NV20TCL_LIGHT_BACK_AMBIENT_R__SIZE						0x00000008
+#define  NV20TCL_LIGHT_BACK_AMBIENT_G(x)						(0x00000c04+((x)*64))
+#define  NV20TCL_LIGHT_BACK_AMBIENT_G__SIZE						0x00000008
+#define  NV20TCL_LIGHT_BACK_AMBIENT_B(x)						(0x00000c08+((x)*64))
+#define  NV20TCL_LIGHT_BACK_AMBIENT_B__SIZE						0x00000008
+#define  NV20TCL_LIGHT_BACK_DIFFUSE_R(x)						(0x00000c0c+((x)*64))
+#define  NV20TCL_LIGHT_BACK_DIFFUSE_R__SIZE						0x00000008
+#define  NV20TCL_LIGHT_BACK_DIFFUSE_G(x)						(0x00000c10+((x)*64))
+#define  NV20TCL_LIGHT_BACK_DIFFUSE_G__SIZE						0x00000008
+#define  NV20TCL_LIGHT_BACK_DIFFUSE_B(x)						(0x00000c14+((x)*64))
+#define  NV20TCL_LIGHT_BACK_DIFFUSE_B__SIZE						0x00000008
+#define  NV20TCL_LIGHT_BACK_SPECULAR_R(x)						(0x00000c18+((x)*64))
+#define  NV20TCL_LIGHT_BACK_SPECULAR_R__SIZE						0x00000008
+#define  NV20TCL_LIGHT_BACK_SPECULAR_G(x)						(0x00000c1c+((x)*64))
+#define  NV20TCL_LIGHT_BACK_SPECULAR_G__SIZE						0x00000008
+#define  NV20TCL_LIGHT_BACK_SPECULAR_B(x)						(0x00000c20+((x)*64))
+#define  NV20TCL_LIGHT_BACK_SPECULAR_B__SIZE						0x00000008
+#define  NV20TCL_LIGHT_FRONT_AMBIENT_R(x)						(0x00001000+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_AMBIENT_R__SIZE						0x00000008
+#define  NV20TCL_LIGHT_FRONT_AMBIENT_G(x)						(0x00001004+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_AMBIENT_G__SIZE						0x00000008
+#define  NV20TCL_LIGHT_FRONT_AMBIENT_B(x)						(0x00001008+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_AMBIENT_B__SIZE						0x00000008
+#define  NV20TCL_LIGHT_FRONT_DIFFUSE_R(x)						(0x0000100c+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_DIFFUSE_R__SIZE						0x00000008
+#define  NV20TCL_LIGHT_FRONT_DIFFUSE_G(x)						(0x00001010+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_DIFFUSE_G__SIZE						0x00000008
+#define  NV20TCL_LIGHT_FRONT_DIFFUSE_B(x)						(0x00001014+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_DIFFUSE_B__SIZE						0x00000008
+#define  NV20TCL_LIGHT_FRONT_SPECULAR_R(x)						(0x00001018+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_SPECULAR_R__SIZE						0x00000008
+#define  NV20TCL_LIGHT_FRONT_SPECULAR_G(x)						(0x0000101c+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_SPECULAR_G__SIZE						0x00000008
+#define  NV20TCL_LIGHT_FRONT_SPECULAR_B(x)						(0x00001020+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_SPECULAR_B__SIZE						0x00000008
+#define  NV20TCL_LIGHT_HALF_VECTOR_X(x)							(0x00001028+((x)*128))
+#define  NV20TCL_LIGHT_HALF_VECTOR_X__SIZE						0x00000008
+#define  NV20TCL_LIGHT_HALF_VECTOR_Y(x)							(0x0000102c+((x)*128))
+#define  NV20TCL_LIGHT_HALF_VECTOR_Y__SIZE						0x00000008
+#define  NV20TCL_LIGHT_HALF_VECTOR_Z(x)							(0x00001030+((x)*128))
+#define  NV20TCL_LIGHT_HALF_VECTOR_Z__SIZE						0x00000008
+#define  NV20TCL_LIGHT_DIRECTION_X(x)							(0x00001034+((x)*128))
+#define  NV20TCL_LIGHT_DIRECTION_X__SIZE						0x00000008
+#define  NV20TCL_LIGHT_DIRECTION_Y(x)							(0x00001038+((x)*128))
+#define  NV20TCL_LIGHT_DIRECTION_Y__SIZE						0x00000008
+#define  NV20TCL_LIGHT_DIRECTION_Z(x)							(0x0000103c+((x)*128))
+#define  NV20TCL_LIGHT_DIRECTION_Z__SIZE						0x00000008
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_A(x)							(0x00001040+((x)*128))
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_A__SIZE						0x00000008
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_B(x)							(0x00001044+((x)*128))
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_B__SIZE						0x00000008
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_C(x)							(0x00001048+((x)*128))
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_C__SIZE						0x00000008
+#define  NV20TCL_LIGHT_SPOT_DIR_X(x)							(0x0000104c+((x)*128))
+#define  NV20TCL_LIGHT_SPOT_DIR_X__SIZE							0x00000008
+#define  NV20TCL_LIGHT_SPOT_DIR_Y(x)							(0x00001050+((x)*128))
+#define  NV20TCL_LIGHT_SPOT_DIR_Y__SIZE							0x00000008
+#define  NV20TCL_LIGHT_SPOT_DIR_Z(x)							(0x00001054+((x)*128))
+#define  NV20TCL_LIGHT_SPOT_DIR_Z__SIZE							0x00000008
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_D(x)							(0x00001058+((x)*128))
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_D__SIZE						0x00000008
+#define  NV20TCL_LIGHT_POSITION_X(x)							(0x0000105c+((x)*128))
+#define  NV20TCL_LIGHT_POSITION_X__SIZE							0x00000008
+#define  NV20TCL_LIGHT_POSITION_Y(x)							(0x00001060+((x)*128))
+#define  NV20TCL_LIGHT_POSITION_Y__SIZE							0x00000008
+#define  NV20TCL_LIGHT_POSITION_Z(x)							(0x00001064+((x)*128))
+#define  NV20TCL_LIGHT_POSITION_Z__SIZE							0x00000008
+#define  NV20TCL_LIGHT_ATTENUATION_CONSTANT(x)						(0x00001068+((x)*128))
+#define  NV20TCL_LIGHT_ATTENUATION_CONSTANT__SIZE					0x00000008
+#define  NV20TCL_LIGHT_ATTENUATION_LINEAR(x)						(0x0000106c+((x)*128))
+#define  NV20TCL_LIGHT_ATTENUATION_LINEAR__SIZE						0x00000008
+#define  NV20TCL_LIGHT_ATTENUATION_QUADRATIC(x)						(0x00001070+((x)*128))
+#define  NV20TCL_LIGHT_ATTENUATION_QUADRATIC__SIZE					0x00000008
+#define  NV20TCL_POLYGON_STIPPLE_ENABLE							0x0000147c
+#define  NV20TCL_POLYGON_STIPPLE_PATTERN(x)						(0x00001480+((x)*4))
+#define  NV20TCL_POLYGON_STIPPLE_PATTERN__SIZE						0x00000020
+#define  NV20TCL_VERTEX_POS_3F_X							0x00001500
+#define  NV20TCL_VERTEX_POS_3F_Y							0x00001504
+#define  NV20TCL_VERTEX_POS_3F_Z							0x00001508
+#define  NV20TCL_VERTEX_POS_4F_X							0x00001518
+#define  NV20TCL_VERTEX_POS_4F_Y							0x0000151c
+#define  NV20TCL_VERTEX_POS_4F_Z							0x00001520
+#define  NV20TCL_VERTEX_POS_3I_XY							0x00001528
+#define   NV20TCL_VERTEX_POS_3I_XY_X_SHIFT						0
+#define   NV20TCL_VERTEX_POS_3I_XY_X_MASK						0x0000ffff
+#define   NV20TCL_VERTEX_POS_3I_XY_Y_SHIFT						16
+#define   NV20TCL_VERTEX_POS_3I_XY_Y_MASK						0xffff0000
+#define  NV20TCL_VERTEX_POS_3I_Z							0x0000152c
+#define   NV20TCL_VERTEX_POS_3I_Z_Z_SHIFT						0
+#define   NV20TCL_VERTEX_POS_3I_Z_Z_MASK						0x0000ffff
+#define  NV20TCL_VERTEX_NOR_3F_X							0x00001530
+#define  NV20TCL_VERTEX_NOR_3F_Y							0x00001534
+#define  NV20TCL_VERTEX_NOR_3F_Z							0x00001538
+#define  NV20TCL_VERTEX_NOR_3I_XY							0x00001540
+#define   NV20TCL_VERTEX_NOR_3I_XY_X_SHIFT						0
+#define   NV20TCL_VERTEX_NOR_3I_XY_X_MASK						0x0000ffff
+#define   NV20TCL_VERTEX_NOR_3I_XY_Y_SHIFT						16
+#define   NV20TCL_VERTEX_NOR_3I_XY_Y_MASK						0xffff0000
+#define  NV20TCL_VERTEX_NOR_3I_Z							0x00001544
+#define   NV20TCL_VERTEX_NOR_3I_Z_Z_SHIFT						0
+#define   NV20TCL_VERTEX_NOR_3I_Z_Z_MASK						0x0000ffff
+#define  NV20TCL_VERTEX_COL_4F_X							0x00001550
+#define  NV20TCL_VERTEX_COL_4F_Y							0x00001554
+#define  NV20TCL_VERTEX_COL_4F_Z							0x00001558
+#define  NV20TCL_VERTEX_COL_4F_W							0x0000155c
+#define  NV20TCL_VERTEX_COL_3F_X							0x00001560
+#define  NV20TCL_VERTEX_COL_3F_Y							0x00001564
+#define  NV20TCL_VERTEX_COL_3F_Z							0x00001568
+#define  NV20TCL_VERTEX_COL_4I								0x0000156c
+#define   NV20TCL_VERTEX_COL_4I_R_SHIFT							0
+#define   NV20TCL_VERTEX_COL_4I_R_MASK							0x000000ff
+#define   NV20TCL_VERTEX_COL_4I_G_SHIFT							8
+#define   NV20TCL_VERTEX_COL_4I_G_MASK							0x0000ff00
+#define   NV20TCL_VERTEX_COL_4I_B_SHIFT							16
+#define   NV20TCL_VERTEX_COL_4I_B_MASK							0x00ff0000
+#define   NV20TCL_VERTEX_COL_4I_A_SHIFT							24
+#define   NV20TCL_VERTEX_COL_4I_A_MASK							0xff000000
+#define  NV20TCL_VERTEX_COL2_3F_X							0x00001580
+#define  NV20TCL_VERTEX_COL2_3F_Y							0x00001584
+#define  NV20TCL_VERTEX_COL2_3F_Z							0x00001588
+#define  NV20TCL_VERTEX_COL2_4I								0x0000158c
+#define   NV20TCL_VERTEX_COL2_4I_R_SHIFT						0
+#define   NV20TCL_VERTEX_COL2_4I_R_MASK							0x000000ff
+#define   NV20TCL_VERTEX_COL2_4I_G_SHIFT						8
+#define   NV20TCL_VERTEX_COL2_4I_G_MASK							0x0000ff00
+#define   NV20TCL_VERTEX_COL2_4I_B_SHIFT						16
+#define   NV20TCL_VERTEX_COL2_4I_B_MASK							0x00ff0000
+#define   NV20TCL_VERTEX_COL2_4I_A_SHIFT						24
+#define   NV20TCL_VERTEX_COL2_4I_A_MASK							0xff000000
+#define  NV20TCL_VERTEX_TX0_2F_S							0x00001590
+#define  NV20TCL_VERTEX_TX0_2F_T							0x00001594
+#define  NV20TCL_VERTEX_TX0_2I								0x00001598
+#define   NV20TCL_VERTEX_TX0_2I_S_SHIFT							0
+#define   NV20TCL_VERTEX_TX0_2I_S_MASK							0x0000ffff
+#define   NV20TCL_VERTEX_TX0_2I_T_SHIFT							16
+#define   NV20TCL_VERTEX_TX0_2I_T_MASK							0xffff0000
+#define  NV20TCL_VERTEX_TX0_4F_S							0x000015a0
+#define  NV20TCL_VERTEX_TX0_4F_T							0x000015a4
+#define  NV20TCL_VERTEX_TX0_4F_R							0x000015a8
+#define  NV20TCL_VERTEX_TX0_4F_Q							0x000015ac
+#define  NV20TCL_VERTEX_TX0_4I_ST							0x000015b0
+#define   NV20TCL_VERTEX_TX0_4I_ST_S_SHIFT						0
+#define   NV20TCL_VERTEX_TX0_4I_ST_S_MASK						0x0000ffff
+#define   NV20TCL_VERTEX_TX0_4I_ST_T_SHIFT						16
+#define   NV20TCL_VERTEX_TX0_4I_ST_T_MASK						0xffff0000
+#define  NV20TCL_VERTEX_TX0_4I_RQ							0x000015b4
+#define   NV20TCL_VERTEX_TX0_4I_RQ_R_SHIFT						0
+#define   NV20TCL_VERTEX_TX0_4I_RQ_R_MASK						0x0000ffff
+#define   NV20TCL_VERTEX_TX0_4I_RQ_Q_SHIFT						16
+#define   NV20TCL_VERTEX_TX0_4I_RQ_Q_MASK						0xffff0000
+#define  NV20TCL_VERTEX_TX1_2F_S							0x000015b8
+#define  NV20TCL_VERTEX_TX1_2F_T							0x000015bc
+#define  NV20TCL_VERTEX_TX1_2I								0x000015c0
+#define   NV20TCL_VERTEX_TX1_2I_S_SHIFT							0
+#define   NV20TCL_VERTEX_TX1_2I_S_MASK							0x0000ffff
+#define   NV20TCL_VERTEX_TX1_2I_T_SHIFT							16
+#define   NV20TCL_VERTEX_TX1_2I_T_MASK							0xffff0000
+#define  NV20TCL_VERTEX_TX1_4F_S							0x000015c8
+#define  NV20TCL_VERTEX_TX1_4F_T							0x000015cc
+#define  NV20TCL_VERTEX_TX1_4F_R							0x000015d0
+#define  NV20TCL_VERTEX_TX1_4F_Q							0x000015d4
+#define  NV20TCL_VERTEX_TX1_4I_ST							0x000015d8
+#define   NV20TCL_VERTEX_TX1_4I_ST_S_SHIFT						0
+#define   NV20TCL_VERTEX_TX1_4I_ST_S_MASK						0x0000ffff
+#define   NV20TCL_VERTEX_TX1_4I_ST_T_SHIFT						16
+#define   NV20TCL_VERTEX_TX1_4I_ST_T_MASK						0xffff0000
+#define  NV20TCL_VERTEX_TX1_4I_RQ							0x000015dc
+#define   NV20TCL_VERTEX_TX1_4I_RQ_R_SHIFT						0
+#define   NV20TCL_VERTEX_TX1_4I_RQ_R_MASK						0x0000ffff
+#define   NV20TCL_VERTEX_TX1_4I_RQ_Q_SHIFT						16
+#define   NV20TCL_VERTEX_TX1_4I_RQ_Q_MASK						0xffff0000
+#define  NV20TCL_VERTEX_TX2_2F_S							0x000015e0
+#define  NV20TCL_VERTEX_TX2_2F_T							0x000015e4
+#define  NV20TCL_VERTEX_TX2_2I								0x000015e8
+#define   NV20TCL_VERTEX_TX2_2I_S_SHIFT							0
+#define   NV20TCL_VERTEX_TX2_2I_S_MASK							0x0000ffff
+#define   NV20TCL_VERTEX_TX2_2I_T_SHIFT							16
+#define   NV20TCL_VERTEX_TX2_2I_T_MASK							0xffff0000
+#define  NV20TCL_VERTEX_TX2_4F_S							0x000015f0
+#define  NV20TCL_VERTEX_TX2_4F_T							0x000015f4
+#define  NV20TCL_VERTEX_TX2_4F_R							0x000015f8
+#define  NV20TCL_VERTEX_TX2_4F_Q							0x000015fc
+#define  NV20TCL_VERTEX_TX2_4I_ST							0x00001600
+#define   NV20TCL_VERTEX_TX2_4I_ST_S_SHIFT						0
+#define   NV20TCL_VERTEX_TX2_4I_ST_S_MASK						0x0000ffff
+#define   NV20TCL_VERTEX_TX2_4I_ST_T_SHIFT						16
+#define   NV20TCL_VERTEX_TX2_4I_ST_T_MASK						0xffff0000
+#define  NV20TCL_VERTEX_TX2_4I_RQ							0x00001604
+#define   NV20TCL_VERTEX_TX2_4I_RQ_R_SHIFT						0
+#define   NV20TCL_VERTEX_TX2_4I_RQ_R_MASK						0x0000ffff
+#define   NV20TCL_VERTEX_TX2_4I_RQ_Q_SHIFT						16
+#define   NV20TCL_VERTEX_TX2_4I_RQ_Q_MASK						0xffff0000
+#define  NV20TCL_VERTEX_TX3_2F_S							0x00001608
+#define  NV20TCL_VERTEX_TX3_2F_T							0x0000160c
+#define  NV20TCL_VERTEX_TX3_2I								0x00001610
+#define   NV20TCL_VERTEX_TX3_2I_S_SHIFT							0
+#define   NV20TCL_VERTEX_TX3_2I_S_MASK							0x0000ffff
+#define   NV20TCL_VERTEX_TX3_2I_T_SHIFT							16
+#define   NV20TCL_VERTEX_TX3_2I_T_MASK							0xffff0000
+#define  NV20TCL_VERTEX_TX3_4F_S							0x00001620
+#define  NV20TCL_VERTEX_TX3_4F_T							0x00001624
+#define  NV20TCL_VERTEX_TX3_4F_R							0x00001628
+#define  NV20TCL_VERTEX_TX3_4F_Q							0x0000162c
+#define  NV20TCL_VERTEX_TX3_4I_ST							0x00001630
+#define   NV20TCL_VERTEX_TX3_4I_ST_S_SHIFT						0
+#define   NV20TCL_VERTEX_TX3_4I_ST_S_MASK						0x0000ffff
+#define   NV20TCL_VERTEX_TX3_4I_ST_T_SHIFT						16
+#define   NV20TCL_VERTEX_TX3_4I_ST_T_MASK						0xffff0000
+#define  NV20TCL_VERTEX_TX3_4I_RQ							0x00001634
+#define   NV20TCL_VERTEX_TX3_4I_RQ_R_SHIFT						0
+#define   NV20TCL_VERTEX_TX3_4I_RQ_R_MASK						0x0000ffff
+#define   NV20TCL_VERTEX_TX3_4I_RQ_Q_SHIFT						16
+#define   NV20TCL_VERTEX_TX3_4I_RQ_Q_MASK						0xffff0000
+#define  NV20TCL_VERTEX_FOG_1F								0x00001698
+#define  NV20TCL_EDGEFLAG_ENABLE							0x000016bc
+#define  NV20TCL_VTX_CACHE_INVALIDATE							0x00001710
+#define  NV20TCL_VTXBUF_ADDRESS(x)							(0x00001720+((x)*4))
+#define  NV20TCL_VTXBUF_ADDRESS__SIZE							0x00000010
+#define   NV20TCL_VTXBUF_ADDRESS_DMA1							(1 << 31)
+#define   NV20TCL_VTXBUF_ADDRESS_OFFSET_SHIFT						0
+#define   NV20TCL_VTXBUF_ADDRESS_OFFSET_MASK						0x0fffffff
+#define  NV20TCL_VTXFMT(x)								(0x00001760+((x)*4))
+#define  NV20TCL_VTXFMT__SIZE								0x00000010
+#define   NV20TCL_VTXFMT_TYPE_SHIFT							0
+#define   NV20TCL_VTXFMT_TYPE_MASK							0x0000000f
+#define    NV20TCL_VTXFMT_TYPE_FLOAT							0x00000002
+#define    NV20TCL_VTXFMT_TYPE_UBYTE							0x00000004
+#define    NV20TCL_VTXFMT_TYPE_USHORT							0x00000005
+#define   NV20TCL_VTXFMT_SIZE_SHIFT							4
+#define   NV20TCL_VTXFMT_SIZE_MASK							0x000000f0
+#define   NV20TCL_VTXFMT_STRIDE_SHIFT							8
+#define   NV20TCL_VTXFMT_STRIDE_MASK							0x0000ff00
+#define  NV20TCL_LIGHT_MODEL_BACK_AMBIENT_R						0x000017a0
+#define  NV20TCL_LIGHT_MODEL_BACK_AMBIENT_G						0x000017a4
+#define  NV20TCL_LIGHT_MODEL_BACK_AMBIENT_B						0x000017a8
+#define  NV20TCL_MATERIAL_FACTOR_BACK_A							0x000017ac
+#define  NV20TCL_MATERIAL_FACTOR_BACK_R							0x000017b0
+#define  NV20TCL_MATERIAL_FACTOR_BACK_G							0x000017b4
+#define  NV20TCL_MATERIAL_FACTOR_BACK_B							0x000017b8
+#define  NV20TCL_COLOR_LOGIC_OP_ENABLE							0x000017bc
+#define  NV20TCL_COLOR_LOGIC_OP_OP							0x000017c0
+#define   NV20TCL_COLOR_LOGIC_OP_OP_CLEAR						0x00001500
+#define   NV20TCL_COLOR_LOGIC_OP_OP_AND							0x00001501
+#define   NV20TCL_COLOR_LOGIC_OP_OP_AND_REVERSE						0x00001502
+#define   NV20TCL_COLOR_LOGIC_OP_OP_COPY						0x00001503
+#define   NV20TCL_COLOR_LOGIC_OP_OP_AND_INVERTED					0x00001504
+#define   NV20TCL_COLOR_LOGIC_OP_OP_NOOP						0x00001505
+#define   NV20TCL_COLOR_LOGIC_OP_OP_XOR							0x00001506
+#define   NV20TCL_COLOR_LOGIC_OP_OP_OR							0x00001507
+#define   NV20TCL_COLOR_LOGIC_OP_OP_NOR							0x00001508
+#define   NV20TCL_COLOR_LOGIC_OP_OP_EQUIV						0x00001509
+#define   NV20TCL_COLOR_LOGIC_OP_OP_INVERT						0x0000150a
+#define   NV20TCL_COLOR_LOGIC_OP_OP_OR_REVERSE						0x0000150b
+#define   NV20TCL_COLOR_LOGIC_OP_OP_COPY_INVERTED					0x0000150c
+#define   NV20TCL_COLOR_LOGIC_OP_OP_OR_INVERTED						0x0000150d
+#define   NV20TCL_COLOR_LOGIC_OP_OP_NAND						0x0000150e
+#define   NV20TCL_COLOR_LOGIC_OP_OP_SET							0x0000150f
+#define  NV20TCL_LIGHT_MODEL_TWO_SIDE_ENABLE						0x000017c4
+#define  NV20TCL_TX_SHADER_CULL_MODE							0x000017f8
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX0_S						(1 <<  0)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_S_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_S_LESS					0x00000001
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX0_T						(1 <<  1)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_T_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_T_LESS					0x00000002
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX0_R						(1 <<  2)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_R_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_R_LESS					0x00000004
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX0_Q						(1 <<  3)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_Q_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_Q_LESS					0x00000008
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX1_S						(1 <<  4)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_S_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_S_LESS					0x00000010
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX1_T						(1 <<  5)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_T_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_T_LESS					0x00000020
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX1_R						(1 <<  6)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_R_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_R_LESS					0x00000040
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX1_Q						(1 <<  7)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_Q_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_Q_LESS					0x00000080
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX2_S						(1 <<  8)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_S_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_S_LESS					0x00000100
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX2_T						(1 <<  9)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_T_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_T_LESS					0x00000200
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX2_R						(1 << 10)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_R_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_R_LESS					0x00000400
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX2_Q						(1 << 11)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_Q_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_Q_LESS					0x00000800
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX3_S						(1 << 12)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_S_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_S_LESS					0x00001000
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX3_T						(1 << 13)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_T_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_T_LESS					0x00002000
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX3_R						(1 << 14)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_R_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_R_LESS					0x00004000
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX3_Q						(1 << 15)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_Q_GEQUAL					0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_Q_LESS					0x00008000
+#define  NV20TCL_VERTEX_BEGIN_END							0x000017fc
+#define   NV20TCL_VERTEX_BEGIN_END_STOP							0x00000000
+#define   NV20TCL_VERTEX_BEGIN_END_POINTS						0x00000001
+#define   NV20TCL_VERTEX_BEGIN_END_LINES						0x00000002
+#define   NV20TCL_VERTEX_BEGIN_END_LINE_LOOP						0x00000003
+#define   NV20TCL_VERTEX_BEGIN_END_LINE_STRIP						0x00000004
+#define   NV20TCL_VERTEX_BEGIN_END_TRIANGLES						0x00000005
+#define   NV20TCL_VERTEX_BEGIN_END_TRIANGLE_STRIP					0x00000006
+#define   NV20TCL_VERTEX_BEGIN_END_TRIANGLE_FAN						0x00000007
+#define   NV20TCL_VERTEX_BEGIN_END_QUADS						0x00000008
+#define   NV20TCL_VERTEX_BEGIN_END_QUAD_STRIP						0x00000009
+#define   NV20TCL_VERTEX_BEGIN_END_POLYGON						0x0000000a
+#define  NV20TCL_VB_ELEMENT_U16								0x00001800
+#define   NV20TCL_VB_ELEMENT_U16_I0_SHIFT						0
+#define   NV20TCL_VB_ELEMENT_U16_I0_MASK						0x0000ffff
+#define   NV20TCL_VB_ELEMENT_U16_I1_SHIFT						16
+#define   NV20TCL_VB_ELEMENT_U16_I1_MASK						0xffff0000
+#define  NV20TCL_VB_ELEMENT_U32								0x00001808
+#define  NV20TCL_VB_VERTEX_BATCH							0x00001810
+#define   NV20TCL_VB_VERTEX_BATCH_OFFSET_SHIFT						0
+#define   NV20TCL_VB_VERTEX_BATCH_OFFSET_MASK						0x00ffffff
+#define   NV20TCL_VB_VERTEX_BATCH_COUNT_SHIFT						24
+#define   NV20TCL_VB_VERTEX_BATCH_COUNT_MASK						0xff000000
+#define  NV20TCL_VERTEX_DATA								0x00001818
+#define  NV20TCL_TX_SHADER_CONST_EYE_X							0x0000181c
+#define  NV20TCL_TX_SHADER_CONST_EYE_Y							0x00001820
+#define  NV20TCL_TX_SHADER_CONST_EYE_Z							0x00001824
+#define  NV20TCL_VTX_ATTR_4F_X(x)							(0x00001a00+((x)*16))
+#define  NV20TCL_VTX_ATTR_4F_X__SIZE							0x00000010
+#define  NV20TCL_VTX_ATTR_4F_Y(x)							(0x00001a04+((x)*16))
+#define  NV20TCL_VTX_ATTR_4F_Y__SIZE							0x00000010
+#define  NV20TCL_VTX_ATTR_4F_Z(x)							(0x00001a08+((x)*16))
+#define  NV20TCL_VTX_ATTR_4F_Z__SIZE							0x00000010
+#define  NV20TCL_VTX_ATTR_4F_W(x)							(0x00001a0c+((x)*16))
+#define  NV20TCL_VTX_ATTR_4F_W__SIZE							0x00000010
+#define  NV20TCL_TX_OFFSET(x)								(0x00001b00+((x)*64))
+#define  NV20TCL_TX_OFFSET__SIZE							0x00000004
+#define  NV20TCL_TX_FORMAT(x)								(0x00001b04+((x)*64))
+#define  NV20TCL_TX_FORMAT__SIZE							0x00000004
+#define   NV20TCL_TX_FORMAT_DMA0							(1 <<  0)
+#define   NV20TCL_TX_FORMAT_DMA1							(1 <<  1)
+#define   NV20TCL_TX_FORMAT_CUBIC							(1 <<  2)
+#define   NV20TCL_TX_FORMAT_NO_BORDER							(1 <<  3)
+#define   NV20TCL_TX_FORMAT_DIMS_SHIFT							4
+#define   NV20TCL_TX_FORMAT_DIMS_MASK							0x000000f0
+#define    NV20TCL_TX_FORMAT_DIMS_1D							0x00000010
+#define    NV20TCL_TX_FORMAT_DIMS_2D							0x00000020
+#define    NV20TCL_TX_FORMAT_DIMS_3D							0x00000030
+#define   NV20TCL_TX_FORMAT_FORMAT_SHIFT						8
+#define   NV20TCL_TX_FORMAT_FORMAT_MASK							0x0000ff00
+#define    NV20TCL_TX_FORMAT_FORMAT_L8							0x00000000
+#define    NV20TCL_TX_FORMAT_FORMAT_A8							0x00000100
+#define    NV20TCL_TX_FORMAT_FORMAT_A1R5G5B5						0x00000200
+#define    NV20TCL_TX_FORMAT_FORMAT_A4R4G4B4						0x00000400
+#define    NV20TCL_TX_FORMAT_FORMAT_R5G6B5						0x00000500
+#define    NV20TCL_TX_FORMAT_FORMAT_A8R8G8B8						0x00000600
+#define    NV20TCL_TX_FORMAT_FORMAT_X8R8G8B8						0x00000700
+#define    NV20TCL_TX_FORMAT_FORMAT_INDEX8						0x00000b00
+#define    NV20TCL_TX_FORMAT_FORMAT_DXT1						0x00000c00
+#define    NV20TCL_TX_FORMAT_FORMAT_DXT3						0x00000e00
+#define    NV20TCL_TX_FORMAT_FORMAT_DXT5						0x00000f00
+#define    NV20TCL_TX_FORMAT_FORMAT_A1R5G5B5_RECT					0x00001000
+#define    NV20TCL_TX_FORMAT_FORMAT_R5G6B5_RECT						0x00001100
+#define    NV20TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT					0x00001200
+#define    NV20TCL_TX_FORMAT_FORMAT_L8_RECT						0x00001300
+#define    NV20TCL_TX_FORMAT_FORMAT_DSDT8_RECT						0x00001700
+#define    NV20TCL_TX_FORMAT_FORMAT_A8L8						0x00001a00
+#define    NV20TCL_TX_FORMAT_FORMAT_A8_RECT						0x00001b00
+#define    NV20TCL_TX_FORMAT_FORMAT_A4R4G4B4_RECT					0x00001d00
+#define    NV20TCL_TX_FORMAT_FORMAT_R8G8B8_RECT						0x00001e00
+#define    NV20TCL_TX_FORMAT_FORMAT_A8L8_RECT						0x00002000
+#define    NV20TCL_TX_FORMAT_FORMAT_DSDT8						0x00002800
+#define    NV20TCL_TX_FORMAT_FORMAT_HILO16						0x00003300
+#define    NV20TCL_TX_FORMAT_FORMAT_HILO16_RECT						0x00003600
+#define    NV20TCL_TX_FORMAT_FORMAT_HILO8						0x00004400
+#define    NV20TCL_TX_FORMAT_FORMAT_SIGNED_HILO8					0x00004500
+#define    NV20TCL_TX_FORMAT_FORMAT_HILO8_RECT						0x00004600
+#define    NV20TCL_TX_FORMAT_FORMAT_SIGNED_HILO8_RECT					0x00004700
+#define    NV20TCL_TX_FORMAT_FORMAT_A16							0x00003200
+#define    NV20TCL_TX_FORMAT_FORMAT_A16_RECT						0x00003500
+#define    NV20TCL_TX_FORMAT_FORMAT_FLOAT_RGBA16_NV					0x00004a00
+#define    NV20TCL_TX_FORMAT_FORMAT_FLOAT_RGBA32_NV					0x00004b00
+#define    NV20TCL_TX_FORMAT_FORMAT_FLOAT_R32_NV					0x00004c00
+#define   NV20TCL_TX_FORMAT_MIPMAP							(1 << 19)
+#define   NV20TCL_TX_FORMAT_BASE_SIZE_U_SHIFT						20
+#define   NV20TCL_TX_FORMAT_BASE_SIZE_U_MASK						0x00f00000
+#define   NV20TCL_TX_FORMAT_BASE_SIZE_V_SHIFT						24
+#define   NV20TCL_TX_FORMAT_BASE_SIZE_V_MASK						0x0f000000
+#define   NV20TCL_TX_FORMAT_BASE_SIZE_W_SHIFT						28
+#define   NV20TCL_TX_FORMAT_BASE_SIZE_W_MASK						0xf0000000
+#define  NV20TCL_TX_WRAP(x)								(0x00001b08+((x)*64))
+#define  NV20TCL_TX_WRAP__SIZE								0x00000004
+#define   NV20TCL_TX_WRAP_S_SHIFT							0
+#define   NV20TCL_TX_WRAP_S_MASK							0x000000ff
+#define    NV20TCL_TX_WRAP_S_REPEAT							0x00000001
+#define    NV20TCL_TX_WRAP_S_MIRRORED_REPEAT						0x00000002
+#define    NV20TCL_TX_WRAP_S_CLAMP_TO_EDGE						0x00000003
+#define    NV20TCL_TX_WRAP_S_CLAMP_TO_BORDER						0x00000004
+#define    NV20TCL_TX_WRAP_S_CLAMP							0x00000005
+#define   NV20TCL_TX_WRAP_T_SHIFT							8
+#define   NV20TCL_TX_WRAP_T_MASK							0x00000f00
+#define    NV20TCL_TX_WRAP_T_REPEAT							0x00000100
+#define    NV20TCL_TX_WRAP_T_MIRRORED_REPEAT						0x00000200
+#define    NV20TCL_TX_WRAP_T_CLAMP_TO_EDGE						0x00000300
+#define    NV20TCL_TX_WRAP_T_CLAMP_TO_BORDER						0x00000400
+#define    NV20TCL_TX_WRAP_T_CLAMP							0x00000500
+#define   NV20TCL_TX_WRAP_R_SHIFT							16
+#define   NV20TCL_TX_WRAP_R_MASK							0x000f0000
+#define    NV20TCL_TX_WRAP_R_REPEAT							0x00010000
+#define    NV20TCL_TX_WRAP_R_MIRRORED_REPEAT						0x00020000
+#define    NV20TCL_TX_WRAP_R_CLAMP_TO_EDGE						0x00030000
+#define    NV20TCL_TX_WRAP_R_CLAMP_TO_BORDER						0x00040000
+#define    NV20TCL_TX_WRAP_R_CLAMP							0x00050000
+#define  NV20TCL_TX_ENABLE(x)								(0x00001b0c+((x)*64))
+#define  NV20TCL_TX_ENABLE__SIZE							0x00000004
+#define   NV20TCL_TX_ENABLE_ANISO_SHIFT							4
+#define   NV20TCL_TX_ENABLE_ANISO_MASK							0x00000030
+#define    NV20TCL_TX_ENABLE_ANISO_NONE							0x00000000
+#define    NV20TCL_TX_ENABLE_ANISO_2X							0x00000010
+#define    NV20TCL_TX_ENABLE_ANISO_4X							0x00000020
+#define    NV20TCL_TX_ENABLE_ANISO_8X							0x00000030
+#define   NV20TCL_TX_ENABLE_MIPMAP_MAX_LOD_SHIFT					14
+#define   NV20TCL_TX_ENABLE_MIPMAP_MAX_LOD_MASK						0x0003c000
+#define   NV20TCL_TX_ENABLE_MIPMAP_MIN_LOD_SHIFT					26
+#define   NV20TCL_TX_ENABLE_MIPMAP_MIN_LOD_MASK						0x3c000000
+#define   NV20TCL_TX_ENABLE_ENABLE							(1 << 30)
+#define  NV20TCL_TX_NPOT_PITCH(x)							(0x00001b10+((x)*64))
+#define  NV20TCL_TX_NPOT_PITCH__SIZE							0x00000004
+#define   NV20TCL_TX_NPOT_PITCH_PITCH_SHIFT						16
+#define   NV20TCL_TX_NPOT_PITCH_PITCH_MASK						0xffff0000
+#define  NV20TCL_TX_FILTER(x)								(0x00001b14+((x)*64))
+#define  NV20TCL_TX_FILTER__SIZE							0x00000004
+#define   NV20TCL_TX_FILTER_LOD_BIAS_SHIFT						8
+#define   NV20TCL_TX_FILTER_LOD_BIAS_MASK						0x00000f00
+#define   NV20TCL_TX_FILTER_MINIFY_SHIFT						16
+#define   NV20TCL_TX_FILTER_MINIFY_MASK							0x000f0000
+#define    NV20TCL_TX_FILTER_MINIFY_NEAREST						0x00010000
+#define    NV20TCL_TX_FILTER_MINIFY_LINEAR						0x00020000
+#define    NV20TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST				0x00030000
+#define    NV20TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST				0x00040000
+#define    NV20TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR				0x00050000
+#define    NV20TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR				0x00060000
+#define   NV20TCL_TX_FILTER_MAGNIFY_SHIFT						24
+#define   NV20TCL_TX_FILTER_MAGNIFY_MASK						0x0f000000
+#define    NV20TCL_TX_FILTER_MAGNIFY_NEAREST						0x01000000
+#define    NV20TCL_TX_FILTER_MAGNIFY_LINEAR						0x02000000
+#define  NV20TCL_TX_NPOT_SIZE(x)							(0x00001b1c+((x)*64))
+#define  NV20TCL_TX_NPOT_SIZE__SIZE							0x00000004
+#define   NV20TCL_TX_NPOT_SIZE_H_SHIFT							0
+#define   NV20TCL_TX_NPOT_SIZE_H_MASK							0x0000ffff
+#define   NV20TCL_TX_NPOT_SIZE_W_SHIFT							16
+#define   NV20TCL_TX_NPOT_SIZE_W_MASK							0xffff0000
+#define  NV20TCL_TX_PALETTE_OFFSET(x)							(0x00001b20+((x)*64))
+#define  NV20TCL_TX_PALETTE_OFFSET__SIZE						0x00000004
+#define  NV20TCL_TX_BORDER_COLOR(x)							(0x00001b24+((x)*64))
+#define  NV20TCL_TX_BORDER_COLOR__SIZE							0x00000004
+#define   NV20TCL_TX_BORDER_COLOR_B_SHIFT						0
+#define   NV20TCL_TX_BORDER_COLOR_B_MASK						0x000000ff
+#define   NV20TCL_TX_BORDER_COLOR_G_SHIFT						8
+#define   NV20TCL_TX_BORDER_COLOR_G_MASK						0x0000ff00
+#define   NV20TCL_TX_BORDER_COLOR_R_SHIFT						16
+#define   NV20TCL_TX_BORDER_COLOR_R_MASK						0x00ff0000
+#define   NV20TCL_TX_BORDER_COLOR_A_SHIFT						24
+#define   NV20TCL_TX_BORDER_COLOR_A_MASK						0xff000000
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX00(x)						(0x00001b28+((x)*64))
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX00__SIZE					0x00000004
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX01(x)						(0x00001b2c+((x)*64))
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX01__SIZE					0x00000004
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX11(x)						(0x00001b30+((x)*64))
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX11__SIZE					0x00000004
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX10(x)						(0x00001b34+((x)*64))
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX10__SIZE					0x00000004
+#define  NV20TCL_DEPTH_UNK17D8								0x00001d78
+#define   NV20TCL_DEPTH_UNK17D8_CLAMP_SHIFT						4
+#define   NV20TCL_DEPTH_UNK17D8_CLAMP_MASK						0x000000f0
+#define  NV20TCL_MULTISAMPLE_CONTROL							0x00001d7c
+#define  NV20TCL_CLEAR_DEPTH_VALUE							0x00001d8c
+#define  NV20TCL_CLEAR_VALUE								0x00001d90
+#define  NV20TCL_CLEAR_BUFFERS								0x00001d94
+#define   NV20TCL_CLEAR_BUFFERS_COLOR_A							(1 <<  7)
+#define   NV20TCL_CLEAR_BUFFERS_COLOR_B							(1 <<  6)
+#define   NV20TCL_CLEAR_BUFFERS_COLOR_G							(1 <<  5)
+#define   NV20TCL_CLEAR_BUFFERS_COLOR_R							(1 <<  4)
+#define   NV20TCL_CLEAR_BUFFERS_STENCIL							(1 <<  1)
+#define   NV20TCL_CLEAR_BUFFERS_DEPTH							(1 <<  0)
+#define  NV20TCL_RC_COLOR0								0x00001e20
+#define   NV20TCL_RC_COLOR0_B_SHIFT							0
+#define   NV20TCL_RC_COLOR0_B_MASK							0x000000ff
+#define   NV20TCL_RC_COLOR0_G_SHIFT							8
+#define   NV20TCL_RC_COLOR0_G_MASK							0x0000ff00
+#define   NV20TCL_RC_COLOR0_R_SHIFT							16
+#define   NV20TCL_RC_COLOR0_R_MASK							0x00ff0000
+#define   NV20TCL_RC_COLOR0_A_SHIFT							24
+#define   NV20TCL_RC_COLOR0_A_MASK							0xff000000
+#define  NV20TCL_RC_COLOR1								0x00001e24
+#define   NV20TCL_RC_COLOR1_B_SHIFT							0
+#define   NV20TCL_RC_COLOR1_B_MASK							0x000000ff
+#define   NV20TCL_RC_COLOR1_G_SHIFT							8
+#define   NV20TCL_RC_COLOR1_G_MASK							0x0000ff00
+#define   NV20TCL_RC_COLOR1_R_SHIFT							16
+#define   NV20TCL_RC_COLOR1_R_MASK							0x00ff0000
+#define   NV20TCL_RC_COLOR1_A_SHIFT							24
+#define   NV20TCL_RC_COLOR1_A_MASK							0xff000000
+#define  NV20TCL_BACK_MATERIAL_SHININESS(x)						(0x00001e28+((x)*4))
+#define  NV20TCL_BACK_MATERIAL_SHININESS__SIZE						0x00000006
+#define  NV20TCL_RC_OUT_RGB(x)								(0x00001e40+((x)*4))
+#define  NV20TCL_RC_OUT_RGB__SIZE							0x00000008
+#define   NV20TCL_RC_OUT_RGB_CD_OUTPUT_SHIFT						0
+#define   NV20TCL_RC_OUT_RGB_CD_OUTPUT_MASK						0x0000000f
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_ZERO						0x00000000
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0					0x00000001
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1					0x00000002
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_FOG						0x00000003
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR					0x00000004
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR					0x00000005
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE0					0x00000008
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE1					0x00000009
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0						0x0000000c
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1						0x0000000d
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F					0x0000000f
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE2					0x0000000a
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE3					0x0000000b
+#define   NV20TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT						4
+#define   NV20TCL_RC_OUT_RGB_AB_OUTPUT_MASK						0x000000f0
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_ZERO						0x00000000
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0					0x00000010
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1					0x00000020
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_FOG						0x00000030
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR					0x00000040
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR					0x00000050
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE0					0x00000080
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE1					0x00000090
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0						0x000000c0
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1						0x000000d0
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000000e0
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F					0x000000f0
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE2					0x000000a0
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE3					0x000000b0
+#define   NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT						8
+#define   NV20TCL_RC_OUT_RGB_SUM_OUTPUT_MASK						0x00000f00
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO						0x00000000
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0				0x00000100
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1				0x00000200
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_FOG						0x00000300
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR					0x00000400
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR				0x00000500
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0					0x00000800
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1					0x00000900
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0						0x00000c00
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1						0x00000d00
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F					0x00000f00
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE2					0x00000a00
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE3					0x00000b00
+#define   NV20TCL_RC_OUT_RGB_CD_DOT_PRODUCT						(1 << 12)
+#define   NV20TCL_RC_OUT_RGB_AB_DOT_PRODUCT						(1 << 13)
+#define   NV20TCL_RC_OUT_RGB_MUX_SUM							(1 << 14)
+#define   NV20TCL_RC_OUT_RGB_BIAS							(1 << 15)
+#define    NV20TCL_RC_OUT_RGB_BIAS_NONE							0x00000000
+#define    NV20TCL_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF				0x00008000
+#define   NV20TCL_RC_OUT_RGB_SCALE_SHIFT						17
+#define   NV20TCL_RC_OUT_RGB_SCALE_MASK							0x00000000
+#define    NV20TCL_RC_OUT_RGB_SCALE_NONE						0x00000000
+#define    NV20TCL_RC_OUT_RGB_SCALE_SCALE_BY_TWO					0x00020000
+#define    NV20TCL_RC_OUT_RGB_SCALE_SCALE_BY_FOUR					0x00040000
+#define    NV20TCL_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF					0x00060000
+#define  NV20TCL_RC_ENABLE								0x00001e60
+#define   NV20TCL_RC_ENABLE_NUM_COMBINERS_SHIFT						0
+#define   NV20TCL_RC_ENABLE_NUM_COMBINERS_MASK						0x0000000f
+#define  NV20TCL_TX_RCOMP								0x00001e6c
+#define   NV20TCL_TX_RCOMP_NEVER							0x00000000
+#define   NV20TCL_TX_RCOMP_GREATER							0x00000001
+#define   NV20TCL_TX_RCOMP_EQUAL							0x00000002
+#define   NV20TCL_TX_RCOMP_GEQUAL							0x00000003
+#define   NV20TCL_TX_RCOMP_LESS								0x00000004
+#define   NV20TCL_TX_RCOMP_NOTEQUAL							0x00000005
+#define   NV20TCL_TX_RCOMP_LEQUAL							0x00000006
+#define   NV20TCL_TX_RCOMP_ALWAYS							0x00000007
+#define  NV20TCL_TX_SHADER_OP								0x00001e70
+#define   NV20TCL_TX_SHADER_OP_TX0_SHIFT						0
+#define   NV20TCL_TX_SHADER_OP_TX0_MASK							0x0000001f
+#define    NV20TCL_TX_SHADER_OP_TX0_NONE						0x00000000
+#define    NV20TCL_TX_SHADER_OP_TX0_TEXTURE_2D						0x00000001
+#define    NV20TCL_TX_SHADER_OP_TX0_PASS_THROUGH					0x00000004
+#define    NV20TCL_TX_SHADER_OP_TX0_CULL_FRAGMENT					0x00000005
+#define    NV20TCL_TX_SHADER_OP_TX0_OFFSET_TEXTURE_2D					0x00000006
+#define    NV20TCL_TX_SHADER_OP_TX0_DOT_PRODUCT_TEXTURE_2D				0x00000009
+#define    NV20TCL_TX_SHADER_OP_TX0_DOT_PRODUCT_DEPTH_REPLACE				0x0000000a
+#define    NV20TCL_TX_SHADER_OP_TX0_DEPENDANT_AR_TEXTURE_2D				0x0000000f
+#define    NV20TCL_TX_SHADER_OP_TX0_DEPENDANT_GB_TEXTURE_2D				0x00000010
+#define    NV20TCL_TX_SHADER_OP_TX0_DOT_PRODUCT						0x00000011
+#define   NV20TCL_TX_SHADER_OP_TX1_SHIFT						5
+#define   NV20TCL_TX_SHADER_OP_TX1_MASK							0x000003e0
+#define    NV20TCL_TX_SHADER_OP_TX1_NONE						0x00000000
+#define    NV20TCL_TX_SHADER_OP_TX1_TEXTURE_2D						0x00000020
+#define    NV20TCL_TX_SHADER_OP_TX1_PASS_THROUGH					0x00000080
+#define    NV20TCL_TX_SHADER_OP_TX1_CULL_FRAGMENT					0x000000a0
+#define    NV20TCL_TX_SHADER_OP_TX1_OFFSET_TEXTURE_2D					0x000000c0
+#define    NV20TCL_TX_SHADER_OP_TX1_DOT_PRODUCT_TEXTURE_2D				0x00000120
+#define    NV20TCL_TX_SHADER_OP_TX1_DOT_PRODUCT_DEPTH_REPLACE				0x00000140
+#define    NV20TCL_TX_SHADER_OP_TX1_DEPENDANT_AR_TEXTURE_2D				0x000001e0
+#define    NV20TCL_TX_SHADER_OP_TX1_DEPENDANT_GB_TEXTURE_2D				0x00000200
+#define    NV20TCL_TX_SHADER_OP_TX1_DOT_PRODUCT						0x00000220
+#define   NV20TCL_TX_SHADER_OP_TX2_SHIFT						10
+#define   NV20TCL_TX_SHADER_OP_TX2_MASK							0x00007c00
+#define    NV20TCL_TX_SHADER_OP_TX2_NONE						0x00000000
+#define    NV20TCL_TX_SHADER_OP_TX2_TEXTURE_2D						0x00000400
+#define    NV20TCL_TX_SHADER_OP_TX2_PASS_THROUGH					0x00001000
+#define    NV20TCL_TX_SHADER_OP_TX2_CULL_FRAGMENT					0x00001400
+#define    NV20TCL_TX_SHADER_OP_TX2_OFFSET_TEXTURE_2D					0x00001800
+#define    NV20TCL_TX_SHADER_OP_TX2_DOT_PRODUCT_TEXTURE_2D				0x00002400
+#define    NV20TCL_TX_SHADER_OP_TX2_DOT_PRODUCT_DEPTH_REPLACE				0x00002800
+#define    NV20TCL_TX_SHADER_OP_TX2_DEPENDANT_AR_TEXTURE_2D				0x00003c00
+#define    NV20TCL_TX_SHADER_OP_TX2_DEPENDANT_GB_TEXTURE_2D				0x00004000
+#define    NV20TCL_TX_SHADER_OP_TX2_DOT_PRODUCT						0x00004400
+#define   NV20TCL_TX_SHADER_OP_TX3_SHIFT						15
+#define   NV20TCL_TX_SHADER_OP_TX3_MASK							0x000f8000
+#define    NV20TCL_TX_SHADER_OP_TX3_NONE						0x00000000
+#define    NV20TCL_TX_SHADER_OP_TX3_TEXTURE_2D						0x00008000
+#define    NV20TCL_TX_SHADER_OP_TX3_PASS_THROUGH					0x00020000
+#define    NV20TCL_TX_SHADER_OP_TX3_CULL_FRAGMENT					0x00028000
+#define    NV20TCL_TX_SHADER_OP_TX3_OFFSET_TEXTURE_2D					0x00030000
+#define    NV20TCL_TX_SHADER_OP_TX3_DOT_PRODUCT_TEXTURE_2D				0x00048000
+#define    NV20TCL_TX_SHADER_OP_TX3_DOT_PRODUCT_DEPTH_REPLACE				0x00050000
+#define    NV20TCL_TX_SHADER_OP_TX3_DEPENDANT_AR_TEXTURE_2D				0x00078000
+#define    NV20TCL_TX_SHADER_OP_TX3_DEPENDANT_GB_TEXTURE_2D				0x00080000
+#define    NV20TCL_TX_SHADER_OP_TX3_DOT_PRODUCT						0x00088000
+#define  NV20TCL_TX_SHADER_DOTMAPPING							0x00001e74
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX0_SHIFT					0
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX0_MASK						0x0000000f
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX1_SHIFT					4
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX1_MASK						0x000000f0
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX2_SHIFT					8
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX2_MASK						0x00000f00
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX3_SHIFT					12
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX3_MASK						0x0000f000
+#define  NV20TCL_TX_SHADER_PREVIOUS							0x00001e78
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX0_SHIFT						8
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX0_MASK						0x00000f00
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX1_SHIFT						12
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX1_MASK						0x0000f000
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX2_SHIFT						16
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX2_MASK						0x00030000
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX3_SHIFT						20
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX3_MASK						0x00300000
+#define  NV20TCL_ENGINE									0x00001e94
+#define   NV20TCL_ENGINE_VP								(1 <<  1)
+#define   NV20TCL_ENGINE_FIXED								(1 <<  2)
+#define  NV20TCL_VP_UPLOAD_FROM_ID							0x00001e9c
+#define  NV20TCL_VP_START_FROM_ID							0x00001ea0
+#define  NV20TCL_VP_UPLOAD_CONST_ID							0x00001ea4
+
+
+#define NV25TCL										0x00000597
+
+#define  NV25TCL_DMA_IN_MEMORY4								0x0000019c
+#define  NV25TCL_DMA_IN_MEMORY5								0x000001a0
+#define  NV25TCL_DMA_IN_MEMORY8								0x000001ac
+#define  NV25TCL_DMA_IN_MEMORY9								0x000001b0
+
+
+#define NV30TCL										0x00000397
+
+
+
+#define NV35TCL										0x00000497
+
+
+
+#define NV34TCL										0x00000697
+
+#define  NV34TCL_NOP									0x00000100
+#define  NV34TCL_NOTIFY									0x00000104
+#define  NV34TCL_DMA_NOTIFY								0x00000180
+#define  NV34TCL_DMA_TEXTURE0								0x00000184
+#define  NV34TCL_DMA_TEXTURE1								0x00000188
+#define  NV34TCL_DMA_COLOR1								0x0000018c
+#define  NV34TCL_DMA_COLOR0								0x00000194
+#define  NV34TCL_DMA_ZETA								0x00000198
+#define  NV34TCL_DMA_VTXBUF0								0x0000019c
+#define  NV34TCL_DMA_VTXBUF1								0x000001a0
+#define  NV34TCL_DMA_FENCE								0x000001a4
+#define  NV34TCL_DMA_QUERY								0x000001a8
+#define  NV34TCL_DMA_IN_MEMORY7								0x000001ac
+#define  NV34TCL_DMA_IN_MEMORY8								0x000001b0
+#define  NV34TCL_RT_HORIZ								0x00000200
+#define   NV34TCL_RT_HORIZ_X_SHIFT							0
+#define   NV34TCL_RT_HORIZ_X_MASK							0x0000ffff
+#define   NV34TCL_RT_HORIZ_W_SHIFT							16
+#define   NV34TCL_RT_HORIZ_W_MASK							0xffff0000
+#define  NV34TCL_RT_VERT								0x00000204
+#define   NV34TCL_RT_VERT_Y_SHIFT							0
+#define   NV34TCL_RT_VERT_Y_MASK							0x0000ffff
+#define   NV34TCL_RT_VERT_H_SHIFT							16
+#define   NV34TCL_RT_VERT_H_MASK							0xffff0000
+#define  NV34TCL_RT_FORMAT								0x00000208
+#define   NV34TCL_RT_FORMAT_LOG2_HEIGHT_SHIFT						24
+#define   NV34TCL_RT_FORMAT_LOG2_HEIGHT_MASK						0xff000000
+#define   NV34TCL_RT_FORMAT_LOG2_WIDTH_SHIFT						16
+#define   NV34TCL_RT_FORMAT_LOG2_WIDTH_MASK						0x00ff0000
+#define   NV34TCL_RT_FORMAT_TYPE_SHIFT							8
+#define   NV34TCL_RT_FORMAT_TYPE_MASK							0x00000f00
+#define    NV34TCL_RT_FORMAT_TYPE_LINEAR						0x00000100
+#define    NV34TCL_RT_FORMAT_TYPE_SWIZZLED						0x00000200
+#define   NV34TCL_RT_FORMAT_ZETA_SHIFT							5
+#define   NV34TCL_RT_FORMAT_ZETA_MASK							0x000000e0
+#define    NV34TCL_RT_FORMAT_ZETA_Z16							0x00000020
+#define    NV34TCL_RT_FORMAT_ZETA_Z24S8							0x00000040
+#define   NV34TCL_RT_FORMAT_COLOR_SHIFT							0
+#define   NV34TCL_RT_FORMAT_COLOR_MASK							0x0000001f
+#define    NV34TCL_RT_FORMAT_COLOR_R5G6B5						0x00000003
+#define    NV34TCL_RT_FORMAT_COLOR_X8R8G8B8						0x00000005
+#define    NV34TCL_RT_FORMAT_COLOR_A8R8G8B8						0x00000008
+#define    NV34TCL_RT_FORMAT_COLOR_B8							0x00000009
+#define    NV34TCL_RT_FORMAT_COLOR_UNKNOWN						0x0000000d
+#define    NV34TCL_RT_FORMAT_COLOR_X8B8G8R8						0x0000000f
+#define    NV34TCL_RT_FORMAT_COLOR_A8B8G8R8						0x00000010
+#define  NV34TCL_COLOR0_PITCH								0x0000020c
+#define   NV34TCL_COLOR0_PITCH_COLOR0_SHIFT						0
+#define   NV34TCL_COLOR0_PITCH_COLOR0_MASK						0x0000ffff
+#define   NV34TCL_COLOR0_PITCH_ZETA_SHIFT						16
+#define   NV34TCL_COLOR0_PITCH_ZETA_MASK						0xffff0000
+#define  NV34TCL_COLOR0_OFFSET								0x00000210
+#define  NV34TCL_ZETA_OFFSET								0x00000214
+#define  NV34TCL_COLOR1_OFFSET								0x00000218
+#define  NV34TCL_COLOR1_PITCH								0x0000021c
+#define  NV34TCL_RT_ENABLE								0x00000220
+#define   NV34TCL_RT_ENABLE_MRT								(1 <<  4)
+#define   NV34TCL_RT_ENABLE_COLOR1							(1 <<  1)
+#define   NV34TCL_RT_ENABLE_COLOR0							(1 <<  0)
+#define  NV34TCL_LMA_DEPTH_PITCH							0x0000022c
+#define  NV34TCL_LMA_DEPTH_OFFSET							0x00000230
+#define  NV34TCL_TX_UNITS_ENABLE							0x0000023c
+#define   NV34TCL_TX_UNITS_ENABLE_TX0							(1 <<  0)
+#define   NV34TCL_TX_UNITS_ENABLE_TX1							(1 <<  1)
+#define   NV34TCL_TX_UNITS_ENABLE_TX2							(1 <<  2)
+#define   NV34TCL_TX_UNITS_ENABLE_TX3							(1 <<  3)
+#define   NV34TCL_TX_UNITS_ENABLE_TX4							(1 <<  4)
+#define   NV34TCL_TX_UNITS_ENABLE_TX5							(1 <<  5)
+#define   NV34TCL_TX_UNITS_ENABLE_TX6							(1 <<  6)
+#define   NV34TCL_TX_UNITS_ENABLE_TX7							(1 <<  7)
+#define  NV34TCL_TX_MATRIX_ENABLE(x)							(0x00000240+((x)*4))
+#define  NV34TCL_TX_MATRIX_ENABLE__SIZE							0x00000008
+#define  NV34TCL_VIEWPORT_TX_ORIGIN							0x000002b8
+#define   NV34TCL_VIEWPORT_TX_ORIGIN_X_SHIFT						0
+#define   NV34TCL_VIEWPORT_TX_ORIGIN_X_MASK						0x0000ffff
+#define   NV34TCL_VIEWPORT_TX_ORIGIN_Y_SHIFT						16
+#define   NV34TCL_VIEWPORT_TX_ORIGIN_Y_MASK						0xffff0000
+#define  NV34TCL_VIEWPORT_CLIP_MODE							0x000002bc
+#define  NV34TCL_VIEWPORT_CLIP_HORIZ(x)							(0x000002c0+((x)*8))
+#define  NV34TCL_VIEWPORT_CLIP_HORIZ__SIZE						0x00000008
+#define   NV34TCL_VIEWPORT_CLIP_HORIZ_L_SHIFT						0
+#define   NV34TCL_VIEWPORT_CLIP_HORIZ_L_MASK						0x0000ffff
+#define   NV34TCL_VIEWPORT_CLIP_HORIZ_R_SHIFT						16
+#define   NV34TCL_VIEWPORT_CLIP_HORIZ_R_MASK						0xffff0000
+#define  NV34TCL_VIEWPORT_CLIP_VERT(x)							(0x000002c4+((x)*8))
+#define  NV34TCL_VIEWPORT_CLIP_VERT__SIZE						0x00000008
+#define   NV34TCL_VIEWPORT_CLIP_VERT_T_SHIFT						0
+#define   NV34TCL_VIEWPORT_CLIP_VERT_T_MASK						0x0000ffff
+#define   NV34TCL_VIEWPORT_CLIP_VERT_D_SHIFT						16
+#define   NV34TCL_VIEWPORT_CLIP_VERT_D_MASK						0xffff0000
+#define  NV34TCL_DITHER_ENABLE								0x00000300
+#define  NV34TCL_ALPHA_FUNC_ENABLE							0x00000304
+#define  NV34TCL_ALPHA_FUNC_FUNC							0x00000308
+#define   NV34TCL_ALPHA_FUNC_FUNC_NEVER							0x00000200
+#define   NV34TCL_ALPHA_FUNC_FUNC_LESS							0x00000201
+#define   NV34TCL_ALPHA_FUNC_FUNC_EQUAL							0x00000202
+#define   NV34TCL_ALPHA_FUNC_FUNC_LEQUAL						0x00000203
+#define   NV34TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
+#define   NV34TCL_ALPHA_FUNC_FUNC_NOTEQUAL						0x00000205
+#define   NV34TCL_ALPHA_FUNC_FUNC_GEQUAL						0x00000206
+#define   NV34TCL_ALPHA_FUNC_FUNC_ALWAYS						0x00000207
+#define  NV34TCL_ALPHA_FUNC_REF								0x0000030c
+#define  NV34TCL_BLEND_FUNC_ENABLE							0x00000310
+#define  NV34TCL_BLEND_FUNC_SRC								0x00000314
+#define   NV34TCL_BLEND_FUNC_SRC_RGB_SHIFT						0
+#define   NV34TCL_BLEND_FUNC_SRC_RGB_MASK						0x0000ffff
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_ZERO						0x00000000
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_ONE						0x00000001
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR						0x00000300
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR				0x00000301
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA						0x00000302
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA				0x00000303
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA						0x00000304
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA				0x00000305
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_DST_COLOR						0x00000306
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR				0x00000307
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE				0x00000308
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR					0x00008001
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR				0x00008002
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA					0x00008003
+#define    NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA				0x00008004
+#define   NV34TCL_BLEND_FUNC_SRC_ALPHA_SHIFT						16
+#define   NV34TCL_BLEND_FUNC_SRC_ALPHA_MASK						0xffff0000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ZERO						0x00000000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE						0x00010000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR					0x03000000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR				0x03010000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA					0x03020000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA				0x03030000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA					0x03040000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA				0x03050000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR					0x03060000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR				0x03070000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE				0x03080000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR					0x80010000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR			0x80020000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA					0x80030000
+#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA			0x80040000
+#define  NV34TCL_BLEND_FUNC_DST								0x00000318
+#define   NV34TCL_BLEND_FUNC_DST_RGB_SHIFT						0
+#define   NV34TCL_BLEND_FUNC_DST_RGB_MASK						0x0000ffff
+#define    NV34TCL_BLEND_FUNC_DST_RGB_ZERO						0x00000000
+#define    NV34TCL_BLEND_FUNC_DST_RGB_ONE						0x00000001
+#define    NV34TCL_BLEND_FUNC_DST_RGB_SRC_COLOR						0x00000300
+#define    NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR				0x00000301
+#define    NV34TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA						0x00000302
+#define    NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA				0x00000303
+#define    NV34TCL_BLEND_FUNC_DST_RGB_DST_ALPHA						0x00000304
+#define    NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA				0x00000305
+#define    NV34TCL_BLEND_FUNC_DST_RGB_DST_COLOR						0x00000306
+#define    NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR				0x00000307
+#define    NV34TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE				0x00000308
+#define    NV34TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR					0x00008001
+#define    NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR				0x00008002
+#define    NV34TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA					0x00008003
+#define    NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA				0x00008004
+#define   NV34TCL_BLEND_FUNC_DST_ALPHA_SHIFT						16
+#define   NV34TCL_BLEND_FUNC_DST_ALPHA_MASK						0xffff0000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ZERO						0x00000000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ONE						0x00010000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR					0x03000000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR				0x03010000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA					0x03020000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA				0x03030000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA					0x03040000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA				0x03050000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR					0x03060000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR				0x03070000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE				0x03080000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR					0x80010000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR			0x80020000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA					0x80030000
+#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA			0x80040000
+#define  NV34TCL_BLEND_COLOR								0x0000031c
+#define   NV34TCL_BLEND_COLOR_B_SHIFT							0
+#define   NV34TCL_BLEND_COLOR_B_MASK							0x000000ff
+#define   NV34TCL_BLEND_COLOR_G_SHIFT							8
+#define   NV34TCL_BLEND_COLOR_G_MASK							0x0000ff00
+#define   NV34TCL_BLEND_COLOR_R_SHIFT							16
+#define   NV34TCL_BLEND_COLOR_R_MASK							0x00ff0000
+#define   NV34TCL_BLEND_COLOR_A_SHIFT							24
+#define   NV34TCL_BLEND_COLOR_A_MASK							0xff000000
+#define  NV34TCL_BLEND_EQUATION								0x00000320
+#define   NV34TCL_BLEND_EQUATION_FUNC_ADD						0x00008006
+#define   NV34TCL_BLEND_EQUATION_MIN							0x00008007
+#define   NV34TCL_BLEND_EQUATION_MAX							0x00008008
+#define   NV34TCL_BLEND_EQUATION_FUNC_SUBTRACT						0x0000800a
+#define   NV34TCL_BLEND_EQUATION_FUNC_REVERSE_SUBTRACT					0x0000800b
+#define  NV34TCL_COLOR_MASK								0x00000324
+#define   NV34TCL_COLOR_MASK_B_SHIFT							0
+#define   NV34TCL_COLOR_MASK_B_MASK							0x000000ff
+#define   NV34TCL_COLOR_MASK_G_SHIFT							8
+#define   NV34TCL_COLOR_MASK_G_MASK							0x0000ff00
+#define   NV34TCL_COLOR_MASK_R_SHIFT							16
+#define   NV34TCL_COLOR_MASK_R_MASK							0x00ff0000
+#define   NV34TCL_COLOR_MASK_A_SHIFT							24
+#define   NV34TCL_COLOR_MASK_A_MASK							0xff000000
+#define  NV34TCL_STENCIL_FRONT_ENABLE							0x00000328
+#define  NV34TCL_STENCIL_FRONT_MASK							0x0000032c
+#define  NV34TCL_STENCIL_FRONT_FUNC_FUNC						0x00000330
+#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_NEVER						0x00000200
+#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_LESS						0x00000201
+#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL						0x00000202
+#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL					0x00000203
+#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_GREATER					0x00000204
+#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL					0x00000205
+#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL					0x00000206
+#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS					0x00000207
+#define  NV34TCL_STENCIL_FRONT_FUNC_REF							0x00000334
+#define  NV34TCL_STENCIL_FRONT_FUNC_MASK						0x00000338
+#define  NV34TCL_STENCIL_FRONT_OP_FAIL							0x0000033c
+#define   NV34TCL_STENCIL_FRONT_OP_FAIL_ZERO						0x00000000
+#define   NV34TCL_STENCIL_FRONT_OP_FAIL_INVERT						0x0000150a
+#define   NV34TCL_STENCIL_FRONT_OP_FAIL_KEEP						0x00001e00
+#define   NV34TCL_STENCIL_FRONT_OP_FAIL_REPLACE						0x00001e01
+#define   NV34TCL_STENCIL_FRONT_OP_FAIL_INCR						0x00001e02
+#define   NV34TCL_STENCIL_FRONT_OP_FAIL_DECR						0x00001e03
+#define   NV34TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP					0x00008507
+#define   NV34TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP					0x00008508
+#define  NV34TCL_STENCIL_FRONT_OP_ZFAIL							0x00000340
+#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_ZERO						0x00000000
+#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_INVERT						0x0000150a
+#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_KEEP						0x00001e00
+#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_REPLACE					0x00001e01
+#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_INCR						0x00001e02
+#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_DECR						0x00001e03
+#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP					0x00008507
+#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP					0x00008508
+#define  NV34TCL_STENCIL_FRONT_OP_ZPASS							0x00000344
+#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_ZERO						0x00000000
+#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_INVERT						0x0000150a
+#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_KEEP						0x00001e00
+#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_REPLACE					0x00001e01
+#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_INCR						0x00001e02
+#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_DECR						0x00001e03
+#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP					0x00008507
+#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP					0x00008508
+#define  NV34TCL_STENCIL_BACK_ENABLE							0x00000348
+#define  NV34TCL_STENCIL_BACK_MASK							0x0000034c
+#define  NV34TCL_STENCIL_BACK_FUNC_FUNC							0x00000350
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_NEVER						0x00000200
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_LESS						0x00000201
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_EQUAL						0x00000202
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL						0x00000203
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GREATER					0x00000204
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL					0x00000205
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL						0x00000206
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS						0x00000207
+#define  NV34TCL_STENCIL_BACK_FUNC_REF							0x00000354
+#define  NV34TCL_STENCIL_BACK_FUNC_MASK							0x00000358
+#define  NV34TCL_STENCIL_BACK_OP_FAIL							0x0000035c
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_ZERO						0x00000000
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_INVERT						0x0000150a
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_KEEP						0x00001e00
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_REPLACE						0x00001e01
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_INCR						0x00001e02
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_DECR						0x00001e03
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP					0x00008507
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP					0x00008508
+#define  NV34TCL_STENCIL_BACK_OP_ZFAIL							0x00000360
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_ZERO						0x00000000
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_INVERT						0x0000150a
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_KEEP						0x00001e00
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_REPLACE						0x00001e01
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_INCR						0x00001e02
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_DECR						0x00001e03
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP					0x00008507
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP					0x00008508
+#define  NV34TCL_STENCIL_BACK_OP_ZPASS							0x00000364
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_ZERO						0x00000000
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_INVERT						0x0000150a
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_KEEP						0x00001e00
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_REPLACE						0x00001e01
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_INCR						0x00001e02
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_DECR						0x00001e03
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP					0x00008507
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP					0x00008508
+#define  NV34TCL_SHADE_MODEL								0x00000368
+#define   NV34TCL_SHADE_MODEL_FLAT							0x00001d00
+#define   NV34TCL_SHADE_MODEL_SMOOTH							0x00001d01
+#define  NV34TCL_FOG_ENABLE								0x0000036c
+#define  NV34TCL_FOG_COLOR								0x00000370
+#define   NV34TCL_FOG_COLOR_R_SHIFT							0
+#define   NV34TCL_FOG_COLOR_R_MASK							0x000000ff
+#define   NV34TCL_FOG_COLOR_G_SHIFT							8
+#define   NV34TCL_FOG_COLOR_G_MASK							0x0000ff00
+#define   NV34TCL_FOG_COLOR_B_SHIFT							16
+#define   NV34TCL_FOG_COLOR_B_MASK							0x00ff0000
+#define   NV34TCL_FOG_COLOR_A_SHIFT							24
+#define   NV34TCL_FOG_COLOR_A_MASK							0xff000000
+#define  NV34TCL_COLOR_LOGIC_OP_ENABLE							0x00000374
+#define  NV34TCL_COLOR_LOGIC_OP_OP							0x00000378
+#define   NV34TCL_COLOR_LOGIC_OP_OP_CLEAR						0x00001500
+#define   NV34TCL_COLOR_LOGIC_OP_OP_AND							0x00001501
+#define   NV34TCL_COLOR_LOGIC_OP_OP_AND_REVERSE						0x00001502
+#define   NV34TCL_COLOR_LOGIC_OP_OP_COPY						0x00001503
+#define   NV34TCL_COLOR_LOGIC_OP_OP_AND_INVERTED					0x00001504
+#define   NV34TCL_COLOR_LOGIC_OP_OP_NOOP						0x00001505
+#define   NV34TCL_COLOR_LOGIC_OP_OP_XOR							0x00001506
+#define   NV34TCL_COLOR_LOGIC_OP_OP_OR							0x00001507
+#define   NV34TCL_COLOR_LOGIC_OP_OP_NOR							0x00001508
+#define   NV34TCL_COLOR_LOGIC_OP_OP_EQUIV						0x00001509
+#define   NV34TCL_COLOR_LOGIC_OP_OP_INVERT						0x0000150a
+#define   NV34TCL_COLOR_LOGIC_OP_OP_OR_REVERSE						0x0000150b
+#define   NV34TCL_COLOR_LOGIC_OP_OP_COPY_INVERTED					0x0000150c
+#define   NV34TCL_COLOR_LOGIC_OP_OP_OR_INVERTED						0x0000150d
+#define   NV34TCL_COLOR_LOGIC_OP_OP_NAND						0x0000150e
+#define   NV34TCL_COLOR_LOGIC_OP_OP_SET							0x0000150f
+#define  NV34TCL_NORMALIZE_ENABLE							0x0000037c
+#define  NV34TCL_COLOR_MATERIAL								0x00000390
+#define   NV34TCL_COLOR_MATERIAL_FRONT_EMISSION_ENABLE					(1 <<  0)
+#define   NV34TCL_COLOR_MATERIAL_FRONT_AMBIENT_ENABLE					(1 <<  2)
+#define   NV34TCL_COLOR_MATERIAL_FRONT_DIFFUSE_ENABLE					(1 <<  4)
+#define   NV34TCL_COLOR_MATERIAL_FRONT_SPECULAR_ENABLE					(1 <<  6)
+#define   NV34TCL_COLOR_MATERIAL_BACK_EMISSION_ENABLE					(1 <<  8)
+#define   NV34TCL_COLOR_MATERIAL_BACK_AMBIENT_ENABLE					(1 << 10)
+#define   NV34TCL_COLOR_MATERIAL_BACK_DIFFUSE_ENABLE					(1 << 12)
+#define   NV34TCL_COLOR_MATERIAL_BACK_SPECULAR_ENABLE					(1 << 14)
+#define  NV34TCL_DEPTH_RANGE_NEAR							0x00000394
+#define  NV34TCL_DEPTH_RANGE_FAR							0x00000398
+#define  NV34TCL_COLOR_MATERIAL_FRONT_R							0x000003a0
+#define  NV34TCL_COLOR_MATERIAL_FRONT_G							0x000003a4
+#define  NV34TCL_COLOR_MATERIAL_FRONT_B							0x000003a8
+#define  NV34TCL_COLOR_MATERIAL_FRONT_A							0x000003b4
+#define  NV34TCL_LINE_WIDTH								0x000003b8
+#define  NV34TCL_LINE_SMOOTH_ENABLE							0x000003bc
+#define  NV34TCL_TX_GEN_S(x)								(0x00000400+((x)*16))
+#define  NV34TCL_TX_GEN_S__SIZE								0x00000008
+#define   NV34TCL_TX_GEN_S_FALSE							0x00000000
+#define   NV34TCL_TX_GEN_S_EYE_LINEAR							0x00002400
+#define   NV34TCL_TX_GEN_S_OBJECT_LINEAR						0x00002401
+#define   NV34TCL_TX_GEN_S_SPHERE_MAP							0x00002402
+#define   NV34TCL_TX_GEN_S_NORMAL_MAP							0x00008511
+#define   NV34TCL_TX_GEN_S_REFLECTION_MAP						0x00008512
+#define  NV34TCL_TX_GEN_T(x)								(0x00000404+((x)*16))
+#define  NV34TCL_TX_GEN_T__SIZE								0x00000008
+#define   NV34TCL_TX_GEN_T_FALSE							0x00000000
+#define   NV34TCL_TX_GEN_T_EYE_LINEAR							0x00002400
+#define   NV34TCL_TX_GEN_T_OBJECT_LINEAR						0x00002401
+#define   NV34TCL_TX_GEN_T_SPHERE_MAP							0x00002402
+#define   NV34TCL_TX_GEN_T_NORMAL_MAP							0x00008511
+#define   NV34TCL_TX_GEN_T_REFLECTION_MAP						0x00008512
+#define  NV34TCL_TX_GEN_R(x)								(0x00000408+((x)*16))
+#define  NV34TCL_TX_GEN_R__SIZE								0x00000008
+#define   NV34TCL_TX_GEN_R_FALSE							0x00000000
+#define   NV34TCL_TX_GEN_R_EYE_LINEAR							0x00002400
+#define   NV34TCL_TX_GEN_R_OBJECT_LINEAR						0x00002401
+#define   NV34TCL_TX_GEN_R_SPHERE_MAP							0x00002402
+#define   NV34TCL_TX_GEN_R_NORMAL_MAP							0x00008511
+#define   NV34TCL_TX_GEN_R_REFLECTION_MAP						0x00008512
+#define  NV34TCL_TX_GEN_Q(x)								(0x0000040c+((x)*16))
+#define  NV34TCL_TX_GEN_Q__SIZE								0x00000008
+#define   NV34TCL_TX_GEN_Q_FALSE							0x00000000
+#define   NV34TCL_TX_GEN_Q_EYE_LINEAR							0x00002400
+#define   NV34TCL_TX_GEN_Q_OBJECT_LINEAR						0x00002401
+#define   NV34TCL_TX_GEN_Q_SPHERE_MAP							0x00002402
+#define   NV34TCL_TX_GEN_Q_NORMAL_MAP							0x00008511
+#define   NV34TCL_TX_GEN_Q_REFLECTION_MAP						0x00008512
+#define  NV34TCL_MODELVIEW_MATRIX(x)							(0x00000480+((x)*4))
+#define  NV34TCL_MODELVIEW_MATRIX__SIZE							0x00000010
+#define  NV34TCL_INVERSE_MODELVIEW_MATRIX(x)						(0x00000580+((x)*4))
+#define  NV34TCL_INVERSE_MODELVIEW_MATRIX__SIZE						0x0000000c
+#define  NV34TCL_PROJECTION_MATRIX(x)							(0x00000680+((x)*4))
+#define  NV34TCL_PROJECTION_MATRIX__SIZE						0x00000010
+#define  NV34TCL_TX0_MATRIX(x)								(0x000006c0+((x)*4))
+#define  NV34TCL_TX0_MATRIX__SIZE							0x00000010
+#define  NV34TCL_TX1_MATRIX(x)								(0x00000700+((x)*4))
+#define  NV34TCL_TX1_MATRIX__SIZE							0x00000010
+#define  NV34TCL_TX2_MATRIX(x)								(0x00000740+((x)*4))
+#define  NV34TCL_TX2_MATRIX__SIZE							0x00000010
+#define  NV34TCL_TX3_MATRIX(x)								(0x00000780+((x)*4))
+#define  NV34TCL_TX3_MATRIX__SIZE							0x00000010
+#define  NV34TCL_TX4_MATRIX(x)								(0x000007c0+((x)*4))
+#define  NV34TCL_TX4_MATRIX__SIZE							0x00000010
+#define  NV34TCL_TX5_MATRIX(x)								(0x00000800+((x)*4))
+#define  NV34TCL_TX5_MATRIX__SIZE							0x00000010
+#define  NV34TCL_TX6_MATRIX(x)								(0x00000840+((x)*4))
+#define  NV34TCL_TX6_MATRIX__SIZE							0x00000010
+#define  NV34TCL_TX7_MATRIX(x)								(0x00000880+((x)*4))
+#define  NV34TCL_TX7_MATRIX__SIZE							0x00000010
+#define  NV34TCL_SCISSOR_HORIZ								0x000008c0
+#define   NV34TCL_SCISSOR_HORIZ_X_SHIFT							0
+#define   NV34TCL_SCISSOR_HORIZ_X_MASK							0x0000ffff
+#define   NV34TCL_SCISSOR_HORIZ_W_SHIFT							16
+#define   NV34TCL_SCISSOR_HORIZ_W_MASK							0xffff0000
+#define  NV34TCL_SCISSOR_VERT								0x000008c4
+#define   NV34TCL_SCISSOR_VERT_Y_SHIFT							0
+#define   NV34TCL_SCISSOR_VERT_Y_MASK							0x0000ffff
+#define   NV34TCL_SCISSOR_VERT_H_SHIFT							16
+#define   NV34TCL_SCISSOR_VERT_H_MASK							0xffff0000
+#define  NV34TCL_FOG_COORD_DIST								0x000008c8
+#define  NV34TCL_FOG_MODE								0x000008cc
+#define  NV34TCL_FOG_EQUATION_CONSTANT							0x000008d0
+#define  NV34TCL_FOG_EQUATION_LINEAR							0x000008d4
+#define  NV34TCL_FOG_EQUATION_QUADRATIC							0x000008d8
+#define  NV34TCL_FP_ACTIVE_PROGRAM							0x000008e4
+#define   NV34TCL_FP_ACTIVE_PROGRAM_DMA0						(1 <<  0)
+#define   NV34TCL_FP_ACTIVE_PROGRAM_DMA1						(1 <<  1)
+#define   NV34TCL_FP_ACTIVE_PROGRAM_OFFSET_SHIFT					2
+#define   NV34TCL_FP_ACTIVE_PROGRAM_OFFSET_MASK						0xfffffffc
+#define  NV34TCL_RC_COLOR0								0x000008ec
+#define   NV34TCL_RC_COLOR0_B_SHIFT							0
+#define   NV34TCL_RC_COLOR0_B_MASK							0x000000ff
+#define   NV34TCL_RC_COLOR0_G_SHIFT							8
+#define   NV34TCL_RC_COLOR0_G_MASK							0x0000ff00
+#define   NV34TCL_RC_COLOR0_R_SHIFT							16
+#define   NV34TCL_RC_COLOR0_R_MASK							0x00ff0000
+#define   NV34TCL_RC_COLOR0_A_SHIFT							24
+#define   NV34TCL_RC_COLOR0_A_MASK							0xff000000
+#define  NV34TCL_RC_COLOR1								0x000008f0
+#define   NV34TCL_RC_COLOR1_B_SHIFT							0
+#define   NV34TCL_RC_COLOR1_B_MASK							0x000000ff
+#define   NV34TCL_RC_COLOR1_G_SHIFT							8
+#define   NV34TCL_RC_COLOR1_G_MASK							0x0000ff00
+#define   NV34TCL_RC_COLOR1_R_SHIFT							16
+#define   NV34TCL_RC_COLOR1_R_MASK							0x00ff0000
+#define   NV34TCL_RC_COLOR1_A_SHIFT							24
+#define   NV34TCL_RC_COLOR1_A_MASK							0xff000000
+#define  NV34TCL_RC_FINAL0								0x000008f4
+#define   NV34TCL_RC_FINAL0_D_INPUT_SHIFT						0
+#define   NV34TCL_RC_FINAL0_D_INPUT_MASK						0x0000000f
+#define    NV34TCL_RC_FINAL0_D_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR0					0x00000001
+#define    NV34TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR1					0x00000002
+#define    NV34TCL_RC_FINAL0_D_INPUT_FOG						0x00000003
+#define    NV34TCL_RC_FINAL0_D_INPUT_PRIMARY_COLOR					0x00000004
+#define    NV34TCL_RC_FINAL0_D_INPUT_SECONDARY_COLOR					0x00000005
+#define    NV34TCL_RC_FINAL0_D_INPUT_TEXTURE0						0x00000008
+#define    NV34TCL_RC_FINAL0_D_INPUT_TEXTURE1						0x00000009
+#define    NV34TCL_RC_FINAL0_D_INPUT_SPARE0						0x0000000c
+#define    NV34TCL_RC_FINAL0_D_INPUT_SPARE1						0x0000000d
+#define    NV34TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV34TCL_RC_FINAL0_D_INPUT_E_TIMES_F						0x0000000f
+#define    NV34TCL_RC_FINAL0_D_INPUT_TEXTURE2						0x0000000a
+#define    NV34TCL_RC_FINAL0_D_INPUT_TEXTURE3						0x0000000b
+#define   NV34TCL_RC_FINAL0_D_COMPONENT_USAGE						(1 <<  4)
+#define    NV34TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB					0x00000000
+#define    NV34TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA					0x00000010
+#define   NV34TCL_RC_FINAL0_D_MAPPING_SHIFT						5
+#define   NV34TCL_RC_FINAL0_D_MAPPING_MASK						0x000000e0
+#define    NV34TCL_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT					0x00000020
+#define    NV34TCL_RC_FINAL0_D_MAPPING_EXPAND_NORMAL					0x00000040
+#define    NV34TCL_RC_FINAL0_D_MAPPING_EXPAND_NEGATE					0x00000060
+#define    NV34TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL					0x00000080
+#define    NV34TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE					0x000000a0
+#define    NV34TCL_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY					0x000000c0
+#define    NV34TCL_RC_FINAL0_D_MAPPING_SIGNED_NEGATE					0x000000e0
+#define   NV34TCL_RC_FINAL0_C_INPUT_SHIFT						8
+#define   NV34TCL_RC_FINAL0_C_INPUT_MASK						0x00000f00
+#define    NV34TCL_RC_FINAL0_C_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR0					0x00000100
+#define    NV34TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR1					0x00000200
+#define    NV34TCL_RC_FINAL0_C_INPUT_FOG						0x00000300
+#define    NV34TCL_RC_FINAL0_C_INPUT_PRIMARY_COLOR					0x00000400
+#define    NV34TCL_RC_FINAL0_C_INPUT_SECONDARY_COLOR					0x00000500
+#define    NV34TCL_RC_FINAL0_C_INPUT_TEXTURE0						0x00000800
+#define    NV34TCL_RC_FINAL0_C_INPUT_TEXTURE1						0x00000900
+#define    NV34TCL_RC_FINAL0_C_INPUT_SPARE0						0x00000c00
+#define    NV34TCL_RC_FINAL0_C_INPUT_SPARE1						0x00000d00
+#define    NV34TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV34TCL_RC_FINAL0_C_INPUT_E_TIMES_F						0x00000f00
+#define    NV34TCL_RC_FINAL0_C_INPUT_TEXTURE2						0x00000a00
+#define    NV34TCL_RC_FINAL0_C_INPUT_TEXTURE3						0x00000b00
+#define   NV34TCL_RC_FINAL0_C_COMPONENT_USAGE						(1 << 12)
+#define    NV34TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB					0x00000000
+#define    NV34TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA					0x00001000
+#define   NV34TCL_RC_FINAL0_C_MAPPING_SHIFT						13
+#define   NV34TCL_RC_FINAL0_C_MAPPING_MASK						0x0000e000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT					0x00002000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_EXPAND_NORMAL					0x00004000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_EXPAND_NEGATE					0x00006000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL					0x00008000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE					0x0000a000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY					0x0000c000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_SIGNED_NEGATE					0x0000e000
+#define   NV34TCL_RC_FINAL0_B_INPUT_SHIFT						16
+#define   NV34TCL_RC_FINAL0_B_INPUT_MASK						0x000f0000
+#define    NV34TCL_RC_FINAL0_B_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR0					0x00010000
+#define    NV34TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR1					0x00020000
+#define    NV34TCL_RC_FINAL0_B_INPUT_FOG						0x00030000
+#define    NV34TCL_RC_FINAL0_B_INPUT_PRIMARY_COLOR					0x00040000
+#define    NV34TCL_RC_FINAL0_B_INPUT_SECONDARY_COLOR					0x00050000
+#define    NV34TCL_RC_FINAL0_B_INPUT_TEXTURE0						0x00080000
+#define    NV34TCL_RC_FINAL0_B_INPUT_TEXTURE1						0x00090000
+#define    NV34TCL_RC_FINAL0_B_INPUT_SPARE0						0x000c0000
+#define    NV34TCL_RC_FINAL0_B_INPUT_SPARE1						0x000d0000
+#define    NV34TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000e0000
+#define    NV34TCL_RC_FINAL0_B_INPUT_E_TIMES_F						0x000f0000
+#define    NV34TCL_RC_FINAL0_B_INPUT_TEXTURE2						0x000a0000
+#define    NV34TCL_RC_FINAL0_B_INPUT_TEXTURE3						0x000b0000
+#define   NV34TCL_RC_FINAL0_B_COMPONENT_USAGE						(1 << 20)
+#define    NV34TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB					0x00000000
+#define    NV34TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA					0x00100000
+#define   NV34TCL_RC_FINAL0_B_MAPPING_SHIFT						21
+#define   NV34TCL_RC_FINAL0_B_MAPPING_MASK						0x00e00000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT					0x00200000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_EXPAND_NORMAL					0x00400000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_EXPAND_NEGATE					0x00600000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL					0x00800000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE					0x00a00000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY					0x00c00000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_SIGNED_NEGATE					0x00e00000
+#define   NV34TCL_RC_FINAL0_A_INPUT_SHIFT						24
+#define   NV34TCL_RC_FINAL0_A_INPUT_MASK						0x0f000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR0					0x01000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR1					0x02000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_FOG						0x03000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_PRIMARY_COLOR					0x04000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_SECONDARY_COLOR					0x05000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_TEXTURE0						0x08000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_TEXTURE1						0x09000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_SPARE0						0x0c000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_SPARE1						0x0d000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0e000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_E_TIMES_F						0x0f000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_TEXTURE2						0x0a000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_TEXTURE3						0x0b000000
+#define   NV34TCL_RC_FINAL0_A_COMPONENT_USAGE						(1 << 28)
+#define    NV34TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB					0x00000000
+#define    NV34TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA					0x10000000
+#define   NV34TCL_RC_FINAL0_A_MAPPING_SHIFT						29
+#define   NV34TCL_RC_FINAL0_A_MAPPING_MASK						0xe0000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT					0x20000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_EXPAND_NORMAL					0x40000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_EXPAND_NEGATE					0x60000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL					0x80000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE					0xa0000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY					0xc0000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_SIGNED_NEGATE					0xe0000000
+#define  NV34TCL_RC_FINAL1								0x000008f8
+#define   NV34TCL_RC_FINAL1_COLOR_SUM_CLAMP						(1 <<  7)
+#define   NV34TCL_RC_FINAL1_G_INPUT_SHIFT						8
+#define   NV34TCL_RC_FINAL1_G_INPUT_MASK						0x00000f00
+#define    NV34TCL_RC_FINAL1_G_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR0					0x00000100
+#define    NV34TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR1					0x00000200
+#define    NV34TCL_RC_FINAL1_G_INPUT_FOG						0x00000300
+#define    NV34TCL_RC_FINAL1_G_INPUT_PRIMARY_COLOR					0x00000400
+#define    NV34TCL_RC_FINAL1_G_INPUT_SECONDARY_COLOR					0x00000500
+#define    NV34TCL_RC_FINAL1_G_INPUT_TEXTURE0						0x00000800
+#define    NV34TCL_RC_FINAL1_G_INPUT_TEXTURE1						0x00000900
+#define    NV34TCL_RC_FINAL1_G_INPUT_SPARE0						0x00000c00
+#define    NV34TCL_RC_FINAL1_G_INPUT_SPARE1						0x00000d00
+#define    NV34TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV34TCL_RC_FINAL1_G_INPUT_E_TIMES_F						0x00000f00
+#define    NV34TCL_RC_FINAL1_G_INPUT_TEXTURE2						0x00000a00
+#define    NV34TCL_RC_FINAL1_G_INPUT_TEXTURE3						0x00000b00
+#define   NV34TCL_RC_FINAL1_G_COMPONENT_USAGE						(1 << 12)
+#define    NV34TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB					0x00000000
+#define    NV34TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA					0x00001000
+#define   NV34TCL_RC_FINAL1_G_MAPPING_SHIFT						13
+#define   NV34TCL_RC_FINAL1_G_MAPPING_MASK						0x0000e000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT					0x00002000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_EXPAND_NORMAL					0x00004000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_EXPAND_NEGATE					0x00006000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL					0x00008000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE					0x0000a000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY					0x0000c000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_SIGNED_NEGATE					0x0000e000
+#define   NV34TCL_RC_FINAL1_F_INPUT_SHIFT						16
+#define   NV34TCL_RC_FINAL1_F_INPUT_MASK						0x000f0000
+#define    NV34TCL_RC_FINAL1_F_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR0					0x00010000
+#define    NV34TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR1					0x00020000
+#define    NV34TCL_RC_FINAL1_F_INPUT_FOG						0x00030000
+#define    NV34TCL_RC_FINAL1_F_INPUT_PRIMARY_COLOR					0x00040000
+#define    NV34TCL_RC_FINAL1_F_INPUT_SECONDARY_COLOR					0x00050000
+#define    NV34TCL_RC_FINAL1_F_INPUT_TEXTURE0						0x00080000
+#define    NV34TCL_RC_FINAL1_F_INPUT_TEXTURE1						0x00090000
+#define    NV34TCL_RC_FINAL1_F_INPUT_SPARE0						0x000c0000
+#define    NV34TCL_RC_FINAL1_F_INPUT_SPARE1						0x000d0000
+#define    NV34TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000e0000
+#define    NV34TCL_RC_FINAL1_F_INPUT_E_TIMES_F						0x000f0000
+#define    NV34TCL_RC_FINAL1_F_INPUT_TEXTURE2						0x000a0000
+#define    NV34TCL_RC_FINAL1_F_INPUT_TEXTURE3						0x000b0000
+#define   NV34TCL_RC_FINAL1_F_COMPONENT_USAGE						(1 << 20)
+#define    NV34TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB					0x00000000
+#define    NV34TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA					0x00100000
+#define   NV34TCL_RC_FINAL1_F_MAPPING_SHIFT						21
+#define   NV34TCL_RC_FINAL1_F_MAPPING_MASK						0x00e00000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT					0x00200000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_EXPAND_NORMAL					0x00400000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_EXPAND_NEGATE					0x00600000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL					0x00800000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE					0x00a00000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY					0x00c00000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_SIGNED_NEGATE					0x00e00000
+#define   NV34TCL_RC_FINAL1_E_INPUT_SHIFT						24
+#define   NV34TCL_RC_FINAL1_E_INPUT_MASK						0x0f000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR0					0x01000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR1					0x02000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_FOG						0x03000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_PRIMARY_COLOR					0x04000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_SECONDARY_COLOR					0x05000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_TEXTURE0						0x08000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_TEXTURE1						0x09000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_SPARE0						0x0c000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_SPARE1						0x0d000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0e000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_E_TIMES_F						0x0f000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_TEXTURE2						0x0a000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_TEXTURE3						0x0b000000
+#define   NV34TCL_RC_FINAL1_E_COMPONENT_USAGE						(1 << 28)
+#define    NV34TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB					0x00000000
+#define    NV34TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA					0x10000000
+#define   NV34TCL_RC_FINAL1_E_MAPPING_SHIFT						29
+#define   NV34TCL_RC_FINAL1_E_MAPPING_MASK						0xe0000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT					0x20000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_EXPAND_NORMAL					0x40000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_EXPAND_NEGATE					0x60000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL					0x80000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE					0xa0000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY					0xc0000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_SIGNED_NEGATE					0xe0000000
+#define  NV34TCL_RC_ENABLE								0x000008fc
+#define   NV34TCL_RC_ENABLE_NUM_COMBINERS_SHIFT						0
+#define   NV34TCL_RC_ENABLE_NUM_COMBINERS_MASK						0x0000000f
+#define   NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR0_SHIFT					12
+#define   NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR0_MASK					0x0000f000
+#define   NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR1_SHIFT					16
+#define   NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR1_MASK					0x000f0000
+#define  NV34TCL_RC_IN_ALPHA(x)								(0x00000900+((x)*32))
+#define  NV34TCL_RC_IN_ALPHA__SIZE							0x00000008
+#define   NV34TCL_RC_IN_ALPHA_D_INPUT_SHIFT						0
+#define   NV34TCL_RC_IN_ALPHA_D_INPUT_MASK						0x0000000f
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0					0x00000001
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1					0x00000002
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_FOG						0x00000003
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR					0x00000004
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR					0x00000005
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE0						0x00000008
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE1						0x00000009
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_SPARE0						0x0000000c
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_SPARE1						0x0000000d
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F					0x0000000f
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE2						0x0000000a
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE3						0x0000000b
+#define   NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE						(1 <<  4)
+#define    NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE					0x00000000
+#define    NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA					0x00000010
+#define   NV34TCL_RC_IN_ALPHA_D_MAPPING_SHIFT						5
+#define   NV34TCL_RC_IN_ALPHA_D_MAPPING_MASK						0x000000e0
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT				0x00000020
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL					0x00000040
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE					0x00000060
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL				0x00000080
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE				0x000000a0
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY				0x000000c0
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE					0x000000e0
+#define   NV34TCL_RC_IN_ALPHA_C_INPUT_SHIFT						8
+#define   NV34TCL_RC_IN_ALPHA_C_INPUT_MASK						0x00000f00
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0					0x00000100
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1					0x00000200
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_FOG						0x00000300
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR					0x00000400
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR					0x00000500
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE0						0x00000800
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE1						0x00000900
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_SPARE0						0x00000c00
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_SPARE1						0x00000d00
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F					0x00000f00
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE2						0x00000a00
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE3						0x00000b00
+#define   NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE						(1 << 12)
+#define    NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE					0x00000000
+#define    NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA					0x00001000
+#define   NV34TCL_RC_IN_ALPHA_C_MAPPING_SHIFT						13
+#define   NV34TCL_RC_IN_ALPHA_C_MAPPING_MASK						0x0000e000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT				0x00002000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL					0x00004000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE					0x00006000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL				0x00008000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE				0x0000a000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY				0x0000c000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE					0x0000e000
+#define   NV34TCL_RC_IN_ALPHA_B_INPUT_SHIFT						16
+#define   NV34TCL_RC_IN_ALPHA_B_INPUT_MASK						0x000f0000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0					0x00010000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1					0x00020000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_FOG						0x00030000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR					0x00040000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR					0x00050000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE0						0x00080000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE1						0x00090000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_SPARE0						0x000c0000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_SPARE1						0x000d0000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000e0000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F					0x000f0000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE2						0x000a0000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE3						0x000b0000
+#define   NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE						(1 << 20)
+#define    NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE					0x00000000
+#define    NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA					0x00100000
+#define   NV34TCL_RC_IN_ALPHA_B_MAPPING_SHIFT						21
+#define   NV34TCL_RC_IN_ALPHA_B_MAPPING_MASK						0x00e00000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT				0x00200000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL					0x00400000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE					0x00600000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL				0x00800000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE				0x00a00000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY				0x00c00000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE					0x00e00000
+#define   NV34TCL_RC_IN_ALPHA_A_INPUT_SHIFT						24
+#define   NV34TCL_RC_IN_ALPHA_A_INPUT_MASK						0x0f000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0					0x01000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1					0x02000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_FOG						0x03000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR					0x04000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR					0x05000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE0						0x08000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE1						0x09000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_SPARE0						0x0c000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_SPARE1						0x0d000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0e000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F					0x0f000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE2						0x0a000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE3						0x0b000000
+#define   NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE						(1 << 28)
+#define    NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE					0x00000000
+#define    NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA					0x10000000
+#define   NV34TCL_RC_IN_ALPHA_A_MAPPING_SHIFT						29
+#define   NV34TCL_RC_IN_ALPHA_A_MAPPING_MASK						0xe0000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT				0x20000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL					0x40000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE					0x60000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL				0x80000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE				0xa0000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY				0xc0000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE					0xe0000000
+#define  NV34TCL_RC_IN_RGB(x)								(0x00000904+((x)*32))
+#define  NV34TCL_RC_IN_RGB__SIZE							0x00000008
+#define   NV34TCL_RC_IN_RGB_D_INPUT_SHIFT						0
+#define   NV34TCL_RC_IN_RGB_D_INPUT_MASK						0x0000000f
+#define    NV34TCL_RC_IN_RGB_D_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0					0x00000001
+#define    NV34TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1					0x00000002
+#define    NV34TCL_RC_IN_RGB_D_INPUT_FOG						0x00000003
+#define    NV34TCL_RC_IN_RGB_D_INPUT_PRIMARY_COLOR					0x00000004
+#define    NV34TCL_RC_IN_RGB_D_INPUT_SECONDARY_COLOR					0x00000005
+#define    NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE0						0x00000008
+#define    NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE1						0x00000009
+#define    NV34TCL_RC_IN_RGB_D_INPUT_SPARE0						0x0000000c
+#define    NV34TCL_RC_IN_RGB_D_INPUT_SPARE1						0x0000000d
+#define    NV34TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV34TCL_RC_IN_RGB_D_INPUT_E_TIMES_F						0x0000000f
+#define    NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE2						0x0000000a
+#define    NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE3						0x0000000b
+#define   NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE						(1 <<  4)
+#define    NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB					0x00000000
+#define    NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA					0x00000010
+#define   NV34TCL_RC_IN_RGB_D_MAPPING_SHIFT						5
+#define   NV34TCL_RC_IN_RGB_D_MAPPING_MASK						0x000000e0
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT					0x00000020
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL					0x00000040
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE					0x00000060
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL					0x00000080
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE					0x000000a0
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY					0x000000c0
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE					0x000000e0
+#define   NV34TCL_RC_IN_RGB_C_INPUT_SHIFT						8
+#define   NV34TCL_RC_IN_RGB_C_INPUT_MASK						0x00000f00
+#define    NV34TCL_RC_IN_RGB_C_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0					0x00000100
+#define    NV34TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1					0x00000200
+#define    NV34TCL_RC_IN_RGB_C_INPUT_FOG						0x00000300
+#define    NV34TCL_RC_IN_RGB_C_INPUT_PRIMARY_COLOR					0x00000400
+#define    NV34TCL_RC_IN_RGB_C_INPUT_SECONDARY_COLOR					0x00000500
+#define    NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE0						0x00000800
+#define    NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE1						0x00000900
+#define    NV34TCL_RC_IN_RGB_C_INPUT_SPARE0						0x00000c00
+#define    NV34TCL_RC_IN_RGB_C_INPUT_SPARE1						0x00000d00
+#define    NV34TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV34TCL_RC_IN_RGB_C_INPUT_E_TIMES_F						0x00000f00
+#define    NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE2						0x00000a00
+#define    NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE3						0x00000b00
+#define   NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE						(1 << 12)
+#define    NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB					0x00000000
+#define    NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA					0x00001000
+#define   NV34TCL_RC_IN_RGB_C_MAPPING_SHIFT						13
+#define   NV34TCL_RC_IN_RGB_C_MAPPING_MASK						0x0000e000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT					0x00002000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL					0x00004000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE					0x00006000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL					0x00008000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE					0x0000a000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY					0x0000c000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE					0x0000e000
+#define   NV34TCL_RC_IN_RGB_B_INPUT_SHIFT						16
+#define   NV34TCL_RC_IN_RGB_B_INPUT_MASK						0x000f0000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0					0x00010000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1					0x00020000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_FOG						0x00030000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_PRIMARY_COLOR					0x00040000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_SECONDARY_COLOR					0x00050000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE0						0x00080000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE1						0x00090000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_SPARE0						0x000c0000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_SPARE1						0x000d0000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000e0000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_E_TIMES_F						0x000f0000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE2						0x000a0000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE3						0x000b0000
+#define   NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE						(1 << 20)
+#define    NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB					0x00000000
+#define    NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA					0x00100000
+#define   NV34TCL_RC_IN_RGB_B_MAPPING_SHIFT						21
+#define   NV34TCL_RC_IN_RGB_B_MAPPING_MASK						0x00e00000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT					0x00200000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL					0x00400000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE					0x00600000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL					0x00800000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE					0x00a00000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY					0x00c00000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE					0x00e00000
+#define   NV34TCL_RC_IN_RGB_A_INPUT_SHIFT						24
+#define   NV34TCL_RC_IN_RGB_A_INPUT_MASK						0x0f000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_ZERO						0x00000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0					0x01000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1					0x02000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_FOG						0x03000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_PRIMARY_COLOR					0x04000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_SECONDARY_COLOR					0x05000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE0						0x08000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE1						0x09000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_SPARE0						0x0c000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_SPARE1						0x0d000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0e000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_E_TIMES_F						0x0f000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE2						0x0a000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE3						0x0b000000
+#define   NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE						(1 << 28)
+#define    NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB					0x00000000
+#define    NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA					0x10000000
+#define   NV34TCL_RC_IN_RGB_A_MAPPING_SHIFT						29
+#define   NV34TCL_RC_IN_RGB_A_MAPPING_MASK						0xe0000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY				0x00000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT					0x20000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL					0x40000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE					0x60000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL					0x80000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE					0xa0000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY					0xc0000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE					0xe0000000
+#define  NV34TCL_RC_CONSTANT_COLOR0(x)							(0x00000908+((x)*32))
+#define  NV34TCL_RC_CONSTANT_COLOR0__SIZE						0x00000008
+#define   NV34TCL_RC_CONSTANT_COLOR0_B_SHIFT						0
+#define   NV34TCL_RC_CONSTANT_COLOR0_B_MASK						0x000000ff
+#define   NV34TCL_RC_CONSTANT_COLOR0_G_SHIFT						8
+#define   NV34TCL_RC_CONSTANT_COLOR0_G_MASK						0x0000ff00
+#define   NV34TCL_RC_CONSTANT_COLOR0_R_SHIFT						16
+#define   NV34TCL_RC_CONSTANT_COLOR0_R_MASK						0x00ff0000
+#define   NV34TCL_RC_CONSTANT_COLOR0_A_SHIFT						24
+#define   NV34TCL_RC_CONSTANT_COLOR0_A_MASK						0xff000000
+#define  NV34TCL_RC_CONSTANT_COLOR1(x)							(0x0000090c+((x)*32))
+#define  NV34TCL_RC_CONSTANT_COLOR1__SIZE						0x00000008
+#define   NV34TCL_RC_CONSTANT_COLOR1_B_SHIFT						0
+#define   NV34TCL_RC_CONSTANT_COLOR1_B_MASK						0x000000ff
+#define   NV34TCL_RC_CONSTANT_COLOR1_G_SHIFT						8
+#define   NV34TCL_RC_CONSTANT_COLOR1_G_MASK						0x0000ff00
+#define   NV34TCL_RC_CONSTANT_COLOR1_R_SHIFT						16
+#define   NV34TCL_RC_CONSTANT_COLOR1_R_MASK						0x00ff0000
+#define   NV34TCL_RC_CONSTANT_COLOR1_A_SHIFT						24
+#define   NV34TCL_RC_CONSTANT_COLOR1_A_MASK						0xff000000
+#define  NV34TCL_RC_OUT_ALPHA(x)							(0x00000910+((x)*32))
+#define  NV34TCL_RC_OUT_ALPHA__SIZE							0x00000008
+#define   NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SHIFT						0
+#define   NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_MASK						0x0000000f
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_ZERO						0x00000000
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0				0x00000001
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1				0x00000002
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_FOG						0x00000003
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR					0x00000004
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR				0x00000005
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0					0x00000008
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1					0x00000009
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0					0x0000000c
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1					0x0000000d
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F					0x0000000f
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE2					0x0000000a
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE3					0x0000000b
+#define   NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT						4
+#define   NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK						0x000000f0
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO						0x00000000
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0				0x00000010
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1				0x00000020
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_FOG						0x00000030
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR					0x00000040
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR				0x00000050
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0					0x00000080
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1					0x00000090
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0					0x000000c0
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1					0x000000d0
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000000e0
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F					0x000000f0
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE2					0x000000a0
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE3					0x000000b0
+#define   NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT						8
+#define   NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK						0x00000f00
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO						0x00000000
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0				0x00000100
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1				0x00000200
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_FOG						0x00000300
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR				0x00000400
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR				0x00000500
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0					0x00000800
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1					0x00000900
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0					0x00000c00
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1					0x00000d00
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F					0x00000f00
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE2					0x00000a00
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE3					0x00000b00
+#define   NV34TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT						(1 << 12)
+#define   NV34TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT						(1 << 13)
+#define   NV34TCL_RC_OUT_ALPHA_MUX_SUM							(1 << 14)
+#define   NV34TCL_RC_OUT_ALPHA_BIAS							(1 << 15)
+#define    NV34TCL_RC_OUT_ALPHA_BIAS_NONE						0x00000000
+#define    NV34TCL_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF				0x00008000
+#define   NV34TCL_RC_OUT_ALPHA_SCALE_SHIFT						17
+#define   NV34TCL_RC_OUT_ALPHA_SCALE_MASK						0x00000000
+#define    NV34TCL_RC_OUT_ALPHA_SCALE_NONE						0x00000000
+#define    NV34TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO					0x00020000
+#define    NV34TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR					0x00040000
+#define    NV34TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF					0x00060000
+#define  NV34TCL_RC_OUT_RGB(x)								(0x00000914+((x)*32))
+#define  NV34TCL_RC_OUT_RGB__SIZE							0x00000008
+#define   NV34TCL_RC_OUT_RGB_CD_OUTPUT_SHIFT						0
+#define   NV34TCL_RC_OUT_RGB_CD_OUTPUT_MASK						0x0000000f
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_ZERO						0x00000000
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0					0x00000001
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1					0x00000002
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_FOG						0x00000003
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR					0x00000004
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR					0x00000005
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE0					0x00000008
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE1					0x00000009
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0						0x0000000c
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1						0x0000000d
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x0000000e
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F					0x0000000f
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE2					0x0000000a
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE3					0x0000000b
+#define   NV34TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT						4
+#define   NV34TCL_RC_OUT_RGB_AB_OUTPUT_MASK						0x000000f0
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_ZERO						0x00000000
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0					0x00000010
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1					0x00000020
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_FOG						0x00000030
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR					0x00000040
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR					0x00000050
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE0					0x00000080
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE1					0x00000090
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0						0x000000c0
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1						0x000000d0
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x000000e0
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F					0x000000f0
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE2					0x000000a0
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE3					0x000000b0
+#define   NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT						8
+#define   NV34TCL_RC_OUT_RGB_SUM_OUTPUT_MASK						0x00000f00
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO						0x00000000
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0				0x00000100
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1				0x00000200
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_FOG						0x00000300
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR					0x00000400
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR				0x00000500
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0					0x00000800
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1					0x00000900
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0						0x00000c00
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1						0x00000d00
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR			0x00000e00
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F					0x00000f00
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE2					0x00000a00
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE3					0x00000b00
+#define   NV34TCL_RC_OUT_RGB_CD_DOT_PRODUCT						(1 << 12)
+#define   NV34TCL_RC_OUT_RGB_AB_DOT_PRODUCT						(1 << 13)
+#define   NV34TCL_RC_OUT_RGB_MUX_SUM							(1 << 14)
+#define   NV34TCL_RC_OUT_RGB_BIAS							(1 << 15)
+#define    NV34TCL_RC_OUT_RGB_BIAS_NONE							0x00000000
+#define    NV34TCL_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF				0x00008000
+#define   NV34TCL_RC_OUT_RGB_SCALE_SHIFT						17
+#define   NV34TCL_RC_OUT_RGB_SCALE_MASK							0x00000000
+#define    NV34TCL_RC_OUT_RGB_SCALE_NONE						0x00000000
+#define    NV34TCL_RC_OUT_RGB_SCALE_SCALE_BY_TWO					0x00020000
+#define    NV34TCL_RC_OUT_RGB_SCALE_SCALE_BY_FOUR					0x00040000
+#define    NV34TCL_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF					0x00060000
+#define  NV34TCL_VIEWPORT_HORIZ								0x00000a00
+#define   NV34TCL_VIEWPORT_HORIZ_X_SHIFT						0
+#define   NV34TCL_VIEWPORT_HORIZ_X_MASK							0x0000ffff
+#define   NV34TCL_VIEWPORT_HORIZ_W_SHIFT						16
+#define   NV34TCL_VIEWPORT_HORIZ_W_MASK							0xffff0000
+#define  NV34TCL_VIEWPORT_VERT								0x00000a04
+#define   NV34TCL_VIEWPORT_VERT_Y_SHIFT							0
+#define   NV34TCL_VIEWPORT_VERT_Y_MASK							0x0000ffff
+#define   NV34TCL_VIEWPORT_VERT_H_SHIFT							16
+#define   NV34TCL_VIEWPORT_VERT_H_MASK							0xffff0000
+#define  NV34TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R			0x00000a10
+#define  NV34TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G			0x00000a14
+#define  NV34TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B			0x00000a18
+#define  NV34TCL_VIEWPORT_TRANSLATE_X							0x00000a20
+#define  NV34TCL_VIEWPORT_TRANSLATE_Y							0x00000a24
+#define  NV34TCL_VIEWPORT_TRANSLATE_Z							0x00000a28
+#define  NV34TCL_VIEWPORT_TRANSLATE_W							0x00000a2c
+#define  NV34TCL_VIEWPORT_SCALE_X							0x00000a30
+#define  NV34TCL_VIEWPORT_SCALE_Y							0x00000a34
+#define  NV34TCL_VIEWPORT_SCALE_Z							0x00000a38
+#define  NV34TCL_VIEWPORT_SCALE_W							0x00000a3c
+#define  NV34TCL_POLYGON_OFFSET_POINT_ENABLE						0x00000a60
+#define  NV34TCL_POLYGON_OFFSET_LINE_ENABLE						0x00000a64
+#define  NV34TCL_POLYGON_OFFSET_FILL_ENABLE						0x00000a68
+#define  NV34TCL_DEPTH_FUNC								0x00000a6c
+#define   NV34TCL_DEPTH_FUNC_NEVER							0x00000200
+#define   NV34TCL_DEPTH_FUNC_LESS							0x00000201
+#define   NV34TCL_DEPTH_FUNC_EQUAL							0x00000202
+#define   NV34TCL_DEPTH_FUNC_LEQUAL							0x00000203
+#define   NV34TCL_DEPTH_FUNC_GREATER							0x00000204
+#define   NV34TCL_DEPTH_FUNC_NOTEQUAL							0x00000205
+#define   NV34TCL_DEPTH_FUNC_GEQUAL							0x00000206
+#define   NV34TCL_DEPTH_FUNC_ALWAYS							0x00000207
+#define  NV34TCL_DEPTH_WRITE_ENABLE							0x00000a70
+#define  NV34TCL_DEPTH_TEST_ENABLE							0x00000a74
+#define  NV34TCL_POLYGON_OFFSET_FACTOR							0x00000a78
+#define  NV34TCL_POLYGON_OFFSET_UNITS							0x00000a7c
+#define  NV34TCL_VTX_ATTR_3I_XY(x)							(0x00000a80+((x)*8))
+#define  NV34TCL_VTX_ATTR_3I_XY__SIZE							0x00000010
+#define   NV34TCL_VTX_ATTR_3I_XY_X_SHIFT						0
+#define   NV34TCL_VTX_ATTR_3I_XY_X_MASK							0x0000ffff
+#define   NV34TCL_VTX_ATTR_3I_XY_Y_SHIFT						16
+#define   NV34TCL_VTX_ATTR_3I_XY_Y_MASK							0xffff0000
+#define  NV34TCL_VTX_ATTR_3I_Z(x)							(0x00000a84+((x)*8))
+#define  NV34TCL_VTX_ATTR_3I_Z__SIZE							0x00000010
+#define   NV34TCL_VTX_ATTR_3I_Z_Z_SHIFT							0
+#define   NV34TCL_VTX_ATTR_3I_Z_Z_MASK							0x0000ffff
+#define  NV34TCL_VP_UPLOAD_INST(x)							(0x00000b80+((x)*4))
+#define  NV34TCL_VP_UPLOAD_INST__SIZE							0x00000004
+#define  NV34TCL_TX0_CLIP_PLANE_A(x)							(0x00000e00+((x)*16))
+#define  NV34TCL_TX0_CLIP_PLANE_A__SIZE							0x00000004
+#define  NV34TCL_TX0_CLIP_PLANE_B(x)							(0x00000e04+((x)*16))
+#define  NV34TCL_TX0_CLIP_PLANE_B__SIZE							0x00000004
+#define  NV34TCL_TX0_CLIP_PLANE_C(x)							(0x00000e08+((x)*16))
+#define  NV34TCL_TX0_CLIP_PLANE_C__SIZE							0x00000004
+#define  NV34TCL_TX0_CLIP_PLANE_D(x)							(0x00000e0c+((x)*16))
+#define  NV34TCL_TX0_CLIP_PLANE_D__SIZE							0x00000004
+#define  NV34TCL_TX1_CLIP_PLANE_A(x)							(0x00000e40+((x)*16))
+#define  NV34TCL_TX1_CLIP_PLANE_A__SIZE							0x00000004
+#define  NV34TCL_TX1_CLIP_PLANE_B(x)							(0x00000e44+((x)*16))
+#define  NV34TCL_TX1_CLIP_PLANE_B__SIZE							0x00000004
+#define  NV34TCL_TX1_CLIP_PLANE_C(x)							(0x00000e48+((x)*16))
+#define  NV34TCL_TX1_CLIP_PLANE_C__SIZE							0x00000004
+#define  NV34TCL_TX1_CLIP_PLANE_D(x)							(0x00000e4c+((x)*16))
+#define  NV34TCL_TX1_CLIP_PLANE_D__SIZE							0x00000004
+#define  NV34TCL_TX2_CLIP_PLANE_A(x)							(0x00000e80+((x)*16))
+#define  NV34TCL_TX2_CLIP_PLANE_A__SIZE							0x00000004
+#define  NV34TCL_TX2_CLIP_PLANE_B(x)							(0x00000e84+((x)*16))
+#define  NV34TCL_TX2_CLIP_PLANE_B__SIZE							0x00000004
+#define  NV34TCL_TX2_CLIP_PLANE_C(x)							(0x00000e88+((x)*16))
+#define  NV34TCL_TX2_CLIP_PLANE_C__SIZE							0x00000004
+#define  NV34TCL_TX2_CLIP_PLANE_D(x)							(0x00000e8c+((x)*16))
+#define  NV34TCL_TX2_CLIP_PLANE_D__SIZE							0x00000004
+#define  NV34TCL_TX3_CLIP_PLANE_A(x)							(0x00000ec0+((x)*16))
+#define  NV34TCL_TX3_CLIP_PLANE_A__SIZE							0x00000004
+#define  NV34TCL_TX3_CLIP_PLANE_B(x)							(0x00000ec4+((x)*16))
+#define  NV34TCL_TX3_CLIP_PLANE_B__SIZE							0x00000004
+#define  NV34TCL_TX3_CLIP_PLANE_C(x)							(0x00000ec8+((x)*16))
+#define  NV34TCL_TX3_CLIP_PLANE_C__SIZE							0x00000004
+#define  NV34TCL_TX3_CLIP_PLANE_D(x)							(0x00000ecc+((x)*16))
+#define  NV34TCL_TX3_CLIP_PLANE_D__SIZE							0x00000004
+#define  NV34TCL_TX4_CLIP_PLANE_A(x)							(0x00000f00+((x)*16))
+#define  NV34TCL_TX4_CLIP_PLANE_A__SIZE							0x00000004
+#define  NV34TCL_TX4_CLIP_PLANE_B(x)							(0x00000f04+((x)*16))
+#define  NV34TCL_TX4_CLIP_PLANE_B__SIZE							0x00000004
+#define  NV34TCL_TX4_CLIP_PLANE_C(x)							(0x00000f08+((x)*16))
+#define  NV34TCL_TX4_CLIP_PLANE_C__SIZE							0x00000004
+#define  NV34TCL_TX4_CLIP_PLANE_D(x)							(0x00000f0c+((x)*16))
+#define  NV34TCL_TX4_CLIP_PLANE_D__SIZE							0x00000004
+#define  NV34TCL_TX5_CLIP_PLANE_A(x)							(0x00000f40+((x)*16))
+#define  NV34TCL_TX5_CLIP_PLANE_A__SIZE							0x00000004
+#define  NV34TCL_TX5_CLIP_PLANE_B(x)							(0x00000f44+((x)*16))
+#define  NV34TCL_TX5_CLIP_PLANE_B__SIZE							0x00000004
+#define  NV34TCL_TX5_CLIP_PLANE_C(x)							(0x00000f48+((x)*16))
+#define  NV34TCL_TX5_CLIP_PLANE_C__SIZE							0x00000004
+#define  NV34TCL_TX5_CLIP_PLANE_D(x)							(0x00000f4c+((x)*16))
+#define  NV34TCL_TX5_CLIP_PLANE_D__SIZE							0x00000004
+#define  NV34TCL_TX6_CLIP_PLANE_A(x)							(0x00000f80+((x)*16))
+#define  NV34TCL_TX6_CLIP_PLANE_A__SIZE							0x00000004
+#define  NV34TCL_TX6_CLIP_PLANE_B(x)							(0x00000f84+((x)*16))
+#define  NV34TCL_TX6_CLIP_PLANE_B__SIZE							0x00000004
+#define  NV34TCL_TX6_CLIP_PLANE_C(x)							(0x00000f88+((x)*16))
+#define  NV34TCL_TX6_CLIP_PLANE_C__SIZE							0x00000004
+#define  NV34TCL_TX6_CLIP_PLANE_D(x)							(0x00000f8c+((x)*16))
+#define  NV34TCL_TX6_CLIP_PLANE_D__SIZE							0x00000004
+#define  NV34TCL_TX7_CLIP_PLANE_A(x)							(0x00000fc0+((x)*16))
+#define  NV34TCL_TX7_CLIP_PLANE_A__SIZE							0x00000004
+#define  NV34TCL_TX7_CLIP_PLANE_B(x)							(0x00000fc4+((x)*16))
+#define  NV34TCL_TX7_CLIP_PLANE_B__SIZE							0x00000004
+#define  NV34TCL_TX7_CLIP_PLANE_C(x)							(0x00000fc8+((x)*16))
+#define  NV34TCL_TX7_CLIP_PLANE_C__SIZE							0x00000004
+#define  NV34TCL_TX7_CLIP_PLANE_D(x)							(0x00000fcc+((x)*16))
+#define  NV34TCL_TX7_CLIP_PLANE_D__SIZE							0x00000004
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(x)					(0x00001000+((x)*64))
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R__SIZE				0x00000008
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(x)					(0x00001004+((x)*64))
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G__SIZE				0x00000008
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(x)					(0x00001008+((x)*64))
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B__SIZE				0x00000008
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(x)					(0x0000100c+((x)*64))
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R__SIZE				0x00000008
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(x)					(0x00001010+((x)*64))
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G__SIZE				0x00000008
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(x)					(0x00001014+((x)*64))
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B__SIZE				0x00000008
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(x)					(0x00001018+((x)*64))
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R__SIZE				0x00000008
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(x)					(0x0000101c+((x)*64))
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G__SIZE				0x00000008
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(x)					(0x00001020+((x)*64))
+#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B__SIZE				0x00000008
+#define  NV34TCL_LIGHT_HALF_VECTOR_X(x)							(0x00001028+((x)*64))
+#define  NV34TCL_LIGHT_HALF_VECTOR_X__SIZE						0x00000008
+#define  NV34TCL_LIGHT_HALF_VECTOR_Y(x)							(0x0000102c+((x)*64))
+#define  NV34TCL_LIGHT_HALF_VECTOR_Y__SIZE						0x00000008
+#define  NV34TCL_LIGHT_HALF_VECTOR_Z(x)							(0x00001030+((x)*64))
+#define  NV34TCL_LIGHT_HALF_VECTOR_Z__SIZE						0x00000008
+#define  NV34TCL_LIGHT_DIRECTION_X(x)							(0x00001034+((x)*64))
+#define  NV34TCL_LIGHT_DIRECTION_X__SIZE						0x00000008
+#define  NV34TCL_LIGHT_DIRECTION_Y(x)							(0x00001038+((x)*64))
+#define  NV34TCL_LIGHT_DIRECTION_Y__SIZE						0x00000008
+#define  NV34TCL_LIGHT_DIRECTION_Z(x)							(0x0000103c+((x)*64))
+#define  NV34TCL_LIGHT_DIRECTION_Z__SIZE						0x00000008
+#define  NV34TCL_LIGHT_SPOT_CUTOFF_A(x)							(0x00001200+((x)*64))
+#define  NV34TCL_LIGHT_SPOT_CUTOFF_A__SIZE						0x00000008
+#define  NV34TCL_LIGHT_SPOT_CUTOFF_B(x)							(0x00001204+((x)*64))
+#define  NV34TCL_LIGHT_SPOT_CUTOFF_B__SIZE						0x00000008
+#define  NV34TCL_LIGHT_SPOT_CUTOFF_C(x)							(0x00001208+((x)*64))
+#define  NV34TCL_LIGHT_SPOT_CUTOFF_C__SIZE						0x00000008
+#define  NV34TCL_LIGHT_SPOT_DIR_X(x)							(0x0000120c+((x)*64))
+#define  NV34TCL_LIGHT_SPOT_DIR_X__SIZE							0x00000008
+#define  NV34TCL_LIGHT_SPOT_DIR_Y(x)							(0x00001210+((x)*64))
+#define  NV34TCL_LIGHT_SPOT_DIR_Y__SIZE							0x00000008
+#define  NV34TCL_LIGHT_SPOT_DIR_Z(x)							(0x00001214+((x)*64))
+#define  NV34TCL_LIGHT_SPOT_DIR_Z__SIZE							0x00000008
+#define  NV34TCL_LIGHT_SPOT_CUTOFF_D(x)							(0x00001218+((x)*64))
+#define  NV34TCL_LIGHT_SPOT_CUTOFF_D__SIZE						0x00000008
+#define  NV34TCL_LIGHT_POSITION_X(x)							(0x0000121c+((x)*64))
+#define  NV34TCL_LIGHT_POSITION_X__SIZE							0x00000008
+#define  NV34TCL_LIGHT_POSITION_Y(x)							(0x00001220+((x)*64))
+#define  NV34TCL_LIGHT_POSITION_Y__SIZE							0x00000008
+#define  NV34TCL_LIGHT_POSITION_Z(x)							(0x00001224+((x)*64))
+#define  NV34TCL_LIGHT_POSITION_Z__SIZE							0x00000008
+#define  NV34TCL_LIGHT_ATTENUATION_CONSTANT(x)						(0x00001228+((x)*64))
+#define  NV34TCL_LIGHT_ATTENUATION_CONSTANT__SIZE					0x00000008
+#define  NV34TCL_LIGHT_ATTENUATION_LINEAR(x)						(0x0000122c+((x)*64))
+#define  NV34TCL_LIGHT_ATTENUATION_LINEAR__SIZE						0x00000008
+#define  NV34TCL_LIGHT_ATTENUATION_QUADRATIC(x)						(0x00001230+((x)*64))
+#define  NV34TCL_LIGHT_ATTENUATION_QUADRATIC__SIZE					0x00000008
+#define  NV34TCL_FRONT_MATERIAL_SHININESS(x)						(0x00001400+((x)*4))
+#define  NV34TCL_FRONT_MATERIAL_SHININESS__SIZE						0x00000006
+#define  NV34TCL_ENABLED_LIGHTS								0x00001420
+#define  NV34TCL_VERTEX_TWO_SIDE_ENABLE							0x0000142c
+#define  NV34TCL_FP_REG_CONTROL								0x00001450
+#define   NV34TCL_FP_REG_CONTROL_UNK1_SHIFT						16
+#define   NV34TCL_FP_REG_CONTROL_UNK1_MASK						0xffff0000
+#define   NV34TCL_FP_REG_CONTROL_UNK0_SHIFT						0
+#define   NV34TCL_FP_REG_CONTROL_UNK0_MASK						0x0000ffff
+#define  NV34TCL_VP_CLIP_PLANES_ENABLE							0x00001478
+#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE0						(1 <<  1)
+#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE1						(1 <<  5)
+#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE2						(1 <<  9)
+#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE3						(1 << 13)
+#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE4						(1 << 17)
+#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE5						(1 << 21)
+#define  NV34TCL_POLYGON_STIPPLE_ENABLE							0x0000147c
+#define  NV34TCL_POLYGON_STIPPLE_PATTERN(x)						(0x00001480+((x)*4))
+#define  NV34TCL_POLYGON_STIPPLE_PATTERN__SIZE						0x00000020
+#define  NV34TCL_VTX_ATTR_3F_X(x)							(0x00001500+((x)*16))
+#define  NV34TCL_VTX_ATTR_3F_X__SIZE							0x00000010
+#define  NV34TCL_VTX_ATTR_3F_Y(x)							(0x00001504+((x)*16))
+#define  NV34TCL_VTX_ATTR_3F_Y__SIZE							0x00000010
+#define  NV34TCL_VTX_ATTR_3F_Z(x)							(0x00001508+((x)*16))
+#define  NV34TCL_VTX_ATTR_3F_Z__SIZE							0x00000010
+#define  NV34TCL_VP_CLIP_PLANE_A(x)							(0x00001600+((x)*16))
+#define  NV34TCL_VP_CLIP_PLANE_A__SIZE							0x00000006
+#define  NV34TCL_VP_CLIP_PLANE_B(x)							(0x00001604+((x)*16))
+#define  NV34TCL_VP_CLIP_PLANE_B__SIZE							0x00000006
+#define  NV34TCL_VP_CLIP_PLANE_C(x)							(0x00001608+((x)*16))
+#define  NV34TCL_VP_CLIP_PLANE_C__SIZE							0x00000006
+#define  NV34TCL_VP_CLIP_PLANE_D(x)							(0x0000160c+((x)*16))
+#define  NV34TCL_VP_CLIP_PLANE_D__SIZE							0x00000006
+#define  NV34TCL_VTXBUF_ADDRESS(x)							(0x00001680+((x)*4))
+#define  NV34TCL_VTXBUF_ADDRESS__SIZE							0x00000010
+#define   NV34TCL_VTXBUF_ADDRESS_DMA1							(1 << 31)
+#define   NV34TCL_VTXBUF_ADDRESS_OFFSET_SHIFT						0
+#define   NV34TCL_VTXBUF_ADDRESS_OFFSET_MASK						0x0fffffff
+#define  NV34TCL_VTXFMT(x)								(0x00001740+((x)*4))
+#define  NV34TCL_VTXFMT__SIZE								0x00000010
+#define   NV34TCL_VTXFMT_TYPE_SHIFT							0
+#define   NV34TCL_VTXFMT_TYPE_MASK							0x0000000f
+#define    NV34TCL_VTXFMT_TYPE_FLOAT							0x00000002
+#define    NV34TCL_VTXFMT_TYPE_UBYTE							0x00000004
+#define    NV34TCL_VTXFMT_TYPE_USHORT							0x00000005
+#define   NV34TCL_VTXFMT_SIZE_SHIFT							4
+#define   NV34TCL_VTXFMT_SIZE_MASK							0x000000f0
+#define   NV34TCL_VTXFMT_STRIDE_SHIFT							8
+#define   NV34TCL_VTXFMT_STRIDE_MASK							0x0000ff00
+#define  NV34TCL_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R			0x000017a0
+#define  NV34TCL_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G			0x000017a4
+#define  NV34TCL_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B			0x000017a8
+#define  NV34TCL_COLOR_MATERIAL_BACK_R							0x000017b0
+#define  NV34TCL_COLOR_MATERIAL_BACK_G							0x000017b4
+#define  NV34TCL_COLOR_MATERIAL_BACK_B							0x000017b8
+#define  NV34TCL_COLOR_MATERIAL_BACK_A							0x000017c0
+#define  NV34TCL_QUERY_RESET								0x000017c8
+#define  NV34TCL_QUERY_UNK17CC								0x000017cc
+#define  NV34TCL_QUERY_GET								0x00001800
+#define   NV34TCL_QUERY_GET_UNK24_SHIFT							24
+#define   NV34TCL_QUERY_GET_UNK24_MASK							0xff000000
+#define   NV34TCL_QUERY_GET_OFFSET_SHIFT						0
+#define   NV34TCL_QUERY_GET_OFFSET_MASK							0x00ffffff
+#define  NV34TCL_VERTEX_BEGIN_END							0x00001808
+#define   NV34TCL_VERTEX_BEGIN_END_STOP							0x00000000
+#define   NV34TCL_VERTEX_BEGIN_END_POINTS						0x00000001
+#define   NV34TCL_VERTEX_BEGIN_END_LINES						0x00000002
+#define   NV34TCL_VERTEX_BEGIN_END_LINE_LOOP						0x00000003
+#define   NV34TCL_VERTEX_BEGIN_END_LINE_STRIP						0x00000004
+#define   NV34TCL_VERTEX_BEGIN_END_TRIANGLES						0x00000005
+#define   NV34TCL_VERTEX_BEGIN_END_TRIANGLE_STRIP					0x00000006
+#define   NV34TCL_VERTEX_BEGIN_END_TRIANGLE_FAN						0x00000007
+#define   NV34TCL_VERTEX_BEGIN_END_QUADS						0x00000008
+#define   NV34TCL_VERTEX_BEGIN_END_QUAD_STRIP						0x00000009
+#define   NV34TCL_VERTEX_BEGIN_END_POLYGON						0x0000000a
+#define  NV34TCL_VB_ELEMENT_U16								0x0000180c
+#define   NV34TCL_VB_ELEMENT_U16_I0_SHIFT						0
+#define   NV34TCL_VB_ELEMENT_U16_I0_MASK						0x0000ffff
+#define   NV34TCL_VB_ELEMENT_U16_I1_SHIFT						16
+#define   NV34TCL_VB_ELEMENT_U16_I1_MASK						0xffff0000
+#define  NV34TCL_VB_ELEMENT_U32								0x00001810
+#define  NV34TCL_VB_VERTEX_BATCH							0x00001814
+#define   NV34TCL_VB_VERTEX_BATCH_OFFSET_SHIFT						0
+#define   NV34TCL_VB_VERTEX_BATCH_OFFSET_MASK						0x00ffffff
+#define   NV34TCL_VB_VERTEX_BATCH_COUNT_SHIFT						24
+#define   NV34TCL_VB_VERTEX_BATCH_COUNT_MASK						0xff000000
+#define  NV34TCL_VERTEX_DATA								0x00001818
+#define  NV34TCL_IDXBUF_ADDRESS								0x0000181c
+#define  NV34TCL_IDXBUF_FORMAT								0x00001820
+#define   NV34TCL_IDXBUF_FORMAT_TYPE_SHIFT						4
+#define   NV34TCL_IDXBUF_FORMAT_TYPE_MASK						0x000000f0
+#define    NV34TCL_IDXBUF_FORMAT_TYPE_U32						0x00000000
+#define    NV34TCL_IDXBUF_FORMAT_TYPE_U16						0x00000010
+#define   NV34TCL_IDXBUF_FORMAT_DMA1							(1 <<  0)
+#define  NV34TCL_VB_INDEX_BATCH								0x00001824
+#define   NV34TCL_VB_INDEX_BATCH_COUNT_SHIFT						24
+#define   NV34TCL_VB_INDEX_BATCH_COUNT_MASK						0xff000000
+#define   NV34TCL_VB_INDEX_BATCH_START_SHIFT						0
+#define   NV34TCL_VB_INDEX_BATCH_START_MASK						0x00ffffff
+#define  NV34TCL_POLYGON_MODE_FRONT							0x00001828
+#define   NV34TCL_POLYGON_MODE_FRONT_POINT						0x00001b00
+#define   NV34TCL_POLYGON_MODE_FRONT_LINE						0x00001b01
+#define   NV34TCL_POLYGON_MODE_FRONT_FILL						0x00001b02
+#define  NV34TCL_POLYGON_MODE_BACK							0x0000182c
+#define   NV34TCL_POLYGON_MODE_BACK_POINT						0x00001b00
+#define   NV34TCL_POLYGON_MODE_BACK_LINE						0x00001b01
+#define   NV34TCL_POLYGON_MODE_BACK_FILL						0x00001b02
+#define  NV34TCL_CULL_FACE								0x00001830
+#define   NV34TCL_CULL_FACE_FRONT							0x00000404
+#define   NV34TCL_CULL_FACE_BACK							0x00000405
+#define   NV34TCL_CULL_FACE_FRONT_AND_BACK						0x00000408
+#define  NV34TCL_FRONT_FACE								0x00001834
+#define   NV34TCL_FRONT_FACE_CW								0x00000900
+#define   NV34TCL_FRONT_FACE_CCW							0x00000901
+#define  NV34TCL_POLYGON_SMOOTH_ENABLE							0x00001838
+#define  NV34TCL_CULL_FACE_ENABLE							0x0000183c
+#define  NV34TCL_TX_PALETTE_OFFSET(x)							(0x00001840+((x)*4))
+#define  NV34TCL_TX_PALETTE_OFFSET__SIZE						0x00000008
+#define  NV34TCL_VTX_ATTR_2F_X(x)							(0x00001880+((x)*8))
+#define  NV34TCL_VTX_ATTR_2F_X__SIZE							0x00000010
+#define  NV34TCL_VTX_ATTR_2F_Y(x)							(0x00001884+((x)*8))
+#define  NV34TCL_VTX_ATTR_2F_Y__SIZE							0x00000010
+#define  NV34TCL_VTX_ATTR_2I(x)								(0x00001900+((x)*4))
+#define  NV34TCL_VTX_ATTR_2I__SIZE							0x00000010
+#define   NV34TCL_VTX_ATTR_2I_X_SHIFT							0
+#define   NV34TCL_VTX_ATTR_2I_X_MASK							0x0000ffff
+#define   NV34TCL_VTX_ATTR_2I_Y_SHIFT							16
+#define   NV34TCL_VTX_ATTR_2I_Y_MASK							0xffff0000
+#define  NV34TCL_VTX_ATTR_4UB(x)							(0x00001940+((x)*4))
+#define  NV34TCL_VTX_ATTR_4UB__SIZE							0x00000010
+#define   NV34TCL_VTX_ATTR_4UB_X_SHIFT							0
+#define   NV34TCL_VTX_ATTR_4UB_X_MASK							0x000000ff
+#define   NV34TCL_VTX_ATTR_4UB_Y_SHIFT							8
+#define   NV34TCL_VTX_ATTR_4UB_Y_MASK							0x0000ff00
+#define   NV34TCL_VTX_ATTR_4UB_Z_SHIFT							16
+#define   NV34TCL_VTX_ATTR_4UB_Z_MASK							0x00ff0000
+#define   NV34TCL_VTX_ATTR_4UB_W_SHIFT							24
+#define   NV34TCL_VTX_ATTR_4UB_W_MASK							0xff000000
+#define  NV34TCL_VTX_ATTR_4I_XY(x)							(0x00001980+((x)*8))
+#define  NV34TCL_VTX_ATTR_4I_XY__SIZE							0x00000010
+#define   NV34TCL_VTX_ATTR_4I_XY_X_SHIFT						0
+#define   NV34TCL_VTX_ATTR_4I_XY_X_MASK							0x0000ffff
+#define   NV34TCL_VTX_ATTR_4I_XY_Y_SHIFT						16
+#define   NV34TCL_VTX_ATTR_4I_XY_Y_MASK							0xffff0000
+#define  NV34TCL_VTX_ATTR_4I_ZW(x)							(0x00001984+((x)*8))
+#define  NV34TCL_VTX_ATTR_4I_ZW__SIZE							0x00000010
+#define   NV34TCL_VTX_ATTR_4I_ZW_Z_SHIFT						0
+#define   NV34TCL_VTX_ATTR_4I_ZW_Z_MASK							0x0000ffff
+#define   NV34TCL_VTX_ATTR_4I_ZW_W_SHIFT						16
+#define   NV34TCL_VTX_ATTR_4I_ZW_W_MASK							0xffff0000
+#define  NV34TCL_TX_OFFSET(x)								(0x00001a00+((x)*32))
+#define  NV34TCL_TX_OFFSET__SIZE							0x00000008
+#define  NV34TCL_TX_FORMAT(x)								(0x00001a04+((x)*32))
+#define  NV34TCL_TX_FORMAT__SIZE							0x00000008
+#define   NV34TCL_TX_FORMAT_DMA0							(1 <<  0)
+#define   NV34TCL_TX_FORMAT_DMA1							(1 <<  1)
+#define   NV34TCL_TX_FORMAT_CUBIC							(1 <<  2)
+#define   NV34TCL_TX_FORMAT_NO_BORDER							(1 <<  3)
+#define   NV34TCL_TX_FORMAT_DIMS_SHIFT							4
+#define   NV34TCL_TX_FORMAT_DIMS_MASK							0x000000f0
+#define    NV34TCL_TX_FORMAT_DIMS_1D							0x00000010
+#define    NV34TCL_TX_FORMAT_DIMS_2D							0x00000020
+#define    NV34TCL_TX_FORMAT_DIMS_3D							0x00000030
+#define   NV34TCL_TX_FORMAT_FORMAT_SHIFT						8
+#define   NV34TCL_TX_FORMAT_FORMAT_MASK							0x0000ff00
+#define    NV34TCL_TX_FORMAT_FORMAT_L8							0x00000000
+#define    NV34TCL_TX_FORMAT_FORMAT_A8							0x00000100
+#define    NV34TCL_TX_FORMAT_FORMAT_A1R5G5B5						0x00000200
+#define    NV34TCL_TX_FORMAT_FORMAT_A4R4G4B4						0x00000400
+#define    NV34TCL_TX_FORMAT_FORMAT_R5G6B5						0x00000500
+#define    NV34TCL_TX_FORMAT_FORMAT_A8R8G8B8						0x00000600
+#define    NV34TCL_TX_FORMAT_FORMAT_X8R8G8B8						0x00000700
+#define    NV34TCL_TX_FORMAT_FORMAT_INDEX8						0x00000b00
+#define    NV34TCL_TX_FORMAT_FORMAT_DXT1						0x00000c00
+#define    NV34TCL_TX_FORMAT_FORMAT_DXT3						0x00000e00
+#define    NV34TCL_TX_FORMAT_FORMAT_DXT5						0x00000f00
+#define    NV34TCL_TX_FORMAT_FORMAT_A1R5G5B5_RECT					0x00001000
+#define    NV34TCL_TX_FORMAT_FORMAT_R5G6B5_RECT						0x00001100
+#define    NV34TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT					0x00001200
+#define    NV34TCL_TX_FORMAT_FORMAT_L8_RECT						0x00001300
+#define    NV34TCL_TX_FORMAT_FORMAT_DSDT8_RECT						0x00001700
+#define    NV34TCL_TX_FORMAT_FORMAT_A8L8						0x00001a00
+#define    NV34TCL_TX_FORMAT_FORMAT_A8_RECT						0x00001b00
+#define    NV34TCL_TX_FORMAT_FORMAT_A4R4G4B4_RECT					0x00001d00
+#define    NV34TCL_TX_FORMAT_FORMAT_R8G8B8_RECT						0x00001e00
+#define    NV34TCL_TX_FORMAT_FORMAT_A8L8_RECT						0x00002000
+#define    NV34TCL_TX_FORMAT_FORMAT_DSDT8						0x00002800
+#define    NV34TCL_TX_FORMAT_FORMAT_HILO16						0x00003300
+#define    NV34TCL_TX_FORMAT_FORMAT_HILO16_RECT						0x00003600
+#define    NV34TCL_TX_FORMAT_FORMAT_HILO8						0x00004400
+#define    NV34TCL_TX_FORMAT_FORMAT_SIGNED_HILO8					0x00004500
+#define    NV34TCL_TX_FORMAT_FORMAT_HILO8_RECT						0x00004600
+#define    NV34TCL_TX_FORMAT_FORMAT_SIGNED_HILO8_RECT					0x00004700
+#define    NV34TCL_TX_FORMAT_FORMAT_A16							0x00003200
+#define    NV34TCL_TX_FORMAT_FORMAT_A16_RECT						0x00003500
+#define    NV34TCL_TX_FORMAT_FORMAT_FLOAT_RGBA16_NV					0x00004a00
+#define    NV34TCL_TX_FORMAT_FORMAT_FLOAT_RGBA32_NV					0x00004b00
+#define    NV34TCL_TX_FORMAT_FORMAT_FLOAT_R32_NV					0x00004c00
+#define   NV34TCL_TX_FORMAT_MIPMAP							(1 << 19)
+#define   NV34TCL_TX_FORMAT_BASE_SIZE_U_SHIFT						20
+#define   NV34TCL_TX_FORMAT_BASE_SIZE_U_MASK						0x00f00000
+#define   NV34TCL_TX_FORMAT_BASE_SIZE_V_SHIFT						24
+#define   NV34TCL_TX_FORMAT_BASE_SIZE_V_MASK						0x0f000000
+#define   NV34TCL_TX_FORMAT_BASE_SIZE_W_SHIFT						28
+#define   NV34TCL_TX_FORMAT_BASE_SIZE_W_MASK						0xf0000000
+#define  NV34TCL_TX_WRAP(x)								(0x00001a08+((x)*32))
+#define  NV34TCL_TX_WRAP__SIZE								0x00000008
+#define   NV34TCL_TX_WRAP_S_SHIFT							0
+#define   NV34TCL_TX_WRAP_S_MASK							0x000000ff
+#define    NV34TCL_TX_WRAP_S_REPEAT							0x00000001
+#define    NV34TCL_TX_WRAP_S_MIRRORED_REPEAT						0x00000002
+#define    NV34TCL_TX_WRAP_S_CLAMP_TO_EDGE						0x00000003
+#define    NV34TCL_TX_WRAP_S_CLAMP_TO_BORDER						0x00000004
+#define    NV34TCL_TX_WRAP_S_CLAMP							0x00000005
+#define   NV34TCL_TX_WRAP_T_SHIFT							8
+#define   NV34TCL_TX_WRAP_T_MASK							0x00000f00
+#define    NV34TCL_TX_WRAP_T_REPEAT							0x00000100
+#define    NV34TCL_TX_WRAP_T_MIRRORED_REPEAT						0x00000200
+#define    NV34TCL_TX_WRAP_T_CLAMP_TO_EDGE						0x00000300
+#define    NV34TCL_TX_WRAP_T_CLAMP_TO_BORDER						0x00000400
+#define    NV34TCL_TX_WRAP_T_CLAMP							0x00000500
+#define   NV34TCL_TX_WRAP_EXPAND_NORMAL_SHIFT						12
+#define   NV34TCL_TX_WRAP_EXPAND_NORMAL_MASK						0x0000f000
+#define   NV34TCL_TX_WRAP_R_SHIFT							16
+#define   NV34TCL_TX_WRAP_R_MASK							0x000f0000
+#define    NV34TCL_TX_WRAP_R_REPEAT							0x00010000
+#define    NV34TCL_TX_WRAP_R_MIRRORED_REPEAT						0x00020000
+#define    NV34TCL_TX_WRAP_R_CLAMP_TO_EDGE						0x00030000
+#define    NV34TCL_TX_WRAP_R_CLAMP_TO_BORDER						0x00040000
+#define    NV34TCL_TX_WRAP_R_CLAMP							0x00050000
+#define   NV34TCL_TX_WRAP_RCOMP_SHIFT							28
+#define   NV34TCL_TX_WRAP_RCOMP_MASK							0xf0000000
+#define    NV34TCL_TX_WRAP_RCOMP_NEVER							0x00000000
+#define    NV34TCL_TX_WRAP_RCOMP_GREATER						0x10000000
+#define    NV34TCL_TX_WRAP_RCOMP_EQUAL							0x20000000
+#define    NV34TCL_TX_WRAP_RCOMP_GEQUAL							0x30000000
+#define    NV34TCL_TX_WRAP_RCOMP_LESS							0x40000000
+#define    NV34TCL_TX_WRAP_RCOMP_NOTEQUAL						0x50000000
+#define    NV34TCL_TX_WRAP_RCOMP_LEQUAL							0x60000000
+#define    NV34TCL_TX_WRAP_RCOMP_ALWAYS							0x70000000
+#define  NV34TCL_TX_ENABLE(x)								(0x00001a0c+((x)*32))
+#define  NV34TCL_TX_ENABLE__SIZE							0x00000008
+#define   NV34TCL_TX_ENABLE_ANISO_SHIFT							4
+#define   NV34TCL_TX_ENABLE_ANISO_MASK							0x00000030
+#define    NV34TCL_TX_ENABLE_ANISO_NONE							0x00000000
+#define    NV34TCL_TX_ENABLE_ANISO_2X							0x00000010
+#define    NV34TCL_TX_ENABLE_ANISO_4X							0x00000020
+#define    NV34TCL_TX_ENABLE_ANISO_8X							0x00000030
+#define   NV34TCL_TX_ENABLE_MIPMAP_MAX_LOD_SHIFT					14
+#define   NV34TCL_TX_ENABLE_MIPMAP_MAX_LOD_MASK						0x0003c000
+#define   NV34TCL_TX_ENABLE_MIPMAP_MIN_LOD_SHIFT					26
+#define   NV34TCL_TX_ENABLE_MIPMAP_MIN_LOD_MASK						0x3c000000
+#define   NV34TCL_TX_ENABLE_ENABLE							(1 << 30)
+#define  NV34TCL_TX_SWIZZLE(x)								(0x00001a10+((x)*32))
+#define  NV34TCL_TX_SWIZZLE__SIZE							0x00000008
+#define   NV34TCL_TX_SWIZZLE_S0_X_SHIFT							14
+#define   NV34TCL_TX_SWIZZLE_S0_X_MASK							0x0000c000
+#define    NV34TCL_TX_SWIZZLE_S0_X_ZERO							0x00000000
+#define    NV34TCL_TX_SWIZZLE_S0_X_ONE							0x00004000
+#define    NV34TCL_TX_SWIZZLE_S0_X_S1							0x00008000
+#define   NV34TCL_TX_SWIZZLE_S0_Y_SHIFT							12
+#define   NV34TCL_TX_SWIZZLE_S0_Y_MASK							0x00003000
+#define    NV34TCL_TX_SWIZZLE_S0_Y_ZERO							0x00000000
+#define    NV34TCL_TX_SWIZZLE_S0_Y_ONE							0x00001000
+#define    NV34TCL_TX_SWIZZLE_S0_Y_S1							0x00002000
+#define   NV34TCL_TX_SWIZZLE_S0_Z_SHIFT							10
+#define   NV34TCL_TX_SWIZZLE_S0_Z_MASK							0x00000c00
+#define    NV34TCL_TX_SWIZZLE_S0_Z_ZERO							0x00000000
+#define    NV34TCL_TX_SWIZZLE_S0_Z_ONE							0x00000400
+#define    NV34TCL_TX_SWIZZLE_S0_Z_S1							0x00000800
+#define   NV34TCL_TX_SWIZZLE_S0_W_SHIFT							8
+#define   NV34TCL_TX_SWIZZLE_S0_W_MASK							0x00000300
+#define    NV34TCL_TX_SWIZZLE_S0_W_ZERO							0x00000000
+#define    NV34TCL_TX_SWIZZLE_S0_W_ONE							0x00000100
+#define    NV34TCL_TX_SWIZZLE_S0_W_S1							0x00000200
+#define   NV34TCL_TX_SWIZZLE_S1_X_SHIFT							6
+#define   NV34TCL_TX_SWIZZLE_S1_X_MASK							0x000000c0
+#define    NV34TCL_TX_SWIZZLE_S1_X_W							0x00000000
+#define    NV34TCL_TX_SWIZZLE_S1_X_Z							0x00000040
+#define    NV34TCL_TX_SWIZZLE_S1_X_Y							0x00000080
+#define    NV34TCL_TX_SWIZZLE_S1_X_X							0x000000c0
+#define   NV34TCL_TX_SWIZZLE_S1_Y_SHIFT							4
+#define   NV34TCL_TX_SWIZZLE_S1_Y_MASK							0x00000030
+#define    NV34TCL_TX_SWIZZLE_S1_Y_W							0x00000000
+#define    NV34TCL_TX_SWIZZLE_S1_Y_Z							0x00000010
+#define    NV34TCL_TX_SWIZZLE_S1_Y_Y							0x00000020
+#define    NV34TCL_TX_SWIZZLE_S1_Y_X							0x00000030
+#define   NV34TCL_TX_SWIZZLE_S1_Z_SHIFT							2
+#define   NV34TCL_TX_SWIZZLE_S1_Z_MASK							0x0000000c
+#define    NV34TCL_TX_SWIZZLE_S1_Z_W							0x00000000
+#define    NV34TCL_TX_SWIZZLE_S1_Z_Z							0x00000004
+#define    NV34TCL_TX_SWIZZLE_S1_Z_Y							0x00000008
+#define    NV34TCL_TX_SWIZZLE_S1_Z_X							0x0000000c
+#define   NV34TCL_TX_SWIZZLE_S1_W_SHIFT							0
+#define   NV34TCL_TX_SWIZZLE_S1_W_MASK							0x00000003
+#define    NV34TCL_TX_SWIZZLE_S1_W_W							0x00000000
+#define    NV34TCL_TX_SWIZZLE_S1_W_Z							0x00000001
+#define    NV34TCL_TX_SWIZZLE_S1_W_Y							0x00000002
+#define    NV34TCL_TX_SWIZZLE_S1_W_X							0x00000003
+#define   NV34TCL_TX_SWIZZLE_RECT_PITCH_SHIFT						16
+#define   NV34TCL_TX_SWIZZLE_RECT_PITCH_MASK						0xffff0000
+#define  NV34TCL_TX_FILTER(x)								(0x00001a14+((x)*32))
+#define  NV34TCL_TX_FILTER__SIZE							0x00000008
+#define   NV34TCL_TX_FILTER_LOD_BIAS_SHIFT						8
+#define   NV34TCL_TX_FILTER_LOD_BIAS_MASK						0x00000f00
+#define   NV34TCL_TX_FILTER_MINIFY_SHIFT						16
+#define   NV34TCL_TX_FILTER_MINIFY_MASK							0x000f0000
+#define    NV34TCL_TX_FILTER_MINIFY_NEAREST						0x00010000
+#define    NV34TCL_TX_FILTER_MINIFY_LINEAR						0x00020000
+#define    NV34TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST				0x00030000
+#define    NV34TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST				0x00040000
+#define    NV34TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR				0x00050000
+#define    NV34TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR				0x00060000
+#define   NV34TCL_TX_FILTER_MAGNIFY_SHIFT						24
+#define   NV34TCL_TX_FILTER_MAGNIFY_MASK						0x0f000000
+#define    NV34TCL_TX_FILTER_MAGNIFY_NEAREST						0x01000000
+#define    NV34TCL_TX_FILTER_MAGNIFY_LINEAR						0x02000000
+#define   NV34TCL_TX_FILTER_SIGNED_BLUE							(1 << 28)
+#define   NV34TCL_TX_FILTER_SIGNED_GREEN						(1 << 29)
+#define   NV34TCL_TX_FILTER_SIGNED_RED							(1 << 30)
+#define   NV34TCL_TX_FILTER_SIGNED_ALPHA						(1 << 31)
+#define  NV34TCL_TX_NPOT_SIZE(x)							(0x00001a18+((x)*32))
+#define  NV34TCL_TX_NPOT_SIZE__SIZE							0x00000008
+#define   NV34TCL_TX_NPOT_SIZE_H_SHIFT							0
+#define   NV34TCL_TX_NPOT_SIZE_H_MASK							0x0000ffff
+#define   NV34TCL_TX_NPOT_SIZE_W_SHIFT							16
+#define   NV34TCL_TX_NPOT_SIZE_W_MASK							0xffff0000
+#define  NV34TCL_TX_BORDER_COLOR(x)							(0x00001a1c+((x)*32))
+#define  NV34TCL_TX_BORDER_COLOR__SIZE							0x00000008
+#define   NV34TCL_TX_BORDER_COLOR_B_SHIFT						0
+#define   NV34TCL_TX_BORDER_COLOR_B_MASK						0x000000ff
+#define   NV34TCL_TX_BORDER_COLOR_G_SHIFT						8
+#define   NV34TCL_TX_BORDER_COLOR_G_MASK						0x0000ff00
+#define   NV34TCL_TX_BORDER_COLOR_R_SHIFT						16
+#define   NV34TCL_TX_BORDER_COLOR_R_MASK						0x00ff0000
+#define   NV34TCL_TX_BORDER_COLOR_A_SHIFT						24
+#define   NV34TCL_TX_BORDER_COLOR_A_MASK						0xff000000
+#define  NV34TCL_VTX_ATTR_4F_X(x)							(0x00001c00+((x)*16))
+#define  NV34TCL_VTX_ATTR_4F_X__SIZE							0x00000010
+#define  NV34TCL_VTX_ATTR_4F_Y(x)							(0x00001c04+((x)*16))
+#define  NV34TCL_VTX_ATTR_4F_Y__SIZE							0x00000010
+#define  NV34TCL_VTX_ATTR_4F_Z(x)							(0x00001c08+((x)*16))
+#define  NV34TCL_VTX_ATTR_4F_Z__SIZE							0x00000010
+#define  NV34TCL_VTX_ATTR_4F_W(x)							(0x00001c0c+((x)*16))
+#define  NV34TCL_VTX_ATTR_4F_W__SIZE							0x00000010
+#define  NV34TCL_FP_CONTROL								0x00001d60
+#define   NV34TCL_FP_CONTROL_USES_KIL							(1 <<  7)
+#define   NV34TCL_FP_CONTROL_USED_REGS_MINUS1_DIV2_SHIFT				0
+#define   NV34TCL_FP_CONTROL_USED_REGS_MINUS1_DIV2_MASK					0x0000000f
+#define  NV34TCL_DEPTH_UNK17D8								0x00001d78
+#define   NV34TCL_DEPTH_UNK17D8_CLAMP_SHIFT						4
+#define   NV34TCL_DEPTH_UNK17D8_CLAMP_MASK						0x000000f0
+#define  NV34TCL_MULTISAMPLE_CONTROL							0x00001d7c
+#define   NV34TCL_MULTISAMPLE_CONTROL_ENABLE						(1 <<  0)
+#define   NV34TCL_MULTISAMPLE_CONTROL_SAMPLE_ALPHA_TO_COVERAGE				(1 <<  4)
+#define   NV34TCL_MULTISAMPLE_CONTROL_SAMPLE_ALPHA_TO_ONE				(1 <<  8)
+#define   NV34TCL_MULTISAMPLE_CONTROL_SAMPLE_COVERAGE_SHIFT				16
+#define   NV34TCL_MULTISAMPLE_CONTROL_SAMPLE_COVERAGE_MASK				0xffff0000
+#define  NV34TCL_CLEAR_DEPTH_VALUE							0x00001d8c
+#define  NV34TCL_CLEAR_COLOR_VALUE							0x00001d90
+#define   NV34TCL_CLEAR_COLOR_VALUE_B_SHIFT						0
+#define   NV34TCL_CLEAR_COLOR_VALUE_B_MASK						0x000000ff
+#define   NV34TCL_CLEAR_COLOR_VALUE_G_SHIFT						8
+#define   NV34TCL_CLEAR_COLOR_VALUE_G_MASK						0x0000ff00
+#define   NV34TCL_CLEAR_COLOR_VALUE_R_SHIFT						16
+#define   NV34TCL_CLEAR_COLOR_VALUE_R_MASK						0x00ff0000
+#define   NV34TCL_CLEAR_COLOR_VALUE_A_SHIFT						24
+#define   NV34TCL_CLEAR_COLOR_VALUE_A_MASK						0xff000000
+#define  NV34TCL_CLEAR_BUFFERS								0x00001d94
+#define   NV34TCL_CLEAR_BUFFERS_COLOR_A							(1 <<  7)
+#define   NV34TCL_CLEAR_BUFFERS_COLOR_B							(1 <<  6)
+#define   NV34TCL_CLEAR_BUFFERS_COLOR_G							(1 <<  5)
+#define   NV34TCL_CLEAR_BUFFERS_COLOR_R							(1 <<  4)
+#define   NV34TCL_CLEAR_BUFFERS_STENCIL							(1 <<  1)
+#define   NV34TCL_CLEAR_BUFFERS_DEPTH							(1 <<  0)
+#define  NV34TCL_DO_VERTICES								0x00001dac
+#define  NV34TCL_LINE_STIPPLE_ENABLE							0x00001db4
+#define  NV34TCL_LINE_STIPPLE_PATTERN							0x00001db8
+#define   NV34TCL_LINE_STIPPLE_PATTERN_FACTOR_SHIFT					0
+#define   NV34TCL_LINE_STIPPLE_PATTERN_FACTOR_MASK					0x0000ffff
+#define   NV34TCL_LINE_STIPPLE_PATTERN_PATTERN_SHIFT					16
+#define   NV34TCL_LINE_STIPPLE_PATTERN_PATTERN_MASK					0xffff0000
+#define  NV34TCL_BACK_MATERIAL_SHININESS(x)						(0x00001e20+((x)*4))
+#define  NV34TCL_BACK_MATERIAL_SHININESS__SIZE						0x00000006
+#define  NV34TCL_VTX_ATTR_1F(x)								(0x00001e40+((x)*4))
+#define  NV34TCL_VTX_ATTR_1F__SIZE							0x00000010
+#define  NV34TCL_ENGINE									0x00001e94
+#define   NV34TCL_ENGINE_FP								(1 <<  0)
+#define   NV34TCL_ENGINE_VP								(1 <<  1)
+#define   NV34TCL_ENGINE_FIXED								(1 <<  2)
+#define  NV34TCL_VP_UPLOAD_FROM_ID							0x00001e9c
+#define  NV34TCL_VP_START_FROM_ID							0x00001ea0
+#define  NV34TCL_POINT_PARAMETERS(x)							(0x00001ec0+((x)*4))
+#define  NV34TCL_POINT_PARAMETERS__SIZE							0x00000008
+#define  NV34TCL_POINT_SIZE								0x00001ee0
+#define  NV34TCL_POINT_PARAMETERS_ENABLE						0x00001ee4
+#define  NV34TCL_POINT_SPRITE								0x00001ee8
+#define   NV34TCL_POINT_SPRITE_ENABLE							(1 <<  0)
+#define   NV34TCL_POINT_SPRITE_R_MODE_SHIFT						1
+#define   NV34TCL_POINT_SPRITE_R_MODE_MASK						0x00000006
+#define    NV34TCL_POINT_SPRITE_R_MODE_ZERO						0x00000000
+#define    NV34TCL_POINT_SPRITE_R_MODE_R						0x00000002
+#define    NV34TCL_POINT_SPRITE_R_MODE_S						0x00000004
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_0						(1 <<  8)
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_1						(1 <<  9)
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_2						(1 << 10)
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_3						(1 << 11)
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_4						(1 << 12)
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_5						(1 << 13)
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_6						(1 << 14)
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_7						(1 << 15)
+#define  NV34TCL_VP_UPLOAD_CONST_ID							0x00001efc
+#define  NV34TCL_VP_UPLOAD_CONST_X(x)							(0x00001f00+((x)*16))
+#define  NV34TCL_VP_UPLOAD_CONST_X__SIZE						0x00000004
+#define  NV34TCL_VP_UPLOAD_CONST_Y(x)							(0x00001f04+((x)*16))
+#define  NV34TCL_VP_UPLOAD_CONST_Y__SIZE						0x00000004
+#define  NV34TCL_VP_UPLOAD_CONST_Z(x)							(0x00001f08+((x)*16))
+#define  NV34TCL_VP_UPLOAD_CONST_Z__SIZE						0x00000004
+#define  NV34TCL_VP_UPLOAD_CONST_W(x)							(0x00001f0c+((x)*16))
+#define  NV34TCL_VP_UPLOAD_CONST_W__SIZE						0x00000004
+#define  NV34TCL_UNK1f80(x)								(0x00001f80+((x)*4))
+#define  NV34TCL_UNK1f80__SIZE								0x00000010
+
+
+#define NV40TCL										0x00004097
+
+#define  NV40TCL_REF_CNT								0x00000050
+#define  NV40TCL_NOP									0x00000100
+#define  NV40TCL_NOTIFY									0x00000104
+#define  NV40TCL_DMA_NOTIFY								0x00000180
+#define  NV40TCL_DMA_TEXTURE0								0x00000184
+#define  NV40TCL_DMA_TEXTURE1								0x00000188
+#define  NV40TCL_DMA_COLOR1								0x0000018c
+#define  NV40TCL_DMA_COLOR0								0x00000194
+#define  NV40TCL_DMA_ZETA								0x00000198
+#define  NV40TCL_DMA_VTXBUF0								0x0000019c
+#define  NV40TCL_DMA_VTXBUF1								0x000001a0
+#define  NV40TCL_DMA_FENCE								0x000001a4
+#define  NV40TCL_DMA_QUERY								0x000001a8
+#define  NV40TCL_DMA_UNK01AC								0x000001ac
+#define  NV40TCL_DMA_UNK01B0								0x000001b0
+#define  NV40TCL_DMA_COLOR2								0x000001b4
+#define  NV40TCL_DMA_COLOR3								0x000001b8
+#define  NV40TCL_RT_HORIZ								0x00000200
+#define   NV40TCL_RT_HORIZ_W_SHIFT							16
+#define   NV40TCL_RT_HORIZ_W_MASK							0xffff0000
+#define   NV40TCL_RT_HORIZ_X_SHIFT							0
+#define   NV40TCL_RT_HORIZ_X_MASK							0x0000ffff
+#define  NV40TCL_RT_VERT								0x00000204
+#define   NV40TCL_RT_VERT_H_SHIFT							16
+#define   NV40TCL_RT_VERT_H_MASK							0xffff0000
+#define   NV40TCL_RT_VERT_Y_SHIFT							0
+#define   NV40TCL_RT_VERT_Y_MASK							0x0000ffff
+#define  NV40TCL_RT_FORMAT								0x00000208
+#define   NV40TCL_RT_FORMAT_LOG2_HEIGHT_SHIFT						24
+#define   NV40TCL_RT_FORMAT_LOG2_HEIGHT_MASK						0xff000000
+#define   NV40TCL_RT_FORMAT_LOG2_WIDTH_SHIFT						16
+#define   NV40TCL_RT_FORMAT_LOG2_WIDTH_MASK						0x00ff0000
+#define   NV40TCL_RT_FORMAT_TYPE_SHIFT							8
+#define   NV40TCL_RT_FORMAT_TYPE_MASK							0x00000f00
+#define    NV40TCL_RT_FORMAT_TYPE_LINEAR						0x00000100
+#define    NV40TCL_RT_FORMAT_TYPE_SWIZZLED						0x00000200
+#define   NV40TCL_RT_FORMAT_ZETA_SHIFT							5
+#define   NV40TCL_RT_FORMAT_ZETA_MASK							0x000000e0
+#define    NV40TCL_RT_FORMAT_ZETA_Z16							0x00000020
+#define    NV40TCL_RT_FORMAT_ZETA_Z24S8							0x00000040
+#define   NV40TCL_RT_FORMAT_COLOR_SHIFT							0
+#define   NV40TCL_RT_FORMAT_COLOR_MASK							0x0000001f
+#define    NV40TCL_RT_FORMAT_COLOR_R5G6B5						0x00000003
+#define    NV40TCL_RT_FORMAT_COLOR_X8R8G8B8						0x00000005
+#define    NV40TCL_RT_FORMAT_COLOR_A8R8G8B8						0x00000008
+#define    NV40TCL_RT_FORMAT_COLOR_B8							0x00000009
+#define    NV40TCL_RT_FORMAT_COLOR_UNKNOWN						0x0000000d
+#define    NV40TCL_RT_FORMAT_COLOR_X8B8G8R8						0x0000000f
+#define    NV40TCL_RT_FORMAT_COLOR_A8B8G8R8						0x00000010
+#define  NV40TCL_COLOR0_PITCH								0x0000020c
+#define  NV40TCL_COLOR0_OFFSET								0x00000210
+#define  NV40TCL_ZETA_OFFSET								0x00000214
+#define  NV40TCL_COLOR1_OFFSET								0x00000218
+#define  NV40TCL_COLOR1_PITCH								0x0000021c
+#define  NV40TCL_RT_ENABLE								0x00000220
+#define   NV40TCL_RT_ENABLE_MRT								(1 <<  4)
+#define   NV40TCL_RT_ENABLE_COLOR3							(1 <<  3)
+#define   NV40TCL_RT_ENABLE_COLOR2							(1 <<  2)
+#define   NV40TCL_RT_ENABLE_COLOR1							(1 <<  1)
+#define   NV40TCL_RT_ENABLE_COLOR0							(1 <<  0)
+#define  NV40TCL_ZETA_PITCH								0x0000022c
+#define  NV40TCL_COLOR2_PITCH								0x00000280
+#define  NV40TCL_COLOR3_PITCH								0x00000284
+#define  NV40TCL_COLOR2_OFFSET								0x00000288
+#define  NV40TCL_COLOR3_OFFSET								0x0000028c
+#define  NV40TCL_VIEWPORT_CLIP_HORIZ(x)							(0x000002c0+((x)*8))
+#define  NV40TCL_VIEWPORT_CLIP_HORIZ__SIZE						0x00000008
+#define  NV40TCL_VIEWPORT_CLIP_VERT(x)							(0x000002c4+((x)*8))
+#define  NV40TCL_VIEWPORT_CLIP_VERT__SIZE						0x00000008
+#define  NV40TCL_DITHER_ENABLE								0x00000300
+#define  NV40TCL_ALPHA_TEST_ENABLE							0x00000304
+#define  NV40TCL_ALPHA_TEST_FUNC							0x00000308
+#define   NV40TCL_ALPHA_TEST_FUNC_NEVER							0x00000200
+#define   NV40TCL_ALPHA_TEST_FUNC_LESS							0x00000201
+#define   NV40TCL_ALPHA_TEST_FUNC_EQUAL							0x00000202
+#define   NV40TCL_ALPHA_TEST_FUNC_LEQUAL						0x00000203
+#define   NV40TCL_ALPHA_TEST_FUNC_GREATER						0x00000204
+#define   NV40TCL_ALPHA_TEST_FUNC_NOTEQUAL						0x00000205
+#define   NV40TCL_ALPHA_TEST_FUNC_GEQUAL						0x00000206
+#define   NV40TCL_ALPHA_TEST_FUNC_ALWAYS						0x00000207
+#define  NV40TCL_ALPHA_TEST_REF								0x0000030c
+#define  NV40TCL_BLEND_ENABLE								0x00000310
+#define  NV40TCL_BLEND_FUNC_SRC								0x00000314
+#define   NV40TCL_BLEND_FUNC_SRC_RGB_SHIFT						0
+#define   NV40TCL_BLEND_FUNC_SRC_RGB_MASK						0x0000ffff
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_ZERO						0x00000000
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_ONE						0x00000001
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR						0x00000300
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR				0x00000301
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA						0x00000302
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA				0x00000303
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA						0x00000304
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA				0x00000305
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_DST_COLOR						0x00000306
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR				0x00000307
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE				0x00000308
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR					0x00008001
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR				0x00008002
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA					0x00008003
+#define    NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA				0x00008004
+#define   NV40TCL_BLEND_FUNC_SRC_ALPHA_SHIFT						16
+#define   NV40TCL_BLEND_FUNC_SRC_ALPHA_MASK						0xffff0000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ZERO						0x00000000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE						0x00010000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR					0x03000000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR				0x03010000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA					0x03020000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA				0x03030000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA					0x03040000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA				0x03050000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR					0x03060000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR				0x03070000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE				0x03080000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR					0x80010000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR			0x80020000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA					0x80030000
+#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA			0x80040000
+#define  NV40TCL_BLEND_FUNC_DST								0x00000318
+#define   NV40TCL_BLEND_FUNC_DST_RGB_SHIFT						0
+#define   NV40TCL_BLEND_FUNC_DST_RGB_MASK						0x0000ffff
+#define    NV40TCL_BLEND_FUNC_DST_RGB_ZERO						0x00000000
+#define    NV40TCL_BLEND_FUNC_DST_RGB_ONE						0x00000001
+#define    NV40TCL_BLEND_FUNC_DST_RGB_SRC_COLOR						0x00000300
+#define    NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR				0x00000301
+#define    NV40TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA						0x00000302
+#define    NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA				0x00000303
+#define    NV40TCL_BLEND_FUNC_DST_RGB_DST_ALPHA						0x00000304
+#define    NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA				0x00000305
+#define    NV40TCL_BLEND_FUNC_DST_RGB_DST_COLOR						0x00000306
+#define    NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR				0x00000307
+#define    NV40TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE				0x00000308
+#define    NV40TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR					0x00008001
+#define    NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR				0x00008002
+#define    NV40TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA					0x00008003
+#define    NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA				0x00008004
+#define   NV40TCL_BLEND_FUNC_DST_ALPHA_SHIFT						16
+#define   NV40TCL_BLEND_FUNC_DST_ALPHA_MASK						0xffff0000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ZERO						0x00000000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE						0x00010000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR					0x03000000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR				0x03010000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA					0x03020000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA				0x03030000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA					0x03040000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA				0x03050000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR					0x03060000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR				0x03070000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE				0x03080000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR					0x80010000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR			0x80020000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA					0x80030000
+#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA			0x80040000
+#define  NV40TCL_BLEND_COLOR								0x0000031c
+#define   NV40TCL_BLEND_COLOR_B_SHIFT							0
+#define   NV40TCL_BLEND_COLOR_B_MASK							0x000000ff
+#define   NV40TCL_BLEND_COLOR_G_SHIFT							8
+#define   NV40TCL_BLEND_COLOR_G_MASK							0x0000ff00
+#define   NV40TCL_BLEND_COLOR_R_SHIFT							16
+#define   NV40TCL_BLEND_COLOR_R_MASK							0x00ff0000
+#define   NV40TCL_BLEND_COLOR_A_SHIFT							24
+#define   NV40TCL_BLEND_COLOR_A_MASK							0xff000000
+#define  NV40TCL_BLEND_EQUATION								0x00000320
+#define   NV40TCL_BLEND_EQUATION_RGB_SHIFT						0
+#define   NV40TCL_BLEND_EQUATION_RGB_MASK						0x0000ffff
+#define    NV40TCL_BLEND_EQUATION_RGB_FUNC_ADD						0x00008006
+#define    NV40TCL_BLEND_EQUATION_RGB_MIN						0x00008007
+#define    NV40TCL_BLEND_EQUATION_RGB_MAX						0x00008008
+#define    NV40TCL_BLEND_EQUATION_RGB_FUNC_SUBTRACT					0x0000800a
+#define    NV40TCL_BLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT				0x0000800b
+#define   NV40TCL_BLEND_EQUATION_ALPHA_SHIFT						16
+#define   NV40TCL_BLEND_EQUATION_ALPHA_MASK						0xffff0000
+#define    NV40TCL_BLEND_EQUATION_ALPHA_FUNC_ADD					0x80060000
+#define    NV40TCL_BLEND_EQUATION_ALPHA_MIN						0x80070000
+#define    NV40TCL_BLEND_EQUATION_ALPHA_MAX						0x80080000
+#define    NV40TCL_BLEND_EQUATION_ALPHA_FUNC_SUBTRACT					0x800a0000
+#define    NV40TCL_BLEND_EQUATION_ALPHA_FUNC_REVERSE_SUBTRACT				0x800b0000
+#define  NV40TCL_COLOR_MASK								0x00000324
+#define   NV40TCL_COLOR_MASK_BUFFER0_B_SHIFT						0
+#define   NV40TCL_COLOR_MASK_BUFFER0_B_MASK						0x000000ff
+#define   NV40TCL_COLOR_MASK_BUFFER0_G_SHIFT						8
+#define   NV40TCL_COLOR_MASK_BUFFER0_G_MASK						0x0000ff00
+#define   NV40TCL_COLOR_MASK_BUFFER0_R_SHIFT						16
+#define   NV40TCL_COLOR_MASK_BUFFER0_R_MASK						0x00ff0000
+#define   NV40TCL_COLOR_MASK_BUFFER0_A_SHIFT						24
+#define   NV40TCL_COLOR_MASK_BUFFER0_A_MASK						0xff000000
+#define  NV40TCL_STENCIL_FRONT_ENABLE							0x00000328
+#define  NV40TCL_STENCIL_FRONT_MASK							0x0000032c
+#define  NV40TCL_STENCIL_FRONT_FUNC_FUNC						0x00000330
+#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_NEVER						0x00000200
+#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_LESS						0x00000201
+#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL						0x00000202
+#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL					0x00000203
+#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_GREATER					0x00000204
+#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL					0x00000205
+#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL					0x00000206
+#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS					0x00000207
+#define  NV40TCL_STENCIL_FRONT_FUNC_REF							0x00000334
+#define  NV40TCL_STENCIL_FRONT_FUNC_MASK						0x00000338
+#define  NV40TCL_STENCIL_FRONT_OP_FAIL							0x0000033c
+#define   NV40TCL_STENCIL_FRONT_OP_FAIL_ZERO						0x00000000
+#define   NV40TCL_STENCIL_FRONT_OP_FAIL_INVERT						0x0000150a
+#define   NV40TCL_STENCIL_FRONT_OP_FAIL_KEEP						0x00001e00
+#define   NV40TCL_STENCIL_FRONT_OP_FAIL_REPLACE						0x00001e01
+#define   NV40TCL_STENCIL_FRONT_OP_FAIL_INCR						0x00001e02
+#define   NV40TCL_STENCIL_FRONT_OP_FAIL_DECR						0x00001e03
+#define   NV40TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP					0x00008507
+#define   NV40TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP					0x00008508
+#define  NV40TCL_STENCIL_FRONT_OP_ZFAIL							0x00000340
+#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_ZERO						0x00000000
+#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_INVERT						0x0000150a
+#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_KEEP						0x00001e00
+#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_REPLACE					0x00001e01
+#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_INCR						0x00001e02
+#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_DECR						0x00001e03
+#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP					0x00008507
+#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP					0x00008508
+#define  NV40TCL_STENCIL_FRONT_OP_ZPASS							0x00000344
+#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_ZERO						0x00000000
+#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_INVERT						0x0000150a
+#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_KEEP						0x00001e00
+#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_REPLACE					0x00001e01
+#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_INCR						0x00001e02
+#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_DECR						0x00001e03
+#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP					0x00008507
+#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP					0x00008508
+#define  NV40TCL_STENCIL_BACK_ENABLE							0x00000348
+#define  NV40TCL_STENCIL_BACK_MASK							0x0000034c
+#define  NV40TCL_STENCIL_BACK_FUNC_FUNC							0x00000350
+#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_NEVER						0x00000200
+#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_LESS						0x00000201
+#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_EQUAL						0x00000202
+#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL						0x00000203
+#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_GREATER					0x00000204
+#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL					0x00000205
+#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL						0x00000206
+#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS						0x00000207
+#define  NV40TCL_STENCIL_BACK_FUNC_REF							0x00000354
+#define  NV40TCL_STENCIL_BACK_FUNC_MASK							0x00000358
+#define  NV40TCL_STENCIL_BACK_OP_FAIL							0x0000035c
+#define   NV40TCL_STENCIL_BACK_OP_FAIL_ZERO						0x00000000
+#define   NV40TCL_STENCIL_BACK_OP_FAIL_INVERT						0x0000150a
+#define   NV40TCL_STENCIL_BACK_OP_FAIL_KEEP						0x00001e00
+#define   NV40TCL_STENCIL_BACK_OP_FAIL_REPLACE						0x00001e01
+#define   NV40TCL_STENCIL_BACK_OP_FAIL_INCR						0x00001e02
+#define   NV40TCL_STENCIL_BACK_OP_FAIL_DECR						0x00001e03
+#define   NV40TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP					0x00008507
+#define   NV40TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP					0x00008508
+#define  NV40TCL_STENCIL_BACK_OP_ZFAIL							0x00000360
+#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_ZERO						0x00000000
+#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_INVERT						0x0000150a
+#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_KEEP						0x00001e00
+#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_REPLACE						0x00001e01
+#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_INCR						0x00001e02
+#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_DECR						0x00001e03
+#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP					0x00008507
+#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP					0x00008508
+#define  NV40TCL_STENCIL_BACK_OP_ZPASS							0x00000364
+#define   NV40TCL_STENCIL_BACK_OP_ZPASS_ZERO						0x00000000
+#define   NV40TCL_STENCIL_BACK_OP_ZPASS_INVERT						0x0000150a
+#define   NV40TCL_STENCIL_BACK_OP_ZPASS_KEEP						0x00001e00
+#define   NV40TCL_STENCIL_BACK_OP_ZPASS_REPLACE						0x00001e01
+#define   NV40TCL_STENCIL_BACK_OP_ZPASS_INCR						0x00001e02
+#define   NV40TCL_STENCIL_BACK_OP_ZPASS_DECR						0x00001e03
+#define   NV40TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP					0x00008507
+#define   NV40TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP					0x00008508
+#define  NV40TCL_SHADE_MODEL								0x00000368
+#define   NV40TCL_SHADE_MODEL_FLAT							0x00001d00
+#define   NV40TCL_SHADE_MODEL_SMOOTH							0x00001d01
+#define  NV40TCL_MRT_COLOR_MASK								0x00000370
+#define   NV40TCL_MRT_COLOR_MASK_BUFFER1_A						(1 <<  4)
+#define   NV40TCL_MRT_COLOR_MASK_BUFFER1_R						(1 <<  5)
+#define   NV40TCL_MRT_COLOR_MASK_BUFFER1_G						(1 <<  6)
+#define   NV40TCL_MRT_COLOR_MASK_BUFFER1_B						(1 <<  7)
+#define   NV40TCL_MRT_COLOR_MASK_BUFFER2_A						(1 <<  8)
+#define   NV40TCL_MRT_COLOR_MASK_BUFFER2_R						(1 <<  9)
+#define   NV40TCL_MRT_COLOR_MASK_BUFFER2_G						(1 << 10)
+#define   NV40TCL_MRT_COLOR_MASK_BUFFER2_B						(1 << 11)
+#define   NV40TCL_MRT_COLOR_MASK_BUFFER3_A						(1 << 12)
+#define   NV40TCL_MRT_COLOR_MASK_BUFFER3_R						(1 << 13)
+#define   NV40TCL_MRT_COLOR_MASK_BUFFER3_G						(1 << 14)
+#define   NV40TCL_MRT_COLOR_MASK_BUFFER3_B						(1 << 15)
+#define  NV40TCL_COLOR_LOGIC_OP_ENABLE							0x00000374
+#define  NV40TCL_COLOR_LOGIC_OP								0x00000378
+#define   NV40TCL_COLOR_LOGIC_OP_CLEAR							0x00001500
+#define   NV40TCL_COLOR_LOGIC_OP_AND							0x00001501
+#define   NV40TCL_COLOR_LOGIC_OP_AND_REVERSE						0x00001502
+#define   NV40TCL_COLOR_LOGIC_OP_COPY							0x00001503
+#define   NV40TCL_COLOR_LOGIC_OP_AND_INVERTED						0x00001504
+#define   NV40TCL_COLOR_LOGIC_OP_NOOP							0x00001505
+#define   NV40TCL_COLOR_LOGIC_OP_XOR							0x00001506
+#define   NV40TCL_COLOR_LOGIC_OP_OR							0x00001507
+#define   NV40TCL_COLOR_LOGIC_OP_NOR							0x00001508
+#define   NV40TCL_COLOR_LOGIC_OP_EQUIV							0x00001509
+#define   NV40TCL_COLOR_LOGIC_OP_INVERT							0x0000150a
+#define   NV40TCL_COLOR_LOGIC_OP_OR_REVERSE						0x0000150b
+#define   NV40TCL_COLOR_LOGIC_OP_COPY_INVERTED						0x0000150c
+#define   NV40TCL_COLOR_LOGIC_OP_OR_INVERTED						0x0000150d
+#define   NV40TCL_COLOR_LOGIC_OP_NAND							0x0000150e
+#define   NV40TCL_COLOR_LOGIC_OP_SET							0x0000150f
+#define  NV40TCL_DEPTH_RANGE_NEAR							0x00000394
+#define  NV40TCL_DEPTH_RANGE_FAR							0x00000398
+#define  NV40TCL_LINE_WIDTH								0x000003b8
+#define  NV40TCL_LINE_SMOOTH_ENABLE							0x000003bc
+#define  NV40TCL_UNK03C0(x)								(0x000003c0+((x)*4))
+#define  NV40TCL_UNK03C0__SIZE								0x00000010
+#define  NV40TCL_UNK0400(x)								(0x00000400+((x)*4))
+#define  NV40TCL_UNK0400__SIZE								0x00000010
+#define  NV40TCL_UNK0440(x)								(0x00000440+((x)*4))
+#define  NV40TCL_UNK0440__SIZE								0x00000020
+#define  NV40TCL_SCISSOR_HORIZ								0x000008c0
+#define   NV40TCL_SCISSOR_HORIZ_X_SHIFT							0
+#define   NV40TCL_SCISSOR_HORIZ_X_MASK							0x0000ffff
+#define   NV40TCL_SCISSOR_HORIZ_W_SHIFT							16
+#define   NV40TCL_SCISSOR_HORIZ_W_MASK							0xffff0000
+#define  NV40TCL_SCISSOR_VERT								0x000008c4
+#define   NV40TCL_SCISSOR_VERT_Y_SHIFT							0
+#define   NV40TCL_SCISSOR_VERT_Y_MASK							0x0000ffff
+#define   NV40TCL_SCISSOR_VERT_H_SHIFT							16
+#define   NV40TCL_SCISSOR_VERT_H_MASK							0xffff0000
+#define  NV40TCL_FOG_MODE								0x000008cc
+#define  NV40TCL_FOG_EQUATION_CONSTANT							0x000008d0
+#define  NV40TCL_FOG_EQUATION_LINEAR							0x000008d4
+#define  NV40TCL_FOG_EQUATION_QUADRATIC							0x000008d8
+#define  NV40TCL_FP_ADDRESS								0x000008e4
+#define   NV40TCL_FP_ADDRESS_OFFSET_SHIFT						8
+#define   NV40TCL_FP_ADDRESS_OFFSET_MASK						0xffffff00
+#define   NV40TCL_FP_ADDRESS_DMA1							(1 <<  1)
+#define   NV40TCL_FP_ADDRESS_DMA0							(1 <<  0)
+#define  NV40TCL_VIEWPORT_HORIZ								0x00000a00
+#define   NV40TCL_VIEWPORT_HORIZ_W_SHIFT						16
+#define   NV40TCL_VIEWPORT_HORIZ_W_MASK							0xffff0000
+#define   NV40TCL_VIEWPORT_HORIZ_X_SHIFT						0
+#define   NV40TCL_VIEWPORT_HORIZ_X_MASK							0x0000ffff
+#define  NV40TCL_VIEWPORT_VERT								0x00000a04
+#define   NV40TCL_VIEWPORT_VERT_H_SHIFT							16
+#define   NV40TCL_VIEWPORT_VERT_H_MASK							0xffff0000
+#define   NV40TCL_VIEWPORT_VERT_Y_SHIFT							0
+#define   NV40TCL_VIEWPORT_VERT_Y_MASK							0x0000ffff
+#define  NV40TCL_VIEWPORT_TRANSLATE_X							0x00000a20
+#define  NV40TCL_VIEWPORT_TRANSLATE_Y							0x00000a24
+#define  NV40TCL_VIEWPORT_TRANSLATE_Z							0x00000a28
+#define  NV40TCL_VIEWPORT_TRANSLATE_W							0x00000a2c
+#define  NV40TCL_VIEWPORT_SCALE_X							0x00000a30
+#define  NV40TCL_VIEWPORT_SCALE_Y							0x00000a34
+#define  NV40TCL_VIEWPORT_SCALE_Z							0x00000a38
+#define  NV40TCL_VIEWPORT_SCALE_W							0x00000a3c
+#define  NV40TCL_POLYGON_OFFSET_POINT_ENABLE						0x00000a60
+#define  NV40TCL_POLYGON_OFFSET_LINE_ENABLE						0x00000a64
+#define  NV40TCL_POLYGON_OFFSET_FILL_ENABLE						0x00000a68
+#define  NV40TCL_DEPTH_FUNC								0x00000a6c
+#define   NV40TCL_DEPTH_FUNC_NEVER							0x00000200
+#define   NV40TCL_DEPTH_FUNC_LESS							0x00000201
+#define   NV40TCL_DEPTH_FUNC_EQUAL							0x00000202
+#define   NV40TCL_DEPTH_FUNC_LEQUAL							0x00000203
+#define   NV40TCL_DEPTH_FUNC_GREATER							0x00000204
+#define   NV40TCL_DEPTH_FUNC_NOTEQUAL							0x00000205
+#define   NV40TCL_DEPTH_FUNC_GEQUAL							0x00000206
+#define   NV40TCL_DEPTH_FUNC_ALWAYS							0x00000207
+#define  NV40TCL_DEPTH_WRITE_ENABLE							0x00000a70
+#define  NV40TCL_DEPTH_TEST_ENABLE							0x00000a74
+#define  NV40TCL_POLYGON_OFFSET_FACTOR							0x00000a78
+#define  NV40TCL_POLYGON_OFFSET_UNITS							0x00000a7c
+#define  NV40TCL_VTX_ATTR_3I_XY(x)							(0x00000a80+((x)*8))
+#define  NV40TCL_VTX_ATTR_3I_XY__SIZE							0x00000010
+#define   NV40TCL_VTX_ATTR_3I_XY_X_SHIFT						0
+#define   NV40TCL_VTX_ATTR_3I_XY_X_MASK							0x0000ffff
+#define   NV40TCL_VTX_ATTR_3I_XY_Y_SHIFT						16
+#define   NV40TCL_VTX_ATTR_3I_XY_Y_MASK							0xffff0000
+#define  NV40TCL_VTX_ATTR_3I_Z(x)							(0x00000a84+((x)*8))
+#define  NV40TCL_VTX_ATTR_3I_Z__SIZE							0x00000010
+#define   NV40TCL_VTX_ATTR_3I_Z_Z_SHIFT							0
+#define   NV40TCL_VTX_ATTR_3I_Z_Z_MASK							0x0000ffff
+#define  NV40TCL_TEX_FILTER_OPTIMIZATION						0x00000b00
+#define   NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_SHIFT				0
+#define   NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_MASK				0x0000001f
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_OFF				0x00000000
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_HIGH_QUALITY			0x00000004
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_QUALITY				0x00000006
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_PERFORMANCE			0x00000008
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_HIGH_PERFORMANCE			0x00000018
+#define   NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_SHIFT				6
+#define   NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_MASK				0x000001c0
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_OFF				0x00000000
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_HIGH_QUALITY			0x000000c0
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_QUALITY				0x000001c0
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_PERFORMANCE			0x00000140
+#define   NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_SHIFT					10
+#define   NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_MASK					0x00007c00
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_OFF					0x00000000
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_PARTIAL				0x00002c00
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_FULL					0x00007c00
+#define  NV40TCL_UNK0B40(x)								(0x00000b40+((x)*4))
+#define  NV40TCL_UNK0B40__SIZE								0x00000008
+#define  NV40TCL_VP_UPLOAD_INST(x)							(0x00000b80+((x)*4))
+#define  NV40TCL_VP_UPLOAD_INST__SIZE							0x00000004
+#define  NV40TCL_VERTEX_TWO_SIDE_ENABLE							0x0000142c
+#define  NV40TCL_CLIP_PLANE_ENABLE							0x00001478
+#define   NV40TCL_CLIP_PLANE_ENABLE_PLANE0						(1 <<  1)
+#define   NV40TCL_CLIP_PLANE_ENABLE_PLANE1						(1 <<  5)
+#define   NV40TCL_CLIP_PLANE_ENABLE_PLANE2						(1 <<  9)
+#define   NV40TCL_CLIP_PLANE_ENABLE_PLANE3						(1 << 13)
+#define   NV40TCL_CLIP_PLANE_ENABLE_PLANE4						(1 << 17)
+#define   NV40TCL_CLIP_PLANE_ENABLE_PLANE5						(1 << 21)
+#define  NV40TCL_POLYGON_STIPPLE_ENABLE							0x0000147c
+#define  NV40TCL_POLYGON_STIPPLE_PATTERN(x)						(0x00001480+((x)*4))
+#define  NV40TCL_POLYGON_STIPPLE_PATTERN__SIZE						0x00000020
+#define  NV40TCL_VTX_ATTR_3F_X(x)							(0x00001500+((x)*16))
+#define  NV40TCL_VTX_ATTR_3F_X__SIZE							0x00000010
+#define  NV40TCL_VTX_ATTR_3F_Y(x)							(0x00001504+((x)*16))
+#define  NV40TCL_VTX_ATTR_3F_Y__SIZE							0x00000010
+#define  NV40TCL_VTX_ATTR_3F_Z(x)							(0x00001508+((x)*16))
+#define  NV40TCL_VTX_ATTR_3F_Z__SIZE							0x00000010
+#define  NV40TCL_VTXBUF_ADDRESS(x)							(0x00001680+((x)*4))
+#define  NV40TCL_VTXBUF_ADDRESS__SIZE							0x00000010
+#define   NV40TCL_VTXBUF_ADDRESS_DMA1							(1 << 31)
+#define   NV40TCL_VTXBUF_ADDRESS_OFFSET_SHIFT						0
+#define   NV40TCL_VTXBUF_ADDRESS_OFFSET_MASK						0x0fffffff
+#define  NV40TCL_VTX_CACHE_INVALIDATE							0x00001714
+#define  NV40TCL_VTXFMT(x)								(0x00001740+((x)*4))
+#define  NV40TCL_VTXFMT__SIZE								0x00000010
+#define   NV40TCL_VTXFMT_TYPE_SHIFT							0
+#define   NV40TCL_VTXFMT_TYPE_MASK							0x0000000f
+#define    NV40TCL_VTXFMT_TYPE_FLOAT							0x00000002
+#define    NV40TCL_VTXFMT_TYPE_UBYTE							0x00000004
+#define    NV40TCL_VTXFMT_TYPE_USHORT							0x00000005
+#define   NV40TCL_VTXFMT_SIZE_SHIFT							4
+#define   NV40TCL_VTXFMT_SIZE_MASK							0x000000f0
+#define   NV40TCL_VTXFMT_STRIDE_SHIFT							8
+#define   NV40TCL_VTXFMT_STRIDE_MASK							0x0000ff00
+#define  NV40TCL_QUERY_RESET								0x000017c8
+#define  NV40TCL_QUERY_UNK17CC								0x000017cc
+#define  NV40TCL_QUERY_GET								0x00001800
+#define   NV40TCL_QUERY_GET_UNK24_SHIFT							24
+#define   NV40TCL_QUERY_GET_UNK24_MASK							0xff000000
+#define   NV40TCL_QUERY_GET_OFFSET_SHIFT						0
+#define   NV40TCL_QUERY_GET_OFFSET_MASK							0x00ffffff
+#define  NV40TCL_BEGIN_END								0x00001808
+#define   NV40TCL_BEGIN_END_STOP							0x00000000
+#define   NV40TCL_BEGIN_END_POINTS							0x00000001
+#define   NV40TCL_BEGIN_END_LINES							0x00000002
+#define   NV40TCL_BEGIN_END_LINE_LOOP							0x00000003
+#define   NV40TCL_BEGIN_END_LINE_STRIP							0x00000004
+#define   NV40TCL_BEGIN_END_TRIANGLES							0x00000005
+#define   NV40TCL_BEGIN_END_TRIANGLE_STRIP						0x00000006
+#define   NV40TCL_BEGIN_END_TRIANGLE_FAN						0x00000007
+#define   NV40TCL_BEGIN_END_QUADS							0x00000008
+#define   NV40TCL_BEGIN_END_QUAD_STRIP							0x00000009
+#define   NV40TCL_BEGIN_END_POLYGON							0x0000000a
+#define  NV40TCL_VB_ELEMENT_U16								0x0000180c
+#define   NV40TCL_VB_ELEMENT_U16_1_SHIFT						16
+#define   NV40TCL_VB_ELEMENT_U16_1_MASK							0xffff0000
+#define   NV40TCL_VB_ELEMENT_U16_0_SHIFT						0
+#define   NV40TCL_VB_ELEMENT_U16_0_MASK							0x0000ffff
+#define  NV40TCL_VB_ELEMENT_U32								0x00001810
+#define  NV40TCL_VB_VERTEX_BATCH							0x00001814
+#define   NV40TCL_VB_VERTEX_BATCH_COUNT_SHIFT						24
+#define   NV40TCL_VB_VERTEX_BATCH_COUNT_MASK						0xff000000
+#define   NV40TCL_VB_VERTEX_BATCH_START_SHIFT						0
+#define   NV40TCL_VB_VERTEX_BATCH_START_MASK						0x00ffffff
+#define  NV40TCL_VERTEX_DATA								0x00001818
+#define  NV40TCL_IDXBUF_ADDRESS								0x0000181c
+#define  NV40TCL_IDXBUF_FORMAT								0x00001820
+#define   NV40TCL_IDXBUF_FORMAT_TYPE_SHIFT						4
+#define   NV40TCL_IDXBUF_FORMAT_TYPE_MASK						0x000000f0
+#define    NV40TCL_IDXBUF_FORMAT_TYPE_U32						0x00000000
+#define    NV40TCL_IDXBUF_FORMAT_TYPE_U16						0x00000010
+#define   NV40TCL_IDXBUF_FORMAT_DMA1							(1 <<  0)
+#define  NV40TCL_VB_INDEX_BATCH								0x00001824
+#define   NV40TCL_VB_INDEX_BATCH_COUNT_SHIFT						24
+#define   NV40TCL_VB_INDEX_BATCH_COUNT_MASK						0xff000000
+#define   NV40TCL_VB_INDEX_BATCH_START_SHIFT						0
+#define   NV40TCL_VB_INDEX_BATCH_START_MASK						0x00ffffff
+#define  NV40TCL_POLYGON_MODE_FRONT							0x00001828
+#define   NV40TCL_POLYGON_MODE_FRONT_POINT						0x00001b00
+#define   NV40TCL_POLYGON_MODE_FRONT_LINE						0x00001b01
+#define   NV40TCL_POLYGON_MODE_FRONT_FILL						0x00001b02
+#define  NV40TCL_POLYGON_MODE_BACK							0x0000182c
+#define   NV40TCL_POLYGON_MODE_BACK_POINT						0x00001b00
+#define   NV40TCL_POLYGON_MODE_BACK_LINE						0x00001b01
+#define   NV40TCL_POLYGON_MODE_BACK_FILL						0x00001b02
+#define  NV40TCL_CULL_FACE								0x00001830
+#define   NV40TCL_CULL_FACE_FRONT							0x00000404
+#define   NV40TCL_CULL_FACE_BACK							0x00000405
+#define   NV40TCL_CULL_FACE_FRONT_AND_BACK						0x00000408
+#define  NV40TCL_FRONT_FACE								0x00001834
+#define   NV40TCL_FRONT_FACE_CW								0x00000900
+#define   NV40TCL_FRONT_FACE_CCW							0x00000901
+#define  NV40TCL_POLYGON_SMOOTH_ENABLE							0x00001838
+#define  NV40TCL_CULL_FACE_ENABLE							0x0000183c
+#define  NV40TCL_TEX_SIZE1(x)								(0x00001840+((x)*4))
+#define  NV40TCL_TEX_SIZE1__SIZE							0x00000008
+#define   NV40TCL_TEX_SIZE1_DEPTH_SHIFT							20
+#define   NV40TCL_TEX_SIZE1_DEPTH_MASK							0xfff00000
+#define   NV40TCL_TEX_SIZE1_PITCH_SHIFT							0
+#define   NV40TCL_TEX_SIZE1_PITCH_MASK							0x0000ffff
+#define  NV40TCL_VTX_ATTR_2F_X(x)							(0x00001880+((x)*8))
+#define  NV40TCL_VTX_ATTR_2F_X__SIZE							0x00000010
+#define  NV40TCL_VTX_ATTR_2F_Y(x)							(0x00001884+((x)*8))
+#define  NV40TCL_VTX_ATTR_2F_Y__SIZE							0x00000010
+#define  NV40TCL_VTX_ATTR_2I(x)								(0x00001900+((x)*4))
+#define  NV40TCL_VTX_ATTR_2I__SIZE							0x00000010
+#define   NV40TCL_VTX_ATTR_2I_X_SHIFT							0
+#define   NV40TCL_VTX_ATTR_2I_X_MASK							0x0000ffff
+#define   NV40TCL_VTX_ATTR_2I_Y_SHIFT							16
+#define   NV40TCL_VTX_ATTR_2I_Y_MASK							0xffff0000
+#define  NV40TCL_VTX_ATTR_4UB(x)							(0x00001940+((x)*4))
+#define  NV40TCL_VTX_ATTR_4UB__SIZE							0x00000010
+#define   NV40TCL_VTX_ATTR_4UB_X_SHIFT							0
+#define   NV40TCL_VTX_ATTR_4UB_X_MASK							0x000000ff
+#define   NV40TCL_VTX_ATTR_4UB_Y_SHIFT							8
+#define   NV40TCL_VTX_ATTR_4UB_Y_MASK							0x0000ff00
+#define   NV40TCL_VTX_ATTR_4UB_Z_SHIFT							16
+#define   NV40TCL_VTX_ATTR_4UB_Z_MASK							0x00ff0000
+#define   NV40TCL_VTX_ATTR_4UB_W_SHIFT							24
+#define   NV40TCL_VTX_ATTR_4UB_W_MASK							0xff000000
+#define  NV40TCL_VTX_ATTR_4I_XY(x)							(0x00001980+((x)*8))
+#define  NV40TCL_VTX_ATTR_4I_XY__SIZE							0x00000010
+#define   NV40TCL_VTX_ATTR_4I_XY_X_SHIFT						0
+#define   NV40TCL_VTX_ATTR_4I_XY_X_MASK							0x0000ffff
+#define   NV40TCL_VTX_ATTR_4I_XY_Y_SHIFT						16
+#define   NV40TCL_VTX_ATTR_4I_XY_Y_MASK							0xffff0000
+#define  NV40TCL_VTX_ATTR_4I_ZW(x)							(0x00001984+((x)*8))
+#define  NV40TCL_VTX_ATTR_4I_ZW__SIZE							0x00000010
+#define   NV40TCL_VTX_ATTR_4I_ZW_Z_SHIFT						0
+#define   NV40TCL_VTX_ATTR_4I_ZW_Z_MASK							0x0000ffff
+#define   NV40TCL_VTX_ATTR_4I_ZW_W_SHIFT						16
+#define   NV40TCL_VTX_ATTR_4I_ZW_W_MASK							0xffff0000
+#define  NV40TCL_TEX_OFFSET(x)								(0x00001a00+((x)*32))
+#define  NV40TCL_TEX_OFFSET__SIZE							0x00000010
+#define  NV40TCL_TEX_FORMAT(x)								(0x00001a04+((x)*32))
+#define  NV40TCL_TEX_FORMAT__SIZE							0x00000010
+#define   NV40TCL_TEX_FORMAT_MIPMAP_COUNT_SHIFT						16
+#define   NV40TCL_TEX_FORMAT_MIPMAP_COUNT_MASK						0x000f0000
+#define   NV40TCL_TEX_FORMAT_RECT							(1 << 14)
+#define   NV40TCL_TEX_FORMAT_LINEAR							(1 << 13)
+#define   NV40TCL_TEX_FORMAT_FORMAT_SHIFT						8
+#define   NV40TCL_TEX_FORMAT_FORMAT_MASK						0x00001f00
+#define    NV40TCL_TEX_FORMAT_FORMAT_L8							0x00000100
+#define    NV40TCL_TEX_FORMAT_FORMAT_A1R5G5B5						0x00000200
+#define    NV40TCL_TEX_FORMAT_FORMAT_A4R4G4B4						0x00000300
+#define    NV40TCL_TEX_FORMAT_FORMAT_R5G6B5						0x00000400
+#define    NV40TCL_TEX_FORMAT_FORMAT_A8R8G8B8						0x00000500
+#define    NV40TCL_TEX_FORMAT_FORMAT_DXT1						0x00000600
+#define    NV40TCL_TEX_FORMAT_FORMAT_DXT3						0x00000700
+#define    NV40TCL_TEX_FORMAT_FORMAT_DXT5						0x00000800
+#define    NV40TCL_TEX_FORMAT_FORMAT_A8L8						0x00000b00
+#define    NV40TCL_TEX_FORMAT_FORMAT_Z24						0x00001000
+#define    NV40TCL_TEX_FORMAT_FORMAT_Z16						0x00001200
+#define    NV40TCL_TEX_FORMAT_FORMAT_A16						0x00001400
+#define    NV40TCL_TEX_FORMAT_FORMAT_A16L16						0x00001500
+#define    NV40TCL_TEX_FORMAT_FORMAT_HILO8						0x00001800
+#define    NV40TCL_TEX_FORMAT_FORMAT_RGBA16F						0x00001a00
+#define    NV40TCL_TEX_FORMAT_FORMAT_RGBA32F						0x00001b00
+#define   NV40TCL_TEX_FORMAT_DIMS_SHIFT							4
+#define   NV40TCL_TEX_FORMAT_DIMS_MASK							0x000000f0
+#define    NV40TCL_TEX_FORMAT_DIMS_1D							0x00000010
+#define    NV40TCL_TEX_FORMAT_DIMS_2D							0x00000020
+#define    NV40TCL_TEX_FORMAT_DIMS_3D							0x00000030
+#define   NV40TCL_TEX_FORMAT_NO_BORDER							(1 <<  3)
+#define   NV40TCL_TEX_FORMAT_CUBIC							(1 <<  2)
+#define   NV40TCL_TEX_FORMAT_DMA1							(1 <<  1)
+#define   NV40TCL_TEX_FORMAT_DMA0							(1 <<  0)
+#define  NV40TCL_TEX_WRAP(x)								(0x00001a08+((x)*32))
+#define  NV40TCL_TEX_WRAP__SIZE								0x00000010
+#define   NV40TCL_TEX_WRAP_S_SHIFT							0
+#define   NV40TCL_TEX_WRAP_S_MASK							0x0000000f
+#define    NV40TCL_TEX_WRAP_S_REPEAT							0x00000001
+#define    NV40TCL_TEX_WRAP_S_MIRRORED_REPEAT						0x00000002
+#define    NV40TCL_TEX_WRAP_S_CLAMP_TO_EDGE						0x00000003
+#define    NV40TCL_TEX_WRAP_S_CLAMP_TO_BORDER						0x00000004
+#define    NV40TCL_TEX_WRAP_S_CLAMP							0x00000005
+#define    NV40TCL_TEX_WRAP_S_MIRROR_CLAMP_TO_EDGE					0x00000006
+#define    NV40TCL_TEX_WRAP_S_MIRROR_CLAMP_TO_BORDER					0x00000007
+#define    NV40TCL_TEX_WRAP_S_MIRROR_CLAMP						0x00000008
+#define   NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_SHIFT				4
+#define   NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_MASK				0x00000070
+#define    NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_OFF				0x00000000
+#define    NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_QUALITY			0x00000020
+#define    NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_PERFORMANCE			0x00000030
+#define    NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_HIGH_PERFORMANCE		0x00000070
+#define   NV40TCL_TEX_WRAP_T_SHIFT							8
+#define   NV40TCL_TEX_WRAP_T_MASK							0x00000f00
+#define    NV40TCL_TEX_WRAP_T_REPEAT							0x00000100
+#define    NV40TCL_TEX_WRAP_T_MIRRORED_REPEAT						0x00000200
+#define    NV40TCL_TEX_WRAP_T_CLAMP_TO_EDGE						0x00000300
+#define    NV40TCL_TEX_WRAP_T_CLAMP_TO_BORDER						0x00000400
+#define    NV40TCL_TEX_WRAP_T_CLAMP							0x00000500
+#define    NV40TCL_TEX_WRAP_T_MIRROR_CLAMP_TO_EDGE					0x00000600
+#define    NV40TCL_TEX_WRAP_T_MIRROR_CLAMP_TO_BORDER					0x00000700
+#define    NV40TCL_TEX_WRAP_T_MIRROR_CLAMP						0x00000800
+#define   NV40TCL_TEX_WRAP_EXPAND_NORMAL_SHIFT						12
+#define   NV40TCL_TEX_WRAP_EXPAND_NORMAL_MASK						0x0000f000
+#define   NV40TCL_TEX_WRAP_R_SHIFT							16
+#define   NV40TCL_TEX_WRAP_R_MASK							0x000f0000
+#define    NV40TCL_TEX_WRAP_R_REPEAT							0x00010000
+#define    NV40TCL_TEX_WRAP_R_MIRRORED_REPEAT						0x00020000
+#define    NV40TCL_TEX_WRAP_R_CLAMP_TO_EDGE						0x00030000
+#define    NV40TCL_TEX_WRAP_R_CLAMP_TO_BORDER						0x00040000
+#define    NV40TCL_TEX_WRAP_R_CLAMP							0x00050000
+#define    NV40TCL_TEX_WRAP_R_MIRROR_CLAMP_TO_EDGE					0x00060000
+#define    NV40TCL_TEX_WRAP_R_MIRROR_CLAMP_TO_BORDER					0x00070000
+#define    NV40TCL_TEX_WRAP_R_MIRROR_CLAMP						0x00080000
+#define   NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_SHIFT					20
+#define   NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_MASK					0x00f00000
+#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_NONE					0x00000000
+#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_RED					0x00100000
+#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_GREEN					0x00200000
+#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_BLUE					0x00400000
+#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_ALL					0x00f00000
+#define   NV40TCL_TEX_WRAP_RCOMP_SHIFT							28
+#define   NV40TCL_TEX_WRAP_RCOMP_MASK							0xf0000000
+#define    NV40TCL_TEX_WRAP_RCOMP_NEVER							0x00000000
+#define    NV40TCL_TEX_WRAP_RCOMP_GREATER						0x10000000
+#define    NV40TCL_TEX_WRAP_RCOMP_EQUAL							0x20000000
+#define    NV40TCL_TEX_WRAP_RCOMP_GEQUAL						0x30000000
+#define    NV40TCL_TEX_WRAP_RCOMP_LESS							0x40000000
+#define    NV40TCL_TEX_WRAP_RCOMP_NOTEQUAL						0x50000000
+#define    NV40TCL_TEX_WRAP_RCOMP_LEQUAL						0x60000000
+#define    NV40TCL_TEX_WRAP_RCOMP_ALWAYS						0x70000000
+#define  NV40TCL_TEX_ENABLE(x)								(0x00001a0c+((x)*32))
+#define  NV40TCL_TEX_ENABLE__SIZE							0x00000010
+#define   NV40TCL_TEX_ENABLE_ENABLE							(1 << 31)
+#define   NV40TCL_TEX_ENABLE_MIPMAP_MIN_LOD_SHIFT					27
+#define   NV40TCL_TEX_ENABLE_MIPMAP_MIN_LOD_MASK					0x38000000
+#define   NV40TCL_TEX_ENABLE_MIPMAP_MAX_LOD_SHIFT					15
+#define   NV40TCL_TEX_ENABLE_MIPMAP_MAX_LOD_MASK					0x00038000
+#define   NV40TCL_TEX_ENABLE_ANISO_SHIFT						4
+#define   NV40TCL_TEX_ENABLE_ANISO_MASK							0x000000f0
+#define    NV40TCL_TEX_ENABLE_ANISO_NONE						0x00000000
+#define    NV40TCL_TEX_ENABLE_ANISO_2X							0x00000010
+#define    NV40TCL_TEX_ENABLE_ANISO_4X							0x00000020
+#define    NV40TCL_TEX_ENABLE_ANISO_6X							0x00000030
+#define    NV40TCL_TEX_ENABLE_ANISO_8X							0x00000040
+#define    NV40TCL_TEX_ENABLE_ANISO_10X							0x00000050
+#define    NV40TCL_TEX_ENABLE_ANISO_12X							0x00000060
+#define    NV40TCL_TEX_ENABLE_ANISO_16X							0x00000070
+#define  NV40TCL_TEX_SWIZZLE(x)								(0x00001a10+((x)*32))
+#define  NV40TCL_TEX_SWIZZLE__SIZE							0x00000010
+#define   NV40TCL_TEX_SWIZZLE_S0_X_SHIFT						14
+#define   NV40TCL_TEX_SWIZZLE_S0_X_MASK							0x0000c000
+#define    NV40TCL_TEX_SWIZZLE_S0_X_ZERO						0x00000000
+#define    NV40TCL_TEX_SWIZZLE_S0_X_ONE							0x00004000
+#define    NV40TCL_TEX_SWIZZLE_S0_X_S1							0x00008000
+#define   NV40TCL_TEX_SWIZZLE_S0_Y_SHIFT						12
+#define   NV40TCL_TEX_SWIZZLE_S0_Y_MASK							0x00003000
+#define    NV40TCL_TEX_SWIZZLE_S0_Y_ZERO						0x00000000
+#define    NV40TCL_TEX_SWIZZLE_S0_Y_ONE							0x00001000
+#define    NV40TCL_TEX_SWIZZLE_S0_Y_S1							0x00002000
+#define   NV40TCL_TEX_SWIZZLE_S0_Z_SHIFT						10
+#define   NV40TCL_TEX_SWIZZLE_S0_Z_MASK							0x00000c00
+#define    NV40TCL_TEX_SWIZZLE_S0_Z_ZERO						0x00000000
+#define    NV40TCL_TEX_SWIZZLE_S0_Z_ONE							0x00000400
+#define    NV40TCL_TEX_SWIZZLE_S0_Z_S1							0x00000800
+#define   NV40TCL_TEX_SWIZZLE_S0_W_SHIFT						8
+#define   NV40TCL_TEX_SWIZZLE_S0_W_MASK							0x00000300
+#define    NV40TCL_TEX_SWIZZLE_S0_W_ZERO						0x00000000
+#define    NV40TCL_TEX_SWIZZLE_S0_W_ONE							0x00000100
+#define    NV40TCL_TEX_SWIZZLE_S0_W_S1							0x00000200
+#define   NV40TCL_TEX_SWIZZLE_S1_X_SHIFT						6
+#define   NV40TCL_TEX_SWIZZLE_S1_X_MASK							0x000000c0
+#define    NV40TCL_TEX_SWIZZLE_S1_X_W							0x00000000
+#define    NV40TCL_TEX_SWIZZLE_S1_X_Z							0x00000040
+#define    NV40TCL_TEX_SWIZZLE_S1_X_Y							0x00000080
+#define    NV40TCL_TEX_SWIZZLE_S1_X_X							0x000000c0
+#define   NV40TCL_TEX_SWIZZLE_S1_Y_SHIFT						4
+#define   NV40TCL_TEX_SWIZZLE_S1_Y_MASK							0x00000030
+#define    NV40TCL_TEX_SWIZZLE_S1_Y_W							0x00000000
+#define    NV40TCL_TEX_SWIZZLE_S1_Y_Z							0x00000010
+#define    NV40TCL_TEX_SWIZZLE_S1_Y_Y							0x00000020
+#define    NV40TCL_TEX_SWIZZLE_S1_Y_X							0x00000030
+#define   NV40TCL_TEX_SWIZZLE_S1_Z_SHIFT						2
+#define   NV40TCL_TEX_SWIZZLE_S1_Z_MASK							0x0000000c
+#define    NV40TCL_TEX_SWIZZLE_S1_Z_W							0x00000000
+#define    NV40TCL_TEX_SWIZZLE_S1_Z_Z							0x00000004
+#define    NV40TCL_TEX_SWIZZLE_S1_Z_Y							0x00000008
+#define    NV40TCL_TEX_SWIZZLE_S1_Z_X							0x0000000c
+#define   NV40TCL_TEX_SWIZZLE_S1_W_SHIFT						0
+#define   NV40TCL_TEX_SWIZZLE_S1_W_MASK							0x00000003
+#define    NV40TCL_TEX_SWIZZLE_S1_W_W							0x00000000
+#define    NV40TCL_TEX_SWIZZLE_S1_W_Z							0x00000001
+#define    NV40TCL_TEX_SWIZZLE_S1_W_Y							0x00000002
+#define    NV40TCL_TEX_SWIZZLE_S1_W_X							0x00000003
+#define  NV40TCL_TEX_FILTER(x)								(0x00001a14+((x)*32))
+#define  NV40TCL_TEX_FILTER__SIZE							0x00000010
+#define   NV40TCL_TEX_FILTER_SIGNED_ALPHA						(1 << 31)
+#define   NV40TCL_TEX_FILTER_SIGNED_RED							(1 << 30)
+#define   NV40TCL_TEX_FILTER_SIGNED_GREEN						(1 << 29)
+#define   NV40TCL_TEX_FILTER_SIGNED_BLUE						(1 << 28)
+#define   NV40TCL_TEX_FILTER_MIN_SHIFT							16
+#define   NV40TCL_TEX_FILTER_MIN_MASK							0x000f0000
+#define    NV40TCL_TEX_FILTER_MIN_NEAREST						0x00010000
+#define    NV40TCL_TEX_FILTER_MIN_LINEAR						0x00020000
+#define    NV40TCL_TEX_FILTER_MIN_NEAREST_MIPMAP_NEAREST				0x00030000
+#define    NV40TCL_TEX_FILTER_MIN_LINEAR_MIPMAP_NEAREST					0x00040000
+#define    NV40TCL_TEX_FILTER_MIN_NEAREST_MIPMAP_LINEAR					0x00050000
+#define    NV40TCL_TEX_FILTER_MIN_LINEAR_MIPMAP_LINEAR					0x00060000
+#define   NV40TCL_TEX_FILTER_MAG_SHIFT							24
+#define   NV40TCL_TEX_FILTER_MAG_MASK							0x0f000000
+#define    NV40TCL_TEX_FILTER_MAG_NEAREST						0x01000000
+#define    NV40TCL_TEX_FILTER_MAG_LINEAR						0x02000000
+#define  NV40TCL_TEX_SIZE0(x)								(0x00001a18+((x)*32))
+#define  NV40TCL_TEX_SIZE0__SIZE							0x00000010
+#define   NV40TCL_TEX_SIZE0_H_SHIFT							0
+#define   NV40TCL_TEX_SIZE0_H_MASK							0x0000ffff
+#define   NV40TCL_TEX_SIZE0_W_SHIFT							16
+#define   NV40TCL_TEX_SIZE0_W_MASK							0xffff0000
+#define  NV40TCL_TEX_BORDER_COLOR(x)							(0x00001a1c+((x)*32))
+#define  NV40TCL_TEX_BORDER_COLOR__SIZE							0x00000010
+#define   NV40TCL_TEX_BORDER_COLOR_B_SHIFT						0
+#define   NV40TCL_TEX_BORDER_COLOR_B_MASK						0x000000ff
+#define   NV40TCL_TEX_BORDER_COLOR_G_SHIFT						8
+#define   NV40TCL_TEX_BORDER_COLOR_G_MASK						0x0000ff00
+#define   NV40TCL_TEX_BORDER_COLOR_R_SHIFT						16
+#define   NV40TCL_TEX_BORDER_COLOR_R_MASK						0x00ff0000
+#define   NV40TCL_TEX_BORDER_COLOR_A_SHIFT						24
+#define   NV40TCL_TEX_BORDER_COLOR_A_MASK						0xff000000
+#define  NV40TCL_VTX_ATTR_4F_X(x)							(0x00001c00+((x)*16))
+#define  NV40TCL_VTX_ATTR_4F_X__SIZE							0x00000010
+#define  NV40TCL_VTX_ATTR_4F_Y(x)							(0x00001c04+((x)*16))
+#define  NV40TCL_VTX_ATTR_4F_Y__SIZE							0x00000010
+#define  NV40TCL_VTX_ATTR_4F_Z(x)							(0x00001c08+((x)*16))
+#define  NV40TCL_VTX_ATTR_4F_Z__SIZE							0x00000010
+#define  NV40TCL_VTX_ATTR_4F_W(x)							(0x00001c0c+((x)*16))
+#define  NV40TCL_VTX_ATTR_4F_W__SIZE							0x00000010
+#define  NV40TCL_FP_CONTROL								0x00001d60
+#define   NV40TCL_FP_CONTROL_TEMP_COUNT_SHIFT						24
+#define   NV40TCL_FP_CONTROL_TEMP_COUNT_MASK						0xff000000
+#define   NV40TCL_FP_CONTROL_KIL							(1 <<  7)
+#define  NV40TCL_MULTISAMPLE_CONTROL							0x00001d7c
+#define  NV40TCL_CLEAR_VALUE_DEPTH							0x00001d8c
+#define  NV40TCL_CLEAR_VALUE_COLOR							0x00001d90
+#define   NV40TCL_CLEAR_VALUE_COLOR_B_SHIFT						0
+#define   NV40TCL_CLEAR_VALUE_COLOR_B_MASK						0x000000ff
+#define   NV40TCL_CLEAR_VALUE_COLOR_G_SHIFT						8
+#define   NV40TCL_CLEAR_VALUE_COLOR_G_MASK						0x0000ff00
+#define   NV40TCL_CLEAR_VALUE_COLOR_R_SHIFT						16
+#define   NV40TCL_CLEAR_VALUE_COLOR_R_MASK						0x00ff0000
+#define   NV40TCL_CLEAR_VALUE_COLOR_A_SHIFT						24
+#define   NV40TCL_CLEAR_VALUE_COLOR_A_MASK						0xff000000
+#define  NV40TCL_CLEAR_BUFFERS								0x00001d94
+#define   NV40TCL_CLEAR_BUFFERS_COLOR_A							(1 <<  7)
+#define   NV40TCL_CLEAR_BUFFERS_COLOR_B							(1 <<  6)
+#define   NV40TCL_CLEAR_BUFFERS_COLOR_G							(1 <<  5)
+#define   NV40TCL_CLEAR_BUFFERS_COLOR_R							(1 <<  4)
+#define   NV40TCL_CLEAR_BUFFERS_STENCIL							(1 <<  1)
+#define   NV40TCL_CLEAR_BUFFERS_DEPTH							(1 <<  0)
+#define  NV40TCL_LINE_STIPPLE_ENABLE							0x00001db4
+#define  NV40TCL_LINE_STIPPLE_PATTERN							0x00001db8
+#define   NV40TCL_LINE_STIPPLE_PATTERN_FACTOR_SHIFT					0
+#define   NV40TCL_LINE_STIPPLE_PATTERN_FACTOR_MASK					0x0000ffff
+#define   NV40TCL_LINE_STIPPLE_PATTERN_PATTERN_SHIFT					16
+#define   NV40TCL_LINE_STIPPLE_PATTERN_PATTERN_MASK					0xffff0000
+#define  NV40TCL_VTX_ATTR_1F(x)								(0x00001e40+((x)*4))
+#define  NV40TCL_VTX_ATTR_1F__SIZE							0x00000010
+#define  NV40TCL_VP_UPLOAD_FROM_ID							0x00001e9c
+#define  NV40TCL_VP_START_FROM_ID							0x00001ea0
+#define  NV40TCL_POINT_SIZE								0x00001ee0
+#define  NV40TCL_POINT_SPRITE								0x00001ee8
+#define   NV40TCL_POINT_SPRITE_ENABLE							(1 <<  0)
+#define   NV40TCL_POINT_SPRITE_R_MODE_SHIFT						1
+#define   NV40TCL_POINT_SPRITE_R_MODE_MASK						0x00000006
+#define    NV40TCL_POINT_SPRITE_R_MODE_ZERO						0x00000000
+#define    NV40TCL_POINT_SPRITE_R_MODE_R						0x00000002
+#define    NV40TCL_POINT_SPRITE_R_MODE_S						0x00000004
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_0						(1 <<  8)
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_1						(1 <<  9)
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_2						(1 << 10)
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_3						(1 << 11)
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_4						(1 << 12)
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_5						(1 << 13)
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_6						(1 << 14)
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_7						(1 << 15)
+#define  NV40TCL_VP_UPLOAD_CONST_ID							0x00001efc
+#define  NV40TCL_VP_UPLOAD_CONST_X(x)							(0x00001f00+((x)*16))
+#define  NV40TCL_VP_UPLOAD_CONST_X__SIZE						0x00000004
+#define  NV40TCL_VP_UPLOAD_CONST_Y(x)							(0x00001f04+((x)*16))
+#define  NV40TCL_VP_UPLOAD_CONST_Y__SIZE						0x00000004
+#define  NV40TCL_VP_UPLOAD_CONST_Z(x)							(0x00001f08+((x)*16))
+#define  NV40TCL_VP_UPLOAD_CONST_Z__SIZE						0x00000004
+#define  NV40TCL_VP_UPLOAD_CONST_W(x)							(0x00001f0c+((x)*16))
+#define  NV40TCL_VP_UPLOAD_CONST_W__SIZE						0x00000004
+#define  NV40TCL_TEX_CACHE_CTL								0x00001fd8
+#define  NV40TCL_VP_ATTRIB_EN								0x00001ff0
+#define  NV40TCL_VP_RESULT_EN								0x00001ff4
+
+
+#define NV44TCL										0x00004497
+
+
+
+#define NV50_2D										0x0000502d
+
+#define  NV50_2D_NOP									0x00000100
+#define  NV50_2D_NOTIFY									0x00000104
+#define  NV50_2D_SERIALIZE								0x00000110
+#define  NV50_2D_DMA_NOTIFY								0x00000180
+#define  NV50_2D_DMA_DST								0x00000184
+#define  NV50_2D_DMA_SRC								0x00000188
+#define  NV50_2D_DMA_COND								0x0000018c
+#define  NV50_2D_DST_FORMAT								0x00000200
+#define   NV50_2D_DST_FORMAT_R32G32B32A32_FLOAT						0x000000c0
+#define   NV50_2D_DST_FORMAT_R32G32B32A32_SINT						0x000000c1
+#define   NV50_2D_DST_FORMAT_R32G32B32A32_UINT						0x000000c2
+#define   NV50_2D_DST_FORMAT_R32G32B32X32_FLOAT						0x000000c3
+#define   NV50_2D_DST_FORMAT_R16G16B16A16_UNORM						0x000000c6
+#define   NV50_2D_DST_FORMAT_R16G16B16A16_SNORM						0x000000c7
+#define   NV50_2D_DST_FORMAT_R16G16B16A16_SINT						0x000000c8
+#define   NV50_2D_DST_FORMAT_R16G16B16A16_UINT						0x000000c9
+#define   NV50_2D_DST_FORMAT_R16G16B16A16_FLOAT						0x000000ca
+#define   NV50_2D_DST_FORMAT_R32G32_FLOAT						0x000000cb
+#define   NV50_2D_DST_FORMAT_R32G32_SINT						0x000000cc
+#define   NV50_2D_DST_FORMAT_R32G32_UINT						0x000000cd
+#define   NV50_2D_DST_FORMAT_R16G16B16X16_FLOAT						0x000000ce
+#define   NV50_2D_DST_FORMAT_A8R8G8B8_UNORM						0x000000cf
+#define   NV50_2D_DST_FORMAT_A8R8G8B8_SRGB						0x000000d0
+#define   NV50_2D_DST_FORMAT_A2B10G10R10_UNORM						0x000000d1
+#define   NV50_2D_DST_FORMAT_A2B10G10R10_UINT						0x000000d2
+#define   NV50_2D_DST_FORMAT_A8B8G8R8_UNORM						0x000000d5
+#define   NV50_2D_DST_FORMAT_A8B8G8R8_SRGB						0x000000d6
+#define   NV50_2D_DST_FORMAT_A8B8G8R8_SNORM						0x000000d7
+#define   NV50_2D_DST_FORMAT_A8B8G8R8_SINT						0x000000d8
+#define   NV50_2D_DST_FORMAT_A8B8G8R8_UINT						0x000000d9
+#define   NV50_2D_DST_FORMAT_R16G16_UNORM						0x000000da
+#define   NV50_2D_DST_FORMAT_R16G16_SNORM						0x000000db
+#define   NV50_2D_DST_FORMAT_R16G16_SINT						0x000000dc
+#define   NV50_2D_DST_FORMAT_R16G16_UINT						0x000000dd
+#define   NV50_2D_DST_FORMAT_R16G16_FLOAT						0x000000de
+#define   NV50_2D_DST_FORMAT_A2R10G10B10_UNORM						0x000000df
+#define   NV50_2D_DST_FORMAT_B10G11R11_FLOAT						0x000000e0
+#define   NV50_2D_DST_FORMAT_R32_FLOAT							0x000000e5
+#define   NV50_2D_DST_FORMAT_X8R8G8B8_UNORM						0x000000e6
+#define   NV50_2D_DST_FORMAT_X8R8G8B8_SRGB						0x000000e7
+#define   NV50_2D_DST_FORMAT_R5G6B5_UNORM						0x000000e8
+#define   NV50_2D_DST_FORMAT_A1R5G5B5_UNORM						0x000000e9
+#define   NV50_2D_DST_FORMAT_R8G8_UNORM							0x000000ea
+#define   NV50_2D_DST_FORMAT_R8G8_SNORM							0x000000eb
+#define   NV50_2D_DST_FORMAT_R8G8_SINT							0x000000ec
+#define   NV50_2D_DST_FORMAT_R8G8_UINT							0x000000ed
+#define   NV50_2D_DST_FORMAT_R16_UNORM							0x000000ee
+#define   NV50_2D_DST_FORMAT_R16_SNORM							0x000000ef
+#define   NV50_2D_DST_FORMAT_R16_SINT							0x000000f0
+#define   NV50_2D_DST_FORMAT_R16_UINT							0x000000f1
+#define   NV50_2D_DST_FORMAT_R16_FLOAT							0x000000f2
+#define   NV50_2D_DST_FORMAT_R8_UNORM							0x000000f3
+#define   NV50_2D_DST_FORMAT_R8_SNORM							0x000000f4
+#define   NV50_2D_DST_FORMAT_R8_SINT							0x000000f5
+#define   NV50_2D_DST_FORMAT_R8_UINT							0x000000f6
+#define   NV50_2D_DST_FORMAT_A8_UNORM							0x000000f7
+#define   NV50_2D_DST_FORMAT_X1R5G5B5_UNORM						0x000000f8
+#define   NV50_2D_DST_FORMAT_X8B8G8R8_UNORM						0x000000f9
+#define   NV50_2D_DST_FORMAT_X8B8G8R8_SRGB						0x000000fa
+#define  NV50_2D_DST_LINEAR								0x00000204
+#define  NV50_2D_DST_TILE_MODE								0x00000208
+#define  NV50_2D_DST_DEPTH								0x0000020c
+#define  NV50_2D_DST_LAYER								0x00000210
+#define  NV50_2D_DST_PITCH								0x00000214
+#define  NV50_2D_DST_WIDTH								0x00000218
+#define  NV50_2D_DST_HEIGHT								0x0000021c
+#define  NV50_2D_DST_ADDRESS_HIGH							0x00000220
+#define  NV50_2D_DST_ADDRESS_LOW							0x00000224
+#define  NV50_2D_SRC_FORMAT								0x00000230
+#define   NV50_2D_SRC_FORMAT_R32G32B32A32_FLOAT						0x000000c0
+#define   NV50_2D_SRC_FORMAT_R32G32B32A32_SINT						0x000000c1
+#define   NV50_2D_SRC_FORMAT_R32G32B32A32_UINT						0x000000c2
+#define   NV50_2D_SRC_FORMAT_R32G32B32X32_FLOAT						0x000000c3
+#define   NV50_2D_SRC_FORMAT_R16G16B16A16_UNORM						0x000000c6
+#define   NV50_2D_SRC_FORMAT_R16G16B16A16_SNORM						0x000000c7
+#define   NV50_2D_SRC_FORMAT_R16G16B16A16_SINT						0x000000c8
+#define   NV50_2D_SRC_FORMAT_R16G16B16A16_UINT						0x000000c9
+#define   NV50_2D_SRC_FORMAT_R16G16B16A16_FLOAT						0x000000ca
+#define   NV50_2D_SRC_FORMAT_R32G32_FLOAT						0x000000cb
+#define   NV50_2D_SRC_FORMAT_R32G32_SINT						0x000000cc
+#define   NV50_2D_SRC_FORMAT_R32G32_UINT						0x000000cd
+#define   NV50_2D_SRC_FORMAT_R16G16B16X16_FLOAT						0x000000ce
+#define   NV50_2D_SRC_FORMAT_A8R8G8B8_UNORM						0x000000cf
+#define   NV50_2D_SRC_FORMAT_A8R8G8B8_SRGB						0x000000d0
+#define   NV50_2D_SRC_FORMAT_A2B10G10R10_UNORM						0x000000d1
+#define   NV50_2D_SRC_FORMAT_A2B10G10R10_UINT						0x000000d2
+#define   NV50_2D_SRC_FORMAT_A8B8G8R8_UNORM						0x000000d5
+#define   NV50_2D_SRC_FORMAT_A8B8G8R8_SRGB						0x000000d6
+#define   NV50_2D_SRC_FORMAT_A8B8G8R8_SNORM						0x000000d7
+#define   NV50_2D_SRC_FORMAT_A8B8G8R8_SINT						0x000000d8
+#define   NV50_2D_SRC_FORMAT_A8B8G8R8_UINT						0x000000d9
+#define   NV50_2D_SRC_FORMAT_R16G16_UNORM						0x000000da
+#define   NV50_2D_SRC_FORMAT_R16G16_SNORM						0x000000db
+#define   NV50_2D_SRC_FORMAT_R16G16_SINT						0x000000dc
+#define   NV50_2D_SRC_FORMAT_R16G16_UINT						0x000000dd
+#define   NV50_2D_SRC_FORMAT_R16G16_FLOAT						0x000000de
+#define   NV50_2D_SRC_FORMAT_A2R10G10B10_UNORM						0x000000df
+#define   NV50_2D_SRC_FORMAT_B10G11R11_FLOAT						0x000000e0
+#define   NV50_2D_SRC_FORMAT_R32_FLOAT							0x000000e5
+#define   NV50_2D_SRC_FORMAT_X8R8G8B8_UNORM						0x000000e6
+#define   NV50_2D_SRC_FORMAT_X8R8G8B8_SRGB						0x000000e7
+#define   NV50_2D_SRC_FORMAT_R5G6B5_UNORM						0x000000e8
+#define   NV50_2D_SRC_FORMAT_A1R5G5B5_UNORM						0x000000e9
+#define   NV50_2D_SRC_FORMAT_R8G8_UNORM							0x000000ea
+#define   NV50_2D_SRC_FORMAT_R8G8_SNORM							0x000000eb
+#define   NV50_2D_SRC_FORMAT_R8G8_SINT							0x000000ec
+#define   NV50_2D_SRC_FORMAT_R8G8_UINT							0x000000ed
+#define   NV50_2D_SRC_FORMAT_R16_UNORM							0x000000ee
+#define   NV50_2D_SRC_FORMAT_R16_SNORM							0x000000ef
+#define   NV50_2D_SRC_FORMAT_R16_SINT							0x000000f0
+#define   NV50_2D_SRC_FORMAT_R16_UINT							0x000000f1
+#define   NV50_2D_SRC_FORMAT_R16_FLOAT							0x000000f2
+#define   NV50_2D_SRC_FORMAT_R8_UNORM							0x000000f3
+#define   NV50_2D_SRC_FORMAT_R8_SNORM							0x000000f4
+#define   NV50_2D_SRC_FORMAT_R8_SINT							0x000000f5
+#define   NV50_2D_SRC_FORMAT_R8_UINT							0x000000f6
+#define   NV50_2D_SRC_FORMAT_A8_UNORM							0x000000f7
+#define   NV50_2D_SRC_FORMAT_X1R5G5B5_UNORM						0x000000f8
+#define   NV50_2D_SRC_FORMAT_X8B8G8R8_UNORM						0x000000f9
+#define   NV50_2D_SRC_FORMAT_X8B8G8R8_SRGB						0x000000fa
+#define  NV50_2D_SRC_LINEAR								0x00000234
+#define  NV50_2D_SRC_TILE_MODE								0x00000238
+#define  NV50_2D_SRC_DEPTH								0x0000023c
+#define  NV50_2D_SRC_LAYER								0x00000240
+#define  NV50_2D_SRC_PITCH								0x00000244
+#define  NV50_2D_SRC_WIDTH								0x00000248
+#define  NV50_2D_SRC_HEIGHT								0x0000024c
+#define  NV50_2D_SRC_ADDRESS_HIGH							0x00000250
+#define  NV50_2D_SRC_ADDRESS_LOW							0x00000254
+#define  NV50_2D_COND_ADDRESS_HIGH							0x00000264
+#define  NV50_2D_COND_ADDRESS_LOW							0x00000268
+#define  NV50_2D_COND_MODE								0x0000026c
+#define   NV50_2D_COND_MODE_NEVER							0x00000000
+#define   NV50_2D_COND_MODE_ALWAYS							0x00000001
+#define   NV50_2D_COND_MODE_RES								0x00000002
+#define   NV50_2D_COND_MODE_NOT_RES_AND_NOT_ID						0x00000003
+#define   NV50_2D_COND_MODE_RES_OR_ID							0x00000004
+#define  NV50_2D_CLIP_X									0x00000280
+#define  NV50_2D_CLIP_Y									0x00000284
+#define  NV50_2D_CLIP_W									0x00000288
+#define  NV50_2D_CLIP_H									0x0000028c
+#define  NV50_2D_CLIP_ENABLE								0x00000290
+#define  NV50_2D_COLOR_KEY_FORMAT							0x00000294
+#define   NV50_2D_COLOR_KEY_FORMAT_16BPP						0x00000000
+#define   NV50_2D_COLOR_KEY_FORMAT_15BPP						0x00000001
+#define   NV50_2D_COLOR_KEY_FORMAT_24BPP						0x00000002
+#define   NV50_2D_COLOR_KEY_FORMAT_30BPP						0x00000003
+#define   NV50_2D_COLOR_KEY_FORMAT_8BPP							0x00000004
+#define   NV50_2D_COLOR_KEY_FORMAT_16BPP2						0x00000005
+#define   NV50_2D_COLOR_KEY_FORMAT_32BPP						0x00000006
+#define  NV50_2D_COLOR_KEY								0x00000298
+#define  NV50_2D_COLOR_KEY_ENABLE							0x0000029c
+#define  NV50_2D_ROP									0x000002a0
+#define  NV50_2D_OPERATION								0x000002ac
+#define   NV50_2D_OPERATION_SRCCOPY_AND							0x00000000
+#define   NV50_2D_OPERATION_ROP_AND							0x00000001
+#define   NV50_2D_OPERATION_BLEND_AND							0x00000002
+#define   NV50_2D_OPERATION_SRCCOPY							0x00000003
+#define   NV50_2D_OPERATION_SRCCOPY_PREMULT						0x00000004
+#define   NV50_2D_OPERATION_BLEND_PREMULT						0x00000005
+#define  NV50_2D_PATTERN_FORMAT								0x000002e8
+#define   NV50_2D_PATTERN_FORMAT_16BPP							0x00000000
+#define   NV50_2D_PATTERN_FORMAT_15BPP							0x00000001
+#define   NV50_2D_PATTERN_FORMAT_32BPP							0x00000002
+#define   NV50_2D_PATTERN_FORMAT_8BPP							0x00000003
+#define  NV50_2D_PATTERN_COLOR(x)							(0x000002f0+((x)*4))
+#define  NV50_2D_PATTERN_COLOR__SIZE							0x00000002
+#define  NV50_2D_PATTERN_BITMAP(x)							(0x000002f8+((x)*4))
+#define  NV50_2D_PATTERN_BITMAP__SIZE							0x00000002
+#define  NV50_2D_DRAW_SHAPE								0x00000580
+#define   NV50_2D_DRAW_SHAPE_POINTS							0x00000000
+#define   NV50_2D_DRAW_SHAPE_LINES							0x00000001
+#define   NV50_2D_DRAW_SHAPE_LINE_STRIP							0x00000002
+#define   NV50_2D_DRAW_SHAPE_TRIANGLES							0x00000003
+#define   NV50_2D_DRAW_SHAPE_RECTANGLES							0x00000004
+#define  NV50_2D_DRAW_COLOR_FORMAT							0x00000584
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_FLOAT					0x000000c0
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_SINT					0x000000c1
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_UINT					0x000000c2
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32X32_FLOAT					0x000000c3
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_UNORM					0x000000c6
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_SNORM					0x000000c7
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_SINT					0x000000c8
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_UINT					0x000000c9
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_FLOAT					0x000000ca
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32_FLOAT					0x000000cb
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32_SINT						0x000000cc
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32_UINT						0x000000cd
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16X16_FLOAT					0x000000ce
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8R8G8B8_UNORM					0x000000cf
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8R8G8B8_SRGB					0x000000d0
+#define   NV50_2D_DRAW_COLOR_FORMAT_A2B10G10R10_UNORM					0x000000d1
+#define   NV50_2D_DRAW_COLOR_FORMAT_A2B10G10R10_UINT					0x000000d2
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_UNORM					0x000000d5
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SRGB					0x000000d6
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SNORM					0x000000d7
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SINT					0x000000d8
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_UINT					0x000000d9
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_UNORM					0x000000da
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_SNORM					0x000000db
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_SINT						0x000000dc
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_UINT						0x000000dd
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_FLOAT					0x000000de
+#define   NV50_2D_DRAW_COLOR_FORMAT_A2R10G10B10_UNORM					0x000000df
+#define   NV50_2D_DRAW_COLOR_FORMAT_B10G11R11_FLOAT					0x000000e0
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32_FLOAT						0x000000e5
+#define   NV50_2D_DRAW_COLOR_FORMAT_X8R8G8B8_UNORM					0x000000e6
+#define   NV50_2D_DRAW_COLOR_FORMAT_X8R8G8B8_SRGB					0x000000e7
+#define   NV50_2D_DRAW_COLOR_FORMAT_R5G6B5_UNORM					0x000000e8
+#define   NV50_2D_DRAW_COLOR_FORMAT_A1R5G5B5_UNORM					0x000000e9
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_UNORM						0x000000ea
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_SNORM						0x000000eb
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_SINT						0x000000ec
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_UINT						0x000000ed
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_UNORM						0x000000ee
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_SNORM						0x000000ef
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_SINT						0x000000f0
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_UINT						0x000000f1
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_FLOAT						0x000000f2
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8_UNORM						0x000000f3
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8_SNORM						0x000000f4
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8_SINT						0x000000f5
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8_UINT						0x000000f6
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8_UNORM						0x000000f7
+#define   NV50_2D_DRAW_COLOR_FORMAT_X1R5G5B5_UNORM					0x000000f8
+#define   NV50_2D_DRAW_COLOR_FORMAT_X8B8G8R8_UNORM					0x000000f9
+#define   NV50_2D_DRAW_COLOR_FORMAT_X8B8G8R8_SRGB					0x000000fa
+#define  NV50_2D_DRAW_COLOR								0x00000588
+#define  NV50_2D_DRAW_POINT16								0x000005e0
+#define   NV50_2D_DRAW_POINT16_X_SHIFT							0
+#define   NV50_2D_DRAW_POINT16_X_MASK							0x0000ffff
+#define   NV50_2D_DRAW_POINT16_Y_SHIFT							16
+#define   NV50_2D_DRAW_POINT16_Y_MASK							0xffff0000
+#define  NV50_2D_DRAW_POINT32_X(x)							(0x00000600+((x)*8))
+#define  NV50_2D_DRAW_POINT32_X__SIZE							0x00000040
+#define  NV50_2D_DRAW_POINT32_Y(x)							(0x00000604+((x)*8))
+#define  NV50_2D_DRAW_POINT32_Y__SIZE							0x00000040
+#define  NV50_2D_SIFC_BITMAP_ENABLE							0x00000800
+#define  NV50_2D_SIFC_FORMAT								0x00000804
+#define   NV50_2D_SIFC_FORMAT_R32G32B32A32_FLOAT					0x000000c0
+#define   NV50_2D_SIFC_FORMAT_R32G32B32A32_SINT						0x000000c1
+#define   NV50_2D_SIFC_FORMAT_R32G32B32A32_UINT						0x000000c2
+#define   NV50_2D_SIFC_FORMAT_R32G32B32X32_FLOAT					0x000000c3
+#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_UNORM					0x000000c6
+#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_SNORM					0x000000c7
+#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_SINT						0x000000c8
+#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_UINT						0x000000c9
+#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_FLOAT					0x000000ca
+#define   NV50_2D_SIFC_FORMAT_R32G32_FLOAT						0x000000cb
+#define   NV50_2D_SIFC_FORMAT_R32G32_SINT						0x000000cc
+#define   NV50_2D_SIFC_FORMAT_R32G32_UINT						0x000000cd
+#define   NV50_2D_SIFC_FORMAT_R16G16B16X16_FLOAT					0x000000ce
+#define   NV50_2D_SIFC_FORMAT_A8R8G8B8_UNORM						0x000000cf
+#define   NV50_2D_SIFC_FORMAT_A8R8G8B8_SRGB						0x000000d0
+#define   NV50_2D_SIFC_FORMAT_A2B10G10R10_UNORM						0x000000d1
+#define   NV50_2D_SIFC_FORMAT_A2B10G10R10_UINT						0x000000d2
+#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_UNORM						0x000000d5
+#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_SRGB						0x000000d6
+#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_SNORM						0x000000d7
+#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_SINT						0x000000d8
+#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_UINT						0x000000d9
+#define   NV50_2D_SIFC_FORMAT_R16G16_UNORM						0x000000da
+#define   NV50_2D_SIFC_FORMAT_R16G16_SNORM						0x000000db
+#define   NV50_2D_SIFC_FORMAT_R16G16_SINT						0x000000dc
+#define   NV50_2D_SIFC_FORMAT_R16G16_UINT						0x000000dd
+#define   NV50_2D_SIFC_FORMAT_R16G16_FLOAT						0x000000de
+#define   NV50_2D_SIFC_FORMAT_A2R10G10B10_UNORM						0x000000df
+#define   NV50_2D_SIFC_FORMAT_B10G11R11_FLOAT						0x000000e0
+#define   NV50_2D_SIFC_FORMAT_R32_FLOAT							0x000000e5
+#define   NV50_2D_SIFC_FORMAT_X8R8G8B8_UNORM						0x000000e6
+#define   NV50_2D_SIFC_FORMAT_X8R8G8B8_SRGB						0x000000e7
+#define   NV50_2D_SIFC_FORMAT_R5G6B5_UNORM						0x000000e8
+#define   NV50_2D_SIFC_FORMAT_A1R5G5B5_UNORM						0x000000e9
+#define   NV50_2D_SIFC_FORMAT_R8G8_UNORM						0x000000ea
+#define   NV50_2D_SIFC_FORMAT_R8G8_SNORM						0x000000eb
+#define   NV50_2D_SIFC_FORMAT_R8G8_SINT							0x000000ec
+#define   NV50_2D_SIFC_FORMAT_R8G8_UINT							0x000000ed
+#define   NV50_2D_SIFC_FORMAT_R16_UNORM							0x000000ee
+#define   NV50_2D_SIFC_FORMAT_R16_SNORM							0x000000ef
+#define   NV50_2D_SIFC_FORMAT_R16_SINT							0x000000f0
+#define   NV50_2D_SIFC_FORMAT_R16_UINT							0x000000f1
+#define   NV50_2D_SIFC_FORMAT_R16_FLOAT							0x000000f2
+#define   NV50_2D_SIFC_FORMAT_R8_UNORM							0x000000f3
+#define   NV50_2D_SIFC_FORMAT_R8_SNORM							0x000000f4
+#define   NV50_2D_SIFC_FORMAT_R8_SINT							0x000000f5
+#define   NV50_2D_SIFC_FORMAT_R8_UINT							0x000000f6
+#define   NV50_2D_SIFC_FORMAT_A8_UNORM							0x000000f7
+#define   NV50_2D_SIFC_FORMAT_X1R5G5B5_UNORM						0x000000f8
+#define   NV50_2D_SIFC_FORMAT_X8B8G8R8_UNORM						0x000000f9
+#define   NV50_2D_SIFC_FORMAT_X8B8G8R8_SRGB						0x000000fa
+#define  NV50_2D_SIFC_BITMAP_UNK808							0x00000808
+#define  NV50_2D_SIFC_BITMAP_LSB_FIRST							0x0000080c
+#define  NV50_2D_SIFC_BITMAP_LINE_PACK_MODE						0x00000810
+#define   NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_PACKED					0x00000000
+#define   NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_BYTE					0x00000001
+#define   NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_WORD					0x00000002
+#define  NV50_2D_SIFC_BITMAP_COLOR_BIT0							0x00000814
+#define  NV50_2D_SIFC_BITMAP_COLOR_BIT1							0x00000818
+#define  NV50_2D_SIFC_BITMAP_WRITE_BIT0_ENABLE						0x0000081c
+#define  NV50_2D_SIFC_WIDTH								0x00000838
+#define  NV50_2D_SIFC_HEIGHT								0x0000083c
+#define  NV50_2D_SIFC_DX_DU_FRACT							0x00000840
+#define  NV50_2D_SIFC_DX_DU_INT								0x00000844
+#define  NV50_2D_SIFC_DY_DV_FRACT							0x00000848
+#define  NV50_2D_SIFC_DY_DV_INT								0x0000084c
+#define  NV50_2D_SIFC_DST_X_FRACT							0x00000850
+#define  NV50_2D_SIFC_DST_X_INT								0x00000854
+#define  NV50_2D_SIFC_DST_Y_FRACT							0x00000858
+#define  NV50_2D_SIFC_DST_Y_INT								0x0000085c
+#define  NV50_2D_SIFC_DATA								0x00000860
+#define  NV50_2D_BLIT_DST_X								0x000008b0
+#define  NV50_2D_BLIT_DST_Y								0x000008b4
+#define  NV50_2D_BLIT_DST_W								0x000008b8
+#define  NV50_2D_BLIT_DST_H								0x000008bc
+#define  NV50_2D_BLIT_DU_DX_FRACT							0x000008c0
+#define  NV50_2D_BLIT_DU_DX_INT								0x000008c4
+#define  NV50_2D_BLIT_DV_DY_FRACT							0x000008c8
+#define  NV50_2D_BLIT_DV_DY_INT								0x000008cc
+#define  NV50_2D_BLIT_SRC_X_FRACT							0x000008d0
+#define  NV50_2D_BLIT_SRC_X_INT								0x000008d4
+#define  NV50_2D_BLIT_SRC_Y_FRACT							0x000008d8
+#define  NV50_2D_BLIT_SRC_Y_INT								0x000008dc
+
+
+#define NV50TCL										0x00005097
+
+#define  NV50TCL_NOP									0x00000100
+#define  NV50TCL_NOTIFY									0x00000104
+#define  NV50TCL_SERIALIZE								0x00000110
+#define  NV50TCL_DMA_NOTIFY								0x00000180
+#define  NV50TCL_DMA_ZETA								0x00000184
+#define  NV50TCL_DMA_QUERY								0x00000188
+#define  NV50TCL_DMA_VTXBUF0								0x0000018c
+#define  NV50TCL_DMA_LOCAL								0x00000190
+#define  NV50TCL_DMA_STACK								0x00000194
+#define  NV50TCL_DMA_CODE_CB								0x00000198
+#define  NV50TCL_DMA_TSC								0x0000019c
+#define  NV50TCL_DMA_TIC								0x000001a0
+#define  NV50TCL_DMA_TEXTURE								0x000001a4
+#define  NV50TCL_DMA_STRMOUT								0x000001a8
+#define  NV50TCL_DMA_UNK01AC								0x000001ac
+#define  NV50TCL_DMA_COLOR(x)								(0x000001c0+((x)*4))
+#define  NV50TCL_DMA_COLOR__SIZE							0x00000008
+#define  NV50TCL_RT_ADDRESS_HIGH(x)							(0x00000200+((x)*32))
+#define  NV50TCL_RT_ADDRESS_HIGH__SIZE							0x00000008
+#define  NV50TCL_RT_ADDRESS_LOW(x)							(0x00000204+((x)*32))
+#define  NV50TCL_RT_ADDRESS_LOW__SIZE							0x00000008
+#define  NV50TCL_RT_FORMAT(x)								(0x00000208+((x)*32))
+#define  NV50TCL_RT_FORMAT__SIZE							0x00000008
+#define   NV50TCL_RT_FORMAT_R32G32B32A32_FLOAT						0x000000c0
+#define   NV50TCL_RT_FORMAT_R32G32B32A32_SINT						0x000000c1
+#define   NV50TCL_RT_FORMAT_R32G32B32A32_UINT						0x000000c2
+#define   NV50TCL_RT_FORMAT_R32G32B32X32_FLOAT						0x000000c3
+#define   NV50TCL_RT_FORMAT_R16G16B16A16_UNORM						0x000000c6
+#define   NV50TCL_RT_FORMAT_R16G16B16A16_SNORM						0x000000c7
+#define   NV50TCL_RT_FORMAT_R16G16B16A16_SINT						0x000000c8
+#define   NV50TCL_RT_FORMAT_R16G16B16A16_UINT						0x000000c9
+#define   NV50TCL_RT_FORMAT_R16G16B16A16_FLOAT						0x000000ca
+#define   NV50TCL_RT_FORMAT_R32G32_FLOAT						0x000000cb
+#define   NV50TCL_RT_FORMAT_R32G32_SINT							0x000000cc
+#define   NV50TCL_RT_FORMAT_R32G32_UINT							0x000000cd
+#define   NV50TCL_RT_FORMAT_R16G16B16X16_FLOAT						0x000000ce
+#define   NV50TCL_RT_FORMAT_A8R8G8B8_UNORM						0x000000cf
+#define   NV50TCL_RT_FORMAT_A8R8G8B8_SRGB						0x000000d0
+#define   NV50TCL_RT_FORMAT_A2B10G10R10_UNORM						0x000000d1
+#define   NV50TCL_RT_FORMAT_A2B10G10R10_UINT						0x000000d2
+#define   NV50TCL_RT_FORMAT_A8B8G8R8_UNORM						0x000000d5
+#define   NV50TCL_RT_FORMAT_A8B8G8R8_SRGB						0x000000d6
+#define   NV50TCL_RT_FORMAT_A8B8G8R8_SNORM						0x000000d7
+#define   NV50TCL_RT_FORMAT_A8B8G8R8_SINT						0x000000d8
+#define   NV50TCL_RT_FORMAT_A8B8G8R8_UINT						0x000000d9
+#define   NV50TCL_RT_FORMAT_R16G16_UNORM						0x000000da
+#define   NV50TCL_RT_FORMAT_R16G16_SNORM						0x000000db
+#define   NV50TCL_RT_FORMAT_R16G16_SINT							0x000000dc
+#define   NV50TCL_RT_FORMAT_R16G16_UINT							0x000000dd
+#define   NV50TCL_RT_FORMAT_R16G16_FLOAT						0x000000de
+#define   NV50TCL_RT_FORMAT_A2R10G10B10_UNORM						0x000000df
+#define   NV50TCL_RT_FORMAT_B10G11R11_FLOAT						0x000000e0
+#define   NV50TCL_RT_FORMAT_R32_FLOAT							0x000000e5
+#define   NV50TCL_RT_FORMAT_X8R8G8B8_UNORM						0x000000e6
+#define   NV50TCL_RT_FORMAT_X8R8G8B8_SRGB						0x000000e7
+#define   NV50TCL_RT_FORMAT_R5G6B5_UNORM						0x000000e8
+#define   NV50TCL_RT_FORMAT_A1R5G5B5_UNORM						0x000000e9
+#define   NV50TCL_RT_FORMAT_R8G8_UNORM							0x000000ea
+#define   NV50TCL_RT_FORMAT_R8G8_SNORM							0x000000eb
+#define   NV50TCL_RT_FORMAT_R8G8_SINT							0x000000ec
+#define   NV50TCL_RT_FORMAT_R8G8_UINT							0x000000ed
+#define   NV50TCL_RT_FORMAT_R16_UNORM							0x000000ee
+#define   NV50TCL_RT_FORMAT_R16_SNORM							0x000000ef
+#define   NV50TCL_RT_FORMAT_R16_SINT							0x000000f0
+#define   NV50TCL_RT_FORMAT_R16_UINT							0x000000f1
+#define   NV50TCL_RT_FORMAT_R16_FLOAT							0x000000f2
+#define   NV50TCL_RT_FORMAT_R8_UNORM							0x000000f3
+#define   NV50TCL_RT_FORMAT_R8_SNORM							0x000000f4
+#define   NV50TCL_RT_FORMAT_R8_SINT							0x000000f5
+#define   NV50TCL_RT_FORMAT_R8_UINT							0x000000f6
+#define   NV50TCL_RT_FORMAT_A8_UNORM							0x000000f7
+#define   NV50TCL_RT_FORMAT_X1R5G5B5_UNORM						0x000000f8
+#define   NV50TCL_RT_FORMAT_X8B8G8R8_UNORM						0x000000f9
+#define   NV50TCL_RT_FORMAT_X8B8G8R8_SRGB						0x000000fa
+#define  NV50TCL_RT_TILE_MODE(x)							(0x0000020c+((x)*32))
+#define  NV50TCL_RT_TILE_MODE__SIZE							0x00000008
+#define  NV50TCL_RT_LAYER_STRIDE(x)							(0x00000210+((x)*32))
+#define  NV50TCL_RT_LAYER_STRIDE__SIZE							0x00000008
+#define  NV50TCL_VTX_ATTR_1F(x)								(0x00000300+((x)*4))
+#define  NV50TCL_VTX_ATTR_1F__SIZE							0x00000010
+#define  NV50TCL_VTX_ATTR_2H(x)								(0x00000340+((x)*4))
+#define  NV50TCL_VTX_ATTR_2H__SIZE							0x00000010
+#define   NV50TCL_VTX_ATTR_2H_X_SHIFT							0
+#define   NV50TCL_VTX_ATTR_2H_X_MASK							0x0000ffff
+#define   NV50TCL_VTX_ATTR_2H_Y_SHIFT							16
+#define   NV50TCL_VTX_ATTR_2H_Y_MASK							0xffff0000
+#define  NV50TCL_VTX_ATTR_2F_X(x)							(0x00000380+((x)*8))
+#define  NV50TCL_VTX_ATTR_2F_X__SIZE							0x00000010
+#define  NV50TCL_VTX_ATTR_2F_Y(x)							(0x00000384+((x)*8))
+#define  NV50TCL_VTX_ATTR_2F_Y__SIZE							0x00000010
+#define  NV50TCL_VTX_ATTR_3F_X(x)							(0x00000400+((x)*16))
+#define  NV50TCL_VTX_ATTR_3F_X__SIZE							0x00000010
+#define  NV50TCL_VTX_ATTR_3F_Y(x)							(0x00000404+((x)*16))
+#define  NV50TCL_VTX_ATTR_3F_Y__SIZE							0x00000010
+#define  NV50TCL_VTX_ATTR_3F_Z(x)							(0x00000408+((x)*16))
+#define  NV50TCL_VTX_ATTR_3F_Z__SIZE							0x00000010
+#define  NV50TCL_VTX_ATTR_4F_X(x)							(0x00000500+((x)*16))
+#define  NV50TCL_VTX_ATTR_4F_X__SIZE							0x00000010
+#define  NV50TCL_VTX_ATTR_4F_Y(x)							(0x00000504+((x)*16))
+#define  NV50TCL_VTX_ATTR_4F_Y__SIZE							0x00000010
+#define  NV50TCL_VTX_ATTR_4F_Z(x)							(0x00000508+((x)*16))
+#define  NV50TCL_VTX_ATTR_4F_Z__SIZE							0x00000010
+#define  NV50TCL_VTX_ATTR_4F_W(x)							(0x0000050c+((x)*16))
+#define  NV50TCL_VTX_ATTR_4F_W__SIZE							0x00000010
+#define  NV50TCL_VTX_ATTR_4H_0(x)							(0x00000600+((x)*8))
+#define  NV50TCL_VTX_ATTR_4H_0__SIZE							0x00000010
+#define   NV50TCL_VTX_ATTR_4H_0_X_SHIFT							0
+#define   NV50TCL_VTX_ATTR_4H_0_X_MASK							0x0000ffff
+#define   NV50TCL_VTX_ATTR_4H_0_Y_SHIFT							16
+#define   NV50TCL_VTX_ATTR_4H_0_Y_MASK							0xffff0000
+#define  NV50TCL_VTX_ATTR_4H_1(x)							(0x00000604+((x)*8))
+#define  NV50TCL_VTX_ATTR_4H_1__SIZE							0x00000010
+#define   NV50TCL_VTX_ATTR_4H_1_Z_SHIFT							0
+#define   NV50TCL_VTX_ATTR_4H_1_Z_MASK							0x0000ffff
+#define   NV50TCL_VTX_ATTR_4H_1_W_SHIFT							16
+#define   NV50TCL_VTX_ATTR_4H_1_W_MASK							0xffff0000
+#define  NV50TCL_VTX_ATTR_2I(x)								(0x00000680+((x)*4))
+#define  NV50TCL_VTX_ATTR_2I__SIZE							0x00000010
+#define   NV50TCL_VTX_ATTR_2I_X_SHIFT							0
+#define   NV50TCL_VTX_ATTR_2I_X_MASK							0x0000ffff
+#define   NV50TCL_VTX_ATTR_2I_Y_SHIFT							16
+#define   NV50TCL_VTX_ATTR_2I_Y_MASK							0xffff0000
+#define  NV50TCL_VTX_ATTR_2NI(x)							(0x000006c0+((x)*4))
+#define  NV50TCL_VTX_ATTR_2NI__SIZE							0x00000010
+#define   NV50TCL_VTX_ATTR_2NI_X_SHIFT							0
+#define   NV50TCL_VTX_ATTR_2NI_X_MASK							0x0000ffff
+#define   NV50TCL_VTX_ATTR_2NI_Y_SHIFT							16
+#define   NV50TCL_VTX_ATTR_2NI_Y_MASK							0xffff0000
+#define  NV50TCL_VTX_ATTR_4I_0(x)							(0x00000700+((x)*8))
+#define  NV50TCL_VTX_ATTR_4I_0__SIZE							0x00000010
+#define   NV50TCL_VTX_ATTR_4I_0_X_SHIFT							0
+#define   NV50TCL_VTX_ATTR_4I_0_X_MASK							0x0000ffff
+#define   NV50TCL_VTX_ATTR_4I_0_Y_SHIFT							16
+#define   NV50TCL_VTX_ATTR_4I_0_Y_MASK							0xffff0000
+#define  NV50TCL_VTX_ATTR_4I_1(x)							(0x00000704+((x)*8))
+#define  NV50TCL_VTX_ATTR_4I_1__SIZE							0x00000010
+#define   NV50TCL_VTX_ATTR_4I_1_Z_SHIFT							0
+#define   NV50TCL_VTX_ATTR_4I_1_Z_MASK							0x0000ffff
+#define   NV50TCL_VTX_ATTR_4I_1_W_SHIFT							16
+#define   NV50TCL_VTX_ATTR_4I_1_W_MASK							0xffff0000
+#define  NV50TCL_VTX_ATTR_4NI_0(x)							(0x00000780+((x)*8))
+#define  NV50TCL_VTX_ATTR_4NI_0__SIZE							0x00000010
+#define   NV50TCL_VTX_ATTR_4NI_0_X_SHIFT						0
+#define   NV50TCL_VTX_ATTR_4NI_0_X_MASK							0x0000ffff
+#define   NV50TCL_VTX_ATTR_4NI_0_Y_SHIFT						16
+#define   NV50TCL_VTX_ATTR_4NI_0_Y_MASK							0xffff0000
+#define  NV50TCL_VTX_ATTR_4NI_1(x)							(0x00000784+((x)*8))
+#define  NV50TCL_VTX_ATTR_4NI_1__SIZE							0x00000010
+#define   NV50TCL_VTX_ATTR_4NI_1_Z_SHIFT						0
+#define   NV50TCL_VTX_ATTR_4NI_1_Z_MASK							0x0000ffff
+#define   NV50TCL_VTX_ATTR_4NI_1_W_SHIFT						16
+#define   NV50TCL_VTX_ATTR_4NI_1_W_MASK							0xffff0000
+#define  NV50TCL_VTX_ATTR_4UB(x)							(0x00000800+((x)*4))
+#define  NV50TCL_VTX_ATTR_4UB__SIZE							0x00000010
+#define   NV50TCL_VTX_ATTR_4UB_X_SHIFT							0
+#define   NV50TCL_VTX_ATTR_4UB_X_MASK							0x000000ff
+#define   NV50TCL_VTX_ATTR_4UB_Y_SHIFT							8
+#define   NV50TCL_VTX_ATTR_4UB_Y_MASK							0x0000ff00
+#define   NV50TCL_VTX_ATTR_4UB_Z_SHIFT							16
+#define   NV50TCL_VTX_ATTR_4UB_Z_MASK							0x00ff0000
+#define   NV50TCL_VTX_ATTR_4UB_W_SHIFT							24
+#define   NV50TCL_VTX_ATTR_4UB_W_MASK							0xff000000
+#define  NV50TCL_VTX_ATTR_4B(x)								(0x00000840+((x)*4))
+#define  NV50TCL_VTX_ATTR_4B__SIZE							0x00000010
+#define   NV50TCL_VTX_ATTR_4B_X_SHIFT							0
+#define   NV50TCL_VTX_ATTR_4B_X_MASK							0x000000ff
+#define   NV50TCL_VTX_ATTR_4B_Y_SHIFT							8
+#define   NV50TCL_VTX_ATTR_4B_Y_MASK							0x0000ff00
+#define   NV50TCL_VTX_ATTR_4B_Z_SHIFT							16
+#define   NV50TCL_VTX_ATTR_4B_Z_MASK							0x00ff0000
+#define   NV50TCL_VTX_ATTR_4B_W_SHIFT							24
+#define   NV50TCL_VTX_ATTR_4B_W_MASK							0xff000000
+#define  NV50TCL_VTX_ATTR_4NUB(x)							(0x00000880+((x)*4))
+#define  NV50TCL_VTX_ATTR_4NUB__SIZE							0x00000010
+#define   NV50TCL_VTX_ATTR_4NUB_X_SHIFT							0
+#define   NV50TCL_VTX_ATTR_4NUB_X_MASK							0x000000ff
+#define   NV50TCL_VTX_ATTR_4NUB_Y_SHIFT							8
+#define   NV50TCL_VTX_ATTR_4NUB_Y_MASK							0x0000ff00
+#define   NV50TCL_VTX_ATTR_4NUB_Z_SHIFT							16
+#define   NV50TCL_VTX_ATTR_4NUB_Z_MASK							0x00ff0000
+#define   NV50TCL_VTX_ATTR_4NUB_W_SHIFT							24
+#define   NV50TCL_VTX_ATTR_4NUB_W_MASK							0xff000000
+#define  NV50TCL_VTX_ATTR_4NB(x)							(0x000008c0+((x)*4))
+#define  NV50TCL_VTX_ATTR_4NB__SIZE							0x00000010
+#define   NV50TCL_VTX_ATTR_4NB_X_SHIFT							0
+#define   NV50TCL_VTX_ATTR_4NB_X_MASK							0x000000ff
+#define   NV50TCL_VTX_ATTR_4NB_Y_SHIFT							8
+#define   NV50TCL_VTX_ATTR_4NB_Y_MASK							0x0000ff00
+#define   NV50TCL_VTX_ATTR_4NB_Z_SHIFT							16
+#define   NV50TCL_VTX_ATTR_4NB_Z_MASK							0x00ff0000
+#define   NV50TCL_VTX_ATTR_4NB_W_SHIFT							24
+#define   NV50TCL_VTX_ATTR_4NB_W_MASK							0xff000000
+#define  NV50TCL_VERTEX_ARRAY_FORMAT(x)							(0x00000900+((x)*16))
+#define  NV50TCL_VERTEX_ARRAY_FORMAT__SIZE						0x00000010
+#define   NV50TCL_VERTEX_ARRAY_FORMAT_STRIDE_SHIFT					0
+#define   NV50TCL_VERTEX_ARRAY_FORMAT_STRIDE_MASK					0x00000fff
+#define   NV50TCL_VERTEX_ARRAY_FORMAT_ENABLE						(1 << 29)
+#define  NV50TCL_VERTEX_ARRAY_START_HIGH(x)						(0x00000904+((x)*16))
+#define  NV50TCL_VERTEX_ARRAY_START_HIGH__SIZE						0x00000010
+#define  NV50TCL_VERTEX_ARRAY_START_LOW(x)						(0x00000908+((x)*16))
+#define  NV50TCL_VERTEX_ARRAY_START_LOW__SIZE						0x00000010
+#define  NV50TCL_VIEWPORT_SCALE_X(x)							(0x00000a00+((x)*32))
+#define  NV50TCL_VIEWPORT_SCALE_X__SIZE							0x00000010
+#define  NV50TCL_VIEWPORT_SCALE_Y(x)							(0x00000a04+((x)*32))
+#define  NV50TCL_VIEWPORT_SCALE_Y__SIZE							0x00000010
+#define  NV50TCL_VIEWPORT_SCALE_Z(x)							(0x00000a08+((x)*32))
+#define  NV50TCL_VIEWPORT_SCALE_Z__SIZE							0x00000010
+#define  NV50TCL_VIEWPORT_TRANSLATE_X(x)						(0x00000a0c+((x)*32))
+#define  NV50TCL_VIEWPORT_TRANSLATE_X__SIZE						0x00000010
+#define  NV50TCL_VIEWPORT_TRANSLATE_Y(x)						(0x00000a10+((x)*32))
+#define  NV50TCL_VIEWPORT_TRANSLATE_Y__SIZE						0x00000010
+#define  NV50TCL_VIEWPORT_TRANSLATE_Z(x)						(0x00000a14+((x)*32))
+#define  NV50TCL_VIEWPORT_TRANSLATE_Z__SIZE						0x00000010
+#define  NV50TCL_VIEWPORT_HORIZ(x)							(0x00000c00+((x)*16))
+#define  NV50TCL_VIEWPORT_HORIZ__SIZE							0x00000010
+#define   NV50TCL_VIEWPORT_HORIZ_X_SHIFT						0
+#define   NV50TCL_VIEWPORT_HORIZ_X_MASK							0x0000ffff
+#define   NV50TCL_VIEWPORT_HORIZ_W_SHIFT						16
+#define   NV50TCL_VIEWPORT_HORIZ_W_MASK							0xffff0000
+#define  NV50TCL_VIEWPORT_VERT(x)							(0x00000c04+((x)*16))
+#define  NV50TCL_VIEWPORT_VERT__SIZE							0x00000010
+#define   NV50TCL_VIEWPORT_VERT_Y_SHIFT							0
+#define   NV50TCL_VIEWPORT_VERT_Y_MASK							0x0000ffff
+#define   NV50TCL_VIEWPORT_VERT_H_SHIFT							16
+#define   NV50TCL_VIEWPORT_VERT_H_MASK							0xffff0000
+#define  NV50TCL_DEPTH_RANGE_NEAR(x)							(0x00000c08+((x)*16))
+#define  NV50TCL_DEPTH_RANGE_NEAR__SIZE							0x00000010
+#define  NV50TCL_DEPTH_RANGE_FAR(x)							(0x00000c0c+((x)*16))
+#define  NV50TCL_DEPTH_RANGE_FAR__SIZE							0x00000010
+#define  NV50TCL_VIEWPORT_CLIP_HORIZ(x)							(0x00000d00+((x)*8))
+#define  NV50TCL_VIEWPORT_CLIP_HORIZ__SIZE						0x00000008
+#define  NV50TCL_VIEWPORT_CLIP_VERT(x)							(0x00000d04+((x)*8))
+#define  NV50TCL_VIEWPORT_CLIP_VERT__SIZE						0x00000008
+#define  NV50TCL_VERTEX_BUFFER_FIRST							0x00000d74
+#define  NV50TCL_VERTEX_BUFFER_COUNT							0x00000d78
+#define  NV50TCL_CLEAR_COLOR(x)								(0x00000d80+((x)*4))
+#define  NV50TCL_CLEAR_COLOR__SIZE							0x00000004
+#define  NV50TCL_CLEAR_DEPTH								0x00000d90
+#define  NV50TCL_STACK_ADDRESS_HIGH							0x00000d94
+#define  NV50TCL_STACK_ADDRESS_LOW							0x00000d98
+#define  NV50TCL_STACK_SIZE_LOG								0x00000d9c
+#define  NV50TCL_CLEAR_STENCIL								0x00000da0
+#define  NV50TCL_STRMOUT_PRIMITIVE_COUNT						0x00000da8
+#define  NV50TCL_POLYGON_MODE_FRONT							0x00000dac
+#define   NV50TCL_POLYGON_MODE_FRONT_POINT						0x00001b00
+#define   NV50TCL_POLYGON_MODE_FRONT_LINE						0x00001b01
+#define   NV50TCL_POLYGON_MODE_FRONT_FILL						0x00001b02
+#define  NV50TCL_POLYGON_MODE_BACK							0x00000db0
+#define   NV50TCL_POLYGON_MODE_BACK_POINT						0x00001b00
+#define   NV50TCL_POLYGON_MODE_BACK_LINE						0x00001b01
+#define   NV50TCL_POLYGON_MODE_BACK_FILL						0x00001b02
+#define  NV50TCL_POLYGON_SMOOTH_ENABLE							0x00000db4
+#define  NV50TCL_POLYGON_OFFSET_POINT_ENABLE						0x00000dc0
+#define  NV50TCL_POLYGON_OFFSET_LINE_ENABLE						0x00000dc4
+#define  NV50TCL_POLYGON_OFFSET_FILL_ENABLE						0x00000dc8
+#define  NV50TCL_WATCHDOG_TIMER								0x00000de4
+#define  NV50TCL_WINDOW_OFFSET_X							0x00000df8
+#define  NV50TCL_WINDOW_OFFSET_Y							0x00000dfc
+#define  NV50TCL_SCISSOR_ENABLE(x)							(0x00000e00+((x)*16))
+#define  NV50TCL_SCISSOR_ENABLE__SIZE							0x00000010
+#define  NV50TCL_SCISSOR_HORIZ(x)							(0x00000e04+((x)*16))
+#define  NV50TCL_SCISSOR_HORIZ__SIZE							0x00000010
+#define   NV50TCL_SCISSOR_HORIZ_MIN_SHIFT						0
+#define   NV50TCL_SCISSOR_HORIZ_MIN_MASK						0x0000ffff
+#define   NV50TCL_SCISSOR_HORIZ_MAX_SHIFT						16
+#define   NV50TCL_SCISSOR_HORIZ_MAX_MASK						0xffff0000
+#define  NV50TCL_SCISSOR_VERT(x)							(0x00000e08+((x)*16))
+#define  NV50TCL_SCISSOR_VERT__SIZE							0x00000010
+#define   NV50TCL_SCISSOR_VERT_MIN_SHIFT						0
+#define   NV50TCL_SCISSOR_VERT_MIN_MASK							0x0000ffff
+#define   NV50TCL_SCISSOR_VERT_MAX_SHIFT						16
+#define   NV50TCL_SCISSOR_VERT_MAX_MASK							0xffff0000
+#define  NV50TCL_CB_ADDR								0x00000f00
+#define   NV50TCL_CB_ADDR_ID_SHIFT							8
+#define   NV50TCL_CB_ADDR_ID_MASK							0x003fff00
+#define   NV50TCL_CB_ADDR_BUFFER_SHIFT							0
+#define   NV50TCL_CB_ADDR_BUFFER_MASK							0x0000007f
+#define  NV50TCL_CB_DATA(x)								(0x00000f04+((x)*4))
+#define  NV50TCL_CB_DATA__SIZE								0x00000010
+#define  NV50TCL_LOCAL_WARPS_LOG_ALLOC							0x00000f44
+#define  NV50TCL_LOCAL_WARPS_NO_CLAMP							0x00000f48
+#define  NV50TCL_STACK_WARPS_LOG_ALLOC							0x00000f4c
+#define  NV50TCL_STACK_WARPS_NO_CLAMP							0x00000f50
+#define  NV50TCL_STENCIL_BACK_FUNC_REF							0x00000f54
+#define  NV50TCL_STENCIL_BACK_MASK							0x00000f58
+#define  NV50TCL_STENCIL_BACK_FUNC_MASK							0x00000f5c
+#define  NV50TCL_GP_ADDRESS_HIGH							0x00000f70
+#define  NV50TCL_GP_ADDRESS_LOW								0x00000f74
+#define  NV50TCL_VP_ADDRESS_HIGH							0x00000f7c
+#define  NV50TCL_VP_ADDRESS_LOW								0x00000f80
+#define  NV50TCL_UNK0F84_ADDRESS_HIGH							0x00000f84
+#define  NV50TCL_UNK0F84_ADDRESS_LOW							0x00000f88
+#define  NV50TCL_DEPTH_BOUNDS(x)							(0x00000f9c+((x)*4))
+#define  NV50TCL_DEPTH_BOUNDS__SIZE							0x00000002
+#define  NV50TCL_FP_ADDRESS_HIGH							0x00000fa4
+#define  NV50TCL_FP_ADDRESS_LOW								0x00000fa8
+#define  NV50TCL_MSAA_MASK(x)								(0x00000fbc+((x)*4))
+#define  NV50TCL_MSAA_MASK__SIZE							0x00000004
+#define  NV50TCL_ZETA_ADDRESS_HIGH							0x00000fe0
+#define  NV50TCL_ZETA_ADDRESS_LOW							0x00000fe4
+#define  NV50TCL_ZETA_FORMAT								0x00000fe8
+#define   NV50TCL_ZETA_FORMAT_Z32_FLOAT							0x0000000a
+#define   NV50TCL_ZETA_FORMAT_Z16_UNORM							0x00000013
+#define   NV50TCL_ZETA_FORMAT_Z24S8_UNORM						0x00000014
+#define   NV50TCL_ZETA_FORMAT_X8Z24_UNORM						0x00000015
+#define   NV50TCL_ZETA_FORMAT_S8Z24_UNORM						0x00000016
+#define   NV50TCL_ZETA_FORMAT_Z32_FLOAT_X24S8_UNORM					0x00000019
+#define  NV50TCL_ZETA_TILE_MODE								0x00000fec
+#define  NV50TCL_ZETA_LAYER_STRIDE							0x00000ff0
+#define  NV50TCL_SCREEN_SCISSOR_HORIZ							0x00000ff4
+#define   NV50TCL_SCREEN_SCISSOR_HORIZ_W_SHIFT						16
+#define   NV50TCL_SCREEN_SCISSOR_HORIZ_W_MASK						0xffff0000
+#define   NV50TCL_SCREEN_SCISSOR_HORIZ_X_SHIFT						0
+#define   NV50TCL_SCREEN_SCISSOR_HORIZ_X_MASK						0x0000ffff
+#define  NV50TCL_SCREEN_SCISSOR_VERT							0x00000ff8
+#define   NV50TCL_SCREEN_SCISSOR_VERT_H_SHIFT						16
+#define   NV50TCL_SCREEN_SCISSOR_VERT_H_MASK						0xffff0000
+#define   NV50TCL_SCREEN_SCISSOR_VERT_Y_SHIFT						0
+#define   NV50TCL_SCREEN_SCISSOR_VERT_Y_MASK						0x0000ffff
+#define  NV50TCL_VERTEX_ARRAY_LIMIT_HIGH(x)						(0x00001080+((x)*8))
+#define  NV50TCL_VERTEX_ARRAY_LIMIT_HIGH__SIZE						0x00000010
+#define  NV50TCL_VERTEX_ARRAY_LIMIT_LOW(x)						(0x00001084+((x)*8))
+#define  NV50TCL_VERTEX_ARRAY_LIMIT_LOW__SIZE						0x00000010
+#define  NV50TCL_RT_CONTROL								0x0000121c
+#define   NV50TCL_RT_CONTROL_COUNT_SHIFT						0
+#define   NV50TCL_RT_CONTROL_COUNT_MASK							0x0000000f
+#define   NV50TCL_RT_CONTROL_MAP0_SHIFT							4
+#define   NV50TCL_RT_CONTROL_MAP0_MASK							0x00000070
+#define   NV50TCL_RT_CONTROL_MAP1_SHIFT							7
+#define   NV50TCL_RT_CONTROL_MAP1_MASK							0x00000380
+#define   NV50TCL_RT_CONTROL_MAP2_SHIFT							10
+#define   NV50TCL_RT_CONTROL_MAP2_MASK							0x00001c00
+#define   NV50TCL_RT_CONTROL_MAP3_SHIFT							13
+#define   NV50TCL_RT_CONTROL_MAP3_MASK							0x0000e000
+#define   NV50TCL_RT_CONTROL_MAP4_SHIFT							16
+#define   NV50TCL_RT_CONTROL_MAP4_MASK							0x00070000
+#define   NV50TCL_RT_CONTROL_MAP5_SHIFT							19
+#define   NV50TCL_RT_CONTROL_MAP5_MASK							0x00380000
+#define   NV50TCL_RT_CONTROL_MAP6_SHIFT							22
+#define   NV50TCL_RT_CONTROL_MAP6_MASK							0x01c00000
+#define   NV50TCL_RT_CONTROL_MAP7_SHIFT							25
+#define   NV50TCL_RT_CONTROL_MAP7_MASK							0x0e000000
+#define  NV50TCL_RT_ARRAY_MODE								0x00001224
+#define   NV50TCL_RT_ARRAY_MODE_LAYERS_SHIFT						0
+#define   NV50TCL_RT_ARRAY_MODE_LAYERS_MASK						0x0000ffff
+#define   NV50TCL_RT_ARRAY_MODE_VOLUME							(1 << 16)
+#define  NV50TCL_ZETA_HORIZ								0x00001228
+#define  NV50TCL_ZETA_VERT								0x0000122c
+#define  NV50TCL_ZETA_ARRAY_MODE							0x00001230
+#define   NV50TCL_ZETA_ARRAY_MODE_LAYERS_SHIFT						0
+#define   NV50TCL_ZETA_ARRAY_MODE_LAYERS_MASK						0x0000ffff
+#define   NV50TCL_ZETA_ARRAY_MODE_UNK							(1 << 16)
+#define  NV50TCL_LINKED_TSC								0x00001234
+#define  NV50TCL_RT_HORIZ(x)								(0x00001240+((x)*8))
+#define  NV50TCL_RT_HORIZ__SIZE								0x00000008
+#define  NV50TCL_RT_VERT(x)								(0x00001244+((x)*8))
+#define  NV50TCL_RT_VERT__SIZE								0x00000008
+#define  NV50TCL_CB_DEF_ADDRESS_HIGH							0x00001280
+#define  NV50TCL_CB_DEF_ADDRESS_LOW							0x00001284
+#define  NV50TCL_CB_DEF_SET								0x00001288
+#define   NV50TCL_CB_DEF_SET_SIZE_SHIFT							0
+#define   NV50TCL_CB_DEF_SET_SIZE_MASK							0x0000ffff
+#define   NV50TCL_CB_DEF_SET_BUFFER_SHIFT						16
+#define   NV50TCL_CB_DEF_SET_BUFFER_MASK						0x007f0000
+#define  NV50TCL_STRMOUT_BUFFERS_CTRL							0x00001294
+#define   NV50TCL_STRMOUT_BUFFERS_CTRL_INTERLEAVED					(1 <<  0)
+#define   NV50TCL_STRMOUT_BUFFERS_CTRL_SEPARATE_SHIFT					4
+#define   NV50TCL_STRMOUT_BUFFERS_CTRL_SEPARATE_MASK					0x000000f0
+#define   NV50TCL_STRMOUT_BUFFERS_CTRL_STRIDE_SHIFT					8
+#define   NV50TCL_STRMOUT_BUFFERS_CTRL_STRIDE_MASK					0x0000ff00
+#define  NV50TCL_FP_RESULT_COUNT							0x00001298
+#define  NV50TCL_DEPTH_TEST_ENABLE							0x000012cc
+#define  NV50TCL_SHADE_MODEL								0x000012d4
+#define   NV50TCL_SHADE_MODEL_FLAT							0x00001d00
+#define   NV50TCL_SHADE_MODEL_SMOOTH							0x00001d01
+#define  NV50TCL_LOCAL_ADDRESS_HIGH							0x000012d8
+#define  NV50TCL_LOCAL_ADDRESS_LOW							0x000012dc
+#define  NV50TCL_LOCAL_SIZE_LOG								0x000012e0
+#define  NV50TCL_DEPTH_WRITE_ENABLE							0x000012e8
+#define  NV50TCL_ALPHA_TEST_ENABLE							0x000012ec
+#define  NV50TCL_PM_SET(x)								(0x000012f0+((x)*4))
+#define  NV50TCL_PM_SET__SIZE								0x00000004
+#define  NV50TCL_VB_ELEMENT_U8_SETUP							0x00001300
+#define   NV50TCL_VB_ELEMENT_U8_SETUP_OFFSET_SHIFT					30
+#define   NV50TCL_VB_ELEMENT_U8_SETUP_OFFSET_MASK					0xc0000000
+#define   NV50TCL_VB_ELEMENT_U8_SETUP_COUNT_SHIFT					0
+#define   NV50TCL_VB_ELEMENT_U8_SETUP_COUNT_MASK					0x3fffffff
+#define  NV50TCL_VB_ELEMENT_U8								0x00001304
+#define   NV50TCL_VB_ELEMENT_U8_I0_SHIFT						0
+#define   NV50TCL_VB_ELEMENT_U8_I0_MASK							0x000000ff
+#define   NV50TCL_VB_ELEMENT_U8_I1_SHIFT						8
+#define   NV50TCL_VB_ELEMENT_U8_I1_MASK							0x0000ff00
+#define   NV50TCL_VB_ELEMENT_U8_I2_SHIFT						16
+#define   NV50TCL_VB_ELEMENT_U8_I2_MASK							0x00ff0000
+#define   NV50TCL_VB_ELEMENT_U8_I3_SHIFT						24
+#define   NV50TCL_VB_ELEMENT_U8_I3_MASK							0xff000000
+#define  NV50TCL_DEPTH_TEST_FUNC							0x0000130c
+#define   NV50TCL_DEPTH_TEST_FUNC_NEVER							0x00000200
+#define   NV50TCL_DEPTH_TEST_FUNC_LESS							0x00000201
+#define   NV50TCL_DEPTH_TEST_FUNC_EQUAL							0x00000202
+#define   NV50TCL_DEPTH_TEST_FUNC_LEQUAL						0x00000203
+#define   NV50TCL_DEPTH_TEST_FUNC_GREATER						0x00000204
+#define   NV50TCL_DEPTH_TEST_FUNC_NOTEQUAL						0x00000205
+#define   NV50TCL_DEPTH_TEST_FUNC_GEQUAL						0x00000206
+#define   NV50TCL_DEPTH_TEST_FUNC_ALWAYS						0x00000207
+#define  NV50TCL_ALPHA_TEST_REF								0x00001310
+#define  NV50TCL_ALPHA_TEST_FUNC							0x00001314
+#define   NV50TCL_ALPHA_TEST_FUNC_NEVER							0x00000200
+#define   NV50TCL_ALPHA_TEST_FUNC_LESS							0x00000201
+#define   NV50TCL_ALPHA_TEST_FUNC_EQUAL							0x00000202
+#define   NV50TCL_ALPHA_TEST_FUNC_LEQUAL						0x00000203
+#define   NV50TCL_ALPHA_TEST_FUNC_GREATER						0x00000204
+#define   NV50TCL_ALPHA_TEST_FUNC_NOTEQUAL						0x00000205
+#define   NV50TCL_ALPHA_TEST_FUNC_GEQUAL						0x00000206
+#define   NV50TCL_ALPHA_TEST_FUNC_ALWAYS						0x00000207
+#define  NV50TCL_BLEND_COLOR(x)								(0x0000131c+((x)*4))
+#define  NV50TCL_BLEND_COLOR__SIZE							0x00000004
+#define  NV50TCL_TIC_FLUSH								0x00001330
+#define  NV50TCL_TSC_FLUSH								0x00001334
+#define  NV50TCL_TEX_CACHE_CTL								0x00001338
+#define  NV50TCL_BLEND_EQUATION_RGB							0x00001340
+#define   NV50TCL_BLEND_EQUATION_RGB_FUNC_ADD						0x00008006
+#define   NV50TCL_BLEND_EQUATION_RGB_MIN						0x00008007
+#define   NV50TCL_BLEND_EQUATION_RGB_MAX						0x00008008
+#define   NV50TCL_BLEND_EQUATION_RGB_FUNC_SUBTRACT					0x0000800a
+#define   NV50TCL_BLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT				0x0000800b
+#define  NV50TCL_BLEND_FUNC_SRC_RGB							0x00001344
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ZERO						0x00000000
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE						0x00000001
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR						0x00000300
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR				0x00000301
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA						0x00000302
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA				0x00000303
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA						0x00000304
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA				0x00000305
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_DST_COLOR						0x00000306
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR				0x00000307
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE					0x00000308
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR					0x00008001
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR				0x00008002
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA					0x00008003
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA				0x00008004
+#define  NV50TCL_BLEND_FUNC_DST_RGB							0x00001348
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ZERO						0x00000000
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE						0x00000001
+#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_COLOR						0x00000300
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR				0x00000301
+#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA						0x00000302
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA				0x00000303
+#define   NV50TCL_BLEND_FUNC_DST_RGB_DST_ALPHA						0x00000304
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA				0x00000305
+#define   NV50TCL_BLEND_FUNC_DST_RGB_DST_COLOR						0x00000306
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR				0x00000307
+#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE					0x00000308
+#define   NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR					0x00008001
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR				0x00008002
+#define   NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA					0x00008003
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA				0x00008004
+#define  NV50TCL_BLEND_EQUATION_ALPHA							0x0000134c
+#define   NV50TCL_BLEND_EQUATION_ALPHA_FUNC_ADD						0x00008006
+#define   NV50TCL_BLEND_EQUATION_ALPHA_MIN						0x00008007
+#define   NV50TCL_BLEND_EQUATION_ALPHA_MAX						0x00008008
+#define   NV50TCL_BLEND_EQUATION_ALPHA_FUNC_SUBTRACT					0x0000800a
+#define   NV50TCL_BLEND_EQUATION_ALPHA_FUNC_REVERSE_SUBTRACT				0x0000800b
+#define  NV50TCL_BLEND_FUNC_SRC_ALPHA							0x00001350
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ZERO						0x00000000
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE						0x00000001
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR					0x00000300
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR				0x00000301
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA					0x00000302
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA				0x00000303
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA					0x00000304
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA				0x00000305
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR					0x00000306
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR				0x00000307
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE				0x00000308
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR					0x00008001
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR				0x00008002
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA					0x00008003
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA				0x00008004
+#define  NV50TCL_BLEND_FUNC_DST_ALPHA							0x00001358
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ZERO						0x00000000
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE						0x00000001
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR					0x00000300
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR				0x00000301
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA					0x00000302
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA				0x00000303
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA					0x00000304
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA				0x00000305
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR					0x00000306
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR				0x00000307
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE				0x00000308
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR					0x00008001
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR				0x00008002
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA					0x00008003
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA				0x00008004
+#define  NV50TCL_BLEND_ENABLE(x)							(0x00001360+((x)*4))
+#define  NV50TCL_BLEND_ENABLE__SIZE							0x00000008
+#define  NV50TCL_STENCIL_FRONT_ENABLE							0x00001380
+#define  NV50TCL_STENCIL_FRONT_OP_FAIL							0x00001384
+#define   NV50TCL_STENCIL_FRONT_OP_FAIL_ZERO						0x00000000
+#define   NV50TCL_STENCIL_FRONT_OP_FAIL_INVERT						0x0000150a
+#define   NV50TCL_STENCIL_FRONT_OP_FAIL_KEEP						0x00001e00
+#define   NV50TCL_STENCIL_FRONT_OP_FAIL_REPLACE						0x00001e01
+#define   NV50TCL_STENCIL_FRONT_OP_FAIL_INCR						0x00001e02
+#define   NV50TCL_STENCIL_FRONT_OP_FAIL_DECR						0x00001e03
+#define   NV50TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP					0x00008507
+#define   NV50TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP					0x00008508
+#define  NV50TCL_STENCIL_FRONT_OP_ZFAIL							0x00001388
+#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_ZERO						0x00000000
+#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_INVERT						0x0000150a
+#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_KEEP						0x00001e00
+#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_REPLACE					0x00001e01
+#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_INCR						0x00001e02
+#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_DECR						0x00001e03
+#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP					0x00008507
+#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP					0x00008508
+#define  NV50TCL_STENCIL_FRONT_OP_ZPASS							0x0000138c
+#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_ZERO						0x00000000
+#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_INVERT						0x0000150a
+#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_KEEP						0x00001e00
+#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_REPLACE					0x00001e01
+#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_INCR						0x00001e02
+#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_DECR						0x00001e03
+#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP					0x00008507
+#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP					0x00008508
+#define  NV50TCL_STENCIL_FRONT_FUNC_FUNC						0x00001390
+#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_NEVER						0x00000200
+#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_LESS						0x00000201
+#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL						0x00000202
+#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL					0x00000203
+#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_GREATER					0x00000204
+#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL					0x00000205
+#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL					0x00000206
+#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS					0x00000207
+#define  NV50TCL_STENCIL_FRONT_FUNC_REF							0x00001394
+#define  NV50TCL_STENCIL_FRONT_MASK							0x00001398
+#define  NV50TCL_STENCIL_FRONT_FUNC_MASK						0x0000139c
+#define  NV50TCL_FRAG_COLOR_CLAMP_EN							0x000013a8
+#define  NV50TCL_Y_ORIGIN_BOTTOM							0x000013ac
+#define  NV50TCL_LINE_WIDTH								0x000013b0
+#define  NV50TCL_TEX_LIMITS(x)								(0x000013b4+((x)*4))
+#define  NV50TCL_TEX_LIMITS__SIZE							0x00000003
+#define   NV50TCL_TEX_LIMITS_SAMPLERS_LOG2_SHIFT					0
+#define   NV50TCL_TEX_LIMITS_SAMPLERS_LOG2_MASK						0x0000000f
+#define   NV50TCL_TEX_LIMITS_TEXTURES_LOG2_SHIFT					4
+#define   NV50TCL_TEX_LIMITS_TEXTURES_LOG2_MASK						0x000000f0
+#define  NV50TCL_POINT_COORD_REPLACE_MAP(x)						(0x000013c0+((x)*4))
+#define  NV50TCL_POINT_COORD_REPLACE_MAP__SIZE						0x00000008
+#define  NV50TCL_VP_START_ID								0x0000140c
+#define  NV50TCL_GP_START_ID								0x00001410
+#define  NV50TCL_FP_START_ID								0x00001414
+#define  NV50TCL_GP_VERTEX_OUTPUT_COUNT							0x00001420
+#define  NV50TCL_VB_ELEMENT_BASE							0x00001434
+#define  NV50TCL_CODE_CB_FLUSH								0x00001440
+#define  NV50TCL_BIND_TSC(x)								(0x00001444+((x)*8))
+#define  NV50TCL_BIND_TSC__SIZE								0x00000003
+#define   NV50TCL_BIND_TSC_VALID							(1 <<  0)
+#define   NV50TCL_BIND_TSC_SAMPLER_SHIFT						4
+#define   NV50TCL_BIND_TSC_SAMPLER_MASK							0x000000f0
+#define   NV50TCL_BIND_TSC_TSC_SHIFT							12
+#define   NV50TCL_BIND_TSC_TSC_MASK							0x001ff000
+#define  NV50TCL_BIND_TIC(x)								(0x00001448+((x)*8))
+#define  NV50TCL_BIND_TIC__SIZE								0x00000003
+#define   NV50TCL_BIND_TIC_VALID							(1 <<  0)
+#define   NV50TCL_BIND_TIC_TEXTURE_SHIFT						1
+#define   NV50TCL_BIND_TIC_TEXTURE_MASK							0x000001fe
+#define   NV50TCL_BIND_TIC_TIC_SHIFT							9
+#define   NV50TCL_BIND_TIC_TIC_MASK							0x7ffffe00
+#define  NV50TCL_STRMOUT_MAP(x)								(0x00001480+((x)*4))
+#define  NV50TCL_STRMOUT_MAP__SIZE							0x00000020
+#define  NV50TCL_VP_CLIP_DISTANCE_ENABLE						0x00001510
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_0						(1 <<  0)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_1						(1 <<  1)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_2						(1 <<  2)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_3						(1 <<  3)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_4						(1 <<  4)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_5						(1 <<  5)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_6						(1 <<  6)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_7						(1 <<  7)
+#define  NV50TCL_SAMPLECNT_ENABLE							0x00001514
+#define  NV50TCL_POINT_SIZE								0x00001518
+#define  NV50TCL_POINT_SPRITE_ENABLE							0x00001520
+#define  NV50TCL_SAMPLECNT_RESET							0x00001530
+#define  NV50TCL_ZETA_ENABLE								0x00001538
+#define  NV50TCL_MULTISAMPLE_CTRL							0x0000153c
+#define   NV50TCL_MULTISAMPLE_CTRL_ALPHA_TO_COVERAGE					(1 <<  0)
+#define   NV50TCL_MULTISAMPLE_CTRL_ALPHA_TO_ONE						(1 <<  4)
+#define  NV50TCL_NOPERSPECTIVE_BITMAP(x)						(0x00001540+((x)*4))
+#define  NV50TCL_NOPERSPECTIVE_BITMAP__SIZE						0x00000004
+#define  NV50TCL_COND_ADDRESS_HIGH							0x00001550
+#define  NV50TCL_COND_ADDRESS_LOW							0x00001554
+#define  NV50TCL_COND_MODE								0x00001558
+#define   NV50TCL_COND_MODE_NEVER							0x00000000
+#define   NV50TCL_COND_MODE_ALWAYS							0x00000001
+#define   NV50TCL_COND_MODE_RES								0x00000002
+#define   NV50TCL_COND_MODE_NOT_RES_AND_NOT_ID						0x00000003
+#define   NV50TCL_COND_MODE_RES_OR_ID							0x00000004
+#define  NV50TCL_TSC_ADDRESS_HIGH							0x0000155c
+#define  NV50TCL_TSC_ADDRESS_LOW							0x00001560
+#define  NV50TCL_TSC_LIMIT								0x00001564
+#define  NV50TCL_POLYGON_OFFSET_FACTOR							0x0000156c
+#define  NV50TCL_LINE_SMOOTH_ENABLE							0x00001570
+#define  NV50TCL_TIC_ADDRESS_HIGH							0x00001574
+#define  NV50TCL_TIC_ADDRESS_LOW							0x00001578
+#define  NV50TCL_TIC_LIMIT								0x0000157c
+#define  NV50TCL_PM_CONTROL(x)								(0x00001580+((x)*4))
+#define  NV50TCL_PM_CONTROL__SIZE							0x00000004
+#define   NV50TCL_PM_CONTROL_UNK0							(1 <<  0)
+#define   NV50TCL_PM_CONTROL_UNK1_SHIFT							4
+#define   NV50TCL_PM_CONTROL_UNK1_MASK							0x00000070
+#define   NV50TCL_PM_CONTROL_UNK2_SHIFT							8
+#define   NV50TCL_PM_CONTROL_UNK2_MASK							0xffffff00
+#define  NV50TCL_STENCIL_BACK_ENABLE							0x00001594
+#define  NV50TCL_STENCIL_BACK_OP_FAIL							0x00001598
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_ZERO						0x00000000
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_INVERT						0x0000150a
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_KEEP						0x00001e00
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_REPLACE						0x00001e01
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_INCR						0x00001e02
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_DECR						0x00001e03
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP					0x00008507
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP					0x00008508
+#define  NV50TCL_STENCIL_BACK_OP_ZFAIL							0x0000159c
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_ZERO						0x00000000
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INVERT						0x0000150a
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_KEEP						0x00001e00
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_REPLACE						0x00001e01
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INCR						0x00001e02
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_DECR						0x00001e03
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP					0x00008507
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP					0x00008508
+#define  NV50TCL_STENCIL_BACK_OP_ZPASS							0x000015a0
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_ZERO						0x00000000
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INVERT						0x0000150a
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_KEEP						0x00001e00
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_REPLACE						0x00001e01
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INCR						0x00001e02
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_DECR						0x00001e03
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP					0x00008507
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP					0x00008508
+#define  NV50TCL_STENCIL_BACK_FUNC_FUNC							0x000015a4
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_NEVER						0x00000200
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_LESS						0x00000201
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_EQUAL						0x00000202
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL						0x00000203
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GREATER					0x00000204
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL					0x00000205
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL						0x00000206
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS						0x00000207
+#define  NV50TCL_FRAMEBUFFER_SRGB							0x000015b8
+#define  NV50TCL_POLYGON_OFFSET_UNITS							0x000015bc
+#define  NV50TCL_GP_BUILTIN_RESULT_EN							0x000015cc
+#define   NV50TCL_GP_BUILTIN_RESULT_EN_VPORT_IDX					(1 <<  0)
+#define   NV50TCL_GP_BUILTIN_RESULT_EN_LAYER_IDX					(1 << 16)
+#define  NV50TCL_MULTISAMPLE_SAMPLES_LOG2						0x000015d0
+#define  NV50TCL_VERTEX_BEGIN								0x000015dc
+#define   NV50TCL_VERTEX_BEGIN_POINTS							0x00000000
+#define   NV50TCL_VERTEX_BEGIN_LINES							0x00000001
+#define   NV50TCL_VERTEX_BEGIN_LINE_LOOP						0x00000002
+#define   NV50TCL_VERTEX_BEGIN_LINE_STRIP						0x00000003
+#define   NV50TCL_VERTEX_BEGIN_TRIANGLES						0x00000004
+#define   NV50TCL_VERTEX_BEGIN_TRIANGLE_STRIP						0x00000005
+#define   NV50TCL_VERTEX_BEGIN_TRIANGLE_FAN						0x00000006
+#define   NV50TCL_VERTEX_BEGIN_QUADS							0x00000007
+#define   NV50TCL_VERTEX_BEGIN_QUAD_STRIP						0x00000008
+#define   NV50TCL_VERTEX_BEGIN_POLYGON							0x00000009
+#define   NV50TCL_VERTEX_BEGIN_LINES_ADJACENCY						0x0000000a
+#define   NV50TCL_VERTEX_BEGIN_LINE_STRIP_ADJACENCY					0x0000000b
+#define   NV50TCL_VERTEX_BEGIN_TRIANGLES_ADJACENCY					0x0000000c
+#define   NV50TCL_VERTEX_BEGIN_TRIANGLE_STRIP_ADJACENCY					0x0000000d
+#define  NV50TCL_VERTEX_END								0x000015e0
+#define  NV50TCL_EDGEFLAG_ENABLE							0x000015e4
+#define  NV50TCL_VB_ELEMENT_U32								0x000015e8
+#define  NV50TCL_VB_ELEMENT_U16_SETUP							0x000015ec
+#define   NV50TCL_VB_ELEMENT_U16_SETUP_OFFSET_SHIFT					30
+#define   NV50TCL_VB_ELEMENT_U16_SETUP_OFFSET_MASK					0xc0000000
+#define   NV50TCL_VB_ELEMENT_U16_SETUP_COUNT_SHIFT					0
+#define   NV50TCL_VB_ELEMENT_U16_SETUP_COUNT_MASK					0x3fffffff
+#define  NV50TCL_VB_ELEMENT_U16								0x000015f0
+#define   NV50TCL_VB_ELEMENT_U16_I0_SHIFT						0
+#define   NV50TCL_VB_ELEMENT_U16_I0_MASK						0x0000ffff
+#define   NV50TCL_VB_ELEMENT_U16_I1_SHIFT						16
+#define   NV50TCL_VB_ELEMENT_U16_I1_MASK						0xffff0000
+#define  NV50TCL_VERTEX_DATA								0x00001640
+#define  NV50TCL_PRIM_RESTART_ENABLE							0x00001644
+#define  NV50TCL_PRIM_RESTART_INDEX							0x00001648
+#define  NV50TCL_VP_GP_BUILTIN_ATTR_EN							0x0000164c
+#define   NV50TCL_VP_GP_BUILTIN_ATTR_EN_VERTEX_ID					(1 <<  0)
+#define   NV50TCL_VP_GP_BUILTIN_ATTR_EN_INSTANCE_ID					(1 <<  4)
+#define   NV50TCL_VP_GP_BUILTIN_ATTR_EN_PRIMITIVE_ID					(1 <<  8)
+#define   NV50TCL_VP_GP_BUILTIN_ATTR_EN_UNK12						(1 << 12)
+#define  NV50TCL_VP_ATTR_EN_0								0x00001650
+#define   NV50TCL_VP_ATTR_EN_0_7_SHIFT							28
+#define   NV50TCL_VP_ATTR_EN_0_7_MASK							0xf0000000
+#define    NV50TCL_VP_ATTR_EN_0_7_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_0_7_XNNN							0x10000000
+#define    NV50TCL_VP_ATTR_EN_0_7_NYNN							0x20000000
+#define    NV50TCL_VP_ATTR_EN_0_7_XYNN							0x30000000
+#define    NV50TCL_VP_ATTR_EN_0_7_NNZN							0x40000000
+#define    NV50TCL_VP_ATTR_EN_0_7_XNZN							0x50000000
+#define    NV50TCL_VP_ATTR_EN_0_7_NYZN							0x60000000
+#define    NV50TCL_VP_ATTR_EN_0_7_XYZN							0x70000000
+#define    NV50TCL_VP_ATTR_EN_0_7_NNNW							0x80000000
+#define    NV50TCL_VP_ATTR_EN_0_7_XNNW							0x90000000
+#define    NV50TCL_VP_ATTR_EN_0_7_NYNW							0xa0000000
+#define    NV50TCL_VP_ATTR_EN_0_7_XYNW							0xb0000000
+#define    NV50TCL_VP_ATTR_EN_0_7_NNZW							0xc0000000
+#define    NV50TCL_VP_ATTR_EN_0_7_XNZW							0xd0000000
+#define    NV50TCL_VP_ATTR_EN_0_7_NYZW							0xe0000000
+#define    NV50TCL_VP_ATTR_EN_0_7_XYZW							0xf0000000
+#define   NV50TCL_VP_ATTR_EN_0_6_SHIFT							24
+#define   NV50TCL_VP_ATTR_EN_0_6_MASK							0x0f000000
+#define    NV50TCL_VP_ATTR_EN_0_6_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_0_6_XNNN							0x01000000
+#define    NV50TCL_VP_ATTR_EN_0_6_NYNN							0x02000000
+#define    NV50TCL_VP_ATTR_EN_0_6_XYNN							0x03000000
+#define    NV50TCL_VP_ATTR_EN_0_6_NNZN							0x04000000
+#define    NV50TCL_VP_ATTR_EN_0_6_XNZN							0x05000000
+#define    NV50TCL_VP_ATTR_EN_0_6_NYZN							0x06000000
+#define    NV50TCL_VP_ATTR_EN_0_6_XYZN							0x07000000
+#define    NV50TCL_VP_ATTR_EN_0_6_NNNW							0x08000000
+#define    NV50TCL_VP_ATTR_EN_0_6_XNNW							0x09000000
+#define    NV50TCL_VP_ATTR_EN_0_6_NYNW							0x0a000000
+#define    NV50TCL_VP_ATTR_EN_0_6_XYNW							0x0b000000
+#define    NV50TCL_VP_ATTR_EN_0_6_NNZW							0x0c000000
+#define    NV50TCL_VP_ATTR_EN_0_6_XNZW							0x0d000000
+#define    NV50TCL_VP_ATTR_EN_0_6_NYZW							0x0e000000
+#define    NV50TCL_VP_ATTR_EN_0_6_XYZW							0x0f000000
+#define   NV50TCL_VP_ATTR_EN_0_5_SHIFT							20
+#define   NV50TCL_VP_ATTR_EN_0_5_MASK							0x00f00000
+#define    NV50TCL_VP_ATTR_EN_0_5_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_0_5_XNNN							0x00100000
+#define    NV50TCL_VP_ATTR_EN_0_5_NYNN							0x00200000
+#define    NV50TCL_VP_ATTR_EN_0_5_XYNN							0x00300000
+#define    NV50TCL_VP_ATTR_EN_0_5_NNZN							0x00400000
+#define    NV50TCL_VP_ATTR_EN_0_5_XNZN							0x00500000
+#define    NV50TCL_VP_ATTR_EN_0_5_NYZN							0x00600000
+#define    NV50TCL_VP_ATTR_EN_0_5_XYZN							0x00700000
+#define    NV50TCL_VP_ATTR_EN_0_5_NNNW							0x00800000
+#define    NV50TCL_VP_ATTR_EN_0_5_XNNW							0x00900000
+#define    NV50TCL_VP_ATTR_EN_0_5_NYNW							0x00a00000
+#define    NV50TCL_VP_ATTR_EN_0_5_XYNW							0x00b00000
+#define    NV50TCL_VP_ATTR_EN_0_5_NNZW							0x00c00000
+#define    NV50TCL_VP_ATTR_EN_0_5_XNZW							0x00d00000
+#define    NV50TCL_VP_ATTR_EN_0_5_NYZW							0x00e00000
+#define    NV50TCL_VP_ATTR_EN_0_5_XYZW							0x00f00000
+#define   NV50TCL_VP_ATTR_EN_0_4_SHIFT							16
+#define   NV50TCL_VP_ATTR_EN_0_4_MASK							0x000f0000
+#define    NV50TCL_VP_ATTR_EN_0_4_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_0_4_XNNN							0x00010000
+#define    NV50TCL_VP_ATTR_EN_0_4_NYNN							0x00020000
+#define    NV50TCL_VP_ATTR_EN_0_4_XYNN							0x00030000
+#define    NV50TCL_VP_ATTR_EN_0_4_NNZN							0x00040000
+#define    NV50TCL_VP_ATTR_EN_0_4_XNZN							0x00050000
+#define    NV50TCL_VP_ATTR_EN_0_4_NYZN							0x00060000
+#define    NV50TCL_VP_ATTR_EN_0_4_XYZN							0x00070000
+#define    NV50TCL_VP_ATTR_EN_0_4_NNNW							0x00080000
+#define    NV50TCL_VP_ATTR_EN_0_4_XNNW							0x00090000
+#define    NV50TCL_VP_ATTR_EN_0_4_NYNW							0x000a0000
+#define    NV50TCL_VP_ATTR_EN_0_4_XYNW							0x000b0000
+#define    NV50TCL_VP_ATTR_EN_0_4_NNZW							0x000c0000
+#define    NV50TCL_VP_ATTR_EN_0_4_XNZW							0x000d0000
+#define    NV50TCL_VP_ATTR_EN_0_4_NYZW							0x000e0000
+#define    NV50TCL_VP_ATTR_EN_0_4_XYZW							0x000f0000
+#define   NV50TCL_VP_ATTR_EN_0_3_SHIFT							12
+#define   NV50TCL_VP_ATTR_EN_0_3_MASK							0x0000f000
+#define    NV50TCL_VP_ATTR_EN_0_3_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_0_3_XNNN							0x00001000
+#define    NV50TCL_VP_ATTR_EN_0_3_NYNN							0x00002000
+#define    NV50TCL_VP_ATTR_EN_0_3_XYNN							0x00003000
+#define    NV50TCL_VP_ATTR_EN_0_3_NNZN							0x00004000
+#define    NV50TCL_VP_ATTR_EN_0_3_XNZN							0x00005000
+#define    NV50TCL_VP_ATTR_EN_0_3_NYZN							0x00006000
+#define    NV50TCL_VP_ATTR_EN_0_3_XYZN							0x00007000
+#define    NV50TCL_VP_ATTR_EN_0_3_NNNW							0x00008000
+#define    NV50TCL_VP_ATTR_EN_0_3_XNNW							0x00009000
+#define    NV50TCL_VP_ATTR_EN_0_3_NYNW							0x0000a000
+#define    NV50TCL_VP_ATTR_EN_0_3_XYNW							0x0000b000
+#define    NV50TCL_VP_ATTR_EN_0_3_NNZW							0x0000c000
+#define    NV50TCL_VP_ATTR_EN_0_3_XNZW							0x0000d000
+#define    NV50TCL_VP_ATTR_EN_0_3_NYZW							0x0000e000
+#define    NV50TCL_VP_ATTR_EN_0_3_XYZW							0x0000f000
+#define   NV50TCL_VP_ATTR_EN_0_2_SHIFT							8
+#define   NV50TCL_VP_ATTR_EN_0_2_MASK							0x00000f00
+#define    NV50TCL_VP_ATTR_EN_0_2_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_0_2_XNNN							0x00000100
+#define    NV50TCL_VP_ATTR_EN_0_2_NYNN							0x00000200
+#define    NV50TCL_VP_ATTR_EN_0_2_XYNN							0x00000300
+#define    NV50TCL_VP_ATTR_EN_0_2_NNZN							0x00000400
+#define    NV50TCL_VP_ATTR_EN_0_2_XNZN							0x00000500
+#define    NV50TCL_VP_ATTR_EN_0_2_NYZN							0x00000600
+#define    NV50TCL_VP_ATTR_EN_0_2_XYZN							0x00000700
+#define    NV50TCL_VP_ATTR_EN_0_2_NNNW							0x00000800
+#define    NV50TCL_VP_ATTR_EN_0_2_XNNW							0x00000900
+#define    NV50TCL_VP_ATTR_EN_0_2_NYNW							0x00000a00
+#define    NV50TCL_VP_ATTR_EN_0_2_XYNW							0x00000b00
+#define    NV50TCL_VP_ATTR_EN_0_2_NNZW							0x00000c00
+#define    NV50TCL_VP_ATTR_EN_0_2_XNZW							0x00000d00
+#define    NV50TCL_VP_ATTR_EN_0_2_NYZW							0x00000e00
+#define    NV50TCL_VP_ATTR_EN_0_2_XYZW							0x00000f00
+#define   NV50TCL_VP_ATTR_EN_0_1_SHIFT							4
+#define   NV50TCL_VP_ATTR_EN_0_1_MASK							0x000000f0
+#define    NV50TCL_VP_ATTR_EN_0_1_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_0_1_XNNN							0x00000010
+#define    NV50TCL_VP_ATTR_EN_0_1_NYNN							0x00000020
+#define    NV50TCL_VP_ATTR_EN_0_1_XYNN							0x00000030
+#define    NV50TCL_VP_ATTR_EN_0_1_NNZN							0x00000040
+#define    NV50TCL_VP_ATTR_EN_0_1_XNZN							0x00000050
+#define    NV50TCL_VP_ATTR_EN_0_1_NYZN							0x00000060
+#define    NV50TCL_VP_ATTR_EN_0_1_XYZN							0x00000070
+#define    NV50TCL_VP_ATTR_EN_0_1_NNNW							0x00000080
+#define    NV50TCL_VP_ATTR_EN_0_1_XNNW							0x00000090
+#define    NV50TCL_VP_ATTR_EN_0_1_NYNW							0x000000a0
+#define    NV50TCL_VP_ATTR_EN_0_1_XYNW							0x000000b0
+#define    NV50TCL_VP_ATTR_EN_0_1_NNZW							0x000000c0
+#define    NV50TCL_VP_ATTR_EN_0_1_XNZW							0x000000d0
+#define    NV50TCL_VP_ATTR_EN_0_1_NYZW							0x000000e0
+#define    NV50TCL_VP_ATTR_EN_0_1_XYZW							0x000000f0
+#define   NV50TCL_VP_ATTR_EN_0_0_SHIFT							0
+#define   NV50TCL_VP_ATTR_EN_0_0_MASK							0x0000000f
+#define    NV50TCL_VP_ATTR_EN_0_0_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_0_0_XNNN							0x00000001
+#define    NV50TCL_VP_ATTR_EN_0_0_NYNN							0x00000002
+#define    NV50TCL_VP_ATTR_EN_0_0_XYNN							0x00000003
+#define    NV50TCL_VP_ATTR_EN_0_0_NNZN							0x00000004
+#define    NV50TCL_VP_ATTR_EN_0_0_XNZN							0x00000005
+#define    NV50TCL_VP_ATTR_EN_0_0_NYZN							0x00000006
+#define    NV50TCL_VP_ATTR_EN_0_0_XYZN							0x00000007
+#define    NV50TCL_VP_ATTR_EN_0_0_NNNW							0x00000008
+#define    NV50TCL_VP_ATTR_EN_0_0_XNNW							0x00000009
+#define    NV50TCL_VP_ATTR_EN_0_0_NYNW							0x0000000a
+#define    NV50TCL_VP_ATTR_EN_0_0_XYNW							0x0000000b
+#define    NV50TCL_VP_ATTR_EN_0_0_NNZW							0x0000000c
+#define    NV50TCL_VP_ATTR_EN_0_0_XNZW							0x0000000d
+#define    NV50TCL_VP_ATTR_EN_0_0_NYZW							0x0000000e
+#define    NV50TCL_VP_ATTR_EN_0_0_XYZW							0x0000000f
+#define  NV50TCL_VP_ATTR_EN_1								0x00001654
+#define   NV50TCL_VP_ATTR_EN_1_15_SHIFT							28
+#define   NV50TCL_VP_ATTR_EN_1_15_MASK							0xf0000000
+#define    NV50TCL_VP_ATTR_EN_1_15_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_1_15_XNNN							0x10000000
+#define    NV50TCL_VP_ATTR_EN_1_15_NYNN							0x20000000
+#define    NV50TCL_VP_ATTR_EN_1_15_XYNN							0x30000000
+#define    NV50TCL_VP_ATTR_EN_1_15_NNZN							0x40000000
+#define    NV50TCL_VP_ATTR_EN_1_15_XNZN							0x50000000
+#define    NV50TCL_VP_ATTR_EN_1_15_NYZN							0x60000000
+#define    NV50TCL_VP_ATTR_EN_1_15_XYZN							0x70000000
+#define    NV50TCL_VP_ATTR_EN_1_15_NNNW							0x80000000
+#define    NV50TCL_VP_ATTR_EN_1_15_XNNW							0x90000000
+#define    NV50TCL_VP_ATTR_EN_1_15_NYNW							0xa0000000
+#define    NV50TCL_VP_ATTR_EN_1_15_XYNW							0xb0000000
+#define    NV50TCL_VP_ATTR_EN_1_15_NNZW							0xc0000000
+#define    NV50TCL_VP_ATTR_EN_1_15_XNZW							0xd0000000
+#define    NV50TCL_VP_ATTR_EN_1_15_NYZW							0xe0000000
+#define    NV50TCL_VP_ATTR_EN_1_15_XYZW							0xf0000000
+#define   NV50TCL_VP_ATTR_EN_1_14_SHIFT							24
+#define   NV50TCL_VP_ATTR_EN_1_14_MASK							0x0f000000
+#define    NV50TCL_VP_ATTR_EN_1_14_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_1_14_XNNN							0x01000000
+#define    NV50TCL_VP_ATTR_EN_1_14_NYNN							0x02000000
+#define    NV50TCL_VP_ATTR_EN_1_14_XYNN							0x03000000
+#define    NV50TCL_VP_ATTR_EN_1_14_NNZN							0x04000000
+#define    NV50TCL_VP_ATTR_EN_1_14_XNZN							0x05000000
+#define    NV50TCL_VP_ATTR_EN_1_14_NYZN							0x06000000
+#define    NV50TCL_VP_ATTR_EN_1_14_XYZN							0x07000000
+#define    NV50TCL_VP_ATTR_EN_1_14_NNNW							0x08000000
+#define    NV50TCL_VP_ATTR_EN_1_14_XNNW							0x09000000
+#define    NV50TCL_VP_ATTR_EN_1_14_NYNW							0x0a000000
+#define    NV50TCL_VP_ATTR_EN_1_14_XYNW							0x0b000000
+#define    NV50TCL_VP_ATTR_EN_1_14_NNZW							0x0c000000
+#define    NV50TCL_VP_ATTR_EN_1_14_XNZW							0x0d000000
+#define    NV50TCL_VP_ATTR_EN_1_14_NYZW							0x0e000000
+#define    NV50TCL_VP_ATTR_EN_1_14_XYZW							0x0f000000
+#define   NV50TCL_VP_ATTR_EN_1_13_SHIFT							20
+#define   NV50TCL_VP_ATTR_EN_1_13_MASK							0x00f00000
+#define    NV50TCL_VP_ATTR_EN_1_13_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_1_13_XNNN							0x00100000
+#define    NV50TCL_VP_ATTR_EN_1_13_NYNN							0x00200000
+#define    NV50TCL_VP_ATTR_EN_1_13_XYNN							0x00300000
+#define    NV50TCL_VP_ATTR_EN_1_13_NNZN							0x00400000
+#define    NV50TCL_VP_ATTR_EN_1_13_XNZN							0x00500000
+#define    NV50TCL_VP_ATTR_EN_1_13_NYZN							0x00600000
+#define    NV50TCL_VP_ATTR_EN_1_13_XYZN							0x00700000
+#define    NV50TCL_VP_ATTR_EN_1_13_NNNW							0x00800000
+#define    NV50TCL_VP_ATTR_EN_1_13_XNNW							0x00900000
+#define    NV50TCL_VP_ATTR_EN_1_13_NYNW							0x00a00000
+#define    NV50TCL_VP_ATTR_EN_1_13_XYNW							0x00b00000
+#define    NV50TCL_VP_ATTR_EN_1_13_NNZW							0x00c00000
+#define    NV50TCL_VP_ATTR_EN_1_13_XNZW							0x00d00000
+#define    NV50TCL_VP_ATTR_EN_1_13_NYZW							0x00e00000
+#define    NV50TCL_VP_ATTR_EN_1_13_XYZW							0x00f00000
+#define   NV50TCL_VP_ATTR_EN_1_12_SHIFT							16
+#define   NV50TCL_VP_ATTR_EN_1_12_MASK							0x000f0000
+#define    NV50TCL_VP_ATTR_EN_1_12_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_1_12_XNNN							0x00010000
+#define    NV50TCL_VP_ATTR_EN_1_12_NYNN							0x00020000
+#define    NV50TCL_VP_ATTR_EN_1_12_XYNN							0x00030000
+#define    NV50TCL_VP_ATTR_EN_1_12_NNZN							0x00040000
+#define    NV50TCL_VP_ATTR_EN_1_12_XNZN							0x00050000
+#define    NV50TCL_VP_ATTR_EN_1_12_NYZN							0x00060000
+#define    NV50TCL_VP_ATTR_EN_1_12_XYZN							0x00070000
+#define    NV50TCL_VP_ATTR_EN_1_12_NNNW							0x00080000
+#define    NV50TCL_VP_ATTR_EN_1_12_XNNW							0x00090000
+#define    NV50TCL_VP_ATTR_EN_1_12_NYNW							0x000a0000
+#define    NV50TCL_VP_ATTR_EN_1_12_XYNW							0x000b0000
+#define    NV50TCL_VP_ATTR_EN_1_12_NNZW							0x000c0000
+#define    NV50TCL_VP_ATTR_EN_1_12_XNZW							0x000d0000
+#define    NV50TCL_VP_ATTR_EN_1_12_NYZW							0x000e0000
+#define    NV50TCL_VP_ATTR_EN_1_12_XYZW							0x000f0000
+#define   NV50TCL_VP_ATTR_EN_1_11_SHIFT							12
+#define   NV50TCL_VP_ATTR_EN_1_11_MASK							0x0000f000
+#define    NV50TCL_VP_ATTR_EN_1_11_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_1_11_XNNN							0x00001000
+#define    NV50TCL_VP_ATTR_EN_1_11_NYNN							0x00002000
+#define    NV50TCL_VP_ATTR_EN_1_11_XYNN							0x00003000
+#define    NV50TCL_VP_ATTR_EN_1_11_NNZN							0x00004000
+#define    NV50TCL_VP_ATTR_EN_1_11_XNZN							0x00005000
+#define    NV50TCL_VP_ATTR_EN_1_11_NYZN							0x00006000
+#define    NV50TCL_VP_ATTR_EN_1_11_XYZN							0x00007000
+#define    NV50TCL_VP_ATTR_EN_1_11_NNNW							0x00008000
+#define    NV50TCL_VP_ATTR_EN_1_11_XNNW							0x00009000
+#define    NV50TCL_VP_ATTR_EN_1_11_NYNW							0x0000a000
+#define    NV50TCL_VP_ATTR_EN_1_11_XYNW							0x0000b000
+#define    NV50TCL_VP_ATTR_EN_1_11_NNZW							0x0000c000
+#define    NV50TCL_VP_ATTR_EN_1_11_XNZW							0x0000d000
+#define    NV50TCL_VP_ATTR_EN_1_11_NYZW							0x0000e000
+#define    NV50TCL_VP_ATTR_EN_1_11_XYZW							0x0000f000
+#define   NV50TCL_VP_ATTR_EN_1_10_SHIFT							8
+#define   NV50TCL_VP_ATTR_EN_1_10_MASK							0x00000f00
+#define    NV50TCL_VP_ATTR_EN_1_10_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_1_10_XNNN							0x00000100
+#define    NV50TCL_VP_ATTR_EN_1_10_NYNN							0x00000200
+#define    NV50TCL_VP_ATTR_EN_1_10_XYNN							0x00000300
+#define    NV50TCL_VP_ATTR_EN_1_10_NNZN							0x00000400
+#define    NV50TCL_VP_ATTR_EN_1_10_XNZN							0x00000500
+#define    NV50TCL_VP_ATTR_EN_1_10_NYZN							0x00000600
+#define    NV50TCL_VP_ATTR_EN_1_10_XYZN							0x00000700
+#define    NV50TCL_VP_ATTR_EN_1_10_NNNW							0x00000800
+#define    NV50TCL_VP_ATTR_EN_1_10_XNNW							0x00000900
+#define    NV50TCL_VP_ATTR_EN_1_10_NYNW							0x00000a00
+#define    NV50TCL_VP_ATTR_EN_1_10_XYNW							0x00000b00
+#define    NV50TCL_VP_ATTR_EN_1_10_NNZW							0x00000c00
+#define    NV50TCL_VP_ATTR_EN_1_10_XNZW							0x00000d00
+#define    NV50TCL_VP_ATTR_EN_1_10_NYZW							0x00000e00
+#define    NV50TCL_VP_ATTR_EN_1_10_XYZW							0x00000f00
+#define   NV50TCL_VP_ATTR_EN_1_9_SHIFT							4
+#define   NV50TCL_VP_ATTR_EN_1_9_MASK							0x000000f0
+#define    NV50TCL_VP_ATTR_EN_1_9_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_1_9_XNNN							0x00000010
+#define    NV50TCL_VP_ATTR_EN_1_9_NYNN							0x00000020
+#define    NV50TCL_VP_ATTR_EN_1_9_XYNN							0x00000030
+#define    NV50TCL_VP_ATTR_EN_1_9_NNZN							0x00000040
+#define    NV50TCL_VP_ATTR_EN_1_9_XNZN							0x00000050
+#define    NV50TCL_VP_ATTR_EN_1_9_NYZN							0x00000060
+#define    NV50TCL_VP_ATTR_EN_1_9_XYZN							0x00000070
+#define    NV50TCL_VP_ATTR_EN_1_9_NNNW							0x00000080
+#define    NV50TCL_VP_ATTR_EN_1_9_XNNW							0x00000090
+#define    NV50TCL_VP_ATTR_EN_1_9_NYNW							0x000000a0
+#define    NV50TCL_VP_ATTR_EN_1_9_XYNW							0x000000b0
+#define    NV50TCL_VP_ATTR_EN_1_9_NNZW							0x000000c0
+#define    NV50TCL_VP_ATTR_EN_1_9_XNZW							0x000000d0
+#define    NV50TCL_VP_ATTR_EN_1_9_NYZW							0x000000e0
+#define    NV50TCL_VP_ATTR_EN_1_9_XYZW							0x000000f0
+#define   NV50TCL_VP_ATTR_EN_1_8_SHIFT							0
+#define   NV50TCL_VP_ATTR_EN_1_8_MASK							0x0000000f
+#define    NV50TCL_VP_ATTR_EN_1_8_NONE							0x00000000
+#define    NV50TCL_VP_ATTR_EN_1_8_XNNN							0x00000001
+#define    NV50TCL_VP_ATTR_EN_1_8_NYNN							0x00000002
+#define    NV50TCL_VP_ATTR_EN_1_8_XYNN							0x00000003
+#define    NV50TCL_VP_ATTR_EN_1_8_NNZN							0x00000004
+#define    NV50TCL_VP_ATTR_EN_1_8_XNZN							0x00000005
+#define    NV50TCL_VP_ATTR_EN_1_8_NYZN							0x00000006
+#define    NV50TCL_VP_ATTR_EN_1_8_XYZN							0x00000007
+#define    NV50TCL_VP_ATTR_EN_1_8_NNNW							0x00000008
+#define    NV50TCL_VP_ATTR_EN_1_8_XNNW							0x00000009
+#define    NV50TCL_VP_ATTR_EN_1_8_NYNW							0x0000000a
+#define    NV50TCL_VP_ATTR_EN_1_8_XYNW							0x0000000b
+#define    NV50TCL_VP_ATTR_EN_1_8_NNZW							0x0000000c
+#define    NV50TCL_VP_ATTR_EN_1_8_XNZW							0x0000000d
+#define    NV50TCL_VP_ATTR_EN_1_8_NYZW							0x0000000e
+#define    NV50TCL_VP_ATTR_EN_1_8_XYZW							0x0000000f
+#define  NV50TCL_POINT_SPRITE_CTRL							0x00001660
+#define  NV50TCL_LINE_STIPPLE_ENABLE							0x0000166c
+#define  NV50TCL_LINE_STIPPLE_PATTERN							0x00001680
+#define  NV50TCL_PROVOKING_VERTEX_LAST							0x00001684
+#define  NV50TCL_VERTEX_TWO_SIDE_ENABLE							0x00001688
+#define  NV50TCL_POLYGON_STIPPLE_ENABLE							0x0000168c
+#define  NV50TCL_SET_PROGRAM_CB								0x00001694
+#define   NV50TCL_SET_PROGRAM_CB_PROGRAM_SHIFT						4
+#define   NV50TCL_SET_PROGRAM_CB_PROGRAM_MASK						0x000000f0
+#define    NV50TCL_SET_PROGRAM_CB_PROGRAM_VERTEX					0x00000000
+#define    NV50TCL_SET_PROGRAM_CB_PROGRAM_GEOMETRY					0x00000020
+#define    NV50TCL_SET_PROGRAM_CB_PROGRAM_FRAGMENT					0x00000030
+#define   NV50TCL_SET_PROGRAM_CB_INDEX_SHIFT						8
+#define   NV50TCL_SET_PROGRAM_CB_INDEX_MASK						0x00000f00
+#define   NV50TCL_SET_PROGRAM_CB_BUFFER_SHIFT						12
+#define   NV50TCL_SET_PROGRAM_CB_BUFFER_MASK						0x0007f000
+#define   NV50TCL_SET_PROGRAM_CB_VALID							(1 <<  0)
+#define  NV50TCL_VP_RESULT_MAP_SIZE							0x000016ac
+#define  NV50TCL_VP_REG_ALLOC_TEMP							0x000016b0
+#define  NV50TCL_VP_REG_ALLOC_RESULT							0x000016b8
+#define  NV50TCL_VP_RESULT_MAP(x)							(0x000016bc+((x)*4))
+#define  NV50TCL_VP_RESULT_MAP__SIZE							0x00000010
+#define   NV50TCL_VP_RESULT_MAP_0_SHIFT							0
+#define   NV50TCL_VP_RESULT_MAP_0_MASK							0x000000ff
+#define   NV50TCL_VP_RESULT_MAP_1_SHIFT							8
+#define   NV50TCL_VP_RESULT_MAP_1_MASK							0x0000ff00
+#define   NV50TCL_VP_RESULT_MAP_2_SHIFT							16
+#define   NV50TCL_VP_RESULT_MAP_2_MASK							0x00ff0000
+#define   NV50TCL_VP_RESULT_MAP_3_SHIFT							24
+#define   NV50TCL_VP_RESULT_MAP_3_MASK							0xff000000
+#define  NV50TCL_POLYGON_STIPPLE_PATTERN(x)						(0x00001700+((x)*4))
+#define  NV50TCL_POLYGON_STIPPLE_PATTERN__SIZE						0x00000020
+#define  NV50TCL_GP_ENABLE								0x00001798
+#define  NV50TCL_GP_REG_ALLOC_TEMP							0x000017a0
+#define  NV50TCL_GP_REG_ALLOC_RESULT							0x000017a8
+#define  NV50TCL_GP_RESULT_MAP_SIZE							0x000017ac
+#define  NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE						0x000017b0
+#define   NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE_POINTS					0x00000001
+#define   NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE_LINE_STRIP					0x00000002
+#define   NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE_TRIANGLE_STRIP				0x00000003
+#define  NV50TCL_RASTERIZE_ENABLE							0x000017b4
+#define  NV50TCL_STRMOUT_ENABLE								0x000017b8
+#define  NV50TCL_GP_RESULT_MAP(x)							(0x000017fc+((x)*4))
+#define  NV50TCL_GP_RESULT_MAP__SIZE							0x00000020
+#define   NV50TCL_GP_RESULT_MAP_0_SHIFT							0
+#define   NV50TCL_GP_RESULT_MAP_0_MASK							0x000000ff
+#define   NV50TCL_GP_RESULT_MAP_1_SHIFT							8
+#define   NV50TCL_GP_RESULT_MAP_1_MASK							0x0000ff00
+#define   NV50TCL_GP_RESULT_MAP_2_SHIFT							16
+#define   NV50TCL_GP_RESULT_MAP_2_MASK							0x00ff0000
+#define   NV50TCL_GP_RESULT_MAP_3_SHIFT							24
+#define   NV50TCL_GP_RESULT_MAP_3_MASK							0xff000000
+#define  NV50TCL_MAP_SEMANTIC_0								0x00001904
+#define   NV50TCL_MAP_SEMANTIC_0_FFC0_ID_SHIFT						0
+#define   NV50TCL_MAP_SEMANTIC_0_FFC0_ID_MASK						0x000000ff
+#define   NV50TCL_MAP_SEMANTIC_0_BFC0_ID_SHIFT						8
+#define   NV50TCL_MAP_SEMANTIC_0_BFC0_ID_MASK						0x0000ff00
+#define   NV50TCL_MAP_SEMANTIC_0_COLR_NR_SHIFT						16
+#define   NV50TCL_MAP_SEMANTIC_0_COLR_NR_MASK						0x00ff0000
+#define   NV50TCL_MAP_SEMANTIC_0_CLMP_EN_SHIFT						24
+#define   NV50TCL_MAP_SEMANTIC_0_CLMP_EN_MASK						0xff000000
+#define  NV50TCL_MAP_SEMANTIC_1								0x00001908
+#define   NV50TCL_MAP_SEMANTIC_1_CLIP_LO_SHIFT						0
+#define   NV50TCL_MAP_SEMANTIC_1_CLIP_LO_MASK						0x000000ff
+#define   NV50TCL_MAP_SEMANTIC_1_CLIP_HI_SHIFT						8
+#define   NV50TCL_MAP_SEMANTIC_1_CLIP_HI_MASK						0x0000ff00
+#define  NV50TCL_MAP_SEMANTIC_2								0x0000190c
+#define   NV50TCL_MAP_SEMANTIC_2_LAYER_ID_SHIFT						0
+#define   NV50TCL_MAP_SEMANTIC_2_LAYER_ID_MASK						0x000000ff
+#define  NV50TCL_MAP_SEMANTIC_3								0x00001910
+#define   NV50TCL_MAP_SEMANTIC_3_PTSZ_EN						(1 <<  0)
+#define   NV50TCL_MAP_SEMANTIC_3_PTSZ_ID_SHIFT						4
+#define   NV50TCL_MAP_SEMANTIC_3_PTSZ_ID_MASK						0x00000ff0
+#define  NV50TCL_MAP_SEMANTIC_4								0x00001914
+#define   NV50TCL_MAP_SEMANTIC_4_PRIM_ID_SHIFT						0
+#define   NV50TCL_MAP_SEMANTIC_4_PRIM_ID_MASK						0x000000ff
+#define  NV50TCL_CULL_FACE_ENABLE							0x00001918
+#define  NV50TCL_FRONT_FACE								0x0000191c
+#define   NV50TCL_FRONT_FACE_CW								0x00000900
+#define   NV50TCL_FRONT_FACE_CCW							0x00000901
+#define  NV50TCL_CULL_FACE								0x00001920
+#define   NV50TCL_CULL_FACE_FRONT							0x00000404
+#define   NV50TCL_CULL_FACE_BACK							0x00000405
+#define   NV50TCL_CULL_FACE_FRONT_AND_BACK						0x00000408
+#define  NV50TCL_VIEWPORT_TRANSFORM_EN							0x0000192c
+#define  NV50TCL_VIEW_VOLUME_CLIP_CTRL							0x0000193c
+#define  NV50TCL_VIEWPORT_CLIP_RECTS_EN							0x0000194c
+#define  NV50TCL_FP_CTRL_UNK196C							0x0000196c
+#define  NV50TCL_FP_INTERPOLANT_CTRL							0x00001988
+#define   NV50TCL_FP_INTERPOLANT_CTRL_UMASK_SHIFT					24
+#define   NV50TCL_FP_INTERPOLANT_CTRL_UMASK_MASK					0xff000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NONE					0x00000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNNN					0x01000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYNN					0x02000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYNN					0x03000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NNZN					0x04000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNZN					0x05000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYZN					0x06000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYZN					0x07000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NNNW					0x08000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNNW					0x09000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYNW					0x0a000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYNW					0x0b000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NNZW					0x0c000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNZW					0x0d000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYZW					0x0e000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYZW					0x0f000000
+#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_NONFLAT_SHIFT				16
+#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_NONFLAT_MASK				0x00ff0000
+#define   NV50TCL_FP_INTERPOLANT_CTRL_OFFSET_SHIFT					8
+#define   NV50TCL_FP_INTERPOLANT_CTRL_OFFSET_MASK					0x0000ff00
+#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_SHIFT					0
+#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_MASK					0x000000ff
+#define  NV50TCL_FP_REG_ALLOC_TEMP							0x0000198c
+#define  NV50TCL_WARP_HALVES								0x000019a0
+#define  NV50TCL_FP_CONTROL								0x000019a8
+#define   NV50TCL_FP_CONTROL_MULTIPLE_RESULTS						(1 <<  0)
+#define   NV50TCL_FP_CONTROL_EXPORTS_Z							(1 <<  8)
+#define   NV50TCL_FP_CONTROL_USES_KIL							(1 << 20)
+#define  NV50TCL_DEPTH_BOUNDS_EN							0x000019bc
+#define  NV50TCL_LOGIC_OP_ENABLE							0x000019c4
+#define  NV50TCL_LOGIC_OP								0x000019c8
+#define   NV50TCL_LOGIC_OP_CLEAR							0x00001500
+#define   NV50TCL_LOGIC_OP_AND								0x00001501
+#define   NV50TCL_LOGIC_OP_AND_REVERSE							0x00001502
+#define   NV50TCL_LOGIC_OP_COPY								0x00001503
+#define   NV50TCL_LOGIC_OP_AND_INVERTED							0x00001504
+#define   NV50TCL_LOGIC_OP_NOOP								0x00001505
+#define   NV50TCL_LOGIC_OP_XOR								0x00001506
+#define   NV50TCL_LOGIC_OP_OR								0x00001507
+#define   NV50TCL_LOGIC_OP_NOR								0x00001508
+#define   NV50TCL_LOGIC_OP_EQUIV							0x00001509
+#define   NV50TCL_LOGIC_OP_INVERT							0x0000150a
+#define   NV50TCL_LOGIC_OP_OR_REVERSE							0x0000150b
+#define   NV50TCL_LOGIC_OP_COPY_INVERTED						0x0000150c
+#define   NV50TCL_LOGIC_OP_OR_INVERTED							0x0000150d
+#define   NV50TCL_LOGIC_OP_NAND								0x0000150e
+#define   NV50TCL_LOGIC_OP_SET								0x0000150f
+#define  NV50TCL_CLEAR_BUFFERS								0x000019d0
+#define   NV50TCL_CLEAR_BUFFERS_Z							(1 <<  0)
+#define   NV50TCL_CLEAR_BUFFERS_S							(1 <<  1)
+#define   NV50TCL_CLEAR_BUFFERS_R							(1 <<  2)
+#define   NV50TCL_CLEAR_BUFFERS_G							(1 <<  3)
+#define   NV50TCL_CLEAR_BUFFERS_B							(1 <<  4)
+#define   NV50TCL_CLEAR_BUFFERS_A							(1 <<  5)
+#define   NV50TCL_CLEAR_BUFFERS_RT_SHIFT						6
+#define   NV50TCL_CLEAR_BUFFERS_RT_MASK							0x000003c0
+#define   NV50TCL_CLEAR_BUFFERS_LAYER_SHIFT						10
+#define   NV50TCL_CLEAR_BUFFERS_LAYER_MASK						0x0007fc00
+#define  NV50TCL_COLOR_MASK(x)								(0x00001a00+((x)*4))
+#define  NV50TCL_COLOR_MASK__SIZE							0x00000008
+#define   NV50TCL_COLOR_MASK_R_SHIFT							0
+#define   NV50TCL_COLOR_MASK_R_MASK							0x0000000f
+#define   NV50TCL_COLOR_MASK_G_SHIFT							4
+#define   NV50TCL_COLOR_MASK_G_MASK							0x000000f0
+#define   NV50TCL_COLOR_MASK_B_SHIFT							8
+#define   NV50TCL_COLOR_MASK_B_MASK							0x00000f00
+#define   NV50TCL_COLOR_MASK_A_SHIFT							12
+#define   NV50TCL_COLOR_MASK_A_MASK							0x0000f000
+#define  NV50TCL_STRMOUT_ADDRESS_HIGH(x)						(0x00001a80+((x)*16))
+#define  NV50TCL_STRMOUT_ADDRESS_HIGH__SIZE						0x00000004
+#define  NV50TCL_STRMOUT_ADDRESS_LOW(x)							(0x00001a84+((x)*16))
+#define  NV50TCL_STRMOUT_ADDRESS_LOW__SIZE						0x00000004
+#define  NV50TCL_STRMOUT_NUM_ATTRIBS(x)							(0x00001a88+((x)*16))
+#define  NV50TCL_STRMOUT_NUM_ATTRIBS__SIZE						0x00000004
+#define  NV50TCL_VERTEX_ARRAY_ATTRIB(x)							(0x00001ac0+((x)*4))
+#define  NV50TCL_VERTEX_ARRAY_ATTRIB__SIZE						0x00000010
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_BUFFER_SHIFT					0
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_BUFFER_MASK					0x0000000f
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_CONST						(1 <<  4)
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_OFFSET_SHIFT					5
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_OFFSET_MASK					0x0007ffe0
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_SHIFT					19
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_MASK					0x01f80000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32_32_32				0x00080000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32_32					0x00100000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16_16_16				0x00180000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32					0x00200000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16_16					0x00280000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8_8_8					0x00500000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16					0x00780000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32					0x00900000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8_8					0x00980000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8					0x00c00000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16					0x00d80000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8						0x00e80000
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SHIFT					25
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_MASK						0x7e000000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_FLOAT					0x7e000000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UNORM					0x24000000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SNORM					0x12000000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_USCALED					0x5a000000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SSCALED					0x6c000000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UINT					0x48000000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SINT					0x36000000
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_BGRA						(1 << 31)
+#define  NV50TCL_QUERY_ADDRESS_HIGH							0x00001b00
+#define  NV50TCL_QUERY_ADDRESS_LOW							0x00001b04
+#define  NV50TCL_QUERY_COUNTER								0x00001b08
+#define  NV50TCL_QUERY_GET								0x00001b0c
+
+
+#define NV84TCL										0x00008297
+
+
+
+#define NVA0TCL										0x00008397
+
+
+
+#define NVA8TCL										0x00008597
+
+
+
+#define NV50_COMPUTE									0x000050c0
+
+#define  NV50_COMPUTE_NOP								0x00000100
+#define  NV50_COMPUTE_NOTIFY								0x00000104
+#define  NV50_COMPUTE_SERIALIZE								0x00000110
+#define  NV50_COMPUTE_DMA_NOTIFY							0x00000180
+#define  NV50_COMPUTE_DMA_GLOBAL							0x000001a0
+#define  NV50_COMPUTE_DMA_QUERY								0x000001a4
+#define  NV50_COMPUTE_DMA_LOCAL								0x000001b8
+#define  NV50_COMPUTE_DMA_STACK								0x000001bc
+#define  NV50_COMPUTE_DMA_CODE_CB							0x000001c0
+#define  NV50_COMPUTE_DMA_TSC								0x000001c4
+#define  NV50_COMPUTE_DMA_TIC								0x000001c8
+#define  NV50_COMPUTE_DMA_TEXTURE							0x000001cc
+#define  NV50_COMPUTE_CP_ADDRESS_HIGH							0x00000210
+#define  NV50_COMPUTE_CP_ADDRESS_LOW							0x00000214
+#define  NV50_COMPUTE_STACK_ADDRESS_HIGH						0x00000218
+#define  NV50_COMPUTE_STACK_ADDRESS_LOW							0x0000021c
+#define  NV50_COMPUTE_STACK_SIZE_LOG							0x00000220
+#define  NV50_COMPUTE_TSC_ADDRESS_HIGH							0x0000022c
+#define  NV50_COMPUTE_TSC_ADDRESS_LOW							0x00000230
+#define  NV50_COMPUTE_TSC_LIMIT								0x00000234
+#define  NV50_COMPUTE_CB_ADDR								0x00000238
+#define   NV50_COMPUTE_CB_ADDR_ID_SHIFT							8
+#define   NV50_COMPUTE_CB_ADDR_ID_MASK							0x003fff00
+#define   NV50_COMPUTE_CB_ADDR_BUFFER_SHIFT						0
+#define   NV50_COMPUTE_CB_ADDR_BUFFER_MASK						0x0000007f
+#define  NV50_COMPUTE_CB_DATA(x)							(0x0000023c+((x)*4))
+#define  NV50_COMPUTE_CB_DATA__SIZE							0x00000010
+#define  NV50_COMPUTE_DELAY1								0x00000284
+#define  NV50_COMPUTE_WATCHDOG_TIMER							0x00000288
+#define  NV50_COMPUTE_DELAY2								0x0000028c
+#define  NV50_COMPUTE_LOCAL_ADDRESS_HIGH						0x00000294
+#define  NV50_COMPUTE_LOCAL_ADDRESS_LOW							0x00000298
+#define  NV50_COMPUTE_LOCAL_SIZE_LOG							0x0000029c
+#define  NV50_COMPUTE_CB_DEF_ADDRESS_HIGH						0x000002a4
+#define  NV50_COMPUTE_CB_DEF_ADDRESS_LOW						0x000002a8
+#define  NV50_COMPUTE_CB_DEF_SET							0x000002ac
+#define   NV50_COMPUTE_CB_DEF_SET_SIZE_SHIFT						0
+#define   NV50_COMPUTE_CB_DEF_SET_SIZE_MASK						0x0000ffff
+#define   NV50_COMPUTE_CB_DEF_SET_BUFFER_SHIFT						16
+#define   NV50_COMPUTE_CB_DEF_SET_BUFFER_MASK						0x007f0000
+#define  NV50_COMPUTE_BLOCK_ALLOC							0x000002b4
+#define   NV50_COMPUTE_BLOCK_ALLOC_THREADS_SHIFT					0
+#define   NV50_COMPUTE_BLOCK_ALLOC_THREADS_MASK						0x0000ffff
+#define   NV50_COMPUTE_BLOCK_ALLOC_BARRIERS_SHIFT					16
+#define   NV50_COMPUTE_BLOCK_ALLOC_BARRIERS_MASK					0xffff0000
+#define  NV50_COMPUTE_CP_REG_ALLOC_TEMP							0x000002c0
+#define  NV50_COMPUTE_TIC_ADDRESS_HIGH							0x000002c4
+#define  NV50_COMPUTE_TIC_ADDRESS_LOW							0x000002c8
+#define  NV50_COMPUTE_TIC_LIMIT								0x000002cc
+#define  NV50_COMPUTE_PM_SET(x)								(0x000002d0+((x)*4))
+#define  NV50_COMPUTE_PM_SET__SIZE							0x00000004
+#define  NV50_COMPUTE_PM_CONTROL(x)							(0x000002e0+((x)*4))
+#define  NV50_COMPUTE_PM_CONTROL__SIZE							0x00000004
+#define   NV50_COMPUTE_PM_CONTROL_UNK0							(1 <<  0)
+#define   NV50_COMPUTE_PM_CONTROL_UNK1_SHIFT						4
+#define   NV50_COMPUTE_PM_CONTROL_UNK1_MASK						0x00000070
+#define   NV50_COMPUTE_PM_CONTROL_UNK2_SHIFT						8
+#define   NV50_COMPUTE_PM_CONTROL_UNK2_MASK						0xffffff00
+#define  NV50_COMPUTE_LOCAL_WARPS_LOG_ALLOC						0x000002fc
+#define  NV50_COMPUTE_LOCAL_WARPS_NO_CLAMP						0x00000300
+#define  NV50_COMPUTE_STACK_WARPS_LOG_ALLOC						0x00000304
+#define  NV50_COMPUTE_STACK_WARPS_NO_CLAMP						0x00000308
+#define  NV50_COMPUTE_QUERY_ADDRESS_HIGH						0x00000310
+#define  NV50_COMPUTE_QUERY_ADDRESS_LOW							0x00000314
+#define  NV50_COMPUTE_QUERY_COUNTER							0x00000318
+#define  NV50_COMPUTE_QUERY_GET								0x0000031c
+#define  NV50_COMPUTE_COND_ADDRESS_HIGH							0x00000320
+#define  NV50_COMPUTE_COND_ADDRESS_LOW							0x00000324
+#define  NV50_COMPUTE_COND_MODE								0x00000328
+#define   NV50_COMPUTE_COND_MODE_NEVER							0x00000000
+#define   NV50_COMPUTE_COND_MODE_ALWAYS							0x00000001
+#define   NV50_COMPUTE_COND_MODE_RES							0x00000002
+#define   NV50_COMPUTE_COND_MODE_NOT_RES_AND_NOT_ID					0x00000003
+#define   NV50_COMPUTE_COND_MODE_RES_OR_ID						0x00000004
+#define  NV50_COMPUTE_LAUNCH								0x00000368
+#define  NV50_COMPUTE_USER_PARAM_COUNT							0x00000374
+#define   NV50_COMPUTE_USER_PARAM_COUNT_COUNT_SHIFT					8
+#define   NV50_COMPUTE_USER_PARAM_COUNT_COUNT_MASK					0x0000ff00
+#define  NV50_COMPUTE_LINKED_TSC							0x00000378
+#define  NV50_COMPUTE_CODE_CB_FLUSH							0x00000380
+#define  NV50_COMPUTE_GRIDDIM								0x000003a4
+#define   NV50_COMPUTE_GRIDDIM_X_SHIFT							0
+#define   NV50_COMPUTE_GRIDDIM_X_MASK							0x0000ffff
+#define   NV50_COMPUTE_GRIDDIM_Y_SHIFT							16
+#define   NV50_COMPUTE_GRIDDIM_Y_MASK							0xffff0000
+#define  NV50_COMPUTE_SHARED_SIZE							0x000003a8
+#define  NV50_COMPUTE_BLOCKDIM_YX							0x000003ac
+#define   NV50_COMPUTE_BLOCKDIM_YX_X_SHIFT						0
+#define   NV50_COMPUTE_BLOCKDIM_YX_X_MASK						0x0000ffff
+#define   NV50_COMPUTE_BLOCKDIM_YX_Y_SHIFT						16
+#define   NV50_COMPUTE_BLOCKDIM_YX_Y_MASK						0xffff0000
+#define  NV50_COMPUTE_BLOCKDIM_Z							0x000003b0
+#define  NV50_COMPUTE_CP_START_ID							0x000003b4
+#define  NV50_COMPUTE_WARP_HALVES							0x000003b8
+#define  NV50_COMPUTE_TEX_LIMITS							0x000003bc
+#define   NV50_COMPUTE_TEX_LIMITS_SAMPLERS_LOG2_SHIFT					0
+#define   NV50_COMPUTE_TEX_LIMITS_SAMPLERS_LOG2_MASK					0x0000000f
+#define   NV50_COMPUTE_TEX_LIMITS_TEXTURES_LOG2_SHIFT					4
+#define   NV50_COMPUTE_TEX_LIMITS_TEXTURES_LOG2_MASK					0x000000f0
+#define  NV50_COMPUTE_BIND_TSC								0x000003c0
+#define   NV50_COMPUTE_BIND_TSC_VALID							(1 <<  0)
+#define   NV50_COMPUTE_BIND_TSC_SAMPLER_SHIFT						4
+#define   NV50_COMPUTE_BIND_TSC_SAMPLER_MASK						0x000000f0
+#define   NV50_COMPUTE_BIND_TSC_TSC_SHIFT						12
+#define   NV50_COMPUTE_BIND_TSC_TSC_MASK						0x001ff000
+#define  NV50_COMPUTE_BIND_TIC								0x000003c4
+#define   NV50_COMPUTE_BIND_TIC_VALID							(1 <<  0)
+#define   NV50_COMPUTE_BIND_TIC_TEXTURE_SHIFT						1
+#define   NV50_COMPUTE_BIND_TIC_TEXTURE_MASK						0x000001fe
+#define   NV50_COMPUTE_BIND_TIC_TIC_SHIFT						9
+#define   NV50_COMPUTE_BIND_TIC_TIC_MASK						0x7ffffe00
+#define  NV50_COMPUTE_SET_PROGRAM_CB							0x000003c8
+#define   NV50_COMPUTE_SET_PROGRAM_CB_INDEX_SHIFT					8
+#define   NV50_COMPUTE_SET_PROGRAM_CB_INDEX_MASK					0x00000f00
+#define   NV50_COMPUTE_SET_PROGRAM_CB_BUFFER_SHIFT					12
+#define   NV50_COMPUTE_SET_PROGRAM_CB_BUFFER_MASK					0x0007f000
+#define   NV50_COMPUTE_SET_PROGRAM_CB_VALID						(1 <<  0)
+#define  NV50_COMPUTE_GLOBAL_ADDRESS_HIGH(x)						(0x00000400+((x)*32))
+#define  NV50_COMPUTE_GLOBAL_ADDRESS_HIGH__SIZE						0x00000010
+#define  NV50_COMPUTE_GLOBAL_ADDRESS_LOW(x)						(0x00000404+((x)*32))
+#define  NV50_COMPUTE_GLOBAL_ADDRESS_LOW__SIZE						0x00000010
+#define  NV50_COMPUTE_GLOBAL_PITCH(x)							(0x00000408+((x)*32))
+#define  NV50_COMPUTE_GLOBAL_PITCH__SIZE						0x00000010
+#define  NV50_COMPUTE_GLOBAL_LIMIT(x)							(0x0000040c+((x)*32))
+#define  NV50_COMPUTE_GLOBAL_LIMIT__SIZE						0x00000010
+#define  NV50_COMPUTE_GLOBAL_MODE(x)							(0x00000410+((x)*32))
+#define  NV50_COMPUTE_GLOBAL_MODE__SIZE							0x00000010
+#define   NV50_COMPUTE_GLOBAL_MODE_LINEAR						(1 <<  0)
+#define   NV50_COMPUTE_GLOBAL_MODE_TILE_MODE_SHIFT					8
+#define   NV50_COMPUTE_GLOBAL_MODE_TILE_MODE_MASK					0x00000f00
+#define  NV50_COMPUTE_USER_PARAM(x)							(0x00000600+((x)*4))
+#define  NV50_COMPUTE_USER_PARAM__SIZE							0x00000040
+
+
+#endif /* NOUVEAU_REG_H */
-- 
cgit v0.12


From 68a0ef9d6fc9fba77cc631a50968494da7cf0496 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 17:05:29 -0700
Subject: mkinitcpio:Bumped/Updated for LinHES 7.

---
 abs/core-testing/mkinitcpio-busybox/PKGBUILD       |  37 +
 abs/core-testing/mkinitcpio-busybox/config         | 922 +++++++++++++++++++++
 ...adfont-setfont-optional-psf2-font-support.patch | 453 ++++++++++
 abs/core-testing/mkinitcpio/PKGBUILD               |  39 +-
 abs/core-testing/mkinitcpio/mkinitcpio.conf.diff   |   9 +-
 5 files changed, 1437 insertions(+), 23 deletions(-)
 create mode 100644 abs/core-testing/mkinitcpio-busybox/PKGBUILD
 create mode 100644 abs/core-testing/mkinitcpio-busybox/config
 create mode 100644 abs/core-testing/mkinitcpio-busybox/loadfont-setfont-optional-psf2-font-support.patch

diff --git a/abs/core-testing/mkinitcpio-busybox/PKGBUILD b/abs/core-testing/mkinitcpio-busybox/PKGBUILD
new file mode 100644
index 0000000..3d2beaf
--- /dev/null
+++ b/abs/core-testing/mkinitcpio-busybox/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 84550 2010-06-30 21:45:04Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=mkinitcpio-busybox
+pkgver=1.16.2
+pkgrel=1
+pkgdesc="base initramfs tools"
+arch=('i686' 'x86_64')
+url="http://www.busybox.net/"
+license=('GPL')
+depends=('glibc')
+source=(http://busybox.net/downloads/busybox-${pkgver}.tar.bz2
+        config
+        loadfont-setfont-optional-psf2-font-support.patch)
+sha256sums=('3bf1b1a41294d25335abdd10c65cffdb01c36337ca011f1b38c6ad89590115ba'
+            'd629e936941c854e7aa5e1b564d74bde3a1d328f1e0dd30c86a958d2724685ce'
+            '624d21345cd869c174a3ae1b9cfe23a461ce8b463c7ac4c052726430890c4eb1')
+
+build() {
+  cd "${srcdir}/busybox-${pkgver}"
+
+  # Backport http://git.busybox.net/busybox/commit/?id=8ce1dc03c1b2b61e51527b987579c09c991cc4b2
+  # to busybox 1.16 to fix https://bugs.archlinux.org/task/19109
+  patch -p1 -i ../loadfont-setfont-optional-psf2-font-support.patch || return 1
+
+  unset CFLAGS CXXFLAGS
+  if [ ${CARCH} = "x86_64" ]; then
+    sed 's|^CONFIG_EXTRA_CFLAGS=.*|CONFIG_EXTRA_CFLAGS="-march=x86-64 -mtune=generic -Os -pipe -fno-strict-aliasing"|' "${srcdir}/config" > .config
+  else
+    sed 's|^CONFIG_EXTRA_CFLAGS=.*|CONFIG_EXTRA_CFLAGS="-march=i686 -mtune=generic -Os -pipe -fno-strict-aliasing"|' "${srcdir}/config" > .config
+  fi
+  make || return 1
+}
+
+package() {
+  install -D -m755 "${srcdir}/busybox-${pkgver}"/busybox "${pkgdir}/lib/initcpio/busybox"
+}
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core-testing/mkinitcpio-busybox/config b/abs/core-testing/mkinitcpio-busybox/config
new file mode 100644
index 0000000..a67ca33
--- /dev/null
+++ b/abs/core-testing/mkinitcpio-busybox/config
@@ -0,0 +1,922 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.16.1
+# Sun Apr 11 13:13:36 2010
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+# CONFIG_DESKTOP is not set
+# CONFIG_EXTRA_COMPAT is not set
+# CONFIG_INCLUDE_SUSv2 is not set
+# CONFIG_USE_PORTABLE_CODE is not set
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+# CONFIG_FEATURE_VERBOSE_USAGE is not set
+# CONFIG_FEATURE_COMPRESS_USAGE is not set
+CONFIG_FEATURE_INSTALLER=y
+# CONFIG_LOCALE_SUPPORT is not set
+# CONFIG_FEATURE_ASSUME_UNICODE is not set
+# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
+CONFIG_LONG_OPTS=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+# CONFIG_FEATURE_PIDFILE is not set
+CONFIG_FEATURE_SUID=y
+# CONFIG_FEATURE_SUID_CONFIG is not set
+# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_PREFER_APPLETS is not set
+CONFIG_BUSYBOX_EXEC_PATH="/bin/busybox"
+CONFIG_FEATURE_SYSLOG=y
+CONFIG_FEATURE_HAVE_RPC=y
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+# CONFIG_PIE is not set
+# CONFIG_NOMMU is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_LFS=y
+CONFIG_CROSS_COMPILER_PREFIX=""
+CONFIG_EXTRA_CFLAGS=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+
+#
+# Installation Options
+#
+# CONFIG_INSTALL_NO_USR is not set
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=3
+CONFIG_FEATURE_FAST_TOP=y
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+# CONFIG_FEATURE_EDITING_VI is not set
+CONFIG_FEATURE_EDITING_HISTORY=15
+# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
+CONFIG_FEATURE_NON_POSIX_CP=y
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+# CONFIG_FEATURE_HWIB is not set
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+# CONFIG_FEATURE_SEAMLESS_LZMA is not set
+# CONFIG_FEATURE_SEAMLESS_BZ2 is not set
+# CONFIG_FEATURE_SEAMLESS_GZ is not set
+# CONFIG_FEATURE_SEAMLESS_Z is not set
+# CONFIG_AR is not set
+# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
+# CONFIG_BUNZIP2 is not set
+# CONFIG_BZIP2 is not set
+# CONFIG_CPIO is not set
+# CONFIG_FEATURE_CPIO_O is not set
+# CONFIG_FEATURE_CPIO_P is not set
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+# CONFIG_GUNZIP is not set
+# CONFIG_GZIP is not set
+# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
+# CONFIG_LZOP is not set
+# CONFIG_LZOP_COMPR_HIGH is not set
+# CONFIG_RPM2CPIO is not set
+# CONFIG_RPM is not set
+# CONFIG_TAR is not set
+# CONFIG_FEATURE_TAR_CREATE is not set
+# CONFIG_FEATURE_TAR_AUTODETECT is not set
+# CONFIG_FEATURE_TAR_FROM is not set
+# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
+# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
+# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set
+# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
+# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
+# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set
+# CONFIG_UNCOMPRESS is not set
+# CONFIG_UNLZMA is not set
+# CONFIG_FEATURE_LZMA_FAST is not set
+# CONFIG_UNZIP is not set
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+# CONFIG_CAL is not set
+CONFIG_CAT=y
+# CONFIG_CATV is not set
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
+CONFIG_CHROOT=y
+# CONFIG_CKSUM is not set
+# CONFIG_COMM is not set
+CONFIG_CP=y
+# CONFIG_FEATURE_CP_LONG_OPTIONS is not set
+CONFIG_CUT=y
+# CONFIG_DATE is not set
+# CONFIG_FEATURE_DATE_ISOFMT is not set
+# CONFIG_FEATURE_DATE_COMPAT is not set
+CONFIG_DD=y
+# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
+# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
+# CONFIG_FEATURE_DD_IBS_OBS is not set
+CONFIG_DF=y
+# CONFIG_FEATURE_DF_FANCY is not set
+CONFIG_DIRNAME=y
+# CONFIG_DOS2UNIX is not set
+# CONFIG_UNIX2DOS is not set
+CONFIG_DU=y
+# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+CONFIG_FEATURE_ENV_LONG_OPTIONS=y
+# CONFIG_EXPAND is not set
+# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+# CONFIG_FOLD is not set
+# CONFIG_FSYNC is not set
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+# CONFIG_HOSTID is not set
+# CONFIG_ID is not set
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+# CONFIG_LENGTH is not set
+CONFIG_LN=y
+# CONFIG_LOGNAME is not set
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+# CONFIG_FEATURE_LS_COLOR is not set
+# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
+# CONFIG_MD5SUM is not set
+CONFIG_MKDIR=y
+CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+CONFIG_FEATURE_MV_LONG_OPTIONS=y
+# CONFIG_NICE is not set
+# CONFIG_NOHUP is not set
+# CONFIG_OD is not set
+# CONFIG_PRINTENV is not set
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+# CONFIG_REALPATH is not set
+CONFIG_RM=y
+CONFIG_RMDIR=y
+CONFIG_FEATURE_RMDIR_LONG_OPTIONS=y
+CONFIG_SEQ=y
+# CONFIG_SHA1SUM is not set
+# CONFIG_SHA256SUM is not set
+# CONFIG_SHA512SUM is not set
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+CONFIG_FEATURE_FLOAT_SLEEP=y
+CONFIG_SORT=y
+# CONFIG_FEATURE_SORT_BIG is not set
+# CONFIG_SPLIT is not set
+# CONFIG_FEATURE_SPLIT_FANCY is not set
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+# CONFIG_STTY is not set
+# CONFIG_SUM is not set
+# CONFIG_SYNC is not set
+# CONFIG_TAC is not set
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+# CONFIG_TEE is not set
+# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+# CONFIG_TR is not set
+# CONFIG_FEATURE_TR_CLASSES is not set
+# CONFIG_FEATURE_TR_EQUIV is not set
+CONFIG_TRUE=y
+# CONFIG_TTY is not set
+CONFIG_UNAME=y
+# CONFIG_UNEXPAND is not set
+# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
+CONFIG_UNIQ=y
+# CONFIG_USLEEP is not set
+# CONFIG_UUDECODE is not set
+# CONFIG_UUENCODE is not set
+CONFIG_WC=y
+CONFIG_FEATURE_WC_LARGE=y
+# CONFIG_WHO is not set
+# CONFIG_WHOAMI is not set
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+# CONFIG_FEATURE_MD5_SHA1_SUM_CHECK is not set
+
+#
+# Console Utilities
+#
+# CONFIG_CHVT is not set
+# CONFIG_CLEAR is not set
+# CONFIG_DEALLOCVT is not set
+# CONFIG_DUMPKMAP is not set
+CONFIG_KBD_MODE=y
+CONFIG_LOADFONT=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+# CONFIG_RESET is not set
+# CONFIG_RESIZE is not set
+# CONFIG_FEATURE_RESIZE_PRINT is not set
+# CONFIG_SETCONSOLE is not set
+# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
+CONFIG_SETFONT=y
+# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set
+CONFIG_DEFAULT_SETFONT_DIR=""
+# CONFIG_SETKEYCODES is not set
+# CONFIG_SETLOGCONS is not set
+# CONFIG_SHOWKEY is not set
+
+#
+# Common options for loadfont and setfont
+#
+CONFIG_FEATURE_LOADFONT_PSF2=y
+CONFIG_FEATURE_LOADFONT_RAW=y
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+# CONFIG_PIPE_PROGRESS is not set
+# CONFIG_RUN_PARTS is not set
+# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
+# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
+# CONFIG_START_STOP_DAEMON is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
+# CONFIG_WHICH is not set
+
+#
+# Editors
+#
+CONFIG_AWK=y
+# CONFIG_FEATURE_AWK_LIBM is not set
+# CONFIG_CMP is not set
+# CONFIG_DIFF is not set
+# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
+# CONFIG_FEATURE_DIFF_DIR is not set
+# CONFIG_ED is not set
+# CONFIG_PATCH is not set
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=4096
+CONFIG_FEATURE_VI_8BIT=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+# CONFIG_FEATURE_ALLOW_EXEC is not set
+
+#
+# Finding Utilities
+#
+# CONFIG_FIND is not set
+# CONFIG_FEATURE_FIND_PRINT0 is not set
+# CONFIG_FEATURE_FIND_MTIME is not set
+# CONFIG_FEATURE_FIND_MMIN is not set
+# CONFIG_FEATURE_FIND_PERM is not set
+# CONFIG_FEATURE_FIND_TYPE is not set
+# CONFIG_FEATURE_FIND_XDEV is not set
+# CONFIG_FEATURE_FIND_MAXDEPTH is not set
+# CONFIG_FEATURE_FIND_NEWER is not set
+# CONFIG_FEATURE_FIND_INUM is not set
+# CONFIG_FEATURE_FIND_EXEC is not set
+# CONFIG_FEATURE_FIND_USER is not set
+# CONFIG_FEATURE_FIND_GROUP is not set
+# CONFIG_FEATURE_FIND_NOT is not set
+# CONFIG_FEATURE_FIND_DEPTH is not set
+# CONFIG_FEATURE_FIND_PAREN is not set
+# CONFIG_FEATURE_FIND_SIZE is not set
+# CONFIG_FEATURE_FIND_PRUNE is not set
+# CONFIG_FEATURE_FIND_DELETE is not set
+# CONFIG_FEATURE_FIND_PATH is not set
+# CONFIG_FEATURE_FIND_REGEX is not set
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+# CONFIG_FEATURE_FIND_LINKS is not set
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+# CONFIG_FEATURE_GREP_FGREP_ALIAS is not set
+# CONFIG_FEATURE_GREP_CONTEXT is not set
+# CONFIG_XARGS is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set
+
+#
+# Init Utilities
+#
+# CONFIG_INIT is not set
+# CONFIG_FEATURE_USE_INITTAB is not set
+# CONFIG_FEATURE_KILL_REMOVED is not set
+CONFIG_FEATURE_KILL_DELAY=0
+# CONFIG_FEATURE_INIT_SCTTY is not set
+# CONFIG_FEATURE_INIT_SYSLOG is not set
+# CONFIG_FEATURE_EXTRA_QUIET is not set
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+# CONFIG_FEATURE_INITRD is not set
+# CONFIG_HALT is not set
+# CONFIG_FEATURE_CALL_TELINIT is not set
+CONFIG_TELINIT_PATH=""
+# CONFIG_MESG is not set
+
+#
+# Login/Password Management Utilities
+#
+# CONFIG_FEATURE_SHADOWPASSWDS is not set
+# CONFIG_USE_BB_PWD_GRP is not set
+# CONFIG_USE_BB_SHADOW is not set
+# CONFIG_USE_BB_CRYPT is not set
+# CONFIG_USE_BB_CRYPT_SHA is not set
+# CONFIG_ADDGROUP is not set
+# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set
+# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
+# CONFIG_DELGROUP is not set
+# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
+# CONFIG_FEATURE_CHECK_NAMES is not set
+# CONFIG_ADDUSER is not set
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+CONFIG_FIRST_SYSTEM_ID=0
+CONFIG_LAST_SYSTEM_ID=0
+# CONFIG_DELUSER is not set
+# CONFIG_GETTY is not set
+# CONFIG_FEATURE_UTMP is not set
+# CONFIG_FEATURE_WTMP is not set
+# CONFIG_LOGIN is not set
+# CONFIG_PAM is not set
+# CONFIG_LOGIN_SCRIPTS is not set
+# CONFIG_FEATURE_NOLOGIN is not set
+# CONFIG_FEATURE_SECURETTY is not set
+# CONFIG_PASSWD is not set
+# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
+# CONFIG_CRYPTPW is not set
+# CONFIG_CHPASSWD is not set
+# CONFIG_SU is not set
+# CONFIG_FEATURE_SU_SYSLOG is not set
+# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
+# CONFIG_SULOGIN is not set
+# CONFIG_VLOCK is not set
+
+#
+# Linux Ext2 FS Progs
+#
+# CONFIG_CHATTR is not set
+# CONFIG_FSCK is not set
+# CONFIG_LSATTR is not set
+
+#
+# Linux Module Utilities
+#
+# CONFIG_MODPROBE_SMALL is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
+CONFIG_INSMOD=y
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
+# CONFIG_MODPROBE is not set
+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
+# CONFIG_DEPMOD is not set
+
+#
+# Options common to multiple modutils
+#
+# CONFIG_FEATURE_2_4_MODULES is not set
+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
+# CONFIG_FEATURE_MODUTILS_ALIAS is not set
+# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set
+CONFIG_DEFAULT_MODULES_DIR=""
+CONFIG_DEFAULT_DEPMOD_FILE=""
+
+#
+# Linux System Utilities
+#
+# CONFIG_ACPID is not set
+# CONFIG_FEATURE_ACPID_COMPAT is not set
+# CONFIG_BLKID is not set
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+# CONFIG_FBSET is not set
+# CONFIG_FEATURE_FBSET_FANCY is not set
+# CONFIG_FEATURE_FBSET_READMODE is not set
+# CONFIG_FDFLUSH is not set
+# CONFIG_FDFORMAT is not set
+# CONFIG_FDISK is not set
+CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
+# CONFIG_FEATURE_FDISK_WRITABLE is not set
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+# CONFIG_FEATURE_OSF_LABEL is not set
+# CONFIG_FEATURE_FDISK_ADVANCED is not set
+# CONFIG_FINDFS is not set
+# CONFIG_FREERAMDISK is not set
+# CONFIG_FSCK_MINIX is not set
+# CONFIG_MKFS_EXT2 is not set
+# CONFIG_MKFS_MINIX is not set
+# CONFIG_FEATURE_MINIX2 is not set
+# CONFIG_MKFS_REISER is not set
+# CONFIG_MKFS_VFAT is not set
+CONFIG_GETOPT=y
+CONFIG_FEATURE_GETOPT_LONG=y
+CONFIG_HEXDUMP=y
+# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
+# CONFIG_HD is not set
+# CONFIG_HWCLOCK is not set
+# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
+# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
+# CONFIG_IPCRM is not set
+# CONFIG_IPCS is not set
+CONFIG_LOSETUP=y
+# CONFIG_LSPCI is not set
+# CONFIG_LSUSB is not set
+# CONFIG_MDEV is not set
+# CONFIG_FEATURE_MDEV_CONF is not set
+# CONFIG_FEATURE_MDEV_RENAME is not set
+# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
+# CONFIG_FEATURE_MDEV_EXEC is not set
+# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
+# CONFIG_MKSWAP is not set
+# CONFIG_FEATURE_MKSWAP_UUID is not set
+# CONFIG_MORE is not set
+# CONFIG_FEATURE_USE_TERMIOS is not set
+CONFIG_VOLUMEID=y
+# CONFIG_FEATURE_VOLUMEID_EXT is not set
+# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
+# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
+# CONFIG_FEATURE_VOLUMEID_FAT is not set
+# CONFIG_FEATURE_VOLUMEID_HFS is not set
+# CONFIG_FEATURE_VOLUMEID_JFS is not set
+# CONFIG_FEATURE_VOLUMEID_XFS is not set
+# CONFIG_FEATURE_VOLUMEID_NTFS is not set
+# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
+# CONFIG_FEATURE_VOLUMEID_UDF is not set
+# CONFIG_FEATURE_VOLUMEID_LUKS is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
+# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
+# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
+# CONFIG_FEATURE_VOLUMEID_SYSV is not set
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
+CONFIG_MOUNT=y
+CONFIG_FEATURE_MOUNT_FAKE=y
+CONFIG_FEATURE_MOUNT_VERBOSE=y
+CONFIG_FEATURE_MOUNT_HELPERS=y
+CONFIG_FEATURE_MOUNT_LABEL=y
+CONFIG_FEATURE_MOUNT_NFS=y
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+# CONFIG_PIVOT_ROOT is not set
+# CONFIG_RDATE is not set
+# CONFIG_RDEV is not set
+# CONFIG_READPROFILE is not set
+# CONFIG_RTCWAKE is not set
+# CONFIG_SCRIPT is not set
+# CONFIG_SCRIPTREPLAY is not set
+# CONFIG_SETARCH is not set
+# CONFIG_SWAPONOFF is not set
+# CONFIG_FEATURE_SWAPON_PRI is not set
+CONFIG_SWITCH_ROOT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+# CONFIG_FEATURE_MTAB_SUPPORT is not set
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_ADJTIMEX is not set
+# CONFIG_BBCONFIG is not set
+# CONFIG_BEEP is not set
+CONFIG_FEATURE_BEEP_FREQ=0
+CONFIG_FEATURE_BEEP_LENGTH_MS=0
+# CONFIG_CHAT is not set
+# CONFIG_FEATURE_CHAT_NOFAIL is not set
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set
+# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
+# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
+# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
+# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
+# CONFIG_CHRT is not set
+# CONFIG_CROND is not set
+# CONFIG_FEATURE_CROND_D is not set
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_FEATURE_CROND_DIR=""
+# CONFIG_CRONTAB is not set
+# CONFIG_DC is not set
+# CONFIG_FEATURE_DC_LIBM is not set
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+# CONFIG_DEVMEM is not set
+# CONFIG_EJECT is not set
+# CONFIG_FEATURE_EJECT_SCSI is not set
+# CONFIG_FBSPLASH is not set
+# CONFIG_FLASHCP is not set
+# CONFIG_FLASH_LOCK is not set
+# CONFIG_FLASH_UNLOCK is not set
+# CONFIG_FLASH_ERASEALL is not set
+# CONFIG_IONICE is not set
+# CONFIG_INOTIFYD is not set
+# CONFIG_LAST is not set
+# CONFIG_FEATURE_LAST_SMALL is not set
+# CONFIG_FEATURE_LAST_FANCY is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+# CONFIG_FEATURE_LESS_MARKS is not set
+# CONFIG_FEATURE_LESS_REGEXP is not set
+# CONFIG_FEATURE_LESS_WINCH is not set
+# CONFIG_FEATURE_LESS_DASHCMD is not set
+# CONFIG_FEATURE_LESS_LINENUMS is not set
+# CONFIG_HDPARM is not set
+# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
+# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
+# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
+# CONFIG_MAKEDEVS is not set
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
+# CONFIG_MAN is not set
+# CONFIG_MICROCOM is not set
+# CONFIG_MOUNTPOINT is not set
+# CONFIG_MT is not set
+# CONFIG_RAIDAUTORUN is not set
+# CONFIG_READAHEAD is not set
+# CONFIG_RUNLEVEL is not set
+# CONFIG_RX is not set
+# CONFIG_SETSID is not set
+CONFIG_STRINGS=y
+# CONFIG_TASKSET is not set
+# CONFIG_FEATURE_TASKSET_FANCY is not set
+# CONFIG_TIME is not set
+# CONFIG_TIMEOUT is not set
+# CONFIG_TTYSIZE is not set
+# CONFIG_VOLNAME is not set
+# CONFIG_WALL is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Networking Utilities
+#
+CONFIG_FEATURE_IPV6=y
+# CONFIG_FEATURE_UNIX_LOCAL is not set
+CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+# CONFIG_ARP is not set
+# CONFIG_ARPING is not set
+# CONFIG_BRCTL is not set
+# CONFIG_FEATURE_BRCTL_FANCY is not set
+# CONFIG_FEATURE_BRCTL_SHOW is not set
+# CONFIG_DNSD is not set
+# CONFIG_ETHER_WAKE is not set
+# CONFIG_FAKEIDENTD is not set
+# CONFIG_FTPD is not set
+# CONFIG_FEATURE_FTP_WRITE is not set
+# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set
+# CONFIG_FTPGET is not set
+# CONFIG_FTPPUT is not set
+# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
+# CONFIG_HOSTNAME is not set
+# CONFIG_HTTPD is not set
+# CONFIG_FEATURE_HTTPD_RANGES is not set
+# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
+# CONFIG_FEATURE_HTTPD_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
+# CONFIG_FEATURE_HTTPD_CGI is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
+# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
+# CONFIG_FEATURE_HTTPD_PROXY is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_SLIP=y
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
+CONFIG_FEATURE_IFCONFIG_HW=y
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+# CONFIG_IFENSLAVE is not set
+# CONFIG_IFPLUGD is not set
+# CONFIG_IFUPDOWN is not set
+CONFIG_IFUPDOWN_IFSTATE_PATH=""
+# CONFIG_FEATURE_IFUPDOWN_IP is not set
+# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set
+# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
+# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
+# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
+# CONFIG_INETD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_TUNNEL=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_SHORT_FORMS=y
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+# CONFIG_IPCALC is not set
+# CONFIG_FEATURE_IPCALC_FANCY is not set
+# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
+# CONFIG_NAMEIF is not set
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+CONFIG_NETSTAT=y
+CONFIG_FEATURE_NETSTAT_WIDE=y
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+# CONFIG_NTPD is not set
+# CONFIG_FEATURE_NTPD_SERVER is not set
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+# CONFIG_PSCAN is not set
+CONFIG_ROUTE=y
+# CONFIG_SLATTACH is not set
+CONFIG_TELNET=y
+# CONFIG_FEATURE_TELNET_TTYPE is not set
+# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
+# CONFIG_TELNETD is not set
+# CONFIG_FEATURE_TELNETD_STANDALONE is not set
+# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
+CONFIG_TFTP=y
+# CONFIG_TFTPD is not set
+CONFIG_FEATURE_TFTP_GET=y
+# CONFIG_FEATURE_TFTP_PUT is not set
+# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
+# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
+# CONFIG_TFTP_DEBUG is not set
+# CONFIG_TRACEROUTE is not set
+# CONFIG_TRACEROUTE6 is not set
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+# CONFIG_UDHCPD is not set
+# CONFIG_DHCPRELAY is not set
+# CONFIG_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+CONFIG_DHCPD_LEASES_FILE=""
+# CONFIG_UDHCPC is not set
+# CONFIG_FEATURE_UDHCPC_ARPING is not set
+# CONFIG_FEATURE_UDHCP_PORT is not set
+CONFIG_UDHCP_DEBUG=0
+# CONFIG_FEATURE_UDHCP_RFC3397 is not set
+CONFIG_UDHCPC_DEFAULT_SCRIPT=""
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
+# CONFIG_VCONFIG is not set
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+# CONFIG_ZCIP is not set
+# CONFIG_TCPSVD is not set
+# CONFIG_TUNCTL is not set
+# CONFIG_FEATURE_TUNCTL_UG is not set
+# CONFIG_UDPSVD is not set
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+# CONFIG_LPR is not set
+# CONFIG_LPQ is not set
+
+#
+# Mail Utilities
+#
+# CONFIG_MAKEMIME is not set
+CONFIG_FEATURE_MIME_CHARSET=""
+# CONFIG_POPMAILDIR is not set
+# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set
+# CONFIG_REFORMIME is not set
+# CONFIG_FEATURE_REFORMIME_COMPAT is not set
+# CONFIG_SENDMAIL is not set
+
+#
+# Process Utilities
+#
+CONFIG_FREE=y
+# CONFIG_FUSER is not set
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+# CONFIG_KILLALL5 is not set
+# CONFIG_NMETER is not set
+CONFIG_PGREP=y
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+# CONFIG_PKILL is not set
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+# CONFIG_FEATURE_PS_TIME is not set
+# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
+# CONFIG_RENICE is not set
+# CONFIG_BB_SYSCTL is not set
+# CONFIG_TOP is not set
+# CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE is not set
+# CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS is not set
+# CONFIG_FEATURE_TOP_SMP_CPU is not set
+# CONFIG_FEATURE_TOP_DECIMALS is not set
+# CONFIG_FEATURE_TOP_SMP_PROCESS is not set
+# CONFIG_FEATURE_TOPMEM is not set
+# CONFIG_FEATURE_SHOW_THREADS is not set
+CONFIG_UPTIME=y
+# CONFIG_WATCH is not set
+
+#
+# Runit Utilities
+#
+# CONFIG_RUNSV is not set
+# CONFIG_RUNSVDIR is not set
+# CONFIG_FEATURE_RUNSVDIR_LOG is not set
+# CONFIG_SV is not set
+CONFIG_SV_DEFAULT_SERVICE_DIR=""
+# CONFIG_SVLOGD is not set
+# CONFIG_CHPST is not set
+# CONFIG_SETUIDGID is not set
+# CONFIG_ENVUIDGID is not set
+# CONFIG_ENVDIR is not set
+# CONFIG_SOFTLIMIT is not set
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_SETSEBOOL is not set
+# CONFIG_SESTATUS is not set
+
+#
+# Shells
+#
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+CONFIG_ASH=y
+CONFIG_ASH_BASH_COMPAT=y
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_GETOPTS=y
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_PRINTF=y
+CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_CMDCMD=y
+# CONFIG_ASH_MAIL is not set
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+# CONFIG_ASH_RANDOM_SUPPORT is not set
+CONFIG_ASH_EXPAND_PRMT=y
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_BASH_COMPAT is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_JOB is not set
+# CONFIG_HUSH_TICK is not set
+# CONFIG_HUSH_IF is not set
+# CONFIG_HUSH_LOOPS is not set
+# CONFIG_HUSH_CASE is not set
+# CONFIG_HUSH_FUNCTIONS is not set
+# CONFIG_HUSH_LOCAL is not set
+# CONFIG_HUSH_EXPORT_N is not set
+# CONFIG_HUSH_RANDOM_SUPPORT is not set
+# CONFIG_LASH is not set
+# CONFIG_MSH is not set
+CONFIG_SH_MATH_SUPPORT=y
+# CONFIG_SH_MATH_SUPPORT_64 is not set
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+CONFIG_CTTYHACK=y
+
+#
+# System Logging Utilities
+#
+# CONFIG_SYSLOGD is not set
+# CONFIG_FEATURE_ROTATE_LOGFILE is not set
+# CONFIG_FEATURE_REMOTE_LOG is not set
+# CONFIG_FEATURE_SYSLOGD_DUP is not set
+# CONFIG_FEATURE_IPC_SYSLOG is not set
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
+# CONFIG_LOGREAD is not set
+# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
+# CONFIG_KLOGD is not set
+# CONFIG_LOGGER is not set
diff --git a/abs/core-testing/mkinitcpio-busybox/loadfont-setfont-optional-psf2-font-support.patch b/abs/core-testing/mkinitcpio-busybox/loadfont-setfont-optional-psf2-font-support.patch
new file mode 100644
index 0000000..a7592de
--- /dev/null
+++ b/abs/core-testing/mkinitcpio-busybox/loadfont-setfont-optional-psf2-font-support.patch
@@ -0,0 +1,453 @@
+From 8ce1dc03c1b2b61e51527b987579c09c991cc4b2 Mon Sep 17 00:00:00 2001
+From: Harald Becker <ralda@gmx.de>
+Date: Sun, 21 Feb 2010 12:10:26 +0000
+Subject: loadfont/setfont: optional PSF2 font support
+
+Signed-off-by: Harald Becker <ralda@gmx.de>
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+---
+diff --git a/console-tools/Config.in b/console-tools/Config.in
+index cd0a931..195685b 100644
+--- a/console-tools/Config.in
++++ b/console-tools/Config.in
+@@ -135,4 +135,21 @@ config SHOWKEY
+ 	help
+ 	  Shows keys pressed.
+ 
++comment "Common options for loadfont and setfont"
++	depends on LOADFONT || SETFONT
++
++config FEATURE_LOADFONT_PSF2
++	bool "Support for PSF2 console fonts"
++	default n
++	depends on LOADFONT || SETFONT
++	help
++	  Support PSF2 console fonts.
++
++config FEATURE_LOADFONT_RAW
++	bool "Support for old (raw) console fonts"
++	default n
++	depends on LOADFONT || SETFONT
++	help
++	  Support old (raw) console fonts.
++
+ endmenu
+diff --git a/console-tools/loadfont.c b/console-tools/loadfont.c
+index e833474..e51142c 100644
+--- a/console-tools/loadfont.c
++++ b/console-tools/loadfont.c
+@@ -13,7 +13,7 @@
+ #include <sys/kd.h>
+ 
+ #ifndef KDFONTOP
+-#define KDFONTOP 0x4B72
++# define KDFONTOP 0x4B72
+ struct console_font_op {
+ 	unsigned op;            /* KD_FONT_OP_* */
+ 	unsigned flags;         /* KD_FONT_FLAG_* */
+@@ -21,91 +21,137 @@ struct console_font_op {
+ 	unsigned charcount;
+ 	unsigned char *data;    /* font data with height fixed to 32 */
+ };
+-
+-#define KD_FONT_OP_SET          0  /* Set font */
+-#define KD_FONT_OP_GET          1  /* Get font */
+-#define KD_FONT_OP_SET_DEFAULT  2  /* Set font to default,
+-                                         data points to name / NULL */
+-#define KD_FONT_OP_COPY         3  /* Copy from another console */
+-
+-#define KD_FONT_FLAG_OLD        0x80000000 /* Invoked via old interface */
+-#define KD_FONT_FLAG_DONT_RECALC 1 /* Don't call adjust_height() */
++# define KD_FONT_OP_SET          0  /* Set font */
++# define KD_FONT_OP_GET          1  /* Get font */
++# define KD_FONT_OP_SET_DEFAULT  2  /* Set font to default, data points to name / NULL */
++# define KD_FONT_OP_COPY         3  /* Copy from another console */
++# define KD_FONT_FLAG_OLD        0x80000000 /* Invoked via old interface */
++# define KD_FONT_FLAG_DONT_RECALC 1 /* Don't call adjust_height() */
+                                    /* (Used internally for PIO_FONT support) */
+ #endif /* KDFONTOP */
+ 
+ 
+ enum {
+-	PSF_MAGIC1 = 0x36,
+-	PSF_MAGIC2 = 0x04,
+-
+-	PSF_MODE512 = 0x01,
+-	PSF_MODEHASTAB = 0x02,
+-	PSF_MAXMODE = 0x03,
+-	PSF_SEPARATOR = 0xffff
++	PSF1_MAGIC0 = 0x36,
++	PSF1_MAGIC1 = 0x04,
++	PSF1_MODE512 = 0x01,
++	PSF1_MODEHASTAB = 0x02,
++	PSF1_MODEHASSEQ = 0x04,
++	PSF1_MAXMODE = 0x05,
++	PSF1_STARTSEQ = 0xfffe,
++	PSF1_SEPARATOR = 0xffff,
+ };
+ 
+-struct psf_header {
+-	unsigned char magic1, magic2;   /* Magic number */
++struct psf1_header {
++	unsigned char magic[2];         /* Magic number */
+ 	unsigned char mode;             /* PSF font mode */
+ 	unsigned char charsize;         /* Character size */
+ };
+ 
+-#define PSF_MAGIC_OK(x)	((x)->magic1 == PSF_MAGIC1 && (x)->magic2 == PSF_MAGIC2)
++#define psf1h(x) ((struct psf1_header*)(x))
++
++#define PSF1_MAGIC_OK(x) ( \
++     (x)->magic[0] == PSF1_MAGIC0 \
++  && (x)->magic[1] == PSF1_MAGIC1 \
++)
++
++#if ENABLE_FEATURE_LOADFONT_PSF2
++enum {
++	PSF2_MAGIC0 = 0x72,
++	PSF2_MAGIC1 = 0xb5,
++	PSF2_MAGIC2 = 0x4a,
++	PSF2_MAGIC3 = 0x86,
++	PSF2_HAS_UNICODE_TABLE = 0x01,
++	PSF2_MAXVERSION = 0,
++	PSF2_STARTSEQ = 0xfe,
++	PSF2_SEPARATOR = 0xff
++};
++
++struct psf2_header {
++	unsigned char magic[4];
++	unsigned int version;
++	unsigned int headersize;    /* offset of bitmaps in file */
++	unsigned int flags;
++	unsigned int length;        /* number of glyphs */
++	unsigned int charsize;      /* number of bytes for each character */
++	unsigned int height;        /* max dimensions of glyphs */
++	unsigned int width;         /* charsize = height * ((width + 7) / 8) */
++};
++
++#define psf2h(x) ((struct psf2_header*)(x))
++
++#define PSF2_MAGIC_OK(x) ( \
++     (x)->magic[0] == PSF2_MAGIC0 \
++  && (x)->magic[1] == PSF2_MAGIC1 \
++  && (x)->magic[2] == PSF2_MAGIC2 \
++  && (x)->magic[3] == PSF2_MAGIC3 \
++)
++#endif /* ENABLE_FEATURE_LOADFONT_PSF2 */
+ 
+-static void do_loadfont(int fd, unsigned char *inbuf, int unit, int fontsize)
++
++static void do_loadfont(int fd, unsigned char *inbuf, int height, int width, int charsize, int fontsize)
+ {
+-	char *buf;
++	unsigned char *buf;
++	int charwidth = 32 * ((width+7)/8);
+ 	int i;
+ 
+-	if (unit < 1 || unit > 32)
+-		bb_error_msg_and_die("bad character size %d", unit);
++	if (height < 1 || height > 32 || width < 1 || width > 32)
++		bb_error_msg_and_die("bad character size %dx%d", height, width);
+ 
+-	buf = xzalloc(16 * 1024);
++	buf = xzalloc(charwidth * ((fontsize < 128) ? 128 : fontsize));
+ 	for (i = 0; i < fontsize; i++)
+-		memcpy(buf + (32 * i), inbuf + (unit * i), unit);
++		memcpy(buf + (i*charwidth), inbuf + (i*charsize), charsize);
+ 
+ 	{ /* KDFONTOP */
+ 		struct console_font_op cfo;
+-
+ 		cfo.op = KD_FONT_OP_SET;
+ 		cfo.flags = 0;
+-		cfo.width = 8;
+-		cfo.height = unit;
++		cfo.width = width;
++		cfo.height = height;
+ 		cfo.charcount = fontsize;
+-		cfo.data = (void*)buf;
+-#if 0
+-		if (!ioctl_or_perror(fd, KDFONTOP, &cfo, "KDFONTOP ioctl failed (will try PIO_FONTX)"))
+-			goto ret;  /* success */
+-#else
++		cfo.data = buf;
+ 		xioctl(fd, KDFONTOP, &cfo);
+-#endif
+ 	}
+ 
+-#if 0
+-/* These ones do not honour -C tty (they set font on current tty regardless)
+- * On x86, this distinction is visible on framebuffer consoles
+- * (regular character consoles may have only one shared font anyway)
+- */
+-#if defined(PIO_FONTX) && !defined(__sparc__)
+-	{
+-		struct consolefontdesc cfd;
+-
+-		cfd.charcount = fontsize;
+-		cfd.charheight = unit;
+-		cfd.chardata = buf;
+-
+-		if (!ioctl_or_perror(fd, PIO_FONTX, &cfd, "PIO_FONTX ioctl failed (will try PIO_FONT)"))
+-			goto ret;  /* success */
+-	}
+-#endif
+-	xioctl(fd, PIO_FONT, buf);
+- ret:
+-#endif /* 0 */
+ 	free(buf);
+ }
+ 
+-static void do_loadtable(int fd, unsigned char *inbuf, int tailsz, int fontsize)
++/*
++ * Format of the Unicode information:
++ *
++ * For each font position <uc>*<seq>*<term>
++ * where <uc> is a 2-byte little endian Unicode value (PSF1)
++ * or an UTF-8 coded value (PSF2),
++ * <seq> = <ss><uc><uc>*, <ss> = psf1 ? 0xFFFE : 0xFE,
++ * <term> = psf1 ? 0xFFFF : 0xFF.
++ * and * denotes zero or more occurrences of the preceding item.
++ *
++ * Semantics:
++ * The leading <uc>* part gives Unicode symbols that are all
++ * represented by this font position. The following sequences
++ * are sequences of Unicode symbols - probably a symbol
++ * together with combining accents - also represented by
++ * this font position.
++ *
++ * Example:
++ * At the font position for a capital A-ring glyph, we
++ * may have:
++ *	00C5,212B,FFFE,0041,030A,FFFF
++ * Some font positions may be described by sequences only,
++ * namely when there is no precomposed Unicode value for the glyph.
++ */
++#if !ENABLE_FEATURE_LOADFONT_PSF2
++#define do_loadtable(fd, inbuf, tailsz, fontsize, psf2) \
++	do_loadtable(fd, inbuf, tailsz, fontsize)
++#endif
++static void do_loadtable(int fd, unsigned char *inbuf, int tailsz, int fontsize, int psf2)
+ {
++#if !ENABLE_FEATURE_LOADFONT_PSF2
++/* gcc 4.3.1 code size: */
++# define psf2 0 /* +0 bytes */
++//	const int psf2 = 0; /* +8 bytes */
++//	enum { psf2 = 0 }; /* +13 bytes */
++#endif
+ 	struct unimapinit advice;
+ 	struct unimapdesc ud;
+ 	struct unipair *up;
+@@ -114,15 +160,48 @@ static void do_loadtable(int fd, unsigned char *inbuf, int tailsz, int fontsize)
+ 	uint16_t unicode;
+ 
+ 	maxct = tailsz;	/* more than enough */
+-	up = xmalloc(maxct * sizeof(struct unipair));
++	up = xmalloc(maxct * sizeof(*up));
+ 
+ 	for (glyph = 0; glyph < fontsize; glyph++) {
+-		while (tailsz >= 2) {
+-			unicode = (((uint16_t) inbuf[1]) << 8) + inbuf[0];
+-			tailsz -= 2;
+-			inbuf += 2;
+-			if (unicode == PSF_SEPARATOR)
+-				break;
++		while (tailsz > 0) {
++			if (!psf2) { /* PSF1 */
++				unicode = (((uint16_t) inbuf[1]) << 8) + inbuf[0];
++				tailsz -= 2;
++				inbuf += 2;
++				if (unicode == PSF1_SEPARATOR)
++					break;
++			} else { /* PSF2 */
++#if ENABLE_FEATURE_LOADFONT_PSF2
++				--tailsz;
++				unicode = *inbuf++;
++				if (unicode == PSF2_SEPARATOR) {
++					break;
++				} else if (unicode == PSF2_STARTSEQ) {
++					bb_error_msg_and_die("unicode sequences not implemented");
++				} else if (unicode >= 0xC0) {
++					if (unicode >= 0xFC)
++						unicode &= 0x01, maxct = 5;
++					else if (unicode >= 0xF8)
++						unicode &= 0x03, maxct = 4;
++					else if (unicode >= 0xF0)
++						unicode &= 0x07, maxct = 3;
++					else if (unicode >= 0xE0)
++						unicode &= 0x0F, maxct = 2;
++					else
++						unicode &= 0x1F, maxct = 1;
++					do {
++						if (tailsz <= 0 || *inbuf < 0x80 || *inbuf > 0xBF)
++							bb_error_msg_and_die("illegal UTF-8 character");
++						--tailsz;
++						unicode = (unicode << 6) + (*inbuf++ & 0x3F);
++					} while (--maxct > 0);
++				} else if (unicode >= 0x80) {
++					bb_error_msg_and_die("illegal UTF-8 character");
++				}
++#else
++				return;
++#endif
++			}
+ 			up[ct].unicode = unicode;
+ 			up[ct].fontpos = glyph;
+ 			ct++;
+@@ -139,58 +218,78 @@ static void do_loadtable(int fd, unsigned char *inbuf, int tailsz, int fontsize)
+ 	ud.entry_ct = ct;
+ 	ud.entries = up;
+ 	xioctl(fd, PIO_UNIMAP, &ud);
++#undef psf2
+ }
+ 
+-static void do_load(int fd, struct psf_header *psfhdr, size_t len)
++static void do_load(int fd, unsigned char *buffer, size_t len)
+ {
+-	int unit;
+-	int fontsize;
+-	int hastable;
+-	unsigned head0, head = head;
+-
+-	/* test for psf first */
+-	if (len >= sizeof(struct psf_header) && PSF_MAGIC_OK(psfhdr)) {
+-		if (psfhdr->mode > PSF_MAXMODE)
++	int height;
++	int width = 8;
++	int charsize;
++	int fontsize = 256;
++	int has_table = 0;
++	unsigned char *font = buffer;
++	unsigned char *table;
++
++	if (len >= sizeof(struct psf1_header) && PSF1_MAGIC_OK(psf1h(buffer))) {
++		if (psf1h(buffer)->mode > PSF1_MAXMODE)
+ 			bb_error_msg_and_die("unsupported psf file mode");
+-		fontsize = ((psfhdr->mode & PSF_MODE512) ? 512 : 256);
+-#if !defined(PIO_FONTX) || defined(__sparc__)
+-		if (fontsize != 256)
+-			bb_error_msg_and_die("only fontsize 256 supported");
++		if (psf1h(buffer)->mode & PSF1_MODE512)
++			fontsize = 512;
++		if (psf1h(buffer)->mode & PSF1_MODEHASTAB)
++			has_table = 1;
++		height = charsize = psf1h(buffer)->charsize;
++		font += sizeof(struct psf1_header);
++	} else
++#if ENABLE_FEATURE_LOADFONT_PSF2
++	if (len >= sizeof(struct psf2_header) && PSF2_MAGIC_OK(psf2h(buffer))) {
++		if (psf2h(buffer)->version > PSF2_MAXVERSION)
++			bb_error_msg_and_die("unsupported psf file version");
++		fontsize = psf2h(buffer)->length;
++		if (psf2h(buffer)->flags & PSF2_HAS_UNICODE_TABLE)
++			has_table = 2;
++		charsize = psf2h(buffer)->charsize;
++		height = psf2h(buffer)->height;
++		width = psf2h(buffer)->width;
++		font += psf2h(buffer)->headersize;
++	} else
+ #endif
+-		hastable = (psfhdr->mode & PSF_MODEHASTAB);
+-		unit = psfhdr->charsize;
+-		head0 = sizeof(struct psf_header);
+-
+-		head = head0 + fontsize * unit;
+-		if (head > len || (!hastable && head != len))
+-			bb_error_msg_and_die("input file: bad length");
+-	} else {
+-		/* file with three code pages? */
+-		if (len == 9780) {
+-			head0 = 40;
+-			unit = 16;
+-		} else {
+-			/* bare font */
+-			if (len & 0377)
+-				bb_error_msg_and_die("input file: bad length");
+-			head0 = 0;
+-			unit = len / 256;
+-		}
+-		fontsize = 256;
+-		hastable = 0;
++#if ENABLE_FEATURE_LOADFONT_RAW
++	if (len == 9780) {	/* file with three code pages? */
++		charsize = height = 16;
++		font += 40;
++	} else if ((len & 0377) == 0) {		/* bare font */
++		charsize = height = len / 256;
++	} else
++#endif
++	{
++		bb_error_msg_and_die("input file: bad length or unsupported font type");
+ 	}
+ 
+-	do_loadfont(fd, (unsigned char *)psfhdr + head0, unit, fontsize);
+-	if (hastable)
+-		do_loadtable(fd, (unsigned char *)psfhdr + head, len - head, fontsize);
++#if !defined(PIO_FONTX) || defined(__sparc__)
++	if (fontsize != 256)
++		bb_error_msg_and_die("only fontsize 256 supported");
++#endif
++
++	table = font + fontsize * charsize;
++	buffer += len;
++
++	if (table > buffer || (!has_table && table != buffer))
++		bb_error_msg_and_die("input file: bad length");
++
++	do_loadfont(fd, font, height, width, charsize, fontsize);
++
++	if (has_table)
++		do_loadtable(fd, table, buffer - table, fontsize, has_table - 1);
+ }
+ 
++
+ #if ENABLE_LOADFONT
+ int loadfont_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+ int loadfont_main(int argc UNUSED_PARAM, char **argv)
+ {
+ 	size_t len;
+-	struct psf_header *psfhdr;
++	unsigned char *buffer;
+ 
+ 	// no arguments allowed!
+ 	opt_complementary = "=0";
+@@ -202,11 +301,11 @@ int loadfont_main(int argc UNUSED_PARAM, char **argv)
+ 	 * just read the entire file.
+ 	 */
+ 	len = 32*1024; // can't be larger
+-	psfhdr = xmalloc_read(STDIN_FILENO, &len);
++	buffer = xmalloc_read(STDIN_FILENO, &len);
+ 	// xmalloc_open_zipped_read_close(filename, &len);
+-	if (!psfhdr)
++	if (!buffer)
+ 		bb_perror_msg_and_die("error reading input font");
+-	do_load(get_console_fd_or_die(), psfhdr, len);
++	do_load(get_console_fd_or_die(), buffer, len);
+ 
+ 	return EXIT_SUCCESS;
+ }
+@@ -269,7 +368,7 @@ int setfont_main(int argc UNUSED_PARAM, char **argv)
+ 	size_t len;
+ 	unsigned opts;
+ 	int fd;
+-	struct psf_header *psfhdr;
++	unsigned char *buffer;
+ 	char *mapfilename;
+ 	const char *tty_name = CURRENT_TTY;
+ 
+@@ -287,10 +386,10 @@ int setfont_main(int argc UNUSED_PARAM, char **argv)
+ 	}
+ 	// load font
+ 	len = 32*1024; // can't be larger
+-	psfhdr = xmalloc_open_zipped_read_close(*argv, &len);
+-	if (!psfhdr)
++	buffer = xmalloc_open_zipped_read_close(*argv, &len);
++	if (!buffer)
+ 		bb_simple_perror_msg_and_die(*argv);
+-	do_load(fd, psfhdr, len);
++	do_load(fd, buffer, len);
+ 
+ 	// load the screen map, if any
+ 	if (opts & 1) { // -m
+--
+cgit v0.8.2.1
diff --git a/abs/core-testing/mkinitcpio/PKGBUILD b/abs/core-testing/mkinitcpio/PKGBUILD
index 6ba0f0f..9a87e42 100644
--- a/abs/core-testing/mkinitcpio/PKGBUILD
+++ b/abs/core-testing/mkinitcpio/PKGBUILD
@@ -1,31 +1,30 @@
-# $Id: PKGBUILD 24393 2009-01-15 23:25:29Z thomas $
+# $Id: PKGBUILD 85253 2010-07-11 10:05:21Z thomas $
 # Maintainer: Thomas Baechler <thomas@archlinux.org>
 # Maintainer: Tobias Powalowski <tpowa@archlinux.org>
 # Maintainer: Aaron Griffin <aaron@archlinux.org>
 
 pkgname=mkinitcpio
-pkgver=0.5.21
-pkgrel=34
-pkgdesc="Advanced, modular initramfs image creation utility"
-arch=(i686 x86_64)
+pkgver=0.6.7
+pkgrel=1
+pkgdesc="Modular initramfs image creation utility"
+arch=(any)
 url="http://www.archlinux.org/"
 license=('GPL')
-groups=('base')
-depends=('klibc>=1.5.14-2' 'klibc-extras>=2.5' 'klibc-udev>=130'
-         'gen-init-cpio' 'klibc-module-init-tools' 'coreutils'
-         'bash' 'klibc-kbd' 'findutils' 'sed' 'grep'
-         'filesystem>=2009.01' 'udev' 'gzip' 'fbsplash')
-source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.bz2 mkinitcpio.conf.diff)
+depends=('mkinitcpio-busybox>=1.16.1-2' 'module-init-tools' 'util-linux-ng>=2.17' 'gen-init-cpio' 'coreutils'
+         'bash' 'findutils' 'sed' 'grep' 'filesystem>=2009.01-2' 'udev>=150' 'file' 'gzip'
+         'which')
+optdepends=('xz: Use lzma compression for the initramfs image'
+            'bzip2: Use bzip2 compression for the initramfs image'
+            'mkinitcpio-nfs-utils: Support for root filesystem on NFS')
+replaces=('mkinitrd' 'mkinitramfs' 'klibc' 'klibc-extras' 'klibc-kbd'
+          'klibc-module-init-tools' 'klibc-udev')
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz mkinitcpio.conf.diff)
 backup=(etc/mkinitcpio.conf)
-replaces=('mkinitrd' 'mkinitramfs')
-md5sums=('d6673e8966d7c1f224c767d79434ed6b'
-	 '288d1555e8499cd791b693945ba9b3b1')
 
-build()
-{
-  cd $startdir/src/${pkgname}-${pkgver}
+package() {
+  cd $srcdir/${pkgname}-${pkgver}
   patch -p0 < ../mkinitcpio.conf.diff
-  ./install.sh $startdir/pkg
-  mkdir -p $pkgdir/usr/share
-  mv $pkgdir/usr/man $pkgdir/usr/share
+  make DESTDIR="${pkgdir}" install
 }
+sha256sums=('8d34bfa9c8018f02ee938ac68285e3aa16a1ad84ddc0433998e2d43a428cdcbd'
+            '1cc748bb291513e8202ad05f638def4ce9e48bf7d509061ba9c1f9ede3920454')
diff --git a/abs/core-testing/mkinitcpio/mkinitcpio.conf.diff b/abs/core-testing/mkinitcpio/mkinitcpio.conf.diff
index 1beff54..13f896b 100644
--- a/abs/core-testing/mkinitcpio/mkinitcpio.conf.diff
+++ b/abs/core-testing/mkinitcpio/mkinitcpio.conf.diff
@@ -1,8 +1,11 @@
---- mkinitcpio.conf.orig	2009-02-11 21:59:50.000000000 +0000
-+++ mkinitcpio.conf	2009-02-11 22:00:10.000000000 +0000
-@@ -55,4 +55,4 @@
+--- mkinitcpio.conf.orig	2010-08-15 23:10:21.000000000 +0000
++++ mkinitcpio.conf	2010-08-15 23:10:44.000000000 +0000
+@@ -54,7 +54,7 @@
  #
  #    This setup loads an lvm2 volume group on a usb device.
  #    HOOKS="base udev usb lvm2 filesystems"
 -HOOKS="base udev autodetect pata scsi sata filesystems"
 +HOOKS="base udev autodetect pata scsi sata filesystems fbsplash"
+ 
+ # COMPRESSION
+ # Use this to compress the initramfs image. With kernels earlier than
-- 
cgit v0.12


From 9af9cd696959440ee27a55f454bdc9081011f60a Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 17:05:41 -0700
Subject: module-init-tools:Bumped/Updated for LinHES 7.

---
 abs/core-testing/module-init-tools/PKGBUILD      | 56 +++++++++++++-----------
 abs/core-testing/module-init-tools/modprobe.conf |  2 +-
 2 files changed, 32 insertions(+), 26 deletions(-)

diff --git a/abs/core-testing/module-init-tools/PKGBUILD b/abs/core-testing/module-init-tools/PKGBUILD
index b4260d1..a59ee80 100644
--- a/abs/core-testing/module-init-tools/PKGBUILD
+++ b/abs/core-testing/module-init-tools/PKGBUILD
@@ -1,33 +1,39 @@
-# $Id: PKGBUILD 5982 2008-07-22 12:44:28Z thomas $
-# Maintainer: judd <jvinet@zeroflux.org>
+# $Id: PKGBUILD 85722 2010-07-18 10:36:50Z allan $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
 pkgname=module-init-tools
-pkgver=3.4
-pkgrel=10
-pkgdesc="Utilities for inserting and removing modules from the Linux kernel"
-arch=(i686 x86_64)
-url="http://www.kernel.org"
+pkgver=3.12
+pkgrel=1
+pkgdesc="utilities needed by Linux systems for managing loadable kernel modules"
+arch=('i686' 'x86_64')
+url="http://kerneltools.org"
 license=('GPL')
-groups=('base')
 depends=('glibc')
-backup=('etc/modprobe.conf')
+backup=('etc/modprobe.d/modprobe.conf')
 source=(http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-$pkgver.tar.bz2
-        ftp://sunsite.informatik.rwth-aachen.de/pub/linux/gentoo/distfiles/module-init-tools-$pkgver-manpages.tar.bz2
-        makefile.patch
-        modprobe.conf
-        fix-modprobe-ignore-path.patch)
-md5sums=('db6ac059e80e8dd4389dbe81ee61f3c6'
-         '006678277788b5a0402b171f4a235cd6'
-         '47e14fda7a46668290d11d0444d81826'
-         '6db59d41e04941a790f80c1a4432faef'
-         '335c3f8317f257ddd70b09271b4360bd')
+        modprobe.conf)
+md5sums=('8b2257ce9abef74c4a44d825d23140f3'
+         '316f1bda4c21af02b30252eb014a0a55')
 
 build() {
-  cd $startdir/src/$pkgname-$pkgver
-  patch -Np1 -i ../makefile.patch
-  patch -Np0 -i ../fix-modprobe-ignore-path.patch || return 1
-  sed -i 's|/usr/bin/install|/bin/install|g' install-with-care
+  cd $srcdir/$pkgname-$pkgver
+  
+  # do not regenerate man pages
+  touch *.{5,8}
+  
   ./configure --prefix=/usr --exec-prefix=/
-  make || return 1
-  INSTALL=/bin/install make DESTDIR=$startdir/pkg install || return 1
-  install -D -m644 ../modprobe.conf $startdir/pkg/etc/modprobe.conf
+  make
+}
+
+package() {
+  cd $srcdir/$pkgname-$pkgver
+
+  make DESTDIR=$pkgdir install
+ 
+  # Install our custom (read: empty) modprobe.conf
+  install -Dm644 $srcdir/modprobe.conf $pkgdir/etc/modprobe.d/modprobe.conf
+  
+  # fix man page (FS#17559)
+  sed -i "s#mod#man5/mod#" $pkgdir/usr/share/man/man5/modprobe.d.5
 }
diff --git a/abs/core-testing/module-init-tools/modprobe.conf b/abs/core-testing/module-init-tools/modprobe.conf
index d2fc24b..83865a3 100644
--- a/abs/core-testing/module-init-tools/modprobe.conf
+++ b/abs/core-testing/module-init-tools/modprobe.conf
@@ -1,3 +1,3 @@
 #
-# /etc/modprobe.conf (for v2.6 kernels)
+# /etc/modprobe.d/modprobe.conf (for v2.6 kernels)
 #
-- 
cgit v0.12


From ab6c1f25510856e2b932ef337f37be4ccd53839f Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 17:06:05 -0700
Subject: mpfr:Bumped/Updated for LinHES 7.

---
 abs/core-testing/mpfr/PKGBUILD     | 27 +++++++++++++++------------
 abs/core-testing/mpfr/mpfr.install |  2 ++
 2 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/abs/core-testing/mpfr/PKGBUILD b/abs/core-testing/mpfr/PKGBUILD
index ac2ab77..e53757b 100644
--- a/abs/core-testing/mpfr/PKGBUILD
+++ b/abs/core-testing/mpfr/PKGBUILD
@@ -1,26 +1,29 @@
-# $Id: PKGBUILD 12992 2008-09-25 17:47:29Z jgc $
+# $Id: PKGBUILD 82426 2010-06-11 05:51:29Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: damir <damir@archlinux.org>
 
 pkgname=mpfr
-pkgver=2.3.2
-pkgrel=2
-pkgdesc="multiple-precision floating-point library"
-arch=(i686 x86_64)
-license=('GPL' 'LGPL')
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Multiple-precision floating-point library"
+arch=('i686' 'x86_64')
+license=('LGPL')
 url="http://www.mpfr.org/"
-depends=('gmp>=4.2.3' 'texinfo')
+depends=('gmp>=5.0')
 options=('!libtool')
 install=mpfr.install
-#source=(http://www.mpfr.org/mpfr-current/mpfr-${pkgver}.tar.gz)
+source=(http://www.mpfr.org/mpfr-current/mpfr-${pkgver}.tar.xz)
+md5sums=('8ab3bef2864b8c6e6a291f5603141bbd')
 
-source=(http://modular.math.washington.edu/home/novocin/tars/mpfr-2.3.2.tar.gz)
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr --enable-thread-safe --enable-shared || return 1
   make || return 1
+  make check || return 1
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
   make DESTDIR="${pkgdir}" install || return 1
-  cd "${pkgdir}/usr/share/info" || return 1
-  rm -f dir
-  gzip * || return 1
 }
diff --git a/abs/core-testing/mpfr/mpfr.install b/abs/core-testing/mpfr/mpfr.install
index a95dec6..46ef244 100644
--- a/abs/core-testing/mpfr/mpfr.install
+++ b/abs/core-testing/mpfr/mpfr.install
@@ -2,6 +2,7 @@ info_dir=/usr/share/info
 info_files=(mpfr.info)
 
 post_install() {
+  [ -x usr/bin/install-info ] || return 0
   for f in ${info_files[@]}; do
     install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
   done
@@ -12,6 +13,7 @@ post_upgrade() {
 }
 
 pre_remove() {
+  [ -x usr/bin/install-info ] || return 0
   for f in ${info_files[@]}; do
     install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
   done
-- 
cgit v0.12


From 7f872666818b164bc7328ac4185de872e1626cba Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 17:06:46 -0700
Subject: mysql-clients:Removed for LinHES 7.

---
 abs/core-testing/mysql-clients/PKGBUILD | 37 ---------------------------------
 1 file changed, 37 deletions(-)
 delete mode 100644 abs/core-testing/mysql-clients/PKGBUILD

diff --git a/abs/core-testing/mysql-clients/PKGBUILD b/abs/core-testing/mysql-clients/PKGBUILD
deleted file mode 100644
index 483e6e5..0000000
--- a/abs/core-testing/mysql-clients/PKGBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# $Id: PKGBUILD 23698 2009-01-11 16:10:09Z douglas $
-# Maintainer: judd <jvinet@zeroflux.org>
-
-pkgname=mysql-clients
-pkgver=5.0.75
-pkgrel=2
-pkgdesc="MySQL client tools"
-arch=(i686 x86_64)
-depends=("libmysqlclient>=${pkgver}" 'gcc-libs' 'readline')
-makedepends=('tcp_wrappers' 'libtool' 'gcc')
-url=('http://www.mysql.com/')
-options=('!libtool')
-license=('GPL')
-source=(http://mirror.provenscaling.com/mysql/enterprise/source/5.0/mysql-${pkgver}.tar.gz)
-
-build() {
-  cd $startdir/src/mysql-${pkgver}
-  ./configure --prefix=/usr --libexecdir=/usr/sbin \
-    --localstatedir=/var --sysconfdir=/etc \
-    --without-debug --without-docs --without-bench --without-readline \
-    --with-innodb --enable-local-infile --with-openssl \
-    --with-charset=latin1 --with-collation=latin1_general_ci \
-    --with-extra-charsets=complex --enable-thread-safe-client \
-    --with-libwrap --with-berkeley-db --disable-server
-
-  for dir in include strings regex mysys dbug extra; do
-    pushd ${dir} || return 1
-    make || return 1
-    popd
-  done
-  cd client
-  sed -i -e 's|\$(top_builddir)/libmysql/libmysqlclient.la|/usr/lib/mysql/libmysqlclient.so|g' Makefile
-  make link_sources
-  make || return 1
-  make DESTDIR=${startdir}/pkg install
-}
-md5sums=('a234f0a60a7f8c290d9875cba3a2c5a2')
-- 
cgit v0.12


From de030bb36c5c50a8a5725a1f3ed6dc09cc82e426 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 17:06:57 -0700
Subject: mysql-python:Bumped/Updated for LinHES 7.

---
 abs/core-testing/mysql-python/PKGBUILD | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/abs/core-testing/mysql-python/PKGBUILD b/abs/core-testing/mysql-python/PKGBUILD
index 1e3dea0..a2c8606 100644
--- a/abs/core-testing/mysql-python/PKGBUILD
+++ b/abs/core-testing/mysql-python/PKGBUILD
@@ -1,20 +1,19 @@
-# $Id: PKGBUILD 16696 2008-10-22 02:26:55Z allan $
-# Maintainer: damir <damir@archlinux.org>
+# $Id: PKGBUILD 59043 2009-11-19 16:20:45Z andrea $
+# Contributor: damir <damir@archlinux.org>
 
 pkgname=mysql-python
-pkgver=1.2.2
+pkgver=1.2.3c1
 pkgrel=2
 pkgdesc="MySQL support for Python"
 arch=("i686" "x86_64")
 url="http://sourceforge.net/projects/mysql-python"
 license=('GPL2')
-depends=('python>=2.6' 'libmysqlclient')
-makedepends=('mysql>=5.0.23' 'setuptools')
-source=("http://downloads.sourceforge.net/sourceforge/mysql-python/MySQL-python-${pkgver}.tar.gz")
-md5sums=('532268f02870bea18c1d465e88afff30')
-
+depends=('python>=2.6' 'libmysqlclient>=5.1.41-2')
+makedepends=('mysql>=5.1.41-2' 'setuptools')
+source=("http://downloads.sourceforge.net/${pkgname}/MySQL-python-${pkgver}.tar.gz")
+md5sums=('310dd856e439d070b59ece6dd7a0734d')
 
 build() {
-  cd ${startdir}/src/MySQL-python-${pkgver}
-  yes | python setup.py install --root=${startdir}/pkg
+  cd ${srcdir}/MySQL-python-${pkgver}
+  python setup.py install --root=${pkgdir} || return 1
 }
-- 
cgit v0.12


From c8805100b4c521efd2909cb3988d0e57e96026e8 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 17:07:29 -0700
Subject: mysql:Bumped/Updated for LinHES 7.

---
 abs/core-testing/mysql/PKGBUILD               | 153 ++++++++++++++++++--------
 abs/core-testing/mysql/__changelog            |  15 +--
 abs/core-testing/mysql/mysql-no-clients.patch |  65 -----------
 abs/core-testing/mysql/mysql.install          |  20 ++++
 abs/core-testing/mysql/mysqld                 |  67 ++++++-----
 abs/core-testing/mysql/mysqld.conf.d          |   1 -
 abs/core-testing/mysql/skip-abi-check.patch   |  13 +++
 7 files changed, 171 insertions(+), 163 deletions(-)
 delete mode 100644 abs/core-testing/mysql/mysql-no-clients.patch
 create mode 100644 abs/core-testing/mysql/mysql.install
 delete mode 100644 abs/core-testing/mysql/mysqld.conf.d
 create mode 100644 abs/core-testing/mysql/skip-abi-check.patch

diff --git a/abs/core-testing/mysql/PKGBUILD b/abs/core-testing/mysql/PKGBUILD
index c91ac41..ce41dbc 100644
--- a/abs/core-testing/mysql/PKGBUILD
+++ b/abs/core-testing/mysql/PKGBUILD
@@ -1,56 +1,113 @@
-# $Id: PKGBUILD 23595 2009-01-11 13:14:19Z douglas $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# $Id: PKGBUILD 81345 2010-05-28 20:08:31Z jgc $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
 # Contributor: judd <jvinet@zeroflux.org>
-pkgname=mysql
-pkgver=5.0.75
-pkgrel=4
-pkgdesc="A fast SQL database server"
-arch=(i686 x86_64)
-backup=(etc/my.cnf etc/conf.d/mysqld)
-depends=("mysql-clients>=${pkgver}" 'tcp_wrappers')
-makedepends=('libtool')
-url=('http://www.mysql.com/')
-options=('!libtool')
-optdepends=('perl-dbi' 'perl-dbd-mysql')
+
+pkgbase=mysql
+pkgname=('libmysqlclient' 'mysql-clients' 'mysql')
+pkgver=5.1.47
+pkgrel=1
+arch=('i686' 'x86_64')
 license=('GPL')
-source=(ftp://ftp.pucpr.br/mysql/Downloads/MySQL-5.0/mysql-${pkgver}.tar.gz
-	mysql-no-clients.patch
-	mysqld
-	my.cnf
-	mysqld.conf.d)
+url="http://www.mysql.com/"
+makedepends=('tcp_wrappers' 'zlib' 'perl' 'openssl' 'libtool' 'patch')
+options=('!libtool')
+source=(http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.1/${pkgbase}-${pkgver}.tar.gz
+        mysqld
+        my.cnf
+        skip-abi-check.patch)
+md5sums=('02b9964b3966832f3d6bc87524bfd73f'
+         '2234207625baa29b2ff7d7b4f088abce'
+         '0337741fa9afbe57939993636081a827'
+         'a97e574945e19de3908575b956241026')
 
 build() {
-  # PIC
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  patch -Np1 -i ${startdir}/src/mysql-no-clients.patch || return 1
-  ./configure --prefix=/usr --libexecdir=/usr/sbin \
-    --without-debug --without-docs --without-bench --without-readline \
-    --with-innodb --enable-local-infile --with-openssl \
-    --with-charset=latin1 --with-collation=latin1_general_ci \
-    --with-extra-charsets=complex --enable-thread-safe-client \
-    --with-libwrap --with-berkeley-db --with-embedded-server
-
-  # fixes
-  sed -i -e 's/^.*HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE.*$/#define\ HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE/g' include/config.h || return 1
-  sed -i -e 's/size_socket/socklen_t/g' sql/mysqld.cc || return 1
-
-  pushd include || return
-  make || return 1
-  popd
-  pushd libmysql
-  make link_sources get_password.lo || return
-  popd
+  cd "${srcdir}/${pkgbase}-${pkgver}"
+  patch -Np0 -i "${srcdir}/skip-abi-check.patch" || return 1
+  # CFLAGS/CXXFLAGS as suggested upstream
+  CFLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer" \
+  CXXFLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-rtti" \
+  ./configure --prefix=/usr \
+    --libexecdir=/usr/sbin \
+    --localstatedir=/var \
+    --sysconfdir=/etc/mysql \
+    --without-docs \
+    --without-readline \
+    --with-ssl \
+    --with-libwrap \
+    --with-charset=utf8 \
+    --with-collation=utf8_general_ci \
+    --with-extra-charsets=complex \
+    --with-embedded-server \
+    --with-unix-socket-path=/var/run/mysqld/mysqld.sock \
+    --enable-local-infile \
+    --with-plugins=partition,ftexample,archive,blackhole,federated,heap,innobase,innodb_plugin,ndbcluster || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install
-  rm -rf ${startdir}/pkg/usr/{mysql-test,sql-bench}
-  install -D -m644 ../my.cnf ${startdir}/pkg/etc/my.cnf
-  install -D -m755 ../mysqld ${startdir}/pkg/etc/rc.d/mysqld
-  install -D -m644 ../mysqld.conf.d ${startdir}/pkg/etc/conf.d/mysqld
-  rm -f ${startdir}/pkg/usr/bin/mysql_config
 }
 
-md5sums=('a234f0a60a7f8c290d9875cba3a2c5a2'
-         'e892aac36cbeb57f0e003ec0936afb3b'
-         'cfff3585dd70cde3ac1ce69e64008733'
+package_libmysqlclient(){
+  pkgdesc="MySQL client libraries"
+  depends=('openssl' 'zlib' 'gcc-libs' 'tcp_wrappers')
+  
+  cd "${srcdir}/${pkgbase}-${pkgver}"
+  for dir in include libmysql libmysql_r libmysqld; do
+    make -C ${dir} DESTDIR="${pkgdir}" install || return 1
+  done
+  install -m644 include/*.h "${pkgdir}/usr/include/mysql/" || return 1
+
+  install -d "${pkgdir}/usr/bin"
+  install -m755 scripts/mysql_config "${pkgdir}/usr/bin/" || return 1
+  
+  # create library symlinks in /usr/lib
+  ln -sf mysql/libmysqlclient.so.16 ${pkgdir}/usr/lib/libmysqlclient.so.16
+  ln -sf libmysqlclient.so.16 ${pkgdir}/usr/lib/libmysqlclient.so
+  ln -sf libmysqlclient.so.16 ${pkgdir}/usr/lib/libmysqlclient.so.1
+  ln -sf mysql/libmysqlclient_r.so.16  ${pkgdir}/usr/lib/libmysqlclient_r.so.16
+  ln -sf libmysqlclient_r.so.16 ${pkgdir}/usr/lib/libmysqlclient_r.so
+  ln -sf libmysqlclient_r.so.16 ${pkgdir}/usr/lib/libmysqlclient_r.so.1
+}
+
+package_mysql-clients(){
+  pkgdesc="MySQL client tools"
+  depends=('libmysqlclient')
+  
+  cd "${srcdir}/${pkgbase}-${pkgver}/client"
+  make DESTDIR="${pkgdir}" install || return 1
+
+  # provided by libmysqlclient
+  rm -rf "${pkgdir}/usr/lib/"
+
+  # provided by mysql
+  rm -f "${pkgdir}"/usr/bin/{mysql_upgrade,mysqlbinlog,mysqltest}
+}
+
+package_mysql(){
+  pkgdesc="A fast SQL database server"
+  backup=('etc/my.cnf' 'etc/mysql/my.cnf')
+  install=mysql.install
+  depends=('mysql-clients')
+  optdepends=('perl-dbi' 'perl-dbd-mysql')
+
+  cd "${srcdir}/${pkgbase}-${pkgver}"
+  make DESTDIR=${pkgdir} install || return 1
+
+  install -Dm644 ${srcdir}/my.cnf ${pkgdir}/etc/mysql/my.cnf || return 1
+  install -Dm755 ${srcdir}/mysqld ${pkgdir}/etc/rc.d/mysqld || return 1
+
+  # provided by libmysqlclient
+  rm -f ${pkgdir}/usr/bin/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}
+  rm -f ${pkgdir}/usr/lib/mysql/libmysqlclient*
+  rm -f ${pkgdir}/usr/lib/mysql/libmysqld.a
+  rm -f ${pkgdir}/usr/include/mysql/*.h
+  
+  # provided by mysql-clients
+  rm -f ${pkgdir}/usr/bin/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}
+
+  # not needed
+  rm -rf ${pkgdir}/usr/{mysql-test,sql-bench}
+  rm -f ${pkgdir}/usr/lib/mysql/plugin/*.a
+}
+md5sums=('02b9964b3966832f3d6bc87524bfd73f'
+         '040148932c625794c4db81ab9139eb68'
          '078f6e824d6097d558bcf7c16d508d92'
-         'd81d1f51e9ee6941425a63456d07cb21')
+         'a97e574945e19de3908575b956241026')
diff --git a/abs/core-testing/mysql/__changelog b/abs/core-testing/mysql/__changelog
index aa066aa..5466afc 100644
--- a/abs/core-testing/mysql/__changelog
+++ b/abs/core-testing/mysql/__changelog
@@ -1,13 +1,2 @@
-my.cnf
--enable networking
--datadir /data/srv/mysql
--query_cache_size
--tmp_table_size
--max_heap_table_size
--thread_cache_size
--table_cache
-
-mysqld
-	-redirect output to /dev/null
-	--skip-name-resolve 
-    replace mkdir with mkdir -p
+6/13/10 - chw - LinHES specific my.cnf
+	- chw - mysqld, added --skip-name-resolve to mysqld_safe line and output to /dev/null
diff --git a/abs/core-testing/mysql/mysql-no-clients.patch b/abs/core-testing/mysql/mysql-no-clients.patch
deleted file mode 100644
index e1fb5e0..0000000
--- a/abs/core-testing/mysql/mysql-no-clients.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-diff -ruN mysql-5.0.51.orig/Makefile.in mysql-5.0.51/Makefile.in
---- mysql-5.0.51.orig/Makefile.in	2007-12-07 12:59:21.000000000 +0000
-+++ mysql-5.0.51/Makefile.in	2007-12-07 13:03:21.000000000 +0000
-@@ -376,7 +376,7 @@
- SUBDIRS = . include @docs_dirs@ @zlib_dir@ @yassl_dir@ \
- 			@readline_topdir@ sql-common scripts \
- 			@thread_dirs@ pstack \
--			@sql_union_dirs@ @man_dirs@ tests \
-+			strings mysys dbug extra regex bdb innobase myisam myisammrg heap vio sql @man_dirs@ tests \
- 			netware @libmysqld_dirs@ \
- 			@bench_dirs@ support-files @tools_dirs@
- 
-diff -ruN mysql-5.0.51.orig/include/Makefile.in mysql-5.0.51/include/Makefile.in
---- mysql-5.0.51.orig/include/Makefile.in	2007-12-07 12:59:20.000000000 +0000
-+++ mysql-5.0.51/include/Makefile.in	2007-12-07 13:00:12.000000000 +0000
-@@ -557,7 +557,6 @@
- 	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
- 	done
- install: $(BUILT_SOURCES)
--	$(MAKE) $(AM_MAKEFLAGS) install-am
- install-exec: install-exec-am
- install-data: install-data-am
- uninstall: uninstall-am
-diff -ruN mysql-5.0.51.orig/tests/Makefile.in mysql-5.0.51/tests/Makefile.in
---- mysql-5.0.51.orig/tests/Makefile.in	2007-12-07 12:59:20.000000000 +0000
-+++ mysql-5.0.51/tests/Makefile.in	2007-12-07 13:01:51.000000000 +0000
-@@ -96,7 +96,7 @@
- am_mysql_client_test_OBJECTS = mysql_client_test.$(OBJEXT) \
- 	my_memmem.$(OBJEXT)
- mysql_client_test_OBJECTS = $(am_mysql_client_test_OBJECTS)
--am__DEPENDENCIES_1 = $(top_builddir)/libmysql/libmysqlclient.la
-+am__DEPENDENCIES_1 = /usr/lib/mysql/libmysqlclient.so
- am__DEPENDENCIES_2 =
- mysql_client_test_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- 	$(am__DEPENDENCIES_2)
-@@ -106,7 +106,7 @@
- thread_test_SOURCES = thread_test.c
- thread_test_OBJECTS = thread_test.$(OBJEXT)
- thread_test_LDADD = $(LDADD)
--thread_test_DEPENDENCIES = $(top_builddir)/libmysql/libmysqlclient.la
-+thread_test_DEPENDENCIES = /usr/lib/mysql/libmysqlclient.so
- DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
- depcomp = $(SHELL) $(top_srcdir)/depcomp
- am__depfiles_maybe = depfiles
-@@ -405,7 +405,7 @@
- 			$(openssl_includes)
- 
- LDADD = @CLIENT_EXTRA_LDFLAGS@ \
--                        $(top_builddir)/libmysql/libmysqlclient.la
-+                        /usr/lib/mysql/libmysqlclient.so
- 
- mysql_client_test_LDADD = $(LDADD) $(CXXLDFLAGS)
- mysql_client_test_SOURCES = mysql_client_test.c\
-diff -ruN mysql-5.0.51.orig/tools/Makefile.in mysql-5.0.51/tools/Makefile.in
---- mysql-5.0.51.orig/tools/Makefile.in	2007-12-07 12:59:19.000000000 +0000
-+++ mysql-5.0.51/tools/Makefile.in	2007-12-07 13:02:32.000000000 +0000
-@@ -369,7 +369,7 @@
- 		$(openssl_includes)
- 
- LDADD = @CLIENT_EXTRA_LDFLAGS@ \
--		$(top_builddir)/libmysql_r/libmysqlclient_r.la \
-+		/usr/lib/mysql/libmysqlclient_r.so \
- 		@openssl_libs@ @yassl_libs@ @ZLIB_LIBS@
- 
- mysqltestmanager_SOURCES = mysqlmanager.c
diff --git a/abs/core-testing/mysql/mysql.install b/abs/core-testing/mysql/mysql.install
new file mode 100644
index 0000000..9e9011d
--- /dev/null
+++ b/abs/core-testing/mysql/mysql.install
@@ -0,0 +1,20 @@
+post_install(){
+  groupadd -g 89 mysql &>/dev/null
+  useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql &>/dev/null
+  usr/bin/mysql_install_db --user=mysql
+  chown -R mysql:mysql var/lib/mysql &>/dev/null
+}
+
+post_upgrade(){
+  getent group mysql >/dev/null 2>&1 || groupadd -g 89 mysql &>/dev/null
+  getent passwd mysql >/dev/null 2>&1 || useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql &>/dev/null
+}
+
+post_remove(){
+  if getent passwd mysql >/dev/null 2>&1; then
+    userdel mysql
+  fi
+  if getent group mysql >/dev/null 2>&1; then
+    groupdel mysql
+  fi
+}
diff --git a/abs/core-testing/mysql/mysqld b/abs/core-testing/mysql/mysqld
index 5857df8..882e6dd 100755
--- a/abs/core-testing/mysql/mysqld
+++ b/abs/core-testing/mysql/mysqld
@@ -1,48 +1,35 @@
 #!/bin/bash
 
-MYSQLD_ROOT="/var/lib/mysql"
-# source application-specific settings
-[ -f /etc/conf.d/mysqld ] && . /etc/conf.d/mysqld
-
 # general config
 . /etc/rc.conf
 . /etc/rc.d/functions
 
-PID=`pidof -o %PPID /usr/sbin/mysqld`
-if [ ! `egrep '^mysql:' /etc/group` ]; then
-  stat_busy "Adding mysql group"
-  groupadd -g 89 mysql
-  stat_done
-fi
-if [ ! `egrep '^mysql:' /etc/passwd` ]; then
-  stat_busy "Adding mysql user"
-  useradd -u 89 -g mysql -d $MYSQLD_ROOT -s /bin/false mysql
-  [ -d $MYSQLD_ROOT ] && chown -R mysql.mysql $MYSQLD_ROOT
-  stat_done
-fi
-
-if [ ! -d $MYSQLD_ROOT ]; then
-  mkdir -p $MYSQLD_ROOT
-  /usr/bin/mysql_install_db --datadir=$MYSQLD_ROOT --user=mysql 2>/dev/null 1>/dev/null
-  chown -R mysql.mysql $MYSQLD_ROOT
-fi
+getPID() {
+   echo $(pgrep -u mysql mysqld 2>/dev/null);
+}
 
 case "$1" in
   start)
-    stat_busy "Starting MySQL"
-    if [ -z "$PID" ]; then
-       /usr/bin/mysqld_safe --skip-name-resolve --datadir=$MYSQLD_ROOT >/dev/null 2>/dev/null &
+    stat_busy "Starting MySQL Server"
+    [ ! -d /var/run/mysqld ] && install -d -g mysql -o mysql /var/run/mysqld &>/dev/null
+    if [ -z "$(getPID)" ]; then
+       /usr/bin/mysqld_safe --skip-name-resolve --user=mysql >/devl/null &>/dev/null &
       if [ $? -gt 0 ]; then
         stat_fail
         exit 1
       else
-        sleep 1 # wait on children
-        PID=`pidof -o %PPID /usr/sbin/mysqld`
-        if [ -z "$PID" ]; then
+        timeo=30
+        while [ $timeo -gt 0 ]; do
+          response=`/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1` && break
+          echo "$response" | grep -q "mysqld is alive" && break
+          sleep 1
+          let timeo=${timeo}-1
+        done
+        if [ $timeo -eq 0 ]; then
           stat_fail
           exit 1
         else
-          echo $PID >/var/run/mysqld.pid
+          echo $(getPID) > /var/run/mysqld/mysqld.pid
           add_daemon mysqld
           stat_done
         fi
@@ -54,16 +41,25 @@ case "$1" in
     ;;
 
   stop)
-    stat_busy "Stopping MySQL"
-    if [ ! -z "$PID" ]; then
-      kill $PID &> /dev/null      
+    stat_busy "Stopping MySQL Server"
+    if [ ! -z "$(getPID)" ]; then
+      timeo=30
+      kill $(getPID) &> /dev/null
       if [ $? -gt 0 ]; then
         stat_fail
         exit 1
-      else
-        rm -f /var/run/mysqld.pid &>/dev/null
+      fi
+      while [ ! -z "$(getPID)" -a $timeo -gt 0 ]; do
+        sleep 1
+        let timeo=${timeo}-1
+      done
+      if [ -z "$(getPID)" ]; then
+        rm -f /var/run/mysqld/mysqld.pid &>/dev/null
         rm_daemon mysqld
         stat_done
+      else
+        stat_fail
+        exit 1
       fi
     else
       stat_fail
@@ -73,10 +69,9 @@ case "$1" in
 
   restart)
     $0 stop
-    sleep 3
     $0 start
     ;;
   *)
-    echo "usage: $0 {start|stop|restart}"  
+    echo "usage: $0 {start|stop|restart}"
 esac
 exit 0
diff --git a/abs/core-testing/mysql/mysqld.conf.d b/abs/core-testing/mysql/mysqld.conf.d
deleted file mode 100644
index 10b7098..0000000
--- a/abs/core-testing/mysql/mysqld.conf.d
+++ /dev/null
@@ -1 +0,0 @@
-MYSQLD_ROOT="/data/srv/mysql"
diff --git a/abs/core-testing/mysql/skip-abi-check.patch b/abs/core-testing/mysql/skip-abi-check.patch
new file mode 100644
index 0000000..6791deb
--- /dev/null
+++ b/abs/core-testing/mysql/skip-abi-check.patch
@@ -0,0 +1,13 @@
+--- Makefile.in.orig	2010-05-28 20:03:46.507224494 +0200
++++ Makefile.in	2010-05-28 20:04:05.737221909 +0200
+@@ -1126,10 +1126,8 @@
+ #
+ 
+ abi_check:	$(API_PREPROCESSOR_HEADER)
+-	$(MAKE) abi_headers="$^" do_abi_check
+ 
+ abi_check_all:	$(TEST_PREPROCESSOR_HEADER)
+-	$(MAKE) abi_headers="$^" do_abi_check
+ 
+ do_abi_check:
+ 	set -ex; \
-- 
cgit v0.12


From 03b6be8e2e3552fe37566f2deb81ec73a7890536 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 21:28:07 -0700
Subject: ndiswrapper-utils:Bumped/Updated for LinHES 7.

---
 abs/core-testing/ndiswrapper-utils/PKGBUILD | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/abs/core-testing/ndiswrapper-utils/PKGBUILD b/abs/core-testing/ndiswrapper-utils/PKGBUILD
index 3467469..17126fb 100644
--- a/abs/core-testing/ndiswrapper-utils/PKGBUILD
+++ b/abs/core-testing/ndiswrapper-utils/PKGBUILD
@@ -1,22 +1,27 @@
-#$Id: PKGBUILD 7905 2008-08-05 07:01:47Z tpowa $
+#$Id: PKGBUILD 77959 2010-04-19 07:17:40Z allan $
 #Maintainer: Tobias Powalowski <tpowa@archlinux.org>
 
 pkgname=ndiswrapper-utils
-pkgver=1.53
-pkgrel=1
+pkgver=1.56
+pkgrel=2
 pkgdesc="Binaries for ndiswrapper module"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
 license=('GPL')
 url="http://ndiswrapper.sourceforge.net"
-depends=(wireless_tools glibc)
+depends=('wireless_tools' 'glibc' 'perl')
 replaces=('ndiswrapper-bin')
 conflicts=('ndiswrapper-bin')
 source=(http://downloads.sourceforge.net/ndiswrapper/ndiswrapper-$pkgver.tar.gz)
+md5sums=('1431f7ed5f8e92e752d330bbb3aed333')
 
 build()
 {
-  cd $startdir/src/ndiswrapper-$pkgver/utils
+  cd $srcdir/ndiswrapper-$pkgver/utils
   make || return 1
-  make DESTDIR=$startdir/pkg install
 }
-md5sums=('393c6e6ab0803963148e18538601cdec')
+
+package() {
+  cd $srcdir/ndiswrapper-$pkgver/utils
+  make DESTDIR=$pkgdir install
+}
+
-- 
cgit v0.12


From 635917c30701e6daf35b7f12f65991cf5d118dfb Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 21:28:30 -0700
Subject: ndiswrapper:Bumped/Updated for LinHES 7.

---
 abs/core-testing/ndiswrapper/PKGBUILD            | 22 +++++++++-------------
 abs/core-testing/ndiswrapper/ndiswrapper.install | 17 ++++++-----------
 2 files changed, 15 insertions(+), 24 deletions(-)

diff --git a/abs/core-testing/ndiswrapper/PKGBUILD b/abs/core-testing/ndiswrapper/PKGBUILD
index d0c9886..b6662fb 100644
--- a/abs/core-testing/ndiswrapper/PKGBUILD
+++ b/abs/core-testing/ndiswrapper/PKGBUILD
@@ -1,28 +1,23 @@
-#$Id: PKGBUILD 22488 2008-12-26 22:47:09Z tpowa $
+#$Id: PKGBUILD 80412 2010-05-17 07:56:55Z tpowa $
 #Maintainer: Tobias Powalowski <tpowa@archlinux.org>
 
 pkgname=ndiswrapper
-_kernver=2.6.28-LinHES
-pkgver=1.53
-pkgrel=6
+_kernver=2.6.34-LinHES
+pkgver=1.56
+pkgrel=3
 pkgdesc="Module for NDIS (Windows Network Drivers) drivers supplied by vendors. For stock arch 2.6 kernel."
 license=('GPL')
 arch=(i686 x86_64)
 url="http://ndiswrapper.sourceforge.net"
 install="ndiswrapper.install"
-depends=("ndiswrapper-utils=$pkgver" 'kernel26>=2.6.28' 'kernel26<2.6.29')
-source=(http://downloads.sourceforge.net/sourceforge/ndiswrapper/ndiswrapper-$pkgver.tar.gz
-        kernel-2.6.27.patch
-	ndiswrapper-CVE-2008-4395.patch)
-md5sums=('393c6e6ab0803963148e18538601cdec'
-         'cd09562c4afdbd20a0237a5e6d976b31'
-         'b35e548a0c9eb1395f6f7b434a258ddf')
+depends=("ndiswrapper-utils=$pkgver" 'kernel26>=2.6.34' 'kernel26<2.6.35')
+makedepends=('kernel26-headers>=2.6.34' 'kernel26-headers<2.6.35')
+source=(http://downloads.sourceforge.net/sourceforge/ndiswrapper/ndiswrapper-$pkgver.tar.gz)
+md5sums=('1431f7ed5f8e92e752d330bbb3aed333')
 
 build()
 {
   cd $srcdir/ndiswrapper-$pkgver/driver
-  patch -Np1 -i ../../kernel-2.6.27.patch || return 1
-  patch -Np3 -i ../../ndiswrapper-CVE-2008-4395.patch || return 1
   make KVERS=$_kernver || return 1
   make DESTDIR=$pkgdir KVERS=$_kernver install || return 1
   rm $pkgdir/lib/modules/$_kernver/modules.* #wtf?
@@ -33,3 +28,4 @@ build()
   mv $pkgdir/lib/modules/$_kernver/misc/* $pkgdir/lib/modules/$_kernver/kernel/drivers/net/wireless/ndiswrapper/
   rm -r $pkgdir/lib/modules/$_kernver/misc/
 }
+
diff --git a/abs/core-testing/ndiswrapper/ndiswrapper.install b/abs/core-testing/ndiswrapper/ndiswrapper.install
index e173d14..fafe580 100644
--- a/abs/core-testing/ndiswrapper/ndiswrapper.install
+++ b/abs/core-testing/ndiswrapper/ndiswrapper.install
@@ -2,8 +2,8 @@
 post_install()
 {
   ndiswrapper -m
-  KERNEL_VERSION='2.6.28-LinHES'
-  depmod -ae -v $KERNEL_VERSION > /dev/null 2>&1 
+  KERNEL_VERSION='2.6.34-LinHES'
+  depmod -ae $KERNEL_VERSION > /dev/null 2>&1 
 }
 
 # arg 1:  the new package version
@@ -11,18 +11,13 @@ post_install()
 post_upgrade()
 {
   ndiswrapper -m
-  KERNEL_VERSION='2.6.28-LinHES'
-  depmod -ae -v $KERNEL_VERSION > /dev/null 2>&1 
+  KERNEL_VERSION='2.6.34-LinHES'
+  depmod -ae $KERNEL_VERSION > /dev/null 2>&1 
 }
 
 # arg 1:  the old package version
 post_remove()
 {
-  KERNEL_VERSION='2.6.28-LinHES'
-  depmod -ae -v $KERNEL_VERSION > /dev/null 2>&1
+  KERNEL_VERSION='2.6.34-LinHES'
+  depmod -ae $KERNEL_VERSION > /dev/null 2>&1
 }
-
-op=$1
-shift
-
-$op $*
-- 
cgit v0.12


From 92c279a1b19f1d8b5036b7a257b09ca95bb17ab4 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 21:28:47 -0700
Subject: ntfs-3g:Bumped/Updated for LinHES 7.

---
 .../ntfs-3g/25-ntfs-config-write-policy.fdi        | 42 ++++++++++++++++++++++
 abs/core-testing/ntfs-3g/PKGBUILD                  | 34 +++++++++---------
 2 files changed, 60 insertions(+), 16 deletions(-)
 create mode 100644 abs/core-testing/ntfs-3g/25-ntfs-config-write-policy.fdi

diff --git a/abs/core-testing/ntfs-3g/25-ntfs-config-write-policy.fdi b/abs/core-testing/ntfs-3g/25-ntfs-config-write-policy.fdi
new file mode 100644
index 0000000..54195d8
--- /dev/null
+++ b/abs/core-testing/ntfs-3g/25-ntfs-config-write-policy.fdi
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deviceinfo version="0.2">
+  <device>
+   	<match key="volume.fstype" string="ntfs">
+        <append key="volume.fstype.alternative" type="copy_property">volume.fstype</append>
+        <merge key="volume.mount.ntfs.valid_options" type="copy_property">volume.mount.valid_options</merge>
+        <merge key="volume.unmount.ntfs.valid_options" type="copy_property">volume.unmount.valid_options</merge>
+        <merge key="volume.fstype" type="string">ntfs-3g</merge>
+       	<merge key="volume.mount.valid_options" type="strlist">ro</merge>
+        <append key="volume.mount.valid_options" type="strlist">atime</append>
+        <append key="volume.mount.valid_options" type="strlist">noatime</append>
+       	<append key="volume.mount.valid_options" type="strlist">relatime</append>
+       	<append key="volume.mount.valid_options" type="strlist">fake_rw</append>
+       	<append key="volume.mount.valid_options" type="strlist">no_def_opts</append>
+       	<append key="volume.mount.valid_options" type="strlist">default_permissions</append>
+       	<append key="volume.mount.valid_options" type="strlist">umask=</append>
+       	<append key="volume.mount.valid_options" type="strlist">fmask=</append>
+       	<append key="volume.mount.valid_options" type="strlist">dmask=</append>
+       	<append key="volume.mount.valid_options" type="strlist">uid=</append>
+       	<append key="volume.mount.valid_options" type="strlist">gid=</append>
+      	<append key="volume.mount.valid_options" type="strlist">show_sys_files</append>
+       	<append key="volume.mount.valid_options" type="strlist">silent</append>
+       	<append key="volume.mount.valid_options" type="strlist">force</append>
+       	<append key="volume.mount.valid_options" type="strlist">remove_hiberfile</append>
+       	<append key="volume.mount.valid_options" type="strlist">locale=</append>
+       	<append key="volume.mount.valid_options" type="strlist">streams_interface=</append>
+       	<append key="volume.mount.valid_options" type="strlist">debug</append>
+       	<append key="volume.mount.valid_options" type="strlist">no_detatch</append>
+       	<append key="volume.mount.valid_options" type="strlist">sync</append>
+       	<append key="volume.mount.valid_options" type="strlist">dirsync</append>
+       	<append key="volume.mount.valid_options" type="strlist">nodiratime</append>
+       	<append key="volume.mount.valid_options" type="strlist">noexec</append>
+        <append key="volume.mount.valid_options" type="strlist">quiet</append>
+       	<append key="volume.mount.valid_options" type="strlist">remount</append>
+       	<append key="volume.mount.valid_options" type="strlist">exec</append>
+       	<append key="volume.mount.valid_options" type="strlist">recover</append>
+       	<append key="volume.mount.valid_options" type="strlist">norecover</append>
+       	<merge key="volume.unmount.valid_options" type="strlist">lazy</merge>
+       	<merge key="volume.policy.mount_filesystem" type="string">ntfs-3g</merge>
+	</match>
+  </device>
+</deviceinfo>
diff --git a/abs/core-testing/ntfs-3g/PKGBUILD b/abs/core-testing/ntfs-3g/PKGBUILD
index a8ae6e5..8c69b19 100644
--- a/abs/core-testing/ntfs-3g/PKGBUILD
+++ b/abs/core-testing/ntfs-3g/PKGBUILD
@@ -1,31 +1,33 @@
-# $Id: PKGBUILD 35598 2009-04-14 08:38:34Z ronald $
+# $Id: PKGBUILD 82467 2010-06-11 12:01:11Z ronald $
 # Maintainer: Ronald van Haren <ronald.archlinux.org>
 # Contributor: Thomas B�chler <thomas.archlinux.org>
 
 pkgname=ntfs-3g
-pkgver=2009.4.4
-pkgrel=3
+pkgver=2010.5.22
+pkgrel=1
 pkgdesc="Stable read and write NTFS driver"
-url="http://www.ntfs-3g.org/"
+url="http://www.tuxera.com"
 arch=('i686' 'x86_64')
 license=('GPL2')
-install=ntfs-3g.install
-depends=('glibc')
+depends=('glibc' 'fuse')
 makedepends=('pkgconfig')
 options=('!libtool')
-source=(http://www.ntfs-3g.org/${pkgname}-${pkgver}.tgz
-	20-ntfs-config-write-policy.fdi)
-md5sums=('e0b5c170f088a8d82968f0a6b34d31da'
-         'ece35a9108837e2008e5a47f3390755e')
+source=(http://www.tuxera.com/opensource/${pkgname}-${pkgver}.tgz
+        25-ntfs-config-write-policy.fdi)
+sha1sums=('300c433dc455967a9b95009b89ef6931b3eae90e'
+          '200029f2999a2c284fd30ae25734abf6459c3501')
 
 build() {
-  cd ${srcdir}/${pkgname}-${pkgver}
-  # use internal fuse at least until fuse 2.8.0 is relased, it contains
-  # some bug & security fixes
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ac_cv_path_LDCONFIG=/bin/true ./configure --prefix=/usr \
-	--with-fuse=internal || return 1
+    --with-fuse=external --disable-static || return 1
   make || return 1
-  make DESTDIR=${pkgdir} install || return 1
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  make DESTDIR="${pkgdir}" install || return 1
+  ln -s /bin/ntfs-3g "${pkgdir}/sbin/mount.ntfs" || return 1
   install -m755 -d "${pkgdir}/usr/share/hal/fdi/policy/10osvendor"
-  install -m644 "${srcdir}/20-ntfs-config-write-policy.fdi" "${pkgdir}/usr/share/hal/fdi/policy/10osvendor/" || return 1
+  install -m644 "${srcdir}/25-ntfs-config-write-policy.fdi" "${pkgdir}/usr/share/hal/fdi/policy/10osvendor/" || return 1
 }
-- 
cgit v0.12


From 813bcfba9712ae5ca2defc402130488203bcefec Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 21:28:53 -0700
Subject: ntfsprogs:Bumped/Updated for LinHES 7.

---
 abs/core-testing/ntfsprogs/PKGBUILD | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/abs/core-testing/ntfsprogs/PKGBUILD b/abs/core-testing/ntfsprogs/PKGBUILD
index 9f24ad6..56bf765 100644
--- a/abs/core-testing/ntfsprogs/PKGBUILD
+++ b/abs/core-testing/ntfsprogs/PKGBUILD
@@ -1,26 +1,24 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# $Id: PKGBUILD 48342 2009-08-01 14:46:45Z jgc $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
 
 pkgname=ntfsprogs
 pkgver=2.0.0
-pkgrel=2
-depends=('glibc' 'fuse' 'e2fsprogs')
+pkgrel=4
+depends=('glibc' 'fuse' 'util-linux-ng>=2.16')
 makedepends=('pkgconfig')
-pkgdesc="NTFS Resizing Tool"
+pkgdesc="NTFS filesystem utilities"
 arch=(i686 x86_64)
 license=('GPL')
-#source=(http://heanet.dl.sourceforge.net/sourceforge/linux-ntfs/$pkgname-$pkgver.tar.gz)
-#source=(http://mesh.dl.sourceforge.net/sourceforge/linux-ntfs/$pkgname-$pkgver.tar.gz)
-source=(http://switch.dl.sourceforge.net/sourceforge/linux-ntfs/$pkgname-$pkgver.tar.gz)
-url="http://linux-ntfs.sourceforge.net"
-install=('ntfsprogs.install')
+source=(http://downloads.sourceforge.net/sourceforge/linux-ntfs/${pkgname}-${pkgver}.tar.gz)
+url="http://www.linux-ntfs.org/"
 options=(!libtool)
 md5sums=('2c402b647bb7aeb1d3f8ce1cc354fd68')
 
 build() {
-  cd $startdir/src/$pkgname-$pkgver
-  ./configure --prefix=/usr --disable-gnome-vfs --enable-fuse-module PKG_CONFIG=/usr/bin/pkg-config
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr --disable-gnome-vfs \
+      --mandir=/usr/share/man || return 1
   make || return 1
-  make DESTDIR=$startdir/pkg install
+  make DESTDIR="${pkgdir}" install || return 1
 }
 
-- 
cgit v0.12


From a8d1b366d0b6f8f8a8876d010a7768e45580be74 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 21:29:05 -0700
Subject: ntp:Bumped/Updated for LinHES 7.

---
 abs/core-testing/ntp/PKGBUILD                 |  97 +++++++++++---
 abs/core-testing/ntp/fix-ipv6.patch           |  10 ++
 abs/core-testing/ntp/ntp-4.2.4-html2man.patch | 183 ++++++++++++++++++++++++++
 abs/core-testing/ntp/ntp-4.2.4_p7-nano.patch  |  20 +++
 abs/core-testing/ntp/ntp-client.conf          |   4 +
 abs/core-testing/ntp/ntp.conf                 |  80 +++++------
 abs/core-testing/ntp/ntpd                     |   3 +-
 7 files changed, 332 insertions(+), 65 deletions(-)
 create mode 100644 abs/core-testing/ntp/fix-ipv6.patch
 create mode 100644 abs/core-testing/ntp/ntp-4.2.4-html2man.patch
 create mode 100644 abs/core-testing/ntp/ntp-4.2.4_p7-nano.patch

diff --git a/abs/core-testing/ntp/PKGBUILD b/abs/core-testing/ntp/PKGBUILD
index 83e77ad..772e0bf 100755
--- a/abs/core-testing/ntp/PKGBUILD
+++ b/abs/core-testing/ntp/PKGBUILD
@@ -1,30 +1,89 @@
+# $Id: PKGBUILD 75563 2010-04-01 20:42:21Z giovanni $
+# Maintainer: dorphell <dorphell@archlinux.org>
+
 pkgname=ntp
 pkgver=4.2.6p2
-pkgrel=1
+pkgrel=3
 pkgdesc="NTP (Network Time Protocol) tries to keep servers in sync"
 arch=(i686 x86_64)
+license=('custom')
 url="http://www.ntp.org/"
-depends=('openssl' 'readline' )
-backup=('etc/ntp.conf' 'conf.d/ntp-client.conf')
-source=(http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-${pkgver}.tar.gz \
-         ntp.conf ntp-client.conf ntpd ntpdate )
+depends=('openssl' 'readline' 'libcap')
+makedepends=('perl-html-parser')
+backup=('etc/ntp.conf' 'etc/conf.d/ntp-client.conf')
+options=('!emptydirs')
+source=(http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-${pkgver}.tar.gz
+        ntp-4.2.4_p7-nano.patch
+	fix-ipv6.patch
+	ntp-4.2.4-html2man.patch
+        ntp.conf
+        ntp-client.conf
+        ntpd
+        ntpdate)
+sha1sums=('a1f21b23c8c80f35801d59e30ba30779f2025a72' '4de6cd3fad1946146107f86d1f161eb835fbb2d3'\
+         '3632f8a00838f48e484bca24de06db443cc14fff' '7f8783e243e23c8853a9f9fb5b36f467aab8dc15'\
+         '3625ed2aa71d9e0dd04634f32e65d83b76cfe780' 'c8e388f2577b4329da5e77f0455083db6dd97fa8'\
+         'd9b09de9d718a864270e9330e20109e182dfbdd9' '6dfc3b6996f591123ee8938fd0fe7c27eb5c7552')
 
 build() {
-  cd $startdir/src/$pkgname-$pkgver
-  ./configure --prefix=/usr 
+  cd "$srcdir/$pkgname-$pkgver" || return 1
+  # fix glibc build issue
+  patch -Np1 -i ../ntp-4.2.4_p7-nano.patch || return 1
+  # fix ipv6 support
+  patch -Np1 -i ../fix-ipv6.patch || return 1
+  # fix man page generation
+  patch -Np1 -i ../ntp-4.2.4-html2man.patch || return 1
+  # configure
+  export LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+  libtoolize --copy  --force || return 1
+  ac_cv_header_dns_sd_h=0 ./configure --prefix=/usr --mandir=/usr/share/man --enable-linux-caps || return 1
+
+  # build and install
   make || return 1
-  make prefix=$startdir/pkg/usr install
-  mkdir -p $startdir/pkg/usr/share/ntp/ $startdir/pkg/usr/man/man1/
-  install -D -m644 conf/* $startdir/pkg/usr/share/ntp/
-  install -D -m755 $startdir/ntpd $startdir/pkg/etc/rc.d/ntpd
-  install -D -m755 $startdir/ntpdate $startdir/pkg/etc/rc.d/ntpdate
-  install -D -m644 $startdir/src/man/* $startdir/pkg/usr/man/man1/
-  install -D -m644 $startdir/ntp-client.conf $startdir/pkg/etc/conf.d/ntp-client.conf
-  install -D -m644 $startdir/ntp.conf $startdir/pkg/etc/ntp.conf
-}
+  make DESTDIR="$pkgdir" install || return 1
+
+  # install conf files
+  mkdir -p "$pkgdir/usr/share/ntp" || return 1
+  install -D -m644 conf/* "$pkgdir/usr/share/ntp/" || return 1
+
+  # install launch scripts 
+  mkdir -p "$pkgdir/etc/rc.d" || return 1
+  install -D -m755 "$srcdir"/{ntpd,ntpdate} "$pkgdir/etc/rc.d/" || return 1
 
+  # install man pages
+  cd html
+  ../scripts/html2man || return 1
+  sed -i 's/^[\t\ ]*$//;/./,/^$/!d' man/man*/*.[58] || return 1
+  install -d "$pkgdir"/usr/share/man/man{5,8}
+  install -m644 man/man5/* "$pkgdir/usr/share/man/man5/" || return 1
+  install -m644 man/man8/* "$pkgdir/usr/share/man/man8/" || return 1
+  mv "$pkgdir/usr/share/man/man8/ntpd.8" "$pkgdir/usr/share/man/man8/ntp-ntpd.8" || return 1
+  cd ..
+
+  # install sample configs
+  install -D -m644 "$srcdir/ntp.conf" "$pkgdir/etc/ntp.conf" || return 1
+  install -D -m644 "$srcdir/ntp-client.conf" \
+  	"$pkgdir/etc/conf.d/ntp-client.conf" || return 1
+
+  # create /var/lib/ntp
+  mkdir -p "$pkgdir/var/lib/ntp" || return 1
+  touch "$pkgdir/var/lib/ntp/.placeholder" || return 1
+
+  install -Dm644 "$srcdir/$pkgname-$pkgver/COPYRIGHT" "$pkgdir/usr/share/licenses/$pkgname/COPYRIGHT"
+}
 md5sums=('cf73cd85f248232c62f8029e6eb05938'
-         '833c9d699765bd60825b5713670be460'
-         '25eb8d2176fe642b488e4b9fa03179ac'
-         'b1a1798b9cd1907d65a7fc794294d6ce'
+         '36c5711228cb0cf48966daa993e06f55'
+         '9dabdbc6b8cd020f2205515df7972c21'
+         '1b04e888717bb31479a6087632981723'
+         '5bd3924f5720b97837969ec4ec4d5e09'
+         'c7f50632b69bd4f32cf052d0b1848463'
+         '46118a8ec2c4f5bbfafd730af21b7c03'
          '140855352baeb89da0c6c1c475c18b57')
+sha1sums=('04b5e3c3755fe9e5bcec5bd5d29255cfef2102c4'
+          '4de6cd3fad1946146107f86d1f161eb835fbb2d3'
+          '3632f8a00838f48e484bca24de06db443cc14fff'
+          '7f8783e243e23c8853a9f9fb5b36f467aab8dc15'
+          '3625ed2aa71d9e0dd04634f32e65d83b76cfe780'
+          'c8e388f2577b4329da5e77f0455083db6dd97fa8'
+          'd9b09de9d718a864270e9330e20109e182dfbdd9'
+          '6dfc3b6996f591123ee8938fd0fe7c27eb5c7552')
diff --git a/abs/core-testing/ntp/fix-ipv6.patch b/abs/core-testing/ntp/fix-ipv6.patch
new file mode 100644
index 0000000..eecd766
--- /dev/null
+++ b/abs/core-testing/ntp/fix-ipv6.patch
@@ -0,0 +1,10 @@
+--- ntp-4.2.4p7-orig/configure.ac	2009-06-18 14:48:12.151346763 +0200
++++ ntp-4.2.4p7/configure.ac	2009-06-18 14:50:07.054692531 +0200
+@@ -4456,6 +4456,7 @@
+ 		[
+ 		    AC_LANG_PROGRAM(
+ 			[
++                            #define _GNU_SOURCE
+ 			    #include <sys/types.h>
+ 			    #include <sys/socket.h>
+ 			    #include <netinet/in.h>
diff --git a/abs/core-testing/ntp/ntp-4.2.4-html2man.patch b/abs/core-testing/ntp/ntp-4.2.4-html2man.patch
new file mode 100644
index 0000000..333d452
--- /dev/null
+++ b/abs/core-testing/ntp/ntp-4.2.4-html2man.patch
@@ -0,0 +1,183 @@
+--- ntp-4.2.4/scripts/html2man.in.html2man	2006-06-06 22:17:10.000000000 +0200
++++ ntp-4.2.4/scripts/html2man.in	2007-01-08 12:47:31.000000000 +0100
+@@ -23,10 +23,10 @@
+ 	     'ntpq' => ['ntpq', 8, 'ntpd(8), ntpdc(8)'],
+ 	     'ntpdate' => ['ntpdate', 8, 'ntpd(8)'],
+ 	     'ntpdc' => ['ntpdc', 8, 'ntpd(8)'],
+-	     'ntptime' => ['ntpdtime', 8, 'ntpd(8), ntpdate(8)'],
++	     'ntptime' => ['ntptime', 8, 'ntpd(8), ntpdate(8)'],
+ 	     'ntptrace' => ['ntptrace', 8, 'ntpd(8)'],
+ 	     'keygen' => ['ntp-keygen', 8, 'ntpd(8), ntp_auth(5)'],
+-	     'confopt' => ['ntp.conf', 5, 'ntpd(8)'],
++	     'confopt' => ['ntp.conf', 5, 'ntpd(8), ntp_auth(5), ntp_mon(5), ntp_acc(5), ntp_clock(5), ntp_misc(5)'],
+ 	     'authopt' => ['ntp_auth', 5, 'ntp.conf(5), ntpd(8)'],
+ 	     'monopt' => ['ntp_mon', 5, 'ntp.conf(5)'],
+ 	     'accopt' => ['ntp_acc', 5, 'ntp.conf(5)'],
+@@ -34,17 +34,8 @@
+ 	     'miscopt' => ['ntp_misc', 5, 'ntp.conf(5)']);
+ 
+ # Disclaimer to go in SEE ALSO section of the man page
+-$seealso_disclaimer = 'These man pages are automatically hacked from the main NTP ' .
+-    'documentation pages, which are maintained in HTML format.  These files are ' .
+-    'included in the NTP source distribution.  If you installed NTP from a binary ' .
+-    'package, or it came pre-installed on your system, chances are the documentation ' .
+-    'was also included in the usual place for your system.  The HTML files are more ' .
+-    'correct and complete than these man pages, which are provided for your reference ' .
+-    'only.';
+-
+-# Disclaimer to go right at the top
+-$top_disclaimer = 'This file was automatically generated from HTML source, and may be ' .
+-    'incorrect.  See the SEE ALSO section at the end of this file for more info';
++$seealso_disclaimer = "Primary source of documentation: /usr/share/doc/ntp-*\n\n" .
++    "This file was automatically generated from HTML source.\n";
+ 
+ mkdir $MANDIR, 0777;
+ mkdir "$MANDIR/man8", 0777;
+@@ -64,7 +55,8 @@
+     $fileinfo = $manfiles{$filename};
+ 
+     $p = HTML::TokeParser->new("$filename.html") || die "Can't open $filename.html: $!";
+-    open(MANOUT, ">$MANDIR/man$fileinfo->[1]/$fileinfo->[0].$fileinfo->[1]")
++    $fileout = "$MANDIR/man$fileinfo->[1]/$fileinfo->[0].$fileinfo->[1]";
++    open(MANOUT, ">$fileout")
+ 	|| die "Can't open: $!";
+ 
+     $p->get_tag("title");
+@@ -73,7 +65,6 @@
+ 
+     # Setup man header
+     print MANOUT ".TH " . $fileinfo->[0] . " " . $fileinfo->[1] .  "\n";
+-    print MANOUT ".UC 4\n";
+     print MANOUT ".SH NAME\n";
+     $pat = $fileinfo->[0];
+     if ($name =~ /$pat/) {
+@@ -81,10 +72,12 @@
+ 	# Add the manpage name, if not in the HTML title already
+ 	print MANOUT "$fileinfo->[0] - ";
+     }
+-    print MANOUT "$name\n\n";
+-
+-    print MANOUT "$top_disclaimer\n";
++    print MANOUT "$name\n.SH \\ \n\n";
+ 
++    @fontstack = ();
++    $deflevel = 0;
++    $pre = 0;
++    $ignore = 0;
+     # Now start scanning.  We basically print everything after translating some tags.
+     # $token->[0] has "T", "S", "E" for Text, Start, End
+     # $token->[1] has the tag name, or text (for "T" case)
+@@ -92,19 +85,37 @@
+     while (my $token = $p->get_token) {
+ 	if($token->[0] eq "T") {
+ 	    my $text = $token->[1];
+-	    if($tag) {
+-		$text =~ s/^[\n ]*//;
+-		$text =~ s/[\n ]*$/ /;
++	    if (!$pre) {
++		if($tag) {
++		    $text =~ s/^[\n\t ]*//;
++		}
++		$text =~ s/^[\n\t ][\n\t ]+$//;
++		$text =~ s/[\n\t ]+/ /g;
++		$text =~ s/&nbsp\;/ /g;
++		$text =~ s/&gt\;/>/g;
++		$text =~ s/&lt\;/</g;
++		$text =~ s/&quot\;/"/g;
++		$text =~ s/&amp\;/&/g;
++		$text =~ s/^\./\\[char46]/;
+ 	    }
+-	    $text =~ s/&nbsp\;/ /g;
+-	    $text =~ s/^\./\\./;
+ 	    print MANOUT "$text";
+ 	    $tag = 0;
+ 	}
+ 	if($token->[0] eq "S") {
+ 	    if($token->[1] eq "h4") {
+ 		my $text = uc($p->get_trimmed_text("/h4"));
+-		print MANOUT ".SH $text\n";
++		# ignore these two sections in ntpd.html
++		if ($filename eq "ntpd" &&
++		    ($text eq "FILES" || $text eq "CONFIGURATION OPTIONS")) {
++			$ignore = 1;
++			close(MANOUT);
++			open(MANOUT, ">/dev/null");
++		} elsif ($ignore) {
++		    $ignore = 0;
++		    close(MANOUT);
++		    open(MANOUT, ">>$fileout");
++		}
++		print MANOUT "\n\n.SH $text\n";
+ 	    }
+ 	    if($token->[1] eq "tt") {
+ 		push @fontstack, "tt";
+@@ -118,22 +129,30 @@
+ 		my $text = $p->get_trimmed_text("/address");
+ 		print MANOUT "\n.SH AUTHOR\n$text\n";
+ 	    }
+-	    if($token->[1] eq "dt") {
+-		$tmp = $deflevel-4;
+-		print MANOUT "\n.RS $tmp\n";
++	    if($token->[1] eq "dt" || $token->[1] eq "br" && $deflevel > 0) {
++		print MANOUT "\n.TP 8\n";
+ 		$tag = 1;
+ 	    }
+ 	    if($token->[1] eq "dd") {
+-		print MANOUT "\n.RS $deflevel\n";
++		print MANOUT "\n";
+ 		$tag = 1;
+ 	    }
+ 	    if($token->[1] eq "dl") {
+-		$deflevel+=4;
++		$deflevel+=1;
++		if ($deflevel > 0) {
++		    print MANOUT "\n.RS ", $deflevel > 1 ? 8 : 0;
++		}
++	    }
++	    if($token->[1] eq "p") {
++		print MANOUT "\n";
++	    }
++	    if($token->[1] eq "pre") {
++		print MANOUT "\n.nf";
++		$pre = 1;
+ 	    }
+ 	}
+ 	elsif($token->[0] eq "E") {
+-	    if($token->[1] eq "dd") {
+-		print MANOUT "\n.RE\n";
++	    if($token->[1] eq "h4") {
+ 		$tag = 1;
+ 	    }
+ 	    if($token->[1] eq "tt") {
+@@ -157,15 +176,27 @@
+ 		print MANOUT "$fontswitch";
+ 	    }
+ 	    if($token->[1] eq "dl") {
+-		$deflevel-=4;
++		if ($deflevel > 0) {
++		    print MANOUT "\n.RE";
++		}
++		print MANOUT "\n";
++		$deflevel-=1;
+ 	    }
+-	    if($token->[1] eq "dt") {
+-		print MANOUT "\n.RE";
++	    if($token->[1] eq "p") {
++		print MANOUT "\n";
+ 		$tag = 1;
+ 	    }
++	    if($token->[1] eq "pre") {
++		print MANOUT "\n.fi";
++		$pre = 0;
++	    }
+ 	}
+     }
+-    print MANOUT ".SH SEE ALSO\n\n";
++    if ($ignore) {
++	close(MANOUT);
++	open(MANOUT, ">>$fileout");
++    }
++    print MANOUT "\n.SH SEE ALSO\n\n";
+     print MANOUT "$fileinfo->[2]\n\n";
+     print MANOUT "$seealso_disclaimer\n";
+     close(MANOUT);
diff --git a/abs/core-testing/ntp/ntp-4.2.4_p7-nano.patch b/abs/core-testing/ntp/ntp-4.2.4_p7-nano.patch
new file mode 100644
index 0000000..b31ea0a
--- /dev/null
+++ b/abs/core-testing/ntp/ntp-4.2.4_p7-nano.patch
@@ -0,0 +1,20 @@
+http://bugs.gentoo.org/270483
+
+ripped from fedora
+
+--- ntp-4.2.4p7/include/ntp_syscall.h
++++ ntp-4.2.4p7/include/ntp_syscall.h
+@@ -14,5 +14,13 @@
+ # include <sys/timex.h>
+ #endif
+ 
++#if defined(ADJ_NANO) && !defined(MOD_NANO)
++#define MOD_NANO ADJ_NANO
++#endif
++
++#if defined(ADJ_TAI) && !defined(MOD_TAI)
++#define MOD_TAI ADJ_TAI
++#endif
++
+ #ifndef NTP_SYSCALLS_LIBC
+ #ifdef NTP_SYSCALLS_STD
diff --git a/abs/core-testing/ntp/ntp-client.conf b/abs/core-testing/ntp/ntp-client.conf
index ace4daf..a0463b7 100755
--- a/abs/core-testing/ntp/ntp-client.conf
+++ b/abs/core-testing/ntp/ntp-client.conf
@@ -1,7 +1,11 @@
 # change this to a server closer to your location
 NTP_CLIENT_SERVER="pool.ntp.org"
+
 # client options
 NTP_CLIENT_OPTION="-b -u"
 
 # timeout for the ntp-client
 NTPCLIENT_TIMEOUT=10
+
+# arguments passed to ntpd when started
+NTPD_ARGS="-g"
diff --git a/abs/core-testing/ntp/ntp.conf b/abs/core-testing/ntp/ntp.conf
index 9411643..93fc919 100755
--- a/abs/core-testing/ntp/ntp.conf
+++ b/abs/core-testing/ntp/ntp.conf
@@ -1,57 +1,47 @@
-# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help
+# NOTES:
+#  - you should only have to update the server line below
+#  - if you start getting lines like 'restrict' and 'fudge'
+#    and you didnt add them, AND you run dhcpcd on your
+#    network interfaces, be sure to add '-Y -N' to the
+#    dhcpcd_ethX variables in /etc/conf.d/net
 
-#driftfile /var/lib/ntp/ntp.drift
-driftfile /etc/ntp.drift
+# Name of the servers ntpd should sync with
+# Please respect the access policy as stated by the responsible person.
+#server		ntp.example.tld		iburst
 
+server pool.ntp.org
 
-# Enable this if you want statistics to be logged.
-#statsdir /var/log/ntpstats/
-
-statistics loopstats peerstats clockstats
-filegen loopstats file loopstats type day enable
-filegen peerstats file peerstats type day enable
-filegen clockstats file clockstats type day enable
-
+##
+# A list of available servers can be found here:
+# http://www.pool.ntp.org/
+# http://www.pool.ntp.org/#use
+# A good way to get servers for your machine is:
+# netselect -s 3 pool.ntp.org
+##
 
-# You do need to talk to an NTP server or two (or three).
-#server ntp.your-provider.example
+# you should not need to modify the following paths
+driftfile	/var/lib/ntp/ntp.drift
 
-# pool.ntp.org maps to about 1000 low-stratum NTP servers.  Your server will
-# pick a different set every time it starts up.  Please consider joining the
-# pool: <http://www.pool.ntp.org/join.html>
-server pool.ntp.org
-server 0.us.pool.ntp.org iburst
-server 1.us.pool.ntp.org iburst
-server 2.us.pool.ntp.org iburst
-server 3.us.pool.ntp.org iburst
+#server ntplocal.example.com prefer 
+#server timeserver.example.org 
 
+# Warning: Using default NTP settings will leave your NTP
+# server accessible to all hosts on the Internet.
 
-# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
-# details.  The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
-# might also be helpful.
-#
-# Note that "restrict" applies to both servers and clients, so a configuration
-# that might be intended to block requests from certain clients could also end
-# up blocking replies from your own upstream servers.
+# If you want to deny all machines (including your own)
+# from accessing the NTP server, uncomment:
+#restrict default ignore
 
-# By default, exchange time with everybody, but don't allow configuration.
-restrict -4 default kod notrap nomodify nopeer noquery
-restrict -6 default kod notrap nomodify nopeer noquery
 
-# Local users may interrogate the ntp server more closely.
+# To deny other machines from changing the
+# configuration but allow localhost:
+restrict default nomodify nopeer
 restrict 127.0.0.1
-restrict ::1
-
-# Clients from this (example!) subnet have unlimited access, but only if
-# cryptographically authenticated.
-#restrict 192.168.123.0 mask 255.255.255.0 notrust
 
 
-# If you want to provide time to your local subnet, change the next line.
-# (Again, the address is an example only.)
-#broadcast 192.168.123.255
-
-# If you want to listen to time broadcasts on your local subnet, de-comment the
-# next lines.  Please do this only if you trust everybody on the network!
-#disable auth
-#broadcastclient
\ No newline at end of file
+# To allow machines within your network to synchronize
+# their clocks with your server, but ensure they are
+# not allowed to configure the server or used as peers
+# to synchronize against, uncomment this line.
+#
+#restrict 192.168.0.0 mask 255.255.255.0 nomodify nopeer notrap
diff --git a/abs/core-testing/ntp/ntpd b/abs/core-testing/ntp/ntpd
index bb39123..56f6248 100755
--- a/abs/core-testing/ntp/ntpd
+++ b/abs/core-testing/ntp/ntpd
@@ -2,13 +2,14 @@
 
 . /etc/rc.conf
 . /etc/rc.d/functions
+. /etc/conf.d/ntp-client.conf
 
 PID=`pidof -o %PPID /usr/bin/ntpd`
 case "$1" in
   start)
     stat_busy "Starting NTP Daemon"
     if [ -z "$PID" ]; then 
-       /usr/bin/ntpd -g &
+       /usr/bin/ntpd $NTPD_ARGS &
     fi
     if [ ! -z "$PID" -o $? -gt 0 ]; then
       stat_fail
-- 
cgit v0.12


From ae3f733cc2892de5f5b747340962c652d8c43fe9 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:50:53 -0700
Subject: nvidia:Bumped/Updated 173xx,96xx and latest for LinHES 7.

---
 abs/core-testing/nvidia-173xx-utils/20-nvidia.conf |   5 +
 abs/core-testing/nvidia-173xx-utils/PKGBUILD       |  22 ++--
 abs/core-testing/nvidia-173xx/PKGBUILD             |  22 ++--
 abs/core-testing/nvidia-173xx/nvidia.install       |   4 +-
 abs/core-testing/nvidia-96xx/PKGBUILD              |   9 +-
 abs/core-testing/nvidia-96xx/nvidia.install        |   4 +-
 abs/core-testing/nvidia-utils/20-nvidia.conf       |   1 -
 abs/core-testing/nvidia-utils/PKGBUILD             | 143 ++++++++++-----------
 abs/core-testing/nvidia-utils/nvidia.install       |  41 +-----
 abs/core-testing/nvidia/PKGBUILD                   |  37 +++---
 abs/core-testing/nvidia/nvidia.install             |  20 +--
 11 files changed, 139 insertions(+), 169 deletions(-)
 create mode 100644 abs/core-testing/nvidia-173xx-utils/20-nvidia.conf

diff --git a/abs/core-testing/nvidia-173xx-utils/20-nvidia.conf b/abs/core-testing/nvidia-173xx-utils/20-nvidia.conf
new file mode 100644
index 0000000..227ac7d
--- /dev/null
+++ b/abs/core-testing/nvidia-173xx-utils/20-nvidia.conf
@@ -0,0 +1,5 @@
+Section "Device"
+        Identifier "Default nvidia Device"
+        Driver "nvidia"
+        Option "NoLogo" "True" 
+EndSection
diff --git a/abs/core-testing/nvidia-173xx-utils/PKGBUILD b/abs/core-testing/nvidia-173xx-utils/PKGBUILD
index 042c1ee..c16e97b 100644
--- a/abs/core-testing/nvidia-173xx-utils/PKGBUILD
+++ b/abs/core-testing/nvidia-173xx-utils/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 69361 2010-02-20 11:24:49Z tpowa $
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
+# $Id: PKGBUILD 28365 2009-03-01 00:11:38Z pierre $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
 
 pkgname=nvidia-173xx-utils
-pkgver=173.14.25
+pkgver=173.14.27
 pkgrel=1
 pkgdesc="NVIDIA drivers utilities and libraries, 173xx branch."
 arch=('i686' 'x86_64')
@@ -16,9 +16,15 @@ provides=('libgl')
 license=('custom')
 install=nvidia.install
 options=(!strip)
+backup=('etc/X11/xorg.conf.d/20-nvidia.conf')
 source=("http://download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run")
+md5sums=('35a6531f71cd6b070f10be8ed11093d4')
+[ "$CARCH" = "x86_64" ] && md5sums=('269425dbc2d9d4ecdc54692281d6d738')
 
-build() {
+source[1]='20-nvidia.conf'
+md5sums[1]='37e417b2c69e46de1346a653e07027fa'
+
+package() {
 	cd $srcdir
 	sh NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run --extract-only
 	cd NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/
@@ -51,12 +57,12 @@ build() {
 	ln -s libglx.so.$pkgver libglx.so || return 1
 
 	install -m644 $srcdir/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/LICENSE $pkgdir/usr/share/licenses/nvidia-173xx/ || return 1
-	ln -s nvidia-173xx $startdir/pkg/usr/share/licenses/nvidia-173xx-utils || return 1
+	ln -s nvidia-173xx $pkgdir/usr/share/licenses/nvidia-173xx-utils || return 1
 
 	install -D -m644 $srcdir/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/share/doc/README.txt $pkgdir/usr/share/doc/nvidia-173xx/README || return 1
 
 	find $pkgdir/usr -type d -exec chmod 755 {} \;
-}
 
-
-md5sums=('397bac51f760505ea57e863c1db9c572')
+	# Install xorg.conf.d file for nvidia autodetection in xorg.conf-less configurations
+	install -D -m644 $srcdir/20-nvidia.conf $pkgdir/etc/X11/xorg.conf.d/20-nvidia.conf
+}
diff --git a/abs/core-testing/nvidia-173xx/PKGBUILD b/abs/core-testing/nvidia-173xx/PKGBUILD
index 845e606..83d4b8d 100644
--- a/abs/core-testing/nvidia-173xx/PKGBUILD
+++ b/abs/core-testing/nvidia-173xx/PKGBUILD
@@ -1,22 +1,23 @@
-# $Id: PKGBUILD 69360 2010-02-20 11:24:15Z tpowa $
+# $Id: PKGBUILD 28363 2009-03-01 00:06:27Z pierre $
 # Maintainer : Thomas Baechler <thomas@archlinux.org>
 
 pkgname=nvidia-173xx
-pkgver=173.14.25
-_kernver='2.6.28-LinHES'
-
+pkgver=173.14.27
+_kernver='2.6.34-LinHES'
 pkgrel=1
 pkgdesc="NVIDIA drivers for kernel26, 173xx branch."
 arch=('i686' 'x86_64')
 [ "$CARCH" = "i686"   ] && ARCH=x86
 [ "$CARCH" = "x86_64" ] && ARCH=x86_64
 url="http://www.nvidia.com/"
-depends=('kernel26>=2.6.28' 'kernel26<2.6.29' 'nvidia-173xx-utils')
-makedepends=('kernel-headers>=2.6.28' 'kernel-headers<2.6.29')
-conflicts=('nvidia' 'nvidia-173xx')
+depends=('kernel26>=2.6.34' 'kernel26<2.6.35' 'nvidia-173xx-utils')
+makedepends=('kernel26-headers>=2.6.34' 'kernel26-headers<2.6.35')
+conflicts=('nvidia-96xx' 'nvidia')
 license=('custom')
 install=nvidia.install
 source=("http://download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run")
+md5sums=('35a6531f71cd6b070f10be8ed11093d4')
+[ "$CARCH" = "x86_64" ] && md5sums=('269425dbc2d9d4ecdc54692281d6d738')
 
 build() {
 	cd $srcdir
@@ -25,10 +26,13 @@ build() {
 	cd usr/src/nv/
 	ln -s Makefile.kbuild Makefile
 	make SYSSRC=/lib/modules/${_kernver}/build module || return 1
+}
 
+package() {
+	cd $srcdir/NVIDIA-Linux-$ARCH-${pkgver}-pkg0/usr/src/nv/
 	mkdir -p $pkgdir/lib/modules/${_kernver}/kernel/drivers/video/
 	install -m644 nvidia.ko $pkgdir/lib/modules/${_kernver}/kernel/drivers/video/
-
+        mkdir -p $pkgdir/etc/modprobe.d
+        echo "blacklist nouveau" >> $pkgdir/etc/modprobe.d/nouveau_blacklist.conf || return 1
 	sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/nvidia.install
 }
-md5sums=('397bac51f760505ea57e863c1db9c572')
diff --git a/abs/core-testing/nvidia-173xx/nvidia.install b/abs/core-testing/nvidia-173xx/nvidia.install
index ab86ea2..a7e09f9 100644
--- a/abs/core-testing/nvidia-173xx/nvidia.install
+++ b/abs/core-testing/nvidia-173xx/nvidia.install
@@ -1,5 +1,5 @@
 post_install() {
-	KERNEL_VERSION='2.6.28-LinHES'
+	KERNEL_VERSION='2.6.34-LinHES'
 	depmod $KERNEL_VERSION
 }
 
@@ -9,6 +9,6 @@ post_upgrade() {
 }
 
 post_remove() {
-	KERNEL_VERSION='2.6.28-LinHES'
+	KERNEL_VERSION='2.6.34-LinHES'
 	depmod $KERNEL_VERSION
 }
diff --git a/abs/core-testing/nvidia-96xx/PKGBUILD b/abs/core-testing/nvidia-96xx/PKGBUILD
index df89e5f..78cd2ca 100644
--- a/abs/core-testing/nvidia-96xx/PKGBUILD
+++ b/abs/core-testing/nvidia-96xx/PKGBUILD
@@ -3,16 +3,17 @@
 
 pkgname=nvidia-96xx
 pkgver=96.43.16
-_kernver='2.6.28-LinHES'
+_kernver='2.6.34-LinHES'
 
-pkgrel=1
+pkgrel=2
 pkgdesc="NVIDIA drivers for kernel26, 96xx branch."
 arch=('i686' 'x86_64')
 [ "$CARCH" = "i686"   ] && ARCH=x86
 [ "$CARCH" = "x86_64" ] && ARCH=x86_64
 url="http://www.nvidia.com/"
-depends=('kernel26>=2.6.28' 'kernel26<2.6.29' 'nvidia-96xx-utils')
-makedepends=('kernel-headers>=2.6.28' 'kernel-headers<2.6.29')
+#depends=('kernel26>=2.6.28' 'kernel26<2.6.29' 'nvidia-96xx-utils')
+depends=('kernel26' 'nvidia-96xx-utils')
+makedepends=('kernel-headers')
 conflicts=('nvidia' 'nvidia-173xx')
 license=('custom')
 install=nvidia.install
diff --git a/abs/core-testing/nvidia-96xx/nvidia.install b/abs/core-testing/nvidia-96xx/nvidia.install
index ab86ea2..a7e09f9 100644
--- a/abs/core-testing/nvidia-96xx/nvidia.install
+++ b/abs/core-testing/nvidia-96xx/nvidia.install
@@ -1,5 +1,5 @@
 post_install() {
-	KERNEL_VERSION='2.6.28-LinHES'
+	KERNEL_VERSION='2.6.34-LinHES'
 	depmod $KERNEL_VERSION
 }
 
@@ -9,6 +9,6 @@ post_upgrade() {
 }
 
 post_remove() {
-	KERNEL_VERSION='2.6.28-LinHES'
+	KERNEL_VERSION='2.6.34-LinHES'
 	depmod $KERNEL_VERSION
 }
diff --git a/abs/core-testing/nvidia-utils/20-nvidia.conf b/abs/core-testing/nvidia-utils/20-nvidia.conf
index 171f613..227ac7d 100644
--- a/abs/core-testing/nvidia-utils/20-nvidia.conf
+++ b/abs/core-testing/nvidia-utils/20-nvidia.conf
@@ -3,4 +3,3 @@ Section "Device"
         Driver "nvidia"
         Option "NoLogo" "True" 
 EndSection
-
diff --git a/abs/core-testing/nvidia-utils/PKGBUILD b/abs/core-testing/nvidia-utils/PKGBUILD
index 88c2709..369253c 100644
--- a/abs/core-testing/nvidia-utils/PKGBUILD
+++ b/abs/core-testing/nvidia-utils/PKGBUILD
@@ -18,93 +18,92 @@ options=('!strip')
 backup=('etc/X11/xorg.conf.d/20-nvidia.conf')
 
 if [ "$CARCH" = "i686" ]; then
-        _arch='x86'
-        _pkg="NVIDIA-Linux-${_arch}-${pkgver}"
-        source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
-        md5sums=('f6af8917a500de28396a438f3f548c88')
+	_arch='x86'
+	_pkg="NVIDIA-Linux-${_arch}-${pkgver}"
+	source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
+	md5sums=('f6af8917a500de28396a438f3f548c88')
 elif [ "$CARCH" = "x86_64" ]; then
-        _arch='x86_64'
-        _pkg="NVIDIA-Linux-${_arch}-${pkgver}-no-compat32"
-        source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
-        md5sums=('7b5924f14a4d2326b4d916efdb7852ff')
+	_arch='x86_64'
+	_pkg="NVIDIA-Linux-${_arch}-${pkgver}-no-compat32"
+	source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
+	md5sums=('7b5924f14a4d2326b4d916efdb7852ff')
 fi
 
 source[1]='20-nvidia.conf'
-md5sums[1]='a3ddac4732c06d5cec7aefeed4d719c3'
+md5sums[1]='37e417b2c69e46de1346a653e07027fa'
 
 build() {
-        cd $srcdir
-        sh ${_pkg}.run --extract-only
+	cd $srcdir
+	sh ${_pkg}.run --extract-only
 }
 
 package() {
-        cd $srcdir/${_pkg}
+	cd $srcdir/${_pkg}
 
-        # X driver
-        install -D -m755 nvidia_drv.so $pkgdir/usr/lib/xorg/modules/drivers/nvidia_drv.so
-        # GLX extension module for X
-        install -D -m755 libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions/libglx.so.$pkgver
-        ln -s libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions/libglx.so       # X doesn't find glx otherwise
-        # OpenGL library
-        install -D -m755 libGL.so.$pkgver $pkgdir/usr/lib/libGL.so.$pkgver
-        # OpenGL core library
-        install -D -m755 libnvidia-glcore.so.$pkgver $pkgdir/usr/lib/libnvidia-glcore.so.$pkgver
-        # XvMC
-        install -D -m644 libXvMCNVIDIA.a $pkgdir/usr/lib/libXvMCNVIDIA.a
-        install -D -m755 libXvMCNVIDIA.so.$pkgver $pkgdir/usr/lib/libXvMCNVIDIA.so.$pkgver
-        # VDPAU
-        install -D -m755 libvdpau_nvidia.so.$pkgver $pkgdir/usr/lib/vdpau/libvdpau_nvidia.so.$pkgver
-        # CUDA
-        install -D -m755 libcuda.so.$pkgver $pkgdir/usr/lib/libcuda.so.$pkgver
-        install -D -m644 cuda.h $pkgdir/usr/include/cuda/cuda.h
-        install -D -m644 cudaGL.h $pkgdir/usr/include/cuda/cudaGL.h
-        install -D -m644 cudaVDPAU.h $pkgdir/usr/include/cuda/cudaVDPAU.h
-        # nvidia-tls libraries
-        install -D -m755 libnvidia-tls.so.$pkgver $pkgdir/usr/lib/libnvidia-tls.so.$pkgver
-        install -D -m755 tls/libnvidia-tls.so.$pkgver $pkgdir/usr/lib/tls/libnvidia-tls.so.$pkgver
-        # OpenCL
-        install -D -m755 libnvidia-compiler.so.$pkgver $pkgdir/usr/lib/libnvidia-compiler.so.$pkgver
-        install -D -m755 libOpenCL.so.1.0.0 $pkgdir/usr/lib/libOpenCL.so.1.0.0
-        install -D -m644 cl.h $pkgdir/usr/include/CL/cl.h
-        install -D -m644 cl_gl.h $pkgdir/usr/include/CL/cl_gl.h
-        install -D -m644 nvidia.icd $pkgdir/etc/OpenCL/vendors/nvidia.icd
-        install -D -m644 cl_platform.h $pkgdir/usr/include/CL/cl_platform.h
+	# X driver
+	install -D -m755 nvidia_drv.so $pkgdir/usr/lib/xorg/modules/drivers/nvidia_drv.so
+	# GLX extension module for X
+	install -D -m755 libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions/libglx.so.$pkgver
+	ln -s libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions/libglx.so	# X doesn't find glx otherwise
+	# OpenGL library
+	install -D -m755 libGL.so.$pkgver $pkgdir/usr/lib/libGL.so.$pkgver
+	# OpenGL core library
+	install -D -m755 libnvidia-glcore.so.$pkgver $pkgdir/usr/lib/libnvidia-glcore.so.$pkgver
+	# XvMC
+	install -D -m644 libXvMCNVIDIA.a $pkgdir/usr/lib/libXvMCNVIDIA.a
+	install -D -m755 libXvMCNVIDIA.so.$pkgver $pkgdir/usr/lib/libXvMCNVIDIA.so.$pkgver
+	# VDPAU
+	install -D -m755 libvdpau_nvidia.so.$pkgver $pkgdir/usr/lib/vdpau/libvdpau_nvidia.so.$pkgver
+	# CUDA
+	install -D -m755 libcuda.so.$pkgver $pkgdir/usr/lib/libcuda.so.$pkgver
+	install -D -m644 cuda.h $pkgdir/usr/include/cuda/cuda.h
+	install -D -m644 cudaGL.h $pkgdir/usr/include/cuda/cudaGL.h
+	install -D -m644 cudaVDPAU.h $pkgdir/usr/include/cuda/cudaVDPAU.h
+	# nvidia-tls libraries
+	install -D -m755 libnvidia-tls.so.$pkgver $pkgdir/usr/lib/libnvidia-tls.so.$pkgver
+	install -D -m755 tls/libnvidia-tls.so.$pkgver $pkgdir/usr/lib/tls/libnvidia-tls.so.$pkgver
+	# OpenCL
+	install -D -m755 libnvidia-compiler.so.$pkgver $pkgdir/usr/lib/libnvidia-compiler.so.$pkgver
+	install -D -m755 libOpenCL.so.1.0.0 $pkgdir/usr/lib/libOpenCL.so.1.0.0
+	install -D -m644 cl.h $pkgdir/usr/include/CL/cl.h
+	install -D -m644 cl_gl.h $pkgdir/usr/include/CL/cl_gl.h
+	install -D -m644 nvidia.icd $pkgdir/etc/OpenCL/vendors/nvidia.icd
+	install -D -m644 cl_platform.h $pkgdir/usr/include/CL/cl_platform.h
 
-        install -D -m755 libnvidia-cfg.so.$pkgver $pkgdir/usr/lib/libnvidia-cfg.so.$pkgver
+	install -D -m755 libnvidia-cfg.so.$pkgver $pkgdir/usr/lib/libnvidia-cfg.so.$pkgver
 
-        # create soname links
-        for _lib in $(find $pkgdir -name '*.so*'); do
-                _soname="$(dirname ${_lib})/$(readelf -d "$_lib" | sed -nr 's/.*Library soname: \[(.*)\].*/\1/p')"
-                if [ ! -e "${_soname}" ]; then
-                        ln -s "$(basename ${_lib})" "${_soname}"
-                        ln -s "$(basename ${_soname})" "${_soname/.[0-9]*/}"
-                fi
-        done
+	# create soname links
+	for _lib in $(find $pkgdir -name '*.so*'); do
+		_soname="$(dirname ${_lib})/$(readelf -d "$_lib" | sed -nr 's/.*Library soname: \[(.*)\].*/\1/p')"
+		if [ ! -e "${_soname}" ]; then
+			ln -s "$(basename ${_lib})" "${_soname}"
+			ln -s "$(basename ${_soname})" "${_soname/.[0-9]*/}"
+		fi
+	done
 
 
-        # nvidia-xconfig
-        install -D -m755 nvidia-xconfig $pkgdir/usr/bin/nvidia-xconfig
-        install -D -m644 nvidia-xconfig.1.gz $pkgdir/usr/share/man/man1/nvidia-xconfig.1.gz
-        # nvidia-settings
-        install -D -m755 nvidia-settings $pkgdir/usr/bin/nvidia-settings
-        install -D -m644 nvidia-settings.1.gz $pkgdir/usr/share/man/man1/nvidia-settings.1.gz
-        install -D -m644 nvidia-settings.desktop $pkgdir/usr/share/applications/nvidia-settings.desktop
-        install -D -m644 nvidia-settings.png $pkgdir/usr/share/pixmaps/nvidia-settings.png
-        sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $pkgdir/usr/share/applications/nvidia-settings.desktop
-        # nvidia-bug-report
-        install -D -m755 nvidia-bug-report.sh $pkgdir/usr/bin/nvidia-bug-report.sh
-        # nvidia-smi
-        install -D -m755 nvidia-smi $pkgdir/usr/bin/nvidia-smi
-        install -D -m644 nvidia-smi.1.gz $pkgdir/usr/share/man/man1/nvidia-smi.1.gz
+	# nvidia-xconfig
+	install -D -m755 nvidia-xconfig $pkgdir/usr/bin/nvidia-xconfig
+	install -D -m644 nvidia-xconfig.1.gz $pkgdir/usr/share/man/man1/nvidia-xconfig.1.gz
+	# nvidia-settings
+	install -D -m755 nvidia-settings $pkgdir/usr/bin/nvidia-settings
+	install -D -m644 nvidia-settings.1.gz $pkgdir/usr/share/man/man1/nvidia-settings.1.gz
+	install -D -m644 nvidia-settings.desktop $pkgdir/usr/share/applications/nvidia-settings.desktop
+	install -D -m644 nvidia-settings.png $pkgdir/usr/share/pixmaps/nvidia-settings.png
+	sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $pkgdir/usr/share/applications/nvidia-settings.desktop
+	# nvidia-bug-report
+	install -D -m755 nvidia-bug-report.sh $pkgdir/usr/bin/nvidia-bug-report.sh
+	# nvidia-smi
+	install -D -m755 nvidia-smi $pkgdir/usr/bin/nvidia-smi
+	install -D -m644 nvidia-smi.1.gz $pkgdir/usr/share/man/man1/nvidia-smi.1.gz
 
 
-        install -D -m644 LICENSE $pkgdir/usr/share/licenses/nvidia/LICENSE
-        ln -s nvidia $pkgdir/usr/share/licenses/nvidia-utils
-        install -D -m644 README.txt $pkgdir/usr/share/doc/nvidia/README
-        install -D -m644 NVIDIA_Changelog $pkgdir/usr/share/doc/nvidia/NVIDIA_Changelog
-        ln -s nvidia $pkgdir/usr/share/doc/nvidia-utils
+	install -D -m644 LICENSE $pkgdir/usr/share/licenses/nvidia/LICENSE
+	ln -s nvidia $pkgdir/usr/share/licenses/nvidia-utils
+	install -D -m644 README.txt $pkgdir/usr/share/doc/nvidia/README
+	install -D -m644 NVIDIA_Changelog $pkgdir/usr/share/doc/nvidia/NVIDIA_Changelog
+	ln -s nvidia $pkgdir/usr/share/doc/nvidia-utils
 
-        # Install xorg.conf.d file for nvidia autodetection in xorg.conf-less configurations
-        install -D -m644 $srcdir/20-nvidia.conf $pkgdir/etc/X11/xorg.conf.d/20-nvidia.conf
+	# Install xorg.conf.d file for nvidia autodetection in xorg.conf-less configurations
+	install -D -m644 $srcdir/20-nvidia.conf $pkgdir/etc/X11/xorg.conf.d/20-nvidia.conf
 }
-
diff --git a/abs/core-testing/nvidia-utils/nvidia.install b/abs/core-testing/nvidia-utils/nvidia.install
index 7d46ed6..297e5b6 100644
--- a/abs/core-testing/nvidia-utils/nvidia.install
+++ b/abs/core-testing/nvidia-utils/nvidia.install
@@ -1,40 +1,5 @@
-# arg 1:  the new package version
 post_install() {
-
-  echo -------------------------------
-  echo By using this package you accept the NVIDIA license, 
-  echo which has been installed in /usr/share/licenses/nvidia/LICENSE
-  echo If you do not accept this license, you must remove the package immediately.
-  echo Dont forget to update your /etc/X11/xorg.conf
-  echo In order to use nvidia-settings, you need to install the 'gtk2' package.
-  echo In order to use nvidia-xconfig, you need to install the 'pkgconfig' package.
-  echo -------------------------------
-  echo nvidia 9746 drops support for Geforce 3 and 4 cards
-  echo If you have such a card, install the nvidia-96xx, nvidia-96xx-utils,
-  echo nvidia-96xx-ck, nvidia-96xx-beyond, nvidia-96xx-suspend2 packages
-  echo For a list of supported cards, see /usr/share/doc/nvidia/supported-cards.txt
-  echo -------------------------------
-
-  #echo ":: Updating symlinks to use built-in libwfb"
-  #ln -sf /usr/lib/xorg/modules/libnvidia-wfb.so.* \
-  #       /usr/lib/xorg/modules/libwfb.so 
+	echo 'By using this package you accept the NVIDIA license,'
+	echo 'which has been installed in /usr/share/licenses/nvidia/LICENSE'
+	echo 'If you do not accept this license, you must remove the package immediately.'
 }
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-post_upgrade() {
-  post_install $1
-  echo ":: Updating symlinks to use xorg-server libwfb"
-  ln -sf /usr/lib/xorg/modules/libwfb.so.* \
-         /usr/lib/xorg/modules/libwfb.so
-}
-
-post_remove() {
-  echo ":: Updating symlinks to use xorg-server libwfb"
-  ln -sf /usr/lib/xorg/modules/libwfb.so.* \
-         /usr/lib/xorg/modules/libwfb.so
-}
-
-op=$1
-shift
-$op $*
diff --git a/abs/core-testing/nvidia/PKGBUILD b/abs/core-testing/nvidia/PKGBUILD
index ca1d20f..40e9bba 100644
--- a/abs/core-testing/nvidia/PKGBUILD
+++ b/abs/core-testing/nvidia/PKGBUILD
@@ -3,41 +3,40 @@
 
 pkgname=nvidia
 pkgver=256.35
-_kernver='2.6.28-LinHES'
+_kernver='2.6.34-LinHES'
 pkgrel=1
 pkgdesc="NVIDIA drivers for kernel26."
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
-depends=('kernel26>=2.6.28' 'kernel26<2.6.29' "nvidia-utils=${pkgver}")
-makedepends=('kernel-headers>=2.6.28' 'kernel-headers<2.6.29')
+depends=('kernel26>=2.6.34' 'kernel26<2.6.35' "nvidia-utils=${pkgver}")
+makedepends=('kernel26-headers>=2.6.34' 'kernel26-headers<2.6.35')
 conflicts=('nvidia-96xx' 'nvidia-173xx')
 license=('custom')
 install=nvidia.install
 
 if [ "$CARCH" = "i686" ]; then
-        _arch='x86'
-        _pkg="NVIDIA-Linux-${_arch}-${pkgver}"
-        source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
-        md5sums=('f6af8917a500de28396a438f3f548c88')
+	_arch='x86'
+	_pkg="NVIDIA-Linux-${_arch}-${pkgver}"
+	source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
+	md5sums=('f6af8917a500de28396a438f3f548c88')
 elif [ "$CARCH" = "x86_64" ]; then
-        _arch='x86_64'
-        _pkg="NVIDIA-Linux-${_arch}-${pkgver}-no-compat32"
-        source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
-        md5sums=('7b5924f14a4d2326b4d916efdb7852ff')
+	_arch='x86_64'
+	_pkg="NVIDIA-Linux-${_arch}-${pkgver}-no-compat32"
+	source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
+	md5sums=('7b5924f14a4d2326b4d916efdb7852ff')
 fi
 
 build() {
-        cd $srcdir
-        sh ${_pkg}.run --extract-only
-        cd ${_pkg}/kernel
-        make SYSSRC=/lib/modules/${_kernver}/build module
+	cd $srcdir
+	sh ${_pkg}.run --extract-only
+	cd ${_pkg}/kernel
+ 	make SYSSRC=/lib/modules/${_kernver}/build module
 }
 
 package() {
-        install -D -m644 $srcdir/${_pkg}/kernel/nvidia.ko \
-                $pkgdir/lib/modules/${_kernver}/kernel/drivers/video/nvidia.ko
+	install -D -m644 $srcdir/${_pkg}/kernel/nvidia.ko \
+		$pkgdir/lib/modules/${_kernver}/kernel/drivers/video/nvidia.ko
         install -d -m755 $pkgdir/etc/modprobe.d
         echo "blacklist nouveau" >> $pkgdir/etc/modprobe.d/nouveau_blacklist.conf
-        sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/nvidia.install
+	sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/nvidia.install
 }
-
diff --git a/abs/core-testing/nvidia/nvidia.install b/abs/core-testing/nvidia/nvidia.install
index 23e04af..a7e09f9 100644
--- a/abs/core-testing/nvidia/nvidia.install
+++ b/abs/core-testing/nvidia/nvidia.install
@@ -1,22 +1,14 @@
-# arg 1:  the new package version
 post_install() {
-  KERNEL_VERSION='2.6.28-LinHES'
-  depmod -v $KERNEL_VERSION  > /dev/null 2>&1		 
+	KERNEL_VERSION='2.6.34-LinHES'
+	depmod $KERNEL_VERSION
 }
 
-# arg 1:  the new package version
-# arg 2:  the old package version
 post_upgrade() {
-  post_install $1
-  rmmod nvidia || echo 'In order to use the new nvidia module, exit Xserver and unload it manually.'
+	post_install
+	rmmod nvidia || echo 'In order to use the new nvidia module, exit Xserver and unload it manually.'
 }
 
-# arg 1:  the old package version
 post_remove() {
-  KERNEL_VERSION='2.6.28-LinHES'
-  depmod -v $KERNEL_VERSION	 > /dev/null 2>&1	 
+	KERNEL_VERSION='2.6.34-LinHES'
+	depmod $KERNEL_VERSION
 }
-
-op=$1
-shift
-$op $*
-- 
cgit v0.12


From c7c3f7e35d814f6a500a90267f4ce1f8bad11aad Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:51:04 -0700
Subject: openssh:Bumped/Updated for LinHES 7.

---
 abs/core-testing/openssh/PKGBUILD | 65 +++++++++++++++++++--------------------
 abs/core-testing/openssh/sshd     |  3 +-
 2 files changed, 33 insertions(+), 35 deletions(-)

diff --git a/abs/core-testing/openssh/PKGBUILD b/abs/core-testing/openssh/PKGBUILD
index fb2ec18..504ed4a 100644
--- a/abs/core-testing/openssh/PKGBUILD
+++ b/abs/core-testing/openssh/PKGBUILD
@@ -1,67 +1,64 @@
-# $Id: PKGBUILD 20515 2008-12-05 12:08:00Z allan $
+# $Id: PKGBUILD 80964 2010-05-24 06:39:23Z allan $
 # Maintainer: Aaron Griffin <aaron@archlinux.org>
 # Contributor: judd <jvinet@zeroflux.org>
 
 pkgname=openssh
 pkgver=5.5p1
 pkgrel=1
-#_gsskexver=20080404
 pkgdesc='A Secure SHell server/client'
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
 license=('custom')
 url="http://www.openssh.org/portable.html"
 backup=('etc/ssh/ssh_config' 'etc/ssh/sshd_config' 'etc/pam.d/sshd')
-depends=('openssl>=0.9.8g' 'zlib' 'pam' 'tcp_wrappers' 'heimdal>=1.2-1')
-source=(ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/$pkgname-$pkgver.tar.gz
-        sshd sshd.confd sshd.pam sshd.patch)
-        #http://www.sxw.org.uk/computing/patches/$pkgname-$pkgver-gsskex-$_gsskexver.patch
+depends=('openssl' 'zlib' 'pam' 'tcp_wrappers' 'heimdal')
+source=("ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/${pkgname}-${pkgver}.tar.gz"
+        'sshd' 'sshd.confd' 'sshd.pam')
+md5sums=('88633408f4cb1eb11ec7e2ec58b519eb'
+         '17b1b1bf0f578a55945ee204bd4462af'
+         'e2cea70ac13af7e63d40eb04415eacd5'
+         '1c7c2ea8734ec7e3ca58d820634dc73a')
 
 build() {
-  cd $startdir/src/$pkgname-$pkgver
-  patch -p1 < ../sshd.patch
-  #patch -up0 < $startdir/src/$pkgname-$pkgver-gsskex-$_gsskexver.patch
+  cd ${srcdir}/${pkgname}-${pkgver}
 
   #NOTE we disable-strip so that makepkg can decide whether to strip or not
   ./configure --prefix=/usr --libexecdir=/usr/lib/ssh \
     --sysconfdir=/etc/ssh --with-tcp-wrappers --with-privsep-user=nobody \
-    --with-md5-passwords --with-pam --with-mantype=man --mandir=/usr/man \
-    --with-xauth=/usr/bin/xauth --with-kerberos5=/usr --disable-strip
+    --with-md5-passwords --with-pam --with-mantype=man --mandir=/usr/share/man \
+    --with-xauth=/usr/bin/xauth --with-kerberos5=/usr --with-ssl-engine \
+    --disable-strip
   make || return 1
-  make DESTDIR=$startdir/pkg install
+}
 
-  #What is this for? Is it needed?
-  mkdir -p $startdir/pkg/var/empty
+package() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  make DESTDIR=${pkgdir} install
 
-  install -D -m755 $startdir/src/sshd $startdir/pkg/etc/rc.d/sshd
+  install -Dm755 ${srcdir}/sshd ${pkgdir}/etc/rc.d/sshd
 
-  install -D -m644 LICENCE $startdir/pkg/usr/share/licenses/$pkgname/LICENCE
-  install -D -m644 $startdir/src/sshd.pam $startdir/pkg/etc/pam.d/sshd
-  install -D -m644 $startdir/src/sshd.confd $startdir/pkg/etc/conf.d/sshd
+  install -Dm644 LICENCE ${pkgdir}/usr/share/licenses/${pkgname}/LICENCE
+  install -Dm644 ${srcdir}/sshd.pam ${pkgdir}/etc/pam.d/sshd
+  install -Dm644 ${srcdir}/sshd.confd ${pkgdir}/etc/conf.d/sshd
 
-  rm $startdir/pkg/usr/man/man1/slogin.1
-  ln -sf ssh.1.gz $startdir/pkg/usr/man/man1/slogin.1.gz
+  rm ${pkgdir}/usr/share/man/man1/slogin.1
+  ln -sf ssh.1.gz ${pkgdir}/usr/share/man/man1/slogin.1.gz
 
   #additional contrib scripts that we like
-  install -D -m755 contrib/findssl.sh $startdir/pkg/usr/bin/findssl.sh
-  install -D -m755 contrib/ssh-copy-id $startdir/pkg/usr/bin/ssh-copy-id
-  install -D -m644 contrib/ssh-copy-id.1  $startdir/pkg/usr/man/man1/ssh-copy-id.1
+  install -Dm755 contrib/findssl.sh ${pkgdir}/usr/bin/findssl.sh
+  install -Dm755 contrib/ssh-copy-id ${pkgdir}/usr/bin/ssh-copy-id
+  install -Dm644 contrib/ssh-copy-id.1  ${pkgdir}/usr/share/man/man1/ssh-copy-id.1
 
-  i# sshd_config
+  # sshd_config
   sed -i \
     -e 's|^#ListenAddress 0.0.0.0|ListenAddress 0.0.0.0|g' \
     -e 's|^#UsePAM no|UsePAM yes|g' \
     -e 's|^#ChallengeResponseAuthentication yes|ChallengeResponseAuthentication no|g' \
-    $startdir/pkg/etc/ssh/sshd_config
-  echo "HashKnownHosts yes" >>  $startdir/pkg/etc/ssh/ssh_config
-  echo "StrictHostKeyChecking ask" >>  $startdir/pkg/etc/ssh/ssh_config
+    ${pkgdir}/etc/ssh/sshd_config
+  echo "HashKnownHosts yes" >>  ${pkgdir}/etc/ssh/ssh_config
+  echo "StrictHostKeyChecking ask" >>  ${pkgdir}/etc/ssh/ssh_config
 
   #ssh_config
   sed -i \
     -e 's|^# Host \*|Host *|g' \
-    $startdir/pkg/etc/ssh/ssh_config
+    ${pkgdir}/etc/ssh/ssh_config
 }
-md5sums=('88633408f4cb1eb11ec7e2ec58b519eb'
-         'd9ee5e0a0d143689b3d6f11454a2a892'
-         'e2cea70ac13af7e63d40eb04415eacd5'
-         '1c7c2ea8734ec7e3ca58d820634dc73a'
-         'ea43aad77b405518aaadad172e0f91eb')
diff --git a/abs/core-testing/openssh/sshd b/abs/core-testing/openssh/sshd
index 875028a..bc0e453 100755
--- a/abs/core-testing/openssh/sshd
+++ b/abs/core-testing/openssh/sshd
@@ -4,13 +4,14 @@
 . /etc/rc.d/functions
 . /etc/conf.d/sshd
 
-PID=`cat /var/run/sshd.pid 2>/dev/null`
+PID="$(cat /var/run/sshd.pid 2>/dev/null)"
 case "$1" in
   start)
     stat_busy "Starting Secure Shell Daemon"
     [ -f /etc/ssh/ssh_host_key ] || { /usr/bin/ssh-keygen -t rsa1 -N "" -f /etc/ssh/ssh_host_key >/dev/null; }
     [ -f /etc/ssh/ssh_host_rsa_key ] || { /usr/bin/ssh-keygen -t rsa -N "" -f /etc/ssh/ssh_host_rsa_key >/dev/null; }
     [ -f /etc/ssh/ssh_host_dsa_key ] || { /usr/bin/ssh-keygen -t dsa -N "" -f /etc/ssh/ssh_host_dsa_key >/dev/null; }
+    [ -d /var/empty ] || mkdir -p /var/empty
     [ -z "$PID" ] && /usr/sbin/sshd $SSHD_ARGS
     if [ $? -gt 0 ]; then
       stat_fail
-- 
cgit v0.12


From 1e3c58d18dbbc867ce3fd44f1f32119fe04d5543 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:51:18 -0700
Subject: openssl:Bumped/Updated for LinHES 7.

---
 abs/core-testing/openssl/PKGBUILD           |   52 +-
 abs/core-testing/openssl/ca-dir.patch       |   33 +
 abs/core-testing/openssl/fix-manpages.patch | 1887 +++++++++++++++++++++++++++
 abs/core-testing/openssl/no-rpath.patch     |   11 +
 4 files changed, 1971 insertions(+), 12 deletions(-)
 create mode 100644 abs/core-testing/openssl/ca-dir.patch
 create mode 100644 abs/core-testing/openssl/fix-manpages.patch
 create mode 100644 abs/core-testing/openssl/no-rpath.patch

diff --git a/abs/core-testing/openssl/PKGBUILD b/abs/core-testing/openssl/PKGBUILD
index 457c646..9853a57 100644
--- a/abs/core-testing/openssl/PKGBUILD
+++ b/abs/core-testing/openssl/PKGBUILD
@@ -1,28 +1,56 @@
-# $Id: PKGBUILD 23270 2009-01-07 15:42:29Z pierre $
+# $Id: PKGBUILD 81714 2010-06-02 11:00:36Z pierre $
 # Maintainer: Pierre Schmitz <pierre@archlinux.de>
 
 pkgname=openssl
-pkgver=0.9.8j
-pkgrel=1
+_ver=1.0.0a
+# use a pacman compatible version scheme
+pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}}
+pkgrel=2
 pkgdesc='The Open Source toolkit for Secure Sockets Layer and Transport Layer Security'
 arch=('i686' 'x86_64')
-url='http://www.openssl.org'
+url='https://www.openssl.org'
 license=('custom:BSD')
-depends=('zlib' 'perl')
+depends=('perl')
 optdepends=('ca-certificates')
 options=('!makeflags')
-source=("http://www.openssl.org/source/${pkgname}-${pkgver}.tar.gz" \
-        'http://www.linuxfromscratch.org/patches/blfs/svn/openssl-0.9.8j-fix_manpages-1.patch')
+backup=('etc/ssl/openssl.cnf')
+source=("https://www.openssl.org/source/${pkgname}-${_ver}.tar.gz"
+        'fix-manpages.patch'
+        'no-rpath.patch'
+        'ca-dir.patch')
+md5sums=('e3873edfffc783624cfbdb65e2249cbd'
+         'f540cd9e0e3047d589d0581fe7a2d0f2'
+         'dc78d3d06baffc16217519242ce92478'
+         '3bf51be3a1bbd262be46dc619f92aa90')
+
+# keep an upgrade path for older installations
+PKGEXT='.pkg.tar.gz'
 
 build() {
-	cd $srcdir/$pkgname-$pkgver
+	cd $srcdir/$pkgname-$_ver
 
-	patch -p1 -i $srcdir/openssl-0.9.8j-fix_manpages-1.patch  || return 1
-	./config --prefix=/usr --openssldir=/etc/ssl shared zlib -Wa,--noexecstack
+	# avoid conflicts with other man pages
+	# see http://www.linuxfromscratch.org/patches/downloads/openssl/
+	patch -p0 -i $srcdir/fix-manpages.patch || return 1
+	# remove rpath: http://bugs.archlinux.org/task/14367
+	patch -p0 -i $srcdir/no-rpath.patch || return 1
+	# set ca dir to /etc/ssl by default
+	patch -p0 -i $srcdir/ca-dir.patch || return 1
+	# mark stack as non-executable: http://bugs.archlinux.org/task/12434
+	./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib \
+		shared zlib enable-md2 -Wa,--noexecstack || return 1
 
 	make || return 1
-	make test  || return 1
-	make INSTALL_PREFIX=$pkgdir MANDIR=/usr/share/man install
 
+	# the test fails due to missing write permissions in /etc/ssl
+	# revert this patch for make test
+	#patch -p0 -R -i $srcdir/ca-dir.patch
+	#make test || return 1
+	#patch -p0 -i $srcdir/ca-dir.patch
+}
+
+package() {
+	cd $srcdir/$pkgname-$_ver
+	make INSTALL_PREFIX=$pkgdir MANDIR=/usr/share/man install
 	install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
 }
diff --git a/abs/core-testing/openssl/ca-dir.patch b/abs/core-testing/openssl/ca-dir.patch
new file mode 100644
index 0000000..41d1386
--- /dev/null
+++ b/abs/core-testing/openssl/ca-dir.patch
@@ -0,0 +1,33 @@
+--- apps/CA.pl.in	2006-04-28 02:30:49.000000000 +0200
++++ apps/CA.pl.in	2010-04-01 00:35:02.600553509 +0200
+@@ -53,7 +53,7 @@
+ $X509="$openssl x509";
+ $PKCS12="$openssl pkcs12";
+ 
+-$CATOP="./demoCA";
++$CATOP="/etc/ssl";
+ $CAKEY="cakey.pem";
+ $CAREQ="careq.pem";
+ $CACERT="cacert.pem";
+--- apps/CA.sh	2009-10-15 19:27:47.000000000 +0200
++++ apps/CA.sh	2010-04-01 00:35:02.600553509 +0200
+@@ -68,7 +68,7 @@
+ X509="$OPENSSL x509"
+ PKCS12="openssl pkcs12"
+ 
+-if [ -z "$CATOP" ] ; then CATOP=./demoCA ; fi
++if [ -z "$CATOP" ] ; then CATOP=/etc/ssl ; fi
+ CAKEY=./cakey.pem
+ CAREQ=./careq.pem
+ CACERT=./cacert.pem
+--- apps/openssl.cnf	2009-04-04 20:09:43.000000000 +0200
++++ apps/openssl.cnf	2010-04-01 00:35:02.607220681 +0200
+@@ -39,7 +39,7 @@
+ ####################################################################
+ [ CA_default ]
+ 
+-dir		= ./demoCA		# Where everything is kept
++dir		= /etc/ssl		# Where everything is kept
+ certs		= $dir/certs		# Where the issued certs are kept
+ crl_dir		= $dir/crl		# Where the issued crl are kept
+ database	= $dir/index.txt	# database index file.
diff --git a/abs/core-testing/openssl/fix-manpages.patch b/abs/core-testing/openssl/fix-manpages.patch
new file mode 100644
index 0000000..e043081
--- /dev/null
+++ b/abs/core-testing/openssl/fix-manpages.patch
@@ -0,0 +1,1887 @@
+--- crypto/rand/md_rand.c	2009-01-03 10:25:32.000000000 +0100
++++ crypto/rand/md_rand.c	2010-04-01 00:45:00.746327192 +0200
+@@ -196,7 +196,7 @@
+ 	int do_not_lock;
+ 
+ 	/*
+-	 * (Based on the rand(3) manpage)
++	 * (Based on the openssl_rand(3) manpage)
+ 	 *
+ 	 * The input is chopped up into units of 20 bytes (or less for
+ 	 * the last block).  Each of these blocks is run through the hash
+@@ -361,7 +361,7 @@
+ 	num_ceil = (1 + (num-1)/(MD_DIGEST_LENGTH/2)) * (MD_DIGEST_LENGTH/2);
+ 
+ 	/*
+-	 * (Based on the rand(3) manpage:)
++	 * (Based on the openssl_rand(3) manpage)
+ 	 *
+ 	 * For each group of 10 bytes (or less), we do the following:
+ 	 *
+--- doc/apps/openssl-passwd.pod	1970-01-01 01:00:00.000000000 +0100
++++ doc/apps/openssl-passwd.pod	2010-04-01 00:45:00.796327220 +0200
+@@ -0,0 +1,82 @@
++=pod
++
++=head1 NAME
++
++openssl-passwd - compute password hashes
++
++=head1 SYNOPSIS
++
++B<openssl passwd>
++[B<-crypt>]
++[B<-1>]
++[B<-apr1>]
++[B<-salt> I<string>]
++[B<-in> I<file>]
++[B<-stdin>]
++[B<-noverify>]
++[B<-quiet>]
++[B<-table>]
++{I<password>}
++
++=head1 DESCRIPTION
++
++The B<passwd> command computes the hash of a password typed at
++run-time or the hash of each password in a list.  The password list is
++taken from the named file for option B<-in file>, from stdin for
++option B<-stdin>, or from the command line, or from the terminal otherwise.
++The Unix standard algorithm B<crypt> and the MD5-based BSD password
++algorithm B<1> and its Apache variant B<apr1> are available.
++
++=head1 OPTIONS
++
++=over 4
++
++=item B<-crypt>
++
++Use the B<crypt> algorithm (default).
++
++=item B<-1>
++
++Use the MD5 based BSD password algorithm B<1>.
++
++=item B<-apr1>
++
++Use the B<apr1> algorithm (Apache variant of the BSD algorithm).
++
++=item B<-salt> I<string>
++
++Use the specified salt.
++When reading a password from the terminal, this implies B<-noverify>.
++
++=item B<-in> I<file>
++
++Read passwords from I<file>.
++
++=item B<-stdin>
++
++Read passwords from B<stdin>.
++
++=item B<-noverify>
++
++Don't verify when reading a password from the terminal.
++
++=item B<-quiet>
++
++Don't output warnings when passwords given at the command line are truncated.
++
++=item B<-table>
++
++In the output list, prepend the cleartext password and a TAB character
++to each password hash.
++
++=back
++
++=head1 EXAMPLES
++
++B<openssl passwd -crypt -salt xx password> prints B<xxj31ZMTZzkVA>.
++
++B<openssl passwd -1 -salt xxxxxxxx password> prints B<$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.>.
++
++B<openssl passwd -apr1 -salt xxxxxxxx password> prints B<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0>.
++
++=cut
+--- doc/apps/openssl.pod	2010-01-21 19:46:28.000000000 +0100
++++ doc/apps/openssl.pod	2010-04-01 00:45:00.796327220 +0200
+@@ -163,7 +163,7 @@
+ 
+ Online Certificate Status Protocol utility.
+ 
+-=item L<B<passwd>|passwd(1)>
++=item L<B<passwd>|openssl-passwd(1)>
+ 
+ Generation of hashed passwords.
+ 
+@@ -401,7 +401,7 @@
+ L<dhparam(1)|dhparam(1)>, L<dsa(1)|dsa(1)>, L<dsaparam(1)|dsaparam(1)>,
+ L<enc(1)|enc(1)>, L<gendsa(1)|gendsa(1)>, L<genpkey(1)|genpkey(1)>,
+ L<genrsa(1)|genrsa(1)>, L<nseq(1)|nseq(1)>, L<openssl(1)|openssl(1)>,
+-L<passwd(1)|passwd(1)>,
++L<openssl-passwd(1)|openssl-passwd(1)>,
+ L<pkcs12(1)|pkcs12(1)>, L<pkcs7(1)|pkcs7(1)>, L<pkcs8(1)|pkcs8(1)>,
+ L<rand(1)|rand(1)>, L<req(1)|req(1)>, L<rsa(1)|rsa(1)>,
+ L<rsautl(1)|rsautl(1)>, L<s_client(1)|s_client(1)>,
+--- doc/apps/passwd.pod	2002-10-04 14:59:00.000000000 +0200
++++ doc/apps/passwd.pod	1970-01-01 01:00:00.000000000 +0100
+@@ -1,82 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-passwd - compute password hashes
+-
+-=head1 SYNOPSIS
+-
+-B<openssl passwd>
+-[B<-crypt>]
+-[B<-1>]
+-[B<-apr1>]
+-[B<-salt> I<string>]
+-[B<-in> I<file>]
+-[B<-stdin>]
+-[B<-noverify>]
+-[B<-quiet>]
+-[B<-table>]
+-{I<password>}
+-
+-=head1 DESCRIPTION
+-
+-The B<passwd> command computes the hash of a password typed at
+-run-time or the hash of each password in a list.  The password list is
+-taken from the named file for option B<-in file>, from stdin for
+-option B<-stdin>, or from the command line, or from the terminal otherwise.
+-The Unix standard algorithm B<crypt> and the MD5-based BSD password
+-algorithm B<1> and its Apache variant B<apr1> are available.
+-
+-=head1 OPTIONS
+-
+-=over 4
+-
+-=item B<-crypt>
+-
+-Use the B<crypt> algorithm (default).
+-
+-=item B<-1>
+-
+-Use the MD5 based BSD password algorithm B<1>.
+-
+-=item B<-apr1>
+-
+-Use the B<apr1> algorithm (Apache variant of the BSD algorithm).
+-
+-=item B<-salt> I<string>
+-
+-Use the specified salt.
+-When reading a password from the terminal, this implies B<-noverify>.
+-
+-=item B<-in> I<file>
+-
+-Read passwords from I<file>.
+-
+-=item B<-stdin>
+-
+-Read passwords from B<stdin>.
+-
+-=item B<-noverify>
+-
+-Don't verify when reading a password from the terminal.
+-
+-=item B<-quiet>
+-
+-Don't output warnings when passwords given at the command line are truncated.
+-
+-=item B<-table>
+-
+-In the output list, prepend the cleartext password and a TAB character
+-to each password hash.
+-
+-=back
+-
+-=head1 EXAMPLES
+-
+-B<openssl passwd -crypt -salt xx password> prints B<xxj31ZMTZzkVA>.
+-
+-B<openssl passwd -1 -salt xxxxxxxx password> prints B<$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.>.
+-
+-B<openssl passwd -apr1 -salt xxxxxxxx password> prints B<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0>.
+-
+-=cut
+--- doc/crypto/BN_generate_prime.pod	2003-01-13 14:18:22.000000000 +0100
++++ doc/crypto/BN_generate_prime.pod	2010-04-01 00:45:00.824035190 +0200
+@@ -90,7 +90,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>
++L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/bn.pod	2008-07-03 21:59:24.000000000 +0200
++++ doc/crypto/bn.pod	2010-04-01 00:45:01.022993777 +0200
+@@ -167,7 +167,7 @@
+ =head1 SEE ALSO
+ 
+ L<bn_internal(3)|bn_internal(3)>,
+-L<dh(3)|dh(3)>, L<err(3)|err(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
++L<dh(3)|dh(3)>, L<openssl_err(3)|openssl_err(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
+ L<BN_new(3)|BN_new(3)>, L<BN_CTX_new(3)|BN_CTX_new(3)>,
+ L<BN_copy(3)|BN_copy(3)>, L<BN_swap(3)|BN_swap(3)>, L<BN_num_bytes(3)|BN_num_bytes(3)>,
+ L<BN_add(3)|BN_add(3)>, L<BN_add_word(3)|BN_add_word(3)>,
+--- doc/crypto/BN_rand.pod	2002-09-25 15:33:26.000000000 +0200
++++ doc/crypto/BN_rand.pod	2010-04-01 00:45:00.824035190 +0200
+@@ -45,7 +45,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<RAND_add(3)|RAND_add(3)>, L<RAND_bytes(3)|RAND_bytes(3)>
+ 
+ =head1 HISTORY
+--- doc/crypto/CONF_modules_free.pod	2006-12-21 22:13:27.000000000 +0100
++++ doc/crypto/CONF_modules_free.pod	2010-04-01 00:45:00.827162198 +0200
+@@ -37,7 +37,7 @@
+ =head1 SEE ALSO
+ 
+ L<conf(5)|conf(5)>, L<OPENSSL_config(3)|OPENSSL_config(3)>,
+-L<CONF_modules_load_file(3), CONF_modules_load_file(3)>
++L<CONF_modules_load_file(3)|CONF_modules_load_file(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/CONF_modules_load_file.pod	2004-03-02 14:31:32.000000000 +0100
++++ doc/crypto/CONF_modules_load_file.pod	2010-04-01 00:45:00.833827289 +0200
+@@ -51,7 +51,7 @@
+ =head1 SEE ALSO
+ 
+ L<conf(5)|conf(5)>, L<OPENSSL_config(3)|OPENSSL_config(3)>,
+-L<CONF_free(3), CONF_free(3)>, L<err(3),err(3)>
++L<CONF_free(3)|CONF_free(3)>, L<openssl_err(3)|openssl_err(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/crypto.pod	2002-10-06 14:59:25.000000000 +0200
++++ doc/crypto/crypto.pod	2010-04-01 00:45:01.029660428 +0200
+@@ -46,7 +46,7 @@
+ 
+ =item AUXILIARY FUNCTIONS
+ 
+-L<err(3)|err(3)>, L<threads(3)|threads(3)>, L<rand(3)|rand(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<openssl_threads(3)|openssl_threads(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<OPENSSL_VERSION_NUMBER(3)|OPENSSL_VERSION_NUMBER(3)>
+ 
+ =item INPUT/OUTPUT, DATA ENCODING
+--- doc/crypto/des.pod	2003-10-01 17:02:45.000000000 +0200
++++ doc/crypto/des.pod	2010-04-01 00:45:01.036327160 +0200
+@@ -115,7 +115,7 @@
+ the key; it is used to speed the encryption process.
+ 
+ DES_random_key() generates a random key.  The PRNG must be seeded
+-prior to using this function (see L<rand(3)|rand(3)>).  If the PRNG
++prior to using this function (see L<openssl_rand(3)|openssl_rand(3)>).  If the PRNG
+ could not generate a secure key, 0 is returned.
+ 
+ Before a DES key can be used, it must be converted into the
+@@ -317,7 +317,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-crypt(3), L<des_modes(7)|des_modes(7)>, L<evp(3)|evp(3)>, L<rand(3)|rand(3)>
++crypt(3), L<des_modes(7)|des_modes(7)>, L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/DH_generate_key.pod	2002-09-25 15:33:27.000000000 +0200
++++ doc/crypto/DH_generate_key.pod	2010-04-01 00:45:00.840494142 +0200
+@@ -40,7 +40,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<DH_size(3)|DH_size(3)>
++L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<DH_size(3)|DH_size(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/DH_generate_parameters.pod	2002-09-25 15:33:27.000000000 +0200
++++ doc/crypto/DH_generate_parameters.pod	2010-04-01 00:45:00.847161913 +0200
+@@ -59,7 +59,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DH_free(3)|DH_free(3)>
+ 
+ =head1 HISTORY
+--- doc/crypto/dh.pod	2002-08-05 18:27:01.000000000 +0200
++++ doc/crypto/dh.pod	2010-04-01 00:45:01.036327160 +0200
+@@ -67,8 +67,8 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<dhparam(1)|dhparam(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<err(3)|err(3)>,
+-L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>, L<engine(3)|engine(3)>,
++L<dhparam(1)|dhparam(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<openssl_err(3)|openssl_err(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>, L<engine(3)|engine(3)>,
+ L<DH_set_method(3)|DH_set_method(3)>, L<DH_new(3)|DH_new(3)>,
+ L<DH_get_ex_new_index(3)|DH_get_ex_new_index(3)>,
+ L<DH_generate_parameters(3)|DH_generate_parameters(3)>,
+--- doc/crypto/DSA_do_sign.pod	2002-09-25 15:33:27.000000000 +0200
++++ doc/crypto/DSA_do_sign.pod	2010-04-01 00:45:00.847161913 +0200
+@@ -36,7 +36,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_SIG_new(3)|DSA_SIG_new(3)>,
+ L<DSA_sign(3)|DSA_sign(3)>
+ 
+--- doc/crypto/DSA_generate_key.pod	2002-09-25 15:33:27.000000000 +0200
++++ doc/crypto/DSA_generate_key.pod	2010-04-01 00:45:00.847161913 +0200
+@@ -24,7 +24,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_generate_parameters(3)|DSA_generate_parameters(3)>
+ 
+ =head1 HISTORY
+--- doc/crypto/DSA_generate_parameters.pod	2002-09-25 15:33:27.000000000 +0200
++++ doc/crypto/DSA_generate_parameters.pod	2010-04-01 00:45:00.847161913 +0200
+@@ -90,7 +90,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_free(3)|DSA_free(3)>
+ 
+ =head1 HISTORY
+--- doc/crypto/dsa.pod	2002-08-05 18:27:01.000000000 +0200
++++ doc/crypto/dsa.pod	2010-04-01 00:45:01.042994012 +0200
+@@ -100,7 +100,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<bn(3)|bn(3)>, L<dh(3)|dh(3)>, L<err(3)|err(3)>, L<rand(3)|rand(3)>,
++L<bn(3)|bn(3)>, L<dh(3)|dh(3)>, L<openssl_err(3)|openssl_err(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<rsa(3)|rsa(3)>, L<sha(3)|sha(3)>, L<engine(3)|engine(3)>,
+ L<DSA_new(3)|DSA_new(3)>,
+ L<DSA_size(3)|DSA_size(3)>,
+--- doc/crypto/DSA_sign.pod	2002-09-25 15:33:27.000000000 +0200
++++ doc/crypto/DSA_sign.pod	2010-04-01 00:45:00.847161913 +0200
+@@ -55,7 +55,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_do_sign(3)|DSA_do_sign(3)>
+ 
+ =head1 HISTORY
+--- doc/crypto/engine.pod	2007-11-19 10:18:03.000000000 +0100
++++ doc/crypto/engine.pod	2010-04-01 00:45:01.049660583 +0200
+@@ -594,6 +594,6 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<rsa(3)|rsa(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>, L<rand(3)|rand(3)>
++L<rsa(3)|rsa(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>, L<openssl_rand(3)|openssl_rand(3)>
+ 
+ =cut
+--- doc/crypto/ERR_clear_error.pod	2000-02-01 02:36:58.000000000 +0100
++++ doc/crypto/ERR_clear_error.pod	2010-04-01 00:45:00.857161750 +0200
+@@ -20,7 +20,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/ERR_error_string.pod	2004-11-14 16:11:37.000000000 +0100
++++ doc/crypto/ERR_error_string.pod	2010-04-01 00:45:00.863828202 +0200
+@@ -60,7 +60,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
+ L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
+ L<SSL_load_error_strings(3)|SSL_load_error_strings(3)>
+ L<ERR_print_errors(3)|ERR_print_errors(3)>
+--- doc/crypto/ERR_get_error.pod	2002-11-29 15:21:54.000000000 +0100
++++ doc/crypto/ERR_get_error.pod	2010-04-01 00:45:00.870494614 +0200
+@@ -61,7 +61,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
+ L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>
+ 
+ =head1 HISTORY
+--- doc/crypto/ERR_GET_LIB.pod	2000-02-01 02:36:58.000000000 +0100
++++ doc/crypto/ERR_GET_LIB.pod	2010-04-01 00:45:00.850495218 +0200
+@@ -41,7 +41,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/ERR_load_crypto_strings.pod	2000-02-24 12:55:08.000000000 +0100
++++ doc/crypto/ERR_load_crypto_strings.pod	2010-04-01 00:45:00.873827919 +0200
+@@ -35,7 +35,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/ERR_load_strings.pod	2000-02-24 12:55:08.000000000 +0100
++++ doc/crypto/ERR_load_strings.pod	2010-04-01 00:45:00.876327759 +0200
+@@ -43,7 +43,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<err(3)|err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/err.pod	2002-07-10 21:35:46.000000000 +0200
++++ doc/crypto/err.pod	1970-01-01 01:00:00.000000000 +0100
+@@ -1,187 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-err - error codes
+-
+-=head1 SYNOPSIS
+-
+- #include <openssl/err.h>
+-
+- unsigned long ERR_get_error(void);
+- unsigned long ERR_peek_error(void);
+- unsigned long ERR_get_error_line(const char **file, int *line);
+- unsigned long ERR_peek_error_line(const char **file, int *line);
+- unsigned long ERR_get_error_line_data(const char **file, int *line,
+-         const char **data, int *flags);
+- unsigned long ERR_peek_error_line_data(const char **file, int *line,
+-         const char **data, int *flags);
+-
+- int ERR_GET_LIB(unsigned long e);
+- int ERR_GET_FUNC(unsigned long e);
+- int ERR_GET_REASON(unsigned long e);
+-
+- void ERR_clear_error(void);
+-
+- char *ERR_error_string(unsigned long e, char *buf);
+- const char *ERR_lib_error_string(unsigned long e);
+- const char *ERR_func_error_string(unsigned long e);
+- const char *ERR_reason_error_string(unsigned long e);
+-
+- void ERR_print_errors(BIO *bp);
+- void ERR_print_errors_fp(FILE *fp);
+-
+- void ERR_load_crypto_strings(void);
+- void ERR_free_strings(void);
+-
+- void ERR_remove_state(unsigned long pid);
+-
+- void ERR_put_error(int lib, int func, int reason, const char *file,
+-         int line);
+- void ERR_add_error_data(int num, ...);
+-
+- void ERR_load_strings(int lib,ERR_STRING_DATA str[]);
+- unsigned long ERR_PACK(int lib, int func, int reason);
+- int ERR_get_next_error_library(void);
+-
+-=head1 DESCRIPTION
+-
+-When a call to the OpenSSL library fails, this is usually signalled
+-by the return value, and an error code is stored in an error queue
+-associated with the current thread. The B<err> library provides
+-functions to obtain these error codes and textual error messages.
+-
+-The L<ERR_get_error(3)|ERR_get_error(3)> manpage describes how to
+-access error codes.
+-
+-Error codes contain information about where the error occurred, and
+-what went wrong. L<ERR_GET_LIB(3)|ERR_GET_LIB(3)> describes how to
+-extract this information. A method to obtain human-readable error
+-messages is described in L<ERR_error_string(3)|ERR_error_string(3)>.
+-
+-L<ERR_clear_error(3)|ERR_clear_error(3)> can be used to clear the
+-error queue.
+-
+-Note that L<ERR_remove_state(3)|ERR_remove_state(3)> should be used to
+-avoid memory leaks when threads are terminated.
+-
+-=head1 ADDING NEW ERROR CODES TO OPENSSL
+-
+-See L<ERR_put_error(3)> if you want to record error codes in the
+-OpenSSL error system from within your application.
+-
+-The remainder of this section is of interest only if you want to add
+-new error codes to OpenSSL or add error codes from external libraries.
+-
+-=head2 Reporting errors
+-
+-Each sub-library has a specific macro XXXerr() that is used to report
+-errors. Its first argument is a function code B<XXX_F_...>, the second
+-argument is a reason code B<XXX_R_...>. Function codes are derived
+-from the function names; reason codes consist of textual error
+-descriptions. For example, the function ssl23_read() reports a
+-"handshake failure" as follows:
+-
+- SSLerr(SSL_F_SSL23_READ, SSL_R_SSL_HANDSHAKE_FAILURE);
+-
+-Function and reason codes should consist of upper case characters,
+-numbers and underscores only. The error file generation script translates
+-function codes into function names by looking in the header files
+-for an appropriate function name, if none is found it just uses
+-the capitalized form such as "SSL23_READ" in the above example.
+-
+-The trailing section of a reason code (after the "_R_") is translated
+-into lower case and underscores changed to spaces.
+-
+-When you are using new function or reason codes, run B<make errors>.
+-The necessary B<#define>s will then automatically be added to the
+-sub-library's header file.
+-
+-Although a library will normally report errors using its own specific
+-XXXerr macro, another library's macro can be used. This is normally
+-only done when a library wants to include ASN1 code which must use
+-the ASN1err() macro.
+-
+-=head2 Adding new libraries
+-
+-When adding a new sub-library to OpenSSL, assign it a library number
+-B<ERR_LIB_XXX>, define a macro XXXerr() (both in B<err.h>), add its
+-name to B<ERR_str_libraries[]> (in B<crypto/err/err.c>), and add
+-C<ERR_load_XXX_strings()> to the ERR_load_crypto_strings() function
+-(in B<crypto/err/err_all.c>). Finally, add an entry
+-
+- L	XXX	xxx.h	xxx_err.c
+-
+-to B<crypto/err/openssl.ec>, and add B<xxx_err.c> to the Makefile.
+-Running B<make errors> will then generate a file B<xxx_err.c>, and
+-add all error codes used in the library to B<xxx.h>.
+-
+-Additionally the library include file must have a certain form.
+-Typically it will initially look like this:
+-
+- #ifndef HEADER_XXX_H
+- #define HEADER_XXX_H
+-
+- #ifdef __cplusplus
+- extern "C" {
+- #endif
+-
+- /* Include files */
+-
+- #include <openssl/bio.h>
+- #include <openssl/x509.h>
+-
+- /* Macros, structures and function prototypes */
+-
+-
+- /* BEGIN ERROR CODES */
+-
+-The B<BEGIN ERROR CODES> sequence is used by the error code
+-generation script as the point to place new error codes, any text
+-after this point will be overwritten when B<make errors> is run.
+-The closing #endif etc will be automatically added by the script.
+-
+-The generated C error code file B<xxx_err.c> will load the header
+-files B<stdio.h>, B<openssl/err.h> and B<openssl/xxx.h> so the
+-header file must load any additional header files containing any
+-definitions it uses.
+-
+-=head1 USING ERROR CODES IN EXTERNAL LIBRARIES
+-
+-It is also possible to use OpenSSL's error code scheme in external
+-libraries. The library needs to load its own codes and call the OpenSSL
+-error code insertion script B<mkerr.pl> explicitly to add codes to
+-the header file and generate the C error code file. This will normally
+-be done if the external library needs to generate new ASN1 structures
+-but it can also be used to add more general purpose error code handling.
+-
+-TBA more details
+-
+-=head1 INTERNALS
+-
+-The error queues are stored in a hash table with one B<ERR_STATE>
+-entry for each pid. ERR_get_state() returns the current thread's
+-B<ERR_STATE>. An B<ERR_STATE> can hold up to B<ERR_NUM_ERRORS> error
+-codes. When more error codes are added, the old ones are overwritten,
+-on the assumption that the most recent errors are most important.
+-
+-Error strings are also stored in hash table. The hash tables can
+-be obtained by calling ERR_get_err_state_table(void) and
+-ERR_get_string_table(void) respectively.
+-
+-=head1 SEE ALSO
+-
+-L<CRYPTO_set_id_callback(3)|CRYPTO_set_id_callback(3)>,
+-L<CRYPTO_set_locking_callback(3)|CRYPTO_set_locking_callback(3)>,
+-L<ERR_get_error(3)|ERR_get_error(3)>,
+-L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>,
+-L<ERR_clear_error(3)|ERR_clear_error(3)>,
+-L<ERR_error_string(3)|ERR_error_string(3)>,
+-L<ERR_print_errors(3)|ERR_print_errors(3)>,
+-L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
+-L<ERR_remove_state(3)|ERR_remove_state(3)>,
+-L<ERR_put_error(3)|ERR_put_error(3)>,
+-L<ERR_load_strings(3)|ERR_load_strings(3)>,
+-L<SSL_get_error(3)|SSL_get_error(3)>
+-
+-=cut
+--- doc/crypto/ERR_print_errors.pod	2000-02-01 02:36:59.000000000 +0100
++++ doc/crypto/ERR_print_errors.pod	2010-04-01 00:45:00.879660945 +0200
+@@ -38,7 +38,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
+ L<ERR_get_error(3)|ERR_get_error(3)>,
+ L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
+ L<SSL_load_error_strings(3)|SSL_load_error_strings(3)>
+--- doc/crypto/ERR_put_error.pod	2000-02-24 12:55:08.000000000 +0100
++++ doc/crypto/ERR_put_error.pod	2010-04-01 00:45:00.886327158 +0200
+@@ -34,7 +34,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<err(3)|err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/ERR_remove_state.pod	2000-05-19 09:54:42.000000000 +0200
++++ doc/crypto/ERR_remove_state.pod	2010-04-01 00:45:00.892994288 +0200
+@@ -25,7 +25,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<err(3)|err(3)>
++L<openssl_err(3)|openssl_err(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/EVP_BytesToKey.pod	2004-11-25 18:47:30.000000000 +0100
++++ doc/crypto/EVP_BytesToKey.pod	2010-04-01 00:45:00.899660540 +0200
+@@ -59,7 +59,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
++L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>
+ 
+ =head1 HISTORY
+--- doc/crypto/EVP_OpenInit.pod	2000-09-23 09:16:14.000000000 +0200
++++ doc/crypto/EVP_OpenInit.pod	2010-04-01 00:45:00.906327633 +0200
+@@ -54,7 +54,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
++L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>,
+ L<EVP_SealInit(3)|EVP_SealInit(3)>
+ 
+--- doc/crypto/EVP_SealInit.pod	2005-03-29 19:50:08.000000000 +0200
++++ doc/crypto/EVP_SealInit.pod	2010-04-01 00:45:00.912995642 +0200
+@@ -74,7 +74,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
++L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>,
+ L<EVP_OpenInit(3)|EVP_OpenInit(3)>
+ 
+--- doc/crypto/EVP_SignInit.pod	2006-07-12 14:31:29.000000000 +0200
++++ doc/crypto/EVP_SignInit.pod	2010-04-01 00:45:00.919661935 +0200
+@@ -89,7 +89,7 @@
+ =head1 SEE ALSO
+ 
+ L<EVP_VerifyInit(3)|EVP_VerifyInit(3)>,
+-L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
++L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<openssl_err(3)|openssl_err(3)>,
+ L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
+ L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>,
+ L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
+--- doc/crypto/EVP_VerifyInit.pod	2006-07-12 14:31:30.000000000 +0200
++++ doc/crypto/EVP_VerifyInit.pod	2010-04-01 00:45:00.926327388 +0200
+@@ -80,7 +80,7 @@
+ 
+ L<evp(3)|evp(3)>,
+ L<EVP_SignInit(3)|EVP_SignInit(3)>,
+-L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
++L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<openssl_err(3)|openssl_err(3)>,
+ L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
+ L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>,
+ L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
+--- doc/crypto/OPENSSL_config.pod	2005-06-03 01:19:56.000000000 +0200
++++ doc/crypto/OPENSSL_config.pod	2010-04-01 00:45:00.932995118 +0200
+@@ -73,7 +73,7 @@
+ =head1 SEE ALSO
+ 
+ L<conf(5)|conf(5)>, L<CONF_load_modules_file(3)|CONF_load_modules_file(3)>,
+-L<CONF_modules_free(3),CONF_modules_free(3)>
++L<CONF_modules_free(3)|CONF_modules_free(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/openssl_err.pod	1970-01-01 01:00:00.000000000 +0100
++++ doc/crypto/openssl_err.pod	2010-04-01 00:45:01.059660101 +0200
+@@ -0,0 +1,187 @@
++=pod
++
++=head1 NAME
++
++openssl_err - error codes
++
++=head1 SYNOPSIS
++
++ #include <openssl/err.h>
++
++ unsigned long ERR_get_error(void);
++ unsigned long ERR_peek_error(void);
++ unsigned long ERR_get_error_line(const char **file, int *line);
++ unsigned long ERR_peek_error_line(const char **file, int *line);
++ unsigned long ERR_get_error_line_data(const char **file, int *line,
++         const char **data, int *flags);
++ unsigned long ERR_peek_error_line_data(const char **file, int *line,
++         const char **data, int *flags);
++
++ int ERR_GET_LIB(unsigned long e);
++ int ERR_GET_FUNC(unsigned long e);
++ int ERR_GET_REASON(unsigned long e);
++
++ void ERR_clear_error(void);
++
++ char *ERR_error_string(unsigned long e, char *buf);
++ const char *ERR_lib_error_string(unsigned long e);
++ const char *ERR_func_error_string(unsigned long e);
++ const char *ERR_reason_error_string(unsigned long e);
++
++ void ERR_print_errors(BIO *bp);
++ void ERR_print_errors_fp(FILE *fp);
++
++ void ERR_load_crypto_strings(void);
++ void ERR_free_strings(void);
++
++ void ERR_remove_state(unsigned long pid);
++
++ void ERR_put_error(int lib, int func, int reason, const char *file,
++         int line);
++ void ERR_add_error_data(int num, ...);
++
++ void ERR_load_strings(int lib,ERR_STRING_DATA str[]);
++ unsigned long ERR_PACK(int lib, int func, int reason);
++ int ERR_get_next_error_library(void);
++
++=head1 DESCRIPTION
++
++When a call to the OpenSSL library fails, this is usually signalled
++by the return value, and an error code is stored in an error queue
++associated with the current thread. The B<err> library provides
++functions to obtain these error codes and textual error messages.
++
++The L<ERR_get_error(3)|ERR_get_error(3)> manpage describes how to
++access error codes.
++
++Error codes contain information about where the error occurred, and
++what went wrong. L<ERR_GET_LIB(3)|ERR_GET_LIB(3)> describes how to
++extract this information. A method to obtain human-readable error
++messages is described in L<ERR_error_string(3)|ERR_error_string(3)>.
++
++L<ERR_clear_error(3)|ERR_clear_error(3)> can be used to clear the
++error queue.
++
++Note that L<ERR_remove_state(3)|ERR_remove_state(3)> should be used to
++avoid memory leaks when threads are terminated.
++
++=head1 ADDING NEW ERROR CODES TO OPENSSL
++
++See L<ERR_put_error(3)> if you want to record error codes in the
++OpenSSL error system from within your application.
++
++The remainder of this section is of interest only if you want to add
++new error codes to OpenSSL or add error codes from external libraries.
++
++=head2 Reporting errors
++
++Each sub-library has a specific macro XXXerr() that is used to report
++errors. Its first argument is a function code B<XXX_F_...>, the second
++argument is a reason code B<XXX_R_...>. Function codes are derived
++from the function names; reason codes consist of textual error
++descriptions. For example, the function ssl23_read() reports a
++"handshake failure" as follows:
++
++ SSLerr(SSL_F_SSL23_READ, SSL_R_SSL_HANDSHAKE_FAILURE);
++
++Function and reason codes should consist of upper case characters,
++numbers and underscores only. The error file generation script translates
++function codes into function names by looking in the header files
++for an appropriate function name, if none is found it just uses
++the capitalized form such as "SSL23_READ" in the above example.
++
++The trailing section of a reason code (after the "_R_") is translated
++into lower case and underscores changed to spaces.
++
++When you are using new function or reason codes, run B<make errors>.
++The necessary B<#define>s will then automatically be added to the
++sub-library's header file.
++
++Although a library will normally report errors using its own specific
++XXXerr macro, another library's macro can be used. This is normally
++only done when a library wants to include ASN1 code which must use
++the ASN1err() macro.
++
++=head2 Adding new libraries
++
++When adding a new sub-library to OpenSSL, assign it a library number
++B<ERR_LIB_XXX>, define a macro XXXerr() (both in B<err.h>), add its
++name to B<ERR_str_libraries[]> (in B<crypto/err/err.c>), and add
++C<ERR_load_XXX_strings()> to the ERR_load_crypto_strings() function
++(in B<crypto/err/err_all.c>). Finally, add an entry
++
++ L	XXX	xxx.h	xxx_err.c
++
++to B<crypto/err/openssl.ec>, and add B<xxx_err.c> to the Makefile.
++Running B<make errors> will then generate a file B<xxx_err.c>, and
++add all error codes used in the library to B<xxx.h>.
++
++Additionally the library include file must have a certain form.
++Typically it will initially look like this:
++
++ #ifndef HEADER_XXX_H
++ #define HEADER_XXX_H
++
++ #ifdef __cplusplus
++ extern "C" {
++ #endif
++
++ /* Include files */
++
++ #include <openssl/bio.h>
++ #include <openssl/x509.h>
++
++ /* Macros, structures and function prototypes */
++
++
++ /* BEGIN ERROR CODES */
++
++The B<BEGIN ERROR CODES> sequence is used by the error code
++generation script as the point to place new error codes, any text
++after this point will be overwritten when B<make errors> is run.
++The closing #endif etc will be automatically added by the script.
++
++The generated C error code file B<xxx_err.c> will load the header
++files B<stdio.h>, B<openssl/err.h> and B<openssl/xxx.h> so the
++header file must load any additional header files containing any
++definitions it uses.
++
++=head1 USING ERROR CODES IN EXTERNAL LIBRARIES
++
++It is also possible to use OpenSSL's error code scheme in external
++libraries. The library needs to load its own codes and call the OpenSSL
++error code insertion script B<mkerr.pl> explicitly to add codes to
++the header file and generate the C error code file. This will normally
++be done if the external library needs to generate new ASN1 structures
++but it can also be used to add more general purpose error code handling.
++
++TBA more details
++
++=head1 INTERNALS
++
++The error queues are stored in a hash table with one B<ERR_STATE>
++entry for each pid. ERR_get_state() returns the current thread's
++B<ERR_STATE>. An B<ERR_STATE> can hold up to B<ERR_NUM_ERRORS> error
++codes. When more error codes are added, the old ones are overwritten,
++on the assumption that the most recent errors are most important.
++
++Error strings are also stored in hash table. The hash tables can
++be obtained by calling ERR_get_err_state_table(void) and
++ERR_get_string_table(void) respectively.
++
++=head1 SEE ALSO
++
++L<CRYPTO_set_id_callback(3)|CRYPTO_set_id_callback(3)>,
++L<CRYPTO_set_locking_callback(3)|CRYPTO_set_locking_callback(3)>,
++L<ERR_get_error(3)|ERR_get_error(3)>,
++L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>,
++L<ERR_clear_error(3)|ERR_clear_error(3)>,
++L<ERR_error_string(3)|ERR_error_string(3)>,
++L<ERR_print_errors(3)|ERR_print_errors(3)>,
++L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
++L<ERR_remove_state(3)|ERR_remove_state(3)>,
++L<ERR_put_error(3)|ERR_put_error(3)>,
++L<ERR_load_strings(3)|ERR_load_strings(3)>,
++L<SSL_get_error(3)|SSL_get_error(3)>
++
++=cut
+--- doc/crypto/openssl_rand.pod	1970-01-01 01:00:00.000000000 +0100
++++ doc/crypto/openssl_rand.pod	2010-04-01 00:45:01.059660101 +0200
+@@ -0,0 +1,175 @@
++=pod
++
++=head1 NAME
++
++openssl_rand - pseudo-random number generator
++
++=head1 SYNOPSIS
++
++ #include <openssl/rand.h>
++
++ int  RAND_set_rand_engine(ENGINE *engine);
++
++ int  RAND_bytes(unsigned char *buf, int num);
++ int  RAND_pseudo_bytes(unsigned char *buf, int num);
++
++ void RAND_seed(const void *buf, int num);
++ void RAND_add(const void *buf, int num, int entropy);
++ int  RAND_status(void);
++
++ int  RAND_load_file(const char *file, long max_bytes);
++ int  RAND_write_file(const char *file);
++ const char *RAND_file_name(char *file, size_t num);
++
++ int  RAND_egd(const char *path);
++
++ void RAND_set_rand_method(const RAND_METHOD *meth);
++ const RAND_METHOD *RAND_get_rand_method(void);
++ RAND_METHOD *RAND_SSLeay(void);
++
++ void RAND_cleanup(void);
++
++ /* For Win32 only */
++ void RAND_screen(void);
++ int RAND_event(UINT, WPARAM, LPARAM);
++
++=head1 DESCRIPTION
++
++Since the introduction of the ENGINE API, the recommended way of controlling
++default implementations is by using the ENGINE API functions. The default
++B<RAND_METHOD>, as set by RAND_set_rand_method() and returned by
++RAND_get_rand_method(), is only used if no ENGINE has been set as the default
++"rand" implementation. Hence, these two functions are no longer the recommened
++way to control defaults.
++
++If an alternative B<RAND_METHOD> implementation is being used (either set
++directly or as provided by an ENGINE module), then it is entirely responsible
++for the generation and management of a cryptographically secure PRNG stream. The
++mechanisms described below relate solely to the software PRNG implementation
++built in to OpenSSL and used by default.
++
++These functions implement a cryptographically secure pseudo-random
++number generator (PRNG). It is used by other library functions for
++example to generate random keys, and applications can use it when they
++need randomness.
++
++A cryptographic PRNG must be seeded with unpredictable data such as
++mouse movements or keys pressed at random by the user. This is
++described in L<RAND_add(3)|RAND_add(3)>. Its state can be saved in a seed file
++(see L<RAND_load_file(3)|RAND_load_file(3)>) to avoid having to go through the
++seeding process whenever the application is started.
++
++L<RAND_bytes(3)|RAND_bytes(3)> describes how to obtain random data from the
++PRNG. 
++
++=head1 INTERNALS
++
++The RAND_SSLeay() method implements a PRNG based on a cryptographic
++hash function.
++
++The following description of its design is based on the SSLeay
++documentation:
++
++First up I will state the things I believe I need for a good RNG.
++
++=over 4
++
++=item 1
++
++A good hashing algorithm to mix things up and to convert the RNG 'state'
++to random numbers.
++
++=item 2
++
++An initial source of random 'state'.
++
++=item 3
++
++The state should be very large.  If the RNG is being used to generate
++4096 bit RSA keys, 2 2048 bit random strings are required (at a minimum).
++If your RNG state only has 128 bits, you are obviously limiting the
++search space to 128 bits, not 2048.  I'm probably getting a little
++carried away on this last point but it does indicate that it may not be
++a bad idea to keep quite a lot of RNG state.  It should be easier to
++break a cipher than guess the RNG seed data.
++
++=item 4
++
++Any RNG seed data should influence all subsequent random numbers
++generated.  This implies that any random seed data entered will have
++an influence on all subsequent random numbers generated.
++
++=item 5
++
++When using data to seed the RNG state, the data used should not be
++extractable from the RNG state.  I believe this should be a
++requirement because one possible source of 'secret' semi random
++data would be a private key or a password.  This data must
++not be disclosed by either subsequent random numbers or a
++'core' dump left by a program crash.
++
++=item 6
++
++Given the same initial 'state', 2 systems should deviate in their RNG state
++(and hence the random numbers generated) over time if at all possible.
++
++=item 7
++
++Given the random number output stream, it should not be possible to determine
++the RNG state or the next random number.
++
++=back
++
++The algorithm is as follows.
++
++There is global state made up of a 1023 byte buffer (the 'state'), a
++working hash value ('md'), and a counter ('count').
++
++Whenever seed data is added, it is inserted into the 'state' as
++follows.
++
++The input is chopped up into units of 20 bytes (or less for
++the last block).  Each of these blocks is run through the hash
++function as follows:  The data passed to the hash function
++is the current 'md', the same number of bytes from the 'state'
++(the location determined by in incremented looping index) as
++the current 'block', the new key data 'block', and 'count'
++(which is incremented after each use).
++The result of this is kept in 'md' and also xored into the
++'state' at the same locations that were used as input into the
++hash function. I
++believe this system addresses points 1 (hash function; currently
++SHA-1), 3 (the 'state'), 4 (via the 'md'), 5 (by the use of a hash
++function and xor).
++
++When bytes are extracted from the RNG, the following process is used.
++For each group of 10 bytes (or less), we do the following:
++
++Input into the hash function the local 'md' (which is initialized from
++the global 'md' before any bytes are generated), the bytes that are to
++be overwritten by the random bytes, and bytes from the 'state'
++(incrementing looping index). From this digest output (which is kept
++in 'md'), the top (up to) 10 bytes are returned to the caller and the
++bottom 10 bytes are xored into the 'state'.
++
++Finally, after we have finished 'num' random bytes for the caller,
++'count' (which is incremented) and the local and global 'md' are fed
++into the hash function and the results are kept in the global 'md'.
++
++I believe the above addressed points 1 (use of SHA-1), 6 (by hashing
++into the 'state' the 'old' data from the caller that is about to be
++overwritten) and 7 (by not using the 10 bytes given to the caller to
++update the 'state', but they are used to update 'md').
++
++So of the points raised, only 2 is not addressed (but see
++L<RAND_add(3)|RAND_add(3)>).
++
++=head1 SEE ALSO
++
++L<BN_rand(3)|BN_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
++L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_egd(3)|RAND_egd(3)>,
++L<RAND_bytes(3)|RAND_bytes(3)>,
++L<RAND_set_rand_method(3)|RAND_set_rand_method(3)>,
++L<RAND_cleanup(3)|RAND_cleanup(3)> 
++
++=cut
+--- doc/crypto/openssl_threads.pod	1970-01-01 01:00:00.000000000 +0100
++++ doc/crypto/openssl_threads.pod	2009-10-01 01:40:52.000000000 +0200
+@@ -0,0 +1,210 @@
++=pod
++
++=head1 NAME
++
++CRYPTO_THREADID_set_callback, CRYPTO_THREADID_get_callback,
++CRYPTO_THREADID_current, CRYPTO_THREADID_cmp, CRYPTO_THREADID_cpy,
++CRYPTO_THREADID_hash, CRYPTO_set_locking_callback, CRYPTO_num_locks,
++CRYPTO_set_dynlock_create_callback, CRYPTO_set_dynlock_lock_callback,
++CRYPTO_set_dynlock_destroy_callback, CRYPTO_get_new_dynlockid,
++CRYPTO_destroy_dynlockid, CRYPTO_lock - OpenSSL thread support
++
++=head1 SYNOPSIS
++
++ #include <openssl/crypto.h>
++
++ /* Don't use this structure directly. */
++ typedef struct crypto_threadid_st
++         {
++         void *ptr;
++         unsigned long val;
++         } CRYPTO_THREADID;
++ /* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */
++ void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val);
++ void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr);
++ int CRYPTO_THREADID_set_callback(void (*threadid_func)(CRYPTO_THREADID *));
++ void (*CRYPTO_THREADID_get_callback(void))(CRYPTO_THREADID *);
++ void CRYPTO_THREADID_current(CRYPTO_THREADID *id);
++ int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a,
++                         const CRYPTO_THREADID *b);
++ void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest,
++                          const CRYPTO_THREADID *src);
++ unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id);
++
++ int CRYPTO_num_locks(void);
++
++ /* struct CRYPTO_dynlock_value needs to be defined by the user */
++ struct CRYPTO_dynlock_value;
++
++ void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *
++	(*dyn_create_function)(char *file, int line));
++ void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function)
++	(int mode, struct CRYPTO_dynlock_value *l,
++	const char *file, int line));
++ void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function)
++	(struct CRYPTO_dynlock_value *l, const char *file, int line));
++
++ int CRYPTO_get_new_dynlockid(void);
++
++ void CRYPTO_destroy_dynlockid(int i);
++
++ void CRYPTO_lock(int mode, int n, const char *file, int line);
++
++ #define CRYPTO_w_lock(type)	\
++	CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
++ #define CRYPTO_w_unlock(type)	\
++	CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
++ #define CRYPTO_r_lock(type)	\
++	CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__)
++ #define CRYPTO_r_unlock(type)	\
++	CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__)
++ #define CRYPTO_add(addr,amount,type)	\
++	CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__)
++
++=head1 DESCRIPTION
++
++OpenSSL can safely be used in multi-threaded applications provided
++that at least two callback functions are set, locking_function and
++threadid_func.
++
++locking_function(int mode, int n, const char *file, int line) is
++needed to perform locking on shared data structures. 
++(Note that OpenSSL uses a number of global data structures that
++will be implicitly shared whenever multiple threads use OpenSSL.)
++Multi-threaded applications will crash at random if it is not set.
++
++locking_function() must be able to handle up to CRYPTO_num_locks()
++different mutex locks. It sets the B<n>-th lock if B<mode> &
++B<CRYPTO_LOCK>, and releases it otherwise.
++
++B<file> and B<line> are the file number of the function setting the
++lock. They can be useful for debugging.
++
++threadid_func(CRYPTO_THREADID *id) is needed to record the currently-executing
++thread's identifier into B<id>. The implementation of this callback should not
++fill in B<id> directly, but should use CRYPTO_THREADID_set_numeric() if thread
++IDs are numeric, or CRYPTO_THREADID_set_pointer() if they are pointer-based.
++If the application does not register such a callback using
++CRYPTO_THREADID_set_callback(), then a default implementation is used - on
++Windows and BeOS this uses the system's default thread identifying APIs, and on
++all other platforms it uses the address of B<errno>. The latter is satisfactory
++for thread-safety if and only if the platform has a thread-local error number
++facility.
++
++Once threadid_func() is registered, or if the built-in default implementation is
++to be used;
++
++=over 4
++
++=item *
++CRYPTO_THREADID_current() records the currently-executing thread ID into the
++given B<id> object.
++
++=item *
++CRYPTO_THREADID_cmp() compares two thread IDs (returning zero for equality, ie.
++the same semantics as memcmp()).
++
++=item *
++CRYPTO_THREADID_cpy() duplicates a thread ID value,
++
++=item *
++CRYPTO_THREADID_hash() returns a numeric value usable as a hash-table key. This
++is usually the exact numeric or pointer-based thread ID used internally, however
++this also handles the unusual case where pointers are larger than 'long'
++variables and the platform's thread IDs are pointer-based - in this case, mixing
++is done to attempt to produce a unique numeric value even though it is not as
++wide as the platform's true thread IDs.
++
++=back
++
++Additionally, OpenSSL supports dynamic locks, and sometimes, some parts
++of OpenSSL need it for better performance.  To enable this, the following
++is required:
++
++=over 4
++
++=item *
++Three additional callback function, dyn_create_function, dyn_lock_function
++and dyn_destroy_function.
++
++=item *
++A structure defined with the data that each lock needs to handle.
++
++=back
++
++struct CRYPTO_dynlock_value has to be defined to contain whatever structure
++is needed to handle locks.
++
++dyn_create_function(const char *file, int line) is needed to create a
++lock.  Multi-threaded applications might crash at random if it is not set.
++
++dyn_lock_function(int mode, CRYPTO_dynlock *l, const char *file, int line)
++is needed to perform locking off dynamic lock numbered n. Multi-threaded
++applications might crash at random if it is not set.
++
++dyn_destroy_function(CRYPTO_dynlock *l, const char *file, int line) is
++needed to destroy the lock l. Multi-threaded applications might crash at
++random if it is not set.
++
++CRYPTO_get_new_dynlockid() is used to create locks.  It will call
++dyn_create_function for the actual creation.
++
++CRYPTO_destroy_dynlockid() is used to destroy locks.  It will call
++dyn_destroy_function for the actual destruction.
++
++CRYPTO_lock() is used to lock and unlock the locks.  mode is a bitfield
++describing what should be done with the lock.  n is the number of the
++lock as returned from CRYPTO_get_new_dynlockid().  mode can be combined
++from the following values.  These values are pairwise exclusive, with
++undefined behaviour if misused (for example, CRYPTO_READ and CRYPTO_WRITE
++should not be used together):
++
++	CRYPTO_LOCK	0x01
++	CRYPTO_UNLOCK	0x02
++	CRYPTO_READ	0x04
++	CRYPTO_WRITE	0x08
++
++=head1 RETURN VALUES
++
++CRYPTO_num_locks() returns the required number of locks.
++
++CRYPTO_get_new_dynlockid() returns the index to the newly created lock.
++
++The other functions return no values.
++
++=head1 NOTES
++
++You can find out if OpenSSL was configured with thread support:
++
++ #define OPENSSL_THREAD_DEFINES
++ #include <openssl/opensslconf.h>
++ #if defined(OPENSSL_THREADS)
++   // thread support enabled
++ #else
++   // no thread support
++ #endif
++
++Also, dynamic locks are currently not used internally by OpenSSL, but
++may do so in the future.
++
++=head1 EXAMPLES
++
++B<crypto/threads/mttest.c> shows examples of the callback functions on
++Solaris, Irix and Win32.
++
++=head1 HISTORY
++
++CRYPTO_set_locking_callback() is
++available in all versions of SSLeay and OpenSSL.
++CRYPTO_num_locks() was added in OpenSSL 0.9.4.
++All functions dealing with dynamic locks were added in OpenSSL 0.9.5b-dev.
++B<CRYPTO_THREADID> and associated functions were introduced in OpenSSL 1.0.0
++to replace (actually, deprecate) the previous CRYPTO_set_id_callback(),
++CRYPTO_get_id_callback(), and CRYPTO_thread_id() functions which assumed
++thread IDs to always be represented by 'unsigned long'.
++
++=head1 SEE ALSO
++
++L<crypto(3)|crypto(3)>
++
++=cut
+--- doc/crypto/RAND_add.pod	2000-03-22 16:30:03.000000000 +0100
++++ doc/crypto/RAND_add.pod	2010-04-01 00:45:00.939660251 +0200
+@@ -65,7 +65,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<rand(3)|rand(3)>, L<RAND_egd(3)|RAND_egd(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<RAND_egd(3)|RAND_egd(3)>,
+ L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
+ 
+ =head1 HISTORY
+--- doc/crypto/RAND_bytes.pod	2007-09-24 13:01:18.000000000 +0200
++++ doc/crypto/RAND_bytes.pod	2010-04-01 00:45:00.946326823 +0200
+@@ -38,7 +38,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<rand(3)|rand(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
+ L<RAND_add(3)|RAND_add(3)>
+ 
+ =head1 HISTORY
+--- doc/crypto/RAND_cleanup.pod	2000-01-27 02:25:06.000000000 +0100
++++ doc/crypto/RAND_cleanup.pod	2010-04-01 00:45:00.952993593 +0200
+@@ -20,7 +20,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<rand(3)|rand(3)>
++L<openssl_rand(3)|openssl_rand(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/RAND_egd.pod	2008-11-10 12:26:44.000000000 +0100
++++ doc/crypto/RAND_egd.pod	2010-04-01 00:45:00.959660646 +0200
+@@ -72,7 +72,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<rand(3)|rand(3)>, L<RAND_add(3)|RAND_add(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
+ L<RAND_cleanup(3)|RAND_cleanup(3)>
+ 
+ =head1 HISTORY
+--- doc/crypto/RAND_load_file.pod	2001-03-21 16:25:56.000000000 +0100
++++ doc/crypto/RAND_load_file.pod	2010-04-01 00:45:00.976327494 +0200
+@@ -43,7 +43,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<rand(3)|rand(3)>, L<RAND_add(3)|RAND_add(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
++L<openssl_rand(3)|openssl_rand(3)>, L<RAND_add(3)|RAND_add(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/rand.pod	2002-08-05 18:27:01.000000000 +0200
++++ doc/crypto/rand.pod	1970-01-01 01:00:00.000000000 +0100
+@@ -1,175 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-rand - pseudo-random number generator
+-
+-=head1 SYNOPSIS
+-
+- #include <openssl/rand.h>
+-
+- int  RAND_set_rand_engine(ENGINE *engine);
+-
+- int  RAND_bytes(unsigned char *buf, int num);
+- int  RAND_pseudo_bytes(unsigned char *buf, int num);
+-
+- void RAND_seed(const void *buf, int num);
+- void RAND_add(const void *buf, int num, int entropy);
+- int  RAND_status(void);
+-
+- int  RAND_load_file(const char *file, long max_bytes);
+- int  RAND_write_file(const char *file);
+- const char *RAND_file_name(char *file, size_t num);
+-
+- int  RAND_egd(const char *path);
+-
+- void RAND_set_rand_method(const RAND_METHOD *meth);
+- const RAND_METHOD *RAND_get_rand_method(void);
+- RAND_METHOD *RAND_SSLeay(void);
+-
+- void RAND_cleanup(void);
+-
+- /* For Win32 only */
+- void RAND_screen(void);
+- int RAND_event(UINT, WPARAM, LPARAM);
+-
+-=head1 DESCRIPTION
+-
+-Since the introduction of the ENGINE API, the recommended way of controlling
+-default implementations is by using the ENGINE API functions. The default
+-B<RAND_METHOD>, as set by RAND_set_rand_method() and returned by
+-RAND_get_rand_method(), is only used if no ENGINE has been set as the default
+-"rand" implementation. Hence, these two functions are no longer the recommened
+-way to control defaults.
+-
+-If an alternative B<RAND_METHOD> implementation is being used (either set
+-directly or as provided by an ENGINE module), then it is entirely responsible
+-for the generation and management of a cryptographically secure PRNG stream. The
+-mechanisms described below relate solely to the software PRNG implementation
+-built in to OpenSSL and used by default.
+-
+-These functions implement a cryptographically secure pseudo-random
+-number generator (PRNG). It is used by other library functions for
+-example to generate random keys, and applications can use it when they
+-need randomness.
+-
+-A cryptographic PRNG must be seeded with unpredictable data such as
+-mouse movements or keys pressed at random by the user. This is
+-described in L<RAND_add(3)|RAND_add(3)>. Its state can be saved in a seed file
+-(see L<RAND_load_file(3)|RAND_load_file(3)>) to avoid having to go through the
+-seeding process whenever the application is started.
+-
+-L<RAND_bytes(3)|RAND_bytes(3)> describes how to obtain random data from the
+-PRNG. 
+-
+-=head1 INTERNALS
+-
+-The RAND_SSLeay() method implements a PRNG based on a cryptographic
+-hash function.
+-
+-The following description of its design is based on the SSLeay
+-documentation:
+-
+-First up I will state the things I believe I need for a good RNG.
+-
+-=over 4
+-
+-=item 1
+-
+-A good hashing algorithm to mix things up and to convert the RNG 'state'
+-to random numbers.
+-
+-=item 2
+-
+-An initial source of random 'state'.
+-
+-=item 3
+-
+-The state should be very large.  If the RNG is being used to generate
+-4096 bit RSA keys, 2 2048 bit random strings are required (at a minimum).
+-If your RNG state only has 128 bits, you are obviously limiting the
+-search space to 128 bits, not 2048.  I'm probably getting a little
+-carried away on this last point but it does indicate that it may not be
+-a bad idea to keep quite a lot of RNG state.  It should be easier to
+-break a cipher than guess the RNG seed data.
+-
+-=item 4
+-
+-Any RNG seed data should influence all subsequent random numbers
+-generated.  This implies that any random seed data entered will have
+-an influence on all subsequent random numbers generated.
+-
+-=item 5
+-
+-When using data to seed the RNG state, the data used should not be
+-extractable from the RNG state.  I believe this should be a
+-requirement because one possible source of 'secret' semi random
+-data would be a private key or a password.  This data must
+-not be disclosed by either subsequent random numbers or a
+-'core' dump left by a program crash.
+-
+-=item 6
+-
+-Given the same initial 'state', 2 systems should deviate in their RNG state
+-(and hence the random numbers generated) over time if at all possible.
+-
+-=item 7
+-
+-Given the random number output stream, it should not be possible to determine
+-the RNG state or the next random number.
+-
+-=back
+-
+-The algorithm is as follows.
+-
+-There is global state made up of a 1023 byte buffer (the 'state'), a
+-working hash value ('md'), and a counter ('count').
+-
+-Whenever seed data is added, it is inserted into the 'state' as
+-follows.
+-
+-The input is chopped up into units of 20 bytes (or less for
+-the last block).  Each of these blocks is run through the hash
+-function as follows:  The data passed to the hash function
+-is the current 'md', the same number of bytes from the 'state'
+-(the location determined by in incremented looping index) as
+-the current 'block', the new key data 'block', and 'count'
+-(which is incremented after each use).
+-The result of this is kept in 'md' and also xored into the
+-'state' at the same locations that were used as input into the
+-hash function. I
+-believe this system addresses points 1 (hash function; currently
+-SHA-1), 3 (the 'state'), 4 (via the 'md'), 5 (by the use of a hash
+-function and xor).
+-
+-When bytes are extracted from the RNG, the following process is used.
+-For each group of 10 bytes (or less), we do the following:
+-
+-Input into the hash function the local 'md' (which is initialized from
+-the global 'md' before any bytes are generated), the bytes that are to
+-be overwritten by the random bytes, and bytes from the 'state'
+-(incrementing looping index). From this digest output (which is kept
+-in 'md'), the top (up to) 10 bytes are returned to the caller and the
+-bottom 10 bytes are xored into the 'state'.
+-
+-Finally, after we have finished 'num' random bytes for the caller,
+-'count' (which is incremented) and the local and global 'md' are fed
+-into the hash function and the results are kept in the global 'md'.
+-
+-I believe the above addressed points 1 (use of SHA-1), 6 (by hashing
+-into the 'state' the 'old' data from the caller that is about to be
+-overwritten) and 7 (by not using the 10 bytes given to the caller to
+-update the 'state', but they are used to update 'md').
+-
+-So of the points raised, only 2 is not addressed (but see
+-L<RAND_add(3)|RAND_add(3)>).
+-
+-=head1 SEE ALSO
+-
+-L<BN_rand(3)|BN_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
+-L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_egd(3)|RAND_egd(3)>,
+-L<RAND_bytes(3)|RAND_bytes(3)>,
+-L<RAND_set_rand_method(3)|RAND_set_rand_method(3)>,
+-L<RAND_cleanup(3)|RAND_cleanup(3)> 
+-
+-=cut
+--- doc/crypto/RAND_set_rand_method.pod	2007-11-19 10:18:03.000000000 +0100
++++ doc/crypto/RAND_set_rand_method.pod	2010-04-01 00:45:00.982994946 +0200
+@@ -67,7 +67,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<rand(3)|rand(3)>, L<engine(3)|engine(3)>
++L<openssl_rand(3)|openssl_rand(3)>, L<engine(3)|engine(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/RSA_blinding_on.pod	2000-02-24 12:55:10.000000000 +0100
++++ doc/crypto/RSA_blinding_on.pod	2010-04-01 00:45:00.989661318 +0200
+@@ -34,7 +34,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<rsa(3)|rsa(3)>, L<rand(3)|rand(3)>
++L<rsa(3)|rsa(3)>, L<openssl_rand(3)|openssl_rand(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/crypto/RSA_generate_key.pod	2002-09-25 15:33:27.000000000 +0200
++++ doc/crypto/RSA_generate_key.pod	2010-04-01 00:45:00.996327969 +0200
+@@ -59,7 +59,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
++L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
+ L<RSA_free(3)|RSA_free(3)>
+ 
+ =head1 HISTORY
+--- doc/crypto/rsa.pod	2002-08-04 23:08:36.000000000 +0200
++++ doc/crypto/rsa.pod	2010-04-01 00:45:01.062995006 +0200
+@@ -108,7 +108,7 @@
+ =head1 SEE ALSO
+ 
+ L<rsa(1)|rsa(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>,
+-L<rand(3)|rand(3)>, L<engine(3)|engine(3)>, L<RSA_new(3)|RSA_new(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<engine(3)|engine(3)>, L<RSA_new(3)|RSA_new(3)>,
+ L<RSA_public_encrypt(3)|RSA_public_encrypt(3)>,
+ L<RSA_sign(3)|RSA_sign(3)>, L<RSA_size(3)|RSA_size(3)>,
+ L<RSA_generate_key(3)|RSA_generate_key(3)>,
+--- doc/crypto/RSA_public_encrypt.pod	2004-03-23 22:01:34.000000000 +0100
++++ doc/crypto/RSA_public_encrypt.pod	2010-04-01 00:45:01.002994781 +0200
+@@ -73,7 +73,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
++L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
+ L<RSA_size(3)|RSA_size(3)>
+ 
+ =head1 HISTORY
+--- doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod	2002-09-25 15:33:28.000000000 +0200
++++ doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod	2010-04-01 00:45:01.009660553 +0200
+@@ -48,7 +48,7 @@
+ =head1 SEE ALSO
+ 
+ L<ERR_get_error(3)|ERR_get_error(3)>, L<objects(3)|objects(3)>,
+-L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>, L<RSA_sign(3)|RSA_sign(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>, L<RSA_sign(3)|RSA_sign(3)>,
+ L<RSA_verify(3)|RSA_verify(3)>
+ 
+ =head1 HISTORY
+--- doc/crypto/threads.pod	2009-10-01 01:40:52.000000000 +0200
++++ doc/crypto/threads.pod	1970-01-01 01:00:00.000000000 +0100
+@@ -1,210 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-CRYPTO_THREADID_set_callback, CRYPTO_THREADID_get_callback,
+-CRYPTO_THREADID_current, CRYPTO_THREADID_cmp, CRYPTO_THREADID_cpy,
+-CRYPTO_THREADID_hash, CRYPTO_set_locking_callback, CRYPTO_num_locks,
+-CRYPTO_set_dynlock_create_callback, CRYPTO_set_dynlock_lock_callback,
+-CRYPTO_set_dynlock_destroy_callback, CRYPTO_get_new_dynlockid,
+-CRYPTO_destroy_dynlockid, CRYPTO_lock - OpenSSL thread support
+-
+-=head1 SYNOPSIS
+-
+- #include <openssl/crypto.h>
+-
+- /* Don't use this structure directly. */
+- typedef struct crypto_threadid_st
+-         {
+-         void *ptr;
+-         unsigned long val;
+-         } CRYPTO_THREADID;
+- /* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */
+- void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val);
+- void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr);
+- int CRYPTO_THREADID_set_callback(void (*threadid_func)(CRYPTO_THREADID *));
+- void (*CRYPTO_THREADID_get_callback(void))(CRYPTO_THREADID *);
+- void CRYPTO_THREADID_current(CRYPTO_THREADID *id);
+- int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a,
+-                         const CRYPTO_THREADID *b);
+- void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest,
+-                          const CRYPTO_THREADID *src);
+- unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id);
+-
+- int CRYPTO_num_locks(void);
+-
+- /* struct CRYPTO_dynlock_value needs to be defined by the user */
+- struct CRYPTO_dynlock_value;
+-
+- void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *
+-	(*dyn_create_function)(char *file, int line));
+- void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function)
+-	(int mode, struct CRYPTO_dynlock_value *l,
+-	const char *file, int line));
+- void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function)
+-	(struct CRYPTO_dynlock_value *l, const char *file, int line));
+-
+- int CRYPTO_get_new_dynlockid(void);
+-
+- void CRYPTO_destroy_dynlockid(int i);
+-
+- void CRYPTO_lock(int mode, int n, const char *file, int line);
+-
+- #define CRYPTO_w_lock(type)	\
+-	CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
+- #define CRYPTO_w_unlock(type)	\
+-	CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
+- #define CRYPTO_r_lock(type)	\
+-	CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__)
+- #define CRYPTO_r_unlock(type)	\
+-	CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__)
+- #define CRYPTO_add(addr,amount,type)	\
+-	CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__)
+-
+-=head1 DESCRIPTION
+-
+-OpenSSL can safely be used in multi-threaded applications provided
+-that at least two callback functions are set, locking_function and
+-threadid_func.
+-
+-locking_function(int mode, int n, const char *file, int line) is
+-needed to perform locking on shared data structures. 
+-(Note that OpenSSL uses a number of global data structures that
+-will be implicitly shared whenever multiple threads use OpenSSL.)
+-Multi-threaded applications will crash at random if it is not set.
+-
+-locking_function() must be able to handle up to CRYPTO_num_locks()
+-different mutex locks. It sets the B<n>-th lock if B<mode> &
+-B<CRYPTO_LOCK>, and releases it otherwise.
+-
+-B<file> and B<line> are the file number of the function setting the
+-lock. They can be useful for debugging.
+-
+-threadid_func(CRYPTO_THREADID *id) is needed to record the currently-executing
+-thread's identifier into B<id>. The implementation of this callback should not
+-fill in B<id> directly, but should use CRYPTO_THREADID_set_numeric() if thread
+-IDs are numeric, or CRYPTO_THREADID_set_pointer() if they are pointer-based.
+-If the application does not register such a callback using
+-CRYPTO_THREADID_set_callback(), then a default implementation is used - on
+-Windows and BeOS this uses the system's default thread identifying APIs, and on
+-all other platforms it uses the address of B<errno>. The latter is satisfactory
+-for thread-safety if and only if the platform has a thread-local error number
+-facility.
+-
+-Once threadid_func() is registered, or if the built-in default implementation is
+-to be used;
+-
+-=over 4
+-
+-=item *
+-CRYPTO_THREADID_current() records the currently-executing thread ID into the
+-given B<id> object.
+-
+-=item *
+-CRYPTO_THREADID_cmp() compares two thread IDs (returning zero for equality, ie.
+-the same semantics as memcmp()).
+-
+-=item *
+-CRYPTO_THREADID_cpy() duplicates a thread ID value,
+-
+-=item *
+-CRYPTO_THREADID_hash() returns a numeric value usable as a hash-table key. This
+-is usually the exact numeric or pointer-based thread ID used internally, however
+-this also handles the unusual case where pointers are larger than 'long'
+-variables and the platform's thread IDs are pointer-based - in this case, mixing
+-is done to attempt to produce a unique numeric value even though it is not as
+-wide as the platform's true thread IDs.
+-
+-=back
+-
+-Additionally, OpenSSL supports dynamic locks, and sometimes, some parts
+-of OpenSSL need it for better performance.  To enable this, the following
+-is required:
+-
+-=over 4
+-
+-=item *
+-Three additional callback function, dyn_create_function, dyn_lock_function
+-and dyn_destroy_function.
+-
+-=item *
+-A structure defined with the data that each lock needs to handle.
+-
+-=back
+-
+-struct CRYPTO_dynlock_value has to be defined to contain whatever structure
+-is needed to handle locks.
+-
+-dyn_create_function(const char *file, int line) is needed to create a
+-lock.  Multi-threaded applications might crash at random if it is not set.
+-
+-dyn_lock_function(int mode, CRYPTO_dynlock *l, const char *file, int line)
+-is needed to perform locking off dynamic lock numbered n. Multi-threaded
+-applications might crash at random if it is not set.
+-
+-dyn_destroy_function(CRYPTO_dynlock *l, const char *file, int line) is
+-needed to destroy the lock l. Multi-threaded applications might crash at
+-random if it is not set.
+-
+-CRYPTO_get_new_dynlockid() is used to create locks.  It will call
+-dyn_create_function for the actual creation.
+-
+-CRYPTO_destroy_dynlockid() is used to destroy locks.  It will call
+-dyn_destroy_function for the actual destruction.
+-
+-CRYPTO_lock() is used to lock and unlock the locks.  mode is a bitfield
+-describing what should be done with the lock.  n is the number of the
+-lock as returned from CRYPTO_get_new_dynlockid().  mode can be combined
+-from the following values.  These values are pairwise exclusive, with
+-undefined behaviour if misused (for example, CRYPTO_READ and CRYPTO_WRITE
+-should not be used together):
+-
+-	CRYPTO_LOCK	0x01
+-	CRYPTO_UNLOCK	0x02
+-	CRYPTO_READ	0x04
+-	CRYPTO_WRITE	0x08
+-
+-=head1 RETURN VALUES
+-
+-CRYPTO_num_locks() returns the required number of locks.
+-
+-CRYPTO_get_new_dynlockid() returns the index to the newly created lock.
+-
+-The other functions return no values.
+-
+-=head1 NOTES
+-
+-You can find out if OpenSSL was configured with thread support:
+-
+- #define OPENSSL_THREAD_DEFINES
+- #include <openssl/opensslconf.h>
+- #if defined(OPENSSL_THREADS)
+-   // thread support enabled
+- #else
+-   // no thread support
+- #endif
+-
+-Also, dynamic locks are currently not used internally by OpenSSL, but
+-may do so in the future.
+-
+-=head1 EXAMPLES
+-
+-B<crypto/threads/mttest.c> shows examples of the callback functions on
+-Solaris, Irix and Win32.
+-
+-=head1 HISTORY
+-
+-CRYPTO_set_locking_callback() is
+-available in all versions of SSLeay and OpenSSL.
+-CRYPTO_num_locks() was added in OpenSSL 0.9.4.
+-All functions dealing with dynamic locks were added in OpenSSL 0.9.5b-dev.
+-B<CRYPTO_THREADID> and associated functions were introduced in OpenSSL 1.0.0
+-to replace (actually, deprecate) the previous CRYPTO_set_id_callback(),
+-CRYPTO_get_id_callback(), and CRYPTO_thread_id() functions which assumed
+-thread IDs to always be represented by 'unsigned long'.
+-
+-=head1 SEE ALSO
+-
+-L<crypto(3)|crypto(3)>
+-
+-=cut
+--- doc/crypto/X509_NAME_ENTRY_get_object.pod	2006-05-14 13:27:59.000000000 +0200
++++ doc/crypto/X509_NAME_ENTRY_get_object.pod	2010-04-01 00:45:01.016327524 +0200
+@@ -65,7 +65,7 @@
+ =head1 SEE ALSO
+ 
+ L<ERR_get_error(3)|ERR_get_error(3)>, L<d2i_X509_NAME(3)|d2i_X509_NAME(3)>,
+-L<OBJ_nid2obj(3),OBJ_nid2obj(3)>
++L<OBJ_nid2obj(3)|OBJ_nid2obj(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/ssl/SSL_get_error.pod	2005-03-30 13:50:14.000000000 +0200
++++ doc/ssl/SSL_get_error.pod	2010-04-01 00:45:03.069662282 +0200
+@@ -105,7 +105,7 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<ssl(3)|ssl(3)>, L<err(3)|err(3)>
++L<ssl(3)|ssl(3)>, L<openssl_err(3)|openssl_err(3)>
+ 
+ =head1 HISTORY
+ 
+--- doc/ssl/SSL_want.pod	2005-03-30 13:50:14.000000000 +0200
++++ doc/ssl/SSL_want.pod	2010-04-01 00:45:03.082993225 +0200
+@@ -72,6 +72,6 @@
+ 
+ =head1 SEE ALSO
+ 
+-L<ssl(3)|ssl(3)>, L<err(3)|err(3)>, L<SSL_get_error(3)|SSL_get_error(3)>
++L<ssl(3)|ssl(3)>, L<openssl_err(3)|openssl_err(3)>, L<SSL_get_error(3)|SSL_get_error(3)>
+ 
+ =cut
+--- FAQ	2010-03-29 15:11:53.000000000 +0200
++++ FAQ	2010-04-01 00:46:00.593821225 +0200
+@@ -724,7 +724,7 @@
+ CRYPTO_set_id_callback(), for all versions of OpenSSL up to and
+ including 0.9.8[abc...]. As of version 0.9.9, CRYPTO_set_id_callback()
+ and associated APIs are deprecated by CRYPTO_THREADID_set_callback()
+-and friends. This is described in the threads(3) manpage.
++and friends. This is described in the openssl_threads(3) manpage.
+ 
+ * I've compiled a program under Windows and it crashes: why?
+ 
diff --git a/abs/core-testing/openssl/no-rpath.patch b/abs/core-testing/openssl/no-rpath.patch
new file mode 100644
index 0000000..ebd95e2
--- /dev/null
+++ b/abs/core-testing/openssl/no-rpath.patch
@@ -0,0 +1,11 @@
+--- Makefile.shared.no-rpath	2005-06-23 22:47:54.000000000 +0200
++++ Makefile.shared	2005-11-16 22:35:37.000000000 +0100
+@@ -153,7 +153,7 @@
+ 	NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
+ 	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
+ 
+-DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"
++DO_GNU_APP=LDFLAGS="$(CFLAGS)"
+ 
+ #This is rather special.  It's a special target with which one can link
+ #applications without bothering with any features that have anything to
-- 
cgit v0.12


From 3f61d8348ecb847dcfc03cb2dd73c79bcd11712d Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:51:32 -0700
Subject: pacman:Bumped/Updated for LinHES 7.

---
 abs/core-testing/pacman-mirrorlist/PKGBUILD        |  26 +-
 abs/core-testing/pacman-mirrorlist/mirrorlist      | 384 +++++++++++++++------
 ...lback-to-sane-defaults-for-library-stripp.patch |  32 ++
 abs/core-testing/pacman/PKGBUILD                   |  30 +-
 abs/core-testing/pacman/makepkg.conf               |  10 +-
 abs/core-testing/pacman/pacman.conf                |   4 +-
 abs/core-testing/pacman/pacman.install             |  10 +-
 7 files changed, 360 insertions(+), 136 deletions(-)
 create mode 100644 abs/core-testing/pacman/0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch

diff --git a/abs/core-testing/pacman-mirrorlist/PKGBUILD b/abs/core-testing/pacman-mirrorlist/PKGBUILD
index 32bd639..76aa033 100644
--- a/abs/core-testing/pacman-mirrorlist/PKGBUILD
+++ b/abs/core-testing/pacman-mirrorlist/PKGBUILD
@@ -1,22 +1,34 @@
-# $Id: PKGBUILD 23382 2009-01-08 14:18:33Z allan $
+# $Id: PKGBUILD 83368 2010-06-21 12:46:38Z dan $
 # Maintainer: Dan McGee <dan@archlinux.org>
 
 pkgname=pacman-mirrorlist
-pkgver=20090108
+pkgver=20100621
 pkgrel=1
 pkgdesc="Arch Linux mirror list for use by pacman"
-arch=('i686' 'x86_64')
+arch=('any')
 url="http://www.archlinux.org/pacman/"
 license=('GPL')
-groups=('base')
 backup=(etc/pacman.d/mirrorlist)
 source=(mirrorlist)
 
+# keep an upgrade path for older installations
+PKGEXT='.pkg.tar.gz'
+
+# NOTE on building this package:
+# * Go to the trunk/ directory
+# * Run bash -c ". PKGBUILD; updatelist"
+# * Update the checksums, update pkgver
+# * Build the package
+
+updatelist() {
+  wget -O mirrorlist http://www.archlinux.org/mirrorlist/i686/all/
+  sed -i 's/i686/$arch/' mirrorlist
+}
+
 build() {
   mkdir -p $pkgdir/etc/pacman.d
   install -m644 $srcdir/mirrorlist $pkgdir/etc/pacman.d/
-  # customize mirrorlist to architecture
-  sed -i -e "s/@carch@/${CARCH}/g" $pkgdir/etc/pacman.d/mirrorlist
 }
 
-md5sums=('854aff1843e1cff2cf45aeef79a89279')
+md5sums=('506e96c2c64c5dbea880112bc5070a22')
+sha256sums=('03507e32ab9fc9988e0df164cb82c75316a0b043c584ae9240cf801600e55c31')
diff --git a/abs/core-testing/pacman-mirrorlist/mirrorlist b/abs/core-testing/pacman-mirrorlist/mirrorlist
index ef691e9..d8498f3 100644
--- a/abs/core-testing/pacman-mirrorlist/mirrorlist
+++ b/abs/core-testing/pacman-mirrorlist/mirrorlist
@@ -1,116 +1,282 @@
 #
 # Arch Linux repository mirrorlist
+# Generated on 2010-06-21
 #
 
-# North America
-# - United States
-Server = ftp://ftp.archlinux.org/$repo/os/@carch@
-Server = ftp://locke.suu.edu/linux/dist/archlinux/$repo/os/@carch@
-Server = http://archlinux.unixheads.org/$repo/os/@carch@
-Server = ftp://ftp.gtlib.gatech.edu/pub/linux/distributions/archlinux/$repo/os/@carch@
-Server = ftp://mirror.cs.vt.edu/pub/ArchLinux/$repo/os/@carch@
-Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/@carch@
-Server = ftp://ftp.ibiblio.org/pub/linux/distributions/archlinux/$repo/os/@carch@
-Server = http://archlinux.umflint.edu/mirrors/archlinux/$repo/os/@carch@
-Server = http://mirror.neotuli.net/arch/$repo/os/@carch@
-Server = http://mirror.rit.edu/archlinux/$repo/os/@carch@
-Server = http://mirror.umoss.org/archlinux/$repo/os/@carch@
-Server = http://schlunix.org/archlinux/$repo/os/@carch@
-Server = http://mirror.archlinux.com.ve/$repo/os/@carch@
-Server = http://mirrors.gigenet.com/archlinux/$repo/os/@carch@
-# - Canada
-Server = ftp://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/@carch@
-Server = ftp://mirrors.portafixe.com/archlinux/$repo/os/@carch@
-
-# South America
-# - Brazil
-Server = http://archlinux.c3sl.ufpr.br/$repo/os/@carch@
-Server = ftp://archlinux.c3sl.ufpr.br/archlinux/$repo/os/@carch@
-Server = ftp://ftp.las.ic.unicamp.br/pub/archlinux/$repo/os/@carch@
-# - Venezuela
-Server = http://mirror2.archlinux.com.ve/$repo/os/@carch@
-
-# Europe
-# - Austria
-Server = ftp://gd.tuwien.ac.at/opsys/linux/archlinux/$repo/os/@carch@
-# - Belgium
-Server = ftp://ftp.belnet.be/mirror/archlinux.org/$repo/os/@carch@
-# - Czech Republic
-Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/$repo/os/@carch@
-# - Denmark
-Server = ftp://ftp.klid.dk/archlinux/$repo/os/@carch@
-# - Estonia
-Server = ftp://ftp.estpak.ee/pub/archlinux/$repo/os/@carch@
-# - France
-Server = ftp://mir1.archlinuxfr.org/archlinux/$repo/os/@carch@
-Server = ftp://mir2.archlinuxfr.org/archlinux/$repo/os/@carch@
-Server = ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/archlinux/$repo/os/@carch@
-Server = http://mir.archlinux.fr/$repo/os/@carch@
-Server = ftp://ftp.free.fr/mirrors/ftp.archlinux.org/$repo/os/@carch@
-Server = ftp://ftp.rez-gif.supelec.fr/Linux/archlinux/$repo/os/@carch@
-# - Germany
-Server = ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/@carch@
-Server = ftp://ftp5.gwdg.de/pub/linux/archlinux/$repo/os/@carch@
-Server = ftp://ftp.uni-bayreuth.de/pub/linux/archlinux/$repo/os/@carch@
-Server = ftp://ftp.archlinuxppc.org/@carch@/$repo/os/@carch@
-Server = ftp://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/@carch@
-Server = http://ftp.uni-kl.de/pub/linux/archlinux/$repo/os/@carch@
-Server = ftp://mirrors.igprolin-online.org/archlinux/$repo/os/@carch@
-Server = ftp://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/@carch@
-# - Great Britain
-Server = http://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/@carch@
-Server = ftp://mirrors.uk2.net/pub/archlinux/$repo/os/@carch@
-Server = http://archlinux.mirrors.uk2.net/$repo/os/@carch@
-Server = ftp://mirror.lividpenguin.com/pub/archlinux/$repo/os/@carch@
-# - Greece
-Server = ftp://ftp.ntua.gr/pub/linux/archlinux/$repo/os/@carch@
-# - Hungary
-Server = ftp://ftp.mfa.kfki.hu/pub/mirrors/ftp.archlinux.org/$repo/os/@carch@
-# - Ireland
-Server = ftp://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/os/@carch@
-# - Italy
-Server = ftp://mi.mirror.garr.it/mirrors/archlinux/$repo/os/@carch@
-# - Netherlands
-Server = ftp://ftp.nluug.nl/pub/metalab/distributions/archlinux/$repo/os/@carch@
-Server = ftp://ftp.surfnet.nl/pub/os/Linux/distr/archlinux/$repo/os/@carch@
-# - Norway
-Server = http://mirror.archlinux.no/$repo/os/@carch@
-# - Poland
-Server = ftp://mirror.icis.pcz.pl/archlinux/$repo/os/@carch@
-Server = http://piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/@carch@
-Server = ftp://ftp.piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/@carch@
-Server = http://unix.net.pl/archlinux.org/$repo/os/@carch@
-# - Portugal
-Server = ftp://cesium.di.uminho.pt/pub/archlinux/$repo/os/@carch@
-# - Romania
-Server = ftp://ftp.iasi.roedu.net/mirrors/archlinux.org/$repo/os/@carch@
-# - Russia
-Server = ftp://mirror.yandex.ru/archlinux/$repo/os/@carch@
-Server = http://archlinux.freeside.ru/$repo/os/@carch@
-# - Sweden
-Server = ftp://ftp.ds.hj.se/pub/os/linux/archlinux/$repo/os/@carch@
-Server = ftp://ftp.gigabit.nu/$repo/os/@carch@
-# - Switzerland
-Server = http://archlinux.puzzle.ch/$repo/os/@carch@
-# - Turkey
-Server = ftp://ftp.linux.org.tr/pub/mirrors/archlinux/$repo/os/@carch@
-# - Ukraine
-Server = ftp://archlinux.hell.org.ua/archlinux/$repo/os/@carch@
-Server = ftp://ftp.linux.kiev.ua/pub/Linux/ArchLinux/$repo/os/@carch@
-
-# Asia
-# - Indonesia
-Server = http://archlinux.cbn.net.id/$repo/os/@carch@
-Server = ftp://archlinux.cbn.net.id/pub/archlinux/$repo/os/@carch@
-# - Israel
-Server = http://mirror.isoc.org.il/pub/archlinux/$repo/os/@carch@
-# - Vietnam
-# Domain name is ftp.indochinalinux.com but there are frequent DNS problems
-Server = ftp://202.78.230.5/archlinux/$repo/os/@carch@
+# Any
+#Server = ftp://mirrors.kernel.org/archlinux/$repo/os/$arch
+#Server = http://mirrors.kernel.org/archlinux/$repo/os/$arch
 
 # Australia
-Server = ftp://mirror.pacific.net.au/linux/archlinux/$repo/os/@carch@
-Server = ftp://mirror.aarnet.edu.au/pub/archlinux/$repo/os/@carch@
-Server = ftp://ftp.iinet.net.au/pub/archlinux/$repo/os/@carch@
-Server = http://mirror.internode.on.net/pub/archlinux/$repo/os/@carch@
+#Server = ftp://mirror.aarnet.edu.au/pub/archlinux/$repo/os/$arch
+#Server = http://mirror.aarnet.edu.au/pub/archlinux/$repo/os/$arch
+#Server = ftp://ftp.iinet.net.au/pub/archlinux/$repo/os/$arch
+#Server = http://ftp.iinet.net.au/pub/archlinux/$repo/os/$arch
+#Server = ftp://mirror.internode.on.net/pub/archlinux/$repo/os/$arch
+#Server = http://mirror.internode.on.net/pub/archlinux/$repo/os/$arch
+#Server = ftp://ftp.netspace.net.au/pub/archlinux/$repo/os/$arch
+#Server = http://ftp.netspace.net.au/pub/archlinux/$repo/os/$arch
+#Server = ftp://mirror.optus.net/archlinux/$repo/os/$arch
+#Server = http://mirror.optus.net/archlinux/$repo/os/$arch
+
+# Austria
+#Server = ftp://gd.tuwien.ac.at/opsys/linux/archlinux/$repo/os/$arch
+#Server = http://gd.tuwien.ac.at/opsys/linux/archlinux/$repo/os/$arch
+
+# Belgium
+#Server = ftp://ftp.belnet.be/packages/archlinux/$repo/os/$arch
+#Server = http://ftp.belnet.be/mirror/archlinux.org/$repo/os/$arch
+#Server = ftp://archlinux.mirror.kangaroot.net/pub/archlinux/$repo/os/$arch
+#Server = http://archlinux.mirror.kangaroot.net/$repo/os/$arch
+
+# Brazil
+#Server = ftp://archlinux.c3sl.ufpr.br/archlinux/$repo/os/$arch
+#Server = http://archlinux.c3sl.ufpr.br/$repo/os/$arch
+#Server = ftp://ftp.las.ic.unicamp.br/pub/archlinux/$repo/os/$arch
+#Server = http://www.las.ic.unicamp.br/pub/archlinux/$repo/os/$arch
+#Server = http://pet.inf.ufsc.br/mirrors/archlinux/$repo/os/$arch
+
+# Bulgaria
+#Server = http://archlinux.igor.onlinedirect.bg/$repo/os/$arch
+
+# Canada
+#Server = ftp://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/$arch
+#Server = http://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/$arch
+#Server = ftp://mirror.its.dal.ca/archlinux/$repo/os/$arch
+#Server = http://mirror.its.dal.ca/archlinux/$repo/os/$arch
+#Server = http://mirror.twilightlair.net/arch/$repo/os/$arch
+
+# Chile
+#Server = ftp://mirror.archlinux.cl/$repo/os/$arch
+
+# China
+#Server = http://mirrors.163.com/archlinux/$repo/os/$arch
+#Server = http://mirror.bjtu.edu.cn/archlinux/$repo/os/$arch
+#Server = http://mirror6.bjtu.edu.cn/archlinux/$repo/os/$arch
+#Server = ftp://mirrors.sohu.com/archlinux/$repo/os/$arch
+#Server = http://mirrors.sohu.com/archlinux/$repo/os/$arch
+
+# Czech Republic
+#Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/$repo/os/$arch
+#Server = http://ftp.sh.cvut.cz/MIRRORS/arch/$repo/os/$arch
+
+# Denmark
+#Server = ftp://mirrors.dotsrc.org/archlinux/$repo/os/$arch
+#Server = http://mirrors.dotsrc.org/archlinux/$repo/os/$arch
+#Server = ftp://ftp.klid.dk/archlinux/$repo/os/$arch
+
+# Estonia
+#Server = ftp://ftp.eenet.ee/pub/archlinux/$repo/os/$arch
+#Server = http://ftp.eenet.ee/pub/archlinux/$repo/os/$arch
+
+# Finland
+#Server = ftp://mirror.archlinux.fi/archlinux/$repo/os/$arch
+#Server = http://mirror.archlinux.fi/archlinux/$repo/os/$arch
+
+# France
+#Server = http://mir.archlinux.fr/$repo/os/$arch
+#Server = ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/archlinux/$repo/os/$arch
+#Server = http://distrib-coffee.ipsl.jussieu.fr/pub/linux/archlinux/$repo/os/$arch
+#Server = ftp://ftp.free.fr/mirrors/ftp.archlinux.org/$repo/os/$arch
+#Server = ftp://mir1.archlinux.fr/archlinux/$repo/os/$arch
+#Server = http://mir1.archlinux.fr/archlinux/$repo/os/$arch
+#Server = ftp://archlinux.mirrors.ovh.net/archlinux/$repo/os/$arch
+#Server = http://archlinux.mirrors.ovh.net/archlinux/$repo/os/$arch
+#Server = ftp://ftp.rez-gif.supelec.fr/Linux/archlinux/$repo/os/$arch
+
+# Germany
+#Server = http://archlinux.limun.org/$repo/os/$arch
+#Server = ftp://artfiles.org/archlinux/$repo/os/$arch
+#Server = http://artfiles.org/archlinux/$repo/os/$arch
+#Server = http://archlinux.giantix-server.de/$repo/os/$arch
+#Server = ftp://ftp5.gwdg.de/pub/linux/archlinux/$repo/os/$arch
+#Server = http://ftp5.gwdg.de/pub/linux/archlinux/$repo/os/$arch
+#Server = ftp://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch
+#Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch
+#Server = ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/$arch
+#Server = http://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/$arch
+#Server = ftp://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch
+#Server = http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch
+#Server = ftp://mirror.selfnet.de/archlinux/$repo/os/$arch
+#Server = http://mirror.selfnet.de/archlinux/$repo/os/$arch
+#Server = ftp://ftp.spline.inf.fu-berlin.de/mirrors/archlinux/$repo/os/$arch
+#Server = http://ftp.spline.inf.fu-berlin.de/mirrors/archlinux/$repo/os/$arch
+#Server = ftp://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/$arch
+#Server = http://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/$arch
+#Server = ftp://ftp.uni-bayreuth.de/pub/linux/archlinux/$repo/os/$arch
+#Server = http://ftp.uni-bayreuth.de/linux/archlinux/$repo/os/$arch
+#Server = ftp://ftp.uni-kl.de/pub/linux/archlinux/$repo/os/$arch
+#Server = http://ftp.uni-kl.de/pub/linux/archlinux/$repo/os/$arch
+
+# Great Britain
+#Server = ftp://mirror.lividpenguin.com/pub/archlinux/$repo/os/$arch
+#Server = http://mirror.lividpenguin.com/pub/archlinux/$repo/os/$arch
+#Server = http://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/$arch
+#Server = ftp://mirrors.uk2.net/pub/archlinux/$repo/os/$arch
+#Server = http://archlinux.mirrors.uk2.net/$repo/os/$arch
+
+# Greece
+#Server = ftp://ftp.cc.uoc.gr/mirrors/linux/archlinux/$repo/os/$arch
+#Server = http://ftp.cc.uoc.gr/mirrors/linux/archlinux/$repo/os/$arch
+#Server = ftp://ftp.ntua.gr/pub/linux/archlinux/$repo/os/$arch
+#Server = http://ftp.ntua.gr/pub/linux/archlinux/$repo/os/$arch
+#Server = ftp://ftp.otenet.gr/pub/linux/archlinux/$repo/os/$arch
+#Server = http://ftp.otenet.gr/linux/archlinux/$repo/os/$arch
+
+# Hungary
+#Server = ftp://ftp.mfa.kfki.hu/pub/mirrors/ftp.archlinux.org/$repo/os/$arch
+
+# India
+#Server = ftp://mirror.cse.iitk.ac.in/archlinux/$repo/os/$arch
+#Server = http://mirror.cse.iitk.ac.in/archlinux/$repo/os/$arch
+
+# Indonesia
+#Server = ftp://archlinux.cbn.net.id/pub/archlinux/$repo/os/$arch
+#Server = http://archlinux.cbn.net.id/$repo/os/$arch
+#Server = ftp://mirror.unej.ac.id/archlinux/$repo/os/$arch
+#Server = http://mirror.unej.ac.id/archlinux/$repo/os/$arch
+
+# Ireland
+#Server = ftp://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/os/$arch
+#Server = http://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/os/$arch
+
+# Israel
+#Server = http://mirror.isoc.org.il/pub/archlinux/$repo/os/$arch
+
+# Italy
+#Server = ftp://mi.mirror.garr.it/mirrors/archlinux/$repo/os/$arch
+#Server = http://mi.mirror.garr.it/mirrors/archlinux/$repo/os/$arch
+
+# Japan
+#Server = ftp://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
+#Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
+#Server = ftp://ftp.yz.yamagata-u.ac.jp/pub/linux/archlinux/$repo/os/$arch
+#Server = http://ftp.yz.yamagata-u.ac.jp/pub/linux/archlinux/$repo/os/$arch
+
+# Kazakhstan
+#Server = ftp://archlinux.linuxforum.kz/$repo/os/$arch
+#Server = http://archlinux.linuxforum.kz/$repo/os/$arch
+
+# Latvia
+#Server = http://archlinux.goodsoft.lv/$repo/os/$arch
+
+# Lithuania
+#Server = ftp://atviras.lt/archmirror/$repo/os/$arch
+#Server = http://atviras.lt/archmirror/$repo/os/$arch
+
+# Netherlands
+#Server = ftp://mirror.leaseweb.com/archlinux/$repo/os/$arch
+#Server = http://mirror.leaseweb.com/archlinux/$repo/os/$arch
+#Server = ftp://ftp.nluug.nl/pub/metalab/distributions/archlinux/$repo/os/$arch
+#Server = http://ftp.nluug.nl/pub/metalab/distributions/archlinux/$repo/os/$arch
+#Server = ftp://ftp.surfnet.nl/pub/os/Linux/distr/archlinux/$repo/os/$arch
+#Server = http://ftp.surfnet.nl/pub/os/Linux/distr/archlinux/$repo/os/$arch
+
+# New Caledonia
+#Server = ftp://archlinux.nautile.nc/archlinux/$repo/os/$arch
+#Server = http://archlinux.nautile.nc/archlinux/$repo/os/$arch
+
+# New Zealand
+#Server = http://mirror.ihug.co.nz/archlinux/$repo/os/$arch
+#Server = http://mirror.ihug.co.nz/archlinux/$repo/os/$arch
+
+# Norway
+#Server = ftp://mirror.archlinux.no/$repo/os/$arch
+#Server = http://mirror.archlinux.no/$repo/os/$arch
+
+# Poland
+#Server = ftp://ftp.piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/$arch
+#Server = http://piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/$arch
+#Server = ftp://ftp.pwsz.elblag.pl/pub/linux/distributions/archlinux/$repo/os/$arch
+#Server = http://ftp.pwsz.elblag.pl/pub/linux/distributions/archlinux/$repo/os/$arch
+#Server = ftp://ftp.tpnet.pl/pub/linux/archlinux/$repo/os/$arch
+#Server = http://unix.net.pl/archlinux.org/$repo/os/$arch
+
+# Portugal
+#Server = ftp://cesium.di.uminho.pt/pub/archlinux/$repo/os/$arch
+#Server = http://cesium.di.uminho.pt/pub/archlinux/$repo/os/$arch
+#Server = http://darkstar.ist.utl.pt/archlinux/$repo/os/$arch
+#Server = ftp://ftp.nux.ipb.pt/pub/dists/archlinux/$repo/os/$arch
+#Server = http://ftp.nux.ipb.pt/pub/dists/archlinux/$repo/os/$arch
+#Server = ftp://ftp.rnl.ist.utl.pt/pub/archlinux/$repo/os/$arch
+#Server = http://ftp.rnl.ist.utl.pt/pub/archlinux/$repo/os/$arch
+
+# Romania
+#Server = ftp://mirror.archlinux.ro/archlinux/$repo/os/$arch
+#Server = http://mirror.archlinux.ro/archlinux/$repo/os/$arch
+#Server = ftp://ftp.roedu.net/mirrors/archlinux.org/$repo/os/$arch
+#Server = http://ftp.roedu.net/mirrors/archlinux.org/$repo/os/$arch
+
+# Russia
+#Server = http://archlinux.freeside.ru/$repo/os/$arch
+#Server = ftp://mirror.svk.su/archlinux/$repo/os/$arch
+#Server = http://mirror.svk.su/archlinux/$repo/os/$arch
+#Server = ftp://mirror.yandex.ru/archlinux/$repo/os/$arch
+#Server = http://mirror.yandex.ru/archlinux/$repo/os/$arch
+
+# Spain
+#Server = ftp://ftp.rediris.es/mirror/archlinux/$repo/os/$arch
+#Server = http://sunsite.rediris.es/mirror/archlinux/$repo/os/$arch
+
+# Sweden
+#Server = ftp://ftp.df.lth.se/pub/archlinux/$repo/os/$arch
+#Server = http://ftp.df.lth.se/pub/archlinux/$repo/os/$arch
+#Server = ftp://ftp.ds.hj.se/pub/os/linux/archlinux/$repo/os/$arch
+#Server = http://ftp.ds.hj.se/pub/os/linux/archlinux/$repo/os/$arch
+#Server = ftp://ftp.gigabit.nu/$repo/os/$arch
+#Server = http://ftp.gigabit.nu/$repo/os/$arch
+#Server = ftp://ftp.port80.se/archlinux/$repo/os/$arch
+#Server = http://ftp.port80.se/archlinux/$repo/os/$arch
+
+# Switzerland
+#Server = ftp://archlinux.puzzle.ch/$repo/os/$arch
+#Server = http://archlinux.puzzle.ch/$repo/os/$arch
+
+# Taiwan
+#Server = ftp://ftp.mirror.tw/pub/ArchLinux/$repo/os/$arch
+#Server = http://www.mirror.tw/pub/ArchLinux/$repo/os/$arch
+#Server = ftp://ftp.tku.edu.tw/Linux/ArchLinux/$repo/os/$arch
+#Server = http://ftp.tku.edu.tw/Linux/ArchLinux/$repo/os/$arch
+
+# Turkey
+#Server = ftp://ftp.linux.org.tr/archlinux/$repo/os/$arch
+
+# Ukraine
+#Server = ftp://archlinux.hell.org.ua/archlinux/$repo/os/$arch
+#Server = http://archlinux.hell.org.ua/archlinux/$repo/os/$arch
+#Server = ftp://ftp.linux.kiev.ua/pub/Linux/ArchLinux/$repo/os/$arch
+#Server = http://ftp.linux.kiev.ua/pub/Linux/ArchLinux/$repo/os/$arch
+
+# United States
+#Server = http://mirror.ams.sunysb.edu/archlinux/$repo/os/$arch
+#Server = ftp://mirror.cs.vt.edu/pub/ArchLinux/$repo/os/$arch
+#Server = http://mirror.cs.vt.edu/pub/ArchLinux/$repo/os/$arch
+#Server = ftp://mirrors.easynews.com/linux/archlinux/$repo/os/$arch
+#Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/$arch
+#Server = ftp://ftp.archlinux.org/$repo/os/$arch
+#Server = ftp://ftp.gtlib.gatech.edu/pub/linux/distributions/archlinux/$repo/os/$arch
+#Server = http://www.gtlib.gatech.edu/pub/linux/distributions/archlinux/$repo/os/$arch
+#Server = ftp://mirrors.hosef.org/archlinux/$repo/os/$arch
+#Server = http://mirrors.hosef.org/archlinux/$repo/os/$arch
+#Server = ftp://ibiblio.org/pub/linux/distributions/archlinux/$repo/os/$arch
+#Server = http://distro.ibiblio.org/pub/linux/distributions/archlinux/$repo/os/$arch
+#Server = http://archlinux.linuxfreedom.com/$repo/os/$arch
+#Server = ftp://locke.suu.edu/linux/dist/archlinux/$repo/os/$arch
+#Server = ftp://lug.mtu.edu/archlinux/ftpfull/$repo/os/$arch
+#Server = http://lug.mtu.edu/archlinux/ftpfull/$repo/os/$arch
+#Server = ftp://mirrors.xmission.com/archlinux/$repo/os/$arch
+#Server = http://mirrors.xmission.com/archlinux/$repo/os/$arch
+#Server = ftp://ftp.osuosl.org/pub/archlinux/$repo/os/$arch
+#Server = http://ftp.osuosl.org/pub/archlinux/$repo/os/$arch
+#Server = ftp://mirror.rit.edu/archlinux/$repo/os/$arch
+#Server = http://mirror.rit.edu/archlinux/$repo/os/$arch
+#Server = http://schlunix.org/archlinux/$repo/os/$arch
+#Server = http://archlinux.umflint.edu/$repo/os/$arch
+#Server = http://mirror.umoss.org/archlinux/$repo/os/$arch
+
+# Vietnam
+#Server = ftp://202.78.230.5/archlinux/$repo/os/$arch
+#Server = ftp://ftp.indochinalinux.com/archlinux/$repo/os/$arch
+#Server = ftp://mirror-fpt-telecom.fpt.net/archlinux/$repo/os/$arch
+#Server = http://mirror-fpt-telecom.fpt.net/archlinux/$repo/os/$arch
 
diff --git a/abs/core-testing/pacman/0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch b/abs/core-testing/pacman/0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch
new file mode 100644
index 0000000..8baa35e
--- /dev/null
+++ b/abs/core-testing/pacman/0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch
@@ -0,0 +1,32 @@
+From dc817a2061699cd1f33ca93f0d93a1fbc2f33ea1 Mon Sep 17 00:00:00 2001
+From: Allan McRae <allan@archlinux.org>
+Date: Thu, 17 Jun 2010 14:32:08 +1000
+Subject: [PATCH] makepkg: fallback to sane defaults for library stripping
+
+If the library stripping variables are not defined in makepkg.conf,
+libraries will be fully stripped and become broken.  Fallback to a
+sane default stripping level.
+
+Signed-off-by: Allan McRae <allan@archlinux.org>
+Signed-off-by: Dan McGee <dan@archlinux.org>
+---
+ scripts/makepkg.sh.in |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
+index d986701..e64b564 100644
+--- a/scripts/makepkg.sh.in
++++ b/scripts/makepkg.sh.in
+@@ -864,6 +864,9 @@ tidy_install() {
+ 
+ 	if [[ $(check_option strip) = y && -n ${STRIP_DIRS[*]} ]]; then
+ 		msg2 "$(gettext "Stripping unneeded symbols from binaries and libraries...")"
++		# make sure library stripping variables are defined to prevent excess stripping
++		[[ -z ${STRIP_SHARED+x} ]] && STRIP_SHARED="-S"
++		[[ -z ${STRIP_STATIC+x} ]] && STRIP_STATIC="-S"
+ 		local binary
+ 		find ${STRIP_DIRS[@]} -type f -perm -u+w 2>/dev/null | while read binary ; do
+ 			case "$(file -bi "$binary")" in
+-- 
+1.7.1
+
diff --git a/abs/core-testing/pacman/PKGBUILD b/abs/core-testing/pacman/PKGBUILD
index 239abb8..b18009b 100644
--- a/abs/core-testing/pacman/PKGBUILD
+++ b/abs/core-testing/pacman/PKGBUILD
@@ -1,32 +1,40 @@
-# $Id: PKGBUILD 58635 2009-11-11 00:00:52Z dan $
+# $Id: PKGBUILD 83376 2010-06-21 12:52:09Z dan $
 # Maintainer: Aaron Griffin <aaron@archlinux.org>
 # Maintainer: Dan McGee <dan@archlinux.org>
 
 pkgname=pacman
-pkgver=3.3.3
-pkgrel=10
+pkgver=3.4.0
+pkgrel=2
 pkgdesc="A library-based package manager with dependency support"
 arch=('i686' 'x86_64')
 url="http://www.archlinux.org/pacman/"
 license=('GPL')
 groups=('base')
 depends=('bash' 'libarchive>=2.7.1' 'libfetch>=2.25' 'pacman-mirrorlist')
-optdepends=('fakeroot: for makepkg usage as normal user'
-            'python: for rankmirrors script usage')
+optdepends=('fakeroot: for makepkg usage as normal user')
 backup=(etc/pacman.conf etc/makepkg.conf)
 install=pacman.install
 options=(!libtool)
 source=(ftp://ftp.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz
         pacman.conf
-        makepkg.conf)
-md5sums=('a8cef73d68e2a4c3a46fb46c33210719'
-         'abe70dabacee7036368c7afeb686eb10'
-         '52c7bc651b107d73f9902755b7594458')
+        makepkg.conf
+        0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch)
+md5sums=('50ad71be1faaad84842c576e239d1bb5'
+         '80f5bb2a606553512d0db857f78d9ac2'
+         'aef317285c7d16ac495b0e53deeb948d'
+         'f8c4a3cc7702a7a70d177659441495c5')
+sha256sums=('cd80e206ee653ce337555c73b7064088e672e9341245317fe09dc52d06bff3c3'
+            '97fb68536c1179a7de52dfb8a107c6e9bf3a71eaa6a98d6ae74dc224d4ca5838'
+            '3a60e1f895c90c8e74f5ca389fa05fb3328745e9873c5452b8cd1b2e68bee418'
+            '99f1d108f930b134cfb4c1ca8c86cd282fe9efb69de39cd747218f3d448dda44')
+
+# keep an upgrade path for older installations
+PKGEXT='.pkg.tar.gz'
 
 build() {
   cd $srcdir/$pkgname-$pkgver
-  
-  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+  patch -Np1 < $srcdir/0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch
+  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-doc
   make || return 1
 }
 
diff --git a/abs/core-testing/pacman/makepkg.conf b/abs/core-testing/pacman/makepkg.conf
index 12cfebd..ff08a0f 100644
--- a/abs/core-testing/pacman/makepkg.conf
+++ b/abs/core-testing/pacman/makepkg.conf
@@ -72,6 +72,12 @@ OPTIONS=(strip docs libtool emptydirs zipman purge)
 
 #-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
 INTEGRITY_CHECK=(md5)
+#-- Options to be used when stripping binaries. See `man strip' for details.
+STRIP_BINARIES="--strip-all"
+#-- Options to be used when stripping shared libraries. See `man strip' for details.
+STRIP_SHARED="--strip-unneeded"
+#-- Options to be used when stripping static libraries. See `man strip' for details.
+STRIP_STATIC="--strip-debug"
 #-- Manual (man and info) directories to compress (if zipman is specified)
 MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
 #-- Doc directories to remove (if !docs is specified)
@@ -91,6 +97,8 @@ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
 #PKGDEST=/home/packages
 #-- Source cache: specify a fixed directory where source files will be cached
 #SRCDEST=/home/sources
+#-- Source packages: specify a fixed directory where all src packages will be placed
+#SRCPKGDEST=/home/srcpackages
 #-- Packager: name/email of the person or organization building packages
 #PACKAGER="John Doe <john@doe.com>"
 
@@ -101,7 +109,7 @@ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
 # WARNING: Do NOT modify these variables unless you know what you are
 #          doing.
 #
-PKGEXT='.pkg.tar.gz'
+PKGEXT='.pkg.tar.xz'
 SRCEXT='.src.tar.gz'
 
 # vim: set ft=sh ts=2 sw=2 et:
diff --git a/abs/core-testing/pacman/pacman.conf b/abs/core-testing/pacman/pacman.conf
index de7e17d..911c23d 100644
--- a/abs/core-testing/pacman/pacman.conf
+++ b/abs/core-testing/pacman/pacman.conf
@@ -17,8 +17,9 @@ HoldPkg     = pacman glibc
 # If upgrades are available for these packages they will be asked for first
 SyncFirst   = pacman
 #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
-#XferCommand = /usr/bin/curl %u > %o
+#XferCommand = /usr/bin/curl -C - %u > %o
 #CleanMethod = KeepInstalled
+Architecture = auto
 
 # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
 #IgnorePkg   =
@@ -41,6 +42,7 @@ SyncFirst   = pacman
 #   - repositories listed first will take precedence when packages
 #     have identical names, regardless of version number
 #   - URLs will have $repo replaced by the name of the current repo
+#   - URLs will have $arch replaced by the name of the architecture
 #
 # Repository entries are of the format:
 #       [repo-name]
diff --git a/abs/core-testing/pacman/pacman.install b/abs/core-testing/pacman/pacman.install
index ed10f0d..294222e 100644
--- a/abs/core-testing/pacman/pacman.install
+++ b/abs/core-testing/pacman/pacman.install
@@ -3,13 +3,9 @@
 # arg 2:  the old package version
 post_upgrade() {
 	# one time stuff for md5sum issue with older pacman versions
-	if [  -f /usr/bin/vercmp ]
-	then
-		if  [ "$(vercmp $2 3.0.2)" -lt 0 ]
-		then
-        	 	_resetbackups
-		fi
-	fi	
+	if [ "$(vercmp $2 3.0.2)" -lt 0 ]; then
+		_resetbackups
+	fi
 }
 
 _resetbackups() {
-- 
cgit v0.12


From 56c6185c2a735551f2f1d6941d5b14d04adef40e Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:51:46 -0700
Subject: pango:Bumped/Updated for LinHES 7.

---
 abs/core-testing/pango/PKGBUILD      | 16 ++++++++--------
 abs/core-testing/pango/pango.install |  5 -----
 2 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/abs/core-testing/pango/PKGBUILD b/abs/core-testing/pango/PKGBUILD
index c67dec2..7711dfb 100644
--- a/abs/core-testing/pango/PKGBUILD
+++ b/abs/core-testing/pango/PKGBUILD
@@ -1,24 +1,24 @@
-# $Id: PKGBUILD 36027 2009-04-19 18:20:15Z jgc $ 
+# $Id: PKGBUILD 82790 2010-06-17 13:43:36Z jgc $ 
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=pango
-pkgver=1.24.1
+pkgver=1.28.1
 pkgrel=1
 pkgdesc="A library for layout and rendering of text"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
 license=('LGPL')
-depends=('glib2>=2.20.1' 'cairo>=1.8.6' 'libxft>=2.1.13' 'libthai>=0.1.11' 'freetype2>=2.3.9')
-makedepends=('pkgconfig' 'libxt')
+depends=('glib2>=2.24.1' 'cairo>=1.8.10' 'libxft>=2.1.14' 'libthai>=0.1.14' 'freetype2>=2.3.12')
+makedepends=('pkgconfig' 'libxt' 'gobject-introspection')
 options=('!libtool' '!emptydirs')
 install=pango.install
-source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.24/${pkgname}-${pkgver}.tar.bz2)
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.28/${pkgname}-${pkgver}.tar.bz2)
 url="http://www.pango.org/"
-md5sums=('af0beac1dd1825e241c5728081f16acd')
+sha256sums=('8f3eaab506f613dd25bb1fa65ea87a145d523d066d90c227bdb3016523451bc2')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr --sysconfdir=/etc \
-              --localstatedir=/var || return 1
+      --localstatedir=/var --with-included-modules=basic-fc || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/pango/pango.install b/abs/core-testing/pango/pango.install
index 9978739..73b0f5b 100644
--- a/abs/core-testing/pango/pango.install
+++ b/abs/core-testing/pango/pango.install
@@ -19,8 +19,3 @@ post_upgrade() {
 pre_remove() {
 	rm etc/pango/pango.modules
 }
-
-op=$1
-shift
-
-$op $*
-- 
cgit v0.12


From 10ab90f1cbd18d1b78f387af7212115758722ef9 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:51:57 -0700
Subject: pcre:Bumped/Updated for LinHES 7.

---
 abs/core-testing/pcre/ChangeLog | 24 ++++++++++++++++++++++++
 abs/core-testing/pcre/PKGBUILD  | 38 ++++++++++++++++++++++----------------
 2 files changed, 46 insertions(+), 16 deletions(-)

diff --git a/abs/core-testing/pcre/ChangeLog b/abs/core-testing/pcre/ChangeLog
index a1850cf..cdff568 100644
--- a/abs/core-testing/pcre/ChangeLog
+++ b/abs/core-testing/pcre/ChangeLog
@@ -1,3 +1,27 @@
+2010-03-24  Eric Belanger  <eric@archlinux.org>
+
+	* pcre 8.02-1
+	* Upstream update
+
+2010-01-23  Eric Belanger  <eric@archlinux.org>
+
+	* pcre 8.01-1
+	* Upstream update
+
+2009-10-26  Eric Belanger  <eric@archlinux.org>
+
+	* pcre 8.00-1
+	* Upstream update
+
+2009-04-13  Eric Belanger  <eric@archlinux.org>
+
+	* pcre 7.9-1
+	* Upstream update
+
+2008-10-19  Eric Belanger  <eric@archlinux.org>
+
+	* Updated url
+
 2008-09-05  Eric Belanger  <eric@archlinux.org>
 
 	* pcre 7.8-1
diff --git a/abs/core-testing/pcre/PKGBUILD b/abs/core-testing/pcre/PKGBUILD
index b019bed..d31e23c 100644
--- a/abs/core-testing/pcre/PKGBUILD
+++ b/abs/core-testing/pcre/PKGBUILD
@@ -1,30 +1,36 @@
-# $Id: PKGBUILD 11888 2008-09-06 03:23:26Z eric $
-# Maintainer: Eric Belanger <eric@archlinux.org>
+# $Id: PKGBUILD 84661 2010-07-03 04:01:39Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
 # Contributor: John Proctor <jproctor@prium.net>
 
 pkgname=pcre
-pkgver=7.8
+pkgver=8.10
 pkgrel=1
 pkgdesc="A library that implements Perl 5-style regular expressions"
 arch=('i686' 'x86_64') 
-url="http://pcre.sourceforge.net"
+url="http://www.pcre.org/"
 license=('BSD')
-groups=('base')
 depends=('gcc-libs')
-options=('!libtool' '!makeflags')
+options=('!libtool')
 source=(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('141132d6af14dccc7b08fa797e4fd441')
-sha1sums=('552909f9d18e1954eec639f926957a4cb2de1ec3')
+md5sums=('780867a700e9d4e4b9cb47aa5453e4b2')
+sha1sums=('8b345da0f835b2caabff071b0b5bab40564652be')
 
 build() {
-  cd ${srcdir}/${pkgname}-${pkgver}
+  cd "${srcdir}"/${pkgname}-${pkgver}
   [ "${CARCH}" = "x86_64" ] && export CFLAGS="${CFLAGS} -fPIC"
-  ./configure --prefix=/usr --enable-utf8 --enable-unicode-properties || return 1
-  make || return 1
-  make DESTDIR=${pkgdir} install || return 1
+  ./configure --prefix=/usr --enable-utf8 --enable-unicode-properties
+  make
+}
+
+package() {
+  cd "${srcdir}"/${pkgname}-${pkgver}
+  make DESTDIR="${pkgdir}" install
+  
   # grep uses pcre, so we need the libs in /lib
-  mkdir -p ${pkgdir}/lib
-  mv ${pkgdir}/usr/lib/libpcre.so.* ${pkgdir}/lib/ || return 1
-  ln -sf ../../lib/libpcre.so.0 ${pkgdir}/usr/lib/libpcre.so || return 1
-  install -D -m644 LICENCE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
+  install -dm755 "${pkgdir}"/lib
+  mv "${pkgdir}"/usr/lib/libpcre.so.* "${pkgdir}"/lib/
+  ln -sf ../../lib/libpcre.so.0 "${pkgdir}"/usr/lib/libpcre.so
+  
+  install -Dm644 LICENCE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
 }
-- 
cgit v0.12


From 39d89da99d95519ee0ef5273b09dc7cd8f2d3a66 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:52:24 -0700
Subject: pixman:Removed for LinHES 7.

---
 abs/core-testing/pixman/PKGBUILD | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/abs/core-testing/pixman/PKGBUILD b/abs/core-testing/pixman/PKGBUILD
index 306acd9..d15bf4b 100644
--- a/abs/core-testing/pixman/PKGBUILD
+++ b/abs/core-testing/pixman/PKGBUILD
@@ -1,21 +1,23 @@
-# $Id: PKGBUILD 12786 2008-09-20 08:34:14Z jgc $
+# $Id: PKGBUILD 80841 2010-05-22 14:31:00Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Alexander Baldeck <alexander@archlinux.org>
 pkgname=pixman
-pkgver=0.12.0
+pkgver=0.18.2
 pkgrel=1
 pkgdesc="Pixman library"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org"
-license=()
+license=('custom')
 depends=('glibc')
 options=('!libtool')
 source=(http://xorg.freedesktop.org/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('494af78c1c7d825c9ad6815d7b91f17d')
+sha1sums=('d66ab37ebc111e8031dd6d0ff1edf19b7adab5be')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr --disable-static || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-- 
cgit v0.12


From 53b523a6f3cd281925b8d8bfa15afea49eea340c Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:52:58 -0700
Subject: pkc-config:Bumped/Updated for LinHES 7.

---
 abs/core-testing/pkg-config/PKGBUILD            | 32 +++++++++++++++++++++++++
 abs/core-testing/pkg-config/autoconf-2.66.patch | 12 ++++++++++
 2 files changed, 44 insertions(+)
 create mode 100644 abs/core-testing/pkg-config/PKGBUILD
 create mode 100644 abs/core-testing/pkg-config/autoconf-2.66.patch

diff --git a/abs/core-testing/pkg-config/PKGBUILD b/abs/core-testing/pkg-config/PKGBUILD
new file mode 100644
index 0000000..9c671df
--- /dev/null
+++ b/abs/core-testing/pkg-config/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 85540 2010-07-15 04:44:14Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=pkg-config
+pkgver=0.25
+pkgrel=2
+pkgdesc="A system for managing library compile/link flags"
+arch=('i686' 'x86_64')
+url="http://pkgconfig.freedesktop.org/wiki/"
+license=('GPL')
+groups=('base-devel')
+depends=('glibc')
+provides=("pkgconfig=${pkgver}")
+conflicts=('pkgconfig')
+replaces=('pkgconfig')
+source=(http://pkgconfig.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz
+        autoconf-2.66.patch)
+md5sums=('a3270bab3f4b69b7dc6dbdacbcae9745'
+         '0fbfc1a5088f792bbeec7b5090e449f1')
+
+build() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  patch -Np1 -i $srcdir/autoconf-2.66.patch
+  ./configure --prefix=/usr
+  make
+}
+
+package() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  make DESTDIR=${pkgdir} install
+}
diff --git a/abs/core-testing/pkg-config/autoconf-2.66.patch b/abs/core-testing/pkg-config/autoconf-2.66.patch
new file mode 100644
index 0000000..14cabdf
--- /dev/null
+++ b/abs/core-testing/pkg-config/autoconf-2.66.patch
@@ -0,0 +1,12 @@
+diff -Naur pkg-config-0.25-old//pkg.m4 pkg-config-0.25/pkg.m4
+--- pkg-config-0.25-old//pkg.m4	2009-12-07 06:39:02.000000000 +1000
++++ pkg-config-0.25/pkg.m4	2010-07-15 14:44:37.466942978 +1000
+@@ -135,7 +135,7 @@
+ Consider adjusting the PKG_CONFIG_PATH environment variable if you
+ installed software in a non-standard prefix.
+ 
+-_PKG_TEXT])dnl
++_PKG_TEXT])[]dnl
+         ])
+ elif test $pkg_failed = untried; then
+      	AC_MSG_RESULT([no])
-- 
cgit v0.12


From 16643ae3432c466983bd43e05ec84db0fc3a6c67 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:53:20 -0700
Subject: pkgconfig:Removed for LinHES 7.

---
 abs/core-testing/pkgconfig/PKGBUILD | 22 ----------------------
 1 file changed, 22 deletions(-)
 delete mode 100644 abs/core-testing/pkgconfig/PKGBUILD

diff --git a/abs/core-testing/pkgconfig/PKGBUILD b/abs/core-testing/pkgconfig/PKGBUILD
deleted file mode 100644
index 2cecd38..0000000
--- a/abs/core-testing/pkgconfig/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 1407 2008-05-07 22:55:37Z andyrtr $
-# Maintainer: dorphell <dorphell@archlinux.org>
-# Committer: Judd Vinet <jvinet@zeroflux.org>
-
-pkgname=pkgconfig
-pkgver=0.23
-pkgrel=1
-pkgdesc="A system for managing library compile/link flags"
-arch=(i686 x86_64)
-url="http://pkgconfig.freedesktop.org/wiki/"
-license=('GPL')
-groups=('base-devel')
-depends=(glibc)
-source=(http://pkgconfig.freedesktop.org/releases/pkg-config-${pkgver}.tar.gz)
-md5sums=('d922a88782b64441d06547632fd85744')
-
-build() {
-  cd ${startdir}/src/pkg-config-${pkgver}
-  ./configure --prefix=/usr
-  make || return 1
-  make DESTDIR=${startdir}/pkg install
-}
-- 
cgit v0.12


From 5ad04ad706e074c7fde14f44fdaa377858b1b043 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:53:28 -0700
Subject: pm-utils:Bumped/Updated for LinHES 7.

---
 abs/core-testing/pm-utils/PKGBUILD | 38 ++++++++++++++++++++------------------
 1 file changed, 20 insertions(+), 18 deletions(-)

diff --git a/abs/core-testing/pm-utils/PKGBUILD b/abs/core-testing/pm-utils/PKGBUILD
index 0ca060c..0d87a34 100644
--- a/abs/core-testing/pm-utils/PKGBUILD
+++ b/abs/core-testing/pm-utils/PKGBUILD
@@ -1,29 +1,31 @@
-#$Id: PKGBUILD 7546 2008-08-02 21:35:07Z jgc $
-#Maintainer: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 83839 2010-06-23 08:36:02Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
 pkgname=pm-utils
-pkgver=1.1.2.4
+pkgver=1.4.0
 pkgrel=1
-pkgdesc="Utilities and scripts for power management"
+pkgdesc="Utilities and scripts for suspend and hibernate power management"
 arch=('i686' 'x86_64')
 url="http://pm-utils.freedesktop.org"
 license=('GPL')
-depends=('glibc' 'vbetool' 'procps')
-makedepends=('xmlto')
-install=pm-utils.install
+depends=('bash' 'procps' 'vbetool' 'pm-quirks')
+optdepends=('upower')
+makedepends=('xmlto' 'docbook-xml' 'docbook-xsl')
 source=(http://pm-utils.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz
-	service.patch
-	11netcfg)
-md5sums=('5aa6d338fb8172f1826a1b08ae601a42'
-         '3e170a6c7ae7d9110f95bab54235c089'
+        11netcfg)
+md5sums=('132005cf1d33e33802eb78121a6ceb22'
          '9839687c8787d99fd4ff36aa3238c27b')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  patch -Np0 -i ${startdir}/src/service.patch || return 1
-  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr \
+      --sysconfdir=/etc \
+      --localstatedir=/var
+  make
+  make DESTDIR="${pkgdir}" install
 
-  #Install additional hooks
-  install -m755 ${startdir}/src/11netcfg ${startdir}/pkg/usr/lib/pm-utils/sleep.d/11netcfg || return 1
+  # install additional hooks
+  install -m755 "${srcdir}/11netcfg" "${pkgdir}/usr/lib/pm-utils/sleep.d/"
 }
-- 
cgit v0.12


From 9ed4a590299000e7328e1af912c117239a1cc75c Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:53:51 -0700
Subject: ppl:Bumped/Updated for LinHES 7.

---
 abs/core-testing/ppl/PKGBUILD                 | 27 ++++++++++++++++++++++++
 abs/core-testing/ppl/ppl-0.10.2-gmp-5.0.patch | 30 +++++++++++++++++++++++++++
 2 files changed, 57 insertions(+)
 create mode 100644 abs/core-testing/ppl/PKGBUILD
 create mode 100644 abs/core-testing/ppl/ppl-0.10.2-gmp-5.0.patch

diff --git a/abs/core-testing/ppl/PKGBUILD b/abs/core-testing/ppl/PKGBUILD
new file mode 100644
index 0000000..e432e18
--- /dev/null
+++ b/abs/core-testing/ppl/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 72640 2010-03-19 03:03:03Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: ezzetabi <ezzetabi at gawab dot com>
+
+pkgname=ppl
+pkgver=0.10.2
+pkgrel=3
+pkgdesc="A modern library for convex polyhedra and other numerical abstractions."
+arch=('i686' 'x86_64')
+url="http://www.cs.unipr.it/ppl"
+license=('GPL3')
+depends=('gmp>=5.0')
+options=('!docs' '!libtool')
+source=(http://www.cs.unipr.it/ppl/Download/ftp/releases/$pkgver/ppl-$pkgver.tar.gz
+        ppl-0.10.2-gmp-5.0.patch)
+md5sums=('e7dd265afdeaea81f7e87a72b182d875'
+         '4da347693c76ccccba4fb5b60ca0f321')
+
+build() {
+  cd $srcdir/ppl-$pkgver
+  patch -Np1 -i $srcdir/ppl-0.10.2-gmp-5.0.patch
+  autoreconf -vf
+
+  ./configure --prefix=/usr --enable-interfaces="c,cxx" || return 1
+  make || return 1
+  make DESTDIR=$pkgdir install || return 1
+}
diff --git a/abs/core-testing/ppl/ppl-0.10.2-gmp-5.0.patch b/abs/core-testing/ppl/ppl-0.10.2-gmp-5.0.patch
new file mode 100644
index 0000000..4d6964a
--- /dev/null
+++ b/abs/core-testing/ppl/ppl-0.10.2-gmp-5.0.patch
@@ -0,0 +1,30 @@
+diff --git a/m4/ac_check_gmp.m4 b/m4/ac_check_gmp.m4
+index 60cecdc..15acb18 100644
+--- a/m4/ac_check_gmp.m4
++++ b/m4/ac_check_gmp.m4
+@@ -71,6 +71,10 @@ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #GMP version 4.1.3 or higher is required
+ #endif
+ 
++#ifndef BITS_PER_MP_LIMB
++#define BITS_PER_MP_LIMB GMP_LIMB_BITS
++#endif
++
+ int
+ main() {
+   std::string header_version;
+@@ -97,11 +101,11 @@ main() {
+     return 1;
+   }
+ 
+-  if (sizeof(mp_limb_t)*CHAR_BIT != GMP_LIMB_BITS
+-      || GMP_LIMB_BITS != mp_bits_per_limb) {
++  if (sizeof(mp_limb_t)*CHAR_BIT != BITS_PER_MP_LIMB
++      || BITS_PER_MP_LIMB != mp_bits_per_limb) {
+     std::cerr
+       << "GMP header (gmp.h) and library (ligmp.*) bits-per-limb mismatch:\n"
+-      << "header gives " << __GMP_BITS_PER_MP_LIMB << ";\n"
++      << "header gives " << BITS_PER_MP_LIMB << ";\n"
+       << "library gives " << mp_bits_per_limb << ".\n"
+       << "This probably means you are on a bi-arch system and\n"
+       << "you are compiling with the wrong header or linking with\n"
-- 
cgit v0.12


From ed4f57ade7bc08cbbeb49cc877e2ce411ca79b0b Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:54:06 -0700
Subject: procinfo-ng:Bumped/Updated for LinHES 7.

---
 abs/core-testing/procinfo-ng/PKGBUILD | 38 +++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)
 create mode 100644 abs/core-testing/procinfo-ng/PKGBUILD

diff --git a/abs/core-testing/procinfo-ng/PKGBUILD b/abs/core-testing/procinfo-ng/PKGBUILD
new file mode 100644
index 0000000..abe31c2
--- /dev/null
+++ b/abs/core-testing/procinfo-ng/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 77945 2010-04-19 06:20:55Z allan $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+pkgname=procinfo-ng
+pkgver=2.0.304
+pkgrel=1
+pkgdesc="Displays useful information from /proc"
+arch=('i686' 'x86_64')
+url="http://procinfo-ng.sourceforge.net/"
+license=('GPL2' 'LGPL2.1')
+depends=('ncurses' 'perl')
+provides=('procinfo')
+conflicts=('procinfo')
+replaces=('procinfo')
+source=(http://downloads.sourceforge.net/project/procinfo-ng/procinfo-ng/2.0.304/$pkgname-$pkgver.tar.bz2
+        ftp://ftp.cistron.nl/pub/people/00-OLD/svm/procinfo-18.tar.gz)
+md5sums=('ed018fe37becc36ceb1ebe3ed909c4d2'
+         '27658d0a69040aca05a65b9888599d50')
+
+build() {
+  cd $srcdir/$pkgname-$pkgver
+  ./configure --prefix=/usr
+  make || return 1
+}
+
+package() {
+  cd $srcdir/$pkgname-$pkgver
+  make DESTDIR="$pkgdir/" install
+
+  # install tools from old procinfo package
+  cd $srcdir/procinfo-18
+  install -m755 lsdev.pl $pkgdir/usr/bin/lsdev
+  install -m755 socklist.pl $pkgdir/usr/bin/socklist
+  install -m644 lsdev.8 $pkgdir/usr/share/man/man8/lsdev.8
+  install -m644 socklist.8 $pkgdir/usr/share/man/man8/socklist.8
+}
+
-- 
cgit v0.12


From 03b3a1aef9f535b962abe26327d9fca6c64e1902 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:54:23 -0700
Subject: procinfo:Removed for LinHES 7.

---
 abs/core-testing/procinfo/PKGBUILD            |  22 --
 abs/core-testing/procinfo/procinfo-19.2.patch | 325 --------------------------
 2 files changed, 347 deletions(-)
 delete mode 100644 abs/core-testing/procinfo/PKGBUILD
 delete mode 100644 abs/core-testing/procinfo/procinfo-19.2.patch

diff --git a/abs/core-testing/procinfo/PKGBUILD b/abs/core-testing/procinfo/PKGBUILD
deleted file mode 100644
index ccff37e..0000000
--- a/abs/core-testing/procinfo/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: judd <jvinet@zeroflux.org>
-pkgname=procinfo
-pkgver=19
-pkgrel=11
-pkgdesc="Displays useful information from /proc"
-arch=(i686 x86_64) 
-license=('GPL')
-groups=('base')
-depends=('glibc' 'ncurses' 'perl')
-source=(ftp://ftp.cistron.nl/pub/people/00-OLD/svm/$pkgname-18.tar.gz
-	procinfo-19.2.patch)
-md5sums=('27658d0a69040aca05a65b9888599d50'
-         '6520e2f7d7884069d3ee41251d36a86c')
-
-build() {
-  cd $startdir/src/$pkgname-18
-  patch -Np1 -i ../procinfo-19.2.patch || return 1
-  make LDLIBS=-lncurses || return 1
-  make prefix=$startdir/pkg/usr install
-}
-
diff --git a/abs/core-testing/procinfo/procinfo-19.2.patch b/abs/core-testing/procinfo/procinfo-19.2.patch
deleted file mode 100644
index 1fb622a..0000000
--- a/abs/core-testing/procinfo/procinfo-19.2.patch
+++ /dev/null
@@ -1,325 +0,0 @@
-diff -ruN procinfo-18/procinfo.c procinfo-19/procinfo.c
---- procinfo-18/procinfo.c	2001-02-25 12:29:16.000000000 +0100
-+++ procinfo-19/procinfo.c	2005-07-02 17:37:31.000000000 +0200
-@@ -5,9 +5,10 @@
-   Displays general info from /proc.
- 
-   Date:        1995-07-08 05:30:34
--  Last Change: 2001-02-25 00:27:21
-+  Last Change: 2005-07-02 17:25:53
- 
-   Copyright (c) 1994-2001 svm@kozmix.cistron.nl
-+  Copyright (c) 2004-2005 procinfo@meisel.cc (upgrades for 2.6 kernel)
- 
-   This software is released under the GNU Public Licence. See the file
-   `COPYING' for details. Since you're probably running Linux I'm sure
-@@ -26,6 +27,7 @@
- #include <string.h>
- #include <termios.h>
- #include <termcap.h>
-+#include <ctype.h>
- #include <time.h>
- #include <unistd.h>
- #include <sys/param.h>	/* for HZ -- should be in <time.h> ? */
-@@ -72,9 +74,9 @@
- int nr_irqs = 0;
- int nr_cpus = 0;
- 
--FILE *loadavgfp, *meminfofp, *modulesfp, *statfp, *uptimefp,
-+FILE *loadavgfp, *meminfofp, *modulesfp, *statfp, *uptimefp, *diskstatsfp,
-     *devicesfp, *filesystemsfp, *interruptsfp, *dmafp, *cmdlinefp,
--    *versionfp, *cpuinfofp;
-+    *versionfp, *cpuinfofp, *vmstatfp;
- 
- char line[1024], cmdline[1024], booted[40], *version = NULL, *message = NULL;
- 
-@@ -89,9 +91,13 @@
- {
-     unsigned long elapsed;
-     char loadavg[32];
--    int i;
-+    int i, havetwosix = 0, lastdisk;
-     static int have_m_c = -1;	/* Do we have cache info? */
-     static int have_m_l = -1;	/* Do we have new-style-one-datum-per-line? */
-+    char devicename[10];
-+    char *last;
-+    unsigned int q,w,a,s,d,f,g,h,j,k,l,y,x;
-+    int disk_counter = 0, ret;
- 
- 
- /**** /proc/uptime ****/
-@@ -237,6 +243,50 @@
- 
-     printf ("Bootup: %s    Load average: %s\n\n", booted, loadavg);
- 
-+/**** /proc/vmstat ... 2.6.x kernel only ****/
-+	if (vmstatfp) {
-+		havetwosix = 1;
-+		fseek (vmstatfp, 0L, SEEK_SET);
-+		while (fgets (line, sizeof (line), vmstatfp)) {
-+			char *type = strtok (line, " ");
-+			if (ISSTR ("pgpgin")) {
-+				new.pgin = VAL;
-+			} else if (ISSTR ("pgpgout")) {
-+				new.pgout = VAL;
-+			} else if (ISSTR ("pgactivate")) {
-+				new.pgac = VAL;
-+			} else if (ISSTR ("pgdeactivate")) {
-+				new.pgdeac = VAL;
-+			} else if (ISSTR ("pgfault")) {
-+				new.pgfault = VAL;
-+			} else if (ISSTR ("pswpin")) {
-+				new.swin = VAL;
-+			} else if (ISSTR ("pswpout")) {
-+				new.swout = VAL;
-+			}
-+		}
-+	}
-+
-+/**** /proc/diskstats ... 2.6.x kernel only ****/
-+   if (diskstatsfp) {
-+	havetwosix = 1;
-+	fseek (diskstatsfp, 0L, SEEK_SET);
-+	while (fgets (line, sizeof (line), diskstatsfp)) {
-+	   char *type = strtok (line, "\n");
-+		   ret = sscanf (type, "%d%d%s%d%d%d%d%d%d%d%d%d%d%d", &q, &w, devicename, &a, &s, &d, &f, &g, &h, &j, &k, &l, &y, &x);
-+		   if (ret != 14) /* Everything with less than 14 elements is not a disk device */
-+			   continue;
-+         last = devicename+strlen(devicename)-1;
-+         if (isalpha(*last)) {/* Is the last char is a number ignore it .. like fd0 */
-+            if (++disk_counter > 7) /* 7 disks is all we have room for */
-+               continue;
-+            else {
-+               new.disk_r[disk_counter-1] = a;
-+               new.disk_w[disk_counter-1] = g;
-+            }
-+         }
-+      }
-+   }
- 
- /**** /proc/stat ****/
- 
-@@ -249,6 +299,9 @@
- 	    new.cpu_nice = VAL;
- 	    new.cpu_sys = VAL;
- 	    new.cpu_idle = VAL;
-+	    new.cpu_iowait = VAL;
-+	    new.cpu_hirq = VAL;
-+	    new.cpu_sirq = VAL;
- 	    /*
- 	     * according to bug #1959, sometimes the cpu_idle
- 	     * seems to go backwards(!) on SMP boxes.  This may
-@@ -262,34 +315,54 @@
- 	    new.disk[1] = VAL;
- 	    new.disk[2] = VAL;
- 	    new.disk[3] = VAL;
-+	    new.disk[4] = VAL;
-+	    new.disk[5] = VAL;
-+	    new.disk[6] = VAL;
- 	} else if (ISSTR ("disk_rio") && io_or_blk == 0) {
- 	    new.disk_r[0] = VAL;
- 	    new.disk_r[1] = VAL;
- 	    new.disk_r[2] = VAL;
- 	    new.disk_r[3] = VAL;
-+	    new.disk_r[4] = VAL;
-+	    new.disk_r[5] = VAL;
-+	    new.disk_r[6] = VAL;
-+	} else if (ISSTR ("disk_wio") && io_or_blk == 0) {
-+	    new.disk_w[0] = VAL;
-+	} else if (ISSTR ("disk_wio") && io_or_blk == 0) {
-+	    new.disk_w[0] = VAL;
-+	} else if (ISSTR ("disk_wio") && io_or_blk == 0) {
-+	    new.disk_w[0] = VAL;
- 	} else if (ISSTR ("disk_wio") && io_or_blk == 0) {
- 	    new.disk_w[0] = VAL;
- 	    new.disk_w[1] = VAL;
- 	    new.disk_w[2] = VAL;
- 	    new.disk_w[3] = VAL;
-+	    new.disk_w[4] = VAL;
-+	    new.disk_w[5] = VAL;
-+	    new.disk_w[6] = VAL;
- 	} else if (ISSTR ("disk_rblk") && io_or_blk == 1) {
- 	    new.disk_r[0] = VAL;
- 	    new.disk_r[1] = VAL;
- 	    new.disk_r[2] = VAL;
- 	    new.disk_r[3] = VAL;
-+	    new.disk_r[4] = VAL;
-+	    new.disk_r[5] = VAL;
-+	    new.disk_r[6] = VAL;
- 	} else if (ISSTR ("disk_wblk") && io_or_blk == 1) {
- 	    new.disk_w[0] = VAL;
- 	    new.disk_w[1] = VAL;
- 	    new.disk_w[2] = VAL;
- 	    new.disk_w[3] = VAL;
-+	    new.disk_w[4] = VAL;
-+	    new.disk_w[5] = VAL;
-+	    new.disk_w[6] = VAL;
- 	} else if (ISSTR ("disk_io:")) {
--	    int disk_counter = 0, ret;
- 	    unsigned int q, w, e, r, t, y, u; /* I'm NOT in the mood today. */
- 	    char *barf;
- 
- 	    while ((barf = strtok (NULL, " "))) {
- 
--		if (++disk_counter > 4) /* 4 is all we have room for */
-+		if (++disk_counter > 7) /* 7 is all we have room for */
- 		    continue;
- 
- 		ret = sscanf (barf, "(%d,%d):(%d,%d,%d,%d,%d)",
-@@ -374,7 +447,10 @@
- 
-     printf ("system: %s %s",
- 	    hms (bDIFF (cpu_sys)), perc (bDIFF (cpu_sys), elapsed, nr_cpus));
--    printf ("  swap in :%9lu", bDIFF (swin));
-+    if (havetwosix)
-+        printf ("  page act:%9lu", bDIFF (pgac));
-+    else
-+        printf ("  swap in :%9lu", bDIFF (swin));
-     if (new.disk_r[2])
- 	printf ("  disk 3: %8lur%8luw\n", bDIFF (disk_r[2]),
- 		bDIFF (disk_w[2]));
-@@ -383,14 +459,53 @@
-     else
- 	putchar ('\n');
- 
-+    if (havetwosix) {
-+        printf ("IOwait: %s %s",
-+            hms (bDIFF (cpu_iowait)), perc (bDIFF (cpu_iowait), elapsed, nr_cpus));
-+        printf ("  page dea:%9lu", bDIFF (pgdeac));
-+        if (new.disk_r[3])
-+	    printf ("  disk 4: %8lur%8luw\n", bDIFF (disk_r[3]),
-+		bDIFF (disk_w[3]));
-+        else if (new.disk[3])
-+	    printf ("  disk 4: %8lu\n", bDIFF (disk[3]));
-+        else
-+	    putchar ('\n');
-+
-+        printf ("hw irq: %s %s",
-+            hms (bDIFF (cpu_hirq)), perc (bDIFF (cpu_hirq), elapsed, nr_cpus));
-+        printf ("  page flt:%9lu", bDIFF (pgfault));
-+        if (new.disk_r[4])
-+	    printf ("  disk 5: %8lur%8luw\n", bDIFF (disk_r[4]),
-+		bDIFF (disk_w[4]));
-+        else if (new.disk[4])
-+	    printf ("  disk 5: %8lu\n", bDIFF (disk[4]));
-+        else
-+	    putchar ('\n');
-+
-+        printf ("sw irq: %s %s",
-+            hms (bDIFF (cpu_sirq)), perc (bDIFF (cpu_sirq), elapsed, nr_cpus));
-+        printf ("  swap in :%9lu", bDIFF (swin));
-+        if (new.disk_r[5])
-+	    printf ("  disk 6: %8lur%8luw\n", bDIFF (disk_r[5]),
-+		bDIFF (disk_w[5]));
-+        else if (new.disk[5])
-+	    printf ("  disk 6: %8lu\n", bDIFF (disk[5]));
-+        else
-+	    putchar ('\n');
-+    }
-+
-     printf ("idle  : %s %s",
- 	    hms (bDIFF (cpu_idle)), perc (bDIFF (cpu_idle), elapsed, nr_cpus));
-     printf ("  swap out:%9lu", bDIFF (swout));
--    if (new.disk_r[3])
--	printf ("  disk 4: %8lur%8luw\n", bDIFF (disk_r[3]),
--		bDIFF (disk_w[3]));
--    else if (new.disk[3])
--	printf ("  disk 4: %8lu\n", bDIFF (disk[3]));
-+    if (havetwosix)
-+        lastdisk = 5;
-+    else
-+        lastdisk = 2;
-+    if (new.disk_r[lastdisk])
-+	printf ("  disk %d: %8lur%8luw\n", lastdisk+1, bDIFF (disk_r[lastdisk]),
-+		bDIFF (disk_w[lastdisk]));
-+    else if (new.disk[lastdisk])
-+	printf ("  disk %d: %8lu\n", lastdisk+1, bDIFF (disk[lastdisk]));
-     else
- 	putchar ('\n');
- 
-@@ -786,6 +901,8 @@
-     meminfofp = myfopen (PROC_DIR "meminfo");
-     statfp = myfopen (PROC_DIR "stat");
-     /* These may be missing, so check for NULL later. */
-+    diskstatsfp = fopen (PROC_DIR "diskstats", "r");
-+    vmstatfp = fopen (PROC_DIR "vmstat", "r");
-     modulesfp = fopen (PROC_DIR "modules", "r");
-     devicesfp = fopen (PROC_DIR "devices", "r");
-     filesystemsfp = fopen (PROC_DIR "filesystems", "r");
-@@ -990,6 +1107,9 @@
- 			new.disk_r[1] = new.disk_w[1] =
- 			new.disk_r[2] = new.disk_w[2] =
- 			new.disk_r[3] = new.disk_w[3] = 0;
-+			new.disk_r[4] = new.disk_w[4] = 0;
-+			new.disk_r[5] = new.disk_w[5] = 0;
-+			new.disk_r[6] = new.disk_w[6] = 0;
- 		    redrawn = 1;
- 		    message = io_or_blk ? "showing I/O in blocks" :
- 			"showing I/O per requests";
-diff -ruN procinfo-18/procinfo.h procinfo-19/procinfo.h
---- procinfo-18/procinfo.h	2001-02-25 00:30:45.000000000 +0100
-+++ procinfo-19/procinfo.h	2005-07-02 17:37:54.000000000 +0200
-@@ -3,9 +3,10 @@
-   procinfo.h
- 
-   Date:        1995-04-15 23:54:06
--  Last Change: 2001-02-24 23:43:08
-+  Last Change: 2005-07-02 17:37:32
- 
-   Copyright (C) 1995-2001 Sander van Malssen <svm@kozmix.cistron.nl>
-+  Copyright (c) 2004-2005 procinfo@meisel.cc (upgrades for 2.6 kernel)
- 
-   This software is released under the GNU Public Licence. See the file
-   `COPYING' for details. Since you're probably running Linux I'm sure
-@@ -47,7 +48,7 @@
- 			  new.x)
- 
- #define bDIFF(x)	(show_diff ? \
--			 (unsigned long) (((new.x)-(old.x))/rate) : \
-+			 (unsigned long) ((((new.x)-(old.x))/rate)*10) : \
- 		 	 (show_from_baseline ? \
- 			  new.x - base.x : new.x))
- 
-@@ -81,11 +82,11 @@
-     unsigned long uptime;
-     long m_to, m_us, m_fr, m_sh, m_bu, m_ca;
-     long s_to, s_us, s_fr;
--    unsigned long cpu_user, cpu_nice, cpu_sys, cpu_idle;
--    unsigned long disk[5];
--    unsigned long disk_r[5];
--    unsigned long disk_w[5];
--    unsigned long pgin, pgout, swin, swout;
-+    unsigned long cpu_user, cpu_nice, cpu_sys, cpu_idle, cpu_iowait, cpu_hirq, cpu_sirq;
-+    unsigned long disk[8];
-+    unsigned long disk_r[8];
-+    unsigned long disk_w[8];
-+    unsigned long pgin, pgout, pgac, pgdeac, pgfault, swin, swout;
-     unsigned long *intr;	/* Phew. That's better. */
-     unsigned long old_intr;
-     unsigned long ctxt;
-diff -ruN procinfo-18/routines.c procinfo-19/routines.c
---- procinfo-18/routines.c	2001-02-25 00:30:45.000000000 +0100
-+++ procinfo-19/routines.c	2005-07-02 17:18:36.000000000 +0200
-@@ -388,9 +388,13 @@
- hms (unsigned long t)
- {
-     unsigned int d, h, m, s;
-+    unsigned long q;
-     static char buf[22];
- 
--    t = t * 100 / HZ;
-+    q = 100 / HZ; /* We need this because the libc does something funny here */
-+                  /* if we try to use: t = t * 100 / HZ; here! */
-+                  /* procinfo@meisel.cc 11. Feb. 2004 */
-+    t = t * q;
-     d = (int) (t / 8640000);
-     t = t - (long) (d * 8640000);
-     h = (int) (t / 360000);
-@@ -424,6 +428,7 @@
-     /* if (v > 1000)
- 	return "+++.+%";
-     else */
-+	//sprintf (buf, "%3u.%u%%", v, v % 10);
- 	sprintf (buf, "%3u.%u%%", v / 10, v % 10);
-     return buf;
- }
-- 
cgit v0.12


From cea0f9b0ffb5e0947f588251b197593b39f44858 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:54:36 -0700
Subject: python:Bumped/Updated for LinHES 7.

---
 abs/core-testing/python/PKGBUILD                |  36 +++----
 abs/core-testing/python/python-2.6-db-4.8.patch | 123 ++++++++++++++++++++++++
 2 files changed, 142 insertions(+), 17 deletions(-)
 create mode 100644 abs/core-testing/python/python-2.6-db-4.8.patch

diff --git a/abs/core-testing/python/PKGBUILD b/abs/core-testing/python/PKGBUILD
index 16ebac5..6de8863 100644
--- a/abs/core-testing/python/PKGBUILD
+++ b/abs/core-testing/python/PKGBUILD
@@ -1,42 +1,41 @@
-# $Id: PKGBUILD 20912 2008-12-07 08:52:24Z allan $
+# $Id: PKGBUILD 75257 2010-04-01 05:30:58Z allan $
 # Maintainer: Allan McRae <allan@archlinux.org>
 # Contributer: Jason Chu <jason@archlinux.org>
 
 pkgname=python
-pkgver=2.6.1
-pkgrel=1
+pkgver=2.6.5
+pkgrel=3
 _pybasever=2.6
 pkgdesc="A high-level scripting language"
 arch=('i686' 'x86_64')
-license=('custom')
+license=('PSF')
 url="http://www.python.org"
-depends=('db' 'bzip2' 'gdbm' 'openssl>=0.9.8d' 'zlib')
-makedepends=('tk>=8.5.0' 'sqlite3')
+depends=('db>=4.8' 'bzip2' 'gdbm' 'openssl' 'zlib' 'expat' 'sqlite3')
+makedepends=('tk>=8.5.0')
 optdepends=('tk: for IDLE, pynche and modulator')
-provides=('python-elementtree' 'python-ctypes')
+provides=('python2' 'python-elementtree' 'python-ctypes')
 replaces=('python-elementtree' 'python-ctypes')
 source=(http://www.python.org/ftp/python/${pkgver}/Python-${pkgver}.tar.bz2
 	python-2.6-internal-expat.patch
-	python-2.6-gdbm.patch
+	python-2.6-db-4.8.patch
 	modulator-launcher
 	pynche-launcher)
-md5sums=('e81c2f0953aa60f8062c05a4673f2be0'
+md5sums=('6bef0417e71a1a1737ccf5750420fdb3'
          '993800dbcc0c4f199c1ceee998a06e71'
-         '13fab4bb2cacbc433e62d7191a17f71e'
+         '10eb5449ead95b9cb13eae9f9a65894e'
          'b4a531570415280dc406c8d5c1fa8d83'
          '9f731b9033db285132a3524fb36409e7')
 
-
 build() {
   cd ${srcdir}/Python-${pkgver}
 
   patch -Np0 -i ${srcdir}/python-2.6-internal-expat.patch
-  patch -Np1 -i ${srcdir}/python-2.6-gdbm.patch
 
+  #http://bugs.python.org/issue6949
+  patch -Np0 -i ${srcdir}/python-2.6-db-4.8.patch
+
+  export OPT="${CFLAGS}"
   ./configure --prefix=/usr --enable-shared --with-threads --enable-unicode
-  
-  # temporary backwards compatibility stuff...
-  sed -i 's#SITEPATH=#SITEPATH=:/usr/lib/python2.5/site-packages#' Makefile
 
   make || return 1
   make DESTDIR=${pkgdir} install
@@ -45,6 +44,9 @@ build() {
   ln -sf python${_pybasever} ${pkgdir}/usr/bin/python
   ln -sf python${_pybasever} ${pkgdir}/usr/bin/python2
 
+  ln -sf ../../libpython${_pybasever}.so \
+    ${pkgdir}/usr/lib/python${_pybasever}/config/libpython${_pybasever}.so
+
   # Install the tools
   #modulator
   sed -i "s#%%PYBASEVER%%#${_pybasever}#" ${srcdir}/modulator-launcher
@@ -62,8 +64,8 @@ build() {
   install -m755 Tools/i18n/msgfmt.py ${pkgdir}/usr/bin/
 
   mkdir -p ${pkgdir}/usr/lib/python${_pybasever}/Tools/scripts
-  install Tools/scripts/README ${pkgdir}/usr/lib/python${_pybasever}/Tools/scripts/
-  install Tools/scripts/*py ${pkgdir}/usr/lib/python${_pybasever}/Tools/scripts/
+  install -m644 Tools/scripts/README ${pkgdir}/usr/lib/python${_pybasever}/Tools/scripts/
+  install -m755 Tools/scripts/*py ${pkgdir}/usr/lib/python${_pybasever}/Tools/scripts/
 
   # license
   install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
diff --git a/abs/core-testing/python/python-2.6-db-4.8.patch b/abs/core-testing/python/python-2.6-db-4.8.patch
new file mode 100644
index 0000000..2032f92
--- /dev/null
+++ b/abs/core-testing/python/python-2.6-db-4.8.patch
@@ -0,0 +1,123 @@
+Index: setup.py
+===================================================================
+--- setup.py	(revision 74955)
++++ setup.py	(working copy)
+@@ -695,7 +695,7 @@
+         # a release.  Most open source OSes come with one or more
+         # versions of BerkeleyDB already installed.
+ 
+-        max_db_ver = (4, 7)
++        max_db_ver = (4, 8)
+         min_db_ver = (3, 3)
+         db_setup_debug = False   # verbose debug prints from this script?
+ 
+Index: Modules/_bsddb.c
+===================================================================
+--- Modules/_bsddb.c	(revision 74955)
++++ Modules/_bsddb.c	(working copy)
+@@ -215,7 +215,11 @@
+ #define	DB_BUFFER_SMALL		ENOMEM
+ #endif
+ 
++#if (DBVER < 48)
++#define DB_GID_SIZE DB_XIDDATASIZE
++#endif
+ 
++
+ /* --------------------------------------------------------------------- */
+ /* Structure definitions */
+ 
+@@ -4501,7 +4505,11 @@
+     DBTxnObject *txn;
+ #define PREPLIST_LEN 16
+     DB_PREPLIST preplist[PREPLIST_LEN];
++#if (DBVER < 48)
+     long retp;
++#else
++    u_int32_t retp;
++#endif
+ 
+     CHECK_ENV_NOT_CLOSED(self);
+ 
+@@ -4522,7 +4530,7 @@
+         flags=DB_NEXT;  /* Prepare for next loop pass */
+         for (i=0; i<retp; i++) {
+             gid=PyBytes_FromStringAndSize((char *)(preplist[i].gid),
+-                                DB_XIDDATASIZE);
++                                DB_GID_SIZE);
+             if (!gid) {
+                 Py_DECREF(list);
+                 return NULL;
+@@ -5047,6 +5055,7 @@
+ }
+ 
+ 
++#if (DBVER < 48)
+ static PyObject*
+ DBEnv_set_rpc_server(DBEnvObject* self, PyObject* args, PyObject* kwargs)
+ {
+@@ -5068,6 +5077,7 @@
+     RETURN_IF_ERR();
+     RETURN_NONE();
+ }
++#endif
+ 
+ static PyObject*
+ DBEnv_set_verbose(DBEnvObject* self, PyObject* args)
+@@ -5947,9 +5957,9 @@
+     if (!PyArg_ParseTuple(args, "s#:prepare", &gid, &gid_size))
+         return NULL;
+ 
+-    if (gid_size != DB_XIDDATASIZE) {
++    if (gid_size != DB_GID_SIZE) {
+         PyErr_SetString(PyExc_TypeError,
+-                        "gid must be DB_XIDDATASIZE bytes long");
++                        "gid must be DB_GID_SIZE bytes long");
+         return NULL;
+     }
+ 
+@@ -6539,8 +6549,10 @@
+ #endif
+     {"set_get_returns_none",(PyCFunction)DBEnv_set_get_returns_none, METH_VARARGS},
+     {"txn_recover",     (PyCFunction)DBEnv_txn_recover,       METH_NOARGS},
++#if (DBVER < 48)
+     {"set_rpc_server",  (PyCFunction)DBEnv_set_rpc_server,
+         METH_VARARGS||METH_KEYWORDS},
++#endif
+     {"set_verbose",     (PyCFunction)DBEnv_set_verbose,       METH_VARARGS},
+ #if (DBVER >= 42)
+     {"get_verbose",     (PyCFunction)DBEnv_get_verbose,       METH_VARARGS},
+@@ -7089,6 +7101,7 @@
+     ADD_INT(d, DB_MAX_PAGES);
+     ADD_INT(d, DB_MAX_RECORDS);
+ 
++#if (DBVER < 48)
+ #if (DBVER >= 42)
+     ADD_INT(d, DB_RPCCLIENT);
+ #else
+@@ -7096,7 +7109,11 @@
+     /* allow apps to be written using DB_RPCCLIENT on older Berkeley DB */
+     _addIntToDict(d, "DB_RPCCLIENT", DB_CLIENT);
+ #endif
++#endif
++
++#if (DBVER < 48)
+     ADD_INT(d, DB_XA_CREATE);
++#endif
+ 
+     ADD_INT(d, DB_CREATE);
+     ADD_INT(d, DB_NOMMAP);
+@@ -7113,7 +7130,13 @@
+     ADD_INT(d, DB_INIT_TXN);
+     ADD_INT(d, DB_JOINENV);
+ 
++#if (DBVER >= 48)
++    ADD_INT(d, DB_GID_SIZE);
++#else
+     ADD_INT(d, DB_XIDDATASIZE);
++    /* Allow new code to work in old BDB releases */
++    _addIntToDict(d, "DB_GID_SIZE", DB_XIDDATASIZE);
++#endif
+ 
+     ADD_INT(d, DB_RECOVER);
+     ADD_INT(d, DB_RECOVER_FATAL);
-- 
cgit v0.12


From 9b15f4050d73e78c5c8bd070692753cc268e3238 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:54:58 -0700
Subject: qt:Bumped/Updated for LinHES 7.

---
 abs/core-testing/qt/PKGBUILD                       | 103 +++++++++------------
 abs/core-testing/qt/QtWebKit_Flash.patch           |  48 ----------
 abs/core-testing/qt/assistant.desktop              |   2 +-
 abs/core-testing/qt/ca-certificates.patch          |  25 +++++
 abs/core-testing/qt/designer.desktop               |   2 +-
 abs/core-testing/qt/linguist.desktop               |   2 +-
 abs/core-testing/qt/qdoc3.patch                    |  25 -----
 .../qt/qt-webkit-4.6.3-flash-plugin-segfault.patch |  43 +++++++++
 abs/core-testing/qt/qt.install                     |  11 +++
 abs/core-testing/qt/qtconfig.desktop               |   2 +-
 10 files changed, 129 insertions(+), 134 deletions(-)
 mode change 100755 => 100644 abs/core-testing/qt/PKGBUILD
 delete mode 100644 abs/core-testing/qt/QtWebKit_Flash.patch
 create mode 100644 abs/core-testing/qt/ca-certificates.patch
 delete mode 100644 abs/core-testing/qt/qdoc3.patch
 create mode 100644 abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch
 create mode 100644 abs/core-testing/qt/qt.install

diff --git a/abs/core-testing/qt/PKGBUILD b/abs/core-testing/qt/PKGBUILD
old mode 100755
new mode 100644
index e315180..75e4737
--- a/abs/core-testing/qt/PKGBUILD
+++ b/abs/core-testing/qt/PKGBUILD
@@ -1,43 +1,23 @@
-# $Id$
+# $Id: PKGBUILD 82062 2010-06-08 11:58:32Z pierre $
 # Maintainer: Pierre Schmitz <pierre@archlinux.de>
 
 pkgname=qt
-pkgver=4.5.2
-pkgrel=5
-_kdeqtver=2d1727e396d5dca24ae0fb6a45d35ffc1abd0c12
+pkgver=4.6.3
+pkgrel=2
 pkgdesc='A cross-platform application and UI framework'
 arch=('i686' 'x86_64')
-url='http://www.qt.nokia.com/'
+url='http://qt.nokia.com/'
 license=('GPL3' 'LGPL')
-depends=('libpng' 'mesa' 'fontconfig' 'libtiff>=3.8.2-5' 'libmng>=1.0.10-2' 'sqlite3'
-         'libxrandr' 'glib2' 'libxi' 'dbus' 'libxcursor' 'libxinerama' 'libxrender')
+depends=('libpng' 'fontconfig' 'libtiff' 'libmng' 'sqlite3' 'xdg-utils' 'ca-certificates'
+         'hicolor-icon-theme' 'alsa-lib' 'glib2' 'dbus' 'libxrender' 'libgl' 'libsm')
 optdepends=('postgresql-libs' 'libmysqlclient' 'unixodbc')
-makedepends=('inputproto' 'postgresql-libs' 'mysql' 'unixodbc' 'libxfixes' 'gtk2')
-provides=("qt4=${pkgver}")
-replaces=('qt4')
-conflicts=('qt4')
+makedepends=('mesa' 'inputproto' 'postgresql-libs' 'mysql' 'unixodbc' 'libxfixes' 'gtk2')
+install=qt.install
 options=('!libtool')
-_pkgfqn="qt-x11-opensource-src-${pkgver}"
-source=("http://get.qt.nokia.com/qt/source/${_pkgfqn}.tar.bz2"
-        "ftp://ftp.archlinux.org/other/kde-qt/kde-qt-patches-${_kdeqtver}.tar.bz2"
+_pkgfqn="qt-everywhere-opensource-src-${pkgver}"
+source=("ftp://ftp.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz"
         'assistant.desktop' 'designer.desktop' 'linguist.desktop' 'qtconfig.desktop'
-        'qdoc3.patch' 'QtWebKit_Flash.patch')
-
-_create-kdeqt-patches() {
-	local codir=$(mktemp -d)
-	mkdir -p "${codir}/kde-qt"
-	git clone git://gitorious.org/+kde-developers/qt/kde-qt.git "${codir}/kde-qt"
-	pushd "${codir}/kde-qt"
-	local kdeqtver=$(git --no-pager show --format='%H' "${pkgver}-patched")
-	mkdir "../kde-qt-patches-${kdeqtver}"
-	git format-patch -k "v${pkgver}..${pkgver}-patched" -o "../kde-qt-patches-${kdeqtver}"
-	popd
-	pushd "${codir}"
-	bsdtar -cjf "kde-qt-patches-${kdeqtver}.tar.bz2" kde-qt-patches-${kdeqtver}
-	popd
-	mv "${codir}/kde-qt-patches-${kdeqtver}.tar.bz2" .
-	rm -rf "${codir}"
-}
+        'ca-certificates.patch' 'qt-webkit-4.6.3-flash-plugin-segfault.patch')
 
 build() {
 	unset QMAKESPEC
@@ -46,16 +26,15 @@ build() {
 	export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
 
 	cd $srcdir/$_pkgfqn
-	for i in $srcdir/kde-qt-patches-${_kdeqtver}/*; do
-		echo "applying $i"
-		patch -p1 -i $i || return 1
-	done
 
-	patch -p0 -i $srcdir/qdoc3.patch
-	patch < $srcdir/QtWebKit_Flash.patch ${srcdir}/${_pkgfqn}/src/3rdparty/webkit/WebCore/plugins/qt/PluginPackageQt.cpp || return 1
+	# see http://cvs.fedoraproject.org/viewvc/rpms/qt/devel/
+	# use system ssl cert bundle
+	patch -p1 -i $srcdir/ca-certificates.patch || return 1
+	patch -p0 < $srcdir/qt-webkit-4.6.3-flash-plugin-segfault.patch || return 1
 
 	sed -i "s|-O2|$CXXFLAGS|" mkspecs/common/g++.conf
 	sed -i "/^QMAKE_RPATH/s| -Wl,-rpath,||g" mkspecs/common/g++.conf
+	sed -i "/^QMAKE_LFLAGS\s/s|+=|+= $LDFLAGS|g" mkspecs/common/g++.conf
 
 	./configure -confirm-license -opensource \
 		-prefix /usr \
@@ -71,6 +50,7 @@ build() {
 		-system-sqlite \
 		-xmlpatterns \
 		-no-phonon \
+		-no-phonon-backend \
 		-svg \
 		-webkit \
 		-scripttools \
@@ -87,35 +67,44 @@ build() {
 		-silent \
 		-optimized-qmake \
 		-dbus \
-		-reduce-relocations \
 		-no-separate-debug-info \
+		-reduce-relocations \
 		-gtkstyle \
 		-opengl \
+		-no-openvg \
 		-glib
-
 	make
+}
+
+package() {
+	cd $srcdir/$_pkgfqn
 	make INSTALL_ROOT=$pkgdir install
 
-	install -D -m644 tools/assistant/tools/assistant/images/assistant.png ${pkgdir}/usr/share/pixmaps/assistant.png
-	install -D -m644 tools/linguist/linguist/images/appicon.png ${pkgdir}/usr/share/pixmaps/linguist.png
-	install -D -m644 tools/designer/src/designer/images/designer.png ${pkgdir}/usr/share/pixmaps/designer.png
-	install -D -m644 src/gui/dialogs/images/qtlogo-64.png ${pkgdir}/usr/share/pixmaps/qtlogo.png
+	# install missing icons and desktop files
+	for icon in tools/linguist/linguist/images/icons/linguist-*-32.png ; do
+		size=$(echo $(basename ${icon}) | cut -d- -f2)
+		install -p -D -m644 ${icon} ${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/linguist.png
+	done
+	install -p -D -m644 src/gui/dialogs/images/qtlogo-64.png ${pkgdir}/usr/share/icons/hicolor/64x64/apps/qtlogo.png
+	install -p -D -m644 tools/assistant/tools/assistant/images/assistant.png ${pkgdir}/usr/share/icons/hicolor/32x32/apps/assistant.png
+	install -p -D -m644 tools/designer/src/designer/images/designer.png ${pkgdir}/usr/share/icons/hicolor/128x128/apps/designer.png
 	install -d ${pkgdir}/usr/share/applications
 	install -m644 ${srcdir}/{linguist,designer,assistant,qtconfig}.desktop ${pkgdir}/usr/share/applications/
+
+	# install license addition
 	install -D -m644 LGPL_EXCEPTION.txt ${pkgdir}/usr/share/licenses/qt/LGPL_EXCEPTION.txt
 
-	# cleanup and path fixes
-	find $pkgdir/usr/lib -type f -name '*prl' -print -exec sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" {} \;
-	sed -i -e "s|-L$srcdir/${_pkgfqn}/lib||g" $pkgdir/usr/lib/pkgconfig/*.pc
-	sed -i -e "s|$srcdir/${_pkgfqn}/bin/moc|/usr/bin/moc|g" $pkgdir/usr/lib/pkgconfig/*.pc
-	sed -i -e "s|$srcdir/${_pkgfqn}/bin/uic|/usr/bin/uic|g" $pkgdir/usr/lib/pkgconfig/*.pc
+	# Fix wrong path in pkgconfig files
+	find ${pkgdir}/usr/lib/pkgconfig -type f -name '*.pc' \
+		-exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \;
+	# Fix wrong path in prl files
+	find ${pkgdir}/usr/lib -type f -name '*.prl' \
+		-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
 }
-
-md5sums=('28a7e8ac9805a6f614d2a27ee1a6ac9d'
-         '4b333add3031f59538629b35858178d9'
-         'b352b4b70faba2571af3fce5d119580a'
-         '491a96682faa03407f768a53cca71db5'
-         'cda7ed7e132689991dc2968a0043b4b0'
-         '717669b728a0a795217d2f52969e454c'
-         '9c0a0db3569e889a54a6cddcd55c538c'
-         '0e2f5e43ed9dba32816fd4142b021762')
+md5sums=('5c69f16d452b0bb3d44bc3c10556c072'
+         'a445c6917086d80f1cfc1e40cb6b0132'
+         'd457f0a0ad68a3861c3cadefe3b42ded'
+         '668331d9798a0e2b94381efb7be4c513'
+         'c29f2993d6a0f73d756d2fa36e130e1c'
+         'd5c4cad7af93f1d736d4569a207bd739'
+         '17382f5532888268bb50d1ab47e5fa19')
diff --git a/abs/core-testing/qt/QtWebKit_Flash.patch b/abs/core-testing/qt/QtWebKit_Flash.patch
deleted file mode 100644
index 102f73c..0000000
--- a/abs/core-testing/qt/QtWebKit_Flash.patch
+++ /dev/null
@@ -1,48 +0,0 @@
---- PluginPackageQt.cpp.orig	2010-06-30 21:29:47.178707288 +0000
-+++ PluginPackageQt.cpp	2010-06-30 21:35:40.185441603 +0000
-@@ -36,6 +36,8 @@
- 
- namespace WebCore {
- 
-+typedef void gtkInitFunc(int *argc, char ***argv); 
-+
- bool PluginPackage::fetchInfo()
- {
-     if (!load())
-@@ -100,7 +102,8 @@
- 
-     NP_InitializeFuncPtr NP_Initialize;
-     NPError npErr;
--
-+    gtkInitFunc* gtkInit;
-+    
-     NP_Initialize = (NP_InitializeFuncPtr)m_module->resolve("NP_Initialize");
-     m_NPP_Shutdown = (NPP_ShutdownProcPtr)m_module->resolve("NP_Shutdown");
- 
-@@ -157,6 +160,26 @@
-     m_browserFuncs.enumerate = _NPN_Enumerate;
-     m_browserFuncs.construct = _NPN_Construct;
- 
-+    // WORKAROUND: Prevent gtk based plugin crashes such as BR# 40567 by
-+    // explicitly forcing the initializing of Gtk, i.e. calling gtk_init,
-+    // whenver the symbol is present in the plugin library loaded above.
-+    // Note that this workaround is based on code from the NSPluginClass ctor
-+    // in KDE's kdebase/apps/nsplugins/viewer/nsplugin.cpp file.
-+    gtkInit = (gtkInitFunc*)m_module->resolve("gtk_init");
-+    if (gtkInit) {
-+        // Prevent gtk_init() from replacing the X error handlers, since the Gtk
-+        // handlers abort when they receive an X error, thus killing the viewer.
-+#ifdef Q_WS_X11
-+        int (*old_error_handler)(Display*, XErrorEvent*) = XSetErrorHandler(0);
-+        int (*old_io_error_handler)(Display*) = XSetIOErrorHandler(0);
-+#endif
-+        gtkInit(0, 0);
-+#ifdef Q_WS_X11
-+        XSetErrorHandler(old_error_handler);
-+        XSetIOErrorHandler(old_io_error_handler);
-+#endif
-+}
-+
- #if defined(XP_UNIX)
-     npErr = NP_Initialize(&m_browserFuncs, &m_pluginFuncs);
- #else
diff --git a/abs/core-testing/qt/assistant.desktop b/abs/core-testing/qt/assistant.desktop
index 48105b9..1b9f0a7 100644
--- a/abs/core-testing/qt/assistant.desktop
+++ b/abs/core-testing/qt/assistant.desktop
@@ -2,7 +2,7 @@
 Exec=/usr/bin/assistant
 Name=Qt Assistant
 GenericName=Qt Document Browser
-Icon=/usr/share/pixmaps/assistant.png
+Icon=assistant
 Terminal=false
 Type=Application
 Categories=Qt;Development;Documentation
diff --git a/abs/core-testing/qt/ca-certificates.patch b/abs/core-testing/qt/ca-certificates.patch
new file mode 100644
index 0000000..02ebbad
--- /dev/null
+++ b/abs/core-testing/qt/ca-certificates.patch
@@ -0,0 +1,25 @@
+diff -up qt-x11-opensource-src-4.5.3/src/network/ssl/qsslsocket_openssl.cpp.system_ca_certificates qt-x11-opensource-src-4.5.3/src/network/ssl/qsslsocket_openssl.cpp
+--- qt-x11-opensource-src-4.5.3/src/network/ssl/qsslsocket_openssl.cpp.system_ca_certificates	2009-09-29 06:01:38.000000000 -0500
++++ qt-x11-opensource-src-4.5.3/src/network/ssl/qsslsocket_openssl.cpp	2009-10-02 11:20:10.674662746 -0500
+@@ -482,8 +482,20 @@ void QSslSocketPrivate::resetDefaultCiph
+ 
+ QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
+ {
++
++    QFile caBundle;
++
++#ifdef Q_OS_UNIX
++    // Check known locations for the system's default bundle.  ### On Windows,
++    // we should use CAPI to find the bundle, and not rely on default unix
++    // locations.
++    caBundle.setFileName(QLatin1String("/etc/ssl/certs/ca-certificates.crt"));
++    if (caBundle.open(QIODevice::ReadOnly | QIODevice::Text))
++       return QSslCertificate::fromDevice(&caBundle);
++#endif
++
+     // Qt provides a default bundle of certificates
+-    QFile caBundle(QLatin1String(":/trolltech/network/ssl/qt-ca-bundle.crt"));
++    caBundle.setFileName(QLatin1String(":/trolltech/network/ssl/qt-ca-bundle.crt"));
+     if (caBundle.open(QIODevice::ReadOnly | QIODevice::Text))
+         return QSslCertificate::fromDevice(&caBundle);
+ 
diff --git a/abs/core-testing/qt/designer.desktop b/abs/core-testing/qt/designer.desktop
index fefe095..8f36273 100644
--- a/abs/core-testing/qt/designer.desktop
+++ b/abs/core-testing/qt/designer.desktop
@@ -3,7 +3,7 @@ Exec=/usr/bin/designer
 Name=Qt Designer
 GenericName=Interface Designer
 MimeType=application/x-designer
-Icon=/usr/share/pixmaps/designer.png
+Icon=designer
 Terminal=false
 Type=Application
 Categories=Qt;Development;GUIDesigner
diff --git a/abs/core-testing/qt/linguist.desktop b/abs/core-testing/qt/linguist.desktop
index 04519bf..94e92c1 100644
--- a/abs/core-testing/qt/linguist.desktop
+++ b/abs/core-testing/qt/linguist.desktop
@@ -5,5 +5,5 @@ GenericName=Translation Tool
 MimeType=application/x-linguist
 Terminal=false
 Type=Application
-Icon=/usr/share/pixmaps/linguist.png
+Icon=linguist
 Categories=Qt;Development;Translation
diff --git a/abs/core-testing/qt/qdoc3.patch b/abs/core-testing/qt/qdoc3.patch
deleted file mode 100644
index c967b6e..0000000
--- a/abs/core-testing/qt/qdoc3.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- tools/qdoc3/qdoc3.pro       2009-06-25 17:34:42.000000000 +0200
-+++ tools/qdoc3/qdoc3.pro.new   2009-06-25 17:35:42.000000000 +0200
-@@ -8,6 +8,11 @@
-     CONFIG -= build_all
-     CONFIG += release
- }
-+
-+TARGET= qdoc3
-+target.path = $$[QT_INSTALL_BINS]
-+INSTALLS += target
-+
- mac:CONFIG -= app_bundle
- HEADERS += apigenerator.h \
-            archiveextractor.h \
-diff -up qt-x11-opensource-src-4.5.0/tools/tools.pro.qdoc3 qt-x11-opensource-src-4.5.0/tools/tools.pro
---- tools/tools.pro.qdoc3	2009-02-25 15:09:27.000000000 -0600
-+++ tools/tools.pro	2009-03-04 09:44:18.000000000 -0600
-@@ -13,6 +13,7 @@ no-png {
-          SUBDIRS += designer
-      }
-      SUBDIRS     += linguist
-+     SUBDIRS     += qdoc3
-      wince*: SUBDIRS = qtestlib designer
-      unix:!mac:!embedded:contains(QT_CONFIG, qt3support):SUBDIRS += qtconfig
-      win32:!wince*:!contains(QT_EDITION, OpenSource|Console):SUBDIRS += activeqt
diff --git a/abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch b/abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch
new file mode 100644
index 0000000..6fc87ca
--- /dev/null
+++ b/abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch
@@ -0,0 +1,43 @@
+This patch fixes WebKit Bug 40567: [Qt] QtWebKit crashes while initializing
+flash plugin 10.1.53.64...
+https://bugs.webkit.org/show_bug.cgi?id=40567
+
+--- src/3rdparty/webkit/WebCore/plugins/qt/PluginPackageQt.cpp
++++ src/3rdparty/webkit/WebCore/plugins/qt/PluginPackageQt.cpp
+@@ -35,4 +35,6 @@
+ 
+ namespace WebCore {
++
++typedef void gtkInitFunc(int *argc, char ***argv);
+ 
+ bool PluginPackage::fetchInfo()
+@@ -110,4 +112,5 @@
+     NP_InitializeFuncPtr NP_Initialize;
+     NPError npErr;
++    gtkInitFunc* gtkInit;
+ 
+     NP_Initialize = (NP_InitializeFuncPtr)m_module->resolve("NP_Initialize");
+@@ -126,4 +129,24 @@
+         // It does so in NP_Initialize with a null instance, therefore it is done this way:
+         m_browserFuncs.getvalue = staticPluginQuirkRequiresGtkToolKit_NPN_GetValue;
++    }
++
++    // WORKAROUND: Prevent gtk based plugin crashes such as BR# 40567 by
++    // explicitly forcing the initializing of Gtk, i.e. calling gtk_init,
++    // whenver the symbol is present in the plugin library loaded above.
++    // Note that this workaround is based on code from the NSPluginClass ctor
++    // in KDE's kdebase/apps/nsplugins/viewer/nsplugin.cpp file.
++    gtkInit = (gtkInitFunc*)m_module->resolve("gtk_init");
++    if (gtkInit) {
++        // Prevent gtk_init() from replacing the X error handlers, since the Gtk
++        // handlers abort when they receive an X error, thus killing the viewer.
++#ifdef Q_WS_X11
++        int (*old_error_handler)(Display*, XErrorEvent*) = XSetErrorHandler(0);
++        int (*old_io_error_handler)(Display*) = XSetIOErrorHandler(0);
++#endif
++        gtkInit(0, 0);
++#ifdef Q_WS_X11
++        XSetErrorHandler(old_error_handler);
++        XSetIOErrorHandler(old_io_error_handler);
++#endif
+     }
diff --git a/abs/core-testing/qt/qt.install b/abs/core-testing/qt/qt.install
new file mode 100644
index 0000000..e70c054
--- /dev/null
+++ b/abs/core-testing/qt/qt.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/abs/core-testing/qt/qtconfig.desktop b/abs/core-testing/qt/qtconfig.desktop
index 633d921..7c221e5 100644
--- a/abs/core-testing/qt/qtconfig.desktop
+++ b/abs/core-testing/qt/qtconfig.desktop
@@ -2,7 +2,7 @@
 Name=Qt Config 
 Comment=Configure Qt behavior, styles, fonts
 Exec=/usr/bin/qtconfig
-Icon=/usr/share/pixmaps/qtlogo
+Icon=qtlogo
 Terminal=false
 Type=Application
 Categories=Qt;Settings;
-- 
cgit v0.12


From e35335948d54c566151a33d116ed141b6da5f761 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:55:10 -0700
Subject: readline:Bumped/Updated for LinHES 7.

---
 abs/core-testing/readline/PKGBUILD         | 60 ++++++++++++++++++++----------
 abs/core-testing/readline/readline.install |  4 +-
 2 files changed, 42 insertions(+), 22 deletions(-)

diff --git a/abs/core-testing/readline/PKGBUILD b/abs/core-testing/readline/PKGBUILD
index e4c7716..489b22f 100644
--- a/abs/core-testing/readline/PKGBUILD
+++ b/abs/core-testing/readline/PKGBUILD
@@ -1,36 +1,56 @@
-# $Id: PKGBUILD 25790 2009-01-29 09:50:30Z allan $
+# $Id: PKGBUILD 82724 2010-06-16 04:51:23Z allan $
 # Maintainer: Andreas Radke <andyrtr@archlinux.org>
 # Contributor: judd <jvinet@zeroflux.org>
 
 pkgname=readline
-pkgver=5.2.013
-pkgrel=2
+_patchlevel=002 #prepare for some patches
+pkgver=6.1.$_patchlevel
+pkgrel=1
 pkgdesc="GNU readline library"
 arch=(i686 x86_64)
 url="http://tiswww.case.edu/php/chet/readline/rltop.html"
 license=('GPL')
-groups=('base')
 depends=('glibc' 'ncurses')
 backup=("etc/inputrc")
-source=(ftp://ftp.cwru.edu/pub/bash/readline-${pkgver}.tar.gz
-	inputrc)
-md5sums=('07666d8dabefdfc7fb328b14cd6ce843'
-         'e5fc955f56d9fa5beb871f3279b8fa8b')
+source=(http://ftp.gnu.org/gnu/readline/readline-6.1.tar.gz
+        inputrc)
+if [ $_patchlevel -gt 00 ]; then
+    for (( p=1; p<=$_patchlevel; p++ )); do
+        source=(${source[@]} http://ftp.gnu.org/gnu/readline/readline-6.1-patches/readline61-$(printf "%03d" $p))
+    done
+fi
+md5sums=('fc2f7e714fe792db1ce6ddc4c9fb4ef3'
+         'e5fc955f56d9fa5beb871f3279b8fa8b'
+         'c642f2e84d820884b0bf9fd176bc6c3f'
+         '1a76781a1ea734e831588285db7ec9b1')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
+  cd ${srcdir}/${pkgname}-6.1
+  for p in ../readline61-*; do
+    [ -e "$p" ] || continue
+    msg "applying patch ${p}"
+    patch -Np0 -i ${p} || return 1
+  done
+
+  # Remove RPATH from shared objects (FS#14366)
+  sed -i 's|-Wl,-rpath,$(libdir) ||g' support/shobj-conf
+
+  # build with -fPIC for x86_64 (FS#15634)
+  [ $CARCH == "x86_64" ] && CFLAGS="$CFLAGS -fPIC"
+
+  ./configure --prefix=/usr --libdir=/lib \
+        --mandir=/usr/share/man --infodir=/usr/share/info
   make SHLIB_LIBS=-lncurses || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR=${pkgdir} install || return 1
   
-  mkdir -p ${startdir}/pkg/etc
-  install -m644 ../inputrc ${startdir}/pkg/etc/inputrc || return 1
+  mkdir -p ${pkgdir}/etc
+  install -m644 ../inputrc ${pkgdir}/etc/inputrc || return 1
+  #FHS recommends only shared libs in /lib
+  mkdir -p $pkgdir/usr/lib
+  mv $pkgdir/lib/*.a $pkgdir/usr/lib
 
-  cd ${startdir}/pkg
-  mkdir -pv lib
-  mv -v usr/lib/lib{readline,history}.so.5* lib/ || return 1
-  ln -svf ../../lib/libreadline.so.5 usr/lib/libreadline.so || return 1
-  ln -svf ../../lib/libhistory.so.5 usr/lib/libhistory.so || return 1
-  
-  rm -f ${pkgdir}/usr/share/info/dir
+  # to make the linker find the shared lib and fix compile issues
+  cd ${pkgdir}/usr/lib
+  ln -sv /lib/libreadline.so .
+  ln -sv /lib/libhistory.so .
 }
diff --git a/abs/core-testing/readline/readline.install b/abs/core-testing/readline/readline.install
index 8e3de84..0d40c51 100644
--- a/abs/core-testing/readline/readline.install
+++ b/abs/core-testing/readline/readline.install
@@ -4,7 +4,7 @@ filelist=(history.info readline.info rluserman.info)
 post_install() {
   [ -x usr/bin/install-info ] || return 0
   for file in ${filelist[@]}; do
-    install-info $infodir/$file $infodir/dir 2> /dev/null
+    install-info $infodir/$file.gz $infodir/dir 2> /dev/null
   done
 }
 
@@ -16,7 +16,7 @@ post_upgrade() {
 pre_remove() {
   [ -x usr/bin/install-info ] || return 0
   for file in ${filelist[@]}; do
-    install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+    install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
   done
 }
 
-- 
cgit v0.12


From e5efff14b92c5221fdc711670a7fc786e8041f80 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:55:19 -0700
Subject: reiserfsprogs:Bumped/Updated for LinHES 7.

---
 abs/core-testing/reiserfsprogs/PKGBUILD | 32 +++++++++++++++-----------------
 1 file changed, 15 insertions(+), 17 deletions(-)

diff --git a/abs/core-testing/reiserfsprogs/PKGBUILD b/abs/core-testing/reiserfsprogs/PKGBUILD
index 6e3cb6d..1e20cc2 100644
--- a/abs/core-testing/reiserfsprogs/PKGBUILD
+++ b/abs/core-testing/reiserfsprogs/PKGBUILD
@@ -1,26 +1,24 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: judd <jvinet@zeroflux.org>
+# $Id: PKGBUILD 48336 2009-08-01 14:36:12Z jgc $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
 pkgname=reiserfsprogs
-pkgver=3.6.20
-pkgrel=12
+pkgver=3.6.21
+pkgrel=2
 pkgdesc="Reiserfs utilities"
 arch=(i686 x86_64)
-url="http://www.namesys.com"
+url=http://www.kernel.org/pub/linux/utils/fs/reiserfs/README
 license=('GPL')
 groups=('base')
-depends=('e2fsprogs')
-source=(ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz
-	#namesys server is down atm
-	#ftp://ftp.namesys.com/pub/$pkgname/$pkgname-$pkgver.tar.gz
-)
-md5sums=('3b3392f59c5d302cf858bc4cf194b258')
+depends=('util-linux-ng>=2.16')
+source=(http://www.kernel.org/pub/linux/utils/fs/reiserfs/reiserfsprogs-${pkgver}.tar.bz2)
+md5sums=('0639cefac8f8150536cfa7531c2aa2d2')
 
 build() {
-  export MAKEFLAGS="-j1"
-  cd $startdir/src/$pkgname-$pkgver
-  ./configure --prefix=/usr
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr --sbindir=/sbin || return 1
   make || return 1
-  make DESTDIR=$startdir/pkg install
-  mv $startdir/pkg/usr/sbin $startdir/pkg
-  #ln -s reiserfsck $startdir/pkg/sbin/fsck.reiserfs
+  make DESTDIR="${pkgdir}" install || return 1
+  ln -s reiserfsck "${pkgdir}/sbin/fsck.reiserfs"
+  ln -s mkreiserfs "${pkgdir}/sbin/mkfs.reiserfs"
 }
-- 
cgit v0.12


From 796f8e605258d511b4358b56c686a0317174b003 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:55:44 -0700
Subject: rpcbind:Bumped/Updated for LinHES 7.

---
 abs/core-testing/rpcbind/PKGBUILD | 26 ++++++++++++++++++++++++++
 abs/core-testing/rpcbind/rpcbind  | 39 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 65 insertions(+)
 create mode 100644 abs/core-testing/rpcbind/PKGBUILD
 create mode 100755 abs/core-testing/rpcbind/rpcbind

diff --git a/abs/core-testing/rpcbind/PKGBUILD b/abs/core-testing/rpcbind/PKGBUILD
new file mode 100644
index 0000000..11d8a91
--- /dev/null
+++ b/abs/core-testing/rpcbind/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 54912 2009-10-11 20:12:23Z giovanni $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=rpcbind
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="portmap replacement which supports RPC over various protocols"
+arch=(i686 x86_64)
+depends=('bash' 'glibc' 'libtirpc')
+url="http://rpcbind.sourceforge.net"
+license=('custom')
+replaces=('portmap')
+source=(http://downloads.sourceforge.net/sourceforge/rpcbind/rpcbind-0.2.0.tar.bz2 
+        rpcbind)
+md5sums=('1a77ddb1aaea8099ab19c351eeb26316'
+         '78a963654f57cbb209e228884767836e')
+
+build() {
+  cd $srcdir/$pkgname-$pkgver
+  ./configure --prefix=/usr
+  make || return 1
+  make DESTDIR=$pkgdir install || return 1
+  # install daemon 
+  install -D -m755 $srcdir/rpcbind $pkgdir/etc/rc.d/rpcbind
+  # install license
+  install -D -m644 COPYING $pkgdir/usr/share/licenses/rpcbind/COPYING
+}
diff --git a/abs/core-testing/rpcbind/rpcbind b/abs/core-testing/rpcbind/rpcbind
new file mode 100755
index 0000000..87c5b50
--- /dev/null
+++ b/abs/core-testing/rpcbind/rpcbind
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID="$(pidof -o %PPID /usr/bin/rpcbind)"
+case "$1" in
+  start)
+    stat_busy "Starting rpcbind"
+    [ -z "$PID" ] && /usr/bin/rpcbind &>/dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      PID=$(pidof -o %PPID /usr/bin/rpcbind)
+      echo $PID > /var/run/rpcbind.pid
+      add_daemon rpcbind
+      stat_done
+    fi
+    ;;
+  stop)
+    stat_busy "Stopping rpcbind"
+    [ ! -z "$PID" ]  && kill $PID &> /dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      rm /var/run/rpcbind.pid
+      rm_daemon rpcbind
+      stat_done
+    fi
+    ;;
+  restart)
+    $0 stop
+    sleep 1
+    $0 start
+    ;;
+  *)
+    echo "usage: $0 {start|stop|restart}"  
+esac
+exit 0
-- 
cgit v0.12


From 52f7600bf48a508c3df35c961d413ce715ecb259 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:56:38 -0700
Subject: rt2x00:Removed modules (now in kernel) for LinHES 7.

---
 abs/core-testing/rt2500/PKGBUILD            |    33 -
 abs/core-testing/rt2500/kernel-2.6.22.patch | 24125 --------------------------
 abs/core-testing/rt2500/kernel-2.6.24.patch |    20 -
 abs/core-testing/rt2500/kernel-2.6.27.patch |    64 -
 abs/core-testing/rt2500/rt2500.install      |    26 -
 abs/core-testing/rt2x00-rt61-fw/PKGBUILD    |    18 -
 abs/core-testing/rt2x00-rt71w-fw/PKGBUILD   |    17 -
 7 files changed, 24303 deletions(-)
 delete mode 100644 abs/core-testing/rt2500/PKGBUILD
 delete mode 100644 abs/core-testing/rt2500/kernel-2.6.22.patch
 delete mode 100644 abs/core-testing/rt2500/kernel-2.6.24.patch
 delete mode 100644 abs/core-testing/rt2500/kernel-2.6.27.patch
 delete mode 100644 abs/core-testing/rt2500/rt2500.install
 delete mode 100644 abs/core-testing/rt2x00-rt61-fw/PKGBUILD
 delete mode 100644 abs/core-testing/rt2x00-rt71w-fw/PKGBUILD

diff --git a/abs/core-testing/rt2500/PKGBUILD b/abs/core-testing/rt2500/PKGBUILD
deleted file mode 100644
index 605b031..0000000
--- a/abs/core-testing/rt2500/PKGBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id: PKGBUILD 22503 2008-12-26 22:53:05Z tpowa $
-# Maintainer: James Rayner <iphitus@gmail.com>
-
-pkgname=rt2500
-_kernver=2.6.28-LinHES
-pkgver=1.1.0_B4
-_pkgver=1.1.0-b4
-pkgrel=28
-pkgdesc="Drivers for rt2500 chipset wireless cards"
-url="http://rt2x00.serialmonkey.com/wiki/index.php/Main_Page"
-license=('GPL2')
-depends=('kernel26>=2.6.28' 'kernel26<2.6.29')
-arch=('i686' 'x86_64')
-install=rt2500.install
-source=(http://downloads.sourceforge.net/sourceforge/rt2400/rt2500-${_pkgver}.tar.gz \
-	kernel-2.6.22.patch 
-	kernel-2.6.24.patch
-	kernel-2.6.27.patch)
-md5sums=('83b8b9a091705c08d99268479f3b3b6a'
-         'a74f8e9cbba7b29620f11fba8fd7c50d'
-	 'ccf0da667cc6642dacf39dea1aac254f'
-	 'ccb923f4ebf408e781544d7cf4074bf2')
-
-build() {
-  cd $startdir/src/rt2500-$_pkgver/
-  patch -Np1 -i ../kernel-2.6.22.patch || return 1
-  patch -Np1 -i ../kernel-2.6.24.patch || return 1
-  patch -Np1 -i ../kernel-2.6.27.patch || return 1
-  cd $startdir/src/rt2500-$_pkgver/Module
-  make KERNDIR=/lib/modules/$_kernver/build || return 1
-  install -D -m 644 rt2500.ko $startdir/pkg/lib/modules/$_kernver/kernel/drivers/net/wireless/rt2500.ko
-  sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install
-}
diff --git a/abs/core-testing/rt2500/kernel-2.6.22.patch b/abs/core-testing/rt2500/kernel-2.6.22.patch
deleted file mode 100644
index 530bf0a..0000000
--- a/abs/core-testing/rt2500/kernel-2.6.22.patch
+++ /dev/null
@@ -1,24125 +0,0 @@
-diff -Nur rt2500-1.1.0-b4/CHANGELOG rt2500-cvs-2007061011/CHANGELOG
---- rt2500-1.1.0-b4/CHANGELOG	2006-06-17 22:12:57.000000000 +0200
-+++ rt2500-cvs-2007061011/CHANGELOG	2007-06-08 20:09:53.000000000 +0200
-@@ -1,28 +1,40 @@
--/*************************************************************************** 
-- * RT2x00 SourceForge Project - http://rt2x00.sourceforge.net              * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2003.           * 
-+/***************************************************************************
-+ * RT2x00 SourceForge Project - http://rt2x00.sourceforge.net              *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2003.           *
-  ***************************************************************************/
-- 
-+
-  Changelog for 802.11g rt2500 driver and RAConfig2500 Utility
- 
-- Version: 1.1.0-beta4 
-+ Version: CVS
-+	* Forward compatibility with kernel 2.6.22 pci bus driver i/f changes
-+	  and skbuff changes.
-+ 	* SIOCGIWSCAN returns EAGAIN until all channels scanned.
-+ 	* More cruft removal.
-+	* Updated base code to Ralink 1.4.6.6 driver version.
-+	* In-kernel compile support (Bug #1642144): Declare debug var
-+	  as static. Implement as bit mask.
-+	* Fix to WPA RSN IE mismatched bug
-+	* Compatibility fixes for kernels >= 2.6.19
-+	* Fix essid truncation on kernels >= 2.6.19
-+
-+ Version: 1.1.0-beta4
- 	* Fix pre-up config panic (1307957)
- 	* Fix noise levels in scan results (1246025)
- 	* RFMON TX Support for aircrack
-@@ -31,9 +43,9 @@
- 	* Promisc/Monitor code missing node->AP packets (1009565)
- 	* Channel set in RFMON before ifup now works (1254806)
- 	* Fixes for suspend/resume
--	* Enhancement for RaConfig to support non-ra? interfaces 
-+	* Enhancement for RaConfig to support non-ra? interfaces
- 	* Channel list updates after region change
--	* TxPower changes to support dBm values 
-+	* TxPower changes to support dBm values
- 	* Pre-up panic for setting WirelessMode
- 	* Cleanup of iwpriv syntax
- 	* Fixes for SMP support (1099089)
-@@ -47,7 +59,7 @@
-         * Power Saving Modes (1159331)
-         * Bridging with other interfaces
- 
-- Version: 1.1.0-beta3 
-+ Version: 1.1.0-beta3
-         * PCI Management Cleanup
-         * Fix for RaConfig crashing on statistics (ChrisH)
-         * Big-Endian fix for RaConfig
-@@ -63,15 +75,15 @@
- 		* Fix iwconfig - Link Quality(means Channel Quality), Signal level and Noise level.
- 		* Fix iwlist ra0 channel - print out
- 
-- Version: 1.1.0-beta2 
-+ Version: 1.1.0-beta2
- 	* Removed Kernel tainting
- 	* Updated all file headers for this project
- 	* kmalloc stability fixes to the MLME
-         * Cleanup on memory management functions (NDisFill/Move/Zero)
-         * Rollin of Robin Cornelius RFMon Patch
-         * RFMon support through iwconfig mode
--        * Debugging and general logging cleanups 
--        * Rolling of changes in Ralink 1.4.5.0 release  
-+        * Debugging and general logging cleanups
-+        * Rolling of changes in Ralink 1.4.5.0 release
-         * Debug switching
-         * Spinlock changes for stability
-         * GCC 3.4 compilation
-@@ -86,5 +98,5 @@
- 
-  Version: 1.0.0
-  	* Initial baseline code from Ralink (1.4.4.0)
-- 
-- 
-+
-+
-diff -Nur rt2500-1.1.0-b4/LICENSE rt2500-cvs-2007061011/LICENSE
---- rt2500-1.1.0-b4/LICENSE	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/LICENSE	2007-05-29 05:57:52.000000000 +0200
-@@ -1,340 +1,340 @@
--		    GNU GENERAL PUBLIC LICENSE
--		       Version 2, June 1991
--
-- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
--                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-- Everyone is permitted to copy and distribute verbatim copies
-- of this license document, but changing it is not allowed.
--
--			    Preamble
--
--  The licenses for most software are designed to take away your
--freedom to share and change it.  By contrast, the GNU General Public
--License is intended to guarantee your freedom to share and change free
--software--to make sure the software is free for all its users.  This
--General Public License applies to most of the Free Software
--Foundation's software and to any other program whose authors commit to
--using it.  (Some other Free Software Foundation software is covered by
--the GNU Library General Public License instead.)  You can apply it to
--your programs, too.
--
--  When we speak of free software, we are referring to freedom, not
--price.  Our General Public Licenses are designed to make sure that you
--have the freedom to distribute copies of free software (and charge for
--this service if you wish), that you receive source code or can get it
--if you want it, that you can change the software or use pieces of it
--in new free programs; and that you know you can do these things.
--
--  To protect your rights, we need to make restrictions that forbid
--anyone to deny you these rights or to ask you to surrender the rights.
--These restrictions translate to certain responsibilities for you if you
--distribute copies of the software, or if you modify it.
--
--  For example, if you distribute copies of such a program, whether
--gratis or for a fee, you must give the recipients all the rights that
--you have.  You must make sure that they, too, receive or can get the
--source code.  And you must show them these terms so they know their
--rights.
--
--  We protect your rights with two steps: (1) copyright the software, and
--(2) offer you this license which gives you legal permission to copy,
--distribute and/or modify the software.
--
--  Also, for each author's protection and ours, we want to make certain
--that everyone understands that there is no warranty for this free
--software.  If the software is modified by someone else and passed on, we
--want its recipients to know that what they have is not the original, so
--that any problems introduced by others will not reflect on the original
--authors' reputations.
--
--  Finally, any free program is threatened constantly by software
--patents.  We wish to avoid the danger that redistributors of a free
--program will individually obtain patent licenses, in effect making the
--program proprietary.  To prevent this, we have made it clear that any
--patent must be licensed for everyone's free use or not licensed at all.
--
--  The precise terms and conditions for copying, distribution and
--modification follow.
--
--		    GNU GENERAL PUBLIC LICENSE
--   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
--
--  0. This License applies to any program or other work which contains
--a notice placed by the copyright holder saying it may be distributed
--under the terms of this General Public License.  The "Program", below,
--refers to any such program or work, and a "work based on the Program"
--means either the Program or any derivative work under copyright law:
--that is to say, a work containing the Program or a portion of it,
--either verbatim or with modifications and/or translated into another
--language.  (Hereinafter, translation is included without limitation in
--the term "modification".)  Each licensee is addressed as "you".
--
--Activities other than copying, distribution and modification are not
--covered by this License; they are outside its scope.  The act of
--running the Program is not restricted, and the output from the Program
--is covered only if its contents constitute a work based on the
--Program (independent of having been made by running the Program).
--Whether that is true depends on what the Program does.
--
--  1. You may copy and distribute verbatim copies of the Program's
--source code as you receive it, in any medium, provided that you
--conspicuously and appropriately publish on each copy an appropriate
--copyright notice and disclaimer of warranty; keep intact all the
--notices that refer to this License and to the absence of any warranty;
--and give any other recipients of the Program a copy of this License
--along with the Program.
--
--You may charge a fee for the physical act of transferring a copy, and
--you may at your option offer warranty protection in exchange for a fee.
--
--  2. You may modify your copy or copies of the Program or any portion
--of it, thus forming a work based on the Program, and copy and
--distribute such modifications or work under the terms of Section 1
--above, provided that you also meet all of these conditions:
--
--    a) You must cause the modified files to carry prominent notices
--    stating that you changed the files and the date of any change.
--
--    b) You must cause any work that you distribute or publish, that in
--    whole or in part contains or is derived from the Program or any
--    part thereof, to be licensed as a whole at no charge to all third
--    parties under the terms of this License.
--
--    c) If the modified program normally reads commands interactively
--    when run, you must cause it, when started running for such
--    interactive use in the most ordinary way, to print or display an
--    announcement including an appropriate copyright notice and a
--    notice that there is no warranty (or else, saying that you provide
--    a warranty) and that users may redistribute the program under
--    these conditions, and telling the user how to view a copy of this
--    License.  (Exception: if the Program itself is interactive but
--    does not normally print such an announcement, your work based on
--    the Program is not required to print an announcement.)
--
--These requirements apply to the modified work as a whole.  If
--identifiable sections of that work are not derived from the Program,
--and can be reasonably considered independent and separate works in
--themselves, then this License, and its terms, do not apply to those
--sections when you distribute them as separate works.  But when you
--distribute the same sections as part of a whole which is a work based
--on the Program, the distribution of the whole must be on the terms of
--this License, whose permissions for other licensees extend to the
--entire whole, and thus to each and every part regardless of who wrote it.
--
--Thus, it is not the intent of this section to claim rights or contest
--your rights to work written entirely by you; rather, the intent is to
--exercise the right to control the distribution of derivative or
--collective works based on the Program.
--
--In addition, mere aggregation of another work not based on the Program
--with the Program (or with a work based on the Program) on a volume of
--a storage or distribution medium does not bring the other work under
--the scope of this License.
--
--  3. You may copy and distribute the Program (or a work based on it,
--under Section 2) in object code or executable form under the terms of
--Sections 1 and 2 above provided that you also do one of the following:
--
--    a) Accompany it with the complete corresponding machine-readable
--    source code, which must be distributed under the terms of Sections
--    1 and 2 above on a medium customarily used for software interchange; or,
--
--    b) Accompany it with a written offer, valid for at least three
--    years, to give any third party, for a charge no more than your
--    cost of physically performing source distribution, a complete
--    machine-readable copy of the corresponding source code, to be
--    distributed under the terms of Sections 1 and 2 above on a medium
--    customarily used for software interchange; or,
--
--    c) Accompany it with the information you received as to the offer
--    to distribute corresponding source code.  (This alternative is
--    allowed only for noncommercial distribution and only if you
--    received the program in object code or executable form with such
--    an offer, in accord with Subsection b above.)
--
--The source code for a work means the preferred form of the work for
--making modifications to it.  For an executable work, complete source
--code means all the source code for all modules it contains, plus any
--associated interface definition files, plus the scripts used to
--control compilation and installation of the executable.  However, as a
--special exception, the source code distributed need not include
--anything that is normally distributed (in either source or binary
--form) with the major components (compiler, kernel, and so on) of the
--operating system on which the executable runs, unless that component
--itself accompanies the executable.
--
--If distribution of executable or object code is made by offering
--access to copy from a designated place, then offering equivalent
--access to copy the source code from the same place counts as
--distribution of the source code, even though third parties are not
--compelled to copy the source along with the object code.
--
--  4. You may not copy, modify, sublicense, or distribute the Program
--except as expressly provided under this License.  Any attempt
--otherwise to copy, modify, sublicense or distribute the Program is
--void, and will automatically terminate your rights under this License.
--However, parties who have received copies, or rights, from you under
--this License will not have their licenses terminated so long as such
--parties remain in full compliance.
--
--  5. You are not required to accept this License, since you have not
--signed it.  However, nothing else grants you permission to modify or
--distribute the Program or its derivative works.  These actions are
--prohibited by law if you do not accept this License.  Therefore, by
--modifying or distributing the Program (or any work based on the
--Program), you indicate your acceptance of this License to do so, and
--all its terms and conditions for copying, distributing or modifying
--the Program or works based on it.
--
--  6. Each time you redistribute the Program (or any work based on the
--Program), the recipient automatically receives a license from the
--original licensor to copy, distribute or modify the Program subject to
--these terms and conditions.  You may not impose any further
--restrictions on the recipients' exercise of the rights granted herein.
--You are not responsible for enforcing compliance by third parties to
--this License.
--
--  7. If, as a consequence of a court judgment or allegation of patent
--infringement or for any other reason (not limited to patent issues),
--conditions are imposed on you (whether by court order, agreement or
--otherwise) that contradict the conditions of this License, they do not
--excuse you from the conditions of this License.  If you cannot
--distribute so as to satisfy simultaneously your obligations under this
--License and any other pertinent obligations, then as a consequence you
--may not distribute the Program at all.  For example, if a patent
--license would not permit royalty-free redistribution of the Program by
--all those who receive copies directly or indirectly through you, then
--the only way you could satisfy both it and this License would be to
--refrain entirely from distribution of the Program.
--
--If any portion of this section is held invalid or unenforceable under
--any particular circumstance, the balance of the section is intended to
--apply and the section as a whole is intended to apply in other
--circumstances.
--
--It is not the purpose of this section to induce you to infringe any
--patents or other property right claims or to contest validity of any
--such claims; this section has the sole purpose of protecting the
--integrity of the free software distribution system, which is
--implemented by public license practices.  Many people have made
--generous contributions to the wide range of software distributed
--through that system in reliance on consistent application of that
--system; it is up to the author/donor to decide if he or she is willing
--to distribute software through any other system and a licensee cannot
--impose that choice.
--
--This section is intended to make thoroughly clear what is believed to
--be a consequence of the rest of this License.
--
--  8. If the distribution and/or use of the Program is restricted in
--certain countries either by patents or by copyrighted interfaces, the
--original copyright holder who places the Program under this License
--may add an explicit geographical distribution limitation excluding
--those countries, so that distribution is permitted only in or among
--countries not thus excluded.  In such case, this License incorporates
--the limitation as if written in the body of this License.
--
--  9. The Free Software Foundation may publish revised and/or new versions
--of the General Public License from time to time.  Such new versions will
--be similar in spirit to the present version, but may differ in detail to
--address new problems or concerns.
--
--Each version is given a distinguishing version number.  If the Program
--specifies a version number of this License which applies to it and "any
--later version", you have the option of following the terms and conditions
--either of that version or of any later version published by the Free
--Software Foundation.  If the Program does not specify a version number of
--this License, you may choose any version ever published by the Free Software
--Foundation.
--
--  10. If you wish to incorporate parts of the Program into other free
--programs whose distribution conditions are different, write to the author
--to ask for permission.  For software which is copyrighted by the Free
--Software Foundation, write to the Free Software Foundation; we sometimes
--make exceptions for this.  Our decision will be guided by the two goals
--of preserving the free status of all derivatives of our free software and
--of promoting the sharing and reuse of software generally.
--
--			    NO WARRANTY
--
--  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
--FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
--OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
--PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
--OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
--MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
--TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
--PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
--REPAIR OR CORRECTION.
--
--  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
--WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
--REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
--INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
--OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
--TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
--YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
--PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
--POSSIBILITY OF SUCH DAMAGES.
--
--		     END OF TERMS AND CONDITIONS
--
--	    How to Apply These Terms to Your New Programs
--
--  If you develop a new program, and you want it to be of the greatest
--possible use to the public, the best way to achieve this is to make it
--free software which everyone can redistribute and change under these terms.
--
--  To do so, attach the following notices to the program.  It is safest
--to attach them to the start of each source file to most effectively
--convey the exclusion of warranty; and each file should have at least
--the "copyright" line and a pointer to where the full notice is found.
--
--    &lt;one line to give the program's name and a brief idea of what it does.&gt;
--    Copyright (C) &lt;year&gt;  &lt;name of author&gt;
--
--    This program is free software; you can redistribute it and/or modify
--    it under the terms of the GNU General Public License as published by
--    the Free Software Foundation; either version 2 of the License, or
--    (at your option) any later version.
--
--    This program is distributed in the hope that it will be useful,
--    but WITHOUT ANY WARRANTY; without even the implied warranty of
--    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--    GNU General Public License for more details.
--
--    You should have received a copy of the GNU General Public License
--    along with this program; if not, write to the Free Software
--    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
--
--
--Also add information on how to contact you by electronic and paper mail.
--
--If the program is interactive, make it output a short notice like this
--when it starts in an interactive mode:
--
--    Gnomovision version 69, Copyright (C) year name of author
--    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
--    This is free software, and you are welcome to redistribute it
--    under certain conditions; type `show c' for details.
--
--The hypothetical commands `show w' and `show c' should show the appropriate
--parts of the General Public License.  Of course, the commands you use may
--be called something other than `show w' and `show c'; they could even be
--mouse-clicks or menu items--whatever suits your program.
--
--You should also get your employer (if you work as a programmer) or your
--school, if any, to sign a "copyright disclaimer" for the program, if
--necessary.  Here is a sample; alter the names:
--
--  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
--  `Gnomovision' (which makes passes at compilers) written by James Hacker.
--
--  &lt;signature of Ty Coon&gt;, 1 April 1989
--  Ty Coon, President of Vice
--
--This General Public License does not permit incorporating your program into
--proprietary programs.  If your program is a subroutine library, you may
--consider it more useful to permit linking proprietary applications with the
--library.  If this is what you want to do, use the GNU Library General
-+		    GNU GENERAL PUBLIC LICENSE
-+		       Version 2, June 1991
-+
-+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-+ Everyone is permitted to copy and distribute verbatim copies
-+ of this license document, but changing it is not allowed.
-+
-+			    Preamble
-+
-+  The licenses for most software are designed to take away your
-+freedom to share and change it.  By contrast, the GNU General Public
-+License is intended to guarantee your freedom to share and change free
-+software--to make sure the software is free for all its users.  This
-+General Public License applies to most of the Free Software
-+Foundation's software and to any other program whose authors commit to
-+using it.  (Some other Free Software Foundation software is covered by
-+the GNU Library General Public License instead.)  You can apply it to
-+your programs, too.
-+
-+  When we speak of free software, we are referring to freedom, not
-+price.  Our General Public Licenses are designed to make sure that you
-+have the freedom to distribute copies of free software (and charge for
-+this service if you wish), that you receive source code or can get it
-+if you want it, that you can change the software or use pieces of it
-+in new free programs; and that you know you can do these things.
-+
-+  To protect your rights, we need to make restrictions that forbid
-+anyone to deny you these rights or to ask you to surrender the rights.
-+These restrictions translate to certain responsibilities for you if you
-+distribute copies of the software, or if you modify it.
-+
-+  For example, if you distribute copies of such a program, whether
-+gratis or for a fee, you must give the recipients all the rights that
-+you have.  You must make sure that they, too, receive or can get the
-+source code.  And you must show them these terms so they know their
-+rights.
-+
-+  We protect your rights with two steps: (1) copyright the software, and
-+(2) offer you this license which gives you legal permission to copy,
-+distribute and/or modify the software.
-+
-+  Also, for each author's protection and ours, we want to make certain
-+that everyone understands that there is no warranty for this free
-+software.  If the software is modified by someone else and passed on, we
-+want its recipients to know that what they have is not the original, so
-+that any problems introduced by others will not reflect on the original
-+authors' reputations.
-+
-+  Finally, any free program is threatened constantly by software
-+patents.  We wish to avoid the danger that redistributors of a free
-+program will individually obtain patent licenses, in effect making the
-+program proprietary.  To prevent this, we have made it clear that any
-+patent must be licensed for everyone's free use or not licensed at all.
-+
-+  The precise terms and conditions for copying, distribution and
-+modification follow.
-+
-+		    GNU GENERAL PUBLIC LICENSE
-+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-+
-+  0. This License applies to any program or other work which contains
-+a notice placed by the copyright holder saying it may be distributed
-+under the terms of this General Public License.  The "Program", below,
-+refers to any such program or work, and a "work based on the Program"
-+means either the Program or any derivative work under copyright law:
-+that is to say, a work containing the Program or a portion of it,
-+either verbatim or with modifications and/or translated into another
-+language.  (Hereinafter, translation is included without limitation in
-+the term "modification".)  Each licensee is addressed as "you".
-+
-+Activities other than copying, distribution and modification are not
-+covered by this License; they are outside its scope.  The act of
-+running the Program is not restricted, and the output from the Program
-+is covered only if its contents constitute a work based on the
-+Program (independent of having been made by running the Program).
-+Whether that is true depends on what the Program does.
-+
-+  1. You may copy and distribute verbatim copies of the Program's
-+source code as you receive it, in any medium, provided that you
-+conspicuously and appropriately publish on each copy an appropriate
-+copyright notice and disclaimer of warranty; keep intact all the
-+notices that refer to this License and to the absence of any warranty;
-+and give any other recipients of the Program a copy of this License
-+along with the Program.
-+
-+You may charge a fee for the physical act of transferring a copy, and
-+you may at your option offer warranty protection in exchange for a fee.
-+
-+  2. You may modify your copy or copies of the Program or any portion
-+of it, thus forming a work based on the Program, and copy and
-+distribute such modifications or work under the terms of Section 1
-+above, provided that you also meet all of these conditions:
-+
-+    a) You must cause the modified files to carry prominent notices
-+    stating that you changed the files and the date of any change.
-+
-+    b) You must cause any work that you distribute or publish, that in
-+    whole or in part contains or is derived from the Program or any
-+    part thereof, to be licensed as a whole at no charge to all third
-+    parties under the terms of this License.
-+
-+    c) If the modified program normally reads commands interactively
-+    when run, you must cause it, when started running for such
-+    interactive use in the most ordinary way, to print or display an
-+    announcement including an appropriate copyright notice and a
-+    notice that there is no warranty (or else, saying that you provide
-+    a warranty) and that users may redistribute the program under
-+    these conditions, and telling the user how to view a copy of this
-+    License.  (Exception: if the Program itself is interactive but
-+    does not normally print such an announcement, your work based on
-+    the Program is not required to print an announcement.)
-+
-+These requirements apply to the modified work as a whole.  If
-+identifiable sections of that work are not derived from the Program,
-+and can be reasonably considered independent and separate works in
-+themselves, then this License, and its terms, do not apply to those
-+sections when you distribute them as separate works.  But when you
-+distribute the same sections as part of a whole which is a work based
-+on the Program, the distribution of the whole must be on the terms of
-+this License, whose permissions for other licensees extend to the
-+entire whole, and thus to each and every part regardless of who wrote it.
-+
-+Thus, it is not the intent of this section to claim rights or contest
-+your rights to work written entirely by you; rather, the intent is to
-+exercise the right to control the distribution of derivative or
-+collective works based on the Program.
-+
-+In addition, mere aggregation of another work not based on the Program
-+with the Program (or with a work based on the Program) on a volume of
-+a storage or distribution medium does not bring the other work under
-+the scope of this License.
-+
-+  3. You may copy and distribute the Program (or a work based on it,
-+under Section 2) in object code or executable form under the terms of
-+Sections 1 and 2 above provided that you also do one of the following:
-+
-+    a) Accompany it with the complete corresponding machine-readable
-+    source code, which must be distributed under the terms of Sections
-+    1 and 2 above on a medium customarily used for software interchange; or,
-+
-+    b) Accompany it with a written offer, valid for at least three
-+    years, to give any third party, for a charge no more than your
-+    cost of physically performing source distribution, a complete
-+    machine-readable copy of the corresponding source code, to be
-+    distributed under the terms of Sections 1 and 2 above on a medium
-+    customarily used for software interchange; or,
-+
-+    c) Accompany it with the information you received as to the offer
-+    to distribute corresponding source code.  (This alternative is
-+    allowed only for noncommercial distribution and only if you
-+    received the program in object code or executable form with such
-+    an offer, in accord with Subsection b above.)
-+
-+The source code for a work means the preferred form of the work for
-+making modifications to it.  For an executable work, complete source
-+code means all the source code for all modules it contains, plus any
-+associated interface definition files, plus the scripts used to
-+control compilation and installation of the executable.  However, as a
-+special exception, the source code distributed need not include
-+anything that is normally distributed (in either source or binary
-+form) with the major components (compiler, kernel, and so on) of the
-+operating system on which the executable runs, unless that component
-+itself accompanies the executable.
-+
-+If distribution of executable or object code is made by offering
-+access to copy from a designated place, then offering equivalent
-+access to copy the source code from the same place counts as
-+distribution of the source code, even though third parties are not
-+compelled to copy the source along with the object code.
-+
-+  4. You may not copy, modify, sublicense, or distribute the Program
-+except as expressly provided under this License.  Any attempt
-+otherwise to copy, modify, sublicense or distribute the Program is
-+void, and will automatically terminate your rights under this License.
-+However, parties who have received copies, or rights, from you under
-+this License will not have their licenses terminated so long as such
-+parties remain in full compliance.
-+
-+  5. You are not required to accept this License, since you have not
-+signed it.  However, nothing else grants you permission to modify or
-+distribute the Program or its derivative works.  These actions are
-+prohibited by law if you do not accept this License.  Therefore, by
-+modifying or distributing the Program (or any work based on the
-+Program), you indicate your acceptance of this License to do so, and
-+all its terms and conditions for copying, distributing or modifying
-+the Program or works based on it.
-+
-+  6. Each time you redistribute the Program (or any work based on the
-+Program), the recipient automatically receives a license from the
-+original licensor to copy, distribute or modify the Program subject to
-+these terms and conditions.  You may not impose any further
-+restrictions on the recipients' exercise of the rights granted herein.
-+You are not responsible for enforcing compliance by third parties to
-+this License.
-+
-+  7. If, as a consequence of a court judgment or allegation of patent
-+infringement or for any other reason (not limited to patent issues),
-+conditions are imposed on you (whether by court order, agreement or
-+otherwise) that contradict the conditions of this License, they do not
-+excuse you from the conditions of this License.  If you cannot
-+distribute so as to satisfy simultaneously your obligations under this
-+License and any other pertinent obligations, then as a consequence you
-+may not distribute the Program at all.  For example, if a patent
-+license would not permit royalty-free redistribution of the Program by
-+all those who receive copies directly or indirectly through you, then
-+the only way you could satisfy both it and this License would be to
-+refrain entirely from distribution of the Program.
-+
-+If any portion of this section is held invalid or unenforceable under
-+any particular circumstance, the balance of the section is intended to
-+apply and the section as a whole is intended to apply in other
-+circumstances.
-+
-+It is not the purpose of this section to induce you to infringe any
-+patents or other property right claims or to contest validity of any
-+such claims; this section has the sole purpose of protecting the
-+integrity of the free software distribution system, which is
-+implemented by public license practices.  Many people have made
-+generous contributions to the wide range of software distributed
-+through that system in reliance on consistent application of that
-+system; it is up to the author/donor to decide if he or she is willing
-+to distribute software through any other system and a licensee cannot
-+impose that choice.
-+
-+This section is intended to make thoroughly clear what is believed to
-+be a consequence of the rest of this License.
-+
-+  8. If the distribution and/or use of the Program is restricted in
-+certain countries either by patents or by copyrighted interfaces, the
-+original copyright holder who places the Program under this License
-+may add an explicit geographical distribution limitation excluding
-+those countries, so that distribution is permitted only in or among
-+countries not thus excluded.  In such case, this License incorporates
-+the limitation as if written in the body of this License.
-+
-+  9. The Free Software Foundation may publish revised and/or new versions
-+of the General Public License from time to time.  Such new versions will
-+be similar in spirit to the present version, but may differ in detail to
-+address new problems or concerns.
-+
-+Each version is given a distinguishing version number.  If the Program
-+specifies a version number of this License which applies to it and "any
-+later version", you have the option of following the terms and conditions
-+either of that version or of any later version published by the Free
-+Software Foundation.  If the Program does not specify a version number of
-+this License, you may choose any version ever published by the Free Software
-+Foundation.
-+
-+  10. If you wish to incorporate parts of the Program into other free
-+programs whose distribution conditions are different, write to the author
-+to ask for permission.  For software which is copyrighted by the Free
-+Software Foundation, write to the Free Software Foundation; we sometimes
-+make exceptions for this.  Our decision will be guided by the two goals
-+of preserving the free status of all derivatives of our free software and
-+of promoting the sharing and reuse of software generally.
-+
-+			    NO WARRANTY
-+
-+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-+REPAIR OR CORRECTION.
-+
-+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-+POSSIBILITY OF SUCH DAMAGES.
-+
-+		     END OF TERMS AND CONDITIONS
-+
-+	    How to Apply These Terms to Your New Programs
-+
-+  If you develop a new program, and you want it to be of the greatest
-+possible use to the public, the best way to achieve this is to make it
-+free software which everyone can redistribute and change under these terms.
-+
-+  To do so, attach the following notices to the program.  It is safest
-+to attach them to the start of each source file to most effectively
-+convey the exclusion of warranty; and each file should have at least
-+the "copyright" line and a pointer to where the full notice is found.
-+
-+    &lt;one line to give the program's name and a brief idea of what it does.&gt;
-+    Copyright (C) &lt;year&gt;  &lt;name of author&gt;
-+
-+    This program is free software; you can redistribute it and/or modify
-+    it under the terms of the GNU General Public License as published by
-+    the Free Software Foundation; either version 2 of the License, or
-+    (at your option) any later version.
-+
-+    This program is distributed in the hope that it will be useful,
-+    but WITHOUT ANY WARRANTY; without even the implied warranty of
-+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+    GNU General Public License for more details.
-+
-+    You should have received a copy of the GNU General Public License
-+    along with this program; if not, write to the Free Software
-+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-+
-+
-+Also add information on how to contact you by electronic and paper mail.
-+
-+If the program is interactive, make it output a short notice like this
-+when it starts in an interactive mode:
-+
-+    Gnomovision version 69, Copyright (C) year name of author
-+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-+    This is free software, and you are welcome to redistribute it
-+    under certain conditions; type `show c' for details.
-+
-+The hypothetical commands `show w' and `show c' should show the appropriate
-+parts of the General Public License.  Of course, the commands you use may
-+be called something other than `show w' and `show c'; they could even be
-+mouse-clicks or menu items--whatever suits your program.
-+
-+You should also get your employer (if you work as a programmer) or your
-+school, if any, to sign a "copyright disclaimer" for the program, if
-+necessary.  Here is a sample; alter the names:
-+
-+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-+
-+  &lt;signature of Ty Coon&gt;, 1 April 1989
-+  Ty Coon, President of Vice
-+
-+This General Public License does not permit incorporating your program into
-+proprietary programs.  If your program is a subroutine library, you may
-+consider it more useful to permit linking proprietary applications with the
-+library.  If this is what you want to do, use the GNU Library General
- Public License instead of this License.
-\ Kein Zeilenumbruch am Dateiende.
-diff -Nur rt2500-1.1.0-b4/Module/Makefile rt2500-cvs-2007061011/Module/Makefile
---- rt2500-1.1.0-b4/Module/Makefile	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/Makefile	2007-05-29 05:54:38.000000000 +0200
-@@ -1,39 +1,39 @@
--########################################################################### 
--# RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      # 
--#                                                                         # 
--#   This program is free software; you can redistribute it and/or modify  # 
--#   it under the terms of the GNU General Public License as published by  # 
--#   the Free Software Foundation; either version 2 of the License, or     # 
--#   (at your option) any later version.                                   # 
--#                                                                         # 
--#   This program is distributed in the hope that it will be useful,       # 
--#   but WITHOUT ANY WARRANTY; without even the implied warranty of        # 
--#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         # 
--#   GNU General Public License for more details.                          # 
--#                                                                         # 
--#   You should have received a copy of the GNU General Public License     # 
--#   along with this program; if not, write to the                         # 
--#   Free Software Foundation, Inc.,                                       # 
--#   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             # 
--#                                                                         # 
--#   Licensed under the GNU GPL                                            # 
--#   Original code supplied under license from RaLink Inc, 2004.           # 
--########################################################################### 
--
--########################################################################### 
--#      Module Name: Makefile 
--#              
--#      Abstract: Makefile for rt2500 kernel module 
--#              
--#      Revision History: 
--#      Who             When            What 
--#      --------        -----------     ----------------------------- 
--#      MarkW           8th  Dec 04     Rewrite of Makefile 
-+###########################################################################
-+# RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      #
-+#                                                                         #
-+#   This program is free software; you can redistribute it and/or modify  #
-+#   it under the terms of the GNU General Public License as published by  #
-+#   the Free Software Foundation; either version 2 of the License, or     #
-+#   (at your option) any later version.                                   #
-+#                                                                         #
-+#   This program is distributed in the hope that it will be useful,       #
-+#   but WITHOUT ANY WARRANTY; without even the implied warranty of        #
-+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         #
-+#   GNU General Public License for more details.                          #
-+#                                                                         #
-+#   You should have received a copy of the GNU General Public License     #
-+#   along with this program; if not, write to the                         #
-+#   Free Software Foundation, Inc.,                                       #
-+#   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             #
-+#                                                                         #
-+#   Licensed under the GNU GPL                                            #
-+#   Original code supplied under license from RaLink Inc, 2004.           #
-+###########################################################################
-+
-+###########################################################################
-+#      Module Name: Makefile
-+#
-+#      Abstract: Makefile for rt2500 kernel module
-+#
-+#      Revision History:
-+#      Who             When            What
-+#      --------        -----------     -----------------------------
-+#      MarkW           8th  Dec 04     Rewrite of Makefile
- #      AmirS           1st  Jan 05     Update for gmake compat
- #      MarkW           20th Jan 05     Fixed permissions on directory
- #      MichalL         5th  Mar 05     Module installation fixes
- #      MarkW           29th Jul 05     Allow install dir override
--########################################################################### 
-+###########################################################################
- 
- 
- 
-@@ -41,7 +41,7 @@
- 
- MODULE_NAME := rt2500
- 
--#PATCHLEVEL := 6 
-+#PATCHLEVEL := 6
- #KERNDIR=/usr/src/linux-2.6
- #MODDIR=/lib/modules/2.6.12/extra
- 
-@@ -94,7 +94,7 @@
- 	$(LD) $(EXTRA_LDFLAGS) -r -o $@ $($(MODULE_NAME)-objs)
- endif
- 
--KBUILD_PARAMS := -C $(KERNEL_SOURCES) SUBDIRS=$(PWD) $(KERNEL_OUTPUT)
-+KBUILD_PARAMS := -C $(KERNEL_SOURCES) SUBDIRS=$(CURDIR) $(KERNEL_OUTPUT)
- 
- module:
- 	@$(MAKE) $(KBUILD_PARAMS) modules; \
-@@ -110,22 +110,29 @@
- 	exit 1; \
- 	fi
- 
-+debugfs:
-+	@$(MAKE) $(KBUILD_PARAMS) 'EXTRA_CFLAGS=-I$(src) -DRT2500_DBG -DRT2X00DEBUGFS' modules; \
-+	if ! [ -f $(MODULE_OBJECT) ]; then \
-+	echo "$(MODULE_OBJECT) failed to build!"; \
-+	exit 1; \
-+	fi
-+
- clean:
- 	@rm -f $(RESMAN_GLUE_OBJS) $(RESMAN_CORE_OBJS) .*.{cmd,flags}
- 	@rm -f $(MODULE_NAME).{o,ko,mod.{o,c}} built-in.o $(VERSION_HEADER) *~
--	@rm -fr .tmp_versions
-+	@rm -fr .tmp_versions Module.symvers
- 
- modules_install:
--ifeq ($(PATCHLEVEL),4)
--	if ! [ -f $(MODULE_OBJECT) ]; then \
--	module; \
-+	@if ! [ -f $(MODULE_OBJECT) ]; then \
-+	$(MAKE) module; \
- 	fi
-+ifeq ($(PATCHLEVEL),4)
- 	@echo "install '$(MODULE_OBJECT)' to $(MODULE_ROOT)"
- 	install -m 755 -o 0 -g 0 -d $(MODULE_ROOT)
- 	install -m 644 -o 0 -g 0 $(MODULE_OBJECT) $(MODULE_ROOT)
--	/sbin/depmod -a
-+	/sbin/depmod -ae
- else
--	echo "2.6 module install"
-+	@echo "2.6 module install"
- 	make $(KBUILD_PARAMS) modules_install
- 	/sbin/depmod -a
- endif
-@@ -144,7 +151,7 @@
- 	install -m 755 -o 0 -g 0 -d $(MODULE_ROOT)
- 	install -m 644 -o 0 -g 0 $(MODULE_OBJECT) $(MODULE_ROOT)
- 	/sbin/depmod -a
--	
-+
- 	@if ! grep -q 'wlan0' /etc/modprobe.conf ; then \
- 		echo "append 'alias wlan0 rt2500' to /etc/modprobe.conf"; \
- 		echo "alias wlan0 rt2500" >> /etc/modprobe.conf ; \
-diff -Nur rt2500-1.1.0-b4/Module/README rt2500-cvs-2007061011/Module/README
---- rt2500-1.1.0-b4/Module/README	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/README	2007-05-29 05:54:39.000000000 +0200
-@@ -1,7 +1,7 @@
- Installation instructions for the rt2500 Module
- 
- ======================================================================
--Build Instructions:  
-+Build Instructions:
- ====================
- For 2.4 or 2.6 series kernel:
- a. $tar -xvzf rt2500-x.x.x.tar.gz
-@@ -9,10 +9,10 @@
- 
- b. $make                # compile driver source code
- 
--c. $make install	# installs kernel module driver 
-+c. $make install        # installs kernel module driver
-+
-+(read end of file for FedoraCore3 specific information)
- 
--(read end of file for FedoraCore3 specific information) 
-- 
- ======================================================================
- To BUILD UTILITY
- ====================
-@@ -21,26 +21,26 @@
- 
- b.  run 'qmake -o Makefile raconfig2500.pro'
-     If qmake command is not found in your system, you can download
--    the QT tool 'qt-x11-free-3.2.1' or later at 
-+    the QT tool 'qt-x11-free-3.2.1' or later at
-     http://www.trolltech.com/
--    
--    (qmake comes with RedHat 7.3 or later QT Package)    
-+
-+    (qmake comes with RedHat 7.3 or later QT Package)
- 
- c.  run 'make" to compile the utility source code.
--   
-+
- d.  After all, an execution file would be generated "RaConfig2500"
-     run "RaConfig2500" to config the driver as you want
- 
- 
- 
- ======================================================================
--CONFIGURATION:  
-+CONFIGURATION:
- ====================
--RT2500 driver can be configured via following interfaces, 
-+RT2500 driver can be configured via following interfaces,
- i.e. (i)"iwconfig" command, (ii)"iwpriv" command, (iii) configuration
-      file, (iv) RaConfig2500
- 
--i)  iwconfig comes with kernel.  
-+i)  iwconfig comes with kernel.
- ii) iwpriv usage, please refer to file "iwpriv_usage.txt" for details.
- iii)copy configuration file "RT2500STA.dat" to
-     /etc/Wireless/RT2500STA/RT2500STA.dat.
-@@ -48,7 +48,7 @@
- iv) RT2500 provides API : RaConfig2500, please go to directory
-     ./Utility and refer to how-to-compile.txt
- 
--           
-+
- Configuration File : RT2500STA.dat
- 
- # Copy this file to /etc/Wireless/RT2500STA/RT2500STA.dat
-@@ -56,7 +56,7 @@
- # module.
- #
- # Use "vi -b RT2500STA.dat" to modify settings according to your need.
--# 
-+#
- # 1.) set NetworkType to "Adhoc" for using Adhoc-mode, otherwise
- #     using as Infrastructure-mode.
- # 2.) set Channel to "0" for auto-select on Infrastructure mode.
-@@ -94,7 +94,7 @@
- FragThreshold=2312
- PSMode=CAM
- -----------------------------------------------
--syntax is 'Param'='Value' and described below. 
-+syntax is 'Param'='Value' and described below.
- 
- 1.  CountryRegion=value
-     value
-@@ -125,13 +125,14 @@
-         OPEN      For Open System
-         SHARED    For Shared key system
-         AUTO
--        WPAPSK    
-+        WPANONE   For pre-shared key in adhoc mode
-+        WPAPSK    For pre-shared key in infrastructure mode
- 7.  EncrypType=value
-     value
-         NONE      :For AuthMode=OPEN
-         WEP       :For AuthMode=OPEN or AuthMode=SHARED
--        TKIP      :For AuthMode=WPAPSK
--        AES       :For AuthMode=WPAPSK
-+        TKIP      :For AuthMode=WPAPSK or AuthMode=WPANONE
-+        AES       :For AuthMode=WPAPSK or AuthMode=WPANONE
- 8.  DefaultKeyID=value
-     value
-         1 ~ 4
-@@ -189,7 +190,7 @@
-          1:     1 Mbps
-          2:     2 Mbps
-          3:     5.5 Mbps
--         4:     11 Mbps 
-+         4:     11 Mbps
-          5:     6  Mbps  //WirelessMode must be 0
-          6:     9  Mbps  //WirelessMode must be 0
-          7:     12 Mbps  //WirelessMode must be 0
-@@ -210,13 +211,13 @@
- 
- 23. AdhocOfdm=value
-     value
--    0:		Tx MAX rate will be 11Mbps in Adhoc mode.
--    1:		Tx MAX rate will be 54Mbps in Adhoc mode.
-+         0:     Tx MAX rate will be 11Mbps in Adhoc mode.
-+         1:     Tx MAX rate will be 54Mbps in Adhoc mode.
- 
- 24. StaWithEtherBridge=value
-     value
--    0:		Disable sta with ethernet to wireless bridge.
--    1:		Enable sta with ethernet to wireless bridge.
-+         0:     Disable sta with ethernet to wireless bridge.
-+         1:     Enable sta with ethernet to wireless bridge.
- 
- 
- MORE INFORMATION
-@@ -224,25 +225,25 @@
- If you want for rt2500 driver to auto-load at boot time:
- A) choose ra0 for first RT2500 WLAN card, ra1 for second RT2500 WLAN
-    card, etc.
--   
--B) create(edit) 'ifcfg-ra0' file in /etc/sysconfig/network-scripts/,      
-+
-+B) create(edit) 'ifcfg-ra0' file in /etc/sysconfig/network-scripts/,
-    edit( or add the line) in /etc/modules.conf:
--       alias ra0 rt2500        
--   
--C) edit(create) the file /etc/sysconfig/network-scripts/ifcfg-ra0  
-+       alias ra0 rt2500
-+
-+C) edit(create) the file /etc/sysconfig/network-scripts/ifcfg-ra0
-    DEVICE='ra0'
--   ONBOOT='yes'     
-+   ONBOOT='yes'
- 
- 
- NOTE:
-    if you use dhcp, add this line too .
-     BOOTPROTO='dhcp'
- 
--*D) To ease the Default Gateway setting, 
-+*D) To ease the Default Gateway setting,
-     add the line
--    GATEWAY=x.x.x.x   
-+    GATEWAY=x.x.x.x
-     in /etc/sysconfig/network
--   
-+
- INFORMATION FOR FEDORA CORE 3 USERS (USE AT YOUR OWN RISK !!!)
- ======================================================================
- While this information is directed to Fedora Core 3 users, there is no
-@@ -267,8 +268,8 @@
- alias added to modprobe.conf (2.6 kernels) or modules.conf
- (2.4 kernels).
- 
--Start 'system-config-network', 
--New->Wireless connection, 
-+Start 'system-config-network',
-+New->Wireless connection,
- Select 'RaLink Ralink RT2500 802.11 Cardbus Reference Card (wlan0)'
- If it does not appear, well then it didn't work for you :)
- 
-diff -Nur rt2500-1.1.0-b4/Module/TESTING rt2500-cvs-2007061011/Module/TESTING
---- rt2500-1.1.0-b4/Module/TESTING	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/TESTING	2007-05-29 05:54:39.000000000 +0200
-@@ -1,51 +1,63 @@
--Below is information on how you can help out the team with testing
--of the rt2500 kernel module.
-+Below are the steps you need to follow to help out the team with
-+testing/debugging of the rt2500 kernel module:
- 
--1. Get the latest source from the CVS tree. Easiest way todo this is to
--get the nightly tarball from our website at
--        http://rt2x00.serialmonkey.com/rt2500-cvs-daily.tar.gz
--
--2. Enable module debugging. Todo this run 'make clean' to remove any
--compiled objects you have and then run 'make debug'.
--This will recompile the Module with debugging turned on and reinstall
--it over your existing module. 
--
--3. Install the module as per the INSTALL instructions.
--        e.g. make install
--
--4. Ensure there are no compies of the module in memory.
--	ifconfig ra0 down
--	rmmod rt2500
--
--5. Load the module with full debug enabled using the commands
--	modprobe rt2500 debug=1
--
--6. Check the output of your syslog (most likely /var/log/messages).
--If you don't see any debug you need to add the following line to
--your /etc/syslog.conf and reboot.
--        kern.*            /var/log/debug
--
--7. Any bugs/issues you find please report the following information
--to the rt2400-devel mailing list
--	* Steps to reproduce
--	* The whole contents of your debugging output 
--	* Your hardware architecture (i.e. x86, AMD64, Sparc)
--	* Your kernel version (i.e. 2.4.25 or 2.6.4)
--	* Your rt2400 hardware manufacturer and model
--	* Anything else you may think will help us resolve the issue
--	  (even a patch if you are so inclined)
--
--8. Sign up to the rt2400-devel mailing list and watch out for requests
--for testing. Whenever we do major changes to the source and always
--just before a release we will call for testing to be done before we
--make the general release.
-+
-+1. Get the latest source from the CVS tree.
-+     Easiest way to do this is to download the hourly tarball from our website:
-+     http://rt2x00.serialmonkey.com/rt2500-cvs-daily.tar.gz
-+     Alternatively, you can anonymously check out the current CVS code:
-+     $ cvs -d:pserver:anonymous@rt2400.cvs.sourceforge.net:/cvsroot/rt2400 login
-+     $ cvs -z3 -d:pserver:anonymous@rt2400.cvs.sourceforge.net:/cvsroot/rt2400 \
-+           co -P source/rt2500
-+
-+2. Compile the module with debug logging:
-+     $ make clean
-+     $ make debug
-+
-+3. Ensure there are no copies of the module left in memory:
-+     # ifconfig ra0 down
-+     # rmmod rt2500
-+
-+4. Load the module with full debug enabled:
-+     # insmod rt2500.ko debug=31
-+     Then proceed as usual (config, ifup, etc)...
-+
-+5. Check the debug output.
-+     It is located in your system log file (most likely /var/log/debug or
-+     /var/log/syslog). If you don't see any debug you probably need to add the
-+     following line to your /etc/syslog.conf and reboot:
-+          kern.=debug       /var/log/debug
-+     If you system hard-locks before it's able to log anything interesting
-+     in these files, you'll have to rely on the netconsole module to remotely
-+     log your kernel messages to another box (see netconsole.txt in your
-+     kernel sources Documentation folder).
-+
-+6. Report the following to the rt2400-devel mailing list (or rt2500 forum):
-+     * Steps to reproduce the bug
-+     * The _whole_content_ of your debugging output
-+     * Your module details, i.e. the output of:
-+         # modinfo rt2500.ko
-+     * Your kernel details, i.e. the output of:
-+         $ uname -a
-+     * Your rt2500 hardware manufacturer, model and revision
-+     * Anything else you think may help us resolve the issue (even a patch if
-+       you are so inclined)
-+
-+7. Monitor the mailing list (or forum thread) for replies/further queries.  :-)
-+
-+
-+Whenever we do major changes to the source - and always just before a release -
-+we will call for testing to be done before we make the general release. You're
-+very much welcome to help us with this testing and report any success/issue you
-+experience with this code.
- 
- 
- !!!! NOTE !!!!
- 
--AS PER STEP 7 ABOVE. Please provide the whole debug output. The last
--few lines are hardly any good. If it's large (which it will be) then
--GZip it and either upload it somewhere and give it a link or email
--it directly to the developer you are working with.
-+AS PER STEP 6 ABOVE: Please provide the *whole* debug output! The last few lines
-+are hardly any good.
-+If it's large (which it will be) then GZip it. Either attach it to your forum
-+post or, if you're going to report via the mailing list, upload it somewhere and
-+give a link to it (or email it directly to the developer you are working with).
- 
--!!!! END NOTE !!!! 
-+!!!! END NOTE !!!!
-diff -Nur rt2500-1.1.0-b4/Module/assoc.c rt2500-cvs-2007061011/Module/assoc.c
---- rt2500-1.1.0-b4/Module/assoc.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/assoc.c	2007-03-21 05:25:34.000000000 +0100
-@@ -1,36 +1,36 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
--
-- /*************************************************************************** 
-- *      Module Name: assoc.c 
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      MarkW           8th  Dec 04     Baseline code  
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
-+
-+ /***************************************************************************
-+ *      Module Name: assoc.c
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      MarkW           8th  Dec 04     Baseline code
-  * 		MarkW			5th  Jun 05		Fix no-SSID broadcasting assoc.
-- ***************************************************************************/ 
-+ ***************************************************************************/
- 
- #include "rt_config.h"
- 
-@@ -78,15 +78,15 @@
- 		};
- UCHAR	CipherSuiteWpaPskAesLen = (sizeof(CipherSuiteWpaPskAes) / sizeof(UCHAR));
- 
--/*  
-+/*
-     ==========================================================================
--    Description: 
-+    Description:
-         association state machine init, including state transition and timer init
--    Parameters: 
-+    Parameters:
-         S - pointer to the association state machine
-     Note:
--        The state machine looks like the following 
--        
-+        The state machine looks like the following
-+
-                                ASSOC_IDLE               ASSOC_WAIT_RSP             REASSOC_WAIT_RSP             DISASSOC_WAIT_RSP
-     MT2_MLME_ASSOC_REQ       mlme_assoc_req_action    invalid_state_when_assoc   invalid_state_when_assoc       invalid_state_when_assoc
-     MT2_MLME_REASSOC_REQ     mlme_reassoc_req_action  invalid_state_when_reassoc invalid_state_when_reassoc     invalid_state_when_reassoc
-@@ -103,9 +103,9 @@
-     ==========================================================================
-  */
- VOID AssocStateMachineInit(
--    IN	PRTMP_ADAPTER	pAd, 
--    IN  STATE_MACHINE *S, 
--    OUT STATE_MACHINE_FUNC Trans[]) 
-+    IN	PRTMP_ADAPTER	pAd,
-+    IN  STATE_MACHINE *S,
-+    OUT STATE_MACHINE_FUNC Trans[])
- {
-     StateMachineInit(S, (STATE_MACHINE_FUNC*)Trans, MAX_ASSOC_STATE, MAX_ASSOC_MSG, (STATE_MACHINE_FUNC)Drop, ASSOC_IDLE, ASSOC_MACHINE_BASE);
- 
-@@ -115,7 +115,7 @@
-     StateMachineSetAction(S, ASSOC_IDLE, MT2_MLME_DISASSOC_REQ, (STATE_MACHINE_FUNC)MlmeDisassocReqAction);
-     StateMachineSetAction(S, ASSOC_IDLE, MT2_PEER_DISASSOC_REQ, (STATE_MACHINE_FUNC)PeerDisassocAction);
- //  StateMachineSetAction(S, ASSOC_IDLE, MT2_CLS3ERR, (STATE_MACHINE_FUNC)Cls3errAction);
--    
-+
-     // second column
-     StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_MLME_ASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenAssoc);
-     StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_MLME_REASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenReassoc);
-@@ -151,14 +151,14 @@
- /*
-     ==========================================================================
-     Description:
--        Association timeout procedure. After association timeout, this function 
-+        Association timeout procedure. After association timeout, this function
-         will be called and it will put a message into the MLME queue
-     Parameters:
-         Standard timer parameters
-     ==========================================================================
-  */
- VOID AssocTimeout(
--    IN	unsigned long data) 
-+    IN	unsigned long data)
- {
-     RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)data;
-     DBGPRINT(RT_DEBUG_TRACE,"ASSOC - enqueue MT2_ASSOC_TIMEOUT \n");
-@@ -169,14 +169,14 @@
- /*
-     ==========================================================================
-     Description:
--        Reassociation timeout procedure. After reassociation timeout, this 
-+        Reassociation timeout procedure. After reassociation timeout, this
-         function will be called and put a message into the MLME queue
-     Parameters:
-         Standard timer parameters
-     ==========================================================================
-  */
- VOID ReassocTimeout(
--    IN	unsigned long data) 
-+    IN	unsigned long data)
- {
-     RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)data;
-     DBGPRINT(RT_DEBUG_TRACE,"ASSOC - enqueue MT2_REASSOC_TIMEOUT \n");
-@@ -187,14 +187,14 @@
- /*
-     ==========================================================================
-     Description:
--        Disassociation timeout procedure. After disassociation timeout, this 
-+        Disassociation timeout procedure. After disassociation timeout, this
-         function will be called and put a message into the MLME queue
-     Parameters:
-         Standard timer parameters
-     ==========================================================================
-  */
- VOID DisassocTimeout(
--    IN	unsigned long data) 
-+    IN	unsigned long data)
- {
-     RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)data;
-     DBGPRINT(RT_DEBUG_TRACE,"ASSOC - enqueue MT2_DISASSOC_TIMEOUT \n");
-@@ -222,8 +222,8 @@
-     ==========================================================================
-  */
- VOID MlmeAssocReqAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     MACADDR          ApAddr;
-     MACHDR           AssocHdr;
-@@ -243,9 +243,9 @@
-         DBGPRINT(RT_DEBUG_TRACE, "ASSOC - Block Assoc request durning WPA block period!\n");
-         pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-         MlmeCntlConfirm(pAd, MT2_ASSOC_CONF, MLME_STATE_MACHINE_REJECT);
--	}	
-+	}
-     // check sanity first
--    else if (MlmeAssocReqSanity(pAd, Elem->Msg, Elem->MsgLen, &ApAddr, &CapabilityInfo, &Timeout, &ListenIntv)) 
-+    else if (MlmeAssocReqSanity(pAd, Elem->Msg, Elem->MsgLen, &ApAddr, &CapabilityInfo, &Timeout, &ListenIntv))
-     {
-         RTMPCancelTimer(&pAd->Mlme.AssocAux.AssocTimer);
-         COPY_MAC_ADDR(&pAd->Mlme.AssocAux.Addr, &ApAddr);
-@@ -255,23 +255,23 @@
-         pAd->Mlme.AssocAux.ListenIntv = ListenIntv;
- 
-         NStatus = MlmeAllocateMemory(pAd, (PVOID)&OutBuffer);  //Get an unused nonpaged memory
--        if (NStatus != NDIS_STATUS_SUCCESS) 
-+        if (NStatus != NDIS_STATUS_SUCCESS)
-         {
-             DBGPRINT(RT_DEBUG_TRACE,"ASSOC - MlmeAssocReqAction() allocate memory failed \n");
-             pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-             MlmeCntlConfirm(pAd, MT2_ASSOC_CONF, MLME_FAIL_NO_RESOURCE);
-             return;
-         }
--        
-+
- 		// Add by James 03/06/27
- 		pAd->PortCfg.AssocInfo.Length = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION); //+ sizeof(NDIS_802_11_FIXED_IEs); 	// Filled in assoc request
- 		pAd->PortCfg.AssocInfo.AvailableRequestFixedIEs =
- 			NDIS_802_11_AI_REQFI_CAPABILITIES | NDIS_802_11_AI_REQFI_LISTENINTERVAL | NDIS_802_11_AI_REQFI_CURRENTAPADDRESS;
- 		pAd->PortCfg.AssocInfo.RequestFixedIEs.Capabilities = CapabilityInfo;
--		pAd->PortCfg.AssocInfo.RequestFixedIEs.ListenInterval = ListenIntv;		
-+		pAd->PortCfg.AssocInfo.RequestFixedIEs.ListenInterval = ListenIntv;
- 		memcpy(pAd->PortCfg.AssocInfo.RequestFixedIEs.CurrentAPAddress, &AssocHdr, sizeof(NDIS_802_11_MAC_ADDRESS));
- 		pAd->PortCfg.AssocInfo.OffsetRequestIEs = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION);		// No request Variables IEs
--		
-+
- 		// First add SSID
- 		VarIesOffset = 0;
- 		memcpy(pAd->PortCfg.ReqVarIEs + VarIesOffset, &SsidIe, 1);
-@@ -299,7 +299,7 @@
- 						  2,						&CapabilityInfo,
- 						  2,						&ListenIntv,
- 						  1,						&SsidIe,
--						  1,						&pAd->Mlme.SyncAux.SsidLen, 
-+						  1,						&pAd->Mlme.SyncAux.SsidLen,
- 						  pAd->Mlme.SyncAux.SsidLen, 	pAd->Mlme.SyncAux.Ssid,
- 						  1,						&RateIe,
- 						  1,						&pAd->PortCfg.SupRateLen,
-@@ -310,11 +310,11 @@
- 			MakeOutgoingFrame(OutBuffer + FrameLen, &tmp,
- 						1,							&ExtRateIe,
- 						1,							&pAd->PortCfg.ExtRateLen,
--						pAd->PortCfg.ExtRateLen,	pAd->PortCfg.ExtRate,							
-+						pAd->PortCfg.ExtRateLen,	pAd->PortCfg.ExtRate,
- 						END_OF_ARGS);
- 			FrameLen += tmp;
- 		}
--		
-+
- 		if ((pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPA) && (pAd->PortCfg.WepStatus == Ndis802_11Encryption2Enabled))
- 		{
- 			MakeOutgoingFrame(OutBuffer + FrameLen, &tmp,
-@@ -323,7 +323,7 @@
- 						CipherSuiteWpaTkipLen,	  	&CipherSuiteWpaTkip[0],
- 						END_OF_ARGS);
- 			FrameLen += tmp;
--			
-+
- 			// Add by James 03/06/27
- 			// Third add RSN
- 			memcpy(pAd->PortCfg.ReqVarIEs + VarIesOffset, &WpaIe, 1);
-@@ -339,9 +339,9 @@
- 
- 			// OffsetResponseIEs follow ReqVarIE
- 			pAd->PortCfg.AssocInfo.OffsetResponseIEs = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION) + pAd->PortCfg.ReqVarIELen;
--			// End Add by James 
-+			// End Add by James
- 		}
--		
-+
- 		else if ((pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPA) && (pAd->PortCfg.WepStatus == Ndis802_11Encryption3Enabled))
- 		{
- 			MakeOutgoingFrame(OutBuffer + FrameLen, &tmp,
-@@ -350,7 +350,7 @@
- 						CipherSuiteWpaAesLen,	  	&CipherSuiteWpaAes[0],
- 						END_OF_ARGS);
- 			FrameLen += tmp;
--			
-+
- 			// Add by James 03/06/27
- 			// Third add RSN
- 			memcpy(pAd->PortCfg.ReqVarIEs + VarIesOffset, &WpaIe, 1);
-@@ -366,7 +366,7 @@
- 
- 			// OffsetResponseIEs follow ReqVarIE
- 			pAd->PortCfg.AssocInfo.OffsetResponseIEs = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION) + pAd->PortCfg.ReqVarIELen;
--			// End Add by James 
-+			// End Add by James
- 		}
- 		else if ((pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPAPSK) && (pAd->PortCfg.WepStatus == Ndis802_11Encryption2Enabled))
- 		{
-@@ -392,7 +392,7 @@
- 
- 			// OffsetResponseIEs follow ReqVarIE
- 			pAd->PortCfg.AssocInfo.OffsetResponseIEs = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION) + pAd->PortCfg.ReqVarIELen;
--			// End Add by James 
-+			// End Add by James
- 		}
- 		else if ((pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPAPSK) && (pAd->PortCfg.WepStatus == Ndis802_11Encryption3Enabled))
- 		{
-@@ -418,7 +418,7 @@
- 
- 			// OffsetResponseIEs follow ReqVarIE
- 			pAd->PortCfg.AssocInfo.OffsetResponseIEs = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION) + pAd->PortCfg.ReqVarIELen;
--			// End Add by James 
-+			// End Add by James
- 		}
- 		else
- 		{
-@@ -429,14 +429,14 @@
- 
- 			// OffsetResponseIEs follow ReqVarIE
- 			pAd->PortCfg.AssocInfo.OffsetResponseIEs = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION) + pAd->PortCfg.ReqVarIELen;
--			// End Add by James 
-+			// End Add by James
- 		}
-         MiniportMMRequest(pAd, OutBuffer, FrameLen);
--            
-+
- 		RTMPSetTimer(pAd, &pAd->Mlme.AssocAux.AssocTimer, Timeout);
-         pAd->Mlme.AssocMachine.CurrState = ASSOC_WAIT_RSP;
--    } 
--    else 
-+    }
-+    else
-     {
-         DBGPRINT(RT_DEBUG_TRACE,"ASSOC - MlmeAssocReqAction() sanity check failed. BUG!!!!!! \n");
-         pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-@@ -450,7 +450,7 @@
-     Description:
-         mlme reassoc req handling procedure
-     Parameters:
--        Elem - 
-+        Elem -
-     Pre:
-         -# SSID  (Adapter->PortCfg.ssid[])
-         -# BSSID (AP address, Adapter->PortCfg.bssid)
-@@ -460,8 +460,8 @@
-     ==========================================================================
-  */
- VOID MlmeReassocReqAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     MACADDR              ApAddr;
-     MACHDR               ReassocHdr;
-@@ -479,14 +479,14 @@
-         DBGPRINT(RT_DEBUG_TRACE, "ASSOC - Block ReAssoc request durning WPA block period!\n");
-         pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-         MlmeCntlConfirm(pAd, MT2_ASSOC_CONF, MLME_STATE_MACHINE_REJECT);
--	}	
-+	}
-     // the parameters are the same as the association
--    else if(MlmeAssocReqSanity(pAd, Elem->Msg, Elem->MsgLen, &ApAddr, &CapabilityInfo, &Timeout, &ListenIntv)) 
-+    else if(MlmeAssocReqSanity(pAd, Elem->Msg, Elem->MsgLen, &ApAddr, &CapabilityInfo, &Timeout, &ListenIntv))
-     {
-         RTMPCancelTimer(&pAd->Mlme.AssocAux.ReassocTimer);
- 
-         NStatus = MlmeAllocateMemory(pAd, (PVOID)&OutBuffer);  //Get an unused nonpaged memory
--        if(NStatus != NDIS_STATUS_SUCCESS) 
-+        if(NStatus != NDIS_STATUS_SUCCESS)
-         {
-             DBGPRINT(RT_DEBUG_TRACE,"ASSOC - MlmeReassocReqAction() allocate memory failed \n");
-             pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-@@ -509,8 +509,8 @@
-                           2,                    &ListenIntv,
-                           ETH_ALEN,         &pAd->PortCfg.Bssid,
-                           1,                    &SsidIe,
--                          1,                    &pAd->PortCfg.SsidLen, 
--                          pAd->PortCfg.SsidLen, pAd->PortCfg.Ssid, 
-+                          1,                    &pAd->PortCfg.SsidLen,
-+                          pAd->PortCfg.SsidLen, pAd->PortCfg.Ssid,
-                           1,                    &RateIe,
- 						  1,						&pAd->PortCfg.SupRateLen,
- 						  pAd->PortCfg.SupRateLen,  pAd->PortCfg.SupRate,
-@@ -520,16 +520,16 @@
- 			MakeOutgoingFrame(OutBuffer + FrameLen, &tmp,
- 						1,							&ExtRateIe,
- 						1,							&pAd->PortCfg.ExtRateLen,
--						pAd->PortCfg.ExtRateLen,	pAd->PortCfg.ExtRate,							
-+						pAd->PortCfg.ExtRateLen,	pAd->PortCfg.ExtRate,
- 						END_OF_ARGS);
- 			FrameLen += tmp;
- 		}
-         MiniportMMRequest(pAd, OutBuffer, FrameLen);
--            
-+
-         RTMPSetTimer(pAd, &pAd->Mlme.AssocAux.ReassocTimer, Timeout); /* in mSec */
-         pAd->Mlme.AssocMachine.CurrState = REASSOC_WAIT_RSP;
--    } 
--    else 
-+    }
-+    else
-     {
-         DBGPRINT(RT_DEBUG_TRACE,"ASSOC - MlmeReassocReqAction() sanity check failed. BUG!!!! \n");
-         pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-@@ -546,8 +546,8 @@
-     ==========================================================================
-  */
- VOID MlmeDisassocReqAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     MLME_DISASSOC_REQ_STRUCT *DisassocReq;
-     MACHDR                DisassocHdr;
-@@ -560,25 +560,25 @@
-     DisassocReq = (MLME_DISASSOC_REQ_STRUCT *)(Elem->Msg);
- 
-     NStatus = MlmeAllocateMemory(pAd, (PVOID)&OutBuffer);  //Get an unused nonpaged memory
--    if (NStatus != NDIS_STATUS_SUCCESS) 
-+    if (NStatus != NDIS_STATUS_SUCCESS)
-     {
-         DBGPRINT(RT_DEBUG_TRACE, "ASSOC - MlmeDisassocReqAction() allocate memory failed\n");
-         pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-         MlmeCntlConfirm(pAd, MT2_DISASSOC_CONF, MLME_FAIL_NO_RESOURCE);
-         return;
-     }
--    
-+
-     RTMPCancelTimer(&pAd->Mlme.AssocAux.DisassocTimer);
--    
-+
-     DBGPRINT(RT_DEBUG_TRACE, "ASSOC - Send DISASSOC request\n");
-     MgtMacHeaderInit(pAd, &DisassocHdr, SUBTYPE_DISASSOC, 0, &pAd->PortCfg.Bssid, &pAd->PortCfg.Bssid);
--    MakeOutgoingFrame(OutBuffer,            &FrameLen, 
--                      sizeof(MACHDR),       &DisassocHdr, 
--                      2,                    &DisassocReq->Reason, 
-+    MakeOutgoingFrame(OutBuffer,            &FrameLen,
-+                      sizeof(MACHDR),       &DisassocHdr,
-+                      2,                    &DisassocReq->Reason,
-                       END_OF_ARGS);
-     MiniportMMRequest(pAd, OutBuffer, FrameLen);
-     memset(&(pAd->PortCfg.Bssid), 0, ETH_ALEN);
--    
-+
-     pAd->PortCfg.DisassocReason = REASON_DISASSOC_STA_LEAVING;
-     COPY_MAC_ADDR(&pAd->PortCfg.DisassocSta, &DisassocReq->Addr);
- 
-@@ -595,31 +595,31 @@
-     ==========================================================================
-  */
- VOID PeerAssocRspAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     USHORT        CapabilityInfo, Status, Aid;
-     UCHAR         Rates[MAX_LEN_OF_SUPPORTED_RATES], RatesLen;
-     MACADDR       Addr2;
-     BOOLEAN       ExtendedRateIeExist;
- 
--    if (PeerAssocRspSanity(pAd, Elem->Msg, Elem->MsgLen, &Addr2, &CapabilityInfo, &Status, &Aid, Rates, &RatesLen, &ExtendedRateIeExist)) 
-+    if (PeerAssocRspSanity(pAd, Elem->Msg, Elem->MsgLen, &Addr2, &CapabilityInfo, &Status, &Aid, Rates, &RatesLen, &ExtendedRateIeExist))
-     {
-         // The frame is for me ?
--        if(MAC_ADDR_EQUAL(&Addr2, &pAd->Mlme.AssocAux.Addr)) 
-+        if(MAC_ADDR_EQUAL(&Addr2, &pAd->Mlme.AssocAux.Addr))
-         {
-             DBGPRINT(RT_DEBUG_TRACE, "ASSOC - receive ASSOC_RSP to me (status=%d)\n", Status);
-             RTMPCancelTimer(&pAd->Mlme.AssocAux.AssocTimer);
--            if(Status == MLME_SUCCESS) 
-+            if(Status == MLME_SUCCESS)
-             {
-                 // go to procedure listed on page 376
- 				// Mask out unnecessary capability information
- 				CapabilityInfo &= SUPPORTED_CAPABILITY_INFO;  // pAd->PortCfg.SupportedCapabilityInfo;
-                 AssocPostProc(pAd, &Addr2, CapabilityInfo, Aid, Rates, RatesLen, ExtendedRateIeExist);
--            } 
-+            }
-             pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-             MlmeCntlConfirm(pAd, MT2_ASSOC_CONF, Status);
--        } 
-+        }
-     }
-     else
-     {
-@@ -636,8 +636,8 @@
-     ==========================================================================
-  */
- VOID PeerReassocRspAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     USHORT      CapabilityInfo;
-     USHORT      Status;
-@@ -647,24 +647,24 @@
-     MACADDR     Addr2;
-     BOOLEAN     ExtendedRateIeExist;
- 
--    if(PeerAssocRspSanity(pAd, Elem->Msg, Elem->MsgLen, &Addr2, &CapabilityInfo, &Status, &Aid, Rates, &RatesLen, &ExtendedRateIeExist)) 
-+    if(PeerAssocRspSanity(pAd, Elem->Msg, Elem->MsgLen, &Addr2, &CapabilityInfo, &Status, &Aid, Rates, &RatesLen, &ExtendedRateIeExist))
-     {
-         if(MAC_ADDR_EQUAL(&Addr2, &pAd->Mlme.AssocAux.Addr)) // The frame is for me ?
-         {
-             DBGPRINT(RT_DEBUG_TRACE, "ASSOC - receive REASSOC_RSP to me (status=%d)\n", Status);
-             RTMPCancelTimer(&pAd->Mlme.AssocAux.ReassocTimer);
--            
--            if(Status == MLME_SUCCESS) 
-+
-+            if(Status == MLME_SUCCESS)
-             {
- 				// Mask out unnecessary capability information
- 				CapabilityInfo &= SUPPORTED_CAPABILITY_INFO;  // pAd->PortCfg.SupportedCapabilityInfo;
-                 // go to procedure listed on page 376
-                 AssocPostProc(pAd, &Addr2, CapabilityInfo, Aid, Rates, RatesLen, ExtendedRateIeExist);
--            } 
-+            }
- 
-             pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-             MlmeCntlConfirm(pAd, MT2_REASSOC_CONF, Status);
--        } 
-+        }
-     }
-     else
-     {
-@@ -675,28 +675,28 @@
- /*
-     ==========================================================================
-     Description:
--        procedures on IEEE 802.11/1999 p.376 
-+        procedures on IEEE 802.11/1999 p.376
-     Parametrs:
-     ==========================================================================
-  */
- VOID AssocPostProc(
--    IN PRTMP_ADAPTER pAd, 
--    IN PMACADDR Addr2, 
--    IN USHORT CapabilityInfo, 
--    IN USHORT Aid, 
--    IN UCHAR Rates[], 
-+    IN PRTMP_ADAPTER pAd,
-+    IN PMACADDR Addr2,
-+    IN USHORT CapabilityInfo,
-+    IN USHORT Aid,
-+    IN UCHAR Rates[],
-     IN UCHAR RatesLen,
--    IN BOOLEAN ExtendedRateIeExist) 
-+    IN BOOLEAN ExtendedRateIeExist)
- {
- 	ULONG Idx;
-     UCHAR RateIe = IE_SUPP_RATES;
- 	UCHAR VarIesOffset;
- 
--    // 2003/12/11 -  skip the following because experiment show that we can not 
-+    // 2003/12/11 -  skip the following because experiment show that we can not
-     // trust the "privacy" bit in AssocRsp. We can only trust "Privacy" bit specified in
-     // BEACON and ProbeRsp.
-     // pAd->PortCfg.PrivacyInvoked = CAP_IS_PRIVACY_ON(CapabilityInfo);
--    
-+
-     pAd->PortCfg.Aid = Aid;
-     memcpy(pAd->PortCfg.SupportedRates, Rates, RatesLen);
-     pAd->PortCfg.SupportedRatesLen = RatesLen;
-@@ -709,7 +709,7 @@
- 
- 	// Set New WPA information
- 	Idx = BssTableSearch(&pAd->PortCfg.BssTab, Addr2);
--	if (Idx == BSS_NOT_FOUND) 
-+	if (Idx == BSS_NOT_FOUND)
- 	{
- 		DBGPRINT(RT_DEBUG_ERROR, "ASSOC - Can't find BSS after receiving Assoc response\n");
- 	}
-@@ -736,7 +736,7 @@
- 		// Second add RSN
- 		memcpy(pAd->PortCfg.ResVarIEs + VarIesOffset, pAd->PortCfg.BssTab.BssEntry[Idx].VarIEs, pAd->PortCfg.BssTab.BssEntry[Idx].VarIELen);
- 		VarIesOffset += pAd->PortCfg.BssTab.BssEntry[Idx].VarIELen;
--		
-+
- 		// Set Variable IEs Length
- 		pAd->PortCfg.ResVarIELen = VarIesOffset;
- 		pAd->PortCfg.AssocInfo.ResponseIELength = VarIesOffset;
-@@ -747,22 +747,22 @@
- /*
-     ==========================================================================
-     Description:
--        left part of IEEE 802.11/1999 p.374 
-+        left part of IEEE 802.11/1999 p.374
-     Parameters:
-         Elem - MLME message containing the received frame
-     ==========================================================================
-  */
- VOID PeerDisassocAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     MACADDR       Addr2;
-     USHORT        Reason;
- 
--    if(PeerDisassocSanity(pAd, Elem->Msg, Elem->MsgLen, &Addr2, &Reason)) 
-+    if(PeerDisassocSanity(pAd, Elem->Msg, Elem->MsgLen, &Addr2, &Reason))
-     {
--        if (INFRA_ON(pAd) && MAC_ADDR_EQUAL(&pAd->PortCfg.Bssid, &Addr2)) 
--        {	
-+        if (INFRA_ON(pAd) && MAC_ADDR_EQUAL(&pAd->PortCfg.Bssid, &Addr2))
-+        {
-             LinkDown(pAd);
-             pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
- 
-@@ -786,8 +786,8 @@
-     ==========================================================================
-  */
- VOID AssocTimeoutAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     DBGPRINT(RT_DEBUG_TRACE, "ASSOC - AssocTimeoutAction\n");
-     pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-@@ -801,8 +801,8 @@
-     ==========================================================================
-  */
- VOID ReassocTimeoutAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     DBGPRINT(RT_DEBUG_TRACE, "ASSOC - ReassocTimeoutAction\n");
-     pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-@@ -816,8 +816,8 @@
-     ==========================================================================
-  */
- VOID DisassocTimeoutAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     DBGPRINT(RT_DEBUG_TRACE, "ASSOC - DisassocTimeoutAction\n");
-     pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-@@ -825,30 +825,30 @@
- }
- 
- VOID InvalidStateWhenAssoc(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
--    DBGPRINT(RT_DEBUG_TRACE, "ASSOC - InvalidStateWhenAssoc(state=%d), reset ASSOC state machine\n", 
-+    DBGPRINT(RT_DEBUG_TRACE, "ASSOC - InvalidStateWhenAssoc(state=%d), reset ASSOC state machine\n",
-         pAd->Mlme.AssocMachine.CurrState);
-     pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-     MlmeCntlConfirm(pAd, MT2_ASSOC_CONF, MLME_STATE_MACHINE_REJECT);
- }
- 
- VOID InvalidStateWhenReassoc(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
--    DBGPRINT(RT_DEBUG_TRACE, "ASSOC - InvalidStateWhenReassoc(state=%d), reset ASSOC state machine\n", 
-+    DBGPRINT(RT_DEBUG_TRACE, "ASSOC - InvalidStateWhenReassoc(state=%d), reset ASSOC state machine\n",
-         pAd->Mlme.AssocMachine.CurrState);
-     pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-     MlmeCntlConfirm(pAd, MT2_REASSOC_CONF, MLME_STATE_MACHINE_REJECT);
- }
- 
- VOID InvalidStateWhenDisassociate(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
--    DBGPRINT(RT_DEBUG_TRACE, "ASSOC - InvalidStateWhenDisassoc(state=%d), reset ASSOC state machine\n", 
-+    DBGPRINT(RT_DEBUG_TRACE, "ASSOC - InvalidStateWhenDisassoc(state=%d), reset ASSOC state machine\n",
-         pAd->Mlme.AssocMachine.CurrState);
-     pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-     MlmeCntlConfirm(pAd, MT2_DISASSOC_CONF, MLME_STATE_MACHINE_REJECT);
-@@ -858,15 +858,15 @@
-     ==========================================================================
-     Description:
-         right part of IEEE 802.11/1999 page 374
--    Note: 
-+    Note:
-         This event should never cause ASSOC state machine perform state
-         transition, and has no relationship with CNTL machine. So we separate
-         this routine as a service outside of ASSOC state transition table.
-     ==========================================================================
-  */
- VOID Cls3errAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN PMACADDR      pAddr) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN PMACADDR      pAddr)
- {
-     MACHDR                DisassocHdr;
-     CHAR                 *OutBuffer = NULL;
-@@ -875,19 +875,19 @@
-     USHORT                Reason = REASON_CLS3ERR;
- 
-     NStatus = MlmeAllocateMemory(pAd, (PVOID)&OutBuffer);  //Get an unused nonpaged memory
--    if (NStatus != NDIS_STATUS_SUCCESS) 
-+    if (NStatus != NDIS_STATUS_SUCCESS)
-         return;
--    
-+
-     DBGPRINT(RT_DEBUG_TRACE, "ASSOC - Class 3 Error, Send DISASSOC frame\n");
-     MgtMacHeaderInit(pAd, &DisassocHdr, SUBTYPE_DISASSOC, 0, pAddr, &pAd->PortCfg.Bssid);
--    MakeOutgoingFrame(OutBuffer,            &FrameLen, 
--                      sizeof(MACHDR),       &DisassocHdr, 
--                      2,                    &Reason, 
-+    MakeOutgoingFrame(OutBuffer,            &FrameLen,
-+                      sizeof(MACHDR),       &DisassocHdr,
-+                      2,                    &Reason,
-                       END_OF_ARGS);
-     MiniportMMRequest(pAd, OutBuffer, FrameLen);
- 
-     pAd->PortCfg.DisassocReason = REASON_CLS3ERR;
-     COPY_MAC_ADDR(&pAd->PortCfg.DisassocSta, pAddr);
- }
-- 
-+
- 
-diff -Nur rt2500-1.1.0-b4/Module/auth.c rt2500-cvs-2007061011/Module/auth.c
---- rt2500-1.1.0-b4/Module/auth.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/auth.c	2007-05-06 11:13:44.000000000 +0200
-@@ -1,35 +1,35 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
--
-- /*************************************************************************** 
-- *      Module Name: auth.c 
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      MarkW           8th  Dec 04     Baseline code  
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
-+
-+ /***************************************************************************
-+ *      Module Name: auth.c
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      MarkW           8th  Dec 04     Baseline code
-+ ***************************************************************************/
- 
- #include "rt_config.h"
- 
-@@ -41,7 +41,7 @@
-         Sm - pointer to the auth state machine
-     Note:
-         The state machine looks like this
--        
-+
-                         AUTH_REQ_IDLE           AUTH_WAIT_SEQ2                   AUTH_WAIT_SEQ4
-     MT2_MLME_AUTH_REQ   mlme_auth_req_action    invalid_state_when_auth          invalid_state_when_auth
-     MT2_MLME_DEAUTH_REQ mlme_deauth_req_action  mlme_deauth_req_action           mlme_deauth_req_action
-@@ -52,12 +52,12 @@
-  */
- 
- void AuthStateMachineInit(
--    IN PRTMP_ADAPTER pAd, 
--    IN STATE_MACHINE *Sm, 
--    OUT STATE_MACHINE_FUNC Trans[]) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN STATE_MACHINE *Sm,
-+    OUT STATE_MACHINE_FUNC Trans[])
- {
-     StateMachineInit(Sm, (STATE_MACHINE_FUNC*)Trans, MAX_AUTH_STATE, MAX_AUTH_MSG, (STATE_MACHINE_FUNC)Drop, AUTH_REQ_IDLE, AUTH_MACHINE_BASE);
--     
-+
-     // the first column
-     StateMachineSetAction(Sm, AUTH_REQ_IDLE, MT2_MLME_AUTH_REQ, (STATE_MACHINE_FUNC)MlmeAuthReqAction);
- //  StateMachineSetAction(Sm, AUTH_REQ_IDLE, MT2_MLME_DEAUTH_REQ, (STATE_MACHINE_FUNC)MlmeDeauthReqAction);
-@@ -69,14 +69,14 @@
- //  StateMachineSetAction(Sm, AUTH_WAIT_SEQ2, MT2_CLS2ERR, (STATE_MACHINE_FUNC)Cls2errAction);
-     StateMachineSetAction(Sm, AUTH_WAIT_SEQ2, MT2_PEER_AUTH_EVEN, (STATE_MACHINE_FUNC)PeerAuthRspAtSeq2Action);
-     StateMachineSetAction(Sm, AUTH_WAIT_SEQ2, MT2_AUTH_TIMEOUT, (STATE_MACHINE_FUNC)AuthTimeoutAction);
--    
-+
-     // the third column
-     StateMachineSetAction(Sm, AUTH_WAIT_SEQ4, MT2_MLME_AUTH_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenAuth);
- //  StateMachineSetAction(Sm, AUTH_WAIT_SEQ4, MT2_MLME_DEAUTH_REQ, (STATE_MACHINE_FUNC)MlmeDeauthReqAction);
- //  StateMachineSetAction(Sm, AUTH_WAIT_SEQ4, MT2_CLS2ERR, (STATE_MACHINE_FUNC)Cls2errAction);
-     StateMachineSetAction(Sm, AUTH_WAIT_SEQ4, MT2_PEER_AUTH_EVEN, (STATE_MACHINE_FUNC)PeerAuthRspAtSeq4Action);
-     StateMachineSetAction(Sm, AUTH_WAIT_SEQ4, MT2_AUTH_TIMEOUT, (STATE_MACHINE_FUNC)AuthTimeoutAction);
--    
-+
-     RTMPInitTimer(pAd, &pAd->Mlme.AuthAux.AuthTimer, AuthTimeout);
- }
- 
-@@ -90,7 +90,7 @@
-     IN	unsigned long data)
- {
-     RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)data;
--    
-+
-     DBGPRINT(RT_DEBUG_TRACE,"AUTH - AuthTimeout\n");
-     MlmeEnqueue(&pAd->Mlme.Queue, AUTH_STATE_MACHINE, MT2_AUTH_TIMEOUT, 0, NULL);
-     MlmeHandler(pAd);
-@@ -103,8 +103,8 @@
-     ==========================================================================
-  */
- VOID MlmeAuthReqAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     MACADDR            Addr;
-     USHORT             Alg, Seq, Status;
-@@ -121,16 +121,15 @@
-         pAd->Mlme.AuthMachine.CurrState = AUTH_REQ_IDLE;
-         MlmeCntlConfirm(pAd, MT2_AUTH_CONF, MLME_STATE_MACHINE_REJECT);
-     }
--    else if(MlmeAuthReqSanity(pAd, Elem->Msg, Elem->MsgLen, &Addr, &Timeout, &Alg)) 
-+    else if(MlmeAuthReqSanity(pAd, Elem->Msg, Elem->MsgLen, &Addr, &Timeout, &Alg))
-     {
--        // reset timer
--        RTMPCancelTimer(&pAd->Mlme.AuthAux.AuthTimer);
-+	RTMPCancelTimer(&pAd->Mlme.AuthAux.AuthTimer);
-         pAd->Mlme.AuthAux.Addr = Addr;
-         pAd->Mlme.AuthAux.Alg  = Alg;
-         pAd->PortCfg.Mauth = FALSE;
-         Seq = 1;
-         Status = MLME_SUCCESS;
--        
-+
-         NStatus = MlmeAllocateMemory(pAd, (PVOID)&OutBuffer);  //Get an unused nonpaged memory
-         if(NStatus != NDIS_STATUS_SUCCESS)
-         {
-@@ -142,18 +141,18 @@
- 
-         DBGPRINT(RT_DEBUG_TRACE, "AUTH - Send AUTH request seq#1 (Alg=%d)...\n", Alg);
-         MgtMacHeaderInit(pAd, &AuthHdr, SUBTYPE_AUTH, 0, &Addr, &pAd->PortCfg.Bssid);
--        MakeOutgoingFrame(OutBuffer,            &FrameLen, 
--                          MAC_HDR_LEN,          &AuthHdr, 
--                          2,                    &Alg, 
--                          2,                    &Seq, 
--                          2,                    &Status, 
-+        MakeOutgoingFrame(OutBuffer,            &FrameLen,
-+                          MAC_HDR_LEN,          &AuthHdr,
-+                          2,                    &Alg,
-+                          2,                    &Seq,
-+                          2,                    &Status,
-                           END_OF_ARGS);
-         MiniportMMRequest(pAd, OutBuffer, FrameLen);
- 
-         RTMPSetTimer(pAd, &pAd->Mlme.AuthAux.AuthTimer, Timeout);
-         pAd->Mlme.AuthMachine.CurrState = AUTH_WAIT_SEQ2;
--    } 
--    else 
-+    }
-+    else
-     {
-         printk(KERN_ERR DRV_NAME "AUTH - MlmeAuthReqAction() sanity check failed. BUG!!!!!\n");
-         pAd->Mlme.AuthMachine.CurrState = AUTH_REQ_IDLE;
-@@ -167,8 +166,8 @@
-     ==========================================================================
-  */
- VOID PeerAuthRspAtSeq2Action(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     MACADDR       Addr2;
-     USHORT        Seq, Status, RemoteStatus, Alg;
-@@ -180,21 +179,21 @@
-     NDIS_STATUS   NStatus;
-     ULONG         FrameLen = 0;
- 
--    if (PeerAuthSanity(pAd, Elem->Msg, Elem->MsgLen, &Addr2, &Alg, &Seq, &Status, ChlgText)) 
-+    if (PeerAuthSanity(pAd, Elem->Msg, Elem->MsgLen, &Addr2, &Alg, &Seq, &Status, ChlgText))
-     {
--        if (MAC_ADDR_EQUAL(&pAd->Mlme.AuthAux.Addr, &Addr2) && Seq == 2) 
-+        if (MAC_ADDR_EQUAL(&pAd->Mlme.AuthAux.Addr, &Addr2) && Seq == 2)
-         {
-             DBGPRINT(RT_DEBUG_TRACE, "AUTH - Receive AUTH_RSP seq#2 to me (Alg=%d, Status=%d)\n", Alg, Status);
-             RTMPCancelTimer(&pAd->Mlme.AuthAux.AuthTimer);
--            
--            if (Status == MLME_SUCCESS) 
-+
-+            if (Status == MLME_SUCCESS)
-             {
--                if (pAd->Mlme.AuthAux.Alg == Ndis802_11AuthModeOpen) 
-+                if (pAd->Mlme.AuthAux.Alg == Ndis802_11AuthModeOpen)
-                 {
-                     pAd->PortCfg.Mauth = TRUE;
-                     pAd->Mlme.AuthMachine.CurrState = AUTH_REQ_IDLE;
-                     MlmeCntlConfirm(pAd, MT2_AUTH_CONF, MLME_SUCCESS);
--                } 
-+                }
-                 else
-                 {
-                     // 2. shared key, need to be challenged
-@@ -208,7 +207,7 @@
-                         MlmeCntlConfirm(pAd, MT2_AUTH_CONF, MLME_FAIL_NO_RESOURCE);
-                         return;
-                     }
--                    
-+
-                     DBGPRINT(RT_DEBUG_TRACE, "AUTH - Send AUTH request seq#3...\n");
-                     MgtMacHeaderInit(pAd, &AuthHdr, SUBTYPE_AUTH, 0, &Addr2, &pAd->PortCfg.Bssid);
-                     AuthHdr.Wep = 1;
-@@ -234,9 +233,9 @@
-                     RTMPEncryptData(pAd, Element, CyperChlgText + 10, 2);
-                     RTMPEncryptData(pAd, ChlgText, CyperChlgText + 12, 128);
-                     RTMPSetICV(pAd, CyperChlgText + 140);
--                    MakeOutgoingFrame(OutBuffer,            &FrameLen, 
--                                      MAC_HDR_LEN,          &AuthHdr,  
--                                      CIPHER_TEXT_LEN + 16, CyperChlgText, 
-+                    MakeOutgoingFrame(OutBuffer,            &FrameLen,
-+                                      MAC_HDR_LEN,          &AuthHdr,
-+                                      CIPHER_TEXT_LEN + 16, CyperChlgText,
-                                       END_OF_ARGS);
-                     MiniportMMRequest(pAd, OutBuffer, FrameLen);
- #ifdef BIG_ENDIAN
-@@ -245,8 +244,8 @@
-                     RTMPSetTimer(pAd, &pAd->Mlme.AuthAux.AuthTimer, AUTH_TIMEOUT);
-                     pAd->Mlme.AuthMachine.CurrState = AUTH_WAIT_SEQ4;
-                 }
--            } 
--            else 
-+            }
-+            else
-             {
-                 pAd->PortCfg.AuthFailReason = Status;
-                 COPY_MAC_ADDR(&pAd->PortCfg.AuthFailSta, &Addr2);
-@@ -267,29 +266,29 @@
-     ==========================================================================
-  */
- VOID PeerAuthRspAtSeq4Action(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     MACADDR       Addr2;
-     USHORT        Alg, Seq, Status;
-     CHAR          ChlgText[CIPHER_TEXT_LEN];
- 
--    if(PeerAuthSanity(pAd, Elem->Msg, Elem->MsgLen, &Addr2, &Alg, &Seq, &Status, ChlgText)) 
-+    if(PeerAuthSanity(pAd, Elem->Msg, Elem->MsgLen, &Addr2, &Alg, &Seq, &Status, ChlgText))
-     {
--        if(MAC_ADDR_EQUAL(&(pAd->Mlme.AuthAux.Addr), &Addr2) && Seq == 4) 
-+        if(MAC_ADDR_EQUAL(&(pAd->Mlme.AuthAux.Addr), &Addr2) && Seq == 4)
-         {
-             DBGPRINT(RT_DEBUG_TRACE, "AUTH - Receive AUTH_RSP seq#4 to me\n");
-             RTMPCancelTimer(&pAd->Mlme.AuthAux.AuthTimer);
--            
--            if(Status == MLME_SUCCESS) 
-+
-+            if(Status == MLME_SUCCESS)
-             {
-                 pAd->PortCfg.Mauth = TRUE;
--            } 
--            else 
-+            }
-+            else
-             {
-                 pAd->PortCfg.AuthFailReason = Status;
-                 pAd->PortCfg.AuthFailSta = Addr2;
--            }                
-+            }
- 
-             pAd->Mlme.AuthMachine.CurrState = AUTH_REQ_IDLE;
-             MlmeCntlConfirm(pAd, MT2_AUTH_CONF, Status);
-@@ -307,8 +306,8 @@
-     ==========================================================================
-  */
- VOID MlmeDeauthReqAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     MLME_DEAUTH_REQ_STRUCT *Info;
-     MACHDR        Hdr;
-@@ -329,12 +328,12 @@
- 
-     DBGPRINT(RT_DEBUG_TRACE, "AUTH - Send DE-AUTH request...\n");
-     MgtMacHeaderInit(pAd, &Hdr, SUBTYPE_DEAUTH, 0, &Info->Addr, &pAd->PortCfg.Bssid);
--    MakeOutgoingFrame(OutBuffer,            &FrameLen, 
--                      sizeof(MACHDR),       &Hdr, 
--                      2,                    &Info->Reason, 
-+    MakeOutgoingFrame(OutBuffer,            &FrameLen,
-+                      sizeof(MACHDR),       &Hdr,
-+                      2,                    &Info->Reason,
-                       END_OF_ARGS);
-     MiniportMMRequest(pAd, OutBuffer, FrameLen);
--    
-+
-     pAd->PortCfg.DeauthReason = Info->Reason;
-     COPY_MAC_ADDR(&pAd->PortCfg.DeauthSta, &Info->Addr);
-     pAd->Mlme.AuthMachine.CurrState = AUTH_REQ_IDLE;
-@@ -347,8 +346,8 @@
-     ==========================================================================
-  */
- VOID AuthTimeoutAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     DBGPRINT(RT_DEBUG_TRACE, "AUTH - AuthTimeoutAction\n");
-     pAd->Mlme.AuthMachine.CurrState = AUTH_REQ_IDLE;
-@@ -361,8 +360,8 @@
-     ==========================================================================
-  */
- VOID InvalidStateWhenAuth(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     DBGPRINT(RT_DEBUG_TRACE, "AUTH - InvalidStateWhenAuth (state=%d), reset AUTH state machine\n", pAd->Mlme.AuthMachine.CurrState);
-     pAd->Mlme.AuthMachine.CurrState = AUTH_REQ_IDLE;
-@@ -379,24 +378,24 @@
-     ==========================================================================
-  */
- VOID Cls2errAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN PMACADDR pAddr) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN PMACADDR pAddr)
- {
-     MACHDR        Hdr;
-     UCHAR        *OutBuffer = NULL;
-     NDIS_STATUS   NStatus;
-     ULONG         FrameLen = 0;
-     USHORT        Reason = REASON_CLS2ERR;
--    
-+
-     NStatus = MlmeAllocateMemory(pAd, (PVOID)&OutBuffer);  //Get an unused nonpaged memory
-     if (NStatus != NDIS_STATUS_SUCCESS)
-         return;
- 
-     DBGPRINT(RT_DEBUG_TRACE, "AUTH - Class 2 error, Send DEAUTH frame...\n");
-     MgtMacHeaderInit(pAd, &Hdr, SUBTYPE_DEAUTH, 0, pAddr, &pAd->PortCfg.Bssid);
--    MakeOutgoingFrame(OutBuffer,            &FrameLen, 
--                      sizeof(MACHDR),       &Hdr, 
--                      2,                    &Reason, 
-+    MakeOutgoingFrame(OutBuffer,            &FrameLen,
-+                      sizeof(MACHDR),       &Hdr,
-+                      2,                    &Reason,
-                       END_OF_ARGS);
-     MiniportMMRequest(pAd, OutBuffer, FrameLen);
- 
-diff -Nur rt2500-1.1.0-b4/Module/auth_rsp.c rt2500-cvs-2007061011/Module/auth_rsp.c
---- rt2500-1.1.0-b4/Module/auth_rsp.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/auth_rsp.c	2007-03-21 05:25:34.000000000 +0100
-@@ -1,35 +1,35 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
--
-- /*************************************************************************** 
-- *      Module Name: auth_rsp.c 
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      MarkW           8th  Dec 04     Baseline code  
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
-+
-+ /***************************************************************************
-+ *      Module Name: auth_rsp.c
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      MarkW           8th  Dec 04     Baseline code
-+ ***************************************************************************/
- 
- #include "rt_config.h"
- 
-@@ -40,8 +40,8 @@
-     Parameters:
-         Sm - the state machine
-     Note:
--        the state machine looks like the following 
--        
-+        the state machine looks like the following
-+
-                                         AUTH_RSP_IDLE                   AUTH_RSP_WAIT_CHAL
-     MT2_AUTH_CHALLENGE_TIMEOUT    auth_rsp_challenge_timeout_action    auth_rsp_challenge_timeout_action
-     MT2_PEER_AUTH_ODD        peer_auth_at_auth_rsp_idle_action peer_auth_at_auth_rsp_wait_action
-@@ -49,9 +49,9 @@
-     ==========================================================================
-  */
- VOID AuthRspStateMachineInit(
--    IN PRTMP_ADAPTER pAd, 
--    IN PSTATE_MACHINE Sm, 
--    IN STATE_MACHINE_FUNC Trans[]) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN PSTATE_MACHINE Sm,
-+    IN STATE_MACHINE_FUNC Trans[])
- {
-     ULONG        NOW;
- 
-@@ -83,10 +83,10 @@
-     ==========================================================================
-  */
- VOID AuthRspChallengeTimeout(
--    IN  unsigned long data) 
-+    IN  unsigned long data)
- {
-     RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)data;
--    
-+
-     DBGPRINT(RT_DEBUG_TRACE,"AUTH_RSP - AuthRspChallengeTimeout \n");
-     MlmeEnqueue(&pAd->Mlme.Queue, AUTH_RSP_STATE_MACHINE, MT2_AUTH_CHALLENGE_TIMEOUT, 0, NULL);
-     MlmeHandler(pAd);
-@@ -98,12 +98,12 @@
-     ==========================================================================
- */
- VOID PeerAuthSimpleRspGenAndSend(
--    IN PRTMP_ADAPTER pAd, 
--    IN PMACHDR Hdr, 
--    IN USHORT Alg, 
--    IN USHORT Seq, 
--    IN USHORT Reason, 
--    IN USHORT Status) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN PMACHDR Hdr,
-+    IN USHORT Alg,
-+    IN USHORT Seq,
-+    IN USHORT Reason,
-+    IN USHORT Status)
- {
-     MACHDR            AuthHdr;
-     UINT              FrameLen = 0;
-@@ -118,11 +118,11 @@
-     {
-         DBGPRINT(RT_DEBUG_TRACE, "Send AUTH response (seq#2)...\n");
-         MgtMacHeaderInit(pAd, &AuthHdr, SUBTYPE_AUTH, 0, &Hdr->Addr2, &pAd->PortCfg.Bssid);
--        MakeOutgoingFrame(OutBuffer,            &FrameLen, 
--                          sizeof(MACHDR),       &AuthHdr, 
--                          2,                    &Alg, 
--                          2,                    &Seq, 
--                          2,                    &Reason, 
-+        MakeOutgoingFrame(OutBuffer,            &FrameLen,
-+                          sizeof(MACHDR),       &AuthHdr,
-+                          2,                    &Alg,
-+                          2,                    &Seq,
-+                          2,                    &Reason,
-                           END_OF_ARGS);
-         MiniportMMRequest(pAd, OutBuffer, FrameLen);
-     }
-@@ -139,8 +139,8 @@
-     ==========================================================================
- */
- VOID PeerDeauthAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN PMLME_QUEUE_ELEM Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN PMLME_QUEUE_ELEM Elem)
- {
-     MACADDR     Addr2;
-     USHORT      Reason;
-diff -Nur rt2500-1.1.0-b4/Module/connect.c rt2500-cvs-2007061011/Module/connect.c
---- rt2500-1.1.0-b4/Module/connect.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/connect.c	2007-03-21 05:25:34.000000000 +0100
-@@ -1,36 +1,36 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
--
-- /*************************************************************************** 
-- *      Module Name: connect.c 
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      MarkW           8th  Dec 04     Baseline code  
-- *      Ivo (rt2400)    15th Dec 04     Timing ESSID set 
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
-+
-+ /***************************************************************************
-+ *      Module Name: connect.c
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      MarkW           8th  Dec 04     Baseline code
-+ *      Ivo (rt2400)    15th Dec 04     Timing ESSID set
-+ ***************************************************************************/
- 
- #include "rt_config.h"
- 
-@@ -62,11 +62,11 @@
-     ==========================================================================
- */
- VOID MlmeCntlInit(
--    IN PRTMP_ADAPTER pAd, 
--    IN STATE_MACHINE *S, 
--    OUT STATE_MACHINE_FUNC Trans[]) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN STATE_MACHINE *S,
-+    OUT STATE_MACHINE_FUNC Trans[])
- {
--    // Control state machine differs from other state machines, the interface 
-+    // Control state machine differs from other state machines, the interface
-     // follows the standard interface
-     pAd->Mlme.CntlMachine.CurrState = CNTL_IDLE;
- }
-@@ -77,9 +77,9 @@
-     ==========================================================================
- */
- VOID MlmeCntlMachinePerformAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN STATE_MACHINE *S, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN STATE_MACHINE *S,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     switch (Elem->MsgType)
-     {
-@@ -94,7 +94,7 @@
-             return;
-     }
- 
--    switch(pAd->Mlme.CntlMachine.CurrState) 
-+    switch(pAd->Mlme.CntlMachine.CurrState)
-     {
-         case CNTL_IDLE:
-             CntlIdleProc(pAd, Elem);
-@@ -105,17 +105,17 @@
-         case CNTL_WAIT_JOIN:
-             CntlWaitJoinProc(pAd, Elem);
-             break;
--            
-+
-         // CNTL_WAIT_REASSOC is the only state in CNTL machine that does
--        // not triggered directly or indirectly by "RTMPSetInformation(OID_xxx)". 
--        // Therefore not protected by NDIS's "only one outstanding OID request" 
-+        // not triggered directly or indirectly by "RTMPSetInformation(OID_xxx)".
-+        // Therefore not protected by NDIS's "only one outstanding OID request"
-         // rule. Which means NDIS may SET OID in the middle of ROAMing attempts.
-         // Current approach is to block new SET request at RTMPSetInformation()
-         // when CntlMachine.CurrState is not CNTL_IDLE
-         case CNTL_WAIT_REASSOC:
-             CntlWaitReassocProc(pAd, Elem);
-             break;
--            
-+
-         case CNTL_WAIT_START:
-             CntlWaitStartProc(pAd, Elem);
-             break;
-@@ -130,7 +130,7 @@
-             break;
- 
-         case CNTL_WAIT_OID_LIST_SCAN:
--            if(Elem->MsgType == MT2_SCAN_CONF) 
-+            if(Elem->MsgType == MT2_SCAN_CONF)
-             {
-                 // Resume TxRing after SCANING complete. We hope the out-of-service time
-                 // won't be too long to let upper layer time-out the waiting frames
-@@ -143,9 +143,9 @@
-             if (pAd->MediaState == NdisMediaStateDisconnected)
-                 MlmeAutoReconnectLastSSID(pAd);
-             break;
--            
-+
-         case CNTL_WAIT_OID_DISASSOC:
--            if (Elem->MsgType == MT2_DISASSOC_CONF) 
-+            if (Elem->MsgType == MT2_DISASSOC_CONF)
-             {
-                 LinkDown(pAd);
- 
-@@ -169,11 +169,11 @@
-     ==========================================================================
- */
- VOID CntlIdleProc(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     MLME_DISASSOC_REQ_STRUCT   DisassocReq;
--        
-+
-     if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RADIO_OFF))
-     {
-         if (pAd->Mlme.CntlAux.CurrReqIsFromNdis)
-@@ -183,7 +183,7 @@
-         return;
-     }
- 
--    switch(Elem->MsgType) 
-+    switch(Elem->MsgType)
-     {
-         case OID_802_11_DISASSOCIATE:
-             DisassocParmFill(pAd, &DisassocReq, &pAd->PortCfg.Bssid, REASON_DISASSOC_STA_LEAVING);
-@@ -198,7 +198,7 @@
-         case MT2_MLME_ROAMING_REQ:
-             CntlMlmeRoamingProc(pAd, Elem);
-             break;
--            
-+
-         default:
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - Illegal message in CntlIdleProc(MsgType=%d)\n",Elem->MsgType);
-             break;
-@@ -220,7 +220,7 @@
-     // for best SCANNING reult;
-     AsicRestoreBbpSensibility(pAd);
- 
--    // record current BSS if network is connected. 
-+    // record current BSS if network is connected.
-     // 2003-2-13 do not include current IBSS if this is the only STA in this IBSS.
-     if (pAd->MediaState == NdisMediaStateConnected) //  if (INFRA_ON(pAd) || ADHOC_ON(pAd))
-     {
-@@ -230,19 +230,19 @@
-             memcpy(&CurrBss, &pAd->PortCfg.BssTab.BssEntry[BssIdx], sizeof(BSS_ENTRY));
- 
-             // 2003-2-20 reset this RSSI to a low value but not zero. In normal case, the coming SCAN
--            //     should return a correct RSSI to overwrite this. If no BEEACON received after SCAN, 
-+            //     should return a correct RSSI to overwrite this. If no BEEACON received after SCAN,
-             //     at least we still report a "greater than 0" RSSI since we claim it's CONNECTED.
-             CurrBss.Rssi = 18; // about -82 dB
-         }
-     }
--            
-+
-     // clean up previous SCAN result, add current BSS back to table if any
--    BssTableInit(&pAd->PortCfg.BssTab); 
-+    BssTableInit(&pAd->PortCfg.BssTab);
-     if (BssIdx != BSS_NOT_FOUND)
-     {
--        // DDK Note: If the NIC is associated with a particular BSSID and SSID 
--        //    that are not contained in the list of BSSIDs generated by this scan, the 
--        //    BSSID description of the currently associated BSSID and SSID should be 
-+        // DDK Note: If the NIC is associated with a particular BSSID and SSID
-+        //    that are not contained in the list of BSSIDs generated by this scan, the
-+        //    BSSID description of the currently associated BSSID and SSID should be
-         //    appended to the list of BSSIDs in the NIC's database.
-         // To ensure this, we append this BSS as the first entry in SCAN result
-         memcpy(&pAd->PortCfg.BssTab.BssEntry[0], &CurrBss, sizeof(BSS_ENTRY));
-@@ -251,7 +251,7 @@
- 
-     BroadSsid[0] = '\0';
-     ScanParmFill(pAd, &ScanReq, BroadSsid, 0, BSS_ANY, SCAN_PASSIVE);
--    MlmeEnqueue(&pAd->Mlme.Queue, SYNC_STATE_MACHINE, MT2_MLME_SCAN_REQ, 
-+    MlmeEnqueue(&pAd->Mlme.Queue, SYNC_STATE_MACHINE, MT2_MLME_SCAN_REQ,
-         sizeof(MLME_SCAN_REQ_STRUCT), &ScanReq);
-     pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_OID_LIST_SCAN;
- }
-@@ -262,15 +262,15 @@
-     ==========================================================================
- */
- VOID CntlOidSsidProc(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM * Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM * Elem)
- {
-     NDIS_802_11_SSID            *OidSsid = (NDIS_802_11_SSID *)Elem->Msg;
-     MLME_DISASSOC_REQ_STRUCT    DisassocReq;
-     ULONG                       Now;
- 
--    // Step 0. 
--    //    record the desired SSID and all matching BSSes into CntlAux.SsidBssTab for 
-+    // Step 0.
-+    //    record the desired SSID and all matching BSSes into CntlAux.SsidBssTab for
-     //    later-on iteration. Sort by RSSI order
-     memcpy(pAd->Mlme.CntlAux.Ssid, OidSsid->Ssid, OidSsid->SsidLength);
-     pAd->Mlme.CntlAux.SsidLen = (UCHAR)OidSsid->SsidLength;
-@@ -286,11 +286,11 @@
-         if (((pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPA) || (pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPAPSK)) &&
-             (pAd->PortCfg.PortSecured == WPA_802_1X_PORT_NOT_SECURED))
-         {
--            // For WPA, WPA-PSK, if the 1x port is not secured, we have to redo 
-+            // For WPA, WPA-PSK, if the 1x port is not secured, we have to redo
-             // connection process
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - disassociate with current AP...\n");
-             DisassocParmFill(pAd, &DisassocReq, &pAd->PortCfg.Bssid, REASON_DISASSOC_STA_LEAVING);
--            MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_DISASSOC_REQ, 
-+            MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_DISASSOC_REQ,
-                         sizeof(MLME_DISASSOC_REQ_STRUCT), &DisassocReq);
-             pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_DISASSOC;
-         }
-@@ -299,7 +299,7 @@
-             // Config has changed, we have to reconnect the same AP
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - disassociate with current AP Because config changed...\n");
-             DisassocParmFill(pAd, &DisassocReq, &pAd->PortCfg.Bssid, REASON_DISASSOC_STA_LEAVING);
--            MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_DISASSOC_REQ, 
-+            MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_DISASSOC_REQ,
-                         sizeof(MLME_DISASSOC_REQ_STRUCT), &DisassocReq);
-             pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_DISASSOC;
-         }
-@@ -313,24 +313,24 @@
-             {
-             }
-             pAd->Mlme.CntlMachine.CurrState = CNTL_IDLE;
--        } 
--    } 
--    else if (INFRA_ON(pAd)) 
-+        }
-+    }
-+    else if (INFRA_ON(pAd))
-     {
-         // case 1. active association existent
-         //    roaming is done within miniport driver, nothing to do with configuration
--        //    utility. so upon a new SET(OID_802_11_SSID) is received, we just 
--        //    disassociate with the current (or previous) associated AP, if any, 
--        //    then perform a new association with this new SSID, no matter the 
-+        //    utility. so upon a new SET(OID_802_11_SSID) is received, we just
-+        //    disassociate with the current (or previous) associated AP, if any,
-+        //    then perform a new association with this new SSID, no matter the
-         //    new/old SSID are the same or npt.
-         DBGPRINT(RT_DEBUG_TRACE, "CNTL - disassociate with current AP...\n");
-         DisassocParmFill(pAd, &DisassocReq, &pAd->PortCfg.Bssid, REASON_DISASSOC_STA_LEAVING);
--        MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_DISASSOC_REQ, 
-+        MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_DISASSOC_REQ,
-                     sizeof(MLME_DISASSOC_REQ_STRUCT), &DisassocReq);
-         pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_DISASSOC;
-     }
-     else
--    {   
-+    {
-         if (ADHOC_ON(pAd))
-         {
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - drop current ADHOC\n");
-@@ -356,7 +356,7 @@
-         {
-             IterateOnBssTab(pAd);
-         }
--    } 
-+    }
- }
- 
- /*
-@@ -365,18 +365,18 @@
-     ==========================================================================
- */
- VOID CntlOidRTBssidProc(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM * Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM * Elem)
- {
-     ULONG       BssIdx;
-     MACADDR     *pOidBssid = (MACADDR *)Elem->Msg;
-     MLME_DISASSOC_REQ_STRUCT    DisassocReq;
-     MLME_JOIN_REQ_STRUCT        JoinReq;
-- 
-+
-     COPY_MAC_ADDR(&pAd->Mlme.CntlAux.Bssid, pOidBssid);
-     BssIdx = BssTableSearch(&pAd->PortCfg.BssTab, pOidBssid);
--       
--    if (BssIdx == BSS_NOT_FOUND) 
-+
-+    if (BssIdx == BSS_NOT_FOUND)
-     {
-     	DBGPRINT(RT_DEBUG_TRACE, "CNTL - BSSID not found. reply NDIS_STATUS_NOT_ACCEPTED\n");
-         if (pAd->Mlme.CntlAux.CurrReqIsFromNdis)
-@@ -394,7 +394,7 @@
- 
-     // Add SSID into Mlme.CntlAux for site surey joining hidden SSID
-     pAd->Mlme.CntlAux.SsidLen = pAd->Mlme.CntlAux.SsidBssTab.BssEntry[0].SsidLen;
--    memcpy(pAd->Mlme.CntlAux.Ssid, pAd->Mlme.CntlAux.SsidBssTab.BssEntry[0].Ssid, pAd->Mlme.CntlAux.SsidLen);	
-+    memcpy(pAd->Mlme.CntlAux.Ssid, pAd->Mlme.CntlAux.SsidBssTab.BssEntry[0].Ssid, pAd->Mlme.CntlAux.SsidLen);
- 
-     // 2002-11-26 skip the following checking. i.e. if user wants to re-connect to same AP
-     // we just follow normal procedure. The reason of user doing this may because he/she changed
-@@ -412,15 +412,15 @@
-         {
-         }
-         pAd->Mlme.CntlMachine.CurrState = CNTL_IDLE;
--    } 
--    else 
-+    }
-+    else
-     {
-         if (INFRA_ON(pAd))
-         {
-             // disassoc from current AP first
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - disassociate with current AP ...\n");
-             DisassocParmFill(pAd, &DisassocReq, &pAd->PortCfg.Bssid, REASON_DISASSOC_STA_LEAVING);
--            MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_DISASSOC_REQ, 
-+            MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_DISASSOC_REQ,
-                         sizeof(MLME_DISASSOC_REQ_STRUCT), &DisassocReq);
- 
-             pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_DISASSOC;
-@@ -434,7 +434,7 @@
-                 pAd->MediaState = NdisMediaStateDisconnected;
-                 DBGPRINT(RT_DEBUG_TRACE, "NDIS_STATUS_MEDIA_DISCONNECT Event C!\n");
-             }
--            
-+
-             // No active association, join the BSS immediately
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - joining %02x:%02x:%02x:%02x:%02x:%02x ...\n",
-                 pOidBssid->Octet[0],pOidBssid->Octet[1],pOidBssid->Octet[2],
-@@ -444,27 +444,27 @@
- 
-             pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_JOIN;
-         }
--    } 
-+    }
- }
- 
- // Roaming is the only external request triggering CNTL state machine
--// despite of other "SET OID" operation. All "SET OID" related oerations 
-+// despite of other "SET OID" operation. All "SET OID" related oerations
- // happen in sequence, because no other SET OID will be sent to this device
- // until the the previous SET operation is complete (successful o failed).
- // So, how do we quarantee this ROAMING request won't corrupt other "SET OID"?
- // or been corrupted by other "SET OID"?
- VOID CntlMlmeRoamingProc(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
--    // TODO: 
-+    // TODO:
-     // AP in different channel may show lower RSSI than actual value??
-     // should we add a weighting factor to compensate it?
-     DBGPRINT(RT_DEBUG_TRACE,"CNTL - Roaming in CntlAux.RoamTab...\n");
-     BssTableSortByRssi(&pAd->Mlme.CntlAux.RoamTab);
-     pAd->Mlme.CntlAux.RoamIdx=0;
-     IterateOnBssTab2(pAd);
--    
-+
- }
- 
- /*
-@@ -473,17 +473,17 @@
-     ==========================================================================
- */
- VOID CntlWaitDisassocProc(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     MLME_START_REQ_STRUCT     StartReq;
--    
--    if (Elem->MsgType == MT2_DISASSOC_CONF) 
-+
-+    if (Elem->MsgType == MT2_DISASSOC_CONF)
-     {
-         DBGPRINT(RT_DEBUG_TRACE, "CNTL - Dis-associate successful\n");
-         LinkDown(pAd);
- 
--        // case 1. no matching BSS, and user wants ADHOC, so we just start a new one        
-+        // case 1. no matching BSS, and user wants ADHOC, so we just start a new one
-         if ((pAd->Mlme.CntlAux.SsidBssTab.BssNr==0) && (pAd->PortCfg.BssType == BSS_INDEP))
-         {
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - No matching BSS, start a new ADHOC (Ssid=%s)...\n",pAd->Mlme.CntlAux.Ssid);
-@@ -505,16 +505,16 @@
-     ==========================================================================
- */
- VOID CntlWaitJoinProc(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     USHORT                      Reason;
-     MLME_AUTH_REQ_STRUCT        AuthReq;
- 
--    if (Elem->MsgType == MT2_JOIN_CONF) 
-+    if (Elem->MsgType == MT2_JOIN_CONF)
-     {
-         memcpy(&Reason, Elem->Msg, sizeof(USHORT));
--        if (Reason == MLME_SUCCESS) 
-+        if (Reason == MLME_SUCCESS)
-         {
-             // 1. joined an IBSS, we are pretty much done here
-             if (pAd->PortCfg.BssType == BSS_INDEP)
-@@ -524,9 +524,9 @@
-                 {
-                 }
-                 pAd->Mlme.CntlMachine.CurrState = CNTL_IDLE;
--            } 
-+            }
-             // 2. joined a new INFRA network, start from authentication
--            else 
-+            else
-             {
-                 // either Ndis802_11AuthModeShared or Ndis802_11AuthModeAutoSwitch, try shared key first
-                 if ((pAd->PortCfg.AuthMode == Ndis802_11AuthModeShared) ||
-@@ -538,7 +538,7 @@
-                 {
-                     AuthParmFill(pAd, &AuthReq, &pAd->PortCfg.Bssid, Ndis802_11AuthModeOpen);
-                 }
--                MlmeEnqueue(&pAd->Mlme.Queue, AUTH_STATE_MACHINE, MT2_MLME_AUTH_REQ, 
-+                MlmeEnqueue(&pAd->Mlme.Queue, AUTH_STATE_MACHINE, MT2_MLME_AUTH_REQ,
-                             sizeof(MLME_AUTH_REQ_STRUCT), &AuthReq);
- 
-                 pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_AUTH;
-@@ -549,7 +549,7 @@
-             // 3. failed, try next BSS
-             pAd->Mlme.CntlAux.BssIdx++;
-             IterateOnBssTab(pAd);
--        } 
-+        }
-     }
- }
- 
-@@ -560,18 +560,18 @@
-     ==========================================================================
- */
- VOID CntlWaitStartProc(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     USHORT      Result;
- 
--    if (Elem->MsgType == MT2_START_CONF) 
-+    if (Elem->MsgType == MT2_START_CONF)
-     {
-         memcpy(&Result, Elem->Msg, sizeof(USHORT));
--        if (Result == MLME_SUCCESS) 
-+        if (Result == MLME_SUCCESS)
-         {
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - We have started a new ADHOC network\n");
--            DBGPRINT(RT_DEBUG_TRACE, "CNTL - BSSID %02x:%02x:%02x:%02x:%02x:%02x ...\n", 
-+            DBGPRINT(RT_DEBUG_TRACE, "CNTL - BSSID %02x:%02x:%02x:%02x:%02x:%02x ...\n",
-                 pAd->PortCfg.Bssid.Octet[0],
-                 pAd->PortCfg.Bssid.Octet[1],
-                 pAd->PortCfg.Bssid.Octet[2],
-@@ -601,29 +601,29 @@
-     ==========================================================================
- */
- VOID CntlWaitAuthProc(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     USHORT                       Reason;
-     MLME_ASSOC_REQ_STRUCT        AssocReq;
-     MLME_AUTH_REQ_STRUCT         AuthReq;
- 
--    if (Elem->MsgType == MT2_AUTH_CONF) 
-+    if (Elem->MsgType == MT2_AUTH_CONF)
-     {
-         memcpy(&Reason, Elem->Msg, sizeof(USHORT));
--        if (Reason == MLME_SUCCESS) 
-+        if (Reason == MLME_SUCCESS)
-         {
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - AUTH OK\n");
--            AssocParmFill(pAd, &AssocReq, &pAd->PortCfg.Bssid, pAd->PortCfg.CapabilityInfo, 
-+            AssocParmFill(pAd, &AssocReq, &pAd->PortCfg.Bssid, pAd->PortCfg.CapabilityInfo,
-                           ASSOC_TIMEOUT, pAd->PortCfg.DefaultListenCount);
--            MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_ASSOC_REQ, 
-+            MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_ASSOC_REQ,
-                         sizeof(MLME_ASSOC_REQ_STRUCT), &AssocReq);
- 
-             pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_ASSOC;
--        } 
-+        }
-         else
-         {
--            // This fail may because of the AP already keep us in its MAC table without 
-+            // This fail may because of the AP already keep us in its MAC table without
-             // ageing-out. The previous authentication attempt must have let it remove us.
-             // so try Authentication again may help. For D-Link DWL-900AP+ compatibility.
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - AUTH FAIL, try again...\n");
-@@ -638,7 +638,7 @@
-                 AuthParmFill(pAd, &AuthReq, &pAd->PortCfg.Bssid, Ndis802_11AuthModeOpen);
-             }
- 
--            MlmeEnqueue(&pAd->Mlme.Queue, AUTH_STATE_MACHINE, MT2_MLME_AUTH_REQ, 
-+            MlmeEnqueue(&pAd->Mlme.Queue, AUTH_STATE_MACHINE, MT2_MLME_AUTH_REQ,
-                         sizeof(MLME_AUTH_REQ_STRUCT), &AuthReq);
- 
-             pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_AUTH2;
-@@ -652,26 +652,26 @@
-     ==========================================================================
- */
- VOID CntlWaitAuthProc2(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     USHORT                       Reason;
-     MLME_ASSOC_REQ_STRUCT        AssocReq;
-     MLME_AUTH_REQ_STRUCT         AuthReq;
- 
--    if (Elem->MsgType == MT2_AUTH_CONF) 
-+    if (Elem->MsgType == MT2_AUTH_CONF)
-     {
-         memcpy(&Reason, Elem->Msg, sizeof(USHORT));
--        if (Reason == MLME_SUCCESS) 
-+        if (Reason == MLME_SUCCESS)
-         {
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - AUTH OK\n");
--            AssocParmFill(pAd, &AssocReq, &pAd->PortCfg.Bssid, pAd->PortCfg.CapabilityInfo, 
-+            AssocParmFill(pAd, &AssocReq, &pAd->PortCfg.Bssid, pAd->PortCfg.CapabilityInfo,
-                           ASSOC_TIMEOUT, pAd->PortCfg.DefaultListenCount);
--            MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_ASSOC_REQ, 
-+            MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_ASSOC_REQ,
-                         sizeof(MLME_ASSOC_REQ_STRUCT), &AssocReq);
- 
-             pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_ASSOC;
--        } 
-+        }
-         else
-         {
-             if ((pAd->PortCfg.AuthMode == Ndis802_11AuthModeAutoSwitch) &&
-@@ -679,12 +679,12 @@
-             {
-                 DBGPRINT(RT_DEBUG_TRACE, "CNTL - AUTH FAIL, try OPEN system...\n");
-                 AuthParmFill(pAd, &AuthReq, &pAd->PortCfg.Bssid, Ndis802_11AuthModeOpen);
--                MlmeEnqueue(&pAd->Mlme.Queue, AUTH_STATE_MACHINE, MT2_MLME_AUTH_REQ, 
-+                MlmeEnqueue(&pAd->Mlme.Queue, AUTH_STATE_MACHINE, MT2_MLME_AUTH_REQ,
-                             sizeof(MLME_AUTH_REQ_STRUCT), &AuthReq);
- 
-                 pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_AUTH2;
-             }
--            else 
-+            else
-             {
-                 // not success, try next BSS
-                 DBGPRINT(RT_DEBUG_TRACE, "CNTL - AUTH FAIL, give up; try next BSS\n");
-@@ -693,7 +693,7 @@
-                 IterateOnBssTab(pAd);
-             }
-         }
--    }    
-+    }
- }
- 
- /*
-@@ -702,15 +702,15 @@
-     ==========================================================================
- */
- VOID CntlWaitAssocProc(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     USHORT      Reason;
- 
--    if (Elem->MsgType == MT2_ASSOC_CONF) 
-+    if (Elem->MsgType == MT2_ASSOC_CONF)
-     {
-         memcpy(&Reason, Elem->Msg, sizeof(USHORT));
--        if (Reason == MLME_SUCCESS) 
-+        if (Reason == MLME_SUCCESS)
-         {
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - Association successful on BSS #%d\n",pAd->Mlme.CntlAux.BssIdx);
-             LinkUp(pAd, BSS_INFRA);
-@@ -718,8 +718,8 @@
-             {
-             }
-             pAd->Mlme.CntlMachine.CurrState = CNTL_IDLE;
--        } 
--        else 
-+        }
-+        else
-         {
-             // not success, try next BSS
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - Association fails on BSS #%d\n",pAd->Mlme.CntlAux.BssIdx);
-@@ -735,21 +735,21 @@
-     ==========================================================================
- */
- VOID CntlWaitReassocProc(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     USHORT      Result;
- 
--    if (Elem->MsgType == MT2_REASSOC_CONF) 
-+    if (Elem->MsgType == MT2_REASSOC_CONF)
-     {
-         memcpy(&Result, Elem->Msg, sizeof(USHORT));
--        if (Result == MLME_SUCCESS) 
-+        if (Result == MLME_SUCCESS)
-         {
-             BSS_ENTRY *pBss = &pAd->Mlme.CntlAux.RoamTab.BssEntry[pAd->Mlme.CntlAux.RoamIdx];
- 
-             // COPY_MAC_ADDR(&pAd->PortCfg.Bssid, &pBss->Bssid);
-             // AsicSetBssid(pAd, &pAd->PortCfg.Bssid);
--            
-+
-             // The following steps are supposed to be done after JOIN in normal procedure
-             // But since this RE-ASSOC skips the JOIN procedure, we have to do it after
-             // RE-ASSOC succeeds. If RE-ASSOC fails, then stay at original AP without any change
-@@ -768,14 +768,14 @@
-             pAd->PortCfg.CfpDurRemain = pBss->CfpDurRemaining;
-             pAd->PortCfg.CfpCount = pBss->CfpCount;
- 
--            // 
-+            //
-             // NDIS requires a new Link UP indication but no Link Down for RE-ASSOC
-             //
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - Re-assocition successful on BSS #%d\n", pAd->Mlme.CntlAux.RoamIdx);
-             LinkUp(pAd, BSS_INFRA);
--            pAd->Mlme.CntlMachine.CurrState = CNTL_IDLE;            
--        } 
--        else 
-+            pAd->Mlme.CntlMachine.CurrState = CNTL_IDLE;
-+        }
-+        else
-         {
-             // reassoc failed, try to pick next BSS in the BSS Table
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - Re-assocition fails on BSS #%d\n", pAd->Mlme.CntlAux.RoamIdx);
-@@ -792,7 +792,7 @@
- */
- VOID LinkUp(
-     IN PRTMP_ADAPTER pAd,
--    IN UCHAR BssType) 
-+    IN UCHAR BssType)
- {
-     ULONG       Now;
- 
-@@ -810,7 +810,7 @@
-         DBGPRINT(RT_DEBUG_TRACE, "CNTL - !!! Set to short preamble!!!\n");
-         MlmeSetTxPreamble(pAd, Rt802_11PreambleShort);
-     }
--    
-+
-     pAd->PortCfg.BssType = BssType;
-     if (BssType == BSS_INDEP)
-     {
-@@ -856,11 +856,11 @@
-         // NOTE:
-         // the decision to use "RTC/CTS" or "CTS-to-self" protection or not may change dynamically
-         // due to new STA association to the AP. so we have to decide that upon parsing BEACON, not here
--        
-+
-         ComposePsPoll(pAd);
-         ComposeNullFrame(pAd);
-         AsicEnableBssSync(pAd);
--    
-+
-         // only INFRASTRUCTURE mode need to indicate connectivity immediately; ADHOC mode
-         // should wait until at least 2 active nodes in this BSSID.
-         pAd->MediaState = NdisMediaStateConnected;
-@@ -885,7 +885,7 @@
-     ==========================================================================
- */
- VOID LinkDown(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
-     DBGPRINT(RT_DEBUG_TRACE, "CNTL - !!! LINK DOWN !!!\n");
- 
-@@ -913,7 +913,7 @@
-         DBGPRINT(RT_DEBUG_TRACE, "NDIS_STATUS_MEDIA_DISCONNECT Event A!\n");
-         BssTableDeleteEntry(&pAd->PortCfg.BssTab, &(pAd->PortCfg.Bssid));
- 
--        // restore back to - 
-+        // restore back to -
-         //      1. long slot (20 us) or short slot (9 us) time
-         //      2. turn on/off RTS/CTS and/or CTS-to-self protection
-         //      3. short preamble
-@@ -970,9 +970,9 @@
-     ==========================================================================
- */
- VOID MlmeCntlConfirm(
--    IN PRTMP_ADAPTER pAd, 
--    IN ULONG MsgType, 
--    IN USHORT Msg) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN ULONG MsgType,
-+    IN USHORT Msg)
- {
-     MlmeEnqueue(&pAd->Mlme.Queue, MLME_CNTL_STATE_MACHINE, MsgType, sizeof(USHORT), &Msg);
- }
-@@ -983,16 +983,16 @@
-     ==========================================================================
- */
- VOID IterateOnBssTab(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
-     MLME_START_REQ_STRUCT   StartReq;
-     MLME_JOIN_REQ_STRUCT    JoinReq;
-     ULONG                   BssIdx;
- 
-     BssIdx = pAd->Mlme.CntlAux.BssIdx;
--    if (BssIdx < pAd->Mlme.CntlAux.SsidBssTab.BssNr) 
-+    if (BssIdx < pAd->Mlme.CntlAux.SsidBssTab.BssNr)
-     {
--        DBGPRINT(RT_DEBUG_TRACE, "CNTL - Trying BSSID %02x:%02x:%02x:%02x:%02x:%02x ...\n", 
-+        DBGPRINT(RT_DEBUG_TRACE, "CNTL - Trying BSSID %02x:%02x:%02x:%02x:%02x:%02x ...\n",
-             pAd->Mlme.CntlAux.SsidBssTab.BssEntry[BssIdx].Bssid.Octet[0],
-             pAd->Mlme.CntlAux.SsidBssTab.BssEntry[BssIdx].Bssid.Octet[1],
-             pAd->Mlme.CntlAux.SsidBssTab.BssEntry[BssIdx].Bssid.Octet[2],
-@@ -1018,12 +1018,12 @@
-             DBGPRINT(RT_DEBUG_TRACE, "CNTL - All BSS fail; reply NDIS_STATUS_NOT_ACCEPTED\n");
-         }
-         pAd->Mlme.CntlMachine.CurrState = CNTL_IDLE;
--    } 
-+    }
- }
- 
- // for re-association only
- VOID IterateOnBssTab2(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
-     MLME_REASSOC_REQ_STRUCT ReassocReq;
-     ULONG                   BssIdx;
-@@ -1034,19 +1034,19 @@
- 
-     if (BssIdx < pAd->Mlme.CntlAux.RoamTab.BssNr)
-     {
--        DBGPRINT(RT_DEBUG_TRACE, "CNTL - try BSS #%d %02x:%02x:%02x:%02x:%02x:%02x ...\n", 
-+        DBGPRINT(RT_DEBUG_TRACE, "CNTL - try BSS #%d %02x:%02x:%02x:%02x:%02x:%02x ...\n",
-             BssIdx, pBss->Bssid.Octet[0],pBss->Bssid.Octet[1],pBss->Bssid.Octet[2],
-             pBss->Bssid.Octet[3],pBss->Bssid.Octet[4],pBss->Bssid.Octet[5]);
- 
-         AsicSwitchChannel(pAd, pBss->Channel);
- 		AsicLockChannel(pAd, pBss->Channel);
--        
-+
-         // reassociate message has the same structure as associate message
--        AssocParmFill(pAd, &ReassocReq, &pBss->Bssid, pBss->CapabilityInfo, 
-+        AssocParmFill(pAd, &ReassocReq, &pBss->Bssid, pBss->CapabilityInfo,
-                       ASSOC_TIMEOUT, pAd->PortCfg.DefaultListenCount);
--        MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_REASSOC_REQ, 
-+        MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_REASSOC_REQ,
-                     sizeof(MLME_REASSOC_REQ_STRUCT), &ReassocReq);
--        
-+
-         pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_REASSOC;
-     }
-     else // no more BSS
-@@ -1055,7 +1055,7 @@
-         AsicSwitchChannel(pAd, pAd->PortCfg.Channel);
-         AsicLockChannel(pAd, pAd->PortCfg.Channel);
-         pAd->Mlme.CntlMachine.CurrState = CNTL_IDLE;
--    } 
-+    }
- }
- 
- /*
-@@ -1064,9 +1064,9 @@
-     ==========================================================================
- */
- VOID JoinParmFill(
--    IN PRTMP_ADAPTER pAd, 
--    IN OUT MLME_JOIN_REQ_STRUCT *JoinReq, 
--    IN ULONG BssIdx) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN OUT MLME_JOIN_REQ_STRUCT *JoinReq,
-+    IN ULONG BssIdx)
- {
-     JoinReq->BssIdx = BssIdx;
- }
-@@ -1077,12 +1077,12 @@
-     ==========================================================================
- */
- VOID AssocParmFill(
--    IN PRTMP_ADAPTER pAd, 
--    IN OUT MLME_ASSOC_REQ_STRUCT *AssocReq, 
--    IN MACADDR                   *Addr, 
--    IN USHORT                     CapabilityInfo, 
--    IN ULONG                      Timeout, 
--    IN USHORT                     ListenIntv) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN OUT MLME_ASSOC_REQ_STRUCT *AssocReq,
-+    IN MACADDR                   *Addr,
-+    IN USHORT                     CapabilityInfo,
-+    IN ULONG                      Timeout,
-+    IN USHORT                     ListenIntv)
- {
-     COPY_MAC_ADDR(&AssocReq->Addr, Addr);
-     // Add mask to support 802.11b mode only
-@@ -1097,12 +1097,12 @@
-     ==========================================================================
- */
- VOID ScanParmFill(
--    IN PRTMP_ADAPTER pAd, 
--    IN OUT MLME_SCAN_REQ_STRUCT *ScanReq, 
--    IN CHAR Ssid[], 
--    IN UCHAR SsidLen, 
--    IN UCHAR BssType, 
--    IN UCHAR ScanType) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN OUT MLME_SCAN_REQ_STRUCT *ScanReq,
-+    IN CHAR Ssid[],
-+    IN UCHAR SsidLen,
-+    IN UCHAR BssType,
-+    IN UCHAR ScanType)
- {
-     ScanReq->SsidLen = SsidLen;
-     memcpy(ScanReq->Ssid, Ssid, SsidLen);
-@@ -1116,10 +1116,10 @@
-     ==========================================================================
- */
- VOID DisassocParmFill(
--    IN PRTMP_ADAPTER pAd, 
--    IN OUT MLME_DISASSOC_REQ_STRUCT *DisassocReq, 
--    IN MACADDR *Addr, 
--    IN USHORT Reason) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN OUT MLME_DISASSOC_REQ_STRUCT *DisassocReq,
-+    IN MACADDR *Addr,
-+    IN USHORT Reason)
- {
-     COPY_MAC_ADDR(&DisassocReq->Addr, Addr);
-     DisassocReq->Reason = Reason;
-@@ -1131,12 +1131,12 @@
-     ==========================================================================
- */
- VOID StartParmFill(
--    IN PRTMP_ADAPTER pAd, 
--    IN OUT MLME_START_REQ_STRUCT *StartReq, 
--    IN CHAR Ssid[], 
--    IN UCHAR SsidLen) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN OUT MLME_START_REQ_STRUCT *StartReq,
-+    IN CHAR Ssid[],
-+    IN UCHAR SsidLen)
- {
--    memcpy(StartReq->Ssid, Ssid, SsidLen); 
-+    memcpy(StartReq->Ssid, Ssid, SsidLen);
-     StartReq->SsidLen = SsidLen;
- }
- 
-@@ -1146,10 +1146,10 @@
-     ==========================================================================
- */
- VOID AuthParmFill(
--    IN PRTMP_ADAPTER pAd, 
--    IN OUT MLME_AUTH_REQ_STRUCT *AuthReq, 
--    IN MACADDR *Addr, 
--    IN USHORT Alg) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN OUT MLME_AUTH_REQ_STRUCT *AuthReq,
-+    IN MACADDR *Addr,
-+    IN USHORT Alg)
- {
-     COPY_MAC_ADDR(&AuthReq->Addr, Addr);
-     AuthReq->Alg = Alg;
-@@ -1187,9 +1187,9 @@
-     ==========================================================================
- */
- ULONG MakeIbssBeacon(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
--    UCHAR           SsidIe = IE_SSID, DsIe = IE_DS_PARM, IbssIe = IE_IBSS_PARM, SuppIe = IE_SUPP_RATES, 
-+    UCHAR           SsidIe = IE_SSID, DsIe = IE_DS_PARM, IbssIe = IE_IBSS_PARM, SuppIe = IE_SUPP_RATES,
-                     DsLen = 1, IbssLen = 2;
-     UCHAR           ExtRateIe = IE_EXT_SUPP_RATES, ExtRatesLen;
-     UCHAR         ErpIe[3] = {IE_ERP, 1, 0x04};
-@@ -1244,28 +1244,28 @@
- 
-     // compose IBSS beacon frame
-     MgtMacHeaderInit(pAd, &BcnHdr, SUBTYPE_BEACON, 0, &pAd->PortCfg.Broadcast, &pAd->PortCfg.Bssid);
--    Privacy = (pAd->PortCfg.WepStatus == Ndis802_11Encryption1Enabled) || 
--              (pAd->PortCfg.WepStatus == Ndis802_11Encryption2Enabled) || 
-+    Privacy = (pAd->PortCfg.WepStatus == Ndis802_11Encryption1Enabled) ||
-+              (pAd->PortCfg.WepStatus == Ndis802_11Encryption2Enabled) ||
-               (pAd->PortCfg.WepStatus == Ndis802_11Encryption3Enabled);
-     CapabilityInfo = CAP_GENERATE(0, 1, 0, 0, Privacy, (pAd->PortCfg.WindowsTxPreamble == Rt802_11PreambleShort));
-     if (SupportedRatesLen <= 8)
-     {
-         MakeOutgoingFrame(pBeaconFrame,                    &FrameLen,
--                          MAC_HDR_LEN,                     &BcnHdr, 
-+                          MAC_HDR_LEN,                     &BcnHdr,
-                           TIMESTAMP_LEN,                   &FakeTimestamp,
-                           2,                               &pAd->PortCfg.BeaconPeriod,
-                           2,                               &CapabilityInfo,
--                          1,                               &SsidIe, 
--                          1,                               &pAd->PortCfg.SsidLen, 
-+                          1,                               &SsidIe,
-+                          1,                               &pAd->PortCfg.SsidLen,
-                           pAd->PortCfg.SsidLen,            pAd->PortCfg.Ssid,
--                          1,                               &SuppIe, 
-+                          1,                               &SuppIe,
-                           1,                               &SupportedRatesLen,
--                          SupportedRatesLen,               SupportedRates, 
--                          1,                               &DsIe, 
--                          1,                               &DsLen, 
-+                          SupportedRatesLen,               SupportedRates,
-+                          1,                               &DsIe,
-+                          1,                               &DsLen,
-                           1,                               &pAd->PortCfg.Channel,
--                          1,                               &IbssIe, 
--                          1,                               &IbssLen, 
-+                          1,                               &IbssIe,
-+                          1,                               &IbssLen,
-                           2,                               &pAd->PortCfg.AtimWin,
-                           END_OF_ARGS);
-     }
-@@ -1274,21 +1274,21 @@
-         ExtRatesLen = SupportedRatesLen - 8;
-         SupportedRatesLen = 8;
-         MakeOutgoingFrame(pBeaconFrame,                    &FrameLen,
--                      MAC_HDR_LEN,                     &BcnHdr, 
-+                      MAC_HDR_LEN,                     &BcnHdr,
-                       TIMESTAMP_LEN,                   &FakeTimestamp,
-                       2,                               &pAd->PortCfg.BeaconPeriod,
-                       2,                               &CapabilityInfo,
--                      1,                               &SsidIe, 
--                      1,                               &pAd->PortCfg.SsidLen, 
-+                      1,                               &SsidIe,
-+                      1,                               &pAd->PortCfg.SsidLen,
-                       pAd->PortCfg.SsidLen,             pAd->PortCfg.Ssid,
--                      1,                               &SuppIe, 
-+                      1,                               &SuppIe,
-                       1,                               &SupportedRatesLen,
--                      SupportedRatesLen,                SupportedRates, 
--                      1,                               &DsIe, 
--                      1,                               &DsLen, 
-+                      SupportedRatesLen,                SupportedRates,
-+                      1,                               &DsIe,
-+                      1,                               &DsLen,
-                       1,                               &pAd->PortCfg.Channel,
--                      1,                               &IbssIe, 
--                      1,                               &IbssLen, 
-+                      1,                               &IbssIe,
-+                      1,                               &IbssLen,
-                       2,                               &pAd->PortCfg.AtimWin,
-                       3,                               ErpIe,
-                       1,                               &ExtRateIe,
-@@ -1301,7 +1301,7 @@
- 	{
- 		ULONG	tmp;
- 		UCHAR	WpaIe = IE_WPA;
--		
-+
- 		if (pAd->PortCfg.WepStatus == Ndis802_11Encryption2Enabled)		// Tkip
- 		{
-         MakeOutgoingFrame(pBeaconFrame + FrameLen,                    &tmp,
-@@ -1325,7 +1325,7 @@
-     RTMPFrameEndianChange(pAd, pBeaconFrame, DIR_WRITE, FALSE);
- #endif
- 
--    RTMPWriteTxDescriptor(pTxD, FALSE, CIPHER_NONE, FALSE, FALSE, TRUE, SHORT_RETRY, IFS_NEW_BACKOFF, 
-+    RTMPWriteTxDescriptor(pTxD, FALSE, CIPHER_NONE, FALSE, FALSE, TRUE, SHORT_RETRY, IFS_NEW_BACKOFF,
-                           pAd->PortCfg.MlmeRate, 4, FrameLen, pAd->PortCfg.TxPreambleInUsed, 0);
- 
-     DBGPRINT(RT_DEBUG_TRACE, "MakeIbssBeacon (len=%d)\n", FrameLen);
-diff -Nur rt2500-1.1.0-b4/Module/eeprom.c rt2500-cvs-2007061011/Module/eeprom.c
---- rt2500-1.1.0-b4/Module/eeprom.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/eeprom.c	2007-03-21 05:25:34.000000000 +0100
-@@ -1,35 +1,35 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
--
-- /*************************************************************************** 
-- *      Module Name: eeprom.c 
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      MarkW           8th  Dec 04     Baseline code  
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
-+
-+ /***************************************************************************
-+ *      Module Name: eeprom.c
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      MarkW           8th  Dec 04     Baseline code
-+ ***************************************************************************/
- 
- #include    "rt_config.h"
- 
-@@ -183,7 +183,7 @@
-     RaiseClock(pAd, &x);
-     LowerClock(pAd, &x);
- 
--    // output the read_opcode and register number in that order    
-+    // output the read_opcode and register number in that order
-     ShiftOutBits(pAd, EEPROM_READ_OPCODE, 3);
-     ShiftOutBits(pAd, Offset, pAd->EEPROMAddressNum);
- 
-diff -Nur rt2500-1.1.0-b4/Module/iwpriv_usage.txt rt2500-cvs-2007061011/Module/iwpriv_usage.txt
---- rt2500-1.1.0-b4/Module/iwpriv_usage.txt	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/iwpriv_usage.txt	2007-01-09 12:47:14.000000000 +0100
-@@ -1,151 +1,161 @@
--
--This file provides some basic examples on the configuration of the driver using standard linux wireless tools. Where possible iwconfig should be used to adjust settings. Some settings are currently not avaiable via iwconfig and these include WPA, for these functions it is currently necessary to use iwpriv. 
--
--
--Configuration Examples
--===================================================================
---------------------------------------------------------------------------------------------------------
--Example I: Config STA to link with AP which is OPEN/NONE(Authentication/Encryption)
--	1. iwconfig ra0 mode managed
--	2. iwconfig ra0 key open
--	3. iwconfig ra0 key off
--	4. iwconfig ra0 essid "AP's SSID"
--	
--Example II: Config STA to link with AP which is SHARED/WEP(Authentication/Encryption)
--	1. iwconfig ra0 mode managed
--	2. iwconfig ra0 key restricted
--	3. iwconfig ra0 Key [1] "s:AP's wep key"
--	4. iwconfig ra0 key [1]
--	5. iwconfig ra0 essid "AP's SSID"
--	
--Example III: Config STA to create/link as adhoc mode
--	1. iwconfig ra0 mode ad-hoc
--	2. iwconfig ra0 key off
--	4. iwconfig ra0 essid "AP's SSID"
--	
--Example IV: Config STA to link with AP which is WPAPSK/TKIP(Authentication/Encryption)
--	1. iwconfig ra0 mode managed
--	2. iwpriv ra0 set AuthMode=WPAPSK
--	3. iwpriv ra0 set EncrypType=TKIP
--	4. iwpriv ra0 set WPAPSK="AP's wpa-preshared key"
--	5. iwconfig ra0 essid "AP's SSID"
--	
--Example V: Config STA to link with AP which is WPAPSK/AES(Authentication/Encryption)
--	1. iwconfig ra0 mode managed
--	2. iwpriv ra0 set AuthMode=WPAPSK
--	3. iwpriv ra0 set EncrypType=AES
--	5. iwpriv ra0 set WPAPSK="AP's wpa-preshared key"
--	6. iwconfig ra0 essid "AP's SSID"
--	
--
--
--iwpriv
--=================
--This is detailed explanation of each parameters for iwpriv.
--Before reading this document, make sure you already read README.
--
---------------------------------------------------------------------------------------------------------
--USAGE:
--	iwpriv ra0 set [parameters]=[val]
--
--where
--
--[parameters]          [val] range                          explaination
-------------------   -----------------------              ---------------------------------------------
--CountryRegion       {0~7}                                  Set country region 
--                                                           0: use 1 ~ 11 Channel
--                                                           1: use 1 ~ 11 Channel
--                                                           2: use 1 ~ 13 Channel
--                                                           3: use 10, 11 Channel
--                                                           4: use 10 ~ 13 Channel
--                                                           5: use 14 Channel
--                                                           6: use 1 ~ 14 Channel
--                                                           7: use 3 ~ 9 Channel
--                                                           
--WirelessMode        {0~2}				   Set Wireless Mode 
--                                                           0:11b/g mixed, 1:11B only
--
--TxRate              {0~12}				   Set TxRate 
--                                                           0:Auto, 1:1Mbps, 2:2Mbps, 3:5.5Mbps, 4:11Mbps, 
--                                                          5:6Mbps, 6:9Mbps, 7:12Mbps, 8:18Mbps, 9:24Mbps, 
--                                                           10:36Mbps, 11:48Mbps, 12:54Mbps
--                                                           
--BGProtection        {0~2}                                  Set 11B/11G Protection
--                                                           0:Auto, 1:Always on, 2:Always off
--
--TxPreamble          {0~2}                                  Set TxPreamble
--                                                           0:Preamble Long, 1:Preamble Short, 2:Auto
--
--TxBurst             {0,1}                                  Set TxBurst Enable or Disable
--                                                           0:Disable, 1:Enable
--
--TurboRate           {0,1}                                  Set TurboRate Enable or Disable
--                                                           0:Disable, 1:Enable
--
--AdhocOfdm           {0, 1}                                 Set Adhoc mode tx rate
--							   0: adhere WIFI spec., 1: violate WIFI spec.
--							   (802.11g WIFI spec disallow OFDM rates in 802.11g ADHOC mode)
--                                                                                                                                                        AuthMode            {OPEN,SHARED,WPAPSK}                   Set Authentication mode
--
--EncrypType          {NONE,WEP,TKIP,AES}                    Set Encryption Type
--
--WPAPSK              {8~63 ASCII or 64 HEX characters}       WPA Pre-Shared Key 
--
--ApClient	    {0,1}				    Set ApClient mode
--							    0:Disable, 1:Enable
--							    
--iwlist
--=================
--This is detailed explanation of each parameters for iwlist.
--
---------------------------------------------------------------------------------------------------------
--
--iwlist ra0 scanning		; list the result after scanning(site survey) 
--							    
--
--
--
------------------------------------------------------------------------------------------------------------------------------------
--
--							    
--Deprecated iwpriv
--=================
--
--*** PLEASE DO NOT USE THESE FUNCTIONS, THIS IS FOR HISTORICAL REFERENCE ONLY ***
--As the configuration utility still uses some iwpriv commands they have not been
--removed from the driver yet. These commands are likely to dissapear if the utility is
--updated.
--	
--** ALL THESE COMMANDS HAVE A IWCONFIG REPLACEMENT, USE IT ****
--
--SSID                {0~z, less than 32 characters}         Set SoftAP SSID
--
--Channel             {1~14} depends on country region       Set Channel
--
--RTSThreshold        {1~2347}                               Set RTS Threshold                                                           
--                                                           
--FragThreshold       {256~2346}                             Set Fragment Threshold
--
--NetworkType	    {Infra,Adhoc}			   Set Network type
--
--DefaultKeyID        {1~4}                                  Set Default Key ID
--
--Key1                 {5 ascii characters or                 Set Key1 String
--                     10 hex number or 
--                     13 ascii characters or 
--                     26 hex numbers}                                                                                                                        
--
--Key2                 {5 ascii characters or                 Set Key2 String
--                     10 hex number or 
--                     13 ascii characters or 
--                     26 hex numbers}                                                                                                                        
--
--Key3                 {5 ascii characters or                 Set Key3 String
--                     10 hex number or 
--                     13 ascii characters or 
--                     26 hex numbers}                                                                                                                        
--
--Key4                 {5 ascii characters or                 Set Key4 String
--                     10 hex number or 
--                     13 ascii characters or 
--                     26 hex numbers}                                                                                                                        
-+This file provides some basic examples on the configuration of the
-+driver using standard linux wireless tools. Where possible iwconfig
-+should be used to adjust settings. Some settings are currently not
-+avaiable via iwconfig and these include WPA, for these functions it is
-+currently necessary to use iwpriv.
-+
-+
-+Configuration Examples
-+======================================================================
-+----------------------------------------------------------------------
-+Example I: STA with AP using OPEN/NONE(Authentication/Encryption)
-+    1. iwconfig ra0 mode managed
-+    2. iwconfig ra0 key open
-+    3. iwconfig ra0 key off
-+    4. iwconfig ra0 essid "AP's SSID"
-+
-+Example II: STA with AP using SHARED/WEP(Authentication/Encryption)
-+    1. iwconfig ra0 mode managed
-+    2. iwconfig ra0 key restricted
-+    3. iwconfig ra0 Key [1] "s:AP's wep key"
-+    4. iwconfig ra0 key [1]
-+    5. iwconfig ra0 essid "AP's SSID"
-+
-+Example III: STA using adhoc mode
-+    1. iwconfig ra0 mode ad-hoc
-+    2. iwconfig ra0 key off
-+    4. iwconfig ra0 essid "STA's SSID"
-+
-+Example IV: STA with AP using WPAPSK/TKIP(Authentication/Encryption)
-+    1. iwconfig ra0 mode managed
-+    2. iwpriv ra0 set AuthMode=WPAPSK
-+    3. iwpriv ra0 set EncrypType=TKIP
-+    4. iwpriv ra0 set WPAPSK="AP's wpa-preshared key"
-+    5. iwconfig ra0 essid "AP's SSID"
-+
-+Example V: STA with AP using WPAPSK/AES(Authentication/Encryption)
-+    1. iwconfig ra0 mode managed
-+    2. iwpriv ra0 set AuthMode=WPAPSK
-+    3. iwpriv ra0 set EncrypType=AES
-+    5. iwpriv ra0 set WPAPSK="AP's wpa-preshared key"
-+    6. iwconfig ra0 essid "AP's SSID"
-+
-+
-+
-+iwpriv
-+=================
-+This is detailed explanation of each parameters for iwpriv.
-+Before reading this document, make sure you already read README.
-+
-+----------------------------------------------------------------------
-+USAGE:
-+    iwpriv ra0 set [parameters]=[val]
-+
-+where
-+
-+[parameters]    [val] range             explanation
-+------------    --------------------    ---------------------
-+CountryRegion   {0~7}                   Set country region
-+                                        0: use 1 ~ 11 Channel
-+                                        1: use 1 ~ 11 Channel
-+                                        2: use 1 ~ 13 Channel
-+                                        3: use 10, 11 Channel
-+                                        4: use 10 ~ 13 Channel
-+                                        5: use 14 Channel
-+                                        6: use 1 ~ 14 Channel
-+                                        7: use 3 ~ 9 Channel
-+
-+WirelessMode    {0~2}                   Set Wireless Mode
-+                                        0:11b/g mixed, 1:11B only
-+
-+TxRate          {0~12}                  Set TxRate
-+                                        0:Auto, 1:1Mbps, 2:2Mbps,
-+                                        3:5.5Mbps, 4:11Mbps, 5:6Mbps,
-+                                        6:9Mbps, 7:12Mbps, 8:18Mbps,
-+                                        9:24Mbps, 10:36Mbps,
-+                                        11:48Mbps, 12:54Mbps
-+
-+BGProtection    {0~2}                   Set 11B/11G Protection
-+                                        0:Auto, 1:Always on,
-+                                        2:Always off
-+
-+TxPreamble      {0~2}                   Set TxPreamble
-+                                        0:Preamble Long,
-+                                        1:Preamble Short,
-+                                        2:Auto
-+
-+TxBurst         {0,1}                   Enable/Disable
-+                                        0:Disable, 1:Enable
-+
-+TurboRate       {0,1}                   Enable/Disable
-+                                        0:Disable, 1:Enable
-+
-+AdhocOfdm       {0, 1}                  Adhoc mode OFDM
-+                                        0: Disallow 1: Allow
-+
-+AuthMode        {OPEN,SHARED,WPAPSK}    Authentication mode
-+
-+EncrypType      {NONE,WEP,TKIP,AES}     Encryption Type
-+
-+WPAPSK          {8~63 ASCII or 64 HEX characters}
-+                                        WPA Pre-Shared Key
-+
-+ApClient        {0,1}                   Set ApClient mode
-+                                        0:Disable, 1:Enable
-+
-+iwlist
-+=================
-+This is detailed explanation of each parameters for iwlist.
-+
-+----------------------------------------------------------------------
-+
-+iwlist ra0 scanning; list the result after scanning(site survey)
-+
-+
-+
-+
-+----------------------------------------------------------------------
-+
-+
-+Deprecated iwpriv
-+=================
-+
-+*** PLEASE DO NOT USE THESE FUNCTIONS, THIS IS FOR HISTORICAL
-+    REFERENCE ONLY ***
-+As the configuration utility still uses some iwpriv commands they have
-+not been removed from the driver yet. These commands are likely to
-+dissapear if the utility is updated.
-+
-+** ALL THESE COMMANDS HAVE A IWCONFIG REPLACEMENT, USE IT ****
-+
-+SSID           {0~z, less than 32 characters}       Set SoftAP SSID
-+
-+Channel         {1~14} depends on country region    Set Channel
-+
-+RTSThreshold    {1~2347}                            Set RTS Threshold
-+
-+FragThreshold   {256~2346}                          Set Fragment Threshold
-+
-+NetworkType     {Infra,Adhoc}                       Set Network type
-+
-+DefaultKeyID    {1~4}                               Set Default Key ID
-+
-+Key1            {5 ascii characters or              Set Key1 String
-+                10 hex number or
-+                13 ascii characters or
-+                26 hex numbers}
-+
-+Key2            {5 ascii characters or              Set Key2 String
-+                10 hex number or
-+                13 ascii characters or
-+                26 hex numbers}
-+
-+Key3            {5 ascii characters or              Set Key3 String
-+                10 hex number or
-+                13 ascii characters or
-+                26 hex numbers}
-+
-+Key4            {5 ascii characters or              Set Key4 String
-+                10 hex number or
-+                13 ascii characters or
-+                26 hex numbers}
-diff -Nur rt2500-1.1.0-b4/Module/load rt2500-cvs-2007061011/Module/load
---- rt2500-1.1.0-b4/Module/load	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/load	1970-01-01 01:00:00.000000000 +0100
-@@ -1,3 +0,0 @@
--/sbin/insmod rt2500.o
--/sbin/ifconfig ra0 inet 192.168.1.234 up
--/sbin/route add default gw 192.168.1.1
-\ Kein Zeilenumbruch am Dateiende.
-diff -Nur rt2500-1.1.0-b4/Module/md5.c rt2500-cvs-2007061011/Module/md5.c
---- rt2500-1.1.0-b4/Module/md5.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/md5.c	2007-05-29 05:49:17.000000000 +0200
-@@ -1,38 +1,38 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-  *   This MD5 code is based on code from Dynamics -- HUT Mobile IP         *
-  *   Copyright (C) 1998-2001, Dynamics group                               *
-- ***************************************************************************/ 
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: md5.c
-- *              
-+ *
-  *      Abstract: contain MD5 and AES cipher algorithm
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      JanL            28th Oct 03     Initial code     
-- *      MarkW           8th  Dec 04     Baseline code  
-- ***************************************************************************/ 
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      JanL            28th Oct 03     Initial code
-+ *      MarkW           8th  Dec 04     Baseline code
-+ ***************************************************************************/
- 
- #include "rt_config.h"
- 
-@@ -48,7 +48,8 @@
-  * md5_mac() determines the message authentication code by using secure hash
-  * MD5(key | data | key).
-  */
--void md5_mac(u8 *key, size_t key_len, u8 *data, size_t data_len, u8 *mac)
-+void md5_mac(UCHAR *key, ULONG key_len, UCHAR *data, ULONG data_len,
-+	     UCHAR *mac)
- {
-     MD5_CTX context;
- 
-@@ -71,12 +72,13 @@
-  * hmac_md5() determines the message authentication code using HMAC-MD5.
-  * This implementation is based on the sample code presented in RFC 2104.
-  */
--void hmac_md5(u8 *key, size_t key_len, u8 *data, size_t data_len, u8 *mac)
-+void hmac_md5(UCHAR *key, ULONG key_len, UCHAR *data, ULONG data_len,
-+	      UCHAR *mac)
- {
-     MD5_CTX context;
--    u8 k_ipad[65]; /* inner padding - key XORd with ipad */
--    u8 k_opad[65]; /* outer padding - key XORd with opad */
--    u8 tk[16];
-+    UCHAR k_ipad[65]; /* inner padding - key XORd with ipad */
-+    UCHAR k_opad[65]; /* outer padding - key XORd with opad */
-+    UCHAR tk[16];
-     int i;
- 
-     //assert(key != NULL && data != NULL && mac != NULL);
-@@ -128,25 +130,6 @@
-     MD5Final(mac, &context);             /* finish up 2nd pass */
- }
- 
--
--/* ===== start - public domain MD5 implementation ===== */
--/*
-- * This code implements the MD5 message-digest algorithm.
-- * The algorithm is due to Ron Rivest.  This code was
-- * written by Colin Plumb in 1993, no copyright is claimed.
-- * This code is in the public domain; do with it what you wish.
-- *
-- * Equivalent code is available from RSA Data Security, Inc.
-- * This code has been tested against that, and is equivalent,
-- * except that you don't need to include two pages of legalese
-- * with every copy.
-- *
-- * To compute the message digest of a chunk of bytes, declare an
-- * MD5Context structure, pass it to MD5Init, call MD5Update as
-- * needed on buffers full of bytes, and then call MD5Final, which
-- * will fill a supplied 16-byte array with the digest.
-- */
--
- #ifndef BIG_ENDIAN
- #define byteReverse(buf, len)   /* Nothing */
- #else
-@@ -160,588 +143,808 @@
- }
- #endif
- 
-+/* ==========================  MD5 implementation =========================== */
-+// four base functions for MD5
-+#define MD5_F1(x, y, z) (((x) & (y)) | ((~x) & (z)))
-+#define MD5_F2(x, y, z) (((x) & (z)) | ((y) & (~z)))
-+#define MD5_F3(x, y, z) ((x) ^ (y) ^ (z))
-+#define MD5_F4(x, y, z) ((y) ^ ((x) | (~z)))
-+#define CYCLIC_LEFT_SHIFT(w, s) (((w) << (s)) | ((w) >> (32-(s))))
-+
-+#define	MD5Step(f, w, x, y,	z, data, t, s)	\
-+	( w	+= f(x,	y, z) +	data + t,  w = (CYCLIC_LEFT_SHIFT(w, s)) & 0xffffffff, w +=	x )
-+
- /*
-- * Start MD5 accumulation.  Set bit count to 0 and buffer to mysterious
-- * initialization constants.
-+ *  Function Description:
-+ *      Initiate MD5 Context satisfied in RFC 1321
-+ *
-+ *  Arguments:
-+ *      pCtx        Pointer	to MD5 context
-+ *
-+ *  Return Value:
-+ *      None
-  */
--void MD5Init(struct MD5Context *ctx)
-+VOID MD5Init(MD5_CTX *pCtx)
- {
--    ctx->buf[0] = 0x67452301;
--    ctx->buf[1] = 0xefcdab89;
--    ctx->buf[2] = 0x98badcfe;
--    ctx->buf[3] = 0x10325476;
-+    pCtx->Buf[0] = 0x67452301;
-+    pCtx->Buf[1] = 0xefcdab89;
-+    pCtx->Buf[2] = 0x98badcfe;
-+    pCtx->Buf[3] = 0x10325476;
- 
--    ctx->bits[0] = 0;
--    ctx->bits[1] = 0;
-+    pCtx->LenInBitCount[0] = 0;
-+    pCtx->LenInBitCount[1] = 0;
- }
- 
- /*
-- * Update context to reflect the concatenation of another buffer full
-- * of bytes.
-+ *  Function Description:
-+ *      Update MD5 Context, allow of an arrary of octets as the next portion
-+ *      of the message
-+ *
-+ *  Arguments:
-+ *      pCtx        Pointer to MD5 context
-+ *      pData       Pointer to input data
-+ *      LenInBytes  The length of input data (unit: byte)
-+ *
-+ *  Return Value:
-+ *      None
-+ *
-+ *  Note:
-+ *      Called after MD5Init or MD5Update(itself)
-  */
--void MD5Update(struct MD5Context *ctx, unsigned char *buf, unsigned len)
-+VOID MD5Update(MD5_CTX *pCtx, UCHAR *pData, ULONG LenInBytes)
- {
--    u32 t;
-+	ULONG TfTimes;
-+	ULONG temp;
-+	unsigned int i;
- 
--    /* Update bitcount */
-+	temp = pCtx->LenInBitCount[0];
- 
--    t = ctx->bits[0];
--    if ((ctx->bits[0] = t + ((u32) len << 3)) < t)
--        ctx->bits[1]++;     /* Carry from low to high */
--    ctx->bits[1] += len >> 29;
--
--    t = (t >> 3) & 0x3f;    /* Bytes already in shsInfo->data */
--
--    /* Handle any leading odd-sized chunks */
--
--    if (t) {
--        unsigned char *p = (unsigned char *) ctx->in + t;
--
--        t = 64 - t;
--        if (len < t) {
--            memcpy(p, buf, len);
--            return;
--        }
--        memcpy(p, buf, t);
--        byteReverse(ctx->in, 16);
--        MD5Transform(ctx->buf, (u32 *) ctx->in);
--        buf += t;
--        len -= t;
--    }
--    /* Process data in 64-byte chunks */
-+	pCtx->LenInBitCount[0] =
-+		(ULONG) (pCtx->LenInBitCount[0] + (LenInBytes << 3));
- 
--    while (len >= 64) {
--        memcpy(ctx->in, buf, 64);
--        byteReverse(ctx->in, 16);
--        MD5Transform(ctx->buf, (u32 *) ctx->in);
--        buf += 64;
--        len -= 64;
--    }
-+	if (pCtx->LenInBitCount[0] < temp)
-+		pCtx->LenInBitCount[1]++;	//carry in
-+
-+	pCtx->LenInBitCount[1] += LenInBytes >> 29;
-+
-+	// mod 64 bytes
-+	temp = (temp >> 3) & 0x3f;
-+
-+	// process lacks of 64-byte data
-+	if (temp) {
-+		UCHAR *pAds = (UCHAR *) pCtx->Input + temp;
-+
-+		if ((temp + LenInBytes) < 64) {
-+			memcpy(pAds, (UCHAR *) pData, LenInBytes);
-+			return;
-+		}
- 
--    /* Handle any remaining bytes of data. */
-+		memcpy(pAds, (UCHAR *) pData, 64 - temp);
-+		byteReverse(pCtx->Input, 16);
-+		MD5Transform(pCtx->Buf, (ULONG *) pCtx->Input);
- 
--    memcpy(ctx->in, buf, len);
-+		pData += 64 - temp;
-+		LenInBytes -= 64 - temp;
-+	}			// end of if (temp)
-+
-+	TfTimes = (LenInBytes >> 6);
-+
-+	for (i = TfTimes; i > 0; i--) {
-+		memcpy(pCtx->Input, (UCHAR *) pData, 64);
-+		byteReverse(pCtx->Input, 16);
-+		MD5Transform(pCtx->Buf, (ULONG *) pCtx->Input);
-+		pData += 64;
-+		LenInBytes -= 64;
-+	}			// end of for
-+
-+	// buffering lacks of 64-byte data
-+	if (LenInBytes)
-+		memcpy(pCtx->Input, (UCHAR *) pData, LenInBytes);
- }
- 
- /*
-- * Final wrapup - pad to 64-byte boundary with the bit pattern
-- * 1 0* (64-bit count of bits processed, MSB-first)
-+ *  Function Description:
-+ *      Append padding bits and length of original message in the tail
-+ *      The message digest has to be completed in the end
-+ *
-+ *  Arguments:
-+ *      Digest      Output of Digest-Message for MD5
-+ *  	pCtx        Pointer to MD5 context
-+ *
-+ *  Return Value:
-+ *      None
-+ *
-+ *  Note:
-+ *      Called after MD5Update
-  */
--void MD5Final(unsigned char digest[16], struct MD5Context *ctx)
-+VOID MD5Final(UCHAR Digest[16], MD5_CTX *pCtx)
- {
--    unsigned count;
--    unsigned char *p;
--
--    /* Compute number of bytes mod 64 */
--    count = (ctx->bits[0] >> 3) & 0x3F;
--
--    /* Set the first char of padding to 0x80.  This is safe since there is
--       always at least one byte free */
--    p = ctx->in + count;
--    *p++ = 0x80;
--
--    /* Bytes of padding needed to make 64 bytes */
--    count = 64 - 1 - count;
--
--    /* Pad out to 56 mod 64 */
--    if (count < 8) {
--        /* Two lots of padding:  Pad the first block to 64 bytes */
--        memset(p, 0, count);
--        byteReverse(ctx->in, 16);
--        MD5Transform(ctx->buf, (u32 *) ctx->in);
--
--        /* Now fill the next block with 56 bytes */
--        memset(ctx->in, 0, 56);
--    } else {
--        /* Pad block to 56 bytes */
--        memset(p, 0, count - 8);
--    }
--    byteReverse(ctx->in, 14);
-+	UCHAR Remainder;
-+	UCHAR PadLenInBytes;
-+	UCHAR *pAppend = 0;
-+	unsigned int i;
-+
-+	Remainder = (UCHAR) ((pCtx->LenInBitCount[0] >> 3) & 0x3f);
-+
-+	PadLenInBytes = (Remainder < 56) ? (56 - Remainder) : (120 - Remainder);
-+
-+	pAppend = (UCHAR *) pCtx->Input + Remainder;
-+
-+	// padding bits without crossing block(64-byte based) boundary
-+	if (Remainder < 56) {
-+		*pAppend = 0x80;
-+		PadLenInBytes--;
-+
-+		memset((UCHAR *) pCtx->Input + Remainder + 1, 0,
-+			       PadLenInBytes);
-+
-+		// add data-length field, from low to high
-+		for (i = 0; i < 4; i++) {
-+			pCtx->Input[56 + i] =
-+			    (UCHAR) ((pCtx->
-+				      LenInBitCount[0] >> (i << 3)) & 0xff);
-+			pCtx->Input[60 + i] =
-+			    (UCHAR) ((pCtx->
-+				      LenInBitCount[1] >> (i << 3)) & 0xff);
-+		}
-+
-+		byteReverse(pCtx->Input, 16);
-+		MD5Transform(pCtx->Buf, (ULONG *) pCtx->Input);
-+	}			// end of if
-+
-+	// padding bits with crossing block(64-byte based) boundary
-+	else {
-+		// the first block ===
-+		*pAppend = 0x80;
-+		PadLenInBytes--;
-+
-+		memset((UCHAR *) pCtx->Input + Remainder + 1, 0,
-+			       (64 - Remainder - 1));
-+		PadLenInBytes -= (64 - Remainder - 1);
-+
-+		byteReverse(pCtx->Input, 16);
-+		MD5Transform(pCtx->Buf, (ULONG *) pCtx->Input);
-+
-+		// the second block ===
-+		memset((UCHAR *) pCtx->Input, 0, PadLenInBytes);
-+
-+		// add data-length field
-+		for (i = 0; i < 4; i++) {
-+			pCtx->Input[56 + i] =
-+			    (UCHAR) ((pCtx->
-+				      LenInBitCount[0] >> (i << 3)) & 0xff);
-+			pCtx->Input[60 + i] =
-+			    (UCHAR) ((pCtx->
-+				      LenInBitCount[1] >> (i << 3)) & 0xff);
-+		}
-+
-+		byteReverse(pCtx->Input, 16);
-+		MD5Transform(pCtx->Buf, (ULONG *) pCtx->Input);
-+	}			// end of else
-+
-+	memcpy((UCHAR *) Digest, (ULONG *) pCtx->Buf, 16);	// output
-+	byteReverse((UCHAR *) Digest, 4);
-+	memset(pCtx, 0, sizeof(pCtx));	// memory free
-+}
- 
--    /* Append length in bits and transform */
--    ((u32 *) ctx->in)[14] = ctx->bits[0];
--    ((u32 *) ctx->in)[15] = ctx->bits[1];
-+/*
-+ *  Function Description:
-+ *      The central algorithm of MD5, consists of four rounds and sixteen
-+ *  	steps per round
-+ *
-+ *  Arguments:
-+ *      Buf     Buffers of four states (output: 16 bytes)
-+ * 	    Mes     Input data (input: 64 bytes)
-+ *
-+ *  Return Value:
-+ *      None
-+ *
-+ *  Note:
-+ *      Called by MD5Update or MD5Final
-+ */
-+VOID MD5Transform(ULONG Buf[4], ULONG Mes[16])
-+{
-+	ULONG Reg[4], Temp;
-+	unsigned int i;
- 
--    MD5Transform(ctx->buf, (u32 *) ctx->in);
--    byteReverse((unsigned char *) ctx->buf, 4);
--    memcpy(digest, ctx->buf, 16);
--    memset(ctx, 0, sizeof(ctx));  /* In case it's sensitive */
-+	static UCHAR LShiftVal[16] = {
-+		7, 12, 17, 22,
-+		5, 9, 14, 20,
-+		4, 11, 16, 23,
-+		6, 10, 15, 21,
-+	};
-+
-+	// [equal to 4294967296*abs(sin(index))]
-+	static ULONG MD5Table[64] = {
-+		0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee,
-+		0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501,
-+		0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be,
-+		0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821,
-+
-+		0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa,
-+		0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8,
-+		0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed,
-+		0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a,
-+
-+		0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c,
-+		0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70,
-+		0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05,
-+		0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665,
-+
-+		0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039,
-+		0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1,
-+		0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1,
-+		0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391
-+	};
-+
-+	for (i = 0; i < 4; i++)
-+		Reg[i] = Buf[i];
-+
-+	// 64 steps in MD5 algorithm
-+	for (i = 0; i < 16; i++) {
-+		MD5Step(MD5_F1, Reg[0], Reg[1], Reg[2], Reg[3], Mes[i],
-+			MD5Table[i], LShiftVal[i & 0x3]);
-+
-+		// one-word right shift
-+		Temp = Reg[3];
-+		Reg[3] = Reg[2];
-+		Reg[2] = Reg[1];
-+		Reg[1] = Reg[0];
-+		Reg[0] = Temp;
-+	}
-+	for (i = 16; i < 32; i++) {
-+		MD5Step(MD5_F2, Reg[0], Reg[1], Reg[2], Reg[3],
-+			Mes[(5 * (i & 0xf) + 1) & 0xf], MD5Table[i],
-+			LShiftVal[(0x1 << 2) + (i & 0x3)]);
-+
-+		// one-word right shift
-+		Temp = Reg[3];
-+		Reg[3] = Reg[2];
-+		Reg[2] = Reg[1];
-+		Reg[1] = Reg[0];
-+		Reg[0] = Temp;
-+	}
-+	for (i = 32; i < 48; i++) {
-+		MD5Step(MD5_F3, Reg[0], Reg[1], Reg[2], Reg[3],
-+			Mes[(3 * (i & 0xf) + 5) & 0xf], MD5Table[i],
-+			LShiftVal[(0x1 << 3) + (i & 0x3)]);
-+
-+		// one-word right shift
-+		Temp = Reg[3];
-+		Reg[3] = Reg[2];
-+		Reg[2] = Reg[1];
-+		Reg[1] = Reg[0];
-+		Reg[0] = Temp;
-+	}
-+	for (i = 48; i < 64; i++) {
-+		MD5Step(MD5_F4, Reg[0], Reg[1], Reg[2], Reg[3],
-+			Mes[(7 * (i & 0xf)) & 0xf], MD5Table[i],
-+			LShiftVal[(0x3 << 2) + (i & 0x3)]);
-+
-+		// one-word right shift
-+		Temp = Reg[3];
-+		Reg[3] = Reg[2];
-+		Reg[2] = Reg[1];
-+		Reg[1] = Reg[0];
-+		Reg[0] = Temp;
-+	}
-+
-+	// (temporary)output
-+	for (i = 0; i < 4; i++)
-+		Buf[i] += Reg[i];
- }
- 
--//#ifndef ASM_MD5
--#if 1
-+/* =========================  SHA-1 implementation ========================== */
-+// four base functions for SHA-1
-+#define SHA1_F1(b, c, d)    (((b) & (c)) | ((~b) & (d)))
-+#define SHA1_F2(b, c, d)    ((b) ^ (c) ^ (d))
-+#define SHA1_F3(b, c, d)    (((b) & (c)) | ((b) & (d)) | ((c) & (d)))
-+
-+#define SHA1Step(f, a, b, c, d, e, w, k)    \
-+    ( e	+= ( f(b, c, d) + w + k + CYCLIC_LEFT_SHIFT(a, 5)) & 0xffffffff, \
-+      b = CYCLIC_LEFT_SHIFT(b, 30) )
- 
--/* The four core functions - F1 is optimized somewhat */
--
--/* #define F1(x, y, z) (x & y | ~x & z) */
--#define F1(x, y, z) (z ^ (x & (y ^ z)))
--#define F2(x, y, z) F1(z, x, y)
--#define F3(x, y, z) (x ^ y ^ z)
--#define F4(x, y, z) (y ^ (x | ~z))
-+//Initiate SHA-1 Context satisfied in RFC 3174
-+VOID SHAInit(SHA_CTX * pCtx)
-+{
-+	pCtx->Buf[0] = 0x67452301;
-+	pCtx->Buf[1] = 0xefcdab89;
-+	pCtx->Buf[2] = 0x98badcfe;
-+	pCtx->Buf[3] = 0x10325476;
-+	pCtx->Buf[4] = 0xc3d2e1f0;
- 
--/* This is the central step in the MD5 algorithm. */
--#define MD5STEP(f, w, x, y, z, data, s) \
--    ( w += f(x, y, z) + data,  w =( w<<s | w>>(32-s))&0xffffffff,  w += x )
-+	pCtx->LenInBitCount[0] = 0;
-+	pCtx->LenInBitCount[1] = 0;
-+}
- 
- /*
-- * The core of the MD5 algorithm, this alters an existing MD5 hash to
-- * reflect the addition of 16 longwords of new data.  MD5Update blocks
-- * the data and converts bytes into longwords for this routine.
-+ *  Function Description:
-+ *      Update SHA-1 Context, allow of an arrary of octets as the next
-+ *      portion of the message
-+ *
-+ *  Arguments:
-+ *      pCtx		Pointer	to SHA-1 context
-+ * 	    pData       Pointer to input data
-+ *      LenInBytes  The length of input data (unit: byte)
-+ *
-+ *  Return Value:
-+ *      error       indicate more than pow(2,64) bits of data
-+ *
-+ *  Note:
-+ *      Called after SHAInit or SHAUpdate(itself)
-  */
--void MD5Transform(u32 buf[4], u32 in[16])
-+UCHAR SHAUpdate(SHA_CTX * pCtx, UCHAR * pData, ULONG LenInBytes)
- {
--    register u32 a, b, c, d;
-+	ULONG TfTimes;
-+	ULONG temp1, temp2;
-+	unsigned int i;
-+	UCHAR err = 1;
-+
-+	temp1 = pCtx->LenInBitCount[0];
-+	temp2 = pCtx->LenInBitCount[1];
-+
-+	pCtx->LenInBitCount[0] =
-+	    (ULONG) (pCtx->LenInBitCount[0] + (LenInBytes << 3));
-+	if (pCtx->LenInBitCount[0] < temp1)
-+		pCtx->LenInBitCount[1]++;	//carry in
-+
-+	pCtx->LenInBitCount[1] =
-+	    (ULONG) (pCtx->LenInBitCount[1] + (LenInBytes >> 29));
-+	if (pCtx->LenInBitCount[1] < temp2)
-+		return (err);	//check total length of original data
-+
-+	// mod 64 bytes
-+	temp1 = (temp1 >> 3) & 0x3f;
-+
-+	// process lacks of 64-byte data
-+	if (temp1) {
-+		UCHAR *pAds = (UCHAR *) pCtx->Input + temp1;
-+
-+		if ((temp1 + LenInBytes) < 64) {
-+			memcpy(pAds, (UCHAR *) pData, LenInBytes);
-+			return (0);
-+		}
-+
-+		memcpy(pAds, (UCHAR *) pData, 64 - temp1);
-+		byteReverse((UCHAR *) pCtx->Input, 16);
-+
-+		memset((UCHAR *) pCtx->Input + 64, 0, 16);
-+		SHATransform(pCtx->Buf, (ULONG *) pCtx->Input);
-+
-+		pData += 64 - temp1;
-+		LenInBytes -= 64 - temp1;
-+	}			// end of if (temp1)
-+
-+	TfTimes = (LenInBytes >> 6);
-+
-+	for (i = TfTimes; i > 0; i--) {
-+		memcpy(pCtx->Input, (UCHAR *) pData, 64);
-+		byteReverse((UCHAR *) pCtx->Input, 16);
-+
-+		memset((UCHAR *) pCtx->Input + 64, 0, 16);
-+		SHATransform(pCtx->Buf, (ULONG *) pCtx->Input);
-+		pData += 64;
-+		LenInBytes -= 64;
-+	}			// end of for
-+
-+	// buffering lacks of 64-byte data
-+	if (LenInBytes)
-+		memcpy(pCtx->Input, (UCHAR *) pData, LenInBytes);
- 
--    a = buf[0];
--    b = buf[1];
--    c = buf[2];
--    d = buf[3];
--
--    MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
--    MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
--    MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
--    MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
--    MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
--    MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
--    MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
--    MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
--    MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
--    MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
--    MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
--    MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
--    MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
--    MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
--    MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
--    MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);
--
--    MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
--    MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
--    MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
--    MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
--    MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
--    MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
--    MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
--    MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
--    MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
--    MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
--    MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
--    MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
--    MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
--    MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
--    MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
--    MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);
--
--    MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
--    MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
--    MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
--    MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
--    MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
--    MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
--    MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
--    MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
--    MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
--    MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
--    MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
--    MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
--    MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
--    MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
--    MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
--    MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);
--
--    MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
--    MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
--    MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
--    MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
--    MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
--    MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
--    MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
--    MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
--    MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
--    MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
--    MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
--    MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
--    MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
--    MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
--    MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
--    MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);
--
--    buf[0] += a;
--    buf[1] += b;
--    buf[2] += c;
--    buf[3] += d;
-+	return (0);
- }
--#endif
- 
--void SHAInit(SHA_CTX *ctx) {
--    int i;
-- 
--    ctx->lenW = 0;
--    ctx->sizeHi = ctx->sizeLo = 0;
-- 
--    /* Initialize H with the magic constants (see FIPS180 for constants)
--     */
--    ctx->H[0] = 0x67452301L;
--    ctx->H[1] = 0xefcdab89L;
--    ctx->H[2] = 0x98badcfeL;
--    ctx->H[3] = 0x10325476L;
--    ctx->H[4] = 0xc3d2e1f0L;
-- 
--    for (i = 0; i < 80; i++)
--        ctx->W[i] = 0;
-- }
--
--#define SHA_ROTL(X,n) ((((X) << (n)) | ((X) >> (32-(n)))) & 0xffffffffL)
-- 
--void SHAHashBlock(SHA_CTX *ctx) {
--    int t;
--    unsigned long A,B,C,D,E,TEMP;
-- 
--    for (t = 16; t <= 79; t++)
--        ctx->W[t] = SHA_ROTL(ctx->W[t-3] ^ ctx->W[t-8] ^ ctx->W[t-14] ^ ctx->W[t-16], 1);
-- 
--    A = ctx->H[0];
--    B = ctx->H[1];
--    C = ctx->H[2];
--    D = ctx->H[3];
--    E = ctx->H[4];
-- 
--    for (t = 0; t <= 19; t++) {
--        TEMP = (SHA_ROTL(A,5) + (((C^D)&B)^D)     + E + ctx->W[t] + 0x5a827999L) & 0xffffffffL;
--        E = D; D = C; C = SHA_ROTL(B, 30); B = A; A = TEMP;
--    }
--    for (t = 20; t <= 39; t++) {
--        TEMP = (SHA_ROTL(A,5) + (B^C^D)           + E + ctx->W[t] + 0x6ed9eba1L) & 0xffffffffL;
--        E = D; D = C; C = SHA_ROTL(B, 30); B = A; A = TEMP;
--    }
--    for (t = 40; t <= 59; t++) {
--        TEMP = (SHA_ROTL(A,5) + ((B&C)|(D&(B|C))) + E + ctx->W[t] + 0x8f1bbcdcL) & 0xffffffffL;
--        E = D; D = C; C = SHA_ROTL(B, 30); B = A; A = TEMP;
--    }
--    for (t = 60; t <= 79; t++) {
--        TEMP = (SHA_ROTL(A,5) + (B^C^D)           + E + ctx->W[t] + 0xca62c1d6L) & 0xffffffffL;
--        E = D; D = C; C = SHA_ROTL(B, 30); B = A; A = TEMP;
--    }
-- 
--    ctx->H[0] += A;
--    ctx->H[1] += B;
--    ctx->H[2] += C;
--    ctx->H[3] += D;
--    ctx->H[4] += E;
-+// Append padding bits and length of original message in the tail
-+// The message digest has to be completed in the end
-+VOID SHAFinal(SHA_CTX * pCtx, UCHAR Digest[20])
-+{
-+	UCHAR Remainder;
-+	UCHAR PadLenInBytes;
-+	UCHAR *pAppend = 0;
-+	unsigned int i;
-+
-+	Remainder = (UCHAR) ((pCtx->LenInBitCount[0] >> 3) & 0x3f);
-+
-+	pAppend = (UCHAR *) pCtx->Input + Remainder;
-+
-+	PadLenInBytes = (Remainder < 56) ? (56 - Remainder) : (120 - Remainder);
-+
-+	// padding bits without crossing block(64-byte based) boundary
-+	if (Remainder < 56) {
-+		*pAppend = 0x80;
-+		PadLenInBytes--;
-+
-+		memset((UCHAR *) pCtx->Input + Remainder + 1, 0,
-+			       PadLenInBytes);
-+
-+		// add data-length field, from high to low
-+		for (i = 0; i < 4; i++) {
-+			pCtx->Input[56 + i] =
-+			    (UCHAR) ((pCtx->
-+				      LenInBitCount[1] >> ((3 - i) << 3)) &
-+				     0xff);
-+			pCtx->Input[60 + i] =
-+			    (UCHAR) ((pCtx->
-+				      LenInBitCount[0] >> ((3 - i) << 3)) &
-+				     0xff);
-+		}
-+
-+		byteReverse((UCHAR *) pCtx->Input, 16);
-+		memset((UCHAR *) pCtx->Input + 64, 0, 14);
-+		SHATransform(pCtx->Buf, (ULONG *) pCtx->Input);
-+	}			// end of if
-+
-+	// padding bits with crossing block(64-byte based) boundary
-+	else {
-+		// the first block ===
-+		*pAppend = 0x80;
-+		PadLenInBytes--;
-+
-+		memset((UCHAR *) pCtx->Input + Remainder + 1, 0,
-+			       (64 - Remainder - 1));
-+		PadLenInBytes -= (64 - Remainder - 1);
-+
-+		byteReverse((UCHAR *) pCtx->Input, 16);
-+		memset((UCHAR *) pCtx->Input + 64, 0, 16);
-+		SHATransform(pCtx->Buf, (ULONG *) pCtx->Input);
-+
-+		// the second block ===
-+		memset((UCHAR *) pCtx->Input, 0, PadLenInBytes);
-+
-+		// add data-length field
-+		for (i = 0; i < 4; i++) {
-+			pCtx->Input[56 + i] =
-+			    (UCHAR) ((pCtx->
-+				      LenInBitCount[1] >> ((3 - i) << 3)) &
-+				     0xff);
-+			pCtx->Input[60 + i] =
-+			    (UCHAR) ((pCtx->
-+				      LenInBitCount[0] >> ((3 - i) << 3)) &
-+				     0xff);
-+		}
-+
-+		byteReverse((UCHAR *) pCtx->Input, 16);
-+		memset((UCHAR *) pCtx->Input + 64, 0, 16);
-+		SHATransform(pCtx->Buf, (ULONG *) pCtx->Input);
-+	}			// end of else
-+
-+	//Output, bytereverse
-+	for (i = 0; i < 20; i++) {
-+		Digest[i] = (UCHAR) (pCtx->Buf[i >> 2] >> 8 * (3 - (i & 0x3)));
-+	}
-+
-+	memset(pCtx, 0, sizeof(pCtx));	// memory free
- }
- 
--void SHAUpdate(SHA_CTX *ctx, unsigned char *dataIn, int len) 
-+// The central algorithm of SHA-1, consists of four rounds and
-+// twenty steps per round
-+VOID SHATransform(ULONG Buf[5], ULONG Mes[20])
- {
--    int i;
-- 
--    /* Read the data into W and process blocks as they get full
--     */
--    for (i = 0; i < len; i++) {
--        ctx->W[ctx->lenW / 4] <<= 8;
--        ctx->W[ctx->lenW / 4] |= (unsigned long)dataIn[i];
--        if ((++ctx->lenW) % 64 == 0) {
--            SHAHashBlock(ctx);
--            ctx->lenW = 0;
--        }
--        ctx->sizeLo += 8;
--        ctx->sizeHi += (ctx->sizeLo < 8);
--    }
-+	ULONG Reg[5], Temp;
-+	unsigned int i;
-+	ULONG W[80];
-+
-+	static ULONG SHA1Table[4] = { 0x5a827999, 0x6ed9eba1,
-+		0x8f1bbcdc, 0xca62c1d6
-+	};
-+
-+	Reg[0] = Buf[0];
-+	Reg[1] = Buf[1];
-+	Reg[2] = Buf[2];
-+	Reg[3] = Buf[3];
-+	Reg[4] = Buf[4];
-+
-+	//the first octet of a word is stored in the 0th element, bytereverse
-+	for (i = 0; i < 16; i++) {
-+		W[i] = (Mes[i] >> 24) & 0xff;
-+		W[i] |= (Mes[i] >> 8) & 0xff00;
-+		W[i] |= (Mes[i] << 8) & 0xff0000;
-+		W[i] |= (Mes[i] << 24) & 0xff000000;
-+	}
-+
-+	for (i = 0; i < 64; i++)
-+		W[16 + i] =
-+		    CYCLIC_LEFT_SHIFT(W[i] ^ W[2 + i] ^ W[8 + i] ^ W[13 + i],
-+				      1);
-+
-+	// 80 steps in SHA-1 algorithm
-+	for (i = 0; i < 80; i++) {
-+		if (i < 20)
-+			SHA1Step(SHA1_F1, Reg[0], Reg[1], Reg[2], Reg[3],
-+				 Reg[4], W[i], SHA1Table[0]);
-+
-+		else if (i >= 20 && i < 40)
-+			SHA1Step(SHA1_F2, Reg[0], Reg[1], Reg[2], Reg[3],
-+				 Reg[4], W[i], SHA1Table[1]);
-+
-+		else if (i >= 40 && i < 60)
-+			SHA1Step(SHA1_F3, Reg[0], Reg[1], Reg[2], Reg[3],
-+				 Reg[4], W[i], SHA1Table[2]);
-+
-+		else
-+			SHA1Step(SHA1_F2, Reg[0], Reg[1], Reg[2], Reg[3],
-+				 Reg[4], W[i], SHA1Table[3]);
-+
-+		// one-word right shift
-+		Temp = Reg[4];
-+		Reg[4] = Reg[3];
-+		Reg[3] = Reg[2];
-+		Reg[2] = Reg[1];
-+		Reg[1] = Reg[0];
-+		Reg[0] = Temp;
-+
-+	}			// end of for-loop
-+
-+	// (temporary)output
-+	for (i = 0; i < 5; i++)
-+		Buf[i] += Reg[i];
- }
- 
--
--void SHAFinal(SHA_CTX *ctx, unsigned char hashout[20]) {
--    unsigned char pad0x80 = 0x80;
--    unsigned char pad0x00 = 0x00;
--    unsigned char padlen[8];
--    int i;
-- 
--    /* Pad with a binary 1 (e.g. 0x80), then zeroes, then length
--     */
--    padlen[0] = (unsigned char)((ctx->sizeHi >> 24) & 255);
--    padlen[1] = (unsigned char)((ctx->sizeHi >> 16) & 255);
--    padlen[2] = (unsigned char)((ctx->sizeHi >> 8) & 255);
--    padlen[3] = (unsigned char)((ctx->sizeHi >> 0) & 255);
--    padlen[4] = (unsigned char)((ctx->sizeLo >> 24) & 255);
--    padlen[5] = (unsigned char)((ctx->sizeLo >> 16) & 255);
--    padlen[6] = (unsigned char)((ctx->sizeLo >> 8) & 255);
--    padlen[7] = (unsigned char)((ctx->sizeLo >> 0) & 255);
--    SHAUpdate(ctx, &pad0x80, 1);
--    while (ctx->lenW != 56)
--        SHAUpdate(ctx, &pad0x00, 1);
--    SHAUpdate(ctx, padlen, 8);
-- 
--    /* Output hash
--     */
--    for (i = 0; i < 20; i++) {
--        hashout[i] = (unsigned char)(ctx->H[i / 4] >> 24);
--        ctx->H[i / 4] <<= 8;
--    }
-- 
--    /*
--     *  Re-initialize the context (also zeroizes contents)
--     */
--    SHAInit(ctx); 
--}
-+/* =========================  AES En/Decryption ========================== */
- 
- /* forward S-box */
--
--static uint32 FSb[256] =
--{
--    0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5,
--    0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76,
--    0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0,
--    0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0,
--    0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC,
--    0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15,
--    0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A,
--    0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75,
--    0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0,
--    0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84,
--    0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B,
--    0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF,
--    0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85,
--    0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8,
--    0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5,
--    0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2,
--    0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17,
--    0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73,
--    0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88,
--    0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB,
--    0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C,
--    0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79,
--    0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9,
--    0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08,
--    0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6,
--    0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A,
--    0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E,
--    0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E,
--    0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94,
--    0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF,
--    0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68,
--    0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16
-+static uint32 FSb[256] = {
-+	0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5,
-+	0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76,
-+	0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0,
-+	0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0,
-+	0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC,
-+	0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15,
-+	0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A,
-+	0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75,
-+	0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0,
-+	0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84,
-+	0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B,
-+	0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF,
-+	0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85,
-+	0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8,
-+	0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5,
-+	0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2,
-+	0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17,
-+	0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73,
-+	0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88,
-+	0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB,
-+	0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C,
-+	0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79,
-+	0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9,
-+	0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08,
-+	0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6,
-+	0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A,
-+	0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E,
-+	0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E,
-+	0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94,
-+	0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF,
-+	0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68,
-+	0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16
- };
- 
- /* forward table */
--
--#define FT \
-+#define	FT \
- \
--    V(C6,63,63,A5), V(F8,7C,7C,84), V(EE,77,77,99), V(F6,7B,7B,8D), \
--    V(FF,F2,F2,0D), V(D6,6B,6B,BD), V(DE,6F,6F,B1), V(91,C5,C5,54), \
--    V(60,30,30,50), V(02,01,01,03), V(CE,67,67,A9), V(56,2B,2B,7D), \
--    V(E7,FE,FE,19), V(B5,D7,D7,62), V(4D,AB,AB,E6), V(EC,76,76,9A), \
--    V(8F,CA,CA,45), V(1F,82,82,9D), V(89,C9,C9,40), V(FA,7D,7D,87), \
--    V(EF,FA,FA,15), V(B2,59,59,EB), V(8E,47,47,C9), V(FB,F0,F0,0B), \
--    V(41,AD,AD,EC), V(B3,D4,D4,67), V(5F,A2,A2,FD), V(45,AF,AF,EA), \
--    V(23,9C,9C,BF), V(53,A4,A4,F7), V(E4,72,72,96), V(9B,C0,C0,5B), \
--    V(75,B7,B7,C2), V(E1,FD,FD,1C), V(3D,93,93,AE), V(4C,26,26,6A), \
--    V(6C,36,36,5A), V(7E,3F,3F,41), V(F5,F7,F7,02), V(83,CC,CC,4F), \
--    V(68,34,34,5C), V(51,A5,A5,F4), V(D1,E5,E5,34), V(F9,F1,F1,08), \
--    V(E2,71,71,93), V(AB,D8,D8,73), V(62,31,31,53), V(2A,15,15,3F), \
--    V(08,04,04,0C), V(95,C7,C7,52), V(46,23,23,65), V(9D,C3,C3,5E), \
--    V(30,18,18,28), V(37,96,96,A1), V(0A,05,05,0F), V(2F,9A,9A,B5), \
--    V(0E,07,07,09), V(24,12,12,36), V(1B,80,80,9B), V(DF,E2,E2,3D), \
--    V(CD,EB,EB,26), V(4E,27,27,69), V(7F,B2,B2,CD), V(EA,75,75,9F), \
--    V(12,09,09,1B), V(1D,83,83,9E), V(58,2C,2C,74), V(34,1A,1A,2E), \
--    V(36,1B,1B,2D), V(DC,6E,6E,B2), V(B4,5A,5A,EE), V(5B,A0,A0,FB), \
--    V(A4,52,52,F6), V(76,3B,3B,4D), V(B7,D6,D6,61), V(7D,B3,B3,CE), \
--    V(52,29,29,7B), V(DD,E3,E3,3E), V(5E,2F,2F,71), V(13,84,84,97), \
--    V(A6,53,53,F5), V(B9,D1,D1,68), V(00,00,00,00), V(C1,ED,ED,2C), \
--    V(40,20,20,60), V(E3,FC,FC,1F), V(79,B1,B1,C8), V(B6,5B,5B,ED), \
--    V(D4,6A,6A,BE), V(8D,CB,CB,46), V(67,BE,BE,D9), V(72,39,39,4B), \
--    V(94,4A,4A,DE), V(98,4C,4C,D4), V(B0,58,58,E8), V(85,CF,CF,4A), \
--    V(BB,D0,D0,6B), V(C5,EF,EF,2A), V(4F,AA,AA,E5), V(ED,FB,FB,16), \
--    V(86,43,43,C5), V(9A,4D,4D,D7), V(66,33,33,55), V(11,85,85,94), \
--    V(8A,45,45,CF), V(E9,F9,F9,10), V(04,02,02,06), V(FE,7F,7F,81), \
--    V(A0,50,50,F0), V(78,3C,3C,44), V(25,9F,9F,BA), V(4B,A8,A8,E3), \
--    V(A2,51,51,F3), V(5D,A3,A3,FE), V(80,40,40,C0), V(05,8F,8F,8A), \
--    V(3F,92,92,AD), V(21,9D,9D,BC), V(70,38,38,48), V(F1,F5,F5,04), \
--    V(63,BC,BC,DF), V(77,B6,B6,C1), V(AF,DA,DA,75), V(42,21,21,63), \
--    V(20,10,10,30), V(E5,FF,FF,1A), V(FD,F3,F3,0E), V(BF,D2,D2,6D), \
--    V(81,CD,CD,4C), V(18,0C,0C,14), V(26,13,13,35), V(C3,EC,EC,2F), \
--    V(BE,5F,5F,E1), V(35,97,97,A2), V(88,44,44,CC), V(2E,17,17,39), \
--    V(93,C4,C4,57), V(55,A7,A7,F2), V(FC,7E,7E,82), V(7A,3D,3D,47), \
--    V(C8,64,64,AC), V(BA,5D,5D,E7), V(32,19,19,2B), V(E6,73,73,95), \
--    V(C0,60,60,A0), V(19,81,81,98), V(9E,4F,4F,D1), V(A3,DC,DC,7F), \
--    V(44,22,22,66), V(54,2A,2A,7E), V(3B,90,90,AB), V(0B,88,88,83), \
--    V(8C,46,46,CA), V(C7,EE,EE,29), V(6B,B8,B8,D3), V(28,14,14,3C), \
--    V(A7,DE,DE,79), V(BC,5E,5E,E2), V(16,0B,0B,1D), V(AD,DB,DB,76), \
--    V(DB,E0,E0,3B), V(64,32,32,56), V(74,3A,3A,4E), V(14,0A,0A,1E), \
--    V(92,49,49,DB), V(0C,06,06,0A), V(48,24,24,6C), V(B8,5C,5C,E4), \
--    V(9F,C2,C2,5D), V(BD,D3,D3,6E), V(43,AC,AC,EF), V(C4,62,62,A6), \
--    V(39,91,91,A8), V(31,95,95,A4), V(D3,E4,E4,37), V(F2,79,79,8B), \
--    V(D5,E7,E7,32), V(8B,C8,C8,43), V(6E,37,37,59), V(DA,6D,6D,B7), \
--    V(01,8D,8D,8C), V(B1,D5,D5,64), V(9C,4E,4E,D2), V(49,A9,A9,E0), \
--    V(D8,6C,6C,B4), V(AC,56,56,FA), V(F3,F4,F4,07), V(CF,EA,EA,25), \
--    V(CA,65,65,AF), V(F4,7A,7A,8E), V(47,AE,AE,E9), V(10,08,08,18), \
--    V(6F,BA,BA,D5), V(F0,78,78,88), V(4A,25,25,6F), V(5C,2E,2E,72), \
--    V(38,1C,1C,24), V(57,A6,A6,F1), V(73,B4,B4,C7), V(97,C6,C6,51), \
--    V(CB,E8,E8,23), V(A1,DD,DD,7C), V(E8,74,74,9C), V(3E,1F,1F,21), \
--    V(96,4B,4B,DD), V(61,BD,BD,DC), V(0D,8B,8B,86), V(0F,8A,8A,85), \
--    V(E0,70,70,90), V(7C,3E,3E,42), V(71,B5,B5,C4), V(CC,66,66,AA), \
--    V(90,48,48,D8), V(06,03,03,05), V(F7,F6,F6,01), V(1C,0E,0E,12), \
--    V(C2,61,61,A3), V(6A,35,35,5F), V(AE,57,57,F9), V(69,B9,B9,D0), \
--    V(17,86,86,91), V(99,C1,C1,58), V(3A,1D,1D,27), V(27,9E,9E,B9), \
--    V(D9,E1,E1,38), V(EB,F8,F8,13), V(2B,98,98,B3), V(22,11,11,33), \
--    V(D2,69,69,BB), V(A9,D9,D9,70), V(07,8E,8E,89), V(33,94,94,A7), \
--    V(2D,9B,9B,B6), V(3C,1E,1E,22), V(15,87,87,92), V(C9,E9,E9,20), \
--    V(87,CE,CE,49), V(AA,55,55,FF), V(50,28,28,78), V(A5,DF,DF,7A), \
--    V(03,8C,8C,8F), V(59,A1,A1,F8), V(09,89,89,80), V(1A,0D,0D,17), \
--    V(65,BF,BF,DA), V(D7,E6,E6,31), V(84,42,42,C6), V(D0,68,68,B8), \
--    V(82,41,41,C3), V(29,99,99,B0), V(5A,2D,2D,77), V(1E,0F,0F,11), \
--    V(7B,B0,B0,CB), V(A8,54,54,FC), V(6D,BB,BB,D6), V(2C,16,16,3A)
-+	V(C6,63,63,A5),	V(F8,7C,7C,84),	V(EE,77,77,99),	V(F6,7B,7B,8D),	\
-+	V(FF,F2,F2,0D),	V(D6,6B,6B,BD),	V(DE,6F,6F,B1),	V(91,C5,C5,54),	\
-+	V(60,30,30,50),	V(02,01,01,03),	V(CE,67,67,A9),	V(56,2B,2B,7D),	\
-+	V(E7,FE,FE,19),	V(B5,D7,D7,62),	V(4D,AB,AB,E6),	V(EC,76,76,9A),	\
-+	V(8F,CA,CA,45),	V(1F,82,82,9D),	V(89,C9,C9,40),	V(FA,7D,7D,87),	\
-+	V(EF,FA,FA,15),	V(B2,59,59,EB),	V(8E,47,47,C9),	V(FB,F0,F0,0B),	\
-+	V(41,AD,AD,EC),	V(B3,D4,D4,67),	V(5F,A2,A2,FD),	V(45,AF,AF,EA),	\
-+	V(23,9C,9C,BF),	V(53,A4,A4,F7),	V(E4,72,72,96),	V(9B,C0,C0,5B),	\
-+	V(75,B7,B7,C2),	V(E1,FD,FD,1C),	V(3D,93,93,AE),	V(4C,26,26,6A),	\
-+	V(6C,36,36,5A),	V(7E,3F,3F,41),	V(F5,F7,F7,02),	V(83,CC,CC,4F),	\
-+	V(68,34,34,5C),	V(51,A5,A5,F4),	V(D1,E5,E5,34),	V(F9,F1,F1,08),	\
-+	V(E2,71,71,93),	V(AB,D8,D8,73),	V(62,31,31,53),	V(2A,15,15,3F),	\
-+	V(08,04,04,0C),	V(95,C7,C7,52),	V(46,23,23,65),	V(9D,C3,C3,5E),	\
-+	V(30,18,18,28),	V(37,96,96,A1),	V(0A,05,05,0F),	V(2F,9A,9A,B5),	\
-+	V(0E,07,07,09),	V(24,12,12,36),	V(1B,80,80,9B),	V(DF,E2,E2,3D),	\
-+	V(CD,EB,EB,26),	V(4E,27,27,69),	V(7F,B2,B2,CD),	V(EA,75,75,9F),	\
-+	V(12,09,09,1B),	V(1D,83,83,9E),	V(58,2C,2C,74),	V(34,1A,1A,2E),	\
-+	V(36,1B,1B,2D),	V(DC,6E,6E,B2),	V(B4,5A,5A,EE),	V(5B,A0,A0,FB),	\
-+	V(A4,52,52,F6),	V(76,3B,3B,4D),	V(B7,D6,D6,61),	V(7D,B3,B3,CE),	\
-+	V(52,29,29,7B),	V(DD,E3,E3,3E),	V(5E,2F,2F,71),	V(13,84,84,97),	\
-+	V(A6,53,53,F5),	V(B9,D1,D1,68),	V(00,00,00,00),	V(C1,ED,ED,2C),	\
-+	V(40,20,20,60),	V(E3,FC,FC,1F),	V(79,B1,B1,C8),	V(B6,5B,5B,ED),	\
-+	V(D4,6A,6A,BE),	V(8D,CB,CB,46),	V(67,BE,BE,D9),	V(72,39,39,4B),	\
-+	V(94,4A,4A,DE),	V(98,4C,4C,D4),	V(B0,58,58,E8),	V(85,CF,CF,4A),	\
-+	V(BB,D0,D0,6B),	V(C5,EF,EF,2A),	V(4F,AA,AA,E5),	V(ED,FB,FB,16),	\
-+	V(86,43,43,C5),	V(9A,4D,4D,D7),	V(66,33,33,55),	V(11,85,85,94),	\
-+	V(8A,45,45,CF),	V(E9,F9,F9,10),	V(04,02,02,06),	V(FE,7F,7F,81),	\
-+	V(A0,50,50,F0),	V(78,3C,3C,44),	V(25,9F,9F,BA),	V(4B,A8,A8,E3),	\
-+	V(A2,51,51,F3),	V(5D,A3,A3,FE),	V(80,40,40,C0),	V(05,8F,8F,8A),	\
-+	V(3F,92,92,AD),	V(21,9D,9D,BC),	V(70,38,38,48),	V(F1,F5,F5,04),	\
-+	V(63,BC,BC,DF),	V(77,B6,B6,C1),	V(AF,DA,DA,75),	V(42,21,21,63),	\
-+	V(20,10,10,30),	V(E5,FF,FF,1A),	V(FD,F3,F3,0E),	V(BF,D2,D2,6D),	\
-+	V(81,CD,CD,4C),	V(18,0C,0C,14),	V(26,13,13,35),	V(C3,EC,EC,2F),	\
-+	V(BE,5F,5F,E1),	V(35,97,97,A2),	V(88,44,44,CC),	V(2E,17,17,39),	\
-+	V(93,C4,C4,57),	V(55,A7,A7,F2),	V(FC,7E,7E,82),	V(7A,3D,3D,47),	\
-+	V(C8,64,64,AC),	V(BA,5D,5D,E7),	V(32,19,19,2B),	V(E6,73,73,95),	\
-+	V(C0,60,60,A0),	V(19,81,81,98),	V(9E,4F,4F,D1),	V(A3,DC,DC,7F),	\
-+	V(44,22,22,66),	V(54,2A,2A,7E),	V(3B,90,90,AB),	V(0B,88,88,83),	\
-+	V(8C,46,46,CA),	V(C7,EE,EE,29),	V(6B,B8,B8,D3),	V(28,14,14,3C),	\
-+	V(A7,DE,DE,79),	V(BC,5E,5E,E2),	V(16,0B,0B,1D),	V(AD,DB,DB,76),	\
-+	V(DB,E0,E0,3B),	V(64,32,32,56),	V(74,3A,3A,4E),	V(14,0A,0A,1E),	\
-+	V(92,49,49,DB),	V(0C,06,06,0A),	V(48,24,24,6C),	V(B8,5C,5C,E4),	\
-+	V(9F,C2,C2,5D),	V(BD,D3,D3,6E),	V(43,AC,AC,EF),	V(C4,62,62,A6),	\
-+	V(39,91,91,A8),	V(31,95,95,A4),	V(D3,E4,E4,37),	V(F2,79,79,8B),	\
-+	V(D5,E7,E7,32),	V(8B,C8,C8,43),	V(6E,37,37,59),	V(DA,6D,6D,B7),	\
-+	V(01,8D,8D,8C),	V(B1,D5,D5,64),	V(9C,4E,4E,D2),	V(49,A9,A9,E0),	\
-+	V(D8,6C,6C,B4),	V(AC,56,56,FA),	V(F3,F4,F4,07),	V(CF,EA,EA,25),	\
-+	V(CA,65,65,AF),	V(F4,7A,7A,8E),	V(47,AE,AE,E9),	V(10,08,08,18),	\
-+	V(6F,BA,BA,D5),	V(F0,78,78,88),	V(4A,25,25,6F),	V(5C,2E,2E,72),	\
-+	V(38,1C,1C,24),	V(57,A6,A6,F1),	V(73,B4,B4,C7),	V(97,C6,C6,51),	\
-+	V(CB,E8,E8,23),	V(A1,DD,DD,7C),	V(E8,74,74,9C),	V(3E,1F,1F,21),	\
-+	V(96,4B,4B,DD),	V(61,BD,BD,DC),	V(0D,8B,8B,86),	V(0F,8A,8A,85),	\
-+	V(E0,70,70,90),	V(7C,3E,3E,42),	V(71,B5,B5,C4),	V(CC,66,66,AA),	\
-+	V(90,48,48,D8),	V(06,03,03,05),	V(F7,F6,F6,01),	V(1C,0E,0E,12),	\
-+	V(C2,61,61,A3),	V(6A,35,35,5F),	V(AE,57,57,F9),	V(69,B9,B9,D0),	\
-+	V(17,86,86,91),	V(99,C1,C1,58),	V(3A,1D,1D,27),	V(27,9E,9E,B9),	\
-+	V(D9,E1,E1,38),	V(EB,F8,F8,13),	V(2B,98,98,B3),	V(22,11,11,33),	\
-+	V(D2,69,69,BB),	V(A9,D9,D9,70),	V(07,8E,8E,89),	V(33,94,94,A7),	\
-+	V(2D,9B,9B,B6),	V(3C,1E,1E,22),	V(15,87,87,92),	V(C9,E9,E9,20),	\
-+	V(87,CE,CE,49),	V(AA,55,55,FF),	V(50,28,28,78),	V(A5,DF,DF,7A),	\
-+	V(03,8C,8C,8F),	V(59,A1,A1,F8),	V(09,89,89,80),	V(1A,0D,0D,17),	\
-+	V(65,BF,BF,DA),	V(D7,E6,E6,31),	V(84,42,42,C6),	V(D0,68,68,B8),	\
-+	V(82,41,41,C3),	V(29,99,99,B0),	V(5A,2D,2D,77),	V(1E,0F,0F,11),	\
-+	V(7B,B0,B0,CB),	V(A8,54,54,FC),	V(6D,BB,BB,D6),	V(2C,16,16,3A)
- 
--#define V(a,b,c,d) 0x##a##b##c##d
-+#define	V(a,b,c,d) 0x##a##b##c##d
- static uint32 FT0[256] = { FT };
-+
- #undef V
- 
--#define V(a,b,c,d) 0x##d##a##b##c
-+#define	V(a,b,c,d) 0x##d##a##b##c
- static uint32 FT1[256] = { FT };
-+
- #undef V
- 
--#define V(a,b,c,d) 0x##c##d##a##b
-+#define	V(a,b,c,d) 0x##c##d##a##b
- static uint32 FT2[256] = { FT };
-+
- #undef V
- 
--#define V(a,b,c,d) 0x##b##c##d##a
-+#define	V(a,b,c,d) 0x##b##c##d##a
- static uint32 FT3[256] = { FT };
-+
- #undef V
- 
- #undef FT
- 
- /* reverse S-box */
- 
--static uint32 RSb[256] =
--{
--    0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38,
--    0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB,
--    0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87,
--    0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB,
--    0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D,
--    0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E,
--    0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2,
--    0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25,
--    0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16,
--    0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92,
--    0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA,
--    0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84,
--    0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A,
--    0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06,
--    0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02,
--    0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B,
--    0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA,
--    0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73,
--    0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85,
--    0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E,
--    0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89,
--    0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B,
--    0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20,
--    0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4,
--    0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31,
--    0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F,
--    0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D,
--    0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF,
--    0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0,
--    0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61,
--    0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26,
--    0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D
-+static uint32 RSb[256] = {
-+	0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38,
-+	0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB,
-+	0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87,
-+	0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB,
-+	0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D,
-+	0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E,
-+	0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2,
-+	0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25,
-+	0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16,
-+	0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92,
-+	0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA,
-+	0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84,
-+	0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A,
-+	0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06,
-+	0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02,
-+	0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B,
-+	0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA,
-+	0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73,
-+	0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85,
-+	0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E,
-+	0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89,
-+	0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B,
-+	0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20,
-+	0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4,
-+	0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31,
-+	0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F,
-+	0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D,
-+	0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF,
-+	0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0,
-+	0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61,
-+	0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26,
-+	0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D
- };
- 
- /* reverse table */
- 
--#define RT \
-+#define	RT \
- \
--    V(51,F4,A7,50), V(7E,41,65,53), V(1A,17,A4,C3), V(3A,27,5E,96), \
--    V(3B,AB,6B,CB), V(1F,9D,45,F1), V(AC,FA,58,AB), V(4B,E3,03,93), \
--    V(20,30,FA,55), V(AD,76,6D,F6), V(88,CC,76,91), V(F5,02,4C,25), \
--    V(4F,E5,D7,FC), V(C5,2A,CB,D7), V(26,35,44,80), V(B5,62,A3,8F), \
--    V(DE,B1,5A,49), V(25,BA,1B,67), V(45,EA,0E,98), V(5D,FE,C0,E1), \
--    V(C3,2F,75,02), V(81,4C,F0,12), V(8D,46,97,A3), V(6B,D3,F9,C6), \
--    V(03,8F,5F,E7), V(15,92,9C,95), V(BF,6D,7A,EB), V(95,52,59,DA), \
--    V(D4,BE,83,2D), V(58,74,21,D3), V(49,E0,69,29), V(8E,C9,C8,44), \
--    V(75,C2,89,6A), V(F4,8E,79,78), V(99,58,3E,6B), V(27,B9,71,DD), \
--    V(BE,E1,4F,B6), V(F0,88,AD,17), V(C9,20,AC,66), V(7D,CE,3A,B4), \
--    V(63,DF,4A,18), V(E5,1A,31,82), V(97,51,33,60), V(62,53,7F,45), \
--    V(B1,64,77,E0), V(BB,6B,AE,84), V(FE,81,A0,1C), V(F9,08,2B,94), \
--    V(70,48,68,58), V(8F,45,FD,19), V(94,DE,6C,87), V(52,7B,F8,B7), \
--    V(AB,73,D3,23), V(72,4B,02,E2), V(E3,1F,8F,57), V(66,55,AB,2A), \
--    V(B2,EB,28,07), V(2F,B5,C2,03), V(86,C5,7B,9A), V(D3,37,08,A5), \
--    V(30,28,87,F2), V(23,BF,A5,B2), V(02,03,6A,BA), V(ED,16,82,5C), \
--    V(8A,CF,1C,2B), V(A7,79,B4,92), V(F3,07,F2,F0), V(4E,69,E2,A1), \
--    V(65,DA,F4,CD), V(06,05,BE,D5), V(D1,34,62,1F), V(C4,A6,FE,8A), \
--    V(34,2E,53,9D), V(A2,F3,55,A0), V(05,8A,E1,32), V(A4,F6,EB,75), \
--    V(0B,83,EC,39), V(40,60,EF,AA), V(5E,71,9F,06), V(BD,6E,10,51), \
--    V(3E,21,8A,F9), V(96,DD,06,3D), V(DD,3E,05,AE), V(4D,E6,BD,46), \
--    V(91,54,8D,B5), V(71,C4,5D,05), V(04,06,D4,6F), V(60,50,15,FF), \
--    V(19,98,FB,24), V(D6,BD,E9,97), V(89,40,43,CC), V(67,D9,9E,77), \
--    V(B0,E8,42,BD), V(07,89,8B,88), V(E7,19,5B,38), V(79,C8,EE,DB), \
--    V(A1,7C,0A,47), V(7C,42,0F,E9), V(F8,84,1E,C9), V(00,00,00,00), \
--    V(09,80,86,83), V(32,2B,ED,48), V(1E,11,70,AC), V(6C,5A,72,4E), \
--    V(FD,0E,FF,FB), V(0F,85,38,56), V(3D,AE,D5,1E), V(36,2D,39,27), \
--    V(0A,0F,D9,64), V(68,5C,A6,21), V(9B,5B,54,D1), V(24,36,2E,3A), \
--    V(0C,0A,67,B1), V(93,57,E7,0F), V(B4,EE,96,D2), V(1B,9B,91,9E), \
--    V(80,C0,C5,4F), V(61,DC,20,A2), V(5A,77,4B,69), V(1C,12,1A,16), \
--    V(E2,93,BA,0A), V(C0,A0,2A,E5), V(3C,22,E0,43), V(12,1B,17,1D), \
--    V(0E,09,0D,0B), V(F2,8B,C7,AD), V(2D,B6,A8,B9), V(14,1E,A9,C8), \
--    V(57,F1,19,85), V(AF,75,07,4C), V(EE,99,DD,BB), V(A3,7F,60,FD), \
--    V(F7,01,26,9F), V(5C,72,F5,BC), V(44,66,3B,C5), V(5B,FB,7E,34), \
--    V(8B,43,29,76), V(CB,23,C6,DC), V(B6,ED,FC,68), V(B8,E4,F1,63), \
--    V(D7,31,DC,CA), V(42,63,85,10), V(13,97,22,40), V(84,C6,11,20), \
--    V(85,4A,24,7D), V(D2,BB,3D,F8), V(AE,F9,32,11), V(C7,29,A1,6D), \
--    V(1D,9E,2F,4B), V(DC,B2,30,F3), V(0D,86,52,EC), V(77,C1,E3,D0), \
--    V(2B,B3,16,6C), V(A9,70,B9,99), V(11,94,48,FA), V(47,E9,64,22), \
--    V(A8,FC,8C,C4), V(A0,F0,3F,1A), V(56,7D,2C,D8), V(22,33,90,EF), \
--    V(87,49,4E,C7), V(D9,38,D1,C1), V(8C,CA,A2,FE), V(98,D4,0B,36), \
--    V(A6,F5,81,CF), V(A5,7A,DE,28), V(DA,B7,8E,26), V(3F,AD,BF,A4), \
--    V(2C,3A,9D,E4), V(50,78,92,0D), V(6A,5F,CC,9B), V(54,7E,46,62), \
--    V(F6,8D,13,C2), V(90,D8,B8,E8), V(2E,39,F7,5E), V(82,C3,AF,F5), \
--    V(9F,5D,80,BE), V(69,D0,93,7C), V(6F,D5,2D,A9), V(CF,25,12,B3), \
--    V(C8,AC,99,3B), V(10,18,7D,A7), V(E8,9C,63,6E), V(DB,3B,BB,7B), \
--    V(CD,26,78,09), V(6E,59,18,F4), V(EC,9A,B7,01), V(83,4F,9A,A8), \
--    V(E6,95,6E,65), V(AA,FF,E6,7E), V(21,BC,CF,08), V(EF,15,E8,E6), \
--    V(BA,E7,9B,D9), V(4A,6F,36,CE), V(EA,9F,09,D4), V(29,B0,7C,D6), \
--    V(31,A4,B2,AF), V(2A,3F,23,31), V(C6,A5,94,30), V(35,A2,66,C0), \
--    V(74,4E,BC,37), V(FC,82,CA,A6), V(E0,90,D0,B0), V(33,A7,D8,15), \
--    V(F1,04,98,4A), V(41,EC,DA,F7), V(7F,CD,50,0E), V(17,91,F6,2F), \
--    V(76,4D,D6,8D), V(43,EF,B0,4D), V(CC,AA,4D,54), V(E4,96,04,DF), \
--    V(9E,D1,B5,E3), V(4C,6A,88,1B), V(C1,2C,1F,B8), V(46,65,51,7F), \
--    V(9D,5E,EA,04), V(01,8C,35,5D), V(FA,87,74,73), V(FB,0B,41,2E), \
--    V(B3,67,1D,5A), V(92,DB,D2,52), V(E9,10,56,33), V(6D,D6,47,13), \
--    V(9A,D7,61,8C), V(37,A1,0C,7A), V(59,F8,14,8E), V(EB,13,3C,89), \
--    V(CE,A9,27,EE), V(B7,61,C9,35), V(E1,1C,E5,ED), V(7A,47,B1,3C), \
--    V(9C,D2,DF,59), V(55,F2,73,3F), V(18,14,CE,79), V(73,C7,37,BF), \
--    V(53,F7,CD,EA), V(5F,FD,AA,5B), V(DF,3D,6F,14), V(78,44,DB,86), \
--    V(CA,AF,F3,81), V(B9,68,C4,3E), V(38,24,34,2C), V(C2,A3,40,5F), \
--    V(16,1D,C3,72), V(BC,E2,25,0C), V(28,3C,49,8B), V(FF,0D,95,41), \
--    V(39,A8,01,71), V(08,0C,B3,DE), V(D8,B4,E4,9C), V(64,56,C1,90), \
--    V(7B,CB,84,61), V(D5,32,B6,70), V(48,6C,5C,74), V(D0,B8,57,42)
-+	V(51,F4,A7,50),	V(7E,41,65,53),	V(1A,17,A4,C3),	V(3A,27,5E,96),	\
-+	V(3B,AB,6B,CB),	V(1F,9D,45,F1),	V(AC,FA,58,AB),	V(4B,E3,03,93),	\
-+	V(20,30,FA,55),	V(AD,76,6D,F6),	V(88,CC,76,91),	V(F5,02,4C,25),	\
-+	V(4F,E5,D7,FC),	V(C5,2A,CB,D7),	V(26,35,44,80),	V(B5,62,A3,8F),	\
-+	V(DE,B1,5A,49),	V(25,BA,1B,67),	V(45,EA,0E,98),	V(5D,FE,C0,E1),	\
-+	V(C3,2F,75,02),	V(81,4C,F0,12),	V(8D,46,97,A3),	V(6B,D3,F9,C6),	\
-+	V(03,8F,5F,E7),	V(15,92,9C,95),	V(BF,6D,7A,EB),	V(95,52,59,DA),	\
-+	V(D4,BE,83,2D),	V(58,74,21,D3),	V(49,E0,69,29),	V(8E,C9,C8,44),	\
-+	V(75,C2,89,6A),	V(F4,8E,79,78),	V(99,58,3E,6B),	V(27,B9,71,DD),	\
-+	V(BE,E1,4F,B6),	V(F0,88,AD,17),	V(C9,20,AC,66),	V(7D,CE,3A,B4),	\
-+	V(63,DF,4A,18),	V(E5,1A,31,82),	V(97,51,33,60),	V(62,53,7F,45),	\
-+	V(B1,64,77,E0),	V(BB,6B,AE,84),	V(FE,81,A0,1C),	V(F9,08,2B,94),	\
-+	V(70,48,68,58),	V(8F,45,FD,19),	V(94,DE,6C,87),	V(52,7B,F8,B7),	\
-+	V(AB,73,D3,23),	V(72,4B,02,E2),	V(E3,1F,8F,57),	V(66,55,AB,2A),	\
-+	V(B2,EB,28,07),	V(2F,B5,C2,03),	V(86,C5,7B,9A),	V(D3,37,08,A5),	\
-+	V(30,28,87,F2),	V(23,BF,A5,B2),	V(02,03,6A,BA),	V(ED,16,82,5C),	\
-+	V(8A,CF,1C,2B),	V(A7,79,B4,92),	V(F3,07,F2,F0),	V(4E,69,E2,A1),	\
-+	V(65,DA,F4,CD),	V(06,05,BE,D5),	V(D1,34,62,1F),	V(C4,A6,FE,8A),	\
-+	V(34,2E,53,9D),	V(A2,F3,55,A0),	V(05,8A,E1,32),	V(A4,F6,EB,75),	\
-+	V(0B,83,EC,39),	V(40,60,EF,AA),	V(5E,71,9F,06),	V(BD,6E,10,51),	\
-+	V(3E,21,8A,F9),	V(96,DD,06,3D),	V(DD,3E,05,AE),	V(4D,E6,BD,46),	\
-+	V(91,54,8D,B5),	V(71,C4,5D,05),	V(04,06,D4,6F),	V(60,50,15,FF),	\
-+	V(19,98,FB,24),	V(D6,BD,E9,97),	V(89,40,43,CC),	V(67,D9,9E,77),	\
-+	V(B0,E8,42,BD),	V(07,89,8B,88),	V(E7,19,5B,38),	V(79,C8,EE,DB),	\
-+	V(A1,7C,0A,47),	V(7C,42,0F,E9),	V(F8,84,1E,C9),	V(00,00,00,00),	\
-+	V(09,80,86,83),	V(32,2B,ED,48),	V(1E,11,70,AC),	V(6C,5A,72,4E),	\
-+	V(FD,0E,FF,FB),	V(0F,85,38,56),	V(3D,AE,D5,1E),	V(36,2D,39,27),	\
-+	V(0A,0F,D9,64),	V(68,5C,A6,21),	V(9B,5B,54,D1),	V(24,36,2E,3A),	\
-+	V(0C,0A,67,B1),	V(93,57,E7,0F),	V(B4,EE,96,D2),	V(1B,9B,91,9E),	\
-+	V(80,C0,C5,4F),	V(61,DC,20,A2),	V(5A,77,4B,69),	V(1C,12,1A,16),	\
-+	V(E2,93,BA,0A),	V(C0,A0,2A,E5),	V(3C,22,E0,43),	V(12,1B,17,1D),	\
-+	V(0E,09,0D,0B),	V(F2,8B,C7,AD),	V(2D,B6,A8,B9),	V(14,1E,A9,C8),	\
-+	V(57,F1,19,85),	V(AF,75,07,4C),	V(EE,99,DD,BB),	V(A3,7F,60,FD),	\
-+	V(F7,01,26,9F),	V(5C,72,F5,BC),	V(44,66,3B,C5),	V(5B,FB,7E,34),	\
-+	V(8B,43,29,76),	V(CB,23,C6,DC),	V(B6,ED,FC,68),	V(B8,E4,F1,63),	\
-+	V(D7,31,DC,CA),	V(42,63,85,10),	V(13,97,22,40),	V(84,C6,11,20),	\
-+	V(85,4A,24,7D),	V(D2,BB,3D,F8),	V(AE,F9,32,11),	V(C7,29,A1,6D),	\
-+	V(1D,9E,2F,4B),	V(DC,B2,30,F3),	V(0D,86,52,EC),	V(77,C1,E3,D0),	\
-+	V(2B,B3,16,6C),	V(A9,70,B9,99),	V(11,94,48,FA),	V(47,E9,64,22),	\
-+	V(A8,FC,8C,C4),	V(A0,F0,3F,1A),	V(56,7D,2C,D8),	V(22,33,90,EF),	\
-+	V(87,49,4E,C7),	V(D9,38,D1,C1),	V(8C,CA,A2,FE),	V(98,D4,0B,36),	\
-+	V(A6,F5,81,CF),	V(A5,7A,DE,28),	V(DA,B7,8E,26),	V(3F,AD,BF,A4),	\
-+	V(2C,3A,9D,E4),	V(50,78,92,0D),	V(6A,5F,CC,9B),	V(54,7E,46,62),	\
-+	V(F6,8D,13,C2),	V(90,D8,B8,E8),	V(2E,39,F7,5E),	V(82,C3,AF,F5),	\
-+	V(9F,5D,80,BE),	V(69,D0,93,7C),	V(6F,D5,2D,A9),	V(CF,25,12,B3),	\
-+	V(C8,AC,99,3B),	V(10,18,7D,A7),	V(E8,9C,63,6E),	V(DB,3B,BB,7B),	\
-+	V(CD,26,78,09),	V(6E,59,18,F4),	V(EC,9A,B7,01),	V(83,4F,9A,A8),	\
-+	V(E6,95,6E,65),	V(AA,FF,E6,7E),	V(21,BC,CF,08),	V(EF,15,E8,E6),	\
-+	V(BA,E7,9B,D9),	V(4A,6F,36,CE),	V(EA,9F,09,D4),	V(29,B0,7C,D6),	\
-+	V(31,A4,B2,AF),	V(2A,3F,23,31),	V(C6,A5,94,30),	V(35,A2,66,C0),	\
-+	V(74,4E,BC,37),	V(FC,82,CA,A6),	V(E0,90,D0,B0),	V(33,A7,D8,15),	\
-+	V(F1,04,98,4A),	V(41,EC,DA,F7),	V(7F,CD,50,0E),	V(17,91,F6,2F),	\
-+	V(76,4D,D6,8D),	V(43,EF,B0,4D),	V(CC,AA,4D,54),	V(E4,96,04,DF),	\
-+	V(9E,D1,B5,E3),	V(4C,6A,88,1B),	V(C1,2C,1F,B8),	V(46,65,51,7F),	\
-+	V(9D,5E,EA,04),	V(01,8C,35,5D),	V(FA,87,74,73),	V(FB,0B,41,2E),	\
-+	V(B3,67,1D,5A),	V(92,DB,D2,52),	V(E9,10,56,33),	V(6D,D6,47,13),	\
-+	V(9A,D7,61,8C),	V(37,A1,0C,7A),	V(59,F8,14,8E),	V(EB,13,3C,89),	\
-+	V(CE,A9,27,EE),	V(B7,61,C9,35),	V(E1,1C,E5,ED),	V(7A,47,B1,3C),	\
-+	V(9C,D2,DF,59),	V(55,F2,73,3F),	V(18,14,CE,79),	V(73,C7,37,BF),	\
-+	V(53,F7,CD,EA),	V(5F,FD,AA,5B),	V(DF,3D,6F,14),	V(78,44,DB,86),	\
-+	V(CA,AF,F3,81),	V(B9,68,C4,3E),	V(38,24,34,2C),	V(C2,A3,40,5F),	\
-+	V(16,1D,C3,72),	V(BC,E2,25,0C),	V(28,3C,49,8B),	V(FF,0D,95,41),	\
-+	V(39,A8,01,71),	V(08,0C,B3,DE),	V(D8,B4,E4,9C),	V(64,56,C1,90),	\
-+	V(7B,CB,84,61),	V(D5,32,B6,70),	V(48,6C,5C,74),	V(D0,B8,57,42)
- 
--#define V(a,b,c,d) 0x##a##b##c##d
-+#define	V(a,b,c,d) 0x##a##b##c##d
- static uint32 RT0[256] = { RT };
-+
- #undef V
- 
--#define V(a,b,c,d) 0x##d##a##b##c
-+#define	V(a,b,c,d) 0x##d##a##b##c
- static uint32 RT1[256] = { RT };
-+
- #undef V
- 
--#define V(a,b,c,d) 0x##c##d##a##b
-+#define	V(a,b,c,d) 0x##c##d##a##b
- static uint32 RT2[256] = { RT };
-+
- #undef V
- 
--#define V(a,b,c,d) 0x##b##c##d##a
-+#define	V(a,b,c,d) 0x##b##c##d##a
- static uint32 RT3[256] = { RT };
-+
- #undef V
- 
- #undef RT
- 
- /* round constants */
- 
--static uint32 RCON[10] =
--{
--    0x01000000, 0x02000000, 0x04000000, 0x08000000,
--    0x10000000, 0x20000000, 0x40000000, 0x80000000,
--    0x1B000000, 0x36000000
-+static uint32 RCON[10] = {
-+	0x01000000, 0x02000000, 0x04000000, 0x08000000,
-+	0x10000000, 0x20000000, 0x40000000, 0x80000000,
-+	0x1B000000, 0x36000000
- };
- 
--/* key schedule tables */
-+/* key schedule	tables */
- 
- static int KT_init = 1;
- 
-@@ -750,451 +953,445 @@
- static uint32 KT2[256];
- static uint32 KT3[256];
- 
--/* platform-independant 32-bit integer manipulation macros */
-+/* platform-independant	32-bit integer manipulation	macros */
-+
-+#define	GET_UINT32(n,b,i)						\
-+{												\
-+	(n)	= (	(uint32) (b)[(i)	] << 24	)		\
-+		| (	(uint32) (b)[(i) + 1] << 16	)		\
-+		| (	(uint32) (b)[(i) + 2] <<  8	)		\
-+		| (	(uint32) (b)[(i) + 3]		);		\
-+}
- 
--#define GET_UINT32(n,b,i)                       \
--{                                               \
--    (n) = ( (uint32) (b)[(i)    ] << 24 )       \
--        | ( (uint32) (b)[(i) + 1] << 16 )       \
--        | ( (uint32) (b)[(i) + 2] <<  8 )       \
--        | ( (uint32) (b)[(i) + 3]       );      \
--}
--
--#define PUT_UINT32(n,b,i)                       \
--{                                               \
--    (b)[(i)    ] = (uint8) ( (n) >> 24 );       \
--    (b)[(i) + 1] = (uint8) ( (n) >> 16 );       \
--    (b)[(i) + 2] = (uint8) ( (n) >>  8 );       \
--    (b)[(i) + 3] = (uint8) ( (n)       );       \
-+#define	PUT_UINT32(n,b,i)						\
-+{												\
-+	(b)[(i)	   ] = (uint8) ( (n) >>	24 );		\
-+	(b)[(i)	+ 1] = (uint8) ( (n) >>	16 );		\
-+	(b)[(i)	+ 2] = (uint8) ( (n) >>	 8 );		\
-+	(b)[(i)	+ 3] = (uint8) ( (n)	   );		\
- }
- 
- /* AES key scheduling routine */
- 
--int aes_set_key( aes_context *ctx, uint8 *key, int nbits )
-+int aes_set_key(aes_context * ctx, uint8 * key, int nbits)
- {
--    int i;
--    uint32 *RK, *SK;
--
--    switch( nbits )
--    {
--        case 128: ctx->nr = 10; break;
--        case 192: ctx->nr = 12; break;
--        case 256: ctx->nr = 14; break;
--        default : return( 1 );
--    }
--
--    RK = ctx->erk;
--
--    for( i = 0; i < (nbits >> 5); i++ )
--    {
--        GET_UINT32( RK[i], key, i * 4 );
--    }
--
--    /* setup encryption round keys */
--
--    switch( nbits )
--    {
--    case 128:
--
--        for( i = 0; i < 10; i++, RK += 4 )
--        {
--            RK[4]  = RK[0] ^ RCON[i] ^
--                        ( FSb[ (uint8) ( RK[3] >> 16 ) ] << 24 ) ^
--                        ( FSb[ (uint8) ( RK[3] >>  8 ) ] << 16 ) ^
--                        ( FSb[ (uint8) ( RK[3]       ) ] <<  8 ) ^
--                        ( FSb[ (uint8) ( RK[3] >> 24 ) ]       );
--
--            RK[5]  = RK[1] ^ RK[4];
--            RK[6]  = RK[2] ^ RK[5];
--            RK[7]  = RK[3] ^ RK[6];
--        }
--        break;
--
--    case 192:
--
--        for( i = 0; i < 8; i++, RK += 6 )
--        {
--            RK[6]  = RK[0] ^ RCON[i] ^
--                        ( FSb[ (uint8) ( RK[5] >> 16 ) ] << 24 ) ^
--                        ( FSb[ (uint8) ( RK[5] >>  8 ) ] << 16 ) ^
--                        ( FSb[ (uint8) ( RK[5]       ) ] <<  8 ) ^
--                        ( FSb[ (uint8) ( RK[5] >> 24 ) ]       );
--
--            RK[7]  = RK[1] ^ RK[6];
--            RK[8]  = RK[2] ^ RK[7];
--            RK[9]  = RK[3] ^ RK[8];
--            RK[10] = RK[4] ^ RK[9];
--            RK[11] = RK[5] ^ RK[10];
--        }
--        break;
--
--    case 256:
--
--        for( i = 0; i < 7; i++, RK += 8 )
--        {
--            RK[8]  = RK[0] ^ RCON[i] ^
--                        ( FSb[ (uint8) ( RK[7] >> 16 ) ] << 24 ) ^
--                        ( FSb[ (uint8) ( RK[7] >>  8 ) ] << 16 ) ^
--                        ( FSb[ (uint8) ( RK[7]       ) ] <<  8 ) ^
--                        ( FSb[ (uint8) ( RK[7] >> 24 ) ]       );
--
--            RK[9]  = RK[1] ^ RK[8];
--            RK[10] = RK[2] ^ RK[9];
--            RK[11] = RK[3] ^ RK[10];
--
--            RK[12] = RK[4] ^
--                        ( FSb[ (uint8) ( RK[11] >> 24 ) ] << 24 ) ^
--                        ( FSb[ (uint8) ( RK[11] >> 16 ) ] << 16 ) ^
--                        ( FSb[ (uint8) ( RK[11] >>  8 ) ] <<  8 ) ^
--                        ( FSb[ (uint8) ( RK[11]       ) ]       );
--
--            RK[13] = RK[5] ^ RK[12];
--            RK[14] = RK[6] ^ RK[13];
--            RK[15] = RK[7] ^ RK[14];
--        }
--        break;
--    }
--
--    /* setup decryption round keys */
-+	int i;
-+	uint32 *RK, *SK;
- 
--    if( KT_init )
--    {
--        for( i = 0; i < 256; i++ )
--        {
--            KT0[i] = RT0[ FSb[i] ];
--            KT1[i] = RT1[ FSb[i] ];
--            KT2[i] = RT2[ FSb[i] ];
--            KT3[i] = RT3[ FSb[i] ];
--        }
-+	switch (nbits) {
-+	case 128:
-+		ctx->nr = 10;
-+		break;
-+	case 192:
-+		ctx->nr = 12;
-+		break;
-+	case 256:
-+		ctx->nr = 14;
-+		break;
-+	default:
-+		return (1);
-+	}
-+
-+	RK = ctx->erk;
-+
-+	for (i = 0; i < (nbits >> 5); i++) {
-+		GET_UINT32(RK[i], key, i * 4);
-+	}
-+
-+	/* setup encryption     round keys */
-+
-+	switch (nbits) {
-+	case 128:
-+
-+		for (i = 0; i < 10; i++, RK += 4) {
-+			RK[4] = RK[0] ^ RCON[i] ^
-+			    (FSb[(uint8) (RK[3] >> 16)] << 24) ^
-+			    (FSb[(uint8) (RK[3] >> 8)] << 16) ^
-+			    (FSb[(uint8) (RK[3])] << 8) ^
-+			    (FSb[(uint8) (RK[3] >> 24)]);
-+
-+			RK[5] = RK[1] ^ RK[4];
-+			RK[6] = RK[2] ^ RK[5];
-+			RK[7] = RK[3] ^ RK[6];
-+		}
-+		break;
-+
-+	case 192:
-+
-+		for (i = 0; i < 8; i++, RK += 6) {
-+			RK[6] = RK[0] ^ RCON[i] ^
-+			    (FSb[(uint8) (RK[5] >> 16)] << 24) ^
-+			    (FSb[(uint8) (RK[5] >> 8)] << 16) ^
-+			    (FSb[(uint8) (RK[5])] << 8) ^
-+			    (FSb[(uint8) (RK[5] >> 24)]);
-+
-+			RK[7] = RK[1] ^ RK[6];
-+			RK[8] = RK[2] ^ RK[7];
-+			RK[9] = RK[3] ^ RK[8];
-+			RK[10] = RK[4] ^ RK[9];
-+			RK[11] = RK[5] ^ RK[10];
-+		}
-+		break;
-+
-+	case 256:
-+
-+		for (i = 0; i < 7; i++, RK += 8) {
-+			RK[8] = RK[0] ^ RCON[i] ^
-+			    (FSb[(uint8) (RK[7] >> 16)] << 24) ^
-+			    (FSb[(uint8) (RK[7] >> 8)] << 16) ^
-+			    (FSb[(uint8) (RK[7])] << 8) ^
-+			    (FSb[(uint8) (RK[7] >> 24)]);
-+
-+			RK[9] = RK[1] ^ RK[8];
-+			RK[10] = RK[2] ^ RK[9];
-+			RK[11] = RK[3] ^ RK[10];
-+
-+			RK[12] = RK[4] ^
-+			    (FSb[(uint8) (RK[11] >> 24)] << 24) ^
-+			    (FSb[(uint8) (RK[11] >> 16)] << 16) ^
-+			    (FSb[(uint8) (RK[11] >> 8)] << 8) ^
-+			    (FSb[(uint8) (RK[11])]);
-+
-+			RK[13] = RK[5] ^ RK[12];
-+			RK[14] = RK[6] ^ RK[13];
-+			RK[15] = RK[7] ^ RK[14];
-+		}
-+		break;
-+	}
-+
-+	/* setup decryption     round keys */
-+
-+	if (KT_init) {
-+		for (i = 0; i < 256; i++) {
-+			KT0[i] = RT0[FSb[i]];
-+			KT1[i] = RT1[FSb[i]];
-+			KT2[i] = RT2[FSb[i]];
-+			KT3[i] = RT3[FSb[i]];
-+		}
-+
-+		KT_init = 0;
-+	}
-+
-+	SK = ctx->drk;
-+
-+	*SK++ = *RK++;
-+	*SK++ = *RK++;
-+	*SK++ = *RK++;
-+	*SK++ = *RK++;
-+
-+	for (i = 1; i < ctx->nr; i++) {
-+		RK -= 8;
-+
-+		*SK++ = KT0[(uint8) (*RK >> 24)] ^
-+		    KT1[(uint8) (*RK >> 16)] ^
-+		    KT2[(uint8) (*RK >> 8)] ^ KT3[(uint8) (*RK)];
-+		RK++;
-+
-+		*SK++ = KT0[(uint8) (*RK >> 24)] ^
-+		    KT1[(uint8) (*RK >> 16)] ^
-+		    KT2[(uint8) (*RK >> 8)] ^ KT3[(uint8) (*RK)];
-+		RK++;
-+
-+		*SK++ = KT0[(uint8) (*RK >> 24)] ^
-+		    KT1[(uint8) (*RK >> 16)] ^
-+		    KT2[(uint8) (*RK >> 8)] ^ KT3[(uint8) (*RK)];
-+		RK++;
-+
-+		*SK++ = KT0[(uint8) (*RK >> 24)] ^
-+		    KT1[(uint8) (*RK >> 16)] ^
-+		    KT2[(uint8) (*RK >> 8)] ^ KT3[(uint8) (*RK)];
-+		RK++;
-+	}
-+
-+	RK -= 8;
-+
-+	*SK++ = *RK++;
-+	*SK++ = *RK++;
-+	*SK++ = *RK++;
-+	*SK++ = *RK++;
- 
--        KT_init = 0;
--    }
--
--    SK = ctx->drk;
--
--    *SK++ = *RK++;
--    *SK++ = *RK++;
--    *SK++ = *RK++;
--    *SK++ = *RK++;
--
--    for( i = 1; i < ctx->nr; i++ )
--    {
--        RK -= 8;
--
--        *SK++ = KT0[ (uint8) ( *RK >> 24 ) ] ^
--                KT1[ (uint8) ( *RK >> 16 ) ] ^
--                KT2[ (uint8) ( *RK >>  8 ) ] ^
--                KT3[ (uint8) ( *RK       ) ]; RK++;
--
--        *SK++ = KT0[ (uint8) ( *RK >> 24 ) ] ^
--                KT1[ (uint8) ( *RK >> 16 ) ] ^
--                KT2[ (uint8) ( *RK >>  8 ) ] ^
--                KT3[ (uint8) ( *RK       ) ]; RK++;
--
--        *SK++ = KT0[ (uint8) ( *RK >> 24 ) ] ^
--                KT1[ (uint8) ( *RK >> 16 ) ] ^
--                KT2[ (uint8) ( *RK >>  8 ) ] ^
--                KT3[ (uint8) ( *RK       ) ]; RK++;
--
--        *SK++ = KT0[ (uint8) ( *RK >> 24 ) ] ^
--                KT1[ (uint8) ( *RK >> 16 ) ] ^
--                KT2[ (uint8) ( *RK >>  8 ) ] ^
--                KT3[ (uint8) ( *RK       ) ]; RK++;
--    }
--
--    RK -= 8;
--
--    *SK++ = *RK++;
--    *SK++ = *RK++;
--    *SK++ = *RK++;
--    *SK++ = *RK++;
--
--    return( 0 );
-+	return (0);
- }
- 
--/* AES 128-bit block encryption routine */
-+/* AES 128-bit block encryption	routine	*/
- 
--void aes_encrypt(aes_context *ctx, uint8 input[16], uint8 output[16] )
-+void aes_encrypt(aes_context * ctx, uint8 input[16], uint8 output[16])
- {
--    uint32 *RK, X0, X1, X2, X3, Y0, Y1, Y2, Y3;
-+	uint32 *RK, X0, X1, X2, X3, Y0, Y1, Y2, Y3;
- 
--    RK = ctx->erk;
--    GET_UINT32( X0, input,  0 ); X0 ^= RK[0];
--    GET_UINT32( X1, input,  4 ); X1 ^= RK[1];
--    GET_UINT32( X2, input,  8 ); X2 ^= RK[2];
--    GET_UINT32( X3, input, 12 ); X3 ^= RK[3];
--
--#define AES_FROUND(X0,X1,X2,X3,Y0,Y1,Y2,Y3)     \
--{                                               \
--    RK += 4;                                    \
--                                                \
--    X0 = RK[0] ^ FT0[ (uint8) ( Y0 >> 24 ) ] ^  \
--                 FT1[ (uint8) ( Y1 >> 16 ) ] ^  \
--                 FT2[ (uint8) ( Y2 >>  8 ) ] ^  \
--                 FT3[ (uint8) ( Y3       ) ];   \
--                                                \
--    X1 = RK[1] ^ FT0[ (uint8) ( Y1 >> 24 ) ] ^  \
--                 FT1[ (uint8) ( Y2 >> 16 ) ] ^  \
--                 FT2[ (uint8) ( Y3 >>  8 ) ] ^  \
--                 FT3[ (uint8) ( Y0       ) ];   \
--                                                \
--    X2 = RK[2] ^ FT0[ (uint8) ( Y2 >> 24 ) ] ^  \
--                 FT1[ (uint8) ( Y3 >> 16 ) ] ^  \
--                 FT2[ (uint8) ( Y0 >>  8 ) ] ^  \
--                 FT3[ (uint8) ( Y1       ) ];   \
--                                                \
--    X3 = RK[3] ^ FT0[ (uint8) ( Y3 >> 24 ) ] ^  \
--                 FT1[ (uint8) ( Y0 >> 16 ) ] ^  \
--                 FT2[ (uint8) ( Y1 >>  8 ) ] ^  \
--                 FT3[ (uint8) ( Y2       ) ];   \
--}
--
--    AES_FROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );       /* round 1 */
--    AES_FROUND( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );       /* round 2 */
--    AES_FROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );       /* round 3 */
--    AES_FROUND( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );       /* round 4 */
--    AES_FROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );       /* round 5 */
--    AES_FROUND( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );       /* round 6 */
--    AES_FROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );       /* round 7 */
--    AES_FROUND( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );       /* round 8 */
--    AES_FROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );       /* round 9 */
--
--    if( ctx->nr > 10 )
--    {
--        AES_FROUND( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );   /* round 10 */
--        AES_FROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );   /* round 11 */
--    }
--
--    if( ctx->nr > 12 )
--    {
--        AES_FROUND( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );   /* round 12 */
--        AES_FROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );   /* round 13 */
--    }
--
--    /* last round */
--
--    RK += 4;
-+	RK = ctx->erk;
-+	GET_UINT32(X0, input, 0);
-+	X0 ^= RK[0];
-+	GET_UINT32(X1, input, 4);
-+	X1 ^= RK[1];
-+	GET_UINT32(X2, input, 8);
-+	X2 ^= RK[2];
-+	GET_UINT32(X3, input, 12);
-+	X3 ^= RK[3];
-+
-+#define	AES_FROUND(X0,X1,X2,X3,Y0,Y1,Y2,Y3)		\
-+{												\
-+	RK += 4;									\
-+												\
-+	X0 = RK[0] ^ FT0[ (uint8) (	Y0 >> 24 ) ] ^	\
-+				 FT1[ (uint8) (	Y1 >> 16 ) ] ^	\
-+				 FT2[ (uint8) (	Y2 >>  8 ) ] ^	\
-+				 FT3[ (uint8) (	Y3		 ) ];	\
-+												\
-+	X1 = RK[1] ^ FT0[ (uint8) (	Y1 >> 24 ) ] ^	\
-+				 FT1[ (uint8) (	Y2 >> 16 ) ] ^	\
-+				 FT2[ (uint8) (	Y3 >>  8 ) ] ^	\
-+				 FT3[ (uint8) (	Y0		 ) ];	\
-+												\
-+	X2 = RK[2] ^ FT0[ (uint8) (	Y2 >> 24 ) ] ^	\
-+				 FT1[ (uint8) (	Y3 >> 16 ) ] ^	\
-+				 FT2[ (uint8) (	Y0 >>  8 ) ] ^	\
-+				 FT3[ (uint8) (	Y1		 ) ];	\
-+												\
-+	X3 = RK[3] ^ FT0[ (uint8) (	Y3 >> 24 ) ] ^	\
-+				 FT1[ (uint8) (	Y0 >> 16 ) ] ^	\
-+				 FT2[ (uint8) (	Y1 >>  8 ) ] ^	\
-+				 FT3[ (uint8) (	Y2		 ) ];	\
-+}
- 
--    X0 = RK[0] ^ ( FSb[ (uint8) ( Y0 >> 24 ) ] << 24 ) ^
--                 ( FSb[ (uint8) ( Y1 >> 16 ) ] << 16 ) ^
--                 ( FSb[ (uint8) ( Y2 >>  8 ) ] <<  8 ) ^
--                 ( FSb[ (uint8) ( Y3       ) ]       );
-+	AES_FROUND(Y0, Y1, Y2, Y3, X0, X1, X2, X3);	/* round 1 */
-+	AES_FROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3);	/* round 2 */
-+	AES_FROUND(Y0, Y1, Y2, Y3, X0, X1, X2, X3);	/* round 3 */
-+	AES_FROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3);	/* round 4 */
-+	AES_FROUND(Y0, Y1, Y2, Y3, X0, X1, X2, X3);	/* round 5 */
-+	AES_FROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3);	/* round 6 */
-+	AES_FROUND(Y0, Y1, Y2, Y3, X0, X1, X2, X3);	/* round 7 */
-+	AES_FROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3);	/* round 8 */
-+	AES_FROUND(Y0, Y1, Y2, Y3, X0, X1, X2, X3);	/* round 9 */
-+
-+	if (ctx->nr > 10) {
-+		AES_FROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3);	/* round 10     */
-+		AES_FROUND(Y0, Y1, Y2, Y3, X0, X1, X2, X3);	/* round 11     */
-+	}
-+
-+	if (ctx->nr > 12) {
-+		AES_FROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3);	/* round 12     */
-+		AES_FROUND(Y0, Y1, Y2, Y3, X0, X1, X2, X3);	/* round 13     */
-+	}
-+
-+	/* last round */
-+
-+	RK += 4;
-+
-+	X0 = RK[0] ^ (FSb[(uint8) (Y0 >> 24)] << 24) ^
-+	    (FSb[(uint8) (Y1 >> 16)] << 16) ^
-+	    (FSb[(uint8) (Y2 >> 8)] << 8) ^ (FSb[(uint8) (Y3)]);
-+
-+	X1 = RK[1] ^ (FSb[(uint8) (Y1 >> 24)] << 24) ^
-+	    (FSb[(uint8) (Y2 >> 16)] << 16) ^
-+	    (FSb[(uint8) (Y3 >> 8)] << 8) ^ (FSb[(uint8) (Y0)]);
-+
-+	X2 = RK[2] ^ (FSb[(uint8) (Y2 >> 24)] << 24) ^
-+	    (FSb[(uint8) (Y3 >> 16)] << 16) ^
-+	    (FSb[(uint8) (Y0 >> 8)] << 8) ^ (FSb[(uint8) (Y1)]);
-+
-+	X3 = RK[3] ^ (FSb[(uint8) (Y3 >> 24)] << 24) ^
-+	    (FSb[(uint8) (Y0 >> 16)] << 16) ^
-+	    (FSb[(uint8) (Y1 >> 8)] << 8) ^ (FSb[(uint8) (Y2)]);
-+
-+	PUT_UINT32(X0, output, 0);
-+	PUT_UINT32(X1, output, 4);
-+	PUT_UINT32(X2, output, 8);
-+	PUT_UINT32(X3, output, 12);
-+}
- 
--    X1 = RK[1] ^ ( FSb[ (uint8) ( Y1 >> 24 ) ] << 24 ) ^
--                 ( FSb[ (uint8) ( Y2 >> 16 ) ] << 16 ) ^
--                 ( FSb[ (uint8) ( Y3 >>  8 ) ] <<  8 ) ^
--                 ( FSb[ (uint8) ( Y0       ) ]       );
-+/* AES 128-bit block decryption	routine	*/
- 
--    X2 = RK[2] ^ ( FSb[ (uint8) ( Y2 >> 24 ) ] << 24 ) ^
--                 ( FSb[ (uint8) ( Y3 >> 16 ) ] << 16 ) ^
--                 ( FSb[ (uint8) ( Y0 >>  8 ) ] <<  8 ) ^
--                 ( FSb[ (uint8) ( Y1       ) ]       );
-+void aes_decrypt(aes_context * ctx, uint8 input[16], uint8 output[16])
-+{
-+	uint32 *RK, X0, X1, X2, X3, Y0, Y1, Y2, Y3;
- 
--    X3 = RK[3] ^ ( FSb[ (uint8) ( Y3 >> 24 ) ] << 24 ) ^
--                 ( FSb[ (uint8) ( Y0 >> 16 ) ] << 16 ) ^
--                 ( FSb[ (uint8) ( Y1 >>  8 ) ] <<  8 ) ^
--                 ( FSb[ (uint8) ( Y2       ) ]       );
-+	RK = ctx->drk;
- 
--    PUT_UINT32( X0, output,  0 );
--    PUT_UINT32( X1, output,  4 );
--    PUT_UINT32( X2, output,  8 );
--    PUT_UINT32( X3, output, 12 );
-+	GET_UINT32(X0, input, 0);
-+	X0 ^= RK[0];
-+	GET_UINT32(X1, input, 4);
-+	X1 ^= RK[1];
-+	GET_UINT32(X2, input, 8);
-+	X2 ^= RK[2];
-+	GET_UINT32(X3, input, 12);
-+	X3 ^= RK[3];
-+
-+#define	AES_RROUND(X0,X1,X2,X3,Y0,Y1,Y2,Y3)		\
-+{												\
-+	RK += 4;									\
-+												\
-+	X0 = RK[0] ^ RT0[ (uint8) (	Y0 >> 24 ) ] ^	\
-+				 RT1[ (uint8) (	Y3 >> 16 ) ] ^	\
-+				 RT2[ (uint8) (	Y2 >>  8 ) ] ^	\
-+				 RT3[ (uint8) (	Y1		 ) ];	\
-+												\
-+	X1 = RK[1] ^ RT0[ (uint8) (	Y1 >> 24 ) ] ^	\
-+				 RT1[ (uint8) (	Y0 >> 16 ) ] ^	\
-+				 RT2[ (uint8) (	Y3 >>  8 ) ] ^	\
-+				 RT3[ (uint8) (	Y2		 ) ];	\
-+												\
-+	X2 = RK[2] ^ RT0[ (uint8) (	Y2 >> 24 ) ] ^	\
-+				 RT1[ (uint8) (	Y1 >> 16 ) ] ^	\
-+				 RT2[ (uint8) (	Y0 >>  8 ) ] ^	\
-+				 RT3[ (uint8) (	Y3		 ) ];	\
-+												\
-+	X3 = RK[3] ^ RT0[ (uint8) (	Y3 >> 24 ) ] ^	\
-+				 RT1[ (uint8) (	Y2 >> 16 ) ] ^	\
-+				 RT2[ (uint8) (	Y1 >>  8 ) ] ^	\
-+				 RT3[ (uint8) (	Y0		 ) ];	\
- }
- 
--/* AES 128-bit block decryption routine */
-+	AES_RROUND(Y0, Y1, Y2, Y3, X0, X1, X2, X3);	/* round 1 */
-+	AES_RROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3);	/* round 2 */
-+	AES_RROUND(Y0, Y1, Y2, Y3, X0, X1, X2, X3);	/* round 3 */
-+	AES_RROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3);	/* round 4 */
-+	AES_RROUND(Y0, Y1, Y2, Y3, X0, X1, X2, X3);	/* round 5 */
-+	AES_RROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3);	/* round 6 */
-+	AES_RROUND(Y0, Y1, Y2, Y3, X0, X1, X2, X3);	/* round 7 */
-+	AES_RROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3);	/* round 8 */
-+	AES_RROUND(Y0, Y1, Y2, Y3, X0, X1, X2, X3);	/* round 9 */
-+
-+	if (ctx->nr > 10) {
-+		AES_RROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3);	/* round 10     */
-+		AES_RROUND(Y0, Y1, Y2, Y3, X0, X1, X2, X3);	/* round 11     */
-+	}
-+
-+	if (ctx->nr > 12) {
-+		AES_RROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3);	/* round 12     */
-+		AES_RROUND(Y0, Y1, Y2, Y3, X0, X1, X2, X3);	/* round 13     */
-+	}
-+
-+	/* last round */
-+
-+	RK += 4;
-+
-+	X0 = RK[0] ^ (RSb[(uint8) (Y0 >> 24)] << 24) ^
-+	    (RSb[(uint8) (Y3 >> 16)] << 16) ^
-+	    (RSb[(uint8) (Y2 >> 8)] << 8) ^ (RSb[(uint8) (Y1)]);
-+
-+	X1 = RK[1] ^ (RSb[(uint8) (Y1 >> 24)] << 24) ^
-+	    (RSb[(uint8) (Y0 >> 16)] << 16) ^
-+	    (RSb[(uint8) (Y3 >> 8)] << 8) ^ (RSb[(uint8) (Y2)]);
-+
-+	X2 = RK[2] ^ (RSb[(uint8) (Y2 >> 24)] << 24) ^
-+	    (RSb[(uint8) (Y1 >> 16)] << 16) ^
-+	    (RSb[(uint8) (Y0 >> 8)] << 8) ^ (RSb[(uint8) (Y3)]);
-+
-+	X3 = RK[3] ^ (RSb[(uint8) (Y3 >> 24)] << 24) ^
-+	    (RSb[(uint8) (Y2 >> 16)] << 16) ^
-+	    (RSb[(uint8) (Y1 >> 8)] << 8) ^ (RSb[(uint8) (Y0)]);
-+
-+	PUT_UINT32(X0, output, 0);
-+	PUT_UINT32(X1, output, 4);
-+	PUT_UINT32(X2, output, 8);
-+	PUT_UINT32(X3, output, 12);
-+}
- 
--void aes_decrypt( aes_context *ctx, uint8 input[16], uint8 output[16] )
-+void hmac_sha1(unsigned char *text, int text_len, unsigned char *key,
-+	       int key_len, unsigned char *digest)
- {
--    uint32 *RK, X0, X1, X2, X3, Y0, Y1, Y2, Y3;
--
--    RK = ctx->drk;
--
--    GET_UINT32( X0, input,  0 ); X0 ^= RK[0];
--    GET_UINT32( X1, input,  4 ); X1 ^= RK[1];
--    GET_UINT32( X2, input,  8 ); X2 ^= RK[2];
--    GET_UINT32( X3, input, 12 ); X3 ^= RK[3];
--
--#define AES_RROUND(X0,X1,X2,X3,Y0,Y1,Y2,Y3)     \
--{                                               \
--    RK += 4;                                    \
--                                                \
--    X0 = RK[0] ^ RT0[ (uint8) ( Y0 >> 24 ) ] ^  \
--                 RT1[ (uint8) ( Y3 >> 16 ) ] ^  \
--                 RT2[ (uint8) ( Y2 >>  8 ) ] ^  \
--                 RT3[ (uint8) ( Y1       ) ];   \
--                                                \
--    X1 = RK[1] ^ RT0[ (uint8) ( Y1 >> 24 ) ] ^  \
--                 RT1[ (uint8) ( Y0 >> 16 ) ] ^  \
--                 RT2[ (uint8) ( Y3 >>  8 ) ] ^  \
--                 RT3[ (uint8) ( Y2       ) ];   \
--                                                \
--    X2 = RK[2] ^ RT0[ (uint8) ( Y2 >> 24 ) ] ^  \
--                 RT1[ (uint8) ( Y1 >> 16 ) ] ^  \
--                 RT2[ (uint8) ( Y0 >>  8 ) ] ^  \
--                 RT3[ (uint8) ( Y3       ) ];   \
--                                                \
--    X3 = RK[3] ^ RT0[ (uint8) ( Y3 >> 24 ) ] ^  \
--                 RT1[ (uint8) ( Y2 >> 16 ) ] ^  \
--                 RT2[ (uint8) ( Y1 >>  8 ) ] ^  \
--                 RT3[ (uint8) ( Y0       ) ];   \
--}
--
--    AES_RROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );       /* round 1 */
--    AES_RROUND( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );       /* round 2 */
--    AES_RROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );       /* round 3 */
--    AES_RROUND( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );       /* round 4 */
--    AES_RROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );       /* round 5 */
--    AES_RROUND( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );       /* round 6 */
--    AES_RROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );       /* round 7 */
--    AES_RROUND( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );       /* round 8 */
--    AES_RROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );       /* round 9 */
--
--    if( ctx->nr > 10 )
--    {
--        AES_RROUND( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );   /* round 10 */
--        AES_RROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );   /* round 11 */
--    }
--
--    if( ctx->nr > 12 )
--    {
--        AES_RROUND( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );   /* round 12 */
--        AES_RROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );   /* round 13 */
--    }
-+	SHA_CTX context;
-+	unsigned char k_ipad[65];	/* inner padding - key XORd with ipad */
-+	unsigned char k_opad[65];	/* outer padding - key XORd with opad */
-+	int i;
-+
-+	/* if key is longer than 64 bytes reset it to key=SHA1(key) */
-+	if (key_len > 64) {
-+		SHA_CTX tctx;
-+
-+		SHAInit(&tctx);
-+		SHAUpdate(&tctx, key, key_len);
-+		SHAFinal(&tctx, key);
-+
-+		key_len = 20;
-+	}
-+
-+	/*
-+	 * the HMAC_SHA1 transform looks like:
-+	 *
-+	 * SHA1(K XOR opad, SHA1(K XOR ipad, text))
-+	 *
-+	 * where K is an n byte key
-+	 * ipad is the byte 0x36 repeated 64 times
-+	 * opad is the byte 0x5c repeated 64 times
-+	 * and text is the data being protected
-+	 */
-+
-+	/* start out by storing key in pads */
-+	memset(k_ipad, 0, sizeof k_ipad);
-+	memset(k_opad, 0, sizeof k_opad);
-+	memcpy(k_ipad, key, key_len);
-+	memcpy(k_opad, key, key_len);
-+
-+	/* XOR key with ipad and opad values */
-+	for (i = 0; i < 64; i++) {
-+		k_ipad[i] ^= 0x36;
-+		k_opad[i] ^= 0x5c;
-+	}
-+
-+	/* perform inner SHA1 */
-+	SHAInit(&context);	/* init context for 1st pass */
-+	SHAUpdate(&context, k_ipad, 64);	/* start with inner pad */
-+	SHAUpdate(&context, text, text_len);	/* then text of datagram */
-+	SHAFinal(&context, digest);	/* finish up 1st pass */
-+
-+	/* perform outer SHA1 */
-+	SHAInit(&context);	/* init context for 2nd pass */
-+	SHAUpdate(&context, k_opad, 64);	/* start with outer pad */
-+	SHAUpdate(&context, digest, 20);	/* then results of 1st hash */
-+	SHAFinal(&context, digest);	/* finish up 2nd pass */
-+}
- 
--    /* last round */
-+/*
-+* F(P, S, c, i) = U1 xor U2 xor ... Uc
-+* U1 = PRF(P, S || Int(i))
-+* U2 = PRF(P, U1)
-+* Uc = PRF(P, Uc-1)
-+*/
- 
--    RK += 4;
-+void F(char *password, unsigned char *ssid, int ssidlength, int iterations,
-+       int count, unsigned char *output)
-+{
-+	unsigned char digest[36], digest1[SHA_DIGEST_LEN];
-+	int i, j;
- 
--    X0 = RK[0] ^ ( RSb[ (uint8) ( Y0 >> 24 ) ] << 24 ) ^
--                 ( RSb[ (uint8) ( Y3 >> 16 ) ] << 16 ) ^
--                 ( RSb[ (uint8) ( Y2 >>  8 ) ] <<  8 ) ^
--                 ( RSb[ (uint8) ( Y1       ) ]       );
--
--    X1 = RK[1] ^ ( RSb[ (uint8) ( Y1 >> 24 ) ] << 24 ) ^
--                 ( RSb[ (uint8) ( Y0 >> 16 ) ] << 16 ) ^
--                 ( RSb[ (uint8) ( Y3 >>  8 ) ] <<  8 ) ^
--                 ( RSb[ (uint8) ( Y2       ) ]       );
--
--    X2 = RK[2] ^ ( RSb[ (uint8) ( Y2 >> 24 ) ] << 24 ) ^
--                 ( RSb[ (uint8) ( Y1 >> 16 ) ] << 16 ) ^
--                 ( RSb[ (uint8) ( Y0 >>  8 ) ] <<  8 ) ^
--                 ( RSb[ (uint8) ( Y3       ) ]       );
--
--    X3 = RK[3] ^ ( RSb[ (uint8) ( Y3 >> 24 ) ] << 24 ) ^
--                 ( RSb[ (uint8) ( Y2 >> 16 ) ] << 16 ) ^
--                 ( RSb[ (uint8) ( Y1 >>  8 ) ] <<  8 ) ^
--                 ( RSb[ (uint8) ( Y0       ) ]       );
--
--    PUT_UINT32( X0, output,  0 );
--    PUT_UINT32( X1, output,  4 );
--    PUT_UINT32( X2, output,  8 );
--    PUT_UINT32( X3, output, 12 );
--}
--
--void hmac_sha1(unsigned char *text, int text_len, unsigned char *key, int key_len, unsigned char *digest) 
--{ 
--    SHA_CTX context; 
--    unsigned char k_ipad[65]; /* inner padding - key XORd with ipad */ 
--    unsigned char k_opad[65]; /* outer padding - key XORd with opad */ 
--    int i; 
--
--    /* if key is longer than 64 bytes reset it to key=SHA1(key) */ 
--    if (key_len > 64) 
--    { 
--        SHA_CTX tctx; 
--
--        SHAInit(&tctx); 
--        SHAUpdate(&tctx, key, key_len); 
--        SHAFinal(&tctx, key); 
--
--        key_len = 20; 
--    } 
--
--    /* 
--    * the HMAC_SHA1 transform looks like: 
--    * 
--    * SHA1(K XOR opad, SHA1(K XOR ipad, text)) 
--    * 
--    * where K is an n byte key 
--    * ipad is the byte 0x36 repeated 64 times 
--    * opad is the byte 0x5c repeated 64 times 
--    * and text is the data being protected 
--    */ 
--
--    /* start out by storing key in pads */ 
--    memset(k_ipad, 0, sizeof k_ipad); 
--    memset(k_opad, 0, sizeof k_opad); 
--    memcpy(k_ipad, key, key_len); 
--    memcpy(k_opad, key, key_len); 
--
--    /* XOR key with ipad and opad values */ 
--    for (i = 0; i < 64; i++) 
--    { 
--        k_ipad[i] ^= 0x36; 
--        k_opad[i] ^= 0x5c; 
--    } 
--
--    /* perform inner SHA1*/ 
--    SHAInit(&context); /* init context for 1st pass */ 
--    SHAUpdate(&context, k_ipad, 64); /* start with inner pad */ 
--    SHAUpdate(&context, text, text_len); /* then text of datagram */ 
--    SHAFinal(&context, digest); /* finish up 1st pass */ 
--
--    /* perform outer SHA1 */ 
--    SHAInit(&context); /* init context for 2nd pass */ 
--    SHAUpdate(&context, k_opad, 64); /* start with outer pad */ 
--    SHAUpdate(&context, digest, 20); /* then results of 1st hash */ 
--    SHAFinal(&context, digest); /* finish up 2nd pass */ 
--} 
-+	/* U1 = PRF(P, S || int(i)) */
-+	memcpy(digest, ssid, ssidlength);
-+	digest[ssidlength] = (unsigned char)((count >> 24) & 0xff);
-+	digest[ssidlength + 1] = (unsigned char)((count >> 16) & 0xff);
-+	digest[ssidlength + 2] = (unsigned char)((count >> 8) & 0xff);
-+	digest[ssidlength + 3] = (unsigned char)(count & 0xff);
-+	hmac_sha1(digest, ssidlength + 4, (unsigned char *)password, (int)strlen(password), digest1);	// for WPA update
-+
-+	/* output = U1 */
-+	memcpy(output, digest1, SHA_DIGEST_LEN);
-+
-+	for (i = 1; i < iterations; i++) {
-+		/* Un = PRF(P, Un-1) */
-+		hmac_sha1(digest1, SHA_DIGEST_LEN, (unsigned char *)password, (int)strlen(password), digest);	// for WPA update
-+		memcpy(digest1, digest, SHA_DIGEST_LEN);
-+
-+		/* output = output xor Un */
-+		for (j = 0; j < SHA_DIGEST_LEN; j++) {
-+			output[j] ^= digest[j];
-+		}
-+	}
-+}
- 
- /*
--* F(P, S, c, i) = U1 xor U2 xor ... Uc 
--* U1 = PRF(P, S || Int(i)) 
--* U2 = PRF(P, U1) 
--* Uc = PRF(P, Uc-1) 
--*/ 
--
--void F(char *password, unsigned char *ssid, int ssidlength, int iterations, int count, unsigned char *output) 
--{ 
--    unsigned char digest[36], digest1[SHA_DIGEST_LEN]; 
--    int i, j; 
--
--    /* U1 = PRF(P, S || int(i)) */ 
--    memcpy(digest, ssid, ssidlength); 
--    digest[ssidlength] = (unsigned char)((count>>24) & 0xff); 
--    digest[ssidlength+1] = (unsigned char)((count>>16) & 0xff); 
--    digest[ssidlength+2] = (unsigned char)((count>>8) & 0xff); 
--    digest[ssidlength+3] = (unsigned char)(count & 0xff); 
--    hmac_sha1(digest, ssidlength+4, (unsigned char*) password, (int) strlen(password), digest1); // for WPA update
--
--    /* output = U1 */ 
--    memcpy(output, digest1, SHA_DIGEST_LEN); 
--
--    for (i = 1; i < iterations; i++) 
--    { 
--        /* Un = PRF(P, Un-1) */ 
--        hmac_sha1(digest1, SHA_DIGEST_LEN, (unsigned char*) password, (int) strlen(password), digest); // for WPA update
--        memcpy(digest1, digest, SHA_DIGEST_LEN); 
--
--        /* output = output xor Un */ 
--        for (j = 0; j < SHA_DIGEST_LEN; j++) 
--        { 
--            output[j] ^= digest[j]; 
--        } 
--    } 
--} 
--/* 
--* password - ascii string up to 63 characters in length 
--* ssid - octet string up to 32 octets 
--* ssidlength - length of ssid in octets 
--* output must be 40 octets in length and outputs 256 bits of key 
--*/ 
--int PasswordHash(char *password, unsigned char *ssid, int ssidlength, unsigned char *output) 
--{ 
--    if ((strlen(password) > 63) || (ssidlength > 32)) 
--        return 0; 
--
--    F(password, ssid, ssidlength, 4096, 1, output); 
--    F(password, ssid, ssidlength, 4096, 2, &output[SHA_DIGEST_LEN]); 
--    return 1; 
-+* password - ascii string up to 63 characters in length
-+* ssid - octet string up to 32 octets
-+* ssidlength - length of ssid in octets
-+* output must be 40 octets in length and outputs 256 bits of key
-+*/
-+int PasswordHash(char *password, unsigned char *ssid, int ssidlength,
-+		 unsigned char *output)
-+{
-+	if ((strlen(password) > 63) || (ssidlength > 32))
-+		return 0;
-+
-+	F(password, ssid, ssidlength, 4096, 1, output);
-+	F(password, ssid, ssidlength, 4096, 2, &output[SHA_DIGEST_LEN]);
-+	return 1;
- }
-diff -Nur rt2500-1.1.0-b4/Module/md5.h rt2500-cvs-2007061011/Module/md5.h
---- rt2500-1.1.0-b4/Module/md5.h	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/md5.h	2007-05-29 05:49:17.000000000 +0200
-@@ -1,94 +1,96 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-  *   This MD5 code is based on code from Dynamics -- HUT Mobile IP         *
-  *   Copyright (C) 1998-2001, Dynamics group                               *
-- ***************************************************************************/ 
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: md5.h
-- *              
-+ *
-  *      Abstract: contain MD5 and AES cipher algorithm
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      MarkW           8th  Dec 04     Baseline code  
-- ***************************************************************************/ 
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      MarkW           8th  Dec 04     Baseline code
-+ ***************************************************************************/
- 
--#ifndef MD5_H
--#define MD5_H
-+#ifndef	__MD5_H__
-+#define	__MD5_H__
- 
- #define MD5_MAC_LEN 16
- #define SHA_DIGEST_LEN 20
- 
--struct MD5Context {
--    u32 buf[4];
--    u32 bits[2];
--    u8 in[64];
--};
-+typedef struct _MD5_CTX {
-+	ULONG Buf[4];		// buffers of four states
-+	UCHAR Input[64];	// input message
-+	ULONG LenInBitCount[2];	// length counter for input message, 0 up to 64 bits
-+} MD5_CTX;
-+
-+VOID MD5Init(MD5_CTX * pCtx);
-+VOID MD5Update(MD5_CTX * pCtx, UCHAR * pData, ULONG LenInBytes);
-+VOID MD5Final(UCHAR Digest[16], MD5_CTX * pCtx);
-+VOID MD5Transform(ULONG Buf[4], ULONG Mes[16]);
-+
-+void md5_mac(UCHAR * key, ULONG key_len, UCHAR * data, ULONG data_len,
-+	     UCHAR * mac);
-+void hmac_md5(UCHAR * key, ULONG key_len, UCHAR * data, ULONG data_len,
-+	      UCHAR * mac);
-+
-+#endif				// __MD5_H__
-+
-+/******************************************************************************/
-+
-+VOID SHAInit(SHA_CTX * pCtx);
-+UCHAR SHAUpdate(SHA_CTX * pCtx, UCHAR * pData, ULONG LenInBytes);
-+VOID SHAFinal(SHA_CTX * pCtx, UCHAR Digest[20]);
-+VOID SHATransform(ULONG Buf[5], ULONG Mes[20]);
-+
-+void hmac_sha1(unsigned char *text, int text_len, unsigned char *key,
-+	       int key_len, unsigned char *digest);
-+void F(char *password, unsigned char *ssid, int ssidlength, int iterations,
-+       int count, unsigned char *output);
-+int PasswordHash(char *password, unsigned char *ssid, int ssidlength,
-+		 unsigned char *output);
-+
-+/******************************************************************************/
-+#ifndef	_AES_H
-+#define	_AES_H
- 
--void MD5Init(struct MD5Context *context);
--void MD5Update(struct MD5Context *context, unsigned char *buf, unsigned len);
--void MD5Final(unsigned char digest[16], struct MD5Context *context);
--void MD5Transform(u32 buf[4], u32 in[16]);
--
--typedef struct MD5Context MD5_CTX;
--
--
--void md5_mac(u8 *key, size_t key_len, u8 *data, size_t data_len, u8 *mac);
--void hmac_md5(u8 *key,  size_t key_len, u8 *data, size_t data_len, u8 *mac);
--
--#endif /* MD5_H */
--
--#ifndef _AES_H
--#define _AES_H
--
--#ifndef uint8
--#define uint8  unsigned char
-+#ifndef	uint8
-+#define	uint8  unsigned	char
- #endif
- 
--#ifndef uint32
--#define uint32 unsigned long int
-+#ifndef	uint32
-+#define	uint32 unsigned	long int
- #endif
- 
--typedef struct
--{
--    uint32 erk[64];     /* encryption round keys */
--    uint32 drk[64];     /* decryption round keys */
--    int nr;             /* number of rounds */
--}
--aes_context;
--
--int  aes_set_key( aes_context *ctx, uint8 *key, int nbits );
--void aes_encrypt( aes_context *ctx, uint8 input[16], uint8 output[16] );
--void aes_decrypt( aes_context *ctx, uint8 input[16], uint8 output[16] );
--
--
--void SHAInit(SHA_CTX *ctx);
--void SHAUpdate(SHA_CTX *ctx, unsigned char *dataIn, int len);
--void SHAFinal(SHA_CTX *ctx, unsigned char hashout[20]);
--void SHAHashBlock(SHA_CTX *ctx);
--void hmac_sha1(unsigned char *text, int text_len, unsigned char *key, int key_len, unsigned char *digest);
--void F(char *password, unsigned char *ssid, int ssidlength, int iterations, int count, unsigned char *output);
--int PasswordHash(char *password, unsigned char *ssid, int ssidlength, unsigned char *output);
--
--#endif /* aes.h */
-+typedef struct {
-+	uint32 erk[64];		/* encryption round     keys */
-+	uint32 drk[64];		/* decryption round     keys */
-+	int nr;			/* number of rounds     */
-+} aes_context;
-+
-+int aes_set_key(aes_context * ctx, uint8 * key, int nbits);
-+void aes_encrypt(aes_context * ctx, uint8 input[16], uint8 output[16]);
-+void aes_decrypt(aes_context * ctx, uint8 input[16], uint8 output[16]);
- 
-+#endif				/* aes.h */
-diff -Nur rt2500-1.1.0-b4/Module/mlme.c rt2500-cvs-2007061011/Module/mlme.c
---- rt2500-1.1.0-b4/Module/mlme.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/mlme.c	2007-05-15 21:41:34.000000000 +0200
-@@ -1,54 +1,54 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: mlme.c
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      MarkW           8th  Dec 04     Baseline code  
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      MarkW           8th  Dec 04     Baseline code
-  *      MarkW           8th  Dec 04     kmalloc ATOMIC fixes
-- *      RobinC          10th Dec 04     RFMON Support 
-- *      MarkW           10th Dec 04     Rolled in Ralink 1.4.5.0 
-- *      Ivo (rt2400)    15th Dec 04     Uninitialised timer 
-+ *      RobinC          10th Dec 04     RFMON Support
-+ *      MarkW           10th Dec 04     Rolled in Ralink 1.4.5.0
-+ *      Ivo (rt2400)    15th Dec 04     Uninitialised timer
-  *      MarkW           17th Dec 04     Monitor mode through iwconfig
-  *      BrunoH			3rd  Feb 04     Fix for 802.11b adhoc association
-- *      JohnC           19th Mar 04     Fixes for quality reporting     
-+ *      JohnC           19th Mar 04     Fixes for quality reporting
-  * 		MarkW			13th Jun 05		Fix to allow adhoc network creation
-- ***************************************************************************/ 
-+ ***************************************************************************/
- 
- #include "rt_config.h"
- #include <stdarg.h>
- 
--// e.g. RssiSafeLevelForTxRate[RATE_36]" means if the current RSSI is greater than 
--//      this value, then it's quaranteed capable of operating in 36 mbps TX rate in 
-+// e.g. RssiSafeLevelForTxRate[RATE_36]" means if the current RSSI is greater than
-+//      this value, then it's quaranteed capable of operating in 36 mbps TX rate in
- //      clean environment.
- //                          TxRate: 1   2   5.5   11   6    9    12   18   24   36   48   54   72  100
- CHAR RssiSafeLevelForTxRate[] ={  -92, -91, -90, -87, -88, -86, -85, -83, -81, -78, -72, -71, -40, -40 };
- 
--                                  //  1      2       5.5      11  
-+                                  //  1      2       5.5      11
- UCHAR Phy11BNextRateDownward[] = {RATE_1, RATE_1,   RATE_2,  RATE_5_5};
- UCHAR Phy11BNextRateUpward[]   = {RATE_2, RATE_5_5, RATE_11, RATE_11};
- 
-@@ -68,10 +68,10 @@
- 
- USHORT OldRateUpPER[]   = {    40,  40,  40, 40, 30, 30, 30, 30, 20, 20, 10, 10 }; // in percentage
- USHORT OldRateDownPER[] = {    45,  45,  45, 45, 35, 35, 35, 35, 25, 25, 25, 12 }; // in percentage
--    
-+
- UCHAR  RateIdToMbps[]    = { 1, 2, 5, 11, 6, 9, 12, 18, 24, 36, 48, 54, 72, 100};
- USHORT RateIdTo500Kbps[] = { 2, 4, 11, 22, 12, 18, 24, 36, 48, 72, 96, 108, 144, 200};
--    
-+
- RTMP_RF_REGS RF2522RegTable[] = {
- //      ch   R1          R2          R3(TX0~4=0) R4
-         {1,  0x94002050, 0x940c1fda, 0x94000101, 0},
-@@ -144,10 +144,10 @@
-         {14, 0x94032020, 0x94000d1a, 0x94000101, 0x94000a03}
- };
- #define	NUM_OF_2524_CHNL	(sizeof(RF2524RegTable) / sizeof(RTMP_RF_REGS))
--            
-+
- RTMP_RF_REGS RF2525RegTable[] = {
- //      ch   R1          R2          R3(TX0~4=0) R4
--        {1,  0x94022020, 0x94080c9e, 0x94060111, 0x94000a1b}, // {1,  0x94022010, 0x9408062e, 0x94060111, 0x94000a23}, 
-+        {1,  0x94022020, 0x94080c9e, 0x94060111, 0x94000a1b}, // {1,  0x94022010, 0x9408062e, 0x94060111, 0x94000a23},
-         {2,  0x94022020, 0x94080ca2, 0x94060111, 0x94000a1b},
-         {3,  0x94022020, 0x94080ca6, 0x94060111, 0x94000a1b},
-         {4,  0x94022020, 0x94080caa, 0x94060111, 0x94000a1b},
-@@ -157,15 +157,15 @@
-         {8,  0x94022020, 0x94080cba, 0x94060111, 0x94000a1b},
-         {9,  0x94022020, 0x94080cbe, 0x94060111, 0x94000a1b},
-         {10, 0x94022020, 0x94080d02, 0x94060111, 0x94000a1b},
--        {11, 0x94022020, 0x94080d06, 0x94060111, 0x94000a1b}, // {11, 0x94022010, 0x94080682, 0x94060111, 0x94000a23}, 
-+        {11, 0x94022020, 0x94080d06, 0x94060111, 0x94000a1b}, // {11, 0x94022010, 0x94080682, 0x94060111, 0x94000a23},
-         {12, 0x94022020, 0x94080d0a, 0x94060111, 0x94000a1b},
--        {13, 0x94022020, 0x94080d0e, 0x94060111, 0x94000a1b}, // {13, 0x94022010, 0x94080686, 0x94060111, 0x94000a23}, 
-+        {13, 0x94022020, 0x94080d0e, 0x94060111, 0x94000a1b}, // {13, 0x94022010, 0x94080686, 0x94060111, 0x94000a23},
-         {14, 0x94022020, 0x94080d1a, 0x94060111, 0x94000a03}
- };
- #define	NUM_OF_2525_CHNL	(sizeof(RF2525RegTable) / sizeof(RTMP_RF_REGS))
- 
- RTMP_RF_REGS RF2525HBOffsetRegTable[] = {
--        {1,  0x94022020, 0x94080cbe, 0x94060111, 0x94000a1b},  
-+        {1,  0x94022020, 0x94080cbe, 0x94060111, 0x94000a1b},
-         {2,  0x94022020, 0x94080d02, 0x94060111, 0x94000a1b},
-         {3,  0x94022020, 0x94080d06, 0x94060111, 0x94000a1b},
-         {4,  0x94022020, 0x94080d0a, 0x94060111, 0x94000a1b},
-@@ -175,9 +175,9 @@
-         {8,  0x94022020, 0x94080d1a, 0x94060111, 0x94000a1b},
-         {9,  0x94022020, 0x94080d1e, 0x94060111, 0x94000a1b},
-         {10, 0x94022020, 0x94080d22, 0x94060111, 0x94000a1b},
--        {11, 0x94022020, 0x94080d26, 0x94060111, 0x94000a1b}, 
-+        {11, 0x94022020, 0x94080d26, 0x94060111, 0x94000a1b},
-         {12, 0x94022020, 0x94080d2a, 0x94060111, 0x94000a1b},
--        {13, 0x94022020, 0x94080d2e, 0x94060111, 0x94000a1b}, 
-+        {13, 0x94022020, 0x94080d2e, 0x94060111, 0x94000a1b},
-         {14, 0x94022020, 0x94080d3a, 0x94060111, 0x94000a03}
- };
- 
-@@ -195,7 +195,7 @@
-         {8,  0x94022020, 0x94081192, 0x94060111, 0x94000a0b},
-         {9,  0x94022020, 0x94081196, 0x94060111, 0x94000a0b},
-         {10, 0x94022020, 0x9408119a, 0x94060111, 0x94000a0b},
--        {11, 0x94022020, 0x9408119e, 0x94060111, 0x94000a0b}, 
-+        {11, 0x94022020, 0x9408119e, 0x94060111, 0x94000a0b},
-         {12, 0x94022020, 0x940811a2, 0x94060111, 0x94000a0b},
-         {13, 0x94022020, 0x940811a6, 0x94060111, 0x94000a0b},
-         {14, 0x94022020, 0x940811ae, 0x94060111, 0x94000a1b}
-@@ -212,7 +212,7 @@
-         {8,  0x94022010, 0x940808aa, 0x94060111, 0x94000a07},
-         {9,  0x94022010, 0x940808aa, 0x94060111, 0x94000a1b},
-         {10, 0x94022010, 0x940808ae, 0x94060111, 0x94000a07},
--        {11, 0x94022010, 0x940808ae, 0x94060111, 0x94000a1b}, 
-+        {11, 0x94022010, 0x940808ae, 0x94060111, 0x94000a1b},
-         {12, 0x94022010, 0x940808b2, 0x94060111, 0x94000a07},
-         {13, 0x94022010, 0x940808b2, 0x94060111, 0x94000a1b},
-         {14, 0x94022010, 0x940808b6, 0x94060111, 0x94000a23}
-@@ -238,7 +238,7 @@
-         {14, 0x94022020, 0x940011ae, 0x94000101, 0x94000a1b},
- 
-         // still lack of MMAC(Japan) ch 34,38,42,46
--        
-+
-         {36, 0x94022010, 0x94018896, 0x94000101, 0x94000a1f},
-         {40, 0x94022010, 0x9401889a, 0x94000101, 0x94000a1f},
-         {44, 0x94022010, 0x9401889e, 0x94000101, 0x94000a1f},
-@@ -247,7 +247,7 @@
-         {66, 0x94022010, 0x940188aa, 0x94000101, 0x94000a1f},
-         {60, 0x94022010, 0x940188ae, 0x94000101, 0x94000a1f},
-         {64, 0x94022010, 0x940188b2, 0x94000101, 0x94000a1f},
--        
-+
-         {100, 0x94022010, 0x94008802, 0x94000101, 0x94000a0f},
-         {104, 0x94022010, 0x94008806, 0x94000101, 0x94000a0f},
-         {108, 0x94022010, 0x9400880a, 0x94000101, 0x94000a0f},
-@@ -259,7 +259,7 @@
-         {132, 0x94022010, 0x94008822, 0x94000101, 0x94000a0f},
-         {136, 0x94022010, 0x94008826, 0x94000101, 0x94000a0f},
-         {140, 0x94022010, 0x9400882a, 0x94000101, 0x94000a0f},
--        
-+
-         {149, 0x94022020, 0x940090a6, 0x94000101, 0x94000a07},
-         {153, 0x94022020, 0x940090ae, 0x94000101, 0x94000a07},
-         {157, 0x94022020, 0x940090b6, 0x94000101, 0x94000a07},
-@@ -270,14 +270,14 @@
- /*
-     ==========================================================================
-     Description:
--        initialize the MLME task and its data structure (queue, spinlock, 
-+        initialize the MLME task and its data structure (queue, spinlock,
-         timer, state machines).
-     Return:
-         always return NDIS_STATUS_SUCCESS
-     ==========================================================================
- */
- NDIS_STATUS MlmeInit(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
-     NDIS_STATUS Status = NDIS_STATUS_SUCCESS;
- 
-@@ -285,8 +285,8 @@
-     	return Status;
- 
-     DBGPRINT(RT_DEBUG_TRACE, "--> MLME Initialize\n");
--    
--    do 
-+
-+    do
-     {
-         pAd->Mlme.Running = FALSE;
-         spin_lock_init(&pAd->Mlme.TaskLock);
-@@ -298,10 +298,10 @@
-         // init state machines
-         ASSERT(ASSOC_FUNC_SIZE == MAX_ASSOC_MSG * MAX_ASSOC_STATE);
-         AssocStateMachineInit(pAd, &pAd->Mlme.AssocMachine, pAd->Mlme.AssocFunc);
--        
-+
-         ASSERT(AUTH_FUNC_SIZE == MAX_AUTH_MSG * MAX_AUTH_STATE);
-         AuthStateMachineInit(pAd, &pAd->Mlme.AuthMachine, pAd->Mlme.AuthFunc);
--        
-+
-         ASSERT(AUTH_RSP_FUNC_SIZE == MAX_AUTH_RSP_MSG * MAX_AUTH_RSP_STATE);
-         AuthRspStateMachineInit(pAd, &pAd->Mlme.AuthRspMachine, pAd->Mlme.AuthRspFunc);
- 
-@@ -310,8 +310,8 @@
- 
- 		ASSERT(WPA_PSK_FUNC_SIZE == MAX_WPA_PSK_MSG * MAX_WPA_PSK_STATE);
-         WpaPskStateMachineInit(pAd,&pAd->Mlme.WpaPskMachine,pAd->Mlme.WpaPskFunc);
--		
--        // Since we are using switch/case to implement it, the init is different from the above 
-+
-+        // Since we are using switch/case to implement it, the init is different from the above
-         // state machine init
-         MlmeCntlInit(pAd, &pAd->Mlme.CntlMachine, NULL);
- 
-@@ -332,7 +332,7 @@
-     } while (FALSE);
- 
-     RTMP_SET_FLAG(pAd, fRTMP_ADAPTER_MLME_INITIALIZED);
--   
-+
-     DBGPRINT(RT_DEBUG_TRACE, "<-- MLME Initialize\n");
- 
-     return Status;
-@@ -347,83 +347,70 @@
-         Mlme has to be initialized, and there are something inside the queue
-     Note:
-         This function is invoked from MPSetInformation and MPReceive;
--        This task guarantee only one MlmeHandler will run. 
-+        This task guarantee only one MlmeHandler will run.
-     ==========================================================================
-  */
- VOID MlmeHandler(
--    IN PRTMP_ADAPTER pAd) 
--{
--#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
--    schedule_work(&pAd->mlme_work);
--}
--
--VOID MlmeWork(void *vpAd)
-+    IN PRTMP_ADAPTER pAd)
- {
--    PRTMP_ADAPTER pAd = vpAd;
--#endif
-     MLME_QUEUE_ELEM        *Elem = NULL;
-     unsigned long flags;
--    int loops = 0;
- 
-     // Only accept MLME and Frame from peer side, no other (control/data) frame should
-     // get into this state machine
- 
--    spin_lock_irqsave(&pAd->Mlme.TaskLock,flags);
--    if(pAd->Mlme.Running) 
-+    spin_lock_irqsave(&pAd->Mlme.TaskLock, flags);
-+    if(pAd->Mlme.Running)
-     {
--        spin_unlock_irqrestore(&pAd->Mlme.TaskLock,flags);
-+        spin_unlock_irqrestore(&pAd->Mlme.TaskLock, flags);
-         return;
--    } 
--    else 
-+    }
-+    else
-     {
-         pAd->Mlme.Running = TRUE;
-     }
--    spin_unlock_irqrestore(&pAd->Mlme.TaskLock,flags);
-+    spin_unlock_irqrestore(&pAd->Mlme.TaskLock, flags);
-+
-+    while (TRUE) {
-+	    spin_lock_irqsave(&pAd->Mlme.Queue.Lock, flags);
-+    	if (!MlmeDequeue(&pAd->Mlme.Queue, &Elem)) {
-+    		spin_unlock_irqrestore(&pAd->Mlme.Queue.Lock, flags);
-+    		break;
-+    	}
-+   		spin_unlock_irqrestore(&pAd->Mlme.Queue.Lock, flags);
-+
-+        if (pAd->PortCfg.BssType == BSS_MONITOR)
-+        	continue;
- 
--    while (MlmeDequeue(&pAd->Mlme.Queue, &Elem)) 
--    {
-         //From message type, determine which state machine I should drive
--        if (pAd->PortCfg.BssType != BSS_MONITOR) 
-+        switch (Elem->Machine)
-         {
--            // if dequeue success
--            switch (Elem->Machine) 
--            {
--                case ASSOC_STATE_MACHINE:
--                    StateMachinePerformAction(pAd, &pAd->Mlme.AssocMachine, Elem);
--                    break;
--                case AUTH_STATE_MACHINE:
--                    StateMachinePerformAction(pAd, &pAd->Mlme.AuthMachine, Elem);
--                    break;
--                case AUTH_RSP_STATE_MACHINE:
--                    StateMachinePerformAction(pAd, &pAd->Mlme.AuthRspMachine, Elem);
--                    break;
--                case SYNC_STATE_MACHINE:
--                    StateMachinePerformAction(pAd, &pAd->Mlme.SyncMachine, Elem);
--                    break;
--                case MLME_CNTL_STATE_MACHINE:
--                    MlmeCntlMachinePerformAction(pAd, &pAd->Mlme.CntlMachine, Elem);
--                    break;
--                case WPA_PSK_STATE_MACHINE:
--                    StateMachinePerformAction(pAd, &pAd->Mlme.WpaPskMachine, Elem);
--                    break;
--                default:
--                    DBGPRINT(RT_DEBUG_TRACE, "ERROR: Illegal machine in MlmeHandler()\n");
--                    break;
--            } // end of switch
-+            case ASSOC_STATE_MACHINE:
-+                StateMachinePerformAction(pAd, &pAd->Mlme.AssocMachine, Elem);
-+                break;
-+            case AUTH_STATE_MACHINE:
-+                StateMachinePerformAction(pAd, &pAd->Mlme.AuthMachine, Elem);
-+                break;
-+            case AUTH_RSP_STATE_MACHINE:
-+                StateMachinePerformAction(pAd, &pAd->Mlme.AuthRspMachine, Elem);
-+                break;
-+            case SYNC_STATE_MACHINE:
-+                StateMachinePerformAction(pAd, &pAd->Mlme.SyncMachine, Elem);
-+                break;
-+            case MLME_CNTL_STATE_MACHINE:
-+                MlmeCntlMachinePerformAction(pAd, &pAd->Mlme.CntlMachine, Elem);
-+                break;
-+            case WPA_PSK_STATE_MACHINE:
-+                StateMachinePerformAction(pAd, &pAd->Mlme.WpaPskMachine, Elem);
-+                break;
-+            default:
-+                DBGPRINT(RT_DEBUG_TRACE, "ERROR: Illegal machine in MlmeHandler()\n");
-+                break;
-+        } // end of switch
- 
--            // free MLME element
--            Elem->Occupied = FALSE;
--            Elem->MsgLen = 0;
--            
--        }
--        else
--        {
--            printk(KERN_ERR DRV_NAME "ERROR: empty Elem in MlmeQueue\n");
--        }
--	loops++;
--	if (loops > 50)
--		/* something wrong - avoid locking up the computer solid */
--		break;
-+        // free MLME element
-+        Elem->Occupied = FALSE;
-+        Elem->MsgLen = 0;
-     }
- 
-     spin_lock_irqsave(&pAd->Mlme.TaskLock,flags);
-@@ -442,7 +429,7 @@
-     ==========================================================================
-  */
- VOID MlmeHalt(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
-     MLME_DISASSOC_REQ_STRUCT DisReq;
-     MLME_QUEUE_ELEM *MsgElem;
-@@ -455,8 +442,8 @@
- 		return;
- 
-     DBGPRINT(RT_DEBUG_TRACE, "==> MlmeHalt\n");
--    
--    if (INFRA_ON(pAd) && !RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST)) 
-+
-+    if (INFRA_ON(pAd) && !RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST))
-     {
-         COPY_MAC_ADDR(&DisReq.Addr, &pAd->PortCfg.Bssid);
-         DisReq.Reason =  REASON_DISASSOC_STA_LEAVING;
-@@ -476,7 +463,7 @@
-     	// disable BEACON generation and other BEACON related hardware timers
-     	AsicDisableSync(pAd);
- 	}
--    
-+
-     // Cancel pending timers
-     RTMPCancelTimer(&pAd->Mlme.AssocAux.AssocTimer);
-     RTMPCancelTimer(&pAd->Mlme.AssocAux.ReassocTimer);
-@@ -496,7 +483,7 @@
- 
-     RTMPCancelTimer(&pAd->PortCfg.RxAnt.RxAntDiversityTimer);
-     udelay(1000);
--    
-+
-     MlmeQueueDestroy(&pAd->Mlme.Queue);
-     StateMachineDestroy(&pAd->Mlme.AssocMachine);
-     StateMachineDestroy(&pAd->Mlme.AuthMachine);
-@@ -506,11 +493,11 @@
-     //NdisFreeSpinLock(&pAd->Mlme.Queue.Lock);
-     //NdisFreeSpinLock(&pAd->Mlme.TaskLock);
-     // NdisFreeSpinLock(&pAd->PortCfg.MacTab.Lock);
--  
-+
-     MlmeFreeMemoryHandler(pAd); //Free MLME memory handler
- 
-     RTMP_CLEAR_FLAG(pAd, fRTMP_ADAPTER_MLME_INITIALIZED);
--   
-+
- 	DBGPRINT(RT_DEBUG_TRACE, "<== MlmeHalt\n");
- 	kfree(MsgElem);
- }
-@@ -519,42 +506,33 @@
-     ==========================================================================
-     Description:
-         This routine is executed periodically to -
--        1. Decide if it's a right time to turn on PwrMgmt bit of all 
-+        1. Decide if it's a right time to turn on PwrMgmt bit of all
-            outgoiing frames
-         2. Calculate ChannelQuality based on statistics of the last
--           period, so that TX rate won't toggling very frequently between a 
-+           period, so that TX rate won't toggling very frequently between a
-            successful TX and a failed TX.
--        3. If the calculated ChannelQuality indicated current connection not 
-+        3. If the calculated ChannelQuality indicated current connection not
-            healthy, then a ROAMing attempt is tried here.
-     ==========================================================================
-  */
- #define ADHOC_BEACON_LOST_TIME      (10*HZ)  // 4 sec
- VOID MlmePeriodicExec(
--    IN  unsigned long data) 
-+    IN  unsigned long data)
- {
-     RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)data;
-     ULONG Now32;
-     CSR15_STRUC Csr15;
- 
--    if (pAd->PortCfg.BssType == BSS_MONITOR)
--    {
--        RTMPSetTimer(pAd, &pAd->Mlme.PeriodicTimer, MLME_TASK_EXEC_INTV);
--        return;
--    }
--
--	if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RADIO_OFF))
--	{
--	    RTMPSetTimer(pAd, &pAd->Mlme.PeriodicTimer, MLME_TASK_EXEC_INTV);
--		return;
--	}
--
--	if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RESET_IN_PROGRESS))
--	{
--	    RTMPSetTimer(pAd, &pAd->Mlme.PeriodicTimer, MLME_TASK_EXEC_INTV);
-+	if ((pAd->PortCfg.BssType == BSS_MONITOR)
-+			|| RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RADIO_OFF)
-+			|| RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RESET_IN_PROGRESS)
-+			|| RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS)
-+			) {  
-+		RTMPSetTimer(pAd, &pAd->Mlme.PeriodicTimer, MLME_TASK_EXEC_INTV);
- 		return;
- 	}
- 
--	// check every 2 second. If rcv-beacon less than 5 in the past 2 second, then AvgRSSI is no longer a 
-+	// check every 2 second. If rcv-beacon less than 5 in the past 2 second, then AvgRSSI is no longer a
-     // valid indication of the distance between this AP and its clients.
-     if (pAd->MediaState == NdisMediaStateConnected)
-     {
-@@ -568,7 +546,7 @@
-         else
-             pAd->PortCfg.NumOfAvgRssiSample = 0;
-     }
--	
-+
-     Now32 = jiffies;
- 
- 	if (pAd->RalinkCounters.MgmtRingFullCount >= 2)
-@@ -579,7 +557,7 @@
- 	{
- 		pAd->RalinkCounters.MgmtRingFullCount = 0;
- 	}
--    
-+
- 	if ((pAd->PortCfg.bBlockAssoc == TRUE) && (pAd->PortCfg.LastMicErrorTime + (60 * HZ) < Now32))
- 	{
- 		pAd->PortCfg.bBlockAssoc = FALSE;
-@@ -600,11 +578,11 @@
- 	}
- 
- 
--#ifndef	WIFI_TEST        
-+#ifndef	WIFI_TEST
-     // danamic tune BBP R17 to find a balance between sensibility and noise isolation
--    // 2003-12-05 For 2560C and before, to avoid collision with MAC ASIC, limit 
-+    // 2003-12-05 For 2560C and before, to avoid collision with MAC ASIC, limit
-     //   BBP R17 tuning to be within 20 seconds after LINK UP. 2560D (R0=4) and
--    //   after can always enable R17 tuning 
-+    //   after can always enable R17 tuning
-     if (pAd->PortCfg.Rt2560Version >= RT2560_VER_D)
-         AsicBbpTuning(pAd);
-     else if ((pAd->MediaState == NdisMediaStateConnected) && (pAd->Mlme.PeriodicRound <= 20))
-@@ -642,23 +620,23 @@
- 		if (pAd->PortCfg.MicErrCnt >= 3)
- 		{
- 			MLME_DISASSOC_REQ_STRUCT	DisassocReq;
--			
-+
-             // disassoc from current AP first
-         	DBGPRINT(RT_DEBUG_TRACE, "MLME - disassociate with current AP after sending second continuous EAPOL frame\n");
-             DisassocParmFill(pAd, &DisassocReq, &pAd->PortCfg.Bssid, REASON_MIC_FAILURE);
--            MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_DISASSOC_REQ, 
-+            MlmeEnqueue(&pAd->Mlme.Queue, ASSOC_STATE_MACHINE, MT2_MLME_DISASSOC_REQ,
-                         sizeof(MLME_DISASSOC_REQ_STRUCT), &DisassocReq);
- 
-             pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_DISASSOC;
- 			pAd->PortCfg.bBlockAssoc = TRUE;
- 		}
--		
--        else 
-+
-+        else
-         {
-             // send out a NULL frame every 10 sec. for what??? inform "PwrMgmt" bit?
-             if ((pAd->Mlme.PeriodicRound % 10) == 8)
-                 EnqueueNullFrame(pAd, pAd->PortCfg.TxRate);
--    
-+
-        		if (CQI_IS_BAD(pAd->Mlme.ChannelQuality))
-        		{
-            		pAd->RalinkCounters.BadCQIAutoRecoveryCount ++;
-@@ -669,7 +647,7 @@
-        		else if (CQI_IS_FAIR(pAd->Mlme.ChannelQuality) || CQI_IS_POOR(pAd->Mlme.ChannelQuality))
-         	{
-    	        	// perform aggresive roaming only when SECURITY OFF or WEP64/128;
--   	        	// WPA and WPA-PSK has no aggresive roaming because re-negotiation 
-+   	        	// WPA and WPA-PSK has no aggresive roaming because re-negotiation
-    	        	// between 802.1x supplicant and authenticator/AAA server is required
-    	        	// but can't be guaranteed.
-    	        	if (pAd->PortCfg.AuthMode < Ndis802_11AuthModeWPA)
-@@ -686,7 +664,7 @@
-             // minimum BEACON to tell the peer I'm alive.
-             // drawback is that this BEACON won't well align at TBTT boundary.
-             RTMP_IO_READ32(pAd, CSR15, &Csr15.word);  // read-n-clear "BcnSent" bit
--            if (Csr15.field.BeaconSent == 0)  
-+            if (Csr15.field.BeaconSent == 0)
-                 EnqueueBeaconFrame(pAd);              // software send BEACON
-         }
-         else
-@@ -697,14 +675,14 @@
-                 (pAd->PortCfg.MaxDesiredRate > RATE_11)  &&
-                 ((pAd->PortCfg.Last11bBeaconRxTime + (5 * HZ)) < Now32))
-             {
--                DBGPRINT(RT_DEBUG_TRACE, "last 11B peer left, update Tx rates\n"); 
-+                DBGPRINT(RT_DEBUG_TRACE, "last 11B peer left, update Tx rates\n");
-                 memcpy(pAd->PortCfg.SupportedRates, pAd->PortCfg.IbssConfig.SupportedRates, MAX_LEN_OF_SUPPORTED_RATES);
-                 pAd->PortCfg.SupportedRatesLen = pAd->PortCfg.IbssConfig.SupportedRatesLen;
-                 MlmeUpdateTxRates(pAd, FALSE);
-                 MakeIbssBeacon(pAd);    // supported rates changed
-             }
-         }
--        
-+
- #ifndef	SINGLE_ADHOC_LINKUP
-         // If all peers leave, and this STA becomes the last one in this IBSS, then change MediaState
-         // to DISCONNECTED. But still holding this IBSS (i.e. sending BEACON) so that other STAs can
-@@ -712,7 +690,7 @@
-         if ((pAd->PortCfg.LastBeaconRxTime + ADHOC_BEACON_LOST_TIME < Now32) &&
-             (pAd->MediaState == NdisMediaStateConnected))
-         {
--            DBGPRINT(RT_DEBUG_TRACE, "MMCHK - excessive BEACON lost, last STA in this IBSS, MediaState=Disconnected\n"); 
-+            DBGPRINT(RT_DEBUG_TRACE, "MMCHK - excessive BEACON lost, last STA in this IBSS, MediaState=Disconnected\n");
- 
-             pAd->MediaState = NdisMediaStateDisconnected;
- 			// clean up previous SCAN result, add current BSS back to table if any
-@@ -731,7 +709,7 @@
- 			if ((pAd->PortCfg.BssTab.BssNr==0) && (pAd->Mlme.CntlMachine.CurrState == CNTL_IDLE))
- 			{
- 				MLME_SCAN_REQ_STRUCT	   ScanReq;
--			
-+
- 				if ((pAd->PortCfg.LastScanTime + 10 * HZ) < Now32)
- 				{
- 					DBGPRINT(RT_DEBUG_TRACE, "CNTL - No matching BSS, start a new scan\n");
-@@ -745,7 +723,7 @@
- 				}
- 				else if (pAd->PortCfg.BssType == BSS_INDEP)	// Quit the forever scan when in a very clean room
- 					MlmeAutoRecoverNetwork(pAd);
--					//MlmeAutoReconnectLastSSID(pAd);					
-+					//MlmeAutoReconnectLastSSID(pAd);
- 			}
- 			else if (pAd->Mlme.CntlMachine.CurrState == CNTL_IDLE)
- 			{
-@@ -759,7 +737,7 @@
- 				}
- 				else
- 					MlmeAutoReconnectLastSSID(pAd);
--				
-+
- 				DBGPRINT(RT_DEBUG_INFO, "pAd->PortCfg.AutoReconnect is TRUE\n");
- 			}
- 		}
-@@ -772,7 +750,7 @@
- 
- 	RTMPSetTimer(pAd, &pAd->Mlme.PeriodicTimer, MLME_TASK_EXEC_INTV);
- }
--	
-+
- VOID MlmeAutoScan(
-     IN PRTMP_ADAPTER pAd)
- {
-@@ -783,17 +761,17 @@
- 
-         // tell CNTL state machine NOT to call NdisMSetInformationComplete() after completing
-         // this request, because this request is initiated by driver itself.
--        pAd->Mlme.CntlAux.CurrReqIsFromNdis = FALSE; 
--                    
--        MlmeEnqueue(&pAd->Mlme.Queue, 
--                    MLME_CNTL_STATE_MACHINE, 
--                    OID_802_11_BSSID_LIST_SCAN, 
--                    0, 
-+        pAd->Mlme.CntlAux.CurrReqIsFromNdis = FALSE;
-+
-+        MlmeEnqueue(&pAd->Mlme.Queue,
-+                    MLME_CNTL_STATE_MACHINE,
-+                    OID_802_11_BSSID_LIST_SCAN,
-+                    0,
-                     NULL);
-         MlmeHandler(pAd);
-     }
- }
--	
-+
- VOID MlmeAutoRecoverNetwork(
-     IN PRTMP_ADAPTER pAd)
- {
-@@ -808,18 +786,18 @@
- 
-         // tell CNTL state machine NOT to call NdisMSetInformationComplete() after completing
-         // this request, because this request is initiated by driver itself.
--        pAd->Mlme.CntlAux.CurrReqIsFromNdis = FALSE; 
--                    
--        MlmeEnqueue(&pAd->Mlme.Queue, 
--                    MLME_CNTL_STATE_MACHINE, 
--                    OID_802_11_SSID, 
--                    sizeof(NDIS_802_11_SSID), 
-+        pAd->Mlme.CntlAux.CurrReqIsFromNdis = FALSE;
-+
-+        MlmeEnqueue(&pAd->Mlme.Queue,
-+                    MLME_CNTL_STATE_MACHINE,
-+                    OID_802_11_SSID,
-+                    sizeof(NDIS_802_11_SSID),
-                     &OidSsid);
-         MlmeHandler(pAd);
-     }
- 
- }
--    
-+
- VOID MlmeAutoReconnectLastSSID(
-     IN PRTMP_ADAPTER pAd)
- {
-@@ -833,12 +811,12 @@
-         DBGPRINT(RT_DEBUG_TRACE, "Driver auto reconnect to last OID_802_11_SSID setting - %s\n", pAd->Mlme.CntlAux.Ssid);
- 
- 		// We will only try this attemp once, therefore change the AutoReconnect flag afterwards.
--        pAd->Mlme.CntlAux.CurrReqIsFromNdis = FALSE; 
--                    
--        MlmeEnqueue(&pAd->Mlme.Queue, 
--                    MLME_CNTL_STATE_MACHINE, 
--                    OID_802_11_SSID, 
--                    sizeof(NDIS_802_11_SSID), 
-+        pAd->Mlme.CntlAux.CurrReqIsFromNdis = FALSE;
-+
-+        MlmeEnqueue(&pAd->Mlme.Queue,
-+                    MLME_CNTL_STATE_MACHINE,
-+                    OID_802_11_SSID,
-+                    sizeof(NDIS_802_11_SSID),
-                     &OidSsid);
-         MlmeHandler(pAd);
-     }
-@@ -867,17 +845,17 @@
-     for (i = 0; i < pBssTab->BssNr; i++)
-     {
-         pBss = &pBssTab->BssEntry[i];
--        
--        if ((pBssTab->BssEntry[i].LastBeaconRxTime + BEACON_LOST_TIME) < Now32) 
-+
-+        if ((pBssTab->BssEntry[i].LastBeaconRxTime + BEACON_LOST_TIME) < Now32)
-             continue;    // AP disappear
-         if (pBss->Rssi <= RSSI_THRESHOLD_FOR_ROAMING)
-             continue;    // RSSI too weak. forget it.
-         if (MAC_ADDR_EQUAL(&pBssTab->BssEntry[i].Bssid, &pAd->PortCfg.Bssid))
-             continue;    // skip current AP
--        if (CQI_IS_FAIR(pAd->Mlme.ChannelQuality) && (pAd->PortCfg.LastRssi + RSSI_DELTA > pBss->Rssi)) 
-+        if (CQI_IS_FAIR(pAd->Mlme.ChannelQuality) && (pAd->PortCfg.LastRssi + RSSI_DELTA > pBss->Rssi))
-             continue;    // we're still okay, only AP with stronger RSSI is eligible for roaming
- 
--        // AP passing all above rules is put into roaming candidate table        
-+        // AP passing all above rules is put into roaming candidate table
-         memcpy(&pRoamTab->BssEntry[pRoamTab->BssNr], pBss, sizeof(BSS_ENTRY));
-         pRoamTab->BssNr += 1;
-     }
-@@ -889,23 +867,23 @@
-         {
-             // tell CNTL state machine NOT to call NdisMSetInformationComplete() after completing
-             // this request, because this request is initiated by driver itself, not from NDIS.
--            pAd->Mlme.CntlAux.CurrReqIsFromNdis = FALSE; 
--        
-+            pAd->Mlme.CntlAux.CurrReqIsFromNdis = FALSE;
-+
-           	pAd->RalinkCounters.PoorCQIRoamingCount ++;
-             DBGPRINT(RT_DEBUG_TRACE, "MMCHK - Roaming attempt #%d\n", pAd->RalinkCounters.PoorCQIRoamingCount);
-             MlmeEnqueue(&pAd->Mlme.Queue, MLME_CNTL_STATE_MACHINE, MT2_MLME_ROAMING_REQ, 0, NULL);
-             MlmeHandler(pAd);
-         }
-     }
--    
-+
- }
- 
- /*
-     ==========================================================================
-     Description:
--        This routine calculates TxPER, RxPER of the past N-sec period. And 
--        according to the calculation result, ChannelQuality is calculated here 
--        to decide if current AP is still doing the job. 
-+        This routine calculates TxPER, RxPER of the past N-sec period. And
-+        according to the calculation result, ChannelQuality is calculated here
-+        to decide if current AP is still doing the job.
- 
-         If ChannelQuality is not good, a ROAMing attempt may be tried later.
-     Output:
-@@ -923,11 +901,11 @@
-     //
-     // monitor TX counters change for the past period
-     //
--    TxFailCnt     = pAd->WlanCounters.FailedCount.vv.LowPart - 
-+    TxFailCnt     = pAd->WlanCounters.FailedCount.vv.LowPart -
-                     pAd->Mlme.PrevWlanCounters.FailedCount.vv.LowPart;
--    TxRetryCnt    = pAd->WlanCounters.RetryCount.vv.LowPart - 
-+    TxRetryCnt    = pAd->WlanCounters.RetryCount.vv.LowPart -
-                     pAd->Mlme.PrevWlanCounters.RetryCount.vv.LowPart;
--    TxOkCnt       = pAd->WlanCounters.TransmittedFragmentCount.vv.LowPart - 
-+    TxOkCnt       = pAd->WlanCounters.TransmittedFragmentCount.vv.LowPart -
-                     pAd->Mlme.PrevWlanCounters.TransmittedFragmentCount.vv.LowPart;
-     TxCnt = TxOkCnt + TxFailCnt;
- 
-@@ -947,16 +925,16 @@
-     pAd->WlanCounters.FCSErrorCount.vv.LowPart += ((Cnt0 & 0x0000ffff) >> 7);
-     if (pAd->WlanCounters.FCSErrorCount.vv.LowPart < OldFcsCount)
-        	pAd->WlanCounters.FCSErrorCount.vv.HighPart++;
--            
-+
-     // Add FCS error count to private counters
-     OldFcsCount = pAd->RalinkCounters.RealFcsErrCount.vv.LowPart;
-     pAd->RalinkCounters.RealFcsErrCount.vv.LowPart += Cnt0;
-     if (pAd->RalinkCounters.RealFcsErrCount.vv.LowPart < OldFcsCount)
-     	pAd->RalinkCounters.RealFcsErrCount.vv.HighPart++;
--	
--    RxOkCnt   = pAd->WlanCounters.ReceivedFragmentCount.vv.LowPart - 
-+
-+    RxOkCnt   = pAd->WlanCounters.ReceivedFragmentCount.vv.LowPart -
-                 pAd->Mlme.PrevWlanCounters.ReceivedFragmentCount.vv.LowPart;
--    RxFailCnt = pAd->RalinkCounters.RealFcsErrCount.vv.LowPart - 
-+    RxFailCnt = pAd->RalinkCounters.RealFcsErrCount.vv.LowPart -
-                 pAd->Mlme.PrevWlanCounters.FCSErrorCount.vv.LowPart;
-     RxCnt = RxOkCnt + RxFailCnt;
- 
-@@ -966,8 +944,8 @@
-     //
-     // decide ChannelQuality based on: 1)last BEACON received time, 2)last RSSI, 3)TxPER, and 4)RxPER
-     //
--    // This value also decides when all roaming fails (or no roaming candidates at 
--    // all), should this STA stay with original AP, or a LinkDown signal 
-+    // This value also decides when all roaming fails (or no roaming candidates at
-+    // all), should this STA stay with original AP, or a LinkDown signal
-     // is indicated to NDIS
-     //
-     if (INFRA_ON(pAd) &&
-@@ -977,7 +955,7 @@
-     	// Ignore lost beacon if traffic still goes well
-     	if (!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RESET_IN_PROGRESS) && (TxOkCnt < 2))
-     	{
--        	DBGPRINT(RT_DEBUG_TRACE, "BEACON lost for more than %d sec with TxOkCnt=%d, let CQI = 0\n", BEACON_LOST_TIME/HZ, TxOkCnt); 
-+        	DBGPRINT(RT_DEBUG_TRACE, "BEACON lost for more than %d sec with TxOkCnt=%d, let CQI = 0\n", BEACON_LOST_TIME/HZ, TxOkCnt);
-         	pAd->Mlme.ChannelQuality = 0;
-         	// Lost AP, send disconnect & link down event
- 			LinkDown(pAd);
-@@ -986,19 +964,19 @@
-     else
-     {
-         // ChannelQuality = W1*RSSI + W2*TxPRR + W3*RxPER    (RSSI 0..100), (TxPER 100..0), (RxPER 100..0)
--        pAd->Mlme.ChannelQuality = (RSSI_WEIGHTING * pAd->PortCfg.LastRssi + 
--                             TX_WEIGHTING * (100 - TxPRR) + 
-+        pAd->Mlme.ChannelQuality = (RSSI_WEIGHTING * pAd->PortCfg.LastRssi +
-+                             TX_WEIGHTING * (100 - TxPRR) +
-                              RX_WEIGHTING* (100 - RxPER)) / 100;
-         if (pAd->Mlme.ChannelQuality >= 100)
-             pAd->Mlme.ChannelQuality = 100;
-     }
--    
-+
-     // latch current WLAN counters for next check-for-roaming usage
-     memcpy(&pAd->Mlme.PrevWlanCounters, &pAd->WlanCounters, sizeof(COUNTER_802_11));
- 	// make sure copy the real FCS counts into previous mlme counter structure.
- 	pAd->Mlme.PrevWlanCounters.FCSErrorCount = pAd->RalinkCounters.RealFcsErrCount;
--	
--    DBGPRINT(RT_DEBUG_INFO, "MMCHK - CQI= %d, (Tx Fail=%d/Retry=%d/Total=%d, Rx Fail=%d/Total=%d, RSSI=%d dbm)\n", 
-+
-+    DBGPRINT(RT_DEBUG_INFO, "MMCHK - CQI= %d, (Tx Fail=%d/Retry=%d/Total=%d, Rx Fail=%d/Total=%d, RSSI=%d dbm)\n",
-     pAd->Mlme.ChannelQuality, TxFailCnt, TxRetryCnt, TxCnt, RxFailCnt, RxCnt, pAd->PortCfg.LastRssi - pAd->PortCfg.RssiToDbm);
- 
- }
-@@ -1006,13 +984,13 @@
- /*
-     ==========================================================================
-     Description:
--        This routine calculates the acumulated TxPER of eaxh TxRate. And 
--        according to the calculation result, change PortCfg.TxRate which 
--        is the stable TX Rate we expect the Radio situation could sustained. 
-+        This routine calculates the acumulated TxPER of eaxh TxRate. And
-+        according to the calculation result, change PortCfg.TxRate which
-+        is the stable TX Rate we expect the Radio situation could sustained.
- 
--        PortCfg.TxRate will change dynamically within {RATE_1/RATE_6, MaxTxRate} 
-+        PortCfg.TxRate will change dynamically within {RATE_1/RATE_6, MaxTxRate}
-     Output:
--        PortCfg.TxRate - 
-+        PortCfg.TxRate -
-     NOTE:
-         call this routine every second
-     ==========================================================================
-@@ -1032,9 +1010,9 @@
-     {
-         if (pAd->PortCfg.EnableAutoRateSwitching == FALSE)
-             break;
--            
-+
-         // if no traffic in the past 1-sec period, don't change TX rate,
--        // but clear all bad history. because the bad history may affect the next 
-+        // but clear all bad history. because the bad history may affect the next
-         // Chariot throughput test
-         if (TxTotalCnt == 0)
-         {
-@@ -1043,7 +1021,7 @@
-             memset(pAd->DrsCounters.PER, 0, MAX_LEN_OF_SUPPORTED_RATES);
-             break;
-         }
--        
-+
-         // decide the next upgrade rate and downgrade rate, if any
-         if (pAd->PortCfg.PhyMode == PHY_11BG_MIXED)
-         {
-@@ -1062,7 +1040,7 @@
-         }
-         else // PHY_11ABG_MIXED
-         {
--            if (pAd->PortCfg.Channel > 14)  
-+            if (pAd->PortCfg.Channel > 14)
-             {
-                 UpRate = Phy11ANextRateUpward[CurrRate];
-                 DownRate = Phy11ANextRateDownward[CurrRate];
-@@ -1081,7 +1059,7 @@
-         if (TxTotalCnt > 15)
-         {
-             TxErrorRatio = ((pAd->DrsCounters.OneSecTxRetryOkCount + pAd->DrsCounters.OneSecTxFailCount) *100) / TxTotalCnt;
--           
-+
-             // 2560D and after has implemented ASIC-based OFDM rate switching,
-             // but not 2560C & before. thus software use different PER for rate switching
-             if (pAd->PortCfg.Rt2560Version >= RT2560_VER_D)
-@@ -1106,20 +1084,20 @@
-                 fUpgradeQuality = TRUE;
-                 if (pAd->DrsCounters.TxQuality[CurrRate])
-                     pAd->DrsCounters.TxQuality[CurrRate] --;  // quality very good in CurrRate
--                    
-+
-                 if (pAd->DrsCounters.TxRateUpPenalty)
-                     pAd->DrsCounters.TxRateUpPenalty --;
-                 else if (pAd->DrsCounters.TxQuality[UpRate])
-                     pAd->DrsCounters.TxQuality[UpRate] --;    // may improve next UP rate's quality
-             }
--            
-+
-         }
--        
-+
-         // if not enough TX samples, decide by heuristic rules
-         else
-         {
-             TxErrorRatio = 0;
--            
-+
-             // Downgrade TX quality upon any TX failure in the past second
-             if (pAd->DrsCounters.OneSecTxFailCount)
-             {
-@@ -1155,22 +1133,22 @@
- 
-         if (pAd->DrsCounters.fNoisyEnvironment)
-         {
--            DBGPRINT(RT_DEBUG_TRACE,"DRS(noisy):"); 
-+            DBGPRINT(RT_DEBUG_TRACE,"DRS(noisy):");
-         }
-         else
-         {
--            DBGPRINT(RT_DEBUG_TRACE,"DRS:"); 
-+            DBGPRINT(RT_DEBUG_TRACE,"DRS:");
-         }
--        DBGPRINT(RT_DEBUG_TRACE, "Qty[%d]=%d PER=%d%% %d-sec, Qty[%d]=%d, Pty=%d\n", 
-+        DBGPRINT(RT_DEBUG_TRACE, "Qty[%d]=%d PER=%d%% %d-sec, Qty[%d]=%d, Pty=%d\n",
-             RateIdToMbps[CurrRate], pAd->DrsCounters.TxQuality[CurrRate],
-             TxErrorRatio,
-             pAd->DrsCounters.CurrTxRateStableTime,
-             RateIdToMbps[UpRate], pAd->DrsCounters.TxQuality[UpRate],
-             pAd->DrsCounters.TxRateUpPenalty);
--        
-+
-         // 2004-3-13 special case: Claim noisy environment
--        //   decide if there was a false "rate down" in the past 2 sec due to noisy 
--        //   environment. if so, we would rather switch back to the higher TX rate. 
-+        //   decide if there was a false "rate down" in the past 2 sec due to noisy
-+        //   environment. if so, we would rather switch back to the higher TX rate.
-         //   criteria -
-         //     1. there's a higher rate available, AND
-         //     2. there was a rate-down happened, AND
-@@ -1179,8 +1157,8 @@
-         if ((UpRate != CurrRate)                              &&
-             (pAd->DrsCounters.LastSecTxRateChangeAction == 2) &&
-             (TxTotalCnt > 15) &&  // this line is to prevent the case that not enough TX sample causing PER=0%
--            (pAd->DrsCounters.PER[CurrRate] < 75) && 
--            ((pAd->DrsCounters.PER[CurrRate] > 20) || (pAd->DrsCounters.fNoisyEnvironment)) && 
-+            (pAd->DrsCounters.PER[CurrRate] < 75) &&
-+            ((pAd->DrsCounters.PER[CurrRate] > 20) || (pAd->DrsCounters.fNoisyEnvironment)) &&
-             ((pAd->DrsCounters.PER[CurrRate]+5) > pAd->DrsCounters.PER[UpRate]))
-         {
-             // we believe this is a noisy environment. better stay at UpRate
-@@ -1218,12 +1196,12 @@
- 
-             if (JumpUpRate > pAd->PortCfg.MaxTxRate)
-                 JumpUpRate = pAd->PortCfg.MaxTxRate;
--            
-+
-             DBGPRINT(RT_DEBUG_TRACE,"DRS: #### leave Noisy environment ####, RSSI=%d, JumpUpRate=%d\n",
- 
-             pAd->PortCfg.AvgRssi - RSSI_TO_DBM_OFFSET, RateIdToMbps[JumpUpRate]);
- 
--            
-+
-             if (JumpUpRate > CurrRate)
-             {
-                 pAd->PortCfg.TxRate = JumpUpRate;
-@@ -1231,15 +1209,15 @@
-             }
-         }
- 
--        // we're going to upgrade CurrRate to UpRate at next few seconds, 
--        // but before that, we'd better try a NULL frame @ UpRate and 
-+        // we're going to upgrade CurrRate to UpRate at next few seconds,
-+        // but before that, we'd better try a NULL frame @ UpRate and
-         // see if UpRate is stable or not. If this NULL frame fails, it will
-         // downgrade TxQuality[CurrRate], so that STA won't switch to
-         // to UpRate in the next second
-         // 2004-04-07 requested by David Tung - sent test frames only in OFDM rates
--        if (fUpgradeQuality      && 
--            INFRA_ON(pAd)        && 
--            (UpRate != CurrRate) && 
-+        if (fUpgradeQuality      &&
-+            INFRA_ON(pAd)        &&
-+            (UpRate != CurrRate) &&
-             (UpRate > RATE_11)   &&
-             (pAd->DrsCounters.TxQuality[CurrRate] <= 1) &&
-             (pAd->DrsCounters.TxQuality[UpRate] <= 1))
-@@ -1260,16 +1238,16 @@
- #endif
-            	pAd->PortCfg.TxRate = DownRate;
-         }
--        else if ((pAd->DrsCounters.TxQuality[CurrRate] <= 0) && 
-+        else if ((pAd->DrsCounters.TxQuality[CurrRate] <= 0) &&
-             (pAd->DrsCounters.TxQuality[UpRate] <=0)         &&
-             (CurrRate != UpRate))
-         {
-             pAd->PortCfg.TxRate = UpRate;
-         }
--        
-+
-     }while (FALSE);
- 
--    
-+
-     // if rate-up happen, clear all bad history of all TX rates
-     if (pAd->PortCfg.TxRate > CurrRate)
-     {
-@@ -1291,7 +1269,7 @@
-        	    pAd->DrsCounters.TxRateUpPenalty = 2;           // add 2 sec penalty
-        	else                                                // >= 8 sec
-        	    pAd->DrsCounters.TxRateUpPenalty = 0;           // no penalty
--       	    
-+
-         pAd->DrsCounters.CurrTxRateStableTime = 0;
-         pAd->DrsCounters.LastSecTxRateChangeAction = 2; // rate DOWN
-        	pAd->DrsCounters.TxQuality[pAd->PortCfg.TxRate] = 0;
-@@ -1299,7 +1277,7 @@
-     }
-     else
-         pAd->DrsCounters.LastSecTxRateChangeAction = 0; // rate no change
--    
-+
-     // reset all OneSecxxx counters
-     pAd->DrsCounters.OneSecTxFailCount = 0;
-     pAd->DrsCounters.OneSecTxOkCount = 0;
-@@ -1309,10 +1287,10 @@
- /*
-     ==========================================================================
-     Description:
--        This routine is executed periodically inside MlmePeriodicExec() after 
-+        This routine is executed periodically inside MlmePeriodicExec() after
-         association with an AP.
-         It checks if PortCfg.Psm is consistent with user policy (recorded in
--        PortCfg.WindowsPowerMode). If not, enforce user policy. However, 
-+        PortCfg.WindowsPowerMode). If not, enforce user policy. However,
-         there're some conditions to consider:
-         1. we don't support power-saving in ADHOC mode, so Psm=PWR_ACTIVE all
-            the time when Mibss==TRUE
-@@ -1334,7 +1312,7 @@
-     // 4. CNTL state machine is not doing SCANning
-     // 5. no TX SUCCESS event for the past period
-     PowerMode = pAd->PortCfg.WindowsPowerMode;
--    
-+
-     if (INFRA_ON(pAd) &&
-         (PowerMode != Ndis802_11PowerModeCAM) &&
-         (pAd->PortCfg.Psm == PWR_ACTIVE) &&
-@@ -1344,21 +1322,21 @@
-         MlmeSetPsmBit(pAd, PWR_SAVE);
-         EnqueueNullFrame(pAd, pAd->PortCfg.TxRate);
-     }
--    
-+
-     // latch current count for next-time comparison
-     pAd->Mlme.PrevTxCnt = pAd->WlanCounters.TransmittedFragmentCount.vv.LowPart;
- 
- }
- 
- VOID MlmeSetPsmBit(
--    IN PRTMP_ADAPTER pAd, 
-+    IN PRTMP_ADAPTER pAd,
-     IN USHORT psm)
- {
-     TXCSR7_STRUC txcsr7;
--    
-+
-     txcsr7.word = 0;
--    pAd->PortCfg.Psm = psm;    
--    
-+    pAd->PortCfg.Psm = psm;
-+
-     DBGPRINT(RT_DEBUG_TRACE, "MMCHK - change PSM bit to %d <<<\n", psm);
-     if (psm == PWR_SAVE)
-     {
-@@ -1373,14 +1351,14 @@
- }
- 
- VOID MlmeSetTxPreamble(
--    IN PRTMP_ADAPTER pAd, 
-+    IN PRTMP_ADAPTER pAd,
-     IN USHORT TxPreamble)
- {
-     ULONG Plcp1MCsr = 0x00700400;     // 0x13c, ACK/CTS PLCP at 1 Mbps
-     ULONG Plcp2MCsr = 0x00380401;     // 0x140, ACK/CTS PLCP at 2 Mbps
-     ULONG Plcp5MCsr = 0x00150402;     // 0x144, ACK/CTS PLCP at 5.5 Mbps
-     ULONG Plcp11MCsr = 0x000b8403;     // 0x148, ACK/CTS PLCP at 11 Mbps
--    
-+
-     if (TxPreamble == Rt802_11PreambleShort)
-     {
-         DBGPRINT(RT_DEBUG_TRACE, "MlmeSetTxPreamble (= SHORT PREAMBLE)\n");
-@@ -1401,7 +1379,7 @@
-     RTMP_IO_WRITE32(pAd, PLCP5MCSR, Plcp5MCsr);
-     RTMP_IO_WRITE32(pAd, PLCP11MCSR, Plcp11MCsr);
- }
--    
-+
- VOID MlmeUpdateTxRates(
-     IN PRTMP_ADAPTER pAd,
-     IN BOOLEAN		 bLinkUp)
-@@ -1436,14 +1414,14 @@
- 
-     // 2003-12-10 802.11g WIFI spec disallow OFDM rates in 802.11g ADHOC mode
-     if ((pAd->PortCfg.BssType == BSS_INDEP)        &&
--        (pAd->PortCfg.PhyMode == PHY_11BG_MIXED)   && 
-+        (pAd->PortCfg.PhyMode == PHY_11BG_MIXED)   &&
-         (pAd->PortCfg.AdhocMode == 0) &&
-         (MaxDesire > RATE_11))
-         MaxDesire = RATE_11;
--    
-+
-     pAd->PortCfg.MaxDesiredRate = MaxDesire;
--    
--    // Auto rate switching is enabled only if more than one DESIRED RATES are 
-+
-+    // Auto rate switching is enabled only if more than one DESIRED RATES are
-     // specified; otherwise disabled
-     if (num <= 1)
-         pAd->PortCfg.EnableAutoRateSwitching = FALSE;
-@@ -1455,66 +1433,66 @@
-     {
-         switch (pAd->PortCfg.SupportedRates[i] & 0x7f)
-         {
--            case 2: Rate = RATE_1;   
--                    if (pAd->PortCfg.SupportedRates[i] & 0x80) 
--                        BasicRateBitmap |= 0x0001;  
-+            case 2: Rate = RATE_1;
-+                    if (pAd->PortCfg.SupportedRates[i] & 0x80)
-+                        BasicRateBitmap |= 0x0001;
-                     break;
--            case 4: Rate = RATE_2;   
--                    if (pAd->PortCfg.SupportedRates[i] & 0x80) 
--                        BasicRateBitmap |= 0x0002;  
-+            case 4: Rate = RATE_2;
-+                    if (pAd->PortCfg.SupportedRates[i] & 0x80)
-+                        BasicRateBitmap |= 0x0002;
-                     break;
--            case 11: 
--                    Rate = RATE_5_5; 
--                    if (pAd->PortCfg.SupportedRates[i] & 0x80) 
--                        BasicRateBitmap |= 0x0004;  
-+            case 11:
-+                    Rate = RATE_5_5;
-+                    if (pAd->PortCfg.SupportedRates[i] & 0x80)
-+                        BasicRateBitmap |= 0x0004;
-                     break;
--            case 22: 
--                    Rate = RATE_11;  
--                    if (pAd->PortCfg.SupportedRates[i] & 0x80) 
--                        BasicRateBitmap |= 0x0008;  
-+            case 22:
-+                    Rate = RATE_11;
-+                    if (pAd->PortCfg.SupportedRates[i] & 0x80)
-+                        BasicRateBitmap |= 0x0008;
-                     break;
--            case 12: 
--                    Rate = RATE_6;   
--//                  if (pAd->PortCfg.SupportedRates[i] & 0x80) 
--                        BasicRateBitmap |= 0x0010;  
-+            case 12:
-+                    Rate = RATE_6;
-+//                  if (pAd->PortCfg.SupportedRates[i] & 0x80)
-+                        BasicRateBitmap |= 0x0010;
-                     break;
--            case 18: 
--                    Rate = RATE_9;   
--                    if (pAd->PortCfg.SupportedRates[i] & 0x80) 
--                        BasicRateBitmap |= 0x0020;  
-+            case 18:
-+                    Rate = RATE_9;
-+                    if (pAd->PortCfg.SupportedRates[i] & 0x80)
-+                        BasicRateBitmap |= 0x0020;
-                     break;
--            case 24: 
--                    Rate = RATE_12;  
--//                  if (pAd->PortCfg.SupportedRates[i] & 0x80) 
--                        BasicRateBitmap |= 0x0040;  
-+            case 24:
-+                    Rate = RATE_12;
-+//                  if (pAd->PortCfg.SupportedRates[i] & 0x80)
-+                        BasicRateBitmap |= 0x0040;
-                     break;
--            case 36: 
--                    Rate = RATE_18;  
--                    if (pAd->PortCfg.SupportedRates[i] & 0x80) 
--                        BasicRateBitmap |= 0x0080;  
-+            case 36:
-+                    Rate = RATE_18;
-+                    if (pAd->PortCfg.SupportedRates[i] & 0x80)
-+                        BasicRateBitmap |= 0x0080;
-                     break;
--            case 48: 
--                    Rate = RATE_24;  
--//                  if (pAd->PortCfg.SupportedRates[i] & 0x80) 
--                        BasicRateBitmap |= 0x0100;  
-+            case 48:
-+                    Rate = RATE_24;
-+//                  if (pAd->PortCfg.SupportedRates[i] & 0x80)
-+                        BasicRateBitmap |= 0x0100;
-                     break;
--            case 72: 
--                    Rate = RATE_36;  
--                    if (pAd->PortCfg.SupportedRates[i] & 0x80) 
--                        BasicRateBitmap |= 0x0200;  
-+            case 72:
-+                    Rate = RATE_36;
-+                    if (pAd->PortCfg.SupportedRates[i] & 0x80)
-+                        BasicRateBitmap |= 0x0200;
-                     break;
--            case 96: 
--                    Rate = RATE_48;  
--                    if (pAd->PortCfg.SupportedRates[i] & 0x80) 
--                        BasicRateBitmap |= 0x0400;  
-+            case 96:
-+                    Rate = RATE_48;
-+                    if (pAd->PortCfg.SupportedRates[i] & 0x80)
-+                        BasicRateBitmap |= 0x0400;
-                     break;
--            case 108: 
--                    Rate = RATE_54; 
--                    if (pAd->PortCfg.SupportedRates[i] & 0x80) 
--                        BasicRateBitmap |= 0x0800;  
-+            case 108:
-+                    Rate = RATE_54;
-+                    if (pAd->PortCfg.SupportedRates[i] & 0x80)
-+                        BasicRateBitmap |= 0x0800;
-                     break;
--            default:  
--                    Rate = RATE_1;   
-+            default:
-+                    Rate = RATE_1;
-                     break;
-         }
-         if (MaxSupport < Rate)  MaxSupport = Rate;
-@@ -1530,7 +1508,7 @@
-         pAd->PortCfg.ExpectedACKRate[i] = CurrBasicRate;
-         DBGPRINT(RT_DEBUG_INFO,"Expected ACK rate[%d] = %d Mbps\n", RateIdToMbps[i], RateIdToMbps[CurrBasicRate]);
-     }
--        
-+
-     // max tx rate = min {max desire rate, max supported rate}
-     if (MaxSupport < MaxDesire)
-         pAd->PortCfg.MaxTxRate = MaxSupport;
-@@ -1547,13 +1525,13 @@
-     {
-         if (pAd->PortCfg.Channel > 14)
-             pAd->PortCfg.TxRate = RATE_6; // 802.11a
--        else 
-+        else
-         {
-             short dbm = pAd->PortCfg.AvgRssi - pAd->PortCfg.RssiToDbm;
- 			if (bLinkUp == TRUE && pAd->PortCfg.MaxTxRate >= RATE_24)
- 				pAd->PortCfg.TxRate = RATE_24;
- 			else
--            	pAd->PortCfg.TxRate = pAd->PortCfg.MaxTxRate; 
-+            	pAd->PortCfg.TxRate = pAd->PortCfg.MaxTxRate;
-             if (dbm < -75)
-                 pAd->PortCfg.TxRate = RATE_11;
-             else if ((dbm < -70) && (pAd->PortCfg.TxRate > RATE_24))
-@@ -1568,7 +1546,7 @@
-         case PHY_11BG_MIXED:
-         case PHY_11B:
-             pAd->PortCfg.MlmeRate = RATE_2;
--#ifdef	WIFI_TEST			
-+#ifdef	WIFI_TEST
-             pAd->PortCfg.RtsRate = RATE_11;
- #else
-             pAd->PortCfg.RtsRate = RATE_2;
-@@ -1595,10 +1573,10 @@
-             pAd->PortCfg.RtsRate = RATE_2;
-             break;
-     }
--    
--    DBGPRINT(RT_DEBUG_TRACE, " MlmeUpdateTxRates (MaxDesire=%d, MaxSupport=%d, MaxTxRate=%d, Rate Switching =%d)\n", 
-+
-+    DBGPRINT(RT_DEBUG_TRACE, " MlmeUpdateTxRates (MaxDesire=%d, MaxSupport=%d, MaxTxRate=%d, Rate Switching =%d)\n",
-              RateIdToMbps[MaxDesire], RateIdToMbps[MaxSupport], RateIdToMbps[pAd->PortCfg.MaxTxRate], pAd->PortCfg.EnableAutoRateSwitching);
--    DBGPRINT(RT_DEBUG_TRACE, " MlmeUpdateTxRates (TxRate=%d, RtsRate=%d, BasicRateBitmap=0x%04x)\n", 
-+    DBGPRINT(RT_DEBUG_TRACE, " MlmeUpdateTxRates (TxRate=%d, RtsRate=%d, BasicRateBitmap=0x%04x)\n",
-              RateIdToMbps[pAd->PortCfg.TxRate], RateIdToMbps[pAd->PortCfg.RtsRate], BasicRateBitmap);
- }
- 
-@@ -1623,14 +1601,14 @@
- 	{
- 		ASIC_LED_ACT_OFF(pAd);
- 	}
--	
-+
- 	// Clean up old bss table
- 	BssTableInit(&pAd->PortCfg.BssTab);
- }
- 
- VOID MlmeRadioOn(
-     IN PRTMP_ADAPTER pAd)
--{	
-+{
- 	// Turn on radio
- 	RTMP_IO_WRITE32(pAd, PWRCSR0, 0x3f3b3100);
- 
-@@ -1665,12 +1643,12 @@
-  *  \post
-  */
- VOID BssTableInit(
--    IN BSS_TABLE *Tab) 
-+    IN BSS_TABLE *Tab)
- {
-     int i;
- 
-     Tab->BssNr = 0;
--    for (i = 0; i < MAX_LEN_OF_BSS_TABLE; i++) 
-+    for (i = 0; i < MAX_LEN_OF_BSS_TABLE; i++)
-     {
-         memset(&Tab->BssEntry[i], 0, sizeof(BSS_ENTRY));
-     }
-@@ -1678,23 +1656,23 @@
- 
- /*! \brief search the BSS table by SSID
-  *  \param p_tab pointer to the bss table
-- *  \param ssid SSID string 
-+ *  \param ssid SSID string
-  *  \return index of the table, BSS_NOT_FOUND if not in the table
-  *  \pre
-  *  \post
-  *  \note search by sequential search
-  */
- ULONG BssTableSearch(
--    IN BSS_TABLE *Tab, 
--    IN PMACADDR Bssid) 
-+    IN BSS_TABLE *Tab,
-+    IN PMACADDR Bssid)
- {
-     UCHAR i;
--    
--    for (i = 0; i < Tab->BssNr; i++) 
-+
-+    for (i = 0; i < Tab->BssNr; i++)
-     {
-         //printf("comparing %s and %s\n", p_tab->bss[i].ssid, ssid);
--        if (MAC_ADDR_EQUAL(&(Tab->BssEntry[i].Bssid), Bssid)) 
--        { 
-+        if (MAC_ADDR_EQUAL(&(Tab->BssEntry[i].Bssid), Bssid))
-+        {
-             return i;
-         }
-     }
-@@ -1702,15 +1680,15 @@
- }
- 
- VOID BssTableDeleteEntry(
--    IN OUT	BSS_TABLE *Tab, 
--    IN		PMACADDR Bssid) 
-+    IN OUT	BSS_TABLE *Tab,
-+    IN		PMACADDR Bssid)
- {
-     UCHAR i, j;
--    
--    for (i = 0; i < Tab->BssNr; i++) 
-+
-+    for (i = 0; i < Tab->BssNr; i++)
-     {
-         //printf("comparing %s and %s\n", p_tab->bss[i].ssid, ssid);
--        if (MAC_ADDR_EQUAL(&(Tab->BssEntry[i].Bssid), Bssid)) 
-+        if (MAC_ADDR_EQUAL(&(Tab->BssEntry[i].Bssid), Bssid))
-         {
-         	for (j = i; j < Tab->BssNr - 1; j++)
-         	{
-@@ -1724,36 +1702,63 @@
- 
- UCHAR	ZeroSsid[32] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
-+
-+static NDIS_802_11_WEP_STATUS setWepStatus(
-+		IN USHORT mask,							// Peer cipher capability set
-+		IN NDIS_802_11_WEP_STATUS WepStatus)	// local cipher selection
-+{
-+	static const unsigned char transtoieee[] = {
-+		CIPHER_TYPE_WEP104,0,0,0,CIPHER_TYPE_TKIP,0,CIPHER_TYPE_CCMP,0
-+	};
-+	static const unsigned char transtondis[] = {
-+		Ndis802_11EncryptionDisabled, Ndis802_11WEPEnabled,
-+		Ndis802_11Encryption2Enabled, Ndis802_11WEPKeyAbsent,
-+		Ndis802_11Encryption3Enabled, Ndis802_11WEPEnabled
-+	};
-+	NDIS_802_11_WEP_STATUS	wepstatus = Ndis802_11WEPDisabled;
-+	USHORT					suite = transtoieee[WepStatus];
-+
-+	DBGPRINT(RT_DEBUG_TRACE, " - (%s) mask 0x%04x wepstatus %d ieee %d\n",
-+			__FUNCTION__, mask, WepStatus, suite);
-+
-+	if (suite && (mask & 0x01 << suite)) {
-+		wepstatus = transtondis[suite];
-+	}
-+	return wepstatus;
-+
-+} /* End setWepStatus () */
-+
- /*! \brief
-- *  \param 
-+ *  \param
-  *  \return
-  *  \pre
-  *  \post
-  */
- VOID BssEntrySet(
--    IN	PRTMP_ADAPTER	pAd, 
--    OUT BSS_ENTRY *pBss, 
--    IN MACADDR *pBssid, 
--    IN CHAR Ssid[], 
--    IN UCHAR SsidLen, 
--    IN UCHAR BssType, 
--    IN USHORT BeaconPeriod, 
-+    IN	PRTMP_ADAPTER	pAd,
-+    OUT BSS_ENTRY *pBss,
-+    IN MACADDR *pBssid,
-+    IN CHAR Ssid[],
-+    IN UCHAR SsidLen,
-+    IN UCHAR BssType,
-+    IN USHORT BeaconPeriod,
-     IN BOOLEAN CfExist,
--    IN CF_PARM *pCfParm, 
--    IN USHORT AtimWin, 
--    IN USHORT CapabilityInfo, 
--    IN UCHAR Rates[], 
-+    IN CF_PARM *pCfParm,
-+    IN USHORT AtimWin,
-+    IN USHORT CapabilityInfo,
-+    IN UCHAR Rates[],
-     IN UCHAR RatesLen,
-     IN BOOLEAN ExtendedRateIeExist,
-     IN UCHAR Channel,
-     IN UCHAR Rssi,
-     IN UCHAR Noise,
-     IN LARGE_INTEGER TimeStamp,
--    IN PNDIS_802_11_VARIABLE_IEs pVIE) 
-+    IN USHORT VarIELen,               // Length of all saved IEs.
-+    IN PNDIS_802_11_VARIABLE_IEs pVIE)
- {
-     COPY_MAC_ADDR(&pBss->Bssid, pBssid);
- 	// Default Hidden SSID to be TRUE, it will be turned to FALSE after coping SSID
--	pBss->Hidden = 1;	
-+	pBss->Hidden = 1;
- 	if (SsidLen > 0)
- 	{
- 		// For hidden SSID AP, it might send beacon with SSID len equal to 0
-@@ -1769,17 +1774,17 @@
- 	}
-     pBss->BssType = BssType;
-     pBss->BeaconPeriod = BeaconPeriod;
--    if (BssType == BSS_INFRA) 
-+    if (BssType == BSS_INFRA)
-     {
--        if (CfExist) 
-+        if (CfExist)
-         {
-             pBss->CfpCount = pCfParm->CfpCount;
-             pBss->CfpPeriod = pCfParm->CfpPeriod;
-             pBss->CfpMaxDuration = pCfParm->CfpMaxDuration;
-             pBss->CfpDurRemaining = pCfParm->CfpDurRemaining;
-         }
--    } 
--    else 
-+    }
-+    else
-     {
-         pBss->AtimWin = AtimWin;
-     }
-@@ -1801,15 +1806,23 @@
- 	pBss->FixIEs.Capabilities = CapabilityInfo;
- 
- 	// New for microsoft Variable IEs
--	if (pVIE->Length != 0)
-+	pBss->VarIELen = VarIELen;
-+	if (VarIELen != 0)
- 	{
--		pBss->VarIELen = pVIE->Length + 2;
--		memcpy(pBss->VarIEs, pVIE, pBss->VarIELen);
--		pBss->WepStatus = BssCipherParse(pBss->VarIEs);
-+		memcpy(pBss->VarIEs, pVIE, VarIELen);
-+		pBss->CipherCap = BssCipherParse((PBEACON_EID_STRUCT)pBss->VarIEs,
-+										VarIELen);
-+		if (pBss->CipherCap & (0x01 << CIPHER_TYPE_GRP)) {
-+			pBss->WepStatus = setWepStatus(pBss->CipherCap >> 8,
-+											pAd->PortCfg.WepStatus);
-+		}
-+		else {
-+			pBss->WepStatus = setWepStatus(pBss->CipherCap,
-+											pAd->PortCfg.WepStatus);
-+		}
- 	}
- 	else
- 	{
--		pBss->VarIELen = 0;
- 		// No SSN ID, if security is on, this is WEP algorithm
- 		if  (pBss->Privacy)
- 			pBss->WepStatus = Ndis802_11WEPEnabled;
-@@ -1817,9 +1830,11 @@
- 		else
- 			pBss->WepStatus = Ndis802_11WEPDisabled;
- 	}
-+	DBGPRINT(RT_DEBUG_TRACE, "%s: Ndis WepStatus (Local=%d, Remote=%d)\n",
-+			__FUNCTION__, pAd->PortCfg.WepStatus, pBss->WepStatus);
- }
- 
--/*! 
-+/*!
-  *  \brief insert an entry into the bss table
-  *  \param p_tab The BSS table
-  *  \param Bssid BSSID
-@@ -1840,17 +1855,17 @@
-  *  \note If SSID is identical, the old entry will be replaced by the new one
-  */
- ULONG BssTableSetEntry(
--    IN	PRTMP_ADAPTER	pAd, 
--    OUT BSS_TABLE *Tab, 
--    IN MACADDR *Bssid, 
--    IN CHAR Ssid[], 
--    IN UCHAR SsidLen, 
--    IN UCHAR BssType, 
--    IN USHORT BeaconPeriod, 
--    IN BOOLEAN CfExist, 
--    IN CF_PARM *CfParm, 
--    IN USHORT AtimWin, 
--    IN USHORT CapabilityInfo, 
-+    IN	PRTMP_ADAPTER	pAd,
-+    OUT BSS_TABLE *Tab,
-+    IN MACADDR *Bssid,
-+    IN CHAR Ssid[],
-+    IN UCHAR SsidLen,
-+    IN UCHAR BssType,
-+    IN USHORT BeaconPeriod,
-+    IN BOOLEAN CfExist,
-+    IN CF_PARM *CfParm,
-+    IN USHORT AtimWin,
-+    IN USHORT CapabilityInfo,
-     IN UCHAR Rates[],
-     IN UCHAR RatesLen,
-     IN BOOLEAN ExtendedRateIeExist,
-@@ -1858,50 +1873,52 @@
-     IN UCHAR Rssi,
-     IN UCHAR Noise,
-     IN LARGE_INTEGER TimeStamp,
-+    IN USHORT VarIELen,          // Length of all saved IEs.
-     IN PNDIS_802_11_VARIABLE_IEs pVIE)
- {
-     ULONG   Idx;
-+
-     Idx = BssTableSearch(Tab, Bssid);
--    if (Idx == BSS_NOT_FOUND) 
-+    if (Idx == BSS_NOT_FOUND)
-     {
-         if (Tab->BssNr >= MAX_LEN_OF_BSS_TABLE)
-             return BSS_NOT_FOUND;
--            
-+
-         Idx = Tab->BssNr;
-         BssEntrySet(pAd, &Tab->BssEntry[Idx], Bssid, Ssid, SsidLen, BssType, BeaconPeriod,
-                     CfExist, CfParm, AtimWin, CapabilityInfo, Rates, RatesLen, ExtendedRateIeExist,
--                    ChannelNo, Rssi, Noise, TimeStamp, pVIE);
-+                    ChannelNo, Rssi, Noise, TimeStamp, VarIELen, pVIE);
-         Tab->BssNr++;
--    } 
-+    }
-     else
-     {
-         BssEntrySet(pAd, &Tab->BssEntry[Idx], Bssid, Ssid, SsidLen, BssType, BeaconPeriod,
-                     CfExist, CfParm, AtimWin, CapabilityInfo, Rates, RatesLen, ExtendedRateIeExist,
--                    ChannelNo, Rssi, Noise, TimeStamp, pVIE);
-+                    ChannelNo, Rssi, Noise, TimeStamp, VarIELen, pVIE);
-     }
--    
-+
-     return Idx;
- }
- 
- VOID BssTableSsidSort(
--    IN	PRTMP_ADAPTER	pAd, 
--    OUT BSS_TABLE *OutTab, 
--    IN  CHAR Ssid[], 
--    IN  UCHAR SsidLen) 
-+    IN	PRTMP_ADAPTER	pAd,
-+    OUT BSS_TABLE *OutTab,
-+    IN  CHAR Ssid[],
-+    IN  UCHAR SsidLen)
- {
-     INT i;
-     BssTableInit(OutTab);
- 
--    for (i = 0; i < pAd->PortCfg.BssTab.BssNr; i++) 
-+    for (i = 0; i < pAd->PortCfg.BssTab.BssNr; i++)
-     {
-         BSS_ENTRY *pInBss = &pAd->PortCfg.BssTab.BssEntry[i];
--        
--        if ((pInBss->BssType == pAd->PortCfg.BssType) && 
-+
-+        if ((pInBss->BssType == pAd->PortCfg.BssType) &&
- 			((pInBss->SsidLen==SsidLen) && RTMPEqualMemory(pInBss->Ssid, Ssid, (ULONG) SsidLen)))
-         {
-             BSS_ENTRY *pOutBss = &OutTab->BssEntry[OutTab->BssNr];
- 
--			// Bss Type matched, SSID matched. 
-+			// Bss Type matched, SSID matched.
- 			// We will check wepstatus for qualification Bss
- 			if (pAd->PortCfg.WepStatus != pInBss->WepStatus)
- 					continue;
-@@ -1911,24 +1928,24 @@
- 			// CCX also require not even try to connect it!!
- 			if (SsidLen == 0)
- 				continue;
--			
-+
-             // copy matching BSS from InTab to OutTab
-             memcpy(pOutBss, pInBss, sizeof(BSS_ENTRY));
--            
-+
-             OutTab->BssNr++;
-         }
-         else if ((pInBss->BssType == pAd->PortCfg.BssType) && (SsidLen == 0))
-         {
-             BSS_ENTRY *pOutBss = &OutTab->BssEntry[OutTab->BssNr];
- 
--			// Bss Type matched, SSID matched. 
-+			// Bss Type matched, SSID matched.
- 			// We will check wepstatus for qualification Bss
- 			if (pAd->PortCfg.WepStatus != pInBss->WepStatus)
- 					continue;
--			
-+
-             // copy matching BSS from InTab to OutTab
-             memcpy(pOutBss, pInBss, sizeof(BSS_ENTRY));
--            
-+
-             OutTab->BssNr++;
-         }
- #if 0
-@@ -1937,36 +1954,36 @@
- 			// Add for hidden SSID. But we have to verify the security suite too.
-             BSS_ENTRY *pOutBss = &OutTab->BssEntry[OutTab->BssNr];
- 
--			// Bss Type matched, SSID matched. 
-+			// Bss Type matched, SSID matched.
- 			// We will check wepstatus for qualification Bss
- 			if (pAd->PortCfg.WepStatus != pInBss->WepStatus)
- 					continue;
--			
-+
-             // copy matching BSS from InTab to OutTab
-             memcpy(pOutBss, pInBss, sizeof(BSS_ENTRY));
--            
--            OutTab->BssNr++;			
-+
-+            OutTab->BssNr++;
- 		}
--#endif		
-+#endif
- 		if (OutTab->BssNr >= MAX_LEN_OF_BSS_TABLE)
- 			break;
--		
-+
-     }
--    
-+
-     BssTableSortByRssi(OutTab);
- }
- 
- VOID BssTableSortByRssi(
--    IN OUT BSS_TABLE *OutTab) 
-+    IN OUT BSS_TABLE *OutTab)
- {
-     INT       i, j;
-     BSS_ENTRY TmpBss;
- 
--    for (i = 0; i < OutTab->BssNr - 1; i++) 
-+    for (i = 0; i < OutTab->BssNr - 1; i++)
-     {
--        for (j = i+1; j < OutTab->BssNr; j++) 
-+        for (j = i+1; j < OutTab->BssNr; j++)
-         {
--            if (OutTab->BssEntry[j].Rssi > OutTab->BssEntry[i].Rssi) 
-+            if (OutTab->BssEntry[j].Rssi > OutTab->BssEntry[i].Rssi)
-             {
-                 memcpy(&TmpBss, &OutTab->BssEntry[j], sizeof(BSS_ENTRY));
-                 memcpy(&OutTab->BssEntry[j], &OutTab->BssEntry[i], sizeof(BSS_ENTRY));
-@@ -1976,34 +1993,178 @@
-     }
- }
- 
--NDIS_802_11_WEP_STATUS	BssCipherParse(
--	IN	PUCHAR	pCipher)
-+/*
-+ * ============================================================================
-+ * Description:
-+ * 		Scan cipher suite list and return cipher capability set.
-+ * ============================================================================
-+ */
-+static USHORT scan_csl(
-+		IN suite_list_t *psl,
-+		IN USHORT curtype)
- {
--	PBEACON_EID_STRUCT	pEid;
--	PUCHAR				pTmp;
-+	USHORT	ciphertype = curtype;	// Cipher "capability set"
-+	int		i, j;
-+
-+	DBGPRINT(RT_DEBUG_TRACE, " -  scan %d pair cipher(s)\n", psl->count);
-+
-+	for (i = 0, j = psl->count; i < j; i++) {
- 
--	pEid = (PBEACON_EID_STRUCT) pCipher;
-+		if (psl->suite[i].type < NUM_CIPHER_TYPES) {
-+			ciphertype |= 0x01 << psl->suite[i].type;
-+		}
-+		else {
-+			DBGPRINT(RT_DEBUG_ERROR, " -  invalid pair cipher type %d\n",
-+					psl->suite[i].type);
-+		}
-+		DBGPRINT(RT_DEBUG_TRACE, " -  (pair) CipherType now=0x%04x\n",
-+				ciphertype);
-+	}
-+	return ciphertype;
- 
--	// Double check sanity information, although it should be done at peer beacon sanity check already.
--	if (pEid->Eid != IE_WPA)
--		return (Ndis802_11WEPDisabled);
--
--	// Double check Var IE length, it must be no less than 0x16
--	if (pEid->Len < 0x16)
--		return (Ndis802_11WEPDisabled);
--	
--	// Skip OUI, version, and multicast suite
--	// This part should be improved in the future when AP supported multiple cipher suite.
--	// For now, it's OK since almost all APs have fixed cipher suite supported.
--	pTmp = (PUCHAR) pEid->Octet;
--	pTmp += 9;
--
--	if (*pTmp == 4)			// AES
--		return (Ndis802_11Encryption3Enabled);
--	else if (*pTmp == 2)	// TKIP
--		return (Ndis802_11Encryption2Enabled);
-+} /* End scan_csl () */
-+
-+USHORT	BssCipherParse(
-+	IN	PBEACON_EID_STRUCT	pEid,
-+    IN USHORT           VarIELen)	// Length of all saved IEs.
-+{
-+	USHORT				ciphertype = 0;
-+	PBEACON_EID_STRUCT	ptEid;
-+	USHORT              len;
-+
-+	DBGPRINT(RT_DEBUG_TRACE, "%s: using VarIELen=%d\n", __FUNCTION__, VarIELen);
-+
-+	// Handle the stinerman problem (a too-short WPA IE followed by
-+	// a long-enough WPA IE from an AP), the onishin/dacull problem
-+	// (a RSN - WPA2 - IE followed by a WPA1 IE from an AP), and the
-+	// holtzmichel problem (a WPA1 IE followed by a WPA2 IE). We end
-+	// up using the *last* one we find. This may (or may not) really
-+	// be the thing to do. - bb
-+	for (ptEid = pEid, len = 0; len < VarIELen;
-+			len += ptEid->Len + 2,
-+			ptEid = (PBEACON_EID_STRUCT)((UCHAR *)pEid + len)) {
-+
-+		DBGPRINT(RT_DEBUG_TRACE, " - examining IE=%d, Len=%d\n",
-+				ptEid->Eid, ptEid->Len);
-+
-+		switch (ptEid->Eid) {
-+			default:
-+				DBGPRINT(RT_DEBUG_ERROR, " -  Not a WPA/WPA2 IE=%d, Len=%d\n",
-+						ptEid->Eid, ptEid->Len);
-+				break;
-+
-+			case IE_WPA: {
-+				#define p ((PRSN_EID_STRUCT)ptEid)
-+
-+				// Double check Var IE length, it must be no less than 0x16
-+				// Silently ignore if not
-+				if (ptEid->Len < 0x16) {
-+					DBGPRINT(RT_DEBUG_ERROR, " -  Len %d too short\n",
-+							ptEid->Len);
-+					break;
-+				}
-+				// Skip OUI, version, and multicast suite
-+				// This part should be improved in the future when AP
-+				// supported multiple cipher suite. For now, it's OK since
-+				// almost all APs have fixed cipher suite supported.
-+				// (The future is now - bb)
-+				if (p->Multicast[3] < NUM_CIPHER_TYPES) {
-+					ciphertype |= 0x100 << p->Multicast[3];
-+				}
-+				else {
-+					DBGPRINT(RT_DEBUG_ERROR,
-+							" -  IE_WPA invalid group cipher %d\n",
-+							p->Multicast[3]);
-+				}
-+				DBGPRINT(RT_DEBUG_TRACE, " -  WPA CipherType now=0x%04x\n",
-+						ciphertype);
- 
--	return (Ndis802_11WEPDisabled);
-+				if (p->Length >= sizeof(RSN_EID_STRUCT) -
-+					offsetof(RSN_EID_STRUCT, Oui)) {
-+					suite_list_p psl = (suite_list_p)((UCHAR *)p +
-+							offsetof(RSN_EID_STRUCT, Count));
-+
-+					if (psl->count * sizeof(suite_sel_t) +
-+						offsetof(RSN_EID_STRUCT,Count) -
-+						offsetof(RSN_EID_STRUCT,Oui) >
-+						p->Length) {
-+						DBGPRINT(RT_DEBUG_ERROR,
-+								" -  malformed WPA pair cipher count "
-+								"(needs %d bytes, %d bytes avail)\n",
-+								psl->count*sizeof(suite_sel_t) +
-+								offsetof(RSN_EID_STRUCT,Count) -
-+								offsetof(RSN_EID_STRUCT,Oui),
-+								p->Length);
-+						break;
-+					}
-+					ciphertype = scan_csl(psl, ciphertype);
-+				}
-+				else {
-+					ciphertype |= 0x01;		// Indicate use group cipher
-+				}
-+				#undef p
-+				break;
-+			}
-+			case IE_RSN: {			// 802.11i pp. 27 - 32
-+				#define p ((rsn_ie_p)ptEid)
-+
-+				if (p->length == sizeof(p->version)) {
-+					ciphertype = 0x01 | 0x100 << CIPHER_TYPE_CCMP;
-+					break;
-+				}
-+				if (p->length >= sizeof(p->version) + sizeof(p->gcsuite)) {
-+
-+					// Right now, we use the group cipher suite since it
-+					// appears (to me, at any rate) that that's what is
-+					// being used from the WPA IE.
-+					// (SWAG - cf. RSN_EID_STRUCT - is that WPA_IE is RSN_IE
-+					// with 4 bytes in front of the version tag. So we
-+					// use the group cipher suite ala case IE_WPA above.)
-+					// cf. the Holtzmichel problem: Looks like the Sinus 154
-+					// Basic 3 includes either 3 pairwise cipher suites, or
-+					// 1 pairwise cipher suite, 1 AKM suite, and an RSN
-+					// capabilities field, because the len is 20.
-+					if (p->gcsuite.type < NUM_CIPHER_TYPES) {
-+						ciphertype |= 0x100 << p->gcsuite.type;
-+					}
-+					else {
-+						DBGPRINT(RT_DEBUG_ERROR,
-+								" -  IE_RSN invalid group cipher %d\n",
-+								p->gcsuite.type);
-+					}
-+					DBGPRINT(RT_DEBUG_TRACE,
-+							" -  (grp) CipherType now=0x%04x\n", ciphertype);
-+				}
-+				if (p->length > sizeof(p->version) + sizeof(p->gcsuite)) {
-+					suite_list_p psl = (suite_list_p)((UCHAR *)p +
-+							offsetof(rsn_ie_t, version) +
-+							sizeof(ie_version_t) + sizeof(suite_sel_t));
-+
-+					if (psl->count * sizeof(suite_sel_t) +
-+						sizeof(ie_version_t) + sizeof(suite_sel_t) >
-+						p->length) {
-+						DBGPRINT(RT_DEBUG_ERROR,
-+								" -  malformed RSN pair cipher count "
-+								"(needs %d bytes, %d bytes avail)\n",
-+								psl->count*sizeof(suite_sel_t) +
-+								sizeof(ie_version_t) + sizeof(suite_sel_t),
-+								p->length);
-+						break;
-+					}
-+					ciphertype = scan_csl(psl, ciphertype);
-+				}
-+				else {
-+					ciphertype |= 0x01;		// Indicate use group cipher
-+				}
-+				#undef p
-+				break;
-+			} /* End case IE_RSN */
-+		} /* End switch EID */
-+	} /* End for () */
-+
-+	DBGPRINT(RT_DEBUG_TRACE, "%s: return CipherType=0x%04x\n",
-+			__FUNCTION__, ciphertype);
-+	return ciphertype;
- }
- 
- // ===========================================================================================
-@@ -2017,16 +2178,16 @@
-  *  \post
-  */
- VOID MacAddrRandomBssid(
--    IN PRTMP_ADAPTER pAd, 
--    OUT MACADDR *Addr) 
-+    IN PRTMP_ADAPTER pAd,
-+    OUT MACADDR *Addr)
- {
-     INT i;
- 
--    for (i = 0; i < ETH_ALEN; i++) 
-+    for (i = 0; i < ETH_ALEN; i++)
-     {
-         Addr->Octet[i] = RandomByte(pAd);
-     }
--    
-+
-     Addr->Octet[0] = (Addr->Octet[0] & 0xfe) | 0x02;  // the first 2 bits must be 01xxxxxxxx
- }
- 
-@@ -2042,12 +2203,12 @@
-  *  \note this function initializes the following field
-  */
- VOID MgtMacHeaderInit(
--    IN	PRTMP_ADAPTER	pAd, 
--    IN OUT PMACHDR Hdr, 
--    IN UCHAR Subtype, 
--    IN UCHAR ToDs, 
--    IN PMACADDR Ds, 
--    IN PMACADDR Bssid) 
-+    IN	PRTMP_ADAPTER	pAd,
-+    IN OUT PMACHDR Hdr,
-+    IN UCHAR Subtype,
-+    IN UCHAR ToDs,
-+    IN PMACADDR Ds,
-+    IN PMACADDR Bssid)
- {
-     memset(Hdr, 0, sizeof(MACHDR));
-     Hdr->Type = BTYPE_MGMT;
-@@ -2063,8 +2224,8 @@
- // ===========================================================================================
- 
- /*!***************************************************************************
-- * This routine build an outgoing frame, and fill all information specified 
-- * in argument list to the frame body. The actual frame size is the summation 
-+ * This routine build an outgoing frame, and fill all information specified
-+ * in argument list to the frame body. The actual frame size is the summation
-  * of all arguments.
-  * input params:
-  *      Buffer - pointer to a pre-allocated memory segment
-@@ -2073,12 +2234,12 @@
-  *                         function will FAIL!!!
-  * return:
-  *      Size of the buffer
-- * usage:  
-+ * usage:
-  *      MakeOutgoingFrame(Buffer, output_length, 2, &fc, 2, &dur, 6, p_addr1, 6,p_addr2, END_OF_ARGS);
-  ****************************************************************************/
- ULONG MakeOutgoingFrame(
--    OUT CHAR *Buffer, 
--    OUT ULONG *FrameLen, ...) 
-+    OUT CHAR *Buffer,
-+    OUT ULONG *FrameLen, ...)
- {
-     CHAR   *p;
-     int     leng;
-@@ -2088,10 +2249,10 @@
-     // calculates the total length
-     TotLeng = 0;
-     va_start(Args, FrameLen);
--    do 
-+    do
-     {
-         leng = va_arg(Args, int);
--        if (leng == END_OF_ARGS) 
-+        if (leng == END_OF_ARGS)
-         {
-             break;
-         }
-@@ -2117,7 +2278,7 @@
-  *  \note   Because this is done only once (at the init stage), no need to be locked
-  */
- NDIS_STATUS MlmeQueueInit(
--    IN MLME_QUEUE *Queue) 
-+    IN MLME_QUEUE *Queue)
- {
-     INT i;
- 
-@@ -2127,7 +2288,7 @@
-     Queue->Head = 0;
-     Queue->Tail = 0;
- 
--    for (i = 0; i < MAX_LEN_OF_MLME_QUEUE; i++) 
-+    for (i = 0; i < MAX_LEN_OF_MLME_QUEUE; i++)
-     {
-         Queue->Entry[i].Occupied = FALSE;
-         Queue->Entry[i].MsgLen = 0;
-@@ -2150,11 +2311,11 @@
-  *  \note    The message has to be initialized
-  */
- BOOLEAN MlmeEnqueue(
--    OUT MLME_QUEUE *Queue, 
--    IN ULONG Machine, 
--    IN ULONG MsgType, 
--    IN ULONG MsgLen, 
--    IN VOID *Msg) 
-+    OUT MLME_QUEUE *Queue,
-+    IN ULONG Machine,
-+    IN ULONG MsgType,
-+    IN ULONG MsgLen,
-+    IN VOID *Msg)
- {
-     INT Tail;
-     unsigned long flags;
-@@ -2164,30 +2325,25 @@
-         DBGPRINT(RT_DEBUG_ERROR, "MlmeEnqueueForRecv mlme frame too large, size = %d \n", MsgLen);
- 		return FALSE;
- 	}
--	
--    spin_lock_irqsave(&(Queue->Lock), flags);
--    if (MlmeQueueFull(Queue)) 
--    {
-+
-+    spin_lock_irqsave(&Queue->Lock, flags);
-+    if (Queue->Num == MAX_LEN_OF_MLME_QUEUE) {
-+		spin_unlock_irqrestore(&Queue->Lock, flags);
-         printk(KERN_ERR DRV_NAME "MlmeEnqueue full, msg dropped and may corrupt MLME\n");
--	spin_unlock_irqrestore(&(Queue->Lock), flags);
-         return FALSE;
-     }
--
--    Tail = Queue->Tail;
--    Queue->Tail++;
-+    Tail = Queue->Tail++;
-+    Queue->Tail %= MAX_LEN_OF_MLME_QUEUE;
-     Queue->Num++;
--    if (Queue->Tail == MAX_LEN_OF_MLME_QUEUE) 
--    {
--        Queue->Tail = 0;
--    }
-+    spin_unlock_irqrestore(&Queue->Lock, flags);
-     DBGPRINT(RT_DEBUG_INFO, "MlmeEnqueue, num=%d\n",Queue->Num);
-- 
-+
-     Queue->Entry[Tail].Occupied = TRUE;
-     Queue->Entry[Tail].Machine = Machine;
-     Queue->Entry[Tail].MsgType = MsgType;
-     Queue->Entry[Tail].MsgLen  = MsgLen;
--    memcpy(Queue->Entry[Tail].Msg, Msg, MsgLen);
--    spin_unlock_irqrestore(&(Queue->Lock), flags);
-+    if (Msg != NULL)
-+	memcpy(Queue->Entry[Tail].Msg, Msg, MsgLen);
-     return TRUE;
- }
- 
-@@ -2203,14 +2359,14 @@
-  *  \post
-  */
- BOOLEAN MlmeEnqueueForRecv(
--    IN	PRTMP_ADAPTER	pAd, 
--    OUT MLME_QUEUE *Queue, 
--    IN ULONG TimeStampHigh, 
-+    IN	PRTMP_ADAPTER	pAd,
-+    OUT MLME_QUEUE *Queue,
-+    IN ULONG TimeStampHigh,
-     IN ULONG TimeStampLow,
-     IN UCHAR Rssi,
--    IN UCHAR Noise, 
--    IN ULONG MsgLen, 
--    IN VOID *Msg) 
-+    IN UCHAR Noise,
-+    IN ULONG MsgLen,
-+    IN VOID *Msg)
- {
-     INT          Tail, Machine;
-     MACFRAME    *Fr = (MACFRAME *)Msg;
-@@ -2225,31 +2381,25 @@
- 	}
- 
- 
--    if (!MsgTypeSubst(Fr, &Machine, &MsgType)) 
-+    if (!MsgTypeSubst(Fr, &Machine, &MsgType))
-     {
-         DBGPRINT(RT_DEBUG_ERROR, "MlmeEnqueueForRecv (drop mgmt->subtype=%d)\n",Fr->Hdr.SubType);
-         return FALSE;
-     }
- 
--    spin_lock_irqsave(&(Queue->Lock), flags);
--    if (MlmeQueueFull(Queue)) 
--    {
-+    spin_lock_irqsave(&Queue->Lock, flags);
-+    if (Queue->Num == MAX_LEN_OF_MLME_QUEUE) {
-+		spin_unlock_irqrestore(&Queue->Lock, flags);
-         DBGPRINT(RT_DEBUG_ERROR, "MlmeEnqueueForRecv (queue full error) \n");
--	spin_unlock_irqrestore(&(Queue->Lock), flags);
-         return FALSE;
-     }
--    
--    // OK, we got all the informations, it is time to put things into queue
--    Tail = Queue->Tail;
--    Queue->Tail++;
-+    Tail = Queue->Tail++;
-+    Queue->Tail %= MAX_LEN_OF_MLME_QUEUE;
-     Queue->Num++;
--    if (Queue->Tail == MAX_LEN_OF_MLME_QUEUE) 
--    {
--        Queue->Tail = 0;
--    }
--
-+    spin_unlock_irqrestore(&Queue->Lock, flags);
-     DBGPRINT(RT_DEBUG_INFO, "MlmeEnqueueForRecv, num=%d\n",Queue->Num);
--    
-+
-+    // OK, we got all the informations, it is time to put things into queue
-     Queue->Entry[Tail].Occupied = TRUE;
-     Queue->Entry[Tail].Machine = Machine;
-     Queue->Entry[Tail].MsgType = MsgType;
-@@ -2258,8 +2408,8 @@
-     Queue->Entry[Tail].TimeStamp.vv.HighPart = TimeStampHigh;
-     Queue->Entry[Tail].Rssi = Rssi;
-     Queue->Entry[Tail].Noise = (Noise > BBP_R17_DYNAMIC_UP_BOUND) ? BBP_R17_DYNAMIC_UP_BOUND : ((ULONG) Noise);
--    memcpy(Queue->Entry[Tail].Msg, Msg, MsgLen);
--    spin_unlock_irqrestore(&(Queue->Lock), flags);
-+    if (Msg != NULL)
-+	memcpy(Queue->Entry[Tail].Msg, Msg, MsgLen);
- 
-     MlmeHandler(pAd);
- 
-@@ -2267,6 +2417,7 @@
- }
- 
- /*! \brief   Dequeue a message from the MLME Queue
-+ * 			WARNING: Must be call with Mlme.Queue.Lock held
-  *  \param  *Queue    The MLME Queue
-  *  \param  *Elem     The message dequeued from MLME Queue
-  *  \return  TRUE if the Elem contains something, FALSE otherwise
-@@ -2274,23 +2425,14 @@
-  *  \post
-  */
- BOOLEAN MlmeDequeue(
--    IN MLME_QUEUE *Queue, 
--    OUT MLME_QUEUE_ELEM **Elem) 
-+    IN MLME_QUEUE *Queue,
-+    OUT MLME_QUEUE_ELEM **Elem)
- {
--    unsigned long flags;
--    spin_lock_irqsave(&(Queue->Lock), flags);
--    if (Queue->Num == 0) {
--	    spin_unlock_irqrestore(&(Queue->Lock),flags);
-+    if (Queue->Num == 0)
- 	    return FALSE;
--    }
--    *Elem = &(Queue->Entry[Queue->Head]);
-+    *Elem = &Queue->Entry[Queue->Head++];
-+    Queue->Head %= MAX_LEN_OF_MLME_QUEUE;
-     Queue->Num--;
--    Queue->Head++;
--    if (Queue->Head == MAX_LEN_OF_MLME_QUEUE) 
--    {
--        Queue->Head = 0;
--    }
--    spin_unlock_irqrestore(&(Queue->Lock), flags);
-     DBGPRINT(RT_DEBUG_INFO, "MlmeDequeue, num=%d\n",Queue->Num);
- 
-     return TRUE;
-@@ -2308,29 +2450,27 @@
- 		DBGPRINT(RT_DEBUG_ERROR, "Failure to initialize mlme.\n");
- 	// Continue the reset procedure...
-     }
--   
-+
-     spin_lock_irqsave(&pAd->Mlme.TaskLock, flags);
--    if(pAd->Mlme.Running) 
-+    if(pAd->Mlme.Running)
-     {
-         spin_unlock_irqrestore(&pAd->Mlme.TaskLock, flags);
-         return;
--    } 
--    else 
-+    }
-+    else
-     {
-         pAd->Mlme.Running = TRUE;
-     }
-     spin_unlock_irqrestore(&pAd->Mlme.TaskLock, flags);
- 
- 	// Remove all Mlme queues elements
--    while (MlmeDequeue(&pAd->Mlme.Queue, &Elem)) 
--    {
--        //From message type, determine which state machine I should drive
--
--            // free MLME element
--            Elem->Occupied = FALSE;
--            Elem->MsgLen = 0;
--            
--        }
-+    spin_lock_irqsave(&pAd->Mlme.Queue.Lock, flags);
-+    while (MlmeDequeue(&pAd->Mlme.Queue, &Elem)) {
-+        // free MLME element
-+        Elem->Occupied = FALSE;
-+        Elem->MsgLen = 0;
-+    }
-+	spin_unlock_irqrestore(&pAd->Mlme.Queue.Lock, flags);
- 
- 	// Cancel all timer events
- 	// Be careful to cancel new added timer
-@@ -2356,54 +2496,22 @@
- 	pAd->Mlme.AuthMachine.CurrState    = AUTH_REQ_IDLE;
- 	pAd->Mlme.AuthRspMachine.CurrState = AUTH_RSP_IDLE;
- 	pAd->Mlme.SyncMachine.CurrState    = SYNC_IDLE;
--	
-+
- 	// Remove running state
-     spin_lock_irqsave(&pAd->Mlme.TaskLock, flags);
-     pAd->Mlme.Running = FALSE;
-     spin_unlock_irqrestore(&pAd->Mlme.TaskLock, flags);
- }
- 
--/*! \brief  test if the MLME Queue is empty
-- *  \param  *Queue    The MLME Queue
-- *  \return TRUE if the Queue is empty, FALSE otherwise
-- *  \pre
-- *  \post
-- */
--BOOLEAN MlmeQueueEmpty(
--    IN MLME_QUEUE *Queue) 
--{
--    BOOLEAN Ans;
--
--    Ans = (Queue->Num == 0);
--
--    return Ans;
--}
--
--/*! \brief   test if the MLME Queue is full
-- *  \param   *Queue      The MLME Queue
-- *  \return  TRUE if the Queue is empty, FALSE otherwise
-- *  \pre
-- *  \post
-- */
--BOOLEAN MlmeQueueFull(
--    IN MLME_QUEUE *Queue) 
--{
--    BOOLEAN Ans;
--
--    Ans = (Queue->Num == MAX_LEN_OF_MLME_QUEUE);
--
--    return Ans;
--}
--
- /*! \brief   The destructor of MLME Queue
-- *  \param 
-+ *  \param
-  *  \return
-  *  \pre
-  *  \post
-  *  \note   Clear Mlme Queue, Set Queue->Num to Zero.
-  */
- VOID MlmeQueueDestroy(
--    IN MLME_QUEUE *Queue) 
-+    IN MLME_QUEUE *Queue)
- {
-     unsigned long flags;
-     spin_lock_irqsave(&(Queue->Lock), flags);
-@@ -2422,22 +2530,22 @@
-  *  \post
-  */
- BOOLEAN MsgTypeSubst(
--    IN MACFRAME *Fr, 
--    OUT INT *Machine, 
--    OUT INT *MsgType) 
-+    IN MACFRAME *Fr,
-+    OUT INT *Machine,
-+    OUT INT *MsgType)
- {
-     USHORT Seq;
- 	UCHAR	EAPType;
- 
- 	// The only data type will pass to this function is EAPOL frame
--    if (Fr->Hdr.Type == BTYPE_DATA) 
--    {    
-+    if (Fr->Hdr.Type == BTYPE_DATA)
-+    {
-        	*Machine = WPA_PSK_STATE_MACHINE;
-        	EAPType = *((UCHAR*)Fr + LENGTH_802_11 + LENGTH_802_1_H + 1);
-        	return(WpaMsgTypeSubst(EAPType, MsgType));
-     }
- 
--    switch (Fr->Hdr.SubType) 
-+    switch (Fr->Hdr.SubType)
-     {
-         case SUBTYPE_ASSOC_REQ:
-             *Machine = ASSOC_STATE_MACHINE;
-@@ -2478,17 +2586,17 @@
-         case SUBTYPE_AUTH:
-             // get the sequence number from payload 24 Mac Header + 2 bytes algorithm
-             memcpy(&Seq, &Fr->Octet[2], sizeof(USHORT));
--            if (Seq == 1 || Seq == 3) 
-+            if (Seq == 1 || Seq == 3)
-             {
-                 *Machine = AUTH_RSP_STATE_MACHINE;
-                 *MsgType = MT2_PEER_AUTH_ODD;
--            } 
--            else if (Seq == 2 || Seq == 4) 
-+            }
-+            else if (Seq == 2 || Seq == 4)
-             {
-                 *Machine = AUTH_STATE_MACHINE;
-                 *MsgType = MT2_PEER_AUTH_EVEN;
--            } 
--            else 
-+            }
-+            else
-             {
-                 return FALSE;
-             }
-@@ -2510,25 +2618,25 @@
- // ===========================================================================================
- 
- /*! \brief Initialize the state machine.
-- *  \param *S           pointer to the state machine 
-+ *  \param *S           pointer to the state machine
-  *  \param  Trans       State machine transition function
-- *  \param  StNr        number of states 
-- *  \param  MsgNr       number of messages 
-- *  \param  DefFunc     default function, when there is invalid state/message combination 
-- *  \param  InitState   initial state of the state machine 
-+ *  \param  StNr        number of states
-+ *  \param  MsgNr       number of messages
-+ *  \param  DefFunc     default function, when there is invalid state/message combination
-+ *  \param  InitState   initial state of the state machine
-  *  \param  Base        StateMachine base, internal use only
-  *  \pre p_sm should be a legal pointer
-  *  \post
-  */
- 
- VOID StateMachineInit(
--    IN STATE_MACHINE *S, 
--    IN STATE_MACHINE_FUNC Trans[], 
--    IN ULONG StNr, 
--    IN ULONG MsgNr, 
--    IN STATE_MACHINE_FUNC DefFunc, 
--    IN ULONG InitState, 
--    IN ULONG Base) 
-+    IN STATE_MACHINE *S,
-+    IN STATE_MACHINE_FUNC Trans[],
-+    IN ULONG StNr,
-+    IN ULONG MsgNr,
-+    IN STATE_MACHINE_FUNC DefFunc,
-+    IN ULONG InitState,
-+    IN ULONG Base)
- {
-     ULONG i, j;
- 
-@@ -2538,22 +2646,22 @@
-     S->Base    = Base;
- 
-     S->TransFunc  = Trans;
--    
-+
-     // init all state transition to default function
--    for (i = 0; i < StNr; i++) 
-+    for (i = 0; i < StNr; i++)
-     {
--        for (j = 0; j < MsgNr; j++) 
-+        for (j = 0; j < MsgNr; j++)
-         {
-             S->TransFunc[i * MsgNr + j] = DefFunc;
-         }
-     }
--    
-+
-     // set the starting state
-     S->CurrState = InitState;
- 
- }
- 
--/*! \brief This function fills in the function pointer into the cell in the state machine 
-+/*! \brief This function fills in the function pointer into the cell in the state machine
-  *  \param *S   pointer to the state machine
-  *  \param St   state
-  *  \param Msg  incoming message
-@@ -2562,20 +2670,20 @@
-  *  \post
-  */
- VOID StateMachineSetAction(
--    IN STATE_MACHINE *S, 
--    IN ULONG St, 
--    IN ULONG Msg, 
--    IN STATE_MACHINE_FUNC Func) 
-+    IN STATE_MACHINE *S,
-+    IN ULONG St,
-+    IN ULONG Msg,
-+    IN STATE_MACHINE_FUNC Func)
- {
-     ULONG MsgIdx;
--    
-+
-     MsgIdx = Msg - S->Base;
- 
--    if (St < S->NrState && MsgIdx < S->NrMsg) 
-+    if (St < S->NrState && MsgIdx < S->NrMsg)
-     {
-         // boundary checking before setting the action
-         S->TransFunc[St * S->NrMsg + MsgIdx] = Func;
--    } 
-+    }
- }
- 
- /*! \brief   The destructor of the state machine
-@@ -2583,7 +2691,7 @@
-  *  \note    doing nothing at this moment, may need to do something if the implementation changed
-  */
- VOID
--StateMachineDestroy(IN STATE_MACHINE *S) 
-+StateMachineDestroy(IN STATE_MACHINE *S)
- {
- }
- 
-@@ -2594,9 +2702,9 @@
-  *  \return   None
-  */
- VOID StateMachinePerformAction(
--    IN	PRTMP_ADAPTER	pAd, 
--    IN STATE_MACHINE *S, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN	PRTMP_ADAPTER	pAd,
-+    IN STATE_MACHINE *S,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     (*(S->TransFunc[S->CurrState * S->NrMsg + Elem->MsgType - S->Base]))(pAd, Elem);
- }
-@@ -2604,14 +2712,14 @@
- /*
-     ==========================================================================
-     Description:
--        The drop function, when machine executes this, the message is simply 
--        ignored. This function does nothing, the message is freed in 
-+        The drop function, when machine executes this, the message is simply
-+        ignored. This function does nothing, the message is freed in
-         StateMachinePerformAction()
-     ==========================================================================
-  */
- VOID Drop(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
- #if 0
-     if ((Elem->MsgType == MT2_PEER_BEACON) ||
-@@ -2622,7 +2730,7 @@
-     {
-         DBGPRINT(RT_DEBUG_TRACE, ("Warn:>>Drop Msg=%d<<\n",Elem->MsgType));
-     }
--#endif    
-+#endif
- }
- 
- // ===========================================================================================
-@@ -2635,12 +2743,12 @@
-     ==========================================================================
-  */
- VOID LfsrInit(
--    IN PRTMP_ADAPTER pAd, 
--    IN ULONG Seed) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN ULONG Seed)
- {
--    if (Seed == 0) 
-+    if (Seed == 0)
-         pAd->Mlme.ShiftReg = 1;
--    else 
-+    else
-         pAd->Mlme.ShiftReg = Seed;
- }
- 
-@@ -2650,21 +2758,21 @@
-     ==========================================================================
-  */
- UCHAR RandomByte(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
-     ULONG i;
-     UCHAR R, Result;
- 
-     R = 0;
- 
--    for (i = 0; i < 8; i++) 
-+    for (i = 0; i < 8; i++)
-     {
--        if (pAd->Mlme.ShiftReg & 0x00000001) 
-+        if (pAd->Mlme.ShiftReg & 0x00000001)
-         {
-             pAd->Mlme.ShiftReg = ((pAd->Mlme.ShiftReg ^ LFSR_MASK) >> 1) | 0x80000000;
-             Result = 1;
--        } 
--        else 
-+        }
-+        else
-         {
-             pAd->Mlme.ShiftReg = pAd->Mlme.ShiftReg >> 1;
-             Result = 0;
-@@ -2681,17 +2789,17 @@
-     ==========================================================================
-  */
- VOID AsicSwitchChannel(
--    IN PRTMP_ADAPTER pAd, 
--    IN UCHAR Channel) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN UCHAR Channel)
- {
-     ULONG R3;
-     UCHAR index;
-     int Value;
- 
-     // TODO: need to update E2PROM format to add 802.11a channel's TX power calibration values
--    if (Channel <= 14)    
-+    if (Channel <= 14)
-         R3 = pAd->PortCfg.ChannelTxPower[Channel - 1];
--    else 
-+    else
-         R3 = pAd->PortCfg.ChannelTxPower[0];
- 
-     if (R3 > 31)  R3 = 31;
-@@ -2706,10 +2814,10 @@
-     Value = (Value > 31) ? 31 : Value;
-     Value = (Value <  0) ?  0 : Value;
-     R3 = Value;
--    
-+
- 	 // Krellan: Save value for readout to user
- 	 pAd->PortCfg.TxPowerDriver = R3;
--	 
-+
-     R3 = R3 << 9; // shift TX power control to correct RF R3 bit position
- 
-     switch (pAd->PortCfg.RfType)
-@@ -2772,7 +2880,7 @@
-                 }
-             }
-             break;
--            
-+
-         case RFIC_2525:
-             for (index = 0; index < NUM_OF_2525_CHNL; index++)
-             {
-@@ -2800,7 +2908,7 @@
-                 }
-             }
-             break;
--            
-+
-         case RFIC_2525E:
-             for (index = 0; index < NUM_OF_2525E_CHNL; index++)
-             {
-@@ -2820,7 +2928,7 @@
-                 }
-             }
-             break;
--            
-+
-         case RFIC_5222:
-             for (index = 0; index < NUM_OF_5222_CHNL; index++)
-             {
-@@ -2846,12 +2954,12 @@
-     }
- 
-     DBGPRINT(RT_DEBUG_INFO, "AsicSwitchChannel(RF=%d) to #%d, TXPwr=%d, R1=0x%08x, R2=0x%08x, R3=0x%08x, R4=0x%08x\n",
--        pAd->PortCfg.RfType, 
--        pAd->PortCfg.LatchRfRegs.Channel, 
-+        pAd->PortCfg.RfType,
-+        pAd->PortCfg.LatchRfRegs.Channel,
-         pAd->PortCfg.TxPower,
--        pAd->PortCfg.LatchRfRegs.R1, 
--        pAd->PortCfg.LatchRfRegs.R2, 
--        pAd->PortCfg.LatchRfRegs.R3, 
-+        pAd->PortCfg.LatchRfRegs.R1,
-+        pAd->PortCfg.LatchRfRegs.R2,
-+        pAd->PortCfg.LatchRfRegs.R3,
-         pAd->PortCfg.LatchRfRegs.R4);
- }
- 
-@@ -2865,8 +2973,8 @@
-     ==========================================================================
-  */
- VOID AsicLockChannel(
--    IN PRTMP_ADAPTER pAd, 
--    IN UCHAR Channel) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN UCHAR Channel)
- {
-     UCHAR   r70;
- 	ULONG   FcsCnt;
-@@ -2899,14 +3007,14 @@
-         case RFIC_2525E:
-             pAd->PortCfg.LatchRfRegs.R1 &= 0xfffdffff;  // RF R1.bit17 "tune_en1" OFF
-             pAd->PortCfg.LatchRfRegs.R3 &= 0xfffffeff;   // RF R3.bit8 "tune_en2" OFF
--            RTMP_RF_IO_WRITE32(pAd, pAd->PortCfg.LatchRfRegs.R1); 
--            RTMP_RF_IO_WRITE32(pAd, pAd->PortCfg.LatchRfRegs.R3); 
-+            RTMP_RF_IO_WRITE32(pAd, pAd->PortCfg.LatchRfRegs.R1);
-+            RTMP_RF_IO_WRITE32(pAd, pAd->PortCfg.LatchRfRegs.R3);
-             DBGPRINT(RT_DEBUG_INFO, "AsicRfTuningExec(R1=0x%x,R3=0x%x)\n",pAd->PortCfg.LatchRfRegs.R1,pAd->PortCfg.LatchRfRegs.R3);
-             break;
--            
-+
-         case RFIC_2523:
-             pAd->PortCfg.LatchRfRegs.R3 &= 0xfffffeff;   // RF R3.bit8 "tune_en2" OFF
--            RTMP_RF_IO_WRITE32(pAd, pAd->PortCfg.LatchRfRegs.R3); 
-+            RTMP_RF_IO_WRITE32(pAd, pAd->PortCfg.LatchRfRegs.R3);
-             DBGPRINT(RT_DEBUG_INFO, "AsicRfTuningExec(R3=0x%x)\n",pAd->PortCfg.LatchRfRegs.R3);
-             break;
- 
-@@ -2929,16 +3037,16 @@
-     ==========================================================================
-  */
- VOID AsicAdjustTxPower(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
-     ULONG R3, Channel, CurrTxPwr;
-     int Value;
- 
-     if ((pAd->PortCfg.Channel >= 1) && (pAd->PortCfg.Channel <= 14))
-         Channel = pAd->PortCfg.Channel;
--    else 
-+    else
-         Channel = 1;  // don't have calibration info for 11A, temporarily use Channel 1
--    
-+
-     // get TX Power base from E2PROM
-     R3 = pAd->PortCfg.ChannelTxPower[Channel - 1];
-     if (R3 > 31)  R3 = 31;
-@@ -2948,7 +3056,7 @@
-     Value = (Value > 31) ? 31 : Value;
-     Value = (Value <  0) ?  0 : Value;
-     R3 = Value;
--    
-+
-     // E2PROM setting is calibrated for maximum TX power (i.e. 100%)
-     // We lower TX power here according to the percentage specified from UI
-     if (pAd->PortCfg.TxPowerAuto == TRUE)       // AUTO TX POWER control
-@@ -2959,10 +3067,10 @@
-             // low TX power upon very-short distance to AP to solve some vendor's AP RX problem
-             // in this case, no TSSI compensation is required.
- 
--            if ((pAd->DrsCounters.fNoisyEnvironment == FALSE) && 
-+            if ((pAd->DrsCounters.fNoisyEnvironment == FALSE) &&
-                 (pAd->PortCfg.AvgRssi > (pAd->PortCfg.RssiToDbm - RSSI_FOR_LOWEST_TX_POWER)))
-                 R3 -= LOWEST_TX_POWER_DELTA;
--            else if ((pAd->DrsCounters.fNoisyEnvironment == FALSE) && 
-+            else if ((pAd->DrsCounters.fNoisyEnvironment == FALSE) &&
-                 (pAd->PortCfg.AvgRssi > (pAd->PortCfg.RssiToDbm - RSSI_FOR_LOW_TX_POWER)))
-                 R3 -= LOW_TX_POWER_DELTA;
- 
-@@ -2973,7 +3081,7 @@
-                 R3 +=2;
-                 if (R3 > 31) R3 = 31;
-             }
--            
-+
-             // 2 exclusive rules applied on CCK rates only -
-             //    1. always plus 2 db for CCK
-             //    2. adjust TX Power based on TSSI
-@@ -2986,10 +3094,10 @@
-    	                R3 += 2;  // plus 2 db
-    	                if (R3 > 31) R3 = 31;
-     	        }
--    	        
--        	    // Auto calibrate Tx AGC if bAutoTxAgc is TRUE and TX rate is CCK, 
-+
-+        	    // Auto calibrate Tx AGC if bAutoTxAgc is TRUE and TX rate is CCK,
-         	    // because E2PROM's TSSI reference is valid only in CCK range.
--    	        else  
-+    	        else
-     	        {
-     		        UCHAR	R1,TxPowerRef, TssiRef;
- 
-@@ -3005,7 +3113,7 @@
- 			                // Need R3 adjustment. However, we have to make sure there is only
- 			                // plus / minus 5 variation allowed
- 			                if (TssiRef > R1)
--			                {				
-+			                {
- 				                R3 = (R3 < (ULONG) (TxPowerRef + 5)) ? (R3 + 1) : R3;
- 				                if (R3 > 31)
- 				                    R3 = 31;
-@@ -3020,7 +3128,7 @@
- 	    	        }
-     	        }
-     	    }
--    	    
-+
-         }
-     }
-     else // fixed AUTO TX power
-@@ -3035,7 +3143,7 @@
- 
- 	 // Krellan: Save value for readout to user
- 	 pAd->PortCfg.TxPowerDriver = R3;
--	     
-+
-     // compare the desired R3.TxPwr value with current R3, if not equal
-     // set new R3.TxPwr
-     CurrTxPwr = (pAd->PortCfg.LatchRfRegs.R3 >> 9) & 0x0000001f;
-@@ -3058,8 +3166,8 @@
-     ==========================================================================
-  */
- VOID AsicSleepThenAutoWakeup(
--    IN PRTMP_ADAPTER pAd, 
--    IN USHORT TbttNumToNextWakeUp) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN USHORT TbttNumToNextWakeUp)
- {
-     CSR20_STRUC Csr20;
-     PWRCSR1_STRUC Pwrcsr1;
-@@ -3067,9 +3175,9 @@
-     // we have decided to SLEEP, so at least do it for a BEACON period.
-     if (TbttNumToNextWakeUp==0)
-         TbttNumToNextWakeUp=1;
--    
-+
-     // PWRCSR0 remains untouched
--    
-+
-     // set CSR20 for next wakeup
-     Csr20.word = 0;
-     Csr20.field.NumBcnBeforeWakeup = TbttNumToNextWakeUp - 1;
-@@ -3141,17 +3249,17 @@
-     ==========================================================================
-  */
- VOID AsicSetBssid(
--    IN PRTMP_ADAPTER pAd, 
--    IN MACADDR *Bssid) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MACADDR *Bssid)
- {
-     ULONG         Addr4;
- 
--    Addr4 = (ULONG)(Bssid->Octet[0]) | 
--            (ULONG)(Bssid->Octet[1] << 8) | 
-+    Addr4 = (ULONG)(Bssid->Octet[0]) |
-+            (ULONG)(Bssid->Octet[1] << 8) |
-             (ULONG)(Bssid->Octet[2] << 16) |
-             (ULONG)(Bssid->Octet[3] << 24);
-     RTMP_IO_WRITE32(pAd, CSR5, Addr4);
--    
-+
-     Addr4 = (ULONG)(Bssid->Octet[4]) | (ULONG)(Bssid->Octet[5] << 8);
-     RTMP_IO_WRITE32(pAd, CSR6, Addr4);
- }
-@@ -3162,7 +3270,7 @@
-     ==========================================================================
-  */
- VOID AsicDisableSync(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
-     // TIMECSR_STRUC TimeCsr;
-     DBGPRINT(RT_DEBUG_TRACE, "--->Disable TSF synchronization\n");
-@@ -3174,7 +3282,7 @@
-     RTMP_IO_WRITE32(pAd, CSR14, 0x00000000);
- #endif
- 
--#if 0    
-+#if 0
-     RTMP_IO_READ32(pAd, TIMECSR, &TimeCsr.word);
- 
-     // restore to 33 PCI-tick-per-Usec. for 2560a only where PCI-clock is used as TSF timing source
-@@ -3192,7 +3300,7 @@
-     ==========================================================================
-  */
- VOID AsicEnableBssSync(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
-     CSR12_STRUC Csr12;
-     CSR13_STRUC Csr13;
-@@ -3201,14 +3309,14 @@
-     BOOLEAN IsApPc;
- 
-     DBGPRINT(RT_DEBUG_TRACE, "--->AsicEnableBssSync(INFRA mode)\n");
--    
-+
-     RTMP_IO_WRITE32(pAd, CSR14, 0x00000000);
--    
-+
-     Csr12.word = 0;
-     Csr12.field.BeaconInterval = pAd->PortCfg.BeaconPeriod << 4; // ASIC register in units of 1/16 TU
-     Csr12.field.CfpMaxDuration = pAd->PortCfg.CfpMaxDuration << 4; // ASIC register in units of 1/16 TU
-     RTMP_IO_WRITE32(pAd, CSR12, Csr12.word);
--    
-+
-     Csr13.word = 0;
-     Csr13.field.CfpPeriod = pAd->PortCfg.CfpDurRemain << 4; // ASIC register in units of 1/16 TU
-     RTMP_IO_WRITE32(pAd, CSR13, Csr13.word);
-@@ -3218,14 +3326,14 @@
-     Bcncsr1.field.BeaconCwMin = 5;
-     RTMP_IO_WRITE32(pAd, BCNCSR1, Bcncsr1.word);
- 
--    IsApPc = (CAP_IS_CF_POLLABLE_ON(pAd->PortCfg.CapabilityInfo) && 
-+    IsApPc = (CAP_IS_CF_POLLABLE_ON(pAd->PortCfg.CapabilityInfo) &&
-               CAP_IS_CF_POLL_REQ_ON(pAd->PortCfg.CapabilityInfo));
-     IsApPc = FALSE; // TODO: not support so far
--    
-+
-     Csr14.word = 0;
-     Csr14.field.TsfCount = 1;
-     Csr14.field.TsfSync = 1; // sync TSF in INFRASTRUCTURE mode
--    if (IsApPc) 
-+    if (IsApPc)
-     {
-         Csr14.field.CfpCntPreload = pAd->PortCfg.CfpCount;
-         Csr14.field.Tcfp = 1;
-@@ -3234,13 +3342,13 @@
- //  Csr14.field.TbcnPreload = (pAd->PortCfg.BeaconPeriod - 30) << 4; // TODO: ???? 1 TU ???
-     Csr14.field.Tbcn = 1;
-     RTMP_IO_WRITE32(pAd, CSR14, Csr14.word);
--    
-+
- }
- 
- /*
-     ==========================================================================
-     Description:
--    Note: 
-+    Note:
-         BEACON frame in shared memory should be built ok before this routine
-         can be called. Otherwise, a garbage frame maybe transmitted out every
-         Beacon period.
-@@ -3254,7 +3362,7 @@
-     CSR14_STRUC Csr14;
-     // BCNCSR_STRUC Bcncsr;
-     BCNCSR1_STRUC Bcncsr1;
--    
-+
-     DBGPRINT(RT_DEBUG_TRACE, "--->AsicEnableIbssSync(ADHOC mode)\n");
- 
-     RTMP_IO_WRITE32(pAd, CSR14, 0x00000000);
-@@ -3279,7 +3387,7 @@
-         Bcncsr1.field.Preload = 700;   // 24 + ((MAC_HDR_LEN << 4) / RateIdTo500Kbps[pAd->PortCfg.MlmeRate]);
-     }
-     RTMP_IO_WRITE32(pAd, BCNCSR1, Bcncsr1.word);
--    
-+
-     Csr14.word = 0;
-     Csr14.field.TsfCount = 1;
-     Csr14.field.TsfSync = 2; // sync TSF in IBSS mode
-@@ -3289,16 +3397,16 @@
- }
- 
- VOID AsicLedPeriodicExec(
--    IN  unsigned long data) 
-+    IN  unsigned long data)
- {
-     RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)data;
-     ULONG LedCsr = 0x0000461E; // 0x0000461E;
--    
-+
-     pAd->PortCfg.LedCntl.fOdd = ! pAd->PortCfg.LedCntl.fOdd;
- 
--    if (INFRA_ON(pAd) || ADHOC_ON(pAd))   
-+    if (INFRA_ON(pAd) || ADHOC_ON(pAd))
-         LedCsr |= 0x00010000; // enable hardwired TX activity LED
--    if (pAd->PortCfg.LedCntl.fOdd && pAd->PortCfg.LedCntl.fRxActivity) 
-+    if (pAd->PortCfg.LedCntl.fOdd && pAd->PortCfg.LedCntl.fRxActivity)
-         LedCsr |= 0x00020000; // turn on software-based RX activity LED
-     pAd->PortCfg.LedCntl.fRxActivity = FALSE;
- 
-@@ -3315,17 +3423,17 @@
- // pAd->PortCfg.CurrentRxAntenna
- // 0xff: diversity, 0:antenna A, 1:antenna B
- VOID AsicSetRxAnt(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
-     UCHAR   RxValue, TxValue;
-     ULONG   Bbpcsr1;
--    
-+
-     RTMPCancelTimer(&pAd->PortCfg.RxAnt.RxAntDiversityTimer);
-     pAd->PortCfg.RxAnt.AvgRssi[0] = (-95 + 120) << 3;  // reset Ant-A's RSSI history
-     pAd->PortCfg.RxAnt.AvgRssi[1] = (-95 + 120) << 3;  // reset Ant-B's RSSI history
- 
-    	pAd->PortCfg.RxAnt.PrimaryInUsed  = TRUE;
--    
-+
-     if (pAd->PortCfg.CurrentRxAntenna == 0xff)     // Diversity
-     {
-        	pAd->PortCfg.RxAnt.PrimaryRxAnt   = 1;  // assume ant-B
-@@ -3344,7 +3452,7 @@
- 
-     DBGPRINT(RT_DEBUG_TRACE,"AntDiv - set RxAnt=%d, primary=%d, second=%d\n",
-         pAd->PortCfg.CurrentRxAntenna, pAd->PortCfg.RxAnt.PrimaryRxAnt, pAd->PortCfg.RxAnt.SecondaryRxAnt);
--    
-+
-     // use primary antenna
-     RTMP_IO_READ32(pAd, BBPCSR1, &Bbpcsr1);
-     TxValue = pAd->PortCfg.BbpWriteLatch[BBP_Tx_Configure];
-@@ -3352,34 +3460,34 @@
-     if (pAd->PortCfg.RxAnt.PrimaryRxAnt == 0) // ant-A
-     {
-         TxValue = (TxValue & 0xFC) | 0x00;
--        RxValue = 0x1c; 
-+        RxValue = 0x1c;
-         Bbpcsr1 = (Bbpcsr1 & 0xFFFCFFFC) | 0x00000000;
-     }
-     else                                      // ant-B
-     {
- 		TxValue = (TxValue & 0xFC) | 0x02;
--		RxValue = 0x1e; 
-+		RxValue = 0x1e;
-         Bbpcsr1 = (Bbpcsr1 & 0xFFFCFFFC) | 0x00020002;
-     }
-     RTMP_IO_WRITE32(pAd, BBPCSR1, Bbpcsr1);
-    	//RTMP_BBP_IO_WRITE32_BY_REG_ID(pAd, BBP_Tx_Configure, TxValue);
-    	RTMP_BBP_IO_WRITE32_BY_REG_ID(pAd, BBP_Rx_Configure, RxValue);
--        
-+
- }
- 
- // switch to secondary RxAnt for a while to collect it's average RSSI
--// also set a timeout routine to DO the actual evaluation. If evaluation 
-+// also set a timeout routine to DO the actual evaluation. If evaluation
- // result shows a much better RSSI using secondary RxAnt, then a official
- // RX antenna switch is performed.
- VOID AsicEvaluateSecondaryRxAnt(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
-     UCHAR  RxValue, TxValue;
-     ULONG  Bbpcsr1;
- 
-     if (pAd->PortCfg.CurrentRxAntenna != 0xff)
-         return;
--    
-+
-    	pAd->PortCfg.RxAnt.PrimaryInUsed  = FALSE;
-    	pAd->PortCfg.RxAnt.FirstPktArrivedWhenEvaluate = FALSE;
-    	pAd->PortCfg.RxAnt.RcvPktNumWhenEvaluate = 0;
-@@ -3387,16 +3495,16 @@
- //  pAd->PortCfg.RxAnt.AvgRssi[pAd->PortCfg.RxAnt.SecondaryRxAnt] = 0;
- 
-     DBGPRINT(RT_DEBUG_TRACE,"AntDiv - evaluate Ant #%d\n", pAd->PortCfg.RxAnt.SecondaryRxAnt);
--    
-+
-     // temporarily switch to secondary antenna
-     RxValue = pAd->PortCfg.BbpWriteLatch[BBP_Rx_Configure];
-     TxValue = pAd->PortCfg.BbpWriteLatch[BBP_Tx_Configure];
-     RTMP_IO_READ32(pAd, BBPCSR1, &Bbpcsr1);
--    
-+
-     if (pAd->PortCfg.RxAnt.SecondaryRxAnt == 0) // ant-A
-     {
-         TxValue = (TxValue & 0xFC) | 0x00;
--        RxValue = 0x1c; 
-+        RxValue = 0x1c;
-         Bbpcsr1 = (Bbpcsr1 & 0xFFFCFFFC) | 0x00000000;
-     }
-     else                                        // ant-B
-@@ -3411,7 +3519,7 @@
- 
-     // a one-shot timer to end the evalution
-     if (pAd->MediaState == NdisMediaStateConnected)
--        RTMPSetTimer(pAd, &pAd->PortCfg.RxAnt.RxAntDiversityTimer, 150);	
-+        RTMPSetTimer(pAd, &pAd->PortCfg.RxAnt.RxAntDiversityTimer, 150);
-     else
-    	RTMPSetTimer(pAd, &pAd->PortCfg.RxAnt.RxAntDiversityTimer, 300);
- }
-@@ -3419,17 +3527,17 @@
- // this timeout routine collect AvgRssi[SecondaryRxAnt] and decide if
- // SecondaryRxAnt is much better than PrimaryRxAnt
- VOID AsicRxAntEvalTimeout(
--    IN  unsigned long data) 
-+    IN  unsigned long data)
- {
-     RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)data;
- 
-- 
-+
-     DBGPRINT(RT_DEBUG_TRACE,"AntDiv - AsicRxAntEvalTimeout, \n");
- 	// Do nothing if the driver is starting halt state.
- 	// This might happen when timer already been fired before cancel timer with mlmehalt
- 	if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_HALT_IN_PROGRESS))
- 		return;
--	
-+
-    if (pAd->PortCfg.RxAnt.PrimaryInUsed == TRUE)
- 
-         return;
-@@ -3445,7 +3553,7 @@
-         pAd->PortCfg.RxAnt.PrimaryRxAnt = pAd->PortCfg.RxAnt.SecondaryRxAnt;
-         pAd->PortCfg.RxAnt.SecondaryRxAnt = temp;
-         pAd->PortCfg.LastAvgRssi = (pAd->PortCfg.RxAnt.AvgRssi[pAd->PortCfg.RxAnt.SecondaryRxAnt] >> 3) - pAd->PortCfg.RssiToDbm;
--        
-+
-         DBGPRINT(RT_DEBUG_TRACE,"AntDiv - Switch to Ant #%d, RSSI[0,1]=<%d, %d>\n",
-             pAd->PortCfg.RxAnt.PrimaryRxAnt, pAd->PortCfg.RxAnt.AvgRssi[0], pAd->PortCfg.RxAnt.AvgRssi[1]);
-     }
-@@ -3453,7 +3561,7 @@
-     {
-         UCHAR RxValue, TxValue;
-         ULONG Bbpcsr1;
--        
-+
-         // end of evaluation, swicth back to primary antenna
-         RxValue = pAd->PortCfg.BbpWriteLatch[BBP_Rx_Configure];
-         TxValue = pAd->PortCfg.BbpWriteLatch[BBP_Tx_Configure];
-@@ -3461,7 +3569,7 @@
-         if (pAd->PortCfg.RxAnt.PrimaryRxAnt == 0) // ant-A
-         {
-             TxValue = (TxValue & 0xFC) | 0x00;
--            RxValue = 0x1c; 
-+            RxValue = 0x1c;
-             Bbpcsr1 = (Bbpcsr1 & 0xFFFCFFFC) | 0x00000000;
-         }
-         else                                      // ant-B
-@@ -3491,7 +3599,7 @@
-  */
- VOID AsicSetSlotTime(
-     IN PRTMP_ADAPTER pAd,
--    IN BOOLEAN UseShortSlotTime) 
-+    IN BOOLEAN UseShortSlotTime)
- {
-     CSR11_STRUC Csr11;
-     CSR18_STRUC Csr18;
-@@ -3499,7 +3607,7 @@
-     UCHAR PhyMode;
- 
-     pAd->PortCfg.ShortSlotInUsed = UseShortSlotTime;
--    
-+
-     PhyMode = pAd->PortCfg.PhyMode;
-     if (PhyMode == PHY_11ABG_MIXED)
-     {
-@@ -3527,7 +3635,7 @@
-     else
-         Csr19.field.EIFS = 60;   // roughly = SIFS + ACK @6Mbps
-     RTMP_IO_WRITE32(pAd, CSR19, Csr19.word);
--    
-+
- #if 1
-     // force using short SLOT time for FAE to demo performance only
-     if (pAd->PortCfg.EnableTxBurst == 1)
-@@ -3543,7 +3651,7 @@
-     ==========================================================================
-     Description:
-        This routine is used for 2560a only where 2560a still use non-accurate
--       PCI-clock as TSF 1-usec source. we have to dynamically change tick-per-usec 
-+       PCI-clock as TSF 1-usec source. we have to dynamically change tick-per-usec
-        to avoid ADHOC synchronization issue with SYMBOL 11b card
-     ==========================================================================
-  */
-@@ -3575,7 +3683,7 @@
- /*
-     ==========================================================================
-     Description:
--        danamic tune BBP R17 to find a balance between sensibility and 
-+        danamic tune BBP R17 to find a balance between sensibility and
-         noise isolation
-     ==========================================================================
-  */
-@@ -3586,13 +3694,13 @@
-     UCHAR R17;
-     ULONG FalseCcaUpperThreshold = pAd->PortCfg.BbpTuning.FalseCcaUpperThreshold << 7;
-     int dbm = pAd->PortCfg.AvgRssi - pAd->PortCfg.RssiToDbm;
--    
-+
-     if ((! pAd->PortCfg.BbpTuningEnable) || (pAd->PortCfg.BbpTuning.VgcDelta==0))
-         return;
--    
-+
-     R17 = pAd->PortCfg.BbpWriteLatch[17];
- 
--	if ((pAd->PortCfg.Rt2560Version >= RT2560_VER_D) && 
-+	if ((pAd->PortCfg.Rt2560Version >= RT2560_VER_D) &&
- 	    (pAd->MediaState == NdisMediaStateConnected))
- 	{
-         // Rule 0.
-@@ -3609,7 +3717,7 @@
-             return;
-         }
-         // Rule 1. "special big-R17 for short-distance" when not SCANNING
--	    else if ((dbm >= RSSI_FOR_LOW_SENSIBILITY) && 
-+	    else if ((dbm >= RSSI_FOR_LOW_SENSIBILITY) &&
- 	        (pAd->Mlme.CntlMachine.CurrState == CNTL_IDLE))
- 	    {
- 	        if (R17 != BBP_R17_LOW_SENSIBILITY)
-@@ -3621,7 +3729,7 @@
-             return;
- 	    }
-         // Rule 2. "special mid-R17 for mid-distance" when not SCANNING
--	    else if ((dbm >= RSSI_FOR_MID_SENSIBILITY) && 
-+	    else if ((dbm >= RSSI_FOR_MID_SENSIBILITY) &&
- 	        (pAd->Mlme.CntlMachine.CurrState == CNTL_IDLE))
- 	    {
- 	        if (R17 != BBP_R17_MID_SENSIBILITY)
-@@ -3632,7 +3740,7 @@
-             DBGPRINT(RT_DEBUG_INFO, "RSSI = %d dbm, fixed R17 at 0x%x\n", dbm, R17);
-             return;
- 	    }
--        // Rule 3. leave "short or mid-distance" condition, restore R17 to the 
-+        // Rule 3. leave "short or mid-distance" condition, restore R17 to the
-         //    dynamic tuning range <E2PROM-6, BBP_R17_DYNAMIC_UP_BOUND>
- 	    else if (R17 >= BBP_R17_MID_SENSIBILITY)
- 	    {
-@@ -3642,13 +3750,13 @@
-             return;
- 	    }
- 	}
--	
-+
-     // Rule 3. otherwise, R17 is currenly in dyanmic tuning range: <E2PROM-6, BBP_R17_DYNAMIC_UP_BOUND>.
-     //    Keep dynamic tuning based on False CCA conter
--    
-+
- 	RTMP_IO_READ32(pAd, CNT3, &Value);
- 	pAd->PrivateInfo.CCAErrCnt = (Value & 0x0000ffff);
--	DBGPRINT(RT_DEBUG_INFO, "CCA flase alarm = %d, Avg RSSI= %d dbm\n", 
-+	DBGPRINT(RT_DEBUG_INFO, "CCA flase alarm = %d, Avg RSSI= %d dbm\n",
- 	    pAd->PrivateInfo.CCAErrCnt, dbm);
- 
- 	if ((pAd->PrivateInfo.CCAErrCnt > FalseCcaUpperThreshold) &&
-@@ -3697,7 +3805,7 @@
- 
-     Return Value:
-         None
--	
-+
-     Note:
- 
-     ========================================================================
-@@ -3714,7 +3822,7 @@
-     DBGPRINT(RT_DEBUG_INFO, "==> MlmeFreeMemory\n");
-     spin_lock(&pAd->MemLock);
-     if (pAd->Mlme.MemHandler.MemRunning)
--    { 
-+    {
-         //Mlme memory handler is busy.
-         //Move it to the Pending array for later free
-         pAd->Mlme.MemHandler.MemFreePending[pAd->Mlme.MemHandler.PendingCount++] = (PULONG) AllocVa;
-@@ -3738,7 +3846,7 @@
-         while (pMlmeMemoryStruct)
-         {
-             if (pMlmeMemoryStruct->AllocVa == (PVOID) pAd->Mlme.MemHandler.MemFreePending[Index])
--            { 
-+            {
-                 //Found virtual address in the in-used link list
-                 //Remove it from the memory in-used link list, and move it to the unused link list
-                 if (pPrevious == NULL)
-@@ -3865,7 +3973,7 @@
-     pAd->Mlme.MemHandler.MemRunning = FALSE;
-     spin_unlock(&pAd->MemLock);
- 
--    DBGPRINT(RT_DEBUG_INFO, "<== MlmeFreeMemory [IN:%d][UN:%d][Pending:%d]\n", 
-+    DBGPRINT(RT_DEBUG_INFO, "<== MlmeFreeMemory [IN:%d][UN:%d][Pending:%d]\n",
-                 pAd->Mlme.MemHandler.InUseCount, pAd->Mlme.MemHandler.UnUseCount, pAd->Mlme.MemHandler.PendingCount);
- }
- 
-@@ -3883,7 +3991,7 @@
-         NDIS_STATUS_SUCCESS
-         NDIS_STATUS_FAILURE
-         NDIS_STATUS_RESOURCES
--	
-+
-     Note:
- 
-     ========================================================================
-@@ -3911,7 +4019,7 @@
-     }
- 
-     if (pAd->Mlme.MemHandler.pUnUseHead == NULL)
--    { //There are no available memory for caller use 
-+    { //There are no available memory for caller use
-         Status = NDIS_STATUS_RESOURCES;
-         pAd->Mlme.MemHandler.MemRunning = FALSE;
-         spin_unlock(&pAd->MemLock);
-@@ -3963,7 +4071,7 @@
-     Return Value:
-         NDIS_STATUS_SUCCESS
-         NDIS_STATUS_RESOURCES
--        
-+
-     Note:
- 
-     ========================================================================
-@@ -3994,7 +4102,7 @@
-     //
-     if (Number > MAX_MLME_HANDLER_MEMORY)
-         Number = MAX_MLME_HANDLER_MEMORY;
--        
-+
-     for (i = 0; i < Number; i++)
-     {
-         //Allocate a nonpaged memory for link list use.
-diff -Nur rt2500-1.1.0-b4/Module/mlme.h rt2500-cvs-2007061011/Module/mlme.h
---- rt2500-1.1.0-b4/Module/mlme.h	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/mlme.h	2007-03-21 05:25:34.000000000 +0100
-@@ -1,43 +1,43 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: mlme.h
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      John            28th Aug 03     Initial code     
-- *      MarkW           8th  Dec 04     Baseline code  
-- ***************************************************************************/ 
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      John            28th Aug 03     Initial code
-+ *      MarkW           8th  Dec 04     Baseline code
-+ ***************************************************************************/
- 
- #ifndef __MLME_H__
- #define __MLME_H__
- 
- #include "oid.h"
- 
--// maximum supported capability information - 
-+// maximum supported capability information -
- // ESS, IBSS, Privacy, Short Preamble, Short Slot
- #define SUPPORTED_CAPABILITY_INFO 0x0433
- 
-@@ -61,7 +61,7 @@
- 
- #define RSSI_TO_DBM_OFFSET          120 // for RT2530 RSSI-115 = dBm
- #define RSSI_FOR_MID_TX_POWER       55  // -55 db is considered mid-distance
--#define RSSI_FOR_LOW_TX_POWER       45  // -45 db is considered very short distance and 
-+#define RSSI_FOR_LOW_TX_POWER       45  // -45 db is considered very short distance and
-                                         // eligible to use a lower TX power
- #define RSSI_FOR_LOWEST_TX_POWER    30
- #define MID_TX_POWER_DELTA          0   // -3 db from full TX power upon mid-distance to AP
-@@ -212,7 +212,7 @@
- #define TX_FER_TOO_HIGH(TxFER)          ((TxFER) > 15)   // consider rate down if FER>15%
- #define TX_FER_VERY_LOW(TxFER)          ((TxFER) < 7)    // consider rate up if FER<7%
- #define FAIR_FER                        10               // any value between TOO_HIGH and VERY_LOW
--#define DRS_TX_QUALITY_WORST_BOUND      3 
-+#define DRS_TX_QUALITY_WORST_BOUND      3
- #define DRS_PENALTY                     8
- 
- // Ralink timer control block
-@@ -329,13 +329,14 @@
-     USHORT  CfpDurRemaining;
-     UCHAR   SsidLen;
-     CHAR    Ssid[MAX_LEN_OF_SSID];
--    
-+
-     ULONG   LastBeaconRxTime; // OS's timestamp
- 
-     // New for microsoft WPA support
-+	USHORT					CipherCap;	// Pair (0:7), Group (8:15) cipher cap
-     NDIS_802_11_FIXED_IEs   FixIEs;
-     NDIS_802_11_WEP_STATUS  WepStatus;
--    UCHAR                   VarIELen;               // Length of next VIE include EID & Length
-+    USHORT                  VarIELen;	// Length of all saved IEs.
-     UCHAR                   VarIEs[MAX_VIE_LEN];
- } BSS_ENTRY, *PBSS_ENTRY;
- 
-@@ -384,7 +385,7 @@
-     ULONG               BssIdx;
-     ULONG               RoamIdx;
-     BOOLEAN             CurrReqIsFromNdis; // TRUE - then we should call NdisMSetInformationComplete()
--                                           // FALSE - req is from driver itself. 
-+                                           // FALSE - req is from driver itself.
-                                            // no NdisMSetInformationComplete() is required
- } CNTL_AUX, *PCNTL_AUX;
- 
-@@ -394,7 +395,7 @@
-     USHORT              CapabilityInfo;
-     USHORT              ListenIntv;
-     CHAR                Ssid[MAX_LEN_OF_SSID];
--    UCHAR               SsidLen;    
-+    UCHAR               SsidLen;
-     RALINK_TIMER_STRUCT AssocTimer, ReassocTimer, DisassocTimer;
- } ASSOC_AUX, *PASSOC_AUX;
- 
-@@ -482,10 +483,10 @@
- typedef struct PACKED _BEACON_EID_STRUCT {
-     UCHAR   Eid;
-     UCHAR   Len;
--    CHAR   Octet[1];
-+    UCHAR   Octet[1];
- } BEACON_EID_STRUCT,*PBEACON_EID_STRUCT;
- 
--// New for WPA cipher suite 
-+// New for WPA cipher suite
- typedef struct PACKED _RSN_EID_STRUCT {
-     UCHAR   Eid;
-     UCHAR   Length;
-@@ -497,6 +498,98 @@
-         UCHAR   Oui[4];
-     }   Unicast[1];
- }   RSN_EID_STRUCT, *PRSN_EID_STRUCT;
-+#define MIN_WPA_KEYDATA_LEN	(4 + sizeof(ie_version_t) + sizeof(suite_sel_t) + \
-+							2*sizeof(suite_list_t))
-+
-+
-+/* Country Information Element (802.11d pp. 4, 5) */
-+
-+typedef struct country_subelement {
-+	unsigned char	first_chan,
-+					num_chans;
-+	signed char		max_tx_pwr;		// in dBm
-+} PACKED country_subelement_t, *country_subelement_p;
-+
-+typedef struct country_string {	// (all alpha)
-+	UCHAR	co[2];				// ISO/IEC 3166-1 country code
-+	UCHAR	env;				// ' '/'O'/'I' - 802.11d pp. 19
-+} PACKED country_string_t, *country_string_p;
-+
-+typedef struct country_ie {
-+	UCHAR					eid;
-+	UCHAR					length;
-+	country_string_t		cs;
-+	country_subelement_t	chans[1];
-+	UCHAR					pad[0];	// may or may not be present
-+} PACKED country_ie_t, *country_ie_p;
-+
-+
-+/* WPA2 (cf. 802.11i pp. 27 ff.) */
-+
-+// access
-+#define wtohs(x)	(le16_to_cpu(x))// sic (802.11 is "native" little-endian)
-+#define htows(x)	(cpu_to_le16(x))// i.e. opposite of internet byte order
-+
-+// primitives
-+typedef USHORT	ie_version_t;
-+typedef USHORT	ie_count_t;
-+typedef UCHAR	ie_oui_t[3];		// Organizationally Unique Identifier
-+typedef UCHAR pmkid_t[16], *pmkid_p;// 802.11i pp. 76
-+
-+typedef struct rsncap {
-+#ifdef BIG_ENDIAN
-+	USHORT	Reserved:10;
-+	USHORT	GTKSAReplayCounter:2;	// 0/2/4/16 replay counters
-+	USHORT	PTKSAReplayCounter:2;
-+	USHORT	NoPairwise:1;			// WEP key 0 and pairwise key n/a
-+	USHORT	PreAuth:1;				// AP STA supports pre-authentication
-+#else
-+	USHORT	PreAuth:1;				// AP STA supports pre-authentication
-+	USHORT	NoPairwise:1;			// WEP key 0 and pairwise key n/a
-+	USHORT	PTKSAReplayCounter:2;
-+	USHORT	GTKSAReplayCounter:2;	// 0/2/4/16 replay counters
-+	USHORT	Reserved:10;
-+#endif
-+} PACKED rsncap_t, *rsncap_p;
-+
-+typedef struct suite_sel {
-+	ie_oui_t	oui;
-+	UCHAR		type;
-+} PACKED suite_sel_t, *suite_sel_p;
-+
-+/* Cipher suite selectors - 802.11i pp. 28, 29 */
-+#define CIPHER_TYPE_GRP		0
-+#define CIPHER_TYPE_WEP40	1
-+#define CIPHER_TYPE_TKIP	2
-+#define CIPHER_TYPE_RES		3
-+#define CIPHER_TYPE_CCMP	4
-+#define CIPHER_TYPE_WEP104	5
-+#define NUM_CIPHER_TYPES	6
-+
-+/* Authentication and Key Management suite selectors - 802.11i pp. 30 */
-+#define AKM_TYPE_802_1X		1
-+#define AKM_TYPE_PSK		2
-+
-+typedef struct suite_list {
-+	ie_count_t	count;
-+	suite_sel_t	suite[1];
-+} PACKED suite_list_t, *suite_list_p;
-+
-+typedef struct pmkid_list {
-+	ie_count_t	count;
-+	pmkid_t		list[1];
-+} PACKED pmkid_list_t, *pmkid_list_p;
-+
-+typedef struct rsn_ie {
-+	UCHAR  			eid;
-+	UCHAR  			length;
-+	ie_version_t	version;
-+
-+	// Optional fields
-+	suite_sel_t	gcsuite;		// Group Cipher Suite
-+}  PACKED rsn_ie_t, *rsn_ie_p;
-+#define MIN_RSN_KEYDATA_LEN	(sizeof(ie_version_t) + sizeof(suite_sel_t) + \
-+							2*sizeof(suite_list_t))
- 
- extern UCHAR  RateIdToMbps[];
- extern USHORT RateIdTo500Kbps[];
-diff -Nur rt2500-1.1.0-b4/Module/oid.h rt2500-cvs-2007061011/Module/oid.h
---- rt2500-1.1.0-b4/Module/oid.h	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/oid.h	2007-03-21 05:25:34.000000000 +0100
-@@ -1,36 +1,37 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: oid.h
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      MarkW           8th  Dec 04     Baseline code  
-- *      RobinC          10th Dec 04     RFMON Support 
-- ***************************************************************************/ 
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      MarkW           8th  Dec 04     Baseline code
-+ *      RobinC          10th Dec 04     RFMON Support
-+ *      RomainB         31st Dec 06     RFMON getter
-+ ***************************************************************************/
- 
- #ifndef _OID_H_
- #define _OID_H_
-@@ -56,7 +57,8 @@
- #define RTPRIV_IOCTL_BBP                            SIOCIWFIRSTPRIV + 0x03
- #define RTPRIV_IOCTL_MAC                            SIOCIWFIRSTPRIV + 0x05
- #define RTPRIV_IOCTL_E2P                            SIOCIWFIRSTPRIV + 0x07
--#define RTPRIV_IOCTL_RFMONTX                        SIOCIWFIRSTPRIV + 0x0D
-+#define RTPRIV_IOCTL_SET_RFMONTX                    SIOCIWFIRSTPRIV + 0x0C
-+#define RTPRIV_IOCTL_GET_RFMONTX                    SIOCIWFIRSTPRIV + 0x0D
- 
- #define OID_GET_SET_TOGGLE                          0x8000
- 
-@@ -168,8 +170,8 @@
- // Added new types for OFDM 5G and 2.4G
- typedef enum _NDIS_802_11_NETWORK_TYPE
- {
--   Ndis802_11FH, 
--   Ndis802_11DS, 
-+   Ndis802_11FH,
-+   Ndis802_11DS,
-     Ndis802_11OFDM5,
-     Ndis802_11OFDM24,
-     Ndis802_11NetworkTypeMax    // not a real type, defined as an upper bound
-@@ -199,7 +201,7 @@
- typedef struct _NDIS_802_11_CONFIGURATION_FH
- {
-    ULONG           Length;            // Length of structure
--   ULONG           HopPattern;        // As defined by 802.11, MSB set 
-+   ULONG           HopPattern;        // As defined by 802.11, MSB set
-    ULONG           HopSet;            // to one if non-802.11
-    ULONG           DwellTime;         // units are Kusec
- } NDIS_802_11_CONFIGURATION_FH, *PNDIS_802_11_CONFIGURATION_FH;
-@@ -237,7 +239,7 @@
- typedef struct _NDIS_802_11_KEY
- {
-     ULONG           Length;             // Length of this structure
--    ULONG           KeyIndex;           
-+    ULONG           KeyIndex;
-     ULONG           KeyLength;          // length of key in bytes
-     NDIS_802_11_MAC_ADDRESS BSSID;
-     NDIS_802_11_KEY_RSC KeyRSC;
-@@ -247,8 +249,8 @@
- typedef struct _NDIS_802_11_REMOVE_KEY
- {
-     ULONG                   Length;        // Length of this structure
--    ULONG                   KeyIndex;           
--    NDIS_802_11_MAC_ADDRESS BSSID;      
-+    ULONG                   KeyIndex;
-+    NDIS_802_11_MAC_ADDRESS BSSID;
- } NDIS_802_11_REMOVE_KEY, *PNDIS_802_11_REMOVE_KEY;
- 
- typedef struct PACKED _NDIS_802_11_WEP
-@@ -285,7 +287,7 @@
- typedef UCHAR  NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES];        // Set of 8 data rates
- typedef UCHAR  NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX];  // Set of 16 data rates
- 
--typedef struct PACKED _NDIS_802_11_SSID 
-+typedef struct PACKED _NDIS_802_11_SSID
- {
-     ULONG   SsidLength;         // length of SSID field below, in bytes;
-                                 // this can be zero.
-@@ -338,14 +340,14 @@
-     NDIS_WLAN_BSSID_EX      Bssid[1];
- } NDIS_802_11_BSSID_LIST_EX, *PNDIS_802_11_BSSID_LIST_EX;
- 
--typedef struct _NDIS_802_11_FIXED_IEs 
-+typedef struct _NDIS_802_11_FIXED_IEs
- {
-     UCHAR Timestamp[8];
-     USHORT BeaconInterval;
-     USHORT Capabilities;
- } NDIS_802_11_FIXED_IEs, *PNDIS_802_11_FIXED_IEs;
- 
--typedef struct _NDIS_802_11_VARIABLE_IEs 
-+typedef struct _NDIS_802_11_VARIABLE_IEs
- {
-     UCHAR ElementID;
-     UCHAR Length;    // Number of bytes in data field
-@@ -428,7 +430,7 @@
-     NDIS_802_11_STATUS_INDICATION       Status;
-     NDIS_802_11_AUTHENTICATION_REQUEST  Request[1];
- } NDIS_802_11_AUTHENTICATION_EVENT, *PNDIS_802_11_AUTHENTICATION_EVENT;
--        
-+
- typedef struct _NDIS_802_11_TEST
- {
-     ULONG Length;
-diff -Nur rt2500-1.1.0-b4/Module/rt2560.h rt2500-cvs-2007061011/Module/rt2560.h
---- rt2500-1.1.0-b4/Module/rt2560.h	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/rt2560.h	2007-03-21 05:25:34.000000000 +0100
-@@ -1,36 +1,36 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: rt2560.h
-- *              
-+ *
-  *      Abstract: RT2560 ASIC related definition & structures
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      MarkW           8th  Dec 04     Baseline code  
-- *      MarkW           10th Dec 04     Rolled in Ralink 1.4.5.0 
-- ***************************************************************************/ 
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      MarkW           8th  Dec 04     Baseline code
-+ *      MarkW           10th Dec 04     Rolled in Ralink 1.4.5.0
-+ ***************************************************************************/
- 
- #ifndef __RT2560_H__
- #define __RT2560_H__
-@@ -370,10 +370,10 @@
- 
-     // Word 5
-     ULONG       Eiv;
--    
-+
-     // Word 6-9
-     UCHAR       Key[16];
--    
-+
-     // Word 10 - 11 Reserved,   not necessary to put into the structure.
- #ifdef BIG_ENDIAN
-     ULONG       Rsv2:31;
-@@ -676,7 +676,7 @@
- #endif
-     }   field;
-     ULONG           word;
--}   CSR11_STRUC, *PCSR11_STRUC; 
-+}   CSR11_STRUC, *PCSR11_STRUC;
- 
- //
- // CSR12: Synchronization configuration register 0
-@@ -869,7 +869,7 @@
- // =================================================================================
- 
- //
--// TXCSR0 <0x0060> : TX Control Register 
-+// TXCSR0 <0x0060> : TX Control Register
- //
- typedef union   _TXCSR0_STRUC   {
-     struct  {
-@@ -880,13 +880,13 @@
-         ULONG		KickAtim:1;		// Kick ATIM ring
- 		ULONG		KickTx:1;		// Kick Tx ring
- #else
--        ULONG       KickTx:1;       // Kick Tx ring 
-+        ULONG       KickTx:1;       // Kick Tx ring
-         ULONG       KickAtim:1;     // Kick ATIM ring
-         ULONG       KickPrio:1;     // Kick priority ring
-         ULONG       Abort:1;        // Abort all transmit related ring operation
-         ULONG       Rsvd:28;
- #endif
--    }   field;  
-+    }   field;
-     ULONG           word;
- }   TXCSR0_STRUC, *PTXCSR0_STRUC;
- 
-@@ -1184,7 +1184,7 @@
-         ULONG		BbpDesireState:2;
- 		ULONG		SetState:1;
- #else
--        ULONG       SetState:1; 
-+        ULONG       SetState:1;
-         ULONG       BbpDesireState:2;
-         ULONG       RfDesireState:2;
-         ULONG       BbpCurrState:2;
-@@ -1304,13 +1304,13 @@
- #ifdef BIG_ENDIAN
-         ULONG		Rsvd:15;
-         ULONG		WriteControl:1;		// 1: Write	BBP, 0:	Read BBP
--        ULONG		Busy:1;				// 1: ASIC is busy execute BBP programming.	
-+        ULONG		Busy:1;				// 1: ASIC is busy execute BBP programming.
-         ULONG		RegNum:7;			// Selected	BBP	register
- 		ULONG		Value:8;			// Register	value to program into BBP
- #else
-         ULONG       Value:8;            // Register value to program into BBP
-         ULONG       RegNum:7;           // Selected BBP register
--        ULONG       Busy:1;             // 1: ASIC is busy execute BBP programming. 
-+        ULONG       Busy:1;             // 1: ASIC is busy execute BBP programming.
-         ULONG       WriteControl:1;     // 1: Write BBP, 0: Read BBP
-         ULONG       Rsvd:15;
- #endif
-diff -Nur rt2500-1.1.0-b4/Module/rt2x00debug.h rt2500-cvs-2007061011/Module/rt2x00debug.h
---- rt2500-1.1.0-b4/Module/rt2x00debug.h	1970-01-01 01:00:00.000000000 +0100
-+++ rt2500-cvs-2007061011/Module/rt2x00debug.h	2007-02-20 20:02:18.000000000 +0100
-@@ -0,0 +1,76 @@
-+/*
-+	Copyright (C) 2004 - 2007 rt2x00 SourceForge Project
-+	<http://rt2x00.serialmonkey.com>
-+
-+	This program is free software; you can redistribute it and/or modify
-+	it under the terms of the GNU General Public License as published by
-+	the Free Software Foundation; either version 2 of the License, or
-+	(at your option) any later version.
-+
-+	This program is distributed in the hope that it will be useful,
-+	but WITHOUT ANY WARRANTY; without even the implied warranty of
-+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+	GNU General Public License for more details.
-+
-+	You should have received a copy of the GNU General Public License
-+	along with this program; if not, write to the
-+	Free Software Foundation, Inc.,
-+	59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+/*
-+	Module: rt2x00debug
-+	Abstract: Data structures for the rt2x00debug module.
-+	Supported chipsets: RT2460, RT2560, RT2570,
-+	rt2561, rt2561s, rt2661 & rt2573.
-+ */
-+
-+typedef void (debug_access_t)(void *dev, const unsigned long word, void *data);
-+
-+struct rt2x00debug_reg {
-+	debug_access_t *read;
-+	debug_access_t *write;
-+
-+	unsigned int word_size;
-+	unsigned int length;
-+};
-+
-+struct rt2x00debug {
-+	/*
-+	 * Name of the interface.
-+	 */
-+	char intf_name[16];
-+
-+	/*
-+	 * Reference to the modules structure.
-+	 */
-+	struct module *owner;
-+
-+	/*
-+	 * Driver module information
-+	 */
-+	char *mod_name;
-+	char *mod_version;
-+
-+	/*
-+	 * Register access information.
-+	 */
-+	struct rt2x00debug_reg reg_csr;
-+	struct rt2x00debug_reg reg_eeprom;
-+	struct rt2x00debug_reg reg_bbp;
-+
-+	/*
-+	 * Pointer to driver structure where
-+	 * this debugfs entry belongs to.
-+	 */
-+	void *dev;
-+
-+	/*
-+	 * Pointer to rt2x00debug private data,
-+	 * individual driver should not touch this.
-+	 */
-+	void *priv;
-+};
-+
-+extern int rt2x00debug_register(struct rt2x00debug *debug);
-+extern void rt2x00debug_deregister(struct rt2x00debug *debug);
-diff -Nur rt2500-1.1.0-b4/Module/rt_config.h rt2500-cvs-2007061011/Module/rt_config.h
---- rt2500-1.1.0-b4/Module/rt_config.h	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/rt_config.h	2007-06-10 18:35:24.000000000 +0200
-@@ -1,36 +1,36 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: rt_config.h
-- *              
-+ *
-  *      Abstract: Central header file for all includes
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      RoryC           21st Dec 02     Initial code   
-- *      MarkW           8th  Dec 04     Baseline code  
-- ***************************************************************************/ 
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      RoryC           21st Dec 02     Initial code
-+ *      MarkW           8th  Dec 04     Baseline code
-+ ***************************************************************************/
- 
- #ifndef __RT_CONFIG_H__
- #define __RT_CONFIG_H__
-@@ -39,14 +39,14 @@
- #define NIC_DEVICE_NAME             "RT2500STA"
- 
- #define	DRV_NAME	"rt2500"
--#define DRV_VERSION	"1.1.0 BETA4"
--#define DRV_RELDATE	"2006/06/18"
-+#define DRV_VERSION	"1.1.0 CVS"
-+#define DRV_RELDATE	"2007061011"
- #define DRV_VERSION_MAJOR 1
--#define DRV_VERSION_MINOR 1 
-+#define DRV_VERSION_MINOR 1
- #define DRV_VERSION_SUB 0
--#define DRV_BUILD_YEAR 2006
--#define DRV_BUILD_MONTH 06
--#define DRV_BUILD_DAY 18 
-+#define DRV_BUILD_YEAR 2007
-+#define DRV_BUILD_MONTH 05
-+#define DRV_BUILD_DAY 13
- 
- /* Operational parameters that are set at compile time. */
- #if !defined(__OPTIMIZE__)  ||  !defined(__KERNEL__)
-@@ -55,7 +55,6 @@
- #error  You must compile this driver with "-O".
- #endif
- 
--#include <linux/config.h>  //can delete
- #include <linux/module.h>
- #include <linux/version.h>
- #include <linux/kernel.h>
-@@ -71,7 +70,6 @@
- #include <linux/skbuff.h>
- #include <linux/init.h>  //can delete
- #include <linux/delay.h> // can delete
--#include <linux/ethtool.h>
- #include <linux/wireless.h>
- #include <linux/proc_fs.h>
- #include <linux/delay.h>
-@@ -90,9 +88,9 @@
- 
- // The type definition has to be placed before including rt2460.h
- #ifndef ULONG
--#define CHAR            char
-+#define CHAR            signed char
- #define INT             int
--#define SHORT           int
-+#define SHORT           short
- #define UINT            u32
- #define ULONG           u32
- #define USHORT          u16
-@@ -144,6 +142,7 @@
- #include    "rtmp_type.h"
- #include    "rtmp_def.h"
- #include    "rt2560.h"
-+#include    "rt2x00debug.h"
- #include    "rtmp.h"
- #include    "mlme.h"
- #include    "oid.h"
-@@ -156,7 +155,7 @@
-     RT2560A = 0,
- };
- 
--#ifdef RTMP_EMBEDDED
-+#if 1				//#ifdef RTMP_EMBEDDED
- #undef GFP_KERNEL
- #define GFP_KERNEL      (GFP_DMA | GFP_ATOMIC)
- #endif
-diff -Nur rt2500-1.1.0-b4/Module/rtmp.h rt2500-cvs-2007061011/Module/rtmp.h
---- rt2500-1.1.0-b4/Module/rtmp.h	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/rtmp.h	2007-06-08 20:09:53.000000000 +0200
-@@ -1,43 +1,44 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: rt_config.h
-- *              
-+ *
-  *      Abstract: Central header file for all includes
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      RoryC           21st Dec 02     Initial code   
-- *      MarkW           8th  Dec 04     Baseline code  
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      RoryC           21st Dec 02     Initial code
-+ *      MarkW           8th  Dec 04     Baseline code
-  *      MarkW (rt2400)  8th  Dec 04     Promisc mode support
-  *      Flavio (rt2400) 8th  Dec 04     Elegant irqreturn_t handling
-  *      RobinC          10th Dec 04     RFMON Support
-- *      MarkW           10th Dec 04     Rolled in Ralink 1.4.5.0 
-- *      MarkW (rt2400)  15th Dec 04     Spinlock fix 
-+ *      MarkW           10th Dec 04     Rolled in Ralink 1.4.5.0
-+ *      MarkW (rt2400)  15th Dec 04     Spinlock fix
-  *      Ivo (rt2400)    15th Dec 04     Debug level switching
-  *      GregorG         29th Mar 05     Big endian fixes
-- ***************************************************************************/ 
-+ *      RomainB         31st Dec 06     RFMON getter
-+ ***************************************************************************/
- 
- #ifndef __RTMP_H__
- #define __RTMP_H__
-@@ -62,6 +63,13 @@
- #endif /*(LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */
- #endif /* pci_name */
- 
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22))
-+#define pci_module_init	pci_register_driver
-+#endif
-+
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22))
-+#define skb_reset_mac_header(skb) (skb->mac.raw = skb->data)
-+#endif
- 
- // Krellan: Limit range of user TxPower settings from -31 to +0 dBm.
- // We could accept -31 to +31 dBm, relative to 0 dBm which is defined
-@@ -87,21 +95,40 @@
- //
- //  MACRO for debugging information
- //
--extern int    debug;
- #ifdef RT2500_DBG
--#define DBGPRINT(Level, fmt, args...) 					\
--	if(debug){printk(Level DRV_NAME ": " fmt, ## args);}
-+extern VOID rt2500_setdbg(long);
-+extern INT rt2500_dbgprint(int, const char *, ...);
-+#define DBGPRINT(mask, fmt, args...) 					\
-+	(rt2500_dbgprint(mask, KERN_DEBUG DRV_NAME ": " fmt, ## args))
-+
-+/* Do not enclose in parentheses ()! */
-+#define DBGENTER	DBGPRINT(RT_DEBUG_TRACE, "==> %s\n", __FUNCTION__)
-+#define DBGRETURN	DBGPRINT(RT_DEBUG_TRACE, "<== %s\n", __FUNCTION__)
-+
-+#define DBGHEXSTR(level, prefix, src, len)							\
-+	{																\
-+	    char			buf[128];	/* allows 64 bytes/512 bits */	\
-+		int				i, j;										\
-+		unsigned char	*p;											\
-+																	\
-+		if (len > 0) {												\
-+			j = len < sizeof(buf)/2? len: sizeof(buf)/2 - 1;		\
-+																	\
-+			for (p = (unsigned char *)(src), i = 0; i < j; i++) {	\
-+				sprintf(&buf[i*2], "%02x", *p++);					\
-+			}														\
-+			DBGPRINT(level, prefix "%s\n", buf);					\
-+		}															\
-+	}
- #else
-+#define DBGENTER
-+#define DBGRETURN
- #define DBGPRINT(Level, fmt, args...)					\
- 	while(0){}
-+#define DBGHEXSTR(level, prefix, src, len)							\
-+	while(0){}
- #endif
- 
--//
--//  spin_lock enhanced for Nested spin lock
--//
--
--extern unsigned long IrqFlags;
--
- //  Assert MACRO to make sure program running
- //
- #undef  ASSERT
-@@ -145,12 +172,12 @@
- //              ULONG Register_Offset,
- //              ULONG Value)
- //
--#ifdef RTMP_EMBEDDED
-+#if 0				//#ifdef RTMP_EMBEDDED
- #define RTMP_IO_READ32(_A, _R, _pV)     (*_pV = PCIMemRead32(__mem_pci(_A->CSRBaseAddress+_R)))
- #define RTMP_IO_WRITE32(_A, _R, _V)     (PCIMemWrite32(__mem_pci(_A->CSRBaseAddress+_R),_V))
- #else
--#define RTMP_IO_READ32(_A, _R, _pV)	(*_pV = readl( (void*) (_A->CSRBaseAddress + _R) ) )
--#define RTMP_IO_WRITE32(_A, _R, _V)	(writel(_V, (void*) (_A->CSRBaseAddress + _R) ) )
-+#define RTMP_IO_READ32(_A, _R, _pV)	(*_pV = readl((void*)(_A->CSRBaseAddress + _R) ) )
-+#define RTMP_IO_WRITE32(_A, _R, _V)	(writel(_V, (void*)(_A->CSRBaseAddress + _R) ) )
- #endif
- 
- //
-@@ -363,7 +390,7 @@
-     ULONG           RxRingErrCount;
-     ULONG           EncryptCount;
-     ULONG           KickTxCount;
--    ULONG           TxRingErrCount; 
-+    ULONG           TxRingErrCount;
-     LARGE_INTEGER	RealFcsErrCount;
- } COUNTER_RALINK, *PCOUNTER_RALINK;
- 
-@@ -400,10 +427,10 @@
- typedef struct  _WPA_KEY {
-     UCHAR   KeyLen;             // Key length for each key, 0: entry is invalid
-     UCHAR   Key[16];            // right now we implement 4 keys, 128 bits max
--    UCHAR   RxMic[8];
--    UCHAR   TxMic[8];
-+    UCHAR   RxMic[8];		// Message Integrity Code
-+    UCHAR   TxMic[8];		// MIC
-     NDIS_802_11_MAC_ADDRESS BssId;  // For pairwise key only
--    UCHAR   TxTsc[6];           // 48bit TSC value
-+    UCHAR   TxTsc[6];           // 48bit TKIP Sequence Counter value
-     UCHAR   RxTsc[6];           // 48bit TSC value
-     UCHAR   Type;               // Indicate Pairwise / Group
- }   WPA_KEY, *PWPA_KEY;
-@@ -413,7 +440,7 @@
- {
- 	union
- 	{
--		struct 
-+		struct
- 		{
- 			UCHAR		rc0;
- 			UCHAR		rc1;
-@@ -436,38 +463,36 @@
- 				UCHAR		Byte;
- 			}	CONTROL;
- 		}	field;
--		
-+
- 		ULONG	word;
- 	}	IV16;
--	
-+
- 	ULONG	IV32;
- }	TKIP_IV, *PTKIP_IV;
- #endif
- 
--typedef	struct	_IV_CONTROL_
-+typedef	struct PACKED _IV_CONTROL_
- {
--		union
--		{
--			struct
--			{
-+	union PACKED {
-+		struct PACKED {
- #ifdef BIG_ENDIAN
--				ULONG	KeyID:2;
--				ULONG	ExtIV:1;
--				ULONG	Rsvd:5;
--				ULONG	rc2:8;
--				ULONG	rc1:8;
--				ULONG	rc0:8;
-+			ULONG	KeyID:2;
-+			ULONG	ExtIV:1;
-+			ULONG	Rsvd:5;
-+			ULONG	rc2:8;
-+			ULONG	rc1:8;
-+			ULONG	rc0:8;
- #else
--				ULONG	rc0:8;
--				ULONG	rc1:8;
--				ULONG	rc2:8;
--				ULONG	Rsvd:5;
--				ULONG	ExtIV:1;
--				ULONG	KeyID:2;
-+			ULONG	rc0:8;
-+			ULONG	rc1:8;
-+			ULONG	rc2:8;
-+			ULONG	Rsvd:5;
-+			ULONG	ExtIV:1;
-+			ULONG	KeyID:2;
- #endif
--			}field;
--			ULONG	word;
--		}IV16;
-+		}field;
-+		ULONG	word;
-+	}IV16;
- 
- 	ULONG	IV32;
- }	TKIP_IV, *PTKIP_IV;
-@@ -499,7 +524,7 @@
- 
- typedef struct _SOFT_RX_ANT_DIVERSITY_STRUCT {
-     BOOLEAN   PrimaryInUsed;
--    BOOLEAN   FirstPktArrivedWhenEvaluate;     
-+    BOOLEAN   FirstPktArrivedWhenEvaluate;
-     UCHAR     PrimaryRxAnt;     // 0:Ant-A, 1:Ant-B
-     UCHAR     SecondaryRxAnt;   // 0:Ant-A, 1:Ant-B
-     UCHAR     CurrentRxAnt;     // 0:Ant-A, 1:Ant-B
-@@ -535,7 +560,7 @@
- 
-     NDIS_802_11_AUTHENTICATION_MODE     AuthMode;   // This should match to whatever microsoft defined
-     NDIS_802_11_WEP_STATUS              WepStatus;
--    
-+
-     // MIB:ieee802dot11.dot11smt(1).dot11WEPDefaultKeysTable(3)
-     WEP_KEY   SharedKey[SHARE_KEY_NO];      // Keep for backward compatiable
-     WPA_KEY   PairwiseKey[PAIRWISE_KEY_NO];
-@@ -566,8 +591,8 @@
-     // MIB:ieee802dot11.dot11mac(2).dot11OperationTable(1)
-     USHORT    RtsThreshold;       // in units of BYTE
-     USHORT    FragmentThreshold;
--    BOOLEAN   bFragmentZeroDisable;     // Microsoft use 0 as disable 
--    
-+    BOOLEAN   bFragmentZeroDisable;     // Microsoft use 0 as disable
-+
-     // MIB:ieee802dot11.dot11phy(4).dot11PhyAntennaTable(2)
-     UCHAR     CurrentTxAntenna;
-     UCHAR     CurrentRxAntenna;
-@@ -582,19 +607,19 @@
-     UCHAR     TxPowerDriver;	// Driver's last TxPower setting written to hardware, in raw units
-     int       TxPowerUser;		// User's desired fixed TxPower setting, in dBm
-     BOOLEAN   TxPowerAuto;    // 1 - enable auto TxPower; 0 - fixed
--    
-+
-     // MIB:ieee802dot11.dot11phy(4).dot11PhyDSSSTable(5)
-     UCHAR     Channel;        // current (I)BSS channel used in the station
-     UCHAR     CountryRegion;    // Enum of country region, 0:FCC, 1:IC, 2:ETSI, 3:SPAIN, 4:France, 5:MKK, 6:MKK1, 7:Israel
--    
-+
-     // MIB:ieee802dot11.dot11phy(4).dot11AntennasListTable(8)
-     BOOLEAN AntennaSupportTx;
-     BOOLEAN AntennaSupportRx;
-     BOOLEAN AntennaSupportDiversityRx;
- 
-     // Use user changed MAC
--    BOOLEAN bLocalAdminMAC;                           
--    
-+    BOOLEAN bLocalAdminMAC;
-+
-     // MIB:ieee802dot11.dot11phy(4).dot11SupportedDataRatesTxTable(9)
-     // MIB:ieee802dot11.dot11phy(4).dot11SupportedDataRatesRxTable(10)
-     UCHAR     SupportedRates[MAX_LEN_OF_SUPPORTED_RATES];    // Supported rates
-@@ -661,7 +686,7 @@
-     UCHAR     ChannelList[MAX_LEN_OF_CHANNELS];         // list all supported channels for site survey
-     UCHAR     ChannelListNum;                           // number of channel in ChannelList[]
-     BOOLEAN   bShowHiddenSSID;
--    
-+
-     // configuration to be used when this STA starts a new ADHOC network
-     IBSS_CONFIG IbssConfig;
- 
-@@ -679,7 +704,7 @@
-     UCHAR                   LedMode;
-     RALINK_TIMER_STRUCT       RfTuningTimer;
-     STA_WITH_ETHER_BRIDGE               StaWithEtherBridge;
--    
-+
-     // New for WPA, windows want us to to keep association information and
-     // Fixed IEs from last association response
-     NDIS_802_11_ASSOCIATION_INFORMATION     AssocInfo;
-@@ -700,7 +725,7 @@
-     ULONG     BGProtectionInUsed;   // 0: not in-used, 1: in-used
-     ULONG     ShortSlotInUsed;      // 0: not in-used, 1: in-used
-     USHORT    TxPreambleInUsed;     // Rt802_11PreambleLong, Rt802_11PreambleShort
--    
-+
-     // PCI clock adjustment round
-     UCHAR       PciAdjustmentRound;
- 
-@@ -718,8 +743,8 @@
- 
- 
-     ULONG                         SystemErrorBitmap;  // b0: E2PROM version error
--    
--    // This soft Rx Antenna Diversity mechanism is used only when user set 
-+
-+    // This soft Rx Antenna Diversity mechanism is used only when user set
-     // RX Antenna = DIVERSITY ON
-     SOFT_RX_ANT_DIVERSITY         RxAnt;
- 
-@@ -753,13 +778,13 @@
-     STATE_MACHINE_FUNC      CntlFunc[CNTL_FUNC_SIZE], AssocFunc[ASSOC_FUNC_SIZE];
-     STATE_MACHINE_FUNC      AuthFunc[AUTH_FUNC_SIZE], AuthRspFunc[AUTH_RSP_FUNC_SIZE];
-     STATE_MACHINE_FUNC      SyncFunc[SYNC_FUNC_SIZE], WpaPskFunc[WPA_PSK_FUNC_SIZE];
--    
-+
-     ASSOC_AUX               AssocAux;
-     AUTH_AUX                AuthAux;
-     AUTH_RSP_AUX            AuthRspAux;
-     SYNC_AUX                SyncAux;
-     CNTL_AUX                CntlAux;
--    
-+
-     COUNTER_802_11          PrevWlanCounters;
-     ULONG                   ChannelQuality;  // 0..100, Channel Quality Indication for Roaming
- 
-@@ -770,7 +795,7 @@
-     UINT                    ShiftReg;
-     PSPOLL_FRAME            PsFr;
-     MACHDR                  NullFr;
--    
-+
-     RALINK_TIMER_STRUCT     PeriodicTimer;
-     ULONG                   PeriodicRound;
-     ULONG                   PrevTxCnt;
-@@ -849,7 +874,7 @@
- typedef struct PACKED _TUPLE_CACHE    {
-     BOOLEAN         Valid;
-     MACADDR         MAC;
--    USHORT          Sequence; 
-+    USHORT          Sequence;
-     USHORT          Frag;
- }   TUPLE_CACHE, *PTUPLE_CACHE;
- 
-@@ -872,7 +897,7 @@
- typedef struct PACKED _TKIP_KEY_INFO  {
-     UINT        nBytesInM;  // # bytes in M for MICKEY
-     ULONG       IV16;
--    ULONG       IV32;   
-+    ULONG       IV32;
-     ULONG       K0;         // for MICKEY Low
-     ULONG       K1;         // for MICKEY Hig
-     ULONG       L;          // Current state for MICKEY
-@@ -937,12 +962,14 @@
- //
- typedef struct _RTMP_ADAPTER
- {
--    char nickn[IW_ESSID_MAX_SIZE+1]; // nickname, only used in the iwconfig i/f 
-+    char nickn[IW_ESSID_MAX_SIZE+1]; // nickname, only used in the iwconfig i/f
-     int chip_id;
- 
-     unsigned long           CSRBaseAddress;     // PCI MMIO Base Address, all access will use
-                                                 // NdisReadRegisterXx or NdisWriteRegisterXx
- 
-+	struct rt2x00debug debug;
-+
-     // configuration
-     UCHAR                   PermanentAddress[ETH_ALEN];    // Factory default MAC address
-     UCHAR                   CurrentAddress[ETH_ALEN];      // User changed MAC address
-@@ -958,7 +985,7 @@
-     struct ring_desc        BeaconRing;                 // Beacon Ring, only one
- 
-     MGMT_STRUC              MgmtRing[MGMT_RING_SIZE];   // management ring size
--    
-+
-     ULONG                   CurRxIndex;                 // Next RxD read pointer
-     ULONG                   CurDecryptIndex;            // Next RxD decrypt read pointer
-     ULONG                   CurTxIndex;                 // Next TxD write pointer
-@@ -985,17 +1012,17 @@
-     struct sk_buff_head            TxSwQueue0;                 // Tx software priority queue 0 mapped to 0.1
-     struct sk_buff_head            TxSwQueue1;                 // Tx software priority queue 1 mapped to 2.3
-     struct sk_buff_head            TxSwQueue2;                 // Tx software priority queue 2 mapped to 4.5
--    struct sk_buff_head            TxSwQueue3; 
-+    struct sk_buff_head            TxSwQueue3;
- 
-     USHORT                  Sequence;                   // Current sequence number
- 
-     TUPLE_CACHE             TupleCache[MAX_CLIENT];     // Maximum number of tuple caches, only useful in Ad-Hoc
-     UCHAR                   TupleCacheLastUpdateIndex;  // 0..MAX_CLIENT-1
-     FRAGMENT_FRAME          FragFrame;                  // Frame storage for fragment frame
--    
-+
-     // For MiniportTransferData
-     PUCHAR                  pRxData;                    // Pointer to current RxRing offset / fragment frame offset
--    
-+
-     // Counters for 802.3 & generic.
-     // Add 802.11 specific counters later
-     COUNTER_802_3           Counters;                   // 802.3 counters
-@@ -1021,11 +1048,11 @@
-     BOOLEAN                 bAcceptBroadcast;
-     BOOLEAN                 bAcceptAllMulticast;
-     BOOLEAN                 bAcceptPromiscuous;
--    
-+
-     // Control to check Tx hang
-     BOOLEAN                 bTxBusy;
-     //PQUEUE_ENTRY            FirstEntryInQueue;      // The first packet in Tx queue
--    
-+
-     // Control disconnect / connect event generation
-     ULONG                   LinkDownTime;
-     ULONG                   LastRxRate;
-@@ -1044,7 +1071,7 @@
- 
-     BOOLEAN                 bNetDeviceStopQueue;
-     BOOLEAN                 NeedSwapToLittleEndian;
--    
-+
- #if WIRELESS_EXT >= 12
-     struct iw_statistics iw_stats;
- #endif
-@@ -1054,9 +1081,6 @@
- 	ATE_INFO				ate;
- #endif	//#ifdef RALINK_ATE
- 
--#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
--    struct work_struct mlme_work;
--#endif
- }   RTMP_ADAPTER, *PRTMP_ADAPTER;
- 
- //
-@@ -1064,10 +1088,9 @@
- //
- typedef struct _SHA_CTX
- {
--    ULONG       H[5];
--    ULONG       W[80];
--    INT         lenW;
--    ULONG       sizeHi, sizeLo;
-+    ULONG Buf[5];		// buffers of five states
-+    UCHAR Input[80];		// input message
-+    ULONG LenInBitCount[2];	// length counter for input message, 0 up to 64 bits
- }   SHA_CTX;
- 
- //
-@@ -1085,7 +1108,7 @@
-     IN  PRTMP_ADAPTER   pAd)
- {
-     // 0xFF37 : Txdone & Rxdone, 0xFF07: Txdonw, Rxdone, PrioDone, AtimDone,
--    RTMP_IO_WRITE32(pAd, CSR8, 0xFE14);     
-+    RTMP_IO_WRITE32(pAd, CSR8, 0xFE14);
-     RTMP_SET_FLAG(pAd, fRTMP_ADAPTER_INTERRUPT_ACTIVE);
- }
- 
-@@ -1096,10 +1119,16 @@
- INT     RT2500_close(
-     IN  struct net_device *net_dev);
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
- irqreturn_t RTMPIsr(
--    IN  INT             irq, 
--    IN  VOID            *dev_instance, 
-+    IN  INT             irq,
-+    IN  VOID            *dev_instance,
-     IN  struct pt_regs  *rgs);
-+#else
-+irqreturn_t RTMPIsr(
-+    IN  INT             irq,
-+    IN  VOID            *dev_instance);
-+#endif
- 
- VOID    RT2500_timer(
-     IN  unsigned long data);
-@@ -1108,16 +1137,16 @@
-     IN  struct net_device *net_dev);
- 
- INT     RTMPSendPackets(
--    IN  struct sk_buff *skb, 
-+    IN  struct sk_buff *skb,
-     IN  struct net_device *net_dev);
- 
- INT     RT2500_probe(
--    IN  struct pci_dev              *pPci_Dev, 
-+    IN  struct pci_dev              *pPci_Dev,
-     IN  const struct pci_device_id  *ent);
- 
- INT     RT2500_ioctl(
--    IN  struct net_device   *net_dev, 
--    IN  OUT struct ifreq    *rq, 
-+    IN  struct net_device   *net_dev,
-+    IN  OUT struct ifreq    *rq,
-     IN  INT                 cmd);
- 
- VOID    RTMPRingCleanUp(
-@@ -1179,7 +1208,7 @@
- INT RTMPGetKeyParameter(
-     IN  PUCHAR  section,
-     IN  PCHAR   key,
--    OUT PCHAR   dest,   
-+    OUT PCHAR   dest,
-     IN  INT     destsize,
-     IN  PCHAR   buffer);
- 
-@@ -1187,7 +1216,7 @@
-     IN  PRTMP_ADAPTER   pAd);
- 
- #define RTMPEqualMemory(p1,p2,n) (memcmp((p1),(p2),(n)) == 0)
--    
-+
- ULONG   RTMPCompareMemory(
-     IN  PVOID   pSrc1,
-     IN  PVOID   pSrc2,
-@@ -1244,7 +1273,7 @@
- NDIS_STATUS RTMPSendPacket(
-     IN  PRTMP_ADAPTER   pAdapter,
-     IN  struct sk_buff *skb);
--    
-+
- //VOID  RTMPDeQueuePacket(
- //    IN    PRTMP_ADAPTER   pAdapter,
- //    IN    PQUEUE_HEADER   pQueue);
-@@ -1320,8 +1349,8 @@
-     IN  UCHAR           TxRate);
- 
- NDIS_STATUS RTMPApplyPacketFilter(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  PRXD_STRUC      pRxD, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  PRXD_STRUC      pRxD,
-     IN  PHEADER_802_11  pHeader);
- 
- struct sk_buff_head* RTMPCheckTxSwQueue(
-@@ -1329,20 +1358,20 @@
-     OUT UCHAR           *AccessCategory);
- 
- VOID    RTMPReportMicError(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PWPA_KEY        pWpaKey);
- //
- // Private routines in rtmp_wep.c
- //
- VOID    RTMPInitWepEngine(
--    IN  PRTMP_ADAPTER   pAdapter,   
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          pKey,
-     IN  UCHAR           KeyId,
--    IN  UCHAR           KeyLen, 
-+    IN  UCHAR           KeyLen,
-     IN  PUCHAR          pDest);
- 
- VOID    RTMPEncryptData(
--    IN  PRTMP_ADAPTER   pAdapter,   
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          pSrc,
-     IN  PUCHAR          pDest,
-     IN  UINT            Len);
-@@ -1366,7 +1395,7 @@
- 
- VOID    ARCFOUR_DECRYPT(
-     IN  PARCFOURCONTEXT Ctx,
--    IN  PUCHAR          pDest, 
-+    IN  PUCHAR          pDest,
-     IN  PUCHAR          pSrc,
-     IN  UINT            Len);
- 
-@@ -1394,18 +1423,18 @@
-     IN PRTMP_ADAPTER pAd);
- 
- VOID    AsicSwitchChannel(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN UCHAR Channel);
- 
- VOID    AsicLockChannel(
--    IN PRTMP_ADAPTER pAd, 
-+    IN PRTMP_ADAPTER pAd,
-     IN UCHAR Channel) ;
- 
- VOID AsicRfTuningExec(
-     IN unsigned long data);
- 
- VOID    AsicSleepThenAutoWakeup(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  USHORT TbttNumToNextWakeUp);
- 
- VOID    AsicForceSleep(
-@@ -1415,7 +1444,7 @@
-     IN PRTMP_ADAPTER pAdapter);
- 
- VOID    AsicSetBssid(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MACADDR *Bssid);
- 
- VOID    AsicDisableSync(
-@@ -1453,16 +1482,16 @@
-     IN PRTMP_ADAPTER pAd);
- 
- VOID    MacAddrRandomBssid(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     OUT PMACADDR Addr);
- 
- VOID    MgtMacHeaderInit(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN OUT PMACHDR Hdr, 
--    IN UCHAR Subtype, 
--    IN UCHAR ToDs, 
--//  IN UCHAR AddrType, 
--    IN PMACADDR Ds, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN OUT PMACHDR Hdr,
-+    IN UCHAR Subtype,
-+    IN UCHAR ToDs,
-+//  IN UCHAR AddrType,
-+    IN PMACADDR Ds,
-     IN PMACADDR Bssid);
- 
- VOID MlmeRadioOff(
-@@ -1475,66 +1504,69 @@
-     IN BSS_TABLE *Tab);
- 
- ULONG BssTableSearch(
--    IN BSS_TABLE *Tab, 
-+    IN BSS_TABLE *Tab,
-     IN PMACADDR Bssid);
- 
- VOID BssTableDeleteEntry(
--    IN OUT  BSS_TABLE *Tab, 
-+    IN OUT  BSS_TABLE *Tab,
-     IN      PMACADDR Bssid);
- 
- VOID  BssEntrySet(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    OUT BSS_ENTRY *Bss, 
--    IN MACADDR *Bssid, 
--    IN CHAR Ssid[], 
--    IN UCHAR SsidLen, 
--    IN UCHAR BssType, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    OUT BSS_ENTRY *Bss,
-+    IN MACADDR *Bssid,
-+    IN CHAR Ssid[],
-+    IN UCHAR SsidLen,
-+    IN UCHAR BssType,
-     IN USHORT BeaconPeriod,
--    IN BOOLEAN CfExist, 
--    IN CF_PARM *CfParm, 
--    IN USHORT AtimWin, 
--    IN USHORT CapabilityInfo, 
--    IN UCHAR Rates[], 
-+    IN BOOLEAN CfExist,
-+    IN CF_PARM *CfParm,
-+    IN USHORT AtimWin,
-+    IN USHORT CapabilityInfo,
-+    IN UCHAR Rates[],
-     IN UCHAR RatesLen,
-     IN BOOLEAN ExtendedRateIeExist,
-     IN UCHAR Channel,
-     IN UCHAR Rssi,
-     IN UCHAR Noise,
-     IN LARGE_INTEGER TimeStamp,
-+    IN USHORT VarIELen,          // Length of all saved IEs.
-     IN PNDIS_802_11_VARIABLE_IEs pVIE);
- 
- ULONG  BssTableSetEntry(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    OUT BSS_TABLE *Tab, 
--    IN MACADDR *Bssid, 
--    IN CHAR Ssid[], 
--    IN UCHAR SsidLen, 
--    IN UCHAR BssType, 
--    IN USHORT BeaconPeriod, 
--    IN BOOLEAN CfExist, 
--    IN CF_PARM *CfParm, 
--    IN USHORT AtimWin, 
--    IN USHORT CapabilityInfo, 
--    IN UCHAR Rates[], 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    OUT BSS_TABLE *Tab,
-+    IN MACADDR *Bssid,
-+    IN CHAR Ssid[],
-+    IN UCHAR SsidLen,
-+    IN UCHAR BssType,
-+    IN USHORT BeaconPeriod,
-+    IN BOOLEAN CfExist,
-+    IN CF_PARM *CfParm,
-+    IN USHORT AtimWin,
-+    IN USHORT CapabilityInfo,
-+    IN UCHAR Rates[],
-     IN UCHAR RatesLen,
-     IN BOOLEAN ExtendedRateIeExist,
-     IN UCHAR Channel,
-     IN UCHAR Rssi,
-     IN UCHAR Noise,
-     IN LARGE_INTEGER TimeStamp,
-+    IN USHORT VarIELen,          // Length of all saved IEs.
-     IN PNDIS_802_11_VARIABLE_IEs pVIE);
- 
- VOID  BssTableSsidSort(
--    IN  PRTMP_ADAPTER   pAd, 
--    OUT BSS_TABLE *OutTab, 
--    IN  CHAR Ssid[], 
-+    IN  PRTMP_ADAPTER   pAd,
-+    OUT BSS_TABLE *OutTab,
-+    IN  CHAR Ssid[],
-     IN  UCHAR SsidLen);
- 
- VOID  BssTableSortByRssi(
-     IN OUT BSS_TABLE *OutTab);
- 
--NDIS_802_11_WEP_STATUS  BssCipherParse(
--    IN  PUCHAR  pCipher);
-+USHORT  BssCipherParse(
-+    IN  PBEACON_EID_STRUCT	pEid,
-+    IN  USHORT              VarIELen); // Length of all saved IEs.
- 
- NDIS_STATUS  MlmeQueueInit(
-     IN MLME_QUEUE *Queue);
-@@ -1543,70 +1575,64 @@
-     IN MLME_QUEUE *Queue);
- 
- BOOLEAN MlmeEnqueue(
--    OUT MLME_QUEUE *Queue, 
--    IN ULONG Machine, 
--    IN ULONG MsgType, 
--    IN ULONG MsgLen, 
-+    OUT MLME_QUEUE *Queue,
-+    IN ULONG Machine,
-+    IN ULONG MsgType,
-+    IN ULONG MsgLen,
-     IN VOID *Msg);
- 
- BOOLEAN MlmeEnqueueForRecv(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    OUT MLME_QUEUE *Queue, 
--    IN ULONG TimeStampHigh, 
--    IN ULONG TimeStampLow, 
--    IN UCHAR Rssi, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    OUT MLME_QUEUE *Queue,
-+    IN ULONG TimeStampHigh,
-+    IN ULONG TimeStampLow,
-+    IN UCHAR Rssi,
-     IN UCHAR Noise,
--    IN ULONG MsgLen, 
-+    IN ULONG MsgLen,
-     IN PVOID Msg);
- 
- BOOLEAN MlmeDequeue(
--    IN MLME_QUEUE *Queue, 
-+    IN MLME_QUEUE *Queue,
-     OUT MLME_QUEUE_ELEM **Elem);
- 
- VOID    MlmeRestartStateMachine(
-     IN  PRTMP_ADAPTER   pAd);
- 
--BOOLEAN MlmeQueueEmpty(
--    IN MLME_QUEUE *Queue);
--
--BOOLEAN MlmeQueueFull(
--    IN MLME_QUEUE *Queue);
--
- BOOLEAN  MsgTypeSubst(
--    IN MACFRAME *Fr, 
--    OUT INT *Machine, 
-+    IN MACFRAME *Fr,
-+    OUT INT *Machine,
-     OUT INT *MsgType);
- 
- VOID StateMachineInit(
--    IN STATE_MACHINE *Sm, 
--    IN STATE_MACHINE_FUNC Trans[], 
--    IN ULONG StNr, 
--    IN ULONG MsgNr, 
--    IN STATE_MACHINE_FUNC DefFunc, 
--    IN ULONG InitState, 
-+    IN STATE_MACHINE *Sm,
-+    IN STATE_MACHINE_FUNC Trans[],
-+    IN ULONG StNr,
-+    IN ULONG MsgNr,
-+    IN STATE_MACHINE_FUNC DefFunc,
-+    IN ULONG InitState,
-     IN ULONG Base);
- 
- VOID StateMachineSetAction(
--    IN STATE_MACHINE *S, 
--    IN ULONG St, 
--    ULONG Msg, 
-+    IN STATE_MACHINE *S,
-+    IN ULONG St,
-+    ULONG Msg,
-     IN STATE_MACHINE_FUNC F);
- 
- VOID StateMachinePerformAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN STATE_MACHINE *S, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN STATE_MACHINE *S,
-     IN MLME_QUEUE_ELEM *Elem);
- 
- VOID Drop(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN MLME_QUEUE_ELEM *Elem);
- 
- VOID StateMachineDestroy(
-     IN STATE_MACHINE *Sm);
- 
- VOID  AssocStateMachineInit(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  STATE_MACHINE *Sm, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  STATE_MACHINE *Sm,
-     OUT STATE_MACHINE_FUNC Trans[]);
- 
- VOID  ReassocTimeout(
-@@ -1620,43 +1646,43 @@
- 
- //----------------------------------------------
- VOID  MlmeDisassocReqAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID  MlmeAssocReqAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID  MlmeReassocReqAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID  MlmeDisassocReqAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID  PeerAssocRspAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID  PeerReassocRspAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID  PeerDisassocAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID  DisassocTimeoutAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID  AssocTimeoutAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID  ReassocTimeoutAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID  Cls3errAction(
-@@ -1682,60 +1708,60 @@
-     IN  PRTMP_ADAPTER   pAdapter);
- 
- VOID  AssocPostProc(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  MACADDR *Addr2, 
--    IN  USHORT CapabilityInfo, 
--    IN  USHORT Aid, 
--    IN  UCHAR Rates[], 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  MACADDR *Addr2,
-+    IN  USHORT CapabilityInfo,
-+    IN  USHORT Aid,
-+    IN  UCHAR Rates[],
-     IN  UCHAR RatesLen,
-     IN  BOOLEAN ExtendedRateIeExist);
- 
- VOID AuthStateMachineInit(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN PSTATE_MACHINE sm, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN PSTATE_MACHINE sm,
-     OUT STATE_MACHINE_FUNC Trans[]);
- 
- VOID AuthTimeout(
-     IN  unsigned long data);
- 
- VOID MlmeAuthReqAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID PeerAuthRspAtSeq2Action(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID PeerAuthRspAtSeq4Action(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID AuthTimeoutAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID Cls2errAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PMACADDR pAddr);
- 
- VOID MlmeDeauthReqAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID InvalidStateWhenAuth(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- //VOID MlmeDeauthReqProc(
--//    IN    PRTMP_ADAPTER   pAdapter, 
--//    IN  MACADDR *Addr, 
-+//    IN    PRTMP_ADAPTER   pAdapter,
-+//    IN  MACADDR *Addr,
- //    IN  USHORT Reason);
- 
- //=============================================
- 
- VOID AuthRspStateMachineInit(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  PSTATE_MACHINE Sm, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  PSTATE_MACHINE Sm,
-     IN  STATE_MACHINE_FUNC Trans[]);
- 
- 
-@@ -1743,34 +1769,34 @@
-     IN  unsigned long data);
- 
- VOID AuthRspChallengeTimeoutAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID PeerAuthAtAuthRspIdleAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID PeerAuthAtAuthRspWaitAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID PeerDeauthAction(
--    IN  PRTMP_ADAPTER   pAdaptor, 
-+    IN  PRTMP_ADAPTER   pAdaptor,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID PeerAuthSimpleRspGenAndSend(
--    IN  PRTMP_ADAPTER pAdapter, 
--    IN  PMACHDR Hdr, 
--    IN  USHORT Alg, 
--    IN  USHORT Seq, 
--    IN  USHORT Reason, 
-+    IN  PRTMP_ADAPTER pAdapter,
-+    IN  PMACHDR Hdr,
-+    IN  USHORT Alg,
-+    IN  USHORT Seq,
-+    IN  USHORT Reason,
-     IN  USHORT Status);
- 
- //========================================
- 
- VOID SyncStateMachineInit(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  STATE_MACHINE *Sm, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  STATE_MACHINE *Sm,
-     OUT STATE_MACHINE_FUNC Trans[]);
- 
- VOID BeaconTimeout(
-@@ -1783,23 +1809,23 @@
-     IN  unsigned long data);
- 
- VOID MlmeScanReqAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID InvalidStateWhenScan(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID InvalidStateWhenJoin(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID InvalidStateWhenStart(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID PeerBeacon(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID EnqueueProbeRequest(
-@@ -1808,61 +1834,61 @@
- //=========================================
- 
- VOID MlmeCntlInit(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  STATE_MACHINE *S, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  STATE_MACHINE *S,
-     OUT STATE_MACHINE_FUNC Trans[]);
- 
- VOID MlmeCntlMachinePerformAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  STATE_MACHINE *S, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  STATE_MACHINE *S,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID CntlIdleProc(
--    IN PRTMP_ADAPTER pAdapter, 
-+    IN PRTMP_ADAPTER pAdapter,
-     IN MLME_QUEUE_ELEM *Elem);
- 
- VOID CntlOidScanProc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID CntlOidSsidProc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM * Elem);
- 
- VOID CntlOidRTBssidProc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID CntlMlmeRoamingProc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID CntlWaitDisassocProc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID CntlWaitJoinProc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID CntlWaitReassocProc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID CntlWaitStartProc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID CntlWaitAuthProc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID CntlWaitAuthProc2(
--    IN  PRTMP_ADAPTER pAdapter, 
-+    IN  PRTMP_ADAPTER pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID CntlWaitAssocProc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID LinkUp(
-@@ -1873,8 +1899,8 @@
-     IN  PRTMP_ADAPTER   pAdapter);
- 
- VOID MlmeCntlConfirm(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  ULONG MsgType, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  ULONG MsgType,
-     IN  USHORT Msg);
- 
- VOID IterateOnBssTab(
-@@ -1884,42 +1910,42 @@
-     IN  PRTMP_ADAPTER   pAdapter);;
- 
- VOID JoinParmFill(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  OUT MLME_JOIN_REQ_STRUCT *JoinReq, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  OUT MLME_JOIN_REQ_STRUCT *JoinReq,
-     IN  ULONG BssIdx);
- 
- VOID AssocParmFill(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN OUT MLME_ASSOC_REQ_STRUCT *AssocReq, 
--    IN  MACADDR *Addr, 
--    IN  USHORT CapabilityInfo, 
--    IN  ULONG Timeout, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN OUT MLME_ASSOC_REQ_STRUCT *AssocReq,
-+    IN  MACADDR *Addr,
-+    IN  USHORT CapabilityInfo,
-+    IN  ULONG Timeout,
-     IN  USHORT ListenIntv);
- 
- VOID ScanParmFill(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  OUT MLME_SCAN_REQ_STRUCT *ScanReq, 
--    IN  CHAR Ssid[], 
--    IN  UCHAR SsidLen, 
--    IN  UCHAR BssType, 
--    IN  UCHAR ScanType); 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  OUT MLME_SCAN_REQ_STRUCT *ScanReq,
-+    IN  CHAR Ssid[],
-+    IN  UCHAR SsidLen,
-+    IN  UCHAR BssType,
-+    IN  UCHAR ScanType);
- 
- VOID DisassocParmFill(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  OUT MLME_DISASSOC_REQ_STRUCT *DisassocReq, 
--    IN  MACADDR *Addr, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  OUT MLME_DISASSOC_REQ_STRUCT *DisassocReq,
-+    IN  MACADDR *Addr,
-     IN  USHORT Reason);
- 
- VOID StartParmFill(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  OUT MLME_START_REQ_STRUCT *StartReq, 
--    IN  CHAR Ssid[], 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  OUT MLME_START_REQ_STRUCT *StartReq,
-+    IN  CHAR Ssid[],
-     IN  UCHAR SsidLen);
- 
- VOID AuthParmFill(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  OUT MLME_AUTH_REQ_STRUCT *AuthReq, 
--    IN  MACADDR *Addr, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  OUT MLME_AUTH_REQ_STRUCT *AuthReq,
-+    IN  MACADDR *Addr,
-     IN  USHORT Alg);
- 
- VOID EnqueuePsPoll(
-@@ -1933,39 +1959,39 @@
-     IN  UCHAR         TxRate);
- 
- VOID MlmeJoinReqAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID MlmeScanReqAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID MlmeStartReqAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID ScanTimeoutAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID BeaconTimeoutAtJoinAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID PeerBeaconAtScanAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID PeerBeaconAtJoinAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID PeerBeacon(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID PeerProbeReqAction(
--    IN  PRTMP_ADAPTER pAd, 
-+    IN  PRTMP_ADAPTER pAd,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID ScanNextChannel(
-@@ -1975,142 +2001,143 @@
-     IN  PRTMP_ADAPTER pAdapter);
- 
- BOOLEAN MlmeScanReqSanity(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  VOID *Msg, 
--    IN  ULONG MsgLen, 
--    OUT UCHAR *BssType, 
--    OUT CHAR ssid[], 
--    OUT UCHAR *SsidLen, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  VOID *Msg,
-+    IN  ULONG MsgLen,
-+    OUT UCHAR *BssType,
-+    OUT CHAR ssid[],
-+    OUT UCHAR *SsidLen,
-     OUT UCHAR *ScanType);
- 
- BOOLEAN PeerBeaconAndProbeRspSanity(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  VOID *Msg, 
--    IN  ULONG MsgLen, 
--    OUT MACADDR *Addr2, 
--    OUT MACADDR *Bssid, 
--    OUT CHAR Ssid[], 
--    OUT UCHAR *SsidLen, 
--    OUT UCHAR *BssType, 
--    OUT USHORT *BeaconPeriod, 
--    OUT UCHAR *Channel, 
--    OUT LARGE_INTEGER *Timestamp, 
--    OUT BOOLEAN *CfExist, 
--    OUT CF_PARM *Cf, 
--    OUT USHORT *AtimWin, 
--    OUT USHORT *CapabilityInfo, 
--    OUT UCHAR Rate[], 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  VOID *Msg,
-+    IN  ULONG MsgLen,
-+    OUT MACADDR *Addr2,
-+    OUT MACADDR *Bssid,
-+    OUT CHAR Ssid[],
-+    OUT UCHAR *SsidLen,
-+    OUT UCHAR *BssType,
-+    OUT USHORT *BeaconPeriod,
-+    OUT UCHAR *Channel,
-+    OUT LARGE_INTEGER *Timestamp,
-+    OUT BOOLEAN *CfExist,
-+    OUT CF_PARM *Cf,
-+    OUT USHORT *AtimWin,
-+    OUT USHORT *CapabilityInfo,
-+    OUT UCHAR Rate[],
-     OUT UCHAR *RateLen,
-     OUT BOOLEAN *ExtendedRateIeExist,
-     OUT UCHAR *Erp,
--    OUT UCHAR *DtimCount, 
--    OUT UCHAR *DtimPeriod, 
--    OUT UCHAR *BcastFlag, 
--    OUT UCHAR *MessageToMe, 
-+    OUT UCHAR *DtimCount,
-+    OUT UCHAR *DtimPeriod,
-+    OUT UCHAR *BcastFlag,
-+    OUT UCHAR *MessageToMe,
-     OUT UCHAR *Legacy,
-     OUT UCHAR SupRate[],
- 	OUT UCHAR *SupRateLen,
- 	OUT UCHAR ExtRate[],
- 	OUT UCHAR *ExtRateLen,
-+    OUT USHORT *VarIELen,	// Length of all saved IEs.
-     OUT	PNDIS_802_11_VARIABLE_IEs pVIE);
- 
- //BOOLEAN JoinParmSanity(
--//    IN    PRTMP_ADAPTER   pAdapter, 
--//    IN  VOID *Msg, 
--//    IN  ULONG MsgLen, 
-+//    IN    PRTMP_ADAPTER   pAdapter,
-+//    IN  VOID *Msg,
-+//    IN  ULONG MsgLen,
- //    OUT ULONG *BssIdx,
--//    OUT UCHAR SupportedRates[], 
-+//    OUT UCHAR SupportedRates[],
- //    OUT UCHAR *SupportedRatesLen);
- 
- BOOLEAN MlmeAssocReqSanity(
-     IN  PRTMP_ADAPTER   pAdapter,
--    IN  VOID *Msg, 
--    IN  ULONG MsgLen, 
--    OUT MACADDR *ApAddr, 
--    OUT USHORT *CapabilityInfo, 
--    OUT ULONG *Timeout, 
-+    IN  VOID *Msg,
-+    IN  ULONG MsgLen,
-+    OUT MACADDR *ApAddr,
-+    OUT USHORT *CapabilityInfo,
-+    OUT ULONG *Timeout,
-     OUT USHORT *ListenIntv);
- 
- BOOLEAN MlmeAuthReqSanity(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  VOID *Msg, 
--    IN  ULONG MsgLen, 
--    OUT MACADDR *Addr, 
--    OUT ULONG *Timeout, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  VOID *Msg,
-+    IN  ULONG MsgLen,
-+    OUT MACADDR *Addr,
-+    OUT ULONG *Timeout,
-     OUT USHORT *Alg);
- 
- BOOLEAN MlmeStartReqSanity(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  VOID *Msg, 
--    IN  ULONG MsgLen, 
--    OUT CHAR Ssid[], 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  VOID *Msg,
-+    IN  ULONG MsgLen,
-+    OUT CHAR Ssid[],
-     OUT UCHAR *Ssidlen);
- 
- BOOLEAN PeerAuthSanity(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  VOID *Msg, 
--    IN  ULONG MsgLen, 
--    OUT MACADDR *Addr, 
--    OUT USHORT *Alg, 
--    OUT USHORT *Seq, 
--    OUT USHORT *Status, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  VOID *Msg,
-+    IN  ULONG MsgLen,
-+    OUT MACADDR *Addr,
-+    OUT USHORT *Alg,
-+    OUT USHORT *Seq,
-+    OUT USHORT *Status,
-     OUT CHAR ChlgText[]);
- 
- BOOLEAN PeerAssocRspSanity(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  VOID *Msg, 
--    IN  ULONG MsgLen, 
--    OUT MACADDR *Addr2, 
--    OUT USHORT *CapabilityInfo, 
--    OUT USHORT *Status, 
--    OUT USHORT *Aid, 
--    OUT UCHAR Rates[], 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  VOID *Msg,
-+    IN  ULONG MsgLen,
-+    OUT MACADDR *Addr2,
-+    OUT USHORT *CapabilityInfo,
-+    OUT USHORT *Status,
-+    OUT USHORT *Aid,
-+    OUT UCHAR Rates[],
-     OUT UCHAR *RatesLen,
-     OUT BOOLEAN *ExtendedRateIeExist);
- 
- BOOLEAN PeerDisassocSanity(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  VOID *Msg, 
--    IN  ULONG MsgLen, 
--    OUT MACADDR *Addr2, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  VOID *Msg,
-+    IN  ULONG MsgLen,
-+    OUT MACADDR *Addr2,
-     OUT USHORT *Reason);
- 
- BOOLEAN PeerDeauthSanity(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  VOID *Msg, 
--    IN  ULONG MsgLen, 
--    OUT MACADDR *Addr2, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  VOID *Msg,
-+    IN  ULONG MsgLen,
-+    OUT MACADDR *Addr2,
-     OUT USHORT *Reason);
- 
- BOOLEAN PeerProbeReqSanity(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  VOID *Msg, 
--    IN  ULONG MsgLen, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  VOID *Msg,
-+    IN  ULONG MsgLen,
-     OUT MACADDR *Addr2,
--    OUT CHAR Ssid[], 
--    OUT UCHAR *SsidLen); 
--//    OUT UCHAR Rates[], 
-+    OUT CHAR Ssid[],
-+    OUT UCHAR *SsidLen);
-+//    OUT UCHAR Rates[],
- //    OUT UCHAR *RatesLen);
- 
- BOOLEAN GetTimBit(
--    IN  CHAR *Ptr, 
--    IN  USHORT Aid, 
--    OUT UCHAR *TimLen, 
--    OUT UCHAR *BcastFlag, 
--    OUT UCHAR *DtimCount, 
--    OUT UCHAR *DtimPeriod, 
-+    IN  CHAR *Ptr,
-+    IN  USHORT Aid,
-+    OUT UCHAR *TimLen,
-+    OUT UCHAR *BcastFlag,
-+    OUT UCHAR *DtimCount,
-+    OUT UCHAR *DtimPeriod,
-     OUT UCHAR *MessageToMe);
- 
- BOOLEAN GetLegacy(
--    IN  CHAR *Ptr, 
-+    IN  CHAR *Ptr,
-     OUT UCHAR *Legacy);
- 
- ULONG MakeOutgoingFrame(
--    OUT CHAR *Buffer, 
-+    OUT CHAR *Buffer,
-     OUT ULONG *Length, ...);
- 
- VOID  LfsrInit(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  ULONG Seed);
- 
- UCHAR RandomByte(
-@@ -2129,26 +2156,26 @@
-     IN PRTMP_ADAPTER pAdapter);
- 
- VOID MlmeCheckForRoaming(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN ULONG    Now32);
- 
- VOID MlmeCheckDynamicTxRateSwitching(
-     IN PRTMP_ADAPTER pAd);
- 
- VOID MlmeCheckChannelQuality(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN ULONG Now);
- 
- VOID MlmeCheckForPsmChange(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN ULONG    Now32);
- 
- VOID MlmeSetPsmBit(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN USHORT psm);
- 
- VOID MlmeSetTxPreamble(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN USHORT TxPreamble);
- 
- VOID MlmeUpdateTxRates(
-@@ -2214,7 +2241,7 @@
- 
- VOID EWEN(
-     IN  PRTMP_ADAPTER   pAd);
--    
-+
- USHORT RTMP_EEPROM_READ16(
-     IN  PRTMP_ADAPTER   pAd,
-     IN  USHORT Offset);
-@@ -2223,16 +2250,16 @@
-     IN  PRTMP_ADAPTER   pAd,
-     IN  USHORT Offset,
-     IN  USHORT Data);
--    
-+
- UCHAR ChannelSanity(
--    IN PRTMP_ADAPTER pAd, 
-+    IN PRTMP_ADAPTER pAd,
-     IN UCHAR channel);
- 
- //
- // Prototypes of function definition in rtmp_tkip.c
- //
- VOID    RTMPInitTkipEngine(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          pTKey,
-     IN  UCHAR           KeyId,
-     IN  PUCHAR          pTA,
-@@ -2242,14 +2269,14 @@
-     OUT PULONG          pIV32);
- 
- VOID    RTMPInitMICEngine(
--    IN  PRTMP_ADAPTER   pAdapter,   
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          pKey,
-     IN  PUCHAR          pDA,
-     IN  PUCHAR          pSA,
-     IN  PUCHAR          pMICKey);
- 
- BOOLEAN RTMPTkipCompareMICValue(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          pSrc,
-     IN  PUCHAR          pDA,
-     IN  PUCHAR          pSA,
-@@ -2272,12 +2299,12 @@
-     IN  PUCHAR          pMICKey,
-     IN  UINT            Len);
- 
--VOID    RTMPTkipAppend( 
--    IN  PTKIP_KEY_INFO  pTkip,  
-+VOID    RTMPTkipAppend(
-+    IN  PTKIP_KEY_INFO  pTkip,
-     IN  PUCHAR          pSrc,
-     IN  UINT            nBytes);
- 
--VOID    RTMPTkipGetMIC( 
-+VOID    RTMPTkipGetMIC(
-     IN  PTKIP_KEY_INFO  pTkip);
- 
- NDIS_STATUS RTMPWPAAddKeyProc(
-@@ -2292,7 +2319,7 @@
-     IN PRTMP_ADAPTER pAdapter);
- 
- VOID    RTMPSetPhyMode(
--    IN PRTMP_ADAPTER pAdapter, 
-+    IN PRTMP_ADAPTER pAdapter,
-     IN  ULONG phymode);
- 
- VOID    RTMPSetDesiredRates(
-@@ -2313,102 +2340,102 @@
- // Prototypes of function definition for *iwpriv* in rtmp_info.c
- //
- INT Set_CountryRegion_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_SSID_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_WirelessMode_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_TxRate_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_AdhocModeRate_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_Channel_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  PUCHAR  
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  PUCHAR
-     arg);
- 
- #ifdef RT2500_DBG
- INT Set_Debug_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- #endif
- 
- INT Set_BGProtection_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_TxPreamble_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_StaWithEtherBridge_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_RTSThreshold_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_FragThreshold_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_TxBurst_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_TurboRate_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_NetworkType_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
--    
-+
- INT Set_AuthMode_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_EncrypType_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_DefaultKeyID_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_Key1_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_Key2_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_Key3_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_Key4_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_WPAPSK_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- INT Set_WPANONE_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg);
- 
- VOID RTMPIoctlBBP(
-@@ -2425,10 +2452,14 @@
-     IN  struct iwreq    *wrq);
- #endif
- 
--int RTMPIoctlRFMONTX(
--    IN OUT PRTMP_ADAPTER   pAdapter,
-+int RTMPIoctlSetRFMONTX(
-+    IN PRTMP_ADAPTER   pAdapter,
-     IN  struct iwreq    *wrq);
- 
-+int RTMPIoctlGetRFMONTX(
-+    IN PRTMP_ADAPTER   pAdapter,
-+    OUT  struct iwreq    *wrq);
-+
- //
- // prototype in wpa.c
- //
-@@ -2437,31 +2468,31 @@
-     OUT ULONG   *MsgType);
- 
- VOID WpaPskStateMachineInit(
--    IN  PRTMP_ADAPTER       pAd, 
--    IN  STATE_MACHINE       *S, 
-+    IN  PRTMP_ADAPTER       pAd,
-+    IN  STATE_MACHINE       *S,
-     OUT STATE_MACHINE_FUNC Trans[]);
- 
- VOID WpaEAPOLKeyAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID    WpaPairMsg1Action(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID    WpaPairMsg3Action(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  MLME_QUEUE_ELEM *Elem); 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID    WpaGroupMsg1Action(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  MLME_QUEUE_ELEM *Elem);
- 
- VOID    WpaMacHeaderInit(
--    IN      PRTMP_ADAPTER   pAd, 
--    IN OUT  PHEADER_802_11  Hdr, 
--    IN      UCHAR           wep, 
--    IN      PMACADDR        pAddr1); 
-+    IN      PRTMP_ADAPTER   pAd,
-+    IN OUT  PHEADER_802_11  Hdr,
-+    IN      UCHAR           wep,
-+    IN      PMACADDR        pAddr1);
- 
- VOID    WpaHardEncrypt(
-     IN  PRTMP_ADAPTER   pAdapter,
-@@ -2495,15 +2526,15 @@
-     IN  UINT    len);
- 
- VOID    GenRandom(
--    IN  PRTMP_ADAPTER   pAd, 
-+    IN  PRTMP_ADAPTER   pAd,
-     OUT UCHAR           *random);
- 
--VOID    AES_GTK_KEY_UNWRAP( 
-+VOID    AES_GTK_KEY_UNWRAP(
-     IN  UCHAR   *key,
-     OUT UCHAR   *plaintext,
-     IN  UCHAR   *ciphertext);
- 
--ULONG	RTMPTkipGetUInt32( 	
-+ULONG	RTMPTkipGetUInt32(
- 	IN	PUCHAR	pMICKey);
- 
- char * rtstrstr(
-@@ -2512,39 +2543,39 @@
- 
- #ifdef RALINK_ATE
- INT	Set_ATE_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg);
- 
- INT	Set_ATE_DA_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg);
- 
- INT	Set_ATE_SA_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg);
- 
- INT	Set_ATE_BSSID_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg);
- 
- INT	Set_ATE_CHANNEL_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg);
- 
- INT	Set_ATE_TX_POWER_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg);
- 
- INT	Set_ATE_TX_LENGTH_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg);
- 
- INT	Set_ATE_TX_COUNT_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg);
- 
- INT	Set_ATE_TX_RATE_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg);
- 
- VOID RTMPStationStop(
-@@ -2559,11 +2590,15 @@
- 
- #ifdef BIG_ENDIAN
- VOID   RTMPFrameEndianChange(
--       IN  PRTMP_ADAPTER   pAdapter, 
--       IN  PUCHAR          pData, 
-+       IN  PRTMP_ADAPTER   pAdapter,
-+       IN  PUCHAR          pData,
-        IN  ULONG           Dir,
-        IN  BOOLEAN         FromRxDoneInt);
- 
-+VOID WriteBackToDescriptor(IN PUCHAR Dest,
-+			   IN PUCHAR Src,
-+			   IN BOOLEAN DoEncrypt, IN ULONG DescriptorType);
-+
- VOID    RTMPDescriptorEndianChange(
-        IN      PUCHAR                  pData,
-        IN      ULONG                   DescriptorType);
-diff -Nur rt2500-1.1.0-b4/Module/rtmp_data.c rt2500-cvs-2007061011/Module/rtmp_data.c
---- rt2500-1.1.0-b4/Module/rtmp_data.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/rtmp_data.c	2007-06-08 20:09:53.000000000 +0200
-@@ -1,42 +1,42 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: rtmp_data.c
-- *              
-+ *
-  *      Abstract: Data path subroutines
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-  *      John            25th Feb 03     Modify for rt2560
-- *      MarkW           8th  Dec 04     Baseline code  
-+ *      MarkW           8th  Dec 04     Baseline code
-  *      MarkW (rt2400)  8th  Dec 04     Promisc mode support
-  *      RobinC          10th Dec 04     RFMON Support
-- *      MarkW           10th Dec 04     Rolled in Ralink 1.4.5.0 
-+ *      MarkW           10th Dec 04     Rolled in Ralink 1.4.5.0
-  *      MarkW           17th Dec 04     Monitor mode through iwconfig
-  *      MarkW           19th Feb 05     Fixes to incoming byte count
-  *      GregorG         29th Mar 05     Big endian fixes
-- ***************************************************************************/ 
-+ ***************************************************************************/
- 
- #include "rt_config.h"
- 
-@@ -46,12 +46,12 @@
- 
- static	UCHAR	IPX[] = {0x81, 0x37};
- static	UCHAR	APPLE_TALK[] = {0x80, 0xf3};
--static  UCHAR   PlcpSignal[12] = { 
-+static  UCHAR   PlcpSignal[12] = {
- 	 0, /* RATE_1 */    1, /* RATE_2 */     2, /* RATE_5_5 */   3, /* RATE_11 */    // see BBP spec
- 	11, /* RATE_6 */   15, /* RATE_9 */    10, /* RATE_12 */   14, /* RATE_18 */    // see IEEE802.11a-1999 p.14
- 	 9, /* RATE_24 */  13, /* RATE_36 */    8, /* RATE_48 */    12  /* RATE_54 */ }; // see IEEE802.11a-1999 p.14
- static	UINT	_11G_RATES[12] = { 0, 0, 0, 0, 6, 9, 12, 18, 24, 36, 48, 54 };
--	 
-+
- #define COLLECT_RX_ANTENNA_AVERAGE_RSSI(_pAd, _RxAnt, _rssi)      \
- {                                                           \
-     USHORT AvgRssi;                                         \
-@@ -84,16 +84,16 @@
- 
- 	Routine	Description:
- 		Check Rx descriptor, return NDIS_STATUS_FAILURE if any error dound
--		
-+
- 	Arguments:
- 		pRxD		Pointer	to the Rx descriptor
--		
-+
- 	Return Value:
- 		NDIS_STATUS_SUCCESS		No err
- 		NDIS_STATUS_FAILURE		Error
--		
-+
- 	Note:
--	
-+
- 	========================================================================
- */
- inline NDIS_STATUS	RTMPCheckRxDescriptor(
-@@ -102,7 +102,7 @@
- 	// Phy errors
- 	if (pRxD->PhyErr)
- 		return(NDIS_STATUS_FAILURE);
--	
-+
- 	// CRC errors
- 	if (pRxD->Crc)
- 		return(NDIS_STATUS_FAILURE);
-@@ -120,15 +120,15 @@
- 
- 	Routine	Description:
- 		Endian conversion of Tx/Rx descriptor .
--		
-+
- 	Arguments:
- 		pAdapter		Pointer	to our adapter
- 		pData			Pointer	to Tx/Rx descriptor
- 		DescriptorType  Direction of the frame
--		
-+
- 	Return Value:
- 		None
--		
-+
- 	Note:
-         Call this function when read or update descriptor
- 	========================================================================
-@@ -143,12 +143,26 @@
-     *(ULONG *)pData = SWAP32(*(ULONG *)pData);                          // Byte 0; this must be swapped last
- }
- 
-+VOID WriteBackToDescriptor(IN PUCHAR Dest,
-+			   IN PUCHAR Src,
-+			   IN BOOLEAN DoEncrypt, IN ULONG DescriptorType)
-+{
-+	PULONG p1, p2;
-+	UCHAR i;
-+
-+	p1 = ((PULONG) Dest) + 1;
-+	p2 = ((PULONG) Src) + 1;
-+	for (i = 1; i < RING_DESCRIPTOR_SIZE / 4; i++)
-+		*p1++ = *p2++;
-+	*(PULONG) Dest = *(PULONG) Src;
-+}
-+
- /*
- 	========================================================================
- 
- 	Routine	Description:
- 		Endian conversion of all kinds of 802.11 frames .
--		
-+
- 	Arguments:
- 		pAdapter		Pointer	to our adapter
- 		pData			Pointer	to the 802.11 frame structure
-@@ -157,14 +171,14 @@
- 
- 	Return Value:
- 		None
--		
-+
- 	Note:
- 	    Call this function when read or update buffer data
- 	========================================================================
- */
- VOID	RTMPFrameEndianChange(
--	IN  PRTMP_ADAPTER   pAdapter, 
--	IN  PUCHAR          pData, 
-+	IN  PRTMP_ADAPTER   pAdapter,
-+	IN  PUCHAR          pData,
- 	IN  ULONG           Dir,
- 	IN  BOOLEAN         FromRxDoneInt)
- {
-@@ -182,7 +196,7 @@
- 
-     // swab 16 bit fields - Duration/ID field
-     *(USHORT *)(pMacHdr + 2) = SWAP16(*(USHORT *)(pMacHdr + 2));
--    
-+
-     // swab 16 bit fields - Sequence Control field
-     *(USHORT *)(pMacHdr + 22) = SWAP16(*(USHORT *)(pMacHdr + 22));
- 
-@@ -210,7 +224,7 @@
-                 // swab 16 bit fields - Status Code field
-                 pMacHdr += 2;
-                 *(USHORT *)pMacHdr = SWAP16(*(USHORT *)pMacHdr);
--                
-+
-                 // swab 16 bit fields - AID field
-                 pMacHdr += 2;
-                 *(USHORT *)pMacHdr = SWAP16(*(USHORT *)pMacHdr);
-@@ -271,6 +285,7 @@
-         *(USHORT *)pData = SWAP16(*(USHORT *)pData);
-     }
- }
-+
- #endif
- 
- /*
-@@ -353,14 +368,14 @@
- 			pAdapter->RalinkCounters.RxRingErrCount++;
- 			break;
- 		}
--		
-+
- #ifdef RALINK_ATE
- 		if(pAdapter->ate.Mode == ATE_RXFRAME)
- 		{
- 			bDropFrame = TRUE;
- 		}
- #endif	//#ifdef RALINK_ATE
--		
-+
- 		// Point to Rx ring buffer where stores the real data frame
- 		pData	= (PUCHAR) (pAdapter->RxRing[pAdapter->CurRxIndex].va_data_addr);
- 		// Cast to 802.11 header for flags checking
-@@ -372,11 +387,11 @@
- 
- 		// Check for all RxD errors
- 		Status = RTMPCheckRxDescriptor(pRxD);
--		
-+
- 	    // Apply packet filtering rule based on microsoft requirements.
- 		if (Status == NDIS_STATUS_SUCCESS)
- 			Status = RTMPApplyPacketFilter(pAdapter, pRxD, pHeader);
--		
-+
- 		// Add receive counters
- 		if (Status == NDIS_STATUS_SUCCESS)
- 		{
-@@ -394,7 +409,7 @@
- 			// Increase general counters
- 			pAdapter->Counters.RxErrors++;
- 		}
--		
-+
- 		// Check for retry bit, if this bit is on, search the cache with SA & sequence
- 		// as index, if matched, discard this frame, otherwise, update cache
- 		// This check only apply to unicast data & management frames
-@@ -453,7 +468,7 @@
- 							bDropFrame = TRUE;
- 							break;
- 						}
--						
-+
- 						// Drop frame from AP while we are in Ad-hoc mode or not associated
- 						if (pHeader->Controlhead.Frame.FrDs)
- 						{
-@@ -471,11 +486,11 @@
- 						bDropFrame = TRUE;
- 						break;
- 					}
--				
-+
-                                         // Good data frame appears, increase the counters
-                                         INC_COUNTER(pAdapter->WlanCounters.ReceivedFragmentCount);
--                                        pAdapter->RalinkCounters.ReceivedByteCount +=  pRxD->DataByteCnt;	
--	
-+                                        pAdapter->RalinkCounters.ReceivedByteCount +=  pRxD->DataByteCnt;
-+
- 					// Process Multicast data frame
- 					if (pRxD->Mcast)
- 					{
-@@ -486,18 +501,18 @@
- 
- 					// Init WPA Key to NULL
- 					pWpaKey = (PWPA_KEY) NULL;
--					
-+
- 					// Find the WPA key, either Group or Pairwise Key
- 					if ((pAdapter->PortCfg.AuthMode >= Ndis802_11AuthModeWPA) && (pHeader->Controlhead.Frame.Wep))
- 					{
- 						INT 	idx;
--						
-+
- 						// First lookup the DA, if it's a group address, use GROUP key
- 						if (pRxD->Bcast || pRxD->Mcast)
- 						{
--							
-+
- 							idx = (*(pData + 3) & 0xc0) >> 6;
--							if ((pAdapter->PortCfg.GroupKey[idx].KeyLen != 0) && 
-+							if ((pAdapter->PortCfg.GroupKey[idx].KeyLen != 0) &&
- 								((INFRA_ON(pAdapter) && (NdisEqualMemory(&pHeader->Controlhead.Addr2, &pAdapter->PortCfg.Bssid, 6))) ||
- 								(ADHOC_ON(pAdapter) && (NdisEqualMemory(&pHeader->Addr3, &pAdapter->PortCfg.Bssid, 6)))))
- 							{
-@@ -520,15 +535,15 @@
- 									break;
- 								}
- 							}
--#if 1							
-+#if 1
- 							// Use default Group Key if there is no Pairwise key present
- 							if ((pWpaKey == NULL) && (pAdapter->PortCfg.GroupKey[pAdapter->PortCfg.DefaultKeyId].KeyLen != 0))
- 							{
--								pWpaKey = (PWPA_KEY) &pAdapter->PortCfg.GroupKey[pAdapter->PortCfg.DefaultKeyId];				
-+								pWpaKey = (PWPA_KEY) &pAdapter->PortCfg.GroupKey[pAdapter->PortCfg.DefaultKeyId];
- 								pWpaKey->Type = GROUP_KEY;
- 								DBGPRINT(RT_DEBUG_INFO, "Rx Use Group Key\n");
- 							}
--#endif							
-+#endif
- 						}
- 					}
- 
-@@ -542,16 +557,16 @@
- 							Status = NDIS_STATUS_FAILURE;
- 							bDropFrame = TRUE;
- 							break;
--						}	
--							
-+						}
-+
- 						// Filter out Bcast frame which AP relayed for us
- 						if (pHeader->Controlhead.Frame.FrDs && RTMPEqualMemory(&pHeader->Addr3, pAdapter->CurrentAddress, 6))
- 						{
- 							Status = NDIS_STATUS_FAILURE;
- 							bDropFrame = TRUE;
- 							break;
--						}	
--						
-+						}
-+
- 						// WEP encrypted frame
- 						if (pHeader->Controlhead.Frame.Wep)
- 						{
-@@ -560,27 +575,27 @@
- 							{
-                                 KeyIdx = (*(pData + 3) & 0xc0) >> 6;
- 									memcpy((PUCHAR) &pRxD->Iv, pData, 4);	//Get WEP IV
--									memcpy(pRxD->Key, pAdapter->PortCfg.SharedKey[KeyIdx].Key, pAdapter->PortCfg.SharedKey[KeyIdx].KeyLen);									
-+									memcpy(pRxD->Key, pAdapter->PortCfg.SharedKey[KeyIdx].Key, pAdapter->PortCfg.SharedKey[KeyIdx].KeyLen);
- 									if (pAdapter->PortCfg.SharedKey[KeyIdx].KeyLen == 5)
- 										pRxD->CipherAlg = CIPHER_WEP64;
- 									else
--										pRxD->CipherAlg = CIPHER_WEP128;									
-+										pRxD->CipherAlg = CIPHER_WEP128;
- 							}
- 							else if ((pAdapter->PortCfg.WepStatus == Ndis802_11Encryption2Enabled) && (pWpaKey != NULL))	// TKIP
- 							{
- 								UCHAR	Eiv_Tmp[4];
--								
-+
- 								memcpy((PUCHAR) &pRxD->Iv, pData, 4);	//Get WEP IV
- 								// Swap EIV byte order, due to ASIC's bug.
- 								Eiv_Tmp[0] = *(pData + 7);
- 								Eiv_Tmp[1] = *(pData + 6);
- 								Eiv_Tmp[2] = *(pData + 5);
--								Eiv_Tmp[3] = *(pData + 4);								
-+								Eiv_Tmp[3] = *(pData + 4);
- 								memcpy((PUCHAR) &pRxD->Eiv, Eiv_Tmp, 4);	//Get WEP EIV
- 								// Copy TA into RxD
- 								memcpy(pRxD->TA, &pHeader->Controlhead.Addr2, 6);
- 								KeyIdx = (*(pData + 3) & 0xc0) >> 6;
--								memcpy(pRxD->Key, pWpaKey->Key, 16);									
-+								memcpy(pRxD->Key, pWpaKey->Key, 16);
- 								pRxD->CipherAlg = CIPHER_TKIP;
- 							}
- 							else if ((pAdapter->PortCfg.WepStatus == Ndis802_11Encryption3Enabled) && (pWpaKey != NULL))	// AES
-@@ -588,9 +603,9 @@
- 								memcpy((PUCHAR) &pRxD->Iv, pData, 4);			//Get WEP IV
- 								memcpy((PUCHAR) &pRxD->Eiv, (pData + 4), 4);	//Get WEP EIV
- 								// Copy TA into RxD
--								memcpy(pRxD->TA, &pHeader->Controlhead.Addr2, 6);								
-+								memcpy(pRxD->TA, &pHeader->Controlhead.Addr2, 6);
- 								KeyIdx = (*(pData + 3) & 0xc0) >> 6;
--								memcpy(pRxD->Key, pWpaKey->Key, 16);									
-+								memcpy(pRxD->Key, pWpaKey->Key, 16);
- 								pRxD->CipherAlg = CIPHER_AES;
- 							}
- 							else
-@@ -606,17 +621,17 @@
- 							pRxD->CipherAlg = CIPHER_NONE;
- 						}
- 					}
--					
-+
- 					// Begin process unicast to	me frame
- 					else if	(pRxD->U2M || pAdapter->bAcceptPromiscuous == TRUE)
- 					{
--						// Send PS-Poll for AP to send next data frame					
-+						// Send PS-Poll for AP to send next data frame
- 						if ((pHeader->Controlhead.Frame.MoreData) && INFRA_ON(pAdapter) && (pAdapter->PortCfg.Psm == PWR_SAVE))
- 						{
- 							EnqueuePsPoll(pAdapter);
- 							DBGPRINT(RT_DEBUG_TRACE, "Sending PS-POLL\n");
- 						}
--						
-+
- 						//
- 						// Begin frame processing
- 						//
-@@ -634,11 +649,11 @@
-                                 KeyIdx = (*(pData + 3) & 0xc0) >> 6;
- 
- 									memcpy((PUCHAR) &pRxD->Iv, pData, 4);	//Get WEP IV
--									memcpy(pRxD->Key, pAdapter->PortCfg.SharedKey[KeyIdx].Key, pAdapter->PortCfg.SharedKey[KeyIdx].KeyLen);									
-+									memcpy(pRxD->Key, pAdapter->PortCfg.SharedKey[KeyIdx].Key, pAdapter->PortCfg.SharedKey[KeyIdx].KeyLen);
- 									if (pAdapter->PortCfg.SharedKey[KeyIdx].KeyLen == 5)
- 										pRxD->CipherAlg = CIPHER_WEP64;
- 									else
--										pRxD->CipherAlg = CIPHER_WEP128;									
-+										pRxD->CipherAlg = CIPHER_WEP128;
- 							}
- 							else if ((pAdapter->PortCfg.PrivacyFilter == Ndis802_11PrivFilter8021xWEP) &&
- 								(pHeader->Frag == 0))
-@@ -659,18 +674,18 @@
- 							if (pHeader->Controlhead.Frame.Wep)
- 							{
- 								UCHAR	Eiv_Tmp[4];
--								
-+
- 								memcpy((PUCHAR) &pRxD->Iv, pData, 4);	//Get WEP IV
- 								// Swap EIV byte order, due to ASIC's bug.
- 								Eiv_Tmp[0] = *(pData + 7);
- 								Eiv_Tmp[1] = *(pData + 6);
- 								Eiv_Tmp[2] = *(pData + 5);
--								Eiv_Tmp[3] = *(pData + 4);								
-+								Eiv_Tmp[3] = *(pData + 4);
- 								memcpy((PUCHAR) &pRxD->Eiv, Eiv_Tmp, 4);	//Get WEP EIV
- 								KeyIdx = (*(pData + 3) & 0xc0) >> 6;
- 								// Copy TA into RxD
- 								memcpy(pRxD->TA, &pHeader->Controlhead.Addr2, 6);
--								memcpy(pRxD->Key, pWpaKey->Key, 16);									
-+								memcpy(pRxD->Key, pWpaKey->Key, 16);
- 								pRxD->CipherAlg = CIPHER_TKIP;
- 							}
- 							else if ((pAdapter->PortCfg.PrivacyFilter == Ndis802_11PrivFilter8021xWEP) &&
-@@ -694,9 +709,9 @@
- 								memcpy((PUCHAR) &pRxD->Iv, pData, 4);			//Get WEP IV
- 								memcpy((PUCHAR) &pRxD->Eiv, (pData + 4), 4);	//Get WEP EIV
- 								// Copy TA into RxD
--								memcpy(pRxD->TA, &pHeader->Controlhead.Addr2, 6);								
-+								memcpy(pRxD->TA, &pHeader->Controlhead.Addr2, 6);
- 								KeyIdx = (*(pData + 3) & 0xc0) >> 6;
--								memcpy(pRxD->Key, pWpaKey->Key, 16);									
-+								memcpy(pRxD->Key, pWpaKey->Key, 16);
- 								pRxD->CipherAlg = CIPHER_AES;
- 							}
- 							else if ((pAdapter->PortCfg.PrivacyFilter == Ndis802_11PrivFilter8021xWEP) &&
-@@ -719,7 +734,7 @@
- 							Status = NDIS_STATUS_FAILURE;
- 							bDropFrame = TRUE;
- 							break;
--						}						
-+						}
- 						else	// Not encryptrd frames
- 						{
- 							pRxD->CipherAlg = CIPHER_NONE;
-@@ -756,13 +771,14 @@
- 			pRxD->Drop      = 0;
- 			pRxD->IvOffset = LENGTH_802_11;
- 		}
--		
-+
- 		pRxD->CipherOwner = DESC_OWN_NIC;
- 
- #ifdef BIG_ENDIAN
-         RTMPFrameEndianChange(pAdapter, (PUCHAR)pHeader, DIR_WRITE, TRUE);
-         RTMPDescriptorEndianChange((PUCHAR)pRxD, TYPE_RXD);
--        *pDestRxD = RxD;
-+        //*pDestRxD = RxD;
-+	WriteBackToDescriptor((PUCHAR)pDestRxD, (PUCHAR)pRxD, TRUE, TYPE_RXD);
- #endif
- 
- 		pAdapter->CurRxIndex++;
-@@ -771,9 +787,9 @@
- 			pAdapter->CurRxIndex = 0;
- 		}
- 		Count++;
--		
-+
- 		pAdapter->RalinkCounters.RxCount ++;
--		
-+
- 	}	while (Count < MAX_RX_PROCESS);
- 
- 	// Kick Decrypt Control Register, based on ASIC's implementation
-@@ -810,10 +826,10 @@
- #endif
- 	UCHAR			Count;
-         unsigned long           irqflag;
--	
-+
- 	// Make sure Tx ring resource won't be used by other threads
- 	spin_lock_irqsave(&pAdapter->TxRingLock, irqflag);
--	
-+
- 	Count = 0;
- 	do
- 	{
-@@ -832,22 +848,22 @@
- 		}
- 
- 		RTMPHardTransmitDone(
--			pAdapter, 
--			pTxD, 
-+			pAdapter,
-+			pTxD,
- 			pAdapter->TxRing[pAdapter->NextTxDoneIndex].FrameType);
--		
-+
- 		// It might happend with no Ndis packet to indicate back to upper layer
- 		// Clear for NdisSendComplete request
- 		pTxD->Valid = FALSE;
--		
-+
- 		// Increase Total transmit byte counter after real data sent out
- 		pAdapter->RalinkCounters.TransmittedByteCount +=  pTxD->DataByteCnt;
--		
-+
- #ifdef BIG_ENDIAN
-         RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
-         *pDestTxD = TxD;
- #endif
--		
-+
- 		pAdapter->NextTxDoneIndex++;
- 		if (pAdapter->NextTxDoneIndex >= TX_RING_SIZE)
- 		{
-@@ -885,16 +901,16 @@
- 
- 	// Make sure to release Tx ring resource
- 	spin_unlock_irqrestore(&pAdapter->TxRingLock, irqflag);
--	
-+
- 	if(pAdapter->bNetDeviceStopQueue)
-         {
-                 DBGPRINT(RT_DEBUG_TRACE, "NetDevice start queue!!!\n\n");
-                 pAdapter->bNetDeviceStopQueue = FALSE;
-                 netif_start_queue(pAdapter->net_dev);
-         }
--	
-+
- 	// Some Tx ring resource freed, check for pending send frame for hard transmit
--	if ((!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS)) && 
-+	if ((!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS)) &&
- 		(!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_RADIO_OFF)) &&
- 		(!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_RESET_IN_PROGRESS)))
- 	{
-@@ -932,10 +948,10 @@
- 	UCHAR			Count;
- 	PMGMT_STRUC		pMgmt;
-         unsigned long           irqflag;
--	
-+
- 	// Make sure Prio ring resource won't be used by other threads
--	spin_lock_irqsave(&pAdapter->PrioRingLock, irqflag);	
--	
-+	spin_lock_irqsave(&pAdapter->PrioRingLock, irqflag);
-+
- 	Count = 0;
- 	do
- 	{
-@@ -957,16 +973,16 @@
- #endif
- 			break;
- 		}
--		
-+
- 		// No need to put in reply for MLME
- 		RTMPHardTransmitDone(
--			pAdapter, 
--			pTxD, 
-+			pAdapter,
-+			pTxD,
- 			pAdapter->PrioRing[pAdapter->NextPrioDoneIndex].FrameType);
--		
-+
- 		// It might happend with no Ndis packet to indicate back to upper layer
--		pTxD->Valid = FALSE;		
--		
-+		pTxD->Valid = FALSE;
-+
- 		// Increase Total transmit byte counter after real data sent out
- 		pAdapter->RalinkCounters.TransmittedByteCount +=  pTxD->DataByteCnt;
- 
-@@ -983,11 +999,11 @@
- 	}	while (++Count < MAX_TX_PROCESS);
- 
- 	// Make sure to release Prio ring resource
--	spin_unlock_irqrestore(&pAdapter->PrioRingLock, irqflag);	
--	
-+	spin_unlock_irqrestore(&pAdapter->PrioRingLock, irqflag);
-+
- 	if (RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_RADIO_OFF))
- 		return;
--	
-+
- 
- 	spin_lock_irqsave(&pAdapter->PrioRingLock, irqflag);
- 	if (pAdapter->PushMgmtIndex != pAdapter->PopMgmtIndex)
-@@ -1008,7 +1024,7 @@
- 				}
- 			}
- 		}
--	}	
-+	}
- 	spin_unlock_irqrestore(&pAdapter->PrioRingLock, irqflag);
- }
- 
-@@ -1033,12 +1049,12 @@
- {
- 	// PTXD_STRUC		pTxD;
- 	// UCHAR			Count;
--	
-+
- 	// Make sure Atim ring resource won't be used by other threads
- 	//spin_lock_irqsave(&pAdapter->AtimRingLock);
--	
-+
- 	// Did not support ATIM, remove everything.
--	
-+
- 	// Make sure to release Atim ring resource
- 	//spin_unlock_irqrestore(&pAdapter->AtimRingLock);
- }
-@@ -1083,10 +1099,10 @@
- 	ULONG			i;
- 	struct sk_buff  *skb;
-         unsigned long           irqflag;
--	
-+
- 	// Make sure Rx ring resource won't be used by other threads
- 	spin_lock_irqsave(&pAdapter->RxRingLock, irqflag);
--	
-+
- 	RTMP_IO_READ32(pAdapter, SECCSR0, &RegValue);
-         HwDecryptIndex = RegValue - pAdapter->RxRing[0].pa_addr;
-         do_div(HwDecryptIndex, RING_DESCRIPTOR_SIZE);
-@@ -1104,11 +1120,11 @@
-         pRxD = &RxD;
-         RTMPDescriptorEndianChange((PUCHAR)pRxD, TYPE_RXD);
- #endif
--	
-+
- 		// In case of false alarm or processed at last instance
- 		if ((pRxD->Owner != DESC_OWN_HOST) || (pRxD->CipherOwner != DESC_OWN_HOST))
- 			break;
--	
-+
- 		// Point to Rx ring buffer where stores the real data frame
- 		pData	= (PUCHAR) (pAdapter->RxRing[pAdapter->CurDecryptIndex].va_data_addr);
- 		// Cast to 802.11 header for flags checking
-@@ -1117,15 +1133,18 @@
- #ifdef BIG_ENDIAN
-         RTMPFrameEndianChange(pAdapter, (PUCHAR)pHeader, DIR_READ, FALSE);
- #endif
--		// Driver will check the decrypt algorithm and decide whether this ICV is true or not		
-+		// Driver will check the decrypt algorithm and decide whether this ICV is true or not
- 		if ((pRxD->IcvError == 1) && (pRxD->CipherAlg == CIPHER_NONE))
- 				pRxD->IcvError = 0;
--		
-+
- 		// Since we already process header at RxDone interrupt, there is no need to proces
- 		// header sanity again, the only thing we have to check is icv_err bit
--		if (pRxD->IcvError == 1)
-+		//if (pRxD->IcvError == 1)
-+		if ((pRxD->IcvError == 1) && (pRxD->CipherAlg != CIPHER_NONE))
- 		{
--   		    DBGPRINT(RT_DEBUG_TRACE,"Rx DecryptDone - ICV error (len %d)\n", pRxD->DataByteCnt);
-+   		    DBGPRINT(RT_DEBUG_TRACE,
-+					"Rx DecryptDone - ICV error (CipherAlg=%d) (len %d)\n",
-+					pRxD->CipherAlg, pRxD->DataByteCnt);
- 			pRxD->Drop =1;			// Drop frame with icv error
- 		}
- 		// Saved data pointer for management frame which will pass to MLME block
-@@ -1135,7 +1154,7 @@
-          	{
-  	            struct sk_buff  *skb;
- 		    wlan_ng_prism2_header *ph;
-- 	
-+
-  	            if ((skb = __dev_alloc_skb(2048, GFP_DMA|GFP_ATOMIC)) != NULL)
-  	            {
- 			if (pAdapter->PortCfg.MallowRFMONTx == TRUE)
-@@ -1196,12 +1215,12 @@
- 
-  	                skb->dev = pAdapter->net_dev;
-  	                memcpy(skb_put(skb, pRxD->DataByteCnt), pData, pRxD->DataByteCnt);
-- 	                skb->mac.raw = skb->data;
-+					skb_reset_mac_header(skb);
-  	                skb->pkt_type = PACKET_OTHERHOST;
-  	                skb->protocol = htons(ETH_P_802_2);
-  	                skb->ip_summed = CHECKSUM_NONE;
-  	                netif_rx(skb);
-- 	            }	
-+ 	            }
-                     pRxD->Drop = 1;
-          	}
- 
-@@ -1211,7 +1230,7 @@
- 		// The total available payload should exclude 24-byte 802.11 Header
- 		// If Security is enabled, IV, EIV, ICV size is excluded by ASIC
- 		PacketSize = (USHORT) pRxD->DataByteCnt - LENGTH_802_11;
--	
-+
- 		// Find the WPA key, either Group or Pairwise Key
- 		// Although the data has been decrypted by ASIC,
- 		// driver has to calculate the RxMIC which required the key.
-@@ -1221,7 +1240,7 @@
-         if ((pAdapter->PortCfg.AuthMode >= Ndis802_11AuthModeWPA) && (pHeader->Controlhead.Frame.Wep))
- 		{
- 			INT 	idx;
--				
-+
- 			// First lookup the DA, if it's a group address, use GROUP key
- 			if (pRxD->Bcast || pRxD->Mcast)
- 			{
-@@ -1231,7 +1250,7 @@
- #else
-                 idx = (pRxD->Iv & 0xc0000000) >> 30;
- #endif
--				if ((pAdapter->PortCfg.GroupKey[idx].KeyLen != 0) && 
-+				if ((pAdapter->PortCfg.GroupKey[idx].KeyLen != 0) &&
- 					((INFRA_ON(pAdapter) && (NdisEqualMemory(&pHeader->Controlhead.Addr2, &pAdapter->PortCfg.Bssid, 6))) ||
- 					(ADHOC_ON(pAdapter) && (NdisEqualMemory(&pHeader->Addr3, &pAdapter->PortCfg.Bssid, 6)))))
- 				{
-@@ -1254,22 +1273,22 @@
- 						break;
- 					}
- 				}
--#if 1				
-+#if 1
- 				// Use default Group Key if there is no Pairwise key present
- 				if ((pWpaKey == NULL) && (pAdapter->PortCfg.GroupKey[pAdapter->PortCfg.DefaultKeyId].KeyLen != 0))
- 				{
--					pWpaKey = (PWPA_KEY) &pAdapter->PortCfg.GroupKey[pAdapter->PortCfg.DefaultKeyId];				
-+					pWpaKey = (PWPA_KEY) &pAdapter->PortCfg.GroupKey[pAdapter->PortCfg.DefaultKeyId];
- 					pWpaKey->Type = GROUP_KEY;
- 					DBGPRINT(RT_DEBUG_INFO, "Rx Use Group Key\n");
- 				}
--#endif				
-+#endif
- 			}
- 
- 			// If there is no WPA key matched, this frame should be dropped
- 			if (pWpaKey == NULL)
- 				pRxD->Drop = 1;
- 		}
--			
-+
- 		//
- 		// Start of main loop to parse receiving frames.
- 		// The sequence will be Type first, then subtype...
-@@ -1287,10 +1306,10 @@
- 						pSrcMac = (PUCHAR) &(pHeader->Addr3);
- 					else
- 						pSrcMac = (PUCHAR) &(pHeader->Controlhead.Addr2);
--					
-+
- 					// Process Broadcast & Multicast data frame
- 					if (pRxD->Bcast || pRxD->Mcast)
--					{							
-+					{
- 						// For TKIP frame, calculate the MIC value
- 						if (pRxD->CipherAlg == CIPHER_TKIP)
- 						{
-@@ -1302,7 +1321,7 @@
- 								Status = NDIS_STATUS_FAILURE;
- 								break;
- 							}
--								
-+
- 							// Minus MIC length
- 							PacketSize -= 8;
- 							if (RTMPTkipCompareMICValue(
-@@ -1313,7 +1332,7 @@
- 								pWpaKey->RxMic,
- 								PacketSize) == FALSE)
- 							{
--								DBGPRINT(RT_DEBUG_ERROR,"Rx MIC Value error\n");							
-+								DBGPRINT(RT_DEBUG_ERROR,"Rx MIC Value error\n");
- 								RTMPReportMicError(pAdapter, pWpaKey);
- 								Status = NDIS_STATUS_FAILURE;
- 								break;
-@@ -1329,21 +1348,17 @@
- 							// Rx TSC has done one full cycle, since re-key is done by transmitter
- 							// We did not do anything for Rx path
- 						}
--						
-+
-                         // build 802.3 header and decide if remove the 8-byte LLC/SNAP encapsulation
- 						CONVERT_TO_802_3(Header802_3, pDestMac, pSrcMac, pData, PacketSize);
--								
-+
- 						pAdapter->PortCfg.LedCntl.fRxActivity = TRUE; // for RX ACTIVITY LED
- 
- 						// For miniportTransferData
- 						pAdapter->pRxData = pData;
--			
-+
- 						// Acknolwdge upper layer the received frame
--#ifdef RTMP_EMBEDDED
-                         if ((skb = __dev_alloc_skb(PacketSize + LENGTH_802_3 + 2, GFP_DMA|GFP_ATOMIC)) != NULL)
--#else
--                        if ((skb = dev_alloc_skb(PacketSize + LENGTH_802_3 + 2)) != NULL)
--#endif
-                         {
-                             skb->dev = pAdapter->net_dev;
-                             skb_reserve(skb, 2);    // 16 byte align the IP header
-@@ -1354,10 +1369,10 @@
-                             pAdapter->net_dev->last_rx = jiffies;
-                             pAdapter->stats.rx_packets++;
-                         }
--		
-+
- 						DBGPRINT(RT_DEBUG_INFO, "!!! Broadcast Ethenet rx Indicated !!!\n");
- 					}
--						
-+
- 					// Begin process unicast to me frame
- 					else if (pRxD->U2M || pAdapter->bAcceptPromiscuous == TRUE)
- 					{
-@@ -1383,12 +1398,12 @@
- 							else if (pRxD->BBR0 == 110)
- 								pAdapter->LastRxRate = 3;
- 						}
--						
-+
- 						if (pHeader->Frag == 0) 	// First or Only fragment
- 						{
- 							// For TKIP frame, calculate the MIC value
- 							if ((pHeader->Controlhead.Frame.MoreFrag == FALSE) &&
--								(pRxD->CipherAlg == CIPHER_TKIP) && 
-+								(pRxD->CipherAlg == CIPHER_TKIP) &&
-                                 (pHeader->Controlhead.Frame.Wep))
- 							{
- 								if (pWpaKey == NULL)
-@@ -1407,17 +1422,17 @@
- 									pWpaKey->RxMic,
- 									PacketSize) == FALSE)
- 								{
--									DBGPRINT(RT_DEBUG_ERROR,"Rx MIC Value error\n");							
-+									DBGPRINT(RT_DEBUG_ERROR,"Rx MIC Value error\n");
- 									RTMPReportMicError(pAdapter, pWpaKey);
- 									Status = NDIS_STATUS_FAILURE;
- 									break;
- 								}
- 							}
--								
-+
- 							pAdapter->FragFrame.Flags &= 0xFFFFFFFE;
--								
-+
- 							// Check for encapsulation other than RFC1042 & Bridge tunnel
--							if ((!RTMPEqualMemory(SNAP_802_1H, pData, 6)) && 
-+							if ((!RTMPEqualMemory(SNAP_802_1H, pData, 6)) &&
- 							    (!RTMPEqualMemory(SNAP_BRIDGE_TUNNEL, pData, 6)))
- 							{
- 								LLC_Len[0] = PacketSize / 256;
-@@ -1427,13 +1442,13 @@
- 							else
- 							{
- 							    char *pProto = pData + 6;
--							    
-+
- 								// Remove 802.11 H header & reconstruct 802.3 header
- 								// pData += (LENGTH_802_1_H - LENGTH_802_3_TYPE);
- 								// Check for EAPOL frame when driver supplicant enabled
- 								// TODO: It is not strickly correct. There is no fragment handling. It might damage driver
- 								// TODO: But for WPAPSK, it's not likely fragment on EAPOL frame will happen
--								if (RTMPEqualMemory(EAPOL, pProto, 2) && ((pAdapter->PortCfg.WpaState != SS_NOTUSE))) 
-+								if (RTMPEqualMemory(EAPOL, pProto, 2) && ((pAdapter->PortCfg.WpaState != SS_NOTUSE)))
- 								{
- 									RTMP_IO_READ32(pAdapter, CSR17, &High32TSF);		// TSF value
- 									RTMP_IO_READ32(pAdapter, CSR16, &Low32TSF); 		// TSF vlaue
-@@ -1441,16 +1456,16 @@
- 									// Enqueue this frame to MLME engine
- 									MlmeEnqueueForRecv(
- 										pAdapter,
--										&pAdapter->Mlme.Queue,	
--										High32TSF, 
-+										&pAdapter->Mlme.Queue,
-+										High32TSF,
- 										Low32TSF,
--										(UCHAR)pRxD->BBR1, (UCHAR)pAdapter->PortCfg.LastR17Value, 
--										PacketSize, 
--										pManage);					
-+										(UCHAR)pRxD->BBR1, (UCHAR)pAdapter->PortCfg.LastR17Value,
-+										PacketSize,
-+										pManage);
- 									break;
- 								}
- 
--								if ((RTMPEqualMemory(IPX, pProto, 2) || RTMPEqualMemory(APPLE_TALK, pProto, 2)) && 
-+								if ((RTMPEqualMemory(IPX, pProto, 2) || RTMPEqualMemory(APPLE_TALK, pProto, 2)) &&
- 								    RTMPEqualMemory(SNAP_802_1H, pData, 6))
- 								{
- 								    // preserved the LLC/SNAP filed
-@@ -1468,21 +1483,17 @@
- 									pAdapter->FragFrame.Flags |= 0x01;
- 								}
- 							}
--									
-+
- 							// One & The only fragment
- 							if (pHeader->Controlhead.Frame.MoreFrag == FALSE)
- 							{
- 								// For miniportTransferData
- 								pAdapter->pRxData = pData;
--								
-+
- 								pAdapter->PortCfg.LedCntl.fRxActivity = TRUE; // for RX ACTIVITY LED
- 
- 								// Acknowledge upper layer the received frame
--#ifdef RTMP_EMBEDDED
-                                 if ((skb = __dev_alloc_skb(PacketSize + LENGTH_802_3 + 2, GFP_DMA|GFP_ATOMIC)) != NULL)
--#else
--                                if ((skb = dev_alloc_skb(PacketSize + LENGTH_802_3 + 2)) != NULL)
--#endif
-                                 {
-                                     skb->dev = pAdapter->net_dev;
-                                     skb_reserve(skb, 2);    // 16 byte align the IP header
-@@ -1499,7 +1510,7 @@
- 
- 								// Increase general counters
- 								pAdapter->Counters.GoodReceives++;
--	
-+
- 							}
- 							// First fragment of fragmented frames
- 							else
-@@ -1516,7 +1527,7 @@
- 						else
- 						{
- 							// No LLC-SNAP header in except the first fragment frame
--								
-+
- 							if ((pHeader->Sequence != pAdapter->FragFrame.Sequence) ||
- 								(pHeader->Frag != (pAdapter->FragFrame.LastFrag + 1)))
- 							{
-@@ -1525,7 +1536,7 @@
- 								memset(&pAdapter->FragFrame, 0, sizeof(FRAGMENT_FRAME));
- 								Status = NDIS_STATUS_FAILURE;
- 								break;
--							}	
-+							}
- 							else if ((pAdapter->FragFrame.RxSize + PacketSize) > MAX_FRAME_SIZE)
- 							{
- 								// Fragment frame is too large, it exeeds the maximum frame size.
-@@ -1535,12 +1546,12 @@
- 								Status = NDIS_STATUS_FAILURE;
- 								break;
- 							}
--							
-+
-                             // concatenate this fragment into the re-assembly buffer
- 							memcpy(&pAdapter->FragFrame.Buffer[LENGTH_802_3 + pAdapter->FragFrame.RxSize], pData, PacketSize);
- 							pAdapter->FragFrame.RxSize	+= PacketSize;
- 							pAdapter->FragFrame.LastFrag = pHeader->Frag;		// Update fragment number
--									
-+
- 							// Last fragment
- 							if (pHeader->Controlhead.Frame.MoreFrag == FALSE)
- 							{
-@@ -1555,7 +1566,7 @@
- 									}
- 									// Minus MIC length
- 									pAdapter->FragFrame.RxSize -= 8;
--											
-+
- 									if (pAdapter->FragFrame.Flags & 0x00000001)
- 									{
- 									    // originally there's an LLC/SNAP field in the first fragment
-@@ -1563,9 +1574,9 @@
- 									    // this LLC/SNAP field upon calculating TKIP MIC
- 										// Copy LLC data to the position in front of real data for MIC calculation
- 										memcpy(&pAdapter->FragFrame.Buffer[LENGTH_802_3 - LENGTH_802_1_H],
--														pAdapter->FragFrame.Header_LLC, 
-+														pAdapter->FragFrame.Header_LLC,
- 														LENGTH_802_1_H);
--									    pData = (PUCHAR) &pAdapter->FragFrame.Buffer[LENGTH_802_3 - LENGTH_802_1_H];										
-+									    pData = (PUCHAR) &pAdapter->FragFrame.Buffer[LENGTH_802_3 - LENGTH_802_1_H];
- 									    PacketSize = (USHORT)pAdapter->FragFrame.RxSize + LENGTH_802_1_H;
- 									    //cketSize = (USHORT)pAdapter->FragFrame.RxSize + 8;
- 									}
-@@ -1583,29 +1594,25 @@
- 										pWpaKey->RxMic,
-  									    PacketSize) == FALSE)
- 									{
--										DBGPRINT(RT_DEBUG_ERROR,"Rx MIC Value error 2\n");							
-+										DBGPRINT(RT_DEBUG_ERROR,"Rx MIC Value error 2\n");
- 										RTMPReportMicError(pAdapter, pWpaKey);
- 										Status = NDIS_STATUS_FAILURE;
- 										break;
- 									}
--							
-+
- 									// TODO:
- 									// Getting RxTSC from Rx descriptor
--								}				
-+								}
- 
-                                 // for RX ACTIVITY LED
--								pAdapter->PortCfg.LedCntl.fRxActivity = TRUE; 
-+								pAdapter->PortCfg.LedCntl.fRxActivity = TRUE;
- 
- 								// For miniportTransferData
- 								pAdapter->pRxData = &pAdapter->FragFrame.Buffer[LENGTH_802_3];
- 
- 								memcpy(pAdapter->FragFrame.Buffer, pAdapter->FragFrame.Header802_3, LENGTH_802_3);
- 								// Acknowledge upper layer the received frame
--#ifdef RTMP_EMBEDDED
-                                 if ((skb = __dev_alloc_skb(pAdapter->FragFrame.RxSize + LENGTH_802_3 + 2, GFP_DMA|GFP_ATOMIC)) != NULL)
--#else
--                                if ((skb = dev_alloc_skb(pAdapter->FragFrame.RxSize + LENGTH_802_3 + 2)) != NULL)
--#endif
-                                 {
-                                     skb->dev = pAdapter->net_dev;
-                                     skb_reserve(skb, 2);    /* 16 byte align the IP header */
-@@ -1619,7 +1626,7 @@
- 
- 								// Increase general counters
- 								pAdapter->Counters.GoodReceives++;
--	
-+
- 								// Clear Fragment frame contents
- 								memset(&pAdapter->FragFrame, 0, sizeof(FRAGMENT_FRAME));
- 								DBGPRINT(RT_DEBUG_INFO, "!!! Frame with Fragment Indicated !!!\n");
-@@ -1627,42 +1634,42 @@
- 						}
- 					}
- 					break;
--	
-+
- 				case BTYPE_MGMT:
- 					// Read required regsiter for MLME engine
- 					RTMP_IO_READ32(pAdapter, CSR17, &High32TSF);		// TSF value
- 					RTMP_IO_READ32(pAdapter, CSR16, &Low32TSF); 		// TSF vlaue
--				
-+
- 					// Enqueue this frame to MLME engine
- 					MlmeEnqueueForRecv(
- 						pAdapter,
--						&pAdapter->Mlme.Queue,	
--						High32TSF, 
-+						&pAdapter->Mlme.Queue,
-+						High32TSF,
- 						Low32TSF,
- 						(UCHAR)pRxD->BBR1,
--						(UCHAR)pAdapter->PortCfg.LastR17Value, 
--						pRxD->DataByteCnt, 
--						pManage);					
-+						(UCHAR)pAdapter->PortCfg.LastR17Value,
-+						pRxD->DataByteCnt,
-+						pManage);
- 					break;
--		
-+
- 				case BTYPE_CNTL:
- 					// Ignore ???
- 					break;
--	
-+
- 				default :
- 					break;
- 			}
- 		}
--			
-+
- 		pAdapter->CurDecryptIndex++;
- 		if (pAdapter->CurDecryptIndex >= RX_RING_SIZE)
- 		{
- 			pAdapter->CurDecryptIndex = 0;
- 		}
- 		Count++;
--			
-+
- 		pAdapter->RalinkCounters.DecryptCount ++;
--			
-+
- 		// Clear Cipherowner bit & Rx Owner bit for all drop & non-drop frames
- 		pRxD->CipherOwner = DESC_OWN_HOST;
- 		pRxD->Owner       = DESC_OWN_NIC;
-@@ -1673,7 +1680,7 @@
- 	}
- 	//}	while (Count < RX_RING_SIZE);
- 	//} while (pAdapter->CurDecryptIndex != HwDecryptIndex);
--		
-+
- 	// Make sure to release Rx ring resource
- 	spin_unlock_irqrestore(&pAdapter->RxRingLock, irqflag);
- }
-@@ -1706,10 +1713,10 @@
- 	ULONG			RegValue;
- 	ULONGLONG		HwEncryptIndex;
-         unsigned long           irqflag;
--	
-+
- 	// Make sure Prio ring resource won't be used by other threads
--	spin_lock_irqsave(&pAdapter->TxRingLock, irqflag);	
--	
-+	spin_lock_irqsave(&pAdapter->TxRingLock, irqflag);
-+
- 	RTMP_IO_READ32(pAdapter, SECCSR1, &RegValue);
-         HwEncryptIndex = RegValue - pAdapter->TxRing[0].pa_addr;
-         do_div(HwEncryptIndex, RING_DESCRIPTOR_SIZE);
-@@ -1749,17 +1756,18 @@
- 			*pTmp       = Eiv_Tmp[3];
- 			*(pTmp + 1) = Eiv_Tmp[2];
- 			*(pTmp + 2) = Eiv_Tmp[1];
--			*(pTmp + 3) = Eiv_Tmp[0];			
-+			*(pTmp + 3) = Eiv_Tmp[0];
- 		}
- 		// Sanity Check, CurTxIndex should equal to NextEncryptDoneIndex
- 		// ASSERT(pAdapter->CurTxIndex == pAdapter->NextEncryptDoneIndex);
--		
-+
- 		pTxD->Valid = TRUE;
- 		pTxD->Owner = DESC_OWN_NIC;
- 
- #ifdef BIG_ENDIAN
-         RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
--        *pDestTxD = TxD;
-+        //*pDestTxD = TxD;
-+	WriteBackToDescriptor((PUCHAR)pDestTxD, (PUCHAR)pTxD, FALSE, TYPE_TXD);
- #endif
- 
- 		pAdapter->NextEncryptDoneIndex++;
-@@ -1778,9 +1786,9 @@
- 
- 	// Kick Tx Control Register at the end of all ring buffer preparation
- 	RTMP_IO_WRITE32(pAdapter, TXCSR0, 0x1);
--	
-+
- 	// Make sure to release Tx ring resource
--	spin_unlock_irqrestore(&pAdapter->TxRingLock, irqflag);	
-+	spin_unlock_irqrestore(&pAdapter->TxRingLock, irqflag);
- }
- 
- /*
-@@ -1854,7 +1862,7 @@
- 				INC_COUNTER(pAdapter->WlanCounters.RTSSuccessCount);
- 				pTxD->RTS = 0;
- 			}
--			
-+
- 			// Increase general counters
- 			pAdapter->Counters.GoodTransmits++;
- 			INC_COUNTER(pAdapter->WlanCounters.TransmittedFragmentCount);
-@@ -1865,22 +1873,22 @@
-                 pAdapter->DrsCounters.OneSecTxOkCount ++;
-             }
- 			break;
--			  
-+
- 		case SUCCESS_WITH_RETRY:			// Success with some retry
- 			// DBGPRINT(RT_DEBUG_INFO, "TX Success with retry(=%d)<<<\n",pTxD->RetryCount);
- 			// Increase 802.11 counters
- 			INC_COUNTER(pAdapter->WlanCounters.RetryCount);
- 			INC_COUNTER(pAdapter->WlanCounters.ACKFailureCount);
- 			INC_COUNTER(pAdapter->WlanCounters.TransmittedFragmentCount);
--			
-+
- 			// Increase general counters
- 			pAdapter->Counters.GoodTransmits++;
--			
-+
- 			if (pTxD->RetryCount > 1)
- 			{
- 				// Increase 802.11 counters
- 				INC_COUNTER(pAdapter->WlanCounters.MultipleRetryCount);
--				
-+
- 				// Increase general counters
- 				pAdapter->Counters.MoreCollisions++;
- 			}
-@@ -1889,7 +1897,7 @@
- 				// Increase general counters
- 				pAdapter->Counters.OneCollision++;
- 			}
--			
-+
- 			if (pTxD->RTS)
- 			{
- 				INC_COUNTER(pAdapter->WlanCounters.RTSSuccessCount);
-@@ -1901,7 +1909,7 @@
-             {
-                 if (pTxD->TxRate > pAdapter->PortCfg.TxRate)
-                 {
--                    // DRS - must be NULL frame retried @ UpRate; downgrade 
-+                    // DRS - must be NULL frame retried @ UpRate; downgrade
-                     //       TxQuality[UpRate] so that not upgrade TX rate
-                     pAdapter->DrsCounters.TxQuality[pTxD->TxRate] += 2;
-                     if (pAdapter->DrsCounters.TxQuality[pTxD->TxRate] > DRS_TX_QUALITY_WORST_BOUND)
-@@ -1917,10 +1925,10 @@
- 			// Increase 802.11 counters
- 			INC_COUNTER(pAdapter->WlanCounters.FailedCount);
- 			INC_COUNTER(pAdapter->WlanCounters.ACKFailureCount);
--			
-+
- 			// Increase general counters
- 			pAdapter->Counters.TxErrors++;
--			
-+
- 			if (pTxD->RTS)
- 			{
- 				INC_COUNTER(pAdapter->WlanCounters.RTSFailureCount);
-@@ -1932,7 +1940,7 @@
-             {
-                 if (pTxD->TxRate > pAdapter->PortCfg.TxRate)
-                 {
--                    // DRS - must be NULL frame failed @ UpRate; downgrade 
-+                    // DRS - must be NULL frame failed @ UpRate; downgrade
-                     //       TxQuality[UpRate] so that not upgrade TX rate
-                     pAdapter->DrsCounters.TxQuality[pTxD->TxRate] = DRS_TX_QUALITY_WORST_BOUND;
-                 }
-@@ -1942,35 +1950,35 @@
-                 }
-             }
- 			break;
--			
-+
- 		case FAIL_INVALID:
- 			// DBGPRINT(RT_DEBUG_WARN, ("TX Failed (INVALID)<<<\n"));
- 			// Increase general counters
- 			pAdapter->Counters.TxErrors++;
--			
-+
- 			if (pTxD->RTS)
- 			{
- 				INC_COUNTER(pAdapter->WlanCounters.RTSFailureCount);
- 				pTxD->RTS = 0;
- 			}
--			break;			
--			
-+			break;
-+
- 		case FAIL_OTHER:
- 		default:
- 			// DBGPRINT(RT_DEBUG_ERROR, ("TX Failed (other=%d)<<<\n",pTxD->TxResult));
- 			// Increase 802.11 counters
- 			INC_COUNTER(pAdapter->WlanCounters.FailedCount);
- 			INC_COUNTER(pAdapter->WlanCounters.ACKFailureCount);
--			
-+
- 			// Increase general counters
- 			pAdapter->Counters.TxErrors++;
--			
-+
- 			if (pTxD->RTS)
- 			{
- 				INC_COUNTER(pAdapter->WlanCounters.RTSFailureCount);
- 				pTxD->RTS = 0;
- 			}
--			break;			
-+			break;
- 	}
- }
- 
-@@ -1980,19 +1988,19 @@
- 	Routine	Description:
- 		API for MLME to transmit management frame to AP (BSS Mode)
- 	or station (IBSS Mode)
--	
-+
- 	Arguments:
- 		pAdapter	Pointer	to our adapter
- 		Buffer		Pointer to  memory of outgoing frame
- 		Length		Size of outgoing management frame
--		
-+
- 	Return Value:
- 		NDIS_STATUS_FAILURE
- 		NDIS_STATUS_PENDING
- 		NDIS_STATUS_SUCCESS
- 
- 	Note:
--	
-+
- 	========================================================================
- */
- NDIS_STATUS	MiniportMMRequest(
-@@ -2001,28 +2009,28 @@
- 	IN	ULONG			Length)
- {
- 	PMGMT_STRUC		pMgmt;
--	NDIS_STATUS		Status = NDIS_STATUS_SUCCESS;    
-+	NDIS_STATUS		Status = NDIS_STATUS_SUCCESS;
- 	unsigned long irqflag;
- 
- 	DBGPRINT(RT_DEBUG_INFO, "---> MiniportMMRequest\n");
- 	// Check management ring free avaliability
- 	pMgmt = (PMGMT_STRUC) &pAdapter->MgmtRing[pAdapter->PushMgmtIndex];
--	
-+
- 	// This management cell has been occupied
--	if (pMgmt->Valid == TRUE)	
-+	if (pMgmt->Valid == TRUE)
- 	{
- 		// No Management ring buffer avaliable
- 		MlmeFreeMemory(pAdapter, pBuffer);
--		Status = NDIS_STATUS_FAILURE; 
-+		Status = NDIS_STATUS_FAILURE;
- 		DBGPRINT(RT_DEBUG_WARN, "<--- MiniportMMRequest (error:: MgmtRing full)\n");
- 		pAdapter->RalinkCounters.MgmtRingFullCount++;
- 		return (Status);
- 	}
--	
-+
- 	// Insert this request into software managemnet ring
- 	if (pBuffer)
- 	{
--		pMgmt->pBuffer = pBuffer;		
-+		pMgmt->pBuffer = pBuffer;
- 		pMgmt->Length  = Length;
- 		pMgmt->Valid   = TRUE;
- 		pAdapter->PushMgmtIndex++;
-@@ -2031,19 +2039,19 @@
- 		{
- 			pAdapter->PushMgmtIndex = 0;
- 		}
--	}	
-+	}
- 	else
- 	{
- 		// Null pBuffer, no need to free memory buffer.
- 		// This should not happen
- 		DBGPRINT(RT_DEBUG_WARN, "<--- MiniportMMRequest (error:: NULL msg)\n");
--		Status = NDIS_STATUS_FAILURE; 
-+		Status = NDIS_STATUS_FAILURE;
- 		return (Status);
- 	}
--	
-+
- 	if (RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_RADIO_OFF))
- 		return (Status);
--	
-+
- 	// Check Free priority queue
- 	spin_lock_irqsave(&pAdapter->PrioRingLock, irqflag);
- 	if (RTMPFreeDescriptorRequest(pAdapter, PRIO_RING, 1) == NDIS_STATUS_SUCCESS)
-@@ -2076,21 +2084,21 @@
- 	========================================================================
- 
- 	Routine	Description:
--		Copy frame from waiting queue into relative ring buffer and set 
-+		Copy frame from waiting queue into relative ring buffer and set
- 	appropriate ASIC register to kick hardware transmit function
--	
-+
- 	Arguments:
- 		pAdapter	Pointer	to our adapter
- 		pBuffer		Pointer to  memory of outgoing frame
- 		Length		Size of outgoing management frame
--		
-+
- 	Return Value:
- 		NDIS_STATUS_FAILURE
- 		NDIS_STATUS_PENDING
- 		NDIS_STATUS_SUCCESS
- 
- 	Note:
--	
-+
- 	========================================================================
- */
- VOID	MlmeHardTransmit(
-@@ -2103,15 +2111,15 @@
-     PTXD_STRUC      pDestTxD;
-     TXD_STRUC       TxD;
- #endif
--	PUCHAR			pDest;	
-+	PUCHAR			pDest;
- 	PHEADER_802_11	pHeader_802_11;
- 	BOOLEAN         AckRequired, InsertTimestamp;
--	
-+
- 	DBGPRINT(RT_DEBUG_INFO, "MlmeHardTransmit\n");
--	
-+
- 	// Make sure Prio ring resource won't be used by other threads
--		
--	pDest = (PUCHAR) pAdapter->PrioRing[pAdapter->CurPrioIndex].va_data_addr;              
-+
-+	pDest = (PUCHAR) pAdapter->PrioRing[pAdapter->CurPrioIndex].va_data_addr;
- #ifndef BIG_ENDIAN
- 	pTxD  = (PTXD_STRUC) pAdapter->PrioRing[pAdapter->CurPrioIndex].va_addr;
- #else
-@@ -2120,7 +2128,7 @@
-     pTxD = &TxD;
-     RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
- #endif
--		
-+
- 	if (pTxD->Owner == DESC_OWN_NIC)
- 	{
- 		// Descriptor owned by NIC. No descriptor avaliable
-@@ -2138,10 +2146,10 @@
- 		// The buffer shouldn't be NULL
- 		return;
- 	}
--	
--	// outgoing frame always wakeup PHY to prevent frame lost 
-+
-+	// outgoing frame always wakeup PHY to prevent frame lost
- 	AsicForceWakeup(pAdapter);
--	
-+
- 	pHeader_802_11           = (PHEADER_802_11) pBuffer;
- 	pHeader_802_11->Controlhead.Frame.PwrMgt = 0; // (pAdapter->PortCfg.Psm == PWR_SAVE);
- 	InsertTimestamp = FALSE;
-@@ -2175,7 +2183,7 @@
-     RTMPFrameEndianChange(pAdapter, (PUCHAR)pBuffer, DIR_WRITE, FALSE);
- #endif
- 	memcpy(pDest, pBuffer, Length);
--   
-+
- 	// Initialize Priority Descriptor
- 	// For inter-frame gap, the number is for this frame and next frame
- 	// For MLME rate, we will fix as 2Mb to match other vendor's implement
-@@ -2193,28 +2201,28 @@
- 	{
- 		pAdapter->CurPrioIndex = 0;
- 	}
--		
-+
- 	// Kick priority ring transmit
- 	RTMP_IO_WRITE32(pAdapter,TXCSR0,0x4);
--	
-+
- 	// Make sure to release Prio ring resource
--}   
-+}
- /*
- 	========================================================================
- 
- 	Routine	Description:
- 		This routine is	used to	en-queue outgoing packets when
- 		there is no	enough shread memory
--		
-+
- 	Arguments:
- 		pAdapter	Pointer	to our adapter
- 		pPacket		Pointer to send packet
--		
-+
- 	Return Value:
- 		None
- 
- 	Note:
--	
-+
- 	========================================================================
- */
- NDIS_STATUS	RTMPSendPacket(
-@@ -2225,51 +2233,42 @@
- 	UINT			AllowFragSize;
- 	UCHAR			NumberOfFrag;
- 	UCHAR			RTSRequired;
--	NDIS_STATUS		Status = NDIS_STATUS_FAILURE;
--	UCHAR			PsMode;
--	
-+
- 	struct sk_buff_head	*pTxQueue = NULL;
- 	ULONG			Priority;
- 	UCHAR                   AccessCategory;
-         unsigned long           irqflag;
--	
--	DBGPRINT(RT_DEBUG_INFO, "<==== RTMPSendPacket\n");
- 
--	// Init priority value
--	Priority = 0;
--	AccessCategory = 0;
--	
--    if (skb)
--    {
--		Priority = skb->priority;
--		// 802.11e/d4.4 June, 2003
--		if (Priority <=2)
--		    AccessCategory = 0;
--		else if (Priority == 3)
--		    AccessCategory = 1;
--		else if (Priority <= 5)
--		    AccessCategory = 2;
--		else
--		    AccessCategory = 3;
--		DBGPRINT(RT_DEBUG_INFO, "Priority = %d, AC = %d\n", Priority, AccessCategory);
--    }
-+	DBGPRINT(RT_DEBUG_INFO, "====> RTMPSendPacket\n");
-+
-+	if (skb == NULL)
-+		return NDIS_STATUS_SUCCESS;
-+
-+	Priority = skb->priority;
-+	// 802.11e/d4.4 June, 2003
-+	if (Priority <=2)
-+	    AccessCategory = 0;
-+	else if (Priority == 3)
-+	    AccessCategory = 1;
-+	else if (Priority <= 5)
-+	    AccessCategory = 2;
-+	else
-+	    AccessCategory = 3;
-+	DBGPRINT(RT_DEBUG_INFO, "Priority = %d, AC = %d\n", Priority,
-+			AccessCategory);
- 
- 	// For TKIP, MIC value is treated as payload, it might be fragmented through
- 	// different MPDUs.
- 	if (pAdapter->PortCfg.WepStatus == Ndis802_11Encryption2Enabled)
--	{
- 		skb->data_len += 8;
--	}
- 
- 	pVirtualAddress = (PVOID)skb->data;
- 
- 	// Check for virtual address allocation, it might fail !!!
- 	if (pVirtualAddress == NULL)
--	{
--		// Resourece is low, system did not allocation virtual address
-+		// Resource is low, system did not allocate virtual address
- 		// return NDIS_STATUS_FAILURE directly to upper layer
--		return (Status);
--	}
-+		return NDIS_STATUS_FAILURE;
- 
- 	// Store Ethernet MAC address when APClinet mode on
- 	if ((pAdapter->PortCfg.StaWithEtherBridge.Enable)
-@@ -2296,7 +2295,7 @@
-         pAdapter->CurrentAddress[3] = StaMacReg0.field.Byte3;
-         pAdapter->CurrentAddress[4] = StaMacReg1.field.Byte4;
-         pAdapter->CurrentAddress[5] = StaMacReg1.field.Byte5;
--        
-+
-         RTMP_IO_WRITE32(pAdapter, CSR3, StaMacReg0.word);
-         RTMP_IO_WRITE32(pAdapter, CSR4, StaMacReg1.word);
- 
-@@ -2304,7 +2303,7 @@
- 	        pAdapter->PortCfg.StaWithEtherBridge.EtherMacAddr.Octet[0],pAdapter->PortCfg.StaWithEtherBridge.EtherMacAddr.Octet[1],pAdapter->PortCfg.StaWithEtherBridge.EtherMacAddr.Octet[2],
- 	        pAdapter->PortCfg.StaWithEtherBridge.EtherMacAddr.Octet[3],pAdapter->PortCfg.StaWithEtherBridge.EtherMacAddr.Octet[4],pAdapter->PortCfg.StaWithEtherBridge.EtherMacAddr.Octet[5]);
- 	}
--	
-+
- 	//
- 	// Check for multicast or broadcast (First byte of DA)
- 	//
-@@ -2322,37 +2321,30 @@
- 		NumberOfFrag = ((skb->data_len - LENGTH_802_3 + LENGTH_802_1_H) / AllowFragSize) + 1;
- 		// Minus 1 if the size just match to allowable fragment size
- 		if (((skb->data_len - LENGTH_802_3 + LENGTH_802_1_H) % AllowFragSize) == 0)
--		{
- 			NumberOfFrag--;
--		}
- 	}
- 
--	// Check for requirement of RTS 
-+	// Check for requirement of RTS
- 	if (NumberOfFrag > 1)
--	{
- 		// If multiple fragment required, RTS is required only for the first fragment
- 		// if the fragment size large than RTS threshold
- 		RTSRequired = (pAdapter->PortCfg.FragmentThreshold > pAdapter->PortCfg.RtsThreshold) ? 1 : 0;
--	}
- 	else
--	{
- 		RTSRequired = (skb->data_len > pAdapter->PortCfg.RtsThreshold) ? 1 : 0;
--	}
--	DBGPRINT(RT_DEBUG_INFO, "Number of fragments include RTS :%d\n", NumberOfFrag + RTSRequired);
-+	DBGPRINT(RT_DEBUG_INFO,
-+			"Number of fragments include RTS :%d\n",
-+			NumberOfFrag + RTSRequired);
-+
-+	// RTS/CTS may also be required in order to protect OFDM frame
-+	if ((pAdapter->PortCfg.TxRate >= RATE_FIRST_OFDM_RATE) && pAdapter->PortCfg.BGProtectionInUsed)
-+		RTSRequired = 1;
- 
--    // RTS/CTS may also be required in order to protect OFDM frame
--    if ((pAdapter->PortCfg.TxRate >= RATE_FIRST_OFDM_RATE) && pAdapter->PortCfg.BGProtectionInUsed)
--        RTSRequired = 1;
--        
- 	// Save framnet number to Ndis packet reserved field
- 	RTMP_SET_PACKET_FRAGMENTS(skb, NumberOfFrag);
- 
- 	// Save RTS requirement to Ndis packet reserved field
- 	RTMP_SET_PACKET_RTS(skb, RTSRequired);
- 
--	// Make sure SendTxWait queue resource won't be used by other threads
--	spin_lock_irqsave(&pAdapter->TxSwQueueLock, irqflag);
--
- 	// Select the right priority queue
- 	// There should be no else statement since it should always fall within 0-3
- 	if (AccessCategory== 0)
-@@ -2363,56 +2355,49 @@
- 		pTxQueue = &pAdapter->TxSwQueue2;
- 	else if (AccessCategory== 3)
- 		pTxQueue = &pAdapter->TxSwQueue3;
--	
-+
- 	//
- 	// For infrastructure mode, enqueue this frame immediately to sendwaitqueue
- 	// For Ad-hoc mode, check the DA power state, then decide which queue to enqueue
- 	//
--	if (INFRA_ON(pAdapter))
--	{
--	    // In infrastructure mode, simply enqueue the packet into Tx waiting queue.
--	    DBGPRINT(RT_DEBUG_INFO, "Infrastructure -> Enqueue one frame\n");
--		
--	    // Enqueue Ndis packet to end of Tx wait queue
--	    skb_queue_tail(pTxQueue, skb);
--	    Status = NDIS_STATUS_SUCCESS;
--	}
--	else
--	{
--	    // In IBSS mode, power state of destination should be considered.
--	    PsMode = PWR_ACTIVE;		// Faked
--	    if (PsMode == PWR_ACTIVE)
--	    {
--		DBGPRINT(RT_DEBUG_INFO,"Ad-Hoc -> Enqueue one frame\n");
--
-+	if (INFRA_ON(pAdapter)) {
-+	    	// In infrastructure mode, simply enqueue the packet into Tx waiting queue.
-+	    	DBGPRINT(RT_DEBUG_INFO,
-+	    		"<=== RTMPSendPacket Infrastructure -> Enqueue one frame\n");
- 		// Enqueue Ndis packet to end of Tx wait queue
-+		spin_lock_irqsave(&pAdapter->TxSwQueueLock, irqflag);
- 		skb_queue_tail(pTxQueue, skb);
--		Status = NDIS_STATUS_SUCCESS;
--	    }
-+		spin_unlock_irqrestore(&pAdapter->TxSwQueueLock, irqflag);
-+		return NDIS_STATUS_SUCCESS;
- 	}
--	
-+	// Ad-hoc mode (power state of destination might be considered).
-+	DBGPRINT(RT_DEBUG_INFO,
-+			"<=== RTMPSendPacket Ad-Hoc -> Enqueue one frame\n");
-+	// Enqueue Ndis packet to end of Tx wait queue
-+	spin_lock_irqsave(&pAdapter->TxSwQueueLock, irqflag);
-+	skb_queue_tail(pTxQueue, skb);
- 	spin_unlock_irqrestore(&pAdapter->TxSwQueueLock, irqflag);
--	return (Status);
-+	return NDIS_STATUS_SUCCESS;
- }
- 
- /*
- 	========================================================================
- 
- 	Routine	Description:
--		To do the enqueue operation and extract the first item of waiting 
--		list. If a number of available shared memory segments could meet 
-+		To do the enqueue operation and extract the first item of waiting
-+		list. If a number of available shared memory segments could meet
- 		the request of extracted item, the extracted item will be fragmented
- 		into shared memory segments.
--		
-+
- 	Arguments:
- 		pAdapter	Pointer	to our adapter
- 		pQueue		Pointer to Waiting Queue
--		
-+
- 	Return Value:
- 		None
- 
- 	Note:
--	
-+
- 	========================================================================
- */
- VOID	RTMPDeQueuePacket(
-@@ -2424,69 +2409,64 @@
- 	struct sk_buff_head	*pQueue;
- 	UCHAR           AccessCategory;
- 	struct sk_buff  *skb;
--        unsigned long           irqflag;
--	
--	// Make sure SendTxWait queue resource won't be used by other threads
--	spin_lock_irqsave(&pAdapter->TxSwQueueLock, irqflag);
-+	unsigned long           irqflag;
- 
--	while (Count < MAX_TX_PROCESS)
--	// Check queue before dequeue
--	// while ((pQueue->Head != NULL) && (Count < MAX_TX_PROCESS)) 
--	{
-+	while (Count < MAX_TX_PROCESS) {
- 		// Reset is in progress, stop immediately
- 		if (RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_RESET_IN_PROGRESS))
- 			break;
- 
- 		pQueue = RTMPCheckTxSwQueue(pAdapter, &AccessCategory);
- 		if(!pQueue)
--                    break;
-+			break;
- 
- 		// Dequeue the first entry from head of queue list
-+		spin_lock_irqsave(&pAdapter->TxSwQueueLock, irqflag);
- 		skb = skb_dequeue(pQueue);
-+		spin_unlock_irqrestore(&pAdapter->TxSwQueueLock, irqflag);
- 
- 		if(!skb)
--                    break;
-+			break;
- 
- 		// RTS or CTS-to-self for B/G protection mode has been set already.
--		// There is no need to re-do it here. 
-+		// There is no need to re-do it here.
- 		// Total fragment required = number of fragment + RST if required
- 		FragmentRequired = RTMP_GET_PACKET_FRAGMENTS(skb) + RTMP_GET_PACKET_RTS(skb);
--		
--		if (RTMPFreeDescriptorRequest(pAdapter, TX_RING, FragmentRequired) == NDIS_STATUS_SUCCESS)
--		{
--			// Avaliable ring descriptors are enough for this frame
--			// Call hard transmit
--			Status = RTMPHardEncrypt(pAdapter, skb, FragmentRequired, pAdapter->PortCfg.EnableTxBurst, AccessCategory);
- 
--			if (Status == NDIS_STATUS_FAILURE)
--			{
--                // Packet failed due to various Ndis Packet error
--               dev_kfree_skb_irq(skb);
--				break;
--			}
--			else if (Status == NDIS_STATUS_RESOURCES)
--			{
--				// Not enough free tx ring, it might happen due to free descriptor inquery might be not correct
--				// It also might change to NDIS_STATUS_FAILURE to simply drop the frame
--				// Put the frame back into head of queue
--				skb_queue_head(pQueue, skb);
--                break;
--			}			
--			Count++;
--		}	
--		else
--		{
-+		if (RTMPFreeDescriptorRequest(pAdapter, TX_RING,
-+				FragmentRequired) != NDIS_STATUS_SUCCESS) {
-+			spin_lock_irqsave(&pAdapter->TxSwQueueLock, irqflag);
- 			skb_queue_head(pQueue, skb);
-+			spin_unlock_irqrestore(&pAdapter->TxSwQueueLock, irqflag);
- 			pAdapter->PrivateInfo.TxRingFullCnt++;
--			DBGPRINT(RT_DEBUG_INFO,"RTMPDequeuePacket --> Not enough free Tx Ring descriptor (CurEncryptIndex=%d,CurTxIndex=%d, NextTxDoneIndex=%d)!!!\n",
--			    pAdapter->CurEncryptIndex, pAdapter->CurTxIndex, pAdapter->NextTxDoneIndex);
-+			DBGPRINT(RT_DEBUG_INFO,
-+					"RTMPDequeuePacket --> Not enough free Tx Ring descriptor (CurEncryptIndex=%d,CurTxIndex=%d, NextTxDoneIndex=%d)!!!\n",
-+					pAdapter->CurEncryptIndex,
-+					pAdapter->CurTxIndex,
-+					pAdapter->NextTxDoneIndex);
- 			break;
- 		}
-+		// Available ring descriptors are enough for this frame
-+		// Call hard transmit
-+		Status = RTMPHardEncrypt(pAdapter, skb, FragmentRequired, pAdapter->PortCfg.EnableTxBurst, AccessCategory);
-+		if (Status == NDIS_STATUS_FAILURE) {
-+        		// Packet failed due to various Ndis Packet error
-+       			dev_kfree_skb_irq(skb);
-+			break;
-+		} else if (Status == NDIS_STATUS_RESOURCES) {
-+			// Not enough free tx ring, it might happen due to free descriptor inquery might be not correct
-+			// It also might change to NDIS_STATUS_FAILURE to simply drop the frame
-+			// Put the frame back into head of queue
-+			spin_lock_irqsave(&pAdapter->TxSwQueueLock, irqflag);
-+			skb_queue_head(pQueue, skb);
-+			spin_unlock_irqrestore(&pAdapter->TxSwQueueLock, irqflag);
-+        		break;
-+		}
-+
-+		Count++;
- 	}
- 
--	// Release TxSwQueue0 resources
--	spin_unlock_irqrestore(&pAdapter->TxSwQueueLock, irqflag);
--}    
-+}
- 
- /*
- 	========================================================================
-@@ -2494,17 +2474,17 @@
- 	Routine	Description:
- 		This subroutine will scan through releative ring descriptor to find
- 		out avaliable free ring descriptor and compare with request size.
--		
-+
- 	Arguments:
- 		pAdapter	Pointer	to our adapter
- 		RingType	Selected Ring
--		
-+
- 	Return Value:
- 		NDIS_STATUS_FAILURE		Not enough free descriptor
- 		NDIS_STATUS_SUCCESS		Enough free descriptor
- 
- 	Note:
--	
-+
- 	========================================================================
- */
- NDIS_STATUS	RTMPFreeDescriptorRequest(
-@@ -2557,18 +2537,18 @@
- 				{
- 					Index = 0;
- 				}
--				
-+
- 			}	while (FreeNumber < NumberRequired);	// Quit here ! Free number is enough !
--			
-+
- 			if (FreeNumber >= NumberRequired)
- 			{
- 				Status = NDIS_STATUS_SUCCESS;
- 			}
--			
-+
- 			// Make sure to release Tx ring resource
- 			spin_unlock_irqrestore(&pAdapter->TxRingLock, irqflag);
- 			break;
--			
-+
- 		case PRIO_RING:
- 			Index = pAdapter->CurPrioIndex;
- 			do
-@@ -2581,7 +2561,7 @@
-                 pTxD = &TxD;
-                 RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
- #endif
--				
-+
- 				// While Owner bit is NIC, obviously ASIC still need it.
- 				// If valid bit is TRUE, indicate that TxDone has not process yet
- 				// We should not use it until TxDone finish cleanup job
-@@ -2594,26 +2574,26 @@
- 				{
- 					break;
- 				}
--					
-+
- 				Index++;
- 				if (Index >= PRIO_RING_SIZE)			// Wrap around issue
- 				{
- 					Index = 0;
- 				}
--				
-+
- 			}	while (FreeNumber < NumberRequired);	// Quit here ! Free number is enough !
--			
-+
- 			if (FreeNumber >= NumberRequired)
- 			{
- 				Status = NDIS_STATUS_SUCCESS;
- 			}
--			
-+
- 			break;
- 
- 		default:
- 			break;
- 	}
--	
-+
- 	return (Status);
- }
- 
-@@ -2631,7 +2611,7 @@
-     TXD_STRUC       TxD;
- #endif
-         unsigned long           irqflag;
--	
-+
- 	if (pBuffer == NULL)
- 	{
- 		return;
-@@ -2642,19 +2622,19 @@
- 		MlmeFreeMemory(pAdapter, pBuffer);
- 		return;
- 	}
--	
-+
- 	// WPA 802.1x secured port control
--    if (((pAdapter->PortCfg.AuthMode == Ndis802_11AuthModeWPA) || 
-+    if (((pAdapter->PortCfg.AuthMode == Ndis802_11AuthModeWPA) ||
-         (pAdapter->PortCfg.AuthMode == Ndis802_11AuthModeWPAPSK)) &&
--       (pAdapter->PortCfg.PortSecured == WPA_802_1X_PORT_NOT_SECURED)) 
-+       (pAdapter->PortCfg.PortSecured == WPA_802_1X_PORT_NOT_SECURED))
- 	{
- 		MlmeFreeMemory(pAdapter, pBuffer);
- 		return;
--	}		
--	
-+	}
-+
- 	FrameGap = IFS_BACKOFF;		// Default frame gap mode
- 
--	// outgoing frame always wakeup PHY to prevent frame lost and 
-+	// outgoing frame always wakeup PHY to prevent frame lost and
- 	// turn off PSM bit to improve performance
- 	AsicForceWakeup(pAdapter);
- #if 0
-@@ -2664,13 +2644,13 @@
- 		DBGPRINT(RT_DEBUG_TRACE,("Drop Null frame due to Tx queue not empty!\n"));
- 	}
- 	else
--#endif	    
-+#endif
- 	{
- 		// Make sure Tx ring resource won't be used by other threads
- 		spin_lock_irqsave(&pAdapter->TxRingLock, irqflag);
--	
-+
- 		// Get the Tx Ring descriptor & Dma Buffer address
--		pDest = (PUCHAR) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_data_addr;              
-+		pDest = (PUCHAR) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_data_addr;
- #ifndef BIG_ENDIAN
- 		pTxD  = (PTXD_STRUC) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_addr;
- #else
-@@ -2679,11 +2659,11 @@
-         pTxD = &TxD;
-         RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
- #endif
--		
-+
- 		if ((pTxD->Owner == DESC_OWN_HOST) && (pTxD->CipherOwn == DESC_OWN_HOST) && (pTxD->Valid == FALSE))
- 		{
- 			HEADER_802_11	*pHeader_802_11;
--			
-+
- 			DBGPRINT(RT_DEBUG_TRACE, "SYNC - send NULL Frame @%d Mbps...\n", RateIdToMbps[TxRate]);
- #ifdef BIG_ENDIAN
-             RTMPFrameEndianChange(pAdapter, (PUCHAR)pBuffer, DIR_WRITE, FALSE);
-@@ -2693,14 +2673,14 @@
- 
- 			pHeader_802_11 = (PHEADER_802_11) pDest;
- 			pHeader_802_11->Controlhead.Frame.PwrMgt = (pAdapter->PortCfg.Psm == PWR_SAVE);
--			
-+
- #ifdef BIG_ENDIAN
-             RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
-             *pDestTxD = TxD;
-             pTxD = pDestTxD;
- #endif
- 
--			RTMPWriteTxDescriptor(pTxD, TRUE, CIPHER_NONE, TRUE, FALSE, FALSE, LONG_RETRY, IFS_BACKOFF, 
-+			RTMPWriteTxDescriptor(pTxD, TRUE, CIPHER_NONE, TRUE, FALSE, FALSE, LONG_RETRY, IFS_BACKOFF,
- 			    TxRate, 4, Length, pAdapter->PortCfg.TxPreambleInUsed, 0);
- 
- 			// Increase & maintain Tx Ring Index
-@@ -2709,13 +2689,13 @@
- 			{
- 				pAdapter->CurEncryptIndex = 0;
- 			}
--			
-+
- 			pAdapter->RalinkCounters.EncryptCount++;
- 
- 			// Kick Encrypt Control Register at the end of all ring buffer preparation
- 			RTMP_IO_WRITE32(pAdapter, SECCSR1, 0x1);
--			
--		}		
-+
-+		}
- 		spin_unlock_irqrestore(&pAdapter->TxRingLock, irqflag);
- 	}
- 	MlmeFreeMemory(pAdapter, pBuffer);
-@@ -2725,20 +2705,20 @@
- 	========================================================================
- 
- 	Routine	Description:
--		Copy frame from waiting queue into relative ring buffer and set 
-+		Copy frame from waiting queue into relative ring buffer and set
- 	appropriate ASIC register to kick hardware encryption before really
- 	sent out to air.
--		
-+
- 	Arguments:
- 		pAdapter		Pointer	to our adapter
- 		PNDIS_PACKET	Pointer to outgoing Ndis frame
- 		NumberOfFrag	Number of fragment required
--		
-+
- 	Return Value:
- 		None
- 
- 	Note:
--	
-+
- 	========================================================================
- */
- NDIS_STATUS	RTMPHardEncrypt(
-@@ -2794,7 +2774,7 @@
-     if (pAdapter->PortCfg.BssType == BSS_MONITOR && pAdapter->PortCfg.MallowRFMONTx == TRUE)
-     {
- 	pAdapter->TxRing[pAdapter->CurEncryptIndex].FrameType = BTYPE_DATA;
--	pDest = (PUCHAR) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_data_addr;              
-+	pDest = (PUCHAR) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_data_addr;
- 	pTxD  = (PTXD_STRUC) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_addr;
- 	MlmeSetPsmBit(pAdapter, PWR_ACTIVE);
- 	memcpy(pDest,skb->data,skb->len);
-@@ -2812,25 +2792,25 @@
- 		FrameGap = IFS_SIFS;
- 	else
- 		FrameGap = IFS_BACKOFF;		// Default frame gap mode
--	
--	// outgoing frame always wakeup PHY to prevent frame lost and 
-+
-+	// outgoing frame always wakeup PHY to prevent frame lost and
- 	// turn off PSM bit to improve performance
- 	if (pAdapter->PortCfg.Psm == PWR_SAVE)
- 	{
- 		MlmeSetPsmBit(pAdapter, PWR_ACTIVE);
- 	}
- 	AsicForceWakeup(pAdapter);
--	
-+
- 	// Sequence Number is identical for all fragments belonged to the same frame
- 	// Sequence is 0 - 4095
- 	pAdapter->Sequence = ((pAdapter->Sequence) + 1) & (MAX_SEQ_NUMBER);
--	
-+
- 	AckRate = pAdapter->PortCfg.ExpectedACKRate[pAdapter->PortCfg.TxRate];
- 	AckDuration = RTMPCalcDuration(pAdapter, AckRate, 14);
- 
-     pVirtualAddress = skb->data;
-     NdisBufferLength = skb->len;
--	
-+
- 	if ((*((PUCHAR) pVirtualAddress) & 0x01) != 0)	// Multicast or Broadcast
- 	{
- 		INC_COUNTER(pAdapter->WlanCounters.MulticastTransmittedFrameCount);
-@@ -2843,7 +2823,7 @@
- 		spin_unlock_irqrestore(&pAdapter->TxRingLock, irqflag);
- 		return (NDIS_STATUS_FAILURE);
- 	}
--	
-+
- 	//
- 	// Start making 802.11 frame header
- 	//
-@@ -2855,14 +2835,14 @@
- 		memcpy(&Header_802_11.Addr3, (PUCHAR) pVirtualAddress, ETH_ALEN);
- 		Header_802_11.Controlhead.Frame.ToDs = 1;
- 	}
--	else 
-+	else
- 	{
- 		// Address 1 - DA, Address 2 - this STA, Address 3 - BSSID
- 		memcpy(&Header_802_11.Controlhead.Addr1, (PUCHAR) pVirtualAddress, ETH_ALEN);
- 		memcpy(&Header_802_11.Addr3, &pAdapter->PortCfg.Bssid, ETH_ALEN);
- 	}
- 	memcpy(&Header_802_11.Controlhead.Addr2, pAdapter->CurrentAddress, ETH_ALEN);
--	
-+
- 	Header_802_11.Sequence = pAdapter->Sequence;		// Sequence number
- 	Header_802_11.Controlhead.Frame.Type = BTYPE_DATA;	// Frame type
- 	Header_802_11.Controlhead.Frame.PwrMgt = (pAdapter->PortCfg.Psm == PWR_SAVE);
-@@ -2878,9 +2858,9 @@
- 	}
- 	else
- 		EAPOLFrame = FALSE;
--	
-+
- 	// WPA 802.1x secured port control
--    if (((pAdapter->PortCfg.AuthMode == Ndis802_11AuthModeWPA) || 
-+    if (((pAdapter->PortCfg.AuthMode == Ndis802_11AuthModeWPA) ||
-          (pAdapter->PortCfg.AuthMode == Ndis802_11AuthModeWPAPSK)) &&
-         ((pAdapter->PortCfg.PortSecured == WPA_802_1X_PORT_NOT_SECURED) || (pAdapter->PortCfg.MicErrCnt >= 2)) &&
-         (EAPOLFrame == FALSE))
-@@ -2889,28 +2869,28 @@
- 		// Make sure to release Tx ring resource
- 		spin_unlock_irqrestore(&pAdapter->TxRingLock, irqflag);
- 		return (NDIS_STATUS_FAILURE);
--	}		
--	
-+	}
-+
- 	MICFrag = FALSE;	// Flag to indicate MIC shall spread into two MPDUs
- 	Encapped = FALSE;
- 	pEncap = NULL;
--	
-+
- 	pSrc = (PUCHAR) pVirtualAddress;
- 	Protocol = *(pSrc + 12) * 256 + *(pSrc + 13);
- 	if (Protocol > 1500)	// CHeck for LLC encaped
- 	{
- 		pEncap = SNAP_802_1H;
- 		Encapped = TRUE;
--		if (RTMPEqualMemory(IPX, pSrc + 12, 2) || 
-+		if (RTMPEqualMemory(IPX, pSrc + 12, 2) ||
- 		    RTMPEqualMemory(APPLE_TALK, pSrc + 12, 2))
- 		{
- 			pEncap = SNAP_BRIDGE_TUNNEL;
- 		}
- 	}
- 
--	if ((pAdapter->PortCfg.WepStatus == Ndis802_11Encryption1Enabled) && 
-+	if ((pAdapter->PortCfg.WepStatus == Ndis802_11Encryption1Enabled) &&
- 		(pAdapter->PortCfg.SharedKey[pAdapter->PortCfg.DefaultKeyId].KeyLen != 0))
--		EncryptionOverhead = 8;     // WEP: IV + ICV			
-+		EncryptionOverhead = 8;     // WEP: IV + ICV
- 	else if (pAdapter->PortCfg.WepStatus == Ndis802_11Encryption2Enabled)
- 		EncryptionOverhead = 12;    // TKIP: IV + EIV + ICV, MIC already added to TotalPacketLength
- 	else if (pAdapter->PortCfg.WepStatus == Ndis802_11Encryption3Enabled)
-@@ -2925,11 +2905,11 @@
- 	{
- 		PCONTROL_HEADER		pControlHeader;
- 		ULONG				NextFragSize;
--		
-+
-         // RTS-protected frame should use LONG_RETRY (=4), other frames use SHORT_RETRY (=7)
-         RetryMode = LONG_RETRY;
--        
--		pDest = (PUCHAR) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_data_addr;              
-+
-+		pDest = (PUCHAR) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_data_addr;
- #ifndef BIG_ENDIAN
- 		pTxD  = (PTXD_STRUC) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_addr;
- #else
-@@ -2938,7 +2918,7 @@
-         pTxD = &TxD;
-         RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
- #endif
--				
-+
- 		if ((pTxD->Owner == DESC_OWN_NIC) || (pTxD->CipherOwn == DESC_OWN_NIC))
- 		{
- 			// Descriptor owned by NIC. No descriptor avaliable
-@@ -2961,11 +2941,11 @@
-             RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
-             *pDestTxD = TxD;
- #endif
--				
-+
- 			spin_unlock_irqrestore(&pAdapter->TxRingLock, irqflag);
- 			return (NDIS_STATUS_RESOURCES);
- 		}
--		
-+
- 		pAdapter->TxRing[pAdapter->CurEncryptIndex].FrameType = BTYPE_CNTL;
- 		pControlHeader = (PCONTROL_HEADER) pDest;
- 		memset(pControlHeader, 0, sizeof(CONTROL_HEADER));
-@@ -2987,27 +2967,32 @@
- 		}
- 		pControlHeader->Duration = 2 * (pAdapter->PortCfg.Dsifs)
- 			+ RTMPCalcDuration(pAdapter, pAdapter->PortCfg.TxRate, NextFragSize + EncryptionOverhead)
--			+ AckDuration; 
-+			+ AckDuration;
- 
- 		// Write Tx descriptor
- 		// Don't kick tx start until all frames are prepared
- 		// RTS has to set more fragment bit for fragment burst
--		// RTS did not encrypt		
-+		// RTS did not encrypt
- 		if (pAdapter->PortCfg.BGProtectionInUsed == 1)
- 		{
- 			DBGPRINT(RT_DEBUG_TRACE,"Making CTS-to-self Frame\n");
--			pControlHeader->Frame.Subtype = SUBTYPE_CTS;		
-+			pControlHeader->Frame.Subtype = SUBTYPE_CTS;
- 			memcpy(&pControlHeader->Addr1, pAdapter->CurrentAddress, ETH_ALEN);
- 
- #ifdef BIG_ENDIAN
--            RTMPFrameEndianChange(pAdapter, (PUCHAR)pControlHeader, DIR_WRITE, FALSE);
--            RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
--            *pDestTxD = TxD;
--            pTxD = pDestTxD;
-+			// Write Tx descriptor
-+			// Don't kick tx start until all frames are prepared
-+			// CTS has to set more fragment bit for fragment burst
-+			// CTS did not encrypt
-+			// CTS-to-self will never receive ACK
-+			RTMPFrameEndianChange(pAdapter, (PUCHAR)pControlHeader,
-+					      DIR_WRITE, FALSE);
-+			RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
-+			*pDestTxD = TxD;
-+			pTxD = pDestTxD;
- #endif
- 
--
--#ifdef	WIFI_TEST			
-+#ifdef	WIFI_TEST
- 			RTMPWriteTxDescriptor(pTxD, TRUE, CIPHER_NONE, FALSE, FALSE, FALSE, SHORT_RETRY,
- 				FrameGap, pAdapter->PortCfg.RtsRate, 4, 10, Rt802_11PreambleShort,
- 				AccessCategory);
-@@ -3019,42 +3004,51 @@
- 		}
- 		else
- 		{
--            DBGPRINT(RT_DEBUG_TRACE,"Making RTS Frame\n");
--			pControlHeader->Frame.Subtype = SUBTYPE_RTS;        
--		    if (INFRA_ON(pAdapter))
--			    memcpy(&pControlHeader->Addr1, &pAdapter->PortCfg.Bssid, ETH_ALEN);
--		    else
--			    memcpy(&pControlHeader->Addr1, (PUCHAR) pVirtualAddress, ETH_ALEN);
--		    memcpy(&pControlHeader->Addr2, pAdapter->CurrentAddress, ETH_ALEN);
-+			DBGPRINT(RT_DEBUG_TRACE,"Making RTS Frame\n");
-+			pControlHeader->Frame.Subtype = SUBTYPE_RTS;
-+			if (INFRA_ON(pAdapter))
-+				memcpy(&pControlHeader->Addr1,
-+				       &pAdapter->PortCfg.Bssid, ETH_ALEN);
-+			else
-+				memcpy(&pControlHeader->Addr1,
-+				       (PUCHAR) pVirtualAddress, ETH_ALEN);
-+			memcpy(&pControlHeader->Addr2,
-+			       pAdapter->CurrentAddress, ETH_ALEN);
-+
-+			// Write Tx descriptor
-+			// Don't kick tx start until all frames are prepared
-+			// RTS has to set more fragment bit for fragment burst
-+			// RTS did not encrypt
-+			pTxD->RTS = 1;
- #ifdef BIG_ENDIAN
--            RTMPFrameEndianChange(pAdapter, (PUCHAR)pControlHeader, DIR_WRITE, FALSE);
--            RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
--            *pDestTxD = TxD;
--            pTxD = pDestTxD;
-+			RTMPFrameEndianChange(pAdapter, (PUCHAR)pControlHeader,
-+					      DIR_WRITE, FALSE);
-+			RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
-+			*pDestTxD = TxD;
-+			pTxD = pDestTxD;
- #endif
- 			RTMPWriteTxDescriptor(pTxD, TRUE, CIPHER_NONE, TRUE, TRUE, FALSE, SHORT_RETRY,
- 				FrameGap, pAdapter->PortCfg.RtsRate, 4, sizeof(CONTROL_HEADER),
- 				pAdapter->PortCfg.TxPreambleInUsed, AccessCategory);
--			pTxD->RTS = 1;
- 		}
--		
-+
- 		FrameGap = IFS_SIFS;		// Init frame gap for coming data after RTS
- 		NumberRequired--;
--		
-+
- 		// Increase & maintain Tx Ring Index
- 		pAdapter->CurEncryptIndex++;
- 		if (pAdapter->CurEncryptIndex >= TX_RING_SIZE)
- 		{
- 			pAdapter->CurEncryptIndex = 0;
- 		}
--		pAdapter->RalinkCounters.EncryptCount++;		
-+		pAdapter->RalinkCounters.EncryptCount++;
- 	}
- 
- 	// Find the WPA key, either Group or Pairwise Key
- 	if (pAdapter->PortCfg.AuthMode >= Ndis802_11AuthModeWPA)
- 	{
- 		INT 	idx;
--			
-+
- 		pWpaKey = (PWPA_KEY) NULL;
- 		// First lookup the DA, if it's a group address, use GROUP key
- 		if (Header_802_11.Controlhead.Addr1.Octet[0] & 0x01)
-@@ -3101,17 +3095,17 @@
- 	{
- 		// Get the Tx Ring descriptor & Dma Buffer address
- #ifndef BIG_ENDIAN
--		pDest = (PUCHAR) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_data_addr;              
-+		pDest = (PUCHAR) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_data_addr;
- 		pTxD  = (PTXD_STRUC) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_addr;
- #else
--        pDest = (PUCHAR) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_data_addr;              
-+        pDest = (PUCHAR) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_data_addr;
-         pOriginDest = pDest;
-         pDestTxD  = (PTXD_STRUC) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_addr;
-         TxD = *pDestTxD;
-         pTxD = &TxD;
-         RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
- #endif
--		
-+
- 		if ((pTxD->Owner == DESC_OWN_NIC) || (pTxD->CipherOwn == DESC_OWN_NIC))
- 		{
- 			// Descriptor owned by NIC. No descriptor avaliable
-@@ -3127,12 +3121,14 @@
- 			// This should not happen since caller guaranteed.
- 			// Make sure to release Tx ring resource
- 			pTxD->Valid = FALSE;
--				
-+
- #ifdef BIG_ENDIAN
-             RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
--            *pDestTxD = TxD;
-+            //*pDestTxD = TxD;
-+	    WriteBackToDescriptor((PUCHAR)pDestRxD, (PUCHAR)pRxD, FALSE,
-+		    		  TYPE_RXD);
- #endif
--                
-+
- 			pAdapter->RalinkCounters.TxRingErrCount++;
- 			spin_unlock_irqrestore(&pAdapter->TxRingLock, irqflag);
- 			return (NDIS_STATUS_RESOURCES);
-@@ -3144,7 +3140,7 @@
- 			Header_802_11.Frag = 0;			// Start of fragment burst / Single Frame
- 		else
- 			Header_802_11.Frag++;			// Rest of fragmented frames.
--		
-+
- 		// Maximum allowable payload with one ring buffer, bound by fragment size
- 		FreeFragSize = pAdapter->PortCfg.FragmentThreshold - LENGTH_CRC;
- 
-@@ -3155,12 +3151,12 @@
- 		{
- 		    ULONG NextFragSize;
- 			Header_802_11.Controlhead.Frame.MoreFrag = 1;
--			
-+
- 			if (NumberRequired == 2)
-     			NextFragSize = RemainSize - pAdapter->PortCfg.FragmentThreshold + LENGTH_802_11 + LENGTH_802_11 + LENGTH_CRC;
- 			else
- 			    NextFragSize = pAdapter->PortCfg.FragmentThreshold;
--			
-+
- 			Header_802_11.Controlhead.Duration = 3 * pAdapter->PortCfg.Dsifs
- 				+ 2 * AckDuration
- 				+ RTMPCalcDuration(pAdapter, pAdapter->PortCfg.TxRate, NextFragSize + EncryptionOverhead);
-@@ -3168,7 +3164,7 @@
- 		else // this is the last or only fragment
- 		{
- 			Header_802_11.Controlhead.Frame.MoreFrag = 0;
--			
-+
- 			if (Header_802_11.Controlhead.Addr1.Octet[0] & 0x01) // multicast/broadcast
- 				Header_802_11.Controlhead.Duration = 0;
- 			else
-@@ -3183,7 +3179,7 @@
- 			Header_802_11.Controlhead.Frame.Wep = 1;
- 		else if ((pAdapter->PortCfg.WepStatus == Ndis802_11Encryption3Enabled) && (pWpaKey != NULL))
- 			Header_802_11.Controlhead.Frame.Wep = 1;
--		
-+
- 		//
- 		// Copy 802.11 header to Tx ring buffer
- 		//
-@@ -3191,12 +3187,15 @@
- 		pDest        += sizeof(Header_802_11);
- 		FreeFragSize -= sizeof(Header_802_11);
- 
--		DBGPRINT(RT_DEBUG_TRACE,"pWpaKey = %s\n", pWpaKey == NULL ? "NULL" : "not NULL");
-+		DBGPRINT(RT_DEBUG_INFO, "pWpaKey = %s\n",
-+			 pWpaKey == NULL ? "NULL" : "not NULL");
- 
- 		if ((pAdapter->PortCfg.WepStatus == Ndis802_11Encryption1Enabled) && (EAPOLFrame == FALSE) &&
- 			(pAdapter->PortCfg.SharedKey[pAdapter->PortCfg.DefaultKeyId].KeyLen != 0))
- 		{
--			DBGPRINT(RT_DEBUG_TRACE,"Ndis802_11Encryption1Enabled::DefaultKeyId = %d\n", pAdapter->PortCfg.DefaultKeyId);
-+			DBGPRINT(RT_DEBUG_INFO,
-+				 "Ndis802_11Encryption1Enabled::DefaultKeyId = %d\n",
-+				 pAdapter->PortCfg.DefaultKeyId);
-                 // Prepare IV, IV offset, Key for Hardware encryption
-                 RTMPInitWepEngine(
-                 pAdapter,
-@@ -3216,12 +3215,14 @@
-                 memcpy(
- 					pTxD->Key,
- 					pAdapter->PortCfg.SharedKey[pAdapter->PortCfg.DefaultKeyId].Key,
--					pAdapter->PortCfg.SharedKey[pAdapter->PortCfg.DefaultKeyId].KeyLen);			
-+					pAdapter->PortCfg.SharedKey[pAdapter->PortCfg.DefaultKeyId].KeyLen);
- 		}
- 		else if ((pAdapter->PortCfg.WepStatus == Ndis802_11Encryption2Enabled) && (pWpaKey != NULL))
- 		{
- 			INT     i = 0;
--			DBGPRINT(RT_DEBUG_TRACE,"Ndis802_11Encryption2Enabled::DefaultKeyId = %d\n", pAdapter->PortCfg.DefaultKeyId);
-+			DBGPRINT(RT_DEBUG_INFO,
-+				 "Ndis802_11Encryption2Enabled::DefaultKeyId = %d\n",
-+				 pAdapter->PortCfg.DefaultKeyId);
-             // Prepare 8 bytes TKIP encapsulation for MPDU
-             {
-                 TKIP_IV	tkipIv;
-@@ -3232,31 +3233,20 @@
-                 tkipIv.IV16.field.rc2 = *pWpaKey->TxTsc;
-                 tkipIv.IV16.field.ExtIV = 1;// 0: non-extended IV, 1: extended IV
-                 tkipIv.IV16.field.KeyID = pAdapter->PortCfg.DefaultKeyId;
--                tkipIv.IV32 = *(PULONG)(pWpaKey->TxTsc + 2);
--#if 0	//jett, 2004-1222 ------------------
--#if BIG_ENDIAN == TRUE
--                pTxD->Iv = (tkipIv.IV16.field.rc0 << 24) | (tkipIv.IV16.field.rc1 << 16) | (tkipIv.IV16.field.rc2 << 8) | (tkipIv.IV16.field.CONTROL.Byte);
--#endif
--
--#ifdef RTMP_EMBEDDED
--                pTxD->Iv = (tkipIv.IV16.field.CONTROL.Byte << 24) | (tkipIv.IV16.field.rc2 << 16) | (tkipIv.IV16.field.rc1 << 8) | (tkipIv.IV16.field.rc0);
--#else
--                pTxD->Iv = tkipIv.IV16.word;
--#endif
--#else	//----------------------------------
-+                //tkipIv.IV32 = *(PULONG)(pWpaKey->TxTsc + 2);
-+		memcpy(&tkipIv.IV32, &pWpaKey->TxTsc[2], 4);
- #ifdef BIG_ENDIAN
--               pTxD->Iv = SWAP32(tkipIv.IV16.word);
-+		pTxD->Iv = SWAP32(tkipIv.IV16.word);
- #else
--                pTxD->Iv = tkipIv.IV16.word;
-+		pTxD->Iv = tkipIv.IV16.word;
- #endif
--#endif	//----------------------------------
- 
-                 *((PUCHAR) &pTxD->Eiv) = *((PUCHAR) &tkipIv.IV32 + 3);
-                 *((PUCHAR) &pTxD->Eiv + 1) = *((PUCHAR) &tkipIv.IV32 + 2);
-                 *((PUCHAR) &pTxD->Eiv + 2) = *((PUCHAR) &tkipIv.IV32 + 1);
-                 *((PUCHAR) &pTxD->Eiv + 3) = *((PUCHAR) &tkipIv.IV32);
-             }
--            
-+
-             // Increase TxTsc value for next transmission
-             while (++pWpaKey->TxTsc[i] == 0x0)
-             {
-@@ -3264,13 +3254,13 @@
-                 if (i == 6)
-                     break;
-             }
--            
-+
-             // Set IV offset
-             pTxD->IvOffset = LENGTH_802_11;
- 
-             // Copy TKey
-             memcpy(pTxD->Key, pWpaKey->Key, 16);
--            
-+
-             // Set Cipher suite
-             CipherAlg = CIPHER_TKIP;
- 		}
-@@ -3279,15 +3269,20 @@
- 			INT		i;
- 			PUCHAR	pTmp;
- 
-+			DBGPRINT(RT_DEBUG_INFO,
-+				 "Ndis802_11Encryption3Enabled::DefaultKeyId = %d\n",
-+				 pAdapter->PortCfg.DefaultKeyId);
-+
- 			i = 0;
- 			pTmp = (PUCHAR) &Iv16;
- 			*pTmp       = pWpaKey->TxTsc[0];
- 			*(pTmp + 1) = pWpaKey->TxTsc[1];
- 			*(pTmp + 2) = 0;
- 			*(pTmp + 3) = (pAdapter->PortCfg.DefaultKeyId << 6) | 0x20;
--			
--			Iv32 = *(PULONG)(&pWpaKey->TxTsc[2]);
--			
-+
-+			//Iv32 = *(PULONG)(&pWpaKey->TxTsc[2]);
-+			memcpy(&Iv32, &pWpaKey->TxTsc[2], 4);
-+
- 			// Increase TxTsc value for next transmission
- 			while (++pWpaKey->TxTsc[i] == 0x0)
- 			{
-@@ -3300,7 +3295,7 @@
- 				// TODO: TSC has done one full cycle, do re-keying stuff follow specs
- 				// Should send a special event microsoft defined to request re-key
- 			}
--			
-+
- 			memcpy(&pTxD->Iv, &Iv16, 4);            // Copy IV
- 			memcpy(&pTxD->Eiv, &Iv32, 4);           // Copy EIV
- 			pTxD->IvOffset = LENGTH_802_11;                 // Set IV offset
-@@ -3308,8 +3303,11 @@
- 			CipherAlg = CIPHER_AES;                         // Set Cipher suite
- 		}
- 		else
-+		{
-+			DBGPRINT(RT_DEBUG_TRACE,"Ndis802_11EncryptionDisabled\n");
- 			CipherAlg = CIPHER_NONE;
--		
-+		}
-+
- 		//
- 		// Only the first fragment required LLC-SNAP header !!!
- 		//
-@@ -3332,7 +3330,7 @@
- 			pSrc = (PUCHAR) pVirtualAddress;
- 			memcpy(pDest, pSrc + 12, 2);
- 			pDest += 2;
--			
-+
- 			// Exclude 802.3 header size, we will recalculate the size at
- 			// the end of fragment preparation.
- 	    	NdisBufferLength -= LENGTH_802_3;
-@@ -3346,11 +3344,11 @@
- 				// Calculate MSDU MIC Value
- 				RTMPCalculateMICValue(pAdapter, skb, pEncap, 0, pWpaKey);
- 			}
--			
-+
-    			pSrc = (PUCHAR) pVirtualAddress + LENGTH_802_3;
-     		NdisBufferLength -= LENGTH_802_3;
- 		}
--		
-+
- 		// Start copying payload
- 		BytesCopied = 0;
- 		do
-@@ -3375,23 +3373,25 @@
- 		    	pDest        += NdisBufferLength;
- 		    	FreeFragSize -= NdisBufferLength;
- 			}
--		
-+
- 			// No more buffer descriptor
- 			// Add MIC value if needed
--			if ((pAdapter->PortCfg.WepStatus == Ndis802_11Encryption2Enabled) && 
-+			if ((pAdapter->PortCfg.WepStatus == Ndis802_11Encryption2Enabled) &&
- 				(MICFrag == FALSE) &&
- 				(pWpaKey != NULL))
- 			{
--				INT i;
--
- 			    NdisBufferLength = 8;		// Set length to MIC length
--				DBGPRINT(RT_DEBUG_INFO, "Calculated TX MIC value =");  
--				for (i = 0; i < 8; i++)
--				{
--					DBGPRINT(RT_DEBUG_INFO, "%02x:", pAdapter->PrivateInfo.Tx.MIC[i]);  
--				}
--				DBGPRINT(RT_DEBUG_INFO, "\n"); 
--							
-+		            DBGPRINT(RT_DEBUG_INFO,
-+				"--- TX MIC=%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n",
-+				pAdapter->PrivateInfo.Tx.MIC[0],
-+				pAdapter->PrivateInfo.Tx.MIC[1],
-+				pAdapter->PrivateInfo.Tx.MIC[2],
-+				pAdapter->PrivateInfo.Tx.MIC[3],
-+				pAdapter->PrivateInfo.Tx.MIC[4],
-+				pAdapter->PrivateInfo.Tx.MIC[5],
-+				pAdapter->PrivateInfo.Tx.MIC[6],
-+				pAdapter->PrivateInfo.Tx.MIC[7]);
-+
-     			if (FreeFragSize >= NdisBufferLength)
- 				{
- 					memcpy(pDest, pAdapter->PrivateInfo.Tx.MIC, NdisBufferLength);
-@@ -3413,7 +3413,7 @@
- 				}
- 			}
- 		}	while (FALSE);		// End of copying payload
--				
-+
- 		// Real packet size, No 802.1H header for fragments except the first one.
- 		if ((StartOfFrame == TRUE) && (Encapped == TRUE))
- 		{
-@@ -3425,7 +3425,7 @@
- 		}
- 
- 		RemainSize = RemainSize - BytesCopied;
--			
-+
- 		if ((pAdapter->PortCfg.WepStatus == Ndis802_11Encryption1Enabled) && (Header_802_11.Controlhead.Frame.Wep == 1))
- 		{
- 			// IV + ICV which ASIC added after encryption done
-@@ -3441,7 +3441,7 @@
- 			// IV + EIV + HW MIC
- 			TxSize += 16;
- 		}
--				
-+
- 		// Prepare Tx descriptors before kicking tx.
- 		// The BBP register index in Tx descriptor has to be configured too.
- #ifdef BIG_ENDIAN
-@@ -3453,12 +3453,12 @@
- 		if (Header_802_11.Controlhead.Addr1.Octet[0] & 0x01)
- 		{
- 			// Multicast, retry bit is off
--			RTMPWriteTxDescriptor(pTxD, TRUE, CipherAlg, FALSE, FALSE, FALSE, RetryMode, FrameGap, 
-+			RTMPWriteTxDescriptor(pTxD, TRUE, CipherAlg, FALSE, FALSE, FALSE, RetryMode, FrameGap,
-                 pAdapter->PortCfg.TxRate, 4, TxSize, pAdapter->PortCfg.TxPreambleInUsed, AccessCategory);
- 		}
- 		else
- 		{
--			RTMPWriteTxDescriptor(pTxD, TRUE, CipherAlg, TRUE, FALSE, FALSE, RetryMode, FrameGap, 
-+			RTMPWriteTxDescriptor(pTxD, TRUE, CipherAlg, TRUE, FALSE, FALSE, RetryMode, FrameGap,
- 			    pAdapter->PortCfg.TxRate, 4, TxSize, pAdapter->PortCfg.TxPreambleInUsed, AccessCategory);
- 		}
- 
-@@ -3467,23 +3467,23 @@
- 		StartOfFrame = FALSE;
- 		FrameGap     = IFS_SIFS;
- 		NumberRequired--;
--		
-+
- 		// Increase & maintain Tx Ring Index
- 		pAdapter->CurEncryptIndex++;
- 		if (pAdapter->CurEncryptIndex >= TX_RING_SIZE)
- 		{
- 			pAdapter->CurEncryptIndex = 0;
- 		}
--		
-+
- 		pAdapter->RalinkCounters.EncryptCount++;
--		
-+
- 	}	while (NumberRequired > 0);
- 
- skip_packet_handling:
--	
-+
- 	// Kick Encrypt Control Register at the end of all ring buffer preparation
- 	RTMP_IO_WRITE32(pAdapter, SECCSR1, 0x1);
--	
-+
-     // Acknowledge protocol send complete of pending packet.
- 	dev_kfree_skb_irq(skb);
- 
-@@ -3497,19 +3497,19 @@
- 	========================================================================
- 
- 	Routine	Description:
--		Calculates the duration which is required to transmit out frames 
-+		Calculates the duration which is required to transmit out frames
- 	with given size and specified rate.
--		
-+
- 	Arguments:
- 		pAdapter		Pointer	to our adapter
- 		Rate			Transmit rate
- 		Size			Frame size in units of byte
--		
-+
- 	Return Value:
- 		Duration number in units of usec
- 
- 	Note:
--	
-+
- 	========================================================================
- */
- USHORT	RTMPCalcDuration(
-@@ -3525,7 +3525,7 @@
-     		Duration = 96;  // 72+24 preamble+plcp
-   		else
-             Duration = 192; // 144+48 preamble+plcp
--    		
-+
- 		Duration += (USHORT)((Size << 4) / RateIdTo500Kbps[Rate]);
- 		if ((Size << 4) % RateIdTo500Kbps[Rate])
- 			Duration ++;
-@@ -3537,18 +3537,18 @@
- 		if ((11 + Size * 4) % RateIdTo500Kbps[Rate])
- 			Duration += 4;
- 	}
--	
-+
- 	return (USHORT)Duration;
--	
-+
- }
- 
- /*
- 	========================================================================
--	
-+
- 	Routine	Description:
--		Calculates the duration which is required to transmit out frames 
-+		Calculates the duration which is required to transmit out frames
- 	with given size and specified rate.
--		
-+
- 	Arguments:
- 		pTxD		Pointer to transmit descriptor
- 		Ack			Setting for Ack requirement bit
-@@ -3560,10 +3560,10 @@
- 		Length		Frame length
- 		TxPreamble  Short or Long preamble when using CCK rates
- 		AccessCategory - 0-3, according to 802.11e/d4.4 June/2003
--		
-+
- 	Return Value:
- 		None
--		
-+
- 	========================================================================
- */
- VOID	RTMPWriteTxDescriptor(
-@@ -3624,7 +3624,7 @@
-         	pTxD->Aifs        = 2;
-         	break;
- 	}
--		
-+
- 	if (Rate < RATE_FIRST_OFDM_RATE)
- 		pTxD->Ofdm = 0;
- 	else
-@@ -3671,7 +3671,7 @@
- 		pTxD->PlcpLengthHigh = Length / 64;  // high 6-bit of total byte count
- 		pTxD->PlcpLengthLow = Length % 64;   // low 6-bit of total byte count
- 	}
--	
-+
- 	if (DoEncrypt == TRUE)		// Do encryption only
- 	{
- 		pTxD->Owner     = DESC_OWN_HOST;
-@@ -3687,8 +3687,10 @@
- 		pTxD->Owner     = DESC_OWN_NIC;
- 	}
- #ifdef BIG_ENDIAN
--    RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
--    *pSourceTxD = *pTxD;
-+	RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
-+	//*pSourceTxD = *pTxD;
-+	WriteBackToDescriptor((PUCHAR) pSourceTxD, (PUCHAR) pTxD, FALSE,
-+			      TYPE_TXD);
- #endif
- }
- 
-@@ -3697,17 +3699,17 @@
- 
- 	Routine	Description:
- 		Search tuple cache for receive duplicate frame from unicast frames.
--		
-+
- 	Arguments:
- 		pAdapter		Pointer	to our adapter
- 		pHeader			802.11 header of receiving frame
--		
-+
- 	Return Value:
- 		TRUE			found matched tuple cache
- 		FALSE			no matched found
- 
- 	Note:
--	
-+
- 	========================================================================
- */
- BOOLEAN	RTMPSearchTupleCache(
-@@ -3720,12 +3722,12 @@
- 	{
- 		if (pAdapter->TupleCache[Index].Valid == FALSE)
- 		    continue;
--		
-+
- 		if (RTMPEqualMemory(&pAdapter->TupleCache[Index].MAC, &pHeader->Controlhead.Addr2, 6) &&
- 			(pAdapter->TupleCache[Index].Sequence == pHeader->Sequence) &&
- 			(pAdapter->TupleCache[Index].Frag == pHeader->Frag))
- 		{
--//			DBGPRINT(RT_DEBUG_TRACE,("DUPCHECK - duplicate frame hit entry %d\n", Index)); 
-+//			DBGPRINT(RT_DEBUG_TRACE,("DUPCHECK - duplicate frame hit entry %d\n", Index));
- 			return (TRUE);
- 		}
- 	}
-@@ -3737,16 +3739,16 @@
- 
- 	Routine	Description:
- 		Update tuple cache for new received unicast frames.
--		
-+
- 	Arguments:
- 		pAdapter		Pointer	to our adapter
- 		pHeader			802.11 header of receiving frame
--		
-+
- 	Return Value:
- 		None
--		
-+
- 	Note:
--	
-+
- 	========================================================================
- */
- VOID	RTMPUpdateTupleCache(
-@@ -3765,7 +3767,7 @@
- 			pAdapter->TupleCache[Index].Frag     = pHeader->Frag;
- 			pAdapter->TupleCache[Index].Valid    = TRUE;
- 			pAdapter->TupleCacheLastUpdateIndex  = Index;
--			DBGPRINT(RT_DEBUG_INFO,"DUPCHECK - Add Entry %d, MAC=%02x:%02x:%02x:%02x:%02x:%02x\n", 
-+			DBGPRINT(RT_DEBUG_INFO,"DUPCHECK - Add Entry %d, MAC=%02x:%02x:%02x:%02x:%02x:%02x\n",
- 			    Index, pAdapter->TupleCache[Index].MAC.Octet[0], pAdapter->TupleCache[Index].MAC.Octet[1],
- 			    pAdapter->TupleCache[Index].MAC.Octet[2], pAdapter->TupleCache[Index].MAC.Octet[3],
- 			    pAdapter->TupleCache[Index].MAC.Octet[4], pAdapter->TupleCache[Index].MAC.Octet[5]);
-@@ -3794,7 +3796,7 @@
- 		pAdapter->TupleCache[Index].Sequence = pHeader->Sequence;
- 		pAdapter->TupleCache[Index].Frag     = pHeader->Frag;
- 		pAdapter->TupleCache[Index].Valid    = TRUE;
--		DBGPRINT(RT_DEBUG_INFO,"DUPCHECK - replace Entry %d, MAC=%02x:%02x:%02x:%02x:%02x:%02x\n", 
-+		DBGPRINT(RT_DEBUG_INFO,"DUPCHECK - replace Entry %d, MAC=%02x:%02x:%02x:%02x:%02x:%02x\n",
- 		    Index, pAdapter->TupleCache[Index].MAC.Octet[0], pAdapter->TupleCache[Index].MAC.Octet[1],
- 		    pAdapter->TupleCache[Index].MAC.Octet[2], pAdapter->TupleCache[Index].MAC.Octet[3],
- 		    pAdapter->TupleCache[Index].MAC.Octet[4], pAdapter->TupleCache[Index].MAC.Octet[5]);
-@@ -3806,15 +3808,15 @@
- 
- 	Routine	Description:
- 		Suspend MSDU transmission
--		
-+
- 	Arguments:
- 		pAdapter		Pointer	to our adapter
--		
-+
- 	Return Value:
- 		None
--		
-+
- 	Note:
--	
-+
- 	========================================================================
- */
- VOID    RTMPSuspendMsduTransmission(
-@@ -3829,15 +3831,15 @@
- 
- 	Routine	Description:
- 		Resume MSDU transmission
--		
-+
- 	Arguments:
- 		pAdapter		Pointer	to our adapter
--		
-+
- 	Return Value:
- 		None
--		
-+
- 	Note:
--	
-+
- 	========================================================================
- */
- VOID    RTMPResumeMsduTransmission(
-@@ -3863,40 +3865,40 @@
- 	Routine	Description:
- 		Apply packet filter policy, return NDIS_STATUS_FAILURE if this frame
- 		should be dropped.
--		
-+
- 	Arguments:
- 		pAdapter		Pointer	to our adapter
- 		pRxD			Pointer	to the Rx descriptor
- 		pHeader			Pointer to the 802.11 frame header
--		
-+
- 	Return Value:
- 		NDIS_STATUS_SUCCESS		Accept frame
- 		NDIS_STATUS_FAILURE		Drop Frame
--		
-+
- 	Note:
- 		Maganement frame should bypass this filtering rule.
--	
-+
- 	========================================================================
- */
- NDIS_STATUS	RTMPApplyPacketFilter(
--	IN	PRTMP_ADAPTER	pAdapter, 
--	IN	PRXD_STRUC		pRxD, 
-+	IN	PRTMP_ADAPTER	pAdapter,
-+	IN	PRXD_STRUC		pRxD,
- 	IN	PHEADER_802_11	pHeader)
- {
- 	UCHAR	i;
--	
-+
- 	// 0. Management frame should bypass all these filtering rules.
- 	if (pHeader->Controlhead.Frame.Type == BTYPE_MGMT)
- 	{
- 		return(NDIS_STATUS_SUCCESS);
- 	}
--	
-+
- 	// 0.1	Drop all Rx frames if MIC countermeasures kicks in
- 	if (pAdapter->PortCfg.MicErrCnt >= 2)
- 	{
- 		return(NDIS_STATUS_FAILURE);
- 	}
--	
-+
- 	// 1. Drop unicast to me packet if NDIS_PACKET_TYPE_DIRECTED is FALSE
- 	if (pRxD->U2M)
- 	{
-@@ -3905,7 +3907,7 @@
- 			return(NDIS_STATUS_FAILURE);
- 		}
- 	}
--		
-+
- 	// 2. Drop broadcast packet if NDIS_PACKET_TYPE_BROADCAST is FALSE
- 	else if (pRxD->Bcast)
- 	{
-@@ -3914,7 +3916,7 @@
- 			return(NDIS_STATUS_FAILURE);
- 		}
- 	}
--			
-+
- 	// 3. Drop multicast packet if NDIS_PACKET_TYPE_ALL_MULTICAST is false
- 	//    and NDIS_PACKET_TYPE_MULTICAST is false.
- 	//    If NDIS_PACKET_TYPE_MULTICAST is true, but NDIS_PACKET_TYPE_ALL_MULTICAST is false.
-@@ -3964,8 +3966,8 @@
- 	{
- 		return(NDIS_STATUS_FAILURE);
- 	}
--	
--	return(NDIS_STATUS_SUCCESS);	
-+
-+	return(NDIS_STATUS_SUCCESS);
- }
- 
- /*
-@@ -3973,15 +3975,15 @@
- 
- 	Routine	Description:
- 		Check and fine the packet waiting in SW queue with highest priority
--		
-+
- 	Arguments:
- 		pAdapter	Pointer	to our adapter
--		
-+
- 	Return Value:
- 		pQueue		Pointer to Waiting Queue
- 
- 	Note:
--	
-+
- 	========================================================================
- */
- struct sk_buff_head* RTMPCheckTxSwQueue(
-@@ -4019,20 +4021,20 @@
- 
- 	Routine	Description:
- 		Process MIC error indication and record MIC error timer.
--		
-+
- 	Arguments:
- 		pAdapter		Pointer	to our adapter
- 		pWpaKey			Pointer	to the WPA key structure
--		
-+
- 	Return Value:
- 		None
--		
-+
- 	Note:
--	
-+
- 	========================================================================
- */
- VOID	RTMPReportMicError(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PWPA_KEY		pWpaKey)
- {
- 	ULONG	Now;
-@@ -4044,7 +4046,7 @@
- 
- 	// 0. Set Status to indicate auth error
- 	Report.Status.StatusType = Ndis802_11StatusType_Authentication;
--	
-+
- 	// 1. Check for Group or Pairwise MIC error
- 	if (pWpaKey->Type == PAIRWISE_KEY)
- 		Report.Request.Flags = NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR;
-@@ -4069,13 +4071,13 @@
- 		if ((pAdapter->PortCfg.LastMicErrorTime + (60 * HZ)) < Now)
- 		{
- 			// Update Last MIC error time, this did not violate two MIC errors within 60 seconds
--			pAdapter->PortCfg.LastMicErrorTime = Now;			
-+			pAdapter->PortCfg.LastMicErrorTime = Now;
- 		}
- 		else
- 		{
--			pAdapter->PortCfg.LastMicErrorTime = Now;			
-+			pAdapter->PortCfg.LastMicErrorTime = Now;
- 			// Violate MIC error counts, MIC countermeasures kicks in
--			pAdapter->PortCfg.MicErrCnt++;			
-+			pAdapter->PortCfg.MicErrCnt++;
- 			// We shall block all reception
- 			// We shall clean all Tx ring and disassoicate from AP after next EAPOL frame
- 			RTMPRingCleanUp(pAdapter, TX_RING);
-diff -Nur rt2500-1.1.0-b4/Module/rtmp_def.h rt2500-cvs-2007061011/Module/rtmp_def.h
---- rt2500-1.1.0-b4/Module/rtmp_def.h	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/rtmp_def.h	2007-03-21 05:25:35.000000000 +0100
-@@ -1,36 +1,36 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: rtmp_def.h
-- *              
-+ *
-  *      Abstract: Miniport related definition header
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      PaulL           1st  Aug 02     Initial code     
-- *      MarkW           8th  Dec 04     Baseline code  
-- ***************************************************************************/ 
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      PaulL           1st  Aug 02     Initial code
-+ *      MarkW           8th  Dec 04     Baseline code
-+ ***************************************************************************/
- 
- #ifndef __RTMP_DEF_H__
- #define __RTMP_DEF_H__
-@@ -38,11 +38,12 @@
- //
- //  Debug information verbosity: lower values indicate higher urgency
- //
--#define RT_DEBUG_ERROR      KERN_ERR
--#define RT_DEBUG_WARN       KERN_WARNING
--#define RT_DEBUG_TRACE      KERN_NOTICE
--#define RT_DEBUG_INFO       KERN_INFO
--#define RT_DEBUG_LOUD       KERN_DEBUG
-+#define RT_DEBUG_OFF        0
-+#define RT_DEBUG_ERROR      1
-+#define RT_DEBUG_WARN       2
-+#define RT_DEBUG_TRACE      4
-+#define RT_DEBUG_INFO       8
-+#define RT_DEBUG_LOUD       16
- 
- //
- // update the driver version number every time you release a new driver
-@@ -190,8 +191,8 @@
- #define HASH_TABLE_SIZE                   256
- #define MAX_LEN_OF_MLME_BUFFER            1024
- #define MAX_FRAME_LEN                     2338
--#define MAX_VIE_LEN                       128   // New for WPA cipher suite variable IE sizes.
--#define MAX_MLME_HANDLER_MEMORY           20    //each them cantains  MAX_LEN_OF_MLME_BUFFER size 
-+#define MAX_VIE_LEN                       257	// sum of WPAx IEs
-+#define MAX_MLME_HANDLER_MEMORY           20    //each them cantains  MAX_LEN_OF_MLME_BUFFER size
- #define MAX_INI_BUFFER_SIZE               1024
- 
- #define MAX_TX_POWER_LEVEL                100   /* mW */
-@@ -265,7 +266,7 @@
- #define MLME_SUCCESS                      0
- #define MLME_UNSPECIFY_FAIL               1
- #define MLME_CANNOT_SUPPORT_CAP           10
--#define MLME_REASSOC_DENY_ASSOC_EXIST     11 
-+#define MLME_REASSOC_DENY_ASSOC_EXIST     11
- #define MLME_ASSOC_DENY_OUT_SCOPE         12
- #define MLME_ALG_NOT_SUPPORT              13
- #define MLME_SEQ_NR_OUT_OF_SEQUENCE       14
-@@ -317,7 +318,7 @@
- 
- #define MT2_MLME_ASSOC_REQ          0
- #define MT2_MLME_REASSOC_REQ        1
--#define MT2_MLME_DISASSOC_REQ       2  
-+#define MT2_MLME_DISASSOC_REQ       2
- #define MT2_PEER_DISASSOC_REQ       3
- #define MT2_PEER_ASSOC_REQ          4
- #define MT2_PEER_ASSOC_RSP          5
-diff -Nur rt2500-1.1.0-b4/Module/rtmp_info.c rt2500-cvs-2007061011/Module/rtmp_info.c
---- rt2500-1.1.0-b4/Module/rtmp_info.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/rtmp_info.c	2007-05-31 22:45:43.000000000 +0200
-@@ -1,49 +1,50 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: rtmp_info.c
-- *              
-- *      Abstract: IOCTL related subroutines         
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      RoryC           3rd  Jan 03     Initial code     
-- *      MarkW           8th  Dec 04     Baseline code  
-+ *
-+ *      Abstract: IOCTL related subroutines
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      RoryC           3rd  Jan 03     Initial code
-+ *      MarkW           8th  Dec 04     Baseline code
-  *      RobinC          10th Dec 04     RFMON Support
-- *      MarkW           10th Dec 04     Rolled in Ralink 1.4.5.0 
-+ *      MarkW           10th Dec 04     Rolled in Ralink 1.4.5.0
-  *      MarkW           15th Dec 04     Removed debug iwpriv
-  *      RobinC          16th Dec 04     Fix for range values
-  *		RobinC			16th Dec 04     support ifpreup scripts
-  *      RobinC          17th Dec 04     Link Quality reporting
-  *      MarkW           17th Dec 04     iwconfig frequency fix
-- *      MarkW           17th Dec 04     Monitor mode through iwconfig 
-+ *      MarkW           17th Dec 04     Monitor mode through iwconfig
-  *      MarkW           22nd Dec 04     RSSI reporting for iwlist scanning
-  *      MarkW           31st Jan 05     if pre-up fix for RaConfig
-  *      LuisCorreia     23rd Feb 05     fix unknown IOCTL's
-  *      MarkW           9th  Mar 05     Quality reporting in scan for current
-  * 		MarkW			9th  Jun 05		Fix channel change for ADHOC mode
-- ***************************************************************************/ 
-+ * 		RomainB         31st Dec 06     RFMON getter
-+ ***************************************************************************/
- 
- #include    "rt_config.h"
- #include <net/iw_handler.h>
-@@ -154,7 +155,7 @@
-             }
- 
- struct iw_priv_args privtab[] = {
--{ RTPRIV_IOCTL_SET, 
-+{ RTPRIV_IOCTL_SET,
-   IW_PRIV_TYPE_CHAR | 1024, 0,
-   "set"},
- { RTPRIV_IOCTL_BBP,
-@@ -166,9 +167,12 @@
- { RTPRIV_IOCTL_E2P,
-   IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | 1024,
-   "e2p"},
--{ RTPRIV_IOCTL_RFMONTX,
--  IW_PRIV_TYPE_INT | 2, IW_PRIV_TYPE_CHAR | sizeof (char),
--  "rfmontx"}
-+{ RTPRIV_IOCTL_SET_RFMONTX,
-+  IW_PRIV_TYPE_INT | 2, 0,
-+  "rfmontx"},
-+{ RTPRIV_IOCTL_GET_RFMONTX,
-+  0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-+  "get_rfmontx"}
- };
- 
- static struct {
-@@ -198,6 +202,9 @@
-     {"Key4", Set_Key4_Proc},
-     {"WPAPSK", Set_WPAPSK_Proc},
-     {"WPANONE", Set_WPANONE_Proc},
-+#ifdef RT2500_DBG
-+    {"Debug", Set_Debug_Proc},
-+#endif
- 
- #ifdef RALINK_ATE
- 	{"ATE",       Set_ATE_Proc			},	// set ATE Mode to: STOP, TXCONT, TXCARR, TXFRAME, RXFRAME
-@@ -233,7 +240,13 @@
- 	u16 val;
- 	int i,chan;
- 
--	DBGPRINT(RT_DEBUG_TRACE,"0. rtusb_ioctl_giwrange\n");		
-+	//check if the interface is down
-+	if (!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_INTERRUPT_IN_USE)) {
-+		DBGPRINT(RT_DEBUG_TRACE, "INFO::Network is down!\n");
-+		return -ENETDOWN;
-+	}
-+
-+	DBGPRINT(RT_DEBUG_TRACE,"0. rt_ioctl_giwrange\n");
- 	data->length = sizeof(struct iw_range);
- 	memset(range, 0, sizeof(struct iw_range));
- 
-@@ -266,7 +279,7 @@
- 		{
- 			range->freq[val].i = chan;
- 			MAP_CHANNEL_ID_TO_KHZ(range->freq[val].i, range->freq[val].m);
--			range->freq[val].m*=100;		
-+			range->freq[val].m*=100;
- 			range->freq[val].e = 1;
- 			val++;
- 		}
-@@ -335,8 +348,8 @@
- 	char *this_char;
- 	char *value;
- 	int  Status;
--  
--				while ((this_char = strsep(&extra, ",")) != NULL) 
-+
-+				while ((this_char = strsep(&extra, ",")) != NULL)
- 				{
- 					if (!*this_char)
- 						 continue;
-@@ -349,8 +362,8 @@
- 
- 					for (PRTMP_PRIVATE_SET_PROC = RTMP_PRIVATE_SUPPORT_PROC; PRTMP_PRIVATE_SET_PROC->name; PRTMP_PRIVATE_SET_PROC++)
- 					{
--						if (strcmp(this_char, PRTMP_PRIVATE_SET_PROC->name) == 0) 
--						{						
-+						if (strcmp(this_char, PRTMP_PRIVATE_SET_PROC->name) == 0)
-+						{
- 							if(!PRTMP_PRIVATE_SET_PROC->set_proc(pAdapter, value))
- 							{	//FALSE:Set private failed then return Invalid argument
- 								Status = -EINVAL;
-@@ -382,6 +395,13 @@
- 	PRTMP_ADAPTER pAdapter = (PRTMP_ADAPTER) dev->priv;
- 	int Status = NDIS_STATUS_SUCCESS;
- 	BOOLEAN 		StateMachineTouched = FALSE;
-+
-+	//check if the interface is down
-+	if (!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_INTERRUPT_IN_USE)) {
-+		DBGPRINT(RT_DEBUG_TRACE, "INFO::Network is down!\n");
-+		return -ENETDOWN;
-+	}
-+
- 	if (RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS))
- 		return 0;
- 	if(!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_MLME_INITIALIZED))
-@@ -390,7 +410,7 @@
- 		Now = jiffies;
- 
-             if ((pAdapter->MediaState == NdisMediaStateConnected) &&
--				((pAdapter->PortCfg.AuthMode == Ndis802_11AuthModeWPA) || 
-+				((pAdapter->PortCfg.AuthMode == Ndis802_11AuthModeWPA) ||
- 				(pAdapter->PortCfg.AuthMode == Ndis802_11AuthModeWPAPSK)) &&
-                 (pAdapter->PortCfg.PortSecured == WPA_802_1X_PORT_NOT_SECURED)
-                 )
-@@ -413,15 +433,17 @@
-             pAdapter->PortCfg.IgnoredScanNumber = 0;
-             pAdapter->PortCfg.LastScanTime = Now;
- 
--            MlmeEnqueue(&pAdapter->Mlme.Queue, 
--                    MLME_CNTL_STATE_MACHINE, 
--                    OID_802_11_BSSID_LIST_SCAN, 
--                    0, 
-+            MlmeEnqueue(&pAdapter->Mlme.Queue,
-+                    MLME_CNTL_STATE_MACHINE,
-+                    OID_802_11_BSSID_LIST_SCAN,
-+                    0,
-                     NULL);
- 
- 		Status = NDIS_STATUS_SUCCESS;
- 		StateMachineTouched = TRUE;
- 	}while(0);
-+    if(StateMachineTouched) // Upper layer sent a MLME-related operations
-+        MlmeHandler(pAdapter);
- 	return 0;
- }
- int
-@@ -437,7 +459,19 @@
- 	char *current_val;
- 	struct iw_event iwe;
- 
--	for (i = 0; i < pAdapter->PortCfg.BssTab.BssNr; i++) 
-+	//check if the interface is down
-+	if (!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_INTERRUPT_IN_USE)) {
-+		DBGPRINT(RT_DEBUG_TRACE, "INFO::Network is down!\n");
-+		return -ENETDOWN;
-+	}
-+	if (RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS)){
-+		/*
-+		 * Still scanning, indicate the caller should try again.
-+		 */
-+		DBGPRINT(RT_DEBUG_TRACE, "%s: still scanning\n", __FUNCTION__);
-+		return -EAGAIN;
-+	}
-+	for (i = 0; i < pAdapter->PortCfg.BssTab.BssNr; i++)
- 	{
- 		if (current_ev >= end_buf)
- 			break;
-@@ -511,25 +545,25 @@
-                     iwe.u.qual.qual = pAdapter->Mlme.ChannelQuality;
-                 else
-                     iwe.u.qual.qual = 0;
--                iwe.u.qual.level = pAdapter->PortCfg.BssTab.BssEntry[i].Rssi - RSSI_TO_DBM_OFFSET;   // signal level (dBm) 
-+                iwe.u.qual.level = pAdapter->PortCfg.BssTab.BssEntry[i].Rssi - RSSI_TO_DBM_OFFSET;   // signal level (dBm)
- 		iwe.u.qual.noise = pAdapter->PortCfg.BssTab.BssEntry[i].Noise;
--                //iwe.u.qual.noise = (pAdapter->PortCfg.LastR17Value > BBP_R17_DYNAMIC_UP_BOUND) ? BBP_R17_DYNAMIC_UP_BOUND : ((ULONG) pAdapter->PortCfg.LastR17Value);           // // noise level (dBm) 
-+                //iwe.u.qual.noise = (pAdapter->PortCfg.LastR17Value > BBP_R17_DYNAMIC_UP_BOUND) ? BBP_R17_DYNAMIC_UP_BOUND : ((ULONG) pAdapter->PortCfg.LastR17Value);           // // noise level (dBm)
- 
--                current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_QUAL_LEN);                
-+                current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_QUAL_LEN);
- 
- 
-                 //================================
-                 memset(&iwe, 0, sizeof(iwe));
- 	}
- 	data->length = current_ev - extra;
--	DBGPRINT(RT_DEBUG_TRACE,"rtusb_ioctl_giwscan. %d BSS returned\n",pAdapter->PortCfg.BssTab.BssNr);						
-+	DBGPRINT(RT_DEBUG_TRACE,"rt_ioctl_giwscan. %d BSS returned\n",pAdapter->PortCfg.BssTab.BssNr);
- 	return 0;
- }
- #endif
- static const iw_handler rt_handler[] =
- {
- 	(iw_handler) NULL,				/* SIOCSIWCOMMIT */
--	(iw_handler) NULL,			/* SIOCGIWNAME	1 */	 
-+	(iw_handler) NULL,			/* SIOCGIWNAME	1 */
- 	(iw_handler) NULL,				/* SIOCSIWNWID */
- 	(iw_handler) NULL,				/* SIOCGIWNWID */
- 	(iw_handler) NULL,		/* SIOCSIWFREQ */
-@@ -641,9 +675,11 @@
-             }
-             break;
-         case OID_802_11_BSSID_LIST_SCAN:
-+        	if (!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_MLME_INITIALIZED))
-+        		break;
-             Now = jiffies;
--			TxTotalCnt = pAdapter->DrsCounters.OneSecTxOkCount + 
--						 pAdapter->DrsCounters.OneSecTxRetryOkCount + 
-+			TxTotalCnt = pAdapter->DrsCounters.OneSecTxOkCount +
-+						 pAdapter->DrsCounters.OneSecTxRetryOkCount +
- 						 pAdapter->DrsCounters.OneSecTxFailCount;
- 			DBGPRINT(RT_DEBUG_TRACE, "Set::OID_802_11_BSSID_LIST_SCAN, TxCnt = %d \n", TxTotalCnt);
- 			// For XP WZC, we will allow scan every 10 times, roughly 10 minutes.
-@@ -657,9 +693,9 @@
- 				pAdapter->PortCfg.IgnoredScanNumber++;
- 				break;
-             }
--            
-+
-             if ((pAdapter->MediaState == NdisMediaStateConnected) &&
--				((pAdapter->PortCfg.AuthMode == Ndis802_11AuthModeWPA) || 
-+				((pAdapter->PortCfg.AuthMode == Ndis802_11AuthModeWPA) ||
- 				(pAdapter->PortCfg.AuthMode == Ndis802_11AuthModeWPAPSK)) &&
-                 (pAdapter->PortCfg.PortSecured == WPA_802_1X_PORT_NOT_SECURED)
-                 )
-@@ -682,10 +718,10 @@
-             pAdapter->PortCfg.IgnoredScanNumber = 0;
-             pAdapter->PortCfg.LastScanTime = Now;
- 
--            MlmeEnqueue(&pAdapter->Mlme.Queue, 
--                    MLME_CNTL_STATE_MACHINE, 
--                    OID_802_11_BSSID_LIST_SCAN, 
--                    0, 
-+            MlmeEnqueue(&pAdapter->Mlme.Queue,
-+                    MLME_CNTL_STATE_MACHINE,
-+                    OID_802_11_BSSID_LIST_SCAN,
-+                    0,
-                     NULL);
- 
-             Status = NDIS_STATUS_SUCCESS;
-@@ -710,13 +746,13 @@
-                     {
-                         MlmeRestartStateMachine(pAdapter);
-                         DBGPRINT(RT_DEBUG_TRACE, "!!! MLME busy, reset MLME state machine !!!\n");
--                    } 
-+                    }
-                      // tell CNTL state machine to call NdisMSetInformationComplete() after completing
-                     // this request, because this request is initiated by NDIS.
--                    pAdapter->Mlme.CntlAux.CurrReqIsFromNdis = FALSE; 
-+                    pAdapter->Mlme.CntlAux.CurrReqIsFromNdis = FALSE;
- 
--                    MlmeEnqueue(&pAdapter->Mlme.Queue, 
--                            MLME_CNTL_STATE_MACHINE, 
-+                    MlmeEnqueue(&pAdapter->Mlme.Queue,
-+                            MLME_CNTL_STATE_MACHINE,
-                             OID_802_11_SSID,
-                             sizeof(NDIS_802_11_SSID),
-                             (VOID *)pSsid
-@@ -746,11 +782,11 @@
- 
-                 // tell CNTL state machine to call NdisMSetInformationComplete() after completing
-                 // this request, because this request is initiated by NDIS.
--                pAdapter->Mlme.CntlAux.CurrReqIsFromNdis = FALSE; 
-+                pAdapter->Mlme.CntlAux.CurrReqIsFromNdis = FALSE;
- 
--                MlmeEnqueue(&pAdapter->Mlme.Queue, 
--                            MLME_CNTL_STATE_MACHINE, 
--                            OID_802_11_BSSID, 
-+                MlmeEnqueue(&pAdapter->Mlme.Queue,
-+                            MLME_CNTL_STATE_MACHINE,
-+                            OID_802_11_BSSID,
-                             sizeof(NDIS_802_11_MAC_ADDRESS),
-                             (VOID *)&Bssid);
-                 Status = NDIS_STATUS_SUCCESS;
-@@ -906,7 +942,7 @@
-             }
-             break;
-         case OID_802_11_AUTHENTICATION_MODE:
--            if (wrq->u.data.length != sizeof(NDIS_802_11_AUTHENTICATION_MODE)) 
-+            if (wrq->u.data.length != sizeof(NDIS_802_11_AUTHENTICATION_MODE))
-                 Status  = -EINVAL;
-             else
-             {
-@@ -941,7 +977,7 @@
- 			Status = -EINVAL;
- 			break;
- 		}
--                if (BssType == Ndis802_11IBSS) 
-+                if (BssType == Ndis802_11IBSS)
-                 {
-                     if (pAdapter->PortCfg.BssType != BSS_INDEP)
-                     {
-@@ -951,7 +987,7 @@
-                     pAdapter->PortCfg.BssType = BSS_INDEP;
-                     DBGPRINT(RT_DEBUG_TRACE, "Set::OID_802_11_INFRASTRUCTURE_MODE (AD-HOC)\n");
-                 }
--                else if (BssType == Ndis802_11Infrastructure) 
-+                else if (BssType == Ndis802_11Infrastructure)
-                 {
-                     if (pAdapter->PortCfg.BssType != BSS_INFRA)
-                     {
-@@ -1028,7 +1064,7 @@
- 			break;
- 		}
-                 // save user's policy here, but not change PortCfg.Psm immediately
--                if (PowerMode == Ndis802_11PowerModeCAM) 
-+                if (PowerMode == Ndis802_11PowerModeCAM)
-                 {
-                     // clear PSM bit immediately
-                     MlmeSetPsmBit(pAdapter, PWR_ACTIVE);
-@@ -1037,7 +1073,7 @@
-                         pAdapter->PortCfg.WindowsPowerMode = PowerMode;
-                     pAdapter->PortCfg.WindowsBatteryPowerMode = PowerMode;
-                 }
--                else if (PowerMode == Ndis802_11PowerModeMAX_PSP) 
-+                else if (PowerMode == Ndis802_11PowerModeMAX_PSP)
-                 {
-                     // do NOT turn on PSM bit here, wait until MlmeCheckForPsmChange()
-                     // to exclude certain situations.
-@@ -1048,7 +1084,7 @@
-                     pAdapter->PortCfg.RecvDtim = TRUE;  // FALSE;
-                     pAdapter->PortCfg.DefaultListenCount = 5;
-                 }
--                else if (PowerMode == Ndis802_11PowerModeFast_PSP) 
-+                else if (PowerMode == Ndis802_11PowerModeFast_PSP)
-                 {
-                     // do NOT turn on PSM bit here, wait until MlmeCheckForPsmChange()
-                     // to exclude certain situations.
-@@ -1236,6 +1272,8 @@
-             Status = -EOPNOTSUPP;
-             break;
-     }
-+    if(StateMachineTouched) // Upper layer sent a MLME-related operations
-+        MlmeHandler(pAdapter);
- 
-     return Status;
- }
-@@ -1305,8 +1343,8 @@
-             DBGPRINT(RT_DEBUG_TRACE, "Query::OID_802_11_BSSID_LIST (%d BSS returned)\n",pAdapter->PortCfg.BssTab.BssNr);
-             // Claculate total buffer size required
-             BssBufSize = sizeof(ULONG);
--            
--            for (i = 0; i < pAdapter->PortCfg.BssTab.BssNr; i++) 
-+
-+            for (i = 0; i < pAdapter->PortCfg.BssTab.BssNr; i++)
-             {
-                 // Align pointer to 4 bytes boundary.
-                 Padding = 4 - (pAdapter->PortCfg.BssTab.BssEntry[i].VarIELen & 0x0003);
-@@ -1328,13 +1366,13 @@
-             memset(pBuf, 0, BssBufSize);
-             pBssidList = (PNDIS_802_11_BSSID_LIST_EX) pBuf;
-             pBssidList->NumberOfItems = pAdapter->PortCfg.BssTab.BssNr;
--            
-+
-             // Calculate total buffer length
-             BssLen = 4; // Consist of NumberOfItems
-             // Point to start of NDIS_WLAN_BSSID_EX
-             // pPtr = pBuf + sizeof(ULONG);
-             pPtr = (PUCHAR) &pBssidList->Bssid[0];
--            for (i = 0; i < pAdapter->PortCfg.BssTab.BssNr; i++) 
-+            for (i = 0; i < pAdapter->PortCfg.BssTab.BssNr; i++)
-             {
-                 pBss = (PNDIS_WLAN_BSSID_EX) pPtr;
-                 memcpy(&pBss->MacAddress, &pAdapter->PortCfg.BssTab.BssEntry[i].Bssid, ETH_ALEN);
-@@ -1348,7 +1386,7 @@
-                     memcpy(pBss->Ssid.Ssid, pAdapter->PortCfg.BssTab.BssEntry[i].Ssid, pAdapter->PortCfg.BssTab.BssEntry[i].SsidLen);
-                 }
-                 pBss->Privacy = pAdapter->PortCfg.BssTab.BssEntry[i].Privacy;
--                pBss->Rssi = pAdapter->PortCfg.BssTab.BssEntry[i].Rssi - pAdapter->PortCfg.RssiToDbm; 
-+                pBss->Rssi = pAdapter->PortCfg.BssTab.BssEntry[i].Rssi - pAdapter->PortCfg.RssiToDbm;
-                 pBss->NetworkTypeInUse = Ndis802_11DS;
-                 pBss->Configuration.Length = sizeof(NDIS_802_11_CONFIGURATION);
-                 pBss->Configuration.BeaconPeriod = pAdapter->PortCfg.BssTab.BssEntry[i].BeaconPeriod;
-@@ -1356,7 +1394,7 @@
- 
-                 MAP_CHANNEL_ID_TO_KHZ(pAdapter->PortCfg.BssTab.BssEntry[i].Channel, pBss->Configuration.DSConfig);
- 
--                if (pAdapter->PortCfg.BssTab.BssEntry[i].BssType == BSS_INFRA) 
-+                if (pAdapter->PortCfg.BssTab.BssEntry[i].BssType == BSS_INFRA)
-                     pBss->InfrastructureMode = Ndis802_11Infrastructure;
-                 else
-                     pBss->InfrastructureMode = Ndis802_11IBSS;
-@@ -1370,12 +1408,12 @@
-                 {
-                     pBss->IELength = sizeof(NDIS_802_11_FIXED_IEs);
-                     memcpy(pBss->IEs, &pAdapter->PortCfg.BssTab.BssEntry[i].FixIEs, sizeof(NDIS_802_11_FIXED_IEs));
--                    pPtr = pPtr + sizeof(NDIS_WLAN_BSSID_EX) - 4 + sizeof(NDIS_802_11_FIXED_IEs);
-+                    pPtr = pPtr + sizeof(NDIS_WLAN_BSSID_EX) - 1 + sizeof(NDIS_802_11_FIXED_IEs);
-                 }
-                 else
-                 {
-                     pBss->IELength = sizeof(NDIS_802_11_FIXED_IEs) + pAdapter->PortCfg.BssTab.BssEntry[i].VarIELen;
--                    pPtr = pPtr + sizeof(NDIS_WLAN_BSSID_EX) - 4 + sizeof(NDIS_802_11_FIXED_IEs);
-+                    pPtr = pPtr + sizeof(NDIS_WLAN_BSSID_EX) - 1 + sizeof(NDIS_802_11_FIXED_IEs);
-                     memcpy(pBss->IEs, &pAdapter->PortCfg.BssTab.BssEntry[i].FixIEs, sizeof(NDIS_802_11_FIXED_IEs));
-                     memcpy(pPtr, pAdapter->PortCfg.BssTab.BssEntry[i].VarIEs, pAdapter->PortCfg.BssTab.BssEntry[i].VarIELen);
-                     pPtr += pAdapter->PortCfg.BssTab.BssEntry[i].VarIELen;
-@@ -1385,7 +1423,7 @@
-                 if (Padding == 4)
-                     Padding = 0;
-                 pPtr += Padding;
--                pBss->Length = sizeof(NDIS_WLAN_BSSID_EX) - 4 + sizeof(NDIS_802_11_FIXED_IEs) + pAdapter->PortCfg.BssTab.BssEntry[i].VarIELen + Padding;
-+                pBss->Length = sizeof(NDIS_WLAN_BSSID_EX) - 1 + sizeof(NDIS_802_11_FIXED_IEs) + pAdapter->PortCfg.BssTab.BssEntry[i].VarIELen + Padding;
-                 BssLen += pBss->Length;
-             }
-             wrq->u.data.length = BssLen;
-@@ -1451,11 +1489,11 @@
-             wrq->u.data.length = sizeof(NDIS_802_11_CONFIGURATION);
-             if(copy_to_user(wrq->u.data.pointer, &Configuration, wrq->u.data.length))
- 	   	 Status = -EFAULT;
--            DBGPRINT(RT_DEBUG_TRACE, "Query::OID_802_11_CONFIGURATION(BeaconPeriod=%d,AtimW=%d,Channel=%d) \n", 
-+            DBGPRINT(RT_DEBUG_TRACE, "Query::OID_802_11_CONFIGURATION(BeaconPeriod=%d,AtimW=%d,Channel=%d) \n",
-                                     Configuration.BeaconPeriod, Configuration.ATIMWindow, pAdapter->PortCfg.Channel);
-             break;
-         case OID_802_11_RSSI:
--            ulInfo = pAdapter->PortCfg.LastRssi - pAdapter->PortCfg.RssiToDbm; 
-+            ulInfo = pAdapter->PortCfg.LastRssi - pAdapter->PortCfg.RssiToDbm;
-             wrq->u.data.length = sizeof(ulInfo);
-             if(copy_to_user(wrq->u.data.pointer, &ulInfo, wrq->u.data.length))
- 	    	Status = -EFAULT;
-@@ -1484,7 +1522,7 @@
-             Statistics.FrameDuplicateCount.QuadPart = pAdapter->WlanCounters.FrameDuplicateCount.QuadPart;
-             Statistics.ReceivedFragmentCount.QuadPart = pAdapter->WlanCounters.ReceivedFragmentCount.QuadPart;
-             Statistics.MulticastReceivedFrameCount.QuadPart = pAdapter->WlanCounters.MulticastReceivedFrameCount.QuadPart;
--#ifdef RT2500_DBG			
-+#ifdef RT2500_DBG
-             Statistics.FCSErrorCount = pAdapter->RalinkCounters.RealFcsErrCount;
- #else
-             Statistics.FCSErrorCount.QuadPart = pAdapter->WlanCounters.FCSErrorCount.QuadPart;
-@@ -1611,8 +1649,8 @@
- }
- 
- INT RT2500_ioctl(
--    IN  struct net_device   *net_dev, 
--    IN  OUT struct ifreq    *rq, 
-+    IN  struct net_device   *net_dev,
-+    IN  OUT struct ifreq    *rq,
-     IN  INT                 cmd)
- {
-     PRTMP_ADAPTER                       pAdapter= net_dev->priv;
-@@ -1624,16 +1662,17 @@
-     NDIS_802_11_RTS_THRESHOLD           RtsThresh;
-     NDIS_802_11_FRAGMENTATION_THRESHOLD FragThresh;
-     NDIS_802_11_MAC_ADDRESS             Bssid;
--    INT                                 Status = NDIS_STATUS_SUCCESS;   
-+    INT                                 Status = NDIS_STATUS_SUCCESS;
-     USHORT                              subcmd;
-     BOOLEAN                             StateMachineTouched = FALSE;
-     int                                 i, chan = -1, index = 0, len = 0;
-+    ULONG				Length;
- 
- 
-     switch(cmd) {
-         case SIOCGIWNAME:
-             DBGPRINT(RT_DEBUG_TRACE, "IOCTL::SIOCGIWNAME\n");
--            strcpy(wrq->u.name, "RT2500 Wireless");   //Less then 16 bytes. 
-+            strcpy(wrq->u.name, "RT2500 Wireless");   //Less then 16 bytes.
-             break;
-         case SIOCSIWESSID:  //Set ESSID
-             erq = &wrq->u.essid;
-@@ -1646,30 +1685,36 @@
-                     break;
-                 }
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
-+		Length = erq->length - 1; // minux null character.
-+#else
-+		Length = erq->length;
-+#endif
-+
- 		if(RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_INTERRUPT_IN_USE))
- 		{
--                	if (copy_from_user(Ssid.Ssid, erq->pointer, (erq->length - 1)))
-+                	if (copy_from_user(Ssid.Ssid, erq->pointer, Length))
-                 	{
-                    	 Status = -EFAULT;
-                    	 break;
-                 	}
--                	Ssid.SsidLength = erq->length - 1;  //minus null character.
-+                	Ssid.SsidLength = Length;
- 		}else{
- 			// This SEEMS to be needed to actual work RobinC when iface
- 			// is down
--	                if (copy_from_user(pAdapter->PortCfg.Ssid, erq->pointer, (erq->length - 1)))
-+	                if (copy_from_user(pAdapter->PortCfg.Ssid, erq->pointer, Length))
- 	                {
- 	                    Status = -EFAULT;
- 	                    break;
- 	                }
--	                pAdapter->PortCfg.SsidLen = erq->length - 1;  //minus null character.
-+	                pAdapter->PortCfg.SsidLen = Length;
- 
--			memcpy(pAdapter->Mlme.CntlAux.Ssid, pAdapter->PortCfg.Ssid, pAdapter->PortCfg.SsidLen);	
--			pAdapter->Mlme.CntlAux.SsidLen = pAdapter->PortCfg.SsidLen; 
-+			memcpy(pAdapter->Mlme.CntlAux.Ssid, pAdapter->PortCfg.Ssid, pAdapter->PortCfg.SsidLen);
-+			pAdapter->Mlme.CntlAux.SsidLen = pAdapter->PortCfg.SsidLen;
- 		}
-             }
-             else
--                Ssid.SsidLength = 0;  // ANY ssid 
-+                Ssid.SsidLength = 0;  // ANY ssid
- 
-             pSsid = &Ssid;
- 
-@@ -1686,10 +1731,10 @@
- 
-              // tell CNTL state machine to call NdisMSetInformationComplete() after completing
-             // this request, because this request is initiated by NDIS.
--            pAdapter->Mlme.CntlAux.CurrReqIsFromNdis = FALSE; 
-+            pAdapter->Mlme.CntlAux.CurrReqIsFromNdis = FALSE;
- 
--            MlmeEnqueue(&pAdapter->Mlme.Queue, 
--                    MLME_CNTL_STATE_MACHINE, 
-+            MlmeEnqueue(&pAdapter->Mlme.Queue,
-+                    MLME_CNTL_STATE_MACHINE,
-                     OID_802_11_SSID,
-                     sizeof(NDIS_802_11_SSID),
-                     (VOID *)pSsid
-@@ -1708,7 +1753,7 @@
- 			Status = -EFAULT;
-             DBGPRINT(RT_DEBUG_TRACE, "ioctl::SIOCGIWESSID (Len=%d, ssid=%s...)\n", erq->length, pAdapter->PortCfg.Ssid);
-             break;
--        case SIOCGIWNWID: // get network id 
-+        case SIOCGIWNWID: // get network id
-             Status = -EOPNOTSUPP;
-             break;
-         case SIOCSIWNWID: // set network id (the cell)
-@@ -1717,14 +1762,14 @@
-         case SIOCSIWFREQ: // set channel/frequency (Hz)
-             frq = &wrq->u.freq;
-             if((frq->e == 0) && (frq->m <= 1000))
--                chan = frq->m;  // Setting by channel number 
-+                chan = frq->m;  // Setting by channel number
-             else
--                MAP_KHZ_TO_CHANNEL_ID( (frq->m /100) , chan); // Setting by frequency - search the table , like 2.412G, 2.422G, 
-+                MAP_KHZ_TO_CHANNEL_ID( (frq->m /100) , chan); // Setting by frequency - search the table , like 2.412G, 2.422G,
-             pAdapter->PortCfg.IbssConfig.Channel = chan;
-             DBGPRINT(RT_DEBUG_TRACE, "ioctl::SIOCSIWFREQ[cmd=0x%x] (Channel=%d)\n", SIOCSIWFREQ, pAdapter->PortCfg.IbssConfig.Channel);
-             if(RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_INTERRUPT_IN_USE) && (pAdapter->PortCfg.BssType == BSS_MONITOR || pAdapter->PortCfg.BssType == BSS_INDEP))
-             {
--               pAdapter->PortCfg.Channel = chan; 
-+               pAdapter->PortCfg.Channel = chan;
-                AsicSwitchChannel(pAdapter, pAdapter->PortCfg.Channel);
-                AsicLockChannel(pAdapter, pAdapter->PortCfg.Channel);
-             }
-@@ -1822,7 +1867,7 @@
-                 if(wrq->u.encoding.pointer)
-                 {
-                     wrq->u.encoding.length = pAdapter->PortCfg.SharedKey[index].KeyLen;
--                    if(copy_to_user(wrq->u.encoding.pointer, 
-+                    if(copy_to_user(wrq->u.encoding.pointer,
-                                 pAdapter->PortCfg.SharedKey[index].Key,
-                                 pAdapter->PortCfg.SharedKey[index].KeyLen))
- 			Status = -EFAULT;
-@@ -1843,14 +1888,15 @@
-                     len = WEP_LARGE_KEY_LEN;
- 
-                 memset(pAdapter->PortCfg.SharedKey[index].Key, 0x00, MAX_LEN_OF_KEY);
--                if(copy_from_user(pAdapter->PortCfg.SharedKey[index].Key, 
-+                if(copy_from_user(pAdapter->PortCfg.SharedKey[index].Key,
-                                 wrq->u.encoding.pointer, len)){
- 			Status = -EINVAL;
- 			break;
- 		}
-                 pAdapter->PortCfg.SharedKey[index].KeyLen = len <= WEP_SMALL_KEY_LEN ? WEP_SMALL_KEY_LEN : WEP_LARGE_KEY_LEN;
-             }
--            pAdapter->PortCfg.DefaultKeyId = (UCHAR) index;
-+	    else
-+            	pAdapter->PortCfg.DefaultKeyId = (UCHAR) index;
-             if (wrq->u.encoding.flags & IW_ENCODE_DISABLED)
-                 pAdapter->PortCfg.WepStatus = Ndis802_11WEPDisabled;
-             else
-@@ -1858,7 +1904,7 @@
- 
-             if (wrq->u.encoding.flags & IW_ENCODE_RESTRICTED)
-                 pAdapter->PortCfg.AuthMode = Ndis802_11AuthModeShared;
--            if (wrq->u.encoding.flags & IW_ENCODE_OPEN) 
-+            if (wrq->u.encoding.flags & IW_ENCODE_OPEN)
-                 pAdapter->PortCfg.AuthMode = Ndis802_11AuthModeOpen;
- 
-             if(pAdapter->PortCfg.WepStatus == Ndis802_11WEPDisabled)
-@@ -1905,11 +1951,11 @@
- 
-             // tell CNTL state machine to call NdisMSetInformationComplete() after completing
-             // this request, because this request is initiated by NDIS.
--            pAdapter->Mlme.CntlAux.CurrReqIsFromNdis = FALSE; 
-+            pAdapter->Mlme.CntlAux.CurrReqIsFromNdis = FALSE;
- 
--            MlmeEnqueue(&pAdapter->Mlme.Queue, 
--                        MLME_CNTL_STATE_MACHINE, 
--                        OID_802_11_BSSID, 
-+            MlmeEnqueue(&pAdapter->Mlme.Queue,
-+                        MLME_CNTL_STATE_MACHINE,
-+                        OID_802_11_BSSID,
-                         sizeof(NDIS_802_11_MAC_ADDRESS),
-                         (VOID *)&Bssid);
-             Status = NDIS_STATUS_SUCCESS;
-@@ -1928,13 +1974,13 @@
-                 BssType = Ndis802_11Infrastructure;
-                 wrq->u.mode = IW_MODE_INFRA;
-             }
--#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,20)) 
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,20))
-             else if (pAdapter->PortCfg.BssType == BSS_MONITOR)
-             {
-                 BssType = Ndis802_11Monitor;
-                 wrq->u.mode = IW_MODE_MONITOR;
-             }
--#endif	    
-+#endif
- 	    else
-             {
-                 BssType = Ndis802_11AutoUnknown;
-@@ -1963,7 +2009,7 @@
-                 pAdapter->PortCfg.BssType = BSS_INFRA;
-                 DBGPRINT(RT_DEBUG_TRACE, "ioctl::SIOCSIWMODE (INFRA)\n");
-             }
--#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,20)) 	    
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,20))
- 	    else if (wrq->u.mode == IW_MODE_MONITOR)
-             {
-                 if (pAdapter->PortCfg.BssType != BSS_MONITOR)
-@@ -1974,7 +2020,7 @@
-                 pAdapter->PortCfg.BssType = BSS_MONITOR;
-                 DBGPRINT(RT_DEBUG_TRACE, "ioctl::SIOCSIWMODE (MONITOR)\n");
-             }
--#endif 
-+#endif
-   	    else
-             {
-                 Status  = -ENOSYS;
-@@ -1999,7 +2045,7 @@
- 	 	}
-                 else
-                 {
--                    pAdapter->net_dev->type = 1; 
-+                    pAdapter->net_dev->type = 1;
-                     RTMP_IO_WRITE32(pAdapter, RXCSR0, 0x7e);
-                 }
-             }
-@@ -2013,23 +2059,23 @@
- 		Status = -EOPNOTSUPP;
- 		break;
-         case SIOCGIWTXPOW:  //get transmit power (dBm)
--#if WIRELESS_EXT >= 17	
-+#if WIRELESS_EXT >= 17
- 	    // Krellan: Get TxPower in dBm now, not percentage
- 	    {
- 	    	 ULONG R3;
- 	    	 UCHAR Channel = pAdapter->PortCfg.Channel;
--	    	 
-+
- 	    	 // Krellan: This code comes from AsicSwitchChannel(),
- 	    	 // as we must know the channel we are currently on,
- 	    	 // in order to get the correct EEPROM-recommended
- 	    	 // value to establish as 0 dBm.
--			 if (Channel <= 14)    
-+			 if (Channel <= 14)
- 				  R3 = pAdapter->PortCfg.ChannelTxPower[Channel - 1];
--			 else 
-+			 else
- 				  R3 = pAdapter->PortCfg.ChannelTxPower[0];
- 
- 			 if (R3 > 31)  R3 = 31;
--			 
-+
- 			 wrq->u.txpower.value = pAdapter->PortCfg.TxPowerDriver - R3;
- 			 wrq->u.txpower.flags = IW_TXPOW_DBM;
- 			 wrq->u.txpower.fixed = !(pAdapter->PortCfg.TxPowerAuto);
-@@ -2061,7 +2107,7 @@
- 					 else
- 					 {
- 						 Value = wrq->u.txpower.value;
--						 
-+
- 						 if (Value < MIN_TXPOWER_DBM || Value > MAX_TXPOWER_DBM)
- 						 {
- 						    Status = -EINVAL;
-@@ -2107,14 +2153,14 @@
-             break;
- 
-         case RTPRIV_IOCTL_SET:
--            {               
-+            {
-                 char *this_char;
-                 char *value;
- 
-                 if( !access_ok(VERIFY_READ, wrq->u.data.pointer, wrq->u.data.length) )
-                     break;
- 
--                while ((this_char = strsep((char**)&wrq->u.data.pointer, ",")) != NULL) 
-+                while ((this_char = strsep((char**)&wrq->u.data.pointer, ",")) != NULL)
-                 {
-                     if (!*this_char)
-                          continue;
-@@ -2127,8 +2173,8 @@
- 
-                     for (PRTMP_PRIVATE_SET_PROC = RTMP_PRIVATE_SUPPORT_PROC; PRTMP_PRIVATE_SET_PROC->name; PRTMP_PRIVATE_SET_PROC++)
-                     {
--                        if (strcmp(this_char, PRTMP_PRIVATE_SET_PROC->name) == 0) 
--                        {                       
-+                        if (strcmp(this_char, PRTMP_PRIVATE_SET_PROC->name) == 0)
-+                        {
-                             if(!PRTMP_PRIVATE_SET_PROC->set_proc(pAdapter, value))
-                             {   //FALSE:Set private failed then return Invalid argument
-                                 Status = -EINVAL;
-@@ -2161,8 +2207,12 @@
-             break;
- #endif
- 
--	case RTPRIV_IOCTL_RFMONTX:
--	    Status = RTMPIoctlRFMONTX(pAdapter, wrq);
-+	case RTPRIV_IOCTL_SET_RFMONTX:
-+	    Status = RTMPIoctlSetRFMONTX(pAdapter, wrq);
-+	    break;
-+
-+	case RTPRIV_IOCTL_GET_RFMONTX:
-+	    Status = RTMPIoctlGetRFMONTX(pAdapter, wrq);
- 	    break;
- 
-         default:
-@@ -2181,7 +2231,7 @@
- UCHAR   BCAST[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
- /*
-     ========================================================================
--    
-+
-     Routine Description:
-         Add WPA key process
- 
-@@ -2193,7 +2243,7 @@
-         NDIS_SUCCESS                    Add key successfully
- 
-     Note:
--        
-+
-     ========================================================================
- */
- NDIS_STATUS RTMPWPAAddKeyProc(
-@@ -2228,7 +2278,7 @@
-         // 1. KeyIdx must be 0, otherwise, return NDIS_STATUS_INVALID_DATA
-         if (KeyIdx != 0)
-             return(NDIS_STATUS_FAILURE);
--        
-+
-         // 2. Check bTx, it must be true, otherwise, return NDIS_STATUS_INVALID_DATA
-         if (bTxKey == FALSE)
-             return(NDIS_STATUS_FAILURE);
-@@ -2236,7 +2286,7 @@
-         // 3. If BSSID is not all 0xff, return NDIS_STATUS_INVALID_DATA
-         if (NdisEqualMemory(pKey->BSSID, BCAST, 6))
-             return(NDIS_STATUS_FAILURE);
--            
-+
-         // 4. Selct RxMic / TxMic based on Supp / Authenticator
-         if (pAdapter->PortCfg.AuthMode == Ndis802_11AuthModeWPANone)
-         {
-@@ -2277,16 +2327,16 @@
-         // 6. Check RxTsc
-         if (bKeyRSC == TRUE)
-         {
--            memcpy(&pAdapter->PortCfg.PairwiseKey[PairwiseIdx].RxTsc, &pKey->KeyRSC, 6);            
-+            memcpy(&pAdapter->PortCfg.PairwiseKey[PairwiseIdx].RxTsc, &pKey->KeyRSC, 6);
-         }
-         else
-         {
--            memset(pAdapter->PortCfg.PairwiseKey[PairwiseIdx].RxTsc, 0, 6);        
-+            memset(pAdapter->PortCfg.PairwiseKey[PairwiseIdx].RxTsc, 0, 6);
-         }
- 
-         // 7. Copy information into Pairwise Key structure.
-         // pKey->KeyLength will include TxMic and RxMic, therefore, we use 16 bytes hardcoded.
--        pAdapter->PortCfg.PairwiseKey[PairwiseIdx].KeyLen = 16;     
-+        pAdapter->PortCfg.PairwiseKey[PairwiseIdx].KeyLen = 16;
-         memcpy(pAdapter->PortCfg.PairwiseKey[PairwiseIdx].Key, &pKey->KeyMaterial, 16);
-         memcpy(pAdapter->PortCfg.PairwiseKey[PairwiseIdx].RxMic, pRxMic, 8);
-         memcpy(pAdapter->PortCfg.PairwiseKey[PairwiseIdx].TxMic, pTxMic, 8);
-@@ -2300,36 +2350,43 @@
-         pAdapter->PortCfg.PairwiseKey[PairwiseIdx].TxTsc[5] = 0;
-         Status = NDIS_STATUS_SUCCESS;
- 
--        DBGPRINT(RT_DEBUG_INFO, "TKIP Key = ");
-+#ifdef RT2500_DBG
-+	printk("Pairwise Key (Index-%d) = ", PairwiseIdx);
-         for (i = 0; i < 16; i++)
-         {
--            DBGPRINT(RT_DEBUG_INFO, "%02x:", pAdapter->PortCfg.PairwiseKey[PairwiseIdx].Key[i]);
-+		printk("%02x:",
-+		       pAdapter->PortCfg.PairwiseKey[PairwiseIdx].Key[i]);
-         }
--        DBGPRINT(RT_DEBUG_INFO, "\n");
--        DBGPRINT(RT_DEBUG_INFO, "TKIP Rx MIC Key = ");
-+        printk("\n");
-+        printk("PairwiseKey Rx MIC Key = ");
-         for (i = 0; i < 8; i++)
-         {
--            DBGPRINT(RT_DEBUG_INFO, "%02x:", pAdapter->PortCfg.PairwiseKey[PairwiseIdx].RxMic[i]);
-+		printk("%02x:",
-+		       pAdapter->PortCfg.PairwiseKey[PairwiseIdx].RxMic[i]);
-         }
--        DBGPRINT(RT_DEBUG_INFO, "\n");
--        DBGPRINT(RT_DEBUG_INFO, "TKIP Tx MIC Key = ");
-+        printk("\n");
-+        printk("PairwiseKey Tx MIC Key = ");
-         for (i = 0; i < 8; i++)
-         {
--            DBGPRINT(RT_DEBUG_INFO, "%02x:", pAdapter->PortCfg.PairwiseKey[PairwiseIdx].TxMic[i]);
-+		printk("%02x:",
-+		       pAdapter->PortCfg.PairwiseKey[PairwiseIdx].TxMic[i]);
-         }
--        DBGPRINT(RT_DEBUG_INFO, "\n");
--        DBGPRINT(RT_DEBUG_INFO, "TKIP RxTSC = ");
-+        printk("\n");
-+        printk("RxTSC = ");
-         for (i = 0; i < 6; i++)
-         {
--            DBGPRINT(RT_DEBUG_INFO, "%02x:", pAdapter->PortCfg.PairwiseKey[PairwiseIdx].RxTsc[i]);
-+		printk("%02x:",
-+		       pAdapter->PortCfg.PairwiseKey[PairwiseIdx].RxTsc[i]);
-         }
--        DBGPRINT(RT_DEBUG_INFO, "\n");
--        DBGPRINT(RT_DEBUG_INFO, "BSSID:%02x:%02x:%02x:%02x:%02x:%02x \n",
--            pKey->BSSID[0],pKey->BSSID[1],pKey->BSSID[2],pKey->BSSID[3],pKey->BSSID[4],pKey->BSSID[5]);
--
-+        printk("\n");
-+        printk("BSSID:%02x:%02x:%02x:%02x:%02x:%02x \n",
-+	       pKey->BSSID[0], pKey->BSSID[1], pKey->BSSID[2],
-+	       pKey->BSSID[3], pKey->BSSID[4], pKey->BSSID[5]);
-+#endif
-     }
-     else    // Group Key
-     {
-+	DBGPRINT(RT_DEBUG_TRACE, "Ready to set Group key\n");
-         // 1. Check BSSID, if not current BSSID or Bcast, return NDIS_STATUS_INVALID_DATA
-         if ((!NdisEqualMemory(&pKey->BSSID, &BCAST, 6)) &&
-             (!NdisEqualMemory(&pKey->BSSID, &pAdapter->PortCfg.Bssid, 6)))
-@@ -2374,7 +2431,7 @@
- 
-         // 6. Copy information into Group Key structure.
-         // pKey->KeyLength will include TxMic and RxMic, therefore, we use 16 bytes hardcoded.
--        pAdapter->PortCfg.GroupKey[KeyIdx].KeyLen = 16;     
-+        pAdapter->PortCfg.GroupKey[KeyIdx].KeyLen = 16;
-         memcpy(pAdapter->PortCfg.GroupKey[KeyIdx].Key, &pKey->KeyMaterial, 16);
-         memcpy(pAdapter->PortCfg.GroupKey[KeyIdx].RxMic, pRxMic, 8);
-         memcpy(pAdapter->PortCfg.GroupKey[KeyIdx].TxMic, pTxMic, 8);
-@@ -2397,33 +2454,35 @@
-             memcpy(pAdapter->PortCfg.SharedKey[KeyIdx].Key, &pKey->KeyMaterial, pKey->KeyLength);
-         }
- 
--        DBGPRINT(RT_DEBUG_INFO, "TKIP Key = ");
-+#ifdef RT2500_DBG
-+        printk("GroupKey Key (Index-%d) = ", KeyIdx);
-         for (i = 0; i < 16; i++)
-         {
--            DBGPRINT(RT_DEBUG_INFO, "%02x:", pAdapter->PortCfg.GroupKey[KeyIdx].Key[i]);
-+		printk("%02x:", pAdapter->PortCfg.GroupKey[KeyIdx].Key[i]);
-         }
--        DBGPRINT(RT_DEBUG_INFO, "\n");
--        DBGPRINT(RT_DEBUG_INFO, "TKIP Rx MIC Key = ");
-+        printk("\n");
-+        printk("GroupKey Rx MIC Key = ");
-         for (i = 0; i < 8; i++)
-         {
--            DBGPRINT(RT_DEBUG_INFO, "%02x:", pAdapter->PortCfg.GroupKey[KeyIdx].RxMic[i]);
-+		printk("%02x:", pAdapter->PortCfg.GroupKey[KeyIdx].RxMic[i]);
-         }
--        DBGPRINT(RT_DEBUG_INFO, "\n");
--        DBGPRINT(RT_DEBUG_INFO, "TKIP Tx MIC Key = ");
-+        printk("\n");
-+        printk("GroupKey Tx MIC Key = ");
-         for (i = 0; i < 8; i++)
-         {
--            DBGPRINT(RT_DEBUG_INFO, "%02x:", pAdapter->PortCfg.GroupKey[KeyIdx].TxMic[i]);
-+		printk("%02x:", pAdapter->PortCfg.GroupKey[KeyIdx].TxMic[i]);
-         }
--        DBGPRINT(RT_DEBUG_INFO, "\n");
--        DBGPRINT(RT_DEBUG_INFO, "TKIP RxTSC = ");
-+        printk("\n");
-+        printk("RxTSC = ");
-         for (i = 0; i < 6; i++)
-         {
--            DBGPRINT(RT_DEBUG_INFO, "%02x:", pAdapter->PortCfg.GroupKey[KeyIdx].RxTsc[i]);
-+		printk("%02x:", pAdapter->PortCfg.GroupKey[KeyIdx].RxTsc[i]);
-         }
--        DBGPRINT(RT_DEBUG_INFO, "\n");
--        DBGPRINT(RT_DEBUG_INFO, "BSSID:%02x:%02x:%02x:%02x:%02x:%02x \n",
--            pKey->BSSID[0],pKey->BSSID[1],pKey->BSSID[2],pKey->BSSID[3],pKey->BSSID[4],pKey->BSSID[5]);
--
-+        printk("\n");
-+        printk("BSSID:%02x:%02x:%02x:%02x:%02x:%02x \n",
-+	       pKey->BSSID[0], pKey->BSSID[1], pKey->BSSID[2],
-+	       pKey->BSSID[3], pKey->BSSID[4], pKey->BSSID[5]);
-+#endif
-     }
-     return (Status);
- }
-@@ -2499,7 +2558,7 @@
-                     break;
-                 }
-             }
--            
-+
-         }
-         // c. If no pairwise supported, delete Group Key 0.
-         //    The will be false since we do support pairwise keys.
-@@ -2545,7 +2604,7 @@
-         None
- 
-     Note:
--        
-+
-     ========================================================================
- */
- VOID    RTMPWPARemoveAllKeys(
-@@ -2562,7 +2621,7 @@
-     {
-         pAdapter->PortCfg.PairwiseKey[i].KeyLen = 0;
-     }
--    
-+
-     for (i = 0; i < GROUP_KEY_NO; i++)
-     {
-         pAdapter->PortCfg.GroupKey[i].KeyLen = 0;
-@@ -2578,7 +2637,7 @@
-     Arguments:
-         pAdapter                        Pointer to our adapter
-         phmode
--        
-+
-     ========================================================================
- */
- VOID    RTMPSetPhyMode(
-@@ -2586,7 +2645,7 @@
-     IN  ULONG phymode)
- {
-     INT     i;
--    
-+
-     DBGPRINT(RT_DEBUG_TRACE,"RTMPSetPhyMode(=%d)\n", phymode);
- 
-     // the selected phymode must be supported by the RF IC encoded in E2PROM
-@@ -2611,7 +2670,7 @@
- 	if (i == pAdapter->PortCfg.ChannelListNum)
- 		pAdapter->PortCfg.IbssConfig.Channel = FirstChannel(pAdapter);
-     pAdapter->PortCfg.Channel = pAdapter->PortCfg.IbssConfig.Channel;
--	
-+
-     AsicSwitchChannel(pAdapter, pAdapter->PortCfg.Channel);
-     AsicLockChannel(pAdapter, pAdapter->PortCfg.Channel);
- 
-@@ -2859,7 +2918,7 @@
-     // Changing DesiredRate may affect the MAX TX rate we used to TX frames out
-     MlmeUpdateTxRates(pAdapter, FALSE);
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set Country Region
-@@ -2868,7 +2927,7 @@
-     ==========================================================================
- */
- INT Set_CountryRegion_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     ULONG                               region;
-@@ -2886,7 +2945,7 @@
- 
-     return success;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set SSID
-@@ -2895,7 +2954,7 @@
-     ==========================================================================
- */
- INT Set_SSID_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     NDIS_802_11_SSID                    Ssid, *pSsid=NULL;
-@@ -2904,8 +2963,8 @@
- 
- 
-     /* Protect against oops if net is down, this will not work with if-preup
--     use iwconfig properly */   
--    printk("'iwpriv <dev> set essid' is deprecated, please use 'iwconfg <dev> essid' instead\n"); 
-+     use iwconfig properly */
-+    printk("'iwpriv <dev> set essid' is deprecated, please use 'iwconfg <dev> essid' instead\n");
-     if(!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_INTERRUPT_IN_USE))
- 	return FALSE;
- 
-@@ -2916,8 +2975,8 @@
-         Ssid.SsidLength = strlen(arg);
-         pSsid = &Ssid;
- 
--	
--   	
-+
-+
-         if (pAdapter->Mlme.CntlMachine.CurrState != CNTL_IDLE)
-         {
-             MlmeRestartStateMachine(pAdapter);
-@@ -2925,10 +2984,10 @@
-         }
-          // tell CNTL state machine to call NdisMSetInformationComplete() after completing
-         // this request, because this request is initiated by NDIS.
--        pAdapter->Mlme.CntlAux.CurrReqIsFromNdis = FALSE; 
-+        pAdapter->Mlme.CntlAux.CurrReqIsFromNdis = FALSE;
- 
--        MlmeEnqueue(&pAdapter->Mlme.Queue, 
--                    MLME_CNTL_STATE_MACHINE, 
-+        MlmeEnqueue(&pAdapter->Mlme.Queue,
-+                    MLME_CNTL_STATE_MACHINE,
-                     OID_802_11_SSID,
-                     sizeof(NDIS_802_11_SSID),
-                     (VOID *)pSsid);
-@@ -2944,7 +3003,7 @@
- 
-     return success;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set Wireless Mode
-@@ -2953,26 +3012,24 @@
-     ==========================================================================
- */
- INT Set_WirelessMode_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     ULONG                               WirelessMode;
-     int                                 success = TRUE;
- 
-     WirelessMode = simple_strtol(arg, 0, 10);
-+    DBGPRINT(RT_DEBUG_TRACE, "Set_WirelessMode_Proc::(=%d)\n", WirelessMode);
- 
-     if ((WirelessMode == PHY_11BG_MIXED) || (WirelessMode == PHY_11B) ||
-         (WirelessMode == PHY_11A) || (WirelessMode == PHY_11ABG_MIXED))
--    {
-         RTMPSetPhyMode(pAdapter, WirelessMode);
--        DBGPRINT(RT_DEBUG_TRACE, "Set_WirelessMode_Proc::(=%d)\n", WirelessMode);
--    }
-     else
-         success = FALSE;
- 
-     return success;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set TxRate
-@@ -2981,7 +3038,7 @@
-     ==========================================================================
- */
- INT Set_TxRate_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     ULONG                               TxRate;
-@@ -2996,7 +3053,7 @@
-         RTMPSetDesiredRates(pAdapter, (LONG) (rate_mapping[TxRate-1] * 1000000));
-     return success;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set AdhocMode support Rate can or can not exceed 11Mbps against WiFi spec.
-@@ -3005,7 +3062,7 @@
-     ==========================================================================
- */
- INT Set_AdhocModeRate_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     ULONG       AdhocMode;
-@@ -3017,13 +3074,13 @@
-     else if (AdhocMode == 0)
-         pAdapter->PortCfg.AdhocMode = 0;
-     else
--        return FALSE;  //Invalid argument 
-+        return FALSE;  //Invalid argument
- 
-     DBGPRINT(RT_DEBUG_TRACE, "Set_AdhocModeRate_Proc::(AdhocMode=%d)\n", pAdapter->PortCfg.AdhocMode);
- 
-     return TRUE;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set Channel
-@@ -3032,7 +3089,7 @@
-     ==========================================================================
- */
- INT Set_Channel_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     int                                 success = TRUE;
-@@ -3051,7 +3108,32 @@
- 
-     return success;
- }
--/* 
-+/*
-+    ==========================================================================
-+    Description:
-+        For Debug information
-+    Return:
-+        TRUE if all parameters are OK, FALSE otherwise
-+    ==========================================================================
-+*/
-+#ifdef RT2500_DBG
-+INT Set_Debug_Proc(
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  PUCHAR          arg)
-+
-+{
-+    DBGPRINT(RT_DEBUG_TRACE, "**************************************************************\n");
-+	DBGPRINT(RT_DEBUG_TRACE, "==> Set_Debug_Proc arg=%s\n", arg);
-+    //To do here.
-+
-+    rt2500_setdbg(simple_strtoul(arg, 0, 0));
-+
-+    DBGPRINT(RT_DEBUG_TRACE, "<== Set_Debug_Proc\n");
-+    DBGPRINT(RT_DEBUG_TRACE, "**************************************************************\n");
-+    return TRUE;
-+}
-+#endif
-+/*
-     ==========================================================================
-     Description:
-         Set 11B/11G Protection
-@@ -3060,7 +3142,7 @@
-     ==========================================================================
- */
- INT Set_BGProtection_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- 
- {
-@@ -3074,15 +3156,15 @@
-             break;
-         case 2: //Always OFF
-             pAdapter->PortCfg.UseBGProtection = 2;
--            break;      
--        default:  //Invalid argument 
-+            break;
-+        default:  //Invalid argument
-             return FALSE;
-     }
-     DBGPRINT(RT_DEBUG_TRACE, "Set_BGProtection_Proc::(BGProtection=%d)\n", pAdapter->PortCfg.UseBGProtection);
- 
-     return TRUE;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set StaWithEtherBridge function on/off
-@@ -3091,7 +3173,7 @@
-     ==========================================================================
- */
- INT Set_StaWithEtherBridge_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- 
- {
-@@ -3103,14 +3185,14 @@
-         case 1: //On
-             pAdapter->PortCfg.StaWithEtherBridge.Enable = TRUE;
-             break;
--        default:  //Invalid argument 
-+        default:  //Invalid argument
-             return FALSE;
-     }
-     DBGPRINT(RT_DEBUG_TRACE, "Set_StaWithEtherBridge_Proc::(StaWithEtherBridge=%d)\n", pAdapter->PortCfg.StaWithEtherBridge.Enable);
- 
-     return TRUE;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set TxPreamble
-@@ -3119,7 +3201,7 @@
-     ==========================================================================
- */
- INT Set_TxPreamble_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     RT_802_11_PREAMBLE                  Preamble;
-@@ -3138,7 +3220,7 @@
-             pAdapter->PortCfg.WindowsTxPreamble = Preamble;
-             MlmeSetTxPreamble(pAdapter, Rt802_11PreambleLong);
-             break;
--        default: //Invalid argument 
-+        default: //Invalid argument
-             return FALSE;
-     }
- 
-@@ -3146,7 +3228,7 @@
- 
-     return TRUE;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set RTS Threshold
-@@ -3155,15 +3237,15 @@
-     ==========================================================================
- */
- INT Set_RTSThreshold_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
--    
--   
-+
-+
- {
-     NDIS_802_11_RTS_THRESHOLD           RtsThresh;
- 
--   printk("'iwpriv <dev> set RTSThreshold' is deprecated, please use 'iwconfg <dev> rts' instead\n"); 
-- 
-+   printk("'iwpriv <dev> set RTSThreshold' is deprecated, please use 'iwconfg <dev> rts' instead\n");
-+
-     RtsThresh = simple_strtol(arg, 0, 10);
- 
-     if((RtsThresh > 0) && (RtsThresh <= MAX_RTS_THRESHOLD))
-@@ -3176,7 +3258,7 @@
-     DBGPRINT(RT_DEBUG_TRACE, "Set_RTSThreshold_Proc::(RTSThreshold=%d)\n", pAdapter->PortCfg.RtsThreshold);
-     return TRUE;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set Fragment Threshold
-@@ -3185,14 +3267,14 @@
-     ==========================================================================
- */
- INT Set_FragThreshold_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     NDIS_802_11_FRAGMENTATION_THRESHOLD     FragThresh;
- 
--    printk("'iwpriv <dev> set FragThreshold' is deprecated, please use 'iwconfg <dev> frag' instead\n"); 
-- 
--    
-+    printk("'iwpriv <dev> set FragThreshold' is deprecated, please use 'iwconfg <dev> frag' instead\n");
-+
-+
-     FragThresh = simple_strtol(arg, 0, 10);
- 
-     if ( (FragThresh >= MIN_FRAG_THRESHOLD) && (FragThresh <= MAX_FRAG_THRESHOLD))
-@@ -3200,7 +3282,7 @@
-     else if (FragThresh == 0)
-         pAdapter->PortCfg.FragmentThreshold = MAX_FRAG_THRESHOLD;
-     else
--        return FALSE; //Invalid argument 
-+        return FALSE; //Invalid argument
- 
-     if (pAdapter->PortCfg.FragmentThreshold == MAX_FRAG_THRESHOLD)
-         pAdapter->PortCfg.bFragmentZeroDisable = TRUE;
-@@ -3211,7 +3293,7 @@
- 
-     return TRUE;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set TxBurst
-@@ -3220,7 +3302,7 @@
-     ==========================================================================
- */
- INT Set_TxBurst_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     ULONG                               TxBurst;
-@@ -3232,13 +3314,13 @@
-     else if (TxBurst == 0)
-         pAdapter->PortCfg.EnableTxBurst = FALSE;
-     else
--        return FALSE;  //Invalid argument 
--    
-+        return FALSE;  //Invalid argument
-+
-     DBGPRINT(RT_DEBUG_TRACE, "Set_TxBurst_Proc::(TxBurst=%d)\n", pAdapter->PortCfg.EnableTxBurst);
- 
-     return TRUE;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set TurboRate Enable or Disable
-@@ -3247,7 +3329,7 @@
-     ==========================================================================
- */
- INT Set_TurboRate_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     ULONG                               TurboRate;
-@@ -3259,13 +3341,13 @@
-     else if (TurboRate == 0)
-         pAdapter->PortCfg.EnableTurboRate = FALSE;
-     else
--        return FALSE;  //Invalid argument 
--    
-+        return FALSE;  //Invalid argument
-+
-     DBGPRINT(RT_DEBUG_TRACE, "Set_TurboRate_Proc::(TurboRate=%d)\n", pAdapter->PortCfg.EnableTurboRate);
- 
-     return TRUE;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set Short Slot Time Enable or Disable
-@@ -3274,7 +3356,7 @@
-     ==========================================================================
- */
- INT Set_ShortSlot_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     ULONG                               ShortSlot;
-@@ -3286,14 +3368,14 @@
-     else if (ShortSlot == 0)
-         pAdapter->PortCfg.UseShortSlotTime = FALSE;
-     else
--        return FALSE;  //Invalid argument 
-+        return FALSE;  //Invalid argument
- 
-     DBGPRINT(RT_DEBUG_TRACE, "Set_ShortSlot_Proc::(ShortSlot=%d)\n", pAdapter->PortCfg.UseShortSlotTime);
- 
-     return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set Network Type(Infrastructure/Adhoc mode)
-@@ -3302,17 +3384,17 @@
-     ==========================================================================
- */
- INT Set_NetworkType_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
- 
--    printk("'iwpriv <dev> set NetworkType' is deprecated, please use 'iwconfg <dev> mode' instead\n"); 
--    
-+    printk("'iwpriv <dev> set NetworkType' is deprecated, please use 'iwconfg <dev> mode' instead\n");
-+
-     if (strcmp(arg, "Adhoc") == 0)
-         pAdapter->PortCfg.BssType = BSS_INDEP;
-     else //Default Infrastructure mode
-         pAdapter->PortCfg.BssType = BSS_INFRA;
--    
-+
-     // Reset Ralink supplicant to not use, it will be set to start when UI set PMK key
-     pAdapter->PortCfg.WpaState = SS_NOTUSE;
- 
-@@ -3321,7 +3403,7 @@
-     return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set Authentication mode
-@@ -3330,7 +3412,7 @@
-     ==========================================================================
- */
- INT Set_AuthMode_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     if ((strcmp(arg, "OPEN") == 0) || (strcmp(arg, "open") == 0))
-@@ -3344,7 +3426,7 @@
-     else if ((strcmp(arg, "WPANONE") == 0) || (strcmp(arg, "wpanone") == 0))
-         pAdapter->PortCfg.AuthMode = Ndis802_11AuthModeWPANone;
-     else
--        return FALSE;  
-+        return FALSE;
- 
-     pAdapter->PortCfg.PortSecured = WPA_802_1X_PORT_NOT_SECURED;
- 
-@@ -3353,7 +3435,7 @@
-     return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set Encryption Type
-@@ -3362,7 +3444,7 @@
-     ==========================================================================
- */
- INT Set_EncrypType_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     if ((strcmp(arg, "NONE") == 0) || (strcmp(arg, "none") == 0))
-@@ -3380,7 +3462,7 @@
- 
-     return TRUE;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set Default Key ID
-@@ -3389,24 +3471,24 @@
-     ==========================================================================
- */
- INT Set_DefaultKeyID_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     ULONG                               KeyIdx;
--    
--    printk("'iwpriv <dev> set DefaultKeyID' is deprecated, please use 'iwconfg <dev> key' instead\n"); 
--    
-+
-+    printk("'iwpriv <dev> set DefaultKeyID' is deprecated, please use 'iwconfg <dev> key' instead\n");
-+
-     KeyIdx = simple_strtol(arg, 0, 10);
-     if((KeyIdx >= 1 ) && (KeyIdx <= 4))
-         pAdapter->PortCfg.DefaultKeyId = (UCHAR) (KeyIdx - 1 );
-     else
--        return FALSE;  //Invalid argument 
-+        return FALSE;  //Invalid argument
- 
-     DBGPRINT(RT_DEBUG_TRACE, "Set_DefaultKeyID_Proc::(DefaultKeyID=%d)\n", pAdapter->PortCfg.DefaultKeyId);
- 
-     return TRUE;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set WEP KEY1
-@@ -3415,22 +3497,22 @@
-     ==========================================================================
- */
- INT Set_Key1_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     int                                 KeyLen;
-     int                                 i;
- 
--    printk("'iwpriv <dev> set Key1' is deprecated, please use 'iwconfg <dev> key [1] ' instead\n"); 
--   
-+    printk("'iwpriv <dev> set Key1' is deprecated, please use 'iwconfg <dev> key [1] ' instead\n");
-+
-     KeyLen = strlen(arg);
- 
-     switch (KeyLen)
-     {
-         case 5: //wep 40 Ascii type
-             pAdapter->PortCfg.SharedKey[0].KeyLen = KeyLen;
--            memcpy(pAdapter->PortCfg.SharedKey[0].Key, arg, KeyLen);    
--            DBGPRINT(RT_DEBUG_TRACE, "Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Ascii");       
-+            memcpy(pAdapter->PortCfg.SharedKey[0].Key, arg, KeyLen);
-+            DBGPRINT(RT_DEBUG_TRACE, "Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Ascii");
-             break;
-         case 10: //wep 40 Hex type
-             for(i=0; i < KeyLen; i++)
-@@ -3440,12 +3522,12 @@
-             }
-             pAdapter->PortCfg.SharedKey[0].KeyLen = KeyLen / 2 ;
-             AtoH(arg, pAdapter->PortCfg.SharedKey[0].Key, KeyLen / 2);
--            DBGPRINT(RT_DEBUG_TRACE, "Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Hex");     
-+            DBGPRINT(RT_DEBUG_TRACE, "Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Hex");
-             break;
-         case 13: //wep 104 Ascii type
-             pAdapter->PortCfg.SharedKey[0].KeyLen = KeyLen;
--            memcpy(pAdapter->PortCfg.SharedKey[0].Key, arg, KeyLen);    
--            DBGPRINT(RT_DEBUG_TRACE, "Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Ascii");       
-+            memcpy(pAdapter->PortCfg.SharedKey[0].Key, arg, KeyLen);
-+            DBGPRINT(RT_DEBUG_TRACE, "Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Ascii");
-             break;
-         case 26: //wep 104 Hex type
-             for(i=0; i < KeyLen; i++)
-@@ -3455,16 +3537,16 @@
-             }
-             pAdapter->PortCfg.SharedKey[0].KeyLen = KeyLen / 2 ;
-             AtoH(arg, pAdapter->PortCfg.SharedKey[0].Key, KeyLen / 2);
--            DBGPRINT(RT_DEBUG_TRACE, "Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Hex");     
-+            DBGPRINT(RT_DEBUG_TRACE, "Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Hex");
-             break;
--        default: //Invalid argument 
--            DBGPRINT(RT_DEBUG_TRACE, "Set_Key1_Proc::Invalid argument (=%s)\n", arg);       
-+        default: //Invalid argument
-+            DBGPRINT(RT_DEBUG_TRACE, "Set_Key1_Proc::Invalid argument (=%s)\n", arg);
-             return FALSE;
-     }
- 
-     return TRUE;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set WEP KEY2
-@@ -3473,15 +3555,15 @@
-     ==========================================================================
- */
- INT Set_Key2_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     int                                 KeyLen;
-     int                                 i;
- 
--    printk("'iwpriv <dev> set Key2' is deprecated, please use 'iwconfg <dev> key [2] ' instead\n"); 
-+    printk("'iwpriv <dev> set Key2' is deprecated, please use 'iwconfg <dev> key [2] ' instead\n");
-+
- 
--    
-     KeyLen = strlen(arg);
- 
-     switch (KeyLen)
-@@ -3503,7 +3585,7 @@
-             break;
-         case 13: //wep 104 Ascii type
-             pAdapter->PortCfg.SharedKey[1].KeyLen = KeyLen;
--            memcpy(pAdapter->PortCfg.SharedKey[1].Key, arg, KeyLen);    
-+            memcpy(pAdapter->PortCfg.SharedKey[1].Key, arg, KeyLen);
-             DBGPRINT(RT_DEBUG_TRACE, "Set_Key2_Proc::(Key2=%s and type=%s)\n", arg, "Ascii");
-             break;
-         case 26: //wep 104 Hex type
-@@ -3516,14 +3598,14 @@
-             AtoH(arg, pAdapter->PortCfg.SharedKey[1].Key, KeyLen / 2);
-             DBGPRINT(RT_DEBUG_TRACE, "Set_Key2_Proc::(Key2=%s and type=%s)\n", arg, "Hex");
-             break;
--        default: //Invalid argument 
-+        default: //Invalid argument
-             DBGPRINT(RT_DEBUG_TRACE, "Set_Key2_Proc::Invalid argument (=%s)\n", arg);
-             return FALSE;
-     }
- 
-     return TRUE;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set WEP KEY3
-@@ -3532,13 +3614,13 @@
-     ==========================================================================
- */
- INT Set_Key3_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     int                                 KeyLen;
-     int                                 i;
- 
--     printk("'iwpriv <dev> set Key3' is deprecated, please use 'iwconfg <dev> key [3] ' instead\n"); 
-+     printk("'iwpriv <dev> set Key3' is deprecated, please use 'iwconfg <dev> key [3] ' instead\n");
- 
-     KeyLen = strlen(arg);
- 
-@@ -3574,14 +3656,14 @@
-             AtoH(arg, pAdapter->PortCfg.SharedKey[2].Key, KeyLen / 2);
-             DBGPRINT(RT_DEBUG_TRACE, "Set_Key3_Proc::(Key3=%s and type=%s)\n", arg, "Hex");
-             break;
--        default: //Invalid argument 
-+        default: //Invalid argument
-             DBGPRINT(RT_DEBUG_TRACE, "Set_Key3_Proc::Invalid argument (=%s)\n", arg);
-             return FALSE;
-     }
- 
-     return TRUE;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set WEP KEY4
-@@ -3590,21 +3672,21 @@
-     ==========================================================================
- */
- INT Set_Key4_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     int                                 KeyLen;
-     int                                 i;
- 
--    printk("'iwpriv <dev> set Key4' is deprecated, please use 'iwconfg <dev> key [4] ' instead\n"); 
--    
-+    printk("'iwpriv <dev> set Key4' is deprecated, please use 'iwconfg <dev> key [4] ' instead\n");
-+
-     KeyLen = strlen(arg);
- 
-     switch (KeyLen)
-     {
-         case 5: //wep 40 Ascii type
-             pAdapter->PortCfg.SharedKey[3].KeyLen = KeyLen;
--            memcpy(pAdapter->PortCfg.SharedKey[3].Key, arg, KeyLen);    
-+            memcpy(pAdapter->PortCfg.SharedKey[3].Key, arg, KeyLen);
-             DBGPRINT(RT_DEBUG_TRACE, "Set_Key4_Proc::(Key4=%s and type=%s)\n", arg, "Ascii");
-             break;
-         case 10: //wep 40 Hex type
-@@ -3632,14 +3714,14 @@
-             AtoH(arg, pAdapter->PortCfg.SharedKey[3].Key, KeyLen / 2);
-             DBGPRINT(RT_DEBUG_TRACE, "Set_Key4_Proc::(Key4=%s and type=%s)\n", arg, "Hex");
-             break;
--        default: //Invalid argument 
-+        default: //Invalid argument
-             DBGPRINT(RT_DEBUG_TRACE, "Set_Key4_Proc::Invalid argument (=%s)\n", arg);
-             return FALSE;
-     }
- 
-     return TRUE;
- }
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set WPA PSK key
-@@ -3648,7 +3730,7 @@
-     ==========================================================================
- */
- INT Set_WPAPSK_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     UCHAR                               keyMaterial[40];
-@@ -3670,16 +3752,16 @@
- 
-         memcpy(&pAdapter->PortCfg.PskKey.Key, &keyMaterial, 32);
-     }
-- 
-+
-     // Use RaConfig as PSK agent.
-     // Start STA supplicant state machine
-     pAdapter->PortCfg.WpaState = SS_START;
-- 
-+
-     return TRUE;
- }
- 
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set WPA NONE key
-@@ -3689,7 +3771,7 @@
- */
- 
- INT Set_WPANONE_Proc(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          arg)
- {
-     UCHAR               keyMaterial[40];
-@@ -3700,17 +3782,17 @@
-         DBGPRINT(RT_DEBUG_TRACE, "Set failed!!(WPANONE=%s), WPANONE key-string required 8 ~ 64 characters \n", arg);
-         return FALSE;
-     }
-- 
-+
-     if (strlen(arg) == 64)
-     {
--        AtoH(arg, pAdapter->PortCfg.PskKey.Key, 32);
-+        AtoH(arg, keyMaterial, 32);
-     }
-     else
-     {
-     	PasswordHash((char *)arg, pAdapter->Mlme.CntlAux.Ssid, pAdapter->Mlme.CntlAux.SsidLen, keyMaterial);
--
--    	memcpy(pAdapter->PortCfg.PskKey.Key, keyMaterial, 32);
-     }
-+    memcpy(pAdapter->PortCfg.PskKey.Key, keyMaterial, 32);
-+
-     // Use RaConfig as PSK agent.
-     // Start STA supplicant state machine
-     pAdapter->PortCfg.WpaState = SS_START;
-@@ -3718,7 +3800,7 @@
- //-----------------------------------------------------------------------------
- // pasted from "RTMPWPAAddKeyProc(...)"
- // major on Group Key only.
-- 
-+
-     // Group Key
-     {
-         // 3. Set as default Tx Key if bTxKey is TRUE
-@@ -3733,10 +3815,10 @@
- 
-         // 6. Copy information into Group Key structure.
-         // pKey->KeyLength will include TxMic and RxMic, therefore, we use 16 bytes hardcoded.
--        pAdapter->PortCfg.GroupKey[0].KeyLen = 16;     
--        memcpy(pAdapter->PortCfg.GroupKey[0].Key,   (PUCHAR)(keyMaterial) +  0, 16);
--        memcpy(pAdapter->PortCfg.GroupKey[0].RxMic, (PUCHAR)(keyMaterial) + 16, 8);
--        memcpy(pAdapter->PortCfg.GroupKey[0].TxMic, (PUCHAR)(keyMaterial) + 16, 8);
-+        pAdapter->PortCfg.GroupKey[0].KeyLen = 16;
-+        memcpy(pAdapter->PortCfg.GroupKey[0].Key,   &keyMaterial[0], 16);
-+        memcpy(pAdapter->PortCfg.GroupKey[0].RxMic, &keyMaterial[16], 8);
-+        memcpy(pAdapter->PortCfg.GroupKey[0].TxMic, &keyMaterial[16], 8);
-         memcpy(pAdapter->PortCfg.GroupKey[0].BssId, &pAdapter->PortCfg.Bssid, 6);
- 
-         // Init TxTsc to one based on WiFi WPA specs
-@@ -3754,7 +3836,7 @@
-     return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Read / Write BBP
-@@ -3766,7 +3848,7 @@
-         None
- 
-     Note:
--        Usage: 
-+        Usage:
-                1.) iwpriv ra0 bbp               ==> read all BBP
-                2.) iwpriv ra0 bbp 1,2,10,32     ==> raed BBP where ID=1,2,10,32
-                3.) iwpriv ra0 bbp 1=10,17=3E    ==> write BBP R1=0x10, R17=0x3E
-@@ -3887,9 +3969,9 @@
-     kfree(arg);
- }
- 
--int RTMPIoctlRFMONTX(
-+int RTMPIoctlSetRFMONTX(
-     IN PRTMP_ADAPTER   pAdapter,
--    IN OUT struct iwreq    *wrq)
-+    IN struct iwreq    *wrq)
- {
-     char		*pvalue;
-     char		value;
-@@ -3898,7 +3980,7 @@
-     {
- 	pvalue = wrq->u.data.pointer;
- 	value = *pvalue;
--	
-+
-         if (value == 1)
-         {
-            pAdapter->PortCfg.MallowRFMONTx = TRUE;
-@@ -3912,18 +3994,19 @@
-         else return -EINVAL;
-     }
- 
--    /* Display the state. Use "value" to indicate it. */
--    value = pAdapter->PortCfg.MallowRFMONTx == TRUE ? '1'
--                                                    : '0';
--    wrq->u.data.length = sizeof (char);
--
--    if (copy_to_user (wrq->u.data.pointer, &value, wrq->u.data.length))
--        DBGPRINT (RT_DEBUG_ERROR, "RTMPIoctlRFMONTX - copy to user failure.\n");
-+    return 0;
-+}
- 
-+int RTMPIoctlGetRFMONTX(
-+    IN PRTMP_ADAPTER   pAdapter,
-+    OUT struct iwreq    *wrq)
-+{
-+    *(int *) wrq->u.name = pAdapter->PortCfg.MallowRFMONTx == TRUE ? 1 : 0;
-     return 0;
-+
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Read / Write MAC
-@@ -3935,13 +4018,13 @@
-         None
- 
-     Note:
--        Usage: 
-+        Usage:
-                1.) iwpriv ra0 mac 0        ==> read MAC where Addr=0x0
-                2.) iwpriv ra0 mac 0=12     ==> write MAC where Addr=0x0, value=12
-     ==========================================================================
- */
- VOID RTMPIoctlMAC(
--    IN  PRTMP_ADAPTER   pAdapter, 
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  struct iwreq    *wrq)
- {
-     char                *this_char;
-@@ -3996,7 +4079,7 @@
-                 {
-                     this_char[4-k+j] = this_char[j];
-                 }
--                
-+
-                 while(k < 4)
-                     this_char[3-k++]='0';
-                 this_char[4]='\0';
-@@ -4061,7 +4144,7 @@
-                 {
-                     temp2[8-k+j] = temp2[j];
-                 }
--                
-+
-                 while(k < 8)
-                     temp2[7-k++]='0';
-                 temp2[8]='\0';
-@@ -4074,7 +4157,7 @@
-                     macValue = *temp*256*256*256 + temp[1]*256*256 + temp[2]*256 + temp[3];
- 
-                     DBGPRINT(RT_DEBUG_TRACE, "macAddr=%02x, macValue=0x%x\n", macAddr, macValue);
--                    
-+
-                     RTMP_IO_WRITE32(pAdapter, macAddr, macValue);
-                     sprintf(msg+strlen(msg), "[0x%02X]:%02X  ", macAddr, macValue);
-                     count++;
-@@ -4093,7 +4176,7 @@
-     wrq->u.data.length = strlen(msg);
-     if(copy_to_user(wrq->u.data.pointer, msg, wrq->u.data.length))
-     		DBGPRINT(RT_DEBUG_ERROR, "RTMPIoctlMAC - copy to user failure.\n");
--    
-+
-     DBGPRINT(RT_DEBUG_TRACE, "<==RTMPIoctlMAC\n");
- 
-    kfree(msg);
-@@ -4102,7 +4185,7 @@
- 
- #ifdef RALINK_ATE
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Read / Write E2PROM
-@@ -4114,13 +4197,13 @@
-         None
- 
-     Note:
--        Usage: 
-+        Usage:
-                1.) iwpriv ra0 e2p 0     	==> read E2PROM where Addr=0x0
-                2.) iwpriv ra0 e2p 0=1234    ==> write E2PROM where Addr=0x0, value=1234
-     ==========================================================================
- */
- VOID RTMPIoctlE2PROM(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	struct iwreq	*wrq)
- {
- 	char				*this_char;
-@@ -4136,7 +4219,7 @@
- 
- 	msg = kmalloc(1024, GFP_KERNEL);
- 	arg = kmalloc(255, GFP_KERNEL);
--	
-+
- 	DBGPRINT(RT_DEBUG_TRACE, "==>RTMPIoctlE2PROM\n");
- 	memset(msg, 0x00, 1024);
- 	memset(arg, 0x00, 255);
-@@ -4178,7 +4261,7 @@
- 				{
- 					this_char[4-k+j] = this_char[j];
- 				}
--				
-+
- 				while(k < 4)
- 					this_char[3-k++]='0';
- 				this_char[4]='\0';
-@@ -4186,7 +4269,7 @@
- 				if(strlen(this_char) == 4)
- 				{
- 					AtoH(this_char, temp, 4);
--					eepAddr = *temp*256 + temp[1];					
-+					eepAddr = *temp*256 + temp[1];
- 					if (eepAddr < 0xFFFF)
- 					{
- 						eepValue = RTMP_EEPROM_READ16(pAdapter, eepAddr);
-@@ -4243,7 +4326,7 @@
- 				{
- 					temp2[4-k+j] = temp2[j];
- 				}
--				
-+
- 				while(k < 4)
- 					temp2[3-k++]='0';
- 				temp2[4]='\0';
-@@ -4255,7 +4338,7 @@
- 				eepValue = *temp*256 + temp[1];
- 
- 				DBGPRINT(RT_DEBUG_TRACE, "eepAddr=%02x, eepValue=0x%x\n", eepAddr, eepValue);
--				
-+
- 				RTMP_EEPROM_WRITE16(pAdapter, eepAddr, eepValue);
- 				sprintf(msg+strlen(msg), "[0x%02X]:%02X  ", eepAddr, eepValue);
- 				count++;
-@@ -4269,18 +4352,19 @@
- 	if(strlen(msg) == 1)
- 		sprintf(msg+strlen(msg), "===>Error command format!");
- 
--        // Copy the information into the user buffer	
--        DBGPRINT(RT_DEBUG_TRACE, "copy to user [msg=%s]\n", *msg);	
-+        // Copy the information into the user buffer
-+        DBGPRINT(RT_DEBUG_TRACE, "copy to user [msg=%s]\n", *msg);
- 	wrq->u.data.length = strlen(msg);
--	copy_to_user(wrq->u.data.pointer, msg, wrq->u.data.length);
--	
-+	if (copy_to_user(wrq->u.data.pointer, msg, wrq->u.data.length))
-+    		DBGPRINT(RT_DEBUG_ERROR, "RTMPIoctlE2PROM - copy to user failure.\n");
-+
- 	DBGPRINT(RT_DEBUG_TRACE, "<==RTMPIoctlE2PROM\n");
- 
- 	kfree(msg);
- 	kfree(arg);
- }
- 
--UCHAR TempletFrame[24] = {0x08,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xAA,0xBB,0x12,0x34,0x56,0x00,0x11,0x22,0xAA,0xBB,0xCC,0x00,0x00};	// 802.11 MAC Header, Type:Data, Length:24bytes 
-+UCHAR TempletFrame[24] = {0x08,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xAA,0xBB,0x12,0x34,0x56,0x00,0x11,0x22,0xAA,0xBB,0xCC,0x00,0x00};	// 802.11 MAC Header, Type:Data, Length:24bytes
- 
- /*
-     ==========================================================================
-@@ -4297,7 +4381,7 @@
-     ==========================================================================
- */
- INT	Set_ATE_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg)
- {
- 	USHORT			BbpData;
-@@ -4305,7 +4389,7 @@
- 	PTXD_STRUC		pTxD;
- 	PUCHAR			pDest;
- 	UINT			i, j;
--	
-+
- 	DBGPRINT(RT_DEBUG_TRACE, "==> Set_ATE_Proc (arg = %s)\n", arg);
- 
- 	mdelay(5);
-@@ -4321,8 +4405,8 @@
- 	BbpData = 0;
- 	MacData &= 0xFBFFFFFF;
- 
--	if (!strcmp(arg, "STASTOP")) 
--	{						
-+	if (!strcmp(arg, "STASTOP"))
-+	{
- 		DBGPRINT(RT_DEBUG_TRACE, "ATE: STASTOP\n");
- 
- 		RTMP_IO_WRITE32(pAdapter, MACCSR1, MacData);
-@@ -4333,11 +4417,11 @@
-         LinkDown(pAdapter);
- 		AsicEnableBssSync(pAdapter);
- 		netif_stop_queue(pAdapter->net_dev);
--   		RTMPStationStop(pAdapter);		
-+   		RTMPStationStop(pAdapter);
- 		RTMP_IO_WRITE32(pAdapter, RXCSR0, 0xffffffff);	// Stop Rx
- 	}
--	else if (!strcmp(arg, "STASTART")) 
--	{						
-+	else if (!strcmp(arg, "STASTART"))
-+	{
- 		DBGPRINT(RT_DEBUG_TRACE, "ATE: STASTART\n");
- 
- 		RTMP_IO_WRITE32(pAdapter, MACCSR1, MacData);
-@@ -4350,9 +4434,9 @@
- 		RTMPStationStart(pAdapter);
- 	}
- 	else if (!strcmp(arg, "TXCONT")) 		// Continuous Tx
--	{						
-+	{
- 		DBGPRINT(RT_DEBUG_TRACE, "ATE: TXCONT\n");
--		
-+
- 		pAdapter->ate.Mode = ATE_TXCONT;
- 
- 		BbpData |= 0x80;
-@@ -4427,7 +4511,7 @@
- 		RTMP_IO_WRITE32(pAdapter, SECCSR1, 0x1);
- 	}
- 	else if (!strcmp(arg, "TXFRAME"))			// Tx Frames --------------------------------------
--	{						
-+	{
- 		DBGPRINT(RT_DEBUG_TRACE, "ATE: TXFRAME(Count=%d)\n", pAdapter->ate.TxCount);
- 		pAdapter->ate.Mode = ATE_TXFRAME;
- 
-@@ -4435,7 +4519,7 @@
- 		RTMP_BBP_IO_WRITE32_BY_REG_ID(pAdapter, 63, BbpData);
- 
- 		pAdapter->ate.TxDoneCount = 0;
--		
-+
- 		for (i = 0; (i < TX_RING_SIZE) && (i < pAdapter->ate.TxCount); i++)
- 		{
- 			pTxD = (PTXD_STRUC)pAdapter->TxRing[pAdapter->CurEncryptIndex].va_addr;
-@@ -4467,7 +4551,7 @@
- 		RTMP_IO_WRITE32(pAdapter, SECCSR1, 0x1);
- 	}
- 	else if (!strcmp(arg, "RXFRAME")) 			// Rx Frames --------------------------------------
--	{						
-+	{
- 		DBGPRINT(RT_DEBUG_TRACE, "ATE: RXFRAME\n");
- 
- 		RTMP_IO_WRITE32(pAdapter, MACCSR1, MacData);
-@@ -4475,23 +4559,23 @@
- 
- 		pAdapter->ate.Mode = ATE_RXFRAME;
- 		pAdapter->ate.TxDoneCount = pAdapter->ate.TxCount;
--		
-+
- 		RTMP_IO_WRITE32(pAdapter, TXCSR0, 0x08);		// Abort Tx
- 		RTMP_IO_WRITE32(pAdapter, RXCSR0, 0x56);		// Start Rx
- 	}
- 	else
--	{	
-+	{
- 		DBGPRINT(RT_DEBUG_TRACE, "ATE:	Invalid arg!\n");
- 		return FALSE;
- 	}
- 
- 	mdelay(5);
--	
-+
- 	DBGPRINT(RT_DEBUG_TRACE, "<== Set_ATE_Proc\n");
- 	return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set ATE ADDR1=DA for TxFrames    Return:
-@@ -4499,21 +4583,21 @@
-     ==========================================================================
- */
- INT	Set_ATE_DA_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg)
- {
- 	char				*value;
- 	int					i;
--	
-+
- 	DBGPRINT(RT_DEBUG_TRACE, "==> Set_ATE_DA_Proc\n");
- 	DBGPRINT(RT_DEBUG_TRACE, "arg=%s\n", arg);
--	
-+
- 	if(strlen(arg) != 17)  //Mac address acceptable format 01:02:03:04:05:06 length 17
- 		return FALSE;
- 
--    for (i=0, value = strtok(arg,":"); value; value = strtok(NULL,":")) 
-+    for (i=0, value = strtok(arg,":"); value; value = strtok(NULL,":"))
- 	{
--		if((strlen(value) != 2) || (!isxdigit(*value)) || (!isxdigit(*(value+1))) ) 
-+		if((strlen(value) != 2) || (!isxdigit(*value)) || (!isxdigit(*(value+1))) )
- 			return FALSE;  //Invalid
- 
- 		AtoH(value, &pAdapter->ate.Addr1[i++], 2);
-@@ -4521,14 +4605,14 @@
- 
- 	if(i != 6)
- 		return FALSE;  //Invalid
--		
-+
- 	DBGPRINT(RT_DEBUG_TRACE, "DA=%2X:%2X:%2X:%2X:%2X:%2X\n", pAdapter->ate.Addr1[0], pAdapter->ate.Addr1[1], pAdapter->ate.Addr1[2], pAdapter->ate.Addr1[3], pAdapter->ate.Addr1[4], pAdapter->ate.Addr1[5]);
- 	DBGPRINT(RT_DEBUG_TRACE, "<== Set_ATE_DA_Proc\n");
--	
-+
- 	return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set ATE ADDR2=SA for TxFrames    Return:
-@@ -4536,21 +4620,21 @@
-     ==========================================================================
- */
- INT	Set_ATE_SA_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg)
- {
- 	char				*value;
- 	int					i;
--	
-+
- 	DBGPRINT(RT_DEBUG_TRACE, "==> Set_ATE_SA_Proc\n");
- 	DBGPRINT(RT_DEBUG_TRACE, "arg=%s\n", arg);
--	
-+
- 	if(strlen(arg) != 17)  //Mac address acceptable format 01:02:03:04:05:06 length 17
- 		return FALSE;
- 
--    for (i=0, value = strtok(arg,":"); value; value = strtok(NULL,":")) 
-+    for (i=0, value = strtok(arg,":"); value; value = strtok(NULL,":"))
- 	{
--		if((strlen(value) != 2) || (!isxdigit(*value)) || (!isxdigit(*(value+1))) ) 
-+		if((strlen(value) != 2) || (!isxdigit(*value)) || (!isxdigit(*(value+1))) )
- 			return FALSE;  //Invalid
- 
- 		AtoH(value, &pAdapter->ate.Addr2[i++], 2);
-@@ -4561,11 +4645,11 @@
- 
- 	DBGPRINT(RT_DEBUG_TRACE, "DA=%2X:%2X:%2X:%2X:%2X:%2X\n", pAdapter->ate.Addr2[0], pAdapter->ate.Addr2[1], pAdapter->ate.Addr2[2], pAdapter->ate.Addr2[3], pAdapter->ate.Addr2[4], pAdapter->ate.Addr2[5]);
- 	DBGPRINT(RT_DEBUG_TRACE, "<== Set_ATE_SA_Proc\n");
--	
-+
- 	return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set ATE ADDR3=BSSID for TxFrames    Return:
-@@ -4573,21 +4657,21 @@
-     ==========================================================================
- */
- INT	Set_ATE_BSSID_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg)
- {
- 	char				*value;
- 	int					i;
--	
-+
- 	DBGPRINT(RT_DEBUG_TRACE, "==> Set_ATE_BSSID_Proc\n");
- 	DBGPRINT(RT_DEBUG_TRACE, "arg=%s\n", arg);
--	
-+
- 	if(strlen(arg) != 17)  //Mac address acceptable format 01:02:03:04:05:06 length 17
- 		return FALSE;
- 
--    for (i=0, value = strtok(arg,":"); value; value = strtok(NULL,":")) 
-+    for (i=0, value = strtok(arg,":"); value; value = strtok(NULL,":"))
- 	{
--		if((strlen(value) != 2) || (!isxdigit(*value)) || (!isxdigit(*(value+1))) ) 
-+		if((strlen(value) != 2) || (!isxdigit(*value)) || (!isxdigit(*(value+1))) )
- 			return FALSE;  //Invalid
- 
- 		AtoH(value, &pAdapter->ate.Addr3[i++], 2);
-@@ -4598,11 +4682,11 @@
- 
- 	DBGPRINT(RT_DEBUG_TRACE, "DA=%2X:%2X:%2X:%2X:%2X:%2X\n", pAdapter->ate.Addr3[0], pAdapter->ate.Addr3[1], pAdapter->ate.Addr3[2], pAdapter->ate.Addr3[3], pAdapter->ate.Addr3[4], pAdapter->ate.Addr3[5]);
- 	DBGPRINT(RT_DEBUG_TRACE, "<== Set_ATE_BSSID_Proc\n");
--	
-+
- 	return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set ATE Channel    Return:
-@@ -4610,11 +4694,11 @@
-     ==========================================================================
- */
- INT	Set_ATE_CHANNEL_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg)
- {
- 	DBGPRINT(RT_DEBUG_TRACE, "==> Set_ATE_CHANNEL_Proc (arg = %s)\n", arg);
--	
-+
- 	pAdapter->ate.Channel = simple_strtol(arg, 0, 10);
- 	if((pAdapter->ate.Channel < 1) || (pAdapter->ate.Channel > 14))
- 	{
-@@ -4623,11 +4707,11 @@
- 	}
- 
- 	DBGPRINT(RT_DEBUG_TRACE, "<== Set_ATE_CHANNEL_Proc (ATE Channel = %d)\n", pAdapter->ate.Channel);
--	
-+
- 	return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set ATE Tx Power    Return:
-@@ -4635,14 +4719,14 @@
-     ==========================================================================
- */
- INT	Set_ATE_TX_POWER_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg)
- {
- 	ULONG R3;
--	
-+
- 	DBGPRINT(RT_DEBUG_TRACE, "==> Set_ATE_TX_POWER_Proc\n");
- 	DBGPRINT(RT_DEBUG_TRACE, "arg=%s\n", arg);
--	
-+
- 	pAdapter->ate.TxPower = simple_strtol(arg, 0, 10);
- 
- 	if(pAdapter->ate.TxPower >= 32)
-@@ -4659,11 +4743,11 @@
- 
- 	DBGPRINT(RT_DEBUG_TRACE, "TxPower = %d\n", pAdapter->ate.TxPower);
- 	DBGPRINT(RT_DEBUG_TRACE, "<== Set_ATE_TX_POWER_Proc\n");
--	
-+
- 	return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set ATE Tx Length    Return:
-@@ -4671,12 +4755,12 @@
-     ==========================================================================
- */
- INT	Set_ATE_TX_LENGTH_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg)
- {
- 	DBGPRINT(RT_DEBUG_TRACE, "==> Set_ATE_TX_LENGTH_Proc\n");
- 	DBGPRINT(RT_DEBUG_TRACE, "arg=%s\n", arg);
--	
-+
- 	pAdapter->ate.TxLength = simple_strtol(arg, 0, 10);
- 
- 	if((pAdapter->ate.TxLength < 24) || (pAdapter->ate.TxLength > 1500))
-@@ -4687,11 +4771,11 @@
- 
- 	DBGPRINT(RT_DEBUG_TRACE, "TxLength = %d\n", pAdapter->ate.TxLength);
- 	DBGPRINT(RT_DEBUG_TRACE, "<== Set_ATE_TX_LENGTH_Proc\n");
--	
-+
- 	return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set ATE Tx Count    Return:
-@@ -4699,21 +4783,21 @@
-     ==========================================================================
- */
- INT	Set_ATE_TX_COUNT_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg)
- {
- 	DBGPRINT(RT_DEBUG_TRACE, "==> Set_ATE_TX_COUNT_Proc\n");
- 	DBGPRINT(RT_DEBUG_TRACE, "arg=%s\n", arg);
--	
-+
- 	pAdapter->ate.TxCount = simple_strtol(arg, 0, 10);
- 
- 	DBGPRINT(RT_DEBUG_TRACE, "TxCount = %d\n", pAdapter->ate.TxCount);
- 	DBGPRINT(RT_DEBUG_TRACE, "<== Set_ATE_TX_COUNT_Proc\n");
--	
-+
- 	return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Set ATE Tx Rate
-@@ -4722,12 +4806,12 @@
-     ==========================================================================
- */
- INT	Set_ATE_TX_RATE_Proc(
--	IN	PRTMP_ADAPTER	pAdapter, 
-+	IN	PRTMP_ADAPTER	pAdapter,
- 	IN	PUCHAR			arg)
- {
- 	DBGPRINT(RT_DEBUG_TRACE, "==> Set_ATE_TX_RATE_Proc\n");
- 	DBGPRINT(RT_DEBUG_TRACE, "arg=%s\n", arg);
--	
-+
- 	pAdapter->ate.TxRate = simple_strtol(arg, 0, 10);
- 
- 	if(pAdapter->ate.TxRate > RATE_54)
-@@ -4738,7 +4822,7 @@
- 
- 	DBGPRINT(RT_DEBUG_TRACE, "TxRate = %d\n", pAdapter->ate.TxRate);
- 	DBGPRINT(RT_DEBUG_TRACE, "<== Set_ATE_TX_RATE_Proc\n");
--	
-+
- 	return TRUE;
- }
- 
-@@ -4758,7 +4842,7 @@
-     RTMPCancelTimer(&pAd->PortCfg.RfTuningTimer);
-     if (pAd->PortCfg.LedMode == LED_MODE_TXRX_ACTIVITY)
-         RTMPCancelTimer(&pAd->PortCfg.LedCntl.BlinkTimer);
--    RTMPCancelTimer(&pAd->PortCfg.RxAnt.RxAntDiversityTimer);	
-+    RTMPCancelTimer(&pAd->PortCfg.RxAnt.RxAntDiversityTimer);
-     DBGPRINT(RT_DEBUG_TRACE, "<== RTMPStationStop\n");
- }
- 
-diff -Nur rt2500-1.1.0-b4/Module/rtmp_init.c rt2500-cvs-2007061011/Module/rtmp_init.c
---- rt2500-1.1.0-b4/Module/rtmp_init.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/rtmp_init.c	2007-05-06 11:13:43.000000000 +0200
-@@ -1,40 +1,40 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: rtmp_init.c
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      PaulL           1st  Aug 02     Initial code     
-- *      MarkW           8th  Dec 04     Baseline code  
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      PaulL           1st  Aug 02     Initial code
-+ *      MarkW           8th  Dec 04     Baseline code
-  *      MarkW (rt2400)  8th  Dec 04     Promisc mode support
-  *      MarkW           10th Dec 04     Rolled in Ralink 1.4.5.0
-  *      LuisCorreia     15th Feb 05     Added Yann's patch for radio hw
-  *      MarkW           12th Jul 05     Disabled all but CAM Power modes
-- ***************************************************************************/ 
-+ ***************************************************************************/
- 
- #include    "rt_config.h"
- 
-@@ -84,9 +84,9 @@
- //  {PSCSR2,    0x00023f20},            // 0xd0
-     {PSCSR2,    0x00020002},        // 0xd0
-     {PSCSR3,    0x00000002},            // 0xd4
--    {TIMECSR,   0x00003f21},        // 0xDC, to slower down our 1-us tick 
-+    {TIMECSR,   0x00003f21},        // 0xDC, to slower down our 1-us tick
-     {CSR9,      0x00000780},        // 0x24
--    {CSR11,     0x07041483},        // 0x2C, lrc=7, src=4, slot=20us, CWmax=2^8, CWmax=2^3  
-+    {CSR11,     0x07041483},        // 0x2C, lrc=7, src=4, slot=20us, CWmax=2^8, CWmax=2^3
-     {CSR18,     0x00140000},        // SIFS=10us - TR switch time, PIFS=SIFS+20us
-     {CSR19,     0x016C0028},        // DIFS=SIFS+2*20us, EIFS=364us
-     {CNT3,      0x00000000},        // Backoff_CCA_Th, RX_&_TX_CCA_Th
-@@ -105,17 +105,17 @@
-     {ARTCSR1,   0x1d21252d},        // 0x150, alexsu : OFDM ACK/CTS payload consumed time for 18/12/9/6 mbps
-     {ARTCSR2,   0x1919191d},        // 0x154, alexsu : OFDM ACK/CTS payload consumed time for 54/48/36/24 mbps
- 
--    {RXCSR0,    0xffffffff},        // 0x80 
-+    {RXCSR0,    0xffffffff},        // 0x80
-     {RXCSR3,    0xb3aab3af},        // 0x90. RT2530 BBP 51:RSSI, R42:OFDM rate, R47:CCK SIGNAL
-     {PCICSR,    0x000003b8},        // 0x8c, alexsu : PCI control register
-     {PWRCSR0,   0x3f3b3100},            // 0xC4
-     {GPIOCSR,   0x0000ff00},		// 0x120, GPIO default value
- 	{TESTCSR,	0x000000f0},		// 0x138, Test CSR, make sure it's running at normal mode
--    {PWRCSR1,   0x000001ff},            // 0xd8     
-+    {PWRCSR1,   0x000001ff},            // 0xd8
-     {MACCSR0,   0x00213223},        // 0xE0, Enable Tx dribble mode - 2003/10/22:Gary
-     {MACCSR1,   0x00235518},            // 0xE4, Disable Rx Reset, tx dribble count, 2x30x16 = 960n,
-     {MACCSR2,   0x00000040},            // 0x0134, 64*33ns = 2us
--    {RALINKCSR, 0x9a009a11},            // 0xE8 
-+    {RALINKCSR, 0x9a009a11},            // 0xE8
-     {CSR7,      0xffffffff},            // 0x1C, Clear all pending interrupt source
-     {LEDCSR,    0x00001E46},        // default both LEDs off
-     {BBPCSR1,   0x82188200},        // for 2560+2522
-@@ -155,7 +155,7 @@
- 
-     DBGPRINT(RT_DEBUG_INFO, "--> RTMPAllocDMAMemory\n");
- 
--    // 1. Allocate Tx Ring DMA descriptor and buffer memory 
-+    // 1. Allocate Tx Ring DMA descriptor and buffer memory
-     // Allocate Ring descriptors DMA block
-     ring = pci_alloc_consistent(pAd->pPci_Dev, (TX_RING_SIZE * RING_DESCRIPTOR_SIZE), &ring_dma);
-     if (!ring) {
-@@ -165,14 +165,14 @@
- 
-     // Zero init ring descriptors
-     memset(ring, 0, (TX_RING_SIZE * RING_DESCRIPTOR_SIZE));
--    
-+
-     // Allocate Ring data DMA blocks
-     ring_data = pci_alloc_consistent(pAd->pPci_Dev, (TX_RING_SIZE * TX_BUFFER_SIZE), &ring_data_dma);
--    
-+
-     // If failed, release ring descriptors DMA block & exit
-     if (!ring_data) {
-         pci_free_consistent(pAd->pPci_Dev, (TX_RING_SIZE * RING_DESCRIPTOR_SIZE), ring, ring_dma);
--        printk(KERN_ERR DRV_NAME "Could not allocate DMA ring buffer memory.\n");       
-+        printk(KERN_ERR DRV_NAME "Could not allocate DMA ring buffer memory.\n");
-         goto err_out_allocate_txring;
-     }
- 
-@@ -185,7 +185,7 @@
-         pAd->TxRing[index].pa_addr = ring_dma;
-         ring     += RING_DESCRIPTOR_SIZE;
-         ring_dma += RING_DESCRIPTOR_SIZE;
--        
-+
-         // Init Tx DMA buffer
-         pAd->TxRing[index].data_size = TX_BUFFER_SIZE;
-         pAd->TxRing[index].va_data_addr = ring_data;
-@@ -207,7 +207,7 @@
-             index, (unsigned long)pAd->TxRing[index].va_data_addr, (UINT)pAd->TxRing[index].pa_data_addr, pAd->TxRing[index].data_size);
-     }
- 
--    // 2. Allocate Prio Ring DMA descriptor and buffer memory 
-+    // 2. Allocate Prio Ring DMA descriptor and buffer memory
-     // Allocate Ring descriptors DMA block
-     ring = pci_alloc_consistent(pAd->pPci_Dev, (PRIO_RING_SIZE * RING_DESCRIPTOR_SIZE), &ring_dma);
-     if (!ring) {
-@@ -224,7 +224,7 @@
-     // If failed, release ring descriptors DMA block & exit
-     if (!ring_data) {
-         pci_free_consistent(pAd->pPci_Dev, (PRIO_RING_SIZE * RING_DESCRIPTOR_SIZE), ring, ring_dma);
--        DBGPRINT(RT_DEBUG_ERROR, "Could not allocate DMA ring buffer memory.\n");       
-+        DBGPRINT(RT_DEBUG_ERROR, "Could not allocate DMA ring buffer memory.\n");
-         goto err_out_allocate_prioring;
-     }
- 
-@@ -259,7 +259,7 @@
-             index, (unsigned long)pAd->PrioRing[index].va_data_addr, (UINT)pAd->PrioRing[index].pa_data_addr, pAd->PrioRing[index].data_size);
-     }
- 
--    // 3. Allocate Atim Ring DMA descriptor and buffer memory 
-+    // 3. Allocate Atim Ring DMA descriptor and buffer memory
-     // Allocate Ring descriptors DMA block
-     ring = pci_alloc_consistent(pAd->pPci_Dev, (ATIM_RING_SIZE * RING_DESCRIPTOR_SIZE), &ring_dma);
-     if (!ring) {
-@@ -276,7 +276,7 @@
-     // If failed, release ring descriptors DMA block & exit
-     if (!ring_data) {
-         pci_free_consistent(pAd->pPci_Dev, (ATIM_RING_SIZE * RING_DESCRIPTOR_SIZE), ring, ring_dma);
--        DBGPRINT(RT_DEBUG_ERROR, "Could not allocate DMA ring buffer memory.\n");       
-+        DBGPRINT(RT_DEBUG_ERROR, "Could not allocate DMA ring buffer memory.\n");
-         goto err_out_allocate_atimring;
-     }
- 
-@@ -328,7 +328,7 @@
-     // If failed, release ring descriptors DMA block & exit
-     if (!ring_data) {
-         pci_free_consistent(pAd->pPci_Dev, (RX_RING_SIZE * RING_DESCRIPTOR_SIZE), ring, ring_dma);
--        DBGPRINT(RT_DEBUG_ERROR, "Could not allocate DMA ring buffer memory.\n");       
-+        DBGPRINT(RT_DEBUG_ERROR, "Could not allocate DMA ring buffer memory.\n");
-         goto err_out_allocate_rxring;
-     }
- 
-@@ -386,7 +386,7 @@
-     // If failed, release ring descriptors DMA block & exit
-     if (!ring_data) {
-         pci_free_consistent(pAd->pPci_Dev, RING_DESCRIPTOR_SIZE, ring, ring_dma);
--        DBGPRINT(RT_DEBUG_ERROR, "Could not allocate DMA ring buffer memory.\n");       
-+        DBGPRINT(RT_DEBUG_ERROR, "Could not allocate DMA ring buffer memory.\n");
-         goto err_out_allocate_beaconring;
-     }
- 
-@@ -418,28 +418,28 @@
- 
- err_out_allocate_beaconring:
-     // Free data DMA blocks first, the start address is the same as TxRing first DMA data block
--    pci_free_consistent(pAd->pPci_Dev, (RX_RING_SIZE * RX_BUFFER_SIZE), 
-+    pci_free_consistent(pAd->pPci_Dev, (RX_RING_SIZE * RX_BUFFER_SIZE),
-         pAd->RxRing[0].va_data_addr, pAd->RxRing[0].pa_data_addr);
-     // Free ring descriptor second, the start address is the same as TxRing first elment
-     pci_free_consistent(pAd->pPci_Dev, (RX_RING_SIZE * RING_DESCRIPTOR_SIZE),
-         pAd->RxRing[0].va_addr, pAd->RxRing[0].pa_addr);
- err_out_allocate_rxring:
-     // Free data DMA blocks first, the start address is the same as TxRing first DMA data block
--    pci_free_consistent(pAd->pPci_Dev, (ATIM_RING_SIZE * ATIM_BUFFER_SIZE), 
-+    pci_free_consistent(pAd->pPci_Dev, (ATIM_RING_SIZE * ATIM_BUFFER_SIZE),
-         pAd->AtimRing[0].va_data_addr, pAd->AtimRing[0].pa_data_addr);
-     // Free ring descriptor second, the start address is the same as TxRing first elment
-     pci_free_consistent(pAd->pPci_Dev, (ATIM_RING_SIZE * RING_DESCRIPTOR_SIZE),
-         pAd->AtimRing[0].va_addr, pAd->AtimRing[0].pa_addr);
- err_out_allocate_atimring:
-     // Free data DMA blocks first, the start address is the same as TxRing first DMA data block
--    pci_free_consistent(pAd->pPci_Dev, (PRIO_RING_SIZE * PRIO_BUFFER_SIZE), 
-+    pci_free_consistent(pAd->pPci_Dev, (PRIO_RING_SIZE * PRIO_BUFFER_SIZE),
-         pAd->PrioRing[0].va_data_addr, pAd->PrioRing[0].pa_data_addr);
-     // Free ring descriptor second, the start address is the same as TxRing first elment
-     pci_free_consistent(pAd->pPci_Dev, (PRIO_RING_SIZE * RING_DESCRIPTOR_SIZE),
-         pAd->PrioRing[0].va_addr, pAd->PrioRing[0].pa_addr);
- err_out_allocate_prioring:
-     // Free data DMA blocks first, the start address is the same as TxRing first DMA data block
--    pci_free_consistent(pAd->pPci_Dev, (TX_RING_SIZE * TX_BUFFER_SIZE), 
-+    pci_free_consistent(pAd->pPci_Dev, (TX_RING_SIZE * TX_BUFFER_SIZE),
-         pAd->TxRing[0].va_data_addr, pAd->TxRing[0].pa_data_addr);
-     // Free ring descriptor second, the start address is the same as TxRing first elment
-     pci_free_consistent(pAd->pPci_Dev, (TX_RING_SIZE * RING_DESCRIPTOR_SIZE),
-@@ -472,35 +472,35 @@
-     DBGPRINT(RT_DEBUG_INFO, "--> RTMPFreeDMAMemory\n");
- 
-     // Free data DMA blocks first, the start address is the same as TxRing first DMA data block
--    pci_free_consistent(pAd->pPci_Dev, (TX_RING_SIZE * TX_BUFFER_SIZE), 
-+    pci_free_consistent(pAd->pPci_Dev, (TX_RING_SIZE * TX_BUFFER_SIZE),
-         pAd->TxRing[0].va_data_addr, pAd->TxRing[0].pa_data_addr);
-     // Free ring descriptor second, the start address is the same as TxRing first elment
-     pci_free_consistent(pAd->pPci_Dev, (TX_RING_SIZE * RING_DESCRIPTOR_SIZE),
-         pAd->TxRing[0].va_addr, pAd->TxRing[0].pa_addr);
- 
-     // Free data DMA blocks first, the start address is the same as TxRing first DMA data block
--    pci_free_consistent(pAd->pPci_Dev, (PRIO_RING_SIZE * PRIO_BUFFER_SIZE), 
-+    pci_free_consistent(pAd->pPci_Dev, (PRIO_RING_SIZE * PRIO_BUFFER_SIZE),
-         pAd->PrioRing[0].va_data_addr, pAd->PrioRing[0].pa_data_addr);
-     // Free ring descriptor second, the start address is the same as TxRing first elment
-     pci_free_consistent(pAd->pPci_Dev, (PRIO_RING_SIZE * RING_DESCRIPTOR_SIZE),
-         pAd->PrioRing[0].va_addr, pAd->PrioRing[0].pa_addr);
- 
-     // Free data DMA blocks first, the start address is the same as TxRing first DMA data block
--    pci_free_consistent(pAd->pPci_Dev, (ATIM_RING_SIZE * ATIM_BUFFER_SIZE), 
-+    pci_free_consistent(pAd->pPci_Dev, (ATIM_RING_SIZE * ATIM_BUFFER_SIZE),
-         pAd->AtimRing[0].va_data_addr, pAd->AtimRing[0].pa_data_addr);
-     // Free ring descriptor second, the start address is the same as TxRing first elment
-     pci_free_consistent(pAd->pPci_Dev, (ATIM_RING_SIZE * RING_DESCRIPTOR_SIZE),
-         pAd->AtimRing[0].va_addr, pAd->AtimRing[0].pa_addr);
--    
-+
-     // Free data DMA blocks first, the start address is the same as TxRing first DMA data block
--    pci_free_consistent(pAd->pPci_Dev, (RX_RING_SIZE * RX_BUFFER_SIZE), 
-+    pci_free_consistent(pAd->pPci_Dev, (RX_RING_SIZE * RX_BUFFER_SIZE),
-         pAd->RxRing[0].va_data_addr, pAd->RxRing[0].pa_data_addr);
-     // Free ring descriptor second, the start address is the same as TxRing first elment
-     pci_free_consistent(pAd->pPci_Dev, (RX_RING_SIZE * RING_DESCRIPTOR_SIZE),
-         pAd->RxRing[0].va_addr, pAd->RxRing[0].pa_addr);
- 
-     // Free data DMA blocks first, the start address is the same as TxRing first DMA data block
--    pci_free_consistent(pAd->pPci_Dev, (BEACON_RING_SIZE * BEACON_BUFFER_SIZE), 
-+    pci_free_consistent(pAd->pPci_Dev, (BEACON_RING_SIZE * BEACON_BUFFER_SIZE),
-         pAd->BeaconRing.va_data_addr, pAd->BeaconRing.pa_data_addr);
-     // Free ring descriptor second, the start address is the same as TxRing first elment
-     pci_free_consistent(pAd->pPci_Dev, (BEACON_RING_SIZE * RING_DESCRIPTOR_SIZE),
-@@ -582,7 +582,7 @@
-     CSR4_STRUC      StaMacReg1;
-     NDIS_STATUS     Status = NDIS_STATUS_SUCCESS;
- 
--    // 
-+    //
-     // Read MAC address from CSR3 & CSR4, these CSRs reflects real value
-     // stored with EEPROM.
-     //
-@@ -618,7 +618,7 @@
-         None
- 
-     Note:
--        
-+
-     ========================================================================
- */
- VOID    NICReadEEPROMParameters(
-@@ -637,7 +637,7 @@
-     RTMP_IO_READ32(pAdapter, CSR21, &data);
- 
-     if(data & 0x20)
--        pAdapter->EEPROMAddressNum = 6;     
-+        pAdapter->EEPROMAddressNum = 6;
-     else
-         pAdapter->EEPROMAddressNum = 8;
- 
-@@ -655,7 +655,7 @@
-     for(i = 0; i < NUM_EEPROM_BBP_PARMS; i++)
-     {
-         value = RTMP_EEPROM_READ16(pAdapter, EEPROM_BBP_BASE_OFFSET + i*2);
--        
-+
-         pAdapter->EEPROMDefaultValue[i] = value;
-     }
- 
-@@ -707,13 +707,13 @@
- 		// Disable TxAgc if the value is not right
- 		if ((pAdapter->PortCfg.ChannelTssiRef[i * 2] == 0xff) ||
- 			(pAdapter->PortCfg.ChannelTssiRef[i * 2 + 1] == 0xff))
--			pAdapter->PortCfg.bAutoTxAgc = FALSE;					
-+			pAdapter->PortCfg.bAutoTxAgc = FALSE;
- 	}
--	
-+
- 	// Tx Tssi delta offset 0x24
- 	Power.word = RTMP_EEPROM_READ16(pAdapter, EEPROM_TSSI_DELTA_OFFSET);
- 	pAdapter->PortCfg.ChannelTssiDelta = Power.field.Byte0;
--	
-+
- #endif
- 
-     //CountryRegion byte offset = 0x35
-@@ -734,11 +734,11 @@
- 	pAdapter->PortCfg.RssiToDbm = 0x79;
-     }
-     else
--    { 
-+    {
- 	//pAdapter->PortCfg.R17Dec = 0x79 - Power.field.Byte0;
- 	pAdapter->PortCfg.RssiToDbm = Power.field.Byte0;
-     }
--	
-+
- 
-     DBGPRINT(RT_DEBUG_TRACE, "<-- NICReadEEPROMParameters\n");
- }
-@@ -769,11 +769,11 @@
- 	EEPROM_NIC_CONFIG2_STRUC    NicConfig2;
- 
- 	DBGPRINT(RT_DEBUG_TRACE, "--> NICInitAsicFromEEPROM\n");
--	
-+
- 	for(i = 3; i < NUM_EEPROM_BBP_PARMS; i++)
- 	{
- 		value = pAdapter->EEPROMDefaultValue[i];
--		
-+
- 		if((value != 0xFFFF) && (value != 0))
- 		{
- 			data = value | 0x18000;
-@@ -802,12 +802,12 @@
- 	// Tx antenna select
-     if(Antenna.field.TxDefaultAntenna == 1)       // Antenna A
-     {
--		TxValue = (TxValue & 0xFC) | 0x00; 
-+		TxValue = (TxValue & 0xFC) | 0x00;
- 		BbpCsr1 = (BbpCsr1 & 0xFFFCFFFC) | 0x00000000;
- 	}
- 	else if(Antenna.field.TxDefaultAntenna == 2)  // Antenna B
- 	{
--		TxValue = (TxValue & 0xFC) | 0x02; 
-+		TxValue = (TxValue & 0xFC) | 0x02;
- 		BbpCsr1 = (BbpCsr1 & 0xFFFCFFFC) | 0x00020002;
- 	}
- 	else                                          // diverity - start from Antenna B
-@@ -818,12 +818,12 @@
- 
- 	// Rx antenna select
- 	if(Antenna.field.RxDefaultAntenna == 1)       // Antenna A
--		RxValue = (RxValue & 0xFC) | 0x00; 
-+		RxValue = (RxValue & 0xFC) | 0x00;
- 	else if(Antenna.field.RxDefaultAntenna == 2)  // Antenna B
--		RxValue = (RxValue & 0xFC) | 0x02; 
-+		RxValue = (RxValue & 0xFC) | 0x02;
- 	else                                          // Antenna Diversity
--		RxValue = (RxValue & 0xFC) | 0x02; 
--			
-+		RxValue = (RxValue & 0xFC) | 0x02;
-+
-     // RT5222 needs special treatment to swap TX I/Q
-     if (pAdapter->PortCfg.RfType == RFIC_5222)
-     {
-@@ -831,13 +831,13 @@
-         TxValue |= 0x04;         // TX I/Q flip
-     }
-     // RT2525E need to flip TX I/Q but not RX I/Q
--    else if (pAdapter->PortCfg.RfType == RFIC_2525E)	
-+    else if (pAdapter->PortCfg.RfType == RFIC_2525E)
-     {
-         BbpCsr1 |= 0x00040004;
-         TxValue |= 0x04;         // TX I/Q flip
-         RxValue &= 0xfb;         // RX I/Q no flip
-     }
--    
-+
- 	// Change to match microsoft definition, 0xff: diversity, 0: A, 1: B
- 	pAdapter->PortCfg.CurrentTxAntenna--;
- 	pAdapter->PortCfg.CurrentRxAntenna--;
-@@ -845,7 +845,7 @@
- 	RTMP_IO_WRITE32(pAdapter, BBPCSR1, BbpCsr1);
- 	RTMP_BBP_IO_WRITE32_BY_REG_ID(pAdapter, BBP_Tx_Configure, TxValue);
- 	RTMP_BBP_IO_WRITE32_BY_REG_ID(pAdapter, BBP_Rx_Configure, RxValue);
--	
-+
-     // 2003-12-16 software-based RX antenna diversity
-     // pAdapter->PortCfg.CurrentRxAntenna = 0xff;   // Diversity ON
-     AsicSetRxAnt(pAdapter);
-@@ -869,7 +869,7 @@
-     if (0 && Antenna.field.HardwareRadioControl == 1)
- 	{
- 	    pAdapter->PortCfg.bHardwareRadio = TRUE;
--		
-+
- 	    // Read GPIO pin0 as Hardware controlled radio state
- 	    RTMP_IO_READ32(pAdapter, GPIOCSR, &data);
- 	    if ((data & 0x01) == 0)
-@@ -886,8 +886,8 @@
- 	    }
-     }
-     else
--	    pAdapter->PortCfg.bHardwareRadio = FALSE;		
--	
-+	    pAdapter->PortCfg.bHardwareRadio = FALSE;
-+
- 	NicConfig2.word = pAdapter->EEPROMDefaultValue[1];
- 	if (NicConfig2.word == 0xffff)
- 	    NicConfig2.word = 0;    // empty E2PROM, use default
-@@ -906,7 +906,7 @@
- 	    RTMP_BBP_IO_WRITE32_BY_REG_ID(pAdapter, 17, r17);
- 
-         // 2004-2-2 per David's request, lower R17 low-bound for very good quality NIC
--	    pAdapter->PortCfg.VgcLowerBound -= 6;  
-+	    pAdapter->PortCfg.VgcLowerBound -= 6;
- 	    DBGPRINT(RT_DEBUG_TRACE,"R17 tuning enable=%d, R17=0x%02x, range=<0x%02x, 0x%02x>\n",
- 	        pAdapter->PortCfg.BbpTuningEnable, r17, pAdapter->PortCfg.VgcLowerBound, pAdapter->PortCfg.BbpTuning.VgcUpperBound);
- 	}
-@@ -916,7 +916,6 @@
- 	DBGPRINT(RT_DEBUG_TRACE, "<-- NICInitAsicFromEEPROM\n");
- }
- 
--extern VOID MlmeWork(void *vpAd);
- 
- void NICInitializeAdapter(IN    PRTMP_ADAPTER   pAdapter)
- {
-@@ -938,7 +937,7 @@
-     TxCSR2.field.TxDSize = RING_DESCRIPTOR_SIZE;
-     TxCSR2.field.NumTxD  = TX_RING_SIZE;
-     TxCSR2.field.NumAtimD  = ATIM_RING_SIZE;
--    TxCSR2.field.NumPrioD  = PRIO_RING_SIZE;    
-+    TxCSR2.field.NumPrioD  = PRIO_RING_SIZE;
-     RTMP_IO_WRITE32(pAdapter, TXCSR2, TxCSR2.word);
- 
-     // Write TXCSR3 register
-@@ -961,22 +960,19 @@
-     RxCSR1.field.RxDSize = RING_DESCRIPTOR_SIZE;
-     RxCSR1.field.NumRxD  = RX_RING_SIZE;
-     RTMP_IO_WRITE32(pAdapter, RXCSR1, RxCSR1.word);
--    
-+
-     // Write RXCSR2 register
-     Value = pAdapter->RxRing[0].pa_addr;
-     RTMP_IO_WRITE32(pAdapter, RX_RING_BASE_REG, Value);
- 
-     // Write CSR1 for host ready
--    // Move Host reay to end of ASIC initialization 
-+    // Move Host reay to end of ASIC initialization
-     // to ensure no Rx will perform before ASIC init
-     // RTMP_IO_WRITE32(pAdapter, CSR1, 0x4);
- 
-     // Initialze ASIC for TX & Rx operation
-     NICInitializeAsic(pAdapter);
- 
--#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
--    INIT_WORK(&pAdapter->mlme_work, MlmeWork, (void*)pAdapter);
--#endif
-     DBGPRINT(RT_DEBUG_TRACE, "<-- NICInitializeAdapter\n");
- }
- 
-@@ -1036,13 +1032,13 @@
-     else if (pAdapter->bAcceptPromiscuous == TRUE)
-     {
-         // Register bits with "drop unicast not to me disabled"
--        RTMP_IO_WRITE32(pAdapter, RXCSR0, 0x6e); 
-+        RTMP_IO_WRITE32(pAdapter, RXCSR0, 0x6e);
-     }
-     else
-     {
-         // Standard default register bits.
--        RTMP_IO_WRITE32(pAdapter, RXCSR0, 0x7e); 
--    }  
-+        RTMP_IO_WRITE32(pAdapter, RXCSR0, 0x7e);
-+    }
- 
-     // Clear old FCS jitter before init ASIC
-     RTMP_IO_READ32(pAdapter, CNT0, &Index);
-@@ -1172,10 +1168,10 @@
-     // Init send data structures and related parameters
-     NICInitTransmit(pAdapter);
- 
--    NICInitializeAdapter(pAdapter); 
-+    NICInitializeAdapter(pAdapter);
-     NICInitAsicFromEEPROM(pAdapter);
- 
--    // Switch to current channel, since during reset process, the connection should remains on. 
-+    // Switch to current channel, since during reset process, the connection should remains on.
-     AsicSwitchChannel(pAdapter, pAdapter->PortCfg.Channel);
-     AsicLockChannel(pAdapter, pAdapter->PortCfg.Channel);
- }
-@@ -1200,7 +1196,7 @@
- {
-     if(ptr == buffer)
-         return TRUE;
--    else if (ptr > buffer) 
-+    else if (ptr > buffer)
-     {
-         while (ptr > buffer)
-         {
-@@ -1252,7 +1248,7 @@
-     }
-     else
-         return NULL;
--}   
-+}
-  /**
-   * strstr - Find the first substring in a %NUL terminated string
-   * @s1: The string to be searched
-@@ -1261,7 +1257,7 @@
- char * rtstrstr(const char * s1,const char * s2)
- {
-          int l1, l2;
-- 
-+
-          l2 = strlen(s2);
-          if (!l2)
-                  return (char *) s1;
-@@ -1283,7 +1279,7 @@
-     Arguments:
-         section                     the key of the secion
-         key                         Pointer to key string
--        dest                        Pointer to destination      
-+        dest                        Pointer to destination
-         destsize                    The datasize of the destination
-         buffer                      Pointer to the buffer to start find the key
- 
-@@ -1298,7 +1294,7 @@
- INT RTMPGetKeyParameter(
-     IN  PUCHAR  section,
-     IN  PCHAR   key,
--    OUT PCHAR   dest,   
-+    OUT PCHAR   dest,
-     IN  INT     destsize,
-     IN  PCHAR   buffer)
- {
-@@ -1354,7 +1350,7 @@
-            break;
-     }
- 
--    len = strlen(ptr);    
-+    len = strlen(ptr);
-     memset(dest, 0x00, destsize);
-     strncpy(dest, ptr, len >= destsize ?  destsize: len);
- 
-@@ -1409,7 +1405,7 @@
-     src = PROFILE_PATH;
- 
-     // Save uid and gid used for filesystem access.
--    // Set user and group to 0 (root)   
-+    // Set user and group to 0 (root)
-     orgfsuid = current->fsuid;
-     orgfsgid = current->fsgid;
-     current->fsuid=current->fsgid = 0;
-@@ -1426,7 +1422,7 @@
-         else
-         {
-             /* The object must have a read method */
--            if (srcf->f_op && srcf->f_op->read) 
-+            if (srcf->f_op && srcf->f_op->read)
-             {
-                 memset(buffer, 0x00, MAX_INI_BUFFER_SIZE);
-                 retval=srcf->f_op->read(srcf, buffer, MAX_INI_BUFFER_SIZE, &srcf->f_pos);
-@@ -1502,7 +1498,7 @@
-                         if (ChannelSanity(pAd, Channel) == TRUE)
-                         {
-                             pAd->PortCfg.Channel = Channel;
--                            // If default profile in Registry is an ADHOC network, driver should use the specified channel 
-+                            // If default profile in Registry is an ADHOC network, driver should use the specified channel
-                             // number when starting IBSS the first time, because RaConfig is passive and will not set this
-                             // via OID_802_11_CONFIGURATION upon driver bootup.
-                             pAd->PortCfg.IbssConfig.Channel = pAd->PortCfg.Channel;
-@@ -1571,7 +1567,7 @@
- 
-                         if((ulInfo > 0) && (ulInfo <= MAX_RTS_THRESHOLD))
-                             pAd->PortCfg.RtsThreshold = (USHORT)ulInfo;
--                        else 
-+                        else
-                             pAd->PortCfg.RtsThreshold = MAX_RTS_THRESHOLD;
- 
-                         DBGPRINT(RT_DEBUG_TRACE, "%s::(RTSThreshold=%d)\n", __FUNCTION__, pAd->PortCfg.RtsThreshold);
-@@ -1650,7 +1646,7 @@
-                             {
- 				DBGPRINT(RT_DEBUG_INFO, "MAX_PSP power mode not available - defaulting to CAM\n");
-                             }
--                            else if ((strcmp(tmpbuf, "Fast_PSP") == 0) || (strcmp(tmpbuf, "fast_psp") == 0) 
-+                            else if ((strcmp(tmpbuf, "Fast_PSP") == 0) || (strcmp(tmpbuf, "fast_psp") == 0)
-                                 || (strcmp(tmpbuf, "FAST_PSP") == 0))
-                             {
- 				DBGPRINT(RT_DEBUG_INFO, "FAST_PSP power mode not available - defaulting to CAM\n");
-@@ -1763,7 +1759,7 @@
-                                         break;
-                                     }
-                                 }
--                                
-+
-                                 if (bIsHex)
-                                 {
-                                     pAd->PortCfg.SharedKey[0].KeyLen = KeyLen / 2 ;
-@@ -1773,7 +1769,7 @@
-                                 break;
-                             case 13: //wep 104 Ascii type
-                                 pAd->PortCfg.SharedKey[0].KeyLen = KeyLen;
--                                memcpy(pAd->PortCfg.SharedKey[0].Key, tmpbuf, KeyLen);  
-+                                memcpy(pAd->PortCfg.SharedKey[0].Key, tmpbuf, KeyLen);
-                                 DBGPRINT(RT_DEBUG_TRACE, "%s::(Key1=%s and type=%s)\n", __FUNCTION__, tmpbuf, "Ascii");
-                                 break;
-                             case 26: //wep 104 Hex type
-@@ -1821,7 +1817,7 @@
-                                         break;
-                                     }
-                                 }
--                                
-+
-                                 if (bIsHex)
-                                 {
-                                     pAd->PortCfg.SharedKey[1].KeyLen = KeyLen / 2 ;
-@@ -1831,7 +1827,7 @@
-                                 break;
-                             case 13: //wep 104 Ascii type
-                                 pAd->PortCfg.SharedKey[1].KeyLen = KeyLen;
--                                memcpy(pAd->PortCfg.SharedKey[1].Key, tmpbuf, KeyLen);  
-+                                memcpy(pAd->PortCfg.SharedKey[1].Key, tmpbuf, KeyLen);
-                                 DBGPRINT(RT_DEBUG_TRACE, "%s::(Key2=%s and type=%s)\n", __FUNCTION__, tmpbuf, "Ascii");
-                                 break;
-                             case 26: //wep 104 Hex type
-@@ -1889,7 +1885,7 @@
-                                 break;
-                             case 13: //wep 104 Ascii type
-                                 pAd->PortCfg.SharedKey[2].KeyLen = KeyLen;
--                                memcpy(pAd->PortCfg.SharedKey[2].Key, tmpbuf, KeyLen);  
-+                                memcpy(pAd->PortCfg.SharedKey[2].Key, tmpbuf, KeyLen);
-                                 DBGPRINT(RT_DEBUG_TRACE, "%s::(Key3=%s and type=%s)\n", __FUNCTION__, tmpbuf, "Ascii");
-                                 break;
-                             case 26: //wep 104 Hex type
-@@ -1947,7 +1943,7 @@
-                                 break;
-                             case 13: //wep 104 Ascii type
-                                 pAd->PortCfg.SharedKey[3].KeyLen = KeyLen;
--                                memcpy(pAd->PortCfg.SharedKey[3].Key, tmpbuf, KeyLen);  
-+                                memcpy(pAd->PortCfg.SharedKey[3].Key, tmpbuf, KeyLen);
-                                 DBGPRINT(RT_DEBUG_TRACE, "%s::(Key4=%s and type=%s)\n", __FUNCTION__, tmpbuf, "Ascii");
-                                 break;
-                             case 26: //wep 104 Hex type
-@@ -2023,10 +2019,10 @@
-     {
-         case TX_RING:
-             // We have to clean all descriptos in case some error happened with reset
--            do 
-+            do
-             {
-                 pTxD  = (PTXD_STRUC) pAdapter->TxRing[pAdapter->NextTxDoneIndex].va_addr;
--                        
-+
-                 pTxD->Owner = DESC_OWN_HOST;
-                 pTxD->Valid = FALSE;
- 
-@@ -2036,7 +2032,7 @@
-                 {
-                     pAdapter->NextTxDoneIndex = 0;
-                 }
--        
-+
-             }   while (Count < TX_RING_SIZE);   // We have to scan all TX ring
- 
-             // Check for packet in send tx wait waiting queue
-@@ -2047,7 +2043,7 @@
- 
-         case PRIO_RING:
-             // We have to clean all descriptos in case some error happened with reset
--            do 
-+            do
-             {
-                 pTxD  = (PTXD_STRUC) pAdapter->PrioRing[pAdapter->NextPrioDoneIndex].va_addr;
- 
-@@ -2085,7 +2081,7 @@
- 
-         case RX_RING:
-             // We have to clean all descriptos in case some error happened with reset
--            do 
-+            do
-             {
-                 pRxD  = (PRXD_STRUC) pAdapter->RxRing[pAdapter->CurRxIndex].va_addr;
- 
-@@ -2101,7 +2097,7 @@
- 
-             }   while (Count < RX_RING_SIZE);       // We have to scan all Rx Ring
-             break;
--            
-+
-         default:
-             break;
- 
-@@ -2172,10 +2168,10 @@
- {
-     UINT i;
- 
--    DBGPRINT(RT_DEBUG_TRACE, "--> PortCfgInit\n");    
-+    DBGPRINT(RT_DEBUG_TRACE, "--> PortCfgInit\n");
- 
-     pAdapter->PortCfg.UseBGProtection = 0;    // 0: AUTO
--    
-+
-     pAdapter->PortCfg.CapabilityInfo = 0x0000;
-     pAdapter->PortCfg.Psm = PWR_ACTIVE;
-     pAdapter->PortCfg.BeaconPeriod = 100;     // in mSec
-@@ -2207,7 +2203,7 @@
-     pAdapter->PortCfg.LastMicErrorTime = 0;
-     pAdapter->PortCfg.MicErrCnt        = 0;
-     pAdapter->PortCfg.bBlockAssoc      = FALSE;
--    pAdapter->PortCfg.WpaState         = SS_NOTUSE; 
-+    pAdapter->PortCfg.WpaState         = SS_NOTUSE;
- 
-     pAdapter->PortCfg.RtsThreshold = 2347;
-     pAdapter->PortCfg.FragmentThreshold = 2346;
-@@ -2261,7 +2257,7 @@
-     pAdapter->PortCfg.PhyMode = 0xff;
- //  RTMPSetPhyMode(pAdapter, PHY_11BG_MIXED);   // default in 11BG mixed mode
- //  pAdapter->PortCfg.Channel = FirstChannel(pAdapter);
--    pAdapter->PortCfg.Dsifs = 10;      // in units of usec 
-+    pAdapter->PortCfg.Dsifs = 10;      // in units of usec
-     pAdapter->PortCfg.TxPreambleInUsed = Rt802_11PreambleLong; // use Long preamble on TX by defaut
- 
-     // user desired power mode
-@@ -2274,7 +2270,7 @@
-     pAdapter->bAcceptMulticast = FALSE;
-     pAdapter->bAcceptBroadcast = TRUE;
-     pAdapter->bAcceptAllMulticast = TRUE;
--    
-+
-     // parameters to be used when this STA starts a new ADHOC network
-     pAdapter->PortCfg.IbssConfig.BeaconPeriod = 100;
-     pAdapter->PortCfg.IbssConfig.AtimWin = 0;
-@@ -2363,8 +2359,8 @@
-     char *srcptr;
-     PUCHAR destTemp;
- 
--    srcptr = src;   
--    destTemp = (PUCHAR) dest; 
-+    srcptr = src;
-+    destTemp = (PUCHAR) dest;
- 
-     while(destlen--)
-     {
-@@ -2376,7 +2372,7 @@
- 
- /*
- 	========================================================================
--	
-+
- 	Routine Description:
- 		Init timer objects
- 
-@@ -2390,7 +2386,7 @@
- 		None
- 
- 	Note:
--		
-+
- 	========================================================================
- */
- VOID	RTMPInitTimer(
-@@ -2406,7 +2402,7 @@
- 
- /*
- 	========================================================================
--	
-+
- 	Routine Description:
- 		Init timer objects
- 
-@@ -2418,7 +2414,7 @@
- 		None
- 
- 	Note:
--		
-+
- 	========================================================================
- */
- VOID	RTMPSetTimer(
-@@ -2434,7 +2430,7 @@
- 
- /*
- 	========================================================================
--	
-+
- 	Routine Description:
- 		Cancel timer objects
- 
-@@ -2446,14 +2442,15 @@
- 
- 	Note:
- 		Reset NIC to initial state AS IS system boot up time.
--		
-+
- 	========================================================================
- */
- VOID	RTMPCancelTimer(
- 	IN	PRALINK_TIMER_STRUCT	pTimer)
- {
- #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,27))
--	del_timer_sync(&pTimer->TimerObj);
-+	if (timer_pending(&pTimer->TimerObj))
-+		del_timer_sync(&pTimer->TimerObj);
- #else
- 	del_timer(&pTimer->TimerObj);
- #endif
-diff -Nur rt2500-1.1.0-b4/Module/rtmp_main.c rt2500-cvs-2007061011/Module/rtmp_main.c
---- rt2500-1.1.0-b4/Module/rtmp_main.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/rtmp_main.c	2007-05-29 05:49:17.000000000 +0200
-@@ -1,35 +1,35 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: rtmp_main.c
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      PaulL           25th Nov 02     Initial code     
-- *      MarkW           8th  Dec 04     Baseline code  
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      PaulL           25th Nov 02     Initial code
-+ *      MarkW           8th  Dec 04     Baseline code
-  *      MarkW (rt2400)  8th  Dec 04     Promisc mode support
-  *      Flavio (rt2400) 8th  Dec 04     Elegant irqreturn_t handling
-  *      Flavio (rt2400) 8th  Dec 04     Remove local alloc_netdev
-@@ -45,26 +45,24 @@
-  *      Tor Petterson   19th Apr 05     Power management: Suspend and Resume
-  *      MarkW           15th Jul 05     Disable File Config under 4KSTACK
-  *      IvD             15th Jul 05     Support File Config with 4KSTACK
-- ***************************************************************************/ 
-+ ***************************************************************************/
- 
- #include "rt_config.h"
- 
--unsigned long IrqFlags;
--
- //  Global static variable, Debug level flag
- // Don't hide this behind debug define. There should be as little difference between debug and no-debug as possible.
- #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
--int debug = 0;	/* Default is off. */
-+static int debug = 0;	/* Default is off. */
- MODULE_PARM(debug, "i");
--MODULE_PARM_DESC(debug, "Enable level: accepted values: 1 to switch debug on, 0 to switch debug off.");
-+MODULE_PARM_DESC(debug, "Debug mask: n selects filter, 0 for none");
- 
- static char *ifname = NULL ;
- MODULE_PARM(ifname, "s");
- MODULE_PARM_DESC(ifname, "Network device name (default ra%d)");
- #else
--int debug = 0;	/* Default is off. */
-+static int debug = 0;	/* Default is off. */
- module_param(debug, int, 0);
--MODULE_PARM_DESC(debug, "Enable level: accepted values: 1 to switch debug on, 0 to switch debug off.");
-+MODULE_PARM_DESC(debug, "Debug mask: n selects filter, 0 for none");
- 
- static char *ifname = NULL ;
- module_param(ifname, charp, 0);
-@@ -79,78 +77,130 @@
- 
- extern	const struct iw_handler_def rt2500_iw_handler_def;
- 
-+#ifdef RT2500_DBG
-+VOID rt2500_setdbg(long mask)
-+{
-+	debug = mask;
-+}
-+INT rt2500_dbgprint(int mask, const char *fmt, ...)
-+{
-+	if(mask & debug) {
-+		va_list args;
-+		int i;
-+
-+		va_start(args, fmt);
-+
-+		//http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.9
-+		#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,9))
-+		i = vprintk(fmt, args);
-+
-+		#else
-+		// Stack is safe because data is buffered before control returns
-+		char printk_buf[160];	// Longest observed line is 147 chars.
-+
-+		vsnprintf(printk_buf, sizeof(printk_buf), fmt, args);
-+		i = printk(printk_buf);
-+		#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,9)) */
-+
-+		va_end(args);
-+		return i;
-+	}
-+	return 0;
-+}
-+#endif
-+
-+#ifdef RT2X00DEBUGFS
- /*
-  * Register layout information.
-  */
- #define CSR_REG_BASE			0x0000
- #define CSR_REG_SIZE			0x0174
- #define EEPROM_BASE			0x0000
--#define EEPROM_SIZE			0x01ff
-+#define EEPROM_SIZE			0x0200
-+#define BBP_SIZE			0x0040
- 
--#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
--static void
--rt2x00_get_drvinfo(struct net_device *net_dev,
--	struct ethtool_drvinfo *drvinfo)
-+static void rt2500pci_read_csr(void *dev, const unsigned long word,
-+		void *data)
- {
--	PRTMP_ADAPTER   pAd = net_dev->priv;
-+	RTMP_ADAPTER *pAd = dev;
- 
--	strcpy(drvinfo->driver, NIC_DEVICE_NAME);
--	strcpy(drvinfo->version, DRV_VERSION);
--	strcpy(drvinfo->bus_info, pci_name(pAd->pPci_Dev));
-+	RTMP_IO_READ32(pAd, CSR_REG_BASE + (word * sizeof(u32)), (u32*)data);
- }
- 
--static int
--rt2x00_get_regs_len(struct net_device *net_dev)
-+static void rt2500pci_write_csr(void *dev, const unsigned long word,
-+	void *data)
- {
--	return CSR_REG_SIZE;
-+	RTMP_ADAPTER *pAd = dev;
-+
-+	RTMP_IO_WRITE32(pAd, word, *((u32*)data));
- }
- 
--static void
--rt2x00_get_regs(struct net_device *net_dev,
--	struct ethtool_regs *regs, void *data)
-+static void rt2500pci_read_eeprom(void *dev, const unsigned long word,
-+		void *data)
- {
--	PRTMP_ADAPTER   pAd = net_dev->priv;
--	unsigned int counter;
-+	RTMP_ADAPTER *pAd = dev;
- 
--	regs->len = CSR_REG_SIZE;
-+	*((u16*)data) = RTMP_EEPROM_READ16(pAd, word * sizeof(u16));
-+}
- 
--	for (counter = 0; counter < CSR_REG_SIZE; counter += sizeof(u32)) {
--		RTMP_IO_READ32(pAd, CSR_REG_BASE + counter, (u32*)data);
--		data += sizeof(u32);
--	}
-+static void rt2500pci_write_eeprom(void *dev, const unsigned long word,
-+	void *data)
-+{
-+	/* DANGEROUS, DON'T DO THIS! */
- }
- 
--static int
--rt2x00_get_eeprom_len(struct net_device *net_dev)
-+static void rt2500pci_read_bbp(void *dev, const unsigned long word,
-+		void *data)
- {
--	return EEPROM_SIZE;
-+	RTMP_ADAPTER *pAd = dev;
-+
-+	RTMP_BBP_IO_READ32_BY_REG_ID(pAd, word, ((u8*)data));
- }
- 
--static int
--rt2x00_get_eeprom(struct net_device *net_dev,
--	struct ethtool_eeprom *eeprom, u8 *data)
-+static void rt2500pci_write_bbp(void *dev, const unsigned long word,
-+	void *data)
- {
--	PRTMP_ADAPTER   pAd = net_dev->priv;
--	unsigned int counter;
-+	RTMP_ADAPTER *pAd = dev;
- 
--	for (counter = eeprom->offset; counter < eeprom->len; counter += sizeof(u16)) {
--		u16 value = RTMP_EEPROM_READ16(pAd, CSR_REG_BASE + counter);
--		memcpy(data, &value, sizeof(u16));
--		data += sizeof(u16);
--	}
-+	RTMP_BBP_IO_WRITE32_BY_REG_ID(pAd, word, *((u8*)data));
-+}
- 
--	return 0;
-+static void rt2500pci_open_debugfs(RTMP_ADAPTER *pAd)
-+{
-+	struct rt2x00debug *debug = &pAd->debug;
-+
-+	debug->owner 			= THIS_MODULE;
-+	debug->mod_name			= DRV_NAME;
-+	debug->mod_version		= DRV_VERSION;
-+	debug->reg_csr.read		= rt2500pci_read_csr;
-+	debug->reg_csr.write		= rt2500pci_write_csr;
-+	debug->reg_csr.word_size	= sizeof(u32);
-+	debug->reg_csr.length		= CSR_REG_SIZE;
-+	debug->reg_eeprom.read		= rt2500pci_read_eeprom;
-+	debug->reg_eeprom.write		= rt2500pci_write_eeprom;
-+	debug->reg_eeprom.word_size	= sizeof(u16);
-+	debug->reg_eeprom.length	= EEPROM_SIZE;
-+	debug->reg_bbp.read		= rt2500pci_read_bbp;
-+	debug->reg_bbp.write		= rt2500pci_write_bbp;
-+	debug->reg_bbp.word_size	= sizeof(u8);
-+	debug->reg_bbp.length		= BBP_SIZE;
-+	debug->dev 			= pAd;
-+
-+	snprintf(debug->intf_name, sizeof(debug->intf_name),
-+		"%s", pAd->net_dev->name);
-+
-+	if (rt2x00debug_register(debug))
-+		printk(KERN_ERR "Failed to register debug handler.\n");
- }
- 
--static struct ethtool_ops rt2x00_ethtool_ops = {
--	.get_drvinfo	= rt2x00_get_drvinfo,
--	.get_regs_len	= rt2x00_get_regs_len,
--	.get_regs	= rt2x00_get_regs,
--	.get_link	= ethtool_op_get_link,
--	.get_eeprom_len	= rt2x00_get_eeprom_len,
--	.get_eeprom	= rt2x00_get_eeprom,
--};
--#endif
-+static void rt2500pci_close_debugfs(RTMP_ADAPTER *pAd)
-+{
-+	rt2x00debug_deregister(&pAd->debug);
-+}
-+#else /* RT2X00DEBUGFS */
-+static inline void rt2500pci_open_debugfs(RTMP_ADAPTER *pAd){}
-+static inline void rt2500pci_close_debugfs(RTMP_ADAPTER *pAd){}
-+#endif /* RT2X00DEBUGFS */
- 
- static INT __devinit RT2500_init_one (
-     IN  struct pci_dev              *pPci_Dev,
-@@ -158,6 +208,7 @@
- {
-     INT rc;
- 
-+	if (debug) {}	// shuts up compiler when RT2500_DBG not defined
-     // wake up and enable device
-     if (pci_enable_device (pPci_Dev))
-     {
-@@ -176,7 +227,7 @@
- // PCI device probe & initialization function
- //
- INT __devinit   RT2500_probe(
--    IN  struct pci_dev              *pPci_Dev, 
-+    IN  struct pci_dev              *pPci_Dev,
-     IN  const struct pci_device_id  *ent)
- {
-     struct  net_device      *net_dev;
-@@ -194,7 +245,7 @@
- 
-     // alloc_etherdev() will set net_dev->name
-     net_dev = alloc_etherdev(sizeof(RTMP_ADAPTER));
--    if (net_dev == NULL) 
-+    if (net_dev == NULL)
-     {
-         DBGPRINT(RT_DEBUG_TRACE, "init_ethernet failed\n");
-         goto err_out;
-@@ -204,9 +255,8 @@
- 
-     #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
-        SET_NETDEV_DEV(net_dev, &(pPci_Dev->dev));
--       SET_ETHTOOL_OPS(net_dev, &rt2x00_ethtool_ops);
-     #endif
--        
-+
-     if (pci_request_regions(pPci_Dev, print_name))
-         goto err_out_free_netdev;
- 
-@@ -215,10 +265,10 @@
- 
-     // map physical address to virtual address for accessing register
-     csr_addr = (unsigned long) ioremap(pci_resource_start(pPci_Dev, 0), pci_resource_len(pPci_Dev, 0));
--    if (!csr_addr) 
-+    if (!csr_addr)
-     {
--        DBGPRINT(RT_DEBUG_TRACE, "ioremap failed for device %s, region 0x%X @ 0x%lX\n",
--            print_name, (ULONG)pci_resource_len(pPci_Dev, 0), pci_resource_start(pPci_Dev, 0));
-+        DBGPRINT(RT_DEBUG_TRACE, "ioremap failed for device %s, region 0x%X @ 0x%X\n",
-+            print_name, (ULONG)pci_resource_len(pPci_Dev, 0), (ULONG)pci_resource_start(pPci_Dev, 0));
-         goto err_out_free_res;
-     }
- 
-@@ -233,7 +283,7 @@
- 
-     // Read MAC address
-     NICReadAdapterInfo(pAd);
--    
-+
-     RTMP_IO_READ32(pAd, CSR3, &StaMacReg0.word);
-     RTMP_IO_READ32(pAd, CSR4, &StaMacReg1.word);
-     net_dev->dev_addr[0] = StaMacReg0.field.Byte0;
-@@ -256,13 +306,13 @@
- #if WIRELESS_EXT < 17
-     net_dev->get_wireless_stats = RT2500_get_wireless_stats;
- #endif
--    net_dev->wireless_handlers = (struct iw_handler_def *) &rt2500_iw_handler_def;	
-+    net_dev->wireless_handlers = (struct iw_handler_def *) &rt2500_iw_handler_def;
- #endif
- 
-     net_dev->set_multicast_list = RT2500_set_rx_mode;
-     net_dev->do_ioctl = RT2500_ioctl;
-     net_dev->set_mac_address = rt2500_set_mac_address;
--    
-+
- 
-     // register_netdev() will call dev_alloc_name() for us
-     // TODO: Remove the following line to keep the default eth%d name
-@@ -284,8 +334,8 @@
-     if (Status != NDIS_STATUS_SUCCESS)
- 		goto err_out_unmap;
- 
--    DBGPRINT(RT_DEBUG_TRACE, "%s: at 0x%lx, VA 0x%lx, IRQ %d. \n", 
--        net_dev->name, pci_resource_start(pPci_Dev, 0), (unsigned long)csr_addr, pPci_Dev->irq);
-+    DBGPRINT(RT_DEBUG_TRACE, "%s: at 0x%x, VA 0x%lx, IRQ %d. \n",
-+        net_dev->name, (ULONG)pci_resource_start(pPci_Dev, 0), (unsigned long)csr_addr, pPci_Dev->irq);
- 
-     // Set driver data
-     pci_set_drvdata(pPci_Dev, net_dev);
-@@ -295,15 +345,17 @@
-     // All this occurs while the net iface is down
-     // iwconfig can then be used to configure card BEFORE
-     // ifconfig ra0 up is applied.
--    // Note the RT2500STA.dat file will still overwrite settings 
-+    // Note the RT2500STA.dat file will still overwrite settings
-     // but it is useful for the settings iwconfig doesn't let you at
--    PortCfgInit(pAd); 
-+    PortCfgInit(pAd);
- 
- 	MlmeQueueInit(&pAd->Mlme.Queue);	// (never fails)
- 
-     // Build channel list for default physical mode
-     BuildChannelList(pAd);
- 
-+	rt2500pci_open_debugfs(pAd);
-+
-     return 0;
- 
- err_out_unmap:
-@@ -447,7 +499,7 @@
- 
-     if (pAdapter->PortCfg.BssType == BSS_MONITOR && pAdapter->PortCfg.MallowRFMONTx != TRUE)
-     {
--       dev_kfree_skb_irq(skb); 
-+       dev_kfree_skb_irq(skb);
-        return 0;
-     }
- 
-@@ -465,7 +517,7 @@
-         // This function has to manage NdisSendComplete return call within its routine
-         // NdisSendComplete will acknowledge upper layer in two steps.
-         // 1. Within Packet Enqueue, set the NDIS_STATUS_PENDING
--        // 2. Within TxRingTxDone / PrioRingTxDone call NdisSendComplete with final status          
-+        // 2. Within TxRingTxDone / PrioRingTxDone call NdisSendComplete with final status
-         // initial skb->data_len=0, we will use this variable to store data size when fragment(in TKIP)
-         // and skb->len is actual data len
-         skb->data_len = skb->len;
-@@ -482,7 +534,7 @@
-     // There are two place calling dequeue for TX ring.
-     // 1. Here, right after queueing the frame.
-     // 2. At the end of TxRingTxDone service routine.
--    if ((!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS)) && 
-+    if ((!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS)) &&
-         (!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_RADIO_OFF)) &&
-         (!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_RESET_IN_PROGRESS)))
-     {
-@@ -504,7 +556,7 @@
-     Arguments:
-         irq                         interrupt line
-         dev_instance                Pointer to net_device
--        rgs                         store process's context before entering ISR, 
-+        rgs                         store process's context before entering ISR,
-                                     this parameter is just for debug purpose.
- 
-     Return Value:
-@@ -514,10 +566,16 @@
- 
-     ========================================================================
- */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
- irqreturn_t RTMPIsr(
--    IN  INT             irq, 
--    IN  VOID            *dev_instance, 
-+    IN  INT             irq,
-+    IN  VOID            *dev_instance,
-     IN  struct pt_regs  *rgs)
-+#else
-+irqreturn_t RTMPIsr(
-+    IN  INT             irq,
-+    IN  VOID            *dev_instance)
-+#endif
- {
-     struct net_device   *net_dev = dev_instance;
-     PRTMP_ADAPTER       pAdapter = net_dev->priv;
-@@ -643,29 +701,29 @@
- 	if(!is_valid_ether_addr(&mac->sa_data[0]))
- 		return -EINVAL;
- 
--#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,20)) 	
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,20))
- 	BUG_ON(net_dev->addr_len != ETH_ALEN);
--#endif	
--	
-+#endif
-+
- 	memcpy(net_dev->dev_addr, mac->sa_data, ETH_ALEN);
- 	memcpy(pAd->CurrentAddress, mac->sa_data, ETH_ALEN);
--	
-+
- 	memset(&set_mac, 0x00, sizeof(INT));
- 	set_mac = (net_dev->dev_addr[0]) |
- 			(net_dev->dev_addr[1] << 8) |
- 			(net_dev->dev_addr[2] << 16) |
- 			(net_dev->dev_addr[3] << 24);
--	
-+
- 	RTMP_IO_WRITE32(pAd, CSR3, set_mac);
--	
-+
- 	memset(&set_mac, 0x00, sizeof(INT));
- 	set_mac = (net_dev->dev_addr[4]) |
- 			(net_dev->dev_addr[5] << 8);
--	
-+
- 	RTMP_IO_WRITE32(pAd, CSR4, set_mac);
--	
-+
- 	printk(KERN_INFO "***rt2x00***: Info - Mac address changed to: %02x:%02x:%02x:%02x:%02x:%02x.\n", net_dev->dev_addr[0], net_dev->dev_addr[1], net_dev->dev_addr[2], net_dev->dev_addr[3], net_dev->dev_addr[4], net_dev->dev_addr[5]);
--	
-+
- 	return 0;
- }
- 
-@@ -697,11 +755,13 @@
- 
-     pAd->iw_stats.status = 0;           // Status - device dependent for now
- 
--    pAd->iw_stats.qual.qual = pAd->Mlme.ChannelQuality;//pAd->Mlme.RoamCqi;            // link quality (%retries, SNR, %missed beacons or better...)
--    pAd->iw_stats.qual.level = pAd->PortCfg.LastRssi - RSSI_TO_DBM_OFFSET;   // signal level (dBm)
--        
-+    pAd->iw_stats.qual.qual = pAd->Mlme.ChannelQuality;// link quality (%retries, SNR, %missed beacons or better...)
-+    pAd->iw_stats.qual.level = abs(pAd->PortCfg.LastRssi);   // signal level (dBm)
-+    pAd->iw_stats.qual.level += 256 - RSSI_TO_DBM_OFFSET;
-+
-     pAd->iw_stats.qual.noise = (pAd->PortCfg.LastR17Value > BBP_R17_DYNAMIC_UP_BOUND) ? BBP_R17_DYNAMIC_UP_BOUND : ((ULONG) pAd->PortCfg.LastR17Value);           // // noise level (dBm)
--    pAd->iw_stats.qual.updated = 3;     // Flags to know if updated
-+    pAd->iw_stats.qual.noise += 256 - 143;
-+    pAd->iw_stats.qual.updated = 1;     // Flags to know if updated
- 
-     pAd->iw_stats.discard.nwid = 0;     // Rx : Wrong nwid/essid
-     pAd->iw_stats.miss.beacon = 0;      // Missed beacons/superframe
-@@ -791,7 +851,7 @@
-     IN  struct net_device *net_dev)
- {
-     RTMP_ADAPTER *pAd;
--    pAd = net_dev->priv; 
-+    pAd = net_dev->priv;
-     if (pAd->PortCfg.BssType == BSS_MONITOR)
-     {
-         RTMP_IO_WRITE32(pAd, RXCSR0, 0x46);
-@@ -808,7 +868,7 @@
-         pAd->bAcceptPromiscuous = FALSE;
-         RTMP_IO_WRITE32(pAd, RXCSR0, 0x7e);
-         DBGPRINT(RT_DEBUG_TRACE, "rt2500 acknowledge MONITOR/PROMISC off\n");
--    }   
-+    }
- 
- }
- 
-@@ -867,7 +927,9 @@
-     IN  struct pci_dev  *pPci_Dev)
- {
-     struct net_device   *net_dev = pci_get_drvdata(pPci_Dev);
--    // RTMP_ADAPTER        *pAd = net_dev->priv;
-+	RTMP_ADAPTER	*pAd = netdev_priv(net_dev);
-+
-+	rt2500pci_close_debugfs(pAd);
- 
-     // Free Ring buffers
-     RTMPFreeDMAMemory(net_dev->priv);
-@@ -915,7 +977,7 @@
- 
-     if(pAdapter->PortCfg.bRadio)
-         MlmeRadioOff(pAdapter);
--    
-+
- #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14))
- 	printk(KERN_NOTICE "%s: got suspend request (state %d)\n",
- 		dev->name, state);
-@@ -944,7 +1006,11 @@
-     PRTMP_ADAPTER pAdapter = (PRTMP_ADAPTER) dev->priv;
-     int status;
- 
--    pci_enable_device(pdev);
-+	// FIXME: code should process error case correctly
-+	if (pci_enable_device(pdev)) {
-+		printk(KERN_ERR "rt2500: could not resume from suspend");
-+		return -EIO;
-+	}
- 
-     printk(KERN_NOTICE "%s: got resume request\n", dev->name);
- 
-@@ -991,7 +1057,7 @@
-     suspend:    rt2500_suspend,
-     resume:     rt2500_resume,
- #endif /* CONFIG_PM */
--#if LINUX_VERSION_CODE >= 0x20412 || BIG_ENDIAN == TRUE || RTMP_EMBEDDED == TRUE
-+#if LINUX_VERSION_CODE >= 0x20412 || BIG_ENDIAN == TRUE
-     remove:     __devexit_p(RT2500_remove_one),
- #else
-     remove:     __devexit(RT2500_remove_one),
-diff -Nur rt2500-1.1.0-b4/Module/rtmp_tkip.c rt2500-cvs-2007061011/Module/rtmp_tkip.c
---- rt2500-1.1.0-b4/Module/rtmp_tkip.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/rtmp_tkip.c	2007-03-21 05:25:35.000000000 +0100
-@@ -1,125 +1,125 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: rtmp_tkip.c
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      PaulW           25th Feb 02     Initial code     
-- *      MarkW           8th  Dec 04     Baseline code  
-- ***************************************************************************/ 
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      PaulW           25th Feb 02     Initial code
-+ *      MarkW           8th  Dec 04     Baseline code
-+ ***************************************************************************/
- 
- #include	"rt_config.h"
- 
--// Rotation functions on 32 bit values 
-+// Rotation functions on 32 bit values
- #define ROL32( A, n )   ( ((A) << (n)) | ( ((A)>>(32-(n))) ) )
--#define ROR32( A, n )   ROL32( (A), 32-(n) ) 
-+#define ROR32( A, n )   ROL32( (A), 32-(n) )
- 
- /*
- 	========================================================================
- 
- 	Routine	Description:
--		Convert from UCHAR[] to ULONG in a portable way 
--		
-+		Convert from UCHAR[] to ULONG in a portable way
-+
- 	Arguments:
-       pMICKey		pointer to MIC Key
--		
-+
- 	Return Value:
- 		None
- 
- 	Note:
--		
-+
- 	========================================================================
- */
--ULONG	RTMPTkipGetUInt32( 	
-+ULONG	RTMPTkipGetUInt32(
- 	IN	PUCHAR	pMICKey)
--{  	
--	ULONG	res = 0; 
-+{
-+	ULONG	res = 0;
- 	int		i;
--	
--	for (i = 0; i < 4; i++) 
--	{ 
--		res |= (*pMICKey++) << (8 * i); 
-+
-+	for (i = 0; i < 4; i++)
-+	{
-+		res |= (*pMICKey++) << (8 * i);
- 	}
- 
--	return res; 
--} 
-+	return res;
-+}
- 
- /*
- 	========================================================================
- 
- 	Routine	Description:
--		Convert from ULONG to UCHAR[] in a portable way 
--		
-+		Convert from ULONG to UCHAR[] in a portable way
-+
- 	Arguments:
-       pDst			pointer to destination for convert ULONG to UCHAR[]
-       val			the value for convert
--		
-+
- 	Return Value:
- 		None
- 
- 	Note:
--		
-+
- 	========================================================================
- */
- VOID	RTMPTkipPutUInt32(
- 	IN OUT	PUCHAR		pDst,
--	IN		ULONG		val)					  
--{ 	
-+	IN		ULONG		val)
-+{
- 	int i;
--	
--	for(i = 0; i < 4; i++) 
--	{ 
--		*pDst++ = (UCHAR) val; 
--		val >>= 8; 
--	} 
--} 
-+
-+	for(i = 0; i < 4; i++)
-+	{
-+		*pDst++ = (UCHAR) val;
-+		val >>= 8;
-+	}
-+}
- 
- /*
- 	========================================================================
- 
- 	Routine	Description:
- 		Calculate the MIC Value.
--		
-+
- 	Arguments:
-       pAdapter		Pointer to our adapter
-       pSrc			Pointer to source data for Calculate MIC Value
-       Len			Indicate the length of the source data
--		
-+
- 	Return Value:
- 		None
- 
- 	Note:
--		
-+
- 	========================================================================
- */
--VOID	RTMPTkipAppend( 
--	IN	PTKIP_KEY_INFO	pTkip,	
-+VOID	RTMPTkipAppend(
-+	IN	PTKIP_KEY_INFO	pTkip,
- 	IN	PUCHAR			pSrc,
--	IN	UINT			nBytes)						  
-+	IN	UINT			nBytes)
- {
-     register ULONG  M, L, R, nBytesInM;
- 
-@@ -128,7 +128,7 @@
-     R = pTkip->R;
-     nBytesInM = pTkip->nBytesInM;
-     M = pTkip->M;
--    
-+
-     // Alignment case
-     if((nBytesInM == 0) && ((((unsigned long)pSrc) & 0x3) == 0))
-     {
-@@ -141,7 +141,7 @@
- #endif
-             pSrc += 4;
-             nBytes -= 4;
--            
-+
-             L ^= M;
-             R ^= ROL32( L, 17 );
-             L += R;
-@@ -154,7 +154,7 @@
-         }
-         nBytesInM = 0;
-         M = 0;
--        
-+
-         while(nBytes > 0)
-         {
-             M |= (*pSrc << (8* nBytesInM));
-@@ -162,7 +162,7 @@
-             nBytesInM++;
-             pSrc++;
-             nBytes--;
--            
-+
-             if( nBytesInM >= 4 )
-             {
-                 L ^=  M;
-@@ -186,10 +186,10 @@
-         {
-             M |= (*pSrc << (8* nBytesInM));
-             nBytesInM++;
--            
-+
-             pSrc++;
-             nBytes--;
--            
-+
-             if( nBytesInM >= 4 )
-             {
-                 L ^=  M;
-@@ -207,23 +207,23 @@
-             }
-         }
-     }
--    
-+
-     // load data from register to memory
-     pTkip->M = M;
-     pTkip->nBytesInM = nBytesInM;
-     pTkip->L = L;
-     pTkip->R = R;
--} 
-+}
- 
- /*
- 	========================================================================
- 
- 	Routine	Description:
- 		Get the MIC Value.
--		
-+
- 	Arguments:
-       pAdapter		Pointer to our adapter
--		
-+
- 	Return Value:
- 		None
- 
-@@ -231,7 +231,7 @@
- 		the MIC Value is store in pAdapter->PrivateInfo.MIC
- 	========================================================================
- */
--VOID	RTMPTkipGetMIC( 
-+VOID	RTMPTkipGetMIC(
- 	IN	PTKIP_KEY_INFO	pTkip)
- {
-     static unsigned char Last[] = {"\x5a\x00\x00\x00\x00\x00\x00\x00"};
-@@ -242,14 +242,14 @@
-     // The appendByte function has already computed the result.
-     RTMPTkipPutUInt32(pTkip->MIC, pTkip->L);
-     RTMPTkipPutUInt32(pTkip->MIC + 4, pTkip->R);
--} 
-+}
- 
- /*
- 	========================================================================
- 
- 	Routine	Description:
- 		Compare MIC value of received MSDU
--		
-+
- 	Arguments:
- 		pAdapter	Pointer to our adapter
- 		pSrc        Pointer to the received Plain text data
-@@ -257,13 +257,13 @@
- 		pSA			Pointer to SA address
- 		pMICKey		pointer to MIC Key
- 		Len         the length of the received plain text data exclude MIC value
--		
-+
- 	Return Value:
- 		TRUE        MIC value matched
- 		FALSE       MIC value mismatched
--		
-+
- 	Note:
--	
-+
- 	========================================================================
- */
- BOOLEAN	RTMPTkipCompareMICValue(
-@@ -288,19 +288,19 @@
- 	RTMPTkipAppend(&pAdapter->PrivateInfo.Rx, pSA, 6);
- 	// Priority + 3 bytes of 0
- 	RTMPTkipAppend(&pAdapter->PrivateInfo.Rx, Priority, 4);
--	
-+
- 	// Calculate MIC value from plain text data
- 	RTMPTkipAppend(&pAdapter->PrivateInfo.Rx, pSrc, Len);
- 
- 	// Get MIC value from decrypted plain data
- 	RTMPTkipGetMIC(&pAdapter->PrivateInfo.Rx);
--		
-+
- 	// Move MIC value from MSDU, this steps should move to data path.
- 	// Since the MIC value might cross MPDUs.
- 	if(!NdisEqualMemory(pAdapter->PrivateInfo.Rx.MIC, pSrc + Len, 8))
- 	{
- 	    INT		i;
--	    
-+
- 		DBGPRINT(RT_DEBUG_ERROR, "! TKIP MIC Error !\n");  //MIC error.
- 		DBGPRINT(RT_DEBUG_INFO, "Orig MIC value =");  //MIC error.
- 		for (i = 0; i < 8; i++)
-@@ -324,7 +324,7 @@
- 
- 	Routine	Description:
- 		Compare MIC value of received MSDU
--		
-+
- 	Arguments:
- 		pAdapter	Pointer to our adapter
- 		pLLC		LLC header
-@@ -333,13 +333,13 @@
- 		pSA			Pointer to SA address
- 		pMICKey		pointer to MIC Key
- 		Len         the length of the received plain text data exclude MIC value
--		
-+
- 	Return Value:
- 		TRUE        MIC value matched
- 		FALSE       MIC value mismatched
--		
-+
- 	Note:
--	
-+
- 	========================================================================
- */
- BOOLEAN	RTMPTkipCompareMICValueWithLLC(
-@@ -352,13 +352,13 @@
- 	IN	UINT			Len)
- {
-     static UCHAR    Priority[4] = {"\x00\x00\x00\x00"};
--    
-+
-     // Init MIC value calculation and reset the message
-     pAdapter->PrivateInfo.Rx.L = RTMPTkipGetUInt32(pMICKey);
-     pAdapter->PrivateInfo.Rx.R = RTMPTkipGetUInt32(pMICKey + 4);
-     pAdapter->PrivateInfo.Rx.nBytesInM = 0;
-     pAdapter->PrivateInfo.Rx.M = 0;
--	
-+
-     // DA
-     RTMPTkipAppend(&pAdapter->PrivateInfo.Rx, pDA, 6);
-     // SA
-@@ -405,20 +405,20 @@
- 	========================================================================
- 
- 	Routine	Description:
--		Copy frame from waiting queue into relative ring buffer and set 
-+		Copy frame from waiting queue into relative ring buffer and set
- 	appropriate ASIC register to kick hardware transmit function
--		
-+
- 	Arguments:
- 		pAdapter		Pointer	to our adapter
- 		PNDIS_PACKET	Pointer to Ndis Packet for MIC calculation
- 		pEncap			Pointer to LLC encap data
- 		LenEncap		Total encap length, might be 0 which indicates no encap
--		
-+
- 	Return Value:
- 		None
- 
- 	Note:
--	
-+
- 	========================================================================
- */
- VOID RTMPCalculateMICValue(
-@@ -430,21 +430,21 @@
- {
-     PUCHAR          pSrc;
-     static UCHAR    Priority[4] = {"\x00\x00\x00\x00"};
--    
-+
-     pSrc = (PUCHAR) skb->data;
--    
-+
-     // Init MIC value calculation and reset the message
-     pAdapter->PrivateInfo.Tx.L = RTMPTkipGetUInt32(pWpaKey->TxMic);
-     pAdapter->PrivateInfo.Tx.R = RTMPTkipGetUInt32(pWpaKey->TxMic + 4);
-     pAdapter->PrivateInfo.Tx.nBytesInM = 0;
-     pAdapter->PrivateInfo.Tx.M = 0;
--	
-+
-     // DA & SA field
-     RTMPTkipAppend(&pAdapter->PrivateInfo.Tx, pSrc, 12);
--    
-+
-     // Priority + 3 bytes of 0
-     RTMPTkipAppend(&pAdapter->PrivateInfo.Tx, Priority, 4);
--    
-+
-     if (LenEncap > 0)
-     {
-         // LLC encapsulation
-@@ -454,7 +454,7 @@
-     }
-     else
-         RTMPTkipAppend(&pAdapter->PrivateInfo.Tx, pSrc + 14, skb->len - 14);
--    
-+
-     // Compute the final MIC Value
-     RTMPTkipGetMIC(&pAdapter->PrivateInfo.Tx);
- }
-diff -Nur rt2500-1.1.0-b4/Module/rtmp_type.h rt2500-cvs-2007061011/Module/rtmp_type.h
---- rt2500-1.1.0-b4/Module/rtmp_type.h	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/rtmp_type.h	2007-03-21 05:25:35.000000000 +0100
-@@ -1,36 +1,36 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
- 
-- /*************************************************************************** 
-+ /***************************************************************************
-  *      Module Name: rtmp_type.h
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      PaulL           2md  Jan 03     Initial code     
-- *      MarkW           8th  Dec 04     Baseline code  
-- ***************************************************************************/ 
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      PaulL           2md  Jan 03     Initial code
-+ *      MarkW           8th  Dec 04     Baseline code
-+ ***************************************************************************/
- 
- #ifndef	__RTMP_TYPE_H__
- #define	__RTMP_TYPE_H__
-diff -Nur rt2500-1.1.0-b4/Module/rtmp_wep.c rt2500-cvs-2007061011/Module/rtmp_wep.c
---- rt2500-1.1.0-b4/Module/rtmp_wep.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/rtmp_wep.c	2007-03-21 05:25:35.000000000 +0100
-@@ -1,40 +1,40 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
--
-- /*************************************************************************** 
-- *      Module Name: rtmp_wep.c 
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      PaulW           28th Sep 02     Initial code     
-- *      MarkW           8th  Dec 04     Baseline code  
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
-+
-+ /***************************************************************************
-+ *      Module Name: rtmp_wep.c
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      PaulW           28th Sep 02     Initial code
-+ *      MarkW           8th  Dec 04     Baseline code
-+ ***************************************************************************/
- 
- #include    "rt_config.h"
- 
--ULONG FCSTAB_32[256] = 
-+ULONG FCSTAB_32[256] =
- {
-     0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
-     0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
-@@ -56,57 +56,57 @@
-     0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
-     0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
-     0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
--    0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 
--    0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 
--    0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 
--    0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 
--    0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 
--    0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 
--    0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 
--    0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 
--    0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 
--    0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 
--    0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 
--    0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 
--    0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 
--    0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 
--    0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 
--    0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 
--    0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 
--    0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 
--    0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 
--    0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 
--    0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 
--    0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 
--    0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 
--    0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 
--    0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 
--    0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 
--    0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 
--    0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 
--    0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 
--    0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 
--    0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 
--    0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 
--    0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 
--    0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 
--    0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 
--    0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 
--    0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 
--    0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 
--    0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 
--    0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 
--    0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 
--    0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 
--    0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 
--    0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d 
--}; 
-+    0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
-+    0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
-+    0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,
-+    0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
-+    0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
-+    0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
-+    0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
-+    0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
-+    0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
-+    0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
-+    0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,
-+    0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
-+    0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
-+    0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
-+    0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
-+    0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
-+    0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,
-+    0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
-+    0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
-+    0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
-+    0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,
-+    0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
-+    0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,
-+    0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
-+    0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
-+    0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
-+    0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,
-+    0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
-+    0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
-+    0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
-+    0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
-+    0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
-+    0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,
-+    0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
-+    0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
-+    0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
-+    0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
-+    0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
-+    0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
-+    0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
-+    0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,
-+    0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
-+    0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
-+    0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
-+};
- 
- UCHAR   WEPKEY[] = {
-         //IV
--        0x00, 0x11, 0x22, 
-+        0x00, 0x11, 0x22,
-         //WEP KEY
--        0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC 
-+        0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC
-     };
- 
- 
-@@ -114,27 +114,27 @@
-     ========================================================================
- 
-     Routine Description:
--        Init WEP function.  
--        
-+        Init WEP function.
-+
-     Arguments:
-       pAdapter      Pointer to our adapter
-         pKey        Pointer to the WEP KEY
-         KeyId       WEP Key ID
-         KeyLen      the length of WEP KEY
-         pDest       Pointer to the destination which Encryption data will store in.
--        
-+
-     Return Value:
-         None
- 
-     Note:
--    
-+
-     ========================================================================
- */
- VOID    RTMPInitWepEngine(
--    IN  PRTMP_ADAPTER   pAdapter,   
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          pKey,
-     IN  UCHAR           KeyId,
--    IN  UCHAR           KeyLen, 
-+    IN  UCHAR           KeyLen,
-     IN OUT  PUCHAR      pDest)
- {
-     UINT i;
-@@ -146,32 +146,32 @@
-         WEPKEY[i] = RandomByte(pAdapter);   //Call mlme RandomByte() function.
-     ARCFOUR_INIT(&pAdapter->PrivateInfo.WEPCONTEXT, WEPKEY, KeyLen + 3);  //INIT SBOX, KEYLEN+3(IV)
- 
--    memcpy(pDest, WEPKEY, 3);  //Append Init Vector 
--    *(pDest+3) = (KeyId << 6);       //Append KEYID 
--    
-+    memcpy(pDest, WEPKEY, 3);  //Append Init Vector
-+    *(pDest+3) = (KeyId << 6);       //Append KEYID
-+
- }
- 
- /*
-     ========================================================================
- 
-     Routine Description:
--        Encrypt transimitted data       
--        
-+        Encrypt transimitted data
-+
-     Arguments:
-       pAdapter      Pointer to our adapter
-       pSrc          Pointer to the transimitted source data that will be encrypt
-       pDest         Pointer to the destination where entryption data will be store in.
-       Len           Indicate the length of the source data
--        
-+
-     Return Value:
-       None
--        
-+
-     Note:
--    
-+
-     ========================================================================
- */
- VOID    RTMPEncryptData(
--    IN  PRTMP_ADAPTER   pAdapter,   
-+    IN  PRTMP_ADAPTER   pAdapter,
-     IN  PUCHAR          pSrc,
-     IN  PUCHAR          pDest,
-     IN  UINT            Len)
-@@ -184,19 +184,19 @@
-     ========================================================================
- 
-     Routine Description:
--        Decrypt received data   
--        
-+        Decrypt received data
-+
-     Arguments:
-         pAdapter        Pointer to our adapter
-         pSrc        Pointer to the received data
-         Len         the length of the received data
--        
-+
-     Return Value:
-         TRUE        Decrypt WEP data success
-         FALSE       Decrypt WEP data failed
--        
-+
-     Note:
--    
-+
-     ========================================================================
- */
- BOOLEAN RTMPDecryptData(
-@@ -209,12 +209,12 @@
-     UCHAR   KeyIdx;
- 
-     memcpy(WEPKEY, pSrc, 3);    //Get WEP IV
--    
-+
-     KeyIdx = (*(pSrc + 3) & 0xc0) >> 6;
-     if (pAdapter->PortCfg.SharedKey[KeyIdx].KeyLen == 0)
-         return (FALSE);
--        
--    memcpy(WEPKEY + 3, pAdapter->PortCfg.SharedKey[KeyIdx].Key, pAdapter->PortCfg.SharedKey[KeyIdx].KeyLen);    
-+
-+    memcpy(WEPKEY + 3, pAdapter->PortCfg.SharedKey[KeyIdx].Key, pAdapter->PortCfg.SharedKey[KeyIdx].KeyLen);
-     ARCFOUR_INIT(&pAdapter->PrivateInfo.WEPCONTEXT, WEPKEY, pAdapter->PortCfg.SharedKey[KeyIdx].KeyLen + 3);
-     ARCFOUR_DECRYPT(&pAdapter->PrivateInfo.WEPCONTEXT, pSrc, pSrc + 4, Len - 4);
-     memcpy(&trailfcs, pSrc + Len - 8, 4);
-@@ -236,18 +236,18 @@
-     ========================================================================
- 
-     Routine Description:
--        The Stream Cipher Encryption Algorithm "ARCFOUR" initialize     
--        
-+        The Stream Cipher Encryption Algorithm "ARCFOUR" initialize
-+
-     Arguments:
-        Ctx         Pointer to ARCFOUR CONTEXT (SBOX)
-         pKey        Pointer to the WEP KEY
-         KeyLen      Indicate the length fo the WEP KEY
--        
-+
-     Return Value:
-        None
--        
-+
-     Note:
--    
-+
-     ========================================================================
- */
- VOID    ARCFOUR_INIT(
-@@ -260,7 +260,7 @@
-     UINT    stateindex;
-     PUCHAR  state;
-     UINT    counter;
--    
-+
-     state = Ctx->STATE;
-     Ctx->X = 0;
-     Ctx->Y = 0;
-@@ -284,16 +284,16 @@
-     ========================================================================
- 
-     Routine Description:
--        Get bytes from ARCFOUR CONTEXT (S-BOX)              
--        
-+        Get bytes from ARCFOUR CONTEXT (S-BOX)
-+
-     Arguments:
-        Ctx         Pointer to ARCFOUR CONTEXT (SBOX)
--        
-+
-     Return Value:
--       UCHAR  - the value of the ARCFOUR CONTEXT (S-BOX)        
--        
-+       UCHAR  - the value of the ARCFOUR CONTEXT (S-BOX)
-+
-     Note:
--    
-+
-     ========================================================================
- */
- UCHAR   ARCFOUR_BYTE(
-@@ -303,7 +303,7 @@
-   UINT y;
-   UCHAR sx, sy;
-   PUCHAR state;
--  
-+
-   state = Ctx->STATE;
-   x = (Ctx->X + 1) & 0xff;
-   sx = state[x];
-@@ -315,31 +315,31 @@
-   state[x] = sy;
- 
-   return(state[(sx + sy) & 0xff]);
--  
-+
- }
- 
- /*
-     ========================================================================
- 
-     Routine Description:
--        The Stream Cipher Decryption Algorithm      
--        
-+        The Stream Cipher Decryption Algorithm
-+
-     Arguments:
-         Ctx         Pointer to ARCFOUR CONTEXT (SBOX)
--        pDest           Pointer to the Destination 
-+        pDest           Pointer to the Destination
-         pSrc        Pointer to the Source data
-         Len         Indicate the length of the Source data
--        
-+
-     Return Value:
-         None
--        
-+
-     Note:
--    
-+
-     ========================================================================
- */
- VOID    ARCFOUR_DECRYPT(
-     IN  PARCFOURCONTEXT Ctx,
--    IN  PUCHAR          pDest, 
-+    IN  PUCHAR          pDest,
-     IN  PUCHAR          pSrc,
-     IN  UINT            Len)
- {
-@@ -353,19 +353,19 @@
-     ========================================================================
- 
-     Routine Description:
--        The Stream Cipher Encryption Algorithm      
--        
-+        The Stream Cipher Encryption Algorithm
-+
-     Arguments:
-         Ctx         Pointer to ARCFOUR CONTEXT (SBOX)
--        pDest           Pointer to the Destination 
-+        pDest           Pointer to the Destination
-         pSrc        Pointer to the Source data
-         Len         Indicate the length of the Source dta
--        
-+
-     Return Value:
-         None
--        
-+
-     Note:
--    
-+
-     ========================================================================
- */
- VOID    ARCFOUR_ENCRYPT(
-@@ -385,17 +385,17 @@
- 
-     Routine Description:
-         Calculate a new FCS given the current FCS and the new data.
--        
-+
-     Arguments:
-         Fcs       the original FCS value
-         Cp          pointer to the data which will be calculate the FCS
-         Len         the length of the data
--        
-+
-     Return Value:
-         ULONG - FCS 32 bits
--        
-+
-     Note:
--    
-+
-     ========================================================================
- */
- ULONG   RTMP_CALC_FCS32(
-@@ -406,24 +406,24 @@
-     while (Len--)
-        Fcs = (((Fcs) >> 8) ^ FCSTAB_32[((Fcs) ^ (*Cp++)) & 0xff]);
- 
--    return (Fcs); 
--} 
-+    return (Fcs);
-+}
- 
- 
- /*
-     ========================================================================
- 
-     Routine Description:
--        Get last FCS and encrypt it to the destination              
--        
-+        Get last FCS and encrypt it to the destination
-+
-     Arguments:
--        pDest           Pointer to the Destination 
--        
-+        pDest           Pointer to the Destination
-+
-     Return Value:
-         None
--        
-+
-     Note:
--    
-+
-     ========================================================================
- */
- VOID    RTMPSetICV(
-@@ -431,11 +431,11 @@
-     IN  PUCHAR  pDest)
- {
-     pAdapter->PrivateInfo.FCSCRC32 ^= 0xffffffff;             /* complement */
--    
-+
- #ifdef BIG_ENDIAN
-     pAdapter->PrivateInfo.FCSCRC32 = SWAP32(pAdapter->PrivateInfo.FCSCRC32);
- #endif
--    
-+
-     ARCFOUR_ENCRYPT(&pAdapter->PrivateInfo.WEPCONTEXT, pDest, (PUCHAR) &pAdapter->PrivateInfo.FCSCRC32, 4);
- }
- 
-diff -Nur rt2500-1.1.0-b4/Module/sanity.c rt2500-cvs-2007061011/Module/sanity.c
---- rt2500-1.1.0-b4/Module/sanity.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/sanity.c	2007-03-21 05:25:35.000000000 +0100
-@@ -1,41 +1,42 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
--
-- /*************************************************************************** 
-- *      Module Name: sanity.c 
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      MarkW           8th  Dec 04     Baseline code  
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
-+
-+ /***************************************************************************
-+ *      Module Name: sanity.c
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      MarkW           8th  Dec 04     Baseline code
-+ ***************************************************************************/
- 
- #include "rt_config.h"
- 
--UCHAR   WPA_OUI[] = {0x00, 0x50, 0xf2, 0x01};
-+static const UCHAR		WPA_OUI[] = {0x00, 0x50, 0xf2, 0x01};
-+static const ie_oui_t	wpa2_oui = {0x00, 0x0f, 0xac};	// 802.11i pp. 28, 30
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         MLME message sanity check
-@@ -44,13 +45,13 @@
-     ==========================================================================
-  */
- BOOLEAN MlmeScanReqSanity(
--    IN PRTMP_ADAPTER pAd, 
--    IN VOID *Msg, 
--    IN ULONG MsgLen, 
--    OUT UCHAR *BssType, 
--    OUT CHAR Ssid[], 
--    OUT UCHAR *SsidLen, 
--    OUT UCHAR *ScanType) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN VOID *Msg,
-+    IN ULONG MsgLen,
-+    OUT UCHAR *BssType,
-+    OUT CHAR Ssid[],
-+    OUT UCHAR *SsidLen,
-+    OUT UCHAR *ScanType)
- {
-     MLME_SCAN_REQ_STRUCT *Info;
- 
-@@ -61,16 +62,16 @@
-     *ScanType = Info->ScanType;
- 
-     if ((*BssType == BSS_INFRA || *BssType == BSS_INDEP || *BssType == BSS_ANY) &&
--       (*ScanType == SCAN_ACTIVE || *ScanType == SCAN_PASSIVE)) 
-+       (*ScanType == SCAN_ACTIVE || *ScanType == SCAN_PASSIVE))
-         return TRUE;
--    else 
-+    else
-     {
-         DBGPRINT(RT_DEBUG_TRACE, "MlmeScanReqSanity fail - wrong BssType or ScanType\n");
-         return FALSE;
-     }
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         MLME message sanity check
-@@ -79,16 +80,16 @@
-     ==========================================================================
-  */
- BOOLEAN MlmeStartReqSanity(
--    IN PRTMP_ADAPTER pAd, 
--    IN VOID *Msg, 
--    IN ULONG MsgLen, 
--    OUT CHAR Ssid[], 
--    OUT UCHAR *SsidLen) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN VOID *Msg,
-+    IN ULONG MsgLen,
-+    OUT CHAR Ssid[],
-+    OUT UCHAR *SsidLen)
- {
-     MLME_START_REQ_STRUCT *Info;
- 
-     Info = (MLME_START_REQ_STRUCT *)(Msg);
--    
-+
-     if (Info->SsidLen > MAX_LEN_OF_SSID)
-     {
-         DBGPRINT(RT_DEBUG_TRACE, "MlmeStartReqSanity fail - wrong SSID length\n");
-@@ -101,7 +102,7 @@
-     return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         MLME message sanity check
-@@ -110,13 +111,13 @@
-     ==========================================================================
-  */
- BOOLEAN MlmeAssocReqSanity(
--    IN PRTMP_ADAPTER pAd, 
--    IN VOID *Msg, 
--    IN ULONG MsgLen, 
--    OUT MACADDR *ApAddr, 
--    OUT USHORT *CapabilityInfo, 
--    OUT ULONG *Timeout, 
--    OUT USHORT *ListenIntv) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN VOID *Msg,
-+    IN ULONG MsgLen,
-+    OUT MACADDR *ApAddr,
-+    OUT USHORT *CapabilityInfo,
-+    OUT ULONG *Timeout,
-+    OUT USHORT *ListenIntv)
- {
-     MLME_ASSOC_REQ_STRUCT *Info;
- 
-@@ -129,7 +130,7 @@
-     return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         MLME message sanity check
-@@ -138,12 +139,12 @@
-     ==========================================================================
-  */
- BOOLEAN MlmeAuthReqSanity(
--    IN PRTMP_ADAPTER pAd, 
--    IN VOID *Msg, 
--    IN ULONG MsgLen, 
--    OUT MACADDR *Addr, 
--    OUT ULONG *Timeout, 
--    OUT USHORT *Alg) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN VOID *Msg,
-+    IN ULONG MsgLen,
-+    OUT MACADDR *Addr,
-+    OUT ULONG *Timeout,
-+    OUT USHORT *Alg)
- {
-     MLME_AUTH_REQ_STRUCT *Info;
- 
-@@ -152,18 +153,18 @@
-     *Timeout = Info->Timeout;
-     *Alg = Info->Alg;
- 
--    if ((*Alg == Ndis802_11AuthModeShared || *Alg == Ndis802_11AuthModeOpen) && !MAC_ADDR_IS_GROUP(*Addr)) 
-+    if ((*Alg == Ndis802_11AuthModeShared || *Alg == Ndis802_11AuthModeOpen) && !MAC_ADDR_IS_GROUP(*Addr))
-     {
-         return TRUE;
--    } 
--    else 
-+    }
-+    else
-     {
-         DBGPRINT(RT_DEBUG_TRACE, "MlmeAuthReqSanity fail - wrong algorithm\n");
-         return FALSE;
-     }
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         MLME message sanity check
-@@ -172,16 +173,16 @@
-     ==========================================================================
-  */
- BOOLEAN PeerAssocRspSanity(
--    IN PRTMP_ADAPTER pAd, 
--    IN VOID *Msg, 
--    IN ULONG MsgLen, 
--    OUT MACADDR *Addr2, 
--    OUT USHORT *CapabilityInfo, 
--    OUT USHORT *Status, 
--    OUT USHORT *Aid, 
--    OUT UCHAR Rates[], 
-+    IN PRTMP_ADAPTER pAd,
-+    IN VOID *Msg,
-+    IN ULONG MsgLen,
-+    OUT MACADDR *Addr2,
-+    OUT USHORT *CapabilityInfo,
-+    OUT USHORT *Status,
-+    OUT USHORT *Aid,
-+    OUT UCHAR Rates[],
-     OUT UCHAR *RatesLen,
--    OUT BOOLEAN *ExtendedRateIeExist) 
-+    OUT BOOLEAN *ExtendedRateIeExist)
- {
-     CHAR          IeType, *Ptr;
-     MACFRAME     *Fr = (MACFRAME *)Msg;
-@@ -195,7 +196,7 @@
-     // Mask out unnecessary capability information
-     *CapabilityInfo &= SUPPORTED_CAPABILITY_INFO;
- 
--    if (*Status == MLME_SUCCESS) 
-+    if (*Status == MLME_SUCCESS)
-     {
-         memcpy(Aid, &Fr->Octet[4], 2);
-         *Aid = (*Aid) & 0x3fff; // AID is low 14-bit
-@@ -207,8 +208,8 @@
-         {
-             DBGPRINT(RT_DEBUG_TRACE, "PeerAssocRspSanity fail - wrong SupportedRates IE\n");
-             return FALSE;
--        } 
--        else 
-+        }
-+        else
-             memcpy(Rates, &Fr->Octet[8], *RatesLen);
- 
-         // many AP implement proprietary IEs in non-standard order, we'd better
-@@ -235,7 +236,7 @@
-                     }
-                     break;
-                 default:
--                    DBGPRINT(RT_DEBUG_TRACE, "PeerAssocRspSanity - ignore unrecognized EID = %d\n", eid_ptr->Eid);
-+                    DBGPRINT(RT_DEBUG_TRACE, "PeerAssocRspSanity - ignore unrecognized EID=%d (Len=%d)\n", eid_ptr->Eid, eid_ptr->Len);
-                     break;
-             }
- 
-@@ -247,7 +248,7 @@
-     return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         MLME message sanity check
-@@ -256,11 +257,11 @@
-     ==========================================================================
-  */
- BOOLEAN PeerDisassocSanity(
--    IN PRTMP_ADAPTER pAd, 
--    IN VOID *Msg, 
--    IN ULONG MsgLen, 
--    OUT MACADDR *Addr2, 
--    OUT USHORT *Reason) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN VOID *Msg,
-+    IN ULONG MsgLen,
-+    OUT MACADDR *Addr2,
-+    OUT USHORT *Reason)
- {
-     MACFRAME *Fr = (MACFRAME *)Msg;
- 
-@@ -270,7 +271,7 @@
-     return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         MLME message sanity check
-@@ -279,11 +280,11 @@
-     ==========================================================================
-  */
- BOOLEAN PeerDeauthSanity(
--    IN PRTMP_ADAPTER pAd, 
--    IN VOID *Msg, 
--    IN ULONG MsgLen, 
--    OUT MACADDR *Addr2, 
--    OUT USHORT *Reason) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN VOID *Msg,
-+    IN ULONG MsgLen,
-+    OUT MACADDR *Addr2,
-+    OUT USHORT *Reason)
- {
-     MACFRAME *Fr = (MACFRAME *)Msg;
- 
-@@ -293,7 +294,7 @@
-     return TRUE;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         MLME message sanity check
-@@ -302,14 +303,14 @@
-     ==========================================================================
-  */
- BOOLEAN PeerAuthSanity(
--    IN PRTMP_ADAPTER pAd, 
--    IN VOID *Msg, 
--    IN ULONG MsgLen, 
--    OUT MACADDR *Addr, 
--    OUT USHORT *Alg, 
--    OUT USHORT *Seq, 
--    OUT USHORT *Status, 
--    CHAR *ChlgText) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN VOID *Msg,
-+    IN ULONG MsgLen,
-+    OUT MACADDR *Addr,
-+    OUT USHORT *Alg,
-+    OUT USHORT *Seq,
-+    OUT USHORT *Status,
-+    CHAR *ChlgText)
- {
-     MACFRAME     *Fr = (MACFRAME *)Msg;
- 
-@@ -318,43 +319,43 @@
-     memcpy(Seq,    &Fr->Octet[2], 2);
-     memcpy(Status, &Fr->Octet[4], 2);
- 
--    if (*Alg == Ndis802_11AuthModeOpen) 
-+    if (*Alg == Ndis802_11AuthModeOpen)
-     {
--        if (*Seq == 1 || *Seq == 2) 
-+        if (*Seq == 1 || *Seq == 2)
-         {
-             return TRUE;
--        } 
--        else 
-+        }
-+        else
-         {
-             DBGPRINT(RT_DEBUG_TRACE, "PeerAuthSanity fail - wrong Seg#\n");
-             return FALSE;
-         }
--    } 
--    else if (*Alg == Ndis802_11AuthModeShared) 
-+    }
-+    else if (*Alg == Ndis802_11AuthModeShared)
-     {
--        if (*Seq == 1 || *Seq == 4) 
-+        if (*Seq == 1 || *Seq == 4)
-         {
-             return TRUE;
--        } 
--        else if (*Seq == 2 || *Seq == 3) 
-+        }
-+        else if (*Seq == 2 || *Seq == 3)
-         {
-             memcpy(ChlgText, &Fr->Octet[8], CIPHER_TEXT_LEN);
-             return TRUE;
--        } 
--        else 
-+        }
-+        else
-         {
-             DBGPRINT(RT_DEBUG_TRACE, "PeerAuthSanity fail - wrong Seg#\n");
-             return FALSE;
-         }
--    } 
--    else 
-+    }
-+    else
-     {
-         DBGPRINT(RT_DEBUG_TRACE, "PeerAuthSanity fail - wrong algorithm\n");
-         return FALSE;
-     }
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         MLME message sanity check
-@@ -363,14 +364,14 @@
-     ==========================================================================
-  */
- BOOLEAN PeerProbeReqSanity(
--    IN PRTMP_ADAPTER pAd, 
--    IN VOID *Msg, 
--    IN ULONG MsgLen, 
-+    IN PRTMP_ADAPTER pAd,
-+    IN VOID *Msg,
-+    IN ULONG MsgLen,
-     OUT MACADDR *Addr2,
--    OUT CHAR Ssid[], 
--    OUT UCHAR *SsidLen) 
--//    OUT UCHAR Rates[], 
--//    OUT UCHAR *RatesLen) 
-+    OUT CHAR Ssid[],
-+    OUT UCHAR *SsidLen)
-+//    OUT UCHAR Rates[],
-+//    OUT UCHAR *RatesLen)
- {
-     UCHAR Idx;
-     UCHAR	RateLen;
-@@ -379,27 +380,27 @@
- 
-     COPY_MAC_ADDR(Addr2, &Fr->Hdr.Addr2);
- 
--    if ((Fr->Octet[0] != IE_SSID) || (Fr->Octet[1] > MAX_LEN_OF_SSID)) 
-+    if ((Fr->Octet[0] != IE_SSID) || (Fr->Octet[1] > MAX_LEN_OF_SSID))
-     {
-         DBGPRINT(RT_DEBUG_TRACE, "PeerProbeReqSanity fail - wrong SSID IE(Type=%d,Len=%d)\n",Fr->Octet[0],Fr->Octet[1]);
-         return FALSE;
--    } 
--    
-+    }
-+
-     *SsidLen = Fr->Octet[1];
-     memcpy(Ssid, &Fr->Octet[2], *SsidLen);
- 
--#if 1    
-+#if 1
-     Idx = *SsidLen + 2;
- 
-     // -- get supported rates from payload and advance the pointer
-     IeType = Fr->Octet[Idx];
-     RateLen = Fr->Octet[Idx + 1];
--    if (IeType != IE_SUPP_RATES) 
-+    if (IeType != IE_SUPP_RATES)
-     {
-         DBGPRINT(RT_DEBUG_TRACE, "PeerProbeReqSanity fail - wrong SupportRates IE(Type=%d,Len=%d)\n",Fr->Octet[Idx],Fr->Octet[Idx+1]);
-         return FALSE;
-     }
--    else 
-+    else
-     {
-         if ((pAd->PortCfg.AdhocMode == 2) && (RateLen < 8))
-             return (FALSE);
-@@ -408,7 +409,95 @@
-     return TRUE;
- }
- 
--/* 
-+static inline void handle_country_ie(
-+		country_ie_p p)
-+{
-+	int i;
-+
-+	DBGPRINT(RT_DEBUG_INFO,
-+			" -  IE_COUNTRY (ID=%d) (Len=%d) "
-+			"(string=\"%c%c:%c\")\n",
-+			p->eid, p->length, p->cs.co[0], p->cs.co[1], p->cs.env);
-+
-+	// drop malformed elements
-+	if (p->length & 1 || p->length < 6) {
-+		DBGPRINT(RT_DEBUG_ERROR,
-+				" -  IE_COUNTRY invalid length\n");
-+		return;
-+	}
-+	for (i = 0; i < offsetof(country_string_t, env); i++) {
-+		if (p->cs.co[i] < 'A' || p->cs.co[i] > 'z') {
-+			DBGPRINT(RT_DEBUG_ERROR,
-+					" -  IE_COUNTRY invalid co fld\n");
-+			return;
-+		}
-+	}
-+	if (p->cs.env != ' ' && p->cs.env != 'O' && p->cs.env != 'I') {
-+		DBGPRINT(RT_DEBUG_ERROR,
-+				" -  IE_COUNTRY invalid env field\n");
-+		return;
-+	}
-+	if (p->length % 3 && *(char *)((char *)p + p->length + 1) != 0) {
-+		DBGPRINT(RT_DEBUG_ERROR,
-+				" -  IE_COUNTRY pad non-null\n");
-+		return;
-+	}
-+#ifdef RT2500_DBG
-+	{
-+	int num_subelements = p->length/3 - 1;
-+	country_subelement_p sep = p->chans;
-+	for (i = 0; i < num_subelements; i++, sep++)
-+	{
-+		DBGPRINT(RT_DEBUG_INFO,
-+				" -  Band %d First chan=%d, Num chans=%d, Max Tx Pwr=%d\n",
-+				i, sep->first_chan, sep->num_chans, sep->max_tx_pwr);
-+	}
-+	}
-+#endif /* RT2500_DBG */
-+	/* TODO */
-+
-+} /* End handle_country_ie () */
-+
-+static inline int handle_rsn_ie(
-+		rsn_ie_p p,
-+		PNDIS_802_11_VARIABLE_IEs pVIE)
-+{
-+	DBGPRINT(RT_DEBUG_INFO,
-+			" -  IE_RSN (ID=%d, Len=%d)\n",
-+			p->eid, p->length);
-+
-+	// drop malformed elements
-+	if (p->length < 2 || p->length & 1) {
-+		DBGPRINT(RT_DEBUG_ERROR,
-+				" -  IE_RSN invalid length\n");
-+		return 0;
-+	}
-+	if (wtohs(p->version) != 1) {
-+		DBGPRINT(RT_DEBUG_ERROR,
-+				" -  IE_RSN invalid version %d\n",
-+				p->version);
-+		return 0;
-+	}
-+	if (p->length >= 6) { // group cipher suite
-+		if (!RTMPEqualMemory(&p->gcsuite.oui, wpa2_oui, sizeof(wpa2_oui)))
-+		{
-+			DBGPRINT(RT_DEBUG_ERROR,
-+					" -  IE_RSN invalid oui "
-+					"%02x %02x %02x\n",
-+					p->gcsuite.oui[0], p->gcsuite.oui[1], p->gcsuite.oui[2]);
-+			return 0;
-+		}
-+	}
-+	// Copy to pVIE which will report to microsoft bssid list.
-+	pVIE->ElementID = p->eid;
-+	pVIE->Length = p->length;
-+	memcpy(pVIE->data, &p->version, p->length);
-+
-+	return (p->length + 2);
-+
-+} /* End handle_rsn_ie () */
-+
-+/*
-     ==========================================================================
-     Description:
-         MLME message sanity check
-@@ -417,47 +506,56 @@
-     ==========================================================================
-  */
- BOOLEAN PeerBeaconAndProbeRspSanity(
--    IN PRTMP_ADAPTER pAd, 
--    IN VOID *Msg, 
--    IN ULONG MsgLen, 
--    OUT MACADDR *Addr2, 
--    OUT MACADDR *Bssid, 
--    OUT CHAR Ssid[], 
--    OUT UCHAR *SsidLen, 
--    OUT UCHAR *BssType, 
--    OUT USHORT *BeaconPeriod, 
--    OUT UCHAR *Channel, 
--    OUT LARGE_INTEGER *Timestamp, 
--    OUT BOOLEAN *CfExist, 
--    OUT CF_PARM *CfParm, 
--    OUT USHORT *AtimWin, 
--    OUT USHORT *CapabilityInfo, 
--    OUT UCHAR Rate[], 
-+    IN PRTMP_ADAPTER pAd,
-+    IN VOID *Msg,
-+    IN ULONG MsgLen,
-+    OUT MACADDR *Addr2,
-+    OUT MACADDR *Bssid,
-+    OUT CHAR Ssid[],
-+    OUT UCHAR *SsidLen,
-+    OUT UCHAR *BssType,
-+    OUT USHORT *BeaconPeriod,
-+    OUT UCHAR *Channel,
-+    OUT LARGE_INTEGER *Timestamp,
-+    OUT BOOLEAN *CfExist,
-+    OUT CF_PARM *CfParm,
-+    OUT USHORT *AtimWin,
-+    OUT USHORT *CapabilityInfo,
-+    OUT UCHAR Rate[],
-     OUT UCHAR *RateLen,
-     OUT BOOLEAN *ExtendedRateIeExist,
-     OUT UCHAR *Erp,
--    OUT UCHAR *DtimCount, 
--    OUT UCHAR *DtimPeriod, 
--    OUT UCHAR *BcastFlag, 
--    OUT UCHAR *MessageToMe, 
-+    OUT UCHAR *DtimCount,
-+    OUT UCHAR *DtimPeriod,
-+    OUT UCHAR *BcastFlag,
-+    OUT UCHAR *MessageToMe,
-     OUT UCHAR *Legacy,
-     OUT UCHAR SupRate[],
- 	OUT UCHAR *SupRateLen,
- 	OUT UCHAR ExtRate[],
- 	OUT UCHAR *ExtRateLen,
--    OUT	PNDIS_802_11_VARIABLE_IEs pVIE) 
-+    OUT USHORT *VarIELen,	// Length of all saved IEs.
-+    OUT	PNDIS_802_11_VARIABLE_IEs pVIE)
- {
-     CHAR                *Ptr, TimLen;
-     MACFRAME            *Fr;
-     PBEACON_EID_STRUCT  eid_ptr;
-     UCHAR               SubType;
-     UCHAR               Sanity;
-+    UCHAR               VarIE[MAX_VIE_LEN];
-+
-+	// armor against buffer overflow
-+	UCHAR						*vielim = &VarIE[MAX_VIE_LEN];
-+    NDIS_802_11_VARIABLE_IEs    *ptVIE = (PNDIS_802_11_VARIABLE_IEs)VarIE;
-+
-+	DBGPRINT(RT_DEBUG_TRACE,"===> %s\n", __FUNCTION__);
- 
-     // Add for 3 necessary EID field check
-     Sanity = 0;
- 
-     *ExtendedRateIeExist = FALSE;
-     *Erp = 0;
-+	*VarIELen = 0;
- 
-     Fr = (MACFRAME *)Msg;
- 
-@@ -481,40 +579,48 @@
-     // get capability info from payload and advance the pointer
-     memcpy(CapabilityInfo, Ptr, 2);
-     Ptr += 2;
--    if (CAP_IS_ESS_ON(*CapabilityInfo)) 
-+    DBGPRINT(RT_DEBUG_INFO, " - CapabilityInfo=0x%.2x\n", *CapabilityInfo);
-+    if (CAP_IS_ESS_ON(*CapabilityInfo))
-     {
-         *BssType = BSS_INFRA;
--    } 
--    else 
-+    }
-+    else
-     {
-         *BssType = BSS_INDEP;
-     }
- 
-     // Mask out unnecessary capability information
-     *CapabilityInfo &= SUPPORTED_CAPABILITY_INFO;
--    
-+
-     eid_ptr = (PBEACON_EID_STRUCT) Ptr;
- 
-     // get variable fields from payload and advance the pointer
-     while(((UCHAR*)eid_ptr + eid_ptr->Len + 1) < ((UCHAR*)Fr + MsgLen))
-     {
-+		DBGPRINT(RT_DEBUG_INFO, " - IE #%d len=%d\n",
-+							eid_ptr->Eid, eid_ptr->Len);
-         switch(eid_ptr->Eid)
-         {
-             case IE_SSID:
--                // Already has one SSID EID in this beacon, ignore the second one
-+                // Already have one SSID EID in this beacon, ignore second one
- 				if (Sanity & 0x1)
- 					break;
-                 if(eid_ptr->Len <= MAX_LEN_OF_SSID)
-                 {
-                     memcpy(Ssid, eid_ptr->Octet, eid_ptr->Len);
--		    memset(Ssid + eid_ptr->Len,0,1);
-+					if (eid_ptr->Len < MAX_LEN_OF_SSID)
-+                    	memset(Ssid + eid_ptr->Len,0,1);
-                     *SsidLen = eid_ptr->Len;
-                     Sanity |= 0x1;
--                    //DBGPRINT(RT_DEBUG_TRACE, "PeerBeaconAndProbeRspSanity - ESSID=%s Len=%d\n",Ssid,eid_ptr->Len);
-+                    DBGPRINT(RT_DEBUG_INFO, " -  SSID=%s Len=%d\n",
-+							Ssid, eid_ptr->Len);
-+                    DBGHEXSTR(RT_DEBUG_INFO, " -  SSID(hex)=",
-+							Ssid, eid_ptr->Len);
-                 }
-                 else
-                 {
--                    DBGPRINT(RT_DEBUG_TRACE, "PeerBeaconAndProbeRspSanity - wrong IE_SSID (len=%d)\n",eid_ptr->Len);
-+                    DBGPRINT(RT_DEBUG_TRACE, "<=== %s - bad IE_SSID len=%d\n",
-+							__FUNCTION__, eid_ptr->Len);
-                     return FALSE;
-                 }
-                 break;
-@@ -546,13 +652,15 @@
-                 }
-                 else
-                 {
--                    DBGPRINT(RT_DEBUG_TRACE, "PeerBeaconAndProbeRspSanity - wrong IE_SUPP_RATES (len=%d)\n",eid_ptr->Len);
-+                    DBGPRINT(RT_DEBUG_TRACE,
-+							"<=== %s - wrong IE_SUPP_RATES (len=%d)\n",
-+							__FUNCTION__, eid_ptr->Len);
-                     return FALSE;
-                 }
-                 break;
- 
-             case IE_FH_PARM:
--                DBGPRINT(RT_DEBUG_TRACE, "PeerBeaconAndProbeRspSanity(IE_FH_PARM) \n");
-+                DBGPRINT(RT_DEBUG_INFO, " - (IE_FH_PARM) \n");
-                 break;
- 
-             case IE_DS_PARM:
-@@ -561,14 +669,18 @@
-                     *Channel = *eid_ptr->Octet;
-                     if (ChannelSanity(pAd, *Channel) == 0)
-                     {
--                        DBGPRINT(RT_DEBUG_TRACE, "PeerBeaconAndProbeRspSanity - wrong IE_DS_PARM (ch=%d)\n",*Channel);
-+                        DBGPRINT(RT_DEBUG_TRACE,
-+								"<=== %s - wrong IE_DS_PARM (ch=%d)\n",
-+								__FUNCTION__, *Channel);
-                         return FALSE;
-                     }
-                     Sanity |= 0x4;
-                 }
-                 else
-                 {
--                    DBGPRINT(RT_DEBUG_TRACE, "PeerBeaconAndProbeRspSanity - wrong IE_DS_PARM (len=%d)\n",eid_ptr->Len);
-+                    DBGPRINT(RT_DEBUG_TRACE,
-+							"<=== %s - wrong IE_DS_PARM (len=%d)\n",
-+							__FUNCTION__, eid_ptr->Len);
-                     return FALSE;
-                 }
-                 break;
-@@ -581,7 +693,8 @@
-                 }
-                 else
-                 {
--                    DBGPRINT(RT_DEBUG_TRACE, "PeerBeaconAndProbeRspSanity - wrong IE_CF_PARM\n");
-+                    DBGPRINT(RT_DEBUG_TRACE, "<=== %s - wrong IE_CF_PARM\n",
-+							__FUNCTION__);
-                     return FALSE;
-                 }
-                 break;
-@@ -593,7 +706,8 @@
-                 }
-                 else
-                 {
--                    DBGPRINT(RT_DEBUG_TRACE, "PeerBeaconAndProbeRspSanity - wrong IE_IBSS_PARM\n");
-+                    DBGPRINT(RT_DEBUG_TRACE, "<=== %s - wrong IE_IBSS_PARM\n",
-+							__FUNCTION__);
-                     return FALSE;
-                 }
-                 break;
-@@ -605,18 +719,45 @@
-                 }
-                 break;
- 
-+			case IE_COUNTRY:
-+				handle_country_ie((country_ie_p)eid_ptr);
-+				break;
-+
-             // New for WPA
-             case IE_WPA:
--                // Check the OUI version, filter out non-standard usage
--                if (RTMPEqualMemory(eid_ptr->Octet, WPA_OUI, 4))
--                {
--                    // Copy to pVIE which will report to microsoft bssid list.
--                    pVIE->ElementID = eid_ptr->Eid;
--                    pVIE->Length = eid_ptr->Len;
--                    memcpy(pVIE->data, eid_ptr->Octet, eid_ptr->Len);
--                }
--                DBGPRINT(RT_DEBUG_INFO, "PeerBeaconAndProbeRspSanity - Receive IE_WPA\n");
--                break;
-+				if (vielim >= (UCHAR *)ptVIE + eid_ptr->Len + 2)
-+				{
-+                    // ptVIE will report to microsoft bssid list.
-+                   	ptVIE->ElementID = eid_ptr->Eid;
-+                   	ptVIE->Length = eid_ptr->Len;
-+                   	memcpy(ptVIE->data, eid_ptr->Octet, eid_ptr->Len);
-+					ptVIE = (PNDIS_802_11_VARIABLE_IEs)((UCHAR *)ptVIE +
-+							ptVIE->Length + 2);
-+					DBGPRINT(RT_DEBUG_INFO, " -  OUI (%02x:%02x:%02x:%02x)\n",
-+							eid_ptr->Octet[0], eid_ptr->Octet[1],
-+							eid_ptr->Octet[2], eid_ptr->Octet[3]);
-+                }
-+				else
-+				{
-+					DBGPRINT(RT_DEBUG_ERROR,
-+							" -  IE_WPA rcv area needs %d bytes: has %d left\n",
-+							eid_ptr->Len + 2, vielim - (UCHAR *)ptVIE);
-+				}
-+                break;
-+
-+			case IE_RSN:
-+				if (vielim >= (UCHAR *)ptVIE + eid_ptr->Len + 2)
-+				{
-+					ptVIE = (PNDIS_802_11_VARIABLE_IEs)((UCHAR *)ptVIE +
-+							handle_rsn_ie((rsn_ie_p)eid_ptr, ptVIE));
-+				}
-+				else
-+				{
-+					DBGPRINT(RT_DEBUG_ERROR,
-+							" -  IE_RSN rcv area needs %d bytes: has %d left\n",
-+							eid_ptr->Len + 2, vielim - (UCHAR *)ptVIE);
-+				}
-+				break;
- 
-             case IE_EXT_SUPP_RATES:
-                 // concatenate all extended rates to Rates[] and RateLen
-@@ -654,15 +795,20 @@
-                     *Erp = (UCHAR)eid_ptr->Octet[0];
-                 }
-                 break;
--                
-+
-             default:
--                DBGPRINT(RT_DEBUG_INFO, "PeerBeaconAndProbeRspSanity - unrecognized EID = %d\n", eid_ptr->Eid);
-+                DBGPRINT(RT_DEBUG_ERROR, " -  EID=%d (Len=%d) unrecognized\n",
-+						eid_ptr->Eid, eid_ptr->Len);
-                 break;
-         }
--        
-+
-         eid_ptr = (PBEACON_EID_STRUCT)((UCHAR*)eid_ptr + 2 + eid_ptr->Len);
-     }
--
-+	if ((UCHAR *)ptVIE > VarIE) {
-+		int vielen = (UCHAR *)ptVIE - VarIE;
-+		*VarIELen = vielen;
-+		memcpy(pVIE, VarIE, vielen);
-+	}
- 
-     // in 802.11a band, AP may skip this DS IE in their BEACON
-     if ((pAd->PortCfg.Channel > 14) && ((Sanity & 0x04)==0))
-@@ -670,7 +816,8 @@
-         *Channel = pAd->PortCfg.Channel;
-         Sanity |= 0x04;
-     }
--    
-+
-+	DBGPRINT(RT_DEBUG_TRACE, "<=== %s: Sanity=0x%02x\n", __FUNCTION__, Sanity);
-     if (Sanity != 0x7)
-     {
-         DBGPRINT(RT_DEBUG_WARN, "PeerBeaconAndProbeRspSanity - missing field, Sanity=0x%02x\n", Sanity);
-@@ -683,19 +830,19 @@
- 
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-     ==========================================================================
-  */
- BOOLEAN GetTimBit(
--    IN CHAR *Ptr, 
--    IN USHORT Aid, 
--    OUT UCHAR *TimLen, 
--    OUT UCHAR *BcastFlag, 
--    OUT UCHAR *DtimCount, 
-+    IN CHAR *Ptr,
-+    IN USHORT Aid,
-+    OUT UCHAR *TimLen,
-+    OUT UCHAR *BcastFlag,
-+    OUT UCHAR *DtimCount,
-     OUT UCHAR *DtimPeriod,
--    OUT UCHAR *MessageToMe) 
-+    OUT UCHAR *MessageToMe)
- {
-     UCHAR          BitCntl, N1, N2, MyByte, MyBit;
-     CHAR          *IdxPtr;
-@@ -717,11 +864,11 @@
-     IdxPtr++;
-     BitCntl = *IdxPtr;
- 
--    if ((*DtimCount == 0) && (BitCntl & 0x01)) 
-+    if ((*DtimCount == 0) && (BitCntl & 0x01))
-         *BcastFlag = TRUE;
--    else 
-+    else
-         *BcastFlag = FALSE;
--    
-+
- #if 1
-     // Parse Partial Virtual Bitmap from TIM element
-     N1 = BitCntl & 0xfe;    // N1 is the first bitmap byte#
-@@ -738,10 +885,10 @@
- 
-         //if (*IdxPtr)
-         //    DBGPRINT(RT_DEBUG_WARN, ("TIM bitmap = 0x%02x\n", *IdxPtr));
--            
-+
-         if (*IdxPtr & (0x01 << MyBit))
-             *MessageToMe = TRUE;
--        else 
-+        else
-             *MessageToMe = FALSE;
-     }
- #else
-@@ -760,15 +907,15 @@
-  *  \post
-  */
- BOOLEAN GetLegacy(
--    IN CHAR *Ptr, 
--    OUT UCHAR *Legacy) 
-+    IN CHAR *Ptr,
-+    OUT UCHAR *Legacy)
- {
-     *Legacy = 0;
-     return TRUE;
- }
- 
- UCHAR ChannelSanity(
--    IN PRTMP_ADAPTER pAd, 
-+    IN PRTMP_ADAPTER pAd,
-     IN UCHAR channel)
- {
-     UCHAR index;
-@@ -780,52 +927,52 @@
-     }
-     return 0;
- 
--#if 0    
-+#if 0
-     switch (pAd->PortCfg.CountryRegion)
-     {
-         case REGION_FCC:    // 1 - 11
-             if ((channel > 0) && (channel < 12))
-                 return 1;
-             break;
--            
-+
-         case REGION_IC:     // 1 -11
-             if ((channel > 0) && (channel < 12))
-                 return 1;
-             break;
--            
-+
-         case REGION_ETSI:   // 1 - 13
-             if ((channel > 0) && (channel < 14))
-                 return 1;
-             break;
--            
-+
-         case REGION_SPAIN:  // 10 - 11
-             if ((channel > 9) && (channel < 12))
-                 return 1;
-             break;
--            
-+
-         case REGION_FRANCE: // 10 -13
-             if ((channel > 9) && (channel < 14))
-                 return 1;
-             break;
--            
-+
-         case REGION_MKK:    // 14
--            if (channel == 14)              
-+            if (channel == 14)
-                 return 1;
-             break;
--            
-+
-         case REGION_MKK1:   // 1 - 14
-             if ((channel > 0) && (channel < 15))
-                 return 1;
-             break;
--            
-+
-         case REGION_ISRAEL: // 3 - 9
-             if ((channel > 2) && (channel < 10))
-                 return 1;
-             break;
--            
-+
-         default:            // Error
--            return 0;           
--    }   
-+            return 0;
-+    }
-     return (0);
--#endif    
-+#endif
- }
-diff -Nur rt2500-1.1.0-b4/Module/sync.c rt2500-cvs-2007061011/Module/sync.c
---- rt2500-1.1.0-b4/Module/sync.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/sync.c	2007-05-15 21:41:35.000000000 +0200
-@@ -1,37 +1,37 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
--
-- /*************************************************************************** 
-- *      Module Name: sync.c 
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      MarkW           8th  Dec 04     Baseline code  
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
-+
-+ /***************************************************************************
-+ *      Module Name: sync.c
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      MarkW           8th  Dec 04     Baseline code
-  *      MarkW           10th Dec 04     Rolled in Ralink 1.4.5.0
- * 		MarkW			5th  Jun 05		Fix no-SSID broadcasting assoc.
-- ***************************************************************************/ 
-+ ***************************************************************************/
- 
- #include "rt_config.h"
- 
-@@ -59,7 +59,7 @@
- /*
-     ==========================================================================
-     Description:
--        The sync state machine, 
-+        The sync state machine,
-     Parameters:
-         Sm - pointer to the state machine
-     Note:
-@@ -93,9 +93,9 @@
-     ==========================================================================
-  */
- VOID SyncStateMachineInit(
--    IN PRTMP_ADAPTER pAd, 
--    IN STATE_MACHINE *Sm, 
--    OUT STATE_MACHINE_FUNC Trans[]) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN STATE_MACHINE *Sm,
-+    OUT STATE_MACHINE_FUNC Trans[])
- {
-     StateMachineInit(Sm, (STATE_MACHINE_FUNC*)Trans, MAX_SYNC_STATE, MAX_SYNC_MSG, (STATE_MACHINE_FUNC)Drop, SYNC_IDLE, SYNC_MACHINE_BASE);
- 
-@@ -105,7 +105,7 @@
-     StateMachineSetAction(Sm, SYNC_IDLE, MT2_MLME_START_REQ, (STATE_MACHINE_FUNC)MlmeStartReqAction);
-     StateMachineSetAction(Sm, SYNC_IDLE, MT2_PEER_BEACON, (STATE_MACHINE_FUNC)PeerBeacon);
- //  StateMachineSetAction(Sm, SYNC_IDLE, MT2_PEER_PROBE_RSP, (STATE_MACHINE_FUNC)PeerBeacon);
--    StateMachineSetAction(Sm, SYNC_IDLE, MT2_PEER_PROBE_REQ, (STATE_MACHINE_FUNC)PeerProbeReqAction); 
-+    StateMachineSetAction(Sm, SYNC_IDLE, MT2_PEER_PROBE_REQ, (STATE_MACHINE_FUNC)PeerProbeReqAction);
- 
-     //column 2
-     StateMachineSetAction(Sm, JOIN_WAIT_BEACON, MT2_MLME_SCAN_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenScan);
-@@ -127,14 +127,14 @@
-     RTMPInitTimer(pAd, &pAd->Mlme.SyncAux.ScanTimer, ScanTimeout);
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Becaon timeout handler, executed in timer thread
-     ==========================================================================
-  */
- VOID BeaconTimeout(
--    IN  unsigned long data) 
-+    IN  unsigned long data)
- {
-     RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)data;
- 
-@@ -143,30 +143,30 @@
-     MlmeHandler(pAd);
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         ATIM timeout handler, executed in timer thread
-     ==========================================================================
-  */
- VOID AtimTimeout(
--    IN  unsigned long data) 
-+    IN  unsigned long data)
- {
-     RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)data;
--    
-+
-     DBGPRINT(RT_DEBUG_TRACE,"SYNC - AtimTimeout \n");
-     MlmeEnqueue(&pAd->Mlme.Queue, SYNC_STATE_MACHINE, MT2_ATIM_TIMEOUT, 0, NULL);
-     MlmeHandler(pAd);
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Scan timeout handler, executed in timer thread
-     ==========================================================================
-  */
- VOID ScanTimeout(
--    IN  unsigned long data) 
-+    IN  unsigned long data)
- {
-     RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)data;
- 
-@@ -175,15 +175,15 @@
-     MlmeHandler(pAd);
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         MLME SCAN req state machine procedure
-     ==========================================================================
-  */
- VOID MlmeScanReqAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     UCHAR          Ssid[MAX_LEN_OF_SSID], SsidLen, ScanType, BssType;
-     ULONG          Now;
-@@ -192,13 +192,13 @@
-     RTMPSuspendMsduTransmission(pAd);
- 
-     // first check the parameter sanity
--    if (MlmeScanReqSanity(pAd, 
--                          Elem->Msg, 
--                          Elem->MsgLen, 
--                          &BssType, 
--                          Ssid, 
--                          &SsidLen, 
--                          &ScanType)) 
-+    if (MlmeScanReqSanity(pAd,
-+                          Elem->Msg,
-+                          Elem->MsgLen,
-+                          &BssType,
-+                          Ssid,
-+                          &SsidLen,
-+                          &ScanType))
-     {
-         DBGPRINT(RT_DEBUG_TRACE, "SYNC - MlmeScanReqAction\n");
-         Now = jiffies;
-@@ -212,12 +212,12 @@
-         pAd->Mlme.SyncAux.ScanType = ScanType;
-         pAd->Mlme.SyncAux.SsidLen = SsidLen;
-         memcpy(pAd->Mlme.SyncAux.Ssid, Ssid, SsidLen);
--        
-+
-         // start from the first channel
-         pAd->Mlme.SyncAux.Channel = FirstChannel(pAd);
-         ScanNextChannel(pAd);
--    } 
--    else 
-+    }
-+    else
-     {
-         printk(KERN_ERR DRV_NAME "SYNC - MlmeScanReqAction() sanity check fail. BUG!!!\n");
-         pAd->Mlme.SyncMachine.CurrState = SYNC_IDLE;
-@@ -225,15 +225,15 @@
-     }
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         MLME JOIN req state machine procedure
-     ==========================================================================
-  */
- VOID MlmeJoinReqAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     BSS_ENTRY    *pBss;
-     MLME_JOIN_REQ_STRUCT *Info = (MLME_JOIN_REQ_STRUCT *)(Elem->Msg);
-@@ -255,7 +255,7 @@
-     AsicSwitchChannel(pAd, pBss->Channel);
-     AsicLockChannel(pAd, pBss->Channel);
-     DBGPRINT(RT_DEBUG_TRACE, "SYNC - Switch to channel %d, SSID %s \n", pBss->Channel, pAd->Mlme.SyncAux.Ssid);
--    DBGPRINT(RT_DEBUG_TRACE, "SYNC - Wait BEACON from %02x:%02x:%02x:%02x:%02x:%02x ...\n", 
-+    DBGPRINT(RT_DEBUG_TRACE, "SYNC - Wait BEACON from %02x:%02x:%02x:%02x:%02x:%02x ...\n",
-         pAd->Mlme.SyncAux.Bssid.Octet[0], pAd->Mlme.SyncAux.Bssid.Octet[1],
-         pAd->Mlme.SyncAux.Bssid.Octet[2], pAd->Mlme.SyncAux.Bssid.Octet[3],
-         pAd->Mlme.SyncAux.Bssid.Octet[4], pAd->Mlme.SyncAux.Bssid.Octet[5]);
-@@ -264,17 +264,17 @@
-     pAd->Mlme.SyncMachine.CurrState = JOIN_WAIT_BEACON;
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         MLME START Request state machine procedure, starting an IBSS
-     ==========================================================================
-  */
- VOID MlmeStartReqAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
--    UCHAR         Ssid[MAX_LEN_OF_SSID], SsidLen; 
-+    UCHAR         Ssid[MAX_LEN_OF_SSID], SsidLen;
- 
-     // New for WPA security suites
-     UCHAR                       VarIE[MAX_VIE_LEN];     // Total VIE length = MAX_VIE_LEN - -5
-@@ -293,20 +293,20 @@
-     TimeStamp.vv.LowPart  = 0;
-     TimeStamp.vv.HighPart = 0;
- 
--    if (MlmeStartReqSanity(pAd, Elem->Msg, Elem->MsgLen, Ssid, &SsidLen)) 
-+    if (MlmeStartReqSanity(pAd, Elem->Msg, Elem->MsgLen, Ssid, &SsidLen))
-     {
-         // reset all the timers
-         RTMPCancelTimer(&pAd->Mlme.SyncAux.ScanTimer);
-         RTMPCancelTimer(&pAd->Mlme.SyncAux.BeaconTimer);
- 
--        // PortCfg.PrivacyInvoked should have been set via OID_802_11_WEP_STATUS. 
-+        // PortCfg.PrivacyInvoked should have been set via OID_802_11_WEP_STATUS.
-         // pAd->PortCfg.PrivacyInvoked = FALSE;
- 
--        memcpy(pAd->PortCfg.Ssid, Ssid, SsidLen); 
-+        memcpy(pAd->PortCfg.Ssid, Ssid, SsidLen);
-         pAd->PortCfg.SsidLen           = SsidLen;
-         pAd->PortCfg.BssType           = BSS_INDEP;
--        Privacy = (pAd->PortCfg.WepStatus == Ndis802_11Encryption1Enabled) || 
--                  (pAd->PortCfg.WepStatus == Ndis802_11Encryption2Enabled) || 
-+        Privacy = (pAd->PortCfg.WepStatus == Ndis802_11Encryption1Enabled) ||
-+                  (pAd->PortCfg.WepStatus == Ndis802_11Encryption2Enabled) ||
-                   (pAd->PortCfg.WepStatus == Ndis802_11Encryption3Enabled);
-         pAd->PortCfg.CapabilityInfo    = CAP_GENERATE(0,1,0,0,Privacy, (pAd->PortCfg.WindowsTxPreamble == Rt802_11PreambleShort));
-         pAd->PortCfg.BeaconPeriod      = pAd->PortCfg.IbssConfig.BeaconPeriod;
-@@ -328,7 +328,7 @@
- 
-         // generate a radom number as BSSID
-         MacAddrRandomBssid(pAd, &pAd->PortCfg.Bssid);
--        AsicSetBssid(pAd, &pAd->PortCfg.Bssid); 
-+        AsicSetBssid(pAd, &pAd->PortCfg.Bssid);
-         AsicSwitchChannel(pAd, pAd->PortCfg.Channel);
-         AsicLockChannel(pAd, pAd->PortCfg.Channel);
- 
-@@ -341,17 +341,17 @@
-         if (Bssidx == BSS_NOT_FOUND)
-         {
-             Bssidx = BssTableSetEntry(pAd, &pAd->PortCfg.BssTab, &pAd->PortCfg.Bssid,
--                Ssid, SsidLen, pAd->PortCfg.BssType, pAd->PortCfg.BeaconPeriod, 
--                CfExist, &CfParm, pAd->PortCfg.AtimWin, pAd->PortCfg.CapabilityInfo, 
-+                Ssid, SsidLen, pAd->PortCfg.BssType, pAd->PortCfg.BeaconPeriod,
-+                CfExist, &CfParm, pAd->PortCfg.AtimWin, pAd->PortCfg.CapabilityInfo,
-                 pAd->PortCfg.SupportedRates, pAd->PortCfg.SupportedRatesLen, TRUE,
--                pAd->PortCfg.Channel, Elem->Rssi, TimeStamp, pVIE);
-+                pAd->PortCfg.Channel, Elem->Rssi, TimeStamp, 0, pVIE);
-         }
- #endif
- 
-         pAd->Mlme.SyncMachine.CurrState = SYNC_IDLE;
-         MlmeCntlConfirm(pAd, MT2_START_CONF, (USHORT)MLME_SUCCESS);
--    } 
--    else 
-+    }
-+    else
-     {
-         printk(KERN_ERR DRV_NAME "SYNC - MlmeStartReqAction() sanity check fail. BUG!!!\n");
-         pAd->Mlme.SyncMachine.CurrState = SYNC_IDLE;
-@@ -359,18 +359,18 @@
-     }
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         peer sends beacon back when scanning
-     ==========================================================================
-  */
- VOID PeerBeaconAtScanAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     MACADDR         Bssid, Addr2;
--    UCHAR           Ssid[MAX_LEN_OF_SSID], BssType, Channel, Rates[MAX_LEN_OF_SUPPORTED_RATES], RatesLen, 
-+    UCHAR           Ssid[MAX_LEN_OF_SSID], BssType, Channel, Rates[MAX_LEN_OF_SUPPORTED_RATES], RatesLen,
-                     SsidLen, DtimCount, DtimPeriod, BcastFlag, MessageToMe, Legacy;
-     CF_PARM         CfParm;
-     USHORT          BeaconPeriod, AtimWin, CapabilityInfo;
-@@ -383,54 +383,55 @@
- 	UCHAR           SupRateLen, ExtRateLen;
- 
-     // New for WPA security suites
--    UCHAR                       VarIE[MAX_VIE_LEN];     // Total VIE length = MAX_VIE_LEN - -5
-+    USHORT           VarIELen;	// Length of all saved IEs.
-+    UCHAR            VarIE[MAX_VIE_LEN];     // Total VIE length = MAX_VIE_LEN - -5
-     NDIS_802_11_VARIABLE_IEs    *pVIE = NULL;
- 
-     // NdisFillMemory(Ssid, MAX_LEN_OF_SSID, 0x00);
-     Fr = (MACFRAME *) Elem->Msg;
-     // Init Variable IE structure
-     pVIE = (PNDIS_802_11_VARIABLE_IEs) VarIE;
--    pVIE->Length = 0;
--    if (PeerBeaconAndProbeRspSanity(pAd, 
--                                Elem->Msg, 
--                                Elem->MsgLen, 
--                                &Addr2, 
--                                &Bssid, Ssid, 
--                                &SsidLen, 
--                                &BssType, 
--                                &BeaconPeriod, 
--                                &Channel, 
--                                &TimeStamp, 
--                                &CfExist, 
--                                &CfParm, 
--                                &AtimWin, 
--                                &CapabilityInfo, 
--                                Rates, 
-+    if (PeerBeaconAndProbeRspSanity(pAd,
-+                                Elem->Msg,
-+                                Elem->MsgLen,
-+                                &Addr2,
-+                                &Bssid, Ssid,
-+                                &SsidLen,
-+                                &BssType,
-+                                &BeaconPeriod,
-+                                &Channel,
-+                                &TimeStamp,
-+                                &CfExist,
-+                                &CfParm,
-+                                &AtimWin,
-+                                &CapabilityInfo,
-+                                Rates,
-                                 &RatesLen,
-                                 &ExtendedRateIeExist,
-                                 &Erp,
--                                &DtimCount, 
--                                &DtimPeriod, 
--                                &BcastFlag, 
--                                &MessageToMe, 
-+                                &DtimCount,
-+                                &DtimPeriod,
-+                                &BcastFlag,
-+                                &MessageToMe,
-                                 &Legacy,
-                                 SupRate,
-                                 &SupRateLen,
-                                 ExtRate,
-                                 &ExtRateLen,
--                                pVIE)) 
-+                                &VarIELen,
-+                                pVIE))
-     {
-         ULONG Idx;
-         UCHAR Rssi = 0;
- 	UCHAR Noise = 0;
- 
-         // This correct im-proper RSSI indication during SITE SURVEY issue.
--        // Always report bigger RSSI during SCANNING when receiving multiple BEACONs from the same AP. 
--        // This case happens because BEACONs come from adjacent channels, so RSSI become weaker as we 
-+        // Always report bigger RSSI during SCANNING when receiving multiple BEACONs from the same AP.
-+        // This case happens because BEACONs come from adjacent channels, so RSSI become weaker as we
-         // switch to more far away channels.
-         Idx = BssTableSearch(&pAd->PortCfg.BssTab, &Bssid);
-         if (Idx != BSS_NOT_FOUND)
--	{ 
-+	{
-             Rssi = pAd->PortCfg.BssTab.BssEntry[Idx].Rssi;
- 	    Noise = pAd->PortCfg.BssTab.BssEntry[Idx].Noise;
- 	}
-@@ -445,25 +446,25 @@
- 
-         // Mask out unnecessary capability information
-         CapabilityInfo &= SUPPORTED_CAPABILITY_INFO;
--        BssTableSetEntry(pAd, &pAd->PortCfg.BssTab, &Bssid, Ssid, SsidLen, BssType, 
--                         BeaconPeriod, CfExist, &CfParm, AtimWin, CapabilityInfo, Rates, 
--                         RatesLen, ExtendedRateIeExist, Channel, Rssi, Noise, TimeStamp, pVIE);
-+        BssTableSetEntry(pAd, &pAd->PortCfg.BssTab, &Bssid, Ssid, SsidLen, BssType,
-+                         BeaconPeriod, CfExist, &CfParm, AtimWin, CapabilityInfo, Rates,
-+                         RatesLen, ExtendedRateIeExist, Channel, Rssi, Noise, TimeStamp, VarIELen, pVIE);
-     }
-     // sanity check fail, ignored
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         When waiting joining the (I)BSS, beacon received from external
-     ==========================================================================
-  */
- VOID PeerBeaconAtJoinAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     MACADDR       Bssid, Addr2;
--    UCHAR         Ssid[MAX_LEN_OF_SSID], SsidLen, BssType, Channel, RatesLen, MessageToMe, 
-+    UCHAR         Ssid[MAX_LEN_OF_SSID], SsidLen, BssType, Channel, RatesLen, MessageToMe,
-                   Rates[MAX_LEN_OF_SUPPORTED_RATES], DtimCount, DtimPeriod, BcastFlag, Legacy;
-     LARGE_INTEGER TimeStamp;
-     USHORT        BeaconPeriod, AtimWin, CapabilityInfo;
-@@ -474,46 +475,48 @@
- 	UCHAR		  SupRateLen, ExtRateLen;
- 
- 	// New for WPA security suites
--	UCHAR						VarIE[MAX_VIE_LEN];		// Total VIE length = MAX_VIE_LEN - -5
-+    USHORT        VarIELen;				// Length of all saved IEs.
-+	UCHAR         VarIE[MAX_VIE_LEN];	// Total VIE length = MAX_VIE_LEN - -5
- 	NDIS_802_11_VARIABLE_IEs	*pVIE = NULL;
- 
- 	// Init Variable IE structure
- 	pVIE = (PNDIS_802_11_VARIABLE_IEs) VarIE;
- 	pVIE->Length = 0;
--    if (PeerBeaconAndProbeRspSanity(pAd, 
--                                Elem->Msg, 
--                                Elem->MsgLen, 
--                                &Addr2, 
--                                &Bssid, 
--                                Ssid, 
--                                &SsidLen, 
--                                &BssType, 
--                                &BeaconPeriod, 
--                                &Channel, 
--                                &TimeStamp, 
--                                &CfExist, 
--                                &Cf, 
--                                &AtimWin, 
--                                &CapabilityInfo, 
--                                Rates, 
-+    if (PeerBeaconAndProbeRspSanity(pAd,
-+                                Elem->Msg,
-+                                Elem->MsgLen,
-+                                &Addr2,
-+                                &Bssid,
-+                                Ssid,
-+                                &SsidLen,
-+                                &BssType,
-+                                &BeaconPeriod,
-+                                &Channel,
-+                                &TimeStamp,
-+                                &CfExist,
-+                                &Cf,
-+                                &AtimWin,
-+                                &CapabilityInfo,
-+                                Rates,
-                                 &RatesLen,
-                                 &ExtendedRateIeExist,
-                                 &Erp,
--                                &DtimCount, 
--                                &DtimPeriod, 
--                                &BcastFlag, 
--                                &MessageToMe, 
-+                                &DtimCount,
-+                                &DtimPeriod,
-+                                &BcastFlag,
-+                                &MessageToMe,
-                                 &Legacy,
- 								SupRate,
- 								&SupRateLen,
- 								ExtRate,
- 								&ExtRateLen,
--                                pVIE)) 
-+                                &VarIELen,
-+                                pVIE))
-     {
- 		// Disqualify 11b only adhoc when we are in 11g only adhoc mode
- 		if ((BssType == BSS_INDEP) && (pAd->PortCfg.AdhocMode == 2) && (RatesLen < 12))
- 			return;
--		
-+
- 		if (MAC_ADDR_EQUAL(&pAd->Mlme.SyncAux.Bssid, &Bssid))
-         {
-             DBGPRINT(RT_DEBUG_TRACE, "SYNC - receive desired BEACON at JoinWaitBeacon...\n");
-@@ -522,7 +525,7 @@
- 			// Update RSSI to prevent No signal display when cards first initialized
-             pAd->PortCfg.LastRssi = Elem->Rssi;
- 			pAd->PortCfg.AvgRssi  = Elem->Rssi;
--			
-+
-             if (pAd->Mlme.SyncAux.SsidLen > 0)
-             {
-             	memcpy(pAd->PortCfg.Ssid, pAd->Mlme.SyncAux.Ssid, pAd->Mlme.SyncAux.SsidLen);
-@@ -533,7 +536,7 @@
-             	memcpy(pAd->PortCfg.Ssid, Ssid, SsidLen);
-             	pAd->PortCfg.SsidLen = SsidLen;
- 			}
--        
-+
-             COPY_MAC_ADDR(&pAd->PortCfg.Bssid, &Bssid);
-             AsicSetBssid(pAd, &pAd->PortCfg.Bssid);
- 
-@@ -620,22 +623,22 @@
- 			{
-                 pAd->PortCfg.ExtRateLen = 0;
- 			}
--			
--            DBGPRINT(RT_DEBUG_TRACE, "SYNC - AP's SupportedRatesLen=%d, set STA's SupportedRateLen=%d\n", 
-+
-+            DBGPRINT(RT_DEBUG_TRACE, "SYNC - AP's SupportedRatesLen=%d, set STA's SupportedRateLen=%d\n",
-                 RatesLen, pAd->PortCfg.SupportedRatesLen);
--            
-+
- 			// Mask out unnecessary capability information
- 			CapabilityInfo &= SUPPORTED_CAPABILITY_INFO;
--			
-+
-             // Check for 802.11g information, if 802.11 b/g mixed mode.
-             // We can't support its short preamble for now.
-            	pAd->PortCfg.CapabilityInfo = CapabilityInfo;
- 
--            if ((BssType == BSS_INDEP) && (CAP_IS_IBSS_ON(CapabilityInfo))) 
-+            if ((BssType == BSS_INDEP) && (CAP_IS_IBSS_ON(CapabilityInfo)))
-             {
-                 pAd->PortCfg.AtimWin = AtimWin;
--            } 
--            else if (BssType == BSS_INFRA) 
-+            }
-+            else if (BssType == BSS_INFRA)
-             {
-                 pAd->PortCfg.CfpPeriod = Cf.CfpPeriod;
-                 pAd->PortCfg.CfpMaxDuration = Cf.CfpMaxDuration;
-@@ -650,19 +653,19 @@
-             MlmeCntlConfirm(pAd, MT2_JOIN_CONF, MLME_SUCCESS);
-         }
-         // not to me BEACON, ignored
--    } 
-+    }
-     // sanity check fail, ignore this frame
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         receive BEACON from peer
-     ==========================================================================
-  */
- VOID PeerBeacon(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     MACADDR       Bssid, Addr2;
-     CHAR          Ssid[MAX_LEN_OF_SSID];
-@@ -679,7 +682,8 @@
- 	UCHAR		  SupRateLen, ExtRateLen;
- 
-     // New for WPA security suites
--    UCHAR                       VarIE[MAX_VIE_LEN];     // Total VIE length = MAX_VIE_LEN - -5
-+    USHORT        VarIELen;				// Length of all saved IEs.
-+    UCHAR         VarIE[MAX_VIE_LEN];	// Total VIE length = MAX_VIE_LEN - -5
-     NDIS_802_11_VARIABLE_IEs    *pVIE = NULL;
- 
-     if (!INFRA_ON(pAd) && !ADHOC_ON(pAd))
-@@ -688,35 +692,36 @@
-     // Init Variable IE structure
-     pVIE = (PNDIS_802_11_VARIABLE_IEs) VarIE;
-     pVIE->Length = 0;
--    if (PeerBeaconAndProbeRspSanity(pAd, 
--                                Elem->Msg, 
--                                Elem->MsgLen, 
--                                &Addr2, 
--                                &Bssid, 
--                                Ssid, 
--                                &SsidLen, 
--                                &BssType, 
--                                &BeaconPeriod, 
--                                &Channel, 
--                                &TimeStamp, 
--                                &CfExist, 
--                                &CfParm, 
--                                &AtimWin, 
--                                &CapabilityInfo, 
--                                Rates, 
-+    if (PeerBeaconAndProbeRspSanity(pAd,
-+                                Elem->Msg,
-+                                Elem->MsgLen,
-+                                &Addr2,
-+                                &Bssid,
-+                                Ssid,
-+                                &SsidLen,
-+                                &BssType,
-+                                &BeaconPeriod,
-+                                &Channel,
-+                                &TimeStamp,
-+                                &CfExist,
-+                                &CfParm,
-+                                &AtimWin,
-+                                &CapabilityInfo,
-+                                Rates,
-                                 &RatesLen,
-                                 &ExtendedRateIeExist,
-                                 &Erp,
--                                &DtimCount, 
--                                &DtimPeriod, 
--                                &BcastFlag, 
--                                &MessageToMe, 
-+                                &DtimCount,
-+                                &DtimPeriod,
-+                                &BcastFlag,
-+                                &MessageToMe,
-                                 &Legacy,
-                                 SupRate,
-                                 &SupRateLen,
-                                 ExtRate,
-                                 &ExtRateLen,
--                                pVIE)) 
-+                                &VarIELen,
-+                                pVIE))
-     {
-         BOOLEAN is_my_bssid, is_my_ssid;
-         ULONG   Bssidx, Now;
-@@ -732,7 +737,7 @@
-             return;
- 
- 		//
--        // Housekeeping "SsidBssTab" table for later-on ROAMing usage. 
-+        // Housekeeping "SsidBssTab" table for later-on ROAMing usage.
-         //
-         Bssidx = BssTableSearch(&pAd->Mlme.CntlAux.SsidBssTab, &Bssid);
-         if (Bssidx == BSS_NOT_FOUND)
-@@ -743,24 +748,24 @@
- 				return;
- 			if (!RTMPEqualMemory(pAd->PortCfg.Ssid, pAd->Mlme.CntlAux.Ssid, pAd->PortCfg.SsidLen))
- 				return;
--			
-+
-             // discover new AP of this network, create BSS entry
--            Bssidx = BssTableSetEntry(pAd, &pAd->Mlme.CntlAux.SsidBssTab, &Bssid, Ssid, SsidLen, 
--                        BssType, BeaconPeriod, CfExist, &CfParm, AtimWin, CapabilityInfo, 
--                        Rates, RatesLen, ExtendedRateIeExist, Channel, Elem->Rssi, Elem->Noise, TimeStamp, pVIE);
-+            Bssidx = BssTableSetEntry(pAd, &pAd->Mlme.CntlAux.SsidBssTab, &Bssid, Ssid, SsidLen,
-+                        BssType, BeaconPeriod, CfExist, &CfParm, AtimWin, CapabilityInfo,
-+                        Rates, RatesLen, ExtendedRateIeExist, Channel, Elem->Rssi, Elem->Noise, TimeStamp, VarIELen, pVIE);
- 
-             if (Bssidx == BSS_NOT_FOUND) // return if BSS table full
--                return;  
-+                return;
- 
--            DBGPRINT(RT_DEBUG_TRACE, "SYNC - New AP added to SsidBssTab[%d], RSSI=%d, MAC=%02x:%02x:%02x:%02x:%02x:%02x\n", 
--                Bssidx, Elem->Rssi, Bssid.Octet[0], Bssid.Octet[1], Bssid.Octet[2], 
-+            DBGPRINT(RT_DEBUG_TRACE, "SYNC - New AP added to SsidBssTab[%d], RSSI=%d, MAC=%02x:%02x:%02x:%02x:%02x:%02x\n",
-+                Bssidx, Elem->Rssi, Bssid.Octet[0], Bssid.Octet[1], Bssid.Octet[2],
-                 Bssid.Octet[3], Bssid.Octet[4], Bssid.Octet[5]);
-         }
- 
-         // if the ssid matched & bssid unmatched, we should select the bssid with large value.
-         // This might happened when two STA start at the same time
--        if (is_my_ssid && (! is_my_bssid) && ADHOC_ON(pAd))
--        {
-+        if (is_my_ssid && (! is_my_bssid) && ADHOC_ON(pAd)
-+	    && (BssType == BSS_INDEP)) {
-             INT i;
- 			// Add to safe guard adhoc wep status mismatch
- 			if (pAd->PortCfg.WepStatus != pAd->Mlme.CntlAux.SsidBssTab.BssEntry[Bssidx].WepStatus)
-@@ -773,7 +778,7 @@
-                 {
-                     AsicDisableSync(pAd);
-                     memcpy(&pAd->PortCfg.Bssid, &Bssid, 6);
--                    AsicSetBssid(pAd, &pAd->PortCfg.Bssid); 
-+                    AsicSetBssid(pAd, &pAd->PortCfg.Bssid);
-                     MakeIbssBeacon(pAd);
-                     AsicEnableIbssSync(pAd);
-                     break;
-@@ -781,9 +786,9 @@
-             }
-         }
- 
--        DBGPRINT(RT_DEBUG_INFO, "SYNC - PeerBeacon from %02x:%02x:%02x:%02x:%02x:%02x - Dtim=%d/%d, Rssi=%02x\n", 
--            Bssid.Octet[0], Bssid.Octet[1], Bssid.Octet[2], 
--            Bssid.Octet[3], Bssid.Octet[4], Bssid.Octet[5], 
-+        DBGPRINT(RT_DEBUG_INFO, "SYNC - PeerBeacon from %02x:%02x:%02x:%02x:%02x:%02x - Dtim=%d/%d, Rssi=%02x\n",
-+            Bssid.Octet[0], Bssid.Octet[1], Bssid.Octet[2],
-+            Bssid.Octet[3], Bssid.Octet[4], Bssid.Octet[5],
-             DtimCount, DtimPeriod, Elem->Rssi);
- 
-         Now = jiffies;
-@@ -793,24 +798,24 @@
- 
-         //
-         // BEACON from my BSSID - either IBSS or INFRA network
--        // 
-+        //
-         if (is_my_bssid)
-         {
--            // 2002/12/06 - patch Abocom AP bug, which forgets to set "Privacy" bit in 
--            // AssocRsp even though this bit is ON in Beacon. So we update according 
-+            // 2002/12/06 - patch Abocom AP bug, which forgets to set "Privacy" bit in
-+            // AssocRsp even though this bit is ON in Beacon. So we update according
-             // to following Beacon frame.
-             // pAd->PortCfg.PrivacyInvoked = CAP_IS_PRIVACY_ON(CapabilityInfo);
--            
-+
-             pAd->PortCfg.LastBeaconRxTime = Now;
- #if 1
-             // at least one 11b peer joined. downgrade the MaxTxRate to 11Mbps
-             // after last 11b peer left for several seconds, we'll auto switch back to 11G rate
-             // in MlmePeriodicExec()
--            if (ADHOC_ON(pAd) && (RatesLen <= 4))   
-+            if (ADHOC_ON(pAd) && (RatesLen <= 4))
-             {
-                 // this timestamp is for MlmePeriodicExec() to check if all 11B peers have left
-                 pAd->PortCfg.Last11bBeaconRxTime = Now;
--                
-+
-                 if (pAd->PortCfg.MaxTxRate > RATE_11)
-                 {
-                     DBGPRINT(RT_DEBUG_TRACE, "SYNC - 11b peer joined. down-grade to 11b TX rates \n");
-@@ -828,22 +833,22 @@
-                 (pAd->PortCfg.LastRssi < pAd->PortCfg.RssiTrigger))
-             {
-                 // NDIS_802_11_RSSI Dbm = pAd->PortCfg.LastRssi - RSSI_TO_DBM_OFFSET;
--                // DBGPRINT(RT_DEBUG_TRACE, "SYNC - NdisMIndicateStatus *** RSSI %d dBm, less than threshold %d dBm\n", 
-+                // DBGPRINT(RT_DEBUG_TRACE, "SYNC - NdisMIndicateStatus *** RSSI %d dBm, less than threshold %d dBm\n",
-                 //     Dbm, pAd->PortCfg.RssiTrigger - RSSI_TO_DBM_OFFSET);
-             }
-             else if ((pAd->PortCfg.RssiTriggerMode == RSSI_TRIGGERED_UPON_EXCCEED_THRESHOLD) &&
-                 (pAd->PortCfg.LastRssi > pAd->PortCfg.RssiTrigger))
-             {
-                 // NDIS_802_11_RSSI Dbm = pAd->PortCfg.LastRssi - RSSI_TO_DBM_OFFSET;
--                // DBGPRINT(RT_DEBUG_TRACE, "SYNC - NdisMIndicateStatus *** RSSI %d dBm, greater than threshold %d dBm\n", 
-+                // DBGPRINT(RT_DEBUG_TRACE, "SYNC - NdisMIndicateStatus *** RSSI %d dBm, greater than threshold %d dBm\n",
-                 //     Dbm, pAd->PortCfg.RssiTrigger - RSSI_TO_DBM_OFFSET);
-             }
- 
-             if (INFRA_ON(pAd)) // && (pAd->PortCfg.PhyMode == PHY_11BG_MIXED))
-             {
-                 BOOLEAN bUseShortSlot, bUseBGProtection;
--                
--                // decide to use/change to - 
-+
-+                // decide to use/change to -
-                 //      1. long slot (20 us) or short slot (9 us) time
-                 //      2. turn on/off RTS/CTS and/or CTS-to-self protection
-                 //      3. short preamble
-@@ -867,7 +872,7 @@
-             }
- 
-             // only INFRASTRUCTURE mode support power-saving feature
--            if (INFRA_ON(pAd) && (pAd->PortCfg.Psm == PWR_SAVE)) 
-+            if (INFRA_ON(pAd) && (pAd->PortCfg.Psm == PWR_SAVE))
-             {
-                 //  1. AP has backlogged unicast-to-me frame, stay AWAKE, send PSPOLL
-                 //  2. AP has backlogged broadcast/multicast frame and we want those frames, stay AWAKE
-@@ -882,17 +887,17 @@
-                 else if (BcastFlag && (DtimCount == 0) && pAd->PortCfg.RecvDtim)
-                 {
-                     DBGPRINT(RT_DEBUG_TRACE, "SYNC - AP backlog broadcast/multicast, stay AWAKE\n");
--                } 
-+                }
-                 else if ((RTMPFreeDescriptorRequest(pAd, TX_RING, TX_RING_SIZE) != NDIS_STATUS_SUCCESS) ||
-                     (RTMPFreeDescriptorRequest(pAd, PRIO_RING, PRIO_RING_SIZE) != NDIS_STATUS_SUCCESS))
-                 {
-                     DBGPRINT(RT_DEBUG_TRACE, "SYNC - outgoing frame in TxRing/PrioRing, stay AWAKE\n");
-                 }
--                else 
-+                else
-                 {
-                     USHORT NextDtim = DtimCount;
- 
--                    if (NextDtim == 0) 
-+                    if (NextDtim == 0)
-                         NextDtim = DtimPeriod;
- 
-                     TbttNumToNextWakeUp = pAd->PortCfg.DefaultListenCount;
-@@ -906,20 +911,21 @@
- 
- #ifndef SINGLE_ADHOC_LINKUP
-             // At least another peer in this IBSS, declare MediaState as CONNECTED
--            if (ADHOC_ON(pAd) && (pAd->MediaState == NdisMediaStateDisconnected))
--            {
-+            if (ADHOC_ON(pAd)
-+		&& (pAd->MediaState == NdisMediaStateDisconnected)
-+		&& (BssType == BSS_INDEP)) {
-                 pAd->MediaState = NdisMediaStateConnected;
- 
-                 // 2003/03/12 - john
-                 // Make sure this entry in "PortCfg.BssTab" table, thus complies to Microsoft's policy that
--                // "site survey" result should always include the current connected network. 
-+                // "site survey" result should always include the current connected network.
-                 //
-                 Bssidx = BssTableSearch(&pAd->PortCfg.BssTab, &Bssid);
-                 if (Bssidx == BSS_NOT_FOUND)
-                 {
--                    Bssidx = BssTableSetEntry(pAd, &pAd->PortCfg.BssTab, &Bssid, Ssid, SsidLen, 
--                                BssType, BeaconPeriod, CfExist, &CfParm, AtimWin, CapabilityInfo, 
--                                Rates, RatesLen, ExtendedRateIeExist, Channel, Elem->Rssi, Elem->Noise, TimeStamp, pVIE);
-+                    Bssidx = BssTableSetEntry(pAd, &pAd->PortCfg.BssTab, &Bssid, Ssid, SsidLen,
-+                                BssType, BeaconPeriod, CfExist, &CfParm, AtimWin, CapabilityInfo,
-+                                Rates, RatesLen, ExtendedRateIeExist, Channel, Elem->Rssi, Elem->Noise, TimeStamp, VarIELen, pVIE);
-                 }
-             }
- #endif
-@@ -929,15 +935,15 @@
-     // sanity check fail, ignore this frame
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Receive PROBE REQ from remote peer when operating in IBSS mode
-     ==========================================================================
-  */
- VOID PeerProbeReqAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     MACADDR       Addr2;
-     CHAR          Ssid[MAX_LEN_OF_SSID];
-@@ -947,13 +953,13 @@
-     UCHAR         *OutBuffer = NULL;
-     ULONG         FrameLen = 0;
-     LARGE_INTEGER FakeTimestamp;
--    UCHAR         SsidIe = IE_SSID, DsIe = IE_DS_PARM, IbssIe = IE_IBSS_PARM, SuppIe = IE_SUPP_RATES, 
-+    UCHAR         SsidIe = IE_SSID, DsIe = IE_DS_PARM, IbssIe = IE_IBSS_PARM, SuppIe = IE_SUPP_RATES,
-                   DsLen = 1, IbssLen = 2;
-     UCHAR         SupportedRatesLen;
-     UCHAR         SupportedRates[MAX_LEN_OF_SUPPORTED_RATES];
-     UCHAR         ExtRateIe = IE_EXT_SUPP_RATES, ExtRatesLen;
-     UCHAR         ErpIe[3] = {IE_ERP, 1, 0};
--    
-+
-     if (! ADHOC_ON(pAd))
-         return;
- 
-@@ -962,8 +968,8 @@
-         if ((SsidLen == 0) || RTMPEqualMemory(Ssid, pAd->PortCfg.Ssid, (ULONG) SsidLen))
-         {
-             CSR15_STRUC Csr15;
--            
--            // we should respond a ProbeRsp only when we're the last BEACON transmitter 
-+
-+            // we should respond a ProbeRsp only when we're the last BEACON transmitter
-             // in this ADHOC network.
-             RTMP_IO_READ32(pAd, CSR15, &Csr15.word);
-             if (Csr15.field.BeaconSent == 0)
-@@ -1016,28 +1022,28 @@
-                 return;
- 
-             pAd->PortCfg.AtimWin = 0;  // ??????
--            DBGPRINT(RT_DEBUG_TRACE, "SYNC - Send PROBE_RSP to %02x:%02x:%02x:%02x:%02x:%02x...\n", 
-+            DBGPRINT(RT_DEBUG_TRACE, "SYNC - Send PROBE_RSP to %02x:%02x:%02x:%02x:%02x:%02x...\n",
-                 Addr2.Octet[0],Addr2.Octet[1],Addr2.Octet[2],Addr2.Octet[3],Addr2.Octet[4],Addr2.Octet[5] );
-             MgtMacHeaderInit(pAd, &ProbeRspHdr, SUBTYPE_PROBE_RSP, 0, &Addr2, &pAd->PortCfg.Bssid);
- 
-             if (SupportedRatesLen <= 8)
-             {
--                MakeOutgoingFrame(OutBuffer,                        &FrameLen, 
--                              MAC_HDR_LEN,                      &ProbeRspHdr, 
-+                MakeOutgoingFrame(OutBuffer,                        &FrameLen,
-+                              MAC_HDR_LEN,                      &ProbeRspHdr,
-                               TIMESTAMP_LEN,                    &FakeTimestamp,
-                               2,                                &pAd->PortCfg.BeaconPeriod,
-                               2,                                &pAd->PortCfg.CapabilityInfo,
--                              1,                                &SsidIe, 
--                              1,                                &pAd->PortCfg.SsidLen, 
-+                              1,                                &SsidIe,
-+                              1,                                &pAd->PortCfg.SsidLen,
-                               pAd->PortCfg.SsidLen,             pAd->PortCfg.Ssid,
--                              1,                                &SuppIe, 
-+                              1,                                &SuppIe,
-                               1,                                &SupportedRatesLen,
--                              SupportedRatesLen,                SupportedRates, 
--                              1,                                &DsIe, 
--                              1,                                &DsLen, 
-+                              SupportedRatesLen,                SupportedRates,
-+                              1,                                &DsIe,
-+                              1,                                &DsLen,
-                               1,                                &pAd->PortCfg.Channel,
--                              1,                                &IbssIe, 
--                              1,                                &IbssLen, 
-+                              1,                                &IbssIe,
-+                              1,                                &IbssLen,
-                               2,                                &pAd->PortCfg.AtimWin,
-                               END_OF_ARGS);
-             }
-@@ -1045,22 +1051,22 @@
-             {
-                 ExtRatesLen = SupportedRatesLen - 8;
-                 SupportedRatesLen = 8;
--                MakeOutgoingFrame(OutBuffer,                        &FrameLen, 
--                              MAC_HDR_LEN,                      &ProbeRspHdr, 
-+                MakeOutgoingFrame(OutBuffer,                        &FrameLen,
-+                              MAC_HDR_LEN,                      &ProbeRspHdr,
-                               TIMESTAMP_LEN,                    &FakeTimestamp,
-                               2,                                &pAd->PortCfg.BeaconPeriod,
-                               2,                                &pAd->PortCfg.CapabilityInfo,
--                              1,                                &SsidIe, 
--                              1,                                &pAd->PortCfg.SsidLen, 
-+                              1,                                &SsidIe,
-+                              1,                                &pAd->PortCfg.SsidLen,
-                               pAd->PortCfg.SsidLen,             pAd->PortCfg.Ssid,
--                              1,                                &SuppIe, 
-+                              1,                                &SuppIe,
-                               1,                                &SupportedRatesLen,
--                              SupportedRatesLen,                SupportedRates, 
--                              1,                                &DsIe, 
--                              1,                                &DsLen, 
-+                              SupportedRatesLen,                SupportedRates,
-+                              1,                                &DsIe,
-+                              1,                                &DsLen,
-                               1,                                &pAd->PortCfg.Channel,
--                              1,                                &IbssIe, 
--                              1,                                &IbssLen, 
-+                              1,                                &IbssIe,
-+                              1,                                &IbssLen,
-                               2,                                &pAd->PortCfg.AtimWin,
-                               3,                                ErpIe,
-                               1,                                &ExtRateIe,
-@@ -1073,7 +1079,7 @@
- 			{
- 				ULONG	tmp;
- 				UCHAR	WpaIe = IE_WPA;
--				
-+
- 				if (pAd->PortCfg.WepStatus == Ndis802_11Encryption2Enabled) 	// Tkip
- 				{
- 				MakeOutgoingFrame(OutBuffer + FrameLen,			&tmp,
-@@ -1092,43 +1098,43 @@
- 							END_OF_ARGS);
- 					FrameLen += tmp;
- 				}
--			}                
-+			}
-             MiniportMMRequest(pAd, OutBuffer, FrameLen);
-         }
-     }
- }
- 
- VOID BeaconTimeoutAtJoinAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     DBGPRINT(RT_DEBUG_TRACE, "SYNC - BeaconTimeoutAtJoinAction\n");
-     pAd->Mlme.SyncMachine.CurrState = SYNC_IDLE;
-     MlmeCntlConfirm(pAd, MT2_JOIN_CONF, MLME_REJ_TIMEOUT);
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Scan timeout procedure. basically add channel index by 1 and rescan
-     ==========================================================================
-  */
- VOID ScanTimeoutAction(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     pAd->Mlme.SyncAux.Channel = NextChannel(pAd, pAd->Mlme.SyncAux.Channel);
-     ScanNextChannel(pAd);
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Scan next channel
-     ==========================================================================
-  */
- VOID ScanNextChannel(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
-     MACHDR          Hdr;
-     UCHAR           SsidIe = IE_SSID, SuppRateIe = IE_SUPP_RATES;
-@@ -1138,36 +1144,36 @@
-     ULONG           FrameLen = 0;
-     UCHAR           SsidLen = 0;
- 
--    if (pAd->Mlme.SyncAux.Channel == 0) 
-+    if (pAd->Mlme.SyncAux.Channel == 0)
-     {
-         DBGPRINT(RT_DEBUG_INFO, "SYNC - End of SCAN, restore to channel %d\n",pAd->PortCfg.Channel);
-         AsicSwitchChannel(pAd, pAd->PortCfg.Channel);
-         AsicLockChannel(pAd, pAd->PortCfg.Channel);
--        
-+
-         pAd->Mlme.SyncMachine.CurrState = SYNC_IDLE;
-         MlmeCntlConfirm(pAd, MT2_SCAN_CONF, MLME_SUCCESS);
--    } 
--    else 
-+    }
-+    else
-     {
-         AsicSwitchChannel(pAd, pAd->Mlme.SyncAux.Channel);
- 
--        // Total SCAN time still limits within 3 sec (DDK constraint). 
-+        // Total SCAN time still limits within 3 sec (DDK constraint).
-         // TODO: We need more intelligent rules here to further improve out-of-service issue.
-         // e.g. temporary stop copying NDIS packet to TxRing until SCAN complete
- //      if (INFRA_ON(pAd) || ADHOC_ON(pAd))
- 
- 		// We need to shorten active scan time in order for WZC connect issue
--        if (pAd->Mlme.SyncAux.ScanType == SCAN_ACTIVE) 
--            RTMPSetTimer(pAd, &pAd->Mlme.SyncAux.ScanTimer, ACTIVE_SCAN_TIME); 
-+        if (pAd->Mlme.SyncAux.ScanType == SCAN_ACTIVE)
-+            RTMPSetTimer(pAd, &pAd->Mlme.SyncAux.ScanTimer, ACTIVE_SCAN_TIME);
-         else if (pAd->PortCfg.PhyMode == PHY_11ABG_MIXED)
--            RTMPSetTimer(pAd, &pAd->Mlme.SyncAux.ScanTimer, MIN_CHANNEL_TIME); 
-+            RTMPSetTimer(pAd, &pAd->Mlme.SyncAux.ScanTimer, MIN_CHANNEL_TIME);
-         else
-             RTMPSetTimer(pAd, &pAd->Mlme.SyncAux.ScanTimer, MAX_CHANNEL_TIME);
- 
- 		MgtMacHeaderInit(pAd, &Hdr, SUBTYPE_PROBE_REQ, 0, &pAd->PortCfg.Broadcast, &pAd->PortCfg.Broadcast);
- 		// There is no need to send broadcast probe request if active scan is in effect.
- 		// The same rulr should apply to passive scan also.
--        if (pAd->Mlme.SyncAux.ScanType == SCAN_PASSIVE) 
-+        if (pAd->Mlme.SyncAux.ScanType == SCAN_PASSIVE)
-         {
- 			// Send the first probe request with empty SSID
-             NStatus = MlmeAllocateMemory(pAd, (PVOID)&OutBuffer);  //Get an unused nonpaged memory
-@@ -1184,15 +1190,15 @@
-             MakeOutgoingFrame(OutBuffer,        &FrameLen,
-                           sizeof(MACHDR),   (UCHAR*)&Hdr,
-                               1,                &SsidIe,
--                              1,                &SsidLen,  
-+                              1,                &SsidLen,
-                               1,                &SuppRateIe,
-                               1,                &pAd->PortCfg.SupportedRatesLen,
--                              pAd->PortCfg.SupportedRatesLen, pAd->PortCfg.SupportedRates, 
-+                              pAd->PortCfg.SupportedRatesLen, pAd->PortCfg.SupportedRates,
-                               END_OF_ARGS);
--                              
-+
-             MiniportMMRequest(pAd, OutBuffer, FrameLen);
-         }
--        else if (pAd->Mlme.SyncAux.ScanType == SCAN_ACTIVE) 
-+        else if (pAd->Mlme.SyncAux.ScanType == SCAN_ACTIVE)
-         {
-             // Allocate another for probe scan with SSID
-             NStatus = MlmeAllocateMemory(pAd, (PVOID)&OutBuffer2);  //Get an unused nonpaged memory
-@@ -1212,9 +1218,9 @@
-                               SsidLen,			pAd->PortCfg.Ssid,
-                               1,                &SuppRateIe,
-                               1,                &pAd->PortCfg.SupportedRatesLen,
--                              pAd->PortCfg.SupportedRatesLen, pAd->PortCfg.SupportedRates, 
-+                              pAd->PortCfg.SupportedRatesLen, pAd->PortCfg.SupportedRates,
-                               END_OF_ARGS);
--                              
-+
-             MiniportMMRequest(pAd, OutBuffer2, FrameLen);
- 
-  			DBGPRINT(RT_DEBUG_INFO, "SYNC - send active ProbeReq @ channel=%d with essid=%s\n", pAd->Mlme.SyncAux.Channel, pAd->PortCfg.Ssid);
-@@ -1224,55 +1230,55 @@
-     }
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-     ==========================================================================
-  */
- VOID InvalidStateWhenScan(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     DBGPRINT(RT_DEBUG_TRACE, "AYNC - InvalidStateWhenScan(state=%d). Reset SYNC machine\n", pAd->Mlme.SyncMachine.CurrState);
-     pAd->Mlme.SyncMachine.CurrState = SYNC_IDLE;
-     MlmeCntlConfirm(pAd, MT2_SCAN_CONF, MLME_STATE_MACHINE_REJECT);
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-     ==========================================================================
-  */
- VOID InvalidStateWhenJoin(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     DBGPRINT(RT_DEBUG_TRACE, "InvalidStateWhenJoin(state=%d). Reset SYNC machine\n", pAd->Mlme.SyncMachine.CurrState);
-     pAd->Mlme.SyncMachine.CurrState = SYNC_IDLE;
-     MlmeCntlConfirm(pAd, MT2_JOIN_CONF, MLME_STATE_MACHINE_REJECT);
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-     ==========================================================================
-  */
- VOID InvalidStateWhenStart(
--    IN PRTMP_ADAPTER pAd, 
--    IN MLME_QUEUE_ELEM *Elem) 
-+    IN PRTMP_ADAPTER pAd,
-+    IN MLME_QUEUE_ELEM *Elem)
- {
-     DBGPRINT(RT_DEBUG_TRACE, "InvalidStateWhenStart(state=%d). Reset SYNC machine\n", pAd->Mlme.SyncMachine.CurrState);
-     pAd->Mlme.SyncMachine.CurrState = SYNC_IDLE;
-     MlmeCntlConfirm(pAd, MT2_START_CONF, MLME_STATE_MACHINE_REJECT);
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-     ==========================================================================
-  */
- VOID EnqueuePsPoll(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
-     NDIS_STATUS    NState;
-     PSPOLL_FRAME   *PsFr;
-@@ -1291,10 +1297,10 @@
- // driver force send out a BEACON frame to cover ADHOC mode BEACON starving issue
- // that is, in ADHOC mode, driver guarantee itself can send out at least a BEACON
- // per a specified duration, even the peer's clock is faster than us and win all the
--// hardware-based BEACON TX oppertunity. 
-+// hardware-based BEACON TX oppertunity.
- // we may remove this software feature once 2560 IC fix this problem in ASIC.
- VOID EnqueueBeaconFrame(
--    IN PRTMP_ADAPTER pAd) 
-+    IN PRTMP_ADAPTER pAd)
- {
-     NDIS_STATUS    NState;
-     PTXD_STRUC     pTxD = (PTXD_STRUC)pAd->BeaconRing.va_addr;
-@@ -1313,10 +1319,10 @@
-     }
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
--        Send out a NULL frame to AP. The prpose is to inform AP this client 
-+        Send out a NULL frame to AP. The prpose is to inform AP this client
-         current PSM bit.
-     NOTE:
-         This routine should only be used in infrastructure mode.
-@@ -1324,7 +1330,7 @@
-  */
- VOID EnqueueNullFrame(
-     IN PRTMP_ADAPTER pAd,
--    IN UCHAR         TxRate) 
-+    IN UCHAR         TxRate)
- {
-     NDIS_STATUS    NState;
-     MACHDR         *NullFr;
-@@ -1339,7 +1345,7 @@
-     }
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-     ==========================================================================
-@@ -1359,7 +1365,7 @@
-     if (NState == NDIS_STATUS_SUCCESS)
-     {
-         MgtMacHeaderInit(pAd, &Hdr, SUBTYPE_PROBE_REQ, 0, &pAd->PortCfg.Broadcast, &pAd->PortCfg.Broadcast);
--            
-+
-         // this ProbeRequest explicitly specify SSID to reduce unwanted ProbeResponse
-         MakeOutgoingFrame(OutBuffer,                      &FrameLen,
-                           sizeof(MACHDR),                 &Hdr,
-@@ -1368,13 +1374,13 @@
-                           pAd->PortCfg.SsidLen,           pAd->PortCfg.Ssid,
-                           1,                              &SuppRateIe,
-                           1,                              &pAd->PortCfg.SupportedRatesLen,
--                          pAd->PortCfg.SupportedRatesLen, pAd->PortCfg.SupportedRates, 
-+                          pAd->PortCfg.SupportedRatesLen, pAd->PortCfg.SupportedRates,
-                           END_OF_ARGS);
-         MiniportMMRequest(pAd, OutBuffer, FrameLen);
-     }
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         Update PortCfg->ChannelList[] according to 1) Country Region 2) RF IC type,
-@@ -1464,7 +1470,7 @@
-     }
- 
-     pAd->PortCfg.ChannelListNum = index;
--    DBGPRINT(RT_DEBUG_TRACE,"country code=%d, RFIC=%d, PHY mode=%d, support %d channels\n", 
-+    DBGPRINT(RT_DEBUG_TRACE,"country code=%d, RFIC=%d, PHY mode=%d, support %d channels\n",
-         pAd->PortCfg.CountryRegion, pAd->PortCfg.RfType, pAd->PortCfg.PhyMode, pAd->PortCfg.ChannelListNum);
-     for (i=0;i<index;i++)
-     {
-@@ -1472,10 +1478,10 @@
-     }
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
--        This routine return the first channel number according to the country 
-+        This routine return the first channel number according to the country
-         code selection and RF IC selection (signal band or dual band). It is called
-         whenever driver need to start a site survey of all supported channels.
-     Return:
-@@ -1488,7 +1494,7 @@
-     return pAd->PortCfg.ChannelList[0];
- }
- 
--/* 
-+/*
-     ==========================================================================
-     Description:
-         This routine returns the next channel number. This routine is called
-@@ -1500,12 +1506,12 @@
-     ==========================================================================
-  */
- UCHAR NextChannel(
--    IN PRTMP_ADAPTER pAd, 
-+    IN PRTMP_ADAPTER pAd,
-     IN UCHAR channel)
- {
-     int i;
-     UCHAR next_channel = 0;
--            
-+
-     for (i = 0; i < (pAd->PortCfg.ChannelListNum - 1); i++)
-         if (channel == pAd->PortCfg.ChannelList[i])
-         {
-diff -Nur rt2500-1.1.0-b4/Module/unload rt2500-cvs-2007061011/Module/unload
---- rt2500-1.1.0-b4/Module/unload	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/unload	1970-01-01 01:00:00.000000000 +0100
-@@ -1,2 +0,0 @@
--/sbin/ifconfig ra0 down
--/sbin/rmmod rt2500
-\ Kein Zeilenumbruch am Dateiende.
-diff -Nur rt2500-1.1.0-b4/Module/wpa.c rt2500-cvs-2007061011/Module/wpa.c
---- rt2500-1.1.0-b4/Module/wpa.c	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/wpa.c	2007-05-15 21:41:35.000000000 +0200
-@@ -1,37 +1,37 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
--
-- /*************************************************************************** 
-- *      Module Name: wpa.c 
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      JanL            22nd Jul 03     Initial code     
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
-+
-+ /***************************************************************************
-+ *      Module Name: wpa.c
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      JanL            22nd Jul 03     Initial code
-  *      PaulL           28th Nov 03     Modify for supplicant
-  *      MarkW           8th  Dec 04     Baseline code
-- ***************************************************************************/ 
-+ ***************************************************************************/
- 
- #include "rt_config.h"
- 
-@@ -47,6 +47,7 @@
-         };
- UCHAR   CipherWpaPskTkipLen = (sizeof(CipherWpaPskTkip) / sizeof(UCHAR));
- 
-+// Needed for APs using WPA1 IEs (#221) to indicate CCMP encryption
- UCHAR   CipherWpaPskAes[] = {
-         0xDD, 0x16,             // RSN IE
-         0x00, 0x50, 0xf2, 0x01, // oui
-@@ -59,16 +60,19 @@
-         };
- UCHAR   CipherWpaPskAesLen = (sizeof(CipherWpaPskAes) / sizeof(UCHAR));
- 
-+static UCHAR MSOUI[] = {0x00, 0x50, 0xf2, 0x01};	// Microsoft OUI
-+static UCHAR WGOUI[] = {0x00, 0x0f, 0xac};	// 802.11i Working Group OUI
-+
- /*
-     ========================================================================
--    
-+
-     Routine Description:
-         Classify WPA EAP message type
- 
-     Arguments:
-         EAPType     Value of EAP message type
-         MsgType     Internal Message definition for MLME state machine
--        
-+
-     Return Value:
-         TRUE        Found appropriate message type
-         FALSE       No appropriate message type
-@@ -76,12 +80,12 @@
-     Note:
-         All these constants are defined in wpa.h
-         For supplicant, there is only EAPOL Key message avaliable
--        
-+
-     ========================================================================
- */
- BOOLEAN WpaMsgTypeSubst(
-     IN  UCHAR   EAPType,
--    OUT ULONG   *MsgType)   
-+    OUT ULONG   *MsgType)
- {
-     switch (EAPType)
-     {
-@@ -102,23 +106,23 @@
-             break;
-         default:
-             DBGPRINT(RT_DEBUG_INFO, "WpaMsgTypeSubst : return FALSE; \n");
--            return FALSE;       
--    }   
-+            return FALSE;
-+    }
-     return TRUE;
- }
- 
--/*  
-+/*
-     ==========================================================================
--    Description: 
-+    Description:
-         association state machine init, including state transition and timer init
--    Parameters: 
-+    Parameters:
-         S - pointer to the association state machine
-     ==========================================================================
-  */
- VOID WpaPskStateMachineInit(
--    IN  PRTMP_ADAPTER   pAd, 
--    IN  STATE_MACHINE *S, 
--    OUT STATE_MACHINE_FUNC Trans[]) 
-+    IN  PRTMP_ADAPTER   pAd,
-+    IN  STATE_MACHINE *S,
-+    OUT STATE_MACHINE_FUNC Trans[])
- {
-     StateMachineInit(S, (STATE_MACHINE_FUNC*)Trans, MAX_WPA_PSK_STATE, MAX_WPA_PSK_MSG, (STATE_MACHINE_FUNC)Drop, WPA_PSK_IDLE, WPA_MACHINE_BASE);
-     StateMachineSetAction(S, WPA_PSK_IDLE, EAP_MSG_TYPE_EAPOLKey, (STATE_MACHINE_FUNC)WpaEAPOLKeyAction);
-@@ -127,10 +131,10 @@
- /*
-     ==========================================================================
-     Description:
--        This is state machine function. 
--        When receiving EAPOL packets which is  for 802.1x key management. 
--        Use both in WPA, and WPAPSK case. 
--        In this function, further dispatch to different functions according to the received packet.  3 categories are : 
-+        This is state machine function.
-+        When receiving EAPOL packets which is  for 802.1x key management.
-+        Use both in WPA, and WPAPSK case.
-+        In this function, further dispatch to different functions according to the received packet.  3 categories are :
-           1.  normal 4-way pairwisekey and 2-way groupkey handshake
-           2.  MIC error (Countermeasures attack)  report packet from STA.
-           3.  Request for pairwise/group key update from STA
-@@ -138,13 +142,13 @@
-     ==========================================================================
- */
- VOID WpaEAPOLKeyAction(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  MLME_QUEUE_ELEM *Elem) 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  MLME_QUEUE_ELEM *Elem)
- {
-     INT             MsgType;
-     UCHAR           ZeroReplay[LEN_KEY_DESC_REPLAY];
-     PKEY_DESCRIPTER pKeyDesc;
--    
-+
-     DBGPRINT(RT_DEBUG_TRACE, "-----> WpaEAPOLKeyAction\n");
-     // Get 802.11 header first
-     pKeyDesc = (PKEY_DESCRIPTER) &Elem->Msg[(LENGTH_802_11 + LENGTH_802_1_H + LENGTH_EAPOL_H)];
-@@ -153,9 +157,12 @@
- 	*(USHORT *)((UCHAR *)pKeyDesc+1) = SWAP16(*(USHORT *)((UCHAR *)pKeyDesc+1));
- #endif
-     // Sanity check, this should only happen in WPA-PSK mode
--    if (pAdapter->PortCfg.AuthMode != Ndis802_11AuthModeWPAPSK)
-+    if (pAdapter->PortCfg.AuthMode != Ndis802_11AuthModeWPAPSK) {
-+    	DBGPRINT(RT_DEBUG_TRACE,
-+				"<----- WpaEAPOLKeyAction - AuthMode (%d) != WPPSK\n",
-+				pAdapter->PortCfg.AuthMode);
-         return;
--
-+	}
-     // 0. Debug print all bit information
-     DBGPRINT(RT_DEBUG_INFO, "KeyInfo Key Description Version %d\n", pKeyDesc->KeyInfo.KeyDescVer);
-     DBGPRINT(RT_DEBUG_INFO, "KeyInfo Key Type %d\n", pKeyDesc->KeyInfo.KeyType);
-@@ -167,7 +174,7 @@
-     DBGPRINT(RT_DEBUG_INFO, "KeyInfo Error %d\n", pKeyDesc->KeyInfo.Error);
-     DBGPRINT(RT_DEBUG_INFO, "KeyInfo Request %d\n", pKeyDesc->KeyInfo.Request);
-     DBGPRINT(RT_DEBUG_INFO, "KeyInfo DL %d\n", pKeyDesc->KeyInfo.DL);
--    
-+
-     // 1. Check EAPOL frame version and type
-     if ((Elem->Msg[LENGTH_802_11+LENGTH_802_1_H] != EAPOL_VER) || (pKeyDesc->Type != RSN_KEY_DESC))
-     {
-@@ -190,9 +197,18 @@
-     // First validate replay counter, only accept message with larger replay counter
-     // Let equal pass, some AP start with all zero replay counter
-     memset(ZeroReplay, 0, LEN_KEY_DESC_REPLAY);
--    if ((RTMPCompareMemory(pKeyDesc->ReplayCounter, pAdapter->PortCfg.ReplayCounter, LEN_KEY_DESC_REPLAY) != 1) &&
--        (RTMPCompareMemory(pKeyDesc->ReplayCounter, ZeroReplay, LEN_KEY_DESC_REPLAY) != 0))
-+    if ((RTMPCompareMemory(pKeyDesc->ReplayCounter,
-+			pAdapter->PortCfg.ReplayCounter, LEN_KEY_DESC_REPLAY) != 1) &&
-+        (RTMPCompareMemory(pKeyDesc->ReplayCounter,
-+						 ZeroReplay, LEN_KEY_DESC_REPLAY) != 0)) {
-+        DBGPRINT(RT_DEBUG_TRACE, "<----- %s:  Replay count error\n",
-+				__FUNCTION__);
-+		DBGHEXSTR(RT_DEBUG_TRACE, "  AP replay = ",
-+				pKeyDesc->ReplayCounter, LEN_KEY_DESC_REPLAY);
-+		DBGHEXSTR(RT_DEBUG_TRACE, "  our replay = ",
-+			pAdapter->PortCfg.ReplayCounter, LEN_KEY_DESC_REPLAY);
-         return;
-+	}
- 
-     // Classify message Type, either pairwise message 1, 3, or group message 1 for supplicant
-     MsgType = EAPOL_MSG_INVALID;
-@@ -228,12 +244,13 @@
-     {
-         MsgType = EAPOL_GROUP_MSG_1;
-         DBGPRINT(RT_DEBUG_TRACE, "Receive EAPOL Key Group Message 1\n");
--    }
--    
-+    } else
-+	DBGPRINT(RT_DEBUG_TRACE, "Receive INVALID EAPOL Key Message\n");
-+
- #ifdef BIG_ENDIAN
- 	*(USHORT *)((UCHAR *)pKeyDesc+1) = SWAP16(*(USHORT *)((UCHAR *)pKeyDesc+1));
- #endif
--    
-+
-     // We will assume link is up (assoc suceess and port not secured).
-     // All state has to be able to process message from previous state
-     switch (pAdapter->PortCfg.WpaState)
-@@ -245,7 +262,7 @@
-                 pAdapter->PortCfg.WpaState = SS_WAIT_MSG_3;
-             }
-             break;
--                
-+
-         case SS_WAIT_MSG_3:
-             if (MsgType == EAPOL_PAIR_MSG_1)
-             {
-@@ -258,7 +275,7 @@
-                 pAdapter->PortCfg.WpaState = SS_WAIT_GROUP;
-             }
-             break;
--                
-+
-         case SS_WAIT_GROUP:     // When doing group key exchange
-         case SS_FINISH:         // This happened when update group key
-             if (MsgType == EAPOL_PAIR_MSG_1)
-@@ -281,34 +298,34 @@
-                 pAdapter->PortCfg.WpaState = SS_FINISH;
-             }
-             break;
--                
-+
-         default:
--            break;              
-+            break;
-     }
--    
-+
-     DBGPRINT(RT_DEBUG_TRACE, "<----- WpaEAPOLKeyAction\n");
- }
- 
- /*
-     ========================================================================
--    
-+
-     Routine Description:
-         Process Pairwise key 4-way handshaking
- 
-     Arguments:
-         pAdapter    Pointer to our adapter
-         Elem        Message body
--        
-+
-     Return Value:
-         None
--        
-+
-     Note:
--        
-+
-     ========================================================================
- */
- VOID    WpaPairMsg1Action(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  MLME_QUEUE_ELEM *Elem) 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  MLME_QUEUE_ELEM *Elem)
- {
-     PHEADER_802_11      pHeader;
-     UCHAR               PTK[80];
-@@ -321,39 +338,39 @@
-     UCHAR               EAPHEAD[8] = {0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00,0x88,0x8e};
-     PEAPOL_PACKET       pMsg1;
-     EAPOL_PACKET        Packet;
--    UCHAR               Mic[16];    
--       
-+    UCHAR               Mic[16];
-+
-     DBGPRINT(RT_DEBUG_TRACE, "WpaPairMsg1Action ----->\n");
--    
-+
-     pHeader = (PHEADER_802_11) Elem->Msg;
--    
-+
-     // Save Data Length to pDesc for receiving packet, then put in outgoing frame   Data Len fields.
-     pMsg1 = (PEAPOL_PACKET) &Elem->Msg[LENGTH_802_11 + LENGTH_802_1_H];
--    
-+
-     // Process message 1 from authenticator
-     // Key must be Pairwise key, already verified at callee.
-     // 1. Save Replay counter, it will use to verify message 3 and construct message 2
--    memcpy(pAdapter->PortCfg.ReplayCounter, pMsg1->KeyDesc.ReplayCounter, LEN_KEY_DESC_REPLAY);     
-+    memcpy(pAdapter->PortCfg.ReplayCounter, pMsg1->KeyDesc.ReplayCounter, LEN_KEY_DESC_REPLAY);
- 
-     // 2. Save ANonce
-     memcpy(pAdapter->PortCfg.ANonce, pMsg1->KeyDesc.KeyNonce, LEN_KEY_DESC_NONCE);
--        
-+
-     // TSNonce <--- SNonce
-     // Generate random SNonce
--    GenRandom(pAdapter, pAdapter->PortCfg.SNonce);  
-+    GenRandom(pAdapter, pAdapter->PortCfg.SNonce);
- 
-     // TPTK <--- Calc PTK(ANonce, TSNonce)
--    WpaCountPTK(pAdapter->PortCfg.PskKey.Key,   
-+    WpaCountPTK(pAdapter->PortCfg.PskKey.Key,
-         pAdapter->PortCfg.ANonce,
--        pAdapter->PortCfg.Bssid.Octet, 
--        pAdapter->PortCfg.SNonce, 
--        pAdapter->CurrentAddress,    
--        PTK, 
--        LEN_PTK);   
-+        pAdapter->PortCfg.Bssid.Octet,
-+        pAdapter->PortCfg.SNonce,
-+        pAdapter->CurrentAddress,
-+        PTK,
-+        LEN_PTK);
- 
-     // Save key to PTK entry
-     memcpy(pAdapter->PortCfg.PTK, PTK, LEN_PTK);
--    
-+
-     // =====================================
-     // Use Priority Ring & MiniportMMRequest
-     // =====================================
-@@ -364,7 +381,7 @@
-     AckRate = pAdapter->PortCfg.ExpectedACKRate[pAdapter->PortCfg.TxRate];
-     AckDuration = RTMPCalcDuration(pAdapter, AckRate, 14);
-     Header_802_11.Controlhead.Duration = pAdapter->PortCfg.Dsifs + AckDuration;
--    
-+
-     // Zero message 2 body
-     memset(&Packet, 0, sizeof(Packet));
-     Packet.Version = EAPOL_VER;
-@@ -399,17 +416,17 @@
-     memcpy(Packet.KeyDesc.KeyNonce, pAdapter->PortCfg.SNonce, LEN_KEY_DESC_NONCE);
- 
-     // 5. Key Replay Count
--    memcpy(Packet.KeyDesc.ReplayCounter, pAdapter->PortCfg.ReplayCounter, LEN_KEY_DESC_REPLAY);     
--    
-+    memcpy(Packet.KeyDesc.ReplayCounter, pAdapter->PortCfg.ReplayCounter, LEN_KEY_DESC_REPLAY);
-+
- #ifdef BIG_ENDIAN
- 	*(USHORT *)(&(Packet.KeyDesc.KeyInfo)) = SWAP16(*(USHORT *)(&(Packet.KeyDesc.KeyInfo)));
- #endif
--    
-+
-     // Send EAPOL(0, 1, 0, 0, 0, K, 0, TSNonce, 0, MIC(TPTK), 0)
--    // Out buffer for transmitting message 2        
-+    // Out buffer for transmitting message 2
-     NStatus = MlmeAllocateMemory(pAdapter, (PVOID)&OutBuffer);  //Get an unused nonpaged memory
--    if (NStatus != NDIS_STATUS_SUCCESS) 
--        return;                 
-+    if (NStatus != NDIS_STATUS_SUCCESS)
-+        return;
- 
-     // Prepare EAPOL frame for MIC calculation
-     // Be careful, only EAPOL frame is counted for MIC calculation
-@@ -423,7 +440,7 @@
-     {
-         // AES
-         UCHAR digest[80];
--            
-+
-         HMAC_SHA1(OutBuffer, FrameLen, PTK, LEN_EAP_MICK, digest);
-         memcpy(Mic, digest, LEN_KEY_DESC_MIC);
-     }
-@@ -433,12 +450,12 @@
-         DBGPRINT(RT_DEBUG_INFO, " PMK = ");
-         for (i = 0; i < 16; i++)
-             DBGPRINT(RT_DEBUG_INFO, "%2x-", pAdapter->PortCfg.PskKey.Key[i]);
--        
-+
-         DBGPRINT(RT_DEBUG_INFO, "\n PTK = ");
-         for (i = 0; i < 64; i++)
-             DBGPRINT(RT_DEBUG_INFO, "%2x-", pAdapter->PortCfg.PTK[i]);
-         DBGPRINT(RT_DEBUG_INFO, "\n FrameLen = %d\n", FrameLen);
--        
-+
-         hmac_md5(PTK,  LEN_EAP_MICK, OutBuffer, FrameLen, Mic);
-     }
-     memcpy(Packet.KeyDesc.KeyMic, Mic, LEN_KEY_DESC_MIC);
-@@ -446,36 +463,202 @@
-     FrameLen = 0;
-     // Make  Transmitting frame
-     MakeOutgoingFrame(OutBuffer, &FrameLen, sizeof(MACHDR), &Header_802_11,
--        sizeof(EAPHEAD), EAPHEAD, 
-+        sizeof(EAPHEAD), EAPHEAD,
-         Packet.Len[1] + 4, &Packet,
-         END_OF_ARGS);
- 
-     // Send using priority queue
-     MiniportMMRequest(pAdapter, OutBuffer, FrameLen);
--        
-+
-     DBGPRINT(RT_DEBUG_TRACE, "WpaPairMsg1Action <-----\n");
- }
- 
- /*
-+	========================================================================
-+
-+	Description:
-+		Check the information element packaged in the KeyData field of the
-+		EAPOL packet. At least one of the AP's offerings in each of
-+
-+		1) the group cipher suite
-+		2) the pairwise master key cipher(s), and
-+		3) the authentication and key management suite
-+
-+		need to match the configuration for the corresponding attribute
-+		in the driver.
-+
-+	Arguments:
-+		pAd			Pointer to our adapter
-+		pie			Pointer to the "logical" IE
-+		pie_len		Value of the real IE length field.
-+		poui		Pointer to the WPA1/WPA2 OUI
-+
-+	Return Value:
-+		0 -> OK:	At least one of the offerings in each category
-+					matches what is configured in the driver.
-+
-+	Note:
-+		On entry, it is known that the length of the RSN IE is consistent
-+		with the length specification of the EAPOL KeyData field, and that
-+		the IE is at least long enough to contain one group cipher suite
-+		selection, one PMK cipher suite selection,
-+		and one AKM suite selection.
-+	========================================================================
-+*/
-+static int checkEAPIE(
-+	IN RTMP_ADAPTER *pAd,
-+	IN rsn_ie_t		*pie,		// (not really, if we're WPA 1)
-+	IN u8			pie_len,	// ... so we provide the length separately.
-+	IN ie_oui_t		*poui)
-+{
-+	suite_list_t	*suite_list_p;
-+	suite_sel_t		*suite_sel_p;
-+	int				i, j;
-+	int				needs = 7;
-+	suite_sel_t		*limit = (suite_sel_t *)((void *)pie + pie_len + 2);
-+
-+	if (wtohs(pie->version) != 1) {
-+		DBGPRINT(RT_DEBUG_ERROR, "Invalid ver %d (sb 1)\n",
-+				wtohs(pie->version));
-+		return needs;
-+	}
-+	if (memcmp(pie->gcsuite.oui, poui, sizeof(ie_oui_t)) != 0) {
-+		DBGPRINT(RT_DEBUG_ERROR, "Invalid Grp Cipher OUI %02x:%02x:%02x\n",
-+				pie->gcsuite.oui[0], pie->gcsuite.oui[1], pie->gcsuite.oui[2]);
-+		return needs;
-+	}
-+	switch (pie->gcsuite.type) {
-+		case CIPHER_TYPE_WEP40:
-+		case CIPHER_TYPE_WEP104:
-+    		if (pAd->PortCfg.WepStatus == Ndis802_11Encryption1Enabled)
-+				needs &= 6;
-+			break;
-+		case CIPHER_TYPE_TKIP:
-+    		if (pAd->PortCfg.WepStatus == Ndis802_11Encryption2Enabled)
-+				needs &= 6;
-+			break;
-+		case CIPHER_TYPE_CCMP:
-+    		if (pAd->PortCfg.WepStatus == Ndis802_11Encryption3Enabled)
-+				needs &= 6;
-+			break;
-+		default:
-+			DBGPRINT(RT_DEBUG_ERROR, "Invalid Grp Cipher Type %d\n",
-+					pie->gcsuite.type);
-+			return needs;
-+	} /* End switch (group cipher suite type) */
-+
-+	suite_list_p = (suite_list_t *)((void *)&pie->gcsuite+sizeof(suite_sel_t));
-+
-+	// Search the PMK list
-+	for (suite_sel_p = suite_list_p->suite,
-+		i = 0, j = wtohs(suite_list_p->count);
-+		suite_sel_p + 1 <= limit && i < j;
-+		suite_sel_p++, i++) {
-+		if (memcmp(suite_sel_p->oui, poui, sizeof(ie_oui_t)) != 0) {
-+			DBGPRINT(RT_DEBUG_ERROR, "Invalid PMK Cipher OUI "
-+									"%02x:%02x:%02x\n",
-+					suite_sel_p->oui[0], suite_sel_p->oui[1],
-+					suite_sel_p->oui[2]);
-+			break;			// Keep going. We may also have a valid one.
-+		}
-+		switch (suite_sel_p->type) {
-+			case CIPHER_TYPE_WEP40:
-+			case CIPHER_TYPE_WEP104:
-+    			if (pAd->PortCfg.WepStatus == Ndis802_11Encryption1Enabled)
-+					needs &= 5;
-+				break;
-+			case CIPHER_TYPE_TKIP:
-+    			if (pAd->PortCfg.WepStatus == Ndis802_11Encryption2Enabled)
-+					needs &= 5;
-+				break;
-+			case CIPHER_TYPE_CCMP:
-+    			if (pAd->PortCfg.WepStatus == Ndis802_11Encryption3Enabled)
-+					needs &= 5;
-+				break;
-+			default:
-+				DBGPRINT(RT_DEBUG_ERROR, "Invalid PMK Cipher Type %d\n",
-+						suite_sel_p->type);
-+				break;			// Keep going. We may also have a valid one.
-+		} /* End switch (PMK type) */
-+	} /* End search PMK list */
-+
-+	if (suite_sel_p >= limit && i < j) {
-+		DBGPRINT(RT_DEBUG_ERROR, "Too many PMK suites in EAPOL pkt "
-+								"(have %d, room for %d) (need=%d)\n",
-+								j, i, needs);
-+		return needs;
-+	}
-+	if (j == 0) {
-+		DBGPRINT(RT_DEBUG_ERROR, "Zero count PMK list in EAPOL pkt "
-+								"(need=%d)\n", needs);
-+		return needs;
-+	}
-+
-+	suite_list_p = (suite_list_t *)suite_sel_p;
-+
-+	//Search the Authentication and Key Management (AKM) list
-+	for (suite_sel_p = suite_list_p->suite,
-+		i = 0, j = wtohs(suite_list_p->count);
-+		suite_sel_p + 1 <= limit && i < j;
-+		suite_sel_p++, i++) {
-+		if (memcmp(suite_sel_p->oui, poui, sizeof(ie_oui_t)) != 0) {
-+			DBGPRINT(RT_DEBUG_ERROR, "Invalid AKM OUI %02x:%02x:%02x\n",
-+					suite_sel_p->oui[0], suite_sel_p->oui[1],
-+					suite_sel_p->oui[2]);
-+			break;			// Keep going. We may also have a valid one.
-+		}
-+		switch (suite_sel_p->type) {
-+			case AKM_TYPE_802_1X:
-+				if (pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPA)
-+					needs &= 3;
-+				break;
-+			case AKM_TYPE_PSK:
-+				if (pAd->PortCfg.AuthMode >= Ndis802_11AuthModeWPAPSK)
-+					needs &= 3;
-+				break;
-+			default:
-+				DBGPRINT(RT_DEBUG_ERROR, "Invalid PMK Cipher Type %d\n",
-+						suite_sel_p->type);
-+				break;			// Keep going. We may also have a valid one.
-+		} /* End switch (AKM type) */
-+	} /* End search AKM list */
-+
-+	if (suite_sel_p >= limit && i < j) {
-+		DBGPRINT(RT_DEBUG_ERROR, "Too many AKM suites in EAPOL pkt "
-+								"(have %d, room for %d) (need=%d)\n",
-+								j, i, needs);
-+		return needs;			// NB. May still have met all needs.
-+	}
-+	if (j == 0) {
-+		DBGPRINT(RT_DEBUG_ERROR, "Zero count AKM list in EAPOL pkt "
-+								"(need=%d)\n", needs);
-+		return needs;
-+	}
-+
-+	return needs;
-+
-+} /* End checkEAPIE () */
-+
-+/*
-     ========================================================================
--    
-+
-     Routine Description:
-         Process Pairwise key 4-way handshaking
- 
-     Arguments:
-         pAdapter    Pointer to our adapter
-         Elem        Message body
--        
-+
-     Return Value:
-         None
--        
-+
-     Note:
--        
-+
-     ========================================================================
- */
- VOID    WpaPairMsg3Action(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  MLME_QUEUE_ELEM *Elem) 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  MLME_QUEUE_ELEM *Elem)
- {
-     PHEADER_802_11      pHeader;
-     UCHAR               *OutBuffer = NULL;
-@@ -487,46 +670,74 @@
-     UCHAR               EAPHEAD[8] = {0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00,0x88,0x8e};
-     EAPOL_PACKET        Packet;
-     PEAPOL_PACKET       pMsg3;
--    PUCHAR              pTmp;
--    UCHAR               Mic[16], OldMic[16];    
-+    UCHAR               Mic[16], OldMic[16];
-     NDIS_802_11_KEY     PeerKey;
--    
--       
-+
-+
-     DBGPRINT(RT_DEBUG_TRACE, "WpaPairMsg3Action ----->\n");
--    
-+
-     pHeader = (PHEADER_802_11) Elem->Msg;
--    
-+
-     // Process message 3 frame.
-     pMsg3 = (PEAPOL_PACKET) &Elem->Msg[LENGTH_802_11 + LENGTH_802_1_H];
- 
- #ifdef BIG_ENDIAN
- 	*(USHORT *)(&(pMsg3->KeyDesc.KeyInfo)) = SWAP16(*(USHORT *)(&(pMsg3->KeyDesc.KeyInfo)));
- #endif
-+	#define pie ((rsn_ie_t *)(void *)pMsg3->KeyDesc.KeyData)
-+	if (wtohs(pie->length) + 2 != pMsg3->KeyDesc.KeyDataLen[1]) {
-+        DBGPRINT(RT_DEBUG_ERROR, "RSN IE len %d != KeyDataLen %d)\n",
-+				pie->length + 2, pMsg3->KeyDesc.KeyDataLen[1]);
-+		return;
-+	}
-+	else {
-+		switch (pie->eid) {
-+			case IE_RSN:
-+				if (wtohs(pie->length) < MIN_RSN_KEYDATA_LEN) {
-+        			DBGPRINT(RT_DEBUG_ERROR,
-+							"RSN IE msg 3 too short (sb >= %d, is %d)\n",
-+							MIN_RSN_KEYDATA_LEN, wtohs(pie->length));
-+					DBGHEXSTR(RT_DEBUG_ERROR, "KeyData ",
-+							pMsg3->KeyDesc.KeyData,
-+							pMsg3->KeyDesc.KeyDataLen[1]);
-+					return;
-+				}
-+				if (checkEAPIE(pAdapter, pie, pie->length,
-+								(ie_oui_t *)WGOUI) != 0) return;
-+				break;
-+			case IE_WPA:
-+				#undef pie
-+				#define pie ((RSN_EID_STRUCT *)(void *)pMsg3->KeyDesc.KeyData)
-+				if (wtohs(pie->Length) < MIN_WPA_KEYDATA_LEN) {
-+        			DBGPRINT(RT_DEBUG_ERROR,
-+							"WPA IE msg 3 too short (sb >= %d, is %d)\n",
-+							MIN_WPA_KEYDATA_LEN, wtohs(pie->Length));
-+					DBGHEXSTR(RT_DEBUG_ERROR, "KeyData ",
-+							pMsg3->KeyDesc.KeyData,
-+							pMsg3->KeyDesc.KeyDataLen[1]);
-+					return;
-+				}
-+				if (memcmp(pie->Oui, MSOUI, sizeof(pie->Oui)) != 0) {
-+					DBGPRINT(RT_DEBUG_ERROR,
-+							"Invalid WPA 1 OUI %02x:%02x:%02x:%02x\n",
-+							pie->Oui[0], pie->Oui[1], pie->Oui[2], pie->Oui[3]);
-+					return;
-+				}
-+				if (checkEAPIE(pAdapter, (rsn_ie_t *)&pie->Oui[2], pie->Length,
-+								(ie_oui_t *)MSOUI) != 0) return;
-+				break;
-+			default:
-+        		DBGPRINT(RT_DEBUG_ERROR, "RSN IE type %d invalid)\n",
-+						pie->Eid);
-+				return;
-+		} /* End switch (element ID) */
-+	} /* End if (packet length sane) */
-+	#undef pie
-+
-+	DBGPRINT(RT_DEBUG_TRACE, "RSN IE matched msg 3 of 4-way handshake "
-+				"KeyDataLen=%d)\n",
-+				 pMsg3->KeyDesc.KeyDataLen[1]);
- 
--    // 1. Verify RSN IE & cipher type match
--    if (pAdapter->PortCfg.WepStatus == Ndis802_11Encryption3Enabled)
--    {
--        if (pMsg3->KeyDesc.KeyInfo.KeyDescVer != 2)
--            return;
--        pTmp = (PUCHAR) &CipherWpaPskAes;
--    }
--    else    // TKIP
--    {
--        if (pMsg3->KeyDesc.KeyInfo.KeyDescVer != 1)
--            return;
--        pTmp = (PUCHAR) &CipherWpaPskTkip;
--    }
--
--    // Fix compatibility issue, when AP append nonsense data after auth mode with different size.
--    // We should qualify this kind of RSN as acceptable
--    if (!NdisEqualMemory((PUCHAR) &pMsg3->KeyDesc.KeyData[2], pTmp + 2, CipherWpaPskTkipLen - 2))
--    {
--        DBGPRINT(RT_DEBUG_ERROR, " RSN IE mismatched msg 3 of 4-way handshake!!!!!!!!!! \n");
--        return;
--    }
--    else
--        DBGPRINT(RT_DEBUG_TRACE, " RSN IE matched in msg 3 of 4-way handshake!!!!!!!!!! \n");
--    
- #ifdef BIG_ENDIAN
- 	*(USHORT *)(&(pMsg3->KeyDesc.KeyInfo)) = SWAP16(*(USHORT *)(&(pMsg3->KeyDesc.KeyInfo)));
- #endif
-@@ -539,7 +750,7 @@
-     {
-         // AES
-         UCHAR digest[80];
--            
-+
-         HMAC_SHA1((PUCHAR) pMsg3, pMsg3->Len[1] + 4, pAdapter->PortCfg.PTK, LEN_EAP_MICK, digest);
-         memcpy(Mic, digest, LEN_KEY_DESC_MIC);
-     }
-@@ -547,7 +758,7 @@
-     {
-         hmac_md5(pAdapter->PortCfg.PTK, LEN_EAP_MICK, (PUCHAR) pMsg3, pMsg3->Len[1] + 4, Mic);
-     }
--    
-+
-     if (!NdisEqualMemory(OldMic, Mic, LEN_KEY_DESC_MIC))
-     {
-         DBGPRINT(RT_DEBUG_ERROR, " MIC Different in msg 3 of 4-way handshake!!!!!!!!!! \n");
-@@ -556,17 +767,32 @@
-     else
-         DBGPRINT(RT_DEBUG_TRACE, " MIC VALID in msg 3 of 4-way handshake!!!!!!!!!! \n");
- 
--    // 3. Check Replay Counter, it has to be larger than last one. No need to be exact one larger
--    if (RTMPCompareMemory(pMsg3->KeyDesc.ReplayCounter, pAdapter->PortCfg.ReplayCounter, LEN_KEY_DESC_REPLAY) != 1)
-+    // 3. Check Replay Counter, it has to be larger than last one.
-+	//    No need to be exact one larger
-+    if (RTMPCompareMemory(pMsg3->KeyDesc.ReplayCounter,
-+				pAdapter->PortCfg.ReplayCounter, LEN_KEY_DESC_REPLAY) != 1) {
-+        DBGPRINT(RT_DEBUG_TRACE, " Replay count error\n");
-+		DBGHEXSTR(RT_DEBUG_TRACE, " AP replay = ",
-+				pMsg3->KeyDesc.ReplayCounter, LEN_KEY_DESC_REPLAY);
-+		DBGHEXSTR(RT_DEBUG_TRACE, " our replay = ",
-+				pAdapter->PortCfg.ReplayCounter, LEN_KEY_DESC_REPLAY);
-         return;
--
-+	}
-     // Update new replay counter
--    memcpy(pAdapter->PortCfg.ReplayCounter, pMsg3->KeyDesc.ReplayCounter, LEN_KEY_DESC_REPLAY);     
-+    memcpy(pAdapter->PortCfg.ReplayCounter, pMsg3->KeyDesc.ReplayCounter,
-+			LEN_KEY_DESC_REPLAY);
- 
-     // 4. Double check ANonce
--    if (!NdisEqualMemory(pAdapter->PortCfg.ANonce, pMsg3->KeyDesc.KeyNonce, LEN_KEY_DESC_NONCE))
-+    if (!NdisEqualMemory(pAdapter->PortCfg.ANonce, pMsg3->KeyDesc.KeyNonce,
-+				LEN_KEY_DESC_NONCE)) {
-+        DBGPRINT(RT_DEBUG_TRACE, " Nonce error\n");
-+		DBGHEXSTR(RT_DEBUG_TRACE, " AP Nonce = ",
-+				pMsg3->KeyDesc.KeyNonce, LEN_KEY_DESC_NONCE);
-+		DBGHEXSTR(RT_DEBUG_TRACE, " our Nonce = ",
-+				pAdapter->PortCfg.ANonce, LEN_KEY_DESC_NONCE);
-         return;
--    
-+	}
-+
-     // 5. Construct Message 4
-     // =====================================
-     // Use Priority Ring & MiniportMMRequest
-@@ -578,22 +804,22 @@
-     AckRate = pAdapter->PortCfg.ExpectedACKRate[pAdapter->PortCfg.TxRate];
-     AckDuration = RTMPCalcDuration(pAdapter, AckRate, 14);
-     Header_802_11.Controlhead.Duration = pAdapter->PortCfg.Dsifs + AckDuration;
--    
-+
-     // Zero message 4 body
-     memset(&Packet, 0, sizeof(Packet));
-     Packet.Version = EAPOL_VER;
-     Packet.Type    = EAPOLKey;
-     Packet.Len[1]  = sizeof(KEY_DESCRIPTER) - MAX_LEN_OF_RSNIE;     // No data field
--    
-+
-     //
-     // Message 4 as  EAPOL-Key(0,1,0,0,0,P,0,0,MIC,0)
-     //
-     Packet.KeyDesc.Type = RSN_KEY_DESC;
--    
-+
- #ifdef BIG_ENDIAN
- 	*(USHORT *)(&(pMsg3->KeyDesc.KeyInfo)) = SWAP16(*(USHORT *)(&(pMsg3->KeyDesc.KeyInfo)));
- #endif
--    
-+
-     // Key descriptor version and appropriate RSN IE
-     Packet.KeyDesc.KeyInfo.KeyDescVer = pMsg3->KeyDesc.KeyInfo.KeyDescVer;
- 
-@@ -603,16 +829,16 @@
-     // KeyMic field presented
-     Packet.KeyDesc.KeyInfo.KeyMic  = 1;
- 
--    // Key Replay count 
--    memcpy(Packet.KeyDesc.ReplayCounter, pMsg3->KeyDesc.ReplayCounter, LEN_KEY_DESC_REPLAY);        
-+    // Key Replay count
-+    memcpy(Packet.KeyDesc.ReplayCounter, pMsg3->KeyDesc.ReplayCounter, LEN_KEY_DESC_REPLAY);
- #ifdef BIG_ENDIAN
-         *(USHORT *)&Packet.KeyDesc.KeyInfo = SWAP16(*(USHORT *)&Packet.KeyDesc.KeyInfo);
- #endif
- 
--    // Out buffer for transmitting message 4        
-+    // Out buffer for transmitting message 4
-     NStatus = MlmeAllocateMemory(pAdapter, (PVOID)&OutBuffer);  //Get an unused nonpaged memory
-     if (NStatus != NDIS_STATUS_SUCCESS)
--        return;                 
-+        return;
- 
-     // Prepare EAPOL frame for MIC calculation
-     // Be careful, only EAPOL frame is counted for MIC calculation
-@@ -626,7 +852,7 @@
-     {
-         // AES
-         UCHAR digest[80];
--            
-+
-         HMAC_SHA1(OutBuffer, FrameLen, pAdapter->PortCfg.PTK, LEN_EAP_MICK, digest);
-         memcpy(Mic, digest, LEN_KEY_DESC_MIC);
-     }
-@@ -637,10 +863,10 @@
-     memcpy(Packet.KeyDesc.KeyMic, Mic, LEN_KEY_DESC_MIC);
- 
-     FrameLen = 0;
--    
-+
-     // Make  Transmitting frame
-     MakeOutgoingFrame(OutBuffer, &FrameLen, sizeof(MACHDR), &Header_802_11,
--        sizeof(EAPHEAD), EAPHEAD, 
-+        sizeof(EAPHEAD), EAPHEAD,
-         Packet.Len[1] + 4, &Packet,
-         END_OF_ARGS);
- 
-@@ -651,38 +877,38 @@
-     // 7. Update PTK
-     memset(&PeerKey, 0, sizeof(PeerKey));
-     PeerKey.Length    = sizeof(PeerKey);
--    PeerKey.KeyIndex  = 0xe0000000;           
-+    PeerKey.KeyIndex  = 0xe0000000;
-     PeerKey.KeyLength = 16;
-     memcpy(PeerKey.BSSID, pAdapter->PortCfg.Bssid.Octet, 6);
-     memcpy(&PeerKey.KeyRSC, pMsg3->KeyDesc.KeyRsc, LEN_KEY_DESC_RSC);
-     memcpy(PeerKey.KeyMaterial, &pAdapter->PortCfg.PTK[32], 32);
-     // Call Add peer key function
-     RTMPWPAAddKeyProc(pAdapter, &PeerKey);
--    
-+
-     DBGPRINT(RT_DEBUG_TRACE, "WpaPairMsg3Action <-----\n");
- }
- 
- 
- /*
-     ========================================================================
--    
-+
-     Routine Description:
-         Process Group key 2-way handshaking
- 
-     Arguments:
-         pAdapter    Pointer to our adapter
-         Elem        Message body
--        
-+
-     Return Value:
-         None
--        
-+
-     Note:
--        
-+
-     ========================================================================
- */
- VOID    WpaGroupMsg1Action(
--    IN  PRTMP_ADAPTER   pAdapter, 
--    IN  MLME_QUEUE_ELEM *Elem) 
-+    IN  PRTMP_ADAPTER   pAdapter,
-+    IN  MLME_QUEUE_ELEM *Elem)
- {
-     PHEADER_802_11      pHeader;
-     UCHAR               *OutBuffer = NULL;
-@@ -697,12 +923,12 @@
-     UCHAR               Mic[16], OldMic[16];
-     UCHAR               GTK[32], Key[32];
-     NDIS_802_11_KEY     GroupKey;
--    
--       
-+
-+
-     DBGPRINT(RT_DEBUG_TRACE, "WpaGroupMsg1Action ----->\n");
--    
-+
-     pHeader = (PHEADER_802_11) Elem->Msg;
--    
-+
-     // Process Group message 1 frame.
-     pGroup = (PEAPOL_PACKET) &Elem->Msg[LENGTH_802_11 + LENGTH_802_1_H];
- 
-@@ -712,7 +938,7 @@
-         return;
- 
-     // Update new replay counter
--    memcpy(pAdapter->PortCfg.ReplayCounter, pGroup->KeyDesc.ReplayCounter, LEN_KEY_DESC_REPLAY);        
-+    memcpy(pAdapter->PortCfg.ReplayCounter, pGroup->KeyDesc.ReplayCounter, LEN_KEY_DESC_REPLAY);
- 
-     // 2. Verify MIC is valid
-     // Save the MIC and replace with zero
-@@ -722,7 +948,7 @@
-     {
-         // AES
-         UCHAR digest[80];
--            
-+
-         HMAC_SHA1((PUCHAR) pGroup, pGroup->Len[1] + 4, pAdapter->PortCfg.PTK, LEN_EAP_MICK, digest);
-         memcpy(Mic, digest, LEN_KEY_DESC_MIC);
-     }
-@@ -730,7 +956,7 @@
-     {
-         hmac_md5(pAdapter->PortCfg.PTK, LEN_EAP_MICK, (PUCHAR) pGroup, pGroup->Len[1] + 4, Mic);
-     }
--    
-+
-     if (!NdisEqualMemory(OldMic, Mic, LEN_KEY_DESC_MIC))
-     {
-         DBGPRINT(RT_DEBUG_ERROR, " MIC Different in group msg 1 of 2-way handshake!!!!!!!!!! \n");
-@@ -749,12 +975,12 @@
-         if (pGroup->KeyDesc.KeyInfo.KeyDescVer != 2)
-             return;
-         // Decrypt AES GTK
--        AES_GTK_KEY_UNWRAP(&pAdapter->PortCfg.PTK[16], GTK, pGroup->KeyDesc.KeyData);       
-+        AES_GTK_KEY_UNWRAP(&pAdapter->PortCfg.PTK[16], GTK, pGroup->KeyDesc.KeyData);
-     }
-     else    // TKIP
-     {
-         INT i;
--        
-+
-         if (pGroup->KeyDesc.KeyInfo.KeyDescVer != 1)
-             return;
-         // Decrypt TKIP GTK
-@@ -766,9 +992,9 @@
-         for (i = 0; i < 256; i++)
-             ARCFOUR_BYTE(&pAdapter->PrivateInfo.WEPCONTEXT);
-         // Decrypt GTK. Becareful, there is no ICV to check the result is correct or not
--        ARCFOUR_DECRYPT(&pAdapter->PrivateInfo.WEPCONTEXT, GTK, pGroup->KeyDesc.KeyData, 32);       
-+        ARCFOUR_DECRYPT(&pAdapter->PrivateInfo.WEPCONTEXT, GTK, pGroup->KeyDesc.KeyData, 32);
-     }
--    
-+
-     // 4. Construct Group Message 2
-     pAdapter->Sequence = ((pAdapter->Sequence) + 1) & (MAX_SEQ_NUMBER);
-     WpaMacHeaderInit(pAdapter, &Header_802_11, 1, &pAdapter->PortCfg.Bssid);
-@@ -777,18 +1003,18 @@
-     AckRate = pAdapter->PortCfg.ExpectedACKRate[pAdapter->PortCfg.TxRate];
-     AckDuration = RTMPCalcDuration(pAdapter, AckRate, 14);
-     Header_802_11.Controlhead.Duration = pAdapter->PortCfg.Dsifs + AckDuration;
--    
-+
-     // Zero Group message 1 body
-     memset(&Packet, 0, sizeof(Packet));
-     Packet.Version = EAPOL_VER;
-     Packet.Type    = EAPOLKey;
-     Packet.Len[1]  = sizeof(KEY_DESCRIPTER) - MAX_LEN_OF_RSNIE;     // No data field
--    
-+
-     //
-     // Group Message 2 as  EAPOL-Key(1,0,0,0,G,0,0,MIC,0)
-     //
-     Packet.KeyDesc.Type = RSN_KEY_DESC;
--    
-+
-     // Key descriptor version and appropriate RSN IE
-     Packet.KeyDesc.KeyInfo.KeyDescVer = pGroup->KeyDesc.KeyInfo.KeyDescVer;
- 
-@@ -800,18 +1026,18 @@
- 
-     // Secure bit is 1
-     Packet.KeyDesc.KeyInfo.Secure  = 1;
--    
--    // Key Replay count 
--    memcpy(Packet.KeyDesc.ReplayCounter, pGroup->KeyDesc.ReplayCounter, LEN_KEY_DESC_REPLAY);       
-+
-+    // Key Replay count
-+    memcpy(Packet.KeyDesc.ReplayCounter, pGroup->KeyDesc.ReplayCounter, LEN_KEY_DESC_REPLAY);
- 
- #ifdef BIG_ENDIAN
- 	*(USHORT *)(&(Packet.KeyDesc.KeyInfo)) = SWAP16(*(USHORT *)(&(Packet.KeyDesc.KeyInfo)));
- #endif
- 
--    // Out buffer for transmitting group message 2      
-+    // Out buffer for transmitting group message 2
-     NStatus = MlmeAllocateMemory(pAdapter, (PVOID)&OutBuffer);  //Get an unused nonpaged memory
-     if (NStatus != NDIS_STATUS_SUCCESS)
--        return;                 
-+        return;
- 
-     // Prepare EAPOL frame for MIC calculation
-     // Be careful, only EAPOL frame is counted for MIC calculation
-@@ -825,7 +1051,7 @@
-     {
-         // AES
-         UCHAR digest[80];
--            
-+
-         HMAC_SHA1(OutBuffer, FrameLen, pAdapter->PortCfg.PTK, LEN_EAP_MICK, digest);
-         memcpy(Mic, digest, LEN_KEY_DESC_MIC);
-     }
-@@ -836,15 +1062,15 @@
-         for (i = 0; i < 64; i++)
-             DBGPRINT(RT_DEBUG_INFO, "%2x-", pAdapter->PortCfg.PTK[i]);
-         DBGPRINT(RT_DEBUG_INFO, "\n FrameLen = %d\n", FrameLen);
--            
-+
-         hmac_md5(pAdapter->PortCfg.PTK, LEN_EAP_MICK, OutBuffer, FrameLen, Mic);
-     }
-     memcpy(Packet.KeyDesc.KeyMic, Mic, LEN_KEY_DESC_MIC);
- 
--    FrameLen = 0;   
-+    FrameLen = 0;
-     // Make Transmitting frame
-     MakeOutgoingFrame(OutBuffer, &FrameLen, sizeof(MACHDR), &Header_802_11,
--        sizeof(EAPHEAD), EAPHEAD, 
-+        sizeof(EAPHEAD), EAPHEAD,
-         Packet.Len[1] + 4, &Packet,
-         END_OF_ARGS);
- 
-@@ -853,72 +1079,72 @@
- 
-     // 6 Free allocated memory
-     MlmeFreeMemory(pAdapter, OutBuffer);
--    
-+
-     // 6. Update GTK
-     memset(&GroupKey, 0, sizeof(GroupKey));
-     GroupKey.Length    = sizeof(GroupKey);
--    GroupKey.KeyIndex  = 0x20000000 | pGroup->KeyDesc.KeyInfo.KeyIndex;           
-+    GroupKey.KeyIndex  = 0x20000000 | pGroup->KeyDesc.KeyInfo.KeyIndex;
-     GroupKey.KeyLength = 16;
-     memcpy(GroupKey.BSSID, pAdapter->PortCfg.Bssid.Octet, 6);
-     memcpy(GroupKey.KeyMaterial, GTK, 32);
-     // Call Add peer key function
-     RTMPWPAAddKeyProc(pAdapter, &GroupKey);
--    
-+
-     DBGPRINT(RT_DEBUG_TRACE, "WpaGroupMsg1Action <-----\n");
- }
- /*
-     ========================================================================
--    
-+
-     Routine Description:
-         Init WPA MAC header
- 
-     Arguments:
-         pAdapter    Pointer to our adapter
--        
-+
-     Return Value:
-         None
--        
-+
-     Note:
--        
-+
-     ========================================================================
- */
- VOID    WpaMacHeaderInit(
--    IN      PRTMP_ADAPTER   pAd, 
--    IN OUT  PHEADER_802_11  Hdr, 
--    IN      UCHAR           wep, 
--    IN      PMACADDR        pAddr1) 
-+    IN      PRTMP_ADAPTER   pAd,
-+    IN OUT  PHEADER_802_11  Hdr,
-+    IN      UCHAR           wep,
-+    IN      PMACADDR        pAddr1)
- {
-     memset(Hdr, 0, sizeof(HEADER_802_11));
--    Hdr->Controlhead.Frame.Type = BTYPE_DATA;   
-+    Hdr->Controlhead.Frame.Type = BTYPE_DATA;
-     Hdr->Controlhead.Frame.ToDs = 1;
-     if (wep == 1)
-         Hdr->Controlhead.Frame.Wep = 1;
--    
-+
-      // Addr1: DA, Addr2: BSSID, Addr3: SA
-     COPY_MAC_ADDR(&Hdr->Controlhead.Addr1, pAddr1);
-     COPY_MAC_ADDR(&Hdr->Controlhead.Addr2, &pAd->CurrentAddress);
-     COPY_MAC_ADDR(&Hdr->Addr3, &pAd->PortCfg.Bssid);
--    Hdr->Sequence = pAd->Sequence;      
-+    Hdr->Sequence = pAd->Sequence;
- }
- 
- /*
-     ========================================================================
- 
-     Routine Description:
--        Copy frame from waiting queue into relative ring buffer and set 
-+        Copy frame from waiting queue into relative ring buffer and set
-     appropriate ASIC register to kick hardware encryption before really
-     sent out to air.
--        
-+
-     Arguments:
-         pAdapter        Pointer to our adapter
-         PNDIS_PACKET    Pointer to outgoing Ndis frame
-         NumberOfFrag    Number of fragment required
--        
-+
-     Return Value:
-         None
- 
-     Note:
--    
-+
-     ========================================================================
- */
- VOID    WpaHardEncrypt(
-@@ -938,38 +1164,58 @@
- #endif
-     ULONG           Iv16;
-     ULONG           Iv32;
--    PWPA_KEY        pWpaKey;
-+    PWPA_KEY        pWpaKey = NULL;
-     UCHAR           RetryMode = SHORT_RETRY;
-     static UCHAR    Priority[4] = {"\x00\x00\x00\x00"};
-+    INT idx;
-+    PHEADER_802_11 pHeader;
-+    unsigned long  flags;
- 
-     // Make sure Tx ring resource won't be used by other threads
--    spin_lock_irq(&pAdapter->TxRingLock);
-+    spin_lock_irqsave(&pAdapter->TxRingLock, flags);
- 
-     FrameGap = IFS_BACKOFF;     // Default frame gap mode
--    
--    // outgoing frame always wakeup PHY to prevent frame lost and 
-+
-+    // outgoing frame always wakeup PHY to prevent frame lost and
-     // turn off PSM bit to improve performance
-     if (pAdapter->PortCfg.Psm == PWR_SAVE)
-     {
-         MlmeSetPsmBit(pAdapter, PWR_ACTIVE);
-     }
-     AsicForceWakeup(pAdapter);
--    
-+
-     pAdapter->TxRing[pAdapter->CurEncryptIndex].FrameType = BTYPE_DATA;
- 
-     pSrc = pPacket; // Point to start of MSDU
--    
-+
-+#if 0
-     pWpaKey = (PWPA_KEY) &pAdapter->PortCfg.PairwiseKey[0];
-     pWpaKey->Type = PAIRWISE_KEY;
-+#else
-+    pHeader = (PHEADER_802_11) pSrc;
-+
-+    for (idx = 0; idx < PAIRWISE_KEY_NO; idx++) {
-+	if ((memcmp(&pHeader->Controlhead.Addr1,
-+		    pAdapter->PortCfg.PairwiseKey[idx].BssId, 6) == 0)
-+	    && (pAdapter->PortCfg.PairwiseKey[idx].KeyLen != 0)) {
-+		pWpaKey = (PWPA_KEY) &pAdapter->PortCfg.PairwiseKey[idx];
-+		pWpaKey->Type = PAIRWISE_KEY;
-+		DBGPRINT(RT_DEBUG_TRACE,
-+			 "WpaHardEncrypt:(U) Tx Use Pairwise Key(%d)\n", idx);
-+		break;
-+	}
-+    }
-+#endif
-     if (pWpaKey == NULL)
-     {
-         // No pairwise key, this should not happen
--        spin_unlock_irq(&pAdapter->TxRingLock);
-+	DBGPRINT(RT_DEBUG_ERROR, "WpaHardEncrypt: No pairwise key!!!!!\n");
-+        spin_unlock_irqrestore(&pAdapter->TxRingLock, flags);
-         return;
-     }
--    
-+
-     // Get the Tx Ring descriptor & Dma Buffer address
--    pDest = (PUCHAR) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_data_addr;              
-+    pDest = (PUCHAR) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_data_addr;
- #ifndef BIG_ENDIAN
-     pTxD  = (PTXD_STRUC) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_addr;
- #else
-@@ -979,14 +1225,16 @@
- 	pTxD = &TxD;
- 	RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
- #endif
--        
-+
-     if ((pTxD->Owner == DESC_OWN_NIC) || (pTxD->CipherOwn == DESC_OWN_NIC))
-     {
-         // Descriptor owned by NIC. No descriptor avaliable
-         // This should not happen since caller guaranteed.
-         // Make sure to release Tx ring resource
-+	DBGPRINT(RT_DEBUG_ERROR,
-+		 "WpaHardEncrypt: Descriptor ownedby NIC. No descriptor available!!!!!!\n");
-         pAdapter->RalinkCounters.TxRingErrCount++;
--        spin_unlock_irq(&pAdapter->TxRingLock);
-+        spin_unlock_irqrestore(&pAdapter->TxRingLock, flags);
-         return;
-     }
-     if (pTxD->Valid == TRUE)
-@@ -995,17 +1243,19 @@
-         // This should not happen since caller guaranteed.
-         // Make sure to release Tx ring resource
-         pTxD->Valid = FALSE;
--                
-+
- #ifdef BIG_ENDIAN
- 		RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
- 		*pDestTxD = TxD;
- #endif
- 
-+	DBGPRINT(RT_DEBUG_ERROR,
-+		 "WpaHardEncrypt: Ndis packet of last round did not cleared!!!!!\n");
-         pAdapter->RalinkCounters.TxRingErrCount++;
--        spin_unlock_irq(&pAdapter->TxRingLock);
-+        spin_unlock_irqrestore(&pAdapter->TxRingLock, flags);
-         return;
-     }
--        
-+
-     // Copy whole frame to Tx ring buffer
-     memcpy(pDest, pPacket, Len);
-     pDest += Len;
-@@ -1026,16 +1276,21 @@
-             tkipIv.IV16.field.Rsvd = 0;
-             tkipIv.IV16.field.ExtIV = 1;// 0: non-extended IV, 1: extended IV
-             tkipIv.IV16.field.KeyID = 0;
--            tkipIv.IV32 = *(PULONG)(pWpaKey->TxTsc + 2);
-+            //tkipIv.IV32 = *(PULONG)(pWpaKey->TxTsc + 2);
-+	    memcpy(&tkipIv.IV32, &pWpaKey->TxTsc[2], 4);
- 
-+#ifdef BIG_ENDIAN
-+	    pTxD-Iv = SWAP32(tipIv.IV16.word);
-+#else
-             pTxD->Iv = tkipIv.IV16.word;
-+#endif
- 
-             *((PUCHAR) &pTxD->Eiv) = *((PUCHAR) &tkipIv.IV32 + 3);
-             *((PUCHAR) &pTxD->Eiv + 1) = *((PUCHAR) &tkipIv.IV32 + 2);
-             *((PUCHAR) &pTxD->Eiv + 2) = *((PUCHAR) &tkipIv.IV32 + 1);
-             *((PUCHAR) &pTxD->Eiv + 3) = *((PUCHAR) &tkipIv.IV32);
-         }
--            
-+
-         // Increase TxTsc value for next transmission
-         while (++pWpaKey->TxTsc[i] == 0x0)
-         {
-@@ -1043,13 +1298,13 @@
-             if (i == 6)
-                 break;
-         }
--            
-+
-         // Set IV offset
-         pTxD->IvOffset = LENGTH_802_11;
- 
-         // Copy TKey
-         memcpy(pTxD->Key, pWpaKey->Key, 16);
--            
-+
-         // Set Cipher suite
-         CipherAlg = CIPHER_TKIP;
- 
-@@ -1059,10 +1314,10 @@
-         pAdapter->PrivateInfo.Tx.R = RTMPTkipGetUInt32(pWpaKey->TxMic + 4);
-         pAdapter->PrivateInfo.Tx.nBytesInM = 0;
-         pAdapter->PrivateInfo.Tx.M = 0;
--    	
-+
-         // DA & SA field
-         RTMPTkipAppend(&pAdapter->PrivateInfo.Tx, pSrc + 4, 12);
--        
-+
-         // Priority + 3 bytes of 0
-         RTMPTkipAppend(&pAdapter->PrivateInfo.Tx, Priority, 4);
- 
-@@ -1086,9 +1341,9 @@
-         *(pTmp + 1) = pWpaKey->TxTsc[1];
-         *(pTmp + 2) = 0;
-         *(pTmp + 3) = 0x20;
--            
-+
-         Iv32 = *(PULONG)(&pWpaKey->TxTsc[2]);
--            
-+
-         // Increase TxTsc value for next transmission
-         while (++pWpaKey->TxTsc[i] == 0x0)
-         {
-@@ -1096,13 +1351,13 @@
-             if (i == 6)
-                 break;
-         }
--            
-+
-         // Copy IV
-         memcpy(&pTxD->Iv, &Iv16, 4);
--            
-+
-         // Copy EIV
-         memcpy(&pTxD->Eiv, &Iv32, 4);
--            
-+
-         // Set IV offset
-         pTxD->IvOffset = LENGTH_802_11;
- 
-@@ -1111,11 +1366,11 @@
- 
-         // Set Cipher suite
-         CipherAlg = CIPHER_AES;
--            
-+
-         // IV + EIV + HW MIC
-         Len += 16;
--    }               
--                
-+    }
-+
- #ifdef BIG_ENDIAN
- 	RTMPFrameEndianChange(pAdapter, pOriginDest, DIR_WRITE, FALSE);
-  	RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
-@@ -1123,7 +1378,7 @@
- 	pTxD = pDestTxD;
- #endif
- 
--    RTMPWriteTxDescriptor(pTxD, TRUE, CipherAlg, TRUE, FALSE, FALSE, RetryMode, FrameGap, 
-+    RTMPWriteTxDescriptor(pTxD, TRUE, CipherAlg, TRUE, FALSE, FALSE, RetryMode, FrameGap,
-            pAdapter->PortCfg.TxRate, 4, Len, pAdapter->PortCfg.TxPreambleInUsed, 0);
- 
-     // Increase & maintain Tx Ring Index
-@@ -1131,28 +1386,28 @@
-     if (pAdapter->CurEncryptIndex >= TX_RING_SIZE)
-     {
-         pAdapter->CurEncryptIndex = 0;
--    }       
--    pAdapter->RalinkCounters.EncryptCount++;        
--    
-+    }
-+    pAdapter->RalinkCounters.EncryptCount++;
-+
-     // Kick Encrypt Control Register at the end of all ring buffer preparation
-     RTMP_IO_WRITE32(pAdapter, SECCSR1, 0x1);
--        
-+
-     // Make sure to release Tx ring resource
--    spin_unlock_irq(&pAdapter->TxRingLock);
-+    spin_unlock_irqrestore(&pAdapter->TxRingLock, flags);
- }
- 
- /*
-     ========================================================================
--    
-+
-     Routine Description:
--        SHA1 function 
-+        SHA1 function
- 
-     Arguments:
--        
-+
-     Return Value:
- 
-     Note:
--        
-+
-     ========================================================================
- */
- VOID    HMAC_SHA1(
-@@ -1167,8 +1422,8 @@
-     UCHAR   k_opad[65]; /* outer padding - key XORd with opad   */
-     INT     i;
- 
--    // if key is longer than 64 bytes reset it to key=SHA1(key) 
--    if (key_len > 64) 
-+    // if key is longer than 64 bytes reset it to key=SHA1(key)
-+    if (key_len > 64)
-     {
-         SHA_CTX      tctx;
-         SHAInit(&tctx);
-@@ -1181,20 +1436,20 @@
-     memcpy(k_ipad, key, key_len);
-     memcpy(k_opad, key, key_len);
- 
--    // XOR key with ipad and opad values  
--    for (i = 0; i < 64; i++) 
--    {   
-+    // XOR key with ipad and opad values
-+    for (i = 0; i < 64; i++)
-+    {
-         k_ipad[i] ^= 0x36;
-         k_opad[i] ^= 0x5c;
-     }
- 
--    // perform inner SHA1 
-+    // perform inner SHA1
-     SHAInit(&context);                      /* init context for 1st pass */
-     SHAUpdate(&context, k_ipad, 64);        /*  start with inner pad */
-     SHAUpdate(&context, text, text_len);    /*  then text of datagram */
-     SHAFinal(&context, digest);             /* finish up 1st pass */
- 
--    //perform outer SHA1  
-+    //perform outer SHA1
-     SHAInit(&context);                  /* init context for 2nd pass */
-     SHAUpdate(&context, k_opad, 64);    /*  start with outer pad */
-     SHAUpdate(&context, digest, 20);    /*  then results of 1st hash */
-@@ -1203,17 +1458,17 @@
- 
- /*
-     ========================================================================
--    
-+
-     Routine Description:
--        PRF function 
-+        PRF function
- 
-     Arguments:
--        
-+
-     Return Value:
- 
-     Note:
-         802.1i  Annex F.9
--        
-+
-     ========================================================================
- */
- VOID    PRF(
-@@ -1230,7 +1485,7 @@
-     UCHAR   input[1024];
-     INT     currentindex = 0;
-     INT     total_len;
--    
-+
-     memcpy(input, prefix, prefix_len);
-     input[prefix_len] = 0;
-     memcpy(&input[prefix_len + 1], data, data_len);
-@@ -1242,22 +1497,22 @@
-         HMAC_SHA1(input, total_len, key, key_len, &output[currentindex]);
-         currentindex += 20;
-         input[total_len - 1]++;
--    }   
-+    }
- }
- 
- /*
-     ========================================================================
--    
-+
-     Routine Description:
-         Count TPTK from PMK
- 
-     Arguments:
--        
-+
-     Return Value:
-         Output      Store the TPTK
- 
-     Note:
--        
-+
-     ========================================================================
- */
- VOID WpaCountPTK(
-@@ -1268,11 +1523,11 @@
-     IN  UCHAR   *SA,
-     OUT UCHAR   *output,
-     IN  UINT    len)
--{   
-+{
-     UCHAR   concatenation[76];
-     UINT    CurrPos = 0;
-     UCHAR   temp[32];
--    UCHAR   Prefix[] = {'P', 'a', 'i', 'r', 'w', 'i', 's', 'e', ' ', 'k', 'e', 'y', ' ', 
-+    UCHAR   Prefix[] = {'P', 'a', 'i', 'r', 'w', 'i', 's', 'e', ' ', 'k', 'e', 'y', ' ',
-                         'e', 'x', 'p', 'a', 'n', 's', 'i', 'o', 'n'};
- 
-     memset(temp, 0, sizeof(temp));
-@@ -1281,52 +1536,52 @@
-     if (RTMPCompareMemory(SA, AA, 6) == 1)
-         memcpy(concatenation, AA, 6);
-     else
--        memcpy(concatenation, SA, 6);       
-+        memcpy(concatenation, SA, 6);
-     CurrPos += 6;
- 
-     // Get larger address
-     if (RTMPCompareMemory(SA, AA, 6) == 1)
-         memcpy(&concatenation[CurrPos], SA, 6);
-     else
--        memcpy(&concatenation[CurrPos], AA, 6);     
-+        memcpy(&concatenation[CurrPos], AA, 6);
-     CurrPos += 6;
- 
-     // Get smaller address
--    if (RTMPCompareMemory(ANonce, SNonce, 32) == 1) 
-+    if (RTMPCompareMemory(ANonce, SNonce, 32) == 1)
-         memcpy(&concatenation[CurrPos], SNonce, 32);
--    else        
-+    else
-         memcpy(&concatenation[CurrPos], ANonce, 32);
-     CurrPos += 32;
- 
-     // Get larger address
--    if (RTMPCompareMemory(ANonce, SNonce, 32) == 1) 
-+    if (RTMPCompareMemory(ANonce, SNonce, 32) == 1)
-         memcpy(&concatenation[CurrPos], ANonce, 32);
--    else        
-+    else
-         memcpy(&concatenation[CurrPos], SNonce, 32);
-     CurrPos += 32;
--        
-+
-     PRF(PMK, LEN_MASTER_KEY, Prefix,  22, concatenation, 76 , output, len);
- }
- 
- /*
-     ========================================================================
--    
-+
-     Routine Description:
-         Misc function to Generate random number
- 
-     Arguments:
--        
-+
-     Return Value:
- 
-     Note:
-         802.1i  Annex F.9
--        
-+
-     ========================================================================
- */
- VOID    GenRandom(
--    IN  PRTMP_ADAPTER   pAd, 
-+    IN  PRTMP_ADAPTER   pAd,
-     OUT UCHAR           *random)
--{   
-+{
-     INT     i, curr;
-     UCHAR   local[80], KeyCounter[32];
-     UCHAR   result[80];
-@@ -1337,9 +1592,9 @@
-     memset(local, 0, 80);
-     memset(KeyCounter, 0, 32);
-     memcpy(local, pAd->CurrentAddress, ETH_ALEN);
--    
-+
-     for (i = 0; i < 32; i++)
--    {       
-+    {
-         curr =  ETH_ALEN;
-         CurrentTime = jiffies;
-         memcpy(local,  pAd->CurrentAddress, ETH_ALEN);
-@@ -1348,29 +1603,29 @@
-         curr += sizeof(CurrentTime);
-         memcpy(&local[curr],  result, 32);
-         curr += 32;
--        memcpy(&local[curr],  &i,  2);      
-+        memcpy(&local[curr],  &i,  2);
-         curr += 2;
--        PRF(KeyCounter, 32, prefix,12, local,   curr, result, 32); 
-+        PRF(KeyCounter, 32, prefix,12, local,   curr, result, 32);
-     }
--    memcpy(random, result,  32);    
-+    memcpy(random, result,  32);
- }
- 
- /*
-     ========================================================================
--    
-+
-     Routine Description:
-         Misc function to decrypt AES body
--    
-+
-     Arguments:
--            
-+
-     Return Value:
--    
-+
-     Note:
-         This function references to RFC 3394 for aes key unwrap algorithm.
--            
-+
-     ========================================================================
- */
--VOID    AES_GTK_KEY_UNWRAP( 
-+VOID    AES_GTK_KEY_UNWRAP(
-     IN  UCHAR   *key,
-     OUT UCHAR   *plaintext,
-     IN  UCHAR   *ciphertext)
-@@ -1381,7 +1636,7 @@
-     INT         num_blocks = 2;
-     INT         j;
-     aes_context aesctx;
--    
-+
-     // Initialize
-     // A = C[0]
-     memcpy(A, ciphertext, 8);
-@@ -1391,7 +1646,7 @@
-     memcpy(R2, &ciphertext[16], 8);
- 
-     aes_set_key(&aesctx, key, 128);
--    
-+
-     for (j = 5; j >= 0; j--)
-     {
-         xor = num_blocks * j + 2;
-@@ -1401,7 +1656,7 @@
-         aes_decrypt(&aesctx, BIN, BOUT);
-         memcpy(A, &BOUT[0], 8);
-         memcpy(R2, &BOUT[8], 8);
--        
-+
-         xor = num_blocks * j + 1;
-         memcpy(BIN, A, 8);
-         BIN[7] = A[7] ^ xor;
-diff -Nur rt2500-1.1.0-b4/Module/wpa.h rt2500-cvs-2007061011/Module/wpa.h
---- rt2500-1.1.0-b4/Module/wpa.h	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/Module/wpa.h	2007-03-21 05:25:35.000000000 +0100
-@@ -1,35 +1,35 @@
--/*************************************************************************** 
-- * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      * 
-- *                                                                         * 
-- *   This program is free software; you can redistribute it and/or modify  * 
-- *   it under the terms of the GNU General Public License as published by  * 
-- *   the Free Software Foundation; either version 2 of the License, or     * 
-- *   (at your option) any later version.                                   * 
-- *                                                                         * 
-- *   This program is distributed in the hope that it will be useful,       * 
-- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
-- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
-- *   GNU General Public License for more details.                          * 
-- *                                                                         * 
-- *   You should have received a copy of the GNU General Public License     * 
-- *   along with this program; if not, write to the                         * 
-- *   Free Software Foundation, Inc.,                                       * 
-- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
-- *                                                                         * 
-- *   Licensed under the GNU GPL                                            * 
-- *   Original code supplied under license from RaLink Inc, 2004.           * 
-- ***************************************************************************/ 
--
-- /*************************************************************************** 
-- *      Module Name: wpa.h 
-- *              
-- *      Abstract: 
-- *              
-- *      Revision History: 
-- *      Who             When            What 
-- *      --------        -----------     ----------------------------- 
-- *      MarkW           8th  Dec 04     Baseline code  
-- ***************************************************************************/ 
-+/***************************************************************************
-+ * RT2400/RT2500 SourceForge Project - http://rt2x00.serialmonkey.com      *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program is distributed in the hope that it will be useful,       *
-+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-+ *   GNU General Public License for more details.                          *
-+ *                                                                         *
-+ *   You should have received a copy of the GNU General Public License     *
-+ *   along with this program; if not, write to the                         *
-+ *   Free Software Foundation, Inc.,                                       *
-+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
-+ *                                                                         *
-+ *   Licensed under the GNU GPL                                            *
-+ *   Original code supplied under license from RaLink Inc, 2004.           *
-+ ***************************************************************************/
-+
-+ /***************************************************************************
-+ *      Module Name: wpa.h
-+ *
-+ *      Abstract:
-+ *
-+ *      Revision History:
-+ *      Who             When            What
-+ *      --------        -----------     -----------------------------
-+ *      MarkW           8th  Dec 04     Baseline code
-+ ***************************************************************************/
- 
- #ifndef __WPA_H__
- #define __WPA_H__
-@@ -57,7 +57,7 @@
- #define DESC_TYPE_AES               2
- #define RSN_KEY_DESC                0xfe
- 
--#define LEN_MASTER_KEY              32  
-+#define LEN_MASTER_KEY              32
- 
- // EAPOL EK, MK
- #define LEN_EAP_EK                  16
-@@ -131,7 +131,7 @@
-     UCHAR       KeyRsc[LEN_KEY_DESC_RSC];
-     UCHAR       KeyId[LEN_KEY_DESC_ID];
-     UCHAR       KeyMic[LEN_KEY_DESC_MIC];
--    UCHAR       KeyDataLen[2];     
-+    UCHAR       KeyDataLen[2];
-     UCHAR       KeyData[MAX_LEN_OF_RSNIE];
- }   KEY_DESCRIPTER, *PKEY_DESCRIPTER;
- 
-diff -Nur rt2500-1.1.0-b4/THANKS rt2500-cvs-2007061011/THANKS
---- rt2500-1.1.0-b4/THANKS	2006-06-17 22:12:58.000000000 +0200
-+++ rt2500-cvs-2007061011/THANKS	2007-05-05 19:48:18.000000000 +0200
-@@ -8,6 +8,7 @@
- * Mark Wallis - mwallis@serialmonkey.com
- * Robin Cornelius - robin@cornelius.demon.co.uk
- * Gertjan van Wingerde - gwingerde@users.sourceforge.net
-+* Olivier Cornu - o.cornu@gmail.com
- 
- And Special thanks to those that have contributed to the project
- 
diff --git a/abs/core-testing/rt2500/kernel-2.6.24.patch b/abs/core-testing/rt2500/kernel-2.6.24.patch
deleted file mode 100644
index 113573f..0000000
--- a/abs/core-testing/rt2500/kernel-2.6.24.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- rt2500-1.1.0-b4/Module/rtmp_main.c~	2008-01-25 11:13:14.000000000 +0100
-+++ rt2500-1.1.0-b4/Module/rtmp_main.c	2008-01-25 11:17:57.000000000 +0100
-@@ -251,8 +251,6 @@
-         goto err_out;
-     }
- 
--    SET_MODULE_OWNER(net_dev);
--
-     #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
-        SET_NETDEV_DEV(net_dev, &(pPci_Dev->dev));
-     #endif
-@@ -392,7 +390,7 @@
-         NICDisableInterrupt(pAd);
-     }
- 
--    status = request_irq(pAd->pPci_Dev->irq, &RTMPIsr, SA_SHIRQ, net_dev->name, net_dev);
-+    status = request_irq(pAd->pPci_Dev->irq, &RTMPIsr, IRQF_SHARED, net_dev->name, net_dev);
-     if (status)
-     {
-         goto out_module_put;
diff --git a/abs/core-testing/rt2500/kernel-2.6.27.patch b/abs/core-testing/rt2500/kernel-2.6.27.patch
deleted file mode 100644
index 22abd35..0000000
--- a/abs/core-testing/rt2500/kernel-2.6.27.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-diff -Nur rt2500-1.1.0-b4.orig/Module/rtmp_info.c rt2500-1.1.0-b4/Module/rtmp_info.c
---- rt2500-1.1.0-b4.orig/Module/rtmp_info.c	2008-10-10 16:55:27.000000000 +0200
-+++ rt2500-1.1.0-b4/Module/rtmp_info.c	2008-10-10 16:57:27.000000000 +0200
-@@ -481,7 +481,7 @@
- 		iwe.cmd = SIOCGIWAP;
- 		iwe.u.ap_addr.sa_family = ARPHRD_ETHER;
- 				memcpy(iwe.u.ap_addr.sa_data, &pAdapter->PortCfg.BssTab.BssEntry[i].Bssid, ETH_ALEN);
--			current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_ADDR_LEN);
-+			current_ev = iwe_stream_add_event(info, current_ev,end_buf, &iwe, IW_EV_ADDR_LEN);
- 		//================================
- 		memset(&iwe, 0, sizeof(iwe));
- 		iwe.cmd = SIOCGIWMODE;
-@@ -499,13 +499,13 @@
- 		}
- 
- 		iwe.len = IW_EV_UINT_LEN;
--		current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe,  IW_EV_UINT_LEN);
-+		current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe,  IW_EV_UINT_LEN);
- 		//================================
- 		memset(&iwe, 0, sizeof(iwe));
- 		iwe.cmd = SIOCGIWESSID;
- 		iwe.u.data.length = pAdapter->PortCfg.BssTab.BssEntry[i].SsidLen;
- 		iwe.u.data.flags = 1;
--		current_ev = iwe_stream_add_point(current_ev,end_buf, &iwe, pAdapter->PortCfg.BssTab.BssEntry[i].Ssid);
-+		current_ev = iwe_stream_add_point(info, current_ev,end_buf, &iwe, pAdapter->PortCfg.BssTab.BssEntry[i].Ssid);
- 		//================================
- 		memset(&iwe, 0, sizeof(iwe));
- 		iwe.cmd = SIOCGIWENCODE;
-@@ -513,7 +513,7 @@
- 			iwe.u.data.flags =IW_ENCODE_ENABLED | IW_ENCODE_NOKEY;
- 		else
- 			iwe.u.data.flags = IW_ENCODE_DISABLED;
--		current_ev = iwe_stream_add_point(current_ev, end_buf,&iwe,  pAdapter->PortCfg.BssTab.BssEntry[i].Ssid);
-+		current_ev = iwe_stream_add_point(info, current_ev, end_buf,&iwe,  pAdapter->PortCfg.BssTab.BssEntry[i].Ssid);
- 
- 		//================================
- 		memset(&iwe, 0, sizeof(iwe));
-@@ -524,7 +524,7 @@
- 		{
- 			iwe.u.bitrate.value = RateIdToMbps[pAdapter->PortCfg.BssTab.BssEntry[i].Rates[i]/2] * 1000000;
- 			iwe.u.bitrate.disabled = 0;
--			current_val = iwe_stream_add_value(current_ev,
-+			current_val = iwe_stream_add_value(info, current_ev,
- 				current_val, end_buf, &iwe,
- 				IW_EV_PARAM_LEN);
- 		}
-@@ -537,7 +537,7 @@
- 			iwe.u.freq.m = pAdapter->PortCfg.BssTab.BssEntry[i].Channel;
- 		iwe.u.freq.e = 0;
- 		iwe.u.freq.i = 0;
--		current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_FREQ_LEN);
-+		current_ev = iwe_stream_add_event(info, current_ev,end_buf, &iwe, IW_EV_FREQ_LEN);
- 		//================================
- 		memset(&iwe, 0, sizeof(iwe));
-                 iwe.cmd = IWEVQUAL;
-@@ -549,7 +549,7 @@
- 		iwe.u.qual.noise = pAdapter->PortCfg.BssTab.BssEntry[i].Noise;
-                 //iwe.u.qual.noise = (pAdapter->PortCfg.LastR17Value > BBP_R17_DYNAMIC_UP_BOUND) ? BBP_R17_DYNAMIC_UP_BOUND : ((ULONG) pAdapter->PortCfg.LastR17Value);           // // noise level (dBm)
- 
--                current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_QUAL_LEN);
-+                current_ev = iwe_stream_add_event(info, current_ev,end_buf, &iwe, IW_EV_QUAL_LEN);
- 
- 
-                 //================================
diff --git a/abs/core-testing/rt2500/rt2500.install b/abs/core-testing/rt2500/rt2500.install
deleted file mode 100644
index e58aa37..0000000
--- a/abs/core-testing/rt2500/rt2500.install
+++ /dev/null
@@ -1,26 +0,0 @@
-# arg 1:  the new package version
-post_install()
-{
-  KERNEL_VERSION='2.6.28-LinHES'
-  depmod -v $KERNEL_VERSION > /dev/null 2>&1 
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-post_upgrade()
-{
-  KERNEL_VERSION='2.6.28-LinHES'
-  depmod -v $KERNEL_VERSION > /dev/null 2>&1 
-}
-
-# arg 1:  the old package version
-post_remove()
-{
-  KERNEL_VERSION='2.6.28-LinHES'
-  depmod -v $KERNEL_VERSION > /dev/null 2>&1 	  
-}
-
-op=$1
-shift
-
-$op $*
diff --git a/abs/core-testing/rt2x00-rt61-fw/PKGBUILD b/abs/core-testing/rt2x00-rt61-fw/PKGBUILD
deleted file mode 100644
index 0224fcc..0000000
--- a/abs/core-testing/rt2x00-rt61-fw/PKGBUILD
+++ /dev/null
@@ -1,18 +0,0 @@
-# $Id: PKGBUILD 15101 2008-10-12 16:24:41Z tpowa $
-# Maintainer: Tom Killian <tom@archlinux.org>
-
-pkgname=rt2x00-rt61-fw
-pkgver=1.2
-pkgrel=3
-pkgdesc="Firmware for the rt2x00 wireless drivers"
-arch=(i686 x86_64)
-url="http://www.ralinktech.com/ralink/Home/Support/Linux.html"
-license=('RALINK')
-source=(http://www.ralinktech.com.tw/data/RT61_Firmware_V${pkgver}.zip)
-
-build() {
-  cd $startdir/src/RT61_Firmware_V${pkgver}
-  mkdir -p $startdir/pkg/lib/firmware
-  install -m644 rt2* $startdir/pkg/lib/firmware || return 1
-}
-md5sums=('d4c690c93b470bc9a681297c2adc6281')
diff --git a/abs/core-testing/rt2x00-rt71w-fw/PKGBUILD b/abs/core-testing/rt2x00-rt71w-fw/PKGBUILD
deleted file mode 100644
index 890d3a6..0000000
--- a/abs/core-testing/rt2x00-rt71w-fw/PKGBUILD
+++ /dev/null
@@ -1,17 +0,0 @@
-# $Id: PKGBUILD 15104 2008-10-12 16:35:52Z tpowa $
-# Maintainer: Tom Killian <tom@archlinux.org>
-
-pkgname=rt2x00-rt71w-fw
-pkgver=1.8
-pkgrel=3
-pkgdesc="Firmware for the rt2x00 wireless drivers"
-arch=(i686 x86_64)
-url="http://www.ralinktech.com/ralink/Home/Support/Linux.html"
-license=('RALINK')
-source=(http://www.ralinktech.com.tw/data/RT71W_Firmware_V${pkgver}.zip)
-
-build() {
-  cd $startdir/src/RT71W_Firmware_V${pkgver}
-  install -Dm644 rt73.bin $startdir/pkg/lib/firmware/rt73.bin || return 1
-}
-md5sums=('1e7a5dc574e0268574fcda3fd5cf52f7')
-- 
cgit v0.12


From f86b8321c37771b0732eca21876cc8c01ab696eb Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:56:54 -0700
Subject: sqlite3:Bumped/Updated for LinHES 7.

---
 abs/core-testing/sqlite3/PKGBUILD | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/abs/core-testing/sqlite3/PKGBUILD b/abs/core-testing/sqlite3/PKGBUILD
index acf7a94..0a6fc93 100644
--- a/abs/core-testing/sqlite3/PKGBUILD
+++ b/abs/core-testing/sqlite3/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 22976 2008-12-30 11:35:01Z andyrtr $
+# $Id: PKGBUILD 86812 2010-08-04 21:15:20Z andyrtr $
 # Maintainer: Andreas Radke <andyrtr@archlinux.org>
 # Contributor: Tom Newsom <Jeepster@gmx.co.uk>
 
 pkgname=sqlite3
-pkgver=3.6.10
-pkgrel=5
+pkgver=3.7.0.1
+pkgrel=1
 pkgdesc="A C library that implements an SQL database engine"
 arch=('i686' 'x86_64')
 license=('custom')
 url="http://www.sqlite.org/"
-depends=('readline')
+depends=('readline>=6.0.00')
 makedepends=('tcl')
 conflicts=('sqlite')
 replaces=('sqlite')
 source=(http://www.sqlite.org/sqlite-$pkgver.tar.gz
 	license.txt)
-md5sums=('a03bdc86df4025b6881d58557e4b5bd3'
-         'c1cdbc5544034d9012e421e75a5e4890')
 options=(!libtool)
+md5sums=('d25d7551ba6bb310362cb0e7d4906f25'
+         'c1cdbc5544034d9012e421e75a5e4890')
 
 build() {
   cd ${srcdir}/sqlite-${pkgver}
@@ -25,8 +25,15 @@ build() {
   export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1"
   ./configure --prefix=/usr \
 	--enable-threadsafe \
+	--enable-threads-override-locks \
+	--enable-cross-thread-connections \
 	--disable-static \
 	--enable-load-extension || return 1
+
+  # rpath removal
+  sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+  sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+
   make || return 1
   make DESTDIR=${pkgdir} install || return 1
   install -Dm0644 sqlite3.1 ${pkgdir}/usr/share/man/man1/sqlite3.1
-- 
cgit v0.12


From b6a2f8e91911b396508ceec7da17414b809c1561 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:57:11 -0700
Subject: squashfs:Bumped/Updated for LinHES 7.

---
 abs/core-testing/squashfs-tools/PKGBUILD           | 21 ++++++++++----------
 .../squashfs-tools/mksquashfs-fix-race.patch       | 23 ++++++++++++++++++++++
 2 files changed, 34 insertions(+), 10 deletions(-)
 create mode 100644 abs/core-testing/squashfs-tools/mksquashfs-fix-race.patch

diff --git a/abs/core-testing/squashfs-tools/PKGBUILD b/abs/core-testing/squashfs-tools/PKGBUILD
index dd17001..fb99564 100644
--- a/abs/core-testing/squashfs-tools/PKGBUILD
+++ b/abs/core-testing/squashfs-tools/PKGBUILD
@@ -1,24 +1,25 @@
-# $Id: PKGBUILD 3162 2008-06-20 23:18:11Z simo $
+# $Id: PKGBUILD 70339 2010-02-26 03:50:39Z dgriffiths $
 # Maintainer: Aaron Griffin <aaron@archlinux.org>
 # Original TU: Jeff Mickey <j@codemac.net>
 # Contributor: ciccio.a
 
 pkgname=squashfs-tools
-pkgver=3.3
-_realver=3.3
-pkgrel=1
+pkgver=4.0
+pkgrel=3
 pkgdesc="Tools for squashfs, a highly compressed read-only filesystem for Linux."
 url="http://squashfs.sourceforge.net"
-license="GPL"
+license=("GPL")
 arch=('i686' 'x86_64')
 depends=('zlib' 'glibc')
-source=(http://easynews.dl.sourceforge.net/sourceforge/squashfs/squashfs$_realver.tar.gz)
-md5sums=('62d3ff7c067a5aa82f57711b3a4ab86a')
+source=(http://downloads.sourceforge.net/sourceforge/squashfs/squashfs${pkgver}.tar.gz mksquashfs-fix-race.patch)
 
 build()
 {
-    cd $startdir/src/squashfs$_realver/$pkgname
+    cd ${srcdir}/squashfs${pkgver}/${pkgname}
+    patch < ${srcdir}/mksquashfs-fix-race.patch || return 1
     make || return 1
-    mkdir -p $startdir/pkg/sbin
-    cp -a mksquashfs unsquashfs $startdir/pkg/sbin
+    install -Dm755 mksquashfs ${pkgdir}/sbin/mksquashfs || return 1
+    install -m755 unsquashfs ${pkgdir}/sbin/unsquashfs || return 1
 }
+md5sums=('a3c23391da4ebab0ac4a75021ddabf96'
+	 '116b8a285ff8d61d59c48eb80c0ff564')
diff --git a/abs/core-testing/squashfs-tools/mksquashfs-fix-race.patch b/abs/core-testing/squashfs-tools/mksquashfs-fix-race.patch
new file mode 100644
index 0000000..e483c93
--- /dev/null
+++ b/abs/core-testing/squashfs-tools/mksquashfs-fix-race.patch
@@ -0,0 +1,23 @@
+--- squashfs-tools/mksquashfs.c	2009-04-05 18:22:48.000000000 -0300
++++ squashfs-tools/mksquashfs.c	2010-02-10 17:04:29.303757175 -0300
+@@ -1733,9 +1733,7 @@
+ 		entry->buffer->block = bytes;
+ 		bytes += compressed_size;
+ 		fragments_outstanding --;
+-		pthread_mutex_unlock(&fragment_mutex);
+ 		queue_put(to_writer, entry->buffer);
+-		pthread_mutex_lock(&fragment_mutex);
+ 		TRACE("fragment_locked writing fragment %d, compressed size %d"
+ 			"\n", entry->fragment, compressed_size);
+ 		free(entry);
+@@ -2426,8 +2424,8 @@
+ 			write_buffer->block = bytes;
+ 			bytes += compressed_size;
+ 			fragments_outstanding --;
+-			pthread_mutex_unlock(&fragment_mutex);
+ 			queue_put(to_writer, write_buffer);
++			pthread_mutex_unlock(&fragment_mutex);
+ 			TRACE("Writing fragment %lld, uncompressed size %d, "
+ 				"compressed size %d\n", file_buffer->block,
+ 				file_buffer->size, compressed_size);
+
-- 
cgit v0.12


From 779ec83635ff79f8942a6c9393776eda64b06015 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:57:26 -0700
Subject: tiacx-firmware:Bumped/Updated for LinHES 7.

---
 abs/core-testing/tiacx-firmware/PKGBUILD           | 22 ++++++++++++----------
 .../tiacx-firmware/tiacx-firmware.install          |  4 ----
 2 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/abs/core-testing/tiacx-firmware/PKGBUILD b/abs/core-testing/tiacx-firmware/PKGBUILD
index d16c818..1479cf5 100644
--- a/abs/core-testing/tiacx-firmware/PKGBUILD
+++ b/abs/core-testing/tiacx-firmware/PKGBUILD
@@ -1,20 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: James Rayner <iphitus@gmail.com>
+# $Id: PKGBUILD 59442 2009-11-23 23:27:25Z giovanni $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
 
 pkgname=tiacx-firmware
 pkgver=2
-pkgrel=1
+pkgrel=2
 pkgdesc="Firmware for Texas Instruments ACX100/ACX111 wireless chips."
-arch=('i686' 'x86_64')
+arch=('any')
 url="http://acx100.sourceforge.net/"
 license=('MPL')
 install=tiacx-firmware.install
-source=(http://www.kazer.org/acx-firmware-20060207.tar.bz2)
+depends=()
+source=(ftp://ftp.archlinux.org/other/tiacx-firmware/acx-firmware-20060207.tar.bz2)
+md5sums=('b8efea38c2c598190604dfa297cc9675')
 
 build() {
-  mkdir -p $startdir/pkg/usr/share
-  cp -r fw $startdir/pkg/usr/share/tiacx
-  find $startdir/pkg -type d -exec chmod 755 {} \;
-  find $startdir/pkg -type f -exec chmod 644 {} \;
+  install -d ${pkgdir}/usr/share
+  cp -r fw "${pkgdir}/usr/share/tiacx"
+  find ${pkgdir} -type d -exec chmod 755 {} \;
+  find ${pkgdir} -type f -exec chmod 644 {} \;
 }
-md5sums=('b8efea38c2c598190604dfa297cc9675')
diff --git a/abs/core-testing/tiacx-firmware/tiacx-firmware.install b/abs/core-testing/tiacx-firmware/tiacx-firmware.install
index b1ebb62..b83d6fd 100644
--- a/abs/core-testing/tiacx-firmware/tiacx-firmware.install
+++ b/abs/core-testing/tiacx-firmware/tiacx-firmware.install
@@ -16,7 +16,3 @@ EOM
 post_upgrade() {
   post_install
 }
-      
-op=$1
-shift
-$op $*
-- 
cgit v0.12


From 099ccac45c11ee6f96198367e9bea7040c9358c8 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:57:46 -0700
Subject: tiacx:Bumped/Updated for LinHES 7.

---
 abs/core-testing/tiacx/PKGBUILD            | 25 ++++++---
 abs/core-testing/tiacx/acx.install         | 16 ++----
 abs/core-testing/tiacx/kernel-2.6.30.patch | 16 ++++++
 abs/core-testing/tiacx/kernel-2.6.31.patch | 88 ++++++++++++++++++++++++++++++
 abs/core-testing/tiacx/kernel-2.6.33.patch | 11 ++++
 5 files changed, 138 insertions(+), 18 deletions(-)
 create mode 100644 abs/core-testing/tiacx/kernel-2.6.30.patch
 create mode 100644 abs/core-testing/tiacx/kernel-2.6.31.patch
 create mode 100644 abs/core-testing/tiacx/kernel-2.6.33.patch

diff --git a/abs/core-testing/tiacx/PKGBUILD b/abs/core-testing/tiacx/PKGBUILD
index a55fb12..43b77db 100644
--- a/abs/core-testing/tiacx/PKGBUILD
+++ b/abs/core-testing/tiacx/PKGBUILD
@@ -1,26 +1,35 @@
-# $Id: PKGBUILD 22506 2008-12-26 22:54:41Z tpowa $
+# $Id: PKGBUILD 80410 2010-05-17 07:53:48Z tpowa $
 # Maintainer: James Rayner <iphitus@gmail.com>
 
 pkgname=tiacx
 pkgver=20080210
-pkgrel=10
+pkgrel=15
 pkgdesc="OpenSource module for Texas Instruments ACX100/ACX111 wireless chips. For stock arch 2.6 kernel"
 arch=(i686 x86_64)
 url="http://acx100.sourceforge.net/"
 license=('MPL')
-depends=('wireless_tools' 'kernel26>=2.6.28' 'kernel26<2.6.29' 'tiacx-firmware')
+depends=('wireless_tools' 'kernel26>=2.6.34' 'kernel26<2.6.35' 'tiacx-firmware')
+makedepends=('kernel26-headers>=2.6.34' 'kernel26-headers<2.6.35')
 install=acx.install
 source=(http://downloads.sourceforge.net/sourceforge/acx100/acx-$pkgver.tar.bz2
-        kernel-2.6.27.patch)
-md5sums=('7d5ce3215708e4e9f95cf567a9ee3a12'
-         '9895f72f8d0c84956b0f6c3b16df0fe8')
-
-_kernver=2.6.28-LinHES
+        kernel-2.6.27.patch
+        kernel-2.6.30.patch
+        kernel-2.6.31.patch
+        kernel-2.6.33.patch)
+_kernver=2.6.34-LinHES
 
 build() {
     cd $startdir/src/acx-$pkgver
     patch -Np1 -i ../kernel-2.6.27.patch || return 1
+    patch -Np0 -i ../kernel-2.6.30.patch || return 1
+    patch -Np1 -i ../kernel-2.6.31.patch || return 1
+    patch -Np0 -i ../kernel-2.6.33.patch || return 1
     make -C /lib/modules/${_kernver}/build M=`pwd` || return 1
     install -D acx.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/net/wireless/tiacx/acx.ko
     sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install
 }
+md5sums=('7d5ce3215708e4e9f95cf567a9ee3a12'
+         '9895f72f8d0c84956b0f6c3b16df0fe8'
+         'e2900aee839ce711a7f7606b3e3de36e'
+         'dbcb276d77df7801cef58a85c18dfe94'
+         '9cd35ea33b8abdd2e4efec485b05477e')
diff --git a/abs/core-testing/tiacx/acx.install b/abs/core-testing/tiacx/acx.install
index 8d11348..b858f58 100644
--- a/abs/core-testing/tiacx/acx.install
+++ b/abs/core-testing/tiacx/acx.install
@@ -1,23 +1,19 @@
 # arg 1:  the new package version
 post_install() {
-  KERNEL_VERSION='2.6.28-LinHES'
-  depmod -v $KERNEL_VERSION > /dev/null 2>&1 
+  KERNEL_VERSION='2.6.34-LinHES'
+  depmod $KERNEL_VERSION > /dev/null 2>&1 
 }
 
 # arg 1:  the new package version
 # arg 2:  the old package version
 post_upgrade() {
-  KERNEL_VERSION='2.6.28-LinHES'
-  depmod -v $KERNEL_VERSION > /dev/null 2>&1	 
+  KERNEL_VERSION='2.6.34-LinHES'
+  depmod $KERNEL_VERSION > /dev/null 2>&1	 
   
 }
 
 # arg 1:  the old package version
 post_remove() {
-  KERNEL_VERSION='2.6.28-LinHES'
-  depmod -v $KERNEL_VERSION > /dev/null 2>&1	 
+  KERNEL_VERSION='2.6.34-LinHES'
+  depmod $KERNEL_VERSION > /dev/null 2>&1	 
 }
-
-op=$1
-shift
-$op $*
diff --git a/abs/core-testing/tiacx/kernel-2.6.30.patch b/abs/core-testing/tiacx/kernel-2.6.30.patch
new file mode 100644
index 0000000..b5d94a1
--- /dev/null
+++ b/abs/core-testing/tiacx/kernel-2.6.30.patch
@@ -0,0 +1,16 @@
+--- wlan_compat.h~	2009-06-12 09:17:30.000000000 +0200
++++ wlan_compat.h	2009-06-12 09:17:30.000000000 +0200
+@@ -217,13 +217,6 @@
+ /*=============================================================*/
+ #define WLAN_PACKED	__attribute__ ((packed))
+ 
+-/* Interrupt handler backwards compatibility stuff */
+-#ifndef IRQ_NONE
+-#define IRQ_NONE
+-#define IRQ_HANDLED
+-typedef void irqreturn_t;
+-#endif
+-
+ #ifndef ARPHRD_IEEE80211_PRISM
+ #define ARPHRD_IEEE80211_PRISM 802
+ #endif
diff --git a/abs/core-testing/tiacx/kernel-2.6.31.patch b/abs/core-testing/tiacx/kernel-2.6.31.patch
new file mode 100644
index 0000000..2a89e3c
--- /dev/null
+++ b/abs/core-testing/tiacx/kernel-2.6.31.patch
@@ -0,0 +1,88 @@
+--- acx-20080210/pci.c	2008-02-10 21:06:42.000000000 +0100
++++ acx-20080210/pci.c	2009-09-11 22:27:28.000000000 +0200
+@@ -1437,6 +1437,19 @@
+ 
+ static void dummy_netdev_init(struct net_device *ndev) {}
+ 
++static const struct net_device_ops acx_netdev_ops = {
++	.ndo_open = &acxpci_e_open,
++	.ndo_stop = &acxpci_e_close,
++	.ndo_start_xmit = &acx_i_start_xmit,
++	.ndo_get_stats = &acx_e_get_stats,
++#if IW_HANDLER_VERSION <= 5
++	.ndo_get_wireless_stats = &acx_e_get_wireless_stats,
++#endif
++	.ndo_set_multicast_list = &acxpci_i_set_multicast_list,
++	.ndo_tx_timeout = &acxpci_i_tx_timeout,
++	.ndo_change_mtu = &acx_e_change_mtu,
++};
++	
+ #ifdef CONFIG_PCI
+ static int __devinit acxpci_e_probe(struct pci_dev *pdev, const struct pci_device_id *id)
+ {
+@@ -1547,17 +1560,8 @@
+ 	}
+ 
+ 	ether_setup(ndev);
+-	ndev->open = &acxpci_e_open;
+-	ndev->stop = &acxpci_e_close;
+-	ndev->hard_start_xmit = &acx_i_start_xmit;
+-	ndev->get_stats = &acx_e_get_stats;
+-#if IW_HANDLER_VERSION <= 5
+-	ndev->get_wireless_stats = &acx_e_get_wireless_stats;
+-#endif
+-	ndev->wireless_handlers = (struct iw_handler_def *)&acx_ioctl_handler_def;
+-	ndev->set_multicast_list = &acxpci_i_set_multicast_list;
+-	ndev->tx_timeout = &acxpci_i_tx_timeout;
+-	ndev->change_mtu = &acx_e_change_mtu;
++	ndev->wireless_handlers = (struct iw_handler_def *)&acx_ioctl_handler_def;
++	ndev->netdev_ops = &acx_netdev_ops;
+ 	ndev->watchdog_timeo = 4 * HZ;
+ 	ndev->irq = pdev->irq;
+ 	ndev->base_addr = pci_resource_start(pdev, 0);
+--- acx-20080210/usb.c	2008-02-10 21:06:42.000000000 +0100
++++ acx-20080210/usb.c	2009-09-11 22:38:42.000000000 +0200
+@@ -778,6 +778,21 @@
+ static void
+ dummy_netdev_init(struct net_device *ndev) {}
+ 
++static const struct net_device_ops acxusb_netdev_ops = {
++	.ndo_open = &acxusb_e_open,
++	.ndo_stop = &acxusb_e_close,
++	.ndo_start_xmit = (void *)&acx_i_start_xmit,
++	.ndo_get_stats = (void *)&acx_e_get_stats,
++#if IW_HANDLER_VERSION <= 5
++	.ndo_get_wireless_stats = (void *)&acx_e_get_wireless_stats,
++#endif
++	.ndo_set_multicast_list = (void *)&acxusb_i_set_rx_mode,
++#ifdef HAVE_TX_TIMEOUT
++	.ndo_tx_timeout = &acxusb_i_tx_timeout,
++#endif
++	.ndo_change_mtu = &acx_e_change_mtu,
++};
++
+ static int
+ acxusb_e_probe(struct usb_interface *intf, const struct usb_device_id *devID)
+ {
+@@ -845,20 +860,11 @@
+ 	/* Register the callbacks for the network device functions */
+ 
+ 	ether_setup(ndev);
+-	ndev->open = &acxusb_e_open;
+-	ndev->stop = &acxusb_e_close;
+-	ndev->hard_start_xmit = (void *)&acx_i_start_xmit;
+-	ndev->get_stats = (void *)&acx_e_get_stats;
+-#if IW_HANDLER_VERSION <= 5
+-	ndev->get_wireless_stats = (void *)&acx_e_get_wireless_stats;
+-#endif
+ 	ndev->wireless_handlers = (struct iw_handler_def *)&acx_ioctl_handler_def;
+-	ndev->set_multicast_list = (void *)&acxusb_i_set_rx_mode;
++	ndev->netdev_ops = &acxusb_netdev_ops;
+ #ifdef HAVE_TX_TIMEOUT
+-	ndev->tx_timeout = &acxusb_i_tx_timeout;
+ 	ndev->watchdog_timeo = 4 * HZ;
+ #endif
+-	ndev->change_mtu = &acx_e_change_mtu;
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) && defined(SET_MODULE_OWNER)
+ 	SET_MODULE_OWNER(ndev);
+ #endif
diff --git a/abs/core-testing/tiacx/kernel-2.6.33.patch b/abs/core-testing/tiacx/kernel-2.6.33.patch
new file mode 100644
index 0000000..f486009
--- /dev/null
+++ b/abs/core-testing/tiacx/kernel-2.6.33.patch
@@ -0,0 +1,11 @@
+--- pci.c~	2010-02-27 19:30:54.000000000 +0100
++++ pci.c	2010-02-27 19:30:54.000000000 +0100
+@@ -35,7 +35,7 @@
+ 
+ /* Linux 2.6.18+ uses <linux/utsrelease.h> */
+ #ifndef UTS_RELEASE
+-#include <linux/utsrelease.h>
++#include <generated/utsrelease.h>
+ #endif
+ 
+ #include <linux/compiler.h> /* required for Lx 2.6.8 ?? */
-- 
cgit v0.12


From 6bcdc0236ae6c23bc9dd057913716af393af71ea Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:58:02 -0700
Subject: udev:Bumped/Updated for LinHES 7.

---
 abs/core-testing/udev/81-arch.rules         |  94 ++----
 abs/core-testing/udev/PKGBUILD              | 149 +++++----
 abs/core-testing/udev/__changelog           |   1 -
 abs/core-testing/udev/arch-udev-rules.patch | 172 +++--------
 abs/core-testing/udev/cdsymlinks.sh         |  11 +-
 abs/core-testing/udev/load-modules.sh       |  12 +-
 abs/core-testing/udev/logitech-rules.patch  |  14 +
 abs/core-testing/udev/mount-usb             |  51 ----
 abs/core-testing/udev/readme-udev-arch.txt  | 266 ----------------
 abs/core-testing/udev/resolve-modalias.c    |  62 ----
 abs/core-testing/udev/start_udev            | 137 ---------
 abs/core-testing/udev/udev-ntfs-3g.patch    | 217 -------------
 abs/core-testing/udev/udev.install          |  23 +-
 abs/core-testing/udev/udev.rules            | 456 ----------------------------
 abs/core-testing/udev/usb-storage.rules     |   4 -
 15 files changed, 199 insertions(+), 1470 deletions(-)
 delete mode 100644 abs/core-testing/udev/__changelog
 create mode 100644 abs/core-testing/udev/logitech-rules.patch
 delete mode 100644 abs/core-testing/udev/mount-usb
 delete mode 100644 abs/core-testing/udev/readme-udev-arch.txt
 delete mode 100644 abs/core-testing/udev/resolve-modalias.c
 delete mode 100755 abs/core-testing/udev/start_udev
 delete mode 100644 abs/core-testing/udev/udev-ntfs-3g.patch
 delete mode 100644 abs/core-testing/udev/udev.rules
 delete mode 100644 abs/core-testing/udev/usb-storage.rules

diff --git a/abs/core-testing/udev/81-arch.rules b/abs/core-testing/udev/81-arch.rules
index 933cbc4..40e0a7c 100644
--- a/abs/core-testing/udev/81-arch.rules
+++ b/abs/core-testing/udev/81-arch.rules
@@ -1,8 +1,6 @@
 # Udev rules for Archlinux by Tobias Powalowski <tpowa@archlinux.org>
 # do not edit this file, it will be overwritten on update
 #
-# This ruleset should provide a DevFS-compatible device tree.
-#
 # There are a number of modifiers that are allowed to be used in some
 # of the different fields. They provide the following subsitutions:
 #
@@ -36,10 +34,8 @@ SUBSYSTEM=="sound", RUN+="/lib/udev/load-modules.sh snd-seq-oss"
 
 #PNP addon modules
 SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP0800", RUN+="/lib/udev/load-modules.sh pcspkr"
-SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="*PNP0510*", RUN+="/lib/udev/load-modules.sh irtty-sir"
-SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="*PNP0511*", RUN+="/lib/udev/load-modules.sh irtty-sir"
+SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="*PNP051[01]*", RUN+="/lib/udev/load-modules.sh irtty-sir"
 SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNPb02f", RUN+="/lib/udev/load-modules.sh analog"
-SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP0501", RUN+="/lib/udev/load-modules.sh ppp-generic"
 
 # PARPORT addon modules
 SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP040*", RUN+="/lib/udev/load-modules.sh lp"
@@ -56,16 +52,16 @@ LABEL="drivers_end"
 #####################################
 ###### CD/DVD symlinks - begin
 #####################################
-ACTION=="add", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", IMPORT="cdrom_id --export $tempnode"
-ACTION=="add", SUBSYSTEMS=="scsi",	KERNEL=="sr[0-9]*", IMPORT="cdrom_id --export $tempnode"
-ACTION=="add", SUBSYSTEMS=="scsi",	KERNEL=="scd[a-z]", IMPORT="cdrom_id --export $tempnode"
+ACTION=="add|change", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", IMPORT="cdrom_id --export $tempnode"
+ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", IMPORT="cdrom_id --export $tempnode"
+ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="scd[a-z]", IMPORT="cdrom_id --export $tempnode"
 ENV{ID_CDROM}=="?*", SYMLINK+="cd/cdrom-%b"
 ENV{ID_CDROM_CD_RW}=="?*", SYMLINK+="cd/cdrw-%b"
 ENV{ID_CDROM_DVD}=="?*", SYMLINK+="cd/dvd-%b"
-ENV{ID_CDROM_DVD_R}=="?*", SYMLINK+="cd/dvd-%b"
-ACTION=="add", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", RUN+="cdsymlinks.sh"
-ACTION=="add", SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", RUN+="cdsymlinks.sh"
-ACTION=="add", SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", RUN+="cdsymlinks.sh"
+ENV{ID_CDROM_DVD_R}=="?*", SYMLINK+="cd/dvdrw-%b"
+ACTION=="add|change", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", RUN+="cdsymlinks.sh"
+ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", RUN+="cdsymlinks.sh"
+ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", RUN+="cdsymlinks.sh"
 ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="hd[a-z]", RUN+="cdsymlinks.sh"
 ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sr[0-9]*", RUN+="cdsymlinks.sh"
 ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sg[0-9]*", RUN+="cdsymlinks.sh"
@@ -80,6 +76,9 @@ ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sg[0-9]*", RUN+="cdsymlinks.sh"
 # fix /dev/root symlink
 SUBSYSTEM=="block", RUN+="root-link.sh"
 
+# permission for sg devices
+KERNEL=="sg[0-9]*", ATTRS{type}!="3|6", GROUP="disk", MODE="0660"
+
 # permissions for IDE CD devices
 SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", GROUP="optical"
 
@@ -88,7 +87,7 @@ SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", SYMLINK+="scd%n", GROU
 SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", GROUP="optical"
 
 # permissions for removable devices like cardreaders or sticks
-KERNEL=="sd*", ATTRS{scsi_level}=="0", ATTRS{type}=="0", GROUP="storage"
+KERNEL=="sd*", ATTRS{scsi_level}=="3", ATTRS{type}=="0", GROUP="storage"
 
 # permissions for firewire external drives
 KERNEL=="sd*", ATTRS{scsi_level}=="5", GROUP="storage"
@@ -107,69 +106,38 @@ LABEL="pcmcia_end"
 # permissions for SCSI scanners
 SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="6", GROUP="scanner"
 
-# md block devices
-KERNEL=="md[0-9]*", NAME="md%n", SYMLINK+="md/%n"
+# mem
+KERNEL=="ram0", SYMLINK+="ramdisk"
+KERNEL=="ram1", SYMLINK+="ram"
+
+# video4linux
+
+KERNEL=="vbi0",		SYMLINK+="vbi"
+KERNEL=="radio0",	SYMLINK+="radio"
+KERNEL=="radio[0-9]*",	GROUP="video"
+KERNEL=="video0",	SYMLINK+="video"
+KERNEL=="vtx0",		SYMLINK+="vtx"
 
 # video devices
-SUBSYSTEM=="video4linux", GROUP="video"
 ### xorg resets those permissions, adjust your xorg.conf!
-KERNEL=="nvidia*",	GROUP="video"
 KERNEL=="3dfx*",	GROUP="video"
-
-# i2c devices
-KERNEL=="i2c-[0-9]*", NAME="i2c/%n", SYMLINK+="%k"
-
-# loop devices
-KERNEL=="loop[0-9]*", NAME="loop/%n", SYMLINK+="%k"
+KERNEL=="fb[0-9]*",	GROUP="video"
 
 # misc
-KERNEL=="nvram",   NAME="misc/%k", SYMLINK+="%k", GROUP="kmem", MODE="0640"
-KERNEL=="psaux",   NAME="misc/%k", SYMLINK+="%k"
-KERNEL=="uinput",  NAME="misc/%k", SYMLINK+="%k"
-KERNEL=="sgi_fetchop",   MODE="0666"
-KERNEL=="sonypi",        MODE="0666"
-KERNEL=="inotify",	NAME="misc/%k", SYMLINK+="%k", MODE="0666"
-
-# sound devices
-# alsa devices
-SUBSYSTEM=="sound",	GROUP="audio"
-# oss devices
-KERNEL=="audio*",     NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="dmmidi*",    NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="admmidi*",   NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="dsp*",       NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="adsp*",      NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="midi*",      NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="amidi*",     NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="mixer*",     NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="sequencer*", NAME="sound/%k", SYMLINK+="%k"
+KERNEL=="sgi_fetchop",	MODE="0666"
+KERNEL=="sonypi",	MODE="0666"
 
 # USB devices
-KERNEL=="hiddev*",	NAME="usb/%k"
-KERNEL=="legousbtower*",	NAME="usb/%k", MODE="0666"
-KERNEL=="dabusb*",	NAME="usb/%k"
-
-# netlink devices
-KERNEL=="route",		NAME="netlink/%k"
-KERNEL=="skip",		NAME="netlink/%k"
-KERNEL=="usersock",	NAME="netlink/%k"
-KERNEL=="fwmonitor",	NAME="netlink/%k"
-KERNEL=="tcpdiag",	NAME="netlink/%k"
-KERNEL=="nflog",		NAME="netlink/%k"
-KERNEL=="xfrm",		NAME="netlink/%k"
-KERNEL=="arpd",		NAME="netlink/%k"
-KERNEL=="route6",	NAME="netlink/%k"
-KERNEL=="ip6_fw",	NAME="netlink/%k"
-KERNEL=="dnrtmsg",	NAME="netlink/%k"
-### ! disabled seems to break device creation !
-# KERNEL=="tap*",		NAME="netlink/%k"
+KERNEL=="legousbtower*", MODE="0666"
 
 # IEEE1394 (firewire) devices
-KERNEL=="raw1394", NAME="%k", GROUP="video"
+KERNEL=="raw1394",	GROUP="video"
 
 # kbd devices
-KERNEL=="kbd",		MODE="0664"
+KERNEL=="kbd", MODE="0664"
 
+# miscellaneous
+KERNEL=="rtc|rtc0", GROUP="audio", MODE="0664"
 #######################################
 # Permissions and Symlinks - end
 #######################################
diff --git a/abs/core-testing/udev/PKGBUILD b/abs/core-testing/udev/PKGBUILD
index c22b10b..2f71d28 100644
--- a/abs/core-testing/udev/PKGBUILD
+++ b/abs/core-testing/udev/PKGBUILD
@@ -1,96 +1,127 @@
-# $Id: PKGBUILD 22190 2008-12-22 18:25:11Z tpowa $
+# $Id: PKGBUILD 85315 2010-07-12 05:13:37Z tpowa $
 # Maintainer: Aaron Griffin <aaron@archlinux.org>
 # Maintainer: Tobias Powalowski <tpowa@archlinux.org>
 # Maintainer: Thomas Bächler <thomas@archlinux.org>
-pkgname=udev
-pkgver=135
-pkgrel=7
-pkgdesc="The userspace dev tools (udev)"
+
+pkgbase="udev"
+pkgname=('udev' 'udev-compat')
+pkgver=160
+pkgrel=1
 arch=(i686 x86_64)
 url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
 license=('GPL')
 groups=('base')
-depends=('glibc' 'coreutils' 'util-linux')
-makedepends=('kernel26') #needed to build framebuffer blacklist
-install=udev.install
-backup=(etc/udev/udev.conf
-        etc/scsi_id.config
-        etc/udev/cdsymlinks.conf
-        etc/modprobe.d/framebuffer_blacklist)
-conflicts=('pcmcia-cs' 'hotplug')
-replaces=('devfsd')
 # older initscripts versions required start_udev
-conflicts=('initscripts<2008.02')
-options=(!makeflags)
+options=(!makeflags !libtool)
+makedepends=('glibc' 'coreutils' 'util-linux' 'libusb' 'glib2' 'kernel26' 'gperf' 'libxslt' 'gobject-introspection')
 source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/$pkgname-$pkgver.tar.bz2
-        81-arch.rules load-modules.sh resolve-modalias.c cdsymlinks.sh root-link.sh
-        arch-udev-rules.patch readme-udev-arch.txt usb-storage.rules udev-ntfs-3g.patch mount-usb)
-md5sums=('661b9df34e1304dad10f595d95b472bb'
-         '3a955ca8e2122a48a223f9d8adf87b70'
-         'f4951f61438d69894b728212dac7318b'
-         'fca04a608009069beb786e26338a783b'
-         '8424b78e9dd772e75b4ef90814807815'
+        81-arch.rules load-modules.sh cdsymlinks.sh root-link.sh
+        arch-udev-rules.patch
+        logitech-rules.patch)
+md5sums=('65459a1f090082c0471bf4e5112208d7'
+         '6393ee81993f8b9beb776ca904005864'
+         'f91fddc67609b45b244a624977c4247b'
+         '2e808ee78d237c478b57af2a68d43769'
          '2d6dc6842464f107bccc68cd505a6c31'
-         'ae216c26a6a5cae4a3ef9c0e1f7bfaa6'
-         '7fc6d33bb218e752302eef0a80ff0a89'
-	 '11eaec41b77746f50975d4ef834c8f83')
+         '70198227b7bbe3852e1cd2299693af66'
+         '817537bdcfc1a4fa79e853fd38df4528')
 
 build() {
   cd $srcdir/$pkgname-$pkgver
-  patch -p1 < ../udev-ntfs-3g.patch || return 1
-  ./configure --prefix="" --mandir=/usr/share/man --includedir=/usr/include
-  make || return 1
-  make DESTDIR=$startdir/pkg install
-
+  # fix logitech rules
+  patch -Np0 -i $srcdir/logitech-rules.patch 
+  ./configure --prefix="" --mandir=/usr/share/man\
+                          --includedir=/usr/include\
+                          --libexecdir=/lib/udev\
+                          --datarootdir=/usr/share
+  make
+}
+  
+package_udev() {
+  pkgdesc="The userspace dev tools (udev)"
+  depends=('glibc' 'coreutils' 'util-linux' 'libusb' 'glib2'
+           'module-init-tools>=3.11')
+  install=udev.install
+  backup=(etc/udev/udev.conf
+          etc/modprobe.d/framebuffer_blacklist.conf)
+  conflicts=('pcmcia-cs' 'hotplug' 'initscripts<2009.07')
+  replaces=('devfsd')
+  
+  cd $srcdir/$pkgname-$pkgver
+  make DESTDIR=${pkgdir} install
   # Fix pkgconfig path
   install -d -m755 $pkgdir/usr/lib
   mv $pkgdir/lib/pkgconfig $pkgdir/usr/lib
-
-  # Non-stock rules still go in /etc
-  install -D -m644 $srcdir/81-arch.rules $pkgdir/etc/udev/rules.d/81-arch.rules
-  install -D -m644 $srcdir/usb-storage.rules $pkgdir/etc/udev/rules.d/usb-storage.rules
-
-  # Scripts needed
-  mkdir $pkgdir/etc/udev/scripts
-  install -D -m744 $srcdir/mount-usb $pkgdir/etc/udev/scripts
-
+  # Fix ConsoleKit path
+  mv $pkgdir/lib/ConsoleKit $pkgdir/usr/lib
+  # Install our rule for permissions and symlinks
+  install -D -m644 $srcdir/81-arch.rules $pkgdir/lib/udev/rules.d/81-arch.rules
   # install our module loading subsystem
   install -D -m755 $srcdir/load-modules.sh $pkgdir/lib/udev/load-modules.sh
-  install -d -m755 $pkgdir/bin
-  gcc -Wall $CFLAGS -o $pkgdir/bin/resolve-modalias $srcdir/resolve-modalias.c
   # install cdsymlinks.sh
   install -D -m755 $srcdir/cdsymlinks.sh $pkgdir/lib/udev/cdsymlinks.sh
   # install root-link.sh
   install -D -m755 $srcdir/root-link.sh $pkgdir/lib/udev/root-link.sh
-
-  # install instructions
-  # NOTE: We should delete this file
-  install -D -m644 $srcdir/readme-udev-arch.txt $pkgdir/usr/share/udev/readme-udev-arch.txt
-
-  # add devices dir
-  mkdir $pkgdir/lib/udev/devices
   # disable error logging to prevent startup failures printed to vc on boot
   sed -i -e 's|udev_log="err"|udev_log="0"|g' $pkgdir/etc/udev/udev.conf
-  # install additional rules files
-  for rule in $srcdir/$pkgname-$pkgver/rules/packages/*.rules; do
-      install -D -m 644 $rule $pkgdir/lib/udev/rules.d/
-  done
   # fix standard udev rules to fit to arch
   cd $pkgdir/lib/udev/rules.d/
-  patch -Np1 -i $srcdir/arch-udev-rules.patch || return 1
-
-  # remove the md-raid rules which are now provided by the mdadm package
-  rm -f $pkgdir/lib/udev/rules.d/64-md-raid.rules
-
+  patch -Np1 -i $srcdir/arch-udev-rules.patch
+  # remove .orig files
+  rm -f $pkgdir/lib/udev/rules.d/*.orig
   # disable persistent cdromsymlinks and network by default 
   # and move it to /etc/udev/rules.d
   mv $pkgdir/lib/udev/rules.d/75-persistent-net-generator.rules \
      $pkgdir/etc/udev/rules.d/75-persistent-net-generator.rules.optional
   mv $pkgdir/lib/udev/rules.d/75-cd-aliases-generator.rules \
      $pkgdir/etc/udev/rules.d/75-cd-aliases-generator.rules.optional
+
   # create framebuffer blacklist
   mkdir -p $pkgdir/etc/modprobe.d/
   for mod in $(find /lib/modules/*/kernel/drivers/video -name '*fb.ko' -exec basename {} .ko \;); do 
-	echo "blacklist $mod" >> $pkgdir/etc/modprobe.d/framebuffer_blacklist
+	echo "blacklist $mod" >> $pkgdir/etc/modprobe.d/framebuffer_blacklist.conf
   done
+
+  # create static devices in /lib/udev/devices/
+  mkdir ${pkgdir}/lib/udev/devices/pts
+  mkdir ${pkgdir}/lib/udev/devices/shm
+
+  mknod -m 0600 ${pkgdir}/lib/udev/devices/console c 5 1
+  mknod -m 0666 ${pkgdir}/lib/udev/devices/null c 1 3
+  mknod -m 0660 ${pkgdir}/lib/udev/devices/zero c 1 5
+  mknod -m 0666 ${pkgdir}/lib/udev/devices/kmsg c 1 11
+
+  ln -snf /proc/self/fd ${pkgdir}/lib/udev/devices/fd
+  ln -snf /proc/self/fd/0 ${pkgdir}/lib/udev/devices/stdin
+  ln -snf /proc/self/fd/1 ${pkgdir}/lib/udev/devices/stdout
+  ln -snf /proc/self/fd/2 ${pkgdir}/lib/udev/devices/stderr
+  ln -snf /proc/kcore ${pkgdir}/lib/udev/devices/core
+
+  # these static devices are created for convenience, to autoload the modules if necessary
+  # /dev/loop0
+  mknod -m 0660 ${pkgdir}/lib/udev/devices/loop0 b 7 0
+  chgrp disk ${pkgdir}/lib/udev/devices/loop0
+  # /dev/net/tun
+  mkdir ${pkgdir}/lib/udev/devices/net
+  mknod -m 0666 ${pkgdir}/lib/udev/devices/net/tun c 10 200
+  # /dev/fuse
+  mknod -m 0666 ${pkgdir}/lib/udev/devices/fuse c 10 229 
+  # /dev/ppp
+  mknod -m 0600 ${pkgdir}/lib/udev/devices/ppp c 108 0
+
+  # Replace dialout group in rules with uucp group
+  for i in $pkgdir/lib/udev/rules.d/*.rules; do
+    sed -i -e 's#GROUP="dialout"#GROUP="uucp"#g' $i
+  done
+
+  mv "${pkgdir}/lib/girepository-1.0" "${pkgdir}/usr/lib/"
+}
+
+package_udev-compat() {
+  pkgdesc="The userspace dev tools (udev) - additional rules for older kernels"
+  depends=('udev')
+  groups=('')
+  cd $srcdir/$pkgname-$pkgver
+  install -d -m755 ${pkgdir}/lib/${pkgname}/rules.d
+  install -D -m644 ${srcdir}/${pkgname}-${pkgver}/rules/misc/30-kernel-compat.rules ${pkgdir}/lib/udev/rules.d/30-kernel-compat.rules
 }
diff --git a/abs/core-testing/udev/__changelog b/abs/core-testing/udev/__changelog
deleted file mode 100644
index 7e00323..0000000
--- a/abs/core-testing/udev/__changelog
+++ /dev/null
@@ -1 +0,0 @@
-Added usb-storage.rule and script to un/mount USB drives.
diff --git a/abs/core-testing/udev/arch-udev-rules.patch b/abs/core-testing/udev/arch-udev-rules.patch
index b672731..ce00c85 100644
--- a/abs/core-testing/udev/arch-udev-rules.patch
+++ b/abs/core-testing/udev/arch-udev-rules.patch
@@ -1,136 +1,50 @@
-diff -Nur rules.d/60-persistent-storage.rules rules.d.arch/60-persistent-storage.rules
---- rules.d/60-persistent-storage.rules	2008-09-12 15:59:57.000000000 +0200
-+++ rules.d.arch/60-persistent-storage.rules	2008-09-12 16:00:50.000000000 +0200
-@@ -10,7 +10,7 @@
- SUBSYSTEM!="block", GOTO="persistent_storage_end"
- 
- # skip rules for inappropriate block devices
--KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-*|md*|btibm*", GOTO="persistent_storage_end"
-+KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|md*|btibm*", GOTO="persistent_storage_end"
- 
- # never access non-cdrom removable ide devices, the drivers are causing event loops on open()
- KERNEL=="hd*[!0-9]", ATTR{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end"
+diff -Nur rules.d/50-udev-default.rules rules.d.arch/50-udev-default.rules
+--- rules.d/50-udev-default.rules	2009-03-07 22:22:48.200242883 +0100
++++ rules.d.arch/50-udev-default.rules	2009-03-07 22:23:26.134434516 +0100
+@@ -59,15 +59,15 @@
+ KERNEL=="fd[0-9]", ACTION=="add", ATTRS{cmos}=="?*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0640 -G floppy $root/%k"
+ 
+ # cdrom
+-SUBSYSTEM=="block", KERNEL=="sr[0-9]*", SYMLINK+="scd%n", GROUP="cdrom"
+-SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="cdrom"
+-KERNEL=="pktcdvd[0-9]*", GROUP="cdrom"
+-KERNEL=="pktcdvd", GROUP="cdrom"
++SUBSYSTEM=="block", KERNEL=="sr[0-9]*", SYMLINK+="scd%n", GROUP="optical", MODE="0660"
++SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="optical", MODE="0660"
++KERNEL=="pktcdvd[0-9]*", GROUP="optical", MODE="0660"
++KERNEL=="pktcdvd", GROUP="optical", MODE="0660"
+ 
+ # tape
+-KERNEL=="ht[0-9]*|nht[0-9]*", GROUP="tape"
+-KERNEL=="pt[0-9]*|npt[0-9]*|pht[0-9]*", GROUP="tape"
+-SUBSYSTEM=="scsi_generic|scsi_tape", SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="tape"
++KERNEL=="ht[0-9]*|nht[0-9]*", GROUP="storage", MODE="0660"
++KERNEL=="pt[0-9]*|npt[0-9]*|pht[0-9]*", GROUP="storage", MODE="0660"
++SUBSYSTEM=="scsi_generic|scsi_tape", SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="storage", MODE="0660"
+ 
+ # block-related
+ KERNEL=="sch[0-9]*", GROUP="disk"
 diff -Nur rules.d/80-drivers.rules rules.d.arch/80-drivers.rules
---- rules.d/80-drivers.rules	2008-09-12 15:59:57.000000000 +0200
-+++ rules.d.arch/80-drivers.rules	2008-09-12 16:01:56.000000000 +0200
-@@ -2,14 +2,16 @@
- 
- ACTION!="add", GOTO="drivers_end"
- 
--DRIVER!="?*", ENV{MODALIAS}=="?*", RUN{ignore_error}+="/sbin/modprobe $env{MODALIAS}"
--SUBSYSTEM=="tifm", RUN+="/sbin/modprobe --all tifm_sd tifm_ms"
--SUBSYSTEM=="memstick", RUN+="/sbin/modprobe --all ms_block mspro_block"
--SUBSYSTEM=="mmc", RUN+="/sbin/modprobe mmc_block"
--SUBSYSTEM=="i2o", RUN+="/sbin/modprobe i2o_block"
--SUBSYSTEM=="ide", ATTR{media}=="tape", RUN+="/sbin/modprobe ide-scsi"
--SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/sbin/modprobe sg"
--SUBSYSTEM=="module", KERNEL=="parport_pc", RUN+="/sbin/modprobe ppdev"
-+DRIVER!="?*", ENV{MODALIAS}=="?*", RUN{ignore_error}+="/lib/udev/load-modules.sh $env{MODALIAS}"
-+SUBSYSTEM=="tifm", RUN+="/lib/udev/load-modules.sh tifm_sd"
-+SUBSYSTEM=="tifm", RUN+="/lib/udev/load-modules.sh tifm_ms"
+--- rules.d/80-drivers.rules	2010-06-03 11:55:08.978720002 +0200
++++ rules.d.arch/80-drivers.rules	2010-06-03 11:58:41.207865142 +0200
+@@ -2,12 +2,13 @@
+ 
+ ACTION=="remove", GOTO="drivers_end"
+ 
+-DRIVER!="?*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe -bv $env{MODALIAS}"
+-SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN+="/sbin/modprobe -bv tifm_sd"
+-SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN+="/sbin/modprobe -bv tifm_ms"
+-SUBSYSTEM=="memstick", RUN+="/sbin/modprobe -bv --all ms_block mspro_block"
+-SUBSYSTEM=="i2o", RUN+="/sbin/modprobe -bv i2o_block"
+-SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/sbin/modprobe -bv sg"
+-SUBSYSTEM=="module", KERNEL=="parport_pc", RUN+="/sbin/modprobe -bv ppdev"
++DRIVER!="?*", ENV{MODALIAS}=="?*", RUN+="/lib/udev/load-modules.sh  $env{MODALIAS}"
++SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN+="/lib/udev/load-modules.sh  tifm_sd"
++SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN+="/lib/udev/load-modules.sh  tifm_ms"
 +SUBSYSTEM=="memstick", RUN+="/lib/udev/load-modules.sh ms_block"
 +SUBSYSTEM=="memstick", RUN+="/lib/udev/load-modules.sh mspro_block"
-+SUBSYSTEM=="mmc", RUN+="/lib/udev/load-modules.sh mmc_block"
-+SUBSYSTEM=="i2o", RUN+="/lib/udev/load-modules.sh i2o_block"
-+SUBSYSTEM=="ide", ATTR{media}=="tape", RUN+="/lib/udev/load-modules.sh ide-scsi"
++SUBSYSTEM=="i2o", RUN+="/lib/udev/load-modules.sh  i2o_block"
 +SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/lib/udev/load-modules.sh sg"
 +SUBSYSTEM=="module", KERNEL=="parport_pc", RUN+="/lib/udev/load-modules.sh ppdev"
  
  LABEL="drivers_end"
- 
-diff -Nur rules.d/50-udev-default.rules rules.d.arch/50-udev-default.rules
---- rules.d/50-udev-default.rules	2008-09-12 15:59:57.000000000 +0200
-+++ rules.d.arch/50-udev-default.rules	2008-09-12 16:00:50.000000000 +0200
-@@ -4,12 +4,17 @@
- KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]", GROUP="tty", MODE="0660", OPTIONS+="last_rule"
- KERNEL=="ptmx",			GROUP="tty", MODE="0666", OPTIONS+="last_rule"
- KERNEL=="tty",			GROUP="tty", MODE="0666", OPTIONS+="last_rule"
--KERNEL=="tty[0-9]*",		GROUP="tty", MODE="0620", OPTIONS+="last_rule"
--KERNEL=="vcs|vcs[0-9]*|vcsa|vcsa[0-9]*", GROUP="tty", OPTIONS+="last_rule"
-+KERNEL=="tty[0-9]*",		GROUP="tty", MODE="0620", NAME="vc/%n", SYMLINK+="%k" OPTIONS+="last_rule"
-+KERNEL=="vcs",        GROUP="tty", NAME="vcc/0", OPTIONS+="last_rule"
-+KERNEL=="vcs[0-9]*",  GROUP="tty", NAME="vcc/%n", OPTIONS+="last_rule"
-+KERNEL=="vcsa",       GROUP="tty", NAME="vcc/a0", OPTIONS+="last_rule"
-+KERNEL=="vcsa[0-9]*", GROUP="tty", NAME="vcc/a%n", OPTIONS+="last_rule"
- KERNEL=="console",		MODE="0600", OPTIONS+="last_rule"
- 
- # serial
- KERNEL=="tty[A-Z]*|pppox*|ircomm*|noz*", GROUP="uucp"
-+KERNEL=="ttyS[0-9]*",   NAME="tts/%n", SYMLINK+="ttyS%n"
-+KERNEL=="ttyUSB[0-9]*", NAME="tts/USB%n", SYMLINK+="%k"
- KERNEL=="ppp",			MODE="0600", OPTIONS+="ignore_remove"
- KERNEL=="mwave",		NAME="modems/mwave", GROUP="uucp"
- KERNEL=="hvc*|hvsi*",		GROUP="uucp"
-@@ -21,6 +26,7 @@
- KERNEL=="mem|kmem|port|nvram",	GROUP="kmem", MODE="0640"
- KERNEL=="ram0",			SYMLINK+="ramdisk"
- KERNEL=="ram1",			SYMLINK+="ram"
-+KERNEL=="ram[0-9]*", NAME="rd/%n", SYMLINK+="%k"
- 
- # input
- KERNEL=="mouse*|mice|event*",	NAME="input/%k", MODE="0640"
-@@ -36,13 +36,18 @@
- KERNEL=="vtx*|vbi*",		GROUP="video"
- KERNEL=="winradio*",		GROUP="video"
- KERNEL=="vbi0",			SYMLINK+="vbi"
--KERNEL=="radio0",		SYMLINK+="radio"
-+KERNEL=="vbi[0-9]*",   NAME="v4l/vbi%n", SYMLINK+="%k"
-+KERNEL=="radio0",		SYMLINK+="video"
-+KERNEL=="radio[0-9]*", NAME="v4l/radio%n", SYMLINK+="radio%n", GROUP="video"
- KERNEL=="video0",		SYMLINK+="video"
-+KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="%k"
-+KERNEL=="vtx0", SYMLINK+="vtx"
-+KERNEL=="vtx[0-9]*",   NAME="v4l/vtx%n", SYMLINK+="%k"
- 
- # graphics
--KERNEL=="agpgart",		MODE="0600", GROUP="video"
--KERNEL=="card[0-9]*",		NAME="dri/%k", MODE="0666"
--KERNEL=="fb0",			SYMLINK+="fb"
-+KERNEL=="agpgart", NAME="misc/%k", SYMLINK+="%k", GROUP="video", MODE="0600"
-+KERNEL=="card[0-9]*",		NAME="dri/%k", GROUP="video", MODE="0666"
-+KERNEL=="fb[0-9]*", NAME="fb/%n", SYMLINK+="%k", GROUP="video"
- KERNEL=="pmu",			GROUP="video"
- KERNEL=="nvidia*|nvidiactl*",	GROUP="video"
- SUBSYSTEM=="graphics",		GROUP="video"
-@@ -62,19 +73,19 @@
- # block, tapes, block-releated
- SUBSYSTEM=="block", GROUP="disk"
- SUBSYSTEM=="block", KERNEL=="sr[0-9]*", SYMLINK+="scd%n"
--KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", OPTIONS+="all_partitions"
-+KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", OPTIONS+="all_partitions", GROUP="floppy"
- KERNEL=="fd[0-9]",		GROUP="floppy"
--KERNEL=="fd[0-9]", ACTION=="add", ATTRS{cmos}=="?*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0640 -G floppy $root/%k"
-+KERNEL=="fd[0-9]", ACTION=="add", ATTRS{cmos}=="?*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0660 -G floppy $root/%k"
- KERNEL=="sch[0-9]*",		GROUP="disk"
--KERNEL=="sg[0-9]*",		ATTRS{type}!="3|6", GROUP="disk", MODE="0640"
-+KERNEL=="sg[0-9]*",		ATTRS{type}!="3|6", GROUP="disk", MODE="0660"
- KERNEL=="ht[0-9]*|nht[0-9]*",	GROUP="disk"
- KERNEL=="pg[0-9]*",		GROUP="disk"
- KERNEL=="pt[0-9]*|npt[0-9]*",	GROUP="disk"
- KERNEL=="qft[0-9]*|nqft[0-9]*|zqft[0-9]*|nzqft[0-9]*|rawqft[0-9]*|nrawqft[0-9]*", GROUP="disk"
- KERNEL=="rawctl",		NAME="raw/%k", GROUP="disk"
- SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", NAME="raw/%k", GROUP="disk"
--KERNEL=="pktcdvd[0-9]*",	NAME="pktcdvd/%k"
--KERNEL=="pktcdvd",		NAME="pktcdvd/control"
-+KERNEL=="pktcdvd[0-9]*",	NAME="pktcdvd/%k", GROUP="optical", MODE="0660"
-+KERNEL=="pktcdvd",		NAME="pktcdvd/control", GROUP="optical", MODE="0660"
- KERNEL=="qft0",			SYMLINK+="ftape"
- SUBSYSTEM=="bsg",		NAME="bsg/%k"
- SUBSYSTEM=="aoe",		NAME="etherd/%k", GROUP="disk"
-@@ -83,13 +94,13 @@
- KERNEL=="tun",			NAME="net/%k", MODE="0666", OPTIONS+="ignore_remove"
- 
- # CPU
--KERNEL=="cpu[0-9]*",		NAME="cpu/%n/cpuid"
--KERNEL=="msr[0-9]*",		NAME="cpu/%n/msr"
-+KERNEL=="cpu[0-9]*",		NAME="cpu/%n/cpuid", SYMLINK="%k"
-+KERNEL=="msr[0-9]*",		NAME="cpu/%n/msr", SYMLINK="%k"
- KERNEL=="microcode",		NAME="cpu/microcode", MODE="0600"
- 
- # miscellaneous
- KERNEL=="fuse",			MODE="0666"
--KERNEL=="rtc|rtc0",		MODE="0644"
-+KERNEL=="rtc|rtc0",     NAME="misc/%k", SYMLINK+="%k", GROUP="audio", MODE="0664"
- KERNEL=="rtc0",			SYMLINK+="rtc"
- KERNEL=="auer[0-9]*",		NAME="usb/%k"
- KERNEL=="hw_random",		NAME="hwrng", SYMLINK+="%k"
diff --git a/abs/core-testing/udev/cdsymlinks.sh b/abs/core-testing/udev/cdsymlinks.sh
index c4185ac..498abda 100755
--- a/abs/core-testing/udev/cdsymlinks.sh
+++ b/abs/core-testing/udev/cdsymlinks.sh
@@ -1,11 +1,15 @@
 #! /bin/sh
 # Creates cdsymlinks in /dev
 # for Archlinux by Tobias Powalowski <tpowa@archlinux.org>
-if [ -d /dev/cd ]; then
+
+# check on cd/dvd drives and if persistant rules file is used
+if [ -d /dev/cd -a ! -e /etc/udev/rules.d/75-persistent-cd.rules ]; then
+	# remove existing device files
 	rm /dev/cdrom*
 	rm /dev/cdrw*
 	rm /dev/dvd*
 	rm /dev/dvdrw*
+	# start creating symlinks
 	for i in /dev/cd/cdrom-*; do
 		if [ -h $i ]; then
 		[ "$CD_NUMBER" = "" ] && ln -s $i /dev/cdrom
@@ -37,9 +41,4 @@ if [ -d /dev/cd ]; then
 		! [ "$DVDRW_NUMBER" = "" ] && DVDRW_NUMBER="$((DVDRW_NUMBER+1))" && ln -s $i /dev/dvdrw$DVDRW_NUMBER
 		fi
 	done
-else
-	rm /dev/cdrom*
-	rm /dev/cdrw*
-	rm /dev/dvd*
-	rm /dev/dvdrw*
 fi
diff --git a/abs/core-testing/udev/load-modules.sh b/abs/core-testing/udev/load-modules.sh
index a42d376..1e2af91 100755
--- a/abs/core-testing/udev/load-modules.sh
+++ b/abs/core-testing/udev/load-modules.sh
@@ -9,7 +9,7 @@
 BLACKLIST="${MOD_BLACKLIST[@]}"
 MODPROBE="/sbin/modprobe"
 LOGGER="/usr/bin/logger"
-RESOLVEALIAS="/bin/resolve-modalias"
+RESOLVEALIAS="${MODPROBE} --resolve-alias"
 USEBLACKLIST="--use-blacklist"
 
 if [ -f /proc/cmdline ]; then 
@@ -42,11 +42,11 @@ if [ "$MOD_AUTOLOAD" = "yes" -o "$MOD_AUTOLOAD" = "YES" ]; then
     #sanitize the blacklist
     BLACKLIST="$(echo "$BLACKLIST" | sed -e 's|-|_|g')"
     # Try to find all modules for the alias
-    mods=$($RESOLVEALIAS /lib/modules/$(uname -r)/modules.alias $1)
+    mods=$($RESOLVEALIAS $1)
     # If no modules could be found, try if the alias name is a module name
     # In that case, omit the --use-blacklist parameter to imitate normal modprobe behaviour
     [ -z "${mods}" ] && $MODPROBE -qni $1 && mods="$1" && USEBLACKLIST=""
-    [ -z "${mods}" ] && $LOGGER -p info -t "$(basename $0)" "'$1' is not a valid module or alias name"
+    [ -z "${mods}" ] && $LOGGER -p local0.debug -t "$(basename $0)" "'$1' is not a valid module or alias name"
     for mod in ${mods}; do
       # Find the module and all its dependencies
       deps="$($MODPROBE -i --show-depends ${mod})"
@@ -61,9 +61,9 @@ if [ "$MOD_AUTOLOAD" = "yes" -o "$MOD_AUTOLOAD" = "YES" ]; then
       for dep in $deps; do
         if echo "${BLACKLIST}" | /bin/grep -q -e " ${dep} " -e "^${dep} " -e " ${dep}\$"; then
           if [ "${dep}" = "${mod}" ]; then
-            $LOGGER -p info -t "$(basename $0)" "Not loading module '${mod}' for alias '$1' because it is blacklisted"
+            $LOGGER -p local0.info -t "$(basename $0)" "Not loading module '${mod}' for alias '$1' because it is blacklisted"
           else
-            $LOGGER -p info -t "$(basename $0)" "Not loading module '${mod}' for alias '$1' because its dependency '${dep}' is blacklisted"
+            $LOGGER -p local0.info -t "$(basename $0)" "Not loading module '${mod}' for alias '$1' because its dependency '${dep}' is blacklisted"
           fi
           continue 2
         fi
@@ -74,7 +74,7 @@ if [ "$MOD_AUTOLOAD" = "yes" -o "$MOD_AUTOLOAD" = "YES" ]; then
       $MODPROBE $USEBLACKLIST ${mod}
     done
   else
-    $MODPROBE $1
+    $MODPROBE $USEBLACKLIST $1
   fi
 fi
 # vim: set et ts=4:
diff --git a/abs/core-testing/udev/logitech-rules.patch b/abs/core-testing/udev/logitech-rules.patch
new file mode 100644
index 0000000..fd0aea4
--- /dev/null
+++ b/abs/core-testing/udev/logitech-rules.patch
@@ -0,0 +1,14 @@
+--- -	2010-07-04 14:50:15.979139552 +0200
++++ extras/hid2hci/70-hid2hci.rules	2010-07-03 21:03:40.685341704 +0200
+@@ -11,9 +11,9 @@
+   RUN+="hid2hci --method=dell --devpath=%p", ENV{HID2HCI_SWITCH}="1"
+ 
+ # Logitech devices (hidraw)
+-KERNEL=="hiddev*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[345bce]|c71[34bc]", \
++KERNEL=="hiddev*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[345e]|c71[34]", \
+   RUN+="hid2hci --method=logitech-hid --devpath=%p"
+-KERNEL=="hidraw*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70a", \
++KERNEL=="hidraw*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[abc]|c71[bc]", \
+   RUN+="hid2hci --method=logitech-hid --devpath=%p"
+ 
+ ENV{DEVTYPE}!="usb_device", GOTO="hid2hci_end"
diff --git a/abs/core-testing/udev/mount-usb b/abs/core-testing/udev/mount-usb
deleted file mode 100644
index 2d3b3f5..0000000
--- a/abs/core-testing/udev/mount-usb
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/sh
-
-
-DIR=/media
-DEVICE=$2
-LABEL=`/lib/udev/vol_id -L /dev/$DEVICE`
-FS=`/lib/udev/vol_id -t /dev/$DEVICE`
-
-
-mount_device () {
-    if [ "$LABEL" == "" ];
-      then
-      mkdir -p $DIR/usb-$DEVICE
-      case $FS in 
-        vfat)    /bin/mount -t vfat -o rw,noauto,flush,quiet,nodev,nosuid,noexec,noatime,dmask=000,fmask=111 /dev/$DEVICE $DIR/usb-$DEVICE
-        ;; 
-        *)    /bin/mount -t auto -o rw,noauto,sync,dirsync,noexec,nodev,noatime /dev/$DEVICE $DIR/usb-$DEVICE
-        ;;
-      esac
-    else
-	mkdir -p $DIR/$LABEL
-      echo $LABEL >$DIR/.$DEVICE
-      case $FS in 
-        vfat)    /bin/mount -t vfat -o rw,noauto,flush,quiet,nodev,nosuid,noexec,noatime,dmask=000,fmask=111 /dev/$DEVICE $DIR/$LABEL
-        ;; 
-        *)    /bin/mount -t auto -o rw,noauto,sync,dirsync,noexec,nodev,noatime /dev/$DEVICE $DIR/$LABEL
-        ;;
-      esac
-    fi
-}
-
-umount_device () {
-    if [ -e $DIR/usb-$DEVICE ];
-      then
-      umount -l $DIR/usb-$DEVICE
-      rmdir $DIR/usb-$DEVICE;
-    else
-      ULABEL=`cat $DIR/.$DEVICE`
-      umount -l $DIR/$ULABEL
-      rmdir $DIR/$ULABEL
-      rm $DIR/.$DEVICE;
-	fi
-}
-
-case $1 in 
-  mount) mount_device
-  ;;
-  umount) umount_device
-  ;;
-  *) echo "Usage: mount-usb mount/umount sdxY"
-esac
diff --git a/abs/core-testing/udev/readme-udev-arch.txt b/abs/core-testing/udev/readme-udev-arch.txt
deleted file mode 100644
index e903a6b..0000000
--- a/abs/core-testing/udev/readme-udev-arch.txt
+++ /dev/null
@@ -1,266 +0,0 @@
-==========================
-Cold/Hotplugging with Udev
-==========================
-Version 1.1.6
-written by Tobias Powalowski <tpowa@archlinux.org>
-
----------------
-* Requirements:
----------------
-- recommended kernel >=2.6.18 for this udev to work properly.
-- No more DevFS device paths!  If you have them, update /etc/fstab:
-  /dev/discs/... etc. has been deprecated in favor of the old style:
-    /dev/discs/disc0/part1 -> /dev/hda1
-    /dev/discs/disc1/part2 -> /dev/hdb2
-- /etc/modprobe.conf should be cleaned from old install entries (see below).
-
----------------
-* Udev Changes:
----------------
-- The syntax of udev rules has been changed in >=098 release, please update your rules.
-  --- Snip Changelog Udev 098
-  Renaming of some key names:
-  BUS -> SUBSYSTEMS 
-  ID -> KERNELS
-  SYSFS -> ATTRS 
-  DRIVER -> DRIVERS
-  ATTR{file}="value" can be used now, to write to a sysfs file of the
-  event device. Instead of:
-    ..., SYSFS{type}=="0|7|14", RUN+="/bin/sh -c 'echo 60 > /sys$$DEVPATH/timeout'"
-  we now can do:
-    ..., ATTR{type}=="0|7|14", ATTR{timeout}="60"
-  All the PHYSDEV* keys are deprecated and will be removed from a
-  future kernel:
-    PHYDEVPATH -    is the path of a parent device and should not be
-                    needed at all.
-    PHYSDEVBUS -    is just a SUBSYSTEM value of a parent, and can be
-                    matched with SUBSYSTEMS==
-    PHYSDEVDRIVER - for bus devices it is available as ENV{DRIVER}.
-                    Newer kernels will have DRIVER in the environment,
-                    for older kernels udev puts in. Class device will
-                    no longer carry this property of a parent and
-                    DRIVERS== can be used to match such a parent value.
-  Note that ENV{DRIVER} is only available for a few bus devices, where
-  the driver is already bound at device event time. On coldplug, the
-  events for a lot devices are already bound to a driver, and they will have
-  that value set. But on hotplug, at the time the kernel creates the device,
-  it can't know what driver may claim the device after that, therefore
-  in most cases it will be empty.
-  --- snap Changelog Udev 098
-- optional udev >= 099 Persistent rules generator for network and cd/dvd devices was added.
-- default udev rules are installed to /lib/udev/rules.d/, they can be overriden by placing
-  own rules files to /etc/udev/rules.d/ .
-
----------------
-* How it works:
----------------
-- Udev replaces the functionality of hotplug and hwdetect scripts.
-- Udev does autoloading of modules and coldplugging.
-- Udev loads the modules simultaneously, which is much faster, 
-  but can cause some troubles with multiple network/sound/etc devices
-  (see below).
-- To reload your rules please use '/sbin/udevadm trigger'.
-
-======================
-* Autoloading modules:
-======================
-
--------------------------------------------------------------------------
-* Module autoloading is controlled by MOD_AUTOLOAD="" in /etc/rc.conf
--------------------------------------------------------------------------
-MOD_AUTOLOAD="yes" in /etc/rc.conf is necessary: 
-- if you want module autodetection
-- if you want modules be loaded by udev (hotplugging and coldplugging)
-
-MOD_AUTOLOAD="no" is necessary:
-- if you want to load modules strictly using 'modprobe <module>'
-- if you want to load only the modules listed in the MODULES=() array
-  in /etc/rc.conf
-
----------------
-* Blacklisting:
----------------
-- means udev will never try to load the module, even if MOD_AUTOLOAD="yes"
-  is set.
-
-You can do this in 2 ways:
-- MOD_BLACKLIST=(moduleA moduleB)
-- MODULES=(!moduleA !moduleB)
-
-Both entries mean the same thing to udev.  MOD_BLACKLIST was used by hwdetect.
-hwdetect does not understand the MODULES= syntax, but it doesn't have to -- it
-is only used in mkinitrd now.
-
-==================================
-* Boot parameter: load_modules=off
-==================================
-
-- No modules are loaded during boot using udev autoloading or the MODULES array
-- Useful for repairing your system if something goes wrong during udev startup
-  and/or during loading modules
-
-==================================
-* Boot parameter: disablemodules=
-==================================
-
-- list modules there that shouldn't be loaded by udev
-- Syntax: disablemodules=module1,module2,module3,...
-- Useful for repairing your system if something goes wrong during udev startup
-  and/or during loading modules and you know the module that causes the trouble.
-
-========================================
-* Persistent CD/DVD symlinks (optional):
-========================================
-
-- To enable this feature copy in /etc/udev/rules.d
-  75-cd-aliases-generator.rules.optinal
-  to 75-cd-aliases-generator.rules
-  Also disable this part in /lib/udev/rules.d/81-arch.rules by putting a # in front:
-  --- snip
-  ACTION=="add", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", RUN+="/lib/udev/cdsymlinks.sh"
-  ACTION=="add", SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", RUN+="/lib/udev/cdsymlinks.sh"
-  ACTION=="add", SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", RUN+="/lib/udev/cdsymlinks.sh"
-  ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="hd[a-z]", RUN+="/lib/udev/cdsymlinks.sh"
-  ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sr[0-9]*", RUN+="/lib/udev/cdsymlinks.sh"
-  ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sg[0-9]*", RUN+="/lib/udev/cdsymlinks.sh"
---- snap
-
-- To get the same device name for CD/DVD symlinks each time you boot,
-  a rule will be generated during bootup or by executing '/sbin/udevadm trigger'.
-- Examples: dvd, cdrom ,cdrw etc.
-- If you want to change those links,
-  modify '/etc/udev/rules.d/70-peristent-cd.rules' to your needs.
-
-Known issues:
-The symlink name is then bound to the hardware pci adress, 
-if you change your CD/DVD device, you have to check the
-/etc/udev/rules.d/70-peristent-net.rules file for correctness.
-
-======================================
-* Persistent Network names (optional):
-======================================
-
-- To enable this feature copy in /etc/udev/rules.d
-  75-persistent-net-generator.rules.optional
-  to 75-persistent-net-generator.rules
-- To get the same network device name each time you boot,
-  a rule will be generated during bootup or by executing '/sbin/udevadm trigger'.
-- Examples: eth0, eth1, wlan0 etc.
-- If you want to change those names, 
-  modify '/etc/udev/rules.d/70-peristent-net.rules' to your needs.
-- NAME= determines the name of your network card. Use these names in your
-  network configuration in rc.conf as well.
-
-Known issues:
-The interface name is then bound to the hardware mac adress, 
-if you change your network card, you have to check the
-/etc/udev/rules.d/70-peristent-net.rules file for correctness.
-
-====================================
-* Known Problems Hardware:
-====================================
-
-- BusLogic devices are broken and will cause a freeze during startup
-Solution:
-This is a kernel bug and no fix has been provided yet.
-
-- PCMCIA Card readers are not treated as removabel devices.
-Solution:
-To get access to them with hal's pmount backend add them to /etc/pmount.allow
-
-====================================
-* Known Problems MOD_AUTOLOAD="yes":
-====================================
-
------------------------------------------------------------------------------
-* Sound is not working or modules (eg. parport) are not loaded automatically:
------------------------------------------------------------------------------
-Solution:
-- Do you have a clean /etc/modprobe.conf?
-  - A clean /etc/modprobe.conf is empty.  The stock modprobe.conf file
-    contains nothing
-- alsaconf can write output to modprobe.conf. Please keep that in mind.
-
----------------------------------------------
-* Devices get mixed up eg. Network/Soundcards
----------------------------------------------
-- Because udev loads all the modules at once, sometimes devices are initialized
-  in different orders (eg. network cards switch eth0 and eth1, sound cards
-  the same)
-
-Solution:
-- Load them in MODULES=() array in the order you need them
-- eg: MODULES=(moduleA moduleB)
-
-Second solution for network:
-- The "proper" way to configure net interfaces to hold static names within
-  udev rules.  Add lines like these to a custom rules file such as
-  /etc/udev/rules.d/01-network.rules:
-    SUBSYSTEM=="net", SYSFS{address}=="aa:bb:cc:dd:ee:ff", NAME="lan0"
-    SUBSYSTEM=="net", SYSFS{address}=="ff:ee:dd:cc:bb:aa", NAME="wlan0"
-
-- To get the right mac address use this command:
-    udevinfo -a -p /sys/class/net/<yourdevice>
-- Make sure you use lower-case hex values in your udev rules.
-- NAME= determines the name of your network card.  Use these names in your
-  network configuration in rc.conf as well.
-
-Third solution for network:
-- check Persistent Network part
-
------------------------------------
-* Network 8139too & 8139cp problem:
------------------------------------
-- Both modules have the same kernel entry, which can cause problems.
-Solution:
-- Enter the one you need in MODULES=() and blacklist the other one
-- eg: MODULES=(!8139cp 8139too)
-- The example tells udev to ignore 8139cp module and load 8139too afterwards.
-
---------------------------------------------------------
-* You need a special loading order to get devices going:
---------------------------------------------------------
-- Kernel loads modules in wrong order.
-Solution:
-- Load them in the correct order in MODULES=()
-
------------------------------
-* Module is not autodetected:
------------------------------
-- If your device does not provide a modalias in /sys it cannot be autodetected.
-- If modalias is not combined to a kernel module it cannot be autodetected.
-Known modules that are not autodetected:
-- SCSI CONTROLLER:
-  scsi_transport_sas ultrastor qlogicfas eata BusLogic pas16 wd7000 sym53c416
-  g_NCR5380_mmio fdomain u14-34f dtc initio in2000 imm t128 aha1542 aha152x
-  atp870u g_NCR5380 NCR53c406a qlogicfas408 megaraid_mm advansys
-- NETWORK CARDS:
-  hp ne de4x5 wd cs89x0 eepro smc9194 seeq8005 ni52 ni65 ac3200 smc-ultra 
-  at1700 hp-plus depca eexpress 82596 de600 eth16i de620 lance ewrk3 e2100
-  lp486e 3c501 3c503 3c505 3c507 3c509 3c515 myri10ge
-Solution:
-- Enter the one you need in MODULES=()
-
-=======================================
-* Known Problems with MOD_AUTOLOAD="no"
-=======================================
-
------------------------------------------------------------------
-* Modules are not loaded anymore during coldplug or hotplug event
------------------------------------------------------------------
-- Udev is usually responsible for this, but the MOD_AUTOLOAD switch will
-  now disable it.  If you want automatic hot/cold-plugging, turn on
-  MOD_AUTOLOAD.  Otherwise you will have to load all your modules manually,
-  either with /sbin/modprobe or entries in the MODULES=() array.
-Solution: 
-- For bootup (coldplug) enter this in rc.conf: MODULES=(moduleA moduleB)  
-- After bootup (hotplug) use this: modprobe <moduleA>
-
-=========================================
-* Known problems for custom kernel users:
-=========================================
-
-----------------------------
-* Udev doesn't start at all:
-----------------------------
-- Check Requirements list
diff --git a/abs/core-testing/udev/resolve-modalias.c b/abs/core-testing/udev/resolve-modalias.c
deleted file mode 100644
index d1680b1..0000000
--- a/abs/core-testing/udev/resolve-modalias.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include <stdio.h>
-#include <fnmatch.h>
-#include <string.h>
-#include <malloc.h>
-
-static char *getline(FILE *file) {
-  static size_t size = 1024;
-  static char *buf = NULL;
-  static unsigned int i = 0, r = 0;;
-
-  if(buf == NULL)
-    buf = (char*)malloc(size);
-
-  if(i) {
-    memmove(buf, buf+i, size-i);
-    r -= i;
-    i = 0;
-  }
-
-  while(1) {
-    if(i == size) {
-      size *= 2;
-      buf = (char*)realloc(buf, size);
-    }
-
-    if(i==r)
-      r += fread(buf+i, 1, size-i, file);
-
-    if(i==r && i == 0) {
-      free(buf);
-      buf = NULL;
-      r = 0;
-      return NULL;
-    }
-
-    if(i==r || buf[i] == '\n') {
-      buf[i++] = '\0';
-      return buf;
-    }
-    i++;
-  }
-}
-
-int main(int argc, char *argv[]) {
-  FILE *f=fopen(argv[1], "r");
-  char *line, *pattern, *module;
-  char *pos1, *pos2;
-
-  while((line=getline(f))!=NULL) {
-    if(!strncmp(line, "alias", strlen("alias"))) {
-      pos1 = index(line, ' ');
-      pos2 = index(pos1+1, ' ');
-      pattern = pos1+1;
-      *pos2 = '\0';
-      module = pos2+1;
-
-      if(!fnmatch(pattern, argv[2], 0))
-        printf("%s\n", module);
-    }
-  }
-  return 0;
-}
diff --git a/abs/core-testing/udev/start_udev b/abs/core-testing/udev/start_udev
deleted file mode 100755
index 03c38fd..0000000
--- a/abs/core-testing/udev/start_udev
+++ /dev/null
@@ -1,137 +0,0 @@
-#! /bin/sh
-#
-# start_udev
-# script to initialize /dev by using udev.
-#
-# Modified for Archlinux by Tobias Powalowski <tpowa@archlinux.org>
-#
-# Inspired by:
-# 
-# Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com>
-#
-# Released under the GPL v2 only.
-#
-# This needs to be run at the earliest possible point in the boot 
-# process.
-#
-# Based on the udev init.d script
-#
-# Thanks go out to the Gentoo developers for proving 
-# that this is possible to do.
-#
-# Yes, it's very verbose, feel free to turn off all of the echo calls,
-# they were there to make me feel better that everything was working
-# properly during development...
-#
-
-prog=udev
-sysfs_dir=/sys
-bin=/sbin/udev
-udevd=/sbin/udevd
-udev_root="/dev"
-
-starttime=$(date +%s)
-
-
-function trigger_builtin_events() {   
-           list="$(echo /sys/class/tty/ttyS*/uevent)"   
-           for i in $list; do   
-               case "$i" in   
-                   */class/uevent|*\**)   
-                       continue   
-                       ;;   
-                   */class/tty/ttyS*)   
-                       echo "add" > "$i"   
-                       ;;   
-               esac   
-           done   
-   }
-
-function trigger_device_events() {
-	/sbin/udevtrigger
-}
-
-function wait_for_queue() {
-#	loop=20
-#        while ! [ "$loop" -gt 0 -a -d /dev/.udev/queue ]; do
-#                   sleep 0.1;
-#                   loop=$(($loop - 1))
-#        done
-	/sbin/udevsettle
-}
-
-make_extra_nodes () {
-	# there are a few things that sysfs does not export for us.
-	# these things go here (and remember to remove them in 
-	# remove_extra_nodes()
-	#
-	# Thanks to Gentoo for the initial list of these.
-	ln -snf /proc/self/fd $udev_root/fd
-	ln -snf /proc/self/fd/0 $udev_root/stdin
-	ln -snf /proc/self/fd/1 $udev_root/stdout
-	ln -snf /proc/self/fd/2 $udev_root/stderr
-	ln -snf /proc/kcore $udev_root/core
-
-	mkdir $udev_root/pts
-	mkdir $udev_root/shm
-}
-
-udev_init  () {
-# don't use udev if sysfs is not mounted.
-if [ ! -d $sysfs_dir/block ]; then
-	exit 1
-fi
-
-echo "mounting... ramfs at $udev_root"
-mount -n -t ramfs none $udev_root
-
-# propogate /udev from /sys
-echo "Creating initial udev device nodes:"
-
-#echo "making extra nodes"
-make_extra_nodes
-
-# check if udevd is already running
-if [ `pidof -o %PPID /sbin/udevd` ]; then
-	grep -v "/dev/shm" /etc/mtab | grep -v "/dev/pts" > /etc/mtab
-	mount /dev/pts
-	mount /dev/shm
-else
-	echo "start udev daemon"
-	/sbin/udevd --daemon
-fi
-case "$(uname -r)" in
-       2.6.[0-9]|2.6.[0-9][!0-9]*) ;;
-       *) 	if [ -f "/sys/class/tty/console/uevent" ]; then
-			echo "Kernel >= 2.6.15 and supports uevents"
-			# trigger the sorted events
-			echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
-			# catch events that are real fast
-			mkdir -p /dev/.udev/queue
-			trigger_builtin_events
-		else
-			# for older kernels without uevents will be removed when udevstart dies in udev
-			echo "Kernel does not support uevents, you need a kernel >= 2.6.15!"
-			exit 1
-		fi 
-	;;
-esac
-}
-
-udev_uevents () {
-# configure all devices
-trigger_device_events
-# until we know how to do better, just wait for _all_ events to finish
-wait_for_queue
-}
-
-if [ $# -eq 0 ]; then
-udev_init
-udev_uevents
-fi
-
-[ "$1" = "init" ] && udev_init
-[ "$1" = "uevents" ] && udev_uevents
-
-echo "udev startup is finished! - time = $(( `date +%s` - $starttime ))"
-exit 0
diff --git a/abs/core-testing/udev/udev-ntfs-3g.patch b/abs/core-testing/udev/udev-ntfs-3g.patch
deleted file mode 100644
index 366c41f..0000000
--- a/abs/core-testing/udev/udev-ntfs-3g.patch
+++ /dev/null
@@ -1,217 +0,0 @@
-diff -ruaN udev-135.orig/extras/volume_id/lib/ntfs.c udev-135/extras/volume_id/lib/ntfs.c
---- udev-135.orig/extras/volume_id/lib/ntfs.c	2008-11-13 20:42:56.000000000 +0000
-+++ udev-135/extras/volume_id/lib/ntfs.c	2009-06-28 23:31:01.000000000 +0000
-@@ -194,7 +194,7 @@
- 	}
- 
- 	volume_id_set_usage(id, VOLUME_ID_FILESYSTEM);
--	id->type = "ntfs";
-+	id->type = "ntfs-3g";
- 	/* we think this is ntfs, but we make sure no other signatures are found */
- 	id->force_unique_result = 1;
- 	return 0;
-diff -ruaN udev-135.orig/extras/volume_id/lib/ntfs.c~ udev-135/extras/volume_id/lib/ntfs.c~
---- udev-135.orig/extras/volume_id/lib/ntfs.c~	1970-01-01 00:00:00.000000000 +0000
-+++ udev-135/extras/volume_id/lib/ntfs.c~	2008-11-13 20:42:56.000000000 +0000
-@@ -0,0 +1,201 @@
-+/*
-+ * volume_id - reads filesystem label and uuid
-+ *
-+ * Copyright (C) 2004 Kay Sievers <kay.sievers@vrfy.org>
-+ *
-+ * This program is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation, either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#ifndef _GNU_SOURCE
-+#define _GNU_SOURCE 1
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <string.h>
-+#include <errno.h>
-+#include <ctype.h>
-+
-+#include "libvolume_id.h"
-+#include "libvolume_id-private.h"
-+
-+static struct ntfs_super_block {
-+	uint8_t		jump[3];
-+	uint8_t		oem_id[8];
-+	uint16_t	bytes_per_sector;
-+	uint8_t		sectors_per_cluster;
-+	uint16_t	reserved_sectors;
-+	uint8_t		fats;
-+	uint16_t	root_entries;
-+	uint16_t	sectors;
-+	uint8_t		media_type;
-+	uint16_t	sectors_per_fat;
-+	uint16_t	sectors_per_track;
-+	uint16_t	heads;
-+	uint32_t	hidden_sectors;
-+	uint32_t	large_sectors;
-+	uint16_t	unused[2];
-+	uint64_t	number_of_sectors;
-+	uint64_t	mft_cluster_location;
-+	uint64_t	mft_mirror_cluster_location;
-+	int8_t		cluster_per_mft_record;
-+	uint8_t		reserved1[3];
-+	int8_t		cluster_per_index_record;
-+	uint8_t		reserved2[3];
-+	uint8_t		volume_serial[8];
-+	uint16_t	checksum;
-+} PACKED *ns;
-+
-+static struct master_file_table_record {
-+	uint8_t		magic[4];
-+	uint16_t	usa_ofs;
-+	uint16_t	usa_count;
-+	uint64_t	lsn;
-+	uint16_t	sequence_number;
-+	uint16_t	link_count;
-+	uint16_t	attrs_offset;
-+	uint16_t	flags;
-+	uint32_t	bytes_in_use;
-+	uint32_t	bytes_allocated;
-+} PACKED *mftr;
-+
-+static struct file_attribute {
-+	uint32_t	type;
-+	uint32_t	len;
-+	uint8_t		non_resident;
-+	uint8_t		name_len;
-+	uint16_t	name_offset;
-+	uint16_t	flags;
-+	uint16_t	instance;
-+	uint32_t	value_len;
-+	uint16_t	value_offset;
-+} PACKED *attr;
-+
-+static struct volume_info {
-+	uint64_t	reserved;
-+	uint8_t		major_ver;
-+	uint8_t		minor_ver;
-+} PACKED *info;
-+
-+#define MFT_RECORD_VOLUME			3
-+#define MFT_RECORD_ATTR_VOLUME_NAME		0x60
-+#define MFT_RECORD_ATTR_VOLUME_INFO		0x70
-+#define MFT_RECORD_ATTR_OBJECT_ID		0x40
-+#define MFT_RECORD_ATTR_END			0xffffffffu
-+
-+int volume_id_probe_ntfs(struct volume_id *id, uint64_t off, uint64_t size)
-+{
-+	unsigned int sector_size;
-+	unsigned int cluster_size;
-+	uint64_t mft_cluster;
-+	uint64_t mft_off;
-+	unsigned int mft_record_size;
-+	unsigned int attr_type;
-+	unsigned int attr_off;
-+	unsigned int attr_len;
-+	unsigned int val_off;
-+	unsigned int val_len;
-+	const uint8_t *buf;
-+	const uint8_t *val;
-+
-+	info("probing at offset 0x%" PRIx64 "\n", off);
-+
-+	ns = (struct ntfs_super_block *) volume_id_get_buffer(id, off, 0x200);
-+	if (ns == NULL)
-+		return -1;
-+
-+	if (memcmp(ns->oem_id, "NTFS", 4) != 0)
-+		return -1;
-+
-+	volume_id_set_uuid(id, ns->volume_serial, 0, UUID_64BIT_LE);
-+
-+	sector_size = le16_to_cpu(ns->bytes_per_sector);
-+	if (sector_size < 0x200)
-+		return -1;
-+
-+	cluster_size = ns->sectors_per_cluster * sector_size;
-+	mft_cluster = le64_to_cpu(ns->mft_cluster_location);
-+	mft_off = mft_cluster * cluster_size;
-+
-+	if (ns->cluster_per_mft_record < 0)
-+		/* size = -log2(mft_record_size); normally 1024 Bytes */
-+		mft_record_size = 1 << -ns->cluster_per_mft_record;
-+	else
-+		mft_record_size = ns->cluster_per_mft_record * cluster_size;
-+
-+	dbg("sectorsize  0x%x\n", sector_size);
-+	dbg("clustersize 0x%x\n", cluster_size);
-+	dbg("mftcluster  %" PRIu64 "\n", mft_cluster);
-+	dbg("mftoffset  0x%" PRIx64 "\n", mft_off);
-+	dbg("cluster per mft_record  %i\n", ns->cluster_per_mft_record);
-+	dbg("mft record size  %i\n", mft_record_size);
-+
-+	buf = volume_id_get_buffer(id, off + mft_off + (MFT_RECORD_VOLUME * mft_record_size),
-+			 mft_record_size);
-+	if (buf == NULL)
-+		return -1;
-+
-+	mftr = (struct master_file_table_record*) buf;
-+	dbg("mftr->magic '%c%c%c%c'\n", mftr->magic[0], mftr->magic[1], mftr->magic[2], mftr->magic[3]);
-+	if (memcmp(mftr->magic, "FILE", 4) != 0)
-+		return -1;
-+
-+	attr_off = le16_to_cpu(mftr->attrs_offset);
-+	dbg("file $Volume's attributes are at offset %i\n", attr_off);
-+
-+	while (1) {
-+		attr = (struct file_attribute*) &buf[attr_off];
-+		attr_type = le32_to_cpu(attr->type);
-+		attr_len = le16_to_cpu(attr->len);
-+		val_off = le16_to_cpu(attr->value_offset);
-+		val_len = le32_to_cpu(attr->value_len);
-+		attr_off += attr_len;
-+
-+		if (attr_len == 0)
-+			break;
-+
-+		if (attr_off >= mft_record_size)
-+			break;
-+
-+		if (attr_type == MFT_RECORD_ATTR_END)
-+			break;
-+
-+		dbg("found attribute type 0x%x, len %i, at offset %i\n",
-+		    attr_type, attr_len, attr_off);
-+
-+		if (attr_type == MFT_RECORD_ATTR_VOLUME_INFO) {
-+			dbg("found info, len %i\n", val_len);
-+			info = (struct volume_info*) (((uint8_t *) attr) + val_off);
-+			snprintf(id->type_version, sizeof(id->type_version)-1,
-+				 "%u.%u", info->major_ver, info->minor_ver);
-+		}
-+
-+		if (attr_type == MFT_RECORD_ATTR_VOLUME_NAME) {
-+			dbg("found label, len %i\n", val_len);
-+			if (val_len > VOLUME_ID_LABEL_SIZE)
-+				val_len = VOLUME_ID_LABEL_SIZE;
-+
-+			val = ((uint8_t *) attr) + val_off;
-+			volume_id_set_label_raw(id, val, val_len);
-+			volume_id_set_label_unicode16(id, val, LE, val_len);
-+		}
-+	}
-+
-+	volume_id_set_usage(id, VOLUME_ID_FILESYSTEM);
-+	id->type = "ntfs";
-+	/* we think this is ntfs, but we make sure no other signatures are found */
-+	id->force_unique_result = 1;
-+	return 0;
-+}
diff --git a/abs/core-testing/udev/udev.install b/abs/core-testing/udev/udev.install
index bb8b166..b4ce3c8 100644
--- a/abs/core-testing/udev/udev.install
+++ b/abs/core-testing/udev/udev.install
@@ -1,15 +1,16 @@
 # arg 1:  the new package version
 # arg 2:  the old package version
+
 post_upgrade() {
-if [ "$(vercmp $2 100)" -lt 0 ]; then
-  echo "ATTENTION UDEV:"
-  echo "----------"
-  echo "udev >=098 rules syntax has changed, please update your own rules."
-  echo "udev >=099 Added persistent network and CD/DVD Symlink generator rules."
-  echo "Please read the instructions carefully before reboot."
-  echo "They are located in /etc/udev/readme-udev-arch.txt"
-  echo "----------"
-fi
+  if [ "$(vercmp $2 100)" -lt 0 ]; then
+    echo "ATTENTION UDEV:"
+    echo "----------"
+    echo "udev >=098 rules syntax has changed, please update your own rules."
+    echo "udev >=099 Added persistent network and CD/DVD Symlink generator rules."
+    echo "Please read the instructions carefully before reboot."
+    echo "They are located in /etc/udev/readme-udev-arch.txt"
+    echo "----------"
+  fi
 }
 
 post_install() {
@@ -26,7 +27,3 @@ post_install() {
     rmdir ${ROOTDIR}
   fi
 }
-
-op=$1
-shift
-$op $*
diff --git a/abs/core-testing/udev/udev.rules b/abs/core-testing/udev/udev.rules
deleted file mode 100644
index f789e50..0000000
--- a/abs/core-testing/udev/udev.rules
+++ /dev/null
@@ -1,456 +0,0 @@
-# Udev rules for Archlinux by Tobias Powalowski <tpowa@archlinux.org>
-#
-# This ruleset should provide a DevFS-compatible device tree.
-#
-# There are a number of modifiers that are allowed to be used in some
-# of the different fields. They provide the following subsitutions:
-#
-# %n the "kernel number" of the device.
-#    For example, 'sda3' has a "kernel number" of '3'
-# %k the kernel name for the device.
-# %M the kernel major number for the device
-# %m the kernel minor number for the device
-# %b the bus id for the device
-# %c the string returned by the PROGRAM
-# %s{filename} the content of a sysfs attribute.
-# %% the '%' char itself.
-#
-# There are a number of modifiers that are allowed to be used in some of the
-# fields.  See the udev man page for a full description of them.
-# global stuff
-#
-
-#####################################
-# Early rules - begin
-#####################################
-# wait for sysfs
-ACTION=="add", KERNEL=="[0-9]*:[0-9]*", SUBSYSTEM=="scsi", WAIT_FOR_SYSFS="ioerr_cnt"
-# Setting timeout for tape-devices (type 1) to 900 seconds
-# and 60 seconds for device types 0, 7 and 14
-SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="0|7|14", ATTR{timeout}="60"
-SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="1", ATTR{timeout}="900"
-#####################################
-# Early rules -end
-#####################################
-
-#####################################
-###### Hotplug rules - begin
-#####################################
-# check if the device has already been claimed by a driver
-ENV{DRIVER}=="?*", SUBSYSTEM!="input", GOTO="hotplug_driver_loaded"
-ACTION!="add", GOTO="hotplug_not_add_event"
-
-#Skip auto-loading of framebuffer devices
-KERNEL=="fb[0-9]*", GOTO="hotplug_driver_loaded"
-
-# Modaliases to load
-ENV{MODALIAS}=="?*", RUN{ignore_error}+="/lib/udev/load-modules.sh $env{MODALIAS}"
-
-# SCSI addon modules
-SUBSYSTEM=="scsi", ATTRS{type}=="[07]", RUN+="/lib/udev/load-modules.sh sd_mod"
-SUBSYSTEM=="scsi", ATTRS{type}=="14", RUN+="/lib/udev/load-modules.sh sd_mod"
-SUBSYSTEM=="scsi", ATTRS{type}=="[45]", RUN+="/lib/udev/load-modules.sh sr_mod"
-SUBSYSTEM=="scsi", ATTRS{type}=="1", ATTRS{vendor}=="Onstream", ATTRS{model}!="ADR*", RUN+="/lib/udev/load-modules.sh osst"
-SUBSYSTEM=="scsi", ATTRS{type}=="1", ATTRS{vendor}=="Onstream", ATTRS{model}=="ADR*", RUN+="/lib/udev/load-modules.sh st"
-SUBSYSTEM=="scsi", ATTRS{type}=="1", ATTRS{vendor}!="Onstream", RUN+="/lib/udev/load-modules.sh st"
-SUBSYSTEM=="scsi", ATTRS{type}=="[235689]", TEST!="[module/sg]", RUN+="/lib/udev/load-modules.sh sg"
-
-# load sg module for burners
-SUBSYSTEM=="block", ATTRS{type}=="[45]", RUN+="/lib/udev/load-modules.sh sg"
-
-# MMC block devices
-SUBSYSTEM=="mmc", RUN+="/lib/udev/load-modules.sh mmc_block"
-
-# I2O block devices
-SUBSYSTEM=="i2o", RUN+="/lib/udev/load-modules.sh i2o_block"
-
-# Skip already claimed drivers
-DRIVERS=="?*", GOTO="hotplug_driver_loaded"
-
-# PNP modules
-SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", RUN{ignore_error}+="/bin/sh -c 'while read id; do /lib/udev/load-modules.sh pnp:d$$id; /lib/udev/load-modules.sh pnp:c$$id ; done < /sys$devpath/id'"
-
-# SOUND addon modules
-SUBSYSTEM=="sound", RUN+="/lib/udev/load-modules.sh snd-pcm-oss"
-SUBSYSTEM=="sound", RUN+="/lib/udev/load-modules.sh snd-seq-oss"
-
-LABEL="hotplug_driver_loaded"
-
-#PNP addon modules
-ACTION=="add", SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP0800", RUN+="/lib/udev/load-modules.sh pcspkr"
-# not needed anymore with kernel >= 2.6.21
-#ACTION=="add", SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP0b00", RUN+="/lib/udev/load-modules.sh rtc"
-ACTION=="add", SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP0b00", RUN+="/lib/udev/load-modules.sh rtc_cmos"
-ACTION=="add", SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="*PNP0510*", RUN+="/lib/udev/load-modules.sh irtty-sir"
-ACTION=="add", SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="*PNP0511*", RUN+="/lib/udev/load-modules.sh irtty-sir"
-ACTION=="add", SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNPb02f", RUN+="/lib/udev/load-modules.sh analog"
-ACTION=="add", SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP0501", RUN+="/lib/udev/load-modules.sh ppp-generic"
-
-# PARPORT addon modules
-ACTION=="add", SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP040*", RUN+="/lib/udev/load-modules.sh lp"
-ACTION=="add", SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP040*", RUN+="/lib/udev/load-modules.sh ppdev"
-
-# fix ide cdrom detection on old proliant servers
-ACTION=="add", SUBSYSTEM=="pci", ENV{MODALIAS}=="pci:v00000E11d00000001sv00000000sd00000000bc06sc02i00", RUN+="/lib/udev/load-modules.sh ide-generic"
-
-# FIRMWARE
-ACTION=="add", SUBSYSTEM=="firmware", ENV{FIRMWARE}=="?*", RUN+="/lib/udev/firmware.sh"
-LABEL="hotplug_not_add_event"
-#####################################
-##### Hotplug rules - end
-#####################################
-
-#####################################
-###### CD/DVD symlinks - begin
-#####################################
-ACTION=="add", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", IMPORT="/lib/udev/cdrom_id --export $tempnode"
-ACTION=="add", SUBSYSTEMS=="scsi",	KERNEL=="sr[0-9]*", IMPORT="/lib/udev/cdrom_id --export $tempnode"
-ACTION=="add", SUBSYSTEMS=="scsi",	KERNEL=="scd[a-z]", IMPORT="/lib/udev/cdrom_id --export $tempnode"
-ENV{ID_CDROM}=="?*", SYMLINK+="cd/cdrom-%b"
-ENV{ID_CDROM_CD_RW}=="?*", SYMLINK+="cd/cdrw-%b"
-ENV{ID_CDROM_DVD}=="?*", SYMLINK+="cd/dvd-%b"
-ENV{ID_CDROM_DVD_R}=="?*", SYMLINK+="cd/dvd-%b"
-ACTION=="add", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", RUN+="/lib/udev/cdsymlinks.sh"
-ACTION=="add", SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", RUN+="/lib/udev/cdsymlinks.sh"
-ACTION=="add", SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", RUN+="/lib/udev/cdsymlinks.sh"
-ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="hd[a-z]", RUN+="/lib/udev/cdsymlinks.sh"
-ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sr[0-9]*", RUN+="/lib/udev/cdsymlinks.sh"
-ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sg[0-9]*", RUN+="/lib/udev/cdsymlinks.sh"
-#####################################
-###### CD/DVD symlinks - end
-#####################################
-
-# fix /dev/root symlink
-SUBSYSTEM=="block", RUN+="/lib/udev/root-link.sh"
-
-#####################################
-# Permissions and Symlinks - begin
-#####################################
-# default permissions for all block devices
-SUBSYSTEM=="block", 	GROUP="disk"
-
-# permissions for IDE CD devices
-SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", GROUP="optical"
-
-# permissions for SCSI CD devices
-SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", SYMLINK+="scd%n", GROUP="optical"
-SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", GROUP="optical"
-
-# permissions for IDE floppy devices
-SUBSYSTEMS=="ide", KERNEL=="hd*", ATTRS{media}=="floppy*", NAME{all_partitions}="%k", GROUP="floppy"
-
-# permissions for removable devices like cardreaders or sticks
-KERNEL=="sd*", ATTRS{scsi_level}=="0", ATTRS{type}=="0", GROUP="storage"
-
-# permissions for firewire external drives
-KERNEL=="sd*", ATTRS{scsi_level}=="5", GROUP="storage"
-
-# permissions for usb to scsi external adapters
-KERNEL=="sd*", ATTRS{scsi_level}=="3", ATTRS{type}=="7", GROUP="storage"
-
-# permissions for ide storage like pcmcia card readers
-ACTION!="add", GOTO="pcmcia_end"
-SUBSYSTEM!="block", GOTO="pcmcia_end"
-KERNEL=="hd*[!0-9]", IMPORT{program}="/lib/udev/ata_id --export $tempnode"
-KERNEL=="hd*", IMPORT{parent}=="ID_*"
-KERNEL=="hd*", ENV{ID_TYPE}=="generic", GROUP="storage"
-LABEL="pcmcia_end"
-
-# permissions for SCSI scanners
-SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="6", GROUP="scanner"
-
-# pty and tty legacy devices
-KERNEL=="pty[a-z][a-z,0-9]*", NAME="legacy/%k", OPTIONS="last_rule"
-KERNEL=="tty[a-z][a-z,0-9]*", NAME="legacy/%k", OPTIONS="last_rule"
-
-# md block devices
-KERNEL=="md[0-9]*", NAME="md%n", SYMLINK+="md/%n"
-
-# device-mapper
-KERNEL=="device-mapper", NAME="mapper/control"
-
-# floppy devices
-KERNEL=="fd[0-9]*", NAME="fd%n", SYMLINK+="floppy/%n fd%nu1440 fd%nu720 fd%nh1200 fd%nu360", GROUP="floppy"
-
-# tty devices
-SUBSYSTEM=="tty",	GROUP="tty"
-KERNEL=="tty[0-9]*",    NAME="vc/%n", SYMLINK+="%k"
-KERNEL=="ttyS[0-9]*",   NAME="tts/%n", SYMLINK+="ttyS%n"
-KERNEL=="ttyUSB[0-9]*", NAME="tts/USB%n", SYMLINK+="%k"
-
-# vc devices
-KERNEL=="vcs",        NAME="vcc/0", OPTIONS="last_rule"
-KERNEL=="vcs[0-9]*",  NAME="vcc/%n", OPTIONS="last_rule"
-KERNEL=="vcsa",       NAME="vcc/a0", OPTIONS="last_rule"
-KERNEL=="vcsa[0-9]*", NAME="vcc/a%n", OPTIONS="last_rule"
-KERNEL=="ptmx",		MODE="0666", OPTIONS="last_rule"
-KERNEL=="tty",		MODE="0666", OPTIONS="last_rule"
-
-# video devices
-SUBSYSTEM=="video4linux", GROUP="video"
-KERNEL=="dvb*",	PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; A=$${K%%%%.*}; D=$${K#*.}; echo dvb/adapter$$A/$$D'", \
-		NAME="%c", GROUP="video"
-### xorg resets those permissions, adjust your xorg.conf!
-KERNEL=="nvidia*",	GROUP="video"
-KERNEL=="card[0-9]*",	NAME="dri/%k", GROUP="video"
-KERNEL=="3dfx*",	GROUP="video"
-
-# v4l devices
-KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="%k", GROUP="video"
-KERNEL=="video0", SYMLINK+="video"
-KERNEL=="radio[0-9]*", NAME="v4l/radio%n", SYMLINK+="radio%n", GROUP="video"
-KERNEL=="radio0", SYMLINK+="radio"
-KERNEL=="vbi[0-9]*",   NAME="v4l/vbi%n", SYMLINK+="%k", GROUP="video"
-KERNEL=="vbi0", SYMLINK+="vbi"
-KERNEL=="vtx[0-9]*",   NAME="v4l/vtx%n", SYMLINK+="%k", GROUP="video"
-KERNEL=="vtx0", SYMLINK+="vtx"
-
-# i2c devices
-KERNEL=="i2c-[0-9]*", NAME="i2c/%n", SYMLINK+="%k"
-
-# loop devices
-KERNEL=="loop[0-9]*", NAME="loop/%n", SYMLINK+="%k"
-
-# ramdisks
-KERNEL=="ram[0-9]*", NAME="rd/%n", SYMLINK+="%k"
-
-# framebuffer devices
-KERNEL=="fb[0-9]*", NAME="fb/%n", SYMLINK+="%k", GROUP="video"
-
-# misc
-KERNEL=="rtc*",     NAME="misc/%k", SYMLINK+="%k", GROUP="audio", MODE="0664"
-KERNEL=="rtc0",     SYMLINK+="rtc"
-KERNEL=="nvram",   NAME="misc/%k", SYMLINK+="%k", GROUP="kmem", MODE="0640"
-KERNEL=="psaux",   NAME="misc/%k", SYMLINK+="%k"
-KERNEL=="agpgart", NAME="misc/%k", SYMLINK+="%k" GROUP="video"
-KERNEL=="uinput",  NAME="misc/%k", SYMLINK+="%k"
-KERNEL=="random",        MODE="0666"
-KERNEL=="urandom",       MODE="0666"
-KERNEL=="mem",           MODE="0640", GROUP="kmem"
-KERNEL=="kmem",          MODE="0640", GROUP="kmem"
-KERNEL=="port",          MODE="0640", GROUP="kmem"
-KERNEL=="full",          MODE="0666"
-KERNEL=="null",          MODE="0666"
-KERNEL=="zero",          MODE="0666"
-KERNEL=="sgi_fetchop",   MODE="0666"
-KERNEL=="sonypi",        MODE="0666"
-KERNEL=="inotify",	NAME="misc/%k", SYMLINK+="%k", MODE="0666"
-KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid", SYMLINK="%k"
-KERNEL=="msr[0-9]*", NAME="cpu/%n/msr", SYMLINK="%k"
-
-# sound devices
-# alsa devices
-SUBSYSTEM=="sound",	GROUP="audio"
-KERNEL=="controlC[0-9]*", NAME="snd/%k"
-KERNEL=="hw[CD0-9]*",     NAME="snd/%k"
-KERNEL=="pcm[CD0-9cp]*",  NAME="snd/%k"
-KERNEL=="midi[CD0-9]*",   NAME="snd/%k"
-KERNEL=="timer",          NAME="snd/%k"
-KERNEL=="seq",            NAME="snd/%k"
-# oss devices
-KERNEL=="audio*",     NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="dmmidi*",    NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="admmidi*",   NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="dsp*",       NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="adsp*",      NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="midi*",      NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="amidi*",     NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="mixer*",     NAME="sound/%k", SYMLINK+="%k"
-KERNEL=="sequencer*", NAME="sound/%k", SYMLINK+="%k"
-
-# input devices
-KERNEL=="mice",   NAME="input/%k", MODE="0644"
-KERNEL=="mouse*", NAME="input/%k", MODE="0644"
-KERNEL=="event*", NAME="input/%k"
-KERNEL=="js*",    NAME="input/%k", MODE="0664"
-KERNEL=="ts*",	 NAME="input/%k"
-KERNEL=="uinput", NAME="input/%k"
-
-# USB devices
-KERNEL=="hiddev*",	NAME="usb/%k"
-KERNEL=="auer*",		NAME="usb/%k"
-KERNEL=="legousbtower*",	NAME="usb/%k", MODE="0666"
-KERNEL=="dabusb*",	NAME="usb/%k"
-SUBSYSTEMS=="usb", KERNEL=="lp[0-9]*",	NAME="usb/%k", GROUP="lp"
-SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{product}=="Palm Handheld*", SYMLINK+="pilot"
-SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{product}=="palmOne Handheld*", SYMLINK+="pilot"
-SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{product}=="Handspring Visor*", SYMLINK+="pilot"
-
-# printer devices
-SUBSYSTEM=="printer",	GROUP="lp"
-
-# netlink devices
-KERNEL=="route",		NAME="netlink/%k"
-KERNEL=="skip",		NAME="netlink/%k"
-KERNEL=="usersock",	NAME="netlink/%k"
-KERNEL=="fwmonitor",	NAME="netlink/%k"
-KERNEL=="tcpdiag",	NAME="netlink/%k"
-KERNEL=="nflog",		NAME="netlink/%k"
-KERNEL=="xfrm",		NAME="netlink/%k"
-KERNEL=="arpd",		NAME="netlink/%k"
-KERNEL=="route6",	NAME="netlink/%k"
-KERNEL=="ip6_fw",	NAME="netlink/%k"
-KERNEL=="dnrtmsg",	NAME="netlink/%k"
-### ! disabled seems to break device creation !
-# KERNEL=="tap*",		NAME="netlink/%k"
-
-# CAPI devices
-KERNEL=="capi",		NAME="capi20", SYMLINK+="isdn/capi20"
-KERNEL=="capi*",		NAME="capi/%n"
-
-# Network devices
-KERNEL=="tun",		NAME="net/%k", OPTIONS+="ignore_remove"
-KERNEL=="ppp",          OPTIONS+="ignore_remove"
-
-# IEEE1394 (firewire) devices
-KERNEL=="raw1394", NAME="%k", GROUP="video"
-KERNEL=="dv1394*", NAME="dv1394/%n", GROUP="video"
-KERNEL=="video1394*", NAME="video1394/%n", GROUP="video"
-
-# raw devices
-KERNEL=="raw[0-9]*",     NAME="raw/%k" 
-
-# kbd devices
-KERNEL=="kbd",		MODE="0664"
-
-# packet devices
-KERNEL=="pktcdvd",	NAME="pktcdvd/control", GROUP="optical", MODE="0660"
-KERNEL=="pktcdvd[0-9]*",	NAME="pktcdvd/pktcdvd%n", GROUP="optical", MODE="0660"
-
-# usbfs-like device nodes, libusb device access
-# for kernel 2.6.21 and below
-SUBSYSTEM=="usb_device", ACTION=="add", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev};printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", MODE="0664"
-# starting from kernel 2.6.22 use this rule
-SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0664" 
-#######################################
-# Permissions and Symlinks - end
-#######################################
-
-#######################################
-# Persistant block device stuff - begin
-#######################################
-# persistent storage links: /dev/{disk,tape}/{by-id,by-uuid,by-label,by-path,by-name}
-# scheme based on "Linux persistent device names", 2004, Hannes Reinecke <hare@suse.de>
-
-# needed like this!!!
-ACTION!="add|change", GOTO="persistent_storage_end"
-KERNEL=="nst[0-9]", SUBSYSTEMS=="scsi", IMPORT{program}="/lib/udev/scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}-nst"
-
-# type 8 devices are "Medium Changers"
-KERNEL=="sg*", SUBSYSTEMS=="scsi", ATTRS{type}=="8", IMPORT{program}="/lib/udev/scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
-SUBSYSTEM!="block", GOTO="persistent_storage_end"
-
-# skip rules for inappropriate block devices
-# don't add dm-*!!!
-KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|md*", GOTO="persistent_storage_end"
-
-# never access non-cdrom removable ide devices, the drivers are causing event loops on open()
-KERNEL=="hd*[!0-9]", ATTR{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end"
-KERNEL=="hd*[0-9]", ATTRS{removable}=="1", GOTO="persistent_storage_end"
-
-# ignore partitions that span the entire disk
-ATTR{whole_disk}=="*", GOTO="persistent_storage_end"
-
-# /sys/class/block will export this
-ENV{DEVTYPE}!="?*", ATTR{range}=="?*", ENV{DEVTYPE}="disk"
-ENV{DEVTYPE}!="?*", ATTR{start}=="?*", ENV{DEVTYPE}="partition"
-
-# for partitions import parent information
-ENV{DEVTYPE}=="partition", IMPORT{parent}="ID_*"
-
-# by-id (hardware serial number)
-KERNEL=="hd*[!0-9]", IMPORT{program}="/lib/udev/ata_id --export $tempnode"
-KERNEL=="hd*[!0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}"
-KERNEL=="hd*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}-part%n"
-
-KERNEL=="sd*[!0-9]|sr*|st*", ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_SUBSYSTEMS}="ieee1394"
-KERNEL=="sd*[!0-9]|sr*|st*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{program}="/lib/udev/usb_id --export %p"
-KERNEL=="sd*[!0-9]|sr*|st*", ENV{ID_SERIAL}!="?*", IMPORT{program}="/lib/udev/scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode"
-KERNEL=="cciss?c[0-9]d[0-9]", ENV{ID_SERIAL}!="?*", IMPORT{program}="/lib/udev/scsi_id --export --whitelisted --ignore-sysfs -s %p -d $tempnode", ENV{ID_BUS}="cciss"
-KERNEL=="sd*[!0-9]|sr*|cciss?c[0-9]d[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
-KERNEL=="sd*[0-9]|cciss*p[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
-KERNEL=="st*", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
-
-# libata compat (links like hd*)
-KERNEL=="sd*[!0-9]|sr*", ENV{ID_VENDOR}=="ATA", PROGRAM="/lib/udev/ata_id $tempnode", RESULT=="?*", ENV{ID_ATA_COMPAT}="$result", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}"
-KERNEL=="sd*[0-9]", ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}-part%n"
-
-KERNEL=="mmcblk[0-9]", SUBSYSTEMS=="mmc", ATTRS{name}=="?*", ATTRS{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}"
-KERNEL=="mmcblk[0-9]p[0-9]", ENV{ID_NAME}=="?*", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}-part%n"
- 
-# by-path (shortest physical path)
-ENV{DEVTYPE}=="disk", IMPORT{program}="/lib/udev/path_id %p"
-ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}"
-ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n"
-KERNEL=="st*", ENV{ID_PATH}=="?*", SYMLINK+="tape/by-path/$env{ID_PATH}"
-
-KERNEL=="sr*|st*", GOTO="persistent_storage_end"
-KERNEL=="hd*[!0-9]", ATTR{removable}=="1", GOTO="persistent_storage_end"
-
-# by-label/by-uuid (filesystem properties)
-IMPORT{program}="/lib/udev/vol_id --export $tempnode"
-ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
-ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
-
-# BIOS Enhanced Disk Device
-ENV{DEVTYPE}=="disk", IMPORT{program}="/lib/udev/edd_id --export $tempnode"
-ENV{DEVTYPE}=="disk", ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}"
-ENV{DEVTYPE}=="partition", ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}-part%n"
-LABEL="persistent_storage_end"
-
-# md links hook into "change" events, when the array becomes available
-KERNEL!="md[0-9]*", GOTO="md_end"
-ACTION!="add|change", GOTO="md_end"
-
-ATTR{md/array_state}=="|clear|inactive", GOTO="md_end"
-IMPORT{program}="/lib/udev/vol_id --export $tempnode"
-OPTIONS="link_priority=100"
-ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
-ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
-LABEL="md_end"
-# Persistant block device stuff - end
-#####################################
-
-#######################################
-# Persistant input stuff - begin
-#######################################
-SUBSYSTEM!="input",                     GOTO="persistent_input_end"
-ACTION!="add",                          GOTO="persistent_input_end"
-# ignore the mid-level drivers
-KERNEL=="input[0-9]*",                  GOTO="persistent_input_end"
- 
-# usb devices
-SUBSYSTEMS=="usb", IMPORT{program}="/lib/udev/usb_id --export"
-SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="01", ENV{ID_CLASS}="kbd"
-SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="02", ENV{ID_CLASS}="mouse"
-
-# other devices
-DRIVERS=="pcspkr",                       ENV{ID_CLASS}="spkr"
-DRIVERS=="atkbd",                        ENV{ID_CLASS}="kbd"
-DRIVERS=="psmouse",                      ENV{ID_CLASS}="mouse"
-ATTRS{name}=="*dvb*|*DVB*|* IR *",      ENV{ID_CLASS}="ir"
-ATTRS{modalias}=="input:*-*a[068],*|input:*-*a*,[68],*m*", ATTRS{modalias}!="input:*-*k*14A,*r*", ENV{ID_CLASS}="joystick"
-
-# fill empty serial number
-ENV{ID_CLASS}=="?*", ENV{ID_SERIAL}=="", ENV{ID_SERIAL}="noserial"
-
-# by-id links, generic and for the event devices
-KERNEL=="mouse*|js*", ENV{ID_BUS}=="?*", ENV{ID_SERIAL}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_CLASS}"
-KERNEL=="event*", ENV{ID_BUS}=="?*", ENV{ID_SERIAL}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-event-$env{ID_CLASS}"
-
- 
-# by-path links
-IMPORT{program}="/lib/udev/path_id %p"
-KERNEL=="mouse*|js*", ENV{ID_PATH}=="?*", SYMLINK+="input/by-path/$env{ID_PATH}-$env{ID_CLASS}"
-KERNEL=="event*", ENV{ID_PATH}=="?*", SYMLINK+="input/by-path/$env{ID_PATH}-event-$env{ID_CLASS}" 
-
-LABEL="persistent_input_end"
-#####################################
-# Persistant input stuff - end
-#####################################
-
-# run a command on remove events
-ACTION=="remove", ENV{REMOVE_CMD}!="", RUN+="$env{REMOVE_CMD}"
-
-# debugging monitor
-RUN+="socket:/org/kernel/udev/monitor"
diff --git a/abs/core-testing/udev/usb-storage.rules b/abs/core-testing/udev/usb-storage.rules
deleted file mode 100644
index a7e0726..0000000
--- a/abs/core-testing/udev/usb-storage.rules
+++ /dev/null
@@ -1,4 +0,0 @@
-SUBSYSTEMS=="usb", KERNEL=="sd[b-z]", NAME="%k", SYMLINK+="usb-%k", GROUP="users", OPTIONS="last_rule"
-ACTION=="add", SUBSYSTEMS=="usb", KERNEL=="sd[b-z][0-9]", SYMLINK+="usb-%k", GROUP="users", NAME="%k"
-ACTION=="add", SUBSYSTEMS=="usb", KERNEL=="sd[b-z][0-9]", RUN+="/etc/udev/scripts/mount-usb mount %k", OPTIONS="last_rule"
-ACTION=="remove", SUBSYSTEMS=="block", RUN+="/etc/udev/scripts/mount-usb umount %k", OPTIONS="last_rule"#
-- 
cgit v0.12


From 7c189dcd0358b9369a10834437975b4265b3b4f4 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:58:22 -0700
Subject: unichrome-dri:Removed for LinHES 7.

---
 abs/core-testing/unichrome-dri/PKGBUILD            |  38 --------
 .../unichrome-dri/mesa-7.1-link-shared.patch       | 102 ---------------------
 2 files changed, 140 deletions(-)
 delete mode 100644 abs/core-testing/unichrome-dri/PKGBUILD
 delete mode 100644 abs/core-testing/unichrome-dri/mesa-7.1-link-shared.patch

diff --git a/abs/core-testing/unichrome-dri/PKGBUILD b/abs/core-testing/unichrome-dri/PKGBUILD
deleted file mode 100644
index 2870c39..0000000
--- a/abs/core-testing/unichrome-dri/PKGBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# $Id: PKGBUILD 13002 2008-09-25 18:36:29Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
-pkgname=unichrome-dri
-pkgver=7.2
-pkgrel=1
-pkgdesc="DRI drivers for Unichrome-based videochipsets"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('libdrm>=2.3.1' 'expat>=2.0.1' 'libgl>=7.1-2')
-makedepends=('dri2proto>=1.1' 'glproto>=1.4.9' 'pkgconfig' 'libxfixes' 'libxdamage' 'libxxf86vm' 'libxext')
-options=('!libtool')
-source=(http://downloads.sourceforge.net/mesa3d/MesaLib-${pkgver}.tar.bz2
-	mesa-7.1-link-shared.patch)
-md5sums=('04d379292e023df0b0266825cb0dbde5'
-         'f0baa948d9810f268413111ee439d24b')
-
-build() {
-  cd ${srcdir}/Mesa-${pkgver}
-  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch
-  export CFLAGS="${CFLAGS} -ffast-math"
-  ./configure --prefix=/usr \
-    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
-    --with-dri-drivers=unichrome \
-    --enable-glx-tls \
-    --disable-ttm-api \
-    --with-driver=dri \
-    --enable-xcb \
-    --disable-glu \
-    --disable-glut \
-    --disable-glw || return 1
-  make || return 1
-  cd src/mesa/drivers/dri || return 1
-  make DESTDIR=${pkgdir} install || return 1
-  rm -rf ${pkgdir}/usr/lib/pkgconfig
-  rm -rf ${pkgdir}/usr/include
-  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so
-}
diff --git a/abs/core-testing/unichrome-dri/mesa-7.1-link-shared.patch b/abs/core-testing/unichrome-dri/mesa-7.1-link-shared.patch
deleted file mode 100644
index 7fdbf14..0000000
--- a/abs/core-testing/unichrome-dri/mesa-7.1-link-shared.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
---- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
-+++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
-@@ -6,12 +6,17 @@ include $(TOP)/configs/current
- 
- 
- 
--default: $(TOP)/$(LIB_DIR) subdirs
-+default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
- 
- 
- $(TOP)/$(LIB_DIR):
- 	-mkdir $(TOP)/$(LIB_DIR)
- 
-+libdricore.so:
-+	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
-+
-+$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
-+	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
- 
- subdirs:
- 	@for dir in $(DRI_DIRS) ; do \
-@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
- 	$(pcedit) $< > $@
- 
- 
--install: dri.pc
-+install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
- 	@for dir in $(DRI_DIRS) ; do \
- 		if [ -d $$dir ] ; then \
- 			(cd $$dir && $(MAKE) install) || exit 1 ; \
- 		fi \
- 	done
-+	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
-+	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
- 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
- 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
- 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
-@@ -52,5 +59,6 @@ clean:
- 			(cd $$dir && $(MAKE) clean) ; \
- 		fi \
- 	done
-+	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
- 	-rm -f common/*.o
- 	-rm -f *.pc
-diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
---- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
-+++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
-@@ -1,6 +1,6 @@
- # -*-makefile-*-
- 
--MESA_MODULES = $(TOP)/src/mesa/libmesa.a
-+MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
- 
- COMMON_SOURCES = \
-         ../common/utils.c \
-@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
- 
- $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
- 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
--		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
-+		$(OBJECTS) $(WINOBJ) \
-+		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
-+		$(DRI_LIB_DEPS)
- 
- 
- $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
-diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
---- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
-+++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
-@@ -77,7 +77,6 @@
-  */
- 
- .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
--.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
- 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
- _generic_read_RGBA_span_BGRA8888_REV_MMX:
- 	pushl	%ebx
-@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
-  */
- 
- .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
--.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
- 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
- _generic_read_RGBA_span_BGRA8888_REV_SSE:
- 	pushl	%esi
-@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
- 
- 	.text
- .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
--.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
- 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
- _generic_read_RGBA_span_BGRA8888_REV_SSE2:
- 	pushl	%esi
-@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
- 
- 	.text
- 	.globl	_generic_read_RGBA_span_RGB565_MMX
--        .hidden _generic_read_RGBA_span_RGB565_MMX
- 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
- 
- _generic_read_RGBA_span_RGB565_MMX:
-- 
cgit v0.12


From f52a878464f022c9c0d4d406aec35b47d5af3c74 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:58:40 -0700
Subject: util-linux-ng:Bumped/Updated for LinHES 7.

---
 abs/core-testing/util-linux-ng/PKGBUILD            | 48 +++++++++++-----------
 abs/core-testing/util-linux-ng/fix-findmnt.patch   | 24 +++++++++++
 .../util-linux-ng/util-linux-ng.install            |  2 +-
 3 files changed, 50 insertions(+), 24 deletions(-)
 create mode 100644 abs/core-testing/util-linux-ng/fix-findmnt.patch

diff --git a/abs/core-testing/util-linux-ng/PKGBUILD b/abs/core-testing/util-linux-ng/PKGBUILD
index 3d72cbc..ef003b1 100644
--- a/abs/core-testing/util-linux-ng/PKGBUILD
+++ b/abs/core-testing/util-linux-ng/PKGBUILD
@@ -1,39 +1,41 @@
-# $Id: PKGBUILD 29509 2009-03-09 17:25:09Z tpowa $
+# $Id: PKGBUILD 84963 2010-07-05 23:24:20Z thomas $
 # Maintainer: judd <jvinet@zeroflux.org>
 pkgname=util-linux-ng
-pkgver=2.14.2
-_loop_date=20090214
-pkgrel=1
+pkgver=2.18
+pkgrel=2
 pkgdesc="Miscellaneous system utilities for Linux"
 url="http://userweb.kernel.org/~kzak/util-linux-ng/"
 arch=('i686' 'x86_64')
 groups=('base')
-depends=('bash' 'ncurses>=5.7' 'zlib' 'e2fsprogs')
+depends=('bash' 'ncurses>=5.7' 'zlib' 'filesystem')
 replaces=('linux32' 'util-linux')
-conflicts=('linux32' 'util-linux')
+conflicts=('linux32' 'util-linux' 'e2fsprogs<1.41.8-2')
 provides=('linux32' 'util-linux')
 license=('GPL2')
-source=(ftp://ftp.kernel.org/pub/linux/utils/${pkgname}/v2.14/${pkgname}-${pkgver}.tar.bz2
-	http://loop-aes.sourceforge.net/updates/${pkgname}-${pkgver}-${_loop_date}.diff.bz2)
+options=('!libtool')
+source=(ftp://ftp.kernel.org/pub/linux/utils/${pkgname}/v2.18/${pkgname}-${pkgver}.tar.bz2
+        fix-findmnt.patch)
+optdepends=('perl: for chkdupexe support')
 install=util-linux-ng.install
-md5sums=('b9d0053a22cfcbf0b9c0aa6d6eccfbc8'
-         '72c5b3e961efc1bda2750dbad019e414')
+md5sums=('2f5f71e6af969d041d73ab778c141a77'
+         '7346673932b165faadde2fa2a9c1cd3a')
 
 build() {
-  cd ${srcdir}/${pkgname}-${pkgver}
-
-  # cryptoloop support
-  patch -Np1 -i ${srcdir}/${pkgname}-${pkgver}-${_loop_date}.diff || return 1
+  cd "${srcdir}/${pkgname}-${pkgver}"
   # hardware clock
-  sed -e 's%etc/adjtime%var/lib/hwclock/adjtime%' -i hwclock/hwclock.c 
-  mkdir -p ${startdir}/pkg/var/lib/hwclock
-  ./configure --enable-arch --enable-write --enable-raw --disable-wall --enable-rdev
+  sed -e 's%etc/adjtime%var/lib/hwclock/adjtime%' -i hwclock/hwclock.c || return 1
+  mkdir -p "${pkgdir}/var/lib/hwclock" || return 1
+  # fix findmnt
+  patch -p1 -i "${srcdir}/fix-findmnt.patch"
+
+  autoreconf || return 1
+  automake || return 1
+  ./configure --enable-arch --enable-write --enable-raw --disable-wall --enable-rdev --enable-partx || return 1
   make HAVE_SLN=yes ADD_RAW=yes || return 1
-  make HAVE_SLN=yes ADD_RAW=yes DESTDIR=${startdir}/pkg install || return 1
+  make HAVE_SLN=yes ADD_RAW=yes DESTDIR="${pkgdir}" install || return 1
   # remove files
-  rm -f ${pkgdir}/bin/kill
-  rm -f ${pkgdir}/usr/share/man/man1/kill.1
-  rm -f ${pkgdir}/usr/share/man/man5/nfs.5
-  rm -f ${pkgdir}/usr/share/info/dir
+  rm -f "${pkgdir}/bin/kill"
+  rm -f "${pkgdir}/usr/share/man/man1/kill.1"
+  rm -f "${pkgdir}/usr/share/man/man5/nfs.5"
+  rm -f "${pkgdir}/usr/share/info/dir"
 }
-
diff --git a/abs/core-testing/util-linux-ng/fix-findmnt.patch b/abs/core-testing/util-linux-ng/fix-findmnt.patch
new file mode 100644
index 0000000..bf6574c
--- /dev/null
+++ b/abs/core-testing/util-linux-ng/fix-findmnt.patch
@@ -0,0 +1,24 @@
+commit a6c90fe597944f68fe49f45f1d8bc0d2e35104d4
+Author: Petr Uzel <petr.uzel-aRb0bU7PRFPrBKCeMvbIDA@public.gmane.org>
+Date:   Sun Jul 4 20:02:57 2010 +0200
+
+    libmount: fix merge_optstr (do not truncate 3 trailing characters)
+    
+    I believe this is the correct fix.
+    
+    Signed-off-by: Petr Uzel <petr.uzel-aRb0bU7PRFPrBKCeMvbIDA@public.gmane.org>
+
+diff --git a/shlibs/mount/src/tab_parse.c b/shlibs/mount/src/tab_parse.c
+index 5dbcfa6..680e1fc 100644
+--- a/shlibs/mount/src/tab_parse.c
++++ b/shlibs/mount/src/tab_parse.c
+@@ -254,7 +254,8 @@ static char *merge_optstr(const char *vfs, const char *fs)
+ 	if (!strcmp(vfs, fs))
+ 		return strdup(vfs);		/* e.g. "aaa" and "aaa" */
+ 
+-	sz = strlen(vfs) + strlen(fs) + 2;
++	/* leave space for leading "r[ow],", "," and trailing zero */
++	sz = strlen(vfs) + strlen(fs) + 5;
+ 	res = malloc(sz);
+ 	if (!res)
+ 		return NULL;
diff --git a/abs/core-testing/util-linux-ng/util-linux-ng.install b/abs/core-testing/util-linux-ng/util-linux-ng.install
index 22d38db..b057db9 100644
--- a/abs/core-testing/util-linux-ng/util-linux-ng.install
+++ b/abs/core-testing/util-linux-ng/util-linux-ng.install
@@ -1,5 +1,5 @@
 infodir=/usr/share/info
-filelist=(ipc.info)
+filelist=(ipc.info.gz)
 
 post_install() {
  [ -x usr/bin/install-info ] || return 0
-- 
cgit v0.12


From fa8c27daa0c5119a06a83d646a646360f30e7379 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:58:56 -0700
Subject: wpa_supplicant:Bumped/Updated for LinHES 7.

---
 abs/core-testing/wpa_supplicant/PKGBUILD | 21 ++++++++++-----------
 abs/core-testing/wpa_supplicant/config   |  9 ++++++---
 2 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/abs/core-testing/wpa_supplicant/PKGBUILD b/abs/core-testing/wpa_supplicant/PKGBUILD
index 3ecc4a8..0e709fb 100644
--- a/abs/core-testing/wpa_supplicant/PKGBUILD
+++ b/abs/core-testing/wpa_supplicant/PKGBUILD
@@ -1,13 +1,12 @@
-# $Id: PKGBUILD 32196 2009-03-29 14:55:53Z thomas $
+# $Id: PKGBUILD 75193 2010-04-01 02:03:01Z pierre $
 # Maintainer: Thomas Baechler <thomas@archlinux.org>
 
 pkgname=wpa_supplicant
-pkgver=0.6.9
-#_madwifi_ver=0.9.4
-pkgrel=1
+pkgver=0.6.10
+pkgrel=2
 pkgdesc="A utility providing key negotiation for WPA wireless networks"
 arch=('i686' 'x86_64')
-depends=('openssl' 'dbus-core>=1.2.4' 'readline' 'libnl')
+depends=('openssl' 'dbus-core>=1.2.4' 'readline>=6.0' 'libnl')
 optdepends=('wpa_supplicant_gui: wpa_gui program')
 license=('GPL')
 groups=('base')
@@ -15,18 +14,18 @@ backup=('etc/wpa_supplicant.conf')
 url="http://hostap.epitest.fi/wpa_supplicant"
 source=(http://hostap.epitest.fi/releases/wpa_supplicant-$pkgver.tar.gz
         config)
-        #http://downloads.sourceforge.net/sourceforge/madwifi/madwifi-${_madwifi_ver}.tar.gz)
-md5sums=('0efb8fcedf0a8acf6f423dfdb0658fdd'
-         'd472554904cca44e1090e25dea7b03c9')
-         #'399d20de8d855a59f20058857c2178ad')
+md5sums=('8985b1030d753e5f74f8acfc34e591bb'
+         '6577abc7060ed2d45dba14bf8934e850')
 
 build() {
-  cd "${srcdir}"
-  #mv madwifi-${_madwifi_ver} madwifi
   cd "${srcdir}/${pkgname}-${pkgver}/${pkgname}"
   cp ${srcdir}/config ./.config
   sed -i 's@/usr/local@$(PREFIX)@g' Makefile
   make || return 1
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}/${pkgname}"
   make PREFIX=/usr DESTDIR="${pkgdir}" install || return 1
   install -m755 -d "${pkgdir}/etc"
   install -m644 wpa_supplicant.conf "${pkgdir}/etc/wpa_supplicant.conf" || return 1
diff --git a/abs/core-testing/wpa_supplicant/config b/abs/core-testing/wpa_supplicant/config
index e3582bf..e5c8cc7 100644
--- a/abs/core-testing/wpa_supplicant/config
+++ b/abs/core-testing/wpa_supplicant/config
@@ -50,6 +50,7 @@
 #CFLAGS += -I../../include/wireless
 
 # Driver interface for madwifi driver
+# Deprecated; use CONFIG_DRIVER_WEXT=y instead.
 #CONFIG_DRIVER_MADWIFI=y
 # Set include directory to the madwifi source tree
 #CFLAGS += -I../../madwifi
@@ -60,10 +61,11 @@
 #CONFIG_DRIVER_PRISM54=y
 
 # Driver interface for ndiswrapper
-CONFIG_DRIVER_NDISWRAPPER=y
+# Deprecated; use CONFIG_DRIVER_WEXT=y instead.
+#CONFIG_DRIVER_NDISWRAPPER=y
 
 # Driver interface for Atmel driver
-CONFIG_DRIVER_ATMEL=y
+#CONFIG_DRIVER_ATMEL=y
 
 # Driver interface for old Broadcom driver
 # Please note that the newer Broadcom driver ("hybrid Linux driver") supports
@@ -74,6 +76,7 @@ CONFIG_DRIVER_ATMEL=y
 #CFLAGS += -I/opt/WRT54GS/release/src/include
 
 # Driver interface for Intel ipw2100/2200 driver
+# Deprecated; use CONFIG_DRIVER_WEXT=y instead.
 #CONFIG_DRIVER_IPW=y
 
 # Driver interface for Ralink driver
@@ -372,7 +375,7 @@ CONFIG_CTRL_IFACE_DBUS=y
 #CONFIG_IEEE80211R=y
 
 # Add support for writing debug log to a file (/tmp/wpa_supplicant-log-#.txt)
-#CONFIG_DEBUG_FILE=y
+CONFIG_DEBUG_FILE=y
 
 # Enable privilege separation (see README 'Privilege separation' for details)
 #CONFIG_PRIVSEP=y
-- 
cgit v0.12


From d93fb94717d15d9c8d6c9c24932c349f939df5d9 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:59:05 -0700
Subject: xcb-proto:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xcb-proto/PKGBUILD | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/abs/core-testing/xcb-proto/PKGBUILD b/abs/core-testing/xcb-proto/PKGBUILD
index b80602a..c95c2c5 100644
--- a/abs/core-testing/xcb-proto/PKGBUILD
+++ b/abs/core-testing/xcb-proto/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 27497 2009-02-22 09:20:47Z andyrtr $
+# $Id: PKGBUILD 61568 2009-12-19 19:52:55Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xcb-proto
-pkgver=1.4
+pkgver=1.6
 pkgrel=1
 pkgdesc="XML-XCB protocol descriptions"
-arch=(i686 x86_64)
+arch=(any)
 url="http://xcb.freedesktop.org/"
 license=('custom')
 makedepends=('python' 'libxml2')
 source=(${url}/dist/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('45a599289a81189b9812ccb00911eed8')
+sha1sums=('e82418557c7f59f29da9ec18e0906d6d78e3a164')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-- 
cgit v0.12


From 9e23cf74fbd6cb5bbc9f8e0f7dfed0ccab9986af Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:59:17 -0700
Subject: xcb-util:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xcb-util/LICENSE  | 267 +++++++++++++++++++++++++++++++++++++
 abs/core-testing/xcb-util/PKGBUILD |  15 ++-
 2 files changed, 276 insertions(+), 6 deletions(-)
 create mode 100644 abs/core-testing/xcb-util/LICENSE

diff --git a/abs/core-testing/xcb-util/LICENSE b/abs/core-testing/xcb-util/LICENSE
new file mode 100644
index 0000000..5e3822c
--- /dev/null
+++ b/abs/core-testing/xcb-util/LICENSE
@@ -0,0 +1,267 @@
+/* Copyright (C) 2007 Bart Massey
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * 
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+/*
+ * Copyright (C) 2008-2009 Julien Danjou <julien@danjou.info>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/*
+ * Copyright (C) 2008 Arnaud Fontaine <arnau@debian.org>
+ * Copyright (C) 2007-2008 Vincent Torri <vtorri@univ-evry.fr>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+
+/*
+ * Copyright © 2008 Bart Massey <bart@cs.pdx.edu>
+ * Copyright © 2008 Julien Danjou <julien@danjou.info>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/*
+ * Copyright © 2008 Keith Packard <keithp@keithp.com>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/*
+ * Copyright © 2008 Bart Massey <bart@cs.pdx.edu>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/*
+ * Copyright © 2008 Ian Osgood <iano@quirkster.com>
+ * Copyright © 2008 Jamey Sharp <jamey@minilop.net>
+ * Copyright © 2008 Josh Triplett <josh@freedesktop.org>
+ * Copyright © 2008 Ulrich Eckhardt <doomster@knuut.de>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/* Copyright © 2006 Jamey Sharp.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * 
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+/* Copyright © 2006 Ian Osgood
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * 
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+/* Copyright © 2000 Keith Packard
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission.  Keith Packard makes no
+ * representations about the suitability of this software for any purpose.  It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
diff --git a/abs/core-testing/xcb-util/PKGBUILD b/abs/core-testing/xcb-util/PKGBUILD
index 734f57d..6d1ccd2 100644
--- a/abs/core-testing/xcb-util/PKGBUILD
+++ b/abs/core-testing/xcb-util/PKGBUILD
@@ -1,23 +1,26 @@
-# $Id: $
+# $Id: PKGBUILD 50451 2009-08-27 10:03:32Z andrea $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Andrea Scarpino <bash.lnx@gmail.com>
 
 pkgname=xcb-util
-pkgver=0.3.2
+pkgver=0.3.6
 pkgrel=1
 pkgdesc="Utility libraries for XC Binding"
 arch=('i686' 'x86_64')
-license=('GPL')
 url="http://xcb.freedesktop.org"
-depends=('libxcb>=1.1.90.1')
+license=('custom')
+depends=('libxcb>=1.4')
 makedepends=('gperf')
 options=('!libtool')
-source=(http://xcb.freedesktop.org/dist/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('fa41a147f5a63b01207cfd975fecc45c')
+source=(http://xcb.freedesktop.org/dist/${pkgname}-${pkgver}.tar.bz2
+        LICENSE)
+md5sums=('dd8968b8ee613cb027a8ef1fcbdc8fc9'
+         '2672c2e72dedb40f773e989dd622f298')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr --disable-static || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
-- 
cgit v0.12


From cee69b14e6409f763cef1d6024c577d696b933c8 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:59:49 -0700
Subject: xcursor-themes:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xcursor-themes/LICENSE  | 24 ++++++++++++++++++++++++
 abs/core-testing/xcursor-themes/PKGBUILD | 18 ++++++++++--------
 2 files changed, 34 insertions(+), 8 deletions(-)
 create mode 100644 abs/core-testing/xcursor-themes/LICENSE

diff --git a/abs/core-testing/xcursor-themes/LICENSE b/abs/core-testing/xcursor-themes/LICENSE
new file mode 100644
index 0000000..787374a
--- /dev/null
+++ b/abs/core-testing/xcursor-themes/LICENSE
@@ -0,0 +1,24 @@
+Copyright 1996-2002 Software in the Public Interest, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+SOFTWARE IN THE PUBLIC INTEREST, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of Software in the Public
+Interest, Inc. shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from Software in the Public Interest, Inc.
diff --git a/abs/core-testing/xcursor-themes/PKGBUILD b/abs/core-testing/xcursor-themes/PKGBUILD
index 6bc9ddc..7d3f1a8 100644
--- a/abs/core-testing/xcursor-themes/PKGBUILD
+++ b/abs/core-testing/xcursor-themes/PKGBUILD
@@ -1,20 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 55317 2009-10-12 17:17:21Z andyrtr $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xcursor-themes
-pkgver=1.0.1
+pkgver=1.0.2
 pkgrel=1
 pkgdesc="X.org Cursor themes"
-arch=(i686 x86_64)
+arch=(any)
 url="http://xorg.freedesktop.org/"
+license=('MIT')
 makedepends=('pkgconfig' 'xorg-apps')
-source=(${url}/releases/individual/data/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('014bad415e64c49994679cdb71a97e37')
+source=(${url}/releases/individual/data/${pkgname}-${pkgver}.tar.bz2 LICENSE)
+md5sums=('e8929a1bb4d98d1a3991fd340d0b5f09'
+         '31eccf56949504b5ce33110068948cf2')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd ${srcdir}/${pkgname}-${pkgver}
   ./configure --prefix=/usr
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  install -D -m644 ../LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
 }
-
-- 
cgit v0.12


From c220778ef0fb437849ee946ea2b4a26ce1c6e719 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:00:00 -0700
Subject: xextproto:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xextproto/PKGBUILD | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/abs/core-testing/xextproto/PKGBUILD b/abs/core-testing/xextproto/PKGBUILD
index a22207c..41e5bbb 100644
--- a/abs/core-testing/xextproto/PKGBUILD
+++ b/abs/core-testing/xextproto/PKGBUILD
@@ -1,17 +1,15 @@
-# $Id: PKGBUILD 26846 2009-02-13 15:23:45Z andyrtr $
+# $Id: PKGBUILD 54536 2009-10-11 09:34:38Z andyrtr $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xextproto
-pkgver=7.0.5
+pkgver=7.1.1
 pkgrel=1
 pkgdesc="X11 various extension wire protocol"
-arch=(i686 x86_64)
+arch=('any')
 license=('custom')
-depends=('inputproto>=1.5')
 url="http://xorg.freedesktop.org/"
 source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('e6841018a7c64983b0954aa2c564d115')
-sha1sums=('d62e704039e7c647da66c9a6531ebdede37dace8')
+md5sums=('fb6ccaae76db7a35e49b12aea60ca6ff')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-- 
cgit v0.12


From 7adabe35abb5a9897e824498a5f7dc2b230d881a Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:00:41 -0700
Subject: xf86-input-x:Updated for LinHES 7.

---
 abs/core-testing/xf86-input-calcomp/PKGBUILD     | 22 ----------------------
 abs/core-testing/xf86-input-citron/PKGBUILD      | 24 ------------------------
 abs/core-testing/xf86-input-digitaledge/PKGBUILD | 22 ----------------------
 abs/core-testing/xf86-input-dmc/PKGBUILD         | 22 ----------------------
 abs/core-testing/xf86-input-dynapro/PKGBUILD     | 22 ----------------------
 abs/core-testing/xf86-input-elo2300/PKGBUILD     | 22 ----------------------
 abs/core-testing/xf86-input-evdev/PKGBUILD       | 13 +++++++------
 abs/core-testing/xf86-input-jamstudio/PKGBUILD   | 22 ----------------------
 abs/core-testing/xf86-input-magellan/PKGBUILD    | 22 ----------------------
 abs/core-testing/xf86-input-magictouch/PKGBUILD  | 22 ----------------------
 abs/core-testing/xf86-input-microtouch/PKGBUILD  | 22 ----------------------
 abs/core-testing/xf86-input-palmax/PKGBUILD      | 22 ----------------------
 abs/core-testing/xf86-input-spaceorb/PKGBUILD    | 23 -----------------------
 abs/core-testing/xf86-input-summa/PKGBUILD       | 22 ----------------------
 abs/core-testing/xf86-input-tek4957/PKGBUILD     | 22 ----------------------
 abs/core-testing/xf86-input-ur98/PKGBUILD        | 22 ----------------------
 16 files changed, 7 insertions(+), 339 deletions(-)
 delete mode 100644 abs/core-testing/xf86-input-calcomp/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-input-citron/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-input-digitaledge/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-input-dmc/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-input-dynapro/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-input-elo2300/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-input-jamstudio/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-input-magellan/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-input-magictouch/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-input-microtouch/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-input-palmax/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-input-spaceorb/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-input-summa/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-input-tek4957/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-input-ur98/PKGBUILD

diff --git a/abs/core-testing/xf86-input-calcomp/PKGBUILD b/abs/core-testing/xf86-input-calcomp/PKGBUILD
deleted file mode 100644
index 2792455..0000000
--- a/abs/core-testing/xf86-input-calcomp/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 11000 2008-08-31 13:46:51Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
-pkgname=xf86-input-calcomp
-pkgver=1.1.2
-pkgrel=1
-pkgdesc="X.Org CalComp Drawing Board input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-options=('!libtool')
-groups=('xorg-input-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('ebc9a64dc72ae3015c16011bbd2d3557')
-
-build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-}
diff --git a/abs/core-testing/xf86-input-citron/PKGBUILD b/abs/core-testing/xf86-input-citron/PKGBUILD
deleted file mode 100644
index 1cd8713..0000000
--- a/abs/core-testing/xf86-input-citron/PKGBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
-
-pkgname=xf86-input-citron
-pkgver=2.2.1
-pkgrel=1
-pkgdesc="X.Org  Citron Infrared Touch input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4')
-groups=('xorg-input-drivers')
-options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-
-build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-}
-md5sums=('4e254fcefb3bea55772e63c12570f6d9')
diff --git a/abs/core-testing/xf86-input-digitaledge/PKGBUILD b/abs/core-testing/xf86-input-digitaledge/PKGBUILD
deleted file mode 100644
index fcdfd1a..0000000
--- a/abs/core-testing/xf86-input-digitaledge/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 11039 2008-08-31 13:50:33Z jgc $
-#Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=xf86-input-digitaledge
-pkgver=1.1.1
-pkgrel=1
-pkgdesc="X.Org Digital Edge Tablet input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-groups=('xorg-input-drivers')
-options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('4c27e0f3c6447e76df39a837fd46a00f')
-
-build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-}
diff --git a/abs/core-testing/xf86-input-dmc/PKGBUILD b/abs/core-testing/xf86-input-dmc/PKGBUILD
deleted file mode 100644
index afc4e86..0000000
--- a/abs/core-testing/xf86-input-dmc/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 11060 2008-08-31 13:52:40Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
-pkgname=xf86-input-dmc
-pkgver=1.1.2
-pkgrel=1
-pkgdesc="X.Org DMC FIT10 serial input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-options=('!libtool')
-groups=('xorg-input-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('91021ea8f3593221c0d9ee9cc14deb48')
-
-build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-}
diff --git a/abs/core-testing/xf86-input-dynapro/PKGBUILD b/abs/core-testing/xf86-input-dynapro/PKGBUILD
deleted file mode 100644
index 4043a9f..0000000
--- a/abs/core-testing/xf86-input-dynapro/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 11063 2008-08-31 13:54:38Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
-pkgname=xf86-input-dynapro
-pkgver=1.1.2
-pkgrel=1
-pkgdesc="X.org DynaPro Touch Screen input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-options=('!libtool')
-groups=('xorg-input-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('ceb5efbd3d62e24ab3a5f9f180777f7c')
-
-build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-}
diff --git a/abs/core-testing/xf86-input-elo2300/PKGBUILD b/abs/core-testing/xf86-input-elo2300/PKGBUILD
deleted file mode 100644
index da91799..0000000
--- a/abs/core-testing/xf86-input-elo2300/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 3251 2008-06-21 18:19:51Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
-pkgname=xf86-input-elo2300
-pkgver=1.1.2
-pkgrel=1
-pkgdesc="X.org ELOGraphics 2300 TouchScreen input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4')
-options=('!libtool')
-groups=('xorg-input-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('611d0a77a80286bc926dd3c414e59555')
-
-build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-}
diff --git a/abs/core-testing/xf86-input-evdev/PKGBUILD b/abs/core-testing/xf86-input-evdev/PKGBUILD
index 1ff72c5..3b43991 100644
--- a/abs/core-testing/xf86-input-evdev/PKGBUILD
+++ b/abs/core-testing/xf86-input-evdev/PKGBUILD
@@ -1,19 +1,20 @@
-# $Id: PKGBUILD 26856 2009-02-13 15:54:01Z andyrtr $
-# Maintainer: Alexander Baldeck <Alexander@archlinux.org
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 76112 2010-04-07 19:40:40Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <Alexander@archlinux.org
 pkgname=xf86-input-evdev
-pkgver=2.1.2
+pkgver=2.4.0
 pkgrel=1
 pkgdesc="X.org evdev input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'inputproto>=1.5.0' 'randrproto>=1.2.1')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'inputproto>=2.0' 'randrproto>=1.3.1')
+conflicts=('xorg-server<1.8.0')
 options=('!libtool')
 groups=('xorg-input-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('c27944124b31fa08ac13f244eb42c3fa')
+sha1sums=('875dd3c35f8d0f409337b932d82a46da0e9570e7')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/abs/core-testing/xf86-input-jamstudio/PKGBUILD b/abs/core-testing/xf86-input-jamstudio/PKGBUILD
deleted file mode 100644
index 35036e2..0000000
--- a/abs/core-testing/xf86-input-jamstudio/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 11114 2008-08-31 14:00:38Z jgc $
-#Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=xf86-input-jamstudio
-pkgver=1.2.0
-pkgrel=1
-pkgdesc="X.Org KB-Gear JamStudio pentablet input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-options=('!libtool')
-groups=('xorg-input-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('8011f90d7dd801d26e8c3dd058633978')
-
-build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-}
diff --git a/abs/core-testing/xf86-input-magellan/PKGBUILD b/abs/core-testing/xf86-input-magellan/PKGBUILD
deleted file mode 100644
index 9ed417a..0000000
--- a/abs/core-testing/xf86-input-magellan/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 11137 2008-08-31 14:03:11Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
-pkgname=xf86-input-magellan
-pkgver=1.2.0
-pkgrel=1
-pkgdesc="X.Org Magellan Space mouse input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-groups=('xorg-input-drivers')
-options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('9801ba10f15f8be2420dfb3f3b5d5d27')
-
-build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-}
diff --git a/abs/core-testing/xf86-input-magictouch/PKGBUILD b/abs/core-testing/xf86-input-magictouch/PKGBUILD
deleted file mode 100644
index 70c417e..0000000
--- a/abs/core-testing/xf86-input-magictouch/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 20562 2008-12-05 20:36:01Z jgc $
-#Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=xf86-input-magictouch
-pkgver=1.0.0.5
-pkgrel=5
-pkgdesc="X.org magictouch input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
-groups=('xorg-input-drivers')
-options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('d23f2791cd634ef85b7cc5e9da8f8407')
-
-build() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR="${pkgdir}" install || return 1
-}
diff --git a/abs/core-testing/xf86-input-microtouch/PKGBUILD b/abs/core-testing/xf86-input-microtouch/PKGBUILD
deleted file mode 100644
index 5984af1..0000000
--- a/abs/core-testing/xf86-input-microtouch/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 11144 2008-08-31 14:03:49Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
-pkgname=xf86-input-microtouch
-pkgver=1.2.0
-pkgrel=1
-pkgdesc="X.org microtouch input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-groups=('xorg-input-drivers')
-options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('1ad1aee7d8df84b9ea832d1e75963257')
-
-build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-}
diff --git a/abs/core-testing/xf86-input-palmax/PKGBUILD b/abs/core-testing/xf86-input-palmax/PKGBUILD
deleted file mode 100644
index 45c4da1..0000000
--- a/abs/core-testing/xf86-input-palmax/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 11159 2008-08-31 14:05:43Z jgc $
-#Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=xf86-input-palmax
-pkgver=1.2.0
-pkgrel=1
-pkgdesc="X.org palmax input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-groups=('xorg-input-drivers')
-options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('9655d2235569c5a6ac321c6fb89a6f3b')
-
-build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-}
diff --git a/abs/core-testing/xf86-input-spaceorb/PKGBUILD b/abs/core-testing/xf86-input-spaceorb/PKGBUILD
deleted file mode 100644
index 7291085..0000000
--- a/abs/core-testing/xf86-input-spaceorb/PKGBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
-pkgname=xf86-input-spaceorb
-pkgver=1.1.1
-pkgrel=1
-pkgdesc="X.org spaceorb input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4')
-groups=('xorg-input-drivers')
-options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-
-build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-}
-md5sums=('c7fb96281874733480ba86a5a0a3b5af')
diff --git a/abs/core-testing/xf86-input-summa/PKGBUILD b/abs/core-testing/xf86-input-summa/PKGBUILD
deleted file mode 100644
index abbae8a..0000000
--- a/abs/core-testing/xf86-input-summa/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 11181 2008-08-31 14:11:07Z jgc $
-#Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=xf86-input-summa
-pkgver=1.2.0
-pkgrel=1
-pkgdesc="X.org summa input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-options=('!libtool')
-groups=('xorg-input-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('7e17468c0d90dcbbb6202a8242efff4b')
-
-build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-}
diff --git a/abs/core-testing/xf86-input-tek4957/PKGBUILD b/abs/core-testing/xf86-input-tek4957/PKGBUILD
deleted file mode 100644
index afa4498..0000000
--- a/abs/core-testing/xf86-input-tek4957/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 11210 2008-08-31 14:13:46Z jgc $
-#Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=xf86-input-tek4957
-pkgver=1.2.0
-pkgrel=1
-pkgdesc="X.org tek4957 input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-groups=('xorg-input-drivers')
-options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('8103db1ca5c55726e0b58148e4b1fc06')
-
-build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-}
diff --git a/abs/core-testing/xf86-input-ur98/PKGBUILD b/abs/core-testing/xf86-input-ur98/PKGBUILD
deleted file mode 100644
index 6c1ec76..0000000
--- a/abs/core-testing/xf86-input-ur98/PKGBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id: PKGBUILD 20489 2008-12-05 10:09:15Z jgc $
-#Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=xf86-input-ur98
-pkgver=1.1.0
-pkgrel=4
-pkgdesc="X.org ur98 input driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
-groups=('xorg-input-drivers')
-options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('3cf8928411458baaa9e726e51772c550')
-
-build() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR="${pkgdir}" install || return 1
-}
-- 
cgit v0.12


From 04c0a733f7b81e4db2df8bfddad85c6ecf3c3742 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:01:07 -0700
Subject: xf86-video-x:Updated for LinHES 7.

---
 abs/core-testing/xf86-video-apm/LICENSE            |   92 ++
 abs/core-testing/xf86-video-apm/PKGBUILD           |   22 +-
 abs/core-testing/xf86-video-ark/LICENSE            |   48 +
 abs/core-testing/xf86-video-ark/PKGBUILD           |   21 +-
 abs/core-testing/xf86-video-ati/PKGBUILD           |   27 +-
 abs/core-testing/xf86-video-chips/LICENSE          |   89 ++
 abs/core-testing/xf86-video-chips/PKGBUILD         |   26 +-
 abs/core-testing/xf86-video-cirrus/LICENSE         |   22 +
 abs/core-testing/xf86-video-cirrus/PKGBUILD        |   22 +-
 abs/core-testing/xf86-video-dummy/PKGBUILD         |   21 +-
 abs/core-testing/xf86-video-fbdev/PKGBUILD         |   18 +-
 abs/core-testing/xf86-video-geode/PKGBUILD         |   31 +
 abs/core-testing/xf86-video-glint/LICENSE          |   84 ++
 abs/core-testing/xf86-video-glint/PKGBUILD         |   24 +-
 abs/core-testing/xf86-video-i128/LICENSE           |   23 +
 abs/core-testing/xf86-video-i128/PKGBUILD          |   26 +-
 abs/core-testing/xf86-video-i740/LICENSE           |   47 +
 abs/core-testing/xf86-video-i740/PKGBUILD          |   21 +-
 abs/core-testing/xf86-video-intel/LICENSE          |  440 ++++++
 abs/core-testing/xf86-video-intel/PKGBUILD         |   46 +-
 .../intel-2.11-no-pageflipping.patch               |   33 +
 abs/core-testing/xf86-video-mach64/LICENSE         |  209 +++
 abs/core-testing/xf86-video-mach64/PKGBUILD        |   49 +-
 abs/core-testing/xf86-video-mga/PKGBUILD           |   52 +-
 abs/core-testing/xf86-video-neomagic/PKGBUILD      |   19 +-
 abs/core-testing/xf86-video-nouveau/PKGBUILD       |   41 +
 .../xf86-video-nouveau/xf86-video-nouveau.install  |   16 +
 abs/core-testing/xf86-video-nv/PKGBUILD            |   23 +-
 abs/core-testing/xf86-video-openchrome/PKGBUILD    |   32 +-
 .../xf86-video-openchrome/drm_stdint.patch         |   10 +
 .../xf86-video-openchrome/svn-r839.patch           | 1447 ++++++++++++++++++++
 abs/core-testing/xf86-video-r128/LICENSE           |  219 +++
 abs/core-testing/xf86-video-r128/PKGBUILD          |   47 +-
 abs/core-testing/xf86-video-radeonhd/PKGBUILD      |   19 +-
 abs/core-testing/xf86-video-rendition/PKGBUILD     |   29 +-
 abs/core-testing/xf86-video-s3/LICENSE             |   25 +
 abs/core-testing/xf86-video-s3/PKGBUILD            |   22 +-
 abs/core-testing/xf86-video-s3virge/LICENSE        |   25 +
 abs/core-testing/xf86-video-s3virge/PKGBUILD       |   24 +-
 abs/core-testing/xf86-video-savage/LICENSE         |   97 ++
 abs/core-testing/xf86-video-savage/PKGBUILD        |   51 +-
 abs/core-testing/xf86-video-siliconmotion/PKGBUILD |   22 +-
 abs/core-testing/xf86-video-sis/PKGBUILD           |   51 +-
 abs/core-testing/xf86-video-sisusb/PKGBUILD        |   21 +-
 abs/core-testing/xf86-video-tdfx/LICENSE           |  160 +++
 abs/core-testing/xf86-video-tdfx/PKGBUILD          |   47 +-
 abs/core-testing/xf86-video-trident/PKGBUILD       |   52 +-
 abs/core-testing/xf86-video-tseng/PKGBUILD         |   23 +-
 abs/core-testing/xf86-video-unichrome/LICENSE      |   23 +
 abs/core-testing/xf86-video-unichrome/PKGBUILD     |   26 +-
 .../xf86-video-unichrome/drm-include.patch         |   11 +
 abs/core-testing/xf86-video-v4l/LICENSE            |  826 +++++++++++
 abs/core-testing/xf86-video-v4l/PKGBUILD           |   19 +-
 abs/core-testing/xf86-video-vesa/PKGBUILD          |   24 +-
 abs/core-testing/xf86-video-vga/PKGBUILD           |   29 -
 abs/core-testing/xf86-video-vga/pciaccess.patch    |  371 -----
 abs/core-testing/xf86-video-vmware/LICENSE         |   27 +
 abs/core-testing/xf86-video-vmware/PKGBUILD        |   25 +-
 abs/core-testing/xf86-video-vmware/abi2.patch      |   38 +
 abs/core-testing/xf86-video-voodoo/PKGBUILD        |   27 +-
 60 files changed, 4534 insertions(+), 927 deletions(-)
 create mode 100644 abs/core-testing/xf86-video-apm/LICENSE
 create mode 100644 abs/core-testing/xf86-video-ark/LICENSE
 create mode 100644 abs/core-testing/xf86-video-chips/LICENSE
 create mode 100644 abs/core-testing/xf86-video-cirrus/LICENSE
 create mode 100644 abs/core-testing/xf86-video-geode/PKGBUILD
 create mode 100644 abs/core-testing/xf86-video-glint/LICENSE
 create mode 100644 abs/core-testing/xf86-video-i128/LICENSE
 create mode 100644 abs/core-testing/xf86-video-i740/LICENSE
 create mode 100644 abs/core-testing/xf86-video-intel/LICENSE
 create mode 100644 abs/core-testing/xf86-video-intel/intel-2.11-no-pageflipping.patch
 create mode 100644 abs/core-testing/xf86-video-mach64/LICENSE
 create mode 100644 abs/core-testing/xf86-video-nouveau/PKGBUILD
 create mode 100644 abs/core-testing/xf86-video-nouveau/xf86-video-nouveau.install
 create mode 100644 abs/core-testing/xf86-video-openchrome/drm_stdint.patch
 create mode 100644 abs/core-testing/xf86-video-openchrome/svn-r839.patch
 create mode 100644 abs/core-testing/xf86-video-r128/LICENSE
 create mode 100644 abs/core-testing/xf86-video-s3/LICENSE
 create mode 100644 abs/core-testing/xf86-video-s3virge/LICENSE
 create mode 100644 abs/core-testing/xf86-video-savage/LICENSE
 create mode 100644 abs/core-testing/xf86-video-tdfx/LICENSE
 create mode 100644 abs/core-testing/xf86-video-unichrome/LICENSE
 create mode 100644 abs/core-testing/xf86-video-unichrome/drm-include.patch
 create mode 100644 abs/core-testing/xf86-video-v4l/LICENSE
 delete mode 100644 abs/core-testing/xf86-video-vga/PKGBUILD
 delete mode 100644 abs/core-testing/xf86-video-vga/pciaccess.patch
 create mode 100644 abs/core-testing/xf86-video-vmware/LICENSE
 create mode 100644 abs/core-testing/xf86-video-vmware/abi2.patch

diff --git a/abs/core-testing/xf86-video-apm/LICENSE b/abs/core-testing/xf86-video-apm/LICENSE
new file mode 100644
index 0000000..d8b6af7
--- /dev/null
+++ b/abs/core-testing/xf86-video-apm/LICENSE
@@ -0,0 +1,92 @@
+#  Copyright 2005 Adam Jackson.
+#
+#  Permission is hereby granted, free of charge, to any person obtaining a
+#  copy of this software and associated documentation files (the "Software"),
+#  to deal in the Software without restriction, including without limitation
+#  on the rights to use, copy, modify, merge, publish, distribute, sub
+#  license, and/or sell copies of the Software, and to permit persons to whom
+#  the Software is furnished to do so, subject to the following conditions:
+#
+#  The above copyright notice and this permission notice (including the next
+#  paragraph) shall be included in all copies or substantial portions of the
+#  Software.
+#
+#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+#  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+#  FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+#  ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+#  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+#  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#
+# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+# 
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation.
+# 
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+# 
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+# 
+# Except as contained in this notice, the name of the copyright holders shall
+# not be used in advertising or otherwise to promote the sale, use or
+# other dealings in this Software without prior written authorization
+# from the copyright holders.
+# 
+
+/*
+ * Copyright 2007 George Sapountzis
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+Copyright (C) 1994-2003 The XFree86 Project, Inc.  All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
+NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other deal-
+ings in this Software without prior written authorization from the XFree86
+Project.
diff --git a/abs/core-testing/xf86-video-apm/PKGBUILD b/abs/core-testing/xf86-video-apm/PKGBUILD
index 4ed1cff..42b11a4 100644
--- a/abs/core-testing/xf86-video-apm/PKGBUILD
+++ b/abs/core-testing/xf86-video-apm/PKGBUILD
@@ -1,23 +1,27 @@
-# $Id: PKGBUILD 22289 2008-12-25 17:19:55Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 75949 2010-04-04 20:19:39Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-apm
-pkgver=1.2.1
-pkgrel=1
+pkgver=1.2.2
+pkgrel=3
 pkgdesc="X.org Alliance ProMotion video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3')
-conflicts=('xorg-server<1.5.3')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('673c93df004bb857dc89ae9c78ccf907')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+        LICENSE)
+md5sums=('48441a19aaf015570b267f2a8e67d8ab'
+         '2b3c2bcfb649de50646172064bc02b14')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
diff --git a/abs/core-testing/xf86-video-ark/LICENSE b/abs/core-testing/xf86-video-ark/LICENSE
new file mode 100644
index 0000000..aa45556
--- /dev/null
+++ b/abs/core-testing/xf86-video-ark/LICENSE
@@ -0,0 +1,48 @@
+/*
+ *      Copyright 2000  Ani Joshi <ajoshi@unixbox.com>
+ *
+ *      XFree86 4.x driver for ARK Logic chipset
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation and
+ * that the name of Ani Joshi not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission.  Ani Joshi makes no representations
+ * about the suitability of this software for any purpose.  It is provided
+ * "as-is" without express or implied warranty.
+ *
+ * ANI JOSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL ANI JOSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ *
+ *      Based on the 3.3.x driver by:
+ *              Harm Hanemaayer <H.Hanemaayer@inter.nl.net>
+ *
+ */
+
+#  Copyright 2005 Adam Jackson.
+#
+#  Permission is hereby granted, free of charge, to any person obtaining a
+#  copy of this software and associated documentation files (the "Software"),
+#  to deal in the Software without restriction, including without limitation
+#  on the rights to use, copy, modify, merge, publish, distribute, sub
+#  license, and/or sell copies of the Software, and to permit persons to whom
+#  the Software is furnished to do so, subject to the following conditions:
+#
+#  The above copyright notice and this permission notice (including the next
+#  paragraph) shall be included in all copies or substantial portions of the
+#  Software.
+#
+#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+#  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+#  FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+#  ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+#  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+#  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/abs/core-testing/xf86-video-ark/PKGBUILD b/abs/core-testing/xf86-video-ark/PKGBUILD
index 288686c..c9d5ba4 100644
--- a/abs/core-testing/xf86-video-ark/PKGBUILD
+++ b/abs/core-testing/xf86-video-ark/PKGBUILD
@@ -1,23 +1,26 @@
-# $Id: PKGBUILD 22271 2008-12-25 16:54:52Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 75952 2010-04-04 20:22:19Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-ark
-pkgver=0.7.1
-pkgrel=1
+pkgver=0.7.2
+pkgrel=2
 pkgdesc="X.org ark video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3')
-conflicts=('xorg-server<1.5.3')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0')
+conflicts=('xorg-server<1.8.0')
 options=('!libtool')
 groups=('xorg-video-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('be91391f061863617018403cdbd2944f')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 LICENSE)
+md5sums=('4745f5c722b030962cc56eb2443894a0'
+         'cd9575e3812a060f316b98ca7e91bc7a')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
 }
diff --git a/abs/core-testing/xf86-video-ati/PKGBUILD b/abs/core-testing/xf86-video-ati/PKGBUILD
index 1a7f5fe..d4d2114 100644
--- a/abs/core-testing/xf86-video-ati/PKGBUILD
+++ b/abs/core-testing/xf86-video-ati/PKGBUILD
@@ -1,25 +1,28 @@
-# $Id: PKGBUILD 24044 2009-01-12 11:44:28Z giovanni $
+# $Id: PKGBUILD 85331 2010-07-12 17:11:18Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Alexander Baldeck <alexander@archlinux.org>
+
 pkgname=xf86-video-ati
-pkgver=6.10.0
+pkgver=6.13.1
 pkgrel=1
 pkgdesc="X.org ati video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libdrm>=2.3.1' 'libpciaccess' 'ati-dri>=7.2')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'fontsproto'
-	     'glproto>=1.4.9' 'xf86driproto' 'diffutils' 'xorg-util-macros')
-conflicts=('xorg-server<1.5.3')
+license=('custom')
+depends=('libdrm>=2.4.20' 'libpciaccess' 'ati-dri>=7.8.1' 'pixman>=0.18.0')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'fontsproto' 'glproto>=1.4.11' 'xf86driproto' 'diffutils' 'xorg-util-macros' 'xineramaproto' 'mesa>=7.8.1')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
-options=('!libtool')
+options=('!libtool' 'force')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('6445815b12ffa4ccd1aafd43640f466d')
+sha1sums=('74a8e647e3149af0b1eb1baf58ef1b69b44f0228')
+          
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr \
-              --enable-dri || return 1
-  make || return 1
-  make "DESTDIR=${pkgdir}" install || return 1
+  ./configure --prefix=/usr --enable-dri
+  make
+  make "DESTDIR=${pkgdir}" install
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
 }
diff --git a/abs/core-testing/xf86-video-chips/LICENSE b/abs/core-testing/xf86-video-chips/LICENSE
new file mode 100644
index 0000000..312a710
--- /dev/null
+++ b/abs/core-testing/xf86-video-chips/LICENSE
@@ -0,0 +1,89 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright 1993 by Jon Block <block@frc.com>
+Modified by Mike Hollick <hollick@graphics.cis.upenn.edu>
+Modified 1994 by Régis Cridlig <cridlig@dmi.ens.fr>
+
+Major Contributors to XFree86 3.2
+Modified 1995/6 by Nozomi Ytow
+Modified 1996 by Egbert Eich <eich@xfree86.org>
+Modified 1996 by David Bateman <dbateman@club-internet.fr>
+Modified 1996 by Xavier Ducoin <xavier@rd.lectra.fr>
+
+Contributors to XFree86 3.2
+Modified 1995/6 by Ken Raeburn <raeburn@raeburn.org>
+Modified 1996 by Shigehiro Nomura <nomura@sm.sony.co.jp>
+Modified 1996 by Marc de Courville <marc@courville.org>
+Modified 1996 by Adam Sulmicki <adam@cfar.umd.edu>
+Modified 1996 by Jens Maurer <jmaurer@cck.uni-kl.de>
+
+Large parts rewritten for XFree86 4.0
+Modified 1998 by David Bateman <dbateman@club-internet.fr>
+Modified 1998 by Egbert Eich <eich@xfree86.org>
+Modified 1998 by Nozomi Ytow
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of the authors not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  The authors makes no representations
+about the suitability of this software for any purpose.  It is provided
+"as is" without express or implied warranty.
+
+THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 1997
+Digital Equipment Corporation. All rights reserved.
+This software is furnished under license and may be used and copied only in
+accordance with the following terms and conditions.  Subject to these
+conditions, you may download, copy, install, use, modify and distribute
+this software in source and/or binary form. No title or ownership is
+transferred hereby.
+1) Any source code used, modified or distributed must reproduce and retain
+this copyright notice and list of conditions as they appear in the
+source file.
+
+2) No right is granted to use any trade name, trademark, or logo of Digital
+Equipment Corporation. Neither the "Digital Equipment Corporation" name
+nor any trademark or logo of Digital Equipment Corporation may be used
+to endorse or promote products derived from this software without the
+prior written permission of Digital Equipment Corporation.
+
+3) This software is provided "AS-IS" and any express or implied warranties,
+including but not limited to, any implied warranties of merchantability,
+fitness for a particular purpose, or non-infringement are disclaimed. In
+no event shall DIGITAL be liable for any damages whatsoever, and in
+particular, DIGITAL shall not be liable for special, indirect,
+consequential, or incidental damages or damages for lost profits, loss
+of revenue or loss of use, whether such damages arise in contract,
+negligence, tort, under statute, in equity, at law or otherwise, even if
+advised of the possibility of such damage.
+
+Copyright 1994  The XFree86 Project
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+DAVID WEXELBLAT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/abs/core-testing/xf86-video-chips/PKGBUILD b/abs/core-testing/xf86-video-chips/PKGBUILD
index f63366d..242dcf3 100644
--- a/abs/core-testing/xf86-video-chips/PKGBUILD
+++ b/abs/core-testing/xf86-video-chips/PKGBUILD
@@ -1,23 +1,29 @@
-# $Id: PKGBUILD 22287 2008-12-25 17:17:00Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 75943 2010-04-04 20:08:36Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
 pkgname=xf86-video-chips
-pkgver=1.2.1
-pkgrel=1
+pkgver=1.2.2
+pkgrel=3
 pkgdesc="X.org Chips and Technologies video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=(glibc)
-makedepends=('pkgconfig' 'xorg-server>=1.5.3')
-conflicts=('xorg-server<1.5.3')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('2f2643fca6335f18024bffa6c4e0c12f')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 LICENSE)
+sha1sums=('3990bc1cf4e8963164b3a38b15f92bc87da9278c'
+          '89ef876d4e3913775190f39902da6421d808eed2')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
+
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+
 }
diff --git a/abs/core-testing/xf86-video-cirrus/LICENSE b/abs/core-testing/xf86-video-cirrus/LICENSE
new file mode 100644
index 0000000..bb283cf
--- /dev/null
+++ b/abs/core-testing/xf86-video-cirrus/LICENSE
@@ -0,0 +1,22 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright 2000 by Egbert Eich
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Alan Hourihane not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Alan Hourihane makes no representations
+about the suitability of this software for any purpose.  It is provided
+"as is" without express or implied warranty.
+
+EGBERT EICH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/abs/core-testing/xf86-video-cirrus/PKGBUILD b/abs/core-testing/xf86-video-cirrus/PKGBUILD
index 4527182..df16e93 100644
--- a/abs/core-testing/xf86-video-cirrus/PKGBUILD
+++ b/abs/core-testing/xf86-video-cirrus/PKGBUILD
@@ -1,23 +1,27 @@
-# $Id: PKGBUILD 11420 2008-08-31 15:22:15Z jgc $
+# $Id: PKGBUILD 75940 2010-04-04 20:06:47Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-cirrus
-pkgver=1.2.1
-pkgrel=2
+pkgver=1.3.2
+pkgrel=3
 pkgdesc="X.org Cirrus Logic video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-conflicts=('xorg-server<1.4.99.906')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('bc28fdedaee9059180e2534f9dbcd2f6')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+        LICENSE)
+md5sums=('8195d03ed0be0975c03441e66a9f53b3'
+         'b9b570ac5c03f1fbe3e0cee5fe884b82')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
diff --git a/abs/core-testing/xf86-video-dummy/PKGBUILD b/abs/core-testing/xf86-video-dummy/PKGBUILD
index b060c9c..66a6369 100644
--- a/abs/core-testing/xf86-video-dummy/PKGBUILD
+++ b/abs/core-testing/xf86-video-dummy/PKGBUILD
@@ -1,23 +1,26 @@
-# $Id: PKGBUILD 11419 2008-08-31 15:22:13Z jgc $
+# $Id: PKGBUILD 85378 2010-07-12 17:43:44Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-dummy
-pkgver=0.3.0
+pkgver=0.3.4
 pkgrel=1
 pkgdesc="X.org dummy video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-conflicts=('xorg-server<1.4.99.906')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'xf86dgaproto')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('3d96297556846bee02a74166ffb5d052')
+sha1sums=('876ed7165ea2821bbddd73232a1ce0b79c1f14ff')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr
+  make
+  make DESTDIR="${pkgdir}" install
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
 }
diff --git a/abs/core-testing/xf86-video-fbdev/PKGBUILD b/abs/core-testing/xf86-video-fbdev/PKGBUILD
index 05bcbca..8fd3a88 100644
--- a/abs/core-testing/xf86-video-fbdev/PKGBUILD
+++ b/abs/core-testing/xf86-video-fbdev/PKGBUILD
@@ -1,26 +1,26 @@
-# $Id: PKGBUILD 11425 2008-08-31 15:24:08Z jgc $
+# $Id: PKGBUILD 75934 2010-04-04 20:02:12Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-fbdev
-pkgver=0.4.0
+pkgver=0.4.2
 pkgrel=1
 pkgdesc="X.org framebuffer video driver"
 arch=(i686 x86_64)
 license=('custom')
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-conflicts=('xorg-server<1.4.99.906')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('6572b39fec77b8e6de1c858a93992924')
+sha1sums=('c8562f997d56c9fec50df6ca9892f39f43ff4c2c')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
-  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
diff --git a/abs/core-testing/xf86-video-geode/PKGBUILD b/abs/core-testing/xf86-video-geode/PKGBUILD
new file mode 100644
index 0000000..efcca1c
--- /dev/null
+++ b/abs/core-testing/xf86-video-geode/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 55526 2009-10-13 18:33:58Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-geode
+pkgver=2.11.6
+pkgrel=1
+pkgdesc="X.org AMD/Geode LX & NX video driver"
+# there is no 64bit geode yet! (does not build either, i386 ASM)
+arch=(i686)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server>=1.7.0' 'xf86dgaproto')
+conflicts=('xorg-server<1.7.0')
+options=('!libtool')
+conflicts=('xf86-video-amd')
+replaces=('xf86-video-amd')
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('3ff0dfb4b3bd8872c6efb70371cb6b98')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr \
+      --enable-visibility || return 1
+  make || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/abs/core-testing/xf86-video-glint/LICENSE b/abs/core-testing/xf86-video-glint/LICENSE
new file mode 100644
index 0000000..b4ca2d4
--- /dev/null
+++ b/abs/core-testing/xf86-video-glint/LICENSE
@@ -0,0 +1,84 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright 1998-2001 by Alan Hourihane, Wigan, England.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Alan Hourihane not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Alan Hourihane makes no representations
+about the suitability of this software for any purpose.  It is provided
+"as is" without express or implied warranty.
+
+ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Copyright (C) 1998-2000 Michael H. Schimek <m.schimek@netway.at>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+
+Copyright 2000-2001 by Sven Luther <luther@dpt-info.u-strasbg.fr>.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Sven Luther not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Sven Luther makes no representations
+about the suitability of this software for any purpose. It is provided
+"as is" without express or implied warranty.
+
+SVEN LUTHER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL SVEN LUTHER BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/abs/core-testing/xf86-video-glint/PKGBUILD b/abs/core-testing/xf86-video-glint/PKGBUILD
index f52d528..46e6f4d 100644
--- a/abs/core-testing/xf86-video-glint/PKGBUILD
+++ b/abs/core-testing/xf86-video-glint/PKGBUILD
@@ -1,23 +1,27 @@
-# $Id: PKGBUILD 22285 2008-12-25 17:13:14Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 75931 2010-04-04 20:00:07Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-glint
-pkgver=1.2.2
-pkgrel=1
+pkgver=1.2.4
+pkgrel=3
 pkgdesc="X.org GLINT/Permedia video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3')
-conflicts=('xorg-server<1.5.3')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'xf86dgaproto')
+conflicts=('xorg-server<1.8.0')
 options=('!libtool')
 groups=('xorg-video-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('4295a46a75fa98470c6dfb0e1a4f7e9f')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+        LICENSE)
+md5sums=('960df34e129faa411e58c0d6b56d79a3'
+         '996937b1e1d13f721b0e467fb8824780')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr || return 1
+  ./configure --prefix=/usr --disable-dri || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
diff --git a/abs/core-testing/xf86-video-i128/LICENSE b/abs/core-testing/xf86-video-i128/LICENSE
new file mode 100644
index 0000000..485a648
--- /dev/null
+++ b/abs/core-testing/xf86-video-i128/LICENSE
@@ -0,0 +1,23 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright 1995-2000 by Robin Cutshaw <robin@XFree86.Org>
+Copyright 1998 by Number Nine Visual Technology, Inc.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Robin Cutshaw not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Robin Cutshaw and Number Nine make no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+ROBIN CUTSHAW AND NUMBER NINE DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL ROBIN CUTSHAW OR NUMBER NINE BE LIABLE FOR
+ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/abs/core-testing/xf86-video-i128/PKGBUILD b/abs/core-testing/xf86-video-i128/PKGBUILD
index 2c98984..a0d40f8 100644
--- a/abs/core-testing/xf86-video-i128/PKGBUILD
+++ b/abs/core-testing/xf86-video-i128/PKGBUILD
@@ -1,23 +1,27 @@
-# $Id: PKGBUILD 11431 2008-08-31 15:26:32Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 75928 2010-04-04 19:57:09Z jgc $
+# Maintainer:Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-i128
-pkgver=1.3.0
-pkgrel=1
+pkgver=1.3.3
+pkgrel=3
 pkgdesc="X.org Number 9 I128 video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-conflicts=('xorg-server<1.4.99.906')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('aff4922d2f02bad7e0d8649358edbcee')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+        LICENSE)
+md5sums=('a597e8efeec6ab8bc6ba6d87fceb2dba'
+         '5254db2a1bea032ff22e86446d8e573a')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
diff --git a/abs/core-testing/xf86-video-i740/LICENSE b/abs/core-testing/xf86-video-i740/LICENSE
new file mode 100644
index 0000000..1aace06
--- /dev/null
+++ b/abs/core-testing/xf86-video-i740/LICENSE
@@ -0,0 +1,47 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright 2001 by Patrick LERDA
+Portions Copyright by Stephen Blackheath
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Patrick LERDA not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Patrick LERDA makes no representations
+about the suitability of this software for any purpose.  It is provided
+"as is" without express or implied warranty.
+
+PATRICK LERDA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL PATRICK LERDA BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/abs/core-testing/xf86-video-i740/PKGBUILD b/abs/core-testing/xf86-video-i740/PKGBUILD
index 3e0fd57..b3af79f 100644
--- a/abs/core-testing/xf86-video-i740/PKGBUILD
+++ b/abs/core-testing/xf86-video-i740/PKGBUILD
@@ -1,22 +1,27 @@
-# $Id: PKGBUILD 11440 2008-08-31 15:37:53Z jgc $
+# $Id: PKGBUILD 75925 2010-04-04 19:55:01Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-i740
-pkgver=1.2.0
-pkgrel=1
+pkgver=1.3.2
+pkgrel=3
 pkgdesc="X.org Intel i740 video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('d0e5a805c546b29b1dd3b55a68d16dc4')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+        LICENSE)
+md5sums=('4ac1318788f62159965f15131c869e7a'
+         '23a6d421e7529393969df8b65e88d607')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
diff --git a/abs/core-testing/xf86-video-intel/LICENSE b/abs/core-testing/xf86-video-intel/LICENSE
new file mode 100644
index 0000000..a4c83af
--- /dev/null
+++ b/abs/core-testing/xf86-video-intel/LICENSE
@@ -0,0 +1,440 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+This copyright file is based on xf86-video-intel 2.3.1.
+
+The files under src/modes/ and src/parser/ are stolen from the xorg-server
+source.
+
+The authors of this core are, see below for copyright declarations.
+
+* Alan Hourihane <alanh@fairlite.demon.co.uk> / <alanh@tungstengraphics.com>
+* Bob Paauwe  <bob.j.paauwe@intel.com>
+* Dave Airlie <airlied@linux.ie>
+* Dave Mueller <dave.mueller@gmx.ch>
+* David Dawes <dawes@xfree86.org>
+* Eric Anholt <eric@anholt.net>
+* Jens Owen <jens@tungstengraphics.com>
+* Jesse Barnes <jbarnes@virtuousgeek.org>
+* Jonathan Bian <jonathan.bian@intel.com>
+* Keith Packard <keithp@keithp.com>
+* Keith Whitwell <keith@tungstengraphics.com>
+* Kevin E. Martin <kevin@precisioninsight.com> / <martin@valinux.com>
+* Kristian Høgsberg <krh@redhat.com>
+* Luc Verhaegen
+* Matt Sottek <matthew.j.sottek@intel.com>
+* Rickard E. (Rik) Faith <faith@valinux.com>
+* Thomas Hellstrom
+* Wang Zhenyu <zhenyu.z.wang@intel.com>
+* Xiang Haihao <haihao.xiang@intel.com>
+
+====
+
+Most of the code is covered by the MIT/X11 license:
+
+-
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+ 
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+ 
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+-
+
+The copyright holders are:
+
+* Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas:
+src/i810_accel.c
+src/i810_wmark.c
+src/i810_reg.h
+src/i810_driver.c
+src/i810_memory.c
+src/i810_io.c
+src/i810_cursor.c
+src/i830_accel.c
+src/i830_xaa.c
+src/i830_exa.c
+
+* Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+* Copyright 2000 VA Linux Systems, Inc.
+src/xvmc/xf86dri.h
+src/xvmc/xf86dri.c
+
+* Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+* Copyright 2002 David Dawes
+src/i830_memory.c
+src/i830.h
+src/i830_ring.h
+src/i830_cursor.c
+src/i810_ring.h
+src/i810.h
+src/common.h
+src/xvmc/xf86dristr.h
+
+* Copyright 2000 Intel Corporation.  All Rights Reserved:
+src/i810_hwmc.c
+src/i830_video.h
+src/i810_video.c
+src/i830_video.c
+
+* Copyright 2001 Intel Corporation.  All Rights Reserved.
+src/xvmc/I810XvMC.h
+src/xvmc/I810XvMC.c
+
+* Copyright 2001 VA Linux Systems Inc., Fremont, California.
+* Copyright 2002 by David Dawes
+src/i830_dri.c
+src/i830_driver.c
+
+* Copyright 2001 VA Linux Systems Inc., Fremont, California.
+* Copyright 2002 Tungsten Graphics Inc., Cedar Park, Texas.
+src/i830_common.h
+
+* Copyright 2002 David Dawes
+* Copyright 2006 Intel Corporation
+src/i830_modes.c
+
+* Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas.
+src/i810_common.h
+
+* Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
+src/i830_reg.h  
+src/i830_3d.c
+src/i915_3d.c
+src/i915_reg.h
+src/xvmc/intel_batchbuffer.c
+
+* Copyright 2005 Tungsten Graphics, Inc., Cedar Park, Texas.
+src/brw_structs.h
+src/brw_defines.h
+
+* Copyright 2005 Red Hat, Inc.
+src/i830_io.c
+
+* Copyright 2005 Adam Jackson:
+src/Makefile.am
+
+* Copyright (c) 2005 Jesse Barnes
+src/i830_exa.c
+
+* Copyright 2005 Thomas Hellstrom. All rights reserved.
+src/xvmc/driDrawable.c
+src/xvmc/driDrawable.h
+
+* Copyright 2005-2006 Luc Verhaegen.
+src/modes/xf86cvt.c
+
+* Copyright 2006 Luc Verhaegen.
+src/modes/xf86EdidModes.c
+
+* Copyright 2006 Dave Airlie <airlied@linux.ie>
+src/i830_i2c.c
+src/i830_sdvo.c
+src/i830_dvo.c
+src/sil164/sil164.c
+src/sil164/sil164.h
+src/sil164/sil164_reg.h
+src/ch7xxx/ch7xxx_reg.h
+src/ch7xxx/ch7xxx.c
+src/ch7xxx/ch7xxx.h
+
+* Copyright 2006 Intel Corporation:
+src/xvmc/i915_xvmc.c
+src/xvmc/i915_xvmc.h
+src/xvmc/i915_structs.h
+src/i915_hwmc.h
+src/i915_hwmc.c
+src/i915_video.c
+src/i915_render.c
+src/i915_3d.h
+src/exa_wm.g4i
+src/exa_wm_src_sample_argb.g4a
+src/exa_wm_mask_affine.g4a
+src/exa_wm_projective.g4i
+src/exa_sf.g4a
+src/exa_wm_affine.g4i
+src/exa_wm_mask_sample_a.g4a
+src/exa_sf_mask.g4a
+src/exa_wm_write.g4a
+src/exa_wm_mask_sample_argb.g4a
+src/exa_wm_ca.g4a
+src/exa_wm_src_affine.g4a
+src/exa_wm_xy.g4a
+src/exa_wm_noca.g4a
+src/exa_wm_ca_srcalpha.g4a
+src/exa_wm_mask_projective.g4a
+src/exa_wm_src_sample_a.g4a
+src/exa_wm_src_projective.g4a
+src/i830_lvds.c
+src/i830_sdvo.h
+src/i830_bios.c
+src/i830_bios.h
+src/i830_debug.c
+src/i830_crt.c
+src/i830_display.c
+src/i830_sdvo_regs.h
+src/i830_render.c
+src/i830_tv.c
+src/i830_display.h
+src/i830_debug.h
+src/packed_yuv_sf.g4a
+src/packed_yuv_wm.g4a
+src/i965_video.c
+src/i965_render.c
+src/ch7017/ch7017.c
+src/ch7017/ch7017_reg.h
+src/sil164/Makefile.am
+src/modes/xf86Modes.h
+src/ivch/ivch.c
+src/ivch/ivch_reg.h
+src/ivch/ivch_module.c
+
+* Copyright 2007 Intel Corporation:
+src/bios_reader/bios_dumper.c 
+src/bios_reader/bios_reader.c
+src/i830_hwmc.h
+src/i830_hwmc.c
+src/i830_quirks.c
+src/xvmc/intel_xvmc.c
+src/xvmc/intel_xvmc.h
+src/reg_dumper/idle.c
+src/reg_dumper/stepping.c
+src/reg_dumper/main.c
+src/reg_dumper/reg_dumper.h
+
+* Copyright 2007 Dave Mueller
+src/tfp410/tfp410.c
+src/tfp410/tfp410.h
+src/tfp410/tfp410_reg.h
+
+====
+
+src/i810_dga.c is  Copyright 2000 by Alan Hourihane, Sychdyn, North Wales, UK
+and covered by the following license:
+
+-
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Alan Hourihane not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission.  Alan Hourihane makes no representations
+ * about the suitability of this software for any purpose.  It is provided
+ * "as is" without express or implied warranty.
+ *
+ * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+-
+
+====
+A few files a covered by the following license:
+
+-
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation, and
+ * that the name of the copyright holders not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission.  The copyright holders make no representations
+ * about the suitability of this software for any purpose.  It is provided "as
+ * is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+-
+
+The copyright holders are:
+
+* Copyright 2002 Keith Packard, member of The XFree86 Project, Inc.
+src/modes/xf86RandR12.c
+
+* Copyright 2006 Keith Packard
+src/modes/xf86Crtc.c
+src/modes/xf86RandR12.h
+src/modes/xf86Rename.h
+src/local_xf86Rename.h
+src/modes/xf86DiDGA.c
+src/modes/xf86Rotate.c
+src/modes/xf86Crtc.h
+
+* Copyright 2006 Eric Anholt
+src/i2c_vid.h
+
+* Copyright 2007 Keith Packard
+src/modes/xf86Cursors.c
+
+====
+
+src/parser/xf86Parser.h and src/parser/xf86Optrec.h  are covered by a license
+similar to the MIT/X11 license, but with an additional advertising clause:
+
+* Copyright (c) 1997  Metro Link Incorporated
+* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
+* Copyright (c) 1997-2001 by The XFree86 Project, Inc.
+
+- 
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"), 
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ * 
+ * Except as contained in this notice, the name of the Metro Link shall not be
+ * used in advertising or otherwise to promote the sale, use or other dealings
+ * in this Software without prior written authorization from Metro Link.
+-
+
+====
+
+src/modes/xf86Modes.c is covered by a license similar to the MIT/X11 license,
+but with an additional advertising clause:
+
+-
+ * Copyright (c) 1997-2003 by The XFree86 Project, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name of the copyright holder(s)
+ * and author(s) shall not be used in advertising or otherwise to promote
+ * the sale, use or other dealings in this Software without prior written
+ * authorization from the copyright holder(s) and author(s).
+ */
+-
+
+====
+
+src/reg_dumper/xprintf.c is covered by a license similar to the MIT/X11 license,
+but with an additional advertising clause:
+
+-
+ * Copyright (c) 2004 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+-
+
+====
+
+All files generated by the buildsystem toolchain (e.g. autogen.sh) remain
+under the copyright of their authors from the respective tools.
+
+====
+
+
+A couple of files are without explicit copyright:
+
+Some tiny Makefile.am:
+src/reg_dumper/Makefile.am
+src/xvmc/Makefile.am
+src/ch7017/Makefile.am
+src/tfp410/Makefile.am
+src/ivch/Makefile.am
+src/ch7xxx/Makefile.am
+
+
+src/exa_wm_write.g4b
+src/exa_sf.g4b
+src/exa_wm_xy.g4b
+src/packed_yuv_sf.g4b
+src/exa_wm_src_sample_argb.g4b
+src/exa_sf_mask.g4b
+src/exa_wm_src_sample_a.g4b
+src/exa_wm_src_affine.g4b
+src/packed_yuv_wm.g4b
+src/exa_wm_mask_sample_argb.g4b
+src/exa_wm_ca.g4b
+src/exa_wm_mask_affine.g4b
+src/exa_wm_ca_srcalpha.g4b
+src/exa_wm_nomask.g4a
+src/exa_wm_mask_projective.g4b
+src/exa_wm_noca.g4b
+src/exa_wm_mask_sample_a.g4b
+src/exa_wm_src_projective.g4b
+
+
+src/tfp410/tfp410_module.c
+src/ch7xxx/ch7xxx_module.c
+src/ch7017/ch7017_module.c
+src/xvmc/i915_program.h
+src/xvmc/intel_batchbuffer.h
+src/scripts/clock-graph.5c
+src/scripts/clock.5c
+src/scripts/fix.5c
+src/scripts/tv.5c
+src/sil164/sil164_module.c
+src/i810_dri.h
+src/i810_dri.c
+src/i830_dri.h
diff --git a/abs/core-testing/xf86-video-intel/PKGBUILD b/abs/core-testing/xf86-video-intel/PKGBUILD
index 3530b90..f417cdd 100644
--- a/abs/core-testing/xf86-video-intel/PKGBUILD
+++ b/abs/core-testing/xf86-video-intel/PKGBUILD
@@ -1,43 +1,31 @@
-# $Id: PKGBUILD 19083 2008-11-14 21:09:00Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# $Id: PKGBUILD 85324 2010-07-12 17:03:09Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-intel
-pkgver=2.4.3
+pkgver=2.12.0
 pkgrel=1
 pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('intel-dri>=7.2' 'libpciaccess>=0.10.5' 'libdrm>=2.3.1')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'xf86driproto>=2.0.4' 'glproto>=1.4.9' 'mesa>=7.2' 'libdrm=2.3.1')
-conflicts=('xorg-server<1.5.3' 'xf86-video-i810')
-replaces=('xf86-video-i810')
-options=('!libtool' 'force')
+license=('custom')
+depends=('intel-dri>=7.8' 'libpciaccess>=0.10.9' 'libdrm>=2.4.20' 'libxvmc>=1.0.5' 'libxcb>=1.5' 'xcb-util>=0.3.6')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'xf86driproto>=2.1.0' 'glproto>=1.4.11' 'mesa>=7.8' 'xineramaproto>=1.2' 'inputproto')
+conflicts=('xorg-server<1.8.0' 'xf86-video-i810' 'xf86-video-intel-legacy')
+options=('!libtool')
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-	20_thinkpad_g40_quirk.patch
-	21_quirk_lenovo.patch
-	23_quirks_studiohybrid_eeepc_and_w251u.patch
-	25_quirk_nc6110.patch
-	26_i830-use-lfp-data-ptrs.patch
-	27_disable_fbc_on_965.patch)
-md5sums=('a664819288b98a37f77ab6ae1e14c9d9'
-         '68a362a168ffa4f37d9f722f43855468'
-         '2d617364ac2e47ca366901d0b849b1a1'
-         '3d0f8e593e8eac3000154feb6b0f45b8'
-         '3deb800906e6845e8576d4e9d0f22b12'
-         'cb7ee7a68858c038020e0cd991143d8e'
-         'd215e428585c6e55aefd9f525ebfbe7b')
+        intel-2.11-no-pageflipping.patch
+        LICENSE)
+md5sums=('8314def847dcdc4f2970e2d193054f96'
+         'dfc9f59fe048b412726c87fe3d45f4f5'
+         'b924480931774dec14515e270db4924d')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  patch -Np1 -i "${srcdir}/20_thinkpad_g40_quirk.patch" || return 1
-  patch -Np1 -i "${srcdir}/21_quirk_lenovo.patch" || return 1
-  patch -Np1 -i "${srcdir}/23_quirks_studiohybrid_eeepc_and_w251u.patch" || return 1
-  patch -Np1 -i "${srcdir}/25_quirk_nc6110.patch" || return 1
-  patch -Np1 -i "${srcdir}/26_i830-use-lfp-data-ptrs.patch" || return 1
-  patch -Np1 -i "${srcdir}/27_disable_fbc_on_965.patch" || return 1
-  ./configure --prefix=/usr \
-              --enable-dri || return 1
+  patch -Np1 -i "${srcdir}/intel-2.11-no-pageflipping.patch" || return 1
+  ./configure --prefix=/usr --enable-dri || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
diff --git a/abs/core-testing/xf86-video-intel/intel-2.11-no-pageflipping.patch b/abs/core-testing/xf86-video-intel/intel-2.11-no-pageflipping.patch
new file mode 100644
index 0000000..39500e2
--- /dev/null
+++ b/abs/core-testing/xf86-video-intel/intel-2.11-no-pageflipping.patch
@@ -0,0 +1,33 @@
+diff -up xf86-video-intel-2.11.0/src/drmmode_display.c.no-flip xf86-video-intel-2.11.0/src/drmmode_display.c
+--- xf86-video-intel-2.11.0/src/drmmode_display.c.no-flip	2010-05-03 15:30:19.000000000 -0400
++++ xf86-video-intel-2.11.0/src/drmmode_display.c	2010-05-03 15:30:59.000000000 -0400
+@@ -1504,10 +1504,15 @@ Bool drmmode_pre_init(ScrnInfoPtr scrn, 
+ 	gp.value = &has_flipping;
+ 	(void)drmCommandWriteRead(intel->drmSubFD, DRM_I915_GETPARAM, &gp,
+ 				  sizeof(gp));
++
++        xf86DrvMsg(scrn->scrnIndex, X_INFO,
++                   "Pageflipping %s in kernel, %s disabled in X\n",
++                   has_flipping ? "enabled" : "disabled",
++                   has_flipping ? "but" : "and");
+ 	if (has_flipping) {
+ 		xf86DrvMsg(scrn->scrnIndex, X_INFO,
+-			   "Kernel page flipping support detected, enabling\n");
+-		intel->use_pageflipping = TRUE;
++			   "Don't panic: https://bugzilla.redhat.com/588421\n");
++		intel->use_pageflipping = FALSE;
+ 		drmmode->flip_count = 0;
+ 		drmmode->event_context.version = DRM_EVENT_CONTEXT_VERSION;
+ 		drmmode->event_context.vblank_handler = drmmode_vblank_handler;
+diff -up xf86-video-intel-2.11.0/src/i830_dri.c.no-flip xf86-video-intel-2.11.0/src/i830_dri.c
+--- xf86-video-intel-2.11.0/src/i830_dri.c.no-flip	2010-03-29 14:23:02.000000000 -0400
++++ xf86-video-intel-2.11.0/src/i830_dri.c	2010-05-03 15:30:19.000000000 -0400
+@@ -1013,7 +1013,7 @@ Bool I830DRI2ScreenInit(ScreenPtr screen
+ 
+ 	info.CopyRegion = I830DRI2CopyRegion;
+ #if DRI2INFOREC_VERSION >= 4
+-	if (intel->use_pageflipping) {
++	if (intel->use_pageflipping || 1) {
+ 	    info.version = 4;
+ 	    info.ScheduleSwap = I830DRI2ScheduleSwap;
+ 	    info.GetMSC = I830DRI2GetMSC;
diff --git a/abs/core-testing/xf86-video-mach64/LICENSE b/abs/core-testing/xf86-video-mach64/LICENSE
new file mode 100644
index 0000000..1aa2df6
--- /dev/null
+++ b/abs/core-testing/xf86-video-mach64/LICENSE
@@ -0,0 +1,209 @@
+Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and
+that the name of Marc Aurele La France not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission.  Marc Aurele La France makes no representations
+about the suitability of this software for any purpose.  It is provided
+"as-is" without express or implied warranty.
+
+MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO
+EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 2000 Gareth Hughes
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+GARETH HUGHES BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+(c) 2004 Adam Jackson.  Standard MIT license applies.
+
+Copyright 1999-2000 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to
+deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario,
+Precision Insight, Inc., Cedar Park, Texas, and
+VA Linux Systems Inc., Fremont, California.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation on the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT.  IN NO EVENT SHALL ATI, PRECISION INSIGHT, VA LINUX
+SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Copyright 2003 Alex Deucher.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation on the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT.  IN NO EVENT SHALL ALEX DEUCHER, OR ANY OTHER
+CONTRIBUTORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+/*
+ * Copyright 2000 Gareth Hughes
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * GARETH HUGHES BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Authors:
+ *	Gareth Hughes <gareth@valinux.com>
+ *	Leif Delgass <ldelgass@retinalburn.net>
+ *	Jos� Fonseca <j_r_fonseca@yahoo.co.uk>
+ */
+
+/*
+ * Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc.,
+ *                                                Cedar Park, Texas.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * on the rights to use, copy, modify, merge, publish, distribute, sub
+ * license, and/or sell copies of the Software, and to permit persons to whom
+ * the Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ * ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+ * USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Authors:
+ *   Gareth Hughes <gareth@valinux.com>
+ *   Leif Delgass <ldelgass@retinalburn.net>
+ *   Jose Fonseca <j_r_fonseca@yahoo.co.uk>
+ */
+
+/*
+ * Mesa 3-D graphics library
+ * Version:  3.5
+ *
+ * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Keith Whitwell <keithw@valinux.com>
+ *
+ * Modified for mach64 by:
+ *    Leif Delgass <ldelgass@retinalburn.net>
+ *    Jos� Fonseca <j_r_fonseca@yahoo.co.uk>
+ */
diff --git a/abs/core-testing/xf86-video-mach64/PKGBUILD b/abs/core-testing/xf86-video-mach64/PKGBUILD
index ed91461..64fe5d9 100644
--- a/abs/core-testing/xf86-video-mach64/PKGBUILD
+++ b/abs/core-testing/xf86-video-mach64/PKGBUILD
@@ -1,48 +1,27 @@
-# $Id: PKGBUILD 13016 2008-09-25 18:54:26Z jgc $
+# $Id: PKGBUILD 75922 2010-04-04 19:52:27Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-mach64
-pkgver=6.8.0
-pkgrel=2
-_mesaver="7.2"
+pkgver=6.8.2
+pkgrel=3
 pkgdesc="X.org mach64 video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libdrm>=2.3.1' 'libgl>=7.2')
-makedepends=('pkgconfig' 'xorg-server>=1.5.1' 'mesa>=7.2' 'dri2proto'
-	     'glproto>=1.4.9' 'xf86driproto' 'diffutils')
-conflicts=('xorg-server<1.5.1')
+license=('custom')
+depends=('glibc' 'mach64-dri>=7.8')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'xineramaproto' 'xf86driproto' 'mesa>=7.8' 'glproto')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-       http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2
-       mesa-7.1-link-shared.patch)
-md5sums=('6081b8fa50c689d51f85c2fbaf93867e'
-         '04d379292e023df0b0266825cb0dbde5'
-         'f0baa948d9810f268413111ee439d24b')
+       LICENSE)
+md5sums=('6c0522b2b72a0a47c48d718443616651'
+         '901824dae8053c63ef9d313cdaa129a0')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr \
-              --enable-dri || return 1
+      --enable-dri || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-
-  cd ${srcdir}/Mesa-${_mesaver}
-  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch || return 1
-  ./configure --prefix=/usr \
-    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
-    --with-dri-drivers=mach64 \
-    --enable-glx-tls \
-    --disable-ttm-api \
-    --with-driver=dri \
-    --enable-xcb \
-    --disable-glu \
-    --disable-glut \
-    --disable-glw || return 1
-  make || return 1
-  cd src/mesa/drivers/dri || return 1
-  make DESTDIR=${pkgdir} install || return 1
-  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so
-  rm -rf ${pkgdir}/usr/include
-  rm -rf ${pkgdir}/usr/lib/pkgconfig
+  make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
diff --git a/abs/core-testing/xf86-video-mga/PKGBUILD b/abs/core-testing/xf86-video-mga/PKGBUILD
index 5681868..ebe0c71 100644
--- a/abs/core-testing/xf86-video-mga/PKGBUILD
+++ b/abs/core-testing/xf86-video-mga/PKGBUILD
@@ -1,48 +1,26 @@
-# $Id: PKGBUILD 13014 2008-09-25 18:53:21Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 80849 2010-05-22 15:00:10Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-mga
-pkgver=1.4.9
-pkgrel=3
+pkgver=1.4.12
+pkgrel=1
 pkgdesc="X.org mga video driver"
-_mesaver="7.2"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libgl>=7.2' 'expat>=2.0.1')
-makedepends=('pkgconfig' 'xorg-server>=1.5.1' 'imake' 'mesa>=7.2'
-             'xf86driproto' 'glproto>=1.4.9')
-conflicts=('xorg-server<1.5.1')
+license=('custom')
+depends=('glibc' 'mga-dri>=7.8')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' "mesa>=7.8" 'xf86driproto' 'glproto>=1.4.11')
+conflicts=('xorg-server<1.8.0')
 options=('!libtool' 'force')
 groups=('xorg-video-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2
-	mesa-7.1-link-shared.patch)
-md5sums=('11066b84b949cd04300ec819c9c51532'
-         '04d379292e023df0b0266825cb0dbde5'
-         'f0baa948d9810f268413111ee439d24b')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('ff84e9035a375dde76d789f5bbc4efbbca8a33fc')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --enable-dri || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-  cd ${srcdir}/Mesa-${_mesaver}
-  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch || return 1
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr \
-    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
-    --with-dri-drivers=mga \
-    --enable-glx-tls \
-    --disable-ttm-api \
-    --with-driver=dri \
-    --enable-xcb \
-    --disable-glu \
-    --disable-glut \
-    --disable-glw || return 1
+      --enable-dri || return 1
   make || return 1
-  cd src/mesa/drivers/dri || return 1
-  make DESTDIR=${pkgdir} install || return 1
-  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so
-  rm -rf ${pkgdir}/usr/include
-  rm -rf ${pkgdir}/usr/lib/pkgconfig
+  make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
diff --git a/abs/core-testing/xf86-video-neomagic/PKGBUILD b/abs/core-testing/xf86-video-neomagic/PKGBUILD
index 7d47807..c4c5bf6 100644
--- a/abs/core-testing/xf86-video-neomagic/PKGBUILD
+++ b/abs/core-testing/xf86-video-neomagic/PKGBUILD
@@ -1,23 +1,26 @@
-# $Id: PKGBUILD 22283 2008-12-25 17:06:50Z jgc $
+# $Id: PKGBUILD 85347 2010-07-12 17:26:15Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-neomagic
-pkgver=1.2.2
+pkgver=1.2.5
 pkgrel=1
 pkgdesc="X.org neomagic video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3')
-conflicts=('xorg-server<1.5.3')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'xf86dgaproto')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('896864e1a2d7333c16333a24eac17d00')
+sha1sums=('02c994e2eae191b50a8cd556e5b52d82725073b3')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR="${pkgdir}" install || return 1
+  ./configure --prefix=/usr
+  make
+  make DESTDIR="${pkgdir}" install
+  install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
 }
diff --git a/abs/core-testing/xf86-video-nouveau/PKGBUILD b/abs/core-testing/xf86-video-nouveau/PKGBUILD
new file mode 100644
index 0000000..998d823
--- /dev/null
+++ b/abs/core-testing/xf86-video-nouveau/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 80482 2010-05-17 17:42:28Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: buddabrod <buddabrod@gmail.com>
+
+pkgname=xf86-video-nouveau
+_gitdate=20100517
+pkgver=0.0.16_git${_gitdate} # see configure.ac
+pkgrel=1
+pkgdesc="Open Source 3D acceleration driver for nVidia cards (experimental)"
+arch=('i686' 'x86_64')
+url="http://nouveau.freedesktop.org/wiki/"
+license=('GPL') #and MIT, not yet a license file, see http://nouveau.freedesktop.org/wiki/FAQ#head-09f75d03eb30011c754038a3893119a70745de4e
+depends=('libdrm>=2.4.19' 'udev')
+optdepends=('nouveau-dri:	highly experimental gallium3d features')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'mesa>=7.8.1' 'glproto>=1.4.11' 'xorg-util-macros' 'xf86driproto' 'autoconf' 'nouveau-dri>=7.8.1')
+conflicts=('xorg-server<1.8.0')
+options=('!libtool') # 'force'
+install=${pkgname}.install
+source=(ftp://ftp.archlinux.org/other/$pkgname/xf86-video-nouveau-${_gitdate}.tar.bz2)
+md5sums=('787f5cbba1f14f4ffcafbb00516abdad')
+
+# source PKGBUILD && mksource
+mksource() {
+	mkdir /tmp/${pkgname}-${_gitdate}
+	pushd /tmp/${pkgname}-${_gitdate}
+	git clone -v --depth 1 git://anongit.freedesktop.org/nouveau/xf86-video-nouveau
+	cd xf86-video-nouveau
+	git archive --prefix=xf86-video-nouveau-${_gitdate}/ --format=tar HEAD | bzip2 > /tmp/${pkgname}-${_gitdate}/${pkgname}-${_gitdate}.tar.bz2
+	popd
+}
+
+build() {
+  cd ${srcdir}/xf86-video-nouveau-${_gitdate}
+  ./autogen.sh --prefix=/usr || return 1
+  make || return 1
+}
+
+package() {
+  cd ${srcdir}/xf86-video-nouveau-${_gitdate}
+  make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/abs/core-testing/xf86-video-nouveau/xf86-video-nouveau.install b/abs/core-testing/xf86-video-nouveau/xf86-video-nouveau.install
new file mode 100644
index 0000000..027154f
--- /dev/null
+++ b/abs/core-testing/xf86-video-nouveau/xf86-video-nouveau.install
@@ -0,0 +1,16 @@
+post_install () {
+   cat << _EOF
+  ==> make sure you use KernelModeSetting (KMS)
+  ==> see http://wiki.archlinux.org/index.php/Nouveau#KMS for more
+_EOF
+}
+
+post_upgrade() {
+  if [ "`vercmp $2 0.0.15_git20100117-1`" -lt 0 ]; then
+    cat << _EOF
+  ==> ATTENTION: Usermode support has been dropped
+  ==> make sure you use KernelModeSetting (KMS)
+  ==> see http://wiki.archlinux.org/index.php/Nouveau#KMS for more
+_EOF
+ fi
+}
diff --git a/abs/core-testing/xf86-video-nv/PKGBUILD b/abs/core-testing/xf86-video-nv/PKGBUILD
index 7c74343..09bdb51 100644
--- a/abs/core-testing/xf86-video-nv/PKGBUILD
+++ b/abs/core-testing/xf86-video-nv/PKGBUILD
@@ -1,28 +1,27 @@
-# $Id: PKGBUILD 11446 2008-08-31 15:40:39Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 75913 2010-04-04 19:43:19Z jgc $
+# Maintainer:Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-nv
-pkgver=2.1.12
-pkgrel=1
+pkgver=2.1.17
+pkgrel=2
 pkgdesc="X.org nv video driver"
 arch=(i686 x86_64)
 license=('custom')
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-conflicts=('xorg-server<1.4.99.906')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'xorg-util-macros')
+conflicts=('xorg-server<1.8.0')
 options=('!libtool')
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('9f165c085e6420470191a544404066524f2f1c61')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 
-  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
-  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-md5sums=('42f12a36d7afc26c817e8e8f5c8b7274')
diff --git a/abs/core-testing/xf86-video-openchrome/PKGBUILD b/abs/core-testing/xf86-video-openchrome/PKGBUILD
index 235dba8..320aaac 100644
--- a/abs/core-testing/xf86-video-openchrome/PKGBUILD
+++ b/abs/core-testing/xf86-video-openchrome/PKGBUILD
@@ -1,29 +1,35 @@
-# $Id: PKGBUILD 11506 2008-08-31 18:01:45Z jgc $
+# $Id: PKGBUILD 75910 2010-04-04 19:38:56Z jgc $
 # Contributor: Paul Mattal <paul@mattal.com>
 # Maintainer: Juergen Hoetzel <juergen@hoetzel.info>
 
 pkgname=xf86-video-openchrome
-pkgver=0.2.903
-pkgrel=1
+pkgver=0.2.904
+pkgrel=3
 pkgdesc="X.Org Openchrome drivers"
 arch=(i686 x86_64)
 license=('custom')
 url="http://www.openchrome.org"
-depends=('unichrome-dri>=7.1')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906' 'xf86driproto' 'xorg-util-macros' 'libxvmc' 'glproto' 'mesa>=7.1')
+depends=('unichrome-dri>=7.6')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'xf86driproto' 'xorg-util-macros' 'libxvmc' 'glproto' 'mesa>=7.8' 'inputproto')
 replaces=('openchrome' 'xf86-video-via')
 options=('!libtool' 'force' '!makeflags')
-conflicts=('xf86-video-via' 'xf86-video-unichrome' 'openchrome' 'xorg-server<1.4.99.906')
-source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.gz
-	LICENSE.txt)
-md5sums=('bcb3ba67e89824c132790c3a0365c6a5'
+conflicts=('xf86-video-via' 'xf86-video-unichrome' 'openchrome' 'xorg-server<1.8.0')
+source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+        drm_stdint.patch
+        svn-r839.patch
+        LICENSE.txt)
+md5sums=('f2481d98ef54febf5bffbb88a2a2426d'
+         'bc516400ffc3df5d0dfe604f6245dd32'
+         '5aed4aa44dd5a6d3e2da9baad73ac0ab'
          'addb3cf2671f4cf7e91156952de1627f')
 
 build() {
-  cd ${startdir}/src/${pkgname}-$pkgver || return 1
+  cd "${srcdir}/${pkgname}-${pkgver}" || return 1
+  patch -Np1 -i "${srcdir}/svn-r839.patch" || return 1
+  patch -Np0 -i "${srcdir}/drm_stdint.patch" || return 1
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
-  install -m644 ${srcdir}/LICENSE.txt ${pkgdir}/usr/share/licenses/${pkgname}/COPYING || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 "${srcdir}/LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" || return 1
 }
diff --git a/abs/core-testing/xf86-video-openchrome/drm_stdint.patch b/abs/core-testing/xf86-video-openchrome/drm_stdint.patch
new file mode 100644
index 0000000..226a015
--- /dev/null
+++ b/abs/core-testing/xf86-video-openchrome/drm_stdint.patch
@@ -0,0 +1,10 @@
+--- src/via_xvmc.h.orig	2010-03-07 01:46:34.000000000 +0100
++++ src/via_xvmc.h	2010-03-07 01:46:45.000000000 +0100
+@@ -26,6 +26,7 @@
+ #ifndef _VIA_XVMC_H
+ #define _VIA_XVMC_H 1
+ 
++#include <stdint.h>
+ #include "via_drm.h"
+ 
+ /*
diff --git a/abs/core-testing/xf86-video-openchrome/svn-r839.patch b/abs/core-testing/xf86-video-openchrome/svn-r839.patch
new file mode 100644
index 0000000..8e5f056
--- /dev/null
+++ b/abs/core-testing/xf86-video-openchrome/svn-r839.patch
@@ -0,0 +1,1447 @@
+diff -ruN xf86-video-openchrome-0.2.904/ChangeLog ../openchrome/xf86-video-openchrome-0.2.904/ChangeLog
+--- xf86-video-openchrome-0.2.904/ChangeLog	2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/ChangeLog	2010-03-07 01:09:00.000000000 +0100
+@@ -1,3 +1,52 @@
++2010-02-10  Bartosz Kosiorek  <gang65@poczta.onet.pl>
++
++	Fix bug with suspend and VT switch on VX800 and 64bit systems
++
++	* src/via_driver.h:
++	* src/via_video.c: (viaResetVideo), (viaSaveVideo),
++	(viaRestoreVideo), (viaExitVideo):
++	* src/via_video.h:
++
++2010-01-24  Bartosz Kosiorek  <gang65@poczta.onet.pl>
++
++	Fix starting address restore and save (initial 64-bit support)
++
++	* src/via_crtc.c: (ViaFirstCRTCSetMode),
++	(ViaFirstCRTCSetStartingAddress):
++	* src/via_dri.c: (VIADRIAgpInit):
++	* src/via_driver.c: (VIASave), (VIARestore):
++	* src/via_driver.h:
++
++2009-12-04  Bartosz Kosiorek  <gang65@poczta.onet.pl>
++
++	Enable new mode switch for VM800 chipsets
++
++	* src/via_driver.c: (VIASetupDefaultOptions):
++
++2009-11-21  Bartosz Kosiorek  <gang65@poczta.onet.pl>
++
++	Add option to enable unaccelerated RandR rotation ("SWRandR").
++        The accelerated option "HWRandR" is currently not implemented.
++
++	* src/openchrome.man:
++	* src/via_driver.c: (VIAPreInit):
++
++2009-11-20  Bartosz Kosiorek  <gang65@poczta.onet.pl>
++
++	Enabled new mode switch for PM800 chipset, 
++        to resolve many bugs with resolution detecting and changing
++        (eg. switching to console)
++
++	* src/via_driver.c: (VIASetupDefaultOptions), (VIAPreInit):
++
++2009-11-07  Bartosz Kosiorek  <gang65@poczta.onet.pl>
++
++	Add more comments to ViaSetSecondaryFIFO, add panel scale support for 
++ 	CLE266 and KM400, fix bug with malloc.
++
++	* src/via_bandwidth.c: (ViaSetSecondaryFIFO):
++	* src/via_panel.c: (ViaPanelScale), (ViaPanelGetNativeDisplayMode):
++
+ 2009-09-26  Bartosz Kosiorek  <gang65@poczta.onet.pl>
+ 
+ 	Save/restore ECK Clock Synthesizer
+diff -ruN xf86-video-openchrome-0.2.904/man/openchrome.man ../openchrome/xf86-video-openchrome-0.2.904/man/openchrome.man
+--- xf86-video-openchrome-0.2.904/man/openchrome.man	2009-10-09 01:12:41.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/man/openchrome.man	2010-03-07 01:09:00.000000000 +0100
+@@ -59,7 +59,7 @@
+ .BI "Option \*qAccelMethod\*q  \*q" string \*q
+ The driver supports "XAA" and "EXA" acceleration methods.  The default
+ method is XAA, since EXA is still experimental.  Contrary to XAA, EXA
+-implements acceleration for screen uploads and downlads (if DRI is
++implements acceleration for screen uploads and downloads (if DRI is
+ enabled) and for the Render/Composite extension.
+ .TP
+ .BI "Option \*qActiveDevice\*q  \*q" string \*q
+@@ -81,7 +81,7 @@
+ no room for DRI textures, they will be allocated from the DRI part of
+ VRAM (see the option "MaxDRIMem").  The default amount of AGP is
+ 32768 kB.  Note that the AGP aperture set in the BIOS must be able
+-to accomodate the amount of AGP memory specified here.  Otherwise no
++to accommodate the amount of AGP memory specified here.  Otherwise no
+ AGP memory will be available.  It is safe to set a very large AGP
+ aperture in the BIOS.
+ .TP
+@@ -159,9 +159,16 @@
+ system.  The sizes 640x480, 800x600, 1024x768, 1280x1024, and 1400x1050
+ are supported.
+ .TP
++.BI "Option \*qRotationType\*q  \*q" string \*q
++Enabled rotation by using RandR. The driver only support unaccelerated
++RandR rotations "SWRandR". Hardware rotations "HWRandR" is currently 
++unimplemented.
++.TP
+ .BI "Option \*qRotate\*q  \*q" string \*q
+ Rotates the display either clockwise ("CW"), counterclockwise ("CCW") and
+-upside-down ("UD"). Rotation is only supported unaccelerated.
++upside-down ("UD"). Rotation is only supported unaccelerated.  Adding 
++option "Rotate", enables RandR rotation feature.  The RandR allows 
++clients to dynamically change X screens.
+ .TP
+ .BI "Option \*qShadowFB\*q  \*q" boolean \*q
+ Enables the use of a shadow frame buffer.  This is required when
+diff -ruN xf86-video-openchrome-0.2.904/src/svnversion.h ../openchrome/xf86-video-openchrome-0.2.904/src/svnversion.h
+--- xf86-video-openchrome-0.2.904/src/svnversion.h	2009-10-09 01:19:04.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/svnversion.h	2010-03-07 01:09:15.000000000 +0100
+@@ -1 +1 @@
+-#define BUILDCOMMENT "(openchrome 0.2.904 release)"
++#define BUILDCOMMENT "(development build, at svn revision 839)"
+diff -ruN xf86-video-openchrome-0.2.904/src/via_accel.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_accel.c
+--- xf86-video-openchrome-0.2.904/src/via_accel.c	2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_accel.c	2010-03-07 01:09:00.000000000 +0100
+@@ -1210,7 +1210,8 @@
+ 
+     /* General acceleration flags. */
+     xaaptr->Flags = (PIXMAP_CACHE |
+-                     OFFSCREEN_PIXMAPS | LINEAR_FRAMEBUFFER |
++                     OFFSCREEN_PIXMAPS | 
++                     LINEAR_FRAMEBUFFER |
+                      MICROSOFT_ZERO_LINE_BIAS | 0);
+ 
+     if (pScrn->bitsPerPixel == 8)
+@@ -1228,14 +1229,17 @@
+ 
+     xaaptr->Sync = viaAccelSync;
+ 
++    /* ScreenToScreen copies */
+     xaaptr->SetupForScreenToScreenCopy = viaSetupForScreenToScreenCopy;
+     xaaptr->SubsequentScreenToScreenCopy = viaSubsequentScreenToScreenCopy;
+     xaaptr->ScreenToScreenCopyFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE;
+ 
++    /* Solid filled rectangles */
+     xaaptr->SetupForSolidFill = viaSetupForSolidFill;
+     xaaptr->SubsequentSolidFillRect = viaSubsequentSolidFillRect;
+     xaaptr->SolidFillFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE;
+ 
++    /* Mono 8x8 pattern fills */
+     xaaptr->SetupForMono8x8PatternFill = viaSetupForMono8x8PatternFill;
+     xaaptr->SubsequentMono8x8PatternFillRect =
+             viaSubsequentMono8x8PatternFillRect;
+@@ -1244,6 +1248,7 @@
+                                        HARDWARE_PATTERN_PROGRAMMED_ORIGIN |
+                                        BIT_ORDER_IN_BYTE_MSBFIRST | 0);
+ 
++    /* Color 8x8 pattern fills */
+     xaaptr->SetupForColor8x8PatternFill = viaSetupForColor8x8PatternFill;
+     xaaptr->SubsequentColor8x8PatternFillRect =
+             viaSubsequentColor8x8PatternFillRect;
+@@ -1252,12 +1257,14 @@
+                                         HARDWARE_PATTERN_PROGRAMMED_BITS |
+                                         HARDWARE_PATTERN_PROGRAMMED_ORIGIN | 0);
+ 
++    /* Solid lines */
+     xaaptr->SetupForSolidLine = viaSetupForSolidLine;
+     xaaptr->SubsequentSolidTwoPointLine = viaSubsequentSolidTwoPointLine;
+     xaaptr->SubsequentSolidHorVertLine = viaSubsequentSolidHorVertLine;
+     xaaptr->SolidBresenhamLineErrorTermBits = 14;
+     xaaptr->SolidLineFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE;
+ 
++    /* Dashed line */
+     xaaptr->SetupForDashedLine = viaSetupForDashedLine;
+     xaaptr->SubsequentDashedTwoPointLine = viaSubsequentDashedTwoPointLine;
+     xaaptr->DashPatternMaxLength = 8;
+@@ -1266,35 +1273,42 @@
+                                LINE_PATTERN_POWER_OF_2_ONLY |
+                                LINE_PATTERN_MSBFIRST_LSBJUSTIFIED | 0);
+ 
++    /* CPU to Screen color expansion */
+     xaaptr->ScanlineCPUToScreenColorExpandFillFlags = NO_PLANEMASK |
+-            CPU_TRANSFER_PAD_DWORD |
+-            SCANLINE_PAD_DWORD |
+-            BIT_ORDER_IN_BYTE_MSBFIRST |
+-            LEFT_EDGE_CLIPPING | ROP_NEEDS_SOURCE | 0;
++           				 	CPU_TRANSFER_PAD_DWORD |
++						SCANLINE_PAD_DWORD |
++            					BIT_ORDER_IN_BYTE_MSBFIRST |
++            					LEFT_EDGE_CLIPPING | 
++            					ROP_NEEDS_SOURCE | 0;
+ 
+     xaaptr->SetupForScanlineCPUToScreenColorExpandFill =
+             viaSetupForCPUToScreenColorExpandFill;
+     xaaptr->SubsequentScanlineCPUToScreenColorExpandFill =
+             viaSubsequentScanlineCPUToScreenColorExpandFill;
+     xaaptr->ColorExpandBase = pVia->BltBase;
+-    xaaptr->ColorExpandRange = VIA_MMIO_BLTSIZE;
++    if (pVia->Chipset == VIA_VX800 || pVia->Chipset == VIA_VX855)
++        xaaptr->ColorExpandRange = VIA_MMIO_BLTSIZE;
++    else
++        xaaptr->ColorExpandRange = (64 * 1024);
+ 
++    /* ImageWrite */
+     xaaptr->ImageWriteFlags = (NO_PLANEMASK |
+                                CPU_TRANSFER_PAD_DWORD |
+                                SCANLINE_PAD_DWORD |
+                                BIT_ORDER_IN_BYTE_MSBFIRST |
+-                               LEFT_EDGE_CLIPPING | ROP_NEEDS_SOURCE | 0);
++                               LEFT_EDGE_CLIPPING | 
++			       ROP_NEEDS_SOURCE | 0);
+                                // SYNC_AFTER_IMAGE_WRITE | 0);
+ 
+     /*
+      * Most Unichromes are much faster using processor-to-framebuffer writes
+      * than when using the 2D engine for this.
+-     * test with x11perf -shmput500!
++     * test with "x11perf -shmput500"
++     * Example: K8M890 chipset; with GPU=86.3/sec; without GPU=132.0/sec
++     * TODO Check speed for other chipsets
+      */
+ 
+     switch (pVia->Chipset) {
+-        case VIA_K8M800:
+-        case VIA_K8M890:
+         case VIA_P4M900:
+         case VIA_VX800:
+         case VIA_VX855:
+diff -ruN xf86-video-openchrome-0.2.904/src/via_bandwidth.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_bandwidth.c
+--- xf86-video-openchrome-0.2.904/src/via_bandwidth.c	2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_bandwidth.c	2010-03-07 01:09:00.000000000 +0100
+@@ -194,6 +194,7 @@
+             else
+                 ViaSeqMask(hwp, 0x22, 0x00, 0x1F);  /* 128/4 = overflow = 0 */
+             break;
++        /* PM800/PM880/CN400 */
+         case VIA_PM800:
+             hwp->writeSeq(hwp, 0x17, 0x5F);     /* 95 */
+             ViaSeqMask(hwp, 0x16, 0x20, 0xBF);  /* 32 */
+@@ -204,9 +205,10 @@
+             else
+                 ViaSeqMask(hwp, 0x22, 0x1F, 0x1F);  /* 31 */
+             break;
++        /* P4M800Pro/VN800/CN700 */ 
+         case VIA_VM800:
+             hwp->writeSeq(hwp, 0x17, 0x2F);
+-            ViaSeqMask(hwp, 0x16, 0x14, 0xBF);
++            ViaSeqMask(hwp, 0x16, 0x14, 0xBF);  /* 80/4    = 20  = 0x14 */
+             ViaSeqMask(hwp, 0x18, 0x08, 0xBF);
+ 
+             if ((mode->HDisplay >= 1400) && (pScrn->bitsPerPixel == 32))
+@@ -215,40 +217,51 @@
+                 ViaSeqMask(hwp, 0x22, 0x00, 0x1F);
+             break;
+         case VIA_K8M890:
+-            hwp->writeSeq(hwp, 0x16, 0x92);
+-            hwp->writeSeq(hwp, 0x17, 0xB3);
+-            hwp->writeSeq(hwp, 0x18, 0x8A);
++            /* depth location: {SR17,0,7} */
++            hwp->writeSeq(hwp, 0x17, 0xB3);    /* 360/2-1 = 179 = 0xB3 */
++            /* Formula (x & 0x3F) | ((x & 0x40) << 1) */
++            /* threshold location: {SR16,0,5},{SR16,7,7} */
++            ViaSeqMask(hwp, 0x16, 0x92, 0xBF); /* 328/4   = 82  = 0x52 */
++            /* high threshold location: {SR18,0,5},{SR18,7,7} */
++            ViaSeqMask(hwp, 0x18, 0x8A, 0xBF); /* 296/4   = 74  = 0x4A */
++            /* display queue expire num location: {SR22,0,4}. */
++            ViaSeqMask(hwp, 0x22, 0x1F, 0x1F); /* 124/4   = 31  = 0x1F */
+             break;
+         case VIA_P4M900:
+-            ViaSeqMask(hwp, 0x17, 0x2F, 0xFF);
+-            ViaSeqMask(hwp, 0x16, 0x13, 0x3F);
+-            ViaSeqMask(hwp, 0x16, 0x00, 0x80);
+-            ViaSeqMask(hwp, 0x18, 0x13, 0x3F);
+-            ViaSeqMask(hwp, 0x18, 0x00, 0x80);
++            /* location: {SR17,0,7} */
++            hwp->writeSeq(hwp, 0x17, 0x2F);    /* 96/2-1  = 47  = 0x2F */
++            /* location: {SR16,0,5},{SR16,7,7} */
++            ViaSeqMask(hwp, 0x16, 0x13, 0xBF); /* 76/4    = 19  = 0x13 */
++            /* location: {SR18,0,5},{SR18,7,7} */
++            ViaSeqMask(hwp, 0x18, 0x13, 0xBF); /* 76/4    = 19  = 0x13 */
++            /* location: {SR22,0,4}. */
++            ViaSeqMask(hwp, 0x22, 0x08, 0x1F); /* 32/4    = 8   = 0x08 */
+             break;
+         case VIA_P4M890:
+-            hwp->writeSeq(hwp, 0x16, 0x13);
+-            hwp->writeSeq(hwp, 0x17, 0x2F);
+-            hwp->writeSeq(hwp, 0x18, 0x53);
+-            hwp->writeSeq(hwp, 0x22, 0x10);
++            hwp->writeSeq(hwp, 0x17, 0x2F);      /* 96/2-1  = 47  = 0x2F */
++            ViaSeqMask(hwp, 0x16, 0x13, 0xBF);   /* 76/4    = 19  = 0x13 */
++            ViaSeqMask(hwp, 0x18, 0x10, 0xBF);   /* 64/4    = 16  = 0x10 */
++            ViaSeqMask(hwp, 0x22, 0x08, 0x1F);   /* 32/4    = 8   = 0x08 */
+             break;
+         case VIA_CX700:
+-            hwp->writeSeq(hwp, 0x16, 0x26);
+             hwp->writeSeq(hwp, 0x17, 0x5F);
+-            hwp->writeSeq(hwp, 0x18, 0x66);
+-            hwp->writeSeq(hwp, 0x22, 0x1F);
++            ViaSeqMask(hwp, 0x16, 0x20, 0xBF);   /* 128/4  = 32  = 0x20 */
++            ViaSeqMask(hwp, 0x18, 0x20, 0xBF);   /* 128/4  = 32  = 0x20 */
++            ViaSeqMask(hwp, 0x22, 0x1F, 0x1F);   /* 124/4  = 31  = 0x1F */
+             break;
+         case VIA_VX800:
+-            hwp->writeSeq(hwp, 0x16, 0x26); /* 152/4   = 38 */
+-            hwp->writeSeq(hwp, 0x17, 0x5F); /* 192/2-1 = 95 */
++            hwp->writeSeq(hwp, 0x17, 0x5F); /* 192/2-1 = 95   = 0x5F */
++            hwp->writeSeq(hwp, 0x16, 0x26); /* 152/4   = 38   = 0x26 */
+             hwp->writeSeq(hwp, 0x18, 0x26); /* 152/4   = 38 */ 
+             hwp->writeSeq(hwp, 0x22, 0x10); /*  64/4   = 16 */
+             break;
+         case VIA_VX855:
+-              hwp->writeSeq(hwp, 0x16, 0x50); /* 320/4   = 80 */
+-              hwp->writeSeq(hwp, 0x17, 0xC7); /* 400/2-1 = 199 */
+-              hwp->writeSeq(hwp, 0x18, 0x50); /* 320/4   = 80 */
+-              hwp->writeSeq(hwp, 0x22, 0x28); /* 160/4   = 40 */
++            hwp->writeSeq(hwp, 0x17, 0xC7); /* 400/2-1 = 199  = 0xC7 */
++            /* TODO Formula for SR16 is: (0x50 & 0x3F) | ((0x50 & 0x40) << 1) = 0x90 */
++            hwp->writeSeq(hwp, 0x16, 0x50); /* 320/4   = 80   = 0x50 */
++            hwp->writeSeq(hwp, 0x18, 0x50); /* 320/4   = 80   = 0x50 */
++            hwp->writeSeq(hwp, 0x22, 0x28); /* 160/4   = 40   = 0x28 */
++            break;
+         default:
+             xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "ViaSetPrimaryFIFO: "
+                        "Chipset %d not implemented\n", pVia->Chipset);
+@@ -371,7 +384,38 @@
+                 ViaCrtcMask(hwp, 0x94, 0x20, 0x7F);
+             break;
+         case VIA_P4M890:
++            /* depth location: {CR68,4,7},{CR94,7,7},{CR95,7,7} */
++            ViaCrtcMask(hwp, 0x68, 0xB0, 0xF0); /* 96/8-1 = 11  = 0x0B */
++            ViaCrtcMask(hwp, 0x94, 0x00, 0x80);
++            ViaCrtcMask(hwp, 0x95, 0x00, 0x80);
++
++            /* location: {CR68,0,3},{CR95,4,6} */
++            ViaCrtcMask(hwp, 0x68, 0x03, 0x0F); /* 76/4   = 19  = 0x13 */
++            ViaCrtcMask(hwp, 0x95, 0x10, 0x70);
++
++            /* location: {CR92,0,3},{CR95,0,2} */
++            ViaCrtcMask(hwp, 0x92, 0x00, 0x0F); /* 64/4   = 16  = 0x10 */
++            ViaCrtcMask(hwp, 0x95, 0x01, 0x07);
++
++            /* location: {CR94,0,6} */
++            ViaCrtcMask(hwp, 0x94, 0x08, 0x7F); /* 32/4   = 8   = 0x08 */
++            break;
+         case VIA_K8M890:
++            /* Display Queue Depth, location: {CR68,4,7},{CR94,7,7},{CR95,7,7} */
++            ViaCrtcMask(hwp, 0x68, 0xC0, 0xF0); /* 360/8-1 = 44  = 0x2C; 0x2C << 4 = 0xC0 */
++            ViaCrtcMask(hwp, 0x94, 0x00, 0x80); /* 0x2C << 3 = 0x00 */
++            ViaCrtcMask(hwp, 0x95, 0x80, 0x80); /* 0x2C << 2 = 0x80 */
++
++            /* Display Queue Read Threshold 1, location: {CR68,0,3},{CR95,4,6} */
++            ViaCrtcMask(hwp, 0x68, 0x02, 0x0F); /* 328/4   = 82  = 0x52 */
++            ViaCrtcMask(hwp, 0x95, 0x50, 0x70);
++
++            /* location: {CR92,0,3},{CR95,0,2} */
++            ViaCrtcMask(hwp, 0x92, 0x0A, 0x0F); /* 296/4   = 74  = 0x4A */
++            ViaCrtcMask(hwp, 0x95, 0x04, 0x07); /* 0x4A >> 4 = 0x04 */
++
++            /* Display Expire Number Bits, location: {CR94,0,6} */
++            ViaCrtcMask(hwp, 0x94, 0x1F, 0x7F); /* 124/4   = 31  = 0x1F */
+             break;
+         case VIA_P4M900:
+             ViaCrtcMask(hwp, 0x68, 0xB0, 0xF0);
+diff -ruN xf86-video-openchrome-0.2.904/src/via_crtc.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_crtc.c
+--- xf86-video-openchrome-0.2.904/src/via_crtc.c	2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_crtc.c	2010-03-07 01:09:00.000000000 +0100
+@@ -234,8 +234,8 @@
+     /* Primary starting address -> 0x00, adjustframe does the rest */
+     hwp->writeCrtc(hwp, 0x0C, 0x00);
+     hwp->writeCrtc(hwp, 0x0D, 0x00);
+-    hwp->writeCrtc(hwp, 0x34, 0x00);
+     ViaCrtcMask(hwp, 0x48, 0x00, 0x03); /* is this even possible on CLE266A ? */
++    hwp->writeCrtc(hwp, 0x34, 0x00);
+ 
+     /* vertical sync start : 2047 */
+     temp = mode->CrtcVSyncStart;
+@@ -331,15 +331,20 @@
+     CARD32 Base;
+     CARD32 tmp;
+ 
++    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ViaFirstCRTCSetStartingAddress\n"));
++
+     Base = (y * pScrn->displayWidth + x) * (pScrn->bitsPerPixel / 8);
+     Base = Base >> 1;
+ 
+     hwp->writeCrtc(hwp, 0x0C, (Base & 0xFF00) >> 8);
+     hwp->writeCrtc(hwp, 0x0D, Base & 0xFF);
+-    hwp->writeCrtc(hwp, 0x34, (Base & 0xFF0000) >> 16);
+-
++    /* FIXME The proper starting address for CR48 is 0x1F - Bits[28:24] */
+     if (!(pVia->Chipset == VIA_CLE266 && CLE266_REV_IS_AX(pVia->ChipRev)))
+         ViaCrtcMask(hwp, 0x48, Base >> 24, 0x0F);
++    /* CR34 are fire bits. Must be writed after CR0C CR0D CR48.  */
++    hwp->writeCrtc(hwp, 0x34, (Base & 0xFF0000) >> 16);
++
++
+ }
+ 
+ void
+diff -ruN xf86-video-openchrome-0.2.904/src/via_cursor.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_cursor.c
+--- xf86-video-openchrome-0.2.904/src/via_cursor.c	2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_cursor.c	2010-03-07 01:09:00.000000000 +0100
+@@ -145,9 +145,12 @@
+     infoPtr->ShowCursor = viaShowCursor;
+     infoPtr->UseHWCursor = viaUseHWCursor;
+ 
++    /* ARGB Cursor init */
+     infoPtr->UseHWCursorARGB = viaUseHWCursorARGB;
+-	if (pVia->CursorARGBSupported)
++    if (pVia->CursorARGBSupported) {
++        DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "HWCursor ARGB enabled\n"));
+     	infoPtr->LoadCursorARGB = viaLoadCursorARGB;
++    }
+ 
+     /* Set cursor location in frame buffer. */
+     VIASETREG(VIA_REG_CURSOR_MODE, pVia->cursorOffset);
+@@ -284,7 +287,7 @@
+ }
+ 
+ /*
+- * ARGB Cursor
++ * display the current cursor
+  */
+ 
+ void
+@@ -319,13 +322,19 @@
+             */
+ 
+             /* Duoview */
+-	    if (pVia->CursorPipe)
++	    if (pVia->CursorPipe) {
++                /* Mono Cursor Display Path [bit31]: Secondary */
++                /* FIXME For CLE266 nad KM400 try to enable 32x32 cursor size [bit1] */
+                 VIASETREG(VIA_REG_ALPHA_CONTROL, 0xF6000005);
+-            else
++            } else {
++                /* Mono Cursor Display Path [bit31]: Primary */
+                 VIASETREG(VIA_REG_ALPHA_CONTROL, 0x76000005);
++            }
+     }
+ }
+ 
++
++/* hide the current cursor */
+ void
+ viaHideCursor(ScrnInfoPtr pScrn)
+ {
+@@ -350,10 +359,16 @@
+         
+         default:
+              temp = VIAGETREG(VIA_REG_ALPHA_CONTROL);
++             /* Hardware cursor disable [bit0] */
+              VIASETREG(VIA_REG_ALPHA_CONTROL, temp & 0xFFFFFFFA);
+     }
+ }
+ 
++/*
++    Set the cursor position to (x,y).  X and/or y may be negative
++    indicating that the cursor image is partially offscreen on
++    the left and/or top edges of the screen.
++*/
+ static void
+ viaSetCursorPosition(ScrnInfoPtr pScrn, int x, int y)
+ {
+@@ -409,6 +424,15 @@
+             && pCurs->bits->height <= pVia->CursorMaxHeight);
+ }
+ 
++/*
++    If the driver is unable to use a hardware cursor for reasons
++    other than the cursor being larger than the maximum specified
++    in the MaxWidth or MaxHeight field below, it can supply the
++    UseHWCursor function.  If UseHWCursor is provided by the driver,
++    it will be called whenever the cursor shape changes or the video
++    mode changes.  This is useful for when the hardware cursor cannot
++    be used in interlaced or doublescan modes.
++*/
+ static Bool
+ viaUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
+ {
+@@ -423,8 +447,11 @@
+             && pCurs->bits->height <= pVia->CursorMaxHeight);
+ }
+ 
++/*
++    Load Mono Cursor Image 
++*/
+ static void
+-viaLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *s)
++viaLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *src)
+ {
+     VIAPtr pVia = VIAPTR(pScrn);
+     CARD32 temp;
+@@ -439,7 +466,7 @@
+     if (pVia->CursorARGBSupported) {
+ #define ARGB_PER_CHUNK	(8 * sizeof (chunk) / 2)
+ 		for (i = 0; i < (pVia->CursorMaxWidth * pVia->CursorMaxHeight / ARGB_PER_CHUNK); i++) {
+-		    chunk = *s++;
++		    chunk = *src++;
+ 		    for (j = 0; j < ARGB_PER_CHUNK; j++, chunk >>= 2)
+ 			*dst++ = mono_cursor_color[chunk & 3];
+ 		}
+@@ -447,7 +474,7 @@
+ 		pVia->CursorFG = mono_cursor_color[3];
+ 		pVia->CursorBG = mono_cursor_color[2];
+     } else {
+-	memcpy(dst, (CARD8*)s, pVia->CursorSize);
++	memcpy(dst, (CARD8*)src, pVia->CursorSize);
+     }
+     switch(pVia->Chipset) {
+         case VIA_CX700:
+@@ -471,11 +498,17 @@
+     }
+ }
+ 
++/*
++    Set the cursor foreground and background colors.  In 8bpp, fg and
++    bg are indicies into the current colormap unless the 
++    HARDWARE_CURSOR_TRUECOLOR_AT_8BPP flag is set.  In that case
++    and in all other bpps the fg and bg are in 8-8-8 RGB format.
++*/
++
+ static void
+ viaSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg)
+ {
+     VIAPtr pVia = VIAPTR(pScrn);
+-    CARD32 control = pVia->CursorRegControl;
+     CARD32 pixel;
+     CARD32 temp;
+     CARD32 *dst;
+@@ -487,12 +520,10 @@
+     fg |= 0xff000000;
+     bg |= 0xff000000;
+ 
++    /* Don't recolour the image if we don't have to. */
+     if (fg == pVia->CursorFG && bg == pVia->CursorBG)
+ 	return;
+ 
+-    temp = VIAGETREG(control);
+-    VIASETREG(control, temp & 0xFFFFFFFE);
+-
+     dst = (CARD32*)pVia->cursorMap;
+     for (i = 0; i < pVia->CursorMaxWidth * pVia->CursorMaxHeight; i++, dst++)
+ 	if ((pixel = *dst))
+@@ -517,7 +548,8 @@
+              }
+              break;        
+         default:
+-             VIASETREG(control, temp);
++             temp = VIAGETREG(VIA_REG_ALPHA_CONTROL);
++             VIASETREG(VIA_REG_ALPHA_CONTROL, temp & 0xFFFFFFFE);
+     }
+ }
+ 
+diff -ruN xf86-video-openchrome-0.2.904/src/via_dri.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_dri.c
+--- xf86-video-openchrome-0.2.904/src/via_dri.c	2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_dri.c	2010-03-07 01:09:00.000000000 +0100
+@@ -267,6 +267,11 @@
+     pVIADRI = pDRIInfo->devPrivate;
+     pVia->agpSize = 0;
+ 
++/* For AMD64 */
++#ifdef __x86_64__
++    return FALSE;
++#endif
++
+     if (drmAgpAcquire(pVia->drmFD) < 0) {
+         xf86DrvMsg(pScreen->myNum, X_ERROR, "[drm] drmAgpAcquire failed %d\n",
+                    errno);
+diff -ruN xf86-video-openchrome-0.2.904/src/via_driver.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.c
+--- xf86-video-openchrome-0.2.904/src/via_driver.c	2009-10-09 00:46:15.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.c	2010-03-07 01:09:00.000000000 +0100
+@@ -178,8 +178,8 @@
+     {VIA_P4M900,   "P4M900/VN896/CN896"},
+     {VIA_CX700,    "CX700/VX700"},
+     {VIA_P4M890,   "P4M890"},
+-    {VIA_VX800,    "VX800"},
+-    {VIA_VX855,    "VX855"},
++    {VIA_VX800,    "VX800/VX820"},
++    {VIA_VX855,    "VX855/VX875"},
+     {-1,            NULL }
+ };
+ 
+@@ -215,6 +215,7 @@
+     OPTION_EXA_SCRATCH_SIZE,
+     OPTION_SWCURSOR,
+     OPTION_SHADOW_FB,
++    OPTION_ROTATION_TYPE,
+     OPTION_ROTATE,
+     OPTION_VIDEORAM,
+     OPTION_ACTIVEDEVICE,
+@@ -253,6 +254,7 @@
+     {OPTION_EXA_SCRATCH_SIZE,    "ExaScratchSize",   OPTV_INTEGER, {0}, FALSE},
+     {OPTION_SWCURSOR,            "SWCursor",         OPTV_BOOLEAN, {0}, FALSE},
+     {OPTION_SHADOW_FB,           "ShadowFB",         OPTV_BOOLEAN, {0}, FALSE},
++    {OPTION_ROTATION_TYPE,       "RotationType",     OPTV_ANYSTR,  {0}, FALSE},
+     {OPTION_ROTATE,              "Rotate",           OPTV_ANYSTR,  {0}, FALSE},
+     {OPTION_VIDEORAM,            "VideoRAM",         OPTV_INTEGER, {0}, FALSE},
+     {OPTION_ACTIVEDEVICE,        "ActiveDevice",     OPTV_ANYSTR,  {0}, FALSE},
+@@ -307,6 +309,7 @@
+ {
+     static Bool setupDone = FALSE;
+ 
++    /* Only be loaded once */
+     if (!setupDone) {
+         setupDone = TRUE;
+         xf86AddDriver(&VIA, module,
+@@ -339,6 +342,7 @@
+     if (pScrn->driverPrivate)
+         return TRUE;
+ 
++    /* allocate VIARec */
+     pScrn->driverPrivate = xnfcalloc(sizeof(VIARec), 1);
+     VIAPtr pVia = ((VIARec *) (pScrn->driverPrivate));
+ 
+@@ -455,7 +459,6 @@
+ {
+     ScrnInfoPtr scrn = NULL;
+     EntityInfoPtr entity;
+-    DevUnion *private;
+ 
+     scrn = xf86ConfigPciEntity(scrn, 0, entity_num, VIAPciChipsets,
+                                NULL, NULL, NULL, NULL, NULL);
+@@ -652,6 +655,12 @@
+     vbeInfoPtr pVbe;
+ 
+     if (xf86LoadSubModule(pScrn, "vbe")) {
++        /* FIXME This line should be replaced to:
++
++           pVbe = VBEExtendedInit(NULL, index, 0);
++
++           for XF86 version > 4.2.99
++        */
+         pVbe = VBEInit(NULL, index);
+         ConfiguredMonitor = vbeDoEDID(pVbe, NULL);
+         vbeFree(pVbe);
+@@ -664,7 +673,7 @@
+     VIAPtr pVia = VIAPTR(pScrn);
+     VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo;
+ 
+-    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIASetupDefaultOptions\n"));
++    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIASetupDefaultOptions - Setting up default chipset options.\n"));
+ 
+     pVia->shadowFB = FALSE;
+     pVia->NoAccel = FALSE;
+@@ -688,6 +697,9 @@
+ #ifdef HAVE_DEBUG
+     pVia->PrintVGARegs = FALSE;
+ #endif
++
++    /* Disable vertical interpolation because the size of */
++    /* line buffer (limited to 800) is too small to do interpolation. */
+     pVia->swov.maxWInterp = 800;
+     pVia->swov.maxHInterp = 600;
+     pVia->useLegacyVBE = TRUE;
+@@ -713,11 +725,14 @@
+             pVia->UseLegacyModeSwitch = TRUE;
+             break;
+         case VIA_PM800:
++            /* Use new mode switch to resolve many resolution and display bugs (switch to console) */
++            /* FIXME The video playing (XV) is not working correctly after turn on new mode switch */
+             pVia->VideoEngine = VIDEO_ENGINE_CME;
+-            pVia->UseLegacyModeSwitch = TRUE;
+             break;
+         case VIA_VM800:
+-            pVia->UseLegacyModeSwitch = TRUE;
++            /* New mode switch resolve bug with gamma set #282 */
++            /* and with Xv after hibernate #240                */
++            /* FIXME Add panel support for this chipset        */
+             break;
+         case VIA_K8M890:
+             pVia->VideoEngine = VIDEO_ENGINE_CME;
+@@ -1050,19 +1065,13 @@
+         xf86DrvMsg(pScrn->scrnIndex, from,
+                    "Probed amount of VideoRAM = %d kB\n", pScrn->videoRam);
+ 
+-    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+-               "Setting up default chipset options.\n");
+     if (!VIASetupDefaultOptions(pScrn)) {
+         VIAFreeRec(pScrn);
+         return FALSE;
+     }
+ 
+-    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Reading config file...\n");
+     xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, VIAOptions);
+ 
+-    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+-               "Starting to parse config file options...\n");
+-
+     if (xf86GetOptValInteger(VIAOptions, OPTION_VIDEORAM, &pScrn->videoRam))
+         xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+                    "Setting amount of VideoRAM to %d kB\n", pScrn->videoRam);
+@@ -1100,6 +1109,31 @@
+     }
+ 
+     /* When rotating, switch shadow framebuffer on and acceleration off. */
++    if ((s = xf86GetOptValString(VIAOptions, OPTION_ROTATION_TYPE))) {
++        if (!xf86NameCmp(s, "SWRandR")) {
++            pVia->shadowFB = TRUE;
++            pVia->NoAccel = TRUE;
++            pVia->RandRRotation = TRUE;
++            pVia->rotate = RR_Rotate_0;
++            xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Rotating screen "
++                       "RandR enabled, acceleration disabled\n");
++        } else if (!xf86NameCmp(s, "HWRandR")) {
++            pVia->shadowFB = TRUE;
++            pVia->NoAccel = TRUE;
++            pVia->RandRRotation = TRUE;
++            pVia->rotate = RR_Rotate_0;
++            xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Hardware accelerated "
++                       "rotating screen is not implemented. Using SW RandR.\n");
++        } else {
++            xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "\"%s\" is not a valid"
++                       "value for Option \"RotationType\".\n", s);
++            xf86DrvMsg(pScrn->scrnIndex, X_INFO,
++                       "Valid options are \"SWRandR\" and \"HWRandR\".\n");
++        }
++    }
++
++
++    /* When rotating, switch shadow framebuffer on and acceleration off. */
+     if ((s = xf86GetOptValString(VIAOptions, OPTION_ROTATE))) {
+         if (!xf86NameCmp(s, "CW")) {
+             pVia->shadowFB = TRUE;
+@@ -1498,6 +1532,7 @@
+         }
+     }
+ 
++    /* Initialize the colormap */
+     Gamma zeros = { 0.0, 0.0, 0.0 };
+     if (!xf86SetGamma(pScrn, zeros)) {
+         VIAFreeRec(pScrn);
+@@ -1561,9 +1596,8 @@
+ 
+     if (pBIOSInfo->Panel->IsActive &&
+         ((pVia->Chipset == VIA_K8M800) ||
+-         (pVia->Chipset == VIA_PM800) ||
+          (pVia->Chipset == VIA_VM800))) {
+-        xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Panel on K8M800, PM800 and "
++        xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Panel on K8M800 and "
+                    "VM800 is currently not supported.\n");
+         xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+                    "Using VBE to set modes to work around this.\n");
+@@ -1621,7 +1655,7 @@
+          *
+          * CLE266A: primary AdjustFrame can use only 24 bits, so we are limited
+          * to 12x11 bits; 4080x2048 (~2:1), 3344x2508 (4:3), or 2896x2896 (1:1).
+-         * Test CLE266Cx, KM400, KM400A, K8M800, PM800, CN400 please.
++         * TODO Test CLE266Cx, KM400, KM400A, K8M800, CN400 please.
+          *
+          * We should be able to limit the memory available for a mode to 32 MB,
+          * but xf86ValidateModes (or miScanLineWidth) fails to catch this
+@@ -1629,13 +1663,14 @@
+          */
+ 
+         /* Select valid modes from those available. */
+-        i = xf86ValidateModes(pScrn, pScrn->monitor->Modes,     /* availModes */
+-                              pScrn->display->modes,    /* modeNames */
+-                              clockRanges,      /* list of clock ranges */
++        i = xf86ValidateModes(pScrn, 
++			      pScrn->monitor->Modes,     /* List of modes available for the monitor */
++                              pScrn->display->modes,     /* List of mode names that the screen is requesting */
++                              clockRanges,               /* list of clock ranges */
+                               NULL,     /* list of line pitches */
+                               256,      /* minimum line pitch */
+                               3344,     /* maximum line pitch */
+-                              32 * 8,   /* pitch inc (bits) */
++                              16 * 8,   /* pitch increment (in bits), we just want 16 bytes alignment */
+                               128,      /* min height */
+                               2508,     /* max height */
+                               pScrn->display->virtualX, /* virtual width */
+@@ -1650,6 +1685,7 @@
+             return FALSE;
+         }
+ 
++        /* This function deletes modes in the modes field of the ScrnInfoRec that have been marked as invalid. */
+         xf86PruneDriverModes(pScrn);
+ 
+         if (i == 0 || pScrn->modes == NULL) {
+@@ -1662,9 +1698,17 @@
+     /* Set up screen parameters. */
+     pVia->Bpp = pScrn->bitsPerPixel >> 3;
+     pVia->Bpl = pScrn->displayWidth * pVia->Bpp;
++
++    /* This function fills in the Crtc fields for all the modes in the modes field of the ScrnInfoRec. */
+     xf86SetCrtcForModes(pScrn, INTERLACE_HALVE_V);
++
++    /* Set the current mode to the first in the list */
+     pScrn->currentMode = pScrn->modes;
++
++    /* Print the list of modes being used */    
+     xf86PrintModes(pScrn);
++
++    /* Set display resolution */
+     xf86SetDpi(pScrn, 0, 0);
+ 
+ #ifdef USE_FB
+@@ -1935,7 +1979,9 @@
+         Regs->SR17 = hwp->readSeq(hwp, 0x17);
+         Regs->SR18 = hwp->readSeq(hwp, 0x18);
+         Regs->SR19 = hwp->readSeq(hwp, 0x19);
++        /* PCI Bus Control */
+         Regs->SR1A = hwp->readSeq(hwp, 0x1A);
++
+         Regs->SR1B = hwp->readSeq(hwp, 0x1B);
+         Regs->SR1C = hwp->readSeq(hwp, 0x1C);
+         Regs->SR1D = hwp->readSeq(hwp, 0x1D);
+@@ -1977,40 +2023,56 @@
+                 Regs->SR4C = hwp->readSeq(hwp, 0x4C);
+                 break;
+         }
+-        DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+-              "Non-Primary Adapter! saving VGA_SR_MODE only !!\n"));
+         DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Crtc...\n"));
+ 
+         Regs->CR13 = hwp->readCrtc(hwp, 0x13);
+ 
+         Regs->CR32 = hwp->readCrtc(hwp, 0x32);
+         Regs->CR33 = hwp->readCrtc(hwp, 0x33);
+-        Regs->CR34 = hwp->readCrtc(hwp, 0x34);
++
+         Regs->CR35 = hwp->readCrtc(hwp, 0x35);
+         Regs->CR36 = hwp->readCrtc(hwp, 0x36);
+ 
++
++
++        /* Starting Address */
++        /* Start Address High */
++        Regs->CR0C = hwp->readCrtc(hwp, 0x0C);
++        /* Start Address Low */
++        Regs->CR0D = hwp->readCrtc(hwp, 0x0D);
++        /* Starting Address Overflow Bits[28:24] */
+         Regs->CR48 = hwp->readCrtc(hwp, 0x48);
++        /* CR34 are fire bits. Must be writed after CR0C CR0D CR48.  */
++        /* Starting Address Overflow Bits[23:16] */
++        Regs->CR34 = hwp->readCrtc(hwp, 0x34);
++
++
+         Regs->CR49 = hwp->readCrtc(hwp, 0x49);
+ 
+         DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "TVSave...\n"));
+         if (pBIOSInfo->TVI2CDev)
+             ViaTVSave(pScrn);
+ 
+-        /* Save LCD control registers. */
++        /* Save LCD control registers (from CR 0x50 to 0x93). */
+         for (i = 0; i < 68; i++)
+             Regs->CRTCRegs[i] = hwp->readCrtc(hwp, i + 0x50);
+ 
+         if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
+-
+-            Regs->CRA0 = hwp->readCrtc(hwp, 0xA0);
+-            Regs->CRA1 = hwp->readCrtc(hwp, 0xA1);
+-            Regs->CRA2 = hwp->readCrtc(hwp, 0xA2);
+-
++            /* LVDS Channel 2 Function Select 0 / DVI Function Select */ 
+             Regs->CR97 = hwp->readCrtc(hwp, 0x97);
++            /* LVDS Channel 1 Function Select 0 */
+             Regs->CR99 = hwp->readCrtc(hwp, 0x99);
++            /* Digital Video Port 1 Function Select 0 */
+             Regs->CR9B = hwp->readCrtc(hwp, 0x9B);
++            /* Power Now Control 4 */
+             Regs->CR9F = hwp->readCrtc(hwp, 0x9F);
+ 
++            /* Horizontal Scaling Initial Value */
++            Regs->CRA0 = hwp->readCrtc(hwp, 0xA0);
++            /* Vertical Scaling Initial Value */
++            Regs->CRA1 = hwp->readCrtc(hwp, 0xA1);
++            /* Scaling Enable Bit */
++            Regs->CRA2 = hwp->readCrtc(hwp, 0xA2);
+         }
+ 
+         /* Save TMDS status */
+@@ -2098,11 +2160,19 @@
+     hwp->writeSeq(hwp, 0x45, Regs->SR45);
+     hwp->writeSeq(hwp, 0x46, Regs->SR46);
+ 
++    /* Reset VCK PLL */
++    hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x02); /* Set SR40[1] to 1 */
++    hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFD); /* Set SR40[1] to 0 */
++
+     /* ECK Clock Synthesizer: */
+     hwp->writeSeq(hwp, 0x47, Regs->SR47);
+     hwp->writeSeq(hwp, 0x48, Regs->SR48);
+     hwp->writeSeq(hwp, 0x49, Regs->SR49);
+ 
++    /* Reset ECK PLL */
++    hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x01); /* Set SR40[0] to 1 */
++    hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFE); /* Set SR40[0] to 0 */
++
+     switch (pVia->Chipset) {
+         case VIA_CLE266:
+         case VIA_KM400:
+@@ -2112,6 +2182,10 @@
+             hwp->writeSeq(hwp, 0x4A, Regs->SR4A);
+             hwp->writeSeq(hwp, 0x4B, Regs->SR4B);
+             hwp->writeSeq(hwp, 0x4C, Regs->SR4C);
++
++            /* Reset LCK PLL */
++            hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x04); /* Set SR40[2] to 1 */
++            hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFB); /* Set SR40[2] to 0 */
+             break;
+     }
+ 
+@@ -2127,14 +2201,23 @@
+     hwp->writeCrtc(hwp, 0x32, Regs->CR32);
+     /* HSYNCH Adjuster */
+     hwp->writeCrtc(hwp, 0x33, Regs->CR33);
+-    /* Starting Address Overflow */
+-    hwp->writeCrtc(hwp, 0x34, Regs->CR34);
+     /* Extended Overflow */
+     hwp->writeCrtc(hwp, 0x35, Regs->CR35);
+     /*Power Management 3 (Monitor Control) */
+     hwp->writeCrtc(hwp, 0x36, Regs->CR36);
+ 
++    /* Starting Address */
++    /* Start Address High */
++    hwp->writeCrtc(hwp, 0x0C, Regs->CR0C);
++    /* Start Address Low */
++    hwp->writeCrtc(hwp, 0x0D, Regs->CR0D);
++    /* Starting Address Overflow Bits[28:24] */
+     hwp->writeCrtc(hwp, 0x48, Regs->CR48);
++    /* CR34 are fire bits. Must be writed after CR0C CR0D CR48.  */
++    /* Starting Address Overflow Bits[23:16] */
++    hwp->writeCrtc(hwp, 0x34, Regs->CR34);
++    
++
+     hwp->writeCrtc(hwp, 0x49, Regs->CR49);
+ 
+     /* Restore LCD control registers. */
+@@ -2453,7 +2536,6 @@
+ VIALoadRgbLut(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors,
+               VisualPtr pVisual)
+ {
+-    VIAPtr pVia = VIAPTR(pScrn);
+     vgaHWPtr hwp = VGAHWPTR(pScrn);
+ 
+     int i, j, index;
+@@ -2880,7 +2962,6 @@
+ VIAWriteMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
+ {
+     VIAPtr pVia = VIAPTR(pScrn);
+-    VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo;
+ 
+     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAWriteMode\n"));
+ 
+@@ -3033,9 +3114,7 @@
+ VIAAdjustFrame(int scrnIndex, int x, int y, int flags)
+ {
+     ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+-    vgaHWPtr hwp = VGAHWPTR(pScrn);
+     VIAPtr pVia = VIAPTR(pScrn);
+-    CARD32 Base;
+ 
+     DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIAAdjustFrame %dx%d\n", x, y));
+ 
+@@ -3173,7 +3252,6 @@
+ static void
+ VIADPMS(ScrnInfoPtr pScrn, int mode, int flags)
+ {
+-    vgaHWPtr hwp = VGAHWPTR(pScrn);
+     VIAPtr pVia = VIAPTR(pScrn);
+     VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo;
+ 
+diff -ruN xf86-video-openchrome-0.2.904/src/via_driver.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.h
+--- xf86-video-openchrome-0.2.904/src/via_driver.h	2009-10-09 01:09:22.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.h	2010-03-07 01:09:00.000000000 +0100
+@@ -130,6 +130,7 @@
+     CARD8   SR4A, SR4B, SR4C;
+ 
+     /*   extended CRTC registers */
++    CARD8   CR0C, CR0D;
+     CARD8   CR13, CR30, CR31, CR32, CR33, CR34, CR35, CR36;
+     CARD8   CR37, CR38, CR39, CR3A, CR40, CR41, CR42, CR43;
+     CARD8   CR44, CR45, CR46, CR47, CR48, CR49, CR4A;
+@@ -418,10 +419,10 @@
+     Bool                PrintVGARegs;
+     Bool                PrintTVRegs;
+     Bool                I2CScan;
++#endif /* HAVE_DEBUG */
+     
+     Bool                UseLegacyModeSwitch ;
+     video_via_regs*     VideoRegs ;
+-#endif /* HAVE_DEBUG */
+ } VIARec, *VIAPtr;
+ 
+ #define VIAPTR(p) ((VIAPtr)((p)->driverPrivate))
+diff -ruN xf86-video-openchrome-0.2.904/src/via_id.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_id.c
+--- xf86-video-openchrome-0.2.904/src/via_id.c	2009-10-07 23:30:39.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_id.c	2010-03-07 01:09:00.000000000 +0100
+@@ -152,6 +152,7 @@
+     {"MSI PM8PM",                             VIA_VM800,   0x1462, 0x7222, VIA_DEVICE_CRT},
+     {"Twinhead M6",                           VIA_VM800,   0x14FF, 0xA007, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+     {"RoverBook Partner W500",                VIA_VM800,   0x1509, 0x4330, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
++    {"FIC PTM800Pro LF",                      VIA_VM800,   0x1509, 0x601A, VIA_DEVICE_CRT},
+     {"Clevo/RoverBook Voyager V511L",         VIA_VM800,   0x1558, 0x0662, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+     {"Clevo M5xxS",                           VIA_VM800,   0x1558, 0x5406, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+     {"Biostar P4M80-M4 / P4VMA-M",            VIA_VM800,   0x1565, 0x1202, VIA_DEVICE_CRT},
+@@ -170,6 +171,7 @@
+     {"Asustek M2V-MX SE",                     VIA_K8M890,  0x1043, 0x8297, VIA_DEVICE_CRT},
+     {"Foxconn K8M890M2MA-RS2H",               VIA_K8M890,  0x105B, 0x0C84, VIA_DEVICE_CRT},
+     {"Shuttle FX22V1",                        VIA_K8M890,  0x1297, 0x3080, VIA_DEVICE_CRT},
++    {"MSI K8M890M2-V",                        VIA_K8M890,  0x1462, 0x7139, VIA_DEVICE_CRT},
+     {"MSI K9VGM-V",                           VIA_K8M890,  0x1462, 0x7253, VIA_DEVICE_CRT},
+     {"Averatec 226x",                         VIA_K8M890,  0x14FF, 0xA002, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+     {"Fujitsu/Siemens Amilo La 1703",         VIA_K8M890,  0x1734, 0x10D9, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+@@ -189,6 +191,7 @@
+     {"MSI P4M900M / P4M900M2-F/L",            VIA_P4M900,  0x1462, 0x7255, VIA_DEVICE_CRT},
+     {"MSI P4M900M3-L",                        VIA_P4M900,  0x1462, 0x7387, VIA_DEVICE_CRT},
+     {"Twinhead H12V",                         VIA_P4M900,  0x14FF, 0xA00F, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
++    {"Twinhead K15V",                         VIA_P4M900,  0x14FF, 0xA012, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+     {"Everex NC1501/NC1503",                  VIA_P4M900,  0x1509, 0x1E30, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+     {"Clevo M660SE",                          VIA_P4M900,  0x1558, 0x0664, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+     {"Clevo M660SR",                          VIA_P4M900,  0x1558, 0x0669, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+@@ -224,6 +227,7 @@
+ 
+     /*** VX800 ***/
+     {"VIA Epia M700",                         VIA_VX800,   0x1106, 0x1122, VIA_DEVICE_CRT},
++    {"Guillemot-Hercules ECafe EC900B",       VIA_VX800,   0x1106, 0x3349, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+     {"VIA OpenBook",                          VIA_VX800,   0x1170, 0x0311, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, /* VIA OpenBook eNote VBE8910 */
+     {"Samsung NC20",                          VIA_VX800,   0x144d, 0xc04e, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+     {"Quanta DreamBook Light IL1",            VIA_VX800,   0x152d, 0x0771, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+@@ -231,6 +235,7 @@
+ 
+     /*** VX855 ***/
+     {"VIA VT8562C",                           VIA_VX855,   0x1106, 0x5122, VIA_DEVICE_CRT},
++    {"OLPC XO 1.5",                           VIA_VX855,   0x152D, 0x0833, VIA_DEVICE_LCD},
+ 
+     /* keep this */
+     {NULL,                                    VIA_UNKNOWN, 0x0000, 0x0000, VIA_DEVICE_NONE}
+diff -ruN xf86-video-openchrome-0.2.904/src/via_mode.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_mode.h
+--- xf86-video-openchrome-0.2.904/src/via_mode.h	2009-10-07 23:31:47.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_mode.h	2010-03-07 01:09:00.000000000 +0100
+@@ -54,50 +54,50 @@
+     CARD16 UniChrome;
+     union pllparams UniChromePro;
+ } ViaDotClocks[] = {
+-    {  25200, 0x513C, /* 0xa79004 */ { 1, 4, 6, 169 } },
+-    {  25312, 0xC763, /* 0xc49005 */ { 1, 4, 7, 198 } },
+-    {  26591, 0x471A, /* 0xce9005 */ { 1, 4, 7, 208 } },
+-    {  31500, 0xC558, /* 0xae9003 */ { 1, 4, 5, 176 } },
+-    {  31704, 0x471F, /* 0xaf9002 */ { 1, 4, 4, 177 } },
+-    {  32663, 0xC449, /* 0x479000 */ { 1, 4, 2,  73 } },
+-    {  33750, 0x4721, /* 0x959002 */ { 1, 4, 4, 151 } },
+-    {  35500, 0x5877, /* 0x759001 */ { 1, 4, 3, 119 } },
+-    {  36000, 0x5879, /* 0x9f9002 */ { 1, 4, 4, 161 } },
+-    {  39822, 0xC459, /* 0x578c02 */ { 1, 3, 4,  89 } },
+-    {  40000, 0x515F, /* 0x848c04 */ { 1, 3, 6, 134 } },
+-    {  41164, 0x4417, /* 0x2c8c00 */ { 1, 3, 2,  46 } },
+-    {  46981, 0x5069, /* 0x678c02 */ { 1, 3, 4, 105 } },
+-    {  49500, 0xC353, /* 0xa48c04 */ { 3, 3, 5, 138 } },
+-    {  50000, 0xC354, /* 0x368c00 */ { 1, 3, 2,  56 } },
+-    {  56300, 0x4F76, /* 0x3d8c00 */ { 1, 3, 2,  63 } },
+-    {  57275,      0, /* 0x3e8c00 */ { 1, 3, 5, 157 } }, /* For XO 1.5 no need for a unichrome clock */
+-    {  57284, 0x4E70, /* 0x3e8c00 */ { 1, 3, 2,  64 } },
+-    {  64995, 0x0D3B, /* 0x6b8c01 */ { 1, 3, 3, 109 } },
+-    {  65000, 0x0D3B, /* 0x6b8c01 */ { 1, 3, 3, 109 } }, /* Slightly unstable on PM800 */
+-    {  65028, 0x866D, /* 0x6b8c01 */ { 1, 3, 3, 109 } },
+-    {  74480, 0x156E, /* 0x288800 */ { 1, 2, 2,  42 } },
+-    {  75000, 0x156E, /* 0x288800 */ { 1, 2, 2,  42 } },
+-    {  78800, 0x442C, /* 0x2a8800 */ { 1, 2, 2,  44 } },
+-    {  81135, 0x0622, /* 0x428801 */ { 1, 2, 3,  68 } },
+-    {  81613, 0x4539, /* 0x708803 */ { 1, 2, 5, 114 } },
+-    {  94500, 0x4542, /* 0x4d8801 */ { 1, 2, 3,  79 } },
+-    { 108000, 0x0B53, /* 0x778802 */ { 1, 2, 4, 121 } },
+-    { 108280, 0x4879, /* 0x778802 */ { 1, 2, 4, 121 } },
+-    { 122000, 0x0D6F, /* 0x428800 */ { 1, 2, 2,  68 } },
+-    { 122726, 0x073C, /* 0x878802 */ { 1, 2, 4, 137 } },
+-    { 135000, 0x0742, /* 0x6f8801 */ { 1, 2, 3, 113 } },
+-    { 148500, 0x0853, /* 0x518800 */ { 1, 2, 2,  83 } },
+-    { 155800, 0x0857, /* 0x558402 */ { 1, 1, 4,  87 } }, 
+-    { 157500, 0x422C, /* 0x2a8400 */ { 1, 1, 2,  44 } },
+-    { 161793, 0x4571, /* 0x6f8403 */ { 1, 1, 5, 113 } }, 
+-    { 162000, 0x0A71, /* 0x6f8403 */ { 1, 1, 5, 113 } },
+-    { 175500, 0x4231, /* 0x2f8400 */ { 1, 1, 2,  49 } },
+-    { 189000, 0x0542, /* 0x4d8401 */ { 1, 1, 3,  79 } },
+-    { 202500, 0x0763, /* 0x6F8402 */ { 1, 1, 4, 113 } },
+-    { 204800, 0x0764, /* 0x548401 */ { 1, 1, 3,  86 } },
+-    { 218300, 0x043D, /* 0x3b8400 */ { 1, 1, 2,  61 } },
+-    { 229500, 0x0660, /* 0x3e8400 */ { 1, 1, 2,  64 } }, /* Not tested on Pro } */
+-    {      0,      0,                { 0, 0, 0,   0 } }
++    {  25200, 0x513C, /* 0xa79004 */ { { 1, 4, 6, 169 } } },
++    {  25312, 0xC763, /* 0xc49005 */ { { 1, 4, 7, 198 } } },
++    {  26591, 0x471A, /* 0xce9005 */ { { 1, 4, 7, 208 } } },
++    {  31500, 0xC558, /* 0xae9003 */ { { 1, 4, 5, 176 } } },
++    {  31704, 0x471F, /* 0xaf9002 */ { { 1, 4, 4, 177 } } },
++    {  32663, 0xC449, /* 0x479000 */ { { 1, 4, 2,  73 } } },
++    {  33750, 0x4721, /* 0x959002 */ { { 1, 4, 4, 151 } } },
++    {  35500, 0x5877, /* 0x759001 */ { { 1, 4, 3, 119 } } },
++    {  36000, 0x5879, /* 0x9f9002 */ { { 1, 4, 4, 161 } } },
++    {  39822, 0xC459, /* 0x578c02 */ { { 1, 3, 4,  89 } } },
++    {  40000, 0x515F, /* 0x848c04 */ { { 1, 3, 6, 134 } } },
++    {  41164, 0x4417, /* 0x2c8c00 */ { { 1, 3, 2,  46 } } },
++    {  46981, 0x5069, /* 0x678c02 */ { { 1, 3, 4, 105 } } },
++    {  49500, 0xC353, /* 0xa48c04 */ { { 3, 3, 5, 138 } } },
++    {  50000, 0xC354, /* 0x368c00 */ { { 1, 3, 2,  56 } } },
++    {  56300, 0x4F76, /* 0x3d8c00 */ { { 1, 3, 2,  63 } } },
++    {  57275,      0, /* 0x3e8c00 */ { { 1, 3, 5, 157 } } }, /* For XO 1.5 no need for a unichrome clock */
++    {  57284, 0x4E70, /* 0x3e8c00 */ { { 1, 3, 2,  64 } } },
++    {  64995, 0x0D3B, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } },
++    {  65000, 0x0D3B, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } }, /* Slightly unstable on PM800 */
++    {  65028, 0x866D, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } },
++    {  74480, 0x156E, /* 0x288800 */ { { 1, 2, 2,  42 } } },
++    {  75000, 0x156E, /* 0x288800 */ { { 1, 2, 2,  42 } } },
++    {  78800, 0x442C, /* 0x2a8800 */ { { 1, 2, 2,  44 } } },
++    {  81135, 0x0622, /* 0x428801 */ { { 1, 2, 3,  68 } } },
++    {  81613, 0x4539, /* 0x708803 */ { { 1, 2, 5, 114 } } },
++    {  94500, 0x4542, /* 0x4d8801 */ { { 1, 2, 3,  79 } } },
++    { 108000, 0x0B53, /* 0x778802 */ { { 1, 2, 4, 121 } } },
++    { 108280, 0x4879, /* 0x778802 */ { { 1, 2, 4, 121 } } },
++    { 122000, 0x0D6F, /* 0x428800 */ { { 1, 2, 2,  68 } } },
++    { 122726, 0x073C, /* 0x878802 */ { { 1, 2, 4, 137 } } },
++    { 135000, 0x0742, /* 0x6f8801 */ { { 1, 2, 3, 113 } } },
++    { 148500, 0x0853, /* 0x518800 */ { { 1, 2, 2,  83 } } },
++    { 155800, 0x0857, /* 0x558402 */ { { 1, 1, 4,  87 } } }, 
++    { 157500, 0x422C, /* 0x2a8400 */ { { 1, 1, 2,  44 } } },
++    { 161793, 0x4571, /* 0x6f8403 */ { { 1, 1, 5, 113 } } }, 
++    { 162000, 0x0A71, /* 0x6f8403 */ { { 1, 1, 5, 113 } } },
++    { 175500, 0x4231, /* 0x2f8400 */ { { 1, 1, 2,  49 } } },
++    { 189000, 0x0542, /* 0x4d8401 */ { { 1, 1, 3,  79 } } },
++    { 202500, 0x0763, /* 0x6F8402 */ { { 1, 1, 4, 113 } } },
++    { 204800, 0x0764, /* 0x548401 */ { { 1, 1, 3,  86 } } },
++    { 218300, 0x043D, /* 0x3b8400 */ { { 1, 1, 2,  61 } } },
++    { 229500, 0x0660, /* 0x3e8400 */ { { 1, 1, 2,  64 } } }, /* Not tested on Pro } */
++    {      0,      0,                { { 0, 0, 0,   0 } } }
+ };
+ 
+ /*
+diff -ruN xf86-video-openchrome-0.2.904/src/via_panel.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_panel.c
+--- xf86-video-openchrome-0.2.904/src/via_panel.c	2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_panel.c	2010-03-07 01:09:00.000000000 +0100
+@@ -171,12 +171,18 @@
+                      resWidth, resHeight, panelWidth, panelHeight));
+ 
+     if (resWidth < panelWidth) {
+-        /* FIXME: It is different for chipset < K8M800 */
+-        horScalingFactor = ((resWidth - 1) * 4096) / (panelWidth - 1);
++        /* Load Horizontal Scaling Factor */
++        if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++            horScalingFactor = ((resWidth - 1) * 4096) / (panelWidth - 1);
++            
++            /* Horizontal scaling enabled */
++            cra2 = 0xC0;
++            cr9f = horScalingFactor & 0x0003;          /* HSCaleFactor[1:0] at CR9F[1:0] */
++	} else {
++            /* TODO: Need testing */
++            horScalingFactor = ((resWidth - 1) * 1024) / (panelWidth - 1);
++        }
+ 
+-        /* Horizontal scaling enabled */
+-        cra2 = 0xC0;
+-        cr9f = horScalingFactor & 0x0003;          /* HSCaleFactor[1:0] at CR9F[1:0] */
+         cr77 = (horScalingFactor & 0x03FC) >> 2;   /* HSCaleFactor[9:2] at CR77[7:0] */
+         cr79 = (horScalingFactor & 0x0C00) >> 10;  /* HSCaleFactor[11:10] at CR79[5:4] */
+         cr79 <<= 4;
+@@ -184,11 +190,18 @@
+     }
+ 
+     if (resHeight < panelHeight) {
+-        verScalingFactor = ((resHeight - 1) * 2048) / (panelHeight - 1);
++        /* Load Vertical Scaling Factor */
++        if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++            verScalingFactor = ((resHeight - 1) * 2048) / (panelHeight - 1);
++
++            /* Vertical scaling enabled */
++            cra2 |= 0x08;
++            cr79 |= ((verScalingFactor & 0x0001) << 3);       /* VSCaleFactor[0] at CR79[3] */
++        } else {
++            /* TODO: Need testing */
++            verScalingFactor = ((resHeight - 1) * 1024) / (panelHeight - 1);
++        }
+ 
+-        /* Vertical scaling enabled */
+-        cra2 |= 0x08;
+-        cr79 |= ((verScalingFactor & 0x0001) << 3);       /* VSCaleFactor[0] at CR79[3] */
+         cr78 |= (verScalingFactor & 0x01FE) >> 1;         /* VSCaleFactor[8:1] at CR78[7:0] */
+         cr79 |= ((verScalingFactor & 0x0600) >> 9) << 6;  /* VSCaleFactor[10:9] at CR79[7:6] */
+         scaling = TRUE;
+@@ -203,12 +216,18 @@
+         ViaCrtcMask(hwp, 0x77, cr77, 0xFF);
+         ViaCrtcMask(hwp, 0x78, cr78, 0xFF);
+         ViaCrtcMask(hwp, 0x79, cr79, 0xF8);
+-        ViaCrtcMask(hwp, 0x9F, cr9f, 0x03);
++        if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++            ViaCrtcMask(hwp, 0x9F, cr9f, 0x03);
++        }
+         ViaCrtcMask(hwp, 0x79, 0x03, 0x03);
+-    } else
++    } else {
++        /*  Disable panel scale */
+         ViaCrtcMask(hwp, 0x79, 0x00, 0x01);
+-
+-    ViaCrtcMask(hwp, 0xA2, cra2, 0xC8);
++    }
++    
++    if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++        ViaCrtcMask(hwp, 0xA2, cra2, 0xC8);
++    }
+ 
+     /* Horizontal scaling selection: interpolation */
+     // ViaCrtcMask(hwp, 0x79, 0x02, 0x02);
+@@ -233,14 +252,14 @@
+ 
+     if (panelMode->Width && panelMode->Height) {
+ 
+-        /* TODO: fix refresh rate and check malloc */
++        /* TODO: fix refresh rate */
+         DisplayModePtr p = malloc( sizeof(DisplayModeRec) ) ;
+-        memset(p, 0, sizeof(DisplayModeRec));
++        if (p) {
++            memset(p, 0, sizeof(DisplayModeRec));
+ 
+-        float refresh = 60.0f ;
++            float refresh = 60.0f ;
+ 
+-        /* The following code is borrowed from xf86SetModeCrtc. */
+-        if (p) {
++            /* The following code is borrowed from xf86SetModeCrtc. */
+             viaTimingCvt(p, panelMode->Width, panelMode->Height, refresh, FALSE, TRUE);
+             p->CrtcHDisplay = p->HDisplay;
+             p->CrtcHSyncStart = p->HSyncStart;
+@@ -256,9 +275,13 @@
+             p->CrtcVBlankEnd = max(p->CrtcVSyncEnd, p->CrtcVTotal);
+             p->CrtcHBlankStart = min(p->CrtcHSyncStart, p->CrtcHDisplay);
+             p->CrtcHBlankEnd = max(p->CrtcHSyncEnd, p->CrtcHTotal);
+-
++            
++            pVia->pBIOSInfo->Panel->NativeDisplayMode = p;
++        } else {
++            xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
++                     "Out of memory. Size: %d bytes\n", sizeof(DisplayModeRec));
+         }
+-        pVia->pBIOSInfo->Panel->NativeDisplayMode = p;
++        
+     } else {
+         xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+                    "Invalid panel dimension (%dx%d)\n", panelMode->Width,
+@@ -339,22 +362,22 @@
+ ViaPanelGetSizeFromEDID(ScrnInfoPtr pScrn, xf86MonPtr pMon,
+                         int *width, int *height)
+ {
+-    int i, max = 0, vsize;
++    int i, max_hsize = 0, vsize = 0;
+ 
+     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAGetPanelSizeFromEDID\n"));
+ 
+     /* !!! Why are we not checking VESA modes? */
+ 
+     /* checking standard timings */
+-    for (i = 0; i < 8; i++)
++    for (i = 0; i < STD_TIMINGS; i++)
+         if ((pMon->timings2[i].hsize > 256)
+-            && (pMon->timings2[i].hsize > max)) {
+-            max = pMon->timings2[i].hsize;
++            && (pMon->timings2[i].hsize > max_hsize)) {
++            max_hsize = pMon->timings2[i].hsize;
+             vsize = pMon->timings2[i].vsize;
+         }
+ 
+-    if (max != 0) {
+-        *width = max;
++    if (max_hsize != 0) {
++        *width = max_hsize;
+         *height = vsize;
+         return TRUE;
+     }
+@@ -369,14 +392,14 @@
+             struct detailed_timings timing = pMon->det_mon[i].section.d_timings;
+ 
+             /* ignore v_active for now */
+-            if ((timing.clock > 15000000) && (timing.h_active > max)) {
+-                max = timing.h_active;
++            if ((timing.clock > 15000000) && (timing.h_active > max_hsize)) {
++                max_hsize = timing.h_active;
+                 vsize = timing.v_active;
+             }
+         }
+ 
+-    if (max != 0) {
+-        *width = max;
++    if (max_hsize != 0) {
++        *width = max_hsize;
+         *height = vsize;
+         return TRUE;
+     }
+diff -ruN xf86-video-openchrome-0.2.904/src/via_video.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.c
+--- xf86-video-openchrome-0.2.904/src/via_video.c	2009-10-08 01:39:13.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.c	2010-03-07 01:09:00.000000000 +0100
+@@ -466,8 +466,8 @@
+ 
+     viaVidEng->video1_ctl = 0;
+     viaVidEng->video3_ctl = 0;
+-    viaVidEng->compose = 0x80000000;
+-    viaVidEng->compose = 0x40000000;
++    viaVidEng->compose = V1_COMMAND_FIRE;
++    viaVidEng->compose = V3_COMMAND_FIRE;
+     viaVidEng->color_key = 0x821;
+     viaVidEng->snd_color_key = 0x821;
+ 
+@@ -479,16 +479,16 @@
+     VIAPtr pVia = VIAPTR(pScrn);
+     vmmtr viaVidEng = (vmmtr) pVia->VidMapBase;
+     
++    DBG_DD(ErrorF(" via_video.c : viaSaveVideo : \n"));
+     /* Save video registers */
+-    /* TODO: Identify which registers should be saved and restored */
+     memcpy(pVia->VideoRegs, (void*)viaVidEng, sizeof(video_via_regs));
+ 
+     pVia->dwV1 = ((vmmtr) viaVidEng)->video1_ctl;
+     pVia->dwV3 = ((vmmtr) viaVidEng)->video3_ctl;
+     viaVidEng->video1_ctl = 0;
+     viaVidEng->video3_ctl = 0;
+-    viaVidEng->compose = 0x80000000;
+-    viaVidEng->compose = 0x40000000;
++    viaVidEng->compose = V1_COMMAND_FIRE;
++    viaVidEng->compose = V3_COMMAND_FIRE;
+ }
+ 
+ void
+@@ -496,16 +496,65 @@
+ {
+     VIAPtr pVia = VIAPTR(pScrn);
+     vmmtr viaVidEng = (vmmtr) pVia->VidMapBase;
++    video_via_regs  *localVidEng = pVia->VideoRegs;
++
+     
++    DBG_DD(ErrorF(" via_video.c : viaRestoreVideo : \n"));
+     /* Restore video registers */
+-    /* TODO: Identify which registers should be saved and restored */
+-    memcpy((void*)viaVidEng, pVia->VideoRegs, sizeof(video_via_regs));
+-
++    /* flush restored video engines' setting to VidMapBase */
++    
++    viaVidEng->alphawin_hvstart = localVidEng->alphawin_hvstart;
++    viaVidEng->alphawin_size   = localVidEng->alphawin_size;
++    viaVidEng->alphawin_ctl    = localVidEng->alphawin_ctl;
++    viaVidEng->alphafb_stride  = localVidEng->alphafb_stride;
++    viaVidEng->color_key       = localVidEng->color_key;
++    viaVidEng->alphafb_addr    = localVidEng->alphafb_addr;
++    viaVidEng->chroma_low      = localVidEng->chroma_low;
++    viaVidEng->chroma_up       = localVidEng->chroma_up;
++
++    if (pVia->ChipId != PCI_CHIP_VT3314)
++    {
++        /*VT3314 only has V3*/
++        viaVidEng->video1_ctl      = localVidEng->video1_ctl;
++        viaVidEng->video1_fetch    = localVidEng->video1_fetch;
++        viaVidEng->video1y_addr1   = localVidEng->video1y_addr1;
++        viaVidEng->video1_stride   = localVidEng->video1_stride;
++        viaVidEng->video1_hvstart  = localVidEng->video1_hvstart;
++        viaVidEng->video1_size     = localVidEng->video1_size;
++        viaVidEng->video1y_addr2   = localVidEng->video1y_addr2;
++        viaVidEng->video1_zoom     = localVidEng->video1_zoom;
++        viaVidEng->video1_mictl    = localVidEng->video1_mictl;
++        viaVidEng->video1y_addr0   = localVidEng->video1y_addr0;
++        viaVidEng->video1_fifo     = localVidEng->video1_fifo;
++        viaVidEng->video1y_addr3   = localVidEng->video1y_addr3;
++        viaVidEng->v1_source_w_h   = localVidEng->v1_source_w_h ;
++        viaVidEng->video1_CSC1     = localVidEng->video1_CSC1;
++        viaVidEng->video1_CSC2     = localVidEng->video1_CSC2;
++    }
++    viaVidEng->snd_color_key   = localVidEng->snd_color_key;
++    viaVidEng->v3alpha_prefifo = localVidEng->v3alpha_prefifo;
++    viaVidEng->v3alpha_fifo    = localVidEng->v3alpha_fifo;
++    viaVidEng->video3_CSC2     = localVidEng->video3_CSC2;
++    viaVidEng->video3_CSC2     = localVidEng->video3_CSC2;
++    viaVidEng->v3_source_width = localVidEng->v3_source_width;
++    viaVidEng->video3_ctl      = localVidEng->video3_ctl;
++    viaVidEng->video3_addr0    = localVidEng->video3_addr0;
++    viaVidEng->video3_addr1    = localVidEng->video3_addr1;
++    viaVidEng->video3_stride   = localVidEng->video3_stride;
++    viaVidEng->video3_hvstart  = localVidEng->video3_hvstart;
++    viaVidEng->video3_size     = localVidEng->video3_size;
++    viaVidEng->v3alpha_fetch   = localVidEng->v3alpha_fetch;
++    viaVidEng->video3_zoom     = localVidEng->video3_zoom;
++    viaVidEng->video3_mictl    = localVidEng->video3_mictl;
++    viaVidEng->video3_CSC1     = localVidEng->video3_CSC1;
++    viaVidEng->video3_CSC2     = localVidEng->video3_CSC2;    
++    viaVidEng->compose         = localVidEng->compose;
++    
+     viaVidEng->video1_ctl = pVia->dwV1;
+     viaVidEng->video3_ctl = pVia->dwV3;
+-    viaVidEng->compose = 0x80000000;
+-    viaVidEng->compose = 0x40000000;
+-
++    if (pVia->ChipId != PCI_CHIP_VT3314)
++        viaVidEng->compose = V1_COMMAND_FIRE;
++    viaVidEng->compose = V3_COMMAND_FIRE;
+ }
+ 
+ void
+@@ -524,8 +573,8 @@
+ 
+     viaVidEng->video1_ctl = 0;
+     viaVidEng->video3_ctl = 0;
+-    viaVidEng->compose = 0x80000000;
+-    viaVidEng->compose = 0x40000000;
++    viaVidEng->compose = V1_COMMAND_FIRE;
++    viaVidEng->compose = V3_COMMAND_FIRE;
+ 
+     /*
+      * Free all adaptor info allocated in viaInitVideo.
+@@ -561,7 +610,7 @@
+     XF86VideoAdaptorPtr *adaptors, *newAdaptors;
+     int num_adaptors, num_new;
+ 
+-    DBG_DD(ErrorF(" via_video.c : viaInitVideo : \n"));
++    DBG_DD(ErrorF(" via_video.c : viaInitVideo, Screen[%d]\n", pScrn->scrnIndex));
+ 
+     allAdaptors = NULL;
+     newAdaptors = NULL;
+@@ -832,7 +881,7 @@
+     DevUnion *pdevUnion;
+     int i, j, usedPorts, numPorts;
+ 
+-    DBG_DD(ErrorF(" via_video.c : viaSetupImageVideo: \n"));
++    DBG_DD(ErrorF(" via_video.c : viaSetupAdaptors (viaSetupImageVideo): \n"));
+ 
+     xvBrightness = MAKE_ATOM("XV_BRIGHTNESS");
+     xvContrast = MAKE_ATOM("XV_CONTRAST");
+@@ -1042,6 +1091,8 @@
+         }
+ 
+     } else {
++        DBG_DD(ErrorF(" via_video.c : viaGetPortAttribute : is not supported the attribute\n"));
++        
+         /*return BadMatch */;
+     }
+     return Success;
+@@ -1498,6 +1549,7 @@
+ 
+     DBG_DD(ErrorF(" via_video.c : viaQueryImageAttributes : FourCC=0x%x, ",
+             id));
++    DBG_DD(ErrorF(" via_video.c : Screen[%d],  w=%d, h=%d\n", pScrn->scrnIndex, *w, *h));
+ 
+     if ((!w) || (!h))
+         return 0;
+@@ -1513,6 +1565,7 @@
+ 
+     switch (id) {
+         case FOURCC_YV12: /*Planar format : YV12 -4:2:0 */
++        case FOURCC_I420:
+             *h = (*h + 1) & ~1;
+             size = *w;
+             if (pVia->useDmaBlit)
+diff -ruN xf86-video-openchrome-0.2.904/src/via_video.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.h
+--- xf86-video-openchrome-0.2.904/src/via_video.h	2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.h	2010-03-07 01:09:00.000000000 +0100
+@@ -44,6 +44,10 @@
+ 
+ #define VIDEO_BPP 2
+ 
++
++#define V1_COMMAND_FIRE               0x80000000  /* V1 commands fire */
++#define V3_COMMAND_FIRE               0x40000000  /* V3 commands fire */
++
+ typedef struct
+ {
+     CARD32 interruptflag;	       /* 200 */
+@@ -89,7 +93,7 @@
+     CARD32 video3_ctl;		       /* 2a0 */
+     CARD32 video3_addr0;	       /* 2a4 */
+     CARD32 video3_addr1;	       /* 2a8 */
+-    CARD32 video3_stribe;	       /* 2ac */
++    CARD32 video3_stride;	       /* 2ac */
+     CARD32 video3_hvstart;	       /* 2b0 */
+     CARD32 video3_size;		       /* 2b4 */
+     CARD32 v3alpha_fetch;	       /* 2b8 */
diff --git a/abs/core-testing/xf86-video-r128/LICENSE b/abs/core-testing/xf86-video-r128/LICENSE
new file mode 100644
index 0000000..229a261
--- /dev/null
+++ b/abs/core-testing/xf86-video-r128/LICENSE
@@ -0,0 +1,219 @@
+
+Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and
+that the name of Marc Aurele La France not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission.  Marc Aurele La France makes no representations
+about the suitability of this software for any purpose.  It is provided
+"as-is" without express or implied warranty.
+
+MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO
+EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 2000 Gareth Hughes
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+GARETH HUGHES BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+(c) 2004 Adam Jackson.  Standard MIT license applies.
+
+Copyright 1999-2000 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to
+deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario,
+Precision Insight, Inc., Cedar Park, Texas, and
+VA Linux Systems Inc., Fremont, California.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation on the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT.  IN NO EVENT SHALL ATI, PRECISION INSIGHT, VA LINUX
+SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Copyright 2003 Alex Deucher.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation on the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT.  IN NO EVENT SHALL ALEX DEUCHER, OR ANY OTHER
+CONTRIBUTORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+
+/**************************************************************************
+
+Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc.,
+                                               Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+on the rights to use, copy, modify, merge, publish, distribute, sub
+license, and/or sell copies of the Software, and to permit persons to whom
+the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+/*
+ * Authors:
+ *   Kevin E. Martin <martin@valinux.com>
+ *   Gareth Hughes <gareth@valinux.com>
+ *
+ */
+
+/**************************************************************************
+
+Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and
+                     VA Linux Systems Inc., Fremont, California.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+on the rights to use, copy, modify, merge, publish, distribute, sub
+license, and/or sell copies of the Software, and to permit persons to whom
+the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+/*
+ * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario,
+ *                      Precision Insight, Inc., Cedar Park, Texas, and
+ *                      VA Linux Systems Inc., Fremont, California.
+ *
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation on the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial
+ * portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT.  IN NO EVENT SHALL ATI, PRECISION INSIGHT, VA LINUX
+ * SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Authors:
+ *   Kevin E. Martin <martin@valinux.com>
+ *   Rickard E. Faith <faith@valinux.com>
+ *   Daryll Strauss <daryll@valinux.com>
+ *   Gareth Hughes <gareth@valinux.com>
+ *
+ */
+
diff --git a/abs/core-testing/xf86-video-r128/PKGBUILD b/abs/core-testing/xf86-video-r128/PKGBUILD
index 9339f9a..3cd21c3 100644
--- a/abs/core-testing/xf86-video-r128/PKGBUILD
+++ b/abs/core-testing/xf86-video-r128/PKGBUILD
@@ -1,48 +1,27 @@
-# $Id: PKGBUILD 13012 2008-09-25 18:50:04Z jgc $
+# $Id: PKGBUILD 75907 2010-04-04 19:33:21Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-r128
-pkgver=6.8.0
-pkgrel=2
-_mesaver="7.2"
+pkgver=6.8.1
+pkgrel=3
 pkgdesc="X.org ati Rage128 video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libdrm>=2.3.1' 'libgl>=7.2')
-makedepends=('pkgconfig' 'xorg-server>=1.5.1' 'imake' 'mesa>=7.2'
-	     'glproto>=1.4.9' 'xf86driproto' 'diffutils')
-conflicts=('xorg-server<1.5.1')
+license=('custom')
+depends=('glibc' 'r128-dri>=7.8')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' "mesa>=7.8" 'glproto>=1.4.11' 'xf86driproto' 'xineramaproto')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-       http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2
-       mesa-7.1-link-shared.patch)
-md5sums=('007bec0c6b07d9d3aeca4da18e561efb'
-         '04d379292e023df0b0266825cb0dbde5'
-         'f0baa948d9810f268413111ee439d24b')
+       LICENSE)
+md5sums=('2b90854a62a4d45d652062f582dc8d13'
+         '97ad034bea2a153f4418a6bb0c77acf4')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr \
               --enable-dri || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-
-  cd ${srcdir}/Mesa-${_mesaver}
-  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch || return 1
-  ./configure --prefix=/usr \
-    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
-    --with-dri-drivers=r128 \
-    --enable-glx-tls \
-    --disable-ttm-api \
-    --with-driver=dri \
-    --enable-xcb \
-    --disable-glu \
-    --disable-glut \
-    --disable-glw || return 1
-  make || return 1
-  cd src/mesa/drivers/dri || return 1
-  make DESTDIR=${pkgdir} install || return 1
-  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so
-  rm -rf ${pkgdir}/usr/include
-  rm -rf ${pkgdir}/usr/lib/pkgconfig
+  make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
diff --git a/abs/core-testing/xf86-video-radeonhd/PKGBUILD b/abs/core-testing/xf86-video-radeonhd/PKGBUILD
index ce29874..11ca3e5 100644
--- a/abs/core-testing/xf86-video-radeonhd/PKGBUILD
+++ b/abs/core-testing/xf86-video-radeonhd/PKGBUILD
@@ -1,21 +1,20 @@
-# $Id: PKGBUILD 22422 2008-12-26 19:30:38Z jgc $
-# Maintainer:  <juergen@archlinux.org>
+# $Id: PKGBUILD 75904 2010-04-04 19:30:10Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-radeonhd
-pkgver=1.2.4
-pkgrel=1
+pkgver=1.3.0
+pkgrel=2
 pkgdesc="Experimental Radeon HD video driver for r500 and r600 ATI cards"
 arch=(i686 x86_64)
 url="http://wiki.x.org/wiki/radeonhd"
 license=('custom')
-depends=('glibc' 'ati-dri>=7.2' 'libdrm' 'libpciaccess')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'diffutils')
-conflicts=('xorg-server<1.5.3')
+depends=('glibc' 'ati-dri>=7.8' 'libdrm>=2.4.20' 'libpciaccess')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'diffutils')
+conflicts=('xorg-server<1.8.0')
 options=('!libtool')
-conflicts=('xf86-video-radeonhd-git')
-replaces=('xf86-video-radeonhd-git')
 groups=('xorg-video-drivers')
 source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('3c9cfffe7e3d795dde59ea0eef7361b1')
+md5sums=('7b6641aa9d836f1621b9b220ad6771b8')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/abs/core-testing/xf86-video-rendition/PKGBUILD b/abs/core-testing/xf86-video-rendition/PKGBUILD
index 6bb78d2..1b7ae1c 100644
--- a/abs/core-testing/xf86-video-rendition/PKGBUILD
+++ b/abs/core-testing/xf86-video-rendition/PKGBUILD
@@ -1,23 +1,28 @@
-# $Id: PKGBUILD 11462 2008-08-31 15:55:46Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 85341 2010-07-12 17:20:08Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-rendition
-pkgver=4.2.0
+pkgver=4.2.4
 pkgrel=1
 pkgdesc="X.org Rendition video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-conflicts=('xorg-server<1.4.99.906')
-options=('!libtool')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0')
+conflicts=('xorg-server<1.8.0')
+options=('!libtool' '!strip')
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('7c03de3804d4c4f6ff59f74050d24b2b')
+sha1sums=('16148c25183f7829c22bc9dfdb588c1a16bf4565')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr
+  make
+  make DESTDIR="${pkgdir}" install
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+
+  strip --strip-unneeded "${pkgdir}/usr/lib/xorg/modules/drivers/rendition_drv.so"
 }
diff --git a/abs/core-testing/xf86-video-s3/LICENSE b/abs/core-testing/xf86-video-s3/LICENSE
new file mode 100644
index 0000000..a4c8d5d
--- /dev/null
+++ b/abs/core-testing/xf86-video-s3/LICENSE
@@ -0,0 +1,25 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+     Copyright 2001  Ani Joshi <ajoshi@unixbox.com>
+
+     XFree86 4.x driver for S3 chipsets
+
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation and
+that the name of Ani Joshi not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission.  Ani Joshi makes no representations
+about the suitability of this software for any purpose.  It is provided
+"as-is" without express or implied warranty.
+
+ANI JOSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL ANI JOSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/abs/core-testing/xf86-video-s3/PKGBUILD b/abs/core-testing/xf86-video-s3/PKGBUILD
index f294fe9..479e7e7 100644
--- a/abs/core-testing/xf86-video-s3/PKGBUILD
+++ b/abs/core-testing/xf86-video-s3/PKGBUILD
@@ -1,23 +1,27 @@
-# $Id: PKGBUILD 22275 2008-12-25 16:57:57Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 75898 2010-04-04 19:22:33Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-s3
-pkgver=0.6.1
-pkgrel=1
+pkgver=0.6.3
+pkgrel=2
 pkgdesc="X.org S3 video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3')
-conflicts=('xorg-server<1.5.3')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0')
+conflicts=('xorg-server<1.8.0')
 options=('!libtool')
 groups=('xorg-video-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('a5f1f2f93a50e56bd3aeed009c407337')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+        LICENSE)
+md5sums=('5eb06d88533fb327d067928faeb20860'
+         '6b2bea29522da7cbb81cadde3235024d')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
diff --git a/abs/core-testing/xf86-video-s3virge/LICENSE b/abs/core-testing/xf86-video-s3virge/LICENSE
new file mode 100644
index 0000000..23c2aea
--- /dev/null
+++ b/abs/core-testing/xf86-video-s3virge/LICENSE
@@ -0,0 +1,25 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright (C) 1994-2000 The XFree86 Project, Inc.  All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
diff --git a/abs/core-testing/xf86-video-s3virge/PKGBUILD b/abs/core-testing/xf86-video-s3virge/PKGBUILD
index 18391fb..2428ac4 100644
--- a/abs/core-testing/xf86-video-s3virge/PKGBUILD
+++ b/abs/core-testing/xf86-video-s3virge/PKGBUILD
@@ -1,24 +1,26 @@
-# $Id: PKGBUILD 22269 2008-12-25 16:53:28Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 75895 2010-04-04 19:17:15Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
 pkgname=xf86-video-s3virge
-pkgver=1.10.2
-pkgrel=1
+pkgver=1.10.4
+pkgrel=2
 pkgdesc="X.org S3 Virge video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3')
-conflicts=('xorg-server<1.5.3')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0')
+conflicts=('xorg-server<1.8.0')
 options=(!libtool)
 groups=('xorg-video-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('69784e4964d75487d81be4eae3d467dd')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+        LICENSE)
+md5sums=('6517bbbf808c700502d51acdc44662f8' 'c0a38dfcd6288eff39322f7c584b8d1e')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr \
-              --disable-dri || return 1
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
diff --git a/abs/core-testing/xf86-video-savage/LICENSE b/abs/core-testing/xf86-video-savage/LICENSE
new file mode 100644
index 0000000..72598e8
--- /dev/null
+++ b/abs/core-testing/xf86-video-savage/LICENSE
@@ -0,0 +1,97 @@
+Copyright (C) 1994-2000 The XFree86 Project, Inc.  All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
+
+
+Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
+Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sub license,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+VIA, S3 GRAPHICS, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+/*
+ * Copyright 2005  Felix Kuehling
+ * All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sub license,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT. IN NO EVENT SHALL FELIX KUEHLING BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/**************************************************************************
+
+Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and
+                     VA Linux Systems Inc., Fremont, California.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+on the rights to use, copy, modify, merge, publish, distribute, sub
+license, and/or sell copies of the Software, and to permit persons to whom
+the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
diff --git a/abs/core-testing/xf86-video-savage/PKGBUILD b/abs/core-testing/xf86-video-savage/PKGBUILD
index 0cdb7c7..2dd4f38 100644
--- a/abs/core-testing/xf86-video-savage/PKGBUILD
+++ b/abs/core-testing/xf86-video-savage/PKGBUILD
@@ -1,48 +1,29 @@
-# $Id: PKGBUILD 13010 2008-09-25 18:47:39Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 75892 2010-04-04 19:10:23Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-savage
-pkgver=2.2.1
-pkgrel=2
+pkgver=2.3.1
+pkgrel=3
 pkgdesc="X.org savage video driver"
-_mesaver="7.2"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libgl>=7.2')
-makedepends=('pkgconfig' 'xorg-server>=1.5.1' 'imake' 'mesa>=7.2' 'xf86driproto' 'glproto>=1.4.9')
-conflicts=('xorg-server<1.5.1')
-options=(!libtool)
+license=('custom')
+depends=('glibc' 'savage-dri>=7.8')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' "mesa>=7.8" 'xf86driproto' 'glproto>=1.4.10')
+conflicts=('xorg-server<1.8.0')
+options=(!libtool !makeflags)
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-	http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2
-	mesa-7.1-link-shared.patch)
-md5sums=('62b8aba48b54eaefeae87df502bf219c'
-         '04d379292e023df0b0266825cb0dbde5'
-         'f0baa948d9810f268413111ee439d24b')
+        LICENSE)
+md5sums=('66c319f610e3699c3de0f3ef630abb32'
+         '0f485840d3cee0a8d9952c0cd34f64c3')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr \
               --enable-dri || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 
-  cd ${startdir}/src/Mesa-${_mesaver}
-  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch
-  ./configure --prefix=/usr \
-    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
-    --with-dri-drivers=savage \
-    --enable-glx-tls \
-    --disable-ttm-api \
-    --with-driver=dri \
-    --enable-xcb \
-    --disable-glu \
-    --disable-glut \
-    --disable-glw || return 1
-  make || return 1
-  cd src/mesa/drivers/dri || return 1
-  make DESTDIR=${pkgdir} install || return 1
-  rm -rf ${pkgdir}/usr/lib/pkgconfig
-  rm -rf ${pkgdir}/usr/include
-  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
diff --git a/abs/core-testing/xf86-video-siliconmotion/PKGBUILD b/abs/core-testing/xf86-video-siliconmotion/PKGBUILD
index 3518f94..1590595 100644
--- a/abs/core-testing/xf86-video-siliconmotion/PKGBUILD
+++ b/abs/core-testing/xf86-video-siliconmotion/PKGBUILD
@@ -1,23 +1,27 @@
-# $Id: PKGBUILD 23018 2009-01-01 16:25:18Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 79857 2010-05-08 12:49:29Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
 pkgname=xf86-video-siliconmotion
-pkgver=1.7.0
+pkgver=1.7.4
 pkgrel=1
 pkgdesc="X.org siliconmotion video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3')
-conflicts=('xorg-server<1.5.3')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0')
+conflicts=('xorg-server<1.8.0')
 options=('!libtool')
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('f9acffba89d8be200f91bab3d1df80da')
+sha1sums=('3c0fd42fbd301e66104e4b9190796d102a034787')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
diff --git a/abs/core-testing/xf86-video-sis/PKGBUILD b/abs/core-testing/xf86-video-sis/PKGBUILD
index dfb0625..f1d7aad 100644
--- a/abs/core-testing/xf86-video-sis/PKGBUILD
+++ b/abs/core-testing/xf86-video-sis/PKGBUILD
@@ -1,48 +1,27 @@
-# $Id: PKGBUILD 22281 2008-12-25 17:05:24Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 85368 2010-07-12 17:35:43Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-sis
-pkgver=0.10.1
+pkgver=0.10.3
 pkgrel=1
 pkgdesc="X.org SiS video driver"
-_mesaver="7.2"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libgl>=7.2')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'xf86driproto' 'mesa>=7.1' 'glproto>=1.4.9')
-conflicts=('xorg-server<1.5.1')
+license=('custom')
+depends=('glibc' 'sis-dri>=7.8')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'xf86driproto' 'mesa>=7.8' 'glproto>=1.4.10' 'xf86dgaproto' 'xineramaproto')
+conflicts=('xorg-server<1.8.0')
 options=('!libtool')
 groups=('xorg-video-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-	http://downloads.sourceforge.net/mesa3d/MesaLib-${_mesaver}.tar.bz2
-	mesa-7.1-link-shared.patch)
-md5sums=('9f57c2f5ccbd8340db32da1c74083771'
-         '04d379292e023df0b0266825cb0dbde5'
-         'f0baa948d9810f268413111ee439d24b')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('158673747e240b0c33499685a32d46bdaead7cd5')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr \
-              --enable-dri || return 1
-  make || return 1
-  make DESTDIR="${pkgdir}" install || return 1
+  ./configure --prefix=/usr --enable-dri
+  make
+  make DESTDIR="${pkgdir}" install
 
-  cd "${srcdir}/Mesa-${_mesaver}"
-  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1
-  ./configure --prefix=/usr \
-    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
-    --with-dri-drivers=sis \
-    --enable-glx-tls \
-    --disable-ttm-api \
-    --with-driver=dri \
-    --enable-xcb \
-    --disable-glu \
-    --disable-glut \
-    --disable-glw || return 1
-  make || return 1
-  cd src/mesa/drivers/dri || return 1
-  make DESTDIR="${pkgdir}" install || return 1
-  rm -rf "${pkgdir}/usr/lib/pkgconfig"
-  rm -rf "${pkgdir}/usr/include"
-  rm -f "${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so"
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
 }
diff --git a/abs/core-testing/xf86-video-sisusb/PKGBUILD b/abs/core-testing/xf86-video-sisusb/PKGBUILD
index 0d205b1..d4814df 100644
--- a/abs/core-testing/xf86-video-sisusb/PKGBUILD
+++ b/abs/core-testing/xf86-video-sisusb/PKGBUILD
@@ -1,23 +1,26 @@
-# $Id: PKGBUILD 11481 2008-08-31 16:45:57Z jgc $
+# $Id: PKGBUILD 85336 2010-07-12 17:15:23Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-sisusb
-pkgver=0.9.0
+pkgver=0.9.4
 pkgrel=1
 pkgdesc="X.org SiS USB video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-conflicts=('xorg-server<1.4.99.906')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'xineramaproto')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('7b1f5465f423a859f306f4f1d6306a1b')
+sha1sums=('600fd49dffe00121f9042555fea55948653d1a7e')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr
+  make
+  make DESTDIR="${pkgdir}" install
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
 }
diff --git a/abs/core-testing/xf86-video-tdfx/LICENSE b/abs/core-testing/xf86-video-tdfx/LICENSE
new file mode 100644
index 0000000..08b1add
--- /dev/null
+++ b/abs/core-testing/xf86-video-tdfx/LICENSE
@@ -0,0 +1,160 @@
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+/*
+ * Copyright 2000 VA Linux Systems Inc., Fremont, California.
+ *
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * VA LINUX SYSTEMS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+
+/*
+ * GLX Hardware Device Driver for Intel i810
+ * Copyright (C) 1999 Keith Whitwell
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * KEITH WHITWELL, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ */
+ 
+
+/*
+ * GLX Hardware Device Driver for Intel tdfx
+ * Copyright (C) 1999 Keith Whitwell
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * KEITH WHITWELL, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ */
+
+
+/*
+ * Mesa 3-D graphics library
+ * Version:  4.1
+ *
+ * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/* Authors:
+ *    Keith Whitwell <keith@tungstengraphics.com>
+ *    Daniel Borca <dborca@users.sourceforge.net>
+ */
+
+
+/*
+ * Mesa 3-D graphics library
+ * Version:  5.1
+ *
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/* Authors:
+ *    Keith Whitwell
+ *    Daniel Borca
+ */
diff --git a/abs/core-testing/xf86-video-tdfx/PKGBUILD b/abs/core-testing/xf86-video-tdfx/PKGBUILD
index 0f62948..7c59244 100644
--- a/abs/core-testing/xf86-video-tdfx/PKGBUILD
+++ b/abs/core-testing/xf86-video-tdfx/PKGBUILD
@@ -1,48 +1,29 @@
-# $Id: PKGBUILD 22277 2008-12-25 17:00:41Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 75883 2010-04-04 18:58:53Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-tdfx
-pkgver=1.4.1
-pkgrel=1
+pkgver=1.4.3
+pkgrel=3
 pkgdesc="X.org tdfx video driver"
-_mesaver="7.2"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libgl>=7.2')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'mesa>=7.2')
-conflicts=('xorg-server<1.5.3')
+license=('custom')
+depends=('glibc' 'tdfx-dri>=7.8')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'mesa>=7.8' 'xf86driproto' 'glproto')
+conflicts=('xorg-server<1.8.0')
 options=(!libtool)
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2
-	mesa-7.1-link-shared.patch)
-md5sums=('59acf2a4f721f9b7abbd121748467b16'
-         '04d379292e023df0b0266825cb0dbde5'
-         'f0baa948d9810f268413111ee439d24b')
+        LICENSE)
+md5sums=('8161bbf2b100c21b609163f0010766b3'
+         '978e9486ffd4e4164c12dc68c84186e1')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr \
-              --enable-dri || return 1
+      --enable-dri || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
 
-  cd "${srcdir}/Mesa-${_mesaver}"
-  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1
-  ./configure --prefix=/usr \
-    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
-    --with-dri-drivers=tdfx \
-    --enable-glx-tls \
-    --disable-ttm-api \
-    --with-driver=dri \
-    --enable-xcb \
-    --disable-glu \
-    --disable-glut \
-    --disable-glw || return 1
-  make || return 1
-  cd src/mesa/drivers/dri || return 1
-  make DESTDIR="${pkgdir}" install || return 1
-  rm -rf "${pkgdir}/usr/lib/pkgconfig"
-  rm -rf "${pkgdir}/usr/include"
-  rm -f "${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so"
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
diff --git a/abs/core-testing/xf86-video-trident/PKGBUILD b/abs/core-testing/xf86-video-trident/PKGBUILD
index 874f185..cb71f71 100644
--- a/abs/core-testing/xf86-video-trident/PKGBUILD
+++ b/abs/core-testing/xf86-video-trident/PKGBUILD
@@ -1,49 +1,27 @@
-# $Id: PKGBUILD 22291 2008-12-25 17:22:27Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 85363 2010-07-12 17:31:57Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-trident
-pkgver=1.3.1
+pkgver=1.3.4
 pkgrel=1
 pkgdesc="X.org Trident video driver"
-_mesaver="7.2"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libgl>=7.2')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'mesa>=7.2' 'xf86driproto')
-conflicts=('xorg-server<1.5.3')
+license=('custom')
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'mesa>=7.8' 'xf86driproto' 'xf86dgaproto' 'glproto')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=(!libtool)
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2
-	mesa-7.1-link-shared.patch)
-md5sums=('9f280bef235426394013cb5e1854b823'
-         '04d379292e023df0b0266825cb0dbde5'
-         'f0baa948d9810f268413111ee439d24b')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('7c40f5c02bddf399862782b708941e79302318af')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr \
-              --enable-dri || return 1
-  make || return 1
-  make DESTDIR="${pkgdir}" install || return 1
+  ./configure --prefix=/usr
+  make
+  make DESTDIR="${pkgdir}" install
 
-  cd "${srcdir}/Mesa-${_mesaver}"
-  cd ${srcdir}/Mesa-${pkgver}
-  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1
-  ./configure --prefix=/usr \
-    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
-    --with-dri-drivers=trident \
-    --enable-glx-tls \
-    --disable-ttm-api \
-    --with-driver=dri \
-    --enable-xcb \
-    --disable-glu \
-    --disable-glut \
-    --disable-glw || return 1
-  make || return 1
-  cd src/mesa/drivers/dri || return 1
-  make DESTDIR="${pkgdir}" install || return 1
-  rm -rf "${pkgdir}/usr/lib/pkgconfig"
-  rm -rf "${pkgdir}/usr/include"
-  rm -f "${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so"
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
diff --git a/abs/core-testing/xf86-video-tseng/PKGBUILD b/abs/core-testing/xf86-video-tseng/PKGBUILD
index f5909d7..805c447 100644
--- a/abs/core-testing/xf86-video-tseng/PKGBUILD
+++ b/abs/core-testing/xf86-video-tseng/PKGBUILD
@@ -1,23 +1,26 @@
-# $Id: PKGBUILD 22279 2008-12-25 17:02:55Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 85373 2010-07-12 17:40:41Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-tseng
-pkgver=1.2.1
+pkgver=1.2.4
 pkgrel=1
 pkgdesc="X.org tseng video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3')
-conflicts=('xorg-server<1.5.3')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('2f687eddae5dafa5dcc05116561e267c')
+sha1sums=('1b45f55657b2c92f30abb0769cae57fca98d93b7')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR="${pkgdir}" install || return 1
+  ./configure --prefix=/usr
+  make
+  make DESTDIR="${pkgdir}" install
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
 }
diff --git a/abs/core-testing/xf86-video-unichrome/LICENSE b/abs/core-testing/xf86-video-unichrome/LICENSE
new file mode 100644
index 0000000..f400766
--- /dev/null
+++ b/abs/core-testing/xf86-video-unichrome/LICENSE
@@ -0,0 +1,23 @@
+Copyright (c) 2004-2007 Luc Verhaegen. All Rights Reserved.
+Copyright (c) 2004-2005 The Unichrome Project. All Rights Reserved.
+Copyright (c) 1998-2003 VIA Technologies, Inc. All Rights Reserved.
+Copyright (c) 2001-2003 S3 Graphics, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sub license,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
diff --git a/abs/core-testing/xf86-video-unichrome/PKGBUILD b/abs/core-testing/xf86-video-unichrome/PKGBUILD
index 7f3bc57..65e9338 100644
--- a/abs/core-testing/xf86-video-unichrome/PKGBUILD
+++ b/abs/core-testing/xf86-video-unichrome/PKGBUILD
@@ -1,23 +1,29 @@
-# $Id: PKGBUILD 22301 2008-12-25 18:28:12Z jgc $
+# $Id: PKGBUILD 79919 2010-05-09 14:20:58Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-unichrome
 pkgver=0.2.7
-pkgrel=0.1
-_gitversion=1464eb9ecb178163af0e85443c3e591755c8c320
+pkgrel=3
+_gitversion=cd12cce88ff886031c23c743569fba97eccace4e
 pkgdesc="Unichrome video drivers for X.Org"
 arch=(i686 x86_64)
 url="http://unichrome.sf.net/"
-depends=('unichrome-dri>=7.2')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'xorg-util-macros' 'xf86driproto' 'glproto' 'mesa>=7.2' 'autoconf' 'automake' 'libtool')
+license=('custom')
+depends=('unichrome-dri>=7.8.1')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'xorg-util-macros' 'xf86driproto' 'glproto' 'mesa>=7.8.1' 'autoconf' 'automake' 'libtool')
 options=('!libtool')
-conflicts=('xf86-video-via' 'openchrome' 'xf86-video-openchrome' 'xorg-server<1.5.3')
-source=(http://cgit.freedesktop.org/~libv/${pkgname}/snapshot/${pkgname}-${_gitversion}.tar.bz2)
-md5sums=('dfef1e3b9ed24d50938ea5ee6f708457')
+conflicts=('xf86-video-via' 'openchrome' 'xf86-video-openchrome' 'xorg-server<1.8.0')
+source=(http://cgit.freedesktop.org/~libv/${pkgname}/snapshot/${pkgname}-${_gitversion}.tar.bz2
+        drm-include.patch
+        LICENSE)
+md5sums=('c64332e6c386ed9a580116e131f288f4'
+         '4a9bf2e3ef338c170a2f58988ebb97dc'
+         '6ea7d64c87c5c32201a1e38e3336e44a')
 
 build() {
   cd "${srcdir}/${pkgname}-${_gitversion}"
-  ./autogen.sh --prefix=/usr \
-               --enable-dri
+  patch -Np0 -i "${srcdir}/drm-include.patch" || return 1
+  ./autogen.sh --prefix=/usr --enable-dri || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
 }
diff --git a/abs/core-testing/xf86-video-unichrome/drm-include.patch b/abs/core-testing/xf86-video-unichrome/drm-include.patch
new file mode 100644
index 0000000..edfe9a8
--- /dev/null
+++ b/abs/core-testing/xf86-video-unichrome/drm-include.patch
@@ -0,0 +1,11 @@
+--- src/via_memory.h.orig	2010-05-09 16:17:00.143352805 +0200
++++ src/via_memory.h	2010-05-09 16:17:14.433351301 +0200
+@@ -30,7 +30,7 @@
+ 
+ /* don't include local via_drm.h when using modular */
+ #ifdef HAVE_CONFIG_H
+-#include "drm/via_drm.h"
++#include <via_drm.h>
+ #else
+ #include "via_drm.h"
+ #endif
diff --git a/abs/core-testing/xf86-video-v4l/LICENSE b/abs/core-testing/xf86-video-v4l/LICENSE
new file mode 100644
index 0000000..535595b
--- /dev/null
+++ b/abs/core-testing/xf86-video-v4l/LICENSE
@@ -0,0 +1,826 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+                                  Licenses
+
+                            The X.Org Foundation
+
+                                 March 2004
+
+1.  Introduction
+
+The X.org Foundation X Window System distribution is a compilation of code
+and documentation from many sources.  This document is intended primarily as
+a guide to the licenses used in the distribution: you must check each file
+and/or package for precise redistribution terms. None-the-less, this summary
+may be useful to many users.  No software incorporating the XFree86 1.1
+license has been incorporated.
+
+This document is based on the compilation from XFree86.
+
+2.  XFree86 License
+
+XFree86 code without an explicit copyright is covered by the following copy-
+right/license:
+
+Copyright (C) 1994-2003 The XFree86 Project, Inc.  All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
+NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other deal-
+ings in this Software without prior written authorization from the XFree86
+Project.
+
+3.  Other Licenses
+
+Portions of code are covered by the following licenses/copyrights.  See indi-
+vidual files for the copyright dates.
+
+3.1  X/MIT Copyrights
+
+3.1.1  X Consortium
+
+Copyright (C) <date> X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE X
+CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+X Window System is a trademark of X Consortium, Inc.
+
+3.1.2  The Open Group
+
+Copyright <date>  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+3.2  Berkeley-based copyrights:
+
+o
+
+3.2.1  General
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+  1.  Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+
+  2.  Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+
+  3.  The name of the author may not be used to endorse or promote products
+      derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER-
+CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.2  UCB/LBL
+
+Copyright (c) 1993 The Regents of the University of California.  All rights
+reserved.
+
+This software was developed by the Computer Systems Engineering group at
+Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and contributed to
+Berkeley.
+
+All advertising materials mentioning features or use of this software must
+display the following acknowledgement: This product includes software devel-
+oped by the University of California, Lawrence Berkeley Laboratory.
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+  1.  Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+
+  2.  Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+
+  3.  All advertising materials mentioning features or use of this software
+      must display the following acknowledgement: This product includes soft-
+      ware developed by the University of California, Berkeley and its con-
+      tributors.
+
+  4.  Neither the name of the University nor the names of its contributors
+      may be used to endorse or promote products derived from this software
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DIS-
+CLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.3  The NetBSD Foundation, Inc.
+
+Copyright (c) 2003 The NetBSD Foundation, Inc.  All rights reserved.
+
+This code is derived from software contributed to The NetBSD Foundation by
+Ben Collver <collver1@attbi.com>
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+  1.   Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+
+  2.   Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+
+  3.   All advertising materials mentioning features or use of this software
+      must display the following acknowledgement: This product includes soft-
+      ware developed by the NetBSD Foundation, Inc. and its contributors.
+
+  4.   Neither the name of The NetBSD Foundation nor the names of its con-
+      tributors may be used to endorse or promote products derived from this
+      software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSE-
+QUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAM-
+AGE.
+
+3.2.4  Theodore Ts'o.
+
+Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999.  All rights
+reserved.
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+  1.  Redistributions of source code must retain the above copyright notice,
+      and the entire permission notice in its entirety, including the dis-
+      claimer of warranties.
+
+  2.  Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+
+  3.  he name of the author may not be used to endorse or promote products
+      derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED.  IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF NOT
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.5  Theo de Raadt and Damien Miller
+
+Copyright (c) 1995,1999 Theo de Raadt.  All rights reserved.  Copyright (c)
+2001-2002 Damien Miller.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+  1.   Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+
+  2.   Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER-
+CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.6  Todd C. Miller
+
+Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+
+Permission to use, copy, modify, and distribute this software for any purpose
+with or without fee is hereby granted, provided that the above copyright
+notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MER-
+CHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE FOR ANY
+SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CON-
+TRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+3.2.7  Thomas Winischhofer
+
+Copyright (C) 2001-2004 Thomas Winischhofer
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+  1.   Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+
+  2.   Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+
+  3.   The name of the author may not be used to endorse or promote products
+      derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.3  NVIDIA Corp
+
+Copyright (c) 1996 NVIDIA, Corp.  All rights reserved.
+
+NOTICE TO USER: The source code is copyrighted under U.S. and international
+laws.  NVIDIA, Corp. of Sunnyvale, California owns the copyright and as
+design patents pending on the design and interface of the NV chips.  Users
+and possessors of this source code are hereby granted a nonexclusive, roy-
+alty-free copyright and design patent license to use this code in individual
+and commercial software.
+
+Any use of this source code must include, in the user documentation and
+internal comments to the code, notices to the end user as follows:
+
+Copyright (c) 1996 NVIDIA, Corp.  NVIDIA design patents pending in the U.S.
+and foreign countries.
+
+NVIDIA, CORP.  MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE
+CODE FOR ANY PURPOSE.  IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WAR-
+RANTY OF ANY KIND.  NVIDIA, CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT SHALL NVIDIA, CORP.  BE LIABLE
+FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY DAM-
+AGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.
+
+3.4  GLX Public License
+
+GLX PUBLIC LICENSE (Version 1.0 (2/11/99)) ("License")
+
+Subject to any third party claims, Silicon Graphics, Inc. ("SGI") hereby
+grants permission to Recipient (defined below), under Recipient's copyrights
+in the Original Software (defined below), to use, copy, modify, merge, pub-
+lish, distribute, sublicense and/or sell copies of Subject Software (defined
+below), and to permit persons to whom the Subject Software is furnished in
+accordance with this License to do the same, subject to all of the following
+terms and conditions, which Recipient accepts by engaging in any such use,
+copying, modifying, merging, publishing, distributing, sublicensing or sell-
+ing:
+
+1. Definitions.
+
+     (a) "Original Software" means source code of computer software code
+     which is described in Exhibit A as Original Software.
+
+     (b) "Modifications" means any addition to or deletion from the sub-
+     stance or structure of either the Original Software or any previous
+     Modifications. When Subject Software is released as a series of
+     files, a Modification means (i) any addition to or deletion from
+     the contents of a file containing Original Software or previous
+     Modifications and (ii) any new file that contains any part of the
+     Original Code or previous Modifications.
+
+     (c) "Subject Software" means the Original Software or Modifications
+     or the combination of the Original Software and Modifications, or
+     portions of any of the foregoing.
+
+     (d) "Recipient" means an individual or a legal entity exercising
+     rights under, and complying with all of the terms of, this License.
+     For legal entities, "Recipient" includes any entity which controls,
+     is controlled by, or is under common control with Recipient. For
+     purposes of this definition, "control" of an entity means (a) the
+     power, direct or indirect, to direct or manage such entity, or (b)
+     ownership of fifty percent (50%) or more of the outstanding shares
+     or beneficial ownership of such entity.
+
+2. Redistribution of Source Code Subject to These Terms. Redistributions of
+Subject Software in source code form must retain the notice set forth in
+Exhibit A, below, in every file. A copy of this License must be included in
+any documentation for such Subject Software where the recipients' rights
+relating to Subject Software are described. Recipient may distribute the
+source code version of Subject Software under a license of Recipient's
+choice, which may contain terms different from this License, provided that
+(i) Recipient is in compliance with the terms of this License, and (ii) the
+license terms include this Section 2 and Sections 3, 4, 7, 8, 10, 12 and 13
+of this License, which terms may not be modified or superseded by any other
+terms of such license. If Recipient distributes the source code version under
+a different license Recipient must make it absolutely clear that any terms
+which differ from this License are offered by Recipient alone, not by SGI.
+Recipient hereby agrees to indemnify SGI for any liability incurred by SGI as
+a result of any such terms Recipient offers.
+
+3. Redistribution in Executable Form. The notice set forth in Exhibit A must
+be conspicuously included in any notice in an executable version of Subject
+Software, related documentation or collateral in which Recipient describes
+the user's rights relating to the Subject Software. Recipient may distribute
+the executable version of Subject Software under a license of Recipient's
+choice, which may contain terms different from this License, provided that
+(i) Recipient is in compliance with the terms of this License, and (ii) the
+license terms include this Section 3 and Sections 4, 7, 8, 10, 12 and 13 of
+this License, which terms may not be modified or superseded by any other
+terms of such license. If Recipient distributes the executable version under
+a different license Recipient must make it absolutely clear that any terms
+which differ from this License are offered by Recipient alone, not by SGI.
+Recipient hereby agrees to indemnify SGI for any liability incurred by SGI as
+a result of any such terms Recipient offers.
+
+4. Termination. This License and the rights granted hereunder will terminate
+automatically if Recipient fails to comply with terms herein and fails to
+cure such breach within 30 days of the breach. Any sublicense to the Subject
+Software which is properly granted shall survive any termination of this
+License absent termination by the terms of such sublicense. Provisions which,
+by their nature, must remain in effect beyond the termination of this License
+shall survive.
+
+5. No Trademark Rights. This License does not grant any rights to use any
+trade name, trademark or service mark whatsoever. No trade name, trademark or
+service mark of SGI may be used to endorse or promote products derived from
+the Subject Software without prior written permission of SGI.
+
+6. No Other Rights. This License does not grant any rights with respect to
+the OpenGL API or to any software or hardware implementation thereof or to
+any other software whatsoever, nor shall any other rights or licenses not
+expressly granted hereunder arise by implication, estoppel or otherwise with
+respect to the Subject Software. Title to and ownership of the Original Soft-
+ware at all times remains with SGI. All rights in the Original Software not
+expressly granted under this License are reserved.
+
+7. Compliance with Laws; Non-Infringement. Recipient shall comply with all
+applicable laws and regulations in connection with use and distribution of
+the Subject Software, including but not limited to, all export and import
+control laws and regulations of the U.S. government and other countries.
+Recipient may not distribute Subject Software that (i) in any way infringes
+(directly or contributorily) the rights (including patent, copyright, trade
+secret, trademark or other intellectual property rights of any kind) of any
+other person or entity or (ii) breaches any representation or warranty,
+express, implied or statutory, which under any applicable law it might be
+deemed to have been distributed.
+
+8. Claims of Infringement. If Recipient at any time has knowledge of any one
+or more third party claims that reproduction, modification, use, distribu-
+tion, import or sale of Subject Software (including particular functionality
+or code incorporated in Subject Software) infringes the third party's intel-
+lectual property rights, Recipient must place in a well-identified web page
+bearing the title "LEGAL" a description of each such claim and a description
+of the party making each such claim in sufficient detail that a user of the
+Subject Software will know whom to contact regarding the claim. Also, upon
+gaining such knowledge of any such claim, Recipient must conspicuously
+include the URL for such web page in the Exhibit A notice required under Sec-
+tions 2 and 3, above, and in the text of any related documentation, license
+agreement or collateral in which Recipient describes end user's rights relat-
+ing to the Subject Software. If Recipient obtains such knowledge after it
+makes Subject Software available to any other person or entity, Recipient
+shall take other steps (such as notifying appropriate mailing lists or news-
+groups) reasonably calculated to inform those who received the Subject Soft-
+ware that new knowledge has been obtained.
+
+9. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, MER-
+CHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON- INFRINGING. SGI ASSUMES NO
+RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
+PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY SER-
+VICING, REPAIR OR CORRECTION.  THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
+HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THE-
+ORY, WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIA-
+BILITY), CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR
+ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK
+STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
+THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY
+TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO
+THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
+NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES,
+SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT.
+
+11. Indemnity. Recipient shall be solely responsible for damages arising,
+directly or indirectly, out of its utilization of rights under this License.
+Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc.
+from and against any loss, liability, damages, costs or expenses (including
+the payment of reasonable attorneys fees) arising out of Recipient's use,
+modification, reproduction and distribution of the Subject Software or out of
+any representation or warranty made by Recipient.
+
+12. U.S. Government End Users. The Subject Software is a "commercial item"
+consisting of "commercial computer software" as such terms are defined in
+title 48 of the Code of Federal Regulations and all U.S.  Government End
+Users acquire only the rights set forth in this License and are subject to
+the terms of this License.
+
+13. Miscellaneous. This License represents the complete agreement concerning
+subject matter hereof. If any provision of this License is held to be unen-
+forceable, such provision shall be reformed so as to achieve as nearly as
+possible the same economic effect as the original provision and the remainder
+of this License will remain in effect. This License shall be governed by and
+construed in accordance with the laws of the United States and the State of
+California as applied to agreements entered into and to be performed entirely
+within California between California residents. Any litigation relating to
+this License shall be subject to the exclusive jurisdiction of the Federal
+Courts of the Northern District of California (or, absent subject matter
+jurisdiction in such courts, the courts of the State of California), with
+venue lying exclusively in Santa Clara County, California, with the losing
+party responsible for costs, including without limitation, court costs and
+reasonable attorneys fees and expenses. The application of the United Nations
+Convention on Contracts for the International Sale of Goods is expressly
+excluded. Any law or regulation which provides that the language of a con-
+tract shall be construed against the drafter shall not apply to this License.
+
+Exhibit A
+
+The contents of this file are subject to Sections 2, 3, 4, 7, 8, 10, 12 and
+13 of the GLX Public License Version 1.0 (the "License"). You may not use
+this file except in compliance with those sections of the License. You may
+obtain a copy of the License at Silicon Graphics, Inc., attn: Legal Services,
+2011 N. Shoreline Blvd., Mountain View, CA 94043 or at
+http://www.sgi.com/software/opensource/glx/license.html.
+
+Software distributed under the License is distributed on an "AS IS" basis.
+ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
+WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON-
+INFRINGEMENT. See the License for the specific language governing rights and
+limitations under the License.
+
+The Original Software is GLX version 1.2 source code, released February,
+1999. The developer of the Original Software is Silicon Graphics, Inc.  Those
+portions of the Subject Software created by Silicon Graphics, Inc.  are Copy-
+right (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved.
+
+3.5  CID Font Code Public License
+
+CID FONT CODE PUBLIC LICENSE (Version 1.0 (3/31/99))("License")
+
+Subject to any applicable third party claims, Silicon Graphics, Inc. ("SGI")
+hereby grants permission to Recipient (defined below), under SGI's copyrights
+in the Original Software (defined below), to use, copy, modify, merge, pub-
+lish, distribute, sublicense and/or sell copies of Subject Software (defined
+below) in both source code and executable form, and to permit persons to whom
+the Subject Software is furnished in accordance with this License to do the
+same, subject to all of the following terms and conditions, which Recipient
+accepts by engaging in any such use, copying, modifying, merging, publica-
+tion, distributing, sublicensing or selling:
+
+1. Definitions.
+
+     a. "Original Software" means source code of computer software code
+     that is described in Exhibit A as Original Software.
+
+     b. "Modifications" means any addition to or deletion from the sub-
+     stance or structure of either the Original Software or any previous
+     Modifications. When Subject Software is released as a series of
+     files, a Modification means (i) any addition to or deletion from
+     the contents of a file containing Original Software or previous
+     Modifications and (ii) any new file that contains any part of the
+     Original Code or previous Modifications.
+
+     c. "Subject Software" means the Original Software or Modifications
+     or the combination of the Original Software and Modifications, or
+     portions of any of the foregoing.
+
+     d. "Recipient" means an individual or a legal entity exercising
+     rights under the terms of this License. For legal entities, "Recip-
+     ient" includes any entity that controls, is controlled by, or is
+     under common control with Recipient. For purposes of this defini-
+     tion, "control" of an entity means (i) the power, direct or indi-
+     rect, to direct or manage such entity, or (ii) ownership of fifty
+     percent (50%) or more of the outstanding shares or beneficial own-
+     ership of such entity.
+
+     e. "Required Notice" means the notice set forth in Exhibit A to
+     this License.
+
+     f. "Accompanying Technology" means any software or other technology
+     that is not a Modification and that is distributed or made publicly
+     available by Recipient with the Subject Software.  Separate soft-
+     ware files that do not contain any Original Software or any previ-
+     ous Modification shall not be deemed a Modification, even if such
+     software files are aggregated as part of a product, or in any
+     medium of storage, with any file that does contain Original Soft-
+     ware or any previous Modification.
+
+2. License Terms. All distribution of the Subject Software must be made sub-
+ject to the terms of this License. A copy of this License and the Required
+Notice must be included in any documentation for Subject Software where
+Recipient's rights relating to Subject Software and/or any Accompanying Tech-
+nology are described. Distributions of Subject Software in source code form
+must also include the Required Notice in every file distributed. In addition,
+a ReadMe file entitled "Important Legal Notice" must be distributed with each
+distribution of one or more files that incorporate Subject Software. That
+file must be included with distributions made in both source code and exe-
+cutable form. A copy of the License and the Required Notice must be included
+in that file.  Recipient may distribute Accompanying Technology under a
+license of Recipient's choice, which may contain terms different from this
+License, provided that (i) Recipient is in compliance with the terms of this
+License, (ii) such other license terms do not modify or supersede the terms
+of this License as applicable to the Subject Software, (iii) Recipient hereby
+indemnifies SGI for any liability incurred by SGI as a result of the distri-
+bution of Accompanying Technology or the use of other license terms.
+
+3. Termination. This License and the rights granted hereunder will terminate
+automatically if Recipient fails to comply with terms herein and fails to
+cure such breach within 30 days of the breach. Any sublicense to the Subject
+Software that is properly granted shall survive any termination of this
+License absent termination by the terms of such sublicense. Provisions which,
+by their nature, must remain in effect beyond the termination of this License
+shall survive.
+
+4. Trademark Rights. This License does not grant any rights to use any trade
+name, trademark or service mark whatsoever. No trade name, trademark or ser-
+vice mark of SGI may be used to endorse or promote products derived from or
+incorporating any Subject Software without prior written permission of SGI.
+
+5. No Other Rights. No rights or licenses not expressly granted hereunder
+shall arise by implication, estoppel or otherwise. Title to and ownership of
+the Original Software at all times remains with SGI. All rights in the Origi-
+nal Software not expressly granted under this License are reserved.
+
+6. Compliance with Laws; Non-Infringement. Recipient shall comply with all
+applicable laws and regulations in connection with use and distribution of
+the Subject Software, including but not limited to, all export and import
+control laws and regulations of the U.S. government and other countries.
+Recipient may not distribute Subject Software that (i) in any way infringes
+(directly or contributorily) the rights (including patent, copyright, trade
+secret, trademark or other intellectual property rights of any kind) of any
+other person or entity, or (ii) breaches any representation or warranty,
+express, implied or statutory, which under any applicable law it might be
+deemed to have been distributed.
+
+7. Claims of Infringement. If Recipient at any time has knowledge of any one
+or more third party claims that reproduction, modification, use, distribu-
+tion, import or sale of Subject Software (including particular functionality
+or code incorporated in Subject Software) infringes the third party's intel-
+lectual property rights, Recipient must place in a well-identified web page
+bearing the title "LEGAL" a description of each such claim and a description
+of the party making each such claim in sufficient detail that a user of the
+Subject Software will know whom to contact regarding the claim. Also, upon
+gaining such knowledge of any such claim, Recipient must conspicuously
+include the URL for such web page in the Required Notice, and in the text of
+any related documentation, license agreement or collateral in which Recipient
+describes end user's rights relating to the Subject Software. If Recipient
+obtains such knowledge after it makes Subject Software available to any other
+person or entity, Recipient shall take other steps (such as notifying appro-
+priate mailing lists or newsgroups) reasonably calculated to provide such
+knowledge to those who received the Subject Software.
+
+8. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, MER-
+CHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. SGI ASSUMES NO
+RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
+PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY SER-
+VICING, REPAIR OR CORRECTION.  THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
+HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
+WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY),
+CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SUBJECT SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SUBJECT SOFTWARE. SOME JURISDICTIONS DO NOT
+ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THIS EXCLUSION AND
+LIMITATION MAY NOT APPLY TO RECIPIENT TO THE EXTENT SO DISALLOWED.
+
+10. Indemnity. Recipient shall be solely responsible for damages arising,
+directly or indirectly, out of its utilization of rights under this License.
+Recipient will defend, indemnify and hold SGI and its successors and assigns
+harmless from and against any loss, liability, damages, costs or expenses
+(including the payment of reasonable attorneys fees) arising out of (Recipi-
+ent's use, modification, reproduction and distribution of the Subject Soft-
+ware or out of any representation or warranty made by Recipient.
+
+11. U.S. Government End Users. The Subject Software is a "commercial item"
+consisting of "commercial computer software" as such terms are defined in
+title 48 of the Code of Federal Regulations and all U.S. Government End Users
+acquire only the rights set forth in this License and are subject to the
+terms of this License.
+
+12. Miscellaneous. This License represents the complete agreement concerning
+subject matter hereof. If any provision of this License is held to be unen-
+forceable by any judicial or administrative authority having proper jurisdic-
+tion with respect thereto, such provision shall be reformed so as to achieve
+as nearly as possible the same economic effect as the original provision and
+the remainder of this License will remain in effect. This License shall be
+governed by and construed in accordance with the laws of the United States
+and the State of California as applied to agreements entered into and to be
+performed entirely within California between California residents. Any liti-
+gation relating to this License shall be subject to the exclusive jurisdic-
+tion of the Federal Courts of the Northern District of California (or, absent
+subject matter jurisdiction in such courts, the courts of the State of Cali-
+fornia), with venue lying exclusively in Santa Clara County, California, with
+the losing party responsible for costs, including without limitation, court
+costs and reasonable attorneys fees and expenses. The application of the
+United Nations Convention on Contracts for the International Sale of Goods is
+expressly excluded. Any law or regulation that provides that the language of
+a contract shall be construed against the drafter shall not apply to this
+License.
+
+Exhibit A
+
+Copyright (c) 1994-1999 Silicon Graphics, Inc.
+
+The contents of this file are subject to the CID Font Code Public License
+Version 1.0 (the "License"). You may not use this file except in compliance
+with the License. You may obtain a copy of the License at Silicon Graphics,
+Inc., attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043
+or at http://www.sgi.com/software/opensource/cid/license.html
+
+Software distributed under the License is distributed on an "AS IS" basis.
+ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
+WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON-
+INFRINGEMENT. See the License for the specific language governing rights and
+limitations under the License.
+
+The Original Software (as defined in the License) is CID font code that was
+developed by Silicon Graphics, Inc. Those portions of the Subject Software
+(as defined in the License) that were created by Silicon Graphics, Inc. are
+Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved.
+
+[NOTE: When using this text in connection with Subject Software delivered
+solely in object code form, Recipient may replace the words "this file" with
+"this software" in both the first and second sentences.]
+
+3.6  Bitstream Vera Fonts Copyright
+
+The fonts have a generous copyright, allowing derivative works (as long as
+"Bitstream" or "Vera" are not in the names), and full redistribution (so long
+as they are not *sold* by themselves). They can be be bundled, redistributed
+and sold with any software.
+
+The fonts are distributed under the following copyright:
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
+a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated documentation
+files (the "Font Software"), to reproduce and distribute the Font Software,
+including without limitation the rights to use, copy, merge, publish, dis-
+tribute, and/or sell copies of the Font Software, and to permit persons to
+whom the Font Software is furnished to do so, subject to the following condi-
+tions:
+
+The above copyright and trademark notices and this permission notice shall be
+included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may be modified and addi-
+tional glyphs or characters may be added to the Fonts, only if the fonts are
+renamed to names not containing either the words "Bitstream" or the word
+"Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font
+Software that has been modified and is distributed under the "Bitstream Vera"
+names.
+
+The Font Software may be sold as part of a larger software package but no
+copy of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDA-
+TION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GEN-
+ERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
+INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFT-
+WARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome Foundation,
+and Bitstream Inc., shall not be used in advertising or otherwise to promote
+the sale, use or other dealings in this Font Software without prior written
+authorization from the Gnome Foundation or Bitstream Inc., respectively. For
+further information, contact: fonts at gnome dot org.
+
+3.7  Bigelow & Holmes Inc and URW++ GmbH Luxi font license
+
+Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font instruction
+code copyright (c) 2001 by URW++ GmbH. All Rights Reserved. Luxi is a regis-
+tered trademark of Bigelow & Holmes Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of these Fonts and associated documentation files (the "Font Software"), to
+deal in the Font Software, including without limitation the rights to use,
+copy, merge, publish, distribute, sublicense, and/or sell copies of the Font
+Software, and to permit persons to whom the Font Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright and trademark notices and this permission notice shall be
+included in all copies of one or more of the Font Software.
+
+The Font Software may not be modified, altered, or added to, and in particu-
+lar the designs of glyphs or characters in the Fonts may not be modified nor
+may additional glyphs or characters be added to the Fonts. This License
+becomes null and void when the Fonts or Font Software have been modified.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT.  IN NO EVENT SHALL BIGELOW & HOLMES INC. OR URW++
+GMBH. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GEN-
+ERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
+INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFT-
+WARE.
+
+Except as contained in this notice, the names of Bigelow & Holmes Inc. and
+URW++ GmbH. shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Font Software without prior written
+authorization from Bigelow & Holmes Inc. and URW++ GmbH.
+
+For further information, contact:
+
+info@urwpp.de or design@bigelowandholmes.com
+
+     $Id: LICENSE,v 1.3 2004/09/03 23:41:21 kem Exp $
diff --git a/abs/core-testing/xf86-video-v4l/PKGBUILD b/abs/core-testing/xf86-video-v4l/PKGBUILD
index 518e267..bf3cb08 100644
--- a/abs/core-testing/xf86-video-v4l/PKGBUILD
+++ b/abs/core-testing/xf86-video-v4l/PKGBUILD
@@ -1,23 +1,26 @@
-# $Id: PKGBUILD 11496 2008-08-31 16:52:37Z jgc $
+# $Id: PKGBUILD 75874 2010-04-04 18:49:03Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-v4l
 pkgver=0.2.0
-pkgrel=1
+pkgrel=5
 pkgdesc="X.org v4l video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-conflicts=('xorg-server<1.4.99.906')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('2251ae2a0a905764941cd7b098e85ad1')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 LICENSE)
+md5sums=('2251ae2a0a905764941cd7b098e85ad1'
+         '7d4d018f6bbff7e42672d1aabc75c5cf')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
 }
diff --git a/abs/core-testing/xf86-video-vesa/PKGBUILD b/abs/core-testing/xf86-video-vesa/PKGBUILD
index bbccb88..4f8f83a 100644
--- a/abs/core-testing/xf86-video-vesa/PKGBUILD
+++ b/abs/core-testing/xf86-video-vesa/PKGBUILD
@@ -1,26 +1,26 @@
-# $Id: PKGBUILD 22267 2008-12-25 16:51:23Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 75871 2010-04-04 18:46:26Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-vesa
-pkgver=2.1.0
-pkgrel=1
+pkgver=2.3.0
+pkgrel=2
 pkgdesc="X.org vesa video driver"
 arch=(i686 x86_64)
 license=('custom')
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.5.3')
-conflicts=('xorg-server<1.5.3')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg' 'xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('d813269613b4d63ff6dbfbfbd104cc84')
+sha1sums=('4689b7c295d7a8d7326302dafecb812739617134')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-  install -d -m755 ${pkgdir}/usr/share/licenses/${pkgname}
-  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
diff --git a/abs/core-testing/xf86-video-vga/PKGBUILD b/abs/core-testing/xf86-video-vga/PKGBUILD
deleted file mode 100644
index 034c440..0000000
--- a/abs/core-testing/xf86-video-vga/PKGBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# $Id: PKGBUILD 15043 2008-10-12 12:14:52Z jgc $
-#Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=xf86-video-vga
-pkgver=4.1.0
-pkgrel=6
-pkgdesc="X.org VGA 16 color video driver"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.5.2')
-conflicts=('xorg-server<1.5.2')
-options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-	pciaccess.patch)
-md5sums=('b93e5fe9757db779a75cd3ce97b9613d'
-         'fe3a45179f51fb86215f6fd2b5ac0747')
-
-build() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  patch -Np1 -i "${srcdir}/pciaccess.patch" || return 1
-  libtoolize --force || return 1
-  aclocal || return 1
-  autoconf || return 1
-  automake || return 1
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR="${pkgdir}" install || return 1
-}
diff --git a/abs/core-testing/xf86-video-vga/pciaccess.patch b/abs/core-testing/xf86-video-vga/pciaccess.patch
deleted file mode 100644
index 141701f..0000000
--- a/abs/core-testing/xf86-video-vga/pciaccess.patch
+++ /dev/null
@@ -1,371 +0,0 @@
-From: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>
-Date: Fri, 18 Jul 2008 21:27:26 +0000 (-0300)
-Subject: Add libpciaccess and remove xf1bpp and xf4bpp support.
-X-Git-Url: http://gitweb.freedesktop.org/?p=xorg/driver/xf86-video-vga.git;a=commitdiff;h=97e2d12548921d92b6dc2dcce8abee48f25981d2
-
-Add libpciaccess and remove xf1bpp and xf4bpp support.
-
-  The driver is not fully functional, starts at 320x200, but may require
-running something like vbetool post before starting the X Server, and does
-not restore console as usually linux consoles use vesafb, but should work
-correctly if console is in a "standard vga mode".
----
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -57,6 +57,22 @@ PKG_CHECK_MODULES(XORG, [xorg-server >= 
- sdkdir=$(pkg-config --variable=sdkdir xorg-server)
- 
- # Checks for libraries.
-+SAVE_CPPFLAGS="$CPPFLAGS"
-+CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
-+AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
-+              [XSERVER_LIBPCIACCESS=yes], [XSERVER_LIBPCIACCESS=no],
-+              [#include "xorg-server.h"])
-+AC_CHECK_HEADER(xf1bpp.h,[AC_DEFINE(HAVE_XF1BPP, 1, [Have 1bpp support])],[])
-+AC_CHECK_HEADER(xf4bpp.h,[AC_DEFINE(HAVE_XF4BPP, 1, [Have 4bpp support])],[])
-+CPPFLAGS="$SAVE_CPPFLAGS"
-+
-+if test "x$XSERVER_LIBPCIACCESS" = xyes; then
-+    PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0])
-+    XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS"
-+fi
-+AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
-+
-+# Checks for libraries.
- 
- # Checks for header files.
- AC_HEADER_STDC
---- a/src/generic.c
-+++ b/src/generic.c
-@@ -50,8 +50,13 @@
- 
- #include "fb.h"
- 
-+#if HAVE_XF4BPP
- #include "xf4bpp.h"
-+#endif
-+
-+#if HAVE_XF1BPP
- #include "xf1bpp.h"
-+#endif
- 
- #include "shadowfb.h"
- 
-@@ -62,6 +67,10 @@
- #include "xf86Resources.h"
- #include "xf86int10.h"
- 
-+#ifdef XSERVER_LIBPCIACCESS
-+#include <pciaccess.h>
-+#endif
-+
- /* Some systems #define VGA for their own purposes */
- #undef VGA
- 
-@@ -79,10 +88,31 @@
- #define CLOCK_TOLERANCE 2000 /* Clock matching tolerance (2MHz) */
- #endif
- 
-+/*
-+ * This structure is used to wrap the screen's CloseScreen vector.
-+ */
-+typedef struct _GenericRec
-+{
-+    Bool ShadowFB;
-+    Bool KGAUniversal;
-+    CARD8 * ShadowPtr;
-+    CARD32 ShadowPitch;
-+    CloseScreenProcPtr CloseScreen;
-+    OptionInfoPtr Options;
-+#ifdef XSERVER_LIBPCIACCESS
-+    struct pci_device *pciInfo;
-+#endif
-+} GenericRec, *GenericPtr;
-+
-+
- /* Forward definitions */
- static const OptionInfoRec *GenericAvailableOptions(int chipid, int busid);
- static void                 GenericIdentify(int);
- static Bool                 GenericProbe(DriverPtr, int);
-+#ifdef XSERVER_LIBPCIACCESS
-+static Bool GenericPciProbe(DriverPtr drv, int entity_num,
-+			    struct pci_device *dev, intptr_t match_data);
-+#endif
- static Bool                 GenericPreInit(ScrnInfoPtr, int);
- static Bool                 GenericScreenInit(int, ScreenPtr, int, char **);
- static Bool                 GenericSwitchMode(int, DisplayModePtr, int);
-@@ -97,6 +127,24 @@ static Bool                 GenericMapMe
- 
- static ModeStatus GenericValidMode(int, DisplayModePtr, Bool, int);
- 
-+static GenericPtr GenericGetRec(ScrnInfoPtr pScreenInfo);
-+
-+enum GenericTypes
-+{
-+    CHIP_VGA_GENERIC
-+};
-+
-+#ifdef XSERVER_LIBPCIACCESS
-+static const struct pci_id_match generic_device_match[] = {
-+    {
-+	PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY,
-+	0x00030000, 0x00ffffff, CHIP_VGA_GENERIC
-+    },
-+
-+    { 0, 0, 0 },
-+};
-+#endif
-+
- /* The root of all evil... */
- _X_EXPORT DriverRec VGA =
- {
-@@ -106,7 +154,13 @@ _X_EXPORT DriverRec VGA =
-     GenericProbe,
-     GenericAvailableOptions,
-     NULL,
--    0
-+    0,
-+    NULL,
-+
-+#ifdef XSERVER_LIBPCIACCESS
-+    generic_device_match,
-+    GenericPciProbe
-+#endif
- };
- 
- typedef enum
-@@ -146,8 +200,12 @@ static const char *vgahwSymbols[] =
- #ifdef XFree86LOADER
- static const char *miscfbSymbols[] =
- {
-+#if HAVE_XF1BPP
-     "xf1bppScreenInit",
-+#endif
-+#if HAVE_XF4BPP
-     "xf4bppScreenInit",
-+#endif
-     NULL
- };
- #endif
-@@ -210,7 +268,13 @@ GenericSetup(pointer Module, pointer Opt
-     if (!Initialised)
-     {
- 	Initialised = TRUE;
--	xf86AddDriver(&VGA, Module, 0);
-+	xf86AddDriver(&VGA, Module,
-+#ifdef XSERVER_LIBPCIACCESS
-+		      HaveDriverFuncs
-+#else
-+		      0
-+#endif
-+		      );
- 	LoaderRefSymLists(vgahwSymbols, miscfbSymbols, fbSymbols,
- 			  shadowfbSymbols, int10Symbols, NULL);
- 	return (pointer)TRUE;
-@@ -224,11 +288,6 @@ GenericSetup(pointer Module, pointer Opt
- #endif
- 
- 
--enum GenericTypes
--{
--    CHIP_VGA_GENERIC
--};
--
- /* Supported chipsets */
- static SymTabRec GenericChipsets[] =
- {
-@@ -236,11 +295,13 @@ static SymTabRec GenericChipsets[] =
-     {-1,               NULL}
- };
- 
-+#ifndef XSERVER_LIBPCIACCESS
- static PciChipsets GenericPCIchipsets[] =
- {
-     {CHIP_VGA_GENERIC, PCI_CHIP_VGA, RES_SHARED_VGA},
-     {-1,               -1,           RES_UNDEFINED},
- };
-+#endif
- 
- static IsaChipsets GenericISAchipsets[] =
- {
-@@ -267,6 +328,37 @@ GenericAvailableOptions(int chipid, int 
-  * do a minimal probe for supported hardware.
-  */
- 
-+#ifdef XSERVER_LIBPCIACCESS
-+static Bool
-+GenericPciProbe(DriverPtr drv, int entity_num, struct pci_device *dev,
-+		intptr_t match_data)
-+{
-+    ScrnInfoPtr pScrn;
-+
-+    pScrn = xf86ConfigPciEntity(NULL, 0, entity_num, NULL,
-+				NULL, NULL, NULL, NULL, NULL);
-+    if (pScrn != NULL) {
-+	GenericPtr pGeneric = GenericGetRec(pScrn);
-+
-+	pScrn->driverVersion = VGA_VERSION_CURRENT;
-+	pScrn->driverName    = VGA_DRIVER_NAME;
-+	pScrn->name	     = VGA_NAME;
-+	pScrn->Probe	     = GenericProbe;
-+	pScrn->PreInit       = GenericPreInit;
-+	pScrn->ScreenInit    = GenericScreenInit;
-+	pScrn->SwitchMode    = GenericSwitchMode;
-+	pScrn->AdjustFrame   = GenericAdjustFrame;
-+	pScrn->EnterVT       = GenericEnterVT;
-+	pScrn->LeaveVT       = GenericLeaveVT;
-+	pScrn->FreeScreen    = GenericFreeScreen;
-+
-+	pGeneric->pciInfo    = dev;
-+    }
-+
-+    return (pScrn != NULL);
-+}
-+#endif
-+
- static Bool
- GenericProbe(DriverPtr drv, int flags)
- {
-@@ -283,6 +375,7 @@ GenericProbe(DriverPtr drv, int flags)
-     if ((numDevSections = xf86MatchDevice(VGA_NAME, &devSections)) <= 0)
- 	return FALSE;
- 
-+#ifndef XSERVER_LIBPCIACCESS
-     /* PCI BUS */
-     if (xf86GetPciVideoInfo())
-     {
-@@ -324,6 +417,7 @@ GenericProbe(DriverPtr drv, int flags)
- 	    xfree(usedChips);
- 	}
-     }
-+#endif
- 
-     /* Isa Bus */
-     numUsed = xf86MatchIsaInstances(VGA_NAME, GenericChipsets,
-@@ -391,20 +485,6 @@ VGAFindIsaDevice(GDevPtr dev)
-     return (int)CHIP_VGA_GENERIC;
- }
- 
--/*
-- * This structure is used to wrap the screen's CloseScreen vector.
-- */
--typedef struct _GenericRec
--{
--    Bool ShadowFB;
--    Bool KGAUniversal;
--    CARD8 * ShadowPtr;
--    CARD32 ShadowPitch;
--    CloseScreenProcPtr CloseScreen;
--    OptionInfoPtr Options;
--} GenericRec, *GenericPtr;
--
--
- static GenericPtr
- GenericGetRec(ScrnInfoPtr pScreenInfo)
- {
-@@ -509,8 +589,14 @@ GenericPreInit(ScrnInfoPtr pScreenInfo, 
- 
-     switch (pScreenInfo->depth)
-     {
--	case 1:  Module = "xf1bpp"; Sym = "xf1bppScreenInit";  break;
--	case 4:  Module = "xf4bpp"; Sym = "xf4bppScreenInit";  break;
-+	case 1:
-+#if HAVE_XF1BPP
-+	Module = "xf1bpp"; Sym = "xf1bppScreenInit";  break;
-+#endif
-+	case 4:
-+#if HAVE_XF4BPP
-+	Module = "xf4bpp"; Sym = "xf4bppScreenInit";  break;
-+#endif
- 	case 8:  Module = "fb";                                break;
- 
- 	default:
-@@ -673,6 +759,8 @@ GenericPreInit(ScrnInfoPtr pScreenInfo, 
-     /* Set display resolution */
-     xf86SetDpi(pScreenInfo, 0, 0);
- 
-+
-+#if HAVE_XF1BPP && HAVE_XF4BPP
-     if (xf86ReturnOptValBool(pGenericPriv->Options, OPTION_SHADOW_FB, FALSE))
-     {
- 	pGenericPriv->ShadowFB = TRUE;
-@@ -688,7 +776,7 @@ GenericPreInit(ScrnInfoPtr pScreenInfo, 
- 		   "Enabling universal \"KGA\" treatment.\n");
-     }
- 
--#ifdef SPECIAL_FB_BYTE_ACCESS
-+#  ifdef SPECIAL_FB_BYTE_ACCESS
-     if (!pGenericPriv->ShadowFB && (pScreenInfo->depth == 4))
-     {
- 	xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
-@@ -696,8 +784,13 @@ GenericPreInit(ScrnInfoPtr pScreenInfo, 
- 	    "  ShadowFB enabled.\n");
- 	pGenericPriv->ShadowFB = TRUE;
-     }
-+#  endif
-+
-+#else
-+    pGenericPriv->ShadowFB = TRUE;
- #endif
- 
-+
-     if (pGenericPriv->ShadowFB)
-     {
- 	pScreenInfo->bitmapBitOrder = BITMAP_BIT_ORDER;
-@@ -1378,6 +1471,7 @@ GenericScreenInit(int scrnIndex, ScreenP
- #endif
- 		ShadowFBInit(pScreen, GenericRefreshArea1bpp);
- 	    }
-+#if HAVE_XF1BPP
- 	    else
- 	    {
- 		Inited = xf1bppScreenInit(pScreen, pvgaHW->Base,
-@@ -1386,6 +1480,7 @@ GenericScreenInit(int scrnIndex, ScreenP
- 					  pScreenInfo->xDpi, pScreenInfo->yDpi,
- 					  pScreenInfo->displayWidth);
- 	    }
-+#endif
- 	    break;
- 	case 4:
- 	    if (pGenericPriv->ShadowFB)
-@@ -1410,6 +1505,7 @@ GenericScreenInit(int scrnIndex, ScreenP
- #endif
- 		ShadowFBInit(pScreen, GenericRefreshArea4bpp);
- 	    }
-+#if HAVE_XF4BPP
- 	    else
- 	    {
- 		Inited = xf4bppScreenInit(pScreen, pvgaHW->Base,
-@@ -1418,6 +1514,7 @@ GenericScreenInit(int scrnIndex, ScreenP
- 					  pScreenInfo->xDpi, pScreenInfo->yDpi,
- 					  pScreenInfo->displayWidth);
- 	    }
-+#endif
- 	    break;
- 	case 8:
- 	    Inited = fbScreenInit(pScreen, pvgaHW->Base,
-@@ -1579,6 +1676,9 @@ GenericMapMem(ScrnInfoPtr scrp)
- {
-     vgaHWPtr hwp = VGAHWPTR(scrp);
-     int scr_index = scrp->scrnIndex;
-+#ifdef XSERVER_LIBPCIACCESS
-+    GenericPtr pPriv = GenericGetRec(scrp);
-+#endif
- 
-     if (hwp->Base)
- 	return TRUE;
-@@ -1589,7 +1689,12 @@ GenericMapMem(ScrnInfoPtr scrp)
-     if (hwp->MapPhys == 0)
- 	hwp->MapPhys = VGA_DEFAULT_PHYS_ADDR;
- 
--    hwp->Base = xf86MapDomainMemory(scr_index, VIDMEM_MMIO, hwp->Tag,
-+    hwp->Base = xf86MapDomainMemory(scr_index, VIDMEM_MMIO,
-+#ifdef XSERVER_LIBPCIACCESS
-+				    pPriv->pciInfo,
-+#else
-+				    hwp->Tag,
-+#endif
- 				    hwp->MapPhys, hwp->MapSize);
-     return hwp->Base != NULL;
- }
diff --git a/abs/core-testing/xf86-video-vmware/LICENSE b/abs/core-testing/xf86-video-vmware/LICENSE
new file mode 100644
index 0000000..7934272
--- /dev/null
+++ b/abs/core-testing/xf86-video-vmware/LICENSE
@@ -0,0 +1,27 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright (C) 1994-2003 The XFree86 Project, Inc.  All Rights Reserved.
+Copyright (C) 1998-2002 VMware, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
+NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other deal-
+ings in this Software without prior written authorization from the XFree86
+Project.
diff --git a/abs/core-testing/xf86-video-vmware/PKGBUILD b/abs/core-testing/xf86-video-vmware/PKGBUILD
index f259c2e..8c7a752 100644
--- a/abs/core-testing/xf86-video-vmware/PKGBUILD
+++ b/abs/core-testing/xf86-video-vmware/PKGBUILD
@@ -1,23 +1,28 @@
-# $Id: PKGBUILD 11487 2008-08-31 16:48:39Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 75868 2010-04-04 18:42:20Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-vmware
-pkgver=10.16.5
+pkgver=11.0.1
 pkgrel=1
 pkgdesc="X.org vmware video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906' 'randrproto' 'renderproto' 'xextproto' 'xineramaproto' 'videoproto')
-conflicts=('xorg-server<1.4.99.906')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'randrproto' 'renderproto' 'xextproto' 'xineramaproto' 'videoproto')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('6d78c82ea7c2bb0fcb587d7bb4e8f60a')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+        LICENSE)
+sha1sums=('cc82cbacaa90c28b42440f6a197f5167595c8417'
+          'f7fad008ca63b6862056f9d1123a81aef053d586')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/" || return 1
 }
diff --git a/abs/core-testing/xf86-video-vmware/abi2.patch b/abs/core-testing/xf86-video-vmware/abi2.patch
new file mode 100644
index 0000000..29e8dde
--- /dev/null
+++ b/abs/core-testing/xf86-video-vmware/abi2.patch
@@ -0,0 +1,38 @@
+diff -up xf86-video-vmware-10.16.7/src/vmware.c.jx xf86-video-vmware-10.16.7/src/vmware.c
+--- xf86-video-vmware-10.16.7/src/vmware.c.jx	2009-08-07 16:31:33.000000000 -0400
++++ xf86-video-vmware-10.16.7/src/vmware.c	2009-08-07 16:32:10.000000000 -0400
+@@ -640,8 +640,6 @@ VMWAREPreInit(ScrnInfoPtr pScrn, int fla
+         return FALSE;
+     }
+ 
+-    xf86LoaderReqSymLists(vgahwSymbols, NULL);
+-
+     if (!vgaHWGetHWRec(pScrn)) {
+         return FALSE;
+     }
+@@ -959,7 +957,6 @@ VMWAREPreInit(ScrnInfoPtr pScrn, int fla
+         VMWAREFreeRec(pScrn);
+         return FALSE;
+     }
+-    xf86LoaderReqSymLists(fbSymbols, shadowfbSymbols, NULL);
+ 
+     /* Need ramdac for hwcursor */
+     if (pVMWARE->hwCursor) {
+@@ -967,7 +964,6 @@ VMWAREPreInit(ScrnInfoPtr pScrn, int fla
+             VMWAREFreeRec(pScrn);
+             return FALSE;
+         }
+-        xf86LoaderReqSymLists(ramdacSymbols, NULL);
+     }
+ 
+     return TRUE;
+@@ -2051,9 +2047,6 @@ vmwareSetup(pointer module, pointer opts
+         setupDone = TRUE;
+         xf86AddDriver(&VMWARE, module, VMWARE_DRIVER_FUNC);
+ 
+-        LoaderRefSymLists(vgahwSymbols, fbSymbols, ramdacSymbols,
+-                          shadowfbSymbols, NULL);
+-
+         return (pointer)1;
+     }
+     if (errmaj) {
diff --git a/abs/core-testing/xf86-video-voodoo/PKGBUILD b/abs/core-testing/xf86-video-voodoo/PKGBUILD
index d35e2ac..ac7655a 100644
--- a/abs/core-testing/xf86-video-voodoo/PKGBUILD
+++ b/abs/core-testing/xf86-video-voodoo/PKGBUILD
@@ -1,23 +1,26 @@
-# $Id: PKGBUILD 11484 2008-08-31 16:48:17Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 85358 2010-07-12 17:29:34Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-voodoo
-pkgver=1.2.0
+pkgver=1.2.4
 pkgrel=1
-pkgdesc="X.org voodoo video driver"
+pkgdesc="X.org 3dfx Voodoo1/Voodoo2 2D video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
-conflicts=('xorg-server<1.4.99.906')
+makedepends=('pkgconfig' 'xorg-server>=1.8.0' 'xf86dgaproto')
+conflicts=('xorg-server<1.8.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('7ecd232cc0b7fe507e18e08799791eefa9fdaf48')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr
+  make
+  make DESTDIR="${pkgdir}" install
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
 }
-md5sums=('7c681d9b57f5e1f798263fc1a9d99245')
-- 
cgit v0.12


From a522700286d2272a203d7a669be3df6f672910b0 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:01:31 -0700
Subject: xf86dgaproto:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xf86dgaproto/PKGBUILD | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/abs/core-testing/xf86dgaproto/PKGBUILD b/abs/core-testing/xf86dgaproto/PKGBUILD
index b24270f..ff665d0 100644
--- a/abs/core-testing/xf86dgaproto/PKGBUILD
+++ b/abs/core-testing/xf86dgaproto/PKGBUILD
@@ -1,18 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 56536 2009-10-22 16:45:57Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
 pkgname=xf86dgaproto
-pkgver=2.0.3
+pkgver=2.1
 pkgrel=1
 pkgdesc="X11 Direct Graphics Access extension wire protocol"
-arch=(i686 x86_64)
+arch=(any)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('a036dc2fcbf052ec10621fd48b68dbb1')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}" || return 1
 }
-md5sums=('42fdcebc66efac02ab4beec2b1b0ad6e')
-- 
cgit v0.12


From 2285223a93d88ee4a726d4d878fa0c3f61845b7d Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:01:45 -0700
Subject: xf86driproto:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xf86driproto/LICENSE  | 50 ++++++++++++++++++++++++++++++++++
 abs/core-testing/xf86driproto/PKGBUILD | 22 +++++++++------
 2 files changed, 63 insertions(+), 9 deletions(-)
 create mode 100644 abs/core-testing/xf86driproto/LICENSE

diff --git a/abs/core-testing/xf86driproto/LICENSE b/abs/core-testing/xf86driproto/LICENSE
new file mode 100644
index 0000000..07a911b
--- /dev/null
+++ b/abs/core-testing/xf86driproto/LICENSE
@@ -0,0 +1,50 @@
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+
+
+/**************************************************************************
+
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+Copyright 2000 VA Linux Systems, Inc.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
diff --git a/abs/core-testing/xf86driproto/PKGBUILD b/abs/core-testing/xf86driproto/PKGBUILD
index 120c7f4..197c37f 100644
--- a/abs/core-testing/xf86driproto/PKGBUILD
+++ b/abs/core-testing/xf86driproto/PKGBUILD
@@ -1,19 +1,23 @@
-# $Id: PKGBUILD 1886 2008-05-22 17:47:52Z jgc $
+# $Id: PKGBUILD 50995 2009-09-04 12:48:43Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86driproto
-pkgver=2.0.4
+pkgver=2.1.0
 pkgrel=1
 pkgdesc="X11 DRI extension wire protocol"
+arch=(any)
 url="http://xorg.freedesktop.org/"
-arch=(i686 x86_64)
-source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2)
+license=('custom')
+source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2
+        LICENSE)
+sha1sums=('0dfc6616ffc68ca3c3b5decb1e365aaa93be8548'
+          '32bab65dd9c0b49333146abf16602967041b0d92')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-
-md5sums=('01470d088da3a8a3deefa8e1f45d69cb')
-- 
cgit v0.12


From 72be7900197eef3351bdd42e67dee75f35f97d2b Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:01:55 -0700
Subject: xf86vidmodeproto:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xf86vidmodeproto/PKGBUILD | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/abs/core-testing/xf86vidmodeproto/PKGBUILD b/abs/core-testing/xf86vidmodeproto/PKGBUILD
index 378f02d..c2e310e 100644
--- a/abs/core-testing/xf86vidmodeproto/PKGBUILD
+++ b/abs/core-testing/xf86vidmodeproto/PKGBUILD
@@ -1,19 +1,21 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 56538 2009-10-22 16:47:03Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86vidmodeproto
-pkgver=2.2.2
+pkgver=2.3
 pkgrel=1
 pkgdesc="X11 Video Mode extension wire protocol"
-arch=(i686 x86_64)
+arch=(any)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('f00844a63d6e76b69eb0eb5e41eed843')
-sha1sums=('4a228958879eb06206d13f4f09ec902f837fb8dd')
+md5sums=('4434894fc7d4eeb4a22e6b876d56fdaa')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-- 
cgit v0.12


From 69b24e5307e3793521f888d92a0c8d9207bf7258 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:02:07 -0700
Subject: xf86progs:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xfsprogs/PKGBUILD | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/abs/core-testing/xfsprogs/PKGBUILD b/abs/core-testing/xfsprogs/PKGBUILD
index 4043caf..d6bd6bd 100644
--- a/abs/core-testing/xfsprogs/PKGBUILD
+++ b/abs/core-testing/xfsprogs/PKGBUILD
@@ -1,22 +1,22 @@
-# $Id: PKGBUILD 26327 2009-02-06 16:24:28Z paul $
+# $Id: PKGBUILD 80259 2010-05-14 07:23:36Z tpowa $
 # Maintainer: Paul Mattal <paul@archlinux.org>
 pkgname=xfsprogs
-pkgver=3.0.0
+pkgver=3.1.2
 pkgrel=1
 pkgdesc="XFS filesystem utilities"
 arch=(i686 x86_64)
 license=('LGPL')
 url="http://oss.sgi.com/projects/xfs/"
 groups=('base')
-depends=(e2fsprogs)
+depends=('util-linux-ng>=2.16')
 options=('!makeflags' '!libtool')
-source=(ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsprogs-${pkgver}.tar.gz)
-md5sums=('ec734f935ec87ebb8be890d29380a3e6')
+source=(ftp://oss.sgi.com/projects/xfs/cmd_tars/${pkgname}-${pkgver}.tar.gz)
+md5sums=('86d10178ee6897cb099c97303e6d9da0')
 
 build() {
-  cd ${srcdir}/${pkgname}-${pkgver}
-  export OPTIMIZER="-march=$(echo ${CARCH} -O1 | sed -e 's/_/-/g')"
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  export OPTIMIZER="-march=${CARCH/_/-} -O1"
   export DEBUG=-DNDEBUG
   make || return 1
-  make DIST_ROOT=${pkgdir} install install-dev
+  make DIST_ROOT="${pkgdir}" install install-dev || return 1
 }
-- 
cgit v0.12


From 859139dbf1a49fffeccd38dab7d17fe12a598f0b Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:02:30 -0700
Subject: xkeyboard-config:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xkeyboard-config/PKGBUILD | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/abs/core-testing/xkeyboard-config/PKGBUILD b/abs/core-testing/xkeyboard-config/PKGBUILD
index abac013..740c544 100644
--- a/abs/core-testing/xkeyboard-config/PKGBUILD
+++ b/abs/core-testing/xkeyboard-config/PKGBUILD
@@ -1,28 +1,26 @@
-# $Id: PKGBUILD 22425 2008-12-26 19:55:49Z jgc $
+# $Id: PKGBUILD 65515 2010-01-30 15:59:03Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 pkgname=xkeyboard-config
-pkgver=1.4
-pkgrel=2
+pkgver=1.8
+pkgrel=1
 pkgdesc="X keyboard configuration files"
-arch=(i686 x86_64)
+arch=(any)
 license=('custom')
 url="http://www.freedesktop.org/wiki/Software/XKeyboardConfig"
 depends=('xorg-xkb-utils')
-makedepends=('perlxml' 'pkgconfig')
+makedepends=('intltool' 'pkgconfig')
 provides=('xkbdata')
 replaces=('xkbdata')
 conflicts=('xkbdata')
-source=(http://xlibs.freedesktop.org/xkbdesc/xkeyboard-config-${pkgver}.tar.bz2
-	fix-abnt2.patch)
-md5sums=('a9fe7efbc67a6966c4d4501f0cf88073' '5af20ec00a42a051cf0d7bcb572471df')
+source=(http://xlibs.freedesktop.org/xkbdesc/xkeyboard-config-${pkgver}.tar.bz2)
+md5sums=('37ae41628cd2ce35d202d30b1820c8ba')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  patch -Np1 -i "${srcdir}/fix-abnt2.patch" || return 1
   ./configure --prefix=/usr \
-              --with-xkb-base=/usr/share/X11/xkb \
-              --with-xkb-rules-symlink=xorg \
-              --enable-compat-rules=yes || return 1
+      --with-xkb-base=/usr/share/X11/xkb \
+      --with-xkb-rules-symlink=xorg \
+      --enable-compat-rules=yes || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
   rm -f "${pkgdir}/usr/share/X11/xkb/compiled" || return 1
-- 
cgit v0.12


From 62dce8f95b242b7d93adcf996fd0b5b7d87dc321 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:02:42 -0700
Subject: xmltv:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xmltv/PKGBUILD | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/abs/core-testing/xmltv/PKGBUILD b/abs/core-testing/xmltv/PKGBUILD
index e16f791..98ddf75 100755
--- a/abs/core-testing/xmltv/PKGBUILD
+++ b/abs/core-testing/xmltv/PKGBUILD
@@ -1,25 +1,24 @@
-# $Id: PKGBUILD,v 1.7 2009/01/28 12:14:17 allan Exp $
-# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Allan McRae <allan@archlinux.org>
 # Contributor: Andrew Simmons <andrew.simmons@gmail.com>
 
 pkgname=xmltv
-pkgver=0.5.54
+pkgver=0.5.57
 pkgrel=1
 pkgdesc="Set of utilities to download tv listings and format them in xml"
-arch=('i686' 'x86_64')
+arch=('any')
 url="http://xmltv.org/wiki/"
 license=('GPL')
-depends=('perl-archive-zip' 'perl-date-manip' 'perl-file-slurp' \
-         'perl-http-cache-transparent' 'perl-html-tree' 'perl-io-stringy' \
-         'perl-lingua-en-numbers-ordinate' 'perl-lingua-preferred' 'perl-soap-lite' \
-         'perl-term-progressbar' 'perl-term-readkey' 'perl-text-kakasi' \
-         'perl-timedate' 'perl-tk-tablematrix' 'perl-unicode-string' \
-         'perl-unicode-utf8simple' 'perl-www-mechanize' 'perl-xml-dom' 'libxml2' \
-         'perl-xml-libxml' 'perl-xml-libxslt' 'perl-xml-simple' 'perl-xml-twig' \
-         'perl-xml-writer')
-
+depends=('perl-archive-zip' 'perl-date-manip' 'perl-file-slurp'
+         'perl-http-cache-transparent' 'perl-http-response-encoding' 
+         'perl-html-tree' 'perl-io-stringy' 'perl-lingua-en-numbers-ordinate' 
+         'perl-lingua-preferred' 'perl-soap-lite' 'perl-term-progressbar'
+         'perl-term-readkey' 'perl-timedate' 'perl-tk-tablematrix' 
+         'perl-unicode-string' 'perl-unicode-utf8simple' 'perl-www-mechanize'
+         'perl-xml-dom' 'perl-xml-libxml' 'perl-xml-libxslt' 'perl-xml-simple'
+         'perl-xml-twig' 'perl-xml-writer')
 source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('b006f72f45a3e7be3e64f88813275403')
+md5sums=('c8396db9f823ba43d42ca3f4662b816b')
 
 build() {
   cd ${srcdir}/${pkgname}-${pkgver}
@@ -31,4 +30,4 @@ build() {
   # remove perllocal.pod and .packlist
   find ${pkgdir} -name perllocal.pod -delete
   find ${pkgdir} -name .packlist -delete
-}
\ No newline at end of file
+}
-- 
cgit v0.12


From f033e1c4c7671762ee43a16d0dc71d2891836bd7 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:02:54 -0700
Subject: xorg-apps:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xorg-apps/LICENSE  | 1354 +++++++++++++++++++++++++++++++++++
 abs/core-testing/xorg-apps/PKGBUILD |   97 +--
 2 files changed, 1405 insertions(+), 46 deletions(-)
 create mode 100644 abs/core-testing/xorg-apps/LICENSE

diff --git a/abs/core-testing/xorg-apps/LICENSE b/abs/core-testing/xorg-apps/LICENSE
new file mode 100644
index 0000000..e188a3b
--- /dev/null
+++ b/abs/core-testing/xorg-apps/LICENSE
@@ -0,0 +1,1354 @@
+
+luit:
+
+Copyright (c) 2001 by Juliusz Chroboczek
+Copyright (c) 2002 by Tomohiro KUBOTA
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+oclock:
+
+Copyright 1989, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+ 
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+x11perf:
+
+Copyright 1988, 1989 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in 
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.  
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+ 
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+
+xbiff:
+
+Copyright (c) 1988  X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+
+xcalc:
+Copyright (c) 1989, 1994  X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+------------------------------------------------------------------------------
+
+Copyright 2005 Red Hat, Inc.
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Red Hat not be used in
+advertising or publicity pertaining to distribution of the software
+without specific, written prior permission.  Red Hat makes no
+representations about the suitability of this software for any
+purpose.  It is provided "as is" without express or implied warranty.
+
+RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
+USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+
+xclipboard:
+ 
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 1989, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+xclock:
+
+Copyright 1987, 1988, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in 
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.  
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+******************************************************************/
+/*
+ * Copyright 2004 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of Sun Microsystems, Inc. nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * This software is provided "AS IS," without a warranty of any kind.
+ *
+ * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
+ * SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES OR
+ * LIABILITIES  SUFFERED BY LICENSEE AS A RESULT OF  OR RELATING TO USE,
+ * MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR ITS DERIVATIVES.
+ * IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE,
+ * PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,
+ * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE
+ * THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE
+ * SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ *
+
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+
+xconsole:
+ 
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 1990, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+xcursorgen:
+Copyright (C) 2002 Manish Singh
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Manish Singh not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Manish Singh makes no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+MANISH SINGH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL MANISH SINGH BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+xedit:
+
+Copyright (c) 1987, 1993
+     The Regents of the University of California.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement:
+     This product includes software developed by the University of
+     California, Berkeley and its contributors.
+4. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+
+Copyright (c) 1994
+	The Regents of the University of California.  All rights reserved.
+
+This code is derived from software contributed to Berkeley by
+Jan-Simon Pendry.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement:
+	This product includes software developed by the University of
+	California, Berkeley and its contributors.
+4. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+
+
+			  COPYRIGHT 1987
+		   DIGITAL EQUIPMENT CORPORATION
+		       MAYNARD, MASSACHUSETTS
+			ALL RIGHTS RESERVED.
+
+THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND
+SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION.
+DIGITAL MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR
+ANY PURPOSE.  IT IS SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
+
+IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT RIGHTS,
+APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN ADDITION TO THAT
+SET FORTH ABOVE.
+
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Digital Equipment Corporation not be
+used in advertising or publicity pertaining to distribution of the software
+without specific, written prior permission.
+
+Copyright 2004 Roland Mainz <roland.mainz@nrubsig.org>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright (c) 1999-2002 by The XFree86 Project, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall
+not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from the
+XFree86 Project.
+
+
+Copyright (c) 2007 Paulo Cesar Pereira de Andrade
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+
+xeyes:
+Copyright (c) 1991  X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+
+xkill:
+ 
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 1988, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+
+xload:
+ 
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+Copyright (c) 1989  X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+
+xlogo:
+
+Copyright 1988, 1994, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 2004 Roland Mainz <roland.mainz@nrubsig.org>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+xmag:
+Copyright 1989, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+ * Copyright (C) 1999 The XFree86 Project, Inc.  All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+ * XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name of the XFree86 Project shall
+ * not be used in advertising or otherwise to promote the sale, use or other
+ * dealings in this Software without prior written authorization from the
+ * XFree86 Project.
+
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+
+xman:
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+Copyright (c) 1987, 1988  X Consortium
+Copyright (c) 1991  X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+Copyright 2004 Roland Mainz <roland.mainz@nrubsig.org>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+xmessage:
+ 
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+ * Copyright (C) 2003 The XFree86 Project, Inc.  All Rights Reserved.
+ * 
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT.  IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE
+ * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * 
+ * Except as contained in this notice, the name of the XFree86 Project
+ * shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written
+ * authorization from the XFree86 Project.
+
+Copyright (c) 1988, 1991, 1994  X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+
+xmh:
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+Copyright (c) 1989  X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+ *
+ *			COPYRIGHT 1987, 1989
+ *		   DIGITAL EQUIPMENT CORPORATION
+ *		       MAYNARD, MASSACHUSETTS
+ *			ALL RIGHTS RESERVED.
+ *
+ * THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND
+ * SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION.
+ * DIGITAL MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR
+ * ANY PURPOSE.  IT IS SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
+ *
+ * IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT
+ * RIGHTS, APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN
+ * ADDITION TO THAT SET FORTH ABOVE.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Digital Equipment Corporation not be
+ * used in advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission.
+
+Copyright (c) 1987, 1988  X Consortium
+Copyright (c) 1993  X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in 
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.  
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+
+xpr:
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+Copyright (c) 1985  X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+Copyright (c) 1988 by Hewlett-Packard Company
+
+Permission to use, copy, modify, and distribute this software 
+and its documentation for any purpose and without fee is hereby 
+granted, provided that the above copyright notice appear in all 
+copies and that both that copyright notice and this permission 
+notice appear in supporting documentation, and that 
+Hewlett-Packard not be used in advertising or publicity 
+pertaining to distribution of the software without specific, written 
+prior permission.
+
+Copyright (c) 1988  X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+
+xwd:
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+ * Copyright 2007 Kim woelders
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation, and
+ * that the name of the copyright holders not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission.  The copyright holders make no representations
+ * about the suitability of this software for any purpose.  It is provided "as
+ * is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+
+Copyright 1993, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+Copyright 1994 Hewlett-Packard Co.
+Copyright 1996, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+
+xwud:
+ 
+  Copyright 2005  Red Hat, Inc.
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Red Hat not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Red Hat makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+ 
+  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 1985, 1986, 1988, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
diff --git a/abs/core-testing/xorg-apps/PKGBUILD b/abs/core-testing/xorg-apps/PKGBUILD
index adaccd2..b36c4f3 100644
--- a/abs/core-testing/xorg-apps/PKGBUILD
+++ b/abs/core-testing/xorg-apps/PKGBUILD
@@ -1,56 +1,57 @@
-# $Id: PKGBUILD 19081 2008-11-14 21:07:55Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 65057 2010-01-24 04:35:40Z eric $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xorg-apps
-pkgver=7.4
-pkgrel=1
+pkgver=7.5
+pkgrel=3
 pkgdesc="Various X.Org applications"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=(libxcursor libxkbfile libpng libxft libfontenc libxaw)
+license=('custom')
+depends=(libxcursor libxkbfile 'libpng>=1.4.0' libxft libfontenc libxaw)
 makedepends=(pkgconfig xbitmaps)
 source=(${url}/releases/individual/app/oclock-1.0.1.tar.bz2
-        ${url}/releases/individual/app/luit-1.0.3.tar.bz2
-        ${url}/releases/individual/app/xclock-1.0.3.tar.bz2
-        ${url}/releases/individual/app/xpr-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xwd-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xwud-1.0.1.tar.bz2
-        ${url}/releases/individual/app/x11perf-1.5.tar.bz2
-        ${url}/releases/individual/app/xbiff-1.0.1.tar.bz2
-        ${url}/releases/individual/app/xclipboard-1.0.1.tar.bz2
+        ${url}/releases/individual/app/luit-1.0.4.tar.bz2
+        ${url}/releases/individual/app/xclock-1.0.4.tar.bz2
+        ${url}/releases/individual/app/xpr-1.0.3.tar.bz2
+        ${url}/releases/individual/app/xwd-1.0.3.tar.bz2
+        ${url}/releases/individual/app/xwud-1.0.2.tar.bz2
+        ${url}/releases/individual/app/x11perf-1.5.1.tar.bz2
+        ${url}/releases/individual/app/xbiff-1.0.2.tar.bz2
+        ${url}/releases/individual/app/xclipboard-1.1.0.tar.bz2
         ${url}/releases/individual/app/xconsole-1.0.3.tar.bz2
-        ${url}/releases/individual/app/xcursorgen-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xeyes-1.0.1.tar.bz2
-        ${url}/releases/individual/app/xkill-1.0.1.tar.bz2
+        ${url}/releases/individual/app/xcursorgen-1.0.3.tar.bz2
+        ${url}/releases/individual/app/xeyes-1.1.0.tar.bz2
+        ${url}/releases/individual/app/xkill-1.0.2.tar.bz2
         ${url}/releases/individual/app/xload-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xlogo-1.0.1.tar.bz2
-        ${url}/releases/individual/app/xmag-1.0.2.tar.bz2
+        ${url}/releases/individual/app/xlogo-1.0.2.tar.bz2
+        ${url}/releases/individual/app/xmag-1.0.3.tar.bz2
         ${url}/releases/individual/app/xmessage-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xcalc-1.0.2.tar.bz2
-	${url}/releases/individual/app/xman-1.0.3.tar.bz2
-	${url}/releases/individual/app/xedit-1.1.2.tar.bz2
-	${url}/releases/individual/app/xmh-1.0.1.tar.bz2)
+        ${url}/releases/individual/app/xcalc-1.0.3.tar.bz2
+        ${url}/releases/individual/app/xman-1.1.0.tar.bz2
+        ${url}/releases/individual/app/xedit-1.1.2.tar.bz2
+        LICENSE)
 md5sums=('91f49547f9ed3cd0137c8b7c3183e360'
-         'b01e4f71c20fc1c79ed727759c1df40c'
-         '2b1a3d030d87e62a591db8ee4c0072e6'
-         '6b3a6896081f628bf5a2c9129417c86f'
-         '0a6ef08a2ac08ad5c4dd1522eb3788a3'
-         '6e3c5d0297d88e890b6f5df31f73dd60'
-         '31283bfc3c78718ac1bd71e510d4e774'
-         '404f5add4537d22dd109c33e518a5190'
-         '2c6ecedb10dc51adbb64c95f22fd99c2'
+         '4e45233e310d72dce307709761cf241b'
+         'bb9fd5e00d39c348a0078b97fdf8258f'
+         '1c2c540d240def3ea65ff2030f059f8a'
+         '007cea1f389abde5c93162dcd5541351'
+         '20bc5d85634964d4ceee77cdfcd131ed'
+         '66e4aa4645f83809071eb69553ed0222'
+         '1d4ad06725f9dc4b877ecd210b7b1607'
+         '113eccea3ee73a1ef7b43d2291ca1e09'
          '0e1a3110bebabecc2897d67a973526b0'
-         '6fc90896b8c786cb1a2100b4167f7874'
-         '033f14f7c4e30d1f4edbb22d5ef86883'
-         'f66d76abb0f75514ca32272e23cca757'
+         '69df079b3950a0db4e5f4e6f0e00ddee'
+         '933f6d2b132d14f707f1f3c87b39ebe2'
+         'dca031355b4afcf8517a8258eeb730c3'
          'b41ed6b4bcfc9897366c27a94d2bf150'
-         '4c5482552f38a7d42398a694cc9b2ee6'
-         '7c6a783e42c88360ac31d259a864a19d'
+         '7365c0852750134119734bc1879f60ca'
+         '32f7ed4c089365cadb9382f6fbd750a9'
          'b4b561ef11fd184989a6062962e86748'
-         'd31a99795b9668f047aa11bf36df6df0'
-         '3d3a4b310a65ccce82472ef83acbbf97'
+         '0b981e360b54584fcb6dc2ec4658c406'
+         '5e5b3351bac26cc1f8490faf1c1402bb'
          '67193be728414d45a1922911e6437991'
-         '656bcbdd41818a8b5a9f7dba77a3eeba')
+         '1a3977bcff6dc0fc1086e0650fcea31a')
 
 build() {
   cd "${srcdir}"
@@ -60,18 +61,22 @@ build() {
       case "${i}" in 
         x11perf*)
           sed -e 's|^LIBPATH = $(libdir)|LIBPATH = $(datadir)|' \
-	      -i Makefile.* || return 1
-	;;
-	xedit*)
-	  sed -e 's|^XEDITDIR = ${libdir}|XEDITDIR = ${datadir}|' \
-	      -i Makefile.* || return 1
-	;;
+	          -i Makefile.* || return 1
+	      ;;
+	      xedit*)
+	        sed -e 's|^XEDITDIR = ${libdir}|XEDITDIR = ${datadir}|' \
+	          -i Makefile.* || return 1
+	      ;;
+        xcursorgen*)
+          sed -e 's/libpng12/libpng14/g' -i configure
+        ;;
       esac
       ./configure --prefix=/usr --disable-xprint --mandir=/usr/share/man \
-                  --with-localealiasfile=/usr/share/X11/locale/locale.alias
+        --with-localealiasfile=/usr/share/X11/locale/locale.alias
       make || return 1
       make DESTDIR="${pkgdir}" install || return 1
       popd
     fi
   done
+  install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
 }
-- 
cgit v0.12


From 4695b42bfc2f8254e57152809625821902794925 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:03:14 -0700
Subject: xorg-server-utils:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xorg-server-utils/LICENSE.iceauth | 25 +++++++
 abs/core-testing/xorg-server-utils/LICENSE.xcmsdb  | 18 +++++
 abs/core-testing/xorg-server-utils/PKGBUILD        | 86 +++++++++++++---------
 3 files changed, 93 insertions(+), 36 deletions(-)
 create mode 100644 abs/core-testing/xorg-server-utils/LICENSE.iceauth
 create mode 100644 abs/core-testing/xorg-server-utils/LICENSE.xcmsdb

diff --git a/abs/core-testing/xorg-server-utils/LICENSE.iceauth b/abs/core-testing/xorg-server-utils/LICENSE.iceauth
new file mode 100644
index 0000000..06941b3
--- /dev/null
+++ b/abs/core-testing/xorg-server-utils/LICENSE.iceauth
@@ -0,0 +1,25 @@
+  Copyright 1989, 1998  The Open Group
+  
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation.
+  
+  The above copyright notice and this permission notice shall be included in
+  all copies or substantial portions of the Software.
+  
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+  OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+  AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+  
+  Except as contained in this notice, the name of The Open Group shall not be
+  used in advertising or otherwise to promote the sale, use or other dealings
+  in this Software without prior written authorization from The Open Group.
+   * *
+   * Original Author of "xauth" : Jim Fulton, MIT X Consortium
+   * Modified into "iceauth"    : Ralph Mor, X Consortium
+   */
diff --git a/abs/core-testing/xorg-server-utils/LICENSE.xcmsdb b/abs/core-testing/xorg-server-utils/LICENSE.xcmsdb
new file mode 100644
index 0000000..132ace6
--- /dev/null
+++ b/abs/core-testing/xorg-server-utils/LICENSE.xcmsdb
@@ -0,0 +1,18 @@
+   (c) Copyright 1990 Tektronix Inc.
+   	All Rights Reserved
+   
+   Permission to use, copy, modify, and distribute this software and its
+   documentation for any purpose and without fee is hereby granted,
+   provided that the above copyright notice appear in all copies and that
+   both that copyright notice and this permission notice appear in
+   supporting documentation, and that the name of Tektronix not be used
+   in advertising or publicity pertaining to distribution of the software
+   without specific, written prior permission.
+   
+   Tektronix disclaims all warranties with regard to this software, including
+   all implied warranties of merchantability and fitness, in no event shall
+   Tektronix be liable for any special, indirect or consequential damages or
+   any damages whatsoever resulting from loss of use, data or profits,
+   whether in an action of contract, negligence or other tortious action,
+   arising out of or in connection with the use or performance of this
+   software.
diff --git a/abs/core-testing/xorg-server-utils/PKGBUILD b/abs/core-testing/xorg-server-utils/PKGBUILD
index 84b4d12..6dd9138 100644
--- a/abs/core-testing/xorg-server-utils/PKGBUILD
+++ b/abs/core-testing/xorg-server-utils/PKGBUILD
@@ -1,59 +1,73 @@
-# $Id: PKGBUILD 19183 2008-11-16 22:56:53Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 81980 2010-06-07 13:43:18Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xorg-server-utils
-pkgver=7.4
-pkgrel=2
+pkgver=7.5
+pkgrel=4
 pkgdesc="X.Org utilities required by xorg-server"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libxfontcache' 'libxi' 'libxmu' 'libxxf86misc' 'libxrandr' 'libxxf86vm' 'mcpp>=2.6')
+license=('custom')
+depends=('libxfontcache>=1.0.5' 'libxi>=1.3' 'libxaw>=1.0.6' 'libxxf86misc>=1.0.2' 'libxrandr>=1.3.0' 'libxxf86vm>=1.1.0' 'mcpp>=2.7.2')
 makedepends=('pkgconfig' 'xbitmaps' 'bigreqsproto' 'xtrans')
-source=(${url}/releases/individual/app/iceauth-1.0.2.tar.bz2
+groups=('xorg')
+source=(${url}/releases/individual/app/iceauth-1.0.3.tar.bz2
         ${url}/releases/individual/app/rgb-1.0.3.tar.bz2
-        ${url}/releases/individual/app/sessreg-1.0.4.tar.bz2
-        ${url}/releases/individual/app/xcmsdb-1.0.1.tar.bz2
-        ${url}/releases/individual/app/xbacklight-1.1.tar.bz2
-	${url}/releases/individual/app/xgamma-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xhost-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xmodmap-1.0.3.tar.bz2
-        ${url}/releases/individual/app/xrandr-1.2.3.tar.bz2
-        ${url}/releases/individual/app/xrdb-1.0.5.tar.bz2
-        ${url}/releases/individual/app/xrefresh-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xset-1.0.4.tar.bz2
+        ${url}/releases/individual/app/sessreg-1.0.6.tar.bz2
+        ${url}/releases/individual/app/xcmsdb-1.0.2.tar.bz2
+        ${url}/releases/individual/app/xbacklight-1.1.1.tar.bz2
+        ${url}/releases/individual/app/xgamma-1.0.3.tar.bz2
+        ${url}/releases/individual/app/xhost-1.0.3.tar.bz2
+        ${url}/releases/individual/app/xinput-1.5.2.tar.bz2
+        ${url}/releases/individual/app/xmodmap-1.0.4.tar.bz2
+        ${url}/releases/individual/app/xrandr-1.3.2.tar.bz2
+        ${url}/releases/individual/app/xrdb-1.0.6.tar.bz2
+        ${url}/releases/individual/app/xrefresh-1.0.3.tar.bz2
+        ${url}/releases/individual/app/xset-1.1.0.tar.bz2
         ${url}/releases/individual/app/xsetmode-1.0.0.tar.bz2
-        ${url}/releases/individual/app/xsetroot-1.0.2.tar.bz2)
-md5sums=('7ab8b64edf0212a9d9a3c8129901a450'
+        ${url}/releases/individual/app/xsetroot-1.0.3.tar.bz2
+        ${url}/releases/individual/app/xvidtune-1.0.2.tar.bz2
+        LICENSE.iceauth
+        LICENSE.xcmsdb)
+md5sums=('975ade3f238c1eb10705da0a91e6e8e7'
          '44ea16cc3104de6401bc74035f642357'
-         '839e968d7197b9563f0fd8a5a3aac2e3'
-         '8579d5f50ba7f0c4a5bf16b9670fea01'
-         '51b4a1c0ae2b3bd77417306fd78a3e94'
-         'f13ddedaa63a608d3b025d326f4f5b5d'
-         'f746aba36f075ae4cae313d849a94f4e'
-         '626731003ec22a74ecf9e44ed098bbdf'
-         '41a9d0cc073fa6165a31fbf9e85f68a6'
-         '9c30b8e1709d5367beb7706146640c07'
-         '1228f890f86148e4e6ae22aa73118cbb'
-         '2f41fd983ba4d89419204854936025e2'
+         '8c8fcda19f4cffe573d43ec9b8255f8e'
+         '7f2bed9f4dd3301d18d83eb296c3be0d'
+         '3e39eec6d0fd5c587ca6d55aa7bb8fe1'
+         'e8a88bf1a18f35b724619849dca97f4f'
+         'c7f91b4a750d297f269c2a0a3206a1b2'
+         '8cec6023f90180cb8e4be31d98c43fda'
+         'bbe021f812e0014a8ee3692317788119'
+         '2cb19bb1c19ccf77c40032b03dbe06f0'
+         '8dd881cd5a7dcb6e456549817f0fb475'
+         '8f4fafcfb77b3c6972cc44bb3f1c899c'
+         'eeb0d02f69c76bd40470dede99b4bd49'
          'd074e79d380b031d2f60e4cd56538c93'
-         '9af7db9f3052aef0b11636720b3101dd')
+         'cbda9b9b8da5af4614110883d5a276b8'
+         'e40eeb4454f2a7cdde3a14f5dfd3aadd'
+         '65695dc24c24958190724a23655ffda7'
+         'b6235416dca2205f0ba83c0c4b3ddeb8')
 
 build() {
-  cd ${startdir}/src
+  cd "${srcdir}"
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
   for i in *; do
     if [ -d "${i}" ]; then
       pushd "${i}"
       case "${i}" in
         xrdb*)
-	  ./configure --prefix=/usr --mandir=/usr/share/man --with-cpp=/usr/bin/mcpp\ -@old || return 1
-	;;
-	*)
-	  ./configure --prefix=/usr --mandir=/usr/share/man || return 1
-	;;
+          ./configure --prefix=/usr --mandir=/usr/share/man --with-cpp=/usr/bin/mcpp || return 1
+          ;;
+        *)
+          ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+          ;;
       esac
       make || return 1
       make DESTDIR="${pkgdir}" install || return 1
+      install -m644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE.${i%-*} || return 1
       popd
     fi
   done
+# Replacing stub license files
+  install -m644 "${srcdir}"/LICENSE.* "${pkgdir}/usr/share/licenses/${pkgname}/"  || return 1
 }
-- 
cgit v0.12


From 150fefa6b1d6f4d6aa73258abe65af169fb7a5e5 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:03:36 -0700
Subject: xorg-server:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xorg-server/10-evdev.conf         |  39 +++
 abs/core-testing/xorg-server/10-quirks.conf        |  10 +
 abs/core-testing/xorg-server/PKGBUILD              | 133 +++++-----
 abs/core-testing/xorg-server/xorg-server.install   |  29 +--
 .../xorg-server/xserver-1.7.1-gamma-kdm-fix.patch  |  34 +++
 .../xorg-server/xserver-1.7.1-libcrypto.patch      |  32 +++
 abs/core-testing/xorg-server/xvfb-run              | 180 +++++++++++++
 abs/core-testing/xorg-server/xvfb-run.1            | 282 +++++++++++++++++++++
 8 files changed, 640 insertions(+), 99 deletions(-)
 create mode 100644 abs/core-testing/xorg-server/10-evdev.conf
 create mode 100644 abs/core-testing/xorg-server/10-quirks.conf
 create mode 100644 abs/core-testing/xorg-server/xserver-1.7.1-gamma-kdm-fix.patch
 create mode 100644 abs/core-testing/xorg-server/xserver-1.7.1-libcrypto.patch
 create mode 100644 abs/core-testing/xorg-server/xvfb-run
 create mode 100644 abs/core-testing/xorg-server/xvfb-run.1

diff --git a/abs/core-testing/xorg-server/10-evdev.conf b/abs/core-testing/xorg-server/10-evdev.conf
new file mode 100644
index 0000000..877aa4a
--- /dev/null
+++ b/abs/core-testing/xorg-server/10-evdev.conf
@@ -0,0 +1,39 @@
+# Catchall classes for input devices
+# We don't simply match on any device since that also adds accelerometers
+# and other devices that we don't really want to use. The list below
+# matches everything but joysticks.
+
+Section "InputClass"
+        Identifier "evdev pointer catchall"
+        MatchIsPointer "on"
+        MatchDevicePath "/dev/input/event*"
+        Driver "evdev"
+EndSection
+
+Section "InputClass"
+        Identifier "evdev keyboard catchall"
+        MatchIsKeyboard "on"
+        MatchDevicePath "/dev/input/event*"
+        Driver "evdev"
+EndSection
+
+Section "InputClass"
+        Identifier "evdev touchpad catchall"
+        MatchIsTouchpad "on"
+        MatchDevicePath "/dev/input/event*"
+        Driver "evdev"
+EndSection
+
+Section "InputClass"
+        Identifier "evdev tablet catchall"
+        MatchIsTablet "on"
+        MatchDevicePath "/dev/input/event*"
+        Driver "evdev"
+EndSection
+
+Section "InputClass"
+        Identifier "evdev touchscreen catchall"
+        MatchIsTouchscreen "on"
+        MatchDevicePath "/dev/input/event*"
+        Driver "evdev"
+EndSection
diff --git a/abs/core-testing/xorg-server/10-quirks.conf b/abs/core-testing/xorg-server/10-quirks.conf
new file mode 100644
index 0000000..7afad22
--- /dev/null
+++ b/abs/core-testing/xorg-server/10-quirks.conf
@@ -0,0 +1,10 @@
+# Collection of quirks and blacklist/whitelists for specific devices.
+
+
+# Accelerometer device, posts data through ABS_X/ABS_Y, making X unusable
+# http://bugs.freedesktop.org/show_bug.cgi?id=22442 
+Section "InputClass"
+        Identifier "ThinkPad HDAPS accelerometer blacklist"
+        MatchProduct "ThinkPad HDAPS accelerometer data"
+        Option "Ignore" "on"
+EndSection
diff --git a/abs/core-testing/xorg-server/PKGBUILD b/abs/core-testing/xorg-server/PKGBUILD
index 51f75f8..ae28da3 100644
--- a/abs/core-testing/xorg-server/PKGBUILD
+++ b/abs/core-testing/xorg-server/PKGBUILD
@@ -1,105 +1,88 @@
-# $Id: PKGBUILD 21903 2008-12-17 20:32:54Z jgc $
-# Maintainer: Alexander Baldeck <kth5@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 83339 2010-06-21 12:03:15Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-server
-pkgver=1.5.3
-pkgrel=5
+pkgver=1.8.1.902
+pkgrel=1
 pkgdesc="X.Org X servers"
 arch=('i686' 'x86_64')
 license=('custom')
 url="http://xorg.freedesktop.org"
-depends=('libx11>=1.1.5' 'libxkbui>=1.0.2' 'libgl' 'libxfont>=1.3.3' 'openssl>=0.9.8h' 'libxxf86misc>=1.0.1' 'libpciaccess>=0.10.5' 'libxv>=1.0.4' 'libxaw>=1.0.4' 'pixman>=0.11.10' 'hal>=0.5.11' 'xcursor-themes' 'xkeyboard-config>=1.3' 'xorg-server-utils' 'xorg-utils' 'xorg-fonts-misc' 'xbitmaps' 'libdrm>=2.3.1' 'diffutils' 'xf86-input-evdev')
-makedepends=('glproto>=1.4.9' 'xf86driproto>=2.0.4' 'mesa>=7.2' 'randrproto>=1.2.2' 'renderproto>=0.9.3' 'scrnsaverproto>=1.1.0' 'fontsproto>=2.0.2' 'videoproto>=2.2.2' 'compositeproto>=0.4' 'trapproto>=3.4.3' 'resourceproto>=1.0.2' 'xineramaproto>=1.1.2' 'evieext>=1.0.2' 'libxkbfile>=1.0.5' 'libxmu>=1.0.4' 'libxpm>=3.5.7' 'libxxf86dga>=1.0.2' 'inputproto>=1.4.4' 'xcmiscproto>=1.1.2' 'bigreqsproto' 'libdrm=2.3.1' 'xtrans')
+depends=('libgl' 'libxfont>=1.4.1' 'libgcrypt>=1.4.5' 'udev>=151' 'libpciaccess>=0.10.9' 'libxv>=1.0.5' 'pixman>=0.18.0' 'xcursor-themes>=1.0.2' 'xkeyboard-config>=1.8' 'xorg-server-utils' 'xorg-fonts-misc' 'xbitmaps' 'diffutils' 'xf86-input-evdev>=2.3.2-2' 'inputproto>=2.0')
+makedepends=('libx11>=1.3.3' 'mesa>=7.8.2' 'xf86driproto>=2.1.0' 'xtrans>=1.2.5' 'libxkbfile>=1.0.6' 'randrproto>=1.3.1' 'renderproto>=0.11' 'xcmiscproto>=1.2.0' 'bigreqsproto>=1.1.0' 'resourceproto>=1.1.0' 'videoproto>=2.3.0' 'compositeproto>=0.4.1' 'scrnsaverproto>=1.2.0' 'xf86dgaproto>=2.1' 'libgl>=7.8.2' 'glproto>=1.4.11' 'xorg-util-macros>=1.6.1' 'xineramaproto>=1.2' 'recordproto')
+conflicts=('catalyst-utils<=9.2' 'xf86-input-calcomp' 'xf86-input-citron' 'xf86-input-digitaledge' 'xf86-input-dmc' 'xf86-input-dynapro' 'xf86-input-elo2300'
+	'xf86-input-jamstudio' 'xf86-input-magellan' 'xf86-input-magictouch' 'xf86-input-microtouch' 'xf86-input-palmax' 'xf86-input-spaceorb' 'xf86-input-summa' 'xf86-input-tek4957' 'xf86-input-ur98' 'xf86-video-vga' 'xf86-video-intel-legacy' 'nvidia-96xx-utils<96.43.14' 'nvidia-173xx-utils<173.14.21')
 options=('!libtool')
 provides=('x-server')
 groups=('xorg')
 install=xorg-server.install
+backup=('etc/X11/xorg.conf.d/10-evdev.conf' 'etc/X11/xorg.conf.d/10-quirks.conf')
 source=(${url}/releases/individual/xserver/${pkgname}-${pkgver}.tar.bz2
-	xserver-1.5-branch-4970d.patch
-	001_fedora_extramodes.patch
-	xorg-redhat-die-ugly-pattern-die-die-die.patch
-	xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch
-	xserver-1.5.3-AEI-on-by-default.patch)
-md5sums=('308971036e25250e7fe3cccfd5a120f8'
-         '61f9bb524501247dce647b218ad14347'
-         '033427f2b406cba8dd6103ff374e7156'
+        xorg-redhat-die-ugly-pattern-die-die-die.patch
+        xvfb-run
+        xvfb-run.1
+        10-evdev.conf
+        10-quirks.conf)
+md5sums=('8a851466d13e4ee527cc782308532119'
          '1a336eb22e27cbf443ec5a2ecddfa93c'
-         '7b03ba9b75d795e4f7fdfaa550d97159'
-         '63d1d61d217005db7c23c4a98fc3e7eb')
+         '52fd3effd80d7bc6c1660d4ecf23d31c'
+         '376c70308715cd2643f7bff936d9934b'
+         'e930e153d69968a795fe4e2ef5d9a5dc'
+         'd4f7dfc6be4ef4e2c6dd7632a9d88abe')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  # Upstream commits from server-1.5 branch
-  patch -Np1 -i "${srcdir}/xserver-1.5-branch-4970d.patch" || return 1
-
-  # extramodes
-  patch -Np1 -i "${srcdir}/001_fedora_extramodes.patch" || return 1
 
   # Get rid of the ugly pattern
-  patch -Np3 -i "${srcdir}/xorg-redhat-die-ugly-pattern-die-die-die.patch" || return 1
-
-  # Patch from Fedora to fix FS#12248
-  patch -Np1 -i "${srcdir}/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch" || return 1
-
-  # Upstream patch to fix evdev issues with >=2.1.0
-  patch -Np1 -i "${srcdir}/xserver-1.5.3-AEI-on-by-default.patch" || return 1
+  patch -Np3 -i "${srcdir}/xorg-redhat-die-ugly-pattern-die-die-die.patch"
 
-  # Fix dbus config path
-  sed -i -e 's/\$(sysconfdir)/\/etc/' config/Makefile.*  || return 1
+  sed -i -e 's/\$(prefix)\/etc/\/etc/g' config/Makefile.*
 
+  autoreconf
   ./configure --prefix=/usr \
-              --enable-ipv6 \
-              --enable-dri \
-              --disable-dmx \
-              --enable-xvfb \
-              --enable-xnest \
-              --enable-composite \
-              --enable-xcsecurity \
-              --enable-xorg \
-              --enable-xtrap \
-              --enable-xevie \
-	      --enable-xephyr \
-              --enable-glx-tls \
-              --enable-xorgcfg \
-	      --enable-kdrive \
-              --enable-install-setuid \
-              --enable-config-hal \
-	      --enable-config-dbus \
-	      --disable-xfbdev \
-	      --disable-xfake \
-	      --disable-xsdl \
-	      --disable-kdrive-vesa \
-	      --disable-dri2 \
-              --disable-xprint \
-              --disable-static \
-              --sysconfdir=/etc/X11 \
-              --localstatedir=/var \
-              --with-default-font-path=/usr/share/fonts/misc,/usr/share/fonts/100dpi:unscaled,/usr/share/fonts/75dpi:unscaled,/usr/share/fonts/TTF,/usr/share/fonts/Type1 \
-              --with-xkb-path=/usr/share/X11/xkb \
-              --with-xkb-output=/var/lib/xkb \
-              --with-dri-driver-path=/usr/lib/xorg/modules/dri --enable-null-root-cursor  || return 1
+      --enable-ipv6 \
+      --enable-dri \
+      --disable-dmx \
+      --enable-xvfb \
+      --enable-xnest \
+      --enable-composite \
+      --enable-xcsecurity \
+      --enable-xorg \
+      --enable-xephyr \
+      --enable-glx-tls \
+      --enable-kdrive \
+      --enable-install-setuid \
+      --enable-config-udev \
+      --disable-config-dbus \
+      --enable-record \
+      --disable-xfbdev \
+      --disable-xfake \
+      --disable-static \
+      --sysconfdir=/etc/X11 \
+      --localstatedir=/var \
+      --with-xkb-path=/usr/share/X11/xkb \
+      --with-xkb-output=/var/lib/xkb \
+      --with-dri-driver-path=/usr/lib/xorg/modules/dri
 
-  make || return 1
-  make DESTDIR="${pkgdir}" install || return 1
+  make
+  make DESTDIR="${pkgdir}" install
 
-  rm -rf "${pkgdir}/var/log" || return 1
+  install -m755 "${srcdir}/xvfb-run" "${pkgdir}/usr/bin/"
+  install -m644 "${srcdir}/xvfb-run.1" "${pkgdir}/usr/share/man/man1/"
 
-  install -m755 -d "${pkgdir}/etc/X11" || return 1
-  install -m755 -d "${pkgdir}/var/lib/xkb" || return 1
+  rm -rf "${pkgdir}/var/log"
 
-  # No longer needed, but as nvidia-utils mangles these files,
-  # keep them like this so they can be restored
-  mv "${pkgdir}/usr/lib/xorg/modules/libwfb.so" \
-     "${pkgdir}/usr/lib/xorg/modules/libwfb.so.1.4" || return 1
+  install -m755 -d "${pkgdir}/var/lib/xkb"
+
+  # Install sane config files in /etc. I don't see the need for config files in /usr/share here, users will edit them anyways.
+  install -m755 -d "${pkgdir}/etc/X11/xorg.conf.d"
+  install -m644 "${srcdir}/10-evdev.conf" "${srcdir}/10-quirks.conf" "${pkgdir}/etc/X11/xorg.conf.d/"
+  rm -rf "${pkgdir}/usr/share/X11"
 
   # Needed for non-mesa drivers, libgl will restore it
   mv "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" \
-     "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.xorg" || return 1
-
-  mv "${pkgdir}/usr/lib/xorg/modules/extensions/libdri.so" \
-     "${pkgdir}/usr/lib/xorg/modules/extensions/libdri.xorg" || return 1
+     "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.xorg"
 
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
-  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
 }
diff --git a/abs/core-testing/xorg-server/xorg-server.install b/abs/core-testing/xorg-server/xorg-server.install
index c67438d..89cfec0 100644
--- a/abs/core-testing/xorg-server/xorg-server.install
+++ b/abs/core-testing/xorg-server/xorg-server.install
@@ -1,33 +1,14 @@
 post_install() {
-  rm -f usr/lib/xorg/modules/libwfb.so
-  ln -sf libwfb.so.1.4 usr/lib/xorg/modules/libwfb.so
+cat << _EOF
 
-  cmp usr/lib/xorg/modules/extensions/libdri.so usr/lib/xorg/modules/extensions/libglx.xorg >/dev/null 2>&1 && rm -f usr/lib/xorg/modules/extensions/libdri.so
-
-  # If the symlink is dead or non-existent, remove it and make a new one
-  if [ ! -e usr/lib/xorg/modules/extensions/libdri.so ]; then
-    rm -f usr/lib/xorg/modules/extensions/libdri.so
-    ln -sf libdri.xorg usr/lib/xorg/modules/extensions/libdri.so
-  fi
-}
-
-post_upgrade() {
-  if [ "`vercmp $2 1.4.99.906`" -lt 0 ]; then
-    cat << _EOF
-
-  Input device handling has changed in xorg-server 1.5.
+  Input device handling has changed since xorg-server 1.5.
   Please read http://wiki.archlinux.org/index.php/Xorg_input_hotplugging.
 
 _EOF
-  fi
-  post_install
 }
 
-post_remove() {
-  rm -f /usr/lib/xorg/modules/libwfb.so
-
-  # If the symlink is dead, remove it
-  if [ ! -e usr/lib/xorg/modules/extensions/libdri.so ]; then
-    rm -f usr/lib/xorg/modules/extensions/libdri.so
+post_upgrade() {
+  if [ "`vercmp $2 1.4.99.906`" -lt 0 ]; then
+    post_install
   fi
 }
diff --git a/abs/core-testing/xorg-server/xserver-1.7.1-gamma-kdm-fix.patch b/abs/core-testing/xorg-server/xserver-1.7.1-gamma-kdm-fix.patch
new file mode 100644
index 0000000..c62837e
--- /dev/null
+++ b/abs/core-testing/xorg-server/xserver-1.7.1-gamma-kdm-fix.patch
@@ -0,0 +1,34 @@
+From acc64ce5be7383c09e88a23aab06ebc2403f2ca3 Mon Sep 17 00:00:00 2001
+From: Bill Nottingham <notting@redhat.com>
+Date: Fri, 6 Nov 2009 10:32:27 +1000
+Subject: [PATCH] fix KDM gamma issue on vt switch
+
+---
+ hw/xfree86/modes/xf86RandR12.c |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
+index 6ea9d26..ece12b9 100644
+--- a/hw/xfree86/modes/xf86RandR12.c
++++ b/hw/xfree86/modes/xf86RandR12.c
+@@ -1761,6 +1761,7 @@ xf86RandR12Init12 (ScreenPtr pScreen)
+     ScrnInfoPtr		pScrn = xf86Screens[pScreen->myNum];
+     rrScrPrivPtr	rp = rrGetScrPriv(pScreen);
+     XF86RandRInfoPtr	randrp  = XF86RANDRINFO(pScreen);
++    int i;
+ 
+     rp->rrGetInfo = xf86RandR12GetInfo12;
+     rp->rrScreenSetSize = xf86RandR12ScreenSetSize;
+@@ -1790,6 +1791,9 @@ xf86RandR12Init12 (ScreenPtr pScreen)
+      */
+     if (!xf86RandR12SetInfo12 (pScreen))
+ 	return FALSE;
++    for (i = 0; i < rp->numCrtcs; i++) {
++	xf86RandR12CrtcGetGamma(pScreen, rp->crtcs[i]);
++    }
+     return TRUE;
+ }
+ 
+-- 
+1.6.5.1
+
diff --git a/abs/core-testing/xorg-server/xserver-1.7.1-libcrypto.patch b/abs/core-testing/xorg-server/xserver-1.7.1-libcrypto.patch
new file mode 100644
index 0000000..ea33ea9
--- /dev/null
+++ b/abs/core-testing/xorg-server/xserver-1.7.1-libcrypto.patch
@@ -0,0 +1,32 @@
+From 8875112f5c57ec5d575e717c5638fbc919145efb Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Mon, 16 Nov 2009 18:01:26 -0500
+Subject: [PATCH] configure: Only link against libcrypto
+
+openssl.pc will link you against libssl, which we don't need, and which
+brings in another seven libraries we also don't need.  This is still
+bogus, we're really only trying to get a SHA1 routine, we could link it
+statically and be even better off.
+---
+ configure.ac |    6 ------
+ 1 files changed, 0 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index f69f97e..254d33d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1297,14 +1297,8 @@ if test "x$SHA1_LIB" = "x" ; then
+ fi
+ 
+ if test "x$SHA1_LIB" = "x" ; then
+-  PKG_CHECK_EXISTS([OPENSSL], [openssl], [HAVE_OPENSSL_PKC=yes],
+-                    [HAVE_OPENSSL_PKC=no])
+-  if test "x$HAVE_OPENSSL_PKC" = xyes; then
+-    REQUIRED_LIBS="$REQUIRED_LIBS openssl"
+-  else
+     AC_CHECK_LIB([crypto], [SHA1_Init], [SHA1_LIB="-lcrypto"],
+                  [AC_MSG_ERROR([OpenSSL must be installed in order to build the X server.])])
+-  fi
+ fi
+ 
+ PKG_CHECK_MODULES([XSERVERCFLAGS], [$REQUIRED_MODULES $REQUIRED_LIBS])
diff --git a/abs/core-testing/xorg-server/xvfb-run b/abs/core-testing/xorg-server/xvfb-run
new file mode 100644
index 0000000..4c2f4e0
--- /dev/null
+++ b/abs/core-testing/xorg-server/xvfb-run
@@ -0,0 +1,180 @@
+#!/bin/sh
+
+# $Id: xvfb-run 2027 2004-11-16 14:54:16Z branden $
+
+# This script starts an instance of Xvfb, the "fake" X server, runs a command
+# with that server available, and kills the X server when done.  The return
+# value of the command becomes the return value of this script.
+#
+# If anyone is using this to build a Debian package, make sure the package
+# Build-Depends on xvfb, xbase-clients, and xfonts-base.
+
+set -e
+
+PROGNAME=xvfb-run
+SERVERNUM=99
+AUTHFILE=
+ERRORFILE=/dev/null
+STARTWAIT=3
+XVFBARGS="-screen 0 640x480x8"
+LISTENTCP="-nolisten tcp"
+XAUTHPROTO=.
+
+# Query the terminal to establish a default number of columns to use for
+# displaying messages to the user.  This is used only as a fallback in the event
+# the COLUMNS variable is not set.  ($COLUMNS can react to SIGWINCH while the
+# script is running, and this cannot, only being calculated once.)
+DEFCOLUMNS=$(stty size 2>/dev/null | awk '{print $2}') || true
+if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" >/dev/null 2>&1; then
+    DEFCOLUMNS=80
+fi
+
+# Display a message, wrapping lines at the terminal width.
+message () {
+    echo "$PROGNAME: $*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS}
+}
+
+# Display an error message.
+error () {
+    message "error: $*" >&2
+}
+
+# Display a usage message.
+usage () {
+    if [ -n "$*" ]; then
+        message "usage error: $*"
+    fi
+    cat <<EOF
+Usage: $PROGNAME [OPTION ...] COMMAND
+Run COMMAND (usually an X client) in a virtual X server environment.
+Options:
+-a        --auto-servernum          try to get a free server number, starting at
+                                    --server-num
+-e FILE   --error-file=FILE         file used to store xauth errors and Xvfb
+                                    output (default: $ERRORFILE)
+-f FILE   --auth-file=FILE          file used to store auth cookie
+                                    (default: ./.Xauthority)
+-h        --help                    display this usage message and exit
+-n NUM    --server-num=NUM          server number to use (default: $SERVERNUM)
+-l        --listen-tcp              enable TCP port listening in the X server
+-p PROTO  --xauth-protocol=PROTO    X authority protocol name to use
+                                    (default: xauth command's default)
+-s ARGS   --server-args=ARGS        arguments (other than server number and
+                                    "-nolisten tcp") to pass to the Xvfb server
+                                    (default: "$XVFBARGS")
+-w DELAY  --wait=DELAY              delay in seconds to wait for Xvfb to start
+                                    before running COMMAND (default: $STARTWAIT)
+EOF
+}
+
+# Find a free server number by looking at .X*-lock files in /tmp.
+find_free_servernum() {
+    # Sadly, the "local" keyword is not POSIX.  Leave the next line commented in
+    # the hope Debian Policy eventually changes to allow it in /bin/sh scripts
+    # anyway.
+    #local i
+
+    i=$SERVERNUM
+    while [ -f /tmp/.X$i-lock ]; do
+        i=$(($i + 1))
+    done
+    echo $i
+}
+
+# Clean up files
+clean_up() {
+    if [ -e "$AUTHFILE" ]; then
+        XAUTHORITY=$AUTHFILE xauth remove ":$SERVERNUM" >>"$ERRORFILE" 2>&1
+    fi
+    if [ -n "$XVFB_RUN_TMPDIR" ]; then
+        if ! rm -r "$XVFB_RUN_TMPDIR"; then
+            error "problem while cleaning up temporary directory"
+            exit 5
+        fi
+    fi
+}
+
+# Parse the command line.
+ARGS=$(getopt --options +ae:f:hn:lp:s:w: \
+       --long auto-servernum,error-file:,auth-file:,help,server-num:,listen-tcp,xauth-protocol:,server-args:,wait: \
+       --name "$PROGNAME" -- "$@")
+GETOPT_STATUS=$?
+
+if [ $GETOPT_STATUS -ne 0 ]; then
+    error "internal error; getopt exited with status $GETOPT_STATUS"
+    exit 6
+fi
+
+eval set -- "$ARGS"
+
+while :; do
+    case "$1" in
+        -a|--auto-servernum) SERVERNUM=$(find_free_servernum) ;;
+        -e|--error-file) ERRORFILE="$2"; shift ;;
+        -f|--auth-file) AUTHFILE="$2"; shift ;;
+        -h|--help) SHOWHELP="yes" ;;
+        -n|--server-num) SERVERNUM="$2"; shift ;;
+        -l|--listen-tcp) LISTENTCP="" ;;
+        -p|--xauth-protocol) XAUTHPROTO="$2"; shift ;;
+        -s|--server-args) XVFBARGS="$2"; shift ;;
+        -w|--wait) STARTWAIT="$2"; shift ;;
+        --) shift; break ;;
+        *) error "internal error; getopt permitted \"$1\" unexpectedly"
+           exit 6
+           ;;
+    esac
+    shift
+done
+
+if [ "$SHOWHELP" ]; then
+    usage
+    exit 0
+fi
+
+if [ -z "$*" ]; then
+    usage "need a command to run" >&2
+    exit 2
+fi
+
+if ! which xauth >/dev/null; then
+    error "xauth command not found"
+    exit 3
+fi
+
+# tidy up after ourselves
+trap clean_up EXIT
+
+# If the user did not specify an X authorization file to use, set up a temporary
+# directory to house one.
+if [ -z "$AUTHFILE" ]; then
+    XVFB_RUN_TMPDIR="$(mktemp -d -t $PROGNAME.XXXXXX)"
+    AUTHFILE="$XVFB_RUN_TMPDIR/Xauthority"
+fi
+
+# Start Xvfb.
+MCOOKIE=$(mcookie)
+XAUTHORITY=$AUTHFILE xauth source - << EOF >>"$ERRORFILE" 2>&1
+add :$SERVERNUM $XAUTHPROTO $MCOOKIE
+EOF
+XAUTHORITY=$AUTHFILE Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP >>"$ERRORFILE" \
+  2>&1 &
+XVFBPID=$!
+sleep "$STARTWAIT"
+if ! kill -0 $XVFBPID 2>/dev/null; then
+  echo "Xvfb failed to start" >&2
+  exit 1
+fi
+
+# Start the command and save its exit status.
+set +e
+DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1
+RETVAL=$?
+set -e
+
+# Kill Xvfb now that the command has exited.
+kill $XVFBPID
+
+# Return the executed command's exit status.
+exit $RETVAL
+
+# vim:set ai et sts=4 sw=4 tw=80:
diff --git a/abs/core-testing/xorg-server/xvfb-run.1 b/abs/core-testing/xorg-server/xvfb-run.1
new file mode 100644
index 0000000..137d3a1
--- /dev/null
+++ b/abs/core-testing/xorg-server/xvfb-run.1
@@ -0,0 +1,282 @@
+.\" $Id: xvfb-run.1 2138 2005-01-17 23:40:27Z branden $
+.\"
+.\" Copyright 1998-2004 Branden Robinson <branden@debian.org>.
+.\"
+.\" This is free software; you may redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as
+.\" published by the Free Software Foundation; either version 2,
+.\" or (at your option) any later version.
+.\"
+.\" This is distributed in the hope that it will be useful, but
+.\" WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License with
+.\" the Debian operating system, in /usr/share/common-licenses/GPL;  if
+.\" not, write to the Free Software Foundation, Inc., 59 Temple Place,
+.\" Suite 330, Boston, MA 02111-1307 USA
+.\"
+.\" We need the URL macro from groff's www macro package, but also want
+.\" things to work all right for people who don't have it.  So we define
+.\" our own URL macro and let the www macro package override it if it's
+.\" available.
+.de URL
+\\$2 \(laURL: \\$1 \(ra\\$3
+..
+.if \n[.g] .mso www.tmac
+.TH xvfb\-run 1 "2004\-11\-12" "Debian Project"
+.SH NAME
+xvfb\-run \- run specified X client or command in a virtual X server environment
+.SH SYNOPSIS
+.B xvfb\-run
+[
+.I options
+]
+.I command
+.SH DESCRIPTION
+.B xvfb\-run
+is a wrapper for the
+.BR Xvfb (1x)
+command which simplifies the task of running commands (typically an X
+client, or a script containing a list of clients to be run) within a virtual
+X server environment.
+.PP
+.B xvfb\-run
+sets up an X authority file (or uses an existing user\-specified one),
+writes a cookie to it (see
+.BR xauth (1x))
+and then starts the
+.B Xvfb
+X server as a background process.
+The process ID of
+.B Xvfb
+is stored for later use.
+The specified
+.I command
+is then run using the X display corresponding to the
+.B Xvfb
+server
+just started and the X authority file created earlier.
+.PP
+When the
+.I command
+exits, its status is saved, the
+.B Xvfb
+server is killed (using the process ID stored earlier), the X authority
+cookie removed, and the authority file deleted (if the user did not specify
+one to use).
+.B xvfb\-run
+then exits with the exit status of
+.IR command .
+.PP
+.B xvfb\-run
+requires the
+.B xauth
+command to function.
+.SH OPTIONS
+.TP
+.B \-a\fR,\fB \-\-auto\-servernum
+Try to get a free server number, starting at 99, or the argument to
+.BR \-\-server\-num .
+.TP
+.BI \-e\  file \fR,\fB\ \-\-error\-file= file
+Store output from
+.B xauth
+and
+.B Xvfb
+in
+.IR file .
+The default is
+.IR /dev/null .
+.TP
+.BI \-f\  file \fR,\fB\ \-\-auth\-file= file
+Store X authentication data in
+.IR file .
+By default, a temporary directory called
+.IR xvfb\-run. PID
+(where PID is the process ID of
+.B xvfb\-run
+itself) is created in the directory specified by the environment variable
+.B TMPDIR
+(or
+.I /tmp
+if that variable is null or unset), and the
+.BR tempfile (1)
+command is used to create a file in that temporary directory called
+.IR Xauthority .
+.TP
+.B \-h\fR,\fB \-\-help
+Display a usage message and exit.
+.TP
+.BI \-n\  servernumber \fR,\fB\ \-\-server\-num= servernumber
+Use
+.I servernumber
+as the server number (but see the
+.B \-a\fR,\fB \-\-auto\-servernum
+option above).
+The default is 99.
+.TP
+.B \-l\fR,\fB \-\-listen\-tcp
+Enable TCP port listening in the X server.
+For security reasons (to avoid denial\-of\-service attacks or exploits),
+TCP port listening is disabled by default.
+.TP
+.BI \-p\  protocolname \fR,\fB\ \-\-xauth\-protocol= protocolname
+Use
+.I protocolname
+as the X authority protocol to use.
+The default is \(oq.\(cq, which
+.B xauth
+interprets as its own default protocol, which is MIT\-MAGIC\-COOKIE\-1.
+.TP
+.BI \-s\  arguments \fR,\fB\ \-\-server\-args= arguments
+Pass
+.I arguments
+to the
+.B Xvfb
+server.
+Be careful to quote any whitespace characters that may occur within
+.I arguments
+to prevent them from regarded as separators for
+.BR xvfb\-run 's
+own arguments.
+Also, note that specification of \(oq\-nolisten tcp\(cq in
+.I arguments
+may override the function of
+.BR xvfb\-run 's
+own
+.B \-l\fR,\fB \-\-listen\-tcp
+option, and that specification of the server number (e.g., \(oq:1\(cq) may
+be ignored because of the way the X server parses its argument list.
+Use the
+.B xvfb\-run
+option
+.BI \-n\  servernumber \fR,\fB\ \-\-server\-num= servernumber
+to achieve the latter function.
+The default is \(oq\-screen 0 640x480x8\(cq.
+.TP
+.BI \-w\  delay \fR,\fB\ \-\-wait= delay
+Wait
+.I delay
+seconds after launching
+.B Xvfb
+before attempting to start the specified command.
+The default is 3.
+.SH ENVIRONMENT
+.TP
+.B COLUMNS
+indicates the width of the terminal device in character cells.
+This value is used for formatting diagnostic messages.
+If not set, the terminal is queried using
+.BR stty (1)
+to determine its width.
+If that fails, a value of \(oq80\(cq is assumed.
+.TP
+.B TMPDIR
+specifies the directory in which to place
+.BR xvfb\-run 's
+temporary directory for storage of the X authority file; only used if the
+.B \-f
+or
+.B \-\-auth\-file
+options are not specified.
+.SH "OUTPUT FILES"
+.PP
+Unless the
+.B \-f
+or
+.B \-\-auth\-file
+options are specified, a temporary
+directory and file within it are created (and deleted) to store the X
+authority cookies used by the
+.B Xvfb
+server and client(s) run under it.
+See
+.BR tempfile (1).
+If \-f or \-\-auth\-file are used, then the specified X authority file is
+only written to, not created or deleted (though
+.B xauth
+creates an authority file itself if told to use use that does not already
+exist).
+.PP
+An error file with a user\-specified name is also created if the
+.B \-e
+or
+.B \-\-error\-file
+options are specifed; see above.
+.SH "EXIT STATUS"
+.B xvfb\-run
+uses its exit status as well as output to standard error to communicate
+diagnostics.
+The exit status of \(oq1\(cq is not used, and should be interpreted as failure
+of the specified command.
+.TP
+0
+.B xvfb\-run
+only uses this exit status if the
+.B \-h\fR,\fB \-\-help
+option is given.
+In all other situations, this may be interpreted as success of the specified
+command.
+.TP
+2
+No command to run was specified.
+.TP
+3
+The
+.B xauth
+command is not available.
+.TP
+4
+The temporary directory that was going to be used already exists; since
+.B xvfb\-run
+produces a uniquely named directory, this may indicate an attempt by another
+process on the system to exploit a temporary file race condition.
+.TP
+5
+A problem was encountered while cleaning up the temporary directory.
+.TP
+6
+A problem was encountered while using
+.BR getopt (1)
+to parse the command\-line arguments.
+.SH EXAMPLES
+.TP
+.B xvfb\-run \-\-auto\-servernum \-\-server\-num=1 xlogo
+runs the
+.BR xlogo (1x)
+demonstration client inside the
+.B Xvfb
+X server on the first available server number greater than or equal to 1.
+.TP
+.B xvfb\-run \-\-server\-args="\-screen 0 1024x768x24" ico \-faces
+runs the
+.BR ico (1x)
+demonstration client (and passes it the
+.B \-faces
+argument) inside the
+.B Xvfb
+X server, configured with a root window of 1024 by 768 pixels and a color
+depth of 24 bits.
+.PP
+Note that the demo X clients used in the above examples will not exit on
+their own, so they will have to be killed before
+.B xvfb\-run
+will exit.
+.SH BUGS
+See
+.URL "http://bugs.debian.org/xvfb" "the Debian Bug Tracking System" .
+If you wish to report a bug in
+.BR xvfb\-run ,
+please use the 
+.BR reportbug (1)
+command.
+.SH AUTHOR
+.B xfvb\-run
+was written by Branden Robinson and Jeff Licquia with sponsorship from
+Progeny Linux Systems.
+.SH "SEE ALSO"
+.BR Xvfb (1x),
+.BR xauth (1x)
+.\" vim:set et tw=80:
-- 
cgit v0.12


From 02509bf98cfe731ebaf04a4157548fbfe4226573 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:03:51 -0700
Subject: xorg-utils:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xorg-util-macros/PKGBUILD   | 18 +++++----
 abs/core-testing/xorg-utils/LICENSE.xdpyinfo | 26 ++++++++++++
 abs/core-testing/xorg-utils/LICENSE.xfd      | 25 ++++++++++++
 abs/core-testing/xorg-utils/LICENSE.xlsfonts | 22 ++++++++++
 abs/core-testing/xorg-utils/LICENSE.xprop    | 45 +++++++++++++++++++++
 abs/core-testing/xorg-utils/PKGBUILD         | 60 ++++++++++++++++++----------
 6 files changed, 167 insertions(+), 29 deletions(-)
 create mode 100644 abs/core-testing/xorg-utils/LICENSE.xdpyinfo
 create mode 100644 abs/core-testing/xorg-utils/LICENSE.xfd
 create mode 100644 abs/core-testing/xorg-utils/LICENSE.xlsfonts
 create mode 100644 abs/core-testing/xorg-utils/LICENSE.xprop

diff --git a/abs/core-testing/xorg-util-macros/PKGBUILD b/abs/core-testing/xorg-util-macros/PKGBUILD
index af3786a..3ca4dfa 100644
--- a/abs/core-testing/xorg-util-macros/PKGBUILD
+++ b/abs/core-testing/xorg-util-macros/PKGBUILD
@@ -1,21 +1,23 @@
-# $Id: PKGBUILD 21902 2008-12-17 20:27:32Z jgc $
+# $Id: PKGBUILD 85383 2010-07-12 17:45:37Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-util-macros
-pkgver=1.2.1
+pkgver=1.10.0
 pkgrel=1
 pkgdesc="X.Org Autotools macros"
-arch=(i686 x86_64)
+arch=(any)
 license=('custom')
 url="http://xorg.freedesktop.org/"
 source=(${url}/releases/individual/util/util-macros-${pkgver}.tar.bz2)
-md5sums=('dc7ddaf9bea8b341510efe4dac125af4')
+sha1sums=('01bd26de7f76907ad502b430a5d18f64a896dc81')
 
 build() {
   cd "${srcdir}/util-macros-${pkgver}"
-  ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR="${pkgdir}" install || return 1
+  ./configure --prefix=/usr
+  make
+  make DESTDIR="${pkgdir}" install
+  install -m755 -d "${pkgdir}/usr/lib"
+  mv "${pkgdir}/usr/share/pkgconfig" "${pkgdir}/usr/lib/"
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
-  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
 }
diff --git a/abs/core-testing/xorg-utils/LICENSE.xdpyinfo b/abs/core-testing/xorg-utils/LICENSE.xdpyinfo
new file mode 100644
index 0000000..495dd2b
--- /dev/null
+++ b/abs/core-testing/xorg-utils/LICENSE.xdpyinfo
@@ -0,0 +1,26 @@
+  Copyright 1988, 1998  The Open Group
+  Copyright 2005 Hitachi, Ltd.
+  
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation.
+  
+  The above copyright notice and this permission notice shall be included in
+  all copies or substantial portions of the Software.
+  
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+  OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+  AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+  
+  Except as contained in this notice, the name of The Open Group shall not be
+  used in advertising or otherwise to promote the sale, use or other dealings
+  in this Software without prior written authorization from The Open Group.
+   *
+   * Author:  Jim Fulton, MIT X Consortium
+   */
+
diff --git a/abs/core-testing/xorg-utils/LICENSE.xfd b/abs/core-testing/xorg-utils/LICENSE.xfd
new file mode 100644
index 0000000..2ac6c9d
--- /dev/null
+++ b/abs/core-testing/xorg-utils/LICENSE.xfd
@@ -0,0 +1,25 @@
+  Copyright 1989, 1998  The Open Group
+  
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation.
+  
+  The above copyright notice and this permission notice shall be included in
+  all copies or substantial portions of the Software.
+  
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+  OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+  AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+  
+  Except as contained in this notice, the name of The Open Group shall not be
+  used in advertising or otherwise to promote the sale, use or other dealings
+  in this Software without prior written authorization from The Open Group.
+   * *
+   * Author:  Jim Fulton, MIT X Consortium
+   */
+
diff --git a/abs/core-testing/xorg-utils/LICENSE.xlsfonts b/abs/core-testing/xorg-utils/LICENSE.xlsfonts
new file mode 100644
index 0000000..a9a4bd3
--- /dev/null
+++ b/abs/core-testing/xorg-utils/LICENSE.xlsfonts
@@ -0,0 +1,22 @@
+  Copyright 1989, 1998  The Open Group
+  
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation.
+  
+  The above copyright notice and this permission notice shall be included in
+  all copies or substantial portions of the Software.
+  
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+  OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+  AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+  
+  Except as contained in this notice, the name of The Open Group shall not be
+  used in advertising or otherwise to promote the sale, use or other dealings
+  in this Software without prior written authorization from The Open Group.
+
diff --git a/abs/core-testing/xorg-utils/LICENSE.xprop b/abs/core-testing/xorg-utils/LICENSE.xprop
new file mode 100644
index 0000000..b94017f
--- /dev/null
+++ b/abs/core-testing/xorg-utils/LICENSE.xprop
@@ -0,0 +1,45 @@
+  Copyright 1990, 1998  The Open Group
+  Copyright (c) 2000  The XFree86 Project, Inc.
+  
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation.
+    
+  The above copyright notice and this permission notice shall be included
+  in all copies or substantial portions of the Software.
+  
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+  IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+  OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+  OTHER DEALINGS IN THE SOFTWARE.
+  
+  Except as contained in this notice, the name of The Open Group shall
+  not be used in advertising or otherwise to promote the sale, use or
+  other dealings in this Software without prior written authorization
+  from The Open Group.
+
+  Copyright 2007 Kim woelders
+ 
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that copyright
+  notice and this permission notice appear in supporting documentation, and
+  that the name of the copyright holders not be used in advertising or
+  publicity pertaining to distribution of the software without specific,
+  written prior permission.  The copyright holders make no representations
+  about the suitability of this software for any purpose.  It is provided "as
+  is" without express or implied warranty.
+ 
+  THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+  OF THIS SOFTWARE.
+
diff --git a/abs/core-testing/xorg-utils/PKGBUILD b/abs/core-testing/xorg-utils/PKGBUILD
index 61a55ce..cef7e9e 100644
--- a/abs/core-testing/xorg-utils/PKGBUILD
+++ b/abs/core-testing/xorg-utils/PKGBUILD
@@ -1,42 +1,60 @@
-# $Id: PKGBUILD 18946 2008-11-12 04:14:33Z eric $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 81985 2010-06-07 13:58:47Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xorg-utils
-pkgver=7.4
+pkgver=7.6
 pkgrel=2
 pkgdesc="Collection of client utilities used to query the X server"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('libxxf86dga' 'libxi' 'libxxf86misc' 'libxtst' 'libxinerama' 'libxv'
-         'libdmx' 'libxft' 'libxaw>=1.0.5')
-makedepends=('pkgconfig' 'mesa')
-source=(${url}/releases/individual/app/xdpyinfo-1.0.3.tar.bz2
-        ${url}/releases/individual/app/xdriinfo-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xev-1.0.3.tar.bz2
+         'libdmx' 'libxft' 'libxaw>=1.0.6' 'libgl' 'libxcomposite' 'xcb-util')
+makedepends=('pkgconfig' 'mesa' 'glproto' 'xorg-util-macros')
+groups=('xorg')
+source=(${url}/releases/individual/app/xdpyinfo-1.1.0.tar.bz2
+        ${url}/releases/individual/app/xdriinfo-1.0.3.tar.bz2
+        ${url}/releases/individual/app/xev-1.0.4.tar.bz2
         ${url}/releases/individual/app/xfd-1.0.1.tar.bz2
         ${url}/releases/individual/app/xfontsel-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xlsatoms-1.0.1.tar.bz2
-        ${url}/releases/individual/app/xlsclients-1.0.1.tar.bz2
+        ${url}/releases/individual/app/xlsatoms-1.1.0.tar.bz2
+        ${url}/releases/individual/app/xlsclients-1.1.0.tar.bz2
         ${url}/releases/individual/app/xlsfonts-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xprop-1.0.4.tar.bz2
-        ${url}/releases/individual/app/xvinfo-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xwininfo-1.0.4.tar.bz2)
-md5sums=('b7cbab6cbcd12bf7ad65dbc12d86e104' 'a5ec51ed9f0a55dc3462d90d52ff899c'\
-         'a9532c3d1683c99bb5df1895cb3a60b1' 'c72abd90f50ef459bc14b39ec9fcc7f8'\
-         '288fe4cf8a990e4e602aac16dd9109fb' '69adcda848479acc3b82b3928812d191'\
-         '44473b880d26bfbe8b3d4d72b183cba7' '28958248590ff60ecd70e8f590d977b7'\
-         '48aa8fd78802f477dcbf9ef0dfd9f783' 'e1e318436f49e2f0f3764593dadd9ad2'\
-         'e2a9bf5ab7f2a0866700a3b49dd8c6bf')
+        ${url}/releases/individual/app/xprop-1.1.0.tar.bz2
+        ${url}/releases/individual/app/xvinfo-1.1.0.tar.bz2
+        ${url}/releases/individual/app/xwininfo-1.0.5.tar.bz2
+        LICENSE.xdpyinfo
+        LICENSE.xfd
+        LICENSE.xprop
+        LICENSE.xlsfonts)
+md5sums=('d1d516610316138105cd07064b257c5c'
+         'cb304d1ce562ac48b68eedeba38c662f'
+         '5f98c0a2725a33d60ef4956befe078fb'
+         'c72abd90f50ef459bc14b39ec9fcc7f8'
+         '288fe4cf8a990e4e602aac16dd9109fb'
+         'c543ccb6489b629d427810d9a57d0724'
+         '550a0fee047c5043f2cbf190b41f8a1b'
+         '28958248590ff60ecd70e8f590d977b7'
+         'f0bacbd30f0dd1c1e9ccafe97687b7a4'
+         '8cc299b2cb636b5f7fe672610789d3d4'
+         '908f8bc3255f639effa9780fb1c19ea4'
+         'b43f731a9e2684728230ce8e33f63228'
+         '9e8a82b7e9898f36c378b80509f170a6'
+         '801f9850b29dad506e995d011efe2914'
+         '345d6e65d71fdde292cc27f93c15e4a1')
 
 build() {
   cd "${srcdir}"
   for i in *; do
     if [ -d "${i}" ]; then
       pushd "${i}"
-      ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+      ./configure --prefix=/usr --mandir=/usr/share/man --without-xprint || return 1
       make || return 1
       make DESTDIR="${pkgdir}" install || return 1
+      install -D -m644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE.${i%-*} || return 1
       popd
     fi
   done
+# Replacing stub license files
+  install -D -m644 "${srcdir}"/LICENSE.* "${pkgdir}/usr/share/licenses/${pkgname}/"  || return 1
 }
-- 
cgit v0.12


From d58ce0e1c810024fe816bb86d59acbac911fc68a Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:04:04 -0700
Subject: xterm:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xterm/LICENSE  | 73 +++++++++++++++++++++++++++++++++++++
 abs/core-testing/xterm/PKGBUILD | 81 ++++++++++++++++++++++++-----------------
 2 files changed, 120 insertions(+), 34 deletions(-)
 create mode 100644 abs/core-testing/xterm/LICENSE

diff --git a/abs/core-testing/xterm/LICENSE b/abs/core-testing/xterm/LICENSE
new file mode 100644
index 0000000..518a2cc
--- /dev/null
+++ b/abs/core-testing/xterm/LICENSE
@@ -0,0 +1,73 @@
+/***********************************************************
+
+Copyright 2002-2008,2009 by Thomas E. Dickey
+
+                        All Rights Reserved
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name(s) of the above copyright
+holders shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization.
+
+Copyright 1987, 1988  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Digital not be used in
+advertising or publicity pertaining to distribution of the software
+without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+******************************************************************/
diff --git a/abs/core-testing/xterm/PKGBUILD b/abs/core-testing/xterm/PKGBUILD
index f3ac735..d1d375a 100644
--- a/abs/core-testing/xterm/PKGBUILD
+++ b/abs/core-testing/xterm/PKGBUILD
@@ -1,44 +1,57 @@
-# $Id: PKGBUILD 18684 2008-11-08 16:46:33Z jgc $
-#  ppc Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# i686 Maintainer: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 82810 2010-06-17 14:34:10Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
 pkgname=xterm
-pkgver=237
+pkgver=259
 pkgrel=1
 pkgdesc="X Terminal Emulator"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
 url="http://invisible-island.net/xterm/"
-depends=('libxft' 'libxaw>=1.0.5' 'ncurses' 'xorg-apps')
+license=('custom')
+depends=('libxft' 'libxaw' 'ncurses' 'xorg-apps')
 groups=('xorg')
-source=(ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver}.tgz)
-md5sums=('6d5f9e124fd3e09487f47c66da8c7345')
+source=(ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver}.tgz
+        LICENSE)
+md5sums=('22037e1b794d749072310cb142800f05'
+         '10ecc3f8ee91e3189863a172f68282d2')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr \
-              --libdir=/etc \
-              --mandir=/usr/share/man \
-	      --with-app-defaults=/usr/share/X11/app-defaults/ \
-              --with-x \
-	      --disable-full-tgetent \
-	      --disable-imake \
-	      --enable-ansi-color \
-	      --enable-88-color \
-	      --enable-256-color \
-	      --enable-broken-osc \
-	      --enable-broken-st \
-	      --enable-load-vt-fonts \
-	      --enable-i18n \
-	      --enable-wide-chars \
-	      --enable-doublechars \
-	      --enable-warnings \
-	      --enable-tcap-query \
-	      --enable-logging \
-	      --enable-dabbrev \
-	      --enable-freetype \
-	      --enable-luit \
-	      --enable-mini-luit \
-	      --enable-narrowproto || return 1
-  make || return 1
-  make DESTDIR="${pkgdir}" install || return 1
-  chmod 0755 "${pkgdir}/usr/bin/xterm" || return 1
+      --libdir=/etc \
+      --mandir=/usr/share/man \
+      --with-app-defaults=/usr/share/X11/app-defaults/ \
+      --with-x \
+      --disable-full-tgetent \
+      --disable-imake \
+      --enable-ansi-color \
+      --enable-88-color \
+      --enable-256-color \
+      --enable-broken-osc \
+      --enable-broken-st \
+      --enable-load-vt-fonts \
+      --enable-i18n \
+      --enable-wide-chars \
+      --enable-doublechars \
+      --enable-warnings \
+      --enable-tcap-query \
+      --enable-logging \
+      --enable-dabbrev \
+      --enable-freetype \
+      --enable-luit \
+      --enable-mini-luit \
+      --enable-narrowproto \
+      --enable-exec-xterm \
+      --with-tty-group=tty
+  make
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  make DESTDIR="${pkgdir}" install
+  chmod 0755 "${pkgdir}/usr/bin/xterm"
+
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 "${srcdir}/LICENSE" \
+      "${pkgdir}/usr/share/licenses/${pkgname}/"
 }
-- 
cgit v0.12


From d204f93a9e871eff87cc2f05bae6d5a8bff1c03f Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:04:48 -0700
Subject: xz:Bumped/Updated for LinHES 7.

---
 abs/core-testing/xz/PKGBUILD | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 abs/core-testing/xz/PKGBUILD

diff --git a/abs/core-testing/xz/PKGBUILD b/abs/core-testing/xz/PKGBUILD
new file mode 100644
index 0000000..a776a63
--- /dev/null
+++ b/abs/core-testing/xz/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 82447 2010-06-11 08:40:21Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: François Charette <firmicus@gmx.net>
+
+pkgname=xz
+pkgver=4.999.9beta
+_snapshot=143-g3e49
+pkgrel=5
+pkgdesc='Library and command line tools for XZ and LZMA compressed files'
+arch=('i686' 'x86_64')
+url='http://tukaani.org/xz/'
+license=('GPL' 'LGPL' 'custom')
+depends=('sh')
+provides=('lzma' 'lzma-utils' 'xz-utils')
+replaces=('lzma' 'lzma-utils' 'xz-utils')
+conflicts=('lzma' 'lzma-utils' 'xz-utils')
+options=('!libtool')
+source=("http://tukaani.org/${pkgname}/${pkgname}-${pkgver}-${_snapshot}.tar.gz")
+md5sums=('9e5a42d2b5277d8d71405d065120bd4e')
+
+# keep an upgrade path for older installations
+PKGEXT='.pkg.tar.gz'
+
+build() {
+	cd ${srcdir}/${pkgname}-$pkgver-${_snapshot}
+
+	./configure --prefix=/usr \
+		--enable-dynamic \
+		--disable-rpath \
+		--enable-werror
+	sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+	sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+	make
+}
+
+package() {
+	cd ${srcdir}/${pkgname}-$pkgver-${_snapshot}
+	make DESTDIR=${pkgdir} install
+	install -d -m755 ${pkgdir}/usr/share/licenses/xz/
+	ln -sf /usr/share/doc/xz/COPYING ${pkgdir}/usr/share/licenses/xz/
+	ln -sf /usr/share/licenses/common/GPL2/license.txt ${pkgdir}/usr/share/doc/xz/COPYING.GPLv2
+}
-- 
cgit v0.12


From 78581fe6fdc02f37fbeca0ad46d704efef5c2c91 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:05:07 -0700
Subject: xz-utils:Removed for LinHES 7.

---
 abs/core-testing/xz-utils/PKGBUILD | 30 ------------------------------
 1 file changed, 30 deletions(-)
 delete mode 100644 abs/core-testing/xz-utils/PKGBUILD

diff --git a/abs/core-testing/xz-utils/PKGBUILD b/abs/core-testing/xz-utils/PKGBUILD
deleted file mode 100644
index 540187e..0000000
--- a/abs/core-testing/xz-utils/PKGBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Maintainer: Pierre Schmitz <pierre@archlinux.de>
-# Contributor: François Charette <firmicus@gmx.net>
-
-pkgname=xz-utils
-pkgver=4.999.9beta
-pkgrel=2
-pkgdesc='utils for managing LZMA and XZ compressed files'
-arch=('i686' 'x86_64')
-url='http://tukaani.org/xz/'
-license=('GPL' 'LGPL')
-depends=('bash')
-provides=('lzma' 'lzma-utils')
-replaces=('lzma' 'lzma-utils')
-conflicts=('lzma' 'lzma-utils')
-options=('!libtool')
-source=("http://tukaani.org/xz/xz-${pkgver}.tar.gz")
-md5sums=('f2073579b6da2fe35d453adee1aaf1b2')
-
-build() {
-	cd $srcdir/xz-$pkgver
-
-	./configure --prefix=/usr \
-		--enable-static \
-		--enable-dynamic \
-		--disable-rpath
-	sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
-	sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
-	make
-	make DESTDIR=$pkgdir install
-}
-- 
cgit v0.12


From 98b6c81c6ff5fbbcd4a9bf00f108d25b399fb463 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:05:18 -0700
Subject: zd1211-firmware:Bumped/Updated for LinHES 7.

---
 abs/core-testing/zd1211-firmware/PKGBUILD | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/abs/core-testing/zd1211-firmware/PKGBUILD b/abs/core-testing/zd1211-firmware/PKGBUILD
index 179a8ca..a583f8e 100644
--- a/abs/core-testing/zd1211-firmware/PKGBUILD
+++ b/abs/core-testing/zd1211-firmware/PKGBUILD
@@ -1,22 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 59439 2009-11-23 22:50:09Z giovanni $
 # Maintainer: Dan McGee <dan@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
 
 pkgname=zd1211-firmware
 pkgver=1.4
-pkgrel=2
+pkgrel=3
 pkgdesc="Firmware for the in-kernel26 zd1211rw wireless driver"
-arch=(i686 x86_64)
+arch=('any')
 url="http://zd1211.wiki.sourceforge.net/"
-# firmware files are here:
-# http://sourceforge.net/project/showfiles.php?group_id=129083
 license=('GPL')
 provides=('zd1211')
-source=(http://downloads.sourceforge.net/zd1211/zd1211-firmware-$pkgver.tar.bz2)
+source=(http://downloads.sourceforge.net/zd1211/${pkgname}-${pkgver}.tar.bz2)
 md5sums=('19f28781d76569af8551c9d11294c870')
 
 build() {
-  cd $startdir/src/zd1211-firmware
-  mkdir -p $startdir/pkg/lib/firmware/zd1211/
-  # just unpack the files to the firmware directory
-  install -m644 * $startdir/pkg/lib/firmware/zd1211/ || return 1
+  cd "${srcdir}/${pkgname}"
+  # Install firmware
+  for i in zd1211* WS11U*
+  do                
+    install -D -m 644 $i "${pkgdir}/lib/firmware/zd1211/$i" || return 1
+  done
 }
-- 
cgit v0.12


From fa13be07fd284291d565293dab2f78884a9c6a88 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:05:28 -0700
Subject: zlib:Bumped/Updated for LinHES 7.

---
 abs/core-testing/zlib/PKGBUILD                   | 36 +++++++++++++++---------
 abs/core-testing/zlib/zlib-1.2.5-lfs-decls.patch | 13 +++++++++
 2 files changed, 35 insertions(+), 14 deletions(-)
 create mode 100644 abs/core-testing/zlib/zlib-1.2.5-lfs-decls.patch

diff --git a/abs/core-testing/zlib/PKGBUILD b/abs/core-testing/zlib/PKGBUILD
index 70d4b2d..f320d37 100644
--- a/abs/core-testing/zlib/PKGBUILD
+++ b/abs/core-testing/zlib/PKGBUILD
@@ -1,25 +1,33 @@
-# $Id: PKGBUILD 4237 2008-07-05 19:17:35Z pierre $
+# $Id: PKGBUILD 80715 2010-05-20 20:58:22Z pierre $
 # Maintainer: Pierre Schmitz <pierre@archlinux.de>
 
 pkgname=zlib
-pkgver=1.2.3.3
-pkgrel=14
-pkgdesc="A compression/decompression Library"
+pkgver=1.2.5
+pkgrel=2
+pkgdesc='Compression library implementing the deflate compression method found in gzip and PKZIP'
 arch=('i686' 'x86_64')
-license=('custom:zlib')
-url="http://www.gzip.org/zlib"
-groups=('base')
+license=('custom')
+url="http://www.zlib.net/"
 depends=('glibc')
-source=("ftp://ftp.archlinux.org/other/zlib/zlib-${pkgver}.tar.gz")
-md5sums=('c444cf020e5f0e3323b11f5a2d8af8d3')
+options=('!makeflags')
+source=("http://zlib.net/zlib-${pkgver}.tar.gz"
+        'zlib-1.2.5-lfs-decls.patch')
+md5sums=('c735eab2d659a96e5a594c9e8541ad63'
+         '4cb279ea3beab621f3526bf7b7ab99e5')
 
 build() {
 	cd ${srcdir}/zlib-$pkgver
-
-	./configure --prefix=/usr --shared
+	# see http://bugs.archlinux.org/task/19280
+	patch -p1 -i ${srcdir}/zlib-1.2.5-lfs-decls.patch || return 1
+	export CFLAGS="${CFLAGS/-O2/-O3} -DUNALIGNED_OK"
+	./configure --prefix=/usr
 	make || return 1
-	make install prefix=${pkgdir}/usr || return 1
 
-	grep -A 24 '^  Copyright' zlib.h > license.txt
-	install -D license.txt ${pkgdir}/usr/share/licenses/zlib/license.txt
+	grep -A 24 '^  Copyright' zlib.h > LICENSE
+}
+
+package() {
+	cd ${srcdir}/zlib-$pkgver
+	make install DESTDIR=${pkgdir} || return 1
+	install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/zlib/LICENSE
 }
diff --git a/abs/core-testing/zlib/zlib-1.2.5-lfs-decls.patch b/abs/core-testing/zlib/zlib-1.2.5-lfs-decls.patch
new file mode 100644
index 0000000..36e26af
--- /dev/null
+++ b/abs/core-testing/zlib/zlib-1.2.5-lfs-decls.patch
@@ -0,0 +1,13 @@
+Index: zlib-1.2.5/zlib.h
+===================================================================
+--- zlib-1.2.5.orig/zlib.h
++++ zlib-1.2.5/zlib.h
+@@ -1578,7 +1578,7 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF(
+ #  define gzoffset gzoffset64
+ #  define adler32_combine adler32_combine64
+ #  define crc32_combine crc32_combine64
+-#  ifdef _LARGEFILE64_SOURCE
++#  ifndef _LARGEFILE64_SOURCE
+      ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
+      ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int));
+      ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile));
-- 
cgit v0.12


From 4c1419b5be2bdb619e57f870228d3a9bba684dd0 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:05:42 -0700
Subject: alsa-firmware:Bumped/Updated for LinHES 7.

---
 abs/extra-testing/alsa-firmware/PKGBUILD | 33 ++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 abs/extra-testing/alsa-firmware/PKGBUILD

diff --git a/abs/extra-testing/alsa-firmware/PKGBUILD b/abs/extra-testing/alsa-firmware/PKGBUILD
new file mode 100644
index 0000000..d9c890b
--- /dev/null
+++ b/abs/extra-testing/alsa-firmware/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 79046 2010-04-30 05:38:39Z tpowa $
+# Contributor: Jochen Immendörfer <jochen dot immendoerfer at gmail dot com>
+# Package Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=alsa-firmware
+pkgver=1.0.23
+pkgrel=1
+pkgdesc="ALSA firmware package"
+arch=('i686' 'x86_64')
+url="http://alsa-project.org/"
+license=('GPL')
+source=(ftp://ftp.alsa-project.org/pub/firmware/$pkgname-$pkgver.tar.bz2)
+options=(!strip)
+
+build() {
+  cd $srcdir/$pkgname-$pkgver
+  ./configure --prefix=/usr
+  make || return 1
+  make DESTDIR=$pkgdir install || return 1
+  # remove files which conflicts with kernel26-firmware
+  rm -rf ${pkgdir}/lib/firmware/ess/maestro3_assp_kernel.fw || return 1
+  rm -rf ${pkgdir}/lib/firmware/ess/maestro3_assp_minisrc.fw || return 1
+  rm -rf ${pkgdir}/lib/firmware/korg/k1212.dsp || return 1
+  rm -rf ${pkgdir}/lib/firmware/sb16/alaw_main.csp || return 1
+  rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_capture.csp || return 1
+  rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_init.csp || return 1
+  rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_playback.csp || return 1
+  rm -rf ${pkgdir}/lib/firmware/sb16/mulaw_main.csp || return 1
+  rm -rf ${pkgdir}/lib/firmware/yamaha/ds1_ctrl.fw || return 1
+  rm -rf ${pkgdir}/lib/firmware/yamaha/ds1_dsp.fw || return 1
+  rm -rf ${pkgdir}/lib/firmware/yamaha/ds1e_ctrl.fw || return 1
+  rm -rf ${pkgdir}/lib/firmware/yamaha/yss225_registers.bin || return 1
+}
+md5sums=('e3f755331d6d485f6fd697249b90f877')
-- 
cgit v0.12


From 2004b65ff841a4e63fe9e4c6d244c3a1cb477e88 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:05:54 -0700
Subject: autofs:Bumped/Updated for LinHES 7.

---
 abs/extra-testing/autofs/PKGBUILD | 27 ++++++++-------------
 abs/extra-testing/autofs/autofs   | 50 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+), 17 deletions(-)
 create mode 100644 abs/extra-testing/autofs/autofs

diff --git a/abs/extra-testing/autofs/PKGBUILD b/abs/extra-testing/autofs/PKGBUILD
index ac317d2..ae04100 100755
--- a/abs/extra-testing/autofs/PKGBUILD
+++ b/abs/extra-testing/autofs/PKGBUILD
@@ -5,7 +5,7 @@
 
 pkgname=autofs
 pkgver=5.0.5
-pkgrel=1
+pkgrel=3
 pkgdesc="A kernel-based automounter for Linux"
 arch=('i686' 'x86_64')
 url="http://wiki.autofs.net/FrontPage"
@@ -14,8 +14,14 @@ depends=('libldap' 'libxml2' 'heimdal')
 backup=(etc/autofs/auto.master etc/autofs/auto.misc etc/conf.d/autofs)
 install=${pkgname}.install
 source=("http://www.kernel.org/pub/linux/daemons/${pkgname}/v5/${pkgname}-${pkgver}.tar.bz2"
-  'autofs.conf.d' 'auto.master' 'auto.misc'
-  'heimdal.patch' 'run' 'log.run' 'finish')
+        'autofs' 'autofs.conf.d' 'auto.master' 'auto.misc'
+        'heimdal.patch')
+md5sums=('a1d262cb6ebef0c2dd0fe22232fb3d5a'
+         'e307bf6d2638e46eeb916cf42fe029b2'
+         '47f597c870410055e0fdb66103daf928'
+         'a6cefb591e77b31b79dbb7243646c96b'
+         'd8a15ec9186c5c0b36e5cea1e2739e8a'
+         'efd46b6406b940cb48f7c6197790fb8e')
 
 build() {
   export MAKEFLAGS="-j1"
@@ -39,19 +45,6 @@ package(){
   
   install -Dm644 ${srcdir}/auto.master ${pkgdir}/etc/autofs/auto.master || return 1
   install -Dm644 ${srcdir}/auto.misc ${pkgdir}/etc/autofs/auto.misc || return 1
+  install -Dm755 ${srcdir}/autofs ${pkgdir}/etc/rc.d/autofs || return 1
   install -Dm644 ${srcdir}/autofs.conf.d ${pkgdir}/etc/conf.d/autofs || return 1
-  mkdir -p ${pkgdir}/etc/sv/autofs/supervise
-  mkdir -p ${pkgdir}/etc/sv/autofs/log/supervise
-  install -Dm744 ${srcdir}/run ${pkgdir}/etc/sv/autofs || return 1
-  install -Dm744 ${srcdir}/finish ${pkgdir}/etc/sv/autofs || return 1
-  install -Dm744 ${srcdir}/log.run ${pkgdir}/etc/sv/autofs/log/run || return 1
 }
-
-md5sums=('a1d262cb6ebef0c2dd0fe22232fb3d5a'
-         '47f597c870410055e0fdb66103daf928'
-         'a6cefb591e77b31b79dbb7243646c96b'
-         'd8a15ec9186c5c0b36e5cea1e2739e8a'
-         'efd46b6406b940cb48f7c6197790fb8e'
-         'f2048c24da7fa1421c2e8b0b90fb17f9'
-         '518e277f960a1af837ba6c5cca13c615'
-         '5b30948886b6d71287652d784fccf1fb')
diff --git a/abs/extra-testing/autofs/autofs b/abs/extra-testing/autofs/autofs
new file mode 100644
index 0000000..08bd3e1
--- /dev/null
+++ b/abs/extra-testing/autofs/autofs
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+daemon_name=autofs
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/autofs ] && . /etc/conf.d/autofs
+
+if [ ! -z "$TIMEOUT" ]; then
+  daemonoptions="--timeout=$TIMEOUT $daemonoptions"
+fi
+
+PID=`cat /var/run/autofs-running 2> /dev/null`
+case "$1" in
+  start)
+    stat_busy "Starting $daemon_name daemon"
+    [ -z "$PID" ] && /usr/sbin/automount $daemonoptions &> /dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      add_daemon $daemon_name
+      stat_done
+    fi
+    ;;
+  stop)
+    stat_busy "Stopping $daemon_name daemon"
+    [ ! -z "$PID" ] && kill $PID &> /dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      rm_daemon $daemon_name
+      stat_done
+    fi
+    ;;
+  restart)
+    stat_busy "Restarting $daemon_name daemon"
+    $0 stop
+    sleep 1
+    $0 start
+    ;;
+  status)
+    stat_busy "Checking $daemon_name status";
+    ck_status $daemon_name
+    ;;
+  *)
+    echo "usage: $0 {start|stop|restart|status}"  
+esac
+exit 0
-- 
cgit v0.12


From bd2fce4f72e5fedac6a0af36b6538090b63b845a Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:06:06 -0700
Subject: consolekit:Bumped/Updated for LinHES 7.

---
 abs/extra-testing/consolekit/PKGBUILD              | 42 ++++++++++++++++++++++
 abs/extra-testing/consolekit/consolekit.logrotate  |  5 +++
 abs/extra-testing/consolekit/nodaemon.patch        |  9 +++++
 .../consolekit/pam-foreground-compat.ck            | 16 +++++++++
 .../consolekit/reorder-initialization.patch        | 40 +++++++++++++++++++++
 5 files changed, 112 insertions(+)
 create mode 100644 abs/extra-testing/consolekit/PKGBUILD
 create mode 100644 abs/extra-testing/consolekit/consolekit.logrotate
 create mode 100644 abs/extra-testing/consolekit/nodaemon.patch
 create mode 100644 abs/extra-testing/consolekit/pam-foreground-compat.ck
 create mode 100644 abs/extra-testing/consolekit/reorder-initialization.patch

diff --git a/abs/extra-testing/consolekit/PKGBUILD b/abs/extra-testing/consolekit/PKGBUILD
new file mode 100644
index 0000000..e034fa1
--- /dev/null
+++ b/abs/extra-testing/consolekit/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 86890 2010-08-06 20:24:41Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: onestep_ua <onestep@ukr.net>
+
+pkgname=consolekit
+pkgver=0.4.1
+pkgrel=3
+pkgdesc="A framework for defining and tracking users, login sessions, and seats"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/ConsoleKit"
+license=('GPL')
+depends=('polkit>=0.95' 'zlib' 'libx11>=1.2.2')
+makedepends=('pkgconfig' 'xmlto' 'docbook-xsl')
+options=(!libtool)
+source=(http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-${pkgver}.tar.bz2
+        pam-foreground-compat.ck
+        nodaemon.patch
+        reorder-initialization.patch
+        consolekit.logrotate)
+md5sums=('48eda4483cc97841d5f88e8e003eb6d7'
+         'a8a4de71d9b0549b8143e5f6c2a36fc7'
+         'a5bfd56bc89411ff5bb18276a68cb212'
+         '99fa8cb1bf232050cc0c076378e216c5'
+         '6fefa451d9fe2fc6d6269629d3529793')
+
+build() {
+  cd "${srcdir}/ConsoleKit-${pkgver}"
+  patch -Np1 -i "${srcdir}/nodaemon.patch"
+  patch -Np1 -i "${srcdir}/reorder-initialization.patch"
+  ./configure --prefix=/usr \
+      --sysconfdir=/etc \
+      --localstatedir=/var \
+      --libexecdir=/usr/lib/ConsoleKit \
+      --enable-pam-module \
+      --enable-docbook-docs
+  make
+  make DESTDIR="${pkgdir}" install
+  install -m755 "${srcdir}/pam-foreground-compat.ck" "${pkgdir}/usr/lib/ConsoleKit/run-session.d/"
+
+  # install the logrotate config
+  install -D -m644 ${srcdir}/consolekit.logrotate ${pkgdir}/etc/logrotate.d/consolekit
+}
diff --git a/abs/extra-testing/consolekit/consolekit.logrotate b/abs/extra-testing/consolekit/consolekit.logrotate
new file mode 100644
index 0000000..7c5346e
--- /dev/null
+++ b/abs/extra-testing/consolekit/consolekit.logrotate
@@ -0,0 +1,5 @@
+/var/log/ConsoleKit/history {
+    missingok
+    notifempty
+    delaycompress
+}
diff --git a/abs/extra-testing/consolekit/nodaemon.patch b/abs/extra-testing/consolekit/nodaemon.patch
new file mode 100644
index 0000000..c4c08e9
--- /dev/null
+++ b/abs/extra-testing/consolekit/nodaemon.patch
@@ -0,0 +1,9 @@
+diff -up ConsoleKit-0.4.1/data/org.freedesktop.ConsoleKit.service.in.nodaemon ConsoleKit-0.4.1/data/org.freedesktop.ConsoleKit.service.in
+--- ConsoleKit-0.4.1/data/org.freedesktop.ConsoleKit.service.in.nodaemon	2009-12-15 10:56:39.839818556 -0500
++++ ConsoleKit-0.4.1/data/org.freedesktop.ConsoleKit.service.in	2009-12-15 10:56:50.177792048 -0500
+@@ -1,4 +1,4 @@
+ [D-BUS Service]
+ Name=org.freedesktop.ConsoleKit
+-Exec=@sbindir@/console-kit-daemon
++Exec=@sbindir@/console-kit-daemon --no-daemon
+ User=root
diff --git a/abs/extra-testing/consolekit/pam-foreground-compat.ck b/abs/extra-testing/consolekit/pam-foreground-compat.ck
new file mode 100644
index 0000000..7f6b122
--- /dev/null
+++ b/abs/extra-testing/consolekit/pam-foreground-compat.ck
@@ -0,0 +1,16 @@
+#!/bin/sh
+TAGDIR=/var/run/console
+
+[ -n "$CK_SESSION_USER_UID" ] || exit 1
+
+TAGFILE="$TAGDIR/`getent passwd $CK_SESSION_USER_UID | cut -f 1 -d:`"
+
+if [ "$1" = "session_added" ]; then
+    mkdir -p "$TAGDIR"
+    echo "$CK_SESSION_ID" >> "$TAGFILE"
+fi
+
+if [ "$1" = "session_removed" ] && [ -e "$TAGFILE" ]; then
+    sed -i "\%^$CK_SESSION_ID\$%d" "$TAGFILE"
+    [ -s "$TAGFILE" ] || rm -f "$TAGFILE"
+fi
diff --git a/abs/extra-testing/consolekit/reorder-initialization.patch b/abs/extra-testing/consolekit/reorder-initialization.patch
new file mode 100644
index 0000000..f65abd5
--- /dev/null
+++ b/abs/extra-testing/consolekit/reorder-initialization.patch
@@ -0,0 +1,40 @@
+diff -up ConsoleKit-0.4.1/src/main.c.reorder-initialization ConsoleKit-0.4.1/src/main.c
+--- ConsoleKit-0.4.1/src/main.c.reorder-initialization	2009-12-18 14:51:38.821212946 -0500
++++ ConsoleKit-0.4.1/src/main.c	2009-12-18 14:52:19.246211176 -0500
+@@ -294,11 +294,19 @@ main (int    argc,
+ 
+         setup_debug_log (debug);
+ 
++        g_debug ("initializing console-kit-daemon %s", VERSION);
++
+         connection = get_system_bus ();
+         if (connection == NULL) {
+                 goto out;
+         }
+ 
++        manager = ck_manager_new ();
++
++        if (manager == NULL) {
++                goto out;
++        }
++
+         bus_proxy = get_bus_proxy (connection);
+         if (bus_proxy == NULL) {
+                 g_warning ("Could not construct bus_proxy object; bailing out");
+@@ -310,16 +318,8 @@ main (int    argc,
+                 goto out;
+         }
+ 
+-        g_debug ("initializing console-kit-daemon %s", VERSION);
+-
+         create_pid_file ();
+ 
+-        manager = ck_manager_new ();
+-
+-        if (manager == NULL) {
+-                goto out;
+-        }
+-
+         loop = g_main_loop_new (NULL, FALSE);
+ 
+         g_signal_connect (bus_proxy,
-- 
cgit v0.12


From 78a3ef57a70a33968943235df28c662064caaf3e Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:06:18 -0700
Subject: cups:Bumped/Updated for LinHES 7.

---
 abs/extra-testing/cups/PKGBUILD                    |  105 ++
 abs/extra-testing/cups/cups                        |   38 +
 abs/extra-testing/cups/cups-1.3.7-peercred.patch   |   11 +
 abs/extra-testing/cups/cups-avahi.patch            | 1089 ++++++++++++++++++++
 abs/extra-testing/cups/cups.install                |   11 +
 abs/extra-testing/cups/cups.logrotate              |    8 +
 abs/extra-testing/cups/cups.pam                    |    3 +
 abs/extra-testing/cups/fix-infinite-usb-loop.patch |   35 +
 8 files changed, 1300 insertions(+)
 create mode 100644 abs/extra-testing/cups/PKGBUILD
 create mode 100755 abs/extra-testing/cups/cups
 create mode 100644 abs/extra-testing/cups/cups-1.3.7-peercred.patch
 create mode 100644 abs/extra-testing/cups/cups-avahi.patch
 create mode 100644 abs/extra-testing/cups/cups.install
 create mode 100644 abs/extra-testing/cups/cups.logrotate
 create mode 100644 abs/extra-testing/cups/cups.pam
 create mode 100644 abs/extra-testing/cups/fix-infinite-usb-loop.patch

diff --git a/abs/extra-testing/cups/PKGBUILD b/abs/extra-testing/cups/PKGBUILD
new file mode 100644
index 0000000..e1f13b7
--- /dev/null
+++ b/abs/extra-testing/cups/PKGBUILD
@@ -0,0 +1,105 @@
+# $Id: PKGBUILD 82848 2010-06-18 06:18:19Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase="cups"
+pkgname=('libcups' 'cups')
+pkgver=1.4.4
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.cups.org/"
+makedepends=('libtiff>=3.9.2-2' 'libpng>=1.4.0'  'acl' 'openslp' 'pam' 'xdg-utils' 'heimdal>=1.3.1' 'gnutls>=2.8.3' 'poppler>=0.12.3'
+             'xinetd' 'gzip' 'autoconf' 'php' 'libusb' 'dbus-core' 'avahi'  'hicolor-icon-theme')
+source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2
+	cups-avahi.patch
+        cups cups.logrotate cups.pam)
+#options=('!emptydirs')
+md5sums=('8776403ad60fea9e85eab9c04d88560d'
+         '3388dbe3fc20f16f37912e60a8ec46bc'
+         '5c85b7d8d2ddd02c2c64955cebbf55ea'
+         'f861b18f4446c43918c8643dcbbd7f6d'
+         '96f82c38f3f540b53f3e5144900acf17')
+
+build() {
+  cd ${srcdir}/${pkgbase}-${pkgver}
+  # Avahi support in the dnssd backend. patch from Fedora
+  patch -Np1 -i ${srcdir}/cups-avahi.patch || return 1
+  # Rebuild configure script for --enable-avahi.
+  aclocal -I config-scripts
+  autoconf -I config-scripts
+  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+     --with-logdir=/var/log/cups -with-docdir=/usr/share/cups/doc \
+     --with-cups-user=daemon --with-cups-group=lp --enable-pam=yes \
+     --disable-ldap --libdir=/usr/lib --enable-raw-printing \
+     --enable-dbus --with-dbusdir=/etc/dbus-1 --enable-ssl=yes --enable-gnutls --disable-threads --enable-dnssd\
+     --with-php=/usr/bin/php-cgi --with-pdftops=pdftops --with-optim="$CFLAGS"
+  make || return 1
+}
+
+package_libcups() {
+pkgdesc="The CUPS Printing System - client libraries and headers"
+depends=('gnutls>=2.8.3' 'libtiff>=3.9.2-2' 'libpng>=1.4.0' 'heimdal>=1.3.1')
+optdepends=('avahi: for the "dnssd" CUPS backend')
+
+
+  cd ${srcdir}/${pkgbase}-${pkgver}
+  make BUILDROOT=${pkgdir} install-headers install-libs || return 1
+  # put this into the libs pkg to make other software find the libs(no pkg-config file included)
+  mkdir -p ${pkgdir}/usr/bin
+  install -m755 ${srcdir}/${pkgbase}-${pkgver}/cups-config ${pkgdir}/usr/bin/cups-config
+}
+
+package_cups() {
+pkgdesc="The CUPS Printing System - deamon package"
+install=cups.install
+backup=(etc/cups/cupsd.conf
+        etc/cups/mime.convs
+        etc/cups/mime.types
+        etc/cups/snmp.conf
+        etc/cups/printers.conf
+        etc/cups/classes.conf
+        etc/cups/client.conf
+        etc/cups/subscriptions.conf
+        etc/dbus-1/system.d/cups.conf
+        etc/logrotate.d/cups
+        etc/pam.d/cups
+        etc/xinetd.d/cups-lpd)
+depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'xdg-utils' 'poppler>=0.12.3' 'libusb' 'dbus-core' 'hicolor-icon-theme')
+optdepends=('php: for included phpcups.so module')
+
+  cd ${srcdir}/${pkgbase}-${pkgver}
+  make BUILDROOT=${pkgdir} install-data install-exec || return 1
+
+  # this one we ship in the libcups pkg
+  rm -f ${pkgdir}/usr/bin/cups-config
+
+  # kill the sysv stuff
+  rm -rf ${pkgdir}/etc/rc*.d
+  rm -rf ${pkgdir}/etc/init.d
+  install -D -m755 ../cups ${pkgdir}/etc/rc.d/cups
+  install -D -m644 ../cups.logrotate ${pkgdir}/etc/logrotate.d/cups
+  install -D -m644 ../cups.pam ${pkgdir}/etc/pam.d/cups
+  
+  # fix perms on /var/spool and /etc
+  chmod 755 ${pkgdir}/var/spool
+  chmod 755 ${pkgdir}/etc
+
+  # install ssl directory where to store the certs, solves some samba issues
+  install -dm700 -g lp ${pkgdir}/etc/cups/ssl
+  install -dm511 -g lp ${pkgdir}/var/run/cups/certs 
+
+  # install some more configuration files that will get filled by cupsd
+  touch ${pkgdir}/etc/cups/printers.conf
+  touch ${pkgdir}/etc/cups/classes.conf
+  touch ${pkgdir}/etc/cups/client.conf
+  echo "# see 'man client.conf'" >> ${pkgdir}/etc/cups/client.conf
+  echo "ServerName /var/run/cups/cups.sock #  alternative: ServerName hostname-or-ip-address[:port] of a remote server" >> ${pkgdir}/etc/cups/client.conf
+  touch ${pkgdir}/etc/cups/subscriptions.conf 
+  chgrp lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,client.conf,subscriptions.conf}
+  
+  # fix .desktop file
+  sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop
+  
+  # compress some driver files, adopted from Fedora
+  find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f
+}
diff --git a/abs/extra-testing/cups/cups b/abs/extra-testing/cups/cups
new file mode 100755
index 0000000..4afaf5a
--- /dev/null
+++ b/abs/extra-testing/cups/cups
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/cupsd`
+case "$1" in
+  start)
+    stat_busy "Starting CUPS Daemon"
+    [ -z "$PID" ] && /usr/sbin/cupsd
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      echo $(pidof -o %PPID -x /usr/sbin/cupsd) > /var/run/cups.pid
+      add_daemon cups
+      stat_done
+    fi
+    ;;
+  stop)
+    stat_busy "Stopping CUPS Daemon"
+    [ ! -z "$PID" ]  && kill $PID &> /dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      rm /var/run/cups.pid
+      rm_daemon cups
+      stat_done
+    fi
+    ;;
+  restart)
+    $0 stop
+    sleep 1
+    $0 start
+    ;;
+  *)
+    echo "usage: $0 {start|stop|restart}"  
+esac
+exit 0
diff --git a/abs/extra-testing/cups/cups-1.3.7-peercred.patch b/abs/extra-testing/cups/cups-1.3.7-peercred.patch
new file mode 100644
index 0000000..eda2c93
--- /dev/null
+++ b/abs/extra-testing/cups/cups-1.3.7-peercred.patch
@@ -0,0 +1,11 @@
+diff -Naur cups-1.3.7/scheduler/auth.c cups-1.3.7.new/scheduler/auth.c
+--- cups-1.3.7/scheduler/auth.c	2008-03-20 21:58:16.000000000 +0100
++++ cups-1.3.7.new/scheduler/auth.c	2008-06-09 14:53:45.535194741 +0200
+@@ -54,6 +54,7 @@
+  * Include necessary headers...
+  */
+ 
++#define _GNU_SOURCE
+ #include "cupsd.h"
+ #include <grp.h>
+ #ifdef HAVE_SHADOW_H
diff --git a/abs/extra-testing/cups/cups-avahi.patch b/abs/extra-testing/cups/cups-avahi.patch
new file mode 100644
index 0000000..01fcb1a
--- /dev/null
+++ b/abs/extra-testing/cups/cups-avahi.patch
@@ -0,0 +1,1089 @@
+diff -up cups-1.4.0/backend/dnssd.c.avahi cups-1.4.0/backend/dnssd.c
+--- cups-1.4.0/backend/dnssd.c.avahi	2009-08-07 23:27:12.000000000 +0100
++++ cups-1.4.0/backend/dnssd.c	2009-09-04 14:57:04.730388833 +0100
+@@ -22,6 +22,7 @@
+  *   exec_backend()          - Execute the backend that corresponds to the
+  *                             resolved service name.
+  *   get_device()            - Create or update a device.
++*    find_device()
+  *   query_callback()        - Process query data.
+  *   sigterm_handler()       - Handle termination signals...
+  *   unquote()               - Unquote a name string.
+@@ -33,7 +34,18 @@
+ 
+ #include "backend-private.h"
+ #include <cups/array.h>
+-#include <dns_sd.h>
++#ifdef HAVE_DNSSD
++#  include <dns_sd.h>
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++#  include <avahi-client/client.h>
++#  include <avahi-client/lookup.h>
++#  include <avahi-common/simple-watch.h>
++#  include <avahi-common/domain.h>
++#  include <avahi-common/error.h>
++#  include <avahi-common/malloc.h>
++#define kDNSServiceMaxDomainName AVAHI_DOMAIN_NAME_MAX
++#endif /* HAVE_AVAHI */
+ 
+ 
+ /*
+@@ -52,7 +64,12 @@ typedef enum
+ 
+ typedef struct
+ {
++#ifdef HAVE_DNSSD
+   DNSServiceRef	ref;			/* Service reference for resolve */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++  int		resolved;		/* Did we resolve the device? */
++#endif /* HAVE_AVAHI */
+   char		*name,			/* Service name */
+ 		*domain,		/* Domain name */
+ 		*fullName,		/* Full name */
+@@ -64,6 +81,20 @@ typedef struct
+ 		sent;			/* Did we list the device? */
+ } cups_device_t;
+ 
++typedef struct
++{
++  char key[256];
++  char value[256];
++
++#ifdef HAVE_DNSSD
++  const uint8_t *data;
++  const uint8_t *datanext;
++  const uint8_t *dataend;
++#else /* HAVE_AVAHI */
++  AvahiStringList *txt;
++#endif /* HAVE_DNSSD */
++} cups_txt_records_t;
++
+ 
+ /*
+  * Local globals...
+@@ -77,6 +108,7 @@ static int		job_canceled = 0;
+  * Local functions...
+  */
+ 
++#ifdef HAVE_DNSSD
+ static void		browse_callback(DNSServiceRef sdRef,
+ 			                DNSServiceFlags flags,
+ 				        uint32_t interfaceIndex,
+@@ -92,12 +124,6 @@ static void		browse_local_callback(DNSSe
+ 					      const char *regtype,
+ 					      const char *replyDomain,
+ 					      void *context);
+-static int		compare_devices(cups_device_t *a, cups_device_t *b);
+-static void		exec_backend(char **argv);
+-static cups_device_t	*get_device(cups_array_t *devices,
+-			            const char *serviceName,
+-			            const char *regtype,
+-				    const char *replyDomain);
+ static void		query_callback(DNSServiceRef sdRef,
+ 			               DNSServiceFlags flags,
+ 				       uint32_t interfaceIndex,
+@@ -106,9 +132,111 @@ static void		query_callback(DNSServiceRe
+ 				       uint16_t rrclass, uint16_t rdlen,
+ 				       const void *rdata, uint32_t ttl,
+ 				       void *context);
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++static void		avahi_client_callback (AvahiClient *client,
++					       AvahiClientState state,
++					       void *context);
++static void		avahi_browse_callback (AvahiServiceBrowser *browser,
++					       AvahiIfIndex interface,
++					       AvahiProtocol protocol,
++					       AvahiBrowserEvent event,
++					       const char *serviceName,
++					       const char *regtype,
++					       const char *replyDomain,
++					       AvahiLookupResultFlags flags,
++					       void *context);
++#endif /* HAVE_AVAHI */
++
++static cups_device_t *	find_device (cups_array_t *devices,
++				     cups_txt_records_t *txt,
++				     cups_device_t *dkey);
++static int		compare_devices(cups_device_t *a, cups_device_t *b);
++static void		exec_backend(char **argv);
++static cups_device_t	*get_device(cups_array_t *devices,
++			            const char *serviceName,
++			            const char *regtype,
++				    const char *replyDomain);
+ static void		sigterm_handler(int sig);
+ static void		unquote(char *dst, const char *src, size_t dstsize);
+ 
++#ifdef HAVE_AVAHI
++static AvahiSimplePoll *simple_poll = NULL;
++static int avahi_got_callback;
++#endif /* HAVE_AVAHI */
++
++
++/*
++ * cups_txt_records_t access functions
++ */
++static cups_txt_records_t *
++next_txt_record (cups_txt_records_t *txt)
++{
++#ifdef HAVE_DNSSD
++  txt->data = txt->datanext;
++#else /* HAVE_AVAHI */
++  txt->txt = avahi_string_list_get_next (txt->txt);
++  if (txt->txt == NULL)
++    return NULL;
++#endif /* HAVE_DNSSD */
++
++  return txt;
++}
++
++static int
++parse_txt_record_pair (cups_txt_records_t *txt)
++{
++#ifdef HAVE_DNSSD
++  uint8_t	datalen;
++  uint8_t	*data = txt->data;
++  char		*ptr;
++
++ /*
++  * Read a key/value pair starting with an 8-bit length.  Since the
++  * length is 8 bits and the size of the key/value buffers is 256, we
++  * don't need to check for overflow...
++  */
++
++  datalen = *data++;
++  if (!datalen || (data + datalen) >= txt->dataend)
++    return NULL;
++  txt->datanext = data + datalen;
++
++  for (ptr = txt->key; data < txt->datanext && *data != '='; data ++)
++    *ptr++ = *data;
++  *ptr = '\0';
++
++  if (data < txt->datanext && *data == '=')
++  {
++    data++;
++
++    if (data < datanext)
++      memcpy (txt->value, data, txt->datanext - data);
++    value[txt->datanext - data] = '\0';
++  }
++  else
++    return 1;
++#else /* HAVE_AVAHI */
++  char *key, *value;
++  size_t len;
++  avahi_string_list_get_pair (txt->txt, &key, &value, &len);
++  if (len > sizeof (txt->value) - 1)
++    len = sizeof (txt->value) - 1;
++
++  memcpy (txt->value, value, len);
++  txt->value[len] = '\0';
++  len = strlen (key);
++  if (len > sizeof (txt->key) - 1)
++    len = sizeof (txt->key) - 1;
++
++  memcpy (txt->key, key, len);
++  txt->key[len] = '\0';
++  avahi_free (key);
++  avahi_free (value);
++#endif /* HAVE_AVAHI */
++
++  return 0;
++}
+ 
+ /*
+  * 'main()' - Browse for printers.
+@@ -119,6 +247,13 @@ main(int  argc,				/* I - Number of comm
+      char *argv[])			/* I - Command-line arguments */
+ {
+   const char	*name;			/* Backend name */
++  cups_array_t	*devices;		/* Device array */
++  cups_device_t	*device;		/* Current device */
++  char		uriName[1024];		/* Unquoted fullName for URI */
++#ifdef HAVE_DNSSD
++  int		fd;			/* Main file descriptor */
++  fd_set	input;			/* Input set for select() */
++  struct timeval timeout;		/* Timeout for select() */
+   DNSServiceRef	main_ref,		/* Main service reference */
+ 		fax_ipp_ref,		/* IPP fax service reference */
+ 		ipp_ref,		/* IPP service reference */
+@@ -130,12 +265,11 @@ main(int  argc,				/* I - Number of comm
+ 		pdl_datastream_ref,	/* AppSocket service reference */
+ 		printer_ref,		/* LPD service reference */
+ 		riousbprint_ref;	/* Remote IO service reference */
+-  int		fd;			/* Main file descriptor */
+-  fd_set	input;			/* Input set for select() */
+-  struct timeval timeout;		/* Timeout for select() */
+-  cups_array_t	*devices;		/* Device array */
+-  cups_device_t	*device;		/* Current device */
+-  char		uriName[1024];		/* Unquoted fullName for URI */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++  AvahiClient	*client;
++  int		error;
++#endif /* HAVE_AVAHI */
+ #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
+   struct sigaction action;		/* Actions for POSIX signals */
+ #endif /* HAVE_SIGACTION && !HAVE_SIGSET */
+@@ -194,6 +328,49 @@ main(int  argc,				/* I - Number of comm
+   * Browse for different kinds of printers...
+   */
+ 
++#ifdef HAVE_AVAHI
++  if ((simple_poll = avahi_simple_poll_new ()) == NULL)
++  {
++    perror ("ERROR: Unable to create avahi simple poll object");
++    return (1);
++  }
++
++  client = avahi_client_new (avahi_simple_poll_get (simple_poll),
++			     0, avahi_client_callback, NULL, &error);
++  if (!client)
++  {
++    perror ("ERROR: Unable to create avahi client");
++    return (1);
++  }
++
++  avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++			     AVAHI_PROTO_UNSPEC,
++			     "_fax-ipp._tcp", NULL, 0,
++			     avahi_browse_callback, devices);
++  avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++			     AVAHI_PROTO_UNSPEC,
++			     "_ipp._tcp", NULL, 0,
++			     avahi_browse_callback, devices);
++  avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++			     AVAHI_PROTO_UNSPEC,
++			     "_ipp-tls._tcp", NULL, 0,
++			     avahi_browse_callback, devices);
++  avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++			     AVAHI_PROTO_UNSPEC,
++			     "_pdl-datastream._tcp",
++			     NULL, 0,
++			     avahi_browse_callback,
++			     devices);
++  avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++			     AVAHI_PROTO_UNSPEC,
++			     "_printer._tcp", NULL, 0,
++			     avahi_browse_callback, devices);
++  avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++			     AVAHI_PROTO_UNSPEC,
++			     "_riousbprint._tcp", NULL, 0,
++			     avahi_browse_callback, devices);
++#endif /* HAVE_AVAHI */
++#ifdef HAVE_DNSSD
+   if (DNSServiceCreateConnection(&main_ref) != kDNSServiceErr_NoError)
+   {
+     perror("ERROR: Unable to create service connection");
+@@ -245,6 +422,7 @@ main(int  argc,				/* I - Number of comm
+   riousbprint_ref = main_ref;
+   DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0,
+                    "_riousbprint._tcp", NULL, browse_callback, devices);
++#endif /* HAVE_DNSSD */
+ 
+  /*
+   * Loop until we are killed...
+@@ -252,6 +430,9 @@ main(int  argc,				/* I - Number of comm
+ 
+   while (!job_canceled)
+   {
++    int announce = 0;
++
++#ifdef HAVE_DNSSD
+     FD_ZERO(&input);
+     FD_SET(fd, &input);
+ 
+@@ -271,11 +452,35 @@ main(int  argc,				/* I - Number of comm
+     }
+     else
+     {
++      announce = 1;
++    }
++#else /* HAVE_AVAHI */
++    int r;
++    avahi_got_callback = 0;
++    r = avahi_simple_poll_iterate (simple_poll, 1);
++    if (r != 0 && r != EINTR)
++    {
++     /*
++      * We've been told to exit the loop.  Perhaps the connection to
++      * avahi failed.
++      */
++
++      break;
++    }
++
++    if (avahi_got_callback)
++      announce = 1;
++#endif /* HAVE_DNSSD */
++
++    if (announce)
++    {
+      /*
+       * Announce any devices we've found...
+       */
+ 
++#ifdef HAVE_DNSSD
+       DNSServiceErrorType status;	/* DNS query status */
++#endif /* HAVE_DNSSD */
+       cups_device_t *best;		/* Best matching device */
+       char	device_uri[1024];	/* Device URI */
+       int	count;			/* Number of queries */
+@@ -285,6 +490,7 @@ main(int  argc,				/* I - Number of comm
+                best = NULL, count = 0;
+            device;
+ 	   device = (cups_device_t *)cupsArrayNext(devices))
++#ifdef HAVE_DNSSD
+         if (!device->ref && !device->sent)
+ 	{
+ 	 /*
+@@ -313,14 +519,23 @@ main(int  argc,				/* I - Number of comm
+ 	      count ++;
+           }
+ 	}
+-	else if (!device->sent)
++	else
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++	if (!device->resolved)
++	  continue;
++        else
++#endif /* HAVE_AVAHI */
++	if (!device->sent)
+ 	{
++#ifdef HAVE_DNSSD
+ 	 /*
+ 	  * Got the TXT records, now report the device...
+ 	  */
+ 
+ 	  DNSServiceRefDeallocate(device->ref);
+ 	  device->ref = 0;
++#endif /* HAVE_DNSSD */
+ 
+           if (!best)
+ 	    best = device;
+@@ -372,6 +587,7 @@ main(int  argc,				/* I - Number of comm
+  * 'browse_callback()' - Browse devices.
+  */
+ 
++#ifdef HAVE_DNSSD
+ static void
+ browse_callback(
+     DNSServiceRef       sdRef,		/* I - Service reference */
+@@ -405,12 +621,14 @@ browse_callback(
+ 
+   get_device((cups_array_t *)context, serviceName, regtype, replyDomain);
+ }
++#endif /* HAVE_DNSSD */
+ 
+ 
+ /*
+  * 'browse_local_callback()' - Browse local devices.
+  */
+ 
++#ifdef HAVE_DNSSD
+ static void
+ browse_local_callback(
+     DNSServiceRef       sdRef,		/* I - Service reference */
+@@ -456,6 +674,7 @@ browse_local_callback(
+ 	  device->fullName);
+   device->sent = 1;
+ }
++#endif /* HAVE_DNSSD */
+ 
+ 
+ /*
+@@ -528,6 +747,32 @@ exec_backend(char **argv)		/* I - Comman
+   exit(CUPS_BACKEND_STOP);
+ }
+ 
++static int
++device_type (const char *regtype)
++{
++#ifdef HAVE_AVAHI
++  if (!strcmp(regtype, "_ipp._tcp") ||
++      !strcmp(regtype, "_ipp-tls._tcp"))
++    return (CUPS_DEVICE_IPP);
++  else if (!strcmp(regtype, "_fax-ipp._tcp"))
++    return (CUPS_DEVICE_FAX_IPP);
++  else if (!strcmp(regtype, "_printer._tcp"))
++    return (CUPS_DEVICE_PDL_DATASTREAM);
++#else
++  if (!strcmp(regtype, "_ipp._tcp.") ||
++      !strcmp(regtype, "_ipp-tls._tcp."))
++    return (CUPS_DEVICE_IPP);
++  else if (!strcmp(regtype, "_fax-ipp._tcp."))
++    return (CUPS_DEVICE_FAX_IPP);
++  else if (!strcmp(regtype, "_printer._tcp."))
++    return (CUPS_DEVICE_PRINTER);
++  else if (!strcmp(regtype, "_pdl-datastream._tcp."))
++    return (CUPS_DEVICE_PDL_DATASTREAM);
++#endif /* HAVE_AVAHI */
++
++  return (CUPS_DEVICE_RIOUSBPRINT);
++}
++
+ 
+ /*
+  * 'get_device()' - Create or update a device.
+@@ -550,18 +795,7 @@ get_device(cups_array_t *devices,	/* I -
+   */
+ 
+   key.name = (char *)serviceName;
+-
+-  if (!strcmp(regtype, "_ipp._tcp.") ||
+-      !strcmp(regtype, "_ipp-tls._tcp."))
+-    key.type = CUPS_DEVICE_IPP;
+-  else if (!strcmp(regtype, "_fax-ipp._tcp."))
+-    key.type = CUPS_DEVICE_FAX_IPP;
+-  else if (!strcmp(regtype, "_printer._tcp."))
+-    key.type = CUPS_DEVICE_PRINTER;
+-  else if (!strcmp(regtype, "_pdl-datastream._tcp."))
+-    key.type = CUPS_DEVICE_PDL_DATASTREAM;
+-  else
+-    key.type = CUPS_DEVICE_RIOUSBPRINT;
++  key.type = device_type (regtype);
+ 
+   for (device = cupsArrayFind(devices, &key);
+        device;
+@@ -581,8 +815,14 @@ get_device(cups_array_t *devices,	/* I -
+         free(device->domain);
+ 	device->domain = strdup(replyDomain);
+ 
++#ifdef HAVE_DNSSD
+ 	DNSServiceConstructFullName(fullName, device->name, regtype,
+ 	                            replyDomain);
++#else /* HAVE_AVAHI */
++	avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
++				 serviceName, regtype, replyDomain);
++#endif /* HAVE_DNSSD */
++
+ 	free(device->fullName);
+ 	device->fullName = strdup(fullName);
+       }
+@@ -602,6 +842,9 @@ get_device(cups_array_t *devices,	/* I -
+   device->domain   = strdup(replyDomain);
+   device->type     = key.type;
+   device->priority = 50;
++#ifdef HAVE_AVAHI
++  device->resolved = 0;
++#endif /* HAVE_AVAHI */
+ 
+   cupsArrayAdd(devices, device);
+ 
+@@ -609,7 +852,13 @@ get_device(cups_array_t *devices,	/* I -
+   * Set the "full name" of this service, which is used for queries...
+   */
+ 
++#ifdef HAVE_DNSSD
+   DNSServiceConstructFullName(fullName, serviceName, regtype, replyDomain);
++#else /* HAVE_AVAHI */
++  avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
++			   serviceName, regtype, replyDomain);
++#endif /* HAVE_DNSSD */
++
+   device->fullName = strdup(fullName);
+ 
+   return (device);
+@@ -620,6 +869,7 @@ get_device(cups_array_t *devices,	/* I -
+  * 'query_callback()' - Process query data.
+  */
+ 
++#ifdef HAVE_DNSSD
+ static void
+ query_callback(
+     DNSServiceRef       sdRef,		/* I - Service reference */
+@@ -639,7 +889,7 @@ query_callback(
+ 		*ptr;			/* Pointer into string */
+   cups_device_t	dkey,			/* Search key */
+ 		*device;		/* Device */
+-
++  cups_txt_records_t txt;
+ 
+   fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, "
+                   "interfaceIndex=%d, errorCode=%d, fullName=\"%s\", "
+@@ -673,84 +923,212 @@ query_callback(
+   if ((ptr = strstr(name, "._")) != NULL)
+     *ptr = '\0';
+ 
+-  if (strstr(fullName, "_ipp._tcp.") ||
+-      strstr(fullName, "_ipp-tls._tcp."))
+-    dkey.type = CUPS_DEVICE_IPP;
+-  else if (strstr(fullName, "_fax-ipp._tcp."))
+-    dkey.type = CUPS_DEVICE_FAX_IPP;
+-  else if (strstr(fullName, "_printer._tcp."))
+-    dkey.type = CUPS_DEVICE_PRINTER;
+-  else if (strstr(fullName, "_pdl-datastream._tcp."))
+-    dkey.type = CUPS_DEVICE_PDL_DATASTREAM;
++  dkey.type = device_type (fullName);
++
++  txt.data = rdata;
++  txt.dataend = rdata + rdlen;
++  device = find_device ((cups_array_t *) context, &txt, &dkey);
++  if (!device)
++    fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
++}
++#endif /* HAVE_DNSSD */
++
++#ifdef HAVE_AVAHI
++static void
++avahi_client_callback(AvahiClient *client,
++		      AvahiClientState state,
++		      void *context)
++{
++ /*
++  * If the connection drops, quit.
++  */
++
++  if (state == AVAHI_CLIENT_FAILURE)
++  {
++    fprintf (stderr, "ERROR: Avahi connection failed\n");
++    avahi_simple_poll_quit (simple_poll);
++  }
++}
++
++static void
++avahi_query_callback(AvahiServiceResolver *resolver,
++		     AvahiIfIndex interface,
++		     AvahiProtocol protocol,
++		     AvahiResolverEvent event,
++		     const char *name,
++		     const char *type,
++		     const char *domain,
++		     const char *host_name,
++		     const AvahiAddress *address,
++		     uint16_t port,
++		     AvahiStringList *txt,
++		     AvahiLookupResultFlags flags,
++		     void *context)
++{
++  AvahiClient		*client;
++  cups_device_t		key,
++			*device;
++  char			uqname[1024],
++			*ptr;
++  cups_txt_records_t	txtr;
++
++  client = avahi_service_resolver_get_client (resolver);
++  if (event != AVAHI_RESOLVER_FOUND)
++  {
++    if (event == AVAHI_RESOLVER_FAILURE)
++    {
++      fprintf (stderr, "ERROR: %s\n",
++	       avahi_strerror (avahi_client_errno (client)));
++    }
++
++    avahi_service_resolver_free (resolver);
++    return;
++  }
++
++ /*
++  * Set search key for device.
++  */
++
++  key.name = uqname;
++  unquote (uqname, name, sizeof (uqname));
++  if ((ptr = strstr(name, "._")) != NULL)
++    *ptr = '\0';
++
++  key.domain = (char *) domain;
++  key.type = device_type (type);
++
++ /*
++  * Find the device and the the TXT information.
++  */
++
++  txtr.txt = txt;
++  device = find_device ((cups_array_t *) context, &txtr, &key);
++  if (device)
++  {
++   /*
++    * Let the main loop know to announce the device.
++    */
++
++    device->resolved = 1;
++    avahi_got_callback = 1;
++  }
+   else
+-    dkey.type = CUPS_DEVICE_RIOUSBPRINT;
++    fprintf (stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", name);
++
++  avahi_service_resolver_free (resolver);
++}
++
++static void
++avahi_browse_callback(AvahiServiceBrowser *browser,
++		      AvahiIfIndex interface,
++		      AvahiProtocol protocol,
++		      AvahiBrowserEvent event,
++		      const char *name,
++		      const char *type,
++		      const char *domain,
++		      AvahiLookupResultFlags flags,
++		      void *context)
++{
++  AvahiClient *client = avahi_service_browser_get_client (browser);
++
++  switch (event)
++  {
++  case AVAHI_BROWSER_FAILURE:
++    fprintf (stderr, "ERROR: %s\n",
++	     avahi_strerror (avahi_client_errno (client)));
++    avahi_simple_poll_quit (simple_poll);
++    return;
++
++  case AVAHI_BROWSER_NEW:
++   /*
++    * This object is new on the network.
++    */
++
++    if (flags & AVAHI_LOOKUP_RESULT_LOCAL)
++    {
++     /*
++      * This comes from the local machine so ignore it.
++      */
++
++      fprintf (stderr, "DEBUG: ignoring local service %s\n", name);
++    }
++    else
++    {
++     /*
++      * Create a device entry for it if it doesn't yet exist.
++      */
++
++      get_device ((cups_array_t *)context, name, type, domain);
++
++     /*
++      * Now look for a TXT entry.
++      */
++
++      if (avahi_service_resolver_new (client, interface, protocol,
++				      name, type, domain,
++				      AVAHI_PROTO_UNSPEC, 0,
++				      avahi_query_callback, context) == NULL)
++      {
++	fprintf (stderr, "ERROR: failed to resolve service %s: %s\n",
++		 name, avahi_strerror (avahi_client_errno (client)));
++      }
++    }
++
++    break;
+ 
+-  for (device = cupsArrayFind(devices, &dkey);
++  case AVAHI_BROWSER_REMOVE:
++  case AVAHI_BROWSER_ALL_FOR_NOW:
++  case AVAHI_BROWSER_CACHE_EXHAUSTED:
++    break;
++  }  
++}
++#endif /* HAVE_AVAHI */
++
++static cups_device_t *
++find_device (cups_array_t *devices,
++	     cups_txt_records_t *txt,
++	     cups_device_t *dkey)
++{
++  cups_device_t	*device;
++  char		*ptr;
++
++  for (device = cupsArrayFind(devices, dkey);
+        device;
+        device = cupsArrayNext(devices))
+   {
+-    if (strcasecmp(device->name, dkey.name) ||
+-        strcasecmp(device->domain, dkey.domain))
++    if (strcasecmp(device->name, dkey->name) ||
++        strcasecmp(device->domain, dkey->domain))
+     {
+       device = NULL;
+       break;
+     }
+-    else if (device->type == dkey.type)
++    else if (device->type == dkey->type)
+     {
+      /*
+       * Found it, pull out the priority and make and model from the TXT
+       * record and save it...
+       */
+ 
+-      const uint8_t	*data,		/* Pointer into data */
+-			*datanext,	/* Next key/value pair */
+-			*dataend;	/* End of entire TXT record */
+-      uint8_t		datalen;	/* Length of current key/value pair */
+-      char		key[256],	/* Key string */
+-			value[256],	/* Value string */
+-			make_and_model[512],
++      char		make_and_model[512],
+ 				      	/* Manufacturer and model */
+ 			model[256],	/* Model */
+-			device_id[2048];/* 1284 device ID */
+-
++			device_id[2048]; /* 1284 device ID */
+ 
+       device_id[0]      = '\0';
+       make_and_model[0] = '\0';
+ 
+       strcpy(model, "Unknown");
+ 
+-      for (data = rdata, dataend = data + rdlen;
+-           data < dataend;
+-           data = datanext)
++      for (;;)
+       {
+-       /*
+-        * Read a key/value pair starting with an 8-bit length.  Since the
+-	* length is 8 bits and the size of the key/value buffers is 256, we
+-	* don't need to check for overflow...
+-	*/
+-
+-        datalen = *data++;
+-
+-        if (!datalen || (data + datalen) >= dataend)
+-	  break;
+-
+-        datanext = data + datalen;
++	char *key;
++	char *value;
+ 
+-        for (ptr = key; data < datanext && *data != '='; data ++)
+-	  *ptr++ = *data;
+-	*ptr = '\0';
+-
+-	if (data < datanext && *data == '=')
+-	{
+-	  data ++;
+-
+-	  if (data < datanext)
+-	    memcpy(value, data, datanext - data);
+-	  value[datanext - data] = '\0';
+-	}
+-	else
+-	  continue;
++	if (parse_txt_record_pair (txt))
++	  goto next;
+ 
++	key = txt->key;
++	value = txt->value;
+         if (!strncasecmp(key, "usb_", 4))
+ 	{
+ 	 /*
+@@ -805,6 +1183,10 @@ query_callback(
+ 	  if (device->type == CUPS_DEVICE_PRINTER)
+ 	    device->sent = 1;
+ 	}
++
++      next:
++	if (next_txt_record (txt) == NULL)
++	  break;
+       }
+ 
+       if (device->device_id)
+@@ -854,11 +1236,9 @@ query_callback(
+     }
+   }
+ 
+-  if (!device)
+-    fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
++  return device;
+ }
+ 
+-
+ /*
+  * 'sigterm_handler()' - Handle termination signals...
+  */
+diff -up cups-1.4.0/config.h.in.avahi cups-1.4.0/config.h.in
+--- cups-1.4.0/config.h.in.avahi	2009-06-10 16:51:21.000000000 +0100
++++ cups-1.4.0/config.h.in	2009-09-04 14:57:04.733388405 +0100
+@@ -336,6 +336,13 @@
+ 
+ 
+ /*
++ * Do we have Avahi for DNS Service Discovery?
++ */
++
++#undef HAVE_AVAHI
++
++
++/*
+  * Do we have <sys/ioctl.h>?
+  */
+ 
+diff -up cups-1.4.0/config-scripts/cups-dnssd.m4.avahi cups-1.4.0/config-scripts/cups-dnssd.m4
+--- cups-1.4.0/config-scripts/cups-dnssd.m4.avahi	2009-02-10 17:05:35.000000000 +0000
++++ cups-1.4.0/config-scripts/cups-dnssd.m4	2009-09-04 14:57:04.731388902 +0100
+@@ -27,6 +27,21 @@ AC_ARG_WITH(dnssd-includes, [  --with-dn
+ DNSSDLIBS=""
+ DNSSD_BACKEND=""
+ 
++AC_ARG_ENABLE(avahi, [  --enable-avahi          turn on DNS Service Discovery support, default=no],
++	      [if test x$enable_avahi = xyes; then
++		       AC_MSG_CHECKING(for Avahi)
++		       if $PKGCONFIG --exists avahi-client; then
++			       AC_MSG_RESULT(yes)
++			       CFLAGS="$CFLAGS `$PKGCONFIG --cflags avahi-client`"
++			       DNSSDLIBS="`$PKGCONFIG --libs avahi-client`"
++			       DNSSD_BACKEND="dnssd"
++			       AC_DEFINE(HAVE_AVAHI)
++			       enable_dnssd=no
++		       else
++			       AC_MSG_RESULT(no)
++		       fi
++	       fi])
++
+ if test x$enable_dnssd != xno; then
+ 	AC_CHECK_HEADER(dns_sd.h, [
+ 		case "$uname" in
+diff -up cups-1.4.0/cups/http-support.c.avahi cups-1.4.0/cups/http-support.c
+--- cups-1.4.0/cups/http-support.c.avahi	2009-06-12 01:21:58.000000000 +0100
++++ cups-1.4.0/cups/http-support.c	2009-09-04 14:57:04.736398674 +0100
+@@ -55,6 +55,11 @@
+ #  include <dns_sd.h>
+ #  include <poll.h>
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++#  include <avahi-client/client.h>
++#  include <avahi-client/lookup.h>
++#  include <avahi-common/simple-watch.h>
++#endif /* HAVE_AVAHI */
+ 
+ 
+ /*
+@@ -121,6 +126,24 @@ static void		resolve_callback(DNSService
+ 					 void *context);
+ #endif /* HAVE_DNSSD */
+ 
++#ifdef HAVE_AVAHI
++static void	avahi_resolve_uri_client_cb(AvahiClient *client,
++					    AvahiClientState state,
++					    void *simple_poll);
++static void	avahi_resolve_uri_resolver_cb(AvahiServiceResolver *resolver,
++					      AvahiIfIndex interface,
++					      AvahiProtocol protocol,
++					      AvahiResolverEvent event,
++					      const char *name,
++					      const char *type,
++					      const char *domain,
++					      const char *host_name,
++					      const AvahiAddress *address,
++					      uint16_t port,
++					      AvahiStringList *txt,
++					      AvahiLookupResultFlags flags,
++					      void *context);
++#endif /* HAVE_AVAHI */
+ 
+ /*
+  * 'httpAssembleURI()' - Assemble a uniform resource identifier from its
+@@ -1349,15 +1372,26 @@ _httpResolveURI(
+ 
+   if (strstr(hostname, "._tcp"))
+   {
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++    char		*regtype,	/* Pointer to type in hostname */
++			*domain;	/* Pointer to domain in hostname */
+ #ifdef HAVE_DNSSD
+     DNSServiceRef	ref,		/* DNS-SD master service reference */
+ 			domainref,	/* DNS-SD service reference for domain */
+ 			localref;	/* DNS-SD service reference for .local */
+     int			domainsent = 0;	/* Send the domain resolve? */
+-    char		*regtype,	/* Pointer to type in hostname */
+-			*domain;	/* Pointer to domain in hostname */
+     _http_uribuf_t	uribuf;		/* URI buffer */
+     struct pollfd	polldata;	/* Polling data */
++#else /* HAVE_AVAHI */
++    AvahiSimplePoll	*simple_poll;
++    AvahiClient		*client;
++    int			error;
++    struct
++    {
++      AvahiSimplePoll	*poll;
++      _http_uribuf_t	uribuf;
++    } user_data;
++#endif /* HAVE_DNSSD */
+ 
+ 
+     if (logit)
+@@ -1395,8 +1429,13 @@ _httpResolveURI(
+     if (domain)
+       *domain++ = '\0';
+ 
++#ifdef HAVE_DNSSD
+     uribuf.buffer  = resolved_uri;
+     uribuf.bufsize = resolved_size;
++#else
++    user_data.uribuf.buffer = resolved_uri;
++    user_data.uribuf.bufsize = resolved_size;
++#endif
+ 
+     resolved_uri[0] = '\0';
+ 
+@@ -1411,6 +1450,7 @@ _httpResolveURI(
+ 
+     uri = NULL;
+ 
++#ifdef HAVE_DNSSD
+     if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
+     {
+       localref = ref;
+@@ -1486,6 +1526,36 @@ _httpResolveURI(
+ 
+       DNSServiceRefDeallocate(ref);
+     }
++#else /* HAVE_AVAHI */
++    if ((simple_poll = avahi_simple_poll_new ()) != NULL)
++    {
++      if ((client = avahi_client_new (avahi_simple_poll_get (simple_poll),
++				      0, avahi_resolve_uri_client_cb,
++				      &simple_poll, &error)) != NULL)
++      {
++	user_data.poll = simple_poll;
++	if (avahi_service_resolver_new (client, AVAHI_IF_UNSPEC,
++					AVAHI_PROTO_UNSPEC, hostname,
++					regtype, domain, AVAHI_PROTO_UNSPEC, 0,
++					avahi_resolve_uri_resolver_cb,
++					&user_data) != NULL)
++	{
++	  avahi_simple_poll_loop (simple_poll);
++
++	 /*
++	  * Collect the result.
++	  */
++
++	  if (resolved_uri[0])
++	    uri = resolved_uri;
++	}
++
++	avahi_client_free (client);
++      }
++
++      avahi_simple_poll_free (simple_poll);
++    }
++#endif /* HAVE_DNSSD */
+ 
+     if (logit)
+     {
+@@ -1497,13 +1567,13 @@ _httpResolveURI(
+       fputs("STATE: -connecting-to-device\n", stderr);
+     }
+ 
+-#else
++#else /* HAVE_DNSSD || HAVE_AVAHI */
+    /*
+     * No DNS-SD support...
+     */
+ 
+     uri = NULL;
+-#endif /* HAVE_DNSSD */
++#endif /* HAVE_DNSSD || HAVE_AVAHI */
+ 
+     if (logit && !uri)
+       _cupsLangPuts(stderr, _("Unable to find printer!\n"));
+@@ -1708,6 +1778,105 @@ resolve_callback(
+ }
+ #endif /* HAVE_DNSSD */
+ 
++#ifdef HAVE_AVAHI
++static void
++avahi_resolve_uri_client_cb (AvahiClient *client,
++			     AvahiClientState state,
++			     void *simple_poll)
++{
++  DEBUG_printf(("avahi_resolve_uri_client_callback(client=%p, state=%d, "
++		"simple_poll=%p)\n", client, state, simple_poll));
++
++  /*
++   * If the connection drops, quit.
++   */
++
++  if (state == AVAHI_CLIENT_FAILURE)
++    avahi_simple_poll_quit (simple_poll);
++}
++
++static void
++avahi_resolve_uri_resolver_cb (AvahiServiceResolver *resolver,
++			       AvahiIfIndex interface,
++			       AvahiProtocol protocol,
++			       AvahiResolverEvent event,
++			       const char *name,
++			       const char *type,
++			       const char *domain,
++			       const char *host_name,
++			       const AvahiAddress *address,
++			       uint16_t port,
++			       AvahiStringList *txt,
++			       AvahiLookupResultFlags flags,
++			       void *context)
++{
++  const char		*scheme;	/* URI scheme */
++  char			rp[256];	/* Remote printer */
++  AvahiStringList	*pair;
++  char			*value;
++  size_t		valueLen = 0;
++  char			addr[AVAHI_ADDRESS_STR_MAX];
++  struct
++  {
++    AvahiSimplePoll	*poll;
++    _http_uribuf_t	uribuf;
++  }		*poll_uribuf = context;
++
++  DEBUG_printf(("avahi_resolve_uri_resolver_callback(resolver=%p, "
++		"interface=%d, protocol=%d, event=%d, name=\"%s\", "
++		"type=\"%s\", domain=\"%s\", host_name=\"%s\", address=%p, "
++		"port=%d, txt=%p, flags=%d, context=%p)\n",
++		resolver, interface, protocol, event, name, type, domain,
++		host_name, address, port, txt, flags, context));
++
++  if (event != AVAHI_RESOLVER_FOUND)
++  {
++    avahi_service_resolver_free (resolver);
++    avahi_simple_poll_quit (poll_uribuf->poll);
++    return;
++  }
++
++ /*
++  * Figure out the scheme from the full name...
++  */
++
++  if (strstr(type, "_ipp."))
++    scheme = "ipp";
++  else if (strstr(type, "_printer."))
++    scheme = "lpd";
++  else if (strstr(type, "_pdl-datastream."))
++    scheme = "socket";
++  else
++    scheme = "riousbprint";
++
++ /*
++  * Extract the "remote printer key from the TXT record...
++  */
++
++  if ((pair = avahi_string_list_find (txt, "rp")) != NULL)
++  {
++    avahi_string_list_get_pair (pair, NULL, &value, &valueLen);
++    rp[0] = '/';
++    memcpy (rp + 1, value, valueLen);
++    rp[valueLen + 1] = '\0';
++  }
++  else
++    rp[0] = '\0';
++
++ /*
++  * Assemble the final device URI...
++  */
++
++  avahi_address_snprint (addr, AVAHI_ADDRESS_STR_MAX, address);
++  httpAssembleURI(HTTP_URI_CODING_ALL, poll_uribuf->uribuf.buffer,
++		  poll_uribuf->uribuf.bufsize, scheme, NULL,
++		  addr, port, rp);
++  DEBUG_printf(("avahi_resolve_uri_resolver_callback: Resolved URI is \"%s\"\n",
++		poll_uribuf->uribuf.buffer));
++  avahi_simple_poll_quit (poll_uribuf->poll);
++}
++#endif /* HAVE_AVAHI */
++
+ 
+ /*
+  * End of "$Id: http-support.c 8705 2009-06-12 00:21:58Z mike $".
+
diff --git a/abs/extra-testing/cups/cups.install b/abs/extra-testing/cups/cups.install
new file mode 100644
index 0000000..97fda5a
--- /dev/null
+++ b/abs/extra-testing/cups/cups.install
@@ -0,0 +1,11 @@
+post_install() {
+  xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+}
+
+post_upgrade() {
+  post_install
+}
+
+post_remove() {
+  post_install
+}
diff --git a/abs/extra-testing/cups/cups.logrotate b/abs/extra-testing/cups/cups.logrotate
new file mode 100644
index 0000000..9c49bbd
--- /dev/null
+++ b/abs/extra-testing/cups/cups.logrotate
@@ -0,0 +1,8 @@
+/var/log/cups/*log {
+   missingok
+   notifempty
+   delaycompress
+   postrotate
+      /bin/kill -HUP `cat /var/run/cups.pid 2>/dev/null` 2>/dev/null || true
+   endscript
+}
diff --git a/abs/extra-testing/cups/cups.pam b/abs/extra-testing/cups/cups.pam
new file mode 100644
index 0000000..53724d1
--- /dev/null
+++ b/abs/extra-testing/cups/cups.pam
@@ -0,0 +1,3 @@
+auth		required	pam_unix.so
+account		required	pam_unix.so
+session		required	pam_unix.so
diff --git a/abs/extra-testing/cups/fix-infinite-usb-loop.patch b/abs/extra-testing/cups/fix-infinite-usb-loop.patch
new file mode 100644
index 0000000..bad179e
--- /dev/null
+++ b/abs/extra-testing/cups/fix-infinite-usb-loop.patch
@@ -0,0 +1,35 @@
+diff -urNad cups-1.4.0~/backend/usb-libusb.c cups-1.4.0/backend/usb-libusb.c
+--- cups-1.4.0~/backend/usb-libusb.c	2009-08-08 00:24:14.000000000 +0200
++++ cups-1.4.0/backend/usb-libusb.c	2009-09-02 16:37:31.000000000 +0200
+@@ -158,7 +158,7 @@
+ 
+     while (poll(pfds, 2, -1) > 0)
+     {
+-      if (pfds[0].revents & POLLIN)
++      if (pfds[0].revents & (POLLIN + POLLHUP))
+       {
+ 	if ((bytes = read(print_fd, buffer, sizeof(buffer))) > 0)
+ 	{
+@@ -179,7 +179,12 @@
+       }
+ 
+       if (pfds[1].revents & POLLIN)
+-        tbytes += side_cb(printer, print_fd);
++      {
++        if ((bytes = side_cb(printer, print_fd)) < 0)
++	  pfds[1].events = 0;		/* Filter has gone away... */
++	else
++          tbytes += bytes;
++      }
+     }
+   }
+ 
+@@ -747,7 +752,7 @@
+   if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
+   {
+     _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
+-    return (0);
++    return (-1);
+   }
+ 
+   switch (command) 
-- 
cgit v0.12


From 803cc182a37c98230e24a96cbcd95c4a14b5a228 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:06:29 -0700
Subject: cvs:Bumped/Updated for LinHES 7.

---
 abs/extra-testing/cvs/PKGBUILD                    | 26 +++++++++++------
 abs/extra-testing/cvs/cvs-1.11.23-getline64.patch | 34 +++++++++++++++++++++++
 abs/extra-testing/cvs/cvs.install                 | 20 +++++++++++++
 3 files changed, 71 insertions(+), 9 deletions(-)
 create mode 100644 abs/extra-testing/cvs/cvs-1.11.23-getline64.patch
 create mode 100644 abs/extra-testing/cvs/cvs.install

diff --git a/abs/extra-testing/cvs/PKGBUILD b/abs/extra-testing/cvs/PKGBUILD
index 488f4a0..26b95db 100644
--- a/abs/extra-testing/cvs/PKGBUILD
+++ b/abs/extra-testing/cvs/PKGBUILD
@@ -1,20 +1,28 @@
-# $Id: PKGBUILD 20493 2008-12-05 11:27:50Z allan $
-# Maintainer: dorphell <dorphell@archlinux.org>
+# $Id: PKGBUILD 75326 2010-04-01 10:25:20Z allan $
+# Contributor: dorphell <dorphell@archlinux.org>
+
 pkgname=cvs
 pkgver=1.11.23
-pkgrel=3
+pkgrel=5
 pkgdesc="Concurrent Versions System - a source control system"
 arch=(i686 x86_64)
-url="http://ximbiot.com/cvs/wiki/index.php"
+url="http://cvs.nongnu.org"
 license=('GPL')
-depends=('heimdal>=1.2')
-source=(ftp://ftp.gnu.org/non-gnu/cvs/source/stable/$pkgver/$pkgname-$pkgver.tar.bz2)
-md5sums=('0213ea514e231559d6ff8f80a34117f0')
+depends=('heimdal>=1.3.1')
+optdepends=('openssh: for using cvs over ssh' 'inetutils: for using cvs over rsh')
+install=cvs.install
+source=(ftp://ftp.gnu.org/non-gnu/cvs/source/stable/$pkgver/$pkgname-$pkgver.tar.bz2
+	cvs-1.11.23-getline64.patch)
+sha256sums=('400f51b59d85116e79b844f2d5dbbad4759442a789b401a94aa5052c3d7a4aa9'
+            '9126d7992ace943980ad8a10d5a09aeb6f1eeeb9b921fc796fe31de7b1c220cf')
 
 build() {
-  cd $startdir/src/$pkgname-$pkgver
+  cd $srcdir/$pkgname-$pkgver
   unset EDITOR VISUAL
+
+  patch -Np1 -i $srcdir/cvs-1.11.23-getline64.patch || return 1
   ./configure --prefix=/usr
   make || return 1
-  make DESTDIR=$startdir/pkg install
+  make DESTDIR=$pkgdir install
+  rm ${pkgdir}/usr/share/info/dir
 }
diff --git a/abs/extra-testing/cvs/cvs-1.11.23-getline64.patch b/abs/extra-testing/cvs/cvs-1.11.23-getline64.patch
new file mode 100644
index 0000000..99942e0
--- /dev/null
+++ b/abs/extra-testing/cvs/cvs-1.11.23-getline64.patch
@@ -0,0 +1,34 @@
+--- cvs-1.11.23/lib/getline.c	2005-04-04 22:46:05.000000000 +0200
++++ cvs-1.11.23/lib/getline.c.old	2008-06-03 19:06:25.000000000 +0200
+@@ -154,7 +154,7 @@
+   return ret;
+ }
+ 
+-int
++ssize_t
+ getline (lineptr, n, stream)
+      char **lineptr;
+      size_t *n;
+@@ -163,7 +163,7 @@
+   return getstr (lineptr, n, stream, '\n', 0, GETLINE_NO_LIMIT);
+ }
+ 
+-int
++ssize_t
+ getline_safe (lineptr, n, stream, limit)
+      char **lineptr;
+      size_t *n;
+--- cvs-1.11.23/lib/getline.h	2005-04-04 22:46:05.000000000 +0200
++++ cvs-1.11.23/lib/getline.h.old	2008-06-03 19:06:27.000000000 +0200
+@@ -11,9 +11,9 @@
+ 
+ #define GETLINE_NO_LIMIT -1
+ 
+-int
++ssize_t
+   getline __PROTO ((char **_lineptr, size_t *_n, FILE *_stream));
+-int
++ssize_t
+   getline_safe __PROTO ((char **_lineptr, size_t *_n, FILE *_stream,
+                          int limit));
+ int
diff --git a/abs/extra-testing/cvs/cvs.install b/abs/extra-testing/cvs/cvs.install
new file mode 100644
index 0000000..f1cdd1f
--- /dev/null
+++ b/abs/extra-testing/cvs/cvs.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(cvs.info cvs-info-1 cvs-info-2 cvsclient.info)
+
+post_install() {
+  for file in ${filelist[@]}; do
+    install-info $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  for file in ${filelist[@]}; do
+    install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
+
+# vim:set ts=2 sw=2 et:
-- 
cgit v0.12


From b3da9c6dcdf149021114d0d8e53a77cf4b24c914 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:06:44 -0700
Subject: gconf:Bumped/Updated for LinHES 7.

---
 .../gconf/01_xml-gettext-domain.patch              | 193 ++++++++++++++-------
 abs/extra-testing/gconf/PKGBUILD                   |  39 ++---
 2 files changed, 144 insertions(+), 88 deletions(-)

diff --git a/abs/extra-testing/gconf/01_xml-gettext-domain.patch b/abs/extra-testing/gconf/01_xml-gettext-domain.patch
index 7491ca8..d1323f6 100644
--- a/abs/extra-testing/gconf/01_xml-gettext-domain.patch
+++ b/abs/extra-testing/gconf/01_xml-gettext-domain.patch
@@ -1,26 +1,17 @@
 # Description: Support calling gettext at runtime and putting the gettext domain into the .schemas file instead of replicating translations in /usr/share/gconf/schemas/*.schemas *and* /var/lib/gconf/defaults/%gconf-tree-$LANG.xml. This saves in the order of 90 MB uncompressed/10 MB compressed on hard disks.
 # Ubuntu: https://bugs.launchpad.net/bugs/123025
 # Upstream: http://bugzilla.gnome.org/show_bug.cgi?id=568845
-diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.new/backends/markup-tree.c
---- gconf-2.25.0/backends/markup-tree.c	2009-01-10 05:55:08.000000000 +0100
-+++ gconf-2.25.0.new/backends/markup-tree.c	2009-01-23 12:11:48.000000000 +0100
-@@ -52,6 +52,7 @@
+--- GConf-2.26.0/backends/markup-tree.c.gettext	2009-04-26 23:33:05.258484987 -0400
++++ GConf-2.26.0/backends/markup-tree.c	2009-04-26 23:34:25.026700526 -0400
+@@ -52,6 +52,7 @@ struct _MarkupEntry
    char       *schema_name;
    char       *mod_user;
    GTime       mod_time;
-+  char       *gettext_domain;
++  const char *gettext_domain;
  };
  
  static LocalSchemaInfo* local_schema_info_new  (void);
-@@ -1351,6 +1352,7 @@
-     gconf_value_free (entry->value);
-   g_free (entry->schema_name);
-   g_free (entry->mod_user);
-+  g_free (entry->gettext_domain);
- 
-   g_slist_foreach (entry->local_schemas,
-                    (GFunc) local_schema_info_free,
-@@ -1593,6 +1595,8 @@
+@@ -1593,6 +1594,8 @@ markup_entry_set_value (MarkupEntry     
                               gconf_schema_get_type (schema));
        gconf_schema_set_owner (current_schema,
                                gconf_schema_get_owner (schema));
@@ -29,7 +20,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n
      }
  
    /* Update mod time */
-@@ -1805,6 +1809,8 @@
+@@ -1805,6 +1808,8 @@ markup_entry_get_value (MarkupEntry *ent
        else if (c_local_schema && c_local_schema->long_desc)
          gconf_schema_set_long_desc (schema, c_local_schema->long_desc);
  
@@ -38,7 +29,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n
        return retval;
      }
  }
-@@ -2339,8 +2345,9 @@
+@@ -2339,8 +2344,9 @@ parse_value_element (GMarkupParseContext
    const char *ltype;
    const char *list_type;
    const char *owner;
@@ -49,7 +40,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n
    
  #if 0
    g_assert (ELEMENT_IS ("entry") ||
-@@ -2377,6 +2384,7 @@
+@@ -2377,6 +2383,7 @@ parse_value_element (GMarkupParseContext
                            "muser", &dummy2,
                            "mtime", &dummy3,
                            "schema", &dummy4,
@@ -57,7 +48,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n
  
                            NULL))
      return;
-@@ -2682,6 +2690,7 @@
+@@ -2683,6 +2690,7 @@ parse_entry_element (GMarkupParseContext
        const char *mtime;
        const char *schema;
        const char *type;
@@ -65,7 +56,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n
        const char *dummy1, *dummy2, *dummy3, *dummy4;
        const char *dummy5, *dummy6, *dummy7;
        GConfValue *value;
-@@ -2692,6 +2701,7 @@
+@@ -2693,6 +2701,7 @@ parse_entry_element (GMarkupParseContext
        mtime = NULL;
        schema = NULL;
        type = NULL;
@@ -73,7 +64,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n
  
        if (!locate_attributes (context, element_name, attribute_names, attribute_values,
                                error,
-@@ -2700,6 +2710,7 @@
+@@ -2701,6 +2710,7 @@ parse_entry_element (GMarkupParseContext
                                "mtime", &mtime,
                                "schema", &schema,
                                "type", &type,
@@ -81,17 +72,17 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n
                            
                                /* These are allowed but we don't use them until
                                 * parse_value_element
-@@ -2767,6 +2778,9 @@
+@@ -2768,6 +2778,9 @@ parse_entry_element (GMarkupParseContext
         */
        if (schema)
          entry->schema_name = g_strdup (schema);
 +
 +      if (gettext_domain)
-+        entry->gettext_domain = g_strdup (gettext_domain);
++        entry->gettext_domain = g_intern_string (gettext_domain);
      }
    else
      {
-@@ -3705,6 +3719,7 @@
+@@ -3716,6 +3729,7 @@ write_value_element (GConfValue *value,
          GConfSchema *schema;
          GConfValueType stype;
          const char *owner;
@@ -99,7 +90,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n
          
          schema = gconf_value_get_schema (value);
  
-@@ -3730,6 +3745,23 @@
+@@ -3741,6 +3755,23 @@ write_value_element (GConfValue *value,
              
              g_free (s);
            }
@@ -123,35 +114,79 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n
          
          if (stype == GCONF_VALUE_LIST)
            {
-diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.c gconf-2.25.0.new/gconf/gconf-schema.c
---- gconf-2.25.0/gconf/gconf-schema.c	2009-01-10 05:55:07.000000000 +0100
-+++ gconf-2.25.0.new/gconf/gconf-schema.c	2009-01-23 12:11:48.000000000 +0100
-@@ -35,6 +35,7 @@
-   gchar* owner;        /* Name of creating application */
+diff -up GConf-2.26.0/doc/gconf-1.0.dtd.gettext GConf-2.26.0/doc/gconf-1.0.dtd
+--- GConf-2.26.0/doc/gconf-1.0.dtd.gettext	2009-04-26 23:33:17.240736103 -0400
++++ GConf-2.26.0/doc/gconf-1.0.dtd	2009-04-26 23:34:25.027700384 -0400
+@@ -7,7 +7,7 @@
+ <!-- A single schema. What I am trying to say is "this set of
+ elements, in any order". Duplicate elements (apart from <locale>) are
+ not allowed). -->
+-<!ELEMENT schema  (key|applyto*|owner?|type|(list_type|(car_type,cdr_type))?|default?|locale*)*>
++<!ELEMENT schema  (key|applyto*|owner?|type|(list_type|(car_type,cdr_type))?|default?|locale*|gettext_domain?)*>
+ 
+ <!-- The key for this schema (e.g. /schemas/apps/foo/bar) -->
+ <!ELEMENT key     (#PCDATA)>
+diff -up GConf-2.26.0/gconf/gconf-internals.c.gettext GConf-2.26.0/gconf/gconf-internals.c
+--- GConf-2.26.0/gconf/gconf-internals.c.gettext	2009-04-26 23:34:10.994700035 -0400
++++ GConf-2.26.0/gconf/gconf-internals.c	2009-04-26 23:34:53.767450191 -0400
+@@ -513,6 +513,7 @@ gconf_fill_corba_schema_from_gconf_schem
+   cs->short_desc = CORBA_string_dup (gconf_schema_get_short_desc (sc) ? gconf_schema_get_short_desc (sc) : "");
+   cs->long_desc = CORBA_string_dup (gconf_schema_get_long_desc (sc) ? gconf_schema_get_long_desc (sc) : "");
+   cs->owner = CORBA_string_dup (gconf_schema_get_owner (sc) ? gconf_schema_get_owner (sc) : "");
++  cs->gettext_domain = CORBA_string_dup (gconf_schema_get_gettext_domain (sc) ? gconf_schema_get_gettext_domain (sc) : "");
+ 
+   {
+     gchar* encoded;
+@@ -600,6 +601,14 @@ gconf_schema_from_corba_schema(const Con
+         gconf_schema_set_owner(sc, cs->owner);
+     }
+       
++  if (*cs->gettext_domain != '\0')
++    {
++      if (!g_utf8_validate (cs->gettext_domain, -1, NULL))
++        gconf_log (GCL_ERR, _("Invalid UTF-8 in gettext domain for schema"));
++      else
++        gconf_schema_set_gettext_domain(sc, cs->gettext_domain);
++    }
++      
+   {
+     GConfValue* val;
+ 
+diff -up GConf-2.26.0/gconf/gconf-schema.c.gettext GConf-2.26.0/gconf/gconf-schema.c
+--- GConf-2.26.0/gconf/gconf-schema.c.gettext	2009-04-26 23:33:26.787483545 -0400
++++ GConf-2.26.0/gconf/gconf-schema.c	2009-04-26 23:35:54.240450142 -0400
+@@ -32,9 +32,10 @@ typedef struct {
+   GConfValueType car_type; /* Pair car type of the described entry */
+   GConfValueType cdr_type; /* Pair cdr type of the described entry */
+   gchar* locale;       /* Schema locale */
+-  gchar* owner;        /* Name of creating application */
++  const gchar* owner;        /* Name of creating application */
    gchar* short_desc;   /* 40 char or less description, no newlines */
    gchar* long_desc;    /* could be a paragraph or so */
-+  gchar* gettext_domain; /* description gettext domain */
++  const gchar* gettext_domain; /* description gettext domain */
    GConfValue* default_value; /* Default value of the key */
  } GConfRealSchema;
  
-@@ -63,6 +64,7 @@
+@@ -63,7 +64,6 @@ gconf_schema_free (GConfSchema* sc)
    g_free (real->locale);
    g_free (real->short_desc);
    g_free (real->long_desc);
-+  g_free (real->gettext_domain);
-   g_free (real->owner);
+-  g_free (real->owner);
  
    if (real->default_value)
-@@ -91,6 +93,8 @@
+     gconf_value_free (real->default_value);
+@@ -91,7 +91,9 @@ gconf_schema_copy (const GConfSchema* sc
  
    dest->long_desc = g_strdup (real->long_desc);
  
-+  dest->gettext_domain = g_strdup (real->gettext_domain);
+-  dest->owner = g_strdup (real->owner);
++  dest->gettext_domain = real->gettext_domain;
 +
-   dest->owner = g_strdup (real->owner);
++  dest->owner = real->owner;
  
    dest->default_value = real->default_value ? gconf_value_copy (real->default_value) : NULL;
-@@ -136,6 +140,20 @@
+   
+@@ -136,6 +138,17 @@ gconf_schema_set_locale (GConfSchema* sc
      REAL_SCHEMA (sc)->locale = NULL;
  }
  
@@ -160,11 +195,8 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.c gconf-2.25.0.new
 +{
 +  g_return_if_fail (domain == NULL || g_utf8_validate (domain, -1, NULL));
 +  
-+  if (REAL_SCHEMA (sc)->gettext_domain)
-+    g_free (REAL_SCHEMA (sc)->gettext_domain);
-+
 +  if (domain)
-+    REAL_SCHEMA (sc)->gettext_domain = g_strdup (domain);
++    REAL_SCHEMA (sc)->gettext_domain = g_intern_string (domain);
 +  else 
 +    REAL_SCHEMA (sc)->gettext_domain = NULL;
 +}
@@ -172,7 +204,20 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.c gconf-2.25.0.new
  void          
  gconf_schema_set_short_desc (GConfSchema* sc, const gchar* desc)
  {
-@@ -228,6 +246,14 @@
+@@ -169,11 +182,8 @@ gconf_schema_set_owner (GConfSchema* sc,
+ {
+   g_return_if_fail (owner == NULL || g_utf8_validate (owner, -1, NULL));
+   
+-  if (REAL_SCHEMA (sc)->owner)
+-    g_free (REAL_SCHEMA (sc)->owner);
+-
+   if (owner)
+-    REAL_SCHEMA (sc)->owner = g_strdup (owner);
++    REAL_SCHEMA (sc)->owner = g_intern_string (owner);
+   else
+     REAL_SCHEMA (sc)->owner = NULL;
+ }
+@@ -228,6 +238,14 @@ gconf_schema_validate (const GConfSchema
        return FALSE;
      }
  
@@ -187,7 +232,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.c gconf-2.25.0.new
    if (real->owner && !g_utf8_validate (real->owner, -1, NULL))
      {
        g_set_error (err, GCONF_ERROR,
-@@ -299,11 +325,22 @@
+@@ -299,11 +317,32 @@ gconf_schema_get_locale (const GConfSche
  }
  
  const char*
@@ -198,35 +243,42 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.c gconf-2.25.0.new
 +  return REAL_SCHEMA (schema)->gettext_domain;
 +}
 +
++static inline const char *
++schema_translate (const GConfSchema *schema,
++                  const char        *string)
++{
++  if (REAL_SCHEMA (schema)->gettext_domain)
++    {
++      bind_textdomain_codeset (REAL_SCHEMA (schema)->gettext_domain, "UTF-8");
++      return g_dgettext(REAL_SCHEMA (schema)->gettext_domain, string);
++    }
++  else
++    return string;
++}
++
 +const char*
  gconf_schema_get_short_desc (const GConfSchema *schema)
  {
    g_return_val_if_fail (schema != NULL, NULL);
  
 -  return REAL_SCHEMA (schema)->short_desc;
-+ if (REAL_SCHEMA (schema)->gettext_domain)
-+    return g_dgettext(REAL_SCHEMA (schema)->gettext_domain, REAL_SCHEMA (schema)->short_desc);
-+  else
-+    return REAL_SCHEMA (schema)->short_desc;
++ return schema_translate (schema, REAL_SCHEMA (schema)->short_desc);
  }
  
  const char*
-@@ -311,7 +348,10 @@
+@@ -311,7 +350,7 @@ gconf_schema_get_long_desc (const GConfS
  {
    g_return_val_if_fail (schema != NULL, NULL);
  
 -  return REAL_SCHEMA (schema)->long_desc;
-+  if (REAL_SCHEMA (schema)->gettext_domain)
-+    return dgettext(REAL_SCHEMA (schema)->gettext_domain, REAL_SCHEMA (schema)->long_desc);
-+  else
-+    return REAL_SCHEMA (schema)->long_desc;
++ return schema_translate (schema, REAL_SCHEMA (schema)->long_desc);
  }
  
  const char*
-diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.h gconf-2.25.0.new/gconf/gconf-schema.h
---- gconf-2.25.0/gconf/gconf-schema.h	2009-01-10 05:55:07.000000000 +0100
-+++ gconf-2.25.0.new/gconf/gconf-schema.h	2009-01-23 12:11:48.000000000 +0100
-@@ -48,6 +48,8 @@
+diff -up GConf-2.26.0/gconf/gconf-schema.h.gettext GConf-2.26.0/gconf/gconf-schema.h
+--- GConf-2.26.0/gconf/gconf-schema.h.gettext	2009-04-26 23:33:33.979744088 -0400
++++ GConf-2.26.0/gconf/gconf-schema.h	2009-04-26 23:34:25.030737043 -0400
+@@ -48,6 +48,8 @@ void gconf_schema_set_cdr_type          
                                              GConfValueType  type);
  void gconf_schema_set_locale               (GConfSchema    *sc,
                                              const gchar    *locale);
@@ -235,7 +287,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.h gconf-2.25.0.new
  void gconf_schema_set_short_desc           (GConfSchema    *sc,
                                              const gchar    *desc);
  void gconf_schema_set_long_desc            (GConfSchema    *sc,
-@@ -65,6 +67,7 @@
+@@ -65,6 +67,7 @@ GConfValueType gconf_schema_get_list_typ
  GConfValueType gconf_schema_get_car_type      (const GConfSchema *schema);
  GConfValueType gconf_schema_get_cdr_type      (const GConfSchema *schema);
  const char*    gconf_schema_get_locale        (const GConfSchema *schema);
@@ -243,10 +295,10 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.h gconf-2.25.0.new
  const char*    gconf_schema_get_short_desc    (const GConfSchema *schema);
  const char*    gconf_schema_get_long_desc     (const GConfSchema *schema);
  const char*    gconf_schema_get_owner         (const GConfSchema *schema);
-diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconftool.c gconf-2.25.0.new/gconf/gconftool.c
---- gconf-2.25.0/gconf/gconftool.c	2009-01-10 05:55:07.000000000 +0100
-+++ gconf-2.25.0.new/gconf/gconftool.c	2009-01-23 12:11:48.000000000 +0100
-@@ -3293,6 +3293,7 @@
+diff -up GConf-2.26.0/gconf/gconftool.c.gettext GConf-2.26.0/gconf/gconftool.c
+--- GConf-2.26.0/gconf/gconftool.c.gettext	2009-04-26 23:33:41.907451190 -0400
++++ GConf-2.26.0/gconf/gconftool.c	2009-04-26 23:34:25.034736752 -0400
+@@ -3295,6 +3295,7 @@ struct _SchemaInfo {
    GConfValueType cdr_type;
    GConfValue* global_default;
    GHashTable* hash;
@@ -254,7 +306,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconftool.c gconf-2.25.0.new/gc
  };
  
  static int
-@@ -3545,6 +3546,15 @@
+@@ -3547,6 +3548,15 @@ extract_global_info(xmlNodePtr node,
                else
                  g_printerr (_("WARNING: empty <applyto> node"));
              }
@@ -270,7 +322,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconftool.c gconf-2.25.0.new/gc
            else
              g_printerr (_("WARNING: node <%s> not understood below <schema>\n"),
  			iter->name);
-@@ -3634,6 +3644,9 @@
+@@ -3636,6 +3646,9 @@ process_locale_info(xmlNodePtr node, Sch
    if (info->owner != NULL)
      gconf_schema_set_owner(schema, info->owner);
  
@@ -280,7 +332,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconftool.c gconf-2.25.0.new/gc
    xmlFree(name);
  
    /* Locale-specific info */
-@@ -3763,6 +3776,7 @@
+@@ -3765,6 +3778,7 @@ get_schema_from_xml(xmlNodePtr node, gch
    info.apply_to = NULL;
    info.owner = NULL;
    info.global_default = NULL;
@@ -288,7 +340,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconftool.c gconf-2.25.0.new/gc
    info.hash = g_hash_table_new(g_str_hash, g_str_equal);
    
    extract_global_info(node, &info);
-@@ -3799,6 +3813,8 @@
+@@ -3801,6 +3815,8 @@ get_schema_from_xml(xmlNodePtr node, gch
              ;  /* nothing */
            else if (strcmp((char *)iter->name, "applyto") == 0)
              ;  /* nothing */
@@ -297,3 +349,14 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconftool.c gconf-2.25.0.new/gc
            else if (strcmp((char *)iter->name, "locale") == 0)
              {
                process_locale_info(iter, &info);
+diff -up GConf-2.26.0/gconf/GConfX.idl.gettext GConf-2.26.0/gconf/GConfX.idl
+--- GConf-2.26.0/gconf/GConfX.idl.gettext	2009-04-26 23:33:58.457483190 -0400
++++ GConf-2.26.0/gconf/GConfX.idl	2009-04-26 23:34:53.764448732 -0400
+@@ -16,6 +16,7 @@ struct ConfigSchema {
+   string short_desc;
+   string long_desc;
+   string owner;
++  string gettext_domain;
+   // Work around lack of recursive data types
+   string encoded_default_value;
+ };
diff --git a/abs/extra-testing/gconf/PKGBUILD b/abs/extra-testing/gconf/PKGBUILD
index 053e26a..3da7a0c 100644
--- a/abs/extra-testing/gconf/PKGBUILD
+++ b/abs/extra-testing/gconf/PKGBUILD
@@ -1,45 +1,38 @@
-# $Id: PKGBUILD 33882 2009-04-05 19:42:30Z jgc $
+# $Id: PKGBUILD 74317 2010-03-30 19:00:27Z ibiru $
 # Maintainer:  Jan de Groot <jan@archlinux.org>
 
 pkgname=gconf
-pkgver=2.26.0
-pkgrel=3
+pkgver=2.28.1
+pkgrel=1
 pkgdesc="A configuration database system"
 arch=(i686 x86_64)
 license=('LGPL')
-depends=('orbit2>=2.14.17' 'gtk2>=2.16.0' 'libxml2>=2.7.3' 'policykit>=0.9' 'libldap>=2.3.43')
-makedepends=('pkgconfig' 'intltool>=0.40.6' 'gtk-doc>=1.10')
+depends=('orbit2>=2.14.17' 'gtk2>=2.20.0' 'libxml2>=2.7.7' 'polkit>=0.96' 'libldap>=2.4.18' 'dbus')
+makedepends=('pkgconfig' 'intltool' 'gtk-doc')
 options=('!libtool')
 install=gconf.install
 url="http://www.gnome.org"
-source=(http://ftp.gnome.org/pub/gnome/sources/GConf/2.26/GConf-${pkgver}.tar.bz2
-	gconf-merge-schema
-	gconfpkg
-	gconf-reload.patch
-	xml-gettext-domain.patch
-	05_from_vuntz_gconf2-pk-default-path.patch)
-md5sums=('b010f0de356ea093c6a73778b13de956'
+source=(http://ftp.gnome.org/pub/gnome/sources/GConf/2.28/GConf-${pkgver}.tar.bz2
+        gconf-merge-schema
+        gconfpkg
+        gconf-reload.patch
+        01_xml-gettext-domain.patch)
+md5sums=('27663faf0af4f6a6d534de9270f6d24a'
          '240b473fa17b748fc9020caf372d936c'
          'b745f04b4121d8724c002b14a4c110b6'
          'cfcc8e15be7b8a48de4aa34336ff6090'
-         '1c8a0eece8202c4c2fbba596fe0d9c67'
-         'd9a02aee25ec04f2340f4e98963aabb0')
+         '1f9362976d71312bdb57c57fa031681d')
 
 build() {
   cd "${srcdir}/GConf-${pkgver}"
   # Patch from fedora - reloads gconf after installing schemas
   patch -Np1 -i "${srcdir}/gconf-reload.patch" || return 1
   # http://bugzilla.gnome.org/show_bug.cgi?id=568845
-  patch -Np1 -i "${srcdir}/xml-gettext-domain.patch" || return 1
-  # Patch from Ubuntu: change default path
-  patch -Np1 -i "${srcdir}/05_from_vuntz_gconf2-pk-default-path.patch" || return 1
-  libtoolize --force --copy || return 1
-  aclocal || return 1
-  autoconf || return 1
-  automake --add-missing || return 1
+  patch -Np1 -i "${srcdir}/01_xml-gettext-domain.patch" || return 1
+   
   ./configure --prefix=/usr --sysconfdir=/etc \
-              --localstatedir=/var --libexecdir=/usr/lib/GConf \
-	      --disable-static --enable-defaults-service || return 1
+      --localstatedir=/var --libexecdir=/usr/lib/GConf \
+      --disable-static --enable-defaults-service || return 1
   make pkglibdir=/usr/lib/GConf || return 1
   make DESTDIR="${pkgdir}" install || return 1
   install -m755 -d "${pkgdir}/etc/gconf/gconf.xml.system" || return 1
-- 
cgit v0.12


From 6e8437cd0a5a3cfbcecfd41e795a5d6ceed093b5 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:07:07 -0700
Subject: gnome-common:Bumped/Updated for LinHES 7.

---
 abs/extra-testing/gnome-common/PKGBUILD | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 abs/extra-testing/gnome-common/PKGBUILD

diff --git a/abs/extra-testing/gnome-common/PKGBUILD b/abs/extra-testing/gnome-common/PKGBUILD
new file mode 100644
index 0000000..e0078dd
--- /dev/null
+++ b/abs/extra-testing/gnome-common/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 54859 2009-10-11 19:55:23Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-common
+pkgver=2.28.0
+pkgrel=1
+pkgdesc="Common development macros for GNOME2"
+arch=(any)
+license=('GPL')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.28/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('dd4817103d23745d00c735dd137951552ba7b576cb8f68e6a529d06661e9b6a1')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
+  make || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+}
-- 
cgit v0.12


From f508f694cb958868145869dc952971b897f391ca Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:07:20 -0700
Subject: gnome-vfs:Bumped/Updated for LinHES 7.

---
 abs/extra-testing/gnome-vfs/PKGBUILD            | 36 ++++++++++++++++---------
 abs/extra-testing/gnome-vfs/gnutls-config.patch | 25 +++++++++++++++++
 2 files changed, 48 insertions(+), 13 deletions(-)
 create mode 100644 abs/extra-testing/gnome-vfs/gnutls-config.patch

diff --git a/abs/extra-testing/gnome-vfs/PKGBUILD b/abs/extra-testing/gnome-vfs/PKGBUILD
index 9a54cdd..b8434a7 100644
--- a/abs/extra-testing/gnome-vfs/PKGBUILD
+++ b/abs/extra-testing/gnome-vfs/PKGBUILD
@@ -1,35 +1,45 @@
-# $Id: PKGBUILD 30314 2009-03-18 21:34:12Z jgc $
+# $Id: PKGBUILD 75359 2010-04-01 11:48:46Z allan $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=gnome-vfs
-pkgver=2.24.1
+pkgver=2.24.3
 pkgrel=2
 pkgdesc="The GNOME Virtual File System"
 arch=(i686 x86_64)
 license=('LGPL')
-depends=('fam' 'gconf>=2.26.0-2' 'hal>=0.5.11' 'bzip2' 'avahi>=0.6.24' 'smbclient>=3.3.1' 'gnome-mime-data>=2.18.0-2' 'heimdal>=1.2.1' 'gnutls>=2.6.4')
-makedepends=('pkgconfig' 'intltool')
-options=('!libtool' '!emptydirs')
+depends=('fam' 'gconf>=2.28.0' 'hal>=0.5.13' 'bzip2' 'avahi>=0.6.25' 'smbclient>=3.3.7' 'gnome-mime-data>=2.18.0-2' 'heimdal>=1.3.1' 'gnutls>=2.8.3')
+makedepends=('pkgconfig' 'intltool' 'gtk-doc' 'gnome-common')
+options=('!libtool' '!emptydirs' '!makeflags')
 conflicts=(gnome-vfs-samba)
 provides=(gnome-vfs-samba)
 replaces=(gnome-vfs-samba gnome-vfs-extras)
 url="http://www.gnome.org"
 install=gnome-vfs.install
 source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.24/gnome-vfs-${pkgver}.tar.bz2
-	hal-show-volume-names.patch)
-md5sums=('100f9af16dc659e375ee8da45175a28d' '109d07aa1dc8cb6523c47c4984047dce')
+        hal-show-volume-names.patch
+        gnutls-config.patch)
+sha256sums=('3b0f342e79813bfc11d8e636db96b3ffd16c9ca48b07306410e09a3fd1065b4a'
+            'b38b86d6c966dcf64f9140d800aebe8a14845bb8ce7c045f52d4df483cacd23b'
+            '66c7cfb12995c0dd94a2caea95c7e3c55981993f05a79c585d60915ff131955d')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   #Archlinux patch (b.g.o #321498)
-  patch -Np1 -i ${startdir}/src/hal-show-volume-names.patch || return 1
+  patch -Np1 -i "${srcdir}/hal-show-volume-names.patch" || return 1
 
+  #Fix build with new gnutls
+  patch -Np1 -i "${srcdir}/gnutls-config.patch" || return 1
+  libtoolize --force || return 1
+  gtkdocize || return 1
+  aclocal || return 1
+  autoconf || return 1
+  automake || return 1
   ./configure --prefix=/usr --sysconfdir=/etc \
-        --localstatedir=/var --disable-static \
-	--libexecdir=/usr/lib/gnome-vfs-2.0 \
-  	--enable-samba --enable-hal \
-        --enable-avahi --disable-howl \
-	--disable-openssl --enable-gnutls || return 1
+      --localstatedir=/var --disable-static \
+      --libexecdir=/usr/lib/gnome-vfs-2.0 \
+      --enable-samba --enable-hal \
+      --enable-avahi --disable-howl \
+      --disable-openssl --enable-gnutls || return 1
   make || return 1
   make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install || return 1
 
diff --git a/abs/extra-testing/gnome-vfs/gnutls-config.patch b/abs/extra-testing/gnome-vfs/gnutls-config.patch
new file mode 100644
index 0000000..f6fa18b
--- /dev/null
+++ b/abs/extra-testing/gnome-vfs/gnutls-config.patch
@@ -0,0 +1,25 @@
+# Allow gnome-vfs-2.24 to build with gnutls >= 2.7.0
+# Use pkg-config in place of gnutls own macro since it's not present anymore.
+--- a/configure.in	2009-03-07 19:59:53.805507753 +0100
++++ b/configure.in	2009-03-07 18:34:36.928169018 +0100
+@@ -686,14 +686,14 @@
+     AC_MSG_ERROR([*** Can't use both openssl and gnutls at the same time. Please pick one only. ***])
+   else
+     AC_CHECK_HEADER(gcrypt.h,, AC_MSG_ERROR([*** Need gcrypt.h to compile with GnuTLS support ***]))
+-    AM_PATH_LIBGNUTLS(1.0.0, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available])
+-			      have_ssl=true])
++    PKG_CHECK_MODULES(LIBGNUTLS, gnutls >= 1.0.0, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available])
++    				 	   	  have_ssl=true])
+ 
+     if test "x${LIBGNUTLS_LIBS}" = "x"; then
+-      AM_PATH_LIBGNUTLS(0.5.1, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available])
+-                                 AC_DEFINE(GNUTLS_COMPAT, 1, [FIXME])
+-				 have_ssl=true],
+-                                 AC_MSG_ERROR([Unable to find GNUTLS]))
++      PKG_CHECK_MODULES(LIBGNUTLS, gnutls >= 0.5.1, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available])
++      				   	     	    AC_DEFINE(GNUTLS_COMPAT, 1, [FIXME])
++						    have_ssl=true],
++						    AC_MSG_ERROR([Unable to find GNUTLS]))
+     fi
+   fi
+ fi
-- 
cgit v0.12


From af1cf9eb9f67c38319bce5fc2adbf225d2f1a071 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:07:54 -0700
Subject: libmng:Bumped/Updated for LinHES 7.

---
 abs/extra-testing/libmng/PKGBUILD | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 abs/extra-testing/libmng/PKGBUILD

diff --git a/abs/extra-testing/libmng/PKGBUILD b/abs/extra-testing/libmng/PKGBUILD
new file mode 100644
index 0000000..6607718
--- /dev/null
+++ b/abs/extra-testing/libmng/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 63248 2010-01-16 20:44:09Z jgc $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=libmng
+pkgver=1.0.10
+pkgrel=3
+pkgdesc="A collection of routines used to create and manipulate MNG format graphics files"
+arch=('i686' 'x86_64')
+url="http://www.libmng.com/"
+license=('custom')
+depends=('zlib' 'libjpeg>=8')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('a464ae7d679781beebdf7440d144b7bd')
+
+build() {
+  cd $srcdir/$pkgname-$pkgver
+  ln -s makefiles/configure.in .
+  ln -s makefiles/Makefile.am .
+  autoreconf --force --install
+  ./configure --prefix=/usr
+  make || return 1
+  make DESTDIR=$pkgdir install || return 1
+  install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
-- 
cgit v0.12


From f7e4487682067fb377a84062354309781517bfbe Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:08:07 -0700
Subject: pm-quirks:Bumped/Updated for LinHES 7.

---
 abs/extra-testing/pm-quirks/PKGBUILD | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 abs/extra-testing/pm-quirks/PKGBUILD

diff --git a/abs/extra-testing/pm-quirks/PKGBUILD b/abs/extra-testing/pm-quirks/PKGBUILD
new file mode 100644
index 0000000..4420a62
--- /dev/null
+++ b/abs/extra-testing/pm-quirks/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 83844 2010-06-23 08:48:25Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=pm-quirks
+_date=20100619
+pkgver=0.${_date}
+pkgrel=1
+pkgdesc="Quirks data for pm-utils"
+arch=(any)
+license=('GPL')
+url="http://pm-utils.freedesktop.org/wiki/"
+source=(http://pm-utils.freedesktop.org/releases/${pkgname}-${_date}.tar.gz)
+md5sums=('3b6ee39056b9ece0cd5e073a4c272b05')
+
+build() {
+  cd "${srcdir}"/video-quirks
+  install -m755 -d "${pkgdir}/usr/lib/pm-utils/video-quirks"
+  install -m644 *.quirkdb "${pkgdir}/usr/lib/pm-utils/video-quirks/" || return 1
+}
-- 
cgit v0.12


From f38b952c758a9027bf7eb4767adacca50d545166 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:08:55 -0700
Subject: policykit*:Removed for LinHES 7 (replaced by polkit*).

---
 abs/extra-testing/policykit-gnome/PKGBUILD         | 32 ---------
 .../policykit-gnome/policykit-gnome.install        | 23 ------
 abs/extra-testing/policykit/PKGBUILD               | 43 -----------
 abs/extra-testing/policykit/entry-leak.patch       | 37 ----------
 abs/extra-testing/policykit/pk-ck-api-change.patch | 83 ----------------------
 abs/extra-testing/policykit/policykit.install      | 30 --------
 .../policykit/polkit-0.8-dbus-policy.patch         | 12 ----
 abs/extra-testing/policykit/polkit.pam             |  7 --
 8 files changed, 267 deletions(-)
 delete mode 100644 abs/extra-testing/policykit-gnome/PKGBUILD
 delete mode 100644 abs/extra-testing/policykit-gnome/policykit-gnome.install
 delete mode 100644 abs/extra-testing/policykit/PKGBUILD
 delete mode 100644 abs/extra-testing/policykit/entry-leak.patch
 delete mode 100644 abs/extra-testing/policykit/pk-ck-api-change.patch
 delete mode 100644 abs/extra-testing/policykit/policykit.install
 delete mode 100644 abs/extra-testing/policykit/polkit-0.8-dbus-policy.patch
 delete mode 100644 abs/extra-testing/policykit/polkit.pam

diff --git a/abs/extra-testing/policykit-gnome/PKGBUILD b/abs/extra-testing/policykit-gnome/PKGBUILD
deleted file mode 100644
index e6a7d9c..0000000
--- a/abs/extra-testing/policykit-gnome/PKGBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Contributor: onestep_ua <onestep@ukr.net>
-
-pkgname=policykit-gnome
-pkgver=0.9.2
-pkgrel=2
-pkgdesc="PolicyKit integration for the GNOME desktop"
-arch=('i686' 'x86_64')
-url="http://hal.freedesktop.org/docs/PolicyKit-gnome/"
-license=('GPL')
-depends=('gconf>=2.24.0')
-makedepends=('intltool' 'gtk-doc' 'gnome-doc-utils>=0.14.0')
-options=(!emptydirs !libtool)
-install=${pkgname}.install
-source=(http://hal.freedesktop.org/releases/PolicyKit-gnome-${pkgver}.tar.bz2)
-md5sums=('fc478b168d0c926a9766b0b415ff4bbf')
-
-build() {
-  cd "${srcdir}/PolicyKit-gnome-${pkgver}"
-
-  ./configure --prefix=/usr \
-      --sysconfdir=/etc \
-      --libexecdir=/usr/lib/PolicyKit \
-      --disable-gtk-doc \
-      --disable-examples || return 1
-  make || return 1
-  make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install || return 1
-
-  install -m 755 -d "${pkgdir}/usr/share/gconf/schemas"
-  gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" ${pkgdir}/etc/gconf/schemas/*.schemas || return 1
-  rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
-}
diff --git a/abs/extra-testing/policykit-gnome/policykit-gnome.install b/abs/extra-testing/policykit-gnome/policykit-gnome.install
deleted file mode 100644
index e2593d3..0000000
--- a/abs/extra-testing/policykit-gnome/policykit-gnome.install
+++ /dev/null
@@ -1,23 +0,0 @@
-pkgname=policykit-gnome
-
-## arg 1:  the new package version
-post_install() {
-  usr/sbin/gconfpkg --install ${pkgname}
-}
-
-## arg 1:  the new package version
-## arg 2:  the old package version
-pre_upgrade() {
-  pre_remove $1
-}
-
-## arg 1:  the new package version
-## arg 2:  the old package version
-post_upgrade() {
-  post_install $1
-}
-
-## arg 1:  the old package version
-pre_remove() {
-  usr/sbin/gconfpkg --uninstall ${pkgname}
-}
diff --git a/abs/extra-testing/policykit/PKGBUILD b/abs/extra-testing/policykit/PKGBUILD
deleted file mode 100644
index d7dd90e..0000000
--- a/abs/extra-testing/policykit/PKGBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# $Id: $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=policykit
-pkgver=0.9
-pkgrel=9
-pkgdesc="Application development toolkit for controlling system-wide privileges"
-arch=(i686 x86_64)
-license=('custom')
-url="http://hal.freedesktop.org/docs/PolicyKit/"
-depends=('dbus-glib>=0.80' 'expat>=2.0.1' 'pam')
-makedepends=('intltool' 'docbook-xsl' 'gtk-doc')
-options=('!libtool')
-backup=('etc/PolicyKit/PolicyKit.conf')
-install=policykit.install
-source=(http://hal.freedesktop.org/releases/PolicyKit-${pkgver}.tar.gz
-	polkit.pam
-	pk-ck-api-change.patch
-	polkit-0.8-dbus-policy.patch
-	entry-leak.patch)
-md5sums=('802fd13ae41f73d79359e5ecb0a98716'
-         '6564f95878297b954f0572bc1610dd15'
-         '15b42b41e98410d8d7ec4f91d0cff190'
-         'da5129eee9517d00985a354055d778a9'
-         '62adbf90657b17dae429fc92937af513')
-
-build() {
-  cd "${srcdir}/PolicyKit-${pkgver}"
-  patch -Np1 -i "${srcdir}/pk-ck-api-change.patch" || return 1
-  patch -Np1 -i "${srcdir}/polkit-0.8-dbus-policy.patch" || return 1
-  patch -Np1 -i "${srcdir}/entry-leak.patch" || return 1
-  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
-              --libexecdir=/usr/lib/PolicyKit --disable-static \
-	      --with-polkit-user=policykit --with-polkit-group=policykit || return 1
-  make || return 1
-  make DESTDIR="${pkgdir}" install || return 1
-
-  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
-  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
-
-  rm -rf "${pkgdir}/etc/profile.d"
-  install -m644 "${srcdir}/polkit.pam" "${pkgdir}/etc/pam.d/polkit" || return 1
-}
diff --git a/abs/extra-testing/policykit/entry-leak.patch b/abs/extra-testing/policykit/entry-leak.patch
deleted file mode 100644
index f6b3295..0000000
--- a/abs/extra-testing/policykit/entry-leak.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff -up PolicyKit-0.9/src/polkit/polkit-policy-file-entry.c.entry-leak PolicyKit-0.9/src/polkit/polkit-policy-file-entry.c
---- PolicyKit-0.9/src/polkit/polkit-policy-file-entry.c.entry-leak	2008-08-29 21:47:22.000000000 -0400
-+++ PolicyKit-0.9/src/polkit/polkit-policy-file-entry.c	2008-08-29 21:50:13.000000000 -0400
-@@ -95,9 +95,11 @@ _polkit_policy_file_entry_new   (const c
-         char *contents;
-         size_t contents_size;
-         PolKitPolicyFileEntry *pfe;
-+        char **tokens;
- 
-         path = NULL;
-         contents = NULL;
-+        tokens = NULL;
- 
-         kit_return_val_if_fail (action_id != NULL && polkit_action_validate_id (action_id), NULL);
- 
-@@ -153,7 +155,6 @@ _polkit_policy_file_entry_new   (const c
-         }
- 
-         if (contents != NULL) {
--                char **tokens;
-                 size_t num_tokens;
-                 PolKitResult any;
-                 PolKitResult inactive;
-@@ -183,11 +184,13 @@ _polkit_policy_file_entry_new   (const c
- 
-         kit_free (path);
-         kit_free (contents);
-+        kit_strfreev (tokens);
- 
-         return pfe;
- error:
-         kit_free (path);
-         kit_free (contents);
-+        kit_strfreev (tokens);
-         if (pfe != NULL)
-                 polkit_policy_file_entry_unref (pfe);
-         return NULL;
diff --git a/abs/extra-testing/policykit/pk-ck-api-change.patch b/abs/extra-testing/policykit/pk-ck-api-change.patch
deleted file mode 100644
index ae477f9..0000000
--- a/abs/extra-testing/policykit/pk-ck-api-change.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-diff --git a/src/polkit-dbus/polkit-dbus.c b/src/polkit-dbus/polkit-dbus.c
-index f7be03f..cad4a76 100644
---- a/src/polkit-dbus/polkit-dbus.c
-+++ b/src/polkit-dbus/polkit-dbus.c
-@@ -214,11 +214,17 @@ polkit_session_new_from_objpath (DBusConnection *con, const char *objpath, uid_t
-                                 dbus_message_unref (reply);
-                         goto out;
-                 }
-+                /* GetUnixUser API Changed in CK 0.3.0 */
-                 if (!dbus_message_get_args (reply, NULL,
--                                            DBUS_TYPE_INT32, &uid,
-+                                            DBUS_TYPE_UINT32, &uid,
-                                             DBUS_TYPE_INVALID)) {
--                        kit_warning ("Invalid GetUnixUser reply from CK");
--                        goto out;
-+                        /* try the older API */
-+                        if (!dbus_message_get_args (reply, NULL,
-+                                                    DBUS_TYPE_INT32, &uid,
-+                                                    DBUS_TYPE_INVALID)) {
-+                                kit_warning ("Invalid GetUnixUser reply from CK");
-+                                goto out;
-+                        }
-                 }
-                 dbus_message_unref (message);
-                 dbus_message_unref (reply);
-@@ -1326,16 +1332,21 @@ polkit_tracker_dbus_func (PolKitTracker *pk_tracker, DBusMessage *message)
- 
-                 dbus_error_init (&error);
-                 seat_objpath = dbus_message_get_path (message);
--                if (!dbus_message_get_args (message, &error, 
--                                            DBUS_TYPE_STRING, &session_objpath, 
-+                /* API fixed in CK 0.3 to match spec */
-+                if (!dbus_message_get_args (message, &error,
-+                                            DBUS_TYPE_OBJECT_PATH, &session_objpath,
-                                             DBUS_TYPE_INVALID)) {
-+                        if (!dbus_message_get_args (message, &error,
-+                                                    DBUS_TYPE_STRING, &session_objpath,
-+                                                    DBUS_TYPE_INVALID)) {
- 
--                        /* TODO: should be _pk_critical */
--                        kit_warning ("The SessionAdded signal on the org.freedesktop.ConsoleKit.Seat "
--                                   "interface for object %s has the wrong signature! "
--                                   "Your system is misconfigured.", seat_objpath);
-+                                /* TODO: should be _pk_critical */
-+                                kit_warning ("The SessionAdded signal on the org.freedesktop.ConsoleKit.Seat "
-+                                             "interface for object %s has the wrong signature! "
-+                                             "Your system is misconfigured.", seat_objpath);
- 
--                        goto out;
-+                                goto out;
-+                        }
-                 }
- 
-                 /* TODO: add to sessions - see polkit_tracker_is_authorization_relevant() */
-@@ -1353,16 +1364,21 @@ polkit_tracker_dbus_func (PolKitTracker *pk_tracker, DBusMessage *message)
- 
-                 dbus_error_init (&error);
-                 seat_objpath = dbus_message_get_path (message);
--                if (!dbus_message_get_args (message, &error, 
--                                            DBUS_TYPE_STRING, &session_objpath, 
-+                /* API fixed in CK 0.3 to match spec */
-+                if (!dbus_message_get_args (message, &error,
-+                                            DBUS_TYPE_OBJECT_PATH, &session_objpath,
-                                             DBUS_TYPE_INVALID)) {
-+                        if (!dbus_message_get_args (message, &error,
-+                                                    DBUS_TYPE_STRING, &session_objpath,
-+                                                    DBUS_TYPE_INVALID)) {
- 
--                        /* TODO: should be _pk_critical */
--                        kit_warning ("The SessionRemoved signal on the org.freedesktop.ConsoleKit.Seat "
--                                   "interface for object %s has the wrong signature! "
--                                   "Your system is misconfigured.", seat_objpath);
-+                                /* TODO: should be _pk_critical */
-+                                kit_warning ("The SessionRemoved signal on the org.freedesktop.ConsoleKit.Seat "
-+                                             "interface for object %s has the wrong signature! "
-+                                             "Your system is misconfigured.", seat_objpath);
- 
--                        goto out;
-+                                goto out;
-+                        }
-                 }
- 
-                 _remove_caller_by_session (pk_tracker, session_objpath);
diff --git a/abs/extra-testing/policykit/policykit.install b/abs/extra-testing/policykit/policykit.install
deleted file mode 100644
index 7bc653e..0000000
--- a/abs/extra-testing/policykit/policykit.install
+++ /dev/null
@@ -1,30 +0,0 @@
-post_install() {
-  getent group policykit >/dev/null || usr/sbin/groupadd -g 102 policykit
-  getent passwd policykit >/dev/null || usr/sbin/useradd -c 'PolicyKit' -u 102 -g policykit -d '/' -s /sbin/nologin policykit
-  usr/bin/passwd -l policykit &>/dev/null
-
-  # set correct permissions
-  chgrp policykit var/{run,lib}/PolicyKit
-  chown policykit var/lib/PolicyKit-public
-  chown policykit:policykit var/lib/misc/PolicyKit.reload
-
-  chown policykit usr/lib/PolicyKit/polkit-set-default-helper
-  chmod u+s usr/lib/PolicyKit/polkit-set-default-helper
-
-  for i in polkit-read-auth-helper polkit-revoke-helper polkit-grant-helper polkit-explicit-grant-helper; do
-    chgrp policykit usr/lib/PolicyKit/$i
-    chmod g+s usr/lib/PolicyKit/$i
-  done
-
-  chgrp policykit usr/lib/PolicyKit/polkit-grant-helper-pam
-  chmod u+s usr/lib/PolicyKit/polkit-grant-helper-pam
-}
-
-post_upgrade() {
-  post_install
-}
-
-post_remove() {
-  usr/sbin/userdel policykit &>/dev/null
-  usr/sbin/groupdel policykit &>/dev/null
-}
diff --git a/abs/extra-testing/policykit/polkit-0.8-dbus-policy.patch b/abs/extra-testing/policykit/polkit-0.8-dbus-policy.patch
deleted file mode 100644
index fa84936..0000000
--- a/abs/extra-testing/policykit/polkit-0.8-dbus-policy.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- PolicyKit-0.8.orig/polkitd/org.freedesktop.PolicyKit.conf.in	2008-12-08 10:55:12.000000000 -0500
-+++ PolicyKit-0.8/polkitd/org.freedesktop.PolicyKit.conf.in	2008-12-08 12:05:33.000000000 -0500
-@@ -8,4 +8,9 @@
-   <policy user="@polkituser@">
-     <allow own="org.freedesktop.PolicyKit"/>
-   </policy>
-+
-+  <!-- any user can talk to the service (fd.o #18948) -->
-+  <policy context="default">
-+    <allow send_destination="org.freedesktop.PolicyKit"/>
-+  </policy>
- </busconfig>
diff --git a/abs/extra-testing/policykit/polkit.pam b/abs/extra-testing/policykit/polkit.pam
deleted file mode 100644
index 04f53e0..0000000
--- a/abs/extra-testing/policykit/polkit.pam
+++ /dev/null
@@ -1,7 +0,0 @@
-auth            requisite       pam_nologin.so
-auth            required        pam_env.so
-auth            required        pam_unix.so
-account         required        pam_unix.so
-session         required        pam_limits.so
-session         required        pam_unix.so
-password        required        pam_unix.so
-- 
cgit v0.12


From 1bfd212351215d357966a3e528becb2771acf0fb Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:09:08 -0700
Subject: polkit-gnome:Bumped/Updated for LinHES 7.

---
 abs/extra-testing/polkit-gnome/PKGBUILD | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644 abs/extra-testing/polkit-gnome/PKGBUILD

diff --git a/abs/extra-testing/polkit-gnome/PKGBUILD b/abs/extra-testing/polkit-gnome/PKGBUILD
new file mode 100644
index 0000000..06c375c
--- /dev/null
+++ b/abs/extra-testing/polkit-gnome/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: onestep_ua <onestep@ukr.net>
+
+pkgname=polkit-gnome
+pkgver=0.96
+pkgrel=3
+pkgdesc="PolicyKit integration for the GNOME desktop"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/PolicyKit"
+license=('LGPL')
+depends=('polkit>=0.96' 'gtk2>=2.18.6')
+makedepends=('intltool')
+replaces=('policykit-gnome')
+options=(!libtool !makeflags)
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('611cf39fba2945320fc7a9ec49087e69')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  sed -i -e 's/OnlyShowIn=GNOME/NotShowIn=KDE/' src/polkit-gnome-authentication-agent-1.desktop.in.in || return 1
+  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/polkit-gnome --disable-static --disable-introspection || return 1
+  make || return 1
+  make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install || return 1
+}
-- 
cgit v0.12


From f9d54ab7c3853208484e304bc6cf40ab0f79d400 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 23:09:19 -0700
Subject: polkit:Bumped/Updated for LinHES 7.

---
 abs/extra-testing/polkit/PKGBUILD   | 29 +++++++++++++++++++++++++++++
 abs/extra-testing/polkit/polkit.pam |  7 +++++++
 2 files changed, 36 insertions(+)
 create mode 100644 abs/extra-testing/polkit/PKGBUILD
 create mode 100644 abs/extra-testing/polkit/polkit.pam

diff --git a/abs/extra-testing/polkit/PKGBUILD b/abs/extra-testing/polkit/PKGBUILD
new file mode 100644
index 0000000..78cbc77
--- /dev/null
+++ b/abs/extra-testing/polkit/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 72186 2010-03-13 19:06:23Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=polkit
+pkgver=0.96
+pkgrel=2
+pkgdesc="Application development toolkit for controlling system-wide privileges"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://www.freedesktop.org/wiki/Software/Policykit"
+depends=('eggdbus>=0.6' 'pam')
+makedepends=('intltool' 'gtk-doc' 'gobject-introspection')
+replaces=('policykit')
+options=('!libtool')
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz
+        polkit.pam)
+md5sums=('e0a06da501b04ed3bab986a9df5b5aa2'
+         '6564f95878297b954f0572bc1610dd15')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr --sysconfdir=/etc \
+      --localstatedir=/var --libexecdir=/usr/lib/polkit-1 \
+      --disable-static --enable-gtk-doc || return 1
+  make || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+
+  install -m644 "${srcdir}/polkit.pam" "${pkgdir}/etc/pam.d/polkit-1" || return 1
+}
diff --git a/abs/extra-testing/polkit/polkit.pam b/abs/extra-testing/polkit/polkit.pam
new file mode 100644
index 0000000..04f53e0
--- /dev/null
+++ b/abs/extra-testing/polkit/polkit.pam
@@ -0,0 +1,7 @@
+auth            requisite       pam_nologin.so
+auth            required        pam_env.so
+auth            required        pam_unix.so
+account         required        pam_unix.so
+session         required        pam_limits.so
+session         required        pam_unix.so
+password        required        pam_unix.so
-- 
cgit v0.12