diff --git a/config/grub/grub.conf b/config/grub/grub.conf
index 26a29040c..814916344 100644
--- a/config/grub/grub.conf
+++ b/config/grub/grub.conf
@@ -6,41 +6,41 @@ background = ffffff
splashimage (hd0,0)/grub/ipfire.xpm.gz
title IPFire
root (hd0,0)
- kernel /vmlinuz-KVER-ipfire root=ROOT rootdelay=10 panic=10 MOUNT
- initrd /ipfirerd-KVER.img
+ kernel /vmlinuz-KVER-ipfire-smp root=ROOT rootdelay=10 panic=10 MOUNT
+ initrd /ipfirerd-KVER-smp.img
savedefault 0
title IPFire (vesafb 1024x768)
root (hd0,0)
- kernel /vmlinuz-KVER-ipfire root=ROOT rootdelay=10 panic=10 vga=791 MOUNT
- initrd /ipfirerd-KVER.img
+ kernel /vmlinuz-KVER-ipfire-smp root=ROOT rootdelay=10 panic=10 vga=791 MOUNT
+ initrd /ipfirerd-KVER-smp.img
savedefault 1
title IPFire (acpi=off)
root (hd0,0)
- kernel /vmlinuz-KVER-ipfire root=ROOT rootdelay=10 panic=10 acpi=off MOUNT
- initrd /ipfirerd-KVER.img
+ kernel /vmlinuz-KVER-ipfire-smp root=ROOT rootdelay=10 panic=10 acpi=off MOUNT
+ initrd /ipfirerd-KVER-smp.img
savedefault 2
title IPFire (vesafb 1024x768, acpi=off)
- root (hd0,0)
- kernel /vmlinuz-KVER-ipfire root=ROOT rootdelay=10 panic=10 vga=791 acpi=off MOUNT
- initrd /ipfirerd-KVER.img
- savedefault 3
-title IPFire SMP/HT
- root (hd0,0)
- kernel /vmlinuz-KVER-ipfire-smp root=ROOT rootdelay=10 panic=10 MOUNT
- initrd /ipfirerd-KVER-smp.img
- savedefault 4
-title IPFire SMP/HT (vesafb 1024x768)
- root (hd0,0)
- kernel /vmlinuz-KVER-ipfire-smp root=ROOT rootdelay=10 panic=10 vga=791 MOUNT
- initrd /ipfirerd-KVER-smp.img
- savedefault 5
-title IPFire SMP/HT (acpi=off)
- root (hd0,0)
- kernel /vmlinuz-KVER-ipfire-smp root=ROOT rootdelay=10 panic=10 acpi=off MOUNT
- initrd /ipfirerd-KVER-smp.img
- savedefault 6
-title IPFire SMP/HT (vesafb 1024x768, acpi=off)
root (hd0,0)
kernel /vmlinuz-KVER-ipfire-smp root=ROOT rootdelay=10 panic=10 vga=791 acpi=off MOUNT
initrd /ipfirerd-KVER-smp.img
+ savedefault 3
+title IPFire SMP/HT disabled
+ root (hd0,0)
+ kernel /vmlinuz-KVER-ipfire root=ROOT rootdelay=10 panic=10 MOUNT
+ initrd /ipfirerd-KVER.img
+ savedefault 4
+title IPFire SMP/HT disabled (vesafb 1024x768)
+ root (hd0,0)
+ kernel /vmlinuz-KVER-ipfire root=ROOT rootdelay=10 panic=10 vga=791 MOUNT
+ initrd /ipfirerd-KVER.img
+ savedefault 5
+title IPFire SMP/HT disabled (acpi=off)
+ root (hd0,0)
+ kernel /vmlinuz-KVER-ipfire root=ROOT rootdelay=10 panic=10 acpi=off MOUNT
+ initrd /ipfirerd-KVER.img
+ savedefault 6
+title IPFire SMP/HT disabled (vesafb 1024x768, acpi=off)
+ root (hd0,0)
+ kernel /vmlinuz-KVER-ipfire root=ROOT rootdelay=10 panic=10 vga=791 acpi=off MOUNT
+ initrd /ipfirerd-KVER.img
savedefault 7
diff --git a/config/install/rc b/config/install/rc
index 00f05ca5a..48d02bb4f 100644
--- a/config/install/rc
+++ b/config/install/rc
@@ -32,11 +32,6 @@ ln -s /proc/kcore /dev/core
echo "Starting syslogd"
syslogd -O /dev/tty4
-echo "Loading scsi_mod & libata"
-/sbin/modprobe scsi_mod
-/sbin/modprobe libata
-
-sleep 1
echo "Starting udev daemon"
/sbin/udevd --daemon
/sbin/udevtrigger
@@ -47,6 +42,5 @@ for file in /dev/.udev/failed/*/uevent ; do
echo "add" >"${file}"
done 2>/dev/null
/sbin/udevsettle
-sleep 2
echo "Loading Installer..."
diff --git a/config/kernel/kernel.config.i586 b/config/kernel/kernel.config.i586
index e0ecb3e44..3746057e0 100644
--- a/config/kernel/kernel.config.i586
+++ b/config/kernel/kernel.config.i586
@@ -1,13 +1,14 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.23.17-ipfire
-# Thu Jul 17 11:24:36 2008
+# Sat Jul 19 07:10:03 2008
#
CONFIG_X86_32=y
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_SEMAPHORE_SLEEPERS=y
@@ -28,6 +29,7 @@ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
@@ -41,7 +43,7 @@ CONFIG_POSIX_MQUEUE=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
# CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT=14
+CONFIG_LOG_BUF_SHIFT=15
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
@@ -99,9 +101,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# Processor type and features
#
-CONFIG_TICK_ONESHOT=y
+# CONFIG_TICK_ONESHOT is not set
# CONFIG_NO_HZ is not set
-CONFIG_HIGH_RES_TIMERS=y
+# CONFIG_HIGH_RES_TIMERS is not set
# CONFIG_SMP is not set
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
@@ -156,12 +158,17 @@ CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_MINIMUM_CPU_FAMILY=4
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
-CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-# CONFIG_X86_UP_APIC is not set
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_BKL=y
+CONFIG_X86_UP_APIC=y
+CONFIG_X86_UP_IOAPIC=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=m
+CONFIG_X86_MCE_P4THERMAL=y
CONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
@@ -255,7 +262,7 @@ CONFIG_ACPI_CONTAINER=m
CONFIG_APM=m
CONFIG_APM_IGNORE_USER_SUSPEND=y
# CONFIG_APM_DO_ENABLE is not set
-# CONFIG_APM_CPU_IDLE is not set
+CONFIG_APM_CPU_IDLE=y
# CONFIG_APM_DISPLAY_BLANK is not set
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set
@@ -316,7 +323,9 @@ CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
-# CONFIG_ARCH_SUPPORTS_MSI is not set
+CONFIG_ARCH_SUPPORTS_MSI=y
+# CONFIG_PCI_MSI is not set
+CONFIG_HT_IRQ=y
CONFIG_ISA_DMA_API=y
CONFIG_ISA=y
CONFIG_EISA=y
@@ -881,8 +890,8 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_SX8=m
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_RAM_COUNT=8
+CONFIG_BLK_DEV_RAM_SIZE=16384
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
# CONFIG_CDROM_PKTCDVD is not set
CONFIG_ATA_OVER_ETH=m
@@ -922,7 +931,7 @@ CONFIG_IDE_PROC_FS=y
#
CONFIG_IDE_GENERIC=m
CONFIG_BLK_DEV_CMD640=y
-# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_CMD640_ENHANCED=y
CONFIG_BLK_DEV_IDEPNP=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
@@ -1234,7 +1243,7 @@ CONFIG_IEEE1394=m
#
# Controllers
#
-# CONFIG_IEEE1394_PCILYNX is not set
+CONFIG_IEEE1394_PCILYNX=m
CONFIG_IEEE1394_OHCI1394=m
#
@@ -1416,12 +1425,7 @@ CONFIG_NETXEN_NIC=m
#
# Wireless LAN
#
-CONFIG_WLAN_PRE80211=y
-CONFIG_STRIP=m
-CONFIG_ARLAN=m
-CONFIG_WAVELAN=m
-CONFIG_PCMCIA_WAVELAN=m
-CONFIG_PCMCIA_NETWAVE=m
+# CONFIG_WLAN_PRE80211 is not set
CONFIG_WLAN_80211=y
CONFIG_PCMCIA_RAYCS=m
CONFIG_IPW2100=m
@@ -1459,7 +1463,7 @@ CONFIG_HOSTAP_PLX=m
CONFIG_HOSTAP_PCI=m
CONFIG_HOSTAP_CS=m
CONFIG_BCM43XX=m
-# CONFIG_BCM43XX_DEBUG is not set
+CONFIG_BCM43XX_DEBUG=y
CONFIG_BCM43XX_DMA=y
CONFIG_BCM43XX_PIO=y
CONFIG_BCM43XX_DMA_AND_PIO_MODE=y
@@ -2041,9 +2045,112 @@ CONFIG_RADIO_ADAPTERS=y
# CONFIG_RADIO_TYPHOON is not set
# CONFIG_RADIO_ZOLTRIX is not set
# CONFIG_USB_DSBR is not set
-# CONFIG_DVB_CORE is not set
+CONFIG_DVB_CORE=m
+# CONFIG_DVB_CORE_ATTACH is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+# CONFIG_DVB_AV7110 is not set
+# CONFIG_DVB_BUDGET is not set
+# CONFIG_DVB_BUDGET_CI is not set
+# CONFIG_DVB_BUDGET_AV is not set
+
+#
+# Supported USB Adapters
+#
+# CONFIG_DVB_USB is not set
+# CONFIG_DVB_TTUSB_BUDGET is not set
+# CONFIG_DVB_TTUSB_DEC is not set
+# CONFIG_DVB_CINERGYT2 is not set
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+# CONFIG_DVB_B2C2_FLEXCOP is not set
+
+#
+# Supported BT878 Adapters
+#
+
+#
+# Supported Pluto2 Adapters
+#
+# CONFIG_DVB_PLUTO2 is not set
+
+#
+# Supported DVB Frontends
+#
+
+#
+# Customise DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+
+#
+# DVB-S (satellite) frontends
+#
+# CONFIG_DVB_STV0299 is not set
+# CONFIG_DVB_CX24110 is not set
+# CONFIG_DVB_CX24123 is not set
+# CONFIG_DVB_TDA8083 is not set
+# CONFIG_DVB_MT312 is not set
+# CONFIG_DVB_VES1X93 is not set
+# CONFIG_DVB_S5H1420 is not set
+# CONFIG_DVB_TDA10086 is not set
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+# CONFIG_DVB_L64781 is not set
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_ZL10353 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+# CONFIG_DVB_DIB7000M is not set
+# CONFIG_DVB_DIB7000P is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_VES1820 is not set
+# CONFIG_DVB_TDA10021 is not set
+# CONFIG_DVB_TDA10023 is not set
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+# CONFIG_DVB_NXT200X is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+# CONFIG_DVB_BCM3510 is not set
+# CONFIG_DVB_LGDT330X is not set
+
+#
+# Tuners/PLL support
+#
+# CONFIG_DVB_PLL is not set
+# CONFIG_DVB_TDA826X is not set
+# CONFIG_DVB_TDA827X is not set
+# CONFIG_DVB_TUNER_QT1010 is not set
+# CONFIG_DVB_TUNER_MT2060 is not set
+
+#
+# Miscellaneous devices
+#
+# CONFIG_DVB_LNBP21 is not set
+# CONFIG_DVB_ISL6421 is not set
+# CONFIG_DVB_TUA6100 is not set
CONFIG_DAB=y
-# CONFIG_USB_DABUSB is not set
+CONFIG_USB_DABUSB=m
#
# Graphics support
@@ -2070,10 +2177,10 @@ CONFIG_FB_DDC=m
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
-CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_SYS_FOPS is not set
CONFIG_FB_DEFERRED_IO=y
CONFIG_FB_SVGALIB=m
# CONFIG_FB_MACMODES is not set
@@ -2088,12 +2195,12 @@ CONFIG_FB_CIRRUS=m
CONFIG_FB_PM2=m
CONFIG_FB_PM2_FIFO_DISCONNECT=y
CONFIG_FB_CYBER2000=m
-CONFIG_FB_ARC=m
+# CONFIG_FB_ARC is not set
CONFIG_FB_ASILIANT=y
-CONFIG_FB_IMSTT=y
+# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
CONFIG_FB_VESA=y
-CONFIG_FB_HECUBA=m
+# CONFIG_FB_HECUBA is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
CONFIG_FB_NVIDIA=m
@@ -2329,7 +2436,7 @@ CONFIG_SND_VIA82XX_MODEM=m
CONFIG_SND_VX222=m
CONFIG_SND_YMFPCI=m
CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y
-# CONFIG_SND_AC97_POWER_SAVE is not set
+CONFIG_SND_AC97_POWER_SAVE=y
#
# USB devices
@@ -2448,12 +2555,52 @@ CONFIG_USB_STORAGE_KARMA=y
#
# USB port drivers
#
-# CONFIG_USB_USS720 is not set
+CONFIG_USB_USS720=m
#
# USB Serial Converter support
#
-# CONFIG_USB_SERIAL is not set
+CONFIG_USB_SERIAL=m
+# CONFIG_USB_SERIAL_GENERIC is not set
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_AIRPRIME=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP2101=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+# CONFIG_USB_SERIAL_FUNSOFT is not set
+# CONFIG_USB_SERIAL_VISOR is not set
+# CONFIG_USB_SERIAL_IPAQ is not set
+# CONFIG_USB_SERIAL_IR is not set
+CONFIG_USB_SERIAL_EDGEPORT=m
+# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
+# CONFIG_USB_SERIAL_KEYSPAN is not set
+# CONFIG_USB_SERIAL_KLSI is not set
+# CONFIG_USB_SERIAL_KOBIL_SCT is not set
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+# CONFIG_USB_SERIAL_NAVMAN is not set
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_TI=m
+# CONFIG_USB_SERIAL_CYBERJACK is not set
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+# CONFIG_USB_SERIAL_OMNINET is not set
+# CONFIG_USB_SERIAL_DEBUG is not set
+CONFIG_USB_EZUSB=y
#
# USB Miscellaneous drivers
@@ -2814,6 +2961,8 @@ CONFIG_UNUSED_SYMBOLS=y
# CONFIG_DEBUG_KERNEL is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_EARLY_PRINTK=y
+CONFIG_X86_FIND_SMP_CONFIG=y
+CONFIG_X86_MPPARSE=y
CONFIG_DOUBLEFAULT=y
#
diff --git a/config/kernel/kernel.config.i586.smp b/config/kernel/kernel.config.i586.smp
index 8dfab8500..4209afc66 100644
--- a/config/kernel/kernel.config.i586.smp
+++ b/config/kernel/kernel.config.i586.smp
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.23.17
-# Wed Jul 16 13:41:42 2008
+# Linux kernel version: 2.6.23.17-ipfire
+# Sat Jul 19 07:10:44 2008
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
@@ -42,7 +42,7 @@ CONFIG_POSIX_MQUEUE=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
# CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT=14
+CONFIG_LOG_BUF_SHIFT=15
# CONFIG_CPUSETS is not set
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
@@ -102,9 +102,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# Processor type and features
#
-CONFIG_TICK_ONESHOT=y
+# CONFIG_TICK_ONESHOT is not set
# CONFIG_NO_HZ is not set
-CONFIG_HIGH_RES_TIMERS=y
+# CONFIG_HIGH_RES_TIMERS is not set
CONFIG_SMP=y
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
@@ -268,7 +268,7 @@ CONFIG_ACPI_CONTAINER=m
CONFIG_APM=m
CONFIG_APM_IGNORE_USER_SUSPEND=y
# CONFIG_APM_DO_ENABLE is not set
-# CONFIG_APM_CPU_IDLE is not set
+CONFIG_APM_CPU_IDLE=y
# CONFIG_APM_DISPLAY_BLANK is not set
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set
@@ -895,8 +895,8 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_SX8=m
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_RAM_COUNT=8
+CONFIG_BLK_DEV_RAM_SIZE=16384
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
# CONFIG_CDROM_PKTCDVD is not set
CONFIG_ATA_OVER_ETH=m
@@ -936,7 +936,7 @@ CONFIG_IDE_PROC_FS=y
#
CONFIG_IDE_GENERIC=m
CONFIG_BLK_DEV_CMD640=y
-# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_CMD640_ENHANCED=y
CONFIG_BLK_DEV_IDEPNP=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
@@ -1247,7 +1247,7 @@ CONFIG_IEEE1394=m
#
# Controllers
#
-# CONFIG_IEEE1394_PCILYNX is not set
+CONFIG_IEEE1394_PCILYNX=m
CONFIG_IEEE1394_OHCI1394=m
#
@@ -1427,12 +1427,7 @@ CONFIG_NETXEN_NIC=m
#
# Wireless LAN
#
-CONFIG_WLAN_PRE80211=y
-CONFIG_STRIP=m
-CONFIG_ARLAN=m
-CONFIG_WAVELAN=m
-CONFIG_PCMCIA_WAVELAN=m
-CONFIG_PCMCIA_NETWAVE=m
+# CONFIG_WLAN_PRE80211 is not set
CONFIG_WLAN_80211=y
CONFIG_PCMCIA_RAYCS=m
CONFIG_IPW2100=m
@@ -1470,7 +1465,7 @@ CONFIG_HOSTAP_PLX=m
CONFIG_HOSTAP_PCI=m
CONFIG_HOSTAP_CS=m
CONFIG_BCM43XX=m
-# CONFIG_BCM43XX_DEBUG is not set
+CONFIG_BCM43XX_DEBUG=y
CONFIG_BCM43XX_DMA=y
CONFIG_BCM43XX_PIO=y
CONFIG_BCM43XX_DMA_AND_PIO_MODE=y
@@ -2051,9 +2046,112 @@ CONFIG_RADIO_ADAPTERS=y
# CONFIG_RADIO_TYPHOON is not set
# CONFIG_RADIO_ZOLTRIX is not set
# CONFIG_USB_DSBR is not set
-# CONFIG_DVB_CORE is not set
+CONFIG_DVB_CORE=m
+# CONFIG_DVB_CORE_ATTACH is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+# CONFIG_DVB_AV7110 is not set
+# CONFIG_DVB_BUDGET is not set
+# CONFIG_DVB_BUDGET_CI is not set
+# CONFIG_DVB_BUDGET_AV is not set
+
+#
+# Supported USB Adapters
+#
+# CONFIG_DVB_USB is not set
+# CONFIG_DVB_TTUSB_BUDGET is not set
+# CONFIG_DVB_TTUSB_DEC is not set
+# CONFIG_DVB_CINERGYT2 is not set
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+# CONFIG_DVB_B2C2_FLEXCOP is not set
+
+#
+# Supported BT878 Adapters
+#
+
+#
+# Supported Pluto2 Adapters
+#
+# CONFIG_DVB_PLUTO2 is not set
+
+#
+# Supported DVB Frontends
+#
+
+#
+# Customise DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+
+#
+# DVB-S (satellite) frontends
+#
+# CONFIG_DVB_STV0299 is not set
+# CONFIG_DVB_CX24110 is not set
+# CONFIG_DVB_CX24123 is not set
+# CONFIG_DVB_TDA8083 is not set
+# CONFIG_DVB_MT312 is not set
+# CONFIG_DVB_VES1X93 is not set
+# CONFIG_DVB_S5H1420 is not set
+# CONFIG_DVB_TDA10086 is not set
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+# CONFIG_DVB_L64781 is not set
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_ZL10353 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+# CONFIG_DVB_DIB7000M is not set
+# CONFIG_DVB_DIB7000P is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_VES1820 is not set
+# CONFIG_DVB_TDA10021 is not set
+# CONFIG_DVB_TDA10023 is not set
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+# CONFIG_DVB_NXT200X is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+# CONFIG_DVB_BCM3510 is not set
+# CONFIG_DVB_LGDT330X is not set
+
+#
+# Tuners/PLL support
+#
+# CONFIG_DVB_PLL is not set
+# CONFIG_DVB_TDA826X is not set
+# CONFIG_DVB_TDA827X is not set
+# CONFIG_DVB_TUNER_QT1010 is not set
+# CONFIG_DVB_TUNER_MT2060 is not set
+
+#
+# Miscellaneous devices
+#
+# CONFIG_DVB_LNBP21 is not set
+# CONFIG_DVB_ISL6421 is not set
+# CONFIG_DVB_TUA6100 is not set
CONFIG_DAB=y
-# CONFIG_USB_DABUSB is not set
+CONFIG_USB_DABUSB=m
#
# Graphics support
@@ -2080,10 +2178,10 @@ CONFIG_FB_DDC=m
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
-CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_SYS_FOPS is not set
CONFIG_FB_DEFERRED_IO=y
CONFIG_FB_SVGALIB=m
# CONFIG_FB_MACMODES is not set
@@ -2098,12 +2196,12 @@ CONFIG_FB_CIRRUS=m
CONFIG_FB_PM2=m
CONFIG_FB_PM2_FIFO_DISCONNECT=y
CONFIG_FB_CYBER2000=m
-CONFIG_FB_ARC=m
+# CONFIG_FB_ARC is not set
CONFIG_FB_ASILIANT=y
-CONFIG_FB_IMSTT=y
+# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
CONFIG_FB_VESA=y
-CONFIG_FB_HECUBA=m
+# CONFIG_FB_HECUBA is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
CONFIG_FB_NVIDIA=m
@@ -2339,7 +2437,7 @@ CONFIG_SND_VIA82XX_MODEM=m
CONFIG_SND_VX222=m
CONFIG_SND_YMFPCI=m
CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y
-# CONFIG_SND_AC97_POWER_SAVE is not set
+CONFIG_SND_AC97_POWER_SAVE=y
#
# USB devices
@@ -2458,12 +2556,52 @@ CONFIG_USB_STORAGE_KARMA=y
#
# USB port drivers
#
-# CONFIG_USB_USS720 is not set
+CONFIG_USB_USS720=m
#
# USB Serial Converter support
#
-# CONFIG_USB_SERIAL is not set
+CONFIG_USB_SERIAL=m
+# CONFIG_USB_SERIAL_GENERIC is not set
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_AIRPRIME=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP2101=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+# CONFIG_USB_SERIAL_FUNSOFT is not set
+# CONFIG_USB_SERIAL_VISOR is not set
+# CONFIG_USB_SERIAL_IPAQ is not set
+# CONFIG_USB_SERIAL_IR is not set
+CONFIG_USB_SERIAL_EDGEPORT=m
+# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
+# CONFIG_USB_SERIAL_KEYSPAN is not set
+# CONFIG_USB_SERIAL_KLSI is not set
+# CONFIG_USB_SERIAL_KOBIL_SCT is not set
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+# CONFIG_USB_SERIAL_NAVMAN is not set
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_TI=m
+# CONFIG_USB_SERIAL_CYBERJACK is not set
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+# CONFIG_USB_SERIAL_OMNINET is not set
+# CONFIG_USB_SERIAL_DEBUG is not set
+CONFIG_USB_EZUSB=y
#
# USB Miscellaneous drivers
diff --git a/config/rootfiles/cdrom_corever b/config/rootfiles/cdrom_corever
index 60d3b2f4a..b5794c5ec 100644
--- a/config/rootfiles/cdrom_corever
+++ b/config/rootfiles/cdrom_corever
@@ -1 +1,2 @@
-15
+16
+
diff --git a/config/rootfiles/common/initscripts b/config/rootfiles/common/initscripts
index 1b4e0e077..836f26dc2 100644
--- a/config/rootfiles/common/initscripts
+++ b/config/rootfiles/common/initscripts
@@ -9,6 +9,7 @@ etc/rc.d/init.d/apache
#etc/rc.d/init.d/applejuice
etc/rc.d/init.d/beep
etc/rc.d/init.d/checkfs
+etc/rc.d/init.d/checkfstab
#etc/rc.d/init.d/clamav
etc/rc.d/init.d/cleanfs
etc/rc.d/init.d/connectd
@@ -123,6 +124,7 @@ etc/rc.d/rc6.d/S99reboot
etc/rc.d/rcsysinit.d/S00mountkernfs
etc/rc.d/rcsysinit.d/S05modules
etc/rc.d/rcsysinit.d/S10udev
+etc/rc.d/rcsysinit.d/S19checkfstab
etc/rc.d/rcsysinit.d/S20swap
etc/rc.d/rcsysinit.d/S30checkfs
etc/rc.d/rcsysinit.d/S40mountfs
diff --git a/config/rootfiles/common/wireless b/config/rootfiles/common/wireless
index 25f9bdd0f..70d20fb8d 100644
--- a/config/rootfiles/common/wireless
+++ b/config/rootfiles/common/wireless
@@ -1,7 +1,7 @@
#usr/include/iwlib.h
#usr/include/wireless.h
-usr/lib/libiw.so
-usr/lib/libiw.so.28
+#usr/lib/libiw.so
+#usr/lib/libiw.so.28
#usr/man/man5/iftab.5
#usr/man/man7/wireless.7
#usr/man/man8/ifrename.8
diff --git a/config/rootfiles/core/15/files b/config/rootfiles/core/15/files
new file mode 100644
index 000000000..52198eb0f
--- /dev/null
+++ b/config/rootfiles/core/15/files
@@ -0,0 +1 @@
+usr/sbin/dnsmasq
diff --git a/config/rootfiles/core/16/meta b/config/rootfiles/core/15/meta
similarity index 100%
rename from config/rootfiles/core/16/meta
rename to config/rootfiles/core/15/meta
diff --git a/config/rootfiles/core/16/update.sh b/config/rootfiles/core/15/update.sh
similarity index 100%
rename from config/rootfiles/core/16/update.sh
rename to config/rootfiles/core/15/update.sh
diff --git a/config/rootfiles/core/16/files b/config/rootfiles/core/16/files
deleted file mode 100644
index e69de29bb..000000000
diff --git a/config/rootfiles/updater/filelists/core15 b/config/rootfiles/updater/filelists/core16
similarity index 90%
rename from config/rootfiles/updater/filelists/core15
rename to config/rootfiles/updater/filelists/core16
index 8fdea808d..45a716ba5 100644
--- a/config/rootfiles/updater/filelists/core15
+++ b/config/rootfiles/updater/filelists/core16
@@ -20,3 +20,5 @@ bin/ntfs-3g
lib/libntfs-3g.so
lib/libntfs-3g.so.31
lib/libntfs-3g.so.31.0.0
+etc/rc.d/init.d/checkfstab
+etc/rc.d/rcsysinit.d/S19checkfstab
diff --git a/config/rootfiles/updater/filelists/dnsmasq b/config/rootfiles/updater/filelists/dnsmasq
new file mode 100644
index 000000000..1e900122d
--- /dev/null
+++ b/config/rootfiles/updater/filelists/dnsmasq
@@ -0,0 +1,2 @@
+usr/sbin/dnsmasq
+#usr/share/man/man8/dnsmasq.8
diff --git a/config/rootfiles/updater/filelists/hwdata b/config/rootfiles/updater/filelists/hwdata
new file mode 100644
index 000000000..30d51a2d0
--- /dev/null
+++ b/config/rootfiles/updater/filelists/hwdata
@@ -0,0 +1,2 @@
+usr/share/hwdata/usb.ids
+usr/share/hwdata/pci.ids
diff --git a/config/rootfiles/updater/filelists/klibc b/config/rootfiles/updater/filelists/klibc
deleted file mode 100644
index 1b56fc93d..000000000
--- a/config/rootfiles/updater/filelists/klibc
+++ /dev/null
@@ -1,1572 +0,0 @@
-lib/klibc-OAjdpFbBkEGH4SoDC_yBoygNI8g.so
-usr/bin/klcc
-#usr/lib/klibc
-#usr/lib/klibc/bin
-usr/lib/klibc/bin/cat
-usr/lib/klibc/bin/chroot
-usr/lib/klibc/bin/cpio
-usr/lib/klibc/bin/dd
-usr/lib/klibc/bin/false
-usr/lib/klibc/bin/fstype
-usr/lib/klibc/bin/gunzip
-usr/lib/klibc/bin/gzip
-usr/lib/klibc/bin/halt
-usr/lib/klibc/bin/insmod
-usr/lib/klibc/bin/ipconfig
-usr/lib/klibc/bin/kill
-usr/lib/klibc/bin/kinit
-usr/lib/klibc/bin/kinit.shared
-usr/lib/klibc/bin/ln
-usr/lib/klibc/bin/losetup
-usr/lib/klibc/bin/mdassemble
-usr/lib/klibc/bin/minips
-usr/lib/klibc/bin/mkdir
-usr/lib/klibc/bin/mkfifo
-usr/lib/klibc/bin/mknod
-usr/lib/klibc/bin/moddeps
-usr/lib/klibc/bin/modprobe
-usr/lib/klibc/bin/mount
-usr/lib/klibc/bin/nfsmount
-usr/lib/klibc/bin/nuke
-usr/lib/klibc/bin/parseblock
-usr/lib/klibc/bin/pivot_root
-usr/lib/klibc/bin/poweroff
-usr/lib/klibc/bin/readlink
-usr/lib/klibc/bin/reboot
-usr/lib/klibc/bin/replace
-usr/lib/klibc/bin/resume
-usr/lib/klibc/bin/run-init
-usr/lib/klibc/bin/sh
-usr/lib/klibc/bin/sh.shared
-usr/lib/klibc/bin/sleep
-usr/lib/klibc/bin/true
-usr/lib/klibc/bin/umount
-usr/lib/klibc/bin/uname
-usr/lib/klibc/bin/zcat
-#usr/lib/klibc/include
-#usr/lib/klibc/include/Kbuild
-#usr/lib/klibc/include/alloca.h
-#usr/lib/klibc/include/arch
-#usr/lib/klibc/include/arch/alpha
-#usr/lib/klibc/include/arch/alpha/klibc
-#usr/lib/klibc/include/arch/alpha/klibc/archconfig.h
-#usr/lib/klibc/include/arch/alpha/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/alpha/klibc/archsignal.h
-#usr/lib/klibc/include/arch/alpha/klibc/archstat.h
-#usr/lib/klibc/include/arch/alpha/machine
-#usr/lib/klibc/include/arch/alpha/machine/asm.h
-#usr/lib/klibc/include/arch/arm
-#usr/lib/klibc/include/arch/arm/klibc
-#usr/lib/klibc/include/arch/arm/klibc/archconfig.h
-#usr/lib/klibc/include/arch/arm/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/arm/klibc/archsignal.h
-#usr/lib/klibc/include/arch/arm/klibc/archstat.h
-#usr/lib/klibc/include/arch/arm/klibc/asmmacros.h
-#usr/lib/klibc/include/arch/cris
-#usr/lib/klibc/include/arch/cris/klibc
-#usr/lib/klibc/include/arch/cris/klibc/archconfig.h
-#usr/lib/klibc/include/arch/cris/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/cris/klibc/archsignal.h
-#usr/lib/klibc/include/arch/cris/klibc/archstat.h
-#usr/lib/klibc/include/arch/i386
-#usr/lib/klibc/include/arch/i386/klibc
-#usr/lib/klibc/include/arch/i386/klibc/archconfig.h
-#usr/lib/klibc/include/arch/i386/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/i386/klibc/archsignal.h
-#usr/lib/klibc/include/arch/i386/klibc/archstat.h
-#usr/lib/klibc/include/arch/i386/klibc/diverr.h
-#usr/lib/klibc/include/arch/i386/sys
-#usr/lib/klibc/include/arch/i386/sys/io.h
-#usr/lib/klibc/include/arch/i386/sys/vm86.h
-#usr/lib/klibc/include/arch/ia64
-#usr/lib/klibc/include/arch/ia64/klibc
-#usr/lib/klibc/include/arch/ia64/klibc/archconfig.h
-#usr/lib/klibc/include/arch/ia64/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/ia64/klibc/archsignal.h
-#usr/lib/klibc/include/arch/ia64/klibc/archstat.h
-#usr/lib/klibc/include/arch/ia64/klibc/archsys.h
-#usr/lib/klibc/include/arch/m32r
-#usr/lib/klibc/include/arch/m32r/klibc
-#usr/lib/klibc/include/arch/m32r/klibc/archconfig.h
-#usr/lib/klibc/include/arch/m32r/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/m32r/klibc/archsignal.h
-#usr/lib/klibc/include/arch/m32r/klibc/archstat.h
-#usr/lib/klibc/include/arch/m68k
-#usr/lib/klibc/include/arch/m68k/klibc
-#usr/lib/klibc/include/arch/m68k/klibc/archconfig.h
-#usr/lib/klibc/include/arch/m68k/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/m68k/klibc/archsignal.h
-#usr/lib/klibc/include/arch/m68k/klibc/archstat.h
-#usr/lib/klibc/include/arch/mips
-#usr/lib/klibc/include/arch/mips/klibc
-#usr/lib/klibc/include/arch/mips/klibc/archconfig.h
-#usr/lib/klibc/include/arch/mips/klibc/archfcntl.h
-#usr/lib/klibc/include/arch/mips/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/mips/klibc/archsignal.h
-#usr/lib/klibc/include/arch/mips/klibc/archsocket.h
-#usr/lib/klibc/include/arch/mips/klibc/archstat.h
-#usr/lib/klibc/include/arch/mips/machine
-#usr/lib/klibc/include/arch/mips/machine/asm.h
-#usr/lib/klibc/include/arch/mips/sgidefs.h
-#usr/lib/klibc/include/arch/mips/spaces.h
-#usr/lib/klibc/include/arch/mips64
-#usr/lib/klibc/include/arch/mips64/klibc
-#usr/lib/klibc/include/arch/mips64/klibc/archconfig.h
-#usr/lib/klibc/include/arch/mips64/klibc/archsignal.h
-#usr/lib/klibc/include/arch/mips64/klibc/archsocket.h
-#usr/lib/klibc/include/arch/mips64/klibc/archstat.h
-#usr/lib/klibc/include/arch/parisc
-#usr/lib/klibc/include/arch/parisc/klibc
-#usr/lib/klibc/include/arch/parisc/klibc/archconfig.h
-#usr/lib/klibc/include/arch/parisc/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/parisc/klibc/archsignal.h
-#usr/lib/klibc/include/arch/parisc/klibc/archstat.h
-#usr/lib/klibc/include/arch/ppc
-#usr/lib/klibc/include/arch/ppc/klibc
-#usr/lib/klibc/include/arch/ppc/klibc/archconfig.h
-#usr/lib/klibc/include/arch/ppc/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/ppc/klibc/archsignal.h
-#usr/lib/klibc/include/arch/ppc/klibc/archstat.h
-#usr/lib/klibc/include/arch/ppc64
-#usr/lib/klibc/include/arch/ppc64/klibc
-#usr/lib/klibc/include/arch/ppc64/klibc/archconfig.h
-#usr/lib/klibc/include/arch/ppc64/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/ppc64/klibc/archsignal.h
-#usr/lib/klibc/include/arch/ppc64/klibc/archstat.h
-#usr/lib/klibc/include/arch/s390
-#usr/lib/klibc/include/arch/s390/klibc
-#usr/lib/klibc/include/arch/s390/klibc/archconfig.h
-#usr/lib/klibc/include/arch/s390/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/s390/klibc/archsignal.h
-#usr/lib/klibc/include/arch/s390/klibc/archstat.h
-#usr/lib/klibc/include/arch/sh
-#usr/lib/klibc/include/arch/sh/klibc
-#usr/lib/klibc/include/arch/sh/klibc/archconfig.h
-#usr/lib/klibc/include/arch/sh/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/sh/klibc/archsignal.h
-#usr/lib/klibc/include/arch/sh/klibc/archstat.h
-#usr/lib/klibc/include/arch/sparc
-#usr/lib/klibc/include/arch/sparc/klibc
-#usr/lib/klibc/include/arch/sparc/klibc/archconfig.h
-#usr/lib/klibc/include/arch/sparc/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/sparc/klibc/archsignal.h
-#usr/lib/klibc/include/arch/sparc/klibc/archstat.h
-#usr/lib/klibc/include/arch/sparc/machine
-#usr/lib/klibc/include/arch/sparc/machine/asm.h
-#usr/lib/klibc/include/arch/sparc/machine/frame.h
-#usr/lib/klibc/include/arch/sparc/machine/trap.h
-#usr/lib/klibc/include/arch/sparc64
-#usr/lib/klibc/include/arch/sparc64/klibc
-#usr/lib/klibc/include/arch/sparc64/klibc/archconfig.h
-#usr/lib/klibc/include/arch/sparc64/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/sparc64/klibc/archsignal.h
-#usr/lib/klibc/include/arch/sparc64/klibc/archstat.h
-#usr/lib/klibc/include/arch/x86_64
-#usr/lib/klibc/include/arch/x86_64/klibc
-#usr/lib/klibc/include/arch/x86_64/klibc/archconfig.h
-#usr/lib/klibc/include/arch/x86_64/klibc/archsetjmp.h
-#usr/lib/klibc/include/arch/x86_64/klibc/archsignal.h
-#usr/lib/klibc/include/arch/x86_64/klibc/archstat.h
-#usr/lib/klibc/include/arch/x86_64/sys
-#usr/lib/klibc/include/arch/x86_64/sys/io.h
-#usr/lib/klibc/include/arpa
-#usr/lib/klibc/include/arpa/inet.h
-#usr/lib/klibc/include/asm
-#usr/lib/klibc/include/asm-generic
-#usr/lib/klibc/include/asm-generic/4level-fixup.h
-#usr/lib/klibc/include/asm-generic/atomic.h
-#usr/lib/klibc/include/asm-generic/bitops.h
-#usr/lib/klibc/include/asm-generic/bug.h
-#usr/lib/klibc/include/asm-generic/cputime.h
-#usr/lib/klibc/include/asm-generic/div64.h
-#usr/lib/klibc/include/asm-generic/dma-mapping-broken.h
-#usr/lib/klibc/include/asm-generic/dma-mapping.h
-#usr/lib/klibc/include/asm-generic/emergency-restart.h
-#usr/lib/klibc/include/asm-generic/errno-base.h
-#usr/lib/klibc/include/asm-generic/errno.h
-#usr/lib/klibc/include/asm-generic/fcntl.h
-#usr/lib/klibc/include/asm-generic/futex.h
-#usr/lib/klibc/include/asm-generic/ide_iops.h
-#usr/lib/klibc/include/asm-generic/ioctl.h
-#usr/lib/klibc/include/asm-generic/iomap.h
-#usr/lib/klibc/include/asm-generic/ipc.h
-#usr/lib/klibc/include/asm-generic/local.h
-#usr/lib/klibc/include/asm-generic/mman.h
-#usr/lib/klibc/include/asm-generic/mutex-dec.h
-#usr/lib/klibc/include/asm-generic/mutex-null.h
-#usr/lib/klibc/include/asm-generic/mutex-xchg.h
-#usr/lib/klibc/include/asm-generic/page.h
-#usr/lib/klibc/include/asm-generic/pci-dma-compat.h
-#usr/lib/klibc/include/asm-generic/pci.h
-#usr/lib/klibc/include/asm-generic/percpu.h
-#usr/lib/klibc/include/asm-generic/pgtable-nopmd.h
-#usr/lib/klibc/include/asm-generic/pgtable-nopud.h
-#usr/lib/klibc/include/asm-generic/pgtable.h
-#usr/lib/klibc/include/asm-generic/resource.h
-#usr/lib/klibc/include/asm-generic/rtc.h
-#usr/lib/klibc/include/asm-generic/sections.h
-#usr/lib/klibc/include/asm-generic/siginfo.h
-#usr/lib/klibc/include/asm-generic/signal.h
-#usr/lib/klibc/include/asm-generic/statfs.h
-#usr/lib/klibc/include/asm-generic/termios.h
-#usr/lib/klibc/include/asm-generic/tlb.h
-#usr/lib/klibc/include/asm-generic/topology.h
-#usr/lib/klibc/include/asm-generic/uaccess.h
-#usr/lib/klibc/include/asm-generic/unaligned.h
-#usr/lib/klibc/include/asm-generic/vmlinux.lds.h
-#usr/lib/klibc/include/asm-generic/xor.h
-#usr/lib/klibc/include/asm-i386
-#usr/lib/klibc/include/asm-i386/8253pit.h
-#usr/lib/klibc/include/asm-i386/a.out.h
-#usr/lib/klibc/include/asm-i386/acpi.h
-#usr/lib/klibc/include/asm-i386/agp.h
-#usr/lib/klibc/include/asm-i386/apic.h
-#usr/lib/klibc/include/asm-i386/apicdef.h
-#usr/lib/klibc/include/asm-i386/arch_hooks.h
-#usr/lib/klibc/include/asm-i386/asm-offsets.h
-#usr/lib/klibc/include/asm-i386/atomic.h
-#usr/lib/klibc/include/asm-i386/auxvec.h
-#usr/lib/klibc/include/asm-i386/bitops.h
-#usr/lib/klibc/include/asm-i386/boot.h
-#usr/lib/klibc/include/asm-i386/bug.h
-#usr/lib/klibc/include/asm-i386/bugs.h
-#usr/lib/klibc/include/asm-i386/byteorder.h
-#usr/lib/klibc/include/asm-i386/cache.h
-#usr/lib/klibc/include/asm-i386/cacheflush.h
-#usr/lib/klibc/include/asm-i386/checksum.h
-#usr/lib/klibc/include/asm-i386/cpu.h
-#usr/lib/klibc/include/asm-i386/cpufeature.h
-#usr/lib/klibc/include/asm-i386/cputime.h
-#usr/lib/klibc/include/asm-i386/current.h
-#usr/lib/klibc/include/asm-i386/debugreg.h
-#usr/lib/klibc/include/asm-i386/delay.h
-#usr/lib/klibc/include/asm-i386/desc.h
-#usr/lib/klibc/include/asm-i386/div64.h
-#usr/lib/klibc/include/asm-i386/dma-mapping.h
-#usr/lib/klibc/include/asm-i386/dma.h
-#usr/lib/klibc/include/asm-i386/e820.h
-#usr/lib/klibc/include/asm-i386/edac.h
-#usr/lib/klibc/include/asm-i386/elf.h
-#usr/lib/klibc/include/asm-i386/emergency-restart.h
-#usr/lib/klibc/include/asm-i386/errno.h
-#usr/lib/klibc/include/asm-i386/fcntl.h
-#usr/lib/klibc/include/asm-i386/fixmap.h
-#usr/lib/klibc/include/asm-i386/floppy.h
-#usr/lib/klibc/include/asm-i386/futex.h
-#usr/lib/klibc/include/asm-i386/genapic.h
-#usr/lib/klibc/include/asm-i386/hardirq.h
-#usr/lib/klibc/include/asm-i386/highmem.h
-#usr/lib/klibc/include/asm-i386/hpet.h
-#usr/lib/klibc/include/asm-i386/hw_irq.h
-#usr/lib/klibc/include/asm-i386/i387.h
-#usr/lib/klibc/include/asm-i386/i8253.h
-#usr/lib/klibc/include/asm-i386/i8259.h
-#usr/lib/klibc/include/asm-i386/ide.h
-#usr/lib/klibc/include/asm-i386/io.h
-#usr/lib/klibc/include/asm-i386/io_apic.h
-#usr/lib/klibc/include/asm-i386/ioctl.h
-#usr/lib/klibc/include/asm-i386/ioctls.h
-#usr/lib/klibc/include/asm-i386/ipc.h
-#usr/lib/klibc/include/asm-i386/ipcbuf.h
-#usr/lib/klibc/include/asm-i386/irq.h
-#usr/lib/klibc/include/asm-i386/ist.h
-#usr/lib/klibc/include/asm-i386/kdebug.h
-#usr/lib/klibc/include/asm-i386/kexec.h
-#usr/lib/klibc/include/asm-i386/kmap_types.h
-#usr/lib/klibc/include/asm-i386/kprobes.h
-#usr/lib/klibc/include/asm-i386/ldt.h
-#usr/lib/klibc/include/asm-i386/linkage.h
-#usr/lib/klibc/include/asm-i386/local.h
-#usr/lib/klibc/include/asm-i386/mach-bigsmp
-#usr/lib/klibc/include/asm-i386/mach-bigsmp/mach_apic.h
-#usr/lib/klibc/include/asm-i386/mach-bigsmp/mach_apicdef.h
-#usr/lib/klibc/include/asm-i386/mach-bigsmp/mach_ipi.h
-#usr/lib/klibc/include/asm-i386/mach-bigsmp/mach_mpspec.h
-#usr/lib/klibc/include/asm-i386/mach-default
-#usr/lib/klibc/include/asm-i386/mach-default/apm.h
-#usr/lib/klibc/include/asm-i386/mach-default/bios_ebda.h
-#usr/lib/klibc/include/asm-i386/mach-default/do_timer.h
-#usr/lib/klibc/include/asm-i386/mach-default/entry_arch.h
-#usr/lib/klibc/include/asm-i386/mach-default/io_ports.h
-#usr/lib/klibc/include/asm-i386/mach-default/irq_vectors.h
-#usr/lib/klibc/include/asm-i386/mach-default/irq_vectors_limits.h
-#usr/lib/klibc/include/asm-i386/mach-default/mach_apic.h
-#usr/lib/klibc/include/asm-i386/mach-default/mach_apicdef.h
-#usr/lib/klibc/include/asm-i386/mach-default/mach_ipi.h
-#usr/lib/klibc/include/asm-i386/mach-default/mach_mpparse.h
-#usr/lib/klibc/include/asm-i386/mach-default/mach_mpspec.h
-#usr/lib/klibc/include/asm-i386/mach-default/mach_reboot.h
-#usr/lib/klibc/include/asm-i386/mach-default/mach_time.h
-#usr/lib/klibc/include/asm-i386/mach-default/mach_timer.h
-#usr/lib/klibc/include/asm-i386/mach-default/mach_traps.h
-#usr/lib/klibc/include/asm-i386/mach-default/mach_wakecpu.h
-#usr/lib/klibc/include/asm-i386/mach-default/pci-functions.h
-#usr/lib/klibc/include/asm-i386/mach-default/setup_arch_post.h
-#usr/lib/klibc/include/asm-i386/mach-default/setup_arch_pre.h
-#usr/lib/klibc/include/asm-i386/mach-default/smpboot_hooks.h
-#usr/lib/klibc/include/asm-i386/mach-es7000
-#usr/lib/klibc/include/asm-i386/mach-es7000/mach_apic.h
-#usr/lib/klibc/include/asm-i386/mach-es7000/mach_apicdef.h
-#usr/lib/klibc/include/asm-i386/mach-es7000/mach_ipi.h
-#usr/lib/klibc/include/asm-i386/mach-es7000/mach_mpparse.h
-#usr/lib/klibc/include/asm-i386/mach-es7000/mach_mpspec.h
-#usr/lib/klibc/include/asm-i386/mach-es7000/mach_wakecpu.h
-#usr/lib/klibc/include/asm-i386/mach-generic
-#usr/lib/klibc/include/asm-i386/mach-generic/irq_vectors_limits.h
-#usr/lib/klibc/include/asm-i386/mach-generic/mach_apic.h
-#usr/lib/klibc/include/asm-i386/mach-generic/mach_apicdef.h
-#usr/lib/klibc/include/asm-i386/mach-generic/mach_ipi.h
-#usr/lib/klibc/include/asm-i386/mach-generic/mach_mpparse.h
-#usr/lib/klibc/include/asm-i386/mach-generic/mach_mpspec.h
-#usr/lib/klibc/include/asm-i386/mach-numaq
-#usr/lib/klibc/include/asm-i386/mach-numaq/mach_apic.h
-#usr/lib/klibc/include/asm-i386/mach-numaq/mach_apicdef.h
-#usr/lib/klibc/include/asm-i386/mach-numaq/mach_ipi.h
-#usr/lib/klibc/include/asm-i386/mach-numaq/mach_mpparse.h
-#usr/lib/klibc/include/asm-i386/mach-numaq/mach_mpspec.h
-#usr/lib/klibc/include/asm-i386/mach-numaq/mach_wakecpu.h
-#usr/lib/klibc/include/asm-i386/mach-summit
-#usr/lib/klibc/include/asm-i386/mach-summit/irq_vectors_limits.h
-#usr/lib/klibc/include/asm-i386/mach-summit/mach_apic.h
-#usr/lib/klibc/include/asm-i386/mach-summit/mach_apicdef.h
-#usr/lib/klibc/include/asm-i386/mach-summit/mach_ipi.h
-#usr/lib/klibc/include/asm-i386/mach-summit/mach_mpparse.h
-#usr/lib/klibc/include/asm-i386/mach-summit/mach_mpspec.h
-#usr/lib/klibc/include/asm-i386/mach-visws
-#usr/lib/klibc/include/asm-i386/mach-visws/cobalt.h
-#usr/lib/klibc/include/asm-i386/mach-visws/do_timer.h
-#usr/lib/klibc/include/asm-i386/mach-visws/entry_arch.h
-#usr/lib/klibc/include/asm-i386/mach-visws/irq_vectors.h
-#usr/lib/klibc/include/asm-i386/mach-visws/lithium.h
-#usr/lib/klibc/include/asm-i386/mach-visws/mach_apic.h
-#usr/lib/klibc/include/asm-i386/mach-visws/mach_apicdef.h
-#usr/lib/klibc/include/asm-i386/mach-visws/piix4.h
-#usr/lib/klibc/include/asm-i386/mach-visws/setup_arch_post.h
-#usr/lib/klibc/include/asm-i386/mach-visws/setup_arch_pre.h
-#usr/lib/klibc/include/asm-i386/mach-visws/smpboot_hooks.h
-#usr/lib/klibc/include/asm-i386/mach-voyager
-#usr/lib/klibc/include/asm-i386/mach-voyager/do_timer.h
-#usr/lib/klibc/include/asm-i386/mach-voyager/entry_arch.h
-#usr/lib/klibc/include/asm-i386/mach-voyager/irq_vectors.h
-#usr/lib/klibc/include/asm-i386/mach-voyager/setup_arch_post.h
-#usr/lib/klibc/include/asm-i386/mach-voyager/setup_arch_pre.h
-#usr/lib/klibc/include/asm-i386/math_emu.h
-#usr/lib/klibc/include/asm-i386/mc146818rtc.h
-#usr/lib/klibc/include/asm-i386/mca.h
-#usr/lib/klibc/include/asm-i386/mca_dma.h
-#usr/lib/klibc/include/asm-i386/mman.h
-#usr/lib/klibc/include/asm-i386/mmu.h
-#usr/lib/klibc/include/asm-i386/mmu_context.h
-#usr/lib/klibc/include/asm-i386/mmx.h
-#usr/lib/klibc/include/asm-i386/mmzone.h
-#usr/lib/klibc/include/asm-i386/module.h
-#usr/lib/klibc/include/asm-i386/mpspec.h
-#usr/lib/klibc/include/asm-i386/mpspec_def.h
-#usr/lib/klibc/include/asm-i386/msgbuf.h
-#usr/lib/klibc/include/asm-i386/msi.h
-#usr/lib/klibc/include/asm-i386/msr.h
-#usr/lib/klibc/include/asm-i386/mtrr.h
-#usr/lib/klibc/include/asm-i386/mutex.h
-#usr/lib/klibc/include/asm-i386/namei.h
-#usr/lib/klibc/include/asm-i386/nmi.h
-#usr/lib/klibc/include/asm-i386/node.h
-#usr/lib/klibc/include/asm-i386/numa.h
-#usr/lib/klibc/include/asm-i386/numaq.h
-#usr/lib/klibc/include/asm-i386/numnodes.h
-#usr/lib/klibc/include/asm-i386/page.h
-#usr/lib/klibc/include/asm-i386/param.h
-#usr/lib/klibc/include/asm-i386/parport.h
-#usr/lib/klibc/include/asm-i386/pci-direct.h
-#usr/lib/klibc/include/asm-i386/pci.h
-#usr/lib/klibc/include/asm-i386/percpu.h
-#usr/lib/klibc/include/asm-i386/pgalloc.h
-#usr/lib/klibc/include/asm-i386/pgtable-2level-defs.h
-#usr/lib/klibc/include/asm-i386/pgtable-2level.h
-#usr/lib/klibc/include/asm-i386/pgtable-3level-defs.h
-#usr/lib/klibc/include/asm-i386/pgtable-3level.h
-#usr/lib/klibc/include/asm-i386/pgtable.h
-#usr/lib/klibc/include/asm-i386/poll.h
-#usr/lib/klibc/include/asm-i386/posix_types.h
-#usr/lib/klibc/include/asm-i386/processor.h
-#usr/lib/klibc/include/asm-i386/ptrace.h
-#usr/lib/klibc/include/asm-i386/resource.h
-#usr/lib/klibc/include/asm-i386/rtc.h
-#usr/lib/klibc/include/asm-i386/rwlock.h
-#usr/lib/klibc/include/asm-i386/rwsem.h
-#usr/lib/klibc/include/asm-i386/scatterlist.h
-#usr/lib/klibc/include/asm-i386/seccomp.h
-#usr/lib/klibc/include/asm-i386/sections.h
-#usr/lib/klibc/include/asm-i386/segment.h
-#usr/lib/klibc/include/asm-i386/semaphore.h
-#usr/lib/klibc/include/asm-i386/sembuf.h
-#usr/lib/klibc/include/asm-i386/serial.h
-#usr/lib/klibc/include/asm-i386/setup.h
-#usr/lib/klibc/include/asm-i386/shmbuf.h
-#usr/lib/klibc/include/asm-i386/shmparam.h
-#usr/lib/klibc/include/asm-i386/sigcontext.h
-#usr/lib/klibc/include/asm-i386/siginfo.h
-#usr/lib/klibc/include/asm-i386/signal.h
-#usr/lib/klibc/include/asm-i386/smp.h
-#usr/lib/klibc/include/asm-i386/socket.h
-#usr/lib/klibc/include/asm-i386/sockios.h
-#usr/lib/klibc/include/asm-i386/sparsemem.h
-#usr/lib/klibc/include/asm-i386/spinlock.h
-#usr/lib/klibc/include/asm-i386/spinlock_types.h
-#usr/lib/klibc/include/asm-i386/srat.h
-#usr/lib/klibc/include/asm-i386/stat.h
-#usr/lib/klibc/include/asm-i386/statfs.h
-#usr/lib/klibc/include/asm-i386/string.h
-#usr/lib/klibc/include/asm-i386/suspend.h
-#usr/lib/klibc/include/asm-i386/system.h
-#usr/lib/klibc/include/asm-i386/termbits.h
-#usr/lib/klibc/include/asm-i386/termios.h
-#usr/lib/klibc/include/asm-i386/thread_info.h
-#usr/lib/klibc/include/asm-i386/timer.h
-#usr/lib/klibc/include/asm-i386/timex.h
-#usr/lib/klibc/include/asm-i386/tlb.h
-#usr/lib/klibc/include/asm-i386/tlbflush.h
-#usr/lib/klibc/include/asm-i386/topology.h
-#usr/lib/klibc/include/asm-i386/types.h
-#usr/lib/klibc/include/asm-i386/uaccess.h
-#usr/lib/klibc/include/asm-i386/ucontext.h
-#usr/lib/klibc/include/asm-i386/unaligned.h
-#usr/lib/klibc/include/asm-i386/unistd.h
-#usr/lib/klibc/include/asm-i386/user.h
-#usr/lib/klibc/include/asm-i386/vga.h
-#usr/lib/klibc/include/asm-i386/vic.h
-#usr/lib/klibc/include/asm-i386/vm86.h
-#usr/lib/klibc/include/asm-i386/voyager.h
-#usr/lib/klibc/include/asm-i386/xor.h
-#usr/lib/klibc/include/assert.h
-#usr/lib/klibc/include/bits32
-#usr/lib/klibc/include/bits32/bitsize
-#usr/lib/klibc/include/bits32/bitsize.h
-#usr/lib/klibc/include/bits32/bitsize/limits.h
-#usr/lib/klibc/include/bits32/bitsize/stddef.h
-#usr/lib/klibc/include/bits32/bitsize/stdint.h
-#usr/lib/klibc/include/bits32/bitsize/stdintconst.h
-#usr/lib/klibc/include/bits32/bitsize/stdintlimits.h
-#usr/lib/klibc/include/bits64
-#usr/lib/klibc/include/bits64/bitsize
-#usr/lib/klibc/include/bits64/bitsize.h
-#usr/lib/klibc/include/bits64/bitsize/limits.h
-#usr/lib/klibc/include/bits64/bitsize/stddef.h
-#usr/lib/klibc/include/bits64/bitsize/stdint.h
-#usr/lib/klibc/include/bits64/bitsize/stdintconst.h
-#usr/lib/klibc/include/bits64/bitsize/stdintlimits.h
-#usr/lib/klibc/include/byteswap.h
-#usr/lib/klibc/include/ctype.h
-#usr/lib/klibc/include/dirent.h
-#usr/lib/klibc/include/elf.h
-#usr/lib/klibc/include/endian.h
-#usr/lib/klibc/include/errno.h
-#usr/lib/klibc/include/fcntl.h
-#usr/lib/klibc/include/fnmatch.h
-#usr/lib/klibc/include/getopt.h
-#usr/lib/klibc/include/grp.h
-#usr/lib/klibc/include/inttypes.h
-#usr/lib/klibc/include/klibc
-#usr/lib/klibc/include/klibc/compiler.h
-#usr/lib/klibc/include/klibc/diverr.h
-#usr/lib/klibc/include/klibc/endian.h
-#usr/lib/klibc/include/klibc/extern.h
-#usr/lib/klibc/include/klibc/havesyscall.h
-#usr/lib/klibc/include/klibc/stathelp.h
-#usr/lib/klibc/include/klibc/sysconfig.h
-#usr/lib/klibc/include/limits.h
-#usr/lib/klibc/include/linux
-#usr/lib/klibc/include/linux/8250_pci.h
-#usr/lib/klibc/include/linux/a.out.h
-#usr/lib/klibc/include/linux/ac97_codec.h
-#usr/lib/klibc/include/linux/acct.h
-#usr/lib/klibc/include/linux/acpi.h
-#usr/lib/klibc/include/linux/adb.h
-#usr/lib/klibc/include/linux/adfs_fs.h
-#usr/lib/klibc/include/linux/adfs_fs_i.h
-#usr/lib/klibc/include/linux/adfs_fs_sb.h
-#usr/lib/klibc/include/linux/affs_fs.h
-#usr/lib/klibc/include/linux/affs_hardblocks.h
-#usr/lib/klibc/include/linux/agp_backend.h
-#usr/lib/klibc/include/linux/agpgart.h
-#usr/lib/klibc/include/linux/aio.h
-#usr/lib/klibc/include/linux/aio_abi.h
-#usr/lib/klibc/include/linux/amba
-#usr/lib/klibc/include/linux/amba/bus.h
-#usr/lib/klibc/include/linux/amba/clcd.h
-#usr/lib/klibc/include/linux/amba/kmi.h
-#usr/lib/klibc/include/linux/amba/serial.h
-#usr/lib/klibc/include/linux/amifd.h
-#usr/lib/klibc/include/linux/amifdreg.h
-#usr/lib/klibc/include/linux/amigaffs.h
-#usr/lib/klibc/include/linux/apm_bios.h
-#usr/lib/klibc/include/linux/arcdevice.h
-#usr/lib/klibc/include/linux/arcfb.h
-#usr/lib/klibc/include/linux/ata.h
-#usr/lib/klibc/include/linux/atalk.h
-#usr/lib/klibc/include/linux/atm.h
-#usr/lib/klibc/include/linux/atm_eni.h
-#usr/lib/klibc/include/linux/atm_he.h
-#usr/lib/klibc/include/linux/atm_idt77105.h
-#usr/lib/klibc/include/linux/atm_nicstar.h
-#usr/lib/klibc/include/linux/atm_suni.h
-#usr/lib/klibc/include/linux/atm_tcp.h
-#usr/lib/klibc/include/linux/atm_zatm.h
-#usr/lib/klibc/include/linux/atmapi.h
-#usr/lib/klibc/include/linux/atmarp.h
-#usr/lib/klibc/include/linux/atmbr2684.h
-#usr/lib/klibc/include/linux/atmclip.h
-#usr/lib/klibc/include/linux/atmdev.h
-#usr/lib/klibc/include/linux/atmioc.h
-#usr/lib/klibc/include/linux/atmlec.h
-#usr/lib/klibc/include/linux/atmmpc.h
-#usr/lib/klibc/include/linux/atmppp.h
-#usr/lib/klibc/include/linux/atmsap.h
-#usr/lib/klibc/include/linux/atmsvc.h
-#usr/lib/klibc/include/linux/attribute_container.h
-#usr/lib/klibc/include/linux/audit.h
-#usr/lib/klibc/include/linux/auto_fs.h
-#usr/lib/klibc/include/linux/auto_fs4.h
-#usr/lib/klibc/include/linux/autoconf.h
-#usr/lib/klibc/include/linux/auxvec.h
-#usr/lib/klibc/include/linux/awe_voice.h
-#usr/lib/klibc/include/linux/ax25.h
-#usr/lib/klibc/include/linux/b1lli.h
-#usr/lib/klibc/include/linux/b1pcmcia.h
-#usr/lib/klibc/include/linux/backing-dev.h
-#usr/lib/klibc/include/linux/backlight.h
-#usr/lib/klibc/include/linux/baycom.h
-#usr/lib/klibc/include/linux/bcd.h
-#usr/lib/klibc/include/linux/bfs_fs.h
-#usr/lib/klibc/include/linux/binfmts.h
-#usr/lib/klibc/include/linux/bio.h
-#usr/lib/klibc/include/linux/bit_spinlock.h
-#usr/lib/klibc/include/linux/bitmap.h
-#usr/lib/klibc/include/linux/bitops.h
-#usr/lib/klibc/include/linux/blkdev.h
-#usr/lib/klibc/include/linux/blkpg.h
-#usr/lib/klibc/include/linux/blockgroup_lock.h
-#usr/lib/klibc/include/linux/bootmem.h
-#usr/lib/klibc/include/linux/bpqether.h
-#usr/lib/klibc/include/linux/buffer_head.h
-#usr/lib/klibc/include/linux/byteorder
-#usr/lib/klibc/include/linux/byteorder/big_endian.h
-#usr/lib/klibc/include/linux/byteorder/generic.h
-#usr/lib/klibc/include/linux/byteorder/little_endian.h
-#usr/lib/klibc/include/linux/byteorder/pdp_endian.h
-#usr/lib/klibc/include/linux/byteorder/swab.h
-#usr/lib/klibc/include/linux/byteorder/swabb.h
-#usr/lib/klibc/include/linux/cache.h
-#usr/lib/klibc/include/linux/calc64.h
-#usr/lib/klibc/include/linux/capability.h
-#usr/lib/klibc/include/linux/capi.h
-#usr/lib/klibc/include/linux/cciss_ioctl.h
-#usr/lib/klibc/include/linux/cd1400.h
-#usr/lib/klibc/include/linux/cdev.h
-#usr/lib/klibc/include/linux/cdk.h
-#usr/lib/klibc/include/linux/cdrom.h
-#usr/lib/klibc/include/linux/chio.h
-#usr/lib/klibc/include/linux/circ_buf.h
-#usr/lib/klibc/include/linux/clk.h
-#usr/lib/klibc/include/linux/cm4000_cs.h
-#usr/lib/klibc/include/linux/cn_proc.h
-#usr/lib/klibc/include/linux/cobalt-nvram.h
-#usr/lib/klibc/include/linux/coda.h
-#usr/lib/klibc/include/linux/coda_cache.h
-#usr/lib/klibc/include/linux/coda_fs_i.h
-#usr/lib/klibc/include/linux/coda_linux.h
-#usr/lib/klibc/include/linux/coda_proc.h
-#usr/lib/klibc/include/linux/coda_psdev.h
-#usr/lib/klibc/include/linux/coff.h
-#usr/lib/klibc/include/linux/com20020.h
-#usr/lib/klibc/include/linux/compat.h
-#usr/lib/klibc/include/linux/compat_ioctl.h
-#usr/lib/klibc/include/linux/compile.h
-#usr/lib/klibc/include/linux/compiler-gcc.h
-#usr/lib/klibc/include/linux/compiler-gcc3.h
-#usr/lib/klibc/include/linux/compiler-gcc4.h
-#usr/lib/klibc/include/linux/compiler-intel.h
-#usr/lib/klibc/include/linux/compiler.h
-#usr/lib/klibc/include/linux/completion.h
-#usr/lib/klibc/include/linux/comstats.h
-#usr/lib/klibc/include/linux/concap.h
-#usr/lib/klibc/include/linux/config.h
-#usr/lib/klibc/include/linux/configfs.h
-#usr/lib/klibc/include/linux/connector.h
-#usr/lib/klibc/include/linux/console.h
-#usr/lib/klibc/include/linux/console_struct.h
-#usr/lib/klibc/include/linux/consolemap.h
-#usr/lib/klibc/include/linux/cpu.h
-#usr/lib/klibc/include/linux/cpufreq.h
-#usr/lib/klibc/include/linux/cpumask.h
-#usr/lib/klibc/include/linux/cpuset.h
-#usr/lib/klibc/include/linux/cramfs_fs.h
-#usr/lib/klibc/include/linux/cramfs_fs_sb.h
-#usr/lib/klibc/include/linux/crash_dump.h
-#usr/lib/klibc/include/linux/crc-ccitt.h
-#usr/lib/klibc/include/linux/crc16.h
-#usr/lib/klibc/include/linux/crc32.h
-#usr/lib/klibc/include/linux/crc32c.h
-#usr/lib/klibc/include/linux/crypto.h
-#usr/lib/klibc/include/linux/cryptohash.h
-#usr/lib/klibc/include/linux/ctype.h
-#usr/lib/klibc/include/linux/cuda.h
-#usr/lib/klibc/include/linux/cyclades.h
-#usr/lib/klibc/include/linux/cyclomx.h
-#usr/lib/klibc/include/linux/cycx_cfm.h
-#usr/lib/klibc/include/linux/cycx_drv.h
-#usr/lib/klibc/include/linux/cycx_x25.h
-#usr/lib/klibc/include/linux/dcache.h
-#usr/lib/klibc/include/linux/dccp.h
-#usr/lib/klibc/include/linux/dcookies.h
-#usr/lib/klibc/include/linux/debugfs.h
-#usr/lib/klibc/include/linux/delay.h
-#usr/lib/klibc/include/linux/devfs_fs.h
-#usr/lib/klibc/include/linux/devfs_fs_kernel.h
-#usr/lib/klibc/include/linux/device-mapper.h
-#usr/lib/klibc/include/linux/device.h
-#usr/lib/klibc/include/linux/devpts_fs.h
-#usr/lib/klibc/include/linux/dio.h
-#usr/lib/klibc/include/linux/dirent.h
-#usr/lib/klibc/include/linux/divert.h
-#usr/lib/klibc/include/linux/dm-ioctl.h
-#usr/lib/klibc/include/linux/dm9000.h
-#usr/lib/klibc/include/linux/dma-mapping.h
-#usr/lib/klibc/include/linux/dmapool.h
-#usr/lib/klibc/include/linux/dmi.h
-#usr/lib/klibc/include/linux/dn.h
-#usr/lib/klibc/include/linux/dnotify.h
-#usr/lib/klibc/include/linux/dqblk_v1.h
-#usr/lib/klibc/include/linux/dqblk_v2.h
-#usr/lib/klibc/include/linux/dqblk_xfs.h
-#usr/lib/klibc/include/linux/ds1286.h
-#usr/lib/klibc/include/linux/ds17287rtc.h
-#usr/lib/klibc/include/linux/ds1742rtc.h
-#usr/lib/klibc/include/linux/dtlk.h
-#usr/lib/klibc/include/linux/dvb
-#usr/lib/klibc/include/linux/dvb/audio.h
-#usr/lib/klibc/include/linux/dvb/ca.h
-#usr/lib/klibc/include/linux/dvb/dmx.h
-#usr/lib/klibc/include/linux/dvb/frontend.h
-#usr/lib/klibc/include/linux/dvb/net.h
-#usr/lib/klibc/include/linux/dvb/osd.h
-#usr/lib/klibc/include/linux/dvb/version.h
-#usr/lib/klibc/include/linux/dvb/video.h
-#usr/lib/klibc/include/linux/edd.h
-#usr/lib/klibc/include/linux/efi.h
-#usr/lib/klibc/include/linux/efs_dir.h
-#usr/lib/klibc/include/linux/efs_fs.h
-#usr/lib/klibc/include/linux/efs_fs_i.h
-#usr/lib/klibc/include/linux/efs_fs_sb.h
-#usr/lib/klibc/include/linux/efs_vh.h
-#usr/lib/klibc/include/linux/eisa.h
-#usr/lib/klibc/include/linux/elevator.h
-#usr/lib/klibc/include/linux/elf-fdpic.h
-#usr/lib/klibc/include/linux/elf.h
-#usr/lib/klibc/include/linux/elfcore.h
-#usr/lib/klibc/include/linux/err.h
-#usr/lib/klibc/include/linux/errno.h
-#usr/lib/klibc/include/linux/errqueue.h
-#usr/lib/klibc/include/linux/etherdevice.h
-#usr/lib/klibc/include/linux/ethtool.h
-#usr/lib/klibc/include/linux/eventpoll.h
-#usr/lib/klibc/include/linux/ext2_fs.h
-#usr/lib/klibc/include/linux/ext2_fs_sb.h
-#usr/lib/klibc/include/linux/ext3_fs.h
-#usr/lib/klibc/include/linux/ext3_fs_i.h
-#usr/lib/klibc/include/linux/ext3_fs_sb.h
-#usr/lib/klibc/include/linux/ext3_jbd.h
-#usr/lib/klibc/include/linux/fadvise.h
-#usr/lib/klibc/include/linux/fb.h
-#usr/lib/klibc/include/linux/fcdevice.h
-#usr/lib/klibc/include/linux/fcntl.h
-#usr/lib/klibc/include/linux/fd.h
-#usr/lib/klibc/include/linux/fd1772.h
-#usr/lib/klibc/include/linux/fddidevice.h
-#usr/lib/klibc/include/linux/fdreg.h
-#usr/lib/klibc/include/linux/file.h
-#usr/lib/klibc/include/linux/filter.h
-#usr/lib/klibc/include/linux/firmware.h
-#usr/lib/klibc/include/linux/flat.h
-#usr/lib/klibc/include/linux/font.h
-#usr/lib/klibc/include/linux/fs.h
-#usr/lib/klibc/include/linux/fs.h~
-#usr/lib/klibc/include/linux/fs_enet_pd.h
-#usr/lib/klibc/include/linux/fs_struct.h
-#usr/lib/klibc/include/linux/fsl_devices.h
-#usr/lib/klibc/include/linux/fsnotify.h
-#usr/lib/klibc/include/linux/ftape-header-segment.h
-#usr/lib/klibc/include/linux/ftape-vendors.h
-#usr/lib/klibc/include/linux/ftape.h
-#usr/lib/klibc/include/linux/fuse.h
-#usr/lib/klibc/include/linux/futex.h
-#usr/lib/klibc/include/linux/gameport.h
-#usr/lib/klibc/include/linux/gen_stats.h
-#usr/lib/klibc/include/linux/genalloc.h
-#usr/lib/klibc/include/linux/generic_serial.h
-#usr/lib/klibc/include/linux/genetlink.h
-#usr/lib/klibc/include/linux/genhd.h
-#usr/lib/klibc/include/linux/gfp.h
-#usr/lib/klibc/include/linux/hardirq.h
-#usr/lib/klibc/include/linux/harrier_defs.h
-#usr/lib/klibc/include/linux/hash.h
-#usr/lib/klibc/include/linux/hayesesp.h
-#usr/lib/klibc/include/linux/hdlc
-#usr/lib/klibc/include/linux/hdlc.h
-#usr/lib/klibc/include/linux/hdlc/ioctl.h
-#usr/lib/klibc/include/linux/hdlcdrv.h
-#usr/lib/klibc/include/linux/hdpu_features.h
-#usr/lib/klibc/include/linux/hdreg.h
-#usr/lib/klibc/include/linux/hdsmart.h
-#usr/lib/klibc/include/linux/hiddev.h
-#usr/lib/klibc/include/linux/highmem.h
-#usr/lib/klibc/include/linux/highuid.h
-#usr/lib/klibc/include/linux/hil.h
-#usr/lib/klibc/include/linux/hil_mlc.h
-#usr/lib/klibc/include/linux/hippidevice.h
-#usr/lib/klibc/include/linux/hp_sdc.h
-#usr/lib/klibc/include/linux/hpet.h
-#usr/lib/klibc/include/linux/hpfs_fs.h
-#usr/lib/klibc/include/linux/hrtimer.h
-#usr/lib/klibc/include/linux/hugetlb.h
-#usr/lib/klibc/include/linux/hwmon-sysfs.h
-#usr/lib/klibc/include/linux/hwmon-vid.h
-#usr/lib/klibc/include/linux/hwmon.h
-#usr/lib/klibc/include/linux/hysdn_if.h
-#usr/lib/klibc/include/linux/i2c-algo-bit.h
-#usr/lib/klibc/include/linux/i2c-algo-ite.h
-#usr/lib/klibc/include/linux/i2c-algo-pca.h
-#usr/lib/klibc/include/linux/i2c-algo-pcf.h
-#usr/lib/klibc/include/linux/i2c-algo-sgi.h
-#usr/lib/klibc/include/linux/i2c-algo-sibyte.h
-#usr/lib/klibc/include/linux/i2c-dev.h
-#usr/lib/klibc/include/linux/i2c-id.h
-#usr/lib/klibc/include/linux/i2c-isa.h
-#usr/lib/klibc/include/linux/i2c-pxa.h
-#usr/lib/klibc/include/linux/i2c.h
-#usr/lib/klibc/include/linux/i2o-dev.h
-#usr/lib/klibc/include/linux/i2o.h
-#usr/lib/klibc/include/linux/i8k.h
-#usr/lib/klibc/include/linux/ibmtr.h
-#usr/lib/klibc/include/linux/icmp.h
-#usr/lib/klibc/include/linux/icmpv6.h
-#usr/lib/klibc/include/linux/ide.h
-#usr/lib/klibc/include/linux/idr.h
-#usr/lib/klibc/include/linux/if.h
-#usr/lib/klibc/include/linux/if_arcnet.h
-#usr/lib/klibc/include/linux/if_arp.h
-#usr/lib/klibc/include/linux/if_bonding.h
-#usr/lib/klibc/include/linux/if_bridge.h
-#usr/lib/klibc/include/linux/if_cablemodem.h
-#usr/lib/klibc/include/linux/if_ec.h
-#usr/lib/klibc/include/linux/if_eql.h
-#usr/lib/klibc/include/linux/if_ether.h
-#usr/lib/klibc/include/linux/if_fc.h
-#usr/lib/klibc/include/linux/if_fddi.h
-#usr/lib/klibc/include/linux/if_frad.h
-#usr/lib/klibc/include/linux/if_hippi.h
-#usr/lib/klibc/include/linux/if_infiniband.h
-#usr/lib/klibc/include/linux/if_ltalk.h
-#usr/lib/klibc/include/linux/if_packet.h
-#usr/lib/klibc/include/linux/if_plip.h
-#usr/lib/klibc/include/linux/if_ppp.h
-#usr/lib/klibc/include/linux/if_pppox.h
-#usr/lib/klibc/include/linux/if_shaper.h
-#usr/lib/klibc/include/linux/if_slip.h
-#usr/lib/klibc/include/linux/if_strip.h
-#usr/lib/klibc/include/linux/if_tr.h
-#usr/lib/klibc/include/linux/if_tun.h
-#usr/lib/klibc/include/linux/if_tunnel.h
-#usr/lib/klibc/include/linux/if_vlan.h
-#usr/lib/klibc/include/linux/if_wanpipe.h
-#usr/lib/klibc/include/linux/if_wanpipe_common.h
-#usr/lib/klibc/include/linux/igmp.h
-#usr/lib/klibc/include/linux/imq.h
-#usr/lib/klibc/include/linux/in.h
-#usr/lib/klibc/include/linux/in6.h
-#usr/lib/klibc/include/linux/in_route.h
-#usr/lib/klibc/include/linux/inet.h
-#usr/lib/klibc/include/linux/inet_diag.h
-#usr/lib/klibc/include/linux/inetdevice.h
-#usr/lib/klibc/include/linux/init.h
-#usr/lib/klibc/include/linux/init_task.h
-#usr/lib/klibc/include/linux/initrd.h
-#usr/lib/klibc/include/linux/inotify.h
-#usr/lib/klibc/include/linux/input.h
-#usr/lib/klibc/include/linux/interrupt.h
-#usr/lib/klibc/include/linux/io.h
-#usr/lib/klibc/include/linux/ioc3.h
-#usr/lib/klibc/include/linux/ioc4.h
-#usr/lib/klibc/include/linux/ioctl.h
-#usr/lib/klibc/include/linux/ioctl32.h
-#usr/lib/klibc/include/linux/ioport.h
-#usr/lib/klibc/include/linux/ioprio.h
-#usr/lib/klibc/include/linux/ip.h
-#usr/lib/klibc/include/linux/ip6_tunnel.h
-#usr/lib/klibc/include/linux/ip_mp_alg.h
-#usr/lib/klibc/include/linux/ipc.h
-#usr/lib/klibc/include/linux/ipmi.h
-#usr/lib/klibc/include/linux/ipmi_msgdefs.h
-#usr/lib/klibc/include/linux/ipmi_smi.h
-#usr/lib/klibc/include/linux/ipsec.h
-#usr/lib/klibc/include/linux/ipv6.h
-#usr/lib/klibc/include/linux/ipv6_route.h
-#usr/lib/klibc/include/linux/ipx.h
-#usr/lib/klibc/include/linux/irda.h
-#usr/lib/klibc/include/linux/irq.h
-#usr/lib/klibc/include/linux/irq_cpustat.h
-#usr/lib/klibc/include/linux/isapnp.h
-#usr/lib/klibc/include/linux/isdn
-#usr/lib/klibc/include/linux/isdn.h
-#usr/lib/klibc/include/linux/isdn/capicmd.h
-#usr/lib/klibc/include/linux/isdn/capilli.h
-#usr/lib/klibc/include/linux/isdn/capiutil.h
-#usr/lib/klibc/include/linux/isdn/tpam.h
-#usr/lib/klibc/include/linux/isdn_compat.h
-#usr/lib/klibc/include/linux/isdn_divertif.h
-#usr/lib/klibc/include/linux/isdn_ppp.h
-#usr/lib/klibc/include/linux/isdnif.h
-#usr/lib/klibc/include/linux/isicom.h
-#usr/lib/klibc/include/linux/iso_fs.h
-#usr/lib/klibc/include/linux/istallion.h
-#usr/lib/klibc/include/linux/ite_gpio.h
-#usr/lib/klibc/include/linux/ixjuser.h
-#usr/lib/klibc/include/linux/jbd.h
-#usr/lib/klibc/include/linux/jffs.h
-#usr/lib/klibc/include/linux/jffs2.h
-#usr/lib/klibc/include/linux/jffs2_fs_i.h
-#usr/lib/klibc/include/linux/jffs2_fs_sb.h
-#usr/lib/klibc/include/linux/jhash.h
-#usr/lib/klibc/include/linux/jiffies.h
-#usr/lib/klibc/include/linux/journal-head.h
-#usr/lib/klibc/include/linux/joystick.h
-#usr/lib/klibc/include/linux/kallsyms.h
-#usr/lib/klibc/include/linux/kbd_diacr.h
-#usr/lib/klibc/include/linux/kbd_kern.h
-#usr/lib/klibc/include/linux/kd.h
-#usr/lib/klibc/include/linux/kdev_t.h
-#usr/lib/klibc/include/linux/kernel.h
-#usr/lib/klibc/include/linux/kernel_stat.h
-#usr/lib/klibc/include/linux/kernelcapi.h
-#usr/lib/klibc/include/linux/kexec.h
-#usr/lib/klibc/include/linux/key-ui.h
-#usr/lib/klibc/include/linux/key.h
-#usr/lib/klibc/include/linux/keyboard.h
-#usr/lib/klibc/include/linux/keyctl.h
-#usr/lib/klibc/include/linux/kfifo.h
-#usr/lib/klibc/include/linux/klist.h
-#usr/lib/klibc/include/linux/kmalloc_sizes.h
-#usr/lib/klibc/include/linux/kmod.h
-#usr/lib/klibc/include/linux/kobj_map.h
-#usr/lib/klibc/include/linux/kobject.h
-#usr/lib/klibc/include/linux/kprobes.h
-#usr/lib/klibc/include/linux/kref.h
-#usr/lib/klibc/include/linux/kthread.h
-#usr/lib/klibc/include/linux/ktime.h
-#usr/lib/klibc/include/linux/lapb.h
-#usr/lib/klibc/include/linux/lcd.h
-#usr/lib/klibc/include/linux/libata.h
-#usr/lib/klibc/include/linux/libps2.h
-#usr/lib/klibc/include/linux/limits.h
-#usr/lib/klibc/include/linux/linkage.h
-#usr/lib/klibc/include/linux/linux_logo.h
-#usr/lib/klibc/include/linux/list.h
-#usr/lib/klibc/include/linux/llc.h
-#usr/lib/klibc/include/linux/lockd
-#usr/lib/klibc/include/linux/lockd/bind.h
-#usr/lib/klibc/include/linux/lockd/debug.h
-#usr/lib/klibc/include/linux/lockd/lockd.h
-#usr/lib/klibc/include/linux/lockd/nlm.h
-#usr/lib/klibc/include/linux/lockd/share.h
-#usr/lib/klibc/include/linux/lockd/sm_inter.h
-#usr/lib/klibc/include/linux/lockd/xdr.h
-#usr/lib/klibc/include/linux/lockd/xdr4.h
-#usr/lib/klibc/include/linux/loop.h
-#usr/lib/klibc/include/linux/lp.h
-#usr/lib/klibc/include/linux/mISDNif.h
-#usr/lib/klibc/include/linux/major.h
-#usr/lib/klibc/include/linux/matroxfb.h
-#usr/lib/klibc/include/linux/mbcache.h
-#usr/lib/klibc/include/linux/mc146818rtc.h
-#usr/lib/klibc/include/linux/mc6821.h
-#usr/lib/klibc/include/linux/mca-legacy.h
-#usr/lib/klibc/include/linux/mca.h
-#usr/lib/klibc/include/linux/memory.h
-#usr/lib/klibc/include/linux/memory_hotplug.h
-#usr/lib/klibc/include/linux/mempolicy.h
-#usr/lib/klibc/include/linux/mempool.h
-#usr/lib/klibc/include/linux/meye.h
-#usr/lib/klibc/include/linux/mii.h
-#usr/lib/klibc/include/linux/minix_fs.h
-#usr/lib/klibc/include/linux/miscdevice.h
-#usr/lib/klibc/include/linux/mm.h
-#usr/lib/klibc/include/linux/mm_inline.h
-#usr/lib/klibc/include/linux/mman.h
-#usr/lib/klibc/include/linux/mmc
-#usr/lib/klibc/include/linux/mmc/card.h
-#usr/lib/klibc/include/linux/mmc/host.h
-#usr/lib/klibc/include/linux/mmc/mmc.h
-#usr/lib/klibc/include/linux/mmc/protocol.h
-#usr/lib/klibc/include/linux/mmtimer.h
-#usr/lib/klibc/include/linux/mmzone.h
-#usr/lib/klibc/include/linux/mod_devicetable.h
-#usr/lib/klibc/include/linux/module.h
-#usr/lib/klibc/include/linux/moduleloader.h
-#usr/lib/klibc/include/linux/moduleparam.h
-#usr/lib/klibc/include/linux/mount.h
-#usr/lib/klibc/include/linux/mpage.h
-#usr/lib/klibc/include/linux/mqueue.h
-#usr/lib/klibc/include/linux/mroute.h
-#usr/lib/klibc/include/linux/msdos_fs.h
-#usr/lib/klibc/include/linux/msg.h
-#usr/lib/klibc/include/linux/mtd
-#usr/lib/klibc/include/linux/mtd/bbm.h
-#usr/lib/klibc/include/linux/mtd/blktrans.h
-#usr/lib/klibc/include/linux/mtd/cfi.h
-#usr/lib/klibc/include/linux/mtd/cfi_endian.h
-#usr/lib/klibc/include/linux/mtd/compatmac.h
-#usr/lib/klibc/include/linux/mtd/concat.h
-#usr/lib/klibc/include/linux/mtd/doc2000.h
-#usr/lib/klibc/include/linux/mtd/flashchip.h
-#usr/lib/klibc/include/linux/mtd/ftl.h
-#usr/lib/klibc/include/linux/mtd/gen_probe.h
-#usr/lib/klibc/include/linux/mtd/iflash.h
-#usr/lib/klibc/include/linux/mtd/inftl.h
-#usr/lib/klibc/include/linux/mtd/jedec.h
-#usr/lib/klibc/include/linux/mtd/map.h
-#usr/lib/klibc/include/linux/mtd/mtd.h
-#usr/lib/klibc/include/linux/mtd/nand.h
-#usr/lib/klibc/include/linux/mtd/nand_ecc.h
-#usr/lib/klibc/include/linux/mtd/nftl.h
-#usr/lib/klibc/include/linux/mtd/onenand.h
-#usr/lib/klibc/include/linux/mtd/onenand_regs.h
-#usr/lib/klibc/include/linux/mtd/partitions.h
-#usr/lib/klibc/include/linux/mtd/physmap.h
-#usr/lib/klibc/include/linux/mtd/plat-ram.h
-#usr/lib/klibc/include/linux/mtd/pmc551.h
-#usr/lib/klibc/include/linux/mtd/xip.h
-#usr/lib/klibc/include/linux/mtio.h
-#usr/lib/klibc/include/linux/mutex-debug.h
-#usr/lib/klibc/include/linux/mutex.h
-#usr/lib/klibc/include/linux/mv643xx.h
-#usr/lib/klibc/include/linux/n_r3964.h
-#usr/lib/klibc/include/linux/namei.h
-#usr/lib/klibc/include/linux/namespace.h
-#usr/lib/klibc/include/linux/nbd.h
-#usr/lib/klibc/include/linux/ncp.h
-#usr/lib/klibc/include/linux/ncp_fs.h
-#usr/lib/klibc/include/linux/ncp_fs_i.h
-#usr/lib/klibc/include/linux/ncp_fs_sb.h
-#usr/lib/klibc/include/linux/ncp_mount.h
-#usr/lib/klibc/include/linux/ncp_no.h
-#usr/lib/klibc/include/linux/net.h
-#usr/lib/klibc/include/linux/netdevice.h
-#usr/lib/klibc/include/linux/netfilter
-#usr/lib/klibc/include/linux/netfilter.h
-#usr/lib/klibc/include/linux/netfilter/nf_conntrack_common.h
-#usr/lib/klibc/include/linux/netfilter/nf_conntrack_ftp.h
-#usr/lib/klibc/include/linux/netfilter/nf_conntrack_sctp.h
-#usr/lib/klibc/include/linux/netfilter/nf_conntrack_tcp.h
-#usr/lib/klibc/include/linux/netfilter/nf_conntrack_tuple_common.h
-#usr/lib/klibc/include/linux/netfilter/nfnetlink.h
-#usr/lib/klibc/include/linux/netfilter/nfnetlink_conntrack.h
-#usr/lib/klibc/include/linux/netfilter/nfnetlink_log.h
-#usr/lib/klibc/include/linux/netfilter/nfnetlink_queue.h
-#usr/lib/klibc/include/linux/netfilter/x_tables.h
-#usr/lib/klibc/include/linux/netfilter/xt_CLASSIFY.h
-#usr/lib/klibc/include/linux/netfilter/xt_CONNMARK.h
-#usr/lib/klibc/include/linux/netfilter/xt_MARK.h
-#usr/lib/klibc/include/linux/netfilter/xt_NFQUEUE.h
-#usr/lib/klibc/include/linux/netfilter/xt_comment.h
-#usr/lib/klibc/include/linux/netfilter/xt_connbytes.h
-#usr/lib/klibc/include/linux/netfilter/xt_connmark.h
-#usr/lib/klibc/include/linux/netfilter/xt_conntrack.h
-#usr/lib/klibc/include/linux/netfilter/xt_dccp.h
-#usr/lib/klibc/include/linux/netfilter/xt_helper.h
-#usr/lib/klibc/include/linux/netfilter/xt_length.h
-#usr/lib/klibc/include/linux/netfilter/xt_limit.h
-#usr/lib/klibc/include/linux/netfilter/xt_mac.h
-#usr/lib/klibc/include/linux/netfilter/xt_mark.h
-#usr/lib/klibc/include/linux/netfilter/xt_physdev.h
-#usr/lib/klibc/include/linux/netfilter/xt_pkttype.h
-#usr/lib/klibc/include/linux/netfilter/xt_realm.h
-#usr/lib/klibc/include/linux/netfilter/xt_sctp.h
-#usr/lib/klibc/include/linux/netfilter/xt_state.h
-#usr/lib/klibc/include/linux/netfilter/xt_string.h
-#usr/lib/klibc/include/linux/netfilter/xt_tcpmss.h
-#usr/lib/klibc/include/linux/netfilter/xt_tcpudp.h
-#usr/lib/klibc/include/linux/netfilter_arp
-#usr/lib/klibc/include/linux/netfilter_arp.h
-#usr/lib/klibc/include/linux/netfilter_arp/arp_tables.h
-#usr/lib/klibc/include/linux/netfilter_arp/arpt_mangle.h
-#usr/lib/klibc/include/linux/netfilter_bridge
-#usr/lib/klibc/include/linux/netfilter_bridge.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_802_3.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_among.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_arp.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_arpreply.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_ip.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_limit.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_log.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_mark_m.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_mark_t.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_nat.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_pkttype.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_redirect.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_stp.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_ulog.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebt_vlan.h
-#usr/lib/klibc/include/linux/netfilter_bridge/ebtables.h
-#usr/lib/klibc/include/linux/netfilter_decnet.h
-#usr/lib/klibc/include/linux/netfilter_ipv4
-#usr/lib/klibc/include/linux/netfilter_ipv4.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack.h~
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_amanda.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_core.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_ftp.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_h323.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_helper.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_types.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_icmp.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_irc.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_mms.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_pptp.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_protocol.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_sctp.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_sip.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_tcp.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_tftp.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_conntrack_tuple.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_nat.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_nat_core.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_nat_helper.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_nat_pptp.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_nat_protocol.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_nat_rule.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_queue.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ip_tables.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_CLASSIFY.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_CONNMARK.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_DSCP.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_ECN.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_IMQ.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_LOG.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_MARK.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_NFQUEUE.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_REJECT.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_SAME.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_TCPMSS.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_TOS.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_TTL.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_ULOG.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_addrtype.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_ah.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_comment.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_connbytes.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_connmark.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_conntrack.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_dccp.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_dscp.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_ecn.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_esp.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_hashlimit.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_helper.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_iprange.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_layer7.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_length.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_limit.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_mac.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_mark.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_multiport.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_owner.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_physdev.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_pkttype.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_policy.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_realm.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_recent.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_sctp.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_state.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_string.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_tcpmss.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_tos.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/ipt_ttl.h
-#usr/lib/klibc/include/linux/netfilter_ipv4/listhelp.h
-#usr/lib/klibc/include/linux/netfilter_ipv6
-#usr/lib/klibc/include/linux/netfilter_ipv6.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6_tables.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_HL.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_IMQ.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_LOG.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_MARK.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_REJECT.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_ah.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_esp.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_frag.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_hl.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_ipv6header.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_length.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_limit.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_mac.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_mark.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_multiport.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_opts.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_owner.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_physdev.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_policy.h
-#usr/lib/klibc/include/linux/netfilter_ipv6/ip6t_rt.h
-#usr/lib/klibc/include/linux/netfilter_logging.h
-#usr/lib/klibc/include/linux/netlink.h
-#usr/lib/klibc/include/linux/netpoll.h
-#usr/lib/klibc/include/linux/netrom.h
-#usr/lib/klibc/include/linux/nfs.h
-#usr/lib/klibc/include/linux/nfs2.h
-#usr/lib/klibc/include/linux/nfs3.h
-#usr/lib/klibc/include/linux/nfs4.h
-#usr/lib/klibc/include/linux/nfs4_acl.h
-#usr/lib/klibc/include/linux/nfs4_mount.h
-#usr/lib/klibc/include/linux/nfs_fs.h
-#usr/lib/klibc/include/linux/nfs_fs_i.h
-#usr/lib/klibc/include/linux/nfs_fs_sb.h
-#usr/lib/klibc/include/linux/nfs_idmap.h
-#usr/lib/klibc/include/linux/nfs_mount.h
-#usr/lib/klibc/include/linux/nfs_page.h
-#usr/lib/klibc/include/linux/nfs_xdr.h
-#usr/lib/klibc/include/linux/nfsacl.h
-#usr/lib/klibc/include/linux/nfsd
-#usr/lib/klibc/include/linux/nfsd/auth.h
-#usr/lib/klibc/include/linux/nfsd/cache.h
-#usr/lib/klibc/include/linux/nfsd/const.h
-#usr/lib/klibc/include/linux/nfsd/debug.h
-#usr/lib/klibc/include/linux/nfsd/export.h
-#usr/lib/klibc/include/linux/nfsd/interface.h
-#usr/lib/klibc/include/linux/nfsd/nfsd.h
-#usr/lib/klibc/include/linux/nfsd/nfsfh.h
-#usr/lib/klibc/include/linux/nfsd/state.h
-#usr/lib/klibc/include/linux/nfsd/stats.h
-#usr/lib/klibc/include/linux/nfsd/syscall.h
-#usr/lib/klibc/include/linux/nfsd/xdr.h
-#usr/lib/klibc/include/linux/nfsd/xdr3.h
-#usr/lib/klibc/include/linux/nfsd/xdr4.h
-#usr/lib/klibc/include/linux/nfsd_idmap.h
-#usr/lib/klibc/include/linux/nls.h
-#usr/lib/klibc/include/linux/nmi.h
-#usr/lib/klibc/include/linux/node.h
-#usr/lib/klibc/include/linux/nodemask.h
-#usr/lib/klibc/include/linux/notifier.h
-#usr/lib/klibc/include/linux/nubus.h
-#usr/lib/klibc/include/linux/numa.h
-#usr/lib/klibc/include/linux/nvram.h
-#usr/lib/klibc/include/linux/openprom_fs.h
-#usr/lib/klibc/include/linux/oprofile.h
-#usr/lib/klibc/include/linux/page-flags.h
-#usr/lib/klibc/include/linux/pagemap.h
-#usr/lib/klibc/include/linux/pagevec.h
-#usr/lib/klibc/include/linux/param.h
-#usr/lib/klibc/include/linux/parport.h
-#usr/lib/klibc/include/linux/parport_pc.h
-#usr/lib/klibc/include/linux/parser.h
-#usr/lib/klibc/include/linux/patchkey.h
-#usr/lib/klibc/include/linux/pci-acpi.h
-#usr/lib/klibc/include/linux/pci.h
-#usr/lib/klibc/include/linux/pci_ids.h
-#usr/lib/klibc/include/linux/pci_regs.h
-#usr/lib/klibc/include/linux/pcieport_if.h
-#usr/lib/klibc/include/linux/percpu.h
-#usr/lib/klibc/include/linux/percpu_counter.h
-#usr/lib/klibc/include/linux/personality.h
-#usr/lib/klibc/include/linux/pfkeyv2.h
-#usr/lib/klibc/include/linux/pg.h
-#usr/lib/klibc/include/linux/phonedev.h
-#usr/lib/klibc/include/linux/phy.h
-#usr/lib/klibc/include/linux/pid.h
-#usr/lib/klibc/include/linux/pipe_fs_i.h
-#usr/lib/klibc/include/linux/pkt_cls.h
-#usr/lib/klibc/include/linux/pkt_sched.h
-#usr/lib/klibc/include/linux/pktcdvd.h
-#usr/lib/klibc/include/linux/platform.h
-#usr/lib/klibc/include/linux/platform_device.h
-#usr/lib/klibc/include/linux/pm.h
-#usr/lib/klibc/include/linux/pm_legacy.h
-#usr/lib/klibc/include/linux/pmu.h
-#usr/lib/klibc/include/linux/pnp.h
-#usr/lib/klibc/include/linux/pnpbios.h
-#usr/lib/klibc/include/linux/poll.h
-#usr/lib/klibc/include/linux/posix-timers.h
-#usr/lib/klibc/include/linux/posix_acl.h
-#usr/lib/klibc/include/linux/posix_acl_xattr.h
-#usr/lib/klibc/include/linux/posix_types.h
-#usr/lib/klibc/include/linux/ppdev.h
-#usr/lib/klibc/include/linux/ppp-comp.h
-#usr/lib/klibc/include/linux/ppp_channel.h
-#usr/lib/klibc/include/linux/ppp_defs.h
-#usr/lib/klibc/include/linux/prctl.h
-#usr/lib/klibc/include/linux/preempt.h
-#usr/lib/klibc/include/linux/prefetch.h
-#usr/lib/klibc/include/linux/prio_tree.h
-#usr/lib/klibc/include/linux/proc_fs.h
-#usr/lib/klibc/include/linux/profile.h
-#usr/lib/klibc/include/linux/ps2esdi.h
-#usr/lib/klibc/include/linux/ptrace.h
-#usr/lib/klibc/include/linux/qic117.h
-#usr/lib/klibc/include/linux/qnx4_fs.h
-#usr/lib/klibc/include/linux/qnxtypes.h
-#usr/lib/klibc/include/linux/quota.h
-#usr/lib/klibc/include/linux/quotaio_v1.h
-#usr/lib/klibc/include/linux/quotaio_v2.h
-#usr/lib/klibc/include/linux/quotaops.h
-#usr/lib/klibc/include/linux/radeonfb.h
-#usr/lib/klibc/include/linux/radix-tree.h
-#usr/lib/klibc/include/linux/raid
-#usr/lib/klibc/include/linux/raid/bitmap.h
-#usr/lib/klibc/include/linux/raid/linear.h
-#usr/lib/klibc/include/linux/raid/md.h
-#usr/lib/klibc/include/linux/raid/md_k.h
-#usr/lib/klibc/include/linux/raid/md_p.h
-#usr/lib/klibc/include/linux/raid/md_u.h
-#usr/lib/klibc/include/linux/raid/multipath.h
-#usr/lib/klibc/include/linux/raid/raid0.h
-#usr/lib/klibc/include/linux/raid/raid1.h
-#usr/lib/klibc/include/linux/raid/raid10.h
-#usr/lib/klibc/include/linux/raid/raid5.h
-#usr/lib/klibc/include/linux/raid/xor.h
-#usr/lib/klibc/include/linux/raid_class.h
-#usr/lib/klibc/include/linux/ramfs.h
-#usr/lib/klibc/include/linux/random.h
-#usr/lib/klibc/include/linux/raw.h
-#usr/lib/klibc/include/linux/rbtree.h
-#usr/lib/klibc/include/linux/rcupdate.h
-#usr/lib/klibc/include/linux/reboot.h
-#usr/lib/klibc/include/linux/reboot_fixups.h
-#usr/lib/klibc/include/linux/reiserfs_acl.h
-#usr/lib/klibc/include/linux/reiserfs_fs.h
-#usr/lib/klibc/include/linux/reiserfs_fs_i.h
-#usr/lib/klibc/include/linux/reiserfs_fs_sb.h
-#usr/lib/klibc/include/linux/reiserfs_xattr.h
-#usr/lib/klibc/include/linux/relayfs_fs.h
-#usr/lib/klibc/include/linux/resource.h
-#usr/lib/klibc/include/linux/rio.h
-#usr/lib/klibc/include/linux/rio_drv.h
-#usr/lib/klibc/include/linux/rio_ids.h
-#usr/lib/klibc/include/linux/rio_regs.h
-#usr/lib/klibc/include/linux/rmap.h
-#usr/lib/klibc/include/linux/romfs_fs.h
-#usr/lib/klibc/include/linux/root_dev.h
-#usr/lib/klibc/include/linux/rose.h
-#usr/lib/klibc/include/linux/route.h
-#usr/lib/klibc/include/linux/rslib.h
-#usr/lib/klibc/include/linux/rtc.h
-#usr/lib/klibc/include/linux/rtnetlink.h
-#usr/lib/klibc/include/linux/rwsem-spinlock.h
-#usr/lib/klibc/include/linux/rwsem.h
-#usr/lib/klibc/include/linux/sc26198.h
-#usr/lib/klibc/include/linux/scatterlist.h
-#usr/lib/klibc/include/linux/scc.h
-#usr/lib/klibc/include/linux/sched.h
-#usr/lib/klibc/include/linux/screen_info.h
-#usr/lib/klibc/include/linux/sctp.h
-#usr/lib/klibc/include/linux/scx200.h
-#usr/lib/klibc/include/linux/scx200_gpio.h
-#usr/lib/klibc/include/linux/sdla.h
-#usr/lib/klibc/include/linux/sdla_asy.h
-#usr/lib/klibc/include/linux/sdla_chdlc.h
-#usr/lib/klibc/include/linux/sdla_fr.h
-#usr/lib/klibc/include/linux/sdla_ppp.h
-#usr/lib/klibc/include/linux/sdla_x25.h
-#usr/lib/klibc/include/linux/sdladrv.h
-#usr/lib/klibc/include/linux/sdlapci.h
-#usr/lib/klibc/include/linux/sdlasfm.h
-#usr/lib/klibc/include/linux/seccomp.h
-#usr/lib/klibc/include/linux/securebits.h
-#usr/lib/klibc/include/linux/security.h
-#usr/lib/klibc/include/linux/selection.h
-#usr/lib/klibc/include/linux/selinux_netlink.h
-#usr/lib/klibc/include/linux/sem.h
-#usr/lib/klibc/include/linux/seq_file.h
-#usr/lib/klibc/include/linux/seqlock.h
-#usr/lib/klibc/include/linux/serial.h
-#usr/lib/klibc/include/linux/serial167.h
-#usr/lib/klibc/include/linux/serialP.h
-#usr/lib/klibc/include/linux/serial_8250.h
-#usr/lib/klibc/include/linux/serial_core.h
-#usr/lib/klibc/include/linux/serial_ip3106.h
-#usr/lib/klibc/include/linux/serial_reg.h
-#usr/lib/klibc/include/linux/serio.h
-#usr/lib/klibc/include/linux/shm.h
-#usr/lib/klibc/include/linux/shmem_fs.h
-#usr/lib/klibc/include/linux/signal.h
-#usr/lib/klibc/include/linux/skbuff.h
-#usr/lib/klibc/include/linux/skbuff.h~
-#usr/lib/klibc/include/linux/slab.h
-#usr/lib/klibc/include/linux/smb.h
-#usr/lib/klibc/include/linux/smb_fs.h
-#usr/lib/klibc/include/linux/smb_fs_i.h
-#usr/lib/klibc/include/linux/smb_fs_sb.h
-#usr/lib/klibc/include/linux/smb_mount.h
-#usr/lib/klibc/include/linux/smbno.h
-#usr/lib/klibc/include/linux/smp.h
-#usr/lib/klibc/include/linux/smp_lock.h
-#usr/lib/klibc/include/linux/snmp.h
-#usr/lib/klibc/include/linux/socket.h
-#usr/lib/klibc/include/linux/sockios.h
-#usr/lib/klibc/include/linux/som.h
-#usr/lib/klibc/include/linux/sonet.h
-#usr/lib/klibc/include/linux/sonypi.h
-#usr/lib/klibc/include/linux/sort.h
-#usr/lib/klibc/include/linux/sound.h
-#usr/lib/klibc/include/linux/soundcard.h
-#usr/lib/klibc/include/linux/spi
-#usr/lib/klibc/include/linux/spi/ads7846.h
-#usr/lib/klibc/include/linux/spi/flash.h
-#usr/lib/klibc/include/linux/spi/spi.h
-#usr/lib/klibc/include/linux/spi/spi_bitbang.h
-#usr/lib/klibc/include/linux/spinlock.h
-#usr/lib/klibc/include/linux/spinlock_api_smp.h
-#usr/lib/klibc/include/linux/spinlock_api_up.h
-#usr/lib/klibc/include/linux/spinlock_types.h
-#usr/lib/klibc/include/linux/spinlock_types_up.h
-#usr/lib/klibc/include/linux/spinlock_up.h
-#usr/lib/klibc/include/linux/squashfs_fs.h
-#usr/lib/klibc/include/linux/squashfs_fs_i.h
-#usr/lib/klibc/include/linux/squashfs_fs_sb.h
-#usr/lib/klibc/include/linux/stallion.h
-#usr/lib/klibc/include/linux/stat.h
-#usr/lib/klibc/include/linux/statfs.h
-#usr/lib/klibc/include/linux/stddef.h
-#usr/lib/klibc/include/linux/stop_machine.h
-#usr/lib/klibc/include/linux/string.h
-#usr/lib/klibc/include/linux/stringify.h
-#usr/lib/klibc/include/linux/sunrpc
-#usr/lib/klibc/include/linux/sunrpc/auth.h
-#usr/lib/klibc/include/linux/sunrpc/auth_gss.h
-#usr/lib/klibc/include/linux/sunrpc/cache.h
-#usr/lib/klibc/include/linux/sunrpc/clnt.h
-#usr/lib/klibc/include/linux/sunrpc/debug.h
-#usr/lib/klibc/include/linux/sunrpc/gss_api.h
-#usr/lib/klibc/include/linux/sunrpc/gss_asn1.h
-#usr/lib/klibc/include/linux/sunrpc/gss_err.h
-#usr/lib/klibc/include/linux/sunrpc/gss_krb5.h
-#usr/lib/klibc/include/linux/sunrpc/gss_spkm3.h
-#usr/lib/klibc/include/linux/sunrpc/msg_prot.h
-#usr/lib/klibc/include/linux/sunrpc/rpc_pipe_fs.h
-#usr/lib/klibc/include/linux/sunrpc/sched.h
-#usr/lib/klibc/include/linux/sunrpc/stats.h
-#usr/lib/klibc/include/linux/sunrpc/svc.h
-#usr/lib/klibc/include/linux/sunrpc/svcauth.h
-#usr/lib/klibc/include/linux/sunrpc/svcauth_gss.h
-#usr/lib/klibc/include/linux/sunrpc/svcsock.h
-#usr/lib/klibc/include/linux/sunrpc/timer.h
-#usr/lib/klibc/include/linux/sunrpc/types.h
-#usr/lib/klibc/include/linux/sunrpc/xdr.h
-#usr/lib/klibc/include/linux/sunrpc/xprt.h
-#usr/lib/klibc/include/linux/superhyway.h
-#usr/lib/klibc/include/linux/suspend.h
-#usr/lib/klibc/include/linux/swap.h
-#usr/lib/klibc/include/linux/swapops.h
-#usr/lib/klibc/include/linux/synclink.h
-#usr/lib/klibc/include/linux/sys.h
-#usr/lib/klibc/include/linux/syscalls.h
-#usr/lib/klibc/include/linux/sysctl.h
-#usr/lib/klibc/include/linux/sysdev.h
-#usr/lib/klibc/include/linux/sysfs.h
-#usr/lib/klibc/include/linux/sysrq.h
-#usr/lib/klibc/include/linux/sysv_fs.h
-#usr/lib/klibc/include/linux/tc_act
-#usr/lib/klibc/include/linux/tc_act/tc_defact.h
-#usr/lib/klibc/include/linux/tc_act/tc_gact.h
-#usr/lib/klibc/include/linux/tc_act/tc_ipt.h
-#usr/lib/klibc/include/linux/tc_act/tc_mirred.h
-#usr/lib/klibc/include/linux/tc_act/tc_pedit.h
-#usr/lib/klibc/include/linux/tc_ematch
-#usr/lib/klibc/include/linux/tc_ematch/tc_em_cmp.h
-#usr/lib/klibc/include/linux/tc_ematch/tc_em_meta.h
-#usr/lib/klibc/include/linux/tc_ematch/tc_em_nbyte.h
-#usr/lib/klibc/include/linux/tc_ematch/tc_em_text.h
-#usr/lib/klibc/include/linux/tcp.h
-#usr/lib/klibc/include/linux/telephony.h
-#usr/lib/klibc/include/linux/termios.h
-#usr/lib/klibc/include/linux/textsearch.h
-#usr/lib/klibc/include/linux/textsearch_fsm.h
-#usr/lib/klibc/include/linux/tfrc.h
-#usr/lib/klibc/include/linux/thread_info.h
-#usr/lib/klibc/include/linux/threads.h
-#usr/lib/klibc/include/linux/ticable.h
-#usr/lib/klibc/include/linux/time.h
-#usr/lib/klibc/include/linux/timer.h
-#usr/lib/klibc/include/linux/times.h
-#usr/lib/klibc/include/linux/timex.h
-#usr/lib/klibc/include/linux/tiocl.h
-#usr/lib/klibc/include/linux/tipc.h
-#usr/lib/klibc/include/linux/tipc_config.h
-#usr/lib/klibc/include/linux/topology.h
-#usr/lib/klibc/include/linux/toshiba.h
-#usr/lib/klibc/include/linux/transport_class.h
-#usr/lib/klibc/include/linux/trdevice.h
-#usr/lib/klibc/include/linux/tty.h
-#usr/lib/klibc/include/linux/tty_driver.h
-#usr/lib/klibc/include/linux/tty_flip.h
-#usr/lib/klibc/include/linux/tty_ldisc.h
-#usr/lib/klibc/include/linux/types.h
-#usr/lib/klibc/include/linux/udf_fs.h
-#usr/lib/klibc/include/linux/udf_fs_i.h
-#usr/lib/klibc/include/linux/udf_fs_sb.h
-#usr/lib/klibc/include/linux/udp.h
-#usr/lib/klibc/include/linux/ufs_fs.h
-#usr/lib/klibc/include/linux/ufs_fs_i.h
-#usr/lib/klibc/include/linux/ufs_fs_sb.h
-#usr/lib/klibc/include/linux/uinput.h
-#usr/lib/klibc/include/linux/uio.h
-#usr/lib/klibc/include/linux/ultrasound.h
-#usr/lib/klibc/include/linux/umem.h
-#usr/lib/klibc/include/linux/un.h
-#usr/lib/klibc/include/linux/unistd.h
-#usr/lib/klibc/include/linux/usb.h
-#usr/lib/klibc/include/linux/usb_cdc.h
-#usr/lib/klibc/include/linux/usb_ch9.h
-#usr/lib/klibc/include/linux/usb_gadget.h
-#usr/lib/klibc/include/linux/usb_gadgetfs.h
-#usr/lib/klibc/include/linux/usb_input.h
-#usr/lib/klibc/include/linux/usb_isp116x.h
-#usr/lib/klibc/include/linux/usb_otg.h
-#usr/lib/klibc/include/linux/usb_sl811.h
-#usr/lib/klibc/include/linux/usb_usual.h
-#usr/lib/klibc/include/linux/usbdevice_fs.h
-#usr/lib/klibc/include/linux/user.h
-#usr/lib/klibc/include/linux/utime.h
-#usr/lib/klibc/include/linux/uts.h
-#usr/lib/klibc/include/linux/utsname.h
-#usr/lib/klibc/include/linux/vermagic.h
-#usr/lib/klibc/include/linux/version.h
-#usr/lib/klibc/include/linux/vfs.h
-#usr/lib/klibc/include/linux/via.h
-#usr/lib/klibc/include/linux/video_decoder.h
-#usr/lib/klibc/include/linux/video_encoder.h
-#usr/lib/klibc/include/linux/videodev.h
-#usr/lib/klibc/include/linux/videodev2.h
-#usr/lib/klibc/include/linux/videotext.h
-#usr/lib/klibc/include/linux/vmalloc.h
-#usr/lib/klibc/include/linux/vt.h
-#usr/lib/klibc/include/linux/vt_buffer.h
-#usr/lib/klibc/include/linux/vt_kern.h
-#usr/lib/klibc/include/linux/wait.h
-#usr/lib/klibc/include/linux/wanpipe.h
-#usr/lib/klibc/include/linux/wanrouter.h
-#usr/lib/klibc/include/linux/watchdog.h
-#usr/lib/klibc/include/linux/wavefront.h
-#usr/lib/klibc/include/linux/wireless.h
-#usr/lib/klibc/include/linux/workqueue.h
-#usr/lib/klibc/include/linux/writeback.h
-#usr/lib/klibc/include/linux/x1205.h
-#usr/lib/klibc/include/linux/x25.h
-#usr/lib/klibc/include/linux/xattr.h
-#usr/lib/klibc/include/linux/xfrm.h
-#usr/lib/klibc/include/linux/yam.h
-#usr/lib/klibc/include/linux/zconf.h
-#usr/lib/klibc/include/linux/zftape.h
-#usr/lib/klibc/include/linux/zlib.h
-#usr/lib/klibc/include/linux/zorro.h
-#usr/lib/klibc/include/linux/zorro_ids.h
-#usr/lib/klibc/include/linux/zutil.h
-#usr/lib/klibc/include/malloc.h
-#usr/lib/klibc/include/net
-#usr/lib/klibc/include/net/if.h
-#usr/lib/klibc/include/net/if_arp.h
-#usr/lib/klibc/include/net/if_packet.h
-#usr/lib/klibc/include/net/route.h
-#usr/lib/klibc/include/netinet
-#usr/lib/klibc/include/netinet/if_ether.h
-#usr/lib/klibc/include/netinet/in.h
-#usr/lib/klibc/include/netinet/in6.h
-#usr/lib/klibc/include/netinet/ip.h
-#usr/lib/klibc/include/netinet/tcp.h
-#usr/lib/klibc/include/netinet/udp.h
-#usr/lib/klibc/include/netpacket
-#usr/lib/klibc/include/netpacket/packet.h
-#usr/lib/klibc/include/paths.h
-#usr/lib/klibc/include/poll.h
-#usr/lib/klibc/include/pwd.h
-#usr/lib/klibc/include/sched.h
-#usr/lib/klibc/include/scsi
-#usr/lib/klibc/include/scsi/iscsi_if.h
-#usr/lib/klibc/include/scsi/iscsi_proto.h
-#usr/lib/klibc/include/scsi/scsi.h
-#usr/lib/klibc/include/scsi/scsi_cmnd.h
-#usr/lib/klibc/include/scsi/scsi_dbg.h
-#usr/lib/klibc/include/scsi/scsi_device.h
-#usr/lib/klibc/include/scsi/scsi_devinfo.h
-#usr/lib/klibc/include/scsi/scsi_driver.h
-#usr/lib/klibc/include/scsi/scsi_eh.h
-#usr/lib/klibc/include/scsi/scsi_host.h
-#usr/lib/klibc/include/scsi/scsi_ioctl.h
-#usr/lib/klibc/include/scsi/scsi_request.h
-#usr/lib/klibc/include/scsi/scsi_tcq.h
-#usr/lib/klibc/include/scsi/scsi_transport.h
-#usr/lib/klibc/include/scsi/scsi_transport_fc.h
-#usr/lib/klibc/include/scsi/scsi_transport_iscsi.h
-#usr/lib/klibc/include/scsi/scsi_transport_sas.h
-#usr/lib/klibc/include/scsi/scsi_transport_spi.h
-#usr/lib/klibc/include/scsi/scsicam.h
-#usr/lib/klibc/include/scsi/sg.h
-#usr/lib/klibc/include/scsi/sg_request.h
-#usr/lib/klibc/include/scsi/srp.h
-#usr/lib/klibc/include/setjmp.h
-#usr/lib/klibc/include/signal.h
-#usr/lib/klibc/include/stdarg.h
-#usr/lib/klibc/include/stddef.h
-#usr/lib/klibc/include/stdint.h
-#usr/lib/klibc/include/stdio.h
-#usr/lib/klibc/include/stdlib.h
-#usr/lib/klibc/include/string.h
-#usr/lib/klibc/include/sys
-#usr/lib/klibc/include/sys/dirent.h
-#usr/lib/klibc/include/sys/elf32.h
-#usr/lib/klibc/include/sys/elf64.h
-#usr/lib/klibc/include/sys/elfcommon.h
-#usr/lib/klibc/include/sys/fsuid.h
-#usr/lib/klibc/include/sys/inotify.h
-#usr/lib/klibc/include/sys/ioctl.h
-#usr/lib/klibc/include/sys/klog.h
-#usr/lib/klibc/include/sys/md.h
-#usr/lib/klibc/include/sys/mman.h
-#usr/lib/klibc/include/sys/mount.h
-#usr/lib/klibc/include/sys/param.h
-#usr/lib/klibc/include/sys/poll.h
-#usr/lib/klibc/include/sys/prctl.h
-#usr/lib/klibc/include/sys/reboot.h
-#usr/lib/klibc/include/sys/resource.h
-#usr/lib/klibc/include/sys/select.h
-#usr/lib/klibc/include/sys/sendfile.h
-#usr/lib/klibc/include/sys/socket.h
-#usr/lib/klibc/include/sys/socketcalls.h
-#usr/lib/klibc/include/sys/splice.h
-#usr/lib/klibc/include/sys/stat.h
-#usr/lib/klibc/include/sys/statfs.h
-#usr/lib/klibc/include/sys/syscall.h
-#usr/lib/klibc/include/sys/sysinfo.h
-#usr/lib/klibc/include/sys/sysmacros.h
-#usr/lib/klibc/include/sys/time.h
-#usr/lib/klibc/include/sys/times.h
-#usr/lib/klibc/include/sys/types.h
-#usr/lib/klibc/include/sys/uio.h
-#usr/lib/klibc/include/sys/un.h
-#usr/lib/klibc/include/sys/utime.h
-#usr/lib/klibc/include/sys/utsname.h
-#usr/lib/klibc/include/sys/vfs.h
-#usr/lib/klibc/include/sys/wait.h
-#usr/lib/klibc/include/sysexits.h
-#usr/lib/klibc/include/syslog.h
-#usr/lib/klibc/include/termios.h
-#usr/lib/klibc/include/time.h
-#usr/lib/klibc/include/unistd.h
-#usr/lib/klibc/include/utime.h
-#usr/lib/klibc/include/zconf.h
-#usr/lib/klibc/include/zlib.h
-#usr/lib/klibc/lib
-#usr/lib/klibc/lib/crt0.o
-#usr/lib/klibc/lib/interp.o
-usr/lib/klibc/lib/klibc-OAjdpFbBkEGH4SoDC_yBoygNI8g.so
-#usr/lib/klibc/lib/libc.a
-usr/lib/klibc/lib/libc.so
-#usr/man/man1/klcc.1
diff --git a/config/rootfiles/updater/filelists/setup b/config/rootfiles/updater/filelists/setup
new file mode 100644
index 000000000..1e3306812
--- /dev/null
+++ b/config/rootfiles/updater/filelists/setup
@@ -0,0 +1,2 @@
+usr/local/sbin/setup
+bin/probenic.sh
diff --git a/config/rootfiles/updater/filelists/udev b/config/rootfiles/updater/filelists/udev
deleted file mode 100644
index adf1c614c..000000000
--- a/config/rootfiles/updater/filelists/udev
+++ /dev/null
@@ -1,73 +0,0 @@
-etc/scsi_id.config
-etc/modprobe.d/blacklist
-etc/udev
-#etc/udev/rules.d
-#etc/udev/rules.d/05-udev-early.rules
-#etc/udev/rules.d/25-lfs.rules
-#etc/udev/rules.d/26-modprobe.rules
-#etc/udev/rules.d/27-firmware.rules
-#etc/udev/rules.d/60-persistent-storage.rules
-#etc/udev/rules.d/81-cdrom.rules
-#etc/udev/udev.conf
-lib/firmware
-lib/libvolume_id.so.0
-lib/libvolume_id.so.0.66.0
-lib/udev
-#lib/udev/ata_id
-#lib/udev/cdrom_id
-#lib/udev/create_floppy_devices
-#lib/udev/devices
-#lib/udev/devices/core
-#lib/udev/devices/fd
-#lib/udev/devices/null
-#lib/udev/devices/pts
-#lib/udev/devices/shm
-#lib/udev/devices/stderr
-#lib/udev/devices/stdin
-#lib/udev/devices/stdout
-#lib/udev/edd_id
-#lib/udev/firmware.sh
-#lib/udev/path_id
-#lib/udev/scsi_id
-#lib/udev/usb_id
-#lib/udev/vol_id
-sbin/scsi_id
-sbin/udevcontrol
-sbin/udevd
-sbin/udevsettle
-sbin/udevtrigger
-usr/bin/udevinfo
-usr/bin/udevtest
-#usr/include/libvolume_id.h
-#usr/lib/libvolume_id.a
-usr/lib/libvolume_id.so
-#usr/lib/pkgconfig/libvolume_id.pc
-usr/sbin/udevmonitor
-#usr/share/doc/udev-096
-#usr/share/doc/udev-096/index.html
-#usr/share/man/man7/udev.7
-#usr/share/man/man8/ata_id.8
-#usr/share/man/man8/cdrom_id.8
-#usr/share/man/man8/edd_id.8
-#usr/share/man/man8/scsi_id.8
-#usr/share/man/man8/udevcontrol.8
-#usr/share/man/man8/udevd.8
-#usr/share/man/man8/udevinfo.8
-#usr/share/man/man8/udevmonitor.8
-#usr/share/man/man8/udevsettle.8
-#usr/share/man/man8/udevtest.8
-#usr/share/man/man8/udevtrigger.8
-#usr/share/man/man8/vol_id.8
-lib/initcpio/hooks/udev
-lib/initcpio/install/udev
-#lib/initcpio/udev
-lib/initcpio/udev/cdrom_id
-lib/initcpio/udev/firmware.sh
-lib/initcpio/udev/load-modules.sh
-lib/initcpio/udev/start_udev
-lib/initcpio/udev/udev.rules
-lib/initcpio/udev/udevd
-lib/initcpio/udev/udevsettle
-lib/initcpio/udev/udevtrigger
-etc/udev/dvb.sh
-etc/udev/rules.d/10-dvb.rules
diff --git a/config/rootfiles/updater/filelists/wireless b/config/rootfiles/updater/filelists/wireless
new file mode 100644
index 000000000..70d20fb8d
--- /dev/null
+++ b/config/rootfiles/updater/filelists/wireless
@@ -0,0 +1,20 @@
+#usr/include/iwlib.h
+#usr/include/wireless.h
+#usr/lib/libiw.so
+#usr/lib/libiw.so.28
+#usr/man/man5/iftab.5
+#usr/man/man7/wireless.7
+#usr/man/man8/ifrename.8
+#usr/man/man8/iwconfig.8
+#usr/man/man8/iwevent.8
+#usr/man/man8/iwgetid.8
+#usr/man/man8/iwlist.8
+#usr/man/man8/iwpriv.8
+#usr/man/man8/iwspy.8
+usr/sbin/ifrename
+usr/sbin/iwconfig
+usr/sbin/iwevent
+usr/sbin/iwgetid
+usr/sbin/iwlist
+usr/sbin/iwpriv
+usr/sbin/iwspy
diff --git a/config/rootfiles/updater/update.sh b/config/rootfiles/updater/update.sh
index 1f601877f..4096c1d2f 100755
--- a/config/rootfiles/updater/update.sh
+++ b/config/rootfiles/updater/update.sh
@@ -40,9 +40,9 @@ echo
#
# check if we the backup file already exist
if [ -e /var/ipfire/backup/update_$OLDVERSION-$NEWVERSION.tar.bz2 ]; then
- echo Error! The backupfile of this update already exist!!!
- echo Have you already installed this update?
- exit 3
+ echo Moving backup to backup-old ...
+ mv -f /var/ipfire/backup/update_$OLDVERSION-$NEWVERSION.tar.bz2 \
+ /var/ipfire/backup/update_$OLDVERSION-$NEWVERSION-old.tar.bz2
fi
echo First we made a backup of all files that was inside of the
echo update archive. This may take a while ...
@@ -109,11 +109,26 @@ rm -f /opt/pakfire/db/lists/*list.db
echo IPFire v$NEWVERSION - www.ipfire.org > /etc/issue
echo =================================== >> /etc/issue
echo \\n running on \\s \\r \\m >> /etc/issue
-# Core 15 begin
+# Core 16 begin
perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
/etc/init.d/mISDN config
-# Core 15 end
-echo
-echo
-echo Update to IPFire $NEWVERSION finished. Please reboot...
+# Core 16 end
+#
+# Remove obsolete packages
+#
+echo '#!/bin/bash' > /tmp/remove_obsolete_paks
+echo 'while [ "$(ps -A | grep " update.sh")" != "" ]; do' >> /tmp/remove_obsolete_paks
+echo ' sleep 2' >> /tmp/remove_obsolete_paks
+echo 'done' >> /tmp/remove_obsolete_paks
+echo 'while [ "$(ps -A | grep " pakfire")" != "" ]; do' >> /tmp/remove_obsolete_paks
+echo ' sleep 2' >> /tmp/remove_obsolete_paks
+echo 'done' >> /tmp/remove_obsolete_paks
+echo '/opt/pakfire/pakfire remove zaptel -y' >> /tmp/remove_obsolete_paks
+echo 'echo' >> /tmp/remove_obsolete_paks
+echo 'echo Update to IPFire $NEWVERSION finished. Please reboot... ' >> /tmp/remove_obsolete_paks
+echo 'echo' >> /tmp/remove_obsolete_paks
+chmod +x /tmp/remove_obsolete_paks
+/tmp/remove_obsolete_paks &
echo
+echo Please wait until pakfire has ended...
+echo
\ No newline at end of file
diff --git a/config/v4l-dvb/config b/config/v4l-dvb/config
deleted file mode 100644
index 7ed000357..000000000
--- a/config/v4l-dvb/config
+++ /dev/null
@@ -1,388 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version:
-# Wed Jul 9 17:38:39 2008
-#
-CONFIG_INPUT=y
-CONFIG_USB=m
-# CONFIG_SPARC64 is not set
-CONFIG_FW_LOADER=m
-# CONFIG_of is not set
-# CONFIG_M is not set
-# CONFIG_PLAT_M32700UT is not set
-# CONFIG_GENERIC_GPIO is not set
-# CONFIG_SOUND_PRIME is not set
-# CONFIG_dependencies is not set
-CONFIG_FB_CFB_IMAGEBLIT=m
-# CONFIG_GPIO_PCA953X is not set
-# CONFIG_dependency is not set
-CONFIG_SND_MPU401_UART=m
-CONFIG_SND=m
-# CONFIG_BROKEN is not set
-# CONFIG_PPC_PMAC is not set
-# CONFIG_SPARC32 is not set
-CONFIG_I2C_ALGOBIT=m
-# CONFIG_IR is not set
-CONFIG_INET=y
-# CONFIG_SOUND_OSS is not set
-CONFIG_CRC32=m
-CONFIG_SYSFS=y
-CONFIG_ISA=y
-CONFIG_PCI=y
-CONFIG_PARPORT_1284=y
-CONFIG_FB_CFB_FILLRECT=m
-CONFIG_VIRT_TO_BUS=y
-CONFIG_PARPORT=m
-# CONFIG_Avoids is not set
-# CONFIG_due is not set
-CONFIG_NET=y
-CONFIG_FB_CFB_COPYAREA=m
-CONFIG_SND_AC97_CODEC=m
-# CONFIG_PXA27x is not set
-# CONFIG_SGI_IP22 is not set
-CONFIG_I2C=m
-CONFIG_HOTPLUG=y
-# CONFIG_STANDALONE is not set
-# CONFIG_Y is not set
-CONFIG_MODULES=y
-CONFIG_HAS_IOMEM=y
-CONFIG_SND_OPL3_LIB=m
-CONFIG_PROC_FS=y
-# CONFIG_DVB_FE_CUSTOMIZE is not set
-# CONFIG_to is not set
-# CONFIG_HAS_DMA is not set
-# CONFIG_pvrusb is not set
-CONFIG_FB=y
-CONFIG_DVB=y
-# CONFIG_SONY_LAPTOP is not set
-CONFIG_SND_PCM=m
-CONFIG_EXPERIMENTAL=y
-# CONFIG_M32R is not set
-# CONFIG_I2C_ALGO_SGI is not set
-# CONFIG_VIDEO_KERNEL_VERSION is not set
-
-#
-# Multimedia devices
-#
-
-#
-# 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_MEDIA_ATTACH=y
-CONFIG_MEDIA_TUNER=m
-CONFIG_MEDIA_TUNER_CUSTOMIZE=y
-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_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_IR_I2C=m
-CONFIG_VIDEO_IR=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
-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_WM8775=m
-CONFIG_VIDEO_WM8739=m
-CONFIG_VIDEO_VP27SMPX=m
-CONFIG_VIDEO_BT819=m
-CONFIG_VIDEO_BT856=m
-CONFIG_VIDEO_KS0127=m
-CONFIG_VIDEO_OV7670=m
-CONFIG_VIDEO_SAA7110=m
-CONFIG_VIDEO_SAA7111=m
-CONFIG_VIDEO_SAA7114=m
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_SAA717X=m
-CONFIG_VIDEO_TVP5150=m
-CONFIG_VIDEO_VPX3220=m
-CONFIG_VIDEO_CX25840=m
-CONFIG_VIDEO_CX2341X=m
-CONFIG_VIDEO_SAA7127=m
-CONFIG_VIDEO_SAA7185=m
-CONFIG_VIDEO_ADV7170=m
-CONFIG_VIDEO_ADV7175=m
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
-# CONFIG_VIDEO_VIVI is not set
-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
-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_TUNER_3036=m
-CONFIG_VIDEO_STRADIS=m
-CONFIG_VIDEO_ZORAN_ZR36060=m
-CONFIG_VIDEO_ZORAN=m
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_ZORAN_AVS6EYES=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_SAA7134_DVB=m
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_DPC=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_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_CAFE_CCIC=m
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_USB_GSPCA=m
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-CONFIG_VIDEO_PVRUSB2_DVB=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_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_ZR364XX=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_SF16FMI=m
-CONFIG_RADIO_SF16FMR2=m
-CONFIG_RADIO_TERRATEC=m
-CONFIG_RADIO_TRUST=m
-CONFIG_RADIO_TYPHOON=m
-CONFIG_RADIO_TYPHOON_PROC_FS=y
-CONFIG_RADIO_ZOLTRIX=m
-CONFIG_USB_DSBR=m
-CONFIG_USB_SI470X=m
-CONFIG_DVB_CAPTURE_DRIVERS=y
-
-#
-# Supported SAA7146 based PCI Adapters
-#
-CONFIG_TTPCI_EEPROM=m
-CONFIG_DVB_AV7110=m
-# CONFIG_DVB_AV7110_FIRMWARE is not set
-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_ANYSEE=m
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-CONFIG_DVB_CINERGYT2=m
-# CONFIG_DVB_CINERGYT2_TUNING is not set
-
-#
-# 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 DVB Frontends
-#
-
-#
-# Customise DVB Frontends
-#
-# CONFIG_DVB_FE_CUSTOMISE is not set
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_DRX397XD=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
-
-#
-# DVB-C (cable) frontends
-#
-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_S5H1409=m
-CONFIG_DVB_AU8522=m
-CONFIG_DVB_S5H1411=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
-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_DAB=y
-CONFIG_USB_DABUSB=m
-
-#
-# Audio devices for multimedia
-#
-
-#
-# ALSA sound
-#
-CONFIG_SND_BT87X=m
-CONFIG_SND_BT87X_OVERCLOCK=y
-
-#
-# OSS sound
-#
diff --git a/doc/packages-list.txt b/doc/packages-list.txt
index d50a76fde..89dfac415 100644
--- a/doc/packages-list.txt
+++ b/doc/packages-list.txt
@@ -39,7 +39,6 @@
* arptables-v0.0.3-3
* as86-0.16.17
* asterisk-1.4.18
-* asterisk-1.4.18_old
* atl2-2.0.4
* autoconf-2.59
* automake-1.9.6
@@ -73,7 +72,7 @@
* dhcp-3.1.0
* dhcpcd-2.0.8
* diffutils-2.8.1
-* dnsmasq-2.40
+* dnsmasq-2.45
* dosfstools-2.11
* e2fsprogs-1.39
* ebtables-v2.0.8-2
@@ -126,17 +125,16 @@
* icegenerator-0.5.5-pre2
* igmpproxy-src-0.1-beta2
* inetutils-1.4.2
-* initscripts_old
* ipaddr-1.2
* ipfireseeder-1.00
* iproute2-2.6.16-060323
-* iptables-1.4.0
+* iptables-1.3.8
* iptstate-2.1
* iputils-ss020927
* java-1.5.0_06-for-ipfire
* jpegsrc.v6b
* kbd-1.12
-* klibc-1.5.10
+* klibc-1.5
* kqemu-1.3.0pre11
* kudzu-1.2.64
* l7-protocols-2007-10-10
@@ -166,10 +164,9 @@
* libwww-perl-5.803
* libxml2-2.6.26
* libxslt-1.1.17
-* linux-2.6.24.7
-* linux-2.6.24.7-smp_old
-* linux-2.6.24.7_old
+* linux-2.6.23.17
* linux-atm-2.4.1
+* linux-fusion-7.0.1
* linux-libc-headers-2.6.12.0
* linuxigd-0.95
* lm_sensors-3.0.2
@@ -219,9 +216,8 @@
* openmailadmin-1.0.0
* openssh-4.7p1
* openssl-0.9.8g
-* openswan-2.6.14
-* openswan-2.6.14-kmod
-* openswan-2.6.16dr2
+* openswan-2.4.12
+* openswan-2.4.12-kmod
* openvpn-2.0.9
* pam_mysql-0.7RC1
* patch-2.5.4
@@ -239,6 +235,8 @@
* procps-3.2.6
* psmisc-22.2
* qemu-0.9.1
+* r8168-8.005.00
+* r8169-6.005.00
* readline-5.1
* reiser4progs-1.0.5
* reiserfsprogs-3.6.19
@@ -268,7 +266,7 @@
* sudo-1.6.8p12
* sysfsutils-1.3.0
* sysklogd-1.4.1
-* syslinux-3.11
+* syslinux-3.62
* sysstat-6.0.2
* sysvinit-2.86
* tar-1.15.1
@@ -278,7 +276,6 @@
* teamspeak-2.0.24.1
* texinfo-4.8
* tftp-hpa-0.48
-* tftp-hpa-0.48_old
* tiff-3.8.2
* traceroute-1.4a12
* tripwire-2.4.1.2
@@ -301,7 +298,7 @@
* wget-1.10.2
* whatmask-1.2
* which-2.16
-* wireless_tools.28
+* wireless_tools.30.pre6
* wpa_supplicant-0.5.10
* xfsprogs-2.9.4
* xvidcore-1.1.0
diff --git a/lfs/atl1 b/lfs/atl1
deleted file mode 100644
index 399b7f6b9..000000000
--- a/lfs/atl1
+++ /dev/null
@@ -1,90 +0,0 @@
-###############################################################################
-# #
-# IPFire.org - A linux based firewall #
-# Copyright (C) 2007 Michael Tremer & Christian Schmidt #
-# #
-# 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 3 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 . #
-# #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER = 1.2.40.2
-
-THISAPP = atl1-$(VER)
-DL_FILE = $(THISAPP).tar.bz2
-DL_FROM = $(URL_IPFIRE)
-DIR_APP = $(DIR_SRC)/$(THISAPP)
-ifeq "$(SMP)" "1"
- TARGET = $(DIR_INFO)/$(THISAPP)-smp
-else
- TARGET = $(DIR_INFO)/$(THISAPP)
-endif
-
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = b9f30f9d3c9ab2e98309f8d229713b27
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist:
- $(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
- @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
- @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
- @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
- @$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-
-ifeq "$(SMP)" "1"
- cd $(DIR_APP)/src && make -C /lib/modules/$(KVER)-ipfire-smp/build/ SUBDIRS=$(DIR_APP)/src modules
- cd $(DIR_APP)/src && install -m 644 atl1.ko /lib/modules/$(KVER)-ipfire-smp/kernel/drivers/net
-else
- cd $(DIR_APP)/src && make -C /lib/modules/$(KVER)-ipfire/build/ SUBDIRS=$(DIR_APP)/src modules
- cd $(DIR_APP)/src && install -m 644 atl1.ko /lib/modules/$(KVER)-ipfire/kernel/drivers/net
-endif
- @rm -rf $(DIR_APP)
- @$(POSTBUILD)
diff --git a/lfs/dnsmasq b/lfs/dnsmasq
index faae59c8f..4804c1d94 100644
--- a/lfs/dnsmasq
+++ b/lfs/dnsmasq
@@ -24,7 +24,7 @@
include Config
-VER = 2.40
+VER = 2.45
THISAPP = dnsmasq-$(VER)
DL_FILE = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 91b6063ae81146b9d70b4381b2f3e44f
+$(DL_FILE)_MD5 = b7956e15c9766e05b3eca3ce88fdb616
install : $(TARGET)
@@ -70,10 +70,11 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && sed -i -e 's|/usr/local|/usr|g' Makefile
cd $(DIR_APP)/src && sed -i \
-e 's|^\/\* #define HAVE_ISC_READER .*$$|#define HAVE_ISC_READER\n#define NO_IPV6|' \
-e 's/^#define CHUSER .*$$/#define CHUSER "dnsmasq"/' config.h
cd $(DIR_APP) && make $(MAKETUNING)
- cd $(DIR_APP) && PREFIX=/usr make install
+ cd $(DIR_APP) && make install
@rm -rf $(DIR_APP)
@$(POSTBUILD)
diff --git a/lfs/initrd b/lfs/initrd
index 94c937c2b..79b355827 100644
--- a/lfs/initrd
+++ b/lfs/initrd
@@ -82,9 +82,9 @@ $(TARGET) :
-b /install/initrd $(KVER)-ipfire
# Change priority of pata module
- cd /install/initrd/lib/modules/$(KVER)-ipfire && grep "# \|ata" \
+ cd /install/initrd/lib/modules/$(KVER)-ipfire && grep "# \|ata\|ahci" \
modules.alias > modules.alias.tmp
- cd /install/initrd/lib/modules/$(KVER)-ipfire && grep -v "# \|ata" \
+ cd /install/initrd/lib/modules/$(KVER)-ipfire && grep -v "# \|ata\|ahci" \
modules.alias >> modules.alias.tmp
cd /install/initrd/lib/modules/$(KVER)-ipfire && mv -f \
modules.alias.tmp modules.alias
diff --git a/lfs/initscripts b/lfs/initscripts
index c56b2b97a..fff10c1a3 100644
--- a/lfs/initscripts
+++ b/lfs/initscripts
@@ -126,6 +126,7 @@ $(TARGET) :
ln -sf ../init.d/mountkernfs /etc/rc.d/rcsysinit.d/S00mountkernfs
ln -sf ../init.d/modules /etc/rc.d/rcsysinit.d/S05modules
ln -sf ../init.d/udev /etc/rc.d/rcsysinit.d/S10udev
+ ln -sf ../init.d/checkfstab /etc/rc.d/rcsysinit.d/S19checkfstab
ln -sf ../init.d/swap /etc/rc.d/rcsysinit.d/S20swap
ln -sf ../init.d/checkfs /etc/rc.d/rcsysinit.d/S30checkfs
ln -sf ../init.d/mountfs /etc/rc.d/rcsysinit.d/S40mountfs
diff --git a/lfs/linux b/lfs/linux
index 7066252eb..ca756f410 100644
--- a/lfs/linux
+++ b/lfs/linux
@@ -95,9 +95,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
ln -s linux-$(VER) /usr/src/linux
# Security fix for CIFS & Netfilter SNMP
-# cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.20.21-additional_check_on_BER_decoding.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.20.21-additional_check_on_BER_decoding.patch
- # Openswan nat-t
+ # Openswan
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openswan-2.4.x.kernel-2.6.23-natt.patch
# Reiser4
diff --git a/lfs/openswan b/lfs/openswan
index 76eb5c90d..d6e71b214 100644
--- a/lfs/openswan
+++ b/lfs/openswan
@@ -24,7 +24,7 @@
include Config
-VER = 2.4.13
+VER = 2.4.12
THISAPP = openswan-$(VER)
DL_FILE = $(THISAPP).tar.gz
@@ -48,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 0c2505cf2639a7de051e815f41e8e1f4
+$(DL_FILE)_MD5 = 0bca0cc205d2d83eff64a7cea825ce7a
install : $(TARGET)
diff --git a/lfs/updater b/lfs/updater
index e22cd3c95..176ee8a4e 100644
--- a/lfs/updater
+++ b/lfs/updater
@@ -70,13 +70,13 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
# Other files
cp $(DIR_SRC)/config/rootfiles/updater/update.sh /install/updater/
chmod 755 /install/updater/update.sh
- cd /install/updater && tar cf /install/packages/core-upgrade-2.1-15.ipfire \
+ cd /install/updater && tar cf /install/packages/core-upgrade-2.1-16.ipfire \
update.sh files ROOTFILES
rm -rf /install/updater
sed -e "s/NAME/core-upgrade/g" \
-e "s/VER/2.1/g" \
- -e "s/RELEASE/15/g" \
+ -e "s/RELEASE/16/g" \
-e "s/DEPS/$(DEPS)/g" \
- -e "s/SIZE/`ls -l \/install\/packages\/core-upgrade-2.1-15.ipfire | awk '{ print $$5 }'`/g" \
- < /usr/src/src/pakfire/meta > /install/packages/meta-core-upgrade-15
+ -e "s/SIZE/`ls -l \/install\/packages\/core-upgrade-2.1-16.ipfire | awk '{ print $$5 }'`/g" \
+ < /usr/src/src/pakfire/meta > /install/packages/meta-core-upgrade-16
diff --git a/lfs/v4l-dvb b/lfs/v4l-dvb
index cfaf36798..5dd5ef4cc 100644
--- a/lfs/v4l-dvb
+++ b/lfs/v4l-dvb
@@ -78,7 +78,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
- cp -f $(DIR_SRC)/config/v4l-dvb/config $(DIR_APP)/v4l/.config
+# cp -f $(DIR_SRC)/config/v4l-dvb/config $(DIR_APP)/v4l/.config
ifeq "$(SMP)" "1"
cd $(DIR_APP) && make release VER=$(KVER)-ipfire-smp
else
diff --git a/lfs/wireless b/lfs/wireless
index cf14ebad4..bb0783753 100644
--- a/lfs/wireless
+++ b/lfs/wireless
@@ -24,12 +24,13 @@
include Config
-VER = 28
+VER = 30.pre6
THISAPP = wireless_tools.$(VER)
DL_FILE = $(THISAPP).tar.gz
DL_FROM = $(URL_IPFIRE)
-DIR_APP = $(DIR_SRC)/$(THISAPP)
+#DIR_APP = $(DIR_SRC)/$(THISAPP)
+DIR_APP = $(DIR_SRC)/wireless_tools.30
TARGET = $(DIR_INFO)/$(THISAPP)
###############################################################################
@@ -40,8 +41,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 599c94497f9c9073c7b052d3dcb7cd16
-
+$(DL_FILE)_MD5 = 4f42f95e6ec8890b2cebd27aeddf954f
install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects))
diff --git a/make.sh b/make.sh
index 929a1424f..3302773e5 100755
--- a/make.sh
+++ b/make.sh
@@ -24,7 +24,7 @@
NAME="IPFire" # Software name
SNAME="ipfire" # Short name
-VERSION="2.3-test"
+VERSION="2.3-beta2"
GIT_BRANCH=master:master # Version number
SLOGAN="www.ipfire.org" # Software slogan
CONFIG_ROOT=/var/ipfire # Configuration rootdir
@@ -338,23 +338,23 @@ buildipfire() {
# ipfiremake ipp2p SMP=1
ipfiremake r8169 SMP=1
ipfiremake r8168 SMP=1
-# ipfiremake atl1 SMP=1
ipfiremake atl2 SMP=1
ipfiremake kqemu SMP=1
ipfiremake v4l-dvb SMP=1
ipfiremake madwifi SMP=1
ipfiremake sane KMOD=1 SMP=1
+ ipfiremake openswan KMOD=1 SMP=1
ipfiremake linux
ipfiremake linux-fusion
# ipfiremake ipp2p
ipfiremake r8169
ipfiremake r8168
-# ipfiremake atl1
ipfiremake atl2
-# ipfiremake kqemu
+ ipfiremake kqemu
ipfiremake v4l-dvb
ipfiremake madwifi
ipfiremake sane KMOD=1
+ ipfiremake openswan KMOD=1
ipfiremake pkg-config
ipfiremake linux-atm
ipfiremake cpio
diff --git a/src/hwdata/pci.ids b/src/hwdata/pci.ids
index 69eb9ac04..ca63c76ff 100644
--- a/src/hwdata/pci.ids
+++ b/src/hwdata/pci.ids
@@ -11,7 +11,7 @@
# This file can be distributed under either the GNU General Public License
# (version 2 or higher) or the 3-clause BSD License.
#
-# Daily snapshot on Sat 2007-11-03 02:05:01
+# Daily snapshot on Tue 2008-07-22 01:05:01
#
# Vendors, devices and subsystems. Please keep sorted.
@@ -40,6 +40,7 @@
4800 WinTV PVR-350
4801 WinTV PVR-250 MCE
4803 WinTV PVR-250
+ 7801 WinTV HVR-1800 MCE
8003 WinTV PVR-150
8801 WinTV PVR-150
c801 WinTV PVR-150
@@ -84,7 +85,6 @@
7050 F5D7050 802.11g Wireless USB Adapter
705c F5D7050 v4
058f Alcor Micro Corporation
- 9254 AU9254 (4-port USB hub)
05a9 OmniVision
8519 OV519 series
05e3 CyberDoor
@@ -203,8 +203,8 @@
ae10 Smart-2/P RAID Controller
0e11 4030 Smart-2/P Array Controller
0e11 4031 Smart-2SL Array Controller
- 0e11 4032 Smart Array Controller
- 0e11 4033 Smart 3100ES Array Controller
+ 0e11 4032 Smart Array 3200 Controller
+ 0e11 4033 Smart Array 3100ES Controller
ae29 MIS-L
ae2a MPC
ae2b MIS-E
@@ -291,7 +291,7 @@
4c53 1000 CC7/CR7/CP7/VC7/VP7/VR7 mainboard
4c53 1050 CT7 mainboard
0010 53C1510
- 0e11 4040 Integrated Array Controller
+ 0e11 4040 Integrated Smart Array Controller
0e11 4048 RAID LC2 Controller
1000 1000 53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Intelligent mode)
0012 53c895a
@@ -305,6 +305,8 @@
0021 53c1010 66MHz Ultra3 SCSI Adapter
1000 1000 LSI53C1000/1000R/1010R/1010-66 PCI to Ultra160 SCSI Controller
1000 1010 Asus TR-DLS onboard 53C1010-66
+ 103c 1300 Ultra160 SCSI [AB306A]
+ 103c 1310 Ultra160 SCSI [A9918A]
103c 1330 Ultra160 SCSI [A7059A]
103c 1340 Ultra160 SCSI [A7060A]
124b 1070 PMC-USCSI3
@@ -321,7 +323,7 @@
1028 1010 LSI U320 SCSI Controller
103c 12c5 Ultra320 SCSI [A7173A]
124b 1170 PMC-USCSI320
- 1734 1052 Primergy RX300 S2
+ 1734 1052 PRIMERGY BX/RX/TX S2 series onboard SCSI(IME)
0031 53c1030ZC PCI-X Fusion-MPT Dual Ultra320 SCSI
0032 53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI
1000 1000 LSI53C1020/1030 PCI-X to Ultra320 SCSI Controller
@@ -349,6 +351,7 @@
1028 1f0e SAS 6/iR Adapter RAID Controller
1028 1f0f SAS 6/iR Integrated Blades RAID Controller
1028 1f10 SAS 6/iR Integrated RAID Controller
+ 0059 MegaRAID SAS 8208ELP/8208ELP
005a SAS1066E PCI-Express Fusion-MPT SAS
005c SAS1064A PCI-X Fusion-MPT SAS
005e SAS1066 PCI-X Fusion-MPT SAS
@@ -383,6 +386,8 @@
8086 34cd Integrated RAID Controller SROMBSAS28E
0062 SAS1078 PCI-Express Fusion-MPT SAS
1000 0062 SAS1078 PCI-Express Fusion-MPT SAS
+ 007c MegaRAID SAS 1078DE
+ 1014 0395 ServeRAID-AR10is SAS/SATA Controller
008f 53c875J
1092 8000 FirePort 40 SCSI Controller
1092 8760 FirePort 40 Dual SCSI Host Adapter
@@ -480,6 +485,7 @@
9100 INI-9100/9100W SCSI Host
1002 ATI Technologies Inc
3150 M24 1P [Radeon Mobility X600]
+ 103c 0934 nx8220
3151 M24 [FireMV 2400]
3152 M22 [Radeon Mobility X300]
3154 M24GL [Mobility FireGL V3200]
@@ -557,9 +563,10 @@
103c 0024 Pavilion ze4400 builtin Video
161f 2029 eMachines M5312 builtin Video
4337 Radeon IGP 330M/340M/350M
- 1014 053a ThinkPad R40e (2684-HVG) builtin VGA controller
+ 1014 053a ThinkPad R40e
103c 0850 Radeon IGP 345M
4341 IXP150 AC'97 Audio Controller
+ 4342 IXP200 3COM 3C920B Ethernet Controller
4345 EHCI USB Controller
4347 OHCI USB Controller #1
4348 OHCI USB Controller #2
@@ -578,61 +585,94 @@
107b 0300 MX6421
4371 IXP SB400 PCI-PCI Bridge
103c 308b MX6125
+ 1462 7217 Aspire L250
4372 IXP SB400 SMBus Controller
1025 0080 Aspire 5024WLMMi
103c 308b MX6125
+ 1462 7217 Aspire L250
4373 IXP SB400 USB2 Host Controller
1025 0080 Aspire 5024WLMMi
103c 308b MX6125
+ 1462 7217 Aspire L250
4374 IXP SB400 USB Host Controller
103c 308b MX6125
+ 1462 7217 Aspire L250
4375 IXP SB400 USB Host Controller
1025 0080 Aspire 5024WLMMi
103c 308b MX6125
- 4376 Standard Dual Channel PCI IDE Controller
+ 1462 7217 Aspire L250
+ 4376 IXP SB400 IDE Controller
1025 0080 Aspire 5024WLMMi
103c 308b MX6125
+ 1462 7217 Aspire L250
4377 IXP SB400 PCI-ISA Bridge
1025 0080 Aspire 5024WLMi
103c 308b MX6125
+ 1462 7217 Aspire L250
4378 SB400 AC'97 Modem Controller
1025 0080 Aspire 5024WLMMi
103c 308b MX6125
- 4379 4379 Serial ATA Controller
- 437a 437A Serial ATA Controller
+ 4379 IXP SB400 Serial ATA Controller
+ 1462 7141 Aspire L250
+ 437a IXP SB400 Serial ATA Controller
1002 4379 4379 Serial ATA Controller
1002 437a 437A Serial ATA Controller
+ 1462 7141 Aspire L250
14f1 8800 Leadtek WinFast TV2000XP Expert
- 437b SB450 HDA Audio
+ 437b IXP SB4x0 High Definition Audio Controller
+ 1002 437b IXP SB4x0 High Definition Audio Controller
10cf 1326 Fujitsu Lifebook A3040
1734 10b8 Realtek High Definition Audio
4380 SB600 Non-Raid-5 SATA
+ 103c 2813 DC5750 Microtower
+ 17f2 5999 KI690-AM2 Motherboard
4381 SB600 Raid-5 SATA
4382 SB600 AC97 Audio
4383 SBx00 Azalia
+ 0206 1028 Latitude D531
+ 103c 280a DC5750 Microtower
+ 17f2 5000 KI690-AM2 Motherboard
4384 SBx00 PCI to PCI Bridge
4385 SBx00 SMBus Controller
+ 103c 280a DC5750 Microtower
+ 17f2 5000 KI690-AM2 Motherboard
4386 SB600 USB Controller (EHCI)
+ 103c 280a DC5750 Microtower
+ 17f2 5000 KI690-AM2 Motherboard
4387 SB600 USB (OHCI0)
+ 103c 280a DC5750 Microtower
+ 17f2 5000 KI690-AM2 Motherboard
4388 SB600 USB (OHCI1)
+ 103c 280a DC5750 Microtower
+ 17f2 5000 KI690-AM2 Motherboard
4389 SB600 USB (OHCI2)
+ 103c 280a DC5750 Microtower
+ 17f2 5000 KI690-AM2 Motherboard
438a SB600 USB (OHCI3)
+ 103c 280a DC5750 Microtower
+ 17f2 5000 KI690-AM2 Motherboard
438b SB600 USB (OHCI4)
+ 103c 280a DC5750 Microtower
+ 17f2 5000 KI690-AM2 Motherboard
438c SB600 IDE
+ 103c 280a DC5750 Microtower
+ 17f2 5000 KI690-AM2 Motherboard
438d SB600 PCI to LPC Bridge
+ 103c 280a DC5750 Microtower
+ 17f2 5000 KI690-AM2 Motherboard
438e SB600 AC97 Modem
- 4390 SB700 SATA Controller [IDE mode]
- 4391 SB700 SATA Controller [AHCI mode]
- 4392 SB700 SATA Controller [Non-RAID5 mode]
- 4393 SB700 SATA Controller [RAID5 mode]
- 4394 SB700 SATA Controller [SATA and FC Enabled]
- 4395 SB SATA Controller [AHCI mode with HyperFlash-PCIE]
- 4396 SB700 USB EHCI Controller
- 4397 SB700 USB OHCI0 Controller
- 4398 SB700 USB OHCI1 Controller
- 4399 SB700 USB OHCI2 Controller
- 439c SB700 IDE
- 439d SB700 LPC host controller
+ 4390 SB700/SB800 SATA Controller [IDE mode]
+ 4391 SB700/SB800 SATA Controller [AHCI mode]
+ 4392 SB700/SB800 SATA Controller [Non-RAID5 mode]
+ 4393 SB700/SB800 SATA Controller [RAID5 mode]
+ 4394 SB700/SB800 SATA Controller [SATA and FC Enabled]
+ 4395 SB800 SATA Controller [Storage mode with HyperFlash-PCIE]
+ 4396 SB700/SB800 USB EHCI Controller
+ 4397 SB700/SB800 USB OHCI0 Controller
+ 4398 SB700/SB800 USB OHCI1 Controller
+ 4399 SB700/SB800 USB OHCI2 Controller
+ 439c SB700/SB800 IDE Controller
+ 439d SB700/SB800 LPC host controller
4437 Radeon Mobility 7000 IGP
4554 210888ET [Mach64 ET]
4654 Mach64 VT
@@ -687,10 +727,11 @@
1028 00d1 PowerEdge 2550
1028 00d9 PowerEdge 2500
1028 0134 PowerEdge 600SC
+ 1028 014a PowerEdge 1750
1028 0165 PowerEdge 750
103c 10e1 NetServer Rage XL
107b 6400 6400 Server
- 1734 007a Primergy RX300
+ 1734 007a PRIMERGY RX/TX series onboard VGA
8086 3411 SDS2 Mainboard
8086 3427 S875WP1-E mainboard
8086 5744 S845WD1-E mainboard
@@ -802,7 +843,7 @@
4c64 Radeon RV250 Ld [Radeon Mobility 9000 M9]
4c65 Radeon RV250 Le [Radeon Mobility 9000 M9]
4c66 Radeon RV250 [Mobility FireGL 9000]
- 1014 054d Thinkpad T41
+ 1014 054d ThinkPad T41
4c67 Radeon RV250 Lg [Radeon Mobility 9000 M9]
# Secondary chip to the Lf
4c6e Radeon RV250 Ln [Radeon Mobility 9000 M9] (Secondary)
@@ -820,6 +861,7 @@
4e48 Radeon R350 [Radeon 9800 Pro]
4e49 Radeon R350 [Radeon 9800]
4e4a RV350 NJ [Radeon 9800 XT]
+ 1002 4e4a R360 [Radeon 9800 XT]
4e4b R350 NK [FireGL X2]
4e50 RV350 [Mobility Radeon 9600 M10]
1025 005a TravelMate 290
@@ -843,6 +885,7 @@
4e68 Radeon R350 [Radeon 9800 Pro] (Secondary)
4e69 Radeon R350 [Radeon 9800] (Secondary)
4e6a RV350 NJ [Radeon 9800 XT] (Secondary)
+ 1002 4e6a R360 [Radeon 9800 XT] (Secondary)
1002 4e71 M10 NQ [Radeon Mobility 9600]
4e71 M10 NQ [Radeon Mobility 9600] (Secondary)
4f72 RV250 [Radeon 9000 Series]
@@ -942,6 +985,8 @@
# The IBM card doubles as an ATI PCI video adapter
1014 029a Remote Supervisor Adapter II (RSA2)
1014 02c8 eServer xSeries server mainboard
+ 1028 016c PowerEdge 1850
+ 1028 016d PowerEdge 2850
1028 019a PowerEdge SC1425
103c 1292 Radeon 7000
1458 4002 RV100 QY [RADEON 7000 PRO MAYA AV Series]
@@ -953,6 +998,10 @@
17ee 1001 Radeon 7000 64MB DDR + DVI
515a Radeon RV100 QZ [Radeon 7000/VE]
515e ES1000
+ 1028 01df PowerEdge SC440
+ 1028 01e6 PowerEdge 860
+ 1028 020f PowerEdge R300
+ 1028 0210 PowerEdge T300
515f ES1000
5168 Radeon R200 Qh
5169 Radeon R200 Qi
@@ -1053,7 +1102,9 @@
5944 RV280 [Radeon 9200 SE (PCI)]
5950 RS480 Host Bridge
1025 0080 Aspire 5024WLMMi
+ 103c 280a DC5750 Microtower
103c 308b MX6125
+ 1462 7217 Aspire L250
5951 Radeon Xpress 200 (RS480/RS482/RX480/RX482) Chipset - Host bridge
5952 RD580 [CrossFire Xpress 3200] Chipset Host Bridge
5954 RS480 [Radeon Xpress 200G Series]
@@ -1062,7 +1113,7 @@
1002 5955 RS480 0x5955 [Radeon XPRESS 200M 5955 (PCIE)]
103c 308b MX6125
5956 RD790 Northbridge only dual slot PCI-e_GFX and HT3 K8 part
- 5957 RX790 Northbridge only single slot PCI-e_GFX and HT3 K8 part
+ 5957 RX780/RX790 Chipset Host Bridge
5958 RD780 Northbridge only dual slot PCI-e_GFX and HT1 K8 part
5960 RV280 [Radeon 9200 PRO]
17af 2020 Excalibur Radeon 9250
@@ -1089,8 +1140,11 @@
17af 2012 Radeon 9200 SE Excalibur
18bc 0170 Sapphire Radeon 9200 SE 128MB Game Buster
18bc 0173 GC-R9200L(SE)-C3H [Radeon 9200 Game Buster]
+ 5965 RV280 [FireMV 2200 PCI]
5969 ES1000
5974 RS482 [Radeon Xpress 200]
+ 103c 280a DC5750 Microtower
+ 1462 7141 Aspire L250
5975 RS485 [Radeon Xpress 1100 IGP]
5978 RD790 PCI to PCI bridge (external gfx0 port A)
5979 RD790 PCI to PCI bridge (external gfx0 port B)
@@ -1128,6 +1182,7 @@
# Comes in pair with 5a38
5a39 RS480 PCI Bridge
5a3f RS480 PCI Bridge
+ 1462 7217 Aspire L250
5a41 RS400 [Radeon Xpress 200]
5a42 RS400 [Radeon Xpress 200M]
5a61 RC410 [Radeon Xpress 200]
@@ -1138,6 +1193,7 @@
1458 2102 GV-RX30S128D (X300SE)
1462 0400 RX300SE-TD128E (MS-8940 REV:200)
1462 0402 RX300SE-TD128E (MS-8940)
+ 174b 0500 Radeon X300 (PCIE)
196d 1086 X300SE HM
5b62 RV380 [Radeon X600 (PCIE)]
5b63 RV370 [Sapphire X550 Silent]
@@ -1145,6 +1201,7 @@
5b65 RV370 5B65 [FireGL D1100 (PCIE)]
5b70 RV370 [Radeon X300SE]
1462 0403 RX300SE-TD128E (MS-8940) (secondary display)
+ 174b 0501 Radeon X300SE
196d 1087 X300SE HM
5b72 RV380 [Radeon X600]
5b73 RV370 secondary [Sapphire X550 Silent]
@@ -1162,6 +1219,7 @@
17af 2013 Radeon 9200 SE Excalibur (Secondary)
18bc 0171 Radeon 9200 SE 128MB Game Buster (Secondary)
18bc 0172 GC-R9200L(SE)-C3H [Radeon 9200 Game Buster]
+ 5d45 RV280 [FireMV 2200 PCI] (secondary)
5d48 M28 [Radeon Mobility X800XT]
5d49 M28 [Mobility FireGL V5100]
5d4a Mobility Radeon X800
@@ -1212,6 +1270,7 @@
1002 0322 All-in-Wonder 2006 PCI-E Edition
7143 RV505 [Radeon X1550 Series]
7145 Radeon Mobility X1400
+ 17aa 2006 Thinkpad T60 model 2007
7146 RV515 [Radeon X1300]
1002 0322 All-in-Wonder 2006 PCI-E Edition
1545 1996 Radeon X1300 512MB PCI-e
@@ -1228,6 +1287,7 @@
715f RV505 CE [Radeon X1550 64-bit]
7162 RV515 PRO [Radeon X1300/X1550 Series] (Secondary)
1002 0323 All-in-Wonder 2006 PCI-E Edition (Secondary)
+ 7163 RV505 [Radeon X1550 Series] (Secondary)
7166 RV515 [Radeon X1300] (Secondary)
1002 0323 All-in-Wonder 2006 PCI-E Edition (Secondary)
1545 1997 Radeon X1300 512MB PCI-e (Secondary)
@@ -1252,10 +1312,12 @@
71a7 RV516 [Radeon X1300/X1550 Series] (Secondary)
71bb FireMV 2250 (Secondary)
71c0 RV530 [Radeon X1600]
+ 71c1 Radeon X1650 Pro
71c2 RV530 [Radeon X1600]
71c4 M56GL [Mobility FireGL V5200]
17aa 2007 ThinkPad T60p
71c5 M56P [Radeon Mobility X1600]
+ 103c 30a3 Compaq NW8440
71c6 RV530LE [Radeon X1600/X1650 PRO]
71c7 RV535 [Radeon X1650 Series]
71ce RV530LE [Radeon X1600]
@@ -1264,6 +1326,7 @@
71d6 M66-XT [Mobility Radeon X1700]
71de RV530LE [Radeon X1600]
71e0 RV530 [Radeon X1600] (Secondary)
+ 71e1 Radeon X1650 Pro (Secondary)
71e2 RV530 [Radeon X1600] (Secondary)
71e6 RV530LE [Radeon X1650 PRO] (Secondary)
71e7 RV535 [Radeon X1650 Series]
@@ -1302,18 +1365,72 @@
7835 Radeon Mobility 9200 IGP
7838 Radeon 9100 IGP PCI/AGP Bridge
7910 RS690 Host Bridge
+ 17f2 5000 KI690-AM2 Motherboard
7912 RS690 PCI to PCI Bridge (Internal gfx)
+ 7913 RS690 PCI to PCI Bridge (PCI Express Graphics Port 0)
+ 7915 RS690 PCI to PCI Bridge (PCI Express Port 1)
7916 RS690 PCI to PCI Bridge (PCI Express Port 2)
7917 RS690 PCI to PCI Bridge (PCI Express Port 3)
7919 Radeon X1200 Series Audio Controller
+ 17f2 5000 KI690-AM2 Motherboard
791e RS690 [Radeon X1200 Series]
+ 17f2 5000 KI690-AM2 Motherboard
791f RS690M [Radeon X1200 Series]
+ 793b RS600 audio device [Radeon Xpress 12xx Series]
793f RS600 [Radeon Xpress 1200 Series]
7941 RS600 [Radeon Xpress 1200 Series]
7942 Radeon Xpress 1250
+ 796e Radeon 2100
7c37 RV350 AQ [Radeon 9600 SE]
+ 9400 R600 [Radeon HD 2900 Series]
+ 1002 3000 Sapphire Radeon HD 2900 XT
+ 940a R600GL [Fire GL V8650]
+ 940b R600GL [Fire GL V8600]
+ 94c1 Radeon HD 2400 XT
+ 1028 0211 Optiplex 755
+ 94c3 RV610 video device [Radeon HD 2400 PRO]
+ 1002 94c3 Radeon HD 2400PRO
+ 174b e400 Sapphire HD 2400 PRO video device
+ 94c4 RV610LE [Radeon HD 2400 Series]
+ 94c8 Radeon HD 2400 XT
+ 94c9 Mobility Radeon HD 2400
+ 1002 94c9 Radeon HD2400
+ 94cb Radeon E2400
+ 94cc RV 610LE PCI [Radeon HD 2400]
+ 9501 Radeon HD 3870
+ 9504 Mobility Radeon HD 3850
+ 9505 Radeon HD 3850
+ 9507 RV670 [Radeon HD 3850]
+ 9508 M88 XT Mobility Radeon HD 3870]
+ 950f R680 [Radeon HD 3870 x2]
+ 9515 RV670 AGP [Radeon HD 3850]
+ 9559 Mobilitiy Radeon HD 3600 Series
+ 9581 M76 [Radeon Mobility HD 2600 Series]
+ 9586 RV 630 XT AGP [Radeon HD 2600 XT AGP]
+ 9587 RV630 [Radeon HD 2600 AGP Series]
+ 9588 RV630 [Radeon HD 2600XT]
+ 1458 216c Radeon HD 2600 XT, 256MB GDDR3, 2x DVI, TV-out, PCIe (GV-RX26T256H)
9589 RV630 [Radeon HD 2600 Series]
- aa08 RV630 audio device [Radeon HD 2600 Series]
+ 9591 Mobilitiy Radeon HD 3650
+ 9593 Radeon Mobility HD 3670
+ 9596 RV635 PRO AGP [Radeon HD 3650]
+ 9598 Mobilitiy Radeon HD 3600 Series
+ 95c0 Mobilitiy Radeon HD 3470
+ 95c4 Mobilitiy Radeon HD 3400 Series
+ 95c5 Mobilitiy Radeon HD 3450
+ 960f RS780 Azalia controller
+ 9610 Radeon HD 3200 Graphics
+ 9611 Radeon 3100 Graphics
+ 9612 RS780M/RS780MN [Radeon HD 3200 Graphics]
+ 9613 RS780MC [Radeon HD 3100 Graphics]
+ 9614 Radeon HD 3300 Graphics
+ aa00 R600 Audio Device [Radeon HD 2900 Series]
+ aa08 RV630/M76 audio device [Radeon HD 2600 Series]
+ aa10 RV610 audio device [Radeon HD 2400 PRO]
+ 174b aa10 Sapphire HD 2400 PRO audio device
+ aa18 Radeon HD 3870 Audio device
+ aa20 RV635 Audio device [Radeon HD 3600 Series]
+ aa28 RV620 Audio device [Radeon HD 34xx Series]
cab0 AGP Bridge [IGP 320M]
cab2 RS200/RS200M AGP Bridge [IGP 340M]
cab3 R200 AGP Bridge [Mobility Radeon 7000 IGP]
@@ -1446,6 +1563,7 @@
1186 0100 DE-530+
0016 DGLPB [OPPO]
0017 PV-PCI Graphics Controller (ZLXp-L)
+ 0018 Memory Channel interface
0019 DECchip 21142/43
1011 500a DE500A Fast Ethernet
1011 500b DE500B Fast Ethernet
@@ -1497,9 +1615,9 @@
1374 0003 56k Modem Cardbus
0045 DECchip 21553
0046 DECchip 21554
- 0e11 4050 Integrated Smart Array
- 0e11 4051 Integrated Smart Array
- 0e11 4058 Integrated Smart Array
+ 0e11 4050 Smart Array 4200 Controller
+ 0e11 4051 Smart Array 4250ES Controller
+ 0e11 4058 Smart Array 431 Controller
103c 10c2 NetRAID-4M
12d9 000a IP Telephony card
4c53 1050 CT7 mainboard
@@ -1685,6 +1803,8 @@
0302 Winnipeg PCI-X Host Bridge
0308 CalIOC2 PCI-E Root Port
0314 ZISC 036 Neural accelerator card
+ 032d Axon - Cell Companion Chip
+ 1014 03a1 PCIe PowerXCell 8i Cell Accelerator Board
0339 Obsidian-E PCI-E SCSI controller
1014 030a PCIe 3Gb SAS RAID Adapter (574E)
1014 033a PCIe 3Gb SAS Adapter (57B3)
@@ -1855,6 +1975,18 @@
161f 3017 HDAMB
746e AMD-8111 MC97 Modem
756b AMD-8111 ACPI
+ 9600 RS780 Host Bridge
+ 9601 RS780 Host Bridge Alternate
+ 9602 RS780 PCI to PCI bridge (int gfx)
+ 9603 RS780 PCI to PCI bridge (ext gfx port 0)
+ 9604 RS780 PCI to PCI bridge (PCIE port 0)
+ 9605 RS780 PCI to PCI bridge (PCIE port 1)
+ 9606 RS780 PCI to PCI bridge (PCIE port 2)
+ 9607 RS780 PCI to PCI bridge (PCIE port 3)
+ 9608 RS780 PCI to PCI bridge (PCIE port 4)
+ 9609 RS780 PCI to PCI bridge (PCIE port 5)
+ 960a RS780 PCI to PCI bridge (NB-SB link)
+ 960b RS780 PCI to PCI bridge (ext gfx port 1)
1023 Trident Microsystems
0194 82C194
2000 4DWave DX
@@ -1995,6 +2127,7 @@
000d Embedded Remote Access: BMC/SMIC device
000e PowerEdge Expandable RAID controller 4/Di
000f PowerEdge Expandable RAID controller 4/Di
+ 1028 014a PowerEdge 1750
0010 Remote Access Card 4
0011 Remote Access Card 4 Daughter Card
0012 Remote Access Card 4 Daughter Card Virtual UART
@@ -2005,10 +2138,10 @@
1028 016f PowerEdge Expandable RAID Controller 4e/Di
1028 0170 PowerEdge Expandable RAID Controller 4e/Di
0014 Remote Access Card 4 Daughter Card SMIC interface
- 0015 PowerEdge Expandable RAID controller 5i
+ 0015 PowerEdge Expandable RAID controller 5
1028 1f01 PERC 5/E Adapter RAID Controller
1028 1f02 PERC 5/i Adapter RAID Controller
- 1028 1f03 PERC 5/i Adapter RAID Controller
+ 1028 1f03 PERC 5/i Integrated RAID Controller
1029 Siemens Nixdorf IS
102a LSI Logic
0000 HYDRA
@@ -2155,6 +2288,8 @@
102b 0f83 Millennium G550
102b 0f84 Millennium G550 Dual Head DDR 32Mb
102b 1e41 Millennium G550
+# Clearly the device name should not say AGP anymore...
+ 102b 2300 Millennium G550 LP PCIE
2537 Millenium P650/P750
102b 1820 Millennium P750 64MB
102b 1830 Millennium P650 64MB
@@ -2169,6 +2304,7 @@
102b 1087 Millennium P650 LP PCIe 64MB
102b 2538 Parhelia APVe
102b 3007 QID Low-profile PCIe
+ 2539 Millennium P690
4536 VIA Framegrabber
4cdc Morphis Vision System Jpeg2000
4fc5 Morphis Vision System
@@ -2335,6 +2471,7 @@
0645 SiS645 Host & Memory & AGP Controller
0646 SiS645DX Host & Memory & AGP Controller
0648 645xx
+ 0649 SiS649 Host
0650 650/M650 Host
0651 651 Host
0655 655 Host
@@ -2399,6 +2536,7 @@
6306 530/620 PCI/AGP VGA Display Adapter
1039 6306 SiS530,620 GUI Accelerator+3D
6325 65x/M650/740 PCI/AGP VGA Display Adapter
+ 1039 6325 740 [315 graphics core] on ECS K7SOM+ motherboard
6326 86C326 5598/6326
1039 6326 SiS6326 GUI Accelerator
1092 0a50 SpeedStar A50
@@ -2413,10 +2551,10 @@
1734 1099 D2030-A1
6350 770/670 PCIE VGA Display Adapter
6351 771/671 PCIE VGA Display Adapter
- 7001 USB 1.0 Controller
+ 7001 USB 1.1 Controller
1019 0a14 K7S5A motherboard
1039 7000 Onboard USB Controller
- 1462 5470 K7SOM+ 5.2C Motherboard
+ 1462 5470 ECS K7SOM+ motherboard
1462 7010 MS-6701 motherboard
1734 1095 D2030-A1 Motherboard
7002 USB 2.0 Controller
@@ -2427,6 +2565,9 @@
7007 FireWire Controller
1462 701d MS-6701
7012 AC'97 Sound Controller
+ 1043 818f A8S-X Motherboard
+ 13f6 0300 ECS K7SOM+ motherboard
+ 1462 5850 MSI 648 Max (MS-6585)
1462 7010 MS-6701 motherboard
15bd 1001 DFI 661FX motherboard
1734 109f D2030-A1 Motherboard
@@ -2464,6 +2605,7 @@
103b Tatung Co. of America
103c Hewlett-Packard Company
002a NX9000 Notebook
+ 08bc NX5000 Notebook
1005 A4977A Visualize EG
1008 Visualize FX
1028 Tach TL Fibre Channel Host Adapter
@@ -2510,6 +2652,7 @@
127b sx1000 System Bus Adapter
127c sx1000 I/O Controller
1290 Auxiliary Diva Serial Port
+ 103c 1291 Diva SP2
1291 Auxiliary Diva Serial Port
12b4 zx1 QuickSilver AGP8x Local Bus Adapter
12eb sx2000 System Bus Adapter
@@ -2520,6 +2663,7 @@
1302 RMP-3 Shared Memory Driver
1303 RMP-3 (Remote Management Processor)
1361 BCM4312 802.11a/b/g WLAN Controller
+ 1371 Broadcom Corporation BCM4312 802.11a/b/g (rev 02)
2910 E2910A PCIBus Exerciser
2925 E2925A 32 Bit, 33 MHzPCI Exerciser & Analyzer
3080 Pavilion ze2028ea
@@ -2735,6 +2879,7 @@
8025 TSB82AA2 IEEE-1394b Link Layer Controller
1458 1000 GA-K8N Ultra-9 Mainboard
8026 TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link)
+ 1025 0035 TravelMate 660
1025 003c Aspire 2001WLCi (Compaq CL50 motherboard)
103c 006a NX9500
1043 808d A7V333 mainboard.
@@ -2751,42 +2896,47 @@
1028 018d Inspiron 700m/710m
8031 PCIxx21/x515 Cardbus Controller
1025 0080 Aspire 5024WLMi
- 103c 0934 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
103c 099c NX6110/NC6120
103c 308b MX6125
8032 OHCI Compliant IEEE 1394 Host Controller
1025 0080 Aspire 5024WLMi
- 103c 0934 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
103c 099c NX6110/NC6120
103c 308b MX6125
8033 PCIxx21 Integrated FlashMedia Controller
1025 0080 Aspire 5024WLMi
- 103c 0934 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
103c 099c NX6110/NC6120
103c 308b MX6125
8034 PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller
1025 0080 Aspire 5024WLMi
- 103c 0934 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
103c 099c NX6110/NC6120
103c 308b MX6125
8035 PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller
- 103c 0934 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
103c 099c NX6110/NC6120
8036 PCI6515 Cardbus Controller
8038 PCI6515 SmartCard Controller
8039 PCIxx12 Cardbus Controller
103c 309f nx9420
103c 30a1 NC2400
+ 103c 30a3 Compaq nw8440
803a PCIxx12 OHCI Compliant IEEE 1394 Host Controller
103c 309f nx9420
103c 30a1 NC2400
+ 103c 30a3 Compaq nw8440
803b 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)
103c 309f nx9420
+ 103c 30a3 Compaq nw8440
803c PCIxx12 SDA Standard Compliant SD Host Controller
103c 309f nx9420
+ 103c 30a3 Compaq nw8440
803d PCIxx12 GemCore based SmartCard controller
103c 309f nx9420
103c 30a1 NC2400
+ 8101 TSB43DB42 IEEE-1394a-2000 Controller (PHY/Link)
8201 PCI1620 Firmware Loading Function
8204 PCI7410,7510,7610 PCI Firmware Loading Function
1028 0139 Latitude D400
@@ -2828,7 +2978,7 @@
ac1a PCI1210
ac1b PCI1450
0e11 b113 Armada M700
- 1014 0130 Thinkpad T20/T22/A21m
+ 1014 0130 ThinkPad A21m/T20/T22
ac1c PCI1225
0e11 b121 Armada E500
1028 0088 Latitude CPi A400XT
@@ -2863,7 +3013,7 @@
ac51 PCI1420 PC card Cardbus Controller
0e11 004e Evo N600c
1014 0148 ThinkPad A20m
- 1014 023b ThinkPad T23 (2647-4MG)
+ 1014 023b ThinkPad T23
1028 00b1 Latitude C600
1028 012a Latitude C640
1033 80cd Versa Note VXi
@@ -2876,8 +3026,8 @@
ac55 PCI1520 PC card Cardbus Controller
1014 0512 ThinkPad T30/T40
ac56 PCI1510 PC card Cardbus Controller
- 1014 0512 Thinkpad R50e model 1634
- 1014 0528 ThinkPad R40e (2684-HVG) Cardbus Controller
+ 1014 0512 ThinkPad R50e
+ 1014 0528 ThinkPad R40e
17aa 2012 ThinkPad T60/R60 series
ac60 PCI2040 PCI to DSP Bridge Controller
175c 5100 ASI51xx Audio Adapter
@@ -2937,6 +3087,7 @@
3011 ColdFusion 3e Chipset Processor to I/O Controller
3012 ColdFusion 3e Chipset Memory Controller Hub
3017 Unassigned Hitachi Shared FC Device 3017
+ 301d PCIe-to-PCIe Bridge with Virtualization IO Assist Feature
1055 Efar Microsystems
9130 SLC90E66 [Victory66] IDE
9460 SLC90E66 [Victory66] ISA
@@ -3092,13 +3243,15 @@
7275 PDC20277 (SBFastTrak133 Lite)
8002 SATAII150 SX8
8350 80333 [SuperTrak EX8350/EX16350], 80331 [SuperTrak EX8300/EX16300]
- 8650 81348 [SuperTrak EX4650/EX8650/EX8654/EX4650EL]
- 105a 4600 SuperTrak EX4650
+ 8650 81384 [SuperTrak EX SAS and SATA RAID Controller]
+ 105a 4600 SuperTrak EX4650A
+ 105a 4601 SuperTrak EX4650
105a 4610 SuperTrak EX4650EL
105a 8600 SuperTrak EX8650EL
- 105a 8601 SuperTrak EX8650
+ 105a 8601 SuperTrak EX8650A
105a 8602 SuperTrak EX8654
105a 8603 SuperTrak EX8658
+ 105a 8604 SuperTrak EX8650
105a 8610 SuperTrak EX8650M
105a b600 SuperTrak EX16650
c350 80333 [SuperTrak EX12350]
@@ -3270,6 +3423,7 @@
0053 Shasta PCI Bridge
0054 Shasta PCI Bridge
0055 Shasta PCI Bridge
+ 0057 U3 HT Bridge
0058 U3L AGP Bridge
0059 U3H AGP Bridge
0066 Intrepid2 AGP Bridge
@@ -3278,6 +3432,7 @@
0069 Intrepid2 ATA/100
006a Intrepid2 Firewire
006b Intrepid2 GMAC (Sun GEM)
+ 0074 U4 HT Bridge
1645 Tigon3 Gigabit Ethernet NIC (BCM5701)
106c Hynix Semiconductor
8801 Dual Pentium ISA/PCI Motherboard
@@ -3357,6 +3512,7 @@
6312 SP202-based 2Gb Fibre Channel to PCI-X HBA
6322 SP212-based 2Gb Fibre Channel to PCI-X HBA
7220 IBA7220 InfiniBand HCA
+ 8432 ISP2432M-based 10GbE Converged Network Adapter (CNA)
1078 Cyrix Corporation
0000 5510 [Grappa]
0001 PCI Master
@@ -3379,6 +3535,7 @@
204d [GeForce 7800 GTX] Winfast PX7800 GTX TDH
2134 WinFast 3D S320 II
2971 [GeForce FX 5900] WinFast A350 TDH MyViVo
+ 6654 Conexant CX23883 [WinFast DTV1800 H]
107e Interphase Corporation
0001 5515 ATM Adapter [Flipper]
0002 100 VG AnyLan Controller
@@ -3552,6 +3709,7 @@
2ca0 PCI-6034E
70a9 PCI-6528 (Digital I/O at 60V)
70b8 PCI-6251 [M Series - High Speed Multifunction DAQ]
+ 7144 PXI-5124 (12-bit 200 MS/s Digitizer)
b001 IMAQ-PCI-1408
b011 IMAQ-PXI-1408
b021 IMAQ-PCI-1424
@@ -3597,6 +3755,7 @@
3512 SiI 3512 [SATALink/SATARaid] Serial ATA Controller
1095 3512 SiI 3512 SATALink Controller
1095 6512 SiI 3512 SATARaid Controller
+ 3531 Sil 3531 [SATALink/SATARaid] Serial ATA Controller
1096 Alacron
1097 Appian Technology
1098 Quantum Designs (H.K.) Ltd
@@ -4144,7 +4303,7 @@
10b9 1523 ALI M1523 ISA Bridge
1531 M1531 [Aladdin IV]
1533 M1533/M1535 PCI to ISA Bridge [Aladdin IV/V/V+]
- 1014 053b ThinkPad R40e (2684-HVG) PCI to ISA Bridge
+ 1014 053b ThinkPad R40e
10b9 1533 ALi M1533 Aladdin IV/V ISA Bridge
1541 M1541
10b9 1541 ALI M1541 Aladdin V/V+ AGP System Controller
@@ -4185,19 +4344,20 @@
5228 M5228 ALi ATA/RAID Controller
5229 M5229 IDE
1014 050f ThinkPad R30
- 1014 053d ThinkPad R40e (2684-HVG) builtin IDE
+ 1014 053d ThinkPad R40e
103c 0024 Pavilion ze4400 builtin IDE
1043 8053 A7A266 Motherboard IDE
1849 5229 ASRock 939Dual-SATA2 Motherboard IDE (PATA)
5235 M5225
5237 USB 1.1 Controller
- 1014 0540 ThinkPad R40e (2684-HVG) builtin USB
+ 1014 0540 ThinkPad R40e
103c 0024 Pavilion ze4400 builtin USB
104d 810f VAIO PCG-U1 USB/OHCI Revision 1.0
10b9 5237 ASRock 939Dual-SATA2 Motherboard
1849 5237 ASRock 939Dual-SATA2 Motherboard
5239 USB 2.0 Controller
10b9 5239 ASRock 939Dual-SATA2 Motherboard
+ 1849 5239 ASRock 939Dual-SATA2 Motherboard
5243 M1541 PCI to AGP Controller
5246 AGP8X Controller
5247 PCI to AGP Controller
@@ -4213,11 +4373,12 @@
5281 ALi M5281 Serial ATA / RAID Host Controller
5287 ULi 5287 SATA
5288 ULi M5288 SATA
+ 1043 8056 A8R-MVP Mainboard
5289 ULi 5289 SATA
5450 Lucent Technologies Soft Modem AMR
5451 M5451 PCI AC-Link Controller Audio Device
1014 0506 ThinkPad R30
- 1014 053e ThinkPad R40e (2684-HVG) builtin Audio
+ 1014 053e ThinkPad R40e
103c 0024 Pavilion ze4400 builtin Audio
10b9 5451 HP Compaq nc4010 (DY885AA#ABN)
5453 M5453 PCI AC-Link Controller Modem Device
@@ -4225,7 +4386,7 @@
10b9 5455 ASRock 939Dual-SATA2 Motherboard
1849 0850 ASRock 939Dual-SATA2 Motherboard
5457 M5457 AC'97 Modem Controller
- 1014 0535 ThinkPad R40e (2684-HVG) builtin modem
+ 1014 0535 ThinkPad R40e
103c 0024 Pavilion ze4400 builtin Modem Device
5459 SmartLink SmartPCI561 56K Modem
545a SmartLink SmartPCI563 56K Modem
@@ -4234,9 +4395,10 @@
5473 M5473 SD-MMC Controller
7101 M7101 Power Management Controller [PMU]
1014 0510 ThinkPad R30
- 1014 053c ThinkPad R40e (2684-HVG) Power Management Controller
+ 1014 053c ThinkPad R40e
103c 0024 Pavilion ze4400
10b9 7101 ASRock 939Dual-SATA2 Motherboard
+ 1849 7101 ASRock 939Dual-SATA2 Motherboard
10ba Mitsubishi Electric Corp.
0301 AccelGraphics AccelECLIPSE
0304 AccelGALAXY A2100 [OEM Evans & Sutherland]
@@ -4292,7 +4454,7 @@
8005 NM2200 [MagicMedia 256AV Audio]
0e11 b0d1 MagicMedia 256AV Audio Device on Discovery
0e11 b126 MagicMedia 256AV Audio Device on Durango
- 1014 00dd MagicMedia 256AV Audio Device on BlackTip Thinkpad
+ 1014 00dd ThinkPad 390/i1720/i1721
1025 1003 MagicMedia 256AV Audio Device on TravelMate 720
1028 0088 Latitude CPi A
1028 008f MagicMedia 256AV Audio Device on Colorado Inspiron
@@ -4469,6 +4631,7 @@
004e NV40GL [Quadro FX 4000]
0050 CK804 ISA Bridge
1043 815a K8N4-E or A8N-E Mainboard
+ 10f1 2865 Tomcat K8E (S2865)
1458 0c11 GA-K8N Ultra-9 Mainboard
1462 7100 MSI K8N Diamond
147b 1c1a KN8-Ultra Mainboard
@@ -4476,30 +4639,35 @@
0051 CK804 ISA Bridge
0052 CK804 SMBus
1043 815a K8N4-E or A8N-E Mainboard
+ 10f1 2865 Tomcat K8E (S2865)
1458 0c11 GA-K8N Ultra-9 Mainboard
1462 7100 MSI K8N Diamond
147b 1c1a KN8-Ultra Mainboard
1565 3402 NF4 AM2L Mainboard
0053 CK804 IDE
1043 815a K8N4-E or A8N-E Mainboard
+ 10f1 2865 Tomcat K8E (S2865)
1458 5002 GA-K8N Ultra-9 Mainboard
1462 7100 MSI K8N Diamond
147b 1c1a KN8-Ultra Mainboard
1565 3402 NF4 AM2L Mainboard
0054 CK804 Serial ATA Controller
1043 815a A8N-E Mainboard
+ 10f1 2865 Tomcat K8E (S2865)
1458 b003 GA-K8N Ultra-9 Mainboard
1462 7100 MSI K8N Diamond
147b 1c1a KN8-Ultra Mainboard
1565 5401 NF4 AM2L Mainboard
0055 CK804 Serial ATA Controller
1043 815a K8N4-E or A8N-E Mainboard
+ 10f1 2865 Tomcat K8E (S2865)
1458 b003 GA-K8N Ultra-9 Mainboard
147b 1c1a KN8-Ultra Mainboard
1565 5401 NF4 AM2L Mainboard
0056 CK804 Ethernet Controller
0057 CK804 Ethernet Controller
1043 8141 K8N4-E or A8N-E Mainboard
+ 10f1 2865 Tomcat K8E (S2865)
1458 e000 GA-K8N Ultra-9 Mainboard
1462 7100 MSI K8N Diamond
147b 1c1a KN8-Ultra Mainboard
@@ -4507,16 +4675,19 @@
0058 CK804 AC'97 Modem
0059 CK804 AC'97 Audio Controller
1043 812a K8N4-E or A8N-E Mainboard
+ 10f1 2865 Tomcat K8E (S2865)
147b 1c1a KN8-Ultra Mainboard
1565 8211 NF4 AM2L Mainboard
005a CK804 USB Controller
1043 815a K8N4-E or A8N-E Mainboard
+ 10f1 2865 Tomcat K8E (S2865)
1458 5004 GA-K8N Ultra-9 Mainboard
1462 7100 MSI K8N Diamond
147b 1c1a KN8-Ultra Mainboard
1565 3402 NF4 AM2L Mainboard
005b CK804 USB Controller
1043 815a K8N4-E or A8N-E Mainboard
+ 10f1 2865 Tomcat K8E (S2865)
1458 5004 GA-K8N Ultra-9 Mainboard
1462 7100 MSI K8N Diamond
147b 1c1a KN8-Ultra Mainboard
@@ -4525,6 +4696,7 @@
005d CK804 PCIE Bridge
005e CK804 Memory Controller
1043 815a A8N-E Mainboard
+ 10f1 2865 Tomcat K8E (S2865)
10f1 2891 Thunder K8SRE Mainboard
1458 5000 GA-K8N Ultra-9 Mainboard
1462 7100 MSI K8N Diamond
@@ -4542,8 +4714,10 @@
0066 nForce2 Ethernet Controller
1043 80a7 A7N8X Mainboard onboard nForce2 Ethernet
10de 0c11 nForce MCP-T Networking Adapter
+ a0a0 03b3 UK79G-1394 motherboard
0067 nForce2 USB Controller
1043 0c11 A7N8X Mainboard
+ a0a0 03b4 UK79G-1394 motherboard
0068 nForce2 USB Controller
1043 0c11 A7N8X Mainboard
a0a0 03b4 UK79G-1394 motherboard
@@ -4552,6 +4726,7 @@
a0a0 0304 UK79G-1394 motherboard
006b nForce Audio Processing Unit
10de 006b nForce2 MCP Audio Processing Unit
+ a0a0 0304 UK79G-1394 motherboard
006c nForce2 External PCI Bridge
006d nForce2 PCI Bridge
006e nForce2 FireWire (IEEE 1394) Controller
@@ -4664,6 +4839,7 @@
1682 217e XFX GeForce 6800 XTreme 256MB DDR3 AGP
00f8 NV45GL [Quadro FX 3400/4400]
00f9 NV45 [GeForce 6800 GTO]
+ 10de 00f9 NV40 [GeForce 6800 GT]
1682 2120 GEFORCE 6800 GT PCI-E
00fa NV36 [GeForce PCX 5750]
00fb NV35 [GeForce PCX 5900]
@@ -4728,7 +4904,7 @@
0149 NV43 [GeForce Go 6600 GT]
014a Quadro NVS 440
014c Quadro FX 540 MXM
- 014d NV18GL [Quadro FX 550]
+ 014d NV43GL [Quadro FX 550]
014e NV43GL [Quadro FX 540]
014f NV43 [GeForce 6200]
0150 NV15 [GeForce2 GTS/Pro]
@@ -4832,7 +5008,7 @@
01de G72GL [Quadro FX 350]
10de 01dc Quadro FX Go350M
01df G71 [GeForce 7300 GS]
- 01e0 nForce2 AGP (different version?)
+ 01e0 nForce2 IGP2
147b 1c09 NV7 Motherboard
01e8 nForce2 AGP
01ea nForce2 Memory Controller 0
@@ -4872,6 +5048,7 @@
0242 C51G [GeForce 6100]
0243 C51 PCI Express Bridge
0244 C51 [Geforce 6150 Go]
+ 103c 30b5 Presario V3242AU
103c 30b7 Presario V6133CL
10de 0244 GeForce Go 6150
0245 C51 [Quadro NVS 210S/GeForce 6150LE]
@@ -4929,6 +5106,7 @@
026a MCP51 MCI
026b MCP51 AC97 Audio Controller
026c MCP51 High Definition Audio
+ 103c 30b5 Presario V3242AU
103c 30b7 Presario V6133CL
10de cb84 A8N-VM CSM Mainboard
1462 7207 K8NGM2 series
@@ -4948,6 +5126,7 @@
1458 5001 GA-M55plus-S3G
1462 7207 K8NGM2 series
0271 MCP51 PMU
+ 103c 30b5 Presario V3242AU
103c 30b7 Presario V6133CL
0272 MCP51 Memory Controller 0
027e C51 Memory Controller 2
@@ -4996,7 +5175,7 @@
02e3 GeForce 7900 GS
# An oddball 7950 that doesn't show up on any official NVIDIA lists but was seen in the wild
02e4 GeForce 7950 GT AGP
- 1682 2271 PV-T71A-YDF3 (512MB)
+ 1682 2271 PV-T71A-YDF7 (512MB)
02f0 C51 Host Bridge
103c 30b7 Presario V6133CL
1043 81cd A8N-VM CSM Mainboard
@@ -5071,9 +5250,12 @@
1071 8160 MIM2000
0325 NV34M [GeForce FX Go5250]
0326 NV34 [GeForce FX 5500]
+ 1458 310d GeForce FX 5500 128 MB
+ 1682 2034 GeForce 5500 256 MB
0327 NV34 [GeForce FX 5100]
0328 NV34M [GeForce FX Go5200 32M/64M]
0329 NV34M [GeForce FX Go5200]
+ 10de 0010 Powerbook G4
032a NV34GL [Quadro NVS 280 PCI]
032b NV34GL [Quadro FX 500/600 PCI]
032c NV34GLM [GeForce FX Go 5300]
@@ -5151,6 +5333,7 @@
0397 GeForce Go 7700
0398 G70 [GeForce Go 7600]
1025 006c Acer 9814 WKMI
+ 0399 GeForce Go 7600 GT
039b GeForce Go 7900 SE
039c Quadro FX 550M
10de 039c Quadro FX 560M
@@ -5198,15 +5381,20 @@
03e6 MCP61 Ethernet
03e7 MCP61 SATA Controller
03e8 MCP61 PCI Express bridge
+ 1849 03e8 939NF6G-VSTA Board
03e9 MCP61 PCI Express bridge
+ 1849 03e9 939NF6G-VSTA Board
03ea MCP61 Memory Controller
1849 03ea 939NF6G-VSTA Board
03eb MCP61 SMBus
1849 03eb 939NF6G-VSTA Board
03ec MCP61 IDE
+ 1849 03ec 939NF6G-VSTA Board
03ee MCP61 Ethernet
03ef MCP61 Ethernet
+ 1849 03ef 939NF6G-VSTA Board
03f0 MCP61 High Definition Audio
+ 1849 0888 939NF6G-VSTA Board
03f1 MCP61 USB Controller
1849 03f1 939NF6G-VSTA Board
03f2 MCP61 USB Controller
@@ -5220,6 +5408,8 @@
03f7 MCP61 SATA Controller
0400 GeForce 8600 GTS
0402 GeForce 8600 GT
+ 0403 GeForce 8600 GS
+ 0404 GeForce 8400 GS
0407 GeForce 8600M GT
0409 GeForce 8700M GT
040a Quadro FX 370
@@ -5228,14 +5418,16 @@
040d Quadro FX 1600M
040e Quadro FX 570
040f Quadro FX 1700
+ 0420 GeForce 8400 SE
0421 GeForce 8500 GT
0422 GeForce 8400 GS
0423 GeForce 8300 GS
0425 GeForce 8600M GS
- 0426 GeForce 8400M GT
+ 0426 G86M [GeForce 8400M GT]
0427 GeForce 8400M GS
0428 GeForce 8400M G
0429 Quadro NVS 140M
+ 17aa 20d8 ThinkPad T61
042a Quadro NVS 130M
042b Quadro NVS 135M
042d Quadro FX 360M
@@ -5271,14 +5463,56 @@
045d MCP65 SATA Controller
045e MCP65 SATA Controller
045f MCP65 SATA Controller
+ 0531 GeForce 7150M
0533 GeForce 7000M (rev a2)
+ 053a GeForce 7050 PV / nForce 630a
+ 053b GeForce 7050 PV / nForce 630a
053e GeForce 7025
+ 0541 MCP67 Memory Controller
+ 0542 MCP67 SMBus
+ 0543 MCP67 Co-processor
+ 0547 MCP67 Memory Controller
+ 1849 0547 ALiveNF7G-HDready
+ 0548 MCP67 ISA Bridge
+ 054c MCP67 Ethernet
+ 1849 054c ALiveNF7G-HDready, MCP67 Gigabit Ethernet
+ 0550 MCP67 AHCI Controller
0554 MCP67 AHCI Controller
+ 0555 MCP67 SATA Controller
055c MCP67 High Definition Audio
055d MCP67 High Definition Audio
055e MCP67 OHCI USB 1.1 Controller
055f MCP67 EHCI USB 2.0 Controller
0560 MCP67 IDE Controller
+ 0561 MCP67 PCI Bridge
+ 0562 MCP67 PCI Express Bridge
+ 1849 0562 ALiveNF7G-HDready
+ 0563 MCP67 PCI Express Bridge
+ 056a GeForce 7100/nForce 630i
+ 0600 GeForce 8800 GTS 512
+ 0606 GeForce 8800 GS
+ 0609 GeForce 8800M GTS
+ 060c GeForce 8800M GTX
+ 0611 GeForce 8800 GT
+ 061a Quadro FX 3700
+ 0622 Geforce 9600 GT 512mb
+ 07cb nForce 630i memory controller
+ 07cd nForce 630i memory controller
+ 07ce nForce 630i memory controller
+ 07cf nForce 630i memory controller
+ 07d0 nForce 630i memory controller
+ 07d1 nForce 630i memory controller
+ 07d2 nForce 630i memory controller
+ 07d3 nForce 630i memory controller
+ 07d6 nForce 630i memory controller
+ 07dc MCP73 Ethernet
+ 07e1 GeForce 7100/nForce 630i
+ 07e3 GeForce 7050/nForce 610i
+ 07f4 GeForce 7100/nForce 630i
+ 07fc MCP73 High Definition Audio
+ 10de 07fc MCP73 High Definition Audio
+ 07fe GeForce 7100/nForce 630i
+ 0849 GeForce 8200
c615 G70 [GeForce 7600 GT]
10df Emulex Corporation
1ae5 LP6000 Fibre Channel Host Adapter
@@ -5313,6 +5547,7 @@
fc40 Saturn-X: LightPulse Fibre Channel Host Adapter
fd00 Helios-X LightPulse Fibre Channel Host Adapter
fe00 Zephyr-X LightPulse Fibre Channel Host Adapter
+ fe05 Zephyr-X: LightPulse FCoE Adapter
ff00 Neptune LightPulse Fibre Channel Host Adapter
10e0 Integrated Micro Solutions Inc.
5026 IMS5026/27/28
@@ -5436,6 +5671,7 @@
1436 8139 RT8139
144d c00c P30/P35 notebook
1458 e000 GA-7VM400M/7VT600 Motherboard
+ 1462 217c Aspire L250
1462 788c 865PE Neo2-V Mainboard
146c 1439 FE-1439TX
1489 6001 GF100TXRII
@@ -6242,6 +6478,46 @@
0003 IDT77222/77252 155Mbps ATM MICRO ABR SAR Controller
0004 IDT77V252 155Mbps ATM MICRO ABR SAR Controller
0005 IDT77V222 155Mbps ATM MICRO ABR SAR Controller
+ 8018 PES12N3A PCI Express Switch
+ 801c PES24N3A PCI Express Switch
+ 8028 PES4T4 PCI Express Switch
+ 802b PES8T5A PCI Express Switch
+ 802c PES16T4 PCI Express Switch
+ 802d PES16T7 PCI Express Switch
+ 802e PES24T6 PCI Express Switch
+ 802f PES32T8 PCI Express Switch
+ 8032 PES48T12 PCI Express Switch
+ 8034 PES16/22/34H16 PCI Express Switch
+ 8035 PES32H8 PCI Express Switch
+ 8036 PES48H12 PCI Express Switch
+ 8037 PES64H16 PCI Express Switch
+ 8039 PES3T3 PCI Express Switch
+ 803a PES4T4 PCI Express Switch
+ 803c PES5T5 PCI Express Switch
+ 803d PES6T5 PCI Express Switch
+ 8048 PES8NT2 PCI Express Switch
+ 8049 PES8NT2 PCI Express Switch
+ 804a PES8NT2 PCI Express Internal NTB
+ 804b PES8NT2 PCI Express External NTB
+ 804c PES16NT2 PCI Express Switch
+ 804d PES16NT2 PCI Express Switch
+ 804e PES16NT2 PCI Express Internal NTB
+ 804f PES16NT2 PCI Express External NTB
+ 8058 PES12NT3 PCI Express Switch
+ 8059 PES12NT3 PCI Express Switch
+ 805a PES12NT3 PCI Express Internal NTB
+ 805b PES12NT3 PCI Express External NTB
+ 805c PES24NT3 PCI Express Switch
+ 805d PES24NT3 PCI Express Switch
+ 805e PES24NT3 PCI Express Internal NTB
+ 805f PES24NT3 PCI Express External NTB
+ 8060 PES16T4G2 PCI Express Gen2 Switch
+ 8061 PES12T3G2 PCI Express Gen2 Switch
+ 8068 PES6T6G2 PCI Express Gen2 Switch
+ 806a PES24T3G2 PCI Express Gen2 Switch
+ 806c PES16T4A/4T4G2 PCI Express Gen2 Switch
+ 806e PES24T6G2 PCI Express Gen2 Switch
+ 806f HIO524G2 PCI Express Gen2 Switch
111e Eldec
111f Precision Digital Images
4a47 Precision MX Video engine interface
@@ -6749,6 +7025,7 @@
0015 CMIC-GC Host Bridge
0016 CMIC-GC Host Bridge
0017 GCNB-LE Host Bridge
+ 0031 HT1100 HPX0 HT Host Bridge
0036 BCM5785 [HT1000] PCI/PCI-X Bridge
0101 CIOB-X2 PCI-X I/O Bridge
0103 EPB PCI-Express to PCI-X Bridge
@@ -6778,6 +7055,7 @@
0214 BCM5785 [HT1000] IDE
0217 CSB6 IDE Controller
1028 4134 Poweredge SC600
+ 021b HT1100 HD Audio
0220 OSB4/CSB5 OHCI USB Controller
4c53 1080 CT8 mainboard
0221 CSB6 OHCI USB Controller
@@ -6797,6 +7075,17 @@
024a BCM5785 [HT1000] SATA (Native SATA Mode)
# The device starts as 024A, and changes to 024B if set to PATA mode in BIOS
024b BCM5785 [HT1000] SATA (PATA/IDE Mode)
+ 0406 HT1100 PCI-X Bridge
+ 0408 HT1100 Legacy Device
+ 040a HT1100 ISA-LPC Bridge
+ 0410 HT1100 SATA Controller (Native SATA Mode)
+ 0411 HT1100 SATA Controller (PATA / IDE Mode)
+ 0412 HT1100 USB OHCI Controller
+ 0414 HT1100 USB EHCI Controller
+ 0416 HT1100 USB EHCI Controller (with Debug Port)
+ 0420 HT1100 PCI-Express Bridge
+ 0421 HT1100 SAS/SATA Controller
+ 0422 HT1100 PCI-Express Bridge
1167 Mutoh Industries Inc
1168 Thine Electronics Inc
1169 Centre for Development of Advanced Computing
@@ -9194,6 +9483,7 @@
000b T210 Protocol Engine
000c T204 Protocol Engine
0030 T310 10GbE Single Port Protocol Engine Ethernet Adapter
+ 103c 705e PCIe 10GBase-SR [AD386A]
0031 T320 10GbE Dual Port Protocol Engine Ethernet Adapter
0032 T302 1GbE Dual Port Protocol Engine Ethernet adapter
0033 T304 1GbE Quad Port Protocol Engine Ethernet adapter
@@ -9361,7 +9651,7 @@
1496 JOYTECH Computer Co., Ltd.
1497 SMA Regelsysteme GmBH
1497 SMA Technologie AG
-1498 TEWS Datentechnik GmBH
+1498 TEWS Technologies GmbH
0330 TPMC816 2 Channel CAN bus controller.
0385 TPMC901 Extended CAN bus with 2/4/6 CAN controller
21cc TCP460 CompactPCI 16 Channel Serial Interface RS232/RS422
@@ -9594,6 +9884,10 @@
103c 7037 NC373T PCI Express Multifunction Gigabit Server Adapter
103c 7038 NC373i Integrated Multifunction Gigabit Server Adapter
164d NetXtreme BCM5702FE Gigabit Ethernet
+# added marketing name - Everest
+ 164e NetXtreme II BCM57710 10Gigabit PCIe [Everest]
+ 164f NetXtreme II BCM57711 10Gigabit PCIe
+ 1650 NetXtreme II BCM57712 10Gigabit PCIe
1653 NetXtreme BCM5705 Gigabit Ethernet
0e11 00e3 NC7761 Gigabit Server Adapter
1654 NetXtreme BCM5705_2 Gigabit Ethernet
@@ -9609,6 +9903,7 @@
165a NetXtreme BCM5722 Gigabit Ethernet PCI Express
103c 7051 NC105i PCIe Gigabit Server Adapter
103c 7052 NC105T PCIe Gigabit Server Adapter
+ 165b NetXtreme BCM5723 Gigabit Ethernet PCIe
165d NetXtreme BCM5705M Gigabit Ethernet
1028 865d Latitude D400
165e NetXtreme BCM5705M_2 Gigabit Ethernet
@@ -9648,10 +9943,14 @@
17aa 2081 Thinkpad R60e model 0657
167e NetXtreme BCM5751F Fast Ethernet PCI Express
167f NetLink BCM5787F Fast Ethernet PCI Express
+ 1680 NetXtreme BCM5761e Gigabit Ethernet PCIe
+ 1681 NetXtreme BCM5761 Gigabit Ethernet PCIe
+ 1684 NetXtreme BCM5764M Gigabit Ethernet PCIe
1693 NetLink BCM5787M Gigabit Ethernet PCI Express
1696 NetXtreme BCM5782 Gigabit Ethernet
103c 12bc d530 CMT (DG746A)
14e4 000d NetXtreme BCM5782 1000Base-T
+ 1698 NetLink BCM5784M Gigabit Ethernet PCIe
169a NetLink BCM5786 Gigabit Ethernet PCI Express
169b NetLink BCM5787 Gigabit Ethernet PCI Express
169c NetXtreme BCM5788 Gigabit Ethernet
@@ -9725,6 +10024,8 @@
4312 BCM4312 802.11a/b/g
4313 BCM4310 Ethernet Controller
4315 BCM4310 USB Controller
+ 103c 137c BCM4312 802.11b/g Wireless LAN Controller
+ 103c 137d BCM4312 802.11b/g Wireless LAN Controller
4318 BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller
103c 1356 MX6125
1043 120f A6U notebook embedded card
@@ -9766,6 +10067,7 @@
4328 BCM4328 802.11a/b/g/n
1028 000a Wireless 1500 Draft 802.11n WLAN Mini-card
4329 BCM43XG
+ 432b BCM4322 802.11a/b/g/n Wireless LAN Controller
4344 EDGE/GPRS data and 802.11b/g combo cardbus [GC89]
4401 BCM4401 100Base-T
103c 08b0 tc1100 tablet
@@ -9820,6 +10122,7 @@
5840 BCM5840 Crypto Accelerator
5841 BCM5841 Crypto Accelerator
5850 BCM5850 Crypto Accelerator
+ b800 BCM56800 StrataXGS 10GE Switch Controller
14e5 Pixelfusion Ltd
14e6 SHINING Technology Inc
14e7 3CX
@@ -10388,9 +10691,12 @@
6279 MT25208 [InfiniHost III Ex HCA Flash Recovery]
6282 MT25208 InfiniHost III Ex
6340 MT25408 [ConnectX IB SDR]
- 634a MT25418 [ConnectX IB DDR]
+ 634a MT25418 [ConnectX IB DDR, PCIe 2.0 2.5GT/s]
6354 MT25428 [ConnectX IB QDR]
- 6368 MT25448 [ConnectX EN 10GigE]
+ 6368 MT25448 [ConnectX EN 10GigE, PCIe 2.0 2.5GT/s]
+ 6732 MT26418 [ConnectX IB DDR, PCIe 2.0 5GT/s]
+ 673c MT26428 [ConnectX IB QDR, PCIe 2.0 5GT/s]
+ 6750 MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s]
15b4 CCI/TRIAD
15b5 Cimetrics Inc
15b6 Texas Memory Systems Inc
@@ -10539,6 +10845,9 @@
104e 5LS172.6 B&R Dual CAN Interface Card
12d7 5LS172.61 B&R Dual CAN Interface Card
20ad 5ACPCI.MFIO-K01 Profibus DP / K-Feldbus / COM
+1678 NetEffect
+ 0100 NE020 10Gb Accelerated Ethernet Adapter (iWARP RNIC)
+1679 Tokyo Electron Device Ltd.
167b ZyDAS Technology Corp.
2102 ZyDAS ZD1202
187e 3406 ZyAIR B-122 CardBus 11Mbs Wireless LAN Card
@@ -10549,7 +10858,7 @@
1682 XFX Pine Group Inc.
1688 CastleNet Technology Inc.
1170 WLAN 802.11b card
-168c Atheros Communications, Inc.
+168c Atheros Communications Inc.
0007 AR5000 802.11a Wireless Adapter
0011 AR5210 802.11a NIC
0012 AR5211 802.11ab NIC
@@ -10607,14 +10916,16 @@
168c 2063 EnGenius EMP-8602 (400mw) or Compex WLM54AG
185f 1600 DCMA-82 High Power WLAN 802.11a/b/g mini-PCI Module (Super A/G, eXtended Range, 400mW)
a727 6804 Wireless 11a/b/g PC Card with XJACK(r) Antenna
- 001c AR5006EG 802.11 b/g Wireless PCI Express Adapter
+# the names AR5006* are for AR242{3,4} designs and the names AR5007* are for AR2425 designs
+ 001c AR242x 802.11abg Wireless PCI Express Adapter
168c 3061 AR5006EGS 802.11bg NIC (2.4GHz, PCI Express)
168c 3062 AR5006EXS 802.11abg NIC (2.4/5.0GHz, PCI Express)
168c 3063 AR5006EX 802.11abg NIC (2.4/5.0GHz, PCI Express)
168c 3065 AR5006EG 802.11bg NIC (2.4GHz, PCI Express)
- 0020 AR5005VL 802.11bg Wireless NIC
- 0023 AR5416 802.11a/b/g/n Wireless PCI Adapter
- 0024 AR5418 802.11a/b/g/n Wireless PCI Express Adapter
+# the name AR5005VL is used for some AR5513 based designs
+ 0020 AR5513 802.11abg Wireless NIC
+ 0023 AR5416 802.11abgn Wireless PCI Adapter
+ 0024 AR5418 802.11abgn Wireless PCI Express Adapter
1014 AR5212 802.11abg NIC
1014 058a ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6)
3b08 D-Link AirPlus G DWL-G630
@@ -10684,6 +10995,7 @@
524d PMC-DX2001 Reconfigurable FPGA with TTL I/O
5335 PMC-SX35 Reconfigurable Virtex-4 FPGA with plug-in I/O
5456 PMC470 48-Channel Digital Input/Output Module
+16da Advantech Co., Ltd.
16df PIKA Technologies Inc.
16e3 European Space Agency
1e0f LEON2FT Processor
@@ -10712,7 +11024,7 @@
7174 VSC7174 PCI/PCI-X Serial ATA Host Bus Controller
172a Accelerated Encryption
13c8 AEP SureWare Runner 1000V3
-1734 Fujitsu Siemens Computer GmbH
+1734 Fujitsu Siemens Computers
1078 Amilo Pro v2010
1085 Celsius M450
1098 Amilo L 1310G
@@ -10735,6 +11047,7 @@
03eb AC1003 Gigabit Ethernet
1743 Peppercon AG
8139 ROL/F-100 Fast Ethernet Adapter with ROL
+1745 ViXS Systems, Inc.
1749 RLX Technologies
174b PC Partner Limited
174d WellX Telecom SA
@@ -10981,6 +11294,8 @@
18fb Resilience Corporation
1904 Hangzhou Silan Microelectronics Co., Ltd.
8139 RTL8139D [Realtek] PCI 10/100BaseTX ethernet adaptor
+1905 Micronas USA, Inc.
+1912 Renesas Technology Corp.
1923 Sangoma Technologies Corp.
0040 A200/Remora FXO/FXS Analog AFT card
0100 A104d QUAD T1/E1 AFT card
@@ -10988,6 +11303,43 @@
0400 A104u Quad T1/E1 AFT
# nee Level 5 Networks
1924 Solarflare Communications
+ 0703 SFC4000 rev A net [Solarstorm]
+ 10b8 0102 SMC10GPCIe-10BT (A2) [TigerCard]
+ 10b8 0103 SMC10GPCIe-10BT (A3) [TigerCard]
+ 10b8 0201 SMC10GPCIe-XFP (A1) [TigerCard]
+ 1924 0101 SFE4001-A1
+ 1924 0102 SFE4001-A2
+ 1924 0103 SFE4001-A3
+ 1924 0201 SFE4002-A1
+ 1924 0301 SFE4003-A1
+ 1924 0302 SFE4003-A2
+ 1924 0303 SFE4003-A3
+ 1924 0304 SFE4003-A4
+ 1924 0500 SFE4005-A0
+ 0710 SFC4000 rev B [Solarstorm]
+ 10b8 0103 SMC10GPCIe-10BT (A3) [TigerCard]
+ 10b8 0201 SMC10GPCIe-XFP (A1) [TigerCard]
+ 1924 0102 SFE4001-A2
+ 1924 0103 SFE4001-A3
+ 1924 0201 SFE4002-A1
+ 1924 0302 SFE4003-A2
+ 1924 0303 SFE4003-A3
+ 1924 0304 SFE4003-A4
+ 1924 0500 SFE4005-A0
+ 6703 SFC4000 rev A iSCSI/Onload [Solarstorm]
+ 10b8 0102 SMC10GPCIe-10BT (A2) [TigerCard]
+ 10b8 0103 SMC10GPCIe-10BT (A3) [TigerCard]
+ 10b8 0201 SMC10GPCIe-XFP (A1) [TigerCard]
+ 1924 0101 SFE4001-A1
+ 1924 0102 SFE4001-A2
+ 1924 0103 SFE4001-A3
+ 1924 0201 SFE4002-A1
+ 1924 0301 SFE4003-A1
+ 1924 0302 SFE4003-A2
+ 1924 0303 SFE4003-A3
+ 1924 0304 SFE4003-A4
+ 1924 0500 SFE4005-A0
+ c101 EF1-21022T [EtherFabric]
192e TransDimension
1931 Option N.V.
000c Qualcomm MSM6275 UMTS chip
@@ -11057,7 +11409,7 @@
8001 RapidFile
1993 Innominate Security Technologies AG
199a Pulse-LINK, Inc.
-19a2 ServerEngines LLC
+19a2 ServerEngines Corp.
0200 BladeEngine 10Gb PCI-E iSCSI adapter
0201 BladeEngine 10Gb PCI-E Network Adpater
19a8 DAQDATA GmbH
@@ -11081,10 +11433,12 @@
0007 CAN interface PCIcanx II HS or HS/HS
1a08 Sierra semiconductor
0000 SC15064
+1a0e DekTec Digital Video B.V.
1a1d GFaI e.V.
1a17 Meta Networks MTP-1G IDPS NIC
1a22 Ambric Inc.
1a29 Fortinet, Inc.
+1a2b Ascom AG
1a51 Hectronic AB
1a58 Razer USA Ltd.
1a5d Celoxica
@@ -11096,7 +11450,12 @@
1a78 Virident Systems Inc.
1a8c Verigy Pte. Ltd.
1100 E8001-66443 PCI Express CIC
+1aae Global Velocity, Inc.
1ab9 Espia Srl
+1ae0 Google, Inc.
+1ae8 Silicon Software GmbH
+1af4 Qumranet, Inc.
+1af5 Netezza Corp.
1b13 Jaton Corp
1c1c Symphony
0001 82C101
@@ -11107,9 +11466,11 @@
2020 DC-390
690c 690c
dc29 DC290
-1fc0 Tumsan Oy
+# nee Tumsan Oy
+1fc0 Ascom (Finland) Oy
0300 E2200 Dual E1/Rawpipe Card
-1fc1 PathScale, Inc
+# nee PathScale, Inc
+1fc1 QLogic, Corp.
000d InfiniPath HT-400
0010 InfiniPath PE-800
1fc9 Tehuti Networks Ltd.
@@ -11601,7 +11962,7 @@
8086 2004 PRO/1000 T Server Adapter
1008 82544EI Gigabit Ethernet Controller (Copper)
1014 0269 iSeries 1000/100/10 Ethernet Adapter
- 1028 011b PowerEdge 2550
+ 1028 011b PowerEdge 1650/2550
1028 011c PRO/1000 XT Network Connection
8086 1107 PRO/1000 XT Server Adapter
8086 2107 PRO/1000 XT Server Adapter
@@ -11677,8 +12038,9 @@
1019 82547EI Gigabit Ethernet Controller
1458 1019 GA-8IPE1000 Pro2 motherboard (865PE)
1458 e000 Intel Gigabit Ethernet (Kenai II)
- 8086 1019 PRO/1000 CT Desktop Connection
+ 8086 1019 ASUS PC-DL Deluxe mainboard (Socket 603)
8086 301f D865PERL mainboard
+ 8086 3025 D875PBZ motherboard
8086 302c Intel 82865G Mainboard (D865GBF)
8086 3427 S875WP1-E mainboard
101a 82547EI Gigabit Ethernet Controller (Mobile)
@@ -11686,7 +12048,7 @@
101d 82546EB Gigabit Ethernet Controller
8086 1000 PRO/1000 MT Quad Port Server Adapter
101e 82540EP Gigabit Ethernet Controller (Mobile)
- 1014 0549 PRO/1000 MT Mobile Connection
+ 1014 0549 Thinkpad
1179 0001 PRO/1000 MT Mobile Connection
8086 101e PRO/1000 MT Mobile Connection
1026 82545GM Gigabit Ethernet Controller
@@ -11726,18 +12088,20 @@
0e11 0098 Evo N600c
1039 82801DB PRO/100 VE (LOM) Ethernet Controller
1014 0267 NetVista A30p
+ 114a 0582 PC8 onboard ethernet ETH1
103a 82801DB PRO/100 VE (CNR) Ethernet Controller
103b 82801DB PRO/100 VM (LOM) Ethernet Controller
103c 82801DB PRO/100 VM (CNR) Ethernet Controller
103d 82801DB PRO/100 VE (MOB) Ethernet Controller
- 1014 0522 Thinkpad R40 model 2681
+ 1014 0522 ThinkPad R40
8086 103d 82562EZ 10/100 Ethernet Controller
103e 82801DB PRO/100 VM (MOB) Ethernet Controller
1040 536EP Data Fax Modem
16be 1040 V.9X DSP Data Fax Modem
1043 PRO/Wireless LAN 2100 3B Mini PCI Adapter
103c 08b0 tc1100 tablet
- 8086 2522 Samsung P30 integrated WLAN
+ 2527 8086 Asus M6800N
+ 8086 2522 Samsung X10/P30 integrated WLAN
8086 2527 MIM2000/Centrino
8086 2561 Dell Latitude D800
8086 2581 Toshiba Satellite M10
@@ -11745,7 +12109,9 @@
8086 a01f PRO/10GbE LR Server Adapter
8086 a11f PRO/10GbE LR Server Adapter
1049 82566MM Gigabit Network Connection
- 17aa 20b9 Lenovo Thinkpad T61
+ 103c 30c1 Compaq 6910p
+ 17aa 20b9 ThinkPad T61
+ 30c5 103c HP Compaq 8510p
104a 82566DM Gigabit Network Connection
104b 82566DC Gigabit Network Connection
104c 82562V 10/100 Network Connection
@@ -11773,6 +12139,7 @@
1775 6003 Telum GE-QT
8086 005e PRO/1000 PT Dual Port Server Connection
8086 105e PRO/1000 PT Dual Port Network Connection
+ 8086 10d5 82571PT Gigabit PT Quad Port Server ExpressModule
8086 115e PRO/1000 PT Dual Port Server Adapter
8086 116e PRO/1000 PT Dual Port Server Adapter
8086 125e PRO/1000 PT Dual Port Server Adapter
@@ -11800,10 +12167,10 @@
8086 0075 PRO/1000 CT Network Connection
8086 1075 PRO/1000 CT Network Connection
1076 82541GI Gigabit Ethernet Controller
- 1028 0165 PowerEdge 750
- 1028 016d PowerEdge 1850
- 1028 019a PowerEdge SC1425
- 1028 106d PowerEdge 1850
+ 1028 0165 PRO/1000 MT Network Connection
+ 1028 016d PRO/1000 MT Network Connection
+ 1028 019a PRO/1000 MT Network Connection
+ 1028 106d PRO/1000 MT Network Connection
8086 0076 PRO/1000 MT Network Connection
8086 1076 PRO/1000 MT Network Connection
8086 1176 PRO/1000 MT Desktop Adapter
@@ -11867,6 +12234,8 @@
1094 PRO/100 VE Network Connection
1095 PRO/100 VE Network Connection
1096 80003ES2LAN Gigabit Ethernet Controller (Copper)
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
1097 631xESB/632xESB DPT LAN Controller (Fiber)
1098 80003ES2LAN Gigabit Ethernet Controller (Serdes)
1099 82546GB Gigabit Ethernet Controller (Copper)
@@ -11874,7 +12243,7 @@
109a 82573L Gigabit Ethernet Controller
1179 ff10 PRO/1000 PL
17aa 2001 ThinkPad T60
- 17aa 207e Thinkpad X60s
+ 17aa 207e ThinkPad X60s
8086 109a PRO/1000 PL Network Connection
8086 309c DeskTop Board D945GTP
8086 30a5 DeskTop Board D975XBX
@@ -11913,6 +12282,10 @@
8086 10bc PRO/1000 PT Quad Port LP Server Adapter
8086 11bc PRO/1000 PT Quad Port LP Server Adapter
10bd 82566DM-2 Gigabit Network Connection
+ 1028 0211 OptiPlex 755
+ 3039 17aa Lenovo M57 USFF
+ 10be 82567 Gigabit Network Connection
+ 10bf 82567LF Gigabit Network Connection
10c0 82562V-2 10/100 Network Connection
10c2 82562G-2 10/100 Network Connection
10c3 82562GT-2 10/100 Network Connection
@@ -11922,9 +12295,21 @@
8086 a05f 10 Gigabit XF SR Dual Port Server Adapter
8086 a15f 10 Gigabit XF SR Dual Port Server Adapter
10c7 82598EB 10 Gigabit AF Network Connection
+ 1014 037f 10 Gigabit XF SR Server Adapter
+ 1014 0380 10 Gigabit XF LR Server Adapter
8086 a05f 10 Gigabit XF SR Server Adapter
8086 a15f 10 Gigabit XF SR Server Adapter
8086 a16f 10 Gigabit XF SR Server Adapter
+ 10c8 82598EB 10 Gigabit AT Network Connection
+ 8086 a10c 10 Gigabit AT Server Adapter
+ 8086 a11c 10 Gigabit AT Server Adapter
+ 8086 a12c 10 Gigabit AT Server Adapter
+ 10cb 82567V Gigabit Network Connection
+ 10cc 82567LM-2 Gigabit Network Connection
+ 10cd 82567LF-2 Gigabit Network Connection
+ 10ce 82567V-2 Gigabit Network Connection
+ 10d3 82574L Gigabit Network Connection
+ 8086 a01f Gigabit CT Desktop Adapter
10d5 82571PT Gigabit PT Quad Port Server ExpressModule
10d6 82575GB Gigabit Network Connection
8086 10d6 Gigabit VT Quad Port Server Adapter
@@ -11934,8 +12319,17 @@
10da 82571EB Quad Port Gigabit Mezzanine Adapter
103c 1717 NC364m Quad Port 1GbE BL-c Adapter
10dd 82598EB 10 Gigabit AT CX4 Network Connection
+ 10de 82567LM-3 Gigabit Network Connection
+ 10df 82567LF-3 Gigabit Network Connection
10e2 82575GB Gigabit Network Connection
8086 10e2 Gigabit VT Quad Port Server Adapter
+ 10e5 82567LM-4 Gigabit Network Connection
+ 10ec 10 Gigabit AT CX4 Network Connection
+ 8086 a01f 10 Gigabit CX4 Dual Port Server Adapter
+ 8086 a11f 10 Gigabit CX4 Dual Port Server Adapter
+ 10f4 10 Gigabit AT Network Connection
+ 8086 106f 10 Gigabit XF LR Server Adapter
+ 10f5 82567LM Gigabit Network Connection
1107 PRO/1000 MF Server Adapter (LX)
1130 82815 815 Chipset Host Bridge and Memory Controller Hub
1025 1016 Travelmate 612 TX
@@ -11967,7 +12361,7 @@
1226 82596 PRO/10 PCI
1227 82865 EtherExpress PRO/100A
1228 82556 EtherExpress PRO/100 Smart
- 1229 82557/8/9 Ethernet Pro 100
+ 1229 82557/8/9/0/1 Ethernet Pro 100
0e11 3001 82559 Fast Ethernet LOM with Alert on LAN*
0e11 3002 82559 Fast Ethernet LOM with Alert on LAN*
0e11 3003 82559 Fast Ethernet LOM with Alert on LAN*
@@ -12006,8 +12400,8 @@
1014 605c 10/100 EtherJet Secure Management Adapter
1014 705c 10/100 Netfinity 10/100 Ethernet Security Adapter
1014 805c 10/100 Netfinity 10/100 Ethernet Security Adapter
- 1028 009b PowerEdge 2500/2550
- 1028 00ce PowerEdge 1400
+ 1028 009b 10/100 Ethernet Server Adapter
+ 1028 00ce 10/100 Ethernet Server Adapter
1033 8000 PC-9821X-B06
1033 8016 PK-UG-X006
1033 801f PK-UG-X006
@@ -12026,6 +12420,7 @@
10cf 1115 8255x-based Ethernet Adapter (10/100)
10cf 1143 8255x-based Ethernet Adapter (10/100)
110a 008b 82551QM Fast Ethernet Multifuction PCI/CardBus Controller
+ 114a 0582 PC8 onboard ethernet ETH2
1179 0001 8255x-based Ethernet Adapter (10/100)
1179 0002 PCI FastEther LAN on Docker
1179 0003 8255x-based Fast Ethernet
@@ -12079,6 +12474,7 @@
8086 1051 EtherExpress PRO/100 Server Adapter
8086 1052 EtherExpress PRO/100 Server Adapter
8086 10f0 EtherExpress PRO/100+ Dual Port Adapter
+ 8086 1229 82557/8/9 [Ethernet Pro 100]
8086 2009 EtherExpress PRO/100 S Mobile Adapter
8086 200d EtherExpress PRO/100 Cardbus
8086 200e EtherExpress PRO/100 LAN+V90 Cardbus Modem
@@ -12186,6 +12582,8 @@
15d9 3280 Supermicro P4SBE Mainboard
1a31 82845 845 [Brookdale] Chipset AGP Bridge
1a38 5000 Series Chipset DMA Engine
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
1a48 82597EX 10GbE Ethernet Controller
8086 a01f PRO/10GbE SR Server Adapter
8086 a11f PRO/10GbE SR Server Adapter
@@ -12269,9 +12667,12 @@
# (rev d3) (prog-if (rev d3) (prog-if 01 [Subtractive decode])
103c 0934 HP Compaq nw8240 Mobile Workstation
103c 099c NX6110/NC6120
+ 103c 309f HP Compaq nx9420
103c 30a3 Compaq nw8440
+ 103c 30c1 Compaq 6910p
144d c00c P30 notebook
1734 1055 Amilo M1420
+ e4bf cc47 CCG-RUMBA
2449 82801BA/BAM/CA/CAM Ethernet Controller
0e11 0012 EtherExpress PRO/100 VM
0e11 0091 EtherExpress PRO/100 VE
@@ -12320,6 +12721,7 @@
244c 82801BAM ISA Bridge (LPC)
244e 82801 PCI Bridge
1014 0267 NetVista A30p
+ 1028 0211 Optiplex 755
2450 82801E ISA Bridge (LPC)
2452 82801E USB Controller
2453 82801E SMBus Controller
@@ -12349,7 +12751,7 @@
8086 1958 vpr Matrix 170B4
2485 82801CA/CAM AC'97 Audio Controller
1013 5959 Crystal WMD Audio Codec
- 1014 0222 ThinkPad T23 (2647-4MG) or A30/A30p (2652/2653)
+ 1014 0222 ThinkPad A30/A30p/T23
1014 0508 ThinkPad T30
1014 051c ThinkPad A/T/X Series
1043 1583 L3C (SPDIF)
@@ -12359,7 +12761,7 @@
144d c006 vpr Matrix 170B4
2486 82801CA/CAM AC'97 Modem Controller
1014 0223 ThinkPad A/T/X Series
- 1014 0503 ThinkPad R31 2656BBG
+ 1014 0503 ThinkPad R31
1014 051a ThinkPad A/T/X Series
101f 1025 620 Series
104d 80e7 VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
@@ -12396,7 +12798,10 @@
103c 088c NC8000 laptop
103c 0890 NC6000 laptop
103c 08b0 tc1100 tablet
+ 1043 8089 P4B533
1071 8160 MIM2000
+ 114a 0582 PC8 onboard USB 1.x
+ 144d c005 X10 Laptop
144d c00c P30/P35 notebook
1462 5800 845PE Max (MS-6580)
1509 2990 Averatec 5110H laptop
@@ -12418,7 +12823,8 @@
103c 0890 NC6000 laptop
103c 08b0 tc1100 tablet
1071 8160 MIM2000
- 144d c005 Samsung X10 Laptop
+ 114a 0582 PC8 onboard SMbus
+ 144d c005 X10 Laptop
144d c00c P30/P35 notebook
1458 24c2 GA-8PE667 Ultra
1462 5800 845PE Max (MS-6580)
@@ -12438,6 +12844,7 @@
103c 088c NC8000 laptop
103c 0890 NC6000 laptop
103c 08b0 tc1100 tablet
+ 1043 8089 P4B533
1071 8160 MIM2000
144d c00c P30/P35 notebook
1462 5800 845PE Max (MS-6580)
@@ -12462,19 +12869,21 @@
103c 088c NC8000 laptop
103c 0890 NC6000 laptop
103c 08b0 tc1100 tablet
+ 1043 80b0 P4B533
1071 8160 MIM2000
- 144d c005 Samsung X10 Laptop
+ 144d c005 X10 Laptop
144d c00c P30/P35 notebook
1458 a002 GA-8PE667 Ultra
1462 5800 845PE Max (MS-6580)
+ 1713 1043 Asus M6800N
1734 1005 D1451 (SCENIC N300, i845GV) Sigmatel STAC9750T
1734 1055 Amilo M1420
8086 24c5 Dell Dimension 2400
a002 1458 Realtek AC'97 codec [ALC655]
24c6 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller
- 1014 0524 Thinkpad T41
+ 1014 0524 ThinkPad T41
1014 0525 ThinkPad
- 1014 0559 Thinkpad R50e model 1634
+ 1014 0559 ThinkPad R50e
1025 003c Aspire 2001WLCi (Compal CL50 motherboard) implementation
1025 005a TravelMate 290
1028 0196 Inspiron 5160
@@ -12482,10 +12891,11 @@
103c 0890 NC6000 laptop
103c 08b0 tc1100 tablet
1071 8160 MIM2000
- 144d 2115 Samsung X10 Laptop
+ 144d 2115 X10 Laptop
144d c00c P30/P35 notebook
# Conexant HSF Softmodem (CXT22)
14f1 5422 D480 MDC V.9x Modem
+ 1826 1043 Asus M6800N
24c7 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3
1014 0267 NetVista A30p
1014 052d ThinkPad
@@ -12497,6 +12907,7 @@
103c 088c NC8000 laptop
103c 0890 NC6000 laptop
103c 08b0 tc1100 tablet
+ 1043 8089 P4B533
1071 8160 MIM2000
144d c00c P30/P35 notebook
1462 5800 845PE Max (MS-6580)
@@ -12518,12 +12929,15 @@
103c 0890 NC6000 laptop
103c 08b0 tc1100 tablet
1071 8160 MIM2000
+ 144d c005 X10 Laptop
144d c00c P30/P35 notebook
1734 1055 Amilo M1420
8086 4541 Latitude D400
24cb 82801DB (ICH4) IDE Controller
1014 0267 NetVista A30p
1028 0126 Optiplex GX260
+ 1043 8089 P4B533
+ 114a 0582 PC8 onboard IDE
1458 24c2 GA-8PE667 Ultra
1462 5800 845PE Max (MS-6580)
1734 1004 D1451 Mainboard (SCENIC N300, i845GV)
@@ -12546,8 +12960,11 @@
103c 088c NC8000 laptop
103c 0890 NC6000 laptop
103c 08b0 tc1100 tablet
+ 1043 8089 P4B533
1071 8160 MIM2000
+ 114a 0582 PC8 onboard USB 2.0
1179 ff00 Satellite 2430
+ 144d c005 X10 Laptop
144d c00c P30/P35 notebook
1462 3981 845PE Max (MS-6580)
1509 1968 Averatec 5110H
@@ -12562,7 +12979,7 @@
1028 0169 Precision 470
1028 019a PowerEdge SC1425
103c 12bc d530 CMT (DG746A)
- 1043 80a6 P4P800 SE Mainboard
+ 1043 80a6 P4P800 series motherboard
1458 24d1 GA-8IPE1000 Pro2 motherboard (865PE)
1462 7280 865PE Neo2 (MS-6728)
1565 5200 P4TSV Motherboard (865G)
@@ -12575,16 +12992,18 @@
1014 02dd eServer xSeries server mainboard
1014 02ed eServer xSeries server mainboard
1028 0169 Precision 470
+ 1028 016c PowerEdge 1850
+ 1028 016d PowerEdge 2850
1028 0183 PowerEdge 1800
1028 019a PowerEdge SC1425
103c 006a NX9500
103c 12bc d530 CMT (DG746A)
- 1043 80a6 P5P800-MX Mainboard
+ 1043 80a6 P4P800/P5P800 series motherboard
1458 24d2 GA-8IPE1000/8KNXP motherboard
1462 7280 865PE Neo2 (MS-6728)
1565 3101 P4TSV Motherboard (865G)
15d9 4580 P4SCE Mainboard
- 1734 101c Primergy RX300 S2
+ 1734 101c PRIMERGY RX/TX series onboard UHCI
8086 3427 S875WP1-E mainboard
8086 4246 Desktop Board D865GBF
8086 4c43 Desktop Board D865GLC
@@ -12600,7 +13019,7 @@
1462 7280 865PE Neo2 (MS-6728)
1565 3101 P4TSV Motherboard (865G)
15d9 4580 P4SCE Mainboard
- 1734 101c Primergy RX300 S2
+ 1734 101c PRIMERGY RX/TX S2 series SMBus
8086 3427 S875WP1-E mainboard
8086 4246 Desktop Board D865GBF
8086 4c43 Desktop Board D865GLC
@@ -12609,16 +13028,18 @@
1014 02dd eServer xSeries server mainboard
1014 02ed eServer xSeries server mainboard
1028 0169 Precision 470
+ 1028 016c PowerEdge 1850
+ 1028 016d PowerEdge 2850
1028 0183 PowerEdge 1800
1028 019a PowerEdge SC1425
103c 006a NX9500
103c 12bc d530 CMT (DG746A)
- 1043 80a6 P5P800-MX Mainboard
+ 1043 80a6 P4P800/P5P800 series motherboard
1458 24d2 GA-8IPE1000 Pro2 motherboard (865PE)
1462 7280 865PE Neo2 (MS-6728)
1565 3101 P4TSV Motherboard (865G)
15d9 4580 P4SCE Mainboard
- 1734 101c Primergy RX300 S2
+ 1734 101c PRIMERGY RX/TX S2 series onboard UHCI
8086 3427 S875WP1-E mainboard
8086 4246 Desktop Board D865GBF
8086 4c43 Desktop Board D865GLC
@@ -12642,15 +13063,17 @@
24d7 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3
1014 02ed xSeries server mainboard
1028 0169 Precision 470
+ 1028 016c PowerEdge 1850
+ 1028 016d PowerEdge 2850
1028 0183 PowerEdge 1800
103c 006a NX9500
103c 12bc d530 CMT (DG746A)
- 1043 80a6 P5P800-MX Mainboard
+ 1043 80a6 P4P800/P5P800 series motherboard
1458 24d2 GA-8IPE1000 Pro2 motherboard (865PE)
1462 7280 865PE Neo2 (MS-6728)
1565 3101 P4TSV Motherboard (865G)
15d9 4580 P4SCE Mainboard
- 1734 101c Primergy RX300 S2
+ 1734 101c PRIMERGY RX/TX S2 series onboard UHCI
8086 3427 S875WP1-E mainboard
8086 4246 Desktop Board D865GBF
8086 4c43 Desktop Board D865GLC
@@ -12659,16 +13082,18 @@
1014 02dd eServer xSeries server mainboard
1014 02ed eServer xSeries server mainboard
1028 0169 Precision 470
+ 1028 016c PowerEdge 1850
+ 1028 016d PowerEdge 2850
1028 019a PowerEdge SC1425
103c 006a NX9500
103c 12bc d530 CMT (DG746A)
- 1043 80a6 P5P800-MX Mainboard
+ 1043 80a6 P4P800/P5P800 series motherboard
1458 24d2 GA-8IPE1000 Pro2 motherboard (865PE)
1462 7280 865PE Neo2 (MS-6728)
1462 7580 MSI 875P
1565 3101 P4TSV Motherboard (865G)
15d9 4580 P4SCE Mainboard
- 1734 101c Primergy RX300 S2
+ 1734 101c PRIMERGY RX/TX S2 series onboard IDE
8086 24db P4C800 Mainboard
8086 3427 S875WP1-E mainboard
8086 4246 Desktop Board D865GBF
@@ -12679,11 +13104,13 @@
1014 02dd eServer xSeries server mainboard
1014 02ed eServer xSeries server mainboard
1028 0169 Precision 470
+ 1028 016c PowerEdge 1850
+ 1028 016d PowerEdge 2850
1028 0183 PowerEdge 1800
1028 019a PowerEdge SC1425
103c 006a NX9500
103c 12bc d530 CMT (DG746A)
- 1043 80a6 P5P800-MX Mainboard
+ 1043 80a6 P4P800/P5P800 series motherboard
1458 5006 GA-8IPE1000 Pro2 motherboard (865PE)
1462 7280 865PE Neo2 (MS-6728)
8086 3427 S875WP1-E mainboard
@@ -12693,12 +13120,12 @@
24de 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4
1014 02ed xSeries server mainboard
1028 0169 Precision 470
- 1043 80a6 P5P800-MX Mainboard
+ 1043 80a6 P4P800/P5P800 series motherboard
1458 24d2 GA-8IPE1000 Pro2 motherboard (865PE)
1462 7280 865PE Neo2 (MS-6728)
1565 3101 P4TSV Motherboard (865G)
15d9 4580 P4SCE Mainboard
- 1734 101c Primergy RX300 S2
+ 1734 101c PRIMERGY RX/TX S2 series onboard UHCI
8086 3427 S875WP1-E mainboard
8086 4246 Desktop Board D865GBF
8086 4c43 Desktop Board D865GLC
@@ -12755,7 +13182,7 @@
2570 82865G/PE/P DRAM Controller/Host-Hub Interface
103c 006a NX9500
103c 12bc d330 uT
- 1043 80f2 P5P800-MX Mainboard
+ 1043 80f2 P4P800/P5P800 series motherboard
1458 2570 GA-8IPE1000 Pro2 motherboard (865PE)
2571 82865G/PE/P PCI to AGP Controller
2572 82865G Integrated Graphics Controller
@@ -12792,9 +13219,9 @@
2589 E7220/E7221 PCI Express Root Port
258a E7221 Integrated Graphics Controller
2590 Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller
+ 1014 0575 ThinkPad Z60t
1028 0182 Dell Latidude C610
-# (rev 03)
- 103c 0934 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
103c 099c NX6110/NC6120
104d 81b7 Vaio VGN-S3XP
a304 81b7 Vaio VGN-S3XP
@@ -12878,7 +13305,9 @@
25c0 5000X Chipset Memory Controller Hub
25d0 5000Z Chipset Memory Controller Hub
25d4 5000V Chipset Memory Controller Hub
+ 15d9 8680 X7DVL-E-O motherboard
25d8 5000P Chipset Memory Controller Hub
+ 8086 3476 Intel S5000PSLSATA Server Board
25e2 5000 Series Chipset PCI Express x4 Port 2
25e3 5000 Series Chipset PCI Express x4 Port 3
25e4 5000 Series Chipset PCI Express x4 Port 4
@@ -12886,10 +13315,20 @@
25e6 5000 Series Chipset PCI Express x4 Port 6
25e7 5000 Series Chipset PCI Express x4 Port 7
25f0 5000 Series Chipset FSB Registers
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
25f1 5000 Series Chipset Reserved Registers
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
25f3 5000 Series Chipset Reserved Registers
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
25f5 5000 Series Chipset FBD Registers
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
25f6 5000 Series Chipset FBD Registers
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
25f7 5000 Series Chipset PCI Express x8 Port 2-3
25f8 5000 Series Chipset PCI Express x8 Port 4-5
25f9 5000 Series Chipset PCI Express x8 Port 6-7
@@ -12935,8 +13374,7 @@
e4bf 0cd3 CD3-JIVE
e4bf 58b1 XB1
2641 82801FBM (ICH6M) LPC Interface Bridge
-# (rev 03)
- 103c 0934 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
103c 099c NX6110/NC6120
2642 82801FW/FRW (ICH6W/ICH6RW) LPC Interface Bridge
2651 82801FB/FW (ICH6/ICH6W) SATA Controller
@@ -12954,8 +13392,7 @@
2658 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1
1028 0177 Dimension 8400
1028 0179 Optiplex GX280
-# (rev 03) (prog-if 00 [UHCI])
- 103c 0934 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
103c 099c NX6110/NC6120
1043 80a6 P5GD1-VW Mainboard
1458 2558 GA-8I915ME-G Mainboard
@@ -12967,8 +13404,7 @@
2659 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2
1028 0177 Dimension 8400
1028 0179 Optiplex GX280
-# (prog-if 00 [UHCI])
- 103c 0934 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
103c 099c NX6110/NC6120
1043 80a6 P5GD1-VW Mainboard
1458 2659 GA-8I915ME-G Mainboard
@@ -12980,8 +13416,7 @@
265a 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3
1028 0177 Dimension 8400
1028 0179 Optiplex GX280
-# (prog-if 00 [UHCI])
- 103c 0934 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
103c 099c NX6110/NC6120
1043 80a6 P5GD1-VW Mainboard
1458 265a GA-8I915ME-G Mainboard
@@ -13004,8 +13439,7 @@
265c 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller
1028 0177 Dimension 8400
1028 0179 Optiplex GX280
-# (rev 03) (prog-if 20 [EHCI])
- 103c 0934 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
103c 099c NX6110/NC6120
1043 80a6 P5GD1-VW Mainboard
1458 5006 GA-8I915ME-G Mainboard
@@ -13037,9 +13471,12 @@
e4bf 0cd3 CD3-JIVE
e4bf 58b1 XB1
2668 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller
+ 1014 05b7 ThinkPad Z60t
# based on the PTGD1-LA motherboard
103c 2a09 PufferM-UL8E
+ 1043 1173 Asus A6VC
1043 814e P5GD1-VW Mainboard
+ 1462 7028 915P/G Neo2
266a 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller
1028 0177 Dimension 8400
1028 0179 Optiplex GX280
@@ -13053,8 +13490,7 @@
266c 82801FB/FBM/FR/FW/FRW (ICH6 Family) LAN Controller
266d 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller
1025 006a Conexant AC'97 CoDec (in Acer TravelMate 2410 serie laptop)
-# (rev 03) (prog-if 00 [Generic])
- 103c 0934 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
103c 099c NX6110/NC6120
266e 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller
1025 006a Realtek ALC 655 codec (in Acer TravelMate 2410 serie laptop)
@@ -13062,8 +13498,7 @@
1028 0179 Optiplex GX280
1028 0182 Latitude D610 Laptop
1028 0188 Inspiron 6000 laptop
-# (rev 03)
- 103c 0934 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
103c 0944 Compaq NC6220
103c 099c NX6110/NC6120
103c 3006 DC7100 SFF(DX878AV)
@@ -13072,8 +13507,7 @@
1734 105a Scenic W620
266f 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller
1028 0177 Dimension 8400
-# (rev 03) (prog-if 8a [Master SecP PriP])
- 103c 0934 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
103c 099c NX6110/NC6120
1043 80a6 P5GD1-VW Mainboard
1458 266f GA-8I915ME-G Mainboard
@@ -13083,15 +13517,29 @@
e4bf 0cd3 CD3-JIVE
e4bf 58b1 XB1
2670 631xESB/632xESB/3100 Chipset LPC Interface Controller
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
2680 631xESB/632xESB/3100 Chipset SATA IDE Controller
2681 631xESB/632xESB SATA AHCI Controller
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
2682 631xESB/632xESB SATA RAID Controller
2683 631xESB/632xESB SATA RAID Controller
2688 631xESB/632xESB/3100 Chipset UHCI USB Controller #1
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
2689 631xESB/632xESB/3100 Chipset UHCI USB Controller #2
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
268a 631xESB/632xESB/3100 Chipset UHCI USB Controller #3
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
268b 631xESB/632xESB/3100 Chipset UHCI USB Controller #4
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
268c 631xESB/632xESB/3100 Chipset EHCI USB2 Controller
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
2690 631xESB/632xESB/3100 Chipset PCI Express Root Port 1
2692 631xESB/632xESB/3100 Chipset PCI Express Root Port 2
2694 631xESB/632xESB/3100 Chipset PCI Express Root Port 3
@@ -13100,17 +13548,24 @@
2699 631xESB/632xESB AC '97 Modem Controller
269a 631xESB/632xESB High Definition Audio Controller
269b 631xESB/632xESB/3100 Chipset SMBus Controller
+ 15d9 8680 X7DVL-E-O motherboard
+ 8086 3476 Intel S5000PSLSATA Server Board
269e 631xESB/632xESB IDE Controller
+ 15d9 8680 X7DVL-E-O motherboard
2770 82945G/GZ/P/PL Memory Controller Hub
+ 1028 01ad OptiPlex GX620
107b 5048 E4500
8086 544e DeskTop Board D945GTP
2771 82945G/GZ/P/PL PCI Express Root Port
2772 82945G/GZ Integrated Graphics Controller
8086 544e DeskTop Board D945GTP
+ 8086 d605 Intel Desktop Board D945GCCR
2774 82955X Memory Controller Hub
2775 82955X PCI Express Root Port
2776 82945G/GZ Integrated Graphics Controller
2778 E7230/3000/3010 Memory Controller Hub
+ 1028 01df PowerEdge SC440
+ 1028 01e6 PowerEdge 860
2779 E7230/3000/3010 PCI Express Root Port
277a 82975X/3010 PCI Express Root Port
277c 82975X Memory Controller Hub
@@ -13127,26 +13582,31 @@
e4bf 58b1 XB1
27a0 Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub
1025 006c 9814 WKMI
+ 1028 01d7 XPS M1210
103c 30a1 NC2400
103c 30a3 Compaq nw8440
- 17aa 2017 Thinkpad R60e model 0657
+ 17aa 2015 ThinkPad T60
+ 17aa 2017 ThinkPad T60/R60 series
27a1 Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port
103c 30a3 Compaq nw8440
27a2 Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller
103c 30a1 NC2400
- 17aa 201a Thinkpad R60e model 0657
+ 17aa 201a ThinkPad T60/R60 series
27a6 Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller
103c 30a1 NC2400
- 17aa 201a Thinkpad R60e model 0657
+ 17aa 201a ThinkPad T60/R60 series
27ac Mobile 945GME Express Memory Controller Hub
27ad Mobile 945GME Express PCI Express Root Port
27ae Mobile 945GME Express Integrated Graphics Controller
27b0 82801GH (ICH7DH) LPC Interface Bridge
8086 544e DeskTop Board D945GTP
27b8 82801GB/GR (ICH7 Family) LPC Interface Bridge
+ 1028 01e6 PowerEdge 860
107b 5048 E4500
8086 544e DeskTop Board D945GTP
27b9 82801GBM (ICH7-M) LPC Interface Bridge
+ 1028 01d7 XPS M1210
+ 103c 309f HP Compaq nx9420
103c 30a1 NC2400
103c 30a3 Compaq nw8440
10f7 8338 Panasonic CF-Y5 laptop
@@ -13154,22 +13614,32 @@
27bd 82801GHM (ICH7-M DH) LPC Interface Bridge
1025 006c 9814 WKMI
27c0 82801GB/GR/GH (ICH7 Family) SATA IDE Controller
+ 1028 01ad OptiPlex GX620
+ 1028 01df PowerEdge SC440
+ 1028 01e6 PowerEdge 860
107b 5048 E4500
+ 1462 2310 MSI Hetis 945
1462 7236 945P Neo3-F Rev. 2.2 motherboard
8086 544e DeskTop Board D945GTP
27c1 82801GR/GH (ICH7 Family) SATA AHCI Controller
+ 1028 01df PowerEdge SC440
8086 5842 DeskTop Board D975XBX
27c3 82801GR/GH (ICH7 Family) SATA RAID Controller
8086 544e DeskTop Board D945GTP
27c4 82801GBM/GHM (ICH7 Family) SATA IDE Controller
1025 006c 9814 WKMI
+ 1028 01d7 XPS M1210
17aa 200e Thinkpad T60 model 2007
27c5 82801GBM/GHM (ICH7 Family) SATA AHCI Controller
103c 30a3 Compaq nw8440
- 17aa 200d Thinkpad R60e model 0657
+ 17aa 200d ThinkPad T60/R60 series
27c6 82801GHM (ICH7-M DH) SATA RAID Controller
27c8 82801G (ICH7 Family) USB UHCI Controller #1
1025 006c 9814 WKMI
+ 1028 01ad OptiPlex GX620
+ 1028 01d7 XPS M1210
+ 1028 01df PowerEdge SC440
+ 1028 01e6 PowerEdge 860
103c 30a1 NC2400
103c 30a3 Compaq nw8440
107b 5048 E4500
@@ -13177,6 +13647,10 @@
8086 544e DeskTop Board D945GTP
27c9 82801G (ICH7 Family) USB UHCI Controller #2
1025 006c 9814 WKMI
+ 1028 01ad OptiPlex GX620
+ 1028 01d7 XPS M1210
+ 1028 01df PowerEdge SC440
+ 1028 01e6 PowerEdge 860
103c 30a1 NC2400
103c 30a3 Compaq nw8440
107b 5048 E4500
@@ -13184,6 +13658,10 @@
8086 544e DeskTop Board D945GTP
27ca 82801G (ICH7 Family) USB UHCI Controller #3
1025 006c 9814 WKMI
+ 1028 01ad OptiPlex GX620
+ 1028 01d7 XPS M1210
+ 1028 01df PowerEdge SC440
+ 1028 01e6 PowerEdge 860
103c 30a1 NC2400
103c 30a3 Compaq nw8440
107b 5048 E4500
@@ -13191,6 +13669,9 @@
8086 544e DeskTop Board D945GTP
27cb 82801G (ICH7 Family) USB UHCI Controller #4
1025 006c 9814 WKMI
+ 1028 01ad OptiPlex GX620
+ 1028 01d7 XPS M1210
+ 1028 01df PowerEdge SC440
103c 30a1 NC2400
103c 30a3 Compaq nw8440
107b 5048 E4500
@@ -13198,6 +13679,10 @@
8086 544e DeskTop Board D945GTP
27cc 82801G (ICH7 Family) USB2 EHCI Controller
1025 006c 9814 WKMI
+ 1028 01ad OptiPlex GX620
+ 1028 01d7 XPS M1210
+ 1028 01df PowerEdge SC440
+ 1028 01e6 PowerEdge 860
103c 30a1 NC2400
103c 30a3 Compaq nw8440
17aa 200b ThinkPad T60/R60 series
@@ -13211,114 +13696,281 @@
103c 30a3 Compaq nw8440
27d8 82801G (ICH7 Family) High Definition Audio Controller
1025 006c 9814 WKMI
+ 1028 01d7 XPS M1210
103c 30a1 NC2400
103c 30a3 Compaq nw8440
1043 13c4 Asus G2P
107b 5048 E4500
10f7 8338 Panasonic CF-Y5 laptop
+ 1179 ff10 Toshiba Satellite A100-796 audio (Realtek ALC861)
1179 ff31 AC97 Data Fax SoftModem with SmartCP
152d 0753 Softmodem
1734 10ad Conexant softmodem SmartCP
17aa 2010 ThinkPad T60/R60 series
17aa 3802 Lenovo 3000 C200 audio [Realtek ALC861VD]
8086 1112 DeskTop Board D945GTP
- 8086 27d8 Lenovo 3000 N100 Audio (Intel HDA)
+ 8086 27d8 DeskTop Board D945GTP
+ a102 1458 DeskTop Board Gigabyte GA-8I945PG-RH
27da 82801G (ICH7 Family) SMBus Controller
1025 006c 9814 WKMI
+ 1028 01ad OptiPlex GX620
+ 1028 01d7 XPS M1210
+ 1028 01df PowerEdge SC440
+ 1028 01e6 PowerEdge 860
10f7 8338 Panasonic CF-Y5 laptop
17aa 200f ThinkPad T60/R60 series
+ 5001 1458 DeskTop Board Gigabyte GA-8I945PG-RH
8086 544e DeskTop Board D945GTP
8086 5842 DeskTop Board D975XBX
27dc 82801G (ICH7 Family) LAN Controller
8086 308d DeskTop Board D945GTP
27dd 82801G (ICH7 Family) AC'97 Modem Controller
27de 82801G (ICH7 Family) AC'97 Audio Controller
+ 1028 01ad OptiPlex GX620
1462 7267 Realtek ALC883 Audio Controller
27df 82801G (ICH7 Family) IDE Controller
+ 1028 01df PowerEdge SC440
+ 1028 01e6 PowerEdge 860
103c 30a1 NC2400
103c 30a3 Compaq nw8440
107b 5048 E4500
10f7 8338 Panasonic CF-Y5 laptop
- 17aa 200c Thinkpad R60e model 0657
+ 17aa 200c ThinkPad T60/R60 series
8086 544e DeskTop Board D945GTP
27e0 82801GR/GH/GHM (ICH7 Family) PCI Express Port 5
27e2 82801GR/GH/GHM (ICH7 Family) PCI Express Port 6
2810 82801HB/HR (ICH8/R) LPC Interface Controller
+ 1043 81ec P5B
2811 82801HBM (ICH8M-E) LPC Interface Controller
+ 103c 30c1 Compaq 6910p
+ e4bf cc47 CCG-RUMBA
2812 82801HH (ICH8DH) LPC Interface Controller
2814 82801HO (ICH8DO) LPC Interface Controller
2815 82801HEM (ICH8M) LPC Interface Controller
+ 1025 0121 Aspire 5920G
+ 1028 01f3 Inspiron 1420
+ 103c 30c0 Compaq 6710b
+ 103c 30d9 Presario C700
+ 104d 9005 Vaio VGN-FZ260E
2820 82801H (ICH8 Family) 4 port SATA IDE Controller
+ 1028 01da OptiPlex 745
1462 7235 P965 Neo MS-7235 mainboard
2821 82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA AHCI Controller
2822 82801 SATA RAID Controller
2824 82801HB (ICH8) 4 port SATA AHCI Controller
+ 1043 81ec P5B
2825 82801H (ICH8 Family) 2 port SATA IDE Controller
+ 1028 01da OptiPlex 745
1462 7235 P965 Neo MS-7235 mainboard
2828 82801HBM/HEM (ICH8M/ICH8M-E) SATA IDE Controller
+ 1028 01f3 Inspiron 1420
+ e4bf cc47 CCG-RUMBA
2829 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller
+ 1025 0121 Aspire 5920G
+ 103c 30c0 Compaq 6710b
+ 103c 30c1 Compaq 6910p
+ 103c 30d9 Presario C700
+ 104d 9005 Vaio VGN-FZ260E
+ 17aa 20a7 ThinkPad T61
282a Mobile 82801 SATA RAID Controller
2830 82801H (ICH8 Family) USB UHCI Controller #1
+ 1025 0121 Acer Aspire 5920G
+ 1028 01da OptiPlex 745
+ 1028 01f3 Inspiron 1420
+ 103c 30c0 Compaq 6710b
+ 103c 30c1 Compaq 6910p
+ 103c 30d9 Presario C700
+ 1043 81ec P5B
+ 104d 9005 Vaio VGN-FZ260E
1462 7235 P965 Neo MS-7235 mainboard
+ 17aa 20aa ThinkPad T61
+ e4bf cc47 CCG-RUMBA
2831 82801H (ICH8 Family) USB UHCI Controller #2
+ 1025 0121 Aspire 5920G
+ 1028 01da OptiPlex 745
+ 1028 01f3 Inspiron 1420
+ 103c 30c0 Compaq 6710b
+# Name mistyped on previous submission
+ 103c 30c1 Compaq 6910p
+ 103c 30d9 Presario C700
+ 1043 81ec P5B
+ 104d 9005 Vaio VGN-FZ260E
1462 7235 P965 Neo MS-7235 mainboard
+ 17aa 20aa ThinkPad T61
+ e4bf cc47 CCG-RUMBA
2832 82801H (ICH8 Family) USB UHCI Controller #3
- 2834 82801H (ICH8 Family) USB UHCI Contoller #4
+ 1025 0121 Aspire 5920G
+ 1028 01da OptiPlex 745
+ 1028 01f3 Inspiron 1420
+ 103c 30c0 Compaq 6710b
+ 103c 30c1 Compaq 6910p
+ 103c 30d9 Presario C700
+ 1043 81ec P5B
+ 104d 9005 Vaio VGN-FZ260E
+ 17aa 20aa ThinkPad T61
+ e4bf cc47 CCG-RUMBA
+ 2834 82801H (ICH8 Family) USB UHCI Controller #4
+ 1025 0121 Aspire 5920G
+ 1028 01da OptiPlex 745
+ 1028 01f3 Inspiron 1420
+ 103c 30c0 Compaq 6710b
+ 103c 30c1 Compaq 6910p
+ 1043 81ec P5B
+ 104d 9005 Vaio VGN-FZ260E
1462 7235 P965 Neo MS-7235 mainboard
- 17aa 20aa Lenovo Thinkpad T61
+ 17aa 20aa ThinkPad T61
+ e4bf cc47 CCG-RUMBA
2835 82801H (ICH8 Family) USB UHCI Controller #5
- 17aa 20aa Lenovo Thinkpad T60
+ 1025 0121 Acer Aspire 5920G
+ 1028 01da OptiPlex 745
+ 1028 01f3 Inspiron 1420
+ 103c 30c0 Compaq 6710b
+ 103c 30c1 Compaq 6910p
+ 1043 81ec P5B
+ 104d 9005 Vaio VGN-FZ260E
+ 17aa 20aa ThinkPad T60
+ e4bf cc47 CCG-RUMBA
2836 82801H (ICH8 Family) USB2 EHCI Controller #1
+ 1025 0121 Aspire 5920G
+ 1028 01da OptiPlex 745
+ 1028 01f3 Inspiron 1420
+ 103c 30c0 Compaq 6710b
+ 103c 30c1 Compaq 6910p
+ 103c 30d9 Presario C700
+ 1043 81ec P5B
+ 104d 9005 Vaio VGN-FZ260E
1462 7235 P965 Neo MS-7235 mainboard
+ 17aa 20ab ThinkPad T61
+ e4bf cc47 CCG-RUMBA
283a 82801H (ICH8 Family) USB2 EHCI Controller #2
- 17aa 20ab Lenovo Thinkpad T61
+ 1025 0121 Acer Aspire 5920G
+ 1028 01da OptiPlex 745
+ 1028 01f3 Inspiron 1420
+ 103c 30c0 Compaq 6710b
+ 103c 30c1 Compaq 6910p
+ 1043 81ec P5B
+ 104d 9005 Vaio VGN-FZ260E
+ 17aa 20ab ThinkPad T61
+ e4bf cc47 CCG-RUMBA
283e 82801H (ICH8 Family) SMBus Controller
+ 1025 0121 Aspire 5920G
+ 1028 01da OptiPlex 745
+ 1028 01f3 Inspiron 1420
+ 103c 30d9 Presario C700
+ 1043 81ec P5B
+ 104d 9005 Vaio VGN-FZ260E
1462 7235 P965 Neo MS-7235 mainboard
+ 17aa 20a9 ThinkPad T61
+ e4bf cc47 CCG-RUMBA
283f 82801H (ICH8 Family) PCI Express Port 1
+ 1028 01da OptiPlex 745
+ 103c 30c1 Compaq 6910p
2841 82801H (ICH8 Family) PCI Express Port 2
+ 103c 30c1 Compaq 6910p
2843 82801H (ICH8 Family) PCI Express Port 3
2845 82801H (ICH8 Family) PCI Express Port 4
2847 82801H (ICH8 Family) PCI Express Port 5
+ 1028 01da OptiPlex 745
+ 103c 30c1 Compaq 6910p
2849 82801H (ICH8 Family) PCI Express Port 6
284b 82801H (ICH8 Family) HD Audio Controller
- 17aa 20ac Lenovo Thinkpad T61
+ 0690 107b Gateway P-6825
+ 1025 011f Realtek ALC268 audio codec
+ 1025 0121 Aspire 5920G
+ 1028 01da OptiPlex 745
+ 1028 01f3 Inspiron 1420
+ 1028 01f9 Dell Latitude D630
+ 1028 01ff Dell Precision M4300
+ 103c 2802 HP Compaq dc7700p
+ 103c 30c0 Compaq 6710b
+ 103c 30c1 Compaq 6910p
+ 1043 81ec P5B
+ 104d 9005 Vaio VGN-FZ260E
+ 14f1 5051 Presario C700
+ 17aa 20ac ThinkPad T61
+ 8384 7616 Dell Vostro 1400
284f 82801H (ICH8 Family) Thermal Reporting Device
2850 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller
+ 1025 0121 Aspire 5920G
+ 1028 01f3 Inspiron 1420
+ 103c 30c0 Compaq 6710b
+ 103c 30c1 Compaq 6910p
+ 103c 30d9 Presario C700
+ 104d 9005 Vaio VGN-FZ260E
+ 17aa 20a6 ThinkPad T61
+ e4bf cc47 CCG-RUMBA
2912 82801IH (ICH9DH) LPC Interface Controller
2914 82801IO (ICH9DO) LPC Interface Controller
+ 1028 0211 Optiplex 755
2916 82801IR (ICH9R) LPC Interface Controller
- 2917 Mobile LPC Interface Controller
+ 2917 ICH9M-E LPC Interface Controller
2918 82801IB (ICH9) LPC Interface Controller
- 2919 Mobile LPC Interface Controller
+ 2919 ICH9M LPC Interface Controller
2920 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA IDE Controller
+ 1028 020f PowerEdge R300
+ 1028 0210 PowerEdge T300
+ 1028 0211 Optiplex 755
+ 1028 023c PowerEdge R200
2921 82801IB (ICH9) 2 port SATA IDE Controller
2922 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA AHCI Controller
2923 82801IB (ICH9) 4 port SATA AHCI Controller
2925 82801IR/IO (ICH9R/DO) SATA RAID Controller
+ 1734 10e0 System Board D2542
+ 8086 2925 System Board D2542
2926 82801I (ICH9 Family) 2 port SATA IDE Controller
- 2928 Mobile 2 port SATA IDE Controller
- 2929 Mobile SATA AHCI Controller
- 292c Mobile SATA RAID Controller
- 292d Mobile 2 port SATA IDE Controller
- 292e Mobile 1 port SATA IDE Controller
+ 1028 0211 Optiplex 755
+ 2928 ICH9M/M-E 2 port SATA IDE Controller
+ 2929 ICH9M/M-E SATA AHCI Controller
+ 292c ICH9M-E SATA RAID Controller
+ 292d ICH9M/M-E 2 port SATA IDE Controller
+ 292e ICH9M SATA IDE Controller
2930 82801I (ICH9 Family) SMBus Controller
+ 1028 0211 Optiplex 755
2932 82801I (ICH9 Family) Thermal Subsystem
2934 82801I (ICH9 Family) USB UHCI Controller #1
+ 1028 020f PowerEdge R300
+ 1028 0210 PowerEdge T300
+ 1028 0211 Optiplex 755
+ 1028 2011 Optiplex 755
2935 82801I (ICH9 Family) USB UHCI Controller #2
+ 1028 020f PowerEdge R300
+ 1028 0210 PowerEdge T300
+ 1028 0211 Optiplex 755
2936 82801I (ICH9 Family) USB UHCI Controller #3
+ 1028 020f PowerEdge R300
+ 1028 0210 PowerEdge T300
+ 1028 0211 Optiplex 755
2937 82801I (ICH9 Family) USB UHCI Controller #4
+ 1028 0211 Optiplex 755
+ 1028 2011 Optiplex 755
+ 8086 2937 Optiplex 755
+ 8086 2942 828011 (ICH9 Family ) USB UHCI Controller
2938 82801I (ICH9 Family) USB UHCI Controller #5
+ 1028 0211 Optiplex 755
+ 8086 2938 Optiplex 755
2939 82801I (ICH9 Family) USB UHCI Controller #6
+ 1028 0210 PowerEdge T300
293a 82801I (ICH9 Family) USB2 EHCI Controller #1
+ 1028 020f PowerEdge R300
+ 1028 0210 PowerEdge T300
+ 1028 0211 Optiplex 755
293c 82801I (ICH9 Family) USB2 EHCI Controller #2
+ 1028 0211 Optiplex 755
+ 8086 293c Optiplex 755
293e 82801I (ICH9 Family) HD Audio Controller
+ 1028 0211 Optiplex 755
+ 8086 293e Optiplex 755
+ 8086 2940 Optiplex 755
2940 82801I (ICH9 Family) PCI Express Port 1
+ 1028 0211 Optiplex 755
+ 8086 2940 Optiplex 755
2942 82801I (ICH9 Family) PCI Express Port 2
2944 82801I (ICH9 Family) PCI Express Port 3
2946 82801I (ICH9 Family) PCI Express Port 4
2948 82801I (ICH9 Family) PCI Express Port 5
294a 82801I (ICH9 Family) PCI Express Port 6
- 294c 82801I (ICH9 Family) Gigabit Ethernet Controller
+ 294c 82566DC-2 Gigabit Network Connection
+ 17aa 302e 82566DM-2 Gigabit Network Connection
2970 82946GZ/PL/GL Memory Controller Hub
2971 82946GZ/PL/GL PCI Express Root Port
2972 82946GZ/GL Integrated Graphics Controller
@@ -13333,6 +13985,7 @@
2983 82G35 Express Integrated Graphics Controller
2984 82G35 Express HECI Controller
2990 82Q963/Q965 Memory Controller Hub
+ 1028 01da OptiPlex 745
2991 82Q963/Q965 PCI Express Root Port
2992 82Q963/Q965 Integrated Graphics Controller
2993 82Q963/Q965 Integrated Graphics Controller
@@ -13341,6 +13994,7 @@
2996 82Q963/Q965 PT IDER Controller
2997 82Q963/Q965 KT Controller
29a0 82P965/G965 Memory Controller Hub
+ 1043 81ea P5B
1462 7276 MS-7276 [G965MDH]
29a1 82P965/G965 PCI Express Root Port
29a2 82G965 Integrated Graphics Controller
@@ -13351,13 +14005,20 @@
29a6 82P965/G965 PT IDER Controller
29a7 82P965/G965 KT Controller
29b0 82Q35 Express DRAM Controller
+ 1028 0211 OptiPlex 755
29b1 82Q35 Express PCI Express Root Port
+ 1028 0211 OptiPlex 755
29b2 82Q35 Express Integrated Graphics Controller
+ 1028 0211 OptiPlex 755
29b3 82Q35 Express Integrated Graphics Controller
+ 1028 0211 OptiPlex 755
29b4 82Q35 Express MEI Controller
+ 1028 0211 OptiPlex 755
29b5 82Q35 Express MEI Controller
29b6 82Q35 Express PT IDER Controller
+ 1028 0211 OptiPlex 755
29b7 82Q35 Express Serial KT Controller
+ 1028 0211 OptiPlex 755
29c0 82G33/G31/P35/P31 Express DRAM Controller
29c1 82G33/G31/P35/P31 Express PCI Express Root Port
29c2 82G33/G31 Express Integrated Graphics Controller
@@ -13375,49 +14036,76 @@
29d5 82Q33 Express MEI Controller
29d6 82Q33 Express PT IDER Controller
29d7 82Q33 Express Serial KT Controller
- 29e0 82X38 Express DRAM Controller
- 29e1 82X38 Express Host-Primary PCI Express Bridge
- 29e4 82X38 Express MEI Controller
- 29e5 82X38 Express MEI Controller
- 29e6 82X38 Express PT IDER Controller
- 29e7 82X38 Express Serial KT Controller
- 29e9 82X38 Express Host-Secondary PCI Express Bridge
- 29f0 Server DRAM Controller
- 29f1 Server Host-Primary PCI Express Bridge
- 29f4 Server MEI Controller
- 29f5 Server MEI Controller
- 29f6 Server PT IDER Controller
- 29f7 Server Serial KT Controller
- 29f9 Server Host-Secondary PCI Express Bridge
+ 29e0 82X38/X48 Express DRAM Controller
+ 29e1 82X38/X48 Express Host-Primary PCI Express Bridge
+ 29e4 82X38/X48 Express MEI Controller
+ 29e5 82X38/X48 Express MEI Controller
+ 29e6 82X38/X48 Express PT IDER Controller
+ 29e7 82X38/X48 Express Serial KT Controller
+ 29e9 82X38/X48 Express Host-Secondary PCI Express Bridge
+ 29f0 3200/3210 Chipset DRAM Controller
+ 29f1 3200/3210 Chipset Host-Primary PCI Express Bridge
+ 29f4 3200/3210 Chipset MEI Controller
+ 29f5 3200/3210 Chipset MEI Controller
+ 29f6 3200/3210 Chipset PT IDER Controller
+ 29f7 3200/3210 Chipset Serial KT Controller
+ 29f9 3210 Chipset Host-Secondary PCI Express Bridge
2a00 Mobile PM965/GM965/GL960 Memory Controller Hub
- 17aa 20b1 Lenovo Thinkpad T61
+ 1025 0121 Acer Aspire 5920G
+ 1028 01f3 Inspiron 1420
+ 103c 30c0 Compaq 6710b
+ 103c 30c1 Compaq 6910p
+ 103c 30d9 Presario C700
+ 104d 9005 Vaio VGN-FZ260E
+ 17aa 20b1 ThinkPad T61
+ e4bf cc47 CCG-RUMBA
2a01 Mobile PM965/GM965/GL960 PCI Express Root Port
2a02 Mobile GM965/GL960 Integrated Graphics Controller
+ 1028 01f3 Inspiron 1420
+ 1028 01f9 Latitude D630
+ 103c 30c0 Compaq 6710b
+ 103c 30d9 Presario C700
+ e4bf cc47 CCG-RUMBA
2a03 Mobile GM965/GL960 Integrated Graphics Controller
+ 1028 01f3 Dell Inspiron 1420
+ 103c 30c0 Compaq 6710b
+ 103c 30d9 Presario C700
+ e4bf cc47 CCG-RUMBA
2a04 Mobile PM965/GM965 MEI Controller
+ 103c 30c1 Compaq 6910p
2a05 Mobile PM965/GM965 MEI Controller
2a06 Mobile PM965/GM965 PT IDER Controller
+ 103c 30c1 Compaq 6910p
2a07 Mobile PM965/GM965 KT Controller
+ 103c 30c1 Compaq 6910p
2a10 Mobile GME965/GLE960 Memory Controller Hub
+ e4bf cc47 CCG-RUMBA
2a11 Mobile GME965/GLE960 PCI Express Root Port
2a12 Mobile GME965/GLE960 Integrated Graphics Controller
+ e4bf cc47 CCG-RUMBA
2a13 Mobile GME965/GLE960 Integrated Graphics Controller
+ e4bf cc47 CCG-RUMBA
2a14 Mobile GME965/GLE960 MEI Controller
2a15 Mobile GME965/GLE960 MEI Controller
2a16 Mobile GME965/GLE960 PT IDER Controller
2a17 Mobile GME965/GLE960 KT Controller
- 2a40 Mobile Memory Controller Hub
- 2a41 Mobile PCI Express Graphics Port
- 2a42 Mobile Integrated Graphics Controller
- 2a43 Mobile Integrated Graphics Controller
- 2a50 Mobile MEI Controller
- 2a51 Mobile MEI Controller
- 2a52 Mobile PT IDER Controller
- 2a53 Mobile AMT SOL Redirection
+ 2a40 Cantiga Memory Controller Hub
+ 2a41 Cantiga PCI Express Graphics Port
+ 2a42 Cantiga Integrated Graphics Controller
+ 2a43 Cantiga Integrated Graphics Controller
+ 2a44 Cantiga MEI Controller
+ 2a45 Cantiga MEI Controller
+ 2a46 Cantiga PT IDER Controller
+ 2a47 Cantiga AMT SOL Redirection
+ 2a50 Cantiga MEI Controller
+ 2a51 Cantiga MEI Controller
+ 2a52 Cantiga PT IDER Controller
+ 2a53 Cantiga AMT SOL Redirection
2c01 QuickPath Architecture System Address Decoder
- 2c10 QuickPath Interconnect Link 0
- 2c11 QuickPath Interconnect Physical 0
- 2c14 QuickPath Interconnect Link 1
+ 2c10 QPI Link 0
+ 2c11 QPI Physical 0
+ 2c14 QPI Link 1
+ 2c15 QPI Physical 1
2c18 QuickPath Memory Controller
2c19 QuickPath Memory Controller Target Address Decoder
2c1a QuickPath Memory Controller RAS Registers
@@ -13435,6 +14123,46 @@
2c32 QuickPath Memory Controller Channel 2 Rank Registers
2c33 QuickPath Memory Controller Channel 2 Thermal Control Registers
2c40 QuickPath Architecture Generic Non-Core Registers
+ 2e00 Eaglelake DRAM Controller
+ 2e01 Eaglelake PCI Express Root Port
+ 2e02 Eaglelake Integrated Graphics Controller
+ 2e03 Eaglelake Integrated Graphics Controller
+ 2e04 Eaglelake HECI Controller
+ 2e05 Eaglelake HECI Controller
+ 2e06 Eaglelake PT IDER Controller
+ 2e07 Eaglelake Serial KT Controller
+ 2e10 Eaglelake DRAM Controller
+ 2e11 Eaglelake PCI Express Root Port
+ 2e12 Eaglelake Integrated Graphics Controller
+ 2e13 Eaglelake Integrated Graphics Controller
+ 2e14 Eaglelake HECI Controller
+ 2e15 Eaglelake HECI Controller
+ 2e16 Eaglelake PT IDER Controller
+ 2e17 Eaglelake Serial KT Controller
+ 2e20 Eaglelake DRAM Controller
+ 2e21 Eaglelake PCI Express Root Port
+ 2e22 Eaglelake Integrated Graphics Controller
+ 2e23 Eaglelake HECI Controller
+ 2e24 Eaglelake HECI Controller
+ 2e25 Eaglelake HECI Controller
+ 2e26 Eaglelake PT IDER Controller
+ 2e27 Eaglelake Serial KT Controller
+ 2e30 Eaglelake DRAM Controller
+ 2e31 Eaglelake PCI Express Root Port
+ 2e32 Eaglelake Integrated Graphics Controller
+ 2e33 Eaglelake Integrated Graphics Controller
+ 2e34 Eaglelake HECI Controller
+ 2e35 Eaglelake HECI Controller
+ 2e36 Eaglelake PT IDER Controller
+ 2e37 Eaglelake Serial KT Controller
+ 2e40 Eaglelake DRAM Controller
+ 2e41 Eaglelake PCI Express Root Port
+ 2e42 Eaglelake Integrated Graphics Controller
+ 2e43 Eaglelake Integrated Graphics Controller
+ 2e44 Eaglelake HECI Controller
+ 2e45 Eaglelake HECI Controller
+ 2e46 Eaglelake PT IDER Controller
+ 2e47 Eaglelake Serial KT Controller
3200 GD31244 PCI-X SATA HBA
1775 c200 C2K onboard SATA host bus adapter
3313 IOP348 I/O Processor (SL8e) in IOC Mode SAS/SATA
@@ -13442,11 +14170,12 @@
3331 IOC340 I/O Controller (VV8e) SAS/SATA
3339 IOC340 I/O Controller (VV8x) SAS/SATA
3340 82855PM Processor to I/O Controller
- 1014 0529 Thinkpad T41
+ 1014 0529 Thinkpad T40 series
1025 005a TravelMate 290
103c 088c NC8000 laptop
103c 0890 NC6000 laptop
103c 08b0 tc1100 tablet
+ 144d c005 X10 Laptop
144d c00c P30/P35 notebook
3341 82855PM Processor to AGP Controller
144d c00c P30 notebook
@@ -13477,10 +14206,10 @@
3421 QuickPath Architecture I/O Hub PCI Express Root Port 0
3422 QuickPath Architecture I/O Hub GPIO and Scratch Pad Registers
3423 QuickPath Architecture I/O Hub Control Status and RAS Registers
- 3425 QuickPath Interconnect Physical and Link Layer Registers – Port 0
- 3426 QuickPath Interconnect Routing and Protocol Layer Registers – Port 0
- 3427 QuickPath Interconnect Physical and Link Layer Registers - Port 1
- 3428 QuickPath Interconnect Routing & Protocol Layer Register – Port 1
+ 3425 QuickPath Interconnect Physical and Link Layer Registers Port 0
+ 3426 QuickPath Interconnect Routing and Protocol Layer Registers Port 0
+ 3427 QuickPath Interconnect Physical and Link Layer Registers Port 1
+ 3428 QuickPath Interconnect Routing and Protocol Layer Registers Port 1
3429 DMA Engine
342a DMA Engine
342b DMA Engine
@@ -13514,12 +14243,13 @@
1014 0513 ThinkPad A/T/X Series
3578 82830 830 Chipset Host Bridge
3580 82852/82855 GM/GME/PM/GMV Processor to I/O Controller
- 1014 055c Thinkpad R50e model 1634
+ 1014 055c ThinkPad R50e
1028 0139 Latitude D400
1028 014f Latitude X300
1028 0163 Latitude D505
1028 018d Inspiron 700m/710m
1028 0196 Inspiron 5160
+ 114a 0582 PC8
1734 1055 Amilo M1420
1775 10d0 V5D Single Board Computer
1775 ce90 CE9
@@ -13530,11 +14260,12 @@
3581 82852/82855 GM/GME/PM/GMV Processor to AGP Controller
1734 1055 Amilo M1420
3582 82852/855GM Integrated Graphics Device
- 1014 0562 Thinkpad R50e model 1634
+ 1014 0562 ThinkPad R50e
1028 0139 Latitude D400
1028 014f Latitude X300
1028 0163 Latitude D505
1028 018d Inspiron 700m/710m
+ 114a 0582 PC8 integrated graphics
1775 10d0 V5D Single Board Computer VGA
1775 ce90 CE9
4c53 10b0 CL9 mainboard
@@ -13542,24 +14273,26 @@
e4bf 0cc9 CC9-SAMBA
e4bf 0cd2 CD2-BEBOP
3584 82852/82855 GM/GME/PM/GMV Processor to I/O Controller
- 1014 055d Thinkpad R50e model 1634
+ 1014 055d ThinkPad R50e
1028 0139 Latitude D400
1028 014f Latitude X300
1028 0163 Latitude D505
1028 018d Inspiron 700m/710m
1028 0196 Inspiron 5160
+ 114a 0582 PC8
1734 1055 Amilo M1420
1775 10d0 V5D Single Board Computer
1775 ce90 CE9
4c53 10b0 CL9 mainboard
4c53 10e0 PSL09 PrPMC
3585 82852/82855 GM/GME/PM/GMV Processor to I/O Controller
- 1014 055e Thinkpad R50e model 1634
+ 1014 055e ThinkPad R50e
1028 0139 Latitude D400
1028 014f Latitude X300
1028 0163 Latitude D505
1028 018d Inspiron 700m/710m
1028 0196 Inspiron 5160
+ 114a 0582 PC8
1734 1055 Amilo M1420
1775 10d0 V5D Single Board Computer
1775 ce90 CE9
@@ -13567,8 +14300,10 @@
4c53 10e0 PSL09 PrPMC
3590 E7520 Memory Controller Hub
1014 02dd eServer xSeries server mainboard
+ 1028 016c PowerEdge 1850
+ 1028 016d PowerEdge 2850
1028 019a PowerEdge SC1425
- 1734 103e Primergy RX300 S2
+ 1734 103e PRIMERGY RX/TX S2 series
1775 1100 CR11/VR11 Single Board Computer
4c53 10d0 Telum ASLP10 Processor AMC
3591 E7525/E7520 Error Reporting Registers
@@ -13614,43 +14349,105 @@
360e 7300 Chipset Debug and Miscellaneous Registers
360f 7300 Chipset FBD Branch 0 Registers
3610 7300 Chipset FBD Branch 1 Registers
- 4000 Memory Controller Hub
- 4001 Memory Controller Hub
- 4003 Memory Controller Hub
- 4021 PCI Express Port 1
- 4022 PCI Express Port 2
- 4023 PCI Express Port 3
- 4024 PCI Express Port 4
- 4025 PCI Express Port 5
- 4026 PCI Express Port 6
- 4027 PCI Express Port 7
- 4028 PCI Express Port 8
- 4029 PCI Express Port 9
- 402d IBIST Registers
- 402e IBIST Registers
- 402f DMA/DCA Engine
- 4030 FSB Registers
- 4031 CE/SF Registers
- 4032 I/OxAPIC
- 4035 FBD Registers
- 4036 FBD Registers
+ 3a00 ICH10 4 port SATA IDE Controller
+ 3a02 ICH10 6 port SATA AHCI Controller
+ 3a05 ICH10 SATA RAID Controller
+ 3a06 ICH10 2 port SATA IDE Controller
+ 3a14 ICH10 LPC Interface Controller
+ 3a16 82801JIR (ICH10R) LPC Interface Controller
+ 3a18 82801JIB (ICH10) LPC Interface Controller
+ 3a1a ICH10 LPC Interface Controller
+ 3a20 82801JI (ICH10 Family) 4 port SATA IDE Controller
+ 3a22 82801JI (ICH10 Family) SATA AHCI Controller
+ 3a25 82801JIR (ICH10R) SATA RAID Controller
+ 3a26 82801JI (ICH10 Family) 2 port SATA IDE Controller
+ 3a30 82801JI (ICH10 Family) SMBus Controller
+ 3a32 82801JI (ICH10 Family) Thermal Subsystem
+ 3a34 82801JI (ICH10 Family) USB UHCI Controller #1
+ 3a35 82801JI (ICH10 Family) USB UHCI Controller #2
+ 3a36 82801JI (ICH10 Family) USB UHCI Controller #3
+ 3a37 82801JI (ICH10 Family) USB UHCI Controller #4
+ 3a38 82801JI (ICH10 Family) USB UHCI Controller #5
+ 3a39 82801JI (ICH10 Family) USB UHCI Controller #6
+ 3a3a 82801JI (ICH10 Family) USB2 EHCI Controller #1
+ 3a3c 82801JI (ICH10 Family) USB2 EHCI Controller #2
+ 3a3e 82801JI (ICH10 Family) HD Audio Controller
+ 3a40 82801JI (ICH10 Family) PCI Express Port 1
+ 3a42 82801JI (ICH10 Family) PCI Express Port 2
+ 3a44 82801JI (ICH10 Family) PCI Express Port 3
+ 3a46 82801JI (ICH10 Family) PCI Express Port 4
+ 3a48 82801JI (ICH10 Family) PCI Express Port 5
+ 3a4a 82801JI (ICH10 Family) PCI Express Port 6
+ 3a4c 82801JI (ICH10 Family) Gigabit Ethernet Controller
+ 3a51 ICH10 VECI Controller
+ 3a55 ICH10 Virtual SATA Controller
+ 3a60 ICH10 SMBus Controller
+ 3a62 ICH10 Thermal Subsystem
+ 3a64 ICH10 USB UHCI Controller #1
+ 3a65 ICH10 USB UHCI Controller #2
+ 3a66 ICH10 USB UHCI Controller #3
+ 3a67 ICH10 USB UHCI Controller #4
+ 3a68 ICH10 USB UHCI Controller #5
+ 3a69 ICH10 USB UHCI Controller #6
+ 3a6a ICH10 USB2 EHCI Controller #1
+ 3a6c ICH10 USB2 EHCI Controller #2
+ 3a6e ICH10 HD Audio Controller
+ 3a70 ICH10 PCI Express Port 1
+ 3a72 ICH10 PCI Express Port 2
+ 3a74 ICH10 PCI Express Port 3
+ 3a76 ICH10 PCI Express Port 4
+ 3a78 ICH10 PCI Express Port 5
+ 3a7a ICH10 PCI Express Port 6
+ 3a7c ICH10 Gigabit Ethernet Controller
+ 4000 5400 Chipset Memory Controller Hub
+ 4001 5400 Chipset Memory Controller Hub
+ 4003 5400 Chipset Memory Controller Hub
+ 4021 5400 Chipset PCI Express Port 1
+ 4022 5400 Chipset PCI Express Port 2
+ 4023 5400 Chipset PCI Express Port 3
+ 4024 5400 Chipset PCI Express Port 4
+ 4025 5400 Chipset PCI Express Port 5
+ 4026 5400 Chipset PCI Express Port 6
+ 4027 5400 Chipset PCI Express Port 7
+ 4028 5400 Chipset PCI Express Port 8
+ 4029 5400 Chipset PCI Express Port 9
+ 402d 5400 Chipset IBIST Registers
+ 402e 5400 Chipset IBIST Registers
+ 402f 5400 Chipset QuickData Technology Device
+ 4030 5400 Chipset FSB Registers
+ 4031 5400 Chipset CE/SF Registers
+ 4032 5400 Chipset IOxAPIC
+ 4035 5400 Chipset FBD Registers
+ 4036 5400 Chipset FBD Registers
4220 PRO/Wireless 2200BG Network Connection
-# (rev 05)
- 103c 12f6 HP Compaq nw8240 Mobile Workstation
+ 103c 0934 Compaq nw8240/nx8220
+ 103c 12f6 Compaq nw8240/nx8220
+ 8086 2721 Dell B130 laptop integrated WLAN
+ 8086 2722 Dell Latitude D600
8086 2731 Samsung P35 integrated WLAN
4222 PRO/Wireless 3945ABG Network Connection
+ 103c 135c Compaq 6710b
+ 103c 30c0 Compaq 6710b
+ 8086 1000 PRO/Wireless 3945ABG Network Connection
+ 8086 1001 PRO/Wireless 3945ABG Network Connection
8086 1005 PRO/Wireless 3945BG Network Connection
8086 1034 PRO/Wireless 3945BG Network Connection
8086 1044 PRO/Wireless 3945BG Network Connection
+ 8086 1c00 PRO/Wireless 3945ABG Network Connection
4223 PRO/Wireless 2915ABG Network Connection
+ 1000 8086 mPCI 3B Americas/Europe ZZA
+ 1001 8086 mPCI 3B Europe ZZE
+ 1002 8086 mPCI 3B Japan ZZJ
+ 1003 8086 mPCI 3B High-Band ZZH
1351 103c Compaq NC6220
4224 PRO/Wireless 2915ABG Network Connection
4227 PRO/Wireless 3945ABG Network Connection
- 8086 1011 Thinkpad X60s, R60e model 0657
+ 8086 1011 ThinkPad R60e/X60s
8086 1014 PRO/Wireless 3945BG Network Connection
4229 PRO/Wireless 4965 AG or AGN Network Connection
4230 PRO/Wireless 4965 AG or AGN Network Connection
- 8086 1110 Lenovo Thinkpad T61
+ 8086 1110 Lenovo ThinkPad T51
+ 8086 1111 Lenovo ThinkPad T61
444e Turbo Memory Controller
5001 LE80578
5002 LE80578 Graphics Processor Unit
@@ -13660,59 +14457,69 @@
500f LE80578 General Purpose IO
5010 LE80578 I2C Controller
5012 LE80578 Serial Peripheral Interface Bus
- 5020 Memory Controller Hub
- 5021 DRAM Error Reporting Registers
- 5023 EDMA Controller
- 5024 PCI Express Port PEA0
- 5025 PCI Express Port PEA1
- 5028 S-ATA IDE
- 5029 S-ATA AHCI
- 502a S-ATA RAID0/1
- 502b S-ATA Reserved
- 5031 LPC Bus
- 5032 SMBus Controller
- 5033 USB 1.1 Controller
- 5035 USB 2.0 Controller
- 5037 PCI-PCI Bridge (transparent mode)
- 5039 Controller Area Network (CAN) interface #1
- 503a Controller Area Network (CAN) interface #2
- 503b Synchronous Serial Port (SPP)
- 503c IEEE 1588 Hardware Assist
- 503d Local Expansion Bus
- 503e Global Control Unit (GCU)
- 5040 Gigabit Ethernet MAC
- 5041 Gigabit Ethernet MAC
- 5042 Gigabit Ethernet MAC
- 5043 Gigabit Ethernet MAC
- 5044 Gigabit Ethernet MAC
- 5045 Gigabit Ethernet MAC
- 5046 Gigabit Ethernet MAC
- 5047 Gigabit Ethernet MAC
- 5048 Gigabit Ethernet MAC
- 5049 Gigabit Ethernet MAC
- 504a Gigabit Ethernet MAC
- 504b Gigabit Ethernet MAC
+ 5020 Tolapai Memory Controller Hub
+ 5021 Tolapai DRAM Error Reporting Registers
+ 5023 Tolapai EDMA Controller
+ 5024 Tolapai PCI Express Port PEA0
+ 5025 Tolapai PCI Express Port PEA1
+ 5028 Tolapai S-ATA IDE
+ 5029 Tolapai S-ATA AHCI
+ 502a Tolapai S-ATA RAID0/1
+ 502b Tolapai S-ATA Reserved
+ 502c Tolapai System Device
+ 502d Tolapai System Device
+ 502e Tolapai System Device
+ 502f Tolapai System Device
+ 5030 Tolapai System Device
+ 5031 Tolapai LPC Bus
+ 5032 Tolapai SMBus Controller
+ 5033 Tolapai USB 1.1 Controller
+ 5035 Tolapai USB 2.0 Controller
+ 5037 Tolapai PCI-PCI Bridge (transparent mode)
+ 5039 Tolapai Controller Area Network (CAN) interface #1
+ 503a Tolapai Controller Area Network (CAN) interface #2
+ 503b Tolapai Synchronous Serial Port (SPP)
+ 503c Tolapai IEEE 1588 Hardware Assist
+ 503d Tolapai Local Expansion Bus
+ 503e Tolapai Global Control Unit (GCU)
+ 503f Tolapai System Device
+ 5040 Tolapai Gigabit Ethernet MAC
+ 5041 Tolapai Gigabit Ethernet MAC
+ 5042 Tolapai Gigabit Ethernet MAC
+ 5043 Tolapai Gigabit Ethernet MAC
+ 5044 Tolapai Gigabit Ethernet MAC
+ 5045 Tolapai Gigabit Ethernet MAC
+ 5046 Tolapai Gigabit Ethernet MAC
+ 5047 Tolapai Gigabit Ethernet MAC
+ 5048 Tolapai Gigabit Ethernet MAC
+ 5049 Tolapai Gigabit Ethernet MAC
+ 504a Tolapai Gigabit Ethernet MAC
+ 504b Tolapai Gigabit Ethernet MAC
+ 504c Tolapai TDM
5200 EtherExpress PRO/100 Intelligent Server
5201 EtherExpress PRO/100 Intelligent Server
8086 0001 EtherExpress PRO/100 Server Ethernet Adapter
530d 80310 (IOP) IO Processor
- 65c0 Memory Controller Hub
- 65e2 PCI Express x4 Port 2
- 65e3 PCI Express x4 Port 3
- 65e4 PCI Express x4 Port 4
- 65e5 PCI Express x4 Port 5
- 65e6 PCI Express x4 Port 6
- 65e7 PCI Express x4 Port 7
- 65f0 FSB Registers
- 65f1 Reserved Registers
- 65f3 Reserved Registers
- 65f5 DDR Channel 0 Registers
- 65f6 DDR Channel 1 Registers
- 65f7 PCI Express x8 Port 2-3
- 65f8 PCI Express x8 Port 4-5
- 65f9 PCI Express x8 Port 6-7
- 65fa PCI Express x16 Port 4-7
- 65ff DMA Engine
+ 65c0 5100 Chipset Memory Controller Hub
+ 65e2 5100 Chipset PCI Express x4 Port 2
+ 65e3 5100 Chipset PCI Express x4 Port 3
+ 65e4 5100 Chipset PCI Express x4 Port 4
+ 65e5 5100 Chipset PCI Express x4 Port 5
+ 65e6 5100 Chipset PCI Express x4 Port 6
+ 65e7 5100 Chipset PCI Express x4 Port 7
+ 65f0 5100 Chipset FSB Registers
+ 1028 020f PowerEdge R300
+ 1028 0210 PowerEdge T300
+ 65f1 5100 Chipset Reserved Registers
+ 1028 0210 PowerEdge T300
+ 65f3 5100 Chipset Reserved Registers
+ 65f5 5100 Chipset DDR Channel 0 Registers
+ 65f6 5100 Chipset DDR Channel 1 Registers
+ 65f7 5100 Chipset PCI Express x8 Port 2-3
+ 65f8 5100 Chipset PCI Express x8 Port 4-5
+ 65f9 5100 Chipset PCI Express x8 Port 6-7
+ 65fa 5100 Chipset PCI Express x16 Port 4-7
+ 65ff 5100 Chipset DMA Engine
7000 82371SB PIIX3 ISA [Natoma/Triton II]
7010 82371SB PIIX3 IDE [Natoma/Triton II]
7020 82371SB PIIX3 USB [Natoma/Triton II]
@@ -13760,6 +14567,7 @@
7192 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled)
0e11 0460 Armada 1700 Laptop System Chipset
4c53 1000 CC7/CR7/CP7/VC7/VP7/VR7 mainboard
+ 8086 7190 Dell PowerEdge 350
7194 82440MX Host Bridge
1033 0000 Versa Note Vxi
4c53 10a0 CA3/CR3 mainboard
@@ -13792,6 +14600,22 @@
8086 0000 Terminator 2x/i
8086 0100 Intel740 Graphics Accelerator
8002 Trusted Execution Technology Registers
+ 8003 Trusted Execution Technology Registers
+ 8100 System Controller Hub (SCH Poulsbo)
+ 8108 System Controller Hub (SCH Poulsbo) Graphics Controller
+ 8110 System Controller Hub (SCH Poulsbo) PCI Express Port 1
+ 8112 System Controller Hub (SCH Poulsbo) PCI Express Port 2
+ 8114 System Controller Hub (SCH Poulsbo) USB UHCI #1
+ 8115 System Controller Hub (SCH Poulsbo) USB UHCI #2
+ 8116 System Controller Hub (SCH Poulsbo) USB UHCI #3
+ 8117 System Controller Hub (SCH Poulsbo) USB EHCI #1
+ 8118 System Controller Hub (SCH Poulsbo) USB Client Controller
+ 8119 System Controller Hub (SCH Poulsbo) LPC Bridge
+ 811a System Controller Hub (SCH Poulsbo) IDE Controller
+ 811b System Controller Hub (SCH Poulsbo) HD Audio Controller
+ 811c System Controller Hub (SCH Poulsbo) SDIO Controller #1
+ 811d System Controller Hub (SCH Poulsbo) SDIO Controller #2
+ 811e System Controller Hub (SCH Poulsbo) SDIO Controller #3
84c4 450KX/GX [Orion] - 82454KX/GX PCI bridge
84c5 450KX/GX [Orion] - 82453KX/GX Memory controller
84ca 450NX - 82451NX Memory & I/O Controller
@@ -13817,6 +14641,7 @@
96a1 Integrated RAID
a620 6400/6402 Advanced Memory Buffer (AMB)
b152 21152 PCI-to-PCI Bridge
+ 8086 b152 21152 PCI-to-PCI Bridge
# observed, and documented in Intel revision note; new mask of 1011:0026
b154 21154 PCI-to-PCI Bridge
b555 21555 Non transparent PCI-to-PCI Bridge
diff --git a/src/hwdata/usb.ids b/src/hwdata/usb.ids
index e2a756293..fe50d6e3c 100644
--- a/src/hwdata/usb.ids
+++ b/src/hwdata/usb.ids
@@ -1,13 +1,13 @@
#
# List of USB ID's
#
-# Maintained by Stephen J. Gowdy
+# Maintained by Stephen J. Gowdy
# If you have any new entries, send them to the maintainer.
# Send entries as patches (diff -u old new).
# The latest version can be obtained from
# http://www.linux-usb.org/usb.ids
#
-# $Id: usb.ids,v 1.286 2007/10/27 07:15:22 gowdy Exp $
+# $Id: usb.ids,v 1.366 2008/07/06 20:19:04 gowdy Exp $
#
# Vendors, devices and interfaces. Please keep sorted.
@@ -21,6 +21,8 @@
0002 Ingram
0003 Club Mac
0004 Nebraska Furniture Mart
+0145 Unknown
+ 0112 Card Reader
0204 Chipsbank Microelectronics Co., Ltd
6025 CBM2080 Flash drive controller
6026 CBM1180 Flash drive controller
@@ -31,7 +33,9 @@
03e8 EndPoints, Inc.
0004 SE401 WebCam
0008 101 Ethernet [klsi]
+ 0015 USB ATAPI Enclosure
2123 SiPix StyleCam Deluxe
+ 8004 Aox 99001
03e9 Thesys Microelectronics
03ea Data Broadcasting Corp.
03eb Atmel Corp.
@@ -44,6 +48,7 @@
2022 at90usbkey sample firmware (composite device)
2103 JTAG ICE mkII
2104 AVR ISP mkII
+ 2106 STK600 development board
2107 AVR Dragon
2ffb at90usb AVR DFU bootloader
2ffd at89c5130/c5131 DFU bootloader
@@ -54,18 +59,31 @@
5603 Cisco 7920 WiFi IP Phone
6124 at91sam SAMBA bootloader
7603 at76c503a D-Link DWL-120 802.11b Adapter
+ 7604 FastVNET
7605 at76c503a 802.11b Adapter
7606 at76c505 802.11b Adapter
7611 at76c510 rfmd2948 802.11b Access Point
+ 7613 WL-1130 USB
+ 7614 AT76c505a Wireless Adapter
03ec Iwatsu America, Inc.
03ed Mitel Corp.
03ee Mitsumi
0000 CD-R/RW Drive
+ 2501 eHome Infrared Receiver
+ 2502 eHome Infrared Receiver
+ 5609 Japanese Keyboard
641f WIF-0402C Bluetooth Adapter
+ 6438 Bluetooth Device
6440 WML-C52APR Bluetooth Adapter
6901 SmartDisk FDD
+ 6902 Floppy Disk Drive
+ 7500 CD-R/RW
+ ffff Dongle with BlueCore in DFU mode
03f0 Hewlett-Packard
0004 DeskJet 895c
+ 0011 OfficeJet G55
+ 0012 DeskJet 1125C Printer Port
+ 0024 KU-0316 Keyboard
0101 ScanJet 4100c
0102 PhotoSmart S20
0104 DeskJet 880c/970c
@@ -73,140 +91,469 @@
0107 CD-Writer Plus
010c Multimedia Keyboard Hub
0111 G55xi Printer/Scanner/Copier
+ 0117 LaserJet 3200
011c hn210w 802.11b Adapter
+ 011d Integrated Bluetooth Module
0121 HP49g+ Calculator
+ 0122 HID Internet Keyboard
0201 ScanJet 6200c
0202 PhotoSmart S20
0204 DeskJet 815c
0205 ScanJet 3300c
0207 CD-Writer Plus 8200e
020c Multimedia Keyboard
+ 0211 OfficeJet G85
+ 0212 DeskJet 1220C
+ 0217 LaserJet 2200
+ 0218 APOLLO P2500/2600
0304 DeskJet 810c/812c
0305 ScanJet 4300c
+ 0307 CD-Writer+ CD-4e
0311 OfficeJet G85xi
+ 0312 Color Inkjet CP1700
+ 0314 designjet 30/130 series
0317 LaserJet 1200
0401 ScanJet 5200c
0404 DeskJet 830c/832c
0405 ScanJet 3400cse
+ 0411 OfficeJet G95
+ 0412 Printing Support
0417 LaserJet 1200 series
0504 DeskJet 885c
0505 ScanJet 2100c
+ 0507 DVD+RW
050c 5219 Wireless Keyboard
+ 0511 OfficeJet K60
+ 0512 DeckJet 450
0517 LaserJet 1000
+ 051d integrated module with Bluetooth wireless technology.
0601 ScanJet 6300c
0604 DeskJet 840c
0605 ScanJet 2200c
+ 0611 OfficeJet K60xi
+ 0612 business inkjet 3000
+ 0624 Bluetooth Dongle
0701 ScanJet 5300c/5370c
0704 DeskJet 825c
0705 ScanJet 4400c
+ 0711 OfficeJet K80
0712 DeskJet 1180c
+ 0714 Printing Support
0801 ScanJet 7400c
0804 DeskJet 816c
+ 0805 HP4470C
+ 0811 OfficeJet K80xi
+ 0817 LaserJet 3300
0901 ScanJet 2300c
0904 DeskJet 845c
+ 0912 Printing Support
+ 0917 LaserJet 3330
+ 0924 Modular Smartcard Keyboard
+ 0a01 ScanJet 2400c
+ 0a17 color LaserJet 3700
+ 0b01 Scanjet 82x0C
+ 0b0c Wireless Keyboard and Optical Mouse
+ 0b17 Laserjet 2300d
+ 0c17 LaserJet 1010
+ 0c24 Bluetooth Dongle
+ 0d12 Officejet 9100 series
+ 0d17 LaserJet 1012
+ 0e17 LaserJet 1015
+ 0f11 OfficeJet V40
+ 0f12 Printing Support
+ 0f17 LaserJet 1150
+ 1001 Photo Scanner 1000
+ 1002 photosmart 140 series
1004 DeskJet 970c/970cse
1005 ScanJet 5400c
- 1016 Jornada 548 / iPAQ HW6515 Pocket PC
+ 1011 OfficeJet V40xi
+ 1016 Jornada 548 / iPAQ HW6515 Pocket PC
+ 1017 LaserJet 1300
+ 1024 Smart Card Keyboard
+ 1102 photosmart 240 series
1104 DeskJet 959c
1105 ScanJet 5470c
+ 1111 officejet v60
1116 Jornada 568 Pocket PC
- 1151 750xi Printer/Scanner/Copier
+ 1117 LaserJet 1300n
+ 1151 PSC-750xi Printer/Scanner/Copier
+ 1202 Photosmart 320 Series
1204 DeskJet 930c
+ 1205 ScanJet 4500C/5550C
+ 1211 officejet v60xi
+ 1217 LaserJet 2300L
+ 1302 Photosmart 370 Series
1305 ScanJet 4570c
+ 1311 OfficeJet V30
1312 Deskjet 460
1317 LaserJet 1005
1405 Scanjet 3670
+ 1411 PSC 750
1424 f2105 Monitor Hub
+ 1502 Photosmart 420 Series
1504 DeskJet 920c
+ 1511 PSC 750xi
+ 1512 Printing Support
+ 1517 color LaserJet 3500
+ 1524 Smart Card Keyboard - KR
+ 1602 Photosmart 330 Series
1604 DeskJet 940c
+ 1605 ScanJet 5530C Photosmart
+ 1611 psc 780
1617 LaserJet 3015
+ 161d Wireless Rechargeable Optical Mouse (HID)
+ 1624 Smart Card Keyboard - JP
+ 1702 Photosmart 380 Series
+ 1704 deskjet 948C
+ 1705 ScanJet 5590
+ 1711 psc 780xi
+ 1712 Printing Support
+ 1717 LaserJet 3020
+ 171d Wireless (Bluetooth + WLAN) Interface [Integrated Module]
+ 1801 Inkjet P-2000U
+ 1802 Photosmart 470 Series
+ 1804 deskjet 916C
+ 1805 ScanJet 7650
+ 1811 PSC 720
+ 1817 LaserJet 3030
+ 181d integrated module with Bluetooth 2.0 wireless technology.
+ 1902 Photosmart A430 series
1904 DeskJet 3820
+ 1911 OfficeJet V45
+ 1917 LaserJet 3380
+ 1a02 Photosmart A510 series
+ 1a11 officejet 5100 series
+ 1a17 color LaserJet 4650
+ 1b02 Photosmart A610 series
+ 1b04 deskjet 3810
+ 1b05 ScanJet 4850C/4890C
+ 1c02 Photosmart A710 series
1c17 Color LaserJet 2550l
+ 1d02 Photosmart A310 series
+ 1d17 LaserJet 1320
+ 1e02 Photosmart A320 Printer series
1e11 PSC-950
+ 1e17 LaserJet 1160 series
+ 1f02 Photosmart A440 Printer series
+ 1f11 PSC 920
+ 1f12 Officejet Pro K5300
+ 1f17 color LaserJet 5550
+ 2001 Floppy
2002 Hub
2004 DeskJet 640c
2005 ScanJet 3570c
+ 2012 Officejet Pro K5400
+ 2102 photosmart 7345
2104 DeskJet 630c
+ 2112 Officejet Pro L7500
+ 2202 photosmart 7600 series
2205 ScanJet 3500c
+ 2212 Officejet Pro L7600
+ 2217 color LaserJet 9500 MFP
+ 2302 photosmart 7600 series
2304 DeskJet 656c
2305 ScanJet 3970c
+ 2311 officejet d series
+ 2312 Officejet Pro L7700
+ 2317 LaserJet 4350
+ 2402 photosmart 7700 series
+ 2405 ScanJet 4070 Photosmart
+ 2417 LaserJet 4250
+ 2424 LP1965 19" Monitor Hub
+ 2502 photosmart 7700 series
+ 2505 ScanJet 3770
+ 2512 Officejet Pro L7300
+ 2517 LaserJet 2410
+ 2524 LP3065 30" Monitor Hub
+ 2602 Photosmart A520 series
+ 2605 ScanJet 3800c
+ 2611 officejet 7100 series
+ 2617 Color LaserJet 2820 Series
+ 2624 Pole Display (HP522 2 x 20 Line Display)
+ 2702 Photosmart A620 series
+ 2704 Deskjet 915
+ 2717 Color LaserJet 2830
2811 PSC-2100
+ 2817 Color LaserJet 2840
+ 2902 Photosmart A820 series
+ 2911 PSC 2200
+ 2917 LaserJet 2420
+ 2a11 PSC 2150 series
+ 2a17 LaserJet 2430
+ 2b11 PSC 2170 series
+ 2b17 LaserJet 1020
+ 2c17 Printing Support
+ 2c24 Logitech M-UAL-96 Mouse
2d11 OfficeJet 6110
+ 2d17 Printing Support
+ 2e11 PSC 1000
+ 2e17 Printing Support
+ 2f11 PSC 1200
+ 2f17 EWS 2605dn
+ 3002 photosmart P1000
+ 3004 deskjet 980c
+ 3005 ScanJet 4670v
+ 3011 PSC 1100 series
+ 3017 Printing Support
3102 PhotoSmart P1100 Printer w/ Card Reader
3104 DeskJet 960c
+ 3111 officejet 4100 series
+ 3117 EWS 2605dtn
+ 3202 photosmart 1215
+ 3211 officejet 4105 series
+ 3217 LaserJet 3050
+ 3302 photosmart 1218
3304 DeskJet 990c
+ 3317 LaserJet 3052
+ 3402 photosmart 1115
3404 DeskJet 6122
+ 3417 LaserJet 3055
+ 3502 photosmart 230
3504 DeskJet 6127c
+ 3511 PSC 2300
+ 3517 LaserJet 3390
+ 3602 photosmart 1315
+ 3611 PSC 2410 Photosmart
+ 3617 EWS 2605
+ 3711 PSC 2500
+ 3717 EWS UPD
+ 3802 photosmart 100
3817 LaserJet P2015 Series
+ 3902 photosmart 130
+ 3a02 photosmart 7150
+ 3a11 OfficeJet 5500 series
+ 3a17 Printing Support
+ 3b02 photosmart 7150~
+ 3b11 PSC 1300 series
+ 3b17 LaserJet M1005 MFP
3c02 PhotoSmart 7350
+ 3c11 PSC 1358
+ 3c17 EWS UPD
+ 3d02 photosmart 7350~
3d11 OfficeJet 4215
+ 3e02 photosmart 7550
+ 3f02 photosmart 7550~
3f11 PSC-1315/PSC-1317
4002 PhotoSmart 720 / PhotoSmart 935 (storage)
+ 4004 cp1160
4102 PhotoSmart 618
+ 4105 ScanJet 4370
+ 4111 Officejet 7200 series
+ 4117 Printing Support
4202 PhotoSmart 812
+ 4205 Scanjet G3010
+ 4211 Officejet 7300 series
+ 4217 EWS CM1015
4302 PhotoSmart 850 (ptp)
+ 4311 Officejet 7400 series
+ 4317 Color LaserJet CM1017
4402 PhotoSmart 935 (ptp)
+ 4417 EWS UPD
4502 PhotoSmart 945 (PTP mode)
+ 4505 ScanJet G4010
+ 4511 Photosmart 2600
+ 4517 EWS UPD
+ 4605 ScanJet G4050
+ 4611 Photosmart 2700
+ 4811 PSC 1600
+ 4911 PSC 2350
+ 4b11 Officejet 6200
+ 4c11 PSC 1500 series
+ 4c17 EWS UPD
+ 4d11 PSC 1400
+ 4d17 EWS UPD
+ 4e11 Photosmart 2570 series
+ 4f11 Officejet 5600 (USBHUB)
5004 DeskJet 995c
+ 5011 Photosmart 3100 Series
+ 5017 EWS UPD
+ 5111 Photosmart 3200 Series
+ 5211 Photosmart 3300 Series
+ 5311 Officejet 6300
+ 5411 Officejet 4300
+ 5511 Deskjet F300 series
5611 PhotoSmart C3180
+ 5617 LaserJet M1120 MFP
+ 5711 Photosmart C4100 series
+ 5717 LaserJet M1120n MFP
+ 5811 Photosmart C5100 series
+ 5817 LaserJet M1319f MFP
5911 PhotoSmart C6180
+ 5a11 Photosmart C7100 series
+ 5b11 Officejet J2100 Series
+ 5c11 Photosmart C4200 Printer series
+ 5d11 Photosmart C5200 series
+ 5e11 Photosmart D7400 series
6004 DeskJet 5550
+ 6102 Hewlett Packard Digital Camera
6104 DeskJet 5650c
+ 6117 color LaserJet 3550
6202 PhotoSmart 215
6204 DeskJet 5150c
+ 6217 Color LaserJet 4700
6302 PhotoSmart 318/612
+ 6317 Color LaserJet 4730mfp
6402 PhotoSmart 715 (ptp)
+ 6411 Photosmart C8100 series
+ 6417 LaserJet 5200
6502 PhotoSmart 120 (ptp)
+ 6511 Photosmart C7200 series
6602 PhotoSmart 320
+ 6611 Photosmart C4380 series
+ 6617 LaserJet 5200L
6702 PhotoSmart 720 (ptp)
+ 6717 Color LaserJet 3000
6802 PhotoSmart 620 (ptp)
+ 6811 Photosmart D5300 series
+ 6817 Color LaserJet 3800
+ 6911 Photosmart D7200 series
+ 6917 Color LaserJet 3600
6a02 PhotoSmart 735 (ptp)
+ 6a11 Photosmart C6200 series
+ 6a17 LaserJet 4240
6b02 PhotoSmart R707 (PTP mode)
+ 6c17 Color LaserJet 4610
+ 6f17 Color LaserJet CP6015 series
7004 DeskJet 3320c
7102 PhotoSmart 635 (PTP mode)
7104 DeskJet 3420c
+ 7117 CM8060 Color MFP with Edgeline Technology
7202 PhotoSmart 43x (ptp)
7204 DeskJet 36xx
+ 7217 LaserJet M5035 MFP
7302 PhotoSmart M307 (PTP mode)
7304 DeskJet 35xx
+ 7317 LaserJet P3005
+ 7404 Printing Support
+ 7417 LaserJet M4345 MFP
+ 7504 Printing Support
+ 7517 LaserJet M3035 MFP
7604 Deskjet 3940
+ 7617 LaserJet P3004
7702 PhotoSmart R817 (PTP mode)
+ 7704 Deskjet D4100
+ 7717 CM8050 Color MFP with Edgeline Technology
+ 7804 Deskjet D1360
+ 7817 Color LaserJet CP3505
+ 7917 LaserJet M5025 MFP
7a02 PhotoSmart M415 (PTP mode)
+ 7a17 LaserJet M3027 MFP
7b02 PhotoSmart M23 (PTP mode)
+ 7b17 Color LaserJet CP4005
+ 7c17 Color LaserJet CM6040 Series
+ 7d04 Deskjet F2100 Printer series
+ 7d17 Color LaserJet CM4730 MFP
+ 7e04 Deskjet F4100 Printer series
+ 8017 LaserJet P4515
+ 8104 Printing Support
+ 8117 LaserJet P4015
+ 811c Ethernet HN210E
+ 8204 Printing Support
+ 8217 LaserJet P4014
+ 8317 LaserJet M9050 MFP
+ 8404 Deskjet 6800 Series
+ 8417 LaserJet M9040 MFP
+ 8504 Deskjet 6600 Series
8604 Deskjet 5440
+ 8704 deskjet 5900 series
+ 8804 Deskjet 6980 Series
+ 8904 Deskjet 6940 Series
+ 9002 Photosmart M437
+ 9102 Photosmart M537
+ 9302 Photosmart R930 series
+ 9402 Photosmart R837
+ 9502 Photosmart R840 series
+ 9602 Photosmart M730 series
+ 9702 Photosmart R740 series
+ 9802 Photosmart Mz60 series
+ 9902 Photosmart M630 series
+ 9a02 Photosmart E330 series
+ 9b02 Photosmart M540 series
+ 9c02 Photosmart M440 series
a004 DeskJet 5850c
+ b002 photosmart 7200 series
+ b102 photosmart 7200 series
+ b202 photosmart 7600 series
+ b302 photosmart 7600 series
+ b402 photosmart 7700 series
+ b502 photosmart 7700 series
+ b602 photosmart 7900 series
+ b702 photosmart 7900 series
+ b802 Photosmart 7400 Series
+ b902 Photosmart 7800 Series
+ ba02 Photosmart 8100 Series
+ bb02 Photosmart 8400 Series
+ bc02 Photosmart 8700 Series
+ bd02 Photosmart Pro B9100 series
bef4 NEC Picty760
+ c002 Photosmart 7800 Series
+ c102 Photosmart 8000 Series
+ c202 Photosmart 8200 Series
+ c302 Deskjet D2300
+ c402 Photosmart D5100 series
+ c502 Photosmart D6100 series
+ c602 Photosmart D7100 series
+ c702 Photosmart D7300 series
+ c802 Photosmart D5060 Printer
+ d104 Bluetooth Dongle
efbe NEC Picty900
f0be NEC Picty920
f1be NEC Picty800
03f1 Genoa Technology
03f2 Oak Technology, Inc.
03f3 Adaptec, Inc.
+ 0020 AWN-8020 WLAN
+ 0080 AVC-1100 Audio Capture
+ 0083 AVC-2200 Device
+ 0087 AVC-2210 Loader
+ 0088 AVC-2210 Device
+ 008b AVC-2310 Loader
+ 008c AVC-2310 Device
+ 0094 eHome Infrared Receiver
+ 009b AVC-1410 GameBridge TV NTSC
+ 2000 USBXchange
+ 2001 USBXchange Adapter
+ 2002 USB2-Xchange
+ 2003 USB2-Xchange Adapter
+ adcc Composite Device Support
03f4 Diebold, Inc.
03f5 Siemens Electromechanical
03f8 Epson Imaging Technology Center
03f9 KeyTronic Corp.
+ 0100 Keyboard
+ 0101 Keyboard
+ 0102 Keyboard Mouse
03fb OPTi, Inc.
03fc Elitegroup Computer Systems
03fd Xilinx, Inc.
03fe Farallon Comunications
0400 National Semiconductor Corp.
0807 Bluetooth Dongle
+ 080a Bluetooth Device
1000 Mustek BearPaw 1200 Scanner
1001 Mustek BearPaw 2400 Scanner
+ 1237 Hub
+ a000 Smart Display Reference Device
+ c35b Printing Support
0401 National Registry, Inc.
0402 ALi Corp.
5462 M5462 IDE Controller
5602 Video Camera Controller
5603 USB 2.0 Q-tec Webcam 300
5621 USB 2.0 Storage Device
+ 5623 VistaScan Astra 3600
+ 5627 Welland ME-740PS USB2 3.5" Power Saving Enclosure
5632 USB 2.0 Host-to-Host Link
5635 USB 2.0 Flash Card Reader
5636 USB 2.0 Storage Device
5637 M5637 IDE Controller
0403 Future Technology Devices International, Ltd
0000 H4SMK 7 Port Hub
+ 0232 Serial Converter
6001 FT232 USB-Serial (UART) IC
+ 6007 Serial Converter
+ 6008 Serial Converter
+ 6009 Serial Converter
6010 FT2232C Dual USB-UART/FIFO IC
8040 4 Port Hub
8070 7 Port Hub
@@ -215,39 +562,104 @@
8372 FT8U100AX Serial Port
c630 lcd2usb interface
c7d0 RR-CirKits LocoBuffer-USB
+ cc48 product FTDI TACTRIX_OPENPORT_13M 0xcc48 OpenPort 1.3 Mitsubishi
+ cc49 product FTDI TACTRIX_OPENPORT_13S 0xcc49 OpenPort 1.3 Subaru
+ cc4a product FTDI TACTRIX_OPENPORT_13U 0xcc4a OpenPort 1.3 Universal
+ d010 SCS PTC-IIusb
+ d011 SCS Position-Tracker/TNC
+ d012 SCS DRAGON 1
+ d013 SCS DRAGON 1
+ d6f8 UNI Black BOX
+ e700 Elster Unicom III Optical Probe
+ e888 Expert ISDN Control USB
+ e889 USB-RS232 OptoBridge
+ e88a Expert mouseCLOCK USB II
+ e88b Precision Clock MSF USB
+ e88c Expert mouseCLOCK USB II HBG
ea90 Eclo 1-Wire Adapter
+ f1a0 Asix PRESTO Programmer
f208 Papenmeier Braille-Display
+ f680 Suunto Sports Instrument
+ f918 Ant8 Logic Probe
+ fa00 Matrix Orbital USB Serial
+ fa01 Matrix Orbital MX2 or MX3
+ fa02 Matrix Orbital MX4 or MX5
+ fa03 Matrix Orbital VK/LK202 Family
+ fa04 Matrix Orbital VK/LK204 Family
+ fc08 Crystalfontz CFA-632 USB LCD
+ fc09 Crystalfontz CFA-634 USB LCD
+ fc0b Crystalfontz CFA-633 USB LCD
+ fc0c Crystalfontz CFA-631 USB LCD
+ fc0d Crystalfontz CFA-635 USB LCD
fc82 SEMC DSS-20 SyncStation
fd48 ShipModul MiniPlex-4xUSB NMEA Multiplexer
ff08 ToolHouse LoopBack Adapter
+ ff18 Logbook Bus
+ ff19 Logbook Bus
+ ff1a Logbook Bus
+ ff1b Logbook Bus
+ ff1c Logbook Bus
+ ff1d Logbook Bus
+ ff1e Logbook Bus
+ ff1f Logbook Bus
0404 NCR Corp.
- 0310 K590 Printer, Self-Service
- 0311 7167 Printer, Receipt/Slip
- 0312 7197 Printer Receipt
- 0320 5932-USB Keyboard
- 0321 5953-USB Dynakey
- 0322 5932-USB Enhanced Keyboard
- 0323 5932-USB Enhanced Keyboard, Flash-Recovery/Download
- 0324 5953-USB Enhanced Dynakey
- 0325 5953-USB Enhanced Dynakey Flash-Recovery/Download
- 0328 K016: USB-MSR ISO 3-track MSR: POS Standard (See HID pages)
- 0329 K018: USB-MSR JIS 2-Track MSR: POS Standard
- 032a K016: USB-MSR ISO 3-Track MSR: HID Keyboard Mode
- 032b K016/K018: USB-MSR Flash-Recovery/Download
+ 0202 78XX Scanner
+ 0203 78XX Scanner - Embedded System
+ 0310 K590 Printer, Self-Service
+ 0311 7167 Printer, Receipt/Slip
+ 0312 7197 Printer Receipt
+ 0320 5932-USB Keyboard
+ 0321 5953-USB Dynakey
+ 0322 5932-USB Enhanced Keyboard
+ 0323 5932-USB Enhanced Keyboard, Flash-Recovery/Download
+ 0324 5953-USB Enhanced Dynakey
+ 0325 5953-USB Enhanced Dynakey Flash-Recovery/Download
+ 0328 K016: USB-MSR ISO 3-track MSR: POS Standard (See HID pages)
+ 0329 K018: USB-MSR JIS 2-Track MSR: POS Standard
+ 032a K016: USB-MSR ISO 3-Track MSR: HID Keyboard Mode
+ 032b K016/K018: USB-MSR Flash-Recovery/Download
0405 Synopsys, Inc.
0406 Fujitsu-ICL Computers
0407 Fujitsu Personal Systems, Inc.
0408 Quanta Computer, Inc.
0409 NEC Corp.
+ 0011 PC98 Series Layout Keyboard Mouse
0012 ATerm IT75DSU ISDN TA
0014 Japanese Keyboard
+ 0019 109 Japanese Keyboard with Bus-Powered Hub
+ 001a PC98 Series Layout Keyboard with Bus-Powered Hub
+ 0025 Mini Keyboard with Bus-Powered Hub
0027 MultiSync Monitor
+ 002c Clik!-USB Drive
+ 0034 109 Japanese Keyboard with One-touch start buttons
+ 003f Wireless Keyboard with One-touch start buttons
+ 0040 Floppy
+ 004e SuperScript 1400 Series
+ 004f Wireless Keyboard with One-touch start buttons
0058 HighSpeed Hub
0059 HighSpeed Hub
+ 005a HighSpeed Hub
006a Conceptronic USB Harddisk Box
+ 0081 SuperScript 1400 Series
+ 0082 SuperScript 1400 Series
+ 0094 Japanese Keyboard with One-touch start buttons
+ 0095 Japanese Keyboard
+ 00a9 AtermIT21L 128K Support Standard
+ 00aa AtermITX72 128K Support Standard
+ 00ab AtermITX62 128K Support Standard
+ 00ac AtermIT42 128K Support Standard
+ 00ae INSMATEV70G-MAX Standard
+ 00af AtermITX70 128K Support Standard
+ 00b0 AtermITX80 128K Support Standard
+ 00b2 AtermITX80D 128K Support Standard
+ 00c0 Wireless Remocon
+ 00f7 Smart Display PK-SD10
011d e228 Mobile Phone
+ 0203 HID Audio Controls
55aa Hub
55ab Hub [iMac/iTouch kbd]
+ 8010 Intellibase Hub
+ 8011 Intellibase Hub
efbe P!cty 900 [HP DJ]
f0be P!cty 920 [HP DJ 812c]
040a Kodak Co.
@@ -265,8 +677,10 @@
0140 DC-4800
0160 DC4800
0170 DX3900
+ 0200 Digital Camera
0300 EZ-200
0400 MC3
+ 0402 Digital Camera
0403 Z7590
0500 DX3500
0510 DX3600
@@ -299,35 +713,174 @@
057e C300
057f DX7590
0580 Z730
+ 0581 Digital Camera
+ 0582 Digital Camera
+ 0583 Digital Camera
0584 CX6445
+ 0585 Digital Camera
0586 CX7525
+ 0587 Digital Camera
+ 0588 Digital Camera
0589 EasyShare C360
058a C310
+ 058b Digital Camera
058c C330
058d C340
058e V530
058f V550
+ 0590 Digital Camera
+ 0591 Digital Camera
+ 0592 Digital Camera
+ 0593 Digital Camera
+ 0594 Digital Camera
+ 0595 Digital Camera
+ 0596 Digital Camera
+ 0597 Digital Camera
+ 0598 Digital Camera
+ 0599 Digital Camera
+ 059a Digital Camera
+ 059b Digital Camera
+ 059c Digital Camera
+ 059d Digital Camera
+ 059e Digital Camera
+ 059f Digital Camera
+ 05a0 Digital Camera
+ 05a1 Digital Camera
+ 05a2 Digital Camera
+ 05a3 Digital Camera
+ 05a4 Digital Camera
+ 05a5 Digital Camera
+ 05a6 Digital Camera
+ 05a7 Digital Camera
+ 05a8 Digital Camera
+ 05a9 Digital Camera
+ 05aa Digital Camera
+ 05ab Digital Camera
+ 05ac Digital Camera
+ 05ad Digital Camera
+ 05ae Digital Camera
+ 05af Digital Camera
+ 05b0 Digital Camera
+ 05b1 Digital Camera
+ 05b2 Digital Camera
+ 05b3 EasyShare Z710 Camera
+ 05b4 Digital Camera
+ 05b5 Digital Camera
+ 05b6 Digital Camera
+ 05b7 Digital Camera
+ 05b8 Digital Camera
+ 05b9 Digital Camera
+ 05ba Digital Camera
+ 05bb Digital Camera
+ 05bc Digital Camera
+ 05bd Digital Camera
+ 05be Digital Camera
+ 05bf Digital Camera
+ 05c0 Digital Camera
+ 05c1 Digital Camera
+ 05c2 Digital Camera
+ 05c3 Digital Camera
+ 05c4 Digital Camera
+ 05c5 Digital Camera
+ 4000 InkJet Color Printer
+ 410d EasyShare G600 Printer Dock
5010 Wireless Adapter
+ 5012 DBT-220 Bluetooth Adapter
+ 6001 i30
+ 6002 i40
+ 6003 i50
+ 6004 i60
+ 6005 i80
040b Weltrend Semiconductor
6510 Weltrend Bar Code Reader
6520 XBOX Xploder
040c VTech Computers, Ltd
040d VIA Technologies, Inc.
+ 3184 VNT VT6656 USB-802.11 Wireless LAN Adapter
6205 USB 2.0 Card Reader
040e MCCI
040f Echo Speech Corp.
0411 MelCo., Inc.
0001 LUA-TX Ethernet [pegasus]
+ 0005 LUA-TX Ethernet
+ 0006 WLI-USB-L11 Wireless LAN Adapter
+ 0009 LUA2-TX Ethernet
+ 000b WLI-USB-L11G-WR Wireless LAN Adapter
+ 000d WLI-USB-L11G Wireless LAN Adapter
+ 0012 LUA-KTX Ethernet
+ 0013 USB2-IDE Adapter
0016 WLI-USB-S11 802.11b Adapter
+ 0018 USB2-IDE Adapter
+ 001c USB-IDE Bridge: DUB-PxxG
0027 WLI-USB-KS11G 802.11b Adapter
+ 003d LUA-U2-KTX Ethernet
+ 0044 WLI-USB-KB11 Wireless LAN Adapter
+ 004d WLI-USB-B11 Wireless LAN Adapter
+ 0050 WLI2-USB2-G54 Wireless LAN Adapter
+ 005e WLI-U2-KG54-YB WLAN
+ 0065 Python2 WDM Encoder
+ 0066 WLI-U2-KG54 WLAN
+ 0067 WLI-U2-KG54-AI WLAN
+ 008b Nintendo Wi-Fi
+ 0091 WLI-U2-KAMG54 Wireless LAN Adapter
+ 0092 WLI-U2-KAMG54 Bootloader
+ 0097 WLI-U2-KG54-BB
+ 00a9 WLI-U2-AMG54HP Wireless LAN Adapter
+ 00aa WLI-U2-AMG54HP Bootloader
+ 00b3 PC-OP-RS1 RemoteStation
+ 00ca 802.11n Network Adapter
+ 00cb WLI-U2-G300N 802.11n Adapter
+ 00d8 WLI-U2-SG54HP
+ 00d9 WLI-U2-G54HP
+ 00da WLI-U2-KG54L
0412 Award Software International
0413 Leadtek Research, Inc.
+ 1310 WinFast TV - NTSC + FM
+ 1311 WinFast TV - NTSC + MTS + FM
+ 1312 WinFast TV - PAL BG + FM
+ 1313 WinFast TV - PAL BG+TXT + FM
+ 1314 WinFast TV Audio - PHP PAL I
+ 1315 WinFast TV Audio - PHP PAL I+TXT
+ 1316 WinFast TV Audio - PHP PAL DK
+ 1317 WinFast TV Audio - PHP PAL DK+TXT
+ 1318 WinFast TV - PAL I/DK + FM
+ 1319 WinFast TV - PAL N + FM
+ 131a WinFast TV Audio - PHP SECAM LL
+ 131b WinFast TV Audio - PHP SECAM LL+TXT
+ 131c WinFast TV Audio - PHP SECAM DK
+ 131d WinFast TV - SECAM DK + TXT + FM
+ 131e WinFast TV - NTSC Japan + FM
+ 1320 WinFast TV - NTSC
+ 1321 WinFast TV - NTSC + MTS
+ 1322 WinFast TV - PAL BG
+ 1323 WinFast TV - PAL BG+TXT
+ 1324 WinFast TV Audio - PHP PAL I
+ 1325 WinFast TV Audio - PHP PAL I+TXT
+ 1326 WinFast TV Audio - PHP PAL DK
+ 1327 WinFast TV Audio - PHP PAL DK+TXT
+ 1328 WinFast TV - PAL I/DK
+ 1329 WinFast TV - PAL N
+ 132a WinFast TV Audio - PHP SECAM LL
+ 132b WinFast TV Audio - PHP SECAM LL+TXT
+ 132c WinFast TV Audio - PHP SECAM DK
+ 132d WinFast TV - SECAM DK + TXT
+ 132e WinFast TV - NTSC Japan
+ 6023 EMP Audio Device
+ 6024 WinFast PalmTop/Novo TV Video
6025 WinFast DTV Dongle (cold state)
6026 WinFast DTV Dongle (warm state)
+ 6125 WinFast DTV Dongle
+ 6126 WinFast DTV Dongle BDA Driver
6f00 WinFast DTV Dongle (STK7700P based)
0414 Giga-Byte Technology Co., Ltd
0416 Winbond Electronics Corp.
+ 0035 W89C35 802.11bg WLAN Adapter
+ 0101 Hub
0961 AVL Flash Card Reader
+ 3810 Smart Card Controller
+ 3811 Generic Controller - Single interface
+ 3812 Smart Card Controller_2Interface
+ 3813 Panel Display
5518 4-Port Hub
551a PC Sync Keypad
551b PC Async Keypad
@@ -336,13 +889,24 @@
551e Keyboard
551f Keyboard w/ Sys and Media
5521 Keyboard
- 7723 SD Card Reader
6481 16-bit Scanner
+ 7721 Memory Stick Reader/Writer
+ 7722 Memory Stick Reader/Writer
+ 7723 SD Card Reader
0417 Symbios Logic
0418 AST Research
0419 Samsung Info. Systems America, Inc.
0001 IrDA Remote Controller
3001 Xerox P1202 Laser Printer
+ 3003 Olivetti PG L12L
+ 3201 Docuprint P8ex
+ 3404 SCX-5x12 Series
+ 3406 MFP 830 Series
+ 3407 ML-912
+ 3601 InkJet Color Printer
+ 3602 InkJet Color Printer
+ 4602 Remote NDIS Network Device
+ 8001 Hub
8002 SyncMaster 757DFX HID Device
041a Phoenix Technologies, Ltd
041b d'TV
@@ -351,8 +915,19 @@
1002 Nomad II
1003 Blaster GamePad Cobra
1050 GamePad Cobra
+ 3000 SoundBlaster Extigy
+ 3002 SB External Composite Device
3010 SoundBlaster MP3+
+ 3014 SB External Composite Device
+ 3015 Sound Blaster Digital Music LX
3020 SoundBlaster Audigy 2 NX
+ 3030 SB External Composite Device
+ 3040 SoundBlaster Live! 24-bit External SB0490
+ 3060 Sound Blaster Audigy 2 ZS External
+ 3061 SoundBlaster Audigy 2 ZS Video Editor
+ 3090 Sound Blaster Digital Music SX
+ 3f02 E-Mu 0202
+ 3f04 E-Mu 0404
4003 VideoBlaster WebCam Go Plus [W9967CF]
4004 Nomad II MG
4005 WebCam Blaster Go ES
@@ -361,6 +936,7 @@
400b PC-Cam 600
400c WebCam 5 [pwc]
400d WebCam PD1001
+ 400f PC-CAM 550 (Composite)
4011 WebCam PRO eX
4012 PC-CAM350
4013 PC-Cam 750
@@ -368,71 +944,169 @@
4016 CardCam
4017 WebCam Mobile
4018 WebCam Vista
+ 4019 Audio Device
401c WebCam NX [PD1110]
401d WebCam NX Ultra
401e WebCam NX Pro
401f Webcam Notebook
+ 4020 WebCam NX
+ 4021 WebCam NX Ultra
+ 4022 WebCam NX Pro
4028 Vista Plus cam [VF0090]
+ 402f DC-CAM 3000Z
+ 4034 WebCam Instant
+ 4035 WebCam Instant
4036 Webcam Live!/Live! Pro
+ 4037 WebCam Live!
+ 4038 ORITE CCD Webcam(PC370R)
+ 4039 WebCam Live! Effects
403a WebCam NX Pro 2
403c WebCam Live! Ultra
403d WebCam Notebook Ultra
+ 403e WebCam Vista Plus
+ 4041 WebCam Live! Motion
+ 4045 Live! Cam Voice
+ 4049 Live! Cam Voice
+ 4051 Live! Cam Notebook Pro
+ 4052 Live! Cam Vista IM
+ 4053 Live! Cam Video IM
+ 4054 Live! Cam Video IM
+ 4055 Live! Cam Video IM Pro
+ 4056 Live! Cam Video IM Pro
+ 4057 Live! Cam Optia
+ 4058 Live! Cam Optia AF
+ 4068 WebCam Live! Notebook
4100 Nomad Jukebox 2
4101 Nomad Jukebox 3
+ 4102 NOMAD MuVo^2
4106 Nomad MuVo
+ 4107 NOMAD MuVo
4108 Nomad Jukebox Zen
4109 Nomad Jukebox Zen NX
410b Nomad Jukebox Zen USB 2.0
410c Nomad MuVo NX
+ 410f NOMAD MuVo^2 (Flash)
4110 Nomad Jukebox Zen Xtra
4111 Dell Digital Jukebox
4116 MuVo^2
4117 Nomad MuVo TX
411b Zen Touch
+ 411c Nomad MuVo USB 2.0
411d Zen
411e Zen Micro
4123 Zen Portable Media Center
+ 4124 MuVo^2 FM (uHDD)
4126 Dell DJ (2nd gen)
4127 Dell DJ
4128 NOMAD Jukebox Zen Xtra (mtp)
412b MuVo N200 with FM radio
4130 Zen Micro (mtp)
4131 Zen Touch (mtp)
+ 4133 Mass Storage Device
4134 Zen Neeon
4136 Zen Sleek
4137 Zen Sleek (mtp)
4139 Zen Nano Plus
413c Zen MicroPhoto
4151 Zen Vision:M (mtp)
+ 4155 Zen Stone plus
+ 500f Broadband Blaster 8012U-V
+ 5015 TECOM Bluetooth Device
+ ffff WebCam Live! Ultra
041f LCS Telegraphics
0420 Chips and Technologies
+ 1307 Celly SIM Card Reader
0421 Nokia Mobile Phones
+ 0018 6288 GSM Smartphone
+ 0019 6288 GSM Smartphone (imaging mode)
+ 001a 6288 GSM Smartphone (file transfer mode)
+ 0024 5610 XpressMusic (Storage mode)
+ 0025 5610 XpressMusic (PC-Suite mode)
+ 0028 5610 XpressMusic (Imaging mode)
+ 0042 E51 (PC-Suite mode)
+ 0096 N810 Internet Tablet
+ 0103 ADL Flashing Engine AVALON Parent
+ 0104 ADL Re-Flashing Engine Parent
+ 0105 E-61 (Firmware update mode)
+ 0106 ROM Parent
+ 0400 7600 Phone Parent
0401 6650 GSM Phone
+ 0402 6255 Phone Parent
+ 0404 5510
0405 9500 GSM Communicator
+ 0407 Music Player HDR-1(tm)
040b N-Gage GSM Phone
+ 040d 6620 Phone Parent
+ 040e 6651 Phone Parent
040f 6230 GSM Phone
0410 6630 Imaging Smartphone
+ 0411 7610 Phone Parent
+ 0413 6260 Phone Parent
+ 0414 7370
0415 9300 GSM Smartphone
+ 0416 6170 Phone Parent
+ 0417 7270 Phone Parent
0418 E-70 (PC-Suite mode)
+ 0419 E-60 (PC-Suite mode)
041a 9500 GSM Communicator (RNDIS)
041b 9300 GSM Smartphone (RNDIS)
+ 041c 7710 Phone Parent
+ 041d 6670 Phone Parent
041e 6680
+ 041f 6235 Phone Parent
+ 0421 3230 Phone Parent
+ 0422 6681 Phone Parent
+ 0423 6682 Phone Parent
0428 6230i Modem
0429 6230i MultiMedia Card
0431 770 Internet Tablet
+ 0432 N90 Phone Parent
0435 E-70 (IP Passthrough/RNDIS mode)
+ 0436 E-60 (IP Passthrough/RNDIS mode)
+ 0437 6265 Phone Parent
043a N70 USB Phone Parent
+ 043b 3155 Phone Parent
+ 043c 6155 Phone Parent
+ 043d 6270 Phone Parent
+ 0443 N70 Phone Parent
+ 044c NM850iG Phone Parent
+ 044d E-61 (PC Suite mode)
+ 044e E-61 (Data Exchange mode)
+ 044f E-61 (IP Passthrough/RNDIS mode)
+ 0453 9300 Phone Parent
+ 0456 6111 Phone Parent
+ 045a 6280 Phone Parent
+ 045d 6282 Phone Parent
046e 6110 Navigator
+ 0485 MTP Device
04c3 N800 Internet Tablet
- 04f9 Nokia 6300 (PC-Suite mode)
+ 04ce E90 Communicator (PC-Suite mode)
+ 04cf E90 Communicator (Storage mode)
+ 04f9 6300 (PC-Suite mode)
+ 0600 Digital Pen SU-1B
0800 Connectivity Cable DKU-5
+ 0801 Data Cable DKU-6
+ 0802 CA-42 Phone Parent
0422 ADI Systems, Inc.
0423 Computer Access Technology Corp.
000a NetMate Ethernet
000c NetMate2 Ethernet
000d USB Chief Analyzer
+ 0100 Generic Universal Protocol Analyzer
+ 0101 UPA USBTracer
+ 0200 Generic 10K Universal Protocol Analyzer
+ 020a PETracer ML
+ 0300 Generic Universal Protocol Analyzer
+ 0301 2500H Tracer Trainer
+ 030a PETracer x1
1237 Andromeda Hub
0424 Standard Microsystems Corp.
+ 0001 Integrated Hub
+ 0acd Sitecom Internal Multi Memory reader/writer MD-005
+ 0fdc Floppy
+ 10cd Sitecom Internal Multi Memory reader/writer MD-005
+ 2020 USB Hub
+ 20cd Sitecom Internal Multi Memory reader/writer MD-005
20fc 6-in-1 Card Reader
2228 9-in-2 Card Reader
223a 8-in-1 Card Reader
@@ -442,135 +1116,371 @@
0425 Motorola Semiconductors HK, Ltd
0101 G-Tech Wireless Mouse & Keyboard
0426 Integrated Device Technology, Inc.
+ 0426 WDM Driver
0427 Motorola Electronics Taiwan, Ltd
0428 Advanced Gravis Computer Tech, Ltd
4001 GamePad Pro
0429 Cirrus Logic
042a Ericsson Austrian, AG
042b Intel Corp.
+ 9316 8x931Hx Customer Hub
042c Innovative Semiconductors, Inc.
042d Micronics
042e Acer, Inc.
+ 0380 MP3 Player
042f Molex, Inc.
0430 Sun Microsystems, Inc.
+ 0002 109 Keyboard
0005 Type 6 Keyboard
+ 000a 109 Japanese Keyboard
+ 000b 109 Japanese Keyboard
+ 0082 109 Japanese Keyboard
+ 0083 109 Japanese Keyboard
0100 3-button Mouse
+ 36ba Bus Powered Hub
0431 Itac Systems, Inc.
0100 Mouse-Trak 3-button Track Ball
0432 Unisys Corp.
0433 Alps Electric, Inc.
1101 IBM Game Controller
+ abab Keyboard
0434 Samsung Info. Systems America, Inc.
0435 Hyundai Electronics America
0436 Taugagreining HF
+ 0005 CameraMate (DPCM_USB)
0437 Framatome Connectors USA
0438 Advanced Micro Devices, Inc.
0439 Voice Technologies Group
043d Lexmark International, Inc.
+ 0001 Laser Printer
0002 Optra E310 Printer
+ 0003 Laser Printer
+ 0004 Laser Printer
+ 0005 Laser Printer
+ 0006 Laser Printer
+ 0007 Laser Printer
+ 0008 Inkjet Color Printer
0009 Optra S2450 Printer
+ 000a Laser Printer
+ 000b Inkjet Color Printer
000c Optra E312 Printer
+ 000d Laser Printer
+ 000e Laser Printer
+ 000f Laser Printer
+ 0010 Laser Printer
+ 0011 Laser Printer
+ 0012 Inkjet Color Printer
+ 0013 Inkjet Color Printer
+ 0014 InkJet Color Printer
+ 0015 InkJet Color Printer
+ 0016 Z12 Color Jetprinter
0017 Z32 printer
0018 Z52 Printer
+ 0019 Forms Printer
001a Z65 Printer
+ 001b InkJet Photo Printer
001c Kodak Personal Picture Maker 200 Printer
+ 001d InkJet Color Printer
+ 001e InkJet Photo Printer
001f Kodak Personal Picture Maker 200 Card Reader
0020 Z51 Printer
0021 Z33 Printer
+ 0022 InkJet Color Printer
+ 0023 Laser Printer
+ 0024 Laser Printer
+ 0025 InkJet Color Printer
+ 0026 InkJet Color Printer
+ 0027 InkJet Color Printer
+ 0028 InkJet Color Printer
+ 0029 Scan Print Copy
+ 002a Scan Print Copy
+ 002b Scan Print Copy
+ 002c Scan Print Copy
002d X70/X73 Scan/Print/Copy
+ 002e Scan Print Copy
+ 002f Scan Print Copy
+ 0030 Scan Print Copy
+ 0031 Scan Print Copy
+ 0032 Scan Print Copy
+ 0033 Scan Print Copy
+ 0034 Scan Print Copy
+ 0035 Scan Print Copy
+ 0036 Scan Print Copy
+ 0037 Scan Print Copy
+ 0038 Scan Print Copy
+ 0039 Scan Print Copy
+ 003a Scan Print Copy
+ 003b Scan Print Copy
+ 003c Scan Print Copy
003d X83 Scan/Print/Copy
+ 003e Scan Print Copy
+ 003f Scan Print Copy
+ 0040 Scan Print Copy
+ 0041 Scan Print Copy
+ 0042 Scan Print Copy
+ 0043 Scan Print Copy
+ 0044 Scan Print Copy
+ 0045 Scan Print Copy
+ 0046 Scan Print Copy
+ 0047 Scan Print Copy
+ 0048 Scan Print Copy
+ 0049 Scan Print Copy
+ 004a Scan Print Copy
+ 004b Scan Print Copy
+ 004c Scan Print Copy
+ 004d Laser Printer
+ 004e Laser Printer
+ 004f InkJet Color Printer
+ 0050 InkJet Color Printer
+ 0051 Laser Printer
+ 0052 Laser Printer
+ 0053 InkJet Color Printer
+ 0054 InkJet Color Printer
0057 Z35 Printer
+ 0058 Laser Printer
+ 005a X63
+ 005c InkJet Color Printer
0060 X74/X75 Scanner
0061 X74 Hub
+ 0065 X5130
0069 X74/X75 Printer
+ 006d X125
0072 X6170 Printer
+ 0073 InkJet Color Printer
+ 0078 InkJet Color Printer
+ 0079 InkJet Color Printer
+ 007a Generic Hub
+ 007b InkJet Color Printer
+ 007c Lexmark X1110/X1130/X1140/X1150/X1170/X1180/X1185
+ 007d Photo 3150
+ 008a 4200 Series
+ 008b InkJet Color Printer
+ 008c to CF/SM/SD/MS Card Reader
+ 008e InkJet Color Printer
+ 008f X422
+ 0093 X5250
0095 E220 Printer
+ 0096 2200 Series
+ 0097 P6250
+ 0098 7100 Series
+ 009e P910 Series Human Interface Device
+ 009f InkJet Color Printer
+ 00a9 IBM Infoprint 1410 MFP
+ 00ab InkJet Color Printer
+ 00b2 3300 Series
+ 00b8 7300 Series
+ 00b9 8300 Series
+ 00ba InkJet Color Printer
+ 00bb 2300 Series
+ 00bd Printing Support
+ 00be Printing Support
+ 00bf Printing Support
+ 00c0 6300 Series
+ 00c1 4300 Series
+ 00c7 Printing Support
+ 00c8 Printing Support
+ 00c9 Printing Support
+ 00cb Printing Support
+ 00d0 9300 Series
+ 00d3 X340 Scanner
+ 00d4 X342n Scanner
+ 00d5 Printing Support
+ 00d6 X340 Scanner
+ 00e8 X642e
+ 00e9 2400 Series
+ 00f6 3400 Series
+ 00f7 InkJet Color Printer
+ 00ff InkJet Color Printer
+ 010b 2500 Series
+ 010d 3500-4500 Series
+ 010f 6500 Series
+ 4303 Xerox WorkCentre Pro 412
043e LG Electronics USA, Inc.
42bd Flatron 795FT Plus Monitor
4a4d Flatron 915FT Plus Monitor
7001 MF-PD100 Soul Digital MP3 Player
+ 7013 MP3 Player
8484 LPC-U30 Webcam II
8585 LPC-UC35 Webcam
+ 8888 Electronics VCS Camera II(LPC-U20)
+ 9800 Remote Control Receiver_iMON
+ 9803 eHome Infrared Receiver
+ 9804 DMB Receiver Control
+ 9c01 LGE Sync
043f RadiSys Corp.
0440 Eizo Nanao Corp.
0441 Winbond Systems Lab.
1456 Hub
0442 Ericsson, Inc.
+ abba Bluetooth Device
0443 Gateway, Inc.
+ 000e Multimedia Keyboard
+ 002e Millennium Keyboard
0445 Lucent Technologies, Inc.
0446 NMB Technologies Corp.
+ 6781 Keyboard with PS/2 Mouse Port
+ 6782 Keyboard
0447 Momentum Microsystems
044a Shamrock Tech. Co., Ltd
044b WSI
044c CCL/ITRI
044d Siemens Nixdorf AG
044e Alps Electric Co., Ltd
+ 1104 Japanese Keyboard
2002 MD-5500 Printer
+ 2014 Bluetooth Device
3001 UGTZ4 Bluetooth
- 3007 GlidePoint PS/2 TouchPad
+ 3002 Bluetooth Device
+ 3003 Bluetooth Device
+ 3004 Bluetooth Adapter
+ 3005 Integrated Bluetooth Device
+ 3006 Bluetooth Adapter
+ 3007 Bluetooth Controller (ALPS/UGX)
+ 300c Bluetooth Controller (ALPS/UGPZ6)
+ 300d Bluetooth Controller (ALPS/UGPZ6)
+ ffff Compaq Bluetooth Multiport Module
044f ThrustMaster, Inc.
0400 HOTAS Cougar
+ a003 Rage 3D Game Pad
+ a01b PK-GP301 Driving Wheel
+ a0a0 Top Gun Joystick
+ a0a1 Top Gun Joystick (rev2)
a0a3 Fusion Digital GamePad
+ a201 PK-GP201 PlayStick
b203 360 Modena Pro Wheel
b300 Firestorm Dual Power
b304 Firestorm Dual Power
+ b307 vibrating Upad
+ b603 force feedback Wheel
+ b605 force feedback Racing Wheel
+ b700 Tacticalboard
0450 DFI, Inc.
0451 Texas Instruments, Inc.
+ 1234 Bluetooth Device
1428 Hub
1446 TUSB2040/2070 Hub
2036 TUSB2036 Hub
2046 TUSB2046 Hub
2077 TUSB2077 Hub
3410 TUSB3410 Microcontroller
+ 3f02 SMC WSKP100 Wi-Fi Phone
5409 Frontier Labs NEX IA+ Digital Audio Player
6000 AU5 ADSL Modem (pre-reenum)
6001 AU5 ADSL Modem
+ 6060 RNDIS/BeWAN ADSL2+
+ 6070 RNDIS/BeWAN ADSL2+
625f Trekstor USB-Stick 12 CS-D 12 GB
+ dbc0 Device Bay Controller
e001 GraphLink
e004 TI-89 Titanium Calculator
e008 TI-84 Plus Silver Calculator
f430 MSP-FET430UIF JTAG Tool
+ ffff Bluetooth Device
0452 Mitsubishi Electronics America, Inc.
+ 0021 HID Monitor Controls
0050 Diamond Pro 900u CRT Monitor
0051 Integrated Hub
0453 CMD Technology
+ 6781 NMB Keyboard
+ 6783 Chicony Composite Keyboard
0454 Vobis Microcomputer AG
0455 Telematics International, Inc.
0456 Analog Devices, Inc.
0457 Silicon Integrated Systems Corp.
0150 Super Talent 1GB Flash Drive
- 0151 Super Flash 1GB Flash Drive
+ 0151 Super Flash 1GB / GXT 64MB Flash Drive
+ 0162 SiS162 usb Wireless LAN Adapter
+ 0163 802.11 Wireless LAN Adapter
+ 5401 Wireless Adapter RO80211GS-USB
0458 KYE Systems Corp. (Mouse Systems)
0001 Mouse
0002 Genius NetMouse Pro
0003 Genius NetScroll+
+ 0006 Easy Mouse+ USB(USB\Vid_0458&Pid;_0006) Mouse
+ 000b NetMouse Wheel(P+U)
+ 000c TACOMA Fingerprint V1.06.01
000e VideoCAM Web
+ 0013 TACOMA Fingerprint Mouse V1.06.01
001a Genius WebScroll+
+ 0036 Pocket Mouse LE
004c Slimstar Pro Keyboard
0056 Ergo 300 Mouse
+ 0057 Enhanced Gaming Device
+ 0059 Enhanced Laser Device
+ 005a Enhanced Device
+ 005b Enhanced Device
+ 005c Enhanced Laser Gaming Device
+ 005d Enhanced Device
+ 0061 Bluetooth Dongle
+ 0083 Bluetooth Dongle
0100 EasyPen Tablet
0101 CueCat
+ 1001 Joystick
+ 1002 Game Pad
1003 Genius VideoCam
1004 Flight2000 F-23 Joystick
100a Aashima Technology Trust Sight Fighter Vibration Feedback Joystick
2001 ColorPage-Vivid Pro Scanner
+ 2004 ColorPage-HR6 V1 Scanner
+ 2005 ColorPage-HR6/Vivid3
2007 ColorPage-HR6 V2 Scanner
2008 ColorPage-HR6 V2 Scanner
2009 ColorPage-HR6A Scanner
2011 ColorPage-Vivid3x Scanner
+ 2012 Plustek Scanner
2013 ColorPage-HR7 Scanner
+ 2014 ColorPage-Vivid4
2015 ColorPage-HR7LE Scanner
2016 ColorPage-HR6X Scanner
+ 2017 ColorPage-Vivid3xe
+ 2018 ColorPage-HR7X
+ 2019 ColorPage-HR6X Slim
+ 201a ColorPage-Vivid4xe
+ 201b ColorPage-Vivid4x
+ 201c ColorPage-HR8
+ 201d ColorPage-Vivid 1200 X
+ 201e ColorPage-Slim 1200
+ 201f ColorPage-Vivid 1200 XE
+ 2020 ColorPage-Slim 1200 USB2
+ 2021 ColorPage-SF600
301d Genius MaxFire MiniPad
+ 6001 GF3000F Ethernet Adapter
7004 VideoCAM Express
7007 VideoCAM Web
+ 7009 G-Shot G312 Still Camera Device
+ 700c VideoCAM Web V3
+ 700d G-Shot G511 Composite Device
+ 700f VideoCAM Web V4
7012 WebCAM USB2.0
+ 7014 VideoCAM Live V3
+ 701c G-Shot G512 Still Camera
+ 7020 Sim 321C
0459 Adobe Systems, Inc.
045a SONICblue, Inc.
+ 07da Supra Express 56K modem
0b4a SupraMax 2890 56K Modem [Lucent Atlas]
0b68 SupraMax 56K Modem
+ 5001 Rio 600 MP3 Player
+ 5002 Rio 800 MP3 Player
+ 5003 Nike Psa/Play MP3 Player
+ 5005 Rio S10 MP3 Player
+ 5006 Rio S50 MP3 Player
+ 5007 Rio S35 MP3 Player
+ 5008 Rio 900 MP3 Player
+ 5009 Rio S30 MP3 Player
+ 500d Fuse MP3 Player
+ 500e Chiba MP3 Player
+ 500f Cali MP3 Player
+ 5010 Rio S11 MP3 Player
+ 501c Virgin MPF-1000
+ 501d Rio Fuse
+ 501e Rio Chiba
+ 501f Rio Cali
+ 503f Cali256 MP3 Player
+ 5202 Rio Riot MP3 Player
5210 Rio Karma Music Player
5220 Rio Nitrus MP3 Player
+ 5221 Rio Eigen
045b Hitachi, Ltd
045d Nortel Networks, Ltd
045e Microsoft Corp.
@@ -578,9 +1488,11 @@
0008 SideWinder Precision Pro
0009 IntelliMouse
000b Natural Keyboard Elite
+ 000e SideWinder® Freestyle Pro
0014 Digital Sound System 80
001a SideWinder Precision Racing Wheel
001b SideWinder Force Feedback 2 Joystick
+ 001c Internet Keyboard Pro
001d Natural Keyboard Pro
001e IntelliMouse Explorer
0023 Trackball Optical
@@ -591,6 +1503,8 @@
0028 SideWinder Dual Strike
0029 IntelliMouse Optical
002b Internet Keyboard Pro
+ 002d Internet Keyboard
+ 002f Integrated Hub
0033 Sidewinder Strategic Commander
0034 SideWinder Force Feedback Wheel
0038 SideWinder Precision 2
@@ -600,21 +1514,51 @@
0040 Wheel Mouse Optical
0047 IntelliMouse Explorer 3.0
0048 Office Keyboard 1.0A
+ 0053 Optical Mouse
0059 Wireless IntelliMouse Explorer
+ 005c Office Keyboard (106/109)
+ 005f Wireless MultiMedia Keyboard
+ 0061 Wireless MultiMedia Keyboard (106/109)
+ 0063 Wireless Natural MultiMedia Keyboard
+ 0065 Wireless Natural MultiMedia Keyboard (106/109)
+ 006a Wireless Optical Mouse (IntelliPoint)
+ 006d eHome Remote Control Keyboard keys
006e MN510 802.11b Adapter
+ 006f Smart Display Reference Device
+ 0070 Wireless MultiMedia Keyboard
+ 0071 Wireless MultiMedia Keyboard (106/109)
+ 0072 Wireless Natural MultiMedia Keyboard
+ 0073 Wireless Natural MultiMedia Keyboard (106/109)
+ 007a 10/100 USB NIC
007d Notebook Optical Mouse
007e Wireless Transceiver for Bluetooth
0080 Digital Media Pro Keyboard
0083 Basic Optical Mouse
0084 Basic Optical Mouse
008a Wireless Keyboard and Mouse
+ 008b Dual Receiver Wireless Mouse (IntelliPoint)
008c Wireless Intellimouse Explorer 2.0
+ 0095 IntelliMouse Explorer 4.0 (IntelliPoint)
+ 009c Wireless Transceiver for Bluetooth 2.0
+ 00a0 eHome Infrared Receiver
+ 00b0 Digital Media Pro Keyboard
00b9 Wireless Optical Mouse 3.0
+ 00bb Fingerprint Reader
+ 00bc Fingerprint Reader
00bd Fingerprint Reader
+ 00c2 Wireless Adapter MN-710
+ 00c9 MTP Device
00ce Generic PPC Flash device
+ 00d1 Optical Mouse with Tilt Wheel
+ 00da eHome Infrared Receiver
00db Natural Ergonomic Keyboard 4000 V1.0
00e1 Wireless Laser Mouse 6000 Reciever
+ 00f4 LifeCam VX-6000 (SN9C20x + OV9650)
+ 00f5 LifeCam VX-3000.
+ 00f7 LifeCam VX-1000.
+ 00f8 LifeCam NX-6000.
0202 Xbox Controller
+ 0280 XBox Device
0284 Xbox DVD Playback Kit
0285 Xbox Controller S
0288 Xbox Controller S Hub
@@ -628,6 +1572,137 @@
029c Xbox360 HD-DVD Drive
029d Xbox360 HD-DVD Drive
029e Xbox360 HD-DVD Memory Unit
+ 0400 Windows Powered Pocket PC 2002
+ 0401 Windows Powered Pocket PC 2002
+ 0402 Windows Powered Pocket PC 2002
+ 0403 Windows Powered Pocket PC 2002
+ 0404 Windows Powered Pocket PC 2002
+ 0405 Windows Powered Pocket PC 2002
+ 0406 Windows Powered Pocket PC 2002
+ 0407 Windows Powered Pocket PC 2002
+ 0408 Windows Powered Pocket PC 2002
+ 0409 Windows Powered Pocket PC 2002
+ 040a Windows Powered Pocket PC 2002
+ 040b Windows Powered Pocket PC 2002
+ 040c Windows Powered Pocket PC 2002
+ 040d Windows Powered Pocket PC 2002
+ 040e Windows Powered Pocket PC 2002
+ 040f Windows Powered Pocket PC 2002
+ 0410 Windows Powered Pocket PC 2002
+ 0411 Windows Powered Pocket PC 2002
+ 0412 Windows Powered Pocket PC 2002
+ 0413 Windows Powered Pocket PC 2002
+ 0414 Windows Powered Pocket PC 2002
+ 0415 Windows Powered Pocket PC 2002
+ 0416 Windows Powered Pocket PC 2002
+ 0417 Windows Powered Pocket PC 2002
+ 0432 Windows Powered Pocket PC 2003
+ 0433 Windows Powered Pocket PC 2003
+ 0434 Windows Powered Pocket PC 2003
+ 0435 Windows Powered Pocket PC 2003
+ 0436 Windows Powered Pocket PC 2003
+ 0437 Windows Powered Pocket PC 2003
+ 0438 Windows Powered Pocket PC 2003
+ 0439 Windows Powered Pocket PC 2003
+ 043a Windows Powered Pocket PC 2003
+ 043b Windows Powered Pocket PC 2003
+ 043c Windows Powered Pocket PC 2003
+ 043d Becker Traffic Assist Highspeed 7934
+ 043e Windows Powered Pocket PC 2003
+ 043f Windows Powered Pocket PC 2003
+ 0440 Windows Powered Pocket PC 2003
+ 0441 Windows Powered Pocket PC 2003
+ 0442 Windows Powered Pocket PC 2003
+ 0443 Windows Powered Pocket PC 2003
+ 0444 Windows Powered Pocket PC 2003
+ 0445 Windows Powered Pocket PC 2003
+ 0446 Windows Powered Pocket PC 2003
+ 0447 Windows Powered Pocket PC 2003
+ 0448 Windows Powered Pocket PC 2003
+ 0449 Windows Powered Pocket PC 2003
+ 044a Windows Powered Pocket PC 2003
+ 044b Windows Powered Pocket PC 2003
+ 044c Windows Powered Pocket PC 2003
+ 044d Windows Powered Pocket PC 2003
+ 044e Windows Powered Pocket PC 2003
+ 044f Windows Powered Pocket PC 2003
+ 0450 Windows Powered Pocket PC 2003
+ 0451 Windows Powered Pocket PC 2003
+ 0452 Windows Powered Pocket PC 2003
+ 0453 Windows Powered Pocket PC 2003
+ 0454 Windows Powered Pocket PC 2003
+ 0455 Windows Powered Pocket PC 2003
+ 0456 Windows Powered Pocket PC 2003
+ 0457 Windows Powered Pocket PC 2003
+ 0458 Windows Powered Pocket PC 2003
+ 0459 Windows Powered Pocket PC 2003
+ 045a Windows Powered Pocket PC 2003
+ 045b Windows Powered Pocket PC 2003
+ 045c Windows Powered Pocket PC 2003
+ 045d Windows Powered Pocket PC 2003
+ 045e Windows Powered Pocket PC 2003
+ 045f Windows Powered Pocket PC 2003
+ 0460 Windows Powered Pocket PC 2003
+ 0461 Windows Powered Pocket PC 2003
+ 0462 Windows Powered Pocket PC 2003
+ 0463 Windows Powered Pocket PC 2003
+ 0464 Windows Powered Pocket PC 2003
+ 0465 Windows Powered Pocket PC 2003
+ 0466 Windows Powered Pocket PC 2003
+ 0467 Windows Powered Pocket PC 2003
+ 0468 Windows Powered Pocket PC 2003
+ 0469 Windows Powered Pocket PC 2003
+ 046a Windows Powered Pocket PC 2003
+ 046b Windows Powered Pocket PC 2003
+ 046c Windows Powered Pocket PC 2003
+ 046d Windows Powered Pocket PC 2003
+ 046e Windows Powered Pocket PC 2003
+ 046f Windows Powered Pocket PC 2003
+ 0470 Windows Powered Pocket PC 2003
+ 0471 Windows Powered Pocket PC 2003
+ 0472 Windows Powered Pocket PC 2003
+ 0473 Windows Powered Pocket PC 2003
+ 0474 Windows Powered Pocket PC 2003
+ 0475 Windows Powered Pocket PC 2003
+ 0476 Windows Powered Pocket PC 2003
+ 0477 Windows Powered Pocket PC 2003
+ 0478 Windows Powered Pocket PC 2003
+ 0479 Windows Powered Pocket PC 2003
+ 047a Windows Powered Pocket PC 2003
+ 047b Windows Powered Pocket PC 2003
+ 04c8 Windows Powered Smartphone 2002
+ 04c9 Windows Powered Smartphone 2002
+ 04ca Windows Powered Smartphone 2002
+ 04cb Windows Powered Smartphone 2002
+ 04cc Windows Powered Smartphone 2002
+ 04cd Windows Powered Smartphone 2002
+ 04ce Windows Powered Smartphone 2002
+ 04d7 Windows Powered Smartphone 2003
+ 04d8 Windows Powered Smartphone 2003
+ 04d9 Windows Powered Smartphone 2003
+ 04da Windows Powered Smartphone 2003
+ 04db Windows Powered Smartphone 2003
+ 04dc Windows Powered Smartphone 2003
+ 04dd Windows Powered Smartphone 2003
+ 04de Windows Powered Smartphone 2003
+ 04df Windows Powered Smartphone 2003
+ 04e0 Windows Powered Smartphone 2003
+ 04e1 Windows Powered Smartphone 2003
+ 04e2 Windows Powered Smartphone 2003
+ 04e3 Windows Powered Smartphone 2003
+ 04e4 Windows Powered Smartphone 2003
+ 04e5 Windows Powered Smartphone 2003
+ 04e6 Windows Powered Smartphone 2003
+ 04e7 Windows Powered Smartphone 2003
+ 04e8 Windows Powered Smartphone 2003
+ 04e9 Windows Powered Smartphone 2003
+ 04ea Windows Powered Smartphone 2003
+ 0708 Transceiver v 3.0 for Bluetooth
+ 070a Charon Bluetooth Dongle (DFU)
+ 0721 LifeCam NX-3000 (UVC-compliant)
+ 0723 LifeCam VX-7000 (UVC-compliant)
+ 930a ISOUSB.SYS Intel 82930 Isochronous IO Test Board
+ fff8 Keyboard
0460 Ace Cad Enterprise Co., Ltd
0461 Primax Electronics, Ltd
0300 G2-300 Scanner
@@ -641,24 +1716,43 @@
0347 Primascan Colorado 2600u/Visioneer 4400 Scanner
0360 Colorado 19200 Scanner
0361 Colorado 1200u Scanner
+ 0363 VistaScan Astra 3600(ENG)
0364 LG Electronics Scanworks 600U Scanner
+ 0365 VistaScan Astra 3600(ENG)
+ 0366 6400
+ 0367 VistaScan Astra 3600(ENG)
0371 Visioneer Onetouch 8920 Scanner
+ 0374 UMAX Astra 2500
+ 0375 VistaScan Astra 3600(ENG)
0377 Medion MD 5345 Scanner
+ 0378 VistaScan Astra 3600(ENG)
037b Medion MD 6190 Scanner
+ 037c VistaScan Astra 3600(ENG)
0380 G2-600 Scanner
0381 ReadyScan 636i Scanner
0382 G2-600 #2 Scanner
0383 G2E-600 Scanner
+ 038a UMAX Astra 3000/3600
+ 038b Xerox 2400 Onetouch
+ 038c UMAX Astra 4100
+ 0392 Medion/Lifetec/Tevion/Cytron MD 6190
+ 03a8 9420M
0813 IBM UltraPort Camera
0815 Micro Innovations WebCam
0819 Fujifilm IX-30 Camera [webcam mode]
081a Fujifilm IX-30 Camera [storage mode]
081c Elitegroup ECS-C11 Camera
081d Elitegroup ECS-C11 Storage
+ 0a00 Web Cam 320
4d01 Comfort Keyboard
4d02 Mouse-in-a-Box
4d03 Kensington Mouse-in-a-box
4d04 Mouse
+ 4d06 Balless Mouse (HID)
+ 4d2a PoPo Elixir Mouse (HID)
+ 4d2b Wireless Laser Mini Mouse (HID)
+ 4d2c PoPo Mini Pointer Mouse (HID)
+ 4d2e Optical Mobile Mouse (HID)
0463 MGE UPS Systems
0001 UPS
ffff UPS
@@ -668,115 +1762,286 @@
046a Cherry GmbH
0001 My3000 Keyboard
0003 My3000 Hub
+ 0004 CyBoard Keyboard
0005 XX33 SmartCard Reader Keyboard
+ 0010 SmartBoard XX44
0023 Cymotion Master Linux Keyboard
+ 002d SmartTerminal XX44
+ 003e SmartTerminal ST-2xxx
046b American Megatrends, Inc.
+ 0001 Keyboard
+ 0101 PS/2 Keyboard, Mouse & Joystick Ports
+ 0301 USB 1.0 Hub
+ 0500 Serial & Parallel Ports
046c Toshiba Corp., Digital Media Equipment
046d Logitech, Inc.
+ 0082 Acer Aspire 5672 Webcam
+ 0200 WingMan Extreme Joystick
0203 M2452 Keyboard
0301 M4848 Mouse
0401 HP PageScan
0402 NEC PageScan
040f Logitech/Storm PageScan
+ 0430 Mic (Cordless)
0801 QuickCam Home
0810 QuickCam Pro
+ 0820 QuickCam VC
+ 0830 QuickClip
0840 QuickCam Express
0850 QuickCam Web
0870 QuickCam Express
0890 QuickCam Traveler
+ 0892 OrbiCam
+ 0894 CrystalCam
+ 0895 QuickCam for Dell Notebooks
+ 0896 OrbiCam
+ 0897 QuickCam for Dell Notebooks
+ 0899 QuickCam for Dell Notebooks
08a0 QuickCam IM
+ 08a1 QuickCam IM with sound
08a2 Labtec WebCam Pro
+ 08a3 QuickCam QuickCam Chat
+ 08a6 QuickCam IM
+ 08a7 QuickCam Image
+ 08a9 Notebook Deluxe
+ 08aa Labtec Notebooks
+ 08ac QuickCam Cool
+ 08ad QuickCam Communicate STX
+ 08ae Quickcam for Notebooks
+ 08af QuickCam Easy/Cool
08b0 QuickCam 3000 Pro [pwc]
08b1 QuickCam Notebook Pro
08b2 QuickCam Pro 4000
08b3 QuickCam Zoom
08b4 QuickCam Zoom
08b5 QuickCam Sphere
+ 08b9 QuickCam IM
+ 08bd Microphone (Pro 4000)
+ 08c0 QuickCam Pro 3000
+ 08c1 QuickCam Fusion
+ 08c2 QuickCam PTZ
+ 08c3 Camera (Notebooks Pro)
+ 08c5 QuickCam Pro 5000
+ 08c6 QuickCam for DELL Notebooks
+ 08c9 QuickCam Ultra Vision
+ 08ca Mic (Fusion)
+ 08cb Mic (Notebooks Pro)
+ 08cc Mic (PTZ)
08ce QuickCam Pro 5000
- 08d9 QuickCam Connect
+ 08cf QuickCam UpdateMe
+ 08d0 QuickCam Express
+ 08d7 QuickCam Communicate STX
+ 08d8 QuickCam for Notebook Deluxe
+ 08d9 QuickCam IM/Connect
08da QuickCam Messanger
+ 08dd QuickCam for Notebooks
+ 08e0 QuickCam Express
+ 08e1 Labtec WebCam
08f0 QuickCam Messenger
+ 08f1 QuickCam Express
+ 08f2 Microphone (Messenger)
+ 08f3 QuickCam Express
+ 08f4 Labtec WebCam
+ 08f5 QuickCam Messenger Communicate
+ 08f6 Quickcam Messenger Plus
0900 ClickSmart 310
0901 ClickSmart 510
0903 ClickSmart 820
0905 ClickSmart 820
+ 0910 QuickCam Cordless
0920 QuickCam Express
0921 Labtec WebCam
+ 0922 QuickCam Live
0928 Quickcam Express
+ 0929 Labtec WebCam Pro
092a QuickCam for Notebooks
+ 092b Labtec WebCam Plus
092c QuickCam Chat
- 092f QuickCam express Plus
+ 092d QuickCam Express / Go
+ 092e QuickCam Chat
+ 092f QuickCam Express Plus
0950 Pocket Camera
0960 ClickSmart 420
0970 Pocket750
- 0a01 Logitech USB Headset
+ 0990 QuickCam Pro 9000
+ 0991 QuickCam Pro for Notebooks
+ 0992 QuickCam Communicate Deluxe
+ 0994 QuickCam Orbit/Sphere AF
+ 09b0 OrbiCam
+ 09c0 QuickCam for Dell Notebooks Mic
+ 09c1 QuickCam Deluxe for Notebooks
+ 0a01 USB Headset
+ 0a02 Premium Stereo USB Headset 350
+ 0a03 Logitech USB Microphone
+ 0a04 V20 portable speakers (USB powered)
0b02 BT Mini-Receiver (HID proxy mode)
+ 8801 Video Camera
+ b305 BT Mini-Receiver
bfe4 Premium Optical Wheel Mouse
c000 N43 [Pilot Mouse]
c001 N48/M-BB48 [FirstMouse Plus]
c002 M-BA47 [MouseMan Plus]
+ c003 MouseMan
c004 WingMan Gaming Mouse
+ c005 WingMan Gaming Wheel Mouse
c00b MouseMan Wheel
c00c Optical Wheel Mouse
- c00e M-BJ69 Optical Wheel Mouse
- c012 Optical Mouse
- c016 M-UV69a Optical Wheel Mouse
+ c00d MouseMan Wheel+
+ c00e M-BJ58/M-BJ69 Optical Wheel Mouse
+ c00f MouseMan Traveler/Mobile
+ c011 Optical MouseMan
+ c012 Mouseman Dual Optical
+ c014 Corded Workstation Mouse
+ c015 Corded Workstation Mouse
+ c016 M-UV69a/HP M-UV96 Optical Wheel Mouse
+ c018 Optical Wheel Mouse
+ c019 Optical Tilt Wheel Mouse
+ c01a M-BQ85 Optical Wheel Mouse
c01b MX310 Optical Mouse
+ c01c Optical Mouse
c01d MX510 Optical Mouse
c01e MX518 Optical Mouse
+ c024 MX300 Optical Mouse
c025 MX500 Optical Mouse
c030 iFeel Mouse
+ c031 iFeel Mouse+
c032 MouseMan iFeel
+ c033 iFeel MouseMan+
+ c034 MouseMan Optical
+ c035 Mouse
+ c036 Mouse
+ c037 Mouse
+ c038 Mouse
+ c03d M-BT69a Pilot Optical Mouse
c03e Premium Optical Wheel Mouse
c03f UltraX Optical Mouse
+ c040 Corded Tilt-Wheel Mouse
+ c041 G5 Laser Mouse
+ c043 MX320 Laser Mouse
+ c044 LX3 Optical Mouse
+ c045 Optical Mouse
+ c046 RX1000 Laser Mouse
+ c047 Laser Mouse
+ c049 G5 Laser Mouse
+ c050 RX 250 Optical Mouse
+ c051 G3 (MX518) Optical Mouse
+ c053 Laser Mouse
+ c101 UltraX Media Remote
+ c201 WingMan Extreme Joystick with Throttle
c202 WingMan Formula
c207 WingMan Extreme Digital 3D
c208 WingMan Gamepad Extreme
c209 WingMan Gamepad
c20a WingMan RumblePad
+ c20b WingMan Action Pad
c20c WingMan Precision
c20d WingMan Attack 2
+ c20e WingMan Formula GP
c211 iTouch Cordless Reciever
+ c212 WingMan Extreme Digital 3D
+ c213 J-UH16 (Freedom 2.4 Cordless Joystick)
+ c214 ATK3 (Attack III Joystick)
+ c215 Extreme 3D Pro
c216 Dual Action Gamepad
c218 Logitech RumblePad 2 USB
+ c219 Cordless RumblePad 2
+ c21a Precision Gamepad
+ c221 G15 Keyboard / Keyboard
+ c222 G15 Keyboard / LCD
+ c223 G15 Keyboard / USB Hub
c281 WingMan Force
c283 WingMan Force 3D
c285 WingMan Strike Force 3D
+ c286 Force 3D Pro
c291 WingMan Formula Force
c293 WingMan Formula Force GP
+ c294 Driving Force
c295 Momo Force Steering Wheel
+ c298 Driving Force Pro
+ c299 G25 Racing Wheel
c2a0 Wingman Force Feedback Mouse
+ c2a1 WingMan Force Feedback Mouse
+ c301 iTouch Keyboard
+ c302 iTouch Pro Keyboard
c303 iTouch Keyboard
+ c305 Internet Keyboard
+ c307 Internet Keyboard
c308 Internet Navigator Keyboard
c309 Internet Keyboard
+ c30a iTouch Composite
+ c30c Internet Keys (X)
+ c30d Internet Keys
+ c30e UltraX Keys (X)
+ c30f Logicool HID-Compliant Keyboard (106 key)
+ c315 Classic New Touch Keyboard
+ c316 HID-Compliant Keyboard
c401 TrackMan Marble Wheel
c402 Marble Mouse (2-button)
+ c403 Turbo TrackMan Marble FX
c404 TrackMan Wheel
c408 Marble Mouse (4-button)
c501 Cordless Mouse Receiver
+ c502 Cordless Mouse & iTouch Keys
c503 Cordless Mouse+Keyboard Receiver
c504 Cordless Mouse+Keyboard Receiver
c505 Cordless Mouse+Keyboard Receiver
c506 MX-700 Cordless Mouse Receiver
+ c508 Cordless Trackball
+ c509 Cordless Keyboard & Mouse
+ c50a Cordless Mouse
c50b Cordless Desktop Optical
+ c50d Cordless Mouse
c50e MX-1000 Cordless Mouse Receiver
+ c510 Cordless Mouse
+ c512 LX-700 Cordless Desktop Receiver
+ c513 MX3000 Cordless Desktop Receiver
+ c514 Cordless Mouse
c517 LX710 Cordless Desktop Laser
c518 MX610 Laser Cordless Mouse
+ c51a MX Revolution/G7 Cordless Mouse
c521 MX620 Laser Cordless Mouse
+ c625 3Dconnexion Space Pilot 3D Mouse
c626 3DConnexion Space Navigator 3D Mouse
c627 3DConnexion Space Explorer 3D Mouse
+ c702 Cordless Presenter
c703 Elite Keyboard Y-RP20 + Mouse MX900 (Bluetooth)
+ c707 Bluetooth wireless hub
+ c708 Bluetooth wireless hub
c709 BT Mini-Receiver (HCI mode)
+ c70a MX5000 Cordless Desktop
c70b BT Mini-Receiver (HID proxy mode)
c70c BT Mini-Receiver (HID proxy mode)
+ c70d Bluetooth wireless hub
+ c70e MX1000 Bluetooth Laser Mouse
+ c70f Bluetooth wireless hub
+ c712 Bluetooth wireless hub
+ c715 Bluetooth wireless hub
+ c71a Bluetooth wireless hub
+ c71d Bluetooth wireless hub
+ c720 Bluetooth wireless hub
+ ca03 MOMO Racing
ca04 Formula Vibration Feedback Wheel
d001 QuickCam Pro
046e Behavior Tech. Computer Corp.
+ 0100 Keyboard
+ 3001 Mass Storage Device
+ 3002 Mass Storage Device
+ 3003 Mass Storage Device
+ 3005 Mass Storage Device
+ 3008 Mass Storage Device
+ 5250 KeyMaestro Multimedia Keyboard
+ 5273 KeyMaestro Multimedia Keyboard
+ 5308 KeyMaestro Keyboard
+ 5408 KeyMaestro Multimedia Keyboard/Hub
+ 5720 Smart Card Reader
6782 BTC 7932 mouse+keyboard
046f Crystal Semiconductor
0471 Philips
0101 DSS350 Digital Speaker System
0104 DSS330 Digital Speaker System [uda1321]
+ 0105 UDA1321
+ 0160 MP3 Player
+ 0161 MP3 Player
0201 Hub
0222 Creative Nomad Jukebox
0302 PCA645VC WebCam [pwc]
@@ -784,17 +2049,50 @@
0304 Askey VC010 WebCam [pwc]
0307 PCVC675K WebCam [pwc]
0308 PCVC680K WebCam [pwc]
+ 030b PC VGA Camera (Vesta Fun)
030c PCVC690K WebCam [pwc]
0310 PCVC730K WebCam [pwc]
0311 PCVC740K ToUcam Pro [pwc]
0312 PCVC750K WebCam [pwc]
- 0327 WEBc am SPC 6000 NC (WebCam w/ mic)
+ 0314 DMVC 1000K
+ 0316 DMVC 2000K Video Capture
+ 0321 FunCam
+ 0325 SPC 200NC PC Camera
+ 0326 SPC 300NC PC Camera
+ 0327 WebCam SPC 6000 NC (WebCam w/ mic)
+ 0329 ORITE CCD Webcam(PC370R)
+ 0401 Semiconductors CICT Keyboard
+ 0402 PS/2 Mouse on Semiconductors CICT Keyboard
+ 0406 15 inch Detachable Monitor
+ 0407 10 inch Mobile Monitor
0471 Digital Speaker System
0601 OVU1020 IR Dongle (Kbd+Mouse)
+ 0602 ATI Remote Wonder II Input Device
+ 0603 ATI Remote Wonder II Controller
+ 0608 eHome Infrared Receiver
+ 060a TSU9600 Remote Control
+ 060e RF Dongle
+ 0619 TSU9400 Remote Control
+ 0700 Semiconductors CICT Hub
0701 150P1 TFT Display
+ 0809 AVNET Bluetooth Device
0811 JR24 CDRW
+ 0815 eHome Infrared Receiver
+ 0844 SA2111/02 1GB Flash Audio Player
1120 Creative Rhomba MP3 player
+ 1125 Nike psa[128max Player
+ 1137 HDD065 MP3 player
+ 1201 Arima Bluetooth Device
+ 1230 Wireless Adapter 11g
+ 1232 SNU6500 Wireless Adapter
+ 1233 Wireless Adapter Bootloader Download
+ 1236 SNU5600
+ 1237 TalkTalk SNU5630NS/05 Wireless Adapter
+ 1552 ISP 1581 Hi-Speed USB MPEG2 Encoder Reference Kit
1801 Diva MP3 player
+ 200a Wireless Network Adapter
+ 200f 802.11n Wireless Adapter
+ 485d Senselock SenseIV v2.x
0472 Chicony Electronics Co., Ltd
0065 PFU-65 Keyboard
0473 Sanyo Information Business Co., Ltd
@@ -804,49 +2102,147 @@
022f C5 Digital Media Camera (mass storage mode)
0230 C5 Digital Media Camera (PictBridge mode)
0231 C5 Digital Media Camera (PC control mode)
+ 0401 Optical Drive
0701 SCP-4900 Cellphone
+ 071f Usb Com Port Enumerator
0475 Relisys/Teco Information System
+ 0100 NEC Petiscan
+ 0103 Eclipse 1200U/Episode
+ 0210 Scorpio Ultra 3
0476 AESP
0477 Seagate Technology, Inc.
0478 Connectix Corp.
0001 QuickCam
0002 QuickClip
+ 0003 QuickCam Pro
0479 Advanced Peripheral Laboratories
047a Semtech Corp.
+ 0004 ScreenCoder UR7HCTS2-USB
047b Silitek Corp.
+ 0001 Keyboard
0002 Keyboard and Mouse
+ 00f9 SK-1789u Keyboard
0101 BlueTooth Keyboard and Mouse
020b SK-3105 SmartCard Reader
+ 050e Internet Compact Keyboard
+ 1000 Trust Office Scan USB 19200
1002 HP ScanJet 4300c Parallel Port
047c Dell Computer Corp.
047d Kensington
+ 1001 Mouse*in*a*Box
+ 1002 Expert Mouse Pro
1003 Orbit TrackBall
+ 1004 MouseWorks
1005 TurboBall
+ 1006 TurboRing
1009 Orbit TrackBall for Mac
+ 1012 PocketMouse
+ 1013 Mouse*in*a*Box Optical Pro
+ 1014 Expert Mouse Pro Wireless
+ 1015 Expert Mouse
+ 1016 ADB/USB Orbit
+ 1018 Studio Mouse
+ 101d Mouse*in*a*Box Optical Pro
+ 101e Studio Mouse Wireless
101f PocketMouse Pro
1020 Expert Mouse Trackball
+ 1021 Expert Mouse Wireless
+ 1022 Orbit Optical
+ 1023 Pocket Mouse Pro Wireless
+ 1024 PocketMouse
+ 1025 Mouse*in*a*Box Optical Elite Wireless
+ 1026 Pocket Mouse Pro
+ 1027 StudioMouse
+ 1028 StudioMouse Wireless
+ 1029 Mouse*in*a*Box Optical Elite
+ 102a Mouse*in*a*Box Optical
+ 102b PocketMouse
+ 102c Iridio
+ 102d Pilot Optical
+ 102e Pilot Optical Pro
+ 102f Pilot Optical Pro Wireless
+ 104a PilotMouse Mini Retractable
+ 105d PocketMouse Bluetooth
+ 105e Bluetooth EDR Dongle
+ 1061 PocketMouse Grip
+ 1062 PocketMouse Max
+ 1063 PocketMouse Max Wireless
+ 1064 PocketMouse 2.0 Wireless
+ 1065 PocketMouse 2.0
+ 1066 PocketMouse Max Glow
+ 1067 ValueMouse
+ 1068 ValueOpt White
+ 1069 ValueOpt Black
+ 106a PilotMouse Laser Wireless Mini
+ 106b PilotMouse Laser - 3 Button
+ 106c PilotMouse Laser - Gaming
+ 106d PilotMouse Laser - Wired
+ 106e PilotMouse Micro Laser
+ 1070 ValueOpt Travel
+ 1071 ValueOpt RF TX
+ 1072 PocketMouse Colour
+ 1073 PilotMouse Laser - 6 Button
+ 1074 PilotMouse Laser Wireless Mini
+ 1075 SlimBlade Presenter Media Mouse
+ 1076 SlimBlade Media Mouse
+ 1077 SlimBlade Presenter Mouse
+ 1152 Bluetooth EDR Dongle
+ 2002 Optical Elite Wireless
2010 Wireless Presentation Remote
+ 2021 PilotBoard Wireless
+ 2030 PilotBoard Wireless
+ 2034 SlimBlade Media Notebook Set
+ 4003 Gravis Xterminator Digital Gamepad
4005 Gravis Eliminator GamePad Pro
4006 Gravis Eliminator AfterShock
+ 4007 Gravis Xterminator Force
4008 Gravis Destroyer TiltPad
+ 5001 Cabo I Camera
5002 VideoCam CABO II
5003 VideoCam
047e Agere Systems, Inc. (Lucent)
+ 0300 ORiNOCO Card
1001 USS720 Parallel Port
+ 2892 Systems Soft Modem
+ bad1 Lucent 56k Modem
f101 Atlas Modem
047f Plantronics, Inc.
+ 0101 Bulk Driver
+ 0301 Bulk Driver
0ca1 USB DSP v4 Audio Interface
0480 Toshiba America Info. Systems, Inc.
+ 0001 InTouch Module
+ 0004 InTouch Module
+ 0011 InTouch Module
+ 0014 InTouch Module
0481 Zenith Data Systems
0482 Kyocera Corp.
000e FS-1020D Printer
+ 0100 Finecam S3x
+ 0101 Finecam S4
0103 Finecam S5
+ 0105 Finecam L3
+ 0106 Finecam
+ 0107 Digital Camera Device
+ 0108 Digital Camera Device
+ 0203 AH-K3001V
+ 0204 iBurst Terminal
0483 SGS Thomson Microelectronics
+ 0137 BeWAN ADSL USB ST (blue or green)
1307 Cytronix 6in1 card reader
163d Cool Icam Digi-MP3
+ 2015 TouchChip® Fingerprint Reader
2016 Fingerprint Reader
2017 Biometric Smart Card Reader
+ 2018 BioSimKey
+ 2302 Portable Flash Device (PFD)
+ 4810 ISDN adapter
+ 481d BT Digital Access adapter
+ 5000 ST Micro Bluetooth Device
+ 5001 ST Micro Bluetooth Device
+ 7270 ST Micro Serial Bridge
7554 56k SoftModem
+ ff10 Swann ST56 Modem
0484 Specialix
0485 Nokia Monitors
0486 ASUS Computers, Inc.
@@ -855,12 +2251,15 @@
0489 Foxconn / Hon Hai
0502 SmartMedia Card Reader Firmware Loader
0503 SmartMedia Card Reader
+ e000 T-Com TC 300
+ e003 Pirelli DP-L10
048a S-MOS Systems, Inc.
048c Alps Electric Ireland, Ltd
048d Integrated Technology Express, Inc.
048f Eicon Tech.
0490 United Microelectronics Corp.
0491 Capetronic
+ 0003 Taxan Monitor Control
0492 Samsung SemiConductor, Inc.
0493 MAG Technology Co., Ltd
0495 ESS Technology, Inc.
@@ -868,76 +2267,345 @@
0497 Smile International
0498 Capetronic (Kaohsiung) Corp.
0499 Yamaha Corp.
+ 1000 UX256 MIDI I/F
+ 1001 MU1000
+ 1002 MU2000
+ 1003 MU500
+ 1004 UW500
+ 1005 MOTIF6
+ 1006 MOTIF7
+ 1007 MOTIF8
+ 1008 UX96 MIDI I/F
+ 1009 UX16 MIDI I/F
+ 100a EOS BX
+ 100c UC-MX
+ 100d UC-KX
+ 100e S08
+ 100f CLP-150
+ 1010 CLP-170
+ 1011 P-250
+ 1012 TYROS
+ 1013 PF-500
+ 1014 S90
+ 1015 MOTIF-R
+ 1016 MDP-5
+ 1017 CVP-204
+ 1018 CVP-206
+ 1019 CVP-208
+ 101a CVP-210
+ 101b PSR-1100
+ 101c PSR-2100
+ 101d CLP-175
+ 101e PSR-K1
+ 101f EZ-J24
+ 1020 EZ-250i
+ 1021 MOTIF ES 6
+ 1022 MOTIF ES 7
+ 1023 MOTIF ES 8
+ 1024 CVP-301
+ 1025 CVP-303
+ 1026 CVP-305
+ 1027 CVP-307
+ 1028 CVP-309
+ 1029 CVP-309GP
+ 102a PSR-1500
+ 102b PSR-3000
+ 102e ELS-01/01C
+ 1030 PSR-295/293
+ 1031 DGX-205/203
+ 1032 DGX-305
+ 1033 DGX-505
+ 2000 DGP-7
+ 2001 DGP-5
+ 3001 YST-MS55D USB Speaker
+ 4000 NetVolante RTA54i Broadband&ISDN Router
+ 4001 NetVolante RTW65b Broadband Wireless Router
+ 4002 NetVolante RTW65i Broadband&ISDN Wireless Router
+ 4004 NetVolante RTA55i Broadband VoIP Router
+ 5000 CS1D
+ 5001 DSP1D
+ 5002 DME32
+ 5003 DM2000
+ 5004 02R96
+ 5005 ACU16-C
+ 5006 NHB32-C
+ 5007 DM1000
+ 5008 01V96
+ 5009 SPX2000
+ 500a PM5D
+ 500b DME64N
+ 500c DME24N
6001 CRW2200UX Lightspeed 2 External CD-RW Drive
+ 7000 DTX
+ 7010 UB99
049a Gandalf Technologies, Ltd
049b Curtis Computer Products
049c Acer Advanced Labs, Inc.
0002 Keyboard (???)
049d VLSI Technology
049f Compaq Computer Corp.
+ 0002 InkJet Color Printer
0003 iPAQ PocketPC
000e Internet Keyboard
+ 0012 InkJet Color Printer
0018 PA-1/PA-2 MP3 Player
+ 0019 InkJet Color Printer
001a S4 100 Scanner
+ 001e IJ650 Inkjet Printer
+ 001f WL215 Adapter
0021 S200 Scanner
+ 0027 Bluetooth Multiport Module by Compaq
+ 002a 1400P Inkjet Printer
+ 002b A3000
+ 002c Lexmark X125
0032 802.11b Adapter [ipaq h5400]
0033 802.11b Adapter [orinoco]
+ 0036 Bluetooth Multiport Module
0051 KU-0133 Easy Access Interner Keyboard
+ 0076 Wireless LAN MultiPort W200
+ 0080 GPRS Multiport
+ 0086 Bluetooth Device
+ 504a Personal Jukebox PJB100
505a Linux-USB "CDC Subset" Device, or Itsy (experimental)
8511 iPAQ Networking 10/100 Ethernet [pegasus2]
04a0 Digital Equipment Corp.
04a1 SystemSoft Corp.
+ fff0 Telex Composite Device
04a2 FirePower Systems
04a3 Trident Microsystems, Inc.
04a4 Hitachi, Ltd
+ 0004 DVD-CAM DZ-MV100A Camcorder
+ 001e DVDCAM USB HS Interface
04a5 Acer Peripherals Inc. (now BenQ Corp.)
0001 Keyboard
+ 0002 API Ergo K/B
+ 0003 API Generic K/B Mouse
12a6 AcerScan C310U
1a20 Prisa 310U
1a2a Prisa 620U
2022 Prisa 320U/340U
2040 Prisa 620UT
+ 205e ScanPrisa 640BU
2060 Prisa 620U+/640U
207e Prisa 640BU
+ 209e ScanPrisa 640BT
+ 20ae S2W 3000U
20b0 S2W 3300U/4300U
20be Prisa 640BT
20c0 Prisa 1240UT
20de S2W 4300U+
+ 20f8 Benq 5000
20fc Benq 5000
20fe SW2 5300U
+ 2137 Benq 5150/5250
+ 2202 Benq 7400UT
3003 Benq WebCam
3008 Benq 1500
300a Benq 3410
300c Benq 1016
3019 Benq DC C40
+ 4000 P30 Composite Device
+ 6001 Mass Storage Device
+ 6002 Mass Storage Device
+ 6003 ATA/ATAPI Adapter
+ 6004 Mass Storage Device
+ 6005 Mass Storage Device
+ 6006 Mass Storage Device
+ 6007 Mass Storage Device
+ 6008 Mass Storage Device
+ 6009 Mass Storage Device
+ 600a Mass Storage Device
+ 600b Mass Storage Device
+ 600c Mass Storage Device
+ 600d Mass Storage Device
+ 600e Mass Storage Device
+ 600f Mass Storage Device
+ 6010 Mass Storage Device
+ 6011 Mass Storage Device
+ 6012 Mass Storage Device
+ 6013 Mass Storage Device
+ 6014 Mass Storage Device
+ 6015 Mass Storage Device
+ 6125 MP3 Player
+ 6180 MP3 Player
+ 6200 MP3 Player
+ 7500 Hi-Speed Mass Storage Device
+ 9000 AWL300 Wireless Adapter
+ 9001 AWL400 Wireless Adapter
9213 Kbd Hub
04a6 Nokia Display Products
+ 00b9 Audio
+ 0180 Hub Type P
+ 0181 HID Monitor Controls
04a7 Visioneer
+ 0100 StrobePro
+ 0101 Strobe Pro Scanner (1.01)
+ 0102 StrobePro Scanner
0211 OneTouch 7600 Scanner
0221 OneTouch 5300 Scanner
+ 0223 OneTouch 8200
0224 OneTouch 4800 USB/Microtek Scanport 3000
+ 0225 VistaScan Astra 3600(ENG)
0226 OneTouch 5300 USB
+ 0229 OneTouch 7100
+ 022a OneTouch 6600
+ 022c OneTouch 9000/9020
0231 6100 Scanner
0311 6200 EPP/USB Scanner
0321 OneTouch 8100 EPP/USB Scanner
0331 OneTouch 8600 EPP/USB Scanner
+ 0341 6400
+ 0361 VistaScan Astra 3600(ENG)
+ 0362 OneTouch 9320
+ 0371 OneTouch 8700/8920
+ 0380 OneTouch 7700
+ 0382 Photo Port 7700
+ 0390 9650
+ 03a0 Xerox 4800 One Touch
+ 0410 OneTouch Pro 8800/8820
+ 0421 9450 USB
+ 0423 9750 Scanner
+ 0424 Strobe XP 450
+ 0425 Strobe XP 100
+ 0426 Strobe XP 200
+ 0427 Strobe XP 100
+ 0444 OneTouch 7300
+ 0445 CardReader 100
+ 0446 Xerox DocuMate 510
+ 0447 XEROX DocuMate 520
+ 0448 XEROX DocuMate 250
+ 0449 Xerox DocuMate 252
+ 044a Xerox 6400
+ 044c Xerox DocuMate 262
+ 0474 Strobe XP 300
+ 0475 Xerox DocuMate 272
+ 0478 Strobe XP 220
+ 0479 Strobe XP 470
+ 047a 9450
+ 047b 9650
+ 047d 9420
+ 0480 9520
+ 048f Strobe XP 470
+ 0491 Strobe XP 450
+ 0493 9750
+ 0494 Strobe XP 120
+ 0497 Patriot 430
+ 0498 Patriot 680
+ 0499 Patriot 780
+ 049b Strobe XP 100
+ 04a0 7400
04a8 Multivideo Labs, Inc.
+ 0101 Hub
+ 0303 Peripheral Switch
+ 0404 Peripheral Switch
04a9 Canon, Inc.
+ 1005 BJ Printer Hub
+ 1035 PD Printer Storage
+ 1050 BJC-8200
1051 BJC-3000 Color Printer
+ 1052 BJC-6100
+ 1053 BJC-6200
+ 1054 BJC-6500
+ 1055 BJC-85
1056 BJC-2110 Color Printer
+ 1057 LR1
+ 105a BJC-55
105b S600 Printer
+ 105c S400
105d S450 Printer
+ 105e S800
1062 S500 Printer
+ 1063 S4500
1064 S300 Printer
+ 1065 S100
+ 1066 S630
+ 1067 S900
+ 1068 S9000
+ 1069 S820
106a S200 Printer
106b S520 Printer
106d S750 Printer
+ 106e S820D
+ 1070 S530D
1072 I850 Printer
1073 I550 Printer
1074 S330 Printer
+ 1076 i70
+ 1077 i950
+ 107a S830D
+ 107b i320
+ 107c i470D
+ 107d i9100
+ 107e i450
+ 107f i860
+ 1082 i350
+ 1084 i250
+ 1085 i255
+ 1086 i560
+ 1088 i965
+ 108a i455
+ 108b i900D
+ 108c i475D
+ 108d PIXMA iP2000
+ 108f i80
1090 i9900 Photo Printer
+ 1091 PIXMA iP1500
+ 1093 PIXMA iP4000
1094 PIXMA iP3000x Printer
+ 1095 PIXMA iP6000D
+ 1097 PIXMA iP5000
+ 1098 PIXMA iP1000
+ 1099 PIXMA iP8500
+ 109c PIXMA iP4000R
+ 109d iP90
+ 10a0 PIXMA iP1600 Printer
+ 10a2 iP4200
+ 10a4 iP5200R
+ 10a5 iP5200
+ 10a7 iP6210D
+ 10a8 iP6220D
+ 10a9 iP6600D
10b6 PIXMA iP4300 Printer
+ 1404 W6400PG
+ 1405 W8400PG
+ 150f BIJ2350 PCL
+ 1510 BIJ1350 PCL
+ 1512 BIJ1350D PCL
+ 1601 DR-2080C Scanner
+ 1607 DR-6080 Scanner
+ 1700 PIXMA MP110 Scanner
+ 1701 PIXMA MP130 Scanner
+ 1702 MP410 Composite
+ 1703 MP430 Composite
+ 1704 MP330 Composite
+ 1706 PIXMA MP750 Scanner
+ 1707 PIXMA MP780 Scanner
+ 1708 PIXMA MP760 Scanner
+ 1709 PIXMA MP150 Scanner
+ 170a PIXMA MP170 Scanner
+ 170b PIXMA MP450 Scanner
+ 170c PIXMA MP500 Scanner
+ 170d PIXMA MP800 Scanner
+ 170e MP800R
+ 1710 MP950
+ 1712 MP530
+ 1713 PIXMA MP830 Scanner
+ 1714 MP160
+ 1715 MP180 Storage
+ 1716 MP460 Composite
+ 1717 MP510
+ 1718 MP600 Storage
+ 171a MP810 Storage
+ 171b MP960
+ 1721 MP210 ser
+ 1723 MP470 ser
+ 1725 MP610 ser
+ 1726 MP970 ser
+ 1727 MX300 ser
+ 1728 MX310 ser
+ 1729 MX700 ser
+ 172b MP140 ser
+ 2200 CanoScan LiDE 25
2201 CanoScan FB320U
2202 CanoScan FB620U
2204 CanoScan FB630U
@@ -953,14 +2621,100 @@
220f CanoScan 8000F
2210 CanoScan 9900F
2212 CanoScan 5000F
- 2213 LiDE 50/LiDE 35
+ 2213 CanoScan LiDE 50/LiDE 35/LiDE 40
+ 2214 CanoScan LiDE 80
2215 CanoScan 3000/3000F/3000ex
2216 CanoScan 3200F
2217 CanoScan 5200F
+ 2219 CanoScan 9950F
+ 221b CanoScan 4200F
+ 221c CanoScan LiDE 60
221e CanoScan 8400F
+ 221f CanoScan LiDE 500F
+ 2220 CanoScan LIDE 25
2225 CanoScan LiDE 70
+ 2228 CanoScan 4400F
+ 2602 MultiPASS C555
+ 2603 MultiPASS C755
+ 260a CAPT Printer
+ 260e LBP-2000
+ 2610 MPC600F
2611 SmartBase MPC400
+ 2612 MultiPASS C855
+ 2617 CAPT Printer
+ 261a iR1600
+ 261b iR1610
+ 261c iC2300
+ 261f MPC200 Printer
+ 2621 iR2000
+ 2622 iR2010
+ 2623 FAX-B180C
+ 2629 FAXPHONE L75
262b LaserShot LBP-1120 Printer
+ 262d iR C3200
+ 262f MultiPASS MP730
+ 2630 MultiPASS MP700
+ 2631 LASER CLASS 700
+ 2632 FAX-L2000
+ 2635 MPC190
+ 2637 iR C6800
+ 2638 iR C3100
+ 263c Smartbase MP360
+ 263d MP370
+ 263e MP390 FAX
+ 263f MP375
+ 2646 MF5530 Scanner Device V1.9.1
+ 2647 MF5550 Composite
+ 264e MF5630
+ 264f MF5650 (FAX)
+ 2650 iR 6800C EUR
+ 2651 iR 3100C EUR
+ 2655 FP-L170/MF350/L380/L398
+ 2659 MF8100
+ 265b CAPT Printer
+ 265c iR C3220
+ 265d MF5730
+ 265e MF5750
+ 265f MF5770
+ 2660 MF3110
+ 2663 iR3570/iR4570
+ 2664 iR2270/iR2870
+ 2665 iR C2620
+ 2666 iR C5800
+ 2667 iR85PLUS
+ 2669 iR105PLUS
+ 266a CAPT Device
+ 266b iR8070
+ 266c iR9070
+ 266d iR 5800C EUR
+ 266e CAPT Device
+ 266f iR2230
+ 2670 iR3530
+ 2671 iR5570/iR6570
+ 2672 iR C3170
+ 2673 iR 3170C EUR
+ 2674 L120
+ 2675 iR2830
+ 2676 CAPT Device
+ 2677 iR C2570
+ 2678 iR 2570C EUR
+ 2679 CAPT Device
+ 267a iR2016
+ 267b iR2020
+ 267d MF7100 Series
+ 2684 MF3200 Series
+ 2686 MF6500 Series
+ 2687 iR4530
+ 2688 LBP3460
+ 268c iR C6870
+ 268d iR 6870C EUR
+ 268e iR C5870
+ 268f iR 5870C EUR
+ 2691 iR7105
+ 26a3 MF4100 Series
+ 26b0 MF4600 Series
+ 26b4 MF4010 Series
+ 26b5 MF4200 Series
3041 PowerShot S10
3042 CanoScan FS4000US Film Scanner
3043 PowerShot S20
@@ -970,6 +2724,7 @@
3047 Digital IXUS
3048 PowerShot G1
3049 PowerShot Pro90 IS
+ 304a CP-10
304b IXY Digital 300
304c PowerShot S300
304d Digital IXUS 300
@@ -988,6 +2743,7 @@
3060 EOS D60
3061 PowerShot A100
3062 PowerShot A200
+ 3063 CP-100
3065 PowerShot S200
3066 Digital IXUS 330
3067 MV550i Digital Video Camera
@@ -1008,8 +2764,9 @@
3077 PowerShot S50
3078 ZR70MC Digital Camcorder
307a MV650i (normal mode)
- 307b MV630i Difital Video Camera
+ 307b MV630i Digital Video Camera
307c MV630i (normal mode)
+ 307d CP-300
307f Optura 20
3080 MVX150i (normal mode) / Optura 20 (normal mode)
3081 Optura 10
@@ -1027,6 +2784,11 @@
309a PowerShot A80
309b Digital IXUS (ptp)
309c PowerShot S1 IS
+ 309d Camera
+ 309f Camera
+ 30a0 Camera
+ 30a1 Camera
+ 30a2 Camera
30a8 Elura 60E/Optura 40 (ptp)
30a9 MVX25i (normal mode) / Optura 40 (normal mode)
30b1 PowerShot S70 (normal mode) / PowerShot S70 (PTP mode)
@@ -1040,6 +2802,8 @@
30b9 Powershot A85
30ba PowerShot S410 Digital Elph
30bb PowerShot A95
+ 30bd CP-220
+ 30be CP-330
30bf Digital IXUS 40
30c0 Digital IXUS 30 (PTP mode) / PowerShot SD200 (PTP mode)
30c1 Digital IXUS 50 (normal mode) / IXY Digital 55 (normal mode) / PowerShot A520 (PTP mode) / PowerShot SD400 (normal mode)
@@ -1052,19 +2816,27 @@
30ef EOS 350D (ptp)
30f0 PowerShot S2 IS (PTP mode)
30f2 Digital IXUS 700 (normal mode) / Digital IXUS 700 (PTP mode) / IXY Digital 600 (normal mode) / PowerShot SD500 (normal mode) / PowerShot SD500 (PTP mode)
+ 30f6 SELPHY CP400
+ 30f8 Powershot A430
30f9 PowerShot A410 (PTP mode)
30fc PowerShot A620 (PTP mode)
30fd PowerShot A610 (normal mode)/PowerShot A610 (PTP mode)
+ 30fe Digital IXUS 65 (PTP mode)/PowerShot SD630 (PTP mode)
30ff Digital IXUS 55 (PTP mode)/PowerShot SD450 (PTP mode)
+ 310b SELPHY CP600
310e Digital IXUS 50 (PTP mode)
3116 Digital IXUS 750 (PTP mode)
3117 PowerShot A700
3138 PowerShot A710 IS
+ 315a PowerShot G9
+ 315d PowerShot A720
+ 3176 PowerShot A590
31ff Digital IXUS 55
04aa DaeWoo Telecom, Ltd
04ab Chromatic Research
04ac Micro Audiometrics Corp.
04ad Dooin Electronics
+ 2501 Bluetooth Device
04af Winnov L.P.
04b0 Nikon Corp.
0102 Coolpix 990
@@ -1097,9 +2869,12 @@
012e Coolpix 5600 (ptp)
0130 Coolpix 4600 (ptp)
0135 Coolpix 5900 (ptp)
- 0142 Coolpix P2 (ptp)
0136 Coolpix 7900 (storage)
0137 Coolpix 7900 (ptp)
+ 0141 Coolpix P2 (storage)
+ 0142 Coolpix P2 (ptp)
+ 0163 Coolpix P5100 (ptp)
+ 0169 Coolpix P50 (ptp)
0202 Coolpix SQ (ptp)
0203 Coolpix 4200 (mass storage mode)
0204 Coolpix 4200 (ptp)
@@ -1119,19 +2894,28 @@
040e DSC D70s (ptp)
0413 D40 (mass storage mode)
4000 Coolscan LS 40 ED
+ 4001 LS 50 ED/Coolscan V ED
+ 4002 Super Coolscan LS-5000 ED
04b1 Pan International
04b3 IBM Corp.
+ 3003 Rapid Access III Keyboard
3004 Media Access Pro Keyboard
+ 300a Rapid Access IIIe Keyboard
3016 UltraNav Keyboard Hub
3018 UltraNav Keyboard
301b SK-8815 Keyboard
+ 301c Enhanced Performance Keyboard
+ 3020 Enhanced Performance Keyboard
3100 NetVista Mouse
3103 ScrollPoint Pro Mouse
+ 3104 ScrollPoint Wireless Mouse
+ 3105 ScrollPoint Optical (HID)
3107 ThinkPad 800dpi Optical Travel Mouse
3108 800dpi Optical Mouse w/ Scroll Point
3109 Optical ScrollPoint Pro Mouse
310b Red Wheel Mouse
4427 Portable CD ROM
+ 4482 Serial Converter
4525 Double sided CRT
4550 NVRAM (128 KB)
4554 Cash Drawer
@@ -1143,12 +2927,23 @@
0000 Dacal DC-101 CD Library
0001 Mouse
0002 CY7C63x0x Thermometer
+ 0101 Keyboard/Hub
+ 0102 Keyboard with APM
+ 0130 MyIRC Remote Receiver
+ 0bad MetaGeek Wi-Spy
1002 CY7C63001 R100 FM Radio
+ 1006 Human Interface Device
+ 4381 SCAPS USC-1 Scanner Controller
+ 4611 Storage Adapter FX2 (CY)
+ 4616 Flash Disk (TPP)
5500 HID->COM RS232 Adapter
+ 6370 ViewMate Desktop Mouse CC2201
6560 CY7C65640 USB-2.0 "TetraHub"
- 6830 USB-2.0 IDE Adapter
+ 6830 CY7C68300A EZ-USB AT2 USB 2.0 to ATA/ATAPI
+ 6831 Storage Adapter ISD-300LP (CY)
7417 Wireless PC Lock
8613 CY7C68013 EZ-USB FX2 USB 2.0 Development Kit
+ 8614 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
cc04 Centor USB RACIA-ALVAR USB PORT
cc06 Centor-P RACIA-ALVAR USB PORT
d5d5 CY7C63x0x Zoltrix Z-Boxer GamePad
@@ -1160,7 +2955,10 @@
0001 Stylus Color 740 / Photo 750
0002 ISD Smart Cable for Mac
0003 ISD Smart Cable
- 0005 Stylus Printer
+ 0004 Printer
+ 0005 Stylus D88+
+ 0006 Printer
+ 0007 Printer
0101 Perfection 636
0102 GT-2200
0103 Perfection 610
@@ -1177,52 +2975,195 @@
0110 Perfection 1650
0112 Perfection 2450
0114 Perfection 660
+ 0116 Perfection 3170 (GT-9400)
+ 0118 Perfection 4180 (GF-F600)
0119 Perfection 4490 Photo
+ 011a 1000 ICS
011b Perfection 2400 Photo
011c Perfection 3200
011d Perfection 1260 Photo
011e Perfection 1660 Photo
011f Perfection 1670
+ 0120 Perfection 1270 scanner
0121 Perfection 2480 Photo
+ 0122 Perfection 3590 scanner
+ 0126 GT-15000 (ES-7000)
+ 0128 Perfection 4870 (GT-X700)
+ 0129 Expression 10000XL (ES-10000G)
+ 012a Perfection 4990 Photo scanner
+ 012b GT-2500 (ES-H300)
+ 012c Perfection V350 (GT-F700)
+ 012d Perfection V10/V100 (GT-S600/F650)
+ 012f Perfection V350 (GT-F700)
0202 Receipt Printer M129C
+ 0401 CP 800 Digital Camera
0402 PhotoPC 850z
0403 PhotoPC 3000z
+ 0509 JVC PIX-MC10
0601 Stylus Photo 875DC Card Reader
0602 Stylus Photo 895 Card Reader
- 0801 Stylus CX5200
+ 0801 Stylus CX5200/CX5400/CX6600
0802 Stylus CX3200
+ 0803 Printer (Composite Device)
+ 0804 Storage Device
+ 0805 Stylus CX6400
+ 0806 Stylus Photo RX600/610
+ 0807 Stylus Photo RX500/510
+ 0808 Stylus CX5200
+ 0809 Storage Device
+ 080a Storage Device
080c ME100
+ 080d Stylus CX4500/4600
+ 080e CX-3500/3600/3650 MFP
+ 080f Stylus Photo RX425 scanner
+ 0810 Stylus Photo RX700 (PM-A900)
0811 Stylus Photo RX620 all-in-one
+ 0812 MFP Composite Device
+ 0813 Stylus CX6500/6600
+ 0814 (PM-A700)
+ 0815 AcuLaser CX11 (LP-A500)
+ 0816 Printer (Composite Device)
+ 0817 (LP-M5500)
+ 0818 Stylus CX3700/CX3800/DX3800
+ 0819 Stylus CX4700/CX4800/DX4800 (PX-A750)
+ 081a Stylus Photo RX520/RX530 (PM-A750)
+ 081b MFP Composite Device
+ 081c Stylus Photo RX640/RX650 (PM-A890)
+ 081d (PM-A950)
+ 081e MFP Composite Device
+ 081f Stylus CX7700/7800
+ 0820 CX4200 MP scanner
+ 0821 MFP Composite Device
+ 0822 Storage Device
+ 0823 MFP Composite Device
+ 0824 Storage Device
+ 0825 MFP Composite Device
+ 0826 Storage Device
+ 0827 Stylus Photo RX560/580/590 (PM-A820)
+ 0828 (PM-A970)
+ 0829 (PM-T990)
+ 082a (PM-A920)
+ 082b Stylus DX5050
+ 082c Storage Device
+ 082d Storage Device
+ 082e 0x082e DX-60x0 MFP scanner
+ 082f Stylus DX4050
+ 0830 Stylus CX2800/CX2900/ME200
+ 0831 MFP Composite Device
+ 0832 MFP Composite Device
+ 0833 (LP-M5600)
+ 0834 MFP Composite Device
+ 0835 AcuLaser CX21
+ 0836 MFP Composite Device
+ 0837 MFP Composite Device
+ 0838 CX7300/CX7400/DX7400
+ 0839 CX8300/CX8400/DX8400
+ 083a CX9300F/CX9400Fax/DX9400F
+ 083b MFP Composite Device
+ 083c MFP Composite Device
+ 083d MFP Composite Device
+ 083e MFP Composite Device
+ 083f Stylus DX4450
04b9 Rainbow Technologies, Inc.
0300 SafeNet USB SuperPro/UltraPro
1000 iKey 1000 Token
1001 iKey 1200 Token
+ 1002 iKey Token
+ 1003 iKey Token
+ 1004 iKey Token
+ 1005 iKey Token
+ 1006 iKey Token
1200 iKey 2000 Token
+ 1201 iKey Token
1202 iKey 2032 Token
+ 1203 iKey Token
+ 1204 iKey Token
+ 1205 iKey Token
+ 1206 iKey Token
1300 iKey 3000 Token
+ 1301 iKey 3000
+ 1302 iKey Token
+ 1303 iKey Token
+ 1304 iKey Token
+ 1305 iKey Token
+ 1306 iKey Token
04ba Toucan Systems, Ltd
04bb I-O Data Device, Inc.
+ 0101 USB2-IDE/ATAPI Bridge Adapter
+ 0201 USB2-IDE/ATAPI Bridge Adapter
+ 0204 DVD Multi-plus unit iU-CD2
+ 0206 DVD Multi-plus unit DVR-UEH8
+ 0301 Storage Device
+ 0314 USB-SSMRW SD-card
+ 0319 USB2-IDE/ATAPI Bridge Adapter
+ 031a USB2-IDE/ATAPI Bridge Adapter
+ 031b USB2-IDE/ATAPI Bridge Adapter
+ 031e USB-SDRW SD-card
+ 0502 Nogatech Live! (BT)
+ 0901 USB ETT
0904 ET/TX Ethernet [pegasus]
0913 ET/TX-S Ethernet [pegasus2]
+ 0919 USB WN-B11
0922 IOData AirPort WN-B11/USBS 802.11b
+ 0930 ETG-US2
+ 0937 WN-WAG/USL Wireless LAN Adapter
+ 0938 WN-G54/USL Wireless LAN Adapter
+ 0a03 Serial USB-RSAQ1
+ 0a07 USB2-iCN Adapter
+ 0a08 USB2-iCN Adapter
+ 0c01 FM-10 Pro Disk
04bd Toshiba Electronics Taiwan Corp.
04be Telia Research AB
04bf TDK Corp.
0100 MediaReader CF
+ 0115 USB-PDC Adapter UPA9664
+ 0116 USB-cdmaOne Adapter UCA1464
+ 0117 USB-PHS Adapter UHA6400
+ 0118 USB-PHS Adapter UPA6400
+ 0135 MediaReader Dual
+ 0202 73S1121F Smart Card Reader-
+ 0309 Bluetooth USB dongle
+ 030a IBM Bluetooth Ultraport Module
+ 030b Bluetooth Device
+ 030c Ultraport Bluetooth Device
+ 0310 Integrated Bluetooth
+ 0311 Integrated Bluetooth Device
+ 0317 Bluetooth UltraPort Module from IBM
+ 0318 IBM Integrated Bluetooth
+ 0319 Bluetooth Adapter
0320 Bluetooth Adapter
+ 0321 Bluetooth Device
+ 0a28 INDI AV-IN Device
04c1 U.S. Robotics (3Com)
+ 0020 56K Voice Pro
+ 0022 56K Voice Pro
+ 007e ISDN TA
0082 OfficeConnect Analog Modem
008f Pro ISDN TA
+ 0097 OfficeConnect Analog
009d HomeConnect WebCam [vicam]
+ 00a9 ISDN Pro TA-U
+ 00b9 HomeConnect IDSL Modem
3021 56k Voice FaxModem Pro
04c2 Methode Electronics Far East PTE, Ltd
04c3 Maxi Switch, Inc.
+ 1102 Mouse
+ 2102 Mouse
04c4 Lockheed Martin Energy Research
04c5 Fujitsu, Ltd
1029 fi-4010c Scanner
+ 1033 fi-4110CU
1041 fi-4120c Scanner
1042 fi-4220c Scanner
+ 105b AH-F401U Air H device
+ 1096 fi-5110EOX
+ 1097 fi-5110C
+ 10ae fi-4120C2
+ 10af fi-4220C2
10e0 fi-5120c Scanner
+ 10e1 fi-5220C
+ 10e7 fi-5900C
+ 10fe S500
04c6 Toshiba America Electronic Components
04c7 Micro Macro Technologies
04c8 Konica Corp.
@@ -1231,35 +3172,92 @@
0722 e-mini
0723 KD-200Z Camera
0726 KD-310Z Camera
+ 0728 Revio C2 Mass Storage Device
+ 0729 Revio C2 Digital Camera
072c Revio KD20M
072d Revio KD410Z
04ca Lite-On Technology Corp.
+ 1766 HID Monitor Controls
+ 9304 Hub
04cb Fuji Photo Film Co., Ltd
- 0100 FinePix 1300 / 1400 / 4700 Zoom digital camera
- 0103 FinePix NX-700 printer
- 0104 FinePix A101/2600 Zoom (PC-Cam Mode)
- 0108 FinePix F601 Zoom (Disk mode)
- 0109 FinePix F601 Zoom (PC-Cam mode)
- 010a FinePix S602 Zoom (Disk mode)
- 010b FinePix S602 Zoom (PC-Cam mode)
- 0110 FinePix M603 (mass storage mode)
- 0114 FinePix F401 Zoom (Disk mode)
- 0115 FinePix F401 Zoom (PC-Cam mode)
- 0116 FinePix A203 (Disk mode)
- 0117 FinePix A203 (PC-Cam mode)
- 011a FinePix S304/3800 (Disk mode)
- 011b FinePix S304/3800 (PC-Cam mode)
- 011c FinePix 2650 (Disk mode)
- 012c FinePix S7000 Zoom (Disk mode)
- 012d FinePix S7000 Zoom (PC-Cam mode)
- 0130 Finepix S5000 Camera (Disk mode)
- 0131 Finepix S5000 Camera (PC-Cam mode)
- 0142 FinePix S7000 Zoom (PTP mode)/(PictBridge mode) / FinePix A330 (PictBridge mode)
- 0148 FinePix A330 (mass storage mode)
- 0168 FinePix E500
- 0177 Finepix F10 Camera (Disk mode)
- 0179 Finepix F10 Camera (PTP mode)
- 0192 FinePix E900
+ 0100 FinePix 30i/40i/50i, A101/201, 1300/2200, 1400/2400/2600/2800/4500/4700/4800/4900/6800/6900 Zoom
+ 0103 FinePix NX-500/NX-700 printer
+ 0104 FinePix A101, 2600/2800/4800/6800 Zoom (PC CAM)
+ 0108 FinePix F601 Zoom (DSC)
+ 0109 FinePix F601 Zoom (PC CAM)
+ 010a FinePix S602 (Pro) Zoom (DSC)
+ 010b FinePix S602 (Pro) Zoom (PC CAM)
+ 010d FinePix Digital Camera 020531
+ 010e FinePix F402 Zoom (DSC)
+ 010f FinePix F402 Zoom (PC CAM)
+ 0110 FinePix M603 Zoom (DSC)
+ 0111 FinePix M603 Zoom (PC CAM)
+ 0112 FinePix A202, A200 Zoom (DSC)
+ 0113 FinePix A202, A200 Zoom (PC CAM)
+ 0114 FinePix F401 Zoom (DSC)
+ 0115 FinePix F401 Zoom (PC CAM)
+ 0116 FinePix A203 Zoom (DSC)
+ 0117 FinePix A203 Zoom (PC CAM)
+ 0118 FinePix A303 Zoom (DSC)
+ 0119 FinePix A303 Zoom (PC CAM)
+ 011a FinePix S304/3800 Zoom (DSC)
+ 011b FinePix S304/3800 Zoom (PC CAM)
+ 011c FinePix A204/2650 Zoom (DSC)
+ 011d FinePix A204/2650 Zoom (PC CAM)
+ 0120 FinePix F700 Zoom (DSC)
+ 0121 FinePix F700 Zoom (PC CAM)
+ 0122 FinePix F410 Zoom (DSC)
+ 0123 FinePix F410 Zoom (PC CAM)
+ 0124 FinePix A310 Zoom (DSC)
+ 0125 FinePix A310 Zoom (PC CAM)
+ 0126 FinePix A210 Zoom (DSC)
+ 0127 FinePix A210 Zoom (PC CAM)
+ 0128 FinePix A205(S) Zoom (DSC)
+ 0129 FinePix A205(S) Zoom (PC CAM)
+ 012a FinePix F610 Zoom (DSC)
+ 012b FinePix Digital Camera 030513
+ 012c FinePix S7000 Zoom (DSC)
+ 012d FinePix S7000 Zoom (PC CAM)
+ 012f FinePix Digital Camera 030731
+ 0130 FinePix S5000 Zoom (DSC)
+ 0131 FinePix S5000 Zoom (PC CAM)
+ 013b FinePix Digital Camera 030722
+ 013c FinePix S3000 Zoom (DSC)
+ 013d FinePix S3000 Zoom (PC CAM)
+ 013e FinePix F420 Zoom (DSC)
+ 013f FinePix F420 Zoom (PC CAM)
+ 0142 FinePix S7000 Zoom (PTP)
+ 0148 FinePix A330 Zoom (DSC)
+ 0149 FinePix A330 Zoom (UVC)
+ 014a FinePix A330 Zoom (PTP)
+ 014b FinePix A340 Zoom (DSC)
+ 0159 FinePix F710 Zoom (DSC)
+ 0165 FinePix S3500 Zoom (DSC)
+ 0168 FinePix E500 Zoom (DSC)
+ 0169 FinePix E500 Zoom (UVC)
+ 016b FinePix E510 Zoom (DSC)
+ 016c FinePix E510 Zoom (PC CAM)
+ 016e FinePix S5500 Zoom (DSC)
+ 016f FinePix S5500 Zoom (UVC)
+ 0171 FinePix E550 Zoom (DSC)
+ 0172 FinePix E550 Zoom (PTP)
+ 0177 FinePix F10 (DSC)
+ 0179 Finepix F10 (PTP)
+ 0186 FinePix S5200/S5600 Zoom (DSC)
+ 0188 FinePix S5200/S5600 Zoom (PTP)
+ 018e FinePix S9500 Zoom (DSC)
+ 018f FinePix S9500 Zoom (PTP)
+ 0192 FinePix E900 Zoom (DSC)
+ 0193 FinePix E900 Zoom (PTP)
+ 019b FinePix F30 (PTP)
+ 01bf FinePix F6000fd/S6500fd Zoom (PTP)
+ 01c0 FinePix F20 (PTP)
+ 01c1 FinePix F31fd (PTP)
+ 01c4 FinePix S5700 Zoom (PTP)
+ 01c5 FinePix F40fd (PTP)
+ 01c6 FinePix A820 Zoom (PTP)
+ 01d2 FinePix A800 Zoom (PTP)
+ 01d5 FinePix F47 (PTP)
04cc Philips Semiconductors
1122 Hub
1521 USB 2.0 Hub
@@ -1267,29 +3265,86 @@
04cd Tatung Co. Of America
04ce ScanLogic Corp.
0002 SL11R-IDE IDE Bridge
+ 0100 USB2PRN Printer Class
+ 0300 Phantom 336CX - C3 scanner
+ 04ce SL11DEMO, VID: 0x4ce, PID: 0x4ce
+ 07d1 SL11R, VID: 0x4ce, PID: 0x07D1
04cf Myson Century, Inc.
- 8818 USB2.0 to ATAPI Bridge Controller
+ 0800 MTP800 Mass Storage Device
+ 8810 CS8810 Mass Storage Device
+ 8811 CS8811 Mass Storage Device
+ 8813 CS8813 Mass Storage Device
+ 8818 USB2.0 to ATAPI Bridge Controller
04d0 Digi International
04d1 ITT Canon
04d2 Altec Lansing Technologies
+ 0070 ADA70 Speakers
+ 0305 Non-Compliant Audio Device
0311 ADA-310 Speakers
+ 2060 Claritel-i750 - vp
ff05 ADA-305 Speakers
+ ff47 Lansing HID Audio Controls
+ ff49 Lansing HID Audio Controls
04d3 VidUS, Inc.
04d4 LSI Logic, Inc.
04d5 Forte Technologies, Inc.
04d6 Mentor Graphics
04d7 Oki Semiconductor
+ 1be4 Bluetooth Device
04d8 Microchip Technology, Inc.
+ 0002 USB-LCD 2x20
8000 In-Circuit Debugger
+ 8001 ICD2 in-circuit debugger
04d9 Holtek Semiconductor, Inc.
+ 1203 MC Industries Keyboard
04da Panasonic (Matsushita)
+ 0901 LS-120 Camera
+ 0b01 CD-R/RW Drive
+ 0b03 SuperDisk 240MB
+ 0d01 CD-R Drive KXL-840AN
+ 0d09 CD-R Drive KXL-RW32AN
+ 0d0a CD-R Drive KXL-CB20AN
+ 0d0d CDRCB03
+ 0d0e DVD-ROM & CD-R/RW
+ 0f40 Printer
+ 1500 MFSUSB Driver
+ 1b00 MultiMediaCard
2121 EB-VS6
+ 2317 DVC USB-SERIAL Driver for WinXP
2319 NV-GS15 (webcam mode)
+ 231d DVC Web Camera Device
+ 231e DVC DV Stream Device
2372 Lumix DMC-FZ10 Camera
2374 DMC-FZ20
04db Hypertec Pty, Ltd
04dc Huan Hsin Holdings, Ltd
04dd Sharp Corp.
+ 13a6 MFC2000
+ 6006 AL-1216
+ 6007 AL-1045
+ 6008 AL-1255
+ 6009 AL-1530CS
+ 600a AL-1540CS
+ 600b AL-1456
+ 600c AL-1555
+ 600d AL-1225
+ 600e AL-1551CS
+ 600f AR-122E
+ 6010 AR-152E
+ 6011 AR-157E
+ 6012 SN-1045
+ 6013 SN-1255
+ 6014 SN-1456
+ 6015 SN-1555
+ 6016 AR-153E
+ 6017 AR-122E N
+ 6018 AR-153E N
+ 6019 AR-152E N
+ 601a AR-157E N
+ 601b AL-1217
+ 601c AL-1226
+ 601d AR-123E
+ 7002 DVC Ver.1.0
7004 VE-CG40U Digital Still Camera
7005 VE-CG30 Digital Still Camera
7007 VL-Z7S Digital Camcorder
@@ -1300,9 +3355,18 @@
9014 IM-DR80 Portable NetMD Player
9031 Zaurus C-750/C-760/C-860/SL-C3000 PDA
9032 Zaurus SL-6000
+ 903a GSM GPRS
9050 Zaurus C-860 PDA
9056 Viewcam Z
+ 9073 AM-900
+ 9074 GSM GPRS
+ 90a9 Sharp Composite
+ 90d0 USB-to-Serial Comm. Port
90f2 Sharp 3G GSM USB Control
+ 9120 WS004SH
+ 9122 WS007SH
+ 9123 W-ZERO3 ES Smartphone
+ 91a3 922SH Internet Machine
04de MindShare, Inc.
04df Interlink Electronics
04e1 Iiyama North America, Inc.
@@ -1318,30 +3382,191 @@
0005 eUSB SmartMedia/CompactFlash Card Reader
0006 eUSB SmartMedia Card Reader
0007 Hifd
+ 0009 eUSB ATA/ATAPI Adapter
+ 000a eUSB CompactFlash Adapter
+ 000b eUSCSI Bridge
+ 000c eUSCSI Bridge
+ 000d Dazzle MS
+ 0012 Dazzle SD/MMC
0101 eUSB ATA Bridge
+ 0311 Dazzle DM-CF
+ 0312 Dazzle DM-SD/MMC
+ 0313 Dazzle SM
+ 0314 Dazzle MS
+ 0322 e-Film Reader-5
0325 eUSB ORCA Quad Reader
+ 0327 Digital Media Reader
+ 03fe DMHS2 DFU Adapter
+ 0406 eUSB SmartDM Reader
+ 04e6 eUSB DFU Adapter
+ 04e7 STCII DFU Adapter
+ 04e8 eUSBDM DFU Adapter
+ 04e9 DM-E DFU Adapter
0500 Veridicom 5thSense Fingerprint Sensor and eUSB SmartCard
+ 0701 DCS200 Loader Device
+ 0702 DVD Creation Station 200
+ 0703 DVC100 Loader Device
+ 0704 Digital Video Creator 100
+ 1001 SCR300 Smart Card Reader
1010 USBAT-2 CompactFlash Card Reader
+ 1014 e-Film Reader-3
+ 1020 USBAT ATA/ATAPI Adapter
+ 2007 RSA SecurID ComboReader
+ 2009 Citibank Smart Card Reader
+ 200a Reflex v.2 Smart Card Reader
+ 200d STR391 Reader
5111 SCR331-DI SmartCard Reader
5113 SCR333 SmartCard Reader
+ 5114 SCR331-DI SmartCard Reader
5115 SCR335 SmartCard Reader
5116 SCR331-LC1 SmartCard Reader
+ 5117 SCR3320 - Smart Card Reader
+ 5118 Expresscard SIM Card Reader
+ 5119 SCR3340 - ExpressCard54 Smart Card Reader
+ 511b SmartCard Reader
+ 511d SCR3311 Smart Card Reader
+ 5120 SCR331-DI SmartCard Reader
+ 5121 SDI010 Smart Card Reader
+ 5151 SCR338 Keyboard Smart Card Reader
+ 5410 SCR35xx Smart Card Reader
+ e000 SCRx31 Reader
e001 SCR331 SmartCard Reader
e003 SPR532 PinPad SmartCard Reader
04e7 Elo TouchSystems
0001 TouchScreen
+ 0002 Touchmonitor Interface 2600 Rev 2
+ 0004 4000U CarrollTouch® Touchmonitor Interface
+ 0007 2500U IntelliTouch® Touchmonitor Interface
+ 0008 3000U AccuTouch® Touchmonitor Interface
+ 0009 4000U CarrollTouch® Touchmonitor Interface
+ 0020 Touchscreen Interface (2700)
+ 0021 Touchmonitor Interface
+ 0030 4500U CarrollTouch® Touchmonitor Interface
+ 0032 Touchmonitor Interface
+ 0033 Touchmonitor Interface
+ 0041 5010 Surface Capacitive Touchmonitor Interface
+ 0042 Touchmonitor Interface
+ 0050 2216 AccuTouch® Touchmonitor Interface
+ 0071 Touchmonitor Interface
+ 0072 Touchmonitor Interface
+ 0081 Touchmonitor Interface
+ 0082 Touchmonitor Interface
+ 00ff Touchmonitor Interface
04e8 Samsung Electronics Co., Ltd
0110 Connect3D Flash Drive
0111 Connect3D Flash Drive
1003 MP3 Player and Recorder
+ 1006 SDC-200Z
+ 3004 ML-4600
+ 3005 Docuprint P1210
+ 3008 ML-6060 laser printer
300c ML-1210 Printer
+ 300e Laser Printer
+ 3104 ML-3550N
+ 3226 Laser Printer
+ 3228 Laser Printer
+ 322a Laser Printer
+ 322c Laser Printer
+ 3230 ML-1440
+ 3232 Laser Printer
+ 3236 ML-1450
+ 3238 ML-1430
323a ML-1710 Printer
+ 323b Phaser 3130
+ 323c Laser Printer
+ 323d Phaser 3120
+ 323e Laser Printer
+ 3240 Laser Printer
+ 3242 Laser Printer
+ 3248 Color Laser Printer
+ 324a Laser Printer
324c ML-1740 Printer
+ 324d Phaser 3121
+ 325f Phaser 3425 Laser Printer
3260 CLP-510 Color Laser Printer
3268 ML-1610 Mono Laser Printer
+ 326c ML-2010P Mono Laser Printer
+ 3409 SCX-4216F Scanner
+ 340c SCX-5x15 Series
+ 340d SCX-6x20 Series
+ 340e MFP 560 Series
+ 340f Printing Support
+ 3412 SCX-4x20 Series
+ 3413 SCX-4100 Scanner
+ 3415 Composite Device
+ 3419 Composite Device
+ 341a Printing Support
+ 341b SCX-4200 Series
+ 341c Composite Device
+ 341d Composite Device
+ 341f Composite Device
+ 3420 Composite Device
+ 3605 InkJet Color Printer
+ 3606 InkJet Color Printer
+ 3609 InkJet Color Printer
+ 3902 InkJet Color Printer
+ 3903 Xerox WorkCentre XK50cx
+ 390f InkJet Color Printer
+ 3911 SCX-1020 Series
+ 5000 YP-MF Series
+ 5001 YP-100
+ 5002 YP-30
+ 5003 YP-700
+ 5004 YP-30
+ 5005 YP-300
+ 5006 YP-750
+ 500d MP3 Player
+ 5010 MP3 Player
+ 5011 YP-780
+ 5013 YP-60
+ 5015 yepp upgrade
+ 501b MP3 Player
+ 503b YP-U1 MP3 Player
+ 5050 YP-U2 MP3 Player
+ 507d YP-U3 MP3 Player
+ 508b YP-S5 MP3 Player
+ 5a00 YP-NEU
+ 5a01 YP-NDU
5a03 Yepp MP3 Player
+ 5a04 YP-800
+ 5a08 YP-90
+ 5a0f MTP Device
+ 5b01 Memory Stick Reader/Writer
+ 5b02 Memory Stick Reader/Writer
+ 5b03 Memory Stick Reader/Writer
+ 5b04 Memory Stick Reader/Writer
+ 5b05 Memory Stick Reader/Writer
+ 5b11 SEW-2001u Card
+ 5f00 NEXiO Sync
+ 5f01 NEXiO Sync
+ 5f02 NEXiO Sync
+ 5f03 NEXiO Sync
+ 5f04 NEXiO Sync
6601 Z100 Mobile Phone
- 663f SGH-E720
+ 6611 MITs Sync
+ 6613 MITs Sync
+ 6615 MITs Sync
+ 6617 MITs Sync
+ 6619 MITs Sync
+ 661b MITs Sync
+ 661e Handheld
+ 6620 Handheld
+ 6622 Handheld
+ 6624 Handheld
+ 662e MITs Sync
+ 6630 MITs Sync
+ 6632 MITs Sync
+ 663f SGH-E720/SGH-E840
+ 6640 Usb Modem Enumerator
+ 7011 SEW-2003U Card
+ 7021 Bluetooth Device
+ 7061 eHome Infrared Receiver
+ 7081 Human Interface Device
+ 8001 Handheld
+ e020 SERI E02 SCOM 6200 UMTS Phone
+ e021 SERI E02 SCOM 6200 Virtual UARTs
+ e022 SERI E02 SCOM 6200 Flash Load Disk
+ ff30 SG_iMON
04e9 PC-Tel, Inc.
04ea Brooktree Corp.
04eb Northstar Systems, Inc.
@@ -1352,9 +3577,11 @@
04f1 Victor Company of Japan, Ltd
0001 GC-QX3 Digital Still Camera
0004 GR-DVL815U Digital Video Camera
+ 0006 DV Camera Storage
0008 GZ-MG30AA/MC500E Digital Video Camera
0009 GR-DX25EK Digital Video Camera
000a GR-D72 Digital Video Camera
+ 3008 MP-PRX1 Ethernet
04f2 Chicony Electronics Co., Ltd
0001 KU-8933 Keyboard
0002 NT68P81 Keyboard
@@ -1362,8 +3589,32 @@
0111 KU-9908 Keyboard
0112 KU-8933 Keyboard with PS/2 Mouse port
0116 KU-2971 German Keyboard
+ 0403 KU-0420 keyboard
+ a001 E-Video DC-100 Camera
+ a120 ORITE CCD Webcam(PC370R)
+ a121 ORITE CCD Webcam(PC370R)
+ a122 ORITE CCD Webcam(PC370R)
+ a123 ORITE CCD Webcam(PC370R)
+ a124 ORITE CCD Webcam(PC370R)
+ a128 PC Camera (SN9C202 + OV7663 + EEPROM)
+ a133 Gateway Webcam
+ a204 DSC WIA Device (1300)
+ a208 DSC WIA Device (2320)
a209 Labtec DC-2320
+ a20a DSC WIA Device (3310)
+ a20c DSC WIA Device (3320)
+ a210 Audio Device
+ b009 Integrated Camera
+ b010 Integrated Camera
+ b012 1.3 MPixel UVC webcam
+ b018 Video Device
+ b022 Camera
+ b025 Camera
+ b027 Gateway Webcam
+ b028 VGA UVC WebCam
04f3 Elan Microelectronics Corp.
+ 0210 AM-400 Hama Optical Mouse
+ 0212 Laser Mouse
04f4 Harting Elektronik, Inc.
04f5 Fujitsu-ICL Systems, Inc.
04f6 Norand Corp.
@@ -1371,41 +3622,244 @@
04f8 FuturePlus Systems
04f9 Brother Industries, Ltd
0002 HL-1050 Laser Printer
+ 0005 Printer
0006 HL-1240 Laser Printer
0007 HL-1250 Laser Printer
0008 HL-1270 Laser Printer
+ 0009 Printer
+ 000a P2500 Series
+ 000b Printer
+ 000c Printer
000d HL-1440 Laser Printer
+ 000e HL-1450 series
+ 000f HL-1470N series
+ 0010 Printer
+ 0011 Printer
+ 0012 Printer
+ 0013 Printer
+ 0014 Printer
+ 0015 Printer
+ 0016 Printer
+ 0017 Printer
+ 0018 Printer
+ 001c Printer
+ 001e Printer
+ 0020 HL-5130 series
+ 0021 HL-5140 series
+ 0022 HL-5150D series
+ 0023 HL-5170DN series
+ 0024 Printer
+ 0025 Printer
+ 0027 HL-2030 Laser Printer
+ 0028 Printer
+ 0029 Printer
+ 002a Printer
+ 002b Printer
+ 002c Printer
+ 002d Printer
+ 0100 MFC8600/9650 Series
+ 0101 MFC9600/9870 Series
+ 0102 MFC9750/1200 Series
+ 0104 MFC-8300J
+ 0105 MFC-9600J
+ 0106 MFC-7300C
+ 0107 MFC-7400C
+ 0108 MFC-9200C
+ 0109 MFC-830
+ 010a MFC-840
+ 010b MFC-860
+ 010c MFC-7400J
+ 010d MFC-9200J
+ 010e MFC3100C Scanner
010f MFC 5100C
+ 0110 MFC4800 Scanner
0111 MFC 6800
+ 0112 DCP1000 Port(FaxModem)
+ 0113 MFC-8500
+ 0114 MFC9700 Port(FaxModem)
+ 0115 MFC9800 Scanner
+ 0116 DCP1400 Scanner
+ 0119 MFC-9660
+ 011b MFC-9880
+ 011c MFC-9760
+ 011d MFC-9070
+ 011e MFC-9180
+ 011f MFC-9160
+ 0120 MFC580 Port(FaxModem)
+ 0121 MFC-590
+ 0122 MFC-5100J
+ 0129 Imagistics 2500 (MFC-8640D clone)
+ 012f FAX-4750e
+ 0132 MFC-5200C RemovableDisk
+ 0135 MFC-100 Scanner
+ 0136 MFC-150CL Scanner
+ 013c MFC-890 Port
+ 013d MFC-5200J Printer
+ 013e MFC-4420C RemovableDisk
+ 013f MFC-4820C RemovableDisk
+ 0140 DCP-8020
+ 0141 DCP-8025D
+ 0142 MFC-8420
+ 0143 MFC-8820D
+ 0144 DCP-4020C RemovableDisk
+ 0146 MFC-3220C
+ 0147 FAX-1820C Printer
+ 0148 MFC-3320CN Printer
+ 0149 FAX-1920CN Printer
+ 014a MFC-3420C
+ 014b MFC-3820CN
+ 014d FAX-1815C Printer
+ 014e MFC-8820J
+ 0150 MFC-8220 Port(FaxModem)
+ 0151 MFC-8210J
+ 0157 MFC-3420J Printer
+ 0158 MFC-3820JN Port(FaxModem)
+ 015d MFC Composite Device
+ 015e DCP-8045D
+ 015f MFC-8440
+ 0160 MFC-8840D
+ 0161 MFC-210C
+ 0162 MFC-420CN Remote Setup Port
+ 0163 MFC-410CN RemovableDisk
+ 0165 MFC-620CN
+ 0166 MFC-610CLN RemovableDisk
+ 0168 MFC-620CLN
+ 0169 DCP-110C RemovableDisk
+ 016b DCP-310CN RemovableDisk
+ 016c FAX-2440C Printer
+ 016d MFC-5440CN
+ 016e MFC-5840CN Remote Setup Port
+ 0170 FAX-1840C Printer
+ 0171 FAX-1835C Printer
+ 0172 FAX-1940CN Printer
+ 0173 MFC-3240C Remote Setup Port
+ 0174 MFC-3340CN RemovableDisk
+ 017b Imagistics sx2100
+ 0180 MFC-7420
+ 0181 MFC-7820N Port(FaxModem)
+ 0182 Composite Device
+ 0183 DCP-7020
+ 0184 DCP-7025 Printer
+ 0185 MFC-7220 Printer
+ 0186 Composite Device
+ 0187 FAX-2820 Printer
+ 0188 FAX-2920 Printer
+ 018a MFC-9420CN
+ 018c DCP-115C
+ 018d DCP-116C
+ 018e DCP-117C
+ 018f DCP-118C
+ 0190 DCP-120C
+ 0191 DCP-315CN
+ 0192 DCP-340CW
+ 0193 MFC-215C
+ 0194 MFC-425CN
+ 0195 MFC-820CW Remote Setup Port
+ 0196 MFC-820CN Remote Setup Port
+ 0197 MFC-640CW
+ 019a MFC-840CLN Remote Setup Port
+ 01a2 MFC-8640D
+ 01a3 Composite Device
+ 01a4 DCP-8065DN Printer
+ 01a5 MFC-8460N Port(FaxModem)
+ 01a6 MFC-8860DN Port(FaxModem)
+ 01a7 MFC-8870DW Printer
+ 01a8 DCP-130C
+ 01a9 DCP-330C
+ 01aa DCP-540CN
+ 01ab MFC-240C
+ 01ae DCP-750CW RemovableDisk
+ 01af MFC-440CN
+ 01b0 MFC-660CN
+ 01b1 MFC-665CW Remote Setup Port
+ 01b2 MFC-845CW Remote Setup Port
+ 01b4 MFC-460CN Remote Setup Port
+ 01b5 MFC-630CD
+ 01b6 MFC-850CDN
+ 01b7 MFC-5460CN Remote Setup Port
+ 01b8 MFC-5860CN
+ 01ba MFC-3360C
+ 01bd MFC-8660DN
+ 01be DCP-750CN RemovableDisk
+ 01bf MFC-860CDN Remote Setup Port
+ 01c0 DCP-128C
+ 01c1 DCP-129C
+ 01c2 DCP-131C
+ 01c3 DCP-329C
+ 01c4 DCP-331C
+ 01c5 MFC-239C
+ 01ca MFC-9440CN Remote Setup Port
+ 01ce DCP-135C
+ 01cf DCP-150C
+ 01d0 DCP-350C
+ 01d1 DCP-560CN
+ 01d4 MFC-230C
+ 01d5 MFC-235C
+ 01d6 MFC-260C
+ 01df DCP-155C
+ 01e0 MFC-265C
+ 01e1 DCP-153C
+ 01e2 DCP-157C
+ 01e3 DCP-353C
+ 01e4 DCP-357C
+ 1000 Printer
+ 1002 Printer
+ 2002 PTUSB Printing
2004 PT-2300/2310 p-Touch Laber Printer
2015 QL-500 P-touch label printer
+ 2100 Card Reader Writer
04fa Dallas Semiconductor
2490 DS1490F 2-in-1 Fob, 1-Wire adapter
4201 DS4201 Audio DAC
04fb Biostar Microtech International Corp.
04fc Sunplus Technology Co., Ltd
0003 CM1092 Optical Scroller Mouse
+ 0013 ViewMate Desktop Mouse CC2201
+ 0015 ViewMate Desktop Mouse CC2201
+ 0232 Fingerprint
0561 Flexcam 100
+ 1533 Mass Storage
504a SPCA504a Digital Camera
504b Aiptek, 1.3 mega PockerCam
+ 5330 Digitrex 2110
5331 Vivitar Vivicam 10
+ 5720 Card Reader Driver
7333 Finet Technology Palmpix DC-85
+ 757a Aiptek, MP315 MP3 Player
ffff PureDigital Ritz Disposable
04fd Soliton Systems, K.K.
+ 0003 Smart Card Reader II
04fe PFU, Ltd
04ff E-CMOS Corp.
0500 Siam United Hi-Tech
+ 0001 DART Keyboard Mouse
+ 0002 DART-2 Keyboard
0501 Fujikura DDK, Ltd
0502 Acer, Inc.
+ 0001 Handheld
+ 0736 Handheld
15b1 PDA n311
+ 1631 c10 Series
+ 1632 c20 Series
+ 16e1 n10 Handheld Sync
+ 16e2 n20 Pocket PC Sync
+ 16e3 n30 Handheld Sync
d001 Divio NW801/DVC-V6+ Digital Camera
0503 Hitachi America, Ltd
0504 Hayes Microcomputer Products
0506 3Com Corp.
+ 009d HomeConnect Camera
00a0 3CREB96 Bluetooth Adapter
- 03e8 3C19250 Ethernet [klsi]
- 0a11 3CRWE254G72 802.11g Adapter
+ 00a1 Bluetooth Device
+ 00a2 Bluetooth Device
00df 3Com Home Connect lite
+ 0100 HomeConnect ADSL Modem Driver
+ 03e8 3C19250 Ethernet [klsi]
+ 0a01 3CRSHEW696 Wireless Adapter
+ 0a11 3CRWE254G72 802.11g Adapter
+ 11f8 HomeConnect 3C460
+ 2922 HomeConnect Cable Modem External with
+ 3021 U.S.Robotics 56000 Voice FaxModem Pro
4601 3C460B 10/100 Ethernet Adapter
f002 3CP4218 ADSL Modem (pre-init)
f003 3CP4218 ADSL Modem
@@ -1414,32 +3868,74 @@
0011 Konami ParaParaParadise Controller
0508 Clarion Co., Ltd
0509 Aztech Systems, Ltd
+ 0801 ADSL Modem
+ 0802 ADSL Modem (RFC1483)
+ 0806 DSL Modem
+ 080f Binatone ADSL500 Modem Network Interface
+ 0812 Pirelli ADSL Modem Network Interface
050a Cinch Connectors
050b Cable System International
050c InnoMedia, Inc.
050d Belkin Components
- 0012 Bluetooth USB Adapter F8T012
+ 0004 Direct Connect
+ 0012 F8T012 Bluetooth Adapter
+ 0013 F8T013 Bluetooth Adapter
+ 0050 F5D6050 802.11b Wireless Adapter
+ 0081 F8T001v2 Bluetooth
+ 0083 Bluetooth Device
+ 0084 F8T003v2 Bluetooth
0102 Flip KVM
0103 F5U103 Serial Adapter [etek]
+ 0106 VideoBus II Adapter, Video
0108 F1DE108B KVM
0109 F5U109/F5U409 PDA Adapter
0115 SCSI Adapter
+ 0119 F5U120-PC Dual PS/2 Ports
0121 F5D5050 100Mbps Ethernet
+ 0122 Ethernet Adapter
+ 0131 Bluetooth Device with trace filter
+ 0201 Peripheral Switch
0208 USBView II Video Adapter [nt1004]
+ 0210 F5U228 Hi-Speed USB 2.0 DVD Creator
+ 0211 F5U211 USB 2.0 15-in-1 Media Reader & Writer
0224 F5U224 USB 2.0 4-Port Hub
0234 F5U234 USB 2.0 4-Port Hub
+ 0237 F5U237 USB 2.0 7-Port Hub
+ 0240 F5U240 USB 2.0 CF Card Reader
+ 0257 F5U257 Serial
+ 0409 F5U409 Serial
+ 0551 F6C550-AVR UPS
+ 0802 Nostromo n40 Gamepad
0803 Nostromo 1745 GamePad
0805 Nostromo N50 GamePad
+ 0815 Nostromo n52 HID SpeedPad Mouse Wheel
+ 0826 ErgoFit Wireless Optical Mouse (HID)
+ 0980 HID UPS Battery
+ 1202 F5U120-PC Parallel Printer Port
1203 F5U120-PC Serial Port
- 3101 F1DF102U Flip Hub
- 3201 F1DF102U Flip KVM
+ 258a F5U258 Host to Host cable
+ 3101 F1DF102U/F1DG102U Flip Hub
+ 3201 F1DF102U/F1DG102U Flip KVM
+ 4050 ZD1211B
+ 5055 F5D5055
+ 6051 11Mbps Wireless Network Adapter
7050 F5D7050 ver 1000 WiFi
+ 7051 F5D7051 54g USB Network Adapter
+ 705a F5D7050A Wireless Adapter
+ 705b Wireless G Adapter
+ 705c F5D7050 v4000 Wireless Adapter
+ 905b F5D9050 ver 3 Wireless Adapter
+ 905c Wireless G Plus MIMO Network Adapter
050e Neon Technology, Inc.
050f KC Technology, Inc.
+ 0001 Hub
0003 KC82C160S Hub
0180 KC-180 IrDA Dongle
0190 KC2190 USB Host-to-Host cable
0510 Sejin Electron, Inc.
+ 0001 Keyboard
+ 1000 Keyboard with PS/2 Mouse Port
+ e001 Mouse
0511 N'Able (DataBook) Technologies, Inc.
0512 Hualon Microelectronics Corp.
0513 digital-X, Inc.
@@ -1453,10 +3949,15 @@
0519 Star Micronics Co., Ltd
c002 Xlive Bluetooth XBM-100S MP3 Player
051a WYSE Technology
+ a005 Smart Display Version 9973
051b Silicon Graphics
051c Shuttle, Inc.
+ c001 eHome Infrared Receiver
+ c002 eHome Infrared Receiver
051d American Power Conversion
- 0002 Uninterruptible Power Supply
+ 0001 UPS
+ 0002 Uninterruptible Power Supply
+ 0003 UPS
051e Scientific Atlanta, Inc.
051f IO Systems (Elite Electronics), Inc.
0520 Taiwan Semiconductor Manufacturing Co.
@@ -1465,7 +3966,11 @@
0523 ATEN GmbH
0524 Sola Electronics
0525 Netchip Technology, Inc.
+ 100d RFMD Bluetooth Device
1080 NET1080 USB-USB Bridge
+ a140 USB Clik! 40
+ a141 (OME) PocketZip 40 MP3 Player Driver
+ a220 GVC Bluetooth Wireless Adapter
a4a0 Linux-USB "Gadget Zero"
a4a1 Linux-USB Ethernet Gadget
a4a2 Linux-USB Ethernet/RNDIS Gadget
@@ -1475,10 +3980,20 @@
a4a6 Linux-USB Serial Gadget
a4a7 Linux-USB Serial Gadget (CDC ACM mode)
a4a8 Linux-USB Printer Gadget
+ a4a9 Linux-USB OBEX Gadget
0526 Temic MHS S.A.
0527 ALTRA
0528 ATI Technologies, Inc.
7561 TV Wonder
+ 7562 TV Wonder, Edition (FN5)
+ 7563 TV Wonder, Edition (FI)
+ 7564 TV Wonder, Edition (FQ)
+ 7565 TV Wonder, Edition (NTSC+)
+ 7566 TV Wonder, Edition (FN5)
+ 7567 TV Wonder, Edition (FI)
+ 7568 TV Wonder, Edition (FQ)
+ 7569 Live! Pro (A)
+ 756a Live! Pro Audio (O)
0529 Aladdin Knowledge Systems
0001 HASP v0.06
030b eToken R1 v3.1.3.x
@@ -1491,15 +4006,20 @@
042a eToken R2 v2.5.4.x
050c eToken Pro v4.1.5.x
0514 eToken Pro v4.2.5.4
+ 0600 eToken Pro 64k (4.2)
052a Crescent Heart Software
052b Tekom Technologies, Inc.
+ 0102 Ca508A HP1020 Camera v.1.3.1.6
0801 Yakumo MegaImage 37
1512 Yakumo MegaImage IV
1513 Aosta CX100 WebCam
1514 Aosta CX100 WebCam Storage
1905 Yakumo MegaImage 47
1911 Yakumo MegaImage 47 SL
+ 2202 WDM Still Image Capture
+ 2203 Sound Vision Stream Driver
3a06 DigiLife DDV-5120A
+ d001 P35U Camera Capture
052c Canon Information Systems, Inc.
052d Avid Electronics Corp.
052e Standard Microsystems Corp.
@@ -1511,6 +4031,7 @@
0534 Motorola, Inc.
0535 LIH TZU Electric Co., Ltd
0536 Hand Held Products (Welch Allyn, Inc.)
+ 01a0 PDT
0537 Inventec Corp.
0538 Caldera International, Inc. (SCO)
0539 Shyh Shiun Terminals Co., Ltd
@@ -1526,23 +4047,58 @@
0543 ViewSonic Corp.
00fe G773 Monitor Hub
00ff P815 Monitor Hub
+ 0bf2 airpanel V150 Wireless Smart Display
+ 0bf3 airpanel V110 Wireless Smart Display
+ 0ed9 Color Pocket PC V35
+ 0f01 airsync Wi-Fi Wireless Adapter
+ 1527 Color Pocket PC V36
+ 1529 Color Pocket PC V37
+ 152b Color Pocket PC V38
+ 152e Pocket PC
+ 1921 Communicator Pocket PC
+ 1922 Smartphone
+ 1923 Pocket PC V30
+ 1a11 Wireless 802.11g Adapter
+ 1e60 TA310 - ATSC/NTSC/PAL Driver(PCM4)
4153 ViewSonic G773 Control (?)
0544 Cristie Electronics, Ltd
0545 Xirlink, Inc.
+ 7333 Trution Web Camera
8002 IBM NetCamera
+ 8009 Veo PC Camera
800c Veo StingRay
+ 800d Veo PC Camera
8080 IBM C-It WebCam
+ 808a Veo PC Camera
+ 808b Veo PC Camera
+ 808d Veo PC Camera
810a Veo Advanced Connect WebCam
+ 810b Veo PC Camera
+ 810c Veo PC Camera
+ 8135 Veo Mobile/Advanced Web Camera
+ 813a Veo PC Camera
+ 813b Veo PC Camera
+ 813c Veo Mobile/Advanced Web Camera
+ 8333 Veo Stingray/Connect Web Camera
+ 888c eVision 123 digital camera
+ 888d eVision 123 digital camera
0546 Polaroid Corp.
0daf PDC 2300Z
1bed PDC 1320 Camera
3097 PDC 310
+ 3187 Digital Cam
+ dccf Sound Vision Stream Driver
0547 Anchor Chips, Inc.
+ 0001 ICSI Bluetooth Device
+ 1002 Python2 WDM Encoder
2131 AN2131 EZUSB Microcontroller
2235 AN2235 EZUSB-FX Microcontroller
+ 2710 EZ-Link Loader (EZLNKLDR.SYS)
2720 AN2720 USB-USB Bridge
2727 Xircom PGUNET USB-USB Bridge
+ 2750 EZ-Link (EZLNKUSB.SYS)
2810 Cypress USB ATAPI Bridge
+ 7777 Bluetooth Device
9999 AN2131 uninitialized (?)
0548 Tyan Computer Corp.
1005 EZ Cart II GameBoy Flash Programmer
@@ -1550,53 +4106,166 @@
054a Fujitsu Microelectronics, Inc.
054b New Media Corp.
054c Sony Corp.
- 0010 DSC-S30/S70/S75/F505V/F505/FD92 Cybershot/Mavica Digital Camera
+ 0001 HUB
+ 0002 Standard HUB
+ 0010 DSC-S30/S70/S75/F505V/F505/FD92/W1 Cybershot/Mavica Digital Camera
+ 0014 Nogatech USBVision (SY)
+ 0022 Storage Adapter V2 (TPP)
0023 CD Writer
0024 Mavica CD-1000 Camera
0025 NW-MS7 Walkman MemoryStick Reader
+ 002b Portable USB Harddrive V2
002c USB Floppy Disk Drive
002d MSAC-US1 MemoryStick Reader
002e Sony HandyCam MemoryStick Reader
+ 0030 Storage Adapter V2 (TPP)
0032 MemoryStick MSC-U01 Reader
+ 0035 Network Walkman (E)
+ 0036 Net MD
+ 0037 MG Memory Stick Reader/Writer
0038 Clie PEG-S300/D PalmOS PDA
+ 0039 Network Walkman (MS)
+ 003c VAIO-MX LCD Control
+ 0045 Digital Imaging Video
+ 0046 Network Walkman
+ 004a Memory Stick Hi-Fi System
+ 004b Memory Stick Reader/Writer
004e DSC-xxx (ptp)
+ 0056 MG Memory Stick Reader/Writer
0058 Clie PEG-N7x0C PalmOS PDA Mass Storage
0066 Clie PEG-N7x0C/PEG-T425 PalmOS PDA Serial
0069 Memorystick MSC-U03 Reader
006d Clie PEG-T425 PDA Mass Storage
+ 006f Network Walkman (EV)
+ 0073 Storage CRX1750U
+ 0075 Net MD
+ 0076 Storage Adapter ACR-U20
+ 007c Net MD
+ 007f IC Recorder (MS)
+ 0080 Net MD
+ 0081 Net MD
+ 0084 Net MD
+ 0085 Net MD
+ 0086 Net MD
008b Micro Vault 64M Mass Storage
+ 0095 Sony Clie s360
0099 Clie NR70 PDA Mass Storage
009a Clie NR70 PDA Serial
+ 00ab Visual Communication Camera (PCGA-UVC10)
+ 00af DPP-EX Series Digital Photo Printer
+ 00bf IC Recorder (S)
00c0 Handycam DCR-30
+ 00c6 Net MD
+ 00c7 Net MD
00c8 MZ-N710 Minidisc Walkman
+ 00c9 Net MD
00ca MZ-DN430 Minidisc Walkman
00cb MSAC-US20 Memory Stick Reader
+ 00da Sony Clie nx60
+ 00e8 Network Walkman (MS)
+ 00e9 Handheld
+ 00eb Net MD
+ 0101 Net MD
+ 0103 IC Recorder (ST)
0105 Micro Vault Hub
0107 VCC-U01 Visual Communication Camera
+ 0110 Digital Imaging Video
+ 0113 Net MD
+ 0116 IC Recorder (P)
0144 Clie PEG-TH55 PDA
+ 0147 Visual Communication Camera (PCGA-UVC11)
014c Aiwa AM-NX9 Net MD Music Recorder MDLP
014d Memory Stick Reader/Writer
+ 0154 Eyetoy Audio Device
+ 015f IC Recorder (BM)
0169 Clie PEG-TJ35 PDA Serial
016a Clie PEG-TJ35 PDA Mass Storage
+ 016b Mobile HDD
+ 016d IC Recorder (SX)
+ 016e DPP-EX50 Digital Photo Printer
+ 0171 Fingerprint Sensor 3500
+ 017e Net MD
+ 017f Hi-MD WALKMAN
+ 0180 Net MD
+ 0181 Hi-MD WALKMAN
+ 0182 Net MD
+ 0183 Hi-MD WALKMAN
+ 0184 Net MD
+ 0185 Hi-MD WALKMAN
+ 0186 Net MD
+ 0187 Hi-MD WALKMAN
+ 0188 Net MD
+ 018a Net MD
+ 018b Hi-MD SOUND GATE
019e Micro Vault 1.0G Mass Storage
+ 01ad ATRAC HDD PA
+ 01bd MRW62E Multi-Card Reader/Writer
01c3 NW-E55 Network Walkman
+ 01c6 MEMORY P-AUDIO
+ 01c7 Printing Support
01d0 DVD+RW External Drive DRU-700A
+ 01d5 IC RECORDER
+ 01de VRD-VC10 [Video Capture]
+ 01e9 Net MD
+ 01ea Hi-MD WALKMAN
+ 01ee IC RECORDER
01fa Sony IC Recorder (P)
01fb NW-E405 Network Walkman
+ 020f Device
+ 0210 ATRAC HDD PA
+ 0219 Net MD
+ 021a Hi-MD WALKMAN
+ 021b Net MD
+ 021c Hi-MD WALKMAN
+ 021d Net MD
+ 0227 Printing Support
+ 022c Net MD
+ 022d Hi-MD AUDIO
+ 0233 ATRAC HDD PA
+ 0236 Mobile HDD
023b DVD+RW External Drive DRU-800UL
+ 023c Net MD
+ 023d Hi-MD WALKMAN
+ 0243 MicroVault Flash Drive
+ 0257 IFU-WLM2 USB Wireless LAN Module (Wireless Mode)
+ 0258 IFU-WLM2 USB Wireless LAN Module (Memory Mode)
+ 0259 IC RECORDER
+ 0267 Tachikoma Device
+ 0268 Batoh Device
+ 0269 HDD WALKMAN
+ 026a HDD WALKMAN
+ 0271 IC Recorder (P)
+ 027c NETWORK WALKMAN
+ 027e SONY Communicator
+ 027f IC RECORDER
+ 0286 Net MD
+ 0287 Hi-MD WALKMAN
+ 029b PRS-500 eBook reader
02ae PlayStation 3 Memory Card Adaptor
02af Handycam DCR-DVD306E
+ 02c4 Device
02d2 PSP
054d Try Corp.
054e Proside Corp.
054f WYSE Technology Taiwan
0550 Fuji Xerox Co., Ltd
+ 0002 InkJet Color Printer
+ 0004 InkJet Color Printer
+ 0005 InkJet Color Printer
0551 CompuTrend Systems, Inc.
0552 Philips Monitors
0553 STMicroelectronics Imaging Division (VLSI Vision)
+ 0001 TerraCAM
0002 CPiA WebCam
+ 0100 STV0672 Camera
+ 0140 Video Camera
+ 0150 CDE CAM 100
0151 Digital Blue QX5 Microscope
+ 0200 Dual-mode Camera0
+ 0201 Dual-mode Camera1
0202 Aiptek PenCam 1
+ 0674 Multi-mode Camera
+ 0679 NMS Video Camera (Webcam)
1002 Che-ez! Splash
0554 Dictaphone Corp.
0555 ANAM S&T Co., Ltd
@@ -1609,6 +4278,7 @@
2006 UC-1284B Printer Port
2007 UC-110T 100Mbps Ethernet [pegasus]
2008 UC-232A Serial Port [pl2303]
+ 2009 UC-210T Ethernet
2202 CS124U Miniview II KVM Switch
2600 IDE Bridge
4000 DSB-650 10Mbps Ethernet [klsi]
@@ -1619,8 +4289,27 @@
055b KnowledgeTek, Inc.
055c Proton Electronic Ind.
055d Samsung Electro-Mechanics Co.
+ 0001 Keyboard
+ 0bb1 Bluetooth Device
+ 1030 Optical Wheel Mouse (OMS3CB/OMGB30)
+ 1031 Optical Wheel Mouse (OMA3CB/OMGI30)
+ 1040 Mouse HID Device
+ 1050 E-Mail Optical Wheel Mouse (OMS3CE)
+ 1080 Optical Wheel Mouse (OMS3CH)
+ 2020 Floppy Disk Drive
+ 6780 Keyboard V1
+ 6781 Keyboard Mouse
+ 8001 E.M. Hub
9000 AnyCam [pwc]
9001 MPC-C30 AnyCam Premium for Notebooks [pwc]
+ a010 WLAN Adapter(SWL-2300)
+ a011 Boot Device
+ a012 WLAN Adapter(SWL-2300)
+ a013 WLAN Adapter(SWL-2350)
+ a230 Boot Device
+ b000 11Mbps WLAN Mini Adapter
+ b230 Netopia 802.11b WLAN Adapter
+ b231 LG Wireless LAN 11b Adapter
055e CTX Opto-Electronics Corp.
055f Mustek Systems, Inc.
0001 ScanExpress 1200 CU
@@ -1637,14 +4326,17 @@
021c BearPaw 1200 CU Plus
021d BearPaw 2400 CU Plus
021e BearPaw 1200 TA/CS
+ 021f SNAPSCAN e22
0400 BearPaw 2400 TA Pro
0401 P 3600 A3 Pro
0408 BearPaw 2448 CU Pro
+ 0409 BearPaw 2448 TA Pro
0873 ScanExpress 600 USB
1000 BearPaw 4800 TA Pro
a350 gSmart 350
a800 MDC 800 Camera
b500 MDC 3000 Camera
+ c005 PC CAM 300A
c200 gSmart 300
c220 gSmart mini
c360 Mustek DV 4000
@@ -1655,10 +4347,13 @@
c631 MDC-4000
c650 Mustek MDC5500Z
d001 WCam 300
+ d003 PC CAM 300A
+ d004 PC CAM 300A
0560 Interface Corp.
0561 Oasis Design, Inc.
0562 Telex Communications, Inc.
0001 Enhanced Microphone
+ 0002 Telex Microphone
0563 Immersion Corp.
0564 Chinon Industries, Inc.
0565 Peracom Networks, Inc.
@@ -1666,32 +4361,67 @@
0002 Enet Ethernet [klsi]
0003 @Home Networks Ethernet [klsi]
0005 Enet2 Ethernet [klsi]
+ 0041 Peracom Remote NDIS Ethernet Adapter
0566 Monterey International Corp.
+ 0110 ViewMate Desktop Mouse CC2201
+ 1001 ViewMate Desktop Mouse CC2201
+ 1002 ViewMate Desktop Mouse CC2201
+ 1003 ViewMate Desktop Mouse CC2201
+ 1004 ViewMate Desktop Mouse CC2201
+ 1005 ViewMate Desktop Mouse CC2201
+ 1006 ViewMate Desktop Mouse CC2201
+ 1007 ViewMate Desktop Mouse CC2201
+ 2800 MIC K/B
+ 2801 MIC K/B Mouse
+ 2802 Kbd Hub
0567 Xyratex International, Ltd
0568 Quartz Ingenierie
0569 SegaSoft
056a Wacom Co., Ltd
0000 PenPartner
+ 0001 PenPartner 4x5
+ 0002 PenPartner 6x8
0010 Graphire
0011 Graphire 2
+ 0013 Graphire 3 4x5
0020 Intuos 4x5
0021 Intuos 6x8
0022 Intuos 9x12
0023 Intuos 12x12
0024 Intuos 12x18
+ 0030 PL400
0031 PL500
+ 0032 PL600
+ 0034 PL550
+ 0035 PL800
+ 0041 Intuos2 4x5
0042 Intuos 2 6x8
0043 Intuos 2
+ 0044 Intuos2 12x12
+ 0045 Intuos2 12x18
+ 0400 PenPartner 4x5
+ 4850 PenPartner 6x8
056b Decicon, Inc.
056c eTEK Labs
+ 0006 KwikLink Host-Host Connector
8007 Kwik232 Serial Port
+ 8100 KwikLink Host-Host Connector
8101 KwikLink USB-USB Bridge
056d EIZO Corp.
0000 Hub
0001 Monitor
+ 0002 HID Monitor Controls
+ 0003 Device Bay Controller
056e Elecom Co., Ltd
0002 29UO Mouse
+ 200c LD-USB/TX
4002 Laneed 100Mbps Ethernet LD-USB/TX [pegasus]
+ 4005 LD-USBL/TX
+ 400b LD-USB/TX
+ 4010 LD-USB20
+ 5003 UC-SGT
+ 5004 UC-SGT
+ abc1 LD-USB/TX
056f Korea Data Systems Co., Ltd
cd00 CDM-751 CD organizer
0570 Epson America
@@ -1701,32 +4431,66 @@
0001 Ezcam II WebCam
0002 Ezcam II WebCam
0040 Wondereye CP-115 WebCam
+ 0041 WebCam Notebook
+ 0042 WebCam Notebook
1232 V.90 modem
+ 1234 Typhoon Redfun Modem V90 56k
+ 1252 HCF V90 Data Fax Voice Modem
+ 1253 Zoom V.92 Faxmodem
+ 1300 SoftK56 Data Fax Voice CARP
+ 1301 Modem Enumerator
+ 2000 SoftGate 802.11 Adapter
+ 2002 SoftGate 802.11 Adapter
+ 8390 WinFast PalmTop/Novo TV Video
+ 8392 WinFast PalmTop/Novo TV Video
cafe AccessRunner ADSL Modem
cb00 E-Tech ADSL Modem v2
cb01 GeekADSL Promax Q31 ADSL Modem
+ cb06 StarModem Network Interface
0573 Zoran Co. Personal Media Division (Nogatech)
0003 USBGear USBG-V1
0400 D-Link V100
+ 0600 Dazzle USBVision (1006)
+ 1300 leadtek USBVision (1006)
2000 X10 va10a Wireless Camera
+ 2001 Dazzle EmMe (2001)
2101 Zoran Co. PMD (Nogatech) AV-grabber Manhattan
2d00 Osprey 50
2d01 Hauppauge USB-Live Model 600
+ 3000 Dazzle MicroCam (NTSC)
+ 3001 Dazzle MicroCam (PAL)
+ 4000 Nogatech TV! (NTSC)
+ 4001 Nogatech TV! (PAL)
+ 4002 Nogatech TV! (PAL-I-)
+ 4003 Nogatech TV! (MF-)
+ 4008 Nogatech TV! (NTSC) (T)
+ 4009 Nogatech TV! (PAL) (T)
+ 4010 Nogatech TV! (NTSC) (A)
4100 USB-TV FM (NTSC)
4110 PNY USB-TV (NTSC) FM
+ 4400 Nogatech TV! Pro (NTSC)
+ 4401 Nogatech TV! Pro (PAL)
4450 PixelView PlayTv-USB PRO (PAL) FM
+ 4451 Nogatech TV! Pro (PAL+)
+ 4452 Nogatech TV! Pro (PAL-I+)
+ 4500 Nogatech TV! Pro (NTSC)
+ 4501 Nogatech TV! Pro (PAL)
4550 ZTV ZT-721 2.4GHz USB A/V Receiver
+ 4551 Dazzle TV! Pro Audio (P+)
4d00 Hauppauge WinTV-USB USA
4d01 Hauppauge WinTV-USB
4d02 Hauppauge WinTV-USB UK
4d03 Hauppauge WinTV-USB France
+ 4d04 Hauppauge WinTV (PAL D/K)
4d10 Hauppauge WinTV-USB with FM USA radio
4d11 Hauppauge WinTV-USB (PAL) with FM radio
4d12 Hauppauge WinTV-USB UK with FM Radio
+ 4d14 Hauppauge WinTV (PAL D/K FM)
4d20 Hauppauge WinTV-USB II (PAL) with FM radio
4d21 Hauppauge WinTV-USB II (PAL)
4d22 Hauppauge WinTV-USB II (PAL) Model 566
4d23 Hauppauge WinTV-USB France 4D23
+ 4d24 Hauppauge WinTV Pro (PAL D/K)
4d25 Hauppauge WinTV-USB Model 40209 rev B234
4d26 Hauppauge WinTV-USB Model 40209 rev B243
4d27 Hauppauge WinTV-USB Model 40204 Rev B281
@@ -1734,11 +4498,15 @@
4d29 Hauppauge WinTV-USB Model 40205 rev B298
4d2a Hauppague WinTV-USB Model 602 Rev B285
4d2b Hauppague WinTV-USB Model 602 Rev B282
+ 4d2c Hauppauge WinTV Pro (PAL/SECAM)
4d30 Hauppauge WinTV-USB FM Model 40211 Rev B123
4d31 Hauppauge WinTV-USB III (PAL) with FM radio Model 568
4d32 Hauppauge WinTV-USB III (PAL) FM Model 573
+ 4d34 Hauppauge WinTV Pro (PAL D/K FM)
4d35 Hauppauge WinTV-USB III (PAL) FM Model 597
+ 4d36 Hauppauge WinTV Pro (PAL B/G FM)
4d37 Hauppauge WinTV-USB Model 40219 rev E189
+ 4d38 Hauppauge WinTV Pro (NTSC FM)
0574 City University of Hong Kong
0575 Philips Creative Display Solutions
0576 BAFO/Quality Computer Accessories
@@ -1754,23 +4522,131 @@
0020 HEXA Media Drive 6-in-1 Card Reader Writer
0030 Memory Card Viewer (TV)
057c AVM GmbH
+ 0b00 ISDN-Controller B1 Family
+ 0c00 ISDN-Controller FRITZ!Card
+ 1000 ISDN-Controller FRITZ!Card v2.0
+ 1900 ISDN-Controller FRITZ!Card v2.1
+ 2000 ISDN-Connector FRITZ!X
+ 2200 BlueFRITZ!
+ 2300 Teledat X130 DSL
2800 ISDN-Connector TA
+ 3200 Teledat X130 DSL
+ 3500 FRITZ!Card DSL SL
+ 3701 FRITZ!Box SL
+ 3702 FRITZ!Box
3800 BlueFRITZ! Bluetooth Stick
+ 3a00 FRITZ!Box Fon
+ 3c00 FRITZ!Box WLAN
3d00 Fritz!Box
+ 3e01 FRITZ!Box (Annex A)
+ 4001 FRITZ!Box Fon (Annex A)
+ 4101 FRITZ!Box WLAN (Annex A)
+ 4201 FRITZ!Box Fon WLAN (Annex A)
+ 4601 Eumex 5520PC (WinXP/2000)
+ 4602 Eumex 400 (WinXP/2000)
+ 4701 AVM FRITZ!Box Fon ata
+ 5401 Eumex 300 IP
+ 5601 AVM FRITZ!WLAN Stick
6201 WLAN USB v1.1
62ff WLAN USB v1.1 [no firmware]
057d Shark Multimedia, Inc.
057e Nintendo Co., Ltd
+ 0306 Wii Remote Controller RVL-003
057f QuickShot, Ltd
+ 6238 USB StrikePad
0580 Denron, Inc.
0581 Racal Data Group
0582 Roland Corp.
- 0002 MPU64 Midi Interface
- 0003 Sound Canvas SC-8850
+ 0000 UA-100
+ 0002 UM-4/MPU-64 MIDI Interface
+ 0003 SoundCanvas SC-8850
+ 0004 U-8
0005 Edirol UM-2 MIDI Adapter
+ 0007 SoundCanvas SC-8820
+ 0008 PC-300
0009 Edirol UM-1SX MIDI Adapter
+ 000b SK-500
+ 000c SC-D70
+ 0010 EDIROL UA-5
0011 Edirol UA-5 Sound Capture
- 002d VX-2020 Synthesizer
+ 0012 XV-5050
+ 0013 XV-5050
+ 0014 EDIROL UM-880 MIDI I/F (native)
+ 0015 EDIROL UM-880 MIDI I/F (generic)
+ 0016 EDIROL SD-90
+ 0017 EDIROL SD-90
+ 001b MMP-2
+ 001c MMP-2
+ 001d V-SYNTH
+ 001e V-SYNTH
+ 0023 EDIROL UM-550
+ 0024 EDIROL UM-550
+ 0025 EDIROL UA-20
+ 0026 EDIROL UA-20
+ 0027 EDIROL SD-20
+ 0028 EDIROL SD-20
+ 0029 EDIROL SD-80
+ 002a EDIROL SD-80
+ 002b EDIROL UA-700
+ 002c EDIROL UA-700
+ 002d XV-2020 Synthesizer
+ 002e XV-2020 Synthesizer
+ 002f VariOS
+ 0030 VariOS
+ 0033 EDIROL PCR
+ 0034 EDIROL PCR
+ 0037 Digital Piano
+ 0038 Digital Piano
+ 003b BOSS GS-10
+ 003c BOSS GS-10
+ 0040 GI-20
+ 0041 GI-20
+ 0042 RS-70
+ 0043 RS-70
+ 0044 EDIROL UA-1000
+ 0047 EDIROL UR-80 WAVE
+ 0048 EDIROL UR-80 MIDI
+ 0049 EDIROL UR-80 WAVE
+ 004a EDIROL UR-80 MIDI
+ 004b EDIROL M-100FX
+ 004c EDIROL PCR-A WAVE
+ 004d EDIROL PCR-A MIDI
+ 004e EDIROL PCR-A WAVE
+ 004f EDIROL PCR-A MIDI
+ 0050 EDIROL UA-3FX
+ 0052 EDIROL UM-1SX
+ 0054 Digital Piano
+ 0060 EXR Series
+ 0064 EDIROL PCR-1 WAVE
+ 0065 EDIROL PCR-1 MIDI
+ 0066 EDIROL PCR-1 WAVE
+ 0067 EDIROL PCR-1 MIDI
+ 006a SP-606
+ 006b SP-606
+ 006d FANTOM-X
+ 006e FANTOM-X
+ 0073 EDIROL UA-25
+ 0074 EDIROL UA-25
+ 0075 BOSS DR-880
+ 0076 BOSS DR-880
+ 007a RD
+ 007b RD
+ 007d EDIROL UA-101
+ 0080 G-70
+ 0081 G-70
+ 008b EDIROL PC-50
+ 008c EDIROL PC-50
+ 008d EDIROL UA-101 USB1
+ 0092 EDIROL PC-80 WAVE
+ 0093 EDIROL PC-80 MIDI
+ 0096 EDIROL UA-1EX
+ 009a EDIROL UM-3EX
+ 009d EDIROL UM-1
+ 00a2 Digital Piano
+ 00a3 EDIROL UA-4FX
+ 00a6 Juno-G
+ 00ad SH-201
+ 00c4 EDIROL M-16DX
0583 Padix Co., Ltd (Rockfire)
2030 RM-203 USB Nest [mode 1]
2031 RM-203 USB Nest [mode 2]
@@ -1781,45 +4657,117 @@
688f QF-688uv Windstorm Pro Joystick
7070 QF-707u Bazooka Joystick
0584 RATOC System, Inc.
+ 0008 Fujifilm MemoryCard ReaderWriter
+ b000 REX-USB60
0585 FlashPoint Technology, Inc.
+ 0001 Digital Camera
+ 0002 Digital Camera
+ 0003 Digital Camera
+ 0004 Digital Camera
+ 0005 Digital Camera
+ 0006 Digital Camera
+ 0007 Digital Camera
+ 0008 Digital Camera
+ 0009 Digital Camera
+ 000a Digital Camera
+ 000b Digital Camera
+ 000c Digital Camera
+ 000d Digital Camera
+ 000e Digital Camera
+ 000f Digital Camera
0586 ZyXEL Communications Corp.
1000 Omni NET Modem / ISDN TA
+ 1500 Omni 56K Plus
+ 2011 Scorpion-980N keyboard
+ 3304 LAN Modem
+ 330a ADSL Modem Interface
330e USB Broadband ADSL Modem Rev 1.10
+ 3400 ZyAIR B-220 IEEE 802.11b Adapter
3401 ZyAIR G-220
+ 3402 (ZD1211)IEEE 802.11b+g Adapter
+ 3407 G-200 v2
+ 3409 AG-225H
+ 340a M-202
+ 340f G-220 v2
+ 3410 Wi-Fi Wireless LAN Adapter
+ 3412 Wi-Fi Wireless LAN Adapter
+ 3413 AG-225H v2 802.11a/g Wi-Fi Finder & Adapter
+ 3415 G-210H 802.11g Wireless Adapter
0587 America Kotobuki Electronics Industries, Inc.
0588 Sapien Design
0589 Victron
058a Nohau Corp.
058b Infineon Technologies
058c In Focus Systems
+ 0007 Flash
+ 0008 LP130
+ 000a LP530
+ 0010 Projector
+ 0011 Projector
+ 0012 Projector
+ 0013 Projector
+ 0014 Projector
+ 0015 Projector
+ 0016 Projector
+ 0017 Projector
+ 0018 Projector
+ 0019 Projector
+ 001a Projector
+ 001b Projector
+ 001c Projector
+ 001d Projector
+ 001e Projector
+ 001f Projector
058d Micrel Semiconductor
058e Tripath Technology, Inc.
058f Alcor Micro Corp.
+ 2412 SCard R/W CSR-145
2802 Monterey Keyboard
5492 Hub
6232 Hi-Speed 16-in-1 Flash Card Reader/Writer
+ 6335 SD/MMC Card Reader
+ 6360 Multimedia Card Reader
+ 6361 Multimedia Card Reader
6362 Hi-Speed 21-in-1 Flash Card Reader/Writer (Internal/External)
- 6387 Transcend JetFlash 110 USB 2.0 Flash Drive (2GB)
+ 6377 Multimedia Card Reader
+ 6386 Memory Card
+ 6387 Transcend JetFlash Flash Drive
+ 6390 USB 2.0-IDE bridge
9213 MacAlly Kbd Hub
9215 AU9814 Hub
9254 Hub
+ 9310 Mass Storage (UID4/5A & UID7A)
+ 9320 Micro Storage Driver for Win98
+ 9321 Micro Storage Driver for Win98
9330 SD Reader
+ 9331 Micro Storage Driver for Win98
+ 9340 Delkin eFilm Reader-32
+ 9350 Delkin eFilm Reader-32
9360 8-in-1 Media Card Reader
+ 9361 Multimedia Card Reader
+ 9368 Multimedia Card Reader
9380 Flash drive
9382 Acer/Sweex Flash drive
9410 Keyboard
9472 Keyboard Hub
+ 9510 ChunghwaTL USB02 Smartcard Reader
+ 9520 EMV Certified Smart Card Reader
9720 USB-Serial Adapter
0590 Omron Corp.
0004 Cable Modem
+ 000b MR56SVS
+ 0028 HJ-720IT Pedometer
0591 Questra Consulting
0592 Powerware Corp.
+ 0002 UPS (X-Slot)
0593 Incite
0594 Princeton Graphic Systems
0595 Zoran Microelectronics, Ltd
- 1001 Digitrex DSC-1300/DSC-2100 (mass storage mode)
+ 1001 Digitrex DSC-1300/DSC-2100 (mass storage mode)
+ 4343 Digital Camera EX-20 DSC
0596 MicroTouch Systems, Inc.
0001 Touchscreen
+ 0002 Touch Screen Controller
0597 Trisignal Communications
0598 Niigata Canotec Co., Inc.
0599 Brilliance Semiconductor, Inc.
@@ -1827,87 +4775,163 @@
059b Iomega Corp.
0001 Zip 100 (Type 1)
000b Zip 100 (Type 2)
+ 0021 Win98 Disk Controller
0030 Zip 250 (Ver 1)
0031 Zip 100 (Type 3)
0032 Zip 250 (Ver 2)
+ 0034 Zip 100 Driver
+ 0037 Zip 750 MB
0040 SCSI Bridge
+ 0042 Rev 70 GB
0050 Zip CD 650 Writer
0053 CDRW55292EXT CD-RW External Drive
+ 0057 Mass Storage Device
+ 005d Mass Storage Device
+ 005f Mass Storage Device
+ 0060 PCMCIA PocketZip Dock
+ 0061 Varo PocketZip 40 MP3 Player
006d HipZip MP3 Player
+ 007c Ultra Max USB/1394
+ 00db FotoShow Zip 250 Driver
+ 0150 Mass Storage Device
015d Super DVD Writer
+ 0173 Hi-Speed USB-to-IDE Bridge Controller
+ 0174 Hi-Speed USB-to-IDE Bridge Controller
+ 0176 Hi-Speed USB-to-IDE Bridge Controller
+ 0177 Hi-Speed USB-to-IDE Bridge Controller
+ 0178 Hi-Speed USB-to-IDE Bridge Controller
+ 0179 Hi-Speed USB-to-IDE Bridge Controller
+ 017a HDD
+ 017b HDD/1394A
+ 017c HDD/1394B
+ 0251 Optical
+ 0252 Optical
1052 DVD+RW External Drive
059c A-Trend Technology Co., Ltd
059d Advanced Input Devices
059e Intelligent Instrumentation
059f LaCie, Ltd
+ 0201 StudioDrive USB2
+ 0202 StudioDrive USB2
+ 0203 StudioDrive USB2
0211 PocketDrive
0212 PocketDrive
+ 0213 PocketDrive USB2
0323 LaCie d2 Drive USB2
- 0641 Mobile Hard drvie
+ 0641 Mobile Hard Drive
+ 1010 Desktop Hard Drive
a601 HardDrive
+ a602 CD R/W
05a0 Vetronix Corp.
05a1 USC Corp.
05a2 Fuji Film Microdevices Co., Ltd
05a3 ARC International
05a4 Ortek Technology, Inc.
- 9731 MCK-600W Keyboard
+ 9720 Keyboard Mouse
+ 9722 Keyboard
+ 9731 MCK-600W/MCK-800USB Keyboard
05a5 Sampo Technology Corp.
05a6 Cisco Systems, Inc.
+ 0001 CVA124 Cable Voice Adapter (WDM)
+ 0002 CVA122 Cable Voice Adapter (WDM)
+ 0003 CVA124E Cable Voice Adapter (WDM)
+ 0004 CVA122E Cable Voice Adapter (WDM)
05a7 Bose Corp.
05a8 Spacetec IMC Corp.
05a9 OmniVision Technologies, Inc.
0511 OV511 WebCam
0518 OV518 WebCam
+ 0519 OV519 Microphone
+ 1550 VEHO Filmscanner
+ 2800 SuperCAM
+ 4519 Webcam Classic
+ 8519 OV519 WebCam
a511 OV511+ WebCam
+ a518 D-Link DSB-C310 WebCam
05aa Utilux South China, Ltd
05ab In-System Design
0002 Parallel Port
+ 0030 Storage Adapter V2 (TPP)
0031 ATA Bridge
0060 USB 2.0 ATA Bridge
+ 0061 Storage Adapter V3 (TPP-I)
+ 0101 Storage Adapter (TPP)
+ 0130 Compact Flash and Microdrive Reader (TPP)
0200 USS725 ATA Bridge
+ 0201 Storage Adapter (TPP)
0202 ATA Bridge
+ 0300 Portable Hard Drive (TPP)
+ 0301 Portable Hard Drive V2
+ 0350 Portable Hard Drive (TPP)
+ 0351 Portable Hard Drive V2
081a ATA Bridge
0cda ATA Bridge for CD-R/RW
-05ac Apple Computer, Inc.
- 0201 Apple USB Keyboard [Alps or Logitech, M2452]
- 0202 Apple Keyboard [ALPS]
- 0205 Apple Extended Keyboard [Mitsumi]
- 0206 Apple Extended Keyboard [Mitsumi]
- 020b Apple Pro Keyboard [Mitsumi, A1048/US layout]
- 020d Apple Pro Keyboard [Mitsumi, A1048/JIS layout]
- 020e Apple Internal Keyboard/Trackpad
- 020f Apple Internal Keyboard/Trackpad
- 0220 Apple Aluminum Keyboard
- 0301 Apple USB Mouse [Mitsumi, M4848]
- 0302 Apple Optical Mouse [Fujitsu]
- 0304 Apple Optical USB Mouse [Mitsumi]
- 0306 Apple Optical USB Mouse [Fujitsu]
- 1001 Apple Keyboard Hub [ALPS]
- 1002 Apple Extended Keyboard Hub [Mitsumi]
- 1003 Hub in Apple Pro Keyboard [Mitsumi, A1048]
- 1006 Hub in Apple Aluminum Keyboard
+ 1001 BAYI Printer Class Support
+ 5700 Storage Adapter V2 (TPP)
+ 5701 USB Storage Adapter V2
+ 5901 Smart Board (TPP)
+ 5a01 ATI Storage Adapter (TPP)
+ 5d01 DataBook Adapter (TPP)
+05ac Apple, Inc.
+ 0201 USB Keyboard [Alps or Logitech, M2452]
+ 0202 Keyboard [ALPS]
+ 0205 Extended Keyboard [Mitsumi]
+ 0206 Extended Keyboard [Mitsumi]
+ 020b Pro Keyboard [Mitsumi, A1048/US layout]
+ 020c Extended Keyboard [Mitsumi]
+ 020d Pro Keyboard [Mitsumi, A1048/JIS layout]
+ 020e Internal Keyboard/Trackpad
+ 020f Internal Keyboard/Trackpad
+ 021b Internal Keyboard/Trackpad
+ 0220 Aluminum Keyboard
+ 0221 Keyboard (Aluminium) (ISO)
+ 0229 Internal Keyboard/Trackpad (MacBook Pro) (ANSI)
+ 022a Internal Keyboard/Trackpad (MacBook Pro) (ISO)
+ 022b Internal Keyboard/Trackpad (MacBook Pro) (JIS)
+ 0301 USB Mouse [Mitsumi, M4848]
+ 0302 Optical Mouse [Fujitsu]
+ 0304 Optical USB Mouse [Mitsumi]
+ 0306 Optical USB Mouse [Fujitsu]
+ 1000 Bluetooth HCI MacBookPro (HID mode)
+ 1001 Keyboard Hub [ALPS]
+ 1002 Extended Keyboard Hub [Mitsumi]
+ 1003 Hub in Pro Keyboard [Mitsumi, A1048]
+ 1006 Hub in Aluminum Keyboard
1101 Speakers
1201 3G iPod
- 1203 Apple iPod 4.Gen Grayscale 40G
+ 1202 iPod 2G
+ 1203 iPod 4.Gen Grayscale 40G
1204 iPod [Photo]
1205 iPod Mini 1.Gen/2.Gen
+ 1206 iPod '06'
+ 1207 iPod '07'
+ 1208 iPod '08'
1209 iPod Video
- 120A iPod Nano
+ 120a iPod Nano
1260 iPod Nano 2.Gen
+ 1261 iPod Classic
1300 iPod Shuffle
+ 1301 iPod Shuffle 2.Gen
8202 HCF V.90 Data/Fax Modem
8203 Bluetooth HCI
8204 Bluetooth HCI [Bluetooth 2.0 + EDR, build-in]
+ 8205 Bluetooth HCI MacBookPro
8206 Bluetooth USB Host Controller
8240 IR Receiver [build-in]
+ 8300 Built-in iSight (no firmware loaded)
8501 Built-in iSight [Micron]
- 912f Hub in Apple 30" Cinema Display
- 9221 Apple 30" Cinema Display
+ 912f Hub in 30" Cinema Display
+ 9221 30" Cinema Display
+ ffff Bluetooth in DFU mode - Driver
05ad Y.C. Cable U.S.A., Inc.
05ae Synopsys, Inc.
05af Jing-Mold Enterprise Co., Ltd
+ 0821 IDE to
+ 9167 KB 9151B - 678
+ 9267 KB 9251B - 678 Mouse
05b0 Fountain Technologies, Inc.
05b1 First International Computer, Inc.
+ 1389 Bluetooth Wireless Adapter
05b4 LG Semicon Co., Ltd
4857 M-Any DAH-210
6001 Digisette DUO-MP3 AR-100
@@ -1928,13 +4952,19 @@
05c1 Kawasaki Microelectronics, Inc.
05c2 Media Phonics (Suisse) S.A.
05c5 Digi International, Inc.
+ 0002 AccelePort USB 2
+ 0004 AccelePort USB 4
+ 0008 AccelePort USB 8
05c6 Qualcomm, Inc.
3100 CDMA Wireless Modem/Phone
3196 CDMA Wireless Modem
3197 CDMA Wireless Modem/Phone
05c7 Qtronix Corp.
+ 0113 PC Line Mouse
1001 Lynx Mouse
+ 2001 Keyboard
2011 SCorpius Keyboard
+ 6001 Ten-Keypad
05c8 Cheng Uei Precision Industry Co., Ltd (Foxlink)
05c9 Semtech Corp.
05ca Ricoh Co., Ltd
@@ -1942,20 +4972,33 @@
0325 Caplio GX (ptp)
032d Caplio GX 8 (ptp)
032f Caplio R3 (ptp)
+ 03a1 IS200e
+ 0403 Printing Support
+ 0405 Type 101
+ 0406 Type 102
+ 1830 Visual Communication Camera VGP-VCC2
+ 1835 Visual Communication Camera VGP-VCC5
+ 1870 Webcam 1000
2201 RDC-7 Camera
2202 Caplio RR30
2203 Caplio 300G
2204 Caplio G3
2205 Caplio RR30 / Medion MD 6126 Camera
+ 2206 Konica DG-3Z
+ 2207 Caplio Pro G3
2208 Caplio G4
+ 2209 Caplio 400G wide
+ 220a KONICA MINOLTA DG-4Wide
220b Caplio RX
220c Caplio GX
220d Caplio R1/RZ1
220e Sea & Sea 5000G
220f Rollei dr5 / Rollei dr5 (PTP mode)
+ 2211 Caplio R1S
2212 Caplio R1v Camera
2213 Caplio R2
2214 Caplio GX 8
+ 2215 DSC 725
2216 Caplio R3
2222 RDC-i500
05cb PowerVision Technologies, Inc.
@@ -1967,12 +5010,14 @@
2267 MicroLink 56k (V.250)
2280 MicroLink 56k Fun
3000 Micolink USB2Ethernet [pegasus]
+ 3100 AirLancer USB-11
3363 MicroLink ADSL Fun
05cd Silicom, Ltd
05ce sci-worx GmbH
05cf Sung Forn Co., Ltd
05d0 GE Medical Systems Lunar
05d1 Brainboxes, Ltd
+ 0003 Bluetooth Adapter BL-554
05d2 Wave Systems Corp.
05d3 Tohoku Ricoh Co., Ltd
05d5 Super Gate Technology Co., Ltd
@@ -1981,70 +5026,265 @@
0099 10Mbps Ethernet [klsi]
05d8 Ultima Electronics Corp.
4001 Artec Ultima 2000
- 4002 Artec Ultima 2000 (GT6801 based)/Lifetec LT9385 Scanner
+ 4002 Artec Ultima 2000 (GT6801 based)/Lifetec LT9385/ScanMagic 1200 UB Plus Scanner
4003 Artec E+ 48U
4004 Artec E+ Pro
+ 4005 MEM48U
+ 4006 TRUST EASY WEBSCAN 19200
+ 4007 TRUST 240H EASY WEBSCAN GOLD
4008 Trust Easy Webscan 19200
4009 Umax Astraslim
+ 4013 IT Scan 1200
8105 Artec T1 USB TVBOX (cold)
8106 Artec T1 USB TVBOX (warm)
8107 Artec T1 USB TVBOX with AN2235 (cold)
8108 Artec T1 USB TVBOX with AN2235 (warm)
8109 Artec T1 USB2.0 TVBOX (cold
05d9 Axiohm Transaction Solutions
+ a225 A225 Printer
+ a758 A758 Printer
+ a794 A794 Printer
05da Microtek International, Inc.
+ 0091 ScanMaker X6u
0093 ScanMaker V6USL
0094 Phantom 336CX/C3
0099 ScanMaker X6/X6U
009a Phantom C6
00a0 Phantom 336CX/C3 (#2)
+ 00a3 ScanMaker V6USL
+ 00ac ScanMaker V6UL
00b6 ScanMaker V6UPL
+ 00ef ScanMaker V6UPL
1006 Jenoptik JD350 entrance
1011 NHJ Che-ez! Kiss Digital Camera
1018 Digital Dream Enigma 1.3
1020 Digital Dream l'espion xtra
+ 1025 Take-it Still Camera Device
+ 1026 Take-it
+ 1043 Take-It 1300 DSC Bulk Driver
1045 Take-it D1
+ 1047 Take-it Camera Composite Device
+ 1048 Take-it Q3
+ 1049 3M Still Camera Device
+ 1051 Camcorder Series
+ 1052 Mass Storage Device
+ 1053 Take-it DV Composite Device
+ 1054 Mass Storage Device
+ 1055 Digital Camera Series(536)
+ 1056 Mass Storage Device
+ 1057 Take-it DSC Camera Device(536)
+ 1058 Mass Storage Device
+ 1059 Camcorder DSC Series
+ 1060 Microtek Take-it MV500
+ 2007 ArtixScan DI 1210
+ 200c 1394_USB2 Scanner
+ 200e ArtixScan DI 810
+ 2017 UF ICE Scanner
+ 201c 4800 Scanner
+ 201d ArtixScan DI 1610
+ 201f 4800 Scanner-ICE
+ 202e ArtixScan DI 2020
+ 208b ScanMaker 6800
+ 208f ArtixScan DI 2010
+ 209e ScanMaker 4700LP
+ 20a7 ScanMaker 5600
+ 20b0 ScanMaker X12USL
+ 20b1 ScanMaker 8700
+ 20b4 ScanMaker 4700
+ 20bd ScanMaker 5700
+ 20c9 ScanMaker 6700
+ 20d2 Microtek ArtixScan 1800f
+ 20d6 PS4000
+ 20de ScanMaker 9800XL
+ 20e0 ScanMaker 9700XL
+ 20ed ScanMaker 4700
+ 20ee Micortek ScanMaker X12USL
+ 3008 Scanner
+ 300a 4800 ICE Scanner
+ 300b 4800 Scanner
+ 300f MiniScan C5
+ 3020 4800dpi Scanner
+ 3021 1200dpi Scanner
+ 3022 Scanner 4800dpi
+ 3023 USB1200II Scanner
+ 30c1 USB600 Scanner
30ce ScanMaker 3800
30cf ScanMaker 4800
+ 30d4 USB1200 Scanner
+ 30d8 Scanner
+ 30d9 USB2400 Scanner
+ 30e4 ScanMaker 4100
+ 30e5 USB3200 Scanner
30e6 ScanMaker i320
+ 40b3 ScanMaker 3600
+ 40b8 ScanMaker 3700
+ 40c7 ScanMaker 4600
40ca ScanMaker 3600
+ 40cb ScanMaker 3700
+ 40dd ScanMaker 3750i
+ 40ff ScanMaker 3600
+ 5003 Goya
+ 5013 3200 Scanner
80a3 ScanMaker V6USL (#2)
80ac ScanMaker V6UL/SpicyU
05db Sun Corp. (Suntac?)
+ 0003 SUNTAC U-Cable type D2
+ 0005 SUNTAC U-Cable type P1
+ 0009 SUNTAC Slipper U
+ 000a SUNTAC Ir-Trinity
+ 000b SUNTAC U-Cable type A3
+ 0011 SUNTAC U-Cable type A4
05dc Lexar Media, Inc.
+ 0001 jumpSHOT CompactFlash Reader
+ 0002 JumpShot
+ 0003 JumpShot
0080 Jumpdrive Secure 64MB
+ 0081 RBC Compact Flash Drive
+ 00a7 JumpDrive Impact
+ 0100 JumpDrive PRO
0200 JumpDrive 2.0 Pro
0300 Jumpdrive Geysr
+ 0301 JumpDrive Classic
+ 0302 JD Micro
+ 0303 JD Micro Pro
+ 0304 JD Secure II
+ 0310 JumpDrive
+ 0311 JumpDrive Classic
+ 0312 JD Micro
+ 0313 JD Micro Pro
+ 0320 JumpDrive
+ 0321 JD Micro
+ 0322 JD Micro Pro
+ 0323 UFC
+ 0330 JumpDrive Expression
+ 0340 JumpDrive TAD
+ 0350 Express Card
+ 0400 UFDC
+ 0401 UFDC
+ 0403 Locked B Device
+ 0405 Locked C Device
+ 0407 Locked D Device
+ 0409 Locked E Device
+ 040b Locked F Device
+ 040d Locked G Device
+ 040f Locked H Device
+ 0410 JumpDrive
+ 0411 JumpDrive
+ 0413 Locked J Device
+ 0415 Locked K Device
+ 0417 Locked L Device
+ 0419 Locked M Device
+ 041b Locked N Device
+ 041d Locked O Device
+ 041f Locked P Device
+ 0420 JumpDrive
+ 0421 JumpDrive
+ 0423 Locked R Device
+ 0425 Locked S Device
+ 0427 Locked T Device
+ 0429 Locked U Device
+ 042b Locked V Device
+ 042d Locked W Device
+ 042f Locked X Device
+ 0431 Locked Y Device
+ 0433 Locked Z Device
+ 4d02 MP3 Player
+ 4d12 MP3 Player
+ a300 JumpDrive2
+ a400 JumpDrive trade; Pro 40-501
a410 JumpDrive 128MB/256MB
+ a411 JumpDrive Traveler
+ a420 JumpDrive Pro
+ a421 JumpDrive Pro II
+ a422 JumpDrive Micro Pro
+ a430 JumpDrive Secure
+ a431 JumpDrive Secure II
+ a432 JumpDrive Classic
+ a440 JumpDrive Lightning
+ a450 JumpDrive TouchGuard
+ a460 JD Mercury
+ a501 JumpDrive Classic
+ a510 JumpDrive Sport
+ a530 JumpDrive Expression
+ a531 JumpDrive Secure II
+ a560 JumpDrive FireFly
+ a701 JumpDrive FireFly
+ b002 USB CF Reader
b018 Multi-Card Reader
05dd Delta Electronics, Inc.
+ ff31 AWU-120
+ ff32 FriendlyNET AeroLAN AL2011
+ ff35 PCW 100 - Wireless 802.11b Adapter
+ ff91 2Wire PC Port Phoneline 10Mbps Adapter
05df Silicon Vision, Inc.
05e0 Symbol Technologies
+ 0700 Bar Code Scanner (CS1504)
+ 0800 Spectrum24 Wireless LAN Adapter
+ 1200 DS6608 Bar Code Scanner
+ 1900 SNAPI Imaging Device
+ 2000 MC3090 Rugged Mobile Computer
+ 200d MC70 Rugged Mobile Computer
05e1 Syntek Semiconductor Co., Ltd
+ 0500 DC-112X
+ 0501 WebCam, Chipset DC-1125 similar to 174f:a311 - Asus F2F, F2J, F3J, F3T, G1, Z53JA
+ 0890 STK011 Camera
+ 0892 STK013 Camera
+ 0895 STK016 Camera
+ 0896 STK017 Camera
05e2 ElecVision, Inc.
05e3 Genesys Logic, Inc.
000a Keyboard with PS/2 Port
000b Mouse
0100 Nintendo Game Boy Advance SP
0120 Pacific Image Electronics PrimeFilm 1800u slide/negative scanner
+ 0131 CF/SM Reader/Writer
+ 0142 Multiple Slides Scanner-3600
+ 0143 Multiple Frames Film Scanner-36series
+ 0180 Plustek Scanner
+ 0182 Wize Media 1000
+ 0189 ScanJet 4600 series
+ 018a Xerox 6400
0300 GLUSB98PT Parallel Port
+ 0301 USB2LPT Cable Release2
0406 Hub
+ 0501 GL620USB Host-Host interface
0502 GL620USB GeneLink USB-USB Bridge
+ 0504 HID Keyboard Filter
0604 USB 1.1 Hub
0605 USB 2.0 Hub [ednet]
- 0606 D-Link DUB-H4 USB 2.0 Hub
+ 0606 USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub
0608 USB-2.0 4-Port HUB
0660 USB 2.0 Hub
0700 SIIG US2256 CompactFlash Card Reader
0701 USB 2.0 IDE Adapter
0702 USB 2.0 IDE Adapter
0703 Card Reader
+ 0704 Card Reader
+ 0705 Card Reader
+ 0706 Card Reader
+ 0707 Card Reader
+ 0708 Card Reader
+ 0709 Card Reader
+ 070a Pen Flash
+ 070b DMHS1B Rev 3 DFU Adapter
070e X-PRO CR20xA USB 2.0 Internal Card Reader
+ 070f Pen Flash
0710 USB 2.0 33-in-1 Card Reader
+ 0711 Card Reader
+ 0712 Delkin Mass Storage Device
0715 USB 2.0 microSD Reader
0760 USB 2.0 Card Reader/Writer
- 07A0 Pen Flash
+ 0761 Genesys Mass Storage Device
+ 0780 USBFS DFU Adapter
+ 07a0 Pen Flash
+ 0927 Card Reader
1205 Afilias Optical Mouse H3003
+ a700 Pen Flash
+ f102 VX7012 TV Box
+ f103 VX7012 TV Box
+ f104 VX7012 TV Box
+ fd21 3M TL20 Temperature Logger
+ fe00 Razer Mouse
05e4 Red Wing Corp.
05e5 Fuji Electric Co., Ltd
05e6 Keithley Instruments
@@ -2052,6 +5292,11 @@
05e9 Kawasaki LSI
0008 KL5KUSB101B Ethernet [klsi]
0009 Sony 10Mbps Ethernet [pegasus]
+ 000c USB-to-RS-232
+ 000d USB-to-RS-232
+ 0014 RS-232 J104
+ 0040 Ethernet Adapter
+ 2008 Ethernet Adapter
05eb FFC, Ltd
05ec COM21, Inc.
05ee Cytechinfo Inc.
@@ -2063,6 +5308,7 @@
0101 DA-Port DAC
05f1 Compass Communications
05f2 Dexin Corp., Ltd
+ 0010 AQ Mouse
05f3 PI Engineering, Inc.
0007 Kinesis Advantage PRO MPC/USB Keyboard
0081 Kinesis Integrated Hub
@@ -2075,21 +5321,31 @@
05f7 RFC Distribution(s) PTE, Ltd
05f9 PSC Scanning, Inc.
05fa Siemens Telecommunications Systems, Ltd
+ 3301 Keyboard with PS/2 Mouse Port
+ 3302 Keyboard
+ 3303 Keyboard with PS/2 Mouse Port
05fc Harman Multimedia
+ 7849 Harman/Kardon SoundSticks
05fd InterAct, Inc.
+ 0239 SV-239 HammerHead Digital
0251 Raider Pro
0253 ProPad 8 Digital
+ 0286 SV-286 Cyclone Digital
262a 3dfx HammerHead FX
+ 262f HammerHead Fx
daae Game Shark
05fe Chic Technology Corp.
0001 Mouse
+ 0003 Cypress USB Mouse
0005 Viewmaster 4D Browser Mouse
0007 Twinhead Mouse
0009 Inland Pro 4500/5000 Mouse
0011 Browser Mouse
+ 1010 Optical Wireless
05ff LeCroy Corp.
0600 Barco Display Systems
0601 Jazz Hipster Corp.
+ 0003 Internet Security Co., Ltd. SecureKey
0602 Vista Imaging, Inc.
1001 ViCam WebCam
0603 Novatek Microelectronics Corp.
@@ -2101,11 +5357,19 @@
0607 Bridge Information Co., Ltd
0608 Genrad Ads
0609 SMK Manufacturing, Inc.
+ 031d eHome Infrared Receiver
+ 0322 eHome Infrared Receiver
+ ff12 SMK Bluetooth Device
060a Worthington Data Solutions, Inc.
060b Solid Year
0001 MacAlly Keyboard
+ 1006 Japanese Keyboard - 260U
2101 Keyboard
5811 ACK-571U Wireless Keyboard
+ 5903 Japanese Keyboard - 595U
+ 6001 SolidTek USB 2p HUB
+ 6002 SolidTek USB Keyboard
+ 6003 Japanese Keyboard - 600HM
a001 Maxwell Compact Pc PM3
060c EEH Datalink GmbH
060d Auctor Corp.
@@ -2121,6 +5385,11 @@
0618 MacAlly
0101 Mouse
0619 Seiko Instruments, Inc.
+ 0101 SLP-100 Driver
+ 0102 SLP-200 Driver
+ 0103 SLP-100N Driver
+ 0104 SLP-200N Driver
+ 0105 SLP-240 Driver
061a Veridicom International, Inc.
0110 5thSense Fingerprint Sensor
0200 FPS200 Fingerprint Sensor
@@ -2130,7 +5399,13 @@
061c Act Labs, Ltd
061d Quatech, Inc.
061e Nissei Electric Co.
+ 0001 nissei 128DE-USB -
+ 0010 nissei 128DE-PNA -
0620 Alaris, Inc.
+ 0004 QuickVideo weeCam
+ 0007 QuickVideo weeCam
+ 000a QuickVideo weeCam
+ 000b QuickVideo weeCam
0621 ODU-Steckverbindungssysteme GmbH & Co. KG
0622 Iotech, Inc.
0623 Littelfuse, Inc.
@@ -2141,8 +5416,10 @@
0628 Tasking Software, Inc.
0629 Zida Technologies, Ltd
062a Creative Labs
+ 0000 Optical mouse
0001 Notebook Optical Mouse
0201 Defender Office Keyboard (K7310) S Zodiak KM-9010
+ 9003 VoIP Conference Hub (A16GH)
9004 USR9602 USB Internet Mini Phone
062b Greatlink Electronics Taiwan, Ltd
062c Institute for Information Industry
@@ -2154,10 +5431,16 @@
0634 Micron Technology, Inc.
0635 Methode Electronics, Inc.
0636 Sierra Imaging, Inc.
+ 0003 Vivicam 35Xx
0638 Avision, Inc.
0268 iVina 1200U Scanner
026a Minolta Dimage Scan Dual II
0a10 iVina FB1600/UMAX Astra 4500
+ 0a13 AV600U
+ 0a16 SC-215
+ 0a30 UMAX Astra 6700 Scanner
+ 0a41 Avision AM3000/MF3000 Series
+ 0f01 fi-4010CU
4004 Minolta Dimage Scan Elite II
0639 Chrontel, Inc.
063a Techwin Corp.
@@ -2171,7 +5454,11 @@
0642 VIA Medical Corp.
0644 TEAC Corp.
0000 Floppy
- 800D TASCAM Portastudio DP-01FX
+ 1000 CD-ROM Drive
+ 800d TASCAM Portastudio DP-01FX
+ d001 CD-R/RW Unit
+ d002 CD-R/RW Unit
+ d010 CD-RW/DVD Unit
0645 Who? Vision Systems, Inc.
0646 UMAX
0647 Acton Research Corp.
@@ -2189,12 +5476,19 @@
064c Ji-Haw Industrial Co., Ltd
064d TriTech Microelectronics, Ltd
064e Suyin Corp.
+ a101 Laptop integrated WebCam
064f WIBU-Systems AG
+ 0bd7 BOX/U
+ 0bd8 BOX/RU
0650 Dynapro Systems
0651 Likom Technology Sdn. Bhd.
0652 Stargate Solutions, Inc.
0653 CNF, Inc.
0654 Granite Microsystems, Inc.
+ 0005 Device Bay Controller
+ 0006 Hub
+ 0007 Device Bay Controller
+ 0016 Hub
0655 Space Shuttle Hi-Tech Co., Ltd
0656 Glory Mark Electronic, Ltd
0657 Tekcon Electronics Corp.
@@ -2218,25 +5512,123 @@
066b Linksys, Inc.
0105 SCM eUSB SmartMedia Card Reader
010a Melco MCR-U2 SmartMedia / CompactFlash Reader
+ 200c USB10TX
2202 USB10TX Ethernet [pegasus]
2203 USB100TX Ethernet [pegasus]
2204 USB100TX HomePNA Ethernet [pegasus]
2206 USB Ethernet [pegasus]
+ 2207 HomeLink Phoneline 10M Network Adapter
2211 WUSB11 802.11b Adapter
2212 WUSB11v2.5 802.11b Adapter
2213 WUSB12v1.1 802.11b Adapter
+ 2219 Instant Wireless Network Adapter
+ 400b USB10TX
066d Entrega, Inc.
066e Acer Semiconductor America, Inc.
066f SigmaTel, Inc.
+ 003b MP3 Player
+ 003e MP3 Player
+ 003f MP3 Player
+ 0040 MP3 Player
+ 0041 MP3 Player
+ 0042 MP3 Player
+ 0043 MP3 Player
004b A-Max PA11 MP3 Player
3400 STMP3400 D-Major MP3 Player
3410 STMP3410 D-Major MP3 Player
+ 3500 Player Recovery Device
4200 STIr4200 IrDA Bridge
4210 STIr4210 IrDA Bridge
- 8000 SigmaTel MSCN USB Device [MP3 Player]
+ 8000 MSCN MP3 Player
+ 8001 SigmaTel MSCN Audio Player
8004 MSCNMMC MP3 Player
+ 8008 i-Bead 100 MP3 Player
+ 8020 MP3 Player
+ 8034 MP3 Player
+ 8036 MP3 Player
+ 8038 MP3 Player
+ 8056 MP3 Player
+ 8060 MP3 Player
+ 8066 MP3 Player
+ 807e MP3 Player
+ 8092 MP3 Player
+ 8096 MP3 Player
+ 809a MP3 Player
+ 80aa MP3 Player
+ 80ac MP3 Player
+ 80b8 MP3 Player
+ 80ba MP3 Player
+ 80bc MP3 Player
+ 80bf MP3 Player
+ 80c5 MP3 Player
+ 80c8 MP3 Player
+ 80ca MP3 Player
+ 80cc MP3 Player
+ 8104 MP3 Player
+ 8106 MP3 Player
+ 8108 MP3 Player
+ 810a MP3 Player
+ 810c MP3 Player
+ 8122 MP3 Player
+ 8124 MP3 Player
+ 8126 MP3 Player
+ 8128 MP3 Player
+ 8134 MP3 Player
+ 8136 MP3 Player
+ 8138 MP3 Player
+ 813a MP3 Player
+ 813e MP3 Player
+ 8140 MP3 Player
+ 8142 MP3 Player
+ 8144 MP3 Player
+ 8146 MP3 Player
+ 8148 MP3 Player
+ 814c MP3 Player
+ 8201 MP3 Player
8202 Jens of Sweden / I-BEAD 150M/150H MP3 player
+ 8203 MP3 Player
+ 8204 MP3 Player
+ 8205 MP3 Player
8206 Digital MP3 Music Player
+ 8207 MP3 Player
+ 8208 MP3 Player
+ 8209 MP3 Player
+ 820a MP3 Player
+ 820b MP3 Player
+ 820c MP3 Player
+ 820d MP3 Player
+ 820e MP3 Player
+ 820f MP3 Player
+ 8210 MP3 Player
+ 8211 MP3 Player
+ 8212 MP3 Player
+ 8213 MP3 Player
+ 8214 MP3 Player
+ 8215 MP3 Player
+ 8216 MP3 Player
+ 8217 MP3 Player
+ 8218 MP3 Player
+ 8219 MP3 Player
+ 821a MP3 Player
+ 821b MP3 Player
+ 821c MP3 Player
+ 821d MP3 Player
+ 821e MP3 Player
+ 821f MP3 Player
+ 8220 MP3 Player
+ 8221 MP3 Player
+ 8222 MP3 Player
+ 8223 MP3 Player
+ 8224 MP3 Player
+ 8225 MP3 Player
+ 8226 MP3 Player
+ 8227 MP3 Player
+ 8228 MP3 Player
+ 8229 MP3 Player
+ 8230 MP3 Player
+ 9000 MP3 Player
+ 9001 MP3 Player
+ 9002 MP3 Player
0672 Labtec, Inc.
1041 LCS1040 Speaker System
5000 SpaceBall 4000 FLX
@@ -2245,16 +5637,22 @@
0674 Key Mouse Electronic Enterprise Co., Ltd
0675 Draytech
0110 Vigor 128 ISDN TA
+ 0550 Vigor550
0676 Teles AG
0677 Aiwa Co., Ltd
+ 07d5 TM-ED1285(USB)
0fa1 TD-U8000 Tape Drive
0678 ACard Technology Corp.
067b Prolific Technology, Inc.
0000 PL2301 USB-USB Bridge
0001 PL2302 USB-USB Bridge
+ 04bb PL2303 Serial (IODATA USB-RSAQ2)
+ 0610 Onext EG210U MODEM
+ 0611 AlDiga AL-11U Quad-band GSM/GPRS/EDGE modem
2303 PL2303 Serial Port
2305 PL2305 Parallel Port
2307 PL2307 USB-ATAPI4 Bridge
+ 2313 FITEL PHS U Cable Adaptor
2315 Flash Disk Embedded Hub
2316 Flash Disk Security Device
2317 Mass Storage Device
@@ -2262,26 +5660,63 @@
2507 PL2507 Hi-speed USB to IDE bridge controller
2515 Flash Disk Embedded Hub
2517 Flash Disk Mass Storage Device
- 3507 PL3507 ATAPI6 Bridge
+ 25a1 PL25A1 Host-Host Bridge
+ 3400 Hi-Speed Flash Disk with TruePrint AES3400
+ 3500 Hi-Speed Flash Disk with TruePrint AES3500
+ 3507 PL3507 ATAPI6 Bridge
+ aaa0 Prolific Pharos
+ aaa2 PL2303 Serial Adapter (IODATA USB-RSAQ3)
067c Efficient Networks, Inc.
1001 Siemens SpeedStream 100MBps Ethernet
1022 Siemens SpeedStream 1022 802.11b Adapter
+ 1023 SpeedStream Wireless
+ 4020 SpeedStream 4020 ATM/ADSL Installer
+ 4031 Efficient ADSL Modem
+ 4032 SpeedStream 4031 ATM/ADSL Installer
+ 4033 SpeedStream 4031 ATM/ADSL Installer
4060 Alcatel Speedstream 4060 ADSL Modem
+ 4062 Efficient Networks 4060 Loader
+ 5667 Efficient Networks Virtual Bus for ADSL Modem
+ c031 SpeedStream 4031 ATM/ADSL Installer
+ c032 SpeedStream 4031 ATM/ADSL Installer
+ c033 SpeedStream 4031 ATM/ADSL Installer
+ c060 SpeedStream 4060 Miniport ATM/ADSL Adapter
+ d667 Efficient Networks Virtual Bus for ADSL Modem
+ e240 Speedstream Ethernet Adapter E240
+ e540 Speedstream Ethernet Adapter E240
067d Hohner Corp.
067e Intermec
+ 1001 Mobile Computer
067f Virata, Ltd
+ 4552 DSL-200 ADSL Modem
+ 6542 DSL Modem
+ 6549 DSL Modem
+ 7541 DSL Modem
0680 Realtek Semiconductor Corp., CPP Div. (Avance Logic)
0002 Arowana Optical Wheel Mouse MSOP-01
0681 Siemens Information and Communication Products
+ 0001 Dect Base
0002 Gigaset 3075 Passive ISDN
0005 ID-Mouse with Fingerprint Reader
0012 I-Gate 802.11b Adapter
+ 001b WLL013
+ 0022 Gigaset SX353 ISDN
002b A-100-I ADSL Modem
+ 002e ADSL Router_S-141
+ 0034 GSM module MC35/ES75 USB Modem
+ 3c06 54g USB Network Adapter
0682 Victor Company of Japan, Ltd
0684 Actiontec Electronics, Inc.
0686 Minolta Co., Ltd
+ 2001 PagePro 4110W
+ 3001 PagePro 4100
+ 3006 PagePro 1250W
+ 302e Develop D 1650iD PCL
+ 3034 Develop D 2050iD PCL
+ 4001 Dimage 2300
4003 Dimage 2330 Zoom Camera
4004 Scan Elite II
+ 4005 Minolta DiMAGE E201 Mass Storage Device
4006 Dimage 7 Camera
4007 Dimage S304 Camera
4008 Dimage 5 Camera
@@ -2290,6 +5725,7 @@
400b Dimage 7i Camera
400c Dimage F100 Camera
400d Scan Dual III
+ 400e Dimage 5400
400f Dimage 7Hi Camera
4010 Dimage Xi Camera
4011 Dimage F300 Camera
@@ -2297,6 +5733,7 @@
4014 Dimage S414 Camera
4015 Dimage XT Camera [storage]
4016 Dimage XT Camera [remote mode]
+ 4017 Dimage E223
4018 Dimage Z1 Camera
401a Dimage A1 Camera
401c Dimage X20 Camera
@@ -2305,7 +5742,9 @@
068b Potrans International, Inc.
068e CH Products, Inc.
00e2 HFX OEM Joystick
+ 00f1 Pro Throttle
00f2 Flight Sim Pedals
+ 00f3 Fighterstick
00ff Flight Sim Yoke
0500 GameStick 3D
0501 CH Pro Pedals
@@ -2315,6 +5754,9 @@
0002 FlashGate SmartMedia Card Reader
0003 FlashGate CompactFlash Card Reader
0005 FlashGate
+ 0006 SM PCCard R/W and SPD
+ 0007 FlashGate ME (Authenticated)
+ 000a SDCard/MMC Reader/Writer
0694 Lego Group
0001 Mindstorms Tower
0698 Chuntex (CTX)
@@ -2324,44 +5766,107 @@
069a Askey Computer Corp.
0001 VC010 WebCam [pwc]
0303 Cable Modem
+ 0311 ADSL Router Remote NDIS Device
+ 0318 Remote NDIS Device
+ 0319 220V Remote NDIS Device
+ 0320 IEEE 802.11b Wireless LAN Card
0321 Dynalink WLL013 / Compex WLU11A 802.11b Adapter
+ 0402 Scientific Atlanta WebSTAR 100 & 200 series Cable Modem
+ 0811 BT Virtual Bus for Helium
0821 BT Voyager 1010 802.11b Adapter
+ 4402 Scientific Atlanta WebSTAR 2000 series Cable Modem
+ 4403 Scientific Atlanta WebSTAR 300 series Cable Modem
+ 4501 Scientific-Atlanta WebSTAR 2000 series Cable Modem
069b Thomson, Inc.
0704 DCM245 Cable Modem
+ 070c MP3 Player
+ 070d MP3 Player
+ 070e MP3 Player
070f RCA Lyra RD1071 MP3 Player
2220 RCA Kazoo RD1000 MP3 Player
300a RCA Lyra MP3 Player
+ 3012 MP3 Player
+ 3013 MP3 Player
5557 RCA CDS6300
069d Hughes Network Systems (HNS)
+ 0001 Satellite Receiver Device
0002 Satellite Device
069e Marx
0005 CryptoBox v1.2
069f Allied Data Technologies BV
0010 Tornado Speakerphone FaxModem 56.0
0011 Tornado Speakerphone FaxModem 56.0
+ 1000 ADT VvBus for CopperJet
06a2 Topro Technology, Inc.
06a3 Saitek PLC
0006 Cyborg Gold Joystick
+ 0109 P880 Pad
+ 0160 ST290 Pro
0200 Xbox Adrenalin Hub
0241 Xbox Adrenalin Gamepad
+ 0255 X52 Flight Controller
+ 040b P990 Dual Analog Pad
+ 040c P2900 Wireless Pad
0422 ST90 Joystick
+ 0460 ST290 Pro Flight Stick
+ 0463 ST290
+ 0464 Cyborg Evo
+ 0471 Cyborg Graphite Stick
+ 0501 R100 Sports Wheel
+ 0502 ST200 Stick
+ 0506 R220 Digital Wheel
+ 051e Cyborg Digital II Stick
052d P750 Gamepad
+ 053c X45 Flight Controller
053f X36F Flightstick
+ 056c P2000 Tilt Pad
+ 056f P2000 Tilt Pad
+ 05d2 PC Dash 2
+ 075c X52 Flight Controller
+ 0805 R440 Force Wheel
+ 1003 GM2 Action Pad
+ 1009 Action Pad
100a SP550 Pad and Joystick Combo
100b SP550 Pad
+ 1509 P3000 Wireless Pad
+ 1589 P3000 Wireless Pad
+ 2541 X45 Flight Controller
3509 P3000 RF GamePad
+ 353e Cyborg Evo Wireless
+ 3589 P3000 Wireless Pad
+ 35be Cyborg Evo
+ 5509 P3000 Wireless Pad
+ 8000 Gamers' Keyboard
+ 801e Cyborg 3D Digital Stick II
+ 8021 Eclipse II Keyboard
+ 802d P750 Pad
+ 803f X36 Flight Controller
+ 806f P2000 Tilt Pad
+ 80c0 Pro Gamer Command Unit
+ a502 Gaming Mouse
+ ff04 R440 Force Wheel
ff0c Cyborg Force Rumble Pad
+ ff0d P2600 Rumble Force Pad
+ ff12 Cyborg 3D Force Stick
+ ff17 ST 330 Rumble Force Stick
+ ff52 Cyborg 3D Rumble Force Joystick
ffb5 Cyborg Evo Force Joystick
06a4 Xiamen Doowell Electron Co., Ltd
06a5 Divio
0000 Typhoon Webcam 100k [nw8000]
d001 ProLink DS3303u WebCam
d800 Chicony TwinkleCam
+ d820 Wize Media 1000
06a7 MicroStore, Inc.
06a8 Topaz Systems, Inc.
0042 SignatureGem 1X5 Pad
0043 SignatureGem 1X5-HID Pad
06a9 Westell
+ 0005 WireSpeed Dual Connect Modem
+ 0006 WireSpeed Dual Connect Modem
+ 000a WireSpeed Dual Connect Modem
+ 000b WireSpeed Dual Connect Modem
+ 000e 802.11g Adapter
06aa Sysgration, Ltd
06ac Fujitsu Laboratories of America, Inc.
06ad Greatland Electronics Taiwan, Ltd
@@ -2370,16 +5875,22 @@
06b8 Pixela Corp.
06b9 Alcatel Telecom
0121 SpeedTouch 121g Wireless Dongle
+ 2001 SPEED TOUCH Card
4061 SpeedTouch ISDN or ADSL Modem
a5a5 DynaMiTe Modem
06ba Smooth Cord & Connector Co., Ltd
06bb EDA, Inc.
06bc Oki Data Corp.
+ 000b Okipage 14ex Printer
06bd AGFA-Gevaert NV
0001 SnapScan 1212U
0002 SnapScan 1236U
0100 SnapScan Touch
+ 0101 SNAPSCAN ELITE
+ 0200 ScanMaker 8700
+ 02bf DUOSCAN f40
0400 CL30
+ 0401 Mass Storage
0403 ePhoto CL18 Camera
0404 ePhoto CL20 Camera
2061 SnapScan 1212U (?)
@@ -2392,6 +5903,8 @@
20fd SnapScan e52
20ff SnapScan e42
06be AME Optimedia Technology Co., Ltd
+ 1005 Dazzle DPVM! (1005)
+ d001 P35U Camera Capture
06bf Leoco Corp.
06c2 Phidgets Inc. (formerly GLAB)
0030 PhidgetRFID
@@ -2420,10 +5933,28 @@
06c6 Infowave Software, Inc.
06c8 SIIG, Inc.
06c9 Taxan (Europe), Ltd
+ 0005 Monitor Control
+ 0007 Monitor Control
+ 0009 Monitor Control
06ca Newer Technology, Inc.
06cb Synaptics, Inc.
+ 0001 HID Device
+ 0002 HID Device
+ 0003 HID Device
+ 0005 Touchpad/FPS
+ 0006 HID Device
+ 0007 HID Device
+ 0008 HID Device
0009 Composite TouchPad and TrackPoint
+ 000e HID Device
+ 0010 Composite Human Interface Device
+ 0013 Human Interface Device
06cc Terayon Communication Systems
+ 0101 Cable Modem
+ 0102 Cable Modem
+ 0103 Cable Modem
+ 0104 Cable Modem
+ 0304 Cable Modem
06cd Keyspan
0101 USA-28 PDA [no firmware]
0102 USA-28X PDA [no firmware]
@@ -2437,18 +5968,28 @@
010a USA-49W serial adapter
010b USA-19Qi serial adapter [no firmware]
010c USA-19Qi serial adapter
+ 010d USA-19Q serial Adapter (no firmware)
+ 010e USA-19Q serial Adapter
010f USA-28 PDA
0110 USA-28Xb PDA
+ 0111 USA-18 serial Adapter
0112 USA-18X PDA
0113 USA-28Xb PDA [no firmware]
0114 USA-28Xa PDA [no firmware]
0115 USA-28Xa PDA
+ 0116 USA-18XA serial Adapter (no firmware)
+ 0117 USA-18XA serial Adapter
0118 USA-19QW PDA [no firmware]
0119 USA-19QW PDA
011a USA-49Wlc serial adapter [no firmware]
- 012a USA-49Wlc serial adapter
+ 011b MPR Serial Preloader (MPRQI)
+ 011c MPR Serial (MPRQI)
+ 011d MPR Serial Preloader (MPRQ)
+ 011e MPR Serial (MPRQ)
0121 USA-19hs serial adapter
+ 012a USA-49Wlc serial adapter
0201 Digital Media Remote
+ 0202 UIA-11 remote control
06cf SpheronVR AG
1010 PanoCam 10
1012 PanoCam 12/12X
@@ -2456,19 +5997,37 @@
0622 LapLink Gold USB-USB Bridge [net1080]
06d1 Daewoo Electronics Co., Ltd
06d3 Mitsubishi Electric Corp.
+ 0380 CP8000D Port
+ 0381 CP770D Port
+ 0385 CP900D Port
+ 0387 CP980D Port
+ 038b CP3020D Port
+ 038c CP900DW(ID) Port
+ 0393 CP9500D/DW Port
+ 0394 CP9000D/DW Port
+ 03a1 CP9550D/DW Port
06d4 Cisco Systems
06d5 Toshiba
4000 Japanese Keyboard
06d6 Aashima Technology B.V.
002d Trust PowerC@m 350FT
002e Trust PowerC@m 350FS
+ 0030 Trust 710 LCD POWERC@M ZOOM - MSD
+ 0031 Trust 710 LCD POWERC@M ZOOM
003a Trust PowerC@m 770Z
003c Trust 910z PowerC@m
+ 003f Trust 735S POWERC@M ZOOM, WDM DSC Bulk Driver
+ 0050 Trust 738AV LCD PV Digital Camera
+ 0062 TRUST 782AV LCD P. V. Video Capture
+ 0066 TRUST Digital PCTV and Movie Editor
+ 006b TRUST AUDIO VIDEO EDITOR
06d7 Network Computing Devices (NCD)
06d8 Technical Marketing Research, Inc.
06da Phoenixtec Power Co., Ltd
+ 0002 UPS
06db Paradyne
06dc Foxlink Image Technology Co., Ltd
+ 0012 Scan 1200c Scanner
0014 Prolink Winscan Pro 2448U
06de Heisei Electronics Co., Ltd
06e0 Multi-Tech Systems, Inc.
@@ -2478,24 +6037,133 @@
f107 MT5634ZBA-USB-V92 MultiModemUSB
06e1 ADS Technologies, Inc.
0008 UBS-10BT Ethernet [klsi]
- a190 Instand VCD Usb Capture
+ 0009 UBS-10BT Ethernet
+ 0833 Mass Storage Device
+ a160 Instant Video-To-Go RDX-160 (no firmware)
+ a161 Instant Video-To-Go RDX-160
+ a190 Instand VCD Capture
+ a191 Instant VideoXpress
+ a337 Mini DigitalTV
+ a701 DVD Xpress
+ b337 Mini DigitalTV
+ b701 DVD Xpress B
06e4 Alcatel Microelectronics
06e6 Tiger Jet Network, Inc.
+ 0200 Internet Phone
+ 0201 Internet Phone
+ 0202 Composite Device
+ 0203 Internet Phone
+ 0210 Composite Device
+ 0211 Internet Phone
+ 0212 Internet Phone
+ 031c Internet Phone
+ 031d Internet Phone
+ 031e Internet Phone
+ 3200 Composite Device
+ 3201 Internet Phone
+ 3202 Composite Device
+ 3203 Composite Device
+ 7200 Composite Device
+ 7210 Composite Device
+ 7250 Composite Device
+ 825c Internet Phone
+ 831c Internet Phone
+ 831d Composite Device
+ 831e Composite Device
+ b200 Composite Device
+ b201 Composite Device
+ b202 Internet Phone
+ b210 Internet Phone
+ b211 Composite Device
+ b212 Composite Device
+ b250 Composite Device
+ b251 Internet Phone
+ b252 Internet Phone
+ c200 Internet Phone
+ c201 Internet Phone
+ c202 Composite Device
+ c203 Internet Phone
+ c210 Personal PhoneGateway
+ c211 Personal PhoneGateway
+ c212 Personal PhoneGateway
+ c213 PPG Device
+ c25c Composite Device
+ c290 PPG Device
+ c291 PPG Device
+ c292 PPG Device
+ c293 Personal PhoneGateway
+ c31c Composite Device
+ c39c Personal PhoneGateway
+ c39d PPG Device
+ c39e PPG Device
+ c39f PPG Device
+ c700 Internet Phone
+ c701 Internet Phone
+ c702 Composite Device
+ c703 Internet Phone
+ c710 VoIP Combo Device
+ c711 VoIP Combo
+ c712 VoIP Combo Device
+ c713 VoIP Combo Device
+ cf00 Composite Device
+ cf01 Internet Phone
+ cf02 Internet Phone
+ cf03 Composite Device
+ d210 Personal PhoneGateway
+ d211 PPG Device
+ d212 PPG Device
+ d213 Personal PhoneGateway
+ d700 Composite Device
+ d701 Composite Device
+ d702 Internet Phone
+ d703 Composite Device
+ d710 VoIP Combo
+ d711 VoIP Combo Device
+ d712 VoIP Combo
+ d713 VoIP Combo
+ df00 Composite Device
+ df01 Composite Device
+ df02 Internet Phone
+ df03 Internet Phone
+ f200 Internet Phone
+ f201 Internet Phone
+ f202 Composite Device
+ f203 Composite Device
+ f210 Internet Phone
+ f250 Composite Device
+ f252 Internet Phone
+ f310 Internet Phone
+ f350 Composite Device
06ea Sirius Technologies
0001 NetCom Roadster II 56k
0002 Roadster II 56k
06eb PC Expert Tech. Co., Ltd
06ef I.A.C. Geometrische Ingenieurs B.V.
06f0 T.N.C Industrial Co., Ltd
+ de01 DualCam Video Camera
+ de02 DualCam Still Camera
06f1 Opcode Systems, Inc.
+ a011 SonicPort
+ a021 SonicPort Optical
06f2 Emine Technology Co.
+ 0011 KVM Switch Keyboard
06f6 Wintrend Technology Co., Ltd
+06f7 Wailly Technology Ltd
+ 0003 USB->Din 4 Adaptor
06f8 Guillemot Corp.
a300 Dual Analog Leader GamePad
+ b000 Hercules DJ Console
c000 Hercules Muse Pocket
+ d002 Hercules DJ Console
+ e000 HWGUSB2-54 WLAN
+ e010 HWGUSB2-54-LB
+ e020 HWGUSB2-54V2-AP
06fa HSD S.r.L
06fc Motorola Semiconductor Products Sector
06fd Boston Acoustics
+ 0101 Audio Device
+ 0102 Audio Device
+ 0201 2-piece Audio Device
06fe Gallant Computer, Inc.
0701 Supercomal Wire & Cable SDN. BHD.
0703 Bvtech Industry, Inc.
@@ -2504,11 +6172,16 @@
0707 Standard Microsystems Corp.
0100 2202 Ethernet [klsi]
0200 2202 Ethernet [pegasus]
+ 0201 EZ Connect USB Ethernet
+ ee04 SMCWUSB32 802.11b Wireless LAN Card
ee06 EZ-Connect 802.11g Adapter
ee13 EZ-Connect 802.11g Adapter
0708 Putercom Co., Ltd
+ 047e USB-1284 BRIDGE
0709 Silicon Systems, Ltd (SSL)
070a Oki Electric Industry Co., Ltd
+ 4002 Bluetooth Device
+ 4003 Bluetooth Device
070d Comoss Electronic Co., Ltd
070e Excel Cell Electronic Co., Ltd
0710 Connect Tech, Inc.
@@ -2516,10 +6189,13 @@
8001 WhiteHeat
0711 Magic Control Technology Corp.
0100 Hub
+ 0180 IRXpress Infrared Device
+ 0181 IRXpress Infrared Device
0200 BAY-3U1S1P Serial Port
0210 MCT1S Serial Port
0230 MCT-232 Serial Port
0231 PS/2 Mouse Port
+ 0232 Serial On Port
0240 PS/2 to USB Converter
0300 BAY-3U1S1P Parallel Port
0302 Parallel Port
@@ -2529,6 +6205,18 @@
0003 ADB to USB convertor
0717 ZNK Corp.
0718 Imation Corp.
+ 0002 SuperDisk 120MB
+ 0003 SuperDisk 120MB (Authenticated)
+ 0060 Flash Drive
+ 0061 Flash Drive
+ 0062 Flash Drive
+ 0063 Swivel Flash Drive
+ 0064 Flash Drive
+ 0065 Flash Drive
+ 0066 Flash Drive
+ 0067 Flash Drive
+ 0068 Flash Drive
+ 0084 USB Flash Drive Mini
0719 Tremon Enterprises Co., Ltd
071b Domain Technologies, Inc.
0002 DTI-56362-USB Digital Interface Unit
@@ -2538,42 +6226,86 @@
071c Xionics Document Technologies, Inc.
071d Eicon Networks Corp.
1000 Diva ISDN TA
+ 1003 Diva
+ 2000 Teledat Surf
071e Ariston Technologies
0723 Centillium Communications Corp.
+ 0002 Palladia 300/400 Adsl Modem
0726 Vanguard International Semiconductor-America
0729 Amitm
1000 USC-1000 Serial Port
072e Sunix Co., Ltd
072f Advanced Card Systems, Ltd
0001 AC1030-based SmartCard Reader
+ 0008 ACR 80 Smart Card Reader
+ 1000 PLDT Drive
+ 1001 PLDT Drive
+ 8002 AET63 BioTRUSTKey
+ 8003 ACR120
+ 8103 ACR120
9000 ACR38 AC1038-based Smart Card Reader
90cc ACR38 SmartCard Reader
+ 90cf ACR38 SAM Smart Card Reader
+ 90d0 PertoSmart EMV - Card Reader
0731 Susteen, Inc.
0528 SonyEricsson DCU-11 Cable
0732 Goldfull Electronics & Telecommunications Corp.
0733 ViewQuest Technologies, Inc.
+ 0101 Digital Video Camera
0110 VQ110
- 1311 Digital Dream Epsilon 1.3
- 2211 Jenoptik
0401 CS330 WebCam
0402 M-318B WebCam
0430 Intel Pro Share WebCam
+ 0630 VQ630 Dual Mode Digital Camera(Bulk)
0631 Hercules Dualpix
+ 0780 Smart Cam Deluxe(composite)
1310 Epsilon 1.3/Jenoptik JD C1.3/UMAX AstraPix 470
+ 1311 Digital Dream Epsilon 1.3
+ 2211 Jenoptik
0734 Lasat Communications A/S
0001 560V Modem
+ 0002 Lasat 560V Modem
+ 043a DVS Audio
0735 Asuscom Network
+ 2100 ISDN Adapter
+ 2101 ISDN Adapter
+ 6694 ISDN Adapter
c541 ISDN TA 280
0736 Lorom Industrial Co., Ltd
0738 Mad Catz, Inc.
-073b Suncom Technologies
+ 4507 XBox Device
+ 4516 XBox Device
+ 4520 XBox Device
+ 4526 XBox Device
+ 4536 XBox Device
+ 4540 XBox Device
+ 4556 XBox Device
+ 4566 XBox Device
+ 4576 XBox Device
+ 4586 XBox Device
+ 4588 XBox Device
073a Chaplet Systems, Inc.
+073b Suncom Technologies
073d Eutron S.p.a.
0005 Crypto Token
+ 0007 CryptoIdentity CCID
+ 0025 SmartKey 3
+ 0c00 Pocket Reader
+ 0d00 StarSign Bio Token 3.0 EU
+073c Industrial Electronic Engineers, Inc.
+ 0305 Pole Display (PC305-3415 2 x 20 Line Display)
+ 0322 Pole Display (PC322-3415 2 x 20 Line Display)
+ 0324 Pole Display (LB324-USB 4 x 20 Line Display)
+ 0330 Pole Display (P330-3415 2 x 20 Line Display)
+ 0450 Pole Display (L450-USB Graphic Line Display)
+ 0505 Pole Display (SPC505-3415 2 x 20 Line Display)
+ 0522 Pole Display (SPC522-3415 2 x 20 Line Display)
+ 0624 Pole Display (SP324-3415 4 x 20 Line Display)
073e NEC, Inc.
0301 Game Pad
0745 Syntech Information Co., Ltd
0746 Onkyo Corp.
+ 5500 SE-U55 Audio Device
0747 Labway Corp.
0748 Strong Man Enterprise Co., Ltd
0749 EVer Electronics Corp.
@@ -2581,6 +6313,9 @@
074b Polestar Tech. Corp.
074c C-C-C Group PLC
074d Micronas GmbH
+ 3553 Composite USB-Device
+ 3554 Composite USB-Device
+ 3556 Composite USB-Device
074e Digital Stream Corp.
0001 PS/2 Adapter
0002 PS/2 Adapter
@@ -2589,27 +6324,101 @@
075b Sophisticated Circuits, Inc.
0001 Kick-off! Watchdog
0763 Midiman
- 1001 Midisport 2x2
- 1010 Midisport 1x1
+ 0115 KeyRig 25
+ 0117 Trigger Finger
+ 0119 MidAir
+ 0150 M-Audio Uno
+ 0160 M-Audio 1x1
+ 0192 M-Audio Keystation 88es
+ 0193 ProKeys 88
+ 0194 ProKeys 88sx
+ 0195 Oxygen 8 v2
+ 0196 Oxygen 49
+ 0197 Oxygen 61
+ 0198 Axiom 25
+ 0199 Axiom 49
+ 019a Axiom 61
+ 019b KeyRig 49
+ 019c KeyStudio
+ 1001 MidiSport 2x2
+ 1002 MidiSport 2x2
+ 1003 MidiSport 2x2
+ 1010 MidiSport 1x1
+ 1011 MidiSport 1x1
+ 1014 M-Audio Keystation Loader
+ 1015 M-Audio Keystation
1020 Midisport 4x4
+ 1021 MidiSport 4x4
1030 Midisport 8x8
+ 1031 MidiSport 8x8/s Loader
+ 1033 MidiSport 8x8/s
+ 1040 M-Audio MidiSport 2x4 Loader
+ 1041 M-Audio MidiSport 2x4
+ 2001 M Audio Quattro
+ 2002 M Audio Duo
+ 2003 M Audio AudioPhile
+ 2004 M-Audio MobilePre
+ 2006 M-Audio Transit
+ 2007 M-Audio Sonica Theater
+ 2008 M-Audio Ozone
+ 200d M-Audio OmniStudio
+ 200f M-Audio MobilePre
+ 2010 M-Audio Fast Track
+ 2013 M-Audio JamLab
+ 2015 M-Audio RunTime DFU
+ 2016 M-Audio RunTime DFU
+ 2019 M-Audio Ozone Academic
+ 201a M-Audio Micro
+ 201b M-Audio RunTime DFU
+ 201d M-Audio Producer
+ 2080 M-Audio RunTime DFU
+ 2081 M-Audio RunTime DFU
+ 2803 M-Audio Audiophile DFU
+ 2804 M-Audio MobilePre DFU
+ 2806 M-Audio Transit DFU
+ 2815 M-Audio DFU
+ 2816 M-Audio DFU
+ 281b M-Audio DFU
+ 2880 M-Audio DFU
+ 2881 M-Audio DFU
0764 Cyber Power System, Inc.
0005 Cyber Power UPS
+ 0501 CP1500 AVR UPS
0765 X-Rite, Inc.
0766 Jess-Link Products Co., Ltd
0767 Tokheim Corp.
0768 Camtel Technology Corp.
- 0006 Camtel Technology USB TV Genie Pro FM Model TVB330
+ 0006 Camtel Technology USB TV Genie Pro FM Model TVB330
+ 0023 eHome Infrared Receiver
0769 Surecom Technology Corp.
+ 11f2 EP-9001-g 802.11g 54M WLAN Adapter
+ 11f3 RT2570
+ 11f7 802.11g 54M WLAN Adapter
+ 31f3 RT2573
076a Smart Technology Enablers, Inc.
076b OmniKey AG
0596 CardMan 2020
+ 1021 CardMan 1021
+ 1221 CardMan 1221
1784 CardMan 6020
3021 CardMan 3121
+ 3610 CardMan 3620
+ 3621 CardMan 3621
+ 3821 CardMan 3821
+ 4321 CardMan 4321
+ 5121 CardMan 5121
+ 5125 CardMan 5125
+ 6622 CardMan 6121
+ a011 CCID Smart Card Reader Keyboard
+ a021 CCID Smart Card Reader
+ a022 CardMan Smart@Link
+ c000 CardMan 3x21 CS
+ c001 CardMan 5121 CS
076c Partner Tech
076d Denso Corp.
076e Kuan Tech Enterprise Co., Ltd
076f Jhen Vei Electronic Co., Ltd
+0770 Welch Allyn, Inc - Medical Division
0774 AmTRAN Technology Co., Ltd
0775 Longshine Electronics Corp.
0776 Inalways Corp.
@@ -2618,19 +6427,30 @@
0779 Fairchild Semiconductor
077a Sankyo Seiki Mfg. Co., Ltd
077b Linksys
+ 08be BEFCMU10 v4 Cable Modem
2219 WUSB11 V2.6 802.11b Adapter
2226 USB200M 100baseTX Adapter
077c Forward Electronics Co., Ltd
0005 NEC Keyboard
077d Griffin Technology
+ 0223 IMic Audio In/Out
+ 0405 iMate, ADB Adapter
0410 PowerMate
041a PowerWave
- 0223 IMic Audio In/Out
+ 07af iMic
+ 1016 AirClick
+ 627a Radio SHARK
077f Well Excellent & Most Corp.
+0780 Sagem Monetel GmbH
+ 1202 ORGA 900 Smart Card Terminal Virtual Com Port
+ 1302 ORGA 6000 Smart Card Terminal Virtual Com Port
+ 1303 ORGA 6000 Smart Card Terminal USB RNDIS
+ df55 ORGA 900/6000 Smart Card Terminal DFU
0781 SanDisk Corp.
0001 SDDR-05a ImageMate CompactFlash Reader
0002 SDDR-31 ImageMate II CompactFlash Reader
0005 SDDR-05b (CF II) ImageMate CompactFlash Reader
+ 0100 ImageMate SDDR-12
0200 SDDR-09 (SSFDC) ImageMate SmartMedia Reader [eusb]
0400 SecureMate SD/MMC Reader
0621 SDDR-86 Imagemate 6-in-1 Reader
@@ -2638,20 +6458,50 @@
0729 Sansa E200 series in recovery mode
0810 SDDR-75 ImageMate CF-SM Reader
0830 ImageMate CF/MMC/SD Reader
+ 1234 Cruzer Mini Flash Drive
5150 SDCZ2 Cruzer Mini Flash Drive (thin)
5151 Cruzer Micro 256/512MB Flash Drive
- 5406 Cruzer Micro 4GB Flash Drive
+ 5153 Cruzer USB-Flash-Drive
+ 5406 Cruzer Micro 1/2/4GB Flash Drive
+ 5408 Cruzer Titanium U3
+ 6100 Ultra II SD Plus 2GB
+ 7100 Cruzer Mini
+ 7101 Pen Flash
+ 7102 Cruzer Mini
+ 7103 Cruzer Mini
7104 Cruzer Micro Mini 256MB Flash Drive
+ 7105 Cruzer Mini
+ 7106 Cruzer Mini
7112 Cruzer Micro 128MB Flash Drive
7113 Cruzer Micro 256MB Flash Drive
+ 7114 Cruzer Mini
+ 7115 Cruzer Mini
7420 Sansa E200 series (mtp)
7421 Sansa E200 series
+ 7432 Sansa Clip (mtp)
+ 7433 Sansa Clip (msc)
7450 Sansa C250
7451 Sansa C240
+ 7460 Sansa Express
+ 7480 Sansa Connect
+ 7481 Sansa Connect (in recovery mode)
+ 8181 Pen Flash
+ 8183 Hi-Speed Mass Storage Device
8185 SDCZ2 Cruzer Mini Flash Drive (older, thick)
+ 8888 Card Reader
8889 SDDR-88 Imagemate 8-in-1 Reader
+ 8919 Card Reader
8989 ImageMate 12-in-1 Reader
+ 9191 ImageMate CF
+ 9219 Card Reader
+ 9292 ImageMate CF Reader/Writer
+ 9393 ImageMate SD-MMC
+ 9595 ImageMate xD-SM
+ 9797 ImageMate MS-PRO
+ 9919 Card Reader
9999 SDDR-99 5-in-1 Reader
+ a7e8 SDDR-113 MicroMate SDHC Reader
+ b2b3 SDDR-103 MobileMate SD+ Reader
0782 Trackerball
0783 C3PO
0003 LTC31 SmartCard Reader
@@ -2670,6 +6520,12 @@
0001 MN128mini-V ISDN TA
0003 MN128mini-J ISDN TA
0789 Logitec Corp.
+ 0026 LHD Device
+ 0033 DVD Multi-plus unit LDR-H443SU2
+ 0063 LDR Device
+ 0064 LDR-R Device
+ 00b3 DVD Multi-plus unit LDR-H443U2
+ 010c Realtek RTL8187 Wireless 802.11g 54Mbps Network Adapter
078b Happ Controls, Inc.
0010 Driving UGCI
0020 Flying UGCI
@@ -2685,6 +6541,8 @@
0795 RealChip, Inc.
0796 Certicom Corp.
0797 Grandtech Semiconductor Corp.
+ 6801 Flatbed Scanner
+ 6802 InkJet Color Printer
8001 SmartCam
801a Typhoon StyloCam
801c Meade Binoculars/Camera
@@ -2694,6 +6552,11 @@
0798 Optelec
0001 Braille Voyager
079b Sagem
+ 0027 USB-Serial Controller
+ 004a XG-760A
+ 004b Wi-Fi 11g adapter
+ 0056 Agfa AP1100 Photo Printer
+ 0062 XG-76NA
079d Alfadata Computer Corp.
0201 GamePort Adapter
07a1 Digicom S.p.A.
@@ -2702,39 +6565,77 @@
07a3 Onnto Corp.
07a4 Be, Inc.
07a6 ADMtek, Inc.
+ 07c2 AN986A Ethernet
0986 AN986 Pegasus Ethernet
+ 8266 Infineon WildCard-USB Wireless LAN Adapter
8511 ADM8511 Pegasus II Ethernet
+ 8513 AN8513 Ethernet
+ 8515 AN8515 Ethernet
07aa Corega K.K.
0001 Ether USB-T Ethernet [klsi]
0004 FEther USB-TX Ethernet [pegasus]
+ 000c WirelessLAN USB-11
+ 000d FEther USB-TXS
0012 Stick-11 802.11b Adapter
+ 0017 FEther USB2-TX
+ 001a ULUSB-11 Key
+ 002f CG-WLUSB2GNL
7613 Stick-11 V2 802.11b Adapter
+ 9601 FEther USB-TXC
07ab Freecom Technologies
fc01 IDE bridge
+ fc02 Cable II USB-2
fc03 USB2-IDE IDE bridge
+ fcf8 Freecom Classic SL Network Drive
07af Microtech
0004 SCSI-DB25 SCSI Bridge [shuttle]
0005 SCSI-HD50 SCSI Bridge [shuttle]
0006 CameraMate SmartMedia and CompactFlash Card Reader [eusb/shuttle]
+ fc01 Freecom USB-IDE
07b0 Trust Technologies
0001 ISDN TA
+ 0002 ISDN TA128 Plus
+ 0003 ISDN TA128 Deluxe
+ 0005 ISDN TA128 SE
+ 0006 ISDN TA128 CE
+ 0007 ISDN TA
+ 0008 ISDN TA
07b1 IMP, Inc.
07b2 Motorola BCS, Inc.
+ 0100 SURFboard Voice over IP Cable Modem
+ 0900 SURFboard Gateway
+ 0950 SURFboard SBG950 Gateway
+ 1000 SURFboard SBG1000 Gateway
4100 SurfBoard SB4100 Cable Modem
4200 SurfBoard SB4200 Cable Modem
+ 4210 SurfBoard 4210 Cable Modem
+ 4220 SURFboard SB4220 Cable Modem
+ 4500 CG4500 Communications Gateway
+ 450b CG4501 Communications Gateway
+ 450e CG4500E Communications Gateway
5100 SurfBoard SB5100 Cable Modem
5101 SurfBoard SB5101 Cable Modem
5120 SurfBoard SB5120 Cable Modem (RNDIS)
+ 7030 Wireless Adapter WU830G
07b3 Plustek, Inc.
0001 OpticPro 1212U Scanner
+ 0003 Scanner
0010 OpticPro U12 Scanner
0011 OpticPro U24 Scanner
0013 OpticPro UT12 Scanner
+ 0014 Scanner
0015 OpticPro U24 Scanner
0017 OpticPro UT12/16/24 Scanner
+ 0204 Scanner
0400 OpticPro 1248U Scanner
0401 OpticPro 1248U Scanner #2
0403 OpticPro U16B Scanner
+ 0404 Scanner
+ 0405 A8 Namecard-s Controller
+ 0406 A8 Namecard-D Controller
+ 0410 Scanner
+ 0412 Scanner
+ 0800 OpticPro ST48 Scanner
0c03 OpticPro ST64+ Scanner
07b4 Olympus Optical Co., Ltd
0100 Camedia C-2100/C-3000 Ultra Zoom Camera
@@ -2742,24 +6643,68 @@
0105 Camedia C-310Z/C-700/C-750UZ/C-755/C-765UZ/C-3040/C-4000/C-5050Z/D-560/C-3020Z Zoom Camera
0109 C-370Z/D-535Z/X-450
0112 MAUSB-100 xD Card Reader
- 0113 mju 500
+ 0113 Mju 500
0114 C-350Z Camera
- 0118 Mju Digital 500
+ 0118 Mju Mini Digital/Mju Digital 500 Camera
+ 0184 P-S100 port
0203 Digital Voice Recorder DW-90
0206 Digital Voice Recorder DS-330
0207 Digital Voice Recorder & Camera W-10
0209 Digital Voice Recorder DM-20
020d Digital Voice Recorder VN-240PC
07b5 Mega World International, Ltd
+ 0017 Joystick
0213 Thrustmaster Firestorm Digital 3 Gamepad
9902 GamePad
07b6 Marubun Corp.
07b7 TIME Interconnect, Ltd
07b8 D-Link Corp.
+ 110c XX1
+ 1201 IEEE 802.11b Adapter
+ 200c XX2
+ 2573 Wireless LAN Card
4000 DU-E10 Ethernet [klsi]
4002 DU-E100 Ethernet [pegasus]
+ 4003 1/10/100 Ethernet Adapter
+ 4004 XX4
+ 4007 XX5
+ 400b XX6
+ 400c XX7
+ 401a RTL8151
4102 USB 1.1 10/100M Fast Ethernet Adapter
+ 4104 XX9
+ 420a UF200 Ethernet
+ 6001 WL54
+ a001 Wireless Network Adapter
abc1 DU-E10 Ethernet [pegasus]
+ b000 BWU613
+ b02a AboCom Bluetooth Device
+ b02b Bluetooth dongle
+ b02c BCM92045DG-Flash with trace filter
+ b02d BCM92045DG-Flash with trace filter
+ b02e BCM92045DG-Flash with trace filter
+ b030 BCM92045DG-Flash with trace filter
+ b031 BCM92045DG-Flash with trace filter
+ b032 BCM92045DG-Flash with trace filter
+ b033 BCM92045DG-Flash with trace filter
+ b21a 802.11g Wireless Adapter
+ b21b HWU54DM
+ b21c RT2573
+ b21d RT2573
+ b21e RT2573
+ b21f WUG2700
+ d011 MP3 Player
+ e001 Mass Storage Device
+ e002 Mass Storage Device
+ e003 Mass Storage Device
+ e004 Mass Storage Device
+ e005 Mass Storage Device
+ e006 Mass Storage Device
+ e007 Mass Storage Device
+ e008 Mass Storage Device
+ e009 Mass Storage Device
+ e00a Mass Storage Device
+ e4f0 Card Reader Driver
f101 DSB-560 Modem [atlas]
07bc Canon Computer Systems, Inc.
07bd Webgear, Inc.
@@ -2770,59 +6715,181 @@
1501 IO-Warrior 24
1502 IO-Warrior 48
1503 IO-Warrior 28
+07c1 Keisokugiken
+ 0068 HKS-0200 USBDAQ
07c4 Datafab Systems, Inc.
+ 0102 USB to LS120
+ 0103 USB to IDE
+ 1234 USB to ATAPI
a000 CompactFlash Card Reader
a001 CompactFlash & SmartMedia Card Reader [eusb]
a002 Disk Drive
+ a003 Datafab-based Reader
+ a004 USB to MMC Class Drive
a005 CompactFlash & SmartMedia Card Reader
a006 SmartMedia Card Reader
+ a007 Memory Stick Class Drive
+ a103 MDSM-B reader
+ a107 USB to Memory Stick (LC1) Drive
a109 LC1 CompactFlash & SmartMedia Card Reader
+ a10b USB to CF+MS(LC1)
a200 DF-UT-06 Hama MMC/SD Reader
a400 CompactFlash & Microdrive Reader
+ a600 Card Reader
+ ad01 Mass Storage Device
+ ae01 Mass Storage Device
+ af01 Mass Storage Device
+ b000 USB to CF(LC1)
+ b001 USB to CF+PCMCIA
b004 MMC/SD Reader
+ b006 USB to PCMCIA
+ b00a USB to CF+SD Drive(LC1)
+ b00b USB to Memory Stick(LC1)
07c5 APG Cash Drawer
07c6 ShareWave, Inc.
07c7 Powertech Industrial Co., Ltd
07c8 B.U.G., Inc.
+ 0202 MN128-SOHO PAL
07c9 Allied Telesyn International
+ b100 AT-USB100
07ca AVerMedia Technologies, Inc.
+ 0002 AVerTV PVR USB/EZMaker Pro Device
+ 0026 AVerTV
+ 1228 MPEG-2 Capture Device (M038)
+ e880 MPEG-2 Capture Device (E880)
+ e882 MPEG-2 Capture Device (E882)
07cb Kingmax Technology, Inc.
07cc Carry Computer Eng., Co., Ltd
0000 CF Card Reader
+ 0001 Reader (UICSE)
+ 0002 Reader (UIS)
0003 SM Card Reader
0004 SM/CF/PCMCIA Card Reader
+ 0005 Reader (UISA2SE)
0006 SM/CF/PCMCIA Card Reader
+ 0007 Reader (UISA6SE)
000c SM/CF Card Reader
000d SM/CF Card Reader
+ 000e Reader (UISDA)
+ 000f Reader (UICLIK)
+ 0010 Reader (UISMA)
+ 0012 Reader (UISC6SE-FLASH)
+ 0014 Litronic Fortezza Reader
+ 0030 Mass Storage (UISDMC12S)
+ 0040 Mass Storage (UISDMC13S)
+ 0100 Reader (UID)
+ 0101 Reader (UIM)
+ 0102 Reader (UISDMA)
+ 0103 Reader (UISDMC)
+ 0104 Reader (UISDM)
0200 6-in-1 Card Reader
+ 0201 Mass Storage (UISDMC1S & UISDMC3S)
+ 0202 Mass Storage (UISDMC5S)
+ 0203 Mass Storage (UISMC5S)
+ 0204 Mass Storage (UIM4/5S & UIM7S)
+ 0205 Mass Storage (UIS4/5S & UIS7S)
+ 0206 Mass Storage (UISDMC10S & UISDMC11S)
+ 0207 Mass Storage (UPIDMA)
+ 0208 Mass Storage (UCFC II)
+ 0210 Mass Storage (UPIXXA)
+ 0213 Mass Storage (UPIDA)
+ 0214 Mass Storage (UPIMA)
+ 0215 Mass Storage (UPISA)
+ 0217 Mass Storage (UPISDMA)
+ 0223 Mass Storage (UCIDA)
+ 0224 Mass Storage (UCIMA)
+ 0225 Mass Storage (UIS7S)
+ 0227 Mass Storage (UCIDMA)
+ 0234 Mass Storage (UIM7S)
+ 0235 Mass Storage (UIS4S-S)
+ 0237 Velper (UISDMC4S)
+ 0300 6-in-1 Card Reader
0301 6-in-1 Card Reader
+ 0303 Mass Storage (UID10W)
+ 0304 Mass Storage (UIM10W)
+ 0305 Mass Storage (UIS10W)
+ 0308 Mass Storage (UIC10W)
+ 0309 Mass Storage (UISC3W)
+ 0310 Mass Storage (UISDMA2W)
+ 0311 Mass Storage (UISDMC14W)
+ 0320 Mass Storage (UISDMC4W)
+ 0321 Mass Storage (UISDMC37W)
+ 0330 WINTERREADER Reader
+ 0350 9-in-1 Card Reader
+ 0500 Mass Storage
+ 0501 Mass Storage
07cd Elektor
0001 USBuart Serial Port
07cf Casio Computer Co., Ltd
- 1001 QV-8000SX/5700/3000EX Digicam
+ 1001 QV-8000SX/5700/3000EX Digicam; Exilim EX-M20
1003 Exilim EX-S500
1004 Exilim EX-Z120
+ 1011 USB-CASIO PC CAMERA
2002 E-125 Cassiopeia Pocket PC
3801 WMP-1 MP3-Watch
4001 Label Printer KL-P1000
+ 4007 CW50 Device
+ 4104 Cw75 Device
+ 4107 CW-L300 Device
4500 LV-20 Digital Camera
+ 6801 PL-40R
+ 6802 MIDI Keyboard
07d0 Dazzle
0001 Digital Video Creator I
0002 Global Village VideoFX Grabber
0003 Fusion Model DVC-50 Rev 1 (NTSC)
0004 DVC-800 (PAL) Grabber
+ 0005 Fusion Video and Audio Ports
+ 0006 DVC 150 Loader Device
+ 0007 DVC 150
+ 0327 Fusion Digital Media Reader
+ 1001 DM-FLEX DFU Adapter
+ 1002 DMHS2 DFU Adapter
+ 1102 CF Reader/Writer
+ 1103 SD Reader/Writer
+ 1104 SM Reader/Writer
+ 1105 MS Reader/Writer
+ 1106 xD/SM Reader/Writer
+ 1202 MultiSlot Reader/Writer
+ 2000 FX2 DFU Adapter
+ 2001 eUSB CompactFlash Reader
+ 4100 Kingsun SF-620 Infrared Adapter
+ 4959 Kingsun KS-959 Infrared Adapter
07d1 D-Link System
+ 13ec VvBus for Helium 2xx
+ 13ed VvBus for Helium 2xx
+ 13f1 DSL-302G Modem
+ 13f2 DSL-502G Router
+ 3a07 WUA-2340 Adapter
+ 3a08 predator Bootloader Download
+ 3a0d DWA-120 Wireless 108G Adapter
+ 3b01 AirPlus G DWL-G122 Wireless Adapter
+ 3b10 RangeBooster N Adapter
+ 3b11 Wireless N Adapter DWA-130
+ 3c03 DWL-G122 802.11g Adapter [ralink rt73]
+ 3c04 WUA-1340
+ 3c05 EH103 Wireless G Adapter
+ 3c07 Wireless G DWA-110 Adapter
+ 3c09 DWA-140 802.11n Adapter [ralink rt2870]
+ 5100 Remote NDIS Device
+ f101 DBT-122 Bluetooth
+ fc01 DBT-120 Bluetooth Adapter
07d2 Aptio Products, Inc.
07d3 Cyberdata Corp.
07d7 GCC Technologies, Inc.
07da Arasan Chip Systems
+07de Diamond Multimedia
+ 2820 VC500 Video Capture Dongle
07df David Electronics Co., Ltd
07e1 Ambient Technologies, Inc.
5201 V.90 Modem
07e2 Elmeg GmbH & Co., Ltd
07e3 Planex Communications, Inc.
07e4 Movado Enterprise Co., Ltd
+ 0967 SCard R/W CSR-145
+ 0968 SCard R/W CSR-145
07e5 QPS, Inc.
+ 05c2 IDE-to-USB2.0 PCA
5c01 Que! CDRW
07e6 Allied Cable Corp.
07e7 Mirvo Toys, Inc.
@@ -2832,18 +6899,33 @@
07ec Taiyo Electric Wire & Cable Co., Ltd
07ee Torex Retail (formerly Logware)
0002 Cash Drawer I/F
+07ef STSN
+ 0001 Internet Access Device
07f6 Circuit Assembly Corp.
07f7 Century Corp.
+ 0005 ScanLogic/Century Corporation uATA
+ 011e Century USB Disk Enclosure
07f9 Dotop Technology, Inc.
07fa Draytek
0778 miniVigor 128 ISDN TA
+ 1012 BeWAN ADSL USB ST (grey)
+ a904 BeWAN ADSL
+ a905 BeWAN ADSL ST
07fd Mark of the Unicorn
0000 FastLane MIDI Interface
+ 0001 FastLane Quad MIDI Interface
+ 0002 MOTU Audio for 64 bit
0801 Mag-Tek
0002 Mini Swipe Reader
0802 Mako Technologies, LLC
0803 Zoom Telephonics, Inc.
+ 1300 V92 Faxmodem
+ 4310 Wireless-G
+ 5241 Cable Modem
+ 5551 DSL Modem
9700 2986L FaxModem
+ 9800 Cable Modem
+ a312 Wireless-G
0809 Genicom Technology, Inc.
080a Evermuch Technology Co., Ltd
080c Datalogic S.p.A.
@@ -2853,15 +6935,22 @@
0600 Gryphon M100 Barcode Scanner
080d Teco Image Systems Co., Ltd
0102 Hercules Scan@home 48
+ 0104 3.2Slim
+ 0110 UMAX AstraSlim 1200 Scanner
0810 Personal Communication Systems, Inc.
0813 Mattel, Inc.
0001 Intel Play QX3 Microscope
+ 0002 Dual Mode Camera Plus
081a MG Logic
1000 Duo Pen Tablet
081b Indigita Corp.
+ 0600 Storage Adapter
+ 0601 Storage Adapter
081c Mipsys
081e AlphaSmart, Inc.
+ df00 Handheld
0822 Reudo Corp.
+ 2001 IRXpress Infrared Device
0825 GC Protronics
0826 Data Transit
0827 BroadLogic, Inc.
@@ -2869,51 +6958,134 @@
0829 DirecTV Broadband, Inc. (Telocity)
082d Handspring
0100 Visor
+ 0200 Treo
0300 Treo 600
+ 0400 Handheld
+ 0500 Handheld
+ 0600 Handheld
0830 Palm, Inc.
- 0002 Palm M505
- 0003 Palm M515
- 0020 Palm I705
- 0040 Palm M125
- 0050 Palm M130
- 0060 Palm Tungsten T / Zire 71
- 0080 USB Serial Adapter [for Palm III series to sync via USB]
+ 0001 m500
+ 0002 m505
+ 0003 m515
+ 0004 Handheld
+ 0005 Handheld
+ 0006 Handheld
+ 0010 Handheld
+ 0011 Handheld
+ 0012 Handheld
+ 0013 Handheld
+ 0014 Handheld
+ 0020 i705
+ 0021 Handheld
+ 0022 Handheld
+ 0023 Handheld
+ 0024 Handheld
+ 0030 Handheld
+ 0031 Tungsten W
+ 0032 Handheld
+ 0033 Handheld
+ 0034 Handheld
+ 0040 m125
+ 0041 Handheld
+ 0042 Handheld
+ 0043 Handheld
+ 0044 Handheld
+ 0050 m130
+ 0051 Handheld
+ 0052 Handheld
+ 0053 Handheld
+ 0054 Handheld
+ 0060 Tungsten C/E/T/T2/T3 / Zire 71
+ 0061 Lifedrive / Treo 650/680 / Tunsten E2/T5/TX / Zire 21/31/72 / Z22
+ 0062 Handheld
+ 0063 Handheld
+ 0064 Handheld
+ 0070 Zire
+ 0071 Handheld
+ 0072 Handheld
+ 0080 Serial Adapter [for Palm III]
+ 0081 Handheld
+ 0082 Handheld
0832 Kouwell Electronics Corp.
+ 5850 Cable
0833 Sourcenext Corp.
+ 012e KeikaiDenwa 8 with charger
+ 039f KeikaiDenwa 8
0835 Action Star Enterprise Co., Ltd
0839 Samsung Techwin Co., Ltd
0005 Digimax Camera
0008 Digimax 230 Camera
0009 Digimax 340
+ 000a Digimax 410
000e Digimax 360
0010 Digimax 300
1003 Digimax 210SE
+ 1005 Digimax 220
+ 1009 Digimax V4
1012 6500 Document Camera
+ 1058 S730 Camera
1542 Digimax 50 Duo
3000 Digimax 35 MP3
083a Accton Technology Corp.
1046 10/100 Ethernet [pegasus]
+ 1060 HomeLine Adapter
+ 1f4d SMC8013WG Broadband Remote NDIS Device
+ 3046 10/100 Series Adapter
+ 3060 1/10/100 Adapter
+ 3501 2664W
+ 3502 WN3501D Wireless Adapter
+ 3503 T-Sinus 111 Wireless Adapter
+ 4501 T-Sinus 154data
+ 4505 SMCWUSB-G
5046 SpeedStream 10/100 Ethernet [pegasus]
+ 5501 Wireless Adapter 11g
+ 6500 Cable Modem
+ 6618 802.11n Wireless Adapter
+ 7522 802.11N Wireless Adapter
+ a618 SMC EZ Connect N Draft 11n Wireless Adapter
+ b004 CPWUE001 USB/Ethernet Adapter
+ b522 EZ Connect N Draft 11n Wireless USB2.0 Adapter
+ bb01 BlueExpert Bluetooth Device
+ c003 802.11b Wireless Adapter
+ c501 Zoom Wireless-G
+ c561 802.11a/g Wireless Adapter
+ e501 ZD1211B
+ f501 802.11g Wireless Adapter
+ f502 802.11g Wireless Adapter
083f Global Village
b100 TelePort V.90 Fax/Modem
0840 Argosy Research, Inc.
+ 0060 Storage Adapter Bridge Module
0841 Rioport.com, Inc.
0001 Rio 500
0844 Welland Industrial Co., Ltd
0846 NetGear, Inc.
- 1001 EA101 Ethernet [klsi]
- 4110 MA111 WiFi (v1)
- 4200 WG121 WiFi (v1)
- 4210 WG121 WiFi (v2)
- 4220 WG111 WiFi (v1)
- 4230 MA111 WiFi
- 4240 WG111 WiFi (v2)
- 6a00 WG111 WiFi (v2)
+ 1001 EA101 10 Mbps 10BASE-T Ethernet [Kawasaki LSI KL5KLUSB101B]
+ 1002 Ethernet
+ 1020 FA101 Fast Ethernet USB 1.1
+ 1040 FA120 Fast Ethernet USB 2.0 [Asix AX88172 / AX8817x]
+ 4110 MA111(v1) 802.11b Wireless [Intersil Prism 3.0]
+ 4200 WG121(v1) 54 Mbps Wireless [Intersil Prism GT]
+ 4210 WG121(v2) 54 Mbps Wireless [Intersil Prism GT]
+ 4220 WG111(v1) 54 Mbps Wireless [Intersil Prism54 Intersil 3886]
+ 4230 MA111(v2) 802.11b Wireless [SIS SIS 162]
+ 4240 WG111v2 54 Mbps Wireless [RealTek RTL8187L]
+ 4260 WG111v3 54 Mbps Wireless [realtek RTL8187B]
+ 4300 WG111U Double 108 Mbps Wireless [Atheros AR5004X / AR5005UX]
+ 4301 WG111U (no firmware) Double 108 Mbps Wireless [Atheros AR5004X / AR5005UX]
+ 6a00 WG111v2 54 Mbps Wireless [RealTek RTL8187L]
+ 7100 WN121T RangeMax Next Wireless-N [Marvell TopDog]
+ 9000 WN111(v1) RangeMax Next Wireless [Marvell TopDog]
+ 9001 WN111(v2) RangeMax Next Wireless [Atheros AR9001U-(2)NG]
+ 9010 WNDA3100 RangeMax Dual Band Wireless-N [Atheros AR9001U-2NX]
+ a001 PA101 10 Mbps HPNA Home Phoneline RJ-1
084d Minton Optic Industry Co., Inc.
0001 Jenoptik JD800i
0003 S-Cam F5 Digital Camera
0011 Argus DC3500 Digital Camera
0014 Praktica DC 32
+ 0019 Praktica DPix3000
+ 0025 Praktica DC 60
1001 ScanHex SX-35d
084e KB Gear
0001 KBGear JamCam
@@ -2924,19 +7096,36 @@
0851 Macronix International Co., Ltd
1542 SiPix Blink
1543 Maxell WS30 Slim Digital Camera
+ a168 MXIC
0852 CSEM
+0853 Topre Corporation
+ 0100 HHKB Professional
0854 ActiveWire, Inc.
0100 I/O Board
0101 I/O Board, rev1
0856 B&B Electronics
- AC01 uLinks USOTL4 RS422/485 Adapter
+ ac01 uLinks USOTL4 RS422/485 Adapter
0858 Hitachi Maxell, Ltd
+ 3102 Bluetooth Device
+ ffff Maxell module with BlueCore in DFU mode
0859 Minolta Systems Laboratory, Inc.
085a Xircom
0001 Portstation Dual Serial Port
0003 Portstation Paraller Port
+ 0008 Ethernet
+ 0009 Ethernet
000b Portstation Dual PS/2 Port
+ 0021 1 port to Serial Converter
+ 0022 Parallel Port
+ 0023 2 port to Serial Converter
+ 0024 Parallel Port
+ 0027 1 port to Serial Converter
+ 0028 PortGear to SCSI Converter
+ 0032 PortStation SCSI Module
+ 003c Bluetooth Adapter
0299 Colorvision, Inc. Monitor Spyder
+ 8021 1 port to Serial
+ 8023 2 port to Serial
8027 PGSDB9 Serial Port
085c ColorVision, Inc.
0200 Monitor Spyder
@@ -2949,14 +7138,47 @@
9812 ECON Data acquisition unit
9816 DT9816 ECON data acquisition module
9836 DT9836 data acquisition card
-086a Emagic Soft-und Hardware GmbH
+086a Emagic Soft- und Hardware GmbH
+ 0001 Unitor8
+ 0002 AMT8
+ 0003 MT4
086c DeTeWe - Deutsche Telephonwerke AG & Co.
1001 Eumex 504PC ISDN TA
+ 1002 Eumex 504PC (FlashLoad)
1003 TA33 ISDN TA
+ 1004 TA33 (FlashLoad)
+ 1005 Eumex 604PC HomeNet
+ 1006 Eumex 604PC HomeNet (FlashLoad)
+ 1007 Eumex 704PC DSL
+ 1008 Eumex 704PC DSL (FlashLoad)
+ 1009 Eumex 724PC DSL
+ 100a Eumex 724PC DSL (FlashLoad)
+ 100b OpenCom 30
+ 100c OpenCom 30 (FlashLoad)
+ 100d BeeTel Home 100
+ 100e BeeTel Home 100 (FlashLoad)
+ 1011 USB2DECT
+ 1012 USB2DECT (FlashLoad)
+ 1013 Eumex 704PC LAN
+ 1014 Eumex 704PC LAN (FlashLoad)
+ 1021 OpenCom 40
+ 1022 OpenCom 40 (FlashLoad)
+ 1023 OpenCom 45
+ 1024 OpenCom 45 (FlashLoad)
+ 1025 Sinus 61 data
+ 1029 dect BOX
+ 102c Eumex 604PC HomeNet [FlashLoad]
+ 1030 Eumex 704PC DSL [FlashLoad]
+ 1032 OpenCom 40 [FlashLoad]
+ 1033 OpenCom 30 plus
+ 1034 OpenCom 30 plus (FlashLoad)
1055 Eumex 220 ISDN TA
+ 2000 OpenCom 1000
086e System TALKS, Inc.
+ 1920 SGC-X2UL
086f MEC IMEX, Inc.
0870 Metricom
+ 0001 Ricochet GS
0871 SanDisk, Inc.
0001 SDDR-01 Compact Flash Reader
0002 SDDR-31 Compact Flash Reader
@@ -2966,6 +7188,7 @@
0879 Comtrol Corp.
087c Adesso/Kbtek America, Inc.
087d Jaton Corp.
+ 5704 Ethernet
087e Fujitsu Computer Products of America
087f Virtual IP Group, Inc.
0880 APT Technologies, Inc.
@@ -2977,6 +7200,7 @@
088b MassWorks, Inc.
4944 MassWorks ID-75 TouchScreen
0892 DioGraphy, Inc.
+ 0101 Smartdio Reader/Writer
089c United Technologies Research Cntr.
089d Icron Technologies Corp.
089e NST Co., Ltd
@@ -2989,12 +7213,27 @@
01f4 USBSIMM1
08b9 RadioShack Corp. (Tandy)
08bb Texas Instruments Japan
+ 2702 Speakers
2900 PCM2900 Audio Codec
2904 PCM2904 Audio Codec
08bd Citizen Watch Co., Ltd
+ 1100 X1-USB Floppy
08c3 Precise Biometrics
- 0101 Precise 100 MC FingerPrint and SmartCard Reader
+ 0001 100 SC
+ 0002 100 A
+ 0003 100 SC BioKeyboard
+ 0006 100 A BioKeyboard
+ 0100 100 MC ISP
+ 0101 100 MC FingerPrint and SmartCard Reader
+ 0300 100 AX
+ 0400 100 SC
+ 0401 150 MC
+ 0402 200 MC FingerPrint and SmartCard Reader
+ 0404 100 SC Upgrade
+ 0405 150 MC Upgrade
+ 0406 100 MC Upgrade
08c4 Proxim, Inc.
+ 02f2 Farallon Home Phoneline Adapter
08c7 Key Nice Enterprise Co., Ltd
08c8 2Wire, Inc.
08c9 Nippon Telegraph and Telephone Corp.
@@ -3005,53 +7244,114 @@
0022 Tablet
0023 Tablet
0024 Tablet
+ 0100 Pen Drive
0102 DualCam
0103 Pocket DV Digital Camera
0104 Pocket DVII
+ 0105 Mega DV(Disk)
0106 Pocket DV3100+
0107 Pocket DV 3100
+ 0109 Nisis DV4 Digital Camera
+ 010a Trust 738AV LCD PV Mass Storage
0111 PenCam VGA Plus
2008 Mini PenCam 2
2010 Pocket CAM 3 Mega (webcam)
2011 Pocket CAM 3 Mega (storage)
2018 Pencam SD 2
2024 Pocket DV3500
+ 2042 DV 5100M Composite Device
+ 2043 DV 5100M(Disk)
08cd Jue Hsun Ind. Corp.
08ce Long Well Electronics Corp.
08cf Productivity Enhancement Products
08d1 smartBridges, Inc.
0001 smartNIC Ethernet [catc]
+ 0003 smartNIC 2 PnP Ethernet
08d3 Virtual Ink
08d4 Fujitsu Siemens Computers
0009 SCR SmartCard Reader
08d9 Increment P Corp.
08dd Billionton Systems, Inc.
+ 0112 Wireless LAN Adapter
+ 0113 Wireless LAN Adapter
0986 USB-100N Ethernet [pegasus]
0987 USBLP-100 HomePNA Ethernet [pegasus]
0988 USBEL-100 Ethernet [pegasus]
+ 1986 10/100 LAN Adapter
+ 2103 DVB-T TV-Tuner Card-R
8511 USBE-100 Ethernet [pegasus2]
+ 90ff USB2AR Ethernet
08de ???
7a01 802.11b Adapter
08df Spyrus, Inc.
+ 0001 Rosetta Token V1
+ 0002 Rosetta Token V2
+ 0003 Rosetta Token V3
+ 0a00 Lynks Interface
08e3 Olitec, Inc.
0002 USB-RS232 Bridge
+ 0100 Interface ADSL
+ 0101 Interface ADSL
+ 0102 ADSL
+ 0301 RNIS
08e4 Pioneer Corp.
08e5 Litronic
08e6 Gemplus
+ 0001 GemPC-Touch 430
0430 GemPC430 SmartCard Reader
0432 GemPC432 SmartCard Reader
0435 GemPC435 SmartCard Reader
0437 GemPC433 SL SmartCard Reader
+ 1359 UA SECURE STORAGE TOKEN
+ 2202 Gem e-Seal Pro Token
3437 GemPC Twin SmartCard Reader
3438 GemPC Key SmartCard Reader
+ 3478 PinPad Smart Card Reader
+ 4433 GemPC433-Swap
+ 5501 GemProx-PU Contactless Smart Card Reader
+ ace0 UA HYBRID TOKEN
08e7 Pan-International Wire & Cable
08e8 Integrated Memory Logic
08e9 Extended Systems, Inc.
0100 XTNDAccess IrDA Dongle
08ea Ericsson, Inc., Blue Ridge Labs
+ 00c9 ADSL Modem HM120dp Loader
+ 00ca ADSL WAN Modem HM120dp
+ 00ce HM230d Virtual Bus for Helium
abba USB Driver for Bluetooth Wireless Technology
+ abbb Bluetooth Device in DFU State
08ec M-Systems Flash Disk Pioneers
+ 0001 TravelDrive 2C
+ 0002 TravelDrive 2C
+ 0005 TravelDrive 2C
+ 0008 TravelDrive 2C
0010 DiskOnKey
+ 0011 DiskOnKey
+ 0012 TravelDrive 2C
+ 0014 TravelDrive 2C
+ 0015 Kingston DataTraveler ELITE
+ 0016 Kingston DataTraveler U3
+ 0020 TravelDrive
+ 0021 TravelDrive
+ 0022 TravelDrive
+ 0023 TravelDrive
+ 0024 TravelDrive
+ 0025 TravelDrive
+ 0026 TravelDrive
+ 0027 TravelDrive
+ 0028 TravelDrive
+ 0029 TravelDrive
+ 0030 TravelDrive
+ 0822 TravelDrive 2C
+ 0832 Hi-Speed Mass Storage Device
+ 0998 Kingston Data Traveler2.0 Disk Driver
+ 0999 Kingston Data Traveler2.0 Disk Driver
+ 1000 TravelDrive 2C
+ 2000 TravelDrive 2C
+ 2038 TravelDrive
+ 2039 TravelDrive
+ 204a TravelDrive
+ 204b TravelDrive
08ee CCSI/Hesso
08f0 Corex Technologies
08f1 CTI Electronics Corp.
@@ -3066,37 +7366,159 @@
08fb Socket Communications
08fc Sicon Cable Technology Co., Ltd
08fd Digianswer A/S
+ 0001 Bluetooth Device
08ff AuthenTec, Inc.
+ 1600 AES1600
+ 1610 AES1600
+ 2500 AES2501
+ 2501 AES2501
+ 2502 AES2501
+ 2503 AES2501
+ 2504 AES2501
+ 2505 AES2501
+ 2506 AES2501
+ 2507 AES2501
+ 2508 AES2501
+ 2509 AES2501
+ 250a AES2501
+ 250b AES2501
+ 250c AES2501
+ 250d AES2501
+ 250e AES2501
+ 250f AES2501
+ 2510 AES2510
+ 2580 AES2501 Fingerprint Sensor
+ 2588 AES2501
+ 2589 AES2501
+ 258a AES2501
+ 258b AES2501
+ 258c AES2501
+ 258d AES2501
+ 258e AES2501
+ 258f AES2501
+ 3400 AES3400 TruePrint Sensor
+ 3401 AES3400 Sensor
+ 3402 AES3400 Sensor
+ 3403 AES3400 Sensor
+ 3404 AES3400 TruePrint Sensor
+ 3405 AES3400 TruePrint Sensor
+ 3406 AES3400 TruePrint Sensor
+ 3407 AES3400 TruePrint Sensor
+ 4902 BioMV with TruePrint AES3500
+ 4903 BioMV with TruePrint AES3400
+ 5500 AES4000
+ 5501 AES4000 TruePrint Sensor
+ 5503 AES4000 TruePrint Sensor
+ 5505 AES4000 TruePrint Sensor
+ 5507 AES4000 TruePrint Sensor
+ 55ff AES4000 TruePrint Sensor.
+ 5700 AES3500 Fingerprint Reader
+ 5701 AES3500 TruePrint Sensor
+ 5702 AES3500 TruePrint Sensor
+ 5703 AES3500 TruePrint Sensor
+ 5704 AES3500-BZ TruePrint Sensor
+ 5705 AES3500-BZ TruePrint Sensor
+ 5706 AES3500-BZ TruePrint Sensor
+ 5707 AES3500-BZ TruePrint Sensor
+ 5710 AES3500 TruePrint Sensor
+ 5711 AES3500 TruePrint Sensor
+ 5712 AES3500 TruePrint Sensor
+ 5713 AES3500 TruePrint Sensor
+ 5714 AES3500-BZ TruePrint Sensor
+ 5715 AES3500-BZ TruePrint Sensor
+ 5716 AES3500-BZ TruePrint Sensor
+ 5717 AES3500-BZ TruePrint Sensor
+ 5730 AES3500 TruePrint Sensor
+ 5731 AES3500 TruePrint Sensor
+ 5732 AES3500 TruePrint Sensor
+ 5733 AES3500 TruePrint Sensor
+ 5734 AES3500-BZ TruePrint Sensor
+ 5735 AES3500-BZ TruePrint Sensor
+ 5736 AES3500-BZ TruePrint Sensor
+ 5737 AES3500-BZ TruePrint Sensor
+ afe3 FingerLoc Sensor Module (Anchor)
+ afe4 FingerLoc Sensor Module (Anchor)
+ afe5 FingerLoc Sensor Module (Anchor)
+ afe6 FingerLoc Sensor Module (Anchor)
+ fffd AES2510 Sensor (USB Emulator)
+ ffff Sensor (Emulator)
0900 Pinnacle Systems, Inc.
0901 VST Technologies
+ 0001 Hard Drive Adapter (TPP)
+ 0002 SigmaDrive Adapter (TPP)
0906 Faraday Technology Corp.
0909 Audio-Technica Corp.
090a Trumpion Microelectronics, Inc.
+ 1001 T33520 USB Flash Card Controller
+ 1100 Comotron C3310 MP3 player
+ 1200 MP3 player
1540 Digitex Container Flash Disk
090b Neurosmith
090c Feiya Technology Corp.
1000 Memory Bar
+ 1132 5-in-1 Card Reader
090d Multiport Computer Vertriebs GmbH
090e Shining Technology, Inc.
090f Fujitsu Devices, Inc.
0910 Alation Systems, Inc.
0911 Philips Speech Processing
+ 2512 SpeechMike Pro
0912 Voquette, Inc.
0915 GlobeSpan, Inc.
+ 0001 DSL Modem
+ 0002 ADSL ATM Modem
+ 0005 LAN Modem
+ 2000 802.11 Adapter
+ 2002 802.11 Adapter
+ 8000 ADSL LAN Modem
+ 8005 DSL-302G Modem
+ 8101 ADSL WAN Modem
+ 8102 DSL-200 ADSL Modem
+ 8103 DSL-200 ADSL Modem
+ 8104 DSL-200 Modem
+ 8400 DSL Modem
+ 8401 DSL Modem
+ 8402 DSL Modem
+ 8500 DSL Modem
+ 8501 DSL Modem
0917 SmartDisk Corp.
+ 0001 eFilm Reader-11 SM/CF
+ 0002 eFilm Reader-11 SM
+ 0003 eFilm Reader-11 CF
+ 0200 FireFly
+ 0201 FireLite
+ 0202 STORAGE ADAPTER (FirePower)
+ 0204 FlashTrax Storage
+ 0205 STORAGE ADAPTER (CrossFire)
+ 0206 FireFly 20G HDD
+ 0207 FireLite
+ 020f STORAGE ADAPTER (FireLite)
+ da01 eFilm Reader-11 Test
+ ffff eFilm Reader-11 (Class/PDR)
0919 Tiger Electronics
0100 Fast Flicks Digital Camera
091e Garmin International
0003 GPSmap (various models)
0004 Garmin iQue 3600
+ 0200 Data Card Programmer (install)
+ 1200 Data Card Programmer
0920 Echelon Co.
+ 7500 Network Interface
0921 GoHubs, Inc.
+ 1001 GoCOM232 Serial
0922 Dymo-CoStar Corp.
0007 LabelWriter 330
0009 LabelWriter 310
0923 IC Media Corp.
010f SIIG MobileCam
0924 Xerox
+ 23dd DocuPrint M760 (X760_USB)
+ 3d5b Phaser 6115MFP TWAIN Scanner
+ 420f WorkCentre PE220 Series
+ 421f M20 Scanner
+ 423b Printing Support
+ ffef WorkCenter M15
+ fffb DocuPrint M750 (X750_USB)
0925 Lakeview Research
8101 Phidgets, Inc., 1-Motor PhidgetServo v2.0
8104 Phidgets, Inc., 4-Motor PhidgetServo v2.0
@@ -3107,29 +7529,113 @@
0929 American Biometric Co.
092a Toshiba Information & Industrial Sys. And Services
092b Sena Technologies, Inc.
+092f Northern Embedded Science/CAVNEX
+ 0004 JTAG-4
+ 0005 JTAG-5
0930 Toshiba Corp.
0009 Gigabeat F/X (HDD audio player)
- 000C Gigabeat F (mtp)
+ 000c Gigabeat F (mtp)
0010 Gigabeat S (mtp)
+ 0301 PCX1100U Cable Modem (WDM)
+ 0302 PCX2000 Cable Modem (WDM)
+ 0305 Cable Modem PCX3000
+ 0307 Cable Modem PCX2500
+ 0308 PCX2200 Cable Modem (WDM)
+ 0309 PCX5000 Cable Modem (WDM)
+ 030b Cable Modem PCX2600
+ 0501 Bluetooth Controller
+ 0502 Integrated Bluetooth
+ 0503 Bluetooth Controller
+ 0505 Integrated Bluetooth
+ 0506 Integrated Bluetooth
+ 0507 Bluetooth Adapter
+ 0508 Integrated Bluetooth HCI
+ 0509 BT EDR Dongle
+ 0706 PocketPC e740
+ 0707 Pocket PC e330 Series
+ 0708 Pocket PC e350Â Series
+ 0709 Pocket PC e750 Series
+ 070a Pocket PC e400 Series
+ 070b Pocket PC e800 Series
+ 1300 Wireless Broadband (CDMA EV-DO) SM-Bus Minicard Status Port
+ 1301 Wireless Broadband (CDMA EV-DO) Minicard Status Port
+ 1302 Wireless Broadband (3G HSDPA) SM-Bus Minicard Status Port
+ 1303 Wireless Broadband (3G HSDPA) Minicard Status Port
+ 1308 Broadband (3G HSDPA) SM-Bus Minicard Diagnostics Port
+ 642f TravelDrive
+ 6506 TravelDrive 2C
+ 6507 TravelDrive 2C
+ 6508 TravelDrive 2C
+ 6509 TravelDrive 2C
+ 6510 TravelDrive 2C
+ 6517 TravelDrive 2C
+ 6518 TravelDrive 2C
6519 Kingston DataTraveler 2.0 USB Stick
+ 651a TravelDrive 2C
+ 651b TravelDrive 2C
+ 651c TravelDrive 2C
+ 651d TravelDrive 2C
+ 651e TravelDrive 2C
+ 651f TravelDrive 2C
+ 6520 TravelDrive 2C
+ 6521 TravelDrive 2C
+ 6522 TravelDrive 2C
+ 6523 TravelDrive
+ 6524 TravelDrive
+ 6525 TravelDrive
+ 6526 TravelDrive
+ 6527 TravelDrive
+ 6528 TravelDrive
+ 6529 TravelDrive
+ 652a TravelDrive
+ 652b TravelDrive
+ 652c TravelDrive
+ 652d TravelDrive
+ 652f TravelDrive
+ 6530 TravelDrive
+ 6531 TravelDrive
+ 6532 256M USB Stick
6533 512M USB Stick
+ 6534 TravelDrive
653c Kingston DataTraveler 2.0 USB Stick (512M)
653d Kingston DataTraveler 2.0 USB Stick (1GB)
+ 653e USB Flash Memory
6540 TransMemory USB Flash Memory
0931 Harmonic Data Systems, Ltd
0932 Crescentec Corp.
+ 0300 VideoAdvantage
+ 0302 Syntek DC-112X
+ 0320 VideoAdvantage
+ 1100 Video Enhamcement Device
+ 1112 Veo Web Camera
+ a311 Video Enhancement Device
0933 Quantum Corp.
0934 Netcom Systems
0939 Lumberg, Inc.
093a Pixart Imaging, Inc.
+ 0007 CMOS 100K-R Rev. 1.90
010e Digital camera, CD302N/Elta Medi@ digi-cam/HE-501A
010f Argus DC-1610/DC-1620/Emprex PCD3600/Philips P44417B keychain camera/Precision Mini,Model HA513A/Vivitar Vivicam 55
- 2468 Easy Snap Snake Eye WebCam
+ 2460 Q-TEC WEBCAM 100
+ 2468 Cammaestro 2.5DU/X-EYE/Orite SC-120/ICGear TravelCam/Easy Snap Snake Eye WebCam
+ 2470 SoC PC-Camera
+ 2471 SoC PC-Camera
2500 USB Optical Mouse
+ 2600 Typhoon Easycam USB 330K (newer)/Typhoon Easycam USB 2.0 VGA 1.3M/Sansun SN-508
+ 2601 SPC 610NC Laptop Camera
093b Plextor Corp.
+ 0010 Storage Adapter
+ 0011 PlexWriter 40/12/40U
0042 PX-712UF DVD RW
+ a002 ConvertX M402U XLOADER
+ a003 ConvertX AV100U A/V Capture Audio
+ a004 ConvertX TV402U XLOADER
+ a005 KWorld EMP Audio Device
+ a102 ConvertX M402U A/V Capture
+ a104 ConvertX PX-TV402U/NA
093c Intrepid Control Systems, Inc.
0601 ValueCAN
+ 0701 NeoVI Blue vehicle bus interface
093d InnoSync, Inc.
093e J.S.T. Mfg. Co., Ltd
093f Olympia Telecom Vertriebs GmbH
@@ -3147,19 +7653,32 @@
1105 USB One
094b Linkup Systems Corp.
094d Cable Television Laboratories
+094f Yano
+ 0101 U640MO-03
+ 05fc METALWEAR-HDD
0951 Kingston Technology
+ 0008 Ethernet
000a KNU101TX 100baseTX Ethernet
1600 Data Traveler II Pen Drive
+ 1601 Data Traveler II+ Pen Drive
+ 1602 Data Traveler Mini
+ 1603 Data Traveler 1GB/2GB Pen Drive
+ 1607 Data Traveler 2.0
0954 RPM Systems Corp.
0955 NVidia Corp.
0956 BSquare Corp.
0957 Agilent Technologies, Inc.
+ 0200 E-Video DC-350 Camera
+ 0202 E-Video DC-350 Camera
0958 CompuLink Research, Inc.
0959 Cologne Chip AG
+ 2bd0 Intelligent ISDN (Ver. 3.60.04)
095a Portsmith
+ 3003 Express Ethernet
095b Medialogic Corp.
095c K-Tec Electronics
095d Polycom, Inc.
+ 0001 Polycom ViaVideo
0967 Acer (??)
0204 WarpLink 802.11b Adapter
0968 Catalyst Enterprises, Inc.
@@ -3167,27 +7686,34 @@
0802 ePass2000 (G&D STARCOS SPK 2.4)
0971 Gretag-Macbeth AG
0973 Schlumberger
+ 0001 e-gate Smart Card
0974 Datagraphix, a business unit of Anacomp
0975 OL'E Communications, Inc.
0976 Adirondack Wire & Cable
0977 Lightsurf Technologies
0978 Beckhoff GmbH
0979 Jeilin Technology Corp., Ltd
+ 0224 JL2005A Toy Camera
+ 0226 JL2005A Toy Camera
097a Minds At Work LLC
+ 0001 Digital Wallet
097b Knudsen Engineering, Ltd
097c Marunix Co., Ltd
097d Rosun Technologies, Inc.
097f Barun Electronics Co., Ltd
0981 Oak Technology, Ltd
0984 Apricorn
+ 0200 Hard Drive Storage (TPP)
0985 cab Produkttechnik GmbH & Co KG
00a3 A3/200 or A3/300 Label Printer
+0986 Matsushita Electric Works, Ltd.
098c Vitana Corp.
098d INDesign
098e Integrated Intellectual Property, Inc.
098f Kenwood TMI Corp.
0993 Gemstar eBook Group, Ltd
0001 REB1100 eBook Reader
+ 0002 eBook
0996 Integrated Telecom Express, Inc.
099a Zippy Technology Corp.
610c EL-610 Super Mini Electron luminescent Keyboard
@@ -3195,12 +7721,14 @@
09a4 Contech Research, Inc.
09a5 VCON Telecommunications
09a6 Poinchips
+ 8001 Mass Storage Device
09a7 Data Transmission Network Corp.
09a8 Lin Shiung Enterprise Co., Ltd
09a9 Smart Card Technologies Co., Ltd
09aa Intersil Corp.
1000 Prism GT 802.11b/g Adapter
3642 Prism 2.x 802.11b Adapter
+09ab Japan Cash Machine Co., Ltd.
09ae Tripp Lite
09b2 Franklin Electronic Publishers, Inc.
0001 eBookman Palm Computer
@@ -3216,13 +7744,16 @@
00db COMpact 4410/2206 ISDN ISDN
00f1 COMfort System Telephones
09c1 Arris Interactive LLC
+ 1337 TOUCHSTONE DEVICE
09c2 Nisca Corp.
09c3 ActivCard, Inc.
+ 0007 Reader V2
0008 SmartCard Reader
09c4 ACTiSYS Corp.
0011 ACT-IR2000U IrDA Dongle
09c5 Memory Corp.
09cc Workbit Corp.
+ 0404 BAFO USB-ATA/ATAPI Bridge Controller
09cd Psion Dacom Home Networks, Ltd
09ce City Electronics, Ltd
09cf Electronics Testing Center, Taiwan
@@ -3230,19 +7761,27 @@
09d2 Vreelin Engineering, Inc.
09d3 Com One
0001 ISDN TA
+09d7 Novatel Wireless
+ 0100 NovAtel FlexPack GPS receiver
09d9 KRF Tech, Ltd
09da A4 Tech Co., Ltd
0006 Optical Mouse WOP-35 / Trust 450L Optical Mouse
+ 000a Port Mouse
+ 0018 Trust Human Interface Device
001a Wireless Mouse & RXM-15 Receiver
002a Wireless Optical Mouse NB-30
09db Measurement Computing Corp.
0075 MiniLab 1008
0076 PMD-1024
- 007A PMD-1208LS
+ 007a PMD-1208LS
+ 0081 USB-1616FS
+ 0082 USB-1208FS
+ 0088 USB-1616FS internal hub
09dc Aimex Corp.
09dd Fellowes, Inc.
09df Addonics Technologies Corp.
09e1 Intellon Corp.
+ 5121 MicroLink dLAN
09e5 Jo-Dan International, Inc.
09e6 Silutia, Inc.
09e7 Real 3D, Inc.
@@ -3253,6 +7792,9 @@
09ef Xitel
0101 MD-Port DG2 MiniDisc Interface
09f5 AresCom
+ 0168 Network Adapter
+ 0188 LAN Adapter
+ 0850 Adapter
09f6 RocketChips, Inc.
09f7 Edu-Science (H.K.), Ltd
09f8 SoftConnex Technologies, Inc.
@@ -3270,11 +7812,34 @@
0a11 Xentec, Inc.
0a12 Cambridge Silicon Radio, Ltd
0001 Bluetooth Dongle (HCI mode)
+ 0002 Frontline Test Equipment Bluetooth Device
+ 0003 Nanosira
+ 0004 Nanosira WHQL Reference Radio
+ 0005 Nanosira-Multimedia
+ 0006 Nanosira-Multimedia WHQL Reference Radio
+ 0007 Nanosira3-ROM
+ 0008 Nanosira3-ROM
+ 0009 Nanosira4-EDR WHQL Reference Radio
+ 000a Nanosira4-EDR-ROM
+ 000b Nanosira5-ROM
+ 0043 Bluetooth Device
+ 0100 Casira with BlueCore2-External Module
+ 0101 Casira with BlueCore2-Flash Module
+ 0102 Casira with BlueCore3-Multimedia Module
+ 0103 Casira with BlueCore3-Flash Module
+ 0104 Casira with BlueCore4-External Module
+ 0105 Casira with BlueCore4-Multimedia Module
1000 Bluetooth Dongle (HID proxy mode)
+ 1010 Bluetooth Device
+ 1011 Bluetooth Device
+ 1012 Bluetooth Device
+ ffff USB Bluetooth Device in DFU State
0a13 Telebyte, Inc.
0a14 Spacelabs Medical, Inc.
0a15 Scalar Corp.
0a16 Trek Technology (S) PTE, Ltd
+ 1111 ThumbDrive
+ 8888 IBM USB Memory Key
9988 Trek2000 TD-G2
0a17 Pentax Corp.
0004 Pentax Optio 330
@@ -3289,6 +7854,10 @@
003d Pentax Optio S55
0043 Pentax *ist DL
0047 Pentax Optio S60
+ 0052 Optio 60 Digital Camera
+ 006e Pentax K10D
+ 0070 Pentax K100D
+ 1001 EI2000 Camera powered by Digita!
0a18 Heidelberger Druckmaschinen AG
0a19 Hua Geng Technologies, Inc.
0a21 Medtronic Physio Control Corp.
@@ -3299,20 +7868,56 @@
0110 Deck 82-key backlit keyboard
0a39 Gilat Satellite Networks, Ltd
0a3a PentaMedia Co., Ltd
+ 0163 KN-W510U 1.0 Wireless LAN Adapter
0a3c NTT DoCoMo, Inc.
0a3d Varo Vision
0a3f Swissonic AG
0a43 Boca Systems, Inc.
0a46 Davicom Semiconductor, Inc.
+ 0268 ST268
+ 9601 DM9601 To Fast Ethernet Adapter
0a47 Hirose Electric
0a48 I/O Interconnect
+ 3233 Multimedia Card Reader
+ 3239 Multimedia Card Reader
3258 Dane Elec zMate SD Reader
3259 Dane Elec zMate CF Reader
+ 5000 MediaGear xD-SM
+ 500a Mass Storage Device
+ 500f Mass Storage Device
+ 5010 Mass Storage Device
+ 5011 Mass Storage Device
+ 5014 Mass Storage Device
+ 5020 Mass Storage Device
+ 5021 Mass Storage Device
+ 5022 Mass Storage Device
+ 5023 Mass Storage Device
+ 5024 Mass Storage Device
+ 5025 Mass Storage Device
0a4b Fujitsu Media Devices, Ltd
0a4c Computex Co., Ltd
0a4d Evolution Electronics, Ltd
+ 0064 MK-225 Driver
+ 0065 MK-225C Driver
+ 0066 MK-225C Driver
+ 0067 MK-425C Driver
+ 0078 MK-37 Driver
+ 0079 MK-37C Driver
+ 007a MK-37C Driver
+ 008c TerraTec MIDI MASTER
+ 008d MK-249C Driver
008e MK-249C MIDI Keyboard
+ 008f MK-449C Driver
+ 0090 Keystation 49e Driver
+ 0091 Keystation 61es Driver
+ 00a0 MK-361 Driver
+ 00a1 MK-361C Driver
+ 00a2 MK-361C Driver
00a3 MK-461C MIDI Keyboard
+ 00b5 Keystation Pro 88 Driver
+ 00d2 E-Keys Driver
+ 00f0 UC-16 Driver
+ 00f1 X-Session Driver
00f5 UC-33e MIDI Controller
0a4e Steinberg Soft-und Hardware GmbH
0a4f Litton Systems, Inc.
@@ -3320,15 +7925,52 @@
0a51 Sony Electronics, Inc.
0a52 Jebsee Electronics Co., Ltd
0a53 Portable Peripheral Co., Ltd
+ 1000 Scanner
+ 2000 Q-Scan A6 Scanner
+ 2001 Q-Scan A6 Scanner
+ 2013 Media Drive A6 Scanner
+ 2014 Media Drive A6 Scanner
+ 2015 BizCardReader 600C
+ 2016 BizCardReader 600C
+ 202a Scanshell-CSSN
+ 3000 Q-Scan A8 Scanner
+ 3002 Q-Scan A8 Reader
+ 3015 BizCardReader 300G
+ 5001 BizCardReader 900C
0a5a Electronics For Imaging, Inc.
0a5b EAsics NV
0a5c Broadcom Corp.
+ 0201 iLine10(tm) Network Adapter
+ 2000 Bluetooth Device
+ 2009 Bluetooth Controller
200a Bluetooth dongle
+ 200f Bluetooth Controller
+ 201d Bluetooth Device
+ 201e IBM Integrated Bluetooth IV
+ 2020 Bluetooth Dongle
2033 BCM2033 Bluetooth
2035 BCM2035 Bluetooth
+ 2038 Blutonium Device
+ 2039 Bluetooth Device
+ 2045 Bluetooth Controller
+ 2046 Bluetooth Device
+ 2047 Bluetooth Device
+ 205e Bluetooth Device
+ 2100 Bluetooth 2.0+eDR dongle
+ 2101 A-Link BlueUsbA2 Bluetooth
+ 2102 ANYCOM Blue USB-200/250
+ 2110 Bluetooth Controller
+ 2111 ANYCOM Blue USB-UHE 200/250
+ 2120 2045 Bluetooth 2.0 USB-UHE Device with trace filter
+ 2121 BCM2210 Bluetooth
+ 2122 Bluetooth 2.0+EDR dongle
+ 2130 2045 Bluetooth 2.0 USB-UHE Device with trace filter
+ 2131 2045 Bluetooth 2.0 Device with trace filter
+ 6300 Pirelli Remote NDIS Device
0a5d Diatrend Corp.
0a5f Zebra
0009 LP2844 Printer
+ 930a Printer
0a62 MPMan
0010 MPMan MP-F40 MP3 Player
0a66 ClearCube Technology
@@ -3360,26 +8002,77 @@
0a86 NITGen Co., Ltd
0a8d Picturetel
0a8e Japan Aviation Electronics Industry, Ltd
+ 2011 Filter Driver For JAE XMC R/W
0a90 Candy Technology Co., Ltd
0a91 Globlink Technology, Inc.
+ 3801 Targus PAKP003 Mouse
0a92 EGO SYStems, Inc.
+ 0011 SYS WaveTerminal U2A
+ 0021 GIGAPort
+ 0031 GIGAPortAG
+ 0053 AudioTrak Optoplay
+ 0061 Waveterminal U24
+ 0071 MAYA EX7
+ 0091 Maya 44
+ 00b1 MAYA EX5
+ 1000 MIDI Mate
+ 1010 RoMI/O
+ 1020 M4U
+ 1030 M8U
+ 1090 KeyControl49
+ 10a0 KeyControl25
0a93 C Technologies AB
+ 0002 C-Pen 10
+ 0005 MyPen Light
+ 000d Input Pen
+ 0010 C-Pen 20
0a94 Intersense
0aa3 Lava Computer Mfg., Inc.
0aa4 Develco Elektronik
0aa5 First International Digital
+ 0002 irock! 500 Series
+ 0801 MP3 Player
0aa6 Perception Digital, Ltd
0101 Hercules Jukebox
-0aa7 Wincor Nixdorf GmbH & Co KG
- 0200 POS Display BA63
- 0201 POS Display BA66
- 0300 POS Printer TH210
- 0302 POS Printer TH220
- 0305 Lottery Printer XiPrintPlus
- 0306 POS Printer TH320
- 0308 POS Printer TH420
+ 1501 Store 'n' Go HD Drive
+0aa7 Wincor Nixdorf International GmbH
+ 0100 POS Keyboard, TA58P-USB
+ 0101 POS Keyboard, TA85P-USB
+ 0102 POS Keyboard, TA59-USB
+ 0103 POS Keyboard, TA60-USB
+ 0104 SNIkey Keyboard, SNIKey-KB-USB
+ 0200 Operator Display, BA63-USB
+ 0201 Operator Display, BA66-USB
+ 0202 Operator Display & Scanner, XiCheck-BA63
+ 0203 Operator Display & Scanner, XiCheck-BA66
+ 0204 Graphics Operator Display, BA63GV
+ 0300 POS Printer (printer class mode), TH210
+ 0301 POS Printer (native mode), TH210
+ 0302 POS Printer (printer class mode), TH220
+ 0303 POS Printer (native mode), TH220
+ 0304 POS Printer, TH230
+ 0305 Lottery Printer, XiPrintPlus
+ 0306 POS Printer (printer class mode), TH320
+ 0307 POS Printer (native mode), TH320
+ 0308 POS Printer (printer class mode), TH420
+ 0309 POS Printer (native mode), TH420
+ 030a POS Printer, TH200B
+ 0400 Lottery Scanner, Xiscan S
+ 0401 Lottery Scanner, Xiscan 3
+ 0402 Programmable Magnetic Swipe Card Reader, MSRP-USB
+ 0500 IDE Adapter
+ 0501 Hub Printer Interface
+ 0502 Hub SNIKey Keyboard
4304 Banking Printer TP07
0aa8 TriGem Computer, Inc.
+ 0060 TG 11Mbps WLAN Mini Adapter
+ 1001 DreamComboM4100
+ 3002 InkJet Color Printer
+ 8001 TG_iMON
+ 8002 TG_KLOSS
+ a001 TG_X2
+ a002 TGVFD_KLOSS
+ ffda iMON_VFD
0aa9 Baromtec Co.
f01b Medion MD 6242 MP3 Player
0aaa Japan CBM Corp.
@@ -3390,7 +8083,8 @@
0aaf Digitalway Co., Ltd
0ab0 Arrow Strong Electronics Co., Ltd
0aba Ellisys
- 8001 USB Tracker 110 Protocol Analyzer
+ 8001 Tracker 110 Protocol Analyzer
+ 8002 Explorer 200 Protocol Analyzer
0abe Stereo-Link
0101 SL1200 DAC
0ac3 Sanyo Semiconductor Company Micro
@@ -3399,23 +8093,33 @@
0ac6 Singing Electrons, Inc.
0ac7 Panwest Corp.
0ac8 Z-Star Microelectronics Corp.
+ 0301 Web Camera
0302 ZC0302 WebCam
0321 USB 2.0 Webcam
0323 Luxya WC-1200 USB 2.0 Webcam
301b ZC0301 WebCam
303b ZC0303 WebCam
305b ZC0305 WebCam
+ 307b USB 1.1 WebCam
+ c002 Visual Communication Camera VGP-VCC1
0ac9 Micro Solutions, Inc.
0000 Backpack CD-ReWriter
+ 0001 BACKPACK 2 Cable
+ 0010 BACKPACK
0011 Backpack 40GB Hard Drive
+ 0110 BACKPACK
+ 0111 BackPack
+ 1234 BACKPACK
0aca OPEN Networks Ltd
1060 OPEN NT1 Plus II
0acc Koga Electronics Co.
0acd ID Tech
+ 0401 ID TECH Spectrum III Hybrid Smartcard Reader
0ace ZyDAS
1201 802.11b WiFi
1211 802.11b/g USB2 WiFi
1215 WLA-54L WiFi
+ 1608 ONMI FAXMODEM 56K UNO (ZyXEL)
0acf Intoto, Inc.
0ad0 Intellix Corp.
0ad1 Remotec Technology, Ltd
@@ -3428,12 +8132,34 @@
0aea SciEssence, LLC
0aeb TTP Communications, Ltd
0aec Neodio Technologies Corp.
+ 2101 SmartMedia Card Reader
+ 2102 CompactFlash Card Reader
+ 2103 MMC/SD Card Reader
+ 2104 MemoryStick Card Reader
+ 2201 SmartMedia+CompactFlash Card Reader
+ 2202 SmartMedia+MMC/SD Card Reader
+ 2203 SmartMedia+MemoryStick Card Reader
+ 2204 CompactFlash+MMC/SD Card Reader
+ 2205 CompactFlash+MemoryStick Card Reader
+ 2206 MMC/SD+MemoryStick Card Reader
+ 2301 SmartMedia+CompactFlash+MMC/SD Card Reader
+ 2302 SmartMedia+CompactFlash+MemoryStick Card Reader
+ 2303 SmartMedia+MMC/SD+MemoryStick Card Reader
+ 2304 CompactFlash+MMC/SD+MemoryStick Card Reader
+ 3016 MMC/SD+Memory Stick Card Reader
3050 ND3050 8-in-1 Card Reader
+ 3060 1.1 FS Card Reader
+ 3101 MMC/SD Card Reader
+ 3102 MemoryStick Card Reader
+ 3201 MMC/SD+MemoryStick Card Reader
+ 3216 HS Card Reader
3260 7-in-1 Card Reader
5010 ND5010 Card Reader
0af0 Option
5000 UMTS Card
+ 6000 GlobeTrotter 3G datacard
6300 GT 3G Quad UMTS/GPRS Card
+ 6600 GlobeTrotter 3G+ datacard
0af6 Silver I Co., Ltd
0af7 B2C2, Inc.
0101 Digital TV USB Receiver (DVB-S/T/C / ATSC)
@@ -3444,10 +8170,33 @@
0afd Tateno Dennou, Inc.
0afe Cummins Engine Co.
0aff Jump Zone Network Products, Inc.
+0b00 INGENICO
0b05 ASUSTek Computer, Inc.
+ 1101 Mass Storage (UISDMC4S)
1706 WL-167G 802.11g Adapter [ralink]
+ 1707 WL-167g Wireless Adapter
+ 1708 Mass Storage Device
+ 170b Mass Storage Device
+ 170c WL-159g
+ 170d 802.11b/g Wireless Network Adapter
+ 1712 BT-183 Bluetooth 2.0+EDR adapter
+ 1715 2045 Bluetooth 2.0 Device with trace filter
+ 1716 Bluetooth Device
+ 171b A9T wireless
+ 171c 802.11b/g Wireless Network Adapter
+ 1723 WL-167G v2 802.11g Adapter [ralink]
+ 1724 RT2573
+ 1726 Laptop OLED Display
+ 172a ASUS 802.11n Network Adapter
+ 172b 802.11n Network Adapter
+ 1731 ASUS 802.11n Network Adapter
+ 1732 802.11n Network Adapter
+ 173c BT-183 Bluetooth 2.0
+ 1742 802.11n Network Adapter
+ 6101 Cable Modem
+ 620a Remote NDIS Device
0b0c Todos Data System AB
- 0009 Todos Argos Mini II Smart Card Reader
+ 0009 Todos Argos Mini II Smart Card Reader
0b0e GN Netcom
0b0f AVID Technology
0b10 Pcally
@@ -3465,32 +8214,51 @@
0b30 PNY Technologies, Inc.
0006 SM Media-Shuttle Card Reader
0b33 Contour Design, Inc.
+ 0020 ShuttleXpress
0b37 Hitachi ULSI Systems Co., Ltd
0b39 Omnidirectional Control Technology, Inc.
+ 0109 USB TO Ethernet
+ 0421 Serial
+ 0801 USB-Parallel Bridge
+ 0901 OCT To Fast Ethernet Converter
+ 0c03 LAN DOCK Serial Converter
0b3a IPaxess
0b3b Tekram Technology Co., Ltd
+ 0163 TL-WN320G 1.0 WLAN Adapter
1601 Allnet 0193 802.11b Adapter
1602 ZyXEL ZyAIR B200 802.11b Adapter
1612 AIR.Mate 2@net 802.11b Adapter
+ 1613 802.11b Wireless LAN Adapter
1620 Allnet USB 2.0 Wireless Network Adapter
+ 1630 QuickWLAN
+ 5630 ZD1211
+ 6630 ZD1211
0b3c Olivetti Techcenter
a010 Simple_Way Printer/Scanner/Copier
0b3e Kikusui Electronics Corp.
0b41 Hal Corp.
+ 0011 Crossam2+USB IR commander
0b43 Play.com, Inc.
0003 PS2 Controller Converter
0b47 Sportbug.com, Inc.
0b48 TechnoTrend AG
1003 Technotrend/Hauppauge USB-Nova
+ 1004 TT-PCline
1005 Technotrend/Hauppauge USB-Nova
1006 Technotrend/Hauppauge DEC3000-s
+ 1007 TT-micro plus Device
1008 Technotrend/Hauppauge DEC2000-t
1009 Technotrend/Hauppauge DEC2540-t
0b49 ASCII Corp.
064f Trance Vibrator
0b4b Pine Corp. Ltd.
0100 D'music MP3 Player
+0b4d Graphtec America, Inc.
+ 110a Graphtec CC200-20
0b4e Musical Electronics, Ltd
+ 6500 MP3 Player
+ 8028 MP3 Player
+ 8920 MP3 Player
0b50 Dumpries Co., Ltd
0b51 Comfort Keyboard Co.
0020 Comfort Keyboard
@@ -3504,6 +8272,7 @@
0b60 Nsine, Ltd
0b61 NEC Viewtechnology, Ltd
0b62 Orange Micro, Inc.
+ 000b Bluetooth Device
0059 iBOT2 WebCam
0b63 ADLink Technology, Inc.
0b64 Wonderful Wire Cable Co., Ltd
@@ -3519,19 +8288,35 @@
0b75 Roland DG Corp.
0b79 Sunrise Telecom, Inc.
0b7a Zeevo, Inc.
+ 07d0 Bluetooth Dongle
0b7b Taiko Denki Co., Ltd
0b7c ITRAN Communications, Ltd
0b7d Astrodesign, Inc.
0b84 Rextron Technology, Inc.
0b85 Elkat Electronics, Sdn., Bhd.
0b86 Exputer Systems, Inc.
+ 5100 XMC5100 Zippy Drive
+ 5110 XMC5110 Flash Drive
+ 5200 XMC5200 Zippy Drive
+ 5201 XMC5200 Zippy Drive
+ 5202 XMC5200 Zippy Drive
+ 5280 XMC5280 Storage Drive
+ fff0 ISP5200 Debugger
0b87 Plus-One I & T, Inc.
0b88 Sigma Koki Co., Ltd, Technology Center
0b89 Advanced Digital Broadcast, Ltd
+0b8c SMART Technologies Inc.
+ 00c3 Sympodium ID350
0b95 ASIX Electronics Corp.
+ 1720 10/100 Ethernet
+ 1780 AX88178
+ 7720 AX88772
0b96 Sewon Telecom
0b97 O2 Micro, Inc.
+ 7732 Smart Card Reader
+ 7761 Oz776 1.1 Hub
7762 Oz776 SmartCard Reader
+ 7772 OZ776 CCID Smartcard Reader
0b98 Playmates Toys, Inc.
0b99 Audio International, Inc.
0b9b Dipl.-Ing. Stefan Kunde
@@ -3539,21 +8324,196 @@
0b9d Softprotec Co.
0b9f Chippo Technologies
0baf U.S. Robotics
+ 00e5 USR6000
00eb USR1120 802.11b Adapter
+ 00ec 56K Faxmodem
+ 00f1 SureConnect ADSL ATM Adapter
+ 00f2 SureConnect ADSL Loader
+ 00f5 SureConnect ADSL ATM Adapter
+ 00f6 SureConnect ADSL Loader
+ 00f7 SureConnect ADSL ATM Adapter
+ 00f8 SureConnect ADSL Loader
+ 00f9 SureConnect ADSL ATM Adapter
+ 00fa SureConnect ADSL Loader
+ 00fb SureConnect ADSL Ethernet/USB Router
0118 U5 802.11g Adapter
+ 011b Wireless MAXg Adapter
+ 0121 USR5423 WLAN
6112 FaxModem Model 5633
0bb0 Concord Camera Corp.
+ 0100 Sound Vision Stream
5007 3340z/Rollei DC3100
0bb1 Infinilink Corp.
0bb2 Ambit Microsystems Corp.
+ 0302 WLAN
6098 USB Cable Modem
0bb3 Ofuji Technology
0bb4 High Tech Computer Corp.
00ce mmO2 XDA GSM/GPRS Pocket PC
00cf SPV C500 Smart Phone
+ 0a01 PocketPC Sync
0a02 Himalaya GSM/GPRS Pocket PC
+ 0a03 PocketPC Sync
+ 0a04 PocketPC Sync
+ 0a05 PocketPC Sync
+ 0a06 PocketPC Sync
0a07 Magician PocketPC SmartPhone / O2 XDA
+ 0a08 PocketPC Sync
+ 0a09 PocketPC Sync
+ 0a0a PocketPC Sync
+ 0a0b PocketPC Sync
+ 0a0c PocketPC Sync
+ 0a0d PocketPC Sync
+ 0a0e PocketPC Sync
+ 0a0f PocketPC Sync
+ 0a10 PocketPC Sync
+ 0a11 PocketPC Sync
+ 0a12 PocketPC Sync
+ 0a13 PocketPC Sync
+ 0a14 PocketPC Sync
+ 0a15 PocketPC Sync
+ 0a16 PocketPC Sync
+ 0a17 PocketPC Sync
+ 0a18 PocketPC Sync
+ 0a19 PocketPC Sync
+ 0a1a PocketPC Sync
+ 0a1b PocketPC Sync
+ 0a1c PocketPC Sync
+ 0a1d PocketPC Sync
+ 0a1e PocketPC Sync
+ 0a1f PocketPC Sync
+ 0a20 PocketPC Sync
+ 0a21 PocketPC Sync
+ 0a22 PocketPC Sync
+ 0a23 PocketPC Sync
+ 0a24 PocketPC Sync
+ 0a25 PocketPC Sync
+ 0a26 PocketPC Sync
+ 0a27 PocketPC Sync
+ 0a28 PocketPC Sync
+ 0a29 PocketPC Sync
+ 0a2a PocketPC Sync
+ 0a2b PocketPC Sync
+ 0a2c PocketPC Sync
+ 0a2d PocketPC Sync
+ 0a2e PocketPC Sync
+ 0a2f PocketPC Sync
+ 0a30 PocketPC Sync
+ 0a31 PocketPC Sync
+ 0a32 PocketPC Sync
+ 0a33 PocketPC Sync
+ 0a34 PocketPC Sync
+ 0a35 PocketPC Sync
+ 0a36 PocketPC Sync
+ 0a37 PocketPC Sync
+ 0a38 PocketPC Sync
+ 0a39 PocketPC Sync
+ 0a3a PocketPC Sync
+ 0a3b PocketPC Sync
+ 0a3c PocketPC Sync
+ 0a3d PocketPC Sync
+ 0a3e PocketPC Sync
+ 0a3f PocketPC Sync
+ 0a40 PocketPC Sync
+ 0a41 PocketPC Sync
+ 0a42 PocketPC Sync
+ 0a43 PocketPC Sync
+ 0a44 PocketPC Sync
+ 0a45 PocketPC Sync
+ 0a46 PocketPC Sync
+ 0a47 PocketPC Sync
+ 0a48 PocketPC Sync
+ 0a49 PocketPC Sync
+ 0a4a PocketPC Sync
+ 0a4b PocketPC Sync
+ 0a4c PocketPC Sync
+ 0a4d PocketPC Sync
+ 0a4e PocketPC Sync
+ 0a4f PocketPC Sync
+ 0a50 HTC SmartPhone Sync
0a51 SPV C400 / T-Mobile SDA GSM/GPRS Pocket PC
+ 0a52 SmartPhone Sync
+ 0a53 SmartPhone Sync
+ 0a54 SmartPhone Sync
+ 0a55 SmartPhone Sync
+ 0a56 SmartPhone Sync
+ 0a57 SmartPhone Sync
+ 0a58 SmartPhone Sync
+ 0a59 SmartPhone Sync
+ 0a5a SmartPhone Sync
+ 0a5b SmartPhone Sync
+ 0a5c SmartPhone Sync
+ 0a5d SmartPhone Sync
+ 0a5e SmartPhone Sync
+ 0a5f SmartPhone Sync
+ 0a60 SmartPhone Sync
+ 0a61 SmartPhone Sync
+ 0a62 SmartPhone Sync
+ 0a63 SmartPhone Sync
+ 0a64 SmartPhone Sync
+ 0a65 SmartPhone Sync
+ 0a66 SmartPhone Sync
+ 0a67 SmartPhone Sync
+ 0a68 SmartPhone Sync
+ 0a69 SmartPhone Sync
+ 0a6a SmartPhone Sync
+ 0a6b SmartPhone Sync
+ 0a6c SmartPhone Sync
+ 0a6d SmartPhone Sync
+ 0a6e SmartPhone Sync
+ 0a6f SmartPhone Sync
+ 0a70 SmartPhone Sync
+ 0a71 SmartPhone Sync
+ 0a72 SmartPhone Sync
+ 0a73 SmartPhone Sync
+ 0a74 SmartPhone Sync
+ 0a75 SmartPhone Sync
+ 0a76 SmartPhone Sync
+ 0a77 SmartPhone Sync
+ 0a78 SmartPhone Sync
+ 0a79 SmartPhone Sync
+ 0a7a SmartPhone Sync
+ 0a7b SmartPhone Sync
+ 0a7c SmartPhone Sync
+ 0a7d SmartPhone Sync
+ 0a7e SmartPhone Sync
+ 0a7f SmartPhone Sync
+ 0a80 SmartPhone Sync
+ 0a81 SmartPhone Sync
+ 0a82 SmartPhone Sync
+ 0a83 SmartPhone Sync
+ 0a84 SmartPhone Sync
+ 0a85 SmartPhone Sync
+ 0a86 SmartPhone Sync
+ 0a87 SmartPhone Sync
+ 0a88 SmartPhone Sync
+ 0a89 SmartPhone Sync
+ 0a8a SmartPhone Sync
+ 0a8b SmartPhone Sync
+ 0a8c SmartPhone Sync
+ 0a8d SmartPhone Sync
+ 0a8e SmartPhone Sync
+ 0a8f SmartPhone Sync
+ 0a90 SmartPhone Sync
+ 0a91 SmartPhone Sync
+ 0a92 SmartPhone Sync
+ 0a93 SmartPhone Sync
+ 0a94 SmartPhone Sync
+ 0a95 SmartPhone Sync
+ 0a96 SmartPhone Sync
+ 0a97 SmartPhone Sync
+ 0a98 SmartPhone Sync
+ 0a99 SmartPhone Sync
+ 0a9a SmartPhone Sync
+ 0a9b SmartPhone Sync
+ 0a9c SmartPhone Sync
+ 0a9d SmartPhone Sync
+ 0a9e SmartPhone Sync
+ 0a9f SmartPhone Sync
+ 0b04 Hermes / TyTN / T-Mobile MDA Vario II / O2 Xda Trion
+ 0b06 Athena / Advantage x7500 / Dopod U1000 / T-Mobile AMEO
+ 0b0c Elf / Touch / P3450 / T-Mobile MDA Touch / O2 Xda Nova / Dopod S1
+ 0bce Vario MDA
0bb5 Murata Manufacturing Co., Ltd
0bb6 Network Alchemy
0bb7 Joytech Computer Co., Ltd
@@ -3566,12 +8526,27 @@
0bc0 Knilink Technology, Inc.
0bc1 Fuw Yng Electronics Co., Ltd
0bc2 Seagate RSS LLC
+ 2000 Storage Adapter V3 (TPP)
0bc3 IPWireless, Inc.
0bc4 Microcube Corp.
0bc5 JCN Co., Ltd
0bc6 ExWAY, Inc.
0bc7 X10 Wireless Technology, Inc.
+ 0001 ActiveHome (ACPI-compliant)
+ 0002 Firecracker Interface (ACPI-compliant)
+ 0003 VGA Video Sender (ACPI-compliant)
0004 X10 Receiver
+ 0005 Wireless Transceiver (ACPI-compliant)
+ 0006 Wireless Transceiver (ACPI-compliant)
+ 0007 Wireless Transceiver (ACPI-compliant)
+ 0008 Wireless Transceiver (ACPI-compliant)
+ 0009 Wireless Transceiver (ACPI-compliant)
+ 000a Wireless Transceiver (ACPI-compliant)
+ 000b Transceiver (ACPI-compliant)
+ 000c Transceiver (ACPI-compliant)
+ 000d Transceiver (ACPI-compliant)
+ 000e Transceiver (ACPI-compliant)
+ 000f Transceiver (ACPI-compliant)
0bc8 Telmax Communications
0bc9 ECI Telecom, Ltd
0bca Startek Engineering, Inc.
@@ -3579,9 +8554,38 @@
0bd7 Andrew Pargeter & Associates
a021 Amptek DP4 multichannel signal analyzer
0bda Realtek Semiconductor Corp.
+ 0103 USB 2.0 Card Reader
+ 0104 Mass Storage Device
+ 0106 Mass Storage Device
+ 0107 Mass Storage Device
+ 0108 Mass Storage Device
+ 0111 Card Reader
+ 0113 Mass Storage Device
+ 0115 Mass Storage Device
+ 0116 Mass Storage Device
+ 0117 Mass Storage Device
+ 0118 Mass Storage Device
+ 0151 Mass Stroage Device
+ 0152 Mass Stroage Device
+ 0153 Mass Stroage Device
+ 0156 Mass Stroage Device
+ 0157 Mass Stroage Device
+ 0158 Mass Stroage Device
+ 0161 Mass Stroage Device
+ 0168 Mass Stroage Device
+ 0169 Mass Stroage Device
+ 0171 Mass Stroage Device
+ 0176 Mass Stroage Device
+ 0178 Mass Stroage Device
+ 2831 2831U Device
8150 RTL8150 Fast Ethernet Adapter
8151 RTL8151 Adapteon Business Mobile Networks BV
+ 8187 RTL8187 Wireless Adapter
+ 8189 RTL8187B Wireless 802.11g 54Mbps Network Adapter
+ 8197 RTL8187B Wireless Adapter
0bdb Ericsson Business Mobile Networks BV
+ 1000 BV Bluetooth Device
+ 1002 Bluetooth Device 1.2
0bdc Y Media Corp.
0bdd Orange PCS
0be2 Kanda Tsushin Kogyo Co., Ltd
@@ -3593,8 +8597,15 @@
0bef Way2Call Communications
0bf0 Pace Micro Technology PLC
0bf1 Intracom S.A.
+ 0001 netMod Driver Ver 2.4.17 (CAPI)
+ 0002 netMod Driver Ver 2.4 (CAPI)
+ 0003 netMod Driver Ver 2.4 (CAPI)
0bf2 Konexx
0bf6 Addonics Technologies, Inc.
+ 0103 Storage Device
+ 1234 Storage Device
+ a000 Cable 205 (TPP)
+ a001 Cable 205
a002 IDE Bridge
0bf7 Sunny Giken, Inc.
0bf8 Fujitsu Siemens Computers
@@ -3606,9 +8617,18 @@
0c08 Agate
0378 Q 16MB Storage Device
0c09 Comjet Information System
+ a5a5 Litto Version USB2.0
0c0a Highpoint Technologies, Inc.
0c0b Dura Micro, Inc. (Acomdata)
27cb 6-in-1 Flash Reader and Writer
+ 27d7 Multi Memory reader/writer MD-005
+ 27da Multi Memory reader/writer MD-005
+ 27dc Multi Memory reader/writer MD-005
+ 27e7 3,5'' HDD case MD-231
+ 27ee 3,5'' HDD case MD-231
+ 2814 3,5'' HDD case MD-231
+ 2815 3,5'' HDD case MD-231
+ 281d 3,5'' HDD case MD-231
a109 CF/SM Reader and Writer
a10c SD/MS Reader and Writer
b001 USB 2.0 Mass Storage IDE adapter
@@ -3618,6 +8638,8 @@
8809 Red Octane Ignition Xbox DDR Pad
0c15 Iris Graphics
0c16 Gyration, Inc.
+ 0080 eHome Infrared Receiver
+ 0081 eHome Infrared Receiver
0c17 Cyberboard A/S
0c18 SynerTek Korea, Inc.
0c19 cyberPIXIE, Inc.
@@ -3627,8 +8649,23 @@
0c22 Tally Printer Corp.
0c23 Lernout + Hauspie
0c24 Taiyo Yuden
+ 0001 Bluetooth Adaptor
+ 0002 Bluetooth Device2
+ 0005 Bluetooth Device(BC04-External)
+ 000b Bluetooth Device(BC04-External)
+ 000c Bluetooth Adaptor
+ 000e Bluetooth Device(BC04-External)
+ 000f Bluetooth Driver (V2.0+EDR)
+ 0010 Bluetooth Device(BC04-External)
+ 0012 Bluetooth Device(BC04-External)
+ 0018 Bluetooth Device(BC04-External)
+ 0019 Bluetooth Device
+ 0c24 Bluetooth Device(SAMPLE)
+ ffff Bluetooth module with BlueCore in DFU mode
0c25 Sampo Corp.
0310 Scream Cam
+0c27 RFIDeas, Inc
+ 3bfa pcProx Card Reader
0c2e Metro
0200 Metrologic Scanner
0c35 Eagletron, Inc.
@@ -3642,27 +8679,140 @@
0c3d Innocom, Inc.
0c3e Nextcell, Inc.
0c44 Motorola iDEN
+ 0021 iDEN P2k0 Device
+ 0022 iDEN P2k1 Device
+ 03a2 iDEN Smartphone
0c45 Microdia
+ 1020 Mass Storage Reader
+ 1028 Mass Storage Reader
+ 1030 Mass Storage Reader
+ 1031 Sonix Mass Storage Device
+ 1032 Mass Storage Reader
+ 1033 Sonix Mass Storage Device
+ 1034 Mass Storage Reader
+ 1035 Mass Storage Reader
+ 1036 Mass Storage Reader
+ 1037 Sonix Mass Storage Device
+ 1050 CF Card Reader
+ 1058 HDD Reader
1060 iFlash SM-Direct Card Reader
+ 1061 Mass Storage Reader
+ 1062 Mass Storage Reader
+ 1063 Sonix Mass Storage Device
+ 1064 Mass Storage Reader
+ 1065 Mass Storage Reader
+ 1066 Mass Storage Reader
+ 1067 Mass Storage Reader
+ 1158 A56AK
184c VoIP Phone
6001 Genius VideoCAM NB
6005 Sweex Mini WebCam
+ 6007 VideoCAM Eye
+ 6009 VideoCAM ExpressII
+ 600d TwinkleCam USB camera
+ 6011 PC Camera (SN9C102)
+ 6019 PC Camera (SN9C102)
+ 6024 VideoCAM ExpressII
+ 6025 VideoCAM ExpressII
+ 6028 Typhoon Easycam USB 330K (older)
6029 Triplex i-mini PC Camera
602a Meade ETX-105EC Camera
+ 602b VideoCAM NB 300
602c Clas Ohlson TWC-30XOP WebCam
+ 602d VideoCAM ExpressII
+ 602e VideoCAM Messenger
+ 6030 VideoCAM ExpressII
+ 603f VideoCAM ExpressII
+ 6040 CCD PC Camera (PC390A)
+ 606a CCD PC Camera (PC390A)
+ 607a CCD PC Camera (PC390A)
+ 607b Win2 PC Camera
+ 607c CCD PC Camera (PC390A)
+ 607e CCD PC Camera (PC390A)
+ 6080 Audio (Microphone)
+ 6082 VideoCAM Look
+ 6083 VideoCAM Look
+ 608c VideoCAM Look
+ 608e VideoCAM Look
+ 608f VideoCAM Look
+ 60a8 VideoCAM Look
+ 60aa VideoCAM Look
+ 60ab PC Camera
+ 60af VideoCAM Look
60b0 Genius VideoCam Look
- 6270 U-CAM PC Camera NE878
+ 60c0 PC Camera with Mic (SN9C105)
+ 60c8 Win2 PC Camera
+ 60cc Composite Device
+ 60ec Composite Device
+ 60ef Win2 PC Camera
+ 60fa PC Camera with Mic (SN9C105)
+ 60fb Composite Device
+ 60fc PC Camera with Mic (SN9C105)
+ 60fe Audio (Microphone)
+ 6108 Win2 PC Camera
+ 6122 PC Camera (SN9C110)
+ 6128 PC Camera (SN9C325 + OM6802)
+ 6123 PC Camera (SN9C110)
+ 612a PC Camera (SN9C325)
+ 612c PC Camera (SN9C110)
+ 612e PC Camera (SN9C110)
+ 612f PC Camera (SN9C110)
+ 6130 PC Camera (SN9C120)
+ 6138 Win2 PC Camera
+ 613a PC Camera (SN9C120)
+ 613b Win2 PC Camera
+ 613c PC Camera (SN9C120)
+ 613e PC Camera (SN9C120)
+ 6240 PC Camera (SN9C201 + MI1300)
+ 6242 PC Camera (SN9C201 + MI1310)
+ 6243 PC Camera (SN9C201 + S5K4AAFX)
+ 6248 PC Camera (SN9C201 + OV9655)
+ 624b PC Camera (SN9C201 + CX1332)
+ 624c PC Camera (SN9C201 + MI1320)
+ 624e PC Camera (SN9C201 + SOI968)
+ 624f PC Camera (SN9C201 + OV9650)
+ 6253 PC Camera (SN9C201 + OV9650)
+ 6260 PC Camera (SN9C201 + OV7670ISP)
+ 6262 PC Camera (SN9C201 + OM6802)
+ 6270 PC Camera (SN9C201 + MI0360/MT9V011 or MI0360SOC/MT9V111) U-CAM PC Camera NE878, Whitcom WHC017, ...
+ 627a PC Camera (SN9C201 + S5K53BEB)
+ 627b PC Camera (SN9C201 + OV7660)
+ 627c PC Camera (SN9C201 + HV7131R)
+ 627f PC Camera (SN9C201 + OV965x + EEPROM)
+ 6280 PC Camera with Microphone (SN9C202 + MI1300)
+ 6282 PC Camera with Microphone (SN9C202 + MI1310)
+ 6283 PC Camera with Microphone (SN9C202 + S5K4AAFX)
+ 6288 PC Camera with Microphone (SN9C202 + OV9655)
+ 628a PC Camera with Microphone (SN9C202 + ICM107)
+ 628b PC Camera with Microphone (SN9C202 + CX1332)
+ 628c PC Camera with Microphone (SN9C202 + MI1320)
+ 628e PC Camera with Microphone (SN9C202 + SOI968)
+ 628f PC Camera with Microphone (SN9C202 + OV9650)
+ 62a0 PC Camera with Microphone (SN9C202 + OV7670ISP)
+ 62a2 PC Camera with Microphone (SN9C202 + OM6802)
+ 62b0 PC Camera with Microphone (SN9C201 + MI0360/MT9V011 or MI0360SOC/MT9V111)
+ 62b3 PC Camera with Microphone (SN9C202 + OV9655)
+ 62ba PC Camera with Microphone (SN9C202 + S5K53BEB)
+ 62bb PC Camera with Microphone (SN9C202 + OV7660)
+ 62bc PC Camera with Microphone (SN9C202 + HV7131R)
+ 62be PC Camera with Microphone (SN9C202 + OV7663)
+ 62c0 Pavilion Webcam
8000 DC31VC
+ 8006 Dual Mode Camera (8006 VGA)
800a Vivitar Vivicam3350B
0c46 WaveRider Communications, Inc.
0c4b Reiner SCT Kartensysteme GmbH
0100 cyberJack e-com/pinpad
0300 cyberJack pinpad(a)
0c52 Sealevel Systems, Inc.
+ 2101 Serial Converter
0c53 ViewPLUS, Inc.
0c54 Glory, Ltd
0c55 Spectrum Digital, Inc.
- 0510 Spectrum Digital XDS510 JTAG Debugger
+ 0510 Spectrum Digital XDS510 JTAG Debugger
+ 0540 SPI540
+ 5416 TMS320C5416 DSK
+ 6416 TMS320C6416 DDB
0c56 Billion Bright, Ltd
0c57 Imaginative Design Operation Co., Ltd
0c58 Vidar Systems Corp.
@@ -3680,9 +8830,13 @@
0c74 Optronic Laboratories Inc.
0002 OL 700-30 Goniometer
0c76 JMTek, LLC.
+ 0001 Mass Storage Controller
+ 0002 Mass Storage Controller
0003 USBdisk
+ 0004 Mass Storage Controller
0005 Transcend USB Flash disk
0006 Transcend JetFlash
+ 0007 Mass Storage Device
0c77 Sipix Group, Ltd
1001 SiPix Web2
1002 SiPix SC2100
@@ -3694,13 +8848,18 @@
0c7a Wing-Span Enterprise Co., Ltd
0c86 NDA Technologies, Inc.
0c88 Kyocera Wireless Corp.
+ 0021 Handheld
+ 17da Qualcomm Kyocera CDMA Technologies MSM
0c89 Honda Tsushin Kogyo Co., Ltd
0c8a Pathway Connectivity, Inc.
0c8b Wavefly Corp.
0c8c Coactive Networks
0c8d Tempo
0c8e Cesscom Co., Ltd
+ 6000 Luxian Series
0c8f Applied Microsystems
+0c98 Berkshire Products, Inc.
+ 1140 USB PC Watchdog
0c99 Innochips Co., Ltd
0c9a Hanwool Robotics Corp.
0c9b Jobin Yvon, Inc.
@@ -3711,14 +8870,24 @@
0ca4 ST&T Instrument Corp.
0ca5 BAE Systems Canada, Inc.
0ca6 Castles Technology Co., Ltd
+ 0010 EZUSB PC/SC Smart Card Reader
+ 0050 EZ220PU Reader Controller
+ 1077 Bludrive Family Smart Card Reader
+ 107e Reader Controller
+ 2010 myPad110 PC/SC Smart Card Reader
0ca7 Information Systems Laboratories
0cad Motorola CGISS
+ 9001 PowerPad Pocket PCÂ Device
0cae Ascom Business Systems, Ltd
0caf Buslink
+ 2507 Hi-Speed USB-to-IDE Bridge Controller
2515 Flash Disk Embedded Hub
2516 Flash Disk Security Device
2517 Flash Disk Mass Storage Device
+ 25c7 Hi-Speed USB-to-IDE Bridge Controller
3a00 Hard Drive
+ 3a20 Mass Storage Device
+ 3acd Mass Storage Device
0cb0 Flying Pig Systems
0cb1 Innovonics, Inc.
0cb6 Celestix Networks, Pte., Ltd
@@ -3727,6 +8896,10 @@
0cba Trust Electronic (Shanghai) Co., Ltd
0cbb Shanghai Darong Electronics Co., Ltd
0cbc Palmax Technology Co., Ltd
+ 0101 Pocket PC P6C
+ 0201 Personal Digital Assistant
+ 0301 Personal Digital Assistant P6M+
+ 0401 Pocket PC
0cbd Pentel Co., Ltd (Electronics Equipment Div.)
0cbe Keryx Technologies, Inc.
0cbf Union Genius Computer Co., Ltd
@@ -3744,42 +8917,101 @@
0ccb SKNet Co., Ltd
0ccc Domex Technology Corp.
0ccd TerraTec Electronic GmbH
+ 0012 PHASE 26
+ 0013 PHASE 26
+ 0014 PHASE 26
+ 0015 Flash Update for TerraTec PHASE 26
+ 0021 Cameo Grabster 200
+ 0023 Mystify Claw
+ 0028 Aureon 5.1 MkII
+ 0032 MIDI HUBBLE
+ 0035 Miditech Play'n Roll
+ 0036 Cinergy 250 Audio
+ 0037 Cinergy 250 Audio
0038 Cinergy T^2 DVB-T Receiver
+ 0039 Grabster AV 400
+ 003b Cinergy 400
+ 003c Grabster AV 250
+ 0042 Cinergy Hybrid T XS
+ 0043 Cinergy T XS
+ 004e Cinergy T XS
+ 004f Cinergy Analog XS
+ 005c Cinergy T²
+ 0069 Cinergy T XE DVB-T Receiver
0cd4 Bang Olufsen
0101 BeolinkPC2
0cd7 NewChip S.r.l.
0cd8 JS Digitech, Inc.
+ 2007 Smart Card Reader/JSTU-9700
0cd9 Hitachi Shin Din Cable, Ltd
0cde Z-Com
+ 0001 M4Y-750
0002 XI-725/726 Prism2.5 802.11b Adapter
+ 0003 Sagem 802.11b Dongle
+ 0004 Sagem 802.11b Dongle
0005 XI-735 Prism3 802.11b Adapter
0006 Medion 40900 802.11b Adapter
+ 0008 Sitecom Wireless Network Adapter 100G+ WL-125
+ 0009 (ZD1211)IEEE 802.11b+g Adapter
+ 0011 ZD1211
+ 0012 AR5523
+ 0013 AR5523 driver (no firmware)
+ 0014 NB 802.11g Wireless LAN Adapter(3887A)
+ 0015 Zoom Wireless-G
+ 0016 NB 802.11g Wireless LAN Adapter(3887A)
+ 0018 NB 802.11a/b/g Wireless LAN Adapter(3887A)
+ 001a ZD1211B
+ 001c 802.11b/g Wireless Network Adapter
+ 0020 Wi-Fi Wireless LAN Adapter
+ 0022 802.11b/g/n Wireless Network Adapter
+0ce9 pico Technology
+ 1001 PicoScope3204
0cf1 e-Conn Electronic Co., Ltd
0cf2 ENE Technology, Inc.
0cf3 Atheros Communications, Inc.
+ 0001 AR5523
+ 0002 AR5523 (no firmware)
+ 0003 AR5523
+ 0004 AR5523 (no firmware)
+ 0005 AR5523
+ 0006 AR5523 (no firmware)
0cf4 Fomtex Corp.
0cf5 Cellink Co., Ltd
0cf6 Compucable Corp.
0cf7 ishoni Networks
0cf8 Clarisys, Inc.
+ 0750 Claritel-i750 - vp
0cf9 Central System Research Co., Ltd
0cfa Inviso, Inc.
0cfc Minolta-QMS, Inc.
0cff SAFA MEDIA Co., Ltd.
0320 SR-380N
0d06 telos EDV Systementwicklung GmbH
+0d08 UTStarcom
+ 0602 DV007 [serial]
+ 0603 DV007 [storage]
0d0b Contemporary Controls
0d0c Astron Electronics Co., Ltd
0d0d MKNet Corp.
0d0e Hybrid Networks, Inc.
0d0f Feng Shin Cable Co., Ltd
0d10 Elastic Networks
+ 0001 StormPort (WDM)
0d11 Maspro Denkoh Corp.
0d12 Hansol Electronics, Inc.
0d13 BMF Corp.
0d14 Array Comm, Inc.
0d15 OnStream b.v.
0d16 Hi-Touch Imaging Technologies Co., Ltd
+ 0001 PhotoShuttle
+ 0002 Photo Printer 730 series
+ 0004 Photo Printer 63xPL/PS
+ 0100 Photo Printer 63xPL/PS
+ 0102 Photo Printer 64xPS
+ 0103 Photo Printer 730 series
+ 0104 Photo Printer 63xPL/PS
+ 0105 Photo Printer 64xPS
+ 0200 Photo Printer 64xDL
0d17 NALTEC, Inc.
0d18 coaXmedia
0d19 Hank Connection Industrial Co., Ltd
@@ -3787,8 +9019,10 @@
0d33 AirSpeak, Inc.
0d34 Rearden Steel Technologies
0d35 Dah Kun Co., Ltd
+0d3a Posiflex Technologies, Inc.
0d3c Sri Cable Technology, Ltd
0d3d Tangtop Technology Co., Ltd
+ 0001 HID Keyboard
0d3e Fitcom, inc.
0d3f MTS Systems Corp.
0d40 Ascor, Inc.
@@ -3801,11 +9035,22 @@
4001 mIDentity Basic/Classic (composite device)
4081 mIDentity Basic/Classic (installationless)
0d49 Maxtor
+ 3000 Drive
+ 3010 3000LE Drive
+ 3100 Hi-Speed USB-IDE Bridge Controller
+ 5000 5000XT Drive
+ 5010 5000LE Drive
+ 5020 Mobile Hard Disk Drive
+ 7000 OneTouch
+ 7010 OneTouch
0d4a NF Corp.
0d4b Grape Systems, Inc.
0d4c Tedas AG
0d4d Coherent, Inc.
0d4e Agere Systems Netherland BV
+ 047a WLAN Card
+ 1000 Wireless Card Model 0801
+ 1001 Wireless Card Model 0802
0d4f EADS Airbus France
0d50 Cleware GmbH
0011 USB-Temp2 Thermometer
@@ -3818,17 +9063,33 @@
0d5c Belkin
a002 F5D6050 802.11b Adapter
0d5e Myacom, Ltd
+ 2346 BT Digital Access adapter
0d5f CSI, Inc.
0d60 IVL Technologies, Ltd
0d61 Meilu Electronics (Shenzhen) Co., Ltd
0d62 Darfon Electronics Corp.
+ 0003 Smartcard Reader
+ 0004 Filter Driver
+ 0306 M530 Mouse
+ 0800 Magic Wheel
+ 2021 AM805 Keyboard
+ 2026 TECOM Bluetooth Device
a100 Benq Mouse
0d63 Fritz Gegauf AG
0d64 DXG Technology Corp.
+ 0105 Dual Mode Digital Camera 1.3M
0107 Horus MT-409 Camera
+ 0108 Dual Mode Digital Camera
+ 0202 Dual Mode Video Camera Device
0303 DXG-305V Camera
1001 SiPix Stylecam/UMAX AstraPix 320s
+ 1002 Fashion Cam 01 Dual-Mode DSC (Video Camera)
+ 1003 Fashion Cam Dual-Mode DSC (Controller)
1021 D-Link DSC 350F
+ 1208 Dual Mode Still Camera Device
+ 2208 Mass Storage
+ 3105 Dual Mode Digital Camera Disk
+ 3108 Digicam Mass Storage Device
0d65 KMJP Co., Ltd
0d66 TMT
0d67 Advanet, Inc.
@@ -3850,31 +9111,86 @@
0100 PS1001/1011/1006/1026 Flash Disk
0110 Gigabyte FlexDrive
0120 Disk Pro 64MB
+ 0124 GIGABYTE Disk
0240 I/O-Magic/Transcend 6-in-1 Card Reader
- 110E NEC uPD720121/130 USB-ATA/ATAPI Bridge
+ 110e NEC uPD720121/130 USB-ATA/ATAPI Bridge
1240 Apacer 6-in-1 Card Reader 2.0
1270 Wolverine SixPac 6000
1300 Flash Disk
1320 PS2031 Flash Disk
+ 1400 Attache 256MB USB 2.0 Flash Drive
1420 PS2044 Pen Drive
1470 Vosonic X's-Drive II+ VP2160
1900 USB Thumb Drive
0d7e American Computer & Digital Components
+ 2507 Hi-Speed USB-to-IDE Bridge Controller
+ 2517 Hi-Speed Mass Storage Device
+ 25c7 Hi-Speed USB-to-IDE Bridge Controller
0d7f Essential Reality LLC
0d80 H.R. Silvine Electronics, Inc.
0d81 TechnoVision
0d83 Think Outside, Inc.
0d89 Oz Software
0d8a King Jim Co., Ltd
+ 0101 TEPRA PRO
0d8b Ascom Telecommunications, Ltd
0d8c C-Media Electronics, Inc.
+ 0001 Audio Device
+ 0002 Composite Device
+ 0003 Sound Device
+ 0006 Storm HP-USB500 5.1 Headset
000c Audio Adapter
+ 000d Composite Device
000e Audio Adapter (Planet UP-100, Genius G-Talk)
+ 0102 CM106 Like Sound Device
0103 Turtle Beach Audio Advantage Micro
+ 0201 CM6501
+ 5000 Mass Storage Controller
+ 5200 Mass Storage Controller(0D8C,5200)
b213 USB Phone CM109 (aka CT2000,VPT1000)
0d8d Promotion & Display Technology, Ltd
+ 0234 V-234 Composite Device
+ 0550 V-550 Composite Device
+ 0551 V-551 Composite Device
+ 0552 V-552 Composite Device
+ 0651 V-651 Composite Device
+ 0652 V-652 Composite Device
+ 0653 V-653 Composite Device
+ 0654 V-654 Composite Device
+ 0655 V-655 Composite Device
+ 0656 V-656 Composite Device
+ 0657 V-657 Composite Device
+ 0658 V-658 Composite Device
+ 0659 V-659 Composite Device
+ 0660 V-660 Composite Device
+ 0661 V-661 Composite Device
+ 0662 V-662 Composite Device
+ 0850 V-850 Composite Device
+ 0851 V-851 Composite Device
+ 0852 V-852 Composite Device
+ 0901 V-901 Composite Device
+ 0902 V-902 Composite Device
+ 0903 V-903 Composite Device
+ 4754 Voyager DMP Composite Device
+ bb00 Bloomberg Composite Device
+ bb01 Bloomberg Composite Device
+ bb02 Bloomberg Composite Device
+ bb03 Bloomberg Composite Device
+ bb04 Bloomberg Composite Device
+ bb05 Bloomberg Composite Device
+ fffe Global Tuner Composite Device
+ ffff Voyager DMP Composite Device
0d8e Global Sun Technology, Inc.
+ 0163 802.11g 54 Mbps Wireless Dongle
+ 1621 802.11b Wireless Adapter
+ 3762 802.11g Wireless Mini adapter
+ 3763 802.11g Wireless dongle
7100 802.11b Adapter
+ 7110 WL-210
+ 7801 AR5523
+ 7802 AR5523 (no firmware)
+ 7811 AR5523
+ 7812 AR5523 (no firmware)
7a01 PRISM25 802.11b Adapter
0d8f Pitney Bowes
0d90 Sure-Fire Electrical Corp.
@@ -3890,18 +9206,22 @@
0001 SBIG Astronomy Camera (without firmware)
0101 SBIG Astronomy Camera (with firmware)
0d98 Mars Semiconductor Corp.
+ 0300 Avaya Wireless Card
0d99 Trazer Technologies, Inc.
0d9a RTX Telecom AS
+ 0001 Bluetooth Device
0d9b Tat Shing Electrical Co.
0d9c Chee Chen Hi-Technology Co., Ltd
0d9d Sanwa Supply, Inc.
0d9e Avaya
+ 0300 Wireless Card
0d9f Powercom Co., Ltd
0da0 Danger Research
0da1 Suzhou Peter's Precise Industrial Co., Ltd
0da2 Land Instruments International, Ltd
0da3 Nippon Electro-Sensory Devices Corp.
0da4 Polar Electro OY
+ 0001 Interface
0da7 IOGear, Inc.
0da8 softDSP Co., Ltd
0001 SDS 200A Oscilloscope
@@ -3909,22 +9229,61 @@
0100 DVR/CVR-M140 MP3 Player
0dad Westover Scientific
0db0 Micro Star International
+ 1020 PC2PC WLAN Card
1967 Bluetooth Dongle
4011 Medion Flash XL V2.0 Card Reader
+ 4600 802.11b/g Turbo Wireless Adapter
+ 5501 Mass Storage Device
+ 5502 Mass Storage Device
+ 5513 MP3 Player
+ 5515 MP3 Player
+ 5516 MP3 Player
+ 6823 UB11B/MS-6823 802.11b Wi-Fi adapter
+ 6826 IEEE 802.11g Wireless Network Adapter
+ 6855 Bluetooth Device
+ 6861 MSI-6861 802.11g WiFi adapter
+ 6865 RT2570
+ 6869 RT2570
+ 6874 RT2573
+ 6877 RT2573
+ 6881 Bluetooth Class I EDR Device
+ 688a Bluetooth Class I EDR Device
+ 6970 Bluetooth adapter
697a Bluetooth Dongle
- 6982 Medion Flash XL V2.7A Card Reader
+ 6982 Medion Flash XL Card Reader
+ a861 RT2573
+ a874 RT2573
a970 Bluetooth dongle
+ a97a Bluetooth EDR Device
+ b970 Bluetooth EDR Device
+ b97a Bluetooth EDR Device
0db1 Wen Te Electronics Co., Ltd
0db2 Shian Hwi Plug Parts, Plastic Factory
0db3 Tekram Technology Co., Ltd
0db4 Chung Fu Chen Yeh Enterprise Corp.
+0db7 ELCON Systemtechnik
+ 0002 Goldpfeil P-LAN
0dbe Jiuh Shiuh Precision Industry Co., Ltd
0dbf Quik Tech Solutions
+ 0002 SmartDongle Security Key
+ 0200 HDD Storage Solution
021b USB-2.0 IDE Adapter
+ 0300 Storage Adapter
+ 0333 Storage Adapter
+ 0707 ZIV Drive
0dc0 Great Notions
0dc1 Tamagawa Seiki Co., Ltd
0dc3 Athena Smartcard Solutions, Inc.
+ 0801 ASEDrive III
+ 0802 ASEDrive IIIe
+ 1104 ASEDrive IIIe KB
+ 1701 ASEKey
+ 1702 ASEKey
0dc4 Macpower Peripherals, Ltd
+ 0040 Mass Storage Device
+ 0041 Mass Storage Device
+ 0042 Mass Storage Device
+ 0101 Hi-Speed Mass Storage Device
0dc5 SDK Co., Ltd
0dc6 Precision Squared Technology Corp.
0dc7 First Cable Line, Inc.
@@ -3935,30 +9294,82 @@
1002 Triple Talk Speech Synthesizer
0dd1 Contek Electronics Co., Ltd
0dd2 Power Quotient International Co., Ltd
+ 0003 Mass Storage (P)
0dd3 MediaQ
0dd4 Custom Engineering SPA
0dd5 California Micro Devices
0dd7 Kocom Co., Ltd
0dd8 Netac Technology Co., Ltd
+ 1060 USB-CF-Card
e007 OnlyDisk U222 Pendrive
0dd9 HighSpeed Surfing
0dda Integrated Circuit Solution, Inc.
+ 0001 Multi-Card Reader 6in1
+ 0002 Multi-Card Reader 7in1
+ 0003 Flash Disk
+ 0005 Internal Multi-Card Reader 6in1
+ 0008 SD single card reader
+ 0009 MS single card reader
+ 000a MS+SD Dual Card Reader
+ 000b SM single card reader
+ 0101 All-In-One Card Reader
+ 0102 All-In-One Card Reader
+ 0301 MP3 Player
+ 0302 Multi-Card MP3 Player
+ 1001 Multi-Flash Disk
+ 2001 Multi-Card Reader
+ 2002 Q018 default PID
+ 2003 Multi-Card Reader
2005 Datalux DLX-1611 16in1 Card Reader
+ 2006 All-In-One Card Reader
+ 2007 USB to ATAPI bridge
+ 2008 All-In-One Card Reader
+ 2013 SD/MS Combo Card Reader
+ 2014 SD/MS Single Card Reader
+ 2023 card reader SD/MS DEMO board with ICSI brand name (MaskROM version)
+ 2024 card reader SD/MS DEMO board with Generic brand name (MaskROM version)
2026 USB2.0 Card Reader
2027 USB 2.0 Card Reader
+ 2315 UFD MP3 player (model 2)
+ 2318 UFD MP3 player (model 1)
+ 2321 UFD MP3 player
0ddb Tamarack, Inc.
0ddd Datelink Technology Co., Ltd
0dde Ubicom, Inc.
0de0 BD Consumer Healthcare
+0dea UTECH Electronic (D.G.) Co., Ltd.
0ded Novasonics
0dee Lifetime Memory Products
+ 4010 Storage Adapter
0def Full Rise Electronic Co., Ltd
0df6 Sitecom Europe B.V.
+ 0001 C-Media VOIP Device
+ 0004 Bluetooth 2.0 Adapter 100m
+ 0007 Bluetooth 2.0 Adapter 10m
+ 000b Bluetooth 2.0.USB Adapter DFU
+ 000d WL-168 Wireless Network Adapter 54g
+ 0017 WL-182
+ 0019 Bluetooth 2.0 adapter 10m CN-512v2 001
+ 001a Bluetooth 2.0 adapter 100m CN-521v2 001
+ 061c LN-028
+ 21f4 44 St Bluetooth Device
+ 2200 Sitecom bluetooth2.0 class 2 dongle CN-512
+ 2208 Sitecom bluetooth2.0 class 2 dongle CN-520
+ 2209 Sitecom bluetooth2.0 class 1 dongle CN-521
9071 zd1211 802.11g Adapter
+ 9075 ZD1211B
+ 90ac WL-172
+ 9712 WL-113 rev 2
0df7 Mobile Action Technology, Inc.
0620 MA-620 Infrared Adapter
0700 MA-700 Bluetooth Adapter
0720 MA-720 Bluetooth Adapter
+ 0722 Bluetooth Dongle
+ 0800 Data Cable
+ 0820 Data Cable
+ 0900 MA i-gotU Travel Logger GPS
+ 1800 Generic Card Reader
+ 1802 Card Reader
0dfa Toyo Communication Equipment Co., Ltd
0dfc GeneralTouch Technology Co., Ltd
0001 Touchscreen
@@ -3971,10 +9382,12 @@
0e1b Crewave
0e21 Cowon Systems, Inc.
0300 iAudio CW200
+ 0400 MP3 Player
0510 iAudio X5
0513 iAudio X5, side USB port
0520 iAudio M5
0700 iAudio U3
+0e22 Symbian Ltd.
0e23 Liou Yuane Enterprise Co., Ltd
0e25 VinChip Systems, Inc.
0e26 J-Phone East Co., Ltd
@@ -3995,6 +9408,7 @@
00fe USB To Parallel adapter
0e38 Stratitec, Inc.
0e39 Smart Modular Technologies, Inc.
+ 0137 Bluetooth Device
0e3a Neostar Technology Co., Ltd
1100 CW-1100 Wireless Network Adapter
0e3b Mansella, Ltd
@@ -4006,18 +9420,25 @@
4750 GuitarPort
5044 PODxt
5050 PODxt Pro
- 534D SeaMonkey
+ 534d SeaMonkey
+0e44 Sun-Riseful Technology Co., Ltd.
0e48 Julia Corp., Ltd
0100 CardPro SmartCard Reader
0e4a Shenzhen Bao Hing Electric Wire & Cable Mfr. Co.
0e4c Radica Games, Ltd
0e55 Speed Dragon Multimedia, Ltd
110b MS3303H USB-to-Serial Bridge
+0e56 Kingston Technology Company, Inc.
+ 6021 K-PEX 100
0e5a Active Co., Ltd
0e5b Union Power Information Industrial Co., Ltd
0e5c Bitland Information Technology Co., Ltd
+ 6118 LCD Device
+ 6119 remote receive and control device
+ 6441 C-Media Sound Device
0e5d Neltron Industrial Co., Ltd
0e66 Hawking
+ 400b UF100 10/100 Network Adapter
400c UF100 Ethernet [pegasus2]
0e67 Fossil, Inc.
0002 Wrist PDA
@@ -4026,18 +9447,25 @@
0e72 Hsi-Chin Electronics Co., Ltd
0e75 TVS Electronics, Ltd
0e79 Archos, Inc.
- 1106 Pocket Medai Assistant - PMA400
+ 1106 Pocket Medai Assistant - PMA400
0e7b On-Tech Industry Co., Ltd
0e7e Gmate, Inc.
0001 Yopy 3000 PDA
+ 1001 YP3X00 PDA
0e82 Ching Tai Electric Wire & Cable Co., Ltd
+0e83 Shin An Wire & Cable Co.
0e8c Well Force Electronic Co., Ltd
+0e8d MediaTek Inc.
+0e8f GreenAsia Inc.
+ 0012 Joystick
0e90 WiebeTech, LLC
+ 0100 Storage Adapter V1
0e91 VTech Engineering Canada, Ltd
0e92 C's Glory Enterprise Co., Ltd
0e93 eM Technics Co., Ltd
0e95 Future Technology Co., Ltd
0e96 Aplux Communications, Ltd
+ c001 TRUST 380 USB2 SPACEC@M
0e97 Fingerworks, Inc.
0e98 Advanced Analogic Technologies, Inc.
0e99 Parallel Dice Co., Ltd
@@ -4048,6 +9476,7 @@
0e9f Tamura Corp.
0ea0 Ours Technology, Inc.
2126 7-in-1 Card Reader
+ 2153 SD Card Reader Key
2168 Transcend JetFlash 2.0 / Astone USB Drive
6803 OTI-6803 Flash Disk
6808 OTI-6808 Flash Disk
@@ -4056,7 +9485,13 @@
0ea7 MSL Enterprises Corp.
0ea8 CenDyne, Inc.
0ead Humax Co., Ltd
+0eb0 NovaTech
+ 9020 NovaTech NV-902W
+ 9021 RT2573
0eb1 WIS Technologies, Inc.
+ 6666 WinFast WalkieTV TV Loader
+ 6668 WinFast WalkieTV TV Loader
+ 7007 WinFast WalkieTV WDM Capture
0eb2 Y-S Electronic Co., Ltd
0eb3 Saint Technology Corp.
0eb7 Endor AG
@@ -4072,15 +9507,22 @@
0ec7 Theta Link Corp.
1008 So., Show 301 Digital Camera
0ecd Lite-On IT Corp.
+ 1400 CD\RW 40X
0ece TaiSol Electronics Co., Ltd
0ecf Phogenix Imaging, LLC
0ed1 WinMaxGroup
6660 USB Flash Disk 64M-C
6680 USB Flash Disk 64M-B
+ 7634 MP3 Player
0ed2 Kyoto Micro Computer Co., Ltd
0ed3 Wing-Tech Enterprise Co., Ltd
+0ed5 Fiberbyte
+ e000 USB-inSync Device
+ f000 Fiberbyte USB-inSync Device
+ f201 Fiberbyte USB-inSync DAQ-2500X
0eda Noriake Itron Corp.
0edf e-MDT Co., Ltd
+ 2060 FID irock! 100 Series
0ee0 Shima Seiki Mfg., Ltd
0ee1 Sarotech Co., Ltd
0ee2 AMI Semiconductor, Inc.
@@ -4088,8 +9530,10 @@
1000 Image Tank 1.5
0ee4 Sunrich Technology, Ltd
0eee Digital Stream Technology, Inc.
+ 8810 Mass Storage Drive
0eef D-WAV Scientific Co., Ltd
0001 eGalax TouchScreen
+ 0002 Touchscreen Controller(Professional)
0ef0 Hitachi Cable, Ltd
0ef1 Aichi Micro Intelligent Corp.
0ef2 I/O Magic Corp.
@@ -4097,10 +9541,11 @@
0ef4 DSI Datotech
0ef5 PointChips
2202 Flash Disk
+ 2366 Flash Disk
0ef6 Yield Microelectronics Corp.
0ef7 SM Tech Co., Ltd (Tulip)
-0efe Wem Technology, Inc.
0efd Oasis Semiconductor
+0efe Wem Technology, Inc.
0f06 Visual Frontier Enterprise Co., Ltd
0f08 CSL Wire & Plug (Shen Zhen) Co.
0f0c CAS Corp.
@@ -4108,6 +9553,10 @@
0f0e Energy Full Corp.
0f12 Mars Engineering Corp.
0f13 Acetek Technology Co., Ltd
+0f18 Finger Lakes Instrumentation
+ 0002 CCD
+ 0006 Focuser
+ 0007 Filter Wheel
0f19 Oracom Co., Ltd
0f1b Onset Computer Corp.
0f1c Funai Electric Co., Ltd
@@ -4120,6 +9569,7 @@
0f2e Geniality Maple Technology Co., Ltd
0f2f Priva Design Services
0f30 Jess Technology Co., Ltd
+ 001c PS3 Guitar Controller Dongle
0110 10-Button Joypad
0f31 Chrysalis Development
0f32 YFC-BonEagle Electric Co., Ltd
@@ -4129,6 +9579,11 @@
0112 CDMA 1xEVDO PC Card, PC 5220
0f41 RDC Semiconductor Co., Ltd
0f42 Nital Consulting Services, Inc.
+0f44 Polhemus
+ ef11 Patriot (firmware not loaded)
+ ef12 Patriot
+ ff11 Liberty (firmware not loaded)
+ ff12 Liberty
0f4b St. John Technology Co., Ltd
0f4c WorldWide Cable Opto Corp.
0f4d Microtune, Inc.
@@ -4140,10 +9595,12 @@
0f55 AmbiCom, Inc.
0f5c Prairiecomm, Inc.
0f5d NewAge International, LLC
+ 9455 Compact Drive
0f5f Key Technology Corp.
0f60 NTK, Ltd
0f61 Varian, Inc.
0f62 Acrox Technologies Co., Ltd
+ 1001 Targus Mini Trackball Optical Mouse
0f68 Kobe Steel, Ltd
0f69 Dionex Corp.
0f6a Vibren Technologies, Inc.
@@ -4162,6 +9619,8 @@
0f7d NetBotz, Inc.
0f7e Fluke Corp.
0f88 VTech Holdings, Ltd
+ 3012 RT2570
+ 3014 ZD1211B
0f8b Yazaki Corp.
0f8c Young Generation International Corp.
0f8d Uniwill Computer Corp.
@@ -4183,6 +9642,7 @@
0fb1 Inclose Design, Inc.
0fb2 Juan-Chern Industrial Co., Ltd
0fb8 Wistron Corp.
+ 0002 eHome Infrared Receiver
0fb9 AACom Corp.
0fba San Shing Electronics Co., Ltd
0fbb Bitwise Systems, Inc.
@@ -4194,11 +9654,19 @@
0fca Research In Motion, Ltd.
0001 Blackberry Handheld
0fce Sony Ericsson Mobile Communications AB
+ 1010 WMC Modem
+ d008 V800-Vodafone 802SE WMC Modem
d016 K750i Phone
d017 K608i Phone
+ d019 VDC EGPRS Modem
+ d025 520 WMC Data Modem
+ d038 W850i Phone
d041 K510i Phone
+ d042 W810i Phone
+ d046 K610i Phone
0fcf Dynastream Innovations, Inc.
0fd0 Tulip Computers B.V.
+0fd1 Giant Electronics Ltd.
0fd4 Tenovis GmbH & Co., KG
0fd5 Direct Access Technology, Inc.
0fdc Micro Plus
@@ -4209,6 +9677,7 @@
db01 FusionHDTV DVB-T (MT352+LgZ201) (initialized)
db10 FusionHDTV DVB-T (MT352+Thomson7579) (uninitialized)
db11 FusionHDTV DVB-T (MT352+Thomson7579) (initialized)
+ db78 FusionHDTV DVB-T Dual Digital 4 (ZL10353+xc2028/xc3028) (initialized)
0fea United Computer Accessories
0feb CRS Electronic Co., Ltd
0fec UMC Electronics Co., Ltd
@@ -4227,21 +9696,37 @@
6000 VX4400/VX6000 Cellphone
6005 T5100
6800 CDMA Modem
+ 7000 LG LDP-7024D(LD)USB
1005 Apacer Technology, Inc.
- b113 Handy Steno 2.0 (256MB)
+ 1001 MP3 Player
+ 1004 MP3 Player
+ 1006 MP3 Player
+ b113 Handy Steno 2.0/HT203
+ b223 CD-RW + 6 in 1 Card Reader Digital Storage / Converter
1006 iRiver, Ltd.
3001 iHP-100
3002 iHP-120/140 MP3 Player
3003 H320/H340
3004 H340 (mtp)
1009 Emuzed, Inc.
+ 000e eHome Infrared Receiver
+ 0013 Angel MPEG Device
+ 0015 Lumanate Wave PAL SECAM DVBT Device
+ 0016 Lumanate Wave NTSC/ATSC Combo Device
100a AV Chaseway, Ltd
+ 2402 MP3 Player
+ 2404 MP3 Player
+ 2405 MP3 Player
+ 2406 MP3 Player
+ a0c0 MP3 Player
100b Chou Chin Industrial Co., Ltd
100d Netopia, Inc.
3342 Cayman 3352 DSL Modem
+ 3382 3380 Series Network Interface
cb01 Cayman 3341 Ethernet DSL Router
1010 Fukuda Denshi Co., Ltd
1011 Mobile Media Tech.
+ 0001 AccFast Mp3
1012 SDKM Fibres, Wires & Cables Berhad
1013 TST-Touchless Sensor Technology AG
1014 Densitron Technologies PLC
@@ -4256,6 +9741,8 @@
1025 Hyper-Paltek
005e USB DVB-T device
005f USB DVB-T device
+ 0300 MP3 Player
+ 0350 MP3 Player
1026 Newly Corp.
1027 Time Domain
1028 Inovys Corp.
@@ -4263,28 +9750,58 @@
102a Ramos Technology Co., Ltd
102b Infotronic America, Inc.
102c Etoms Electronics Corp.
+ 6251 Q-Cam
102d Winic Corp.
1031 Comax Technology, Inc.
1032 C-One Technology Corp.
1033 Nucam Corp.
+ 0068 3,5'' HDD case MD-231
1038 Ideazon, Inc.
0100 Zboard
1039 devolo AG
2140 dsl+ 1100 duo
+103d Stanton
+ 0100 ScratchAmp
+ 0101 ScratchAmp
1043 iCreate Technologies Corp.
+ 160f Wireless Network Adapter
+ 4901 AV-836 Video Capture Device
8006 Flash Disk 32-256 MB
1044 Chu Yuen Enterprise Co., Ltd
+ 7001 U7000 TV tuner device
+ 8001 GN-54G
+ 8002 GN-BR402W
+ 8003 GN-WLBM101
+ 8004 GN-WLBZ101 802.11b Adapter
+ 8005 GN-WLBZ201 802.11b Adapter
+ 8006 GN-WBZB-M 802.11b Adapter
+ 8007 GN-WBKG
+ 8008 GN-WB01GS
+ 800a GN-WI05GS
+ 800b GN-WB30N 802.11n WLAN Card
1046 Winbond Electronics Corp. [hex]
+ 8901 Bluetooth Device
9967 W9967CF/W9968CF WebCam IC
+1048 Targus Group International
104c AMCO TEC International, Inc.
+1050 Yubico.com
+ 0010 Yubikey
1053 Immanuel Electronics Co., Ltd
1054 BMS International Beheer N.V.
+ 5004 DSL 7420 Loader
+ 5005 DSL 7420 LAN Modem
1055 Complex Micro Interconnection Co., Ltd
1056 Hsin Chen Ent Co., Ltd
1057 ON Semiconductor
1058 Western Digital Technologies, Inc.
+ 0200 Firewire USB Combo
+ 0400 External HDD
+ 0500 hub
+ 0702 Passport External HDD
+ 0901 MyBook External HDD
1001 External Hard Disk
1059 Giesecke & Devrient GmbH
+ 000b StarSign Bio Token 3.0
105c Hong Ji Electric Wire & Cable (Dongguan) Co., Ltd
105d Delkin Devices, Inc.
105e Valence Semiconductor Design, Ltd
@@ -4292,15 +9809,83 @@
1060 Easthome Industrial Co., Ltd
1063 Motorola Electronics Taiwan, Ltd [hex]
1555 MC141555 Hub
+ 4100 SB4100 USB Cable Modem
1065 CCYU Technology
+ 0020 USB-DVR2 Dev Board
2136 EasyDisk ED1064
106a Loyal Legend, Ltd
106c Curitel Communications, Inc.
+ 1101 CDMA 2000 1xRTT USB modem (HX-550C)
+ 1102 Packet Service
+ 1103 Packet Service Diagnostic Serial Port (WDM)
+ 1104 Packet Service Diagnostic Serial Port (WDM)
+ 1105 Composite Device
+ 1106 Packet Service Diagnostic Serial Port (WDM)
+ 1301 Composite Device
+ 1302 Packet Service Diagnostic Serial Port (WDM)
+ 1303 Packet Service
+ 1304 Packet Service
+ 1401 Composite Device
+ 1402 Packet Service
+ 1403 Packet Service Diagnostic Serial Port (WDM)
+ 1501 Packet Service
+ 1502 Packet Service Diagnostic Serial Port (WDM)
+ 1503 Packet Service
+ 1601 Packet Service
+ 1602 Packet Service Diagnostic Serial Port (WDM)
+ 1603 Packet Service
2101 AudioVox 8900 Cell Phone
+ 2102 Packet Service
+ 2103 Packet Service Diagnostic Serial Port (WDM)
+ 2301 Packet Service
+ 2302 Packet Service Diagnostic Serial Port (WDM)
+ 2303 Packet Service
+ 2401 Packet Service Diagnostic Serial Port (WDM)
+ 2402 Packet Service
+ 2403 Packet Service Diagnostic Serial Port (WDM)
+ 2501 Packet Service
+ 2502 Packet Service Diagnostic Serial Port (WDM)
+ 2503 Packet Service
+ 2601 Packet Service
+ 2602 Packet Service Diagnostic Serial Port (WDM)
+ 2603 Packet Service
+ 3701 Broadband Wireless modem
+ 3702 Pantech PX-500
+ 3eb4 Packet Service Diagnostic Serial Port (WDM)
+ 4101 Packet Service Diagnostic Serial Port (WDM)
+ 4102 Packet Service
+ 4301 Composite Device
+ 4302 Packet Service Diagnostic Serial Port (WDM)
+ 4401 Composite Device
+ 4402 Packet Service
+ 4501 Packet Service
+ 4502 Packet Service Diagnostic Serial Port (WDM)
+ 4601 Composite Device
+ 4602 Packet Service Diagnostic Serial Port (WDM)
+ 5101 Packet Service
+ 5102 Packet Service Diagnostic Serial Port (WDM)
+ 5301 Packet Service Diagnostic Serial Port (WDM)
+ 5302 Packet Service
+ 5401 Packet Service
+ 5402 Packet Service Diagnostic Serial Port (WDM)
+ 5501 Packet Service Diagnostic Serial Port (WDM)
+ 5502 Packet Service
+ 5601 Packet Service Diagnostic Serial Port (WDM)
+ 5602 Packet Service
+ 7101 Composite Device
+ 7102 Packet Service
+ a000 Packet Service
+ a001 Packet Service Diagnostic Serial Port (WDM)
+ c100 Packet Service
+ c200 Packet Service
+ c500 Packet Service Diagnostic Serial Port (WDM)
+ e200 Packet Service
106d San Chieh Manufacturing, Ltd
106e ConectL
106f Money Controls
1076 GCT Semiconductor, Inc.
+ 0031 Bluetooth Device
+ 0032 Bluetooth Device
107d Arlec Australia, Ltd
107e Midoriya Electric Co., Ltd
107f KidzMouse, Inc.
@@ -4310,17 +9895,34 @@
108a Chloride Power Protection
108b Grand-tek Technology Co., Ltd
108c Robert Bosch GmbH
+108e Lotes Co., Ltd.
1099 Surface Optics Corp.
109a DATASOFT Systems GmbH
109f eSOL Co., Ltd
+ 3163 Trigem Mobile SmartDisplay84
+ 3164 Trigem Mobile SmartDisplay121
10a0 Hirotech, Inc.
10a3 Mitsubishi Materials Corp.
10a9 SK Teletech Co., Ltd
10aa Cables To Go
10ab USI Co., Ltd
+ 1002 Bluetooth Device
+ 1003 BC02-EXT in DFU
+ 1005 Bluetooth Adptr
+ 1006 BC04-EXT in DFU
10c5 Sony-Ericsson / Samsung DataCable
10ac Honeywell, Inc.
10ae Princeton Technology Corp.
+10af Liebert Corp.
+ 0000 UPS
+ 0001 PowerSure PSA UPS
+ 0002 PowerSure PST UPS
+ 0003 PowerSure PSP UPS
+ 0004 PowerSure PSI UPS
+ 0005 UPStation GXT 2U UPS
+ 0006 UPStation GXT UPS
+ 0007 Nfinity Power Systems UPS
+ 0008 PowerSure Interactive UPS
10b5 Comodo (PLX?)
9060 Test Board
10b8 DiBcom
@@ -4331,46 +9933,71 @@
10bb TM Technology, Inc.
10bc Dinging Technology Co., Ltd
10bd TMT Technology, Inc.
+ 1427 Ethernet
10bf SmartHome
0001 SmartHome PowerLinc
10c4 Cygnal Integrated Products, Inc.
+ 0002 F32x USBXpress Device
+ 80a9 CP210x to UART Bridge Controller
+ 80ca ATM2400 Sensor Device
+ ea60 CP210x Composite Device
10c5 Sanei Electric, Inc.
10c6 Intec, Inc.
10cb Eratech
10cc GBM Connector Co., Ltd
+ 1101 MP3 Player
10cd Kycon, Inc.
+10ce Silicon Labs
+ ea6a MobiData EDGE USB Modem
10cf Velleman Components, Inc.
- 5500 8055 Experiment Interface Board (address=0)
- 5501 8055 Experiment Interface Board (address=1)
- 5502 8055 Experiment Interface Board (address=2)
- 5503 8055 Experiment Interface Board (address=3)
+ 5500 8055 Experiment Interface Board (address=0)
+ 5501 8055 Experiment Interface Board (address=1)
+ 5502 8055 Experiment Interface Board (address=2)
+ 5503 8055 Experiment Interface Board (address=3)
10d1 Hottinger Baldwin Measurement
- 0101 USB-Module for Spider8, CP32
- 0202 CP22 - Communication Processor
- 0301 CP42 - Communication Processor
+ 0101 USB-Module for Spider8, CP32
+ 0202 CP22 - Communication Processor
+ 0301 CP42 - Communication Processor
10d4 Man Boon Manufactory, Ltd
10d5 Uni Class Technology Co., Ltd
+ 55a2 2Port KVMSwitcher
10d6 Actions Semiconductor Co., Ltd
1000 MP3 Player
1100 MPMan MP-Ki 128 MP3 Player/Recorder
+ 1101 D-Wave 2GB MP4 Player / AK1025 MP3/MP4 Player
+ 8888 ADFU Device
+ ff51 ADFU Device
10de Authenex, Inc.
10df In-Win Development, Inc.
10e0 Post-Op Video, Inc.
10e1 CablePlus, Ltd
10e2 Nada Electronics, Ltd
10ec Vast Technologies, Inc.
+10f5 Turtle Beach
+ 0200 Audio Advantage Roadie
10fb Pictos Technologies, Inc.
10fd Anubis Electronics, Ltd
804d Typhoon Webshot II Webcam [zc0301]
-1a0a ...
- badd USB OTG Compliance test device
+ 8050 FlyCAM-USB 300 XP2
+ de00 WinFast WalkieTV WDM Capture Driver.
1100 VirTouch, Ltd
0001 VTPlayer VTP-1 Braille Mouse
1101 EasyPass Industrial Co., Ltd
0001 FSK Electronics Super GSM Reader
1108 Brightcom Technologies, Ltd
1110 Analog Devices Canada, Ltd (Allied Telesyn)
+ 5c01 Huawei MT-882 Remote NDIS Network Device
+ 6489 ADSL ETH/USB RTR
+ 9000 ADSL LAN Adapter
+ 9001 ADSL Loader
900f AT-AR215 DSL Modem
+ 9010 AT-AR215 DSL Modem
+ 9021 ADSL WAN Adapter
+ 9022 ADSL Loader
+ 9023 ADSL WAN Adapter
+ 9024 ADSL Loader
+ 9031 ADSL LAN Adapter
+ 9032 ADSL Loader
1111 Pandora International Ltd.
8888 Evolution Device
1112 YM ELECTRIC CO., Ltd
@@ -4379,8 +10006,12 @@
112e Master Hill Electric Wire and Cable Co., Ltd
112f Cellon International, Inc.
1130 Tenx Technology, Inc.
+ f211 USB audio headset
1131 Integrated System Solution Corp.
1001 KY-BT100 Bluetooth Adapter
+ 1002 Bluetooth Device
+ 1003 Bluetooth Device
+ 1004 Bluetooth Device
1132 Toshiba Corp., Digital Media Equipment [hex]
4331 PDR-M4/M5/M70 Digital Camera
4332 PDR-M60 Digital Camera
@@ -4393,14 +10024,25 @@
113d Mapower Electronics Co., Ltd
1141 V One Multimedia, Pte., Ltd
1142 CyberScan Technologies, Inc.
+1145 Japan Radio Company
+ 0001 AirH PHONE AH-J3001V/J3002V
+1146 Shimane SANYO Electric Co., Ltd.
1147 Ever Great Electric Wire and Cable Co., Ltd
114b Sphairon Access Systems GmbH
0110 Turbolink UB801R WLAN USB Adapter
114c Tinius Olsen Testing Machine Co., Inc.
114d Alpha Imaging Technology Corp.
+114f Wavecom
+115b Salix Technology Co., Ltd.
1162 Secugen Corp.
1163 DeLorme Publishing, Inc.
+ 0100 Earthmate GPS (orig)
+ 0200 Earthmate GPS (LT-20, LT-40)
1164 YUAN High-Tech Development Co., Ltd
+ 0300 ELSAVISION 460D
+ 0601 Analog TV Tuner
+ 0900 TigerBird BMP837 USB2.0 WDM Encoder
+ 0bc7 Digital TV Tuner
1165 Telson Electronics Co., Ltd
1166 Bantam Interactive Technologies
1167 Salient Systems Corp.
@@ -4417,29 +10059,65 @@
4008 56k FaxModem
504a PJB-100 Personal Jukebox
1184 Kyocera Elco Corp.
+1188 Bloomberg L.P.
+1189 Acer Communications & Multimedia
+ 0893 EP-1427X-2 Ethernet Adapter
118f You Yang Technology Co., Ltd
1190 Tripace
1191 Loyalty Founder Enterprise Co., Ltd
1196 Yankee Robotics, LLC
- 0010 Trifid Camera without code
- 0011 Trifid Camera
+ 0010 Trifid Camera without code
+ 0011 Trifid Camera
1197 Technoimagia Co., Ltd
1198 StarShine Technology Corp.
1199 Sierra Wireless, Inc.
+ 0019 AC595U
+ 0021 AC597E
+ 0110 Composite Device
0112 CDMA 1xEVDO PC Card, AirCard 580
+ 0120 AC595U
+ 0218 MC5720 Wireless Modem
+ 6467 MP Series Network Adapter
+ 6468 MP Series Network Adapter
+ 6469 MP Series Network Adapter
+ 6802 MC8755 Device
+ 6803 MC8765 Device
+ 6804 MC8755 Device
+ 6805 MC8765 Device
+ 6812 MC8775 Device
+ 6820 AC875 Device
+ 6832 MC8780 Device
+ 6833 MC8781 Device
+ 683a MC8785 Device
+ 6850 AirCard 880 Device
+ 6851 AirCard 881 Device
+ 6852 AirCard 880E Device
+ 6853 AirCard 881E Device
+ 6854 AirCard 885 Device
+ 6870 MC8780 Device
+ 6871 MC8781 Device
119a ZHAN QI Technology Co., Ltd
119b ruwido austria GmbH
0400 Infrared Keyboard V2.01
11a0 Chipcon AS
- eb11 CC2400EB 2.0 ZigBee Sniffer
+ eb11 CC2400EB 2.0 ZigBee Sniffer
11a3 Technovas Co., Ltd
+ 8031 MP3 Player
+ 8032 MP3 Player
11aa GlobalMedia Group, LLC
+ 1518 iREZ K2
11ab Exito Electronics Co., Ltd
+11b0 ATECH FLASH TECHNOLOGY
11db Topfield Co., Ltd.
1000 PVR
1100 PVR
+11e6 K.I. Technology Co. Ltd.
11f5 Siemens AG (?)
+ 0001 SX1
0003 Mobile phone USB cable
+ 0004 X75
+11f6 Prolific
+ 2001 Willcom WSIM
11f7 Alcatel (?)
02df TD10 Mobile phone USB cable
1209 InterBiometrics
@@ -4451,22 +10129,37 @@
120e Hudson Soft Co., Ltd
121e Jungsoft Co., Ltd
3403 Muzio JM250 Audio Player
+1223 SKYCABLE ENTERPRISE. CO., LTD.
+1230 Chipidea-Microelectronica, S.A.
+1235 Novation EMS
+ 0001 ReMOTE Audio/XStation
+ 0002 Speedio
+ 4661 ReMOTE25
1241 Belkin
1111 Mouse
- 1166 optical mouse w/ scrollwheel
+ 1122 Typhoon Stream Optical Mouse USB+PS/2
+ 1155 PS2/USB Browser Combo Mouse
+ 1166 MI-2150 Trust Mouse
1177 F8E842-DL Mouse
+ 1503 Keyboard
124a AirVast
4017 PC-Chips 802.11b Adapter
124b Nyko (Honey Bee)
4d01 Airflo EX Joystick
+125f A-DATA Technology Co., Ltd.
+1264 Covidien Energy-based Devices
1267 Logic3 / SpectraVideo plc
0103 G-720 Keyboard
0201 A4Tech SWOP-3 Mouse
a001 JP260 PC Game Pad
+ c002 Wireless Optical Mouse
+126c Aristocrat Technologies
+126d Bel Stewart
126e Strobe Data, Inc.
126f TwinMOS
1325 Mobile Disk
2168 Mobile Disk III
+ a006 G240
1275 Xaxero Marine Software Engineering, Ltd.
0002 WeatherFax 2000 Demodulator
0080 SkyEye Weather Satellite Receiver
@@ -4477,14 +10170,30 @@
1293 Belkin Components [hex]
0002 F5U002 Parallel Port [uss720]
2101 104-key keyboard
+1294 RISO KAGAKU CORP.
+129b CyberTAN Technology
+ 1666 TG54USB
+12a7 Trendchip Technologies Corp.
+12ab Honey Bee Electronic International Ltd.
+12ba Licensed by Sony Computer Entertainment America
+ 0200 Harmonix Guitar for PlayStation(R)3
+ 0210 Harmonix Drum Kit for PlayStation(R)3
12d1 Huawei Technologies Co., Ltd.
1001 E620 USB Modem
- 1003 E220 HSDPA Modem
+ 1003 E220 HSDPA Modem / E270 HSDPA/HSUPA Modem
+ 1009 U120
+12d2 LINE TECH INDUSTRIAL CO., LTD.
+12d7 BETTER WIRE FACTORY CO., LTD.
12ef Tapwave, Inc.
0100 Tapwave Handheld [Tapwave Zodiac]
+12f5 Dynamic System Electronics Corp.
+12f7 Memorex Products, Inc.
+ 1a00 TD Classic 003B
+ 1e23 TravelDrive 2007 Flash Drive
12fd AIN Comm. Technology Co., Ltd
1001 AWU2000b 802.11b Stick
1307 Transcend Information, Inc.
+ 0163 512MB USB Flash Drive
1169 TS2GJF210 JetFlash 210 2GB
1310 Roper
0001 Class 1 Bluetooth Dongle
@@ -4516,72 +10225,281 @@
0201 EasiDock 200 Keyboard and Mouse Port
0202 EasiDock 200 Serial Port
0203 EasiDock 200 Printer Port
+ 0204 Ethernet
+ 0304 EasiDock Ethernet
+1348 Katsuragawa Electric Co., Ltd.
134e Digby's Bitpile, Inc. DBA D Bit
+136b STEC
1370 Swissbit
6828 Victorinox Flash Drive
+1371 Dick Smith Electronics
+ 9022 RT2573
+ 9032 C-Net CWD-854 rev F
+1376 Vimtron Electronics Co., Ltd.
1385 Netgear, Inc
+ 4250 WG111T
+ 4251 WG111T (no firmware)
5f00 WPN111 RangeMax(TM) Wireless USB 2.0 Adapter
+ 5f01 WPN111 (no firmware)
+138e Jungo LTD
+ 9000 Raisonance S.A. STM32 ARM evaluation board
+1390 TOMTOM B.V.
+ 0001 GO 520 T
+1395 Sennheiser Communications
+ 3556 USB Headset
1398 Q-tec
2103 USB 2.0 Storage Device
-13b0 Alesis
- 000a Photon X25 MIDI Controller
+13ad Baltech
+ 9999 Card reader
+13b0 PerkinElmer Optoelectronics
+ 000a Alesis Photon X25 MIDI Controller
13b1 Linksys
000b WUSB11 v4.0 802.11b Adapter
+ 000d WUSB54G Wireless Adapter
0011 WUSB54GP v4.0 802.11g Adapter
0018 USB200M 10/100 Ethernet Adapter
+ 001a HU200TS Wireless Adapter
+ 0020 WUSB54GC 802.11g Adapter [ralink rt73]
+ 0023 WUSB54GR
+ 0024 WUSBF54G v1.1 802.11g Adapter w/ Wi-Fi Finder
+13b3 Nippon Dics Co., Ltd.
+13ba Unknown
+ 0017 PS/2 Keyboard+Mouse Adapter
+13be Ricoh Printing Systems, Ltd.
+13ca JyeTai Precision Industrial Co., Ltd.
+13cf Wisair Ltd.
+13d1 A-Max Technology Macao Commercial Offshore Co. Ltd.
13d2 Shark Multimedia
0400 Pocket Ethernet [klsi]
13d3 IMC Networks
3201 VisionDTV USB-Ter/HAMA USB DVB-T device cold
3202 VisionDTV USB-Ter/HAMA USB DVB-T device warm
+ 3203 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+ 3204 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+ 3205 DNTV Live! Tiny USB2 BDA (No Remote)
+ 3206 DNTV Live! Tiny USB2 BDA (No Remote)
+ 3207 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+ 3208 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+ 3209 DTV-DVB UDST7022BDA DVB-S Box(Without HID)
+ 3211 DTV-DVB Hybrid Analog/Capture / Pinnacle PCTV 310e
+ 3212 DTV-DVB UDTT704C - DVBT/NTSC/PAL Driver(PCM4)
+ 3213 DTV-DVB UDTT704D - DVBT/NTSC/PAL Driver (PCM4)
+ 3214 DTV-DVB UDTT704F -(MiniCard) DVBT/NTSC/PAL Driver(Without HID)
+ 3215 DTV-DVB UDAT7240 - ATSC/NTSC/PAL Driver(PCM4)
+ 3216 DTV-DVB UDTT 7047-USB 2.0 DVB-T Driver
+ 3217 Digital-TV Receiver.
+ 3219 DTV-DVB UDTT7049 - DVB-T Driver(Without HID)
+ 3220 DTV-DVB UDTT 7047M-USB 2.0 DVB-T Driver
+ 3223 DNTV Live! Tiny USB2 BDA (No Remote)
+ 3224 DNTV Live! Tiny USB2 BDA (No Remote)
+ 3226 DigitalNow TinyTwin DVB-T Receiver
+ 3236 DTV-DVB UDTT 7047A-USB 2.0 DVB-T Driver
+ 3237 DTV-DVB UDTT 704J - dual DVB-T Driver
+ 3239 DTV-DVB UDTT704D - DVBT/NTSC/PAL Driver(Without HID)
+ 3240 DTV-DVB UDXTTM6010 - A/D Driver(Without HID)
+ 3241 DTV-DVB UDXTTM6010 - A/D Driver(Without HID)
+ 3242 DTV-DVB UDAT7240LP - ATSC/NTSC/PAL Driver(Without HID)
+ 3243 DTV-DVB UDXTTM6010 - A/D Driver(Without HID)
+ 3244 DTV-DVB UDTT 7047Z-USB 2.0 DVB-T Driver
+ 3247 802.11 n/g/b Wireless LAN Adapter
+ 7020 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+ 7022 DTV-DVB UDST7022BDA DVB-S Box(Without HID)
+13dc ALEREON, INC.
+13dd i.Tech Dynamic Limited
+13e1 Kaibo Wire & Cable (Shenzhen) Co., Ltd.
+13e5 Rane
+ 0001 SL-1
+13e6 TechnoScope Co., Ltd.
+13fd Initio Corporation
13fe Kingston Technology Company Inc.
1a00 512MB/1GB Flash Drive
1a23 512MB Flash Drive
- 1d00 DataTraveler 2.0 1GB/4GB Flash Drive
+ 1d00 DataTraveler 2.0 1GB/4GB Flash Drive / Patriot Xporter 4GB Flash Drive
+ 1f00 DataTraveler 2.0 4GB Flash Drive
+1400 Axxion Group Corp.
+1402 Bowe Bell & Howell
+1403 Sitronix
+ 0001 Digital Photo Frame
+140e Telechips, Inc.
+1410 Novatel Wireless
+ 1110 Merlin S620
+ 1120 Merlin EX720
+ 1130 Merlin S720
+ 1400 Merlin U740
+ 2110 Ovation U720/MCD3000
+ 4100 U727
+1415 Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc.
+ 0000 Sony SingStar USBMIC
+ 2000 Sony Playstation Eye
+1419 ABILITY ENTERPRISE CO., LTD.
+1429 Vega Technologies Industrial (Austria) Co.
+142a Thales E-Transactions
+ 0043 medCompact
+1430 RedOctane
+1431 Pertech Resources, Inc.
+1435 Wistron NeWeb
+ 0711 UR055G
+ 0826 AR5523
+ 0827 AR5523 (no firmware)
+ 0828 AR5523
+ 0829 AR5523 (no firmware)
+1436 Denali Software, Inc.
+143c Altek Corporation
+145f Unknown
+ 013d PC Camera (SN9C201 + OV7660)
1453 Radio Shack
4026 26-183 Serial Cable
+1456 Extending Wire & Cable Co., Ltd.
+1457 First International Computer, Inc.
+ 5117 OpenMoko Neo1973 kernel usbnet (g_ether, CDC Ethernet) mode
+ 5118 OpenMoko Neo1973 Debug board (V2+)
+ 5119 OpenMoko Neo1973 u-boot cdc_acm serial port
+ 5120 OpenMoko Neo1973 u-boot usbtty generic serial
+ 5121 OpenMoko Neo1973 kernel mass storage (g_storage) mode
+ 5122 OpenMoko Neo1973 kernel cdc_ether USB network
+ 5123 OpenMoko Neo1973 internal USB CSR4 module
+ 5124 OpenMoko Neo1973 Bluetooth Device ID service
+1461 Staccato Communications
1462 Micro Star International
5512 MegaStick-1 Flash Stick
+1472 Huawei-3Com
+ 0009 Aolynk WUB320g
147a Formosa Industrial Computing, Inc.
+ e015 eHome Infrared Receiver
+ e016 eHome Infrared Receiver
+147f Hama GmbH & Co., KG
1484 Elsa AG [hex]
1746 Ecomo 19H99 Monitor
7616 Elsa Hub
+1485 Silicom
+ 0001 U2E
+ 0002 Psion Gold Port Ethernet
+1487 DSP Group, Ltd.
+148e EVATRONIX SA
148f Ralink Technology, Corp.
+ 1706 RT2500USB Wireless Adapter
2570 802.11g WiFi
+ 2573 RT2501USB Wireless Adapter
+ 2671 RT2601USB Wireless Adapter
+ 9020 RT2500USB Wireless Adapter
+ 9021 RT2501USB Wireless Adapter
+1497 Panstrong Company Ltd.
+149a Imagination Technologies
+ 2107 DBX1 DSP core
14aa AVerMedia (again) or C&E
0001 Avermedia AverTV DVBT USB1.1 (cold)
0002 Avermedia AverTV DVBT USB1.1 (warm)
0201 AVermedia/Yakumo/Hama/Typhoon DVB-T USB2.0 (cold)
0221 AVermedia DVBT Tuner Dongle
0301 AVermedia/Yakumo/Hama/Typhoon DVB-T USB2.0 (warm)
+14ad CTK Corporation
+14ae Printronix Inc.
+14af ATP Electronics Inc.
+14b0 StarTech.com Ltd.
14b2 Atheros Communications Inc
3a93 USB WLAN Device
+ 3c02 C54RU WLAN
+ 3c22 C54RU
+14c0 Rockwell Automation, Inc.
14c2 Gemlight Computer, Ltd
+ 0250 Storage Adapter V2
+ 0350 Storage Adapter V2
+14cd Super Top
+ 6600 USB 2.0 IDE DEVICE
+14d8 JAMER INDUSTRIES CO., LTD.
+14dd Raritan Computer, Inc.
+14e5 SAIN Information & Communications Co., Ltd.
+14ea Planex Communications
+ ab10 GW-US54GZ
+ ab11 GU-1000T
+ ab13 GW-US54Mini
+14ed Shure Inc.
+1500 Ellisys
+1501 Pine-Tum Enterprise Co., Ltd.
+1513 Hypercom
+1516 CompUSA
+ 8628 128M Pen Drive
1518 Cheshire Engineering Corp.
0001 HDReye High Dynamic Range Camera
0002 HDReye (before firmware loads)
1520 Bitwire Corp.
1524 ENE Technology Inc
6680 UTS 6680
+1527 Silicon Portals
+ 0200 YAP Phone (no firmware)
+ 0201 YAP Phone
+1529 UBIQUAM Co., Ltd.
+ 3100 CDMA 1xRTT USB Modem (U-100/105/200/300/520)
152d JMicron Technology Corp. / JMicron USA Technology Corp.
2338 JM20337 Hi-Speed USB to SATA & PATA Combo Bridge
152e LG (HLDS)
e001 GSA-5120D DVD-RW
+1532 Razer USA, Ltd
+ 0001 RZ01-020300 Optical Mouse [Diamondback]
+ 0003 Krait Mouse
+ 0007 DeathAdder Mouse
+ 0102 Tarantula Keyboard
1546 U-Blox AG
+154a Celectronic GmbH
+ 8180 CARD STAR/medic2
+154b PNY
+ 0010 USB 2.0 Flash Drive
+154d ConnectCounty Holdings Berhad
+154e D&M Holdings, Inc. (Denon/Marantz)
+ 3000 Marantz RC9001 Remote Control
1554 Prolink Microsystems Corp.
+1557 OQO
+ 0002 model 01 WiFi interface
+ 0003 model 01 Bluetooth interface
+ 7720 model 01+ Ethernet
+ 8150 model 01 Ethernet interface
1568 Sunf Pu Technology Co., Ltd
+156f Quantum Corporation
+1570 ALLTOP TECHNOLOGY CO., LTD.
+157b Ketron SRL
+157e TRENDnet
+ 3006 TEW-444UB EU
+ 3007 TEW-444UB EU (no firmware)
+ 300a TEW-429UB 802.11g Adapter with HotSpot Detector
+ 300b TEW-429UB
+ 300d TEW-429UB C1
+ 3204 ALL0298 v2
+ 3205 AR5523
+ 3206 AR5523 (no firmware)
+1582 Fiberline
+ 6003 WL-430U
+1587 SMA Technologie AG
+158d Oakley Inc.
+1598 Kunshan Guoji Electronics Co., Ltd.
+15a2 Freescale Semiconductor, Inc.
+15a8 Teams Power Limited
+15aa Gearway Electronics (Dong Guan) Co., Ltd.
+15ba Olimex Ltd.
+ 0003 OpenOCD JTAG
+ 0004 OpenOCD JTAG TINY
15c2 SoundGraph Inc.
ffdc iMON PAD Remote Controller
15c6 Laboratoires MXM
- 1000 DigistimSP (cold)
- 1001 DigistimSP (warm)
- 1002 DigimapSP USB (cold)
- 1003 DigimapSP USB (warm)
+ 1000 DigistimSP (cold)
+ 1001 DigistimSP (warm)
+ 1002 DigimapSP USB (cold)
+ 1003 DigimapSP USB (warm)
+15c9 D-Box Technologies
+15ca Textech International Ltd.
+ 00c3 Mini Optical Mouse
+15d5 Coulomb Electronics Ltd.
+15dc Hynix Semiconductor Inc.
+15e0 Seong Ji Industrial Co., Ltd.
15e1 RSA
2007 RSA SecurID (R) Authenticator
15e8 SohoWare
9100 NUB100 Ethernet [pegasus]
+ 9110 10/100 USB Ethernet
15e9 Pacific Digital Corp.
+ 04ce MemoryFrame MF-570
+ 1968 MemoryFrame MF-570
+ 1969 Digital Frame
+15ec Belcarra Technologies Corp.
15f4 HanfTek
0001 HanfTek UMT-010 USB2.0 DVB-T (cold)
0025 HanfTek UMT-010 USB2.0 DVB-T (warm)
@@ -4593,16 +10511,107 @@
8006 US-122 Audio/Midi Interface (without fw)
8007 US-122 Audio/Midi Interface
1606 Umax [hex]
+ 0002 Astra 1236U Scanner
0010 Astra 1220U
0030 Astra 2000U
+ 0050 Scanner
0060 Astra 3400U
0130 Astra 2100U
0160 Astra 5400U
0230 Astra 2200/2200SU
+ 0350 Astra 4800/4850 Scanner
+ 1030 Astra 4000U
+ 1220 Genesys Logic Scanner Controller NT5.0
+ 2010 AstraCam Digital Camera
2020 AstraCam 1000
+ 2030 AstraCam 1800 Digital Camera
1608 Inside Out Networks [hex]
0001 EdgePort/4 Serial Port
+ 0002 Edgeport/8
+ 0003 Rapidport/4
+ 0004 Edgeport/4
+ 0005 Edgeport/2
+ 0006 Edgeport/4i
+ 0007 Edgeport/2i
+ 0008 Edgeport/8
+ 000c Edgeport/421
+ 000d Edgeport/21
+ 000e Edgeport/4
+ 000f Edgeport/8
+ 0010 Edgeport/2
+ 0011 Edgeport/4
+ 0012 Edgeport/416
+ 0014 Edgeport/8i
+ 0018 Edgeport/412
+ 0019 Edgeport/412
+ 001a Edgeport/2+2i
+ 0101 Edgeport/4
+ 0105 Edgeport/2
+ 0106 Edgeport/4i
+ 0107 Edgeport/2i
+ 010c Edgeport/421
+ 010d Edgeport/21
+ 0110 Edgeport/2
+ 0111 Edgeport/4
+ 0112 Edgeport/416
+ 0114 Edgeport/8i
+ 0201 Edgeport/4
+ 0203 Rapidport/4
+ 0204 Edgeport/4
+ 0205 Edgeport/2
+ 0206 Edgeport/4i
+ 0207 Edgeport/2i
+ 020c Edgeport/421
+ 020d Edgeport/21
+ 020e Edgeport/4
+ 020f Edgeport/8
+ 0210 Edgeport/2
+ 0211 Edgeport/4
+ 0212 Edgeport/416
+ 0214 Edgeport/8i
+ 0215 Edgeport/1
+ 0216 EPOS/44
+ 0217 Edgeport/42
+ 021a Edgeport/2+2i
+ 021b Edgeport/2c
+ 021c Edgeport/221c
+ 021d Edgeport/22c
+ 021e Edgeport/21c
+ 021f Edgeport/62
+ 0240 Edgeport/1
+ 0241 Edgeport/1i
+ 0242 Edgeport/4s
+ 0243 Edgeport/8s
+ 0244 Edgeport/8
+ 0245 Edgeport/22c
+ 0301 Watchport/P
+ 0302 Watchport/M
+ 0303 Watchport/W
+ 0304 Watchport/T
+ 0305 Watchport/H
+ 0306 Watchport/E
+ 0307 Watchport/L
+ 0308 Watchport/R
+ 0309 Watchport/A
+ 030a Watchport/D
+ 030b Watchport/D
+ 030c Power Management Port
+ 030e Power Management Port
+ 030f Watchport/G
+ 0310 Watchport/Tc
+ 0311 Watchport/Hc
1403 MultiTech Systems MT4X56 Modem
+ 1a17 Agilent Technologies (E6473)
+1614 Amoi Electronics
+ 0404 WMA9109 UMTS Phone
+1619 L & K Precision Technology Co., Ltd.
+1621 Wionics Research
+1628 Stonestreet One, Inc.
+162a Airgo Networks Inc.
+162f WiQuest Communications, Inc.
+1631 Good Way Technology
+ 6200 GWUSB2E
+ c019 RT2573
1645 Entrega [hex]
0001 1S Serial Port
0002 2S Serial Port
@@ -4611,127 +10620,668 @@
0005 E45 Ethernet [klsi]
0006 Parallel Port
0007 U1-SC25 SCSI
+ 0008 Ethernet
+ 0016 Bi-directional to Parallel Printer Converter
+ 0080 1 port to Serial Converter
+ 0081 1 port to Serial Converter
0093 1S9 Serial Port
8000 EZ-USB
+ 8001 1 port to Serial
8002 2x Serial Port
+ 8003 1 port to Serial
+ 8004 2U4S serial/usb hub
+ 8005 Ethernet
+ 8080 1 port to Serial
+ 8081 1 port to Serial
8093 PortGear Serial Port
+164a ChipX
1657 Struck Innovative Systeme GmbH
3150 SIS3150 USB2.0 to VME interface
+1660 Creatix Polymedia GmbH
1668 Actiontec Electronics, Inc. [hex]
+ 0009 Gateway
0333 Modem
+ 0358 InternetPhoneWizard
+ 0405 Gateway
0408 Prism2.5 802.11b Adapter
+ 0413 Gateway
0421 Prism2.5 802.11b Adapter
+ 0441 IBM Integrated Bluetooth II
0500 BTM200B BlueTooth Adapter
+ 1050 802.11g Wireless Mini adapter
+ 1441 IBM Integrated Bluetooth II
2441 BMDC-2 IBM Bluetooth III w.56k
+ 3441 IBM Integrated Bluetooth III
+ 6010 Gateway
+ 6097 802.11b Wireless Adapter
+ 6106 ROPEX FreeLan 802.11b
+ 7605 UAT1 Wireless Ethernet Adapter
1669 PiKRON Ltd. [hex]
1001 uLan2USB Converter - PS1 protocol
+1679 Total Phase
+ 2001 Beagle USB 12 Protocol Analyzer
+1682 Maxwise Production Enterprise Ltd.
+1684 Godspeed Computer Corp.
+1685 Delock
+ 0200 Infrared adapter
+1686 ZOOM Corporation
+ 0045 H4 Digital Recorder
+1687 Kingmax Digital Inc.
+168c Atheros Communications
+ 0001 AR5523
+ 0002 AR5523 (no firmware)
1690 Askey Computer Corp. [hex]
0101 Creative Modem Blaster DE5670
+ 0102 CDC Modem Board
0103 Askey 1456 VQE-R3 Modem [conexant]
+ 0104 HCF V90 Data Fax RTAD Modem
+ 0107 HCF V.90 Data,Fax,RTAD Modem
0109 Askey MagicXpress V.90 Pocket Modem [conexant]
+ 0203 Voyager ADSL Modem Loader
+ 0204 Voyager ADSL Modem
+ 0205 DSL Modem
+ 0206 GlobeSpan ADSL WAN Modem
+ 0208 DSL Modem
+ 0209 Voyager 100 ADSL Modem
+ 0211 Globespan Virata ADSL LAN Modem
+ 0212 DSL Modem
+ 0213 HM121d DSL Modem
+ 0214 HM121d DSL Modem
+ 0215 Voyager 105 ADSL Modem
+ 0701 WLAN
+ 0710 SMCWUSBT-G
+ 0711 SMCWUSBT-G (no firmware)
+ 0712 AR5523
+ 0713 AR5523 (no firmware)
+ 0715 Voyager 1055 Laptop Adapter
+ 0722 RT2573
+ 0726 Wi-Fi Wireless LAN Adapter
+ 0901 Voyager 205 ADSL Router
1696 Hitachi Video and Information System, Inc.
1697 VTec Test, Inc.
+16a5 Shenzhen Zhengerya Cable Co., Ltd.
+16ab Global Sun Technology
+ 7801 AR5523
+ 7802 AR5523 (no firmware)
+ 7811 AR5523
+ 7812 AR5523 (no firmware)
+16ac Dongguan ChingLung Wire & Cable Co., Ltd.
+16c0 VOTI
+ 03e8 free for internal lab use 1000
+ 03e9 free for internal lab use 1001
+ 03ea free for internal lab use 1002
+ 03eb free for internal lab use 1003
+ 03ec free for internal lab use 1004
+ 03ed free for internal lab use 1005
+ 03ee free for internal lab use 1006
+ 03ef free for internal lab use 1007
+ 03f0 free for internal lab use 1008
+ 03f1 free for internal lab use 1009
+ 076b OpenPCD 13.56MHz RFID Reader
+ 076c OpenPICC 13.56MHz RFID Simulator (native)
+ 08ac OpenBeacon USB stick
+16cc silex technology, Inc.
+16d3 Frontline Test Equipment, Inc.
+16d5 AnyDATA Corporation
+ 6501 CDMA 2000 1xRTT/EV-DO USB Modem
+16d8 CMOTECH Co., Ltd.
+ 5141 CMOTECH CDMA Technologies USB modem
+ 5543 CDMA 2000 1xRTT/1xEVDO USB modem
+ 6280 CMOTECH CDMA Technologies USB modem
+16df King Billion Electronics Co., Ltd.
+16f5 Futurelogic Inc.
1706 BlueView Technologies, Inc.
+1707 ARTIMI
+170b Swissonic
+ 0011 MIDI-USB 1x1
+170d Avnera
1733 Cellink Technology Co., Ltd
0101 RF Wireless Optical Mouse OP-701
+1736 CANON IMAGING SYSTEM TECHNOLOGIES INC.
+1737 Linksys
+ 0039 USB1000
+1740 Senao
+ 2000 NUB-8301
+1743 General Atomics
+174c ASMedia Technology Inc.
+174f Syntek
+ 5a35 1.3MPixel Web Cam - Asus G1s
+ 6a31 Web Cam - Asus A8J, F3S, F5R, VX2S, V1S
+ 6a33 Web Cam - Asus F3SA, F9J, F9S
+ 6a51 2.0MPixel Web Cam - Asus Z96J, Z96S, S96S
+ 6a54 Web Cam
+ 6d51 2.0Mpixel Web Cam - Eurocom D900C
+ 8a12 0.3MPixel Web Cam - Packard Bell MX37-T-003
+ a311 1.3MPixel Web Cam - Asus A3A, A6J, A6K, A6M, A6R, A6T, A6V, A7T, A7sv, A7U
+ a312 1.3MPixel Web Cam
+ a821 Web Cam - Packard Bell BU45, PB Easynote MX66-208W
+ aa11 Web Cam
+1759 LucidPort Technology, Inc.
+1772 System Level Solutions, Inc.
1781 Multiple Vendors
083e MetaGeek Wi-Spy
0938 Iguanaworks USB IR Transceiver
+1782 Spreadtrum Communications Inc.
+1784 TopSeed Technology Corp.
+1788 ShenZhen Litkconn Technology Co., Ltd.
+1796 Printrex, Inc.
+1797 JALCO CO., LTD.
+17a5 Advanced Connection Technology Inc.
+17a7 MICOMSOFT CO., LTD.
17b3 Grey Innovation
0004 Linux-USB Midi Gadget
+17c3 Singim International Corp.
+17cc Native Instruments
+ 0815 Audio Kontrol 1
+ 1940 RigKontrol3
+ 1969 RigKontrol2
+ 1978 Audio 8 DJ
+ 4711 Kore Controller
+ 4712 Kore Controller 2
+17cf Hip Hing Cable & Plug Mfy. Ltd.
+17d0 Sanford L.P.
+17d3 Korea Techtron Co., Ltd.
17e9 Newnham Research
0051 USB VGA Adaptor
17eb Cornice, Inc.
-17ef ChipsBnk
- 3815 2GB USB Stick
+17ef Lenovo
+ 3815 ChipsBnk 2GB USB Stick
+17f5 K.K. Rocky
+17f6 Unicomp, Inc
1822 Twinhan
3201 VisionDTV USB-Ter/HAMA USB DVB-T device cold
3202 VisionDTV USB-Ter/HAMA USB DVB-T device warm
+1831 Gwo Jinn Industries Co., Ltd.
+1832 Huizhou Shenghua Industrial Co., Ltd.
+1854 Memory Devices Ltd.
185b Compro
d000 Compro Videomate DVB-U2000 - DVB-T USB cold
d001 Compro Videomate DVB-U2000 - DVB-T USB warm
+1861 Tech Technology Industrial Company
+1862 Teridian Semiconductor Corp.
+1871 Aveo Technology Corp.
1894 Topseed
5632 Atek Tote Remote
5641 TSAM-004 Presentation Remote
+1897 Evertop Wire Cable Co.
+18b6 Mikkon Technology Limited
+18b7 Zotek Electronic Co., Ltd.
+18c5 AMIT
+ 0002 CG-WLUSB2GO
+18d5 Starline International Group Limited
18d9 Kaba
- 01xy LEGIC advant desktop reader
+ 01a0 B-Net 91 07
+18dd Planon System Solutions Inc.
+ 1000 DocuPen RC800
+18e3 Fitipower Integrated Technology Inc
+18e8 Qcom
+ 6196 RT2573
+ 6229 RT2573
18ea Matrox Graphics, Inc.
0002 DualHead2Go [Analog Edition]
0004 TripleHead2Go [Digital Edition]
+18fd FineArch Inc.
+190d Motorola GSG
+1914 Alco Digital Devices Limited
+1915 Linksys
+ 2233 WUSB11 v2.8 802.11b Adapter
+ 2234 WUSB54G 802.11g Adapter
+192f Avago Technologies, Pte.
+1930 Shenzhen Xianhe Technology Co., Ltd.
+1931 Ningbo Broad Telecommunication Co., Ltd.
+1941 Dream Link
+ 8021 USB Missile Launcher
+1949 Lab126
+1951 Hyperstone AG
+1953 Ironkey Inc.
+1954 Radiient Technologies
+195d Itron Technology iONE
+ 7002 Libra-Q11 IR remote
+ 7006 Libra-Q26 / 1.0 Remote
+ 7777 Scorpius wireless keyboard
+1967 CASIO HITACHI Mobile Communications Co., Ltd.
+196b Wispro Technology Inc.
+1970 Dane-Elec Corp. USA
+1975 Dongguan Guneetal Wire & Cable Co., Ltd.
+1976 Chipsbrand Microelectronics (HK) Co., Ltd.
1977 T-Logic
0111 TL203 MP3 Player and Voice Recorder
+1989 Nuconn Technology Corp.
+198f Beceem Communications Inc.
+1990 Acron Precision Industrial Co., Ltd.
1995 Trillium Technology Pty. Ltd.
3202 REC-ADPT-USB (recorder)
3203 REC-A-ADPT-USB (recorder)
+199e The Imaging Source Europe GmbH
+199f Benica Corporation
+19a8 Biforst Technology Inc.
+19af S Life
+ 6611 Celestia VoIP Phone
+19b5 B & W Group
+19b6 Infotech Logistic, LLC
+19ca Mindtribe
+ 0001 Sandio 3D HID Mouse
+19cf Parrot SA
+19d2 ONDA Communication S.p.A.
+ 0002 MT505UP MF632
+19e1 WeiDuan Electronic Accessory (S.Z.) Co., Ltd.
+19e8 Industrial Technology Research Institute
+19ef Pak Heng Technology (Shenzhen) Co., Ltd.
+19ff Best Buy
+ 0201 Rocketfish Wireless 2.4G Laser Mouse
+1a08 Bellwood International, Inc.
+1a0a USB-IF non-workshop
+ badd USB OTG Compliance test device
+1a12 KES Co., Ltd.
+1a25 Amphenol East Asia Ltd.
+1a2a Seagate Branded Solutions
+1a36 Biwin Technology Ltd.
+1a40 TERMINUS TECHNOLOGY INC.
+1a41 Action Electronics Co., Ltd.
+1a44 VASCO Data Security International
+ 0001 Digipass 905 SmartCard Reader
+1a4a Silicon Image
+1a4b SafeBoot International B.V.
+1a61 Abbott Diabetes Care
+1a6a Spansion Inc.
+1a6d SamYoung Electronics Co., Ltd
+1a6e Global Unichip Corp.
+1a6f Sagem Orga GmbH
+1a79 Bayer Health Care LLC
+1a7b Lumberg Connect GmbH & Co. KG
+1a89 Dynalith Systems Co., Ltd.
+1a8b SGS Taiwan Ltd.
+1a98 Leica Camera AG
+1aa4 Data Drive Thru, Inc.
+1aa5 UBeacon Technologies, Inc.
+1aa6 eFortune Technology Corp.
+1acb Salcomp Plc
+1ad1 Desay Wire Co., Ltd.
+1ae4 ic-design Reinhard Gottinger GmbH
+1aed High Top Precision Electronic Co., Ltd.
+1aef Conntech Electronic (Suzhou) Corporation
+1b04 Meilhaus Electronic GmBH
+ 0630 ME-630
+ 0940 ME-94
+ 0950 ME-95
+ 0960 ME-96
+ 1000 ME-1000
+ 100a ME-1000
+ 100b ME-1000
+ 1400 ME-1400
+ 140a ME-1400A
+ 140b ME-1400B
+ 140c ME-1400C
+ 140d ME-1400D
+ 140e ME-1400E
+ 14ea ME-1400EA
+ 14eb ME-1400EB
+ 1604 ME-1600/4U
+ 1608 ME-1600/8U
+ 160c ME-1600/12U
+ 160f ME-1600/16U
+ 168f ME-1600/16U8I
+ 4610 ME-4610
+ 4650 ME-4650
+ 4660 ME-4660
+ 4661 ME-4660I
+ 4662 ME-4660
+ 4663 ME-4660I
+ 4670 ME-4670
+ 4671 ME-4670I
+ 4672 ME-4670S
+ 4673 ME-4670IS
+ 4680 ME-4680
+ 4681 ME-4680I
+ 4682 ME-4680S
+ 4683 ME-4680IS
+ 6004 ME-6000/4
+ 6008 ME-6000/8
+ 600f ME-6000/16
+ 6014 ME-6000I/4
+ 6018 ME-6000I/8
+ 601f ME-6000I/16
+ 6034 ME-6000ISLE/4
+ 6038 ME-6000ISLE/8
+ 603f ME-6000ISLE/16
+ 6044 ME-6000/4/DIO
+ 6048 ME-6000/8/DIO
+ 604f ME-6000/16/DIO
+ 6054 ME-6000I/4/DIO
+ 6058 ME-6000I/8/DIO
+ 605f ME-6000I/16/DIO
+ 6074 ME-6000ISLE/4/DIO
+ 6078 ME-6000ISLE/8/DIO
+ 607f ME-6000ISLE/16/DIO
+ 6104 ME-6100/4
+ 6108 ME-6100/8
+ 610f ME-6100/16
+ 6114 ME-6100I/4
+ 6118 ME-6100I/8
+ 611f ME-6100I/16
+ 6134 ME-6100ISLE/4
+ 6138 ME-6100ISLE/8
+ 613f ME-6100ISLE/16
+ 6144 ME-6100/4/DIO
+ 6148 ME-6100/8/DIO
+ 614f ME-6100/16/DIO
+ 6154 ME-6100I/4/DIO
+ 6158 ME-6100I/8/DIO
+ 615f ME-6100I/16/DIO
+ 6174 ME-6100ISLE/4/DIO
+ 6178 ME-6100ISLE/8/DIO
+ 617f ME-6100ISLE/16/DIO
+ 6259 ME-6200I/9/DIO
+ 6359 ME-6300I/9/DIO
+ 810a ME-8100A
+ 810b ME-8100B
+ 820a ME-8200A
+ 820b ME-8200B
+1b20 MStar Semiconductor, Inc.
+1b22 WiLinx Corp.
+1b26 Cellex Power Products, Inc.
+1b27 Current Electronics Inc.
+1b28 NAVIsis Inc.
+1b32 Ugobe Life Forms, Inc.
+1b36 ViXS Systems, Inc.
+1b3f Generalplus Technology Inc.
1b47 Energizer Holdings, Inc.
0001 CHUSB Duo Charger (NiMH AA/AAA USB smart charger)
+1b48 Plastron Precision Co., Ltd.
+1b59 K.S. Terminals Inc.
+1b5a Chao Zhou Kai Yuan Electric Co., Ltd.
+1b65 The Hong Kong Standards and Testing Centre Ltd.
+1b72 ATERGI TECHNOLOGY CO., LTD.
+1b76 Legend Silicon Corp.
+1b86 Dongguan Guanshang Electronics Co., Ltd.
+1b88 ShenMing Electron (Dong Guan) Co., Ltd.
+1b8c Altium Limited
+1b8d e-MOVE Technology Co., Ltd.
+1b8e Amlogic, Inc.
+1b8f MA LABS, Inc.
+1b98 YMax Communications Corp.
+1b99 Shenzhen Yuanchuan Electronic
+1ba1 JINQ CHERN ENTERPRISE CO., LTD.
+1ba2 Lite Metals & Plastic (Shenzhen) Co., Ltd.
+1ba4 Ember Corporation
+ 0001 InSight USB Link
+1ba8 China Telecommunication Technology Labs
+1bad Harmonix Music
+ 0002 Harmonix Guitar for Xbox 360
+ 0003 Harmonix Drum Kit for Xbox 360
+1bbb T & A Mobile Phones
+1bc4 Ford Motor Co.
+1bc5 AVIXE Technology (China) Ltd.
+1bce Contac Cable Industrial Limited
+1bcf Sunplus Innovation Technology Inc.
+1bd0 Hangzhou Riyue Electronic Co., Ltd.
+1bde P-TWO INDUSTRIES, INC.
+1bef Shenzhen Tongyuan Network-Communication Cables Co., Ltd
+1bf0 RealVision Inc.
+1bf5 Extranet Systems Inc.
+1bf6 Orient Semiconductor Electronics, Ltd.
+1bfd TouchPack
+ 1688 Resistive Touch Screen
+1c02 Kreton Corporation
+1c04 QNAP System Inc.
+1c0d Relm Wireless
+1c10 Lanterra Industrial Co., Ltd.
+1c13 ALECTRONIC LIMITED
+1c1a Datel Electronics Ltd.
+1c1b Volkswagen of America, Inc.
+1c1f Goldvish S.A.
+1c20 Fuji Electric Device Technology Co., Ltd.
+1c21 ADDMM LLC
+1c22 ZHONGSHAN CHIANG YU ELECTRIC CO., LTD.
+1c26 Shanghai Haiying Electronics Co., Ltd.
+1c27 HuiYang D & S Cable Co., Ltd.
+1c31 LS Cable Ltd.
+1c37 Authorizer Technologies, Inc.
+1c3d NONIN MEDICAL INC.
+1c3e Wep Peripherals
+1c49 Cherng Weei Technology Corp.
+1c6b Philips & Lite-ON Digital Solutions Corporation
+1c6c Skydigital Inc.
+1c77 Kaetat Industrial Co., Ltd.
+1c78 Datascope Corp.
+1c79 Unigen Corporation
+1c7a LighTuning Technology Inc.
+1c7b LUXSHARE PRECISION INDUSTRY (SHENZHEN) CO., LTD.
1c87 2N TELEKOMUNIKACE a.s.
+1c88 Somagic, Inc.
+1c89 HONGKONG WEIDIDA ELECTRON LIMITED
+1c8e ASTRON INTERNATIONAL CORP.
+1c98 ALPINE ELECTRONICS, INC.
+1ca0 ACCARIO Inc.
+1cb3 Aces Electronic Co., Ltd.
+1cb4 OPEX CORPORATION
+1cbe Luminary Micro Inc.
+1cbf FORTAT SKYMARK INDUSTRIAL COMPANY
+1cc0 PlantSense
+1cca NextWave Broadband Inc.
+1ccd Bodatong Technology (Shenzhen) Co., Ltd.
+1cd4 adp corporation
+1cd5 Firecomms Ltd.
+1cd6 Antonio Precise Products Manufactory Ltd.
+1cde Telecommunications Technology Association (TTA)
+1cdf WonTen Technology Co., Ltd.
+1ce0 EDIMAX TECHNOLOGY CO., LTD.
+1ce1 Amphenol KAE
+1cfc ANDES TECHNOLOGY CORPORATION
+1cfd Flextronics Digital Design Japan, LTD.
+1d08 NINGBO HENTEK DRAGON ELECTRONICS CO., LTD.
+1d09 TechFaith Wireless Technology Limited
+1d0a Johnson Controls, Inc. The Automotive Business Unit
+1d0b HAN HUA CABLE & WIRE TECHNOLOGY (J.X.) CO., LTD.
+1d14 ALPHA-SAT TECHNOLOGY LIMITED
+1d1f Diostech Co., Ltd.
+1d20 SAMTACK INC.
+1d50 OpenMoko, Inc.
+1d5b Smartronix, Inc.
+1d6b Linux Foundation
+ 0001 1.1 root hub
+ 0002 2.0 root hub
+ 0003 3.0 root hub
+1e1f INVIA
+1e29 Festo AG & Co. KG
+ 0101 CPX Adapter
1ebb NuCORE Technology, Inc.
2001 D-Link Corp. [hex]
+ 0001 DWL-120 WIRELESS ADAPTER
+ 0201 DHN-120 10Mb Home Phoneline Adapter
+ 1a00 10/100 Ethernet
+ 200c 10/100 Ethernet
3200 DWL-120 802.11b (Atmel RFMD503A) [usbvnetr]
+ 3500 Elitegroup Computer Systems WLAN card WL-162
3700 DWL-122 802.11b
3701 DWL-G120 Spinnaker 802.11b
+ 3702 DWL-120 rev F
3703 DWL-122 802.11b
3704 DWL-G122 802.11g rev. A2
+ 3705 AirPlus G DWL-G120 Wireless Adapter(rev.C)
+ 3761 IEEE 802.11g USB2.0 Wireless Network Adapter-PN
+ 3a00 DWL-AG132
+ 3a01 DWL-AG132 (no firmware)
+ 3a02 DWL-G132
+ 3a03 DWL-G132 (no firmware)
+ 3a04 DWL-AG122
+ 3a05 DWL-AG122 (no firmware)
+ 3a80 AirPlus Xtreme G DWL-G132 Wireless Adapter
+ 3a81 predator Bootloader Download
+ 3a82 AirPremier AG DWL-AG132 Wireless Adapter
+ 3a83 predator Bootloader Download
+ 3b00 AirPlus DWL-120+ Wireless Adapter
+ 3b01 WLAN Boot Device
3c00 DWL-G122 802.11g rev. B1 [ralink]
+ 3c01 AirPlus AG DWL-AG122 Wireless Adapter
+ 3c02 AirPlus G DWL-G122 Wireless Adapter
+ 3c05 DUB-E100 Fast Ethernet [asix]
4000 DSB-650C Ethernet [klsi]
4001 DSB-650TX Ethernet [pegasus]
4002 DSB-650TX Ethernet [pegasus]
4003 DSB-650TX-PNA Ethernet [pegasus]
+ 400b 10/100 Ethernet
+ 4102 10/100 Ethernet
+ 5100 DSL-200 ADSL ATM Modem
+ 5102 DSL-200 ADSL Loader
+ 5b00 Remote NDIS Network Device
+ 9414 Cable Modem
+ 9b00 Broadband Cable Modem Remote NDIS Device
abc1 DSB-650 Ethernet [pegasus]
f013 DLink 7 port USB2.0 Hub
f10d Accent Communications Modem
+ f110 DUB-AV300 A/V Capture
f111 DBT-122 Bluetooth adapter
+ f112 DUB-T210 Audio Device
+ f116 Formosa 2
+ f117 Formosa 3
+ f118 Formosa 4
+2019 PLANEX
+ 3220 GW-US11S WLAN
+ 5303 GW-US54GXS
+ ab01 GW-US54HP
+ ab50 GW-US54Mini2
+ c002 GW-US54SG
+ c007 GW-US54GZL
+ ed02 GW-USMM
2040 Hauppauge
- 7050 Hauppauge Nova-T Stick
- 9300 Hauppauge WinTV NOVA-T USB2 (cold)
- 9301 Hauppauge WinTV NOVA-T USB2 (warm)
+ 6502 WinTV HVR-900
+ 6503 WinTV HVR-930
+ 6513 WinTV HVR-980
+ 7050 Nova-T Stick
+ 7060 Nova-T Stick 2
+ 7070 Nova-T Stick 3
+ 9300 WinTV NOVA-T USB2 (cold)
+ 9301 WinTV NOVA-T USB2 (warm)
2101 ActionStar
0201 SIIG 4-to-2 Printer Switch
2162 Creative (?)
+ 2031 Network Blaster Wireless Adapter
500c DE5771 Modem Blaster
+ 8001 Broadxent BritePort DSL Bridge 8010U
2222 MacAlly
0004 iWebKey Keyboard
+ 4050 AirStick joystick
2233 RadioShack Corporation
6323 USB Electronic Scale
22b8 Motorola PCS
+ 0001 Wally 2.2 chipset
+ 0002 Wally 2.4 chipset
0005 V.60c/V.60i GSM Phone
+ 0850 Bluetooth Device
+ 1001 Patriot 1.0 (GSM) chipset
+ 1002 Patriot 2.0 chipset
1005 T280e GSM/GPRS Phone
+ 1101 Patriot 1.0 (TDMA) chipset
+ 1801 Rainbow chipset flash
+ 2035 Bluetooth Device
+ 2805 GSM Modem
2821 T720 GSM Phone
2822 V.120e GSM Phone
+ 2823 Flash Interface
+ 2a01 MSM6050 chipset
+ 2a02 CDMA modem
+ 2a03 MSM6050 chipset flash
2a21 V710 GSM Phone (P2K)
2a22 V710 GSM Phone (AT)
+ 2a23 MSM6100 chipset flash
+ 2a41 MSM6300 chipset
+ 2a42 Usb Modem
+ 2a43 MSM6300 chipset flash
2a61 E815 GSM Phone (P2K)
2a62 E815 GSM Phone (AT)
+ 2a63 MSM6500 chipset flash
+ 2a81 MSM6025 chipset
+ 2a83 MSM6025 chipset flash
+ 2ac1 MSM6100 chipset
+ 2ac3 MSM6100 chipset flash
3001 A835/E1000 GSM Phone (P2K)
3002 A835/E1000 GSM Phone (AT)
3801 C350L/C450 (P2K)
3802 C330/C350L/C450/EZX GSM Phone (AT)
+ 3803 Neptune LT chipset flash
+ 4001 OMAP 1.0 chipset
4002 A920/A925 UMTS Phone
+ 4003 OMAP 1.0 chipset flash
+ 4008 OMAP 1.0 chipset RDL
+ 4204 MPx200 Smartphone
+ 4214 MPc GSM
+ 4224 MPx220 Smartphone
+ 4234 MPc CDMA
+ 4244 MPx100 Smartphone
+ 4801 Neptune LTS chipset
+ 4803 Neptune LTS chipset flash
4810 Triplet GSM Phone (storage)
4901 Triplet GSM Phone (P2K)
4902 Triplet GSM Phone (AT)
+ 4903 Neptune LTE chipset flash
+ 4a01 Neptune LTX chipset
+ 4a03 Neptune LTX chipset flash
4a32 L6-imode Phone
+ 5801 Neptune ULS chipset
+ 5803 Neptune ULS chipset flash
+ 5901 Neptune VLT chipset
+ 5903 Neptune VLT chipset flash
+ 6001 Dalhart EZX
+ 6003 Dalhart flash
6004 EZX GSM Phone (CDC Net)
+ 6008 Dalhart RDL
6009 EZX GSM Phone (P2K)
+ 600a Dalhart EZX config 17
+ 600b Dalhart EZX config 18
600c EZX GSM Phone (USBLAN)
+ 6021 JUIX chipset
+ 6023 JUIX chipset flash
+ 6026 Flash RAM Downloader/miniOS
+ 6027 USBLAN
604c EZX GSM Phone (Storage)
- 6631 CDC Modem
+ 6101 Talon integrated chipset
+ 6401 Argon chipset
+ 6403 Argon chipset flash
+ 6415 ROKR Z6 (MTP mode)
6604 Washington CDMA Phone
+ 6631 CDC Modem
+ 7001 Q Smartphone
22b9 eTurboTouch Technology, Inc.
22ba Technology Innovation Holdings, Ltd
2304 Pinnacle Systems, Inc. [hex]
- 0109 Pinnacle Studio PCTV USB (SECAM)
- 0110 Pinnacle Studio PCTV USB (PAL)
+ 0109 Studio PCTV USB (SECAM)
+ 0110 Studio PCTV USB (PAL)
0111 Miro PCTV USB
- 0112 Pinnacle Studio PCTV USB (NTSC) with FM radio
- 0208 Pinnacle Studio PCTV USB2
- 0210 Pinnacle Studio PCTV USB (PAL) with FM radio
- 0212 Pinnacle Studio PCTV USB (NTSC)
- 0214 Pinnacle Studio PCTV USB (PAL) with FM radio
- 0300 Pinnacle Studio Linx Video input cable (NTSC)
- 0301 Pinnacle Studio Linx Video input cable (PAL)
- 0419 Pinnacle PCTV Bungee USB (PAL) with FM radio
+ 0112 Studio PCTV USB (NTSC) with FM radio
+ 0201 Systems MovieBox Device
+ 0204 MovieBox USB_B
+ 0205 DVC 150B
+ 0206 Systems MovieBox Deluxe Device
+ 0207 Dazzle DVC90 Video Device
+ 0208 Studio PCTV USB2
+ 020e PCTV 200e
+ 020f PCTV 400e BDA Device
+ 0210 Studio PCTV USB (PAL) with FM radio
+ 0212 Studio PCTV USB (NTSC)
+ 0213 500-USB Device
+ 0214 Studio PCTV USB (PAL) with FM radio
+ 0216 PCTV 60e
+ 0219 PCTV 260e
+ 021a Dazzle DVC100 Audio Device
+ 021b Dazzle DVC130/DVC170
+ 021d Dazzle DVC130
+ 021e Dazzle DVC170
+ 021f PCTV Sat HDTV Pro BDA Device
+ 0222 PCTV Sat Pro BDA Device
+ 0223 DazzleTV Sat BDA Device
+ 0226 PCTV 330e
+ 0227 PCTV for Mac, HD Stick
+ 0228 PCTV DVB-T Flash Stick
+ 022a PCTV 160e
+ 022b PCTV 71e
+ 0232 PCTV 170e
+ 0300 Studio Linx Video input cable (NTSC)
+ 0301 Studio Linx Video input cable (PAL)
+ 0302 Dazzle DVC120
+ 0419 PCTV Bungee USB (PAL) with FM radio
+ 061d PCTV Deluxe (NTSC) Device
+ 061e PCTV Deluxe (PAL) Device
2318 Shining Technologies, Inc. [hex]
0011 CitiDISK Jr. IDE Enclosure
2375 Digit@lway, Inc.
@@ -4743,16 +11293,65 @@
2632 TwinMOS
3209 7-in-1 Card Reader
2650 Electronics For Imaging, Inc. [hex]
+2730 Citizen
+ 200f CT-S310 Label printer
+2735 DigitalWay
+ 0003 MPIO HS100
+ 1001 MPIO FY200
+ 1002 MPIO FL100
+ 1003 MPIO FD100
+ 1004 MPIO HD200
+ 1005 MPIO HD300
+ 1006 MPIO FG100
+ 1007 MPIO FG130
+ 1008 MPIO FY300
+ 1009 MPIO FY400
+ 100a MPIO FL300
+ 100b MPIO HS200
+ 100c MPIO FL350
+ 100d MPIO FY500
+ 100e MPIO FY500
+ 100f MPIO FY600
+ 1012 MPIO FL400
+ 1013 MPIO HD400
+ 1014 MPIO HD400
+ 1016 MPIO FY700
+ 1017 MPIO FY700
+ 1018 MPIO FY800
+ 1019 MPIO FY800
+ 101a MPIO FY900
+ 101b MPIO FY900
+ 102b MPIO FL500
+ 102c MPIO FL500
+ 103f MPIO FY570
+ 1040 MPIO FY570
+ 1041 MPIO FY670
+ 1042 MPIO FY670
+ 1043 HCT HMD-180A
+ 1044 HCT HMD-180A
2770 NHJ, Ltd
+ 0a01 ScanJet 4600 series
905c Che-Ez Snap SNAP-U/Digigr8/Soundstar TDC-35
+ 9060 A130
9120 Che-ez! Snap / iClick Tiny VGA Digital Camera
+ 9130 TCG 501
913c Argus DC-1730
+ 9150 Mini Cam
9153 iClick 5X
+ 915d Cyberpix S-210S / Little Tikes My Real Digital Camera
+ 930b CCD Webcam(PC370R)
+ 930c CCD Webcam(PC370R)
2899 Toptronic Industrial Co., Ltd
+2c02 Planex Communications
+ 14ea GW-US11H WLAN
2fb2 Fujitsu, Ltd
3125 Eagletron
0001 TrackerPod Camera Stand
3176 Whanam Electronics Co., Ltd
+3275 VidzMedia Pte Ltd
+ 4fb1 MonsterTV P2H
+3334 AEI
+ 1701 Fast Ethernet
3340 Yakumo
043a Mio A701 DigiWalker PPCPhone
0e3a Pocket PC 300 GPS SL / Typhoon MyGuide 3500
@@ -4761,6 +11360,8 @@
f110 Security Key
3538 Power Quotient International Co., Ltd
0001 Travel Flash
+ 0015 Mass Storge Device
+ 0022 Hi-Speed Mass Storage Device
0042 Cool Drive U339 Flash Disk
3579 DIVA
6901 Media Reader
@@ -4768,16 +11369,37 @@
3838 WEM
0001 5-in-1 Card Reader
3923 National Instruments Corp.
+ 12c0 DAQPad-6020E
+ 12d0 DAQPad-6507
+ 12e0 NI 4350
+ 12f0 NI 5102
+ 1750 DAQPad-6508
+ 17b0 USB-ISA-Bridge
+ 1820 DAQPad-6020E (68 pin I/O)
+ 1830 DAQPad-6020E (BNC)
+ 1f00 DAQPad-6024E
+ 1f10 DAQPad-6024E
+ 1f20 DAQPad-6025E
+ 1f30 DAQPad-6025E
+ 1f40 DAQPad-6036E
+ 1f50 DAQPad-6036E
+ 2f80 DAQPad-6052E
+ 2f90 DAQPad-6052E
703c USB-485 RS485 Cable
7254 NI MIO (data acquisition card) firmware updater
729e USB-6251 (OEM) data acquisition card
+40bb I-O Data
+ 0a09 USB2.0-SCSI Bridge USB2-SC
+4101 i-rocks
+ 1301 IR-2510 usb phone
4102 iRiver, Ltd.
1001 iFP-100 series mp3 player
1003 iFP-300 series mp3 player
1005 iFP-500 series mp3 player
1007 iFP-700 series mp3/ogg vorbis player
1008 iFP-800 series mp3/ogg vorbis player
- 100A iFP-1000 series mp3/ogg vorbis player
+ 100a iFP-1000 series mp3/ogg vorbis player
+ 1014 T20 series mp3/ogg vorbis player (ums firmware)
1101 iFP-100 series mp3 player (ums firmware)
1103 iFP-300 series mp3 player (ums firmware)
1105 iFP-500 series mp3 player (ums firmware)
@@ -4789,32 +11411,117 @@
2102 H10 5GB (mtp)
2105 H10 5/6GB (mtp)
413c Dell Computer Corp.
+ 0058 Port Replicator
+ 1001 Keyboard Hub
1002 Keyboard Hub
+ 2001 Keyboard HID Support
2002 SK-8125 Keyboard
+ 2003 Keyboard
2005 RT7D50 Keyboard
2100 SK-3106 Keyboard
2101 SmartCard Reader Keyboard
2500 DRAC4 Remote Access Card
3010 Optical Wheel Mouse
+ 3200 Mouse
4001 Axim X5
4002 Axim X3
4003 Axim X30
+ 4004 Axim Sync
+ 4005 Axim Sync
+ 4006 Axim Sync
+ 4007 Axim Sync
+ 4008 Axim Sync
+ 4009 Axim Sync
+ 4011 Axim X51v
+ 5103 AIO Printer A940
+ 5105 AIO Printer A920
+ 5107 AIO Printer A960
+ 5109 Photo AIO Printer 922
+ 5110 Photo AIO Printer 962
+ 5111 Photo AIO Printer 942
+ 5112 Photo AIO Printer 924
+ 5113 Photo AIO Printer 944
+ 5114 Photo AIO Printer 964
+ 5115 Photo AIO Printer 926
+ 5116 AIO Printer 946
+ 5117 Photo AIO Printer 966
+ 5118 AIO 810
+ 5124 Laser MFP 1815
+ 5128 Photo AIO 928
+ 5200 Laser Printer
+ 5202 Printing Support
+ 5203 Printing Support
+ 5210 Printing Support
+ 5211 Printing Support
+ 5220 Laser MFP 1600n
+ 5225 Printing Support
+ 5226 Printing Support
+ 5300 Laser Printer
+ 5400 Laser Printer
+ 5401 Laser Printer
+ 5601 Laser Printer 3100cn
+ 5602 Laser Printer 3000cn
+ 5631 Laser Printer 5100cn
+ 5905 Printing Support
+ 8000 BC02 Bluetooth USB Adapter
+ 8010 TrueMobile Bluetooth Module in
8100 TrueMobile 1180 802.11b Adapter
+ 8102 TrueMobile 1300 USB2.0 WLAN Card
8103 Wireless 350 Bluetooth
+ 8104 Wireless 1450 Dual-band (802.11a/b/g) USB2.0 Adapter
+ 8105 U2 in HID - Driver
+ 8106 Wireless 350 Bluetooth Internal Card in
+ 8110 Wireless 3xx Bluetooth Internal Card
+ 8111 Wireless 3xx Bluetooth Internal Card in
+ 8114 Wireless 5700 Mobile Broadband (CDMA EV-DO) Minicard Modem
+ 8115 Wireless 5500 Mobile Broadband (3G HSDPA) Minicard Modem
+ 8116 Wireless 5505 Mobile Broadband (3G HSDPA) Minicard Modem
+ 8117 Wireless 5700 Mobile Broadband (CDMA EV-DO) Expresscard Modem
+ 8118 Wireless 5510 Mobile Broadband (3G HSDPA) Expresscard Status Port
+ 8120 Bluetooth adapter
+ 8121 Eastfold in HID
+ 8122 Eastfold in DFU
+ 8123 eHome Infrared Receiver
+ 8124 eHome Infrared Receiver
+ 8126 Wireless 355 Bluetooth
+ 8127 Wireless 355 Module with Bluetooth 2.0 + EDR Technology.
+ 8128 Wireless 5700-Sprint Mobile Broadband (CDMA EV-DO) Mini-Card Status Port
+ 8129 Wireless 5700-Telus Mobile Broadband (CDMA EV-DO) Mini-Card Status Port
+ 8131 Wireless 360 Bluetooth 2.0 + EDR module.
+ 8133 Wireless 5720 VZW Mobile Broadband (EVDO Rev-A) Minicard GPS Port
+ 8134 Wireless 5720 Sprint Mobile Broadband (EVDO Rev-A) Minicard Status Port
+ 8135 Wireless 5720 TELUS Mobile Broadband (EVDO Rev-A) Minicard Diagnostics Port
+ 8136 Wireless 5520 Cingular Mobile Broadband (3G HSDPA) Minicard Diagnostics Port
+ 8137 Wireless 5520 Voda L Mobile Broadband (3G HSDPA) Minicard Status Port
+ 8138 Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard EAP-SIM Port
+ 8140 Wireless 360 Bluetooth
+ 8142 Mobile 360 in DFU
+ 8501 Bluetooth Adapter
a001 Hub
+ a005 Internal 2.0 Hub
a700 Hub (in 1905FP LCD Monitor)
-4242 USB Design by Example
- 4201 Buttons and Lights HID device
- 4220 Echo 1 Camera
4146 USBest Technology
9281 Iomega Micro Mini 128MB Flash Drive
ba01 Intuix Flash Drive
+4242 USB Design by Example
+ 4201 Buttons and Lights HID device
+ 4220 Echo 1 Camera
+4348 WinChipHead
+ 5523 USB->RS 232 adapter with Prolifec PL 2303 chipset
+ 5537 13.56Mhz RFID Card Reader and Writer
+ 5584 CH34x printer adapter cable
4572 Shuttle, Inc.
4572 Shuttle PN31 Remote
4586 Panram
1026 Crystal Bar Flash Drive
4670 EMS Production
9394 Game Cube USB Memory Adaptor 64M
+4752 Miditech
+ 0011 Midistart-2
+4766 Aceeca
+ 0001 MEZ1000 RDA
+4855 Memorex
+ 7288 Ultra Traveldrive 160G 2.5" HDD
5032 Grandtec
0bb8 Grandtec USB1.1 DVB-T (cold)
0bb9 Grandtec USB1.1 DVB-T (warm)
@@ -4822,48 +11529,116 @@
0fa1 Grandtec USB1.1 DVB-T (warm)
5041 Linksys (?)
2234 WUSB54G 802.11g Adapter
+5173 Sweex
+ 1809 ZD1211
5345 Owon
1234 PDS6062T Oscilloscope
544d Transmeta Corp.
5543 UC-Logic Technology Corp.
0002 SuperPen WP3325U Tablet
+ 0003 Genius MousePen 4x3 Tablet/Aquila L1 Tablet
0004 Genius MousePen 5x4 Tablet
+ 0005 Genius MousePen 8x6 Tablet
+ 0041 Genius PenSketch 6x8 Tablet
+ 0042 Genius PenSketch 12x9 Tablet
55aa OnSpec Electronic, Inc.
+ 0015 Hard Drive
+ 0102 SuperDisk
+ 0103 IDE Hard Drive
+ 0201 DDI to Reader-19
1234 ATAPI Bridge
a103 Sandisk SDDR-55 SmartMedia Card Reader
+ b000 USB to CompactFlash Card Reader
+ b004 OnSpec MMC/SD Reader/Writer
+ b00b USB to Memory Stick Card Reader
+ b00c USB to SmartMedia Card Reader
b012 Mitsumi FA402M 8-in-2 Card Reader
+ b200 Compact Flash Reader
+ b204 MMC/ SD Reader
+ b207 Memory Stick Reader
+5986 Acer, Inc
+ 0102 Crystal Eye webcam
+5a57 Zinwell
+ 0260 RT2570
+6189 Sitecom
+ 182d USB 2.0 Ethernet
+ 2068 USB to serial cable (v2)
6253 TwinHan Technology Co., Ltd
0100 Ir reciver f. remote control
636c CoreLogic, Inc.
+6547 Arkmicro Technologies Inc.
+ 0232 ARK3116 Serial
6666 Prototype product Vendor ID
- 0667 Smart Joy PSX, PS-PC Smart JoyPad
+ 0667 WiseGroup Smart Joy PSX, PS-PC Smart JoyPad
+ 2667 JCOP BlueZ Smartcard reader
+ 8804 WiseGroup SuperJoy Box 5
+6891 3Com
+ a727 3CRUSB10075
6993 Freshtel
b001 FT-102 VoIP USB Phone
6a75 Shanghai Jujo Electronics Co., Ltd
+7104 CME (Central Music Co.)
+ 2202 UF5/UF6/UF7/UF8 MIDI Master Keyboard
8086 Intel Corp.
+ 0001 AnyPoint (TM) Home Network 1.6 Mbps Wireless Adapter
+ 0100 Personal Audio Player 3000
+ 0101 Personal Audio Player 3000
0110 Easy PC Camera
+ 0120 PC Camera CS120
+ 0200 AnyPoint(TM) Wireless II Network 11Mbps Adapter
0431 Intel Pro Video PC Camera
0510 Digital Movie Creator
0630 Pocket PC Camera
+ 0780 CS780 Microphone Input
07d3 BLOB boot loader firmware
+ 0dad Cherry MiniatureCard Keyboard
+ 1010 AnyPoint(TM) Home Network 10 Mbps Phoneline Adapter
+ 110a Bluetooth Controller from (Ericsson P4A)
+ 110b Bluetooth Controller from (Intel/CSR)
+ 1110 PRO/Wireless LAN Module
1111 PRO/Wireless 2011B 802.11b Adapter
+ 1134 Hollister Mobile Monitor
+ 1234 Prototype Reader/Writer
+ 3100 PRO/DSL 3220 Modem - WAN
+ 3101 PRO/DSL 3220 Modem
+ 3240 AnyPoint® 3240 Modem - WAN
+ 3241 AnyPoint® 3240 Modem
+ 8602 Miniature Card Slot
+ 9303 Intel 8x930Hx Hub
9890 82930 Test Board
+ beef SCM Miniature Card Reader/Writer
c013 Wireless HID Station
+ f001 XScale PXA27x Bulverde flash
8341 EGO Systems, Inc.
2000 Flashdisk
+9016 Sitecom
+ 182d WL-022
9710 MosChip Semiconductor
+ 7703 MCS7703 Serial Port Adapter
7705 Printer cable
7715 Printer cable
7780 MS7780 4Mbps Fast IRDA Adapter
+ 7830 MCS7830 Ethernet
+a600 Asix
+ e110 OK1ZIA Davac 4.x
+a727 3Com
+ 6893 AR5523
+ 6895 AR5523
+ 6897 AR5523
c251 Keil Software, Inc.
2710 ULink
+d209 Ultimarc
+ 0301 I-PAC Arcade Control Interface
eb1a eMPIA Technology, Inc.
17de KWorld V-Stream XPERT DTV - DVB-T USB cold
17df KWorld V-Stream XPERT DTV - DVB-T USB warm
2710 SilverCrest WebCam
2750 ECS Elitegroup G220 integrated webcam
+ 2761 EeePC 701 integrated webcam
2800 Terratec Cinergy 200
2801 GrabBeeX+ Video Encoder
+f003 Hewlett Packard
+ 6002 PhotoSmart C500
# List of known device classes, subclasses and protocols
@@ -4912,7 +11687,7 @@ C 03 Human Interface Device
C 05 Physical Interface Device
C 06 Imaging
01 Still Image Capture
- 01 Picture Transfer Protocol (PIMA 15470)
+ 01 Picture Transfer Protocol (PIMA 15470)
C 07 Printer
01 Printer
00 Reserved/Undefined
@@ -6558,4 +13333,3 @@ VT 0400 External Vendor Specific
VT 0401 Composite Video
VT 0402 S-Video
VT 0403 Component Video
-
diff --git a/src/initscripts/init.d/checkfstab b/src/initscripts/init.d/checkfstab
new file mode 100644
index 000000000..5aab8690b
--- /dev/null
+++ b/src/initscripts/init.d/checkfstab
@@ -0,0 +1,51 @@
+#!/bin/sh
+########################################################################
+# Begin $rc_base/init.d/checkfstab
+#
+# Description : Check and repair fstab if the drivename has changed
+#
+# Authors : Arne Fitzenreiter - arne_f@ipfire.org
+#
+# Version : 00.00
+#
+# Notes :
+#
+########################################################################
+
+. /etc/sysconfig/rc
+. ${rc_functions}
+
+case "${1}" in
+ start)
+ boot_mesg "Checking fstab rootdevice entry ..."
+ ROOTPOS=`expr index "$CMDLINE" root=`
+ NEWROOT=`echo ${CMDLINE:$ROOTPOS} | cut -d"=" -f2 | cut -d" " -f1`;
+ OLDROOT=`cat /etc/fstab | grep -m1 " / " | cut -d" " -f1`;
+ OLDDRV=${OLDROOT::`expr length $OLDROOT`-1}
+ NEWDRV=${NEWROOT::`expr length $NEWROOT`-1}
+ if [ "$OLDROOT" == "$NEWROOT" ]; then
+ echo_ok;
+ exit 0;
+ fi
+ echo_failure;
+ boot_mesg "Warning! Rootdevice not match with fstab entry!"
+ boot_mesg
+ boot_mesg "Rootdevice: $NEWROOT"
+ boot_mesg "fstab-entry: $OLDROOT"
+ boot_mesg
+ boot_mesg "Attempt to repair it ..."
+ mount -o remount,rw /
+ sed -i -e "s|$OLDDRV|$NEWDRV|g" /etc/fstab
+ mount /boot
+ sed -i -e "s|$OLDDRV|$NEWDRV|g" /boot/grub/grub.conf
+ umount /boot
+ echo_ok;
+ exit 0;
+ ;;
+ *)
+ echo "Usage: ${0} {start}"
+ exit 1
+ ;;
+esac
+
+# End $rc_base/init.d/checkfstab
diff --git a/src/install+setup/install/main.c b/src/install+setup/install/main.c
index f1731dd85..852819b17 100644
--- a/src/install+setup/install/main.c
+++ b/src/install+setup/install/main.c
@@ -116,9 +116,6 @@ int main(int argc, char *argv[])
mysystem("/sbin/modprobe usb-storage");
mysystem("/sbin/modprobe usbhid");
- mysystem("/bin/sleep 3");
- mysystem("/sbin/modprobe ahci"); // SATA AHCI Host controller
-
mysystem("/sbin/modprobe iso9660"); // CDROM
mysystem("/sbin/modprobe ext2"); // Boot patition
mysystem("/sbin/modprobe vfat"); // USB key
diff --git a/src/patches/kudzu-usbnet.patch b/src/patches/kudzu-usbnet.patch
index 79481b9ba..7fe0480ea 100644
--- a/src/patches/kudzu-usbnet.patch
+++ b/src/patches/kudzu-usbnet.patch
@@ -1,24 +1,30 @@
-diff -Naur kudzu.org/usb.c kudzu-1.2.64/usb.c
---- kudzu.org/usb.c 2006-11-28 17:58:58.000000000 +0100
-+++ kudzu-1.2.64/usb.c 2008-06-11 19:27:36.000000000 +0200
-@@ -264,10 +264,20 @@
- if (t->driver && (!strcmp(t->driver, "pegasus") ||
+diff -Naur kudzu-1.2.64.org/usb.c kudzu-1.2.64/usb.c
+--- kudzu-1.2.64.org/usb.c 2006-11-28 17:58:58.000000000 +0100
++++ kudzu-1.2.64/usb.c 2008-07-22 12:13:42.000000000 +0200
+@@ -261,13 +261,22 @@
+ t->desc = strdup(t->usbprod);
+ else
+ asprintf(&t->desc,"Unknown USB device 0x%x:0x%x",t->vendorId,t->deviceId);
+- if (t->driver && (!strcmp(t->driver, "pegasus") ||
++ if (t->driver && (!strcmp(t->driver, "asix") ||
!strcmp(t->driver, "catc") ||
- !strcmp(t->driver, "kaweth") ||
+ !strcmp(t->driver, "cdc_ether") ||
++ !strcmp(t->driver, "dm9601") ||
+ !strcmp(t->driver, "gl620a") ||
+ !strcmp(t->driver, "kaweth") ||
+- !strcmp(t->driver, "rtl8150") ||
+- !strcmp(t->driver, "ax8817x") ||
++ !strcmp(t->driver, "mcs7830") ||
+ !strcmp(t->driver, "net1080") ||
++ !strcmp(t->driver, "pegasus") ||
+ !strcmp(t->driver, "plusb") ||
+ !strcmp(t->driver, "rndis_host") ||
+ !strcmp(t->driver, "zaurus") ||
-+ !strcmp(t->driver, "net1080") ||
- !strcmp(t->driver, "rtl8150") ||
- !strcmp(t->driver, "ax8817x") ||
-+ !strcmp(t->driver, "zd1211rw") ||
++ !strcmp(t->driver, "rtl8187") ||
++ !strcmp(t->driver, "usb8xxx") ||
!strcmp(t->driver, "zd1201") ||
- !strcmp(t->driver, "asix") ||
-+ !strcmp(t->driver, "mcs7830") ||
-+ !strcmp(t->driver, "dm9601") ||
+- !strcmp(t->driver, "asix") ||
++ !strcmp(t->driver, "zd1211rw") ||
!strcmp(t->driver, "usbnet"))) {
if (t->type == CLASS_OTHER)
t->type = CLASS_NETWORK;
diff --git a/src/patches/openswan-2.4.12.kernel-2.6.20.21-natt.patch b/src/patches/openswan-2.4.12.kernel-2.6.20.21-natt.patch
deleted file mode 100644
index 471eb3296..000000000
--- a/src/patches/openswan-2.4.12.kernel-2.6.20.21-natt.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-packaging/utils/nattpatch 2.6
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ nat-t/include/net/xfrmudp.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,10 @@
-+/*
-+ * pointer to function for type that xfrm4_input wants, to permit
-+ * decoupling of XFRM from udp.c
-+ */
-+#define HAVE_XFRM4_UDP_REGISTER
-+
-+typedef int (*xfrm4_rcv_encap_t)(struct sk_buff *skb, __u16 encap_type);
-+extern int udp4_register_esp_rcvencap(xfrm4_rcv_encap_t func
-+ , xfrm4_rcv_encap_t *oldfunc);
-+extern int udp4_unregister_esp_rcvencap(xfrm4_rcv_encap_t func);
---- /distros/kernel/linux-2.6.11.2/net/ipv4/Kconfig 2005-03-09 03:12:33.000000000 -0500
-+++ swan26/net/ipv4/Kconfig 2005-04-04 18:46:13.000000000 -0400
-@@ -351,2 +351,8 @@
-
-+config IPSEC_NAT_TRAVERSAL
-+ bool "IPSEC NAT-Traversal (KLIPS compatible)"
-+ depends on INET
-+ ---help---
-+ Includes support for RFC3947/RFC3948 NAT-Traversal of ESP over UDP.
-+
- config IP_TCPDIAG
---- plain26/net/ipv4/udp.c.orig 2006-01-02 22:21:10.000000000 -0500
-+++ plain26/net/ipv4/udp.c 2006-01-12 20:18:57.000000000 -0500
-@@ -108,6 +108,7 @@
- */
-
- DEFINE_SNMP_STAT(struct udp_mib, udp_statistics) __read_mostly;
-+#include
-
- struct hlist_head udp_hash[UDP_HTABLE_SIZE];
- DEFINE_RWLOCK(udp_hash_lock);
-@@ -914,6 +915,44 @@
- return 0;
- }
-
-+#if defined(CONFIG_XFRM) || defined(CONFIG_IPSEC_NAT_TRAVERSAL)
-+
-+/* if XFRM isn't a module, then register it directly. */
-+#if !defined(CONFIG_XFRM_MODULE)
-+static xfrm4_rcv_encap_t xfrm4_rcv_encap_func = xfrm4_rcv_encap;
-+#else
-+static xfrm4_rcv_encap_t xfrm4_rcv_encap_func = NULL;
-+#endif
-+
-+static xfrm4_rcv_encap_t xfrm4_rcv_encap_func;
-+
-+int udp4_register_esp_rcvencap(xfrm4_rcv_encap_t func
-+ , xfrm4_rcv_encap_t *oldfunc)
-+{
-+ if(oldfunc != NULL) {
-+ *oldfunc = xfrm4_rcv_encap_func;
-+ }
-+
-+#if 0
-+ if(xfrm4_rcv_encap_func != NULL)
-+ return -1;
-+#endif
-+
-+ xfrm4_rcv_encap_func = func;
-+ return 0;
-+}
-+
-+int udp4_unregister_esp_rcvencap(xfrm4_rcv_encap_t func)
-+{
-+ if(xfrm4_rcv_encap_func != func)
-+ return -1;
-+
-+ xfrm4_rcv_encap_func = NULL;
-+ return 0;
-+}
-+#endif /* CONFIG_XFRM || defined(CONFIG_IPSEC_NAT_TRAVERSAL)*/
-+
-+
- /* return:
- * 1 if the the UDP system should process it
- * 0 if we should drop this packet
-@@ -921,9 +960,9 @@
- */
- static int udp_encap_rcv(struct sock * sk, struct sk_buff *skb)
- {
--#ifndef CONFIG_XFRM
-+#if !defined(CONFIG_XFRM) && !defined(CONFIG_IPSEC_NAT_TRAVERSAL)
- return 1;
--#else
-+#else /* either CONFIG_XFRM or CONFIG_IPSEC_NAT_TRAVERSAL */
- struct udp_sock *up = udp_sk(sk);
- struct udphdr *uh;
- struct iphdr *iph;
-@@ -1049,11 +1088,15 @@
- kfree_skb(skb);
- return 0;
- }
-- if (ret < 0) {
-- /* process the ESP packet */
-- ret = xfrm4_rcv_encap(skb, up->encap_type);
-- UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS, up->pcflag);
-- return -ret;
-+ if (ret < 0) {
-+ if(xfrm4_rcv_encap_func != NULL) {
-+ ret = (*xfrm4_rcv_encap_func)(skb, up->encap_type);
-+ UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS, up->pcflag);
-+ } else {
-+ UDP_INC_STATS_BH(UDP_MIB_INERRORS, up->pcflag);
-+ ret = 1;
-+ }
-+ return ret;
- }
- /* FALLTHROUGH -- it's a UDP Packet */
- }
-@@ -1732,3 +1775,8 @@
- EXPORT_SYMBOL(udp_proc_register);
- EXPORT_SYMBOL(udp_proc_unregister);
- #endif
-+
-+#if defined(CONFIG_IPSEC_NAT_TRAVERSAL)
-+EXPORT_SYMBOL(udp4_register_esp_rcvencap);
-+EXPORT_SYMBOL(udp4_unregister_esp_rcvencap);
-+#endif
diff --git a/src/patches/openswan-2.6.14-kernel-2.6.24.7-natt.patch b/src/patches/openswan-2.6.14-kernel-2.6.24.7-natt.patch
deleted file mode 100644
index c84e996f5..000000000
--- a/src/patches/openswan-2.6.14-kernel-2.6.24.7-natt.patch
+++ /dev/null
@@ -1,129 +0,0 @@
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ nat-t/include/net/xfrmudp.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,10 @@
-+/*
-+ * pointer to function for type that xfrm4_input wants, to permit
-+ * decoupling of XFRM from udp.c
-+ */
-+#define HAVE_XFRM4_UDP_REGISTER
-+
-+typedef int (*xfrm4_rcv_encap_t)(struct sk_buff *skb, __u16 encap_type);
-+extern int udp4_register_esp_rcvencap(xfrm4_rcv_encap_t func
-+ , xfrm4_rcv_encap_t *oldfunc);
-+extern int udp4_unregister_esp_rcvencap(xfrm4_rcv_encap_t func);
---- /distros/kernel/linux-2.6.11.2/net/ipv4/Kconfig 2005-03-09 03:12:33.000000000 -0500
-+++ swan26/net/ipv4/Kconfig 2005-04-04 18:46:13.000000000 -0400
-@@ -351,2 +351,8 @@
-
-+config IPSEC_NAT_TRAVERSAL
-+ bool "IPSEC NAT-Traversal (KLIPS compatible)"
-+ depends on INET
-+ ---help---
-+ Includes support for RFC3947/RFC3948 NAT-Traversal of ESP over UDP.
-+
- config IP_TCPDIAG
---- plain26/net/ipv4/udp.c.orig 2006-12-28 20:53:17.000000000 -0500
-+++ plain26/net/ipv4/udp.c 2007-05-11 10:22:50.000000000 -0400
-@@ -108,6 +108,7 @@
- #include
- #include
- #include
-+#include
-
- /*
- * Snmp MIB for the UDP layer
-@@ -881,6 +882,31 @@
- sk_common_release(sk);
- }
-
-+#if defined(CONFIG_XFRM) || defined(CONFIG_IPSEC_NAT_TRAVERSAL)
-+
-+static xfrm4_rcv_encap_t xfrm4_rcv_encap_func = NULL;
-+int udp4_register_esp_rcvencap(xfrm4_rcv_encap_t func
-+ , xfrm4_rcv_encap_t *oldfunc)
-+{
-+ if(oldfunc != NULL) {
-+ *oldfunc = xfrm4_rcv_encap_func;
-+ }
-+
-+ xfrm4_rcv_encap_func = func;
-+ return 0;
-+}
-+
-+int udp4_unregister_esp_rcvencap(xfrm4_rcv_encap_t func)
-+{
-+ if(xfrm4_rcv_encap_func != func)
-+ return -1;
-+
-+ xfrm4_rcv_encap_func = NULL;
-+ return 0;
-+}
-+#endif /* CONFIG_XFRM_MODULE || CONFIG_IPSEC_NAT_TRAVERSAL */
-+
-+
- /* return:
- * 1 if the the UDP system should process it
- * 0 if we should drop this packet
-@@ -888,9 +914,9 @@
- */
- static int udp_encap_rcv(struct sock * sk, struct sk_buff *skb)
- {
--#ifndef CONFIG_XFRM
-+#if !defined(CONFIG_XFRM) && !defined(CONFIG_IPSEC_NAT_TRAVERSAL)
- return 1;
--#else
-+#else /* either CONFIG_XFRM or CONFIG_IPSEC_NAT_TRAVERSAL */
- struct udp_sock *up = udp_sk(sk);
- struct udphdr *uh;
- struct iphdr *iph;
-@@ -1018,10 +1044,27 @@
- return 0;
- }
- if (ret < 0) {
-- /* process the ESP packet */
-- ret = xfrm4_rcv_encap(skb, up->encap_type);
-- UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS);
-- return -ret;
-+ if(xfrm4_rcv_encap_func != NULL)
-+ ret = (*xfrm4_rcv_encap_func)(skb, up->encap_type);
-+
-+ switch(ret) {
-+ case 1:
-+ /* FALLTHROUGH to send-up */;
-+ break;
-+
-+ case 0:
-+ /* PROCESSED, free it */
-+ UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS);
-+ return 0;
-+
-+ case -1:
-+ /* PACKET wasn't for _func, or no func, pass it
-+ * to stock function
-+ */
-+ ret = xfrm4_rcv_encap(skb, up->encap_type);
-+ UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS);
-+ return -ret;
-+ }
- }
- /* FALLTHROUGH -- it's a UDP Packet */
- }
-@@ -1110,7 +1153,6 @@
- /*
- * All we need to do is get the socket, and then do a checksum.
- */
--
- int udp_rcv(struct sk_buff *skb)
- {
- struct sock *sk;
-@@ -1599,3 +1641,9 @@
- EXPORT_SYMBOL(udp_proc_register);
- EXPORT_SYMBOL(udp_proc_unregister);
- #endif
-+
-+#if defined(CONFIG_IPSEC_NAT_TRAVERSAL)
-+EXPORT_SYMBOL(udp4_register_esp_rcvencap);
-+EXPORT_SYMBOL(udp4_unregister_esp_rcvencap);
-+#endif
-+
-make[1]: Leaving directory `/usr/src/openswan-2.6.14'
diff --git a/src/patches/openswan-2.6.14-startklips-1.patch b/src/patches/openswan-2.6.14-startklips-1.patch
deleted file mode 100644
index 910a9cd19..000000000
--- a/src/patches/openswan-2.6.14-startklips-1.patch
+++ /dev/null
@@ -1,55 +0,0 @@
---- _startklips.orig 2008-07-11 01:55:19.000000000 +0200
-+++ _startklips 2008-07-12 09:11:56.000000000 +0200
-@@ -149,23 +149,35 @@
-
- # figure out ifconfig for interface
- addr=
-- eval `ifconfig $phys |
-- awk '$1 == "inet" && $2 ~ /^addr:/ && $NF ~ /^Mask:/ {
-- gsub(/:/, " ", $0)
-- print "addr=" $3
-- other = $5
-- if ($4 == "Bcast")
-- print "type=broadcast"
-- else if ($4 == "P-t-P")
-- print "type=pointopoint"
-- else if (NF == 5) {
-- print "type="
-- other = ""
-- } else
-- print "type=unknown"
-- print "otheraddr=" other
-- print "mask=" $NF
-- }'`
-+ eval `ip addr show $phys | awk '$3 ~ /BROADCAST|POINTOPOINT/ {
-+ if ($3 ~ /BROADCAST/)
-+ print "type=broadcast";
-+ else if ($3 ~ /POINTOPOINT/)
-+ print "type=pointopoint";
-+ else {
-+ print "type=";
-+ }
-+ }'`
-+
-+ if [ "$type" == "broadcast" ]; then
-+ eval `ip addr show $phys | awk '$1 == "inet" { gsub(/\//, " ");
-+ print "addr=" $2;
-+ print "mask=" $3;
-+ print "otheraddr=" $5;
-+ }'`
-+ elif [ "$type" == "pointopoint" ]; then
-+ eval `ip addr show $phys | awk '$1 == "inet" { gsub(/\//, " ");
-+ print "addr=" $2;
-+ print "mask=" $5;
-+ print "otheraddr=" $4;
-+ }'`
-+ else
-+ type="unknown"
-+ otheraddr=
-+ fi
-+
-+ eval `whatmask /$mask | awk -F': ' '$1 ~ /^Netmask =/ { print "mask=" $2 }'`
-+
- if test " $addr" = " "
- then
- echo "unable to determine address of \`$phys'"
diff --git a/src/patches/openswan-2.6.14-updown-1.patch b/src/patches/openswan-2.6.14-updown-1.patch
deleted file mode 100644
index ac38b7bb3..000000000
--- a/src/patches/openswan-2.6.14-updown-1.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- _updown.klips.orig 2008-07-11 01:55:19.000000000 +0200
-+++ _updown.klips 2008-07-12 09:20:26.000000000 +0200
-@@ -407,8 +407,8 @@
- # opportunistic encryption work around
- # need to provide route that eclipses default, without
- # replacing it.
-- it="ip route $1 0.0.0.0/1 $parms2 $parms3 &&
-- ip route $1 128.0.0.0/1 $parms2 $parms3"
-+ #it="ip route $1 0.0.0.0/1 $parms2 $parms3 &&
-+ # ip route $1 128.0.0.0/1 $parms2 $parms3"
- ;;
- *) it="ip route $1 $parms $parms2 $parms3"
- ;;
-@@ -432,13 +432,13 @@
- prepare-host:*|prepare-client:*)
- # delete possibly-existing route (preliminary to adding a route)
- case "$PLUTO_PEER_CLIENT" in
-- "0.0.0.0/0")
-+ "0.0.0.0/0")
- # need to provide route that eclipses default, without
- # replacing it.
- parms1="0.0.0.0/1"
- parms2="128.0.0.0/1"
-- it="ip route delete $parms1 $IPROUTEARGS 2>&1 ; ip route delete $parms2 $IPROUTEARGS 2>&1"
-- oops="`ip route delete $parms1 $IPROUTEARGS 2>&1 ; ip route delete $parms2 $IPROUTEARGS 2>&1`"
-+ # it="ip route delete $parms1 $IPROUTEARGS 2>&1 ; ip route delete $parms2 $IPROUTEARGS 2>&1"
-+ # oops="`ip route delete $parms1 $IPROUTEARGS 2>&1 ; ip route delete $parms2 $IPROUTEARGS 2>&1`"
- ;;
- *)
- parms="$PLUTO_PEER_CLIENT $IPROUTEARGS"
diff --git a/src/patches/openswan-2.6.16dr2-2.6.24-kernel.patch b/src/patches/openswan-2.6.16dr2-2.6.24-kernel.patch
deleted file mode 100644
index faf66e791..000000000
--- a/src/patches/openswan-2.6.16dr2-2.6.24-kernel.patch
+++ /dev/null
@@ -1,56013 +0,0 @@
-packaging/utils/kernelpatch 2.6
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/README.openswan-2 Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,112 @@
-+*
-+* RCSID $Id: README.openswan-2,v 1.1 2003/12/10 01:07:49 mcr Exp $
-+*
-+
-+ ****************************************
-+ * IPSEC for Linux, Release 2.xx series *
-+ ****************************************
-+
-+
-+
-+1. Files
-+
-+The contents of linux/net/ipsec/ (see below) join the linux kernel source tree.
-+as provided for higher up.
-+
-+The programs/ directory contains the user-level utilities which you need
-+to run IPSEC. See the top-level top/INSTALL to compile and install them.
-+
-+The testing/ directory contains test scripts.
-+
-+The doc/ directory contains -- what else -- documentation.
-+
-+1.1. Kernel files
-+
-+The following are found in net/ipsec/:
-+
-+Makefile The Makefile
-+Config.in The configuration script for make menuconfig
-+defconfig Configuration defaults for first time.
-+
-+radij.c General-purpose radix-tree operations
-+
-+ipsec_ipcomp.c IPCOMP encapsulate/decapsulate code.
-+ipsec_ah.c Authentication Header (AH) encapsulate/decapsulate code.
-+ipsec_esp.c Encapsulated Security Payload (ESP) encap/decap code.
-+
-+pfkey_v2.c PF_KEYv2 socket interface code.
-+pfkey_v2_parser.c PF_KEYv2 message parsing and processing code.
-+
-+ipsec_init.c Initialization code, /proc interface.
-+ipsec_radij.c Interface with the radix tree code.
-+ipsec_netlink.c Interface with the netlink code.
-+ipsec_xform.c Routines and structures common to transforms.
-+ipsec_tunnel.c The outgoing packet processing code.
-+ipsec_rcv.c The incoming packet processing code.
-+ipsec_md5c.c Somewhat modified RSADSI MD5 C code.
-+ipsec_sha1.c Somewhat modified Steve Reid SHA-1 C code.
-+
-+sysctl_net_ipsec.c /proc/sys/net/ipsec/* variable definitions.
-+
-+version.c symbolic link to project version.
-+
-+radij.h Headers for radij.c
-+
-+ipcomp.h Headers used by IPCOMP code.
-+
-+ipsec_radij.h Interface with the radix tree code.
-+ipsec_netlink.h Headers used by the netlink interface.
-+ipsec_encap.h Headers defining encapsulation structures.
-+ipsec_xform.h Transform headers.
-+ipsec_tunnel.h Headers used by tunneling code.
-+ipsec_ipe4.h Headers for the IP-in-IP code.
-+ipsec_ah.h Headers common to AH transforms.
-+ipsec_md5h.h RSADSI MD5 headers.
-+ipsec_sha1.h SHA-1 headers.
-+ipsec_esp.h Headers common to ESP transfroms.
-+ipsec_rcv.h Headers for incoming packet processing code.
-+
-+1.2. User-level files.
-+
-+The following are found in utils/:
-+
-+eroute.c Create an "extended route" source code
-+spi.c Set up Security Associations source code
-+spigrp.c Link SPIs together source code.
-+tncfg.c Configure the tunneling features of the virtual interface
-+ source code
-+klipsdebug.c Set/reset klips debugging features source code.
-+version.c symbolic link to project version.
-+
-+eroute.8 Create an "extended route" manual page
-+spi.8 Set up Security Associations manual page
-+spigrp.8 Link SPIs together manual page
-+tncfg.8 Configure the tunneling features of the virtual interface
-+ manual page
-+klipsdebug.8 Set/reset klips debugging features manual page
-+
-+eroute.5 /proc/net/ipsec_eroute format manual page
-+spi.5 /proc/net/ipsec_spi format manual page
-+spigrp.5 /proc/net/ipsec_spigrp format manual page
-+tncfg.5 /proc/net/ipsec_tncfg format manual page
-+klipsdebug.5 /proc/net/ipsec_klipsdebug format manual page
-+version.5 /proc/net/ipsec_version format manual page
-+pf_key.5 /proc/net/pf_key format manual page
-+
-+Makefile Utilities makefile.
-+
-+*.8 Manpages for the respective utils.
-+
-+
-+1.3. Test files
-+
-+The test scripts are locate in testing/ and and documentation is found
-+at doc/src/umltesting.html. Automated testing via "make check" is available
-+provided that the User-Mode-Linux patches are available.
-+
-+*
-+* $Log: README.openswan-2,v $
-+* Revision 1.1 2003/12/10 01:07:49 mcr
-+* documentation for additions.
-+*
-+*
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/des/des_locl.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,511 @@
-+/* crypto/des/des_locl.org */
-+/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
-+ * All rights reserved.
-+ *
-+ * This package is an SSL implementation written
-+ * by Eric Young (eay@cryptsoft.com).
-+ * The implementation was written so as to conform with Netscapes SSL.
-+ *
-+ * This library is free for commercial and non-commercial use as long as
-+ * the following conditions are aheared to. The following conditions
-+ * apply to all code found in this distribution, be it the RC4, RSA,
-+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
-+ * included with this distribution is covered by the same copyright terms
-+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
-+ *
-+ * Copyright remains Eric Young's, and as such any Copyright notices in
-+ * the code are not to be removed.
-+ * If this package is used in a product, Eric Young should be given attribution
-+ * as the author of the parts of the library used.
-+ * This can be in the form of a textual message at program startup or
-+ * in documentation (online or textual) provided with the package.
-+ *
-+ * 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 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 cryptographic software written by
-+ * Eric Young (eay@cryptsoft.com)"
-+ * The word 'cryptographic' can be left out if the rouines from the library
-+ * being used are not cryptographic related :-).
-+ * 4. If you include any Windows specific code (or a derivative thereof) from
-+ * the apps directory (application code) you must include an acknowledgement:
-+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``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)
-+ * 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.
-+ *
-+ * The licence and distribution terms for any publically available version or
-+ * derivative of this code cannot be changed. i.e. this code cannot simply be
-+ * copied and put under another distribution licence
-+ * [including the GNU Public Licence.]
-+ */
-+
-+/* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
-+ *
-+ * Always modify des_locl.org since des_locl.h is automatically generated from
-+ * it during SSLeay configuration.
-+ *
-+ * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
-+ */
-+
-+#ifndef HEADER_DES_LOCL_H
-+#define HEADER_DES_LOCL_H
-+
-+#if defined(WIN32) || defined(WIN16)
-+#ifndef MSDOS
-+#define MSDOS
-+#endif
-+#endif
-+
-+#include "klips-crypto/des.h"
-+#ifdef OCF_ASSIST
-+#include "klips-crypto/ocf_assist.h"
-+#endif
-+
-+#ifndef DES_DEFAULT_OPTIONS
-+/* the following is tweaked from a config script, that is why it is a
-+ * protected undef/define */
-+#ifndef DES_PTR
-+#define DES_PTR
-+#endif
-+
-+/* This helps C compiler generate the correct code for multiple functional
-+ * units. It reduces register dependancies at the expense of 2 more
-+ * registers */
-+#ifndef DES_RISC1
-+#define DES_RISC1
-+#endif
-+
-+#ifndef DES_RISC2
-+#undef DES_RISC2
-+#endif
-+
-+#if defined(DES_RISC1) && defined(DES_RISC2)
-+YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
-+#endif
-+
-+/* Unroll the inner loop, this sometimes helps, sometimes hinders.
-+ * Very mucy CPU dependant */
-+#ifndef DES_UNROLL
-+#define DES_UNROLL
-+#endif
-+
-+/* These default values were supplied by
-+ * Peter Gutman
-+ * They are only used if nothing else has been defined */
-+#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
-+/* Special defines which change the way the code is built depending on the
-+ CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
-+ even newer MIPS CPU's, but at the moment one size fits all for
-+ optimization options. Older Sparc's work better with only UNROLL, but
-+ there's no way to tell at compile time what it is you're running on */
-+
-+#if defined( sun ) /* Newer Sparc's */
-+ #define DES_PTR
-+ #define DES_RISC1
-+ #define DES_UNROLL
-+#elif defined( __ultrix ) /* Older MIPS */
-+ #define DES_PTR
-+ #define DES_RISC2
-+ #define DES_UNROLL
-+#elif defined( __osf1__ ) /* Alpha */
-+ #define DES_PTR
-+ #define DES_RISC2
-+#elif defined ( _AIX ) /* RS6000 */
-+ /* Unknown */
-+#elif defined( __hpux ) /* HP-PA */
-+ /* Unknown */
-+#elif defined( __aux ) /* 68K */
-+ /* Unknown */
-+#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
-+ #define DES_UNROLL
-+#elif defined( __sgi ) /* Newer MIPS */
-+ #define DES_PTR
-+ #define DES_RISC2
-+ #define DES_UNROLL
-+#elif defined( i386 ) /* x86 boxes, should be gcc */
-+ #define DES_PTR
-+ #define DES_RISC1
-+ #define DES_UNROLL
-+#endif /* Systems-specific speed defines */
-+#endif
-+
-+#endif /* DES_DEFAULT_OPTIONS */
-+
-+#ifdef MSDOS /* Visual C++ 2.1 (Windows NT/95) */
-+#include
-+#include
-+#include
-+#include
-+#ifndef RAND
-+#define RAND
-+#endif
-+#undef NOPROTO
-+#endif
-+
-+#if defined(__STDC__) || defined(VMS) || defined(M_XENIX) || defined(MSDOS)
-+#ifndef __KERNEL__
-+#include
-+#else
-+#include
-+#endif
-+#endif
-+
-+#ifndef RAND
-+#define RAND
-+#endif
-+
-+#ifdef linux
-+#undef RAND
-+#endif
-+
-+#ifdef MSDOS
-+#define getpid() 2
-+#define RAND
-+#undef NOPROTO
-+#endif
-+
-+#if defined(NOCONST)
-+#define const
-+#endif
-+
-+#ifdef __STDC__
-+#undef NOPROTO
-+#endif
-+
-+#define ITERATIONS 16
-+#define HALF_ITERATIONS 8
-+
-+/* used in des_read and des_write */
-+#define MAXWRITE (1024*16)
-+#define BSIZE (MAXWRITE+4)
-+
-+#define c2l(c,l) (l =((DES_LONG)(*((c)++))) , \
-+ l|=((DES_LONG)(*((c)++)))<< 8L, \
-+ l|=((DES_LONG)(*((c)++)))<<16L, \
-+ l|=((DES_LONG)(*((c)++)))<<24L)
-+
-+/* NOTE - c is not incremented as per c2l */
-+#define c2ln(c,l1,l2,n) { \
-+ c+=n; \
-+ l1=l2=0; \
-+ switch (n) { \
-+ case 8: l2 =((DES_LONG)(*(--(c))))<<24L; \
-+ case 7: l2|=((DES_LONG)(*(--(c))))<<16L; \
-+ case 6: l2|=((DES_LONG)(*(--(c))))<< 8L; \
-+ case 5: l2|=((DES_LONG)(*(--(c)))); \
-+ case 4: l1 =((DES_LONG)(*(--(c))))<<24L; \
-+ case 3: l1|=((DES_LONG)(*(--(c))))<<16L; \
-+ case 2: l1|=((DES_LONG)(*(--(c))))<< 8L; \
-+ case 1: l1|=((DES_LONG)(*(--(c)))); \
-+ } \
-+ }
-+
-+#define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
-+ *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
-+ *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
-+ *((c)++)=(unsigned char)(((l)>>24L)&0xff))
-+
-+/* replacements for htonl and ntohl since I have no idea what to do
-+ * when faced with machines with 8 byte longs. */
-+#define HDRSIZE 4
-+
-+#define n2l(c,l) (l =((DES_LONG)(*((c)++)))<<24L, \
-+ l|=((DES_LONG)(*((c)++)))<<16L, \
-+ l|=((DES_LONG)(*((c)++)))<< 8L, \
-+ l|=((DES_LONG)(*((c)++))))
-+
-+#define l2n(l,c) (*((c)++)=(unsigned char)(((l)>>24L)&0xff), \
-+ *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
-+ *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
-+ *((c)++)=(unsigned char)(((l) )&0xff))
-+
-+/* NOTE - c is not incremented as per l2c */
-+#define l2cn(l1,l2,c,n) { \
-+ c+=n; \
-+ switch (n) { \
-+ case 8: *(--(c))=(unsigned char)(((l2)>>24L)&0xff); \
-+ case 7: *(--(c))=(unsigned char)(((l2)>>16L)&0xff); \
-+ case 6: *(--(c))=(unsigned char)(((l2)>> 8L)&0xff); \
-+ case 5: *(--(c))=(unsigned char)(((l2) )&0xff); \
-+ case 4: *(--(c))=(unsigned char)(((l1)>>24L)&0xff); \
-+ case 3: *(--(c))=(unsigned char)(((l1)>>16L)&0xff); \
-+ case 2: *(--(c))=(unsigned char)(((l1)>> 8L)&0xff); \
-+ case 1: *(--(c))=(unsigned char)(((l1) )&0xff); \
-+ } \
-+ }
-+
-+#define ROTATE(a,n) (((a)>>(n))+((a)<<(32-(n))))
-+
-+/* Don't worry about the LOAD_DATA() stuff, that is used by
-+ * fcrypt() to add it's little bit to the front */
-+
-+#ifdef DES_FCRYPT
-+
-+#define LOAD_DATA_tmp(R,S,u,t,E0,E1) \
-+ { DES_LONG tmp; LOAD_DATA(R,S,u,t,E0,E1,tmp); }
-+
-+#define LOAD_DATA(R,S,u,t,E0,E1,tmp) \
-+ t=R^(R>>16L); \
-+ u=t&E0; t&=E1; \
-+ tmp=(u<<16); u^=R^s[S ]; u^=tmp; \
-+ tmp=(t<<16); t^=R^s[S+1]; t^=tmp
-+#else
-+#define LOAD_DATA_tmp(a,b,c,d,e,f) LOAD_DATA(a,b,c,d,e,f,g)
-+#define LOAD_DATA(R,S,u,t,E0,E1,tmp) \
-+ u=R^s[S ]; \
-+ t=R^s[S+1]
-+#endif
-+
-+/* The changes to this macro may help or hinder, depending on the
-+ * compiler and the achitecture. gcc2 always seems to do well :-).
-+ * Inspired by Dana How
-+ * DO NOT use the alternative version on machines with 8 byte longs.
-+ * It does not seem to work on the Alpha, even when DES_LONG is 4
-+ * bytes, probably an issue of accessing non-word aligned objects :-( */
-+#ifdef DES_PTR
-+
-+/* It recently occured to me that 0^0^0^0^0^0^0 == 0, so there
-+ * is no reason to not xor all the sub items together. This potentially
-+ * saves a register since things can be xored directly into L */
-+
-+#if defined(DES_RISC1) || defined(DES_RISC2)
-+#ifdef DES_RISC1
-+#define D_ENCRYPT(LL,R,S) { \
-+ unsigned int u1,u2,u3; \
-+ LOAD_DATA(R,S,u,t,E0,E1,u1); \
-+ u2=(int)u>>8L; \
-+ u1=(int)u&0xfc; \
-+ u2&=0xfc; \
-+ t=ROTATE(t,4); \
-+ u>>=16L; \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP +u1); \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP+0x200+u2); \
-+ u3=(int)(u>>8L); \
-+ u1=(int)u&0xfc; \
-+ u3&=0xfc; \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP+0x400+u1); \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP+0x600+u3); \
-+ u2=(int)t>>8L; \
-+ u1=(int)t&0xfc; \
-+ u2&=0xfc; \
-+ t>>=16L; \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP+0x100+u1); \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP+0x300+u2); \
-+ u3=(int)t>>8L; \
-+ u1=(int)t&0xfc; \
-+ u3&=0xfc; \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP+0x500+u1); \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP+0x700+u3); }
-+#endif
-+#ifdef DES_RISC2
-+#define D_ENCRYPT(LL,R,S) { \
-+ unsigned int u1,u2,s1,s2; \
-+ LOAD_DATA(R,S,u,t,E0,E1,u1); \
-+ u2=(int)u>>8L; \
-+ u1=(int)u&0xfc; \
-+ u2&=0xfc; \
-+ t=ROTATE(t,4); \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP +u1); \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP+0x200+u2); \
-+ s1=(int)(u>>16L); \
-+ s2=(int)(u>>24L); \
-+ s1&=0xfc; \
-+ s2&=0xfc; \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP+0x400+s1); \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP+0x600+s2); \
-+ u2=(int)t>>8L; \
-+ u1=(int)t&0xfc; \
-+ u2&=0xfc; \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP+0x100+u1); \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP+0x300+u2); \
-+ s1=(int)(t>>16L); \
-+ s2=(int)(t>>24L); \
-+ s1&=0xfc; \
-+ s2&=0xfc; \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP+0x500+s1); \
-+ LL^= *(DES_LONG *)((unsigned char *)des_SP+0x700+s2); }
-+#endif
-+#else
-+#define D_ENCRYPT(LL,R,S) { \
-+ LOAD_DATA_tmp(R,S,u,t,E0,E1); \
-+ t=ROTATE(t,4); \
-+ LL^= \
-+ *(DES_LONG *)((unsigned char *)des_SP +((u )&0xfc))^ \
-+ *(DES_LONG *)((unsigned char *)des_SP+0x200+((u>> 8L)&0xfc))^ \
-+ *(DES_LONG *)((unsigned char *)des_SP+0x400+((u>>16L)&0xfc))^ \
-+ *(DES_LONG *)((unsigned char *)des_SP+0x600+((u>>24L)&0xfc))^ \
-+ *(DES_LONG *)((unsigned char *)des_SP+0x100+((t )&0xfc))^ \
-+ *(DES_LONG *)((unsigned char *)des_SP+0x300+((t>> 8L)&0xfc))^ \
-+ *(DES_LONG *)((unsigned char *)des_SP+0x500+((t>>16L)&0xfc))^ \
-+ *(DES_LONG *)((unsigned char *)des_SP+0x700+((t>>24L)&0xfc)); }
-+#endif
-+
-+#else /* original version */
-+
-+#if defined(DES_RISC1) || defined(DES_RISC2)
-+#ifdef DES_RISC1
-+#define D_ENCRYPT(LL,R,S) {\
-+ unsigned int u1,u2,u3; \
-+ LOAD_DATA(R,S,u,t,E0,E1,u1); \
-+ u>>=2L; \
-+ t=ROTATE(t,6); \
-+ u2=(int)u>>8L; \
-+ u1=(int)u&0x3f; \
-+ u2&=0x3f; \
-+ u>>=16L; \
-+ LL^=des_SPtrans[0][u1]; \
-+ LL^=des_SPtrans[2][u2]; \
-+ u3=(int)u>>8L; \
-+ u1=(int)u&0x3f; \
-+ u3&=0x3f; \
-+ LL^=des_SPtrans[4][u1]; \
-+ LL^=des_SPtrans[6][u3]; \
-+ u2=(int)t>>8L; \
-+ u1=(int)t&0x3f; \
-+ u2&=0x3f; \
-+ t>>=16L; \
-+ LL^=des_SPtrans[1][u1]; \
-+ LL^=des_SPtrans[3][u2]; \
-+ u3=(int)t>>8L; \
-+ u1=(int)t&0x3f; \
-+ u3&=0x3f; \
-+ LL^=des_SPtrans[5][u1]; \
-+ LL^=des_SPtrans[7][u3]; }
-+#endif
-+#ifdef DES_RISC2
-+#define D_ENCRYPT(LL,R,S) {\
-+ unsigned int u1,u2,s1,s2; \
-+ LOAD_DATA(R,S,u,t,E0,E1,u1); \
-+ u>>=2L; \
-+ t=ROTATE(t,6); \
-+ u2=(int)u>>8L; \
-+ u1=(int)u&0x3f; \
-+ u2&=0x3f; \
-+ LL^=des_SPtrans[0][u1]; \
-+ LL^=des_SPtrans[2][u2]; \
-+ s1=(int)u>>16L; \
-+ s2=(int)u>>24L; \
-+ s1&=0x3f; \
-+ s2&=0x3f; \
-+ LL^=des_SPtrans[4][s1]; \
-+ LL^=des_SPtrans[6][s2]; \
-+ u2=(int)t>>8L; \
-+ u1=(int)t&0x3f; \
-+ u2&=0x3f; \
-+ LL^=des_SPtrans[1][u1]; \
-+ LL^=des_SPtrans[3][u2]; \
-+ s1=(int)t>>16; \
-+ s2=(int)t>>24L; \
-+ s1&=0x3f; \
-+ s2&=0x3f; \
-+ LL^=des_SPtrans[5][s1]; \
-+ LL^=des_SPtrans[7][s2]; }
-+#endif
-+
-+#else
-+
-+#define D_ENCRYPT(LL,R,S) {\
-+ LOAD_DATA_tmp(R,S,u,t,E0,E1); \
-+ t=ROTATE(t,4); \
-+ LL^=\
-+ des_SPtrans[0][(u>> 2L)&0x3f]^ \
-+ des_SPtrans[2][(u>>10L)&0x3f]^ \
-+ des_SPtrans[4][(u>>18L)&0x3f]^ \
-+ des_SPtrans[6][(u>>26L)&0x3f]^ \
-+ des_SPtrans[1][(t>> 2L)&0x3f]^ \
-+ des_SPtrans[3][(t>>10L)&0x3f]^ \
-+ des_SPtrans[5][(t>>18L)&0x3f]^ \
-+ des_SPtrans[7][(t>>26L)&0x3f]; }
-+#endif
-+#endif
-+
-+ /* IP and FP
-+ * The problem is more of a geometric problem that random bit fiddling.
-+ 0 1 2 3 4 5 6 7 62 54 46 38 30 22 14 6
-+ 8 9 10 11 12 13 14 15 60 52 44 36 28 20 12 4
-+ 16 17 18 19 20 21 22 23 58 50 42 34 26 18 10 2
-+ 24 25 26 27 28 29 30 31 to 56 48 40 32 24 16 8 0
-+
-+ 32 33 34 35 36 37 38 39 63 55 47 39 31 23 15 7
-+ 40 41 42 43 44 45 46 47 61 53 45 37 29 21 13 5
-+ 48 49 50 51 52 53 54 55 59 51 43 35 27 19 11 3
-+ 56 57 58 59 60 61 62 63 57 49 41 33 25 17 9 1
-+
-+ The output has been subject to swaps of the form
-+ 0 1 -> 3 1 but the odd and even bits have been put into
-+ 2 3 2 0
-+ different words. The main trick is to remember that
-+ t=((l>>size)^r)&(mask);
-+ r^=t;
-+ l^=(t<>(n))^(b))&(m)),\
-+ (b)^=(t),\
-+ (a)^=((t)<<(n)))
-+
-+#define IP(l,r) \
-+ { \
-+ register DES_LONG tt; \
-+ PERM_OP(r,l,tt, 4,0x0f0f0f0fL); \
-+ PERM_OP(l,r,tt,16,0x0000ffffL); \
-+ PERM_OP(r,l,tt, 2,0x33333333L); \
-+ PERM_OP(l,r,tt, 8,0x00ff00ffL); \
-+ PERM_OP(r,l,tt, 1,0x55555555L); \
-+ }
-+
-+#define FP(l,r) \
-+ { \
-+ register DES_LONG tt; \
-+ PERM_OP(l,r,tt, 1,0x55555555L); \
-+ PERM_OP(r,l,tt, 8,0x00ff00ffL); \
-+ PERM_OP(l,r,tt, 2,0x33333333L); \
-+ PERM_OP(r,l,tt,16,0x0000ffffL); \
-+ PERM_OP(l,r,tt, 4,0x0f0f0f0fL); \
-+ }
-+
-+extern const DES_LONG des_SPtrans[8][64];
-+
-+#ifndef NO_FCRYPT
-+#ifndef NOPROTO
-+void fcrypt_body(DES_LONG *out,des_key_schedule ks,
-+ DES_LONG Eswap0, DES_LONG Eswap1);
-+#else
-+void fcrypt_body();
-+#endif
-+#endif /* NO_FCRYPT */
-+
-+#endif
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/des/des_ver.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,60 @@
-+/* crypto/des/des_ver.h */
-+/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
-+ * All rights reserved.
-+ *
-+ * This package is an SSL implementation written
-+ * by Eric Young (eay@cryptsoft.com).
-+ * The implementation was written so as to conform with Netscapes SSL.
-+ *
-+ * This library is free for commercial and non-commercial use as long as
-+ * the following conditions are aheared to. The following conditions
-+ * apply to all code found in this distribution, be it the RC4, RSA,
-+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
-+ * included with this distribution is covered by the same copyright terms
-+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
-+ *
-+ * Copyright remains Eric Young's, and as such any Copyright notices in
-+ * the code are not to be removed.
-+ * If this package is used in a product, Eric Young should be given attribution
-+ * as the author of the parts of the library used.
-+ * This can be in the form of a textual message at program startup or
-+ * in documentation (online or textual) provided with the package.
-+ *
-+ * 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 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 cryptographic software written by
-+ * Eric Young (eay@cryptsoft.com)"
-+ * The word 'cryptographic' can be left out if the rouines from the library
-+ * being used are not cryptographic related :-).
-+ * 4. If you include any Windows specific code (or a derivative thereof) from
-+ * the apps directory (application code) you must include an acknowledgement:
-+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``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)
-+ * 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.
-+ *
-+ * The licence and distribution terms for any publically available version or
-+ * derivative of this code cannot be changed. i.e. this code cannot simply be
-+ * copied and put under another distribution licence
-+ * [including the GNU Public Licence.]
-+ */
-+
-+extern char *DES_version; /* SSLeay version string */
-+extern char *libdes_version; /* old libdes version string */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/des/podd.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,75 @@
-+/* crypto/des/podd.h */
-+/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
-+ * All rights reserved.
-+ *
-+ * This package is an SSL implementation written
-+ * by Eric Young (eay@cryptsoft.com).
-+ * The implementation was written so as to conform with Netscapes SSL.
-+ *
-+ * This library is free for commercial and non-commercial use as long as
-+ * the following conditions are aheared to. The following conditions
-+ * apply to all code found in this distribution, be it the RC4, RSA,
-+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
-+ * included with this distribution is covered by the same copyright terms
-+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
-+ *
-+ * Copyright remains Eric Young's, and as such any Copyright notices in
-+ * the code are not to be removed.
-+ * If this package is used in a product, Eric Young should be given attribution
-+ * as the author of the parts of the library used.
-+ * This can be in the form of a textual message at program startup or
-+ * in documentation (online or textual) provided with the package.
-+ *
-+ * 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 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 cryptographic software written by
-+ * Eric Young (eay@cryptsoft.com)"
-+ * The word 'cryptographic' can be left out if the rouines from the library
-+ * being used are not cryptographic related :-).
-+ * 4. If you include any Windows specific code (or a derivative thereof) from
-+ * the apps directory (application code) you must include an acknowledgement:
-+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``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)
-+ * 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.
-+ *
-+ * The licence and distribution terms for any publically available version or
-+ * derivative of this code cannot be changed. i.e. this code cannot simply be
-+ * copied and put under another distribution licence
-+ * [including the GNU Public Licence.]
-+ */
-+
-+static const unsigned char odd_parity[256]={
-+ 1, 1, 2, 2, 4, 4, 7, 7, 8, 8, 11, 11, 13, 13, 14, 14,
-+ 16, 16, 19, 19, 21, 21, 22, 22, 25, 25, 26, 26, 28, 28, 31, 31,
-+ 32, 32, 35, 35, 37, 37, 38, 38, 41, 41, 42, 42, 44, 44, 47, 47,
-+ 49, 49, 50, 50, 52, 52, 55, 55, 56, 56, 59, 59, 61, 61, 62, 62,
-+ 64, 64, 67, 67, 69, 69, 70, 70, 73, 73, 74, 74, 76, 76, 79, 79,
-+ 81, 81, 82, 82, 84, 84, 87, 87, 88, 88, 91, 91, 93, 93, 94, 94,
-+ 97, 97, 98, 98,100,100,103,103,104,104,107,107,109,109,110,110,
-+112,112,115,115,117,117,118,118,121,121,122,122,124,124,127,127,
-+128,128,131,131,133,133,134,134,137,137,138,138,140,140,143,143,
-+145,145,146,146,148,148,151,151,152,152,155,155,157,157,158,158,
-+161,161,162,162,164,164,167,167,168,168,171,171,173,173,174,174,
-+176,176,179,179,181,181,182,182,185,185,186,186,188,188,191,191,
-+193,193,194,194,196,196,199,199,200,200,203,203,205,205,206,206,
-+208,208,211,211,213,213,214,214,217,217,218,218,220,220,223,223,
-+224,224,227,227,229,229,230,230,233,233,234,234,236,236,239,239,
-+241,241,242,242,244,244,247,247,248,248,251,251,253,253,254,254};
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/des/sk.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,204 @@
-+/* crypto/des/sk.h */
-+/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
-+ * All rights reserved.
-+ *
-+ * This package is an SSL implementation written
-+ * by Eric Young (eay@cryptsoft.com).
-+ * The implementation was written so as to conform with Netscapes SSL.
-+ *
-+ * This library is free for commercial and non-commercial use as long as
-+ * the following conditions are aheared to. The following conditions
-+ * apply to all code found in this distribution, be it the RC4, RSA,
-+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
-+ * included with this distribution is covered by the same copyright terms
-+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
-+ *
-+ * Copyright remains Eric Young's, and as such any Copyright notices in
-+ * the code are not to be removed.
-+ * If this package is used in a product, Eric Young should be given attribution
-+ * as the author of the parts of the library used.
-+ * This can be in the form of a textual message at program startup or
-+ * in documentation (online or textual) provided with the package.
-+ *
-+ * 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 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 cryptographic software written by
-+ * Eric Young (eay@cryptsoft.com)"
-+ * The word 'cryptographic' can be left out if the rouines from the library
-+ * being used are not cryptographic related :-).
-+ * 4. If you include any Windows specific code (or a derivative thereof) from
-+ * the apps directory (application code) you must include an acknowledgement:
-+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``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)
-+ * 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.
-+ *
-+ * The licence and distribution terms for any publically available version or
-+ * derivative of this code cannot be changed. i.e. this code cannot simply be
-+ * copied and put under another distribution licence
-+ * [including the GNU Public Licence.]
-+ */
-+
-+static const DES_LONG des_skb[8][64]={
-+{
-+/* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
-+0x00000000L,0x00000010L,0x20000000L,0x20000010L,
-+0x00010000L,0x00010010L,0x20010000L,0x20010010L,
-+0x00000800L,0x00000810L,0x20000800L,0x20000810L,
-+0x00010800L,0x00010810L,0x20010800L,0x20010810L,
-+0x00000020L,0x00000030L,0x20000020L,0x20000030L,
-+0x00010020L,0x00010030L,0x20010020L,0x20010030L,
-+0x00000820L,0x00000830L,0x20000820L,0x20000830L,
-+0x00010820L,0x00010830L,0x20010820L,0x20010830L,
-+0x00080000L,0x00080010L,0x20080000L,0x20080010L,
-+0x00090000L,0x00090010L,0x20090000L,0x20090010L,
-+0x00080800L,0x00080810L,0x20080800L,0x20080810L,
-+0x00090800L,0x00090810L,0x20090800L,0x20090810L,
-+0x00080020L,0x00080030L,0x20080020L,0x20080030L,
-+0x00090020L,0x00090030L,0x20090020L,0x20090030L,
-+0x00080820L,0x00080830L,0x20080820L,0x20080830L,
-+0x00090820L,0x00090830L,0x20090820L,0x20090830L,
-+},{
-+/* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 */
-+0x00000000L,0x02000000L,0x00002000L,0x02002000L,
-+0x00200000L,0x02200000L,0x00202000L,0x02202000L,
-+0x00000004L,0x02000004L,0x00002004L,0x02002004L,
-+0x00200004L,0x02200004L,0x00202004L,0x02202004L,
-+0x00000400L,0x02000400L,0x00002400L,0x02002400L,
-+0x00200400L,0x02200400L,0x00202400L,0x02202400L,
-+0x00000404L,0x02000404L,0x00002404L,0x02002404L,
-+0x00200404L,0x02200404L,0x00202404L,0x02202404L,
-+0x10000000L,0x12000000L,0x10002000L,0x12002000L,
-+0x10200000L,0x12200000L,0x10202000L,0x12202000L,
-+0x10000004L,0x12000004L,0x10002004L,0x12002004L,
-+0x10200004L,0x12200004L,0x10202004L,0x12202004L,
-+0x10000400L,0x12000400L,0x10002400L,0x12002400L,
-+0x10200400L,0x12200400L,0x10202400L,0x12202400L,
-+0x10000404L,0x12000404L,0x10002404L,0x12002404L,
-+0x10200404L,0x12200404L,0x10202404L,0x12202404L,
-+},{
-+/* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 */
-+0x00000000L,0x00000001L,0x00040000L,0x00040001L,
-+0x01000000L,0x01000001L,0x01040000L,0x01040001L,
-+0x00000002L,0x00000003L,0x00040002L,0x00040003L,
-+0x01000002L,0x01000003L,0x01040002L,0x01040003L,
-+0x00000200L,0x00000201L,0x00040200L,0x00040201L,
-+0x01000200L,0x01000201L,0x01040200L,0x01040201L,
-+0x00000202L,0x00000203L,0x00040202L,0x00040203L,
-+0x01000202L,0x01000203L,0x01040202L,0x01040203L,
-+0x08000000L,0x08000001L,0x08040000L,0x08040001L,
-+0x09000000L,0x09000001L,0x09040000L,0x09040001L,
-+0x08000002L,0x08000003L,0x08040002L,0x08040003L,
-+0x09000002L,0x09000003L,0x09040002L,0x09040003L,
-+0x08000200L,0x08000201L,0x08040200L,0x08040201L,
-+0x09000200L,0x09000201L,0x09040200L,0x09040201L,
-+0x08000202L,0x08000203L,0x08040202L,0x08040203L,
-+0x09000202L,0x09000203L,0x09040202L,0x09040203L,
-+},{
-+/* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 */
-+0x00000000L,0x00100000L,0x00000100L,0x00100100L,
-+0x00000008L,0x00100008L,0x00000108L,0x00100108L,
-+0x00001000L,0x00101000L,0x00001100L,0x00101100L,
-+0x00001008L,0x00101008L,0x00001108L,0x00101108L,
-+0x04000000L,0x04100000L,0x04000100L,0x04100100L,
-+0x04000008L,0x04100008L,0x04000108L,0x04100108L,
-+0x04001000L,0x04101000L,0x04001100L,0x04101100L,
-+0x04001008L,0x04101008L,0x04001108L,0x04101108L,
-+0x00020000L,0x00120000L,0x00020100L,0x00120100L,
-+0x00020008L,0x00120008L,0x00020108L,0x00120108L,
-+0x00021000L,0x00121000L,0x00021100L,0x00121100L,
-+0x00021008L,0x00121008L,0x00021108L,0x00121108L,
-+0x04020000L,0x04120000L,0x04020100L,0x04120100L,
-+0x04020008L,0x04120008L,0x04020108L,0x04120108L,
-+0x04021000L,0x04121000L,0x04021100L,0x04121100L,
-+0x04021008L,0x04121008L,0x04021108L,0x04121108L,
-+},{
-+/* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
-+0x00000000L,0x10000000L,0x00010000L,0x10010000L,
-+0x00000004L,0x10000004L,0x00010004L,0x10010004L,
-+0x20000000L,0x30000000L,0x20010000L,0x30010000L,
-+0x20000004L,0x30000004L,0x20010004L,0x30010004L,
-+0x00100000L,0x10100000L,0x00110000L,0x10110000L,
-+0x00100004L,0x10100004L,0x00110004L,0x10110004L,
-+0x20100000L,0x30100000L,0x20110000L,0x30110000L,
-+0x20100004L,0x30100004L,0x20110004L,0x30110004L,
-+0x00001000L,0x10001000L,0x00011000L,0x10011000L,
-+0x00001004L,0x10001004L,0x00011004L,0x10011004L,
-+0x20001000L,0x30001000L,0x20011000L,0x30011000L,
-+0x20001004L,0x30001004L,0x20011004L,0x30011004L,
-+0x00101000L,0x10101000L,0x00111000L,0x10111000L,
-+0x00101004L,0x10101004L,0x00111004L,0x10111004L,
-+0x20101000L,0x30101000L,0x20111000L,0x30111000L,
-+0x20101004L,0x30101004L,0x20111004L,0x30111004L,
-+},{
-+/* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 */
-+0x00000000L,0x08000000L,0x00000008L,0x08000008L,
-+0x00000400L,0x08000400L,0x00000408L,0x08000408L,
-+0x00020000L,0x08020000L,0x00020008L,0x08020008L,
-+0x00020400L,0x08020400L,0x00020408L,0x08020408L,
-+0x00000001L,0x08000001L,0x00000009L,0x08000009L,
-+0x00000401L,0x08000401L,0x00000409L,0x08000409L,
-+0x00020001L,0x08020001L,0x00020009L,0x08020009L,
-+0x00020401L,0x08020401L,0x00020409L,0x08020409L,
-+0x02000000L,0x0A000000L,0x02000008L,0x0A000008L,
-+0x02000400L,0x0A000400L,0x02000408L,0x0A000408L,
-+0x02020000L,0x0A020000L,0x02020008L,0x0A020008L,
-+0x02020400L,0x0A020400L,0x02020408L,0x0A020408L,
-+0x02000001L,0x0A000001L,0x02000009L,0x0A000009L,
-+0x02000401L,0x0A000401L,0x02000409L,0x0A000409L,
-+0x02020001L,0x0A020001L,0x02020009L,0x0A020009L,
-+0x02020401L,0x0A020401L,0x02020409L,0x0A020409L,
-+},{
-+/* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 */
-+0x00000000L,0x00000100L,0x00080000L,0x00080100L,
-+0x01000000L,0x01000100L,0x01080000L,0x01080100L,
-+0x00000010L,0x00000110L,0x00080010L,0x00080110L,
-+0x01000010L,0x01000110L,0x01080010L,0x01080110L,
-+0x00200000L,0x00200100L,0x00280000L,0x00280100L,
-+0x01200000L,0x01200100L,0x01280000L,0x01280100L,
-+0x00200010L,0x00200110L,0x00280010L,0x00280110L,
-+0x01200010L,0x01200110L,0x01280010L,0x01280110L,
-+0x00000200L,0x00000300L,0x00080200L,0x00080300L,
-+0x01000200L,0x01000300L,0x01080200L,0x01080300L,
-+0x00000210L,0x00000310L,0x00080210L,0x00080310L,
-+0x01000210L,0x01000310L,0x01080210L,0x01080310L,
-+0x00200200L,0x00200300L,0x00280200L,0x00280300L,
-+0x01200200L,0x01200300L,0x01280200L,0x01280300L,
-+0x00200210L,0x00200310L,0x00280210L,0x00280310L,
-+0x01200210L,0x01200310L,0x01280210L,0x01280310L,
-+},{
-+/* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 */
-+0x00000000L,0x04000000L,0x00040000L,0x04040000L,
-+0x00000002L,0x04000002L,0x00040002L,0x04040002L,
-+0x00002000L,0x04002000L,0x00042000L,0x04042000L,
-+0x00002002L,0x04002002L,0x00042002L,0x04042002L,
-+0x00000020L,0x04000020L,0x00040020L,0x04040020L,
-+0x00000022L,0x04000022L,0x00040022L,0x04040022L,
-+0x00002020L,0x04002020L,0x00042020L,0x04042020L,
-+0x00002022L,0x04002022L,0x00042022L,0x04042022L,
-+0x00000800L,0x04000800L,0x00040800L,0x04040800L,
-+0x00000802L,0x04000802L,0x00040802L,0x04040802L,
-+0x00002800L,0x04002800L,0x00042800L,0x04042800L,
-+0x00002802L,0x04002802L,0x00042802L,0x04042802L,
-+0x00000820L,0x04000820L,0x00040820L,0x04040820L,
-+0x00000822L,0x04000822L,0x00040822L,0x04040822L,
-+0x00002820L,0x04002820L,0x00042820L,0x04042820L,
-+0x00002822L,0x04002822L,0x00042822L,0x04042822L,
-+}};
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/des/spr.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,204 @@
-+/* crypto/des/spr.h */
-+/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
-+ * All rights reserved.
-+ *
-+ * This package is an SSL implementation written
-+ * by Eric Young (eay@cryptsoft.com).
-+ * The implementation was written so as to conform with Netscapes SSL.
-+ *
-+ * This library is free for commercial and non-commercial use as long as
-+ * the following conditions are aheared to. The following conditions
-+ * apply to all code found in this distribution, be it the RC4, RSA,
-+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
-+ * included with this distribution is covered by the same copyright terms
-+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
-+ *
-+ * Copyright remains Eric Young's, and as such any Copyright notices in
-+ * the code are not to be removed.
-+ * If this package is used in a product, Eric Young should be given attribution
-+ * as the author of the parts of the library used.
-+ * This can be in the form of a textual message at program startup or
-+ * in documentation (online or textual) provided with the package.
-+ *
-+ * 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 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 cryptographic software written by
-+ * Eric Young (eay@cryptsoft.com)"
-+ * The word 'cryptographic' can be left out if the rouines from the library
-+ * being used are not cryptographic related :-).
-+ * 4. If you include any Windows specific code (or a derivative thereof) from
-+ * the apps directory (application code) you must include an acknowledgement:
-+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``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)
-+ * 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.
-+ *
-+ * The licence and distribution terms for any publically available version or
-+ * derivative of this code cannot be changed. i.e. this code cannot simply be
-+ * copied and put under another distribution licence
-+ * [including the GNU Public Licence.]
-+ */
-+
-+const DES_LONG des_SPtrans[8][64]={
-+{
-+/* nibble 0 */
-+0x02080800L, 0x00080000L, 0x02000002L, 0x02080802L,
-+0x02000000L, 0x00080802L, 0x00080002L, 0x02000002L,
-+0x00080802L, 0x02080800L, 0x02080000L, 0x00000802L,
-+0x02000802L, 0x02000000L, 0x00000000L, 0x00080002L,
-+0x00080000L, 0x00000002L, 0x02000800L, 0x00080800L,
-+0x02080802L, 0x02080000L, 0x00000802L, 0x02000800L,
-+0x00000002L, 0x00000800L, 0x00080800L, 0x02080002L,
-+0x00000800L, 0x02000802L, 0x02080002L, 0x00000000L,
-+0x00000000L, 0x02080802L, 0x02000800L, 0x00080002L,
-+0x02080800L, 0x00080000L, 0x00000802L, 0x02000800L,
-+0x02080002L, 0x00000800L, 0x00080800L, 0x02000002L,
-+0x00080802L, 0x00000002L, 0x02000002L, 0x02080000L,
-+0x02080802L, 0x00080800L, 0x02080000L, 0x02000802L,
-+0x02000000L, 0x00000802L, 0x00080002L, 0x00000000L,
-+0x00080000L, 0x02000000L, 0x02000802L, 0x02080800L,
-+0x00000002L, 0x02080002L, 0x00000800L, 0x00080802L,
-+},{
-+/* nibble 1 */
-+0x40108010L, 0x00000000L, 0x00108000L, 0x40100000L,
-+0x40000010L, 0x00008010L, 0x40008000L, 0x00108000L,
-+0x00008000L, 0x40100010L, 0x00000010L, 0x40008000L,
-+0x00100010L, 0x40108000L, 0x40100000L, 0x00000010L,
-+0x00100000L, 0x40008010L, 0x40100010L, 0x00008000L,
-+0x00108010L, 0x40000000L, 0x00000000L, 0x00100010L,
-+0x40008010L, 0x00108010L, 0x40108000L, 0x40000010L,
-+0x40000000L, 0x00100000L, 0x00008010L, 0x40108010L,
-+0x00100010L, 0x40108000L, 0x40008000L, 0x00108010L,
-+0x40108010L, 0x00100010L, 0x40000010L, 0x00000000L,
-+0x40000000L, 0x00008010L, 0x00100000L, 0x40100010L,
-+0x00008000L, 0x40000000L, 0x00108010L, 0x40008010L,
-+0x40108000L, 0x00008000L, 0x00000000L, 0x40000010L,
-+0x00000010L, 0x40108010L, 0x00108000L, 0x40100000L,
-+0x40100010L, 0x00100000L, 0x00008010L, 0x40008000L,
-+0x40008010L, 0x00000010L, 0x40100000L, 0x00108000L,
-+},{
-+/* nibble 2 */
-+0x04000001L, 0x04040100L, 0x00000100L, 0x04000101L,
-+0x00040001L, 0x04000000L, 0x04000101L, 0x00040100L,
-+0x04000100L, 0x00040000L, 0x04040000L, 0x00000001L,
-+0x04040101L, 0x00000101L, 0x00000001L, 0x04040001L,
-+0x00000000L, 0x00040001L, 0x04040100L, 0x00000100L,
-+0x00000101L, 0x04040101L, 0x00040000L, 0x04000001L,
-+0x04040001L, 0x04000100L, 0x00040101L, 0x04040000L,
-+0x00040100L, 0x00000000L, 0x04000000L, 0x00040101L,
-+0x04040100L, 0x00000100L, 0x00000001L, 0x00040000L,
-+0x00000101L, 0x00040001L, 0x04040000L, 0x04000101L,
-+0x00000000L, 0x04040100L, 0x00040100L, 0x04040001L,
-+0x00040001L, 0x04000000L, 0x04040101L, 0x00000001L,
-+0x00040101L, 0x04000001L, 0x04000000L, 0x04040101L,
-+0x00040000L, 0x04000100L, 0x04000101L, 0x00040100L,
-+0x04000100L, 0x00000000L, 0x04040001L, 0x00000101L,
-+0x04000001L, 0x00040101L, 0x00000100L, 0x04040000L,
-+},{
-+/* nibble 3 */
-+0x00401008L, 0x10001000L, 0x00000008L, 0x10401008L,
-+0x00000000L, 0x10400000L, 0x10001008L, 0x00400008L,
-+0x10401000L, 0x10000008L, 0x10000000L, 0x00001008L,
-+0x10000008L, 0x00401008L, 0x00400000L, 0x10000000L,
-+0x10400008L, 0x00401000L, 0x00001000L, 0x00000008L,
-+0x00401000L, 0x10001008L, 0x10400000L, 0x00001000L,
-+0x00001008L, 0x00000000L, 0x00400008L, 0x10401000L,
-+0x10001000L, 0x10400008L, 0x10401008L, 0x00400000L,
-+0x10400008L, 0x00001008L, 0x00400000L, 0x10000008L,
-+0x00401000L, 0x10001000L, 0x00000008L, 0x10400000L,
-+0x10001008L, 0x00000000L, 0x00001000L, 0x00400008L,
-+0x00000000L, 0x10400008L, 0x10401000L, 0x00001000L,
-+0x10000000L, 0x10401008L, 0x00401008L, 0x00400000L,
-+0x10401008L, 0x00000008L, 0x10001000L, 0x00401008L,
-+0x00400008L, 0x00401000L, 0x10400000L, 0x10001008L,
-+0x00001008L, 0x10000000L, 0x10000008L, 0x10401000L,
-+},{
-+/* nibble 4 */
-+0x08000000L, 0x00010000L, 0x00000400L, 0x08010420L,
-+0x08010020L, 0x08000400L, 0x00010420L, 0x08010000L,
-+0x00010000L, 0x00000020L, 0x08000020L, 0x00010400L,
-+0x08000420L, 0x08010020L, 0x08010400L, 0x00000000L,
-+0x00010400L, 0x08000000L, 0x00010020L, 0x00000420L,
-+0x08000400L, 0x00010420L, 0x00000000L, 0x08000020L,
-+0x00000020L, 0x08000420L, 0x08010420L, 0x00010020L,
-+0x08010000L, 0x00000400L, 0x00000420L, 0x08010400L,
-+0x08010400L, 0x08000420L, 0x00010020L, 0x08010000L,
-+0x00010000L, 0x00000020L, 0x08000020L, 0x08000400L,
-+0x08000000L, 0x00010400L, 0x08010420L, 0x00000000L,
-+0x00010420L, 0x08000000L, 0x00000400L, 0x00010020L,
-+0x08000420L, 0x00000400L, 0x00000000L, 0x08010420L,
-+0x08010020L, 0x08010400L, 0x00000420L, 0x00010000L,
-+0x00010400L, 0x08010020L, 0x08000400L, 0x00000420L,
-+0x00000020L, 0x00010420L, 0x08010000L, 0x08000020L,
-+},{
-+/* nibble 5 */
-+0x80000040L, 0x00200040L, 0x00000000L, 0x80202000L,
-+0x00200040L, 0x00002000L, 0x80002040L, 0x00200000L,
-+0x00002040L, 0x80202040L, 0x00202000L, 0x80000000L,
-+0x80002000L, 0x80000040L, 0x80200000L, 0x00202040L,
-+0x00200000L, 0x80002040L, 0x80200040L, 0x00000000L,
-+0x00002000L, 0x00000040L, 0x80202000L, 0x80200040L,
-+0x80202040L, 0x80200000L, 0x80000000L, 0x00002040L,
-+0x00000040L, 0x00202000L, 0x00202040L, 0x80002000L,
-+0x00002040L, 0x80000000L, 0x80002000L, 0x00202040L,
-+0x80202000L, 0x00200040L, 0x00000000L, 0x80002000L,
-+0x80000000L, 0x00002000L, 0x80200040L, 0x00200000L,
-+0x00200040L, 0x80202040L, 0x00202000L, 0x00000040L,
-+0x80202040L, 0x00202000L, 0x00200000L, 0x80002040L,
-+0x80000040L, 0x80200000L, 0x00202040L, 0x00000000L,
-+0x00002000L, 0x80000040L, 0x80002040L, 0x80202000L,
-+0x80200000L, 0x00002040L, 0x00000040L, 0x80200040L,
-+},{
-+/* nibble 6 */
-+0x00004000L, 0x00000200L, 0x01000200L, 0x01000004L,
-+0x01004204L, 0x00004004L, 0x00004200L, 0x00000000L,
-+0x01000000L, 0x01000204L, 0x00000204L, 0x01004000L,
-+0x00000004L, 0x01004200L, 0x01004000L, 0x00000204L,
-+0x01000204L, 0x00004000L, 0x00004004L, 0x01004204L,
-+0x00000000L, 0x01000200L, 0x01000004L, 0x00004200L,
-+0x01004004L, 0x00004204L, 0x01004200L, 0x00000004L,
-+0x00004204L, 0x01004004L, 0x00000200L, 0x01000000L,
-+0x00004204L, 0x01004000L, 0x01004004L, 0x00000204L,
-+0x00004000L, 0x00000200L, 0x01000000L, 0x01004004L,
-+0x01000204L, 0x00004204L, 0x00004200L, 0x00000000L,
-+0x00000200L, 0x01000004L, 0x00000004L, 0x01000200L,
-+0x00000000L, 0x01000204L, 0x01000200L, 0x00004200L,
-+0x00000204L, 0x00004000L, 0x01004204L, 0x01000000L,
-+0x01004200L, 0x00000004L, 0x00004004L, 0x01004204L,
-+0x01000004L, 0x01004200L, 0x01004000L, 0x00004004L,
-+},{
-+/* nibble 7 */
-+0x20800080L, 0x20820000L, 0x00020080L, 0x00000000L,
-+0x20020000L, 0x00800080L, 0x20800000L, 0x20820080L,
-+0x00000080L, 0x20000000L, 0x00820000L, 0x00020080L,
-+0x00820080L, 0x20020080L, 0x20000080L, 0x20800000L,
-+0x00020000L, 0x00820080L, 0x00800080L, 0x20020000L,
-+0x20820080L, 0x20000080L, 0x00000000L, 0x00820000L,
-+0x20000000L, 0x00800000L, 0x20020080L, 0x20800080L,
-+0x00800000L, 0x00020000L, 0x20820000L, 0x00000080L,
-+0x00800000L, 0x00020000L, 0x20000080L, 0x20820080L,
-+0x00020080L, 0x20000000L, 0x00000000L, 0x00820000L,
-+0x20800080L, 0x20020080L, 0x20020000L, 0x00800080L,
-+0x20820000L, 0x00000080L, 0x00800080L, 0x20020000L,
-+0x20820080L, 0x00800000L, 0x20800000L, 0x20000080L,
-+0x00820000L, 0x00020080L, 0x20020080L, 0x20800000L,
-+0x00000080L, 0x20820000L, 0x00820080L, 0x00000000L,
-+0x20000000L, 0x20800080L, 0x00020000L, 0x00820080L,
-+}};
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/klips-crypto/aes.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,97 @@
-+// I retain copyright in this code but I encourage its free use provided
-+// that I don't carry any responsibility for the results. I am especially
-+// happy to see it used in free and open source software. If you do use
-+// it I would appreciate an acknowledgement of its origin in the code or
-+// the product that results and I would also appreciate knowing a little
-+// about the use to which it is being put. I am grateful to Frank Yellin
-+// for some ideas that are used in this implementation.
-+//
-+// Dr B. R. Gladman 6th April 2001.
-+//
-+// This is an implementation of the AES encryption algorithm (Rijndael)
-+// designed by Joan Daemen and Vincent Rijmen. This version is designed
-+// to provide both fixed and dynamic block and key lengths and can also
-+// run with either big or little endian internal byte order (see aes.h).
-+// It inputs block and key lengths in bytes with the legal values being
-+// 16, 24 and 32.
-+
-+/*
-+ * Modified by Jari Ruusu, May 1 2001
-+ * - Fixed some compile warnings, code was ok but gcc warned anyway.
-+ * - Changed basic types: byte -> unsigned char, word -> u_int32_t
-+ * - Major name space cleanup: Names visible to outside now begin
-+ * with "aes_" or "AES_". A lot of stuff moved from aes.h to aes.c
-+ * - Removed C++ and DLL support as part of name space cleanup.
-+ * - Eliminated unnecessary recomputation of tables. (actual bug fix)
-+ * - Merged precomputed constant tables to aes.c file.
-+ * - Removed data alignment restrictions for portability reasons.
-+ * - Made block and key lengths accept bit count (128/192/256)
-+ * as well byte count (16/24/32).
-+ * - Removed all error checks. This change also eliminated the need
-+ * to preinitialize the context struct to zero.
-+ * - Removed some totally unused constants.
-+ */
-+
-+#ifndef _AES_H
-+#define _AES_H
-+
-+#if defined(__linux__) && defined(__KERNEL__)
-+# include
-+#else
-+# include
-+#endif
-+
-+// CONFIGURATION OPTIONS (see also aes.c)
-+//
-+// Define AES_BLOCK_SIZE to set the cipher block size (16, 24 or 32) or
-+// leave this undefined for dynamically variable block size (this will
-+// result in much slower code).
-+// IMPORTANT NOTE: AES_BLOCK_SIZE is in BYTES (16, 24, 32 or undefined). If
-+// left undefined a slower version providing variable block length is compiled
-+
-+#define AES_BLOCK_SIZE 16
-+
-+// The number of key schedule words for different block and key lengths
-+// allowing for method of computation which requires the length to be a
-+// multiple of the key length
-+//
-+// Nk = 4 6 8
-+// -------------
-+// Nb = 4 | 60 60 64
-+// 6 | 96 90 96
-+// 8 | 120 120 120
-+
-+#if !defined(AES_BLOCK_SIZE) || (AES_BLOCK_SIZE == 32)
-+#define AES_KS_LENGTH 120
-+#define AES_RC_LENGTH 29
-+#else
-+#define AES_KS_LENGTH 4 * AES_BLOCK_SIZE
-+#define AES_RC_LENGTH (9 * AES_BLOCK_SIZE) / 8 - 8
-+#endif
-+
-+typedef struct
-+{
-+ u_int32_t aes_Nkey; // the number of words in the key input block
-+ u_int32_t aes_Nrnd; // the number of cipher rounds
-+ u_int32_t aes_e_key[AES_KS_LENGTH]; // the encryption key schedule
-+ u_int32_t aes_d_key[AES_KS_LENGTH]; // the decryption key schedule
-+#if !defined(AES_BLOCK_SIZE)
-+ u_int32_t aes_Ncol; // the number of columns in the cipher state
-+#endif
-+} aes_context;
-+
-+// THE CIPHER INTERFACE
-+
-+#if !defined(AES_BLOCK_SIZE)
-+extern void aes_set_blk(aes_context *, const int);
-+#endif
-+extern void aes_set_key(aes_context *, const unsigned char [], const int, const int);
-+extern void aes_encrypt(const aes_context *, const unsigned char [], unsigned char []);
-+extern void aes_decrypt(const aes_context *, const unsigned char [], unsigned char []);
-+
-+// The block length inputs to aes_set_block and aes_set_key are in numbers
-+// of bytes or bits. The calls to subroutines must be made in the above
-+// order but multiple calls can be made without repeating earlier calls
-+// if their parameters have not changed.
-+
-+#endif // _AES_H
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/klips-crypto/aes_cbc.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,4 @@
-+/* Glue header */
-+#include "aes.h"
-+int AES_set_key(aes_context *aes_ctx, const u_int8_t * key, int keysize);
-+int AES_cbc_encrypt(aes_context *ctx, const u_int8_t * in, u_int8_t * out, int ilen, const u_int8_t * iv, int encrypt);
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/klips-crypto/aes_xcbc_mac.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,12 @@
-+#ifndef _AES_XCBC_MAC_H
-+#define _AES_XCBC_MAC_H
-+
-+typedef u_int32_t aes_block[4];
-+typedef struct {
-+ aes_context ctx_k1;
-+ aes_block k2;
-+ aes_block k3;
-+} aes_context_mac;
-+int AES_xcbc_mac_set_key(aes_context_mac *ctxm, const u_int8_t *key, int keylen);
-+int AES_xcbc_mac_hash(const aes_context_mac *ctxm, const u_int8_t * in, int ilen, u_int8_t hash[16]);
-+#endif /* _AES_XCBC_MAC_H */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/klips-crypto/cbc_generic.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,110 @@
-+#ifndef _CBC_GENERIC_H
-+#define _CBC_GENERIC_H
-+/*
-+ * CBC macro helpers
-+ *
-+ * Author: JuanJo Ciarlante
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ */
-+
-+/*
-+ * Heavily inspired in loop_AES
-+ */
-+#define CBC_IMPL_BLK16(name, ctx_type, addr_type, enc_func, dec_func) \
-+int name(ctx_type *ctx, const u_int8_t * in, u_int8_t * out, int ilen, const u_int8_t * iv, int encrypt) { \
-+ int ret=ilen, pos; \
-+ const u_int32_t *iv_i; \
-+ if ((ilen) % 16) return 0; \
-+ if (encrypt) { \
-+ pos=0; \
-+ while(pos=0) { \
-+ dec_func(ctx, (const addr_type) in, (addr_type) out); \
-+ if (pos==0) \
-+ iv_i=(const u_int32_t*) (iv); \
-+ else \
-+ iv_i=(const u_int32_t*) (in-16); \
-+ *((u_int32_t *)(&out[ 0])) ^= iv_i[0]; \
-+ *((u_int32_t *)(&out[ 4])) ^= iv_i[1]; \
-+ *((u_int32_t *)(&out[ 8])) ^= iv_i[2]; \
-+ *((u_int32_t *)(&out[12])) ^= iv_i[3]; \
-+ in-=16; \
-+ out-=16; \
-+ pos-=16; \
-+ } \
-+ } \
-+ return ret; \
-+}
-+#define CBC_IMPL_BLK8(name, ctx_type, addr_type, enc_func, dec_func) \
-+int name(ctx_type *ctx, u_int8_t * in, u_int8_t * out, int ilen, const u_int8_t * iv, int encrypt) { \
-+ int ret=ilen, pos; \
-+ const u_int32_t *iv_i; \
-+ if ((ilen) % 8) return 0; \
-+ if (encrypt) { \
-+ pos=0; \
-+ while(pos=0) { \
-+ dec_func(ctx, (const addr_type)in, (addr_type)out); \
-+ if (pos==0) \
-+ iv_i=(const u_int32_t*) (iv); \
-+ else \
-+ iv_i=(const u_int32_t*) (in-8); \
-+ *((u_int32_t *)(&out[ 0])) ^= iv_i[0]; \
-+ *((u_int32_t *)(&out[ 4])) ^= iv_i[1]; \
-+ in-=8; \
-+ out-=8; \
-+ pos-=8; \
-+ } \
-+ } \
-+ return ret; \
-+}
-+#define CBC_DECL(name, ctx_type) \
-+int name(ctx_type *ctx, u_int8_t * in, u_int8_t * out, int ilen, const u_int8_t * iv, int encrypt)
-+/*
-+Eg.:
-+CBC_IMPL_BLK16(AES_cbc_encrypt, aes_context, u_int8_t *, aes_encrypt, aes_decrypt);
-+CBC_DECL(AES_cbc_encrypt, aes_context);
-+*/
-+#endif /* _CBC_GENERIC_H */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/klips-crypto/des.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,286 @@
-+/* crypto/des/des.org */
-+/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
-+ * All rights reserved.
-+ *
-+ * This package is an SSL implementation written
-+ * by Eric Young (eay@cryptsoft.com).
-+ * The implementation was written so as to conform with Netscapes SSL.
-+ *
-+ * This library is free for commercial and non-commercial use as long as
-+ * the following conditions are aheared to. The following conditions
-+ * apply to all code found in this distribution, be it the RC4, RSA,
-+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
-+ * included with this distribution is covered by the same copyright terms
-+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
-+ *
-+ * Copyright remains Eric Young's, and as such any Copyright notices in
-+ * the code are not to be removed.
-+ * If this package is used in a product, Eric Young should be given attribution
-+ * as the author of the parts of the library used.
-+ * This can be in the form of a textual message at program startup or
-+ * in documentation (online or textual) provided with the package.
-+ *
-+ * 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 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 cryptographic software written by
-+ * Eric Young (eay@cryptsoft.com)"
-+ * The word 'cryptographic' can be left out if the rouines from the library
-+ * being used are not cryptographic related :-).
-+ * 4. If you include any Windows specific code (or a derivative thereof) from
-+ * the apps directory (application code) you must include an acknowledgement:
-+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``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)
-+ * 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.
-+ *
-+ * The licence and distribution terms for any publically available version or
-+ * derivative of this code cannot be changed. i.e. this code cannot simply be
-+ * copied and put under another distribution licence
-+ * [including the GNU Public Licence.]
-+ */
-+
-+/* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
-+ *
-+ * Always modify des.org since des.h is automatically generated from
-+ * it during SSLeay configuration.
-+ *
-+ * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
-+ */
-+
-+#ifndef HEADER_DES_H
-+#define HEADER_DES_H
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+
-+/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
-+ * %20 speed up (longs are 8 bytes, int's are 4). */
-+/* Must be unsigned int on ia64/Itanium or DES breaks badly */
-+
-+#ifdef __KERNEL__
-+#include
-+#else
-+#include
-+#endif
-+
-+#ifndef DES_LONG
-+#define DES_LONG u_int32_t
-+#endif
-+
-+typedef unsigned char des_cblock[8];
-+typedef struct { des_cblock ks; } des_key_schedule[16];
-+
-+#define DES_KEY_SZ (sizeof(des_cblock))
-+#define DES_SCHEDULE_SZ (sizeof(des_key_schedule))
-+
-+#define DES_ENCRYPT 1
-+#define DES_DECRYPT 0
-+
-+#define DES_CBC_MODE 0
-+#define DES_PCBC_MODE 1
-+
-+#define des_ecb2_encrypt(i,o,k1,k2,e) \
-+ des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e))
-+
-+#define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \
-+ des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e))
-+
-+#define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \
-+ des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e))
-+
-+#define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \
-+ des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n))
-+
-+#define C_Block des_cblock
-+#define Key_schedule des_key_schedule
-+#ifdef KERBEROS
-+#define ENCRYPT DES_ENCRYPT
-+#define DECRYPT DES_DECRYPT
-+#endif
-+#define KEY_SZ DES_KEY_SZ
-+#define string_to_key des_string_to_key
-+#define read_pw_string des_read_pw_string
-+#define random_key des_random_key
-+#define pcbc_encrypt des_pcbc_encrypt
-+#define set_key des_set_key
-+#define key_sched des_key_sched
-+#define ecb_encrypt des_ecb_encrypt
-+#define cbc_encrypt des_cbc_encrypt
-+#define ncbc_encrypt des_ncbc_encrypt
-+#define xcbc_encrypt des_xcbc_encrypt
-+#define cbc_cksum des_cbc_cksum
-+#define quad_cksum des_quad_cksum
-+
-+/* For compatibility with the MIT lib - eay 20/05/92 */
-+typedef des_key_schedule bit_64;
-+#define des_fixup_key_parity des_set_odd_parity
-+#define des_check_key_parity check_parity
-+
-+extern int des_check_key; /* defaults to false */
-+extern int des_rw_mode; /* defaults to DES_PCBC_MODE */
-+
-+/* The next line is used to disable full ANSI prototypes, if your
-+ * compiler has problems with the prototypes, make sure this line always
-+ * evaluates to true :-) */
-+#if defined(MSDOS) || defined(__STDC__)
-+#undef NOPROTO
-+#endif
-+#ifndef NOPROTO
-+char *des_options(void);
-+void des_ecb3_encrypt(des_cblock *input,des_cblock *output,
-+ des_key_schedule ks1,des_key_schedule ks2,
-+ des_key_schedule ks3, int enc);
-+DES_LONG des_cbc_cksum(des_cblock *input,des_cblock *output,
-+ long length,des_key_schedule schedule,des_cblock *ivec);
-+void des_cbc_encrypt(des_cblock *input,des_cblock *output,long length,
-+ des_key_schedule schedule,des_cblock *ivec,int enc);
-+void des_ncbc_encrypt(des_cblock *input,des_cblock *output,long length,
-+ des_key_schedule schedule,des_cblock *ivec,int enc);
-+void des_xcbc_encrypt(des_cblock *input,des_cblock *output,long length,
-+ des_key_schedule schedule,des_cblock *ivec,
-+ des_cblock *inw,des_cblock *outw,int enc);
-+void des_cfb_encrypt(unsigned char *in,unsigned char *out,int numbits,
-+ long length,des_key_schedule schedule,des_cblock *ivec,int enc);
-+void des_ecb_encrypt(des_cblock *input,des_cblock *output,
-+ des_key_schedule ks,int enc);
-+void des_encrypt(DES_LONG *data,des_key_schedule ks, int enc);
-+void des_encrypt2(DES_LONG *data,des_key_schedule ks, int enc);
-+void des_encrypt3(DES_LONG *data, des_key_schedule ks1,
-+ des_key_schedule ks2, des_key_schedule ks3);
-+void des_decrypt3(DES_LONG *data, des_key_schedule ks1,
-+ des_key_schedule ks2, des_key_schedule ks3);
-+void des_ede3_cbc_encrypt(des_cblock *input, des_cblock *output,
-+ long length, des_key_schedule ks1, des_key_schedule ks2,
-+ des_key_schedule ks3, des_cblock *ivec, int enc);
-+void des_ede3_cfb64_encrypt(unsigned char *in, unsigned char *out,
-+ long length, des_key_schedule ks1, des_key_schedule ks2,
-+ des_key_schedule ks3, des_cblock *ivec, int *num, int enc);
-+void des_ede3_ofb64_encrypt(unsigned char *in, unsigned char *out,
-+ long length, des_key_schedule ks1, des_key_schedule ks2,
-+ des_key_schedule ks3, des_cblock *ivec, int *num);
-+
-+void des_xwhite_in2out(des_cblock (*des_key), des_cblock (*in_white),
-+ des_cblock (*out_white));
-+
-+int des_enc_read(int fd,char *buf,int len,des_key_schedule sched,
-+ des_cblock *iv);
-+int des_enc_write(int fd,char *buf,int len,des_key_schedule sched,
-+ des_cblock *iv);
-+char *des_fcrypt(const char *buf,const char *salt, char *ret);
-+
-+void des_ofb_encrypt(unsigned char *in,unsigned char *out,
-+ int numbits,long length,des_key_schedule schedule,des_cblock *ivec);
-+void des_pcbc_encrypt(des_cblock *input,des_cblock *output,long length,
-+ des_key_schedule schedule,des_cblock *ivec,int enc);
-+DES_LONG des_quad_cksum(des_cblock *input,des_cblock *output,
-+ long length,int out_count,des_cblock *seed);
-+void des_random_seed(des_cblock key);
-+void des_random_key(des_cblock ret);
-+int des_read_password(des_cblock *key,char *prompt,int verify);
-+int des_read_2passwords(des_cblock *key1,des_cblock *key2,
-+ char *prompt,int verify);
-+int des_read_pw_string(char *buf,int length,char *prompt,int verify);
-+void des_set_odd_parity(des_cblock *key);
-+int des_is_weak_key(des_cblock *key);
-+int des_set_key(des_cblock *key,des_key_schedule schedule);
-+int des_key_sched(des_cblock *key,des_key_schedule schedule);
-+void des_string_to_key(char *str,des_cblock *key);
-+void des_string_to_2keys(char *str,des_cblock *key1,des_cblock *key2);
-+void des_cfb64_encrypt(unsigned char *in, unsigned char *out, long length,
-+ des_key_schedule schedule, des_cblock *ivec, int *num, int enc);
-+void des_ofb64_encrypt(unsigned char *in, unsigned char *out, long length,
-+ des_key_schedule schedule, des_cblock *ivec, int *num);
-+int des_read_pw(char *buf, char *buff, int size, char *prompt, int verify);
-+
-+/* Extra functions from Mark Murray */
-+/* The following functions are not in the normal unix build or the
-+ * SSLeay build. When using the SSLeay build, use RAND_seed()
-+ * and RAND_bytes() instead. */
-+int des_new_random_key(des_cblock *key);
-+void des_init_random_number_generator(des_cblock *key);
-+void des_set_random_generator_seed(des_cblock *key);
-+void des_set_sequence_number(des_cblock new_sequence_number);
-+void des_generate_random_block(des_cblock *block);
-+
-+#else
-+
-+char *des_options();
-+void des_ecb3_encrypt();
-+DES_LONG des_cbc_cksum();
-+void des_cbc_encrypt();
-+void des_ncbc_encrypt();
-+void des_xcbc_encrypt();
-+void des_cfb_encrypt();
-+void des_ede3_cfb64_encrypt();
-+void des_ede3_ofb64_encrypt();
-+void des_ecb_encrypt();
-+void des_encrypt();
-+void des_encrypt2();
-+void des_encrypt3();
-+void des_decrypt3();
-+void des_ede3_cbc_encrypt();
-+int des_enc_read();
-+int des_enc_write();
-+char *des_fcrypt();
-+#ifdef PERL5
-+char *des_crypt();
-+#else
-+char *crypt();
-+#endif
-+void des_ofb_encrypt();
-+void des_pcbc_encrypt();
-+DES_LONG des_quad_cksum();
-+void des_random_seed();
-+void des_random_key();
-+int des_read_password();
-+int des_read_2passwords();
-+int des_read_pw_string();
-+void des_set_odd_parity();
-+int des_is_weak_key();
-+int des_set_key();
-+int des_key_sched();
-+void des_string_to_key();
-+void des_string_to_2keys();
-+void des_cfb64_encrypt();
-+void des_ofb64_encrypt();
-+int des_read_pw();
-+void des_xwhite_in2out();
-+
-+/* Extra functions from Mark Murray */
-+/* The following functions are not in the normal unix build or the
-+ * SSLeay build. When using the SSLeay build, use RAND_seed()
-+ * and RAND_bytes() instead. */
-+#ifdef FreeBSD
-+int des_new_random_key();
-+void des_init_random_number_generator();
-+void des_set_random_generator_seed();
-+void des_set_sequence_number();
-+void des_generate_random_block();
-+#endif
-+
-+#endif
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/klips-crypto/ocf_assist.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,63 @@
-+#ifndef _OCF_ASSIST_H
-+#define _OCF_ASSIST_H 1
-+/****************************************************************************/
-+/* The various hw_assist functions return these bits */
-+
-+#define OCF_PROVIDES_AES 0x0001
-+#define OCF_PROVIDES_DES_3DES 0x0002
-+
-+/****************************************************************************/
-+#if !defined(OCF_ASSIST)
-+/****************************************************************************/
-+/*
-+ * stub it all out just in case
-+ */
-+
-+#define ocf_aes_assist() (0)
-+#define ocf_aes_set_key(a1,a2,a3,a4)
-+#define ocf_aes_cbc_encrypt(a1,a2,a3,a4,a5,a6)
-+
-+#define ocf_des_assist() (0)
-+#define ocf_des_set_key(a, b)
-+#define ocf_des_cbc_encrypt(a1,a2,a3,a4,a5,a6)
-+#define ocf_des_encrypt(a1,a2,a3)
-+#define ocf_des_ede3_cbc_encrypt(a1,a2,a3,a4,a5,a6,a7,a8)
-+#define ocf_des_ncbc_encrypt(a1,a2,a3,a4,a5,a6)
-+#define ocf_des_ecb_encrypt(a1,a2,a3,a4)
-+
-+/****************************************************************************/
-+#else
-+/****************************************************************************/
-+
-+#include
-+#include "aes.h"
-+#include "des.h"
-+
-+extern int ocf_aes_assist(void);
-+extern void ocf_aes_set_key(aes_context *cx, const unsigned char in_key[],
-+ int n_bytes, const int f);
-+extern int ocf_aes_cbc_encrypt(aes_context *ctx, const u_int8_t *input,
-+ u_int8_t *output,
-+ long length,
-+ const u_int8_t *ivec, int enc);
-+
-+extern int ocf_des_assist(void);
-+extern int ocf_des_set_key(des_cblock *key, des_key_schedule schedule);
-+extern void ocf_des_cbc_encrypt(des_cblock *input, des_cblock *output,
-+ long length, des_key_schedule schedule,
-+ des_cblock *ivec, int enc);
-+extern void ocf_des_encrypt(DES_LONG *data, des_key_schedule ks, int enc);
-+extern void ocf_des_ede3_cbc_encrypt(des_cblock *input, des_cblock *output,
-+ long length, des_key_schedule ks1,
-+ des_key_schedule ks2, des_key_schedule ks3,
-+ des_cblock *ivec, int enc);
-+extern void ocf_des_ncbc_encrypt(des_cblock *input, des_cblock *output,
-+ long length, des_key_schedule schedule,
-+ des_cblock *ivec, int enc);
-+extern void ocf_des_ecb_encrypt(des_cblock *input, des_cblock *output,
-+ des_key_schedule ks, int enc);
-+
-+/****************************************************************************/
-+#endif /* !defined(OCF_ASSIST) */
-+/****************************************************************************/
-+#endif /* _OCF_ASSIST_H */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,569 @@
-+#ifndef _OPENSWAN_H
-+/*
-+ * header file for FreeS/WAN library functions
-+ * Copyright (C) 1998, 1999, 2000 Henry Spencer.
-+ * Copyright (C) 1999, 2000, 2001 Richard Guy Briggs
-+ *
-+ * This library is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU Library General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version. See .
-+ *
-+ * This library 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 Library General Public
-+ * License for more details.
-+ *
-+ * RCSID $Id: openswan.h,v 1.95 2005/08/25 01:24:40 paul Exp $
-+ */
-+#define _OPENSWAN_H /* seen it, no need to see it again */
-+
-+/* you'd think this should be builtin to compiler... */
-+#ifndef TRUE
-+#define TRUE 1
-+#endif
-+
-+#ifndef FALSE
-+#define FALSE 0
-+#endif
-+
-+/*
-+ * When using uclibc, malloc(0) returns NULL instead of success. This is
-+ * to make it use the inbuilt work-around.
-+ * See: http://osdir.com/ml/network.freeswan.devel/2003-11/msg00009.html
-+ */
-+#ifdef __UCLIBC__
-+# if !defined(__MALLOC_GLIBC_COMPAT__) && !defined(MALLOC_GLIBC_COMPAT)
-+# warning Please compile uclibc with GLIBC_COMPATIBILITY defined
-+# endif
-+#endif
-+
-+
-+/*
-+ * We've just got to have some datatypes defined... And annoyingly, just
-+ * where we get them depends on whether we're in userland or not.
-+ */
-+/* things that need to come from one place or the other, depending */
-+#if defined(linux)
-+#if defined(__KERNEL__)
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#define user_assert(foo) /*nothing*/
-+
-+#else /* NOT in kernel */
-+#include
-+#include
-+#include
-+#include
-+#include
-+#define user_assert(foo) assert(foo)
-+#include
-+
-+# define uint8_t u_int8_t
-+# define uint16_t u_int16_t
-+# define uint32_t u_int32_t
-+# define uint64_t u_int64_t
-+
-+
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* linux */
-+
-+#define DEBUG_NO_STATIC static
-+
-+/*
-+ * Yes Virginia, we have started a windows port.
-+ */
-+#if defined(__CYGWIN32__)
-+#if !defined(WIN32_KERNEL)
-+/* get windows equivalents */
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#define user_assert(foo) assert(foo)
-+#endif /* _KERNEL */
-+#endif /* WIN32 */
-+
-+/*
-+ * Kovacs? A macosx port?
-+ */
-+#if defined(macintosh) || (defined(__MACH__) && defined(__APPLE__))
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#define user_assert(foo) assert(foo)
-+#define __u32 unsigned int
-+#define __u8 unsigned char
-+#define s6_addr16 __u6_addr.__u6_addr16
-+#define DEBUG_NO_STATIC static
-+#endif
-+
-+/*
-+ * FreeBSD
-+ */
-+#if defined(__FreeBSD__)
-+# define DEBUG_NO_STATIC static
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#define user_assert(foo) assert(foo)
-+/* apparently this way to deal with an IPv6 address is not standard. */
-+#define s6_addr16 __u6_addr.__u6_addr16
-+#endif
-+
-+
-+#ifndef IPPROTO_COMP
-+# define IPPROTO_COMP 108
-+#endif /* !IPPROTO_COMP */
-+
-+#ifndef IPPROTO_INT
-+# define IPPROTO_INT 61
-+#endif /* !IPPROTO_INT */
-+
-+#if !defined(ESPINUDP_WITH_NON_IKE)
-+#define ESPINUDP_WITH_NON_IKE 1 /* draft-ietf-ipsec-nat-t-ike-00/01 */
-+#define ESPINUDP_WITH_NON_ESP 2 /* draft-ietf-ipsec-nat-t-ike-02 */
-+#endif
-+
-+/*
-+ * Basic data types for the address-handling functions.
-+ * ip_address and ip_subnet are supposed to be opaque types; do not
-+ * use their definitions directly, they are subject to change!
-+ */
-+
-+/* first, some quick fakes in case we're on an old system with no IPv6 */
-+#if !defined(s6_addr16) && defined(__CYGWIN32__)
-+struct in6_addr {
-+ union
-+ {
-+ u_int8_t u6_addr8[16];
-+ u_int16_t u6_addr16[8];
-+ u_int32_t u6_addr32[4];
-+ } in6_u;
-+#define s6_addr in6_u.u6_addr8
-+#define s6_addr16 in6_u.u6_addr16
-+#define s6_addr32 in6_u.u6_addr32
-+};
-+struct sockaddr_in6 {
-+ unsigned short int sin6_family; /* AF_INET6 */
-+ __u16 sin6_port; /* Transport layer port # */
-+ __u32 sin6_flowinfo; /* IPv6 flow information */
-+ struct in6_addr sin6_addr; /* IPv6 address */
-+ __u32 sin6_scope_id; /* scope id (new in RFC2553) */
-+};
-+#endif /* !s6_addr16 */
-+
-+/* then the main types */
-+typedef struct {
-+ union {
-+ struct sockaddr_in v4;
-+ struct sockaddr_in6 v6;
-+ } u;
-+} ip_address;
-+typedef struct {
-+ ip_address addr;
-+ int maskbits;
-+} ip_subnet;
-+
-+/* and the SA ID stuff */
-+#ifdef __KERNEL__
-+typedef __u32 ipsec_spi_t;
-+#else
-+typedef u_int32_t ipsec_spi_t;
-+#endif
-+typedef struct { /* to identify an SA, we need: */
-+ ip_address dst; /* A. destination host */
-+ ipsec_spi_t spi; /* B. 32-bit SPI, assigned by dest. host */
-+# define SPI_PASS 256 /* magic values... */
-+# define SPI_DROP 257 /* ...for use... */
-+# define SPI_REJECT 258 /* ...with SA_INT */
-+# define SPI_HOLD 259
-+# define SPI_TRAP 260
-+# define SPI_TRAPSUBNET 261
-+ int proto; /* C. protocol */
-+# define SA_ESP 50 /* IPPROTO_ESP */
-+# define SA_AH 51 /* IPPROTO_AH */
-+# define SA_IPIP 4 /* IPPROTO_IPIP */
-+# define SA_COMP 108 /* IPPROTO_COMP */
-+# define SA_INT 61 /* IANA reserved for internal use */
-+} ip_said;
-+
-+/* misc */
-+typedef const char *err_t; /* error message, or NULL for success */
-+struct prng { /* pseudo-random-number-generator guts */
-+ unsigned char sbox[256];
-+ int i, j;
-+ unsigned long count;
-+};
-+
-+
-+/*
-+ * definitions for user space, taken from freeswan/ipsec_sa.h
-+ */
-+typedef uint32_t IPsecSAref_t;
-+
-+/* Translation to/from nfmark.
-+ *
-+ * use bits 16-31. Leave bit 32 as a indicate that IPsec processing
-+ * has already been done.
-+ */
-+#define IPSEC_SA_REF_TABLE_IDX_WIDTH 15
-+#define IPSEC_SA_REF_TABLE_OFFSET 16
-+#define IPSEC_SA_REF_MAASK ((1<> IPSEC_SA_REF_TABLE_OFFSET)&IPSEC_SA_REF_MASK)
-+
-+#define IPSEC_SAREF_NULL ((IPsecSAref_t)0)
-+#define IPSEC_SAREF_NA ((IPsecSAref_t)0xffff0001)
-+
-+/* GCC magic for use in function definitions! */
-+#ifdef GCC_LINT
-+# define PRINTF_LIKE(n) __attribute__ ((format(printf, n, n+1)))
-+# define NEVER_RETURNS __attribute__ ((noreturn))
-+# define UNUSED __attribute__ ((unused))
-+# define BLANK_FORMAT " " /* GCC_LINT whines about empty formats */
-+#else
-+# define PRINTF_LIKE(n) /* ignore */
-+# define NEVER_RETURNS /* ignore */
-+# define UNUSED /* ignore */
-+# define BLANK_FORMAT ""
-+#endif
-+
-+
-+/*
-+ * function to log stuff from libraries that may be used in multiple
-+ * places.
-+ */
-+typedef int (*openswan_keying_debug_func_t)(const char *message, ...);
-+
-+
-+
-+/*
-+ * new IPv6-compatible functions
-+ */
-+
-+/* text conversions */
-+err_t ttoul(const char *src, size_t srclen, int format, unsigned long *dst);
-+size_t ultot(unsigned long src, int format, char *buf, size_t buflen);
-+#define ULTOT_BUF (22+1) /* holds 64 bits in octal */
-+
-+/* looks up names in DNS */
-+err_t ttoaddr(const char *src, size_t srclen, int af, ip_address *dst);
-+
-+/* does not look up names in DNS */
-+err_t ttoaddr_num(const char *src, size_t srclen, int af, ip_address *dst);
-+
-+err_t tnatoaddr(const char *src, size_t srclen, int af, ip_address *dst);
-+size_t addrtot(const ip_address *src, int format, char *buf, size_t buflen);
-+/* RFC 1886 old IPv6 reverse-lookup format is the bulkiest */
-+#define ADDRTOT_BUF (32*2 + 3 + 1 + 3 + 1 + 1)
-+err_t ttosubnet(const char *src, size_t srclen, int af, ip_subnet *dst);
-+size_t subnettot(const ip_subnet *src, int format, char *buf, size_t buflen);
-+#define SUBNETTOT_BUF (ADDRTOT_BUF + 1 + 3)
-+size_t subnetporttot(const ip_subnet *src, int format, char *buf, size_t buflen);
-+#define SUBNETPROTOTOT_BUF (SUBNETTOTO_BUF + ULTOT_BUF)
-+err_t ttosa(const char *src, size_t srclen, ip_said *dst);
-+size_t satot(const ip_said *src, int format, char *bufptr, size_t buflen);
-+#define SATOT_BUF (5 + ULTOA_BUF + 1 + ADDRTOT_BUF)
-+err_t ttodata(const char *src, size_t srclen, int base, char *buf,
-+ size_t buflen, size_t *needed);
-+err_t ttodatav(const char *src, size_t srclen, int base,
-+ char *buf, size_t buflen, size_t *needed,
-+ char *errp, size_t errlen, unsigned int flags);
-+#define TTODATAV_BUF 40 /* ttodatav's largest non-literal message */
-+#define TTODATAV_IGNORESPACE (1<<1) /* ignore spaces in base64 encodings*/
-+#define TTODATAV_SPACECOUNTS 0 /* do not ignore spaces in base64 */
-+
-+size_t datatot(const unsigned char *src, size_t srclen, int format
-+ , char *buf, size_t buflen);
-+size_t keyblobtoid(const unsigned char *src, size_t srclen, char *dst,
-+ size_t dstlen);
-+size_t splitkeytoid(const unsigned char *e, size_t elen, const unsigned char *m,
-+ size_t mlen, char *dst, size_t dstlen);
-+#define KEYID_BUF 10 /* up to 9 text digits plus NUL */
-+err_t ttoprotoport(char *src, size_t src_len, u_int8_t *proto, u_int16_t *port,
-+ int *has_port_wildcard);
-+
-+/* initializations */
-+void initsaid(const ip_address *addr, ipsec_spi_t spi, int proto, ip_said *dst);
-+err_t loopbackaddr(int af, ip_address *dst);
-+err_t unspecaddr(int af, ip_address *dst);
-+err_t anyaddr(int af, ip_address *dst);
-+err_t initaddr(const unsigned char *src, size_t srclen, int af, ip_address *dst);
-+err_t add_port(int af, ip_address *addr, unsigned short port);
-+err_t initsubnet(const ip_address *addr, int maskbits, int clash, ip_subnet *dst);
-+err_t addrtosubnet(const ip_address *addr, ip_subnet *dst);
-+
-+/* misc. conversions and related */
-+err_t rangetosubnet(const ip_address *from, const ip_address *to, ip_subnet *dst);
-+int addrtypeof(const ip_address *src);
-+int subnettypeof(const ip_subnet *src);
-+size_t addrlenof(const ip_address *src);
-+size_t addrbytesptr(const ip_address *src, const unsigned char **dst);
-+size_t addrbytesptr_write(ip_address *src, unsigned char **dst);
-+size_t addrbytesof(const ip_address *src, unsigned char *dst, size_t dstlen);
-+int masktocount(const ip_address *src);
-+void networkof(const ip_subnet *src, ip_address *dst);
-+void maskof(const ip_subnet *src, ip_address *dst);
-+
-+/* tests */
-+int sameaddr(const ip_address *a, const ip_address *b);
-+int addrcmp(const ip_address *a, const ip_address *b);
-+int samesubnet(const ip_subnet *a, const ip_subnet *b);
-+int addrinsubnet(const ip_address *a, const ip_subnet *s);
-+int subnetinsubnet(const ip_subnet *a, const ip_subnet *b);
-+int subnetishost(const ip_subnet *s);
-+int samesaid(const ip_said *a, const ip_said *b);
-+int sameaddrtype(const ip_address *a, const ip_address *b);
-+int samesubnettype(const ip_subnet *a, const ip_subnet *b);
-+int isvalidsubnet(const ip_subnet *a);
-+int isanyaddr(const ip_address *src);
-+int isunspecaddr(const ip_address *src);
-+int isloopbackaddr(const ip_address *src);
-+
-+/* low-level grot */
-+int portof(const ip_address *src);
-+void setportof(int port, ip_address *dst);
-+struct sockaddr *sockaddrof(ip_address *src);
-+size_t sockaddrlenof(const ip_address *src);
-+
-+/* PRNG */
-+void prng_init(struct prng *prng, const unsigned char *key, size_t keylen);
-+void prng_bytes(struct prng *prng, unsigned char *dst, size_t dstlen);
-+unsigned long prng_count(struct prng *prng);
-+void prng_final(struct prng *prng);
-+
-+/* odds and ends */
-+const char *ipsec_version_code(void);
-+const char *ipsec_version_string(void);
-+const char **ipsec_copyright_notice(void);
-+
-+const char *dns_string_rr(int rr, char *buf, int bufsize);
-+const char *dns_string_datetime(time_t seconds,
-+ char *buf,
-+ int bufsize);
-+
-+
-+/*
-+ * old functions, to be deleted eventually
-+ */
-+
-+/* unsigned long */
-+const char * /* NULL for success, else string literal */
-+atoul(
-+ const char *src,
-+ size_t srclen, /* 0 means strlen(src) */
-+ int base, /* 0 means figure it out */
-+ unsigned long *resultp
-+);
-+size_t /* space needed for full conversion */
-+ultoa(
-+ unsigned long n,
-+ int base,
-+ char *dst,
-+ size_t dstlen
-+);
-+#define ULTOA_BUF 21 /* just large enough for largest result, */
-+ /* assuming 64-bit unsigned long! */
-+
-+/* Internet addresses */
-+const char * /* NULL for success, else string literal */
-+atoaddr(
-+ const char *src,
-+ size_t srclen, /* 0 means strlen(src) */
-+ struct in_addr *addr
-+);
-+size_t /* space needed for full conversion */
-+addrtoa(
-+ struct in_addr addr,
-+ int format, /* character; 0 means default */
-+ char *dst,
-+ size_t dstlen
-+);
-+#define ADDRTOA_BUF 16 /* just large enough for largest result */
-+
-+/* subnets */
-+const char * /* NULL for success, else string literal */
-+atosubnet(
-+ const char *src,
-+ size_t srclen, /* 0 means strlen(src) */
-+ struct in_addr *addr,
-+ struct in_addr *mask
-+);
-+size_t /* space needed for full conversion */
-+subnettoa(
-+ struct in_addr addr,
-+ struct in_addr mask,
-+ int format, /* character; 0 means default */
-+ char *dst,
-+ size_t dstlen
-+);
-+#define SUBNETTOA_BUF 32 /* large enough for worst case result */
-+
-+/* ranges */
-+const char * /* NULL for success, else string literal */
-+atoasr(
-+ const char *src,
-+ size_t srclen, /* 0 means strlen(src) */
-+ char *type, /* 'a', 's', 'r' */
-+ struct in_addr *addrs /* two-element array */
-+);
-+size_t /* space needed for full conversion */
-+rangetoa(
-+ struct in_addr *addrs, /* two-element array */
-+ int format, /* character; 0 means default */
-+ char *dst,
-+ size_t dstlen
-+);
-+#define RANGETOA_BUF 34 /* large enough for worst case result */
-+
-+/* data types for SA conversion functions */
-+
-+/* generic data, e.g. keys */
-+const char * /* NULL for success, else string literal */
-+atobytes(
-+ const char *src,
-+ size_t srclen, /* 0 means strlen(src) */
-+ char *dst,
-+ size_t dstlen,
-+ size_t *lenp /* NULL means don't bother telling me */
-+);
-+size_t /* 0 failure, else true size */
-+bytestoa(
-+ const unsigned char *src,
-+ size_t srclen,
-+ int format, /* character; 0 means default */
-+ char *dst,
-+ size_t dstlen
-+);
-+
-+/* old versions of generic-data functions; deprecated */
-+size_t /* 0 failure, else true size */
-+atodata(
-+ const char *src,
-+ size_t srclen, /* 0 means strlen(src) */
-+ char *dst,
-+ size_t dstlen
-+);
-+size_t /* 0 failure, else true size */
-+datatoa(
-+ const unsigned char *src,
-+ size_t srclen,
-+ int format, /* character; 0 means default */
-+ char *dst,
-+ size_t dstlen
-+);
-+
-+/* part extraction and special addresses */
-+struct in_addr
-+subnetof(
-+ struct in_addr addr,
-+ struct in_addr mask
-+);
-+struct in_addr
-+hostof(
-+ struct in_addr addr,
-+ struct in_addr mask
-+);
-+struct in_addr
-+broadcastof(
-+ struct in_addr addr,
-+ struct in_addr mask
-+);
-+
-+/* mask handling */
-+int
-+goodmask(
-+ struct in_addr mask
-+);
-+extern int masktobits(struct in_addr mask);
-+extern struct in_addr bitstomask(int n);
-+extern struct in6_addr bitstomask6(int n);
-+
-+
-+
-+/*
-+ * ENUM of klips debugging values. Not currently used in klips.
-+ * debug flag is actually 32 -bits, but only one bit is ever used,
-+ * so we can actually pack it all into a single 32-bit word.
-+ */
-+enum klips_debug_flags {
-+ KDF_VERBOSE = 0,
-+ KDF_XMIT = 1,
-+ KDF_NETLINK = 2, /* obsolete */
-+ KDF_XFORM = 3,
-+ KDF_EROUTE = 4,
-+ KDF_SPI = 5,
-+ KDF_RADIJ = 6,
-+ KDF_ESP = 7,
-+ KDF_AH = 8, /* obsolete */
-+ KDF_RCV = 9,
-+ KDF_TUNNEL = 10,
-+ KDF_PFKEY = 11,
-+ KDF_COMP = 12,
-+ KDF_NATT = 13,
-+};
-+
-+
-+/*
-+ * Debugging levels for pfkey_lib_debug
-+ */
-+#define PF_KEY_DEBUG_PARSE_NONE 0
-+#define PF_KEY_DEBUG_PARSE_PROBLEM 1
-+#define PF_KEY_DEBUG_PARSE_STRUCT 2
-+#define PF_KEY_DEBUG_PARSE_FLOW 4
-+#define PF_KEY_DEBUG_BUILD 8
-+#define PF_KEY_DEBUG_PARSE_MAX 15
-+
-+extern unsigned int pfkey_lib_debug; /* bits selecting what to report */
-+
-+/*
-+ * pluto and lwdnsq need to know the maximum size of the commands to,
-+ * and replies from lwdnsq.
-+ */
-+
-+#define LWDNSQ_CMDBUF_LEN 1024
-+#define LWDNSQ_RESULT_LEN_MAX 4096
-+
-+
-+/* syntax for passthrough SA */
-+#ifndef PASSTHROUGHNAME
-+#define PASSTHROUGHNAME "%passthrough"
-+#define PASSTHROUGH4NAME "%passthrough4"
-+#define PASSTHROUGH6NAME "%passthrough6"
-+#define PASSTHROUGHIS "tun0@0.0.0.0"
-+#define PASSTHROUGH4IS "tun0@0.0.0.0"
-+#define PASSTHROUGH6IS "tun0@::"
-+#define PASSTHROUGHTYPE "tun"
-+#define PASSTHROUGHSPI 0
-+#define PASSTHROUGHDST 0
-+#endif
-+
-+
-+
-+#endif /* _OPENSWAN_H */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipcomp.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,58 @@
-+/*
-+ * IPCOMP zlib interface code.
-+ * Copyright (C) 2000 Svenning Soerensen
-+ * Copyright (C) 2000, 2001 Richard Guy Briggs
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+
-+ RCSID $Id: ipcomp.h,v 1.14 2004/07/10 19:08:41 mcr Exp $
-+
-+ */
-+
-+/* SSS */
-+
-+#ifndef _IPCOMP_H
-+#define _IPCOMP_H
-+
-+/* Prefix all global deflate symbols with "ipcomp_" to avoid collisions with ppp_deflate & ext2comp */
-+#ifndef IPCOMP_PREFIX
-+#define IPCOMP_PREFIX
-+#endif /* IPCOMP_PREFIX */
-+
-+#ifndef IPPROTO_COMP
-+#define IPPROTO_COMP 108
-+#endif /* IPPROTO_COMP */
-+
-+#include "openswan/ipsec_sysctl.h"
-+
-+struct ipcomphdr { /* IPCOMP header */
-+ __u8 ipcomp_nh; /* Next header (protocol) */
-+ __u8 ipcomp_flags; /* Reserved, must be 0 */
-+ __u16 ipcomp_cpi; /* Compression Parameter Index */
-+};
-+
-+extern struct inet_protocol comp_protocol;
-+
-+#define IPCOMP_UNCOMPRESSABLE 0x000000001
-+#define IPCOMP_COMPRESSIONERROR 0x000000002
-+#define IPCOMP_PARMERROR 0x000000004
-+#define IPCOMP_DECOMPRESSIONERROR 0x000000008
-+
-+#define IPCOMP_ADAPT_INITIAL_TRIES 8
-+#define IPCOMP_ADAPT_INITIAL_SKIP 4
-+#define IPCOMP_ADAPT_SUBSEQ_TRIES 2
-+#define IPCOMP_ADAPT_SUBSEQ_SKIP 8
-+
-+/* Function prototypes */
-+struct sk_buff *skb_compress(struct sk_buff *skb, struct ipsec_sa *ips, unsigned int *flags);
-+struct sk_buff *skb_decompress(struct sk_buff *skb, struct ipsec_sa *ips, unsigned int *flags);
-+
-+#endif /* _IPCOMP_H */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_ah.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,201 @@
-+/*
-+ * Authentication Header declarations
-+ * Copyright (C) 1996, 1997 John Ioannidis.
-+ * Copyright (C) 1998, 1999, 2000, 2001 Richard Guy Briggs.
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_ah.h,v 1.26 2004/09/13 02:22:10 mcr Exp $
-+ */
-+
-+#include "ipsec_md5h.h"
-+#include "ipsec_sha1.h"
-+
-+#ifndef IPPROTO_AH
-+#define IPPROTO_AH 51
-+#endif /* IPPROTO_AH */
-+
-+#include "ipsec_auth.h"
-+
-+#ifdef __KERNEL__
-+
-+#ifndef CONFIG_XFRM_ALTERNATE_STACK
-+extern struct inet_protocol ah_protocol;
-+#endif /* CONFIG_XFRM_ALTERNATE_STACK */
-+
-+struct options;
-+
-+struct ahhdr /* Generic AH header */
-+{
-+ __u8 ah_nh; /* Next header (protocol) */
-+ __u8 ah_hl; /* AH length, in 32-bit words */
-+ __u16 ah_rv; /* reserved, must be 0 */
-+ __u32 ah_spi; /* Security Parameters Index */
-+ __u32 ah_rpl; /* Replay prevention */
-+ __u8 ah_data[AHHMAC_HASHLEN];/* Authentication hash */
-+};
-+#define AH_BASIC_LEN 8 /* basic AH header is 8 bytes, nh,hl,rv,spi
-+ * and the ah_hl, says how many bytes after that
-+ * to cover. */
-+
-+extern struct xform_functions ah_xform_funcs[];
-+
-+#include "openswan/ipsec_sysctl.h"
-+
-+#endif /* __KERNEL__ */
-+
-+/*
-+ * $Log: ipsec_ah.h,v $
-+ * Revision 1.26 2004/09/13 02:22:10 mcr
-+ * #define inet_protocol if necessary.
-+ *
-+ * Revision 1.25 2004/09/06 18:35:41 mcr
-+ * 2.6.8.1 gets rid of inet_protocol->net_protocol compatibility,
-+ * so adjust for that.
-+ *
-+ * Revision 1.24 2004/07/10 19:08:41 mcr
-+ * CONFIG_IPSEC -> CONFIG_KLIPS.
-+ *
-+ * Revision 1.23 2004/04/05 19:55:04 mcr
-+ * Moved from linux/include/freeswan/ipsec_ah.h,v
-+ *
-+ * Revision 1.22 2004/04/05 19:41:05 mcr
-+ * merged alg-branch code.
-+ *
-+ * Revision 1.21 2003/12/13 19:10:16 mcr
-+ * refactored rcv and xmit code - same as FS 2.05.
-+ *
-+ * Revision 1.22 2003/12/11 20:14:58 mcr
-+ * refactored the xmit code, to move all encapsulation
-+ * code into protocol functions. Note that all functions
-+ * are essentially done by a single function, which is probably
-+ * wrong.
-+ * the rcv_functions structures are renamed xform_functions.
-+ *
-+ * Revision 1.21 2003/12/06 21:21:19 mcr
-+ * split up receive path into per-transform files, for
-+ * easier later removal.
-+ *
-+ * Revision 1.20.8.1 2003/12/22 15:25:52 jjo
-+ * Merged algo-0.8.1-rc11-test1 into alg-branch
-+ *
-+ * Revision 1.20 2003/02/06 02:21:34 rgb
-+ *
-+ * Moved "struct auth_alg" from ipsec_rcv.c to ipsec_ah.h .
-+ * Changed "struct ah" to "struct ahhdr" and "struct esp" to "struct esphdr".
-+ * Removed "#ifdef INBOUND_POLICY_CHECK_eroute" dead code.
-+ *
-+ * Revision 1.19 2002/09/16 21:19:13 mcr
-+ * fixes for west-ah-icmp-01 - length of AH header must be
-+ * calculated properly, and next_header field properly copied.
-+ *
-+ * Revision 1.18 2002/05/14 02:37:02 rgb
-+ * Change reference from _TDB to _IPSA.
-+ *
-+ * Revision 1.17 2002/04/24 07:36:46 mcr
-+ * Moved from ./klips/net/ipsec/ipsec_ah.h,v
-+ *
-+ * Revision 1.16 2002/02/20 01:27:06 rgb
-+ * Ditched a pile of structs only used by the old Netlink interface.
-+ *
-+ * Revision 1.15 2001/12/11 02:35:57 rgb
-+ * Change "struct net_device" to "struct device" for 2.2 compatibility.
-+ *
-+ * Revision 1.14 2001/11/26 09:23:47 rgb
-+ * Merge MCR's ipsec_sa, eroute, proc and struct lifetime changes.
-+ *
-+ * Revision 1.13.2.1 2001/09/25 02:18:24 mcr
-+ * replace "struct device" with "struct netdevice"
-+ *
-+ * Revision 1.13 2001/06/14 19:35:08 rgb
-+ * Update copyright date.
-+ *
-+ * Revision 1.12 2000/09/12 03:21:20 rgb
-+ * Cleared out unused htonq.
-+ *
-+ * Revision 1.11 2000/09/08 19:12:55 rgb
-+ * Change references from DEBUG_IPSEC to CONFIG_IPSEC_DEBUG.
-+ *
-+ * Revision 1.10 2000/01/21 06:13:10 rgb
-+ * Tidied up spacing.
-+ * Added macros for HMAC padding magic numbers.(kravietz)
-+ *
-+ * Revision 1.9 1999/12/07 18:16:23 rgb
-+ * Fixed comments at end of #endif lines.
-+ *
-+ * Revision 1.8 1999/04/11 00:28:56 henry
-+ * GPL boilerplate
-+ *
-+ * Revision 1.7 1999/04/06 04:54:25 rgb
-+ * Fix/Add RCSID Id: and Log: bits to make PHMDs happy. This includes
-+ * patch shell fixes.
-+ *
-+ * Revision 1.6 1999/01/26 02:06:01 rgb
-+ * Removed CONFIG_IPSEC_ALGO_SWITCH macro.
-+ *
-+ * Revision 1.5 1999/01/22 06:17:49 rgb
-+ * Updated macro comments.
-+ * Added context types to support algorithm switch code.
-+ * 64-bit clean-up -- converting 'u long long' to __u64.
-+ *
-+ * Revision 1.4 1998/07/14 15:54:56 rgb
-+ * Add #ifdef __KERNEL__ to protect kernel-only structures.
-+ *
-+ * Revision 1.3 1998/06/30 18:05:16 rgb
-+ * Comment out references to htonq.
-+ *
-+ * Revision 1.2 1998/06/25 19:33:46 rgb
-+ * Add prototype for protocol receive function.
-+ * Rearrange for more logical layout.
-+ *
-+ * Revision 1.1 1998/06/18 21:27:43 henry
-+ * move sources from klips/src to klips/net/ipsec, to keep stupid
-+ * kernel-build scripts happier in the presence of symlinks
-+ *
-+ * Revision 1.4 1998/05/18 22:28:43 rgb
-+ * Disable key printing facilities from /proc/net/ipsec_*.
-+ *
-+ * Revision 1.3 1998/04/21 21:29:07 rgb
-+ * Rearrange debug switches to change on the fly debug output from user
-+ * space. Only kernel changes checked in at this time. radij.c was also
-+ * changed to temporarily remove buggy debugging code in rj_delete causing
-+ * an OOPS and hence, netlink device open errors.
-+ *
-+ * Revision 1.2 1998/04/12 22:03:17 rgb
-+ * Updated ESP-3DES-HMAC-MD5-96,
-+ * ESP-DES-HMAC-MD5-96,
-+ * AH-HMAC-MD5-96,
-+ * AH-HMAC-SHA1-96 since Henry started freeswan cvs repository
-+ * from old standards (RFC182[5-9] to new (as of March 1998) drafts.
-+ *
-+ * Fixed eroute references in /proc/net/ipsec*.
-+ *
-+ * Started to patch module unloading memory leaks in ipsec_netlink and
-+ * radij tree unloading.
-+ *
-+ * Revision 1.1 1998/04/09 03:05:55 henry
-+ * sources moved up from linux/net/ipsec
-+ *
-+ * Revision 1.1.1.1 1998/04/08 05:35:02 henry
-+ * RGB's ipsec-0.8pre2.tar.gz ipsec-0.8
-+ *
-+ * Revision 0.4 1997/01/15 01:28:15 ji
-+ * Added definitions for new AH transforms.
-+ *
-+ * Revision 0.3 1996/11/20 14:35:48 ji
-+ * Minor Cleanup.
-+ * Rationalized debugging code.
-+ *
-+ * Revision 0.2 1996/11/02 00:18:33 ji
-+ * First limited release.
-+ *
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_alg.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,248 @@
-+/*
-+ * Modular extensions service and registration functions interface
-+ *
-+ * Author: JuanJo Ciarlante
-+ *
-+ * ipsec_alg.h,v 1.1.2.1 2003/11/21 18:12:23 jjo Exp
-+ *
-+ */
-+/*
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ */
-+#ifndef IPSEC_ALG_H
-+#define IPSEC_ALG_H
-+
-+/*
-+ * gcc >= 3.2 has removed __FUNCTION__, replaced by C99 __func__
-+ * *BUT* its a compiler variable.
-+ */
-+#if (__GNUC__ >= 3)
-+#ifndef __FUNCTION__
-+#define __FUNCTION__ __func__
-+#endif
-+#endif
-+
-+/* Version 0.8.1-0 */
-+#define IPSEC_ALG_VERSION 0x00080100
-+
-+#include
-+#include
-+#include
-+#include
-+
-+/*
-+ * The following structs are used via pointers in ipsec_alg object to
-+ * avoid ipsec_alg.h coupling with freeswan headers, thus simplifying
-+ * module development
-+ */
-+struct ipsec_sa;
-+struct esp;
-+
-+/**************************************
-+ *
-+ * Main registration object
-+ *
-+ *************************************/
-+#define IPSEC_ALG_VERSION_QUAD(v) \
-+ (v>>24),((v>>16)&0xff),((v>>8)&0xff),(v&0xff)
-+/*
-+ * Main ipsec_alg objects: "OOPrograming wannabe"
-+ * Hierachy (carefully handled with _minimal_ cast'ing):
-+ *
-+ * ipsec_alg+
-+ * +->ipsec_alg_enc (ixt_alg_type=SADB_EXT_SUPPORTED_ENCRYPT)
-+ * +->ipsec_alg_auth (ixt_alg_type=SADB_EXT_SUPPORTED_AUTH)
-+ */
-+
-+/***************************************************************
-+ *
-+ * INTERFACE object: struct ipsec_alg
-+ *
-+ ***************************************************************/
-+
-+#define ixt_alg_type ixt_support.ias_exttype
-+#define ixt_alg_id ixt_support.ias_id
-+
-+#define IPSEC_ALG_ST_SUPP 0x01
-+#define IPSEC_ALG_ST_REGISTERED 0x02
-+#define IPSEC_ALG_ST_EXCL 0x04
-+struct ipsec_alg {
-+ unsigned ixt_version; /* only allow this version (or 'near')*/ \
-+ struct list_head ixt_list; /* dlinked list */ \
-+ struct module *ixt_module; /* THIS_MODULE */ \
-+ unsigned ixt_state; /* state flags */ \
-+ atomic_t ixt_refcnt; /* ref. count when pointed from ipsec_sa */ \
-+ char ixt_name[16]; /* descriptive short name, eg. "3des" */ \
-+ void *ixt_data; /* private for algo implementation */ \
-+ uint8_t ixt_blocksize; /* blocksize in bytes */ \
-+
-+ struct ipsec_alg_supported ixt_support;
-+};
-+/*
-+ * Note the const in cbc_encrypt IV arg:
-+ * some ciphers like to toast passed IV (eg. 3DES): make a local IV copy
-+ */
-+struct ipsec_alg_enc {
-+ struct ipsec_alg ixt_common;
-+ unsigned ixt_e_keylen; /* raw key length in bytes */
-+ unsigned ixt_e_ctx_size; /* sa_p->key_e_size */
-+ int (*ixt_e_set_key)(struct ipsec_alg_enc *alg, __u8 *key_e, const __u8 *key, size_t keysize);
-+ __u8 *(*ixt_e_new_key)(struct ipsec_alg_enc *alg, const __u8 *key, size_t keysize);
-+ void (*ixt_e_destroy_key)(struct ipsec_alg_enc *alg, __u8 *key_e);
-+ int (*ixt_e_cbc_encrypt)(struct ipsec_alg_enc *alg, __u8 *key_e, __u8 *in, int ilen, __u8 *iv, int encrypt);
-+};
-+struct ipsec_alg_auth {
-+ struct ipsec_alg ixt_common;
-+ unsigned ixt_a_keylen; /* raw key length in bytes */
-+ unsigned ixt_a_ctx_size; /* sa_p->key_a_size */
-+ unsigned ixt_a_authlen; /* 'natural' auth. hash len (bytes) */
-+ int (*ixt_a_hmac_set_key)(struct ipsec_alg_auth *alg, __u8 *key_a, const __u8 *key, int keylen);
-+ int (*ixt_a_hmac_hash)(struct ipsec_alg_auth *alg, __u8 *key_a, const __u8 *dat, int len, __u8 *hash, int hashlen);
-+};
-+/*
-+ * These are _copies_ of SADB_EXT_SUPPORTED_{AUTH,ENCRYPT},
-+ * to avoid header coupling for true constants
-+ * about headers ... "cp is your friend" --Linus
-+ */
-+#define IPSEC_ALG_TYPE_AUTH 14
-+#define IPSEC_ALG_TYPE_ENCRYPT 15
-+
-+/***************************************************************
-+ *
-+ * INTERFACE for module loading,testing, and unloading
-+ *
-+ ***************************************************************/
-+/* - registration calls */
-+int register_ipsec_alg(struct ipsec_alg *);
-+int unregister_ipsec_alg(struct ipsec_alg *);
-+/* - optional (simple test) for algos */
-+int ipsec_alg_test(unsigned alg_type, unsigned alg_id, int testparm);
-+/* inline wrappers (usefull for type validation */
-+static inline int register_ipsec_alg_enc(struct ipsec_alg_enc *ixt) {
-+ return register_ipsec_alg((struct ipsec_alg*)ixt);
-+}
-+static inline int unregister_ipsec_alg_enc(struct ipsec_alg_enc *ixt) {
-+ return unregister_ipsec_alg((struct ipsec_alg*)ixt);
-+}
-+static inline int register_ipsec_alg_auth(struct ipsec_alg_auth *ixt) {
-+ return register_ipsec_alg((struct ipsec_alg*)ixt);
-+}
-+static inline int unregister_ipsec_alg_auth(struct ipsec_alg_auth *ixt) {
-+ return unregister_ipsec_alg((struct ipsec_alg*)ixt);
-+}
-+
-+/*****************************************************************
-+ *
-+ * INTERFACE for ENC services: key creation, encrypt function
-+ *
-+ *****************************************************************/
-+
-+#define IPSEC_ALG_ENCRYPT 1
-+#define IPSEC_ALG_DECRYPT 0
-+
-+/* encryption key context creation function */
-+int ipsec_alg_enc_key_create(struct ipsec_sa *sa_p);
-+/*
-+ * ipsec_alg_esp_encrypt(): encrypt ilen bytes in idat returns
-+ * 0 or ERR<0
-+ */
-+int ipsec_alg_esp_encrypt(struct ipsec_sa *sa_p, __u8 *idat, int ilen, __u8 *iv, int action);
-+
-+/***************************************************************
-+ *
-+ * INTERFACE for AUTH services: key creation, hash functions
-+ *
-+ ***************************************************************/
-+int ipsec_alg_auth_key_create(struct ipsec_sa *sa_p);
-+int ipsec_alg_sa_esp_hash(const struct ipsec_sa *sa_p, const __u8 *espp, int len, __u8 *hash, int hashlen) ;
-+#define ipsec_alg_sa_esp_update(c,k,l) ipsec_alg_sa_esp_hash(c,k,l,NULL,0)
-+
-+/* only called from ipsec_init.c */
-+int ipsec_alg_init(void);
-+
-+/* algo module glue for static algos */
-+void ipsec_alg_static_init(void);
-+typedef int (*ipsec_alg_init_func_t) (void);
-+
-+/**********************************************
-+ *
-+ * INTERFACE for ipsec_sa init and wipe
-+ *
-+ **********************************************/
-+
-+/* returns true if ipsec_sa has ipsec_alg obj attached */
-+/*
-+ * Initializes ipsec_sa's ipsec_alg object, using already loaded
-+ * proto, authalg, encalg.; links ipsec_alg objects (enc, auth)
-+ */
-+int ipsec_alg_sa_init(struct ipsec_sa *sa_p);
-+/*
-+ * Destroys ipsec_sa's ipsec_alg object
-+ * unlinking ipsec_alg objects
-+ */
-+int ipsec_alg_sa_wipe(struct ipsec_sa *sa_p);
-+
-+#define IPSEC_ALG_MODULE_INIT_MOD( func_name ) \
-+ static int func_name(void); \
-+ module_init(func_name); \
-+ static int __init func_name(void)
-+#define IPSEC_ALG_MODULE_EXIT_MOD( func_name ) \
-+ static void func_name(void); \
-+ module_exit(func_name); \
-+ static void __exit func_name(void)
-+
-+#define IPSEC_ALG_MODULE_INIT_STATIC( func_name ) \
-+ extern int func_name(void); \
-+ int func_name(void)
-+#define IPSEC_ALG_MODULE_EXIT_STATIC( func_name ) \
-+ extern void func_name(void); \
-+ void func_name(void)
-+
-+/**********************************************
-+ *
-+ * 2.2 backport for some 2.4 useful module stuff
-+ *
-+ **********************************************/
-+#ifdef MODULE
-+#ifndef THIS_MODULE
-+#define THIS_MODULE (&__this_module)
-+#endif
-+#ifndef module_init
-+typedef int (*__init_module_func_t)(void);
-+typedef void (*__cleanup_module_func_t)(void);
-+
-+#define module_init(x) \
-+ int init_module(void) __attribute__((alias(#x))); \
-+ static inline __init_module_func_t __init_module_inline(void) \
-+ { return x; }
-+#define module_exit(x) \
-+ void cleanup_module(void) __attribute__((alias(#x))); \
-+ static inline __cleanup_module_func_t __cleanup_module_inline(void) \
-+ { return x; }
-+#endif
-+#define IPSEC_ALG_MODULE_INIT( func_name ) IPSEC_ALG_MODULE_INIT_MOD( func_name )
-+#define IPSEC_ALG_MODULE_EXIT( func_name ) IPSEC_ALG_MODULE_EXIT_MOD( func_name )
-+
-+#else /* not MODULE */
-+#ifndef THIS_MODULE
-+#define THIS_MODULE NULL
-+#endif
-+/*
-+ * I only want module_init() magic
-+ * when algo.c file *is THE MODULE*, in all other
-+ * cases, initialization is called explicitely from ipsec_alg_init()
-+ */
-+#define IPSEC_ALG_MODULE_INIT( func_name ) IPSEC_ALG_MODULE_INIT_STATIC(func_name)
-+#define IPSEC_ALG_MODULE_EXIT( func_name ) IPSEC_ALG_MODULE_EXIT_STATIC(func_name)
-+#endif
-+
-+#endif /* IPSEC_ALG_H */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_alg_3des.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,12 @@
-+struct TripleDES_context {
-+ des_key_schedule s1;
-+ des_key_schedule s2;
-+ des_key_schedule s3;
-+};
-+typedef struct TripleDES_context TripleDES_context;
-+
-+#define ESP_3DES_KEY_SZ 3*(sizeof(des_cblock))
-+#define ESP_3DES_CBC_BLK_LEN 8
-+
-+
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_auth.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,100 @@
-+/*
-+ * Authentication Header declarations
-+ * Copyright (C) 2003 Michael Richardson
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_auth.h,v 1.3 2004/04/06 02:49:08 mcr Exp $
-+ */
-+
-+#include "ipsec_md5h.h"
-+#include "ipsec_sha1.h"
-+
-+#ifndef IPSEC_AUTH_H
-+#define IPSEC_AUTH_H
-+
-+#define AH_FLENGTH 12 /* size of fixed part */
-+#define AHMD5_KMAX 64 /* MD5 max 512 bits key */
-+#define AHMD5_AMAX 12 /* MD5 96 bits of authenticator */
-+
-+#define AHMD596_KLEN 16 /* MD5 128 bits key */
-+#define AHSHA196_KLEN 20 /* SHA1 160 bits key */
-+
-+#define AHMD596_ALEN 16 /* MD5 128 bits authentication length */
-+#define AHSHA196_ALEN 20 /* SHA1 160 bits authentication length */
-+
-+#define AHMD596_BLKLEN 64 /* MD5 block length */
-+#define AHSHA196_BLKLEN 64 /* SHA1 block length */
-+#define AHSHA2_256_BLKLEN 64 /* SHA2-256 block length */
-+#define AHSHA2_384_BLKLEN 128 /* SHA2-384 block length (?) */
-+#define AHSHA2_512_BLKLEN 128 /* SHA2-512 block length */
-+
-+#define AH_BLKLEN_MAX 128 /* keep up to date! */
-+
-+
-+#define AH_AMAX AHSHA196_ALEN /* keep up to date! */
-+#define AHHMAC_HASHLEN 12 /* authenticator length of 96bits */
-+#define AHHMAC_RPLLEN 4 /* 32 bit replay counter */
-+
-+#define DB_AH_PKTRX 0x0001
-+#define DB_AH_PKTRX2 0x0002
-+#define DB_AH_DMP 0x0004
-+#define DB_AH_IPSA 0x0010
-+#define DB_AH_XF 0x0020
-+#define DB_AH_INAU 0x0040
-+#define DB_AH_REPLAY 0x0100
-+
-+#ifdef __KERNEL__
-+
-+/* General HMAC algorithm is described in RFC 2104 */
-+
-+#define HMAC_IPAD 0x36
-+#define HMAC_OPAD 0x5C
-+
-+struct md5_ctx {
-+ MD5_CTX ictx; /* context after H(K XOR ipad) */
-+ MD5_CTX octx; /* context after H(K XOR opad) */
-+};
-+
-+struct sha1_ctx {
-+ SHA1_CTX ictx; /* context after H(K XOR ipad) */
-+ SHA1_CTX octx; /* context after H(K XOR opad) */
-+};
-+
-+struct auth_alg {
-+ void (*init)(void *ctx);
-+ void (*update)(void *ctx, unsigned char *bytes, __u32 len);
-+ void (*final)(unsigned char *hash, void *ctx);
-+ int hashlen;
-+};
-+
-+struct options;
-+
-+#endif /* __KERNEL__ */
-+#endif /* IPSEC_AUTH_H */
-+
-+/*
-+ * $Log: ipsec_auth.h,v $
-+ * Revision 1.3 2004/04/06 02:49:08 mcr
-+ * pullup of algo code from alg-branch.
-+ *
-+ * Revision 1.2 2004/04/05 19:55:04 mcr
-+ * Moved from linux/include/freeswan/ipsec_auth.h,v
-+ *
-+ * Revision 1.1 2003/12/13 19:10:16 mcr
-+ * refactored rcv and xmit code - same as FS 2.05.
-+ *
-+ * Revision 1.1 2003/12/06 21:21:19 mcr
-+ * split up receive path into per-transform files, for
-+ * easier later removal.
-+ *
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_encap.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,149 @@
-+/*
-+ * declarations relevant to encapsulation-like operations
-+ * Copyright (C) 1996, 1997 John Ioannidis.
-+ * Copyright (C) 1998, 1999, 2000, 2001 Richard Guy Briggs.
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_encap.h,v 1.19 2004/04/05 19:55:04 mcr Exp $
-+ */
-+
-+#ifndef _IPSEC_ENCAP_H_
-+
-+#define SENT_IP4 16 /* data is two struct in_addr + proto + ports*/
-+ /* (2 * sizeof(struct in_addr)) */
-+ /* sizeof(struct sockaddr_encap)
-+ - offsetof(struct sockaddr_encap, Sen.Sip4.Src) */
-+
-+struct sockaddr_encap
-+{
-+ __u8 sen_len; /* length */
-+ __u8 sen_family; /* AF_ENCAP */
-+ __u16 sen_type; /* see SENT_* */
-+ union
-+ {
-+ struct /* SENT_IP4 */
-+ {
-+ struct in_addr Src;
-+ struct in_addr Dst;
-+ __u8 Proto;
-+ __u16 Sport;
-+ __u16 Dport;
-+ } Sip4;
-+ } Sen;
-+};
-+
-+#define sen_ip_src Sen.Sip4.Src
-+#define sen_ip_dst Sen.Sip4.Dst
-+#define sen_proto Sen.Sip4.Proto
-+#define sen_sport Sen.Sip4.Sport
-+#define sen_dport Sen.Sip4.Dport
-+
-+#ifndef AF_ENCAP
-+#define AF_ENCAP 26
-+#endif /* AF_ENCAP */
-+
-+#define _IPSEC_ENCAP_H_
-+#endif /* _IPSEC_ENCAP_H_ */
-+
-+/*
-+ * $Log: ipsec_encap.h,v $
-+ * Revision 1.19 2004/04/05 19:55:04 mcr
-+ * Moved from linux/include/freeswan/ipsec_encap.h,v
-+ *
-+ * Revision 1.18 2003/10/31 02:27:05 mcr
-+ * pulled up port-selector patches and sa_id elimination.
-+ *
-+ * Revision 1.17.30.1 2003/09/21 13:59:38 mcr
-+ * pre-liminary X.509 patch - does not yet pass tests.
-+ *
-+ * Revision 1.17 2002/04/24 07:36:46 mcr
-+ * Moved from ./klips/net/ipsec/ipsec_encap.h,v
-+ *
-+ * Revision 1.16 2001/11/26 09:23:47 rgb
-+ * Merge MCR's ipsec_sa, eroute, proc and struct lifetime changes.
-+ *
-+ * Revision 1.15.2.1 2001/09/25 02:18:54 mcr
-+ * struct eroute moved to ipsec_eroute.h
-+ *
-+ * Revision 1.15 2001/09/14 16:58:36 rgb
-+ * Added support for storing the first and last packets through a HOLD.
-+ *
-+ * Revision 1.14 2001/09/08 21:13:31 rgb
-+ * Added pfkey ident extension support for ISAKMPd. (NetCelo)
-+ *
-+ * Revision 1.13 2001/06/14 19:35:08 rgb
-+ * Update copyright date.
-+ *
-+ * Revision 1.12 2001/05/27 06:12:10 rgb
-+ * Added structures for pid, packet count and last access time to eroute.
-+ * Added packet count to beginning of /proc/net/ipsec_eroute.
-+ *
-+ * Revision 1.11 2000/09/08 19:12:56 rgb
-+ * Change references from DEBUG_IPSEC to CONFIG_IPSEC_DEBUG.
-+ *
-+ * Revision 1.10 2000/03/22 16:15:36 rgb
-+ * Fixed renaming of dev_get (MB).
-+ *
-+ * Revision 1.9 2000/01/21 06:13:26 rgb
-+ * Added a macro for AF_ENCAP
-+ *
-+ * Revision 1.8 1999/12/31 14:56:55 rgb
-+ * MB fix for 2.3 dev-use-count.
-+ *
-+ * Revision 1.7 1999/11/18 04:09:18 rgb
-+ * Replaced all kernel version macros to shorter, readable form.
-+ *
-+ * Revision 1.6 1999/09/24 00:34:13 rgb
-+ * Add Marc Boucher's support for 2.3.xx+.
-+ *
-+ * Revision 1.5 1999/04/11 00:28:57 henry
-+ * GPL boilerplate
-+ *
-+ * Revision 1.4 1999/04/06 04:54:25 rgb
-+ * Fix/Add RCSID Id: and Log: bits to make PHMDs happy. This includes
-+ * patch shell fixes.
-+ *
-+ * Revision 1.3 1998/10/19 14:44:28 rgb
-+ * Added inclusion of freeswan.h.
-+ * sa_id structure implemented and used: now includes protocol.
-+ *
-+ * Revision 1.2 1998/07/14 18:19:33 rgb
-+ * Added #ifdef __KERNEL__ directives to restrict scope of header.
-+ *
-+ * Revision 1.1 1998/06/18 21:27:44 henry
-+ * move sources from klips/src to klips/net/ipsec, to keep stupid
-+ * kernel-build scripts happier in the presence of symlinks
-+ *
-+ * Revision 1.2 1998/04/21 21:29:10 rgb
-+ * Rearrange debug switches to change on the fly debug output from user
-+ * space. Only kernel changes checked in at this time. radij.c was also
-+ * changed to temporarily remove buggy debugging code in rj_delete causing
-+ * an OOPS and hence, netlink device open errors.
-+ *
-+ * Revision 1.1 1998/04/09 03:05:58 henry
-+ * sources moved up from linux/net/ipsec
-+ *
-+ * Revision 1.1.1.1 1998/04/08 05:35:02 henry
-+ * RGB's ipsec-0.8pre2.tar.gz ipsec-0.8
-+ *
-+ * Revision 0.4 1997/01/15 01:28:15 ji
-+ * Minor cosmetic changes.
-+ *
-+ * Revision 0.3 1996/11/20 14:35:48 ji
-+ * Minor Cleanup.
-+ * Rationalized debugging code.
-+ *
-+ * Revision 0.2 1996/11/02 00:18:33 ji
-+ * First limited release.
-+ *
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_eroute.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,112 @@
-+/*
-+ * @(#) declarations of eroute structures
-+ *
-+ * Copyright (C) 1996, 1997 John Ioannidis.
-+ * Copyright (C) 1998, 1999, 2000, 2001 Richard Guy Briggs
-+ * Copyright (C) 2001 Michael Richardson
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_eroute.h,v 1.5 2004/04/05 19:55:05 mcr Exp $
-+ *
-+ * derived from ipsec_encap.h 1.15 on 2001/9/18 by mcr.
-+ *
-+ */
-+
-+#ifndef _IPSEC_EROUTE_H_
-+
-+#include "radij.h"
-+#include "ipsec_encap.h"
-+#include "ipsec_radij.h"
-+
-+/*
-+ * The "type" is really part of the address as far as the routing
-+ * system is concerned. By using only one bit in the type field
-+ * for each type, we sort-of make sure that different types of
-+ * encapsulation addresses won't be matched against the wrong type.
-+ */
-+
-+/*
-+ * An entry in the radix tree
-+ */
-+
-+struct rjtentry
-+{
-+ struct radij_node rd_nodes[2]; /* tree glue, and other values */
-+#define rd_key(r) ((struct sockaddr_encap *)((r)->rd_nodes->rj_key))
-+#define rd_mask(r) ((struct sockaddr_encap *)((r)->rd_nodes->rj_mask))
-+ short rd_flags;
-+ short rd_count;
-+};
-+
-+struct ident
-+{
-+ __u16 type; /* identity type */
-+ __u64 id; /* identity id */
-+ __u8 len; /* identity len */
-+ caddr_t data; /* identity data */
-+};
-+
-+/*
-+ * An encapsulation route consists of a pointer to a
-+ * radix tree entry and a SAID (a destination_address/SPI/protocol triple).
-+ */
-+
-+struct eroute
-+{
-+ struct rjtentry er_rjt;
-+ ip_said er_said;
-+ uint32_t er_pid;
-+ uint32_t er_count;
-+ uint64_t er_lasttime;
-+ struct sockaddr_encap er_eaddr; /* MCR get rid of _encap, it is silly*/
-+ struct sockaddr_encap er_emask;
-+ struct ident er_ident_s;
-+ struct ident er_ident_d;
-+ struct sk_buff* er_first;
-+ struct sk_buff* er_last;
-+};
-+
-+#define er_dst er_said.dst
-+#define er_spi er_said.spi
-+
-+#define _IPSEC_EROUTE_H_
-+#endif /* _IPSEC_EROUTE_H_ */
-+
-+/*
-+ * $Log: ipsec_eroute.h,v $
-+ * Revision 1.5 2004/04/05 19:55:05 mcr
-+ * Moved from linux/include/freeswan/ipsec_eroute.h,v
-+ *
-+ * Revision 1.4 2003/10/31 02:27:05 mcr
-+ * pulled up port-selector patches and sa_id elimination.
-+ *
-+ * Revision 1.3.30.2 2003/10/29 01:10:19 mcr
-+ * elimited "struct sa_id"
-+ *
-+ * Revision 1.3.30.1 2003/09/21 13:59:38 mcr
-+ * pre-liminary X.509 patch - does not yet pass tests.
-+ *
-+ * Revision 1.3 2002/04/24 07:36:46 mcr
-+ * Moved from ./klips/net/ipsec/ipsec_eroute.h,v
-+ *
-+ * Revision 1.2 2001/11/26 09:16:13 rgb
-+ * Merge MCR's ipsec_sa, eroute, proc and struct lifetime changes.
-+ *
-+ * Revision 1.1.2.1 2001/09/25 02:18:54 mcr
-+ * struct eroute moved to ipsec_eroute.h
-+ *
-+ *
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_errs.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,53 @@
-+/*
-+ * @(#) definition of ipsec_errs structure
-+ *
-+ * Copyright (C) 2001 Richard Guy Briggs
-+ * and Michael Richardson
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_errs.h,v 1.4 2004/04/05 19:55:05 mcr Exp $
-+ *
-+ */
-+
-+/*
-+ * This file describes the errors/statistics that FreeSWAN collects.
-+ *
-+ */
-+
-+struct ipsec_errs {
-+ __u32 ips_alg_errs; /* number of algorithm errors */
-+ __u32 ips_auth_errs; /* # of authentication errors */
-+ __u32 ips_encsize_errs; /* # of encryption size errors*/
-+ __u32 ips_encpad_errs; /* # of encryption pad errors*/
-+ __u32 ips_replaywin_errs; /* # of pkt sequence errors */
-+};
-+
-+/*
-+ * $Log: ipsec_errs.h,v $
-+ * Revision 1.4 2004/04/05 19:55:05 mcr
-+ * Moved from linux/include/freeswan/ipsec_errs.h,v
-+ *
-+ * Revision 1.3 2002/04/24 07:36:46 mcr
-+ * Moved from ./klips/net/ipsec/ipsec_errs.h,v
-+ *
-+ * Revision 1.2 2001/11/26 09:16:13 rgb
-+ * Merge MCR's ipsec_sa, eroute, proc and struct lifetime changes.
-+ *
-+ * Revision 1.1.2.1 2001/09/25 02:25:57 mcr
-+ * lifetime structure created and common functions created.
-+ *
-+ *
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_esp.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,161 @@
-+/*
-+ * Copyright (C) 1996, 1997 John Ioannidis.
-+ * Copyright (C) 1998, 1999, 2000, 2001 Richard Guy Briggs.
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_esp.h,v 1.28 2004/09/13 02:22:10 mcr Exp $
-+ */
-+
-+#include "openswan/ipsec_md5h.h"
-+#include "openswan/ipsec_sha1.h"
-+
-+#include "klips-crypto/des.h"
-+
-+#ifndef IPPROTO_ESP
-+#define IPPROTO_ESP 50
-+#endif /* IPPROTO_ESP */
-+
-+#define ESP_HEADER_LEN 8 /* 64 bits header (spi+rpl)*/
-+
-+#define EMT_ESPDESCBC_ULEN 20 /* coming from user mode */
-+#define EMT_ESPDES_KMAX 64 /* 512 bit secret key enough? */
-+#define EMT_ESPDES_KEY_SZ 8 /* 56 bit secret key with parity = 64 bits */
-+#define EMT_ESP3DES_KEY_SZ 24 /* 168 bit secret key with parity = 192 bits */
-+#define EMT_ESPDES_IV_SZ 8 /* IV size */
-+#define ESP_DESCBC_BLKLEN 8 /* DES-CBC block size */
-+
-+#define ESP_IV_MAXSZ 16 /* This is _critical_ */
-+#define ESP_IV_MAXSZ_INT (ESP_IV_MAXSZ/sizeof(int))
-+
-+#define DB_ES_PKTRX 0x0001
-+#define DB_ES_PKTRX2 0x0002
-+#define DB_ES_IPSA 0x0010
-+#define DB_ES_XF 0x0020
-+#define DB_ES_IPAD 0x0040
-+#define DB_ES_INAU 0x0080
-+#define DB_ES_OINFO 0x0100
-+#define DB_ES_OINFO2 0x0200
-+#define DB_ES_OH 0x0400
-+#define DB_ES_REPLAY 0x0800
-+
-+#ifdef __KERNEL__
-+struct des_eks {
-+ des_key_schedule ks;
-+};
-+
-+#ifndef CONFIG_XFRM_ALTERNATE_STACK
-+extern struct inet_protocol esp_protocol;
-+#endif /* CONFIG_XFRM_ALTERNATE_STACK */
-+
-+struct options;
-+
-+struct esphdr
-+{
-+ __u32 esp_spi; /* Security Parameters Index */
-+ __u32 esp_rpl; /* Replay counter */
-+ __u8 esp_iv[8]; /* iv */
-+};
-+
-+extern struct xform_functions esp_xform_funcs[];
-+
-+extern enum ipsec_rcv_value ipsec_rcv_esp_post_decrypt(struct ipsec_rcv_state *irs);
-+
-+#ifdef CONFIG_KLIPS_DEBUG
-+extern int debug_esp;
-+#endif /* CONFIG_KLIPS_DEBUG */
-+#endif /* __KERNEL__ */
-+
-+/*
-+ * $Log: ipsec_esp.h,v $
-+ * Revision 1.28 2004/09/13 02:22:10 mcr
-+ * #define inet_protocol if necessary.
-+ *
-+ * Revision 1.27 2004/09/06 18:35:41 mcr
-+ * 2.6.8.1 gets rid of inet_protocol->net_protocol compatibility,
-+ * so adjust for that.
-+ *
-+ * Revision 1.26 2004/07/10 19:08:41 mcr
-+ * CONFIG_IPSEC -> CONFIG_KLIPS.
-+ *
-+ * Revision 1.25 2004/04/06 02:49:08 mcr
-+ * pullup of algo code from alg-branch.
-+ *
-+ * Revision 1.24 2004/04/05 19:55:05 mcr
-+ * Moved from linux/include/freeswan/ipsec_esp.h,v
-+ *
-+ * Revision 1.23 2004/04/05 19:41:05 mcr
-+ * merged alg-branch code.
-+ *
-+ * Revision 1.22 2003/12/13 19:10:16 mcr
-+ * refactored rcv and xmit code - same as FS 2.05.
-+ *
-+ * Revision 1.23 2003/12/11 20:14:58 mcr
-+ * refactored the xmit code, to move all encapsulation
-+ * code into protocol functions. Note that all functions
-+ * are essentially done by a single function, which is probably
-+ * wrong.
-+ * the rcv_functions structures are renamed xform_functions.
-+ *
-+ * Revision 1.22 2003/12/06 21:21:19 mcr
-+ * split up receive path into per-transform files, for
-+ * easier later removal.
-+ *
-+ * Revision 1.21.8.1 2003/12/22 15:25:52 jjo
-+ * Merged algo-0.8.1-rc11-test1 into alg-branch
-+ *
-+ * Revision 1.21 2003/02/06 02:21:34 rgb
-+ *
-+ * Moved "struct auth_alg" from ipsec_rcv.c to ipsec_ah.h .
-+ * Changed "struct ah" to "struct ahhdr" and "struct esp" to "struct esphdr".
-+ * Removed "#ifdef INBOUND_POLICY_CHECK_eroute" dead code.
-+ *
-+ * Revision 1.20 2002/05/14 02:37:02 rgb
-+ * Change reference from _TDB to _IPSA.
-+ *
-+ * Revision 1.19 2002/04/24 07:55:32 mcr
-+ * #include patches and Makefiles for post-reorg compilation.
-+ *
-+ * Revision 1.18 2002/04/24 07:36:46 mcr
-+ * Moved from ./klips/net/ipsec/ipsec_esp.h,v
-+ *
-+ * Revision 1.17 2002/02/20 01:27:07 rgb
-+ * Ditched a pile of structs only used by the old Netlink interface.
-+ *
-+ * Revision 1.16 2001/12/11 02:35:57 rgb
-+ * Change "struct net_device" to "struct device" for 2.2 compatibility.
-+ *
-+ * Revision 1.15 2001/11/26 09:23:48 rgb
-+ * Merge MCR's ipsec_sa, eroute, proc and struct lifetime changes.
-+ *
-+ * Revision 1.14.2.3 2001/10/23 04:16:42 mcr
-+ * get definition of des_key_schedule from des.h
-+ *
-+ * Revision 1.14.2.2 2001/10/22 20:33:13 mcr
-+ * use "des_key_schedule" structure instead of cooking our own.
-+ *
-+ * Revision 1.14.2.1 2001/09/25 02:18:25 mcr
-+ * replace "struct device" with "struct netdevice"
-+ *
-+ * Revision 1.14 2001/06/14 19:35:08 rgb
-+ * Update copyright date.
-+ *
-+ * Revision 1.13 2000/09/08 19:12:56 rgb
-+ * Change references from DEBUG_IPSEC to CONFIG_IPSEC_DEBUG.
-+ *
-+ * Revision 1.12 2000/08/01 14:51:50 rgb
-+ * Removed _all_ remaining traces of DES.
-+ *
-+ * Revision 1.11 2000/01/10 16:36:20 rgb
-+ * Ditch last of EME option flags, including initiator.
-+ *
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_ipcomp.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,97 @@
-+/*
-+ * IP compression header declations
-+ *
-+ * Copyright (C) 2003 Michael Richardson
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_ipcomp.h,v 1.4 2004/07/10 19:08:41 mcr Exp $
-+ */
-+
-+#ifndef IPSEC_IPCOMP_H
-+#define IPSEC_IPCOMP_H
-+
-+#include "openswan/ipsec_auth.h"
-+
-+/* Prefix all global deflate symbols with "ipcomp_" to avoid collisions with ppp_deflate & ext2comp */
-+#ifndef IPCOMP_PREFIX
-+#define IPCOMP_PREFIX
-+#endif /* IPCOMP_PREFIX */
-+
-+#ifndef IPPROTO_COMP
-+#define IPPROTO_COMP 108
-+#endif /* IPPROTO_COMP */
-+
-+#ifdef CONFIG_KLIPS_DEBUG
-+extern int sysctl_ipsec_debug_ipcomp;
-+#endif /* CONFIG_KLIPS_DEBUG */
-+
-+struct ipcomphdr { /* IPCOMP header */
-+ __u8 ipcomp_nh; /* Next header (protocol) */
-+ __u8 ipcomp_flags; /* Reserved, must be 0 */
-+ __u16 ipcomp_cpi; /* Compression Parameter Index */
-+};
-+
-+#ifndef CONFIG_XFRM_ALTERNATE_STACK
-+extern struct inet_protocol comp_protocol;
-+#endif /* CONFIG_XFRM_ALTERNATE_STACK */
-+
-+extern int sysctl_ipsec_debug_ipcomp;
-+
-+#define IPCOMP_UNCOMPRESSABLE 0x000000001
-+#define IPCOMP_COMPRESSIONERROR 0x000000002
-+#define IPCOMP_PARMERROR 0x000000004
-+#define IPCOMP_DECOMPRESSIONERROR 0x000000008
-+
-+#define IPCOMP_ADAPT_INITIAL_TRIES 8
-+#define IPCOMP_ADAPT_INITIAL_SKIP 4
-+#define IPCOMP_ADAPT_SUBSEQ_TRIES 2
-+#define IPCOMP_ADAPT_SUBSEQ_SKIP 8
-+
-+/* Function prototypes */
-+struct sk_buff *skb_compress(struct sk_buff *skb, struct ipsec_sa *ips, unsigned int *flags);
-+struct sk_buff *skb_decompress(struct sk_buff *skb, struct ipsec_sa *ips, unsigned int *flags);
-+
-+extern struct xform_functions ipcomp_xform_funcs[];
-+
-+#endif /* IPSEC_IPCOMP_H */
-+
-+/*
-+ * $Log: ipsec_ipcomp.h,v $
-+ * Revision 1.4 2004/07/10 19:08:41 mcr
-+ * CONFIG_IPSEC -> CONFIG_KLIPS.
-+ *
-+ * Revision 1.3 2004/04/06 02:49:08 mcr
-+ * pullup of algo code from alg-branch.
-+ *
-+ * Revision 1.2 2004/04/05 19:55:05 mcr
-+ * Moved from linux/include/freeswan/ipsec_ipcomp.h,v
-+ *
-+ * Revision 1.1 2003/12/13 19:10:16 mcr
-+ * refactored rcv and xmit code - same as FS 2.05.
-+ *
-+ * Revision 1.2 2003/12/11 20:14:58 mcr
-+ * refactored the xmit code, to move all encapsulation
-+ * code into protocol functions. Note that all functions
-+ * are essentially done by a single function, which is probably
-+ * wrong.
-+ * the rcv_functions structures are renamed xform_functions.
-+ *
-+ * Revision 1.1 2003/12/06 21:21:19 mcr
-+ * split up receive path into per-transform files, for
-+ * easier later removal.
-+ *
-+ *
-+ *
-+ */
-+
-+
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_ipe4.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,68 @@
-+/*
-+ * IP-in-IP Header declarations
-+ * Copyright (C) 1996, 1997 John Ioannidis.
-+ * Copyright (C) 1998, 1999, 2000, 2001 Richard Guy Briggs.
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_ipe4.h,v 1.6 2004/04/05 19:55:05 mcr Exp $
-+ */
-+
-+/* The packet header is an IP header! */
-+
-+struct ipe4_xdata /* transform table data */
-+{
-+ struct in_addr i4_src;
-+ struct in_addr i4_dst;
-+};
-+
-+#define EMT_IPE4_ULEN 8 /* coming from user mode */
-+
-+
-+/*
-+ * $Log: ipsec_ipe4.h,v $
-+ * Revision 1.6 2004/04/05 19:55:05 mcr
-+ * Moved from linux/include/freeswan/ipsec_ipe4.h,v
-+ *
-+ * Revision 1.5 2002/04/24 07:36:46 mcr
-+ * Moved from ./klips/net/ipsec/ipsec_ipe4.h,v
-+ *
-+ * Revision 1.4 2001/06/14 19:35:08 rgb
-+ * Update copyright date.
-+ *
-+ * Revision 1.3 1999/04/11 00:28:57 henry
-+ * GPL boilerplate
-+ *
-+ * Revision 1.2 1999/04/06 04:54:25 rgb
-+ * Fix/Add RCSID Id: and Log: bits to make PHMDs happy. This includes
-+ * patch shell fixes.
-+ *
-+ * Revision 1.1 1998/06/18 21:27:47 henry
-+ * move sources from klips/src to klips/net/ipsec, to keep stupid
-+ * kernel-build scripts happier in the presence of symlinks
-+ *
-+ * Revision 1.1 1998/04/09 03:06:07 henry
-+ * sources moved up from linux/net/ipsec
-+ *
-+ * Revision 1.1.1.1 1998/04/08 05:35:03 henry
-+ * RGB's ipsec-0.8pre2.tar.gz ipsec-0.8
-+ *
-+ * Revision 0.4 1997/01/15 01:28:15 ji
-+ * No changes.
-+ *
-+ * Revision 0.3 1996/11/20 14:48:53 ji
-+ * Release update only.
-+ *
-+ * Revision 0.2 1996/11/02 00:18:33 ji
-+ * First limited release.
-+ *
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_ipip.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,45 @@
-+/*
-+ * Copyright (C) 2003 Michael Richardson
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_ipip.h,v 1.2 2004/04/05 19:55:05 mcr Exp $
-+ */
-+
-+#ifndef _IPSEC_IPIP_H_
-+
-+#ifndef IPPROTO_IPIP
-+#define IPPROTO_IPIP 4
-+#endif /* IPPROTO_ESP */
-+
-+extern struct xform_functions ipip_xform_funcs[];
-+
-+#define _IPSEC_IPIP_H_
-+
-+#endif /* _IPSEC_IPIP_H_ */
-+
-+/*
-+ * $Log: ipsec_ipip.h,v $
-+ * Revision 1.2 2004/04/05 19:55:05 mcr
-+ * Moved from linux/include/freeswan/ipsec_ipip.h,v
-+ *
-+ * Revision 1.1 2003/12/13 19:10:16 mcr
-+ * refactored rcv and xmit code - same as FS 2.05.
-+ *
-+ * Revision 1.1 2003/12/11 20:14:58 mcr
-+ * refactored the xmit code, to move all encapsulation
-+ * code into protocol functions. Note that all functions
-+ * are essentially done by a single function, which is probably
-+ * wrong.
-+ * the rcv_functions structures are renamed xform_functions.
-+ *
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_kern24.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,92 @@
-+/*
-+ * @(#) routines to makes kernel 2.4 compatible with 2.6 usage.
-+ *
-+ * Copyright (C) 2004 Michael Richardson
-+ * Copyright (C) 2005 - 2008 Paul Wouters
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ */
-+
-+#ifndef _IPSEC_KERN24_H
-+
-+
-+#ifdef NETDEV_23
-+#if 0
-+#ifndef NETDEV_25
-+#define device net_device
-+#endif
-+#endif
-+
-+# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
-+# define __ipsec_dev_get(x) __dev_get_by_name(&init_net, x)
-+# define ipsec_dev_get(x) dev_get_by_name(&init_net, x)
-+# else
-+# define ipsec_dev_get(x) __dev_get_by_name(x)
-+# define __ipsec_dev_get(x) __dev_get_by_name(x)
-+# endif
-+
-+# define ipsec_dev_put(x) dev_put(x)
-+# define __ipsec_dev_put(x) __dev_put(x)
-+# define ipsec_dev_hold(x) dev_hold(x)
-+#else /* NETDEV_23 */
-+# define ipsec_dev_get dev_get
-+# define __ipsec_dev_put(x)
-+# define ipsec_dev_put(x)
-+# define ipsec_dev_hold(x)
-+#endif /* NETDEV_23 */
-+
-+#ifndef HAVE_NETDEV_PRINTK
-+#define netdev_printk(sevlevel, netdev, msglevel, format, arg...) \
-+ printk(sevlevel "%s: " format , netdev->name , ## arg)
-+#endif
-+
-+#ifndef NET_26
-+#define sk_receive_queue receive_queue
-+#define sk_destruct destruct
-+#define sk_reuse reuse
-+#define sk_zapped zapped
-+#define sk_family family
-+#define sk_protocol protocol
-+#define sk_protinfo protinfo
-+#define sk_sleep sleep
-+#define sk_state_change state_change
-+#define sk_shutdown shutdown
-+#define sk_err err
-+#define sk_stamp stamp
-+#define sk_socket socket
-+#define sk_sndbuf sndbuf
-+#define sock_flag(sk, flag) sk->dead
-+#define sk_for_each(sk, node, plist) for(sk=*plist; sk!=NULL; sk = sk->next)
-+#endif
-+
-+/* deal with 2.4 vs 2.6 issues with module counts */
-+
-+/* in 2.6, all refcounts are maintained *outside* of the
-+ * module to deal with race conditions.
-+ */
-+
-+#ifdef NET_26
-+#define KLIPS_INC_USE /* nothing */
-+#define KLIPS_DEC_USE /* nothing */
-+
-+#else
-+#define KLIPS_INC_USE MOD_INC_USE_COUNT
-+#define KLIPS_DEC_USE MOD_DEC_USE_COUNT
-+#endif
-+
-+extern int printk_ratelimit(void);
-+
-+
-+#define _IPSEC_KERN24_H 1
-+
-+#endif /* _IPSEC_KERN24_H */
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_kversion.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,441 @@
-+#ifndef _OPENSWAN_KVERSIONS_H
-+/*
-+ * header file for Openswan library functions
-+ * Copyright (C) 1998, 1999, 2000 Henry Spencer.
-+ * Copyright (C) 1999, 2000, 2001 Richard Guy Briggs
-+ * Copyright (C) 2003 - 2008 Paul Wouters
-+ *
-+ * This library is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU Library General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version. See .
-+ *
-+ * This library 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 Library General Public
-+ * License for more details.
-+ *
-+ */
-+#define _OPENSWAN_KVERSIONS_H /* seen it, no need to see it again */
-+
-+/*
-+ * this file contains a series of atomic defines that depend upon
-+ * kernel version numbers. The kernel versions are arranged
-+ * in version-order number (which is often not chronological)
-+ * and each clause enables or disables a feature.
-+ */
-+
-+/*
-+ * First, assorted kernel-version-dependent trickery.
-+ */
-+#include
-+#ifndef KERNEL_VERSION
-+# define KERNEL_VERSION(x,y,z) (((x)<<16)+((y)<<8)+(z))
-+#endif
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,1,0)
-+# define HEADER_CACHE_BIND_21
-+# error "KLIPS is no longer supported on Linux 2.0. Sorry"
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,0)
-+# define SPINLOCK
-+# define PROC_FS_21
-+# define NETLINK_SOCK
-+# define NET_21
-+#endif
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,1,19)
-+# define net_device_stats enet_statistics
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,0)
-+# define SPINLOCK_23
-+# define NETDEV_23
-+# ifndef CONFIG_IP_ALIAS
-+# define CONFIG_IP_ALIAS
-+# endif
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,25)
-+# define PROC_FS_2325
-+# undef PROC_FS_21
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,30)
-+# define PROC_NO_DUMMY
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,35)
-+# define SKB_COPY_EXPAND
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,37)
-+# define IP_SELECT_IDENT
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,2)
-+# define IP_SELECT_IDENT_NEW
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,4)
-+# define IPH_is_SKB_PULLED
-+# define SKB_COW_NEW
-+# define PROTO_HANDLER_SINGLE_PARM
-+# define IP_FRAGMENT_LINEARIZE 1
-+#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,4) */
-+# ifdef REDHAT_BOGOSITY
-+# define IP_SELECT_IDENT_NEW
-+# define IPH_is_SKB_PULLED
-+# define SKB_COW_NEW
-+# define PROTO_HANDLER_SINGLE_PARM
-+# endif /* REDHAT_BOGOSITY */
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,4) */
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,9)
-+# define MALLOC_SLAB
-+# define LINUX_KERNEL_HAS_SNPRINTF
-+#endif
-+
-+/* API changes are documented at: http://lwn.net/Articles/2.6-kernel-api/ */
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
-+# define HAVE_NETDEV_PRINTK 1
-+# define NET_26
-+# define NETDEV_25
-+# define NEED_SPINLOCK_TYPES
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,8)
-+# define NEED_INET_PROTOCOL
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
-+# define HAVE_SOCK_ZAPPED
-+# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
-+# define NET_26_24_SKALLOC
-+# else
-+# define NET_26_12_SKALLOC
-+# endif
-+#endif
-+#endif
-+
-+/* see */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13)
-+# define HAVE_SOCK_SECURITY
-+/* skb->nf_debug disappared completely in 2.6.13 */
-+# define ipsec_nf_debug_reset(skb) ((skb)->nf_debug = 0)
-+#else
-+# define ipsec_nf_debug_reset(skb)
-+#endif
-+
-+/* how to reset an skb we are reusing after encrpytion/decryption etc */
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17)
-+# define ipsec_nf_reset(skb) nf_reset((skb))
-+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,50) && defined(CONFIG_NETFILTER)
-+# define ipsec_nf_reset(skb) do { \
-+ nf_conntrack_put((skb)->nfct); \
-+ (skb)->nfct=NULL; \
-+ ipsec_nf_debug_reset(skb); \
-+ } while(0)
-+#else
-+# define ipsec_nf_reset(skb) /**/
-+#endif
-+
-+/* skb->stamp changed to skb->tstamp in 2.6.14 */
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
-+# define HAVE_TSTAMP
-+# define HAVE_INET_SK_SPORT
-+#else
-+# define HAVE_SKB_LIST
-+#endif
-+
-+/* it seems 2.6.14 accidentally removed sysctl_ip_default_ttl */
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
-+# define SYSCTL_IPSEC_DEFAULT_TTL IPSEC_DEFAULT_TTL
-+#else
-+# define SYSCTL_IPSEC_DEFAULT_TTL sysctl_ip_default_ttl
-+#endif
-+
-+/*
-+ The obsolete MODULE_PARM() macro is gone forevermore [in 2.6.17+]
-+ It was introduced in 2.6.0
-+ Zero-filled memory can now be allocated from slab caches with
-+ kmem_cache_zalloc(). There is also a new slab debugging option
-+ to produce a /proc/slab_allocators file with detailed allocation
-+ information.
-+ */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
-+# define module_param(a,b,c) MODULE_PARM(#a,"i")
-+/* note below is only true for our current calls to module_param_array */
-+# define module_param_array(a,b,c,d) MODULE_PARM(#a,"1-2i")
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18)
-+/*
-+ The skb_linearize() function has been reworked, and no longer has a
-+ GFP flags argument. There is also a new skb_linearize_cow() function
-+ which ensures that the resulting SKB is writable.
-+ Network drivers should no longer manipulate the xmit_lock spinlock
-+ in the net_device structure; instead, the following new functions
-+ should be used:
-+ int netif_tx_lock(struct net_device *dev);
-+ int netif_tx_lock_bh(struct net_device *dev);
-+ void netif_tx_unlock(struct net_device *dev);
-+ void netif_tx_unlock_bh(struct net_device *dev);
-+ int netif_tx_trylock(struct net_device *dev);
-+ A number of crypto API changes have been merged, the biggest being
-+ a change to most algorithm-specific functions to take a pointer to
-+ the crypto_tfm structure, rather than the old "context" pointer. This
-+ change was necessary to support parameterized algorithms.
-+*/
-+
-+# define HAVE_NEW_SKB_LINEARIZE
-+#endif
-+
-+/* this is the best we can do to detect XEN, which makes
-+ * patches to linux/skbuff.h, making it look like 2.6.18 version
-+ */
-+#ifdef CONFIG_XEN
-+# define HAVE_NEW_SKB_LINEARIZE
-+#endif
-+
-+/* And the same for SuSe kernels who have it before it got into the
-+ * linus kernel.
-+ */
-+#ifdef SLE_VERSION_CODE
-+# if SLE_VERSION_CODE >= 655616
-+# define HAVE_NEW_SKB_LINEARIZE
-+# else
-+# warning "A Suse kernel was detected, but we are unsure if it requires HAVE_NEW_SKB_LINEARIZE"
-+# endif
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19)
-+# define VOID_SOCK_UNREGISTER
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
-+/* skb->nfmark changed to skb->mark in 2.6.20 */
-+# define nfmark mark
-+#else
-+# define HAVE_KMEM_CACHE_T
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
-+/*
-+ Significant changes have been made to the crypto support interface.
-+ The sysctl code has been heavily reworked, leading to a number of
-+ internal API changes.
-+*/
-+# define ipsec_register_sysctl_table(a,b) register_sysctl_table(a)
-+# define CTL_TABLE_PARENT
-+#else
-+# define ipsec_register_sysctl_table(a,b) register_sysctl_table(a,b)
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
-+/*
-+ The eth_type_trans() function now sets the skb->dev field, consistent
-+ with how similar functions for other link types operate. As a result,
-+ many Ethernet drivers have been changed to remove the (now) redundant
-+ assignment.
-+ The header fields in the sk_buff structure have been renamed
-+ and are no longer unions. Networking code and drivers can
-+ now just use skb->transport_header, skb->network_header, and
-+ skb->skb_mac_header. There are new functions for finding specific
-+ headers within packets: tcp_hdr(), udp_hdr(), ipip_hdr(), and
-+ ipipv6_hdr().
-+ The crypto API has a new set of functions for use with asynchronous
-+ block ciphers. There is also a new cryptd kernel thread which can
-+ run any synchronous cipher in an asynchronous mode.
-+ A new macro has been added to make the creation of slab caches easier:
-+ struct kmem_cache KMEM_CACHE(struct-type, flags);
-+ The result is the creation of a cache holding objects of the given
-+ struct_type, named after that type, and with the additional slab
-+ flags (if any).
-+*/
-+
-+/* need to include ip.h early, no longer pick it up in skbuff.h */
-+# include
-+# define HAVE_KERNEL_TSTAMP
-+/* type of sock.sk_stamp changed from timeval to ktime */
-+# define grab_socket_timeval(tv, sock) { (tv) = ktime_to_timeval((sock).sk_stamp); }
-+#else
-+# define grab_socket_timeval(tv, sock) { (tv) = (sock).sk_stamp; }
-+/* internals of struct skbuff changed */
-+# define HAVE_DEV_NEXT
-+# define ip_hdr(skb) ((skb)->nh.iph)
-+# define skb_tail_pointer(skb) ((skb)->tail)
-+# define skb_end_pointer(skb) ((skb)->end)
-+# define skb_network_header(skb) ((skb)->nh.raw)
-+# define skb_set_network_header(skb,off) ((skb)->nh.raw = (skb)->data + (off))
-+# define tcp_hdr(skb) ((skb)->h.th)
-+# define udp_hdr(skb) ((skb)->h.uh)
-+# define skb_transport_header(skb) ((skb)->h.raw)
-+# define skb_set_transport_header(skb,off) ((skb)->h.raw = (skb)->data + (off))
-+# define skb_mac_header(skb) ((skb)->mac.raw)
-+# define skb_set_mac_header(skb,off) ((skb)->mac.raw = (skb)->data + (off))
-+#endif
-+/* turn a pointer into an offset for above macros */
-+#define ipsec_skb_offset(skb, ptr) (((unsigned char *)(ptr)) - (skb)->data)
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)
-+/*
-+ * The macro got introduced in 2,6,22 but it does not work properly, and
-+ * still uses the old number of arguments.
-+ */
-+ /*
-+ The destructor argument has been removed from kmem_cache_create(), as
-+ destructors are no longer supported. All in-kernel callers have been
-+ updated
-+ */
-+# define HAVE_KMEM_CACHE_MACRO
-+
-+/* Try using the new kernel encaps hook for nat-t, instead of udp.c */
-+# ifdef NOT_YET_FINISHED
-+# define HAVE_UDP_ENCAP_CONVERT
-+# endif
-+
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
-+/*
-+ * We can switch on earlier kernels, but from here on we have no choice
-+ * but to abandon the old style proc_net and use seq_file
-+ * The hard_header() method has been removed from struct net_device;
-+ it has been replaced by a per-protocol header_ops structure pointer.
-+
-+ The prototype for slab constructor callbacks has changed to:
-+ void (*ctor)(struct kmem_cache *cache, void *object);
-+ The unused flags argument has been removed and the order of the other
-+ two arguments has been reversed to match other slab functions.
-+ */
-+# define HAVE_PROC_DIR_ENTRY
-+# define PROC_NET init_net.proc_net
-+
-+# define __ipsec_dev_get(x) __dev_get_by_name(&init_net, x)
-+# define ipsec_dev_get(x) dev_get_by_name(&init_net, x)
-+#else
-+
-+# define PROC_NET proc_net
-+
-+# define ipsec_dev_get(x) __dev_get_by_name(x)
-+# define __ipsec_dev_get(x) __dev_get_by_name(x)
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)
-+# define ip_chk_addr(a) inet_addr_type(&init_net, a)
-+
-+# define l_inet_addr_type(a) inet_addr_type(&init_net, a)
-+
-+#else
-+# define ip_chk_addr inet_addr_type
-+
-+#define l_inet_addr_type inet_addr_type
-+
-+#endif
-+
-+#ifndef NETDEV_TX_BUSY
-+# ifdef NETDEV_XMIT_CN
-+# define NETDEV_TX_BUSY NETDEV_XMIT_CN
-+# else
-+# define NETDEV_TX_BUSY 1
-+# endif
-+#endif
-+
-+
-+#ifdef NET_21
-+# define ipsec_kfree_skb(a) kfree_skb(a)
-+#else /* NET_21 */
-+# define ipsec_kfree_skb(a) kfree_skb(a, FREE_WRITE)
-+#endif /* NET_21 */
-+
-+#ifdef NETDEV_23
-+
-+#ifndef SPINLOCK
-+# include
-+ /* simulate spin locks and read/write locks */
-+ typedef struct {
-+ volatile char lock;
-+ } spinlock_t;
-+
-+ typedef struct {
-+ volatile unsigned int lock;
-+ } rwlock_t;
-+
-+# define spin_lock_init(x) { (x)->lock = 0;}
-+# define rw_lock_init(x) { (x)->lock = 0; }
-+
-+# define spin_lock(x) { while ((x)->lock) barrier(); (x)->lock=1;}
-+# define spin_lock_irq(x) { cli(); spin_lock(x);}
-+# define spin_lock_irqsave(x,flags) { save_flags(flags); spin_lock_irq(x);}
-+
-+# define spin_unlock(x) { (x)->lock=0;}
-+# define spin_unlock_irq(x) { spin_unlock(x); sti();}
-+# define spin_unlock_irqrestore(x,flags) { spin_unlock(x); restore_flags(flags);}
-+
-+# define read_lock(x) spin_lock(x)
-+# define read_lock_irq(x) spin_lock_irq(x)
-+# define read_lock_irqsave(x,flags) spin_lock_irqsave(x,flags)
-+
-+# define read_unlock(x) spin_unlock(x)
-+# define read_unlock_irq(x) spin_unlock_irq(x)
-+# define read_unlock_irqrestore(x,flags) spin_unlock_irqrestore(x,flags)
-+
-+# define write_lock(x) spin_lock(x)
-+# define write_lock_irq(x) spin_lock_irq(x)
-+# define write_lock_irqsave(x,flags) spin_lock_irqsave(x,flags)
-+
-+# define write_unlock(x) spin_unlock(x)
-+# define write_unlock_irq(x) spin_unlock_irq(x)
-+# define write_unlock_irqrestore(x,flags) spin_unlock_irqrestore(x,flags)
-+#endif /* !SPINLOCK */
-+
-+#ifndef SPINLOCK_23
-+# define spin_lock_bh(x) spin_lock_irq(x)
-+# define spin_unlock_bh(x) spin_unlock_irq(x)
-+
-+# define read_lock_bh(x) read_lock_irq(x)
-+# define read_unlock_bh(x) read_unlock_irq(x)
-+
-+# define write_lock_bh(x) write_lock_irq(x)
-+# define write_unlock_bh(x) write_unlock_irq(x)
-+#endif /* !SPINLOCK_23 */
-+
-+#ifndef HAVE_NETDEV_PRINTK
-+#define netdev_printk(sevlevel, netdev, msglevel, format, arg...) \
-+ printk(sevlevel "%s: " format , netdev->name , ## arg)
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
-+#define PROC_NET init_net.proc_net
-+#define PROC_EOF_DATA
-+#else
-+#define PROC_NET proc_net
-+#endif
-+
-+#ifdef NET_21
-+# include
-+#else
-+ /* old kernel in.h has some IPv6 stuff, but not quite enough */
-+# define s6_addr16 s6_addr
-+# define AF_INET6 10
-+# define uint8_t __u8
-+# define uint16_t __u16
-+# define uint32_t __u32
-+# define uint64_t __u64
-+#endif
-+
-+#if __KERNEL__
-+# if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,0)
-+# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
-+# include "openswan/ipsec_kern24.h"
-+# else
-+# error "kernels before 2.4 are not supported at this time"
-+# endif
-+# endif
-+#endif
-+
-+#endif /* _OPENSWAN_KVERSIONS_H */
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_life.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,112 @@
-+/*
-+ * Definitions relevant to IPSEC lifetimes
-+ * Copyright (C) 2001 Richard Guy Briggs
-+ * and Michael Richardson
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_life.h,v 1.4 2004/04/05 19:55:05 mcr Exp $
-+ *
-+ * This file derived from ipsec_xform.h on 2001/9/18 by mcr.
-+ *
-+ */
-+
-+/*
-+ * This file describes the book keeping fields for the
-+ * IPsec Security Association Structure. ("ipsec_sa")
-+ *
-+ * This structure is never allocated directly by kernel code,
-+ * (it is always a static/auto or is part of a structure)
-+ * so it does not have a reference count.
-+ *
-+ */
-+
-+#ifndef _IPSEC_LIFE_H_
-+
-+/*
-+ * _count is total count.
-+ * _hard is hard limit (kill SA after this number)
-+ * _soft is soft limit (try to renew SA after this number)
-+ * _last is used in some special cases.
-+ *
-+ */
-+
-+struct ipsec_lifetime64
-+{
-+ __u64 ipl_count;
-+ __u64 ipl_soft;
-+ __u64 ipl_hard;
-+ __u64 ipl_last;
-+};
-+
-+struct ipsec_lifetimes
-+{
-+ /* number of bytes processed */
-+ struct ipsec_lifetime64 ipl_bytes;
-+
-+ /* number of packets processed */
-+ struct ipsec_lifetime64 ipl_packets;
-+
-+ /* time since SA was added */
-+ struct ipsec_lifetime64 ipl_addtime;
-+
-+ /* time since SA was first used */
-+ struct ipsec_lifetime64 ipl_usetime;
-+
-+ /* from rfc2367:
-+ * For CURRENT, the number of different connections,
-+ * endpoints, or flows that the association has been
-+ * allocated towards. For HARD and SOFT, the number of
-+ * these the association may be allocated towards
-+ * before it expires. The concept of a connection,
-+ * flow, or endpoint is system specific.
-+ *
-+ * mcr(2001-9-18) it is unclear what purpose these serve for FreeSWAN.
-+ * They are maintained for PF_KEY compatibility.
-+ */
-+ struct ipsec_lifetime64 ipl_allocations;
-+};
-+
-+enum ipsec_life_alive {
-+ ipsec_life_harddied = -1,
-+ ipsec_life_softdied = 0,
-+ ipsec_life_okay = 1
-+};
-+
-+enum ipsec_life_type {
-+ ipsec_life_timebased = 1,
-+ ipsec_life_countbased= 0
-+};
-+
-+#define _IPSEC_LIFE_H_
-+#endif /* _IPSEC_LIFE_H_ */
-+
-+
-+/*
-+ * $Log: ipsec_life.h,v $
-+ * Revision 1.4 2004/04/05 19:55:05 mcr
-+ * Moved from linux/include/freeswan/ipsec_life.h,v
-+ *
-+ * Revision 1.3 2002/04/24 07:36:46 mcr
-+ * Moved from ./klips/net/ipsec/ipsec_life.h,v
-+ *
-+ * Revision 1.2 2001/11/26 09:16:14 rgb
-+ * Merge MCR's ipsec_sa, eroute, proc and struct lifetime changes.
-+ *
-+ * Revision 1.1.2.1 2001/09/25 02:25:58 mcr
-+ * lifetime structure created and common functions created.
-+ *
-+ *
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_mast.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,59 @@
-+#ifndef _IPSEC_MAST_H
-+#define _IPSEC_MAST_H
-+
-+#ifdef CONFIG_KLIPS_DEBUG
-+#define DB_MAST_INIT 0x0001
-+#define DB_MAST_PROCFS 0x0002
-+#define DB_MAST_XMIT 0x0010
-+#define DB_MAST_OHDR 0x0020
-+#define DB_MAST_CROUT 0x0040
-+#define DB_MAST_OXFS 0x0080
-+#define DB_MAST_REVEC 0x0100
-+#define DB_MAST_ENCAP 0x0200
-+#endif /* CONFIG_KLIPS_DEBUG */
-+
-+struct ipsecmastconf {
-+ __u32 cf_cmd;
-+ union
-+ {
-+ char cfu_name[12];
-+ } cf_u;
-+#define cf_name cf_u.cfu_name
-+};
-+
-+struct mastpriv
-+{
-+ struct sk_buff_head sendq;
-+ struct wait_queue *wait_queue;
-+ int (*hard_header) (struct sk_buff *skb,
-+ struct net_device *dev,
-+ unsigned short type,
-+ void *daddr,
-+ void *saddr,
-+ unsigned len);
-+#if 0
-+ char locked;
-+ int (*hard_start_xmit) (struct sk_buff *skb,
-+ struct net_device *dev);
-+ int (*rebuild_header)(struct sk_buff *skb);
-+ int (*set_mac_address)(struct net_device *dev, void *addr);
-+ void (*header_cache_bind)(struct hh_cache **hhp, struct net_device *dev,
-+ unsigned short htype, __u32 daddr);
-+ void (*header_cache_update)(struct hh_cache *hh,
-+ struct net_device *dev,
-+ unsigned char * haddr);
-+ struct net_device_stats *(*get_stats)(struct net_device *dev);
-+#endif
-+ struct net_device_stats mystats;
-+ int mtu; /* What is the desired MTU? */
-+};
-+
-+extern int ipsec_mast_init_devices(void);
-+extern int ipsec_mast_deletenum(int vifnum);
-+extern int ipsec_mast_createnum(int vifnum);
-+extern struct net_device *ipsec_mast_get_device(int vifnum);
-+extern unsigned int ipsec_mast_is_transport(int vifnum);
-+
-+
-+
-+#endif
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_md5h.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,143 @@
-+/*
-+ * RCSID $Id: ipsec_md5h.h,v 1.10 2004/09/08 17:21:35 ken Exp $
-+ */
-+
-+/*
-+ * The rest of this file is Copyright RSA DSI. See the following comments
-+ * for the full Copyright notice.
-+ */
-+
-+#ifndef _IPSEC_MD5H_H_
-+#define _IPSEC_MD5H_H_
-+
-+/* GLOBAL.H - RSAREF types and constants
-+ */
-+
-+/* PROTOTYPES should be set to one if and only if the compiler supports
-+ function argument prototyping.
-+ The following makes PROTOTYPES default to 0 if it has not already
-+ been defined with C compiler flags.
-+ */
-+#ifndef PROTOTYPES
-+#define PROTOTYPES 1
-+#endif /* !PROTOTYPES */
-+
-+/* POINTER defines a generic pointer type */
-+typedef __u8 *POINTER;
-+
-+/* UINT2 defines a two byte word */
-+typedef __u16 UINT2;
-+
-+/* UINT4 defines a four byte word */
-+typedef __u32 UINT4;
-+
-+/* PROTO_LIST is defined depending on how PROTOTYPES is defined above.
-+ If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it
-+ returns an empty list.
-+ */
-+
-+#if PROTOTYPES
-+#define PROTO_LIST(list) list
-+#else /* PROTOTYPES */
-+#define PROTO_LIST(list) ()
-+#endif /* PROTOTYPES */
-+
-+
-+/* MD5.H - header file for MD5C.C
-+ */
-+
-+/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
-+rights reserved.
-+
-+License to copy and use this software is granted provided that it
-+is identified as the "RSA Data Security, Inc. MD5 Message-Digest
-+Algorithm" in all material mentioning or referencing this software
-+or this function.
-+
-+License is also granted to make and use derivative works provided
-+that such works are identified as "derived from the RSA Data
-+Security, Inc. MD5 Message-Digest Algorithm" in all material
-+mentioning or referencing the derived work.
-+
-+RSA Data Security, Inc. makes no representations concerning either
-+the merchantability of this software or the suitability of this
-+software for any particular purpose. It is provided "as is"
-+without express or implied warranty of any kind.
-+
-+These notices must be retained in any copies of any part of this
-+documentation and/or software.
-+ */
-+
-+/* MD5 context. */
-+typedef struct {
-+ UINT4 state[4]; /* state (ABCD) */
-+ UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */
-+ unsigned char buffer[64]; /* input buffer */
-+} MD5_CTX;
-+
-+void osMD5Init PROTO_LIST ((void *));
-+void osMD5Update PROTO_LIST
-+ ((void *, unsigned char *, __u32));
-+void osMD5Final PROTO_LIST ((unsigned char [16], void *));
-+
-+#endif /* _IPSEC_MD5H_H_ */
-+
-+/*
-+ * $Log: ipsec_md5h.h,v $
-+ * Revision 1.10 2004/09/08 17:21:35 ken
-+ * Rename MD5* -> osMD5 functions to prevent clashes with other symbols exported by kernel modules (CIFS in 2.6 initiated this)
-+ *
-+ * Revision 1.9 2004/04/05 19:55:05 mcr
-+ * Moved from linux/include/freeswan/ipsec_md5h.h,v
-+ *
-+ * Revision 1.8 2002/09/10 01:45:09 mcr
-+ * changed type of MD5_CTX and SHA1_CTX to void * so that
-+ * the function prototypes would match, and could be placed
-+ * into a pointer to a function.
-+ *
-+ * Revision 1.7 2002/04/24 07:36:46 mcr
-+ * Moved from ./klips/net/ipsec/ipsec_md5h.h,v
-+ *
-+ * Revision 1.6 1999/12/13 13:59:13 rgb
-+ * Quick fix to argument size to Update bugs.
-+ *
-+ * Revision 1.5 1999/12/07 18:16:23 rgb
-+ * Fixed comments at end of #endif lines.
-+ *
-+ * Revision 1.4 1999/04/06 04:54:26 rgb
-+ * Fix/Add RCSID Id: and Log: bits to make PHMDs happy. This includes
-+ * patch shell fixes.
-+ *
-+ * Revision 1.3 1999/01/22 06:19:58 rgb
-+ * 64-bit clean-up.
-+ *
-+ * Revision 1.2 1998/11/30 13:22:54 rgb
-+ * Rationalised all the klips kernel file headers. They are much shorter
-+ * now and won't conflict under RH5.2.
-+ *
-+ * Revision 1.1 1998/06/18 21:27:48 henry
-+ * move sources from klips/src to klips/net/ipsec, to keep stupid
-+ * kernel-build scripts happier in the presence of symlinks
-+ *
-+ * Revision 1.2 1998/04/23 20:54:03 rgb
-+ * Fixed md5 and sha1 include file nesting issues, to be cleaned up when
-+ * verified.
-+ *
-+ * Revision 1.1 1998/04/09 03:04:21 henry
-+ * sources moved up from linux/net/ipsec
-+ * these two include files modified not to include others except in kernel
-+ *
-+ * Revision 1.1.1.1 1998/04/08 05:35:03 henry
-+ * RGB's ipsec-0.8pre2.tar.gz ipsec-0.8
-+ *
-+ * Revision 0.4 1997/01/15 01:28:15 ji
-+ * No changes.
-+ *
-+ * Revision 0.3 1996/11/20 14:48:53 ji
-+ * Release update only.
-+ *
-+ * Revision 0.2 1996/11/02 00:18:33 ji
-+ * First limited release.
-+ *
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_param.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,268 @@
-+/*
-+ * @(#) Openswan tunable paramaters
-+ *
-+ * Copyright (C) 2001 Richard Guy Briggs
-+ * and Michael Richardson
-+ * Copyright (C) 2004 Michael Richardson
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ *
-+ */
-+
-+/*
-+ * This file provides a set of #define's which may be tuned by various
-+ * people/configurations. It keeps all compile-time tunables in one place.
-+ *
-+ * This file should be included before all other IPsec kernel-only files.
-+ *
-+ */
-+
-+#ifndef _IPSEC_PARAM_H_
-+
-+#ifdef __KERNEL__
-+
-+#include "openswan/ipsec_kversion.h"
-+
-+/* Set number of ipsecX virtual devices here. */
-+/* This must be < exp(field width of IPSEC_DEV_FORMAT) */
-+/* It must also be reasonable so as not to overload the memory and CPU */
-+/* constraints of the host. */
-+#ifdef CONFIG_KLIPS_IF_MAX
-+#define IPSEC_NUM_IFMAX CONFIG_KLIPS_IF_MAX
-+#endif
-+#ifndef IPSEC_NUM_IFMAX
-+#define IPSEC_NUM_IFMAX 64
-+#endif
-+
-+/* default number of ipsecX devices to create */
-+#define IPSEC_NUM_IF 2
-+
-+/* The field width must be < IF_NAM_SIZ - strlen("ipsec") - 1. */
-+/* With "ipsec" being 5 characters, that means 10 is the max field width */
-+/* but machine memory and CPU constraints are not likely to tollerate */
-+/* more than 3 digits. The default is one digit. */
-+/* Update: userland scripts get upset if they can't find "ipsec0", so */
-+/* for now, no "0"-padding should be used (which would have been helpful */
-+/* to make text-searches work */
-+#define IPSEC_DEV_FORMAT "ipsec%d"
-+#define MAST_DEV_FORMAT "mast%d"
-+
-+/* For, say, 500 virtual ipsec devices, I would recommend: */
-+/* #define IPSEC_NUM_IF 500 */
-+/* #define IPSEC_DEV_FORMAT "ipsec%03d" */
-+/* Note that the "interfaces=" line in /etc/ipsec.conf would be, um, challenging. */
-+
-+/* use dynamic ipsecX device allocation */
-+#ifndef CONFIG_KLIPS_DYNDEV
-+#define CONFIG_KLIPS_DYNDEV 1
-+#endif /* CONFIG_KLIPS_DYNDEV */
-+
-+
-+#ifdef CONFIG_KLIPS_BIGGATE
-+# define SADB_HASHMOD 8069
-+#else /* CONFIG_KLIPS_BIGGATE */
-+# define SADB_HASHMOD 257
-+#endif /* CONFIG_KLIPS_BIGGATE */
-+
-+#endif /* __KERNEL__ */
-+
-+/*
-+ * This is for the SA reference table. This number is related to the
-+ * maximum number of SAs that KLIPS can concurrently deal with, plus enough
-+ * space for keeping expired SAs around.
-+ *
-+ * TABLE_IDX_WIDTH is the number of bits that we will use.
-+ * MAIN_TABLE_WIDTH is the number of bits used for the primary index table.
-+ *
-+ */
-+#ifndef IPSEC_SA_REF_MAINTABLE_IDX_WIDTH
-+# define IPSEC_SA_REF_MAINTABLE_IDX_WIDTH 4
-+#endif
-+
-+#ifndef IPSEC_SA_REF_FREELIST_NUM_ENTRIES
-+# define IPSEC_SA_REF_FREELIST_NUM_ENTRIES 256
-+#endif
-+
-+#ifndef IPSEC_SA_REF_CODE
-+# define IPSEC_SA_REF_CODE 1
-+#endif
-+
-+#ifdef __KERNEL__
-+/* This is defined for 2.4, but not 2.2.... */
-+#ifndef ARPHRD_VOID
-+# define ARPHRD_VOID 0xFFFF
-+#endif
-+
-+/* always turn on IPIP mode */
-+#ifndef CONFIG_KLIPS_IPIP
-+#define CONFIG_KLIPS_IPIP 1
-+#endif
-+
-+/*
-+ * Worry about PROC_FS stuff
-+ */
-+#if defined(PROC_FS_2325)
-+/* kernel 2.4 */
-+# define IPSEC_PROC_LAST_ARG ,int *eof,void *data
-+# define IPSEC_PROCFS_DEBUG_NO_STATIC
-+# define IPSEC_PROC_SUBDIRS
-+#else
-+/* kernel <2.4 */
-+# define IPSEC_PROCFS_DEBUG_NO_STATIC DEBUG_NO_STATIC
-+
-+# ifndef PROC_NO_DUMMY
-+# define IPSEC_PROC_LAST_ARG , int dummy
-+# else
-+# define IPSEC_PROC_LAST_ARG
-+# endif /* !PROC_NO_DUMMY */
-+#endif /* PROC_FS_2325 */
-+
-+#if !defined(LINUX_KERNEL_HAS_SNPRINTF)
-+/* GNU CPP specific! */
-+# define snprintf(buf, len, fmt...) sprintf(buf, ##fmt)
-+#endif /* !LINUX_KERNEL_HAS_SNPRINTF */
-+
-+#ifdef SPINLOCK
-+# ifdef SPINLOCK_23
-+# include /* *lock* */
-+# else /* SPINLOCK_23 */
-+# include /* *lock* */
-+# endif /* SPINLOCK_23 */
-+#endif /* SPINLOCK */
-+
-+#ifndef KLIPS_FIXES_DES_PARITY
-+# define KLIPS_FIXES_DES_PARITY 1
-+#endif /* !KLIPS_FIXES_DES_PARITY */
-+
-+/* we don't really want to print these unless there are really big problems */
-+#ifndef KLIPS_DIVULGE_CYPHER_KEY
-+# define KLIPS_DIVULGE_CYPHER_KEY 0
-+#endif /* !KLIPS_DIVULGE_CYPHER_KEY */
-+
-+#ifndef KLIPS_DIVULGE_HMAC_KEY
-+# define KLIPS_DIVULGE_HMAC_KEY 0
-+#endif /* !KLIPS_DIVULGE_HMAC_KEY */
-+
-+#ifndef IPSEC_DISALLOW_IPOPTIONS
-+# define IPSEC_DISALLOW_IPOPTIONS 1
-+#endif /* !KLIPS_DIVULGE_HMAC_KEY */
-+
-+/* extra toggles for regression testing */
-+#ifdef CONFIG_KLIPS_REGRESS
-+
-+/*
-+ * should pfkey_acquire() become 100% lossy?
-+ *
-+ */
-+extern int sysctl_ipsec_regress_pfkey_lossage;
-+#ifndef KLIPS_PFKEY_ACQUIRE_LOSSAGE
-+# ifdef CONFIG_KLIPS_PFKEY_ACQUIRE_LOSSAGE
-+# define KLIPS_PFKEY_ACQUIRE_LOSSAGE 100
-+# else /* CONFIG_KLIPS_PFKEY_ACQUIRE_LOSSAGE */
-+/* not by default! */
-+# define KLIPS_PFKEY_ACQUIRE_LOSSAGE 0
-+# endif /* CONFIG_KLIPS_PFKEY_ACQUIRE_LOSSAGE */
-+#endif /* KLIPS_PFKEY_ACQUIRE_LOSSAGE */
-+
-+#endif /* CONFIG_KLIPS_REGRESS */
-+
-+
-+/*
-+ * debugging routines.
-+ */
-+#ifdef CONFIG_KLIPS_DEBUG
-+ #define KLIPS_ERROR(flag, format, args...) if(printk_ratelimit() || flag) printk(KERN_ERR "KLIPS " format, ## args)
-+ #define KLIPS_PRINT(flag, format, args...) \
-+ ((flag) ? printk(KERN_INFO format , ## args) : 0)
-+ #define KLIPS_PRINTMORE(flag, format, args...) \
-+ ((flag) ? printk(format , ## args) : 0)
-+ #define KLIPS_IP_PRINT(flag, ip) \
-+ ((flag) ? ipsec_print_ip(ip) : 0)
-+ #define KLIPS_SATOT(flag, sa, format, dst, dstlen) \
-+ ((flag) ? satot(sa, format, dst, dstlen) : 0)
-+#else /* CONFIG_KLIPS_DEBUG */
-+ #define KLIPS_ERROR(flag, format, args...) if(printk_ratelimit()) printk(KERN_ERR "KLIPS " format, ## args)
-+ #define KLIPS_PRINT(flag, format, args...) do ; while(0)
-+ #define KLIPS_PRINTMORE(flag, format, args...) do ; while(0)
-+ #define KLIPS_IP_PRINT(flag, ip) do ; while(0)
-+ #define KLIPS_SATOT(flag, sa, format, dst, dstlen) (0)
-+#endif /* CONFIG_KLIPS_DEBUG */
-+
-+
-+/*
-+ * Stupid kernel API differences in APIs. Not only do some
-+ * kernels not have ip_select_ident, but some have differing APIs,
-+ * and SuSE has one with one parameter, but no way of checking to
-+ * see what is really what.
-+ */
-+
-+#ifdef SUSE_LINUX_2_4_19_IS_STUPID
-+#define KLIPS_IP_SELECT_IDENT(iph, skb) ip_select_ident(iph)
-+#else
-+
-+/* simplest case, nothing */
-+#if !defined(IP_SELECT_IDENT)
-+#define KLIPS_IP_SELECT_IDENT(iph, skb) do { iph->id = htons(ip_id_count++); } while(0)
-+#endif
-+
-+/* kernels > 2.3.37-ish */
-+#if defined(IP_SELECT_IDENT) && !defined(IP_SELECT_IDENT_NEW)
-+#define KLIPS_IP_SELECT_IDENT(iph, skb) ip_select_ident(iph, skb->dst)
-+#endif
-+
-+/* kernels > 2.4.2 */
-+#if defined(IP_SELECT_IDENT) && defined(IP_SELECT_IDENT_NEW)
-+#define KLIPS_IP_SELECT_IDENT(iph, skb) ip_select_ident(iph, skb->dst, NULL)
-+#endif
-+
-+#endif /* SUSE_LINUX_2_4_19_IS_STUPID */
-+
-+/*
-+ * make klips fail test:east-espiv-01.
-+ * exploit is at testing/attacks/espiv
-+ *
-+ */
-+#define KLIPS_IMPAIRMENT_ESPIV_CBC_ATTACK 0
-+
-+
-+/* IP_FRAGMENT_LINEARIZE is set in freeswan.h if Kernel > 2.4.4 */
-+#ifndef IP_FRAGMENT_LINEARIZE
-+# define IP_FRAGMENT_LINEARIZE 0
-+#endif /* IP_FRAGMENT_LINEARIZE */
-+#endif /* __KERNEL__ */
-+
-+#ifdef NEED_INET_PROTOCOL
-+#define inet_protocol net_protocol
-+#endif
-+
-+#if defined(CONFIG_IPSEC_NAT_TRAVERSAL) && CONFIG_IPSEC_NAT_TRAVERSAL
-+#define NAT_TRAVERSAL 1
-+#else
-+/* let people either #undef, or #define = 0 it */
-+#ifdef CONFIG_IPSEC_NAT_TRAVERSAL
-+#undef CONFIG_IPSEC_NAT_TRAVERSAL
-+#endif
-+#endif
-+
-+#ifndef IPSEC_DEFAULT_TTL
-+#define IPSEC_DEFAULT_TTL 64
-+#endif
-+
-+#define _IPSEC_PARAM_H_
-+#endif /* _IPSEC_PARAM_H_ */
-+
-+/*
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_policy.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,239 @@
-+#ifndef _IPSEC_POLICY_H
-+/*
-+ * policy interface file between pluto and applications
-+ * Copyright (C) 2003 Michael Richardson
-+ *
-+ * This library is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU Library General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version. See .
-+ *
-+ * This library 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 Library General Public
-+ * License for more details.
-+ *
-+ * RCSID $Id: ipsec_policy.h,v 1.8 2005/07/26 01:12:38 mcr Exp $
-+ */
-+#define _IPSEC_POLICY_H /* seen it, no need to see it again */
-+
-+
-+/*
-+ * this file defines an interface between an application (or rather an
-+ * application library) and a key/policy daemon. It provides for inquiries
-+ * as to the current state of a connected socket, as well as for general
-+ * questions.
-+ *
-+ * In general, the interface is defined as a series of functional interfaces,
-+ * and the policy messages should be internal. However, because this is in
-+ * fact an ABI between pieces of the system that may get compiled and revised
-+ * seperately, this ABI must be public and revision controlled.
-+ *
-+ * It is expected that the daemon will always support previous versions.
-+ */
-+
-+#define IPSEC_POLICY_MSG_REVISION (unsigned)200305061
-+
-+enum ipsec_policy_command {
-+ IPSEC_CMD_QUERY_FD = 1,
-+ IPSEC_CMD_QUERY_HOSTPAIR = 2,
-+ IPSEC_CMD_QUERY_DSTONLY = 3,
-+};
-+
-+struct ipsec_policy_msg_head {
-+ u_int32_t ipm_version;
-+ u_int32_t ipm_msg_len;
-+ u_int32_t ipm_msg_type;
-+ u_int32_t ipm_msg_seq;
-+};
-+
-+enum ipsec_privacy_quality {
-+ IPSEC_PRIVACY_NONE = 0,
-+ IPSEC_PRIVACY_INTEGRAL = 4, /* not private at all. AH-like */
-+ IPSEC_PRIVACY_UNKNOWN = 8, /* something is claimed, but details unavail */
-+ IPSEC_PRIVACY_ROT13 = 12, /* trivially breakable, i.e. 1DES */
-+ IPSEC_PRIVACY_GAK = 16, /* known eavesdroppers */
-+ IPSEC_PRIVACY_PRIVATE = 32, /* secure for at least a decade */
-+ IPSEC_PRIVACY_STRONG = 64, /* ridiculously secure */
-+ IPSEC_PRIVACY_TORTOISE = 192, /* even stronger, but very slow */
-+ IPSEC_PRIVACY_OTP = 224, /* some kind of *true* one time pad */
-+};
-+
-+enum ipsec_bandwidth_quality {
-+ IPSEC_QOS_UNKNOWN = 0, /* unknown bandwidth */
-+ IPSEC_QOS_INTERACTIVE = 16, /* reasonably moderate jitter, moderate fast.
-+ Good enough for telnet/ssh. */
-+ IPSEC_QOS_VOIP = 32, /* faster crypto, predicable jitter */
-+ IPSEC_QOS_FTP = 64, /* higher throughput crypto, perhaps hardware
-+ offloaded, but latency/jitter may be bad */
-+ IPSEC_QOS_WIRESPEED = 128, /* expect to be able to fill your pipe */
-+};
-+
-+/* moved from programs/pluto/constants.h */
-+/* IPsec AH transform values
-+ * RFC2407 The Internet IP security Domain of Interpretation for ISAKMP 4.4.3
-+ * and in http://www.iana.org/assignments/isakmp-registry
-+ */
-+enum ipsec_authentication_algo {
-+ AH_NONE=0,
-+ AH_MD5=2,
-+ AH_SHA=3,
-+ AH_DES=4,
-+ AH_SHA2_256=5,
-+ AH_SHA2_384=6,
-+ AH_SHA2_512=7,
-+ AH_RIPEMD=8,
-+ AH__AES_XCBC_MAC=9,
-+ AH_RSA=10
-+};
-+
-+/* IPsec ESP transform values
-+ * RFC2407 The Internet IP security Domain of Interpretation for ISAKMP 4.4.4
-+ * and from http://www.iana.org/assignments/isakmp-registry
-+ */
-+
-+enum ipsec_cipher_algo {
-+ ESP_reserved=0,
-+ ESP_DES_IV64=1,
-+ ESP_DES=2,
-+ ESP_3DES=3,
-+ ESP_RC5=4,
-+ ESP_IDEA=5,
-+ ESP_CAST=6,
-+ ESP_BLOWFISH=7,
-+ ESP_3IDEA=8,
-+ ESP_DES_IV32=9,
-+ ESP_RC4=10,
-+ ESP_NULL=11,
-+ ESP_AES=12, /* 128 bit AES */
-+ ESP_AES_CTR=13,
-+ ESP_AES_CCM_8=14,
-+ ESP_AES_CCM_12=15,
-+ ESP_AES_CCM_16=16,
-+ /* unassigned=17 */
-+ ESP_AES_GCM_8=18,
-+ ESP_AES_GCM_12=19,
-+ ESP_AES_GCM_16=20,
-+ ESP_SEED_CBC=21,
-+ ESP_CAMELLIA=22,
-+ /* 249-255 reserved for private use */
-+};
-+
-+/* IPCOMP transform values
-+ * RFC2407 The Internet IP security Domain of Interpretation for ISAKMP 4.4.5
-+ */
-+
-+enum ipsec_comp_algo {
-+ IPCOMP_OUI= 1,
-+ IPCOMP_DEFLATE= 2,
-+ IPCOMP_LZS= 3,
-+ IPCOMP_V42BIS= 4
-+};
-+
-+/* Identification type values
-+ * RFC 2407 The Internet IP security Domain of Interpretation for
-+ * ISAKMP 4.6.2.1
-+ *
-+ * Also for RFC4306.
-+ *
-+ * enum ident_names;
-+ */
-+
-+enum ipsec_id_type {
-+ ID_FROMCERT= (-3), /* taken from certificate */
-+ ID_IMPOSSIBLE= (-2), /* private to Pluto */
-+ ID_MYID= (-1), /* private to Pluto */
-+ ID_NONE= 0, /* private to Pluto */
-+ ID_IPV4_ADDR= 1,
-+ ID_FQDN= 2,
-+ ID_USER_FQDN= 3,
-+ ID_RFC822_ADDR = ID_USER_FQDN, /* RFC4306 */
-+ ID_IPV4_ADDR_SUBNET= 4,
-+ ID_IPV6_ADDR= 5,
-+ ID_IPV6_ADDR_SUBNET= 6,
-+ ID_IPV4_ADDR_RANGE= 7,
-+ ID_IPV6_ADDR_RANGE= 8,
-+ ID_DER_ASN1_DN= 9,
-+ ID_DER_ASN1_GN= 10,
-+ ID_KEY_ID= 11
-+};
-+
-+/* Certificate type values
-+ * RFC 2408 ISAKMP, chapter 3.9
-+ */
-+enum ipsec_cert_type {
-+ CERT_NONE= 0, /* none, or guess from file contents */
-+ CERT_PKCS7_WRAPPED_X509= 1, /* self-signed certificate from disk */
-+ CERT_PGP= 2,
-+ CERT_DNS_SIGNED_KEY= 3, /* KEY RR from DNS */
-+ CERT_X509_SIGNATURE= 4,
-+ CERT_X509_KEY_EXCHANGE= 5,
-+ CERT_KERBEROS_TOKENS= 6,
-+ CERT_CRL= 7,
-+ CERT_ARL= 8,
-+ CERT_SPKI= 9,
-+ CERT_X509_ATTRIBUTE= 10,
-+ CERT_RAW_RSA= 11, /* raw RSA from config file */
-+};
-+
-+/* a SIG record in ASCII */
-+struct ipsec_dns_sig {
-+ char fqdn[256];
-+ char dns_sig[768]; /* empty string if not signed */
-+};
-+
-+struct ipsec_raw_key {
-+ char id_name[256];
-+ char fs_keyid[8];
-+};
-+
-+struct ipsec_identity {
-+ enum ipsec_id_type ii_type;
-+ enum ipsec_cert_type ii_format;
-+ union {
-+ struct ipsec_dns_sig ipsec_dns_signed;
-+ /* some thing for PGP */
-+ /* some thing for PKIX */
-+ struct ipsec_raw_key ipsec_raw_key;
-+ } ii_credential;
-+};
-+
-+#define IPSEC_MAX_CREDENTIALS 32
-+
-+struct ipsec_policy_cmd_query {
-+ struct ipsec_policy_msg_head head;
-+
-+ /* Query section */
-+ ip_address query_local; /* us */
-+ ip_address query_remote; /* them */
-+ u_int8_t proto; /* TCP, ICMP, etc. */
-+ u_short src_port, dst_port;
-+
-+ /* Answer section */
-+ enum ipsec_privacy_quality strength;
-+ enum ipsec_bandwidth_quality bandwidth;
-+ enum ipsec_authentication_algo auth_detail;
-+ enum ipsec_cipher_algo esp_detail;
-+ enum ipsec_comp_algo comp_detail;
-+
-+ int credential_count;
-+
-+ struct ipsec_identity credentials[IPSEC_MAX_CREDENTIALS];
-+};
-+
-+#define IPSEC_POLICY_SOCKET "/var/run/pluto/pluto.info"
-+
-+/* prototypes */
-+extern err_t ipsec_policy_lookup(int fd, struct ipsec_policy_cmd_query *result);
-+extern err_t ipsec_policy_init(void);
-+extern err_t ipsec_policy_final(void);
-+extern err_t ipsec_policy_readmsg(int policysock,
-+ unsigned char *buf, size_t buflen);
-+extern err_t ipsec_policy_sendrecv(unsigned char *buf, size_t buflen);
-+extern err_t ipsec_policy_cgilookup(struct ipsec_policy_cmd_query *result);
-+
-+
-+extern const char *ipsec_policy_version_code(void);
-+extern const char *ipsec_policy_version_string(void);
-+
-+#endif /* _IPSEC_POLICY_H */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_proto.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,195 @@
-+/*
-+ * @(#) prototypes for FreeSWAN functions
-+ *
-+ * Copyright (C) 2001 Richard Guy Briggs
-+ * and Michael Richardson
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_proto.h,v 1.14 2005/04/29 04:50:03 mcr Exp $
-+ *
-+ */
-+
-+#ifndef _IPSEC_PROTO_H_
-+
-+#include "ipsec_param.h"
-+
-+/*
-+ * This file is a kernel only file that declares prototypes for
-+ * all intra-module function calls and global data structures.
-+ *
-+ * Include this file last.
-+ *
-+ */
-+
-+/* forward references */
-+enum ipsec_direction;
-+enum ipsec_life_type;
-+struct ipsec_lifetime64;
-+struct ident;
-+struct sockaddr_encap;
-+struct ipsec_sa;
-+
-+/* ipsec_init.c */
-+extern struct prng ipsec_prng;
-+
-+/* ipsec_sa.c */
-+extern struct ipsec_sa *ipsec_sadb_hash[SADB_HASHMOD];
-+extern spinlock_t tdb_lock;
-+extern int ipsec_sadb_init(void);
-+extern int ipsec_sadb_cleanup(__u8);
-+
-+extern struct ipsec_sa *ipsec_sa_alloc(int*error);
-+
-+
-+extern struct ipsec_sa *ipsec_sa_getbyid(ip_said *);
-+extern /* void */ int ipsec_sa_add(struct ipsec_sa *);
-+
-+extern int ipsec_sa_init(struct ipsec_sa *ipsp);
-+
-+/* debug declarations */
-+
-+/* ipsec_proc.c */
-+extern int ipsec_proc_init(void);
-+extern void ipsec_proc_cleanup(void);
-+
-+/* ipsec_rcv.c */
-+extern int ipsec_rcv(struct sk_buff *skb);
-+extern int klips26_rcv_encap(struct sk_buff *skb, __u16 encap_type);
-+
-+/* ipsec_xmit.c */
-+struct ipsec_xmit_state;
-+extern enum ipsec_xmit_value ipsec_xmit_sanity_check_dev(struct ipsec_xmit_state *ixs);
-+extern enum ipsec_xmit_value ipsec_xmit_sanity_check_skb(struct ipsec_xmit_state *ixs);
-+extern void ipsec_print_ip(struct iphdr *ip);
-+
-+
-+
-+/* ipsec_radij.c */
-+extern int ipsec_makeroute(struct sockaddr_encap *ea,
-+ struct sockaddr_encap *em,
-+ ip_said said,
-+ uint32_t pid,
-+ struct sk_buff *skb,
-+ struct ident *ident_s,
-+ struct ident *ident_d);
-+
-+extern int ipsec_breakroute(struct sockaddr_encap *ea,
-+ struct sockaddr_encap *em,
-+ struct sk_buff **first,
-+ struct sk_buff **last);
-+
-+int ipsec_radijinit(void);
-+int ipsec_cleareroutes(void);
-+int ipsec_radijcleanup(void);
-+
-+/* ipsec_life.c */
-+extern enum ipsec_life_alive ipsec_lifetime_check(struct ipsec_lifetime64 *il64,
-+ const char *lifename,
-+ const char *saname,
-+ enum ipsec_life_type ilt,
-+ enum ipsec_direction idir,
-+ struct ipsec_sa *ips);
-+
-+
-+extern int ipsec_lifetime_format(char *buffer,
-+ int buflen,
-+ char *lifename,
-+ enum ipsec_life_type timebaselife,
-+ struct ipsec_lifetime64 *lifetime);
-+
-+extern void ipsec_lifetime_update_hard(struct ipsec_lifetime64 *lifetime,
-+ __u64 newvalue);
-+
-+extern void ipsec_lifetime_update_soft(struct ipsec_lifetime64 *lifetime,
-+ __u64 newvalue);
-+
-+/* ipsec_snprintf.c */
-+extern int ipsec_snprintf(char * buf, ssize_t size, const char *fmt, ...);
-+extern void ipsec_dmp_block(char *s, caddr_t bb, int len);
-+
-+
-+/* ipsec_alg.c */
-+extern int ipsec_alg_init(void);
-+
-+
-+#ifdef CONFIG_KLIPS_DEBUG
-+
-+extern int debug_xform;
-+extern int debug_eroute;
-+extern int debug_spi;
-+extern int debug_netlink;
-+
-+#endif /* CONFIG_KLIPS_DEBUG */
-+
-+
-+
-+
-+#define _IPSEC_PROTO_H
-+#endif /* _IPSEC_PROTO_H_ */
-+
-+/*
-+ * $Log: ipsec_proto.h,v $
-+ * Revision 1.14 2005/04/29 04:50:03 mcr
-+ * prototypes for xmit and alg code.
-+ *
-+ * Revision 1.13 2005/04/17 03:46:07 mcr
-+ * added prototypes for ipsec_rcv() routines.
-+ *
-+ * Revision 1.12 2005/04/14 20:28:37 mcr
-+ * added additional prototypes.
-+ *
-+ * Revision 1.11 2005/04/14 01:16:28 mcr
-+ * add prototypes for snprintf.
-+ *
-+ * Revision 1.10 2005/04/13 22:47:28 mcr
-+ * make sure that forward references are available.
-+ *
-+ * Revision 1.9 2004/07/10 19:08:41 mcr
-+ * CONFIG_IPSEC -> CONFIG_KLIPS.
-+ *
-+ * Revision 1.8 2004/04/05 19:55:06 mcr
-+ * Moved from linux/include/freeswan/ipsec_proto.h,v
-+ *
-+ * Revision 1.7 2003/10/31 02:27:05 mcr
-+ * pulled up port-selector patches and sa_id elimination.
-+ *
-+ * Revision 1.6.30.1 2003/10/29 01:10:19 mcr
-+ * elimited "struct sa_id"
-+ *
-+ * Revision 1.6 2002/05/23 07:13:48 rgb
-+ * Added ipsec_sa_put() for releasing an ipsec_sa refcount.
-+ *
-+ * Revision 1.5 2002/05/14 02:36:40 rgb
-+ * Converted reference from ipsec_sa_put to ipsec_sa_add to avoid confusion
-+ * with "put" usage in the kernel.
-+ *
-+ * Revision 1.4 2002/04/24 07:36:47 mcr
-+ * Moved from ./klips/net/ipsec/ipsec_proto.h,v
-+ *
-+ * Revision 1.3 2002/04/20 00:12:25 rgb
-+ * Added esp IV CBC attack fix, disabled.
-+ *
-+ * Revision 1.2 2001/11/26 09:16:15 rgb
-+ * Merge MCR's ipsec_sa, eroute, proc and struct lifetime changes.
-+ *
-+ * Revision 1.1.2.1 2001/09/25 02:21:01 mcr
-+ * ipsec_proto.h created to keep prototypes rather than deal with
-+ * cyclic dependancies of structures and prototypes in .h files.
-+ *
-+ *
-+ *
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ *
-+ */
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_radij.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,179 @@
-+/*
-+ * @(#) Definitions relevant to the IPSEC <> radij tree interfacing
-+ * Copyright (C) 1996, 1997 John Ioannidis.
-+ * Copyright (C) 1998, 1999, 2000, 2001 Richard Guy Briggs.
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_radij.h,v 1.22 2004/07/10 19:08:41 mcr Exp $
-+ */
-+
-+#ifndef _IPSEC_RADIJ_H
-+
-+#include
-+
-+int ipsec_walk(char *);
-+
-+int ipsec_rj_walker_procprint(struct radij_node *, void *);
-+int ipsec_rj_walker_delete(struct radij_node *, void *);
-+
-+/* This structure is used to pass information between
-+ * ipsec_eroute_get_info and ipsec_rj_walker_procprint
-+ * (through rj_walktree) and between calls of ipsec_rj_walker_procprint.
-+ */
-+struct wsbuf
-+{
-+ /* from caller of ipsec_eroute_get_info: */
-+ char *const buffer; /* start of buffer provided */
-+ const int length; /* length of buffer provided */
-+ const off_t offset; /* file position of first character of interest */
-+ /* accumulated by ipsec_rj_walker_procprint: */
-+ int len; /* number of character filled into buffer */
-+ off_t begin; /* file position contained in buffer[0] (<=offset) */
-+};
-+
-+extern struct radij_node_head *rnh;
-+extern spinlock_t eroute_lock;
-+
-+struct eroute * ipsec_findroute(struct sockaddr_encap *);
-+
-+#define O1(x) (int)(((x)>>24)&0xff)
-+#define O2(x) (int)(((x)>>16)&0xff)
-+#define O3(x) (int)(((x)>>8)&0xff)
-+#define O4(x) (int)(((x))&0xff)
-+
-+#ifdef CONFIG_KLIPS_DEBUG
-+extern int debug_radij;
-+void rj_dumptrees(void);
-+
-+#define DB_RJ_DUMPTREES 0x0001
-+#define DB_RJ_FINDROUTE 0x0002
-+#endif /* CONFIG_KLIPS_DEBUG */
-+
-+#define _IPSEC_RADIJ_H
-+#endif
-+
-+/*
-+ * $Log: ipsec_radij.h,v $
-+ * Revision 1.22 2004/07/10 19:08:41 mcr
-+ * CONFIG_IPSEC -> CONFIG_KLIPS.
-+ *
-+ * Revision 1.21 2004/04/29 11:06:42 ken
-+ * Last bits from 2.06 procfs updates
-+ *
-+ * Revision 1.20 2004/04/06 02:49:08 mcr
-+ * pullup of algo code from alg-branch.
-+ *
-+ * Revision 1.19 2004/04/05 19:55:06 mcr
-+ * Moved from linux/include/freeswan/ipsec_radij.h,v
-+ *
-+ * Revision 1.18 2002/04/24 07:36:47 mcr
-+ * Moved from ./klips/net/ipsec/ipsec_radij.h,v
-+ *
-+ * Revision 1.17 2001/11/26 09:23:49 rgb
-+ * Merge MCR's ipsec_sa, eroute, proc and struct lifetime changes.
-+ *
-+ * Revision 1.16.2.1 2001/09/25 02:21:17 mcr
-+ * ipsec_proto.h created to keep prototypes rather than deal with
-+ * cyclic dependancies of structures and prototypes in .h files.
-+ *
-+ * Revision 1.16 2001/09/15 16:24:04 rgb
-+ * Re-inject first and last HOLD packet when an eroute REPLACE is done.
-+ *
-+ * Revision 1.15 2001/09/14 16:58:37 rgb
-+ * Added support for storing the first and last packets through a HOLD.
-+ *
-+ * Revision 1.14 2001/09/08 21:13:32 rgb
-+ * Added pfkey ident extension support for ISAKMPd. (NetCelo)
-+ *
-+ * Revision 1.13 2001/06/14 19:35:09 rgb
-+ * Update copyright date.
-+ *
-+ * Revision 1.12 2001/05/27 06:12:11 rgb
-+ * Added structures for pid, packet count and last access time to eroute.
-+ * Added packet count to beginning of /proc/net/ipsec_eroute.
-+ *
-+ * Revision 1.11 2000/09/08 19:12:56 rgb
-+ * Change references from DEBUG_IPSEC to CONFIG_IPSEC_DEBUG.
-+ *
-+ * Revision 1.10 1999/11/17 15:53:39 rgb
-+ * Changed all occurrences of #include "../../../lib/freeswan.h"
-+ * to #include which works due to -Ilibfreeswan in the
-+ * klips/net/ipsec/Makefile.
-+ *
-+ * Revision 1.9 1999/10/01 00:01:23 rgb
-+ * Added eroute structure locking.
-+ *
-+ * Revision 1.8 1999/04/11 00:28:59 henry
-+ * GPL boilerplate
-+ *
-+ * Revision 1.7 1999/04/06 04:54:26 rgb
-+ * Fix/Add RCSID Id: and Log: bits to make PHMDs happy. This includes
-+ * patch shell fixes.
-+ *
-+ * Revision 1.6 1999/01/22 06:23:26 rgb
-+ * Cruft clean-out.
-+ *
-+ * Revision 1.5 1998/10/25 02:42:08 rgb
-+ * Change return type on ipsec_breakroute and ipsec_makeroute and add an
-+ * argument to be able to transmit more infomation about errors.
-+ *
-+ * Revision 1.4 1998/10/19 14:44:29 rgb
-+ * Added inclusion of freeswan.h.
-+ * sa_id structure implemented and used: now includes protocol.
-+ *
-+ * Revision 1.3 1998/07/28 00:03:31 rgb
-+ * Comment out temporary inet_nto4u() kluge.
-+ *
-+ * Revision 1.2 1998/07/14 18:22:00 rgb
-+ * Add function to clear the eroute table.
-+ *
-+ * Revision 1.1 1998/06/18 21:27:49 henry
-+ * move sources from klips/src to klips/net/ipsec, to keep stupid
-+ * kernel-build scripts happier in the presence of symlinks
-+ *
-+ * Revision 1.5 1998/05/25 20:30:38 rgb
-+ * Remove temporary ipsec_walk, rj_deltree and rj_delnodes functions.
-+ *
-+ * Rename ipsec_rj_walker (ipsec_walk) to ipsec_rj_walker_procprint and
-+ * add ipsec_rj_walker_delete.
-+ *
-+ * Revision 1.4 1998/05/21 13:02:56 rgb
-+ * Imported definitions from ipsec_radij.c and radij.c to support /proc 3k
-+ * limit fix.
-+ *
-+ * Revision 1.3 1998/04/21 21:29:09 rgb
-+ * Rearrange debug switches to change on the fly debug output from user
-+ * space. Only kernel changes checked in at this time. radij.c was also
-+ * changed to temporarily remove buggy debugging code in rj_delete causing
-+ * an OOPS and hence, netlink device open errors.
-+ *
-+ * Revision 1.2 1998/04/14 17:30:39 rgb
-+ * Fix up compiling errors for radij tree memory reclamation.
-+ *
-+ * Revision 1.1 1998/04/09 03:06:10 henry
-+ * sources moved up from linux/net/ipsec
-+ *
-+ * Revision 1.1.1.1 1998/04/08 05:35:04 henry
-+ * RGB's ipsec-0.8pre2.tar.gz ipsec-0.8
-+ *
-+ * Revision 0.4 1997/01/15 01:28:15 ji
-+ * No changes.
-+ *
-+ * Revision 0.3 1996/11/20 14:39:04 ji
-+ * Minor cleanups.
-+ * Rationalized debugging code.
-+ *
-+ * Revision 0.2 1996/11/02 00:18:33 ji
-+ * First limited release.
-+ *
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_rcv.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,261 @@
-+/*
-+ *
-+ * Copyright (C) 1996, 1997 John Ioannidis.
-+ * Copyright (C) 1998, 1999, 2000, 2001 Richard Guy Briggs.
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_rcv.h,v 1.28.2.1 2006/07/10 15:52:20 paul Exp $
-+ */
-+
-+#ifndef IPSEC_RCV_H
-+#define IPSEC_RCV_H
-+
-+#include "openswan/ipsec_auth.h"
-+
-+#define DB_RX_PKTRX 0x0001
-+#define DB_RX_PKTRX2 0x0002
-+#define DB_RX_DMP 0x0004
-+#define DB_RX_IPSA 0x0010
-+#define DB_RX_XF 0x0020
-+#define DB_RX_IPAD 0x0040
-+#define DB_RX_INAU 0x0080
-+#define DB_RX_OINFO 0x0100
-+#define DB_RX_OINFO2 0x0200
-+#define DB_RX_OH 0x0400
-+#define DB_RX_REPLAY 0x0800
-+
-+#ifdef __KERNEL__
-+/* struct options; */
-+
-+#define __NO_VERSION__
-+#ifndef AUTOCONF_INCLUDED
-+#include
-+#endif /* for CONFIG_IP_FORWARD */
-+#ifdef CONFIG_MODULES
-+#include
-+#endif
-+#include
-+#include
-+
-+#ifdef CONFIG_KLIPS_OCF
-+#include
-+#endif
-+
-+#define IPSEC_BIRTH_TEMPLATE_MAXLEN 256
-+
-+struct ipsec_birth_reply {
-+ int packet_template_len;
-+ unsigned char packet_template[IPSEC_BIRTH_TEMPLATE_MAXLEN];
-+};
-+
-+extern struct ipsec_birth_reply ipsec_ipv4_birth_packet;
-+extern struct ipsec_birth_reply ipsec_ipv6_birth_packet;
-+
-+enum ipsec_rcv_value {
-+ IPSEC_RCV_PENDING=2,
-+ IPSEC_RCV_LASTPROTO=1,
-+ IPSEC_RCV_OK=0,
-+ IPSEC_RCV_BADPROTO=-1,
-+ IPSEC_RCV_BADLEN=-2,
-+ IPSEC_RCV_ESP_BADALG=-3,
-+ IPSEC_RCV_3DES_BADBLOCKING=-4,
-+ IPSEC_RCV_ESP_DECAPFAIL=-5,
-+ IPSEC_RCV_DECAPFAIL=-6,
-+ IPSEC_RCV_SAIDNOTFOUND=-7,
-+ IPSEC_RCV_IPCOMPALONE=-8,
-+ IPSEC_RCV_IPCOMPFAILED=-10,
-+ IPSEC_RCV_SAIDNOTLIVE=-11,
-+ IPSEC_RCV_FAILEDINBOUND=-12,
-+ IPSEC_RCV_LIFETIMEFAILED=-13,
-+ IPSEC_RCV_BADAUTH=-14,
-+ IPSEC_RCV_REPLAYFAILED=-15,
-+ IPSEC_RCV_AUTHFAILED=-16,
-+ IPSEC_RCV_REPLAYROLLED=-17,
-+ IPSEC_RCV_BAD_DECRYPT=-18,
-+ IPSEC_RCV_REALLYBAD=-19
-+};
-+
-+/*
-+ * state machine states
-+ */
-+
-+#define IPSEC_RSM_INIT 0 /* make it easy, starting state is 0 */
-+#define IPSEC_RSM_DECAP_INIT 1
-+#define IPSEC_RSM_DECAP_LOOKUP 2
-+#define IPSEC_RSM_AUTH_INIT 3
-+#define IPSEC_RSM_AUTH_DECAP 4
-+#define IPSEC_RSM_AUTH_CALC 5
-+#define IPSEC_RSM_AUTH_CHK 6
-+#define IPSEC_RSM_DECRYPT 7
-+#define IPSEC_RSM_DECAP_CONT 8 /* do we restart at IPSEC_RSM_DECAP_INIT */
-+#define IPSEC_RSM_CLEANUP 9
-+#define IPSEC_RSM_IPCOMP 10
-+#define IPSEC_RSM_COMPLETE 11
-+#define IPSEC_RSM_DONE 100
-+
-+struct ipsec_rcv_state {
-+ struct sk_buff *skb;
-+ struct net_device_stats *stats;
-+ struct iphdr *ipp; /* the IP header */
-+ struct ipsec_sa *ipsp; /* current SA being processed */
-+ struct ipsec_sa *lastipsp; /* last SA that was processed */
-+ int len; /* length of packet */
-+ int ilen; /* length of inner payload (-authlen) */
-+ int authlen; /* how big is the auth data at end */
-+ int hard_header_len; /* layer 2 size */
-+ int iphlen; /* how big is IP header */
-+ unsigned int transport_direct:1;
-+ struct auth_alg *authfuncs;
-+ ip_said said;
-+ char sa[SATOT_BUF];
-+ size_t sa_len;
-+ __u8 next_header;
-+ __u8 hash[AH_AMAX];
-+ char ipsaddr_txt[ADDRTOA_BUF];
-+ char ipdaddr_txt[ADDRTOA_BUF];
-+ __u8 *octx;
-+ __u8 *ictx;
-+ int ictx_len;
-+ int octx_len;
-+ union {
-+ struct {
-+ struct esphdr *espp;
-+ } espstuff;
-+ struct {
-+ struct ahhdr *ahp;
-+ } ahstuff;
-+ struct {
-+ struct ipcomphdr *compp;
-+ } ipcompstuff;
-+ } protostuff;
-+#ifdef CONFIG_IPSEC_NAT_TRAVERSAL
-+ __u8 natt_type;
-+ __u16 natt_sport;
-+ __u16 natt_dport;
-+ int natt_len;
-+#endif
-+
-+ /*
-+ * rcv state machine use
-+ */
-+ int state;
-+ int next_state;
-+ int auth_checked;
-+
-+#ifdef CONFIG_KLIPS_OCF
-+ struct work_struct workq;
-+#ifdef DECLARE_TASKLET
-+ struct tasklet_struct tasklet;
-+#endif
-+#endif
-+#ifndef NET_21
-+ struct net_device *devp;
-+ struct inet_protocol *protop;
-+#endif
-+ struct xform_functions *proto_funcs;
-+ __u8 proto;
-+ int replay;
-+ unsigned char *authenticator;
-+ int esphlen;
-+#ifdef CONFIG_KLIPS_ALG
-+ struct ipsec_alg_auth *ixt_a;
-+#endif
-+ __u8 ttl, tos;
-+ __u16 frag_off, check;
-+};
-+
-+extern void ipsec_rsm(struct ipsec_rcv_state *irs);
-+#ifdef HAVE_KMEM_CACHE_T
-+extern kmem_cache_t *ipsec_irs_cache;
-+#else
-+extern struct kmem_cache *ipsec_irs_cache;
-+#endif
-+extern int ipsec_irs_max;
-+extern atomic_t ipsec_irs_cnt;
-+
-+extern int
-+#ifdef PROTO_HANDLER_SINGLE_PARM
-+ipsec_rcv(struct sk_buff *skb);
-+#else /* PROTO_HANDLER_SINGLE_PARM */
-+ipsec_rcv(struct sk_buff *skb,
-+ unsigned short xlen);
-+#endif /* PROTO_HANDLER_SINGLE_PARM */
-+
-+#ifdef CONFIG_KLIPS_DEBUG
-+extern int debug_rcv;
-+#define ipsec_rcv_dmp(_x,_y, _z) if (debug_rcv && sysctl_ipsec_debug_verbose) ipsec_dmp_block(_x,_y,_z)
-+#else
-+#define ipsec_rcv_dmp(_x,_y, _z) do {} while(0)
-+#endif /* CONFIG_KLIPS_DEBUG */
-+
-+extern int sysctl_ipsec_inbound_policy_check;
-+#endif /* __KERNEL__ */
-+
-+extern int klips26_udp_encap_rcv(struct sock *sk, struct sk_buff *skb);
-+extern int klips26_rcv_encap(struct sk_buff *skb, __u16 encap_type);
-+
-+// manage ipsec rcv state objects
-+extern int ipsec_rcv_state_cache_init (void);
-+extern void ipsec_rcv_state_cache_cleanup (void);
-+
-+#endif /* IPSEC_RCV_H */
-+
-+/*
-+ * $Log: ipsec_rcv.h,v $
-+ * Revision 1.28.2.1 2006/07/10 15:52:20 paul
-+ * Fix for bug #642 by Bart Trojanowski
-+ *
-+ * Revision 1.28 2005/05/11 00:59:45 mcr
-+ * do not call debug routines if !defined KLIPS_DEBUG.
-+ *
-+ * Revision 1.27 2005/04/29 04:59:46 mcr
-+ * use ipsec_dmp_block.
-+ *
-+ * Revision 1.26 2005/04/13 22:48:35 mcr
-+ * added comments, and removed some log.
-+ * removed Linux 2.0 support.
-+ *
-+ * Revision 1.25 2005/04/08 18:25:37 mcr
-+ * prototype klips26 encap receive function
-+ *
-+ * Revision 1.24 2004/08/20 21:45:37 mcr
-+ * CONFIG_KLIPS_NAT_TRAVERSAL is not used in an attempt to
-+ * be 26sec compatible. But, some defines where changed.
-+ *
-+ * Revision 1.23 2004/08/03 18:17:40 mcr
-+ * in 2.6, use "net_device" instead of #define device->net_device.
-+ * this probably breaks 2.0 compiles.
-+ *
-+ * Revision 1.22 2004/07/10 19:08:41 mcr
-+ * CONFIG_IPSEC -> CONFIG_KLIPS.
-+ *
-+ * Revision 1.21 2004/04/06 02:49:08 mcr
-+ * pullup of algo code from alg-branch.
-+ *
-+ * Revision 1.20 2004/04/05 19:55:06 mcr
-+ * Moved from linux/include/freeswan/ipsec_rcv.h,v
-+ *
-+ * Revision 1.19 2003/12/15 18:13:09 mcr
-+ * when compiling with NAT traversal, don't assume that the
-+ * kernel has been patched, unless CONFIG_IPSEC_NAT_NON_ESP
-+ * is set.
-+ *
-+ * history elided 2005-04-12.
-+ *
-+ * Local Variables:
-+ * c-basic-offset:8
-+ * c-style:linux
-+ * End:
-+ *
-+ */
-+
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_sa.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,280 @@
-+/*
-+ * @(#) Definitions of IPsec Security Association (ipsec_sa)
-+ *
-+ * Copyright (C) 2001, 2002, 2003
-+ * Richard Guy Briggs
-+ * and Michael Richardson
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_sa.h,v 1.23.2.1 2007/09/05 02:31:15 paul Exp $
-+ *
-+ * This file derived from ipsec_xform.h on 2001/9/18 by mcr.
-+ *
-+ */
-+
-+/*
-+ * This file describes the IPsec Security Association Structure.
-+ *
-+ * This structure keeps track of a single transform that may be done
-+ * to a set of packets. It can describe applying the transform or
-+ * apply the reverse. (e.g. compression vs expansion). However, it
-+ * only describes one at a time. To describe both, two structures would
-+ * be used, but since the sides of the transform are performed
-+ * on different machines typically it is usual to have only one side
-+ * of each association.
-+ *
-+ */
-+
-+#ifndef _IPSEC_SA_H_
-+
-+#ifdef __KERNEL__
-+#include "openswan/ipsec_stats.h"
-+#include "openswan/ipsec_life.h"
-+#include "openswan/ipsec_eroute.h"
-+#endif /* __KERNEL__ */
-+#include "openswan/ipsec_param.h"
-+
-+#include "openswan/pfkeyv2.h"
-+
-+
-+/* SAs are held in a table.
-+ * Entries in this table are referenced by IPsecSAref_t values.
-+ * IPsecSAref_t values are conceptually subscripts. Because
-+ * we want to allocate the table piece-meal, the subscripting
-+ * is implemented with two levels, a bit like paged virtual memory.
-+ * This representation mechanism is known as an Iliffe Vector.
-+ *
-+ * The Main table (AKA the refTable) consists of 2^IPSEC_SA_REF_MAINTABLE_IDX_WIDTH
-+ * pointers to subtables.
-+ * Each subtable has 2^IPSEC_SA_REF_SUBTABLE_IDX_WIDTH entries, each of which
-+ * is a pointer to an SA.
-+ *
-+ * An IPsecSAref_t contains either an exceptional value (signified by the
-+ * high-order bit being on) or a reference to a table entry. A table entry
-+ * reference has the subtable subscript in the low-order
-+ * IPSEC_SA_REF_SUBTABLE_IDX_WIDTH bits and the Main table subscript
-+ * in the next lowest IPSEC_SA_REF_MAINTABLE_IDX_WIDTH bits.
-+ *
-+ * The Maintable entry for an IPsecSAref_t x, a pointer to its subtable, is
-+ * IPsecSAref2table(x). It is of type struct IPsecSArefSubTable *.
-+ *
-+ * The pointer to the SA for x is IPsecSAref2SA(x). It is of type
-+ * struct ipsec_sa*. The macro definition clearly shows the two-level
-+ * access needed to find the SA pointer.
-+ *
-+ * The Maintable is allocated when IPsec is initialized.
-+ * Each subtable is allocated when needed, but the first is allocated
-+ * when IPsec is initialized.
-+ *
-+ * IPsecSAref_t is designed to be smaller than an NFmark so that
-+ * they can be stored in NFmarks and still leave a few bits for other
-+ * purposes. The spare bits are in the low order of the NFmark
-+ * but in the high order of the IPsecSAref_t, so conversion is required.
-+ * We pick the upper bits of NFmark on the theory that they are less likely to
-+ * interfere with more pedestrian uses of nfmark.
-+ */
-+
-+
-+typedef unsigned short int IPsecRefTableUnusedCount;
-+
-+#define IPSEC_SA_REF_TABLE_NUM_ENTRIES (1 << IPSEC_SA_REF_TABLE_IDX_WIDTH)
-+
-+#ifdef __KERNEL__
-+#if ((IPSEC_SA_REF_TABLE_IDX_WIDTH - (1 + IPSEC_SA_REF_MAINTABLE_IDX_WIDTH)) < 0)
-+#error "IPSEC_SA_REF_TABLE_IDX_WIDTH("IPSEC_SA_REF_TABLE_IDX_WIDTH") MUST be < 1 + IPSEC_SA_REF_MAINTABLE_IDX_WIDTH("IPSEC_SA_REF_MAINTABLE_IDX_WIDTH")"
-+#endif
-+
-+#define IPSEC_SA_REF_SUBTABLE_IDX_WIDTH (IPSEC_SA_REF_TABLE_IDX_WIDTH - IPSEC_SA_REF_MAINTABLE_IDX_WIDTH)
-+
-+#define IPSEC_SA_REF_MAINTABLE_NUM_ENTRIES (1 << IPSEC_SA_REF_MAINTABLE_IDX_WIDTH)
-+#define IPSEC_SA_REF_SUBTABLE_NUM_ENTRIES (1 << IPSEC_SA_REF_SUBTABLE_IDX_WIDTH)
-+
-+#ifdef CONFIG_NETFILTER
-+#define IPSEC_SA_REF_HOST_FIELD(x) ((struct sk_buff*)(x))->nfmark
-+#define IPSEC_SA_REF_HOST_FIELD_TYPE typeof(IPSEC_SA_REF_HOST_FIELD(NULL))
-+#else /* CONFIG_NETFILTER */
-+/* just make it work for now, it doesn't matter, since there is no nfmark */
-+#define IPSEC_SA_REF_HOST_FIELD_TYPE unsigned long
-+#endif /* CONFIG_NETFILTER */
-+#define IPSEC_SA_REF_HOST_FIELD_WIDTH (8 * sizeof(IPSEC_SA_REF_HOST_FIELD_TYPE))
-+#define IPSEC_SA_REF_FIELD_WIDTH (8 * sizeof(IPsecSAref_t))
-+
-+#define IPSEC_SA_REF_MAX (~IPSEC_SAREF_NULL)
-+#define IPSEC_SAREF_FIRST 1
-+#define IPSEC_SA_REF_MASK (IPSEC_SA_REF_MAX >> (IPSEC_SA_REF_FIELD_WIDTH - IPSEC_SA_REF_TABLE_IDX_WIDTH))
-+#define IPSEC_SA_REF_TABLE_MASK ((IPSEC_SA_REF_MAX >> (IPSEC_SA_REF_FIELD_WIDTH - IPSEC_SA_REF_MAINTABLE_IDX_WIDTH)) << IPSEC_SA_REF_SUBTABLE_IDX_WIDTH)
-+#define IPSEC_SA_REF_ENTRY_MASK (IPSEC_SA_REF_MAX >> (IPSEC_SA_REF_FIELD_WIDTH - IPSEC_SA_REF_SUBTABLE_IDX_WIDTH))
-+
-+#define IPsecSAref2table(x) (((x) & IPSEC_SA_REF_TABLE_MASK) >> IPSEC_SA_REF_SUBTABLE_IDX_WIDTH)
-+#define IPsecSAref2entry(x) ((x) & IPSEC_SA_REF_ENTRY_MASK)
-+#define IPsecSArefBuild(x,y) (((x) << IPSEC_SA_REF_SUBTABLE_IDX_WIDTH) + (y))
-+
-+#define IPsecSAref2SA(x) (ipsec_sadb.refTable[IPsecSAref2table(x)]->entry[IPsecSAref2entry(x)])
-+#define IPsecSA2SAref(x) ((x)->ips_ref)
-+
-+#define EMT_INBOUND 0x01 /* SA direction, 1=inbound */
-+
-+/* 'struct ipsec_sa' should be 64bit aligned when allocated. */
-+struct ipsec_sa
-+{
-+ atomic_t ips_refcount; /* reference count for this struct */
-+ int ips_marked_deleted; /* used with reference counting */
-+ IPsecSAref_t ips_ref; /* reference table entry number */
-+ IPsecSAref_t ips_refhim; /* ref of paired SA, if any */
-+ struct ipsec_sa *ips_next; /* pointer to next xform */
-+
-+ struct ipsec_sa *ips_hnext; /* next in hash chain */
-+
-+ struct ifnet *ips_rcvif; /* related rcv encap interface */
-+
-+ struct xform_functions *ips_xformfuncs; /* pointer to routines to process this SA */
-+
-+ struct net_device *ips_out; /* what interface to emerge on */
-+ __u8 ips_transport_direct; /* if true, punt directly to
-+ * the protocol layer */
-+ struct socket *ips_sock; /* cache of transport socket */
-+
-+ ip_said ips_said; /* SA ID */
-+
-+ __u32 ips_seq; /* seq num of msg that initiated this SA */
-+ __u32 ips_pid; /* PID of process that initiated this SA */
-+ __u8 ips_authalg; /* auth algorithm for this SA */
-+ __u8 ips_encalg; /* enc algorithm for this SA */
-+
-+ struct ipsec_stats ips_errs;
-+
-+ __u8 ips_replaywin; /* replay window size */
-+ enum sadb_sastate ips_state; /* state of SA */
-+ __u32 ips_replaywin_lastseq; /* last pkt sequence num */
-+ __u64 ips_replaywin_bitmap; /* bitmap of received pkts */
-+ __u32 ips_replaywin_maxdiff; /* max pkt sequence difference */
-+
-+ __u32 ips_flags; /* generic xform flags */
-+
-+
-+ struct ipsec_lifetimes ips_life; /* lifetime records */
-+
-+ /* selector information */
-+ __u8 ips_transport_protocol; /* protocol for this SA, if ports are involved */
-+ struct sockaddr*ips_addr_s; /* src sockaddr */
-+ struct sockaddr*ips_addr_d; /* dst sockaddr */
-+ struct sockaddr*ips_addr_p; /* proxy sockaddr */
-+ __u16 ips_addr_s_size;
-+ __u16 ips_addr_d_size;
-+ __u16 ips_addr_p_size;
-+ ip_address ips_flow_s;
-+ ip_address ips_flow_d;
-+ ip_address ips_mask_s;
-+ ip_address ips_mask_d;
-+
-+ __u16 ips_key_bits_a; /* size of authkey in bits */
-+ __u16 ips_auth_bits; /* size of authenticator in bits */
-+ __u16 ips_key_bits_e; /* size of enckey in bits */
-+ __u16 ips_iv_bits; /* size of IV in bits */
-+ __u8 ips_iv_size;
-+ __u16 ips_key_a_size;
-+ __u16 ips_key_e_size;
-+
-+ caddr_t ips_key_a; /* authentication key */
-+ caddr_t ips_key_e; /* encryption key */
-+ caddr_t ips_iv; /* Initialisation Vector */
-+
-+ struct ident ips_ident_s; /* identity src */
-+ struct ident ips_ident_d; /* identity dst */
-+
-+ /* these are included even if CONFIG_KLIPS_IPCOMP is off */
-+ __u16 ips_comp_adapt_tries; /* ipcomp self-adaption tries */
-+ __u16 ips_comp_adapt_skip; /* ipcomp self-adaption to-skip */
-+ __u64 ips_comp_ratio_cbytes; /* compressed bytes */
-+ __u64 ips_comp_ratio_dbytes; /* decompressed (or uncompressed) bytes */
-+
-+ /* these are included even if CONFIG_IPSEC_NAT_TRAVERSAL is off */
-+ __u8 ips_natt_type;
-+ __u8 ips_natt_reserved[3];
-+ __u16 ips_natt_sport;
-+ __u16 ips_natt_dport;
-+
-+ struct sockaddr *ips_natt_oa;
-+ __u16 ips_natt_oa_size;
-+ __u16 ips_natt_reserved2;
-+
-+#if 0
-+ __u32 ips_sens_dpd;
-+ __u8 ips_sens_sens_level;
-+ __u8 ips_sens_sens_len;
-+ __u64* ips_sens_sens_bitmap;
-+ __u8 ips_sens_integ_level;
-+ __u8 ips_sens_integ_len;
-+ __u64* ips_sens_integ_bitmap;
-+#endif
-+ struct ipsec_alg_enc *ips_alg_enc;
-+ struct ipsec_alg_auth *ips_alg_auth;
-+
-+ int ocf_in_use;
-+ int64_t ocf_cryptoid;
-+};
-+
-+struct IPsecSArefSubTable
-+{
-+ struct ipsec_sa* entry[IPSEC_SA_REF_SUBTABLE_NUM_ENTRIES];
-+};
-+
-+struct ipsec_sadb {
-+ struct IPsecSArefSubTable* refTable[IPSEC_SA_REF_MAINTABLE_NUM_ENTRIES];
-+ IPsecSAref_t refFreeList[IPSEC_SA_REF_FREELIST_NUM_ENTRIES];
-+ int refFreeListHead;
-+ int refFreeListTail;
-+ IPsecSAref_t refFreeListCont;
-+ IPsecSAref_t said_hash[SADB_HASHMOD];
-+ spinlock_t sadb_lock;
-+};
-+
-+extern struct ipsec_sadb ipsec_sadb;
-+
-+extern int ipsec_SAref_recycle(void);
-+extern int ipsec_SArefSubTable_alloc(unsigned table);
-+extern int ipsec_saref_freelist_init(void);
-+extern int ipsec_sadb_init(void);
-+extern struct ipsec_sa *ipsec_sa_alloc(int*error); /* pass in error var by pointer */
-+extern IPsecSAref_t ipsec_SAref_alloc(int*erorr); /* pass in error var by pointer */
-+extern int ipsec_sa_free(struct ipsec_sa* ips);
-+
-+#define ipsec_sa_get(ips) __ipsec_sa_get(ips, __FUNCTION__, __LINE__)
-+extern struct ipsec_sa * __ipsec_sa_get(struct ipsec_sa *ips, const char *func, int line);
-+
-+#define ipsec_sa_put(ips) __ipsec_sa_put(ips, __FUNCTION__, __LINE__)
-+extern void __ipsec_sa_put(struct ipsec_sa *ips, const char *func, int line);
-+extern int ipsec_sa_add(struct ipsec_sa *ips);
-+extern void ipsec_sa_rm(struct ipsec_sa *ips);
-+extern int ipsec_sadb_cleanup(__u8 proto);
-+extern int ipsec_sadb_free(void);
-+extern int ipsec_sa_wipe(struct ipsec_sa *ips);
-+extern int ipsec_sa_intern(struct ipsec_sa *ips);
-+extern struct ipsec_sa *ipsec_sa_getbyref(IPsecSAref_t ref);
-+
-+extern void ipsec_sa_untern(struct ipsec_sa *ips);
-+#endif /* __KERNEL__ */
-+
-+enum ipsec_direction {
-+ ipsec_incoming = 1,
-+ ipsec_outgoing = 2
-+};
-+
-+#define _IPSEC_SA_H_
-+#endif /* _IPSEC_SA_H_ */
-+
-+/*
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_sha1.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,79 @@
-+/*
-+ * RCSID $Id: ipsec_sha1.h,v 1.8 2004/04/05 19:55:07 mcr Exp $
-+ */
-+
-+/*
-+ * Here is the original comment from the distribution:
-+
-+SHA-1 in C
-+By Steve Reid
-+100% Public Domain
-+
-+ * Adapted for use by the IPSEC code by John Ioannidis
-+ */
-+
-+
-+#ifndef _IPSEC_SHA1_H_
-+#define _IPSEC_SHA1_H_
-+
-+typedef struct
-+{
-+ __u32 state[5];
-+ __u32 count[2];
-+ __u8 buffer[64];
-+} SHA1_CTX;
-+
-+void SHA1Transform(__u32 state[5], __u8 buffer[64]);
-+void SHA1Init(void *context);
-+void SHA1Update(void *context, unsigned char *data, __u32 len);
-+void SHA1Final(unsigned char digest[20], void *context);
-+
-+
-+#endif /* _IPSEC_SHA1_H_ */
-+
-+/*
-+ * $Log: ipsec_sha1.h,v $
-+ * Revision 1.8 2004/04/05 19:55:07 mcr
-+ * Moved from linux/include/freeswan/ipsec_sha1.h,v
-+ *
-+ * Revision 1.7 2002/09/10 01:45:09 mcr
-+ * changed type of MD5_CTX and SHA1_CTX to void * so that
-+ * the function prototypes would match, and could be placed
-+ * into a pointer to a function.
-+ *
-+ * Revision 1.6 2002/04/24 07:36:47 mcr
-+ * Moved from ./klips/net/ipsec/ipsec_sha1.h,v
-+ *
-+ * Revision 1.5 1999/12/13 13:59:13 rgb
-+ * Quick fix to argument size to Update bugs.
-+ *
-+ * Revision 1.4 1999/12/07 18:16:23 rgb
-+ * Fixed comments at end of #endif lines.
-+ *
-+ * Revision 1.3 1999/04/06 04:54:27 rgb
-+ * Fix/Add RCSID Id: and Log: bits to make PHMDs happy. This includes
-+ * patch shell fixes.
-+ *
-+ * Revision 1.2 1998/11/30 13:22:54 rgb
-+ * Rationalised all the klips kernel file headers. They are much shorter
-+ * now and won't conflict under RH5.2.
-+ *
-+ * Revision 1.1 1998/06/18 21:27:50 henry
-+ * move sources from klips/src to klips/net/ipsec, to keep stupid
-+ * kernel-build scripts happier in the presence of symlinks
-+ *
-+ * Revision 1.2 1998/04/23 20:54:05 rgb
-+ * Fixed md5 and sha1 include file nesting issues, to be cleaned up when
-+ * verified.
-+ *
-+ * Revision 1.1 1998/04/09 03:04:21 henry
-+ * sources moved up from linux/net/ipsec
-+ * these two include files modified not to include others except in kernel
-+ *
-+ * Revision 1.1.1.1 1998/04/08 05:35:04 henry
-+ * RGB's ipsec-0.8pre2.tar.gz ipsec-0.8
-+ *
-+ * Revision 0.4 1997/01/15 01:28:15 ji
-+ * New transform
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_stats.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,76 @@
-+/*
-+ * @(#) definition of ipsec_stats structure
-+ *
-+ * Copyright (C) 2001 Richard Guy Briggs
-+ * and Michael Richardson
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_stats.h,v 1.7 2005/04/14 01:17:45 mcr Exp $
-+ *
-+ */
-+
-+/*
-+ * This file describes the errors/statistics that FreeSWAN collects.
-+ */
-+
-+#ifndef _IPSEC_STATS_H_
-+
-+struct ipsec_stats {
-+ __u32 ips_alg_errs; /* number of algorithm errors */
-+ __u32 ips_auth_errs; /* # of authentication errors */
-+ __u32 ips_encsize_errs; /* # of encryption size errors*/
-+ __u32 ips_encpad_errs; /* # of encryption pad errors*/
-+ __u32 ips_replaywin_errs; /* # of pkt sequence errors */
-+};
-+
-+#define _IPSEC_STATS_H_
-+#endif /* _IPSEC_STATS_H_ */
-+
-+/*
-+ * $Log: ipsec_stats.h,v $
-+ * Revision 1.7 2005/04/14 01:17:45 mcr
-+ * add prototypes for snprintf.
-+ *
-+ * Revision 1.6 2004/04/05 19:55:07 mcr
-+ * Moved from linux/include/freeswan/ipsec_stats.h,v
-+ *
-+ * Revision 1.5 2004/04/05 19:41:05 mcr
-+ * merged alg-branch code.
-+ *
-+ * Revision 1.4 2004/03/28 20:27:19 paul
-+ * Included tested and confirmed fixes mcr made and dhr verified for
-+ * snprint statements. Changed one other snprintf to use ipsec_snprintf
-+ * so it wouldnt break compatibility with 2.0/2.2 kernels. Verified with
-+ * dhr. (thanks dhr!)
-+ *
-+ * Revision 1.4 2004/03/24 01:58:31 mcr
-+ * sprintf->snprintf for formatting into proc buffer.
-+ *
-+ * Revision 1.3.34.1 2004/04/05 04:30:46 mcr
-+ * patches for alg-branch to compile/work with 2.x openswan
-+ *
-+ * Revision 1.3 2002/04/24 07:36:47 mcr
-+ * Moved from ./klips/net/ipsec/ipsec_stats.h,v
-+ *
-+ * Revision 1.2 2001/11/26 09:16:16 rgb
-+ * Merge MCR's ipsec_sa, eroute, proc and struct lifetime changes.
-+ *
-+ * Revision 1.1.2.1 2001/09/25 02:27:00 mcr
-+ * statistics moved to seperate structure.
-+ *
-+ *
-+ *
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_sysctl.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,20 @@
-+#ifndef OPENSWAN_SYSCTL_H
-+#define OPENSWAN_SYSCTL_H
-+
-+extern int debug_ah;
-+extern int debug_esp;
-+extern int debug_xform;
-+extern int debug_eroute;
-+extern int debug_spi;
-+extern int debug_netlink;
-+extern int debug_radij;
-+extern int debug_rcv;
-+extern int debug_tunnel;
-+extern int debug_xmit;
-+extern int debug_mast;
-+
-+extern int sysctl_ip_default_ttl;
-+extern int sysctl_ipsec_inbound_policy_check;
-+extern int sysctl_ipsec_debug_ipcomp;
-+extern int sysctl_ipsec_debug_verbose;
-+#endif
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_tunnel.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,286 @@
-+/*
-+ * IPSEC tunneling code
-+ * Copyright (C) 1996, 1997 John Ioannidis.
-+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Richard Guy Briggs.
-+ * Copyright (C) 2006 Michael Richardson
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ */
-+
-+
-+# define DEV_QUEUE_XMIT(skb, device, pri) {\
-+ skb->dev = device; \
-+ neigh_compat_output(skb); \
-+ /* skb->dst->output(skb); */ \
-+ }
-+# define ICMP_SEND(skb_in, type, code, info, dev) \
-+ icmp_send(skb_in, type, code, htonl(info))
-+# define IP_SEND(skb, dev) \
-+ ip_send(skb);
-+
-+
-+#if defined(KLIPS)
-+/*
-+ * Heavily based on drivers/net/new_tunnel.c. Lots
-+ * of ideas also taken from the 2.1.x version of drivers/net/shaper.c
-+ */
-+
-+struct ipsectunnelconf
-+{
-+ uint32_t cf_cmd;
-+ union
-+ {
-+ char cfu_name[12];
-+ } cf_u;
-+#define cf_name cf_u.cfu_name
-+};
-+
-+#define IPSEC_SET_DEV (SIOCDEVPRIVATE)
-+#define IPSEC_DEL_DEV (SIOCDEVPRIVATE + 1)
-+#define IPSEC_CLR_DEV (SIOCDEVPRIVATE + 2)
-+#define IPSEC_UDP_ENCAP_CONVERT (SIOCDEVPRIVATE + 3)
-+#endif
-+
-+#ifdef __KERNEL__
-+#include
-+#ifndef KERNEL_VERSION
-+# define KERNEL_VERSION(x,y,z) (((x)<<16)+((y)<<8)+(z))
-+#endif
-+struct ipsecpriv
-+{
-+ struct sk_buff_head sendq;
-+ struct net_device *dev;
-+ struct wait_queue *wait_queue;
-+ int vifnum;
-+ char locked;
-+ int (*hard_start_xmit) (struct sk_buff *skb,
-+ struct net_device *dev);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
-+ const struct header_ops *header_ops;
-+#else
-+
-+ int (*hard_header) (struct sk_buff *skb,
-+ struct net_device *dev,
-+ unsigned short type,
-+ void *daddr,
-+ void *saddr,
-+ unsigned len);
-+#ifdef NET_21
-+ int (*rebuild_header)(struct sk_buff *skb);
-+#else /* NET_21 */
-+ int (*rebuild_header)(void *buff, struct net_device *dev,
-+ unsigned long raddr, struct sk_buff *skb);
-+#endif /* NET_21 */
-+#ifndef NET_21
-+ void (*header_cache_bind)(struct hh_cache **hhp, struct net_device *dev,
-+ unsigned short htype, __u32 daddr);
-+#endif /* !NET_21 */
-+ void (*header_cache_update)(struct hh_cache *hh, struct net_device *dev, unsigned char * haddr);
-+#endif
-+ int (*set_mac_address)(struct net_device *dev, void *addr);
-+ struct net_device_stats *(*get_stats)(struct net_device *dev);
-+ struct net_device_stats mystats;
-+ int mtu; /* What is the desired MTU? */
-+};
-+
-+extern char ipsec_tunnel_c_version[];
-+
-+extern struct net_device *ipsecdevices[IPSEC_NUM_IFMAX];
-+extern int ipsecdevices_max;
-+
-+int ipsec_tunnel_init_devices(void);
-+
-+/* void */ int ipsec_tunnel_cleanup_devices(void);
-+
-+extern /* void */ int ipsec_init(void);
-+
-+extern int ipsec_tunnel_start_xmit(struct sk_buff *skb, struct net_device *dev);
-+extern struct net_device *ipsec_get_device(int inst);
-+
-+#ifdef CONFIG_KLIPS_DEBUG
-+extern int debug_tunnel;
-+extern int sysctl_ipsec_debug_verbose;
-+#endif /* CONFIG_KLIPS_DEBUG */
-+#endif /* __KERNEL__ */
-+
-+#ifdef CONFIG_KLIPS_DEBUG
-+#define DB_TN_INIT 0x0001
-+#define DB_TN_PROCFS 0x0002
-+#define DB_TN_XMIT 0x0010
-+#define DB_TN_OHDR 0x0020
-+#define DB_TN_CROUT 0x0040
-+#define DB_TN_OXFS 0x0080
-+#define DB_TN_REVEC 0x0100
-+#define DB_TN_ENCAP 0x0200
-+#endif /* CONFIG_KLIPS_DEBUG */
-+
-+extern int ipsec_tunnel_deletenum(int vifnum);
-+extern int ipsec_tunnel_createnum(int vifnum);
-+extern struct net_device *ipsec_tunnel_get_device(int vifnum);
-+
-+
-+/* manage ipsec xmit state objects */
-+extern int ipsec_xmit_state_cache_init (void);
-+extern void ipsec_xmit_state_cache_cleanup (void);
-+struct ipsec_xmit_state *ipsec_xmit_state_new (void);
-+void ipsec_xmit_state_delete (struct ipsec_xmit_state *ixs);
-+
-+/*
-+ * $Log: ipsec_tunnel.h,v $
-+ * Revision 1.33 2005/06/04 16:06:05 mcr
-+ * better patch for nat-t rcv-device code.
-+ *
-+ * Revision 1.32 2005/05/21 03:18:35 mcr
-+ * added additional debug flag tunnelling.
-+ *
-+ * Revision 1.31 2004/08/03 18:18:02 mcr
-+ * in 2.6, use "net_device" instead of #define device->net_device.
-+ * this probably breaks 2.0 compiles.
-+ *
-+ * Revision 1.30 2004/07/10 19:08:41 mcr
-+ * CONFIG_IPSEC -> CONFIG_KLIPS.
-+ *
-+ * Revision 1.29 2004/04/05 19:55:07 mcr
-+ * Moved from linux/include/freeswan/ipsec_tunnel.h,v
-+ *
-+ * Revision 1.28 2003/06/24 20:22:32 mcr
-+ * added new global: ipsecdevices[] so that we can keep track of
-+ * the ipsecX devices. They will be referenced with dev_hold(),
-+ * so 2.2 may need this as well.
-+ *
-+ * Revision 1.27 2003/04/03 17:38:09 rgb
-+ * Centralised ipsec_kfree_skb and ipsec_dev_{get,put}.
-+ *
-+ * Revision 1.26 2003/02/12 19:32:20 rgb
-+ * Updated copyright year.
-+ *
-+ * Revision 1.25 2002/05/27 18:56:07 rgb
-+ * Convert to dynamic ipsec device allocation.
-+ *
-+ * Revision 1.24 2002/04/24 07:36:48 mcr
-+ * Moved from ./klips/net/ipsec/ipsec_tunnel.h,v
-+ *
-+ * Revision 1.23 2001/11/06 19:50:44 rgb
-+ * Moved IP_SEND, ICMP_SEND, DEV_QUEUE_XMIT macros to ipsec_tunnel.h for
-+ * use also by pfkey_v2_parser.c
-+ *
-+ * Revision 1.22 2001/09/15 16:24:05 rgb
-+ * Re-inject first and last HOLD packet when an eroute REPLACE is done.
-+ *
-+ * Revision 1.21 2001/06/14 19:35:10 rgb
-+ * Update copyright date.
-+ *
-+ * Revision 1.20 2000/09/15 11:37:02 rgb
-+ * Merge in heavily modified Svenning Soerensen's
-+ * IPCOMP zlib deflate code.
-+ *
-+ * Revision 1.19 2000/09/08 19:12:56 rgb
-+ * Change references from DEBUG_IPSEC to CONFIG_IPSEC_DEBUG.
-+ *
-+ * Revision 1.18 2000/07/28 13:50:54 rgb
-+ * Changed enet_statistics to net_device_stats and added back compatibility
-+ * for pre-2.1.19.
-+ *
-+ * Revision 1.17 1999/11/19 01:12:15 rgb
-+ * Purge unneeded proc_info prototypes, now that static linking uses
-+ * dynamic proc_info registration.
-+ *
-+ * Revision 1.16 1999/11/18 18:51:00 rgb
-+ * Changed all device registrations for static linking to
-+ * dynamic to reduce the number and size of patches.
-+ *
-+ * Revision 1.15 1999/11/18 04:14:21 rgb
-+ * Replaced all kernel version macros to shorter, readable form.
-+ * Added CONFIG_PROC_FS compiler directives in case it is shut off.
-+ * Added Marc Boucher's 2.3.25 proc patches.
-+ *
-+ * Revision 1.14 1999/05/25 02:50:10 rgb
-+ * Fix kernel version macros for 2.0.x static linking.
-+ *
-+ * Revision 1.13 1999/05/25 02:41:06 rgb
-+ * Add ipsec_klipsdebug support for static linking.
-+ *
-+ * Revision 1.12 1999/05/05 22:02:32 rgb
-+ * Add a quick and dirty port to 2.2 kernels by Marc Boucher .
-+ *
-+ * Revision 1.11 1999/04/29 15:19:50 rgb
-+ * Add return values to init and cleanup functions.
-+ *
-+ * Revision 1.10 1999/04/16 16:02:39 rgb
-+ * Bump up macro to 4 ipsec I/Fs.
-+ *
-+ * Revision 1.9 1999/04/15 15:37:25 rgb
-+ * Forward check changes from POST1_00 branch.
-+ *
-+ * Revision 1.5.2.1 1999/04/02 04:26:14 rgb
-+ * Backcheck from HEAD, pre1.0.
-+ *
-+ * Revision 1.8 1999/04/11 00:29:01 henry
-+ * GPL boilerplate
-+ *
-+ * Revision 1.7 1999/04/06 04:54:28 rgb
-+ * Fix/Add RCSID Id: and Log: bits to make PHMDs happy. This includes
-+ * patch shell fixes.
-+ *
-+ * Revision 1.6 1999/03/31 05:44:48 rgb
-+ * Keep PMTU reduction private.
-+ *
-+ * Revision 1.5 1999/02/10 22:31:20 rgb
-+ * Change rebuild_header member to reflect generality of link layer.
-+ *
-+ * Revision 1.4 1998/12/01 13:22:04 rgb
-+ * Added support for debug printing of version info.
-+ *
-+ * Revision 1.3 1998/07/29 20:42:46 rgb
-+ * Add a macro for clearing all tunnel devices.
-+ * Rearrange structures and declarations for sharing with userspace.
-+ *
-+ * Revision 1.2 1998/06/25 20:01:45 rgb
-+ * Make prototypes available for ipsec_init and ipsec proc_dir_entries
-+ * for static linking.
-+ *
-+ * Revision 1.1 1998/06/18 21:27:50 henry
-+ * move sources from klips/src to klips/net/ipsec, to keep stupid
-+ * kernel-build scripts happier in the presence of symlinks
-+ *
-+ * Revision 1.3 1998/05/18 21:51:50 rgb
-+ * Added macros for num of I/F's and a procfs debug switch.
-+ *
-+ * Revision 1.2 1998/04/21 21:29:09 rgb
-+ * Rearrange debug switches to change on the fly debug output from user
-+ * space. Only kernel changes checked in at this time. radij.c was also
-+ * changed to temporarily remove buggy debugging code in rj_delete causing
-+ * an OOPS and hence, netlink device open errors.
-+ *
-+ * Revision 1.1 1998/04/09 03:06:13 henry
-+ * sources moved up from linux/net/ipsec
-+ *
-+ * Revision 1.1.1.1 1998/04/08 05:35:05 henry
-+ * RGB's ipsec-0.8pre2.tar.gz ipsec-0.8
-+ *
-+ * Revision 0.5 1997/06/03 04:24:48 ji
-+ * Added transport mode.
-+ * Changed the way routing is done.
-+ * Lots of bug fixes.
-+ *
-+ * Revision 0.4 1997/01/15 01:28:15 ji
-+ * No changes.
-+ *
-+ * Revision 0.3 1996/11/20 14:39:04 ji
-+ * Minor cleanups.
-+ * Rationalized debugging code.
-+ *
-+ * Revision 0.2 1996/11/02 00:18:33 ji
-+ * First limited release.
-+ *
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_xform.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,278 @@
-+/*
-+ * Definitions relevant to IPSEC transformations
-+ * Copyright (C) 1996, 1997 John Ioannidis.
-+ * Copyright (C) 1998, 1999, 2000, 2001 Richard Guy Briggs.
-+ * COpyright (C) 2003 Michael Richardson
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_xform.h,v 1.42 2005/08/05 08:50:45 mcr Exp $
-+ */
-+
-+#ifndef _IPSEC_XFORM_H_
-+
-+#include
-+
-+#define XF_NONE 0 /* No transform set */
-+#define XF_IP4 1 /* IPv4 inside IPv4 */
-+#define XF_AHMD5 2 /* AH MD5 */
-+#define XF_AHSHA 3 /* AH SHA */
-+#define XF_ESP3DES 5 /* ESP DES3-CBC */
-+#define XF_AHHMACMD5 6 /* AH-HMAC-MD5 with opt replay prot */
-+#define XF_AHHMACSHA1 7 /* AH-HMAC-SHA1 with opt replay prot */
-+#define XF_ESP3DESMD5 9 /* triple DES, HMAC-MD-5, 128-bits of authentication */
-+#define XF_ESP3DESMD596 10 /* triple DES, HMAC-MD-5, 96-bits of authentication */
-+#define XF_ESPNULLMD596 12 /* NULL, HMAC-MD-5 with 96-bits of authentication */
-+#define XF_ESPNULLSHA196 13 /* NULL, HMAC-SHA-1 with 96-bits of authentication */
-+#define XF_ESP3DESSHA196 14 /* triple DES, HMAC-SHA-1, 96-bits of authentication */
-+#define XF_IP6 15 /* IPv6 inside IPv6 */
-+#define XF_COMPDEFLATE 16 /* IPCOMP deflate */
-+
-+#define XF_CLR 126 /* Clear SA table */
-+#define XF_DEL 127 /* Delete SA */
-+
-+/* IPsec AH transform values
-+ * RFC 2407
-+ * draft-ietf-ipsec-doi-tc-mib-02.txt
-+ */
-+
-+/* why are these hardcoded here? See ipsec_policy.h for their enums -- Paul*/
-+/* ---------- These really need to go from here ------------------ */
-+#define AH_NONE 0
-+#define AH_MD5 2
-+#define AH_SHA 3
-+/* draft-ietf-ipsec-ciph-aes-cbc-03.txt */
-+#define AH_SHA2_256 5
-+#define AH_SHA2_384 6
-+#define AH_SHA2_512 7
-+#define AH_RIPEMD 8
-+#define AH_AES 9
-+#define AH_NULL 251
-+#define AH_MAX 251
-+
-+/* IPsec ESP transform values */
-+
-+#define ESP_NONE 0
-+#define ESP_DES 2
-+#define ESP_3DES 3
-+#define ESP_RC5 4
-+#define ESP_IDEA 5
-+#define ESP_CAST 6
-+#define ESP_BLOWFISH 7
-+#define ESP_3IDEA 8
-+#define ESP_RC4 10
-+#define ESP_NULL 11
-+#define ESP_AES 12
-+#define ESP_AES_CTR 13
-+#define ESP_AES_CCM_A 14
-+#define ESP_AES_CCM_B 15
-+#define ESP_AES_CCM_C 16
-+#define ESP_ID17 17
-+#define ESP_AES_GCM_A 18
-+#define ESP_AES_GCM_B 19
-+#define ESP_AES_GCM_C 20
-+#define ESP_SEED_CBC 21
-+#define ESP_CAMELLIA 22
-+
-+/* as draft-ietf-ipsec-ciph-aes-cbc-02.txt */
-+#define ESP_MARS 249
-+#define ESP_RC6 250
-+#define ESP_SERPENT 252
-+#define ESP_TWOFISH 253
-+
-+/* IPCOMP transform values */
-+
-+#define IPCOMP_NONE 0
-+#define IPCOMP_OUI 1
-+#define IPCOMP_DEFLAT 2
-+#define IPCOMP_LZS 3
-+#define IPCOMP_V42BIS 4
-+
-+#define XFT_AUTH 0x0001
-+#define XFT_CONF 0x0100
-+
-+/* available if CONFIG_KLIPS_DEBUG is defined */
-+#define DB_XF_INIT 0x0001
-+
-+#define PROTO2TXT(x) \
-+ (x) == IPPROTO_AH ? "AH" : \
-+ (x) == IPPROTO_ESP ? "ESP" : \
-+ (x) == IPPROTO_IPIP ? "IPIP" : \
-+ (x) == IPPROTO_COMP ? "COMP" : \
-+ "UNKNOWN_proto"
-+static inline const char *enc_name_id (unsigned id) {
-+ static char buf[16];
-+ snprintf(buf, sizeof(buf), "_ID%d", id);
-+ return buf;
-+}
-+static inline const char *auth_name_id (unsigned id) {
-+ static char buf[16];
-+ snprintf(buf, sizeof(buf), "_ID%d", id);
-+ return buf;
-+}
-+#define IPS_XFORM_NAME(x) \
-+ PROTO2TXT((x)->ips_said.proto), \
-+ (x)->ips_said.proto == IPPROTO_COMP ? \
-+ ((x)->ips_encalg == SADB_X_CALG_DEFLATE ? \
-+ "_DEFLATE" : "_UNKNOWN_comp") : \
-+ (x)->ips_encalg == ESP_NONE ? "" : \
-+ (x)->ips_encalg == ESP_3DES ? "_3DES" : \
-+ (x)->ips_encalg == ESP_AES ? "_AES" : \
-+ (x)->ips_encalg == ESP_SERPENT ? "_SERPENT" : \
-+ (x)->ips_encalg == ESP_TWOFISH ? "_TWOFISH" : \
-+ enc_name_id(x->ips_encalg)/* "_UNKNOWN_encr" */, \
-+ (x)->ips_authalg == AH_NONE ? "" : \
-+ (x)->ips_authalg == AH_MD5 ? "_HMAC_MD5" : \
-+ (x)->ips_authalg == AH_SHA ? "_HMAC_SHA1" : \
-+ (x)->ips_authalg == AH_SHA2_256 ? "_HMAC_SHA2_256" : \
-+ (x)->ips_authalg == AH_SHA2_384 ? "_HMAC_SHA2_384" : \
-+ (x)->ips_authalg == AH_SHA2_512 ? "_HMAC_SHA2_512" : \
-+ auth_name_id(x->ips_authalg) /* "_UNKNOWN_auth" */ \
-+
-+#ifdef __KERNEL__
-+#include
-+
-+struct ipsec_rcv_state;
-+struct ipsec_xmit_state;
-+
-+struct xform_functions {
-+ u8 protocol;
-+ enum ipsec_rcv_value (*rcv_checks)(struct ipsec_rcv_state *irs,
-+ struct sk_buff *skb);
-+ enum ipsec_rcv_value (*rcv_decrypt)(struct ipsec_rcv_state *irs);
-+
-+ enum ipsec_rcv_value (*rcv_setup_auth)(struct ipsec_rcv_state *irs,
-+ struct sk_buff *skb,
-+ __u32 *replay,
-+ unsigned char **authenticator);
-+ enum ipsec_rcv_value (*rcv_calc_auth)(struct ipsec_rcv_state *irs,
-+ struct sk_buff *skb);
-+
-+ enum ipsec_xmit_value (*xmit_setup)(struct ipsec_xmit_state *ixs);
-+ enum ipsec_xmit_value (*xmit_encrypt)(struct ipsec_xmit_state *ixs);
-+
-+ enum ipsec_xmit_value (*xmit_setup_auth)(struct ipsec_xmit_state *ixs,
-+ struct sk_buff *skb,
-+ __u32 *replay,
-+ unsigned char **authenticator);
-+ enum ipsec_xmit_value (*xmit_calc_auth)(struct ipsec_xmit_state *ixs,
-+ struct sk_buff *skb);
-+ int xmit_headroom;
-+ int xmit_needtailroom;
-+};
-+
-+#endif /* __KERNEL__ */
-+
-+#ifdef CONFIG_KLIPS_DEBUG
-+extern void ipsec_dmp(char *s, caddr_t bb, int len);
-+#else /* CONFIG_KLIPS_DEBUG */
-+#define ipsec_dmp(_x, _y, _z)
-+#endif /* CONFIG_KLIPS_DEBUG */
-+
-+
-+#define _IPSEC_XFORM_H_
-+#endif /* _IPSEC_XFORM_H_ */
-+
-+/*
-+ * $Log: ipsec_xform.h,v $
-+ * Revision 1.42 2005/08/05 08:50:45 mcr
-+ * move #include of skbuff.h to a place where
-+ * we know it will be kernel only code.
-+ *
-+ * Revision 1.41 2004/07/10 19:08:41 mcr
-+ * CONFIG_IPSEC -> CONFIG_KLIPS.
-+ *
-+ * Revision 1.40 2004/04/06 02:49:08 mcr
-+ * pullup of algo code from alg-branch.
-+ *
-+ * Revision 1.39 2004/04/05 19:55:07 mcr
-+ * Moved from linux/include/freeswan/ipsec_xform.h,v
-+ *
-+ * Revision 1.38 2004/04/05 19:41:05 mcr
-+ * merged alg-branch code.
-+ *
-+ * Revision 1.37 2003/12/13 19:10:16 mcr
-+ * refactored rcv and xmit code - same as FS 2.05.
-+ *
-+ * Revision 1.36.34.1 2003/12/22 15:25:52 jjo
-+ * Merged algo-0.8.1-rc11-test1 into alg-branch
-+ *
-+ * Revision 1.36 2002/04/24 07:36:48 mcr
-+ * Moved from ./klips/net/ipsec/ipsec_xform.h,v
-+ *
-+ * Revision 1.35 2001/11/26 09:23:51 rgb
-+ * Merge MCR's ipsec_sa, eroute, proc and struct lifetime changes.
-+ *
-+ * Revision 1.33.2.1 2001/09/25 02:24:58 mcr
-+ * struct tdb -> struct ipsec_sa.
-+ * sa(tdb) manipulation functions renamed and moved to ipsec_sa.c
-+ * ipsec_xform.c removed. header file still contains useful things.
-+ *
-+ * Revision 1.34 2001/11/06 19:47:17 rgb
-+ * Changed lifetime_packets to uint32 from uint64.
-+ *
-+ * Revision 1.33 2001/09/08 21:13:34 rgb
-+ * Added pfkey ident extension support for ISAKMPd. (NetCelo)
-+ *
-+ * Revision 1.32 2001/07/06 07:40:01 rgb
-+ * Reformatted for readability.
-+ * Added inbound policy checking fields for use with IPIP SAs.
-+ *
-+ * Revision 1.31 2001/06/14 19:35:11 rgb
-+ * Update copyright date.
-+ *
-+ * Revision 1.30 2001/05/30 08:14:03 rgb
-+ * Removed vestiges of esp-null transforms.
-+ *
-+ * Revision 1.29 2001/01/30 23:42:47 rgb
-+ * Allow pfkey msgs from pid other than user context required for ACQUIRE
-+ * and subsequent ADD or UDATE.
-+ *
-+ * Revision 1.28 2000/11/06 04:30:40 rgb
-+ * Add Svenning's adaptive content compression.
-+ *
-+ * Revision 1.27 2000/09/19 00:38:25 rgb
-+ * Fixed algorithm name bugs introduced for ipcomp.
-+ *
-+ * Revision 1.26 2000/09/17 21:36:48 rgb
-+ * Added proto2txt macro.
-+ *
-+ * Revision 1.25 2000/09/17 18:56:47 rgb
-+ * Added IPCOMP support.
-+ *
-+ * Revision 1.24 2000/09/12 19:34:12 rgb
-+ * Defined XF_IP6 from Gerhard for ipv6 tunnel support.
-+ *
-+ * Revision 1.23 2000/09/12 03:23:14 rgb
-+ * Cleaned out now unused tdb_xform and tdb_xdata members of struct tdb.
-+ *
-+ * Revision 1.22 2000/09/08 19:12:56 rgb
-+ * Change references from DEBUG_IPSEC to CONFIG_IPSEC_DEBUG.
-+ *
-+ * Revision 1.21 2000/09/01 18:32:43 rgb
-+ * Added (disabled) sensitivity members to tdb struct.
-+ *
-+ * Revision 1.20 2000/08/30 05:31:01 rgb
-+ * Removed all the rest of the references to tdb_spi, tdb_proto, tdb_dst.
-+ * Kill remainder of tdb_xform, tdb_xdata, xformsw.
-+ *
-+ * Revision 1.19 2000/08/01 14:51:52 rgb
-+ * Removed _all_ remaining traces of DES.
-+ *
-+ * Revision 1.18 2000/01/21 06:17:45 rgb
-+ * Tidied up spacing.
-+ *
-+ *
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/ipsec_xmit.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,267 @@
-+/*
-+ * IPSEC tunneling code
-+ * Copyright (C) 1996, 1997 John Ioannidis.
-+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Richard Guy Briggs.
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: ipsec_xmit.h,v 1.14 2005/05/11 01:00:26 mcr Exp $
-+ */
-+
-+#include "openswan/ipsec_sa.h"
-+
-+#ifdef CONFIG_KLIPS_OCF
-+#include
-+#endif
-+
-+enum ipsec_xmit_value
-+{
-+ IPSEC_XMIT_STOLEN=2,
-+ IPSEC_XMIT_PASS=1,
-+ IPSEC_XMIT_OK=0,
-+ IPSEC_XMIT_ERRMEMALLOC=-1,
-+ IPSEC_XMIT_ESP_BADALG=-2,
-+ IPSEC_XMIT_BADPROTO=-3,
-+ IPSEC_XMIT_ESP_PUSHPULLERR=-4,
-+ IPSEC_XMIT_BADLEN=-5,
-+ IPSEC_XMIT_AH_BADALG=-6,
-+ IPSEC_XMIT_SAIDNOTFOUND=-7,
-+ IPSEC_XMIT_SAIDNOTLIVE=-8,
-+ IPSEC_XMIT_REPLAYROLLED=-9,
-+ IPSEC_XMIT_LIFETIMEFAILED=-10,
-+ IPSEC_XMIT_CANNOTFRAG=-11,
-+ IPSEC_XMIT_MSSERR=-12,
-+ IPSEC_XMIT_ERRSKBALLOC=-13,
-+ IPSEC_XMIT_ENCAPFAIL=-14,
-+ IPSEC_XMIT_NODEV=-15,
-+ IPSEC_XMIT_NOPRIVDEV=-16,
-+ IPSEC_XMIT_NOPHYSDEV=-17,
-+ IPSEC_XMIT_NOSKB=-18,
-+ IPSEC_XMIT_NOIPV6=-19,
-+ IPSEC_XMIT_NOIPOPTIONS=-20,
-+ IPSEC_XMIT_TTLEXPIRED=-21,
-+ IPSEC_XMIT_BADHHLEN=-22,
-+ IPSEC_XMIT_PUSHPULLERR=-23,
-+ IPSEC_XMIT_ROUTEERR=-24,
-+ IPSEC_XMIT_RECURSDETECT=-25,
-+ IPSEC_XMIT_IPSENDFAILURE=-26,
-+ IPSEC_XMIT_ESPUDP=-27,
-+ IPSEC_XMIT_ESPUDP_BADTYPE=-28,
-+ IPSEC_XMIT_PENDING=-29,
-+};
-+
-+
-+/*
-+ * state machine states
-+ */
-+
-+#define IPSEC_XSM_INIT1 0 /* make it easy, starting state is 0 */
-+#define IPSEC_XSM_INIT2 1
-+#define IPSEC_XSM_ENCAP_INIT 2
-+#define IPSEC_XSM_ENCAP_SELECT 3
-+#define IPSEC_XSM_ESP 4
-+#define IPSEC_XSM_ESP_AH 5
-+#define IPSEC_XSM_AH 6
-+#define IPSEC_XSM_IPIP 7
-+#define IPSEC_XSM_IPCOMP 8
-+#define IPSEC_XSM_CONT 9
-+#define IPSEC_XSM_DONE 100
-+
-+
-+struct ipsec_xmit_state
-+{
-+ struct sk_buff *skb; /* working skb pointer */
-+ struct net_device *dev; /* working dev pointer */
-+ struct ipsecpriv *prv; /* Our device' private space */
-+ struct sk_buff *oskb; /* Original skb pointer */
-+ struct net_device_stats *stats; /* This device's statistics */
-+ struct iphdr *iph; /* Our new IP header */
-+ __u32 newdst; /* The other SG's IP address */
-+ __u32 orgdst; /* Original IP destination address */
-+ __u32 orgedst; /* 1st SG's IP address */
-+ __u32 newsrc; /* The new source SG's IP address */
-+ __u32 orgsrc; /* Original IP source address */
-+ __u32 innersrc; /* Innermost IP source address */
-+ int iphlen; /* IP header length */
-+ int pyldsz; /* upper protocol payload size */
-+ int headroom;
-+ int tailroom;
-+ int authlen;
-+ int max_headroom; /* The extra header space needed */
-+ int max_tailroom; /* The extra stuffing needed */
-+ int ll_headroom; /* The extra link layer hard_header space needed */
-+ int tot_headroom; /* The total header space needed */
-+ int tot_tailroom; /* The totalstuffing needed */
-+ __u8 *saved_header; /* saved copy of the hard header */
-+ unsigned short sport, dport;
-+
-+ struct sockaddr_encap matcher; /* eroute search key */
-+ struct eroute *eroute;
-+ struct ipsec_sa *ipsp; /* ipsec_sa pointers */
-+ //struct ipsec_sa *ipsp_outer; /* last SA applied by encap_bundle */
-+ char sa_txt[SATOT_BUF];
-+ size_t sa_len;
-+ int hard_header_stripped; /* has the hard header been removed yet? */
-+ int hard_header_len;
-+ struct net_device *physdev;
-+/* struct device *virtdev; */
-+ short physmtu;
-+ short cur_mtu; /* copy of prv->mtu, cause prv may == NULL */
-+ short mtudiff;
-+#ifdef NET_21
-+ struct rtable *route;
-+#endif /* NET_21 */
-+ ip_said outgoing_said;
-+#ifdef NET_21
-+ int pass;
-+#endif /* NET_21 */
-+ uint32_t eroute_pid;
-+ struct ipsec_sa ips;
-+#ifdef CONFIG_IPSEC_NAT_TRAVERSAL
-+ uint8_t natt_type;
-+ uint8_t natt_head;
-+ uint16_t natt_sport;
-+ uint16_t natt_dport;
-+#endif
-+
-+ /*
-+ * xmit state machine use
-+ */
-+ void (*xsm_complete)(struct ipsec_xmit_state *ixs,
-+ enum ipsec_xmit_value stat);
-+ int state;
-+ int next_state;
-+#ifdef CONFIG_KLIPS_OCF
-+ struct work_struct workq;
-+#ifdef DECLARE_TASKLET
-+ struct tasklet_struct tasklet;
-+#endif
-+#endif
-+#ifdef CONFIG_KLIPS_ALG
-+ struct ipsec_alg_auth *ixt_a;
-+ struct ipsec_alg_enc *ixt_e;
-+#endif
-+#ifdef CONFIG_KLIPS_ESP
-+ struct esphdr *espp;
-+ unsigned char *idat;
-+#endif /* !CONFIG_KLIPS_ESP */
-+ int blocksize;
-+ int ilen, len;
-+ unsigned char *dat;
-+ __u8 frag_off, tos;
-+ __u16 ttl, check;
-+};
-+
-+enum ipsec_xmit_value
-+ipsec_xmit_sanity_check_dev(struct ipsec_xmit_state *ixs);
-+
-+enum ipsec_xmit_value
-+ipsec_xmit_sanity_check_skb(struct ipsec_xmit_state *ixs);
-+
-+enum ipsec_xmit_value
-+ipsec_xmit_encap_bundle(struct ipsec_xmit_state *ixs);
-+
-+extern void ipsec_xsm(struct ipsec_xmit_state *ixs);
-+#ifdef HAVE_KMEM_CACHE_T
-+extern kmem_cache_t *ipsec_ixs_cache;
-+#else
-+extern struct kmem_cache *ipsec_ixs_cache;
-+#endif
-+extern int ipsec_ixs_max;
-+extern atomic_t ipsec_ixs_cnt;
-+
-+extern void ipsec_extract_ports(struct iphdr * iph, struct sockaddr_encap * er);
-+
-+extern enum ipsec_xmit_value
-+ipsec_xmit_send(struct ipsec_xmit_state*ixs, struct flowi *fl);
-+
-+extern enum ipsec_xmit_value
-+ipsec_nat_encap(struct ipsec_xmit_state*ixs);
-+
-+extern enum ipsec_xmit_value
-+ipsec_tunnel_send(struct ipsec_xmit_state *ixs);
-+
-+extern void ipsec_xmit_cleanup(struct ipsec_xmit_state*ixs);
-+
-+
-+extern int ipsec_xmit_trap_count;
-+extern int ipsec_xmit_trap_sendcount;
-+
-+#ifdef CONFIG_KLIPS_DEBUG
-+extern int debug_xmit;
-+extern int debug_mast;
-+
-+#define ipsec_xmit_dmp(_x,_y, _z) if (debug_xmit && sysctl_ipsec_debug_verbose) ipsec_dmp_block(_x,_y,_z)
-+#else
-+#define ipsec_xmit_dmp(_x,_y, _z) do {} while(0)
-+
-+#endif /* CONFIG_KLIPS_DEBUG */
-+
-+extern int sysctl_ipsec_debug_verbose;
-+extern int sysctl_ipsec_icmp;
-+extern int sysctl_ipsec_tos;
-+
-+
-+/*
-+ * $Log: ipsec_xmit.h,v $
-+ * Revision 1.14 2005/05/11 01:00:26 mcr
-+ * do not call debug routines if !defined KLIPS_DEBUG.
-+ *
-+ * Revision 1.13 2005/04/29 05:01:38 mcr
-+ * use ipsec_dmp_block.
-+ * added cur_mtu to ixs instead of using ixs->dev.
-+ *
-+ * Revision 1.12 2004/08/20 21:45:37 mcr
-+ * CONFIG_KLIPS_NAT_TRAVERSAL is not used in an attempt to
-+ * be 26sec compatible. But, some defines where changed.
-+ *
-+ * Revision 1.11 2004/08/03 18:18:21 mcr
-+ * in 2.6, use "net_device" instead of #define device->net_device.
-+ * this probably breaks 2.0 compiles.
-+ *
-+ * Revision 1.10 2004/07/10 19:08:41 mcr
-+ * CONFIG_IPSEC -> CONFIG_KLIPS.
-+ *
-+ * Revision 1.9 2004/04/06 02:49:08 mcr
-+ * pullup of algo code from alg-branch.
-+ *
-+ * Revision 1.8 2004/04/05 19:55:07 mcr
-+ * Moved from linux/include/freeswan/ipsec_xmit.h,v
-+ *
-+ * Revision 1.7 2004/02/03 03:11:40 mcr
-+ * new xmit type if the UDP encapsulation is wrong.
-+ *
-+ * Revision 1.6 2003/12/13 19:10:16 mcr
-+ * refactored rcv and xmit code - same as FS 2.05.
-+ *
-+ * Revision 1.5 2003/12/10 01:20:06 mcr
-+ * NAT-traversal patches to KLIPS.
-+ *
-+ * Revision 1.4 2003/12/06 16:37:04 mcr
-+ * 1.4.7a X.509 patch applied.
-+ *
-+ * Revision 1.3 2003/10/31 02:27:05 mcr
-+ * pulled up port-selector patches and sa_id elimination.
-+ *
-+ * Revision 1.2.4.2 2003/10/29 01:10:19 mcr
-+ * elimited "struct sa_id"
-+ *
-+ * Revision 1.2.4.1 2003/09/21 13:59:38 mcr
-+ * pre-liminary X.509 patch - does not yet pass tests.
-+ *
-+ * Revision 1.2 2003/06/20 01:42:13 mcr
-+ * added counters to measure how many ACQUIREs we send to pluto,
-+ * and how many are successfully sent.
-+ *
-+ * Revision 1.1 2003/02/12 19:31:03 rgb
-+ * Refactored from ipsec_tunnel.c
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/mast.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,33 @@
-+struct mast_callbacks {
-+ int (*packet_encap)(struct device *mast, void *context,
-+ struct sk_buff *skb, int flowref);
-+ int (*link_inquire)(struct device *mast, void *context);
-+};
-+
-+
-+struct device *mast_init (int family,
-+ struct mast_callbacks *callbacks,
-+ unsigned int flags,
-+ unsigned int desired_unit,
-+ unsigned int max_flowref,
-+ void *context);
-+
-+int mast_destroy(struct device *mast);
-+
-+int mast_recv(struct device *mast, struct sk_buff *skb, int flowref);
-+
-+/* free this skb as being useless, increment failure count. */
-+int mast_toast(struct device *mast, struct sk_buff *skb, int flowref);
-+
-+int mast_linkstat (struct device *mast, int flowref,
-+ int status);
-+
-+int mast_setreference (struct device *mast,
-+ int defaultSA);
-+
-+int mast_setneighbor (struct device *mast,
-+ struct sockaddr *source,
-+ struct sockaddr *destination,
-+ int flowref);
-+
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/passert.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,75 @@
-+/*
-+ * sanitize a string into a printable format.
-+ *
-+ * Copyright (C) 1998-2002 D. Hugh Redelmeier.
-+ * Copyright (C) 2003 Michael Richardson
-+ *
-+ * This library is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU Library General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version. See .
-+ *
-+ * This library 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 Library General Public
-+ * License for more details.
-+ *
-+ * RCSID $Id: passert.h,v 1.7.8.1 2007/09/05 02:32:24 paul Exp $
-+ */
-+
-+#include "openswan.h"
-+
-+#ifndef _OPENSWAN_PASSERT_H
-+#define _OPENSWAN_PASSERT_H
-+/* our versions of assert: log result */
-+
-+#ifdef DEBUG
-+
-+typedef void (*openswan_passert_fail_t)(const char *pred_str,
-+ const char *file_str,
-+ unsigned long line_no) NEVER_RETURNS;
-+
-+extern openswan_passert_fail_t openswan_passert_fail;
-+
-+extern void pexpect_log(const char *pred_str
-+ , const char *file_str, unsigned long line_no);
-+
-+# define impossible() do { \
-+ if(openswan_passert_fail) { \
-+ (*openswan_passert_fail)("impossible", __FILE__, __LINE__); \
-+ }} while(0)
-+
-+extern void openswan_switch_fail(int n
-+ , const char *file_str, unsigned long line_no) NEVER_RETURNS;
-+
-+# define bad_case(n) openswan_switch_fail((int) n, __FILE__, __LINE__)
-+
-+# define passert(pred) do { \
-+ if (!(pred)) \
-+ if(openswan_passert_fail) { \
-+ (*openswan_passert_fail)(#pred, __FILE__, __LINE__); \
-+ } \
-+ } while(0)
-+
-+# define pexpect(pred) do { \
-+ if (!(pred)) \
-+ pexpect_log(#pred, __FILE__, __LINE__); \
-+ } while(0)
-+
-+/* assert that an err_t is NULL; evaluate exactly once */
-+# define happy(x) { \
-+ err_t ugh = x; \
-+ if (ugh != NULL) \
-+ if(openswan_passert_fail) { (*openswan_passert_fail)(ugh, __FILE__, __LINE__); } \
-+ }
-+
-+#else /*!DEBUG*/
-+
-+# define impossible() abort()
-+# define bad_case(n) abort()
-+# define passert(pred) { } /* do nothing */
-+# define happy(x) { (void) x; } /* evaluate non-judgementally */
-+
-+#endif /*!DEBUG*/
-+
-+#endif /* _OPENSWAN_PASSERT_H */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/pfkey.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,384 @@
-+/*
-+ * Openswan specific PF_KEY headers
-+ * Copyright (C) 1999, 2000, 2001 Richard Guy Briggs.
-+ * Copyright (C) 2006-2007 Michael Richardson
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * RCSID $Id: pfkey.h,v 1.52 2005/11/09 00:30:37 mcr Exp $
-+ */
-+
-+#ifndef __NET_IPSEC_PF_KEY_H
-+#define __NET_IPSEC_PF_KEY_H
-+
-+#include "pfkeyv2.h"
-+#ifdef __KERNEL__
-+extern struct proto_ops pfkey_proto_ops;
-+typedef struct sock pfkey_sock;
-+extern int debug_pfkey;
-+
-+extern /* void */ int pfkey_init(void);
-+extern /* void */ int pfkey_cleanup(void);
-+
-+struct socket_list
-+{
-+ struct socket *socketp;
-+ struct socket_list *next;
-+};
-+extern int pfkey_list_insert_socket(struct socket*, struct socket_list**);
-+extern int pfkey_list_remove_socket(struct socket*, struct socket_list**);
-+extern struct socket_list *pfkey_open_sockets;
-+extern struct socket_list *pfkey_registered_sockets[];
-+
-+struct ipsec_alg_supported
-+{
-+ uint16_t ias_exttype;
-+ uint8_t ias_id;
-+ uint8_t ias_ivlen;
-+ uint16_t ias_keyminbits;
-+ uint16_t ias_keymaxbits;
-+ const char *ias_name;
-+};
-+
-+extern struct supported_list *pfkey_supported_list[];
-+struct supported_list
-+{
-+ struct ipsec_alg_supported *supportedp;
-+ struct supported_list *next;
-+};
-+extern int pfkey_list_insert_supported(struct ipsec_alg_supported*, struct supported_list**);
-+extern int pfkey_list_remove_supported(struct ipsec_alg_supported*, struct supported_list**);
-+
-+struct sockaddr_key
-+{
-+ uint16_t key_family; /* PF_KEY */
-+ uint16_t key_pad; /* not used */
-+ uint32_t key_pid; /* process ID */
-+};
-+
-+struct pfkey_extracted_data
-+{
-+ struct ipsec_sa* ips;
-+ struct ipsec_sa* ips2;
-+ struct eroute *eroute;
-+ int outif;
-+ IPsecSAref_t sarefme;
-+ IPsecSAref_t sarefhim;
-+};
-+
-+/* forward reference */
-+struct sadb_ext;
-+struct sadb_msg;
-+struct sockaddr;
-+struct sadb_comb;
-+struct sadb_sadb;
-+struct sadb_alg;
-+
-+extern int
-+pfkey_alloc_eroute(struct eroute** eroute);
-+
-+extern int
-+pfkey_sa_process(struct sadb_ext *pfkey_ext,
-+ struct pfkey_extracted_data* extr);
-+
-+extern int
-+pfkey_lifetime_process(struct sadb_ext *pfkey_ext,
-+ struct pfkey_extracted_data* extr);
-+
-+extern int
-+pfkey_address_process(struct sadb_ext *pfkey_ext,
-+ struct pfkey_extracted_data* extr);
-+
-+extern int
-+pfkey_key_process(struct sadb_ext *pfkey_ext,
-+ struct pfkey_extracted_data* extr);
-+
-+extern int
-+pfkey_ident_process(struct sadb_ext *pfkey_ext,
-+ struct pfkey_extracted_data* extr);
-+
-+extern int
-+pfkey_sens_process(struct sadb_ext *pfkey_ext,
-+ struct pfkey_extracted_data* extr);
-+
-+extern int
-+pfkey_prop_process(struct sadb_ext *pfkey_ext,
-+ struct pfkey_extracted_data* extr);
-+
-+extern int
-+pfkey_supported_process(struct sadb_ext *pfkey_ext,
-+ struct pfkey_extracted_data* extr);
-+
-+extern int
-+pfkey_spirange_process(struct sadb_ext *pfkey_ext,
-+ struct pfkey_extracted_data* extr);
-+
-+extern int
-+pfkey_x_kmprivate_process(struct sadb_ext *pfkey_ext,
-+ struct pfkey_extracted_data* extr);
-+
-+extern int
-+pfkey_x_satype_process(struct sadb_ext *pfkey_ext,
-+ struct pfkey_extracted_data* extr);
-+
-+extern int
-+pfkey_x_debug_process(struct sadb_ext *pfkey_ext,
-+ struct pfkey_extracted_data* extr);
-+
-+extern int pfkey_upmsg(struct socket *, struct sadb_msg *);
-+extern int pfkey_upmsgsk(struct sock *, struct sadb_msg *);
-+extern int pfkey_expire(struct ipsec_sa *, int);
-+extern int pfkey_acquire(struct ipsec_sa *);
-+#else /* ! __KERNEL__ */
-+
-+extern openswan_keying_debug_func_t pfkey_debug_func;
-+extern openswan_keying_debug_func_t pfkey_error_func;
-+extern void pfkey_print(struct sadb_msg *msg, FILE *out);
-+
-+
-+#endif /* __KERNEL__ */
-+
-+extern uint8_t satype2proto(uint8_t satype);
-+extern uint8_t proto2satype(uint8_t proto);
-+extern char* satype2name(uint8_t satype);
-+extern char* proto2name(uint8_t proto);
-+
-+struct key_opt
-+{
-+ uint32_t key_pid; /* process ID */
-+ struct sock *sk;
-+};
-+
-+#define key_pid(sk) ((struct key_opt*)&((sk)->sk_protinfo))->key_pid
-+
-+/* XXX-mcr this is not an alignment, this is because the count is in 64-bit
-+ * words.
-+ */
-+#define IPSEC_PFKEYv2_ALIGN (sizeof(uint64_t)/sizeof(uint8_t))
-+#define BITS_PER_OCTET 8
-+#define OCTETBITS 8
-+#define PFKEYBITS 64
-+#define DIVUP(x,y) ((x + y -1) / y) /* divide, rounding upwards */
-+#define ALIGN_N(x,y) (DIVUP(x,y) * y) /* align on y boundary */
-+
-+#define IPSEC_PFKEYv2_LEN(x) ((x) * IPSEC_PFKEYv2_ALIGN)
-+#define IPSEC_PFKEYv2_WORDS(x) (DIVUP(x,IPSEC_PFKEYv2_ALIGN))
-+
-+
-+#define PFKEYv2_MAX_MSGSIZE 4096
-+
-+/*
-+ * PF_KEYv2 permitted and required extensions in and out bitmaps
-+ */
-+struct pf_key_ext_parsers_def {
-+ int (*parser)(struct sadb_ext*);
-+ char *parser_name;
-+};
-+
-+enum pfkey_ext_required {
-+ EXT_BITS_IN=0,
-+ EXT_BITS_OUT=1
-+};
-+
-+enum pfkey_ext_perm {
-+ EXT_BITS_PERM=0,
-+ EXT_BITS_REQ=1
-+};
-+
-+
-+typedef uint64_t pfkey_ext_track;
-+static inline void pfkey_mark_extension(enum sadb_extension_t exttype,
-+ pfkey_ext_track *exten_track)
-+{
-+ *exten_track |= (1 << exttype);
-+}
-+
-+extern int pfkey_extensions_missing(enum pfkey_ext_required inout,
-+ enum sadb_msg_t sadb_operation,
-+ pfkey_ext_track extensions_seen);
-+extern int pfkey_required_extension(enum pfkey_ext_required inout,
-+ enum sadb_msg_t sadb_operation,
-+ enum sadb_extension_t exttype);
-+extern int pfkey_permitted_extension(enum pfkey_ext_required inout,
-+ enum sadb_msg_t sadb_operation,
-+ enum sadb_extension_t exttype);
-+
-+
-+extern void pfkey_extensions_init(struct sadb_ext *extensions[]);
-+extern void pfkey_extensions_free(struct sadb_ext *extensions[]);
-+extern void pfkey_msg_free(struct sadb_msg **pfkey_msg);
-+
-+extern int pfkey_msg_parse(struct sadb_msg *pfkey_msg,
-+ struct pf_key_ext_parsers_def *ext_parsers[],
-+ struct sadb_ext **extensions,
-+ int dir);
-+
-+extern int pfkey_register_reply(int satype, struct sadb_msg *sadb_msg);
-+
-+/*
-+ * PF_KEYv2 build function prototypes
-+ */
-+
-+int
-+pfkey_msg_hdr_build(struct sadb_ext** pfkey_ext,
-+ uint8_t msg_type,
-+ uint8_t satype,
-+ uint8_t msg_errno,
-+ uint32_t seq,
-+ uint32_t pid);
-+
-+int
-+pfkey_sa_ref_build(struct sadb_ext ** pfkey_ext,
-+ uint16_t exttype,
-+ uint32_t spi, /* in network order */
-+ uint8_t replay_window,
-+ uint8_t sa_state,
-+ uint8_t auth,
-+ uint8_t encrypt,
-+ uint32_t flags,
-+ uint32_t/*IPsecSAref_t*/ ref);
-+
-+int
-+pfkey_sa_build(struct sadb_ext ** pfkey_ext,
-+ uint16_t exttype,
-+ uint32_t spi, /* in network order */
-+ uint8_t replay_window,
-+ uint8_t sa_state,
-+ uint8_t auth,
-+ uint8_t encrypt,
-+ uint32_t flags);
-+
-+extern int
-+pfkey_saref_build(struct sadb_ext **pfkey_ext,
-+ IPsecSAref_t in, IPsecSAref_t out);
-+
-+int
-+pfkey_lifetime_build(struct sadb_ext ** pfkey_ext,
-+ uint16_t exttype,
-+ uint32_t allocations,
-+ uint64_t bytes,
-+ uint64_t addtime,
-+ uint64_t usetime,
-+ uint32_t packets);
-+
-+int
-+pfkey_address_build(struct sadb_ext** pfkey_ext,
-+ uint16_t exttype,
-+ uint8_t proto,
-+ uint8_t prefixlen,
-+ struct sockaddr* address);
-+
-+int
-+pfkey_key_build(struct sadb_ext** pfkey_ext,
-+ uint16_t exttype,
-+ uint16_t key_bits,
-+ unsigned char *key);
-+
-+int
-+pfkey_ident_build(struct sadb_ext** pfkey_ext,
-+ uint16_t exttype,
-+ uint16_t ident_type,
-+ uint64_t ident_id,
-+ uint8_t ident_len,
-+ char* ident_string);
-+
-+#ifdef __KERNEL__
-+extern int pfkey_nat_t_new_mapping(struct ipsec_sa *, struct sockaddr *, __u16);
-+extern int pfkey_x_nat_t_type_process(struct sadb_ext *pfkey_ext, struct pfkey_extracted_data* extr);
-+extern int pfkey_x_nat_t_port_process(struct sadb_ext *pfkey_ext, struct pfkey_extracted_data* extr);
-+#endif /* __KERNEL__ */
-+int
-+pfkey_x_nat_t_type_build(struct sadb_ext** pfkey_ext,
-+ uint8_t type);
-+int
-+pfkey_x_nat_t_port_build(struct sadb_ext** pfkey_ext,
-+ uint16_t exttype,
-+ uint16_t port);
-+
-+int
-+pfkey_sens_build(struct sadb_ext** pfkey_ext,
-+ uint32_t dpd,
-+ uint8_t sens_level,
-+ uint8_t sens_len,
-+ uint64_t* sens_bitmap,
-+ uint8_t integ_level,
-+ uint8_t integ_len,
-+ uint64_t* integ_bitmap);
-+
-+int pfkey_x_protocol_build(struct sadb_ext **, uint8_t);
-+
-+
-+int
-+pfkey_prop_build(struct sadb_ext** pfkey_ext,
-+ uint8_t replay,
-+ unsigned int comb_num,
-+ struct sadb_comb* comb);
-+
-+int
-+pfkey_supported_build(struct sadb_ext** pfkey_ext,
-+ uint16_t exttype,
-+ unsigned int alg_num,
-+ struct sadb_alg* alg);
-+
-+int
-+pfkey_spirange_build(struct sadb_ext** pfkey_ext,
-+ uint16_t exttype,
-+ uint32_t min,
-+ uint32_t max);
-+
-+int
-+pfkey_x_kmprivate_build(struct sadb_ext** pfkey_ext);
-+
-+int
-+pfkey_x_satype_build(struct sadb_ext** pfkey_ext,
-+ uint8_t satype);
-+
-+int
-+pfkey_x_debug_build(struct sadb_ext** pfkey_ext,
-+ uint32_t tunnel,
-+ uint32_t netlink,
-+ uint32_t xform,
-+ uint32_t eroute,
-+ uint32_t spi,
-+ uint32_t radij,
-+ uint32_t esp,
-+ uint32_t ah,
-+ uint32_t rcv,
-+ uint32_t pfkey,
-+ uint32_t ipcomp,
-+ uint32_t verbose);
-+
-+int
-+pfkey_msg_build(struct sadb_msg** pfkey_msg,
-+ struct sadb_ext* extensions[],
-+ int dir);
-+
-+/* in pfkey_v2_debug.c - routines to decode numbers -> strings */
-+const char *
-+pfkey_v2_sadb_ext_string(int extnum);
-+
-+const char *
-+pfkey_v2_sadb_type_string(int sadb_type);
-+
-+struct sadb_builds {
-+ struct k_sadb_sa sa_base;
-+};
-+
-+int
-+pfkey_sa_builds(struct sadb_ext **pfkey_ext,
-+ struct sadb_builds sab);
-+
-+extern int
-+pfkey_outif_build(struct sadb_ext **pfkey_ext,
-+ uint16_t outif);
-+
-+#endif /* __NET_IPSEC_PF_KEY_H */
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/pfkey_debug.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,54 @@
-+/*
-+ * sanitize a string into a printable format.
-+ *
-+ * Copyright (C) 1998-2002 D. Hugh Redelmeier.
-+ * Copyright (C) 2003 Michael Richardson
-+ *
-+ * This library is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU Library General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version. See .
-+ *
-+ * This library 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 Library General Public
-+ * License for more details.
-+ *
-+ * RCSID $Id: pfkey_debug.h,v 1.3 2004/04/05 19:55:07 mcr Exp $
-+ */
-+
-+#ifndef _FREESWAN_PFKEY_DEBUG_H
-+#define _FREESWAN_PFKEY_DEBUG_H
-+
-+#ifdef __KERNEL__
-+
-+/* note, kernel version ignores pfkey levels */
-+# define DEBUGGING(level,args...) \
-+ KLIPS_PRINT(debug_pfkey, "klips_debug:" args)
-+
-+# define ERROR(args...) printk(KERN_ERR "klips:" args)
-+
-+#else
-+
-+extern unsigned int pfkey_lib_debug;
-+
-+extern int (*pfkey_debug_func)(const char *message, ...) PRINTF_LIKE(1);
-+extern int (*pfkey_error_func)(const char *message, ...) PRINTF_LIKE(1);
-+
-+#define DEBUGGING(level,args...) if(pfkey_lib_debug & level) { \
-+ if(pfkey_debug_func != NULL) { \
-+ (*pfkey_debug_func)("pfkey_lib_debug:" args); \
-+ } else { \
-+ printf("pfkey_lib_debug:" args); \
-+ } }
-+
-+#define ERROR(args...) if(pfkey_error_func != NULL) { \
-+ (*pfkey_error_func)("pfkey_lib_debug:" args); \
-+ }
-+
-+# define MALLOC(size) malloc(size)
-+# define FREE(obj) free(obj)
-+
-+#endif
-+
-+#endif
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/openswan/pfkeyv2.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,347 @@
-+/*
-+ * RCSID $Id: pfkeyv2.h,v 1.31 2005/04/14 01:14:54 mcr Exp $
-+ */
-+
-+/*
-+RFC 2367 PF_KEY Key Management API July 1998
-+
-+
-+Appendix D: Sample Header File
-+
-+This file defines structures and symbols for the PF_KEY Version 2
-+key management interface. It was written at the U.S. Naval Research
-+Laboratory. This file is in the public domain. The authors ask that
-+you leave this credit intact on any copies of this file.
-+*/
-+
-+#ifndef __PFKEY_V2_H
-+#define __PFKEY_V2_H 1
-+
-+#include
-+
-+#define PF_KEY_V2 2
-+#define PFKEYV2_REVISION 199806L
-+
-+enum sadb_msg_t {
-+ K_SADB_RESERVED=SADB_RESERVED,
-+ K_SADB_GETSPI=SADB_GETSPI,
-+ K_SADB_UPDATE=SADB_UPDATE,
-+ K_SADB_ADD=SADB_ADD,
-+ K_SADB_DELETE=SADB_DELETE,
-+ K_SADB_GET=SADB_GET,
-+ K_SADB_ACQUIRE=SADB_ACQUIRE,
-+ K_SADB_REGISTER=SADB_REGISTER,
-+ K_SADB_EXPIRE=SADB_EXPIRE,
-+ K_SADB_FLUSH=SADB_FLUSH,
-+ K_SADB_DUMP=SADB_DUMP,
-+ K_SADB_X_PROMISC=SADB_X_PROMISC,
-+ K_SADB_X_PCHANGE=SADB_X_PCHANGE,
-+ K_SADB_X_GRPSA=13,
-+ K_SADB_X_ADDFLOW=14,
-+ K_SADB_X_DELFLOW=15,
-+ K_SADB_X_DEBUG=16,
-+ K_SADB_X_NAT_T_NEW_MAPPING=17,
-+ K_SADB_X_PLUMBIF=18,
-+ K_SADB_X_UNPLUMBIF=19,
-+ K_SADB_MAX=19
-+};
-+
-+#define SADB_X_GRPSA K_SADB_X_GRPSA
-+#define SADB_X_ADDFLOW K_SADB_X_ADDFLOW
-+#define SADB_X_DELFLOW K_SADB_X_DELFLOW
-+#define SADB_X_DEBUG K_SADB_X_DEBUG
-+#define SADB_X_PLUMBIF K_SADB_X_PLUMBIF
-+#define SADB_X_UNPLUMBIF K_SADB_X_UNPLUMBIF
-+
-+struct k_sadb_sa {
-+ uint16_t sadb_sa_len;
-+ uint16_t sadb_sa_exttype;
-+ uint32_t sadb_sa_spi;
-+ uint8_t sadb_sa_replay;
-+ uint8_t sadb_sa_state;
-+ uint8_t sadb_sa_auth;
-+ uint8_t sadb_sa_encrypt;
-+ uint32_t sadb_sa_flags;
-+ uint32_t /*IPsecSAref_t*/ sadb_x_sa_ref; /* 32 bits */
-+ uint8_t sadb_x_reserved[4];
-+} __attribute__((packed));
-+
-+struct sadb_sa_v1 {
-+ uint16_t sadb_sa_len;
-+ uint16_t sadb_sa_exttype;
-+ uint32_t sadb_sa_spi;
-+ uint8_t sadb_sa_replay;
-+ uint8_t sadb_sa_state;
-+ uint8_t sadb_sa_auth;
-+ uint8_t sadb_sa_encrypt;
-+ uint32_t sadb_sa_flags;
-+} __attribute__((packed));
-+
-+struct sadb_x_satype {
-+ uint16_t sadb_x_satype_len;
-+ uint16_t sadb_x_satype_exttype;
-+ uint8_t sadb_x_satype_satype;
-+ uint8_t sadb_x_satype_reserved[3];
-+} __attribute__((packed));
-+
-+struct sadb_x_debug {
-+ uint16_t sadb_x_debug_len;
-+ uint16_t sadb_x_debug_exttype;
-+ uint32_t sadb_x_debug_tunnel;
-+ uint32_t sadb_x_debug_netlink;
-+ uint32_t sadb_x_debug_xform;
-+ uint32_t sadb_x_debug_eroute;
-+ uint32_t sadb_x_debug_spi;
-+ uint32_t sadb_x_debug_radij;
-+ uint32_t sadb_x_debug_esp;
-+ uint32_t sadb_x_debug_ah;
-+ uint32_t sadb_x_debug_rcv;
-+ uint32_t sadb_x_debug_pfkey;
-+ uint32_t sadb_x_debug_ipcomp;
-+ uint32_t sadb_x_debug_verbose;
-+ uint8_t sadb_x_debug_reserved[4];
-+} __attribute__((packed));
-+
-+/*
-+ * a plumbif extension can appear in
-+ * - a plumbif message to create the interface.
-+ * - a unplumbif message to delete the interface.
-+ * - a sadb add/replace to indicate which interface
-+ * a decrypted packet should emerge on.
-+ *
-+ * the create/delete part could/should be replaced with netlink equivalents,
-+ * or better yet, FORCES versions of same.
-+ *
-+ */
-+struct sadb_x_plumbif {
-+ uint16_t sadb_x_outif_len;
-+ uint16_t sadb_x_outif_exttype;
-+ uint16_t sadb_x_outif_ifnum;
-+} __attribute__((packed));
-+
-+/*
-+ * the ifnum describes a device that you wish to create refer to.
-+ *
-+ * devices 0-40959 are mastXXX devices.
-+ * devices 40960-49141 are mastXXX devices with transport set.
-+ * devices 49152-65536 are deprecated ipsecXXX devices.
-+ */
-+#define IPSECDEV_OFFSET (48*1024)
-+#define MASTTRANSPORT_OFFSET (40*1024)
-+
-+/*
-+ * an saref extension sets the SA's reference number, and
-+ * may also set the paired SA's reference number.
-+ *
-+ */
-+struct sadb_x_saref {
-+ uint16_t sadb_x_saref_len;
-+ uint16_t sadb_x_saref_exttype;
-+ uint32_t sadb_x_saref_me;
-+ uint32_t sadb_x_saref_him;
-+} __attribute__((packed));
-+
-+/*
-+ * A protocol structure for passing through the transport level
-+ * protocol. It contains more fields than are actually used/needed
-+ * but it is this way to be compatible with the structure used in
-+ * OpenBSD (http://www.openbsd.org/cgi-bin/cvsweb/src/sys/net/pfkeyv2.h)
-+ */
-+struct sadb_protocol {
-+ uint16_t sadb_protocol_len;
-+ uint16_t sadb_protocol_exttype;
-+ uint8_t sadb_protocol_proto;
-+ uint8_t sadb_protocol_direction;
-+ uint8_t sadb_protocol_flags;
-+ uint8_t sadb_protocol_reserved2;
-+} __attribute__((packed));
-+
-+/*
-+ * NOTE that there is a limit of 31 extensions due to current implementation
-+ * in pfkeyv2_ext_bits.c
-+ */
-+enum sadb_extension_t {
-+ K_SADB_EXT_RESERVED=SADB_RESERVED,
-+ K_SADB_EXT_SA= SADB_EXT_SA,
-+ K_SADB_EXT_LIFETIME_CURRENT=SADB_EXT_LIFETIME_CURRENT,
-+ K_SADB_EXT_LIFETIME_HARD= SADB_EXT_LIFETIME_HARD,
-+ K_SADB_EXT_LIFETIME_SOFT= SADB_EXT_LIFETIME_SOFT,
-+ K_SADB_EXT_ADDRESS_SRC= SADB_EXT_ADDRESS_SRC,
-+ K_SADB_EXT_ADDRESS_DST= SADB_EXT_ADDRESS_DST,
-+ K_SADB_EXT_ADDRESS_PROXY= SADB_EXT_ADDRESS_PROXY,
-+ K_SADB_EXT_KEY_AUTH= SADB_EXT_KEY_AUTH,
-+ K_SADB_EXT_KEY_ENCRYPT= SADB_EXT_KEY_ENCRYPT,
-+ K_SADB_EXT_IDENTITY_SRC= SADB_EXT_IDENTITY_SRC,
-+ K_SADB_EXT_IDENTITY_DST= SADB_EXT_IDENTITY_DST,
-+ K_SADB_EXT_SENSITIVITY= SADB_EXT_SENSITIVITY,
-+ K_SADB_EXT_PROPOSAL= SADB_EXT_PROPOSAL,
-+ K_SADB_EXT_SUPPORTED_AUTH= SADB_EXT_SUPPORTED_AUTH,
-+ K_SADB_EXT_SUPPORTED_ENCRYPT=SADB_EXT_SUPPORTED_ENCRYPT,
-+ K_SADB_EXT_SPIRANGE= SADB_EXT_SPIRANGE,
-+ K_SADB_X_EXT_KMPRIVATE= SADB_X_EXT_KMPRIVATE,
-+ K_SADB_X_EXT_SATYPE2= 18,
-+ K_SADB_X_EXT_POLICY= SADB_X_EXT_POLICY,
-+ K_SADB_X_EXT_SA2= SADB_X_EXT_SA2,
-+ K_SADB_X_EXT_ADDRESS_DST2= 20,
-+ K_SADB_X_EXT_ADDRESS_SRC_FLOW=21,
-+ K_SADB_X_EXT_ADDRESS_DST_FLOW=22,
-+ K_SADB_X_EXT_ADDRESS_SRC_MASK=23,
-+ K_SADB_X_EXT_ADDRESS_DST_MASK=24,
-+ K_SADB_X_EXT_DEBUG= 25,
-+ K_SADB_X_EXT_PROTOCOL= 26,
-+ K_SADB_X_EXT_NAT_T_TYPE= 27,
-+ K_SADB_X_EXT_NAT_T_SPORT= 28,
-+ K_SADB_X_EXT_NAT_T_DPORT= 29,
-+ K_SADB_X_EXT_NAT_T_OA= 30,
-+ K_SADB_X_EXT_PLUMBIF= 31,
-+ K_SADB_X_EXT_SAREF= 32,
-+ K_SADB_EXT_MAX= 32,
-+};
-+
-+
-+#define SADB_X_EXT_SATYPE2 K_SADB_X_EXT_SATYPE2
-+#define SADB_X_EXT_ADDRESS_DST2 K_SADB_X_EXT_ADDRESS_DST2
-+#define SADB_X_EXT_ADDRESS_SRC_FLOW K_SADB_X_EXT_ADDRESS_SRC_FLOW
-+#define SADB_X_EXT_ADDRESS_DST_FLOW K_SADB_X_EXT_ADDRESS_DST_FLOW
-+#define SADB_X_EXT_ADDRESS_SRC_MASK K_SADB_X_EXT_ADDRESS_SRC_MASK
-+#define SADB_X_EXT_ADDRESS_DST_MASK K_SADB_X_EXT_ADDRESS_DST_MASK
-+#define SADB_X_EXT_DEBUG K_SADB_X_EXT_DEBUG
-+#define SADB_X_EXT_PROTOCOL K_SADB_X_EXT_PROTOCOL
-+
-+#undef SADB_X_EXT_NAT_T_TYPE
-+#undef SADB_X_EXT_NAT_T_SPORT
-+#undef SADB_X_EXT_NAT_T_DPORT
-+#undef SADB_X_EXT_NAT_T_OA
-+#define SADB_X_EXT_PLUMBIF K_SADB_X_EXT_PLUMBIF
-+
-+
-+
-+/* K_SADB_X_DELFLOW required over and above K_SADB_X_SAFLAGS_CLEARFLOW */
-+#define K_SADB_X_EXT_ADDRESS_DELFLOW \
-+ ( (1<rm_mklist; \
-+ } else \
-+ R_Malloc(m, struct radij_mask *, sizeof (*(m))); }\
-+
-+#define MKFree(m) { (m)->rm_mklist = rj_mkfreelist; rj_mkfreelist = (m);}
-+
-+struct radij_node_head {
-+ struct radij_node *rnh_treetop;
-+ int rnh_addrsize; /* permit, but not require fixed keys */
-+ int rnh_pktsize; /* permit, but not require fixed keys */
-+#if 0
-+ struct radij_node *(*rnh_addaddr) /* add based on sockaddr */
-+ __P((void *v, void *mask,
-+ struct radij_node_head *head, struct radij_node nodes[]));
-+#endif
-+ int (*rnh_addaddr) /* add based on sockaddr */
-+ __P((void *v, void *mask,
-+ struct radij_node_head *head, struct radij_node nodes[]));
-+ struct radij_node *(*rnh_addpkt) /* add based on packet hdr */
-+ __P((void *v, void *mask,
-+ struct radij_node_head *head, struct radij_node nodes[]));
-+#if 0
-+ struct radij_node *(*rnh_deladdr) /* remove based on sockaddr */
-+ __P((void *v, void *mask, struct radij_node_head *head));
-+#endif
-+ int (*rnh_deladdr) /* remove based on sockaddr */
-+ __P((void *v, void *mask, struct radij_node_head *head, struct radij_node **node));
-+ struct radij_node *(*rnh_delpkt) /* remove based on packet hdr */
-+ __P((void *v, void *mask, struct radij_node_head *head));
-+ struct radij_node *(*rnh_matchaddr) /* locate based on sockaddr */
-+ __P((void *v, struct radij_node_head *head));
-+ struct radij_node *(*rnh_matchpkt) /* locate based on packet hdr */
-+ __P((void *v, struct radij_node_head *head));
-+ int (*rnh_walktree) /* traverse tree */
-+ __P((struct radij_node_head *head, int (*f)(struct radij_node *rn, void *w), void *w));
-+ struct radij_node rnh_nodes[3]; /* empty tree for common case */
-+};
-+
-+
-+#define Bcmp(a, b, n) memcmp(((caddr_t)(b)), ((caddr_t)(a)), (unsigned)(n))
-+#define Bcopy(a, b, n) memmove(((caddr_t)(b)), ((caddr_t)(a)), (unsigned)(n))
-+#define Bzero(p, n) memset((caddr_t)(p), 0, (unsigned)(n))
-+#define R_Malloc(p, t, n) ((p = (t) kmalloc((size_t)(n), GFP_ATOMIC)), Bzero((p),(n)))
-+#define Free(p) kfree((caddr_t)p);
-+
-+void rj_init __P((void));
-+int rj_inithead __P((void **, int));
-+int rj_refines __P((void *, void *));
-+int rj_walktree __P((struct radij_node_head *head, int (*f)(struct radij_node *rn, void *w), void *w));
-+struct radij_node
-+ *rj_addmask __P((void *, int, int)) /* , rgb */ ;
-+int /* * */ rj_addroute __P((void *, void *, struct radij_node_head *,
-+ struct radij_node [2])) /* , rgb */ ;
-+int /* * */ rj_delete __P((void *, void *, struct radij_node_head *, struct radij_node **)) /* , rgb */ ;
-+struct radij_node /* rgb */
-+ *rj_insert __P((void *, struct radij_node_head *, int *,
-+ struct radij_node [2])),
-+ *rj_match __P((void *, struct radij_node_head *)),
-+ *rj_newpair __P((void *, int, struct radij_node[2])),
-+ *rj_search __P((void *, struct radij_node *)),
-+ *rj_search_m __P((void *, struct radij_node *, void *));
-+
-+void rj_deltree(struct radij_node_head *);
-+void rj_delnodes(struct radij_node *);
-+void rj_free_mkfreelist(void);
-+int radijcleartree(void);
-+int radijcleanup(void);
-+
-+extern struct radij_node_head *mask_rjhead;
-+extern int maj_keylen;
-+#endif /* __KERNEL__ */
-+
-+#endif /* _RADIJ_H_ */
-+
-+
-+/*
-+ * $Log: radij.h,v $
-+ * Revision 1.13 2004/04/05 19:55:08 mcr
-+ * Moved from linux/include/freeswan/radij.h,v
-+ *
-+ * Revision 1.12 2002/04/24 07:36:48 mcr
-+ * Moved from ./klips/net/ipsec/radij.h,v
-+ *
-+ * Revision 1.11 2001/09/20 15:33:00 rgb
-+ * Min/max cleanup.
-+ *
-+ * Revision 1.10 1999/11/18 04:09:20 rgb
-+ * Replaced all kernel version macros to shorter, readable form.
-+ *
-+ * Revision 1.9 1999/05/05 22:02:33 rgb
-+ * Add a quick and dirty port to 2.2 kernels by Marc Boucher .
-+ *
-+ * Revision 1.8 1999/04/29 15:24:58 rgb
-+ * Add check for existence of macros min/max.
-+ *
-+ * Revision 1.7 1999/04/11 00:29:02 henry
-+ * GPL boilerplate
-+ *
-+ * Revision 1.6 1999/04/06 04:54:29 rgb
-+ * Fix/Add RCSID Id: and Log: bits to make PHMDs happy. This includes
-+ * patch shell fixes.
-+ *
-+ * Revision 1.5 1999/01/22 06:30:32 rgb
-+ * 64-bit clean-up.
-+ *
-+ * Revision 1.4 1998/11/30 13:22:55 rgb
-+ * Rationalised all the klips kernel file headers. They are much shorter
-+ * now and won't conflict under RH5.2.
-+ *
-+ * Revision 1.3 1998/10/25 02:43:27 rgb
-+ * Change return type on rj_addroute and rj_delete and add and argument
-+ * to the latter to be able to transmit more infomation about errors.
-+ *
-+ * Revision 1.2 1998/07/14 18:09:51 rgb
-+ * Add a routine to clear eroute table.
-+ * Added #ifdef __KERNEL__ directives to restrict scope of header.
-+ *
-+ * Revision 1.1 1998/06/18 21:30:22 henry
-+ * move sources from klips/src to klips/net/ipsec to keep stupid kernel
-+ * build scripts happier about symlinks
-+ *
-+ * Revision 1.4 1998/05/25 20:34:16 rgb
-+ * Remove temporary ipsec_walk, rj_deltree and rj_delnodes functions.
-+ *
-+ * Rename ipsec_rj_walker (ipsec_walk) to ipsec_rj_walker_procprint and
-+ * add ipsec_rj_walker_delete.
-+ *
-+ * Recover memory for eroute table on unload of module.
-+ *
-+ * Revision 1.3 1998/04/22 16:51:37 rgb
-+ * Tidy up radij debug code from recent rash of modifications to debug code.
-+ *
-+ * Revision 1.2 1998/04/14 17:30:38 rgb
-+ * Fix up compiling errors for radij tree memory reclamation.
-+ *
-+ * Revision 1.1 1998/04/09 03:06:16 henry
-+ * sources moved up from linux/net/ipsec
-+ *
-+ * Revision 1.1.1.1 1998/04/08 05:35:04 henry
-+ * RGB's ipsec-0.8pre2.tar.gz ipsec-0.8
-+ *
-+ * Revision 0.4 1997/01/15 01:28:15 ji
-+ * No changes.
-+ *
-+ * Revision 0.3 1996/11/20 14:44:45 ji
-+ * Release update only.
-+ *
-+ * Revision 0.2 1996/11/02 00:18:33 ji
-+ * First limited release.
-+ *
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/zlib/zconf.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,309 @@
-+/* zconf.h -- configuration of the zlib compression library
-+ * Copyright (C) 1995-2002 Jean-loup Gailly.
-+ * For conditions of distribution and use, see copyright notice in zlib.h
-+ */
-+
-+/* @(#) $Id: zconf.h,v 1.4 2004/07/10 07:48:40 mcr Exp $ */
-+
-+#ifndef _ZCONF_H
-+#define _ZCONF_H
-+
-+/*
-+ * If you *really* need a unique prefix for all types and library functions,
-+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
-+ */
-+#ifdef IPCOMP_PREFIX
-+# define deflateInit_ ipcomp_deflateInit_
-+# define deflate ipcomp_deflate
-+# define deflateEnd ipcomp_deflateEnd
-+# define inflateInit_ ipcomp_inflateInit_
-+# define inflate ipcomp_inflate
-+# define inflateEnd ipcomp_inflateEnd
-+# define deflateInit2_ ipcomp_deflateInit2_
-+# define deflateSetDictionary ipcomp_deflateSetDictionary
-+# define deflateCopy ipcomp_deflateCopy
-+# define deflateReset ipcomp_deflateReset
-+# define deflateParams ipcomp_deflateParams
-+# define inflateInit2_ ipcomp_inflateInit2_
-+# define inflateSetDictionary ipcomp_inflateSetDictionary
-+# define inflateSync ipcomp_inflateSync
-+# define inflateSyncPoint ipcomp_inflateSyncPoint
-+# define inflateReset ipcomp_inflateReset
-+# define compress ipcomp_compress
-+# define compress2 ipcomp_compress2
-+# define uncompress ipcomp_uncompress
-+# define adler32 ipcomp_adler32
-+# define crc32 ipcomp_crc32
-+# define get_crc_table ipcomp_get_crc_table
-+/* SSS: these also need to be prefixed to avoid clash with ppp_deflate and ext2compression */
-+# define inflate_blocks ipcomp_deflate_blocks
-+# define inflate_blocks_free ipcomp_deflate_blocks_free
-+# define inflate_blocks_new ipcomp_inflate_blocks_new
-+# define inflate_blocks_reset ipcomp_inflate_blocks_reset
-+# define inflate_blocks_sync_point ipcomp_inflate_blocks_sync_point
-+# define inflate_set_dictionary ipcomp_inflate_set_dictionary
-+# define inflate_codes ipcomp_inflate_codes
-+# define inflate_codes_free ipcomp_inflate_codes_free
-+# define inflate_codes_new ipcomp_inflate_codes_new
-+# define inflate_fast ipcomp_inflate_fast
-+# define inflate_trees_bits ipcomp_inflate_trees_bits
-+# define inflate_trees_dynamic ipcomp_inflate_trees_dynamic
-+# define inflate_trees_fixed ipcomp_inflate_trees_fixed
-+# define inflate_flush ipcomp_inflate_flush
-+# define inflate_mask ipcomp_inflate_mask
-+# define _dist_code _ipcomp_dist_code
-+# define _length_code _ipcomp_length_code
-+# define _tr_align _ipcomp_tr_align
-+# define _tr_flush_block _ipcomp_tr_flush_block
-+# define _tr_init _ipcomp_tr_init
-+# define _tr_stored_block _ipcomp_tr_stored_block
-+# define _tr_tally _ipcomp_tr_tally
-+# define zError ipcomp_zError
-+# define z_errmsg ipcomp_z_errmsg
-+# define zlibVersion ipcomp_zlibVersion
-+# define match_init ipcomp_match_init
-+# define longest_match ipcomp_longest_match
-+#endif
-+
-+#ifdef Z_PREFIX
-+# define Byte z_Byte
-+# define uInt z_uInt
-+# define uLong z_uLong
-+# define Bytef z_Bytef
-+# define charf z_charf
-+# define intf z_intf
-+# define uIntf z_uIntf
-+# define uLongf z_uLongf
-+# define voidpf z_voidpf
-+# define voidp z_voidp
-+#endif
-+
-+#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
-+# define WIN32
-+#endif
-+#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386)
-+# ifndef __32BIT__
-+# define __32BIT__
-+# endif
-+#endif
-+#if defined(__MSDOS__) && !defined(MSDOS)
-+# define MSDOS
-+#endif
-+
-+/*
-+ * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
-+ * than 64k bytes at a time (needed on systems with 16-bit int).
-+ */
-+#if defined(MSDOS) && !defined(__32BIT__)
-+# define MAXSEG_64K
-+#endif
-+#ifdef MSDOS
-+# define UNALIGNED_OK
-+#endif
-+
-+#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32)) && !defined(STDC)
-+# define STDC
-+#endif
-+#if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__)
-+# ifndef STDC
-+# define STDC
-+# endif
-+#endif
-+
-+#ifndef STDC
-+# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
-+# define const
-+# endif
-+#endif
-+
-+/* Some Mac compilers merge all .h files incorrectly: */
-+#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__)
-+# define NO_DUMMY_DECL
-+#endif
-+
-+/* Old Borland C incorrectly complains about missing returns: */
-+#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
-+# define NEED_DUMMY_RETURN
-+#endif
-+
-+
-+/* Maximum value for memLevel in deflateInit2 */
-+#ifndef MAX_MEM_LEVEL
-+# ifdef MAXSEG_64K
-+# define MAX_MEM_LEVEL 8
-+# else
-+# define MAX_MEM_LEVEL 9
-+# endif
-+#endif
-+
-+/* Maximum value for windowBits in deflateInit2 and inflateInit2.
-+ * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
-+ * created by gzip. (Files created by minigzip can still be extracted by
-+ * gzip.)
-+ */
-+#ifndef MAX_WBITS
-+# define MAX_WBITS 15 /* 32K LZ77 window */
-+#endif
-+
-+/* The memory requirements for deflate are (in bytes):
-+ (1 << (windowBits+2)) + (1 << (memLevel+9))
-+ that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
-+ plus a few kilobytes for small objects. For example, if you want to reduce
-+ the default memory requirements from 256K to 128K, compile with
-+ make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
-+ Of course this will generally degrade compression (there's no free lunch).
-+
-+ The memory requirements for inflate are (in bytes) 1 << windowBits
-+ that is, 32K for windowBits=15 (default value) plus a few kilobytes
-+ for small objects.
-+*/
-+
-+ /* Type declarations */
-+
-+#ifndef OF /* function prototypes */
-+# ifdef STDC
-+# define OF(args) args
-+# else
-+# define OF(args) ()
-+# endif
-+#endif
-+
-+/* The following definitions for FAR are needed only for MSDOS mixed
-+ * model programming (small or medium model with some far allocations).
-+ * This was tested only with MSC; for other MSDOS compilers you may have
-+ * to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
-+ * just define FAR to be empty.
-+ */
-+#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__)
-+ /* MSC small or medium model */
-+# define SMALL_MEDIUM
-+# ifdef _MSC_VER
-+# define FAR _far
-+# else
-+# define FAR far
-+# endif
-+#endif
-+#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__))
-+# ifndef __32BIT__
-+# define SMALL_MEDIUM
-+# define FAR _far
-+# endif
-+#endif
-+
-+/* Compile with -DZLIB_DLL for Windows DLL support */
-+#if defined(ZLIB_DLL)
-+# if defined(_WINDOWS) || defined(WINDOWS)
-+# ifdef FAR
-+# undef FAR
-+# endif
-+# include
-+# define ZEXPORT WINAPI
-+# ifdef WIN32
-+# define ZEXPORTVA WINAPIV
-+# else
-+# define ZEXPORTVA FAR _cdecl _export
-+# endif
-+# endif
-+# if defined (__BORLANDC__)
-+# if (__BORLANDC__ >= 0x0500) && defined (WIN32)
-+# include
-+# define ZEXPORT __declspec(dllexport) WINAPI
-+# define ZEXPORTRVA __declspec(dllexport) WINAPIV
-+# else
-+# if defined (_Windows) && defined (__DLL__)
-+# define ZEXPORT _export
-+# define ZEXPORTVA _export
-+# endif
-+# endif
-+# endif
-+#endif
-+
-+#if defined (__BEOS__)
-+# if defined (ZLIB_DLL)
-+# define ZEXTERN extern __declspec(dllexport)
-+# else
-+# define ZEXTERN extern __declspec(dllimport)
-+# endif
-+#endif
-+
-+#ifndef ZEXPORT
-+# define ZEXPORT
-+#endif
-+#ifndef ZEXPORTVA
-+# define ZEXPORTVA
-+#endif
-+#ifndef ZEXTERN
-+# define ZEXTERN extern
-+#endif
-+
-+#ifndef FAR
-+# define FAR
-+#endif
-+
-+#if !defined(MACOS) && !defined(TARGET_OS_MAC)
-+typedef unsigned char Byte; /* 8 bits */
-+#endif
-+typedef unsigned int uInt; /* 16 bits or more */
-+typedef unsigned long uLong; /* 32 bits or more */
-+
-+#ifdef SMALL_MEDIUM
-+ /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
-+# define Bytef Byte FAR
-+#else
-+ typedef Byte FAR Bytef;
-+#endif
-+typedef char FAR charf;
-+typedef int FAR intf;
-+typedef uInt FAR uIntf;
-+typedef uLong FAR uLongf;
-+
-+#ifdef STDC
-+ typedef void FAR *voidpf;
-+ typedef void *voidp;
-+#else
-+ typedef Byte FAR *voidpf;
-+ typedef Byte *voidp;
-+#endif
-+
-+#ifdef HAVE_UNISTD_H
-+# include /* for off_t */
-+# include /* for SEEK_* and off_t */
-+# define z_off_t off_t
-+#endif
-+#ifndef SEEK_SET
-+# define SEEK_SET 0 /* Seek from beginning of file. */
-+# define SEEK_CUR 1 /* Seek from current position. */
-+# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
-+#endif
-+#ifndef z_off_t
-+# define z_off_t long
-+#endif
-+
-+/* MVS linker does not support external names larger than 8 bytes */
-+#if defined(__MVS__)
-+# pragma map(deflateInit_,"DEIN")
-+# pragma map(deflateInit2_,"DEIN2")
-+# pragma map(deflateEnd,"DEEND")
-+# pragma map(inflateInit_,"ININ")
-+# pragma map(inflateInit2_,"ININ2")
-+# pragma map(inflateEnd,"INEND")
-+# pragma map(inflateSync,"INSY")
-+# pragma map(inflateSetDictionary,"INSEDI")
-+# pragma map(inflate_blocks,"INBL")
-+# pragma map(inflate_blocks_new,"INBLNE")
-+# pragma map(inflate_blocks_free,"INBLFR")
-+# pragma map(inflate_blocks_reset,"INBLRE")
-+# pragma map(inflate_codes_free,"INCOFR")
-+# pragma map(inflate_codes,"INCO")
-+# pragma map(inflate_fast,"INFA")
-+# pragma map(inflate_flush,"INFLU")
-+# pragma map(inflate_mask,"INMA")
-+# pragma map(inflate_set_dictionary,"INSEDI2")
-+# pragma map(ipcomp_inflate_copyright,"INCOPY")
-+# pragma map(inflate_trees_bits,"INTRBI")
-+# pragma map(inflate_trees_dynamic,"INTRDY")
-+# pragma map(inflate_trees_fixed,"INTRFI")
-+# pragma map(inflate_trees_free,"INTRFR")
-+#endif
-+
-+#endif /* _ZCONF_H */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/zlib/zlib.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,893 @@
-+/* zlib.h -- interface of the 'zlib' general purpose compression library
-+ version 1.1.4, March 11th, 2002
-+
-+ Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler
-+
-+ This software is provided 'as-is', without any express or implied
-+ warranty. In no event will the authors be held liable for any damages
-+ arising from the use of this software.
-+
-+ Permission is granted to anyone to use this software for any purpose,
-+ including commercial applications, and to alter it and redistribute it
-+ freely, subject to the following restrictions:
-+
-+ 1. The origin of this software must not be misrepresented; you must not
-+ claim that you wrote the original software. If you use this software
-+ in a product, an acknowledgment in the product documentation would be
-+ appreciated but is not required.
-+ 2. Altered source versions must be plainly marked as such, and must not be
-+ misrepresented as being the original software.
-+ 3. This notice may not be removed or altered from any source distribution.
-+
-+ Jean-loup Gailly Mark Adler
-+ jloup@gzip.org madler@alumni.caltech.edu
-+
-+
-+ The data format used by the zlib library is described by RFCs (Request for
-+ Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt
-+ (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
-+*/
-+
-+#ifndef _ZLIB_H
-+#define _ZLIB_H
-+
-+#include "zconf.h"
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+#define ZLIB_VERSION "1.1.4"
-+
-+/*
-+ The 'zlib' compression library provides in-memory compression and
-+ decompression functions, including integrity checks of the uncompressed
-+ data. This version of the library supports only one compression method
-+ (deflation) but other algorithms will be added later and will have the same
-+ stream interface.
-+
-+ Compression can be done in a single step if the buffers are large
-+ enough (for example if an input file is mmap'ed), or can be done by
-+ repeated calls of the compression function. In the latter case, the
-+ application must provide more input and/or consume the output
-+ (providing more output space) before each call.
-+
-+ The library also supports reading and writing files in gzip (.gz) format
-+ with an interface similar to that of stdio.
-+
-+ The library does not install any signal handler. The decoder checks
-+ the consistency of the compressed data, so the library should never
-+ crash even in case of corrupted input.
-+*/
-+
-+typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
-+typedef void (*free_func) OF((voidpf opaque, voidpf address));
-+
-+struct internal_state;
-+
-+typedef struct z_stream_s {
-+ Bytef *next_in; /* next input byte */
-+ uInt avail_in; /* number of bytes available at next_in */
-+ uLong total_in; /* total nb of input bytes read so far */
-+
-+ Bytef *next_out; /* next output byte should be put there */
-+ uInt avail_out; /* remaining free space at next_out */
-+ uLong total_out; /* total nb of bytes output so far */
-+
-+ const char *msg; /* last error message, NULL if no error */
-+ struct internal_state FAR *state; /* not visible by applications */
-+
-+ alloc_func zalloc; /* used to allocate the internal state */
-+ free_func zfree; /* used to free the internal state */
-+ voidpf opaque; /* private data object passed to zalloc and zfree */
-+
-+ int data_type; /* best guess about the data type: ascii or binary */
-+ uLong adler; /* adler32 value of the uncompressed data */
-+ uLong reserved; /* reserved for future use */
-+} z_stream;
-+
-+typedef z_stream FAR *z_streamp;
-+
-+/*
-+ The application must update next_in and avail_in when avail_in has
-+ dropped to zero. It must update next_out and avail_out when avail_out
-+ has dropped to zero. The application must initialize zalloc, zfree and
-+ opaque before calling the init function. All other fields are set by the
-+ compression library and must not be updated by the application.
-+
-+ The opaque value provided by the application will be passed as the first
-+ parameter for calls of zalloc and zfree. This can be useful for custom
-+ memory management. The compression library attaches no meaning to the
-+ opaque value.
-+
-+ zalloc must return Z_NULL if there is not enough memory for the object.
-+ If zlib is used in a multi-threaded application, zalloc and zfree must be
-+ thread safe.
-+
-+ On 16-bit systems, the functions zalloc and zfree must be able to allocate
-+ exactly 65536 bytes, but will not be required to allocate more than this
-+ if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
-+ pointers returned by zalloc for objects of exactly 65536 bytes *must*
-+ have their offset normalized to zero. The default allocation function
-+ provided by this library ensures this (see zutil.c). To reduce memory
-+ requirements and avoid any allocation of 64K objects, at the expense of
-+ compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
-+
-+ The fields total_in and total_out can be used for statistics or
-+ progress reports. After compression, total_in holds the total size of
-+ the uncompressed data and may be saved for use in the decompressor
-+ (particularly if the decompressor wants to decompress everything in
-+ a single step).
-+*/
-+
-+ /* constants */
-+
-+#define Z_NO_FLUSH 0
-+#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */
-+#define Z_SYNC_FLUSH 2
-+#define Z_FULL_FLUSH 3
-+#define Z_FINISH 4
-+/* Allowed flush values; see deflate() below for details */
-+
-+#define Z_OK 0
-+#define Z_STREAM_END 1
-+#define Z_NEED_DICT 2
-+#define Z_ERRNO (-1)
-+#define Z_STREAM_ERROR (-2)
-+#define Z_DATA_ERROR (-3)
-+#define Z_MEM_ERROR (-4)
-+#define Z_BUF_ERROR (-5)
-+#define Z_VERSION_ERROR (-6)
-+/* Return codes for the compression/decompression functions. Negative
-+ * values are errors, positive values are used for special but normal events.
-+ */
-+
-+#define Z_NO_COMPRESSION 0
-+#define Z_BEST_SPEED 1
-+#define Z_BEST_COMPRESSION 9
-+#define Z_DEFAULT_COMPRESSION (-1)
-+/* compression levels */
-+
-+#define Z_FILTERED 1
-+#define Z_HUFFMAN_ONLY 2
-+#define Z_DEFAULT_STRATEGY 0
-+/* compression strategy; see deflateInit2() below for details */
-+
-+#define Z_BINARY 0
-+#define Z_ASCII 1
-+#define Z_UNKNOWN 2
-+/* Possible values of the data_type field */
-+
-+#define Z_DEFLATED 8
-+/* The deflate compression method (the only one supported in this version) */
-+
-+#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
-+
-+#define zlib_version zlibVersion()
-+/* for compatibility with versions < 1.0.2 */
-+
-+ /* basic functions */
-+
-+ZEXTERN const char * ZEXPORT zlibVersion OF((void));
-+/* The application can compare zlibVersion and ZLIB_VERSION for consistency.
-+ If the first character differs, the library code actually used is
-+ not compatible with the zlib.h header file used by the application.
-+ This check is automatically made by deflateInit and inflateInit.
-+ */
-+
-+/*
-+ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level));
-+
-+ Initializes the internal stream state for compression. The fields
-+ zalloc, zfree and opaque must be initialized before by the caller.
-+ If zalloc and zfree are set to Z_NULL, deflateInit updates them to
-+ use default allocation functions.
-+
-+ The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
-+ 1 gives best speed, 9 gives best compression, 0 gives no compression at
-+ all (the input data is simply copied a block at a time).
-+ Z_DEFAULT_COMPRESSION requests a default compromise between speed and
-+ compression (currently equivalent to level 6).
-+
-+ deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
-+ enough memory, Z_STREAM_ERROR if level is not a valid compression level,
-+ Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
-+ with the version assumed by the caller (ZLIB_VERSION).
-+ msg is set to null if there is no error message. deflateInit does not
-+ perform any compression: this will be done by deflate().
-+*/
-+
-+
-+ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
-+/*
-+ deflate compresses as much data as possible, and stops when the input
-+ buffer becomes empty or the output buffer becomes full. It may introduce some
-+ output latency (reading input without producing any output) except when
-+ forced to flush.
-+
-+ The detailed semantics are as follows. deflate performs one or both of the
-+ following actions:
-+
-+ - Compress more input starting at next_in and update next_in and avail_in
-+ accordingly. If not all input can be processed (because there is not
-+ enough room in the output buffer), next_in and avail_in are updated and
-+ processing will resume at this point for the next call of deflate().
-+
-+ - Provide more output starting at next_out and update next_out and avail_out
-+ accordingly. This action is forced if the parameter flush is non zero.
-+ Forcing flush frequently degrades the compression ratio, so this parameter
-+ should be set only when necessary (in interactive applications).
-+ Some output may be provided even if flush is not set.
-+
-+ Before the call of deflate(), the application should ensure that at least
-+ one of the actions is possible, by providing more input and/or consuming
-+ more output, and updating avail_in or avail_out accordingly; avail_out
-+ should never be zero before the call. The application can consume the
-+ compressed output when it wants, for example when the output buffer is full
-+ (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK
-+ and with zero avail_out, it must be called again after making room in the
-+ output buffer because there might be more output pending.
-+
-+ If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
-+ flushed to the output buffer and the output is aligned on a byte boundary, so
-+ that the decompressor can get all input data available so far. (In particular
-+ avail_in is zero after the call if enough output space has been provided
-+ before the call.) Flushing may degrade compression for some compression
-+ algorithms and so it should be used only when necessary.
-+
-+ If flush is set to Z_FULL_FLUSH, all output is flushed as with
-+ Z_SYNC_FLUSH, and the compression state is reset so that decompression can
-+ restart from this point if previous compressed data has been damaged or if
-+ random access is desired. Using Z_FULL_FLUSH too often can seriously degrade
-+ the compression.
-+
-+ If deflate returns with avail_out == 0, this function must be called again
-+ with the same value of the flush parameter and more output space (updated
-+ avail_out), until the flush is complete (deflate returns with non-zero
-+ avail_out).
-+
-+ If the parameter flush is set to Z_FINISH, pending input is processed,
-+ pending output is flushed and deflate returns with Z_STREAM_END if there
-+ was enough output space; if deflate returns with Z_OK, this function must be
-+ called again with Z_FINISH and more output space (updated avail_out) but no
-+ more input data, until it returns with Z_STREAM_END or an error. After
-+ deflate has returned Z_STREAM_END, the only possible operations on the
-+ stream are deflateReset or deflateEnd.
-+
-+ Z_FINISH can be used immediately after deflateInit if all the compression
-+ is to be done in a single step. In this case, avail_out must be at least
-+ 0.1% larger than avail_in plus 12 bytes. If deflate does not return
-+ Z_STREAM_END, then it must be called again as described above.
-+
-+ deflate() sets strm->adler to the adler32 checksum of all input read
-+ so far (that is, total_in bytes).
-+
-+ deflate() may update data_type if it can make a good guess about
-+ the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered
-+ binary. This field is only for information purposes and does not affect
-+ the compression algorithm in any manner.
-+
-+ deflate() returns Z_OK if some progress has been made (more input
-+ processed or more output produced), Z_STREAM_END if all input has been
-+ consumed and all output has been produced (only when flush is set to
-+ Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
-+ if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible
-+ (for example avail_in or avail_out was zero).
-+*/
-+
-+
-+ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
-+/*
-+ All dynamically allocated data structures for this stream are freed.
-+ This function discards any unprocessed input and does not flush any
-+ pending output.
-+
-+ deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
-+ stream state was inconsistent, Z_DATA_ERROR if the stream was freed
-+ prematurely (some input or output was discarded). In the error case,
-+ msg may be set but then points to a static string (which must not be
-+ deallocated).
-+*/
-+
-+
-+/*
-+ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
-+
-+ Initializes the internal stream state for decompression. The fields
-+ next_in, avail_in, zalloc, zfree and opaque must be initialized before by
-+ the caller. If next_in is not Z_NULL and avail_in is large enough (the exact
-+ value depends on the compression method), inflateInit determines the
-+ compression method from the zlib header and allocates all data structures
-+ accordingly; otherwise the allocation will be deferred to the first call of
-+ inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to
-+ use default allocation functions.
-+
-+ inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
-+ memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
-+ version assumed by the caller. msg is set to null if there is no error
-+ message. inflateInit does not perform any decompression apart from reading
-+ the zlib header if present: this will be done by inflate(). (So next_in and
-+ avail_in may be modified, but next_out and avail_out are unchanged.)
-+*/
-+
-+
-+ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
-+/*
-+ inflate decompresses as much data as possible, and stops when the input
-+ buffer becomes empty or the output buffer becomes full. It may some
-+ introduce some output latency (reading input without producing any output)
-+ except when forced to flush.
-+
-+ The detailed semantics are as follows. inflate performs one or both of the
-+ following actions:
-+
-+ - Decompress more input starting at next_in and update next_in and avail_in
-+ accordingly. If not all input can be processed (because there is not
-+ enough room in the output buffer), next_in is updated and processing
-+ will resume at this point for the next call of inflate().
-+
-+ - Provide more output starting at next_out and update next_out and avail_out
-+ accordingly. inflate() provides as much output as possible, until there
-+ is no more input data or no more space in the output buffer (see below
-+ about the flush parameter).
-+
-+ Before the call of inflate(), the application should ensure that at least
-+ one of the actions is possible, by providing more input and/or consuming
-+ more output, and updating the next_* and avail_* values accordingly.
-+ The application can consume the uncompressed output when it wants, for
-+ example when the output buffer is full (avail_out == 0), or after each
-+ call of inflate(). If inflate returns Z_OK and with zero avail_out, it
-+ must be called again after making room in the output buffer because there
-+ might be more output pending.
-+
-+ If the parameter flush is set to Z_SYNC_FLUSH, inflate flushes as much
-+ output as possible to the output buffer. The flushing behavior of inflate is
-+ not specified for values of the flush parameter other than Z_SYNC_FLUSH
-+ and Z_FINISH, but the current implementation actually flushes as much output
-+ as possible anyway.
-+
-+ inflate() should normally be called until it returns Z_STREAM_END or an
-+ error. However if all decompression is to be performed in a single step
-+ (a single call of inflate), the parameter flush should be set to
-+ Z_FINISH. In this case all pending input is processed and all pending
-+ output is flushed; avail_out must be large enough to hold all the
-+ uncompressed data. (The size of the uncompressed data may have been saved
-+ by the compressor for this purpose.) The next operation on this stream must
-+ be inflateEnd to deallocate the decompression state. The use of Z_FINISH
-+ is never required, but can be used to inform inflate that a faster routine
-+ may be used for the single inflate() call.
-+
-+ If a preset dictionary is needed at this point (see inflateSetDictionary
-+ below), inflate sets strm-adler to the adler32 checksum of the
-+ dictionary chosen by the compressor and returns Z_NEED_DICT; otherwise
-+ it sets strm->adler to the adler32 checksum of all output produced
-+ so far (that is, total_out bytes) and returns Z_OK, Z_STREAM_END or
-+ an error code as described below. At the end of the stream, inflate()
-+ checks that its computed adler32 checksum is equal to that saved by the
-+ compressor and returns Z_STREAM_END only if the checksum is correct.
-+
-+ inflate() returns Z_OK if some progress has been made (more input processed
-+ or more output produced), Z_STREAM_END if the end of the compressed data has
-+ been reached and all uncompressed output has been produced, Z_NEED_DICT if a
-+ preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
-+ corrupted (input stream not conforming to the zlib format or incorrect
-+ adler32 checksum), Z_STREAM_ERROR if the stream structure was inconsistent
-+ (for example if next_in or next_out was NULL), Z_MEM_ERROR if there was not
-+ enough memory, Z_BUF_ERROR if no progress is possible or if there was not
-+ enough room in the output buffer when Z_FINISH is used. In the Z_DATA_ERROR
-+ case, the application may then call inflateSync to look for a good
-+ compression block.
-+*/
-+
-+
-+ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
-+/*
-+ All dynamically allocated data structures for this stream are freed.
-+ This function discards any unprocessed input and does not flush any
-+ pending output.
-+
-+ inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
-+ was inconsistent. In the error case, msg may be set but then points to a
-+ static string (which must not be deallocated).
-+*/
-+
-+ /* Advanced functions */
-+
-+/*
-+ The following functions are needed only in some special applications.
-+*/
-+
-+/*
-+ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
-+ int level,
-+ int method,
-+ int windowBits,
-+ int memLevel,
-+ int strategy));
-+
-+ This is another version of deflateInit with more compression options. The
-+ fields next_in, zalloc, zfree and opaque must be initialized before by
-+ the caller.
-+
-+ The method parameter is the compression method. It must be Z_DEFLATED in
-+ this version of the library.
-+
-+ The windowBits parameter is the base two logarithm of the window size
-+ (the size of the history buffer). It should be in the range 8..15 for this
-+ version of the library. Larger values of this parameter result in better
-+ compression at the expense of memory usage. The default value is 15 if
-+ deflateInit is used instead.
-+
-+ The memLevel parameter specifies how much memory should be allocated
-+ for the internal compression state. memLevel=1 uses minimum memory but
-+ is slow and reduces compression ratio; memLevel=9 uses maximum memory
-+ for optimal speed. The default value is 8. See zconf.h for total memory
-+ usage as a function of windowBits and memLevel.
-+
-+ The strategy parameter is used to tune the compression algorithm. Use the
-+ value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
-+ filter (or predictor), or Z_HUFFMAN_ONLY to force Huffman encoding only (no
-+ string match). Filtered data consists mostly of small values with a
-+ somewhat random distribution. In this case, the compression algorithm is
-+ tuned to compress them better. The effect of Z_FILTERED is to force more
-+ Huffman coding and less string matching; it is somewhat intermediate
-+ between Z_DEFAULT and Z_HUFFMAN_ONLY. The strategy parameter only affects
-+ the compression ratio but not the correctness of the compressed output even
-+ if it is not set appropriately.
-+
-+ deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-+ memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid
-+ method). msg is set to null if there is no error message. deflateInit2 does
-+ not perform any compression: this will be done by deflate().
-+*/
-+
-+ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
-+ const Bytef *dictionary,
-+ uInt dictLength));
-+/*
-+ Initializes the compression dictionary from the given byte sequence
-+ without producing any compressed output. This function must be called
-+ immediately after deflateInit, deflateInit2 or deflateReset, before any
-+ call of deflate. The compressor and decompressor must use exactly the same
-+ dictionary (see inflateSetDictionary).
-+
-+ The dictionary should consist of strings (byte sequences) that are likely
-+ to be encountered later in the data to be compressed, with the most commonly
-+ used strings preferably put towards the end of the dictionary. Using a
-+ dictionary is most useful when the data to be compressed is short and can be
-+ predicted with good accuracy; the data can then be compressed better than
-+ with the default empty dictionary.
-+
-+ Depending on the size of the compression data structures selected by
-+ deflateInit or deflateInit2, a part of the dictionary may in effect be
-+ discarded, for example if the dictionary is larger than the window size in
-+ deflate or deflate2. Thus the strings most likely to be useful should be
-+ put at the end of the dictionary, not at the front.
-+
-+ Upon return of this function, strm->adler is set to the Adler32 value
-+ of the dictionary; the decompressor may later use this value to determine
-+ which dictionary has been used by the compressor. (The Adler32 value
-+ applies to the whole dictionary even if only a subset of the dictionary is
-+ actually used by the compressor.)
-+
-+ deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
-+ parameter is invalid (such as NULL dictionary) or the stream state is
-+ inconsistent (for example if deflate has already been called for this stream
-+ or if the compression method is bsort). deflateSetDictionary does not
-+ perform any compression: this will be done by deflate().
-+*/
-+
-+ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
-+ z_streamp source));
-+/*
-+ Sets the destination stream as a complete copy of the source stream.
-+
-+ This function can be useful when several compression strategies will be
-+ tried, for example when there are several ways of pre-processing the input
-+ data with a filter. The streams that will be discarded should then be freed
-+ by calling deflateEnd. Note that deflateCopy duplicates the internal
-+ compression state which can be quite large, so this strategy is slow and
-+ can consume lots of memory.
-+
-+ deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
-+ enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
-+ (such as zalloc being NULL). msg is left unchanged in both source and
-+ destination.
-+*/
-+
-+ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
-+/*
-+ This function is equivalent to deflateEnd followed by deflateInit,
-+ but does not free and reallocate all the internal compression state.
-+ The stream will keep the same compression level and any other attributes
-+ that may have been set by deflateInit2.
-+
-+ deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-+ stream state was inconsistent (such as zalloc or state being NULL).
-+*/
-+
-+ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
-+ int level,
-+ int strategy));
-+/*
-+ Dynamically update the compression level and compression strategy. The
-+ interpretation of level and strategy is as in deflateInit2. This can be
-+ used to switch between compression and straight copy of the input data, or
-+ to switch to a different kind of input data requiring a different
-+ strategy. If the compression level is changed, the input available so far
-+ is compressed with the old level (and may be flushed); the new level will
-+ take effect only at the next call of deflate().
-+
-+ Before the call of deflateParams, the stream state must be set as for
-+ a call of deflate(), since the currently available input may have to
-+ be compressed and flushed. In particular, strm->avail_out must be non-zero.
-+
-+ deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
-+ stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR
-+ if strm->avail_out was zero.
-+*/
-+
-+/*
-+ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
-+ int windowBits));
-+
-+ This is another version of inflateInit with an extra parameter. The
-+ fields next_in, avail_in, zalloc, zfree and opaque must be initialized
-+ before by the caller.
-+
-+ The windowBits parameter is the base two logarithm of the maximum window
-+ size (the size of the history buffer). It should be in the range 8..15 for
-+ this version of the library. The default value is 15 if inflateInit is used
-+ instead. If a compressed stream with a larger window size is given as
-+ input, inflate() will return with the error code Z_DATA_ERROR instead of
-+ trying to allocate a larger window.
-+
-+ inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-+ memory, Z_STREAM_ERROR if a parameter is invalid (such as a negative
-+ memLevel). msg is set to null if there is no error message. inflateInit2
-+ does not perform any decompression apart from reading the zlib header if
-+ present: this will be done by inflate(). (So next_in and avail_in may be
-+ modified, but next_out and avail_out are unchanged.)
-+*/
-+
-+ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
-+ const Bytef *dictionary,
-+ uInt dictLength));
-+/*
-+ Initializes the decompression dictionary from the given uncompressed byte
-+ sequence. This function must be called immediately after a call of inflate
-+ if this call returned Z_NEED_DICT. The dictionary chosen by the compressor
-+ can be determined from the Adler32 value returned by this call of
-+ inflate. The compressor and decompressor must use exactly the same
-+ dictionary (see deflateSetDictionary).
-+
-+ inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
-+ parameter is invalid (such as NULL dictionary) or the stream state is
-+ inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
-+ expected one (incorrect Adler32 value). inflateSetDictionary does not
-+ perform any decompression: this will be done by subsequent calls of
-+ inflate().
-+*/
-+
-+ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
-+/*
-+ Skips invalid compressed data until a full flush point (see above the
-+ description of deflate with Z_FULL_FLUSH) can be found, or until all
-+ available input is skipped. No output is provided.
-+
-+ inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR
-+ if no more input was provided, Z_DATA_ERROR if no flush point has been found,
-+ or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
-+ case, the application may save the current current value of total_in which
-+ indicates where valid compressed data was found. In the error case, the
-+ application may repeatedly call inflateSync, providing more input each time,
-+ until success or end of the input data.
-+*/
-+
-+ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
-+/*
-+ This function is equivalent to inflateEnd followed by inflateInit,
-+ but does not free and reallocate all the internal decompression state.
-+ The stream will keep attributes that may have been set by inflateInit2.
-+
-+ inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-+ stream state was inconsistent (such as zalloc or state being NULL).
-+*/
-+
-+
-+ /* utility functions */
-+
-+/*
-+ The following utility functions are implemented on top of the
-+ basic stream-oriented functions. To simplify the interface, some
-+ default options are assumed (compression level and memory usage,
-+ standard memory allocation functions). The source code of these
-+ utility functions can easily be modified if you need special options.
-+*/
-+
-+ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen,
-+ const Bytef *source, uLong sourceLen));
-+/*
-+ Compresses the source buffer into the destination buffer. sourceLen is
-+ the byte length of the source buffer. Upon entry, destLen is the total
-+ size of the destination buffer, which must be at least 0.1% larger than
-+ sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the
-+ compressed buffer.
-+ This function can be used to compress a whole file at once if the
-+ input file is mmap'ed.
-+ compress returns Z_OK if success, Z_MEM_ERROR if there was not
-+ enough memory, Z_BUF_ERROR if there was not enough room in the output
-+ buffer.
-+*/
-+
-+ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen,
-+ const Bytef *source, uLong sourceLen,
-+ int level));
-+/*
-+ Compresses the source buffer into the destination buffer. The level
-+ parameter has the same meaning as in deflateInit. sourceLen is the byte
-+ length of the source buffer. Upon entry, destLen is the total size of the
-+ destination buffer, which must be at least 0.1% larger than sourceLen plus
-+ 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
-+
-+ compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-+ memory, Z_BUF_ERROR if there was not enough room in the output buffer,
-+ Z_STREAM_ERROR if the level parameter is invalid.
-+*/
-+
-+ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen,
-+ const Bytef *source, uLong sourceLen));
-+/*
-+ Decompresses the source buffer into the destination buffer. sourceLen is
-+ the byte length of the source buffer. Upon entry, destLen is the total
-+ size of the destination buffer, which must be large enough to hold the
-+ entire uncompressed data. (The size of the uncompressed data must have
-+ been saved previously by the compressor and transmitted to the decompressor
-+ by some mechanism outside the scope of this compression library.)
-+ Upon exit, destLen is the actual size of the compressed buffer.
-+ This function can be used to decompress a whole file at once if the
-+ input file is mmap'ed.
-+
-+ uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
-+ enough memory, Z_BUF_ERROR if there was not enough room in the output
-+ buffer, or Z_DATA_ERROR if the input data was corrupted.
-+*/
-+
-+
-+typedef voidp gzFile;
-+
-+ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode));
-+/*
-+ Opens a gzip (.gz) file for reading or writing. The mode parameter
-+ is as in fopen ("rb" or "wb") but can also include a compression level
-+ ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for
-+ Huffman only compression as in "wb1h". (See the description
-+ of deflateInit2 for more information about the strategy parameter.)
-+
-+ gzopen can be used to read a file which is not in gzip format; in this
-+ case gzread will directly read from the file without decompression.
-+
-+ gzopen returns NULL if the file could not be opened or if there was
-+ insufficient memory to allocate the (de)compression state; errno
-+ can be checked to distinguish the two cases (if errno is zero, the
-+ zlib error is Z_MEM_ERROR). */
-+
-+ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode));
-+/*
-+ gzdopen() associates a gzFile with the file descriptor fd. File
-+ descriptors are obtained from calls like open, dup, creat, pipe or
-+ fileno (in the file has been previously opened with fopen).
-+ The mode parameter is as in gzopen.
-+ The next call of gzclose on the returned gzFile will also close the
-+ file descriptor fd, just like fclose(fdopen(fd), mode) closes the file
-+ descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode).
-+ gzdopen returns NULL if there was insufficient memory to allocate
-+ the (de)compression state.
-+*/
-+
-+ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));
-+/*
-+ Dynamically update the compression level or strategy. See the description
-+ of deflateInit2 for the meaning of these parameters.
-+ gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not
-+ opened for writing.
-+*/
-+
-+ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len));
-+/*
-+ Reads the given number of uncompressed bytes from the compressed file.
-+ If the input file was not in gzip format, gzread copies the given number
-+ of bytes into the buffer.
-+ gzread returns the number of uncompressed bytes actually read (0 for
-+ end of file, -1 for error). */
-+
-+ZEXTERN int ZEXPORT gzwrite OF((gzFile file,
-+ const voidp buf, unsigned len));
-+/*
-+ Writes the given number of uncompressed bytes into the compressed file.
-+ gzwrite returns the number of uncompressed bytes actually written
-+ (0 in case of error).
-+*/
-+
-+ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...));
-+/*
-+ Converts, formats, and writes the args to the compressed file under
-+ control of the format string, as in fprintf. gzprintf returns the number of
-+ uncompressed bytes actually written (0 in case of error).
-+*/
-+
-+ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));
-+/*
-+ Writes the given null-terminated string to the compressed file, excluding
-+ the terminating null character.
-+ gzputs returns the number of characters written, or -1 in case of error.
-+*/
-+
-+ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len));
-+/*
-+ Reads bytes from the compressed file until len-1 characters are read, or
-+ a newline character is read and transferred to buf, or an end-of-file
-+ condition is encountered. The string is then terminated with a null
-+ character.
-+ gzgets returns buf, or Z_NULL in case of error.
-+*/
-+
-+ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c));
-+/*
-+ Writes c, converted to an unsigned char, into the compressed file.
-+ gzputc returns the value that was written, or -1 in case of error.
-+*/
-+
-+ZEXTERN int ZEXPORT gzgetc OF((gzFile file));
-+/*
-+ Reads one byte from the compressed file. gzgetc returns this byte
-+ or -1 in case of end of file or error.
-+*/
-+
-+ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush));
-+/*
-+ Flushes all pending output into the compressed file. The parameter
-+ flush is as in the deflate() function. The return value is the zlib
-+ error number (see function gzerror below). gzflush returns Z_OK if
-+ the flush parameter is Z_FINISH and all output could be flushed.
-+ gzflush should be called only when strictly necessary because it can
-+ degrade compression.
-+*/
-+
-+ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file,
-+ z_off_t offset, int whence));
-+/*
-+ Sets the starting position for the next gzread or gzwrite on the
-+ given compressed file. The offset represents a number of bytes in the
-+ uncompressed data stream. The whence parameter is defined as in lseek(2);
-+ the value SEEK_END is not supported.
-+ If the file is opened for reading, this function is emulated but can be
-+ extremely slow. If the file is opened for writing, only forward seeks are
-+ supported; gzseek then compresses a sequence of zeroes up to the new
-+ starting position.
-+
-+ gzseek returns the resulting offset location as measured in bytes from
-+ the beginning of the uncompressed stream, or -1 in case of error, in
-+ particular if the file is opened for writing and the new starting position
-+ would be before the current position.
-+*/
-+
-+ZEXTERN int ZEXPORT gzrewind OF((gzFile file));
-+/*
-+ Rewinds the given file. This function is supported only for reading.
-+
-+ gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)
-+*/
-+
-+ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file));
-+/*
-+ Returns the starting position for the next gzread or gzwrite on the
-+ given compressed file. This position represents a number of bytes in the
-+ uncompressed data stream.
-+
-+ gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
-+*/
-+
-+ZEXTERN int ZEXPORT gzeof OF((gzFile file));
-+/*
-+ Returns 1 when EOF has previously been detected reading the given
-+ input stream, otherwise zero.
-+*/
-+
-+ZEXTERN int ZEXPORT gzclose OF((gzFile file));
-+/*
-+ Flushes all pending output if necessary, closes the compressed file
-+ and deallocates all the (de)compression state. The return value is the zlib
-+ error number (see function gzerror below).
-+*/
-+
-+ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum));
-+/*
-+ Returns the error message for the last error which occurred on the
-+ given compressed file. errnum is set to zlib error number. If an
-+ error occurred in the file system and not in the compression library,
-+ errnum is set to Z_ERRNO and the application may consult errno
-+ to get the exact error code.
-+*/
-+
-+ /* checksum functions */
-+
-+/*
-+ These functions are not related to compression but are exported
-+ anyway because they might be useful in applications using the
-+ compression library.
-+*/
-+
-+ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
-+
-+/*
-+ Update a running Adler-32 checksum with the bytes buf[0..len-1] and
-+ return the updated checksum. If buf is NULL, this function returns
-+ the required initial value for the checksum.
-+ An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
-+ much faster. Usage example:
-+
-+ uLong adler = adler32(0L, Z_NULL, 0);
-+
-+ while (read_buffer(buffer, length) != EOF) {
-+ adler = adler32(adler, buffer, length);
-+ }
-+ if (adler != original_adler) error();
-+*/
-+
-+ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len));
-+/*
-+ Update a running crc with the bytes buf[0..len-1] and return the updated
-+ crc. If buf is NULL, this function returns the required initial value
-+ for the crc. Pre- and post-conditioning (one's complement) is performed
-+ within this function so it shouldn't be done by the application.
-+ Usage example:
-+
-+ uLong crc = crc32(0L, Z_NULL, 0);
-+
-+ while (read_buffer(buffer, length) != EOF) {
-+ crc = crc32(crc, buffer, length);
-+ }
-+ if (crc != original_crc) error();
-+*/
-+
-+
-+ /* various hacks, don't look :) */
-+
-+/* deflateInit and inflateInit are macros to allow checking the zlib version
-+ * and the compiler's view of z_stream:
-+ */
-+ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,
-+ const char *version, int stream_size));
-+ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,
-+ const char *version, int stream_size));
-+ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method,
-+ int windowBits, int memLevel,
-+ int strategy, const char *version,
-+ int stream_size));
-+ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits,
-+ const char *version, int stream_size));
-+#define deflateInit(strm, level) \
-+ deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream))
-+#define inflateInit(strm) \
-+ inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream))
-+#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
-+ deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
-+ (strategy), ZLIB_VERSION, sizeof(z_stream))
-+#define inflateInit2(strm, windowBits) \
-+ inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream))
-+
-+
-+#if !defined(_Z_UTIL_H) && !defined(NO_DUMMY_DECL)
-+ struct internal_state {int dummy;}; /* hack for buggy compilers */
-+#endif
-+
-+ZEXTERN const char * ZEXPORT zError OF((int err));
-+ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z));
-+ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void));
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* _ZLIB_H */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/include/zlib/zutil.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,225 @@
-+/* zutil.h -- internal interface and configuration of the compression library
-+ * Copyright (C) 1995-2002 Jean-loup Gailly.
-+ * For conditions of distribution and use, see copyright notice in zlib.h
-+ */
-+
-+/* WARNING: this file should *not* be used by applications. It is
-+ part of the implementation of the compression library and is
-+ subject to change. Applications should only use zlib.h.
-+ */
-+
-+/* @(#) $Id: zutil.h,v 1.4 2002/04/24 07:36:48 mcr Exp $ */
-+
-+#ifndef _Z_UTIL_H
-+#define _Z_UTIL_H
-+
-+#include "zlib.h"
-+
-+#include
-+#define HAVE_MEMCPY
-+
-+#if 0 // #ifdef STDC
-+# include
-+# include
-+# include
-+#endif
-+#ifndef __KERNEL__
-+#ifdef NO_ERRNO_H
-+ extern int errno;
-+#else
-+# include
-+#endif
-+#endif
-+
-+#ifndef local
-+# define local static
-+#endif
-+/* compile with -Dlocal if your debugger can't find static symbols */
-+
-+typedef unsigned char uch;
-+typedef uch FAR uchf;
-+typedef unsigned short ush;
-+typedef ush FAR ushf;
-+typedef unsigned long ulg;
-+
-+extern const char *z_errmsg[10]; /* indexed by 2-zlib_error */
-+/* (size given to avoid silly warnings with Visual C++) */
-+
-+#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
-+
-+#define ERR_RETURN(strm,err) \
-+ return (strm->msg = ERR_MSG(err), (err))
-+/* To be used only when the state is known to be valid */
-+
-+ /* common constants */
-+
-+#ifndef DEF_WBITS
-+# define DEF_WBITS MAX_WBITS
-+#endif
-+/* default windowBits for decompression. MAX_WBITS is for compression only */
-+
-+#if MAX_MEM_LEVEL >= 8
-+# define DEF_MEM_LEVEL 8
-+#else
-+# define DEF_MEM_LEVEL MAX_MEM_LEVEL
-+#endif
-+/* default memLevel */
-+
-+#define STORED_BLOCK 0
-+#define STATIC_TREES 1
-+#define DYN_TREES 2
-+/* The three kinds of block type */
-+
-+#define MIN_MATCH 3
-+#define MAX_MATCH 258
-+/* The minimum and maximum match lengths */
-+
-+#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
-+
-+ /* target dependencies */
-+
-+#ifdef MSDOS
-+# define OS_CODE 0x00
-+# if defined(__TURBOC__) || defined(__BORLANDC__)
-+# if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
-+ /* Allow compilation with ANSI keywords only enabled */
-+ void _Cdecl farfree( void *block );
-+ void *_Cdecl farmalloc( unsigned long nbytes );
-+# else
-+# include
-+# endif
-+# else /* MSC or DJGPP */
-+# include
-+# endif
-+#endif
-+
-+#ifdef OS2
-+# define OS_CODE 0x06
-+#endif
-+
-+#ifdef WIN32 /* Window 95 & Windows NT */
-+# define OS_CODE 0x0b
-+#endif
-+
-+#if defined(VAXC) || defined(VMS)
-+# define OS_CODE 0x02
-+# define F_OPEN(name, mode) \
-+ fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
-+#endif
-+
-+#ifdef AMIGA
-+# define OS_CODE 0x01
-+#endif
-+
-+#if defined(ATARI) || defined(atarist)
-+# define OS_CODE 0x05
-+#endif
-+
-+#if defined(MACOS) || defined(TARGET_OS_MAC)
-+# define OS_CODE 0x07
-+# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
-+# include /* for fdopen */
-+# else
-+# ifndef fdopen
-+# define fdopen(fd,mode) NULL /* No fdopen() */
-+# endif
-+# endif
-+#endif
-+
-+#ifdef __50SERIES /* Prime/PRIMOS */
-+# define OS_CODE 0x0F
-+#endif
-+
-+#ifdef TOPS20
-+# define OS_CODE 0x0a
-+#endif
-+
-+#if defined(_BEOS_) || defined(RISCOS)
-+# define fdopen(fd,mode) NULL /* No fdopen() */
-+#endif
-+
-+#if (defined(_MSC_VER) && (_MSC_VER > 600))
-+# define fdopen(fd,type) _fdopen(fd,type)
-+#endif
-+
-+
-+ /* Common defaults */
-+
-+#ifndef OS_CODE
-+# define OS_CODE 0x03 /* assume Unix */
-+#endif
-+
-+#ifndef F_OPEN
-+# define F_OPEN(name, mode) fopen((name), (mode))
-+#endif
-+
-+ /* functions */
-+
-+#ifdef HAVE_STRERROR
-+ extern char *strerror OF((int));
-+# define zstrerror(errnum) strerror(errnum)
-+#else
-+# define zstrerror(errnum) ""
-+#endif
-+
-+#if defined(pyr)
-+# define NO_MEMCPY
-+#endif
-+#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
-+ /* Use our own functions for small and medium model with MSC <= 5.0.
-+ * You may have to use the same strategy for Borland C (untested).
-+ * The __SC__ check is for Symantec.
-+ */
-+# define NO_MEMCPY
-+#endif
-+#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
-+# define HAVE_MEMCPY
-+#endif
-+#ifdef HAVE_MEMCPY
-+# ifdef SMALL_MEDIUM /* MSDOS small or medium model */
-+# define zmemcpy _fmemcpy
-+# define zmemcmp _fmemcmp
-+# define zmemzero(dest, len) _fmemset(dest, 0, len)
-+# else
-+# define zmemcpy memcpy
-+# define zmemcmp memcmp
-+# define zmemzero(dest, len) memset(dest, 0, len)
-+# endif
-+#else
-+ extern void zmemcpy OF((Bytef* dest, const Bytef* source, uInt len));
-+ extern int zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len));
-+ extern void zmemzero OF((Bytef* dest, uInt len));
-+#endif
-+
-+/* Diagnostic functions */
-+#ifdef DEBUG
-+# include
-+ extern int z_verbose;
-+ extern void z_error OF((char *m));
-+# define Assert(cond,msg) {if(!(cond)) z_error(msg);}
-+# define Trace(x) {if (z_verbose>=0) fprintf x ;}
-+# define Tracev(x) {if (z_verbose>0) fprintf x ;}
-+# define Tracevv(x) {if (z_verbose>1) fprintf x ;}
-+# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
-+# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
-+#else
-+# define Assert(cond,msg)
-+# define Trace(x)
-+# define Tracev(x)
-+# define Tracevv(x)
-+# define Tracec(c,x)
-+# define Tracecv(c,x)
-+#endif
-+
-+
-+typedef uLong (ZEXPORT *check_func) OF((uLong check, const Bytef *buf,
-+ uInt len));
-+voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size));
-+void zcfree OF((voidpf opaque, voidpf ptr));
-+
-+#define ZALLOC(strm, items, size) \
-+ (*((strm)->zalloc))((strm)->opaque, (items), (size))
-+#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
-+#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
-+
-+#endif /* _Z_UTIL_H */
---- swan26/net/Kconfig.preipsec 2005-09-01 18:15:19.000000000 -0400
-+++ swan26/net/Kconfig 2005-09-03 16:51:17.000000000 -0400
-@@ -215,2 +215,6 @@
-
-+if INET
-+source "net/ipsec/Kconfig"
-+endif # if INET
-+
- endif # if NET
---- /distros/kernel/linux-2.6.3-rc4/net/Makefile Mon Feb 16 21:22:12 2004
-+++ ref26/net/Makefile Thu Feb 19 21:02:25 2004
-@@ -42,3 +42,6 @@
- ifeq ($(CONFIG_NET),y)
- obj-$(CONFIG_SYSCTL) += sysctl_net.o
- endif
-+
-+obj-$(CONFIG_KLIPS) += ipsec/
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/Kconfig Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,143 @@
-+#
-+# IPSEC configuration
-+# Copyright (C) 2004 Michael Richardson
-+#
-+# 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. See .
-+#
-+# 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.
-+#
-+
-+config KLIPS
-+ tristate "Openswan IPsec (KLIPS)"
-+ default n
-+# depends on NF_CONNTRACK && NETFILTER
-+ help
-+ KLIPS is the Openswan (www.openswan.org) Kernel Level IP Security
-+ system. It is extensively tested, and has interoperated with
-+ many other systems.
-+ It provides "ipsecX" devices on which one can do firewalling.
-+ The Openswan userland, is compatible with both KLIPS and NETKEY
-+ You cannot build KLIPS and NETKEY inline into the kernel.
-+
-+menu "KLIPS options"
-+ depends on KLIPS
-+
-+config KLIPS_ESP
-+ bool 'Encapsulating Security Payload - ESP ("VPN")'
-+ default y
-+ help
-+ This option provides support for the IPSEC Encapsulation Security
-+ Payload (IP protocol 50) which provides packet layer content
-+ hiding, and content authentication.
-+ It is recommended to enable this. RFC2406
-+
-+config KLIPS_AH
-+ bool 'Authentication Header - AH'
-+ default n
-+ help
-+ This option provides support for the IPSEC Authentication Header
-+ (IP protocol 51) which provides packet layer sender and content
-+ authentication. It does not provide for confidentiality.
-+ It is not recommended to enable this. RFC2402
-+
-+config KLIPS_AUTH_HMAC_MD5
-+ bool 'HMAC-MD5 authentication algorithm'
-+ default y
-+ help
-+ The HMAC-MD5 algorithm is used by ESP (and AH) to guarantee packet
-+ integrity. There is little reason not to include it.
-+
-+config KLIPS_AUTH_HMAC_SHA1
-+ bool 'HMAC-SHA1 authentication algorithm'
-+ default y
-+ help
-+ The HMAC-SHA1 algorithm is used by ESP (and AH) to guarantee packet
-+ integrity. SHA1 is a little slower than MD5, but is said to be
-+ a bit more secure. There is little reason not to include it.
-+
-+config KLIPS_ALG
-+ bool 'KLIPS_ALG software encryption'
-+ default y
-+ help
-+ This option provides support for loading new algorithms into the
-+ kernel for crypto use. You may disable this if using the
-+ CONFIG_KLIPS_OCF option for hardware offload.
-+
-+config KLIPS_ENC_CRYPTOAPI
-+ bool 'CryptoAPI algorithm interface'
-+ default n
-+ depends on KLIPS_ALG
-+ help
-+ Enable the algorithm interface to make all CryptoAPI 1.0 algorithms
-+ available to KLIPS.
-+
-+config KLIPS_ENC_1DES
-+ bool 'Include 1DES with CryptoAPI'
-+ default n
-+ depends on KLIPS_ENC_CRYPTOAPI
-+ help
-+ The CryptoAPI interface does not include support for every algorithm
-+ yet, and one that it doesn't support by default is the VERY WEAK
-+ 1DES. Select this if you are terminally stupid.
-+
-+config KLIPS_ENC_3DES
-+ bool '3DES encryption algorithm'
-+ default y
-+ help
-+ The 3DES algorithm is used by ESP to provide for packet privacy.
-+ 3DES is 3-repeats of the DES algorithm. 3DES is widely supported,
-+ and analyzed and is considered very secure. 1DES is not supported.
-+
-+config KLIPS_ENC_AES
-+ bool 'AES encryption algorithm'
-+ default y
-+ depends on KLIPS_ALG
-+ help
-+ The AES algorithm is used by ESP to provide for packet privacy.
-+ AES the NIST replacement for DES. AES is being widely analyzed,
-+ and is very fast.
-+
-+config KLIPS_IPCOMP
-+ bool 'IP compression'
-+ default y
-+ help
-+ The IPcomp protocol is used prior to ESP to make the packet
-+ smaller. Once encrypted, compression will fail, so any link
-+ layer efforts (e.g. PPP) will not work.
-+
-+config KLIPS_OCF
-+ bool 'IPsec OCF Acceleration Support'
-+ default n
-+ help
-+ OCF provides Asynchronous crypto acceleration for kernel and
-+ user applications. It supports various HW accelerators.
-+ If you have OCF support enabled and wish IPsec to utilise
-+ the hardware managed by OCF, then enable this option.
-+ OCF is a kernel patch, see http://ocf-linux.sourceforge.net/
-+
-+config KLIPS_DEBUG
-+ bool 'IPsec debugging'
-+ default y
-+ help
-+ KLIPS includes a lot of debugging code. Unless there is a real
-+ tangible benefit to removing this code, it should be left in place.
-+ Debugging connections without access to kernel level debugging is
-+ essentially impossible. Leave this on.
-+
-+config KLIPS_IF_MAX
-+ int 'Maximum number of virtual interfaces'
-+ default 64
-+ range 4 256
-+ help
-+ KLIPS creates virtual interfaces for tunnel purposes. At present
-+ it keeps track of certain items in an array (FIX ME), and needs
-+ to preallocate this array. Only a pointer is used per item.
-+
-+endmenu
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/Makefile Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,192 @@
-+# Makefile for KLIPS kernel code as a module for 2.6 kernels
-+#
-+# Makefile for KLIPS kernel code as a module
-+# Copyright (C) 1998, 1999, 2000,2001 Richard Guy Briggs.
-+# Copyright (C) 2002-2004 Michael Richardson
-+#
-+# 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. See .
-+#
-+# 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.
-+#
-+# RCSID $Id: Makefile.fs2_6,v 1.8.2.1 2006/04/20 16:33:06 mcr Exp $
-+#
-+# Note! Dependencies are done automagically by 'make dep', which also
-+# removes any old dependencies. DON'T put your own dependencies here
-+# unless it's something special (ie not a .c file).
-+#
-+
-+OPENSWANSRCDIR?=.
-+KLIPS_TOP?=.
-+
-+-include ${OPENSWANSRCDIR}/Makefile.ver
-+
-+base-klips-objs :=
-+
-+base-klips-objs+= ipsec_init.o ipsec_sa.o ipsec_radij.o radij.o
-+base-klips-objs+= ipsec_life.o ipsec_proc.o
-+base-klips-objs+= ipsec_tunnel.o ipsec_xmit.o ipsec_rcv.o ipsec_ipip.o
-+base-klips-objs+= ipsec_snprintf.o
-+base-klips-objs+= ipsec_mast.o
-+base-klips-objs+= sysctl_net_ipsec.o
-+base-klips-objs+= pfkey_v2.o pfkey_v2_parser.o pfkey_v2_ext_process.o
-+base-klips-objs+= version.o
-+
-+base-klips-objs+= satot.o
-+base-klips-objs+= addrtot.o
-+base-klips-objs+= ultot.o
-+base-klips-objs+= addrtypeof.o
-+base-klips-objs+= anyaddr.o
-+base-klips-objs+= initaddr.o
-+base-klips-objs+= ultoa.o
-+base-klips-objs+= addrtoa.o
-+base-klips-objs+= subnettoa.o
-+base-klips-objs+= subnetof.o
-+base-klips-objs+= goodmask.o
-+base-klips-objs+= datatot.o
-+base-klips-objs+= rangetoa.o
-+base-klips-objs+= prng.o
-+base-klips-objs+= pfkey_v2_parse.o
-+base-klips-objs+= pfkey_v2_build.o
-+base-klips-objs+= pfkey_v2_debug.o
-+base-klips-objs+= pfkey_v2_ext_bits.o
-+base-klips-objs+= version.o
-+
-+obj-${CONFIG_KLIPS} += ipsec.o
-+
-+ipsec-objs += ${base-klips-objs}
-+
-+ipsec-$(CONFIG_KLIPS_ESP) += ipsec_esp.o
-+ipsec-$(CONFIG_KLIPS_OCF) += ipsec_ocf.o
-+ipsec-$(CONFIG_KLIPS_IPCOMP) += ipsec_ipcomp.o
-+ipsec-$(CONFIG_KLIPS_AUTH_HMAC_MD5) += ipsec_md5c.o
-+ipsec-$(CONFIG_KLIPS_AUTH_HMAC_SHA1) += ipsec_sha1.o
-+
-+# AH, if you really think you need it.
-+ipsec-$(CONFIG_KLIPS_AH) += ipsec_ah.o
-+
-+ipsec-$(CONFIG_KLIPS_ALG) += ipsec_alg.o
-+
-+# include code from DES subdir
-+crypto-$(CONFIG_KLIPS_ENC_3DES) += des/ipsec_alg_3des.o
-+crypto-$(CONFIG_KLIPS_ENC_3DES) += des/cbc_enc.o
-+crypto-$(CONFIG_KLIPS_ENC_3DES) += des/ecb_enc.o
-+crypto-$(CONFIG_KLIPS_ENC_3DES) += des/set_key.o
-+
-+ifeq ($(strip ${SUBARCH}),)
-+SUBARCH:=${ARCH}
-+endif
-+
-+# the assembly version expects frame pointers, which are
-+# optional in many kernel builds. If you want speed, you should
-+# probably use cryptoapi code instead.
-+USEASSEMBLY=${SUBARCH}${CONFIG_FRAME_POINTER}
-+ifeq (${USEASSEMBLY},i386y)
-+crypto-$(CONFIG_KLIPS_ENC_3DES) += des/dx86unix.o
-+else
-+crypto-$(CONFIG_KLIPS_ENC_3DES) += des/des_enc.o
-+endif
-+
-+# include code from AES subdir
-+crypto-$(CONFIG_KLIPS_ENC_AES) += aes/ipsec_alg_aes.o
-+crypto-$(CONFIG_KLIPS_ENC_AES) += aes/aes_xcbc_mac.o
-+crypto-$(CONFIG_KLIPS_ENC_AES) += aes/aes_cbc.o
-+
-+ifeq ($(strip ${SUBARCH}),)
-+SUBARCH:=${ARCH}
-+endif
-+
-+USEASSEMBLY=${SUBARCH}${CONFIG_FRAME_POINTER}
-+ifeq (${USEASSEMBLY},i386y)
-+crypto-$(CONFIG_KLIPS_ENC_AES) += aes/aes-i586.o
-+else
-+crypto-$(CONFIG_KLIPS_ENC_AES) += aes/aes.o
-+endif
-+
-+ipsec-y += ${crypto-y}
-+
-+ipsec-$(CONFIG_KLIPS_ENC_CRYPTOAPI) += ipsec_alg_cryptoapi.o
-+
-+# IPcomp stuff
-+base-ipcomp-objs := ipcomp.o
-+base-ipcomp-objs += adler32.o
-+base-ipcomp-objs += deflate.o
-+base-ipcomp-objs += infblock.o
-+base-ipcomp-objs += infcodes.o
-+base-ipcomp-objs += inffast.o
-+base-ipcomp-objs += inflate.o
-+base-ipcomp-objs += inftrees.o
-+base-ipcomp-objs += infutil.o
-+base-ipcomp-objs += trees.o
-+base-ipcomp-objs += zutil.o
-+asm-ipcomp-obj-$(CONFIG_M586) += match586.o
-+asm-ipcomp-obj-$(CONFIG_M586TSC) += match586.o
-+asm-ipcomp-obj-$(CONFIG_M586MMX) += match586.o
-+asm-ipcomp-obj-$(CONFIG_M686) += match686.o
-+asm-ipcomp-obj-$(CONFIG_MPENTIUMIII) += match686.o
-+asm-ipcomp-obj-$(CONFIG_MPENTIUM4) += match686.o
-+asm-ipcomp-obj-$(CONFIG_MK6) += match586.o
-+asm-ipcomp-obj-$(CONFIG_MK7) += match686.o
-+asm-ipcomp-obj-$(CONFIG_MCRUSOE) += match586.o
-+asm-ipcomp-obj-$(CONFIG_MWINCHIPC6) += match586.o
-+asm-ipcomp-obj-$(CONFIG_MWINCHIP2) += match686.o
-+asm-ipcomp-obj-$(CONFIG_MWINCHIP3D) += match686.o
-+base-ipcomp-objs += ${asm-ipcomp-obj-y}
-+
-+ipsec-$(CONFIG_KLIPS_IPCOMP) += ${base-ipcomp-objs}
-+
-+EXTRA_CFLAGS += -DIPCOMP_PREFIX -DKLIPS
-+EXTRA_CFLAGS += -Icrypto/ocf
-+
-+#
-+# $Log: Makefile.fs2_6,v $
-+# Revision 1.8.2.1 2006/04/20 16:33:06 mcr
-+# remove all of CONFIG_KLIPS_ALG --- one can no longer build without it.
-+# Fix in-kernel module compilation. Sub-makefiles do not work.
-+#
-+# Revision 1.8 2005/05/11 03:15:42 mcr
-+# adjusted makefiles to sanely build modules properly.
-+#
-+# Revision 1.7 2005/04/13 22:52:12 mcr
-+# moved KLIPS specific snprintf() wrapper to seperate file.
-+#
-+# Revision 1.6 2004/08/22 05:02:03 mcr
-+# organized symbols such that it is easier to build modules.
-+#
-+# Revision 1.5 2004/08/18 01:43:56 mcr
-+# adjusted makefile enumation so that it can be used by module
-+# wrapper.
-+#
-+# Revision 1.4 2004/08/17 03:27:23 mcr
-+# klips 2.6 edits.
-+#
-+# Revision 1.3 2004/08/04 16:50:13 mcr
-+# removed duplicate definition of dx86unix.o
-+#
-+# Revision 1.2 2004/08/03 18:21:09 mcr
-+# only set KLIPS_TOP and OPENSWANSRCDIR if not already set.
-+#
-+# Revision 1.1 2004/07/26 15:02:22 mcr
-+# makefile for KLIPS module for 2.6.
-+#
-+# Revision 1.3 2004/02/24 17:17:04 mcr
-+# s/CONFIG_IPSEC/CONFIG_KLIPS/ as 26sec uses "CONFIG_IPSEC" to
-+# turn it on/off as well.
-+#
-+# Revision 1.2 2004/02/22 06:50:42 mcr
-+# kernel 2.6 port - merged with 2.4 code.
-+#
-+# Revision 1.1.2.1 2004/02/20 02:07:53 mcr
-+# module configuration for KLIPS 2.6
-+#
-+#
-+# Local Variables:
-+# compile-command: "(cd ../../.. && source umlsetup.sh && make -C ${POOLSPACE} module/ipsec.o)"
-+# End Variables:
-+#
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/README-zlib Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,147 @@
-+zlib 1.1.4 is a general purpose data compression library. All the code
-+is thread safe. The data format used by the zlib library
-+is described by RFCs (Request for Comments) 1950 to 1952 in the files
-+http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate
-+format) and rfc1952.txt (gzip format). These documents are also available in
-+other formats from ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html
-+
-+All functions of the compression library are documented in the file zlib.h
-+(volunteer to write man pages welcome, contact jloup@gzip.org). A usage
-+example of the library is given in the file example.c which also tests that
-+the library is working correctly. Another example is given in the file
-+minigzip.c. The compression library itself is composed of all source files
-+except example.c and minigzip.c.
-+
-+To compile all files and run the test program, follow the instructions
-+given at the top of Makefile. In short "make test; make install"
-+should work for most machines. For Unix: "./configure; make test; make install"
-+For MSDOS, use one of the special makefiles such as Makefile.msc.
-+For VMS, use Make_vms.com or descrip.mms.
-+
-+Questions about zlib should be sent to , or to
-+Gilles Vollant for the Windows DLL version.
-+The zlib home page is http://www.zlib.org or http://www.gzip.org/zlib/
-+Before reporting a problem, please check this site to verify that
-+you have the latest version of zlib; otherwise get the latest version and
-+check whether the problem still exists or not.
-+
-+PLEASE read the zlib FAQ http://www.gzip.org/zlib/zlib_faq.html
-+before asking for help.
-+
-+Mark Nelson wrote an article about zlib for the Jan. 1997
-+issue of Dr. Dobb's Journal; a copy of the article is available in
-+http://dogma.net/markn/articles/zlibtool/zlibtool.htm
-+
-+The changes made in version 1.1.4 are documented in the file ChangeLog.
-+The only changes made since 1.1.3 are bug corrections:
-+
-+- ZFREE was repeated on same allocation on some error conditions.
-+ This creates a security problem described in
-+ http://www.zlib.org/advisory-2002-03-11.txt
-+- Returned incorrect error (Z_MEM_ERROR) on some invalid data
-+- Avoid accesses before window for invalid distances with inflate window
-+ less than 32K.
-+- force windowBits > 8 to avoid a bug in the encoder for a window size
-+ of 256 bytes. (A complete fix will be available in 1.1.5).
-+
-+The beta version 1.1.5beta includes many more changes. A new official
-+version 1.1.5 will be released as soon as extensive testing has been
-+completed on it.
-+
-+
-+Unsupported third party contributions are provided in directory "contrib".
-+
-+A Java implementation of zlib is available in the Java Development Kit
-+http://www.javasoft.com/products/JDK/1.1/docs/api/Package-java.util.zip.html
-+See the zlib home page http://www.zlib.org for details.
-+
-+A Perl interface to zlib written by Paul Marquess
-+is in the CPAN (Comprehensive Perl Archive Network) sites
-+http://www.cpan.org/modules/by-module/Compress/
-+
-+A Python interface to zlib written by A.M. Kuchling
-+is available in Python 1.5 and later versions, see
-+http://www.python.org/doc/lib/module-zlib.html
-+
-+A zlib binding for TCL written by Andreas Kupries
-+is availlable at http://www.westend.com/~kupries/doc/trf/man/man.html
-+
-+An experimental package to read and write files in .zip format,
-+written on top of zlib by Gilles Vollant , is
-+available at http://www.winimage.com/zLibDll/unzip.html
-+and also in the contrib/minizip directory of zlib.
-+
-+
-+Notes for some targets:
-+
-+- To build a Windows DLL version, include in a DLL project zlib.def, zlib.rc
-+ and all .c files except example.c and minigzip.c; compile with -DZLIB_DLL
-+ The zlib DLL support was initially done by Alessandro Iacopetti and is
-+ now maintained by Gilles Vollant . Check the zlib DLL
-+ home page at http://www.winimage.com/zLibDll
-+
-+ From Visual Basic, you can call the DLL functions which do not take
-+ a structure as argument: compress, uncompress and all gz* functions.
-+ See contrib/visual-basic.txt for more information, or get
-+ http://www.tcfb.com/dowseware/cmp-z-it.zip
-+
-+- For 64-bit Irix, deflate.c must be compiled without any optimization.
-+ With -O, one libpng test fails. The test works in 32 bit mode (with
-+ the -n32 compiler flag). The compiler bug has been reported to SGI.
-+
-+- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1
-+ it works when compiled with cc.
-+
-+- on Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1
-+ is necessary to get gzprintf working correctly. This is done by configure.
-+
-+- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works
-+ with other compilers. Use "make test" to check your compiler.
-+
-+- gzdopen is not supported on RISCOS, BEOS and by some Mac compilers.
-+
-+- For Turbo C the small model is supported only with reduced performance to
-+ avoid any far allocation; it was tested with -DMAX_WBITS=11 -DMAX_MEM_LEVEL=3
-+
-+- For PalmOs, see http://www.cs.uit.no/~perm/PASTA/pilot/software.html
-+ Per Harald Myrvang
-+
-+
-+Acknowledgments:
-+
-+ The deflate format used by zlib was defined by Phil Katz. The deflate
-+ and zlib specifications were written by L. Peter Deutsch. Thanks to all the
-+ people who reported problems and suggested various improvements in zlib;
-+ they are too numerous to cite here.
-+
-+Copyright notice:
-+
-+ (C) 1995-2002 Jean-loup Gailly and Mark Adler
-+
-+ This software is provided 'as-is', without any express or implied
-+ warranty. In no event will the authors be held liable for any damages
-+ arising from the use of this software.
-+
-+ Permission is granted to anyone to use this software for any purpose,
-+ including commercial applications, and to alter it and redistribute it
-+ freely, subject to the following restrictions:
-+
-+ 1. The origin of this software must not be misrepresented; you must not
-+ claim that you wrote the original software. If you use this software
-+ in a product, an acknowledgment in the product documentation would be
-+ appreciated but is not required.
-+ 2. Altered source versions must be plainly marked as such, and must not be
-+ misrepresented as being the original software.
-+ 3. This notice may not be removed or altered from any source distribution.
-+
-+ Jean-loup Gailly Mark Adler
-+ jloup@gzip.org madler@alumni.caltech.edu
-+
-+If you use the zlib library in a product, we would appreciate *not*
-+receiving lengthy legal documents to sign. The sources are provided
-+for free but without warranty of any kind. The library has been
-+entirely written by Jean-loup Gailly and Mark Adler; it does not
-+include third-party code.
-+
-+If you redistribute modified sources, we would appreciate that you include
-+in the file ChangeLog history information documenting your changes.
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/README-zlib.freeswan Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,13 @@
-+The only changes made to these files for use in FreeS/WAN are:
-+
-+ - In zconf.h, macros are defined to prefix global symbols with "ipcomp_"
-+ (or "_ipcomp"), when compiled with -DIPCOMP_PREFIX.
-+ - The copyright strings are defined local (static)
-+
-+ The above changes are made to avoid name collisions with ppp_deflate
-+ and ext2compr.
-+
-+ - Files not needed for FreeS/WAN have been removed
-+
-+ See the "README" file for information about where to obtain the complete
-+ zlib package.
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/addrtoa.c Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,67 @@
-+/*
-+ * addresses to ASCII
-+ * Copyright (C) 1998, 1999 Henry Spencer.
-+ *
-+ * This library is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU Library General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version. See .
-+ *
-+ * This library 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 Library General Public
-+ * License for more details.
-+ *
-+ * RCSID $Id: addrtoa.c,v 1.10 2004/07/10 07:43:47 mcr Exp $
-+ */
-+#include "openswan.h"
-+
-+#define NBYTES 4 /* bytes in an address */
-+#define PERBYTE 4 /* three digits plus a dot or NUL */
-+#define BUFLEN (NBYTES*PERBYTE)
-+
-+#if BUFLEN != ADDRTOA_BUF
-+#error "ADDRTOA_BUF in openswan.h inconsistent with addrtoa() code"
-+#endif
-+
-+/*
-+ - addrtoa - convert binary address to ASCII dotted decimal
-+ */
-+size_t /* space needed for full conversion */
-+addrtoa(addr, format, dst, dstlen)
-+struct in_addr addr;
-+int format; /* character */
-+char *dst; /* need not be valid if dstlen is 0 */
-+size_t dstlen;
-+{
-+ unsigned long a = ntohl(addr.s_addr);
-+ int i;
-+ size_t n;
-+ unsigned long byte;
-+ char buf[BUFLEN];
-+ char *p;
-+
-+ switch (format) {
-+ case 0:
-+ break;
-+ default:
-+ return 0;
-+ break;
-+ }
-+
-+ p = buf;
-+ for (i = NBYTES-1; i >= 0; i--) {
-+ byte = (a >> (i*8)) & 0xff;
-+ p += ultoa(byte, 10, p, PERBYTE);
-+ if (i != 0)
-+ *(p-1) = '.';
-+ }
-+ n = p - buf;
-+
-+ if (dstlen > 0) {
-+ if (n > dstlen)
-+ buf[dstlen - 1] = '\0';
-+ strcpy(dst, buf);
-+ }
-+ return n;
-+}
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/addrtot.c Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,344 @@
-+/*
-+ * addresses to text
-+ * Copyright (C) 2000 Henry Spencer.
-+ *
-+ * This library is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU Library General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version. See .
-+ *
-+ * This library 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 Library General Public
-+ * License for more details.
-+ *
-+ */
-+
-+#if defined(__KERNEL__) && defined(__HAVE_ARCH_STRSTR)
-+#include
-+#endif
-+
-+#include "openswan.h"
-+
-+#define IP4BYTES 4 /* bytes in an IPv4 address */
-+#define PERBYTE 4 /* three digits plus a dot or NUL */
-+#define IP6BYTES 16 /* bytes in an IPv6 address */
-+
-+/* forwards */
-+static size_t normal4(const unsigned char *s, size_t len, char *b, char **dp);
-+static size_t normal6(const unsigned char *s, size_t len, char *b, char **dp, int squish);
-+static size_t reverse4(const unsigned char *s, size_t len, char *b, char **dp);
-+static size_t reverse6(const unsigned char *s, size_t len, char *b, char **dp);
-+
-+#if defined(__KERNEL__) && !defined(__HAVE_ARCH_STRSTR)
-+#define strstr ipsec_strstr
-+/*
-+ * Find the first occurrence of find in s.
-+ * (from NetBSD 1.6's /src/lib/libc/string/strstr.c)
-+ */
-+
-+static char *
-+ipsec_strstr(s, find)
-+ const char *s, *find;
-+{
-+ char c, sc;
-+ size_t len;
-+
-+ if ((c = *find++) != 0) {
-+ len = strlen(find);
-+ do {
-+ do {
-+ if ((sc = *s++) == 0)
-+ return (NULL);
-+ } while (sc != c);
-+ } while (strncmp(s, find, len) != 0);
-+ s--;
-+ }
-+ /* LINTED interface specification */
-+ return ((char *)s);
-+}
-+#endif
-+
-+/*
-+ - addrtot - convert binary address to text (dotted decimal or IPv6 string)
-+ */
-+size_t /* space needed for full conversion */
-+addrtot(src, format, dst, dstlen)
-+const ip_address *src;
-+int format; /* character */
-+char *dst; /* need not be valid if dstlen is 0 */
-+size_t dstlen;
-+{
-+ const unsigned char *b;
-+ size_t n;
-+ char buf[1+ADDRTOT_BUF+1]; /* :address: */
-+ char *p;
-+ int t = addrtypeof(src);
-+# define TF(t, f) (((t)<<8) | (f))
-+
-+ n = addrbytesptr(src, &b);
-+ if (n == 0) {
-+ bad:
-+ dst[0]='\0';
-+ strncat(dst, "", dstlen);
-+ return sizeof("");
-+ }
-+
-+ switch (TF(t, format)) {
-+ case TF(AF_INET, 0):
-+ n = normal4(b, n, buf, &p);
-+ break;
-+ case TF(AF_INET6, 0):
-+ n = normal6(b, n, buf, &p, 1);
-+ break;
-+ case TF(AF_INET, 'Q'):
-+ n = normal4(b, n, buf, &p);
-+ break;
-+ case TF(AF_INET6, 'Q'):
-+ n = normal6(b, n, buf, &p, 0);
-+ break;
-+ case TF(AF_INET, 'r'):
-+ n = reverse4(b, n, buf, &p);
-+ break;
-+ case TF(AF_INET6, 'r'):
-+ n = reverse6(b, n, buf, &p);
-+ break;
-+ default: /* including (AF_INET, 'R') */
-+ goto bad;
-+ break;
-+ }
-+
-+ if (dstlen > 0) {
-+ if (dstlen < n)
-+ p[dstlen - 1] = '\0';
-+ strcpy(dst, p);
-+ }
-+ return n;
-+}
-+
-+/*
-+ - normal4 - normal IPv4 address-text conversion
-+ */
-+static size_t /* size of text, including NUL */
-+normal4(srcp, srclen, buf, dstp)
-+const unsigned char *srcp;
-+size_t srclen;
-+char *buf; /* guaranteed large enough */
-+char **dstp; /* where to put result pointer */
-+{
-+ int i;
-+ char *p;
-+
-+ if (srclen != IP4BYTES) /* "can't happen" */
-+ return 0;
-+ p = buf;
-+ for (i = 0; i < IP4BYTES; i++) {
-+ p += ultot(srcp[i], 10, p, PERBYTE);
-+ if (i != IP4BYTES - 1)
-+ *(p-1) = '.'; /* overwrites the NUL */
-+ }
-+ *dstp = buf;
-+ return p - buf;
-+}
-+
-+/*
-+ - normal6 - normal IPv6 address-text conversion
-+ */
-+static size_t /* size of text, including NUL */
-+normal6(srcp, srclen, buf, dstp, squish)
-+const unsigned char *srcp;
-+size_t srclen;
-+char *buf; /* guaranteed large enough, plus 2 */
-+char **dstp; /* where to put result pointer */
-+int squish; /* whether to squish out 0:0 */
-+{
-+ int i;
-+ unsigned long piece;
-+ char *p;
-+ char *q;
-+
-+ if (srclen != IP6BYTES) /* "can't happen" */
-+ return 0;
-+ p = buf;
-+ *p++ = ':';
-+ for (i = 0; i < IP6BYTES/2; i++) {
-+ piece = (srcp[2*i] << 8) + srcp[2*i + 1];
-+ p += ultot(piece, 16, p, 5); /* 5 = abcd + NUL */
-+ *(p-1) = ':'; /* overwrites the NUL */
-+ }
-+ *p = '\0';
-+ q = strstr(buf, ":0:0:");
-+ if (squish && q != NULL) { /* zero squishing is possible */
-+ p = q + 1;
-+ while (*p == '0' && *(p+1) == ':')
-+ p += 2;
-+ q++;
-+ *q++ = ':'; /* overwrite first 0 */
-+ while (*p != '\0')
-+ *q++ = *p++;
-+ *q = '\0';
-+ if (!(*(q-1) == ':' && *(q-2) == ':'))
-+ *--q = '\0'; /* strip final : unless :: */
-+ p = buf;
-+ if (!(*p == ':' && *(p+1) == ':'))
-+ p++; /* skip initial : unless :: */
-+ } else {
-+ q = p;
-+ *--q = '\0'; /* strip final : */
-+ p = buf + 1; /* skip initial : */
-+ }
-+ *dstp = p;
-+ return q - p + 1;
-+}
-+
-+/*
-+ - reverse4 - IPv4 reverse-lookup conversion
-+ */
-+static size_t /* size of text, including NUL */
-+reverse4(srcp, srclen, buf, dstp)
-+const unsigned char *srcp;
-+size_t srclen;
-+char *buf; /* guaranteed large enough */
-+char **dstp; /* where to put result pointer */
-+{
-+ int i;
-+ char *p;
-+
-+ if (srclen != IP4BYTES) /* "can't happen" */
-+ return 0;
-+ p = buf;
-+ for (i = IP4BYTES-1; i >= 0; i--) {
-+ p += ultot(srcp[i], 10, p, PERBYTE);
-+ *(p-1) = '.'; /* overwrites the NUL */
-+ }
-+ strcpy(p, "IN-ADDR.ARPA.");
-+ *dstp = buf;
-+ return strlen(buf) + 1;
-+}
-+
-+/*
-+ - reverse6 - IPv6 reverse-lookup conversion (RFC 1886)
-+ * A trifle inefficient, really shouldn't use ultot...
-+ */
-+static size_t /* size of text, including NUL */
-+reverse6(srcp, srclen, buf, dstp)
-+const unsigned char *srcp;
-+size_t srclen;
-+char *buf; /* guaranteed large enough */
-+char **dstp; /* where to put result pointer */
-+{
-+ int i;
-+ unsigned long piece;
-+ char *p;
-+
-+ if (srclen != IP6BYTES) /* "can't happen" */
-+ return 0;
-+ p = buf;
-+ for (i = IP6BYTES-1; i >= 0; i--) {
-+ piece = srcp[i];
-+ p += ultot(piece&0xf, 16, p, 2);
-+ *(p-1) = '.';
-+ p += ultot(piece>>4, 16, p, 2);
-+ *(p-1) = '.';
-+ }
-+ strcpy(p, "IP6.ARPA.");
-+ *dstp = buf;
-+ return strlen(buf) + 1;
-+}
-+
-+/*
-+ - reverse6 - modern IPv6 reverse-lookup conversion (RFC 2874)
-+ * this version removed as it was obsoleted in the end.
-+ */
-+
-+#ifdef ADDRTOT_MAIN
-+
-+#include
-+#include
-+#include
-+#include
-+
-+void regress(void);
-+
-+int
-+main(int argc, char *argv[])
-+{
-+ if (argc < 2) {
-+ fprintf(stderr, "Usage: %s {addr|net/mask|begin...end|-r}\n",
-+ argv[0]);
-+ exit(2);
-+ }
-+
-+ if (strcmp(argv[1], "-r") == 0) {
-+ regress();
-+ fprintf(stderr, "regress() returned?!?\n");
-+ exit(1);
-+ }
-+ exit(0);
-+}
-+
-+struct rtab {
-+ char *input;
-+ char format;
-+ char *output; /* NULL means error expected */
-+} rtab[] = {
-+ {"1.2.3.0", 0, "1.2.3.0"},
-+ {"1:2::3:4", 0, "1:2::3:4"},
-+ {"1:2::3:4", 'Q', "1:2:0:0:0:0:3:4"},
-+ {"1:2:0:0:3:4:0:0", 0, "1:2::3:4:0:0"},
-+ {"1.2.3.4", 'r' , "4.3.2.1.IN-ADDR.ARPA."},
-+ /* 0 1 2 3 4 5 6 7 8 9 a b c d e f 0 1 2 3 4 5 6 7 8 9 a b c d e f */
-+ {"1:2::3:4", 'r', "4.0.0.0.3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.1.0.0.0.IP6.ARPA."},
-+ {NULL, 0, NULL}
-+};
-+
-+void
-+regress()
-+{
-+ struct rtab *r;
-+ int status = 0;
-+ ip_address a;
-+ char in[100];
-+ char buf[100];
-+ const char *oops;
-+ size_t n;
-+
-+ for (r = rtab; r->input != NULL; r++) {
-+ strcpy(in, r->input);
-+
-+ /* convert it *to* internal format */
-+ oops = ttoaddr(in, strlen(in), 0, &a);
-+
-+ /* now convert it back */
-+
-+ n = addrtot(&a, r->format, buf, sizeof(buf));
-+
-+ if (n == 0 && r->output == NULL)
-+ {} /* okay, error expected */
-+
-+ else if (n == 0) {
-+ printf("`%s' atoasr failed\n", r->input);
-+ status = 1;
-+
-+ } else if (r->output == NULL) {
-+ printf("`%s' atoasr succeeded unexpectedly '%c'\n",
-+ r->input, r->format);
-+ status = 1;
-+ } else {
-+ if (strcasecmp(r->output, buf) != 0) {
-+ printf("`%s' '%c' gave `%s', expected `%s'\n",
-+ r->input, r->format, buf, r->output);
-+ status = 1;
-+ }
-+ }
-+ }
-+ exit(status);
-+}
-+
-+#endif /* ADDRTOT_MAIN */
-+
-+/*
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/addrtypeof.c Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,123 @@
-+/*
-+ * extract parts of an ip_address
-+ * Copyright (C) 2000 Henry Spencer.
-+ *
-+ * This library is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU Library General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version. See .
-+ *
-+ * This library 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 Library General Public
-+ * License for more details.
-+ *
-+ * RCSID $Id: addrtypeof.c,v 1.10 2004/07/10 07:43:47 mcr Exp $
-+ */
-+#include "openswan.h"
-+
-+/*
-+ - addrtypeof - get the type of an ip_address
-+ */
-+int
-+addrtypeof(src)
-+const ip_address *src;
-+{
-+ return src->u.v4.sin_family;
-+}
-+
-+/*
-+ - addrbytesptr - get pointer to the address bytes of an ip_address
-+ */
-+size_t /* 0 for error */
-+addrbytesptr(src, dstp)
-+const ip_address *src;
-+const unsigned char **dstp; /* NULL means just a size query */
-+{
-+ const unsigned char *p;
-+ size_t n;
-+
-+ switch (src->u.v4.sin_family) {
-+ case AF_INET:
-+ p = (const unsigned char *)&src->u.v4.sin_addr.s_addr;
-+ n = 4;
-+ break;
-+ case AF_INET6:
-+ p = (const unsigned char *)&src->u.v6.sin6_addr;
-+ n = 16;
-+ break;
-+ default:
-+ return 0;
-+ break;
-+ }
-+
-+ if (dstp != NULL)
-+ *dstp = p;
-+ return n;
-+
-+}
-+/*
-+ - addrbytesptr - get pointer to the address bytes of an ip_address
-+ */
-+size_t /* 0 for error */
-+addrbytesptr_write(src, dstp)
-+ip_address *src;
-+unsigned char **dstp; /* NULL means just a size query */
-+{
-+ unsigned char *p;
-+ size_t n;
-+
-+ switch (src->u.v4.sin_family) {
-+ case AF_INET:
-+ p = (unsigned char *)&src->u.v4.sin_addr.s_addr;
-+ n = 4;
-+ break;
-+ case AF_INET6:
-+ p = (unsigned char *)&src->u.v6.sin6_addr;
-+ n = 16;
-+ break;
-+ default:
-+ return 0;
-+ break;
-+ }
-+
-+ if (dstp != NULL)
-+ *dstp = p;
-+ return n;
-+}
-+
-+/*
-+ - addrlenof - get length of the address bytes of an ip_address
-+ */
-+size_t /* 0 for error */
-+addrlenof(src)
-+const ip_address *src;
-+{
-+ return addrbytesptr(src, NULL);
-+}
-+
-+/*
-+ - addrbytesof - get the address bytes of an ip_address
-+ */
-+size_t /* 0 for error */
-+addrbytesof(src, dst, dstlen)
-+const ip_address *src;
-+unsigned char *dst;
-+size_t dstlen;
-+{
-+ const unsigned char *p;
-+ size_t n;
-+ size_t ncopy;
-+
-+ n = addrbytesptr(src, &p);
-+ if (n == 0)
-+ return 0;
-+
-+ if (dstlen > 0) {
-+ ncopy = n;
-+ if (ncopy > dstlen)
-+ ncopy = dstlen;
-+ memcpy(dst, p, ncopy);
-+ }
-+ return n;
-+}
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/adler32.c Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,49 @@
-+/* adler32.c -- compute the Adler-32 checksum of a data stream
-+ * Copyright (C) 1995-2002 Mark Adler
-+ * For conditions of distribution and use, see copyright notice in zlib.h
-+ */
-+
-+/* @(#) $Id: adler32.c,v 1.6 2004/07/10 19:11:18 mcr Exp $ */
-+
-+#include
-+#include
-+
-+#define BASE 65521L /* largest prime smaller than 65536 */
-+#define NMAX 5552
-+/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
-+
-+#define DO1(buf,i) {s1 += buf[i]; s2 += s1;}
-+#define DO2(buf,i) DO1(buf,i); DO1(buf,i+1);
-+#define DO4(buf,i) DO2(buf,i); DO2(buf,i+2);
-+#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4);
-+#define DO16(buf) DO8(buf,0); DO8(buf,8);
-+
-+/* ========================================================================= */
-+uLong ZEXPORT adler32(adler, buf, len)
-+ uLong adler;
-+ const Bytef *buf;
-+ uInt len;
-+{
-+ unsigned long s1 = adler & 0xffff;
-+ unsigned long s2 = (adler >> 16) & 0xffff;
-+ int k;
-+
-+ if (buf == Z_NULL) return 1L;
-+
-+ while (len > 0) {
-+ k = len < NMAX ? len : NMAX;
-+ len -= k;
-+ while (k >= 16) {
-+ DO16(buf);
-+ buf += 16;
-+ k -= 16;
-+ }
-+ if (k != 0) do {
-+ s1 += *buf++;
-+ s2 += s1;
-+ } while (--k);
-+ s1 %= BASE;
-+ s2 %= BASE;
-+ }
-+ return (s2 << 16) | s1;
-+}
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/aes/Makefile Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,56 @@
-+# Makefile for KLIPS 3DES kernel code as a module for 2.6 kernels
-+#
-+# Makefile for KLIPS kernel code as a module
-+# Copyright (C) 2002-2004 Michael Richardson
-+#
-+# 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. See .
-+#
-+# 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.
-+#
-+# RCSID $Id: Makefile.fs2_6,v 1.2 2005/08/12 14:13:58 mcr Exp $
-+#
-+# Note! Dependencies are done automagically by 'make dep', which also
-+# removes any old dependencies. DON'T put your own dependencies here
-+# unless it's something special (ie not a .c file).
-+#
-+
-+obj-$(CONFIG_KLIPS_ENC_AES) += ipsec_alg_aes.o
-+obj-$(CONFIG_KLIPS_ENC_AES) += aes_xcbc_mac.o
-+obj-$(CONFIG_KLIPS_ENC_AES) += aes_cbc.o
-+
-+ifeq ($(strip ${SUBARCH}),)
-+SUBARCH:=${ARCH}
-+endif
-+
-+# the assembly version expects frame pointers, which are
-+# optional in many kernel builds. If you want speed, you should
-+# probably use cryptoapi code instead.
-+USEASSEMBLY=${SUBARCH}${CONFIG_FRAME_POINTER}
-+ifeq (${USEASSEMBLY},i386y)
-+obj-$(CONFIG_KLIPS_ENC_AES) += aes-i586.o
-+else
-+obj-$(CONFIG_KLIPS_ENC_AES) += aes.o
-+endif
-+
-+
-+#
-+# $Log: Makefile.fs2_6,v $
-+# Revision 1.2 2005/08/12 14:13:58 mcr
-+# do not use assembly code with there are no frame pointers,
-+# as it does not have the right linkages.
-+#
-+# Revision 1.1 2004/08/17 03:31:34 mcr
-+# klips 2.6 edits.
-+#
-+#
-+# Local Variables:
-+# compile-command: "(cd ../../.. && source umlsetup.sh && make -C ${POOLSPACE} module/ipsec.o)"
-+# End Variables:
-+#
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/aes/aes-i586.S Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,892 @@
-+//
-+// Copyright (c) 2001, Dr Brian Gladman , Worcester, UK.
-+// All rights reserved.
-+//
-+// TERMS
-+//
-+// Redistribution and use in source and binary forms, with or without
-+// modification, are permitted subject to the following conditions:
-+//
-+// 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 copyright holder's name must not be used to endorse or promote
-+// any products derived from this software without his specific prior
-+// written permission.
-+//
-+// This software is provided 'as is' with no express or implied warranties
-+// of correctness or fitness for purpose.
-+
-+// Modified by Jari Ruusu, December 24 2001
-+// - Converted syntax to GNU CPP/assembler syntax
-+// - C programming interface converted back to "old" API
-+// - Minor portability cleanups and speed optimizations
-+
-+// An AES (Rijndael) implementation for the Pentium. This version only
-+// implements the standard AES block length (128 bits, 16 bytes). This code
-+// does not preserve the eax, ecx or edx registers or the artihmetic status
-+// flags. However, the ebx, esi, edi, and ebp registers are preserved across
-+// calls.
-+
-+// void aes_set_key(aes_context *cx, const unsigned char key[], const int key_len, const int f)
-+// void aes_encrypt(const aes_context *cx, const unsigned char in_blk[], unsigned char out_blk[])
-+// void aes_decrypt(const aes_context *cx, const unsigned char in_blk[], unsigned char out_blk[])
-+
-+#if defined(USE_UNDERLINE)
-+# define aes_set_key _aes_set_key
-+# define aes_encrypt _aes_encrypt
-+# define aes_decrypt _aes_decrypt
-+#endif
-+#if !defined(ALIGN32BYTES)
-+# define ALIGN32BYTES 32
-+#endif
-+
-+ .file "aes-i586.S"
-+ .globl aes_set_key
-+ .globl aes_encrypt
-+ .globl aes_decrypt
-+
-+#define tlen 1024 // length of each of 4 'xor' arrays (256 32-bit words)
-+
-+// offsets to parameters with one register pushed onto stack
-+
-+#define ctx 8 // AES context structure
-+#define in_blk 12 // input byte array address parameter
-+#define out_blk 16 // output byte array address parameter
-+
-+// offsets in context structure
-+
-+#define nkey 0 // key length, size 4
-+#define nrnd 4 // number of rounds, size 4
-+#define ekey 8 // encryption key schedule base address, size 256
-+#define dkey 264 // decryption key schedule base address, size 256
-+
-+// This macro performs a forward encryption cycle. It is entered with
-+// the first previous round column values in %eax, %ebx, %esi and %edi and
-+// exits with the final values in the same registers.
-+
-+#define fwd_rnd(p1,p2) \
-+ mov %ebx,(%esp) ;\
-+ movzbl %al,%edx ;\
-+ mov %eax,%ecx ;\
-+ mov p2(%ebp),%eax ;\
-+ mov %edi,4(%esp) ;\
-+ mov p2+12(%ebp),%edi ;\
-+ xor p1(,%edx,4),%eax ;\
-+ movzbl %ch,%edx ;\
-+ shr $16,%ecx ;\
-+ mov p2+4(%ebp),%ebx ;\
-+ xor p1+tlen(,%edx,4),%edi ;\
-+ movzbl %cl,%edx ;\
-+ movzbl %ch,%ecx ;\
-+ xor p1+3*tlen(,%ecx,4),%ebx ;\
-+ mov %esi,%ecx ;\
-+ mov p1+2*tlen(,%edx,4),%esi ;\
-+ movzbl %cl,%edx ;\
-+ xor p1(,%edx,4),%esi ;\
-+ movzbl %ch,%edx ;\
-+ shr $16,%ecx ;\
-+ xor p1+tlen(,%edx,4),%ebx ;\
-+ movzbl %cl,%edx ;\
-+ movzbl %ch,%ecx ;\
-+ xor p1+2*tlen(,%edx,4),%eax ;\
-+ mov (%esp),%edx ;\
-+ xor p1+3*tlen(,%ecx,4),%edi ;\
-+ movzbl %dl,%ecx ;\
-+ xor p2+8(%ebp),%esi ;\
-+ xor p1(,%ecx,4),%ebx ;\
-+ movzbl %dh,%ecx ;\
-+ shr $16,%edx ;\
-+ xor p1+tlen(,%ecx,4),%eax ;\
-+ movzbl %dl,%ecx ;\
-+ movzbl %dh,%edx ;\
-+ xor p1+2*tlen(,%ecx,4),%edi ;\
-+ mov 4(%esp),%ecx ;\
-+ xor p1+3*tlen(,%edx,4),%esi ;\
-+ movzbl %cl,%edx ;\
-+ xor p1(,%edx,4),%edi ;\
-+ movzbl %ch,%edx ;\
-+ shr $16,%ecx ;\
-+ xor p1+tlen(,%edx,4),%esi ;\
-+ movzbl %cl,%edx ;\
-+ movzbl %ch,%ecx ;\
-+ xor p1+2*tlen(,%edx,4),%ebx ;\
-+ xor p1+3*tlen(,%ecx,4),%eax
-+
-+// This macro performs an inverse encryption cycle. It is entered with
-+// the first previous round column values in %eax, %ebx, %esi and %edi and
-+// exits with the final values in the same registers.
-+
-+#define inv_rnd(p1,p2) \
-+ movzbl %al,%edx ;\
-+ mov %ebx,(%esp) ;\
-+ mov %eax,%ecx ;\
-+ mov p2(%ebp),%eax ;\
-+ mov %edi,4(%esp) ;\
-+ mov p2+4(%ebp),%ebx ;\
-+ xor p1(,%edx,4),%eax ;\
-+ movzbl %ch,%edx ;\
-+ shr $16,%ecx ;\
-+ mov p2+12(%ebp),%edi ;\
-+ xor p1+tlen(,%edx,4),%ebx ;\
-+ movzbl %cl,%edx ;\
-+ movzbl %ch,%ecx ;\
-+ xor p1+3*tlen(,%ecx,4),%edi ;\
-+ mov %esi,%ecx ;\
-+ mov p1+2*tlen(,%edx,4),%esi ;\
-+ movzbl %cl,%edx ;\
-+ xor p1(,%edx,4),%esi ;\
-+ movzbl %ch,%edx ;\
-+ shr $16,%ecx ;\
-+ xor p1+tlen(,%edx,4),%edi ;\
-+ movzbl %cl,%edx ;\
-+ movzbl %ch,%ecx ;\
-+ xor p1+2*tlen(,%edx,4),%eax ;\
-+ mov (%esp),%edx ;\
-+ xor p1+3*tlen(,%ecx,4),%ebx ;\
-+ movzbl %dl,%ecx ;\
-+ xor p2+8(%ebp),%esi ;\
-+ xor p1(,%ecx,4),%ebx ;\
-+ movzbl %dh,%ecx ;\
-+ shr $16,%edx ;\
-+ xor p1+tlen(,%ecx,4),%esi ;\
-+ movzbl %dl,%ecx ;\
-+ movzbl %dh,%edx ;\
-+ xor p1+2*tlen(,%ecx,4),%edi ;\
-+ mov 4(%esp),%ecx ;\
-+ xor p1+3*tlen(,%edx,4),%eax ;\
-+ movzbl %cl,%edx ;\
-+ xor p1(,%edx,4),%edi ;\
-+ movzbl %ch,%edx ;\
-+ shr $16,%ecx ;\
-+ xor p1+tlen(,%edx,4),%eax ;\
-+ movzbl %cl,%edx ;\
-+ movzbl %ch,%ecx ;\
-+ xor p1+2*tlen(,%edx,4),%ebx ;\
-+ xor p1+3*tlen(,%ecx,4),%esi
-+
-+// AES (Rijndael) Encryption Subroutine
-+
-+ .text
-+ .align ALIGN32BYTES
-+aes_encrypt:
-+ push %ebp
-+ mov ctx(%esp),%ebp // pointer to context
-+ mov in_blk(%esp),%ecx
-+ push %ebx
-+ push %esi
-+ push %edi
-+ mov nrnd(%ebp),%edx // number of rounds
-+ lea ekey+16(%ebp),%ebp // key pointer
-+
-+// input four columns and xor in first round key
-+
-+ mov (%ecx),%eax
-+ mov 4(%ecx),%ebx
-+ mov 8(%ecx),%esi
-+ mov 12(%ecx),%edi
-+ xor -16(%ebp),%eax
-+ xor -12(%ebp),%ebx
-+ xor -8(%ebp),%esi
-+ xor -4(%ebp),%edi
-+
-+ sub $8,%esp // space for register saves on stack
-+
-+ sub $10,%edx
-+ je aes_15
-+ add $32,%ebp
-+ sub $2,%edx
-+ je aes_13
-+ add $32,%ebp
-+
-+ fwd_rnd(aes_ft_tab,-64) // 14 rounds for 256-bit key
-+ fwd_rnd(aes_ft_tab,-48)
-+aes_13: fwd_rnd(aes_ft_tab,-32) // 12 rounds for 192-bit key
-+ fwd_rnd(aes_ft_tab,-16)
-+aes_15: fwd_rnd(aes_ft_tab,0) // 10 rounds for 128-bit key
-+ fwd_rnd(aes_ft_tab,16)
-+ fwd_rnd(aes_ft_tab,32)
-+ fwd_rnd(aes_ft_tab,48)
-+ fwd_rnd(aes_ft_tab,64)
-+ fwd_rnd(aes_ft_tab,80)
-+ fwd_rnd(aes_ft_tab,96)
-+ fwd_rnd(aes_ft_tab,112)
-+ fwd_rnd(aes_ft_tab,128)
-+ fwd_rnd(aes_fl_tab,144) // last round uses a different table
-+
-+// move final values to the output array.
-+
-+ mov out_blk+20(%esp),%ebp
-+ add $8,%esp
-+ mov %eax,(%ebp)
-+ mov %ebx,4(%ebp)
-+ mov %esi,8(%ebp)
-+ mov %edi,12(%ebp)
-+ pop %edi
-+ pop %esi
-+ pop %ebx
-+ pop %ebp
-+ ret
-+
-+
-+// AES (Rijndael) Decryption Subroutine
-+
-+ .align ALIGN32BYTES
-+aes_decrypt:
-+ push %ebp
-+ mov ctx(%esp),%ebp // pointer to context
-+ mov in_blk(%esp),%ecx
-+ push %ebx
-+ push %esi
-+ push %edi
-+ mov nrnd(%ebp),%edx // number of rounds
-+ lea dkey+16(%ebp),%ebp // key pointer
-+
-+// input four columns and xor in first round key
-+
-+ mov (%ecx),%eax
-+ mov 4(%ecx),%ebx
-+ mov 8(%ecx),%esi
-+ mov 12(%ecx),%edi
-+ xor -16(%ebp),%eax
-+ xor -12(%ebp),%ebx
-+ xor -8(%ebp),%esi
-+ xor -4(%ebp),%edi
-+
-+ sub $8,%esp // space for register saves on stack
-+
-+ sub $10,%edx
-+ je aes_25
-+ add $32,%ebp
-+ sub $2,%edx
-+ je aes_23
-+ add $32,%ebp
-+
-+ inv_rnd(aes_it_tab,-64) // 14 rounds for 256-bit key
-+ inv_rnd(aes_it_tab,-48)
-+aes_23: inv_rnd(aes_it_tab,-32) // 12 rounds for 192-bit key
-+ inv_rnd(aes_it_tab,-16)
-+aes_25: inv_rnd(aes_it_tab,0) // 10 rounds for 128-bit key
-+ inv_rnd(aes_it_tab,16)
-+ inv_rnd(aes_it_tab,32)
-+ inv_rnd(aes_it_tab,48)
-+ inv_rnd(aes_it_tab,64)
-+ inv_rnd(aes_it_tab,80)
-+ inv_rnd(aes_it_tab,96)
-+ inv_rnd(aes_it_tab,112)
-+ inv_rnd(aes_it_tab,128)
-+ inv_rnd(aes_il_tab,144) // last round uses a different table
-+
-+// move final values to the output array.
-+
-+ mov out_blk+20(%esp),%ebp
-+ add $8,%esp
-+ mov %eax,(%ebp)
-+ mov %ebx,4(%ebp)
-+ mov %esi,8(%ebp)
-+ mov %edi,12(%ebp)
-+ pop %edi
-+ pop %esi
-+ pop %ebx
-+ pop %ebp
-+ ret
-+
-+// AES (Rijndael) Key Schedule Subroutine
-+
-+// input/output parameters
-+
-+#define aes_cx 12 // AES context
-+#define in_key 16 // key input array address
-+#define key_ln 20 // key length, bytes (16,24,32) or bits (128,192,256)
-+#define ed_flg 24 // 0=create both encr/decr keys, 1=create encr key only
-+
-+// offsets for locals
-+
-+#define cnt -4
-+#define kpf -8
-+#define slen 8
-+
-+// This macro performs a column mixing operation on an input 32-bit
-+// word to give a 32-bit result. It uses each of the 4 bytes in the
-+// the input column to index 4 different tables of 256 32-bit words
-+// that are xored together to form the output value.
-+
-+#define mix_col(p1) \
-+ movzbl %bl,%ecx ;\
-+ mov p1(,%ecx,4),%eax ;\
-+ movzbl %bh,%ecx ;\
-+ ror $16,%ebx ;\
-+ xor p1+tlen(,%ecx,4),%eax ;\
-+ movzbl %bl,%ecx ;\
-+ xor p1+2*tlen(,%ecx,4),%eax ;\
-+ movzbl %bh,%ecx ;\
-+ xor p1+3*tlen(,%ecx,4),%eax
-+
-+// Key Schedule Macros
-+
-+#define ksc4(p1) \
-+ rol $24,%ebx ;\
-+ mix_col(aes_fl_tab) ;\
-+ ror $8,%ebx ;\
-+ xor 4*p1+aes_rcon_tab,%eax ;\
-+ xor %eax,%esi ;\
-+ xor %esi,%ebp ;\
-+ mov %esi,16*p1(%edi) ;\
-+ mov %ebp,16*p1+4(%edi) ;\
-+ xor %ebp,%edx ;\
-+ xor %edx,%ebx ;\
-+ mov %edx,16*p1+8(%edi) ;\
-+ mov %ebx,16*p1+12(%edi)
-+
-+#define ksc6(p1) \
-+ rol $24,%ebx ;\
-+ mix_col(aes_fl_tab) ;\
-+ ror $8,%ebx ;\
-+ xor 4*p1+aes_rcon_tab,%eax ;\
-+ xor 24*p1-24(%edi),%eax ;\
-+ mov %eax,24*p1(%edi) ;\
-+ xor 24*p1-20(%edi),%eax ;\
-+ mov %eax,24*p1+4(%edi) ;\
-+ xor %eax,%esi ;\
-+ xor %esi,%ebp ;\
-+ mov %esi,24*p1+8(%edi) ;\
-+ mov %ebp,24*p1+12(%edi) ;\
-+ xor %ebp,%edx ;\
-+ xor %edx,%ebx ;\
-+ mov %edx,24*p1+16(%edi) ;\
-+ mov %ebx,24*p1+20(%edi)
-+
-+#define ksc8(p1) \
-+ rol $24,%ebx ;\
-+ mix_col(aes_fl_tab) ;\
-+ ror $8,%ebx ;\
-+ xor 4*p1+aes_rcon_tab,%eax ;\
-+ xor 32*p1-32(%edi),%eax ;\
-+ mov %eax,32*p1(%edi) ;\
-+ xor 32*p1-28(%edi),%eax ;\
-+ mov %eax,32*p1+4(%edi) ;\
-+ xor 32*p1-24(%edi),%eax ;\
-+ mov %eax,32*p1+8(%edi) ;\
-+ xor 32*p1-20(%edi),%eax ;\
-+ mov %eax,32*p1+12(%edi) ;\
-+ push %ebx ;\
-+ mov %eax,%ebx ;\
-+ mix_col(aes_fl_tab) ;\
-+ pop %ebx ;\
-+ xor %eax,%esi ;\
-+ xor %esi,%ebp ;\
-+ mov %esi,32*p1+16(%edi) ;\
-+ mov %ebp,32*p1+20(%edi) ;\
-+ xor %ebp,%edx ;\
-+ xor %edx,%ebx ;\
-+ mov %edx,32*p1+24(%edi) ;\
-+ mov %ebx,32*p1+28(%edi)
-+
-+ .align ALIGN32BYTES
-+aes_set_key:
-+ pushfl
-+ push %ebp
-+ mov %esp,%ebp
-+ sub $slen,%esp
-+ push %ebx
-+ push %esi
-+ push %edi
-+
-+ mov aes_cx(%ebp),%edx // edx -> AES context
-+
-+ mov key_ln(%ebp),%ecx // key length
-+ cmpl $128,%ecx
-+ jb aes_30
-+ shr $3,%ecx
-+aes_30: cmpl $32,%ecx
-+ je aes_32
-+ cmpl $24,%ecx
-+ je aes_32
-+ mov $16,%ecx
-+aes_32: shr $2,%ecx
-+ mov %ecx,nkey(%edx)
-+
-+ lea 6(%ecx),%eax // 10/12/14 for 4/6/8 32-bit key length
-+ mov %eax,nrnd(%edx)
-+
-+ mov in_key(%ebp),%esi // key input array
-+ lea ekey(%edx),%edi // key position in AES context
-+ cld
-+ push %ebp
-+ mov %ecx,%eax // save key length in eax
-+ rep ; movsl // words in the key schedule
-+ mov -4(%esi),%ebx // put some values in registers
-+ mov -8(%esi),%edx // to allow faster code
-+ mov -12(%esi),%ebp
-+ mov -16(%esi),%esi
-+
-+ cmpl $4,%eax // jump on key size
-+ je aes_36
-+ cmpl $6,%eax
-+ je aes_35
-+
-+ ksc8(0)
-+ ksc8(1)
-+ ksc8(2)
-+ ksc8(3)
-+ ksc8(4)
-+ ksc8(5)
-+ ksc8(6)
-+ jmp aes_37
-+aes_35: ksc6(0)
-+ ksc6(1)
-+ ksc6(2)
-+ ksc6(3)
-+ ksc6(4)
-+ ksc6(5)
-+ ksc6(6)
-+ ksc6(7)
-+ jmp aes_37
-+aes_36: ksc4(0)
-+ ksc4(1)
-+ ksc4(2)
-+ ksc4(3)
-+ ksc4(4)
-+ ksc4(5)
-+ ksc4(6)
-+ ksc4(7)
-+ ksc4(8)
-+ ksc4(9)
-+aes_37: pop %ebp
-+ mov aes_cx(%ebp),%edx // edx -> AES context
-+ cmpl $0,ed_flg(%ebp)
-+ jne aes_39
-+
-+// compile decryption key schedule from encryption schedule - reverse
-+// order and do mix_column operation on round keys except first and last
-+
-+ mov nrnd(%edx),%eax // kt = cx->d_key + nc * cx->Nrnd
-+ shl $2,%eax
-+ lea dkey(%edx,%eax,4),%edi
-+ lea ekey(%edx),%esi // kf = cx->e_key
-+
-+ movsl // copy first round key (unmodified)
-+ movsl
-+ movsl
-+ movsl
-+ sub $32,%edi
-+ movl $1,cnt(%ebp)
-+aes_38: // do mix column on each column of
-+ lodsl // each round key
-+ mov %eax,%ebx
-+ mix_col(aes_im_tab)
-+ stosl
-+ lodsl
-+ mov %eax,%ebx
-+ mix_col(aes_im_tab)
-+ stosl
-+ lodsl
-+ mov %eax,%ebx
-+ mix_col(aes_im_tab)
-+ stosl
-+ lodsl
-+ mov %eax,%ebx
-+ mix_col(aes_im_tab)
-+ stosl
-+ sub $32,%edi
-+
-+ incl cnt(%ebp)
-+ mov cnt(%ebp),%eax
-+ cmp nrnd(%edx),%eax
-+ jb aes_38
-+
-+ movsl // copy last round key (unmodified)
-+ movsl
-+ movsl
-+ movsl
-+aes_39: pop %edi
-+ pop %esi
-+ pop %ebx
-+ mov %ebp,%esp
-+ pop %ebp
-+ popfl
-+ ret
-+
-+
-+// finite field multiplies by {02}, {04} and {08}
-+
-+#define f2(x) ((x<<1)^(((x>>7)&1)*0x11b))
-+#define f4(x) ((x<<2)^(((x>>6)&1)*0x11b)^(((x>>6)&2)*0x11b))
-+#define f8(x) ((x<<3)^(((x>>5)&1)*0x11b)^(((x>>5)&2)*0x11b)^(((x>>5)&4)*0x11b))
-+
-+// finite field multiplies required in table generation
-+
-+#define f3(x) (f2(x) ^ x)
-+#define f9(x) (f8(x) ^ x)
-+#define fb(x) (f8(x) ^ f2(x) ^ x)
-+#define fd(x) (f8(x) ^ f4(x) ^ x)
-+#define fe(x) (f8(x) ^ f4(x) ^ f2(x))
-+
-+// These defines generate the forward table entries
-+
-+#define u0(x) ((f3(x) << 24) | (x << 16) | (x << 8) | f2(x))
-+#define u1(x) ((x << 24) | (x << 16) | (f2(x) << 8) | f3(x))
-+#define u2(x) ((x << 24) | (f2(x) << 16) | (f3(x) << 8) | x)
-+#define u3(x) ((f2(x) << 24) | (f3(x) << 16) | (x << 8) | x)
-+
-+// These defines generate the inverse table entries
-+
-+#define v0(x) ((fb(x) << 24) | (fd(x) << 16) | (f9(x) << 8) | fe(x))
-+#define v1(x) ((fd(x) << 24) | (f9(x) << 16) | (fe(x) << 8) | fb(x))
-+#define v2(x) ((f9(x) << 24) | (fe(x) << 16) | (fb(x) << 8) | fd(x))
-+#define v3(x) ((fe(x) << 24) | (fb(x) << 16) | (fd(x) << 8) | f9(x))
-+
-+// These defines generate entries for the last round tables
-+
-+#define w0(x) (x)
-+#define w1(x) (x << 8)
-+#define w2(x) (x << 16)
-+#define w3(x) (x << 24)
-+
-+// macro to generate inverse mix column tables (needed for the key schedule)
-+
-+#define im_data0(p1) \
-+ .long p1(0x00),p1(0x01),p1(0x02),p1(0x03),p1(0x04),p1(0x05),p1(0x06),p1(0x07) ;\
-+ .long p1(0x08),p1(0x09),p1(0x0a),p1(0x0b),p1(0x0c),p1(0x0d),p1(0x0e),p1(0x0f) ;\
-+ .long p1(0x10),p1(0x11),p1(0x12),p1(0x13),p1(0x14),p1(0x15),p1(0x16),p1(0x17) ;\
-+ .long p1(0x18),p1(0x19),p1(0x1a),p1(0x1b),p1(0x1c),p1(0x1d),p1(0x1e),p1(0x1f)
-+#define im_data1(p1) \
-+ .long p1(0x20),p1(0x21),p1(0x22),p1(0x23),p1(0x24),p1(0x25),p1(0x26),p1(0x27) ;\
-+ .long p1(0x28),p1(0x29),p1(0x2a),p1(0x2b),p1(0x2c),p1(0x2d),p1(0x2e),p1(0x2f) ;\
-+ .long p1(0x30),p1(0x31),p1(0x32),p1(0x33),p1(0x34),p1(0x35),p1(0x36),p1(0x37) ;\
-+ .long p1(0x38),p1(0x39),p1(0x3a),p1(0x3b),p1(0x3c),p1(0x3d),p1(0x3e),p1(0x3f)
-+#define im_data2(p1) \
-+ .long p1(0x40),p1(0x41),p1(0x42),p1(0x43),p1(0x44),p1(0x45),p1(0x46),p1(0x47) ;\
-+ .long p1(0x48),p1(0x49),p1(0x4a),p1(0x4b),p1(0x4c),p1(0x4d),p1(0x4e),p1(0x4f) ;\
-+ .long p1(0x50),p1(0x51),p1(0x52),p1(0x53),p1(0x54),p1(0x55),p1(0x56),p1(0x57) ;\
-+ .long p1(0x58),p1(0x59),p1(0x5a),p1(0x5b),p1(0x5c),p1(0x5d),p1(0x5e),p1(0x5f)
-+#define im_data3(p1) \
-+ .long p1(0x60),p1(0x61),p1(0x62),p1(0x63),p1(0x64),p1(0x65),p1(0x66),p1(0x67) ;\
-+ .long p1(0x68),p1(0x69),p1(0x6a),p1(0x6b),p1(0x6c),p1(0x6d),p1(0x6e),p1(0x6f) ;\
-+ .long p1(0x70),p1(0x71),p1(0x72),p1(0x73),p1(0x74),p1(0x75),p1(0x76),p1(0x77) ;\
-+ .long p1(0x78),p1(0x79),p1(0x7a),p1(0x7b),p1(0x7c),p1(0x7d),p1(0x7e),p1(0x7f)
-+#define im_data4(p1) \
-+ .long p1(0x80),p1(0x81),p1(0x82),p1(0x83),p1(0x84),p1(0x85),p1(0x86),p1(0x87) ;\
-+ .long p1(0x88),p1(0x89),p1(0x8a),p1(0x8b),p1(0x8c),p1(0x8d),p1(0x8e),p1(0x8f) ;\
-+ .long p1(0x90),p1(0x91),p1(0x92),p1(0x93),p1(0x94),p1(0x95),p1(0x96),p1(0x97) ;\
-+ .long p1(0x98),p1(0x99),p1(0x9a),p1(0x9b),p1(0x9c),p1(0x9d),p1(0x9e),p1(0x9f)
-+#define im_data5(p1) \
-+ .long p1(0xa0),p1(0xa1),p1(0xa2),p1(0xa3),p1(0xa4),p1(0xa5),p1(0xa6),p1(0xa7) ;\
-+ .long p1(0xa8),p1(0xa9),p1(0xaa),p1(0xab),p1(0xac),p1(0xad),p1(0xae),p1(0xaf) ;\
-+ .long p1(0xb0),p1(0xb1),p1(0xb2),p1(0xb3),p1(0xb4),p1(0xb5),p1(0xb6),p1(0xb7) ;\
-+ .long p1(0xb8),p1(0xb9),p1(0xba),p1(0xbb),p1(0xbc),p1(0xbd),p1(0xbe),p1(0xbf)
-+#define im_data6(p1) \
-+ .long p1(0xc0),p1(0xc1),p1(0xc2),p1(0xc3),p1(0xc4),p1(0xc5),p1(0xc6),p1(0xc7) ;\
-+ .long p1(0xc8),p1(0xc9),p1(0xca),p1(0xcb),p1(0xcc),p1(0xcd),p1(0xce),p1(0xcf) ;\
-+ .long p1(0xd0),p1(0xd1),p1(0xd2),p1(0xd3),p1(0xd4),p1(0xd5),p1(0xd6),p1(0xd7) ;\
-+ .long p1(0xd8),p1(0xd9),p1(0xda),p1(0xdb),p1(0xdc),p1(0xdd),p1(0xde),p1(0xdf)
-+#define im_data7(p1) \
-+ .long p1(0xe0),p1(0xe1),p1(0xe2),p1(0xe3),p1(0xe4),p1(0xe5),p1(0xe6),p1(0xe7) ;\
-+ .long p1(0xe8),p1(0xe9),p1(0xea),p1(0xeb),p1(0xec),p1(0xed),p1(0xee),p1(0xef) ;\
-+ .long p1(0xf0),p1(0xf1),p1(0xf2),p1(0xf3),p1(0xf4),p1(0xf5),p1(0xf6),p1(0xf7) ;\
-+ .long p1(0xf8),p1(0xf9),p1(0xfa),p1(0xfb),p1(0xfc),p1(0xfd),p1(0xfe),p1(0xff)
-+
-+// S-box data - 256 entries
-+
-+#define sb_data0(p1) \
-+ .long p1(0x63),p1(0x7c),p1(0x77),p1(0x7b),p1(0xf2),p1(0x6b),p1(0x6f),p1(0xc5) ;\
-+ .long p1(0x30),p1(0x01),p1(0x67),p1(0x2b),p1(0xfe),p1(0xd7),p1(0xab),p1(0x76) ;\
-+ .long p1(0xca),p1(0x82),p1(0xc9),p1(0x7d),p1(0xfa),p1(0x59),p1(0x47),p1(0xf0) ;\
-+ .long p1(0xad),p1(0xd4),p1(0xa2),p1(0xaf),p1(0x9c),p1(0xa4),p1(0x72),p1(0xc0)
-+#define sb_data1(p1) \
-+ .long p1(0xb7),p1(0xfd),p1(0x93),p1(0x26),p1(0x36),p1(0x3f),p1(0xf7),p1(0xcc) ;\
-+ .long p1(0x34),p1(0xa5),p1(0xe5),p1(0xf1),p1(0x71),p1(0xd8),p1(0x31),p1(0x15) ;\
-+ .long p1(0x04),p1(0xc7),p1(0x23),p1(0xc3),p1(0x18),p1(0x96),p1(0x05),p1(0x9a) ;\
-+ .long p1(0x07),p1(0x12),p1(0x80),p1(0xe2),p1(0xeb),p1(0x27),p1(0xb2),p1(0x75)
-+#define sb_data2(p1) \
-+ .long p1(0x09),p1(0x83),p1(0x2c),p1(0x1a),p1(0x1b),p1(0x6e),p1(0x5a),p1(0xa0) ;\
-+ .long p1(0x52),p1(0x3b),p1(0xd6),p1(0xb3),p1(0x29),p1(0xe3),p1(0x2f),p1(0x84) ;\
-+ .long p1(0x53),p1(0xd1),p1(0x00),p1(0xed),p1(0x20),p1(0xfc),p1(0xb1),p1(0x5b) ;\
-+ .long p1(0x6a),p1(0xcb),p1(0xbe),p1(0x39),p1(0x4a),p1(0x4c),p1(0x58),p1(0xcf)
-+#define sb_data3(p1) \
-+ .long p1(0xd0),p1(0xef),p1(0xaa),p1(0xfb),p1(0x43),p1(0x4d),p1(0x33),p1(0x85) ;\
-+ .long p1(0x45),p1(0xf9),p1(0x02),p1(0x7f),p1(0x50),p1(0x3c),p1(0x9f),p1(0xa8) ;\
-+ .long p1(0x51),p1(0xa3),p1(0x40),p1(0x8f),p1(0x92),p1(0x9d),p1(0x38),p1(0xf5) ;\
-+ .long p1(0xbc),p1(0xb6),p1(0xda),p1(0x21),p1(0x10),p1(0xff),p1(0xf3),p1(0xd2)
-+#define sb_data4(p1) \
-+ .long p1(0xcd),p1(0x0c),p1(0x13),p1(0xec),p1(0x5f),p1(0x97),p1(0x44),p1(0x17) ;\
-+ .long p1(0xc4),p1(0xa7),p1(0x7e),p1(0x3d),p1(0x64),p1(0x5d),p1(0x19),p1(0x73) ;\
-+ .long p1(0x60),p1(0x81),p1(0x4f),p1(0xdc),p1(0x22),p1(0x2a),p1(0x90),p1(0x88) ;\
-+ .long p1(0x46),p1(0xee),p1(0xb8),p1(0x14),p1(0xde),p1(0x5e),p1(0x0b),p1(0xdb)
-+#define sb_data5(p1) \
-+ .long p1(0xe0),p1(0x32),p1(0x3a),p1(0x0a),p1(0x49),p1(0x06),p1(0x24),p1(0x5c) ;\
-+ .long p1(0xc2),p1(0xd3),p1(0xac),p1(0x62),p1(0x91),p1(0x95),p1(0xe4),p1(0x79) ;\
-+ .long p1(0xe7),p1(0xc8),p1(0x37),p1(0x6d),p1(0x8d),p1(0xd5),p1(0x4e),p1(0xa9) ;\
-+ .long p1(0x6c),p1(0x56),p1(0xf4),p1(0xea),p1(0x65),p1(0x7a),p1(0xae),p1(0x08)
-+#define sb_data6(p1) \
-+ .long p1(0xba),p1(0x78),p1(0x25),p1(0x2e),p1(0x1c),p1(0xa6),p1(0xb4),p1(0xc6) ;\
-+ .long p1(0xe8),p1(0xdd),p1(0x74),p1(0x1f),p1(0x4b),p1(0xbd),p1(0x8b),p1(0x8a) ;\
-+ .long p1(0x70),p1(0x3e),p1(0xb5),p1(0x66),p1(0x48),p1(0x03),p1(0xf6),p1(0x0e) ;\
-+ .long p1(0x61),p1(0x35),p1(0x57),p1(0xb9),p1(0x86),p1(0xc1),p1(0x1d),p1(0x9e)
-+#define sb_data7(p1) \
-+ .long p1(0xe1),p1(0xf8),p1(0x98),p1(0x11),p1(0x69),p1(0xd9),p1(0x8e),p1(0x94) ;\
-+ .long p1(0x9b),p1(0x1e),p1(0x87),p1(0xe9),p1(0xce),p1(0x55),p1(0x28),p1(0xdf) ;\
-+ .long p1(0x8c),p1(0xa1),p1(0x89),p1(0x0d),p1(0xbf),p1(0xe6),p1(0x42),p1(0x68) ;\
-+ .long p1(0x41),p1(0x99),p1(0x2d),p1(0x0f),p1(0xb0),p1(0x54),p1(0xbb),p1(0x16)
-+
-+// Inverse S-box data - 256 entries
-+
-+#define ib_data0(p1) \
-+ .long p1(0x52),p1(0x09),p1(0x6a),p1(0xd5),p1(0x30),p1(0x36),p1(0xa5),p1(0x38) ;\
-+ .long p1(0xbf),p1(0x40),p1(0xa3),p1(0x9e),p1(0x81),p1(0xf3),p1(0xd7),p1(0xfb) ;\
-+ .long p1(0x7c),p1(0xe3),p1(0x39),p1(0x82),p1(0x9b),p1(0x2f),p1(0xff),p1(0x87) ;\
-+ .long p1(0x34),p1(0x8e),p1(0x43),p1(0x44),p1(0xc4),p1(0xde),p1(0xe9),p1(0xcb)
-+#define ib_data1(p1) \
-+ .long p1(0x54),p1(0x7b),p1(0x94),p1(0x32),p1(0xa6),p1(0xc2),p1(0x23),p1(0x3d) ;\
-+ .long p1(0xee),p1(0x4c),p1(0x95),p1(0x0b),p1(0x42),p1(0xfa),p1(0xc3),p1(0x4e) ;\
-+ .long p1(0x08),p1(0x2e),p1(0xa1),p1(0x66),p1(0x28),p1(0xd9),p1(0x24),p1(0xb2) ;\
-+ .long p1(0x76),p1(0x5b),p1(0xa2),p1(0x49),p1(0x6d),p1(0x8b),p1(0xd1),p1(0x25)
-+#define ib_data2(p1) \
-+ .long p1(0x72),p1(0xf8),p1(0xf6),p1(0x64),p1(0x86),p1(0x68),p1(0x98),p1(0x16) ;\
-+ .long p1(0xd4),p1(0xa4),p1(0x5c),p1(0xcc),p1(0x5d),p1(0x65),p1(0xb6),p1(0x92) ;\
-+ .long p1(0x6c),p1(0x70),p1(0x48),p1(0x50),p1(0xfd),p1(0xed),p1(0xb9),p1(0xda) ;\
-+ .long p1(0x5e),p1(0x15),p1(0x46),p1(0x57),p1(0xa7),p1(0x8d),p1(0x9d),p1(0x84)
-+#define ib_data3(p1) \
-+ .long p1(0x90),p1(0xd8),p1(0xab),p1(0x00),p1(0x8c),p1(0xbc),p1(0xd3),p1(0x0a) ;\
-+ .long p1(0xf7),p1(0xe4),p1(0x58),p1(0x05),p1(0xb8),p1(0xb3),p1(0x45),p1(0x06) ;\
-+ .long p1(0xd0),p1(0x2c),p1(0x1e),p1(0x8f),p1(0xca),p1(0x3f),p1(0x0f),p1(0x02) ;\
-+ .long p1(0xc1),p1(0xaf),p1(0xbd),p1(0x03),p1(0x01),p1(0x13),p1(0x8a),p1(0x6b)
-+#define ib_data4(p1) \
-+ .long p1(0x3a),p1(0x91),p1(0x11),p1(0x41),p1(0x4f),p1(0x67),p1(0xdc),p1(0xea) ;\
-+ .long p1(0x97),p1(0xf2),p1(0xcf),p1(0xce),p1(0xf0),p1(0xb4),p1(0xe6),p1(0x73) ;\
-+ .long p1(0x96),p1(0xac),p1(0x74),p1(0x22),p1(0xe7),p1(0xad),p1(0x35),p1(0x85) ;\
-+ .long p1(0xe2),p1(0xf9),p1(0x37),p1(0xe8),p1(0x1c),p1(0x75),p1(0xdf),p1(0x6e)
-+#define ib_data5(p1) \
-+ .long p1(0x47),p1(0xf1),p1(0x1a),p1(0x71),p1(0x1d),p1(0x29),p1(0xc5),p1(0x89) ;\
-+ .long p1(0x6f),p1(0xb7),p1(0x62),p1(0x0e),p1(0xaa),p1(0x18),p1(0xbe),p1(0x1b) ;\
-+ .long p1(0xfc),p1(0x56),p1(0x3e),p1(0x4b),p1(0xc6),p1(0xd2),p1(0x79),p1(0x20) ;\
-+ .long p1(0x9a),p1(0xdb),p1(0xc0),p1(0xfe),p1(0x78),p1(0xcd),p1(0x5a),p1(0xf4)
-+#define ib_data6(p1) \
-+ .long p1(0x1f),p1(0xdd),p1(0xa8),p1(0x33),p1(0x88),p1(0x07),p1(0xc7),p1(0x31) ;\
-+ .long p1(0xb1),p1(0x12),p1(0x10),p1(0x59),p1(0x27),p1(0x80),p1(0xec),p1(0x5f) ;\
-+ .long p1(0x60),p1(0x51),p1(0x7f),p1(0xa9),p1(0x19),p1(0xb5),p1(0x4a),p1(0x0d) ;\
-+ .long p1(0x2d),p1(0xe5),p1(0x7a),p1(0x9f),p1(0x93),p1(0xc9),p1(0x9c),p1(0xef)
-+#define ib_data7(p1) \
-+ .long p1(0xa0),p1(0xe0),p1(0x3b),p1(0x4d),p1(0xae),p1(0x2a),p1(0xf5),p1(0xb0) ;\
-+ .long p1(0xc8),p1(0xeb),p1(0xbb),p1(0x3c),p1(0x83),p1(0x53),p1(0x99),p1(0x61) ;\
-+ .long p1(0x17),p1(0x2b),p1(0x04),p1(0x7e),p1(0xba),p1(0x77),p1(0xd6),p1(0x26) ;\
-+ .long p1(0xe1),p1(0x69),p1(0x14),p1(0x63),p1(0x55),p1(0x21),p1(0x0c),p1(0x7d)
-+
-+// The rcon_table (needed for the key schedule)
-+//
-+// Here is original Dr Brian Gladman's source code:
-+// _rcon_tab:
-+// %assign x 1
-+// %rep 29
-+// dd x
-+// %assign x f2(x)
-+// %endrep
-+//
-+// Here is precomputed output (it's more portable this way):
-+
-+ .align ALIGN32BYTES
-+aes_rcon_tab:
-+ .long 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
-+ .long 0x1b,0x36,0x6c,0xd8,0xab,0x4d,0x9a,0x2f
-+ .long 0x5e,0xbc,0x63,0xc6,0x97,0x35,0x6a,0xd4
-+ .long 0xb3,0x7d,0xfa,0xef,0xc5
-+
-+// The forward xor tables
-+
-+ .align ALIGN32BYTES
-+aes_ft_tab:
-+ sb_data0(u0)
-+ sb_data1(u0)
-+ sb_data2(u0)
-+ sb_data3(u0)
-+ sb_data4(u0)
-+ sb_data5(u0)
-+ sb_data6(u0)
-+ sb_data7(u0)
-+
-+ sb_data0(u1)
-+ sb_data1(u1)
-+ sb_data2(u1)
-+ sb_data3(u1)
-+ sb_data4(u1)
-+ sb_data5(u1)
-+ sb_data6(u1)
-+ sb_data7(u1)
-+
-+ sb_data0(u2)
-+ sb_data1(u2)
-+ sb_data2(u2)
-+ sb_data3(u2)
-+ sb_data4(u2)
-+ sb_data5(u2)
-+ sb_data6(u2)
-+ sb_data7(u2)
-+
-+ sb_data0(u3)
-+ sb_data1(u3)
-+ sb_data2(u3)
-+ sb_data3(u3)
-+ sb_data4(u3)
-+ sb_data5(u3)
-+ sb_data6(u3)
-+ sb_data7(u3)
-+
-+ .align ALIGN32BYTES
-+aes_fl_tab:
-+ sb_data0(w0)
-+ sb_data1(w0)
-+ sb_data2(w0)
-+ sb_data3(w0)
-+ sb_data4(w0)
-+ sb_data5(w0)
-+ sb_data6(w0)
-+ sb_data7(w0)
-+
-+ sb_data0(w1)
-+ sb_data1(w1)
-+ sb_data2(w1)
-+ sb_data3(w1)
-+ sb_data4(w1)
-+ sb_data5(w1)
-+ sb_data6(w1)
-+ sb_data7(w1)
-+
-+ sb_data0(w2)
-+ sb_data1(w2)
-+ sb_data2(w2)
-+ sb_data3(w2)
-+ sb_data4(w2)
-+ sb_data5(w2)
-+ sb_data6(w2)
-+ sb_data7(w2)
-+
-+ sb_data0(w3)
-+ sb_data1(w3)
-+ sb_data2(w3)
-+ sb_data3(w3)
-+ sb_data4(w3)
-+ sb_data5(w3)
-+ sb_data6(w3)
-+ sb_data7(w3)
-+
-+// The inverse xor tables
-+
-+ .align ALIGN32BYTES
-+aes_it_tab:
-+ ib_data0(v0)
-+ ib_data1(v0)
-+ ib_data2(v0)
-+ ib_data3(v0)
-+ ib_data4(v0)
-+ ib_data5(v0)
-+ ib_data6(v0)
-+ ib_data7(v0)
-+
-+ ib_data0(v1)
-+ ib_data1(v1)
-+ ib_data2(v1)
-+ ib_data3(v1)
-+ ib_data4(v1)
-+ ib_data5(v1)
-+ ib_data6(v1)
-+ ib_data7(v1)
-+
-+ ib_data0(v2)
-+ ib_data1(v2)
-+ ib_data2(v2)
-+ ib_data3(v2)
-+ ib_data4(v2)
-+ ib_data5(v2)
-+ ib_data6(v2)
-+ ib_data7(v2)
-+
-+ ib_data0(v3)
-+ ib_data1(v3)
-+ ib_data2(v3)
-+ ib_data3(v3)
-+ ib_data4(v3)
-+ ib_data5(v3)
-+ ib_data6(v3)
-+ ib_data7(v3)
-+
-+ .align ALIGN32BYTES
-+aes_il_tab:
-+ ib_data0(w0)
-+ ib_data1(w0)
-+ ib_data2(w0)
-+ ib_data3(w0)
-+ ib_data4(w0)
-+ ib_data5(w0)
-+ ib_data6(w0)
-+ ib_data7(w0)
-+
-+ ib_data0(w1)
-+ ib_data1(w1)
-+ ib_data2(w1)
-+ ib_data3(w1)
-+ ib_data4(w1)
-+ ib_data5(w1)
-+ ib_data6(w1)
-+ ib_data7(w1)
-+
-+ ib_data0(w2)
-+ ib_data1(w2)
-+ ib_data2(w2)
-+ ib_data3(w2)
-+ ib_data4(w2)
-+ ib_data5(w2)
-+ ib_data6(w2)
-+ ib_data7(w2)
-+
-+ ib_data0(w3)
-+ ib_data1(w3)
-+ ib_data2(w3)
-+ ib_data3(w3)
-+ ib_data4(w3)
-+ ib_data5(w3)
-+ ib_data6(w3)
-+ ib_data7(w3)
-+
-+// The inverse mix column tables
-+
-+ .align ALIGN32BYTES
-+aes_im_tab:
-+ im_data0(v0)
-+ im_data1(v0)
-+ im_data2(v0)
-+ im_data3(v0)
-+ im_data4(v0)
-+ im_data5(v0)
-+ im_data6(v0)
-+ im_data7(v0)
-+
-+ im_data0(v1)
-+ im_data1(v1)
-+ im_data2(v1)
-+ im_data3(v1)
-+ im_data4(v1)
-+ im_data5(v1)
-+ im_data6(v1)
-+ im_data7(v1)
-+
-+ im_data0(v2)
-+ im_data1(v2)
-+ im_data2(v2)
-+ im_data3(v2)
-+ im_data4(v2)
-+ im_data5(v2)
-+ im_data6(v2)
-+ im_data7(v2)
-+
-+ im_data0(v3)
-+ im_data1(v3)
-+ im_data2(v3)
-+ im_data3(v3)
-+ im_data4(v3)
-+ im_data5(v3)
-+ im_data6(v3)
-+ im_data7(v3)
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/aes/aes.c Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,1427 @@
-+// I retain copyright in this code but I encourage its free use provided
-+// that I don't carry any responsibility for the results. I am especially
-+// happy to see it used in free and open source software. If you do use
-+// it I would appreciate an acknowledgement of its origin in the code or
-+// the product that results and I would also appreciate knowing a little
-+// about the use to which it is being put. I am grateful to Frank Yellin
-+// for some ideas that are used in this implementation.
-+//
-+// Dr B. R. Gladman 6th April 2001.
-+//
-+// This is an implementation of the AES encryption algorithm (Rijndael)
-+// designed by Joan Daemen and Vincent Rijmen. This version is designed
-+// to provide both fixed and dynamic block and key lengths and can also
-+// run with either big or little endian internal byte order (see aes.h).
-+// It inputs block and key lengths in bytes with the legal values being
-+// 16, 24 and 32.
-+
-+/*
-+ * Modified by Jari Ruusu, May 1 2001
-+ * - Fixed some compile warnings, code was ok but gcc warned anyway.
-+ * - Changed basic types: byte -> unsigned char, word -> u_int32_t
-+ * - Major name space cleanup: Names visible to outside now begin
-+ * with "aes_" or "AES_". A lot of stuff moved from aes.h to aes.c
-+ * - Removed C++ and DLL support as part of name space cleanup.
-+ * - Eliminated unnecessary recomputation of tables. (actual bug fix)
-+ * - Merged precomputed constant tables to aes.c file.
-+ * - Removed data alignment restrictions for portability reasons.
-+ * - Made block and key lengths accept bit count (128/192/256)
-+ * as well byte count (16/24/32).
-+ * - Removed all error checks. This change also eliminated the need
-+ * to preinitialize the context struct to zero.
-+ * - Removed some totally unused constants.
-+ */
-+
-+#include "klips-crypto/aes.h"
-+
-+#ifdef OCF_ASSIST
-+#include "klips-crypto/ocf_assist.h"
-+#endif
-+
-+// CONFIGURATION OPTIONS (see also aes.h)
-+//
-+// 1. Define UNROLL for full loop unrolling in encryption and decryption.
-+// 2. Define PARTIAL_UNROLL to unroll two loops in encryption and decryption.
-+// 3. Define FIXED_TABLES for compiled rather than dynamic tables.
-+// 4. Define FF_TABLES to use tables for field multiplies and inverses.
-+// Do not enable this without understanding stack space requirements.
-+// 5. Define ARRAYS to use arrays to hold the local state block. If this
-+// is not defined, individually declared 32-bit words are used.
-+// 6. Define FAST_VARIABLE if a high speed variable block implementation
-+// is needed (essentially three separate fixed block size code sequences)
-+// 7. Define either ONE_TABLE or FOUR_TABLES for a fast table driven
-+// version using 1 table (2 kbytes of table space) or 4 tables (8
-+// kbytes of table space) for higher speed.
-+// 8. Define either ONE_LR_TABLE or FOUR_LR_TABLES for a further speed
-+// increase by using tables for the last rounds but with more table
-+// space (2 or 8 kbytes extra).
-+// 9. If neither ONE_TABLE nor FOUR_TABLES is defined, a compact but
-+// slower version is provided.
-+// 10. If fast decryption key scheduling is needed define ONE_IM_TABLE
-+// or FOUR_IM_TABLES for higher speed (2 or 8 kbytes extra).
-+
-+#define UNROLL
-+//#define PARTIAL_UNROLL
-+
-+#define FIXED_TABLES
-+//#define FF_TABLES
-+//#define ARRAYS
-+#define FAST_VARIABLE
-+
-+//#define ONE_TABLE
-+#define FOUR_TABLES
-+
-+//#define ONE_LR_TABLE
-+#define FOUR_LR_TABLES
-+
-+//#define ONE_IM_TABLE
-+#define FOUR_IM_TABLES
-+
-+#if defined(UNROLL) && defined (PARTIAL_UNROLL)
-+#error both UNROLL and PARTIAL_UNROLL are defined
-+#endif
-+
-+#if defined(ONE_TABLE) && defined (FOUR_TABLES)
-+#error both ONE_TABLE and FOUR_TABLES are defined
-+#endif
-+
-+#if defined(ONE_LR_TABLE) && defined (FOUR_LR_TABLES)
-+#error both ONE_LR_TABLE and FOUR_LR_TABLES are defined
-+#endif
-+
-+#if defined(ONE_IM_TABLE) && defined (FOUR_IM_TABLES)
-+#error both ONE_IM_TABLE and FOUR_IM_TABLES are defined
-+#endif
-+
-+#if defined(AES_BLOCK_SIZE) && AES_BLOCK_SIZE != 16 && AES_BLOCK_SIZE != 24 && AES_BLOCK_SIZE != 32
-+#error an illegal block size has been specified
-+#endif
-+
-+// upr(x,n): rotates bytes within words by n positions, moving bytes
-+// to higher index positions with wrap around into low positions
-+// ups(x,n): moves bytes by n positions to higher index positions in
-+// words but without wrap around
-+// bval(x,n): extracts a byte from a word
-+
-+#define upr(x,n) (((x) << 8 * (n)) | ((x) >> (32 - 8 * (n))))
-+#define ups(x,n) ((x) << 8 * (n))
-+#define bval(x,n) ((unsigned char)((x) >> 8 * (n)))
-+#define bytes2word(b0, b1, b2, b3) \
-+ ((u_int32_t)(b3) << 24 | (u_int32_t)(b2) << 16 | (u_int32_t)(b1) << 8 | (b0))
-+
-+
-+/* little endian processor without data alignment restrictions: AES_LE_OK */
-+/* original code: i386 */
-+#if defined(i386) || defined(_I386) || defined(__i386__) || defined(__i386)
-+#define AES_LE_OK 1
-+/* added (tested): alpha --jjo */
-+#elif defined(__alpha__)|| defined (__alpha)
-+#define AES_LE_OK 1
-+/* added (tested): ia64 --jjo */
-+#elif defined(__ia64__)|| defined (__ia64)
-+#define AES_LE_OK 1
-+#endif
-+
-+#ifdef AES_LE_OK
-+/* little endian processor without data alignment restrictions */
-+#define word_in(x) *(u_int32_t*)(x)
-+#define const_word_in(x) *(const u_int32_t*)(x)
-+#define word_out(x,v) *(u_int32_t*)(x) = (v)
-+#define const_word_out(x,v) *(const u_int32_t*)(x) = (v)
-+#else
-+/* slower but generic big endian or with data alignment restrictions */
-+/* some additional "const" touches to stop "gcc -Wcast-qual" complains --jjo */
-+#define word_in(x) ((u_int32_t)(((unsigned char *)(x))[0])|((u_int32_t)(((unsigned char *)(x))[1])<<8)|((u_int32_t)(((unsigned char *)(x))[2])<<16)|((u_int32_t)(((unsigned char *)(x))[3])<<24))
-+#define const_word_in(x) ((const u_int32_t)(((const unsigned char *)(x))[0])|((const u_int32_t)(((const unsigned char *)(x))[1])<<8)|((const u_int32_t)(((const unsigned char *)(x))[2])<<16)|((const u_int32_t)(((const unsigned char *)(x))[3])<<24))
-+#define word_out(x,v) ((unsigned char *)(x))[0]=(v),((unsigned char *)(x))[1]=((v)>>8),((unsigned char *)(x))[2]=((v)>>16),((unsigned char *)(x))[3]=((v)>>24)
-+#define const_word_out(x,v) ((const unsigned char *)(x))[0]=(v),((const unsigned char *)(x))[1]=((v)>>8),((const unsigned char *)(x))[2]=((v)>>16),((const unsigned char *)(x))[3]=((v)>>24)
-+#endif
-+
-+// Disable at least some poor combinations of options
-+
-+#if !defined(ONE_TABLE) && !defined(FOUR_TABLES)
-+#define FIXED_TABLES
-+#undef UNROLL
-+#undef ONE_LR_TABLE
-+#undef FOUR_LR_TABLES
-+#undef ONE_IM_TABLE
-+#undef FOUR_IM_TABLES
-+#elif !defined(FOUR_TABLES)
-+#ifdef FOUR_LR_TABLES
-+#undef FOUR_LR_TABLES
-+#define ONE_LR_TABLE
-+#endif
-+#ifdef FOUR_IM_TABLES
-+#undef FOUR_IM_TABLES
-+#define ONE_IM_TABLE
-+#endif
-+#elif !defined(AES_BLOCK_SIZE)
-+#if defined(UNROLL)
-+#define PARTIAL_UNROLL
-+#undef UNROLL
-+#endif
-+#endif
-+
-+// the finite field modular polynomial and elements
-+
-+#define ff_poly 0x011b
-+#define ff_hi 0x80
-+
-+// multiply four bytes in GF(2^8) by 'x' {02} in parallel
-+
-+#define m1 0x80808080
-+#define m2 0x7f7f7f7f
-+#define m3 0x0000001b
-+#define FFmulX(x) ((((x) & m2) << 1) ^ ((((x) & m1) >> 7) * m3))
-+
-+// The following defines provide alternative definitions of FFmulX that might
-+// give improved performance if a fast 32-bit multiply is not available. Note
-+// that a temporary variable u needs to be defined where FFmulX is used.
-+
-+// #define FFmulX(x) (u = (x) & m1, u |= (u >> 1), ((x) & m2) << 1) ^ ((u >> 3) | (u >> 6))
-+// #define m4 0x1b1b1b1b
-+// #define FFmulX(x) (u = (x) & m1, ((x) & m2) << 1) ^ ((u - (u >> 7)) & m4)
-+
-+// perform column mix operation on four bytes in parallel
-+
-+#define fwd_mcol(x) (f2 = FFmulX(x), f2 ^ upr(x ^ f2,3) ^ upr(x,2) ^ upr(x,1))
-+
-+#if defined(FIXED_TABLES)
-+
-+// the S-Box table
-+
-+static const unsigned char s_box[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
-+};
-+
-+// the inverse S-Box table
-+
-+static const unsigned char inv_s_box[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
-+};
-+
-+#define w0(p) 0x000000##p
-+
-+// Number of elements required in this table for different
-+// block and key lengths is:
-+//
-+// Nk = 4 6 8
-+// ----------
-+// Nb = 4 | 10 8 7
-+// 6 | 19 12 11
-+// 8 | 29 19 14
-+//
-+// this table can be a table of bytes if the key schedule
-+// code is adjusted accordingly
-+
-+static const u_int32_t rcon_tab[29] =
-+{
-+ w0(01), w0(02), w0(04), w0(08),
-+ w0(10), w0(20), w0(40), w0(80),
-+ w0(1b), w0(36), w0(6c), w0(d8),
-+ w0(ab), w0(4d), w0(9a), w0(2f),
-+ w0(5e), w0(bc), w0(63), w0(c6),
-+ w0(97), w0(35), w0(6a), w0(d4),
-+ w0(b3), w0(7d), w0(fa), w0(ef),
-+ w0(c5)
-+};
-+
-+#undef w0
-+
-+#define r0(p,q,r,s) 0x##p##q##r##s
-+#define r1(p,q,r,s) 0x##q##r##s##p
-+#define r2(p,q,r,s) 0x##r##s##p##q
-+#define r3(p,q,r,s) 0x##s##p##q##r
-+#define w0(p) 0x000000##p
-+#define w1(p) 0x0000##p##00
-+#define w2(p) 0x00##p##0000
-+#define w3(p) 0x##p##000000
-+
-+#if defined(FIXED_TABLES) && (defined(ONE_TABLE) || defined(FOUR_TABLES))
-+
-+// data for forward tables (other than last round)
-+
-+#define f_table \
-+ r(a5,63,63,c6), r(84,7c,7c,f8), r(99,77,77,ee), r(8d,7b,7b,f6),\
-+ r(0d,f2,f2,ff), r(bd,6b,6b,d6), r(b1,6f,6f,de), r(54,c5,c5,91),\
-+ r(50,30,30,60), r(03,01,01,02), r(a9,67,67,ce), r(7d,2b,2b,56),\
-+ r(19,fe,fe,e7), r(62,d7,d7,b5), r(e6,ab,ab,4d), r(9a,76,76,ec),\
-+ r(45,ca,ca,8f), r(9d,82,82,1f), r(40,c9,c9,89), r(87,7d,7d,fa),\
-+ r(15,fa,fa,ef), r(eb,59,59,b2), r(c9,47,47,8e), r(0b,f0,f0,fb),\
-+ r(ec,ad,ad,41), r(67,d4,d4,b3), r(fd,a2,a2,5f), r(ea,af,af,45),\
-+ r(bf,9c,9c,23), r(f7,a4,a4,53), r(96,72,72,e4), r(5b,c0,c0,9b),\
-+ r(c2,b7,b7,75), r(1c,fd,fd,e1), r(ae,93,93,3d), r(6a,26,26,4c),\
-+ r(5a,36,36,6c), r(41,3f,3f,7e), r(02,f7,f7,f5), r(4f,cc,cc,83),\
-+ r(5c,34,34,68), r(f4,a5,a5,51), r(34,e5,e5,d1), r(08,f1,f1,f9),\
-+ r(93,71,71,e2), r(73,d8,d8,ab), r(53,31,31,62), r(3f,15,15,2a),\
-+ r(0c,04,04,08), r(52,c7,c7,95), r(65,23,23,46), r(5e,c3,c3,9d),\
-+ r(28,18,18,30), r(a1,96,96,37), r(0f,05,05,0a), r(b5,9a,9a,2f),\
-+ r(09,07,07,0e), r(36,12,12,24), r(9b,80,80,1b), r(3d,e2,e2,df),\
-+ r(26,eb,eb,cd), r(69,27,27,4e), r(cd,b2,b2,7f), r(9f,75,75,ea),\
-+ r(1b,09,09,12), r(9e,83,83,1d), r(74,2c,2c,58), r(2e,1a,1a,34),\
-+ r(2d,1b,1b,36), r(b2,6e,6e,dc), r(ee,5a,5a,b4), r(fb,a0,a0,5b),\
-+ r(f6,52,52,a4), r(4d,3b,3b,76), r(61,d6,d6,b7), r(ce,b3,b3,7d),\
-+ r(7b,29,29,52), r(3e,e3,e3,dd), r(71,2f,2f,5e), r(97,84,84,13),\
-+ r(f5,53,53,a6), r(68,d1,d1,b9), r(00,00,00,00), r(2c,ed,ed,c1),\
-+ r(60,20,20,40), r(1f,fc,fc,e3), r(c8,b1,b1,79), r(ed,5b,5b,b6),\
-+ r(be,6a,6a,d4), r(46,cb,cb,8d), r(d9,be,be,67), r(4b,39,39,72),\
-+ r(de,4a,4a,94), r(d4,4c,4c,98), r(e8,58,58,b0), r(4a,cf,cf,85),\
-+ r(6b,d0,d0,bb), r(2a,ef,ef,c5), r(e5,aa,aa,4f), r(16,fb,fb,ed),\
-+ r(c5,43,43,86), r(d7,4d,4d,9a), r(55,33,33,66), r(94,85,85,11),\
-+ r(cf,45,45,8a), r(10,f9,f9,e9), r(06,02,02,04), r(81,7f,7f,fe),\
-+ r(f0,50,50,a0), r(44,3c,3c,78), r(ba,9f,9f,25), r(e3,a8,a8,4b),\
-+ r(f3,51,51,a2), r(fe,a3,a3,5d), r(c0,40,40,80), r(8a,8f,8f,05),\
-+ r(ad,92,92,3f), r(bc,9d,9d,21), r(48,38,38,70), r(04,f5,f5,f1),\
-+ r(df,bc,bc,63), r(c1,b6,b6,77), r(75,da,da,af), r(63,21,21,42),\
-+ r(30,10,10,20), r(1a,ff,ff,e5), r(0e,f3,f3,fd), r(6d,d2,d2,bf),\
-+ r(4c,cd,cd,81), r(14,0c,0c,18), r(35,13,13,26), r(2f,ec,ec,c3),\
-+ r(e1,5f,5f,be), r(a2,97,97,35), r(cc,44,44,88), r(39,17,17,2e),\
-+ r(57,c4,c4,93), r(f2,a7,a7,55), r(82,7e,7e,fc), r(47,3d,3d,7a),\
-+ r(ac,64,64,c8), r(e7,5d,5d,ba), r(2b,19,19,32), r(95,73,73,e6),\
-+ r(a0,60,60,c0), r(98,81,81,19), r(d1,4f,4f,9e), r(7f,dc,dc,a3),\
-+ r(66,22,22,44), r(7e,2a,2a,54), r(ab,90,90,3b), r(83,88,88,0b),\
-+ r(ca,46,46,8c), r(29,ee,ee,c7), r(d3,b8,b8,6b), r(3c,14,14,28),\
-+ r(79,de,de,a7), r(e2,5e,5e,bc), r(1d,0b,0b,16), r(76,db,db,ad),\
-+ r(3b,e0,e0,db), r(56,32,32,64), r(4e,3a,3a,74), r(1e,0a,0a,14),\
-+ r(db,49,49,92), r(0a,06,06,0c), r(6c,24,24,48), r(e4,5c,5c,b8),\
-+ r(5d,c2,c2,9f), r(6e,d3,d3,bd), r(ef,ac,ac,43), r(a6,62,62,c4),\
-+ r(a8,91,91,39), r(a4,95,95,31), r(37,e4,e4,d3), r(8b,79,79,f2),\
-+ r(32,e7,e7,d5), r(43,c8,c8,8b), r(59,37,37,6e), r(b7,6d,6d,da),\
-+ r(8c,8d,8d,01), r(64,d5,d5,b1), r(d2,4e,4e,9c), r(e0,a9,a9,49),\
-+ r(b4,6c,6c,d8), r(fa,56,56,ac), r(07,f4,f4,f3), r(25,ea,ea,cf),\
-+ r(af,65,65,ca), r(8e,7a,7a,f4), r(e9,ae,ae,47), r(18,08,08,10),\
-+ r(d5,ba,ba,6f), r(88,78,78,f0), r(6f,25,25,4a), r(72,2e,2e,5c),\
-+ r(24,1c,1c,38), r(f1,a6,a6,57), r(c7,b4,b4,73), r(51,c6,c6,97),\
-+ r(23,e8,e8,cb), r(7c,dd,dd,a1), r(9c,74,74,e8), r(21,1f,1f,3e),\
-+ r(dd,4b,4b,96), r(dc,bd,bd,61), r(86,8b,8b,0d), r(85,8a,8a,0f),\
-+ r(90,70,70,e0), r(42,3e,3e,7c), r(c4,b5,b5,71), r(aa,66,66,cc),\
-+ r(d8,48,48,90), r(05,03,03,06), r(01,f6,f6,f7), r(12,0e,0e,1c),\
-+ r(a3,61,61,c2), r(5f,35,35,6a), r(f9,57,57,ae), r(d0,b9,b9,69),\
-+ r(91,86,86,17), r(58,c1,c1,99), r(27,1d,1d,3a), r(b9,9e,9e,27),\
-+ r(38,e1,e1,d9), r(13,f8,f8,eb), r(b3,98,98,2b), r(33,11,11,22),\
-+ r(bb,69,69,d2), r(70,d9,d9,a9), r(89,8e,8e,07), r(a7,94,94,33),\
-+ r(b6,9b,9b,2d), r(22,1e,1e,3c), r(92,87,87,15), r(20,e9,e9,c9),\
-+ r(49,ce,ce,87), r(ff,55,55,aa), r(78,28,28,50), r(7a,df,df,a5),\
-+ r(8f,8c,8c,03), r(f8,a1,a1,59), r(80,89,89,09), r(17,0d,0d,1a),\
-+ r(da,bf,bf,65), r(31,e6,e6,d7), r(c6,42,42,84), r(b8,68,68,d0),\
-+ r(c3,41,41,82), r(b0,99,99,29), r(77,2d,2d,5a), r(11,0f,0f,1e),\
-+ r(cb,b0,b0,7b), r(fc,54,54,a8), r(d6,bb,bb,6d), r(3a,16,16,2c)
-+
-+// data for inverse tables (other than last round)
-+
-+#define i_table \
-+ r(50,a7,f4,51), r(53,65,41,7e), r(c3,a4,17,1a), r(96,5e,27,3a),\
-+ r(cb,6b,ab,3b), r(f1,45,9d,1f), r(ab,58,fa,ac), r(93,03,e3,4b),\
-+ r(55,fa,30,20), r(f6,6d,76,ad), r(91,76,cc,88), r(25,4c,02,f5),\
-+ r(fc,d7,e5,4f), r(d7,cb,2a,c5), r(80,44,35,26), r(8f,a3,62,b5),\
-+ r(49,5a,b1,de), r(67,1b,ba,25), r(98,0e,ea,45), r(e1,c0,fe,5d),\
-+ r(02,75,2f,c3), r(12,f0,4c,81), r(a3,97,46,8d), r(c6,f9,d3,6b),\
-+ r(e7,5f,8f,03), r(95,9c,92,15), r(eb,7a,6d,bf), r(da,59,52,95),\
-+ r(2d,83,be,d4), r(d3,21,74,58), r(29,69,e0,49), r(44,c8,c9,8e),\
-+ r(6a,89,c2,75), r(78,79,8e,f4), r(6b,3e,58,99), r(dd,71,b9,27),\
-+ r(b6,4f,e1,be), r(17,ad,88,f0), r(66,ac,20,c9), r(b4,3a,ce,7d),\
-+ r(18,4a,df,63), r(82,31,1a,e5), r(60,33,51,97), r(45,7f,53,62),\
-+ r(e0,77,64,b1), r(84,ae,6b,bb), r(1c,a0,81,fe), r(94,2b,08,f9),\
-+ r(58,68,48,70), r(19,fd,45,8f), r(87,6c,de,94), r(b7,f8,7b,52),\
-+ r(23,d3,73,ab), r(e2,02,4b,72), r(57,8f,1f,e3), r(2a,ab,55,66),\
-+ r(07,28,eb,b2), r(03,c2,b5,2f), r(9a,7b,c5,86), r(a5,08,37,d3),\
-+ r(f2,87,28,30), r(b2,a5,bf,23), r(ba,6a,03,02), r(5c,82,16,ed),\
-+ r(2b,1c,cf,8a), r(92,b4,79,a7), r(f0,f2,07,f3), r(a1,e2,69,4e),\
-+ r(cd,f4,da,65), r(d5,be,05,06), r(1f,62,34,d1), r(8a,fe,a6,c4),\
-+ r(9d,53,2e,34), r(a0,55,f3,a2), r(32,e1,8a,05), r(75,eb,f6,a4),\
-+ r(39,ec,83,0b), r(aa,ef,60,40), r(06,9f,71,5e), r(51,10,6e,bd),\
-+ r(f9,8a,21,3e), r(3d,06,dd,96), r(ae,05,3e,dd), r(46,bd,e6,4d),\
-+ r(b5,8d,54,91), r(05,5d,c4,71), r(6f,d4,06,04), r(ff,15,50,60),\
-+ r(24,fb,98,19), r(97,e9,bd,d6), r(cc,43,40,89), r(77,9e,d9,67),\
-+ r(bd,42,e8,b0), r(88,8b,89,07), r(38,5b,19,e7), r(db,ee,c8,79),\
-+ r(47,0a,7c,a1), r(e9,0f,42,7c), r(c9,1e,84,f8), r(00,00,00,00),\
-+ r(83,86,80,09), r(48,ed,2b,32), r(ac,70,11,1e), r(4e,72,5a,6c),\
-+ r(fb,ff,0e,fd), r(56,38,85,0f), r(1e,d5,ae,3d), r(27,39,2d,36),\
-+ r(64,d9,0f,0a), r(21,a6,5c,68), r(d1,54,5b,9b), r(3a,2e,36,24),\
-+ r(b1,67,0a,0c), r(0f,e7,57,93), r(d2,96,ee,b4), r(9e,91,9b,1b),\
-+ r(4f,c5,c0,80), r(a2,20,dc,61), r(69,4b,77,5a), r(16,1a,12,1c),\
-+ r(0a,ba,93,e2), r(e5,2a,a0,c0), r(43,e0,22,3c), r(1d,17,1b,12),\
-+ r(0b,0d,09,0e), r(ad,c7,8b,f2), r(b9,a8,b6,2d), r(c8,a9,1e,14),\
-+ r(85,19,f1,57), r(4c,07,75,af), r(bb,dd,99,ee), r(fd,60,7f,a3),\
-+ r(9f,26,01,f7), r(bc,f5,72,5c), r(c5,3b,66,44), r(34,7e,fb,5b),\
-+ r(76,29,43,8b), r(dc,c6,23,cb), r(68,fc,ed,b6), r(63,f1,e4,b8),\
-+ r(ca,dc,31,d7), r(10,85,63,42), r(40,22,97,13), r(20,11,c6,84),\
-+ r(7d,24,4a,85), r(f8,3d,bb,d2), r(11,32,f9,ae), r(6d,a1,29,c7),\
-+ r(4b,2f,9e,1d), r(f3,30,b2,dc), r(ec,52,86,0d), r(d0,e3,c1,77),\
-+ r(6c,16,b3,2b), r(99,b9,70,a9), r(fa,48,94,11), r(22,64,e9,47),\
-+ r(c4,8c,fc,a8), r(1a,3f,f0,a0), r(d8,2c,7d,56), r(ef,90,33,22),\
-+ r(c7,4e,49,87), r(c1,d1,38,d9), r(fe,a2,ca,8c), r(36,0b,d4,98),\
-+ r(cf,81,f5,a6), r(28,de,7a,a5), r(26,8e,b7,da), r(a4,bf,ad,3f),\
-+ r(e4,9d,3a,2c), r(0d,92,78,50), r(9b,cc,5f,6a), r(62,46,7e,54),\
-+ r(c2,13,8d,f6), r(e8,b8,d8,90), r(5e,f7,39,2e), r(f5,af,c3,82),\
-+ r(be,80,5d,9f), r(7c,93,d0,69), r(a9,2d,d5,6f), r(b3,12,25,cf),\
-+ r(3b,99,ac,c8), r(a7,7d,18,10), r(6e,63,9c,e8), r(7b,bb,3b,db),\
-+ r(09,78,26,cd), r(f4,18,59,6e), r(01,b7,9a,ec), r(a8,9a,4f,83),\
-+ r(65,6e,95,e6), r(7e,e6,ff,aa), r(08,cf,bc,21), r(e6,e8,15,ef),\
-+ r(d9,9b,e7,ba), r(ce,36,6f,4a), r(d4,09,9f,ea), r(d6,7c,b0,29),\
-+ r(af,b2,a4,31), r(31,23,3f,2a), r(30,94,a5,c6), r(c0,66,a2,35),\
-+ r(37,bc,4e,74), r(a6,ca,82,fc), r(b0,d0,90,e0), r(15,d8,a7,33),\
-+ r(4a,98,04,f1), r(f7,da,ec,41), r(0e,50,cd,7f), r(2f,f6,91,17),\
-+ r(8d,d6,4d,76), r(4d,b0,ef,43), r(54,4d,aa,cc), r(df,04,96,e4),\
-+ r(e3,b5,d1,9e), r(1b,88,6a,4c), r(b8,1f,2c,c1), r(7f,51,65,46),\
-+ r(04,ea,5e,9d), r(5d,35,8c,01), r(73,74,87,fa), r(2e,41,0b,fb),\
-+ r(5a,1d,67,b3), r(52,d2,db,92), r(33,56,10,e9), r(13,47,d6,6d),\
-+ r(8c,61,d7,9a), r(7a,0c,a1,37), r(8e,14,f8,59), r(89,3c,13,eb),\
-+ r(ee,27,a9,ce), r(35,c9,61,b7), r(ed,e5,1c,e1), r(3c,b1,47,7a),\
-+ r(59,df,d2,9c), r(3f,73,f2,55), r(79,ce,14,18), r(bf,37,c7,73),\
-+ r(ea,cd,f7,53), r(5b,aa,fd,5f), r(14,6f,3d,df), r(86,db,44,78),\
-+ r(81,f3,af,ca), r(3e,c4,68,b9), r(2c,34,24,38), r(5f,40,a3,c2),\
-+ r(72,c3,1d,16), r(0c,25,e2,bc), r(8b,49,3c,28), r(41,95,0d,ff),\
-+ r(71,01,a8,39), r(de,b3,0c,08), r(9c,e4,b4,d8), r(90,c1,56,64),\
-+ r(61,84,cb,7b), r(70,b6,32,d5), r(74,5c,6c,48), r(42,57,b8,d0)
-+
-+// generate the required tables in the desired endian format
-+
-+#undef r
-+#define r r0
-+
-+#if defined(ONE_TABLE)
-+static const u_int32_t ft_tab[256] =
-+ { f_table };
-+#elif defined(FOUR_TABLES)
-+static const u_int32_t ft_tab[4][256] =
-+{ { f_table },
-+#undef r
-+#define r r1
-+ { f_table },
-+#undef r
-+#define r r2
-+ { f_table },
-+#undef r
-+#define r r3
-+ { f_table }
-+};
-+#endif
-+
-+#undef r
-+#define r r0
-+#if defined(ONE_TABLE)
-+static const u_int32_t it_tab[256] =
-+ { i_table };
-+#elif defined(FOUR_TABLES)
-+static const u_int32_t it_tab[4][256] =
-+{ { i_table },
-+#undef r
-+#define r r1
-+ { i_table },
-+#undef r
-+#define r r2
-+ { i_table },
-+#undef r
-+#define r r3
-+ { i_table }
-+};
-+#endif
-+
-+#endif
-+
-+#if defined(FIXED_TABLES) && (defined(ONE_LR_TABLE) || defined(FOUR_LR_TABLES))
-+
-+// data for inverse tables (last round)
-+
-+#define li_table \
-+ w(52), w(09), w(6a), w(d5), w(30), w(36), w(a5), w(38),\
-+ w(bf), w(40), w(a3), w(9e), w(81), w(f3), w(d7), w(fb),\
-+ w(7c), w(e3), w(39), w(82), w(9b), w(2f), w(ff), w(87),\
-+ w(34), w(8e), w(43), w(44), w(c4), w(de), w(e9), w(cb),\
-+ w(54), w(7b), w(94), w(32), w(a6), w(c2), w(23), w(3d),\
-+ w(ee), w(4c), w(95), w(0b), w(42), w(fa), w(c3), w(4e),\
-+ w(08), w(2e), w(a1), w(66), w(28), w(d9), w(24), w(b2),\
-+ w(76), w(5b), w(a2), w(49), w(6d), w(8b), w(d1), w(25),\
-+ w(72), w(f8), w(f6), w(64), w(86), w(68), w(98), w(16),\
-+ w(d4), w(a4), w(5c), w(cc), w(5d), w(65), w(b6), w(92),\
-+ w(6c), w(70), w(48), w(50), w(fd), w(ed), w(b9), w(da),\
-+ w(5e), w(15), w(46), w(57), w(a7), w(8d), w(9d), w(84),\
-+ w(90), w(d8), w(ab), w(00), w(8c), w(bc), w(d3), w(0a),\
-+ w(f7), w(e4), w(58), w(05), w(b8), w(b3), w(45), w(06),\
-+ w(d0), w(2c), w(1e), w(8f), w(ca), w(3f), w(0f), w(02),\
-+ w(c1), w(af), w(bd), w(03), w(01), w(13), w(8a), w(6b),\
-+ w(3a), w(91), w(11), w(41), w(4f), w(67), w(dc), w(ea),\
-+ w(97), w(f2), w(cf), w(ce), w(f0), w(b4), w(e6), w(73),\
-+ w(96), w(ac), w(74), w(22), w(e7), w(ad), w(35), w(85),\
-+ w(e2), w(f9), w(37), w(e8), w(1c), w(75), w(df), w(6e),\
-+ w(47), w(f1), w(1a), w(71), w(1d), w(29), w(c5), w(89),\
-+ w(6f), w(b7), w(62), w(0e), w(aa), w(18), w(be), w(1b),\
-+ w(fc), w(56), w(3e), w(4b), w(c6), w(d2), w(79), w(20),\
-+ w(9a), w(db), w(c0), w(fe), w(78), w(cd), w(5a), w(f4),\
-+ w(1f), w(dd), w(a8), w(33), w(88), w(07), w(c7), w(31),\
-+ w(b1), w(12), w(10), w(59), w(27), w(80), w(ec), w(5f),\
-+ w(60), w(51), w(7f), w(a9), w(19), w(b5), w(4a), w(0d),\
-+ w(2d), w(e5), w(7a), w(9f), w(93), w(c9), w(9c), w(ef),\
-+ w(a0), w(e0), w(3b), w(4d), w(ae), w(2a), w(f5), w(b0),\
-+ w(c8), w(eb), w(bb), w(3c), w(83), w(53), w(99), w(61),\
-+ w(17), w(2b), w(04), w(7e), w(ba), w(77), w(d6), w(26),\
-+ w(e1), w(69), w(14), w(63), w(55), w(21), w(0c), w(7d),
-+
-+// generate the required tables in the desired endian format
-+
-+#undef r
-+#define r(p,q,r,s) w0(q)
-+#if defined(ONE_LR_TABLE)
-+static const u_int32_t fl_tab[256] =
-+ { f_table };
-+#elif defined(FOUR_LR_TABLES)
-+static const u_int32_t fl_tab[4][256] =
-+{ { f_table },
-+#undef r
-+#define r(p,q,r,s) w1(q)
-+ { f_table },
-+#undef r
-+#define r(p,q,r,s) w2(q)
-+ { f_table },
-+#undef r
-+#define r(p,q,r,s) w3(q)
-+ { f_table }
-+};
-+#endif
-+
-+#undef w
-+#define w w0
-+#if defined(ONE_LR_TABLE)
-+static const u_int32_t il_tab[256] =
-+ { li_table };
-+#elif defined(FOUR_LR_TABLES)
-+static const u_int32_t il_tab[4][256] =
-+{ { li_table },
-+#undef w
-+#define w w1
-+ { li_table },
-+#undef w
-+#define w w2
-+ { li_table },
-+#undef w
-+#define w w3
-+ { li_table }
-+};
-+#endif
-+
-+#endif
-+
-+#if defined(FIXED_TABLES) && (defined(ONE_IM_TABLE) || defined(FOUR_IM_TABLES))
-+
-+#define m_table \
-+ r(00,00,00,00), r(0b,0d,09,0e), r(16,1a,12,1c), r(1d,17,1b,12),\
-+ r(2c,34,24,38), r(27,39,2d,36), r(3a,2e,36,24), r(31,23,3f,2a),\
-+ r(58,68,48,70), r(53,65,41,7e), r(4e,72,5a,6c), r(45,7f,53,62),\
-+ r(74,5c,6c,48), r(7f,51,65,46), r(62,46,7e,54), r(69,4b,77,5a),\
-+ r(b0,d0,90,e0), r(bb,dd,99,ee), r(a6,ca,82,fc), r(ad,c7,8b,f2),\
-+ r(9c,e4,b4,d8), r(97,e9,bd,d6), r(8a,fe,a6,c4), r(81,f3,af,ca),\
-+ r(e8,b8,d8,90), r(e3,b5,d1,9e), r(fe,a2,ca,8c), r(f5,af,c3,82),\
-+ r(c4,8c,fc,a8), r(cf,81,f5,a6), r(d2,96,ee,b4), r(d9,9b,e7,ba),\
-+ r(7b,bb,3b,db), r(70,b6,32,d5), r(6d,a1,29,c7), r(66,ac,20,c9),\
-+ r(57,8f,1f,e3), r(5c,82,16,ed), r(41,95,0d,ff), r(4a,98,04,f1),\
-+ r(23,d3,73,ab), r(28,de,7a,a5), r(35,c9,61,b7), r(3e,c4,68,b9),\
-+ r(0f,e7,57,93), r(04,ea,5e,9d), r(19,fd,45,8f), r(12,f0,4c,81),\
-+ r(cb,6b,ab,3b), r(c0,66,a2,35), r(dd,71,b9,27), r(d6,7c,b0,29),\
-+ r(e7,5f,8f,03), r(ec,52,86,0d), r(f1,45,9d,1f), r(fa,48,94,11),\
-+ r(93,03,e3,4b), r(98,0e,ea,45), r(85,19,f1,57), r(8e,14,f8,59),\
-+ r(bf,37,c7,73), r(b4,3a,ce,7d), r(a9,2d,d5,6f), r(a2,20,dc,61),\
-+ r(f6,6d,76,ad), r(fd,60,7f,a3), r(e0,77,64,b1), r(eb,7a,6d,bf),\
-+ r(da,59,52,95), r(d1,54,5b,9b), r(cc,43,40,89), r(c7,4e,49,87),\
-+ r(ae,05,3e,dd), r(a5,08,37,d3), r(b8,1f,2c,c1), r(b3,12,25,cf),\
-+ r(82,31,1a,e5), r(89,3c,13,eb), r(94,2b,08,f9), r(9f,26,01,f7),\
-+ r(46,bd,e6,4d), r(4d,b0,ef,43), r(50,a7,f4,51), r(5b,aa,fd,5f),\
-+ r(6a,89,c2,75), r(61,84,cb,7b), r(7c,93,d0,69), r(77,9e,d9,67),\
-+ r(1e,d5,ae,3d), r(15,d8,a7,33), r(08,cf,bc,21), r(03,c2,b5,2f),\
-+ r(32,e1,8a,05), r(39,ec,83,0b), r(24,fb,98,19), r(2f,f6,91,17),\
-+ r(8d,d6,4d,76), r(86,db,44,78), r(9b,cc,5f,6a), r(90,c1,56,64),\
-+ r(a1,e2,69,4e), r(aa,ef,60,40), r(b7,f8,7b,52), r(bc,f5,72,5c),\
-+ r(d5,be,05,06), r(de,b3,0c,08), r(c3,a4,17,1a), r(c8,a9,1e,14),\
-+ r(f9,8a,21,3e), r(f2,87,28,30), r(ef,90,33,22), r(e4,9d,3a,2c),\
-+ r(3d,06,dd,96), r(36,0b,d4,98), r(2b,1c,cf,8a), r(20,11,c6,84),\
-+ r(11,32,f9,ae), r(1a,3f,f0,a0), r(07,28,eb,b2), r(0c,25,e2,bc),\
-+ r(65,6e,95,e6), r(6e,63,9c,e8), r(73,74,87,fa), r(78,79,8e,f4),\
-+ r(49,5a,b1,de), r(42,57,b8,d0), r(5f,40,a3,c2), r(54,4d,aa,cc),\
-+ r(f7,da,ec,41), r(fc,d7,e5,4f), r(e1,c0,fe,5d), r(ea,cd,f7,53),\
-+ r(db,ee,c8,79), r(d0,e3,c1,77), r(cd,f4,da,65), r(c6,f9,d3,6b),\
-+ r(af,b2,a4,31), r(a4,bf,ad,3f), r(b9,a8,b6,2d), r(b2,a5,bf,23),\
-+ r(83,86,80,09), r(88,8b,89,07), r(95,9c,92,15), r(9e,91,9b,1b),\
-+ r(47,0a,7c,a1), r(4c,07,75,af), r(51,10,6e,bd), r(5a,1d,67,b3),\
-+ r(6b,3e,58,99), r(60,33,51,97), r(7d,24,4a,85), r(76,29,43,8b),\
-+ r(1f,62,34,d1), r(14,6f,3d,df), r(09,78,26,cd), r(02,75,2f,c3),\
-+ r(33,56,10,e9), r(38,5b,19,e7), r(25,4c,02,f5), r(2e,41,0b,fb),\
-+ r(8c,61,d7,9a), r(87,6c,de,94), r(9a,7b,c5,86), r(91,76,cc,88),\
-+ r(a0,55,f3,a2), r(ab,58,fa,ac), r(b6,4f,e1,be), r(bd,42,e8,b0),\
-+ r(d4,09,9f,ea), r(df,04,96,e4), r(c2,13,8d,f6), r(c9,1e,84,f8),\
-+ r(f8,3d,bb,d2), r(f3,30,b2,dc), r(ee,27,a9,ce), r(e5,2a,a0,c0),\
-+ r(3c,b1,47,7a), r(37,bc,4e,74), r(2a,ab,55,66), r(21,a6,5c,68),\
-+ r(10,85,63,42), r(1b,88,6a,4c), r(06,9f,71,5e), r(0d,92,78,50),\
-+ r(64,d9,0f,0a), r(6f,d4,06,04), r(72,c3,1d,16), r(79,ce,14,18),\
-+ r(48,ed,2b,32), r(43,e0,22,3c), r(5e,f7,39,2e), r(55,fa,30,20),\
-+ r(01,b7,9a,ec), r(0a,ba,93,e2), r(17,ad,88,f0), r(1c,a0,81,fe),\
-+ r(2d,83,be,d4), r(26,8e,b7,da), r(3b,99,ac,c8), r(30,94,a5,c6),\
-+ r(59,df,d2,9c), r(52,d2,db,92), r(4f,c5,c0,80), r(44,c8,c9,8e),\
-+ r(75,eb,f6,a4), r(7e,e6,ff,aa), r(63,f1,e4,b8), r(68,fc,ed,b6),\
-+ r(b1,67,0a,0c), r(ba,6a,03,02), r(a7,7d,18,10), r(ac,70,11,1e),\
-+ r(9d,53,2e,34), r(96,5e,27,3a), r(8b,49,3c,28), r(80,44,35,26),\
-+ r(e9,0f,42,7c), r(e2,02,4b,72), r(ff,15,50,60), r(f4,18,59,6e),\
-+ r(c5,3b,66,44), r(ce,36,6f,4a), r(d3,21,74,58), r(d8,2c,7d,56),\
-+ r(7a,0c,a1,37), r(71,01,a8,39), r(6c,16,b3,2b), r(67,1b,ba,25),\
-+ r(56,38,85,0f), r(5d,35,8c,01), r(40,22,97,13), r(4b,2f,9e,1d),\
-+ r(22,64,e9,47), r(29,69,e0,49), r(34,7e,fb,5b), r(3f,73,f2,55),\
-+ r(0e,50,cd,7f), r(05,5d,c4,71), r(18,4a,df,63), r(13,47,d6,6d),\
-+ r(ca,dc,31,d7), r(c1,d1,38,d9), r(dc,c6,23,cb), r(d7,cb,2a,c5),\
-+ r(e6,e8,15,ef), r(ed,e5,1c,e1), r(f0,f2,07,f3), r(fb,ff,0e,fd),\
-+ r(92,b4,79,a7), r(99,b9,70,a9), r(84,ae,6b,bb), r(8f,a3,62,b5),\
-+ r(be,80,5d,9f), r(b5,8d,54,91), r(a8,9a,4f,83), r(a3,97,46,8d)
-+
-+#undef r
-+#define r r0
-+
-+#if defined(ONE_IM_TABLE)
-+static const u_int32_t im_tab[256] =
-+ { m_table };
-+#elif defined(FOUR_IM_TABLES)
-+static const u_int32_t im_tab[4][256] =
-+{ { m_table },
-+#undef r
-+#define r r1
-+ { m_table },
-+#undef r
-+#define r r2
-+ { m_table },
-+#undef r
-+#define r r3
-+ { m_table }
-+};
-+#endif
-+
-+#endif
-+
-+#else
-+
-+static int tab_gen = 0;
-+
-+static unsigned char s_box[256]; // the S box
-+static unsigned char inv_s_box[256]; // the inverse S box
-+static u_int32_t rcon_tab[AES_RC_LENGTH]; // table of round constants
-+
-+#if defined(ONE_TABLE)
-+static u_int32_t ft_tab[256];
-+static u_int32_t it_tab[256];
-+#elif defined(FOUR_TABLES)
-+static u_int32_t ft_tab[4][256];
-+static u_int32_t it_tab[4][256];
-+#endif
-+
-+#if defined(ONE_LR_TABLE)
-+static u_int32_t fl_tab[256];
-+static u_int32_t il_tab[256];
-+#elif defined(FOUR_LR_TABLES)
-+static u_int32_t fl_tab[4][256];
-+static u_int32_t il_tab[4][256];
-+#endif
-+
-+#if defined(ONE_IM_TABLE)
-+static u_int32_t im_tab[256];
-+#elif defined(FOUR_IM_TABLES)
-+static u_int32_t im_tab[4][256];
-+#endif
-+
-+// Generate the tables for the dynamic table option
-+
-+#if !defined(FF_TABLES)
-+
-+// It will generally be sensible to use tables to compute finite
-+// field multiplies and inverses but where memory is scarse this
-+// code might sometimes be better.
-+
-+// return 2 ^ (n - 1) where n is the bit number of the highest bit
-+// set in x with x in the range 1 < x < 0x00000200. This form is
-+// used so that locals within FFinv can be bytes rather than words
-+
-+static unsigned char hibit(const u_int32_t x)
-+{ unsigned char r = (unsigned char)((x >> 1) | (x >> 2));
-+
-+ r |= (r >> 2);
-+ r |= (r >> 4);
-+ return (r + 1) >> 1;
-+}
-+
-+// return the inverse of the finite field element x
-+
-+static unsigned char FFinv(const unsigned char x)
-+{ unsigned char p1 = x, p2 = 0x1b, n1 = hibit(x), n2 = 0x80, v1 = 1, v2 = 0;
-+
-+ if(x < 2) return x;
-+
-+ for(;;)
-+ {
-+ if(!n1) return v1;
-+
-+ while(n2 >= n1)
-+ {
-+ n2 /= n1; p2 ^= p1 * n2; v2 ^= v1 * n2; n2 = hibit(p2);
-+ }
-+
-+ if(!n2) return v2;
-+
-+ while(n1 >= n2)
-+ {
-+ n1 /= n2; p1 ^= p2 * n1; v1 ^= v2 * n1; n1 = hibit(p1);
-+ }
-+ }
-+}
-+
-+// define the finite field multiplies required for Rijndael
-+
-+#define FFmul02(x) ((((x) & 0x7f) << 1) ^ ((x) & 0x80 ? 0x1b : 0))
-+#define FFmul03(x) ((x) ^ FFmul02(x))
-+#define FFmul09(x) ((x) ^ FFmul02(FFmul02(FFmul02(x))))
-+#define FFmul0b(x) ((x) ^ FFmul02((x) ^ FFmul02(FFmul02(x))))
-+#define FFmul0d(x) ((x) ^ FFmul02(FFmul02((x) ^ FFmul02(x))))
-+#define FFmul0e(x) FFmul02((x) ^ FFmul02((x) ^ FFmul02(x)))
-+
-+#else
-+
-+#define FFinv(x) ((x) ? pow[255 - log[x]]: 0)
-+
-+#define FFmul02(x) (x ? pow[log[x] + 0x19] : 0)
-+#define FFmul03(x) (x ? pow[log[x] + 0x01] : 0)
-+#define FFmul09(x) (x ? pow[log[x] + 0xc7] : 0)
-+#define FFmul0b(x) (x ? pow[log[x] + 0x68] : 0)
-+#define FFmul0d(x) (x ? pow[log[x] + 0xee] : 0)
-+#define FFmul0e(x) (x ? pow[log[x] + 0xdf] : 0)
-+
-+#endif
-+
-+// The forward and inverse affine transformations used in the S-box
-+
-+#define fwd_affine(x) \
-+ (w = (u_int32_t)x, w ^= (w<<1)^(w<<2)^(w<<3)^(w<<4), 0x63^(unsigned char)(w^(w>>8)))
-+
-+#define inv_affine(x) \
-+ (w = (u_int32_t)x, w = (w<<1)^(w<<3)^(w<<6), 0x05^(unsigned char)(w^(w>>8)))
-+
-+static void gen_tabs(void)
-+{ u_int32_t i, w;
-+
-+#if defined(FF_TABLES)
-+
-+ unsigned char pow[512], log[256];
-+
-+ // log and power tables for GF(2^8) finite field with
-+ // 0x011b as modular polynomial - the simplest primitive
-+ // root is 0x03, used here to generate the tables
-+
-+ i = 0; w = 1;
-+ do
-+ {
-+ pow[i] = (unsigned char)w;
-+ pow[i + 255] = (unsigned char)w;
-+ log[w] = (unsigned char)i++;
-+ w ^= (w << 1) ^ (w & ff_hi ? ff_poly : 0);
-+ }
-+ while (w != 1);
-+
-+#endif
-+
-+ for(i = 0, w = 1; i < AES_RC_LENGTH; ++i)
-+ {
-+ rcon_tab[i] = bytes2word(w, 0, 0, 0);
-+ w = (w << 1) ^ (w & ff_hi ? ff_poly : 0);
-+ }
-+
-+ for(i = 0; i < 256; ++i)
-+ { unsigned char b;
-+
-+ s_box[i] = b = fwd_affine(FFinv((unsigned char)i));
-+
-+ w = bytes2word(b, 0, 0, 0);
-+#if defined(ONE_LR_TABLE)
-+ fl_tab[i] = w;
-+#elif defined(FOUR_LR_TABLES)
-+ fl_tab[0][i] = w;
-+ fl_tab[1][i] = upr(w,1);
-+ fl_tab[2][i] = upr(w,2);
-+ fl_tab[3][i] = upr(w,3);
-+#endif
-+ w = bytes2word(FFmul02(b), b, b, FFmul03(b));
-+#if defined(ONE_TABLE)
-+ ft_tab[i] = w;
-+#elif defined(FOUR_TABLES)
-+ ft_tab[0][i] = w;
-+ ft_tab[1][i] = upr(w,1);
-+ ft_tab[2][i] = upr(w,2);
-+ ft_tab[3][i] = upr(w,3);
-+#endif
-+ inv_s_box[i] = b = FFinv(inv_affine((unsigned char)i));
-+
-+ w = bytes2word(b, 0, 0, 0);
-+#if defined(ONE_LR_TABLE)
-+ il_tab[i] = w;
-+#elif defined(FOUR_LR_TABLES)
-+ il_tab[0][i] = w;
-+ il_tab[1][i] = upr(w,1);
-+ il_tab[2][i] = upr(w,2);
-+ il_tab[3][i] = upr(w,3);
-+#endif
-+ w = bytes2word(FFmul0e(b), FFmul09(b), FFmul0d(b), FFmul0b(b));
-+#if defined(ONE_TABLE)
-+ it_tab[i] = w;
-+#elif defined(FOUR_TABLES)
-+ it_tab[0][i] = w;
-+ it_tab[1][i] = upr(w,1);
-+ it_tab[2][i] = upr(w,2);
-+ it_tab[3][i] = upr(w,3);
-+#endif
-+#if defined(ONE_IM_TABLE)
-+ im_tab[b] = w;
-+#elif defined(FOUR_IM_TABLES)
-+ im_tab[0][b] = w;
-+ im_tab[1][b] = upr(w,1);
-+ im_tab[2][b] = upr(w,2);
-+ im_tab[3][b] = upr(w,3);
-+#endif
-+
-+ }
-+}
-+
-+#endif
-+
-+#define no_table(x,box,vf,rf,c) bytes2word( \
-+ box[bval(vf(x,0,c),rf(0,c))], \
-+ box[bval(vf(x,1,c),rf(1,c))], \
-+ box[bval(vf(x,2,c),rf(2,c))], \
-+ box[bval(vf(x,3,c),rf(3,c))])
-+
-+#define one_table(x,op,tab,vf,rf,c) \
-+ ( tab[bval(vf(x,0,c),rf(0,c))] \
-+ ^ op(tab[bval(vf(x,1,c),rf(1,c))],1) \
-+ ^ op(tab[bval(vf(x,2,c),rf(2,c))],2) \
-+ ^ op(tab[bval(vf(x,3,c),rf(3,c))],3))
-+
-+#define four_tables(x,tab,vf,rf,c) \
-+ ( tab[0][bval(vf(x,0,c),rf(0,c))] \
-+ ^ tab[1][bval(vf(x,1,c),rf(1,c))] \
-+ ^ tab[2][bval(vf(x,2,c),rf(2,c))] \
-+ ^ tab[3][bval(vf(x,3,c),rf(3,c))])
-+
-+#define vf1(x,r,c) (x)
-+#define rf1(r,c) (r)
-+#define rf2(r,c) ((r-c)&3)
-+
-+#if defined(FOUR_LR_TABLES)
-+#define ls_box(x,c) four_tables(x,fl_tab,vf1,rf2,c)
-+#elif defined(ONE_LR_TABLE)
-+#define ls_box(x,c) one_table(x,upr,fl_tab,vf1,rf2,c)
-+#else
-+#define ls_box(x,c) no_table(x,s_box,vf1,rf2,c)
-+#endif
-+
-+#if defined(FOUR_IM_TABLES)
-+#define inv_mcol(x) four_tables(x,im_tab,vf1,rf1,0)
-+#elif defined(ONE_IM_TABLE)
-+#define inv_mcol(x) one_table(x,upr,im_tab,vf1,rf1,0)
-+#else
-+#define inv_mcol(x) \
-+ (f9 = (x),f2 = FFmulX(f9), f4 = FFmulX(f2), f8 = FFmulX(f4), f9 ^= f8, \
-+ f2 ^= f4 ^ f8 ^ upr(f2 ^ f9,3) ^ upr(f4 ^ f9,2) ^ upr(f9,1))
-+#endif
-+
-+// Subroutine to set the block size (if variable) in bytes, legal
-+// values being 16, 24 and 32.
-+
-+#if defined(AES_BLOCK_SIZE)
-+#define nc (AES_BLOCK_SIZE / 4)
-+#else
-+#define nc (cx->aes_Ncol)
-+
-+void aes_set_blk(aes_context *cx, int n_bytes)
-+{
-+#if !defined(FIXED_TABLES)
-+ if(!tab_gen) { gen_tabs(); tab_gen = 1; }
-+#endif
-+
-+ switch(n_bytes) {
-+ case 32: /* bytes */
-+ case 256: /* bits */
-+ nc = 8;
-+ break;
-+ case 24: /* bytes */
-+ case 192: /* bits */
-+ nc = 6;
-+ break;
-+ case 16: /* bytes */
-+ case 128: /* bits */
-+ default:
-+ nc = 4;
-+ break;
-+ }
-+}
-+
-+#endif
-+
-+// Initialise the key schedule from the user supplied key. The key
-+// length is now specified in bytes - 16, 24 or 32 as appropriate.
-+// This corresponds to bit lengths of 128, 192 and 256 bits, and
-+// to Nk values of 4, 6 and 8 respectively.
-+
-+#define mx(t,f) (*t++ = inv_mcol(*f),f++)
-+#define cp(t,f) *t++ = *f++
-+
-+#if AES_BLOCK_SIZE == 16
-+#define cpy(d,s) cp(d,s); cp(d,s); cp(d,s); cp(d,s)
-+#define mix(d,s) mx(d,s); mx(d,s); mx(d,s); mx(d,s)
-+#elif AES_BLOCK_SIZE == 24
-+#define cpy(d,s) cp(d,s); cp(d,s); cp(d,s); cp(d,s); \
-+ cp(d,s); cp(d,s)
-+#define mix(d,s) mx(d,s); mx(d,s); mx(d,s); mx(d,s); \
-+ mx(d,s); mx(d,s)
-+#elif AES_BLOCK_SIZE == 32
-+#define cpy(d,s) cp(d,s); cp(d,s); cp(d,s); cp(d,s); \
-+ cp(d,s); cp(d,s); cp(d,s); cp(d,s)
-+#define mix(d,s) mx(d,s); mx(d,s); mx(d,s); mx(d,s); \
-+ mx(d,s); mx(d,s); mx(d,s); mx(d,s)
-+#else
-+
-+#define cpy(d,s) \
-+switch(nc) \
-+{ case 8: cp(d,s); cp(d,s); \
-+ case 6: cp(d,s); cp(d,s); \
-+ case 4: cp(d,s); cp(d,s); \
-+ cp(d,s); cp(d,s); \
-+}
-+
-+#define mix(d,s) \
-+switch(nc) \
-+{ case 8: mx(d,s); mx(d,s); \
-+ case 6: mx(d,s); mx(d,s); \
-+ case 4: mx(d,s); mx(d,s); \
-+ mx(d,s); mx(d,s); \
-+}
-+
-+#endif
-+
-+void aes_set_key(aes_context *cx, const unsigned char in_key[], int n_bytes, const int f)
-+{ u_int32_t *kf, *kt, rci;
-+
-+#if !defined(FIXED_TABLES)
-+ if(!tab_gen) { gen_tabs(); tab_gen = 1; }
-+#endif
-+
-+/* only need to do a special set_key for the cryptodev hw acceleration */
-+#ifdef OCF_ASSIST
-+ if (ocf_aes_assist() & OCF_PROVIDES_AES) {
-+ ocf_aes_set_key(cx, in_key, n_bytes, f);
-+ return;
-+ }
-+#endif
-+
-+ switch(n_bytes) {
-+ case 32: /* bytes */
-+ case 256: /* bits */
-+ cx->aes_Nkey = 8;
-+ break;
-+ case 24: /* bytes */
-+ case 192: /* bits */
-+ cx->aes_Nkey = 6;
-+ break;
-+ case 16: /* bytes */
-+ case 128: /* bits */
-+ default:
-+ cx->aes_Nkey = 4;
-+ break;
-+ }
-+
-+ cx->aes_Nrnd = (cx->aes_Nkey > nc ? cx->aes_Nkey : nc) + 6;
-+
-+ cx->aes_e_key[0] = const_word_in(in_key );
-+ cx->aes_e_key[1] = const_word_in(in_key + 4);
-+ cx->aes_e_key[2] = const_word_in(in_key + 8);
-+ cx->aes_e_key[3] = const_word_in(in_key + 12);
-+
-+ kf = cx->aes_e_key;
-+ kt = kf + nc * (cx->aes_Nrnd + 1) - cx->aes_Nkey;
-+ rci = 0;
-+
-+ switch(cx->aes_Nkey)
-+ {
-+ case 4: do
-+ { kf[4] = kf[0] ^ ls_box(kf[3],3) ^ rcon_tab[rci++];
-+ kf[5] = kf[1] ^ kf[4];
-+ kf[6] = kf[2] ^ kf[5];
-+ kf[7] = kf[3] ^ kf[6];
-+ kf += 4;
-+ }
-+ while(kf < kt);
-+ break;
-+
-+ case 6: cx->aes_e_key[4] = const_word_in(in_key + 16);
-+ cx->aes_e_key[5] = const_word_in(in_key + 20);
-+ do
-+ { kf[ 6] = kf[0] ^ ls_box(kf[5],3) ^ rcon_tab[rci++];
-+ kf[ 7] = kf[1] ^ kf[ 6];
-+ kf[ 8] = kf[2] ^ kf[ 7];
-+ kf[ 9] = kf[3] ^ kf[ 8];
-+ kf[10] = kf[4] ^ kf[ 9];
-+ kf[11] = kf[5] ^ kf[10];
-+ kf += 6;
-+ }
-+ while(kf < kt);
-+ break;
-+
-+ case 8: cx->aes_e_key[4] = const_word_in(in_key + 16);
-+ cx->aes_e_key[5] = const_word_in(in_key + 20);
-+ cx->aes_e_key[6] = const_word_in(in_key + 24);
-+ cx->aes_e_key[7] = const_word_in(in_key + 28);
-+ do
-+ { kf[ 8] = kf[0] ^ ls_box(kf[7],3) ^ rcon_tab[rci++];
-+ kf[ 9] = kf[1] ^ kf[ 8];
-+ kf[10] = kf[2] ^ kf[ 9];
-+ kf[11] = kf[3] ^ kf[10];
-+ kf[12] = kf[4] ^ ls_box(kf[11],0);
-+ kf[13] = kf[5] ^ kf[12];
-+ kf[14] = kf[6] ^ kf[13];
-+ kf[15] = kf[7] ^ kf[14];
-+ kf += 8;
-+ }
-+ while (kf < kt);
-+ break;
-+ }
-+
-+ if(!f)
-+ { u_int32_t i;
-+
-+ kt = cx->aes_d_key + nc * cx->aes_Nrnd;
-+ kf = cx->aes_e_key;
-+
-+ cpy(kt, kf); kt -= 2 * nc;
-+
-+ for(i = 1; i < cx->aes_Nrnd; ++i)
-+ {
-+#if defined(ONE_TABLE) || defined(FOUR_TABLES)
-+#if !defined(ONE_IM_TABLE) && !defined(FOUR_IM_TABLES)
-+ u_int32_t f2, f4, f8, f9;
-+#endif
-+ mix(kt, kf);
-+#else
-+ cpy(kt, kf);
-+#endif
-+ kt -= 2 * nc;
-+ }
-+
-+ cpy(kt, kf);
-+ }
-+}
-+
-+// y = output word, x = input word, r = row, c = column
-+// for r = 0, 1, 2 and 3 = column accessed for row r
-+
-+#if defined(ARRAYS)
-+#define s(x,c) x[c]
-+#else
-+#define s(x,c) x##c
-+#endif
-+
-+// I am grateful to Frank Yellin for the following constructions
-+// which, given the column (c) of the output state variable that
-+// is being computed, return the input state variables which are
-+// needed for each row (r) of the state
-+
-+// For the fixed block size options, compilers reduce these two
-+// expressions to fixed variable references. For variable block
-+// size code conditional clauses will sometimes be returned
-+
-+#define unused 77 // Sunset Strip
-+
-+#define fwd_var(x,r,c) \
-+ ( r==0 ? \
-+ ( c==0 ? s(x,0) \
-+ : c==1 ? s(x,1) \
-+ : c==2 ? s(x,2) \
-+ : c==3 ? s(x,3) \
-+ : c==4 ? s(x,4) \
-+ : c==5 ? s(x,5) \
-+ : c==6 ? s(x,6) \
-+ : s(x,7)) \
-+ : r==1 ? \
-+ ( c==0 ? s(x,1) \
-+ : c==1 ? s(x,2) \
-+ : c==2 ? s(x,3) \
-+ : c==3 ? nc==4 ? s(x,0) : s(x,4) \
-+ : c==4 ? s(x,5) \
-+ : c==5 ? nc==8 ? s(x,6) : s(x,0) \
-+ : c==6 ? s(x,7) \
-+ : s(x,0)) \
-+ : r==2 ? \
-+ ( c==0 ? nc==8 ? s(x,3) : s(x,2) \
-+ : c==1 ? nc==8 ? s(x,4) : s(x,3) \
-+ : c==2 ? nc==4 ? s(x,0) : nc==8 ? s(x,5) : s(x,4) \
-+ : c==3 ? nc==4 ? s(x,1) : nc==8 ? s(x,6) : s(x,5) \
-+ : c==4 ? nc==8 ? s(x,7) : s(x,0) \
-+ : c==5 ? nc==8 ? s(x,0) : s(x,1) \
-+ : c==6 ? s(x,1) \
-+ : s(x,2)) \
-+ : \
-+ ( c==0 ? nc==8 ? s(x,4) : s(x,3) \
-+ : c==1 ? nc==4 ? s(x,0) : nc==8 ? s(x,5) : s(x,4) \
-+ : c==2 ? nc==4 ? s(x,1) : nc==8 ? s(x,6) : s(x,5) \
-+ : c==3 ? nc==4 ? s(x,2) : nc==8 ? s(x,7) : s(x,0) \
-+ : c==4 ? nc==8 ? s(x,0) : s(x,1) \
-+ : c==5 ? nc==8 ? s(x,1) : s(x,2) \
-+ : c==6 ? s(x,2) \
-+ : s(x,3)))
-+
-+#define inv_var(x,r,c) \
-+ ( r==0 ? \
-+ ( c==0 ? s(x,0) \
-+ : c==1 ? s(x,1) \
-+ : c==2 ? s(x,2) \
-+ : c==3 ? s(x,3) \
-+ : c==4 ? s(x,4) \
-+ : c==5 ? s(x,5) \
-+ : c==6 ? s(x,6) \
-+ : s(x,7)) \
-+ : r==1 ? \
-+ ( c==0 ? nc==4 ? s(x,3) : nc==8 ? s(x,7) : s(x,5) \
-+ : c==1 ? s(x,0) \
-+ : c==2 ? s(x,1) \
-+ : c==3 ? s(x,2) \
-+ : c==4 ? s(x,3) \
-+ : c==5 ? s(x,4) \
-+ : c==6 ? s(x,5) \
-+ : s(x,6)) \
-+ : r==2 ? \
-+ ( c==0 ? nc==4 ? s(x,2) : nc==8 ? s(x,5) : s(x,4) \
-+ : c==1 ? nc==4 ? s(x,3) : nc==8 ? s(x,6) : s(x,5) \
-+ : c==2 ? nc==8 ? s(x,7) : s(x,0) \
-+ : c==3 ? nc==8 ? s(x,0) : s(x,1) \
-+ : c==4 ? nc==8 ? s(x,1) : s(x,2) \
-+ : c==5 ? nc==8 ? s(x,2) : s(x,3) \
-+ : c==6 ? s(x,3) \
-+ : s(x,4)) \
-+ : \
-+ ( c==0 ? nc==4 ? s(x,1) : nc==8 ? s(x,4) : s(x,3) \
-+ : c==1 ? nc==4 ? s(x,2) : nc==8 ? s(x,5) : s(x,4) \
-+ : c==2 ? nc==4 ? s(x,3) : nc==8 ? s(x,6) : s(x,5) \
-+ : c==3 ? nc==8 ? s(x,7) : s(x,0) \
-+ : c==4 ? nc==8 ? s(x,0) : s(x,1) \
-+ : c==5 ? nc==8 ? s(x,1) : s(x,2) \
-+ : c==6 ? s(x,2) \
-+ : s(x,3)))
-+
-+#define si(y,x,k,c) s(y,c) = const_word_in(x + 4 * c) ^ k[c]
-+#define so(y,x,c) word_out(y + 4 * c, s(x,c))
-+
-+#if defined(FOUR_TABLES)
-+#define fwd_rnd(y,x,k,c) s(y,c)= (k)[c] ^ four_tables(x,ft_tab,fwd_var,rf1,c)
-+#define inv_rnd(y,x,k,c) s(y,c)= (k)[c] ^ four_tables(x,it_tab,inv_var,rf1,c)
-+#elif defined(ONE_TABLE)
-+#define fwd_rnd(y,x,k,c) s(y,c)= (k)[c] ^ one_table(x,upr,ft_tab,fwd_var,rf1,c)
-+#define inv_rnd(y,x,k,c) s(y,c)= (k)[c] ^ one_table(x,upr,it_tab,inv_var,rf1,c)
-+#else
-+#define fwd_rnd(y,x,k,c) s(y,c) = fwd_mcol(no_table(x,s_box,fwd_var,rf1,c)) ^ (k)[c]
-+#define inv_rnd(y,x,k,c) s(y,c) = inv_mcol(no_table(x,inv_s_box,inv_var,rf1,c) ^ (k)[c])
-+#endif
-+
-+#if defined(FOUR_LR_TABLES)
-+#define fwd_lrnd(y,x,k,c) s(y,c)= (k)[c] ^ four_tables(x,fl_tab,fwd_var,rf1,c)
-+#define inv_lrnd(y,x,k,c) s(y,c)= (k)[c] ^ four_tables(x,il_tab,inv_var,rf1,c)
-+#elif defined(ONE_LR_TABLE)
-+#define fwd_lrnd(y,x,k,c) s(y,c)= (k)[c] ^ one_table(x,ups,fl_tab,fwd_var,rf1,c)
-+#define inv_lrnd(y,x,k,c) s(y,c)= (k)[c] ^ one_table(x,ups,il_tab,inv_var,rf1,c)
-+#else
-+#define fwd_lrnd(y,x,k,c) s(y,c) = no_table(x,s_box,fwd_var,rf1,c) ^ (k)[c]
-+#define inv_lrnd(y,x,k,c) s(y,c) = no_table(x,inv_s_box,inv_var,rf1,c) ^ (k)[c]
-+#endif
-+
-+#if AES_BLOCK_SIZE == 16
-+
-+#if defined(ARRAYS)
-+#define locals(y,x) x[4],y[4]
-+#else
-+#define locals(y,x) x##0,x##1,x##2,x##3,y##0,y##1,y##2,y##3
-+// the following defines prevent the compiler requiring the declaration
-+// of generated but unused variables in the fwd_var and inv_var macros
-+#define b04 unused
-+#define b05 unused
-+#define b06 unused
-+#define b07 unused
-+#define b14 unused
-+#define b15 unused
-+#define b16 unused
-+#define b17 unused
-+#endif
-+#define l_copy(y, x) s(y,0) = s(x,0); s(y,1) = s(x,1); \
-+ s(y,2) = s(x,2); s(y,3) = s(x,3);
-+#define state_in(y,x,k) si(y,x,k,0); si(y,x,k,1); si(y,x,k,2); si(y,x,k,3)
-+#define state_out(y,x) so(y,x,0); so(y,x,1); so(y,x,2); so(y,x,3)
-+#define round(rm,y,x,k) rm(y,x,k,0); rm(y,x,k,1); rm(y,x,k,2); rm(y,x,k,3)
-+
-+#elif AES_BLOCK_SIZE == 24
-+
-+#if defined(ARRAYS)
-+#define locals(y,x) x[6],y[6]
-+#else
-+#define locals(y,x) x##0,x##1,x##2,x##3,x##4,x##5, \
-+ y##0,y##1,y##2,y##3,y##4,y##5
-+#define b06 unused
-+#define b07 unused
-+#define b16 unused
-+#define b17 unused
-+#endif
-+#define l_copy(y, x) s(y,0) = s(x,0); s(y,1) = s(x,1); \
-+ s(y,2) = s(x,2); s(y,3) = s(x,3); \
-+ s(y,4) = s(x,4); s(y,5) = s(x,5);
-+#define state_in(y,x,k) si(y,x,k,0); si(y,x,k,1); si(y,x,k,2); \
-+ si(y,x,k,3); si(y,x,k,4); si(y,x,k,5)
-+#define state_out(y,x) so(y,x,0); so(y,x,1); so(y,x,2); \
-+ so(y,x,3); so(y,x,4); so(y,x,5)
-+#define round(rm,y,x,k) rm(y,x,k,0); rm(y,x,k,1); rm(y,x,k,2); \
-+ rm(y,x,k,3); rm(y,x,k,4); rm(y,x,k,5)
-+#else
-+
-+#if defined(ARRAYS)
-+#define locals(y,x) x[8],y[8]
-+#else
-+#define locals(y,x) x##0,x##1,x##2,x##3,x##4,x##5,x##6,x##7, \
-+ y##0,y##1,y##2,y##3,y##4,y##5,y##6,y##7
-+#endif
-+#define l_copy(y, x) s(y,0) = s(x,0); s(y,1) = s(x,1); \
-+ s(y,2) = s(x,2); s(y,3) = s(x,3); \
-+ s(y,4) = s(x,4); s(y,5) = s(x,5); \
-+ s(y,6) = s(x,6); s(y,7) = s(x,7);
-+
-+#if AES_BLOCK_SIZE == 32
-+
-+#define state_in(y,x,k) si(y,x,k,0); si(y,x,k,1); si(y,x,k,2); si(y,x,k,3); \
-+ si(y,x,k,4); si(y,x,k,5); si(y,x,k,6); si(y,x,k,7)
-+#define state_out(y,x) so(y,x,0); so(y,x,1); so(y,x,2); so(y,x,3); \
-+ so(y,x,4); so(y,x,5); so(y,x,6); so(y,x,7)
-+#define round(rm,y,x,k) rm(y,x,k,0); rm(y,x,k,1); rm(y,x,k,2); rm(y,x,k,3); \
-+ rm(y,x,k,4); rm(y,x,k,5); rm(y,x,k,6); rm(y,x,k,7)
-+#else
-+
-+#define state_in(y,x,k) \
-+switch(nc) \
-+{ case 8: si(y,x,k,7); si(y,x,k,6); \
-+ case 6: si(y,x,k,5); si(y,x,k,4); \
-+ case 4: si(y,x,k,3); si(y,x,k,2); \
-+ si(y,x,k,1); si(y,x,k,0); \
-+}
-+
-+#define state_out(y,x) \
-+switch(nc) \
-+{ case 8: so(y,x,7); so(y,x,6); \
-+ case 6: so(y,x,5); so(y,x,4); \
-+ case 4: so(y,x,3); so(y,x,2); \
-+ so(y,x,1); so(y,x,0); \
-+}
-+
-+#if defined(FAST_VARIABLE)
-+
-+#define round(rm,y,x,k) \
-+switch(nc) \
-+{ case 8: rm(y,x,k,7); rm(y,x,k,6); \
-+ rm(y,x,k,5); rm(y,x,k,4); \
-+ rm(y,x,k,3); rm(y,x,k,2); \
-+ rm(y,x,k,1); rm(y,x,k,0); \
-+ break; \
-+ case 6: rm(y,x,k,5); rm(y,x,k,4); \
-+ rm(y,x,k,3); rm(y,x,k,2); \
-+ rm(y,x,k,1); rm(y,x,k,0); \
-+ break; \
-+ case 4: rm(y,x,k,3); rm(y,x,k,2); \
-+ rm(y,x,k,1); rm(y,x,k,0); \
-+ break; \
-+}
-+#else
-+
-+#define round(rm,y,x,k) \
-+switch(nc) \
-+{ case 8: rm(y,x,k,7); rm(y,x,k,6); \
-+ case 6: rm(y,x,k,5); rm(y,x,k,4); \
-+ case 4: rm(y,x,k,3); rm(y,x,k,2); \
-+ rm(y,x,k,1); rm(y,x,k,0); \
-+}
-+
-+#endif
-+
-+#endif
-+#endif
-+
-+void aes_encrypt(const aes_context *cx, const unsigned char in_blk[], unsigned char out_blk[])
-+{ u_int32_t locals(b0, b1);
-+ const u_int32_t *kp = cx->aes_e_key;
-+
-+#if !defined(ONE_TABLE) && !defined(FOUR_TABLES)
-+ u_int32_t f2;
-+#endif
-+
-+ state_in(b0, in_blk, kp); kp += nc;
-+
-+#if defined(UNROLL)
-+
-+ switch(cx->aes_Nrnd)
-+ {
-+ case 14: round(fwd_rnd, b1, b0, kp );
-+ round(fwd_rnd, b0, b1, kp + nc ); kp += 2 * nc;
-+ case 12: round(fwd_rnd, b1, b0, kp );
-+ round(fwd_rnd, b0, b1, kp + nc ); kp += 2 * nc;
-+ case 10: round(fwd_rnd, b1, b0, kp );
-+ round(fwd_rnd, b0, b1, kp + nc);
-+ round(fwd_rnd, b1, b0, kp + 2 * nc);
-+ round(fwd_rnd, b0, b1, kp + 3 * nc);
-+ round(fwd_rnd, b1, b0, kp + 4 * nc);
-+ round(fwd_rnd, b0, b1, kp + 5 * nc);
-+ round(fwd_rnd, b1, b0, kp + 6 * nc);
-+ round(fwd_rnd, b0, b1, kp + 7 * nc);
-+ round(fwd_rnd, b1, b0, kp + 8 * nc);
-+ round(fwd_lrnd, b0, b1, kp + 9 * nc);
-+ }
-+
-+#elif defined(PARTIAL_UNROLL)
-+ { u_int32_t rnd;
-+
-+ for(rnd = 0; rnd < (cx->aes_Nrnd >> 1) - 1; ++rnd)
-+ {
-+ round(fwd_rnd, b1, b0, kp);
-+ round(fwd_rnd, b0, b1, kp + nc); kp += 2 * nc;
-+ }
-+
-+ round(fwd_rnd, b1, b0, kp);
-+ round(fwd_lrnd, b0, b1, kp + nc);
-+ }
-+#else
-+ { u_int32_t rnd;
-+
-+ for(rnd = 0; rnd < cx->aes_Nrnd - 1; ++rnd)
-+ {
-+ round(fwd_rnd, b1, b0, kp);
-+ l_copy(b0, b1); kp += nc;
-+ }
-+
-+ round(fwd_lrnd, b0, b1, kp);
-+ }
-+#endif
-+
-+ state_out(out_blk, b0);
-+}
-+
-+void aes_decrypt(const aes_context *cx, const unsigned char in_blk[], unsigned char out_blk[])
-+{ u_int32_t locals(b0, b1);
-+ const u_int32_t *kp = cx->aes_d_key;
-+
-+#if !defined(ONE_TABLE) && !defined(FOUR_TABLES)
-+ u_int32_t f2, f4, f8, f9;
-+#endif
-+
-+ state_in(b0, in_blk, kp); kp += nc;
-+
-+#if defined(UNROLL)
-+
-+ switch(cx->aes_Nrnd)
-+ {
-+ case 14: round(inv_rnd, b1, b0, kp );
-+ round(inv_rnd, b0, b1, kp + nc ); kp += 2 * nc;
-+ case 12: round(inv_rnd, b1, b0, kp );
-+ round(inv_rnd, b0, b1, kp + nc ); kp += 2 * nc;
-+ case 10: round(inv_rnd, b1, b0, kp );
-+ round(inv_rnd, b0, b1, kp + nc);
-+ round(inv_rnd, b1, b0, kp + 2 * nc);
-+ round(inv_rnd, b0, b1, kp + 3 * nc);
-+ round(inv_rnd, b1, b0, kp + 4 * nc);
-+ round(inv_rnd, b0, b1, kp + 5 * nc);
-+ round(inv_rnd, b1, b0, kp + 6 * nc);
-+ round(inv_rnd, b0, b1, kp + 7 * nc);
-+ round(inv_rnd, b1, b0, kp + 8 * nc);
-+ round(inv_lrnd, b0, b1, kp + 9 * nc);
-+ }
-+
-+#elif defined(PARTIAL_UNROLL)
-+ { u_int32_t rnd;
-+
-+ for(rnd = 0; rnd < (cx->aes_Nrnd >> 1) - 1; ++rnd)
-+ {
-+ round(inv_rnd, b1, b0, kp);
-+ round(inv_rnd, b0, b1, kp + nc); kp += 2 * nc;
-+ }
-+
-+ round(inv_rnd, b1, b0, kp);
-+ round(inv_lrnd, b0, b1, kp + nc);
-+ }
-+#else
-+ { u_int32_t rnd;
-+
-+ for(rnd = 0; rnd < cx->aes_Nrnd - 1; ++rnd)
-+ {
-+ round(inv_rnd, b1, b0, kp);
-+ l_copy(b0, b1); kp += nc;
-+ }
-+
-+ round(inv_lrnd, b0, b1, kp);
-+ }
-+#endif
-+
-+ state_out(out_blk, b0);
-+}
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/aes/aes_cbc.c Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,67 @@
-+/*
-+// I retain copyright in this code but I encourage its free use provided
-+// that I don't carry any responsibility for the results. I am especially
-+// happy to see it used in free and open source software. If you do use
-+// it I would appreciate an acknowledgement of its origin in the code or
-+// the product that results and I would also appreciate knowing a little
-+// about the use to which it is being put. I am grateful to Frank Yellin
-+// for some ideas that are used in this implementation.
-+//
-+// Dr B. R. Gladman 6th April 2001.
-+//
-+// This is an implementation of the AES encryption algorithm (Rijndael)
-+// designed by Joan Daemen and Vincent Rijmen. This version is designed
-+// to provide both fixed and dynamic block and key lengths and can also
-+// run with either big or little endian internal byte order (see aes.h).
-+// It inputs block and key lengths in bytes with the legal values being
-+// 16, 24 and 32.
-+*
-+*/
-+
-+#ifdef __KERNEL__
-+#include
-+#else
-+#include
-+#endif
-+#include "klips-crypto/aes_cbc.h"
-+#include "klips-crypto/cbc_generic.h"
-+#ifdef OCF_ASSIST
-+#include "klips-crypto/ocf_assist.h"
-+#endif
-+
-+/* returns bool success */
-+int AES_set_key(aes_context *aes_ctx, const u_int8_t *key, int keysize) {
-+ aes_set_key(aes_ctx, key, keysize, 0);
-+ return 1;
-+}
-+
-+#ifdef OCF_ASSIST
-+
-+CBC_IMPL_BLK16(_AES_cbc_encrypt, aes_context, u_int8_t *, aes_encrypt, aes_decrypt);
-+
-+int
-+AES_cbc_encrypt(aes_context *ctx, const u_int8_t *in, u_int8_t *out, int ilen,
-+ const u_int8_t *iv, int encrypt)
-+{
-+ if (ocf_aes_assist() & OCF_PROVIDES_AES) {
-+ return ocf_aes_cbc_encrypt(ctx, in, out, ilen, iv, encrypt);
-+ } else {
-+ return _AES_cbc_encrypt(ctx, in, out, ilen, iv, encrypt);
-+ }
-+}
-+
-+#else
-+CBC_IMPL_BLK16(AES_cbc_encrypt, aes_context, u_int8_t *, aes_encrypt, aes_decrypt);
-+#endif
-+
-+
-+/*
-+ * $Log: aes_cbc.c,v $
-+ * Revision 1.2 2004/07/10 07:48:40 mcr
-+ * Moved from linux/crypto/ciphers/aes/aes_cbc.c,v
-+ *
-+ * Revision 1.1 2004/04/06 02:48:12 mcr
-+ * pullup of AES cipher from alg-branch.
-+ *
-+ *
-+ */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/aes/aes_xcbc_mac.c Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,67 @@
-+#ifdef __KERNEL__
-+#include
-+#include
-+#define AES_DEBUG(x)
-+#else
-+#include
-+#include
-+#define AES_DEBUG(x) x
-+#endif
-+
-+#include "klips-crypto/aes.h"
-+#include "klips-crypto/aes_xcbc_mac.h"
-+
-+int AES_xcbc_mac_set_key(aes_context_mac *ctxm, const u_int8_t *key, int keylen)
-+{
-+ int ret=1;
-+ aes_block kn[3] = {
-+ { 0x01010101, 0x01010101, 0x01010101, 0x01010101 },
-+ { 0x02020202, 0x02020202, 0x02020202, 0x02020202 },
-+ { 0x03030303, 0x03030303, 0x03030303, 0x03030303 },
-+ };
-+ aes_set_key(&ctxm->ctx_k1, key, keylen, 0);
-+ aes_encrypt(&ctxm->ctx_k1, (u_int8_t *) kn[0], (u_int8_t *) kn[0]);
-+ aes_encrypt(&ctxm->ctx_k1, (u_int8_t *) kn[1], (u_int8_t *) ctxm->k2);
-+ aes_encrypt(&ctxm->ctx_k1, (u_int8_t *) kn[2], (u_int8_t *) ctxm->k3);
-+ aes_set_key(&ctxm->ctx_k1, (u_int8_t *) kn[0], 16, 0);
-+ return ret;
-+}
-+static void do_pad_xor(u_int8_t *out, const u_int8_t *in, int len) {
-+ int pos=0;
-+ for (pos=1; pos <= 16; pos++, in++, out++) {
-+ if (pos <= len)
-+ *out ^= *in;
-+ if (pos > len) {
-+ AES_DEBUG(printf("put 0x80 at pos=%d\n", pos));
-+ *out ^= 0x80;
-+ break;
-+ }
-+ }
-+}
-+static void xor_block(aes_block res, const aes_block op) {
-+ res[0] ^= op[0];
-+ res[1] ^= op[1];
-+ res[2] ^= op[2];
-+ res[3] ^= op[3];
-+}
-+int AES_xcbc_mac_hash(const aes_context_mac *ctxm, const u_int8_t * in, int ilen, u_int8_t hash[16]) {
-+ int ret=ilen;
-+ u_int32_t out[4] = { 0, 0, 0, 0 };
-+ for (; ilen > 16 ; ilen-=16) {
-+ xor_block(out, (const u_int32_t*) &in[0]);
-+ aes_encrypt(&ctxm->ctx_k1, in, (u_int8_t *)&out[0]);
-+ in+=16;
-+ }
-+ do_pad_xor((u_int8_t *)&out, in, ilen);
-+ if (ilen==16) {
-+ AES_DEBUG(printf("using k3\n"));
-+ xor_block(out, ctxm->k3);
-+ }
-+ else
-+ {
-+ AES_DEBUG(printf("using k2\n"));
-+ xor_block(out, ctxm->k2);
-+ }
-+ aes_encrypt(&ctxm->ctx_k1, (u_int8_t *)out, hash);
-+ return ret;
-+}
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/aes/ipsec_alg_aes.c Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,300 @@
-+/*
-+ * ipsec_alg AES cipher stubs
-+ *
-+ * Author: JuanJo Ciarlante
-+ *
-+ * ipsec_alg_aes.c,v 1.1.2.1 2003/11/21 18:12:23 jjo Exp
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * Fixes by:
-+ * PK: Pawel Krawczyk
-+ * Fixes list:
-+ * PK: make XCBC comply with latest draft (keylength)
-+ *
-+ */
-+#ifndef AUTOCONF_INCLUDED
-+#include
-+#endif
-+#include
-+
-+/*
-+ * special case: ipsec core modular with this static algo inside:
-+ * must avoid MODULE magic for this file
-+ */
-+#if defined(CONFIG_KLIPS_MODULE) && defined(CONFIG_KLIPS_ENC_AES)
-+#undef MODULE
-+#endif
-+
-+#include
-+#include
-+
-+#include /* printk() */
-+#include /* error codes */
-+#include /* size_t */
-+#include
-+
-+/* Check if __exit is defined, if not null it */
-+#ifndef __exit
-+#define __exit
-+#endif
-+
-+/* Low freeswan header coupling */
-+#include
-+#include "openswan/ipsec_alg.h"
-+#include "klips-crypto/aes_cbc.h"
-+
-+#define CONFIG_KLIPS_ENC_AES_MAC 1
-+
-+#define AES_CONTEXT_T aes_context
-+static int debug_aes=0;
-+static int test_aes=0;
-+static int excl_aes=0;
-+static int keyminbits=0;
-+static int keymaxbits=0;
-+#if defined(CONFIG_KLIPS_ENC_AES_MODULE)
-+MODULE_AUTHOR("JuanJo Ciarlante ");
-+#ifdef module_param
-+module_param(debug_aes,int,0664);
-+module_param(test_aes,int,0664);
-+module_param(excl_aes,int,0664);
-+module_param(keyminbits,int,0664);
-+module_param(keymaxbits,int,0664);
-+#else
-+MODULE_PARM(debug_aes, "i");
-+MODULE_PARM(test_aes, "i");
-+MODULE_PARM(excl_aes, "i");
-+MODULE_PARM(keyminbits, "i");
-+MODULE_PARM(keymaxbits, "i");
-+#endif
-+#endif
-+
-+#if CONFIG_KLIPS_ENC_AES_MAC
-+#include "klips-crypto/aes_xcbc_mac.h"
-+
-+/*
-+ * Not IANA number yet (draft-ietf-ipsec-ciph-aes-xcbc-mac-00.txt).
-+ * We use 9 for non-modular algorithm and none for modular, thus
-+ * forcing user to specify one on module load. -kravietz
-+ */
-+#ifdef MODULE
-+static int auth_id=0;
-+#else
-+static int auth_id=9;
-+#endif
-+#if 0
-+#ifdef MODULE_PARM
-+MODULE_PARM(auth_id, "i");
-+#else
-+module_param(auth_id,int,0664);
-+#endif
-+#endif
-+#endif
-+
-+#define ESP_AES 12 /* truely _constant_ :) */
-+
-+/* 128, 192 or 256 */
-+#define ESP_AES_KEY_SZ_MIN 16 /* 128 bit secret key */
-+#define ESP_AES_KEY_SZ_MAX 32 /* 256 bit secret key */
-+#define ESP_AES_CBC_BLK_LEN 16 /* AES-CBC block size */
-+
-+/* Values according to draft-ietf-ipsec-ciph-aes-xcbc-mac-02.txt
-+ * -kravietz
-+ */
-+#define ESP_AES_MAC_KEY_SZ 16 /* 128 bit MAC key */
-+#define ESP_AES_MAC_BLK_LEN 16 /* 128 bit block */
-+
-+static int _aes_set_key(struct ipsec_alg_enc *alg,
-+ __u8 * key_e, const __u8 * key,
-+ size_t keysize)
-+{
-+ int ret;
-+ AES_CONTEXT_T *ctx=(AES_CONTEXT_T*)key_e;
-+ ret=AES_set_key(ctx, key, keysize)!=0? 0: -EINVAL;
-+ if (debug_aes > 0)
-+ printk(KERN_DEBUG "klips_debug:_aes_set_key:"
-+ "ret=%d key_e=%p key=%p keysize=%ld\n",
-+ ret, key_e, key, (unsigned long int) keysize);
-+ return ret;
-+}
-+
-+static int _aes_cbc_encrypt(struct ipsec_alg_enc *alg, __u8 * key_e,
-+ const __u8 * in, int ilen, const __u8 * iv,
-+ int encrypt)
-+{
-+ AES_CONTEXT_T *ctx=(AES_CONTEXT_T*)key_e;
-+ if (debug_aes > 0)
-+ printk(KERN_DEBUG "klips_debug:_aes_cbc_encrypt:"
-+ "key_e=%p in=%p ilen=%d iv=%p encrypt=%d\n",
-+ key_e, in, ilen, iv, encrypt);
-+ return AES_cbc_encrypt(ctx, in, in, ilen, iv, encrypt);
-+}
-+#if CONFIG_KLIPS_ENC_AES_MAC
-+static int _aes_mac_set_key(struct ipsec_alg_auth *alg, __u8 * key_a, const __u8 * key, int keylen) {
-+ aes_context_mac *ctxm=(aes_context_mac *)key_a;
-+ return AES_xcbc_mac_set_key(ctxm, key, keylen)? 0 : -EINVAL;
-+}
-+static int _aes_mac_hash(struct ipsec_alg_auth *alg, __u8 * key_a, const __u8 * dat, int len, __u8 * hash, int hashlen) {
-+ int ret;
-+ char hash_buf[16];
-+ aes_context_mac *ctxm=(aes_context_mac *)key_a;
-+ ret=AES_xcbc_mac_hash(ctxm, dat, len, hash_buf);
-+ memcpy(hash, hash_buf, hashlen);
-+ return ret;
-+}
-+static struct ipsec_alg_auth ipsec_alg_AES_MAC = {
-+ ixt_common: { ixt_version: IPSEC_ALG_VERSION,
-+ ixt_refcnt: ATOMIC_INIT(0),
-+ ixt_name: "aes_mac",
-+ ixt_blocksize: ESP_AES_MAC_BLK_LEN,
-+ ixt_support: {
-+ ias_exttype: IPSEC_ALG_TYPE_AUTH,
-+ ias_id: 0,
-+ ias_keyminbits: ESP_AES_MAC_KEY_SZ*8,
-+ ias_keymaxbits: ESP_AES_MAC_KEY_SZ*8,
-+ },
-+ },
-+#if defined(CONFIG_KLIPS_ENC_AES_MODULE)
-+ ixt_module: THIS_MODULE,
-+#endif
-+ ixt_a_keylen: ESP_AES_MAC_KEY_SZ,
-+ ixt_a_ctx_size: sizeof(aes_context_mac),
-+ ixt_a_hmac_set_key: _aes_mac_set_key,
-+ ixt_a_hmac_hash:_aes_mac_hash,
-+};
-+#endif /* CONFIG_KLIPS_ENC_AES_MAC */
-+static struct ipsec_alg_enc ipsec_alg_AES = {
-+ ixt_common: { ixt_version: IPSEC_ALG_VERSION,
-+ ixt_refcnt: ATOMIC_INIT(0),
-+ ixt_name: "aes",
-+ ixt_blocksize: ESP_AES_CBC_BLK_LEN,
-+ ixt_support: {
-+ ias_exttype: IPSEC_ALG_TYPE_ENCRYPT,
-+ //ias_ivlen: 128,
-+ ias_id: ESP_AES,
-+ ias_keyminbits: ESP_AES_KEY_SZ_MIN*8,
-+ ias_keymaxbits: ESP_AES_KEY_SZ_MAX*8,
-+ },
-+ },
-+#if defined(CONFIG_KLIPS_ENC_AES_MODULE)
-+ ixt_module: THIS_MODULE,
-+#endif
-+ ixt_e_keylen: ESP_AES_KEY_SZ_MAX,
-+ ixt_e_ctx_size: sizeof(AES_CONTEXT_T),
-+ ixt_e_set_key: _aes_set_key,
-+ ixt_e_cbc_encrypt:_aes_cbc_encrypt,
-+};
-+
-+#if defined(CONFIG_KLIPS_ENC_AES_MODULE)
-+IPSEC_ALG_MODULE_INIT_MOD( ipsec_aes_init )
-+#else
-+IPSEC_ALG_MODULE_INIT_STATIC( ipsec_aes_init )
-+#endif
-+{
-+ int ret, test_ret;
-+
-+ if (keyminbits)
-+ ipsec_alg_AES.ixt_common.ixt_support.ias_keyminbits=keyminbits;
-+ if (keymaxbits) {
-+ ipsec_alg_AES.ixt_common.ixt_support.ias_keymaxbits=keymaxbits;
-+ if (keymaxbits*8>ipsec_alg_AES.ixt_common.ixt_support.ias_keymaxbits)
-+ ipsec_alg_AES.ixt_e_keylen=keymaxbits*8;
-+ }
-+ if (excl_aes) ipsec_alg_AES.ixt_common.ixt_state |= IPSEC_ALG_ST_EXCL;
-+ ret=register_ipsec_alg_enc(&ipsec_alg_AES);
-+ printk("ipsec_aes_init(alg_type=%d alg_id=%d name=%s): ret=%d\n",
-+ ipsec_alg_AES.ixt_common.ixt_support.ias_exttype,
-+ ipsec_alg_AES.ixt_common.ixt_support.ias_id,
-+ ipsec_alg_AES.ixt_common.ixt_name,
-+ ret);
-+ if (ret==0 && test_aes) {
-+ test_ret=ipsec_alg_test(
-+ ipsec_alg_AES.ixt_common.ixt_support.ias_exttype ,
-+ ipsec_alg_AES.ixt_common.ixt_support.ias_id,
-+ test_aes);
-+ printk("ipsec_aes_init(alg_type=%d alg_id=%d): test_ret=%d\n",
-+ ipsec_alg_AES.ixt_common.ixt_support.ias_exttype ,
-+ ipsec_alg_AES.ixt_common.ixt_support.ias_id,
-+ test_ret);
-+ }
-+#if CONFIG_KLIPS_ENC_AES_MAC
-+ if (auth_id!=0){
-+ int ret;
-+ ipsec_alg_AES_MAC.ixt_common.ixt_support.ias_id=auth_id;
-+ ret=register_ipsec_alg_auth(&ipsec_alg_AES_MAC);
-+ printk("ipsec_aes_init(alg_type=%d alg_id=%d name=%s): ret=%d\n",
-+ ipsec_alg_AES_MAC.ixt_common.ixt_support.ias_exttype,
-+ ipsec_alg_AES_MAC.ixt_common.ixt_support.ias_id,
-+ ipsec_alg_AES_MAC.ixt_common.ixt_name,
-+ ret);
-+ if (ret==0 && test_aes) {
-+ test_ret=ipsec_alg_test(
-+ ipsec_alg_AES_MAC.ixt_common.ixt_support.ias_exttype,
-+ ipsec_alg_AES_MAC.ixt_common.ixt_support.ias_id,
-+ test_aes);
-+ printk("ipsec_aes_init(alg_type=%d alg_id=%d): test_ret=%d\n",
-+ ipsec_alg_AES_MAC.ixt_common.ixt_support.ias_exttype,
-+ ipsec_alg_AES_MAC.ixt_common.ixt_support.ias_id,
-+ test_ret);
-+ }
-+ } else {
-+ printk(KERN_DEBUG "klips_debug: experimental ipsec_alg_AES_MAC not registered [Ok] (auth_id=%d)\n", auth_id);
-+ }
-+#endif /* CONFIG_KLIPS_ENC_AES_MAC */
-+ return ret;
-+}
-+
-+#if defined(CONFIG_KLIPS_ENC_AES_MODULE)
-+IPSEC_ALG_MODULE_EXIT_MOD( ipsec_aes_fini )
-+#else
-+IPSEC_ALG_MODULE_EXIT_STATIC( ipsec_aes_fini )
-+#endif
-+{
-+#if CONFIG_KLIPS_ENC_AES_MAC
-+ if (auth_id) unregister_ipsec_alg_auth(&ipsec_alg_AES_MAC);
-+#endif /* CONFIG_KLIPS_ENC_AES_MAC */
-+ unregister_ipsec_alg_enc(&ipsec_alg_AES);
-+ return;
-+}
-+#ifdef MODULE_LICENSE
-+MODULE_LICENSE("GPL");
-+#endif
-+
-+#if 0 /* +NOT_YET */
-+#ifndef MODULE
-+/*
-+ * This is intended for static module setups, currently
-+ * doesn't work for modular ipsec.o with static algos inside
-+ */
-+static int setup_keybits(const char *str)
-+{
-+ unsigned aux;
-+ char *end;
-+
-+ aux = simple_strtoul(str,&end,0);
-+ if (aux != 128 && aux != 192 && aux != 256)
-+ return 0;
-+ keyminbits = aux;
-+
-+ if (*end == 0 || *end != ',')
-+ return 1;
-+ str=end+1;
-+ aux = simple_strtoul(str, NULL, 0);
-+ if (aux != 128 && aux != 192 && aux != 256)
-+ return 0;
-+ if (aux >= keyminbits)
-+ keymaxbits = aux;
-+ return 1;
-+}
-+__setup("ipsec_aes_keybits=", setup_keybits);
-+#endif
-+#endif
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/alg/Config.alg_aes.in Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,3 @@
-+if [ "$CONFIG_IPSEC_ALG" = "y" ]; then
-+ tristate ' AES encryption algorithm' CONFIG_IPSEC_ENC_AES
-+fi
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/alg/Config.alg_cryptoapi.in Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,6 @@
-+if [ "$CONFIG_IPSEC_ALG" = "y" ]; then
-+ dep_tristate ' CRYPTOAPI ciphers support (needs cryptoapi patch)' CONFIG_IPSEC_ALG_CRYPTOAPI $CONFIG_CRYPTO
-+ if [ "$CONFIG_IPSEC_ALG_CRYPTOAPI" != "n" ]; then
-+ bool ' CRYPTOAPI proprietary ciphers ' CONFIG_IPSEC_ALG_NON_LIBRE
-+ fi
-+fi
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/alg/Config.in Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,3 @@
-+#Placeholder
-+source net/ipsec/alg/Config.alg_aes.in
-+source net/ipsec/alg/Config.alg_cryptoapi.in
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/alg/Makefile.alg_aes Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,18 @@
-+MOD_AES := ipsec_aes.o
-+
-+ALG_MODULES += $(MOD_AES)
-+ALG_SUBDIRS += libaes
-+
-+obj-$(CONFIG_IPSEC_ALG_AES) += $(MOD_AES)
-+static_init-func-$(CONFIG_IPSEC_ALG_AES)+= ipsec_aes_init
-+alg_obj-$(CONFIG_IPSEC_ALG_AES) += ipsec_alg_aes.o
-+
-+AES_OBJS := ipsec_alg_aes.o $(LIBCRYPTO)/libaes/libaes.a
-+
-+
-+$(MOD_AES): $(AES_OBJS)
-+ $(LD) $(EXTRA_LDFLAGS) -r $(AES_OBJS) -o $@
-+
-+$(LIBCRYPTO)/libaes/libaes.a:
-+ $(MAKE) -C $(LIBCRYPTO)/libaes CC='$(CC)' 'ARCH_ASM=$(ARCH_ASM)' CFLAGS='$(CFLAGS) $(EXTRA_CFLAGS)' libaes.a
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/alg/Makefile.alg_cryptoapi Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,14 @@
-+MOD_CRYPTOAPI := ipsec_cryptoapi.o
-+
-+ifneq ($(wildcard $(TOPDIR)/include/linux/crypto.h),)
-+ALG_MODULES += $(MOD_CRYPTOAPI)
-+obj-$(CONFIG_IPSEC_ALG_CRYPTOAPI) += $(MOD_CRYPTOAPI)
-+static_init-func-$(CONFIG_IPSEC_ALG_CRYPTOAPI)+= ipsec_cryptoapi_init
-+alg_obj-$(CONFIG_IPSEC_ALG_CRYPTOAPI) += ipsec_alg_cryptoapi.o
-+else
-+$(warning "Linux CryptoAPI (2.4.22+ or 2.6.x) not found, not building ipsec_cryptoapi.o")
-+endif
-+
-+CRYPTOAPI_OBJS := ipsec_alg_cryptoapi.o
-+$(MOD_CRYPTOAPI): $(CRYPTOAPI_OBJS)
-+ $(LD) -r $(CRYPTOAPI_OBJS) -o $@
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/alg/ipsec_alg_cryptoapi.c Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,442 @@
-+/*
-+ * ipsec_alg to linux cryptoapi GLUE
-+ *
-+ * Authors: CODE.ar TEAM
-+ * Harpo MAxx
-+ * JuanJo Ciarlante
-+ * Luciano Ruete
-+ *
-+ * ipsec_alg_cryptoapi.c,v 1.1.2.1 2003/11/21 18:12:23 jjo Exp
-+ *
-+ * 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. See .
-+ *
-+ * 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.
-+ *
-+ * Example usage:
-+ * modinfo -p ipsec_cryptoapi (quite useful info, including supported algos)
-+ * modprobe ipsec_cryptoapi
-+ * modprobe ipsec_cryptoapi test=1
-+ * modprobe ipsec_cryptoapi excl=1 (exclusive cipher/algo)
-+ * modprobe ipsec_cryptoapi noauto=1 aes=1 twofish=1 (only these ciphers)
-+ * modprobe ipsec_cryptoapi aes=128,128 (force these keylens)
-+ * modprobe ipsec_cryptoapi des_ede3=0 (everything but 3DES)
-+ */
-+#ifndef AUTOCONF_INCLUDED
-+#include
-+#endif
-+#include
-+
-+/*
-+ * special case: ipsec core modular with this static algo inside:
-+ * must avoid MODULE magic for this file
-+ */
-+#if CONFIG_IPSEC_MODULE && CONFIG_IPSEC_ALG_CRYPTOAPI
-+#undef MODULE
-+#endif
-+
-+#include
-+#include
-+
-+#include /* printk() */
-+#include /* error codes */
-+#include /* size_t */
-+#include
-+
-+/* Check if __exit is defined, if not null it */
-+#ifndef __exit
-+#define __exit
-+#endif
-+
-+/* warn the innocent */
-+#if !defined (CONFIG_CRYPTO) && !defined (CONFIG_CRYPTO_MODULE)
-+#warning "No linux CryptoAPI found, install 2.4.22+ or 2.6.x"
-+#define NO_CRYPTOAPI_SUPPORT
-+#endif
-+/* Low freeswan header coupling */
-+#include "openswan/ipsec_alg.h"
-+
-+#include
-+#ifdef CRYPTO_API_VERSION_CODE
-+#warning "Old CryptoAPI is not supported. Only linux-2.4.22+ or linux-2.6.x are supported"
-+#define NO_CRYPTOAPI_SUPPORT
-+#endif
-+
-+#ifdef NO_CRYPTOAPI_SUPPORT
-+#warning "Building an unusable module :P"
-+/* Catch old CryptoAPI by not allowing module to load */
-+IPSEC_ALG_MODULE_INIT( ipsec_cryptoapi_init )
-+{
-+ printk(KERN_WARNING "ipsec_cryptoapi.o was not built on stock Linux CryptoAPI (2.4.22+ or 2.6.x), not loading.\n");
-+ return -EINVAL;
-+}
-+#else
-+#include
-+#include
-+#include
-+
-+#define CIPHERNAME_AES "aes"
-+#define CIPHERNAME_3DES "des3_ede"
-+#define CIPHERNAME_BLOWFISH "blowfish"
-+#define CIPHERNAME_CAST "cast5"
-+#define CIPHERNAME_SERPENT "serpent"
-+#define CIPHERNAME_TWOFISH "twofish"
-+
-+#define ESP_3DES 3
-+#define ESP_AES 12
-+#define ESP_BLOWFISH 7 /* truely _constant_ :) */
-+#define ESP_CAST 6 /* quite constant :) */
-+#define ESP_SERPENT 252 /* from ipsec drafts */
-+#define ESP_TWOFISH 253 /* from ipsec drafts */
-+
-+#define AH_MD5 2
-+#define AH_SHA 3
-+#define DIGESTNAME_MD5 "md5"
-+#define DIGESTNAME_SHA1 "sha1"
-+
-+MODULE_AUTHOR("Juanjo Ciarlante, Harpo MAxx, Luciano Ruete");
-+static int debug=0;
-+static int test=0;
-+static int excl=0;
-+#ifdef module_param
-+module_param(debug, int, 0664);
-+module_param(test, int, 0664);
-+module_param(excl, int, 0664);
-+#else
-+MODULE_PARM(debug, "i");
-+MODULE_PARM(test, "i");
-+MODULE_PARM(excl, "i");
-+#endif
-+
-+static int noauto = 0;
-+#ifdef module_param
-+module_param(noauto,int, 0664);
-+#else
-+MODULE_PARM(noauto,"i");
-+#endif
-+MODULE_PARM_DESC(noauto, "Dont try all known algos, just setup enabled ones");
-+
-+static int des_ede3[] = {-1, -1};
-+static int aes[] = {-1, -1};
-+static int blowfish[] = {-1, -1};
-+static int cast[] = {-1, -1};
-+static int serpent[] = {-1, -1};
-+static int twofish[] = {-1, -1};
-+
-+#ifdef module_param_array
-+module_param_array(des_ede3,int,NULL,0);
-+module_param_array(aes,int,NULL,0);
-+module_param_array(blowfish,int,NULL,0);
-+module_param_array(cast,int,NULL,0);
-+module_param_array(serpent,int,NULL,0);
-+module_param_array(twofish,int,NULL,0);
-+#else
-+MODULE_PARM(des_ede3,"1-2i");
-+MODULE_PARM(aes,"1-2i");
-+MODULE_PARM(blowfish,"1-2i");
-+MODULE_PARM(cast,"1-2i");
-+MODULE_PARM(serpent,"1-2i");
-+MODULE_PARM(twofish,"1-2i");
-+#endif
-+MODULE_PARM_DESC(des_ede3, "0: disable | 1: force_enable | min,max: dontuse");
-+MODULE_PARM_DESC(aes, "0: disable | 1: force_enable | min,max: keybitlens");
-+MODULE_PARM_DESC(blowfish, "0: disable | 1: force_enable | min,max: keybitlens");
-+MODULE_PARM_DESC(cast, "0: disable | 1: force_enable | min,max: keybitlens");
-+MODULE_PARM_DESC(serpent, "0: disable | 1: force_enable | min,max: keybitlens");
-+MODULE_PARM_DESC(twofish, "0: disable | 1: force_enable | min,max: keybitlens");
-+
-+struct ipsec_alg_capi_cipher {
-+ const char *ciphername; /* cryptoapi's ciphername */
-+ unsigned blocksize;
-+ unsigned short minbits;
-+ unsigned short maxbits;
-+ int *parm; /* lkm param for this cipher */
-+ struct ipsec_alg_enc alg; /* note it's not a pointer */
-+};
-+static struct ipsec_alg_capi_cipher alg_capi_carray[] = {
-+ { CIPHERNAME_AES , 16, 128, 256, aes , { ixt_alg_id: ESP_AES, }},
-+ { CIPHERNAME_TWOFISH , 16, 128, 256, twofish, { ixt_alg_id: ESP_TWOFISH, }},
-+ { CIPHERNAME_SERPENT , 16, 128, 256, serpent, { ixt_alg_id: ESP_SERPENT, }},
-+ { CIPHERNAME_CAST , 8, 128, 128, cast , { ixt_alg_id: ESP_CAST, }},
-+ { CIPHERNAME_BLOWFISH , 8, 96, 448, blowfish,{ ixt_alg_id: ESP_BLOWFISH, }},
-+ { CIPHERNAME_3DES , 8, 192, 192, des_ede3,{ ixt_alg_id: ESP_3DES, }},
-+ { NULL, 0, 0, 0, NULL, {} }
-+};
-+#ifdef NOT_YET
-+struct ipsec_alg_capi_digest {
-+ const char *digestname; /* cryptoapi's digestname */
-+ struct digest_implementation *di;
-+ struct ipsec_alg_auth alg; /* note it's not a pointer */
-+};
-+static struct ipsec_alg_capi_cipher alg_capi_darray[] = {
-+ { DIGESTNAME_MD5, NULL, { ixt_alg_id: AH_MD5, }},
-+ { DIGESTNAME_SHA1, NULL, { ixt_alg_id: AH_SHA, }},
-+ { NULL, NULL, {} }
-+};
-+#endif
-+/*
-+ * "generic" linux cryptoapi setup_cipher() function
-+ */
-+int setup_cipher(const char *ciphername)
-+{
-+ return crypto_alg_available(ciphername, 0);
-+}
-+
-+/*
-+ * setups ipsec_alg_capi_cipher "hyper" struct components, calling
-+ * register_ipsec_alg for cointaned ipsec_alg object
-+ */
-+static void _capi_destroy_key (struct ipsec_alg_enc *alg, __u8 *key_e);
-+static __u8 * _capi_new_key (struct ipsec_alg_enc *alg, const __u8 *key, size_t keylen);
-+static int _capi_cbc_encrypt(struct ipsec_alg_enc *alg, __u8 * key_e, __u8 * in, int ilen, const __u8 * iv, int encrypt);
-+
-+static int
-+setup_ipsec_alg_capi_cipher(struct ipsec_alg_capi_cipher *cptr)
-+{
-+ int ret;
-+ cptr->alg.ixt_version = IPSEC_ALG_VERSION;
-+ cptr->alg.ixt_module = THIS_MODULE;
-+ atomic_set (& cptr->alg.ixt_refcnt, 0);
-+ strncpy (cptr->alg.ixt_name , cptr->ciphername, sizeof (cptr->alg.ixt_name));
-+
-+ cptr->alg.ixt_blocksize=cptr->blocksize;
-+ cptr->alg.ixt_keyminbits=cptr->minbits;
-+ cptr->alg.ixt_keymaxbits=cptr->maxbits;
-+ cptr->alg.ixt_state = 0;
-+ if (excl) cptr->alg.ixt_state |= IPSEC_ALG_ST_EXCL;
-+ cptr->alg.ixt_e_keylen=cptr->alg.ixt_keymaxbits/8;
-+ cptr->alg.ixt_e_ctx_size = 0;
-+ cptr->alg.ixt_alg_type = IPSEC_ALG_TYPE_ENCRYPT;
-+ cptr->alg.ixt_e_new_key = _capi_new_key;
-+ cptr->alg.ixt_e_destroy_key = _capi_destroy_key;
-+ cptr->alg.ixt_e_cbc_encrypt = _capi_cbc_encrypt;
-+ cptr->alg.ixt_data = cptr;
-+
-+ ret=register_ipsec_alg_enc(&cptr->alg);
-+ printk("setup_ipsec_alg_capi_cipher(): "
-+ "alg_type=%d alg_id=%d name=%s "
-+ "keyminbits=%d keymaxbits=%d, ret=%d\n",
-+ cptr->alg.ixt_alg_type,
-+ cptr->alg.ixt_alg_id,
-+ cptr->alg.ixt_name,
-+ cptr->alg.ixt_keyminbits,
-+ cptr->alg.ixt_keymaxbits,
-+ ret);
-+ return ret;
-+}
-+/*
-+ * called in ipsec_sa_wipe() time, will destroy key contexts
-+ * and do 1 unbind()
-+ */
-+static void
-+_capi_destroy_key (struct ipsec_alg_enc *alg, __u8 *key_e)
-+{
-+ struct crypto_tfm *tfm=(struct crypto_tfm*)key_e;
-+
-+ if (debug > 0)
-+ printk(KERN_DEBUG "klips_debug: _capi_destroy_key:"
-+ "name=%s key_e=%p \n",
-+ alg->ixt_name, key_e);
-+ if (!key_e) {
-+ printk(KERN_ERR "klips_debug: _capi_destroy_key:"
-+ "name=%s NULL key_e!\n",
-+ alg->ixt_name);
-+ return;
-+ }
-+ crypto_free_tfm(tfm);
-+}
-+
-+/*
-+ * create new key context, need alg->ixt_data to know which
-+ * (of many) cipher inside this module is the target
-+ */
-+static __u8 *
-+_capi_new_key (struct ipsec_alg_enc *alg, const __u8 *key, size_t keylen)
-+{
-+ struct ipsec_alg_capi_cipher *cptr;
-+ struct crypto_tfm *tfm=NULL;
-+
-+ cptr = alg->ixt_data;
-+ if (!cptr) {
-+ printk(KERN_ERR "_capi_new_key(): "
-+ "NULL ixt_data (?!) for \"%s\" algo\n"
-+ , alg->ixt_name);
-+ goto err;
-+ }
-+ if (debug > 0)
-+ printk(KERN_DEBUG "klips_debug:_capi_new_key:"
-+ "name=%s cptr=%p key=%p keysize=%d\n",
-+ alg->ixt_name, cptr, key, keylen);
-+
-+ /*
-+ * alloc tfm
-+ */
-+ tfm = crypto_alloc_tfm(cptr->ciphername, CRYPTO_TFM_MODE_CBC);
-+ if (!tfm) {
-+ printk(KERN_ERR "_capi_new_key(): "
-+ "NULL tfm for \"%s\" cryptoapi (\"%s\") algo\n"
-+ , alg->ixt_name, cptr->ciphername);
-+ goto err;
-+ }
-+ if (crypto_cipher_setkey(tfm, key, keylen) < 0) {
-+ printk(KERN_ERR "_capi_new_key(): "
-+ "failed new_key() for \"%s\" cryptoapi algo (keylen=%d)\n"
-+ , alg->ixt_name, keylen);
-+ crypto_free_tfm(tfm);
-+ tfm=NULL;
-+ }
-+err:
-+ if (debug > 0)
-+ printk(KERN_DEBUG "klips_debug:_capi_new_key:"
-+ "name=%s key=%p keylen=%d tfm=%p\n",
-+ alg->ixt_name, key, keylen, tfm);
-+ return (__u8 *) tfm;
-+}
-+/*
-+ * core encryption function: will use cx->ci to call actual cipher's
-+ * cbc function
-+ */
-+static int
-+_capi_cbc_encrypt(struct ipsec_alg_enc *alg, __u8 * key_e, __u8 * in, int ilen, const __u8 * iv, int encrypt) {
-+ int error =0;
-+ struct crypto_tfm *tfm=(struct crypto_tfm *)key_e;
-+ struct scatterlist sg = {
-+ .page = virt_to_page(in),
-+ .offset = (unsigned long)(in) % PAGE_SIZE,
-+ .length=ilen,
-+ };
-+ if (debug > 1)
-+ printk(KERN_DEBUG "klips_debug:_capi_cbc_encrypt:"
-+ "key_e=%p "
-+ "in=%p out=%p ilen=%d iv=%p encrypt=%d\n"
-+ , key_e
-+ , in, in, ilen, iv, encrypt);
-+ crypto_cipher_set_iv(tfm, iv, crypto_tfm_alg_ivsize(tfm));
-+ if (encrypt)
-+ error = crypto_cipher_encrypt (tfm, &sg, &sg, ilen);
-+ else
-+ error = crypto_cipher_decrypt (tfm, &sg, &sg, ilen);
-+ if (debug > 1)
-+ printk(KERN_DEBUG "klips_debug:_capi_cbc_encrypt:"
-+ "error=%d\n"
-+ , error);
-+ return (error<0)? error : ilen;
-+}
-+/*
-+ * main initialization loop: for each cipher in list, do
-+ * 1) setup cryptoapi cipher else continue
-+ * 2) register ipsec_alg object
-+ */
-+static int
-+setup_cipher_list (struct ipsec_alg_capi_cipher* clist)
-+{
-+ struct ipsec_alg_capi_cipher *cptr;
-+ /* foreach cipher in list ... */
-+ for (cptr=clist;cptr->ciphername;cptr++) {
-+ /*
-+ * see if cipher has been disabled (0) or
-+ * if noauto set and not enabled (1)
-+ */
-+ if (cptr->parm[0] == 0 || (noauto && cptr->parm[0] < 0)) {
-+ if (debug>0)
-+ printk(KERN_INFO "setup_cipher_list(): "
-+ "ciphername=%s skipped at user request: "
-+ "noauto=%d parm[0]=%d parm[1]=%d\n"
-+ , cptr->ciphername
-+ , noauto
-+ , cptr->parm[0]
-+ , cptr->parm[1]);
-+ continue;
-+ }
-+ /*
-+ * use a local ci to avoid touching cptr->ci,
-+ * if register ipsec_alg success then bind cipher
-+ */
-+ if( setup_cipher(cptr->ciphername) ) {
-+ if (debug > 0)
-+ printk(KERN_DEBUG "klips_debug:"
-+ "setup_cipher_list():"
-+ "ciphername=%s found\n"
-+ , cptr->ciphername);
-+ if (setup_ipsec_alg_capi_cipher(cptr) == 0) {
-+
-+
-+ } else {
-+ printk(KERN_ERR "klips_debug:"
-+ "setup_cipher_list():"
-+ "ciphername=%s failed ipsec_alg_register\n"
-+ , cptr->ciphername);
-+ }
-+ } else {
-+ if (debug>0)
-+ printk(KERN_INFO "setup_cipher_list(): lookup for ciphername=%s: not found \n",
-+ cptr->ciphername);
-+ }
-+ }
-+ return 0;
-+}
-+/*
-+ * deregister ipsec_alg objects and unbind ciphers
-+ */
-+static int
-+unsetup_cipher_list (struct ipsec_alg_capi_cipher* clist)
-+{
-+ struct ipsec_alg_capi_cipher *cptr;
-+ /* foreach cipher in list ... */
-+ for (cptr=clist;cptr->ciphername;cptr++) {
-+ if (cptr->alg.ixt_state & IPSEC_ALG_ST_REGISTERED) {
-+ unregister_ipsec_alg_enc(&cptr->alg);
-+ }
-+ }
-+ return 0;
-+}
-+/*
-+ * test loop for registered algos
-+ */
-+static int
-+test_cipher_list (struct ipsec_alg_capi_cipher* clist)
-+{
-+ int test_ret;
-+ struct ipsec_alg_capi_cipher *cptr;
-+ /* foreach cipher in list ... */
-+ for (cptr=clist;cptr->ciphername;cptr++) {
-+ if (cptr->alg.ixt_state & IPSEC_ALG_ST_REGISTERED) {
-+ test_ret=ipsec_alg_test(
-+ cptr->alg.ixt_alg_type,
-+ cptr->alg.ixt_alg_id,
-+ test);
-+ printk("test_cipher_list(alg_type=%d alg_id=%d): test_ret=%d\n",
-+ cptr->alg.ixt_alg_type,
-+ cptr->alg.ixt_alg_id,
-+ test_ret);
-+ }
-+ }
-+ return 0;
-+}
-+
-+IPSEC_ALG_MODULE_INIT( ipsec_cryptoapi_init )
-+{
-+ int ret, test_ret;
-+ if ((ret=setup_cipher_list(alg_capi_carray)) < 0)
-+ return -EPROTONOSUPPORT;
-+ if (ret==0 && test) {
-+ test_ret=test_cipher_list(alg_capi_carray);
-+ }
-+ return ret;
-+}
-+IPSEC_ALG_MODULE_EXIT( ipsec_cryptoapi_fini )
-+{
-+ unsetup_cipher_list(alg_capi_carray);
-+ return;
-+}
-+#ifdef MODULE_LICENSE
-+MODULE_LICENSE("GPL");
-+#endif
-+
-+EXPORT_NO_SYMBOLS;
-+#endif /* NO_CRYPTOAPI_SUPPORT */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/alg/scripts/mk-static_init.c.sh Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,18 @@
-+#!/bin/sh
-+cat << EOF
-+#include
-+#include
-+#include "freeswan/ipsec_alg.h"
-+$(for i in $*; do
-+ test -z "$i" && continue
-+ echo "extern int $i(void);"
-+done)
-+void ipsec_alg_static_init(void){
-+ int __attribute__ ((unused)) err=0;
-+$(for i in $*; do
-+ test -z "$i" && continue
-+ echo " if ((err=$i()) < 0)"
-+ echo " printk(KERN_WARNING \"$i() returned %d\", err);"
-+done)
-+}
-+EOF
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/anyaddr.c Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,150 @@
-+/*
-+ * special addresses
-+ * Copyright (C) 2000 Henry Spencer.
-+ *
-+ * This library is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU Library General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version. See .
-+ *
-+ * This library 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 Library General Public
-+ * License for more details.
-+ *
-+ * RCSID $Id: anyaddr.c,v 1.10 2004/07/10 07:43:47 mcr Exp $
-+ */
-+#include "openswan.h"
-+
-+/* these are mostly fallbacks for the no-IPv6-support-in-library case */
-+#ifndef IN6ADDR_ANY_INIT
-+#define IN6ADDR_ANY_INIT {{{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }}}
-+#endif
-+#ifndef IN6ADDR_LOOPBACK_INIT
-+#define IN6ADDR_LOOPBACK_INIT {{{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 }}}
-+#endif
-+
-+static struct in6_addr v6any = IN6ADDR_ANY_INIT;
-+static struct in6_addr v6loop = IN6ADDR_LOOPBACK_INIT;
-+
-+/*
-+ - anyaddr - initialize to the any-address value
-+ */
-+err_t /* NULL for success, else string literal */
-+anyaddr(af, dst)
-+int af; /* address family */
-+ip_address *dst;
-+{
-+ uint32_t v4any = htonl(INADDR_ANY);
-+
-+ switch (af) {
-+ case AF_INET:
-+ return initaddr((unsigned char *)&v4any, sizeof(v4any), af, dst);
-+ break;
-+ case AF_INET6:
-+ return initaddr((unsigned char *)&v6any, sizeof(v6any), af, dst);
-+ break;
-+ default:
-+ return "unknown address family in anyaddr/unspecaddr";
-+ break;
-+ }
-+}
-+
-+/*
-+ - unspecaddr - initialize to the unspecified-address value
-+ */
-+err_t /* NULL for success, else string literal */
-+unspecaddr(af, dst)
-+int af; /* address family */
-+ip_address *dst;
-+{
-+ return anyaddr(af, dst);
-+}
-+
-+/*
-+ - loopbackaddr - initialize to the loopback-address value
-+ */
-+err_t /* NULL for success, else string literal */
-+loopbackaddr(af, dst)
-+int af; /* address family */
-+ip_address *dst;
-+{
-+ uint32_t v4loop = htonl(INADDR_LOOPBACK);
-+
-+ switch (af) {
-+ case AF_INET:
-+ return initaddr((unsigned char *)&v4loop, sizeof(v4loop), af, dst);
-+ break;
-+ case AF_INET6:
-+ return initaddr((unsigned char *)&v6loop, sizeof(v6loop), af, dst);
-+ break;
-+ default:
-+ return "unknown address family in loopbackaddr";
-+ break;
-+ }
-+}
-+
-+/*
-+ - isanyaddr - test for the any-address value
-+ */
-+int
-+isanyaddr(src)
-+const ip_address *src;
-+{
-+ uint32_t v4any = htonl(INADDR_ANY);
-+ int cmp;
-+
-+ switch (src->u.v4.sin_family) {
-+ case AF_INET:
-+ cmp = memcmp(&src->u.v4.sin_addr.s_addr, &v4any, sizeof(v4any));
-+ break;
-+ case AF_INET6:
-+ cmp = memcmp(&src->u.v6.sin6_addr, &v6any, sizeof(v6any));
-+ break;
-+
-+ case 0:
-+ /* a zeroed structure is considered any address */
-+ return 1;
-+
-+ default:
-+ return 0;
-+ break;
-+ }
-+
-+ return (cmp == 0) ? 1 : 0;
-+}
-+
-+/*
-+ - isunspecaddr - test for the unspecified-address value
-+ */
-+int
-+isunspecaddr(src)
-+const ip_address *src;
-+{
-+ return isanyaddr(src);
-+}
-+
-+/*
-+ - isloopbackaddr - test for the loopback-address value
-+ */
-+int
-+isloopbackaddr(src)
-+const ip_address *src;
-+{
-+ uint32_t v4loop = htonl(INADDR_LOOPBACK);
-+ int cmp;
-+
-+ switch (src->u.v4.sin_family) {
-+ case AF_INET:
-+ cmp = memcmp(&src->u.v4.sin_addr.s_addr, &v4loop, sizeof(v4loop));
-+ break;
-+ case AF_INET6:
-+ cmp = memcmp(&src->u.v6.sin6_addr, &v6loop, sizeof(v6loop));
-+ break;
-+ default:
-+ return 0;
-+ break;
-+ }
-+
-+ return (cmp == 0) ? 1 : 0;
-+}
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/datatot.c Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,234 @@
-+/*
-+ * convert from binary data (e.g. key) to text form
-+ * Copyright (C) 2000 Henry Spencer.
-+ *
-+ * This library is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU Library General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version. See .
-+ *
-+ * This library 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 Library General Public
-+ * License for more details.
-+ *
-+ * RCSID $Id: datatot.c,v 1.9 2005/08/30 21:15:26 mcr Exp $
-+ */
-+#include "openswan.h"
-+
-+static void convert(const char *src, size_t nreal, int format, char *out);
-+
-+/*
-+ - datatot - convert data bytes to text
-+ */
-+size_t /* true length (with NUL) for success */
-+datatot(src, srclen, format, dst, dstlen)
-+const unsigned char *src;
-+size_t srclen;
-+int format; /* character indicating what format */
-+char *dst; /* need not be valid if dstlen is 0 */
-+size_t dstlen;
-+{
-+ size_t inblocksize; /* process this many bytes at a time */
-+ size_t outblocksize; /* producing this many */
-+ size_t breakevery; /* add a _ every this many (0 means don't) */
-+ size_t sincebreak; /* output bytes since last _ */
-+ char breakchar; /* character used to break between groups */
-+ unsigned char inblock[10]; /* enough for any format */
-+ char outblock[10]; /* enough for any format */
-+ char fake[1]; /* fake output area for dstlen == 0 */
-+ size_t needed; /* return value */
-+ char *stop; /* where the terminating NUL will go */
-+ size_t ntodo; /* remaining input */
-+ size_t nreal;
-+ char *out;
-+ char *prefix;
-+
-+ breakevery = 0;
-+ breakchar = '_';
-+
-+ switch (format) {
-+ case 0:
-+ case 'h':
-+ format = 'x';
-+ breakevery = 8;
-+ /* FALLTHROUGH */
-+ case 'x':
-+ inblocksize = 1;
-+ outblocksize = 2;
-+ prefix = "0x";
-+ break;
-+ case ':':
-+ format = 'x';
-+ breakevery = 2;
-+ breakchar = ':';
-+ /* FALLTHROUGH */
-+ case 16:
-+ inblocksize = 1;
-+ outblocksize = 2;
-+ prefix = "";
-+ format = 'x';
-+ break;
-+ case 's':
-+ inblocksize = 3;
-+ outblocksize = 4;
-+ prefix = "0s";
-+ break;
-+ case 64: /* beware, equals ' ' */
-+ inblocksize = 3;
-+ outblocksize = 4;
-+ prefix = "";
-+ format = 's';
-+ break;
-+ default:
-+ return 0;
-+ break;
-+ }
-+
-+ user_assert(inblocksize < sizeof(inblock));
-+ user_assert(outblocksize < sizeof(outblock));
-+ user_assert(breakevery % outblocksize == 0);
-+
-+ if (srclen == 0)
-+ return 0;
-+ ntodo = srclen;
-+
-+ if (dstlen == 0) { /* dispose of awkward special case */
-+ dst = fake;
-+ dstlen = 1;
-+ }
-+ stop = dst + dstlen - 1;
-+
-+ nreal = strlen(prefix);
-+ needed = nreal; /* for starters */
-+ if (dstlen <= nreal) { /* prefix won't fit */
-+ strncpy(dst, prefix, dstlen - 1);
-+ dst += dstlen - 1;
-+ } else {
-+ strcpy(dst, prefix);
-+ dst += nreal;
-+ }
-+
-+ user_assert(dst <= stop);
-+ sincebreak = 0;
-+
-+ while (ntodo > 0) {
-+ if (ntodo < inblocksize) { /* incomplete input */
-+ memset(inblock, 0, sizeof(inblock));
-+ memcpy(inblock, src, ntodo);
-+ src = inblock;
-+ nreal = ntodo;
-+ ntodo = inblocksize;
-+ } else
-+ nreal = inblocksize;
-+ out = (outblocksize > stop - dst) ? outblock : dst;
-+
-+ convert((const char *)src, nreal, format, out);
-+ needed += outblocksize;
-+ sincebreak += outblocksize;
-+ if (dst < stop) {
-+ if (out != dst) {
-+ user_assert(outblocksize > stop - dst);
-+ memcpy(dst, out, stop - dst);
-+ dst = stop;
-+ } else
-+ dst += outblocksize;
-+ }
-+
-+ src += inblocksize;
-+ ntodo -= inblocksize;
-+ if (breakevery != 0 && sincebreak >= breakevery && ntodo > 0) {
-+ if (dst < stop)
-+ *dst++ = breakchar;
-+ needed++;
-+ sincebreak = 0;
-+ }
-+ }
-+
-+ user_assert(dst <= stop);
-+ *dst++ = '\0';
-+ needed++;
-+
-+ return needed;
-+}
-+
-+/*
-+ - convert - convert one input block to one output block
-+ */
-+static void
-+convert(src, nreal, format, out)
-+const char *src;
-+size_t nreal; /* how much of the input block is real */
-+int format;
-+char *out;
-+{
-+ static char hex[] = "0123456789abcdef";
-+ static char base64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-+ "abcdefghijklmnopqrstuvwxyz"
-+ "0123456789+/";
-+ unsigned char c;
-+ unsigned char c1, c2, c3;
-+
-+ user_assert(nreal > 0);
-+ switch (format) {
-+ case 'x':
-+ user_assert(nreal == 1);
-+ c = (unsigned char)*src;
-+ *out++ = hex[c >> 4];
-+ *out++ = hex[c & 0xf];
-+ break;
-+ case 's':
-+ c1 = (unsigned char)*src++;
-+ c2 = (unsigned char)*src++;
-+ c3 = (unsigned char)*src++;
-+ *out++ = base64[c1 >> 2]; /* top 6 bits of c1 */
-+ c = (c1 & 0x3) << 4; /* bottom 2 of c1... */
-+ c |= c2 >> 4; /* ...top 4 of c2 */
-+ *out++ = base64[c];
-+ if (nreal == 1)
-+ *out++ = '=';
-+ else {
-+ c = (c2 & 0xf) << 2; /* bottom 4 of c2... */
-+ c |= c3 >> 6; /* ...top 2 of c3 */
-+ *out++ = base64[c];
-+ }
-+ if (nreal <= 2)
-+ *out++ = '=';
-+ else
-+ *out++ = base64[c3 & 0x3f]; /* bottom 6 of c3 */
-+ break;
-+ default:
-+ user_assert(nreal == 0); /* unknown format */
-+ break;
-+ }
-+}
-+
-+/*
-+ - datatoa - convert data to ASCII
-+ * backward-compatibility synonym for datatot
-+ */
-+size_t /* true length (with NUL) for success */
-+datatoa(src, srclen, format, dst, dstlen)
-+const unsigned char *src;
-+size_t srclen;
-+int format; /* character indicating what format */
-+char *dst; /* need not be valid if dstlen is 0 */
-+size_t dstlen;
-+{
-+ return datatot(src, srclen, format, dst, dstlen);
-+}
-+
-+/*
-+ - bytestoa - convert data bytes to ASCII
-+ * backward-compatibility synonym for datatot
-+ */
-+size_t /* true length (with NUL) for success */
-+bytestoa(src, srclen, format, dst, dstlen)
-+const unsigned char *src;
-+size_t srclen;
-+int format; /* character indicating what format */
-+char *dst; /* need not be valid if dstlen is 0 */
-+size_t dstlen;
-+{
-+ return datatot(src, srclen, format, dst, dstlen);
-+}
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/defconfig Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,63 @@
-+
-+#
-+# RCSID $Id: defconfig,v 1.30 2005/09/15 02:31:12 paul Exp $
-+#
-+
-+#
-+# Openswan IPSec implementation, KLIPS kernel config defaults
-+#
-+
-+#
-+# First, lets override stuff already set or not in the kernel config.
-+#
-+# We can't even think about leaving this off...
-+CONFIG_INET=y
-+
-+#
-+# This must be on for subnet protection.
-+CONFIG_IP_FORWARD=y
-+
-+# Shut off IPSEC masquerading if it has been enabled, since it will
-+# break the compile. IPPROTO_ESP and IPPROTO_AH were included in
-+# net/ipv4/ip_masq.c when they should have gone into include/linux/in.h.
-+CONFIG_IP_MASQUERADE_IPSEC=n
-+
-+#
-+# Next, lets set the recommended FreeS/WAN configuration.
-+#
-+
-+# To config as static (preferred), 'y'. To config as module, 'm'.
-+CONFIG_KLIPS=m
-+
-+# To do tunnel mode IPSec, this must be enabled.
-+CONFIG_KLIPS_IPIP=y
-+
-+# To enable authentication, say 'y'. (Highly recommended)
-+CONFIG_KLIPS_AH=y
-+
-+# Authentication algorithm(s):
-+CONFIG_KLIPS_AUTH_HMAC_MD5=y
-+CONFIG_KLIPS_AUTH_HMAC_SHA1=y
-+
-+# To enable encryption, say 'y'. (Highly recommended)
-+CONFIG_KLIPS_ESP=y
-+
-+# modular algo extensions (and new ALGOs)
-+CONFIG_KLIPS_ALG=y
-+
-+# Encryption algorithm(s):
-+CONFIG_KLIPS_ENC_3DES=y
-+CONFIG_KLIPS_ENC_AES=y
-+
-+# Use CryptoAPI for ALG? - by default, no.
-+CONFIG_KLIPS_ENC_CRYPTOAPI=n
-+
-+# IP Compression: new, probably still has minor bugs.
-+CONFIG_KLIPS_IPCOMP=y
-+
-+# To enable userspace-switchable KLIPS debugging, say 'y'.
-+CONFIG_KLIPS_DEBUG=y
-+
-+# OCF HW offloading, requires kernel patch
-+# CONFIG_KLIPS_OCF is not set
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/deflate.c Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,1351 @@
-+/* deflate.c -- compress data using the deflation algorithm
-+ * Copyright (C) 1995-2002 Jean-loup Gailly.
-+ * For conditions of distribution and use, see copyright notice in zlib.h
-+ */
-+
-+/*
-+ * ALGORITHM
-+ *
-+ * The "deflation" process depends on being able to identify portions
-+ * of the input text which are identical to earlier input (within a
-+ * sliding window trailing behind the input currently being processed).
-+ *
-+ * The most straightforward technique turns out to be the fastest for
-+ * most input files: try all possible matches and select the longest.
-+ * The key feature of this algorithm is that insertions into the string
-+ * dictionary are very simple and thus fast, and deletions are avoided
-+ * completely. Insertions are performed at each input character, whereas
-+ * string matches are performed only when the previous match ends. So it
-+ * is preferable to spend more time in matches to allow very fast string
-+ * insertions and avoid deletions. The matching algorithm for small
-+ * strings is inspired from that of Rabin & Karp. A brute force approach
-+ * is used to find longer strings when a small match has been found.
-+ * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze
-+ * (by Leonid Broukhis).
-+ * A previous version of this file used a more sophisticated algorithm
-+ * (by Fiala and Greene) which is guaranteed to run in linear amortized
-+ * time, but has a larger average cost, uses more memory and is patented.
-+ * However the F&G algorithm may be faster for some highly redundant
-+ * files if the parameter max_chain_length (described below) is too large.
-+ *
-+ * ACKNOWLEDGEMENTS
-+ *
-+ * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and
-+ * I found it in 'freeze' written by Leonid Broukhis.
-+ * Thanks to many people for bug reports and testing.
-+ *
-+ * REFERENCES
-+ *
-+ * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification".
-+ * Available in ftp://ds.internic.net/rfc/rfc1951.txt
-+ *
-+ * A description of the Rabin and Karp algorithm is given in the book
-+ * "Algorithms" by R. Sedgewick, Addison-Wesley, p252.
-+ *
-+ * Fiala,E.R., and Greene,D.H.
-+ * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595
-+ *
-+ */
-+
-+/* @(#) $Id: deflate.c,v 1.4 2004/07/10 07:48:37 mcr Exp $ */
-+
-+#include "deflate.h"
-+
-+local const char deflate_copyright[] =
-+ " deflate 1.1.4 Copyright 1995-2002 Jean-loup Gailly ";
-+/*
-+ If you use the zlib library in a product, an acknowledgment is welcome
-+ in the documentation of your product. If for some reason you cannot
-+ include such an acknowledgment, I would appreciate that you keep this
-+ copyright string in the executable of your product.
-+ */
-+
-+/* ===========================================================================
-+ * Function prototypes.
-+ */
-+typedef enum {
-+ need_more, /* block not completed, need more input or more output */
-+ block_done, /* block flush performed */
-+ finish_started, /* finish started, need only more output at next deflate */
-+ finish_done /* finish done, accept no more input or output */
-+} block_state;
-+
-+typedef block_state (*compress_func) OF((deflate_state *s, int flush));
-+/* Compression function. Returns the block state after the call. */
-+
-+local void fill_window OF((deflate_state *s));
-+local block_state deflate_stored OF((deflate_state *s, int flush));
-+local block_state deflate_fast OF((deflate_state *s, int flush));
-+local block_state deflate_slow OF((deflate_state *s, int flush));
-+local void lm_init OF((deflate_state *s));
-+local void putShortMSB OF((deflate_state *s, uInt b));
-+local void flush_pending OF((z_streamp strm));
-+local int read_buf OF((z_streamp strm, Bytef *buf, unsigned size));
-+#ifdef ASMV
-+ void match_init OF((void)); /* asm code initialization */
-+ uInt longest_match OF((deflate_state *s, IPos cur_match));
-+#else
-+local uInt longest_match OF((deflate_state *s, IPos cur_match));
-+#endif
-+
-+#ifdef DEBUG
-+local void check_match OF((deflate_state *s, IPos start, IPos match,
-+ int length));
-+#endif
-+
-+/* ===========================================================================
-+ * Local data
-+ */
-+
-+#define NIL 0
-+/* Tail of hash chains */
-+
-+#ifndef TOO_FAR
-+# define TOO_FAR 4096
-+#endif
-+/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
-+
-+#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
-+/* Minimum amount of lookahead, except at the end of the input file.
-+ * See deflate.c for comments about the MIN_MATCH+1.
-+ */
-+
-+/* Values for max_lazy_match, good_match and max_chain_length, depending on
-+ * the desired pack level (0..9). The values given below have been tuned to
-+ * exclude worst case performance for pathological files. Better values may be
-+ * found for specific files.
-+ */
-+typedef struct config_s {
-+ ush good_length; /* reduce lazy search above this match length */
-+ ush max_lazy; /* do not perform lazy search above this match length */
-+ ush nice_length; /* quit search above this match length */
-+ ush max_chain;
-+ compress_func func;
-+} config;
-+
-+local const config configuration_table[10] = {
-+/* good lazy nice chain */
-+/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */
-+/* 1 */ {4, 4, 8, 4, deflate_fast}, /* maximum speed, no lazy matches */
-+/* 2 */ {4, 5, 16, 8, deflate_fast},
-+/* 3 */ {4, 6, 32, 32, deflate_fast},
-+
-+/* 4 */ {4, 4, 16, 16, deflate_slow}, /* lazy matches */
-+/* 5 */ {8, 16, 32, 32, deflate_slow},
-+/* 6 */ {8, 16, 128, 128, deflate_slow},
-+/* 7 */ {8, 32, 128, 256, deflate_slow},
-+/* 8 */ {32, 128, 258, 1024, deflate_slow},
-+/* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* maximum compression */
-+
-+/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
-+ * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
-+ * meaning.
-+ */
-+
-+#define EQUAL 0
-+/* result of memcmp for equal strings */
-+
-+struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
-+
-+/* ===========================================================================
-+ * Update a hash value with the given input byte
-+ * IN assertion: all calls to to UPDATE_HASH are made with consecutive
-+ * input characters, so that a running hash key can be computed from the
-+ * previous key instead of complete recalculation each time.
-+ */
-+#define UPDATE_HASH(s,h,c) (h = (((h)<hash_shift) ^ (c)) & s->hash_mask)
-+
-+
-+/* ===========================================================================
-+ * Insert string str in the dictionary and set match_head to the previous head
-+ * of the hash chain (the most recent string with same hash key). Return
-+ * the previous length of the hash chain.
-+ * If this file is compiled with -DFASTEST, the compression level is forced
-+ * to 1, and no hash chains are maintained.
-+ * IN assertion: all calls to to INSERT_STRING are made with consecutive
-+ * input characters and the first MIN_MATCH bytes of str are valid
-+ * (except for the last MIN_MATCH-1 bytes of the input file).
-+ */
-+#ifdef FASTEST
-+#define INSERT_STRING(s, str, match_head) \
-+ (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
-+ match_head = s->head[s->ins_h], \
-+ s->head[s->ins_h] = (Pos)(str))
-+#else
-+#define INSERT_STRING(s, str, match_head) \
-+ (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
-+ s->prev[(str) & s->w_mask] = match_head = s->head[s->ins_h], \
-+ s->head[s->ins_h] = (Pos)(str))
-+#endif
-+
-+/* ===========================================================================
-+ * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
-+ * prev[] will be initialized on the fly.
-+ */
-+#define CLEAR_HASH(s) \
-+ s->head[s->hash_size-1] = NIL; \
-+ zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head));
-+
-+/* ========================================================================= */
-+int ZEXPORT deflateInit_(strm, level, version, stream_size)
-+ z_streamp strm;
-+ int level;
-+ const char *version;
-+ int stream_size;
-+{
-+ return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL,
-+ Z_DEFAULT_STRATEGY, version, stream_size);
-+ /* To do: ignore strm->next_in if we use it as window */
-+}
-+
-+/* ========================================================================= */
-+int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
-+ version, stream_size)
-+ z_streamp strm;
-+ int level;
-+ int method;
-+ int windowBits;
-+ int memLevel;
-+ int strategy;
-+ const char *version;
-+ int stream_size;
-+{
-+ deflate_state *s;
-+ int noheader = 0;
-+ static const char* my_version = ZLIB_VERSION;
-+
-+ ushf *overlay;
-+ /* We overlay pending_buf and d_buf+l_buf. This works since the average
-+ * output size for (length,distance) codes is <= 24 bits.
-+ */
-+
-+ if (version == Z_NULL || version[0] != my_version[0] ||
-+ stream_size != sizeof(z_stream)) {
-+ return Z_VERSION_ERROR;
-+ }
-+ if (strm == Z_NULL) return Z_STREAM_ERROR;
-+
-+ strm->msg = Z_NULL;
-+ if (strm->zalloc == Z_NULL) {
-+ return Z_STREAM_ERROR;
-+/* strm->zalloc = zcalloc;
-+ strm->opaque = (voidpf)0;*/
-+ }
-+ if (strm->zfree == Z_NULL) return Z_STREAM_ERROR; /* strm->zfree = zcfree; */
-+
-+ if (level == Z_DEFAULT_COMPRESSION) level = 6;
-+#ifdef FASTEST
-+ level = 1;
-+#endif
-+
-+ if (windowBits < 0) { /* undocumented feature: suppress zlib header */
-+ noheader = 1;
-+ windowBits = -windowBits;
-+ }
-+ if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED ||
-+ windowBits < 9 || windowBits > 15 || level < 0 || level > 9 ||
-+ strategy < 0 || strategy > Z_HUFFMAN_ONLY) {
-+ return Z_STREAM_ERROR;
-+ }
-+ s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state));
-+ if (s == Z_NULL) return Z_MEM_ERROR;
-+ strm->state = (struct internal_state FAR *)s;
-+ s->strm = strm;
-+
-+ s->noheader = noheader;
-+ s->w_bits = windowBits;
-+ s->w_size = 1 << s->w_bits;
-+ s->w_mask = s->w_size - 1;
-+
-+ s->hash_bits = memLevel + 7;
-+ s->hash_size = 1 << s->hash_bits;
-+ s->hash_mask = s->hash_size - 1;
-+ s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
-+
-+ s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte));
-+ s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos));
-+ s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos));
-+
-+ s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
-+
-+ overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
-+ s->pending_buf = (uchf *) overlay;
-+ s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L);
-+
-+ if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL ||
-+ s->pending_buf == Z_NULL) {
-+ strm->msg = ERR_MSG(Z_MEM_ERROR);
-+ deflateEnd (strm);
-+ return Z_MEM_ERROR;
-+ }
-+ s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
-+ s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
-+
-+ s->level = level;
-+ s->strategy = strategy;
-+ s->method = (Byte)method;
-+
-+ return deflateReset(strm);
-+}
-+
-+/* ========================================================================= */
-+int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength)
-+ z_streamp strm;
-+ const Bytef *dictionary;
-+ uInt dictLength;
-+{
-+ deflate_state *s;
-+ uInt length = dictLength;
-+ uInt n;
-+ IPos hash_head = 0;
-+
-+ if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL ||
-+ strm->state->status != INIT_STATE) return Z_STREAM_ERROR;
-+
-+ s = strm->state;
-+ strm->adler = adler32(strm->adler, dictionary, dictLength);
-+
-+ if (length < MIN_MATCH) return Z_OK;
-+ if (length > MAX_DIST(s)) {
-+ length = MAX_DIST(s);
-+#ifndef USE_DICT_HEAD
-+ dictionary += dictLength - length; /* use the tail of the dictionary */
-+#endif
-+ }
-+ zmemcpy(s->window, dictionary, length);
-+ s->strstart = length;
-+ s->block_start = (long)length;
-+
-+ /* Insert all strings in the hash table (except for the last two bytes).
-+ * s->lookahead stays null, so s->ins_h will be recomputed at the next
-+ * call of fill_window.
-+ */
-+ s->ins_h = s->window[0];
-+ UPDATE_HASH(s, s->ins_h, s->window[1]);
-+ for (n = 0; n <= length - MIN_MATCH; n++) {
-+ INSERT_STRING(s, n, hash_head);
-+ }
-+ if (hash_head) hash_head = 0; /* to make compiler happy */
-+ return Z_OK;
-+}
-+
-+/* ========================================================================= */
-+int ZEXPORT deflateReset (strm)
-+ z_streamp strm;
-+{
-+ deflate_state *s;
-+
-+ if (strm == Z_NULL || strm->state == Z_NULL ||
-+ strm->zalloc == Z_NULL || strm->zfree == Z_NULL) return Z_STREAM_ERROR;
-+
-+ strm->total_in = strm->total_out = 0;
-+ strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */
-+ strm->data_type = Z_UNKNOWN;
-+
-+ s = (deflate_state *)strm->state;
-+ s->pending = 0;
-+ s->pending_out = s->pending_buf;
-+
-+ if (s->noheader < 0) {
-+ s->noheader = 0; /* was set to -1 by deflate(..., Z_FINISH); */
-+ }
-+ s->status = s->noheader ? BUSY_STATE : INIT_STATE;
-+ strm->adler = 1;
-+ s->last_flush = Z_NO_FLUSH;
-+
-+ _tr_init(s);
-+ lm_init(s);
-+
-+ return Z_OK;
-+}
-+
-+/* ========================================================================= */
-+int ZEXPORT deflateParams(strm, level, strategy)
-+ z_streamp strm;
-+ int level;
-+ int strategy;
-+{
-+ deflate_state *s;
-+ compress_func func;
-+ int err = Z_OK;
-+
-+ if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-+ s = strm->state;
-+
-+ if (level == Z_DEFAULT_COMPRESSION) {
-+ level = 6;
-+ }
-+ if (level < 0 || level > 9 || strategy < 0 || strategy > Z_HUFFMAN_ONLY) {
-+ return Z_STREAM_ERROR;
-+ }
-+ func = configuration_table[s->level].func;
-+
-+ if (func != configuration_table[level].func && strm->total_in != 0) {
-+ /* Flush the last buffer: */
-+ err = deflate(strm, Z_PARTIAL_FLUSH);
-+ }
-+ if (s->level != level) {
-+ s->level = level;
-+ s->max_lazy_match = configuration_table[level].max_lazy;
-+ s->good_match = configuration_table[level].good_length;
-+ s->nice_match = configuration_table[level].nice_length;
-+ s->max_chain_length = configuration_table[level].max_chain;
-+ }
-+ s->strategy = strategy;
-+ return err;
-+}
-+
-+/* =========================================================================
-+ * Put a short in the pending buffer. The 16-bit value is put in MSB order.
-+ * IN assertion: the stream state is correct and there is enough room in
-+ * pending_buf.
-+ */
-+local void putShortMSB (s, b)
-+ deflate_state *s;
-+ uInt b;
-+{
-+ put_byte(s, (Byte)(b >> 8));
-+ put_byte(s, (Byte)(b & 0xff));
-+}
-+
-+/* =========================================================================
-+ * Flush as much pending output as possible. All deflate() output goes
-+ * through this function so some applications may wish to modify it
-+ * to avoid allocating a large strm->next_out buffer and copying into it.
-+ * (See also read_buf()).
-+ */
-+local void flush_pending(strm)
-+ z_streamp strm;
-+{
-+ unsigned len = strm->state->pending;
-+
-+ if (len > strm->avail_out) len = strm->avail_out;
-+ if (len == 0) return;
-+
-+ zmemcpy(strm->next_out, strm->state->pending_out, len);
-+ strm->next_out += len;
-+ strm->state->pending_out += len;
-+ strm->total_out += len;
-+ strm->avail_out -= len;
-+ strm->state->pending -= len;
-+ if (strm->state->pending == 0) {
-+ strm->state->pending_out = strm->state->pending_buf;
-+ }
-+}
-+
-+/* ========================================================================= */
-+int ZEXPORT deflate (strm, flush)
-+ z_streamp strm;
-+ int flush;
-+{
-+ int old_flush; /* value of flush param for previous deflate call */
-+ deflate_state *s;
-+
-+ if (strm == Z_NULL || strm->state == Z_NULL ||
-+ flush > Z_FINISH || flush < 0) {
-+ return Z_STREAM_ERROR;
-+ }
-+ s = strm->state;
-+
-+ if (strm->next_out == Z_NULL ||
-+ (strm->next_in == Z_NULL && strm->avail_in != 0) ||
-+ (s->status == FINISH_STATE && flush != Z_FINISH)) {
-+ ERR_RETURN(strm, Z_STREAM_ERROR);
-+ }
-+ if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR);
-+
-+ s->strm = strm; /* just in case */
-+ old_flush = s->last_flush;
-+ s->last_flush = flush;
-+
-+ /* Write the zlib header */
-+ if (s->status == INIT_STATE) {
-+
-+ uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
-+ uInt level_flags = (s->level-1) >> 1;
-+
-+ if (level_flags > 3) level_flags = 3;
-+ header |= (level_flags << 6);
-+ if (s->strstart != 0) header |= PRESET_DICT;
-+ header += 31 - (header % 31);
-+
-+ s->status = BUSY_STATE;
-+ putShortMSB(s, header);
-+
-+ /* Save the adler32 of the preset dictionary: */
-+ if (s->strstart != 0) {
-+ putShortMSB(s, (uInt)(strm->adler >> 16));
-+ putShortMSB(s, (uInt)(strm->adler & 0xffff));
-+ }
-+ strm->adler = 1L;
-+ }
-+
-+ /* Flush as much pending output as possible */
-+ if (s->pending != 0) {
-+ flush_pending(strm);
-+ if (strm->avail_out == 0) {
-+ /* Since avail_out is 0, deflate will be called again with
-+ * more output space, but possibly with both pending and
-+ * avail_in equal to zero. There won't be anything to do,
-+ * but this is not an error situation so make sure we
-+ * return OK instead of BUF_ERROR at next call of deflate:
-+ */
-+ s->last_flush = -1;
-+ return Z_OK;
-+ }
-+
-+ /* Make sure there is something to do and avoid duplicate consecutive
-+ * flushes. For repeated and useless calls with Z_FINISH, we keep
-+ * returning Z_STREAM_END instead of Z_BUFF_ERROR.
-+ */
-+ } else if (strm->avail_in == 0 && flush <= old_flush &&
-+ flush != Z_FINISH) {
-+ ERR_RETURN(strm, Z_BUF_ERROR);
-+ }
-+
-+ /* User must not provide more input after the first FINISH: */
-+ if (s->status == FINISH_STATE && strm->avail_in != 0) {
-+ ERR_RETURN(strm, Z_BUF_ERROR);
-+ }
-+
-+ /* Start a new block or continue the current one.
-+ */
-+ if (strm->avail_in != 0 || s->lookahead != 0 ||
-+ (flush != Z_NO_FLUSH && s->status != FINISH_STATE)) {
-+ block_state bstate;
-+
-+ bstate = (*(configuration_table[s->level].func))(s, flush);
-+
-+ if (bstate == finish_started || bstate == finish_done) {
-+ s->status = FINISH_STATE;
-+ }
-+ if (bstate == need_more || bstate == finish_started) {
-+ if (strm->avail_out == 0) {
-+ s->last_flush = -1; /* avoid BUF_ERROR next call, see above */
-+ }
-+ return Z_OK;
-+ /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
-+ * of deflate should use the same flush parameter to make sure
-+ * that the flush is complete. So we don't have to output an
-+ * empty block here, this will be done at next call. This also
-+ * ensures that for a very small output buffer, we emit at most
-+ * one empty block.
-+ */
-+ }
-+ if (bstate == block_done) {
-+ if (flush == Z_PARTIAL_FLUSH) {
-+ _tr_align(s);
-+ } else { /* FULL_FLUSH or SYNC_FLUSH */
-+ _tr_stored_block(s, (char*)0, 0L, 0);
-+ /* For a full flush, this empty block will be recognized
-+ * as a special marker by inflate_sync().
-+ */
-+ if (flush == Z_FULL_FLUSH) {
-+ CLEAR_HASH(s); /* forget history */
-+ }
-+ }
-+ flush_pending(strm);
-+ if (strm->avail_out == 0) {
-+ s->last_flush = -1; /* avoid BUF_ERROR at next call, see above */
-+ return Z_OK;
-+ }
-+ }
-+ }
-+ Assert(strm->avail_out > 0, "bug2");
-+
-+ if (flush != Z_FINISH) return Z_OK;
-+ if (s->noheader) return Z_STREAM_END;
-+
-+ /* Write the zlib trailer (adler32) */
-+ putShortMSB(s, (uInt)(strm->adler >> 16));
-+ putShortMSB(s, (uInt)(strm->adler & 0xffff));
-+ flush_pending(strm);
-+ /* If avail_out is zero, the application will call deflate again
-+ * to flush the rest.
-+ */
-+ s->noheader = -1; /* write the trailer only once! */
-+ return s->pending != 0 ? Z_OK : Z_STREAM_END;
-+}
-+
-+/* ========================================================================= */
-+int ZEXPORT deflateEnd (strm)
-+ z_streamp strm;
-+{
-+ int status;
-+
-+ if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-+
-+ status = strm->state->status;
-+ if (status != INIT_STATE && status != BUSY_STATE &&
-+ status != FINISH_STATE) {
-+ return Z_STREAM_ERROR;
-+ }
-+
-+ /* Deallocate in reverse order of allocations: */
-+ TRY_FREE(strm, strm->state->pending_buf);
-+ TRY_FREE(strm, strm->state->head);
-+ TRY_FREE(strm, strm->state->prev);
-+ TRY_FREE(strm, strm->state->window);
-+
-+ ZFREE(strm, strm->state);
-+ strm->state = Z_NULL;
-+
-+ return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK;
-+}
-+
-+/* =========================================================================
-+ * Copy the source state to the destination state.
-+ * To simplify the source, this is not supported for 16-bit MSDOS (which
-+ * doesn't have enough memory anyway to duplicate compression states).
-+ */
-+int ZEXPORT deflateCopy (dest, source)
-+ z_streamp dest;
-+ z_streamp source;
-+{
-+#ifdef MAXSEG_64K
-+ return Z_STREAM_ERROR;
-+#else
-+ deflate_state *ds;
-+ deflate_state *ss;
-+ ushf *overlay;
-+
-+
-+ if (source == Z_NULL || dest == Z_NULL || source->state == Z_NULL) {
-+ return Z_STREAM_ERROR;
-+ }
-+
-+ ss = source->state;
-+
-+ *dest = *source;
-+
-+ ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state));
-+ if (ds == Z_NULL) return Z_MEM_ERROR;
-+ dest->state = (struct internal_state FAR *) ds;
-+ *ds = *ss;
-+ ds->strm = dest;
-+
-+ ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte));
-+ ds->prev = (Posf *) ZALLOC(dest, ds->w_size, sizeof(Pos));
-+ ds->head = (Posf *) ZALLOC(dest, ds->hash_size, sizeof(Pos));
-+ overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2);
-+ ds->pending_buf = (uchf *) overlay;
-+
-+ if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL ||
-+ ds->pending_buf == Z_NULL) {
-+ deflateEnd (dest);
-+ return Z_MEM_ERROR;
-+ }
-+ /* following zmemcpy do not work for 16-bit MSDOS */
-+ zmemcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte));
-+ zmemcpy(ds->prev, ss->prev, ds->w_size * sizeof(Pos));
-+ zmemcpy(ds->head, ss->head, ds->hash_size * sizeof(Pos));
-+ zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size);
-+
-+ ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf);
-+ ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush);
-+ ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize;
-+
-+ ds->l_desc.dyn_tree = ds->dyn_ltree;
-+ ds->d_desc.dyn_tree = ds->dyn_dtree;
-+ ds->bl_desc.dyn_tree = ds->bl_tree;
-+
-+ return Z_OK;
-+#endif
-+}
-+
-+/* ===========================================================================
-+ * Read a new buffer from the current input stream, update the adler32
-+ * and total number of bytes read. All deflate() input goes through
-+ * this function so some applications may wish to modify it to avoid
-+ * allocating a large strm->next_in buffer and copying from it.
-+ * (See also flush_pending()).
-+ */
-+local int read_buf(strm, buf, size)
-+ z_streamp strm;
-+ Bytef *buf;
-+ unsigned size;
-+{
-+ unsigned len = strm->avail_in;
-+
-+ if (len > size) len = size;
-+ if (len == 0) return 0;
-+
-+ strm->avail_in -= len;
-+
-+ if (!strm->state->noheader) {
-+ strm->adler = adler32(strm->adler, strm->next_in, len);
-+ }
-+ zmemcpy(buf, strm->next_in, len);
-+ strm->next_in += len;
-+ strm->total_in += len;
-+
-+ return (int)len;
-+}
-+
-+/* ===========================================================================
-+ * Initialize the "longest match" routines for a new zlib stream
-+ */
-+local void lm_init (s)
-+ deflate_state *s;
-+{
-+ s->window_size = (ulg)2L*s->w_size;
-+
-+ CLEAR_HASH(s);
-+
-+ /* Set the default configuration parameters:
-+ */
-+ s->max_lazy_match = configuration_table[s->level].max_lazy;
-+ s->good_match = configuration_table[s->level].good_length;
-+ s->nice_match = configuration_table[s->level].nice_length;
-+ s->max_chain_length = configuration_table[s->level].max_chain;
-+
-+ s->strstart = 0;
-+ s->block_start = 0L;
-+ s->lookahead = 0;
-+ s->match_length = s->prev_length = MIN_MATCH-1;
-+ s->match_available = 0;
-+ s->ins_h = 0;
-+#ifdef ASMV
-+ match_init(); /* initialize the asm code */
-+#endif
-+}
-+
-+/* ===========================================================================
-+ * Set match_start to the longest match starting at the given string and
-+ * return its length. Matches shorter or equal to prev_length are discarded,
-+ * in which case the result is equal to prev_length and match_start is
-+ * garbage.
-+ * IN assertions: cur_match is the head of the hash chain for the current
-+ * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
-+ * OUT assertion: the match length is not greater than s->lookahead.
-+ */
-+#ifndef ASMV
-+/* For 80x86 and 680x0, an optimized version will be provided in match.asm or
-+ * match.S. The code will be functionally equivalent.
-+ */
-+#ifndef FASTEST
-+local uInt longest_match(s, cur_match)
-+ deflate_state *s;
-+ IPos cur_match; /* current match */
-+{
-+ unsigned chain_length = s->max_chain_length;/* max hash chain length */
-+ register Bytef *scan = s->window + s->strstart; /* current string */
-+ register Bytef *match; /* matched string */
-+ register int len; /* length of current match */
-+ int best_len = s->prev_length; /* best match length so far */
-+ int nice_match = s->nice_match; /* stop if match long enough */
-+ IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
-+ s->strstart - (IPos)MAX_DIST(s) : NIL;
-+ /* Stop when cur_match becomes <= limit. To simplify the code,
-+ * we prevent matches with the string of window index 0.
-+ */
-+ Posf *prev = s->prev;
-+ uInt wmask = s->w_mask;
-+
-+#ifdef UNALIGNED_OK
-+ /* Compare two bytes at a time. Note: this is not always beneficial.
-+ * Try with and without -DUNALIGNED_OK to check.
-+ */
-+ register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1;
-+ register ush scan_start = *(ushf*)scan;
-+ register ush scan_end = *(ushf*)(scan+best_len-1);
-+#else
-+ register Bytef *strend = s->window + s->strstart + MAX_MATCH;
-+ register Byte scan_end1 = scan[best_len-1];
-+ register Byte scan_end = scan[best_len];
-+#endif
-+
-+ /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
-+ * It is easy to get rid of this optimization if necessary.
-+ */
-+ Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
-+
-+ /* Do not waste too much time if we already have a good match: */
-+ if (s->prev_length >= s->good_match) {
-+ chain_length >>= 2;
-+ }
-+ /* Do not look for matches beyond the end of the input. This is necessary
-+ * to make deflate deterministic.
-+ */
-+ if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
-+
-+ Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
-+
-+ do {
-+ Assert(cur_match < s->strstart, "no future");
-+ match = s->window + cur_match;
-+
-+ /* Skip to next match if the match length cannot increase
-+ * or if the match length is less than 2:
-+ */
-+#if (defined(UNALIGNED_OK) && MAX_MATCH == 258)
-+ /* This code assumes sizeof(unsigned short) == 2. Do not use
-+ * UNALIGNED_OK if your compiler uses a different size.
-+ */
-+ if (*(ushf*)(match+best_len-1) != scan_end ||
-+ *(ushf*)match != scan_start) continue;
-+
-+ /* It is not necessary to compare scan[2] and match[2] since they are
-+ * always equal when the other bytes match, given that the hash keys
-+ * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at
-+ * strstart+3, +5, ... up to strstart+257. We check for insufficient
-+ * lookahead only every 4th comparison; the 128th check will be made
-+ * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is
-+ * necessary to put more guard bytes at the end of the window, or
-+ * to check more often for insufficient lookahead.
-+ */
-+ Assert(scan[2] == match[2], "scan[2]?");
-+ scan++, match++;
-+ do {
-+ } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-+ *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-+ *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-+ *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-+ scan < strend);
-+ /* The funny "do {}" generates better code on most compilers */
-+
-+ /* Here, scan <= window+strstart+257 */
-+ Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-+ if (*scan == *match) scan++;
-+
-+ len = (MAX_MATCH - 1) - (int)(strend-scan);
-+ scan = strend - (MAX_MATCH-1);
-+
-+#else /* UNALIGNED_OK */
-+
-+ if (match[best_len] != scan_end ||
-+ match[best_len-1] != scan_end1 ||
-+ *match != *scan ||
-+ *++match != scan[1]) continue;
-+
-+ /* The check at best_len-1 can be removed because it will be made
-+ * again later. (This heuristic is not always a win.)
-+ * It is not necessary to compare scan[2] and match[2] since they
-+ * are always equal when the other bytes match, given that
-+ * the hash keys are equal and that HASH_BITS >= 8.
-+ */
-+ scan += 2, match++;
-+ Assert(*scan == *match, "match[2]?");
-+
-+ /* We check for insufficient lookahead only every 8th comparison;
-+ * the 256th check will be made at strstart+258.
-+ */
-+ do {
-+ } while (*++scan == *++match && *++scan == *++match &&
-+ *++scan == *++match && *++scan == *++match &&
-+ *++scan == *++match && *++scan == *++match &&
-+ *++scan == *++match && *++scan == *++match &&
-+ scan < strend);
-+
-+ Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-+
-+ len = MAX_MATCH - (int)(strend - scan);
-+ scan = strend - MAX_MATCH;
-+
-+#endif /* UNALIGNED_OK */
-+
-+ if (len > best_len) {
-+ s->match_start = cur_match;
-+ best_len = len;
-+ if (len >= nice_match) break;
-+#ifdef UNALIGNED_OK
-+ scan_end = *(ushf*)(scan+best_len-1);
-+#else
-+ scan_end1 = scan[best_len-1];
-+ scan_end = scan[best_len];
-+#endif
-+ }
-+ } while ((cur_match = prev[cur_match & wmask]) > limit
-+ && --chain_length != 0);
-+
-+ if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
-+ return s->lookahead;
-+}
-+
-+#else /* FASTEST */
-+/* ---------------------------------------------------------------------------
-+ * Optimized version for level == 1 only
-+ */
-+local uInt longest_match(s, cur_match)
-+ deflate_state *s;
-+ IPos cur_match; /* current match */
-+{
-+ register Bytef *scan = s->window + s->strstart; /* current string */
-+ register Bytef *match; /* matched string */
-+ register int len; /* length of current match */
-+ register Bytef *strend = s->window + s->strstart + MAX_MATCH;
-+
-+ /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
-+ * It is easy to get rid of this optimization if necessary.
-+ */
-+ Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
-+
-+ Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
-+
-+ Assert(cur_match < s->strstart, "no future");
-+
-+ match = s->window + cur_match;
-+
-+ /* Return failure if the match length is less than 2:
-+ */
-+ if (match[0] != scan[0] || match[1] != scan[1]) return MIN_MATCH-1;
-+
-+ /* The check at best_len-1 can be removed because it will be made
-+ * again later. (This heuristic is not always a win.)
-+ * It is not necessary to compare scan[2] and match[2] since they
-+ * are always equal when the other bytes match, given that
-+ * the hash keys are equal and that HASH_BITS >= 8.
-+ */
-+ scan += 2, match += 2;
-+ Assert(*scan == *match, "match[2]?");
-+
-+ /* We check for insufficient lookahead only every 8th comparison;
-+ * the 256th check will be made at strstart+258.
-+ */
-+ do {
-+ } while (*++scan == *++match && *++scan == *++match &&
-+ *++scan == *++match && *++scan == *++match &&
-+ *++scan == *++match && *++scan == *++match &&
-+ *++scan == *++match && *++scan == *++match &&
-+ scan < strend);
-+
-+ Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-+
-+ len = MAX_MATCH - (int)(strend - scan);
-+
-+ if (len < MIN_MATCH) return MIN_MATCH - 1;
-+
-+ s->match_start = cur_match;
-+ return len <= s->lookahead ? len : s->lookahead;
-+}
-+#endif /* FASTEST */
-+#endif /* ASMV */
-+
-+#ifdef DEBUG
-+/* ===========================================================================
-+ * Check that the match at match_start is indeed a match.
-+ */
-+local void check_match(s, start, match, length)
-+ deflate_state *s;
-+ IPos start, match;
-+ int length;
-+{
-+ /* check that the match is indeed a match */
-+ if (zmemcmp(s->window + match,
-+ s->window + start, length) != EQUAL) {
-+ fprintf(stderr, " start %u, match %u, length %d\n",
-+ start, match, length);
-+ do {
-+ fprintf(stderr, "%c%c", s->window[match++], s->window[start++]);
-+ } while (--length != 0);
-+ z_error("invalid match");
-+ }
-+ if (z_verbose > 1) {
-+ fprintf(stderr,"\\[%d,%d]", start-match, length);
-+ do { putc(s->window[start++], stderr); } while (--length != 0);
-+ }
-+}
-+#else
-+# define check_match(s, start, match, length)
-+#endif
-+
-+/* ===========================================================================
-+ * Fill the window when the lookahead becomes insufficient.
-+ * Updates strstart and lookahead.
-+ *
-+ * IN assertion: lookahead < MIN_LOOKAHEAD
-+ * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
-+ * At least one byte has been read, or avail_in == 0; reads are
-+ * performed for at least two bytes (required for the zip translate_eol
-+ * option -- not supported here).
-+ */
-+local void fill_window(s)
-+ deflate_state *s;
-+{
-+ register unsigned n, m;
-+ register Posf *p;
-+ unsigned more; /* Amount of free space at the end of the window. */
-+ uInt wsize = s->w_size;
-+
-+ do {
-+ more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart);
-+
-+ /* Deal with !@#$% 64K limit: */
-+ if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
-+ more = wsize;
-+
-+ } else if (more == (unsigned)(-1)) {
-+ /* Very unlikely, but possible on 16 bit machine if strstart == 0
-+ * and lookahead == 1 (input done one byte at time)
-+ */
-+ more--;
-+
-+ /* If the window is almost full and there is insufficient lookahead,
-+ * move the upper half to the lower one to make room in the upper half.
-+ */
-+ } else if (s->strstart >= wsize+MAX_DIST(s)) {
-+
-+ zmemcpy(s->window, s->window+wsize, (unsigned)wsize);
-+ s->match_start -= wsize;
-+ s->strstart -= wsize; /* we now have strstart >= MAX_DIST */
-+ s->block_start -= (long) wsize;
-+
-+ /* Slide the hash table (could be avoided with 32 bit values
-+ at the expense of memory usage). We slide even when level == 0
-+ to keep the hash table consistent if we switch back to level > 0
-+ later. (Using level 0 permanently is not an optimal usage of
-+ zlib, so we don't care about this pathological case.)
-+ */
-+ n = s->hash_size;
-+ p = &s->head[n];
-+ do {
-+ m = *--p;
-+ *p = (Pos)(m >= wsize ? m-wsize : NIL);
-+ } while (--n);
-+
-+ n = wsize;
-+#ifndef FASTEST
-+ p = &s->prev[n];
-+ do {
-+ m = *--p;
-+ *p = (Pos)(m >= wsize ? m-wsize : NIL);
-+ /* If n is not on any hash chain, prev[n] is garbage but
-+ * its value will never be used.
-+ */
-+ } while (--n);
-+#endif
-+ more += wsize;
-+ }
-+ if (s->strm->avail_in == 0) return;
-+
-+ /* If there was no sliding:
-+ * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
-+ * more == window_size - lookahead - strstart
-+ * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
-+ * => more >= window_size - 2*WSIZE + 2
-+ * In the BIG_MEM or MMAP case (not yet supported),
-+ * window_size == input_size + MIN_LOOKAHEAD &&
-+ * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
-+ * Otherwise, window_size == 2*WSIZE so more >= 2.
-+ * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
-+ */
-+ Assert(more >= 2, "more < 2");
-+
-+ n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more);
-+ s->lookahead += n;
-+
-+ /* Initialize the hash value now that we have some input: */
-+ if (s->lookahead >= MIN_MATCH) {
-+ s->ins_h = s->window[s->strstart];
-+ UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]);
-+#if MIN_MATCH != 3
-+ Call UPDATE_HASH() MIN_MATCH-3 more times
-+#endif
-+ }
-+ /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
-+ * but this is not important since only literal bytes will be emitted.
-+ */
-+
-+ } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0);
-+}
-+
-+/* ===========================================================================
-+ * Flush the current block, with given end-of-file flag.
-+ * IN assertion: strstart is set to the end of the current match.
-+ */
-+#define FLUSH_BLOCK_ONLY(s, eof) { \
-+ _tr_flush_block(s, (s->block_start >= 0L ? \
-+ (charf *)&s->window[(unsigned)s->block_start] : \
-+ (charf *)Z_NULL), \
-+ (ulg)((long)s->strstart - s->block_start), \
-+ (eof)); \
-+ s->block_start = s->strstart; \
-+ flush_pending(s->strm); \
-+ Tracev((stderr,"[FLUSH]")); \
-+}
-+
-+/* Same but force premature exit if necessary. */
-+#define FLUSH_BLOCK(s, eof) { \
-+ FLUSH_BLOCK_ONLY(s, eof); \
-+ if (s->strm->avail_out == 0) return (eof) ? finish_started : need_more; \
-+}
-+
-+/* ===========================================================================
-+ * Copy without compression as much as possible from the input stream, return
-+ * the current block state.
-+ * This function does not insert new strings in the dictionary since
-+ * uncompressible data is probably not useful. This function is used
-+ * only for the level=0 compression option.
-+ * NOTE: this function should be optimized to avoid extra copying from
-+ * window to pending_buf.
-+ */
-+local block_state deflate_stored(s, flush)
-+ deflate_state *s;
-+ int flush;
-+{
-+ /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
-+ * to pending_buf_size, and each stored block has a 5 byte header:
-+ */
-+ ulg max_block_size = 0xffff;
-+ ulg max_start;
-+
-+ if (max_block_size > s->pending_buf_size - 5) {
-+ max_block_size = s->pending_buf_size - 5;
-+ }
-+
-+ /* Copy as much as possible from input to output: */
-+ for (;;) {
-+ /* Fill the window as much as possible: */
-+ if (s->lookahead <= 1) {
-+
-+ Assert(s->strstart < s->w_size+MAX_DIST(s) ||
-+ s->block_start >= (long)s->w_size, "slide too late");
-+
-+ fill_window(s);
-+ if (s->lookahead == 0 && flush == Z_NO_FLUSH) return need_more;
-+
-+ if (s->lookahead == 0) break; /* flush the current block */
-+ }
-+ Assert(s->block_start >= 0L, "block gone");
-+
-+ s->strstart += s->lookahead;
-+ s->lookahead = 0;
-+
-+ /* Emit a stored block if pending_buf will be full: */
-+ max_start = s->block_start + max_block_size;
-+ if (s->strstart == 0 || (ulg)s->strstart >= max_start) {
-+ /* strstart == 0 is possible when wraparound on 16-bit machine */
-+ s->lookahead = (uInt)(s->strstart - max_start);
-+ s->strstart = (uInt)max_start;
-+ FLUSH_BLOCK(s, 0);
-+ }
-+ /* Flush if we may have to slide, otherwise block_start may become
-+ * negative and the data will be gone:
-+ */
-+ if (s->strstart - (uInt)s->block_start >= MAX_DIST(s)) {
-+ FLUSH_BLOCK(s, 0);
-+ }
-+ }
-+ FLUSH_BLOCK(s, flush == Z_FINISH);
-+ return flush == Z_FINISH ? finish_done : block_done;
-+}
-+
-+/* ===========================================================================
-+ * Compress as much as possible from the input stream, return the current
-+ * block state.
-+ * This function does not perform lazy evaluation of matches and inserts
-+ * new strings in the dictionary only for unmatched strings or for short
-+ * matches. It is used only for the fast compression options.
-+ */
-+local block_state deflate_fast(s, flush)
-+ deflate_state *s;
-+ int flush;
-+{
-+ IPos hash_head = NIL; /* head of the hash chain */
-+ int bflush; /* set if current block must be flushed */
-+
-+ for (;;) {
-+ /* Make sure that we always have enough lookahead, except
-+ * at the end of the input file. We need MAX_MATCH bytes
-+ * for the next match, plus MIN_MATCH bytes to insert the
-+ * string following the next match.
-+ */
-+ if (s->lookahead < MIN_LOOKAHEAD) {
-+ fill_window(s);
-+ if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
-+ return need_more;
-+ }
-+ if (s->lookahead == 0) break; /* flush the current block */
-+ }
-+
-+ /* Insert the string window[strstart .. strstart+2] in the
-+ * dictionary, and set hash_head to the head of the hash chain:
-+ */
-+ if (s->lookahead >= MIN_MATCH) {
-+ INSERT_STRING(s, s->strstart, hash_head);
-+ }
-+
-+ /* Find the longest match, discarding those <= prev_length.
-+ * At this point we have always match_length < MIN_MATCH
-+ */
-+ if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) {
-+ /* To simplify the code, we prevent matches with the string
-+ * of window index 0 (in particular we have to avoid a match
-+ * of the string with itself at the start of the input file).
-+ */
-+ if (s->strategy != Z_HUFFMAN_ONLY) {
-+ s->match_length = longest_match (s, hash_head);
-+ }
-+ /* longest_match() sets match_start */
-+ }
-+ if (s->match_length >= MIN_MATCH) {
-+ check_match(s, s->strstart, s->match_start, s->match_length);
-+
-+ _tr_tally_dist(s, s->strstart - s->match_start,
-+ s->match_length - MIN_MATCH, bflush);
-+
-+ s->lookahead -= s->match_length;
-+
-+ /* Insert new strings in the hash table only if the match length
-+ * is not too large. This saves time but degrades compression.
-+ */
-+#ifndef FASTEST
-+ if (s->match_length <= s->max_insert_length &&
-+ s->lookahead >= MIN_MATCH) {
-+ s->match_length--; /* string at strstart already in hash table */
-+ do {
-+ s->strstart++;
-+ INSERT_STRING(s, s->strstart, hash_head);
-+ /* strstart never exceeds WSIZE-MAX_MATCH, so there are
-+ * always MIN_MATCH bytes ahead.
-+ */
-+ } while (--s->match_length != 0);
-+ s->strstart++;
-+ } else
-+#endif
-+ {
-+ s->strstart += s->match_length;
-+ s->match_length = 0;
-+ s->ins_h = s->window[s->strstart];
-+ UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]);
-+#if MIN_MATCH != 3
-+ Call UPDATE_HASH() MIN_MATCH-3 more times
-+#endif
-+ /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
-+ * matter since it will be recomputed at next deflate call.
-+ */
-+ }
-+ } else {
-+ /* No match, output a literal byte */
-+ Tracevv((stderr,"%c", s->window[s->strstart]));
-+ _tr_tally_lit (s, s->window[s->strstart], bflush);
-+ s->lookahead--;
-+ s->strstart++;
-+ }
-+ if (bflush) FLUSH_BLOCK(s, 0);
-+ }
-+ FLUSH_BLOCK(s, flush == Z_FINISH);
-+ return flush == Z_FINISH ? finish_done : block_done;
-+}
-+
-+/* ===========================================================================
-+ * Same as above, but achieves better compression. We use a lazy
-+ * evaluation for matches: a match is finally adopted only if there is
-+ * no better match at the next window position.
-+ */
-+local block_state deflate_slow(s, flush)
-+ deflate_state *s;
-+ int flush;
-+{
-+ IPos hash_head = NIL; /* head of hash chain */
-+ int bflush; /* set if current block must be flushed */
-+
-+ /* Process the input block. */
-+ for (;;) {
-+ /* Make sure that we always have enough lookahead, except
-+ * at the end of the input file. We need MAX_MATCH bytes
-+ * for the next match, plus MIN_MATCH bytes to insert the
-+ * string following the next match.
-+ */
-+ if (s->lookahead < MIN_LOOKAHEAD) {
-+ fill_window(s);
-+ if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
-+ return need_more;
-+ }
-+ if (s->lookahead == 0) break; /* flush the current block */
-+ }
-+
-+ /* Insert the string window[strstart .. strstart+2] in the
-+ * dictionary, and set hash_head to the head of the hash chain:
-+ */
-+ if (s->lookahead >= MIN_MATCH) {
-+ INSERT_STRING(s, s->strstart, hash_head);
-+ }
-+
-+ /* Find the longest match, discarding those <= prev_length.
-+ */
-+ s->prev_length = s->match_length, s->prev_match = s->match_start;
-+ s->match_length = MIN_MATCH-1;
-+
-+ if (hash_head != NIL && s->prev_length < s->max_lazy_match &&
-+ s->strstart - hash_head <= MAX_DIST(s)) {
-+ /* To simplify the code, we prevent matches with the string
-+ * of window index 0 (in particular we have to avoid a match
-+ * of the string with itself at the start of the input file).
-+ */
-+ if (s->strategy != Z_HUFFMAN_ONLY) {
-+ s->match_length = longest_match (s, hash_head);
-+ }
-+ /* longest_match() sets match_start */
-+
-+ if (s->match_length <= 5 && (s->strategy == Z_FILTERED ||
-+ (s->match_length == MIN_MATCH &&
-+ s->strstart - s->match_start > TOO_FAR))) {
-+
-+ /* If prev_match is also MIN_MATCH, match_start is garbage
-+ * but we will ignore the current match anyway.
-+ */
-+ s->match_length = MIN_MATCH-1;
-+ }
-+ }
-+ /* If there was a match at the previous step and the current
-+ * match is not better, output the previous match:
-+ */
-+ if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) {
-+ uInt max_insert = s->strstart + s->lookahead - MIN_MATCH;
-+ /* Do not insert strings in hash table beyond this. */
-+
-+ check_match(s, s->strstart-1, s->prev_match, s->prev_length);
-+
-+ _tr_tally_dist(s, s->strstart -1 - s->prev_match,
-+ s->prev_length - MIN_MATCH, bflush);
-+
-+ /* Insert in hash table all strings up to the end of the match.
-+ * strstart-1 and strstart are already inserted. If there is not
-+ * enough lookahead, the last two strings are not inserted in
-+ * the hash table.
-+ */
-+ s->lookahead -= s->prev_length-1;
-+ s->prev_length -= 2;
-+ do {
-+ if (++s->strstart <= max_insert) {
-+ INSERT_STRING(s, s->strstart, hash_head);
-+ }
-+ } while (--s->prev_length != 0);
-+ s->match_available = 0;
-+ s->match_length = MIN_MATCH-1;
-+ s->strstart++;
-+
-+ if (bflush) FLUSH_BLOCK(s, 0);
-+
-+ } else if (s->match_available) {
-+ /* If there was no match at the previous position, output a
-+ * single literal. If there was a match but the current match
-+ * is longer, truncate the previous match to a single literal.
-+ */
-+ Tracevv((stderr,"%c", s->window[s->strstart-1]));
-+ _tr_tally_lit(s, s->window[s->strstart-1], bflush);
-+ if (bflush) {
-+ FLUSH_BLOCK_ONLY(s, 0);
-+ }
-+ s->strstart++;
-+ s->lookahead--;
-+ if (s->strm->avail_out == 0) return need_more;
-+ } else {
-+ /* There is no previous match to compare with, wait for
-+ * the next step to decide.
-+ */
-+ s->match_available = 1;
-+ s->strstart++;
-+ s->lookahead--;
-+ }
-+ }
-+ Assert (flush != Z_NO_FLUSH, "no flush?");
-+ if (s->match_available) {
-+ Tracevv((stderr,"%c", s->window[s->strstart-1]));
-+ _tr_tally_lit(s, s->window[s->strstart-1], bflush);
-+ s->match_available = 0;
-+ }
-+ FLUSH_BLOCK(s, flush == Z_FINISH);
-+ return flush == Z_FINISH ? finish_done : block_done;
-+}
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/deflate.h Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,318 @@
-+/* deflate.h -- internal compression state
-+ * Copyright (C) 1995-2002 Jean-loup Gailly
-+ * For conditions of distribution and use, see copyright notice in zlib.h
-+ */
-+
-+/* WARNING: this file should *not* be used by applications. It is
-+ part of the implementation of the compression library and is
-+ subject to change. Applications should only use zlib.h.
-+ */
-+
-+/* @(#) $Id: deflate.h,v 1.5 2004/07/10 07:48:38 mcr Exp $ */
-+
-+#ifndef _DEFLATE_H
-+#define _DEFLATE_H
-+
-+#include "zlib/zutil.h"
-+
-+/* ===========================================================================
-+ * Internal compression state.
-+ */
-+
-+#define LENGTH_CODES 29
-+/* number of length codes, not counting the special END_BLOCK code */
-+
-+#define LITERALS 256
-+/* number of literal bytes 0..255 */
-+
-+#define L_CODES (LITERALS+1+LENGTH_CODES)
-+/* number of Literal or Length codes, including the END_BLOCK code */
-+
-+#define D_CODES 30
-+/* number of distance codes */
-+
-+#define BL_CODES 19
-+/* number of codes used to transfer the bit lengths */
-+
-+#define HEAP_SIZE (2*L_CODES+1)
-+/* maximum heap size */
-+
-+#define MAX_BITS 15
-+/* All codes must not exceed MAX_BITS bits */
-+
-+#define INIT_STATE 42
-+#define BUSY_STATE 113
-+#define FINISH_STATE 666
-+/* Stream status */
-+
-+
-+/* Data structure describing a single value and its code string. */
-+typedef struct ct_data_s {
-+ union {
-+ ush freq; /* frequency count */
-+ ush code; /* bit string */
-+ } fc;
-+ union {
-+ ush dad; /* father node in Huffman tree */
-+ ush len; /* length of bit string */
-+ } dl;
-+} FAR ct_data;
-+
-+#define Freq fc.freq
-+#define Code fc.code
-+#define Dad dl.dad
-+#define Len dl.len
-+
-+typedef struct static_tree_desc_s static_tree_desc;
-+
-+typedef struct tree_desc_s {
-+ ct_data *dyn_tree; /* the dynamic tree */
-+ int max_code; /* largest code with non zero frequency */
-+ static_tree_desc *stat_desc; /* the corresponding static tree */
-+} FAR tree_desc;
-+
-+typedef ush Pos;
-+typedef Pos FAR Posf;
-+typedef unsigned IPos;
-+
-+/* A Pos is an index in the character window. We use short instead of int to
-+ * save space in the various tables. IPos is used only for parameter passing.
-+ */
-+
-+typedef struct internal_state {
-+ z_streamp strm; /* pointer back to this zlib stream */
-+ int status; /* as the name implies */
-+ Bytef *pending_buf; /* output still pending */
-+ ulg pending_buf_size; /* size of pending_buf */
-+ Bytef *pending_out; /* next pending byte to output to the stream */
-+ int pending; /* nb of bytes in the pending buffer */
-+ int noheader; /* suppress zlib header and adler32 */
-+ Byte data_type; /* UNKNOWN, BINARY or ASCII */
-+ Byte method; /* STORED (for zip only) or DEFLATED */
-+ int last_flush; /* value of flush param for previous deflate call */
-+
-+ /* used by deflate.c: */
-+
-+ uInt w_size; /* LZ77 window size (32K by default) */
-+ uInt w_bits; /* log2(w_size) (8..16) */
-+ uInt w_mask; /* w_size - 1 */
-+
-+ Bytef *window;
-+ /* Sliding window. Input bytes are read into the second half of the window,
-+ * and move to the first half later to keep a dictionary of at least wSize
-+ * bytes. With this organization, matches are limited to a distance of
-+ * wSize-MAX_MATCH bytes, but this ensures that IO is always
-+ * performed with a length multiple of the block size. Also, it limits
-+ * the window size to 64K, which is quite useful on MSDOS.
-+ * To do: use the user input buffer as sliding window.
-+ */
-+
-+ ulg window_size;
-+ /* Actual size of window: 2*wSize, except when the user input buffer
-+ * is directly used as sliding window.
-+ */
-+
-+ Posf *prev;
-+ /* Link to older string with same hash index. To limit the size of this
-+ * array to 64K, this link is maintained only for the last 32K strings.
-+ * An index in this array is thus a window index modulo 32K.
-+ */
-+
-+ Posf *head; /* Heads of the hash chains or NIL. */
-+
-+ uInt ins_h; /* hash index of string to be inserted */
-+ uInt hash_size; /* number of elements in hash table */
-+ uInt hash_bits; /* log2(hash_size) */
-+ uInt hash_mask; /* hash_size-1 */
-+
-+ uInt hash_shift;
-+ /* Number of bits by which ins_h must be shifted at each input
-+ * step. It must be such that after MIN_MATCH steps, the oldest
-+ * byte no longer takes part in the hash key, that is:
-+ * hash_shift * MIN_MATCH >= hash_bits
-+ */
-+
-+ long block_start;
-+ /* Window position at the beginning of the current output block. Gets
-+ * negative when the window is moved backwards.
-+ */
-+
-+ uInt match_length; /* length of best match */
-+ IPos prev_match; /* previous match */
-+ int match_available; /* set if previous match exists */
-+ uInt strstart; /* start of string to insert */
-+ uInt match_start; /* start of matching string */
-+ uInt lookahead; /* number of valid bytes ahead in window */
-+
-+ uInt prev_length;
-+ /* Length of the best match at previous step. Matches not greater than this
-+ * are discarded. This is used in the lazy match evaluation.
-+ */
-+
-+ uInt max_chain_length;
-+ /* To speed up deflation, hash chains are never searched beyond this
-+ * length. A higher limit improves compression ratio but degrades the
-+ * speed.
-+ */
-+
-+ uInt max_lazy_match;
-+ /* Attempt to find a better match only when the current match is strictly
-+ * smaller than this value. This mechanism is used only for compression
-+ * levels >= 4.
-+ */
-+# define max_insert_length max_lazy_match
-+ /* Insert new strings in the hash table only if the match length is not
-+ * greater than this length. This saves time but degrades compression.
-+ * max_insert_length is used only for compression levels <= 3.
-+ */
-+
-+ int level; /* compression level (1..9) */
-+ int strategy; /* favor or force Huffman coding*/
-+
-+ uInt good_match;
-+ /* Use a faster search when the previous match is longer than this */
-+
-+ int nice_match; /* Stop searching when current match exceeds this */
-+
-+ /* used by trees.c: */
-+ /* Didn't use ct_data typedef below to supress compiler warning */
-+ struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */
-+ struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
-+ struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */
-+
-+ struct tree_desc_s l_desc; /* desc. for literal tree */
-+ struct tree_desc_s d_desc; /* desc. for distance tree */
-+ struct tree_desc_s bl_desc; /* desc. for bit length tree */
-+
-+ ush bl_count[MAX_BITS+1];
-+ /* number of codes at each bit length for an optimal tree */
-+
-+ int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */
-+ int heap_len; /* number of elements in the heap */
-+ int heap_max; /* element of largest frequency */
-+ /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
-+ * The same heap array is used to build all trees.
-+ */
-+
-+ uch depth[2*L_CODES+1];
-+ /* Depth of each subtree used as tie breaker for trees of equal frequency
-+ */
-+
-+ uchf *l_buf; /* buffer for literals or lengths */
-+
-+ uInt lit_bufsize;
-+ /* Size of match buffer for literals/lengths. There are 4 reasons for
-+ * limiting lit_bufsize to 64K:
-+ * - frequencies can be kept in 16 bit counters
-+ * - if compression is not successful for the first block, all input
-+ * data is still in the window so we can still emit a stored block even
-+ * when input comes from standard input. (This can also be done for
-+ * all blocks if lit_bufsize is not greater than 32K.)
-+ * - if compression is not successful for a file smaller than 64K, we can
-+ * even emit a stored file instead of a stored block (saving 5 bytes).
-+ * This is applicable only for zip (not gzip or zlib).
-+ * - creating new Huffman trees less frequently may not provide fast
-+ * adaptation to changes in the input data statistics. (Take for
-+ * example a binary file with poorly compressible code followed by
-+ * a highly compressible string table.) Smaller buffer sizes give
-+ * fast adaptation but have of course the overhead of transmitting
-+ * trees more frequently.
-+ * - I can't count above 4
-+ */
-+
-+ uInt last_lit; /* running index in l_buf */
-+
-+ ushf *d_buf;
-+ /* Buffer for distances. To simplify the code, d_buf and l_buf have
-+ * the same number of elements. To use different lengths, an extra flag
-+ * array would be necessary.
-+ */
-+
-+ ulg opt_len; /* bit length of current block with optimal trees */
-+ ulg static_len; /* bit length of current block with static trees */
-+ uInt matches; /* number of string matches in current block */
-+ int last_eob_len; /* bit length of EOB code for last block */
-+
-+#ifdef DEBUG
-+ ulg compressed_len; /* total bit length of compressed file mod 2^32 */
-+ ulg bits_sent; /* bit length of compressed data sent mod 2^32 */
-+#endif
-+
-+ ush bi_buf;
-+ /* Output buffer. bits are inserted starting at the bottom (least
-+ * significant bits).
-+ */
-+ int bi_valid;
-+ /* Number of valid bits in bi_buf. All bits above the last valid bit
-+ * are always zero.
-+ */
-+
-+} FAR deflate_state;
-+
-+/* Output a byte on the stream.
-+ * IN assertion: there is enough room in pending_buf.
-+ */
-+#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);}
-+
-+
-+#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
-+/* Minimum amount of lookahead, except at the end of the input file.
-+ * See deflate.c for comments about the MIN_MATCH+1.
-+ */
-+
-+#define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD)
-+/* In order to simplify the code, particularly on 16 bit machines, match
-+ * distances are limited to MAX_DIST instead of WSIZE.
-+ */
-+
-+ /* in trees.c */
-+void _tr_init OF((deflate_state *s));
-+int _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc));
-+void _tr_flush_block OF((deflate_state *s, charf *buf, ulg stored_len,
-+ int eof));
-+void _tr_align OF((deflate_state *s));
-+void _tr_stored_block OF((deflate_state *s, charf *buf, ulg stored_len,
-+ int eof));
-+
-+#define d_code(dist) \
-+ ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)])
-+/* Mapping from a distance to a distance code. dist is the distance - 1 and
-+ * must not have side effects. _dist_code[256] and _dist_code[257] are never
-+ * used.
-+ */
-+
-+#ifndef DEBUG
-+/* Inline versions of _tr_tally for speed: */
-+
-+#if defined(GEN_TREES_H) || !defined(STDC)
-+ extern uch _length_code[];
-+ extern uch _dist_code[];
-+#else
-+ extern const uch _length_code[];
-+ extern const uch _dist_code[];
-+#endif
-+
-+# define _tr_tally_lit(s, c, flush) \
-+ { uch cc = (c); \
-+ s->d_buf[s->last_lit] = 0; \
-+ s->l_buf[s->last_lit++] = cc; \
-+ s->dyn_ltree[cc].Freq++; \
-+ flush = (s->last_lit == s->lit_bufsize-1); \
-+ }
-+# define _tr_tally_dist(s, distance, length, flush) \
-+ { uch len = (length); \
-+ ush dist = (distance); \
-+ s->d_buf[s->last_lit] = dist; \
-+ s->l_buf[s->last_lit++] = len; \
-+ dist--; \
-+ s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
-+ s->dyn_dtree[d_code(dist)].Freq++; \
-+ flush = (s->last_lit == s->lit_bufsize-1); \
-+ }
-+#else
-+# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c)
-+# define _tr_tally_dist(s, distance, length, flush) \
-+ flush = _tr_tally(s, distance, length)
-+#endif
-+
-+#endif /* _DEFLATE_H */
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/des/COPYRIGHT Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,50 @@
-+Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
-+All rights reserved.
-+
-+This package is an DES implementation written by Eric Young (eay@cryptsoft.com).
-+The implementation was written so as to conform with MIT's libdes.
-+
-+This library is free for commercial and non-commercial use as long as
-+the following conditions are aheared to. The following conditions
-+apply to all code found in this distribution.
-+
-+Copyright remains Eric Young's, and as such any Copyright notices in
-+the code are not to be removed.
-+If this package is used in a product, Eric Young should be given attribution
-+as the author of that the SSL library. This can be in the form of a textual
-+message at program startup or in documentation (online or textual) provided
-+with the package.
-+
-+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 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 Eric Young (eay@cryptsoft.com)
-+
-+THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``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)
-+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.
-+
-+The license and distribution terms for any publically available version or
-+derivative of this code cannot be changed. i.e. this code cannot simply be
-+copied and put under another distrubution license
-+[including the GNU Public License.]
-+
-+The reason behind this being stated in this direct manner is past
-+experience in code simply being copied and the attribution removed
-+from it and then being distributed as part of other packages. This
-+implementation was a non-trivial and unpaid effort.
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/des/INSTALL Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,69 @@
-+Check the CC and CFLAGS lines in the makefile
-+
-+If your C library does not support the times(3) function, change the
-+#define TIMES to
-+#undef TIMES in speed.c
-+If it does, check the HZ value for the times(3) function.
-+If your system does not define CLK_TCK it will be assumed to
-+be 100.0.
-+
-+If possible use gcc v 2.7.?
-+Turn on the maximum optimising (normally '-O3 -fomit-frame-pointer' for gcc)
-+In recent times, some system compilers give better performace.
-+
-+type 'make'
-+
-+run './destest' to check things are ok.
-+run './rpw' to check the tty code for reading passwords works.
-+run './speed' to see how fast those optimisations make the library run :-)
-+run './des_opts' to determin the best compile time options.
-+
-+The output from des_opts should be put in the makefile options and des_enc.c
-+should be rebuilt. For 64 bit computers, do not use the DES_PTR option.
-+For the DEC Alpha, edit des.h and change DES_LONG to 'unsigned int'
-+and then you can use the 'DES_PTR' option.
-+
-+The file options.txt has the options listed for best speed on quite a
-+few systems. Look and the options (UNROLL, PTR, RISC2 etc) and then
-+turn on the relevent option in the Makefile
-+
-+There are some special Makefile targets that make life easier.
-+make cc - standard cc build
-+make gcc - standard gcc build
-+make x86-elf - x86 assembler (elf), linux-elf.
-+make x86-out - x86 assembler (a.out), FreeBSD
-+make x86-solaris- x86 assembler
-+make x86-bsdi - x86 assembler (a.out with primative assembler).
-+
-+If at all possible use the assembler (for Windows NT/95, use
-+asm/win32.obj to link with). The x86 assembler is very very fast.
-+
-+A make install will by default install
-+libdes.a in /usr/local/lib/libdes.a
-+des in /usr/local/bin/des
-+des_crypt.man in /usr/local/man/man3/des_crypt.3
-+des.man in /usr/local/man/man1/des.1
-+des.h in /usr/include/des.h
-+
-+des(1) should be compatible with sunOS's but I have been unable to
-+test it.
-+
-+These routines should compile on MSDOS, most 32bit and 64bit version
-+of Unix (BSD and SYSV) and VMS, without modification.
-+The only problems should be #include files that are in the wrong places.
-+
-+These routines can be compiled under MSDOS.
-+I have successfully encrypted files using des(1) under MSDOS and then
-+decrypted the files on a SparcStation.
-+I have been able to compile and test the routines with
-+Microsoft C v 5.1 and Turbo C v 2.0.
-+The code in this library is in no way optimised for the 16bit
-+operation of MSDOS.
-+
-+When building for glibc, ignore all of the above and just unpack into
-+glibc-1.??/des and then gmake as per normal.
-+
-+As a final note on performace. Certain CPUs like sparcs and Alpha often give
-+a %10 speed difference depending on the link order. It is rather anoying
-+when one program reports 'x' DES encrypts a second and another reports
-+'x*0.9' the speed.
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/des/Makefile Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,60 @@
-+# Makefile for KLIPS kernel code as a module for 2.6 kernels
-+#
-+# Makefile for KLIPS kernel code as a module
-+# Copyright (C) 1998, 1999, 2000,2001 Richard Guy Briggs.
-+# Copyright (C) 2002-2004 Michael Richardson
-+#
-+# 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. See .
-+#
-+# 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.
-+#
-+# RCSID $Id: Makefile.fs2_6,v 1.3 2005/08/12 14:13:59 mcr Exp $
-+#
-+# Note! Dependencies are done automagically by 'make dep', which also
-+# removes any old dependencies. DON'T put your own dependencies here
-+# unless it's something special (ie not a .c file).
-+#
-+
-+obj-$(CONFIG_KLIPS_ENC_3DES) += ipsec_alg_3des.o
-+obj-$(CONFIG_KLIPS_ENC_3DES) += cbc_enc.o
-+obj-$(CONFIG_KLIPS_ENC_3DES) += ecb_enc.o
-+obj-$(CONFIG_KLIPS_ENC_3DES) += set_key.o
-+
-+ifeq ($(strip ${SUBARCH}),)
-+SUBARCH:=${ARCH}
-+endif
-+
-+# the assembly version expects frame pointers, which are
-+# optional in many kernel builds. If you want speed, you should
-+# probably use cryptoapi code instead.
-+USEASSEMBLY=${SUBARCH}${CONFIG_FRAME_POINTER}
-+ifeq (${USEASSEMBLY},i386y)
-+obj-$(CONFIG_KLIPS_ENC_3DES) += dx86unix.o
-+else
-+obj-$(CONFIG_KLIPS_ENC_3DES) += des_enc.o
-+endif
-+
-+#
-+# $Log: Makefile.fs2_6,v $
-+# Revision 1.3 2005/08/12 14:13:59 mcr
-+# do not use assembly code with there are no frame pointers,
-+# as it does not have the right linkages.
-+#
-+# Revision 1.2 2005/04/29 05:13:07 mcr
-+# 3DES algorithm code.
-+#
-+# Revision 1.1 2004/08/17 03:27:30 mcr
-+# klips 2.6 edits.
-+#
-+#
-+# Local Variables:
-+# compile-command: "(cd ../../.. && source umlsetup.sh && make -C ${POOLSPACE} module/ipsec.o)"
-+# End Variables:
-+#
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/des/README Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,54 @@
-+
-+ libdes, Version 4.01 10-Jan-97
-+
-+ Copyright (c) 1997, Eric Young
-+ All rights reserved.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms specified in COPYRIGHT.
-+
-+--
-+The primary ftp site for this library is
-+ftp://ftp.psy.uq.oz.au/pub/Crypto/DES/libdes-x.xx.tar.gz
-+libdes is now also shipped with SSLeay. Primary ftp site of
-+ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/SSLeay-x.x.x.tar.gz
-+
-+The best way to build this library is to build it as part of SSLeay.
-+
-+This kit builds a DES encryption library and a DES encryption program.
-+It supports ecb, cbc, ofb, cfb, triple ecb, triple cbc, triple ofb,
-+triple cfb, desx, and MIT's pcbc encryption modes and also has a fast
-+implementation of crypt(3).
-+It contains support routines to read keys from a terminal,
-+generate a random key, generate a key from an arbitrary length string,
-+read/write encrypted data from/to a file descriptor.
-+
-+The implementation was written so as to conform with the manual entry
-+for the des_crypt(3) library routines from MIT's project Athena.
-+
-+destest should be run after compilation to test the des routines.
-+rpw should be run after compilation to test the read password routines.
-+The des program is a replacement for the sun des command. I believe it
-+conforms to the sun version.
-+
-+The Imakefile is setup for use in the kerberos distribution.
-+
-+These routines are best compiled with gcc or any other good
-+optimising compiler.
-+Just turn you optimiser up to the highest settings and run destest
-+after the build to make sure everything works.
-+
-+I believe these routines are close to the fastest and most portable DES
-+routines that use small lookup tables (4.5k) that are publicly available.
-+The fcrypt routine is faster than ufc's fcrypt (when compiling with
-+gcc2 -O2) on the sparc 2 (1410 vs 1270) but is not so good on other machines
-+(on a sun3/260 168 vs 336). It is a function of CPU on chip cache size.
-+[ 10-Jan-97 and a function of an incorrect speed testing program in
-+ ufc which gave much better test figures that reality ].
-+
-+It is worth noting that on sparc and Alpha CPUs, performance of the DES
-+library can vary by upto %10 due to the positioning of files after application
-+linkage.
-+
-+Eric Young (eay@cryptsoft.com)
-+
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/des/README.freeswan Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,33 @@
-+The only changes the FreeS/WAN project has made to libdes-lite 4.04b are:
-+
-+We #ifdef-ed the declaration of DES_LONG in des.h, so it's more efficient
-+on the Alpha, instead of just noting the issue in a comment.
-+
-+We #ifdef-ed out the des_options() function in ecb_enc.c, because we don't
-+use it, and its call to sprintf() can cause subtle difficulties when KLIPS
-+is built as a module (depending on details of Linux configuration options).
-+
-+We changed some instances of CC=$(CC) in the Makefile to CC='$(CC)' to make
-+it cope better with Linux kernel Makefile stupidities, and took out an
-+explicit CC=gcc (unwise on systems with strange compilers).
-+
-+We deleted some references to and , and a declaration
-+of one function found only in the full libdes (not in libdes-lite), to
-+avoid dragging in bits of stdio/stdlib unnecessarily. (Our thanks to Hans
-+Schultz for spotting this and pointing out the fixes.)
-+
-+We deleted a couple of .obj files in the asm subdirectory, which appear to
-+have been included in the original library by accident.
-+
-+We have added an include of our Makefile.inc file, to permit overriding
-+things like choice of compiler (although the libdes Makefile would
-+probably need some work to make this effective).
-+
-+
-+
-+Note that Eric Young is no longer at the email address listed in these
-+files, and is (alas) no longer working on free crypto software.
-+
-+
-+
-+This file is RCSID $Id: README.freeswan,v 1.12 2004/07/10 08:06:51 mcr Exp $
---- /dev/null Tue Mar 11 13:02:56 2003
-+++ linux/net/ipsec/des/VERSION Mon Feb 9 13:51:03 2004
-@@ -0,0 +1,406 @@
-+Version 4.04
-+ Fixed a few tests in destest. Also added x86 assember for
-+ des_ncbc_encrypt() which is the standard cbc mode function.
-+ This makes a very very large performace difference.
-+ Ariel Glenn ariel@columbia.edu reports that the terminal
-+ 'turn echo off' can return (errno == EINVAL) under solaris
-+ when redirection is used. So I now catch that as well as ENOTTY.
-+
-+
-+Version 4.03
-+ Left a static out of enc_write.c, which caused to buffer to be
-+ continiously malloc()ed. Does anyone use these functions? I keep
-+ on feeling like removing them since I only had these in there
-+ for a version of kerberised login. Anyway, this was pointed out
-+ by Theo de Raadt
-+ The 'n' bit ofb code was wrong, it was not shifting the shift
-+ register. It worked correctly for n == 64. Thanks to
-+ Gigi Ankeny for pointing this one out.
-+
-+Version 4.02
-+ I was doing 'if (memcmp(weak_keys[i],key,sizeof(key)) == 0)'
-+ when checking for weak keys which is wrong :-(, pointed out by
-+ Markus F.X.J. Oberhumer .
-+
-+Version 4.01
-+ Even faster inner loop in the DES assembler for x86 and a modification
-+ for IP/FP which is faster on x86. Both of these changes are
-+ from Svend Olaf Mikkelsen . His
-+ changes make the assembler run %40 faster on a pentium. This is just
-+ a case of getting the instruction sequence 'just right'.
-+ All credit to 'Svend' :-)
-+ Quite a few special x86 'make' targets.
-+ A libdes-l (lite) distribution.
-+
-+Version 4.00
-+ After a bit of a pause, I'll up the major version number since this
-+ is mostly a performace release. I've added x86 assembler and
-+ added more options for performance. A %28 speedup for gcc
-+ on a pentium and the assembler is a %50 speedup.
-+ MIPS CPU's, sparc and Alpha are the main CPU's with speedups.
-+ Run des_opts to work out which options should be used.
-+ DES_RISC1/DES_RISC2 use alternative inner loops which use
-+ more registers but should give speedups on any CPU that does
-+ dual issue (pentium). DES_UNROLL unrolls the inner loop,
-+ which costs in code size.
-+
-+Version 3.26
-+ I've finally removed one of the shifts in D_ENCRYPT. This
-+ meant I've changed the des_SPtrans table (spr.h), the set_key()
-+ function and some things in des_enc.c. This has definitly
-+ made things faster :-). I've known about this one for some
-+ time but I've been too lazy to follow it up :-).
-+ Noticed that in the D_ENCRYPT() macro, we can just do L^=(..)^(..)^..
-+ instead of L^=((..)|(..)|(..).. This should save a register at
-+ least.
-+ Assember for x86. The file to replace is des_enc.c, which is replaced
-+ by one of the assembler files found in asm. Look at des/asm/readme
-+ for more info.
-+
-+ /* Modification to fcrypt so it can be compiled to support
-+ HPUX 10.x's long password format, define -DLONGCRYPT to use this.
-+ Thanks to Jens Kupferschmidt . */
-+
-+ SIGWINCH case put in des_read_passwd() so the function does not
-+ 'exit' if this function is recieved.
-+
-+Version 3.25 17/07/96
-+ Modified read_pwd.c so that stdin can be read if not a tty.
-+ Thanks to Jeff Barber for the patches.
-+ des_init_random_number_generator() shortened due to VMS linker
-+ limits.
-+ Added RSA's DESX cbc mode. It is a form of cbc encryption, with 2
-+ 8 byte quantites xored before and after encryption.
-+ des_xcbc_encryption() - the name is funny to preserve the des_
-+ prefix on all functions.
-+
-+Version 3.24 20/04/96
-+ The DES_PTR macro option checked and used by SSLeay configuration
-+
-+Version 3.23 11/04/96
-+ Added DES_LONG. If defined to 'unsigned int' on the DEC Alpha,
-+ it gives a %20 speedup :-)
-+ Fixed the problem with des.pl under perl5. The patches were
-+ sent by Ed Kubaitis (ejk@uiuc.edu).
-+ if fcrypt.c, changed values to handle illegal salt values the way
-+ normal crypt() implementations do. Some programs apparently use
-+ them :-(. The patch was sent by Bjorn Gronvall
-+
-+Version 3.22 29/11/95
-+ Bug in des(1), an error with the uuencoding stuff when the
-+ 'data' is small, thanks to Geoff Keating
-+ for the patch.
-+
-+Version 3.21 22/11/95
-+ After some emailing back and forth with
-+ Colin Plumb , I've tweaked a few things
-+ and in a future version I will probably put in some of the
-+ optimisation he suggested for use with the DES_USE_PTR option.
-+ Extra routines from Mark Murray for use in
-+ freeBSD. They mostly involve random number generation for use
-+ with kerberos. They involve evil machine specific system calls
-+ etc so I would normally suggest pushing this stuff into the
-+ application and/or using RAND_seed()/RAND_bytes() if you are
-+ using this DES library as part of SSLeay.
-+ Redone the read_pw() function so that it is cleaner and
-+ supports termios, thanks to Sameer Parekh
-+ for the initial patches for this.
-+ Renamed 3ecb_encrypt() to ecb3_encrypt(). This has been
-+ done just to make things more consistent.
-+ I have also now added triple DES versions of cfb and ofb.
-+
-+Version 3.20
-+ Damn, Damn, Damn, as pointed out by Mike_Spreitzer.PARC@xerox.com,
-+ my des_random_seed() function was only copying 4 bytes of the
-+ passed seed into the init structure. It is now fixed to copy 8.
-+ My own suggestion is to used something like MD5 :-)
-+
-+Version 3.19
-+ While looking at my code one day, I though, why do I keep on
-+ calling des_encrypt(in,out,ks,enc) when every function that
-+ calls it has in and out the same. So I dropped the 'out'
-+ parameter, people should not be using this function.
-+
-+Version 3.18 30/08/95
-+ Fixed a few bit with the distribution and the filenames.
-+ 3.17 had been munged via a move to DOS and back again.
-+ NO CODE CHANGES
-+
-+Version 3.17 14/07/95
-+ Fixed ede3 cbc which I had broken in 3.16. I have also
-+ removed some unneeded variables in 7-8 of the routines.
-+
-+Version 3.16 26/06/95
-+ Added des_encrypt2() which does not use IP/FP, used by triple
-+ des routines. Tweaked things a bit elsewhere. %13 speedup on
-+ sparc and %6 on a R4400 for ede3 cbc mode.
-+
-+Version 3.15 06/06/95
-+ Added des_ncbc_encrypt(), it is des_cbc mode except that it is
-+ 'normal' and copies the new iv value back over the top of the
-+ passed parameter.
-+ CHANGED des_ede3_cbc_encrypt() so that it too now overwrites
-+ the iv. THIS WILL BREAK EXISTING CODE, but since this function
-+ only new, I feel I can change it, not so with des_cbc_encrypt :-(.
-+ I need to update the documentation.
-+
-+Version 3.14 31/05/95
-+ New release upon the world, as part of my SSL implementation.
-+ New copyright and usage stuff. Basically free for all to use
-+ as long as you say it came from me :-)
-+
-+Version 3.13 31/05/95
-+ A fix in speed.c, if HZ is not defined, I set it to 100.0
-+ which is reasonable for most unixes except SunOS 4.x.
-+ I now have a #ifdef sun but timing for SunOS 4.x looked very
-+ good :-(. At my last job where I used SunOS 4.x, it was
-+ defined to be 60.0 (look at the old INSTALL documentation), at
-+ the last release had it changed to 100.0 since I now work with
-+ Solaris2 and SVR4 boxes.
-+ Thanks to Rory Chisholm for pointing this
-+ one out.
-+
-+Version 3.12 08/05/95
-+ As pointed out by The Crypt Keeper