summaryrefslogtreecommitdiffstats
path: root/rtemsbsd/include/rtems
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-10-09 22:42:09 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-10-10 09:06:58 +0200
commitbceabc95c1c85d793200446fa85f1ddc6313ea29 (patch)
tree973c8bd8deca9fd69913f2895cc91e0e6114d46c /rtemsbsd/include/rtems
parentAdd FreeBSD sources as a submodule (diff)
downloadrtems-libbsd-bceabc95c1c85d793200446fa85f1ddc6313ea29.tar.bz2
Move files to match FreeBSD layout
Diffstat (limited to 'rtemsbsd/include/rtems')
-rw-r--r--rtemsbsd/include/rtems/bsd/bsd.h44
-rw-r--r--rtemsbsd/include/rtems/bsd/local/bus_if.h786
-rw-r--r--rtemsbsd/include/rtems/bsd/local/cryptodev_if.h69
-rw-r--r--rtemsbsd/include/rtems/bsd/local/device_if.h340
-rw-r--r--rtemsbsd/include/rtems/bsd/local/linker_if.h1
-rw-r--r--rtemsbsd/include/rtems/bsd/local/miibus_if.h77
-rw-r--r--rtemsbsd/include/rtems/bsd/local/miidevs.h376
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_altq.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_atalk.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_bce.h1
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_bootp.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_bpf.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_bus.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_cam.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_carp.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_compat.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_config.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_cpu.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_ddb.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_device_polling.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_ef.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_enc.h1
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_hwpmc_hooks.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_inet.h1
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_inet6.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_init_path.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_ipdivert.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_ipdn.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_ipfw.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_ipsec.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_ipstealth.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_ipx.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_kdb.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_kdtrace.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_ktrace.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_mbuf_profiling.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_mbuf_stress_test.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_mpath.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_mrouting.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_natm.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_netgraph.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_ntp.h1
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_param.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_pf.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_posix.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_printf.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_route.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_scsi.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_sctp.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_tcpdebug.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_tdma.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_usb.h19
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_vlan.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_wlan.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_zero.h0
-rw-r--r--rtemsbsd/include/rtems/bsd/local/pci_if.h245
-rw-r--r--rtemsbsd/include/rtems/bsd/local/pcib_if.h137
-rw-r--r--rtemsbsd/include/rtems/bsd/local/usb_if.h31
-rw-r--r--rtemsbsd/include/rtems/bsd/local/usbdevs.h3433
-rw-r--r--rtemsbsd/include/rtems/bsd/local/usbdevs_data.h15530
-rw-r--r--rtemsbsd/include/rtems/bsd/local/vnode_if.h1546
-rw-r--r--rtemsbsd/include/rtems/bsd/local/vnode_if_newproto.h66
-rw-r--r--rtemsbsd/include/rtems/bsd/local/vnode_if_typedef.h170
-rw-r--r--rtemsbsd/include/rtems/bsd/sys/_types.h105
-rw-r--r--rtemsbsd/include/rtems/bsd/sys/errno.h194
-rw-r--r--rtemsbsd/include/rtems/bsd/sys/lock.h319
-rw-r--r--rtemsbsd/include/rtems/bsd/sys/param.h332
-rw-r--r--rtemsbsd/include/rtems/bsd/sys/resource.h176
-rw-r--r--rtemsbsd/include/rtems/bsd/sys/time.h351
-rw-r--r--rtemsbsd/include/rtems/bsd/sys/timespec.h10
-rw-r--r--rtemsbsd/include/rtems/bsd/sys/types.h360
-rw-r--r--rtemsbsd/include/rtems/bsd/sys/unistd.h188
-rw-r--r--rtemsbsd/include/rtems/netcmds-config.h33
-rw-r--r--rtemsbsd/include/rtems/rtems_bsdnet.h314
74 files changed, 25256 insertions, 0 deletions
diff --git a/rtemsbsd/include/rtems/bsd/bsd.h b/rtemsbsd/include/rtems/bsd/bsd.h
new file mode 100644
index 00000000..6eafb4e5
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/bsd.h
@@ -0,0 +1,44 @@
+/**
+ * @file
+ *
+ * @ingroup rtems_bsd
+ *
+ * @brief TODO.
+ */
+
+/*
+ * Copyright (c) 2009, 2010 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifndef _RTEMS_BSD_BSD_HH_
+#define _RTEMS_BSD_BSD_HH_
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <freebsd/machine/rtems-bsd-config.h>
+#include <freebsd/machine/rtems-bsd-select.h>
+#include <freebsd/machine/_align.h>
+
+rtems_status_code rtems_bsd_initialize(void);
+
+rtems_status_code rtems_bsd_initialize_with_interrupt_server(void);
+
+void rtems_bsd_shell_initialize(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* _RTEMS_BSD_BSD_HH_ */
diff --git a/rtemsbsd/include/rtems/bsd/local/bus_if.h b/rtemsbsd/include/rtems/bsd/local/bus_if.h
new file mode 100644
index 00000000..6a54d605
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/bus_if.h
@@ -0,0 +1,786 @@
+/*
+ * This file is produced automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from source file
+ * kern/bus_if.m
+ * with
+ * makeobjops.awk
+ *
+ * See the source file for legal information
+ */
+
+/**
+ * @defgroup BUS bus - KObj methods for drivers of devices with children
+ * @brief A set of methods required device drivers that support
+ * child devices.
+ * @{
+ */
+
+#ifndef _bus_if_h_
+#define _bus_if_h_
+
+/** @brief Unique descriptor for the BUS_PRINT_CHILD() method */
+extern struct kobjop_desc bus_print_child_desc;
+/** @brief A function implementing the BUS_PRINT_CHILD() method */
+typedef int bus_print_child_t(device_t _dev, device_t _child);
+/**
+ * @brief Print a description of a child device
+ *
+ * This is called from system code which prints out a description of a
+ * device. It should describe the attachment that the child has with
+ * the parent. For instance the TurboLaser bus prints which node the
+ * device is attached to. See bus_generic_print_child() for more
+ * information.
+ *
+ * @param _dev the device whose child is being printed
+ * @param _child the child device to describe
+ *
+ * @returns the number of characters output.
+ */
+
+static __inline int BUS_PRINT_CHILD(device_t _dev, device_t _child)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_print_child);
+ return ((bus_print_child_t *) _m)(_dev, _child);
+}
+
+/** @brief Unique descriptor for the BUS_PROBE_NOMATCH() method */
+extern struct kobjop_desc bus_probe_nomatch_desc;
+/** @brief A function implementing the BUS_PROBE_NOMATCH() method */
+typedef void bus_probe_nomatch_t(device_t _dev, device_t _child);
+/**
+ * @brief Print a notification about an unprobed child device.
+ *
+ * Called for each child device that did not succeed in probing for a
+ * driver.
+ *
+ * @param _dev the device whose child was being probed
+ * @param _child the child device which failed to probe
+ */
+
+static __inline void BUS_PROBE_NOMATCH(device_t _dev, device_t _child)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_probe_nomatch);
+ ((bus_probe_nomatch_t *) _m)(_dev, _child);
+}
+
+/** @brief Unique descriptor for the BUS_READ_IVAR() method */
+extern struct kobjop_desc bus_read_ivar_desc;
+/** @brief A function implementing the BUS_READ_IVAR() method */
+typedef int bus_read_ivar_t(device_t _dev, device_t _child, int _index,
+ uintptr_t *_result);
+/**
+ * @brief Read the value of a bus-specific attribute of a device
+ *
+ * This method, along with BUS_WRITE_IVAR() manages a bus-specific set
+ * of instance variables of a child device. The intention is that
+ * each different type of bus defines a set of appropriate instance
+ * variables (such as ports and irqs for ISA bus etc.)
+ *
+ * This information could be given to the child device as a struct but
+ * that makes it hard for a bus to add or remove variables without
+ * forcing an edit and recompile for all drivers which may not be
+ * possible for vendor supplied binary drivers.
+ *
+ * This method copies the value of an instance variable to the
+ * location specified by @p *_result.
+ *
+ * @param _dev the device whose child was being examined
+ * @param _child the child device whose instance variable is
+ * being read
+ * @param _index the instance variable to read
+ * @param _result a loction to recieve the instance variable
+ * value
+ *
+ * @retval 0 success
+ * @retval ENOENT no such instance variable is supported by @p
+ * _dev
+ */
+
+static __inline int BUS_READ_IVAR(device_t _dev, device_t _child, int _index,
+ uintptr_t *_result)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_read_ivar);
+ return ((bus_read_ivar_t *) _m)(_dev, _child, _index, _result);
+}
+
+/** @brief Unique descriptor for the BUS_WRITE_IVAR() method */
+extern struct kobjop_desc bus_write_ivar_desc;
+/** @brief A function implementing the BUS_WRITE_IVAR() method */
+typedef int bus_write_ivar_t(device_t _dev, device_t _child, int _indx,
+ uintptr_t _value);
+/**
+ * @brief Write the value of a bus-specific attribute of a device
+ *
+ * This method sets the value of an instance variable to @p _value.
+ *
+ * @param _dev the device whose child was being updated
+ * @param _child the child device whose instance variable is
+ * being written
+ * @param _index the instance variable to write
+ * @param _value the value to write to that instance variable
+ *
+ * @retval 0 success
+ * @retval ENOENT no such instance variable is supported by @p
+ * _dev
+ * @retval EINVAL the instance variable was recognised but
+ * contains a read-only value
+ */
+
+static __inline int BUS_WRITE_IVAR(device_t _dev, device_t _child, int _indx,
+ uintptr_t _value)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_write_ivar);
+ return ((bus_write_ivar_t *) _m)(_dev, _child, _indx, _value);
+}
+
+/** @brief Unique descriptor for the BUS_CHILD_DETACHED() method */
+extern struct kobjop_desc bus_child_detached_desc;
+/** @brief A function implementing the BUS_CHILD_DETACHED() method */
+typedef void bus_child_detached_t(device_t _dev, device_t _child);
+/**
+ * @brief Notify a bus that a child was detached
+ *
+ * Called after the child's DEVICE_DETACH() method to allow the parent
+ * to reclaim any resources allocated on behalf of the child.
+ *
+ * @param _dev the device whose child changed state
+ * @param _child the child device which changed state
+ */
+
+static __inline void BUS_CHILD_DETACHED(device_t _dev, device_t _child)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_child_detached);
+ ((bus_child_detached_t *) _m)(_dev, _child);
+}
+
+/** @brief Unique descriptor for the BUS_DRIVER_ADDED() method */
+extern struct kobjop_desc bus_driver_added_desc;
+/** @brief A function implementing the BUS_DRIVER_ADDED() method */
+typedef void bus_driver_added_t(device_t _dev, driver_t *_driver);
+/**
+ * @brief Notify a bus that a new driver was added
+ *
+ * Called when a new driver is added to the devclass which owns this
+ * bus. The generic implementation of this method attempts to probe and
+ * attach any un-matched children of the bus.
+ *
+ * @param _dev the device whose devclass had a new driver
+ * added to it
+ * @param _driver the new driver which was added
+ */
+
+static __inline void BUS_DRIVER_ADDED(device_t _dev, driver_t *_driver)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_driver_added);
+ ((bus_driver_added_t *) _m)(_dev, _driver);
+}
+
+/** @brief Unique descriptor for the BUS_ADD_CHILD() method */
+extern struct kobjop_desc bus_add_child_desc;
+/** @brief A function implementing the BUS_ADD_CHILD() method */
+typedef device_t bus_add_child_t(device_t _dev, u_int _order, const char *_name,
+ int _unit);
+/**
+ * @brief Create a new child device
+ *
+ * For busses which use use drivers supporting DEVICE_IDENTIFY() to
+ * enumerate their devices, this method is used to create new
+ * device instances. The new device will be added after the last
+ * existing child with the same order.
+ *
+ * @param _dev the bus device which will be the parent of the
+ * new child device
+ * @param _order a value which is used to partially sort the
+ * children of @p _dev - devices created using
+ * lower values of @p _order appear first in @p
+ * _dev's list of children
+ * @param _name devclass name for new device or @c NULL if not
+ * specified
+ * @param _unit unit number for new device or @c -1 if not
+ * specified
+ */
+
+static __inline device_t BUS_ADD_CHILD(device_t _dev, u_int _order,
+ const char *_name, int _unit)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_add_child);
+ return ((bus_add_child_t *) _m)(_dev, _order, _name, _unit);
+}
+
+/** @brief Unique descriptor for the BUS_ALLOC_RESOURCE() method */
+extern struct kobjop_desc bus_alloc_resource_desc;
+/** @brief A function implementing the BUS_ALLOC_RESOURCE() method */
+typedef struct resource * bus_alloc_resource_t(device_t _dev, device_t _child,
+ int _type, int *_rid,
+ u_long _start, u_long _end,
+ u_long _count, u_int _flags);
+/**
+ * @brief Allocate a system resource
+ *
+ * This method is called by child devices of a bus to allocate resources.
+ * The types are defined in <machine/resource.h>; the meaning of the
+ * resource-ID field varies from bus to bus (but @p *rid == 0 is always
+ * valid if the resource type is). If a resource was allocated and the
+ * caller did not use the RF_ACTIVE to specify that it should be
+ * activated immediately, the caller is responsible for calling
+ * BUS_ACTIVATE_RESOURCE() when it actually uses the resource.
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which is requesting an allocation
+ * @param _type the type of resource to allocate
+ * @param _rid a pointer to the resource identifier
+ * @param _start hint at the start of the resource range - pass
+ * @c 0UL for any start address
+ * @param _end hint at the end of the resource range - pass
+ * @c ~0UL for any end address
+ * @param _count hint at the size of range required - pass @c 1
+ * for any size
+ * @param _flags any extra flags to control the resource
+ * allocation - see @c RF_XXX flags in
+ * <sys/rman.h> for details
+ *
+ * @returns the resource which was allocated or @c NULL if no
+ * resource could be allocated
+ */
+
+static __inline struct resource * BUS_ALLOC_RESOURCE(device_t _dev,
+ device_t _child, int _type,
+ int *_rid, u_long _start,
+ u_long _end, u_long _count,
+ u_int _flags)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_alloc_resource);
+ return ((bus_alloc_resource_t *) _m)(_dev, _child, _type, _rid, _start, _end, _count, _flags);
+}
+
+/** @brief Unique descriptor for the BUS_ACTIVATE_RESOURCE() method */
+extern struct kobjop_desc bus_activate_resource_desc;
+/** @brief A function implementing the BUS_ACTIVATE_RESOURCE() method */
+typedef int bus_activate_resource_t(device_t _dev, device_t _child, int _type,
+ int _rid, struct resource *_r);
+/**
+ * @brief Activate a resource
+ *
+ * Activate a resource previously allocated with
+ * BUS_ALLOC_RESOURCE(). This may for instance map a memory region
+ * into the kernel's virtual address space.
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which allocated the resource
+ * @param _type the type of resource
+ * @param _rid the resource identifier
+ * @param _r the resource to activate
+ */
+
+static __inline int BUS_ACTIVATE_RESOURCE(device_t _dev, device_t _child,
+ int _type, int _rid,
+ struct resource *_r)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_activate_resource);
+ return ((bus_activate_resource_t *) _m)(_dev, _child, _type, _rid, _r);
+}
+
+/** @brief Unique descriptor for the BUS_DEACTIVATE_RESOURCE() method */
+extern struct kobjop_desc bus_deactivate_resource_desc;
+/** @brief A function implementing the BUS_DEACTIVATE_RESOURCE() method */
+typedef int bus_deactivate_resource_t(device_t _dev, device_t _child, int _type,
+ int _rid, struct resource *_r);
+/**
+ * @brief Deactivate a resource
+ *
+ * Deactivate a resource previously allocated with
+ * BUS_ALLOC_RESOURCE(). This may for instance unmap a memory region
+ * from the kernel's virtual address space.
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which allocated the resource
+ * @param _type the type of resource
+ * @param _rid the resource identifier
+ * @param _r the resource to deactivate
+ */
+
+static __inline int BUS_DEACTIVATE_RESOURCE(device_t _dev, device_t _child,
+ int _type, int _rid,
+ struct resource *_r)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_deactivate_resource);
+ return ((bus_deactivate_resource_t *) _m)(_dev, _child, _type, _rid, _r);
+}
+
+/** @brief Unique descriptor for the BUS_RELEASE_RESOURCE() method */
+extern struct kobjop_desc bus_release_resource_desc;
+/** @brief A function implementing the BUS_RELEASE_RESOURCE() method */
+typedef int bus_release_resource_t(device_t _dev, device_t _child, int _type,
+ int _rid, struct resource *_res);
+/**
+ * @brief Release a resource
+ *
+ * Free a resource allocated by the BUS_ALLOC_RESOURCE. The @p _rid
+ * value must be the same as the one returned by BUS_ALLOC_RESOURCE()
+ * (which is not necessarily the same as the one the client passed).
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which allocated the resource
+ * @param _type the type of resource
+ * @param _rid the resource identifier
+ * @param _r the resource to release
+ */
+
+static __inline int BUS_RELEASE_RESOURCE(device_t _dev, device_t _child,
+ int _type, int _rid,
+ struct resource *_res)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_release_resource);
+ return ((bus_release_resource_t *) _m)(_dev, _child, _type, _rid, _res);
+}
+
+/** @brief Unique descriptor for the BUS_SETUP_INTR() method */
+extern struct kobjop_desc bus_setup_intr_desc;
+/** @brief A function implementing the BUS_SETUP_INTR() method */
+typedef int bus_setup_intr_t(device_t _dev, device_t _child,
+ struct resource *_irq, int _flags,
+ driver_filter_t *_filter, driver_intr_t *_intr,
+ void *_arg, void **_cookiep);
+/**
+ * @brief Install an interrupt handler
+ *
+ * This method is used to associate an interrupt handler function with
+ * an irq resource. When the interrupt triggers, the function @p _intr
+ * will be called with the value of @p _arg as its single
+ * argument. The value returned in @p *_cookiep is used to cancel the
+ * interrupt handler - the caller should save this value to use in a
+ * future call to BUS_TEARDOWN_INTR().
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which allocated the resource
+ * @param _irq the resource representing the interrupt
+ * @param _flags a set of bits from enum intr_type specifying
+ * the class of interrupt
+ * @param _intr the function to call when the interrupt
+ * triggers
+ * @param _arg a value to use as the single argument in calls
+ * to @p _intr
+ * @param _cookiep a pointer to a location to recieve a cookie
+ * value that may be used to remove the interrupt
+ * handler
+ */
+
+static __inline int BUS_SETUP_INTR(device_t _dev, device_t _child,
+ struct resource *_irq, int _flags,
+ driver_filter_t *_filter,
+ driver_intr_t *_intr, void *_arg,
+ void **_cookiep)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_setup_intr);
+ return ((bus_setup_intr_t *) _m)(_dev, _child, _irq, _flags, _filter, _intr, _arg, _cookiep);
+}
+
+/** @brief Unique descriptor for the BUS_TEARDOWN_INTR() method */
+extern struct kobjop_desc bus_teardown_intr_desc;
+/** @brief A function implementing the BUS_TEARDOWN_INTR() method */
+typedef int bus_teardown_intr_t(device_t _dev, device_t _child,
+ struct resource *_irq, void *_cookie);
+/**
+ * @brief Uninstall an interrupt handler
+ *
+ * This method is used to disassociate an interrupt handler function
+ * with an irq resource. The value of @p _cookie must be the value
+ * returned from a previous call to BUS_SETUP_INTR().
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which allocated the resource
+ * @param _irq the resource representing the interrupt
+ * @param _cookie the cookie value returned when the interrupt
+ * was originally registered
+ */
+
+static __inline int BUS_TEARDOWN_INTR(device_t _dev, device_t _child,
+ struct resource *_irq, void *_cookie)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_teardown_intr);
+ return ((bus_teardown_intr_t *) _m)(_dev, _child, _irq, _cookie);
+}
+
+/** @brief Unique descriptor for the BUS_SET_RESOURCE() method */
+extern struct kobjop_desc bus_set_resource_desc;
+/** @brief A function implementing the BUS_SET_RESOURCE() method */
+typedef int bus_set_resource_t(device_t _dev, device_t _child, int _type,
+ int _rid, u_long _start, u_long _count);
+/**
+ * @brief Define a resource which can be allocated with
+ * BUS_ALLOC_RESOURCE().
+ *
+ * This method is used by some busses (typically ISA) to allow a
+ * driver to describe a resource range that it would like to
+ * allocate. The resource defined by @p _type and @p _rid is defined
+ * to start at @p _start and to include @p _count indices in its
+ * range.
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which owns the resource
+ * @param _type the type of resource
+ * @param _rid the resource identifier
+ * @param _start the start of the resource range
+ * @param _count the size of the resource range
+ */
+
+static __inline int BUS_SET_RESOURCE(device_t _dev, device_t _child, int _type,
+ int _rid, u_long _start, u_long _count)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_set_resource);
+ return ((bus_set_resource_t *) _m)(_dev, _child, _type, _rid, _start, _count);
+}
+
+/** @brief Unique descriptor for the BUS_GET_RESOURCE() method */
+extern struct kobjop_desc bus_get_resource_desc;
+/** @brief A function implementing the BUS_GET_RESOURCE() method */
+typedef int bus_get_resource_t(device_t _dev, device_t _child, int _type,
+ int _rid, u_long *_startp, u_long *_countp);
+/**
+ * @brief Describe a resource
+ *
+ * This method allows a driver to examine the range used for a given
+ * resource without actually allocating it.
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which owns the resource
+ * @param _type the type of resource
+ * @param _rid the resource identifier
+ * @param _start the address of a location to recieve the start
+ * index of the resource range
+ * @param _count the address of a location to recieve the size
+ * of the resource range
+ */
+
+static __inline int BUS_GET_RESOURCE(device_t _dev, device_t _child, int _type,
+ int _rid, u_long *_startp, u_long *_countp)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_get_resource);
+ return ((bus_get_resource_t *) _m)(_dev, _child, _type, _rid, _startp, _countp);
+}
+
+/** @brief Unique descriptor for the BUS_DELETE_RESOURCE() method */
+extern struct kobjop_desc bus_delete_resource_desc;
+/** @brief A function implementing the BUS_DELETE_RESOURCE() method */
+typedef void bus_delete_resource_t(device_t _dev, device_t _child, int _type,
+ int _rid);
+/**
+ * @brief Delete a resource.
+ *
+ * Use this to delete a resource (possibly one previously added with
+ * BUS_SET_RESOURCE()).
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which owns the resource
+ * @param _type the type of resource
+ * @param _rid the resource identifier
+ */
+
+static __inline void BUS_DELETE_RESOURCE(device_t _dev, device_t _child,
+ int _type, int _rid)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_delete_resource);
+ ((bus_delete_resource_t *) _m)(_dev, _child, _type, _rid);
+}
+
+/** @brief Unique descriptor for the BUS_GET_RESOURCE_LIST() method */
+extern struct kobjop_desc bus_get_resource_list_desc;
+/** @brief A function implementing the BUS_GET_RESOURCE_LIST() method */
+typedef struct resource_list * bus_get_resource_list_t(device_t _dev,
+ device_t _child);
+/**
+ * @brief Return a struct resource_list.
+ *
+ * Used by drivers which use bus_generic_rl_alloc_resource() etc. to
+ * implement their resource handling. It should return the resource
+ * list of the given child device.
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which owns the resource list
+ */
+
+static __inline struct resource_list * BUS_GET_RESOURCE_LIST(device_t _dev,
+ device_t _child)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_get_resource_list);
+ return ((bus_get_resource_list_t *) _m)(_dev, _child);
+}
+
+/** @brief Unique descriptor for the BUS_CHILD_PRESENT() method */
+extern struct kobjop_desc bus_child_present_desc;
+/** @brief A function implementing the BUS_CHILD_PRESENT() method */
+typedef int bus_child_present_t(device_t _dev, device_t _child);
+/**
+ * @brief Is the hardware described by @p _child still attached to the
+ * system?
+ *
+ * This method should return 0 if the device is not present. It
+ * should return -1 if it is present. Any errors in determining
+ * should be returned as a normal errno value. Client drivers are to
+ * assume that the device is present, even if there is an error
+ * determining if it is there. Busses are to try to avoid returning
+ * errors, but newcard will return an error if the device fails to
+ * implement this method.
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which is being examined
+ */
+
+static __inline int BUS_CHILD_PRESENT(device_t _dev, device_t _child)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_child_present);
+ return ((bus_child_present_t *) _m)(_dev, _child);
+}
+
+/** @brief Unique descriptor for the BUS_CHILD_PNPINFO_STR() method */
+extern struct kobjop_desc bus_child_pnpinfo_str_desc;
+/** @brief A function implementing the BUS_CHILD_PNPINFO_STR() method */
+typedef int bus_child_pnpinfo_str_t(device_t _dev, device_t _child, char *_buf,
+ size_t _buflen);
+/**
+ * @brief Returns the pnp info for this device.
+ *
+ * Return it as a string. If the string is insufficient for the
+ * storage, then return EOVERFLOW.
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which is being examined
+ * @param _buf the address of a buffer to receive the pnp
+ * string
+ * @param _buflen the size of the buffer pointed to by @p _buf
+ */
+
+static __inline int BUS_CHILD_PNPINFO_STR(device_t _dev, device_t _child,
+ char *_buf, size_t _buflen)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_child_pnpinfo_str);
+ return ((bus_child_pnpinfo_str_t *) _m)(_dev, _child, _buf, _buflen);
+}
+
+/** @brief Unique descriptor for the BUS_CHILD_LOCATION_STR() method */
+extern struct kobjop_desc bus_child_location_str_desc;
+/** @brief A function implementing the BUS_CHILD_LOCATION_STR() method */
+typedef int bus_child_location_str_t(device_t _dev, device_t _child, char *_buf,
+ size_t _buflen);
+/**
+ * @brief Returns the location for this device.
+ *
+ * Return it as a string. If the string is insufficient for the
+ * storage, then return EOVERFLOW.
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which is being examined
+ * @param _buf the address of a buffer to receive the location
+ * string
+ * @param _buflen the size of the buffer pointed to by @p _buf
+ */
+
+static __inline int BUS_CHILD_LOCATION_STR(device_t _dev, device_t _child,
+ char *_buf, size_t _buflen)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_child_location_str);
+ return ((bus_child_location_str_t *) _m)(_dev, _child, _buf, _buflen);
+}
+
+/** @brief Unique descriptor for the BUS_BIND_INTR() method */
+extern struct kobjop_desc bus_bind_intr_desc;
+/** @brief A function implementing the BUS_BIND_INTR() method */
+typedef int bus_bind_intr_t(device_t _dev, device_t _child,
+ struct resource *_irq, int _cpu);
+/**
+ * @brief Allow drivers to request that an interrupt be bound to a specific
+ * CPU.
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which allocated the resource
+ * @param _irq the resource representing the interrupt
+ * @param _cpu the CPU to bind the interrupt to
+ */
+
+static __inline int BUS_BIND_INTR(device_t _dev, device_t _child,
+ struct resource *_irq, int _cpu)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_bind_intr);
+ return ((bus_bind_intr_t *) _m)(_dev, _child, _irq, _cpu);
+}
+
+/** @brief Unique descriptor for the BUS_CONFIG_INTR() method */
+extern struct kobjop_desc bus_config_intr_desc;
+/** @brief A function implementing the BUS_CONFIG_INTR() method */
+typedef int bus_config_intr_t(device_t _dev, int _irq, enum intr_trigger _trig,
+ enum intr_polarity _pol);
+/**
+ * @brief Allow (bus) drivers to specify the trigger mode and polarity
+ * of the specified interrupt.
+ *
+ * @param _dev the bus device
+ * @param _irq the interrupt number to modify
+ * @param _trig the trigger mode required
+ * @param _pol the interrupt polarity required
+ */
+
+static __inline int BUS_CONFIG_INTR(device_t _dev, int _irq,
+ enum intr_trigger _trig,
+ enum intr_polarity _pol)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_config_intr);
+ return ((bus_config_intr_t *) _m)(_dev, _irq, _trig, _pol);
+}
+
+/** @brief Unique descriptor for the BUS_DESCRIBE_INTR() method */
+extern struct kobjop_desc bus_describe_intr_desc;
+/** @brief A function implementing the BUS_DESCRIBE_INTR() method */
+typedef int bus_describe_intr_t(device_t _dev, device_t _child,
+ struct resource *_irq, void *_cookie,
+ const char *_descr);
+/**
+ * @brief Allow drivers to associate a description with an active
+ * interrupt handler.
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device which allocated the resource
+ * @param _irq the resource representing the interrupt
+ * @param _cookie the cookie value returned when the interrupt
+ * was originally registered
+ * @param _descr the description to associate with the interrupt
+ */
+
+static __inline int BUS_DESCRIBE_INTR(device_t _dev, device_t _child,
+ struct resource *_irq, void *_cookie,
+ const char *_descr)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_describe_intr);
+ return ((bus_describe_intr_t *) _m)(_dev, _child, _irq, _cookie, _descr);
+}
+
+/** @brief Unique descriptor for the BUS_HINTED_CHILD() method */
+extern struct kobjop_desc bus_hinted_child_desc;
+/** @brief A function implementing the BUS_HINTED_CHILD() method */
+typedef void bus_hinted_child_t(device_t _dev, const char *_dname, int _dunit);
+/**
+ * @brief Notify a (bus) driver about a child that the hints mechanism
+ * believes it has discovered.
+ *
+ * The bus is responsible for then adding the child in the right order
+ * and discovering other things about the child. The bus driver is
+ * free to ignore this hint, to do special things, etc. It is all up
+ * to the bus driver to interpret.
+ *
+ * This method is only called in response to the parent bus asking for
+ * hinted devices to be enumerated.
+ *
+ * @param _dev the bus device
+ * @param _dname the name of the device w/o unit numbers
+ * @param _dunit the unit number of the device
+ */
+
+static __inline void BUS_HINTED_CHILD(device_t _dev, const char *_dname,
+ int _dunit)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_hinted_child);
+ ((bus_hinted_child_t *) _m)(_dev, _dname, _dunit);
+}
+
+/** @brief Unique descriptor for the BUS_GET_DMA_TAG() method */
+extern struct kobjop_desc bus_get_dma_tag_desc;
+/** @brief A function implementing the BUS_GET_DMA_TAG() method */
+typedef bus_dma_tag_t bus_get_dma_tag_t(device_t _dev, device_t _child);
+/**
+ * @brief Returns bus_dma_tag_t for use w/ devices on the bus.
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device to which the tag will belong
+ */
+
+static __inline bus_dma_tag_t BUS_GET_DMA_TAG(device_t _dev, device_t _child)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_get_dma_tag);
+ return ((bus_get_dma_tag_t *) _m)(_dev, _child);
+}
+
+/** @brief Unique descriptor for the BUS_HINT_DEVICE_UNIT() method */
+extern struct kobjop_desc bus_hint_device_unit_desc;
+/** @brief A function implementing the BUS_HINT_DEVICE_UNIT() method */
+typedef void bus_hint_device_unit_t(device_t _dev, device_t _child,
+ const char *_name, int *_unitp);
+/**
+ * @brief Allow the bus to determine the unit number of a device.
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device whose unit is to be wired
+ * @param _name the name of the device's new devclass
+ * @param _unitp a pointer to the device's new unit value
+ */
+
+static __inline void BUS_HINT_DEVICE_UNIT(device_t _dev, device_t _child,
+ const char *_name, int *_unitp)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_hint_device_unit);
+ ((bus_hint_device_unit_t *) _m)(_dev, _child, _name, _unitp);
+}
+
+/** @brief Unique descriptor for the BUS_NEW_PASS() method */
+extern struct kobjop_desc bus_new_pass_desc;
+/** @brief A function implementing the BUS_NEW_PASS() method */
+typedef void bus_new_pass_t(device_t _dev);
+/**
+ * @brief Notify a bus that the bus pass level has been changed
+ *
+ * @param _dev the bus device
+ */
+
+static __inline void BUS_NEW_PASS(device_t _dev)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_new_pass);
+ ((bus_new_pass_t *) _m)(_dev);
+}
+
+/** @brief Unique descriptor for the BUS_REMAP_INTR() method */
+extern struct kobjop_desc bus_remap_intr_desc;
+/** @brief A function implementing the BUS_REMAP_INTR() method */
+typedef int bus_remap_intr_t(device_t _dev, device_t _child, u_int _irq);
+/**
+ * @brief Notify a bus that specified child's IRQ should be remapped.
+ *
+ * @param _dev the bus device
+ * @param _child the child device
+ * @param _irq the irq number
+ */
+
+static __inline int BUS_REMAP_INTR(device_t _dev, device_t _child, u_int _irq)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)_dev)->ops,bus_remap_intr);
+ return ((bus_remap_intr_t *) _m)(_dev, _child, _irq);
+}
+
+#endif /* _bus_if_h_ */
diff --git a/rtemsbsd/include/rtems/bsd/local/cryptodev_if.h b/rtemsbsd/include/rtems/bsd/local/cryptodev_if.h
new file mode 100644
index 00000000..752527ed
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/cryptodev_if.h
@@ -0,0 +1,69 @@
+/*
+ * This file is produced automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from source file
+ * opencrypto/cryptodev_if.m
+ * with
+ * makeobjops.awk
+ *
+ * See the source file for legal information
+ */
+
+
+#ifndef _cryptodev_if_h_
+#define _cryptodev_if_h_
+
+/** @brief Unique descriptor for the CRYPTODEV_NEWSESSION() method */
+extern struct kobjop_desc cryptodev_newsession_desc;
+/** @brief A function implementing the CRYPTODEV_NEWSESSION() method */
+typedef int cryptodev_newsession_t(device_t dev, uint32_t *sid,
+ struct cryptoini *cri);
+
+static __inline int CRYPTODEV_NEWSESSION(device_t dev, uint32_t *sid,
+ struct cryptoini *cri)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,cryptodev_newsession);
+ return ((cryptodev_newsession_t *) _m)(dev, sid, cri);
+}
+
+/** @brief Unique descriptor for the CRYPTODEV_FREESESSION() method */
+extern struct kobjop_desc cryptodev_freesession_desc;
+/** @brief A function implementing the CRYPTODEV_FREESESSION() method */
+typedef int cryptodev_freesession_t(device_t dev, uint64_t sid);
+
+static __inline int CRYPTODEV_FREESESSION(device_t dev, uint64_t sid)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,cryptodev_freesession);
+ return ((cryptodev_freesession_t *) _m)(dev, sid);
+}
+
+/** @brief Unique descriptor for the CRYPTODEV_PROCESS() method */
+extern struct kobjop_desc cryptodev_process_desc;
+/** @brief A function implementing the CRYPTODEV_PROCESS() method */
+typedef int cryptodev_process_t(device_t dev, struct cryptop *op, int flags);
+
+static __inline int CRYPTODEV_PROCESS(device_t dev, struct cryptop *op,
+ int flags)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,cryptodev_process);
+ return ((cryptodev_process_t *) _m)(dev, op, flags);
+}
+
+/** @brief Unique descriptor for the CRYPTODEV_KPROCESS() method */
+extern struct kobjop_desc cryptodev_kprocess_desc;
+/** @brief A function implementing the CRYPTODEV_KPROCESS() method */
+typedef int cryptodev_kprocess_t(device_t dev, struct cryptkop *op, int flags);
+
+static __inline int CRYPTODEV_KPROCESS(device_t dev, struct cryptkop *op,
+ int flags)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,cryptodev_kprocess);
+ return ((cryptodev_kprocess_t *) _m)(dev, op, flags);
+}
+
+#endif /* _cryptodev_if_h_ */
diff --git a/rtemsbsd/include/rtems/bsd/local/device_if.h b/rtemsbsd/include/rtems/bsd/local/device_if.h
new file mode 100644
index 00000000..47339eb3
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/device_if.h
@@ -0,0 +1,340 @@
+/*
+ * This file is produced automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from source file
+ * kern/device_if.m
+ * with
+ * makeobjops.awk
+ *
+ * See the source file for legal information
+ */
+
+/**
+ * @defgroup DEVICE device - KObj methods for all device drivers
+ * @brief A basic set of methods required for all device drivers.
+ *
+ * The device interface is used to match devices to drivers during
+ * autoconfiguration and provides methods to allow drivers to handle
+ * system-wide events such as suspend, resume or shutdown.
+ * @{
+ */
+
+#ifndef _device_if_h_
+#define _device_if_h_
+
+/** @brief Unique descriptor for the DEVICE_PROBE() method */
+extern struct kobjop_desc device_probe_desc;
+/** @brief A function implementing the DEVICE_PROBE() method */
+typedef int device_probe_t(device_t dev);
+/**
+ * @brief Probe to see if a device matches a driver.
+ *
+ * Users should not call this method directly. Normally, this
+ * is called via device_probe_and_attach() to select a driver
+ * calling the DEVICE_PROBE() of all candidate drivers and attach
+ * the winning driver (if any) to the device.
+ *
+ * This function is used to match devices to device drivers.
+ * Typically, the driver will examine the device to see if
+ * it is suitable for this driver. This might include checking
+ * the values of various device instance variables or reading
+ * hardware registers.
+ *
+ * In some cases, there may be more than one driver available
+ * which can be used for a device (for instance there might
+ * be a generic driver which works for a set of many types of
+ * device and a more specific driver which works for a subset
+ * of devices). Because of this, a driver should not assume
+ * that it will be the driver that attaches to the device even
+ * if it returns a success status from DEVICE_PROBE(). In particular,
+ * a driver must free any resources which it allocated during
+ * the probe before returning. The return value of DEVICE_PROBE()
+ * is used to elect which driver is used - the driver which returns
+ * the largest non-error value wins the election and attaches to
+ * the device.
+ *
+ * If a driver matches the hardware, it should set the device
+ * description string using device_set_desc() or
+ * device_set_desc_copy(). This string is
+ * used to generate an informative message when DEVICE_ATTACH()
+ * is called.
+ *
+ * As a special case, if a driver returns zero, the driver election
+ * is cut short and that driver will attach to the device
+ * immediately.
+ *
+ * For example, a probe method for a pci device driver might look
+ * like this:
+ *
+ * @code
+ * int foo_probe(device_t dev)
+ * {
+ * if (pci_get_vendor(dev) == FOOVENDOR &&
+ * pci_get_device(dev) == FOODEVICE) {
+ * device_set_desc(dev, "Foo device");
+ * return (0);
+ * }
+ * return (ENXIO);
+ * }
+ * @endcode
+ *
+ * To include this method in a device driver, use a line like this
+ * in the driver's method list:
+ *
+ * @code
+ * KOBJMETHOD(device_probe, foo_probe)
+ * @endcode
+ *
+ * @param dev the device to probe
+ *
+ * @retval 0 if the driver strongly matches this device
+ * @retval negative if the driver can match this device - the
+ * least negative value is used to select the
+ * driver
+ * @retval ENXIO if the driver does not match the device
+ * @retval positive if some kind of error was detected during
+ * the probe, a regular unix error code should
+ * be returned to indicate the type of error
+ * @see DEVICE_ATTACH(), pci_get_vendor(), pci_get_device()
+ */
+
+static __inline int DEVICE_PROBE(device_t dev)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,device_probe);
+ return ((device_probe_t *) _m)(dev);
+}
+
+/** @brief Unique descriptor for the DEVICE_IDENTIFY() method */
+extern struct kobjop_desc device_identify_desc;
+/** @brief A function implementing the DEVICE_IDENTIFY() method */
+typedef void device_identify_t(driver_t *driver, device_t parent);
+/**
+ * @brief Allow a device driver to detect devices not otherwise enumerated.
+ *
+ * The DEVICE_IDENTIFY() method is used by some drivers (e.g. the ISA
+ * bus driver) to help populate the bus device with a useful set of
+ * child devices, normally by calling the BUS_ADD_CHILD() method of
+ * the parent device. For instance, the ISA bus driver uses several
+ * special drivers, including the isahint driver and the pnp driver to
+ * create child devices based on configuration hints and PnP bus
+ * probes respectively.
+ *
+ * Many bus drivers which support true plug-and-play do not need to
+ * use this method at all since child devices can be discovered
+ * automatically without help from child drivers.
+ *
+ * To include this method in a device driver, use a line like this
+ * in the driver's method list:
+ *
+ * @code
+ * KOBJMETHOD(device_identify, foo_identify)
+ * @endcode
+ *
+ * @param driver the driver whose identify method is being called
+ * @param parent the parent device to use when adding new children
+ */
+
+static __inline void DEVICE_IDENTIFY(driver_t *driver, device_t parent)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(driver->ops,device_identify);
+ ((device_identify_t *) _m)(driver, parent);
+}
+
+/** @brief Unique descriptor for the DEVICE_ATTACH() method */
+extern struct kobjop_desc device_attach_desc;
+/** @brief A function implementing the DEVICE_ATTACH() method */
+typedef int device_attach_t(device_t dev);
+/**
+ * @brief Attach a device to a device driver
+ *
+ * Normally only called via device_probe_and_attach(), this is called
+ * when a driver has succeeded in probing against a device.
+ * This method should initialise the hardware and allocate other
+ * system resources (e.g. devfs entries) as required.
+ *
+ * To include this method in a device driver, use a line like this
+ * in the driver's method list:
+ *
+ * @code
+ * KOBJMETHOD(device_attach, foo_attach)
+ * @endcode
+ *
+ * @param dev the device to probe
+ *
+ * @retval 0 success
+ * @retval non-zero if some kind of error was detected during
+ * the attach, a regular unix error code should
+ * be returned to indicate the type of error
+ * @see DEVICE_PROBE()
+ */
+
+static __inline int DEVICE_ATTACH(device_t dev)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,device_attach);
+ return ((device_attach_t *) _m)(dev);
+}
+
+/** @brief Unique descriptor for the DEVICE_DETACH() method */
+extern struct kobjop_desc device_detach_desc;
+/** @brief A function implementing the DEVICE_DETACH() method */
+typedef int device_detach_t(device_t dev);
+/**
+ * @brief Detach a driver from a device.
+ *
+ * This can be called if the user is replacing the
+ * driver software or if a device is about to be physically removed
+ * from the system (e.g. for removable hardware such as USB or PCCARD).
+ *
+ * To include this method in a device driver, use a line like this
+ * in the driver's method list:
+ *
+ * @code
+ * KOBJMETHOD(device_detach, foo_detach)
+ * @endcode
+ *
+ * @param dev the device to detach
+ *
+ * @retval 0 success
+ * @retval non-zero the detach could not be performed, e.g. if the
+ * driver does not support detaching.
+ *
+ * @see DEVICE_ATTACH()
+ */
+
+static __inline int DEVICE_DETACH(device_t dev)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,device_detach);
+ return ((device_detach_t *) _m)(dev);
+}
+
+/** @brief Unique descriptor for the DEVICE_SHUTDOWN() method */
+extern struct kobjop_desc device_shutdown_desc;
+/** @brief A function implementing the DEVICE_SHUTDOWN() method */
+typedef int device_shutdown_t(device_t dev);
+/**
+ * @brief Called during system shutdown.
+ *
+ * This method allows drivers to detect when the system is being shut down.
+ * Some drivers need to use this to place their hardware in a consistent
+ * state before rebooting the computer.
+ *
+ * To include this method in a device driver, use a line like this
+ * in the driver's method list:
+ *
+ * @code
+ * KOBJMETHOD(device_shutdown, foo_shutdown)
+ * @endcode
+ */
+
+static __inline int DEVICE_SHUTDOWN(device_t dev)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,device_shutdown);
+ return ((device_shutdown_t *) _m)(dev);
+}
+
+/** @brief Unique descriptor for the DEVICE_SUSPEND() method */
+extern struct kobjop_desc device_suspend_desc;
+/** @brief A function implementing the DEVICE_SUSPEND() method */
+typedef int device_suspend_t(device_t dev);
+/**
+ * @brief This is called by the power-management subsystem when a
+ * suspend has been requested by the user or by some automatic
+ * mechanism.
+ *
+ * This gives drivers a chance to veto the suspend or save their
+ * configuration before power is removed.
+ *
+ * To include this method in a device driver, use a line like this in
+ * the driver's method list:
+ *
+ * @code
+ * KOBJMETHOD(device_suspend, foo_suspend)
+ * @endcode
+ *
+ * @param dev the device being suspended
+ *
+ * @retval 0 success
+ * @retval non-zero an error occurred while attempting to prepare the
+ * device for suspension
+ *
+ * @see DEVICE_RESUME()
+ */
+
+static __inline int DEVICE_SUSPEND(device_t dev)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,device_suspend);
+ return ((device_suspend_t *) _m)(dev);
+}
+
+/** @brief Unique descriptor for the DEVICE_RESUME() method */
+extern struct kobjop_desc device_resume_desc;
+/** @brief A function implementing the DEVICE_RESUME() method */
+typedef int device_resume_t(device_t dev);
+/**
+ * @brief This is called when the system resumes after a suspend.
+ *
+ * To include this method in a device driver, use a line like this
+ * in the driver's method list:
+ *
+ * @code
+ * KOBJMETHOD(device_resume, foo_resume)
+ * @endcode
+ *
+ * @param dev the device being resumed
+ *
+ * @retval 0 success
+ * @retval non-zero an error occurred while attempting to restore the
+ * device from suspension
+ *
+ * @see DEVICE_SUSPEND()
+ */
+
+static __inline int DEVICE_RESUME(device_t dev)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,device_resume);
+ return ((device_resume_t *) _m)(dev);
+}
+
+/** @brief Unique descriptor for the DEVICE_QUIESCE() method */
+extern struct kobjop_desc device_quiesce_desc;
+/** @brief A function implementing the DEVICE_QUIESCE() method */
+typedef int device_quiesce_t(device_t dev);
+/**
+ * @brief This is called when the driver is asked to quiesce itself.
+ *
+ * The driver should arrange for the orderly shutdown of this device.
+ * All further access to the device should be curtailed. Soon there
+ * will be a request to detach, but there won't necessarily be one.
+ *
+ * To include this method in a device driver, use a line like this
+ * in the driver's method list:
+ *
+ * @code
+ * KOBJMETHOD(device_quiesce, foo_quiesce)
+ * @endcode
+ *
+ * @param dev the device being quiesced
+ *
+ * @retval 0 success
+ * @retval non-zero an error occurred while attempting to quiesce the
+ * device
+ *
+ * @see DEVICE_DETACH()
+ */
+
+static __inline int DEVICE_QUIESCE(device_t dev)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,device_quiesce);
+ return ((device_quiesce_t *) _m)(dev);
+}
+
+#endif /* _device_if_h_ */
diff --git a/rtemsbsd/include/rtems/bsd/local/linker_if.h b/rtemsbsd/include/rtems/bsd/local/linker_if.h
new file mode 100644
index 00000000..936ffd88
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/linker_if.h
@@ -0,0 +1 @@
+/* EMPTY */
diff --git a/rtemsbsd/include/rtems/bsd/local/miibus_if.h b/rtemsbsd/include/rtems/bsd/local/miibus_if.h
new file mode 100644
index 00000000..ec35ca19
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/miibus_if.h
@@ -0,0 +1,77 @@
+/*
+ * This file is produced automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from source file
+ * dev/mii/miibus_if.m
+ * with
+ * makeobjops.awk
+ *
+ * See the source file for legal information
+ */
+
+
+#ifndef _miibus_if_h_
+#define _miibus_if_h_
+
+/** @brief Unique descriptor for the MIIBUS_READREG() method */
+extern struct kobjop_desc miibus_readreg_desc;
+/** @brief A function implementing the MIIBUS_READREG() method */
+typedef int miibus_readreg_t(device_t dev, int phy, int reg);
+
+static __inline int MIIBUS_READREG(device_t dev, int phy, int reg)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,miibus_readreg);
+ return ((miibus_readreg_t *) _m)(dev, phy, reg);
+}
+
+/** @brief Unique descriptor for the MIIBUS_WRITEREG() method */
+extern struct kobjop_desc miibus_writereg_desc;
+/** @brief A function implementing the MIIBUS_WRITEREG() method */
+typedef int miibus_writereg_t(device_t dev, int phy, int reg, int val);
+
+static __inline int MIIBUS_WRITEREG(device_t dev, int phy, int reg, int val)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,miibus_writereg);
+ return ((miibus_writereg_t *) _m)(dev, phy, reg, val);
+}
+
+/** @brief Unique descriptor for the MIIBUS_STATCHG() method */
+extern struct kobjop_desc miibus_statchg_desc;
+/** @brief A function implementing the MIIBUS_STATCHG() method */
+typedef void miibus_statchg_t(device_t dev);
+
+static __inline void MIIBUS_STATCHG(device_t dev)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,miibus_statchg);
+ ((miibus_statchg_t *) _m)(dev);
+}
+
+/** @brief Unique descriptor for the MIIBUS_LINKCHG() method */
+extern struct kobjop_desc miibus_linkchg_desc;
+/** @brief A function implementing the MIIBUS_LINKCHG() method */
+typedef void miibus_linkchg_t(device_t dev);
+
+static __inline void MIIBUS_LINKCHG(device_t dev)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,miibus_linkchg);
+ ((miibus_linkchg_t *) _m)(dev);
+}
+
+/** @brief Unique descriptor for the MIIBUS_MEDIAINIT() method */
+extern struct kobjop_desc miibus_mediainit_desc;
+/** @brief A function implementing the MIIBUS_MEDIAINIT() method */
+typedef void miibus_mediainit_t(device_t dev);
+
+static __inline void MIIBUS_MEDIAINIT(device_t dev)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,miibus_mediainit);
+ ((miibus_mediainit_t *) _m)(dev);
+}
+
+#endif /* _miibus_if_h_ */
diff --git a/rtemsbsd/include/rtems/bsd/local/miidevs.h b/rtemsbsd/include/rtems/bsd/local/miidevs.h
new file mode 100644
index 00000000..ee8f4327
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/miidevs.h
@@ -0,0 +1,376 @@
+/* $FreeBSD$ */
+
+/*
+ * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.
+ *
+ * generated from:
+ * FreeBSD
+ */
+/*$NetBSD: miidevs,v 1.6 1999/05/14 11:37:30 drochner Exp $*/
+
+/*-
+ * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
+ * NASA Ames Research Center.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * 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.
+ */
+
+/*
+ * List of known MII OUIs.
+ * For a complete list see http://standards.ieee.org/regauth/oui/
+ *
+ * XXX Vendors do obviously not agree how OUIs (18 bit) are mapped
+ * to the 16 bits available in the id registers. The MII_OUI() macro
+ * in "mii.h" reflects the most obvious way. If a vendor uses a
+ * different mapping, an "xx" prefixed OUI is defined here which is
+ * mangled accordingly to compensate.
+ */
+
+#define MII_OUI_AGERE 0x00a0bc /* Agere Systems */
+#define MII_OUI_ALTIMA 0x0010a9 /* Altima Communications */
+#define MII_OUI_AMD 0x00001a /* Advanced Micro Devices */
+#define MII_OUI_ASIX 0x00602e /* Asix Semiconductor */
+#define MII_OUI_ATHEROS 0x001374 /* Atheros Communications */
+#define MII_OUI_BROADCOM 0x001018 /* Broadcom Corporation */
+#define MII_OUI_BROADCOM2 0x000af7 /* Broadcom Corporation */
+#define MII_OUI_CICADA 0x0003F1 /* Cicada Semiconductor */
+#define MII_OUI_DAVICOM 0x00606e /* Davicom Semiconductor */
+#define MII_OUI_ICPLUS 0x0090c3 /* IC Plus Corp. */
+#define MII_OUI_ICS 0x00a0be /* Integrated Circuit Systems */
+#define MII_OUI_INTEL 0x00aa00 /* Intel */
+#define MII_OUI_JATO 0x00e083 /* Jato Technologies */
+#define MII_OUI_JMICRON 0x001b8c /* JMicron Technologies */
+#define MII_OUI_LEVEL1 0x00207b /* Level 1 */
+#define MII_OUI_NATSEMI 0x080017 /* National Semiconductor */
+#define MII_OUI_QUALSEMI 0x006051 /* Quality Semiconductor */
+#define MII_OUI_REALTEK 0x000020 /* RealTek Semicondctor */
+#define MII_OUI_SEEQ 0x00a07d /* Seeq */
+#define MII_OUI_SIS 0x00e006 /* Silicon Integrated Systems */
+#define MII_OUI_SMSC 0x0005be /* SMSC */
+#define MII_OUI_TDK 0x00c039 /* TDK */
+#define MII_OUI_TI 0x080028 /* Texas Instruments */
+#define MII_OUI_VITESSE 0x0001c1 /* Vitesse Semiconductor */
+#define MII_OUI_XAQTI 0x00e0ae /* XaQti Corp. */
+#define MII_OUI_MARVELL 0x005043 /* Marvell Semiconductor */
+#define MII_OUI_xxMARVELL 0x000ac2 /* Marvell Semiconductor */
+
+/* in the 79c873, AMD uses another OUI (which matches Davicom!) */
+#define MII_OUI_xxAMD 0x00606e /* Advanced Micro Devices */
+
+/* Intel 82553 A/B steppings */
+#define MII_OUI_xxINTEL 0x00f800 /* Intel */
+
+/* some vendors have the bits swapped within bytes
+ (ie, ordered as on the wire) */
+#define MII_OUI_xxALTIMA 0x000895 /* Altima Communications */
+#define MII_OUI_xxBROADCOM 0x000818 /* Broadcom Corporation */
+#define MII_OUI_xxBROADCOM_ALT1 0x0050ef /* Broadcom Corporation */
+#define MII_OUI_xxBROADCOM_ALT2 0x00d897 /* Broadcom Corporation */
+#define MII_OUI_xxICS 0x00057d /* Integrated Circuit Systems */
+#define MII_OUI_xxSEEQ 0x0005be /* Seeq */
+#define MII_OUI_xxSIS 0x000760 /* Silicon Integrated Systems */
+#define MII_OUI_xxTI 0x100014 /* Texas Instruments */
+#define MII_OUI_xxXAQTI 0x350700 /* XaQti Corp. */
+
+/* Level 1 is completely different - from right to left.
+ (Two bits get lost in the third OUI byte.) */
+#define MII_OUI_xxLEVEL1 0x1e0400 /* Level 1 */
+
+/* Don't know what's going on here. */
+#define MII_OUI_xxDAVICOM 0x006040 /* Davicom Semiconductor */
+
+/* This is the OUI of the gigE PHY in the RealTek 8169S/8110S/8211B chips */
+#define MII_OUI_xxREALTEK 0x000732 /* */
+
+/*
+ * List of known models. Grouped by oui.
+ */
+
+/* Agere Systems PHYs */
+#define MII_MODEL_AGERE_ET1011 0x0001
+#define MII_STR_AGERE_ET1011 "ET1011 10/100/1000baseT PHY"
+#define MII_MODEL_AGERE_ET1011C 0x0004
+#define MII_STR_AGERE_ET1011C "ET1011C 10/100/1000baseT PHY"
+
+/* Altima Communications PHYs */
+#define MII_MODEL_xxALTIMA_AC101 0x0021
+#define MII_STR_xxALTIMA_AC101 "AC101 10/100 media interface"
+#define MII_MODEL_xxALTIMA_AC101L 0x0012
+#define MII_STR_xxALTIMA_AC101L "AC101L 10/100 media interface"
+#define MII_MODEL_xxALTIMA_ACXXX 0x0001
+#define MII_STR_xxALTIMA_ACXXX "ACXXX 10/100 media interface"
+
+/* Advanced Micro Devices PHYs */
+#define MII_MODEL_AMD_79c973phy 0x0036
+#define MII_STR_AMD_79c973phy "Am79c973 internal PHY"
+#define MII_MODEL_AMD_79c978 0x0039
+#define MII_STR_AMD_79c978 "Am79c978 HomePNA PHY"
+#define MII_MODEL_xxAMD_79C873 0x0000
+#define MII_STR_xxAMD_79C873 "Am79C873/DM9101 10/100 media interface"
+
+/* Asix semiconductor PHYs. */
+#define MII_MODEL_ASIX_AX88X9X 0x0031
+#define MII_STR_ASIX_AX88X9X "Ax88x9x internal PHY"
+
+/* Atheros Communications/Attansic PHYs. */
+#define MII_MODEL_ATHEROS_F1 0x0001
+#define MII_STR_ATHEROS_F1 "Atheros F1 10/100/1000 PHY"
+#define MII_MODEL_ATHEROS_F2 0x0002
+#define MII_STR_ATHEROS_F2 "Atheros F2 10/100 PHY"
+#define MII_MODEL_ATHEROS_F1_7 0x0007
+#define MII_STR_ATHEROS_F1_7 "Atheros F1 10/100/1000 PHY"
+
+/* Broadcom Corp. PHYs. */
+#define MII_MODEL_BROADCOM_3C905B 0x0012
+#define MII_STR_BROADCOM_3C905B "3c905B 10/100 internal PHY"
+#define MII_MODEL_BROADCOM_3C905C 0x0017
+#define MII_STR_BROADCOM_3C905C "3c905C 10/100 internal PHY"
+#define MII_MODEL_BROADCOM_BCM5201 0x0021
+#define MII_STR_BROADCOM_BCM5201 "BCM5201 10/100baseTX PHY"
+#define MII_MODEL_BROADCOM_BCM5214 0x0028
+#define MII_STR_BROADCOM_BCM5214 "BCM5214 Quad 10/100 PHY"
+#define MII_MODEL_BROADCOM_BCM5221 0x001e
+#define MII_STR_BROADCOM_BCM5221 "BCM5221 10/100baseTX PHY"
+#define MII_MODEL_BROADCOM_BCM5222 0x0032
+#define MII_STR_BROADCOM_BCM5222 "BCM5222 Dual 10/100 PHY"
+#define MII_MODEL_BROADCOM_BCM4401 0x0036
+#define MII_STR_BROADCOM_BCM4401 "BCM4401 10/100baseTX PHY"
+#define MII_MODEL_xxBROADCOM_BCM5400 0x0004
+#define MII_STR_xxBROADCOM_BCM5400 "Broadcom 1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_BCM5401 0x0005
+#define MII_STR_xxBROADCOM_BCM5401 "BCM5401 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_BCM5411 0x0007
+#define MII_STR_xxBROADCOM_BCM5411 "BCM5411 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_BCM5754 0x000e
+#define MII_STR_xxBROADCOM_BCM5754 "BCM5754 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_BCM5752 0x0010
+#define MII_STR_xxBROADCOM_BCM5752 "BCM5752 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_BCM5701 0x0011
+#define MII_STR_xxBROADCOM_BCM5701 "BCM5701 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_BCM5706 0x0015
+#define MII_STR_xxBROADCOM_BCM5706 "BCM5706 10/100/1000baseTX/SX PHY"
+#define MII_MODEL_xxBROADCOM_BCM5703 0x0016
+#define MII_STR_xxBROADCOM_BCM5703 "BCM5703 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_BCM5704 0x0019
+#define MII_STR_xxBROADCOM_BCM5704 "BCM5704 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_BCM5705 0x001a
+#define MII_STR_xxBROADCOM_BCM5705 "BCM5705 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_BCM5750 0x0018
+#define MII_STR_xxBROADCOM_BCM5750 "BCM5750 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_BCM54K2 0x002e
+#define MII_STR_xxBROADCOM_BCM54K2 "BCM54K2 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_BCM5714 0x0034
+#define MII_STR_xxBROADCOM_BCM5714 "BCM5714 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_BCM5780 0x0035
+#define MII_STR_xxBROADCOM_BCM5780 "BCM5780 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_BCM5708C 0x0036
+#define MII_STR_xxBROADCOM_BCM5708C "BCM5708C 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_ALT1_BCM5755 0x000c
+#define MII_STR_xxBROADCOM_ALT1_BCM5755 "BCM5755 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_ALT1_BCM5787 0x000e
+#define MII_STR_xxBROADCOM_ALT1_BCM5787 "BCM5787 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_ALT1_BCM5708S 0x0015
+#define MII_STR_xxBROADCOM_ALT1_BCM5708S "BCM5708S 1000/2500BaseSX PHY"
+#define MII_MODEL_xxBROADCOM_ALT1_BCM5709CAX 0x002c
+#define MII_STR_xxBROADCOM_ALT1_BCM5709CAX "BCM5709C(AX) 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_ALT1_BCM5722 0x002d
+#define MII_STR_xxBROADCOM_ALT1_BCM5722 "BCM5722 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_ALT1_BCM5784 0x003a
+#define MII_STR_xxBROADCOM_ALT1_BCM5784 "BCM5784 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_ALT1_BCM5709C 0x003c
+#define MII_STR_xxBROADCOM_ALT1_BCM5709C "BCM5709C 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_ALT1_BCM5761 0x003d
+#define MII_STR_xxBROADCOM_ALT1_BCM5761 "BCM5761 10/100/1000baseTX PHY"
+#define MII_MODEL_xxBROADCOM_ALT1_BCM5709S 0x003f
+#define MII_STR_xxBROADCOM_ALT1_BCM5709S "BCM5709S 1000/2500baseSX PHY"
+#define MII_MODEL_xxBROADCOM_ALT2_BCM5717C 0x0020
+#define MII_STR_xxBROADCOM_ALT2_BCM5717C "BCM5717C 10/100/1000baseTX PHY"
+#define MII_MODEL_BROADCOM2_BCM5906 0x0004
+#define MII_STR_BROADCOM2_BCM5906 "BCM5906 10/100baseTX PHY"
+
+/* Cicada Semiconductor PHYs (now owned by Vitesse?) */
+#define MII_MODEL_CICADA_CS8201 0x0001
+#define MII_STR_CICADA_CS8201 "Cicada CS8201 10/100/1000TX PHY"
+#define MII_MODEL_CICADA_CS8204 0x0004
+#define MII_STR_CICADA_CS8204 "Cicada CS8204 10/100/1000TX PHY"
+#define MII_MODEL_CICADA_VSC8211 0x000b
+#define MII_STR_CICADA_VSC8211 "Cicada VSC8211 10/100/1000TX PHY"
+#define MII_MODEL_CICADA_CS8201A 0x0020
+#define MII_STR_CICADA_CS8201A "Cicada CS8201 10/100/1000TX PHY"
+#define MII_MODEL_CICADA_CS8201B 0x0021
+#define MII_STR_CICADA_CS8201B "Cicada CS8201 10/100/1000TX PHY"
+#define MII_MODEL_CICADA_CS8244 0x002c
+#define MII_STR_CICADA_CS8244 "Cicada CS8244 10/100/1000TX PHY"
+#define MII_MODEL_VITESSE_VSC8601 0x0002
+#define MII_STR_VITESSE_VSC8601 "Vitesse VSC8601 10/100/1000TX PHY"
+
+/* Davicom Semiconductor PHYs */
+#define MII_MODEL_DAVICOM_DM9102 0x0004
+#define MII_STR_DAVICOM_DM9102 "DM9102 10/100 media interface"
+#define MII_MODEL_xxDAVICOM_DM9101 0x0000
+#define MII_STR_xxDAVICOM_DM9101 "DM9101 10/100 media interface"
+
+/* Integrated Circuit Systems PHYs */
+#define MII_MODEL_xxICS_1889 0x0001
+#define MII_STR_xxICS_1889 "ICS1889 10/100 media interface"
+#define MII_MODEL_xxICS_1890 0x0002
+#define MII_STR_xxICS_1890 "ICS1890 10/100 media interface"
+#define MII_MODEL_xxICS_1892 0x0003
+#define MII_STR_xxICS_1892 "ICS1892 10/100 media interface"
+#define MII_MODEL_xxICS_1893 0x0004
+#define MII_STR_xxICS_1893 "ICS1893 10/100 media interface"
+
+/* IC Plus Corp. PHYs */
+#define MII_MODEL_ICPLUS_IP101 0x0005
+#define MII_STR_ICPLUS_IP101 "IC Plus 10/100 PHY"
+#define MII_MODEL_ICPLUS_IP1000A 0x0008
+#define MII_STR_ICPLUS_IP1000A "IC Plus 10/100/1000 media interface"
+#define MII_MODEL_ICPLUS_IP1001 0x0019
+#define MII_STR_ICPLUS_IP1001 "IC Plus IP1001 10/100/1000 media interface"
+
+/* Intel PHYs */
+#define MII_MODEL_xxINTEL_I82553AB 0x0000
+#define MII_STR_xxINTEL_I82553AB "i83553 10/100 media interface"
+#define MII_MODEL_INTEL_I82555 0x0015
+#define MII_STR_INTEL_I82555 "i82555 10/100 media interface"
+#define MII_MODEL_INTEL_I82562EM 0x0032
+#define MII_STR_INTEL_I82562EM "i82562EM 10/100 media interface"
+#define MII_MODEL_INTEL_I82562ET 0x0033
+#define MII_STR_INTEL_I82562ET "i82562ET 10/100 media interface"
+#define MII_MODEL_INTEL_I82553C 0x0035
+#define MII_STR_INTEL_I82553C "i82553 10/100 media interface"
+
+/* Jato Technologies PHYs */
+#define MII_MODEL_JATO_BASEX 0x0000
+#define MII_STR_JATO_BASEX "Jato 1000baseX media interface"
+
+/* JMicron Technologies PHYs */
+#define MII_MODEL_JMICRON_JMP211 0x0021
+#define MII_STR_JMICRON_JMP211 "JMP211 10/100/1000 media interface"
+#define MII_MODEL_JMICRON_JMP202 0x0022
+#define MII_STR_JMICRON_JMP202 "JMP202 10/100 media interface"
+
+/* Level 1 PHYs */
+#define MII_MODEL_xxLEVEL1_LXT970 0x0000
+#define MII_STR_xxLEVEL1_LXT970 "LXT970 10/100 media interface"
+
+/* National Semiconductor PHYs */
+#define MII_MODEL_NATSEMI_DP83840 0x0000
+#define MII_STR_NATSEMI_DP83840 "DP83840 10/100 media interface"
+#define MII_MODEL_NATSEMI_DP83843 0x0001
+#define MII_STR_NATSEMI_DP83843 "DP83843 10/100 media interface"
+#define MII_MODEL_NATSEMI_DP83815 0x0002
+#define MII_STR_NATSEMI_DP83815 "DP83815 10/100 media interface"
+#define MII_MODEL_NATSEMI_DP83847 0x0003
+#define MII_STR_NATSEMI_DP83847 "DP83847 10/100 media interface"
+#define MII_MODEL_NATSEMI_DP83891 0x0005
+#define MII_STR_NATSEMI_DP83891 "DP83891 10/100/1000 media interface"
+#define MII_MODEL_NATSEMI_DP83861 0x0006
+#define MII_STR_NATSEMI_DP83861 "DP83861 10/100/1000 media interface"
+#define MII_MODEL_NATSEMI_DP83865 0x0007
+#define MII_STR_NATSEMI_DP83865 "DP83865 10/100/1000 media interface"
+
+/* Quality Semiconductor PHYs */
+#define MII_MODEL_QUALSEMI_QS6612 0x0000
+#define MII_STR_QUALSEMI_QS6612 "QS6612 10/100 media interface"
+
+/* RealTek Semiconductor PHYs */
+#define MII_MODEL_REALTEK_RTL8201L 0x0020
+#define MII_STR_REALTEK_RTL8201L "RTL8201L 10/100 media interface"
+#define MII_MODEL_xxREALTEK_RTL8305SC 0x0005
+#define MII_STR_xxREALTEK_RTL8305SC "RTL8305SC 10/100 802.1q switch"
+#define MII_MODEL_xxREALTEK_RTL8169S 0x0011
+#define MII_STR_xxREALTEK_RTL8169S "RTL8169S/8110S/8211B media interface"
+
+/* Seeq PHYs */
+#define MII_MODEL_xxSEEQ_80220 0x0003
+#define MII_STR_xxSEEQ_80220 "Seeq 80220 10/100 media interface"
+#define MII_MODEL_xxSEEQ_84220 0x0004
+#define MII_STR_xxSEEQ_84220 "Seeq 84220 10/100 media interface"
+
+/* Silicon Integrated Systems PHYs */
+#define MII_MODEL_xxSIS_900 0x0000
+#define MII_STR_xxSIS_900 "SiS 900 10/100 media interface"
+
+/* SMSC PHYs */
+#define MII_MODEL_SMSC_LAN83C183 0x0004
+#define MII_STR_SMSC_LAN83C183 "SMSC LAN83C183 10/100 media interface"
+
+/* TDK */
+#define MII_MODEL_TDK_78Q2120 0x0014
+#define MII_STR_TDK_78Q2120 "TDK 78Q2120 media interface"
+
+/* Texas Instruments PHYs */
+#define MII_MODEL_xxTI_TLAN10T 0x0001
+#define MII_STR_xxTI_TLAN10T "ThunderLAN 10baseT media interface"
+#define MII_MODEL_xxTI_100VGPMI 0x0002
+#define MII_STR_xxTI_100VGPMI "ThunderLAN 100VG-AnyLan media interface"
+
+/* XaQti Corp. PHYs. */
+#define MII_MODEL_XAQTI_XMACII 0x0000
+#define MII_STR_XAQTI_XMACII "XaQti Corp. XMAC II gigabit interface"
+
+/* Marvell Semiconductor PHYs */
+#define MII_MODEL_MARVELL_E1000 0x0000
+#define MII_STR_MARVELL_E1000 "Marvell 88E1000 Gigabit PHY"
+#define MII_MODEL_MARVELL_E1011 0x0002
+#define MII_STR_MARVELL_E1011 "Marvell 88E1011 Gigabit PHY"
+#define MII_MODEL_MARVELL_E1000_3 0x0003
+#define MII_STR_MARVELL_E1000_3 "Marvell 88E1000 Gigabit PHY"
+#define MII_MODEL_MARVELL_E1000S 0x0004
+#define MII_STR_MARVELL_E1000S "Marvell 88E1000S Gigabit PHY"
+#define MII_MODEL_MARVELL_E1000_5 0x0005
+#define MII_STR_MARVELL_E1000_5 "Marvell 88E1000 Gigabit PHY"
+#define MII_MODEL_MARVELL_E1101 0x0006
+#define MII_STR_MARVELL_E1101 "Marvell 88E1101 Gigabit PHY"
+#define MII_MODEL_MARVELL_E3082 0x0008
+#define MII_STR_MARVELL_E3082 "Marvell 88E3082 10/100 Fast Ethernet PHY"
+#define MII_MODEL_MARVELL_E1112 0x0009
+#define MII_STR_MARVELL_E1112 "Marvell 88E1112 Gigabit PHY"
+#define MII_MODEL_MARVELL_E1149 0x000b
+#define MII_STR_MARVELL_E1149 "Marvell 88E1149 Gigabit PHY"
+#define MII_MODEL_MARVELL_E1111 0x000c
+#define MII_STR_MARVELL_E1111 "Marvell 88E1111 Gigabit PHY"
+#define MII_MODEL_MARVELL_E1116 0x0021
+#define MII_STR_MARVELL_E1116 "Marvell 88E1116 Gigabit PHY"
+#define MII_MODEL_MARVELL_E1116R 0x0024
+#define MII_STR_MARVELL_E1116R "Marvell 88E1116R Gigabit PHY"
+#define MII_MODEL_MARVELL_E1118 0x0022
+#define MII_STR_MARVELL_E1118 "Marvell 88E1118 Gigabit PHY"
+#define MII_MODEL_MARVELL_E3016 0x0026
+#define MII_STR_MARVELL_E3016 "Marvell 88E3016 10/100 Fast Ethernet PHY"
+#define MII_MODEL_MARVELL_PHYG65G 0x0027
+#define MII_STR_MARVELL_PHYG65G "Marvell PHYG65G Gigabit PHY"
+#define MII_MODEL_xxMARVELL_E1000 0x0005
+#define MII_STR_xxMARVELL_E1000 "Marvell 88E1000 Gigabit PHY"
+#define MII_MODEL_xxMARVELL_E1011 0x0002
+#define MII_STR_xxMARVELL_E1011 "Marvell 88E1011 Gigabit PHY"
+#define MII_MODEL_xxMARVELL_E1000_3 0x0003
+#define MII_STR_xxMARVELL_E1000_3 "Marvell 88E1000 Gigabit PHY"
+#define MII_MODEL_xxMARVELL_E1000_5 0x0005
+#define MII_STR_xxMARVELL_E1000_5 "Marvell 88E1000 Gigabit PHY"
+#define MII_MODEL_xxMARVELL_E1111 0x000c
+#define MII_STR_xxMARVELL_E1111 "Marvell 88E1111 Gigabit PHY"
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_altq.h b/rtemsbsd/include/rtems/bsd/local/opt_altq.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_altq.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_atalk.h b/rtemsbsd/include/rtems/bsd/local/opt_atalk.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_atalk.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_bce.h b/rtemsbsd/include/rtems/bsd/local/opt_bce.h
new file mode 100644
index 00000000..936ffd88
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_bce.h
@@ -0,0 +1 @@
+/* EMPTY */
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_bootp.h b/rtemsbsd/include/rtems/bsd/local/opt_bootp.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_bootp.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_bpf.h b/rtemsbsd/include/rtems/bsd/local/opt_bpf.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_bpf.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_bus.h b/rtemsbsd/include/rtems/bsd/local/opt_bus.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_bus.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_cam.h b/rtemsbsd/include/rtems/bsd/local/opt_cam.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_cam.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_carp.h b/rtemsbsd/include/rtems/bsd/local/opt_carp.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_carp.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_compat.h b/rtemsbsd/include/rtems/bsd/local/opt_compat.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_compat.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_config.h b/rtemsbsd/include/rtems/bsd/local/opt_config.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_config.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_cpu.h b/rtemsbsd/include/rtems/bsd/local/opt_cpu.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_cpu.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_ddb.h b/rtemsbsd/include/rtems/bsd/local/opt_ddb.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_ddb.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_device_polling.h b/rtemsbsd/include/rtems/bsd/local/opt_device_polling.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_device_polling.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_ef.h b/rtemsbsd/include/rtems/bsd/local/opt_ef.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_ef.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_enc.h b/rtemsbsd/include/rtems/bsd/local/opt_enc.h
new file mode 100644
index 00000000..a06aab6c
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_enc.h
@@ -0,0 +1 @@
+#define DEV_ENC 1
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_hwpmc_hooks.h b/rtemsbsd/include/rtems/bsd/local/opt_hwpmc_hooks.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_hwpmc_hooks.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_inet.h b/rtemsbsd/include/rtems/bsd/local/opt_inet.h
new file mode 100644
index 00000000..fdf70095
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_inet.h
@@ -0,0 +1 @@
+#define INET 1
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_inet6.h b/rtemsbsd/include/rtems/bsd/local/opt_inet6.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_inet6.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_init_path.h b/rtemsbsd/include/rtems/bsd/local/opt_init_path.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_init_path.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_ipdivert.h b/rtemsbsd/include/rtems/bsd/local/opt_ipdivert.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_ipdivert.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_ipdn.h b/rtemsbsd/include/rtems/bsd/local/opt_ipdn.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_ipdn.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_ipfw.h b/rtemsbsd/include/rtems/bsd/local/opt_ipfw.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_ipfw.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_ipsec.h b/rtemsbsd/include/rtems/bsd/local/opt_ipsec.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_ipsec.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_ipstealth.h b/rtemsbsd/include/rtems/bsd/local/opt_ipstealth.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_ipstealth.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_ipx.h b/rtemsbsd/include/rtems/bsd/local/opt_ipx.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_ipx.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_kdb.h b/rtemsbsd/include/rtems/bsd/local/opt_kdb.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_kdb.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_kdtrace.h b/rtemsbsd/include/rtems/bsd/local/opt_kdtrace.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_kdtrace.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_ktrace.h b/rtemsbsd/include/rtems/bsd/local/opt_ktrace.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_ktrace.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_mbuf_profiling.h b/rtemsbsd/include/rtems/bsd/local/opt_mbuf_profiling.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_mbuf_profiling.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_mbuf_stress_test.h b/rtemsbsd/include/rtems/bsd/local/opt_mbuf_stress_test.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_mbuf_stress_test.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_mpath.h b/rtemsbsd/include/rtems/bsd/local/opt_mpath.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_mpath.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_mrouting.h b/rtemsbsd/include/rtems/bsd/local/opt_mrouting.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_mrouting.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_natm.h b/rtemsbsd/include/rtems/bsd/local/opt_natm.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_natm.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_netgraph.h b/rtemsbsd/include/rtems/bsd/local/opt_netgraph.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_netgraph.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_ntp.h b/rtemsbsd/include/rtems/bsd/local/opt_ntp.h
new file mode 100644
index 00000000..936ffd88
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_ntp.h
@@ -0,0 +1 @@
+/* EMPTY */
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_param.h b/rtemsbsd/include/rtems/bsd/local/opt_param.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_param.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_pf.h b/rtemsbsd/include/rtems/bsd/local/opt_pf.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_pf.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_posix.h b/rtemsbsd/include/rtems/bsd/local/opt_posix.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_posix.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_printf.h b/rtemsbsd/include/rtems/bsd/local/opt_printf.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_printf.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_route.h b/rtemsbsd/include/rtems/bsd/local/opt_route.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_route.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_scsi.h b/rtemsbsd/include/rtems/bsd/local/opt_scsi.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_scsi.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_sctp.h b/rtemsbsd/include/rtems/bsd/local/opt_sctp.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_sctp.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_tcpdebug.h b/rtemsbsd/include/rtems/bsd/local/opt_tcpdebug.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_tcpdebug.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_tdma.h b/rtemsbsd/include/rtems/bsd/local/opt_tdma.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_tdma.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_usb.h b/rtemsbsd/include/rtems/bsd/local/opt_usb.h
new file mode 100644
index 00000000..f9643174
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_usb.h
@@ -0,0 +1,19 @@
+#define USB_HAVE_CONDVAR 1
+
+#define USB_HAVE_UGEN 0
+
+#define USB_HAVE_BUSDMA 1
+
+#define USB_HAVE_COMPAT_LINUX 0
+
+#define USB_HAVE_USER_IO 0
+
+#define USB_HAVE_MBUF 0
+
+#undef USB_VERBOSE
+
+#define USB_DEBUG 0
+
+#define USB_HAVE_TT_SUPPORT 1
+
+#define USB_HAVE_POWERD 1
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_vlan.h b/rtemsbsd/include/rtems/bsd/local/opt_vlan.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_vlan.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_wlan.h b/rtemsbsd/include/rtems/bsd/local/opt_wlan.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_wlan.h
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_zero.h b/rtemsbsd/include/rtems/bsd/local/opt_zero.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_zero.h
diff --git a/rtemsbsd/include/rtems/bsd/local/pci_if.h b/rtemsbsd/include/rtems/bsd/local/pci_if.h
new file mode 100644
index 00000000..c2028bf8
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/pci_if.h
@@ -0,0 +1,245 @@
+/*
+ * This file is produced automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from source file
+ * dev/pci/pci_if.m
+ * with
+ * makeobjops.awk
+ *
+ * See the source file for legal information
+ */
+
+
+#ifndef _pci_if_h_
+#define _pci_if_h_
+
+/** @brief Unique descriptor for the PCI_READ_CONFIG() method */
+extern struct kobjop_desc pci_read_config_desc;
+/** @brief A function implementing the PCI_READ_CONFIG() method */
+typedef u_int32_t pci_read_config_t(device_t dev, device_t child, int reg,
+ int width);
+
+static __inline u_int32_t PCI_READ_CONFIG(device_t dev, device_t child, int reg,
+ int width)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_read_config);
+ return ((pci_read_config_t *) _m)(dev, child, reg, width);
+}
+
+/** @brief Unique descriptor for the PCI_WRITE_CONFIG() method */
+extern struct kobjop_desc pci_write_config_desc;
+/** @brief A function implementing the PCI_WRITE_CONFIG() method */
+typedef void pci_write_config_t(device_t dev, device_t child, int reg,
+ u_int32_t val, int width);
+
+static __inline void PCI_WRITE_CONFIG(device_t dev, device_t child, int reg,
+ u_int32_t val, int width)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_write_config);
+ ((pci_write_config_t *) _m)(dev, child, reg, val, width);
+}
+
+/** @brief Unique descriptor for the PCI_GET_POWERSTATE() method */
+extern struct kobjop_desc pci_get_powerstate_desc;
+/** @brief A function implementing the PCI_GET_POWERSTATE() method */
+typedef int pci_get_powerstate_t(device_t dev, device_t child);
+
+static __inline int PCI_GET_POWERSTATE(device_t dev, device_t child)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_get_powerstate);
+ return ((pci_get_powerstate_t *) _m)(dev, child);
+}
+
+/** @brief Unique descriptor for the PCI_SET_POWERSTATE() method */
+extern struct kobjop_desc pci_set_powerstate_desc;
+/** @brief A function implementing the PCI_SET_POWERSTATE() method */
+typedef int pci_set_powerstate_t(device_t dev, device_t child, int state);
+
+static __inline int PCI_SET_POWERSTATE(device_t dev, device_t child, int state)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_set_powerstate);
+ return ((pci_set_powerstate_t *) _m)(dev, child, state);
+}
+
+/** @brief Unique descriptor for the PCI_GET_VPD_IDENT() method */
+extern struct kobjop_desc pci_get_vpd_ident_desc;
+/** @brief A function implementing the PCI_GET_VPD_IDENT() method */
+typedef int pci_get_vpd_ident_t(device_t dev, device_t child,
+ const char **identptr);
+
+static __inline int PCI_GET_VPD_IDENT(device_t dev, device_t child,
+ const char **identptr)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_get_vpd_ident);
+ return ((pci_get_vpd_ident_t *) _m)(dev, child, identptr);
+}
+
+/** @brief Unique descriptor for the PCI_GET_VPD_READONLY() method */
+extern struct kobjop_desc pci_get_vpd_readonly_desc;
+/** @brief A function implementing the PCI_GET_VPD_READONLY() method */
+typedef int pci_get_vpd_readonly_t(device_t dev, device_t child, const char *kw,
+ const char **vptr);
+
+static __inline int PCI_GET_VPD_READONLY(device_t dev, device_t child,
+ const char *kw, const char **vptr)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_get_vpd_readonly);
+ return ((pci_get_vpd_readonly_t *) _m)(dev, child, kw, vptr);
+}
+
+/** @brief Unique descriptor for the PCI_ENABLE_BUSMASTER() method */
+extern struct kobjop_desc pci_enable_busmaster_desc;
+/** @brief A function implementing the PCI_ENABLE_BUSMASTER() method */
+typedef int pci_enable_busmaster_t(device_t dev, device_t child);
+
+static __inline int PCI_ENABLE_BUSMASTER(device_t dev, device_t child)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_enable_busmaster);
+ return ((pci_enable_busmaster_t *) _m)(dev, child);
+}
+
+/** @brief Unique descriptor for the PCI_DISABLE_BUSMASTER() method */
+extern struct kobjop_desc pci_disable_busmaster_desc;
+/** @brief A function implementing the PCI_DISABLE_BUSMASTER() method */
+typedef int pci_disable_busmaster_t(device_t dev, device_t child);
+
+static __inline int PCI_DISABLE_BUSMASTER(device_t dev, device_t child)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_disable_busmaster);
+ return ((pci_disable_busmaster_t *) _m)(dev, child);
+}
+
+/** @brief Unique descriptor for the PCI_ENABLE_IO() method */
+extern struct kobjop_desc pci_enable_io_desc;
+/** @brief A function implementing the PCI_ENABLE_IO() method */
+typedef int pci_enable_io_t(device_t dev, device_t child, int space);
+
+static __inline int PCI_ENABLE_IO(device_t dev, device_t child, int space)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_enable_io);
+ return ((pci_enable_io_t *) _m)(dev, child, space);
+}
+
+/** @brief Unique descriptor for the PCI_DISABLE_IO() method */
+extern struct kobjop_desc pci_disable_io_desc;
+/** @brief A function implementing the PCI_DISABLE_IO() method */
+typedef int pci_disable_io_t(device_t dev, device_t child, int space);
+
+static __inline int PCI_DISABLE_IO(device_t dev, device_t child, int space)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_disable_io);
+ return ((pci_disable_io_t *) _m)(dev, child, space);
+}
+
+/** @brief Unique descriptor for the PCI_ASSIGN_INTERRUPT() method */
+extern struct kobjop_desc pci_assign_interrupt_desc;
+/** @brief A function implementing the PCI_ASSIGN_INTERRUPT() method */
+typedef int pci_assign_interrupt_t(device_t dev, device_t child);
+
+static __inline int PCI_ASSIGN_INTERRUPT(device_t dev, device_t child)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_assign_interrupt);
+ return ((pci_assign_interrupt_t *) _m)(dev, child);
+}
+
+/** @brief Unique descriptor for the PCI_FIND_EXTCAP() method */
+extern struct kobjop_desc pci_find_extcap_desc;
+/** @brief A function implementing the PCI_FIND_EXTCAP() method */
+typedef int pci_find_extcap_t(device_t dev, device_t child, int capability,
+ int *capreg);
+
+static __inline int PCI_FIND_EXTCAP(device_t dev, device_t child,
+ int capability, int *capreg)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_find_extcap);
+ return ((pci_find_extcap_t *) _m)(dev, child, capability, capreg);
+}
+
+/** @brief Unique descriptor for the PCI_ALLOC_MSI() method */
+extern struct kobjop_desc pci_alloc_msi_desc;
+/** @brief A function implementing the PCI_ALLOC_MSI() method */
+typedef int pci_alloc_msi_t(device_t dev, device_t child, int *count);
+
+static __inline int PCI_ALLOC_MSI(device_t dev, device_t child, int *count)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_alloc_msi);
+ return ((pci_alloc_msi_t *) _m)(dev, child, count);
+}
+
+/** @brief Unique descriptor for the PCI_ALLOC_MSIX() method */
+extern struct kobjop_desc pci_alloc_msix_desc;
+/** @brief A function implementing the PCI_ALLOC_MSIX() method */
+typedef int pci_alloc_msix_t(device_t dev, device_t child, int *count);
+
+static __inline int PCI_ALLOC_MSIX(device_t dev, device_t child, int *count)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_alloc_msix);
+ return ((pci_alloc_msix_t *) _m)(dev, child, count);
+}
+
+/** @brief Unique descriptor for the PCI_REMAP_MSIX() method */
+extern struct kobjop_desc pci_remap_msix_desc;
+/** @brief A function implementing the PCI_REMAP_MSIX() method */
+typedef int pci_remap_msix_t(device_t dev, device_t child, int count,
+ const u_int *vectors);
+
+static __inline int PCI_REMAP_MSIX(device_t dev, device_t child, int count,
+ const u_int *vectors)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_remap_msix);
+ return ((pci_remap_msix_t *) _m)(dev, child, count, vectors);
+}
+
+/** @brief Unique descriptor for the PCI_RELEASE_MSI() method */
+extern struct kobjop_desc pci_release_msi_desc;
+/** @brief A function implementing the PCI_RELEASE_MSI() method */
+typedef int pci_release_msi_t(device_t dev, device_t child);
+
+static __inline int PCI_RELEASE_MSI(device_t dev, device_t child)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_release_msi);
+ return ((pci_release_msi_t *) _m)(dev, child);
+}
+
+/** @brief Unique descriptor for the PCI_MSI_COUNT() method */
+extern struct kobjop_desc pci_msi_count_desc;
+/** @brief A function implementing the PCI_MSI_COUNT() method */
+typedef int pci_msi_count_t(device_t dev, device_t child);
+
+static __inline int PCI_MSI_COUNT(device_t dev, device_t child)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_msi_count);
+ return ((pci_msi_count_t *) _m)(dev, child);
+}
+
+/** @brief Unique descriptor for the PCI_MSIX_COUNT() method */
+extern struct kobjop_desc pci_msix_count_desc;
+/** @brief A function implementing the PCI_MSIX_COUNT() method */
+typedef int pci_msix_count_t(device_t dev, device_t child);
+
+static __inline int PCI_MSIX_COUNT(device_t dev, device_t child)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pci_msix_count);
+ return ((pci_msix_count_t *) _m)(dev, child);
+}
+
+#endif /* _pci_if_h_ */
diff --git a/rtemsbsd/include/rtems/bsd/local/pcib_if.h b/rtemsbsd/include/rtems/bsd/local/pcib_if.h
new file mode 100644
index 00000000..ad659176
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/pcib_if.h
@@ -0,0 +1,137 @@
+/*
+ * This file is produced automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from source file
+ * dev/pci/pcib_if.m
+ * with
+ * makeobjops.awk
+ *
+ * See the source file for legal information
+ */
+
+
+#ifndef _pcib_if_h_
+#define _pcib_if_h_
+
+/** @brief Unique descriptor for the PCIB_MAXSLOTS() method */
+extern struct kobjop_desc pcib_maxslots_desc;
+/** @brief A function implementing the PCIB_MAXSLOTS() method */
+typedef int pcib_maxslots_t(device_t dev);
+
+static __inline int PCIB_MAXSLOTS(device_t dev)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pcib_maxslots);
+ return ((pcib_maxslots_t *) _m)(dev);
+}
+
+/** @brief Unique descriptor for the PCIB_READ_CONFIG() method */
+extern struct kobjop_desc pcib_read_config_desc;
+/** @brief A function implementing the PCIB_READ_CONFIG() method */
+typedef u_int32_t pcib_read_config_t(device_t dev, u_int bus, u_int slot,
+ u_int func, u_int reg, int width);
+
+static __inline u_int32_t PCIB_READ_CONFIG(device_t dev, u_int bus, u_int slot,
+ u_int func, u_int reg, int width)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pcib_read_config);
+ return ((pcib_read_config_t *) _m)(dev, bus, slot, func, reg, width);
+}
+
+/** @brief Unique descriptor for the PCIB_WRITE_CONFIG() method */
+extern struct kobjop_desc pcib_write_config_desc;
+/** @brief A function implementing the PCIB_WRITE_CONFIG() method */
+typedef void pcib_write_config_t(device_t dev, u_int bus, u_int slot,
+ u_int func, u_int reg, u_int32_t value,
+ int width);
+
+static __inline void PCIB_WRITE_CONFIG(device_t dev, u_int bus, u_int slot,
+ u_int func, u_int reg, u_int32_t value,
+ int width)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,pcib_write_config);
+ ((pcib_write_config_t *) _m)(dev, bus, slot, func, reg, value, width);
+}
+
+/** @brief Unique descriptor for the PCIB_ROUTE_INTERRUPT() method */
+extern struct kobjop_desc pcib_route_interrupt_desc;
+/** @brief A function implementing the PCIB_ROUTE_INTERRUPT() method */
+typedef int pcib_route_interrupt_t(device_t pcib, device_t dev, int pin);
+
+static __inline int PCIB_ROUTE_INTERRUPT(device_t pcib, device_t dev, int pin)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)pcib)->ops,pcib_route_interrupt);
+ return ((pcib_route_interrupt_t *) _m)(pcib, dev, pin);
+}
+
+/** @brief Unique descriptor for the PCIB_ALLOC_MSI() method */
+extern struct kobjop_desc pcib_alloc_msi_desc;
+/** @brief A function implementing the PCIB_ALLOC_MSI() method */
+typedef int pcib_alloc_msi_t(device_t pcib, device_t dev, int count,
+ int maxcount, int *irqs);
+
+static __inline int PCIB_ALLOC_MSI(device_t pcib, device_t dev, int count,
+ int maxcount, int *irqs)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)pcib)->ops,pcib_alloc_msi);
+ return ((pcib_alloc_msi_t *) _m)(pcib, dev, count, maxcount, irqs);
+}
+
+/** @brief Unique descriptor for the PCIB_RELEASE_MSI() method */
+extern struct kobjop_desc pcib_release_msi_desc;
+/** @brief A function implementing the PCIB_RELEASE_MSI() method */
+typedef int pcib_release_msi_t(device_t pcib, device_t dev, int count,
+ int *irqs);
+
+static __inline int PCIB_RELEASE_MSI(device_t pcib, device_t dev, int count,
+ int *irqs)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)pcib)->ops,pcib_release_msi);
+ return ((pcib_release_msi_t *) _m)(pcib, dev, count, irqs);
+}
+
+/** @brief Unique descriptor for the PCIB_ALLOC_MSIX() method */
+extern struct kobjop_desc pcib_alloc_msix_desc;
+/** @brief A function implementing the PCIB_ALLOC_MSIX() method */
+typedef int pcib_alloc_msix_t(device_t pcib, device_t dev, int *irq);
+
+static __inline int PCIB_ALLOC_MSIX(device_t pcib, device_t dev, int *irq)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)pcib)->ops,pcib_alloc_msix);
+ return ((pcib_alloc_msix_t *) _m)(pcib, dev, irq);
+}
+
+/** @brief Unique descriptor for the PCIB_RELEASE_MSIX() method */
+extern struct kobjop_desc pcib_release_msix_desc;
+/** @brief A function implementing the PCIB_RELEASE_MSIX() method */
+typedef int pcib_release_msix_t(device_t pcib, device_t dev, int irq);
+
+static __inline int PCIB_RELEASE_MSIX(device_t pcib, device_t dev, int irq)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)pcib)->ops,pcib_release_msix);
+ return ((pcib_release_msix_t *) _m)(pcib, dev, irq);
+}
+
+/** @brief Unique descriptor for the PCIB_MAP_MSI() method */
+extern struct kobjop_desc pcib_map_msi_desc;
+/** @brief A function implementing the PCIB_MAP_MSI() method */
+typedef int pcib_map_msi_t(device_t pcib, device_t dev, int irq, uint64_t *addr,
+ uint32_t *data);
+
+static __inline int PCIB_MAP_MSI(device_t pcib, device_t dev, int irq,
+ uint64_t *addr, uint32_t *data)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)pcib)->ops,pcib_map_msi);
+ return ((pcib_map_msi_t *) _m)(pcib, dev, irq, addr, data);
+}
+
+#endif /* _pcib_if_h_ */
diff --git a/rtemsbsd/include/rtems/bsd/local/usb_if.h b/rtemsbsd/include/rtems/bsd/local/usb_if.h
new file mode 100644
index 00000000..6f4a15a3
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/usb_if.h
@@ -0,0 +1,31 @@
+/*
+ * This file is produced automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from source file
+ * dev/usb/usb_if.m
+ * with
+ * makeobjops.awk
+ *
+ * See the source file for legal information
+ */
+
+
+#ifndef _usb_if_h_
+#define _usb_if_h_
+
+/** @brief Unique descriptor for the USB_HANDLE_REQUEST() method */
+extern struct kobjop_desc usb_handle_request_desc;
+/** @brief A function implementing the USB_HANDLE_REQUEST() method */
+typedef int usb_handle_request_t(device_t dev, const void *req,
+ /* pointer to the device request */ void **pptr, /* data pointer */ uint16_t *plen, /* maximum transfer length */ uint16_t offset, /* data offset */ uint8_t *pstate);
+
+static __inline int USB_HANDLE_REQUEST(device_t dev, const void *req,
+ /* pointer to the device request */ void **pptr, /* data pointer */ uint16_t *plen, /* maximum transfer length */ uint16_t offset, /* data offset */ uint8_t *pstate)
+{
+ kobjop_t _m;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,usb_handle_request);
+ return ((usb_handle_request_t *) _m)(dev, req, pptr, plen, offset, pstate);
+}
+
+#endif /* _usb_if_h_ */
diff --git a/rtemsbsd/include/rtems/bsd/local/usbdevs.h b/rtemsbsd/include/rtems/bsd/local/usbdevs.h
new file mode 100644
index 00000000..79bee891
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/usbdevs.h
@@ -0,0 +1,3433 @@
+/* ??? */
+
+/*
+ * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
+ *
+ * generated from:
+ * FreeBSD
+ */
+/* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */
+
+/*-
+ * Copyright (c) 1998-2004 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Lennart Augustsson (lennart@augustsson.net) at
+ * Carlstedt Research & Technology.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * 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.
+ */
+
+/*
+ * List of known USB vendors
+ *
+ * USB.org publishes a VID list of USB-IF member companies at
+ * http://www.usb.org/developers/tools
+ * Note that it does not show companies that have obtained a Vendor ID
+ * without becoming full members.
+ *
+ * Please note that these IDs do not do anything. Adding an ID here and
+ * regenerating the usbdevs.h and usbdevs_data.h only makes a symbolic name
+ * available to the source code and does not change any functionality, nor
+ * does it make your device available to a specific driver.
+ * It will however make the descriptive string available if a device does not
+ * provide the string itself.
+ *
+ * After adding a vendor ID VNDR and a product ID PRDCT you will have the
+ * following extra defines:
+ * #define USB_VENDOR_VNDR 0x????
+ * #define USB_PRODUCT_VNDR_PRDCT 0x????
+ *
+ * You may have to add these defines to the respective probe routines to
+ * make the device recognised by the appropriate device driver.
+ */
+
+#define USB_VENDOR_UNKNOWN1 0x0053 /* Unknown vendor */
+#define USB_VENDOR_UNKNOWN2 0x0105 /* Unknown vendor */
+#define USB_VENDOR_EGALAX2 0x0123 /* eGalax, Inc. */
+#define USB_VENDOR_CHIPSBANK 0x0204 /* Chipsbank Microelectronics Co. */
+#define USB_VENDOR_HUMAX 0x02ad /* HUMAX */
+#define USB_VENDOR_LTS 0x0386 /* LTS */
+#define USB_VENDOR_BWCT 0x03da /* Bernd Walter Computer Technology */
+#define USB_VENDOR_AOX 0x03e8 /* AOX */
+#define USB_VENDOR_THESYS 0x03e9 /* Thesys */
+#define USB_VENDOR_DATABROADCAST 0x03ea /* Data Broadcasting */
+#define USB_VENDOR_ATMEL 0x03eb /* Atmel */
+#define USB_VENDOR_IWATSU 0x03ec /* Iwatsu America */
+#define USB_VENDOR_MITSUMI 0x03ee /* Mitsumi */
+#define USB_VENDOR_HP 0x03f0 /* Hewlett Packard */
+#define USB_VENDOR_GENOA 0x03f1 /* Genoa */
+#define USB_VENDOR_OAK 0x03f2 /* Oak */
+#define USB_VENDOR_ADAPTEC 0x03f3 /* Adaptec */
+#define USB_VENDOR_DIEBOLD 0x03f4 /* Diebold */
+#define USB_VENDOR_SIEMENSELECTRO 0x03f5 /* Siemens Electromechanical */
+#define USB_VENDOR_EPSONIMAGING 0x03f8 /* Epson Imaging */
+#define USB_VENDOR_KEYTRONIC 0x03f9 /* KeyTronic */
+#define USB_VENDOR_OPTI 0x03fb /* OPTi */
+#define USB_VENDOR_ELITEGROUP 0x03fc /* Elitegroup */
+#define USB_VENDOR_XILINX 0x03fd /* Xilinx */
+#define USB_VENDOR_FARALLON 0x03fe /* Farallon Communications */
+#define USB_VENDOR_NATIONAL 0x0400 /* National Semiconductor */
+#define USB_VENDOR_NATIONALREG 0x0401 /* National Registry */
+#define USB_VENDOR_ACERLABS 0x0402 /* Acer Labs */
+#define USB_VENDOR_FTDI 0x0403 /* Future Technology Devices */
+#define USB_VENDOR_NCR 0x0404 /* NCR */
+#define USB_VENDOR_SYNOPSYS2 0x0405 /* Synopsys */
+#define USB_VENDOR_FUJITSUICL 0x0406 /* Fujitsu-ICL */
+#define USB_VENDOR_FUJITSU2 0x0407 /* Fujitsu Personal Systems */
+#define USB_VENDOR_QUANTA 0x0408 /* Quanta */
+#define USB_VENDOR_NEC 0x0409 /* NEC */
+#define USB_VENDOR_KODAK 0x040a /* Eastman Kodak */
+#define USB_VENDOR_WELTREND 0x040b /* Weltrend */
+#define USB_VENDOR_VIA 0x040d /* VIA */
+#define USB_VENDOR_MCCI 0x040e /* MCCI */
+#define USB_VENDOR_MELCO 0x0411 /* Melco */
+#define USB_VENDOR_LEADTEK 0x0413 /* Leadtek */
+#define USB_VENDOR_WINBOND 0x0416 /* Winbond */
+#define USB_VENDOR_PHOENIX 0x041a /* Phoenix */
+#define USB_VENDOR_CREATIVE 0x041e /* Creative Labs */
+#define USB_VENDOR_NOKIA 0x0421 /* Nokia */
+#define USB_VENDOR_ADI 0x0422 /* ADI Systems */
+#define USB_VENDOR_CATC 0x0423 /* Computer Access Technology */
+#define USB_VENDOR_SMC2 0x0424 /* Standard Microsystems */
+#define USB_VENDOR_MOTOROLA_HK 0x0425 /* Motorola HK */
+#define USB_VENDOR_GRAVIS 0x0428 /* Advanced Gravis Computer */
+#define USB_VENDOR_CIRRUSLOGIC 0x0429 /* Cirrus Logic */
+#define USB_VENDOR_INNOVATIVE 0x042c /* Innovative Semiconductors */
+#define USB_VENDOR_MOLEX 0x042f /* Molex */
+#define USB_VENDOR_SUN 0x0430 /* Sun Microsystems */
+#define USB_VENDOR_UNISYS 0x0432 /* Unisys */
+#define USB_VENDOR_TAUGA 0x0436 /* Taugagreining HF */
+#define USB_VENDOR_AMD 0x0438 /* Advanced Micro Devices */
+#define USB_VENDOR_LEXMARK 0x043d /* Lexmark International */
+#define USB_VENDOR_LG 0x043e /* LG Electronics */
+#define USB_VENDOR_NANAO 0x0440 /* NANAO */
+#define USB_VENDOR_GATEWAY 0x0443 /* Gateway 2000 */
+#define USB_VENDOR_NMB 0x0446 /* NMB */
+#define USB_VENDOR_ALPS 0x044e /* Alps Electric */
+#define USB_VENDOR_THRUST 0x044f /* Thrustmaster */
+#define USB_VENDOR_TI 0x0451 /* Texas Instruments */
+#define USB_VENDOR_ANALOGDEVICES 0x0456 /* Analog Devices */
+#define USB_VENDOR_SIS 0x0457 /* Silicon Integrated Systems Corp. */
+#define USB_VENDOR_KYE 0x0458 /* KYE Systems */
+#define USB_VENDOR_DIAMOND2 0x045a /* Diamond (Supra) */
+#define USB_VENDOR_RENESAS 0x045b /* Renesas */
+#define USB_VENDOR_MICROSOFT 0x045e /* Microsoft */
+#define USB_VENDOR_PRIMAX 0x0461 /* Primax Electronics */
+#define USB_VENDOR_MGE 0x0463 /* MGE UPS Systems */
+#define USB_VENDOR_AMP 0x0464 /* AMP */
+#define USB_VENDOR_CHERRY 0x046a /* Cherry Mikroschalter */
+#define USB_VENDOR_MEGATRENDS 0x046b /* American Megatrends */
+#define USB_VENDOR_LOGITECH 0x046d /* Logitech */
+#define USB_VENDOR_BTC 0x046e /* Behavior Tech. Computer */
+#define USB_VENDOR_PHILIPS 0x0471 /* Philips */
+#define USB_VENDOR_SUN2 0x0472 /* Sun Microsystems (offical) */
+#define USB_VENDOR_SANYO 0x0474 /* Sanyo Electric */
+#define USB_VENDOR_SEAGATE 0x0477 /* Seagate */
+#define USB_VENDOR_CONNECTIX 0x0478 /* Connectix */
+#define USB_VENDOR_SEMTECH 0x047a /* Semtech */
+#define USB_VENDOR_KENSINGTON 0x047d /* Kensington */
+#define USB_VENDOR_LUCENT 0x047e /* Lucent */
+#define USB_VENDOR_PLANTRONICS 0x047f /* Plantronics */
+#define USB_VENDOR_KYOCERA 0x0482 /* Kyocera Wireless Corp. */
+#define USB_VENDOR_STMICRO 0x0483 /* STMicroelectronics */
+#define USB_VENDOR_FOXCONN 0x0489 /* Foxconn */
+#define USB_VENDOR_MEIZU 0x0492 /* Meizu Electronics */
+#define USB_VENDOR_YAMAHA 0x0499 /* YAMAHA */
+#define USB_VENDOR_COMPAQ 0x049f /* Compaq */
+#define USB_VENDOR_HITACHI 0x04a4 /* Hitachi */
+#define USB_VENDOR_ACERP 0x04a5 /* Acer Peripherals */
+#define USB_VENDOR_DAVICOM 0x04a6 /* Davicom */
+#define USB_VENDOR_VISIONEER 0x04a7 /* Visioneer */
+#define USB_VENDOR_CANON 0x04a9 /* Canon */
+#define USB_VENDOR_NIKON 0x04b0 /* Nikon */
+#define USB_VENDOR_PAN 0x04b1 /* Pan International */
+#define USB_VENDOR_IBM 0x04b3 /* IBM */
+#define USB_VENDOR_CYPRESS 0x04b4 /* Cypress Semiconductor */
+#define USB_VENDOR_ROHM 0x04b5 /* ROHM */
+#define USB_VENDOR_COMPAL 0x04b7 /* Compal */
+#define USB_VENDOR_EPSON 0x04b8 /* Seiko Epson */
+#define USB_VENDOR_RAINBOW 0x04b9 /* Rainbow Technologies */
+#define USB_VENDOR_IODATA 0x04bb /* I-O Data */
+#define USB_VENDOR_TDK 0x04bf /* TDK */
+#define USB_VENDOR_3COMUSR 0x04c1 /* U.S. Robotics */
+#define USB_VENDOR_METHODE 0x04c2 /* Methode Electronics Far East */
+#define USB_VENDOR_MAXISWITCH 0x04c3 /* Maxi Switch */
+#define USB_VENDOR_LOCKHEEDMER 0x04c4 /* Lockheed Martin Energy Research */
+#define USB_VENDOR_FUJITSU 0x04c5 /* Fujitsu */
+#define USB_VENDOR_TOSHIBAAM 0x04c6 /* Toshiba America */
+#define USB_VENDOR_MICROMACRO 0x04c7 /* Micro Macro Technologies */
+#define USB_VENDOR_KONICA 0x04c8 /* Konica */
+#define USB_VENDOR_LITEON 0x04ca /* Lite-On Technology */
+#define USB_VENDOR_FUJIPHOTO 0x04cb /* Fuji Photo Film */
+#define USB_VENDOR_PHILIPSSEMI 0x04cc /* Philips Semiconductors */
+#define USB_VENDOR_TATUNG 0x04cd /* Tatung Co. Of America */
+#define USB_VENDOR_SCANLOGIC 0x04ce /* ScanLogic */
+#define USB_VENDOR_MYSON 0x04cf /* Myson Technology */
+#define USB_VENDOR_DIGI2 0x04d0 /* Digi */
+#define USB_VENDOR_ITTCANON 0x04d1 /* ITT Canon */
+#define USB_VENDOR_ALTEC 0x04d2 /* Altec Lansing */
+#define USB_VENDOR_LSI 0x04d4 /* LSI */
+#define USB_VENDOR_MENTORGRAPHICS 0x04d6 /* Mentor Graphics */
+#define USB_VENDOR_ITUNERNET 0x04d8 /* I-Tuner Networks */
+#define USB_VENDOR_HOLTEK 0x04d9 /* Holtek Semiconductor, Inc. */
+#define USB_VENDOR_PANASONIC 0x04da /* Panasonic (Matsushita) */
+#define USB_VENDOR_HUANHSIN 0x04dc /* Huan Hsin */
+#define USB_VENDOR_SHARP 0x04dd /* Sharp */
+#define USB_VENDOR_IIYAMA 0x04e1 /* Iiyama */
+#define USB_VENDOR_SHUTTLE 0x04e6 /* Shuttle Technology */
+#define USB_VENDOR_ELO 0x04e7 /* Elo TouchSystems */
+#define USB_VENDOR_SAMSUNG 0x04e8 /* Samsung Electronics */
+#define USB_VENDOR_NORTHSTAR 0x04eb /* Northstar */
+#define USB_VENDOR_TOKYOELECTRON 0x04ec /* Tokyo Electron */
+#define USB_VENDOR_ANNABOOKS 0x04ed /* Annabooks */
+#define USB_VENDOR_JVC 0x04f1 /* JVC */
+#define USB_VENDOR_CHICONY 0x04f2 /* Chicony Electronics */
+#define USB_VENDOR_ELAN 0x04f3 /* Elan */
+#define USB_VENDOR_NEWNEX 0x04f7 /* Newnex */
+#define USB_VENDOR_BROTHER 0x04f9 /* Brother Industries */
+#define USB_VENDOR_DALLAS 0x04fa /* Dallas Semiconductor */
+#define USB_VENDOR_AIPTEK2 0x04fc /* AIPTEK International */
+#define USB_VENDOR_PFU 0x04fe /* PFU */
+#define USB_VENDOR_FUJIKURA 0x0501 /* Fujikura/DDK */
+#define USB_VENDOR_ACER 0x0502 /* Acer */
+#define USB_VENDOR_3COM 0x0506 /* 3Com */
+#define USB_VENDOR_HOSIDEN 0x0507 /* Hosiden Corporation */
+#define USB_VENDOR_AZTECH 0x0509 /* Aztech Systems */
+#define USB_VENDOR_BELKIN 0x050d /* Belkin Components */
+#define USB_VENDOR_KAWATSU 0x050f /* Kawatsu Semiconductor */
+#define USB_VENDOR_FCI 0x0514 /* FCI */
+#define USB_VENDOR_LONGWELL 0x0516 /* Longwell */
+#define USB_VENDOR_COMPOSITE 0x0518 /* Composite */
+#define USB_VENDOR_STAR 0x0519 /* Star Micronics */
+#define USB_VENDOR_APC 0x051d /* American Power Conversion */
+#define USB_VENDOR_SCIATLANTA 0x051e /* Scientific Atlanta */
+#define USB_VENDOR_TSM 0x0520 /* TSM */
+#define USB_VENDOR_CONNECTEK 0x0522 /* Advanced Connectek USA */
+#define USB_VENDOR_NETCHIP 0x0525 /* NetChip Technology */
+#define USB_VENDOR_ALTRA 0x0527 /* ALTRA */
+#define USB_VENDOR_ATI 0x0528 /* ATI Technologies */
+#define USB_VENDOR_AKS 0x0529 /* Aladdin Knowledge Systems */
+#define USB_VENDOR_TEKOM 0x052b /* Tekom */
+#define USB_VENDOR_CANONDEV 0x052c /* Canon */
+#define USB_VENDOR_WACOMTECH 0x0531 /* Wacom */
+#define USB_VENDOR_INVENTEC 0x0537 /* Inventec */
+#define USB_VENDOR_SHYHSHIUN 0x0539 /* Shyh Shiun Terminals */
+#define USB_VENDOR_PREHWERKE 0x053a /* Preh Werke Gmbh & Co. KG */
+#define USB_VENDOR_SYNOPSYS 0x053f /* Synopsys */
+#define USB_VENDOR_UNIACCESS 0x0540 /* Universal Access */
+#define USB_VENDOR_VIEWSONIC 0x0543 /* ViewSonic */
+#define USB_VENDOR_XIRLINK 0x0545 /* Xirlink */
+#define USB_VENDOR_ANCHOR 0x0547 /* Anchor Chips */
+#define USB_VENDOR_SONY 0x054c /* Sony */
+#define USB_VENDOR_FUJIXEROX 0x0550 /* Fuji Xerox */
+#define USB_VENDOR_VISION 0x0553 /* VLSI Vision */
+#define USB_VENDOR_ASAHIKASEI 0x0556 /* Asahi Kasei Microsystems */
+#define USB_VENDOR_ATEN 0x0557 /* ATEN International */
+#define USB_VENDOR_SAMSUNG2 0x055d /* Samsung Electronics */
+#define USB_VENDOR_MUSTEK 0x055f /* Mustek Systems */
+#define USB_VENDOR_TELEX 0x0562 /* Telex Communications */
+#define USB_VENDOR_CHINON 0x0564 /* Chinon */
+#define USB_VENDOR_PERACOM 0x0565 /* Peracom Networks */
+#define USB_VENDOR_ALCOR2 0x0566 /* Alcor Micro */
+#define USB_VENDOR_XYRATEX 0x0567 /* Xyratex */
+#define USB_VENDOR_WACOM 0x056a /* WACOM */
+#define USB_VENDOR_ETEK 0x056c /* e-TEK Labs */
+#define USB_VENDOR_EIZO 0x056d /* EIZO */
+#define USB_VENDOR_ELECOM 0x056e /* Elecom */
+#define USB_VENDOR_CONEXANT 0x0572 /* Conexant */
+#define USB_VENDOR_HAUPPAUGE 0x0573 /* Hauppauge Computer Works */
+#define USB_VENDOR_BAFO 0x0576 /* BAFO/Quality Computer Accessories */
+#define USB_VENDOR_YEDATA 0x057b /* Y-E Data */
+#define USB_VENDOR_AVM 0x057c /* AVM */
+#define USB_VENDOR_QUICKSHOT 0x057f /* Quickshot */
+#define USB_VENDOR_ROLAND 0x0582 /* Roland */
+#define USB_VENDOR_ROCKFIRE 0x0583 /* Rockfire */
+#define USB_VENDOR_RATOC 0x0584 /* RATOC Systems */
+#define USB_VENDOR_ZYXEL 0x0586 /* ZyXEL Communication */
+#define USB_VENDOR_INFINEON 0x058b /* Infineon */
+#define USB_VENDOR_MICREL 0x058d /* Micrel */
+#define USB_VENDOR_ALCOR 0x058f /* Alcor Micro */
+#define USB_VENDOR_OMRON 0x0590 /* OMRON */
+#define USB_VENDOR_ZORAN 0x0595 /* Zoran Microelectronics */
+#define USB_VENDOR_NIIGATA 0x0598 /* Niigata */
+#define USB_VENDOR_IOMEGA 0x059b /* Iomega */
+#define USB_VENDOR_ATREND 0x059c /* A-Trend Technology */
+#define USB_VENDOR_AID 0x059d /* Advanced Input Devices */
+#define USB_VENDOR_LACIE 0x059f /* LaCie */
+#define USB_VENDOR_FUJIFILM 0x05a2 /* Fuji Film */
+#define USB_VENDOR_ARC 0x05a3 /* ARC */
+#define USB_VENDOR_ORTEK 0x05a4 /* Ortek */
+#define USB_VENDOR_CISCOLINKSYS3 0x05a6 /* Cisco-Linksys */
+#define USB_VENDOR_BOSE 0x05a7 /* Bose */
+#define USB_VENDOR_OMNIVISION 0x05a9 /* OmniVision */
+#define USB_VENDOR_INSYSTEM 0x05ab /* In-System Design */
+#define USB_VENDOR_APPLE 0x05ac /* Apple Computer */
+#define USB_VENDOR_YCCABLE 0x05ad /* Y.C. Cable */
+#define USB_VENDOR_DIGITALPERSONA 0x05ba /* DigitalPersona */
+#define USB_VENDOR_3G 0x05bc /* 3G Green Green Globe */
+#define USB_VENDOR_RAFI 0x05bd /* RAFI */
+#define USB_VENDOR_TYCO 0x05be /* Tyco */
+#define USB_VENDOR_KAWASAKI 0x05c1 /* Kawasaki */
+#define USB_VENDOR_DIGI 0x05c5 /* Digi International */
+#define USB_VENDOR_QUALCOMM2 0x05c6 /* Qualcomm */
+#define USB_VENDOR_QTRONIX 0x05c7 /* Qtronix */
+#define USB_VENDOR_FOXLINK 0x05c8 /* Foxlink */
+#define USB_VENDOR_RICOH 0x05ca /* Ricoh */
+#define USB_VENDOR_ELSA 0x05cc /* ELSA */
+#define USB_VENDOR_SCIWORX 0x05ce /* sci-worx */
+#define USB_VENDOR_BRAINBOXES 0x05d1 /* Brainboxes Limited */
+#define USB_VENDOR_ULTIMA 0x05d8 /* Ultima */
+#define USB_VENDOR_AXIOHM 0x05d9 /* Axiohm Transaction Solutions */
+#define USB_VENDOR_MICROTEK 0x05da /* Microtek */
+#define USB_VENDOR_SUNTAC 0x05db /* SUN Corporation */
+#define USB_VENDOR_LEXAR 0x05dc /* Lexar Media */
+#define USB_VENDOR_ADDTRON 0x05dd /* Addtron */
+#define USB_VENDOR_SYMBOL 0x05e0 /* Symbol Technologies */
+#define USB_VENDOR_SYNTEK 0x05e1 /* Syntek */
+#define USB_VENDOR_GENESYS 0x05e3 /* Genesys Logic */
+#define USB_VENDOR_FUJI 0x05e5 /* Fuji Electric */
+#define USB_VENDOR_KEITHLEY 0x05e6 /* Keithley Instruments */
+#define USB_VENDOR_EIZONANAO 0x05e7 /* EIZO Nanao */
+#define USB_VENDOR_KLSI 0x05e9 /* Kawasaki LSI */
+#define USB_VENDOR_FFC 0x05eb /* FFC */
+#define USB_VENDOR_ANKO 0x05ef /* Anko Electronic */
+#define USB_VENDOR_PIENGINEERING 0x05f3 /* P.I. Engineering */
+#define USB_VENDOR_AOC 0x05f6 /* AOC International */
+#define USB_VENDOR_CHIC 0x05fe /* Chic Technology */
+#define USB_VENDOR_BARCO 0x0600 /* Barco Display Systems */
+#define USB_VENDOR_BRIDGE 0x0607 /* Bridge Information */
+#define USB_VENDOR_SOLIDYEAR 0x060b /* Solid Year */
+#define USB_VENDOR_BIORAD 0x0614 /* Bio-Rad Laboratories */
+#define USB_VENDOR_MACALLY 0x0618 /* Macally */
+#define USB_VENDOR_ACTLABS 0x061c /* Act Labs */
+#define USB_VENDOR_ALARIS 0x0620 /* Alaris */
+#define USB_VENDOR_APEX 0x0624 /* Apex */
+#define USB_VENDOR_CREATIVE3 0x062a /* Creative Labs */
+#define USB_VENDOR_VIVITAR 0x0636 /* Vivitar */
+#define USB_VENDOR_GUNZE 0x0637 /* Gunze Electronics USA */
+#define USB_VENDOR_AVISION 0x0638 /* Avision */
+#define USB_VENDOR_TEAC 0x0644 /* TEAC */
+#define USB_VENDOR_SGI 0x065e /* Silicon Graphics */
+#define USB_VENDOR_SANWASUPPLY 0x0663 /* Sanwa Supply */
+#define USB_VENDOR_MEGATEC 0x0665 /* Megatec */
+#define USB_VENDOR_LINKSYS 0x066b /* Linksys */
+#define USB_VENDOR_ACERSA 0x066e /* Acer Semiconductor America */
+#define USB_VENDOR_SIGMATEL 0x066f /* Sigmatel */
+#define USB_VENDOR_DRAYTEK 0x0675 /* DrayTek */
+#define USB_VENDOR_AIWA 0x0677 /* Aiwa */
+#define USB_VENDOR_ACARD 0x0678 /* ACARD Technology */
+#define USB_VENDOR_PROLIFIC 0x067b /* Prolific Technology */
+#define USB_VENDOR_SIEMENS 0x067c /* Siemens */
+#define USB_VENDOR_AVANCELOGIC 0x0680 /* Avance Logic */
+#define USB_VENDOR_SIEMENS2 0x0681 /* Siemens */
+#define USB_VENDOR_MINOLTA 0x0686 /* Minolta */
+#define USB_VENDOR_CHPRODUCTS 0x068e /* CH Products */
+#define USB_VENDOR_HAGIWARA 0x0693 /* Hagiwara Sys-Com */
+#define USB_VENDOR_CTX 0x0698 /* Chuntex */
+#define USB_VENDOR_ASKEY 0x069a /* Askey Computer */
+#define USB_VENDOR_SAITEK 0x06a3 /* Saitek */
+#define USB_VENDOR_ALCATELT 0x06b9 /* Alcatel Telecom */
+#define USB_VENDOR_AGFA 0x06bd /* AGFA-Gevaert */
+#define USB_VENDOR_ASIAMD 0x06be /* Asia Microelectronic Development */
+#define USB_VENDOR_BIZLINK 0x06c4 /* Bizlink International */
+#define USB_VENDOR_KEYSPAN 0x06cd /* Keyspan / InnoSys Inc. */
+#define USB_VENDOR_AASHIMA 0x06d6 /* Aashima Technology */
+#define USB_VENDOR_LIEBERT 0x06da /* Liebert */
+#define USB_VENDOR_MULTITECH 0x06e0 /* MultiTech */
+#define USB_VENDOR_ADS 0x06e1 /* ADS Technologies */
+#define USB_VENDOR_ALCATELM 0x06e4 /* Alcatel Microelectronics */
+#define USB_VENDOR_SIRIUS 0x06ea /* Sirius Technologies */
+#define USB_VENDOR_GUILLEMOT 0x06f8 /* Guillemot */
+#define USB_VENDOR_BOSTON 0x06fd /* Boston Acoustics */
+#define USB_VENDOR_SMC 0x0707 /* Standard Microsystems */
+#define USB_VENDOR_PUTERCOM 0x0708 /* Putercom */
+#define USB_VENDOR_MCT 0x0711 /* MCT */
+#define USB_VENDOR_IMATION 0x0718 /* Imation */
+#define USB_VENDOR_TECLAST 0x071b /* Teclast */
+#define USB_VENDOR_SONYERICSSON 0x0731 /* Sony Ericsson */
+#define USB_VENDOR_EICON 0x0734 /* Eicon Networks */
+#define USB_VENDOR_SYNTECH 0x0745 /* Syntech Information */
+#define USB_VENDOR_DIGITALSTREAM 0x074e /* Digital Stream */
+#define USB_VENDOR_AUREAL 0x0755 /* Aureal Semiconductor */
+#define USB_VENDOR_MIDIMAN 0x0763 /* Midiman */
+#define USB_VENDOR_CYBERPOWER 0x0764 /* Cyber Power Systems, Inc. */
+#define USB_VENDOR_SURECOM 0x0769 /* Surecom Technology */
+#define USB_VENDOR_HIDGLOBAL 0x076b /* HID Global */
+#define USB_VENDOR_LINKSYS2 0x077b /* Linksys */
+#define USB_VENDOR_GRIFFIN 0x077d /* Griffin Technology */
+#define USB_VENDOR_SANDISK 0x0781 /* SanDisk */
+#define USB_VENDOR_JENOPTIK 0x0784 /* Jenoptik */
+#define USB_VENDOR_LOGITEC 0x0789 /* Logitec */
+#define USB_VENDOR_NOKIA2 0x078b /* Nokia */
+#define USB_VENDOR_BRIMAX 0x078e /* Brimax */
+#define USB_VENDOR_AXIS 0x0792 /* Axis Communications */
+#define USB_VENDOR_ABL 0x0794 /* ABL Electronics */
+#define USB_VENDOR_SAGEM 0x079b /* Sagem */
+#define USB_VENDOR_SUNCOMM 0x079c /* Sun Communications, Inc. */
+#define USB_VENDOR_ALFADATA 0x079d /* Alfadata Computer */
+#define USB_VENDOR_NATIONALTECH 0x07a2 /* National Technical Systems */
+#define USB_VENDOR_ONNTO 0x07a3 /* Onnto */
+#define USB_VENDOR_BE 0x07a4 /* Be */
+#define USB_VENDOR_ADMTEK 0x07a6 /* ADMtek */
+#define USB_VENDOR_COREGA 0x07aa /* Corega */
+#define USB_VENDOR_FREECOM 0x07ab /* Freecom */
+#define USB_VENDOR_MICROTECH 0x07af /* Microtech */
+#define USB_VENDOR_GENERALINSTMNTS 0x07b2 /* General Instruments (Motorola) */
+#define USB_VENDOR_OLYMPUS 0x07b4 /* Olympus */
+#define USB_VENDOR_ABOCOM 0x07b8 /* AboCom Systems */
+#define USB_VENDOR_KEISOKUGIKEN 0x07c1 /* Keisokugiken */
+#define USB_VENDOR_ONSPEC 0x07c4 /* OnSpec */
+#define USB_VENDOR_APG 0x07c5 /* APG Cash Drawer */
+#define USB_VENDOR_BUG 0x07c8 /* B.U.G. */
+#define USB_VENDOR_ALLIEDTELESYN 0x07c9 /* Allied Telesyn International */
+#define USB_VENDOR_AVERMEDIA 0x07ca /* AVerMedia Technologies */
+#define USB_VENDOR_SIIG 0x07cc /* SIIG */
+#define USB_VENDOR_CASIO 0x07cf /* CASIO */
+#define USB_VENDOR_DLINK2 0x07d1 /* D-Link */
+#define USB_VENDOR_APTIO 0x07d2 /* Aptio Products */
+#define USB_VENDOR_ARASAN 0x07da /* Arasan Chip Systems */
+#define USB_VENDOR_ALLIEDCABLE 0x07e6 /* Allied Cable */
+#define USB_VENDOR_STSN 0x07ef /* STSN */
+#define USB_VENDOR_CENTURY 0x07f7 /* Century Corp */
+#define USB_VENDOR_NEWLINK 0x07ff /* NEWlink */
+#define USB_VENDOR_ZOOM 0x0803 /* Zoom Telephonics */
+#define USB_VENDOR_PCS 0x0810 /* Personal Communication Systems */
+#define USB_VENDOR_ALPHASMART 0x081e /* AlphaSmart, Inc. */
+#define USB_VENDOR_BROADLOGIC 0x0827 /* BroadLogic */
+#define USB_VENDOR_HANDSPRING 0x082d /* Handspring */
+#define USB_VENDOR_PALM 0x0830 /* Palm Computing */
+#define USB_VENDOR_SOURCENEXT 0x0833 /* SOURCENEXT */
+#define USB_VENDOR_ACTIONSTAR 0x0835 /* Action Star Enterprise */
+#define USB_VENDOR_SAMSUNG_TECHWIN 0x0839 /* Samsung Techwin */
+#define USB_VENDOR_ACCTON 0x083a /* Accton Technology */
+#define USB_VENDOR_DIAMOND 0x0841 /* Diamond */
+#define USB_VENDOR_NETGEAR 0x0846 /* BayNETGEAR */
+#define USB_VENDOR_TOPRE 0x0853 /* Topre Corporation */
+#define USB_VENDOR_ACTIVEWIRE 0x0854 /* ActiveWire */
+#define USB_VENDOR_BBELECTRONICS 0x0856 /* B&B Electronics */
+#define USB_VENDOR_PORTGEAR 0x085a /* PortGear */
+#define USB_VENDOR_NETGEAR2 0x0864 /* Netgear */
+#define USB_VENDOR_SYSTEMTALKS 0x086e /* System Talks */
+#define USB_VENDOR_METRICOM 0x0870 /* Metricom */
+#define USB_VENDOR_ADESSOKBTEK 0x087c /* ADESSO/Kbtek America */
+#define USB_VENDOR_JATON 0x087d /* Jaton */
+#define USB_VENDOR_APT 0x0880 /* APT Technologies */
+#define USB_VENDOR_BOCARESEARCH 0x0885 /* Boca Research */
+#define USB_VENDOR_ANDREA 0x08a8 /* Andrea Electronics */
+#define USB_VENDOR_BURRBROWN 0x08bb /* Burr-Brown Japan */
+#define USB_VENDOR_2WIRE 0x08c8 /* 2Wire */
+#define USB_VENDOR_AIPTEK 0x08ca /* AIPTEK International */
+#define USB_VENDOR_SMARTBRIDGES 0x08d1 /* SmartBridges */
+#define USB_VENDOR_FUJITSUSIEMENS 0x08d4 /* Fujitsu-Siemens */
+#define USB_VENDOR_BILLIONTON 0x08dd /* Billionton Systems */
+#define USB_VENDOR_GEMALTO 0x08e6 /* Gemalto SA */
+#define USB_VENDOR_EXTENDED 0x08e9 /* Extended Systems */
+#define USB_VENDOR_MSYSTEMS 0x08ec /* M-Systems */
+#define USB_VENDOR_DIGIANSWER 0x08fd /* Digianswer */
+#define USB_VENDOR_AUTHENTEC 0x08ff /* AuthenTec */
+#define USB_VENDOR_AUDIOTECHNICA 0x0909 /* Audio-Technica */
+#define USB_VENDOR_TRUMPION 0x090a /* Trumpion Microelectronics */
+#define USB_VENDOR_FEIYA 0x090c /* Feiya */
+#define USB_VENDOR_ALATION 0x0910 /* Alation Systems */
+#define USB_VENDOR_GLOBESPAN 0x0915 /* Globespan */
+#define USB_VENDOR_CONCORDCAMERA 0x0919 /* Concord Camera */
+#define USB_VENDOR_GARMIN 0x091e /* Garmin International */
+#define USB_VENDOR_GOHUBS 0x0921 /* GoHubs */
+#define USB_VENDOR_XEROX 0x0924 /* Xerox */
+#define USB_VENDOR_BIOMETRIC 0x0929 /* American Biometric Company */
+#define USB_VENDOR_TOSHIBA 0x0930 /* Toshiba */
+#define USB_VENDOR_PLEXTOR 0x093b /* Plextor */
+#define USB_VENDOR_INTREPIDCS 0x093c /* Intrepid */
+#define USB_VENDOR_YANO 0x094f /* Yano */
+#define USB_VENDOR_KINGSTON 0x0951 /* Kingston Technology */
+#define USB_VENDOR_BLUEWATER 0x0956 /* BlueWater Systems */
+#define USB_VENDOR_AGILENT 0x0957 /* Agilent Technologies */
+#define USB_VENDOR_GUDE 0x0959 /* Gude ADS */
+#define USB_VENDOR_PORTSMITH 0x095a /* Portsmith */
+#define USB_VENDOR_ACERW 0x0967 /* Acer */
+#define USB_VENDOR_ADIRONDACK 0x0976 /* Adirondack Wire & Cable */
+#define USB_VENDOR_BECKHOFF 0x0978 /* Beckhoff */
+#define USB_VENDOR_MINDSATWORK 0x097a /* Minds At Work */
+#define USB_VENDOR_POINTCHIPS 0x09a6 /* PointChips */
+#define USB_VENDOR_INTERSIL 0x09aa /* Intersil */
+#define USB_VENDOR_ALTIUS 0x09b3 /* Altius Solutions */
+#define USB_VENDOR_ARRIS 0x09c1 /* Arris Interactive */
+#define USB_VENDOR_ACTIVCARD 0x09c3 /* ACTIVCARD */
+#define USB_VENDOR_ACTISYS 0x09c4 /* ACTiSYS */
+#define USB_VENDOR_NOVATEL2 0x09d7 /* Novatel Wireless */
+#define USB_VENDOR_AFOURTECH 0x09da /* A-FOUR TECH */
+#define USB_VENDOR_AIMEX 0x09dc /* AIMEX */
+#define USB_VENDOR_ADDONICS 0x09df /* Addonics Technologies */
+#define USB_VENDOR_AKAI 0x09e8 /* AKAI professional M.I. */
+#define USB_VENDOR_ARESCOM 0x09f5 /* ARESCOM */
+#define USB_VENDOR_BAY 0x09f9 /* Bay Associates */
+#define USB_VENDOR_ALTERA 0x09fb /* Altera */
+#define USB_VENDOR_CSR 0x0a12 /* Cambridge Silicon Radio */
+#define USB_VENDOR_TREK 0x0a16 /* Trek Technology */
+#define USB_VENDOR_ASAHIOPTICAL 0x0a17 /* Asahi Optical */
+#define USB_VENDOR_BOCASYSTEMS 0x0a43 /* Boca Systems */
+#define USB_VENDOR_SHANTOU 0x0a46 /* ShanTou */
+#define USB_VENDOR_MEDIAGEAR 0x0a48 /* MediaGear */
+#define USB_VENDOR_BROADCOM 0x0a5c /* Broadcom */
+#define USB_VENDOR_GREENHOUSE 0x0a6b /* GREENHOUSE */
+#define USB_VENDOR_GEOCAST 0x0a79 /* Geocast Network Systems */
+#define USB_VENDOR_IDQUANTIQUE 0x0aba /* id Quantique */
+#define USB_VENDOR_ZYDAS 0x0ace /* Zydas Technology Corporation */
+#define USB_VENDOR_NEODIO 0x0aec /* Neodio */
+#define USB_VENDOR_OPTION 0x0af0 /* Option N.V. */
+#define USB_VENDOR_ASUS 0x0b05 /* ASUSTeK Computer */
+#define USB_VENDOR_TODOS 0x0b0c /* Todos Data System */
+#define USB_VENDOR_SIIG2 0x0b39 /* SIIG */
+#define USB_VENDOR_TEKRAM 0x0b3b /* Tekram Technology */
+#define USB_VENDOR_HAL 0x0b41 /* HAL Corporation */
+#define USB_VENDOR_EMS 0x0b43 /* EMS Production */
+#define USB_VENDOR_NEC2 0x0b62 /* NEC */
+#define USB_VENDOR_ADLINK 0x0b63 /* ADLINK Technoligy, Inc. */
+#define USB_VENDOR_ATI2 0x0b6f /* ATI */
+#define USB_VENDOR_ZEEVO 0x0b7a /* Zeevo, Inc. */
+#define USB_VENDOR_KURUSUGAWA 0x0b7e /* Kurusugawa Electronics, Inc. */
+#define USB_VENDOR_SMART 0x0b8c /* Smart Technologies */
+#define USB_VENDOR_ASIX 0x0b95 /* ASIX Electronics */
+#define USB_VENDOR_O2MICRO 0x0b97 /* O2 Micro, Inc. */
+#define USB_VENDOR_USR 0x0baf /* U.S. Robotics */
+#define USB_VENDOR_AMBIT 0x0bb2 /* Ambit Microsystems */
+#define USB_VENDOR_HTC 0x0bb4 /* HTC */
+#define USB_VENDOR_REALTEK 0x0bda /* Realtek */
+#define USB_VENDOR_MEI 0x0bed /* MEI */
+#define USB_VENDOR_ADDONICS2 0x0bf6 /* Addonics Technology */
+#define USB_VENDOR_FSC 0x0bf8 /* Fujitsu Siemens Computers */
+#define USB_VENDOR_AGATE 0x0c08 /* Agate Technologies */
+#define USB_VENDOR_DMI 0x0c0b /* DMI */
+#define USB_VENDOR_CHICONY2 0x0c45 /* Chicony */
+#define USB_VENDOR_REINERSCT 0x0c4b /* Reiner-SCT */
+#define USB_VENDOR_SEALEVEL 0x0c52 /* Sealevel System */
+#define USB_VENDOR_LUWEN 0x0c76 /* Luwen */
+#define USB_VENDOR_KYOCERA2 0x0c88 /* Kyocera Wireless Corp. */
+#define USB_VENDOR_ZCOM 0x0cde /* Z-Com */
+#define USB_VENDOR_ATHEROS2 0x0cf3 /* Atheros Communications */
+#define USB_VENDOR_TANGTOP 0x0d3d /* Tangtop */
+#define USB_VENDOR_SMC3 0x0d5c /* Standard Microsystems */
+#define USB_VENDOR_ADDON 0x0d7d /* Add-on Technology */
+#define USB_VENDOR_ACDC 0x0d7e /* American Computer & Digital Components */
+#define USB_VENDOR_CMEDIA 0x0d8c /* CMEDIA */
+#define USB_VENDOR_CONCEPTRONIC 0x0d8e /* Conceptronic */
+#define USB_VENDOR_SKANHEX 0x0d96 /* Skanhex Technology, Inc. */
+#define USB_VENDOR_MSI 0x0db0 /* Micro Star International */
+#define USB_VENDOR_ELCON 0x0db7 /* ELCON Systemtechnik */
+#define USB_VENDOR_NETAC 0x0dd8 /* Netac */
+#define USB_VENDOR_SITECOMEU 0x0df6 /* Sitecom Europe */
+#define USB_VENDOR_MOBILEACTION 0x0df7 /* Mobile Action */
+#define USB_VENDOR_AMIGO 0x0e0b /* Amigo Technology */
+#define USB_VENDOR_SPEEDDRAGON 0x0e55 /* Speed Dragon Multimedia */
+#define USB_VENDOR_HAWKING 0x0e66 /* Hawking */
+#define USB_VENDOR_FOSSIL 0x0e67 /* Fossil, Inc */
+#define USB_VENDOR_GMATE 0x0e7e /* G.Mate, Inc */
+#define USB_VENDOR_OTI 0x0ea0 /* Ours Technology */
+#define USB_VENDOR_YISO 0x0eab /* Yiso Wireless Co. */
+#define USB_VENDOR_PILOTECH 0x0eaf /* Pilotech */
+#define USB_VENDOR_NOVATECH 0x0eb0 /* NovaTech */
+#define USB_VENDOR_ITEGNO 0x0eba /* iTegno */
+#define USB_VENDOR_WINMAXGROUP 0x0ed1 /* WinMaxGroup */
+#define USB_VENDOR_TOD 0x0ede /* TOD */
+#define USB_VENDOR_EGALAX 0x0eef /* eGalax, Inc. */
+#define USB_VENDOR_AIRPRIME 0x0f3d /* AirPrime, Inc. */
+#define USB_VENDOR_MICROTUNE 0x0f4d /* Microtune */
+#define USB_VENDOR_VTECH 0x0f88 /* VTech */
+#define USB_VENDOR_FALCOM 0x0f94 /* Falcom Wireless Communications GmbH */
+#define USB_VENDOR_RIM 0x0fca /* Research In Motion */
+#define USB_VENDOR_DYNASTREAM 0x0fcf /* Dynastream Innovations */
+#define USB_VENDOR_QUALCOMM 0x1004 /* Qualcomm */
+#define USB_VENDOR_APACER 0x1005 /* Apacer */
+#define USB_VENDOR_MOTOROLA4 0x100d /* Motorola */
+#define USB_VENDOR_AIRPLUS 0x1011 /* Airplus */
+#define USB_VENDOR_DESKNOTE 0x1019 /* Desknote */
+#define USB_VENDOR_GIGABYTE 0x1044 /* GIGABYTE */
+#define USB_VENDOR_WESTERN 0x1058 /* Western Digital */
+#define USB_VENDOR_MOTOROLA 0x1063 /* Motorola */
+#define USB_VENDOR_CCYU 0x1065 /* CCYU Technology */
+#define USB_VENDOR_CURITEL 0x106c /* Curitel Communications Inc */
+#define USB_VENDOR_SILABS2 0x10a6 /* SILABS2 */
+#define USB_VENDOR_USI 0x10ab /* USI */
+#define USB_VENDOR_PLX 0x10b5 /* PLX */
+#define USB_VENDOR_ASANTE 0x10bd /* Asante */
+#define USB_VENDOR_SILABS 0x10c4 /* Silicon Labs */
+#define USB_VENDOR_SILABS3 0x10c5 /* Silicon Labs */
+#define USB_VENDOR_SILABS4 0x10ce /* Silicon Labs */
+#define USB_VENDOR_ACTIONS 0x10d6 /* Actions */
+#define USB_VENDOR_ANALOG 0x1110 /* Analog Devices */
+#define USB_VENDOR_TENX 0x1130 /* Ten X Technology, Inc. */
+#define USB_VENDOR_ISSC 0x1131 /* Integrated System Solution Corp. */
+#define USB_VENDOR_JRC 0x1145 /* Japan Radio Company */
+#define USB_VENDOR_SPHAIRON 0x114b /* Sphairon Access Systems GmbH */
+#define USB_VENDOR_DELORME 0x1163 /* DeLorme */
+#define USB_VENDOR_SERVERWORKS 0x1166 /* ServerWorks */
+#define USB_VENDOR_DLINK3 0x1186 /* Dlink */
+#define USB_VENDOR_ACERCM 0x1189 /* Acer Communications & Multimedia */
+#define USB_VENDOR_SIERRA 0x1199 /* Sierra Wireless */
+#define USB_VENDOR_SANWA 0x11ad /* Sanwa Electric Instrument Co., Ltd. */
+#define USB_VENDOR_TOPFIELD 0x11db /* Topfield Co., Ltd */
+#define USB_VENDOR_SIEMENS3 0x11f5 /* Siemens */
+#define USB_VENDOR_NETINDEX 0x11f6 /* NetIndex */
+#define USB_VENDOR_ALCATEL 0x11f7 /* Alcatel */
+#define USB_VENDOR_UNKNOWN3 0x1233 /* Unknown vendor */
+#define USB_VENDOR_TSUNAMI 0x1241 /* Tsunami */
+#define USB_VENDOR_PHEENET 0x124a /* Pheenet */
+#define USB_VENDOR_TARGUS 0x1267 /* Targus */
+#define USB_VENDOR_TWINMOS 0x126f /* TwinMOS */
+#define USB_VENDOR_TENDA 0x1286 /* Tenda */
+#define USB_VENDOR_CREATIVE2 0x1292 /* Creative Labs */
+#define USB_VENDOR_BELKIN2 0x1293 /* Belkin Components */
+#define USB_VENDOR_CYBERTAN 0x129b /* CyberTAN Technology */
+#define USB_VENDOR_HUAWEI 0x12d1 /* Huawei Technologies */
+#define USB_VENDOR_ARANEUS 0x12d8 /* Araneus Information Systems */
+#define USB_VENDOR_TAPWAVE 0x12ef /* Tapwave */
+#define USB_VENDOR_AINCOMM 0x12fd /* Aincomm */
+#define USB_VENDOR_MOBILITY 0x1342 /* Mobility */
+#define USB_VENDOR_DICKSMITH 0x1371 /* Dick Smith Electronics */
+#define USB_VENDOR_NETGEAR3 0x1385 /* Netgear */
+#define USB_VENDOR_BALTECH 0x13ad /* Baltech */
+#define USB_VENDOR_CISCOLINKSYS 0x13b1 /* Cisco-Linksys */
+#define USB_VENDOR_SHARK 0x13d2 /* Shark */
+#define USB_VENDOR_AZUREWAVE 0x13d3 /* AsureWave */
+#define USB_VENDOR_EMTEC 0x13fe /* Emtec */
+#define USB_VENDOR_NOVATEL 0x1410 /* Novatel Wireless */
+#define USB_VENDOR_MERLIN 0x1416 /* Merlin */
+#define USB_VENDOR_WISTRONNEWEB 0x1435 /* Wistron NeWeb */
+#define USB_VENDOR_RADIOSHACK 0x1453 /* Radio Shack */
+#define USB_VENDOR_HUAWEI3COM 0x1472 /* Huawei-3Com */
+#define USB_VENDOR_ABOCOM2 0x1482 /* AboCom Systems */
+#define USB_VENDOR_SILICOM 0x1485 /* Silicom */
+#define USB_VENDOR_RALINK 0x148f /* Ralink Technology */
+#define USB_VENDOR_IMAGINATION 0x149a /* Imagination Technologies */
+#define USB_VENDOR_CONCEPTRONIC2 0x14b2 /* Conceptronic */
+#define USB_VENDOR_SUPERTOP 0x14cd /* Super Top */
+#define USB_VENDOR_PLANEX3 0x14ea /* Planex Communications */
+#define USB_VENDOR_SILICONPORTALS 0x1527 /* Silicon Portals */
+#define USB_VENDOR_UBIQUAM 0x1529 /* UBIQUAM Co., Ltd. */
+#define USB_VENDOR_JMICRON 0x152d /* JMicron */
+#define USB_VENDOR_UBLOX 0x1546 /* U-blox */
+#define USB_VENDOR_PNY 0x154b /* PNY */
+#define USB_VENDOR_OWEN 0x1555 /* Owen */
+#define USB_VENDOR_OQO 0x1557 /* OQO */
+#define USB_VENDOR_UMEDIA 0x157e /* U-MEDIA Communications */
+#define USB_VENDOR_FIBERLINE 0x1582 /* Fiberline */
+#define USB_VENDOR_SPARKLAN 0x15a9 /* SparkLAN */
+#define USB_VENDOR_AMIT2 0x15c5 /* AMIT */
+#define USB_VENDOR_SOHOWARE 0x15e8 /* SOHOware */
+#define USB_VENDOR_UMAX 0x1606 /* UMAX Data Systems */
+#define USB_VENDOR_INSIDEOUT 0x1608 /* Inside Out Networks */
+#define USB_VENDOR_AMOI 0x1614 /* Amoi Electronics */
+#define USB_VENDOR_GOODWAY 0x1631 /* Good Way Technology */
+#define USB_VENDOR_ENTREGA 0x1645 /* Entrega */
+#define USB_VENDOR_ACTIONTEC 0x1668 /* Actiontec Electronics */
+#define USB_VENDOR_CLIPSAL 0x166a /* Clipsal */
+#define USB_VENDOR_CISCOLINKSYS2 0x167b /* Cisco-Linksys */
+#define USB_VENDOR_ATHEROS 0x168c /* Atheros Communications */
+#define USB_VENDOR_GIGASET 0x1690 /* Gigaset */
+#define USB_VENDOR_GLOBALSUN 0x16ab /* Global Sun Technology */
+#define USB_VENDOR_ANYDATA 0x16d5 /* AnyDATA Corporation */
+#define USB_VENDOR_JABLOTRON 0x16d6 /* Jablotron */
+#define USB_VENDOR_CMOTECH 0x16d8 /* C-motech */
+#define USB_VENDOR_AXESSTEL 0x1726 /* Axesstel Co., Ltd. */
+#define USB_VENDOR_LINKSYS4 0x1737 /* Linksys */
+#define USB_VENDOR_SENAO 0x1740 /* Senao */
+#define USB_VENDOR_ASUS2 0x1761 /* ASUS */
+#define USB_VENDOR_SWEEX2 0x177f /* Sweex */
+#define USB_VENDOR_METAGEEK 0x1781 /* MetaGeek */
+#define USB_VENDOR_WAVESENSE 0x17f4 /* WaveSense */
+#define USB_VENDOR_VAISALA 0x1843 /* Vaisala */
+#define USB_VENDOR_AMIT 0x18c5 /* AMIT */
+#define USB_VENDOR_GOOGLE 0x18d1 /* Google */
+#define USB_VENDOR_QCOM 0x18e8 /* Qcom */
+#define USB_VENDOR_ELV 0x18ef /* ELV */
+#define USB_VENDOR_LINKSYS3 0x1915 /* Linksys */
+#define USB_VENDOR_QUALCOMMINC 0x19d2 /* Qualcomm, Incorporated */
+#define USB_VENDOR_WCH2 0x1a86 /* QinHeng Electronics */
+#define USB_VENDOR_STELERA 0x1a8d /* Stelera Wireless */
+#define USB_VENDOR_MATRIXORBITAL 0x1b3d /* Matrix Orbital */
+#define USB_VENDOR_OVISLINK 0x1b75 /* OvisLink */
+#define USB_VENDOR_TCTMOBILE 0x1bbb /* TCT Mobile */
+#define USB_VENDOR_TELIT 0x1bc7 /* Telit */
+#define USB_VENDOR_LONGCHEER 0x1c9e /* Longcheer Holdings, Ltd. */
+#define USB_VENDOR_MPMAN 0x1cae /* MpMan */
+#define USB_VENDOR_DRESDENELEKTRONIK 0x1cf1 /* dresden elektronik */
+#define USB_VENDOR_NEOTEL 0x1d09 /* Neotel */
+#define USB_VENDOR_PEGATRON 0x1d4d /* Pegatron */
+#define USB_VENDOR_QISDA 0x1da5 /* Qisda */
+#define USB_VENDOR_METAGEEK2 0x1dd5 /* MetaGeek */
+#define USB_VENDOR_ALINK 0x1e0e /* Alink */
+#define USB_VENDOR_AIRTIES 0x1eda /* AirTies */
+#define USB_VENDOR_DLINK 0x2001 /* D-Link */
+#define USB_VENDOR_PLANEX2 0x2019 /* Planex Communications */
+#define USB_VENDOR_HAUPPAUGE2 0x2040 /* Hauppauge Computer Works */
+#define USB_VENDOR_TLAYTECH 0x20b9 /* Tlay Tech */
+#define USB_VENDOR_ENCORE 0x203d /* Encore */
+#define USB_VENDOR_PARA 0x20b8 /* PARA Industrial */
+#define USB_VENDOR_ERICSSON 0x2282 /* Ericsson */
+#define USB_VENDOR_MOTOROLA2 0x22b8 /* Motorola */
+#define USB_VENDOR_TRIPPLITE 0x2478 /* Tripp-Lite */
+#define USB_VENDOR_HIROSE 0x2631 /* Hirose Electric */
+#define USB_VENDOR_NHJ 0x2770 /* NHJ */
+#define USB_VENDOR_PLANEX 0x2c02 /* Planex Communications */
+#define USB_VENDOR_VIDZMEDIA 0x3275 /* VidzMedia Pte Ltd */
+#define USB_VENDOR_AEI 0x3334 /* AEI */
+#define USB_VENDOR_HANK 0x3353 /* Hank Connection */
+#define USB_VENDOR_PQI 0x3538 /* PQI */
+#define USB_VENDOR_DAISY 0x3579 /* Daisy Technology */
+#define USB_VENDOR_NI 0x3923 /* National Instruments */
+#define USB_VENDOR_MICRONET 0x3980 /* Micronet Communications */
+#define USB_VENDOR_IODATA2 0x40bb /* I-O Data */
+#define USB_VENDOR_IRIVER 0x4102 /* iRiver */
+#define USB_VENDOR_DELL 0x413c /* Dell */
+#define USB_VENDOR_WCH 0x4348 /* QinHeng Electronics */
+#define USB_VENDOR_ACEECA 0x4766 /* Aceeca */
+#define USB_VENDOR_AVERATEC 0x50c2 /* Averatec */
+#define USB_VENDOR_SWEEX 0x5173 /* Sweex */
+#define USB_VENDOR_PROLIFIC2 0x5372 /* Prolific Technologies */
+#define USB_VENDOR_ONSPEC2 0x55aa /* OnSpec Electronic Inc. */
+#define USB_VENDOR_ZINWELL 0x5a57 /* Zinwell */
+#define USB_VENDOR_SITECOM 0x6189 /* Sitecom */
+#define USB_VENDOR_ARKMICRO 0x6547 /* Arkmicro Technologies Inc. */
+#define USB_VENDOR_3COM2 0x6891 /* 3Com */
+#define USB_VENDOR_EDIMAX 0x7392 /* Edimax */
+#define USB_VENDOR_INTEL 0x8086 /* Intel */
+#define USB_VENDOR_INTEL2 0x8087 /* Intel */
+#define USB_VENDOR_ALLWIN 0x8516 /* ALLWIN Tech */
+#define USB_VENDOR_SITECOM2 0x9016 /* Sitecom */
+#define USB_VENDOR_MOSCHIP 0x9710 /* MosChip Semiconductor */
+#define USB_VENDOR_MARVELL 0x9e88 /* Marvell Technology Group Ltd. */
+#define USB_VENDOR_3COM3 0xa727 /* 3Com */
+#define USB_VENDOR_DATAAPEX 0xdaae /* DataApex */
+#define USB_VENDOR_HP2 0xf003 /* Hewlett Packard */
+#define USB_VENDOR_USRP 0xfffe /* GNU Radio USRP */
+
+/*
+ * List of known products. Grouped by vendor.
+ */
+
+/* 3Com products */
+#define USB_PRODUCT_3COM_HOMECONN 0x009d /* HomeConnect Camera */
+#define USB_PRODUCT_3COM_3CREB96 0x00a0 /* Bluetooth USB Adapter */
+#define USB_PRODUCT_3COM_3C19250 0x03e8 /* 3C19250 Ethernet Adapter */
+#define USB_PRODUCT_3COM_3CRSHEW696 0x0a01 /* 3CRSHEW696 Wireless Adapter */
+#define USB_PRODUCT_3COM_3C460 0x11f8 /* HomeConnect 3C460 */
+#define USB_PRODUCT_3COM_USR56K 0x3021 /* U.S.Robotics 56000 Voice FaxModem Pro */
+#define USB_PRODUCT_3COM_3C460B 0x4601 /* HomeConnect 3C460B */
+#define USB_PRODUCT_3COM2_3CRUSB10075 0xa727 /* 3CRUSB10075 */
+#define USB_PRODUCT_3COM3_AR5523_1 0x6893 /* AR5523 */
+#define USB_PRODUCT_3COM3_AR5523_2 0x6895 /* AR5523 */
+#define USB_PRODUCT_3COM3_AR5523_3 0x6897 /* AR5523 */
+
+#define USB_PRODUCT_3COMUSR_OFFICECONN 0x0082 /* 3Com OfficeConnect Analog Modem */
+#define USB_PRODUCT_3COMUSR_USRISDN 0x008f /* 3Com U.S. Robotics Pro ISDN TA */
+#define USB_PRODUCT_3COMUSR_HOMECONN 0x009d /* 3Com HomeConnect Camera */
+#define USB_PRODUCT_3COMUSR_USR56K 0x3021 /* U.S. Robotics 56000 Voice FaxModem Pro */
+
+/* AboCom products */
+#define USB_PRODUCT_ABOCOM_XX1 0x110c /* XX1 */
+#define USB_PRODUCT_ABOCOM_XX2 0x200c /* XX2 */
+#define USB_PRODUCT_ABOCOM_RT2770 0x2770 /* RT2770 */
+#define USB_PRODUCT_ABOCOM_RT2870 0x2870 /* RT2870 */
+#define USB_PRODUCT_ABOCOM_RT3070 0x3070 /* RT3070 */
+#define USB_PRODUCT_ABOCOM_RT3071 0x3071 /* RT3071 */
+#define USB_PRODUCT_ABOCOM_RT3072 0x3072 /* RT3072 */
+#define USB_PRODUCT_ABOCOM2_RT2870_1 0x3c09 /* RT2870 */
+#define USB_PRODUCT_ABOCOM_URE450 0x4000 /* URE450 Ethernet Adapter */
+#define USB_PRODUCT_ABOCOM_UFE1000 0x4002 /* UFE1000 Fast Ethernet Adapter */
+#define USB_PRODUCT_ABOCOM_DSB650TX_PNA 0x4003 /* 1/10/100 Ethernet Adapter */
+#define USB_PRODUCT_ABOCOM_XX4 0x4004 /* XX4 */
+#define USB_PRODUCT_ABOCOM_XX5 0x4007 /* XX5 */
+#define USB_PRODUCT_ABOCOM_XX6 0x400b /* XX6 */
+#define USB_PRODUCT_ABOCOM_XX7 0x400c /* XX7 */
+#define USB_PRODUCT_ABOCOM_RTL8151 0x401a /* RTL8151 */
+#define USB_PRODUCT_ABOCOM_XX8 0x4102 /* XX8 */
+#define USB_PRODUCT_ABOCOM_XX9 0x4104 /* XX9 */
+#define USB_PRODUCT_ABOCOM_UF200 0x420a /* UF200 Ethernet */
+#define USB_PRODUCT_ABOCOM_WL54 0x6001 /* WL54 */
+#define USB_PRODUCT_ABOCOM_XX10 0xabc1 /* XX10 */
+#define USB_PRODUCT_ABOCOM_BWU613 0xb000 /* BWU613 */
+#define USB_PRODUCT_ABOCOM_HWU54DM 0xb21b /* HWU54DM */
+#define USB_PRODUCT_ABOCOM_RT2573_2 0xb21c /* RT2573 */
+#define USB_PRODUCT_ABOCOM_RT2573_3 0xb21d /* RT2573 */
+#define USB_PRODUCT_ABOCOM_RT2573_4 0xb21e /* RT2573 */
+#define USB_PRODUCT_ABOCOM_WUG2700 0xb21f /* WUG2700 */
+
+/* Accton products */
+#define USB_PRODUCT_ACCTON_USB320_EC 0x1046 /* USB320-EC Ethernet Adapter */
+#define USB_PRODUCT_ACCTON_2664W 0x3501 /* 2664W */
+#define USB_PRODUCT_ACCTON_111 0x3503 /* T-Sinus 111 Wireless Adapter */
+#define USB_PRODUCT_ACCTON_SMCWUSBG_NF 0x4505 /* SMCWUSB-G (no firmware) */
+#define USB_PRODUCT_ACCTON_SMCWUSBG 0x4506 /* SMCWUSB-G */
+#define USB_PRODUCT_ACCTON_SMCWUSBTG2_NF 0x4507 /* SMCWUSBT-G2 (no firmware) */
+#define USB_PRODUCT_ACCTON_SMCWUSBTG2 0x4508 /* SMCWUSBT-G2 */
+#define USB_PRODUCT_ACCTON_PRISM_GT 0x4521 /* PrismGT USB 2.0 WLAN */
+#define USB_PRODUCT_ACCTON_SS1001 0x5046 /* SpeedStream Ethernet Adapter */
+#define USB_PRODUCT_ACCTON_RT2870_2 0x6618 /* RT2870 */
+#define USB_PRODUCT_ACCTON_RT3070 0x7511 /* RT3070 */
+#define USB_PRODUCT_ACCTON_RT2770 0x7512 /* RT2770 */
+#define USB_PRODUCT_ACCTON_RT2870_3 0x7522 /* RT2870 */
+#define USB_PRODUCT_ACCTON_RT2870_5 0x8522 /* RT2870 */
+#define USB_PRODUCT_ACCTON_RT3070_4 0xa512 /* RT3070 */
+#define USB_PRODUCT_ACCTON_RT2870_4 0xa618 /* RT2870 */
+#define USB_PRODUCT_ACCTON_RT3070_1 0xa701 /* RT3070 */
+#define USB_PRODUCT_ACCTON_RT3070_2 0xa702 /* RT3070 */
+#define USB_PRODUCT_ACCTON_RT2870_1 0xb522 /* RT2870 */
+#define USB_PRODUCT_ACCTON_RT3070_3 0xc522 /* RT3070 */
+#define USB_PRODUCT_ACCTON_RT3070_5 0xd522 /* RT3070 */
+#define USB_PRODUCT_ACCTON_ZD1211B 0xe501 /* ZD1211B */
+
+/* Aceeca products */
+#define USB_PRODUCT_ACEECA_MEZ1000 0x0001 /* MEZ1000 RDA */
+
+/* Acer Communications & Multimedia (oemd by Surecom) */
+#define USB_PRODUCT_ACERCM_EP1427X2 0x0893 /* EP-1427X-2 Ethernet Adapter */
+
+/* Acer Labs products */
+#define USB_PRODUCT_ACERLABS_M5632 0x5632 /* USB 2.0 Data Link */
+
+/* Acer Peripherals, Inc. products */
+#define USB_PRODUCT_ACERP_ACERSCAN_C310U 0x12a6 /* Acerscan C310U */
+#define USB_PRODUCT_ACERP_ACERSCAN_320U 0x2022 /* Acerscan 320U */
+#define USB_PRODUCT_ACERP_ACERSCAN_640U 0x2040 /* Acerscan 640U */
+#define USB_PRODUCT_ACERP_ACERSCAN_620U 0x2060 /* Acerscan 620U */
+#define USB_PRODUCT_ACERP_ACERSCAN_4300U 0x20b0 /* Benq 3300U/4300U */
+#define USB_PRODUCT_ACERP_ACERSCAN_640BT 0x20be /* Acerscan 640BT */
+#define USB_PRODUCT_ACERP_ACERSCAN_1240U 0x20c0 /* Acerscan 1240U */
+#define USB_PRODUCT_ACERP_S81 0x4027 /* BenQ S81 phone */
+#define USB_PRODUCT_ACERP_H10 0x4068 /* AWL400 Wireless Adapter */
+#define USB_PRODUCT_ACERP_ATAPI 0x6003 /* ATA/ATAPI Adapter */
+#define USB_PRODUCT_ACERP_AWL300 0x9000 /* AWL300 Wireless Adapter */
+#define USB_PRODUCT_ACERP_AWL400 0x9001 /* AWL400 Wireless Adapter */
+
+/* Acer Warp products */
+#define USB_PRODUCT_ACERW_WARPLINK 0x0204 /* Warplink */
+
+/* Actions products */
+#define USB_PRODUCT_ACTIONS_MP4 0x1101 /* Actions MP4 Player */
+
+/* Actiontec, Inc. products */
+#define USB_PRODUCT_ACTIONTEC_PRISM_25 0x0408 /* Prism2.5 Wireless Adapter */
+#define USB_PRODUCT_ACTIONTEC_PRISM_25A 0x0421 /* Prism2.5 Wireless Adapter A */
+#define USB_PRODUCT_ACTIONTEC_FREELAN 0x6106 /* ROPEX FreeLan 802.11b */
+#define USB_PRODUCT_ACTIONTEC_UAT1 0x7605 /* UAT1 Wireless Ethernet Adapter */
+
+/* ACTiSYS products */
+#define USB_PRODUCT_ACTISYS_IR2000U 0x0011 /* ACT-IR2000U FIR */
+
+/* ActiveWire, Inc. products */
+#define USB_PRODUCT_ACTIVEWIRE_IOBOARD 0x0100 /* I/O Board */
+#define USB_PRODUCT_ACTIVEWIRE_IOBOARD_FW1 0x0101 /* I/O Board, rev. 1 firmware */
+
+/* Adaptec products */
+#define USB_PRODUCT_ADAPTEC_AWN8020 0x0020 /* AWN-8020 WLAN */
+
+/* Addtron products */
+#define USB_PRODUCT_ADDTRON_AWU120 0xff31 /* AWU-120 */
+
+/* ADLINK Texhnology products */
+#define USB_PRODUCT_ADLINK_ND6530 0x6530 /* ND-6530 USB-Serial */
+
+/* ADMtek products */
+#define USB_PRODUCT_ADMTEK_PEGASUSII_4 0x07c2 /* AN986A Ethernet */
+#define USB_PRODUCT_ADMTEK_PEGASUS 0x0986 /* AN986 Ethernet */
+#define USB_PRODUCT_ADMTEK_PEGASUSII 0x8511 /* AN8511 Ethernet */
+#define USB_PRODUCT_ADMTEK_PEGASUSII_2 0x8513 /* AN8513 Ethernet */
+#define USB_PRODUCT_ADMTEK_PEGASUSII_3 0x8515 /* AN8515 Ethernet */
+
+/* ADDON products */
+/* PNY OEMs these */
+#define USB_PRODUCT_ADDON_ATTACHE 0x1300 /* USB 2.0 Flash Drive */
+#define USB_PRODUCT_ADDON_ATTACHE 0x1300 /* USB 2.0 Flash Drive */
+#define USB_PRODUCT_ADDON_A256MB 0x1400 /* Attache 256MB USB 2.0 Flash Drive */
+#define USB_PRODUCT_ADDON_DISKPRO512 0x1420 /* USB 2.0 Flash Drive (DANE-ELEC zMate 512MB USB flash drive) */
+
+/* Addonics products */
+#define USB_PRODUCT_ADDONICS2_CABLE_205 0xa001 /* Cable 205 */
+
+/* ADS products */
+#define USB_PRODUCT_ADS_UBS10BT 0x0008 /* UBS-10BT Ethernet */
+#define USB_PRODUCT_ADS_UBS10BTX 0x0009 /* UBS-10BT Ethernet */
+
+/* AEI products */
+#define USB_PRODUCT_AEI_FASTETHERNET 0x1701 /* Fast Ethernet */
+
+/* Agate Technologies products */
+#define USB_PRODUCT_AGATE_QDRIVE 0x0378 /* Q-Drive */
+
+/* AGFA products */
+#define USB_PRODUCT_AGFA_SNAPSCAN1212U 0x0001 /* SnapScan 1212U */
+#define USB_PRODUCT_AGFA_SNAPSCAN1236U 0x0002 /* SnapScan 1236U */
+#define USB_PRODUCT_AGFA_SNAPSCANTOUCH 0x0100 /* SnapScan Touch */
+#define USB_PRODUCT_AGFA_SNAPSCAN1212U2 0x2061 /* SnapScan 1212U */
+#define USB_PRODUCT_AGFA_SNAPSCANE40 0x208d /* SnapScan e40 */
+#define USB_PRODUCT_AGFA_SNAPSCANE50 0x208f /* SnapScan e50 */
+#define USB_PRODUCT_AGFA_SNAPSCANE20 0x2091 /* SnapScan e20 */
+#define USB_PRODUCT_AGFA_SNAPSCANE25 0x2095 /* SnapScan e25 */
+#define USB_PRODUCT_AGFA_SNAPSCANE26 0x2097 /* SnapScan e26 */
+#define USB_PRODUCT_AGFA_SNAPSCANE52 0x20fd /* SnapScan e52 */
+
+/* Ain Communication Technology products */
+#define USB_PRODUCT_AINCOMM_AWU2000B 0x1001 /* AWU2000B Wireless Adapter */
+
+/* AIPTEK products */
+#define USB_PRODUCT_AIPTEK_POCKETCAM3M 0x2011 /* PocketCAM 3Mega */
+#define USB_PRODUCT_AIPTEK2_PENCAM_MEGA_1_3 0x504a /* PenCam Mega 1.3 */
+#define USB_PRODUCT_AIPTEK2_SUNPLUS_TECH 0x0c15 /* Sunplus Technology Inc. */
+
+/* AirPlis products */
+#define USB_PRODUCT_AIRPLUS_MCD650 0x3198 /* MCD650 modem */
+
+/* AirPrime products */
+#define USB_PRODUCT_AIRPRIME_PC5220 0x0112 /* CDMA Wireless PC Card */
+
+/* AirTies products */
+#define USB_PRODUCT_AIRTIES_RT3070 0x2310 /* RT3070 */
+
+/* AKS products */
+#define USB_PRODUCT_AKS_USBHASP 0x0001 /* USB-HASP 0.06 */
+
+/* Alcatel products */
+#define USB_PRODUCT_ALCATEL_OT535 0x02df /* One Touch 535/735 */
+
+/* Alcor Micro, Inc. products */
+#define USB_PRODUCT_ALCOR2_KBD_HUB 0x2802 /* Kbd Hub */
+
+#define USB_PRODUCT_ALCOR_SDCR_6335 0x6335 /* SD/MMC Card Reader */
+#define USB_PRODUCT_ALCOR_SDCR_6362 0x6362 /* SD/MMC Card Reader */
+#define USB_PRODUCT_ALCOR_TRANSCEND 0x6387 /* Transcend JetFlash Drive */
+#define USB_PRODUCT_ALCOR_MA_KBD_HUB 0x9213 /* MacAlly Kbd Hub */
+#define USB_PRODUCT_ALCOR_AU9814 0x9215 /* AU9814 Hub */
+#define USB_PRODUCT_ALCOR_UMCR_9361 0x9361 /* USB Multimedia Card Reader */
+#define USB_PRODUCT_ALCOR_SM_KBD 0x9410 /* MicroConnectors/StrongMan Keyboard */
+#define USB_PRODUCT_ALCOR_NEC_KBD_HUB 0x9472 /* NEC Kbd Hub */
+#define USB_PRODUCT_ALCOR_AU9720 0x9720 /* USB2 - RS-232 */
+#define USB_PRODUCT_ALCOR_AU6390 0x6390 /* AU6390 USB-IDE converter */
+
+/* Alink products */
+#define USB_PRODUCT_ALINK_DWM652U5 0xce16 /* DWM-652 */
+#define USB_PRODUCT_ALINK_3G 0x9000 /* 3G modem */
+#define USB_PRODUCT_ALINK_3GU 0x9200 /* 3G modem */
+
+/* Altec Lansing products */
+#define USB_PRODUCT_ALTEC_ADA70 0x0070 /* ADA70 Speakers */
+#define USB_PRODUCT_ALTEC_ASC495 0xff05 /* ASC495 Speakers */
+
+/* Allied Telesyn International products */
+#define USB_PRODUCT_ALLIEDTELESYN_ATUSB100 0xb100 /* AT-USB100 */
+
+/* ALLWIN Tech products */
+#define USB_PRODUCT_ALLWIN_RT2070 0x2070 /* RT2070 */
+#define USB_PRODUCT_ALLWIN_RT2770 0x2770 /* RT2770 */
+#define USB_PRODUCT_ALLWIN_RT2870 0x2870 /* RT2870 */
+#define USB_PRODUCT_ALLWIN_RT3070 0x3070 /* RT3070 */
+#define USB_PRODUCT_ALLWIN_RT3071 0x3071 /* RT3071 */
+#define USB_PRODUCT_ALLWIN_RT3072 0x3072 /* RT3072 */
+#define USB_PRODUCT_ALLWIN_RT3572 0x3572 /* RT3572 */
+
+/* AlphaSmart, Inc. products */
+#define USB_PRODUCT_ALPHASMART_DANA_KB 0xdbac /* AlphaSmart Dana Keyboard */
+#define USB_PRODUCT_ALPHASMART_DANA_SYNC 0xdf00 /* AlphaSmart Dana HotSync */
+
+/* Amoi products */
+#define USB_PRODUCT_AMOI_H01 0x0800 /* H01 3G modem */
+#define USB_PRODUCT_AMOI_H01A 0x7002 /* H01A 3G modem */
+#define USB_PRODUCT_AMOI_H02 0x0802 /* H02 3G modem */
+
+/* American Power Conversion products */
+#define USB_PRODUCT_APC_UPS 0x0002 /* Uninterruptible Power Supply */
+
+/* Ambit Microsystems products */
+#define USB_PRODUCT_AMBIT_WLAN 0x0302 /* WLAN */
+#define USB_PRODUCT_AMBIT_NTL_250 0x6098 /* NTL 250 cable modem */
+
+/* Apacer products */
+#define USB_PRODUCT_APACER_HT202 0xb113 /* USB 2.0 Flash Drive */
+
+/* American Power Conversion products */
+#define USB_PRODUCT_APC_UPS 0x0002 /* Uninterruptible Power Supply */
+
+/* Amigo Technology products */
+#define USB_PRODUCT_AMIGO_RT2870_1 0x9031 /* RT2870 */
+#define USB_PRODUCT_AMIGO_RT2870_2 0x9041 /* RT2870 */
+
+/* AMIT products */
+#define USB_PRODUCT_AMIT_CGWLUSB2GO 0x0002 /* CG-WLUSB2GO */
+#define USB_PRODUCT_AMIT_CGWLUSB2GNR 0x0008 /* CG-WLUSB2GNR */
+#define USB_PRODUCT_AMIT_RT2870_1 0x0012 /* RT2870 */
+
+/* AMIT(2) products */
+#define USB_PRODUCT_AMIT2_RT2870 0x0008 /* RT2870 */
+
+/* Anchor products */
+#define USB_PRODUCT_ANCHOR_SERIAL 0x2008 /* Serial */
+#define USB_PRODUCT_ANCHOR_EZUSB 0x2131 /* EZUSB */
+#define USB_PRODUCT_ANCHOR_EZLINK 0x2720 /* EZLINK */
+
+/* AnyData products */
+#define USB_PRODUCT_ANYDATA_ADU_620UW 0x6202 /* CDMA 2000 EV-DO USB Modem */
+#define USB_PRODUCT_ANYDATA_ADU_E100X 0x6501 /* CDMA 2000 1xRTT/EV-DO USB Modem */
+#define USB_PRODUCT_ANYDATA_ADU_500A 0x6502 /* CDMA 2000 EV-DO USB Modem */
+
+/* AOX, Inc. products */
+#define USB_PRODUCT_AOX_USB101 0x0008 /* Ethernet */
+
+/* American Power Conversion products */
+#define USB_PRODUCT_APC_UPS 0x0002 /* Uninterruptible Power Supply */
+
+/* Apple Computer products */
+#define USB_PRODUCT_APPLE_IMAC_KBD 0x0201 /* USB iMac Keyboard */
+#define USB_PRODUCT_APPLE_KBD 0x0202 /* USB Keyboard M2452 */
+#define USB_PRODUCT_APPLE_EXT_KBD 0x020c /* Apple Extended USB Keyboard */
+#define USB_PRODUCT_APPLE_KBD_TP_ANSI 0x0223 /* Apple Internal Keyboard/Trackpad (Wellspring/ANSI) */
+#define USB_PRODUCT_APPLE_KBD_TP_ISO 0x0224 /* Apple Internal Keyboard/Trackpad (Wellspring/ISO) */
+#define USB_PRODUCT_APPLE_KBD_TP_JIS 0x0225 /* Apple Internal Keyboard/Trackpad (Wellspring/JIS) */
+#define USB_PRODUCT_APPLE_KBD_TP_ANSI2 0x0230 /* Apple Internal Keyboard/Trackpad (Wellspring2/ANSI) */
+#define USB_PRODUCT_APPLE_KBD_TP_ISO2 0x0231 /* Apple Internal Keyboard/Trackpad (Wellspring2/ISO) */
+#define USB_PRODUCT_APPLE_KBD_TP_JIS2 0x0232 /* Apple Internal Keyboard/Trackpad (Wellspring2/JIS) */
+#define USB_PRODUCT_APPLE_MOUSE 0x0301 /* Mouse M4848 */
+#define USB_PRODUCT_APPLE_OPTMOUSE 0x0302 /* Optical mouse */
+#define USB_PRODUCT_APPLE_MIGHTYMOUSE 0x0304 /* Mighty Mouse */
+#define USB_PRODUCT_APPLE_KBD_HUB 0x1001 /* Hub in Apple USB Keyboard */
+#define USB_PRODUCT_APPLE_EXT_KBD_HUB 0x1003 /* Hub in Apple Extended USB Keyboard */
+#define USB_PRODUCT_APPLE_SPEAKERS 0x1101 /* Speakers */
+#define USB_PRODUCT_APPLE_IPOD 0x1201 /* iPod */
+#define USB_PRODUCT_APPLE_IPOD2G 0x1202 /* iPod 2G */
+#define USB_PRODUCT_APPLE_IPOD3G 0x1203 /* iPod 3G */
+#define USB_PRODUCT_APPLE_IPOD_04 0x1204 /* iPod '04' */
+#define USB_PRODUCT_APPLE_IPODMINI 0x1205 /* iPod Mini */
+#define USB_PRODUCT_APPLE_IPOD_06 0x1206 /* iPod '06' */
+#define USB_PRODUCT_APPLE_IPOD_07 0x1207 /* iPod '07' */
+#define USB_PRODUCT_APPLE_IPOD_08 0x1208 /* iPod '08' */
+#define USB_PRODUCT_APPLE_IPODVIDEO 0x1209 /* iPod Video */
+#define USB_PRODUCT_APPLE_IPODNANO 0x120a /* iPod Nano */
+#define USB_PRODUCT_APPLE_IPHONE 0x1290 /* iPhone */
+#define USB_PRODUCT_APPLE_IPOD_TOUCH 0x1291 /* iPod Touch */
+#define USB_PRODUCT_APPLE_IPHONE_3G 0x1292 /* iPhone 3G */
+#define USB_PRODUCT_APPLE_IPHONE_3GS 0x1294 /* iPhone 3GS */
+#define USB_PRODUCT_APPLE_IPHONE_4 0x1297 /* iPhone 4 */
+#define USB_PRODUCT_APPLE_IPAD 0x129a /* iPad */
+#define USB_PRODUCT_APPLE_ETHERNET 0x1402 /* Ethernet A1277 */
+
+/* Arkmicro Technologies */
+#define USB_PRODUCT_ARKMICRO_ARK3116 0x0232 /* ARK3116 Serial */
+
+/* Asahi Optical products */
+#define USB_PRODUCT_ASAHIOPTICAL_OPTIO230 0x0004 /* Digital camera */
+#define USB_PRODUCT_ASAHIOPTICAL_OPTIO330 0x0006 /* Digital camera */
+
+/* Asante products */
+#define USB_PRODUCT_ASANTE_EA 0x1427 /* Ethernet */
+
+/* ASIX Electronics products */
+#define USB_PRODUCT_ASIX_AX88172 0x1720 /* 10/100 Ethernet */
+#define USB_PRODUCT_ASIX_AX88178 0x1780 /* AX88178 */
+#define USB_PRODUCT_ASIX_AX88772 0x7720 /* AX88772 */
+#define USB_PRODUCT_ASIX_AX88772A 0x772a /* AX88772A USB 2.0 10/100 Ethernet */
+
+/* ASUS products */
+#define USB_PRODUCT_ASUS2_USBN11 0x0b05 /* USB-N11 */
+#define USB_PRODUCT_ASUS_WL167G 0x1707 /* WL-167g Wireless Adapter */
+#define USB_PRODUCT_ASUS_WL159G 0x170c /* WL-159g */
+#define USB_PRODUCT_ASUS_A9T_WIFI 0x171b /* A9T wireless */
+#define USB_PRODUCT_ASUS_P5B_WIFI 0x171d /* P5B wireless */
+#define USB_PRODUCT_ASUS_RT2573_1 0x1723 /* RT2573 */
+#define USB_PRODUCT_ASUS_RT2573_2 0x1724 /* RT2573 */
+#define USB_PRODUCT_ASUS_LCM 0x1726 /* LCM display */
+#define USB_PRODUCT_ASUS_RT2870_1 0x1731 /* RT2870 */
+#define USB_PRODUCT_ASUS_RT2870_2 0x1732 /* RT2870 */
+#define USB_PRODUCT_ASUS_RT2870_3 0x1742 /* RT2870 */
+#define USB_PRODUCT_ASUS_RT2870_4 0x1760 /* RT2870 */
+#define USB_PRODUCT_ASUS_RT2870_5 0x1761 /* RT2870 */
+#define USB_PRODUCT_ASUS_USBN13 0x1784 /* USB-N13 */
+#define USB_PRODUCT_ASUS_RT3070_1 0x1790 /* RT3070 */
+#define USB_PRODUCT_ASUS_A730W 0x4202 /* ASUS MyPal A730W */
+#define USB_PRODUCT_ASUS_P535 0x420f /* ASUS P535 PDA */
+#define USB_PRODUCT_ASUS_GMSC 0x422f /* ASUS Generic Mass Storage */
+#define USB_PRODUCT_ASUS_RT2570 0x1706 /* RT2500USB Wireless Adapter */
+
+/* ATen products */
+#define USB_PRODUCT_ATEN_UC1284 0x2001 /* Parallel printer */
+#define USB_PRODUCT_ATEN_UC10T 0x2002 /* 10Mbps Ethernet */
+#define USB_PRODUCT_ATEN_UC110T 0x2007 /* UC-110T Ethernet */
+#define USB_PRODUCT_ATEN_UC232A 0x2008 /* Serial */
+#define USB_PRODUCT_ATEN_UC210T 0x2009 /* UC-210T Ethernet */
+#define USB_PRODUCT_ATEN_DSB650C 0x4000 /* DSB-650C */
+
+/* Atheros Communications products */
+#define USB_PRODUCT_ATHEROS_AR5523 0x0001 /* AR5523 */
+#define USB_PRODUCT_ATHEROS_AR5523_NF 0x0002 /* AR5523 (no firmware) */
+#define USB_PRODUCT_ATHEROS2_AR5523_1 0x0001 /* AR5523 */
+#define USB_PRODUCT_ATHEROS2_AR5523_1_NF 0x0002 /* AR5523 (no firmware) */
+#define USB_PRODUCT_ATHEROS2_AR5523_2 0x0003 /* AR5523 */
+#define USB_PRODUCT_ATHEROS2_AR5523_2_NF 0x0004 /* AR5523 (no firmware) */
+#define USB_PRODUCT_ATHEROS2_AR5523_3 0x0005 /* AR5523 */
+#define USB_PRODUCT_ATHEROS2_AR5523_3_NF 0x0006 /* AR5523 (no firmware) */
+
+/* Atmel Comp. products */
+#define USB_PRODUCT_ATMEL_STK541 0x2109 /* Zigbee Controller */
+#define USB_PRODUCT_ATMEL_UHB124 0x3301 /* UHB124 hub */
+#define USB_PRODUCT_ATMEL_DWL120 0x7603 /* DWL-120 Wireless Adapter */
+#define USB_PRODUCT_ATMEL_BW002 0x7605 /* BW002 Wireless Adapter */
+#define USB_PRODUCT_ATMEL_WL1130USB 0x7613 /* WL-1130 USB */
+#define USB_PRODUCT_ATMEL_AT76C505A 0x7614 /* AT76c505a Wireless Adapter */
+
+/* AuthenTec products */
+#define USB_PRODUCT_AUTHENTEC_AES1610 0x1600 /* AES1610 Fingerprint Sensor */
+
+/* Avision products */
+#define USB_PRODUCT_AVISION_1200U 0x0268 /* 1200U scanner */
+
+/* Axesstel products */
+#define USB_PRODUCT_AXESSTEL_DATAMODEM 0x1000 /* Data Modem */
+
+/* AsureWave products */
+#define USB_PRODUCT_AZUREWAVE_RT2870_1 0x3247 /* RT2870 */
+#define USB_PRODUCT_AZUREWAVE_RT2870_2 0x3262 /* RT2870 */
+#define USB_PRODUCT_AZUREWAVE_RT3070_1 0x3273 /* RT3070 */
+#define USB_PRODUCT_AZUREWAVE_RT3070_2 0x3284 /* RT3070 */
+#define USB_PRODUCT_AZUREWAVE_RT3070_3 0x3305 /* RT3070 */
+
+/* Baltech products */
+#define USB_PRODUCT_BALTECH_CARDREADER 0x9999 /* Card reader */
+
+/* B&B Electronics products */
+#define USB_PRODUCT_BBELECTRONICS_USOTL4 0xAC01 /* RS-422/485 */
+
+/* Belkin products */
+/*product BELKIN F5U111 0x???? F5U111 Ethernet*/
+#define USB_PRODUCT_BELKIN_F5D6050 0x0050 /* F5D6050 802.11b Wireless Adapter */
+#define USB_PRODUCT_BELKIN_FBT001V 0x0081 /* FBT001v2 Bluetooth */
+#define USB_PRODUCT_BELKIN_FBT003V 0x0084 /* FBT003v2 Bluetooth */
+#define USB_PRODUCT_BELKIN_F5U103 0x0103 /* F5U103 Serial */
+#define USB_PRODUCT_BELKIN_F5U109 0x0109 /* F5U109 Serial */
+#define USB_PRODUCT_BELKIN_USB2SCSI 0x0115 /* USB to SCSI */
+#define USB_PRODUCT_BELKIN_F8T012 0x0121 /* F8T012xx1 Bluetooth USB Adapter */
+#define USB_PRODUCT_BELKIN_USB2LAN 0x0121 /* USB to LAN */
+#define USB_PRODUCT_BELKIN_F5U208 0x0208 /* F5U208 VideoBus II */
+#define USB_PRODUCT_BELKIN_F5U237 0x0237 /* F5U237 USB 2.0 7-Port Hub */
+#define USB_PRODUCT_BELKIN_F5U257 0x0257 /* F5U257 Serial */
+#define USB_PRODUCT_BELKIN_F5U409 0x0409 /* F5U409 Serial */
+#define USB_PRODUCT_BELKIN_F6C550AVR 0x0551 /* F6C550-AVR UPS */
+#define USB_PRODUCT_BELKIN_F5U120 0x1203 /* F5U120-PC Hub */
+#define USB_PRODUCT_BELKIN_ZD1211B 0x4050 /* ZD1211B */
+#define USB_PRODUCT_BELKIN_F5D5055 0x5055 /* F5D5055 */
+#define USB_PRODUCT_BELKIN_F5D7050 0x7050 /* F5D7050 Wireless Adapter */
+#define USB_PRODUCT_BELKIN_F5D7051 0x7051 /* F5D7051 54g USB Network Adapter */
+#define USB_PRODUCT_BELKIN_F5D7050A 0x705a /* F5D7050A Wireless Adapter */
+/* Also sold as 'Ativa 802.11g wireless card' */
+#define USB_PRODUCT_BELKIN_F5D7050_V4000 0x705c /* F5D7050 v4000 Wireless Adapter */
+#define USB_PRODUCT_BELKIN_F5D7050E 0x705e /* F5D7050E Wireless Adapter */
+#define USB_PRODUCT_BELKIN_RT2870_1 0x8053 /* RT2870 */
+#define USB_PRODUCT_BELKIN_RT2870_2 0x805c /* RT2870 */
+#define USB_PRODUCT_BELKIN_F5D8053V3 0x815c /* F5D8053 v3 */
+#define USB_PRODUCT_BELKIN_F5D8055 0x825a /* F5D8055 */
+#define USB_PRODUCT_BELKIN_F5D9050V3 0x905b /* F5D9050 ver 3 Wireless Adapter */
+#define USB_PRODUCT_BELKIN2_F5U002 0x0002 /* F5U002 Parallel printer */
+#define USB_PRODUCT_BELKIN_F6D4050V1 0x935a /* F6D4050 v1 */
+
+/* Billionton products */
+#define USB_PRODUCT_BILLIONTON_USB100 0x0986 /* USB100N 10/100 FastEthernet */
+#define USB_PRODUCT_BILLIONTON_USBLP100 0x0987 /* USB100LP */
+#define USB_PRODUCT_BILLIONTON_USBEL100 0x0988 /* USB100EL */
+#define USB_PRODUCT_BILLIONTON_USBE100 0x8511 /* USBE100 */
+#define USB_PRODUCT_BILLIONTON_USB2AR 0x90ff /* USB2AR Ethernet */
+
+/* Broadcom products */
+#define USB_PRODUCT_BROADCOM_BCM2033 0x2033 /* BCM2033 Bluetooth USB dongle */
+
+/* Brother Industries products */
+#define USB_PRODUCT_BROTHER_HL1050 0x0002 /* HL-1050 laser printer */
+#define USB_PRODUCT_BROTHER_MFC8600_9650 0x0100 /* MFC8600/9650 multifunction device */
+
+/* Behavior Technology Computer products */
+#define USB_PRODUCT_BTC_BTC6100 0x5550 /* 6100C Keyboard */
+#define USB_PRODUCT_BTC_BTC7932 0x6782 /* Keyboard with mouse port */
+
+/* Canon, Inc. products */
+#define USB_PRODUCT_CANON_N656U 0x2206 /* CanoScan N656U */
+#define USB_PRODUCT_CANON_N1220U 0x2207 /* CanoScan N1220U */
+#define USB_PRODUCT_CANON_D660U 0x2208 /* CanoScan D660U */
+#define USB_PRODUCT_CANON_N676U 0x220d /* CanoScan N676U */
+#define USB_PRODUCT_CANON_N1240U 0x220e /* CanoScan N1240U */
+#define USB_PRODUCT_CANON_LIDE25 0x2220 /* CanoScan LIDE 25 */
+#define USB_PRODUCT_CANON_S10 0x3041 /* PowerShot S10 */
+#define USB_PRODUCT_CANON_S100 0x3045 /* PowerShot S100 */
+#define USB_PRODUCT_CANON_S200 0x3065 /* PowerShot S200 */
+#define USB_PRODUCT_CANON_REBELXT 0x30ef /* Digital Rebel XT */
+
+/* CATC products */
+#define USB_PRODUCT_CATC_NETMATE 0x000a /* Netmate Ethernet */
+#define USB_PRODUCT_CATC_NETMATE2 0x000c /* Netmate2 Ethernet */
+#define USB_PRODUCT_CATC_CHIEF 0x000d /* USB Chief Bus & Protocol Analyzer */
+#define USB_PRODUCT_CATC_ANDROMEDA 0x1237 /* Andromeda hub */
+
+/* CASIO products */
+#define USB_PRODUCT_CASIO_QV_DIGICAM 0x1001 /* QV DigiCam */
+#define USB_PRODUCT_CASIO_EXS880 0x1105 /* Exilim EX-S880 */
+#define USB_PRODUCT_CASIO_BE300 0x2002 /* BE-300 PDA */
+#define USB_PRODUCT_CASIO_NAMELAND 0x4001 /* CASIO Nameland EZ-USB */
+
+/* CCYU products */
+#define USB_PRODUCT_CCYU_ED1064 0x2136 /* EasyDisk ED1064 */
+
+/* Century products */
+#define USB_PRODUCT_CENTURY_EX35QUAT 0x011e /* Century USB Disk Enclosure */
+#define USB_PRODUCT_CENTURY_EX35SW4_SB4 0x011f /* Century USB Disk Enclosure */
+
+/* Cherry products */
+#define USB_PRODUCT_CHERRY_MY3000KBD 0x0001 /* My3000 keyboard */
+#define USB_PRODUCT_CHERRY_MY3000HUB 0x0003 /* My3000 hub */
+#define USB_PRODUCT_CHERRY_CYBOARD 0x0004 /* CyBoard Keyboard */
+
+/* Chic Technology products */
+#define USB_PRODUCT_CHIC_MOUSE1 0x0001 /* mouse */
+#define USB_PRODUCT_CHIC_CYPRESS 0x0003 /* Cypress USB Mouse */
+
+/* Chicony products */
+#define USB_PRODUCT_CHICONY_KB8933 0x0001 /* KB-8933 keyboard */
+#define USB_PRODUCT_CHICONY_KU0325 0x0116 /* KU-0325 keyboard */
+#define USB_PRODUCT_CHICONY_CNF7129 0xb071 /* Notebook Web Camera */
+#define USB_PRODUCT_CHICONY2_TWINKLECAM 0x600d /* TwinkleCam USB camera */
+
+/* CH Products */
+#define USB_PRODUCT_CHPRODUCTS_PROTHROTTLE 0x00f1 /* Pro Throttle */
+#define USB_PRODUCT_CHPRODUCTS_PROPEDALS 0x00f2 /* Pro Pedals */
+#define USB_PRODUCT_CHPRODUCTS_FIGHTERSTICK 0x00f3 /* Fighterstick */
+#define USB_PRODUCT_CHPRODUCTS_FLIGHTYOKE 0x00ff /* Flight Sim Yoke */
+
+/* Cisco-Linksys products */
+#define USB_PRODUCT_CISCOLINKSYS_WUSB54AG 0x000c /* WUSB54AG Wireless Adapter */
+#define USB_PRODUCT_CISCOLINKSYS_WUSB54G 0x000d /* WUSB54G Wireless Adapter */
+#define USB_PRODUCT_CISCOLINKSYS_WUSB54GP 0x0011 /* WUSB54GP Wireless Adapter */
+#define USB_PRODUCT_CISCOLINKSYS_USB200MV2 0x0018 /* USB200M v2 */
+#define USB_PRODUCT_CISCOLINKSYS_HU200TS 0x001a /* HU200TS Wireless Adapter */
+#define USB_PRODUCT_CISCOLINKSYS_WUSB54GC 0x0020 /* WUSB54GC */
+#define USB_PRODUCT_CISCOLINKSYS_WUSB54GR 0x0023 /* WUSB54GR */
+#define USB_PRODUCT_CISCOLINKSYS_WUSBF54G 0x0024 /* WUSBF54G */
+#define USB_PRODUCT_CISCOLINKSYS2_RT3070 0x4001 /* RT3070 */
+#define USB_PRODUCT_CISCOLINKSYS3_RT3070 0x0101 /* RT3070 */
+
+/* Clipsal products */
+#define USB_PRODUCT_CLIPSAL_5500PCU 0x0303 /* 5500PCU C-Bus */
+
+/* CMOTECH products */
+#define USB_PRODUCT_CMOTECH_CNU510 0x5141 /* CDMA Technologies USB modem */
+#define USB_PRODUCT_CMOTECH_CNU550 0x5543 /* CDMA 2000 1xRTT/1xEVDO USB modem */
+#define USB_PRODUCT_CMOTECH_CGU628 0x6006 /* CGU-628 */
+#define USB_PRODUCT_CMOTECH_CDMA_MODEM1 0x6280 /* CDMA Technologies USB modem */
+#define USB_PRODUCT_CMOTECH_DISK 0xf000 /* disk mode */
+
+/* Compaq products */
+#define USB_PRODUCT_COMPAQ_IPAQPOCKETPC 0x0003 /* iPAQ PocketPC */
+#define USB_PRODUCT_COMPAQ_PJB100 0x504a /* Personal Jukebox PJB100 */
+#define USB_PRODUCT_COMPAQ_IPAQLINUX 0x505a /* iPAQ Linux */
+
+/* Composite Corp products looks the same as "TANGTOP" */
+#define USB_PRODUCT_COMPOSITE_USBPS2 0x0001 /* USB to PS2 Adaptor */
+
+/* Conceptronic products */
+#define USB_PRODUCT_CONCEPTRONIC_PRISM_GT 0x3762 /* PrismGT USB 2.0 WLAN */
+#define USB_PRODUCT_CONCEPTRONIC_C11U 0x7100 /* C11U */
+#define USB_PRODUCT_CONCEPTRONIC_WL210 0x7110 /* WL-210 */
+#define USB_PRODUCT_CONCEPTRONIC_AR5523_1 0x7801 /* AR5523 */
+#define USB_PRODUCT_CONCEPTRONIC_AR5523_1_NF 0x7802 /* AR5523 (no firmware) */
+#define USB_PRODUCT_CONCEPTRONIC_AR5523_2 0x7811 /* AR5523 */
+#define USB_PRODUCT_CONCEPTRONIC_AR5523_2_NF 0x7812 /* AR5523 (no firmware) */
+#define USB_PRODUCT_CONCEPTRONIC2_C54RU 0x3c02 /* C54RU WLAN */
+#define USB_PRODUCT_CONCEPTRONIC2_C54RU2 0x3c22 /* C54RU */
+#define USB_PRODUCT_CONCEPTRONIC2_RT3070_1 0x3c08 /* RT3070 */
+#define USB_PRODUCT_CONCEPTRONIC2_RT3070_2 0x3c11 /* RT3070 */
+#define USB_PRODUCT_CONCEPTRONIC2_VIGORN61 0x3c25 /* VIGORN61 */
+#define USB_PRODUCT_CONCEPTRONIC2_RT2870_1 0x3c06 /* RT2870 */
+#define USB_PRODUCT_CONCEPTRONIC2_RT2870_2 0x3c07 /* RT2870 */
+#define USB_PRODUCT_CONCEPTRONIC2_RT2870_7 0x3c09 /* RT2870 */
+#define USB_PRODUCT_CONCEPTRONIC2_RT2870_8 0x3c12 /* RT2870 */
+#define USB_PRODUCT_CONCEPTRONIC2_RT2870_3 0x3c23 /* RT2870 */
+#define USB_PRODUCT_CONCEPTRONIC2_RT2870_4 0x3c25 /* RT2870 */
+#define USB_PRODUCT_CONCEPTRONIC2_RT2870_5 0x3c27 /* RT2870 */
+#define USB_PRODUCT_CONCEPTRONIC2_RT2870_6 0x3c28 /* RT2870 */
+
+/* Connectix products */
+#define USB_PRODUCT_CONNECTIX_QUICKCAM 0x0001 /* QuickCam */
+
+/* Corega products */
+#define USB_PRODUCT_COREGA_ETHER_USB_T 0x0001 /* Ether USB-T */
+#define USB_PRODUCT_COREGA_FETHER_USB_TX 0x0004 /* FEther USB-TX */
+#define USB_PRODUCT_COREGA_WLAN_USB_USB_11 0x000c /* WirelessLAN USB-11 */
+#define USB_PRODUCT_COREGA_FETHER_USB_TXS 0x000d /* FEther USB-TXS */
+#define USB_PRODUCT_COREGA_WLANUSB 0x0012 /* Wireless LAN Stick-11 */
+#define USB_PRODUCT_COREGA_FETHER_USB2_TX 0x0017 /* FEther USB2-TX */
+#define USB_PRODUCT_COREGA_WLUSB_11_KEY 0x001a /* ULUSB-11 Key */
+#define USB_PRODUCT_COREGA_CGUSBRS232R 0x002a /* CG-USBRS232R */
+#define USB_PRODUCT_COREGA_CGWLUSB2GL 0x002d /* CG-WLUSB2GL */
+#define USB_PRODUCT_COREGA_CGWLUSB2GPX 0x002e /* CG-WLUSB2GPX */
+#define USB_PRODUCT_COREGA_RT2870_1 0x002f /* RT2870 */
+#define USB_PRODUCT_COREGA_RT2870_2 0x003c /* RT2870 */
+#define USB_PRODUCT_COREGA_RT2870_3 0x003f /* RT2870 */
+#define USB_PRODUCT_COREGA_RT3070 0x0041 /* RT3070 */
+#define USB_PRODUCT_COREGA_CGWLUSB300GNM 0x0042 /* CG-WLUSB300GNM */
+
+#define USB_PRODUCT_COREGA_WLUSB_11_STICK 0x7613 /* WLAN USB Stick 11 */
+#define USB_PRODUCT_COREGA_FETHER_USB_TXC 0x9601 /* FEther USB-TXC */
+
+/* Creative products */
+#define USB_PRODUCT_CREATIVE_NOMAD_II 0x1002 /* Nomad II MP3 player */
+#define USB_PRODUCT_CREATIVE_NOMAD_IIMG 0x4004 /* Nomad II MG */
+#define USB_PRODUCT_CREATIVE_NOMAD 0x4106 /* Nomad */
+#define USB_PRODUCT_CREATIVE2_VOIP_BLASTER 0x0258 /* Voip Blaster */
+#define USB_PRODUCT_CREATIVE3_OPTICAL_MOUSE 0x0001 /* Notebook Optical Mouse */
+
+/* Cambridge Silicon Radio Ltd. products */
+#define USB_PRODUCT_CSR_BT_DONGLE 0x0001 /* Bluetooth USB dongle */
+#define USB_PRODUCT_CSR_CSRDFU 0xffff /* USB Bluetooth Device in DFU State */
+
+/* Chipsbank Microelectronics Co., Ltd */
+#define USB_PRODUCT_CHIPSBANK_USBMEMSTICK 0x6025 /* CBM2080 Flash drive controller */
+#define USB_PRODUCT_CHIPSBANK_USBMEMSTICK1 0x6026 /* CBM1180 Flash drive controller */
+
+/* CTX products */
+#define USB_PRODUCT_CTX_EX1300 0x9999 /* Ex1300 hub */
+
+/* Curitel products */
+#define USB_PRODUCT_CURITEL_HX550C 0x1101 /* CDMA 2000 1xRTT USB modem (HX-550C) */
+#define USB_PRODUCT_CURITEL_HX57XB 0x2101 /* CDMA 2000 1xRTT USB modem (HX-570/575B/PR-600) */
+#define USB_PRODUCT_CURITEL_PC5740 0x3701 /* Broadband Wireless modem */
+#define USB_PRODUCT_CURITEL_UM175 0x3714 /* EVDO modem */
+
+/* CyberPower products */
+#define USB_PRODUCT_CYBERPOWER_1500CAVRLCD 0x0501 /* 1500CAVRLCD */
+
+/* CyberTAN Technology products */
+#define USB_PRODUCT_CYBERTAN_TG54USB 0x1666 /* TG54USB */
+#define USB_PRODUCT_CYBERTAN_RT2870 0x1828 /* RT2870 */
+
+/* Cypress Semiconductor products */
+#define USB_PRODUCT_CYPRESS_MOUSE 0x0001 /* mouse */
+#define USB_PRODUCT_CYPRESS_THERMO 0x0002 /* thermometer */
+#define USB_PRODUCT_CYPRESS_WISPY1A 0x0bad /* MetaGeek Wi-Spy */
+#define USB_PRODUCT_CYPRESS_KBDHUB 0x0101 /* Keyboard/Hub */
+#define USB_PRODUCT_CYPRESS_FMRADIO 0x1002 /* FM Radio */
+#define USB_PRODUCT_CYPRESS_IKARILASER 0x121f /* Ikari Laser SteelSeries ApS */
+
+#define USB_PRODUCT_CYPRESS_USBRS232 0x5500 /* USB-RS232 Interface */
+#define USB_PRODUCT_CYPRESS_SLIM_HUB 0x6560 /* Slim Hub */
+#define USB_PRODUCT_CYPRESS_XX6830XX 0x6830 /* PATA Storage Device */
+#define USB_PRODUCT_CYPRESS_SILVERSHIELD 0xfd13 /* Gembird Silver Shield PM */
+
+/* Daisy Technology products */
+#define USB_PRODUCT_DAISY_DMC 0x6901 /* USB MultiMedia Reader */
+
+/* Dallas Semiconductor products */
+#define USB_PRODUCT_DALLAS_J6502 0x4201 /* J-6502 speakers */
+
+/* DataApex products */
+#define USB_PRODUCT_DATAAPEX_MULTICOM 0xead6 /* MultiCom */
+
+/* Dell products */
+#define USB_PRODUCT_DELL_PORT 0x0058 /* Port Replicator */
+#define USB_PRODUCT_DELL_AIO926 0x5115 /* Photo AIO Printer 926 */
+#define USB_PRODUCT_DELL_BC02 0x8000 /* BC02 Bluetooth USB Adapter */
+#define USB_PRODUCT_DELL_PRISM_GT_1 0x8102 /* PrismGT USB 2.0 WLAN */
+#define USB_PRODUCT_DELL_TM350 0x8103 /* TrueMobile 350 Bluetooth USB Adapter */
+#define USB_PRODUCT_DELL_PRISM_GT_2 0x8104 /* PrismGT USB 2.0 WLAN */
+#define USB_PRODUCT_DELL_U5700 0x8114 /* Dell 5700 3G */
+#define USB_PRODUCT_DELL_U5500 0x8115 /* Dell 5500 3G */
+#define USB_PRODUCT_DELL_U5505 0x8116 /* Dell 5505 3G */
+#define USB_PRODUCT_DELL_U5700_2 0x8117 /* Dell 5700 3G */
+#define USB_PRODUCT_DELL_U5510 0x8118 /* Dell 5510 3G */
+#define USB_PRODUCT_DELL_U5700_3 0x8128 /* Dell 5700 3G */
+#define USB_PRODUCT_DELL_U5700_4 0x8129 /* Dell 5700 3G */
+#define USB_PRODUCT_DELL_U5720 0x8133 /* Dell 5720 3G */
+#define USB_PRODUCT_DELL_U5720_2 0x8134 /* Dell 5720 3G */
+#define USB_PRODUCT_DELL_U740 0x8135 /* Dell U740 CDMA */
+#define USB_PRODUCT_DELL_U5520 0x8136 /* Dell 5520 3G */
+#define USB_PRODUCT_DELL_U5520_2 0x8137 /* Dell 5520 3G */
+#define USB_PRODUCT_DELL_U5520_3 0x8138 /* Dell 5520 3G */
+#define USB_PRODUCT_DELL_U5730 0x8180 /* Dell 5730 3G */
+#define USB_PRODUCT_DELL_U5730_2 0x8181 /* Dell 5730 3G */
+#define USB_PRODUCT_DELL_U5730_3 0x8182 /* Dell 5730 3G */
+#define USB_PRODUCT_DELL_DW700 0x9500 /* Dell DW700 GPS */
+
+/* Delorme Paublishing products */
+#define USB_PRODUCT_DELORME_EARTHMATE 0x0100 /* Earthmate GPS */
+
+/* Desknote products */
+#define USB_PRODUCT_DESKNOTE_UCR_61S2B 0x0c55 /* UCR-61S2B */
+
+/* Diamond products */
+#define USB_PRODUCT_DIAMOND_RIO500USB 0x0001 /* Rio 500 USB */
+
+/* Dick Smith Electronics (really C-Net) products */
+#define USB_PRODUCT_DICKSMITH_RT2573 0x9022 /* RT2573 */
+#define USB_PRODUCT_DICKSMITH_CWD854F 0x9032 /* C-Net CWD-854 rev F */
+
+/* Digi International products */
+#define USB_PRODUCT_DIGI_ACCELEPORT2 0x0002 /* AccelePort USB 2 */
+#define USB_PRODUCT_DIGI_ACCELEPORT4 0x0004 /* AccelePort USB 4 */
+#define USB_PRODUCT_DIGI_ACCELEPORT8 0x0008 /* AccelePort USB 8 */
+
+/* Digianswer A/S products */
+#define USB_PRODUCT_DIGIANSWER_ZIGBEE802154 0x000a /* ZigBee/802.15.4 MAC */
+
+/* D-Link products */
+/*product DLINK DSBS25 0x0100 DSB-S25 serial*/
+#define USB_PRODUCT_DLINK_DUBE100 0x1a00 /* 10/100 Ethernet */
+#define USB_PRODUCT_DLINK_DSB650TX4 0x200c /* 10/100 Ethernet */
+#define USB_PRODUCT_DLINK_DWL120E 0x3200 /* DWL-120 rev E */
+#define USB_PRODUCT_DLINK_DWL122 0x3700 /* DWL-122 */
+#define USB_PRODUCT_DLINK_DWLG120 0x3701 /* DWL-G120 */
+#define USB_PRODUCT_DLINK_DWL120F 0x3702 /* DWL-120 rev F */
+#define USB_PRODUCT_DLINK_DWLAG132 0x3a00 /* DWL-AG132 */
+#define USB_PRODUCT_DLINK_DWLAG132_NF 0x3a01 /* DWL-AG132 (no firmware) */
+#define USB_PRODUCT_DLINK_DWLG132 0x3a02 /* DWL-G132 */
+#define USB_PRODUCT_DLINK_DWLG132_NF 0x3a03 /* DWL-G132 (no firmware) */
+#define USB_PRODUCT_DLINK_DWLAG122 0x3a04 /* DWL-AG122 */
+#define USB_PRODUCT_DLINK_DWLAG122_NF 0x3a05 /* DWL-AG122 (no firmware) */
+#define USB_PRODUCT_DLINK_DWLG122 0x3c00 /* DWL-G122 b1 Wireless Adapter */
+#define USB_PRODUCT_DLINK_DUBE100B1 0x3c05 /* DUB-E100 rev B1 */
+#define USB_PRODUCT_DLINK_RT2870 0x3c09 /* RT2870 */
+#define USB_PRODUCT_DLINK_RT3072 0x3c0a /* RT3072 */
+#define USB_PRODUCT_DLINK_DSB650C 0x4000 /* 10Mbps Ethernet */
+#define USB_PRODUCT_DLINK_DSB650TX1 0x4001 /* 10/100 Ethernet */
+#define USB_PRODUCT_DLINK_DSB650TX 0x4002 /* 10/100 Ethernet */
+#define USB_PRODUCT_DLINK_DSB650TX_PNA 0x4003 /* 1/10/100 Ethernet */
+#define USB_PRODUCT_DLINK_DSB650TX3 0x400b /* 10/100 Ethernet */
+#define USB_PRODUCT_DLINK_DSB650TX2 0x4102 /* 10/100 Ethernet */
+#define USB_PRODUCT_DLINK_DSB650 0xabc1 /* 10/100 Ethernet */
+#define USB_PRODUCT_DLINK_DUBH7 0xf103 /* DUB-H7 USB 2.0 7-Port Hub */
+#define USB_PRODUCT_DLINK2_DWA120 0x3a0c /* DWA-120 */
+#define USB_PRODUCT_DLINK2_DWA120_NF 0x3a0d /* DWA-120 (no firmware) */
+#define USB_PRODUCT_DLINK2_DWLG122C1 0x3c03 /* DWL-G122 c1 */
+#define USB_PRODUCT_DLINK2_WUA1340 0x3c04 /* WUA-1340 */
+#define USB_PRODUCT_DLINK2_DWA111 0x3c06 /* DWA-111 */
+#define USB_PRODUCT_DLINK2_RT2870_1 0x3c09 /* RT2870 */
+#define USB_PRODUCT_DLINK2_DWA110 0x3c07 /* DWA-110 */
+#define USB_PRODUCT_DLINK2_RT3072 0x3c0a /* RT3072 */
+#define USB_PRODUCT_DLINK2_RT3072_1 0x3c0b /* RT3072 */
+#define USB_PRODUCT_DLINK2_RT3070_1 0x3c0d /* RT3070 */
+#define USB_PRODUCT_DLINK2_RT3070_2 0x3c0e /* RT3070 */
+#define USB_PRODUCT_DLINK2_RT3070_3 0x3c0f /* RT3070 */
+#define USB_PRODUCT_DLINK2_RT2870_2 0x3c11 /* RT2870 */
+#define USB_PRODUCT_DLINK2_DWA130 0x3c13 /* DWA-130 */
+#define USB_PRODUCT_DLINK2_RT3070_4 0x3c15 /* RT3070 */
+#define USB_PRODUCT_DLINK2_RT3070_5 0x3c16 /* RT3070 */
+#define USB_PRODUCT_DLINK3_DWM652 0x3e04 /* DWM-652 */
+
+/* DMI products */
+#define USB_PRODUCT_DMI_CFSM_RW 0xa109 /* CF/SM Reader/Writer */
+#define USB_PRODUCT_DMI_DISK 0x2bcf /* Generic Disk */
+
+/* DrayTek products */
+#define USB_PRODUCT_DRAYTEK_VIGOR550 0x0550 /* Vigor550 */
+
+/* dresden elektronik products */
+#define USB_PRODUCT_DRESDENELEKTRONIK_SENSORTERMINALBOARD 0x0001 /* SensorTerminalBoard */
+#define USB_PRODUCT_DRESDENELEKTRONIK_WIRELESSHANDHELDTERMINAL 0x0004 /* Wireless Handheld Terminal */
+
+/* Dynastream Innovations */
+#define USB_PRODUCT_DYNASTREAM_ANTDEVBOARD 0x1003 /* ANT dev board */
+#define USB_PRODUCT_DYNASTREAM_ANT2USB 0x1004 /* ANT2USB */
+#define USB_PRODUCT_DYNASTREAM_ANTDEVBOARD2 0x1006 /* ANT dev board */
+
+/* Edimax products */
+#define USB_PRODUCT_EDIMAX_EW7318USG 0x7318 /* USB Wireless dongle */
+#define USB_PRODUCT_EDIMAX_RT2870_1 0x7711 /* RT2870 */
+#define USB_PRODUCT_EDIMAX_EW7717 0x7717 /* EW-7717 */
+#define USB_PRODUCT_EDIMAX_EW7718 0x7718 /* EW-7718 */
+
+/* eGalax Products */
+#define USB_PRODUCT_EGALAX_TPANEL 0x0001 /* Touch Panel */
+#define USB_PRODUCT_EGALAX_TPANEL2 0x0002 /* Touch Panel */
+#define USB_PRODUCT_EGALAX2_TPANEL 0x0001 /* Touch Panel */
+
+/* Eicon Networks */
+#define USB_PRODUCT_EICON_DIVA852 0x4905 /* Diva 852 ISDN TA */
+
+/* EIZO products */
+#define USB_PRODUCT_EIZO_HUB 0x0000 /* hub */
+#define USB_PRODUCT_EIZO_MONITOR 0x0001 /* monitor */
+
+/* ELCON Systemtechnik products */
+#define USB_PRODUCT_ELCON_PLAN 0x0002 /* Goldpfeil P-LAN */
+
+/* Elecom products */
+#define USB_PRODUCT_ELECOM_MOUSE29UO 0x0002 /* mouse 29UO */
+#define USB_PRODUCT_ELECOM_LDUSBTX0 0x200c /* LD-USB/TX */
+#define USB_PRODUCT_ELECOM_LDUSBTX1 0x4002 /* LD-USB/TX */
+#define USB_PRODUCT_ELECOM_LDUSBLTX 0x4005 /* LD-USBL/TX */
+#define USB_PRODUCT_ELECOM_LDUSBTX2 0x400b /* LD-USB/TX */
+#define USB_PRODUCT_ELECOM_LDUSB20 0x4010 /* LD-USB20 */
+#define USB_PRODUCT_ELECOM_UCSGT 0x5003 /* UC-SGT */
+#define USB_PRODUCT_ELECOM_UCSGT0 0x5004 /* UC-SGT */
+#define USB_PRODUCT_ELECOM_LDUSBTX3 0xabc1 /* LD-USB/TX */
+
+/* Elsa products */
+#define USB_PRODUCT_ELSA_MODEM1 0x2265 /* ELSA Modem Board */
+#define USB_PRODUCT_ELSA_USB2ETHERNET 0x3000 /* Microlink USB2Ethernet */
+
+/* ELV products */
+#define USB_PRODUCT_ELV_USBI2C 0xe00f /* USB-I2C interface */
+
+/* EMS products */
+#define USB_PRODUCT_EMS_DUAL_SHOOTER 0x0003 /* PSX gun controller converter */
+
+/* Encore products */
+#define USB_PRODUCT_ENCORE_RT3070_1 0x1480 /* RT3070 */
+#define USB_PRODUCT_ENCORE_RT3070_2 0x14a1 /* RT3070 */
+#define USB_PRODUCT_ENCORE_RT3070_3 0x14a9 /* RT3070 */
+
+/* Entrega products */
+#define USB_PRODUCT_ENTREGA_1S 0x0001 /* 1S serial */
+#define USB_PRODUCT_ENTREGA_2S 0x0002 /* 2S serial */
+#define USB_PRODUCT_ENTREGA_1S25 0x0003 /* 1S25 serial */
+#define USB_PRODUCT_ENTREGA_4S 0x0004 /* 4S serial */
+#define USB_PRODUCT_ENTREGA_E45 0x0005 /* E45 Ethernet */
+#define USB_PRODUCT_ENTREGA_CENTRONICS 0x0006 /* Parallel Port */
+#define USB_PRODUCT_ENTREGA_XX1 0x0008 /* Ethernet */
+#define USB_PRODUCT_ENTREGA_1S9 0x0093 /* 1S9 serial */
+#define USB_PRODUCT_ENTREGA_EZUSB 0x8000 /* EZ-USB */
+/*product ENTREGA SERIAL 0x8001 DB25 Serial*/
+#define USB_PRODUCT_ENTREGA_2U4S 0x8004 /* 2U4S serial/usb hub */
+#define USB_PRODUCT_ENTREGA_XX2 0x8005 /* Ethernet */
+/*product ENTREGA SERIAL_DB9 0x8093 DB9 Serial*/
+
+/* Epson products */
+#define USB_PRODUCT_EPSON_PRINTER1 0x0001 /* USB Printer */
+#define USB_PRODUCT_EPSON_PRINTER2 0x0002 /* ISD USB Smart Cable for Mac */
+#define USB_PRODUCT_EPSON_PRINTER3 0x0003 /* ISD USB Smart Cable */
+#define USB_PRODUCT_EPSON_PRINTER5 0x0005 /* USB Printer */
+#define USB_PRODUCT_EPSON_636 0x0101 /* Perfection 636U / 636Photo scanner */
+#define USB_PRODUCT_EPSON_610 0x0103 /* Perfection 610 scanner */
+#define USB_PRODUCT_EPSON_1200 0x0104 /* Perfection 1200U / 1200Photo scanner */
+#define USB_PRODUCT_EPSON_1600 0x0107 /* Expression 1600 scanner */
+#define USB_PRODUCT_EPSON_1640 0x010a /* Perfection 1640SU scanner */
+#define USB_PRODUCT_EPSON_1240 0x010b /* Perfection 1240U / 1240Photo scanner */
+#define USB_PRODUCT_EPSON_640U 0x010c /* Perfection 640U scanner */
+#define USB_PRODUCT_EPSON_1250 0x010f /* Perfection 1250U / 1250Photo scanner */
+#define USB_PRODUCT_EPSON_1650 0x0110 /* Perfection 1650 scanner */
+#define USB_PRODUCT_EPSON_GT9700F 0x0112 /* GT-9700F scanner */
+#define USB_PRODUCT_EPSON_GT9300UF 0x011b /* GT-9300UF scanner */
+#define USB_PRODUCT_EPSON_3200 0x011c /* Perfection 3200 scanner */
+#define USB_PRODUCT_EPSON_1260 0x011d /* Perfection 1260 scanner */
+#define USB_PRODUCT_EPSON_1660 0x011e /* Perfection 1660 scanner */
+#define USB_PRODUCT_EPSON_1670 0x011f /* Perfection 1670 scanner */
+#define USB_PRODUCT_EPSON_1270 0x0120 /* Perfection 1270 scanner */
+#define USB_PRODUCT_EPSON_2480 0x0121 /* Perfection 2480 scanner */
+#define USB_PRODUCT_EPSON_3590 0x0122 /* Perfection 3590 scanner */
+#define USB_PRODUCT_EPSON_4990 0x012a /* Perfection 4990 Photo scanner */
+#define USB_PRODUCT_EPSON_CRESSI_EDY 0x0521 /* Cressi Edy diving computer */
+#define USB_PRODUCT_EPSON_STYLUS_875DC 0x0601 /* Stylus Photo 875DC Card Reader */
+#define USB_PRODUCT_EPSON_STYLUS_895 0x0602 /* Stylus Photo 895 Card Reader */
+#define USB_PRODUCT_EPSON_CX5400 0x0808 /* CX5400 scanner */
+#define USB_PRODUCT_EPSON_3500 0x080e /* CX-3500/3600/3650 MFP */
+#define USB_PRODUCT_EPSON_RX425 0x080f /* Stylus Photo RX425 scanner */
+#define USB_PRODUCT_EPSON_DX3800 0x0818 /* CX3700/CX3800/DX38x0 MFP scanner */
+#define USB_PRODUCT_EPSON_4800 0x0819 /* CX4700/CX4800/DX48x0 MFP scanner */
+#define USB_PRODUCT_EPSON_4200 0x0820 /* CX4100/CX4200/DX4200 MFP scanner */
+#define USB_PRODUCT_EPSON_5000 0x082b /* CX4900/CX5000/DX50x0 MFP scanner */
+#define USB_PRODUCT_EPSON_6000 0x082e /* CX5900/CX6000/DX60x0 MFP scanner */
+#define USB_PRODUCT_EPSON_DX4000 0x082f /* DX4000 MFP scanner */
+#define USB_PRODUCT_EPSON_DX7400 0x0838 /* CX7300/CX7400/DX7400 MFP scanner */
+#define USB_PRODUCT_EPSON_DX8400 0x0839 /* CX8300/CX8400/DX8400 MFP scanner */
+#define USB_PRODUCT_EPSON_SX100 0x0841 /* SX100/NX100 MFP scanner */
+#define USB_PRODUCT_EPSON_NX300 0x0848 /* NX300 MFP scanner */
+#define USB_PRODUCT_EPSON_SX200 0x0849 /* SX200/SX205 MFP scanner */
+#define USB_PRODUCT_EPSON_SX400 0x084a /* SX400/NX400/TX400 MFP scanner */
+
+/* e-TEK Labs products */
+#define USB_PRODUCT_ETEK_1COM 0x8007 /* Serial */
+
+/* Extended Systems products */
+#define USB_PRODUCT_EXTENDED_XTNDACCESS 0x0100 /* XTNDAccess IrDA */
+
+/* FEIYA products */
+#define USB_PRODUCT_FEIYA_5IN1 0x1132 /* 5-in-1 Card Reader */
+
+/* Fiberline */
+#define USB_PRODUCT_FIBERLINE_WL430U 0x6003 /* WL-430U */
+
+/* Fossil, Inc products */
+#define USB_PRODUCT_FOSSIL_WRISTPDA 0x0002 /* Wrist PDA */
+
+/* Foxconn products */
+#define USB_PRODUCT_FOXCONN_PIRELLI_DP_L10 0xe000 /* Pirelli DP-L10 */
+
+/* Freecom products */
+#define USB_PRODUCT_FREECOM_DVD 0xfc01 /* DVD drive */
+#define USB_PRODUCT_FREECOM_HDD 0xfc05 /* Classic SL Hard Drive */
+
+/* Fujitsu Siemens Computers products */
+#define USB_PRODUCT_FSC_E5400 0x1009 /* PrismGT USB 2.0 WLAN */
+
+/* Future Technology Devices products */
+#define USB_PRODUCT_FTDI_SERIAL_8U100AX 0x8372 /* 8U100AX Serial */
+#define USB_PRODUCT_FTDI_SERIAL_8U232AM 0x6001 /* 8U232AM Serial */
+#define USB_PRODUCT_FTDI_SERIAL_8U232AM4 0x6004 /* 8U232AM Serial */
+#define USB_PRODUCT_FTDI_SERIAL_2232C 0x6010 /* FT2232C Dual port Serial */
+#define USB_PRODUCT_FTDI_SERIAL_2232D 0x9e90 /* FT2232D Dual port Serial */
+#define USB_PRODUCT_FTDI_SERIAL_4232H 0x6011 /* FT4232H Quad port Serial */
+/* Gude Analog- und Digitalsysteme products also uses FTDI's id: */
+#define USB_PRODUCT_FTDI_TACTRIX_OPENPORT_13M 0xcc48 /* OpenPort 1.3 Mitsubishi */
+#define USB_PRODUCT_FTDI_TACTRIX_OPENPORT_13S 0xcc49 /* OpenPort 1.3 Subaru */
+#define USB_PRODUCT_FTDI_TACTRIX_OPENPORT_13U 0xcc4a /* OpenPort 1.3 Universal */
+#define USB_PRODUCT_FTDI_GAMMASCOUT 0xd678 /* Gamma-Scout */
+#define USB_PRODUCT_FTDI_KBS 0xe6c8 /* Pyramid KBS USB LCD */
+#define USB_PRODUCT_FTDI_EISCOU 0xe888 /* Expert ISDN Control USB */
+#define USB_PRODUCT_FTDI_UOPTBR 0xe889 /* USB-RS232 OptoBridge */
+#define USB_PRODUCT_FTDI_EMCU2D 0xe88a /* Expert mouseCLOCK USB II */
+#define USB_PRODUCT_FTDI_PCMSFU 0xe88b /* Precision Clock MSF USB */
+#define USB_PRODUCT_FTDI_EMCU2H 0xe88c /* Expert mouseCLOCK USB II HBG */
+#define USB_PRODUCT_FTDI_MAXSTREAM 0xee18 /* Maxstream PKG-U */
+#define USB_PRODUCT_FTDI_USB_UIRT 0xf850 /* USB-UIRT */
+#define USB_PRODUCT_FTDI_USBSERIAL 0xfa00 /* Matrix Orbital USB Serial */
+#define USB_PRODUCT_FTDI_MX2_3 0xfa01 /* Matrix Orbital MX2 or MX3 */
+#define USB_PRODUCT_FTDI_MX4_5 0xfa02 /* Matrix Orbital MX4 or MX5 */
+#define USB_PRODUCT_FTDI_LK202 0xfa03 /* Matrix Orbital VK/LK202 Family */
+#define USB_PRODUCT_FTDI_LK204 0xfa04 /* Matrix Orbital VK/LK204 Family */
+#define USB_PRODUCT_FTDI_CFA_632 0xfc08 /* Crystalfontz CFA-632 USB LCD */
+#define USB_PRODUCT_FTDI_CFA_634 0xfc09 /* Crystalfontz CFA-634 USB LCD */
+#define USB_PRODUCT_FTDI_CFA_633 0xfc0b /* Crystalfontz CFA-633 USB LCD */
+#define USB_PRODUCT_FTDI_CFA_631 0xfc0c /* Crystalfontz CFA-631 USB LCD */
+#define USB_PRODUCT_FTDI_CFA_635 0xfc0d /* Crystalfontz CFA-635 USB LCD */
+#define USB_PRODUCT_FTDI_SEMC_DSS20 0xfc82 /* SEMC DSS-20 SyncStation */
+/* Commerzielle und Technische Informationssysteme GmbH products */
+#define USB_PRODUCT_FTDI_CTI_USB_NANO_485 0xf60b /* CTI USB-Nano 485 */
+#define USB_PRODUCT_FTDI_CTI_USB_MINI_485 0xf608 /* CTI USB-Mini 485 */
+
+/* Fuji photo products */
+#define USB_PRODUCT_FUJIPHOTO_MASS0100 0x0100 /* Mass Storage */
+
+/* Fujitsu protducts */
+#define USB_PRODUCT_FUJITSU_AH_F401U 0x105b /* AH-F401U Air H device */
+
+/* Fujitsu-Siemens protducts */
+#define USB_PRODUCT_FUJITSUSIEMENS_SCR 0x0009 /* Fujitsu-Siemens SCR USB Reader */
+
+/* Garmin products */
+#define USB_PRODUCT_GARMIN_IQUE_3600 0x0004 /* iQue 3600 */
+
+/* Gemalto products */
+#define USB_PRODUCT_GEMALTO_PROXPU 0x5501 /* Prox-PU/CU */
+
+/* General Instruments (Motorola) products */
+#define USB_PRODUCT_GENERALINSTMNTS_SB5100 0x5100 /* SURFboard SB5100 Cable modem */
+
+/* Genesys Logic products */
+#define USB_PRODUCT_GENESYS_GL620USB 0x0501 /* GL620USB Host-Host interface */
+#define USB_PRODUCT_GENESYS_GL650 0x0604 /* GL650 HUB */
+#define USB_PRODUCT_GENESYS_GL606 0x0606 /* USB 2.0 HUB */
+#define USB_PRODUCT_GENESYS_GL641USB 0x0700 /* GL641USB CompactFlash Card Reader */
+#define USB_PRODUCT_GENESYS_GL641USB2IDE_2 0x0701 /* GL641USB USB-IDE Bridge No 2 */
+#define USB_PRODUCT_GENESYS_GL641USB2IDE 0x0702 /* GL641USB USB-IDE Bridge */
+#define USB_PRODUCT_GENESYS_GL641USB_2 0x0760 /* GL641USB 6-in-1 Card Reader */
+
+/* GIGABYTE products */
+#define USB_PRODUCT_GIGABYTE_GN54G 0x8001 /* GN-54G */
+#define USB_PRODUCT_GIGABYTE_GNBR402W 0x8002 /* GN-BR402W */
+#define USB_PRODUCT_GIGABYTE_GNWLBM101 0x8003 /* GN-WLBM101 */
+#define USB_PRODUCT_GIGABYTE_GNWBKG 0x8007 /* GN-WBKG */
+#define USB_PRODUCT_GIGABYTE_GNWB01GS 0x8008 /* GN-WB01GS */
+#define USB_PRODUCT_GIGABYTE_GNWI05GS 0x800a /* GN-WI05GS */
+
+/* Gigaset products */
+#define USB_PRODUCT_GIGASET_WLAN 0x0701 /* WLAN */
+#define USB_PRODUCT_GIGASET_SMCWUSBTG 0x0710 /* SMCWUSBT-G */
+#define USB_PRODUCT_GIGASET_SMCWUSBTG_NF 0x0711 /* SMCWUSBT-G (no firmware) */
+#define USB_PRODUCT_GIGASET_AR5523 0x0712 /* AR5523 */
+#define USB_PRODUCT_GIGASET_AR5523_NF 0x0713 /* AR5523 (no firmware) */
+#define USB_PRODUCT_GIGASET_RT2573 0x0722 /* RT2573 */
+#define USB_PRODUCT_GIGASET_RT3070_1 0x0740 /* RT3070 */
+#define USB_PRODUCT_GIGASET_RT3070_2 0x0744 /* RT3070 */
+#define USB_PRODUCT_GIGABYTE_RT2870_1 0x800b /* RT2870 */
+#define USB_PRODUCT_GIGABYTE_GNWB31N 0x800c /* GN-WB31N */
+#define USB_PRODUCT_GIGABYTE_GNWB32L 0x800d /* GN-WB32L */
+
+/* Global Sun Technology product */
+#define USB_PRODUCT_GLOBALSUN_AR5523_1 0x7801 /* AR5523 */
+#define USB_PRODUCT_GLOBALSUN_AR5523_1_NF 0x7802 /* AR5523 (no firmware) */
+#define USB_PRODUCT_GLOBALSUN_AR5523_2 0x7811 /* AR5523 */
+#define USB_PRODUCT_GLOBALSUN_AR5523_2_NF 0x7812 /* AR5523 (no firmware) */
+
+/* Globespan products */
+#define USB_PRODUCT_GLOBESPAN_PRISM_GT_1 0x2000 /* PrismGT USB 2.0 WLAN */
+#define USB_PRODUCT_GLOBESPAN_PRISM_GT_2 0x2002 /* PrismGT USB 2.0 WLAN */
+
+/* G.Mate, Inc products */
+#define USB_PRODUCT_GMATE_YP3X00 0x1001 /* YP3X00 PDA */
+
+/* GoHubs products */
+#define USB_PRODUCT_GOHUBS_GOCOM232 0x1001 /* GoCOM232 Serial */
+
+/* Good Way Technology products */
+#define USB_PRODUCT_GOODWAY_GWUSB2E 0x6200 /* GWUSB2E */
+#define USB_PRODUCT_GOODWAY_RT2573 0xc019 /* RT2573 */
+
+/* Google products */
+#define USB_PRODUCT_GOOGLE_NEXUSONE 0x4e11 /* Nexus One */
+
+/* Gravis products */
+#define USB_PRODUCT_GRAVIS_GAMEPADPRO 0x4001 /* GamePad Pro */
+
+/* GREENHOUSE products */
+#define USB_PRODUCT_GREENHOUSE_KANA21 0x0001 /* CF-writer with MP3 */
+
+/* Griffin Technology */
+#define USB_PRODUCT_GRIFFIN_IMATE 0x0405 /* iMate, ADB Adapter */
+
+/* Guillemot Corporation */
+#define USB_PRODUCT_GUILLEMOT_DALEADER 0xa300 /* DA Leader */
+#define USB_PRODUCT_GUILLEMOT_HWGUSB254 0xe000 /* HWGUSB2-54 WLAN */
+#define USB_PRODUCT_GUILLEMOT_HWGUSB254LB 0xe010 /* HWGUSB2-54-LB */
+#define USB_PRODUCT_GUILLEMOT_HWGUSB254V2AP 0xe020 /* HWGUSB2-54V2-AP */
+#define USB_PRODUCT_GUILLEMOT_HWNU300 0xe030 /* HWNU-300 */
+
+/* Hagiwara products */
+#define USB_PRODUCT_HAGIWARA_FGSM 0x0002 /* FlashGate SmartMedia Card Reader */
+#define USB_PRODUCT_HAGIWARA_FGCF 0x0003 /* FlashGate CompactFlash Card Reader */
+#define USB_PRODUCT_HAGIWARA_FG 0x0005 /* FlashGate */
+
+/* HAL Corporation products */
+#define USB_PRODUCT_HAL_IMR001 0x0011 /* Crossam2+USB IR commander */
+
+/* Handspring, Inc. */
+#define USB_PRODUCT_HANDSPRING_VISOR 0x0100 /* Handspring Visor */
+#define USB_PRODUCT_HANDSPRING_TREO 0x0200 /* Handspring Treo */
+#define USB_PRODUCT_HANDSPRING_TREO600 0x0300 /* Handspring Treo 600 */
+
+/* Hauppauge Computer Works */
+#define USB_PRODUCT_HAUPPAUGE_WINTV_USB_FM 0x4d12 /* WinTV USB FM */
+#define USB_PRODUCT_HAUPPAUGE2_NOVAT500 0x9580 /* NovaT 500Stick */
+
+/* Hawking Technologies products */
+#define USB_PRODUCT_HAWKING_RT2870_1 0x0001 /* RT2870 */
+#define USB_PRODUCT_HAWKING_RT2870_2 0x0003 /* RT2870 */
+#define USB_PRODUCT_HAWKING_HWUN2 0x0009 /* HWUN2 */
+#define USB_PRODUCT_HAWKING_RT3070 0x000b /* RT3070 */
+#define USB_PRODUCT_HAWKING_UF100 0x400c /* 10/100 USB Ethernet */
+
+/* HID Global GmbH products */
+#define USB_PRODUCT_HIDGLOBAL_CM2020 0x0596 /* Omnikey Cardman 2020 */
+#define USB_PRODUCT_HIDGLOBAL_CM6020 0x1784 /* Omnikey Cardman 6020 */
+
+/* Hitachi, Ltd. products */
+#define USB_PRODUCT_HITACHI_DVDCAM_DZ_MV100A 0x0004 /* DVD-CAM DZ-MV100A Camcorder */
+#define USB_PRODUCT_HITACHI_DVDCAM_USB 0x001e /* DVDCAM USB HS Interface */
+
+/* HP products */
+#define USB_PRODUCT_HP_895C 0x0004 /* DeskJet 895C */
+#define USB_PRODUCT_HP_4100C 0x0101 /* Scanjet 4100C */
+#define USB_PRODUCT_HP_S20 0x0102 /* Photosmart S20 */
+#define USB_PRODUCT_HP_880C 0x0104 /* DeskJet 880C */
+#define USB_PRODUCT_HP_4200C 0x0105 /* ScanJet 4200C */
+#define USB_PRODUCT_HP_CDWRITERPLUS 0x0107 /* CD-Writer Plus */
+#define USB_PRODUCT_HP_KBDHUB 0x010c /* Multimedia Keyboard Hub */
+#define USB_PRODUCT_HP_G55XI 0x0111 /* OfficeJet G55xi */
+#define USB_PRODUCT_HP_HN210W 0x011c /* HN210W 802.11b WLAN */
+#define USB_PRODUCT_HP_49GPLUS 0x0121 /* 49g+ graphing calculator */
+#define USB_PRODUCT_HP_6200C 0x0201 /* ScanJet 6200C */
+#define USB_PRODUCT_HP_S20b 0x0202 /* PhotoSmart S20 */
+#define USB_PRODUCT_HP_815C 0x0204 /* DeskJet 815C */
+#define USB_PRODUCT_HP_3300C 0x0205 /* ScanJet 3300C */
+#define USB_PRODUCT_HP_CDW8200 0x0207 /* CD-Writer Plus 8200e */
+#define USB_PRODUCT_HP_MMKEYB 0x020c /* Multimedia keyboard */
+#define USB_PRODUCT_HP_1220C 0x0212 /* DeskJet 1220C */
+#define USB_PRODUCT_HP_810C 0x0304 /* DeskJet 810C/812C */
+#define USB_PRODUCT_HP_4300C 0x0305 /* Scanjet 4300C */
+#define USB_PRODUCT_HP_CDW4E 0x0307 /* CD-Writer+ CD-4e */
+#define USB_PRODUCT_HP_G85XI 0x0311 /* OfficeJet G85xi */
+#define USB_PRODUCT_HP_1200 0x0317 /* LaserJet 1200 */
+#define USB_PRODUCT_HP_5200C 0x0401 /* Scanjet 5200C */
+#define USB_PRODUCT_HP_830C 0x0404 /* DeskJet 830C */
+#define USB_PRODUCT_HP_3400CSE 0x0405 /* ScanJet 3400cse */
+#define USB_PRODUCT_HP_6300C 0x0601 /* Scanjet 6300C */
+#define USB_PRODUCT_HP_840C 0x0604 /* DeskJet 840c */
+#define USB_PRODUCT_HP_2200C 0x0605 /* ScanJet 2200C */
+#define USB_PRODUCT_HP_5300C 0x0701 /* Scanjet 5300C */
+#define USB_PRODUCT_HP_4400C 0x0705 /* Scanjet 4400C */
+#define USB_PRODUCT_HP_4470C 0x0805 /* Scanjet 4470C */
+#define USB_PRODUCT_HP_82x0C 0x0b01 /* Scanjet 82x0C */
+#define USB_PRODUCT_HP_2300D 0x0b17 /* Laserjet 2300d */
+#define USB_PRODUCT_HP_970CSE 0x1004 /* Deskjet 970Cse */
+#define USB_PRODUCT_HP_5400C 0x1005 /* Scanjet 5400C */
+#define USB_PRODUCT_HP_2215 0x1016 /* iPAQ 22xx/Jornada 548 */
+#define USB_PRODUCT_HP_568J 0x1116 /* Jornada 568 */
+#define USB_PRODUCT_HP_930C 0x1204 /* DeskJet 930c */
+#define USB_PRODUCT_HP_P2000U 0x1801 /* Inkjet P-2000U */
+#define USB_PRODUCT_HP_HS2300 0x1e1d /* HS2300 HSDPA (aka MC8775) */
+#define USB_PRODUCT_HP_640C 0x2004 /* DeskJet 640c */
+#define USB_PRODUCT_HP_4670V 0x3005 /* ScanJet 4670v */
+#define USB_PRODUCT_HP_P1100 0x3102 /* Photosmart P1100 */
+#define USB_PRODUCT_HP_LD220 0x3524 /* LD220 POS Display */
+#define USB_PRODUCT_HP_OJ4215 0x3d11 /* OfficeJet 4215 */
+#define USB_PRODUCT_HP_HN210E 0x811c /* Ethernet HN210E */
+#define USB_PRODUCT_HP2_C500 0x6002 /* PhotoSmart C500 */
+#define USB_PRODUCT_HP_EV2200 0x1b1d /* ev2200 HSDPA (aka MC5720) */
+#define USB_PRODUCT_HP_HS2300 0x1e1d /* hs2300 HSDPA (aka MC8775) */
+
+/* HTC products */
+#define USB_PRODUCT_HTC_WINMOBILE 0x00ce /* HTC USB Sync */
+#define USB_PRODUCT_HTC_PPC6700MODEM 0x00cf /* PPC6700 Modem */
+#define USB_PRODUCT_HTC_SMARTPHONE 0x0a51 /* SmartPhone USB Sync */
+#define USB_PRODUCT_HTC_WIZARD 0x0bce /* HTC Wizard USB Sync */
+#define USB_PRODUCT_HTC_LEGENDSYNC 0x0c97 /* HTC Legend USB Sync */
+#define USB_PRODUCT_HTC_LEGEND 0x0ff9 /* HTC Legend */
+#define USB_PRODUCT_HTC_LEGENDINTERNET 0x0ffe /* HTC Legend Internet Sharing */
+
+/* HUAWEI products */
+#define USB_PRODUCT_HUAWEI_MOBILE 0x1001 /* Huawei Mobile */
+#define USB_PRODUCT_HUAWEI_E220 0x1003 /* HSDPA modem */
+#define USB_PRODUCT_HUAWEI_E220BIS 0x1004 /* HSDPA modem */
+#define USB_PRODUCT_HUAWEI_E1401 0x1401 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1402 0x1402 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1403 0x1403 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1404 0x1404 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1405 0x1405 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1406 0x1406 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1407 0x1407 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1408 0x1408 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1409 0x1409 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E140A 0x140a /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E140B 0x140b /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E180V 0x140c /* E180V */
+#define USB_PRODUCT_HUAWEI_E140D 0x140d /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E140E 0x140e /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E140F 0x140f /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1410 0x1410 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1411 0x1411 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1412 0x1412 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1413 0x1413 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1414 0x1414 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1415 0x1415 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1416 0x1416 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1417 0x1417 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1418 0x1418 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1419 0x1419 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E141A 0x141a /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E141B 0x141b /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E141C 0x141c /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E141D 0x141d /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E141E 0x141e /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E141F 0x141f /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1420 0x1420 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1421 0x1421 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1422 0x1422 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1423 0x1423 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1424 0x1424 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1425 0x1425 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1426 0x1426 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1427 0x1427 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1428 0x1428 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1429 0x1429 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E142A 0x142a /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E142B 0x142b /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E142C 0x142c /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E142D 0x142d /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E142E 0x142e /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E142F 0x142f /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1430 0x1430 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1431 0x1431 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1432 0x1432 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1433 0x1433 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1434 0x1434 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1435 0x1435 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1436 0x1436 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1437 0x1437 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1438 0x1438 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1439 0x1439 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E143A 0x143a /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E143B 0x143b /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E143C 0x143c /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E143D 0x143d /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E143E 0x143e /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E143F 0x143f /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1752 0x1446 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_K3765 0x1465 /* 3G modem */
+#define USB_PRODUCT_HUAWEI_E1820 0x14ac /* E1820 HSPA+ USB Slider */
+#define USB_PRODUCT_HUAWEI_K3765_INIT 0x1520 /* K3765 Initial */
+
+/* HUAWEI 3com products */
+#define USB_PRODUCT_HUAWEI3COM_WUB320G 0x0009 /* Aolynk WUB320g */
+
+/* IBM Corporation */
+#define USB_PRODUCT_IBM_USBCDROMDRIVE 0x4427 /* USB CD-ROM Drive */
+
+/* Imagination Technologies products */
+#define USB_PRODUCT_IMAGINATION_DBX1 0x2107 /* DBX1 DSP core */
+
+/* Inside Out Networks products */
+#define USB_PRODUCT_INSIDEOUT_EDGEPORT4 0x0001 /* EdgePort/4 serial ports */
+
+/* In-System products */
+#define USB_PRODUCT_INSYSTEM_F5U002 0x0002 /* Parallel printer */
+#define USB_PRODUCT_INSYSTEM_ATAPI 0x0031 /* ATAPI Adapter */
+#define USB_PRODUCT_INSYSTEM_ISD110 0x0200 /* IDE Adapter ISD110 */
+#define USB_PRODUCT_INSYSTEM_ISD105 0x0202 /* IDE Adapter ISD105 */
+#define USB_PRODUCT_INSYSTEM_USBCABLE 0x081a /* USB cable */
+#define USB_PRODUCT_INSYSTEM_STORAGE_V2 0x5701 /* USB Storage Adapter V2 */
+
+/* Intel products */
+#define USB_PRODUCT_INTEL_EASYPC_CAMERA 0x0110 /* Easy PC Camera */
+#define USB_PRODUCT_INTEL_TESTBOARD 0x9890 /* 82930 test board */
+#define USB_PRODUCT_INTEL2_IRMH 0x0020 /* Integrated Rate Matching Hub */
+
+/* Intersil products */
+#define USB_PRODUCT_INTERSIL_PRISM_GT 0x1000 /* PrismGT USB 2.0 WLAN */
+#define USB_PRODUCT_INTERSIL_PRISM_2X 0x3642 /* Prism2.x or Atmel WLAN */
+
+/* Interpid Control Systems products */
+#define USB_PRODUCT_INTREPIDCS_VALUECAN 0x0601 /* ValueCAN CAN bus interface */
+#define USB_PRODUCT_INTREPIDCS_NEOVI 0x0701 /* NeoVI Blue vehicle bus interface */
+
+/* I/O DATA products */
+#define USB_PRODUCT_IODATA_IU_CD2 0x0204 /* DVD Multi-plus unit iU-CD2 */
+#define USB_PRODUCT_IODATA_DVR_UEH8 0x0206 /* DVD Multi-plus unit DVR-UEH8 */
+#define USB_PRODUCT_IODATA_USBSSMRW 0x0314 /* USB-SSMRW SD-card */
+#define USB_PRODUCT_IODATA_USBSDRW 0x031e /* USB-SDRW SD-card */
+#define USB_PRODUCT_IODATA_USBETT 0x0901 /* USB ETT */
+#define USB_PRODUCT_IODATA_USBETTX 0x0904 /* USB ETTX */
+#define USB_PRODUCT_IODATA_USBETTXS 0x0913 /* USB ETTX */
+#define USB_PRODUCT_IODATA_USBWNB11A 0x0919 /* USB WN-B11 */
+#define USB_PRODUCT_IODATA_USBWNB11 0x0922 /* USB Airport WN-B11 */
+#define USB_PRODUCT_IODATA_ETGUS2 0x0930 /* ETG-US2 */
+#define USB_PRODUCT_IODATA_RT3072_1 0x0944 /* RT3072 */
+#define USB_PRODUCT_IODATA_RT3072_2 0x0945 /* RT3072 */
+#define USB_PRODUCT_IODATA_RT3072_3 0x0947 /* RT3072 */
+#define USB_PRODUCT_IODATA_RT3072_4 0x0948 /* RT3072 */
+#define USB_PRODUCT_IODATA_USBRSAQ 0x0a03 /* Serial USB-RSAQ1 */
+#define USB_PRODUCT_IODATA_USBRSAQ5 0x0a0e /* Serial USB-RSAQ5 */
+#define USB_PRODUCT_IODATA2_USB2SC 0x0a09 /* USB2.0-SCSI Bridge USB2-SC */
+
+/* Iomega products */
+#define USB_PRODUCT_IOMEGA_ZIP100 0x0001 /* Zip 100 */
+#define USB_PRODUCT_IOMEGA_ZIP250 0x0030 /* Zip 250 */
+
+/* Integrated System Solution Corp. products */
+#define USB_PRODUCT_ISSC_ISSCBTA 0x1001 /* Bluetooth USB Adapter */
+
+/* iTegno products */
+#define USB_PRODUCT_ITEGNO_WM1080A 0x1080 /* WM1080A GSM/GPRS modem */
+#define USB_PRODUCT_ITEGNO_WM2080A 0x2080 /* WM2080A CDMA modem */
+
+/* Ituner networks products */
+#define USB_PRODUCT_ITUNERNET_USBLCD2X20 0x0002 /* USB-LCD 2x20 */
+#define USB_PRODUCT_ITUNERNET_USBLCD4X20 0xc001 /* USB-LCD 4x20 */
+
+/* Jablotron products */
+#define USB_PRODUCT_JABLOTRON_PC60B 0x0001 /* PC-60B */
+
+/* Jaton products */
+#define USB_PRODUCT_JATON_EDA 0x5704 /* Ethernet */
+
+/* JMicron products */
+#define USB_PRODUCT_JMICRON_JM20336 0x2336 /* USB to SATA Bridge */
+#define USB_PRODUCT_JMICRON_JM20337 0x2338 /* USB to ATA/ATAPI Bridge */
+
+/* JVC products */
+#define USB_PRODUCT_JVC_GR_DX95 0x000a /* GR-DX95 */
+#define USB_PRODUCT_JVC_MP_PRX1 0x3008 /* MP-PRX1 Ethernet */
+
+/* JRC products */
+#define USB_PRODUCT_JRC_AH_J3001V_J3002V 0x0001 /* AirH PHONE AH-J3001V/J3002V */
+
+/* Kawatsu products */
+#define USB_PRODUCT_KAWATSU_MH4000P 0x0003 /* MiniHub 4000P */
+
+/* Keisokugiken Corp. products */
+#define USB_PRODUCT_KEISOKUGIKEN_USBDAQ 0x0068 /* HKS-0200 USBDAQ */
+
+/* Kensington products */
+#define USB_PRODUCT_KENSINGTON_ORBIT 0x1003 /* Orbit USB/PS2 trackball */
+#define USB_PRODUCT_KENSINGTON_TURBOBALL 0x1005 /* TurboBall */
+
+/* Keyspan products */
+#define USB_PRODUCT_KEYSPAN_USA28_NF 0x0101 /* USA-28 serial Adapter (no firmware) */
+#define USB_PRODUCT_KEYSPAN_USA28X_NF 0x0102 /* USA-28X serial Adapter (no firmware) */
+#define USB_PRODUCT_KEYSPAN_USA19_NF 0x0103 /* USA-19 serial Adapter (no firmware) */
+#define USB_PRODUCT_KEYSPAN_USA18_NF 0x0104 /* USA-18 serial Adapter (no firmware) */
+#define USB_PRODUCT_KEYSPAN_USA18X_NF 0x0105 /* USA-18X serial Adapter (no firmware) */
+#define USB_PRODUCT_KEYSPAN_USA19W_NF 0x0106 /* USA-19W serial Adapter (no firmware) */
+#define USB_PRODUCT_KEYSPAN_USA19 0x0107 /* USA-19 serial Adapter */
+#define USB_PRODUCT_KEYSPAN_USA19W 0x0108 /* USA-19W serial Adapter */
+#define USB_PRODUCT_KEYSPAN_USA49W_NF 0x0109 /* USA-49W serial Adapter (no firmware) */
+#define USB_PRODUCT_KEYSPAN_USA49W 0x010a /* USA-49W serial Adapter */
+#define USB_PRODUCT_KEYSPAN_USA19QI_NF 0x010b /* USA-19QI serial Adapter (no firmware) */
+#define USB_PRODUCT_KEYSPAN_USA19QI 0x010c /* USA-19QI serial Adapter */
+#define USB_PRODUCT_KEYSPAN_USA19Q_NF 0x010d /* USA-19Q serial Adapter (no firmware) */
+#define USB_PRODUCT_KEYSPAN_USA19Q 0x010e /* USA-19Q serial Adapter */
+#define USB_PRODUCT_KEYSPAN_USA28 0x010f /* USA-28 serial Adapter */
+#define USB_PRODUCT_KEYSPAN_USA28XXB 0x0110 /* USA-28X/XB serial Adapter */
+#define USB_PRODUCT_KEYSPAN_USA18 0x0111 /* USA-18 serial Adapter */
+#define USB_PRODUCT_KEYSPAN_USA18X 0x0112 /* USA-18X serial Adapter */
+#define USB_PRODUCT_KEYSPAN_USA28XB_NF 0x0113 /* USA-28XB serial Adapter (no firmware) */
+#define USB_PRODUCT_KEYSPAN_USA28XA_NF 0x0114 /* USA-28XB serial Adapter (no firmware) */
+#define USB_PRODUCT_KEYSPAN_USA28XA 0x0115 /* USA-28XA serial Adapter */
+#define USB_PRODUCT_KEYSPAN_USA18XA_NF 0x0116 /* USA-18XA serial Adapter (no firmware) */
+#define USB_PRODUCT_KEYSPAN_USA18XA 0x0117 /* USA-18XA serial Adapter */
+#define USB_PRODUCT_KEYSPAN_USA19QW_NF 0x0118 /* USA-19WQ serial Adapter (no firmware) */
+#define USB_PRODUCT_KEYSPAN_USA19QW 0x0119 /* USA-19WQ serial Adapter */
+#define USB_PRODUCT_KEYSPAN_USA19HA 0x0121 /* USA-19HS serial Adapter */
+#define USB_PRODUCT_KEYSPAN_UIA10 0x0201 /* UIA-10 remote control */
+#define USB_PRODUCT_KEYSPAN_UIA11 0x0202 /* UIA-11 remote control */
+
+/* Kingston products */
+#define USB_PRODUCT_KINGSTON_XX1 0x0008 /* Ethernet */
+#define USB_PRODUCT_KINGSTON_KNU101TX 0x000a /* KNU101TX USB Ethernet */
+
+/* Kawasaki products */
+#define USB_PRODUCT_KLSI_DUH3E10BT 0x0008 /* USB Ethernet */
+#define USB_PRODUCT_KLSI_DUH3E10BTN 0x0009 /* USB Ethernet */
+
+/* Kodak products */
+#define USB_PRODUCT_KODAK_DC220 0x0100 /* Digital Science DC220 */
+#define USB_PRODUCT_KODAK_DC260 0x0110 /* Digital Science DC260 */
+#define USB_PRODUCT_KODAK_DC265 0x0111 /* Digital Science DC265 */
+#define USB_PRODUCT_KODAK_DC290 0x0112 /* Digital Science DC290 */
+#define USB_PRODUCT_KODAK_DC240 0x0120 /* Digital Science DC240 */
+#define USB_PRODUCT_KODAK_DC280 0x0130 /* Digital Science DC280 */
+
+/* Konica Corp. Products */
+#define USB_PRODUCT_KONICA_CAMERA 0x0720 /* Digital Color Camera */
+
+/* KYE products */
+#define USB_PRODUCT_KYE_NICHE 0x0001 /* Niche mouse */
+#define USB_PRODUCT_KYE_NETSCROLL 0x0003 /* Genius NetScroll mouse */
+#define USB_PRODUCT_KYE_FLIGHT2000 0x1004 /* Flight 2000 joystick */
+#define USB_PRODUCT_KYE_VIVIDPRO 0x2001 /* ColorPage Vivid-Pro scanner */
+
+/* Kyocera products */
+#define USB_PRODUCT_KYOCERA_FINECAM_S3X 0x0100 /* Finecam S3x */
+#define USB_PRODUCT_KYOCERA_FINECAM_S4 0x0101 /* Finecam S4 */
+#define USB_PRODUCT_KYOCERA_FINECAM_S5 0x0103 /* Finecam S5 */
+#define USB_PRODUCT_KYOCERA_FINECAM_L3 0x0105 /* Finecam L3 */
+#define USB_PRODUCT_KYOCERA_AHK3001V 0x0203 /* AH-K3001V */
+#define USB_PRODUCT_KYOCERA2_CDMA_MSM_K 0x17da /* Qualcomm Kyocera CDMA Technologies MSM */
+#define USB_PRODUCT_KYOCERA2_KPC680 0x180a /* Qualcomm Kyocera CDMA Technologies MSM */
+
+/* LaCie products */
+#define USB_PRODUCT_LACIE_HD 0xa601 /* Hard Disk */
+#define USB_PRODUCT_LACIE_CDRW 0xa602 /* CD R/W */
+
+/* Leadtek products */
+#define USB_PRODUCT_LEADTEK_9531 0x2101 /* 9531 GPS */
+
+/* Lexar products */
+#define USB_PRODUCT_LEXAR_JUMPSHOT 0x0001 /* jumpSHOT CompactFlash Reader */
+#define USB_PRODUCT_LEXAR_CF_READER 0xb002 /* USB CF Reader */
+
+/* Lexmark products */
+#define USB_PRODUCT_LEXMARK_S2450 0x0009 /* Optra S 2450 */
+
+/* Liebert products */
+#define USB_PRODUCT_LIEBERT_POWERSURE_PXT 0xffff /* PowerSure Personal XT */
+
+/* Linksys products */
+#define USB_PRODUCT_LINKSYS_MAUSB2 0x0105 /* Camedia MAUSB-2 */
+#define USB_PRODUCT_LINKSYS_USB10TX1 0x200c /* USB10TX */
+#define USB_PRODUCT_LINKSYS_USB10T 0x2202 /* USB10T Ethernet */
+#define USB_PRODUCT_LINKSYS_USB100TX 0x2203 /* USB100TX Ethernet */
+#define USB_PRODUCT_LINKSYS_USB100H1 0x2204 /* USB100H1 Ethernet/HPNA */
+#define USB_PRODUCT_LINKSYS_USB10TA 0x2206 /* USB10TA Ethernet */
+#define USB_PRODUCT_LINKSYS_USB10TX2 0x400b /* USB10TX */
+#define USB_PRODUCT_LINKSYS2_WUSB11 0x2219 /* WUSB11 Wireless Adapter */
+#define USB_PRODUCT_LINKSYS2_USB200M 0x2226 /* USB 2.0 10/100 Ethernet */
+#define USB_PRODUCT_LINKSYS3_WUSB11v28 0x2233 /* WUSB11 v2.8 Wireless Adapter */
+#define USB_PRODUCT_LINKSYS4_USB1000 0x0039 /* USB1000 */
+#define USB_PRODUCT_LINKSYS4_WUSB100 0x0070 /* WUSB100 */
+#define USB_PRODUCT_LINKSYS4_WUSB600N 0x0071 /* WUSB600N */
+#define USB_PRODUCT_LINKSYS4_WUSB54GCV2 0x0073 /* WUSB54GC v2 */
+#define USB_PRODUCT_LINKSYS4_WUSB54GCV3 0x0077 /* WUSB54GC v3 */
+#define USB_PRODUCT_LINKSYS4_RT3070 0x0078 /* RT3070 */
+#define USB_PRODUCT_LINKSYS4_WUSB600NV2 0x0079 /* WUSB600N v2 */
+
+/* Logitech products */
+#define USB_PRODUCT_LOGITECH_M2452 0x0203 /* M2452 keyboard */
+#define USB_PRODUCT_LOGITECH_M4848 0x0301 /* M4848 mouse */
+#define USB_PRODUCT_LOGITECH_PAGESCAN 0x040f /* PageScan */
+#define USB_PRODUCT_LOGITECH_QUICKCAMWEB 0x0801 /* QuickCam Web */
+#define USB_PRODUCT_LOGITECH_QUICKCAMPRO 0x0810 /* QuickCam Pro */
+#define USB_PRODUCT_LOGITECH_QUICKCAMEXP 0x0840 /* QuickCam Express */
+#define USB_PRODUCT_LOGITECH_QUICKCAM 0x0850 /* QuickCam */
+#define USB_PRODUCT_LOGITECH_QUICKCAMPRO3 0x0990 /* QuickCam Pro 9000 */
+#define USB_PRODUCT_LOGITECH_N43 0xc000 /* N43 */
+#define USB_PRODUCT_LOGITECH_N48 0xc001 /* N48 mouse */
+#define USB_PRODUCT_LOGITECH_MBA47 0xc002 /* M-BA47 mouse */
+#define USB_PRODUCT_LOGITECH_WMMOUSE 0xc004 /* WingMan Gaming Mouse */
+#define USB_PRODUCT_LOGITECH_BD58 0xc00c /* BD58 mouse */
+#define USB_PRODUCT_LOGITECH_UN58A 0xc030 /* iFeel Mouse */
+#define USB_PRODUCT_LOGITECH_UN53B 0xc032 /* iFeel MouseMan */
+#define USB_PRODUCT_LOGITECH_WMPAD 0xc208 /* WingMan GamePad Extreme */
+#define USB_PRODUCT_LOGITECH_WMRPAD 0xc20a /* WingMan RumblePad */
+#define USB_PRODUCT_LOGITECH_WMJOY 0xc281 /* WingMan Force joystick */
+#define USB_PRODUCT_LOGITECH_BB13 0xc401 /* USB-PS/2 Trackball */
+#define USB_PRODUCT_LOGITECH_RK53 0xc501 /* Cordless mouse */
+#define USB_PRODUCT_LOGITECH_RB6 0xc503 /* Cordless keyboard */
+#define USB_PRODUCT_LOGITECH_MX700 0xc506 /* Cordless optical mouse */
+#define USB_PRODUCT_LOGITECH_QUICKCAMPRO2 0xd001 /* QuickCam Pro */
+
+/* Logitec Corp. products */
+#define USB_PRODUCT_LOGITEC_LDR_H443SU2 0x0033 /* DVD Multi-plus unit LDR-H443SU2 */
+#define USB_PRODUCT_LOGITEC_LDR_H443U2 0x00b3 /* DVD Multi-plus unit LDR-H443U2 */
+#define USB_PRODUCT_LOGITEC_LAN_GTJU2A 0x0160 /* LAN-GTJ/U2A Ethernet */
+#define USB_PRODUCT_LOGITEC_RT2870_1 0x0162 /* RT2870 */
+#define USB_PRODUCT_LOGITEC_RT2870_2 0x0163 /* RT2870 */
+#define USB_PRODUCT_LOGITEC_RT2870_3 0x0164 /* RT2870 */
+
+/* Longcheer Holdings, Ltd. products */
+#define USB_PRODUCT_LONGCHEER_WM66 0x6061 /* Longcheer WM66 HSDPA */
+#define USB_PRODUCT_LONGCHEER_W14 0x9603 /* Mobilcom W14 */
+#define USB_PRODUCT_LONGCHEER_DISK 0xf000 /* Driver disk */
+
+
+/* Lucent products */
+#define USB_PRODUCT_LUCENT_EVALKIT 0x1001 /* USS-720 evaluation kit */
+
+/* Luwen products */
+#define USB_PRODUCT_LUWEN_EASYDISK 0x0005 /* EasyDisc */
+
+/* Macally products */
+#define USB_PRODUCT_MACALLY_MOUSE1 0x0101 /* mouse */
+
+/* Marvell Technology Group, Ltd. products */
+#define USB_PRODUCT_MARVELL_SHEEVAPLUG 0x9e8f /* SheevaPlug serial interface */
+
+/* Matrix Orbital products */
+#define USB_PRODUCT_MATRIXORBITAL_MOUA 0x0153 /* Martrix Orbital MOU-Axxxx LCD displays */
+
+/* MCT Corp. */
+#define USB_PRODUCT_MCT_HUB0100 0x0100 /* Hub */
+#define USB_PRODUCT_MCT_DU_H3SP_USB232 0x0200 /* D-Link DU-H3SP USB BAY Hub */
+#define USB_PRODUCT_MCT_USB232 0x0210 /* USB-232 Interface */
+#define USB_PRODUCT_MCT_SITECOM_USB232 0x0230 /* Sitecom USB-232 Products */
+
+/* Meizu Electronics */
+#define USB_PRODUCT_MEIZU_M6_SL 0x0140 /* MiniPlayer M6 (SL) */
+
+/* Melco, Inc products */
+#define USB_PRODUCT_MELCO_LUATX1 0x0001 /* LUA-TX Ethernet */
+#define USB_PRODUCT_MELCO_LUATX5 0x0005 /* LUA-TX Ethernet */
+#define USB_PRODUCT_MELCO_LUA2TX5 0x0009 /* LUA2-TX Ethernet */
+#define USB_PRODUCT_MELCO_LUAKTX 0x0012 /* LUA-KTX Ethernet */
+#define USB_PRODUCT_MELCO_DUBPXXG 0x001c /* DUB-PxxG */
+#define USB_PRODUCT_MELCO_LUAU2KTX 0x003d /* LUA-U2-KTX Ethernet */
+#define USB_PRODUCT_MELCO_KG54YB 0x005e /* WLI-U2-KG54-YB WLAN */
+#define USB_PRODUCT_MELCO_KG54 0x0066 /* WLI-U2-KG54 WLAN */
+#define USB_PRODUCT_MELCO_KG54AI 0x0067 /* WLI-U2-KG54-AI WLAN */
+#define USB_PRODUCT_MELCO_LUA3U2AGT 0x006e /* LUA3-U2-AGT */
+#define USB_PRODUCT_MELCO_NINWIFI 0x008b /* Nintendo Wi-Fi */
+#define USB_PRODUCT_MELCO_PCOPRS1 0x00b3 /* PC-OP-RS1 RemoteStation */
+#define USB_PRODUCT_MELCO_SG54HP 0x00d8 /* WLI-U2-SG54HP */
+#define USB_PRODUCT_MELCO_G54HP 0x00d9 /* WLI-U2-G54HP */
+#define USB_PRODUCT_MELCO_KG54L 0x00da /* WLI-U2-KG54L */
+#define USB_PRODUCT_MELCO_WLIUCG300N 0x00e8 /* WLI-UC-G300N */
+#define USB_PRODUCT_MELCO_SG54HG 0x00f4 /* WLI-U2-SG54HG */
+#define USB_PRODUCT_MELCO_WLRUCG 0x0116 /* WLR-UC-G */
+#define USB_PRODUCT_MELCO_WLRUCGAOSS 0x0119 /* WLR-UC-G-AOSS */
+#define USB_PRODUCT_MELCO_WLIUCAG300N 0x012e /* WLI-UC-AG300N */
+#define USB_PRODUCT_MELCO_RT2870_1 0x0148 /* RT2870 */
+#define USB_PRODUCT_MELCO_RT2870_2 0x0150 /* RT2870 */
+#define USB_PRODUCT_MELCO_WLIUCGN 0x015d /* WLI-UC-GN */
+
+/* Merlin products */
+#define USB_PRODUCT_MERLIN_V620 0x1110 /* Merlin V620 */
+
+/* MetaGeek products */
+#define USB_PRODUCT_METAGEEK_WISPY1B 0x083e /* MetaGeek Wi-Spy */
+#define USB_PRODUCT_METAGEEK_WISPY24X 0x083f /* MetaGeek Wi-Spy 2.4x */
+#define USB_PRODUCT_METAGEEK2_WISPYDBX 0x5000 /* MetaGeek Wi-Spy DBx */
+
+/* Metricom products */
+#define USB_PRODUCT_METRICOM_RICOCHET_GS 0x0001 /* Ricochet GS */
+
+/* MGE UPS Systems */
+#define USB_PRODUCT_MGE_UPS1 0x0001 /* MGE UPS SYSTEMS PROTECTIONCENTER 1 */
+#define USB_PRODUCT_MGE_UPS2 0xffff /* MGE UPS SYSTEMS PROTECTIONCENTER 2 */
+
+/* MEI products */
+#define USB_PRODUCT_MEI_CASHFLOW_SC 0x1100 /* Cashflow-SC Cash Acceptor */
+#define USB_PRODUCT_MEI_S2000 0x1101 /* Seies 2000 Combo Acceptor */
+
+/* Micro Star International products */
+#define USB_PRODUCT_MSI_BT_DONGLE 0x1967 /* Bluetooth USB dongle */
+#define USB_PRODUCT_MSI_RT3070_1 0x3820 /* RT3070 */
+#define USB_PRODUCT_MSI_RT3070_2 0x3821 /* RT3070 */
+#define USB_PRODUCT_MSI_RT3070_8 0x3822 /* RT3070 */
+#define USB_PRODUCT_MSI_RT3070_3 0x3870 /* RT3070 */
+#define USB_PRODUCT_MSI_RT3070_9 0x3871 /* RT3070 */
+#define USB_PRODUCT_MSI_UB11B 0x6823 /* UB11B */
+#define USB_PRODUCT_MSI_RT2570 0x6861 /* RT2570 */
+#define USB_PRODUCT_MSI_RT2570_2 0x6865 /* RT2570 */
+#define USB_PRODUCT_MSI_RT2570_3 0x6869 /* RT2570 */
+#define USB_PRODUCT_MSI_RT2573_1 0x6874 /* RT2573 */
+#define USB_PRODUCT_MSI_RT2573_2 0x6877 /* RT2573 */
+#define USB_PRODUCT_MSI_RT3070_4 0x6899 /* RT3070 */
+#define USB_PRODUCT_MSI_RT3070_5 0x821a /* RT3070 */
+#define USB_PRODUCT_MSI_RT3070_10 0x822a /* RT3070 */
+#define USB_PRODUCT_MSI_RT3070_6 0x870a /* RT3070 */
+#define USB_PRODUCT_MSI_RT3070_11 0x871a /* RT3070 */
+#define USB_PRODUCT_MSI_RT3070_7 0x899a /* RT3070 */
+#define USB_PRODUCT_MSI_RT2573_3 0xa861 /* RT2573 */
+#define USB_PRODUCT_MSI_RT2573_4 0xa874 /* RT2573 */
+
+/* Microsoft products */
+#define USB_PRODUCT_MICROSOFT_SIDEPREC 0x0008 /* SideWinder Precision Pro */
+#define USB_PRODUCT_MICROSOFT_INTELLIMOUSE 0x0009 /* IntelliMouse */
+#define USB_PRODUCT_MICROSOFT_NATURALKBD 0x000b /* Natural Keyboard Elite */
+#define USB_PRODUCT_MICROSOFT_DDS80 0x0014 /* Digital Sound System 80 */
+#define USB_PRODUCT_MICROSOFT_SIDEWINDER 0x001a /* Sidewinder Precision Racing Wheel */
+#define USB_PRODUCT_MICROSOFT_INETPRO 0x001c /* Internet Keyboard Pro */
+#define USB_PRODUCT_MICROSOFT_TBEXPLORER 0x0024 /* Trackball Explorer */
+#define USB_PRODUCT_MICROSOFT_INTELLIEYE 0x0025 /* IntelliEye mouse */
+#define USB_PRODUCT_MICROSOFT_INETPRO2 0x002b /* Internet Keyboard Pro */
+#define USB_PRODUCT_MICROSOFT_INTELLIMOUSE5 0x0039 /* IntelliMouse 1.1 5-Button Mouse */
+#define USB_PRODUCT_MICROSOFT_WHEELMOUSE 0x0040 /* Wheel Mouse Optical */
+#define USB_PRODUCT_MICROSOFT_MN510 0x006e /* MN510 Wireless */
+#define USB_PRODUCT_MICROSOFT_700WX 0x0079 /* Palm 700WX */
+#define USB_PRODUCT_MICROSOFT_MN110 0x007a /* 10/100 USB NIC */
+#define USB_PRODUCT_MICROSOFT_WLINTELLIMOUSE 0x008c /* Wireless Optical IntelliMouse */
+#define USB_PRODUCT_MICROSOFT_WLNOTEBOOK 0x00b9 /* Wireless Optical Mouse (Model 1023) */
+#define USB_PRODUCT_MICROSOFT_COMFORT3000 0x00d1 /* Comfort Optical Mouse 3000 (Model 1043) */
+#define USB_PRODUCT_MICROSOFT_WLNOTEBOOK3 0x00d2 /* Wireless Optical Mouse 3000 (Model 1049) */
+#define USB_PRODUCT_MICROSOFT_NATURAL4000 0x00db /* Natural Ergonomic Keyboard 4000 */
+#define USB_PRODUCT_MICROSOFT_WLNOTEBOOK2 0x00e1 /* Wireless Optical Mouse 3000 (Model 1056) */
+#define USB_PRODUCT_MICROSOFT_XBOX360 0x0292 /* XBOX 360 WLAN */
+
+/* Microtech products */
+#define USB_PRODUCT_MICROTECH_SCSIDB25 0x0004 /* USB-SCSI-DB25 */
+#define USB_PRODUCT_MICROTECH_SCSIHD50 0x0005 /* USB-SCSI-HD50 */
+#define USB_PRODUCT_MICROTECH_DPCM 0x0006 /* USB CameraMate */
+#define USB_PRODUCT_MICROTECH_FREECOM 0xfc01 /* Freecom USB-IDE */
+
+/* Microtek products */
+#define USB_PRODUCT_MICROTEK_336CX 0x0094 /* Phantom 336CX - C3 scanner */
+#define USB_PRODUCT_MICROTEK_X6U 0x0099 /* ScanMaker X6 - X6U */
+#define USB_PRODUCT_MICROTEK_C6 0x009a /* Phantom C6 scanner */
+#define USB_PRODUCT_MICROTEK_336CX2 0x00a0 /* Phantom 336CX - C3 scanner */
+#define USB_PRODUCT_MICROTEK_V6USL 0x00a3 /* ScanMaker V6USL */
+#define USB_PRODUCT_MICROTEK_V6USL2 0x80a3 /* ScanMaker V6USL */
+#define USB_PRODUCT_MICROTEK_V6UL 0x80ac /* ScanMaker V6UL */
+
+/* Microtune, Inc. products */
+#define USB_PRODUCT_MICROTUNE_BT_DONGLE 0x1000 /* Bluetooth USB dongle */
+
+/* Midiman products */
+#define USB_PRODUCT_MIDIMAN_MIDISPORT2X2 0x1001 /* Midisport 2x2 */
+
+/* MindsAtWork products */
+#define USB_PRODUCT_MINDSATWORK_WALLET 0x0001 /* Digital Wallet */
+
+/* Minolta Co., Ltd. */
+#define USB_PRODUCT_MINOLTA_2300 0x4001 /* Dimage 2300 */
+#define USB_PRODUCT_MINOLTA_S304 0x4007 /* Dimage S304 */
+#define USB_PRODUCT_MINOLTA_X 0x4009 /* Dimage X */
+#define USB_PRODUCT_MINOLTA_5400 0x400e /* Dimage 5400 */
+#define USB_PRODUCT_MINOLTA_F300 0x4011 /* Dimage F300 */
+#define USB_PRODUCT_MINOLTA_E223 0x4017 /* Dimage E223 */
+
+/* Mitsumi products */
+#define USB_PRODUCT_MITSUMI_CDRRW 0x0000 /* CD-R/RW Drive */
+#define USB_PRODUCT_MITSUMI_BT_DONGLE 0x641f /* Bluetooth USB dongle */
+#define USB_PRODUCT_MITSUMI_FDD 0x6901 /* USB FDD */
+
+/* Mobile Action products */
+#define USB_PRODUCT_MOBILEACTION_MA620 0x0620 /* MA-620 Infrared Adapter */
+
+/* Mobility products */
+#define USB_PRODUCT_MOBILITY_EA 0x0204 /* Ethernet */
+#define USB_PRODUCT_MOBILITY_EASIDOCK 0x0304 /* EasiDock Ethernet */
+
+/* MosChip products */
+#define USB_PRODUCT_MOSCHIP_MCS7703 0x7703 /* MCS7703 Serial Port Adapter */
+#define USB_PRODUCT_MOSCHIP_MCS7830 0x7830 /* MCS7830 Ethernet */
+
+/* Motorola products */
+#define USB_PRODUCT_MOTOROLA_MC141555 0x1555 /* MC141555 hub controller */
+#define USB_PRODUCT_MOTOROLA_SB4100 0x4100 /* SB4100 USB Cable Modem */
+#define USB_PRODUCT_MOTOROLA2_T720C 0x2822 /* T720c */
+#define USB_PRODUCT_MOTOROLA2_A41XV32X 0x2a22 /* A41x/V32x Mobile Phones */
+#define USB_PRODUCT_MOTOROLA2_E398 0x4810 /* E398 Mobile Phone */
+#define USB_PRODUCT_MOTOROLA2_USBLAN 0x600c /* USBLAN */
+#define USB_PRODUCT_MOTOROLA2_USBLAN2 0x6027 /* USBLAN */
+#define USB_PRODUCT_MOTOROLA4_RT2770 0x9031 /* RT2770 */
+#define USB_PRODUCT_MOTOROLA4_RT3070 0x9032 /* RT3070 */
+
+/* MultiTech products */
+#define USB_PRODUCT_MULTITECH_ATLAS 0xf101 /* MT5634ZBA-USB modem */
+
+/* Mustek products */
+#define USB_PRODUCT_MUSTEK_1200CU 0x0001 /* 1200 CU scanner */
+#define USB_PRODUCT_MUSTEK_600CU 0x0002 /* 600 CU scanner */
+#define USB_PRODUCT_MUSTEK_1200USB 0x0003 /* 1200 USB scanner */
+#define USB_PRODUCT_MUSTEK_1200UB 0x0006 /* 1200 UB scanner */
+#define USB_PRODUCT_MUSTEK_1200USBPLUS 0x0007 /* 1200 USB Plus scanner */
+#define USB_PRODUCT_MUSTEK_1200CUPLUS 0x0008 /* 1200 CU Plus scanner */
+#define USB_PRODUCT_MUSTEK_BEARPAW1200F 0x0010 /* BearPaw 1200F scanner */
+#define USB_PRODUCT_MUSTEK_BEARPAW2400TA 0x0218 /* BearPaw 2400TA scanner */
+#define USB_PRODUCT_MUSTEK_BEARPAW1200TA 0x021e /* BearPaw 1200TA scanner */
+#define USB_PRODUCT_MUSTEK_600USB 0x0873 /* 600 USB scanner */
+#define USB_PRODUCT_MUSTEK_MDC800 0xa800 /* MDC-800 digital camera */
+
+/* M-Systems products */
+#define USB_PRODUCT_MSYSTEMS_DISKONKEY 0x0010 /* DiskOnKey */
+#define USB_PRODUCT_MSYSTEMS_DISKONKEY2 0x0011 /* DiskOnKey */
+
+/* Myson products */
+#define USB_PRODUCT_MYSON_HEDEN_8813 0x8813 /* USB-IDE */
+#define USB_PRODUCT_MYSON_HEDEN 0x8818 /* USB-IDE */
+#define USB_PRODUCT_MYSON_HUBREADER 0x8819 /* COMBO Card reader with USB HUB */
+#define USB_PRODUCT_MYSON_STARREADER 0x9920 /* USB flash card adapter */
+
+/* National Semiconductor */
+#define USB_PRODUCT_NATIONAL_BEARPAW1200 0x1000 /* BearPaw 1200 */
+#define USB_PRODUCT_NATIONAL_BEARPAW2400 0x1001 /* BearPaw 2400 */
+
+/* NEC products */
+#define USB_PRODUCT_NEC_HUB_0050 0x0050 /* USB 2.0 7-Port Hub */
+#define USB_PRODUCT_NEC_HUB_005A 0x005a /* USB 2.0 4-Port Hub */
+#define USB_PRODUCT_NEC_HUB 0x55aa /* hub */
+#define USB_PRODUCT_NEC_HUB_B 0x55ab /* hub */
+
+/* NEODIO products */
+#define USB_PRODUCT_NEODIO_ND3260 0x3260 /* 8-in-1 Multi-format Flash Controller */
+#define USB_PRODUCT_NEODIO_ND5010 0x5010 /* Multi-format Flash Controller */
+
+/* Neotel products */
+#define USB_PRODUCT_NEOTEL_PRIME 0x4000 /* Prime USB modem */
+
+/* Netac products */
+#define USB_PRODUCT_NETAC_CF_CARD 0x1060 /* USB-CF-Card */
+#define USB_PRODUCT_NETAC_ONLYDISK 0x0003 /* OnlyDisk */
+
+/* NetChip Technology Products */
+#define USB_PRODUCT_NETCHIP_TURBOCONNECT 0x1080 /* Turbo-Connect */
+#define USB_PRODUCT_NETCHIP_CLIK_40 0xa140 /* USB Clik! 40 */
+#define USB_PRODUCT_NETCHIP_ETHERNETGADGET 0xa4a2 /* Linux Ethernet/RNDIS gadget on pxa210/25x/26x */
+
+/* Netgear products */
+#define USB_PRODUCT_NETGEAR_EA101 0x1001 /* Ethernet */
+#define USB_PRODUCT_NETGEAR_EA101X 0x1002 /* Ethernet */
+#define USB_PRODUCT_NETGEAR_FA101 0x1020 /* Ethernet 10/100, USB1.1 */
+#define USB_PRODUCT_NETGEAR_FA120 0x1040 /* USB 2.0 Ethernet */
+#define USB_PRODUCT_NETGEAR_WG111V2_2 0x4240 /* PrismGT USB 2.0 WLAN */
+#define USB_PRODUCT_NETGEAR_WG111V3 0x4260 /* WG111v3 */
+#define USB_PRODUCT_NETGEAR_WG111U 0x4300 /* WG111U */
+#define USB_PRODUCT_NETGEAR_WG111U_NF 0x4301 /* WG111U (no firmware) */
+#define USB_PRODUCT_NETGEAR_WG111V2 0x6a00 /* WG111V2 */
+#define USB_PRODUCT_NETGEAR2_MA101 0x4100 /* MA101 */
+#define USB_PRODUCT_NETGEAR2_MA101B 0x4102 /* MA101 Rev B */
+#define USB_PRODUCT_NETGEAR3_WG111T 0x4250 /* WG111T */
+#define USB_PRODUCT_NETGEAR3_WG111T_NF 0x4251 /* WG111T (no firmware) */
+#define USB_PRODUCT_NETGEAR3_WPN111 0x5f00 /* WPN111 */
+#define USB_PRODUCT_NETGEAR3_WPN111_NF 0x5f01 /* WPN111 (no firmware) */
+#define USB_PRODUCT_NETGEAR3_WPN111_2 0x5f02 /* WPN111 */
+
+/* NetIndex products */
+#define USB_PRODUCT_NETINDEX_WS002IN 0x2001 /* Willcom WS002IN */
+
+/* NEWlink */
+#define USB_PRODUCT_NEWLINK_USB2IDEBRIDGE 0x00ff /* USB 2.0 Hard Drive Enclosure */
+
+/* Nikon products */
+#define USB_PRODUCT_NIKON_E990 0x0102 /* Digital Camera E990 */
+#define USB_PRODUCT_NIKON_LS40 0x4000 /* CoolScan LS40 ED */
+#define USB_PRODUCT_NIKON_D300 0x041a /* Digital Camera D300 */
+
+/* NovaTech Products */
+#define USB_PRODUCT_NOVATECH_NV902 0x9020 /* NovaTech NV-902W */
+#define USB_PRODUCT_NOVATECH_RT2573 0x9021 /* RT2573 */
+
+/* Nokia products */
+#define USB_PRODUCT_NOKIA_N958GB 0x0070 /* Nokia N95 8GBc */
+#define USB_PRODUCT_NOKIA2_CA42 0x1234 /* CA-42 cable */
+
+/* Novatel Wireless products */
+#define USB_PRODUCT_NOVATEL_V640 0x1100 /* Merlin V620 */
+#define USB_PRODUCT_NOVATEL_CDMA_MODEM 0x1110 /* Novatel Wireless Merlin CDMA */
+#define USB_PRODUCT_NOVATEL_V620 0x1110 /* Merlin V620 */
+#define USB_PRODUCT_NOVATEL_V740 0x1120 /* Merlin V740 */
+#define USB_PRODUCT_NOVATEL_V720 0x1130 /* Merlin V720 */
+#define USB_PRODUCT_NOVATEL_U740 0x1400 /* Merlin U740 */
+#define USB_PRODUCT_NOVATEL_U740_2 0x1410 /* Merlin U740 */
+#define USB_PRODUCT_NOVATEL_U870 0x1420 /* Merlin U870 */
+#define USB_PRODUCT_NOVATEL_XU870 0x1430 /* Merlin XU870 */
+#define USB_PRODUCT_NOVATEL_X950D 0x1450 /* Merlin X950D */
+#define USB_PRODUCT_NOVATEL_ES620 0x2100 /* Expedite ES620 */
+#define USB_PRODUCT_NOVATEL_E725 0x2120 /* Expedite E725 */
+#define USB_PRODUCT_NOVATEL_ES620_2 0x2130 /* Expedite ES620 */
+#define USB_PRODUCT_NOVATEL_ES620 0x2100 /* ES620 CDMA */
+#define USB_PRODUCT_NOVATEL_U720 0x2110 /* Merlin U720 */
+#define USB_PRODUCT_NOVATEL_EU730 0x2400 /* Expedite EU730 */
+#define USB_PRODUCT_NOVATEL_EU740 0x2410 /* Expedite EU740 */
+#define USB_PRODUCT_NOVATEL_EU870D 0x2420 /* Expedite EU870D */
+#define USB_PRODUCT_NOVATEL_U727 0x4100 /* Merlin U727 CDMA */
+#define USB_PRODUCT_NOVATEL_MC950D 0x4400 /* Novatel MC950D HSUPA */
+#define USB_PRODUCT_NOVATEL_ZEROCD 0x5010 /* Novatel ZeroCD */
+#define USB_PRODUCT_NOVATEL_ZEROCD2 0x5030 /* Novatel ZeroCD */
+#define USB_PRODUCT_NOVATEL_U727_2 0x5100 /* Merlin U727 CDMA */
+#define USB_PRODUCT_NOVATEL_U760 0x6000 /* Novatel U760 */
+#define USB_PRODUCT_NOVATEL_MC760 0x6002 /* Novatel MC760 */
+#define USB_PRODUCT_NOVATEL2_FLEXPACKGPS 0x0100 /* NovAtel FlexPack GPS receiver */
+
+/* Merlin products */
+#define USB_PRODUCT_MERLIN_V620 0x1110 /* Merlin V620 */
+
+/* O2Micro products */
+#define USB_PRODUCT_O2MICRO_OZ776_HUB 0x7761 /* OZ776 hub */
+#define USB_PRODUCT_O2MICRO_OZ776_CCID_SC 0x7772 /* OZ776 CCID SC Reader */
+
+/* Olympus products */
+#define USB_PRODUCT_OLYMPUS_C1 0x0102 /* C-1 Digital Camera */
+#define USB_PRODUCT_OLYMPUS_C700 0x0105 /* C-700 Ultra Zoom */
+
+/* OmniVision Technologies, Inc. products */
+#define USB_PRODUCT_OMNIVISION_OV511 0x0511 /* OV511 Camera */
+#define USB_PRODUCT_OMNIVISION_OV511PLUS 0xa511 /* OV511+ Camera */
+
+/* OnSpec Electronic, Inc. */
+#define USB_PRODUCT_ONSPEC_SDS_HOTFIND_D 0x0400 /* SDS-infrared.com Hotfind-D Infrared Camera */
+#define USB_PRODUCT_ONSPEC_MDCFE_B_CF_READER 0xa000 /* MDCFE-B USB CF Reader */
+#define USB_PRODUCT_ONSPEC_CFMS_RW 0xa001 /* SIIG/Datafab Memory Stick+CF Reader/Writer */
+#define USB_PRODUCT_ONSPEC_READER 0xa003 /* Datafab-based Reader */
+#define USB_PRODUCT_ONSPEC_CFSM_READER 0xa005 /* PNY/Datafab CF+SM Reader */
+#define USB_PRODUCT_ONSPEC_CFSM_READER2 0xa006 /* Simple Tech/Datafab CF+SM Reader */
+#define USB_PRODUCT_ONSPEC_MDSM_B_READER 0xa103 /* MDSM-B reader */
+#define USB_PRODUCT_ONSPEC_CFSM_COMBO 0xa109 /* USB to CF + SM Combo (LC1) */
+#define USB_PRODUCT_ONSPEC_UCF100 0xa400 /* FlashLink UCF-100 CompactFlash Reader */
+#define USB_PRODUCT_ONSPEC2_IMAGEMATE_SDDR55 0xa103 /* ImageMate SDDR55 */
+
+/* Option products */
+#define USB_PRODUCT_OPTION_VODAFONEMC3G 0x5000 /* Vodafone Mobile Connect 3G datacard */
+#define USB_PRODUCT_OPTION_GT3G 0x6000 /* GlobeTrotter 3G datacard */
+#define USB_PRODUCT_OPTION_GT3GQUAD 0x6300 /* GlobeTrotter 3G QUAD datacard */
+#define USB_PRODUCT_OPTION_GT3GPLUS 0x6600 /* GlobeTrotter 3G+ datacard */
+#define USB_PRODUCT_OPTION_GTICON322 0xd033 /* GlobeTrotter Icon322 storage */
+#define USB_PRODUCT_OPTION_GTMAX36 0x6701 /* GlobeTrotter Max 3.6 Modem */
+#define USB_PRODUCT_OPTION_GTHSDPA 0x6971 /* GlobeTrotter HSDPA */
+#define USB_PRODUCT_OPTION_GTMAXHSUPA 0x7001 /* GlobeTrotter HSUPA */
+#define USB_PRODUCT_OPTION_GTMAXHSUPAE 0x6901 /* GlobeTrotter HSUPA PCIe */
+#define USB_PRODUCT_OPTION_GTMAX380HSUPAE 0x7211 /* GlobeTrotter 380HSUPA PCIe */
+#define USB_PRODUCT_OPTION_GT3G_1 0x6050 /* 3G modem */
+#define USB_PRODUCT_OPTION_GT3G_2 0x6100 /* 3G modem */
+#define USB_PRODUCT_OPTION_GT3G_3 0x6150 /* 3G modem */
+#define USB_PRODUCT_OPTION_GT3G_4 0x6200 /* 3G modem */
+#define USB_PRODUCT_OPTION_GT3G_5 0x6250 /* 3G modem */
+#define USB_PRODUCT_OPTION_GT3G_6 0x6350 /* 3G modem */
+#define USB_PRODUCT_OPTION_E6500 0x6500 /* 3G modem */
+#define USB_PRODUCT_OPTION_E6501 0x6501 /* 3G modem */
+#define USB_PRODUCT_OPTION_E6601 0x6601 /* 3G modem */
+#define USB_PRODUCT_OPTION_E6721 0x6721 /* 3G modem */
+#define USB_PRODUCT_OPTION_E6741 0x6741 /* 3G modem */
+#define USB_PRODUCT_OPTION_E6761 0x6761 /* 3G modem */
+#define USB_PRODUCT_OPTION_E6800 0x6800 /* 3G modem */
+#define USB_PRODUCT_OPTION_E7021 0x7021 /* 3G modem */
+#define USB_PRODUCT_OPTION_E7041 0x7041 /* 3G modem */
+#define USB_PRODUCT_OPTION_E7061 0x7061 /* 3G modem */
+#define USB_PRODUCT_OPTION_E7100 0x7100 /* 3G modem */
+#define USB_PRODUCT_OPTION_GTM380 0x7201 /* 3G modem */
+#define USB_PRODUCT_OPTION_GE40X 0x7601 /* Globetrotter HSUPA */
+#define USB_PRODUCT_OPTION_GSICON72 0x6911 /* GlobeSurfer iCON */
+#define USB_PRODUCT_OPTION_GSICONHSUPA 0x7251 /* Globetrotter HSUPA */
+#define USB_PRODUCT_OPTION_ICON401 0x7401 /* GlobeSurfer iCON 401 */
+#define USB_PRODUCT_OPTION_GTHSUPA 0x7011 /* Globetrotter HSUPA */
+#define USB_PRODUCT_OPTION_GMT382 0x7501 /* Globetrotter HSUPA */
+#define USB_PRODUCT_OPTION_GE40X_1 0x7301 /* Globetrotter HSUPA */
+#define USB_PRODUCT_OPTION_GE40X_2 0x7361 /* Globetrotter HSUPA */
+#define USB_PRODUCT_OPTION_GE40X_3 0x7381 /* Globetrotter HSUPA */
+#define USB_PRODUCT_OPTION_ICONEDGE 0xc031 /* GlobeSurfer iCON EDGE */
+#define USB_PRODUCT_OPTION_MODHSXPA 0xd013 /* Globetrotter HSUPA */
+#define USB_PRODUCT_OPTION_ICON321 0xd031 /* Globetrotter HSUPA */
+#define USB_PRODUCT_OPTION_ICON505 0xd055 /* Globetrotter iCON 505 */
+#define USB_PRODUCT_OPTION_ICON452 0x7901 /* Globetrotter iCON 452 */
+
+/* OvisLink product */
+#define USB_PRODUCT_OVISLINK_RT3072 0x3072 /* RT3072 */
+
+/* OQO */
+#define USB_PRODUCT_OQO_WIFI01 0x0002 /* model 01 WiFi interface */
+#define USB_PRODUCT_OQO_BT01 0x0003 /* model 01 Bluetooth interface */
+#define USB_PRODUCT_OQO_ETHER01PLUS 0x7720 /* model 01+ Ethernet */
+#define USB_PRODUCT_OQO_ETHER01 0x8150 /* model 01 Ethernet interface */
+
+/* Ours Technology Inc. */
+#define USB_PRODUCT_OTI_DKU5 0x6858 /* DKU-5 Serial */
+
+/* Owen.ru products */
+#define USB_PRODUCT_OWEN_AC4 0x0004 /* AC4 USB-RS485 converter */
+
+/* Palm Computing, Inc. product */
+#define USB_PRODUCT_PALM_SERIAL 0x0080 /* USB Serial */
+#define USB_PRODUCT_PALM_M500 0x0001 /* Palm m500 */
+#define USB_PRODUCT_PALM_M505 0x0002 /* Palm m505 */
+#define USB_PRODUCT_PALM_M515 0x0003 /* Palm m515 */
+#define USB_PRODUCT_PALM_I705 0x0020 /* Palm i705 */
+#define USB_PRODUCT_PALM_TUNGSTEN_Z 0x0031 /* Palm Tungsten Z */
+#define USB_PRODUCT_PALM_M125 0x0040 /* Palm m125 */
+#define USB_PRODUCT_PALM_M130 0x0050 /* Palm m130 */
+#define USB_PRODUCT_PALM_TUNGSTEN_T 0x0060 /* Palm Tungsten T */
+#define USB_PRODUCT_PALM_ZIRE31 0x0061 /* Palm Zire 31 */
+#define USB_PRODUCT_PALM_ZIRE 0x0070 /* Palm Zire */
+
+/* Panasonic products */
+#define USB_PRODUCT_PANASONIC_LS120CAM 0x0901 /* LS-120 Camera */
+#define USB_PRODUCT_PANASONIC_KXL840AN 0x0d01 /* CD-R Drive KXL-840AN */
+#define USB_PRODUCT_PANASONIC_KXLRW32AN 0x0d09 /* CD-R Drive KXL-RW32AN */
+#define USB_PRODUCT_PANASONIC_KXLCB20AN 0x0d0a /* CD-R Drive KXL-CB20AN */
+#define USB_PRODUCT_PANASONIC_KXLCB35AN 0x0d0e /* DVD-ROM & CD-R/RW */
+#define USB_PRODUCT_PANASONIC_SDCAAE 0x1b00 /* MultiMediaCard */
+#define USB_PRODUCT_PANASONIC_TYTP50P6S 0x3900 /* TY-TP50P6-S 50in Touch Panel */
+
+/* PARA Industrial products */
+#define USB_PRODUCT_PARA_RT3070 0x8888 /* RT3070 */
+
+/* Pegatron products */
+#define USB_PRODUCT_PEGATRON_RT2870 0x0002 /* RT2870 */
+#define USB_PRODUCT_PEGATRON_RT3070 0x000c /* RT3070 */
+#define USB_PRODUCT_PEGATRON_RT3070_2 0x000e /* RT3070 */
+#define USB_PRODUCT_PEGATRON_RT3070_3 0x0010 /* RT3070 */
+
+/* Peracom products */
+#define USB_PRODUCT_PERACOM_SERIAL1 0x0001 /* Serial */
+#define USB_PRODUCT_PERACOM_ENET 0x0002 /* Ethernet */
+#define USB_PRODUCT_PERACOM_ENET3 0x0003 /* At Home Ethernet */
+#define USB_PRODUCT_PERACOM_ENET2 0x0005 /* Ethernet */
+
+/* Philips products */
+#define USB_PRODUCT_PHILIPS_DSS350 0x0101 /* DSS 350 Digital Speaker System */
+#define USB_PRODUCT_PHILIPS_DSS 0x0104 /* DSS XXX Digital Speaker System */
+#define USB_PRODUCT_PHILIPS_HUB 0x0201 /* hub */
+#define USB_PRODUCT_PHILIPS_PCA646VC 0x0303 /* PCA646VC PC Camera */
+#define USB_PRODUCT_PHILIPS_PCVC680K 0x0308 /* PCVC680K Vesta Pro PC Camera */
+#define USB_PRODUCT_PHILIPS_DSS150 0x0471 /* DSS 150 Digital Speaker System */
+#define USB_PRODUCT_PHILIPS_ACE1001 0x066a /* AKTAKOM ACE-1001 cable */
+#define USB_PRODUCT_PHILIPS_SPE3030CC 0x083a /* USB 2.0 External Disk */
+#define USB_PRODUCT_PHILIPS_SNU5600 0x1236 /* SNU5600 */
+#define USB_PRODUCT_PHILIPS_UM10016 0x1552 /* ISP 1581 Hi-Speed USB MPEG2 Encoder Reference Kit */
+#define USB_PRODUCT_PHILIPS_DIVAUSB 0x1801 /* DIVA USB mp3 player */
+#define USB_PRODUCT_PHILIPS_RT2870 0x200f /* RT2870 */
+
+/* Philips Semiconductor products */
+#define USB_PRODUCT_PHILIPSSEMI_HUB1122 0x1122 /* HUB */
+
+/* Megatec */
+#define USB_PRODUCT_MEGATEC_UPS 0x5161 /* Phoenixtec protocol based UPS */
+
+/* P.I. Engineering products */
+#define USB_PRODUCT_PIENGINEERING_PS2USB 0x020b /* PS2 to Mac USB Adapter */
+
+/* Planex Communications products */
+#define USB_PRODUCT_PLANEX_GW_US11H 0x14ea /* GW-US11H WLAN */
+#define USB_PRODUCT_PLANEX2_GW_US11S 0x3220 /* GW-US11S WLAN */
+#define USB_PRODUCT_PLANEX2_GW_US54GXS 0x5303 /* GW-US54GXS WLAN */
+#define USB_PRODUCT_PLANEX2_GWUS54HP 0xab01 /* GW-US54HP */
+#define USB_PRODUCT_PLANEX2_GWUS300MINIS 0xab24 /* GW-US300MiniS */
+#define USB_PRODUCT_PLANEX2_RT3070 0xab25 /* RT3070 */
+#define USB_PRODUCT_PLANEX2_GWUS54MINI2 0xab50 /* GW-US54Mini2 */
+#define USB_PRODUCT_PLANEX2_GWUS54SG 0xc002 /* GW-US54SG */
+#define USB_PRODUCT_PLANEX2_GWUS54GZL 0xc007 /* GW-US54GZL */
+#define USB_PRODUCT_PLANEX2_GWUS54GD 0xed01 /* GW-US54GD */
+#define USB_PRODUCT_PLANEX2_GWUSMM 0xed02 /* GW-USMM */
+#define USB_PRODUCT_PLANEX2_RT2870 0xed06 /* RT2870 */
+#define USB_PRODUCT_PLANEX2_GWUSMICRON 0xed14 /* GW-USMicroN */
+#define USB_PRODUCT_PLANEX3_GWUS54GZ 0xab10 /* GW-US54GZ */
+#define USB_PRODUCT_PLANEX3_GU1000T 0xab11 /* GU-1000T */
+#define USB_PRODUCT_PLANEX3_GWUS54MINI 0xab13 /* GW-US54Mini */
+
+/* Plextor Corp. */
+#define USB_PRODUCT_PLEXTOR_40_12_40U 0x0011 /* PlexWriter 40/12/40U */
+
+/* PLX products */
+#define USB_PRODUCT_PLX_TESTBOARD 0x9060 /* test board */
+#define USB_PRODUCT_PLX_CA42 0xac70 /* CA-42 */
+
+/* PNY products */
+#define USB_PRODUCT_PNY_ATTACHE2 0x0010 /* USB 2.0 Flash Drive */
+
+/* PortGear products */
+#define USB_PRODUCT_PORTGEAR_EA8 0x0008 /* Ethernet */
+#define USB_PRODUCT_PORTGEAR_EA9 0x0009 /* Ethernet */
+
+/* Portsmith products */
+#define USB_PRODUCT_PORTSMITH_EEA 0x3003 /* Express Ethernet */
+
+/* Primax products */
+#define USB_PRODUCT_PRIMAX_G2X300 0x0300 /* G2-200 scanner */
+#define USB_PRODUCT_PRIMAX_G2E300 0x0301 /* G2E-300 scanner */
+#define USB_PRODUCT_PRIMAX_G2300 0x0302 /* G2-300 scanner */
+#define USB_PRODUCT_PRIMAX_G2E3002 0x0303 /* G2E-300 scanner */
+#define USB_PRODUCT_PRIMAX_9600 0x0340 /* Colorado USB 9600 scanner */
+#define USB_PRODUCT_PRIMAX_600U 0x0341 /* Colorado 600u scanner */
+#define USB_PRODUCT_PRIMAX_6200 0x0345 /* Visioneer 6200 scanner */
+#define USB_PRODUCT_PRIMAX_19200 0x0360 /* Colorado USB 19200 scanner */
+#define USB_PRODUCT_PRIMAX_1200U 0x0361 /* Colorado 1200u scanner */
+#define USB_PRODUCT_PRIMAX_G600 0x0380 /* G2-600 scanner */
+#define USB_PRODUCT_PRIMAX_636I 0x0381 /* ReadyScan 636i */
+#define USB_PRODUCT_PRIMAX_G2600 0x0382 /* G2-600 scanner */
+#define USB_PRODUCT_PRIMAX_G2E600 0x0383 /* G2E-600 scanner */
+#define USB_PRODUCT_PRIMAX_COMFORT 0x4d01 /* Comfort */
+#define USB_PRODUCT_PRIMAX_MOUSEINABOX 0x4d02 /* Mouse-in-a-Box */
+#define USB_PRODUCT_PRIMAX_PCGAUMS1 0x4d04 /* Sony PCGA-UMS1 */
+#define USB_PRODUCT_PRIMAX_HP_RH304AA 0x4d17 /* HP RH304AA mouse */
+
+/* Prolific products */
+#define USB_PRODUCT_PROLIFIC_PL2301 0x0000 /* PL2301 Host-Host interface */
+#define USB_PRODUCT_PROLIFIC_PL2302 0x0001 /* PL2302 Host-Host interface */
+#define USB_PRODUCT_PROLIFIC_RSAQ2 0x04bb /* PL2303 Serial (IODATA USB-RSAQ2) */
+#define USB_PRODUCT_PROLIFIC_ALLTRONIX_GPRS 0x0609 /* Alltronix ACM003U00 modem */
+#define USB_PRODUCT_PROLIFIC_ALDIGA_AL11U 0x0611 /* AlDiga AL-11U modem */
+#define USB_PRODUCT_PROLIFIC_MICROMAX_610U 0x0612 /* Micromax 610U */
+#define USB_PRODUCT_PROLIFIC_DCU11 0x1234 /* DCU-11 Phone Cable */
+#define USB_PRODUCT_PROLIFIC_PL2303 0x2303 /* PL2303 Serial (ATEN/IOGEAR UC232A) */
+#define USB_PRODUCT_PROLIFIC_PL2305 0x2305 /* Parallel printer */
+#define USB_PRODUCT_PROLIFIC_ATAPI4 0x2307 /* ATAPI-4 Controller */
+#define USB_PRODUCT_PROLIFIC_PL2501 0x2501 /* PL2501 Host-Host interface */
+#define USB_PRODUCT_PROLIFIC_PL2506 0x2506 /* PL2506 USB to IDE Bridge */
+#define USB_PRODUCT_PROLIFIC_HCR331 0x331a /* HCR331 Hybrid Card Reader */
+#define USB_PRODUCT_PROLIFIC_PHAROS 0xaaa0 /* Prolific Pharos */
+#define USB_PRODUCT_PROLIFIC_RSAQ3 0xaaa2 /* PL2303 Serial Adapter (IODATA USB-RSAQ3) */
+#define USB_PRODUCT_PROLIFIC2_PL2303 0x2303 /* PL2303 Serial Adapter */
+
+/* Putercom products */
+#define USB_PRODUCT_PUTERCOM_UPA100 0x047e /* USB-1284 BRIDGE */
+
+/* Qcom products */
+#define USB_PRODUCT_QCOM_RT2573 0x6196 /* RT2573 */
+#define USB_PRODUCT_QCOM_RT2573_2 0x6229 /* RT2573 */
+#define USB_PRODUCT_QCOM_RT2573_3 0x6238 /* RT2573 */
+#define USB_PRODUCT_QCOM_RT2870 0x6259 /* RT2870 */
+
+/* Qisda products */
+#define USB_PRODUCT_QISDA_H21_1 0x4512 /* 3G modem */
+#define USB_PRODUCT_QISDA_H21_2 0x4523 /* 3G modem */
+#define USB_PRODUCT_QISDA_H20_1 0x4515 /* 3G modem */
+#define USB_PRODUCT_QISDA_H20_2 0x4519 /* 3G modem */
+
+/* Qualcomm products */
+#define USB_PRODUCT_QUALCOMM_CDMA_MSM 0x6000 /* CDMA Technologies MSM phone */
+#define USB_PRODUCT_QUALCOMM2_MF330 0x6613 /* MF330 */
+#define USB_PRODUCT_QUALCOMM2_RWT_FCT 0x3100 /* RWT FCT-CDMA 2000 1xRTT modem */
+#define USB_PRODUCT_QUALCOMM2_CDMA_MSM 0x3196 /* CDMA Technologies MSM modem */
+#define USB_PRODUCT_QUALCOMM2_AC8700 0x6000 /* AC8700 */
+#define USB_PRODUCT_QUALCOMMINC_CDMA_MSM 0x0001 /* CDMA Technologies MSM modem */
+#define USB_PRODUCT_QUALCOMMINC_E0002 0x0002 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0003 0x0003 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0004 0x0004 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0005 0x0005 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0006 0x0006 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0007 0x0007 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0008 0x0008 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0009 0x0009 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E000A 0x000a /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E000B 0x000b /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E000C 0x000c /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E000D 0x000d /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E000E 0x000e /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E000F 0x000f /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0010 0x0010 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0011 0x0011 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0012 0x0012 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0013 0x0013 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0014 0x0014 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_MF628 0x0015 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_MF633R 0x0016 /* ZTE WCDMA modem */
+#define USB_PRODUCT_QUALCOMMINC_E0017 0x0017 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0018 0x0018 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0019 0x0019 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0020 0x0020 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0021 0x0021 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0022 0x0022 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0023 0x0023 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0024 0x0024 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0025 0x0025 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0026 0x0026 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0027 0x0027 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0028 0x0028 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0029 0x0029 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0030 0x0030 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_MF626 0x0031 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0032 0x0032 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0033 0x0033 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0037 0x0037 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0039 0x0039 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0042 0x0042 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0043 0x0043 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0048 0x0048 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0049 0x0049 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0051 0x0051 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0052 0x0052 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_ZTE_STOR2 0x0053 /* USB ZTE Storage */
+#define USB_PRODUCT_QUALCOMMINC_E0054 0x0054 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0055 0x0055 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0057 0x0057 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0058 0x0058 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0059 0x0059 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0060 0x0060 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0061 0x0061 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0062 0x0062 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0063 0x0063 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0064 0x0064 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0066 0x0066 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0069 0x0069 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0070 0x0070 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0073 0x0073 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0076 0x0076 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0078 0x0078 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0082 0x0082 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E0086 0x0086 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_ZTE_STOR 0x2000 /* USB ZTE Storage */
+#define USB_PRODUCT_QUALCOMMINC_E2002 0x2002 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_E2003 0x2003 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_AC8710 0xfff1 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_AC2726 0xfff5 /* 3G modem */
+#define USB_PRODUCT_QUALCOMMINC_AC8700 0xfffe /* CDMA 1xEVDO USB modem */
+
+/* Quanta products */
+#define USB_PRODUCT_QUANTA_RW6815_1 0x00ce /* HP iPAQ rw6815 */
+#define USB_PRODUCT_QUANTA_RT3070 0x0304 /* RT3070 */
+#define USB_PRODUCT_QUANTA_Q101_STOR 0x1000 /* USB Q101 Storage */
+#define USB_PRODUCT_QUANTA_Q101 0xea02 /* HSDPA modem */
+#define USB_PRODUCT_QUANTA_Q111 0xea03 /* HSDPA modem */
+#define USB_PRODUCT_QUANTA_GLX 0xea04 /* HSDPA modem */
+#define USB_PRODUCT_QUANTA_GKE 0xea05 /* HSDPA modem */
+#define USB_PRODUCT_QUANTA_GLE 0xea06 /* HSDPA modem */
+#define USB_PRODUCT_QUANTA_RW6815R 0xf003 /* HP iPAQ rw6815 RNDIS */
+
+/* Qtronix products */
+#define USB_PRODUCT_QTRONIX_980N 0x2011 /* Scorpion-980N keyboard */
+
+/* Quickshot products */
+#define USB_PRODUCT_QUICKSHOT_STRIKEPAD 0x6238 /* USB StrikePad */
+
+/* Radio Shack */
+#define USB_PRODUCT_RADIOSHACK_USBCABLE 0x4026 /* USB to Serial Cable */
+
+/* Rainbow Technologies products */
+#define USB_PRODUCT_RAINBOW_IKEY2000 0x1200 /* i-Key 2000 */
+
+/* Ralink Technology products */
+#define USB_PRODUCT_RALINK_RT2570 0x1706 /* RT2500USB Wireless Adapter */
+#define USB_PRODUCT_RALINK_RT2070 0x2070 /* RT2070 */
+#define USB_PRODUCT_RALINK_RT2570_2 0x2570 /* RT2500USB Wireless Adapter */
+#define USB_PRODUCT_RALINK_RT2573 0x2573 /* RT2501USB Wireless Adapter */
+#define USB_PRODUCT_RALINK_RT2671 0x2671 /* RT2601USB Wireless Adapter */
+#define USB_PRODUCT_RALINK_RT2770 0x2770 /* RT2770 */
+#define USB_PRODUCT_RALINK_RT2870 0x2870 /* RT2870 */
+#define USB_PRODUCT_RALINK_RT3070 0x3070 /* RT3070 */
+#define USB_PRODUCT_RALINK_RT3071 0x3071 /* RT3071 */
+#define USB_PRODUCT_RALINK_RT3072 0x3072 /* RT3072 */
+#define USB_PRODUCT_RALINK_RT3370 0x3370 /* RT3370 */
+#define USB_PRODUCT_RALINK_RT3572 0x3572 /* RT3572 */
+#define USB_PRODUCT_RALINK_RT8070 0x8070 /* RT8070 */
+#define USB_PRODUCT_RALINK_RT2570_3 0x9020 /* RT2500USB Wireless Adapter */
+#define USB_PRODUCT_RALINK_RT2573_2 0x9021 /* RT2501USB Wireless Adapter */
+
+/* RATOC Systems products */
+#define USB_PRODUCT_RATOC_REXUSB60 0xb000 /* USB serial adapter REX-USB60 */
+#define USB_PRODUCT_RATOC_REXUSB60F 0xb020 /* USB serial adapter REX-USB60F */
+
+/* ReakTek products */
+/* Green House and CompUSA OEM this part */
+#define USB_PRODUCT_REALTEK_USB20CRW 0x0158 /* USB20CRW Card Reader */
+#define USB_PRODUCT_REALTEK_USBKR100 0x8150 /* USBKR100 USB Ethernet */
+#define USB_PRODUCT_REALTEK_RTL8187 0x8187 /* RTL8187 Wireless Adapter */
+#define USB_PRODUCT_REALTEK_RTL8187B_0 0x8189 /* RTL8187B Wireless Adapter */
+#define USB_PRODUCT_REALTEK_RTL8187B_1 0x8197 /* RTL8187B Wireless Adapter */
+#define USB_PRODUCT_REALTEK_RTL8187B_2 0x8198 /* RTL8187B Wireless Adapter */
+
+/* Ricoh products */
+#define USB_PRODUCT_RICOH_VGPVCC2 0x1830 /* VGP-VCC2 Camera */
+#define USB_PRODUCT_RICOH_VGPVCC3 0x1832 /* VGP-VCC3 Camera */
+#define USB_PRODUCT_RICOH_VGPVCC2_2 0x1833 /* VGP-VCC2 Camera */
+#define USB_PRODUCT_RICOH_VGPVCC2_3 0x1834 /* VGP-VCC2 Camera */
+#define USB_PRODUCT_RICOH_VGPVCC7 0x183a /* VGP-VCC7 Camera */
+#define USB_PRODUCT_RICOH_VGPVCC8 0x183b /* VGP-VCC8 Camera */
+
+/* Reiner-SCT products */
+#define USB_PRODUCT_REINERSCT_CYBERJACK_ECOM 0x0100 /* e-com cyberJack */
+
+/* Roland products */
+#define USB_PRODUCT_ROLAND_UM1 0x0009 /* UM-1 MIDI I/F */
+#define USB_PRODUCT_ROLAND_UM880N 0x0014 /* EDIROL UM-880 MIDI I/F (native) */
+#define USB_PRODUCT_ROLAND_UM880G 0x0015 /* EDIROL UM-880 MIDI I/F (generic) */
+
+/* Rockfire products */
+#define USB_PRODUCT_ROCKFIRE_GAMEPAD 0x2033 /* gamepad 203USB */
+
+/* RATOC Systems products */
+#define USB_PRODUCT_RATOC_REXUSB60 0xb000 /* REX-USB60 */
+#define USB_PRODUCT_RATOC_REXUSB60F 0xb020 /* REX-USB60F */
+
+/* Sagem products */
+#define USB_PRODUCT_SAGEM_USBSERIAL 0x0027 /* USB-Serial Controller */
+#define USB_PRODUCT_SAGEM_XG760A 0x004a /* XG-760A */
+#define USB_PRODUCT_SAGEM_XG76NA 0x0062 /* XG-76NA */
+
+/* Samsung products */
+#define USB_PRODUCT_SAMSUNG_ML6060 0x3008 /* ML-6060 laser printer */
+#define USB_PRODUCT_SAMSUNG_YP_U2 0x5050 /* YP-U2 MP3 Player */
+#define USB_PRODUCT_SAMSUNG_YP_U4 0x5092 /* YP-U4 MP3 Player */
+#define USB_PRODUCT_SAMSUNG_I500 0x6601 /* I500 Palm USB Phone */
+#define USB_PRODUCT_SAMSUNG_I330 0x8001 /* I330 phone cradle */
+#define USB_PRODUCT_SAMSUNG2_RT2870_1 0x2018 /* RT2870 */
+
+/* Samsung Techwin products */
+#define USB_PRODUCT_SAMSUNG_TECHWIN_DIGIMAX_410 0x000a /* Digimax 410 */
+
+/* SanDisk products */
+#define USB_PRODUCT_SANDISK_SDDR05A 0x0001 /* ImageMate SDDR-05a */
+#define USB_PRODUCT_SANDISK_SDDR31 0x0002 /* ImageMate SDDR-31 */
+#define USB_PRODUCT_SANDISK_SDDR05 0x0005 /* ImageMate SDDR-05 */
+#define USB_PRODUCT_SANDISK_SDDR12 0x0100 /* ImageMate SDDR-12 */
+#define USB_PRODUCT_SANDISK_SDDR09 0x0200 /* ImageMate SDDR-09 */
+#define USB_PRODUCT_SANDISK_SDDR75 0x0810 /* ImageMate SDDR-75 */
+#define USB_PRODUCT_SANDISK_SDCZ2_256 0x7104 /* Cruzer Mini 256MB */
+#define USB_PRODUCT_SANDISK_SDCZ4_128 0x7112 /* Cruzer Micro 128MB */
+#define USB_PRODUCT_SANDISK_SDCZ4_256 0x7113 /* Cruzer Micro 256MB */
+
+/* Sanwa Electric Instrument Co., Ltd. products */
+#define USB_PRODUCT_SANWA_KB_USB2 0x0701 /* KB-USB2 multimeter cable */
+
+/* Sanyo Electric products */
+#define USB_PRODUCT_SANYO_SCP4900 0x0701 /* Sanyo SCP-4900 USB Phone */
+
+/* ScanLogic products */
+#define USB_PRODUCT_SCANLOGIC_SL11R 0x0002 /* SL11R IDE Adapter */
+#define USB_PRODUCT_SCANLOGIC_336CX 0x0300 /* Phantom 336CX - C3 scanner */
+
+/* Senao products */
+#define USB_PRODUCT_SENAO_RT2870_3 0x0605 /* RT2870 */
+#define USB_PRODUCT_SENAO_RT2870_4 0x0615 /* RT2870 */
+#define USB_PRODUCT_SENAO_NUB8301 0x2000 /* NUB-8301 */
+#define USB_PRODUCT_SENAO_RT2870_1 0x9701 /* RT2870 */
+#define USB_PRODUCT_SENAO_RT2870_2 0x9702 /* RT2870 */
+#define USB_PRODUCT_SENAO_RT3070 0x9703 /* RT3070 */
+#define USB_PRODUCT_SENAO_RT3071 0x9705 /* RT3071 */
+#define USB_PRODUCT_SENAO_RT3072_1 0x9706 /* RT3072 */
+#define USB_PRODUCT_SENAO_RT3072_2 0x9707 /* RT3072 */
+#define USB_PRODUCT_SENAO_RT3072_3 0x9708 /* RT3072 */
+#define USB_PRODUCT_SENAO_RT3072_4 0x9709 /* RT3072 */
+#define USB_PRODUCT_SENAO_RT3072_5 0x9801 /* RT3072 */
+
+/* ShanTou products */
+#define USB_PRODUCT_SHANTOU_ST268 0x0268 /* ST268 */
+#define USB_PRODUCT_SHANTOU_DM9601 0x9601 /* DM 9601 */
+
+/* Shark products */
+#define USB_PRODUCT_SHARK_PA 0x0400 /* Pocket Adapter */
+
+/* Sharp products */
+#define USB_PRODUCT_SHARP_SL5500 0x8004 /* Zaurus SL-5500 PDA */
+#define USB_PRODUCT_SHARP_SLA300 0x8005 /* Zaurus SL-A300 PDA */
+#define USB_PRODUCT_SHARP_SL5600 0x8006 /* Zaurus SL-5600 PDA */
+#define USB_PRODUCT_SHARP_SLC700 0x8007 /* Zaurus SL-C700 PDA */
+#define USB_PRODUCT_SHARP_SLC750 0x9031 /* Zaurus SL-C750 PDA */
+#define USB_PRODUCT_SHARP_WZERO3ES 0x9123 /* W-ZERO3 ES Smartphone */
+#define USB_PRODUCT_SHARP_WZERO3ADES 0x91ac /* Advanced W-ZERO3 ES Smartphone */
+#define USB_PRODUCT_SHARP_WILLCOM03 0x9242 /* WILLCOM03 */
+
+/* Shuttle Technology products */
+#define USB_PRODUCT_SHUTTLE_EUSB 0x0001 /* E-USB Bridge */
+#define USB_PRODUCT_SHUTTLE_EUSCSI 0x0002 /* eUSCSI Bridge */
+#define USB_PRODUCT_SHUTTLE_SDDR09 0x0003 /* ImageMate SDDR09 */
+#define USB_PRODUCT_SHUTTLE_EUSBCFSM 0x0005 /* eUSB SmartMedia / CompactFlash Adapter */
+#define USB_PRODUCT_SHUTTLE_ZIOMMC 0x0006 /* eUSB MultiMediaCard Adapter */
+#define USB_PRODUCT_SHUTTLE_HIFD 0x0007 /* Sony Hifd */
+#define USB_PRODUCT_SHUTTLE_EUSBATAPI 0x0009 /* eUSB ATA/ATAPI Adapter */
+#define USB_PRODUCT_SHUTTLE_CF 0x000a /* eUSB CompactFlash Adapter */
+#define USB_PRODUCT_SHUTTLE_EUSCSI_B 0x000b /* eUSCSI Bridge */
+#define USB_PRODUCT_SHUTTLE_EUSCSI_C 0x000c /* eUSCSI Bridge */
+#define USB_PRODUCT_SHUTTLE_CDRW 0x0101 /* CD-RW Device */
+#define USB_PRODUCT_SHUTTLE_EUSBORCA 0x0325 /* eUSB ORCA Quad Reader */
+
+/* Siemens products */
+#define USB_PRODUCT_SIEMENS_SPEEDSTREAM 0x1001 /* SpeedStream */
+#define USB_PRODUCT_SIEMENS_SPEEDSTREAM22 0x1022 /* SpeedStream 1022 */
+#define USB_PRODUCT_SIEMENS2_WLL013 0x001b /* WLL013 */
+#define USB_PRODUCT_SIEMENS2_ES75 0x0034 /* GSM module MC35 */
+#define USB_PRODUCT_SIEMENS2_WL54G 0x3c06 /* 54g USB Network Adapter */
+#define USB_PRODUCT_SIEMENS3_SX1 0x0001 /* SX1 */
+#define USB_PRODUCT_SIEMENS3_X65 0x0003 /* X65 */
+#define USB_PRODUCT_SIEMENS3_X75 0x0004 /* X75 */
+#define USB_PRODUCT_SIEMENS3_EF81 0x0005 /* EF81 */
+
+/* Sierra Wireless products */
+#define USB_PRODUCT_SIERRA_EM5625 0x0017 /* EM5625 */
+#define USB_PRODUCT_SIERRA_MC5720_2 0x0018 /* MC5720 */
+#define USB_PRODUCT_SIERRA_MC5725 0x0020 /* MC5725 */
+#define USB_PRODUCT_SIERRA_AIRCARD580 0x0112 /* Sierra Wireless AirCard 580 */
+#define USB_PRODUCT_SIERRA_AIRCARD595 0x0019 /* Sierra Wireless AirCard 595 */
+#define USB_PRODUCT_SIERRA_AC595U 0x0120 /* Sierra Wireless AirCard 595U */
+#define USB_PRODUCT_SIERRA_AC597E 0x0021 /* Sierra Wireless AirCard 597E */
+#define USB_PRODUCT_SIERRA_EM5725 0x0022 /* EM5725 */
+#define USB_PRODUCT_SIERRA_C597 0x0023 /* Sierra Wireless Compass 597 */
+#define USB_PRODUCT_SIERRA_MC5727 0x0024 /* MC5727 */
+#define USB_PRODUCT_SIERRA_T598 0x0025 /* T598 */
+#define USB_PRODUCT_SIERRA_T11 0x0026 /* T11 */
+#define USB_PRODUCT_SIERRA_AC402 0x0027 /* AC402 */
+#define USB_PRODUCT_SIERRA_MC5728 0x0028 /* MC5728 */
+#define USB_PRODUCT_SIERRA_E0029 0x0029 /* E0029 */
+#define USB_PRODUCT_SIERRA_AIRCARD580 0x0112 /* Sierra Wireless AirCard 580 */
+#define USB_PRODUCT_SIERRA_AC595U 0x0120 /* Sierra Wireless AirCard 595U */
+#define USB_PRODUCT_SIERRA_MC5720 0x0218 /* MC5720 Wireless Modem */
+#define USB_PRODUCT_SIERRA_MINI5725 0x0220 /* Sierra Wireless miniPCI 5275 */
+#define USB_PRODUCT_SIERRA_MC5727_2 0x0224 /* MC5727 */
+#define USB_PRODUCT_SIERRA_MC8755_2 0x6802 /* MC8755 */
+#define USB_PRODUCT_SIERRA_MC8765 0x6803 /* MC8765 */
+#define USB_PRODUCT_SIERRA_MC8755 0x6804 /* MC8755 */
+#define USB_PRODUCT_SIERRA_MC8765_2 0x6805 /* MC8765 */
+#define USB_PRODUCT_SIERRA_MC8755_4 0x6808 /* MC8755 */
+#define USB_PRODUCT_SIERRA_MC8765_3 0x6809 /* MC8765 */
+#define USB_PRODUCT_SIERRA_AC875U 0x6812 /* AC875U HSDPA USB Modem */
+#define USB_PRODUCT_SIERRA_MC8755_3 0x6813 /* MC8755 HSDPA */
+#define USB_PRODUCT_SIERRA_MC8775_2 0x6815 /* MC8775 */
+#define USB_PRODUCT_SIERRA_MC8775 0x6816 /* MC8775 */
+#define USB_PRODUCT_SIERRA_AC875 0x6820 /* Sierra Wireless AirCard 875 */
+#define USB_PRODUCT_SIERRA_AC875U_2 0x6821 /* AC875U */
+#define USB_PRODUCT_SIERRA_AC875E 0x6822 /* AC875E */
+#define USB_PRODUCT_SIERRA_MC8780 0x6832 /* MC8780 */
+#define USB_PRODUCT_SIERRA_MC8781 0x6833 /* MC8781 */
+#define USB_PRODUCT_SIERRA_MC8780_2 0x6834 /* MC8780 */
+#define USB_PRODUCT_SIERRA_MC8781_2 0x6835 /* MC8781 */
+#define USB_PRODUCT_SIERRA_MC8780_3 0x6838 /* MC8780 */
+#define USB_PRODUCT_SIERRA_MC8781_3 0x6839 /* MC8781 */
+#define USB_PRODUCT_SIERRA_MC8785 0x683A /* MC8785 */
+#define USB_PRODUCT_SIERRA_MC8785_2 0x683B /* MC8785 */
+#define USB_PRODUCT_SIERRA_MC8790 0x683C /* MC8790 */
+#define USB_PRODUCT_SIERRA_MC8791 0x683D /* MC8791 */
+#define USB_PRODUCT_SIERRA_MC8792 0x683E /* MC8792 */
+#define USB_PRODUCT_SIERRA_AC880 0x6850 /* Sierra Wireless AirCard 880 */
+#define USB_PRODUCT_SIERRA_AC881 0x6851 /* Sierra Wireless AirCard 881 */
+#define USB_PRODUCT_SIERRA_AC880E 0x6852 /* Sierra Wireless AirCard 880E */
+#define USB_PRODUCT_SIERRA_AC881E 0x6853 /* Sierra Wireless AirCard 881E */
+#define USB_PRODUCT_SIERRA_AC880U 0x6855 /* Sierra Wireless AirCard 880U */
+#define USB_PRODUCT_SIERRA_AC881U 0x6856 /* Sierra Wireless AirCard 881U */
+#define USB_PRODUCT_SIERRA_AC885E 0x6859 /* AC885E */
+#define USB_PRODUCT_SIERRA_AC885E_2 0x685A /* AC885E */
+#define USB_PRODUCT_SIERRA_AC885U 0x6880 /* Sierra Wireless AirCard 885U */
+#define USB_PRODUCT_SIERRA_C888 0x6890 /* C888 */
+#define USB_PRODUCT_SIERRA_C22 0x6891 /* C22 */
+#define USB_PRODUCT_SIERRA_E6892 0x6892 /* E6892 */
+#define USB_PRODUCT_SIERRA_E6893 0x6893 /* E6893 */
+#define USB_PRODUCT_SIERRA_MC8700 0x68A3 /* MC8700 */
+#define USB_PRODUCT_SIERRA_AIRCARD875 0x6820 /* Aircard 875 HSDPA */
+#define USB_PRODUCT_SIERRA_TRUINSTALL 0x0fff /* Aircard Tru Installer */
+
+/* Sigmatel products */
+#define USB_PRODUCT_SIGMATEL_WBT_3052 0x4200 /* WBT-3052 IrDA/USB Bridge */
+#define USB_PRODUCT_SIGMATEL_I_BEAD100 0x8008 /* i-Bead 100 MP3 Player */
+
+/* SIIG products */
+/* Also: Omnidirectional Control Technology products */
+#define USB_PRODUCT_SIIG_DIGIFILMREADER 0x0004 /* DigiFilm-Combo Reader */
+#define USB_PRODUCT_SIIG_WINTERREADER 0x0330 /* WINTERREADER Reader */
+#define USB_PRODUCT_SIIG2_USBTOETHER 0x0109 /* USB TO Ethernet */
+#define USB_PRODUCT_SIIG2_US2308 0x0421 /* Serial */
+
+/* Silicom products */
+#define USB_PRODUCT_SILICOM_U2E 0x0001 /* U2E */
+#define USB_PRODUCT_SILICOM_GPE 0x0002 /* Psion Gold Port Ethernet */
+
+/* SI Labs */
+#define USB_PRODUCT_SILABS_VSTABI 0x0f91 /* Vstabi */
+#define USB_PRODUCT_SILABS_ARKHAM_DS101_M 0x1101 /* Arkham DS101 Monitor */
+#define USB_PRODUCT_SILABS_ARKHAM_DS101_A 0x1601 /* Arkham DS101 Adapter */
+#define USB_PRODUCT_SILABS_BSM7DUSB 0x800a /* BSM7-D-USB */
+#define USB_PRODUCT_SILABS_POLOLU 0x803b /* Pololu Serial */
+#define USB_PRODUCT_SILABS_CYGNAL_DEBUG 0x8044 /* Cygnal Debug Adapter */
+#define USB_PRODUCT_SILABS_SB_PARAMOUNT_ME 0x8043 /* Software Bisque Paramount ME */
+#define USB_PRODUCT_SILABS_SAEL 0x8053 /* SA-EL USB */
+#define USB_PRODUCT_SILABS_GSM2228 0x8054 /* Enfora GSM2228 USB */
+#define USB_PRODUCT_SILABS_ARGUSISP 0x8066 /* Argussoft ISP */
+#define USB_PRODUCT_SILABS_IMS_USB_RS422 0x806f /* IMS USB-RS422 */
+#define USB_PRODUCT_SILABS_CRUMB128 0x807a /* Crumb128 board */
+#define USB_PRODUCT_SILABS_DEGREE 0x80ca /* Degree Controls Inc */
+#define USB_PRODUCT_SILABS_TRACIENT 0x80dd /* Tracient RFID */
+#define USB_PRODUCT_SILABS_TRAQMATE 0x80ed /* Track Systems Traqmate */
+#define USB_PRODUCT_SILABS_SUUNTO 0x80f6 /* Suunto Sports Instrument */
+#define USB_PRODUCT_SILABS_ARYGON_MIFARE 0x8115 /* Arygon Mifare RFID reader */
+#define USB_PRODUCT_SILABS_BURNSIDE 0x813d /* Burnside Telecon Deskmobile */
+#define USB_PRODUCT_SILABS_TAMSMASTER 0x813f /* Tams Master Easy Control */
+#define USB_PRODUCT_SILABS_WMRBATT 0x814a /* WMR RIGblaster Plug&Play */
+#define USB_PRODUCT_SILABS_WMRRIGBLASTER 0x814a /* WMR RIGblaster Plug&Play */
+#define USB_PRODUCT_SILABS_WMRRIGTALK 0x814b /* WMR RIGtalk RT1 */
+#define USB_PRODUCT_SILABS_HELICOM 0x815e /* Helicomm IP-Link 1220-DVM */
+#define USB_PRODUCT_SILABS_AVIT_USB_TTL 0x818b /* AVIT Research USB-TTL */
+#define USB_PRODUCT_SILABS_MJS_TOSLINK 0x819f /* MJS USB-TOSLINk */
+#define USB_PRODUCT_SILABS_WAVIT 0x81a6 /* ThinkOptics WavIt */
+#define USB_PRODUCT_SILABS_MSD_DASHHAWK 0x81ac /* MSD DashHawk */
+#define USB_PRODUCT_SILABS_INSYS_MODEM 0x81ad /* INSYS Modem */
+#define USB_PRODUCT_SILABS_LIPOWSKY_JTAG 0x81c8 /* Lipowsky Baby-JTAG */
+#define USB_PRODUCT_SILABS_LIPOWSKY_LIN 0x81e2 /* Lipowsky Baby-LIN */
+#define USB_PRODUCT_SILABS_AEROCOMM 0x81e7 /* Aerocomm Radio */
+#define USB_PRODUCT_SILABS_ZEPHYR_BIO 0x81e8 /* Zephyr Bioharness */
+#define USB_PRODUCT_SILABS_EMS_C1007 0x81f2 /* EMS C1007 HF RFID controller */
+#define USB_PRODUCT_SILABS_LIPOWSKY_HARP 0x8218 /* Lipowsky HARP-1 */
+#define USB_PRODUCT_SILABS_C2_EDGE_MODEM 0x822b /* Commander 2 EDGE(GSM) Modem */
+#define USB_PRODUCT_SILABS_CYGNAL_GPS 0x826b /* Cygnal Fasttrax GPS */
+#define USB_PRODUCT_SILABS_TELEGESYS_ETRX2 0x8293 /* Telegesys ETRX2USB */
+#define USB_PRODUCT_SILABS_PROCYON_AVS 0x82f9 /* Procyon AVS */
+#define USB_PRODUCT_SILABS_MC35PU 0x8341 /* MC35pu */
+#define USB_PRODUCT_SILABS_CYGNAL 0x8382 /* Cygnal */
+#define USB_PRODUCT_SILABS_AMBER_AMB2560 0x83a8 /* Amber Wireless AMB2560 */
+#define USB_PRODUCT_SILABS_KYOCERA_GPS 0x8411 /* Kyocera GPS */
+#define USB_PRODUCT_SILABS_BEI_VCP 0x846e /* BEI USB Sensor (VCP) */
+#define USB_PRODUCT_SILABS_CP2102 0xea60 /* SILABS USB UART */
+#define USB_PRODUCT_SILABS_CP210X_2 0xea61 /* CP210x Serial */
+#define USB_PRODUCT_SILABS_INFINITY_MIC 0xea71 /* Infinity GPS-MIC-1 Radio Monophone */
+#define USB_PRODUCT_SILABS_USBSCOPE50 0xf001 /* USBscope50 */
+#define USB_PRODUCT_SILABS_USBWAVE12 0xf002 /* USBwave12 */
+#define USB_PRODUCT_SILABS_USBPULSE100 0xf003 /* USBpulse100 */
+#define USB_PRODUCT_SILABS_USBCOUNT50 0xf004 /* USBcount50 */
+#define USB_PRODUCT_SILABS2_DCU11CLONE 0xaa26 /* DCU-11 clone */
+#define USB_PRODUCT_SILABS3_GPRS_MODEM 0xea61 /* GPRS Modem */
+#define USB_PRODUCT_SILABS4_100EU_MODEM 0xea61 /* GPRS Modem 100EU */
+
+/* Silicon Portals Inc. */
+#define USB_PRODUCT_SILICONPORTALS_YAPPH_NF 0x0200 /* YAP Phone (no firmware) */
+#define USB_PRODUCT_SILICONPORTALS_YAPPHONE 0x0201 /* YAP Phone */
+
+/* Sirius Technologies products */
+#define USB_PRODUCT_SIRIUS_ROADSTER 0x0001 /* NetComm Roadster II 56 USB */
+
+/* Sitecom products */
+#define USB_PRODUCT_SITECOM_LN029 0x182d /* USB 2.0 Ethernet */
+#define USB_PRODUCT_SITECOM_SERIAL 0x2068 /* USB to serial cable (v2) */
+#define USB_PRODUCT_SITECOM2_WL022 0x182d /* WL-022 */
+
+/* Sitecom Europe products */
+#define USB_PRODUCT_SITECOMEU_RT2870_1 0x0017 /* RT2870 */
+#define USB_PRODUCT_SITECOMEU_WL168V1 0x000d /* WL-168 v1 */
+#define USB_PRODUCT_SITECOMEU_WL168V4 0x0028 /* WL-168 v4 */
+#define USB_PRODUCT_SITECOMEU_RT2870_2 0x002b /* RT2870 */
+#define USB_PRODUCT_SITECOMEU_RT2870_3 0x002c /* RT2870 */
+#define USB_PRODUCT_SITECOMEU_RT2870_4 0x002d /* RT2870 */
+#define USB_PRODUCT_SITECOMEU_RT2770 0x0039 /* RT2770 */
+#define USB_PRODUCT_SITECOMEU_RT3070_2 0x003b /* RT3070 */
+#define USB_PRODUCT_SITECOMEU_RT3070_3 0x003c /* RT3070 */
+#define USB_PRODUCT_SITECOMEU_RT3070_4 0x003d /* RT3070 */
+#define USB_PRODUCT_SITECOMEU_RT3070 0x003e /* RT3070 */
+#define USB_PRODUCT_SITECOMEU_WL608 0x003f /* WL-608 */
+#define USB_PRODUCT_SITECOMEU_RT3071 0x0040 /* RT3071 */
+#define USB_PRODUCT_SITECOMEU_RT3072_1 0x0041 /* RT3072 */
+#define USB_PRODUCT_SITECOMEU_RT3072_2 0x0042 /* RT3072 */
+#define USB_PRODUCT_SITECOMEU_RT3072_3 0x0047 /* RT3072 */
+#define USB_PRODUCT_SITECOMEU_RT3072_4 0x0048 /* RT3072 */
+#define USB_PRODUCT_SITECOMEU_RT3072_5 0x004a /* RT3072 */
+#define USB_PRODUCT_SITECOMEU_RT3072_6 0x004d /* RT3072 */
+#define USB_PRODUCT_SITECOMEU_LN028 0x061c /* LN-028 */
+#define USB_PRODUCT_SITECOMEU_WL113 0x9071 /* WL-113 */
+#define USB_PRODUCT_SITECOMEU_ZD1211B 0x9075 /* ZD1211B */
+#define USB_PRODUCT_SITECOMEU_WL172 0x90ac /* WL-172 */
+#define USB_PRODUCT_SITECOMEU_WL113R2 0x9712 /* WL-113 rev 2 */
+
+/* Skanhex Technology products */
+#define USB_PRODUCT_SKANHEX_MD_7425 0x410a /* MD 7425 Camera */
+#define USB_PRODUCT_SKANHEX_SX_520Z 0x5200 /* SX 520z Camera */
+
+/* Smart Technologies products */
+#define USB_PRODUCT_SMART_PL2303 0x2303 /* Serial adapter */
+
+/* SmartBridges products */
+#define USB_PRODUCT_SMARTBRIDGES_SMARTLINK 0x0001 /* SmartLink USB Ethernet */
+#define USB_PRODUCT_SMARTBRIDGES_SMARTNIC 0x0003 /* smartNIC 2 PnP Ethernet */
+
+/* SMC products */
+#define USB_PRODUCT_SMC_2102USB 0x0100 /* 10Mbps Ethernet */
+#define USB_PRODUCT_SMC_2202USB 0x0200 /* 10/100 Ethernet */
+#define USB_PRODUCT_SMC_2206USB 0x0201 /* EZ Connect USB Ethernet */
+#define USB_PRODUCT_SMC_2862WG 0xee13 /* EZ Connect Wireless Adapter */
+#define USB_PRODUCT_SMC2_2020HUB 0x2020 /* USB Hub */
+#define USB_PRODUCT_SMC2_2514HUB 0x2514 /* USB Hub */
+#define USB_PRODUCT_SMC3_2662WUSB 0xa002 /* 2662W-AR Wireless */
+
+/* SOHOware products */
+#define USB_PRODUCT_SOHOWARE_NUB100 0x9100 /* 10/100 USB Ethernet */
+#define USB_PRODUCT_SOHOWARE_NUB110 0x9110 /* 10/100 USB Ethernet */
+
+/* SOLID YEAR products */
+#define USB_PRODUCT_SOLIDYEAR_KEYBOARD 0x2101 /* Solid Year USB keyboard */
+
+/* SONY products */
+#define USB_PRODUCT_SONY_DSC 0x0010 /* DSC cameras */
+#define USB_PRODUCT_SONY_MS_NW_MS7 0x0025 /* Memorystick NW-MS7 */
+#define USB_PRODUCT_SONY_PORTABLE_HDD_V2 0x002b /* Portable USB Harddrive V2 */
+#define USB_PRODUCT_SONY_MSACUS1 0x002d /* Memorystick MSAC-US1 */
+#define USB_PRODUCT_SONY_HANDYCAM 0x002e /* Handycam */
+#define USB_PRODUCT_SONY_MSC 0x0032 /* MSC memory stick slot */
+#define USB_PRODUCT_SONY_CLIE_35 0x0038 /* Sony Clie v3.5 */
+#define USB_PRODUCT_SONY_MS_PEG_N760C 0x0058 /* PEG N760c Memorystick */
+#define USB_PRODUCT_SONY_CLIE_40 0x0066 /* Sony Clie v4.0 */
+#define USB_PRODUCT_SONY_MS_MSC_U03 0x0069 /* Memorystick MSC-U03 */
+#define USB_PRODUCT_SONY_CLIE_40_MS 0x006d /* Sony Clie v4.0 Memory Stick slot */
+#define USB_PRODUCT_SONY_CLIE_S360 0x0095 /* Sony Clie s360 */
+#define USB_PRODUCT_SONY_CLIE_41_MS 0x0099 /* Sony Clie v4.1 Memory Stick slot */
+#define USB_PRODUCT_SONY_CLIE_41 0x009a /* Sony Clie v4.1 */
+#define USB_PRODUCT_SONY_CLIE_NX60 0x00da /* Sony Clie nx60 */
+#define USB_PRODUCT_SONY_CLIE_TH55 0x0144 /* Sony Clie th55 */
+#define USB_PRODUCT_SONY_CLIE_TJ37 0x0169 /* Sony Clie tj37 */
+#define USB_PRODUCT_SONY_RF_RECEIVER 0x01db /* Sony RF mouse/kbd Receiver VGP-WRC1 */
+#define USB_PRODUCT_SONY_QN3 0x0437 /* Sony QN3 CMD-Jxx phone cable */
+
+/* Sony Ericsson products */
+#define USB_PRODUCT_SONYERICSSON_DCU10 0x0528 /* DCU-10 Phone Data Cable */
+#define USB_PRODUCT_SONYERICSSON_DATAPILOT 0x2003 /* Datapilot Phone Cable */
+
+/* SOURCENEXT products */
+#define USB_PRODUCT_SOURCENEXT_KEIKAI8 0x039f /* KeikaiDenwa 8 */
+#define USB_PRODUCT_SOURCENEXT_KEIKAI8_CHG 0x012e /* KeikaiDenwa 8 with charger */
+
+/* SparkLAN products */
+#define USB_PRODUCT_SPARKLAN_RT2573 0x0004 /* RT2573 */
+#define USB_PRODUCT_SPARKLAN_RT2870_1 0x0006 /* RT2870 */
+#define USB_PRODUCT_SPARKLAN_RT3070 0x0010 /* RT3070 */
+
+/* Speed Dragon Multimedia products */
+#define USB_PRODUCT_SPEEDDRAGON_MS3303H 0x110b /* MS3303H Serial */
+
+/* Sphairon Access Systems GmbH products */
+#define USB_PRODUCT_SPHAIRON_UB801R 0x0110 /* UB801R */
+
+/* Stelera Wireless products */
+#define USB_PRODUCT_STELERA_ZEROCD 0x1000 /* Zerocd Installer */
+#define USB_PRODUCT_STELERA_C105 0x1002 /* Stelera/Bandrish C105 USB */
+#define USB_PRODUCT_STELERA_E1003 0x1003 /* 3G modem */
+#define USB_PRODUCT_STELERA_E1004 0x1004 /* 3G modem */
+#define USB_PRODUCT_STELERA_E1005 0x1005 /* 3G modem */
+#define USB_PRODUCT_STELERA_E1006 0x1006 /* 3G modem */
+#define USB_PRODUCT_STELERA_E1007 0x1007 /* 3G modem */
+#define USB_PRODUCT_STELERA_E1008 0x1008 /* 3G modem */
+#define USB_PRODUCT_STELERA_E1009 0x1009 /* 3G modem */
+#define USB_PRODUCT_STELERA_E100A 0x100a /* 3G modem */
+#define USB_PRODUCT_STELERA_E100B 0x100b /* 3G modem */
+#define USB_PRODUCT_STELERA_E100C 0x100c /* 3G modem */
+#define USB_PRODUCT_STELERA_E100D 0x100d /* 3G modem */
+#define USB_PRODUCT_STELERA_E100E 0x100e /* 3G modem */
+#define USB_PRODUCT_STELERA_E100F 0x100f /* 3G modem */
+#define USB_PRODUCT_STELERA_E1010 0x1010 /* 3G modem */
+#define USB_PRODUCT_STELERA_E1011 0x1011 /* 3G modem */
+#define USB_PRODUCT_STELERA_E1012 0x1012 /* 3G modem */
+
+/* MpMan products */
+#define USB_PRODUCT_MPMAN_MPF400_1 0x36d0 /* MPF400 Music Player 1Go */
+#define USB_PRODUCT_MPMAN_MPF400_2 0x25a8 /* MPF400 Music Player 2Go */
+
+/* STMicroelectronics products */
+#define USB_PRODUCT_STMICRO_BIOCPU 0x2016 /* Biometric Coprocessor */
+#define USB_PRODUCT_STMICRO_COMMUNICATOR 0x7554 /* USB Communicator */
+
+/* STSN products */
+#define USB_PRODUCT_STSN_STSN0001 0x0001 /* Internet Access Device */
+
+/* SUN Corporation products */
+#define USB_PRODUCT_SUNTAC_DS96L 0x0003 /* SUNTAC U-Cable type D2 */
+#define USB_PRODUCT_SUNTAC_PS64P1 0x0005 /* SUNTAC U-Cable type P1 */
+#define USB_PRODUCT_SUNTAC_VS10U 0x0009 /* SUNTAC Slipper U */
+#define USB_PRODUCT_SUNTAC_IS96U 0x000a /* SUNTAC Ir-Trinity */
+#define USB_PRODUCT_SUNTAC_AS64LX 0x000b /* SUNTAC U-Cable type A3 */
+#define USB_PRODUCT_SUNTAC_AS144L4 0x0011 /* SUNTAC U-Cable type A4 */
+
+/* Sun Microsystems products */
+#define USB_PRODUCT_SUN_KEYBOARD_TYPE_6 0x0005 /* Type 6 USB keyboard */
+#define USB_PRODUCT_SUN_KEYBOARD_TYPE_7 0x00a2 /* Type 7 USB keyboard */
+/* XXX The above is a North American PC style keyboard possibly */
+#define USB_PRODUCT_SUN_MOUSE 0x0100 /* Type 6 USB mouse */
+#define USB_PRODUCT_SUN_KBD_HUB 0x100e /* Kbd Hub */
+
+/* Super Top products */
+#define USB_PRODUCT_SUPERTOP_IDE 0x6600 /* USB-IDE */
+
+/* Syntech products */
+#define USB_PRODUCT_SYNTECH_CPT8001C 0x0001 /* CPT-8001C Barcode scanner */
+#define USB_PRODUCT_SYNTECH_CYPHERLAB100 0x1000 /* CipherLab USB Barcode Scanner */
+
+/* Teclast products */
+#define USB_PRODUCT_TECLAST_TLC300 0x3203 /* USB Media Player */
+
+/* Supra products */
+#define USB_PRODUCT_DIAMOND2_SUPRAEXPRESS56K 0x07da /* Supra Express 56K modem */
+#define USB_PRODUCT_DIAMOND2_SUPRA2890 0x0b4a /* SupraMax 2890 56K Modem */
+#define USB_PRODUCT_DIAMOND2_RIO600USB 0x5001 /* Rio 600 USB */
+#define USB_PRODUCT_DIAMOND2_RIO800USB 0x5002 /* Rio 800 USB */
+
+/* Surecom Technology products */
+#define USB_PRODUCT_SURECOM_EP9001G2A 0x11f2 /* EP-9001-G rev 2A */
+#define USB_PRODUCT_SURECOM_RT2570 0x11f3 /* RT2570 */
+#define USB_PRODUCT_SURECOM_RT2573 0x31f3 /* RT2573 */
+
+/* Sweex products */
+#define USB_PRODUCT_SWEEX_ZD1211 0x1809 /* ZD1211 */
+#define USB_PRODUCT_SWEEX2_LW153 0x0153 /* LW153 */
+#define USB_PRODUCT_SWEEX2_LW303 0x0302 /* LW303 */
+#define USB_PRODUCT_SWEEX2_LW313 0x0313 /* LW313 */
+
+/* System TALKS, Inc. */
+#define USB_PRODUCT_SYSTEMTALKS_SGCX2UL 0x1920 /* SGC-X2UL */
+
+/* Tapwave products */
+#define USB_PRODUCT_TAPWAVE_ZODIAC 0x0100 /* Zodiac */
+
+/* Taugagreining products */
+#define USB_PRODUCT_TAUGA_CAMERAMATE 0x0005 /* CameraMate (DPCM_USB) */
+
+/* TCTMobile products */
+#define USB_PRODUCT_TCTMOBILE_X060S 0x0000 /* X060S 3G modem */
+#define USB_PRODUCT_TCTMOBILE_X080S 0xf000 /* X080S 3G modem */
+
+/* TDK products */
+#define USB_PRODUCT_TDK_UPA9664 0x0115 /* USB-PDC Adapter UPA9664 */
+#define USB_PRODUCT_TDK_UCA1464 0x0116 /* USB-cdmaOne Adapter UCA1464 */
+#define USB_PRODUCT_TDK_UHA6400 0x0117 /* USB-PHS Adapter UHA6400 */
+#define USB_PRODUCT_TDK_UPA6400 0x0118 /* USB-PHS Adapter UPA6400 */
+#define USB_PRODUCT_TDK_BT_DONGLE 0x0309 /* Bluetooth USB dongle */
+
+/* TEAC products */
+#define USB_PRODUCT_TEAC_FD05PUB 0x0000 /* FD-05PUB floppy */
+
+/* Tekram Technology products */
+#define USB_PRODUCT_TEKRAM_QUICKWLAN 0x1630 /* QuickWLAN */
+#define USB_PRODUCT_TEKRAM_ZD1211_1 0x5630 /* ZD1211 */
+#define USB_PRODUCT_TEKRAM_ZD1211_2 0x6630 /* ZD1211 */
+
+/* Telex Communications products */
+#define USB_PRODUCT_TELEX_MIC1 0x0001 /* Enhanced USB Microphone */
+
+/* Telit products */
+#define USB_PRODUCT_TELIT_UC864E 0x1003 /* UC864E 3G modem */
+#define USB_PRODUCT_TELIT_UC864G 0x1004 /* UC864G 3G modem */
+
+/* Ten X Technology, Inc. */
+#define USB_PRODUCT_TENX_UAUDIO0 0xf211 /* USB audio headset */
+
+/* Texas Intel products */
+#define USB_PRODUCT_TI_UTUSB41 0x1446 /* UT-USB41 hub */
+#define USB_PRODUCT_TI_TUSB2046 0x2046 /* TUSB2046 hub */
+
+/* Thrustmaster products */
+#define USB_PRODUCT_THRUST_FUSION_PAD 0xa0a3 /* Fusion Digital Gamepad */
+
+/* TLayTech products */
+#define USB_PRODUCT_TLAYTECH_TEU800 0x1682 /* TEU800 3G modem */
+
+/* Topre Corporation products */
+#define USB_PRODUCT_TOPRE_HHKB 0x0100 /* HHKB Professional */
+
+/* Toshiba Corporation products */
+#define USB_PRODUCT_TOSHIBA_POCKETPC_E740 0x0706 /* PocketPC e740 */
+#define USB_PRODUCT_TOSHIBA_RT3070 0x0a07 /* RT3070 */
+#define USB_PRODUCT_TOSHIBA_G450 0x0d45 /* G450 modem */
+#define USB_PRODUCT_TOSHIBA_HSDPA 0x1302 /* G450 modem */
+
+/* Trek Technology products */
+#define USB_PRODUCT_TREK_THUMBDRIVE 0x1111 /* ThumbDrive */
+#define USB_PRODUCT_TREK_MEMKEY 0x8888 /* IBM USB Memory Key */
+#define USB_PRODUCT_TREK_THUMBDRIVE_8MB 0x9988 /* ThumbDrive_8MB */
+
+/* Tripp-Lite products */
+#define USB_PRODUCT_TRIPPLITE_U209 0x2008 /* Serial */
+
+/* Trumpion products */
+#define USB_PRODUCT_TRUMPION_T33520 0x1001 /* T33520 USB Flash Card Controller */
+#define USB_PRODUCT_TRUMPION_C3310 0x1100 /* Comotron C3310 MP3 player */
+#define USB_PRODUCT_TRUMPION_MP3 0x1200 /* MP3 player */
+
+/* TwinMOS */
+#define USB_PRODUCT_TWINMOS_G240 0xa006 /* G240 */
+#define USB_PRODUCT_TWINMOS_MDIV 0x1325 /* Memory Disk IV */
+
+/* Ubiquam products */
+#define USB_PRODUCT_UBIQUAM_UALL 0x3100 /* CDMA 1xRTT USB Modem (U-100/105/200/300/520) */
+
+/* Ultima products */
+#define USB_PRODUCT_ULTIMA_1200UBPLUS 0x4002 /* 1200 UB Plus scanner */
+
+/* UMAX products */
+#define USB_PRODUCT_UMAX_ASTRA1236U 0x0002 /* Astra 1236U Scanner */
+#define USB_PRODUCT_UMAX_ASTRA1220U 0x0010 /* Astra 1220U Scanner */
+#define USB_PRODUCT_UMAX_ASTRA2000U 0x0030 /* Astra 2000U Scanner */
+#define USB_PRODUCT_UMAX_ASTRA2100U 0x0130 /* Astra 2100U Scanner */
+#define USB_PRODUCT_UMAX_ASTRA2200U 0x0230 /* Astra 2200U Scanner */
+#define USB_PRODUCT_UMAX_ASTRA3400 0x0060 /* Astra 3400 Scanner */
+
+/* U-MEDIA Communications products */
+#define USB_PRODUCT_UMEDIA_TEW444UBEU 0x3006 /* TEW-444UB EU */
+#define USB_PRODUCT_UMEDIA_TEW444UBEU_NF 0x3007 /* TEW-444UB EU (no firmware) */
+#define USB_PRODUCT_UMEDIA_TEW429UB_A 0x300a /* TEW-429UB_A */
+#define USB_PRODUCT_UMEDIA_TEW429UB 0x300b /* TEW-429UB */
+#define USB_PRODUCT_UMEDIA_TEW429UBC1 0x300d /* TEW-429UB C1 */
+#define USB_PRODUCT_UMEDIA_RT2870_1 0x300e /* RT2870 */
+#define USB_PRODUCT_UMEDIA_ALL0298V2 0x3204 /* ALL0298 v2 */
+#define USB_PRODUCT_UMEDIA_AR5523_2 0x3205 /* AR5523 */
+#define USB_PRODUCT_UMEDIA_AR5523_2_NF 0x3206 /* AR5523 (no firmware) */
+
+/* Universal Access products */
+#define USB_PRODUCT_UNIACCESS_PANACHE 0x0101 /* Panache Surf USB ISDN Adapter */
+
+/* USI products */
+#define USB_PRODUCT_USI_MC60 0x10c5 /* MC60 Serial */
+
+/* U.S. Robotics products */
+#define USB_PRODUCT_USR_USR5422 0x0118 /* USR5422 WLAN */
+#define USB_PRODUCT_USR_USR5423 0x0121 /* USR5423 WLAN */
+
+/* VIA Technologies products */
+#define USB_PRODUCT_VIA_USB2IDEBRIDGE 0x6204 /* USB 2.0 IDE Bridge */
+
+/* Vaisala products */
+#define USB_PRODUCT_VAISALA_CABLE 0x0200 /* USB Interface cable */
+
+/* VidzMedia products */
+#define USB_PRODUCT_VIDZMEDIA_MONSTERTV 0x4fb1 /* MonsterTV P2H */
+
+/* Vision products */
+#define USB_PRODUCT_VISION_VC6452V002 0x0002 /* CPiA Camera */
+
+/* Visioneer products */
+#define USB_PRODUCT_VISIONEER_7600 0x0211 /* OneTouch 7600 */
+#define USB_PRODUCT_VISIONEER_5300 0x0221 /* OneTouch 5300 */
+#define USB_PRODUCT_VISIONEER_3000 0x0224 /* Scanport 3000 */
+#define USB_PRODUCT_VISIONEER_6100 0x0231 /* OneTouch 6100 */
+#define USB_PRODUCT_VISIONEER_6200 0x0311 /* OneTouch 6200 */
+#define USB_PRODUCT_VISIONEER_8100 0x0321 /* OneTouch 8100 */
+#define USB_PRODUCT_VISIONEER_8600 0x0331 /* OneTouch 8600 */
+
+/* Vivitar products */
+#define USB_PRODUCT_VIVITAR_35XX 0x0003 /* Vivicam 35Xx */
+
+/* VTech products */
+#define USB_PRODUCT_VTECH_RT2570 0x3012 /* RT2570 */
+#define USB_PRODUCT_VTECH_ZD1211B 0x3014 /* ZD1211B */
+
+/* Wacom products */
+#define USB_PRODUCT_WACOM_CT0405U 0x0000 /* CT-0405-U Tablet */
+#define USB_PRODUCT_WACOM_GRAPHIRE 0x0010 /* Graphire */
+#define USB_PRODUCT_WACOM_GRAPHIRE3_4X5 0x0013 /* Graphire 3 4x5 */
+#define USB_PRODUCT_WACOM_INTUOSA5 0x0021 /* Intuos A5 */
+#define USB_PRODUCT_WACOM_GD0912U 0x0022 /* Intuos 9x12 Graphics Tablet */
+
+/* WaveSense products */
+#define USB_PRODUCT_WAVESENSE_JAZZ 0xaaaa /* Jazz blood glucose meter */
+
+/* WCH products */
+#define USB_PRODUCT_WCH_CH341SER 0x5523 /* CH341/CH340 USB-Serial Bridge */
+#define USB_PRODUCT_WCH2_CH341SER 0x7523 /* CH341/CH340 USB-Serial Bridge */
+
+/* Western Digital products */
+#define USB_PRODUCT_WESTERN_COMBO 0x0200 /* Firewire USB Combo */
+#define USB_PRODUCT_WESTERN_EXTHDD 0x0400 /* External HDD */
+#define USB_PRODUCT_WESTERN_HUB 0x0500 /* USB HUB */
+#define USB_PRODUCT_WESTERN_MYBOOK 0x0901 /* MyBook External HDD */
+#define USB_PRODUCT_WESTERN_MYPASSWORD 0x0704 /* MyPassword External HDD */
+
+/* Windbond Electronics */
+#define USB_PRODUCT_WINBOND_UH104 0x5518 /* 4-port USB Hub */
+
+/* WinMaxGroup products */
+#define USB_PRODUCT_WINMAXGROUP_FLASH64MC 0x6660 /* USB Flash Disk 64M-C */
+
+/* Wistron NeWeb products */
+#define USB_PRODUCT_WISTRONNEWEB_UR045G 0x0427 /* PrismGT USB 2.0 WLAN */
+#define USB_PRODUCT_WISTRONNEWEB_UR055G 0x0711 /* UR055G */
+#define USB_PRODUCT_WISTRONNEWEB_AR5523_1 0x0826 /* AR5523 */
+#define USB_PRODUCT_WISTRONNEWEB_AR5523_1_NF 0x0827 /* AR5523 (no firmware) */
+#define USB_PRODUCT_WISTRONNEWEB_AR5523_2 0x082a /* AR5523 */
+#define USB_PRODUCT_WISTRONNEWEB_AR5523_2_NF 0x0829 /* AR5523 (no firmware) */
+
+/* Xerox products */
+#define USB_PRODUCT_XEROX_WCM15 0xffef /* WorkCenter M15 */
+
+/* Xirlink products */
+#define USB_PRODUCT_XIRLINK_PCCAM 0x8080 /* IBM PC Camera */
+
+/* Xyratex products */
+#define USB_PRODUCT_XYRATEX_PRISM_GT_1 0x2000 /* PrismGT USB 2.0 WLAN */
+#define USB_PRODUCT_XYRATEX_PRISM_GT_2 0x2002 /* PrismGT USB 2.0 WLAN */
+
+/* Yamaha products */
+#define USB_PRODUCT_YAMAHA_UX256 0x1000 /* UX256 MIDI I/F */
+#define USB_PRODUCT_YAMAHA_UX96 0x1008 /* UX96 MIDI I/F */
+#define USB_PRODUCT_YAMAHA_RTA54I 0x4000 /* NetVolante RTA54i Broadband&ISDN Router */
+#define USB_PRODUCT_YAMAHA_RTA55I 0x4004 /* NetVolante RTA55i Broadband VoIP Router */
+#define USB_PRODUCT_YAMAHA_RTW65B 0x4001 /* NetVolante RTW65b Broadband Wireless Router */
+#define USB_PRODUCT_YAMAHA_RTW65I 0x4002 /* NetVolante RTW65i Broadband&ISDN Wireless Router */
+
+/* Yano products */
+#define USB_PRODUCT_YANO_U640MO 0x0101 /* U640MO-03 */
+#define USB_PRODUCT_YANO_FW800HD 0x05fc /* METALWEAR-HDD */
+
+/* Y.C. Cable products */
+#define USB_PRODUCT_YCCABLE_PL2303 0x0fba /* PL2303 Serial */
+
+/* Y-E Data products */
+#define USB_PRODUCT_YEDATA_FLASHBUSTERU 0x0000 /* Flashbuster-U */
+
+/* Yiso Wireless Co. products */
+#define USB_PRODUCT_YISO_C893 0xc893 /* CDMA 2000 1xEVDO PC Card */
+
+/* Z-Com products */
+#define USB_PRODUCT_ZCOM_M4Y750 0x0001 /* M4Y-750 */
+#define USB_PRODUCT_ZCOM_XI725 0x0002 /* XI-725/726 */
+#define USB_PRODUCT_ZCOM_XI735 0x0005 /* XI-735 */
+#define USB_PRODUCT_ZCOM_XG703A 0x0008 /* PrismGT USB 2.0 WLAN */
+#define USB_PRODUCT_ZCOM_ZD1211 0x0011 /* ZD1211 */
+#define USB_PRODUCT_ZCOM_AR5523 0x0012 /* AR5523 */
+#define USB_PRODUCT_ZCOM_AR5523_NF 0x0013 /* AR5523 driver (no firmware) */
+#define USB_PRODUCT_ZCOM_XM142 0x0015 /* XM-142 */
+#define USB_PRODUCT_ZCOM_ZD1211B 0x001a /* ZD1211B */
+#define USB_PRODUCT_ZCOM_RT2870_1 0x0022 /* RT2870 */
+#define USB_PRODUCT_ZCOM_RT2870_2 0x0025 /* RT2870 */
+
+/* Zinwell products */
+#define USB_PRODUCT_ZINWELL_RT2570 0x0260 /* RT2570 */
+#define USB_PRODUCT_ZINWELL_RT2870_1 0x0280 /* RT2870 */
+#define USB_PRODUCT_ZINWELL_RT2870_2 0x0282 /* RT2870 */
+#define USB_PRODUCT_ZINWELL_RT3072_1 0x0283 /* RT3072 */
+#define USB_PRODUCT_ZINWELL_RT3072_2 0x0284 /* RT3072 */
+#define USB_PRODUCT_ZINWELL_RT3070 0x5257 /* RT3070 */
+
+/* Zoom Telephonics, Inc. products */
+#define USB_PRODUCT_ZOOM_2986L 0x9700 /* 2986L Fax modem */
+
+/* Zoran Microelectronics products */
+#define USB_PRODUCT_ZORAN_EX20DSC 0x4343 /* Digital Camera EX-20 DSC */
+
+/* Zydas Technology Corporation products */
+#define USB_PRODUCT_ZYDAS_ZD1211 0x1211 /* ZD1211 WLAN abg */
+#define USB_PRODUCT_ZYDAS_ZD1211B 0x1215 /* ZD1211B */
+
+/* ZyXEL Communication Co. products */
+#define USB_PRODUCT_ZYXEL_OMNI56K 0x1500 /* Omni 56K Plus */
+#define USB_PRODUCT_ZYXEL_980N 0x2011 /* Scorpion-980N keyboard */
+#define USB_PRODUCT_ZYXEL_ZYAIRG220 0x3401 /* ZyAIR G-220 */
+#define USB_PRODUCT_ZYXEL_G200V2 0x3407 /* G-200 v2 */
+#define USB_PRODUCT_ZYXEL_AG225H 0x3409 /* AG-225H */
+#define USB_PRODUCT_ZYXEL_M202 0x340a /* M-202 */
+#define USB_PRODUCT_ZYXEL_G220V2 0x340f /* G-220 v2 */
+#define USB_PRODUCT_ZYXEL_G202 0x3410 /* G-202 */
+#define USB_PRODUCT_ZYXEL_RT2870_1 0x3416 /* RT2870 */
+#define USB_PRODUCT_ZYXEL_RT2870_2 0x341a /* RT2870 */
diff --git a/rtemsbsd/include/rtems/bsd/local/usbdevs_data.h b/rtemsbsd/include/rtems/bsd/local/usbdevs_data.h
new file mode 100644
index 00000000..6bd20f55
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/usbdevs_data.h
@@ -0,0 +1,15530 @@
+/* ??? */
+
+/*
+ * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
+ *
+ * generated from:
+ * FreeBSD
+ */
+/* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */
+
+/*-
+ * Copyright (c) 1998-2004 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Lennart Augustsson (lennart@augustsson.net) at
+ * Carlstedt Research & Technology.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * 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.
+ */
+
+const struct usb_knowndev usb_knowndevs[] = {
+ {
+ USB_VENDOR_3COM, USB_PRODUCT_3COM_HOMECONN,
+ 0,
+ "3Com",
+ "HomeConnect Camera",
+ },
+ {
+ USB_VENDOR_3COM, USB_PRODUCT_3COM_3CREB96,
+ 0,
+ "3Com",
+ "Bluetooth USB Adapter",
+ },
+ {
+ USB_VENDOR_3COM, USB_PRODUCT_3COM_3C19250,
+ 0,
+ "3Com",
+ "3C19250 Ethernet Adapter",
+ },
+ {
+ USB_VENDOR_3COM, USB_PRODUCT_3COM_3CRSHEW696,
+ 0,
+ "3Com",
+ "3CRSHEW696 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_3COM, USB_PRODUCT_3COM_3C460,
+ 0,
+ "3Com",
+ "HomeConnect 3C460",
+ },
+ {
+ USB_VENDOR_3COM, USB_PRODUCT_3COM_USR56K,
+ 0,
+ "3Com",
+ "U.S.Robotics 56000 Voice FaxModem Pro",
+ },
+ {
+ USB_VENDOR_3COM, USB_PRODUCT_3COM_3C460B,
+ 0,
+ "3Com",
+ "HomeConnect 3C460B",
+ },
+ {
+ USB_VENDOR_3COM2, USB_PRODUCT_3COM2_3CRUSB10075,
+ 0,
+ "3Com",
+ "3CRUSB10075",
+ },
+ {
+ USB_VENDOR_3COM3, USB_PRODUCT_3COM3_AR5523_1,
+ 0,
+ "3Com",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_3COM3, USB_PRODUCT_3COM3_AR5523_2,
+ 0,
+ "3Com",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_3COM3, USB_PRODUCT_3COM3_AR5523_3,
+ 0,
+ "3Com",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_3COMUSR, USB_PRODUCT_3COMUSR_OFFICECONN,
+ 0,
+ "U.S. Robotics",
+ "3Com OfficeConnect Analog Modem",
+ },
+ {
+ USB_VENDOR_3COMUSR, USB_PRODUCT_3COMUSR_USRISDN,
+ 0,
+ "U.S. Robotics",
+ "3Com U.S. Robotics Pro ISDN TA",
+ },
+ {
+ USB_VENDOR_3COMUSR, USB_PRODUCT_3COMUSR_HOMECONN,
+ 0,
+ "U.S. Robotics",
+ "3Com HomeConnect Camera",
+ },
+ {
+ USB_VENDOR_3COMUSR, USB_PRODUCT_3COMUSR_USR56K,
+ 0,
+ "U.S. Robotics",
+ "U.S. Robotics 56000 Voice FaxModem Pro",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX1,
+ 0,
+ "AboCom Systems",
+ "XX1",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX2,
+ 0,
+ "AboCom Systems",
+ "XX2",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_RT2770,
+ 0,
+ "AboCom Systems",
+ "RT2770",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_RT2870,
+ 0,
+ "AboCom Systems",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_RT3070,
+ 0,
+ "AboCom Systems",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_RT3071,
+ 0,
+ "AboCom Systems",
+ "RT3071",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_RT3072,
+ 0,
+ "AboCom Systems",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_ABOCOM2, USB_PRODUCT_ABOCOM2_RT2870_1,
+ 0,
+ "AboCom Systems",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_URE450,
+ 0,
+ "AboCom Systems",
+ "URE450 Ethernet Adapter",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_UFE1000,
+ 0,
+ "AboCom Systems",
+ "UFE1000 Fast Ethernet Adapter",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_DSB650TX_PNA,
+ 0,
+ "AboCom Systems",
+ "1/10/100 Ethernet Adapter",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX4,
+ 0,
+ "AboCom Systems",
+ "XX4",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX5,
+ 0,
+ "AboCom Systems",
+ "XX5",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX6,
+ 0,
+ "AboCom Systems",
+ "XX6",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX7,
+ 0,
+ "AboCom Systems",
+ "XX7",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_RTL8151,
+ 0,
+ "AboCom Systems",
+ "RTL8151",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX8,
+ 0,
+ "AboCom Systems",
+ "XX8",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX9,
+ 0,
+ "AboCom Systems",
+ "XX9",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_UF200,
+ 0,
+ "AboCom Systems",
+ "UF200 Ethernet",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_WL54,
+ 0,
+ "AboCom Systems",
+ "WL54",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX10,
+ 0,
+ "AboCom Systems",
+ "XX10",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_BWU613,
+ 0,
+ "AboCom Systems",
+ "BWU613",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_HWU54DM,
+ 0,
+ "AboCom Systems",
+ "HWU54DM",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_RT2573_2,
+ 0,
+ "AboCom Systems",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_RT2573_3,
+ 0,
+ "AboCom Systems",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_RT2573_4,
+ 0,
+ "AboCom Systems",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_WUG2700,
+ 0,
+ "AboCom Systems",
+ "WUG2700",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_USB320_EC,
+ 0,
+ "Accton Technology",
+ "USB320-EC Ethernet Adapter",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_2664W,
+ 0,
+ "Accton Technology",
+ "2664W",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_111,
+ 0,
+ "Accton Technology",
+ "T-Sinus 111 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_SMCWUSBG_NF,
+ 0,
+ "Accton Technology",
+ "SMCWUSB-G (no firmware)",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_SMCWUSBG,
+ 0,
+ "Accton Technology",
+ "SMCWUSB-G",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_SMCWUSBTG2_NF,
+ 0,
+ "Accton Technology",
+ "SMCWUSBT-G2 (no firmware)",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_SMCWUSBTG2,
+ 0,
+ "Accton Technology",
+ "SMCWUSBT-G2",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_PRISM_GT,
+ 0,
+ "Accton Technology",
+ "PrismGT USB 2.0 WLAN",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_SS1001,
+ 0,
+ "Accton Technology",
+ "SpeedStream Ethernet Adapter",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_RT2870_2,
+ 0,
+ "Accton Technology",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_RT3070,
+ 0,
+ "Accton Technology",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_RT2770,
+ 0,
+ "Accton Technology",
+ "RT2770",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_RT2870_3,
+ 0,
+ "Accton Technology",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_RT2870_5,
+ 0,
+ "Accton Technology",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_RT3070_4,
+ 0,
+ "Accton Technology",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_RT2870_4,
+ 0,
+ "Accton Technology",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_RT3070_1,
+ 0,
+ "Accton Technology",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_RT3070_2,
+ 0,
+ "Accton Technology",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_RT2870_1,
+ 0,
+ "Accton Technology",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_RT3070_3,
+ 0,
+ "Accton Technology",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_RT3070_5,
+ 0,
+ "Accton Technology",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_ZD1211B,
+ 0,
+ "Accton Technology",
+ "ZD1211B",
+ },
+ {
+ USB_VENDOR_ACEECA, USB_PRODUCT_ACEECA_MEZ1000,
+ 0,
+ "Aceeca",
+ "MEZ1000 RDA",
+ },
+ {
+ USB_VENDOR_ACERCM, USB_PRODUCT_ACERCM_EP1427X2,
+ 0,
+ "Acer Communications & Multimedia",
+ "EP-1427X-2 Ethernet Adapter",
+ },
+ {
+ USB_VENDOR_ACERLABS, USB_PRODUCT_ACERLABS_M5632,
+ 0,
+ "Acer Labs",
+ "USB 2.0 Data Link",
+ },
+ {
+ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_C310U,
+ 0,
+ "Acer Peripherals",
+ "Acerscan C310U",
+ },
+ {
+ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_320U,
+ 0,
+ "Acer Peripherals",
+ "Acerscan 320U",
+ },
+ {
+ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_640U,
+ 0,
+ "Acer Peripherals",
+ "Acerscan 640U",
+ },
+ {
+ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_620U,
+ 0,
+ "Acer Peripherals",
+ "Acerscan 620U",
+ },
+ {
+ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_4300U,
+ 0,
+ "Acer Peripherals",
+ "Benq 3300U/4300U",
+ },
+ {
+ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_640BT,
+ 0,
+ "Acer Peripherals",
+ "Acerscan 640BT",
+ },
+ {
+ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_1240U,
+ 0,
+ "Acer Peripherals",
+ "Acerscan 1240U",
+ },
+ {
+ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_S81,
+ 0,
+ "Acer Peripherals",
+ "BenQ S81 phone",
+ },
+ {
+ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_H10,
+ 0,
+ "Acer Peripherals",
+ "AWL400 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ATAPI,
+ 0,
+ "Acer Peripherals",
+ "ATA/ATAPI Adapter",
+ },
+ {
+ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_AWL300,
+ 0,
+ "Acer Peripherals",
+ "AWL300 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_AWL400,
+ 0,
+ "Acer Peripherals",
+ "AWL400 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_ACERW, USB_PRODUCT_ACERW_WARPLINK,
+ 0,
+ "Acer",
+ "Warplink",
+ },
+ {
+ USB_VENDOR_ACTIONS, USB_PRODUCT_ACTIONS_MP4,
+ 0,
+ "Actions",
+ "Actions MP4 Player",
+ },
+ {
+ USB_VENDOR_ACTIONTEC, USB_PRODUCT_ACTIONTEC_PRISM_25,
+ 0,
+ "Actiontec Electronics",
+ "Prism2.5 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_ACTIONTEC, USB_PRODUCT_ACTIONTEC_PRISM_25A,
+ 0,
+ "Actiontec Electronics",
+ "Prism2.5 Wireless Adapter A",
+ },
+ {
+ USB_VENDOR_ACTIONTEC, USB_PRODUCT_ACTIONTEC_FREELAN,
+ 0,
+ "Actiontec Electronics",
+ "ROPEX FreeLan 802.11b",
+ },
+ {
+ USB_VENDOR_ACTIONTEC, USB_PRODUCT_ACTIONTEC_UAT1,
+ 0,
+ "Actiontec Electronics",
+ "UAT1 Wireless Ethernet Adapter",
+ },
+ {
+ USB_VENDOR_ACTISYS, USB_PRODUCT_ACTISYS_IR2000U,
+ 0,
+ "ACTiSYS",
+ "ACT-IR2000U FIR",
+ },
+ {
+ USB_VENDOR_ACTIVEWIRE, USB_PRODUCT_ACTIVEWIRE_IOBOARD,
+ 0,
+ "ActiveWire",
+ "I/O Board",
+ },
+ {
+ USB_VENDOR_ACTIVEWIRE, USB_PRODUCT_ACTIVEWIRE_IOBOARD_FW1,
+ 0,
+ "ActiveWire",
+ "I/O Board, rev. 1 firmware",
+ },
+ {
+ USB_VENDOR_ADAPTEC, USB_PRODUCT_ADAPTEC_AWN8020,
+ 0,
+ "Adaptec",
+ "AWN-8020 WLAN",
+ },
+ {
+ USB_VENDOR_ADDTRON, USB_PRODUCT_ADDTRON_AWU120,
+ 0,
+ "Addtron",
+ "AWU-120",
+ },
+ {
+ USB_VENDOR_ADLINK, USB_PRODUCT_ADLINK_ND6530,
+ 0,
+ "ADLINK Technoligy, Inc.",
+ "ND-6530 USB-Serial",
+ },
+ {
+ USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII_4,
+ 0,
+ "ADMtek",
+ "AN986A Ethernet",
+ },
+ {
+ USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUS,
+ 0,
+ "ADMtek",
+ "AN986 Ethernet",
+ },
+ {
+ USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII,
+ 0,
+ "ADMtek",
+ "AN8511 Ethernet",
+ },
+ {
+ USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII_2,
+ 0,
+ "ADMtek",
+ "AN8513 Ethernet",
+ },
+ {
+ USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII_3,
+ 0,
+ "ADMtek",
+ "AN8515 Ethernet",
+ },
+ {
+ USB_VENDOR_ADDON, USB_PRODUCT_ADDON_ATTACHE,
+ 0,
+ "Add-on Technology",
+ "USB 2.0 Flash Drive",
+ },
+ {
+ USB_VENDOR_ADDON, USB_PRODUCT_ADDON_ATTACHE,
+ 0,
+ "Add-on Technology",
+ "USB 2.0 Flash Drive",
+ },
+ {
+ USB_VENDOR_ADDON, USB_PRODUCT_ADDON_A256MB,
+ 0,
+ "Add-on Technology",
+ "Attache 256MB USB 2.0 Flash Drive",
+ },
+ {
+ USB_VENDOR_ADDON, USB_PRODUCT_ADDON_DISKPRO512,
+ 0,
+ "Add-on Technology",
+ "USB 2.0 Flash Drive (DANE-ELEC zMate 512MB USB flash drive)",
+ },
+ {
+ USB_VENDOR_ADDONICS2, USB_PRODUCT_ADDONICS2_CABLE_205,
+ 0,
+ "Addonics Technology",
+ "Cable 205",
+ },
+ {
+ USB_VENDOR_ADS, USB_PRODUCT_ADS_UBS10BT,
+ 0,
+ "ADS Technologies",
+ "UBS-10BT Ethernet",
+ },
+ {
+ USB_VENDOR_ADS, USB_PRODUCT_ADS_UBS10BTX,
+ 0,
+ "ADS Technologies",
+ "UBS-10BT Ethernet",
+ },
+ {
+ USB_VENDOR_AEI, USB_PRODUCT_AEI_FASTETHERNET,
+ 0,
+ "AEI",
+ "Fast Ethernet",
+ },
+ {
+ USB_VENDOR_AGATE, USB_PRODUCT_AGATE_QDRIVE,
+ 0,
+ "Agate Technologies",
+ "Q-Drive",
+ },
+ {
+ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U,
+ 0,
+ "AGFA-Gevaert",
+ "SnapScan 1212U",
+ },
+ {
+ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1236U,
+ 0,
+ "AGFA-Gevaert",
+ "SnapScan 1236U",
+ },
+ {
+ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANTOUCH,
+ 0,
+ "AGFA-Gevaert",
+ "SnapScan Touch",
+ },
+ {
+ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U2,
+ 0,
+ "AGFA-Gevaert",
+ "SnapScan 1212U",
+ },
+ {
+ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE40,
+ 0,
+ "AGFA-Gevaert",
+ "SnapScan e40",
+ },
+ {
+ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE50,
+ 0,
+ "AGFA-Gevaert",
+ "SnapScan e50",
+ },
+ {
+ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE20,
+ 0,
+ "AGFA-Gevaert",
+ "SnapScan e20",
+ },
+ {
+ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE25,
+ 0,
+ "AGFA-Gevaert",
+ "SnapScan e25",
+ },
+ {
+ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE26,
+ 0,
+ "AGFA-Gevaert",
+ "SnapScan e26",
+ },
+ {
+ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE52,
+ 0,
+ "AGFA-Gevaert",
+ "SnapScan e52",
+ },
+ {
+ USB_VENDOR_AINCOMM, USB_PRODUCT_AINCOMM_AWU2000B,
+ 0,
+ "Aincomm",
+ "AWU2000B Wireless Adapter",
+ },
+ {
+ USB_VENDOR_AIPTEK, USB_PRODUCT_AIPTEK_POCKETCAM3M,
+ 0,
+ "AIPTEK International",
+ "PocketCAM 3Mega",
+ },
+ {
+ USB_VENDOR_AIPTEK2, USB_PRODUCT_AIPTEK2_PENCAM_MEGA_1_3,
+ 0,
+ "AIPTEK International",
+ "PenCam Mega 1.3",
+ },
+ {
+ USB_VENDOR_AIPTEK2, USB_PRODUCT_AIPTEK2_SUNPLUS_TECH,
+ 0,
+ "AIPTEK International",
+ "Sunplus Technology Inc.",
+ },
+ {
+ USB_VENDOR_AIRPLUS, USB_PRODUCT_AIRPLUS_MCD650,
+ 0,
+ "Airplus",
+ "MCD650 modem",
+ },
+ {
+ USB_VENDOR_AIRPRIME, USB_PRODUCT_AIRPRIME_PC5220,
+ 0,
+ "AirPrime, Inc.",
+ "CDMA Wireless PC Card",
+ },
+ {
+ USB_VENDOR_AIRTIES, USB_PRODUCT_AIRTIES_RT3070,
+ 0,
+ "AirTies",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_AKS, USB_PRODUCT_AKS_USBHASP,
+ 0,
+ "Aladdin Knowledge Systems",
+ "USB-HASP 0.06",
+ },
+ {
+ USB_VENDOR_ALCATEL, USB_PRODUCT_ALCATEL_OT535,
+ 0,
+ "Alcatel",
+ "One Touch 535/735",
+ },
+ {
+ USB_VENDOR_ALCOR2, USB_PRODUCT_ALCOR2_KBD_HUB,
+ 0,
+ "Alcor Micro",
+ "Kbd Hub",
+ },
+ {
+ USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_SDCR_6335,
+ 0,
+ "Alcor Micro",
+ "SD/MMC Card Reader",
+ },
+ {
+ USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_SDCR_6362,
+ 0,
+ "Alcor Micro",
+ "SD/MMC Card Reader",
+ },
+ {
+ USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_TRANSCEND,
+ 0,
+ "Alcor Micro",
+ "Transcend JetFlash Drive",
+ },
+ {
+ USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_MA_KBD_HUB,
+ 0,
+ "Alcor Micro",
+ "MacAlly Kbd Hub",
+ },
+ {
+ USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_AU9814,
+ 0,
+ "Alcor Micro",
+ "AU9814 Hub",
+ },
+ {
+ USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_UMCR_9361,
+ 0,
+ "Alcor Micro",
+ "USB Multimedia Card Reader",
+ },
+ {
+ USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_SM_KBD,
+ 0,
+ "Alcor Micro",
+ "MicroConnectors/StrongMan Keyboard",
+ },
+ {
+ USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_NEC_KBD_HUB,
+ 0,
+ "Alcor Micro",
+ "NEC Kbd Hub",
+ },
+ {
+ USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_AU9720,
+ 0,
+ "Alcor Micro",
+ "USB2 - RS-232",
+ },
+ {
+ USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_AU6390,
+ 0,
+ "Alcor Micro",
+ "AU6390 USB-IDE converter",
+ },
+ {
+ USB_VENDOR_ALINK, USB_PRODUCT_ALINK_DWM652U5,
+ 0,
+ "Alink",
+ "DWM-652",
+ },
+ {
+ USB_VENDOR_ALINK, USB_PRODUCT_ALINK_3G,
+ 0,
+ "Alink",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_ALINK, USB_PRODUCT_ALINK_3GU,
+ 0,
+ "Alink",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ADA70,
+ 0,
+ "Altec Lansing",
+ "ADA70 Speakers",
+ },
+ {
+ USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ASC495,
+ 0,
+ "Altec Lansing",
+ "ASC495 Speakers",
+ },
+ {
+ USB_VENDOR_ALLIEDTELESYN, USB_PRODUCT_ALLIEDTELESYN_ATUSB100,
+ 0,
+ "Allied Telesyn International",
+ "AT-USB100",
+ },
+ {
+ USB_VENDOR_ALLWIN, USB_PRODUCT_ALLWIN_RT2070,
+ 0,
+ "ALLWIN Tech",
+ "RT2070",
+ },
+ {
+ USB_VENDOR_ALLWIN, USB_PRODUCT_ALLWIN_RT2770,
+ 0,
+ "ALLWIN Tech",
+ "RT2770",
+ },
+ {
+ USB_VENDOR_ALLWIN, USB_PRODUCT_ALLWIN_RT2870,
+ 0,
+ "ALLWIN Tech",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ALLWIN, USB_PRODUCT_ALLWIN_RT3070,
+ 0,
+ "ALLWIN Tech",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_ALLWIN, USB_PRODUCT_ALLWIN_RT3071,
+ 0,
+ "ALLWIN Tech",
+ "RT3071",
+ },
+ {
+ USB_VENDOR_ALLWIN, USB_PRODUCT_ALLWIN_RT3072,
+ 0,
+ "ALLWIN Tech",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_ALLWIN, USB_PRODUCT_ALLWIN_RT3572,
+ 0,
+ "ALLWIN Tech",
+ "RT3572",
+ },
+ {
+ USB_VENDOR_ALPHASMART, USB_PRODUCT_ALPHASMART_DANA_KB,
+ 0,
+ "AlphaSmart, Inc.",
+ "AlphaSmart Dana Keyboard",
+ },
+ {
+ USB_VENDOR_ALPHASMART, USB_PRODUCT_ALPHASMART_DANA_SYNC,
+ 0,
+ "AlphaSmart, Inc.",
+ "AlphaSmart Dana HotSync",
+ },
+ {
+ USB_VENDOR_AMOI, USB_PRODUCT_AMOI_H01,
+ 0,
+ "Amoi Electronics",
+ "H01 3G modem",
+ },
+ {
+ USB_VENDOR_AMOI, USB_PRODUCT_AMOI_H01A,
+ 0,
+ "Amoi Electronics",
+ "H01A 3G modem",
+ },
+ {
+ USB_VENDOR_AMOI, USB_PRODUCT_AMOI_H02,
+ 0,
+ "Amoi Electronics",
+ "H02 3G modem",
+ },
+ {
+ USB_VENDOR_APC, USB_PRODUCT_APC_UPS,
+ 0,
+ "American Power Conversion",
+ "Uninterruptible Power Supply",
+ },
+ {
+ USB_VENDOR_AMBIT, USB_PRODUCT_AMBIT_WLAN,
+ 0,
+ "Ambit Microsystems",
+ "WLAN",
+ },
+ {
+ USB_VENDOR_AMBIT, USB_PRODUCT_AMBIT_NTL_250,
+ 0,
+ "Ambit Microsystems",
+ "NTL 250 cable modem",
+ },
+ {
+ USB_VENDOR_APACER, USB_PRODUCT_APACER_HT202,
+ 0,
+ "Apacer",
+ "USB 2.0 Flash Drive",
+ },
+ {
+ USB_VENDOR_APC, USB_PRODUCT_APC_UPS,
+ 0,
+ "American Power Conversion",
+ "Uninterruptible Power Supply",
+ },
+ {
+ USB_VENDOR_AMIGO, USB_PRODUCT_AMIGO_RT2870_1,
+ 0,
+ "Amigo Technology",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_AMIGO, USB_PRODUCT_AMIGO_RT2870_2,
+ 0,
+ "Amigo Technology",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_AMIT, USB_PRODUCT_AMIT_CGWLUSB2GO,
+ 0,
+ "AMIT",
+ "CG-WLUSB2GO",
+ },
+ {
+ USB_VENDOR_AMIT, USB_PRODUCT_AMIT_CGWLUSB2GNR,
+ 0,
+ "AMIT",
+ "CG-WLUSB2GNR",
+ },
+ {
+ USB_VENDOR_AMIT, USB_PRODUCT_AMIT_RT2870_1,
+ 0,
+ "AMIT",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_AMIT2, USB_PRODUCT_AMIT2_RT2870,
+ 0,
+ "AMIT",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ANCHOR, USB_PRODUCT_ANCHOR_SERIAL,
+ 0,
+ "Anchor Chips",
+ "Serial",
+ },
+ {
+ USB_VENDOR_ANCHOR, USB_PRODUCT_ANCHOR_EZUSB,
+ 0,
+ "Anchor Chips",
+ "EZUSB",
+ },
+ {
+ USB_VENDOR_ANCHOR, USB_PRODUCT_ANCHOR_EZLINK,
+ 0,
+ "Anchor Chips",
+ "EZLINK",
+ },
+ {
+ USB_VENDOR_ANYDATA, USB_PRODUCT_ANYDATA_ADU_620UW,
+ 0,
+ "AnyDATA Corporation",
+ "CDMA 2000 EV-DO USB Modem",
+ },
+ {
+ USB_VENDOR_ANYDATA, USB_PRODUCT_ANYDATA_ADU_E100X,
+ 0,
+ "AnyDATA Corporation",
+ "CDMA 2000 1xRTT/EV-DO USB Modem",
+ },
+ {
+ USB_VENDOR_ANYDATA, USB_PRODUCT_ANYDATA_ADU_500A,
+ 0,
+ "AnyDATA Corporation",
+ "CDMA 2000 EV-DO USB Modem",
+ },
+ {
+ USB_VENDOR_AOX, USB_PRODUCT_AOX_USB101,
+ 0,
+ "AOX",
+ "Ethernet",
+ },
+ {
+ USB_VENDOR_APC, USB_PRODUCT_APC_UPS,
+ 0,
+ "American Power Conversion",
+ "Uninterruptible Power Supply",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IMAC_KBD,
+ 0,
+ "Apple Computer",
+ "USB iMac Keyboard",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_KBD,
+ 0,
+ "Apple Computer",
+ "USB Keyboard M2452",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_EXT_KBD,
+ 0,
+ "Apple Computer",
+ "Apple Extended USB Keyboard",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_KBD_TP_ANSI,
+ 0,
+ "Apple Computer",
+ "Apple Internal Keyboard/Trackpad (Wellspring/ANSI)",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_KBD_TP_ISO,
+ 0,
+ "Apple Computer",
+ "Apple Internal Keyboard/Trackpad (Wellspring/ISO)",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_KBD_TP_JIS,
+ 0,
+ "Apple Computer",
+ "Apple Internal Keyboard/Trackpad (Wellspring/JIS)",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_KBD_TP_ANSI2,
+ 0,
+ "Apple Computer",
+ "Apple Internal Keyboard/Trackpad (Wellspring2/ANSI)",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_KBD_TP_ISO2,
+ 0,
+ "Apple Computer",
+ "Apple Internal Keyboard/Trackpad (Wellspring2/ISO)",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_KBD_TP_JIS2,
+ 0,
+ "Apple Computer",
+ "Apple Internal Keyboard/Trackpad (Wellspring2/JIS)",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_MOUSE,
+ 0,
+ "Apple Computer",
+ "Mouse M4848",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_OPTMOUSE,
+ 0,
+ "Apple Computer",
+ "Optical mouse",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_MIGHTYMOUSE,
+ 0,
+ "Apple Computer",
+ "Mighty Mouse",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_KBD_HUB,
+ 0,
+ "Apple Computer",
+ "Hub in Apple USB Keyboard",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_EXT_KBD_HUB,
+ 0,
+ "Apple Computer",
+ "Hub in Apple Extended USB Keyboard",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_SPEAKERS,
+ 0,
+ "Apple Computer",
+ "Speakers",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD,
+ 0,
+ "Apple Computer",
+ "iPod",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD2G,
+ 0,
+ "Apple Computer",
+ "iPod 2G",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD3G,
+ 0,
+ "Apple Computer",
+ "iPod 3G",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_04,
+ 0,
+ "Apple Computer",
+ "iPod '04'",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPODMINI,
+ 0,
+ "Apple Computer",
+ "iPod Mini",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_06,
+ 0,
+ "Apple Computer",
+ "iPod '06'",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_07,
+ 0,
+ "Apple Computer",
+ "iPod '07'",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_08,
+ 0,
+ "Apple Computer",
+ "iPod '08'",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPODVIDEO,
+ 0,
+ "Apple Computer",
+ "iPod Video",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPODNANO,
+ 0,
+ "Apple Computer",
+ "iPod Nano",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE,
+ 0,
+ "Apple Computer",
+ "iPhone",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_TOUCH,
+ 0,
+ "Apple Computer",
+ "iPod Touch",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE_3G,
+ 0,
+ "Apple Computer",
+ "iPhone 3G",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE_3GS,
+ 0,
+ "Apple Computer",
+ "iPhone 3GS",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE_4,
+ 0,
+ "Apple Computer",
+ "iPhone 4",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPAD,
+ 0,
+ "Apple Computer",
+ "iPad",
+ },
+ {
+ USB_VENDOR_APPLE, USB_PRODUCT_APPLE_ETHERNET,
+ 0,
+ "Apple Computer",
+ "Ethernet A1277",
+ },
+ {
+ USB_VENDOR_ARKMICRO, USB_PRODUCT_ARKMICRO_ARK3116,
+ 0,
+ "Arkmicro Technologies Inc.",
+ "ARK3116 Serial",
+ },
+ {
+ USB_VENDOR_ASAHIOPTICAL, USB_PRODUCT_ASAHIOPTICAL_OPTIO230,
+ 0,
+ "Asahi Optical",
+ "Digital camera",
+ },
+ {
+ USB_VENDOR_ASAHIOPTICAL, USB_PRODUCT_ASAHIOPTICAL_OPTIO330,
+ 0,
+ "Asahi Optical",
+ "Digital camera",
+ },
+ {
+ USB_VENDOR_ASANTE, USB_PRODUCT_ASANTE_EA,
+ 0,
+ "Asante",
+ "Ethernet",
+ },
+ {
+ USB_VENDOR_ASIX, USB_PRODUCT_ASIX_AX88172,
+ 0,
+ "ASIX Electronics",
+ "10/100 Ethernet",
+ },
+ {
+ USB_VENDOR_ASIX, USB_PRODUCT_ASIX_AX88178,
+ 0,
+ "ASIX Electronics",
+ "AX88178",
+ },
+ {
+ USB_VENDOR_ASIX, USB_PRODUCT_ASIX_AX88772,
+ 0,
+ "ASIX Electronics",
+ "AX88772",
+ },
+ {
+ USB_VENDOR_ASIX, USB_PRODUCT_ASIX_AX88772A,
+ 0,
+ "ASIX Electronics",
+ "AX88772A USB 2.0 10/100 Ethernet",
+ },
+ {
+ USB_VENDOR_ASUS2, USB_PRODUCT_ASUS2_USBN11,
+ 0,
+ "ASUS",
+ "USB-N11",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_WL167G,
+ 0,
+ "ASUSTeK Computer",
+ "WL-167g Wireless Adapter",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_WL159G,
+ 0,
+ "ASUSTeK Computer",
+ "WL-159g",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_A9T_WIFI,
+ 0,
+ "ASUSTeK Computer",
+ "A9T wireless",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_P5B_WIFI,
+ 0,
+ "ASUSTeK Computer",
+ "P5B wireless",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_RT2573_1,
+ 0,
+ "ASUSTeK Computer",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_RT2573_2,
+ 0,
+ "ASUSTeK Computer",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_LCM,
+ 0,
+ "ASUSTeK Computer",
+ "LCM display",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_RT2870_1,
+ 0,
+ "ASUSTeK Computer",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_RT2870_2,
+ 0,
+ "ASUSTeK Computer",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_RT2870_3,
+ 0,
+ "ASUSTeK Computer",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_RT2870_4,
+ 0,
+ "ASUSTeK Computer",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_RT2870_5,
+ 0,
+ "ASUSTeK Computer",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_USBN13,
+ 0,
+ "ASUSTeK Computer",
+ "USB-N13",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_RT3070_1,
+ 0,
+ "ASUSTeK Computer",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_A730W,
+ 0,
+ "ASUSTeK Computer",
+ "ASUS MyPal A730W",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_P535,
+ 0,
+ "ASUSTeK Computer",
+ "ASUS P535 PDA",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_GMSC,
+ 0,
+ "ASUSTeK Computer",
+ "ASUS Generic Mass Storage",
+ },
+ {
+ USB_VENDOR_ASUS, USB_PRODUCT_ASUS_RT2570,
+ 0,
+ "ASUSTeK Computer",
+ "RT2500USB Wireless Adapter",
+ },
+ {
+ USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC1284,
+ 0,
+ "ATEN International",
+ "Parallel printer",
+ },
+ {
+ USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC10T,
+ 0,
+ "ATEN International",
+ "10Mbps Ethernet",
+ },
+ {
+ USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC110T,
+ 0,
+ "ATEN International",
+ "UC-110T Ethernet",
+ },
+ {
+ USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC232A,
+ 0,
+ "ATEN International",
+ "Serial",
+ },
+ {
+ USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC210T,
+ 0,
+ "ATEN International",
+ "UC-210T Ethernet",
+ },
+ {
+ USB_VENDOR_ATEN, USB_PRODUCT_ATEN_DSB650C,
+ 0,
+ "ATEN International",
+ "DSB-650C",
+ },
+ {
+ USB_VENDOR_ATHEROS, USB_PRODUCT_ATHEROS_AR5523,
+ 0,
+ "Atheros Communications",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_ATHEROS, USB_PRODUCT_ATHEROS_AR5523_NF,
+ 0,
+ "Atheros Communications",
+ "AR5523 (no firmware)",
+ },
+ {
+ USB_VENDOR_ATHEROS2, USB_PRODUCT_ATHEROS2_AR5523_1,
+ 0,
+ "Atheros Communications",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_ATHEROS2, USB_PRODUCT_ATHEROS2_AR5523_1_NF,
+ 0,
+ "Atheros Communications",
+ "AR5523 (no firmware)",
+ },
+ {
+ USB_VENDOR_ATHEROS2, USB_PRODUCT_ATHEROS2_AR5523_2,
+ 0,
+ "Atheros Communications",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_ATHEROS2, USB_PRODUCT_ATHEROS2_AR5523_2_NF,
+ 0,
+ "Atheros Communications",
+ "AR5523 (no firmware)",
+ },
+ {
+ USB_VENDOR_ATHEROS2, USB_PRODUCT_ATHEROS2_AR5523_3,
+ 0,
+ "Atheros Communications",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_ATHEROS2, USB_PRODUCT_ATHEROS2_AR5523_3_NF,
+ 0,
+ "Atheros Communications",
+ "AR5523 (no firmware)",
+ },
+ {
+ USB_VENDOR_ATMEL, USB_PRODUCT_ATMEL_STK541,
+ 0,
+ "Atmel",
+ "Zigbee Controller",
+ },
+ {
+ USB_VENDOR_ATMEL, USB_PRODUCT_ATMEL_UHB124,
+ 0,
+ "Atmel",
+ "UHB124 hub",
+ },
+ {
+ USB_VENDOR_ATMEL, USB_PRODUCT_ATMEL_DWL120,
+ 0,
+ "Atmel",
+ "DWL-120 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_ATMEL, USB_PRODUCT_ATMEL_BW002,
+ 0,
+ "Atmel",
+ "BW002 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_ATMEL, USB_PRODUCT_ATMEL_WL1130USB,
+ 0,
+ "Atmel",
+ "WL-1130 USB",
+ },
+ {
+ USB_VENDOR_ATMEL, USB_PRODUCT_ATMEL_AT76C505A,
+ 0,
+ "Atmel",
+ "AT76c505a Wireless Adapter",
+ },
+ {
+ USB_VENDOR_AUTHENTEC, USB_PRODUCT_AUTHENTEC_AES1610,
+ 0,
+ "AuthenTec",
+ "AES1610 Fingerprint Sensor",
+ },
+ {
+ USB_VENDOR_AVISION, USB_PRODUCT_AVISION_1200U,
+ 0,
+ "Avision",
+ "1200U scanner",
+ },
+ {
+ USB_VENDOR_AXESSTEL, USB_PRODUCT_AXESSTEL_DATAMODEM,
+ 0,
+ "Axesstel Co., Ltd.",
+ "Data Modem",
+ },
+ {
+ USB_VENDOR_AZUREWAVE, USB_PRODUCT_AZUREWAVE_RT2870_1,
+ 0,
+ "AsureWave",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_AZUREWAVE, USB_PRODUCT_AZUREWAVE_RT2870_2,
+ 0,
+ "AsureWave",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_AZUREWAVE, USB_PRODUCT_AZUREWAVE_RT3070_1,
+ 0,
+ "AsureWave",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_AZUREWAVE, USB_PRODUCT_AZUREWAVE_RT3070_2,
+ 0,
+ "AsureWave",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_AZUREWAVE, USB_PRODUCT_AZUREWAVE_RT3070_3,
+ 0,
+ "AsureWave",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_BALTECH, USB_PRODUCT_BALTECH_CARDREADER,
+ 0,
+ "Baltech",
+ "Card reader",
+ },
+ {
+ USB_VENDOR_BBELECTRONICS, USB_PRODUCT_BBELECTRONICS_USOTL4,
+ 0,
+ "B&B Electronics",
+ "RS-422/485",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D6050,
+ 0,
+ "Belkin Components",
+ "F5D6050 802.11b Wireless Adapter",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_FBT001V,
+ 0,
+ "Belkin Components",
+ "FBT001v2 Bluetooth",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_FBT003V,
+ 0,
+ "Belkin Components",
+ "FBT003v2 Bluetooth",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U103,
+ 0,
+ "Belkin Components",
+ "F5U103 Serial",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U109,
+ 0,
+ "Belkin Components",
+ "F5U109 Serial",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_USB2SCSI,
+ 0,
+ "Belkin Components",
+ "USB to SCSI",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F8T012,
+ 0,
+ "Belkin Components",
+ "F8T012xx1 Bluetooth USB Adapter",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_USB2LAN,
+ 0,
+ "Belkin Components",
+ "USB to LAN",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U208,
+ 0,
+ "Belkin Components",
+ "F5U208 VideoBus II",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U237,
+ 0,
+ "Belkin Components",
+ "F5U237 USB 2.0 7-Port Hub",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U257,
+ 0,
+ "Belkin Components",
+ "F5U257 Serial",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U409,
+ 0,
+ "Belkin Components",
+ "F5U409 Serial",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR,
+ 0,
+ "Belkin Components",
+ "F6C550-AVR UPS",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U120,
+ 0,
+ "Belkin Components",
+ "F5U120-PC Hub",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_ZD1211B,
+ 0,
+ "Belkin Components",
+ "ZD1211B",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D5055,
+ 0,
+ "Belkin Components",
+ "F5D5055",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D7050,
+ 0,
+ "Belkin Components",
+ "F5D7050 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D7051,
+ 0,
+ "Belkin Components",
+ "F5D7051 54g USB Network Adapter",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D7050A,
+ 0,
+ "Belkin Components",
+ "F5D7050A Wireless Adapter",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D7050_V4000,
+ 0,
+ "Belkin Components",
+ "F5D7050 v4000 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D7050E,
+ 0,
+ "Belkin Components",
+ "F5D7050E Wireless Adapter",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_RT2870_1,
+ 0,
+ "Belkin Components",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_RT2870_2,
+ 0,
+ "Belkin Components",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D8053V3,
+ 0,
+ "Belkin Components",
+ "F5D8053 v3",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D8055,
+ 0,
+ "Belkin Components",
+ "F5D8055",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D9050V3,
+ 0,
+ "Belkin Components",
+ "F5D9050 ver 3 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_BELKIN2, USB_PRODUCT_BELKIN2_F5U002,
+ 0,
+ "Belkin Components",
+ "F5U002 Parallel printer",
+ },
+ {
+ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6D4050V1,
+ 0,
+ "Belkin Components",
+ "F6D4050 v1",
+ },
+ {
+ USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USB100,
+ 0,
+ "Billionton Systems",
+ "USB100N 10/100 FastEthernet",
+ },
+ {
+ USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBLP100,
+ 0,
+ "Billionton Systems",
+ "USB100LP",
+ },
+ {
+ USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBEL100,
+ 0,
+ "Billionton Systems",
+ "USB100EL",
+ },
+ {
+ USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBE100,
+ 0,
+ "Billionton Systems",
+ "USBE100",
+ },
+ {
+ USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USB2AR,
+ 0,
+ "Billionton Systems",
+ "USB2AR Ethernet",
+ },
+ {
+ USB_VENDOR_BROADCOM, USB_PRODUCT_BROADCOM_BCM2033,
+ 0,
+ "Broadcom",
+ "BCM2033 Bluetooth USB dongle",
+ },
+ {
+ USB_VENDOR_BROTHER, USB_PRODUCT_BROTHER_HL1050,
+ 0,
+ "Brother Industries",
+ "HL-1050 laser printer",
+ },
+ {
+ USB_VENDOR_BROTHER, USB_PRODUCT_BROTHER_MFC8600_9650,
+ 0,
+ "Brother Industries",
+ "MFC8600/9650 multifunction device",
+ },
+ {
+ USB_VENDOR_BTC, USB_PRODUCT_BTC_BTC6100,
+ 0,
+ "Behavior Tech. Computer",
+ "6100C Keyboard",
+ },
+ {
+ USB_VENDOR_BTC, USB_PRODUCT_BTC_BTC7932,
+ 0,
+ "Behavior Tech. Computer",
+ "Keyboard with mouse port",
+ },
+ {
+ USB_VENDOR_CANON, USB_PRODUCT_CANON_N656U,
+ 0,
+ "Canon",
+ "CanoScan N656U",
+ },
+ {
+ USB_VENDOR_CANON, USB_PRODUCT_CANON_N1220U,
+ 0,
+ "Canon",
+ "CanoScan N1220U",
+ },
+ {
+ USB_VENDOR_CANON, USB_PRODUCT_CANON_D660U,
+ 0,
+ "Canon",
+ "CanoScan D660U",
+ },
+ {
+ USB_VENDOR_CANON, USB_PRODUCT_CANON_N676U,
+ 0,
+ "Canon",
+ "CanoScan N676U",
+ },
+ {
+ USB_VENDOR_CANON, USB_PRODUCT_CANON_N1240U,
+ 0,
+ "Canon",
+ "CanoScan N1240U",
+ },
+ {
+ USB_VENDOR_CANON, USB_PRODUCT_CANON_LIDE25,
+ 0,
+ "Canon",
+ "CanoScan LIDE 25",
+ },
+ {
+ USB_VENDOR_CANON, USB_PRODUCT_CANON_S10,
+ 0,
+ "Canon",
+ "PowerShot S10",
+ },
+ {
+ USB_VENDOR_CANON, USB_PRODUCT_CANON_S100,
+ 0,
+ "Canon",
+ "PowerShot S100",
+ },
+ {
+ USB_VENDOR_CANON, USB_PRODUCT_CANON_S200,
+ 0,
+ "Canon",
+ "PowerShot S200",
+ },
+ {
+ USB_VENDOR_CANON, USB_PRODUCT_CANON_REBELXT,
+ 0,
+ "Canon",
+ "Digital Rebel XT",
+ },
+ {
+ USB_VENDOR_CATC, USB_PRODUCT_CATC_NETMATE,
+ 0,
+ "Computer Access Technology",
+ "Netmate Ethernet",
+ },
+ {
+ USB_VENDOR_CATC, USB_PRODUCT_CATC_NETMATE2,
+ 0,
+ "Computer Access Technology",
+ "Netmate2 Ethernet",
+ },
+ {
+ USB_VENDOR_CATC, USB_PRODUCT_CATC_CHIEF,
+ 0,
+ "Computer Access Technology",
+ "USB Chief Bus & Protocol Analyzer",
+ },
+ {
+ USB_VENDOR_CATC, USB_PRODUCT_CATC_ANDROMEDA,
+ 0,
+ "Computer Access Technology",
+ "Andromeda hub",
+ },
+ {
+ USB_VENDOR_CASIO, USB_PRODUCT_CASIO_QV_DIGICAM,
+ 0,
+ "CASIO",
+ "QV DigiCam",
+ },
+ {
+ USB_VENDOR_CASIO, USB_PRODUCT_CASIO_EXS880,
+ 0,
+ "CASIO",
+ "Exilim EX-S880",
+ },
+ {
+ USB_VENDOR_CASIO, USB_PRODUCT_CASIO_BE300,
+ 0,
+ "CASIO",
+ "BE-300 PDA",
+ },
+ {
+ USB_VENDOR_CASIO, USB_PRODUCT_CASIO_NAMELAND,
+ 0,
+ "CASIO",
+ "CASIO Nameland EZ-USB",
+ },
+ {
+ USB_VENDOR_CCYU, USB_PRODUCT_CCYU_ED1064,
+ 0,
+ "CCYU Technology",
+ "EasyDisk ED1064",
+ },
+ {
+ USB_VENDOR_CENTURY, USB_PRODUCT_CENTURY_EX35QUAT,
+ 0,
+ "Century Corp",
+ "Century USB Disk Enclosure",
+ },
+ {
+ USB_VENDOR_CENTURY, USB_PRODUCT_CENTURY_EX35SW4_SB4,
+ 0,
+ "Century Corp",
+ "Century USB Disk Enclosure",
+ },
+ {
+ USB_VENDOR_CHERRY, USB_PRODUCT_CHERRY_MY3000KBD,
+ 0,
+ "Cherry Mikroschalter",
+ "My3000 keyboard",
+ },
+ {
+ USB_VENDOR_CHERRY, USB_PRODUCT_CHERRY_MY3000HUB,
+ 0,
+ "Cherry Mikroschalter",
+ "My3000 hub",
+ },
+ {
+ USB_VENDOR_CHERRY, USB_PRODUCT_CHERRY_CYBOARD,
+ 0,
+ "Cherry Mikroschalter",
+ "CyBoard Keyboard",
+ },
+ {
+ USB_VENDOR_CHIC, USB_PRODUCT_CHIC_MOUSE1,
+ 0,
+ "Chic Technology",
+ "mouse",
+ },
+ {
+ USB_VENDOR_CHIC, USB_PRODUCT_CHIC_CYPRESS,
+ 0,
+ "Chic Technology",
+ "Cypress USB Mouse",
+ },
+ {
+ USB_VENDOR_CHICONY, USB_PRODUCT_CHICONY_KB8933,
+ 0,
+ "Chicony Electronics",
+ "KB-8933 keyboard",
+ },
+ {
+ USB_VENDOR_CHICONY, USB_PRODUCT_CHICONY_KU0325,
+ 0,
+ "Chicony Electronics",
+ "KU-0325 keyboard",
+ },
+ {
+ USB_VENDOR_CHICONY, USB_PRODUCT_CHICONY_CNF7129,
+ 0,
+ "Chicony Electronics",
+ "Notebook Web Camera",
+ },
+ {
+ USB_VENDOR_CHICONY2, USB_PRODUCT_CHICONY2_TWINKLECAM,
+ 0,
+ "Chicony",
+ "TwinkleCam USB camera",
+ },
+ {
+ USB_VENDOR_CHPRODUCTS, USB_PRODUCT_CHPRODUCTS_PROTHROTTLE,
+ 0,
+ "CH Products",
+ "Pro Throttle",
+ },
+ {
+ USB_VENDOR_CHPRODUCTS, USB_PRODUCT_CHPRODUCTS_PROPEDALS,
+ 0,
+ "CH Products",
+ "Pro Pedals",
+ },
+ {
+ USB_VENDOR_CHPRODUCTS, USB_PRODUCT_CHPRODUCTS_FIGHTERSTICK,
+ 0,
+ "CH Products",
+ "Fighterstick",
+ },
+ {
+ USB_VENDOR_CHPRODUCTS, USB_PRODUCT_CHPRODUCTS_FLIGHTYOKE,
+ 0,
+ "CH Products",
+ "Flight Sim Yoke",
+ },
+ {
+ USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_WUSB54AG,
+ 0,
+ "Cisco-Linksys",
+ "WUSB54AG Wireless Adapter",
+ },
+ {
+ USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_WUSB54G,
+ 0,
+ "Cisco-Linksys",
+ "WUSB54G Wireless Adapter",
+ },
+ {
+ USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_WUSB54GP,
+ 0,
+ "Cisco-Linksys",
+ "WUSB54GP Wireless Adapter",
+ },
+ {
+ USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_USB200MV2,
+ 0,
+ "Cisco-Linksys",
+ "USB200M v2",
+ },
+ {
+ USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_HU200TS,
+ 0,
+ "Cisco-Linksys",
+ "HU200TS Wireless Adapter",
+ },
+ {
+ USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_WUSB54GC,
+ 0,
+ "Cisco-Linksys",
+ "WUSB54GC",
+ },
+ {
+ USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_WUSB54GR,
+ 0,
+ "Cisco-Linksys",
+ "WUSB54GR",
+ },
+ {
+ USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_WUSBF54G,
+ 0,
+ "Cisco-Linksys",
+ "WUSBF54G",
+ },
+ {
+ USB_VENDOR_CISCOLINKSYS2, USB_PRODUCT_CISCOLINKSYS2_RT3070,
+ 0,
+ "Cisco-Linksys",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_CISCOLINKSYS3, USB_PRODUCT_CISCOLINKSYS3_RT3070,
+ 0,
+ "Cisco-Linksys",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_CLIPSAL, USB_PRODUCT_CLIPSAL_5500PCU,
+ 0,
+ "Clipsal",
+ "5500PCU C-Bus",
+ },
+ {
+ USB_VENDOR_CMOTECH, USB_PRODUCT_CMOTECH_CNU510,
+ 0,
+ "C-motech",
+ "CDMA Technologies USB modem",
+ },
+ {
+ USB_VENDOR_CMOTECH, USB_PRODUCT_CMOTECH_CNU550,
+ 0,
+ "C-motech",
+ "CDMA 2000 1xRTT/1xEVDO USB modem",
+ },
+ {
+ USB_VENDOR_CMOTECH, USB_PRODUCT_CMOTECH_CGU628,
+ 0,
+ "C-motech",
+ "CGU-628",
+ },
+ {
+ USB_VENDOR_CMOTECH, USB_PRODUCT_CMOTECH_CDMA_MODEM1,
+ 0,
+ "C-motech",
+ "CDMA Technologies USB modem",
+ },
+ {
+ USB_VENDOR_CMOTECH, USB_PRODUCT_CMOTECH_DISK,
+ 0,
+ "C-motech",
+ "disk mode",
+ },
+ {
+ USB_VENDOR_COMPAQ, USB_PRODUCT_COMPAQ_IPAQPOCKETPC,
+ 0,
+ "Compaq",
+ "iPAQ PocketPC",
+ },
+ {
+ USB_VENDOR_COMPAQ, USB_PRODUCT_COMPAQ_PJB100,
+ 0,
+ "Compaq",
+ "Personal Jukebox PJB100",
+ },
+ {
+ USB_VENDOR_COMPAQ, USB_PRODUCT_COMPAQ_IPAQLINUX,
+ 0,
+ "Compaq",
+ "iPAQ Linux",
+ },
+ {
+ USB_VENDOR_COMPOSITE, USB_PRODUCT_COMPOSITE_USBPS2,
+ 0,
+ "Composite",
+ "USB to PS2 Adaptor",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC, USB_PRODUCT_CONCEPTRONIC_PRISM_GT,
+ 0,
+ "Conceptronic",
+ "PrismGT USB 2.0 WLAN",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC, USB_PRODUCT_CONCEPTRONIC_C11U,
+ 0,
+ "Conceptronic",
+ "C11U",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC, USB_PRODUCT_CONCEPTRONIC_WL210,
+ 0,
+ "Conceptronic",
+ "WL-210",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC, USB_PRODUCT_CONCEPTRONIC_AR5523_1,
+ 0,
+ "Conceptronic",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC, USB_PRODUCT_CONCEPTRONIC_AR5523_1_NF,
+ 0,
+ "Conceptronic",
+ "AR5523 (no firmware)",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC, USB_PRODUCT_CONCEPTRONIC_AR5523_2,
+ 0,
+ "Conceptronic",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC, USB_PRODUCT_CONCEPTRONIC_AR5523_2_NF,
+ 0,
+ "Conceptronic",
+ "AR5523 (no firmware)",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_C54RU,
+ 0,
+ "Conceptronic",
+ "C54RU WLAN",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_C54RU2,
+ 0,
+ "Conceptronic",
+ "C54RU",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_RT3070_1,
+ 0,
+ "Conceptronic",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_RT3070_2,
+ 0,
+ "Conceptronic",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_VIGORN61,
+ 0,
+ "Conceptronic",
+ "VIGORN61",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_RT2870_1,
+ 0,
+ "Conceptronic",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_RT2870_2,
+ 0,
+ "Conceptronic",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_RT2870_7,
+ 0,
+ "Conceptronic",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_RT2870_8,
+ 0,
+ "Conceptronic",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_RT2870_3,
+ 0,
+ "Conceptronic",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_RT2870_4,
+ 0,
+ "Conceptronic",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_RT2870_5,
+ 0,
+ "Conceptronic",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_RT2870_6,
+ 0,
+ "Conceptronic",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_CONNECTIX, USB_PRODUCT_CONNECTIX_QUICKCAM,
+ 0,
+ "Connectix",
+ "QuickCam",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_ETHER_USB_T,
+ 0,
+ "Corega",
+ "Ether USB-T",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TX,
+ 0,
+ "Corega",
+ "FEther USB-TX",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_WLAN_USB_USB_11,
+ 0,
+ "Corega",
+ "WirelessLAN USB-11",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TXS,
+ 0,
+ "Corega",
+ "FEther USB-TXS",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_WLANUSB,
+ 0,
+ "Corega",
+ "Wireless LAN Stick-11",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB2_TX,
+ 0,
+ "Corega",
+ "FEther USB2-TX",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_WLUSB_11_KEY,
+ 0,
+ "Corega",
+ "ULUSB-11 Key",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_CGUSBRS232R,
+ 0,
+ "Corega",
+ "CG-USBRS232R",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_CGWLUSB2GL,
+ 0,
+ "Corega",
+ "CG-WLUSB2GL",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_CGWLUSB2GPX,
+ 0,
+ "Corega",
+ "CG-WLUSB2GPX",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_RT2870_1,
+ 0,
+ "Corega",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_RT2870_2,
+ 0,
+ "Corega",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_RT2870_3,
+ 0,
+ "Corega",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_RT3070,
+ 0,
+ "Corega",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_CGWLUSB300GNM,
+ 0,
+ "Corega",
+ "CG-WLUSB300GNM",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_WLUSB_11_STICK,
+ 0,
+ "Corega",
+ "WLAN USB Stick 11",
+ },
+ {
+ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TXC,
+ 0,
+ "Corega",
+ "FEther USB-TXC",
+ },
+ {
+ USB_VENDOR_CREATIVE, USB_PRODUCT_CREATIVE_NOMAD_II,
+ 0,
+ "Creative Labs",
+ "Nomad II MP3 player",
+ },
+ {
+ USB_VENDOR_CREATIVE, USB_PRODUCT_CREATIVE_NOMAD_IIMG,
+ 0,
+ "Creative Labs",
+ "Nomad II MG",
+ },
+ {
+ USB_VENDOR_CREATIVE, USB_PRODUCT_CREATIVE_NOMAD,
+ 0,
+ "Creative Labs",
+ "Nomad",
+ },
+ {
+ USB_VENDOR_CREATIVE2, USB_PRODUCT_CREATIVE2_VOIP_BLASTER,
+ 0,
+ "Creative Labs",
+ "Voip Blaster",
+ },
+ {
+ USB_VENDOR_CREATIVE3, USB_PRODUCT_CREATIVE3_OPTICAL_MOUSE,
+ 0,
+ "Creative Labs",
+ "Notebook Optical Mouse",
+ },
+ {
+ USB_VENDOR_CSR, USB_PRODUCT_CSR_BT_DONGLE,
+ 0,
+ "Cambridge Silicon Radio",
+ "Bluetooth USB dongle",
+ },
+ {
+ USB_VENDOR_CSR, USB_PRODUCT_CSR_CSRDFU,
+ 0,
+ "Cambridge Silicon Radio",
+ "USB Bluetooth Device in DFU State",
+ },
+ {
+ USB_VENDOR_CHIPSBANK, USB_PRODUCT_CHIPSBANK_USBMEMSTICK,
+ 0,
+ "Chipsbank Microelectronics Co.",
+ "CBM2080 Flash drive controller",
+ },
+ {
+ USB_VENDOR_CHIPSBANK, USB_PRODUCT_CHIPSBANK_USBMEMSTICK1,
+ 0,
+ "Chipsbank Microelectronics Co.",
+ "CBM1180 Flash drive controller",
+ },
+ {
+ USB_VENDOR_CTX, USB_PRODUCT_CTX_EX1300,
+ 0,
+ "Chuntex",
+ "Ex1300 hub",
+ },
+ {
+ USB_VENDOR_CURITEL, USB_PRODUCT_CURITEL_HX550C,
+ 0,
+ "Curitel Communications Inc",
+ "CDMA 2000 1xRTT USB modem (HX-550C)",
+ },
+ {
+ USB_VENDOR_CURITEL, USB_PRODUCT_CURITEL_HX57XB,
+ 0,
+ "Curitel Communications Inc",
+ "CDMA 2000 1xRTT USB modem (HX-570/575B/PR-600)",
+ },
+ {
+ USB_VENDOR_CURITEL, USB_PRODUCT_CURITEL_PC5740,
+ 0,
+ "Curitel Communications Inc",
+ "Broadband Wireless modem",
+ },
+ {
+ USB_VENDOR_CURITEL, USB_PRODUCT_CURITEL_UM175,
+ 0,
+ "Curitel Communications Inc",
+ "EVDO modem",
+ },
+ {
+ USB_VENDOR_CYBERPOWER, USB_PRODUCT_CYBERPOWER_1500CAVRLCD,
+ 0,
+ "Cyber Power Systems, Inc.",
+ "1500CAVRLCD",
+ },
+ {
+ USB_VENDOR_CYBERTAN, USB_PRODUCT_CYBERTAN_TG54USB,
+ 0,
+ "CyberTAN Technology",
+ "TG54USB",
+ },
+ {
+ USB_VENDOR_CYBERTAN, USB_PRODUCT_CYBERTAN_RT2870,
+ 0,
+ "CyberTAN Technology",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_MOUSE,
+ 0,
+ "Cypress Semiconductor",
+ "mouse",
+ },
+ {
+ USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_THERMO,
+ 0,
+ "Cypress Semiconductor",
+ "thermometer",
+ },
+ {
+ USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_WISPY1A,
+ 0,
+ "Cypress Semiconductor",
+ "MetaGeek Wi-Spy",
+ },
+ {
+ USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_KBDHUB,
+ 0,
+ "Cypress Semiconductor",
+ "Keyboard/Hub",
+ },
+ {
+ USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_FMRADIO,
+ 0,
+ "Cypress Semiconductor",
+ "FM Radio",
+ },
+ {
+ USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_IKARILASER,
+ 0,
+ "Cypress Semiconductor",
+ "Ikari Laser SteelSeries ApS",
+ },
+ {
+ USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_USBRS232,
+ 0,
+ "Cypress Semiconductor",
+ "USB-RS232 Interface",
+ },
+ {
+ USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_SLIM_HUB,
+ 0,
+ "Cypress Semiconductor",
+ "Slim Hub",
+ },
+ {
+ USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_XX6830XX,
+ 0,
+ "Cypress Semiconductor",
+ "PATA Storage Device",
+ },
+ {
+ USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_SILVERSHIELD,
+ 0,
+ "Cypress Semiconductor",
+ "Gembird Silver Shield PM",
+ },
+ {
+ USB_VENDOR_DAISY, USB_PRODUCT_DAISY_DMC,
+ 0,
+ "Daisy Technology",
+ "USB MultiMedia Reader",
+ },
+ {
+ USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502,
+ 0,
+ "Dallas Semiconductor",
+ "J-6502 speakers",
+ },
+ {
+ USB_VENDOR_DATAAPEX, USB_PRODUCT_DATAAPEX_MULTICOM,
+ 0,
+ "DataApex",
+ "MultiCom",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_PORT,
+ 0,
+ "Dell",
+ "Port Replicator",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_AIO926,
+ 0,
+ "Dell",
+ "Photo AIO Printer 926",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_BC02,
+ 0,
+ "Dell",
+ "BC02 Bluetooth USB Adapter",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_PRISM_GT_1,
+ 0,
+ "Dell",
+ "PrismGT USB 2.0 WLAN",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_TM350,
+ 0,
+ "Dell",
+ "TrueMobile 350 Bluetooth USB Adapter",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_PRISM_GT_2,
+ 0,
+ "Dell",
+ "PrismGT USB 2.0 WLAN",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5700,
+ 0,
+ "Dell",
+ "Dell 5700 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5500,
+ 0,
+ "Dell",
+ "Dell 5500 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5505,
+ 0,
+ "Dell",
+ "Dell 5505 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5700_2,
+ 0,
+ "Dell",
+ "Dell 5700 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5510,
+ 0,
+ "Dell",
+ "Dell 5510 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5700_3,
+ 0,
+ "Dell",
+ "Dell 5700 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5700_4,
+ 0,
+ "Dell",
+ "Dell 5700 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5720,
+ 0,
+ "Dell",
+ "Dell 5720 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5720_2,
+ 0,
+ "Dell",
+ "Dell 5720 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U740,
+ 0,
+ "Dell",
+ "Dell U740 CDMA",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5520,
+ 0,
+ "Dell",
+ "Dell 5520 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5520_2,
+ 0,
+ "Dell",
+ "Dell 5520 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5520_3,
+ 0,
+ "Dell",
+ "Dell 5520 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5730,
+ 0,
+ "Dell",
+ "Dell 5730 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5730_2,
+ 0,
+ "Dell",
+ "Dell 5730 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_U5730_3,
+ 0,
+ "Dell",
+ "Dell 5730 3G",
+ },
+ {
+ USB_VENDOR_DELL, USB_PRODUCT_DELL_DW700,
+ 0,
+ "Dell",
+ "Dell DW700 GPS",
+ },
+ {
+ USB_VENDOR_DELORME, USB_PRODUCT_DELORME_EARTHMATE,
+ 0,
+ "DeLorme",
+ "Earthmate GPS",
+ },
+ {
+ USB_VENDOR_DESKNOTE, USB_PRODUCT_DESKNOTE_UCR_61S2B,
+ 0,
+ "Desknote",
+ "UCR-61S2B",
+ },
+ {
+ USB_VENDOR_DIAMOND, USB_PRODUCT_DIAMOND_RIO500USB,
+ 0,
+ "Diamond",
+ "Rio 500 USB",
+ },
+ {
+ USB_VENDOR_DICKSMITH, USB_PRODUCT_DICKSMITH_RT2573,
+ 0,
+ "Dick Smith Electronics",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_DICKSMITH, USB_PRODUCT_DICKSMITH_CWD854F,
+ 0,
+ "Dick Smith Electronics",
+ "C-Net CWD-854 rev F",
+ },
+ {
+ USB_VENDOR_DIGI, USB_PRODUCT_DIGI_ACCELEPORT2,
+ 0,
+ "Digi International",
+ "AccelePort USB 2",
+ },
+ {
+ USB_VENDOR_DIGI, USB_PRODUCT_DIGI_ACCELEPORT4,
+ 0,
+ "Digi International",
+ "AccelePort USB 4",
+ },
+ {
+ USB_VENDOR_DIGI, USB_PRODUCT_DIGI_ACCELEPORT8,
+ 0,
+ "Digi International",
+ "AccelePort USB 8",
+ },
+ {
+ USB_VENDOR_DIGIANSWER, USB_PRODUCT_DIGIANSWER_ZIGBEE802154,
+ 0,
+ "Digianswer",
+ "ZigBee/802.15.4 MAC",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DUBE100,
+ 0,
+ "D-Link",
+ "10/100 Ethernet",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX4,
+ 0,
+ "D-Link",
+ "10/100 Ethernet",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DWL120E,
+ 0,
+ "D-Link",
+ "DWL-120 rev E",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DWL122,
+ 0,
+ "D-Link",
+ "DWL-122",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DWLG120,
+ 0,
+ "D-Link",
+ "DWL-G120",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DWL120F,
+ 0,
+ "D-Link",
+ "DWL-120 rev F",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DWLAG132,
+ 0,
+ "D-Link",
+ "DWL-AG132",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DWLAG132_NF,
+ 0,
+ "D-Link",
+ "DWL-AG132 (no firmware)",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DWLG132,
+ 0,
+ "D-Link",
+ "DWL-G132",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DWLG132_NF,
+ 0,
+ "D-Link",
+ "DWL-G132 (no firmware)",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DWLAG122,
+ 0,
+ "D-Link",
+ "DWL-AG122",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DWLAG122_NF,
+ 0,
+ "D-Link",
+ "DWL-AG122 (no firmware)",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DWLG122,
+ 0,
+ "D-Link",
+ "DWL-G122 b1 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DUBE100B1,
+ 0,
+ "D-Link",
+ "DUB-E100 rev B1",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_RT2870,
+ 0,
+ "D-Link",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_RT3072,
+ 0,
+ "D-Link",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650C,
+ 0,
+ "D-Link",
+ "10Mbps Ethernet",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX1,
+ 0,
+ "D-Link",
+ "10/100 Ethernet",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX,
+ 0,
+ "D-Link",
+ "10/100 Ethernet",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX_PNA,
+ 0,
+ "D-Link",
+ "1/10/100 Ethernet",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX3,
+ 0,
+ "D-Link",
+ "10/100 Ethernet",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX2,
+ 0,
+ "D-Link",
+ "10/100 Ethernet",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650,
+ 0,
+ "D-Link",
+ "10/100 Ethernet",
+ },
+ {
+ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DUBH7,
+ 0,
+ "D-Link",
+ "DUB-H7 USB 2.0 7-Port Hub",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_DWA120,
+ 0,
+ "D-Link",
+ "DWA-120",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_DWA120_NF,
+ 0,
+ "D-Link",
+ "DWA-120 (no firmware)",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_DWLG122C1,
+ 0,
+ "D-Link",
+ "DWL-G122 c1",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_WUA1340,
+ 0,
+ "D-Link",
+ "WUA-1340",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_DWA111,
+ 0,
+ "D-Link",
+ "DWA-111",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_RT2870_1,
+ 0,
+ "D-Link",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_DWA110,
+ 0,
+ "D-Link",
+ "DWA-110",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_RT3072,
+ 0,
+ "D-Link",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_RT3072_1,
+ 0,
+ "D-Link",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_RT3070_1,
+ 0,
+ "D-Link",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_RT3070_2,
+ 0,
+ "D-Link",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_RT3070_3,
+ 0,
+ "D-Link",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_RT2870_2,
+ 0,
+ "D-Link",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_DWA130,
+ 0,
+ "D-Link",
+ "DWA-130",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_RT3070_4,
+ 0,
+ "D-Link",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_DLINK2, USB_PRODUCT_DLINK2_RT3070_5,
+ 0,
+ "D-Link",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_DLINK3, USB_PRODUCT_DLINK3_DWM652,
+ 0,
+ "Dlink",
+ "DWM-652",
+ },
+ {
+ USB_VENDOR_DMI, USB_PRODUCT_DMI_CFSM_RW,
+ 0,
+ "DMI",
+ "CF/SM Reader/Writer",
+ },
+ {
+ USB_VENDOR_DMI, USB_PRODUCT_DMI_DISK,
+ 0,
+ "DMI",
+ "Generic Disk",
+ },
+ {
+ USB_VENDOR_DRAYTEK, USB_PRODUCT_DRAYTEK_VIGOR550,
+ 0,
+ "DrayTek",
+ "Vigor550",
+ },
+ {
+ USB_VENDOR_DRESDENELEKTRONIK, USB_PRODUCT_DRESDENELEKTRONIK_SENSORTERMINALBOARD,
+ 0,
+ "dresden elektronik",
+ "SensorTerminalBoard",
+ },
+ {
+ USB_VENDOR_DRESDENELEKTRONIK, USB_PRODUCT_DRESDENELEKTRONIK_WIRELESSHANDHELDTERMINAL,
+ 0,
+ "dresden elektronik",
+ "Wireless Handheld Terminal",
+ },
+ {
+ USB_VENDOR_DYNASTREAM, USB_PRODUCT_DYNASTREAM_ANTDEVBOARD,
+ 0,
+ "Dynastream Innovations",
+ "ANT dev board",
+ },
+ {
+ USB_VENDOR_DYNASTREAM, USB_PRODUCT_DYNASTREAM_ANT2USB,
+ 0,
+ "Dynastream Innovations",
+ "ANT2USB",
+ },
+ {
+ USB_VENDOR_DYNASTREAM, USB_PRODUCT_DYNASTREAM_ANTDEVBOARD2,
+ 0,
+ "Dynastream Innovations",
+ "ANT dev board",
+ },
+ {
+ USB_VENDOR_EDIMAX, USB_PRODUCT_EDIMAX_EW7318USG,
+ 0,
+ "Edimax",
+ "USB Wireless dongle",
+ },
+ {
+ USB_VENDOR_EDIMAX, USB_PRODUCT_EDIMAX_RT2870_1,
+ 0,
+ "Edimax",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_EDIMAX, USB_PRODUCT_EDIMAX_EW7717,
+ 0,
+ "Edimax",
+ "EW-7717",
+ },
+ {
+ USB_VENDOR_EDIMAX, USB_PRODUCT_EDIMAX_EW7718,
+ 0,
+ "Edimax",
+ "EW-7718",
+ },
+ {
+ USB_VENDOR_EGALAX, USB_PRODUCT_EGALAX_TPANEL,
+ 0,
+ "eGalax, Inc.",
+ "Touch Panel",
+ },
+ {
+ USB_VENDOR_EGALAX, USB_PRODUCT_EGALAX_TPANEL2,
+ 0,
+ "eGalax, Inc.",
+ "Touch Panel",
+ },
+ {
+ USB_VENDOR_EGALAX2, USB_PRODUCT_EGALAX2_TPANEL,
+ 0,
+ "eGalax, Inc.",
+ "Touch Panel",
+ },
+ {
+ USB_VENDOR_EICON, USB_PRODUCT_EICON_DIVA852,
+ 0,
+ "Eicon Networks",
+ "Diva 852 ISDN TA",
+ },
+ {
+ USB_VENDOR_EIZO, USB_PRODUCT_EIZO_HUB,
+ 0,
+ "EIZO",
+ "hub",
+ },
+ {
+ USB_VENDOR_EIZO, USB_PRODUCT_EIZO_MONITOR,
+ 0,
+ "EIZO",
+ "monitor",
+ },
+ {
+ USB_VENDOR_ELCON, USB_PRODUCT_ELCON_PLAN,
+ 0,
+ "ELCON Systemtechnik",
+ "Goldpfeil P-LAN",
+ },
+ {
+ USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_MOUSE29UO,
+ 0,
+ "Elecom",
+ "mouse 29UO",
+ },
+ {
+ USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX0,
+ 0,
+ "Elecom",
+ "LD-USB/TX",
+ },
+ {
+ USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX1,
+ 0,
+ "Elecom",
+ "LD-USB/TX",
+ },
+ {
+ USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBLTX,
+ 0,
+ "Elecom",
+ "LD-USBL/TX",
+ },
+ {
+ USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX2,
+ 0,
+ "Elecom",
+ "LD-USB/TX",
+ },
+ {
+ USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSB20,
+ 0,
+ "Elecom",
+ "LD-USB20",
+ },
+ {
+ USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_UCSGT,
+ 0,
+ "Elecom",
+ "UC-SGT",
+ },
+ {
+ USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_UCSGT0,
+ 0,
+ "Elecom",
+ "UC-SGT",
+ },
+ {
+ USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX3,
+ 0,
+ "Elecom",
+ "LD-USB/TX",
+ },
+ {
+ USB_VENDOR_ELSA, USB_PRODUCT_ELSA_MODEM1,
+ 0,
+ "ELSA",
+ "ELSA Modem Board",
+ },
+ {
+ USB_VENDOR_ELSA, USB_PRODUCT_ELSA_USB2ETHERNET,
+ 0,
+ "ELSA",
+ "Microlink USB2Ethernet",
+ },
+ {
+ USB_VENDOR_ELV, USB_PRODUCT_ELV_USBI2C,
+ 0,
+ "ELV",
+ "USB-I2C interface",
+ },
+ {
+ USB_VENDOR_EMS, USB_PRODUCT_EMS_DUAL_SHOOTER,
+ 0,
+ "EMS Production",
+ "PSX gun controller converter",
+ },
+ {
+ USB_VENDOR_ENCORE, USB_PRODUCT_ENCORE_RT3070_1,
+ 0,
+ "Encore",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_ENCORE, USB_PRODUCT_ENCORE_RT3070_2,
+ 0,
+ "Encore",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_ENCORE, USB_PRODUCT_ENCORE_RT3070_3,
+ 0,
+ "Encore",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_1S,
+ 0,
+ "Entrega",
+ "1S serial",
+ },
+ {
+ USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_2S,
+ 0,
+ "Entrega",
+ "2S serial",
+ },
+ {
+ USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_1S25,
+ 0,
+ "Entrega",
+ "1S25 serial",
+ },
+ {
+ USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_4S,
+ 0,
+ "Entrega",
+ "4S serial",
+ },
+ {
+ USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_E45,
+ 0,
+ "Entrega",
+ "E45 Ethernet",
+ },
+ {
+ USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_CENTRONICS,
+ 0,
+ "Entrega",
+ "Parallel Port",
+ },
+ {
+ USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_XX1,
+ 0,
+ "Entrega",
+ "Ethernet",
+ },
+ {
+ USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_1S9,
+ 0,
+ "Entrega",
+ "1S9 serial",
+ },
+ {
+ USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_EZUSB,
+ 0,
+ "Entrega",
+ "EZ-USB",
+ },
+ {
+ USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_2U4S,
+ 0,
+ "Entrega",
+ "2U4S serial/usb hub",
+ },
+ {
+ USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_XX2,
+ 0,
+ "Entrega",
+ "Ethernet",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_PRINTER1,
+ 0,
+ "Seiko Epson",
+ "USB Printer",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_PRINTER2,
+ 0,
+ "Seiko Epson",
+ "ISD USB Smart Cable for Mac",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_PRINTER3,
+ 0,
+ "Seiko Epson",
+ "ISD USB Smart Cable",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_PRINTER5,
+ 0,
+ "Seiko Epson",
+ "USB Printer",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_636,
+ 0,
+ "Seiko Epson",
+ "Perfection 636U / 636Photo scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_610,
+ 0,
+ "Seiko Epson",
+ "Perfection 610 scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1200,
+ 0,
+ "Seiko Epson",
+ "Perfection 1200U / 1200Photo scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1600,
+ 0,
+ "Seiko Epson",
+ "Expression 1600 scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1640,
+ 0,
+ "Seiko Epson",
+ "Perfection 1640SU scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1240,
+ 0,
+ "Seiko Epson",
+ "Perfection 1240U / 1240Photo scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_640U,
+ 0,
+ "Seiko Epson",
+ "Perfection 640U scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1250,
+ 0,
+ "Seiko Epson",
+ "Perfection 1250U / 1250Photo scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1650,
+ 0,
+ "Seiko Epson",
+ "Perfection 1650 scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_GT9700F,
+ 0,
+ "Seiko Epson",
+ "GT-9700F scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_GT9300UF,
+ 0,
+ "Seiko Epson",
+ "GT-9300UF scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_3200,
+ 0,
+ "Seiko Epson",
+ "Perfection 3200 scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1260,
+ 0,
+ "Seiko Epson",
+ "Perfection 1260 scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1660,
+ 0,
+ "Seiko Epson",
+ "Perfection 1660 scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1670,
+ 0,
+ "Seiko Epson",
+ "Perfection 1670 scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1270,
+ 0,
+ "Seiko Epson",
+ "Perfection 1270 scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_2480,
+ 0,
+ "Seiko Epson",
+ "Perfection 2480 scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_3590,
+ 0,
+ "Seiko Epson",
+ "Perfection 3590 scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_4990,
+ 0,
+ "Seiko Epson",
+ "Perfection 4990 Photo scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_CRESSI_EDY,
+ 0,
+ "Seiko Epson",
+ "Cressi Edy diving computer",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_STYLUS_875DC,
+ 0,
+ "Seiko Epson",
+ "Stylus Photo 875DC Card Reader",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_STYLUS_895,
+ 0,
+ "Seiko Epson",
+ "Stylus Photo 895 Card Reader",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_CX5400,
+ 0,
+ "Seiko Epson",
+ "CX5400 scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_3500,
+ 0,
+ "Seiko Epson",
+ "CX-3500/3600/3650 MFP",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_RX425,
+ 0,
+ "Seiko Epson",
+ "Stylus Photo RX425 scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_DX3800,
+ 0,
+ "Seiko Epson",
+ "CX3700/CX3800/DX38x0 MFP scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_4800,
+ 0,
+ "Seiko Epson",
+ "CX4700/CX4800/DX48x0 MFP scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_4200,
+ 0,
+ "Seiko Epson",
+ "CX4100/CX4200/DX4200 MFP scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_5000,
+ 0,
+ "Seiko Epson",
+ "CX4900/CX5000/DX50x0 MFP scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_6000,
+ 0,
+ "Seiko Epson",
+ "CX5900/CX6000/DX60x0 MFP scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_DX4000,
+ 0,
+ "Seiko Epson",
+ "DX4000 MFP scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_DX7400,
+ 0,
+ "Seiko Epson",
+ "CX7300/CX7400/DX7400 MFP scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_DX8400,
+ 0,
+ "Seiko Epson",
+ "CX8300/CX8400/DX8400 MFP scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_SX100,
+ 0,
+ "Seiko Epson",
+ "SX100/NX100 MFP scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_NX300,
+ 0,
+ "Seiko Epson",
+ "NX300 MFP scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_SX200,
+ 0,
+ "Seiko Epson",
+ "SX200/SX205 MFP scanner",
+ },
+ {
+ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_SX400,
+ 0,
+ "Seiko Epson",
+ "SX400/NX400/TX400 MFP scanner",
+ },
+ {
+ USB_VENDOR_ETEK, USB_PRODUCT_ETEK_1COM,
+ 0,
+ "e-TEK Labs",
+ "Serial",
+ },
+ {
+ USB_VENDOR_EXTENDED, USB_PRODUCT_EXTENDED_XTNDACCESS,
+ 0,
+ "Extended Systems",
+ "XTNDAccess IrDA",
+ },
+ {
+ USB_VENDOR_FEIYA, USB_PRODUCT_FEIYA_5IN1,
+ 0,
+ "Feiya",
+ "5-in-1 Card Reader",
+ },
+ {
+ USB_VENDOR_FIBERLINE, USB_PRODUCT_FIBERLINE_WL430U,
+ 0,
+ "Fiberline",
+ "WL-430U",
+ },
+ {
+ USB_VENDOR_FOSSIL, USB_PRODUCT_FOSSIL_WRISTPDA,
+ 0,
+ "Fossil, Inc",
+ "Wrist PDA",
+ },
+ {
+ USB_VENDOR_FOXCONN, USB_PRODUCT_FOXCONN_PIRELLI_DP_L10,
+ 0,
+ "Foxconn",
+ "Pirelli DP-L10",
+ },
+ {
+ USB_VENDOR_FREECOM, USB_PRODUCT_FREECOM_DVD,
+ 0,
+ "Freecom",
+ "DVD drive",
+ },
+ {
+ USB_VENDOR_FREECOM, USB_PRODUCT_FREECOM_HDD,
+ 0,
+ "Freecom",
+ "Classic SL Hard Drive",
+ },
+ {
+ USB_VENDOR_FSC, USB_PRODUCT_FSC_E5400,
+ 0,
+ "Fujitsu Siemens Computers",
+ "PrismGT USB 2.0 WLAN",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_8U100AX,
+ 0,
+ "Future Technology Devices",
+ "8U100AX Serial",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_8U232AM,
+ 0,
+ "Future Technology Devices",
+ "8U232AM Serial",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_8U232AM4,
+ 0,
+ "Future Technology Devices",
+ "8U232AM Serial",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_2232C,
+ 0,
+ "Future Technology Devices",
+ "FT2232C Dual port Serial",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_2232D,
+ 0,
+ "Future Technology Devices",
+ "FT2232D Dual port Serial",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_4232H,
+ 0,
+ "Future Technology Devices",
+ "FT4232H Quad port Serial",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_TACTRIX_OPENPORT_13M,
+ 0,
+ "Future Technology Devices",
+ "OpenPort 1.3 Mitsubishi",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_TACTRIX_OPENPORT_13S,
+ 0,
+ "Future Technology Devices",
+ "OpenPort 1.3 Subaru",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_TACTRIX_OPENPORT_13U,
+ 0,
+ "Future Technology Devices",
+ "OpenPort 1.3 Universal",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_GAMMASCOUT,
+ 0,
+ "Future Technology Devices",
+ "Gamma-Scout",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_KBS,
+ 0,
+ "Future Technology Devices",
+ "Pyramid KBS USB LCD",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_EISCOU,
+ 0,
+ "Future Technology Devices",
+ "Expert ISDN Control USB",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_UOPTBR,
+ 0,
+ "Future Technology Devices",
+ "USB-RS232 OptoBridge",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_EMCU2D,
+ 0,
+ "Future Technology Devices",
+ "Expert mouseCLOCK USB II",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_PCMSFU,
+ 0,
+ "Future Technology Devices",
+ "Precision Clock MSF USB",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_EMCU2H,
+ 0,
+ "Future Technology Devices",
+ "Expert mouseCLOCK USB II HBG",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MAXSTREAM,
+ 0,
+ "Future Technology Devices",
+ "Maxstream PKG-U",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_USB_UIRT,
+ 0,
+ "Future Technology Devices",
+ "USB-UIRT",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_USBSERIAL,
+ 0,
+ "Future Technology Devices",
+ "Matrix Orbital USB Serial",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MX2_3,
+ 0,
+ "Future Technology Devices",
+ "Matrix Orbital MX2 or MX3",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MX4_5,
+ 0,
+ "Future Technology Devices",
+ "Matrix Orbital MX4 or MX5",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_LK202,
+ 0,
+ "Future Technology Devices",
+ "Matrix Orbital VK/LK202 Family",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_LK204,
+ 0,
+ "Future Technology Devices",
+ "Matrix Orbital VK/LK204 Family",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_632,
+ 0,
+ "Future Technology Devices",
+ "Crystalfontz CFA-632 USB LCD",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_634,
+ 0,
+ "Future Technology Devices",
+ "Crystalfontz CFA-634 USB LCD",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_633,
+ 0,
+ "Future Technology Devices",
+ "Crystalfontz CFA-633 USB LCD",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_631,
+ 0,
+ "Future Technology Devices",
+ "Crystalfontz CFA-631 USB LCD",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_635,
+ 0,
+ "Future Technology Devices",
+ "Crystalfontz CFA-635 USB LCD",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SEMC_DSS20,
+ 0,
+ "Future Technology Devices",
+ "SEMC DSS-20 SyncStation",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CTI_USB_NANO_485,
+ 0,
+ "Future Technology Devices",
+ "CTI USB-Nano 485",
+ },
+ {
+ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CTI_USB_MINI_485,
+ 0,
+ "Future Technology Devices",
+ "CTI USB-Mini 485",
+ },
+ {
+ USB_VENDOR_FUJIPHOTO, USB_PRODUCT_FUJIPHOTO_MASS0100,
+ 0,
+ "Fuji Photo Film",
+ "Mass Storage",
+ },
+ {
+ USB_VENDOR_FUJITSU, USB_PRODUCT_FUJITSU_AH_F401U,
+ 0,
+ "Fujitsu",
+ "AH-F401U Air H device",
+ },
+ {
+ USB_VENDOR_FUJITSUSIEMENS, USB_PRODUCT_FUJITSUSIEMENS_SCR,
+ 0,
+ "Fujitsu-Siemens",
+ "Fujitsu-Siemens SCR USB Reader",
+ },
+ {
+ USB_VENDOR_GARMIN, USB_PRODUCT_GARMIN_IQUE_3600,
+ 0,
+ "Garmin International",
+ "iQue 3600",
+ },
+ {
+ USB_VENDOR_GEMALTO, USB_PRODUCT_GEMALTO_PROXPU,
+ 0,
+ "Gemalto SA",
+ "Prox-PU/CU",
+ },
+ {
+ USB_VENDOR_GENERALINSTMNTS, USB_PRODUCT_GENERALINSTMNTS_SB5100,
+ 0,
+ "General Instruments (Motorola)",
+ "SURFboard SB5100 Cable modem",
+ },
+ {
+ USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL620USB,
+ 0,
+ "Genesys Logic",
+ "GL620USB Host-Host interface",
+ },
+ {
+ USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL650,
+ 0,
+ "Genesys Logic",
+ "GL650 HUB",
+ },
+ {
+ USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL606,
+ 0,
+ "Genesys Logic",
+ "USB 2.0 HUB",
+ },
+ {
+ USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB,
+ 0,
+ "Genesys Logic",
+ "GL641USB CompactFlash Card Reader",
+ },
+ {
+ USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE_2,
+ 0,
+ "Genesys Logic",
+ "GL641USB USB-IDE Bridge No 2",
+ },
+ {
+ USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE,
+ 0,
+ "Genesys Logic",
+ "GL641USB USB-IDE Bridge",
+ },
+ {
+ USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB_2,
+ 0,
+ "Genesys Logic",
+ "GL641USB 6-in-1 Card Reader",
+ },
+ {
+ USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GN54G,
+ 0,
+ "GIGABYTE",
+ "GN-54G",
+ },
+ {
+ USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GNBR402W,
+ 0,
+ "GIGABYTE",
+ "GN-BR402W",
+ },
+ {
+ USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GNWLBM101,
+ 0,
+ "GIGABYTE",
+ "GN-WLBM101",
+ },
+ {
+ USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GNWBKG,
+ 0,
+ "GIGABYTE",
+ "GN-WBKG",
+ },
+ {
+ USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GNWB01GS,
+ 0,
+ "GIGABYTE",
+ "GN-WB01GS",
+ },
+ {
+ USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GNWI05GS,
+ 0,
+ "GIGABYTE",
+ "GN-WI05GS",
+ },
+ {
+ USB_VENDOR_GIGASET, USB_PRODUCT_GIGASET_WLAN,
+ 0,
+ "Gigaset",
+ "WLAN",
+ },
+ {
+ USB_VENDOR_GIGASET, USB_PRODUCT_GIGASET_SMCWUSBTG,
+ 0,
+ "Gigaset",
+ "SMCWUSBT-G",
+ },
+ {
+ USB_VENDOR_GIGASET, USB_PRODUCT_GIGASET_SMCWUSBTG_NF,
+ 0,
+ "Gigaset",
+ "SMCWUSBT-G (no firmware)",
+ },
+ {
+ USB_VENDOR_GIGASET, USB_PRODUCT_GIGASET_AR5523,
+ 0,
+ "Gigaset",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_GIGASET, USB_PRODUCT_GIGASET_AR5523_NF,
+ 0,
+ "Gigaset",
+ "AR5523 (no firmware)",
+ },
+ {
+ USB_VENDOR_GIGASET, USB_PRODUCT_GIGASET_RT2573,
+ 0,
+ "Gigaset",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_GIGASET, USB_PRODUCT_GIGASET_RT3070_1,
+ 0,
+ "Gigaset",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_GIGASET, USB_PRODUCT_GIGASET_RT3070_2,
+ 0,
+ "Gigaset",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_RT2870_1,
+ 0,
+ "GIGABYTE",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GNWB31N,
+ 0,
+ "GIGABYTE",
+ "GN-WB31N",
+ },
+ {
+ USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GNWB32L,
+ 0,
+ "GIGABYTE",
+ "GN-WB32L",
+ },
+ {
+ USB_VENDOR_GLOBALSUN, USB_PRODUCT_GLOBALSUN_AR5523_1,
+ 0,
+ "Global Sun Technology",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_GLOBALSUN, USB_PRODUCT_GLOBALSUN_AR5523_1_NF,
+ 0,
+ "Global Sun Technology",
+ "AR5523 (no firmware)",
+ },
+ {
+ USB_VENDOR_GLOBALSUN, USB_PRODUCT_GLOBALSUN_AR5523_2,
+ 0,
+ "Global Sun Technology",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_GLOBALSUN, USB_PRODUCT_GLOBALSUN_AR5523_2_NF,
+ 0,
+ "Global Sun Technology",
+ "AR5523 (no firmware)",
+ },
+ {
+ USB_VENDOR_GLOBESPAN, USB_PRODUCT_GLOBESPAN_PRISM_GT_1,
+ 0,
+ "Globespan",
+ "PrismGT USB 2.0 WLAN",
+ },
+ {
+ USB_VENDOR_GLOBESPAN, USB_PRODUCT_GLOBESPAN_PRISM_GT_2,
+ 0,
+ "Globespan",
+ "PrismGT USB 2.0 WLAN",
+ },
+ {
+ USB_VENDOR_GMATE, USB_PRODUCT_GMATE_YP3X00,
+ 0,
+ "G.Mate, Inc",
+ "YP3X00 PDA",
+ },
+ {
+ USB_VENDOR_GOHUBS, USB_PRODUCT_GOHUBS_GOCOM232,
+ 0,
+ "GoHubs",
+ "GoCOM232 Serial",
+ },
+ {
+ USB_VENDOR_GOODWAY, USB_PRODUCT_GOODWAY_GWUSB2E,
+ 0,
+ "Good Way Technology",
+ "GWUSB2E",
+ },
+ {
+ USB_VENDOR_GOODWAY, USB_PRODUCT_GOODWAY_RT2573,
+ 0,
+ "Good Way Technology",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_GOOGLE, USB_PRODUCT_GOOGLE_NEXUSONE,
+ 0,
+ "Google",
+ "Nexus One",
+ },
+ {
+ USB_VENDOR_GRAVIS, USB_PRODUCT_GRAVIS_GAMEPADPRO,
+ 0,
+ "Advanced Gravis Computer",
+ "GamePad Pro",
+ },
+ {
+ USB_VENDOR_GREENHOUSE, USB_PRODUCT_GREENHOUSE_KANA21,
+ 0,
+ "GREENHOUSE",
+ "CF-writer with MP3",
+ },
+ {
+ USB_VENDOR_GRIFFIN, USB_PRODUCT_GRIFFIN_IMATE,
+ 0,
+ "Griffin Technology",
+ "iMate, ADB Adapter",
+ },
+ {
+ USB_VENDOR_GUILLEMOT, USB_PRODUCT_GUILLEMOT_DALEADER,
+ 0,
+ "Guillemot",
+ "DA Leader",
+ },
+ {
+ USB_VENDOR_GUILLEMOT, USB_PRODUCT_GUILLEMOT_HWGUSB254,
+ 0,
+ "Guillemot",
+ "HWGUSB2-54 WLAN",
+ },
+ {
+ USB_VENDOR_GUILLEMOT, USB_PRODUCT_GUILLEMOT_HWGUSB254LB,
+ 0,
+ "Guillemot",
+ "HWGUSB2-54-LB",
+ },
+ {
+ USB_VENDOR_GUILLEMOT, USB_PRODUCT_GUILLEMOT_HWGUSB254V2AP,
+ 0,
+ "Guillemot",
+ "HWGUSB2-54V2-AP",
+ },
+ {
+ USB_VENDOR_GUILLEMOT, USB_PRODUCT_GUILLEMOT_HWNU300,
+ 0,
+ "Guillemot",
+ "HWNU-300",
+ },
+ {
+ USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FGSM,
+ 0,
+ "Hagiwara Sys-Com",
+ "FlashGate SmartMedia Card Reader",
+ },
+ {
+ USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FGCF,
+ 0,
+ "Hagiwara Sys-Com",
+ "FlashGate CompactFlash Card Reader",
+ },
+ {
+ USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FG,
+ 0,
+ "Hagiwara Sys-Com",
+ "FlashGate",
+ },
+ {
+ USB_VENDOR_HAL, USB_PRODUCT_HAL_IMR001,
+ 0,
+ "HAL Corporation",
+ "Crossam2+USB IR commander",
+ },
+ {
+ USB_VENDOR_HANDSPRING, USB_PRODUCT_HANDSPRING_VISOR,
+ 0,
+ "Handspring",
+ "Handspring Visor",
+ },
+ {
+ USB_VENDOR_HANDSPRING, USB_PRODUCT_HANDSPRING_TREO,
+ 0,
+ "Handspring",
+ "Handspring Treo",
+ },
+ {
+ USB_VENDOR_HANDSPRING, USB_PRODUCT_HANDSPRING_TREO600,
+ 0,
+ "Handspring",
+ "Handspring Treo 600",
+ },
+ {
+ USB_VENDOR_HAUPPAUGE, USB_PRODUCT_HAUPPAUGE_WINTV_USB_FM,
+ 0,
+ "Hauppauge Computer Works",
+ "WinTV USB FM",
+ },
+ {
+ USB_VENDOR_HAUPPAUGE2, USB_PRODUCT_HAUPPAUGE2_NOVAT500,
+ 0,
+ "Hauppauge Computer Works",
+ "NovaT 500Stick",
+ },
+ {
+ USB_VENDOR_HAWKING, USB_PRODUCT_HAWKING_RT2870_1,
+ 0,
+ "Hawking",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_HAWKING, USB_PRODUCT_HAWKING_RT2870_2,
+ 0,
+ "Hawking",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_HAWKING, USB_PRODUCT_HAWKING_HWUN2,
+ 0,
+ "Hawking",
+ "HWUN2",
+ },
+ {
+ USB_VENDOR_HAWKING, USB_PRODUCT_HAWKING_RT3070,
+ 0,
+ "Hawking",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_HAWKING, USB_PRODUCT_HAWKING_UF100,
+ 0,
+ "Hawking",
+ "10/100 USB Ethernet",
+ },
+ {
+ USB_VENDOR_HIDGLOBAL, USB_PRODUCT_HIDGLOBAL_CM2020,
+ 0,
+ "HID Global",
+ "Omnikey Cardman 2020",
+ },
+ {
+ USB_VENDOR_HIDGLOBAL, USB_PRODUCT_HIDGLOBAL_CM6020,
+ 0,
+ "HID Global",
+ "Omnikey Cardman 6020",
+ },
+ {
+ USB_VENDOR_HITACHI, USB_PRODUCT_HITACHI_DVDCAM_DZ_MV100A,
+ 0,
+ "Hitachi",
+ "DVD-CAM DZ-MV100A Camcorder",
+ },
+ {
+ USB_VENDOR_HITACHI, USB_PRODUCT_HITACHI_DVDCAM_USB,
+ 0,
+ "Hitachi",
+ "DVDCAM USB HS Interface",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_895C,
+ 0,
+ "Hewlett Packard",
+ "DeskJet 895C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_4100C,
+ 0,
+ "Hewlett Packard",
+ "Scanjet 4100C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_S20,
+ 0,
+ "Hewlett Packard",
+ "Photosmart S20",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_880C,
+ 0,
+ "Hewlett Packard",
+ "DeskJet 880C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_4200C,
+ 0,
+ "Hewlett Packard",
+ "ScanJet 4200C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_CDWRITERPLUS,
+ 0,
+ "Hewlett Packard",
+ "CD-Writer Plus",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_KBDHUB,
+ 0,
+ "Hewlett Packard",
+ "Multimedia Keyboard Hub",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_G55XI,
+ 0,
+ "Hewlett Packard",
+ "OfficeJet G55xi",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_HN210W,
+ 0,
+ "Hewlett Packard",
+ "HN210W 802.11b WLAN",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_49GPLUS,
+ 0,
+ "Hewlett Packard",
+ "49g+ graphing calculator",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_6200C,
+ 0,
+ "Hewlett Packard",
+ "ScanJet 6200C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_S20b,
+ 0,
+ "Hewlett Packard",
+ "PhotoSmart S20",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_815C,
+ 0,
+ "Hewlett Packard",
+ "DeskJet 815C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_3300C,
+ 0,
+ "Hewlett Packard",
+ "ScanJet 3300C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_CDW8200,
+ 0,
+ "Hewlett Packard",
+ "CD-Writer Plus 8200e",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_MMKEYB,
+ 0,
+ "Hewlett Packard",
+ "Multimedia keyboard",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_1220C,
+ 0,
+ "Hewlett Packard",
+ "DeskJet 1220C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_810C,
+ 0,
+ "Hewlett Packard",
+ "DeskJet 810C/812C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_4300C,
+ 0,
+ "Hewlett Packard",
+ "Scanjet 4300C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_CDW4E,
+ 0,
+ "Hewlett Packard",
+ "CD-Writer+ CD-4e",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_G85XI,
+ 0,
+ "Hewlett Packard",
+ "OfficeJet G85xi",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_1200,
+ 0,
+ "Hewlett Packard",
+ "LaserJet 1200",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_5200C,
+ 0,
+ "Hewlett Packard",
+ "Scanjet 5200C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_830C,
+ 0,
+ "Hewlett Packard",
+ "DeskJet 830C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_3400CSE,
+ 0,
+ "Hewlett Packard",
+ "ScanJet 3400cse",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_6300C,
+ 0,
+ "Hewlett Packard",
+ "Scanjet 6300C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_840C,
+ 0,
+ "Hewlett Packard",
+ "DeskJet 840c",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_2200C,
+ 0,
+ "Hewlett Packard",
+ "ScanJet 2200C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_5300C,
+ 0,
+ "Hewlett Packard",
+ "Scanjet 5300C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_4400C,
+ 0,
+ "Hewlett Packard",
+ "Scanjet 4400C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_4470C,
+ 0,
+ "Hewlett Packard",
+ "Scanjet 4470C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_82x0C,
+ 0,
+ "Hewlett Packard",
+ "Scanjet 82x0C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_2300D,
+ 0,
+ "Hewlett Packard",
+ "Laserjet 2300d",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_970CSE,
+ 0,
+ "Hewlett Packard",
+ "Deskjet 970Cse",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_5400C,
+ 0,
+ "Hewlett Packard",
+ "Scanjet 5400C",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_2215,
+ 0,
+ "Hewlett Packard",
+ "iPAQ 22xx/Jornada 548",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_568J,
+ 0,
+ "Hewlett Packard",
+ "Jornada 568",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_930C,
+ 0,
+ "Hewlett Packard",
+ "DeskJet 930c",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_P2000U,
+ 0,
+ "Hewlett Packard",
+ "Inkjet P-2000U",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_HS2300,
+ 0,
+ "Hewlett Packard",
+ "HS2300 HSDPA (aka MC8775)",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_640C,
+ 0,
+ "Hewlett Packard",
+ "DeskJet 640c",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_4670V,
+ 0,
+ "Hewlett Packard",
+ "ScanJet 4670v",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_P1100,
+ 0,
+ "Hewlett Packard",
+ "Photosmart P1100",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_LD220,
+ 0,
+ "Hewlett Packard",
+ "LD220 POS Display",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_OJ4215,
+ 0,
+ "Hewlett Packard",
+ "OfficeJet 4215",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_HN210E,
+ 0,
+ "Hewlett Packard",
+ "Ethernet HN210E",
+ },
+ {
+ USB_VENDOR_HP2, USB_PRODUCT_HP2_C500,
+ 0,
+ "Hewlett Packard",
+ "PhotoSmart C500",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_EV2200,
+ 0,
+ "Hewlett Packard",
+ "ev2200 HSDPA (aka MC5720)",
+ },
+ {
+ USB_VENDOR_HP, USB_PRODUCT_HP_HS2300,
+ 0,
+ "Hewlett Packard",
+ "hs2300 HSDPA (aka MC8775)",
+ },
+ {
+ USB_VENDOR_HTC, USB_PRODUCT_HTC_WINMOBILE,
+ 0,
+ "HTC",
+ "HTC USB Sync",
+ },
+ {
+ USB_VENDOR_HTC, USB_PRODUCT_HTC_PPC6700MODEM,
+ 0,
+ "HTC",
+ "PPC6700 Modem",
+ },
+ {
+ USB_VENDOR_HTC, USB_PRODUCT_HTC_SMARTPHONE,
+ 0,
+ "HTC",
+ "SmartPhone USB Sync",
+ },
+ {
+ USB_VENDOR_HTC, USB_PRODUCT_HTC_WIZARD,
+ 0,
+ "HTC",
+ "HTC Wizard USB Sync",
+ },
+ {
+ USB_VENDOR_HTC, USB_PRODUCT_HTC_LEGENDSYNC,
+ 0,
+ "HTC",
+ "HTC Legend USB Sync",
+ },
+ {
+ USB_VENDOR_HTC, USB_PRODUCT_HTC_LEGEND,
+ 0,
+ "HTC",
+ "HTC Legend",
+ },
+ {
+ USB_VENDOR_HTC, USB_PRODUCT_HTC_LEGENDINTERNET,
+ 0,
+ "HTC",
+ "HTC Legend Internet Sharing",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_MOBILE,
+ 0,
+ "Huawei Technologies",
+ "Huawei Mobile",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E220,
+ 0,
+ "Huawei Technologies",
+ "HSDPA modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E220BIS,
+ 0,
+ "Huawei Technologies",
+ "HSDPA modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1401,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1402,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1403,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1404,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1405,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1406,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1407,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1408,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1409,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E140A,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E140B,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E180V,
+ 0,
+ "Huawei Technologies",
+ "E180V",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E140D,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E140E,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E140F,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1410,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1411,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1412,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1413,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1414,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1415,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1416,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1417,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1418,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1419,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E141A,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E141B,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E141C,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E141D,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E141E,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E141F,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1420,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1421,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1422,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1423,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1424,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1425,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1426,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1427,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1428,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1429,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E142A,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E142B,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E142C,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E142D,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E142E,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E142F,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1430,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1431,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1432,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1433,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1434,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1435,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1436,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1437,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1438,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1439,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E143A,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E143B,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E143C,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E143D,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E143E,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E143F,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1752,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_K3765,
+ 0,
+ "Huawei Technologies",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E1820,
+ 0,
+ "Huawei Technologies",
+ "E1820 HSPA+ USB Slider",
+ },
+ {
+ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_K3765_INIT,
+ 0,
+ "Huawei Technologies",
+ "K3765 Initial",
+ },
+ {
+ USB_VENDOR_HUAWEI3COM, USB_PRODUCT_HUAWEI3COM_WUB320G,
+ 0,
+ "Huawei-3Com",
+ "Aolynk WUB320g",
+ },
+ {
+ USB_VENDOR_IBM, USB_PRODUCT_IBM_USBCDROMDRIVE,
+ 0,
+ "IBM",
+ "USB CD-ROM Drive",
+ },
+ {
+ USB_VENDOR_IMAGINATION, USB_PRODUCT_IMAGINATION_DBX1,
+ 0,
+ "Imagination Technologies",
+ "DBX1 DSP core",
+ },
+ {
+ USB_VENDOR_INSIDEOUT, USB_PRODUCT_INSIDEOUT_EDGEPORT4,
+ 0,
+ "Inside Out Networks",
+ "EdgePort/4 serial ports",
+ },
+ {
+ USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_F5U002,
+ 0,
+ "In-System Design",
+ "Parallel printer",
+ },
+ {
+ USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ATAPI,
+ 0,
+ "In-System Design",
+ "ATAPI Adapter",
+ },
+ {
+ USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ISD110,
+ 0,
+ "In-System Design",
+ "IDE Adapter ISD110",
+ },
+ {
+ USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ISD105,
+ 0,
+ "In-System Design",
+ "IDE Adapter ISD105",
+ },
+ {
+ USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_USBCABLE,
+ 0,
+ "In-System Design",
+ "USB cable",
+ },
+ {
+ USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_STORAGE_V2,
+ 0,
+ "In-System Design",
+ "USB Storage Adapter V2",
+ },
+ {
+ USB_VENDOR_INTEL, USB_PRODUCT_INTEL_EASYPC_CAMERA,
+ 0,
+ "Intel",
+ "Easy PC Camera",
+ },
+ {
+ USB_VENDOR_INTEL, USB_PRODUCT_INTEL_TESTBOARD,
+ 0,
+ "Intel",
+ "82930 test board",
+ },
+ {
+ USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_IRMH,
+ 0,
+ "Intel",
+ "Integrated Rate Matching Hub",
+ },
+ {
+ USB_VENDOR_INTERSIL, USB_PRODUCT_INTERSIL_PRISM_GT,
+ 0,
+ "Intersil",
+ "PrismGT USB 2.0 WLAN",
+ },
+ {
+ USB_VENDOR_INTERSIL, USB_PRODUCT_INTERSIL_PRISM_2X,
+ 0,
+ "Intersil",
+ "Prism2.x or Atmel WLAN",
+ },
+ {
+ USB_VENDOR_INTREPIDCS, USB_PRODUCT_INTREPIDCS_VALUECAN,
+ 0,
+ "Intrepid",
+ "ValueCAN CAN bus interface",
+ },
+ {
+ USB_VENDOR_INTREPIDCS, USB_PRODUCT_INTREPIDCS_NEOVI,
+ 0,
+ "Intrepid",
+ "NeoVI Blue vehicle bus interface",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_IU_CD2,
+ 0,
+ "I-O Data",
+ "DVD Multi-plus unit iU-CD2",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_DVR_UEH8,
+ 0,
+ "I-O Data",
+ "DVD Multi-plus unit DVR-UEH8",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBSSMRW,
+ 0,
+ "I-O Data",
+ "USB-SSMRW SD-card",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBSDRW,
+ 0,
+ "I-O Data",
+ "USB-SDRW SD-card",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETT,
+ 0,
+ "I-O Data",
+ "USB ETT",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTX,
+ 0,
+ "I-O Data",
+ "USB ETTX",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTXS,
+ 0,
+ "I-O Data",
+ "USB ETTX",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBWNB11A,
+ 0,
+ "I-O Data",
+ "USB WN-B11",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBWNB11,
+ 0,
+ "I-O Data",
+ "USB Airport WN-B11",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_ETGUS2,
+ 0,
+ "I-O Data",
+ "ETG-US2",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_RT3072_1,
+ 0,
+ "I-O Data",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_RT3072_2,
+ 0,
+ "I-O Data",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_RT3072_3,
+ 0,
+ "I-O Data",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_RT3072_4,
+ 0,
+ "I-O Data",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBRSAQ,
+ 0,
+ "I-O Data",
+ "Serial USB-RSAQ1",
+ },
+ {
+ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBRSAQ5,
+ 0,
+ "I-O Data",
+ "Serial USB-RSAQ5",
+ },
+ {
+ USB_VENDOR_IODATA2, USB_PRODUCT_IODATA2_USB2SC,
+ 0,
+ "I-O Data",
+ "USB2.0-SCSI Bridge USB2-SC",
+ },
+ {
+ USB_VENDOR_IOMEGA, USB_PRODUCT_IOMEGA_ZIP100,
+ 0,
+ "Iomega",
+ "Zip 100",
+ },
+ {
+ USB_VENDOR_IOMEGA, USB_PRODUCT_IOMEGA_ZIP250,
+ 0,
+ "Iomega",
+ "Zip 250",
+ },
+ {
+ USB_VENDOR_ISSC, USB_PRODUCT_ISSC_ISSCBTA,
+ 0,
+ "Integrated System Solution Corp.",
+ "Bluetooth USB Adapter",
+ },
+ {
+ USB_VENDOR_ITEGNO, USB_PRODUCT_ITEGNO_WM1080A,
+ 0,
+ "iTegno",
+ "WM1080A GSM/GPRS modem",
+ },
+ {
+ USB_VENDOR_ITEGNO, USB_PRODUCT_ITEGNO_WM2080A,
+ 0,
+ "iTegno",
+ "WM2080A CDMA modem",
+ },
+ {
+ USB_VENDOR_ITUNERNET, USB_PRODUCT_ITUNERNET_USBLCD2X20,
+ 0,
+ "I-Tuner Networks",
+ "USB-LCD 2x20",
+ },
+ {
+ USB_VENDOR_ITUNERNET, USB_PRODUCT_ITUNERNET_USBLCD4X20,
+ 0,
+ "I-Tuner Networks",
+ "USB-LCD 4x20",
+ },
+ {
+ USB_VENDOR_JABLOTRON, USB_PRODUCT_JABLOTRON_PC60B,
+ 0,
+ "Jablotron",
+ "PC-60B",
+ },
+ {
+ USB_VENDOR_JATON, USB_PRODUCT_JATON_EDA,
+ 0,
+ "Jaton",
+ "Ethernet",
+ },
+ {
+ USB_VENDOR_JMICRON, USB_PRODUCT_JMICRON_JM20336,
+ 0,
+ "JMicron",
+ "USB to SATA Bridge",
+ },
+ {
+ USB_VENDOR_JMICRON, USB_PRODUCT_JMICRON_JM20337,
+ 0,
+ "JMicron",
+ "USB to ATA/ATAPI Bridge",
+ },
+ {
+ USB_VENDOR_JVC, USB_PRODUCT_JVC_GR_DX95,
+ 0,
+ "JVC",
+ "GR-DX95",
+ },
+ {
+ USB_VENDOR_JVC, USB_PRODUCT_JVC_MP_PRX1,
+ 0,
+ "JVC",
+ "MP-PRX1 Ethernet",
+ },
+ {
+ USB_VENDOR_JRC, USB_PRODUCT_JRC_AH_J3001V_J3002V,
+ 0,
+ "Japan Radio Company",
+ "AirH PHONE AH-J3001V/J3002V",
+ },
+ {
+ USB_VENDOR_KAWATSU, USB_PRODUCT_KAWATSU_MH4000P,
+ 0,
+ "Kawatsu Semiconductor",
+ "MiniHub 4000P",
+ },
+ {
+ USB_VENDOR_KEISOKUGIKEN, USB_PRODUCT_KEISOKUGIKEN_USBDAQ,
+ 0,
+ "Keisokugiken",
+ "HKS-0200 USBDAQ",
+ },
+ {
+ USB_VENDOR_KENSINGTON, USB_PRODUCT_KENSINGTON_ORBIT,
+ 0,
+ "Kensington",
+ "Orbit USB/PS2 trackball",
+ },
+ {
+ USB_VENDOR_KENSINGTON, USB_PRODUCT_KENSINGTON_TURBOBALL,
+ 0,
+ "Kensington",
+ "TurboBall",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA28_NF,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-28 serial Adapter (no firmware)",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA28X_NF,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-28X serial Adapter (no firmware)",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19_NF,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-19 serial Adapter (no firmware)",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA18_NF,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-18 serial Adapter (no firmware)",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA18X_NF,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-18X serial Adapter (no firmware)",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19W_NF,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-19W serial Adapter (no firmware)",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-19 serial Adapter",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19W,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-19W serial Adapter",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA49W_NF,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-49W serial Adapter (no firmware)",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA49W,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-49W serial Adapter",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19QI_NF,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-19QI serial Adapter (no firmware)",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19QI,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-19QI serial Adapter",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19Q_NF,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-19Q serial Adapter (no firmware)",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19Q,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-19Q serial Adapter",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA28,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-28 serial Adapter",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA28XXB,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-28X/XB serial Adapter",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA18,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-18 serial Adapter",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA18X,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-18X serial Adapter",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA28XB_NF,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-28XB serial Adapter (no firmware)",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA28XA_NF,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-28XB serial Adapter (no firmware)",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA28XA,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-28XA serial Adapter",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA18XA_NF,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-18XA serial Adapter (no firmware)",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA18XA,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-18XA serial Adapter",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19QW_NF,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-19WQ serial Adapter (no firmware)",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19QW,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-19WQ serial Adapter",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19HA,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "USA-19HS serial Adapter",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_UIA10,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "UIA-10 remote control",
+ },
+ {
+ USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_UIA11,
+ 0,
+ "Keyspan / InnoSys Inc.",
+ "UIA-11 remote control",
+ },
+ {
+ USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_XX1,
+ 0,
+ "Kingston Technology",
+ "Ethernet",
+ },
+ {
+ USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_KNU101TX,
+ 0,
+ "Kingston Technology",
+ "KNU101TX USB Ethernet",
+ },
+ {
+ USB_VENDOR_KLSI, USB_PRODUCT_KLSI_DUH3E10BT,
+ 0,
+ "Kawasaki LSI",
+ "USB Ethernet",
+ },
+ {
+ USB_VENDOR_KLSI, USB_PRODUCT_KLSI_DUH3E10BTN,
+ 0,
+ "Kawasaki LSI",
+ "USB Ethernet",
+ },
+ {
+ USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC220,
+ 0,
+ "Eastman Kodak",
+ "Digital Science DC220",
+ },
+ {
+ USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC260,
+ 0,
+ "Eastman Kodak",
+ "Digital Science DC260",
+ },
+ {
+ USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC265,
+ 0,
+ "Eastman Kodak",
+ "Digital Science DC265",
+ },
+ {
+ USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC290,
+ 0,
+ "Eastman Kodak",
+ "Digital Science DC290",
+ },
+ {
+ USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC240,
+ 0,
+ "Eastman Kodak",
+ "Digital Science DC240",
+ },
+ {
+ USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC280,
+ 0,
+ "Eastman Kodak",
+ "Digital Science DC280",
+ },
+ {
+ USB_VENDOR_KONICA, USB_PRODUCT_KONICA_CAMERA,
+ 0,
+ "Konica",
+ "Digital Color Camera",
+ },
+ {
+ USB_VENDOR_KYE, USB_PRODUCT_KYE_NICHE,
+ 0,
+ "KYE Systems",
+ "Niche mouse",
+ },
+ {
+ USB_VENDOR_KYE, USB_PRODUCT_KYE_NETSCROLL,
+ 0,
+ "KYE Systems",
+ "Genius NetScroll mouse",
+ },
+ {
+ USB_VENDOR_KYE, USB_PRODUCT_KYE_FLIGHT2000,
+ 0,
+ "KYE Systems",
+ "Flight 2000 joystick",
+ },
+ {
+ USB_VENDOR_KYE, USB_PRODUCT_KYE_VIVIDPRO,
+ 0,
+ "KYE Systems",
+ "ColorPage Vivid-Pro scanner",
+ },
+ {
+ USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S3X,
+ 0,
+ "Kyocera Wireless Corp.",
+ "Finecam S3x",
+ },
+ {
+ USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S4,
+ 0,
+ "Kyocera Wireless Corp.",
+ "Finecam S4",
+ },
+ {
+ USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S5,
+ 0,
+ "Kyocera Wireless Corp.",
+ "Finecam S5",
+ },
+ {
+ USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_L3,
+ 0,
+ "Kyocera Wireless Corp.",
+ "Finecam L3",
+ },
+ {
+ USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_AHK3001V,
+ 0,
+ "Kyocera Wireless Corp.",
+ "AH-K3001V",
+ },
+ {
+ USB_VENDOR_KYOCERA2, USB_PRODUCT_KYOCERA2_CDMA_MSM_K,
+ 0,
+ "Kyocera Wireless Corp.",
+ "Qualcomm Kyocera CDMA Technologies MSM",
+ },
+ {
+ USB_VENDOR_KYOCERA2, USB_PRODUCT_KYOCERA2_KPC680,
+ 0,
+ "Kyocera Wireless Corp.",
+ "Qualcomm Kyocera CDMA Technologies MSM",
+ },
+ {
+ USB_VENDOR_LACIE, USB_PRODUCT_LACIE_HD,
+ 0,
+ "LaCie",
+ "Hard Disk",
+ },
+ {
+ USB_VENDOR_LACIE, USB_PRODUCT_LACIE_CDRW,
+ 0,
+ "LaCie",
+ "CD R/W",
+ },
+ {
+ USB_VENDOR_LEADTEK, USB_PRODUCT_LEADTEK_9531,
+ 0,
+ "Leadtek",
+ "9531 GPS",
+ },
+ {
+ USB_VENDOR_LEXAR, USB_PRODUCT_LEXAR_JUMPSHOT,
+ 0,
+ "Lexar Media",
+ "jumpSHOT CompactFlash Reader",
+ },
+ {
+ USB_VENDOR_LEXAR, USB_PRODUCT_LEXAR_CF_READER,
+ 0,
+ "Lexar Media",
+ "USB CF Reader",
+ },
+ {
+ USB_VENDOR_LEXMARK, USB_PRODUCT_LEXMARK_S2450,
+ 0,
+ "Lexmark International",
+ "Optra S 2450",
+ },
+ {
+ USB_VENDOR_LIEBERT, USB_PRODUCT_LIEBERT_POWERSURE_PXT,
+ 0,
+ "Liebert",
+ "PowerSure Personal XT",
+ },
+ {
+ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_MAUSB2,
+ 0,
+ "Linksys",
+ "Camedia MAUSB-2",
+ },
+ {
+ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX1,
+ 0,
+ "Linksys",
+ "USB10TX",
+ },
+ {
+ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10T,
+ 0,
+ "Linksys",
+ "USB10T Ethernet",
+ },
+ {
+ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100TX,
+ 0,
+ "Linksys",
+ "USB100TX Ethernet",
+ },
+ {
+ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100H1,
+ 0,
+ "Linksys",
+ "USB100H1 Ethernet/HPNA",
+ },
+ {
+ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TA,
+ 0,
+ "Linksys",
+ "USB10TA Ethernet",
+ },
+ {
+ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX2,
+ 0,
+ "Linksys",
+ "USB10TX",
+ },
+ {
+ USB_VENDOR_LINKSYS2, USB_PRODUCT_LINKSYS2_WUSB11,
+ 0,
+ "Linksys",
+ "WUSB11 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_LINKSYS2, USB_PRODUCT_LINKSYS2_USB200M,
+ 0,
+ "Linksys",
+ "USB 2.0 10/100 Ethernet",
+ },
+ {
+ USB_VENDOR_LINKSYS3, USB_PRODUCT_LINKSYS3_WUSB11v28,
+ 0,
+ "Linksys",
+ "WUSB11 v2.8 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_LINKSYS4, USB_PRODUCT_LINKSYS4_USB1000,
+ 0,
+ "Linksys",
+ "USB1000",
+ },
+ {
+ USB_VENDOR_LINKSYS4, USB_PRODUCT_LINKSYS4_WUSB100,
+ 0,
+ "Linksys",
+ "WUSB100",
+ },
+ {
+ USB_VENDOR_LINKSYS4, USB_PRODUCT_LINKSYS4_WUSB600N,
+ 0,
+ "Linksys",
+ "WUSB600N",
+ },
+ {
+ USB_VENDOR_LINKSYS4, USB_PRODUCT_LINKSYS4_WUSB54GCV2,
+ 0,
+ "Linksys",
+ "WUSB54GC v2",
+ },
+ {
+ USB_VENDOR_LINKSYS4, USB_PRODUCT_LINKSYS4_WUSB54GCV3,
+ 0,
+ "Linksys",
+ "WUSB54GC v3",
+ },
+ {
+ USB_VENDOR_LINKSYS4, USB_PRODUCT_LINKSYS4_RT3070,
+ 0,
+ "Linksys",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_LINKSYS4, USB_PRODUCT_LINKSYS4_WUSB600NV2,
+ 0,
+ "Linksys",
+ "WUSB600N v2",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_M2452,
+ 0,
+ "Logitech",
+ "M2452 keyboard",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_M4848,
+ 0,
+ "Logitech",
+ "M4848 mouse",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_PAGESCAN,
+ 0,
+ "Logitech",
+ "PageScan",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAMWEB,
+ 0,
+ "Logitech",
+ "QuickCam Web",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAMPRO,
+ 0,
+ "Logitech",
+ "QuickCam Pro",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAMEXP,
+ 0,
+ "Logitech",
+ "QuickCam Express",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAM,
+ 0,
+ "Logitech",
+ "QuickCam",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAMPRO3,
+ 0,
+ "Logitech",
+ "QuickCam Pro 9000",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_N43,
+ 0,
+ "Logitech",
+ "N43",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_N48,
+ 0,
+ "Logitech",
+ "N48 mouse",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_MBA47,
+ 0,
+ "Logitech",
+ "M-BA47 mouse",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_WMMOUSE,
+ 0,
+ "Logitech",
+ "WingMan Gaming Mouse",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_BD58,
+ 0,
+ "Logitech",
+ "BD58 mouse",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_UN58A,
+ 0,
+ "Logitech",
+ "iFeel Mouse",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_UN53B,
+ 0,
+ "Logitech",
+ "iFeel MouseMan",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_WMPAD,
+ 0,
+ "Logitech",
+ "WingMan GamePad Extreme",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_WMRPAD,
+ 0,
+ "Logitech",
+ "WingMan RumblePad",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_WMJOY,
+ 0,
+ "Logitech",
+ "WingMan Force joystick",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_BB13,
+ 0,
+ "Logitech",
+ "USB-PS/2 Trackball",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_RK53,
+ 0,
+ "Logitech",
+ "Cordless mouse",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_RB6,
+ 0,
+ "Logitech",
+ "Cordless keyboard",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_MX700,
+ 0,
+ "Logitech",
+ "Cordless optical mouse",
+ },
+ {
+ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAMPRO2,
+ 0,
+ "Logitech",
+ "QuickCam Pro",
+ },
+ {
+ USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_LDR_H443SU2,
+ 0,
+ "Logitec",
+ "DVD Multi-plus unit LDR-H443SU2",
+ },
+ {
+ USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_LDR_H443U2,
+ 0,
+ "Logitec",
+ "DVD Multi-plus unit LDR-H443U2",
+ },
+ {
+ USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_LAN_GTJU2A,
+ 0,
+ "Logitec",
+ "LAN-GTJ/U2A Ethernet",
+ },
+ {
+ USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_RT2870_1,
+ 0,
+ "Logitec",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_RT2870_2,
+ 0,
+ "Logitec",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_RT2870_3,
+ 0,
+ "Logitec",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_LONGCHEER, USB_PRODUCT_LONGCHEER_WM66,
+ 0,
+ "Longcheer Holdings, Ltd.",
+ "Longcheer WM66 HSDPA",
+ },
+ {
+ USB_VENDOR_LONGCHEER, USB_PRODUCT_LONGCHEER_W14,
+ 0,
+ "Longcheer Holdings, Ltd.",
+ "Mobilcom W14",
+ },
+ {
+ USB_VENDOR_LONGCHEER, USB_PRODUCT_LONGCHEER_DISK,
+ 0,
+ "Longcheer Holdings, Ltd.",
+ "Driver disk",
+ },
+ {
+ USB_VENDOR_LUCENT, USB_PRODUCT_LUCENT_EVALKIT,
+ 0,
+ "Lucent",
+ "USS-720 evaluation kit",
+ },
+ {
+ USB_VENDOR_LUWEN, USB_PRODUCT_LUWEN_EASYDISK,
+ 0,
+ "Luwen",
+ "EasyDisc",
+ },
+ {
+ USB_VENDOR_MACALLY, USB_PRODUCT_MACALLY_MOUSE1,
+ 0,
+ "Macally",
+ "mouse",
+ },
+ {
+ USB_VENDOR_MARVELL, USB_PRODUCT_MARVELL_SHEEVAPLUG,
+ 0,
+ "Marvell Technology Group Ltd.",
+ "SheevaPlug serial interface",
+ },
+ {
+ USB_VENDOR_MATRIXORBITAL, USB_PRODUCT_MATRIXORBITAL_MOUA,
+ 0,
+ "Matrix Orbital",
+ "Martrix Orbital MOU-Axxxx LCD displays",
+ },
+ {
+ USB_VENDOR_MCT, USB_PRODUCT_MCT_HUB0100,
+ 0,
+ "MCT",
+ "Hub",
+ },
+ {
+ USB_VENDOR_MCT, USB_PRODUCT_MCT_DU_H3SP_USB232,
+ 0,
+ "MCT",
+ "D-Link DU-H3SP USB BAY Hub",
+ },
+ {
+ USB_VENDOR_MCT, USB_PRODUCT_MCT_USB232,
+ 0,
+ "MCT",
+ "USB-232 Interface",
+ },
+ {
+ USB_VENDOR_MCT, USB_PRODUCT_MCT_SITECOM_USB232,
+ 0,
+ "MCT",
+ "Sitecom USB-232 Products",
+ },
+ {
+ USB_VENDOR_MEIZU, USB_PRODUCT_MEIZU_M6_SL,
+ 0,
+ "Meizu Electronics",
+ "MiniPlayer M6 (SL)",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX1,
+ 0,
+ "Melco",
+ "LUA-TX Ethernet",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX5,
+ 0,
+ "Melco",
+ "LUA-TX Ethernet",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUA2TX5,
+ 0,
+ "Melco",
+ "LUA2-TX Ethernet",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUAKTX,
+ 0,
+ "Melco",
+ "LUA-KTX Ethernet",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_DUBPXXG,
+ 0,
+ "Melco",
+ "DUB-PxxG",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUAU2KTX,
+ 0,
+ "Melco",
+ "LUA-U2-KTX Ethernet",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_KG54YB,
+ 0,
+ "Melco",
+ "WLI-U2-KG54-YB WLAN",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_KG54,
+ 0,
+ "Melco",
+ "WLI-U2-KG54 WLAN",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_KG54AI,
+ 0,
+ "Melco",
+ "WLI-U2-KG54-AI WLAN",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUA3U2AGT,
+ 0,
+ "Melco",
+ "LUA3-U2-AGT",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_NINWIFI,
+ 0,
+ "Melco",
+ "Nintendo Wi-Fi",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_PCOPRS1,
+ 0,
+ "Melco",
+ "PC-OP-RS1 RemoteStation",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_SG54HP,
+ 0,
+ "Melco",
+ "WLI-U2-SG54HP",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_G54HP,
+ 0,
+ "Melco",
+ "WLI-U2-G54HP",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_KG54L,
+ 0,
+ "Melco",
+ "WLI-U2-KG54L",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_WLIUCG300N,
+ 0,
+ "Melco",
+ "WLI-UC-G300N",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_SG54HG,
+ 0,
+ "Melco",
+ "WLI-U2-SG54HG",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_WLRUCG,
+ 0,
+ "Melco",
+ "WLR-UC-G",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_WLRUCGAOSS,
+ 0,
+ "Melco",
+ "WLR-UC-G-AOSS",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_WLIUCAG300N,
+ 0,
+ "Melco",
+ "WLI-UC-AG300N",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_RT2870_1,
+ 0,
+ "Melco",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_RT2870_2,
+ 0,
+ "Melco",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_WLIUCGN,
+ 0,
+ "Melco",
+ "WLI-UC-GN",
+ },
+ {
+ USB_VENDOR_MERLIN, USB_PRODUCT_MERLIN_V620,
+ 0,
+ "Merlin",
+ "Merlin V620",
+ },
+ {
+ USB_VENDOR_METAGEEK, USB_PRODUCT_METAGEEK_WISPY1B,
+ 0,
+ "MetaGeek",
+ "MetaGeek Wi-Spy",
+ },
+ {
+ USB_VENDOR_METAGEEK, USB_PRODUCT_METAGEEK_WISPY24X,
+ 0,
+ "MetaGeek",
+ "MetaGeek Wi-Spy 2.4x",
+ },
+ {
+ USB_VENDOR_METAGEEK2, USB_PRODUCT_METAGEEK2_WISPYDBX,
+ 0,
+ "MetaGeek",
+ "MetaGeek Wi-Spy DBx",
+ },
+ {
+ USB_VENDOR_METRICOM, USB_PRODUCT_METRICOM_RICOCHET_GS,
+ 0,
+ "Metricom",
+ "Ricochet GS",
+ },
+ {
+ USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS1,
+ 0,
+ "MGE UPS Systems",
+ "MGE UPS SYSTEMS PROTECTIONCENTER 1",
+ },
+ {
+ USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS2,
+ 0,
+ "MGE UPS Systems",
+ "MGE UPS SYSTEMS PROTECTIONCENTER 2",
+ },
+ {
+ USB_VENDOR_MEI, USB_PRODUCT_MEI_CASHFLOW_SC,
+ 0,
+ "MEI",
+ "Cashflow-SC Cash Acceptor",
+ },
+ {
+ USB_VENDOR_MEI, USB_PRODUCT_MEI_S2000,
+ 0,
+ "MEI",
+ "Seies 2000 Combo Acceptor",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_BT_DONGLE,
+ 0,
+ "Micro Star International",
+ "Bluetooth USB dongle",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT3070_1,
+ 0,
+ "Micro Star International",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT3070_2,
+ 0,
+ "Micro Star International",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT3070_8,
+ 0,
+ "Micro Star International",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT3070_3,
+ 0,
+ "Micro Star International",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT3070_9,
+ 0,
+ "Micro Star International",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_UB11B,
+ 0,
+ "Micro Star International",
+ "UB11B",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2570,
+ 0,
+ "Micro Star International",
+ "RT2570",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2570_2,
+ 0,
+ "Micro Star International",
+ "RT2570",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2570_3,
+ 0,
+ "Micro Star International",
+ "RT2570",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2573_1,
+ 0,
+ "Micro Star International",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2573_2,
+ 0,
+ "Micro Star International",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT3070_4,
+ 0,
+ "Micro Star International",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT3070_5,
+ 0,
+ "Micro Star International",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT3070_10,
+ 0,
+ "Micro Star International",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT3070_6,
+ 0,
+ "Micro Star International",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT3070_11,
+ 0,
+ "Micro Star International",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT3070_7,
+ 0,
+ "Micro Star International",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2573_3,
+ 0,
+ "Micro Star International",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2573_4,
+ 0,
+ "Micro Star International",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_SIDEPREC,
+ 0,
+ "Microsoft",
+ "SideWinder Precision Pro",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_INTELLIMOUSE,
+ 0,
+ "Microsoft",
+ "IntelliMouse",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_NATURALKBD,
+ 0,
+ "Microsoft",
+ "Natural Keyboard Elite",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_DDS80,
+ 0,
+ "Microsoft",
+ "Digital Sound System 80",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_SIDEWINDER,
+ 0,
+ "Microsoft",
+ "Sidewinder Precision Racing Wheel",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_INETPRO,
+ 0,
+ "Microsoft",
+ "Internet Keyboard Pro",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_TBEXPLORER,
+ 0,
+ "Microsoft",
+ "Trackball Explorer",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_INTELLIEYE,
+ 0,
+ "Microsoft",
+ "IntelliEye mouse",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_INETPRO2,
+ 0,
+ "Microsoft",
+ "Internet Keyboard Pro",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_INTELLIMOUSE5,
+ 0,
+ "Microsoft",
+ "IntelliMouse 1.1 5-Button Mouse",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_WHEELMOUSE,
+ 0,
+ "Microsoft",
+ "Wheel Mouse Optical",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_MN510,
+ 0,
+ "Microsoft",
+ "MN510 Wireless",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_700WX,
+ 0,
+ "Microsoft",
+ "Palm 700WX",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_MN110,
+ 0,
+ "Microsoft",
+ "10/100 USB NIC",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_WLINTELLIMOUSE,
+ 0,
+ "Microsoft",
+ "Wireless Optical IntelliMouse",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_WLNOTEBOOK,
+ 0,
+ "Microsoft",
+ "Wireless Optical Mouse (Model 1023)",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_COMFORT3000,
+ 0,
+ "Microsoft",
+ "Comfort Optical Mouse 3000 (Model 1043)",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_WLNOTEBOOK3,
+ 0,
+ "Microsoft",
+ "Wireless Optical Mouse 3000 (Model 1049)",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_NATURAL4000,
+ 0,
+ "Microsoft",
+ "Natural Ergonomic Keyboard 4000",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_WLNOTEBOOK2,
+ 0,
+ "Microsoft",
+ "Wireless Optical Mouse 3000 (Model 1056)",
+ },
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_XBOX360,
+ 0,
+ "Microsoft",
+ "XBOX 360 WLAN",
+ },
+ {
+ USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIDB25,
+ 0,
+ "Microtech",
+ "USB-SCSI-DB25",
+ },
+ {
+ USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIHD50,
+ 0,
+ "Microtech",
+ "USB-SCSI-HD50",
+ },
+ {
+ USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_DPCM,
+ 0,
+ "Microtech",
+ "USB CameraMate",
+ },
+ {
+ USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_FREECOM,
+ 0,
+ "Microtech",
+ "Freecom USB-IDE",
+ },
+ {
+ USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_336CX,
+ 0,
+ "Microtek",
+ "Phantom 336CX - C3 scanner",
+ },
+ {
+ USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_X6U,
+ 0,
+ "Microtek",
+ "ScanMaker X6 - X6U",
+ },
+ {
+ USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_C6,
+ 0,
+ "Microtek",
+ "Phantom C6 scanner",
+ },
+ {
+ USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_336CX2,
+ 0,
+ "Microtek",
+ "Phantom 336CX - C3 scanner",
+ },
+ {
+ USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6USL,
+ 0,
+ "Microtek",
+ "ScanMaker V6USL",
+ },
+ {
+ USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6USL2,
+ 0,
+ "Microtek",
+ "ScanMaker V6USL",
+ },
+ {
+ USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6UL,
+ 0,
+ "Microtek",
+ "ScanMaker V6UL",
+ },
+ {
+ USB_VENDOR_MICROTUNE, USB_PRODUCT_MICROTUNE_BT_DONGLE,
+ 0,
+ "Microtune",
+ "Bluetooth USB dongle",
+ },
+ {
+ USB_VENDOR_MIDIMAN, USB_PRODUCT_MIDIMAN_MIDISPORT2X2,
+ 0,
+ "Midiman",
+ "Midisport 2x2",
+ },
+ {
+ USB_VENDOR_MINDSATWORK, USB_PRODUCT_MINDSATWORK_WALLET,
+ 0,
+ "Minds At Work",
+ "Digital Wallet",
+ },
+ {
+ USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_2300,
+ 0,
+ "Minolta",
+ "Dimage 2300",
+ },
+ {
+ USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_S304,
+ 0,
+ "Minolta",
+ "Dimage S304",
+ },
+ {
+ USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_X,
+ 0,
+ "Minolta",
+ "Dimage X",
+ },
+ {
+ USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_5400,
+ 0,
+ "Minolta",
+ "Dimage 5400",
+ },
+ {
+ USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_F300,
+ 0,
+ "Minolta",
+ "Dimage F300",
+ },
+ {
+ USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_E223,
+ 0,
+ "Minolta",
+ "Dimage E223",
+ },
+ {
+ USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_CDRRW,
+ 0,
+ "Mitsumi",
+ "CD-R/RW Drive",
+ },
+ {
+ USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_BT_DONGLE,
+ 0,
+ "Mitsumi",
+ "Bluetooth USB dongle",
+ },
+ {
+ USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_FDD,
+ 0,
+ "Mitsumi",
+ "USB FDD",
+ },
+ {
+ USB_VENDOR_MOBILEACTION, USB_PRODUCT_MOBILEACTION_MA620,
+ 0,
+ "Mobile Action",
+ "MA-620 Infrared Adapter",
+ },
+ {
+ USB_VENDOR_MOBILITY, USB_PRODUCT_MOBILITY_EA,
+ 0,
+ "Mobility",
+ "Ethernet",
+ },
+ {
+ USB_VENDOR_MOBILITY, USB_PRODUCT_MOBILITY_EASIDOCK,
+ 0,
+ "Mobility",
+ "EasiDock Ethernet",
+ },
+ {
+ USB_VENDOR_MOSCHIP, USB_PRODUCT_MOSCHIP_MCS7703,
+ 0,
+ "MosChip Semiconductor",
+ "MCS7703 Serial Port Adapter",
+ },
+ {
+ USB_VENDOR_MOSCHIP, USB_PRODUCT_MOSCHIP_MCS7830,
+ 0,
+ "MosChip Semiconductor",
+ "MCS7830 Ethernet",
+ },
+ {
+ USB_VENDOR_MOTOROLA, USB_PRODUCT_MOTOROLA_MC141555,
+ 0,
+ "Motorola",
+ "MC141555 hub controller",
+ },
+ {
+ USB_VENDOR_MOTOROLA, USB_PRODUCT_MOTOROLA_SB4100,
+ 0,
+ "Motorola",
+ "SB4100 USB Cable Modem",
+ },
+ {
+ USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_T720C,
+ 0,
+ "Motorola",
+ "T720c",
+ },
+ {
+ USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_A41XV32X,
+ 0,
+ "Motorola",
+ "A41x/V32x Mobile Phones",
+ },
+ {
+ USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_E398,
+ 0,
+ "Motorola",
+ "E398 Mobile Phone",
+ },
+ {
+ USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_USBLAN,
+ 0,
+ "Motorola",
+ "USBLAN",
+ },
+ {
+ USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_USBLAN2,
+ 0,
+ "Motorola",
+ "USBLAN",
+ },
+ {
+ USB_VENDOR_MOTOROLA4, USB_PRODUCT_MOTOROLA4_RT2770,
+ 0,
+ "Motorola",
+ "RT2770",
+ },
+ {
+ USB_VENDOR_MOTOROLA4, USB_PRODUCT_MOTOROLA4_RT3070,
+ 0,
+ "Motorola",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_MULTITECH, USB_PRODUCT_MULTITECH_ATLAS,
+ 0,
+ "MultiTech",
+ "MT5634ZBA-USB modem",
+ },
+ {
+ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200CU,
+ 0,
+ "Mustek Systems",
+ "1200 CU scanner",
+ },
+ {
+ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_600CU,
+ 0,
+ "Mustek Systems",
+ "600 CU scanner",
+ },
+ {
+ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200USB,
+ 0,
+ "Mustek Systems",
+ "1200 USB scanner",
+ },
+ {
+ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200UB,
+ 0,
+ "Mustek Systems",
+ "1200 UB scanner",
+ },
+ {
+ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200USBPLUS,
+ 0,
+ "Mustek Systems",
+ "1200 USB Plus scanner",
+ },
+ {
+ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200CUPLUS,
+ 0,
+ "Mustek Systems",
+ "1200 CU Plus scanner",
+ },
+ {
+ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_BEARPAW1200F,
+ 0,
+ "Mustek Systems",
+ "BearPaw 1200F scanner",
+ },
+ {
+ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_BEARPAW2400TA,
+ 0,
+ "Mustek Systems",
+ "BearPaw 2400TA scanner",
+ },
+ {
+ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_BEARPAW1200TA,
+ 0,
+ "Mustek Systems",
+ "BearPaw 1200TA scanner",
+ },
+ {
+ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_600USB,
+ 0,
+ "Mustek Systems",
+ "600 USB scanner",
+ },
+ {
+ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_MDC800,
+ 0,
+ "Mustek Systems",
+ "MDC-800 digital camera",
+ },
+ {
+ USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY,
+ 0,
+ "M-Systems",
+ "DiskOnKey",
+ },
+ {
+ USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY2,
+ 0,
+ "M-Systems",
+ "DiskOnKey",
+ },
+ {
+ USB_VENDOR_MYSON, USB_PRODUCT_MYSON_HEDEN_8813,
+ 0,
+ "Myson Technology",
+ "USB-IDE",
+ },
+ {
+ USB_VENDOR_MYSON, USB_PRODUCT_MYSON_HEDEN,
+ 0,
+ "Myson Technology",
+ "USB-IDE",
+ },
+ {
+ USB_VENDOR_MYSON, USB_PRODUCT_MYSON_HUBREADER,
+ 0,
+ "Myson Technology",
+ "COMBO Card reader with USB HUB",
+ },
+ {
+ USB_VENDOR_MYSON, USB_PRODUCT_MYSON_STARREADER,
+ 0,
+ "Myson Technology",
+ "USB flash card adapter",
+ },
+ {
+ USB_VENDOR_NATIONAL, USB_PRODUCT_NATIONAL_BEARPAW1200,
+ 0,
+ "National Semiconductor",
+ "BearPaw 1200",
+ },
+ {
+ USB_VENDOR_NATIONAL, USB_PRODUCT_NATIONAL_BEARPAW2400,
+ 0,
+ "National Semiconductor",
+ "BearPaw 2400",
+ },
+ {
+ USB_VENDOR_NEC, USB_PRODUCT_NEC_HUB_0050,
+ 0,
+ "NEC",
+ "USB 2.0 7-Port Hub",
+ },
+ {
+ USB_VENDOR_NEC, USB_PRODUCT_NEC_HUB_005A,
+ 0,
+ "NEC",
+ "USB 2.0 4-Port Hub",
+ },
+ {
+ USB_VENDOR_NEC, USB_PRODUCT_NEC_HUB,
+ 0,
+ "NEC",
+ "hub",
+ },
+ {
+ USB_VENDOR_NEC, USB_PRODUCT_NEC_HUB_B,
+ 0,
+ "NEC",
+ "hub",
+ },
+ {
+ USB_VENDOR_NEODIO, USB_PRODUCT_NEODIO_ND3260,
+ 0,
+ "Neodio",
+ "8-in-1 Multi-format Flash Controller",
+ },
+ {
+ USB_VENDOR_NEODIO, USB_PRODUCT_NEODIO_ND5010,
+ 0,
+ "Neodio",
+ "Multi-format Flash Controller",
+ },
+ {
+ USB_VENDOR_NEOTEL, USB_PRODUCT_NEOTEL_PRIME,
+ 0,
+ "Neotel",
+ "Prime USB modem",
+ },
+ {
+ USB_VENDOR_NETAC, USB_PRODUCT_NETAC_CF_CARD,
+ 0,
+ "Netac",
+ "USB-CF-Card",
+ },
+ {
+ USB_VENDOR_NETAC, USB_PRODUCT_NETAC_ONLYDISK,
+ 0,
+ "Netac",
+ "OnlyDisk",
+ },
+ {
+ USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_TURBOCONNECT,
+ 0,
+ "NetChip Technology",
+ "Turbo-Connect",
+ },
+ {
+ USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_CLIK_40,
+ 0,
+ "NetChip Technology",
+ "USB Clik! 40",
+ },
+ {
+ USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_ETHERNETGADGET,
+ 0,
+ "NetChip Technology",
+ "Linux Ethernet/RNDIS gadget on pxa210/25x/26x",
+ },
+ {
+ USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_EA101,
+ 0,
+ "BayNETGEAR",
+ "Ethernet",
+ },
+ {
+ USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_EA101X,
+ 0,
+ "BayNETGEAR",
+ "Ethernet",
+ },
+ {
+ USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_FA101,
+ 0,
+ "BayNETGEAR",
+ "Ethernet 10/100, USB1.1",
+ },
+ {
+ USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_FA120,
+ 0,
+ "BayNETGEAR",
+ "USB 2.0 Ethernet",
+ },
+ {
+ USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_WG111V2_2,
+ 0,
+ "BayNETGEAR",
+ "PrismGT USB 2.0 WLAN",
+ },
+ {
+ USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_WG111V3,
+ 0,
+ "BayNETGEAR",
+ "WG111v3",
+ },
+ {
+ USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_WG111U,
+ 0,
+ "BayNETGEAR",
+ "WG111U",
+ },
+ {
+ USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_WG111U_NF,
+ 0,
+ "BayNETGEAR",
+ "WG111U (no firmware)",
+ },
+ {
+ USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_WG111V2,
+ 0,
+ "BayNETGEAR",
+ "WG111V2",
+ },
+ {
+ USB_VENDOR_NETGEAR2, USB_PRODUCT_NETGEAR2_MA101,
+ 0,
+ "Netgear",
+ "MA101",
+ },
+ {
+ USB_VENDOR_NETGEAR2, USB_PRODUCT_NETGEAR2_MA101B,
+ 0,
+ "Netgear",
+ "MA101 Rev B",
+ },
+ {
+ USB_VENDOR_NETGEAR3, USB_PRODUCT_NETGEAR3_WG111T,
+ 0,
+ "Netgear",
+ "WG111T",
+ },
+ {
+ USB_VENDOR_NETGEAR3, USB_PRODUCT_NETGEAR3_WG111T_NF,
+ 0,
+ "Netgear",
+ "WG111T (no firmware)",
+ },
+ {
+ USB_VENDOR_NETGEAR3, USB_PRODUCT_NETGEAR3_WPN111,
+ 0,
+ "Netgear",
+ "WPN111",
+ },
+ {
+ USB_VENDOR_NETGEAR3, USB_PRODUCT_NETGEAR3_WPN111_NF,
+ 0,
+ "Netgear",
+ "WPN111 (no firmware)",
+ },
+ {
+ USB_VENDOR_NETGEAR3, USB_PRODUCT_NETGEAR3_WPN111_2,
+ 0,
+ "Netgear",
+ "WPN111",
+ },
+ {
+ USB_VENDOR_NETINDEX, USB_PRODUCT_NETINDEX_WS002IN,
+ 0,
+ "NetIndex",
+ "Willcom WS002IN",
+ },
+ {
+ USB_VENDOR_NEWLINK, USB_PRODUCT_NEWLINK_USB2IDEBRIDGE,
+ 0,
+ "NEWlink",
+ "USB 2.0 Hard Drive Enclosure",
+ },
+ {
+ USB_VENDOR_NIKON, USB_PRODUCT_NIKON_E990,
+ 0,
+ "Nikon",
+ "Digital Camera E990",
+ },
+ {
+ USB_VENDOR_NIKON, USB_PRODUCT_NIKON_LS40,
+ 0,
+ "Nikon",
+ "CoolScan LS40 ED",
+ },
+ {
+ USB_VENDOR_NIKON, USB_PRODUCT_NIKON_D300,
+ 0,
+ "Nikon",
+ "Digital Camera D300",
+ },
+ {
+ USB_VENDOR_NOVATECH, USB_PRODUCT_NOVATECH_NV902,
+ 0,
+ "NovaTech",
+ "NovaTech NV-902W",
+ },
+ {
+ USB_VENDOR_NOVATECH, USB_PRODUCT_NOVATECH_RT2573,
+ 0,
+ "NovaTech",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_NOKIA, USB_PRODUCT_NOKIA_N958GB,
+ 0,
+ "Nokia",
+ "Nokia N95 8GBc",
+ },
+ {
+ USB_VENDOR_NOKIA2, USB_PRODUCT_NOKIA2_CA42,
+ 0,
+ "Nokia",
+ "CA-42 cable",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_V640,
+ 0,
+ "Novatel Wireless",
+ "Merlin V620",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_CDMA_MODEM,
+ 0,
+ "Novatel Wireless",
+ "Novatel Wireless Merlin CDMA",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_V620,
+ 0,
+ "Novatel Wireless",
+ "Merlin V620",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_V740,
+ 0,
+ "Novatel Wireless",
+ "Merlin V740",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_V720,
+ 0,
+ "Novatel Wireless",
+ "Merlin V720",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_U740,
+ 0,
+ "Novatel Wireless",
+ "Merlin U740",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_U740_2,
+ 0,
+ "Novatel Wireless",
+ "Merlin U740",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_U870,
+ 0,
+ "Novatel Wireless",
+ "Merlin U870",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_XU870,
+ 0,
+ "Novatel Wireless",
+ "Merlin XU870",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_X950D,
+ 0,
+ "Novatel Wireless",
+ "Merlin X950D",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_ES620,
+ 0,
+ "Novatel Wireless",
+ "Expedite ES620",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_E725,
+ 0,
+ "Novatel Wireless",
+ "Expedite E725",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_ES620_2,
+ 0,
+ "Novatel Wireless",
+ "Expedite ES620",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_ES620,
+ 0,
+ "Novatel Wireless",
+ "ES620 CDMA",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_U720,
+ 0,
+ "Novatel Wireless",
+ "Merlin U720",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_EU730,
+ 0,
+ "Novatel Wireless",
+ "Expedite EU730",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_EU740,
+ 0,
+ "Novatel Wireless",
+ "Expedite EU740",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_EU870D,
+ 0,
+ "Novatel Wireless",
+ "Expedite EU870D",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_U727,
+ 0,
+ "Novatel Wireless",
+ "Merlin U727 CDMA",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_MC950D,
+ 0,
+ "Novatel Wireless",
+ "Novatel MC950D HSUPA",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_ZEROCD,
+ 0,
+ "Novatel Wireless",
+ "Novatel ZeroCD",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_ZEROCD2,
+ 0,
+ "Novatel Wireless",
+ "Novatel ZeroCD",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_U727_2,
+ 0,
+ "Novatel Wireless",
+ "Merlin U727 CDMA",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_U760,
+ 0,
+ "Novatel Wireless",
+ "Novatel U760",
+ },
+ {
+ USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_MC760,
+ 0,
+ "Novatel Wireless",
+ "Novatel MC760",
+ },
+ {
+ USB_VENDOR_NOVATEL2, USB_PRODUCT_NOVATEL2_FLEXPACKGPS,
+ 0,
+ "Novatel Wireless",
+ "NovAtel FlexPack GPS receiver",
+ },
+ {
+ USB_VENDOR_MERLIN, USB_PRODUCT_MERLIN_V620,
+ 0,
+ "Merlin",
+ "Merlin V620",
+ },
+ {
+ USB_VENDOR_O2MICRO, USB_PRODUCT_O2MICRO_OZ776_HUB,
+ 0,
+ "O2 Micro, Inc.",
+ "OZ776 hub",
+ },
+ {
+ USB_VENDOR_O2MICRO, USB_PRODUCT_O2MICRO_OZ776_CCID_SC,
+ 0,
+ "O2 Micro, Inc.",
+ "OZ776 CCID SC Reader",
+ },
+ {
+ USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C1,
+ 0,
+ "Olympus",
+ "C-1 Digital Camera",
+ },
+ {
+ USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C700,
+ 0,
+ "Olympus",
+ "C-700 Ultra Zoom",
+ },
+ {
+ USB_VENDOR_OMNIVISION, USB_PRODUCT_OMNIVISION_OV511,
+ 0,
+ "OmniVision",
+ "OV511 Camera",
+ },
+ {
+ USB_VENDOR_OMNIVISION, USB_PRODUCT_OMNIVISION_OV511PLUS,
+ 0,
+ "OmniVision",
+ "OV511+ Camera",
+ },
+ {
+ USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_SDS_HOTFIND_D,
+ 0,
+ "OnSpec",
+ "SDS-infrared.com Hotfind-D Infrared Camera",
+ },
+ {
+ USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_MDCFE_B_CF_READER,
+ 0,
+ "OnSpec",
+ "MDCFE-B USB CF Reader",
+ },
+ {
+ USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFMS_RW,
+ 0,
+ "OnSpec",
+ "SIIG/Datafab Memory Stick+CF Reader/Writer",
+ },
+ {
+ USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_READER,
+ 0,
+ "OnSpec",
+ "Datafab-based Reader",
+ },
+ {
+ USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_READER,
+ 0,
+ "OnSpec",
+ "PNY/Datafab CF+SM Reader",
+ },
+ {
+ USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_READER2,
+ 0,
+ "OnSpec",
+ "Simple Tech/Datafab CF+SM Reader",
+ },
+ {
+ USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_MDSM_B_READER,
+ 0,
+ "OnSpec",
+ "MDSM-B reader",
+ },
+ {
+ USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_COMBO,
+ 0,
+ "OnSpec",
+ "USB to CF + SM Combo (LC1)",
+ },
+ {
+ USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_UCF100,
+ 0,
+ "OnSpec",
+ "FlashLink UCF-100 CompactFlash Reader",
+ },
+ {
+ USB_VENDOR_ONSPEC2, USB_PRODUCT_ONSPEC2_IMAGEMATE_SDDR55,
+ 0,
+ "OnSpec Electronic Inc.",
+ "ImageMate SDDR55",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_VODAFONEMC3G,
+ 0,
+ "Option N.V.",
+ "Vodafone Mobile Connect 3G datacard",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GT3G,
+ 0,
+ "Option N.V.",
+ "GlobeTrotter 3G datacard",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GT3GQUAD,
+ 0,
+ "Option N.V.",
+ "GlobeTrotter 3G QUAD datacard",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GT3GPLUS,
+ 0,
+ "Option N.V.",
+ "GlobeTrotter 3G+ datacard",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GTICON322,
+ 0,
+ "Option N.V.",
+ "GlobeTrotter Icon322 storage",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GTMAX36,
+ 0,
+ "Option N.V.",
+ "GlobeTrotter Max 3.6 Modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GTHSDPA,
+ 0,
+ "Option N.V.",
+ "GlobeTrotter HSDPA",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GTMAXHSUPA,
+ 0,
+ "Option N.V.",
+ "GlobeTrotter HSUPA",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GTMAXHSUPAE,
+ 0,
+ "Option N.V.",
+ "GlobeTrotter HSUPA PCIe",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GTMAX380HSUPAE,
+ 0,
+ "Option N.V.",
+ "GlobeTrotter 380HSUPA PCIe",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GT3G_1,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GT3G_2,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GT3G_3,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GT3G_4,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GT3G_5,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GT3G_6,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_E6500,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_E6501,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_E6601,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_E6721,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_E6741,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_E6761,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_E6800,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_E7021,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_E7041,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_E7061,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_E7100,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GTM380,
+ 0,
+ "Option N.V.",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GE40X,
+ 0,
+ "Option N.V.",
+ "Globetrotter HSUPA",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GSICON72,
+ 0,
+ "Option N.V.",
+ "GlobeSurfer iCON",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GSICONHSUPA,
+ 0,
+ "Option N.V.",
+ "Globetrotter HSUPA",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_ICON401,
+ 0,
+ "Option N.V.",
+ "GlobeSurfer iCON 401",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GTHSUPA,
+ 0,
+ "Option N.V.",
+ "Globetrotter HSUPA",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GMT382,
+ 0,
+ "Option N.V.",
+ "Globetrotter HSUPA",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GE40X_1,
+ 0,
+ "Option N.V.",
+ "Globetrotter HSUPA",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GE40X_2,
+ 0,
+ "Option N.V.",
+ "Globetrotter HSUPA",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_GE40X_3,
+ 0,
+ "Option N.V.",
+ "Globetrotter HSUPA",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_ICONEDGE,
+ 0,
+ "Option N.V.",
+ "GlobeSurfer iCON EDGE",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_MODHSXPA,
+ 0,
+ "Option N.V.",
+ "Globetrotter HSUPA",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_ICON321,
+ 0,
+ "Option N.V.",
+ "Globetrotter HSUPA",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_ICON505,
+ 0,
+ "Option N.V.",
+ "Globetrotter iCON 505",
+ },
+ {
+ USB_VENDOR_OPTION, USB_PRODUCT_OPTION_ICON452,
+ 0,
+ "Option N.V.",
+ "Globetrotter iCON 452",
+ },
+ {
+ USB_VENDOR_OVISLINK, USB_PRODUCT_OVISLINK_RT3072,
+ 0,
+ "OvisLink",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_OQO, USB_PRODUCT_OQO_WIFI01,
+ 0,
+ "OQO",
+ "model 01 WiFi interface",
+ },
+ {
+ USB_VENDOR_OQO, USB_PRODUCT_OQO_BT01,
+ 0,
+ "OQO",
+ "model 01 Bluetooth interface",
+ },
+ {
+ USB_VENDOR_OQO, USB_PRODUCT_OQO_ETHER01PLUS,
+ 0,
+ "OQO",
+ "model 01+ Ethernet",
+ },
+ {
+ USB_VENDOR_OQO, USB_PRODUCT_OQO_ETHER01,
+ 0,
+ "OQO",
+ "model 01 Ethernet interface",
+ },
+ {
+ USB_VENDOR_OTI, USB_PRODUCT_OTI_DKU5,
+ 0,
+ "Ours Technology",
+ "DKU-5 Serial",
+ },
+ {
+ USB_VENDOR_OWEN, USB_PRODUCT_OWEN_AC4,
+ 0,
+ "Owen",
+ "AC4 USB-RS485 converter",
+ },
+ {
+ USB_VENDOR_PALM, USB_PRODUCT_PALM_SERIAL,
+ 0,
+ "Palm Computing",
+ "USB Serial",
+ },
+ {
+ USB_VENDOR_PALM, USB_PRODUCT_PALM_M500,
+ 0,
+ "Palm Computing",
+ "Palm m500",
+ },
+ {
+ USB_VENDOR_PALM, USB_PRODUCT_PALM_M505,
+ 0,
+ "Palm Computing",
+ "Palm m505",
+ },
+ {
+ USB_VENDOR_PALM, USB_PRODUCT_PALM_M515,
+ 0,
+ "Palm Computing",
+ "Palm m515",
+ },
+ {
+ USB_VENDOR_PALM, USB_PRODUCT_PALM_I705,
+ 0,
+ "Palm Computing",
+ "Palm i705",
+ },
+ {
+ USB_VENDOR_PALM, USB_PRODUCT_PALM_TUNGSTEN_Z,
+ 0,
+ "Palm Computing",
+ "Palm Tungsten Z",
+ },
+ {
+ USB_VENDOR_PALM, USB_PRODUCT_PALM_M125,
+ 0,
+ "Palm Computing",
+ "Palm m125",
+ },
+ {
+ USB_VENDOR_PALM, USB_PRODUCT_PALM_M130,
+ 0,
+ "Palm Computing",
+ "Palm m130",
+ },
+ {
+ USB_VENDOR_PALM, USB_PRODUCT_PALM_TUNGSTEN_T,
+ 0,
+ "Palm Computing",
+ "Palm Tungsten T",
+ },
+ {
+ USB_VENDOR_PALM, USB_PRODUCT_PALM_ZIRE31,
+ 0,
+ "Palm Computing",
+ "Palm Zire 31",
+ },
+ {
+ USB_VENDOR_PALM, USB_PRODUCT_PALM_ZIRE,
+ 0,
+ "Palm Computing",
+ "Palm Zire",
+ },
+ {
+ USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_LS120CAM,
+ 0,
+ "Panasonic (Matsushita)",
+ "LS-120 Camera",
+ },
+ {
+ USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXL840AN,
+ 0,
+ "Panasonic (Matsushita)",
+ "CD-R Drive KXL-840AN",
+ },
+ {
+ USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLRW32AN,
+ 0,
+ "Panasonic (Matsushita)",
+ "CD-R Drive KXL-RW32AN",
+ },
+ {
+ USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB20AN,
+ 0,
+ "Panasonic (Matsushita)",
+ "CD-R Drive KXL-CB20AN",
+ },
+ {
+ USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB35AN,
+ 0,
+ "Panasonic (Matsushita)",
+ "DVD-ROM & CD-R/RW",
+ },
+ {
+ USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_SDCAAE,
+ 0,
+ "Panasonic (Matsushita)",
+ "MultiMediaCard",
+ },
+ {
+ USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_TYTP50P6S,
+ 0,
+ "Panasonic (Matsushita)",
+ "TY-TP50P6-S 50in Touch Panel",
+ },
+ {
+ USB_VENDOR_PARA, USB_PRODUCT_PARA_RT3070,
+ 0,
+ "PARA Industrial",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_PEGATRON, USB_PRODUCT_PEGATRON_RT2870,
+ 0,
+ "Pegatron",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_PEGATRON, USB_PRODUCT_PEGATRON_RT3070,
+ 0,
+ "Pegatron",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_PEGATRON, USB_PRODUCT_PEGATRON_RT3070_2,
+ 0,
+ "Pegatron",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_PEGATRON, USB_PRODUCT_PEGATRON_RT3070_3,
+ 0,
+ "Pegatron",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_SERIAL1,
+ 0,
+ "Peracom Networks",
+ "Serial",
+ },
+ {
+ USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET,
+ 0,
+ "Peracom Networks",
+ "Ethernet",
+ },
+ {
+ USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET3,
+ 0,
+ "Peracom Networks",
+ "At Home Ethernet",
+ },
+ {
+ USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET2,
+ 0,
+ "Peracom Networks",
+ "Ethernet",
+ },
+ {
+ USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_DSS350,
+ 0,
+ "Philips",
+ "DSS 350 Digital Speaker System",
+ },
+ {
+ USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_DSS,
+ 0,
+ "Philips",
+ "DSS XXX Digital Speaker System",
+ },
+ {
+ USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_HUB,
+ 0,
+ "Philips",
+ "hub",
+ },
+ {
+ USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_PCA646VC,
+ 0,
+ "Philips",
+ "PCA646VC PC Camera",
+ },
+ {
+ USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_PCVC680K,
+ 0,
+ "Philips",
+ "PCVC680K Vesta Pro PC Camera",
+ },
+ {
+ USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_DSS150,
+ 0,
+ "Philips",
+ "DSS 150 Digital Speaker System",
+ },
+ {
+ USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_ACE1001,
+ 0,
+ "Philips",
+ "AKTAKOM ACE-1001 cable",
+ },
+ {
+ USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_SPE3030CC,
+ 0,
+ "Philips",
+ "USB 2.0 External Disk",
+ },
+ {
+ USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_SNU5600,
+ 0,
+ "Philips",
+ "SNU5600",
+ },
+ {
+ USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_UM10016,
+ 0,
+ "Philips",
+ "ISP 1581 Hi-Speed USB MPEG2 Encoder Reference Kit",
+ },
+ {
+ USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_DIVAUSB,
+ 0,
+ "Philips",
+ "DIVA USB mp3 player",
+ },
+ {
+ USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_RT2870,
+ 0,
+ "Philips",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_PHILIPSSEMI, USB_PRODUCT_PHILIPSSEMI_HUB1122,
+ 0,
+ "Philips Semiconductors",
+ "HUB",
+ },
+ {
+ USB_VENDOR_MEGATEC, USB_PRODUCT_MEGATEC_UPS,
+ 0,
+ "Megatec",
+ "Phoenixtec protocol based UPS",
+ },
+ {
+ USB_VENDOR_PIENGINEERING, USB_PRODUCT_PIENGINEERING_PS2USB,
+ 0,
+ "P.I. Engineering",
+ "PS2 to Mac USB Adapter",
+ },
+ {
+ USB_VENDOR_PLANEX, USB_PRODUCT_PLANEX_GW_US11H,
+ 0,
+ "Planex Communications",
+ "GW-US11H WLAN",
+ },
+ {
+ USB_VENDOR_PLANEX2, USB_PRODUCT_PLANEX2_GW_US11S,
+ 0,
+ "Planex Communications",
+ "GW-US11S WLAN",
+ },
+ {
+ USB_VENDOR_PLANEX2, USB_PRODUCT_PLANEX2_GW_US54GXS,
+ 0,
+ "Planex Communications",
+ "GW-US54GXS WLAN",
+ },
+ {
+ USB_VENDOR_PLANEX2, USB_PRODUCT_PLANEX2_GWUS54HP,
+ 0,
+ "Planex Communications",
+ "GW-US54HP",
+ },
+ {
+ USB_VENDOR_PLANEX2, USB_PRODUCT_PLANEX2_GWUS300MINIS,
+ 0,
+ "Planex Communications",
+ "GW-US300MiniS",
+ },
+ {
+ USB_VENDOR_PLANEX2, USB_PRODUCT_PLANEX2_RT3070,
+ 0,
+ "Planex Communications",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_PLANEX2, USB_PRODUCT_PLANEX2_GWUS54MINI2,
+ 0,
+ "Planex Communications",
+ "GW-US54Mini2",
+ },
+ {
+ USB_VENDOR_PLANEX2, USB_PRODUCT_PLANEX2_GWUS54SG,
+ 0,
+ "Planex Communications",
+ "GW-US54SG",
+ },
+ {
+ USB_VENDOR_PLANEX2, USB_PRODUCT_PLANEX2_GWUS54GZL,
+ 0,
+ "Planex Communications",
+ "GW-US54GZL",
+ },
+ {
+ USB_VENDOR_PLANEX2, USB_PRODUCT_PLANEX2_GWUS54GD,
+ 0,
+ "Planex Communications",
+ "GW-US54GD",
+ },
+ {
+ USB_VENDOR_PLANEX2, USB_PRODUCT_PLANEX2_GWUSMM,
+ 0,
+ "Planex Communications",
+ "GW-USMM",
+ },
+ {
+ USB_VENDOR_PLANEX2, USB_PRODUCT_PLANEX2_RT2870,
+ 0,
+ "Planex Communications",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_PLANEX2, USB_PRODUCT_PLANEX2_GWUSMICRON,
+ 0,
+ "Planex Communications",
+ "GW-USMicroN",
+ },
+ {
+ USB_VENDOR_PLANEX3, USB_PRODUCT_PLANEX3_GWUS54GZ,
+ 0,
+ "Planex Communications",
+ "GW-US54GZ",
+ },
+ {
+ USB_VENDOR_PLANEX3, USB_PRODUCT_PLANEX3_GU1000T,
+ 0,
+ "Planex Communications",
+ "GU-1000T",
+ },
+ {
+ USB_VENDOR_PLANEX3, USB_PRODUCT_PLANEX3_GWUS54MINI,
+ 0,
+ "Planex Communications",
+ "GW-US54Mini",
+ },
+ {
+ USB_VENDOR_PLEXTOR, USB_PRODUCT_PLEXTOR_40_12_40U,
+ 0,
+ "Plextor",
+ "PlexWriter 40/12/40U",
+ },
+ {
+ USB_VENDOR_PLX, USB_PRODUCT_PLX_TESTBOARD,
+ 0,
+ "PLX",
+ "test board",
+ },
+ {
+ USB_VENDOR_PLX, USB_PRODUCT_PLX_CA42,
+ 0,
+ "PLX",
+ "CA-42",
+ },
+ {
+ USB_VENDOR_PNY, USB_PRODUCT_PNY_ATTACHE2,
+ 0,
+ "PNY",
+ "USB 2.0 Flash Drive",
+ },
+ {
+ USB_VENDOR_PORTGEAR, USB_PRODUCT_PORTGEAR_EA8,
+ 0,
+ "PortGear",
+ "Ethernet",
+ },
+ {
+ USB_VENDOR_PORTGEAR, USB_PRODUCT_PORTGEAR_EA9,
+ 0,
+ "PortGear",
+ "Ethernet",
+ },
+ {
+ USB_VENDOR_PORTSMITH, USB_PRODUCT_PORTSMITH_EEA,
+ 0,
+ "Portsmith",
+ "Express Ethernet",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2X300,
+ 0,
+ "Primax Electronics",
+ "G2-200 scanner",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E300,
+ 0,
+ "Primax Electronics",
+ "G2E-300 scanner",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2300,
+ 0,
+ "Primax Electronics",
+ "G2-300 scanner",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E3002,
+ 0,
+ "Primax Electronics",
+ "G2E-300 scanner",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_9600,
+ 0,
+ "Primax Electronics",
+ "Colorado USB 9600 scanner",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_600U,
+ 0,
+ "Primax Electronics",
+ "Colorado 600u scanner",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_6200,
+ 0,
+ "Primax Electronics",
+ "Visioneer 6200 scanner",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_19200,
+ 0,
+ "Primax Electronics",
+ "Colorado USB 19200 scanner",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_1200U,
+ 0,
+ "Primax Electronics",
+ "Colorado 1200u scanner",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G600,
+ 0,
+ "Primax Electronics",
+ "G2-600 scanner",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_636I,
+ 0,
+ "Primax Electronics",
+ "ReadyScan 636i",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2600,
+ 0,
+ "Primax Electronics",
+ "G2-600 scanner",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E600,
+ 0,
+ "Primax Electronics",
+ "G2E-600 scanner",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_COMFORT,
+ 0,
+ "Primax Electronics",
+ "Comfort",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_MOUSEINABOX,
+ 0,
+ "Primax Electronics",
+ "Mouse-in-a-Box",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_PCGAUMS1,
+ 0,
+ "Primax Electronics",
+ "Sony PCGA-UMS1",
+ },
+ {
+ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_HP_RH304AA,
+ 0,
+ "Primax Electronics",
+ "HP RH304AA mouse",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2301,
+ 0,
+ "Prolific Technology",
+ "PL2301 Host-Host interface",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2302,
+ 0,
+ "Prolific Technology",
+ "PL2302 Host-Host interface",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_RSAQ2,
+ 0,
+ "Prolific Technology",
+ "PL2303 Serial (IODATA USB-RSAQ2)",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_ALLTRONIX_GPRS,
+ 0,
+ "Prolific Technology",
+ "Alltronix ACM003U00 modem",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_ALDIGA_AL11U,
+ 0,
+ "Prolific Technology",
+ "AlDiga AL-11U modem",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_MICROMAX_610U,
+ 0,
+ "Prolific Technology",
+ "Micromax 610U",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_DCU11,
+ 0,
+ "Prolific Technology",
+ "DCU-11 Phone Cable",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2303,
+ 0,
+ "Prolific Technology",
+ "PL2303 Serial (ATEN/IOGEAR UC232A)",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2305,
+ 0,
+ "Prolific Technology",
+ "Parallel printer",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_ATAPI4,
+ 0,
+ "Prolific Technology",
+ "ATAPI-4 Controller",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2501,
+ 0,
+ "Prolific Technology",
+ "PL2501 Host-Host interface",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2506,
+ 0,
+ "Prolific Technology",
+ "PL2506 USB to IDE Bridge",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_HCR331,
+ 0,
+ "Prolific Technology",
+ "HCR331 Hybrid Card Reader",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PHAROS,
+ 0,
+ "Prolific Technology",
+ "Prolific Pharos",
+ },
+ {
+ USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_RSAQ3,
+ 0,
+ "Prolific Technology",
+ "PL2303 Serial Adapter (IODATA USB-RSAQ3)",
+ },
+ {
+ USB_VENDOR_PROLIFIC2, USB_PRODUCT_PROLIFIC2_PL2303,
+ 0,
+ "Prolific Technologies",
+ "PL2303 Serial Adapter",
+ },
+ {
+ USB_VENDOR_PUTERCOM, USB_PRODUCT_PUTERCOM_UPA100,
+ 0,
+ "Putercom",
+ "USB-1284 BRIDGE",
+ },
+ {
+ USB_VENDOR_QCOM, USB_PRODUCT_QCOM_RT2573,
+ 0,
+ "Qcom",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_QCOM, USB_PRODUCT_QCOM_RT2573_2,
+ 0,
+ "Qcom",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_QCOM, USB_PRODUCT_QCOM_RT2573_3,
+ 0,
+ "Qcom",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_QCOM, USB_PRODUCT_QCOM_RT2870,
+ 0,
+ "Qcom",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_QISDA, USB_PRODUCT_QISDA_H21_1,
+ 0,
+ "Qisda",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QISDA, USB_PRODUCT_QISDA_H21_2,
+ 0,
+ "Qisda",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QISDA, USB_PRODUCT_QISDA_H20_1,
+ 0,
+ "Qisda",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QISDA, USB_PRODUCT_QISDA_H20_2,
+ 0,
+ "Qisda",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMM, USB_PRODUCT_QUALCOMM_CDMA_MSM,
+ 0,
+ "Qualcomm",
+ "CDMA Technologies MSM phone",
+ },
+ {
+ USB_VENDOR_QUALCOMM2, USB_PRODUCT_QUALCOMM2_MF330,
+ 0,
+ "Qualcomm",
+ "MF330",
+ },
+ {
+ USB_VENDOR_QUALCOMM2, USB_PRODUCT_QUALCOMM2_RWT_FCT,
+ 0,
+ "Qualcomm",
+ "RWT FCT-CDMA 2000 1xRTT modem",
+ },
+ {
+ USB_VENDOR_QUALCOMM2, USB_PRODUCT_QUALCOMM2_CDMA_MSM,
+ 0,
+ "Qualcomm",
+ "CDMA Technologies MSM modem",
+ },
+ {
+ USB_VENDOR_QUALCOMM2, USB_PRODUCT_QUALCOMM2_AC8700,
+ 0,
+ "Qualcomm",
+ "AC8700",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_CDMA_MSM,
+ 0,
+ "Qualcomm, Incorporated",
+ "CDMA Technologies MSM modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0002,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0003,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0004,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0005,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0006,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0007,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0008,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0009,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E000A,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E000B,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E000C,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E000D,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E000E,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E000F,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0010,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0011,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0012,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0013,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0014,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_MF628,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_MF633R,
+ 0,
+ "Qualcomm, Incorporated",
+ "ZTE WCDMA modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0017,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0018,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0019,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0020,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0021,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0022,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0023,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0024,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0025,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0026,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0027,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0028,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0029,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0030,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_MF626,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0032,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0033,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0037,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0039,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0042,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0043,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0048,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0049,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0051,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0052,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_ZTE_STOR2,
+ 0,
+ "Qualcomm, Incorporated",
+ "USB ZTE Storage",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0054,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0055,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0057,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0058,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0059,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0060,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0061,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0062,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0063,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0064,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0066,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0069,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0070,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0073,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0076,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0078,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0082,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E0086,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_ZTE_STOR,
+ 0,
+ "Qualcomm, Incorporated",
+ "USB ZTE Storage",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E2002,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_E2003,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_AC8710,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_AC2726,
+ 0,
+ "Qualcomm, Incorporated",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, USB_PRODUCT_QUALCOMMINC_AC8700,
+ 0,
+ "Qualcomm, Incorporated",
+ "CDMA 1xEVDO USB modem",
+ },
+ {
+ USB_VENDOR_QUANTA, USB_PRODUCT_QUANTA_RW6815_1,
+ 0,
+ "Quanta",
+ "HP iPAQ rw6815",
+ },
+ {
+ USB_VENDOR_QUANTA, USB_PRODUCT_QUANTA_RT3070,
+ 0,
+ "Quanta",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_QUANTA, USB_PRODUCT_QUANTA_Q101_STOR,
+ 0,
+ "Quanta",
+ "USB Q101 Storage",
+ },
+ {
+ USB_VENDOR_QUANTA, USB_PRODUCT_QUANTA_Q101,
+ 0,
+ "Quanta",
+ "HSDPA modem",
+ },
+ {
+ USB_VENDOR_QUANTA, USB_PRODUCT_QUANTA_Q111,
+ 0,
+ "Quanta",
+ "HSDPA modem",
+ },
+ {
+ USB_VENDOR_QUANTA, USB_PRODUCT_QUANTA_GLX,
+ 0,
+ "Quanta",
+ "HSDPA modem",
+ },
+ {
+ USB_VENDOR_QUANTA, USB_PRODUCT_QUANTA_GKE,
+ 0,
+ "Quanta",
+ "HSDPA modem",
+ },
+ {
+ USB_VENDOR_QUANTA, USB_PRODUCT_QUANTA_GLE,
+ 0,
+ "Quanta",
+ "HSDPA modem",
+ },
+ {
+ USB_VENDOR_QUANTA, USB_PRODUCT_QUANTA_RW6815R,
+ 0,
+ "Quanta",
+ "HP iPAQ rw6815 RNDIS",
+ },
+ {
+ USB_VENDOR_QTRONIX, USB_PRODUCT_QTRONIX_980N,
+ 0,
+ "Qtronix",
+ "Scorpion-980N keyboard",
+ },
+ {
+ USB_VENDOR_QUICKSHOT, USB_PRODUCT_QUICKSHOT_STRIKEPAD,
+ 0,
+ "Quickshot",
+ "USB StrikePad",
+ },
+ {
+ USB_VENDOR_RADIOSHACK, USB_PRODUCT_RADIOSHACK_USBCABLE,
+ 0,
+ "Radio Shack",
+ "USB to Serial Cable",
+ },
+ {
+ USB_VENDOR_RAINBOW, USB_PRODUCT_RAINBOW_IKEY2000,
+ 0,
+ "Rainbow Technologies",
+ "i-Key 2000",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2570,
+ 0,
+ "Ralink Technology",
+ "RT2500USB Wireless Adapter",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2070,
+ 0,
+ "Ralink Technology",
+ "RT2070",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2570_2,
+ 0,
+ "Ralink Technology",
+ "RT2500USB Wireless Adapter",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2573,
+ 0,
+ "Ralink Technology",
+ "RT2501USB Wireless Adapter",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2671,
+ 0,
+ "Ralink Technology",
+ "RT2601USB Wireless Adapter",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2770,
+ 0,
+ "Ralink Technology",
+ "RT2770",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2870,
+ 0,
+ "Ralink Technology",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT3070,
+ 0,
+ "Ralink Technology",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT3071,
+ 0,
+ "Ralink Technology",
+ "RT3071",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT3072,
+ 0,
+ "Ralink Technology",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT3370,
+ 0,
+ "Ralink Technology",
+ "RT3370",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT3572,
+ 0,
+ "Ralink Technology",
+ "RT3572",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT8070,
+ 0,
+ "Ralink Technology",
+ "RT8070",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2570_3,
+ 0,
+ "Ralink Technology",
+ "RT2500USB Wireless Adapter",
+ },
+ {
+ USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2573_2,
+ 0,
+ "Ralink Technology",
+ "RT2501USB Wireless Adapter",
+ },
+ {
+ USB_VENDOR_RATOC, USB_PRODUCT_RATOC_REXUSB60,
+ 0,
+ "RATOC Systems",
+ "USB serial adapter REX-USB60",
+ },
+ {
+ USB_VENDOR_RATOC, USB_PRODUCT_RATOC_REXUSB60F,
+ 0,
+ "RATOC Systems",
+ "USB serial adapter REX-USB60F",
+ },
+ {
+ USB_VENDOR_REALTEK, USB_PRODUCT_REALTEK_USB20CRW,
+ 0,
+ "Realtek",
+ "USB20CRW Card Reader",
+ },
+ {
+ USB_VENDOR_REALTEK, USB_PRODUCT_REALTEK_USBKR100,
+ 0,
+ "Realtek",
+ "USBKR100 USB Ethernet",
+ },
+ {
+ USB_VENDOR_REALTEK, USB_PRODUCT_REALTEK_RTL8187,
+ 0,
+ "Realtek",
+ "RTL8187 Wireless Adapter",
+ },
+ {
+ USB_VENDOR_REALTEK, USB_PRODUCT_REALTEK_RTL8187B_0,
+ 0,
+ "Realtek",
+ "RTL8187B Wireless Adapter",
+ },
+ {
+ USB_VENDOR_REALTEK, USB_PRODUCT_REALTEK_RTL8187B_1,
+ 0,
+ "Realtek",
+ "RTL8187B Wireless Adapter",
+ },
+ {
+ USB_VENDOR_REALTEK, USB_PRODUCT_REALTEK_RTL8187B_2,
+ 0,
+ "Realtek",
+ "RTL8187B Wireless Adapter",
+ },
+ {
+ USB_VENDOR_RICOH, USB_PRODUCT_RICOH_VGPVCC2,
+ 0,
+ "Ricoh",
+ "VGP-VCC2 Camera",
+ },
+ {
+ USB_VENDOR_RICOH, USB_PRODUCT_RICOH_VGPVCC3,
+ 0,
+ "Ricoh",
+ "VGP-VCC3 Camera",
+ },
+ {
+ USB_VENDOR_RICOH, USB_PRODUCT_RICOH_VGPVCC2_2,
+ 0,
+ "Ricoh",
+ "VGP-VCC2 Camera",
+ },
+ {
+ USB_VENDOR_RICOH, USB_PRODUCT_RICOH_VGPVCC2_3,
+ 0,
+ "Ricoh",
+ "VGP-VCC2 Camera",
+ },
+ {
+ USB_VENDOR_RICOH, USB_PRODUCT_RICOH_VGPVCC7,
+ 0,
+ "Ricoh",
+ "VGP-VCC7 Camera",
+ },
+ {
+ USB_VENDOR_RICOH, USB_PRODUCT_RICOH_VGPVCC8,
+ 0,
+ "Ricoh",
+ "VGP-VCC8 Camera",
+ },
+ {
+ USB_VENDOR_REINERSCT, USB_PRODUCT_REINERSCT_CYBERJACK_ECOM,
+ 0,
+ "Reiner-SCT",
+ "e-com cyberJack",
+ },
+ {
+ USB_VENDOR_ROLAND, USB_PRODUCT_ROLAND_UM1,
+ 0,
+ "Roland",
+ "UM-1 MIDI I/F",
+ },
+ {
+ USB_VENDOR_ROLAND, USB_PRODUCT_ROLAND_UM880N,
+ 0,
+ "Roland",
+ "EDIROL UM-880 MIDI I/F (native)",
+ },
+ {
+ USB_VENDOR_ROLAND, USB_PRODUCT_ROLAND_UM880G,
+ 0,
+ "Roland",
+ "EDIROL UM-880 MIDI I/F (generic)",
+ },
+ {
+ USB_VENDOR_ROCKFIRE, USB_PRODUCT_ROCKFIRE_GAMEPAD,
+ 0,
+ "Rockfire",
+ "gamepad 203USB",
+ },
+ {
+ USB_VENDOR_RATOC, USB_PRODUCT_RATOC_REXUSB60,
+ 0,
+ "RATOC Systems",
+ "REX-USB60",
+ },
+ {
+ USB_VENDOR_RATOC, USB_PRODUCT_RATOC_REXUSB60F,
+ 0,
+ "RATOC Systems",
+ "REX-USB60F",
+ },
+ {
+ USB_VENDOR_SAGEM, USB_PRODUCT_SAGEM_USBSERIAL,
+ 0,
+ "Sagem",
+ "USB-Serial Controller",
+ },
+ {
+ USB_VENDOR_SAGEM, USB_PRODUCT_SAGEM_XG760A,
+ 0,
+ "Sagem",
+ "XG-760A",
+ },
+ {
+ USB_VENDOR_SAGEM, USB_PRODUCT_SAGEM_XG76NA,
+ 0,
+ "Sagem",
+ "XG-76NA",
+ },
+ {
+ USB_VENDOR_SAMSUNG, USB_PRODUCT_SAMSUNG_ML6060,
+ 0,
+ "Samsung Electronics",
+ "ML-6060 laser printer",
+ },
+ {
+ USB_VENDOR_SAMSUNG, USB_PRODUCT_SAMSUNG_YP_U2,
+ 0,
+ "Samsung Electronics",
+ "YP-U2 MP3 Player",
+ },
+ {
+ USB_VENDOR_SAMSUNG, USB_PRODUCT_SAMSUNG_YP_U4,
+ 0,
+ "Samsung Electronics",
+ "YP-U4 MP3 Player",
+ },
+ {
+ USB_VENDOR_SAMSUNG, USB_PRODUCT_SAMSUNG_I500,
+ 0,
+ "Samsung Electronics",
+ "I500 Palm USB Phone",
+ },
+ {
+ USB_VENDOR_SAMSUNG, USB_PRODUCT_SAMSUNG_I330,
+ 0,
+ "Samsung Electronics",
+ "I330 phone cradle",
+ },
+ {
+ USB_VENDOR_SAMSUNG2, USB_PRODUCT_SAMSUNG2_RT2870_1,
+ 0,
+ "Samsung Electronics",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_SAMSUNG_TECHWIN, USB_PRODUCT_SAMSUNG_TECHWIN_DIGIMAX_410,
+ 0,
+ "Samsung Techwin",
+ "Digimax 410",
+ },
+ {
+ USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR05A,
+ 0,
+ "SanDisk",
+ "ImageMate SDDR-05a",
+ },
+ {
+ USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR31,
+ 0,
+ "SanDisk",
+ "ImageMate SDDR-31",
+ },
+ {
+ USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR05,
+ 0,
+ "SanDisk",
+ "ImageMate SDDR-05",
+ },
+ {
+ USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR12,
+ 0,
+ "SanDisk",
+ "ImageMate SDDR-12",
+ },
+ {
+ USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR09,
+ 0,
+ "SanDisk",
+ "ImageMate SDDR-09",
+ },
+ {
+ USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR75,
+ 0,
+ "SanDisk",
+ "ImageMate SDDR-75",
+ },
+ {
+ USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ2_256,
+ 0,
+ "SanDisk",
+ "Cruzer Mini 256MB",
+ },
+ {
+ USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ4_128,
+ 0,
+ "SanDisk",
+ "Cruzer Micro 128MB",
+ },
+ {
+ USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ4_256,
+ 0,
+ "SanDisk",
+ "Cruzer Micro 256MB",
+ },
+ {
+ USB_VENDOR_SANWA, USB_PRODUCT_SANWA_KB_USB2,
+ 0,
+ "Sanwa Electric Instrument Co., Ltd.",
+ "KB-USB2 multimeter cable",
+ },
+ {
+ USB_VENDOR_SANYO, USB_PRODUCT_SANYO_SCP4900,
+ 0,
+ "Sanyo Electric",
+ "Sanyo SCP-4900 USB Phone",
+ },
+ {
+ USB_VENDOR_SCANLOGIC, USB_PRODUCT_SCANLOGIC_SL11R,
+ 0,
+ "ScanLogic",
+ "SL11R IDE Adapter",
+ },
+ {
+ USB_VENDOR_SCANLOGIC, USB_PRODUCT_SCANLOGIC_336CX,
+ 0,
+ "ScanLogic",
+ "Phantom 336CX - C3 scanner",
+ },
+ {
+ USB_VENDOR_SENAO, USB_PRODUCT_SENAO_RT2870_3,
+ 0,
+ "Senao",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_SENAO, USB_PRODUCT_SENAO_RT2870_4,
+ 0,
+ "Senao",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_SENAO, USB_PRODUCT_SENAO_NUB8301,
+ 0,
+ "Senao",
+ "NUB-8301",
+ },
+ {
+ USB_VENDOR_SENAO, USB_PRODUCT_SENAO_RT2870_1,
+ 0,
+ "Senao",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_SENAO, USB_PRODUCT_SENAO_RT2870_2,
+ 0,
+ "Senao",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_SENAO, USB_PRODUCT_SENAO_RT3070,
+ 0,
+ "Senao",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_SENAO, USB_PRODUCT_SENAO_RT3071,
+ 0,
+ "Senao",
+ "RT3071",
+ },
+ {
+ USB_VENDOR_SENAO, USB_PRODUCT_SENAO_RT3072_1,
+ 0,
+ "Senao",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_SENAO, USB_PRODUCT_SENAO_RT3072_2,
+ 0,
+ "Senao",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_SENAO, USB_PRODUCT_SENAO_RT3072_3,
+ 0,
+ "Senao",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_SENAO, USB_PRODUCT_SENAO_RT3072_4,
+ 0,
+ "Senao",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_SENAO, USB_PRODUCT_SENAO_RT3072_5,
+ 0,
+ "Senao",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_SHANTOU, USB_PRODUCT_SHANTOU_ST268,
+ 0,
+ "ShanTou",
+ "ST268",
+ },
+ {
+ USB_VENDOR_SHANTOU, USB_PRODUCT_SHANTOU_DM9601,
+ 0,
+ "ShanTou",
+ "DM 9601",
+ },
+ {
+ USB_VENDOR_SHARK, USB_PRODUCT_SHARK_PA,
+ 0,
+ "Shark",
+ "Pocket Adapter",
+ },
+ {
+ USB_VENDOR_SHARP, USB_PRODUCT_SHARP_SL5500,
+ 0,
+ "Sharp",
+ "Zaurus SL-5500 PDA",
+ },
+ {
+ USB_VENDOR_SHARP, USB_PRODUCT_SHARP_SLA300,
+ 0,
+ "Sharp",
+ "Zaurus SL-A300 PDA",
+ },
+ {
+ USB_VENDOR_SHARP, USB_PRODUCT_SHARP_SL5600,
+ 0,
+ "Sharp",
+ "Zaurus SL-5600 PDA",
+ },
+ {
+ USB_VENDOR_SHARP, USB_PRODUCT_SHARP_SLC700,
+ 0,
+ "Sharp",
+ "Zaurus SL-C700 PDA",
+ },
+ {
+ USB_VENDOR_SHARP, USB_PRODUCT_SHARP_SLC750,
+ 0,
+ "Sharp",
+ "Zaurus SL-C750 PDA",
+ },
+ {
+ USB_VENDOR_SHARP, USB_PRODUCT_SHARP_WZERO3ES,
+ 0,
+ "Sharp",
+ "W-ZERO3 ES Smartphone",
+ },
+ {
+ USB_VENDOR_SHARP, USB_PRODUCT_SHARP_WZERO3ADES,
+ 0,
+ "Sharp",
+ "Advanced W-ZERO3 ES Smartphone",
+ },
+ {
+ USB_VENDOR_SHARP, USB_PRODUCT_SHARP_WILLCOM03,
+ 0,
+ "Sharp",
+ "WILLCOM03",
+ },
+ {
+ USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSB,
+ 0,
+ "Shuttle Technology",
+ "E-USB Bridge",
+ },
+ {
+ USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSCSI,
+ 0,
+ "Shuttle Technology",
+ "eUSCSI Bridge",
+ },
+ {
+ USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_SDDR09,
+ 0,
+ "Shuttle Technology",
+ "ImageMate SDDR09",
+ },
+ {
+ USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBCFSM,
+ 0,
+ "Shuttle Technology",
+ "eUSB SmartMedia / CompactFlash Adapter",
+ },
+ {
+ USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_ZIOMMC,
+ 0,
+ "Shuttle Technology",
+ "eUSB MultiMediaCard Adapter",
+ },
+ {
+ USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_HIFD,
+ 0,
+ "Shuttle Technology",
+ "Sony Hifd",
+ },
+ {
+ USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBATAPI,
+ 0,
+ "Shuttle Technology",
+ "eUSB ATA/ATAPI Adapter",
+ },
+ {
+ USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CF,
+ 0,
+ "Shuttle Technology",
+ "eUSB CompactFlash Adapter",
+ },
+ {
+ USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSCSI_B,
+ 0,
+ "Shuttle Technology",
+ "eUSCSI Bridge",
+ },
+ {
+ USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSCSI_C,
+ 0,
+ "Shuttle Technology",
+ "eUSCSI Bridge",
+ },
+ {
+ USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CDRW,
+ 0,
+ "Shuttle Technology",
+ "CD-RW Device",
+ },
+ {
+ USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBORCA,
+ 0,
+ "Shuttle Technology",
+ "eUSB ORCA Quad Reader",
+ },
+ {
+ USB_VENDOR_SIEMENS, USB_PRODUCT_SIEMENS_SPEEDSTREAM,
+ 0,
+ "Siemens",
+ "SpeedStream",
+ },
+ {
+ USB_VENDOR_SIEMENS, USB_PRODUCT_SIEMENS_SPEEDSTREAM22,
+ 0,
+ "Siemens",
+ "SpeedStream 1022",
+ },
+ {
+ USB_VENDOR_SIEMENS2, USB_PRODUCT_SIEMENS2_WLL013,
+ 0,
+ "Siemens",
+ "WLL013",
+ },
+ {
+ USB_VENDOR_SIEMENS2, USB_PRODUCT_SIEMENS2_ES75,
+ 0,
+ "Siemens",
+ "GSM module MC35",
+ },
+ {
+ USB_VENDOR_SIEMENS2, USB_PRODUCT_SIEMENS2_WL54G,
+ 0,
+ "Siemens",
+ "54g USB Network Adapter",
+ },
+ {
+ USB_VENDOR_SIEMENS3, USB_PRODUCT_SIEMENS3_SX1,
+ 0,
+ "Siemens",
+ "SX1",
+ },
+ {
+ USB_VENDOR_SIEMENS3, USB_PRODUCT_SIEMENS3_X65,
+ 0,
+ "Siemens",
+ "X65",
+ },
+ {
+ USB_VENDOR_SIEMENS3, USB_PRODUCT_SIEMENS3_X75,
+ 0,
+ "Siemens",
+ "X75",
+ },
+ {
+ USB_VENDOR_SIEMENS3, USB_PRODUCT_SIEMENS3_EF81,
+ 0,
+ "Siemens",
+ "EF81",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_EM5625,
+ 0,
+ "Sierra Wireless",
+ "EM5625",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC5720_2,
+ 0,
+ "Sierra Wireless",
+ "MC5720",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC5725,
+ 0,
+ "Sierra Wireless",
+ "MC5725",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AIRCARD580,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless AirCard 580",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AIRCARD595,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless AirCard 595",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC595U,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless AirCard 595U",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC597E,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless AirCard 597E",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_EM5725,
+ 0,
+ "Sierra Wireless",
+ "EM5725",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_C597,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless Compass 597",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC5727,
+ 0,
+ "Sierra Wireless",
+ "MC5727",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_T598,
+ 0,
+ "Sierra Wireless",
+ "T598",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_T11,
+ 0,
+ "Sierra Wireless",
+ "T11",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC402,
+ 0,
+ "Sierra Wireless",
+ "AC402",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC5728,
+ 0,
+ "Sierra Wireless",
+ "MC5728",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_E0029,
+ 0,
+ "Sierra Wireless",
+ "E0029",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AIRCARD580,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless AirCard 580",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC595U,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless AirCard 595U",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC5720,
+ 0,
+ "Sierra Wireless",
+ "MC5720 Wireless Modem",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MINI5725,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless miniPCI 5275",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC5727_2,
+ 0,
+ "Sierra Wireless",
+ "MC5727",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8755_2,
+ 0,
+ "Sierra Wireless",
+ "MC8755",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8765,
+ 0,
+ "Sierra Wireless",
+ "MC8765",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8755,
+ 0,
+ "Sierra Wireless",
+ "MC8755",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8765_2,
+ 0,
+ "Sierra Wireless",
+ "MC8765",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8755_4,
+ 0,
+ "Sierra Wireless",
+ "MC8755",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8765_3,
+ 0,
+ "Sierra Wireless",
+ "MC8765",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC875U,
+ 0,
+ "Sierra Wireless",
+ "AC875U HSDPA USB Modem",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8755_3,
+ 0,
+ "Sierra Wireless",
+ "MC8755 HSDPA",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8775_2,
+ 0,
+ "Sierra Wireless",
+ "MC8775",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8775,
+ 0,
+ "Sierra Wireless",
+ "MC8775",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC875,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless AirCard 875",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC875U_2,
+ 0,
+ "Sierra Wireless",
+ "AC875U",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC875E,
+ 0,
+ "Sierra Wireless",
+ "AC875E",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8780,
+ 0,
+ "Sierra Wireless",
+ "MC8780",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8781,
+ 0,
+ "Sierra Wireless",
+ "MC8781",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8780_2,
+ 0,
+ "Sierra Wireless",
+ "MC8780",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8781_2,
+ 0,
+ "Sierra Wireless",
+ "MC8781",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8780_3,
+ 0,
+ "Sierra Wireless",
+ "MC8780",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8781_3,
+ 0,
+ "Sierra Wireless",
+ "MC8781",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8785,
+ 0,
+ "Sierra Wireless",
+ "MC8785",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8785_2,
+ 0,
+ "Sierra Wireless",
+ "MC8785",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8790,
+ 0,
+ "Sierra Wireless",
+ "MC8790",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8791,
+ 0,
+ "Sierra Wireless",
+ "MC8791",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8792,
+ 0,
+ "Sierra Wireless",
+ "MC8792",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC880,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless AirCard 880",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC881,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless AirCard 881",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC880E,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless AirCard 880E",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC881E,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless AirCard 881E",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC880U,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless AirCard 880U",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC881U,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless AirCard 881U",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC885E,
+ 0,
+ "Sierra Wireless",
+ "AC885E",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC885E_2,
+ 0,
+ "Sierra Wireless",
+ "AC885E",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AC885U,
+ 0,
+ "Sierra Wireless",
+ "Sierra Wireless AirCard 885U",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_C888,
+ 0,
+ "Sierra Wireless",
+ "C888",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_C22,
+ 0,
+ "Sierra Wireless",
+ "C22",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_E6892,
+ 0,
+ "Sierra Wireless",
+ "E6892",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_E6893,
+ 0,
+ "Sierra Wireless",
+ "E6893",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC8700,
+ 0,
+ "Sierra Wireless",
+ "MC8700",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AIRCARD875,
+ 0,
+ "Sierra Wireless",
+ "Aircard 875 HSDPA",
+ },
+ {
+ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_TRUINSTALL,
+ 0,
+ "Sierra Wireless",
+ "Aircard Tru Installer",
+ },
+ {
+ USB_VENDOR_SIGMATEL, USB_PRODUCT_SIGMATEL_WBT_3052,
+ 0,
+ "Sigmatel",
+ "WBT-3052 IrDA/USB Bridge",
+ },
+ {
+ USB_VENDOR_SIGMATEL, USB_PRODUCT_SIGMATEL_I_BEAD100,
+ 0,
+ "Sigmatel",
+ "i-Bead 100 MP3 Player",
+ },
+ {
+ USB_VENDOR_SIIG, USB_PRODUCT_SIIG_DIGIFILMREADER,
+ 0,
+ "SIIG",
+ "DigiFilm-Combo Reader",
+ },
+ {
+ USB_VENDOR_SIIG, USB_PRODUCT_SIIG_WINTERREADER,
+ 0,
+ "SIIG",
+ "WINTERREADER Reader",
+ },
+ {
+ USB_VENDOR_SIIG2, USB_PRODUCT_SIIG2_USBTOETHER,
+ 0,
+ "SIIG",
+ "USB TO Ethernet",
+ },
+ {
+ USB_VENDOR_SIIG2, USB_PRODUCT_SIIG2_US2308,
+ 0,
+ "SIIG",
+ "Serial",
+ },
+ {
+ USB_VENDOR_SILICOM, USB_PRODUCT_SILICOM_U2E,
+ 0,
+ "Silicom",
+ "U2E",
+ },
+ {
+ USB_VENDOR_SILICOM, USB_PRODUCT_SILICOM_GPE,
+ 0,
+ "Silicom",
+ "Psion Gold Port Ethernet",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_VSTABI,
+ 0,
+ "Silicon Labs",
+ "Vstabi",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_ARKHAM_DS101_M,
+ 0,
+ "Silicon Labs",
+ "Arkham DS101 Monitor",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_ARKHAM_DS101_A,
+ 0,
+ "Silicon Labs",
+ "Arkham DS101 Adapter",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_BSM7DUSB,
+ 0,
+ "Silicon Labs",
+ "BSM7-D-USB",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_POLOLU,
+ 0,
+ "Silicon Labs",
+ "Pololu Serial",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_CYGNAL_DEBUG,
+ 0,
+ "Silicon Labs",
+ "Cygnal Debug Adapter",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_SB_PARAMOUNT_ME,
+ 0,
+ "Silicon Labs",
+ "Software Bisque Paramount ME",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_SAEL,
+ 0,
+ "Silicon Labs",
+ "SA-EL USB",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_GSM2228,
+ 0,
+ "Silicon Labs",
+ "Enfora GSM2228 USB",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_ARGUSISP,
+ 0,
+ "Silicon Labs",
+ "Argussoft ISP",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_IMS_USB_RS422,
+ 0,
+ "Silicon Labs",
+ "IMS USB-RS422",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_CRUMB128,
+ 0,
+ "Silicon Labs",
+ "Crumb128 board",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_DEGREE,
+ 0,
+ "Silicon Labs",
+ "Degree Controls Inc",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_TRACIENT,
+ 0,
+ "Silicon Labs",
+ "Tracient RFID",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_TRAQMATE,
+ 0,
+ "Silicon Labs",
+ "Track Systems Traqmate",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_SUUNTO,
+ 0,
+ "Silicon Labs",
+ "Suunto Sports Instrument",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_ARYGON_MIFARE,
+ 0,
+ "Silicon Labs",
+ "Arygon Mifare RFID reader",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_BURNSIDE,
+ 0,
+ "Silicon Labs",
+ "Burnside Telecon Deskmobile",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_TAMSMASTER,
+ 0,
+ "Silicon Labs",
+ "Tams Master Easy Control",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_WMRBATT,
+ 0,
+ "Silicon Labs",
+ "WMR RIGblaster Plug&Play",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_WMRRIGBLASTER,
+ 0,
+ "Silicon Labs",
+ "WMR RIGblaster Plug&Play",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_WMRRIGTALK,
+ 0,
+ "Silicon Labs",
+ "WMR RIGtalk RT1",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_HELICOM,
+ 0,
+ "Silicon Labs",
+ "Helicomm IP-Link 1220-DVM",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_AVIT_USB_TTL,
+ 0,
+ "Silicon Labs",
+ "AVIT Research USB-TTL",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_MJS_TOSLINK,
+ 0,
+ "Silicon Labs",
+ "MJS USB-TOSLINk",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_WAVIT,
+ 0,
+ "Silicon Labs",
+ "ThinkOptics WavIt",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_MSD_DASHHAWK,
+ 0,
+ "Silicon Labs",
+ "MSD DashHawk",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_INSYS_MODEM,
+ 0,
+ "Silicon Labs",
+ "INSYS Modem",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_LIPOWSKY_JTAG,
+ 0,
+ "Silicon Labs",
+ "Lipowsky Baby-JTAG",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_LIPOWSKY_LIN,
+ 0,
+ "Silicon Labs",
+ "Lipowsky Baby-LIN",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_AEROCOMM,
+ 0,
+ "Silicon Labs",
+ "Aerocomm Radio",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_ZEPHYR_BIO,
+ 0,
+ "Silicon Labs",
+ "Zephyr Bioharness",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_EMS_C1007,
+ 0,
+ "Silicon Labs",
+ "EMS C1007 HF RFID controller",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_LIPOWSKY_HARP,
+ 0,
+ "Silicon Labs",
+ "Lipowsky HARP-1",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_C2_EDGE_MODEM,
+ 0,
+ "Silicon Labs",
+ "Commander 2 EDGE(GSM) Modem",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_CYGNAL_GPS,
+ 0,
+ "Silicon Labs",
+ "Cygnal Fasttrax GPS",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_TELEGESYS_ETRX2,
+ 0,
+ "Silicon Labs",
+ "Telegesys ETRX2USB",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_PROCYON_AVS,
+ 0,
+ "Silicon Labs",
+ "Procyon AVS",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_MC35PU,
+ 0,
+ "Silicon Labs",
+ "MC35pu",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_CYGNAL,
+ 0,
+ "Silicon Labs",
+ "Cygnal",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_AMBER_AMB2560,
+ 0,
+ "Silicon Labs",
+ "Amber Wireless AMB2560",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_KYOCERA_GPS,
+ 0,
+ "Silicon Labs",
+ "Kyocera GPS",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_BEI_VCP,
+ 0,
+ "Silicon Labs",
+ "BEI USB Sensor (VCP)",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_CP2102,
+ 0,
+ "Silicon Labs",
+ "SILABS USB UART",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_CP210X_2,
+ 0,
+ "Silicon Labs",
+ "CP210x Serial",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_INFINITY_MIC,
+ 0,
+ "Silicon Labs",
+ "Infinity GPS-MIC-1 Radio Monophone",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_USBSCOPE50,
+ 0,
+ "Silicon Labs",
+ "USBscope50",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_USBWAVE12,
+ 0,
+ "Silicon Labs",
+ "USBwave12",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_USBPULSE100,
+ 0,
+ "Silicon Labs",
+ "USBpulse100",
+ },
+ {
+ USB_VENDOR_SILABS, USB_PRODUCT_SILABS_USBCOUNT50,
+ 0,
+ "Silicon Labs",
+ "USBcount50",
+ },
+ {
+ USB_VENDOR_SILABS2, USB_PRODUCT_SILABS2_DCU11CLONE,
+ 0,
+ "SILABS2",
+ "DCU-11 clone",
+ },
+ {
+ USB_VENDOR_SILABS3, USB_PRODUCT_SILABS3_GPRS_MODEM,
+ 0,
+ "Silicon Labs",
+ "GPRS Modem",
+ },
+ {
+ USB_VENDOR_SILABS4, USB_PRODUCT_SILABS4_100EU_MODEM,
+ 0,
+ "Silicon Labs",
+ "GPRS Modem 100EU",
+ },
+ {
+ USB_VENDOR_SILICONPORTALS, USB_PRODUCT_SILICONPORTALS_YAPPH_NF,
+ 0,
+ "Silicon Portals",
+ "YAP Phone (no firmware)",
+ },
+ {
+ USB_VENDOR_SILICONPORTALS, USB_PRODUCT_SILICONPORTALS_YAPPHONE,
+ 0,
+ "Silicon Portals",
+ "YAP Phone",
+ },
+ {
+ USB_VENDOR_SIRIUS, USB_PRODUCT_SIRIUS_ROADSTER,
+ 0,
+ "Sirius Technologies",
+ "NetComm Roadster II 56 USB",
+ },
+ {
+ USB_VENDOR_SITECOM, USB_PRODUCT_SITECOM_LN029,
+ 0,
+ "Sitecom",
+ "USB 2.0 Ethernet",
+ },
+ {
+ USB_VENDOR_SITECOM, USB_PRODUCT_SITECOM_SERIAL,
+ 0,
+ "Sitecom",
+ "USB to serial cable (v2)",
+ },
+ {
+ USB_VENDOR_SITECOM2, USB_PRODUCT_SITECOM2_WL022,
+ 0,
+ "Sitecom",
+ "WL-022",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT2870_1,
+ 0,
+ "Sitecom Europe",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_WL168V1,
+ 0,
+ "Sitecom Europe",
+ "WL-168 v1",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_WL168V4,
+ 0,
+ "Sitecom Europe",
+ "WL-168 v4",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT2870_2,
+ 0,
+ "Sitecom Europe",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT2870_3,
+ 0,
+ "Sitecom Europe",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT2870_4,
+ 0,
+ "Sitecom Europe",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT2770,
+ 0,
+ "Sitecom Europe",
+ "RT2770",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT3070_2,
+ 0,
+ "Sitecom Europe",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT3070_3,
+ 0,
+ "Sitecom Europe",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT3070_4,
+ 0,
+ "Sitecom Europe",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT3070,
+ 0,
+ "Sitecom Europe",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_WL608,
+ 0,
+ "Sitecom Europe",
+ "WL-608",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT3071,
+ 0,
+ "Sitecom Europe",
+ "RT3071",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT3072_1,
+ 0,
+ "Sitecom Europe",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT3072_2,
+ 0,
+ "Sitecom Europe",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT3072_3,
+ 0,
+ "Sitecom Europe",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT3072_4,
+ 0,
+ "Sitecom Europe",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT3072_5,
+ 0,
+ "Sitecom Europe",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_RT3072_6,
+ 0,
+ "Sitecom Europe",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_LN028,
+ 0,
+ "Sitecom Europe",
+ "LN-028",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_WL113,
+ 0,
+ "Sitecom Europe",
+ "WL-113",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_ZD1211B,
+ 0,
+ "Sitecom Europe",
+ "ZD1211B",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_WL172,
+ 0,
+ "Sitecom Europe",
+ "WL-172",
+ },
+ {
+ USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_WL113R2,
+ 0,
+ "Sitecom Europe",
+ "WL-113 rev 2",
+ },
+ {
+ USB_VENDOR_SKANHEX, USB_PRODUCT_SKANHEX_MD_7425,
+ 0,
+ "Skanhex Technology, Inc.",
+ "MD 7425 Camera",
+ },
+ {
+ USB_VENDOR_SKANHEX, USB_PRODUCT_SKANHEX_SX_520Z,
+ 0,
+ "Skanhex Technology, Inc.",
+ "SX 520z Camera",
+ },
+ {
+ USB_VENDOR_SMART, USB_PRODUCT_SMART_PL2303,
+ 0,
+ "Smart Technologies",
+ "Serial adapter",
+ },
+ {
+ USB_VENDOR_SMARTBRIDGES, USB_PRODUCT_SMARTBRIDGES_SMARTLINK,
+ 0,
+ "SmartBridges",
+ "SmartLink USB Ethernet",
+ },
+ {
+ USB_VENDOR_SMARTBRIDGES, USB_PRODUCT_SMARTBRIDGES_SMARTNIC,
+ 0,
+ "SmartBridges",
+ "smartNIC 2 PnP Ethernet",
+ },
+ {
+ USB_VENDOR_SMC, USB_PRODUCT_SMC_2102USB,
+ 0,
+ "Standard Microsystems",
+ "10Mbps Ethernet",
+ },
+ {
+ USB_VENDOR_SMC, USB_PRODUCT_SMC_2202USB,
+ 0,
+ "Standard Microsystems",
+ "10/100 Ethernet",
+ },
+ {
+ USB_VENDOR_SMC, USB_PRODUCT_SMC_2206USB,
+ 0,
+ "Standard Microsystems",
+ "EZ Connect USB Ethernet",
+ },
+ {
+ USB_VENDOR_SMC, USB_PRODUCT_SMC_2862WG,
+ 0,
+ "Standard Microsystems",
+ "EZ Connect Wireless Adapter",
+ },
+ {
+ USB_VENDOR_SMC2, USB_PRODUCT_SMC2_2020HUB,
+ 0,
+ "Standard Microsystems",
+ "USB Hub",
+ },
+ {
+ USB_VENDOR_SMC2, USB_PRODUCT_SMC2_2514HUB,
+ 0,
+ "Standard Microsystems",
+ "USB Hub",
+ },
+ {
+ USB_VENDOR_SMC3, USB_PRODUCT_SMC3_2662WUSB,
+ 0,
+ "Standard Microsystems",
+ "2662W-AR Wireless",
+ },
+ {
+ USB_VENDOR_SOHOWARE, USB_PRODUCT_SOHOWARE_NUB100,
+ 0,
+ "SOHOware",
+ "10/100 USB Ethernet",
+ },
+ {
+ USB_VENDOR_SOHOWARE, USB_PRODUCT_SOHOWARE_NUB110,
+ 0,
+ "SOHOware",
+ "10/100 USB Ethernet",
+ },
+ {
+ USB_VENDOR_SOLIDYEAR, USB_PRODUCT_SOLIDYEAR_KEYBOARD,
+ 0,
+ "Solid Year",
+ "Solid Year USB keyboard",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC,
+ 0,
+ "Sony",
+ "DSC cameras",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_NW_MS7,
+ 0,
+ "Sony",
+ "Memorystick NW-MS7",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_PORTABLE_HDD_V2,
+ 0,
+ "Sony",
+ "Portable USB Harddrive V2",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_MSACUS1,
+ 0,
+ "Sony",
+ "Memorystick MSAC-US1",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_HANDYCAM,
+ 0,
+ "Sony",
+ "Handycam",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_MSC,
+ 0,
+ "Sony",
+ "MSC memory stick slot",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_35,
+ 0,
+ "Sony",
+ "Sony Clie v3.5",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_PEG_N760C,
+ 0,
+ "Sony",
+ "PEG N760c Memorystick",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_40,
+ 0,
+ "Sony",
+ "Sony Clie v4.0",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_MSC_U03,
+ 0,
+ "Sony",
+ "Memorystick MSC-U03",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_40_MS,
+ 0,
+ "Sony",
+ "Sony Clie v4.0 Memory Stick slot",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_S360,
+ 0,
+ "Sony",
+ "Sony Clie s360",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_41_MS,
+ 0,
+ "Sony",
+ "Sony Clie v4.1 Memory Stick slot",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_41,
+ 0,
+ "Sony",
+ "Sony Clie v4.1",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_NX60,
+ 0,
+ "Sony",
+ "Sony Clie nx60",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_TH55,
+ 0,
+ "Sony",
+ "Sony Clie th55",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_TJ37,
+ 0,
+ "Sony",
+ "Sony Clie tj37",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_RF_RECEIVER,
+ 0,
+ "Sony",
+ "Sony RF mouse/kbd Receiver VGP-WRC1",
+ },
+ {
+ USB_VENDOR_SONY, USB_PRODUCT_SONY_QN3,
+ 0,
+ "Sony",
+ "Sony QN3 CMD-Jxx phone cable",
+ },
+ {
+ USB_VENDOR_SONYERICSSON, USB_PRODUCT_SONYERICSSON_DCU10,
+ 0,
+ "Sony Ericsson",
+ "DCU-10 Phone Data Cable",
+ },
+ {
+ USB_VENDOR_SONYERICSSON, USB_PRODUCT_SONYERICSSON_DATAPILOT,
+ 0,
+ "Sony Ericsson",
+ "Datapilot Phone Cable",
+ },
+ {
+ USB_VENDOR_SOURCENEXT, USB_PRODUCT_SOURCENEXT_KEIKAI8,
+ 0,
+ "SOURCENEXT",
+ "KeikaiDenwa 8",
+ },
+ {
+ USB_VENDOR_SOURCENEXT, USB_PRODUCT_SOURCENEXT_KEIKAI8_CHG,
+ 0,
+ "SOURCENEXT",
+ "KeikaiDenwa 8 with charger",
+ },
+ {
+ USB_VENDOR_SPARKLAN, USB_PRODUCT_SPARKLAN_RT2573,
+ 0,
+ "SparkLAN",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_SPARKLAN, USB_PRODUCT_SPARKLAN_RT2870_1,
+ 0,
+ "SparkLAN",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_SPARKLAN, USB_PRODUCT_SPARKLAN_RT3070,
+ 0,
+ "SparkLAN",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_SPEEDDRAGON, USB_PRODUCT_SPEEDDRAGON_MS3303H,
+ 0,
+ "Speed Dragon Multimedia",
+ "MS3303H Serial",
+ },
+ {
+ USB_VENDOR_SPHAIRON, USB_PRODUCT_SPHAIRON_UB801R,
+ 0,
+ "Sphairon Access Systems GmbH",
+ "UB801R",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_ZEROCD,
+ 0,
+ "Stelera Wireless",
+ "Zerocd Installer",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_C105,
+ 0,
+ "Stelera Wireless",
+ "Stelera/Bandrish C105 USB",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E1003,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E1004,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E1005,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E1006,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E1007,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E1008,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E1009,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E100A,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E100B,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E100C,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E100D,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E100E,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E100F,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E1010,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E1011,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_STELERA, USB_PRODUCT_STELERA_E1012,
+ 0,
+ "Stelera Wireless",
+ "3G modem",
+ },
+ {
+ USB_VENDOR_MPMAN, USB_PRODUCT_MPMAN_MPF400_1,
+ 0,
+ "MpMan",
+ "MPF400 Music Player 1Go",
+ },
+ {
+ USB_VENDOR_MPMAN, USB_PRODUCT_MPMAN_MPF400_2,
+ 0,
+ "MpMan",
+ "MPF400 Music Player 2Go",
+ },
+ {
+ USB_VENDOR_STMICRO, USB_PRODUCT_STMICRO_BIOCPU,
+ 0,
+ "STMicroelectronics",
+ "Biometric Coprocessor",
+ },
+ {
+ USB_VENDOR_STMICRO, USB_PRODUCT_STMICRO_COMMUNICATOR,
+ 0,
+ "STMicroelectronics",
+ "USB Communicator",
+ },
+ {
+ USB_VENDOR_STSN, USB_PRODUCT_STSN_STSN0001,
+ 0,
+ "STSN",
+ "Internet Access Device",
+ },
+ {
+ USB_VENDOR_SUNTAC, USB_PRODUCT_SUNTAC_DS96L,
+ 0,
+ "SUN Corporation",
+ "SUNTAC U-Cable type D2",
+ },
+ {
+ USB_VENDOR_SUNTAC, USB_PRODUCT_SUNTAC_PS64P1,
+ 0,
+ "SUN Corporation",
+ "SUNTAC U-Cable type P1",
+ },
+ {
+ USB_VENDOR_SUNTAC, USB_PRODUCT_SUNTAC_VS10U,
+ 0,
+ "SUN Corporation",
+ "SUNTAC Slipper U",
+ },
+ {
+ USB_VENDOR_SUNTAC, USB_PRODUCT_SUNTAC_IS96U,
+ 0,
+ "SUN Corporation",
+ "SUNTAC Ir-Trinity",
+ },
+ {
+ USB_VENDOR_SUNTAC, USB_PRODUCT_SUNTAC_AS64LX,
+ 0,
+ "SUN Corporation",
+ "SUNTAC U-Cable type A3",
+ },
+ {
+ USB_VENDOR_SUNTAC, USB_PRODUCT_SUNTAC_AS144L4,
+ 0,
+ "SUN Corporation",
+ "SUNTAC U-Cable type A4",
+ },
+ {
+ USB_VENDOR_SUN, USB_PRODUCT_SUN_KEYBOARD_TYPE_6,
+ 0,
+ "Sun Microsystems",
+ "Type 6 USB keyboard",
+ },
+ {
+ USB_VENDOR_SUN, USB_PRODUCT_SUN_KEYBOARD_TYPE_7,
+ 0,
+ "Sun Microsystems",
+ "Type 7 USB keyboard",
+ },
+ {
+ USB_VENDOR_SUN, USB_PRODUCT_SUN_MOUSE,
+ 0,
+ "Sun Microsystems",
+ "Type 6 USB mouse",
+ },
+ {
+ USB_VENDOR_SUN, USB_PRODUCT_SUN_KBD_HUB,
+ 0,
+ "Sun Microsystems",
+ "Kbd Hub",
+ },
+ {
+ USB_VENDOR_SUPERTOP, USB_PRODUCT_SUPERTOP_IDE,
+ 0,
+ "Super Top",
+ "USB-IDE",
+ },
+ {
+ USB_VENDOR_SYNTECH, USB_PRODUCT_SYNTECH_CPT8001C,
+ 0,
+ "Syntech Information",
+ "CPT-8001C Barcode scanner",
+ },
+ {
+ USB_VENDOR_SYNTECH, USB_PRODUCT_SYNTECH_CYPHERLAB100,
+ 0,
+ "Syntech Information",
+ "CipherLab USB Barcode Scanner",
+ },
+ {
+ USB_VENDOR_TECLAST, USB_PRODUCT_TECLAST_TLC300,
+ 0,
+ "Teclast",
+ "USB Media Player",
+ },
+ {
+ USB_VENDOR_DIAMOND2, USB_PRODUCT_DIAMOND2_SUPRAEXPRESS56K,
+ 0,
+ "Diamond (Supra)",
+ "Supra Express 56K modem",
+ },
+ {
+ USB_VENDOR_DIAMOND2, USB_PRODUCT_DIAMOND2_SUPRA2890,
+ 0,
+ "Diamond (Supra)",
+ "SupraMax 2890 56K Modem",
+ },
+ {
+ USB_VENDOR_DIAMOND2, USB_PRODUCT_DIAMOND2_RIO600USB,
+ 0,
+ "Diamond (Supra)",
+ "Rio 600 USB",
+ },
+ {
+ USB_VENDOR_DIAMOND2, USB_PRODUCT_DIAMOND2_RIO800USB,
+ 0,
+ "Diamond (Supra)",
+ "Rio 800 USB",
+ },
+ {
+ USB_VENDOR_SURECOM, USB_PRODUCT_SURECOM_EP9001G2A,
+ 0,
+ "Surecom Technology",
+ "EP-9001-G rev 2A",
+ },
+ {
+ USB_VENDOR_SURECOM, USB_PRODUCT_SURECOM_RT2570,
+ 0,
+ "Surecom Technology",
+ "RT2570",
+ },
+ {
+ USB_VENDOR_SURECOM, USB_PRODUCT_SURECOM_RT2573,
+ 0,
+ "Surecom Technology",
+ "RT2573",
+ },
+ {
+ USB_VENDOR_SWEEX, USB_PRODUCT_SWEEX_ZD1211,
+ 0,
+ "Sweex",
+ "ZD1211",
+ },
+ {
+ USB_VENDOR_SWEEX2, USB_PRODUCT_SWEEX2_LW153,
+ 0,
+ "Sweex",
+ "LW153",
+ },
+ {
+ USB_VENDOR_SWEEX2, USB_PRODUCT_SWEEX2_LW303,
+ 0,
+ "Sweex",
+ "LW303",
+ },
+ {
+ USB_VENDOR_SWEEX2, USB_PRODUCT_SWEEX2_LW313,
+ 0,
+ "Sweex",
+ "LW313",
+ },
+ {
+ USB_VENDOR_SYSTEMTALKS, USB_PRODUCT_SYSTEMTALKS_SGCX2UL,
+ 0,
+ "System Talks",
+ "SGC-X2UL",
+ },
+ {
+ USB_VENDOR_TAPWAVE, USB_PRODUCT_TAPWAVE_ZODIAC,
+ 0,
+ "Tapwave",
+ "Zodiac",
+ },
+ {
+ USB_VENDOR_TAUGA, USB_PRODUCT_TAUGA_CAMERAMATE,
+ 0,
+ "Taugagreining HF",
+ "CameraMate (DPCM_USB)",
+ },
+ {
+ USB_VENDOR_TCTMOBILE, USB_PRODUCT_TCTMOBILE_X060S,
+ 0,
+ "TCT Mobile",
+ "X060S 3G modem",
+ },
+ {
+ USB_VENDOR_TCTMOBILE, USB_PRODUCT_TCTMOBILE_X080S,
+ 0,
+ "TCT Mobile",
+ "X080S 3G modem",
+ },
+ {
+ USB_VENDOR_TDK, USB_PRODUCT_TDK_UPA9664,
+ 0,
+ "TDK",
+ "USB-PDC Adapter UPA9664",
+ },
+ {
+ USB_VENDOR_TDK, USB_PRODUCT_TDK_UCA1464,
+ 0,
+ "TDK",
+ "USB-cdmaOne Adapter UCA1464",
+ },
+ {
+ USB_VENDOR_TDK, USB_PRODUCT_TDK_UHA6400,
+ 0,
+ "TDK",
+ "USB-PHS Adapter UHA6400",
+ },
+ {
+ USB_VENDOR_TDK, USB_PRODUCT_TDK_UPA6400,
+ 0,
+ "TDK",
+ "USB-PHS Adapter UPA6400",
+ },
+ {
+ USB_VENDOR_TDK, USB_PRODUCT_TDK_BT_DONGLE,
+ 0,
+ "TDK",
+ "Bluetooth USB dongle",
+ },
+ {
+ USB_VENDOR_TEAC, USB_PRODUCT_TEAC_FD05PUB,
+ 0,
+ "TEAC",
+ "FD-05PUB floppy",
+ },
+ {
+ USB_VENDOR_TEKRAM, USB_PRODUCT_TEKRAM_QUICKWLAN,
+ 0,
+ "Tekram Technology",
+ "QuickWLAN",
+ },
+ {
+ USB_VENDOR_TEKRAM, USB_PRODUCT_TEKRAM_ZD1211_1,
+ 0,
+ "Tekram Technology",
+ "ZD1211",
+ },
+ {
+ USB_VENDOR_TEKRAM, USB_PRODUCT_TEKRAM_ZD1211_2,
+ 0,
+ "Tekram Technology",
+ "ZD1211",
+ },
+ {
+ USB_VENDOR_TELEX, USB_PRODUCT_TELEX_MIC1,
+ 0,
+ "Telex Communications",
+ "Enhanced USB Microphone",
+ },
+ {
+ USB_VENDOR_TELIT, USB_PRODUCT_TELIT_UC864E,
+ 0,
+ "Telit",
+ "UC864E 3G modem",
+ },
+ {
+ USB_VENDOR_TELIT, USB_PRODUCT_TELIT_UC864G,
+ 0,
+ "Telit",
+ "UC864G 3G modem",
+ },
+ {
+ USB_VENDOR_TENX, USB_PRODUCT_TENX_UAUDIO0,
+ 0,
+ "Ten X Technology, Inc.",
+ "USB audio headset",
+ },
+ {
+ USB_VENDOR_TI, USB_PRODUCT_TI_UTUSB41,
+ 0,
+ "Texas Instruments",
+ "UT-USB41 hub",
+ },
+ {
+ USB_VENDOR_TI, USB_PRODUCT_TI_TUSB2046,
+ 0,
+ "Texas Instruments",
+ "TUSB2046 hub",
+ },
+ {
+ USB_VENDOR_THRUST, USB_PRODUCT_THRUST_FUSION_PAD,
+ 0,
+ "Thrustmaster",
+ "Fusion Digital Gamepad",
+ },
+ {
+ USB_VENDOR_TLAYTECH, USB_PRODUCT_TLAYTECH_TEU800,
+ 0,
+ "Tlay Tech",
+ "TEU800 3G modem",
+ },
+ {
+ USB_VENDOR_TOPRE, USB_PRODUCT_TOPRE_HHKB,
+ 0,
+ "Topre Corporation",
+ "HHKB Professional",
+ },
+ {
+ USB_VENDOR_TOSHIBA, USB_PRODUCT_TOSHIBA_POCKETPC_E740,
+ 0,
+ "Toshiba",
+ "PocketPC e740",
+ },
+ {
+ USB_VENDOR_TOSHIBA, USB_PRODUCT_TOSHIBA_RT3070,
+ 0,
+ "Toshiba",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_TOSHIBA, USB_PRODUCT_TOSHIBA_G450,
+ 0,
+ "Toshiba",
+ "G450 modem",
+ },
+ {
+ USB_VENDOR_TOSHIBA, USB_PRODUCT_TOSHIBA_HSDPA,
+ 0,
+ "Toshiba",
+ "G450 modem",
+ },
+ {
+ USB_VENDOR_TREK, USB_PRODUCT_TREK_THUMBDRIVE,
+ 0,
+ "Trek Technology",
+ "ThumbDrive",
+ },
+ {
+ USB_VENDOR_TREK, USB_PRODUCT_TREK_MEMKEY,
+ 0,
+ "Trek Technology",
+ "IBM USB Memory Key",
+ },
+ {
+ USB_VENDOR_TREK, USB_PRODUCT_TREK_THUMBDRIVE_8MB,
+ 0,
+ "Trek Technology",
+ "ThumbDrive_8MB",
+ },
+ {
+ USB_VENDOR_TRIPPLITE, USB_PRODUCT_TRIPPLITE_U209,
+ 0,
+ "Tripp-Lite",
+ "Serial",
+ },
+ {
+ USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_T33520,
+ 0,
+ "Trumpion Microelectronics",
+ "T33520 USB Flash Card Controller",
+ },
+ {
+ USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_C3310,
+ 0,
+ "Trumpion Microelectronics",
+ "Comotron C3310 MP3 player",
+ },
+ {
+ USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_MP3,
+ 0,
+ "Trumpion Microelectronics",
+ "MP3 player",
+ },
+ {
+ USB_VENDOR_TWINMOS, USB_PRODUCT_TWINMOS_G240,
+ 0,
+ "TwinMOS",
+ "G240",
+ },
+ {
+ USB_VENDOR_TWINMOS, USB_PRODUCT_TWINMOS_MDIV,
+ 0,
+ "TwinMOS",
+ "Memory Disk IV",
+ },
+ {
+ USB_VENDOR_UBIQUAM, USB_PRODUCT_UBIQUAM_UALL,
+ 0,
+ "UBIQUAM Co., Ltd.",
+ "CDMA 1xRTT USB Modem (U-100/105/200/300/520)",
+ },
+ {
+ USB_VENDOR_ULTIMA, USB_PRODUCT_ULTIMA_1200UBPLUS,
+ 0,
+ "Ultima",
+ "1200 UB Plus scanner",
+ },
+ {
+ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1236U,
+ 0,
+ "UMAX Data Systems",
+ "Astra 1236U Scanner",
+ },
+ {
+ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1220U,
+ 0,
+ "UMAX Data Systems",
+ "Astra 1220U Scanner",
+ },
+ {
+ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2000U,
+ 0,
+ "UMAX Data Systems",
+ "Astra 2000U Scanner",
+ },
+ {
+ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2100U,
+ 0,
+ "UMAX Data Systems",
+ "Astra 2100U Scanner",
+ },
+ {
+ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2200U,
+ 0,
+ "UMAX Data Systems",
+ "Astra 2200U Scanner",
+ },
+ {
+ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA3400,
+ 0,
+ "UMAX Data Systems",
+ "Astra 3400 Scanner",
+ },
+ {
+ USB_VENDOR_UMEDIA, USB_PRODUCT_UMEDIA_TEW444UBEU,
+ 0,
+ "U-MEDIA Communications",
+ "TEW-444UB EU",
+ },
+ {
+ USB_VENDOR_UMEDIA, USB_PRODUCT_UMEDIA_TEW444UBEU_NF,
+ 0,
+ "U-MEDIA Communications",
+ "TEW-444UB EU (no firmware)",
+ },
+ {
+ USB_VENDOR_UMEDIA, USB_PRODUCT_UMEDIA_TEW429UB_A,
+ 0,
+ "U-MEDIA Communications",
+ "TEW-429UB_A",
+ },
+ {
+ USB_VENDOR_UMEDIA, USB_PRODUCT_UMEDIA_TEW429UB,
+ 0,
+ "U-MEDIA Communications",
+ "TEW-429UB",
+ },
+ {
+ USB_VENDOR_UMEDIA, USB_PRODUCT_UMEDIA_TEW429UBC1,
+ 0,
+ "U-MEDIA Communications",
+ "TEW-429UB C1",
+ },
+ {
+ USB_VENDOR_UMEDIA, USB_PRODUCT_UMEDIA_RT2870_1,
+ 0,
+ "U-MEDIA Communications",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_UMEDIA, USB_PRODUCT_UMEDIA_ALL0298V2,
+ 0,
+ "U-MEDIA Communications",
+ "ALL0298 v2",
+ },
+ {
+ USB_VENDOR_UMEDIA, USB_PRODUCT_UMEDIA_AR5523_2,
+ 0,
+ "U-MEDIA Communications",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_UMEDIA, USB_PRODUCT_UMEDIA_AR5523_2_NF,
+ 0,
+ "U-MEDIA Communications",
+ "AR5523 (no firmware)",
+ },
+ {
+ USB_VENDOR_UNIACCESS, USB_PRODUCT_UNIACCESS_PANACHE,
+ 0,
+ "Universal Access",
+ "Panache Surf USB ISDN Adapter",
+ },
+ {
+ USB_VENDOR_USI, USB_PRODUCT_USI_MC60,
+ 0,
+ "USI",
+ "MC60 Serial",
+ },
+ {
+ USB_VENDOR_USR, USB_PRODUCT_USR_USR5422,
+ 0,
+ "U.S. Robotics",
+ "USR5422 WLAN",
+ },
+ {
+ USB_VENDOR_USR, USB_PRODUCT_USR_USR5423,
+ 0,
+ "U.S. Robotics",
+ "USR5423 WLAN",
+ },
+ {
+ USB_VENDOR_VIA, USB_PRODUCT_VIA_USB2IDEBRIDGE,
+ 0,
+ "VIA",
+ "USB 2.0 IDE Bridge",
+ },
+ {
+ USB_VENDOR_VAISALA, USB_PRODUCT_VAISALA_CABLE,
+ 0,
+ "Vaisala",
+ "USB Interface cable",
+ },
+ {
+ USB_VENDOR_VIDZMEDIA, USB_PRODUCT_VIDZMEDIA_MONSTERTV,
+ 0,
+ "VidzMedia Pte Ltd",
+ "MonsterTV P2H",
+ },
+ {
+ USB_VENDOR_VISION, USB_PRODUCT_VISION_VC6452V002,
+ 0,
+ "VLSI Vision",
+ "CPiA Camera",
+ },
+ {
+ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_7600,
+ 0,
+ "Visioneer",
+ "OneTouch 7600",
+ },
+ {
+ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_5300,
+ 0,
+ "Visioneer",
+ "OneTouch 5300",
+ },
+ {
+ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_3000,
+ 0,
+ "Visioneer",
+ "Scanport 3000",
+ },
+ {
+ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6100,
+ 0,
+ "Visioneer",
+ "OneTouch 6100",
+ },
+ {
+ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6200,
+ 0,
+ "Visioneer",
+ "OneTouch 6200",
+ },
+ {
+ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8100,
+ 0,
+ "Visioneer",
+ "OneTouch 8100",
+ },
+ {
+ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8600,
+ 0,
+ "Visioneer",
+ "OneTouch 8600",
+ },
+ {
+ USB_VENDOR_VIVITAR, USB_PRODUCT_VIVITAR_35XX,
+ 0,
+ "Vivitar",
+ "Vivicam 35Xx",
+ },
+ {
+ USB_VENDOR_VTECH, USB_PRODUCT_VTECH_RT2570,
+ 0,
+ "VTech",
+ "RT2570",
+ },
+ {
+ USB_VENDOR_VTECH, USB_PRODUCT_VTECH_ZD1211B,
+ 0,
+ "VTech",
+ "ZD1211B",
+ },
+ {
+ USB_VENDOR_WACOM, USB_PRODUCT_WACOM_CT0405U,
+ 0,
+ "WACOM",
+ "CT-0405-U Tablet",
+ },
+ {
+ USB_VENDOR_WACOM, USB_PRODUCT_WACOM_GRAPHIRE,
+ 0,
+ "WACOM",
+ "Graphire",
+ },
+ {
+ USB_VENDOR_WACOM, USB_PRODUCT_WACOM_GRAPHIRE3_4X5,
+ 0,
+ "WACOM",
+ "Graphire 3 4x5",
+ },
+ {
+ USB_VENDOR_WACOM, USB_PRODUCT_WACOM_INTUOSA5,
+ 0,
+ "WACOM",
+ "Intuos A5",
+ },
+ {
+ USB_VENDOR_WACOM, USB_PRODUCT_WACOM_GD0912U,
+ 0,
+ "WACOM",
+ "Intuos 9x12 Graphics Tablet",
+ },
+ {
+ USB_VENDOR_WAVESENSE, USB_PRODUCT_WAVESENSE_JAZZ,
+ 0,
+ "WaveSense",
+ "Jazz blood glucose meter",
+ },
+ {
+ USB_VENDOR_WCH, USB_PRODUCT_WCH_CH341SER,
+ 0,
+ "QinHeng Electronics",
+ "CH341/CH340 USB-Serial Bridge",
+ },
+ {
+ USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH341SER,
+ 0,
+ "QinHeng Electronics",
+ "CH341/CH340 USB-Serial Bridge",
+ },
+ {
+ USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_COMBO,
+ 0,
+ "Western Digital",
+ "Firewire USB Combo",
+ },
+ {
+ USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_EXTHDD,
+ 0,
+ "Western Digital",
+ "External HDD",
+ },
+ {
+ USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_HUB,
+ 0,
+ "Western Digital",
+ "USB HUB",
+ },
+ {
+ USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_MYBOOK,
+ 0,
+ "Western Digital",
+ "MyBook External HDD",
+ },
+ {
+ USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_MYPASSWORD,
+ 0,
+ "Western Digital",
+ "MyPassword External HDD",
+ },
+ {
+ USB_VENDOR_WINBOND, USB_PRODUCT_WINBOND_UH104,
+ 0,
+ "Winbond",
+ "4-port USB Hub",
+ },
+ {
+ USB_VENDOR_WINMAXGROUP, USB_PRODUCT_WINMAXGROUP_FLASH64MC,
+ 0,
+ "WinMaxGroup",
+ "USB Flash Disk 64M-C",
+ },
+ {
+ USB_VENDOR_WISTRONNEWEB, USB_PRODUCT_WISTRONNEWEB_UR045G,
+ 0,
+ "Wistron NeWeb",
+ "PrismGT USB 2.0 WLAN",
+ },
+ {
+ USB_VENDOR_WISTRONNEWEB, USB_PRODUCT_WISTRONNEWEB_UR055G,
+ 0,
+ "Wistron NeWeb",
+ "UR055G",
+ },
+ {
+ USB_VENDOR_WISTRONNEWEB, USB_PRODUCT_WISTRONNEWEB_AR5523_1,
+ 0,
+ "Wistron NeWeb",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_WISTRONNEWEB, USB_PRODUCT_WISTRONNEWEB_AR5523_1_NF,
+ 0,
+ "Wistron NeWeb",
+ "AR5523 (no firmware)",
+ },
+ {
+ USB_VENDOR_WISTRONNEWEB, USB_PRODUCT_WISTRONNEWEB_AR5523_2,
+ 0,
+ "Wistron NeWeb",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_WISTRONNEWEB, USB_PRODUCT_WISTRONNEWEB_AR5523_2_NF,
+ 0,
+ "Wistron NeWeb",
+ "AR5523 (no firmware)",
+ },
+ {
+ USB_VENDOR_XEROX, USB_PRODUCT_XEROX_WCM15,
+ 0,
+ "Xerox",
+ "WorkCenter M15",
+ },
+ {
+ USB_VENDOR_XIRLINK, USB_PRODUCT_XIRLINK_PCCAM,
+ 0,
+ "Xirlink",
+ "IBM PC Camera",
+ },
+ {
+ USB_VENDOR_XYRATEX, USB_PRODUCT_XYRATEX_PRISM_GT_1,
+ 0,
+ "Xyratex",
+ "PrismGT USB 2.0 WLAN",
+ },
+ {
+ USB_VENDOR_XYRATEX, USB_PRODUCT_XYRATEX_PRISM_GT_2,
+ 0,
+ "Xyratex",
+ "PrismGT USB 2.0 WLAN",
+ },
+ {
+ USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_UX256,
+ 0,
+ "YAMAHA",
+ "UX256 MIDI I/F",
+ },
+ {
+ USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_UX96,
+ 0,
+ "YAMAHA",
+ "UX96 MIDI I/F",
+ },
+ {
+ USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_RTA54I,
+ 0,
+ "YAMAHA",
+ "NetVolante RTA54i Broadband&ISDN Router",
+ },
+ {
+ USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_RTA55I,
+ 0,
+ "YAMAHA",
+ "NetVolante RTA55i Broadband VoIP Router",
+ },
+ {
+ USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_RTW65B,
+ 0,
+ "YAMAHA",
+ "NetVolante RTW65b Broadband Wireless Router",
+ },
+ {
+ USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_RTW65I,
+ 0,
+ "YAMAHA",
+ "NetVolante RTW65i Broadband&ISDN Wireless Router",
+ },
+ {
+ USB_VENDOR_YANO, USB_PRODUCT_YANO_U640MO,
+ 0,
+ "Yano",
+ "U640MO-03",
+ },
+ {
+ USB_VENDOR_YANO, USB_PRODUCT_YANO_FW800HD,
+ 0,
+ "Yano",
+ "METALWEAR-HDD",
+ },
+ {
+ USB_VENDOR_YCCABLE, USB_PRODUCT_YCCABLE_PL2303,
+ 0,
+ "Y.C. Cable",
+ "PL2303 Serial",
+ },
+ {
+ USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU,
+ 0,
+ "Y-E Data",
+ "Flashbuster-U",
+ },
+ {
+ USB_VENDOR_YISO, USB_PRODUCT_YISO_C893,
+ 0,
+ "Yiso Wireless Co.",
+ "CDMA 2000 1xEVDO PC Card",
+ },
+ {
+ USB_VENDOR_ZCOM, USB_PRODUCT_ZCOM_M4Y750,
+ 0,
+ "Z-Com",
+ "M4Y-750",
+ },
+ {
+ USB_VENDOR_ZCOM, USB_PRODUCT_ZCOM_XI725,
+ 0,
+ "Z-Com",
+ "XI-725/726",
+ },
+ {
+ USB_VENDOR_ZCOM, USB_PRODUCT_ZCOM_XI735,
+ 0,
+ "Z-Com",
+ "XI-735",
+ },
+ {
+ USB_VENDOR_ZCOM, USB_PRODUCT_ZCOM_XG703A,
+ 0,
+ "Z-Com",
+ "PrismGT USB 2.0 WLAN",
+ },
+ {
+ USB_VENDOR_ZCOM, USB_PRODUCT_ZCOM_ZD1211,
+ 0,
+ "Z-Com",
+ "ZD1211",
+ },
+ {
+ USB_VENDOR_ZCOM, USB_PRODUCT_ZCOM_AR5523,
+ 0,
+ "Z-Com",
+ "AR5523",
+ },
+ {
+ USB_VENDOR_ZCOM, USB_PRODUCT_ZCOM_AR5523_NF,
+ 0,
+ "Z-Com",
+ "AR5523 driver (no firmware)",
+ },
+ {
+ USB_VENDOR_ZCOM, USB_PRODUCT_ZCOM_XM142,
+ 0,
+ "Z-Com",
+ "XM-142",
+ },
+ {
+ USB_VENDOR_ZCOM, USB_PRODUCT_ZCOM_ZD1211B,
+ 0,
+ "Z-Com",
+ "ZD1211B",
+ },
+ {
+ USB_VENDOR_ZCOM, USB_PRODUCT_ZCOM_RT2870_1,
+ 0,
+ "Z-Com",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ZCOM, USB_PRODUCT_ZCOM_RT2870_2,
+ 0,
+ "Z-Com",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ZINWELL, USB_PRODUCT_ZINWELL_RT2570,
+ 0,
+ "Zinwell",
+ "RT2570",
+ },
+ {
+ USB_VENDOR_ZINWELL, USB_PRODUCT_ZINWELL_RT2870_1,
+ 0,
+ "Zinwell",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ZINWELL, USB_PRODUCT_ZINWELL_RT2870_2,
+ 0,
+ "Zinwell",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ZINWELL, USB_PRODUCT_ZINWELL_RT3072_1,
+ 0,
+ "Zinwell",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_ZINWELL, USB_PRODUCT_ZINWELL_RT3072_2,
+ 0,
+ "Zinwell",
+ "RT3072",
+ },
+ {
+ USB_VENDOR_ZINWELL, USB_PRODUCT_ZINWELL_RT3070,
+ 0,
+ "Zinwell",
+ "RT3070",
+ },
+ {
+ USB_VENDOR_ZOOM, USB_PRODUCT_ZOOM_2986L,
+ 0,
+ "Zoom Telephonics",
+ "2986L Fax modem",
+ },
+ {
+ USB_VENDOR_ZORAN, USB_PRODUCT_ZORAN_EX20DSC,
+ 0,
+ "Zoran Microelectronics",
+ "Digital Camera EX-20 DSC",
+ },
+ {
+ USB_VENDOR_ZYDAS, USB_PRODUCT_ZYDAS_ZD1211,
+ 0,
+ "Zydas Technology Corporation",
+ "ZD1211 WLAN abg",
+ },
+ {
+ USB_VENDOR_ZYDAS, USB_PRODUCT_ZYDAS_ZD1211B,
+ 0,
+ "Zydas Technology Corporation",
+ "ZD1211B",
+ },
+ {
+ USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_OMNI56K,
+ 0,
+ "ZyXEL Communication",
+ "Omni 56K Plus",
+ },
+ {
+ USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_980N,
+ 0,
+ "ZyXEL Communication",
+ "Scorpion-980N keyboard",
+ },
+ {
+ USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_ZYAIRG220,
+ 0,
+ "ZyXEL Communication",
+ "ZyAIR G-220",
+ },
+ {
+ USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_G200V2,
+ 0,
+ "ZyXEL Communication",
+ "G-200 v2",
+ },
+ {
+ USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_AG225H,
+ 0,
+ "ZyXEL Communication",
+ "AG-225H",
+ },
+ {
+ USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_M202,
+ 0,
+ "ZyXEL Communication",
+ "M-202",
+ },
+ {
+ USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_G220V2,
+ 0,
+ "ZyXEL Communication",
+ "G-220 v2",
+ },
+ {
+ USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_G202,
+ 0,
+ "ZyXEL Communication",
+ "G-202",
+ },
+ {
+ USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_RT2870_1,
+ 0,
+ "ZyXEL Communication",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_RT2870_2,
+ 0,
+ "ZyXEL Communication",
+ "RT2870",
+ },
+ {
+ USB_VENDOR_UNKNOWN1, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Unknown vendor",
+ NULL,
+ },
+ {
+ USB_VENDOR_UNKNOWN2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Unknown vendor",
+ NULL,
+ },
+ {
+ USB_VENDOR_EGALAX2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "eGalax, Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_CHIPSBANK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Chipsbank Microelectronics Co.",
+ NULL,
+ },
+ {
+ USB_VENDOR_HUMAX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "HUMAX",
+ NULL,
+ },
+ {
+ USB_VENDOR_LTS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "LTS",
+ NULL,
+ },
+ {
+ USB_VENDOR_BWCT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Bernd Walter Computer Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_AOX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AOX",
+ NULL,
+ },
+ {
+ USB_VENDOR_THESYS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Thesys",
+ NULL,
+ },
+ {
+ USB_VENDOR_DATABROADCAST, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Data Broadcasting",
+ NULL,
+ },
+ {
+ USB_VENDOR_ATMEL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Atmel",
+ NULL,
+ },
+ {
+ USB_VENDOR_IWATSU, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Iwatsu America",
+ NULL,
+ },
+ {
+ USB_VENDOR_MITSUMI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Mitsumi",
+ NULL,
+ },
+ {
+ USB_VENDOR_HP, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Hewlett Packard",
+ NULL,
+ },
+ {
+ USB_VENDOR_GENOA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Genoa",
+ NULL,
+ },
+ {
+ USB_VENDOR_OAK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Oak",
+ NULL,
+ },
+ {
+ USB_VENDOR_ADAPTEC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Adaptec",
+ NULL,
+ },
+ {
+ USB_VENDOR_DIEBOLD, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Diebold",
+ NULL,
+ },
+ {
+ USB_VENDOR_SIEMENSELECTRO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Siemens Electromechanical",
+ NULL,
+ },
+ {
+ USB_VENDOR_EPSONIMAGING, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Epson Imaging",
+ NULL,
+ },
+ {
+ USB_VENDOR_KEYTRONIC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "KeyTronic",
+ NULL,
+ },
+ {
+ USB_VENDOR_OPTI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "OPTi",
+ NULL,
+ },
+ {
+ USB_VENDOR_ELITEGROUP, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Elitegroup",
+ NULL,
+ },
+ {
+ USB_VENDOR_XILINX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Xilinx",
+ NULL,
+ },
+ {
+ USB_VENDOR_FARALLON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Farallon Communications",
+ NULL,
+ },
+ {
+ USB_VENDOR_NATIONAL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "National Semiconductor",
+ NULL,
+ },
+ {
+ USB_VENDOR_NATIONALREG, 0,
+ USB_KNOWNDEV_NOPROD,
+ "National Registry",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACERLABS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Acer Labs",
+ NULL,
+ },
+ {
+ USB_VENDOR_FTDI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Future Technology Devices",
+ NULL,
+ },
+ {
+ USB_VENDOR_NCR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "NCR",
+ NULL,
+ },
+ {
+ USB_VENDOR_SYNOPSYS2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Synopsys",
+ NULL,
+ },
+ {
+ USB_VENDOR_FUJITSUICL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Fujitsu-ICL",
+ NULL,
+ },
+ {
+ USB_VENDOR_FUJITSU2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Fujitsu Personal Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_QUANTA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Quanta",
+ NULL,
+ },
+ {
+ USB_VENDOR_NEC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "NEC",
+ NULL,
+ },
+ {
+ USB_VENDOR_KODAK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Eastman Kodak",
+ NULL,
+ },
+ {
+ USB_VENDOR_WELTREND, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Weltrend",
+ NULL,
+ },
+ {
+ USB_VENDOR_VIA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "VIA",
+ NULL,
+ },
+ {
+ USB_VENDOR_MCCI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "MCCI",
+ NULL,
+ },
+ {
+ USB_VENDOR_MELCO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Melco",
+ NULL,
+ },
+ {
+ USB_VENDOR_LEADTEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Leadtek",
+ NULL,
+ },
+ {
+ USB_VENDOR_WINBOND, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Winbond",
+ NULL,
+ },
+ {
+ USB_VENDOR_PHOENIX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Phoenix",
+ NULL,
+ },
+ {
+ USB_VENDOR_CREATIVE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Creative Labs",
+ NULL,
+ },
+ {
+ USB_VENDOR_NOKIA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Nokia",
+ NULL,
+ },
+ {
+ USB_VENDOR_ADI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ADI Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_CATC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Computer Access Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_SMC2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Standard Microsystems",
+ NULL,
+ },
+ {
+ USB_VENDOR_MOTOROLA_HK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Motorola HK",
+ NULL,
+ },
+ {
+ USB_VENDOR_GRAVIS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Advanced Gravis Computer",
+ NULL,
+ },
+ {
+ USB_VENDOR_CIRRUSLOGIC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Cirrus Logic",
+ NULL,
+ },
+ {
+ USB_VENDOR_INNOVATIVE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Innovative Semiconductors",
+ NULL,
+ },
+ {
+ USB_VENDOR_MOLEX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Molex",
+ NULL,
+ },
+ {
+ USB_VENDOR_SUN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sun Microsystems",
+ NULL,
+ },
+ {
+ USB_VENDOR_UNISYS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Unisys",
+ NULL,
+ },
+ {
+ USB_VENDOR_TAUGA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Taugagreining HF",
+ NULL,
+ },
+ {
+ USB_VENDOR_AMD, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Advanced Micro Devices",
+ NULL,
+ },
+ {
+ USB_VENDOR_LEXMARK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Lexmark International",
+ NULL,
+ },
+ {
+ USB_VENDOR_LG, 0,
+ USB_KNOWNDEV_NOPROD,
+ "LG Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_NANAO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "NANAO",
+ NULL,
+ },
+ {
+ USB_VENDOR_GATEWAY, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Gateway 2000",
+ NULL,
+ },
+ {
+ USB_VENDOR_NMB, 0,
+ USB_KNOWNDEV_NOPROD,
+ "NMB",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALPS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Alps Electric",
+ NULL,
+ },
+ {
+ USB_VENDOR_THRUST, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Thrustmaster",
+ NULL,
+ },
+ {
+ USB_VENDOR_TI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Texas Instruments",
+ NULL,
+ },
+ {
+ USB_VENDOR_ANALOGDEVICES, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Analog Devices",
+ NULL,
+ },
+ {
+ USB_VENDOR_SIS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Silicon Integrated Systems Corp.",
+ NULL,
+ },
+ {
+ USB_VENDOR_KYE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "KYE Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_DIAMOND2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Diamond (Supra)",
+ NULL,
+ },
+ {
+ USB_VENDOR_RENESAS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Renesas",
+ NULL,
+ },
+ {
+ USB_VENDOR_MICROSOFT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Microsoft",
+ NULL,
+ },
+ {
+ USB_VENDOR_PRIMAX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Primax Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_MGE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "MGE UPS Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_AMP, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AMP",
+ NULL,
+ },
+ {
+ USB_VENDOR_CHERRY, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Cherry Mikroschalter",
+ NULL,
+ },
+ {
+ USB_VENDOR_MEGATRENDS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "American Megatrends",
+ NULL,
+ },
+ {
+ USB_VENDOR_LOGITECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Logitech",
+ NULL,
+ },
+ {
+ USB_VENDOR_BTC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Behavior Tech. Computer",
+ NULL,
+ },
+ {
+ USB_VENDOR_PHILIPS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Philips",
+ NULL,
+ },
+ {
+ USB_VENDOR_SUN2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sun Microsystems (offical)",
+ NULL,
+ },
+ {
+ USB_VENDOR_SANYO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sanyo Electric",
+ NULL,
+ },
+ {
+ USB_VENDOR_SEAGATE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Seagate",
+ NULL,
+ },
+ {
+ USB_VENDOR_CONNECTIX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Connectix",
+ NULL,
+ },
+ {
+ USB_VENDOR_SEMTECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Semtech",
+ NULL,
+ },
+ {
+ USB_VENDOR_KENSINGTON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Kensington",
+ NULL,
+ },
+ {
+ USB_VENDOR_LUCENT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Lucent",
+ NULL,
+ },
+ {
+ USB_VENDOR_PLANTRONICS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Plantronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_KYOCERA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Kyocera Wireless Corp.",
+ NULL,
+ },
+ {
+ USB_VENDOR_STMICRO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "STMicroelectronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_FOXCONN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Foxconn",
+ NULL,
+ },
+ {
+ USB_VENDOR_MEIZU, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Meizu Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_YAMAHA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "YAMAHA",
+ NULL,
+ },
+ {
+ USB_VENDOR_COMPAQ, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Compaq",
+ NULL,
+ },
+ {
+ USB_VENDOR_HITACHI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Hitachi",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACERP, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Acer Peripherals",
+ NULL,
+ },
+ {
+ USB_VENDOR_DAVICOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Davicom",
+ NULL,
+ },
+ {
+ USB_VENDOR_VISIONEER, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Visioneer",
+ NULL,
+ },
+ {
+ USB_VENDOR_CANON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Canon",
+ NULL,
+ },
+ {
+ USB_VENDOR_NIKON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Nikon",
+ NULL,
+ },
+ {
+ USB_VENDOR_PAN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Pan International",
+ NULL,
+ },
+ {
+ USB_VENDOR_IBM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "IBM",
+ NULL,
+ },
+ {
+ USB_VENDOR_CYPRESS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Cypress Semiconductor",
+ NULL,
+ },
+ {
+ USB_VENDOR_ROHM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ROHM",
+ NULL,
+ },
+ {
+ USB_VENDOR_COMPAL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Compal",
+ NULL,
+ },
+ {
+ USB_VENDOR_EPSON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Seiko Epson",
+ NULL,
+ },
+ {
+ USB_VENDOR_RAINBOW, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Rainbow Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_IODATA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "I-O Data",
+ NULL,
+ },
+ {
+ USB_VENDOR_TDK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "TDK",
+ NULL,
+ },
+ {
+ USB_VENDOR_3COMUSR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "U.S. Robotics",
+ NULL,
+ },
+ {
+ USB_VENDOR_METHODE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Methode Electronics Far East",
+ NULL,
+ },
+ {
+ USB_VENDOR_MAXISWITCH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Maxi Switch",
+ NULL,
+ },
+ {
+ USB_VENDOR_LOCKHEEDMER, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Lockheed Martin Energy Research",
+ NULL,
+ },
+ {
+ USB_VENDOR_FUJITSU, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Fujitsu",
+ NULL,
+ },
+ {
+ USB_VENDOR_TOSHIBAAM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Toshiba America",
+ NULL,
+ },
+ {
+ USB_VENDOR_MICROMACRO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Micro Macro Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_KONICA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Konica",
+ NULL,
+ },
+ {
+ USB_VENDOR_LITEON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Lite-On Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_FUJIPHOTO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Fuji Photo Film",
+ NULL,
+ },
+ {
+ USB_VENDOR_PHILIPSSEMI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Philips Semiconductors",
+ NULL,
+ },
+ {
+ USB_VENDOR_TATUNG, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Tatung Co. Of America",
+ NULL,
+ },
+ {
+ USB_VENDOR_SCANLOGIC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ScanLogic",
+ NULL,
+ },
+ {
+ USB_VENDOR_MYSON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Myson Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_DIGI2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Digi",
+ NULL,
+ },
+ {
+ USB_VENDOR_ITTCANON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ITT Canon",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALTEC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Altec Lansing",
+ NULL,
+ },
+ {
+ USB_VENDOR_LSI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "LSI",
+ NULL,
+ },
+ {
+ USB_VENDOR_MENTORGRAPHICS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Mentor Graphics",
+ NULL,
+ },
+ {
+ USB_VENDOR_ITUNERNET, 0,
+ USB_KNOWNDEV_NOPROD,
+ "I-Tuner Networks",
+ NULL,
+ },
+ {
+ USB_VENDOR_HOLTEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Holtek Semiconductor, Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_PANASONIC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Panasonic (Matsushita)",
+ NULL,
+ },
+ {
+ USB_VENDOR_HUANHSIN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Huan Hsin",
+ NULL,
+ },
+ {
+ USB_VENDOR_SHARP, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sharp",
+ NULL,
+ },
+ {
+ USB_VENDOR_IIYAMA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Iiyama",
+ NULL,
+ },
+ {
+ USB_VENDOR_SHUTTLE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Shuttle Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_ELO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Elo TouchSystems",
+ NULL,
+ },
+ {
+ USB_VENDOR_SAMSUNG, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Samsung Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_NORTHSTAR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Northstar",
+ NULL,
+ },
+ {
+ USB_VENDOR_TOKYOELECTRON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Tokyo Electron",
+ NULL,
+ },
+ {
+ USB_VENDOR_ANNABOOKS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Annabooks",
+ NULL,
+ },
+ {
+ USB_VENDOR_JVC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "JVC",
+ NULL,
+ },
+ {
+ USB_VENDOR_CHICONY, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Chicony Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_ELAN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Elan",
+ NULL,
+ },
+ {
+ USB_VENDOR_NEWNEX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Newnex",
+ NULL,
+ },
+ {
+ USB_VENDOR_BROTHER, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Brother Industries",
+ NULL,
+ },
+ {
+ USB_VENDOR_DALLAS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Dallas Semiconductor",
+ NULL,
+ },
+ {
+ USB_VENDOR_AIPTEK2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AIPTEK International",
+ NULL,
+ },
+ {
+ USB_VENDOR_PFU, 0,
+ USB_KNOWNDEV_NOPROD,
+ "PFU",
+ NULL,
+ },
+ {
+ USB_VENDOR_FUJIKURA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Fujikura/DDK",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACER, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Acer",
+ NULL,
+ },
+ {
+ USB_VENDOR_3COM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "3Com",
+ NULL,
+ },
+ {
+ USB_VENDOR_HOSIDEN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Hosiden Corporation",
+ NULL,
+ },
+ {
+ USB_VENDOR_AZTECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Aztech Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_BELKIN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Belkin Components",
+ NULL,
+ },
+ {
+ USB_VENDOR_KAWATSU, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Kawatsu Semiconductor",
+ NULL,
+ },
+ {
+ USB_VENDOR_FCI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "FCI",
+ NULL,
+ },
+ {
+ USB_VENDOR_LONGWELL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Longwell",
+ NULL,
+ },
+ {
+ USB_VENDOR_COMPOSITE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Composite",
+ NULL,
+ },
+ {
+ USB_VENDOR_STAR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Star Micronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_APC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "American Power Conversion",
+ NULL,
+ },
+ {
+ USB_VENDOR_SCIATLANTA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Scientific Atlanta",
+ NULL,
+ },
+ {
+ USB_VENDOR_TSM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "TSM",
+ NULL,
+ },
+ {
+ USB_VENDOR_CONNECTEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Advanced Connectek USA",
+ NULL,
+ },
+ {
+ USB_VENDOR_NETCHIP, 0,
+ USB_KNOWNDEV_NOPROD,
+ "NetChip Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALTRA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ALTRA",
+ NULL,
+ },
+ {
+ USB_VENDOR_ATI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ATI Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_AKS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Aladdin Knowledge Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_TEKOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Tekom",
+ NULL,
+ },
+ {
+ USB_VENDOR_CANONDEV, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Canon",
+ NULL,
+ },
+ {
+ USB_VENDOR_WACOMTECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Wacom",
+ NULL,
+ },
+ {
+ USB_VENDOR_INVENTEC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Inventec",
+ NULL,
+ },
+ {
+ USB_VENDOR_SHYHSHIUN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Shyh Shiun Terminals",
+ NULL,
+ },
+ {
+ USB_VENDOR_PREHWERKE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Preh Werke Gmbh & Co. KG",
+ NULL,
+ },
+ {
+ USB_VENDOR_SYNOPSYS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Synopsys",
+ NULL,
+ },
+ {
+ USB_VENDOR_UNIACCESS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Universal Access",
+ NULL,
+ },
+ {
+ USB_VENDOR_VIEWSONIC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ViewSonic",
+ NULL,
+ },
+ {
+ USB_VENDOR_XIRLINK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Xirlink",
+ NULL,
+ },
+ {
+ USB_VENDOR_ANCHOR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Anchor Chips",
+ NULL,
+ },
+ {
+ USB_VENDOR_SONY, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sony",
+ NULL,
+ },
+ {
+ USB_VENDOR_FUJIXEROX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Fuji Xerox",
+ NULL,
+ },
+ {
+ USB_VENDOR_VISION, 0,
+ USB_KNOWNDEV_NOPROD,
+ "VLSI Vision",
+ NULL,
+ },
+ {
+ USB_VENDOR_ASAHIKASEI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Asahi Kasei Microsystems",
+ NULL,
+ },
+ {
+ USB_VENDOR_ATEN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ATEN International",
+ NULL,
+ },
+ {
+ USB_VENDOR_SAMSUNG2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Samsung Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_MUSTEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Mustek Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_TELEX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Telex Communications",
+ NULL,
+ },
+ {
+ USB_VENDOR_CHINON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Chinon",
+ NULL,
+ },
+ {
+ USB_VENDOR_PERACOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Peracom Networks",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALCOR2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Alcor Micro",
+ NULL,
+ },
+ {
+ USB_VENDOR_XYRATEX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Xyratex",
+ NULL,
+ },
+ {
+ USB_VENDOR_WACOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "WACOM",
+ NULL,
+ },
+ {
+ USB_VENDOR_ETEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "e-TEK Labs",
+ NULL,
+ },
+ {
+ USB_VENDOR_EIZO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "EIZO",
+ NULL,
+ },
+ {
+ USB_VENDOR_ELECOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Elecom",
+ NULL,
+ },
+ {
+ USB_VENDOR_CONEXANT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Conexant",
+ NULL,
+ },
+ {
+ USB_VENDOR_HAUPPAUGE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Hauppauge Computer Works",
+ NULL,
+ },
+ {
+ USB_VENDOR_BAFO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "BAFO/Quality Computer Accessories",
+ NULL,
+ },
+ {
+ USB_VENDOR_YEDATA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Y-E Data",
+ NULL,
+ },
+ {
+ USB_VENDOR_AVM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AVM",
+ NULL,
+ },
+ {
+ USB_VENDOR_QUICKSHOT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Quickshot",
+ NULL,
+ },
+ {
+ USB_VENDOR_ROLAND, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Roland",
+ NULL,
+ },
+ {
+ USB_VENDOR_ROCKFIRE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Rockfire",
+ NULL,
+ },
+ {
+ USB_VENDOR_RATOC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "RATOC Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_ZYXEL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ZyXEL Communication",
+ NULL,
+ },
+ {
+ USB_VENDOR_INFINEON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Infineon",
+ NULL,
+ },
+ {
+ USB_VENDOR_MICREL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Micrel",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALCOR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Alcor Micro",
+ NULL,
+ },
+ {
+ USB_VENDOR_OMRON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "OMRON",
+ NULL,
+ },
+ {
+ USB_VENDOR_ZORAN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Zoran Microelectronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_NIIGATA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Niigata",
+ NULL,
+ },
+ {
+ USB_VENDOR_IOMEGA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Iomega",
+ NULL,
+ },
+ {
+ USB_VENDOR_ATREND, 0,
+ USB_KNOWNDEV_NOPROD,
+ "A-Trend Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_AID, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Advanced Input Devices",
+ NULL,
+ },
+ {
+ USB_VENDOR_LACIE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "LaCie",
+ NULL,
+ },
+ {
+ USB_VENDOR_FUJIFILM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Fuji Film",
+ NULL,
+ },
+ {
+ USB_VENDOR_ARC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ARC",
+ NULL,
+ },
+ {
+ USB_VENDOR_ORTEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Ortek",
+ NULL,
+ },
+ {
+ USB_VENDOR_CISCOLINKSYS3, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Cisco-Linksys",
+ NULL,
+ },
+ {
+ USB_VENDOR_BOSE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Bose",
+ NULL,
+ },
+ {
+ USB_VENDOR_OMNIVISION, 0,
+ USB_KNOWNDEV_NOPROD,
+ "OmniVision",
+ NULL,
+ },
+ {
+ USB_VENDOR_INSYSTEM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "In-System Design",
+ NULL,
+ },
+ {
+ USB_VENDOR_APPLE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Apple Computer",
+ NULL,
+ },
+ {
+ USB_VENDOR_YCCABLE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Y.C. Cable",
+ NULL,
+ },
+ {
+ USB_VENDOR_DIGITALPERSONA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "DigitalPersona",
+ NULL,
+ },
+ {
+ USB_VENDOR_3G, 0,
+ USB_KNOWNDEV_NOPROD,
+ "3G Green Green Globe",
+ NULL,
+ },
+ {
+ USB_VENDOR_RAFI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "RAFI",
+ NULL,
+ },
+ {
+ USB_VENDOR_TYCO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Tyco",
+ NULL,
+ },
+ {
+ USB_VENDOR_KAWASAKI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Kawasaki",
+ NULL,
+ },
+ {
+ USB_VENDOR_DIGI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Digi International",
+ NULL,
+ },
+ {
+ USB_VENDOR_QUALCOMM2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Qualcomm",
+ NULL,
+ },
+ {
+ USB_VENDOR_QTRONIX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Qtronix",
+ NULL,
+ },
+ {
+ USB_VENDOR_FOXLINK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Foxlink",
+ NULL,
+ },
+ {
+ USB_VENDOR_RICOH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Ricoh",
+ NULL,
+ },
+ {
+ USB_VENDOR_ELSA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ELSA",
+ NULL,
+ },
+ {
+ USB_VENDOR_SCIWORX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "sci-worx",
+ NULL,
+ },
+ {
+ USB_VENDOR_BRAINBOXES, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Brainboxes Limited",
+ NULL,
+ },
+ {
+ USB_VENDOR_ULTIMA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Ultima",
+ NULL,
+ },
+ {
+ USB_VENDOR_AXIOHM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Axiohm Transaction Solutions",
+ NULL,
+ },
+ {
+ USB_VENDOR_MICROTEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Microtek",
+ NULL,
+ },
+ {
+ USB_VENDOR_SUNTAC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "SUN Corporation",
+ NULL,
+ },
+ {
+ USB_VENDOR_LEXAR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Lexar Media",
+ NULL,
+ },
+ {
+ USB_VENDOR_ADDTRON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Addtron",
+ NULL,
+ },
+ {
+ USB_VENDOR_SYMBOL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Symbol Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_SYNTEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Syntek",
+ NULL,
+ },
+ {
+ USB_VENDOR_GENESYS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Genesys Logic",
+ NULL,
+ },
+ {
+ USB_VENDOR_FUJI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Fuji Electric",
+ NULL,
+ },
+ {
+ USB_VENDOR_KEITHLEY, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Keithley Instruments",
+ NULL,
+ },
+ {
+ USB_VENDOR_EIZONANAO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "EIZO Nanao",
+ NULL,
+ },
+ {
+ USB_VENDOR_KLSI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Kawasaki LSI",
+ NULL,
+ },
+ {
+ USB_VENDOR_FFC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "FFC",
+ NULL,
+ },
+ {
+ USB_VENDOR_ANKO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Anko Electronic",
+ NULL,
+ },
+ {
+ USB_VENDOR_PIENGINEERING, 0,
+ USB_KNOWNDEV_NOPROD,
+ "P.I. Engineering",
+ NULL,
+ },
+ {
+ USB_VENDOR_AOC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AOC International",
+ NULL,
+ },
+ {
+ USB_VENDOR_CHIC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Chic Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_BARCO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Barco Display Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_BRIDGE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Bridge Information",
+ NULL,
+ },
+ {
+ USB_VENDOR_SOLIDYEAR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Solid Year",
+ NULL,
+ },
+ {
+ USB_VENDOR_BIORAD, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Bio-Rad Laboratories",
+ NULL,
+ },
+ {
+ USB_VENDOR_MACALLY, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Macally",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACTLABS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Act Labs",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALARIS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Alaris",
+ NULL,
+ },
+ {
+ USB_VENDOR_APEX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Apex",
+ NULL,
+ },
+ {
+ USB_VENDOR_CREATIVE3, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Creative Labs",
+ NULL,
+ },
+ {
+ USB_VENDOR_VIVITAR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Vivitar",
+ NULL,
+ },
+ {
+ USB_VENDOR_GUNZE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Gunze Electronics USA",
+ NULL,
+ },
+ {
+ USB_VENDOR_AVISION, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Avision",
+ NULL,
+ },
+ {
+ USB_VENDOR_TEAC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "TEAC",
+ NULL,
+ },
+ {
+ USB_VENDOR_SGI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Silicon Graphics",
+ NULL,
+ },
+ {
+ USB_VENDOR_SANWASUPPLY, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sanwa Supply",
+ NULL,
+ },
+ {
+ USB_VENDOR_MEGATEC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Megatec",
+ NULL,
+ },
+ {
+ USB_VENDOR_LINKSYS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Linksys",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACERSA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Acer Semiconductor America",
+ NULL,
+ },
+ {
+ USB_VENDOR_SIGMATEL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sigmatel",
+ NULL,
+ },
+ {
+ USB_VENDOR_DRAYTEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "DrayTek",
+ NULL,
+ },
+ {
+ USB_VENDOR_AIWA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Aiwa",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACARD, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ACARD Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_PROLIFIC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Prolific Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_SIEMENS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Siemens",
+ NULL,
+ },
+ {
+ USB_VENDOR_AVANCELOGIC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Avance Logic",
+ NULL,
+ },
+ {
+ USB_VENDOR_SIEMENS2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Siemens",
+ NULL,
+ },
+ {
+ USB_VENDOR_MINOLTA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Minolta",
+ NULL,
+ },
+ {
+ USB_VENDOR_CHPRODUCTS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "CH Products",
+ NULL,
+ },
+ {
+ USB_VENDOR_HAGIWARA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Hagiwara Sys-Com",
+ NULL,
+ },
+ {
+ USB_VENDOR_CTX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Chuntex",
+ NULL,
+ },
+ {
+ USB_VENDOR_ASKEY, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Askey Computer",
+ NULL,
+ },
+ {
+ USB_VENDOR_SAITEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Saitek",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALCATELT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Alcatel Telecom",
+ NULL,
+ },
+ {
+ USB_VENDOR_AGFA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AGFA-Gevaert",
+ NULL,
+ },
+ {
+ USB_VENDOR_ASIAMD, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Asia Microelectronic Development",
+ NULL,
+ },
+ {
+ USB_VENDOR_BIZLINK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Bizlink International",
+ NULL,
+ },
+ {
+ USB_VENDOR_KEYSPAN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Keyspan / InnoSys Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_AASHIMA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Aashima Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_LIEBERT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Liebert",
+ NULL,
+ },
+ {
+ USB_VENDOR_MULTITECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "MultiTech",
+ NULL,
+ },
+ {
+ USB_VENDOR_ADS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ADS Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALCATELM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Alcatel Microelectronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_SIRIUS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sirius Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_GUILLEMOT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Guillemot",
+ NULL,
+ },
+ {
+ USB_VENDOR_BOSTON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Boston Acoustics",
+ NULL,
+ },
+ {
+ USB_VENDOR_SMC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Standard Microsystems",
+ NULL,
+ },
+ {
+ USB_VENDOR_PUTERCOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Putercom",
+ NULL,
+ },
+ {
+ USB_VENDOR_MCT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "MCT",
+ NULL,
+ },
+ {
+ USB_VENDOR_IMATION, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Imation",
+ NULL,
+ },
+ {
+ USB_VENDOR_TECLAST, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Teclast",
+ NULL,
+ },
+ {
+ USB_VENDOR_SONYERICSSON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sony Ericsson",
+ NULL,
+ },
+ {
+ USB_VENDOR_EICON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Eicon Networks",
+ NULL,
+ },
+ {
+ USB_VENDOR_SYNTECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Syntech Information",
+ NULL,
+ },
+ {
+ USB_VENDOR_DIGITALSTREAM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Digital Stream",
+ NULL,
+ },
+ {
+ USB_VENDOR_AUREAL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Aureal Semiconductor",
+ NULL,
+ },
+ {
+ USB_VENDOR_MIDIMAN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Midiman",
+ NULL,
+ },
+ {
+ USB_VENDOR_CYBERPOWER, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Cyber Power Systems, Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_SURECOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Surecom Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_HIDGLOBAL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "HID Global",
+ NULL,
+ },
+ {
+ USB_VENDOR_LINKSYS2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Linksys",
+ NULL,
+ },
+ {
+ USB_VENDOR_GRIFFIN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Griffin Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_SANDISK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "SanDisk",
+ NULL,
+ },
+ {
+ USB_VENDOR_JENOPTIK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Jenoptik",
+ NULL,
+ },
+ {
+ USB_VENDOR_LOGITEC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Logitec",
+ NULL,
+ },
+ {
+ USB_VENDOR_NOKIA2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Nokia",
+ NULL,
+ },
+ {
+ USB_VENDOR_BRIMAX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Brimax",
+ NULL,
+ },
+ {
+ USB_VENDOR_AXIS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Axis Communications",
+ NULL,
+ },
+ {
+ USB_VENDOR_ABL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ABL Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_SAGEM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sagem",
+ NULL,
+ },
+ {
+ USB_VENDOR_SUNCOMM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sun Communications, Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALFADATA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Alfadata Computer",
+ NULL,
+ },
+ {
+ USB_VENDOR_NATIONALTECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "National Technical Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_ONNTO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Onnto",
+ NULL,
+ },
+ {
+ USB_VENDOR_BE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Be",
+ NULL,
+ },
+ {
+ USB_VENDOR_ADMTEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ADMtek",
+ NULL,
+ },
+ {
+ USB_VENDOR_COREGA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Corega",
+ NULL,
+ },
+ {
+ USB_VENDOR_FREECOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Freecom",
+ NULL,
+ },
+ {
+ USB_VENDOR_MICROTECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Microtech",
+ NULL,
+ },
+ {
+ USB_VENDOR_GENERALINSTMNTS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "General Instruments (Motorola)",
+ NULL,
+ },
+ {
+ USB_VENDOR_OLYMPUS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Olympus",
+ NULL,
+ },
+ {
+ USB_VENDOR_ABOCOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AboCom Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_KEISOKUGIKEN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Keisokugiken",
+ NULL,
+ },
+ {
+ USB_VENDOR_ONSPEC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "OnSpec",
+ NULL,
+ },
+ {
+ USB_VENDOR_APG, 0,
+ USB_KNOWNDEV_NOPROD,
+ "APG Cash Drawer",
+ NULL,
+ },
+ {
+ USB_VENDOR_BUG, 0,
+ USB_KNOWNDEV_NOPROD,
+ "B.U.G.",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALLIEDTELESYN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Allied Telesyn International",
+ NULL,
+ },
+ {
+ USB_VENDOR_AVERMEDIA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AVerMedia Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_SIIG, 0,
+ USB_KNOWNDEV_NOPROD,
+ "SIIG",
+ NULL,
+ },
+ {
+ USB_VENDOR_CASIO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "CASIO",
+ NULL,
+ },
+ {
+ USB_VENDOR_DLINK2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "D-Link",
+ NULL,
+ },
+ {
+ USB_VENDOR_APTIO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Aptio Products",
+ NULL,
+ },
+ {
+ USB_VENDOR_ARASAN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Arasan Chip Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALLIEDCABLE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Allied Cable",
+ NULL,
+ },
+ {
+ USB_VENDOR_STSN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "STSN",
+ NULL,
+ },
+ {
+ USB_VENDOR_CENTURY, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Century Corp",
+ NULL,
+ },
+ {
+ USB_VENDOR_NEWLINK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "NEWlink",
+ NULL,
+ },
+ {
+ USB_VENDOR_ZOOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Zoom Telephonics",
+ NULL,
+ },
+ {
+ USB_VENDOR_PCS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Personal Communication Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALPHASMART, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AlphaSmart, Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_BROADLOGIC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "BroadLogic",
+ NULL,
+ },
+ {
+ USB_VENDOR_HANDSPRING, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Handspring",
+ NULL,
+ },
+ {
+ USB_VENDOR_PALM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Palm Computing",
+ NULL,
+ },
+ {
+ USB_VENDOR_SOURCENEXT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "SOURCENEXT",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACTIONSTAR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Action Star Enterprise",
+ NULL,
+ },
+ {
+ USB_VENDOR_SAMSUNG_TECHWIN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Samsung Techwin",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACCTON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Accton Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_DIAMOND, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Diamond",
+ NULL,
+ },
+ {
+ USB_VENDOR_NETGEAR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "BayNETGEAR",
+ NULL,
+ },
+ {
+ USB_VENDOR_TOPRE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Topre Corporation",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACTIVEWIRE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ActiveWire",
+ NULL,
+ },
+ {
+ USB_VENDOR_BBELECTRONICS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "B&B Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_PORTGEAR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "PortGear",
+ NULL,
+ },
+ {
+ USB_VENDOR_NETGEAR2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Netgear",
+ NULL,
+ },
+ {
+ USB_VENDOR_SYSTEMTALKS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "System Talks",
+ NULL,
+ },
+ {
+ USB_VENDOR_METRICOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Metricom",
+ NULL,
+ },
+ {
+ USB_VENDOR_ADESSOKBTEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ADESSO/Kbtek America",
+ NULL,
+ },
+ {
+ USB_VENDOR_JATON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Jaton",
+ NULL,
+ },
+ {
+ USB_VENDOR_APT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "APT Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_BOCARESEARCH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Boca Research",
+ NULL,
+ },
+ {
+ USB_VENDOR_ANDREA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Andrea Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_BURRBROWN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Burr-Brown Japan",
+ NULL,
+ },
+ {
+ USB_VENDOR_2WIRE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "2Wire",
+ NULL,
+ },
+ {
+ USB_VENDOR_AIPTEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AIPTEK International",
+ NULL,
+ },
+ {
+ USB_VENDOR_SMARTBRIDGES, 0,
+ USB_KNOWNDEV_NOPROD,
+ "SmartBridges",
+ NULL,
+ },
+ {
+ USB_VENDOR_FUJITSUSIEMENS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Fujitsu-Siemens",
+ NULL,
+ },
+ {
+ USB_VENDOR_BILLIONTON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Billionton Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_GEMALTO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Gemalto SA",
+ NULL,
+ },
+ {
+ USB_VENDOR_EXTENDED, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Extended Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_MSYSTEMS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "M-Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_DIGIANSWER, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Digianswer",
+ NULL,
+ },
+ {
+ USB_VENDOR_AUTHENTEC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AuthenTec",
+ NULL,
+ },
+ {
+ USB_VENDOR_AUDIOTECHNICA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Audio-Technica",
+ NULL,
+ },
+ {
+ USB_VENDOR_TRUMPION, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Trumpion Microelectronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_FEIYA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Feiya",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALATION, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Alation Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_GLOBESPAN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Globespan",
+ NULL,
+ },
+ {
+ USB_VENDOR_CONCORDCAMERA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Concord Camera",
+ NULL,
+ },
+ {
+ USB_VENDOR_GARMIN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Garmin International",
+ NULL,
+ },
+ {
+ USB_VENDOR_GOHUBS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "GoHubs",
+ NULL,
+ },
+ {
+ USB_VENDOR_XEROX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Xerox",
+ NULL,
+ },
+ {
+ USB_VENDOR_BIOMETRIC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "American Biometric Company",
+ NULL,
+ },
+ {
+ USB_VENDOR_TOSHIBA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Toshiba",
+ NULL,
+ },
+ {
+ USB_VENDOR_PLEXTOR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Plextor",
+ NULL,
+ },
+ {
+ USB_VENDOR_INTREPIDCS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Intrepid",
+ NULL,
+ },
+ {
+ USB_VENDOR_YANO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Yano",
+ NULL,
+ },
+ {
+ USB_VENDOR_KINGSTON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Kingston Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_BLUEWATER, 0,
+ USB_KNOWNDEV_NOPROD,
+ "BlueWater Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_AGILENT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Agilent Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_GUDE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Gude ADS",
+ NULL,
+ },
+ {
+ USB_VENDOR_PORTSMITH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Portsmith",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACERW, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Acer",
+ NULL,
+ },
+ {
+ USB_VENDOR_ADIRONDACK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Adirondack Wire & Cable",
+ NULL,
+ },
+ {
+ USB_VENDOR_BECKHOFF, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Beckhoff",
+ NULL,
+ },
+ {
+ USB_VENDOR_MINDSATWORK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Minds At Work",
+ NULL,
+ },
+ {
+ USB_VENDOR_POINTCHIPS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "PointChips",
+ NULL,
+ },
+ {
+ USB_VENDOR_INTERSIL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Intersil",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALTIUS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Altius Solutions",
+ NULL,
+ },
+ {
+ USB_VENDOR_ARRIS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Arris Interactive",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACTIVCARD, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ACTIVCARD",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACTISYS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ACTiSYS",
+ NULL,
+ },
+ {
+ USB_VENDOR_NOVATEL2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Novatel Wireless",
+ NULL,
+ },
+ {
+ USB_VENDOR_AFOURTECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "A-FOUR TECH",
+ NULL,
+ },
+ {
+ USB_VENDOR_AIMEX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AIMEX",
+ NULL,
+ },
+ {
+ USB_VENDOR_ADDONICS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Addonics Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_AKAI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AKAI professional M.I.",
+ NULL,
+ },
+ {
+ USB_VENDOR_ARESCOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ARESCOM",
+ NULL,
+ },
+ {
+ USB_VENDOR_BAY, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Bay Associates",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALTERA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Altera",
+ NULL,
+ },
+ {
+ USB_VENDOR_CSR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Cambridge Silicon Radio",
+ NULL,
+ },
+ {
+ USB_VENDOR_TREK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Trek Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_ASAHIOPTICAL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Asahi Optical",
+ NULL,
+ },
+ {
+ USB_VENDOR_BOCASYSTEMS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Boca Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_SHANTOU, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ShanTou",
+ NULL,
+ },
+ {
+ USB_VENDOR_MEDIAGEAR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "MediaGear",
+ NULL,
+ },
+ {
+ USB_VENDOR_BROADCOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Broadcom",
+ NULL,
+ },
+ {
+ USB_VENDOR_GREENHOUSE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "GREENHOUSE",
+ NULL,
+ },
+ {
+ USB_VENDOR_GEOCAST, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Geocast Network Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_IDQUANTIQUE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "id Quantique",
+ NULL,
+ },
+ {
+ USB_VENDOR_ZYDAS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Zydas Technology Corporation",
+ NULL,
+ },
+ {
+ USB_VENDOR_NEODIO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Neodio",
+ NULL,
+ },
+ {
+ USB_VENDOR_OPTION, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Option N.V.",
+ NULL,
+ },
+ {
+ USB_VENDOR_ASUS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ASUSTeK Computer",
+ NULL,
+ },
+ {
+ USB_VENDOR_TODOS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Todos Data System",
+ NULL,
+ },
+ {
+ USB_VENDOR_SIIG2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "SIIG",
+ NULL,
+ },
+ {
+ USB_VENDOR_TEKRAM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Tekram Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_HAL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "HAL Corporation",
+ NULL,
+ },
+ {
+ USB_VENDOR_EMS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "EMS Production",
+ NULL,
+ },
+ {
+ USB_VENDOR_NEC2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "NEC",
+ NULL,
+ },
+ {
+ USB_VENDOR_ADLINK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ADLINK Technoligy, Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_ATI2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ATI",
+ NULL,
+ },
+ {
+ USB_VENDOR_ZEEVO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Zeevo, Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_KURUSUGAWA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Kurusugawa Electronics, Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_SMART, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Smart Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_ASIX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ASIX Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_O2MICRO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "O2 Micro, Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_USR, 0,
+ USB_KNOWNDEV_NOPROD,
+ "U.S. Robotics",
+ NULL,
+ },
+ {
+ USB_VENDOR_AMBIT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Ambit Microsystems",
+ NULL,
+ },
+ {
+ USB_VENDOR_HTC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "HTC",
+ NULL,
+ },
+ {
+ USB_VENDOR_REALTEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Realtek",
+ NULL,
+ },
+ {
+ USB_VENDOR_MEI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "MEI",
+ NULL,
+ },
+ {
+ USB_VENDOR_ADDONICS2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Addonics Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_FSC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Fujitsu Siemens Computers",
+ NULL,
+ },
+ {
+ USB_VENDOR_AGATE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Agate Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_DMI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "DMI",
+ NULL,
+ },
+ {
+ USB_VENDOR_CHICONY2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Chicony",
+ NULL,
+ },
+ {
+ USB_VENDOR_REINERSCT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Reiner-SCT",
+ NULL,
+ },
+ {
+ USB_VENDOR_SEALEVEL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sealevel System",
+ NULL,
+ },
+ {
+ USB_VENDOR_LUWEN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Luwen",
+ NULL,
+ },
+ {
+ USB_VENDOR_KYOCERA2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Kyocera Wireless Corp.",
+ NULL,
+ },
+ {
+ USB_VENDOR_ZCOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Z-Com",
+ NULL,
+ },
+ {
+ USB_VENDOR_ATHEROS2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Atheros Communications",
+ NULL,
+ },
+ {
+ USB_VENDOR_TANGTOP, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Tangtop",
+ NULL,
+ },
+ {
+ USB_VENDOR_SMC3, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Standard Microsystems",
+ NULL,
+ },
+ {
+ USB_VENDOR_ADDON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Add-on Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACDC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "American Computer & Digital Components",
+ NULL,
+ },
+ {
+ USB_VENDOR_CMEDIA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "CMEDIA",
+ NULL,
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Conceptronic",
+ NULL,
+ },
+ {
+ USB_VENDOR_SKANHEX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Skanhex Technology, Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_MSI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Micro Star International",
+ NULL,
+ },
+ {
+ USB_VENDOR_ELCON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ELCON Systemtechnik",
+ NULL,
+ },
+ {
+ USB_VENDOR_NETAC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Netac",
+ NULL,
+ },
+ {
+ USB_VENDOR_SITECOMEU, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sitecom Europe",
+ NULL,
+ },
+ {
+ USB_VENDOR_MOBILEACTION, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Mobile Action",
+ NULL,
+ },
+ {
+ USB_VENDOR_AMIGO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Amigo Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_SPEEDDRAGON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Speed Dragon Multimedia",
+ NULL,
+ },
+ {
+ USB_VENDOR_HAWKING, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Hawking",
+ NULL,
+ },
+ {
+ USB_VENDOR_FOSSIL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Fossil, Inc",
+ NULL,
+ },
+ {
+ USB_VENDOR_GMATE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "G.Mate, Inc",
+ NULL,
+ },
+ {
+ USB_VENDOR_OTI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Ours Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_YISO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Yiso Wireless Co.",
+ NULL,
+ },
+ {
+ USB_VENDOR_PILOTECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Pilotech",
+ NULL,
+ },
+ {
+ USB_VENDOR_NOVATECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "NovaTech",
+ NULL,
+ },
+ {
+ USB_VENDOR_ITEGNO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "iTegno",
+ NULL,
+ },
+ {
+ USB_VENDOR_WINMAXGROUP, 0,
+ USB_KNOWNDEV_NOPROD,
+ "WinMaxGroup",
+ NULL,
+ },
+ {
+ USB_VENDOR_TOD, 0,
+ USB_KNOWNDEV_NOPROD,
+ "TOD",
+ NULL,
+ },
+ {
+ USB_VENDOR_EGALAX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "eGalax, Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_AIRPRIME, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AirPrime, Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_MICROTUNE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Microtune",
+ NULL,
+ },
+ {
+ USB_VENDOR_VTECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "VTech",
+ NULL,
+ },
+ {
+ USB_VENDOR_FALCOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Falcom Wireless Communications GmbH",
+ NULL,
+ },
+ {
+ USB_VENDOR_RIM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Research In Motion",
+ NULL,
+ },
+ {
+ USB_VENDOR_DYNASTREAM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Dynastream Innovations",
+ NULL,
+ },
+ {
+ USB_VENDOR_QUALCOMM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Qualcomm",
+ NULL,
+ },
+ {
+ USB_VENDOR_APACER, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Apacer",
+ NULL,
+ },
+ {
+ USB_VENDOR_MOTOROLA4, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Motorola",
+ NULL,
+ },
+ {
+ USB_VENDOR_AIRPLUS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Airplus",
+ NULL,
+ },
+ {
+ USB_VENDOR_DESKNOTE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Desknote",
+ NULL,
+ },
+ {
+ USB_VENDOR_GIGABYTE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "GIGABYTE",
+ NULL,
+ },
+ {
+ USB_VENDOR_WESTERN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Western Digital",
+ NULL,
+ },
+ {
+ USB_VENDOR_MOTOROLA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Motorola",
+ NULL,
+ },
+ {
+ USB_VENDOR_CCYU, 0,
+ USB_KNOWNDEV_NOPROD,
+ "CCYU Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_CURITEL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Curitel Communications Inc",
+ NULL,
+ },
+ {
+ USB_VENDOR_SILABS2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "SILABS2",
+ NULL,
+ },
+ {
+ USB_VENDOR_USI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "USI",
+ NULL,
+ },
+ {
+ USB_VENDOR_PLX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "PLX",
+ NULL,
+ },
+ {
+ USB_VENDOR_ASANTE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Asante",
+ NULL,
+ },
+ {
+ USB_VENDOR_SILABS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Silicon Labs",
+ NULL,
+ },
+ {
+ USB_VENDOR_SILABS3, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Silicon Labs",
+ NULL,
+ },
+ {
+ USB_VENDOR_SILABS4, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Silicon Labs",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACTIONS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Actions",
+ NULL,
+ },
+ {
+ USB_VENDOR_ANALOG, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Analog Devices",
+ NULL,
+ },
+ {
+ USB_VENDOR_TENX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Ten X Technology, Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_ISSC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Integrated System Solution Corp.",
+ NULL,
+ },
+ {
+ USB_VENDOR_JRC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Japan Radio Company",
+ NULL,
+ },
+ {
+ USB_VENDOR_SPHAIRON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sphairon Access Systems GmbH",
+ NULL,
+ },
+ {
+ USB_VENDOR_DELORME, 0,
+ USB_KNOWNDEV_NOPROD,
+ "DeLorme",
+ NULL,
+ },
+ {
+ USB_VENDOR_SERVERWORKS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ServerWorks",
+ NULL,
+ },
+ {
+ USB_VENDOR_DLINK3, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Dlink",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACERCM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Acer Communications & Multimedia",
+ NULL,
+ },
+ {
+ USB_VENDOR_SIERRA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sierra Wireless",
+ NULL,
+ },
+ {
+ USB_VENDOR_SANWA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sanwa Electric Instrument Co., Ltd.",
+ NULL,
+ },
+ {
+ USB_VENDOR_TOPFIELD, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Topfield Co., Ltd",
+ NULL,
+ },
+ {
+ USB_VENDOR_SIEMENS3, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Siemens",
+ NULL,
+ },
+ {
+ USB_VENDOR_NETINDEX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "NetIndex",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALCATEL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Alcatel",
+ NULL,
+ },
+ {
+ USB_VENDOR_UNKNOWN3, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Unknown vendor",
+ NULL,
+ },
+ {
+ USB_VENDOR_TSUNAMI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Tsunami",
+ NULL,
+ },
+ {
+ USB_VENDOR_PHEENET, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Pheenet",
+ NULL,
+ },
+ {
+ USB_VENDOR_TARGUS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Targus",
+ NULL,
+ },
+ {
+ USB_VENDOR_TWINMOS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "TwinMOS",
+ NULL,
+ },
+ {
+ USB_VENDOR_TENDA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Tenda",
+ NULL,
+ },
+ {
+ USB_VENDOR_CREATIVE2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Creative Labs",
+ NULL,
+ },
+ {
+ USB_VENDOR_BELKIN2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Belkin Components",
+ NULL,
+ },
+ {
+ USB_VENDOR_CYBERTAN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "CyberTAN Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_HUAWEI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Huawei Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_ARANEUS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Araneus Information Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_TAPWAVE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Tapwave",
+ NULL,
+ },
+ {
+ USB_VENDOR_AINCOMM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Aincomm",
+ NULL,
+ },
+ {
+ USB_VENDOR_MOBILITY, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Mobility",
+ NULL,
+ },
+ {
+ USB_VENDOR_DICKSMITH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Dick Smith Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_NETGEAR3, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Netgear",
+ NULL,
+ },
+ {
+ USB_VENDOR_BALTECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Baltech",
+ NULL,
+ },
+ {
+ USB_VENDOR_CISCOLINKSYS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Cisco-Linksys",
+ NULL,
+ },
+ {
+ USB_VENDOR_SHARK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Shark",
+ NULL,
+ },
+ {
+ USB_VENDOR_AZUREWAVE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AsureWave",
+ NULL,
+ },
+ {
+ USB_VENDOR_EMTEC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Emtec",
+ NULL,
+ },
+ {
+ USB_VENDOR_NOVATEL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Novatel Wireless",
+ NULL,
+ },
+ {
+ USB_VENDOR_MERLIN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Merlin",
+ NULL,
+ },
+ {
+ USB_VENDOR_WISTRONNEWEB, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Wistron NeWeb",
+ NULL,
+ },
+ {
+ USB_VENDOR_RADIOSHACK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Radio Shack",
+ NULL,
+ },
+ {
+ USB_VENDOR_HUAWEI3COM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Huawei-3Com",
+ NULL,
+ },
+ {
+ USB_VENDOR_ABOCOM2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AboCom Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_SILICOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Silicom",
+ NULL,
+ },
+ {
+ USB_VENDOR_RALINK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Ralink Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_IMAGINATION, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Imagination Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_CONCEPTRONIC2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Conceptronic",
+ NULL,
+ },
+ {
+ USB_VENDOR_SUPERTOP, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Super Top",
+ NULL,
+ },
+ {
+ USB_VENDOR_PLANEX3, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Planex Communications",
+ NULL,
+ },
+ {
+ USB_VENDOR_SILICONPORTALS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Silicon Portals",
+ NULL,
+ },
+ {
+ USB_VENDOR_UBIQUAM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "UBIQUAM Co., Ltd.",
+ NULL,
+ },
+ {
+ USB_VENDOR_JMICRON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "JMicron",
+ NULL,
+ },
+ {
+ USB_VENDOR_UBLOX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "U-blox",
+ NULL,
+ },
+ {
+ USB_VENDOR_PNY, 0,
+ USB_KNOWNDEV_NOPROD,
+ "PNY",
+ NULL,
+ },
+ {
+ USB_VENDOR_OWEN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Owen",
+ NULL,
+ },
+ {
+ USB_VENDOR_OQO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "OQO",
+ NULL,
+ },
+ {
+ USB_VENDOR_UMEDIA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "U-MEDIA Communications",
+ NULL,
+ },
+ {
+ USB_VENDOR_FIBERLINE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Fiberline",
+ NULL,
+ },
+ {
+ USB_VENDOR_SPARKLAN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "SparkLAN",
+ NULL,
+ },
+ {
+ USB_VENDOR_AMIT2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AMIT",
+ NULL,
+ },
+ {
+ USB_VENDOR_SOHOWARE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "SOHOware",
+ NULL,
+ },
+ {
+ USB_VENDOR_UMAX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "UMAX Data Systems",
+ NULL,
+ },
+ {
+ USB_VENDOR_INSIDEOUT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Inside Out Networks",
+ NULL,
+ },
+ {
+ USB_VENDOR_AMOI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Amoi Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_GOODWAY, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Good Way Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_ENTREGA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Entrega",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACTIONTEC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Actiontec Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_CLIPSAL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Clipsal",
+ NULL,
+ },
+ {
+ USB_VENDOR_CISCOLINKSYS2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Cisco-Linksys",
+ NULL,
+ },
+ {
+ USB_VENDOR_ATHEROS, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Atheros Communications",
+ NULL,
+ },
+ {
+ USB_VENDOR_GIGASET, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Gigaset",
+ NULL,
+ },
+ {
+ USB_VENDOR_GLOBALSUN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Global Sun Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_ANYDATA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AnyDATA Corporation",
+ NULL,
+ },
+ {
+ USB_VENDOR_JABLOTRON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Jablotron",
+ NULL,
+ },
+ {
+ USB_VENDOR_CMOTECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "C-motech",
+ NULL,
+ },
+ {
+ USB_VENDOR_AXESSTEL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Axesstel Co., Ltd.",
+ NULL,
+ },
+ {
+ USB_VENDOR_LINKSYS4, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Linksys",
+ NULL,
+ },
+ {
+ USB_VENDOR_SENAO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Senao",
+ NULL,
+ },
+ {
+ USB_VENDOR_ASUS2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ASUS",
+ NULL,
+ },
+ {
+ USB_VENDOR_SWEEX2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sweex",
+ NULL,
+ },
+ {
+ USB_VENDOR_METAGEEK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "MetaGeek",
+ NULL,
+ },
+ {
+ USB_VENDOR_WAVESENSE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "WaveSense",
+ NULL,
+ },
+ {
+ USB_VENDOR_VAISALA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Vaisala",
+ NULL,
+ },
+ {
+ USB_VENDOR_AMIT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AMIT",
+ NULL,
+ },
+ {
+ USB_VENDOR_GOOGLE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Google",
+ NULL,
+ },
+ {
+ USB_VENDOR_QCOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Qcom",
+ NULL,
+ },
+ {
+ USB_VENDOR_ELV, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ELV",
+ NULL,
+ },
+ {
+ USB_VENDOR_LINKSYS3, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Linksys",
+ NULL,
+ },
+ {
+ USB_VENDOR_QUALCOMMINC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Qualcomm, Incorporated",
+ NULL,
+ },
+ {
+ USB_VENDOR_WCH2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "QinHeng Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_STELERA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Stelera Wireless",
+ NULL,
+ },
+ {
+ USB_VENDOR_MATRIXORBITAL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Matrix Orbital",
+ NULL,
+ },
+ {
+ USB_VENDOR_OVISLINK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "OvisLink",
+ NULL,
+ },
+ {
+ USB_VENDOR_TCTMOBILE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "TCT Mobile",
+ NULL,
+ },
+ {
+ USB_VENDOR_TELIT, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Telit",
+ NULL,
+ },
+ {
+ USB_VENDOR_LONGCHEER, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Longcheer Holdings, Ltd.",
+ NULL,
+ },
+ {
+ USB_VENDOR_MPMAN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "MpMan",
+ NULL,
+ },
+ {
+ USB_VENDOR_DRESDENELEKTRONIK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "dresden elektronik",
+ NULL,
+ },
+ {
+ USB_VENDOR_NEOTEL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Neotel",
+ NULL,
+ },
+ {
+ USB_VENDOR_PEGATRON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Pegatron",
+ NULL,
+ },
+ {
+ USB_VENDOR_QISDA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Qisda",
+ NULL,
+ },
+ {
+ USB_VENDOR_METAGEEK2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "MetaGeek",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALINK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Alink",
+ NULL,
+ },
+ {
+ USB_VENDOR_AIRTIES, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AirTies",
+ NULL,
+ },
+ {
+ USB_VENDOR_DLINK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "D-Link",
+ NULL,
+ },
+ {
+ USB_VENDOR_PLANEX2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Planex Communications",
+ NULL,
+ },
+ {
+ USB_VENDOR_HAUPPAUGE2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Hauppauge Computer Works",
+ NULL,
+ },
+ {
+ USB_VENDOR_TLAYTECH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Tlay Tech",
+ NULL,
+ },
+ {
+ USB_VENDOR_ENCORE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Encore",
+ NULL,
+ },
+ {
+ USB_VENDOR_PARA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "PARA Industrial",
+ NULL,
+ },
+ {
+ USB_VENDOR_ERICSSON, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Ericsson",
+ NULL,
+ },
+ {
+ USB_VENDOR_MOTOROLA2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Motorola",
+ NULL,
+ },
+ {
+ USB_VENDOR_TRIPPLITE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Tripp-Lite",
+ NULL,
+ },
+ {
+ USB_VENDOR_HIROSE, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Hirose Electric",
+ NULL,
+ },
+ {
+ USB_VENDOR_NHJ, 0,
+ USB_KNOWNDEV_NOPROD,
+ "NHJ",
+ NULL,
+ },
+ {
+ USB_VENDOR_PLANEX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Planex Communications",
+ NULL,
+ },
+ {
+ USB_VENDOR_VIDZMEDIA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "VidzMedia Pte Ltd",
+ NULL,
+ },
+ {
+ USB_VENDOR_AEI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "AEI",
+ NULL,
+ },
+ {
+ USB_VENDOR_HANK, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Hank Connection",
+ NULL,
+ },
+ {
+ USB_VENDOR_PQI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "PQI",
+ NULL,
+ },
+ {
+ USB_VENDOR_DAISY, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Daisy Technology",
+ NULL,
+ },
+ {
+ USB_VENDOR_NI, 0,
+ USB_KNOWNDEV_NOPROD,
+ "National Instruments",
+ NULL,
+ },
+ {
+ USB_VENDOR_MICRONET, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Micronet Communications",
+ NULL,
+ },
+ {
+ USB_VENDOR_IODATA2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "I-O Data",
+ NULL,
+ },
+ {
+ USB_VENDOR_IRIVER, 0,
+ USB_KNOWNDEV_NOPROD,
+ "iRiver",
+ NULL,
+ },
+ {
+ USB_VENDOR_DELL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Dell",
+ NULL,
+ },
+ {
+ USB_VENDOR_WCH, 0,
+ USB_KNOWNDEV_NOPROD,
+ "QinHeng Electronics",
+ NULL,
+ },
+ {
+ USB_VENDOR_ACEECA, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Aceeca",
+ NULL,
+ },
+ {
+ USB_VENDOR_AVERATEC, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Averatec",
+ NULL,
+ },
+ {
+ USB_VENDOR_SWEEX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sweex",
+ NULL,
+ },
+ {
+ USB_VENDOR_PROLIFIC2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Prolific Technologies",
+ NULL,
+ },
+ {
+ USB_VENDOR_ONSPEC2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "OnSpec Electronic Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_ZINWELL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Zinwell",
+ NULL,
+ },
+ {
+ USB_VENDOR_SITECOM, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sitecom",
+ NULL,
+ },
+ {
+ USB_VENDOR_ARKMICRO, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Arkmicro Technologies Inc.",
+ NULL,
+ },
+ {
+ USB_VENDOR_3COM2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "3Com",
+ NULL,
+ },
+ {
+ USB_VENDOR_EDIMAX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Edimax",
+ NULL,
+ },
+ {
+ USB_VENDOR_INTEL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Intel",
+ NULL,
+ },
+ {
+ USB_VENDOR_INTEL2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Intel",
+ NULL,
+ },
+ {
+ USB_VENDOR_ALLWIN, 0,
+ USB_KNOWNDEV_NOPROD,
+ "ALLWIN Tech",
+ NULL,
+ },
+ {
+ USB_VENDOR_SITECOM2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Sitecom",
+ NULL,
+ },
+ {
+ USB_VENDOR_MOSCHIP, 0,
+ USB_KNOWNDEV_NOPROD,
+ "MosChip Semiconductor",
+ NULL,
+ },
+ {
+ USB_VENDOR_MARVELL, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Marvell Technology Group Ltd.",
+ NULL,
+ },
+ {
+ USB_VENDOR_3COM3, 0,
+ USB_KNOWNDEV_NOPROD,
+ "3Com",
+ NULL,
+ },
+ {
+ USB_VENDOR_DATAAPEX, 0,
+ USB_KNOWNDEV_NOPROD,
+ "DataApex",
+ NULL,
+ },
+ {
+ USB_VENDOR_HP2, 0,
+ USB_KNOWNDEV_NOPROD,
+ "Hewlett Packard",
+ NULL,
+ },
+ {
+ USB_VENDOR_USRP, 0,
+ USB_KNOWNDEV_NOPROD,
+ "GNU Radio USRP",
+ NULL,
+ },
+ { 0, 0, 0, NULL, NULL, }
+};
diff --git a/rtemsbsd/include/rtems/bsd/local/vnode_if.h b/rtemsbsd/include/rtems/bsd/local/vnode_if.h
new file mode 100644
index 00000000..c90e6c8e
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/vnode_if.h
@@ -0,0 +1,1546 @@
+/*
+ * This file is produced automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from $FreeBSD$
+ */
+
+extern struct vnodeop_desc vop_default_desc;
+#include <freebsd/local/vnode_if_typedef.h>
+#include <freebsd/local/vnode_if_newproto.h>
+struct vop_islocked_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+};
+
+extern struct vnodeop_desc vop_islocked_desc;
+
+int VOP_ISLOCKED_AP(struct vop_islocked_args *);
+int VOP_ISLOCKED_APV(struct vop_vector *vop, struct vop_islocked_args *);
+
+static __inline int VOP_ISLOCKED(
+ struct vnode *vp)
+{
+ struct vop_islocked_args a;
+
+ a.a_gen.a_desc = &vop_islocked_desc;
+ a.a_vp = vp;
+ return (VOP_ISLOCKED_APV(vp->v_op, &a));
+}
+
+struct vop_lookup_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_dvp;
+ struct vnode **a_vpp;
+ struct componentname *a_cnp;
+};
+
+extern struct vnodeop_desc vop_lookup_desc;
+
+int VOP_LOOKUP_AP(struct vop_lookup_args *);
+int VOP_LOOKUP_APV(struct vop_vector *vop, struct vop_lookup_args *);
+
+static __inline int VOP_LOOKUP(
+ struct vnode *dvp,
+ struct vnode **vpp,
+ struct componentname *cnp)
+{
+ struct vop_lookup_args a;
+
+ a.a_gen.a_desc = &vop_lookup_desc;
+ a.a_dvp = dvp;
+ a.a_vpp = vpp;
+ a.a_cnp = cnp;
+ return (VOP_LOOKUP_APV(dvp->v_op, &a));
+}
+
+struct vop_cachedlookup_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_dvp;
+ struct vnode **a_vpp;
+ struct componentname *a_cnp;
+};
+
+extern struct vnodeop_desc vop_cachedlookup_desc;
+
+int VOP_CACHEDLOOKUP_AP(struct vop_cachedlookup_args *);
+int VOP_CACHEDLOOKUP_APV(struct vop_vector *vop, struct vop_cachedlookup_args *);
+
+static __inline int VOP_CACHEDLOOKUP(
+ struct vnode *dvp,
+ struct vnode **vpp,
+ struct componentname *cnp)
+{
+ struct vop_cachedlookup_args a;
+
+ a.a_gen.a_desc = &vop_cachedlookup_desc;
+ a.a_dvp = dvp;
+ a.a_vpp = vpp;
+ a.a_cnp = cnp;
+ return (VOP_CACHEDLOOKUP_APV(dvp->v_op, &a));
+}
+
+struct vop_create_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_dvp;
+ struct vnode **a_vpp;
+ struct componentname *a_cnp;
+ struct vattr *a_vap;
+};
+
+extern struct vnodeop_desc vop_create_desc;
+
+int VOP_CREATE_AP(struct vop_create_args *);
+int VOP_CREATE_APV(struct vop_vector *vop, struct vop_create_args *);
+
+static __inline int VOP_CREATE(
+ struct vnode *dvp,
+ struct vnode **vpp,
+ struct componentname *cnp,
+ struct vattr *vap)
+{
+ struct vop_create_args a;
+
+ a.a_gen.a_desc = &vop_create_desc;
+ a.a_dvp = dvp;
+ a.a_vpp = vpp;
+ a.a_cnp = cnp;
+ a.a_vap = vap;
+ return (VOP_CREATE_APV(dvp->v_op, &a));
+}
+
+struct vop_whiteout_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_dvp;
+ struct componentname *a_cnp;
+ int a_flags;
+};
+
+extern struct vnodeop_desc vop_whiteout_desc;
+
+int VOP_WHITEOUT_AP(struct vop_whiteout_args *);
+int VOP_WHITEOUT_APV(struct vop_vector *vop, struct vop_whiteout_args *);
+
+static __inline int VOP_WHITEOUT(
+ struct vnode *dvp,
+ struct componentname *cnp,
+ int flags)
+{
+ struct vop_whiteout_args a;
+
+ a.a_gen.a_desc = &vop_whiteout_desc;
+ a.a_dvp = dvp;
+ a.a_cnp = cnp;
+ a.a_flags = flags;
+ return (VOP_WHITEOUT_APV(dvp->v_op, &a));
+}
+
+struct vop_mknod_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_dvp;
+ struct vnode **a_vpp;
+ struct componentname *a_cnp;
+ struct vattr *a_vap;
+};
+
+extern struct vnodeop_desc vop_mknod_desc;
+
+int VOP_MKNOD_AP(struct vop_mknod_args *);
+int VOP_MKNOD_APV(struct vop_vector *vop, struct vop_mknod_args *);
+
+static __inline int VOP_MKNOD(
+ struct vnode *dvp,
+ struct vnode **vpp,
+ struct componentname *cnp,
+ struct vattr *vap)
+{
+ struct vop_mknod_args a;
+
+ a.a_gen.a_desc = &vop_mknod_desc;
+ a.a_dvp = dvp;
+ a.a_vpp = vpp;
+ a.a_cnp = cnp;
+ a.a_vap = vap;
+ return (VOP_MKNOD_APV(dvp->v_op, &a));
+}
+
+struct vop_open_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ int a_mode;
+ struct ucred *a_cred;
+ struct thread *a_td;
+ struct file *a_fp;
+};
+
+extern struct vnodeop_desc vop_open_desc;
+
+int VOP_OPEN_AP(struct vop_open_args *);
+int VOP_OPEN_APV(struct vop_vector *vop, struct vop_open_args *);
+
+static __inline int VOP_OPEN(
+ struct vnode *vp,
+ int mode,
+ struct ucred *cred,
+ struct thread *td,
+ struct file *fp)
+{
+ struct vop_open_args a;
+
+ a.a_gen.a_desc = &vop_open_desc;
+ a.a_vp = vp;
+ a.a_mode = mode;
+ a.a_cred = cred;
+ a.a_td = td;
+ a.a_fp = fp;
+ return (VOP_OPEN_APV(vp->v_op, &a));
+}
+
+struct vop_close_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ int a_fflag;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_close_desc;
+
+int VOP_CLOSE_AP(struct vop_close_args *);
+int VOP_CLOSE_APV(struct vop_vector *vop, struct vop_close_args *);
+
+static __inline int VOP_CLOSE(
+ struct vnode *vp,
+ int fflag,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_close_args a;
+
+ a.a_gen.a_desc = &vop_close_desc;
+ a.a_vp = vp;
+ a.a_fflag = fflag;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_CLOSE_APV(vp->v_op, &a));
+}
+
+struct vop_access_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ accmode_t a_accmode;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_access_desc;
+
+int VOP_ACCESS_AP(struct vop_access_args *);
+int VOP_ACCESS_APV(struct vop_vector *vop, struct vop_access_args *);
+
+static __inline int VOP_ACCESS(
+ struct vnode *vp,
+ accmode_t accmode,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_access_args a;
+
+ a.a_gen.a_desc = &vop_access_desc;
+ a.a_vp = vp;
+ a.a_accmode = accmode;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_ACCESS_APV(vp->v_op, &a));
+}
+
+struct vop_accessx_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ accmode_t a_accmode;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_accessx_desc;
+
+int VOP_ACCESSX_AP(struct vop_accessx_args *);
+int VOP_ACCESSX_APV(struct vop_vector *vop, struct vop_accessx_args *);
+
+static __inline int VOP_ACCESSX(
+ struct vnode *vp,
+ accmode_t accmode,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_accessx_args a;
+
+ a.a_gen.a_desc = &vop_accessx_desc;
+ a.a_vp = vp;
+ a.a_accmode = accmode;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_ACCESSX_APV(vp->v_op, &a));
+}
+
+struct vop_getattr_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct vattr *a_vap;
+ struct ucred *a_cred;
+};
+
+extern struct vnodeop_desc vop_getattr_desc;
+
+int VOP_GETATTR_AP(struct vop_getattr_args *);
+int VOP_GETATTR_APV(struct vop_vector *vop, struct vop_getattr_args *);
+
+static __inline int VOP_GETATTR(
+ struct vnode *vp,
+ struct vattr *vap,
+ struct ucred *cred)
+{
+ struct vop_getattr_args a;
+
+ a.a_gen.a_desc = &vop_getattr_desc;
+ a.a_vp = vp;
+ a.a_vap = vap;
+ a.a_cred = cred;
+ return (VOP_GETATTR_APV(vp->v_op, &a));
+}
+
+struct vop_setattr_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct vattr *a_vap;
+ struct ucred *a_cred;
+};
+
+extern struct vnodeop_desc vop_setattr_desc;
+
+int VOP_SETATTR_AP(struct vop_setattr_args *);
+int VOP_SETATTR_APV(struct vop_vector *vop, struct vop_setattr_args *);
+
+static __inline int VOP_SETATTR(
+ struct vnode *vp,
+ struct vattr *vap,
+ struct ucred *cred)
+{
+ struct vop_setattr_args a;
+
+ a.a_gen.a_desc = &vop_setattr_desc;
+ a.a_vp = vp;
+ a.a_vap = vap;
+ a.a_cred = cred;
+ return (VOP_SETATTR_APV(vp->v_op, &a));
+}
+
+struct vop_markatime_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+};
+
+extern struct vnodeop_desc vop_markatime_desc;
+
+int VOP_MARKATIME_AP(struct vop_markatime_args *);
+int VOP_MARKATIME_APV(struct vop_vector *vop, struct vop_markatime_args *);
+
+static __inline int VOP_MARKATIME(
+ struct vnode *vp)
+{
+ struct vop_markatime_args a;
+
+ a.a_gen.a_desc = &vop_markatime_desc;
+ a.a_vp = vp;
+ return (VOP_MARKATIME_APV(vp->v_op, &a));
+}
+
+struct vop_read_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct uio *a_uio;
+ int a_ioflag;
+ struct ucred *a_cred;
+};
+
+extern struct vnodeop_desc vop_read_desc;
+
+int VOP_READ_AP(struct vop_read_args *);
+int VOP_READ_APV(struct vop_vector *vop, struct vop_read_args *);
+
+static __inline int VOP_READ(
+ struct vnode *vp,
+ struct uio *uio,
+ int ioflag,
+ struct ucred *cred)
+{
+ struct vop_read_args a;
+
+ a.a_gen.a_desc = &vop_read_desc;
+ a.a_vp = vp;
+ a.a_uio = uio;
+ a.a_ioflag = ioflag;
+ a.a_cred = cred;
+ return (VOP_READ_APV(vp->v_op, &a));
+}
+
+struct vop_write_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct uio *a_uio;
+ int a_ioflag;
+ struct ucred *a_cred;
+};
+
+extern struct vnodeop_desc vop_write_desc;
+
+int VOP_WRITE_AP(struct vop_write_args *);
+int VOP_WRITE_APV(struct vop_vector *vop, struct vop_write_args *);
+
+static __inline int VOP_WRITE(
+ struct vnode *vp,
+ struct uio *uio,
+ int ioflag,
+ struct ucred *cred)
+{
+ struct vop_write_args a;
+
+ a.a_gen.a_desc = &vop_write_desc;
+ a.a_vp = vp;
+ a.a_uio = uio;
+ a.a_ioflag = ioflag;
+ a.a_cred = cred;
+ return (VOP_WRITE_APV(vp->v_op, &a));
+}
+
+struct vop_ioctl_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ u_long a_command;
+ void *a_data;
+ int a_fflag;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_ioctl_desc;
+
+int VOP_IOCTL_AP(struct vop_ioctl_args *);
+int VOP_IOCTL_APV(struct vop_vector *vop, struct vop_ioctl_args *);
+
+static __inline int VOP_IOCTL(
+ struct vnode *vp,
+ u_long command,
+ void *data,
+ int fflag,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_ioctl_args a;
+
+ a.a_gen.a_desc = &vop_ioctl_desc;
+ a.a_vp = vp;
+ a.a_command = command;
+ a.a_data = data;
+ a.a_fflag = fflag;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_IOCTL_APV(vp->v_op, &a));
+}
+
+struct vop_poll_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ int a_events;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_poll_desc;
+
+int VOP_POLL_AP(struct vop_poll_args *);
+int VOP_POLL_APV(struct vop_vector *vop, struct vop_poll_args *);
+
+static __inline int VOP_POLL(
+ struct vnode *vp,
+ int events,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_poll_args a;
+
+ a.a_gen.a_desc = &vop_poll_desc;
+ a.a_vp = vp;
+ a.a_events = events;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_POLL_APV(vp->v_op, &a));
+}
+
+struct vop_kqfilter_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct knote *a_kn;
+};
+
+extern struct vnodeop_desc vop_kqfilter_desc;
+
+int VOP_KQFILTER_AP(struct vop_kqfilter_args *);
+int VOP_KQFILTER_APV(struct vop_vector *vop, struct vop_kqfilter_args *);
+
+static __inline int VOP_KQFILTER(
+ struct vnode *vp,
+ struct knote *kn)
+{
+ struct vop_kqfilter_args a;
+
+ a.a_gen.a_desc = &vop_kqfilter_desc;
+ a.a_vp = vp;
+ a.a_kn = kn;
+ return (VOP_KQFILTER_APV(vp->v_op, &a));
+}
+
+struct vop_revoke_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ int a_flags;
+};
+
+extern struct vnodeop_desc vop_revoke_desc;
+
+int VOP_REVOKE_AP(struct vop_revoke_args *);
+int VOP_REVOKE_APV(struct vop_vector *vop, struct vop_revoke_args *);
+
+static __inline int VOP_REVOKE(
+ struct vnode *vp,
+ int flags)
+{
+ struct vop_revoke_args a;
+
+ a.a_gen.a_desc = &vop_revoke_desc;
+ a.a_vp = vp;
+ a.a_flags = flags;
+ return (VOP_REVOKE_APV(vp->v_op, &a));
+}
+
+struct vop_fsync_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ int a_waitfor;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_fsync_desc;
+
+int VOP_FSYNC_AP(struct vop_fsync_args *);
+int VOP_FSYNC_APV(struct vop_vector *vop, struct vop_fsync_args *);
+
+static __inline int VOP_FSYNC(
+ struct vnode *vp,
+ int waitfor,
+ struct thread *td)
+{
+ struct vop_fsync_args a;
+
+ a.a_gen.a_desc = &vop_fsync_desc;
+ a.a_vp = vp;
+ a.a_waitfor = waitfor;
+ a.a_td = td;
+ return (VOP_FSYNC_APV(vp->v_op, &a));
+}
+
+struct vop_remove_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_dvp;
+ struct vnode *a_vp;
+ struct componentname *a_cnp;
+};
+
+extern struct vnodeop_desc vop_remove_desc;
+
+int VOP_REMOVE_AP(struct vop_remove_args *);
+int VOP_REMOVE_APV(struct vop_vector *vop, struct vop_remove_args *);
+
+static __inline int VOP_REMOVE(
+ struct vnode *dvp,
+ struct vnode *vp,
+ struct componentname *cnp)
+{
+ struct vop_remove_args a;
+
+ a.a_gen.a_desc = &vop_remove_desc;
+ a.a_dvp = dvp;
+ a.a_vp = vp;
+ a.a_cnp = cnp;
+ return (VOP_REMOVE_APV(dvp->v_op, &a));
+}
+
+struct vop_link_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_tdvp;
+ struct vnode *a_vp;
+ struct componentname *a_cnp;
+};
+
+extern struct vnodeop_desc vop_link_desc;
+
+int VOP_LINK_AP(struct vop_link_args *);
+int VOP_LINK_APV(struct vop_vector *vop, struct vop_link_args *);
+
+static __inline int VOP_LINK(
+ struct vnode *tdvp,
+ struct vnode *vp,
+ struct componentname *cnp)
+{
+ struct vop_link_args a;
+
+ a.a_gen.a_desc = &vop_link_desc;
+ a.a_tdvp = tdvp;
+ a.a_vp = vp;
+ a.a_cnp = cnp;
+ return (VOP_LINK_APV(tdvp->v_op, &a));
+}
+
+struct vop_rename_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_fdvp;
+ struct vnode *a_fvp;
+ struct componentname *a_fcnp;
+ struct vnode *a_tdvp;
+ struct vnode *a_tvp;
+ struct componentname *a_tcnp;
+};
+
+extern struct vnodeop_desc vop_rename_desc;
+
+int VOP_RENAME_AP(struct vop_rename_args *);
+int VOP_RENAME_APV(struct vop_vector *vop, struct vop_rename_args *);
+
+static __inline int VOP_RENAME(
+ struct vnode *fdvp,
+ struct vnode *fvp,
+ struct componentname *fcnp,
+ struct vnode *tdvp,
+ struct vnode *tvp,
+ struct componentname *tcnp)
+{
+ struct vop_rename_args a;
+
+ a.a_gen.a_desc = &vop_rename_desc;
+ a.a_fdvp = fdvp;
+ a.a_fvp = fvp;
+ a.a_fcnp = fcnp;
+ a.a_tdvp = tdvp;
+ a.a_tvp = tvp;
+ a.a_tcnp = tcnp;
+ return (VOP_RENAME_APV(fdvp->v_op, &a));
+}
+
+struct vop_mkdir_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_dvp;
+ struct vnode **a_vpp;
+ struct componentname *a_cnp;
+ struct vattr *a_vap;
+};
+
+extern struct vnodeop_desc vop_mkdir_desc;
+
+int VOP_MKDIR_AP(struct vop_mkdir_args *);
+int VOP_MKDIR_APV(struct vop_vector *vop, struct vop_mkdir_args *);
+
+static __inline int VOP_MKDIR(
+ struct vnode *dvp,
+ struct vnode **vpp,
+ struct componentname *cnp,
+ struct vattr *vap)
+{
+ struct vop_mkdir_args a;
+
+ a.a_gen.a_desc = &vop_mkdir_desc;
+ a.a_dvp = dvp;
+ a.a_vpp = vpp;
+ a.a_cnp = cnp;
+ a.a_vap = vap;
+ return (VOP_MKDIR_APV(dvp->v_op, &a));
+}
+
+struct vop_rmdir_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_dvp;
+ struct vnode *a_vp;
+ struct componentname *a_cnp;
+};
+
+extern struct vnodeop_desc vop_rmdir_desc;
+
+int VOP_RMDIR_AP(struct vop_rmdir_args *);
+int VOP_RMDIR_APV(struct vop_vector *vop, struct vop_rmdir_args *);
+
+static __inline int VOP_RMDIR(
+ struct vnode *dvp,
+ struct vnode *vp,
+ struct componentname *cnp)
+{
+ struct vop_rmdir_args a;
+
+ a.a_gen.a_desc = &vop_rmdir_desc;
+ a.a_dvp = dvp;
+ a.a_vp = vp;
+ a.a_cnp = cnp;
+ return (VOP_RMDIR_APV(dvp->v_op, &a));
+}
+
+struct vop_symlink_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_dvp;
+ struct vnode **a_vpp;
+ struct componentname *a_cnp;
+ struct vattr *a_vap;
+ char *a_target;
+};
+
+extern struct vnodeop_desc vop_symlink_desc;
+
+int VOP_SYMLINK_AP(struct vop_symlink_args *);
+int VOP_SYMLINK_APV(struct vop_vector *vop, struct vop_symlink_args *);
+
+static __inline int VOP_SYMLINK(
+ struct vnode *dvp,
+ struct vnode **vpp,
+ struct componentname *cnp,
+ struct vattr *vap,
+ char *target)
+{
+ struct vop_symlink_args a;
+
+ a.a_gen.a_desc = &vop_symlink_desc;
+ a.a_dvp = dvp;
+ a.a_vpp = vpp;
+ a.a_cnp = cnp;
+ a.a_vap = vap;
+ a.a_target = target;
+ return (VOP_SYMLINK_APV(dvp->v_op, &a));
+}
+
+struct vop_readdir_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct uio *a_uio;
+ struct ucred *a_cred;
+ int *a_eofflag;
+ int *a_ncookies;
+ u_long **a_cookies;
+};
+
+extern struct vnodeop_desc vop_readdir_desc;
+
+int VOP_READDIR_AP(struct vop_readdir_args *);
+int VOP_READDIR_APV(struct vop_vector *vop, struct vop_readdir_args *);
+
+static __inline int VOP_READDIR(
+ struct vnode *vp,
+ struct uio *uio,
+ struct ucred *cred,
+ int *eofflag,
+ int *ncookies,
+ u_long **cookies)
+{
+ struct vop_readdir_args a;
+
+ a.a_gen.a_desc = &vop_readdir_desc;
+ a.a_vp = vp;
+ a.a_uio = uio;
+ a.a_cred = cred;
+ a.a_eofflag = eofflag;
+ a.a_ncookies = ncookies;
+ a.a_cookies = cookies;
+ return (VOP_READDIR_APV(vp->v_op, &a));
+}
+
+struct vop_readlink_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct uio *a_uio;
+ struct ucred *a_cred;
+};
+
+extern struct vnodeop_desc vop_readlink_desc;
+
+int VOP_READLINK_AP(struct vop_readlink_args *);
+int VOP_READLINK_APV(struct vop_vector *vop, struct vop_readlink_args *);
+
+static __inline int VOP_READLINK(
+ struct vnode *vp,
+ struct uio *uio,
+ struct ucred *cred)
+{
+ struct vop_readlink_args a;
+
+ a.a_gen.a_desc = &vop_readlink_desc;
+ a.a_vp = vp;
+ a.a_uio = uio;
+ a.a_cred = cred;
+ return (VOP_READLINK_APV(vp->v_op, &a));
+}
+
+struct vop_inactive_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_inactive_desc;
+
+int VOP_INACTIVE_AP(struct vop_inactive_args *);
+int VOP_INACTIVE_APV(struct vop_vector *vop, struct vop_inactive_args *);
+
+static __inline int VOP_INACTIVE(
+ struct vnode *vp,
+ struct thread *td)
+{
+ struct vop_inactive_args a;
+
+ a.a_gen.a_desc = &vop_inactive_desc;
+ a.a_vp = vp;
+ a.a_td = td;
+ return (VOP_INACTIVE_APV(vp->v_op, &a));
+}
+
+struct vop_reclaim_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_reclaim_desc;
+
+int VOP_RECLAIM_AP(struct vop_reclaim_args *);
+int VOP_RECLAIM_APV(struct vop_vector *vop, struct vop_reclaim_args *);
+
+static __inline int VOP_RECLAIM(
+ struct vnode *vp,
+ struct thread *td)
+{
+ struct vop_reclaim_args a;
+
+ a.a_gen.a_desc = &vop_reclaim_desc;
+ a.a_vp = vp;
+ a.a_td = td;
+ return (VOP_RECLAIM_APV(vp->v_op, &a));
+}
+
+struct vop_lock1_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ int a_flags;
+ char *a_file;
+ int a_line;
+};
+
+extern struct vnodeop_desc vop_lock1_desc;
+
+int VOP_LOCK1_AP(struct vop_lock1_args *);
+int VOP_LOCK1_APV(struct vop_vector *vop, struct vop_lock1_args *);
+
+static __inline int VOP_LOCK1(
+ struct vnode *vp,
+ int flags,
+ char *file,
+ int line)
+{
+ struct vop_lock1_args a;
+
+ a.a_gen.a_desc = &vop_lock1_desc;
+ a.a_vp = vp;
+ a.a_flags = flags;
+ a.a_file = file;
+ a.a_line = line;
+ return (VOP_LOCK1_APV(vp->v_op, &a));
+}
+
+struct vop_unlock_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ int a_flags;
+};
+
+extern struct vnodeop_desc vop_unlock_desc;
+
+int VOP_UNLOCK_AP(struct vop_unlock_args *);
+int VOP_UNLOCK_APV(struct vop_vector *vop, struct vop_unlock_args *);
+
+static __inline int VOP_UNLOCK(
+ struct vnode *vp,
+ int flags)
+{
+ struct vop_unlock_args a;
+
+ a.a_gen.a_desc = &vop_unlock_desc;
+ a.a_vp = vp;
+ a.a_flags = flags;
+ return (VOP_UNLOCK_APV(vp->v_op, &a));
+}
+
+struct vop_bmap_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ daddr_t a_bn;
+ struct bufobj **a_bop;
+ daddr_t *a_bnp;
+ int *a_runp;
+ int *a_runb;
+};
+
+extern struct vnodeop_desc vop_bmap_desc;
+
+int VOP_BMAP_AP(struct vop_bmap_args *);
+int VOP_BMAP_APV(struct vop_vector *vop, struct vop_bmap_args *);
+
+static __inline int VOP_BMAP(
+ struct vnode *vp,
+ daddr_t bn,
+ struct bufobj **bop,
+ daddr_t *bnp,
+ int *runp,
+ int *runb)
+{
+ struct vop_bmap_args a;
+
+ a.a_gen.a_desc = &vop_bmap_desc;
+ a.a_vp = vp;
+ a.a_bn = bn;
+ a.a_bop = bop;
+ a.a_bnp = bnp;
+ a.a_runp = runp;
+ a.a_runb = runb;
+ return (VOP_BMAP_APV(vp->v_op, &a));
+}
+
+struct vop_strategy_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct buf *a_bp;
+};
+
+extern struct vnodeop_desc vop_strategy_desc;
+
+int VOP_STRATEGY_AP(struct vop_strategy_args *);
+int VOP_STRATEGY_APV(struct vop_vector *vop, struct vop_strategy_args *);
+
+static __inline int VOP_STRATEGY(
+ struct vnode *vp,
+ struct buf *bp)
+{
+ struct vop_strategy_args a;
+
+ a.a_gen.a_desc = &vop_strategy_desc;
+ a.a_vp = vp;
+ a.a_bp = bp;
+ return (VOP_STRATEGY_APV(vp->v_op, &a));
+}
+
+struct vop_getwritemount_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct mount **a_mpp;
+};
+
+extern struct vnodeop_desc vop_getwritemount_desc;
+
+int VOP_GETWRITEMOUNT_AP(struct vop_getwritemount_args *);
+int VOP_GETWRITEMOUNT_APV(struct vop_vector *vop, struct vop_getwritemount_args *);
+
+static __inline int VOP_GETWRITEMOUNT(
+ struct vnode *vp,
+ struct mount **mpp)
+{
+ struct vop_getwritemount_args a;
+
+ a.a_gen.a_desc = &vop_getwritemount_desc;
+ a.a_vp = vp;
+ a.a_mpp = mpp;
+ return (VOP_GETWRITEMOUNT_APV(vp->v_op, &a));
+}
+
+struct vop_print_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+};
+
+extern struct vnodeop_desc vop_print_desc;
+
+int VOP_PRINT_AP(struct vop_print_args *);
+int VOP_PRINT_APV(struct vop_vector *vop, struct vop_print_args *);
+
+static __inline int VOP_PRINT(
+ struct vnode *vp)
+{
+ struct vop_print_args a;
+
+ a.a_gen.a_desc = &vop_print_desc;
+ a.a_vp = vp;
+ return (VOP_PRINT_APV(vp->v_op, &a));
+}
+
+struct vop_pathconf_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ int a_name;
+ register_t *a_retval;
+};
+
+extern struct vnodeop_desc vop_pathconf_desc;
+
+int VOP_PATHCONF_AP(struct vop_pathconf_args *);
+int VOP_PATHCONF_APV(struct vop_vector *vop, struct vop_pathconf_args *);
+
+static __inline int VOP_PATHCONF(
+ struct vnode *vp,
+ int name,
+ register_t *retval)
+{
+ struct vop_pathconf_args a;
+
+ a.a_gen.a_desc = &vop_pathconf_desc;
+ a.a_vp = vp;
+ a.a_name = name;
+ a.a_retval = retval;
+ return (VOP_PATHCONF_APV(vp->v_op, &a));
+}
+
+struct vop_advlock_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ void *a_id;
+ int a_op;
+ struct flock *a_fl;
+ int a_flags;
+};
+
+extern struct vnodeop_desc vop_advlock_desc;
+
+int VOP_ADVLOCK_AP(struct vop_advlock_args *);
+int VOP_ADVLOCK_APV(struct vop_vector *vop, struct vop_advlock_args *);
+
+static __inline int VOP_ADVLOCK(
+ struct vnode *vp,
+ void *id,
+ int op,
+ struct flock *fl,
+ int flags)
+{
+ struct vop_advlock_args a;
+
+ a.a_gen.a_desc = &vop_advlock_desc;
+ a.a_vp = vp;
+ a.a_id = id;
+ a.a_op = op;
+ a.a_fl = fl;
+ a.a_flags = flags;
+ return (VOP_ADVLOCK_APV(vp->v_op, &a));
+}
+
+struct vop_advlockasync_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ void *a_id;
+ int a_op;
+ struct flock *a_fl;
+ int a_flags;
+ struct task *a_task;
+ void **a_cookiep;
+};
+
+extern struct vnodeop_desc vop_advlockasync_desc;
+
+int VOP_ADVLOCKASYNC_AP(struct vop_advlockasync_args *);
+int VOP_ADVLOCKASYNC_APV(struct vop_vector *vop, struct vop_advlockasync_args *);
+
+static __inline int VOP_ADVLOCKASYNC(
+ struct vnode *vp,
+ void *id,
+ int op,
+ struct flock *fl,
+ int flags,
+ struct task *task,
+ void **cookiep)
+{
+ struct vop_advlockasync_args a;
+
+ a.a_gen.a_desc = &vop_advlockasync_desc;
+ a.a_vp = vp;
+ a.a_id = id;
+ a.a_op = op;
+ a.a_fl = fl;
+ a.a_flags = flags;
+ a.a_task = task;
+ a.a_cookiep = cookiep;
+ return (VOP_ADVLOCKASYNC_APV(vp->v_op, &a));
+}
+
+struct vop_reallocblks_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct cluster_save *a_buflist;
+};
+
+extern struct vnodeop_desc vop_reallocblks_desc;
+
+int VOP_REALLOCBLKS_AP(struct vop_reallocblks_args *);
+int VOP_REALLOCBLKS_APV(struct vop_vector *vop, struct vop_reallocblks_args *);
+
+static __inline int VOP_REALLOCBLKS(
+ struct vnode *vp,
+ struct cluster_save *buflist)
+{
+ struct vop_reallocblks_args a;
+
+ a.a_gen.a_desc = &vop_reallocblks_desc;
+ a.a_vp = vp;
+ a.a_buflist = buflist;
+ return (VOP_REALLOCBLKS_APV(vp->v_op, &a));
+}
+
+struct vop_getpages_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ vm_page_t *a_m;
+ int a_count;
+ int a_reqpage;
+ vm_ooffset_t a_offset;
+};
+
+extern struct vnodeop_desc vop_getpages_desc;
+
+int VOP_GETPAGES_AP(struct vop_getpages_args *);
+int VOP_GETPAGES_APV(struct vop_vector *vop, struct vop_getpages_args *);
+
+static __inline int VOP_GETPAGES(
+ struct vnode *vp,
+ vm_page_t *m,
+ int count,
+ int reqpage,
+ vm_ooffset_t offset)
+{
+ struct vop_getpages_args a;
+
+ a.a_gen.a_desc = &vop_getpages_desc;
+ a.a_vp = vp;
+ a.a_m = m;
+ a.a_count = count;
+ a.a_reqpage = reqpage;
+ a.a_offset = offset;
+ return (VOP_GETPAGES_APV(vp->v_op, &a));
+}
+
+struct vop_putpages_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ vm_page_t *a_m;
+ int a_count;
+ int a_sync;
+ int *a_rtvals;
+ vm_ooffset_t a_offset;
+};
+
+extern struct vnodeop_desc vop_putpages_desc;
+
+int VOP_PUTPAGES_AP(struct vop_putpages_args *);
+int VOP_PUTPAGES_APV(struct vop_vector *vop, struct vop_putpages_args *);
+
+static __inline int VOP_PUTPAGES(
+ struct vnode *vp,
+ vm_page_t *m,
+ int count,
+ int sync,
+ int *rtvals,
+ vm_ooffset_t offset)
+{
+ struct vop_putpages_args a;
+
+ a.a_gen.a_desc = &vop_putpages_desc;
+ a.a_vp = vp;
+ a.a_m = m;
+ a.a_count = count;
+ a.a_sync = sync;
+ a.a_rtvals = rtvals;
+ a.a_offset = offset;
+ return (VOP_PUTPAGES_APV(vp->v_op, &a));
+}
+
+struct vop_getacl_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ acl_type_t a_type;
+ struct acl *a_aclp;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_getacl_desc;
+
+int VOP_GETACL_AP(struct vop_getacl_args *);
+int VOP_GETACL_APV(struct vop_vector *vop, struct vop_getacl_args *);
+
+static __inline int VOP_GETACL(
+ struct vnode *vp,
+ acl_type_t type,
+ struct acl *aclp,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_getacl_args a;
+
+ a.a_gen.a_desc = &vop_getacl_desc;
+ a.a_vp = vp;
+ a.a_type = type;
+ a.a_aclp = aclp;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_GETACL_APV(vp->v_op, &a));
+}
+
+struct vop_setacl_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ acl_type_t a_type;
+ struct acl *a_aclp;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_setacl_desc;
+
+int VOP_SETACL_AP(struct vop_setacl_args *);
+int VOP_SETACL_APV(struct vop_vector *vop, struct vop_setacl_args *);
+
+static __inline int VOP_SETACL(
+ struct vnode *vp,
+ acl_type_t type,
+ struct acl *aclp,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_setacl_args a;
+
+ a.a_gen.a_desc = &vop_setacl_desc;
+ a.a_vp = vp;
+ a.a_type = type;
+ a.a_aclp = aclp;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_SETACL_APV(vp->v_op, &a));
+}
+
+struct vop_aclcheck_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ acl_type_t a_type;
+ struct acl *a_aclp;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_aclcheck_desc;
+
+int VOP_ACLCHECK_AP(struct vop_aclcheck_args *);
+int VOP_ACLCHECK_APV(struct vop_vector *vop, struct vop_aclcheck_args *);
+
+static __inline int VOP_ACLCHECK(
+ struct vnode *vp,
+ acl_type_t type,
+ struct acl *aclp,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_aclcheck_args a;
+
+ a.a_gen.a_desc = &vop_aclcheck_desc;
+ a.a_vp = vp;
+ a.a_type = type;
+ a.a_aclp = aclp;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_ACLCHECK_APV(vp->v_op, &a));
+}
+
+struct vop_closeextattr_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ int a_commit;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_closeextattr_desc;
+
+int VOP_CLOSEEXTATTR_AP(struct vop_closeextattr_args *);
+int VOP_CLOSEEXTATTR_APV(struct vop_vector *vop, struct vop_closeextattr_args *);
+
+static __inline int VOP_CLOSEEXTATTR(
+ struct vnode *vp,
+ int commit,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_closeextattr_args a;
+
+ a.a_gen.a_desc = &vop_closeextattr_desc;
+ a.a_vp = vp;
+ a.a_commit = commit;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_CLOSEEXTATTR_APV(vp->v_op, &a));
+}
+
+struct vop_getextattr_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ int a_attrnamespace;
+ const char *a_name;
+ struct uio *a_uio;
+ size_t *a_size;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_getextattr_desc;
+
+int VOP_GETEXTATTR_AP(struct vop_getextattr_args *);
+int VOP_GETEXTATTR_APV(struct vop_vector *vop, struct vop_getextattr_args *);
+
+static __inline int VOP_GETEXTATTR(
+ struct vnode *vp,
+ int attrnamespace,
+ const char *name,
+ struct uio *uio,
+ size_t *size,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_getextattr_args a;
+
+ a.a_gen.a_desc = &vop_getextattr_desc;
+ a.a_vp = vp;
+ a.a_attrnamespace = attrnamespace;
+ a.a_name = name;
+ a.a_uio = uio;
+ a.a_size = size;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_GETEXTATTR_APV(vp->v_op, &a));
+}
+
+struct vop_listextattr_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ int a_attrnamespace;
+ struct uio *a_uio;
+ size_t *a_size;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_listextattr_desc;
+
+int VOP_LISTEXTATTR_AP(struct vop_listextattr_args *);
+int VOP_LISTEXTATTR_APV(struct vop_vector *vop, struct vop_listextattr_args *);
+
+static __inline int VOP_LISTEXTATTR(
+ struct vnode *vp,
+ int attrnamespace,
+ struct uio *uio,
+ size_t *size,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_listextattr_args a;
+
+ a.a_gen.a_desc = &vop_listextattr_desc;
+ a.a_vp = vp;
+ a.a_attrnamespace = attrnamespace;
+ a.a_uio = uio;
+ a.a_size = size;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_LISTEXTATTR_APV(vp->v_op, &a));
+}
+
+struct vop_openextattr_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_openextattr_desc;
+
+int VOP_OPENEXTATTR_AP(struct vop_openextattr_args *);
+int VOP_OPENEXTATTR_APV(struct vop_vector *vop, struct vop_openextattr_args *);
+
+static __inline int VOP_OPENEXTATTR(
+ struct vnode *vp,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_openextattr_args a;
+
+ a.a_gen.a_desc = &vop_openextattr_desc;
+ a.a_vp = vp;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_OPENEXTATTR_APV(vp->v_op, &a));
+}
+
+struct vop_deleteextattr_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ int a_attrnamespace;
+ const char *a_name;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_deleteextattr_desc;
+
+int VOP_DELETEEXTATTR_AP(struct vop_deleteextattr_args *);
+int VOP_DELETEEXTATTR_APV(struct vop_vector *vop, struct vop_deleteextattr_args *);
+
+static __inline int VOP_DELETEEXTATTR(
+ struct vnode *vp,
+ int attrnamespace,
+ const char *name,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_deleteextattr_args a;
+
+ a.a_gen.a_desc = &vop_deleteextattr_desc;
+ a.a_vp = vp;
+ a.a_attrnamespace = attrnamespace;
+ a.a_name = name;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_DELETEEXTATTR_APV(vp->v_op, &a));
+}
+
+struct vop_setextattr_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ int a_attrnamespace;
+ const char *a_name;
+ struct uio *a_uio;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_setextattr_desc;
+
+int VOP_SETEXTATTR_AP(struct vop_setextattr_args *);
+int VOP_SETEXTATTR_APV(struct vop_vector *vop, struct vop_setextattr_args *);
+
+static __inline int VOP_SETEXTATTR(
+ struct vnode *vp,
+ int attrnamespace,
+ const char *name,
+ struct uio *uio,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_setextattr_args a;
+
+ a.a_gen.a_desc = &vop_setextattr_desc;
+ a.a_vp = vp;
+ a.a_attrnamespace = attrnamespace;
+ a.a_name = name;
+ a.a_uio = uio;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_SETEXTATTR_APV(vp->v_op, &a));
+}
+
+struct vop_setlabel_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct label *a_label;
+ struct ucred *a_cred;
+ struct thread *a_td;
+};
+
+extern struct vnodeop_desc vop_setlabel_desc;
+
+int VOP_SETLABEL_AP(struct vop_setlabel_args *);
+int VOP_SETLABEL_APV(struct vop_vector *vop, struct vop_setlabel_args *);
+
+static __inline int VOP_SETLABEL(
+ struct vnode *vp,
+ struct label *label,
+ struct ucred *cred,
+ struct thread *td)
+{
+ struct vop_setlabel_args a;
+
+ a.a_gen.a_desc = &vop_setlabel_desc;
+ a.a_vp = vp;
+ a.a_label = label;
+ a.a_cred = cred;
+ a.a_td = td;
+ return (VOP_SETLABEL_APV(vp->v_op, &a));
+}
+
+struct vop_vptofh_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct fid *a_fhp;
+};
+
+extern struct vnodeop_desc vop_vptofh_desc;
+
+int VOP_VPTOFH_AP(struct vop_vptofh_args *);
+int VOP_VPTOFH_APV(struct vop_vector *vop, struct vop_vptofh_args *);
+
+static __inline int VOP_VPTOFH(
+ struct vnode *vp,
+ struct fid *fhp)
+{
+ struct vop_vptofh_args a;
+
+ a.a_gen.a_desc = &vop_vptofh_desc;
+ a.a_vp = vp;
+ a.a_fhp = fhp;
+ return (VOP_VPTOFH_APV(vp->v_op, &a));
+}
+
+struct vop_vptocnp_args {
+ struct vop_generic_args a_gen;
+ struct vnode *a_vp;
+ struct vnode **a_vpp;
+ struct ucred *a_cred;
+ char *a_buf;
+ int *a_buflen;
+};
+
+extern struct vnodeop_desc vop_vptocnp_desc;
+
+int VOP_VPTOCNP_AP(struct vop_vptocnp_args *);
+int VOP_VPTOCNP_APV(struct vop_vector *vop, struct vop_vptocnp_args *);
+
+static __inline int VOP_VPTOCNP(
+ struct vnode *vp,
+ struct vnode **vpp,
+ struct ucred *cred,
+ char *buf,
+ int *buflen)
+{
+ struct vop_vptocnp_args a;
+
+ a.a_gen.a_desc = &vop_vptocnp_desc;
+ a.a_vp = vp;
+ a.a_vpp = vpp;
+ a.a_cred = cred;
+ a.a_buf = buf;
+ a.a_buflen = buflen;
+ return (VOP_VPTOCNP_APV(vp->v_op, &a));
+}
+
diff --git a/rtemsbsd/include/rtems/bsd/local/vnode_if_newproto.h b/rtemsbsd/include/rtems/bsd/local/vnode_if_newproto.h
new file mode 100644
index 00000000..4b888acd
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/vnode_if_newproto.h
@@ -0,0 +1,66 @@
+/*
+ * This file is produced automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from $FreeBSD$
+ */
+
+
+struct vop_vector {
+ struct vop_vector *vop_default;
+ vop_bypass_t *vop_bypass;
+ vop_islocked_t *vop_islocked;
+ vop_lookup_t *vop_lookup;
+ vop_cachedlookup_t *vop_cachedlookup;
+ vop_create_t *vop_create;
+ vop_whiteout_t *vop_whiteout;
+ vop_mknod_t *vop_mknod;
+ vop_open_t *vop_open;
+ vop_close_t *vop_close;
+ vop_access_t *vop_access;
+ vop_accessx_t *vop_accessx;
+ vop_getattr_t *vop_getattr;
+ vop_setattr_t *vop_setattr;
+ vop_markatime_t *vop_markatime;
+ vop_read_t *vop_read;
+ vop_write_t *vop_write;
+ vop_ioctl_t *vop_ioctl;
+ vop_poll_t *vop_poll;
+ vop_kqfilter_t *vop_kqfilter;
+ vop_revoke_t *vop_revoke;
+ vop_fsync_t *vop_fsync;
+ vop_remove_t *vop_remove;
+ vop_link_t *vop_link;
+ vop_rename_t *vop_rename;
+ vop_mkdir_t *vop_mkdir;
+ vop_rmdir_t *vop_rmdir;
+ vop_symlink_t *vop_symlink;
+ vop_readdir_t *vop_readdir;
+ vop_readlink_t *vop_readlink;
+ vop_inactive_t *vop_inactive;
+ vop_reclaim_t *vop_reclaim;
+ vop_lock1_t *vop_lock1;
+ vop_unlock_t *vop_unlock;
+ vop_bmap_t *vop_bmap;
+ vop_strategy_t *vop_strategy;
+ vop_getwritemount_t *vop_getwritemount;
+ vop_print_t *vop_print;
+ vop_pathconf_t *vop_pathconf;
+ vop_advlock_t *vop_advlock;
+ vop_advlockasync_t *vop_advlockasync;
+ vop_reallocblks_t *vop_reallocblks;
+ vop_getpages_t *vop_getpages;
+ vop_putpages_t *vop_putpages;
+ vop_getacl_t *vop_getacl;
+ vop_setacl_t *vop_setacl;
+ vop_aclcheck_t *vop_aclcheck;
+ vop_closeextattr_t *vop_closeextattr;
+ vop_getextattr_t *vop_getextattr;
+ vop_listextattr_t *vop_listextattr;
+ vop_openextattr_t *vop_openextattr;
+ vop_deleteextattr_t *vop_deleteextattr;
+ vop_setextattr_t *vop_setextattr;
+ vop_setlabel_t *vop_setlabel;
+ vop_vptofh_t *vop_vptofh;
+ vop_vptocnp_t *vop_vptocnp;
+};
diff --git a/rtemsbsd/include/rtems/bsd/local/vnode_if_typedef.h b/rtemsbsd/include/rtems/bsd/local/vnode_if_typedef.h
new file mode 100644
index 00000000..b7157011
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/vnode_if_typedef.h
@@ -0,0 +1,170 @@
+/*
+ * This file is produced automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from $FreeBSD$
+ */
+
+
+struct vop_islocked_args;
+typedef int vop_islocked_t(struct vop_islocked_args *);
+
+struct vop_lookup_args;
+typedef int vop_lookup_t(struct vop_lookup_args *);
+
+struct vop_cachedlookup_args;
+typedef int vop_cachedlookup_t(struct vop_cachedlookup_args *);
+
+struct vop_create_args;
+typedef int vop_create_t(struct vop_create_args *);
+
+struct vop_whiteout_args;
+typedef int vop_whiteout_t(struct vop_whiteout_args *);
+
+struct vop_mknod_args;
+typedef int vop_mknod_t(struct vop_mknod_args *);
+
+struct vop_open_args;
+typedef int vop_open_t(struct vop_open_args *);
+
+struct vop_close_args;
+typedef int vop_close_t(struct vop_close_args *);
+
+struct vop_access_args;
+typedef int vop_access_t(struct vop_access_args *);
+
+struct vop_accessx_args;
+typedef int vop_accessx_t(struct vop_accessx_args *);
+
+struct vop_getattr_args;
+typedef int vop_getattr_t(struct vop_getattr_args *);
+
+struct vop_setattr_args;
+typedef int vop_setattr_t(struct vop_setattr_args *);
+
+struct vop_markatime_args;
+typedef int vop_markatime_t(struct vop_markatime_args *);
+
+struct vop_read_args;
+typedef int vop_read_t(struct vop_read_args *);
+
+struct vop_write_args;
+typedef int vop_write_t(struct vop_write_args *);
+
+struct vop_ioctl_args;
+typedef int vop_ioctl_t(struct vop_ioctl_args *);
+
+struct vop_poll_args;
+typedef int vop_poll_t(struct vop_poll_args *);
+
+struct vop_kqfilter_args;
+typedef int vop_kqfilter_t(struct vop_kqfilter_args *);
+
+struct vop_revoke_args;
+typedef int vop_revoke_t(struct vop_revoke_args *);
+
+struct vop_fsync_args;
+typedef int vop_fsync_t(struct vop_fsync_args *);
+
+struct vop_remove_args;
+typedef int vop_remove_t(struct vop_remove_args *);
+
+struct vop_link_args;
+typedef int vop_link_t(struct vop_link_args *);
+
+struct vop_rename_args;
+typedef int vop_rename_t(struct vop_rename_args *);
+
+struct vop_mkdir_args;
+typedef int vop_mkdir_t(struct vop_mkdir_args *);
+
+struct vop_rmdir_args;
+typedef int vop_rmdir_t(struct vop_rmdir_args *);
+
+struct vop_symlink_args;
+typedef int vop_symlink_t(struct vop_symlink_args *);
+
+struct vop_readdir_args;
+typedef int vop_readdir_t(struct vop_readdir_args *);
+
+struct vop_readlink_args;
+typedef int vop_readlink_t(struct vop_readlink_args *);
+
+struct vop_inactive_args;
+typedef int vop_inactive_t(struct vop_inactive_args *);
+
+struct vop_reclaim_args;
+typedef int vop_reclaim_t(struct vop_reclaim_args *);
+
+struct vop_lock1_args;
+typedef int vop_lock1_t(struct vop_lock1_args *);
+
+struct vop_unlock_args;
+typedef int vop_unlock_t(struct vop_unlock_args *);
+
+struct vop_bmap_args;
+typedef int vop_bmap_t(struct vop_bmap_args *);
+
+struct vop_strategy_args;
+typedef int vop_strategy_t(struct vop_strategy_args *);
+
+struct vop_getwritemount_args;
+typedef int vop_getwritemount_t(struct vop_getwritemount_args *);
+
+struct vop_print_args;
+typedef int vop_print_t(struct vop_print_args *);
+
+struct vop_pathconf_args;
+typedef int vop_pathconf_t(struct vop_pathconf_args *);
+
+struct vop_advlock_args;
+typedef int vop_advlock_t(struct vop_advlock_args *);
+
+struct vop_advlockasync_args;
+typedef int vop_advlockasync_t(struct vop_advlockasync_args *);
+
+struct vop_reallocblks_args;
+typedef int vop_reallocblks_t(struct vop_reallocblks_args *);
+
+struct vop_getpages_args;
+typedef int vop_getpages_t(struct vop_getpages_args *);
+
+struct vop_putpages_args;
+typedef int vop_putpages_t(struct vop_putpages_args *);
+
+struct vop_getacl_args;
+typedef int vop_getacl_t(struct vop_getacl_args *);
+
+struct vop_setacl_args;
+typedef int vop_setacl_t(struct vop_setacl_args *);
+
+struct vop_aclcheck_args;
+typedef int vop_aclcheck_t(struct vop_aclcheck_args *);
+
+struct vop_closeextattr_args;
+typedef int vop_closeextattr_t(struct vop_closeextattr_args *);
+
+struct vop_getextattr_args;
+typedef int vop_getextattr_t(struct vop_getextattr_args *);
+
+struct vop_listextattr_args;
+typedef int vop_listextattr_t(struct vop_listextattr_args *);
+
+struct vop_openextattr_args;
+typedef int vop_openextattr_t(struct vop_openextattr_args *);
+
+struct vop_deleteextattr_args;
+typedef int vop_deleteextattr_t(struct vop_deleteextattr_args *);
+
+struct vop_setextattr_args;
+typedef int vop_setextattr_t(struct vop_setextattr_args *);
+
+struct vop_setlabel_args;
+typedef int vop_setlabel_t(struct vop_setlabel_args *);
+
+struct vop_vptofh_args;
+typedef int vop_vptofh_t(struct vop_vptofh_args *);
+
+struct vop_vptocnp_args;
+typedef int vop_vptocnp_t(struct vop_vptocnp_args *);
+
diff --git a/rtemsbsd/include/rtems/bsd/sys/_types.h b/rtemsbsd/include/rtems/bsd/sys/_types.h
new file mode 100644
index 00000000..b9f4d392
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/sys/_types.h
@@ -0,0 +1,105 @@
+/*-
+ * Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * 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.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _SYS__TYPES_HH_
+#define _SYS__TYPES_HH_
+
+#include <freebsd/sys/cdefs.h>
+#include <freebsd/machine/_types.h>
+
+/*
+ * Standard type definitions.
+ */
+typedef __uint32_t __blksize_t; /* file block size */
+typedef __int64_t __blkcnt_t; /* file block count */
+typedef __int32_t __clockid_t; /* clock_gettime()... */
+typedef __uint32_t __fflags_t; /* file flags */
+typedef __uint64_t __fsblkcnt_t;
+typedef __uint64_t __fsfilcnt_t;
+typedef __uint32_t __gid_t;
+typedef __int64_t __id_t; /* can hold a gid_t, pid_t, or uid_t */
+typedef __uint32_t __ino_t; /* inode number */
+typedef long __key_t; /* IPC key (for Sys V IPC) */
+typedef __int32_t __lwpid_t; /* Thread ID (a.k.a. LWP) */
+typedef __uint16_t __mode_t; /* permissions */
+typedef int __accmode_t; /* access permissions */
+typedef int __nl_item;
+typedef __uint16_t __nlink_t; /* link count */
+typedef __int64_t __off_t; /* file offset */
+typedef __int32_t __pid_t; /* process [group] */
+typedef __int64_t __rlim_t; /* resource limit - intentionally */
+ /* signed, because of legacy code */
+ /* that uses -1 for RLIM_INFINITY */
+typedef __uint8_t __sa_family_t;
+typedef __uint32_t __socklen_t;
+typedef long __suseconds_t; /* microseconds (signed) */
+typedef struct __timer *__timer_t; /* timer_gettime()... */
+typedef struct __mq *__mqd_t; /* mq_open()... */
+typedef __uint32_t __uid_t;
+typedef unsigned int __useconds_t; /* microseconds (unsigned) */
+typedef int __cpuwhich_t; /* which parameter for cpuset. */
+typedef int __cpulevel_t; /* level parameter for cpuset. */
+typedef int __cpusetid_t; /* cpuset identifier. */
+
+/*
+ * Unusual type definitions.
+ */
+/*
+ * rune_t is declared to be an ``int'' instead of the more natural
+ * ``unsigned long'' or ``long''. Two things are happening here. It is not
+ * unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+ * it looks like 10646 will be a 31 bit standard. This means that if your
+ * ints cannot hold 32 bits, you will be in trouble. The reason an int was
+ * chosen over a long is that the is*() and to*() routines take ints (says
+ * ANSI C), but they use __ct_rune_t instead of int.
+ *
+ * NOTE: rune_t is not covered by ANSI nor other standards, and should not
+ * be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+ * rune_t must be the same type. Also, wint_t must be no narrower than
+ * wchar_t, and should be able to hold all members of the largest
+ * character set plus one extra value (WEOF), and must be at least 16 bits.
+ */
+typedef int __ct_rune_t; /* arg type for ctype funcs */
+typedef __ct_rune_t __rune_t; /* rune_t (see above) */
+typedef __ct_rune_t __wchar_t; /* wchar_t (see above) */
+typedef __ct_rune_t __wint_t; /* wint_t (see above) */
+
+typedef __uint32_t __dev_t; /* device number */
+
+typedef __uint32_t __fixpt_t; /* fixed point number */
+
+/*
+ * mbstate_t is an opaque object to keep conversion state during multibyte
+ * stream conversions.
+ */
+typedef union {
+ char __mbstate8[128];
+ __int64_t _mbstateL; /* for alignment */
+} __mbstate_t;
+
+#endif /* !_SYS__TYPES_HH_ */
diff --git a/rtemsbsd/include/rtems/bsd/sys/errno.h b/rtemsbsd/include/rtems/bsd/sys/errno.h
new file mode 100644
index 00000000..9b68014d
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/sys/errno.h
@@ -0,0 +1,194 @@
+/*-
+ * Copyright (c) 1982, 1986, 1989, 1993
+ * The Regents of the University of California. All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)errno.h 8.5 (Berkeley) 1/21/94
+ * $FreeBSD$
+ */
+
+#ifndef _SYS_ERRNO_HH_
+#define _SYS_ERRNO_HH_
+
+#ifndef _KERNEL
+#include <freebsd/sys/cdefs.h>
+__BEGIN_DECLS
+int * __error(void);
+__END_DECLS
+#define errno (* __error())
+#endif
+
+#ifndef __rtems__
+#define EPERM 1 /* Operation not permitted */
+#define ENOENT 2 /* No such file or directory */
+#define ESRCH 3 /* No such process */
+#define EINTR 4 /* Interrupted system call */
+#define EIO 5 /* Input/output error */
+#define ENXIO 6 /* Device not configured */
+#define E2BIG 7 /* Argument list too long */
+#define ENOEXEC 8 /* Exec format error */
+#define EBADF 9 /* Bad file descriptor */
+#define ECHILD 10 /* No child processes */
+#define EDEADLK 11 /* Resource deadlock avoided */
+ /* 11 was EAGAIN */
+#define ENOMEM 12 /* Cannot allocate memory */
+#define EACCES 13 /* Permission denied */
+#define EFAULT 14 /* Bad address */
+#ifndef _POSIX_SOURCE
+#define ENOTBLK 15 /* Block device required */
+#endif
+#define EBUSY 16 /* Device busy */
+#define EEXIST 17 /* File exists */
+#define EXDEV 18 /* Cross-device link */
+#define ENODEV 19 /* Operation not supported by device */
+#define ENOTDIR 20 /* Not a directory */
+#define EISDIR 21 /* Is a directory */
+#define EINVAL 22 /* Invalid argument */
+#define ENFILE 23 /* Too many open files in system */
+#define EMFILE 24 /* Too many open files */
+#define ENOTTY 25 /* Inappropriate ioctl for device */
+#ifndef _POSIX_SOURCE
+#define ETXTBSY 26 /* Text file busy */
+#endif
+#define EFBIG 27 /* File too large */
+#define ENOSPC 28 /* No space left on device */
+#define ESPIPE 29 /* Illegal seek */
+#define EROFS 30 /* Read-only filesystem */
+#define EMLINK 31 /* Too many links */
+#define EPIPE 32 /* Broken pipe */
+
+/* math software */
+#define EDOM 33 /* Numerical argument out of domain */
+#define ERANGE 34 /* Result too large */
+
+/* non-blocking and interrupt i/o */
+#define EAGAIN 35 /* Resource temporarily unavailable */
+#ifndef _POSIX_SOURCE
+#define EWOULDBLOCK EAGAIN /* Operation would block */
+#define EINPROGRESS 36 /* Operation now in progress */
+#define EALREADY 37 /* Operation already in progress */
+
+/* ipc/network software -- argument errors */
+#define ENOTSOCK 38 /* Socket operation on non-socket */
+#define EDESTADDRREQ 39 /* Destination address required */
+#define EMSGSIZE 40 /* Message too long */
+#define EPROTOTYPE 41 /* Protocol wrong type for socket */
+#define ENOPROTOOPT 42 /* Protocol not available */
+#define EPROTONOSUPPORT 43 /* Protocol not supported */
+#define ESOCKTNOSUPPORT 44 /* Socket type not supported */
+#define EOPNOTSUPP 45 /* Operation not supported */
+#define ENOTSUP EOPNOTSUPP /* Operation not supported */
+#define EPFNOSUPPORT 46 /* Protocol family not supported */
+#define EAFNOSUPPORT 47 /* Address family not supported by protocol family */
+#define EADDRINUSE 48 /* Address already in use */
+#define EADDRNOTAVAIL 49 /* Can't assign requested address */
+
+/* ipc/network software -- operational errors */
+#define ENETDOWN 50 /* Network is down */
+#define ENETUNREACH 51 /* Network is unreachable */
+#define ENETRESET 52 /* Network dropped connection on reset */
+#define ECONNABORTED 53 /* Software caused connection abort */
+#define ECONNRESET 54 /* Connection reset by peer */
+#define ENOBUFS 55 /* No buffer space available */
+#define EISCONN 56 /* Socket is already connected */
+#define ENOTCONN 57 /* Socket is not connected */
+#define ESHUTDOWN 58 /* Can't send after socket shutdown */
+#define ETOOMANYREFS 59 /* Too many references: can't splice */
+#define ETIMEDOUT 60 /* Operation timed out */
+#define ECONNREFUSED 61 /* Connection refused */
+
+#define ELOOP 62 /* Too many levels of symbolic links */
+#endif /* _POSIX_SOURCE */
+#define ENAMETOOLONG 63 /* File name too long */
+
+/* should be rearranged */
+#ifndef _POSIX_SOURCE
+#define EHOSTDOWN 64 /* Host is down */
+#define EHOSTUNREACH 65 /* No route to host */
+#endif /* _POSIX_SOURCE */
+#define ENOTEMPTY 66 /* Directory not empty */
+
+/* quotas & mush */
+#ifndef _POSIX_SOURCE
+#define EPROCLIM 67 /* Too many processes */
+#define EUSERS 68 /* Too many users */
+#define EDQUOT 69 /* Disc quota exceeded */
+
+/* Network File System */
+#define ESTALE 70 /* Stale NFS file handle */
+#define EREMOTE 71 /* Too many levels of remote in path */
+#define EBADRPC 72 /* RPC struct is bad */
+#define ERPCMISMATCH 73 /* RPC version wrong */
+#define EPROGUNAVAIL 74 /* RPC prog. not avail */
+#define EPROGMISMATCH 75 /* Program version wrong */
+#define EPROCUNAVAIL 76 /* Bad procedure for program */
+#endif /* _POSIX_SOURCE */
+
+#define ENOLCK 77 /* No locks available */
+#define ENOSYS 78 /* Function not implemented */
+
+#ifndef _POSIX_SOURCE
+#define EFTYPE 79 /* Inappropriate file type or format */
+#define EAUTH 80 /* Authentication error */
+#define ENEEDAUTH 81 /* Need authenticator */
+#define EIDRM 82 /* Identifier removed */
+#define ENOMSG 83 /* No message of desired type */
+#define EOVERFLOW 84 /* Value too large to be stored in data type */
+#define ECANCELED 85 /* Operation canceled */
+#define EILSEQ 86 /* Illegal byte sequence */
+#define ENOATTR 87 /* Attribute not found */
+
+#define EDOOFUS 88 /* Programming error */
+#endif /* _POSIX_SOURCE */
+
+#define EBADMSG 89 /* Bad message */
+#define EMULTIHOP 90 /* Multihop attempted */
+#define ENOLINK 91 /* Link has been severed */
+#define EPROTO 92 /* Protocol error */
+
+#ifndef _POSIX_SOURCE
+#define ENOTCAPABLE 93 /* Capabilities insufficient */
+#endif /* _POSIX_SOURCE */
+
+#ifndef _POSIX_SOURCE
+#define ELAST 93 /* Must be equal largest errno */
+#endif /* _POSIX_SOURCE */
+#endif /* __rtems__ */
+
+#ifdef _KERNEL
+/* pseudo-errors returned inside kernel to modify return to process */
+#define ERESTART (-1) /* restart syscall */
+#define EJUSTRETURN (-2) /* don't modify regs, just return */
+#define ENOIOCTL (-3) /* ioctl not handled by this layer */
+#define EDIRIOCTL (-4) /* do direct ioctl in GEOM */
+#endif
+
+#endif
diff --git a/rtemsbsd/include/rtems/bsd/sys/lock.h b/rtemsbsd/include/rtems/bsd/sys/lock.h
new file mode 100644
index 00000000..f86ec765
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/sys/lock.h
@@ -0,0 +1,319 @@
+/*-
+ * Copyright (c) 1997 Berkeley Software Design, Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Berkeley Software Design Inc's name may not be used to endorse or
+ * promote products derived from this software without specific prior
+ * written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BERKELEY SOFTWARE DESIGN INC ``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 BERKELEY SOFTWARE DESIGN INC 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.
+ *
+ * from BSDI $Id: mutex.h,v 2.7.2.35 2000/04/27 03:10:26 cp Exp $
+ * $FreeBSD$
+ */
+
+#ifndef _SYS_LOCK_HH_
+#define _SYS_LOCK_HH_
+
+#include <freebsd/sys/queue.h>
+#include <freebsd/sys/_lock.h>
+
+struct lock_list_entry;
+struct thread;
+
+/*
+ * Lock classes. Each lock has a class which describes characteristics
+ * common to all types of locks of a given class.
+ *
+ * Spin locks in general must always protect against preemption, as it is
+ * an error to perform any type of context switch while holding a spin lock.
+ * Also, for an individual lock to be recursable, its class must allow
+ * recursion and the lock itself must explicitly allow recursion.
+ *
+ * The 'lc_ddb_show' function pointer is used to dump class-specific
+ * data for the 'show lock' DDB command. The 'lc_lock' and
+ * 'lc_unlock' function pointers are used in sleep(9) and cv_wait(9)
+ * to lock and unlock locks while blocking on a sleep queue. The
+ * return value of 'lc_unlock' will be passed to 'lc_lock' on resume
+ * to allow communication of state between the two routines.
+ */
+
+struct lock_class {
+ const char *lc_name;
+ u_int lc_flags;
+ void (*lc_assert)(struct lock_object *lock, int what);
+ void (*lc_ddb_show)(struct lock_object *lock);
+ void (*lc_lock)(struct lock_object *lock, int how);
+ int (*lc_owner)(struct lock_object *lock, struct thread **owner);
+ int (*lc_unlock)(struct lock_object *lock);
+};
+
+#define LC_SLEEPLOCK 0x00000001 /* Sleep lock. */
+#define LC_SPINLOCK 0x00000002 /* Spin lock. */
+#define LC_SLEEPABLE 0x00000004 /* Sleeping allowed with this lock. */
+#define LC_RECURSABLE 0x00000008 /* Locks of this type may recurse. */
+#define LC_UPGRADABLE 0x00000010 /* Upgrades and downgrades permitted. */
+
+#define LO_CLASSFLAGS 0x0000ffff /* Class specific flags. */
+#define LO_INITIALIZED 0x00010000 /* Lock has been initialized. */
+#define LO_WITNESS 0x00020000 /* Should witness monitor this lock. */
+#define LO_QUIET 0x00040000 /* Don't log locking operations. */
+#define LO_RECURSABLE 0x00080000 /* Lock may recurse. */
+#define LO_SLEEPABLE 0x00100000 /* Lock may be held while sleeping. */
+#define LO_UPGRADABLE 0x00200000 /* Lock may be upgraded/downgraded. */
+#define LO_DUPOK 0x00400000 /* Don't check for duplicate acquires */
+#define LO_CLASSMASK 0x0f000000 /* Class index bitmask. */
+#define LO_NOPROFILE 0x10000000 /* Don't profile this lock */
+
+/*
+ * Lock classes are statically assigned an index into the gobal lock_classes
+ * array. Debugging code looks up the lock class for a given lock object
+ * by indexing the array.
+ */
+#define LO_CLASSSHIFT 24
+#define LO_CLASSINDEX(lock) ((((lock)->lo_flags) & LO_CLASSMASK) >> LO_CLASSSHIFT)
+#define LOCK_CLASS(lock) (lock_classes[LO_CLASSINDEX((lock))])
+#define LOCK_CLASS_MAX (LO_CLASSMASK >> LO_CLASSSHIFT)
+
+/*
+ * Option flags passed to lock operations that witness also needs to know
+ * about or that are generic across all locks.
+ */
+#define LOP_NEWORDER 0x00000001 /* Define a new lock order. */
+#define LOP_QUIET 0x00000002 /* Don't log locking operations. */
+#define LOP_TRYLOCK 0x00000004 /* Don't check lock order. */
+#define LOP_EXCLUSIVE 0x00000008 /* Exclusive lock. */
+#define LOP_DUPOK 0x00000010 /* Don't check for duplicate acquires */
+
+/* Flags passed to witness_assert. */
+#define LA_MASKASSERT 0x000000ff /* Mask for witness defined asserts. */
+#define LA_UNLOCKED 0x00000000 /* Lock is unlocked. */
+#define LA_LOCKED 0x00000001 /* Lock is at least share locked. */
+#define LA_SLOCKED 0x00000002 /* Lock is exactly share locked. */
+#define LA_XLOCKED 0x00000004 /* Lock is exclusively locked. */
+#define LA_RECURSED 0x00000008 /* Lock is recursed. */
+#define LA_NOTRECURSED 0x00000010 /* Lock is not recursed. */
+
+#ifdef _KERNEL
+/*
+ * If any of WITNESS, INVARIANTS, or KTR_LOCK KTR tracing has been enabled,
+ * then turn on LOCK_DEBUG. When this option is on, extra debugging
+ * facilities such as tracking the file and line number of lock operations
+ * are enabled. Also, mutex locking operations are not inlined to avoid
+ * bloat from all the extra debugging code. We also have to turn on all the
+ * calling conventions for this debugging code in modules so that modules can
+ * work with both debug and non-debug kernels.
+ */
+#if defined(KLD_MODULE) || defined(WITNESS) || defined(INVARIANTS) || defined(INVARIANT_SUPPORT) || defined(KTR) || defined(LOCK_PROFILING)
+#define LOCK_DEBUG 1
+#else
+#define LOCK_DEBUG 0
+#endif
+
+/*
+ * In the LOCK_DEBUG case, use the filename and line numbers for debugging
+ * operations. Otherwise, use default values to avoid the unneeded bloat.
+ */
+#if LOCK_DEBUG > 0
+#define LOCK_FILE __FILE__
+#define LOCK_LINE __LINE__
+#else
+#define LOCK_FILE NULL
+#define LOCK_LINE 0
+#endif
+
+/*
+ * Macros for KTR_LOCK tracing.
+ *
+ * opname - name of this operation (LOCK/UNLOCK/SLOCK, etc.)
+ * lo - struct lock_object * for this lock
+ * flags - flags passed to the lock operation
+ * recurse - this locks recursion level (or 0 if class is not recursable)
+ * result - result of a try lock operation
+ * file - file name
+ * line - line number
+ */
+#define LOCK_LOG_TEST(lo, flags) \
+ (((flags) & LOP_QUIET) == 0 && ((lo)->lo_flags & LO_QUIET) == 0)
+
+#define LOCK_LOG_LOCK(opname, lo, flags, recurse, file, line) do { \
+ if (LOCK_LOG_TEST((lo), (flags))) \
+ CTR6(KTR_LOCK, opname " (%s) %s %p r = %d at %s:%d", \
+ LOCK_CLASS(lo)->lc_name, (lo)->lo_name, \
+ (lo), (u_int)(recurse), (file), (line)); \
+} while (0)
+
+#define LOCK_LOG_TRY(opname, lo, flags, result, file, line) do { \
+ if (LOCK_LOG_TEST((lo), (flags))) \
+ CTR6(KTR_LOCK, "TRY_" opname " (%s) %s %p result=%d at %s:%d",\
+ LOCK_CLASS(lo)->lc_name, (lo)->lo_name, \
+ (lo), (u_int)(result), (file), (line)); \
+} while (0)
+
+#define LOCK_LOG_INIT(lo, flags) do { \
+ if (LOCK_LOG_TEST((lo), (flags))) \
+ CTR4(KTR_LOCK, "%s: %p (%s) %s", __func__, (lo), \
+ LOCK_CLASS(lo)->lc_name, (lo)->lo_name); \
+} while (0)
+
+#define LOCK_LOG_DESTROY(lo, flags) LOCK_LOG_INIT(lo, flags)
+
+#define lock_initalized(lo) ((lo)->lo_flags & LO_INITIALIZED)
+
+/*
+ * Helpful macros for quickly coming up with assertions with informative
+ * panic messages.
+ */
+#define MPASS(ex) MPASS4(ex, #ex, __FILE__, __LINE__)
+#define MPASS2(ex, what) MPASS4(ex, what, __FILE__, __LINE__)
+#define MPASS3(ex, file, line) MPASS4(ex, #ex, file, line)
+#define MPASS4(ex, what, file, line) \
+ KASSERT((ex), ("Assertion %s failed at %s:%d", what, file, line))
+
+extern struct lock_class lock_class_mtx_sleep;
+extern struct lock_class lock_class_mtx_spin;
+extern struct lock_class lock_class_sx;
+extern struct lock_class lock_class_rw;
+extern struct lock_class lock_class_rm;
+extern struct lock_class lock_class_lockmgr;
+
+extern struct lock_class *lock_classes[];
+
+void lock_init(struct lock_object *, struct lock_class *,
+ const char *, const char *, int);
+void lock_destroy(struct lock_object *);
+void spinlock_enter(void);
+void spinlock_exit(void);
+void witness_init(struct lock_object *, const char *);
+void witness_destroy(struct lock_object *);
+int witness_defineorder(struct lock_object *, struct lock_object *);
+void witness_checkorder(struct lock_object *, int, const char *, int,
+ struct lock_object *);
+void witness_lock(struct lock_object *, int, const char *, int);
+void witness_upgrade(struct lock_object *, int, const char *, int);
+void witness_downgrade(struct lock_object *, int, const char *, int);
+void witness_unlock(struct lock_object *, int, const char *, int);
+void witness_save(struct lock_object *, const char **, int *);
+void witness_restore(struct lock_object *, const char *, int);
+int witness_list_locks(struct lock_list_entry **,
+ int (*)(const char *, ...));
+int witness_warn(int, struct lock_object *, const char *, ...);
+void witness_assert(struct lock_object *, int, const char *, int);
+void witness_display_spinlock(struct lock_object *, struct thread *,
+ int (*)(const char *, ...));
+int witness_line(struct lock_object *);
+void witness_norelease(struct lock_object *);
+void witness_releaseok(struct lock_object *);
+const char *witness_file(struct lock_object *);
+void witness_thread_exit(struct thread *);
+
+#ifdef WITNESS
+
+/* Flags for witness_warn(). */
+#define WARN_GIANTOK 0x01 /* Giant is exempt from this check. */
+#define WARN_PANIC 0x02 /* Panic if check fails. */
+#define WARN_SLEEPOK 0x04 /* Sleepable locks are exempt from check. */
+
+#define WITNESS_INIT(lock, type) \
+ witness_init((lock), (type))
+
+#define WITNESS_DESTROY(lock) \
+ witness_destroy(lock)
+
+#define WITNESS_CHECKORDER(lock, flags, file, line, interlock) \
+ witness_checkorder((lock), (flags), (file), (line), (interlock))
+
+#define WITNESS_DEFINEORDER(lock1, lock2) \
+ witness_defineorder((struct lock_object *)(lock1), \
+ (struct lock_object *)(lock2))
+
+#define WITNESS_LOCK(lock, flags, file, line) \
+ witness_lock((lock), (flags), (file), (line))
+
+#define WITNESS_UPGRADE(lock, flags, file, line) \
+ witness_upgrade((lock), (flags), (file), (line))
+
+#define WITNESS_DOWNGRADE(lock, flags, file, line) \
+ witness_downgrade((lock), (flags), (file), (line))
+
+#define WITNESS_UNLOCK(lock, flags, file, line) \
+ witness_unlock((lock), (flags), (file), (line))
+
+#define WITNESS_CHECK(flags, lock, fmt, ...) \
+ witness_warn((flags), (lock), (fmt), ## __VA_ARGS__)
+
+#define WITNESS_WARN(flags, lock, fmt, ...) \
+ witness_warn((flags), (lock), (fmt), ## __VA_ARGS__)
+
+#define WITNESS_SAVE_DECL(n) \
+ const char * __CONCAT(n, __wf); \
+ int __CONCAT(n, __wl)
+
+#define WITNESS_SAVE(lock, n) \
+ witness_save((lock), &__CONCAT(n, __wf), &__CONCAT(n, __wl))
+
+#define WITNESS_RESTORE(lock, n) \
+ witness_restore((lock), __CONCAT(n, __wf), __CONCAT(n, __wl))
+
+#define WITNESS_NORELEASE(lock) \
+ witness_norelease(&(lock)->lock_object)
+
+#define WITNESS_RELEASEOK(lock) \
+ witness_releaseok(&(lock)->lock_object)
+
+#define WITNESS_FILE(lock) \
+ witness_file(lock)
+
+#define WITNESS_LINE(lock) \
+ witness_line(lock)
+
+#else /* WITNESS */
+#define WITNESS_INIT(lock, type) (void)0
+#define WITNESS_DESTROY(lock) (void)0
+#define WITNESS_DEFINEORDER(lock1, lock2) 0
+#define WITNESS_CHECKORDER(lock, flags, file, line, interlock) (void)0
+#define WITNESS_LOCK(lock, flags, file, line) (void)0
+#define WITNESS_UPGRADE(lock, flags, file, line) (void)0
+#define WITNESS_DOWNGRADE(lock, flags, file, line) (void)0
+#define WITNESS_UNLOCK(lock, flags, file, line) (void)0
+#define WITNESS_CHECK(flags, lock, fmt, ...) 0
+#define WITNESS_WARN(flags, lock, fmt, ...) (void)0
+#define WITNESS_SAVE_DECL(n) (void)0
+#define WITNESS_SAVE(lock, n) (void)0
+#define WITNESS_RESTORE(lock, n) (void)0
+#define WITNESS_NORELEASE(lock) (void)0
+#define WITNESS_RELEASEOK(lock) (void)0
+#define WITNESS_FILE(lock) ("?")
+#define WITNESS_LINE(lock) (0)
+#endif /* WITNESS */
+
+/*
+ * Helper macros to allow developers to add explicit lock order checks
+ * wherever they please without having to actually grab a lock to do so.
+ */
+#define witness_check(l) \
+ WITNESS_CHECKORDER(&(l)->lock_object, LOP_EXCLUSIVE, LOCK_FILE, \
+ LOCK_LINE, NULL)
+
+#define witness_check_shared(l) \
+ WITNESS_CHECKORDER(&(l)->lock_object, 0, LOCK_FILE, LOCK_LINE, NULL)
+
+#endif /* _KERNEL */
+#endif /* _SYS_LOCK_HH_ */
diff --git a/rtemsbsd/include/rtems/bsd/sys/param.h b/rtemsbsd/include/rtems/bsd/sys/param.h
new file mode 100644
index 00000000..cd00ea4c
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/sys/param.h
@@ -0,0 +1,332 @@
+/*-
+ * Copyright (c) 1982, 1986, 1989, 1993
+ * The Regents of the University of California. All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)param.h 8.3 (Berkeley) 4/4/95
+ * $FreeBSD$
+ */
+
+#ifndef _SYS_PARAM_HH_
+#define _SYS_PARAM_HH_
+
+#include <freebsd/sys/_null.h>
+
+#define BSD 199506 /* System version (year & month). */
+#define BSD4_3 1
+#define BSD4_4 1
+
+/*
+ * __FreeBSD_version numbers are documented in the Porter's Handbook.
+ * If you bump the version for any reason, you should update the documentation
+ * there.
+ * Currently this lives here:
+ *
+ * doc/en_US.ISO8859-1/books/porters-handbook/book.sgml
+ *
+ * scheme is: <major><two digit minor>Rxx
+ * 'R' is in the range 0 to 4 if this is a release branch or
+ * x.0-CURRENT before RELENG_*_0 is created, otherwise 'R' is
+ * in the range 5 to 9.
+ */
+#undef __FreeBSD_version
+#define __FreeBSD_version 802000 /* Master, propagated to newvers */
+
+#ifdef _KERNEL
+#define P_OSREL_SIGSEGV 700004
+#define P_OSREL_MAP_ANON 800104
+#endif
+
+#ifndef LOCORE
+#include <freebsd/sys/types.h>
+#endif
+
+/*
+ * Machine-independent constants (some used in following include files).
+ * Redefined constants are from POSIX 1003.1 limits file.
+ *
+ * MAXCOMLEN should be >= sizeof(ac_comm) (see <acct.h>)
+ * MAXLOGNAME should be == UT_NAMESIZE+1 (see <utmp.h>)
+ */
+#include <freebsd/sys/syslimits.h>
+
+#define MAXCOMLEN 19 /* max command name remembered */
+#define MAXINTERP 32 /* max interpreter file name length */
+#define MAXLOGNAME 17 /* max login name length (incl. NUL) */
+#define MAXUPRC CHILD_MAX /* max simultaneous processes */
+#define NCARGS ARG_MAX /* max bytes for an exec function */
+#define NGROUPS (NGROUPS_MAX+1) /* max number groups */
+#define NOFILE OPEN_MAX /* max open files per process */
+#define NOGROUP 65535 /* marker for empty group set member */
+#define MAXHOSTNAMELEN 256 /* max hostname size */
+#define SPECNAMELEN 63 /* max length of devicename */
+
+/* More types and definitions used throughout the kernel. */
+#ifdef _KERNEL
+#include <freebsd/sys/cdefs.h>
+#include <freebsd/sys/errno.h>
+#ifndef LOCORE
+#include <freebsd/sys/time.h>
+#include <freebsd/sys/priority.h>
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+#ifndef TRUE
+#define TRUE 1
+#endif
+#endif
+
+#ifndef _KERNEL
+/* Signals. */
+#include <freebsd/sys/signal.h>
+#endif
+
+/* Machine type dependent parameters. */
+#include <freebsd/machine/param.h>
+#ifndef _KERNEL
+#include <freebsd/sys/limits.h>
+#endif
+
+#ifndef _NO_NAMESPACE_POLLUTION
+
+#ifndef DEV_BSHIFT
+#define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */
+#endif
+#define DEV_BSIZE (1<<DEV_BSHIFT)
+
+#ifndef BLKDEV_IOSIZE
+#define BLKDEV_IOSIZE PAGE_SIZE /* default block device I/O size */
+#endif
+#ifndef DFLTPHYS
+#define DFLTPHYS (64 * 1024) /* default max raw I/O transfer size */
+#endif
+#ifndef MAXPHYS
+#define MAXPHYS (128 * 1024) /* max raw I/O transfer size */
+#endif
+#ifndef MAXDUMPPGS
+#define MAXDUMPPGS (DFLTPHYS/PAGE_SIZE)
+#endif
+
+/*
+ * Constants related to network buffer management.
+ * MCLBYTES must be no larger than PAGE_SIZE.
+ */
+#ifndef MSIZE
+#define MSIZE 256 /* size of an mbuf */
+#endif /* MSIZE */
+
+#ifndef MCLSHIFT
+#define MCLSHIFT 11 /* convert bytes to mbuf clusters */
+#endif /* MCLSHIFT */
+
+#define MCLBYTES (1 << MCLSHIFT) /* size of an mbuf cluster */
+
+#define MJUMPAGESIZE PAGE_SIZE /* jumbo cluster 4k */
+#define MJUM9BYTES (9 * 1024) /* jumbo cluster 9k */
+#define MJUM16BYTES (16 * 1024) /* jumbo cluster 16k */
+
+/*
+ * Round p (pointer or byte index) up to a correctly-aligned value
+ * for all data types (int, long, ...). The result is u_long and
+ * must be cast to any desired pointer type.
+ */
+#ifndef _ALIGNBYTES
+#define _ALIGNBYTES (sizeof(long) - 1)
+#endif
+#ifndef _ALIGN
+#define _ALIGN(p) (((uintptr_t)(p) + _ALIGNBYTES) &~ _ALIGNBYTES)
+#endif
+
+/*
+ * Some macros for units conversion
+ */
+
+/* clicks to bytes */
+#ifndef ctob
+#define ctob(x) ((x)<<PAGE_SHIFT)
+#endif
+
+/* bytes to clicks */
+#ifndef btoc
+#define btoc(x) (((vm_offset_t)(x)+PAGE_MASK)>>PAGE_SHIFT)
+#endif
+
+/*
+ * btodb() is messy and perhaps slow because `bytes' may be an off_t. We
+ * want to shift an unsigned type to avoid sign extension and we don't
+ * want to widen `bytes' unnecessarily. Assume that the result fits in
+ * a daddr_t.
+ */
+#ifndef btodb
+#define btodb(bytes) /* calculates (bytes / DEV_BSIZE) */ \
+ (sizeof (bytes) > sizeof(long) \
+ ? (daddr_t)((unsigned long long)(bytes) >> DEV_BSHIFT) \
+ : (daddr_t)((unsigned long)(bytes) >> DEV_BSHIFT))
+#endif
+
+#ifndef dbtob
+#define dbtob(db) /* calculates (db * DEV_BSIZE) */ \
+ ((off_t)(db) << DEV_BSHIFT)
+#endif
+
+#endif /* _NO_NAMESPACE_POLLUTION */
+
+#define PRIMASK 0x0ff
+#define PCATCH 0x100 /* OR'd with pri for tsleep to check signals */
+#define PDROP 0x200 /* OR'd with pri to stop re-entry of interlock mutex */
+#define PBDRY 0x400 /* for PCATCH stop is done on the user boundary */
+
+#define NZERO 0 /* default "nice" */
+
+#define NBBY 8 /* number of bits in a byte */
+#define NBPW sizeof(int) /* number of bytes per word (integer) */
+
+#define CMASK 022 /* default file mask: S_IWGRP|S_IWOTH */
+
+#define NODEV (dev_t)(-1) /* non-existent device */
+
+/*
+ * File system parameters and macros.
+ *
+ * MAXBSIZE - Filesystems are made out of blocks of at most MAXBSIZE bytes
+ * per block. MAXBSIZE may be made larger without effecting
+ * any existing filesystems as long as it does not exceed MAXPHYS,
+ * and may be made smaller at the risk of not being able to use
+ * filesystems which require a block size exceeding MAXBSIZE.
+ *
+ * BKVASIZE - Nominal buffer space per buffer, in bytes. BKVASIZE is the
+ * minimum KVM memory reservation the kernel is willing to make.
+ * Filesystems can of course request smaller chunks. Actual
+ * backing memory uses a chunk size of a page (PAGE_SIZE).
+ *
+ * If you make BKVASIZE too small you risk seriously fragmenting
+ * the buffer KVM map which may slow things down a bit. If you
+ * make it too big the kernel will not be able to optimally use
+ * the KVM memory reserved for the buffer cache and will wind
+ * up with too-few buffers.
+ *
+ * The default is 16384, roughly 2x the block size used by a
+ * normal UFS filesystem.
+ */
+#define MAXBSIZE 65536 /* must be power of 2 */
+#define BKVASIZE 16384 /* must be power of 2 */
+#define BKVAMASK (BKVASIZE-1)
+
+/*
+ * MAXPATHLEN defines the longest permissible path length after expanding
+ * symbolic links. It is used to allocate a temporary buffer from the buffer
+ * pool in which to do the name expansion, hence should be a power of two,
+ * and must be less than or equal to MAXBSIZE. MAXSYMLINKS defines the
+ * maximum number of symbolic links that may be expanded in a path name.
+ * It should be set high enough to allow all legitimate uses, but halt
+ * infinite loops reasonably quickly.
+ */
+#define MAXPATHLEN PATH_MAX
+#define MAXSYMLINKS 32
+
+/* Bit map related macros. */
+#define setbit(a,i) (((unsigned char *)(a))[(i)/NBBY] |= 1<<((i)%NBBY))
+#define clrbit(a,i) (((unsigned char *)(a))[(i)/NBBY] &= ~(1<<((i)%NBBY)))
+#define isset(a,i) \
+ (((const unsigned char *)(a))[(i)/NBBY] & (1<<((i)%NBBY)))
+#define isclr(a,i) \
+ ((((const unsigned char *)(a))[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
+
+/* Macros for counting and rounding. */
+#ifndef howmany
+#define howmany(x, y) (((x)+((y)-1))/(y))
+#endif
+#define rounddown(x, y) (((x)/(y))*(y))
+#define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) /* to any y */
+#define roundup2(x, y) (((x)+((y)-1))&(~((y)-1))) /* if y is powers of two */
+#define powerof2(x) ((((x)-1)&(x))==0)
+
+/* Macros for min/max. */
+#define MIN(a,b) (((a)<(b))?(a):(b))
+#define MAX(a,b) (((a)>(b))?(a):(b))
+
+#ifdef _KERNEL
+/*
+ * Basic byte order function prototypes for non-inline functions.
+ */
+#ifndef LOCORE
+#ifndef _BYTEORDER_PROTOTYPED
+#define _BYTEORDER_PROTOTYPED
+__BEGIN_DECLS
+__uint32_t htonl(__uint32_t);
+__uint16_t htons(__uint16_t);
+__uint32_t ntohl(__uint32_t);
+__uint16_t ntohs(__uint16_t);
+__END_DECLS
+#endif
+#endif
+
+#ifndef lint
+#ifndef _BYTEORDER_FUNC_DEFINED
+#define _BYTEORDER_FUNC_DEFINED
+#define htonl(x) __htonl(x)
+#define htons(x) __htons(x)
+#define ntohl(x) __ntohl(x)
+#define ntohs(x) __ntohs(x)
+#endif /* !_BYTEORDER_FUNC_DEFINED */
+#endif /* lint */
+#endif /* _KERNEL */
+
+/*
+ * Scale factor for scaled integers used to count %cpu time and load avgs.
+ *
+ * The number of CPU `tick's that map to a unique `%age' can be expressed
+ * by the formula (1 / (2 ^ (FSHIFT - 11))). The maximum load average that
+ * can be calculated (assuming 32 bits) can be closely approximated using
+ * the formula (2 ^ (2 * (16 - FSHIFT))) for (FSHIFT < 15).
+ *
+ * For the scheduler to maintain a 1:1 mapping of CPU `tick' to `%age',
+ * FSHIFT must be at least 11; this gives us a maximum load avg of ~1024.
+ */
+#define FSHIFT 11 /* bits to right of fixed binary point */
+#define FSCALE (1<<FSHIFT)
+
+#define dbtoc(db) /* calculates devblks to pages */ \
+ ((db + (ctodb(1) - 1)) >> (PAGE_SHIFT - DEV_BSHIFT))
+
+#define ctodb(db) /* calculates pages to devblks */ \
+ ((db) << (PAGE_SHIFT - DEV_BSHIFT))
+
+/*
+ * Given the pointer x to the member m of the struct s, return
+ * a pointer to the containing structure.
+ */
+#define member2struct(s, m, x) \
+ ((struct s *)(void *)((char *)(x) - offsetof(struct s, m)))
+
+#endif /* _SYS_PARAM_HH_ */
diff --git a/rtemsbsd/include/rtems/bsd/sys/resource.h b/rtemsbsd/include/rtems/bsd/sys/resource.h
new file mode 100644
index 00000000..74a43c34
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/sys/resource.h
@@ -0,0 +1,176 @@
+/*-
+ * Copyright (c) 1982, 1986, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)resource.h 8.4 (Berkeley) 1/9/95
+ * $FreeBSD$
+ */
+
+#ifndef _SYS_RESOURCE_HH_
+#define _SYS_RESOURCE_HH_
+
+#include <freebsd/sys/cdefs.h>
+#include <freebsd/sys/_timeval.h>
+#include <freebsd/sys/_types.h>
+
+/*
+ * Process priority specifications to get/setpriority.
+ */
+#define PRIO_MIN -20
+#define PRIO_MAX 20
+
+#define PRIO_PROCESS 0
+#define PRIO_PGRP 1
+#define PRIO_USER 2
+
+/*
+ * Resource utilization information.
+ *
+ * All fields are only modified by curthread and
+ * no locks are required to read.
+ */
+
+#define RUSAGE_SELF 0
+#define RUSAGE_CHILDREN -1
+#define RUSAGE_THREAD 1
+
+struct rusage {
+ struct timeval ru_utime; /* user time used */
+ struct timeval ru_stime; /* system time used */
+ long ru_maxrss; /* max resident set size */
+#define ru_first ru_ixrss
+ long ru_ixrss; /* integral shared memory size */
+ long ru_idrss; /* integral unshared data " */
+ long ru_isrss; /* integral unshared stack " */
+ long ru_minflt; /* page reclaims */
+ long ru_majflt; /* page faults */
+ long ru_nswap; /* swaps */
+ long ru_inblock; /* block input operations */
+ long ru_oublock; /* block output operations */
+ long ru_msgsnd; /* messages sent */
+ long ru_msgrcv; /* messages received */
+ long ru_nsignals; /* signals received */
+ long ru_nvcsw; /* voluntary context switches */
+ long ru_nivcsw; /* involuntary " */
+#define ru_last ru_nivcsw
+};
+
+/*
+ * Resource limits
+ */
+#define RLIMIT_CPU 0 /* maximum cpu time in seconds */
+#define RLIMIT_FSIZE 1 /* maximum file size */
+#define RLIMIT_DATA 2 /* data size */
+#define RLIMIT_STACK 3 /* stack size */
+#define RLIMIT_CORE 4 /* core file size */
+#define RLIMIT_RSS 5 /* resident set size */
+#define RLIMIT_MEMLOCK 6 /* locked-in-memory address space */
+#define RLIMIT_NPROC 7 /* number of processes */
+#define RLIMIT_NOFILE 8 /* number of open files */
+#define RLIMIT_SBSIZE 9 /* maximum size of all socket buffers */
+#define RLIMIT_VMEM 10 /* virtual process size (inclusive of mmap) */
+#define RLIMIT_AS RLIMIT_VMEM /* standard name for RLIMIT_VMEM */
+#define RLIMIT_NPTS 11 /* pseudo-terminals */
+#define RLIMIT_SWAP 12 /* swap used */
+
+#define RLIM_NLIMITS 13 /* number of resource limits */
+
+#define RLIM_INFINITY ((rlim_t)(((uint64_t)1 << 63) - 1))
+/* XXX Missing: RLIM_SAVED_MAX, RLIM_SAVED_CUR */
+
+
+/*
+ * Resource limit string identifiers
+ */
+
+#ifdef _RLIMIT_IDENT
+static char *rlimit_ident[RLIM_NLIMITS] = {
+ "cpu",
+ "fsize",
+ "data",
+ "stack",
+ "core",
+ "rss",
+ "memlock",
+ "nproc",
+ "nofile",
+ "sbsize",
+ "vmem",
+ "npts",
+ "swap",
+};
+#endif
+
+#ifndef _RLIM_T_DECLARED
+typedef __rlim_t rlim_t;
+#define _RLIM_T_DECLARED
+#endif
+
+struct rlimit {
+ rlim_t rlim_cur; /* current (soft) limit */
+ rlim_t rlim_max; /* maximum value for rlim_cur */
+};
+
+#if __BSD_VISIBLE
+
+struct orlimit {
+ __int32_t rlim_cur; /* current (soft) limit */
+ __int32_t rlim_max; /* maximum value for rlim_cur */
+};
+
+struct loadavg {
+ __fixpt_t ldavg[3];
+ long fscale;
+};
+
+#define CP_USER 0
+#define CP_NICE 1
+#define CP_SYS 2
+#define CP_INTR 3
+#define CP_IDLE 4
+#define CPUSTATES 5
+
+#endif /* __BSD_VISIBLE */
+
+#ifdef _KERNEL
+
+extern struct loadavg averunnable;
+void read_cpu_time(long *cp_time); /* Writes array of CPUSTATES */
+
+#else
+
+__BEGIN_DECLS
+/* XXX 2nd arg to [gs]etpriority() should be an id_t */
+int getpriority(int, int);
+int getrlimit(int, struct rlimit *);
+int getrusage(int, struct rusage *);
+int setpriority(int, int, int);
+int setrlimit(int, const struct rlimit *);
+__END_DECLS
+
+#endif /* _KERNEL */
+#endif /* !_SYS_RESOURCE_HH_ */
diff --git a/rtemsbsd/include/rtems/bsd/sys/time.h b/rtemsbsd/include/rtems/bsd/sys/time.h
new file mode 100644
index 00000000..f34af077
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/sys/time.h
@@ -0,0 +1,351 @@
+/*-
+ * Copyright (c) 1982, 1986, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)time.h 8.5 (Berkeley) 5/4/95
+ * $FreeBSD$
+ */
+
+#ifndef _SYS_TIME_HH_
+#define _SYS_TIME_HH_
+
+#include <freebsd/sys/_timeval.h>
+#include <freebsd/sys/types.h>
+#include <freebsd/sys/timespec.h>
+
+#ifndef __rtems__
+struct timezone {
+ int tz_minuteswest; /* minutes west of Greenwich */
+ int tz_dsttime; /* type of dst correction */
+};
+#endif
+
+#define DST_NONE 0 /* not on dst */
+#define DST_USA 1 /* USA style dst */
+#define DST_AUST 2 /* Australian style dst */
+#define DST_WET 3 /* Western European dst */
+#define DST_MET 4 /* Middle European dst */
+#define DST_EET 5 /* Eastern European dst */
+#define DST_CAN 6 /* Canada */
+
+#if __BSD_VISIBLE
+struct bintime {
+ time_t sec;
+ uint64_t frac;
+};
+
+static __inline void
+bintime_addx(struct bintime *bt, uint64_t x)
+{
+ uint64_t u;
+
+ u = bt->frac;
+ bt->frac += x;
+ if (u > bt->frac)
+ bt->sec++;
+}
+
+static __inline void
+bintime_add(struct bintime *bt, const struct bintime *bt2)
+{
+ uint64_t u;
+
+ u = bt->frac;
+ bt->frac += bt2->frac;
+ if (u > bt->frac)
+ bt->sec++;
+ bt->sec += bt2->sec;
+}
+
+static __inline void
+bintime_sub(struct bintime *bt, const struct bintime *bt2)
+{
+ uint64_t u;
+
+ u = bt->frac;
+ bt->frac -= bt2->frac;
+ if (u < bt->frac)
+ bt->sec--;
+ bt->sec -= bt2->sec;
+}
+
+/*-
+ * Background information:
+ *
+ * When converting between timestamps on parallel timescales of differing
+ * resolutions it is historical and scientific practice to round down rather
+ * than doing 4/5 rounding.
+ *
+ * The date changes at midnight, not at noon.
+ *
+ * Even at 15:59:59.999999999 it's not four'o'clock.
+ *
+ * time_second ticks after N.999999999 not after N.4999999999
+ */
+
+static __inline void
+bintime2timespec(const struct bintime *bt, struct timespec *ts)
+{
+
+ ts->tv_sec = bt->sec;
+ ts->tv_nsec = ((uint64_t)1000000000 * (uint32_t)(bt->frac >> 32)) >> 32;
+}
+
+static __inline void
+timespec2bintime(const struct timespec *ts, struct bintime *bt)
+{
+
+ bt->sec = ts->tv_sec;
+ /* 18446744073 = int(2^64 / 1000000000) */
+ bt->frac = ts->tv_nsec * (uint64_t)18446744073LL;
+}
+
+static __inline void
+bintime2timeval(const struct bintime *bt, struct timeval *tv)
+{
+
+ tv->tv_sec = bt->sec;
+ tv->tv_usec = ((uint64_t)1000000 * (uint32_t)(bt->frac >> 32)) >> 32;
+}
+
+static __inline void
+timeval2bintime(const struct timeval *tv, struct bintime *bt)
+{
+
+ bt->sec = tv->tv_sec;
+ /* 18446744073709 = int(2^64 / 1000000) */
+ bt->frac = tv->tv_usec * (uint64_t)18446744073709LL;
+}
+#endif /* __BSD_VISIBLE */
+
+#ifdef _KERNEL
+
+/* Operations on timespecs */
+#define timespecclear(tvp) ((tvp)->tv_sec = (tvp)->tv_nsec = 0)
+#define timespecisset(tvp) ((tvp)->tv_sec || (tvp)->tv_nsec)
+#define timespeccmp(tvp, uvp, cmp) \
+ (((tvp)->tv_sec == (uvp)->tv_sec) ? \
+ ((tvp)->tv_nsec cmp (uvp)->tv_nsec) : \
+ ((tvp)->tv_sec cmp (uvp)->tv_sec))
+#define timespecadd(vvp, uvp) \
+ do { \
+ (vvp)->tv_sec += (uvp)->tv_sec; \
+ (vvp)->tv_nsec += (uvp)->tv_nsec; \
+ if ((vvp)->tv_nsec >= 1000000000) { \
+ (vvp)->tv_sec++; \
+ (vvp)->tv_nsec -= 1000000000; \
+ } \
+ } while (0)
+#define timespecsub(vvp, uvp) \
+ do { \
+ (vvp)->tv_sec -= (uvp)->tv_sec; \
+ (vvp)->tv_nsec -= (uvp)->tv_nsec; \
+ if ((vvp)->tv_nsec < 0) { \
+ (vvp)->tv_sec--; \
+ (vvp)->tv_nsec += 1000000000; \
+ } \
+ } while (0)
+
+/* Operations on timevals. */
+
+#define timevalclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0)
+#define timevalisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
+#define timevalcmp(tvp, uvp, cmp) \
+ (((tvp)->tv_sec == (uvp)->tv_sec) ? \
+ ((tvp)->tv_usec cmp (uvp)->tv_usec) : \
+ ((tvp)->tv_sec cmp (uvp)->tv_sec))
+
+/* timevaladd and timevalsub are not inlined */
+
+#endif /* _KERNEL */
+
+#ifndef _KERNEL /* NetBSD/OpenBSD compatible interfaces */
+
+#define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0)
+#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
+#ifndef __rtems__
+#define timercmp(tvp, uvp, cmp) \
+ (((tvp)->tv_sec == (uvp)->tv_sec) ? \
+ ((tvp)->tv_usec cmp (uvp)->tv_usec) : \
+ ((tvp)->tv_sec cmp (uvp)->tv_sec))
+#define timeradd(tvp, uvp, vvp) \
+ do { \
+ (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \
+ (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \
+ if ((vvp)->tv_usec >= 1000000) { \
+ (vvp)->tv_sec++; \
+ (vvp)->tv_usec -= 1000000; \
+ } \
+ } while (0)
+#define timersub(tvp, uvp, vvp) \
+ do { \
+ (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \
+ (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \
+ if ((vvp)->tv_usec < 0) { \
+ (vvp)->tv_sec--; \
+ (vvp)->tv_usec += 1000000; \
+ } \
+ } while (0)
+#endif
+#endif
+
+/*
+ * Names of the interval timers, and structure
+ * defining a timer setting.
+ */
+#define ITIMER_REAL 0
+#define ITIMER_VIRTUAL 1
+#define ITIMER_PROF 2
+
+#ifndef __rtems__
+struct itimerval {
+ struct timeval it_interval; /* timer interval */
+ struct timeval it_value; /* current value */
+};
+#endif
+
+/*
+ * Getkerninfo clock information structure
+ */
+struct clockinfo {
+ int hz; /* clock frequency */
+ int tick; /* micro-seconds per hz tick */
+ int spare;
+ int stathz; /* statistics clock frequency */
+ int profhz; /* profiling clock frequency */
+};
+
+/* These macros are also in time.h. */
+#ifndef CLOCK_REALTIME
+#define CLOCK_REALTIME 0
+#define CLOCK_VIRTUAL 1
+#define CLOCK_PROF 2
+#define CLOCK_MONOTONIC 4
+#define CLOCK_UPTIME 5 /* FreeBSD-specific. */
+#define CLOCK_UPTIME_PRECISE 7 /* FreeBSD-specific. */
+#define CLOCK_UPTIME_FAST 8 /* FreeBSD-specific. */
+#define CLOCK_REALTIME_PRECISE 9 /* FreeBSD-specific. */
+#define CLOCK_REALTIME_FAST 10 /* FreeBSD-specific. */
+#define CLOCK_MONOTONIC_PRECISE 11 /* FreeBSD-specific. */
+#define CLOCK_MONOTONIC_FAST 12 /* FreeBSD-specific. */
+#define CLOCK_SECOND 13 /* FreeBSD-specific. */
+#define CLOCK_THREAD_CPUTIME_ID 14
+#endif
+
+#ifndef TIMER_ABSTIME
+#define TIMER_RELTIME 0x0 /* relative timer */
+#define TIMER_ABSTIME 0x1 /* absolute timer */
+#endif
+
+#ifdef _KERNEL
+
+/*
+ * Kernel to clock driver interface.
+ */
+void inittodr(time_t base);
+void resettodr(void);
+
+extern time_t time_second;
+extern time_t time_uptime;
+extern struct timeval boottime;
+
+/*
+ * Functions for looking at our clock: [get]{bin,nano,micro}[up]time()
+ *
+ * Functions without the "get" prefix returns the best timestamp
+ * we can produce in the given format.
+ *
+ * "bin" == struct bintime == seconds + 64 bit fraction of seconds.
+ * "nano" == struct timespec == seconds + nanoseconds.
+ * "micro" == struct timeval == seconds + microseconds.
+ *
+ * Functions containing "up" returns time relative to boot and
+ * should be used for calculating time intervals.
+ *
+ * Functions without "up" returns GMT time.
+ *
+ * Functions with the "get" prefix returns a less precise result
+ * much faster than the functions without "get" prefix and should
+ * be used where a precision of 10 msec is acceptable or where
+ * performance is priority. (NB: "precision", _not_ "resolution" !)
+ *
+ */
+
+void binuptime(struct bintime *bt);
+void nanouptime(struct timespec *tsp);
+void microuptime(struct timeval *tvp);
+
+void bintime(struct bintime *bt);
+void nanotime(struct timespec *tsp);
+void microtime(struct timeval *tvp);
+
+void getbinuptime(struct bintime *bt);
+void getnanouptime(struct timespec *tsp);
+void getmicrouptime(struct timeval *tvp);
+
+void getbintime(struct bintime *bt);
+void getnanotime(struct timespec *tsp);
+void getmicrotime(struct timeval *tvp);
+
+/* Other functions */
+int itimerdecr(struct itimerval *itp, int usec);
+int itimerfix(struct timeval *tv);
+int ppsratecheck(struct timeval *, int *, int);
+int ratecheck(struct timeval *, const struct timeval *);
+void timevaladd(struct timeval *t1, const struct timeval *t2);
+void timevalsub(struct timeval *t1, const struct timeval *t2);
+int tvtohz(struct timeval *tv);
+#else /* !_KERNEL */
+#include <freebsd/time.h>
+
+#include <freebsd/sys/cdefs.h>
+#include <freebsd/sys/select.h>
+
+__BEGIN_DECLS
+int setitimer(int, const struct itimerval *, struct itimerval *);
+int utimes(const char *, const struct timeval *);
+
+#if __BSD_VISIBLE
+int adjtime(const struct timeval *, struct timeval *);
+int futimes(int, const struct timeval *);
+int futimesat(int, const char *, const struct timeval [2]);
+int lutimes(const char *, const struct timeval *);
+int settimeofday(const struct timeval *, const struct timezone *);
+#endif
+
+#ifndef __rtems__
+#if __XSI_VISIBLE
+int getitimer(int, struct itimerval *);
+int gettimeofday(struct timeval *, struct timezone *);
+#endif
+#endif
+
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_SYS_TIME_HH_ */
diff --git a/rtemsbsd/include/rtems/bsd/sys/timespec.h b/rtemsbsd/include/rtems/bsd/sys/timespec.h
new file mode 100644
index 00000000..4ec4147e
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/sys/timespec.h
@@ -0,0 +1,10 @@
+#define TIMEVAL_TO_TIMESPEC(tv, ts) \
+ do { \
+ (ts)->tv_sec = (tv)->tv_sec; \
+ (ts)->tv_nsec = (tv)->tv_usec * 1000; \
+ } while (0)
+#define TIMESPEC_TO_TIMEVAL(tv, ts) \
+ do { \
+ (tv)->tv_sec = (ts)->tv_sec; \
+ (tv)->tv_usec = (ts)->tv_nsec / 1000; \
+ } while (0)
diff --git a/rtemsbsd/include/rtems/bsd/sys/types.h b/rtemsbsd/include/rtems/bsd/sys/types.h
new file mode 100644
index 00000000..38ae5c68
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/sys/types.h
@@ -0,0 +1,360 @@
+/*-
+ * Copyright (c) 1982, 1986, 1991, 1993, 1994
+ * The Regents of the University of California. All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)types.h 8.6 (Berkeley) 2/19/95
+ * $FreeBSD$
+ */
+
+#ifndef _SYS_TYPES_HH_
+#define _SYS_TYPES_HH_
+
+#include <freebsd/sys/cdefs.h>
+
+/* Machine type dependent parameters. */
+#include <freebsd/machine/endian.h>
+#include <freebsd/sys/_types.h>
+
+#include <freebsd/sys/_pthreadtypes.h>
+
+#if __BSD_VISIBLE
+typedef unsigned char u_char;
+typedef unsigned short u_short;
+typedef unsigned int u_int;
+typedef unsigned long u_long;
+#ifndef _KERNEL
+typedef unsigned short ushort; /* Sys V compatibility */
+typedef unsigned int uint; /* Sys V compatibility */
+#endif
+#endif
+
+/*
+ * XXX POSIX sized integrals that should appear only in <sys/stdint.h>.
+ */
+#ifndef _INT8_T_DECLARED
+typedef __int8_t int8_t;
+#define _INT8_T_DECLARED
+#endif
+
+#ifndef _INT16_T_DECLARED
+typedef __int16_t int16_t;
+#define _INT16_T_DECLARED
+#endif
+
+#ifndef _INT32_T_DECLARED
+typedef __int32_t int32_t;
+#define _INT32_T_DECLARED
+#endif
+
+#ifndef _INT64_T_DECLARED
+typedef __int64_t int64_t;
+#define _INT64_T_DECLARED
+#endif
+
+#ifndef _UINT8_T_DECLARED
+typedef __uint8_t uint8_t;
+#define _UINT8_T_DECLARED
+#endif
+
+#ifndef _UINT16_T_DECLARED
+typedef __uint16_t uint16_t;
+#define _UINT16_T_DECLARED
+#endif
+
+#ifndef _UINT32_T_DECLARED
+typedef __uint32_t uint32_t;
+#define _UINT32_T_DECLARED
+#endif
+
+#ifndef _UINT64_T_DECLARED
+typedef __uint64_t uint64_t;
+#define _UINT64_T_DECLARED
+#endif
+
+#ifndef _INTPTR_T_DECLARED
+typedef __intptr_t intptr_t;
+typedef __uintptr_t uintptr_t;
+#define _INTPTR_T_DECLARED
+#endif
+
+#ifndef __rtems__
+typedef __uint8_t u_int8_t; /* unsigned integrals (deprecated) */
+typedef __uint16_t u_int16_t;
+typedef __uint32_t u_int32_t;
+typedef __uint64_t u_int64_t;
+
+typedef __uint64_t u_quad_t; /* quads (deprecated) */
+typedef __int64_t quad_t;
+typedef quad_t * qaddr_t;
+
+typedef char * caddr_t; /* core address */
+#endif /* __rtems__ */
+typedef __const char * c_caddr_t; /* core address, pointer to const */
+typedef __volatile char *v_caddr_t; /* core address, pointer to volatile */
+
+#ifndef _BLKSIZE_T_DECLARED
+typedef __blksize_t blksize_t;
+#define _BLKSIZE_T_DECLARED
+#endif
+
+typedef __cpuwhich_t cpuwhich_t;
+typedef __cpulevel_t cpulevel_t;
+typedef __cpusetid_t cpusetid_t;
+
+#ifndef _BLKCNT_T_DECLARED
+typedef __blkcnt_t blkcnt_t;
+#define _BLKCNT_T_DECLARED
+#endif
+
+#ifndef _CLOCK_T_DECLARED
+typedef __clock_t clock_t;
+#define _CLOCK_T_DECLARED
+#endif
+
+#ifndef _CLOCKID_T_DECLARED
+typedef __clockid_t clockid_t;
+#define _CLOCKID_T_DECLARED
+#endif
+
+typedef __cpumask_t cpumask_t;
+typedef __critical_t critical_t; /* Critical section value */
+#ifndef __rtems__
+typedef __int64_t daddr_t; /* disk address */
+#endif /* __rtems__ */
+
+#ifndef _DEV_T_DECLARED
+typedef __dev_t dev_t; /* device number or struct cdev */
+#define _DEV_T_DECLARED
+#endif
+
+#ifndef _FFLAGS_T_DECLARED
+typedef __fflags_t fflags_t; /* file flags */
+#define _FFLAGS_T_DECLARED
+#endif
+
+typedef __fixpt_t fixpt_t; /* fixed point number */
+
+#ifndef _FSBLKCNT_T_DECLARED /* for statvfs() */
+typedef __fsblkcnt_t fsblkcnt_t;
+typedef __fsfilcnt_t fsfilcnt_t;
+#define _FSBLKCNT_T_DECLARED
+#endif
+
+#ifndef _GID_T_DECLARED
+typedef __gid_t gid_t; /* group id */
+#define _GID_T_DECLARED
+#endif
+
+#ifndef _IN_ADDR_T_DECLARED
+typedef __uint32_t in_addr_t; /* base type for internet address */
+#define _IN_ADDR_T_DECLARED
+#endif
+
+#ifndef _IN_PORT_T_DECLARED
+typedef __uint16_t in_port_t;
+#define _IN_PORT_T_DECLARED
+#endif
+
+#ifndef _ID_T_DECLARED
+typedef __id_t id_t; /* can hold a uid_t or pid_t */
+#define _ID_T_DECLARED
+#endif
+
+#ifndef _INO_T_DECLARED
+typedef __ino_t ino_t; /* inode number */
+#define _INO_T_DECLARED
+#endif
+
+#ifndef _KEY_T_DECLARED
+typedef __key_t key_t; /* IPC key (for Sys V IPC) */
+#define _KEY_T_DECLARED
+#endif
+
+#ifndef _LWPID_T_DECLARED
+typedef __lwpid_t lwpid_t; /* Thread ID (a.k.a. LWP) */
+#define _LWPID_T_DECLARED
+#endif
+
+#ifndef _MODE_T_DECLARED
+typedef __mode_t mode_t; /* permissions */
+#define _MODE_T_DECLARED
+#endif
+
+#ifndef _ACCMODE_T_DECLARED
+typedef __accmode_t accmode_t; /* access permissions */
+#define _ACCMODE_T_DECLARED
+#endif
+
+#ifndef _NLINK_T_DECLARED
+typedef __nlink_t nlink_t; /* link count */
+#define _NLINK_T_DECLARED
+#endif
+
+#ifndef _OFF_T_DECLARED
+typedef __off_t off_t; /* file offset */
+#define _OFF_T_DECLARED
+#endif
+
+#ifndef _PID_T_DECLARED
+typedef __pid_t pid_t; /* process id */
+#define _PID_T_DECLARED
+#endif
+
+typedef __register_t register_t;
+
+#ifndef _RLIM_T_DECLARED
+typedef __rlim_t rlim_t; /* resource limit */
+#define _RLIM_T_DECLARED
+#endif
+
+typedef __segsz_t segsz_t; /* segment size (in pages) */
+
+#ifndef _SIZE_T_DECLARED
+typedef __size_t size_t;
+#define _SIZE_T_DECLARED
+#endif
+
+#ifndef _SSIZE_T_DECLARED
+typedef __ssize_t ssize_t;
+#define _SSIZE_T_DECLARED
+#endif
+
+#ifndef _SUSECONDS_T_DECLARED
+typedef __suseconds_t suseconds_t; /* microseconds (signed) */
+#define _SUSECONDS_T_DECLARED
+#endif
+
+#ifndef _TIME_T_DECLARED
+typedef __time_t time_t;
+#define _TIME_T_DECLARED
+#endif
+
+#ifndef _TIMER_T_DECLARED
+typedef __timer_t timer_t;
+#define _TIMER_T_DECLARED
+#endif
+
+#ifndef _MQD_T_DECLARED
+typedef __mqd_t mqd_t;
+#define _MQD_T_DECLARED
+#endif
+
+typedef __u_register_t u_register_t;
+
+#ifndef _UID_T_DECLARED
+typedef __uid_t uid_t; /* user id */
+#define _UID_T_DECLARED
+#endif
+
+#ifndef _USECONDS_T_DECLARED
+typedef __useconds_t useconds_t; /* microseconds (unsigned) */
+#define _USECONDS_T_DECLARED
+#endif
+
+typedef __vm_offset_t vm_offset_t;
+typedef __vm_ooffset_t vm_ooffset_t;
+typedef __vm_paddr_t vm_paddr_t;
+typedef __vm_pindex_t vm_pindex_t;
+typedef __vm_size_t vm_size_t;
+
+#ifdef _KERNEL
+typedef int boolean_t;
+typedef struct device *device_t;
+typedef __intfptr_t intfptr_t;
+
+/*-
+ * XXX this is fixed width for historical reasons. It should have had type
+ * __int_fast32_t. Fixed-width types should not be used unless binary
+ * compatibility is essential. Least-width types should be used even less
+ * since they provide smaller benefits.
+ * XXX should be MD.
+ * XXX this is bogus in -current, but still used for spl*().
+ */
+typedef __uint32_t intrmask_t; /* Interrupt mask (spl, xxx_imask...) */
+
+typedef __uintfptr_t uintfptr_t;
+typedef __uint64_t uoff_t;
+typedef char vm_memattr_t; /* memory attribute codes */
+typedef struct vm_page *vm_page_t;
+
+#ifndef __rtems__
+#define offsetof(type, field) __offsetof(type, field)
+#endif /* __rtems__ */
+
+#endif /* !_KERNEL */
+
+/*
+ * The following are all things that really shouldn't exist in this header,
+ * since its purpose is to provide typedefs, not miscellaneous doodads.
+ */
+#if __BSD_VISIBLE
+
+#include <freebsd/sys/select.h>
+
+/*
+ * minor() gives a cookie instead of an index since we don't want to
+ * change the meanings of bits 0-15 or waste time and space shifting
+ * bits 16-31 for devices that don't use them.
+ */
+#define major(x) ((int)(((u_int)(x) >> 8)&0xff)) /* major number */
+#define minor(x) ((int)((x)&0xffff00ff)) /* minor number */
+#define makedev(x,y) ((dev_t)(((x) << 8) | (y))) /* create dev_t */
+
+/*
+ * These declarations belong elsewhere, but are repeated here and in
+ * <stdio.h> to give broken programs a better chance of working with
+ * 64-bit off_t's.
+ */
+#ifndef _KERNEL
+__BEGIN_DECLS
+#ifndef _FTRUNCATE_DECLARED
+#define _FTRUNCATE_DECLARED
+int ftruncate(int, off_t);
+#endif
+#ifndef _LSEEK_DECLARED
+#define _LSEEK_DECLARED
+off_t lseek(int, off_t, int);
+#endif
+#ifndef _MMAP_DECLARED
+#define _MMAP_DECLARED
+void * mmap(void *, size_t, int, int, int, off_t);
+#endif
+#ifndef _TRUNCATE_DECLARED
+#define _TRUNCATE_DECLARED
+int truncate(const char *, off_t);
+#endif
+__END_DECLS
+#endif /* !_KERNEL */
+
+#endif /* __BSD_VISIBLE */
+
+#endif /* !_SYS_TYPES_HH_ */
diff --git a/rtemsbsd/include/rtems/bsd/sys/unistd.h b/rtemsbsd/include/rtems/bsd/sys/unistd.h
new file mode 100644
index 00000000..2918d563
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/sys/unistd.h
@@ -0,0 +1,188 @@
+/*-
+ * Copyright (c) 1989, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)unistd.h 8.2 (Berkeley) 1/7/94
+ * $FreeBSD$
+ */
+
+#ifndef _SYS_UNISTD_HH_
+#define _SYS_UNISTD_HH_
+
+#include <freebsd/sys/cdefs.h>
+
+/*
+ * POSIX options and option groups we unconditionally do or don't
+ * implement. Those options which are implemented (or not) entirely
+ * in user mode are defined in <unistd.h>. Please keep this list in
+ * alphabetical order.
+ *
+ * Anything which is defined as zero below **must** have an
+ * implementation for the corresponding sysconf() which is able to
+ * determine conclusively whether or not the feature is supported.
+ * Anything which is defined as other than -1 below **must** have
+ * complete headers, types, and function declarations as specified by
+ * the POSIX standard; however, if the relevant sysconf() function
+ * returns -1, the functions may be stubbed out.
+ */
+#define _POSIX_ADVISORY_INFO -1
+#define _POSIX_ASYNCHRONOUS_IO 0
+#define _POSIX_CHOWN_RESTRICTED 1
+#define _POSIX_CLOCK_SELECTION -1
+#define _POSIX_CPUTIME -1
+#define _POSIX_FSYNC 200112L
+#define _POSIX_IPV6 0
+#define _POSIX_JOB_CONTROL 1
+#define _POSIX_MAPPED_FILES 200112L
+#define _POSIX_MEMLOCK -1
+#define _POSIX_MEMLOCK_RANGE 200112L
+#define _POSIX_MEMORY_PROTECTION 200112L
+#define _POSIX_MESSAGE_PASSING 200112L
+#define _POSIX_MONOTONIC_CLOCK 200112L
+#define _POSIX_NO_TRUNC 1
+#define _POSIX_PRIORITIZED_IO -1
+#define _POSIX_PRIORITY_SCHEDULING 200112L
+#define _POSIX_RAW_SOCKETS 200112L
+#define _POSIX_REALTIME_SIGNALS 200112L
+#define _POSIX_SEMAPHORES -1
+#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
+#define _POSIX_SPORADIC_SERVER -1
+#define _POSIX_SYNCHRONIZED_IO -1
+#define _POSIX_TIMEOUTS 200112L
+#define _POSIX_TIMERS 200112L
+#define _POSIX_TYPED_MEMORY_OBJECTS -1
+#define _POSIX_VDISABLE 0xff
+
+#if __XSI_VISIBLE
+#define _XOPEN_SHM 1
+#define _XOPEN_STREAMS -1
+#endif
+
+/*
+ * Although we have saved user/group IDs, we do not use them in setuid
+ * as described in POSIX 1003.1, because the feature does not work for
+ * root. We use the saved IDs in seteuid/setegid, which are not currently
+ * part of the POSIX 1003.1 specification. XXX revisit for 1003.1-2001
+ * as this is now mandatory.
+ */
+#ifdef _NOT_AVAILABLE
+#define _POSIX_SAVED_IDS 1 /* saved set-user-ID and set-group-ID */
+#endif
+
+/* Define the POSIX.1 version we target for compliance. */
+#define _POSIX_VERSION 200112L
+
+/* access function */
+#define F_OK 0 /* test for existence of file */
+#define X_OK 0x01 /* test for execute or search permission */
+#define W_OK 0x02 /* test for write permission */
+#define R_OK 0x04 /* test for read permission */
+
+/* whence values for lseek(2) */
+#ifndef SEEK_SET
+#define SEEK_SET 0 /* set file offset to offset */
+#define SEEK_CUR 1 /* set file offset to current plus offset */
+#define SEEK_END 2 /* set file offset to EOF plus offset */
+#endif
+#if __BSD_VISIBLE
+#define SEEK_DATA 3 /* set file offset to next data past offset */
+#define SEEK_HOLE 4 /* set file offset to next hole past offset */
+#endif
+
+#ifndef _POSIX_SOURCE
+/* whence values for lseek(2); renamed by POSIX 1003.1 */
+#define L_SET SEEK_SET
+#define L_INCR SEEK_CUR
+#define L_XTND SEEK_END
+#endif
+
+/* configurable pathname variables */
+#define _PC_LINK_MAX 1
+#define _PC_MAX_CANON 2
+#define _PC_MAX_INPUT 3
+#define _PC_NAME_MAX 4
+#define _PC_PATH_MAX 5
+#define _PC_PIPE_BUF 6
+#define _PC_CHOWN_RESTRICTED 7
+#define _PC_NO_TRUNC 8
+#define _PC_VDISABLE 9
+
+#if __POSIX_VISIBLE >= 199309
+#define _PC_ASYNC_IO 53
+#define _PC_PRIO_IO 54
+#define _PC_SYNC_IO 55
+#endif
+
+#if __POSIX_VISIBLE >= 200112
+#define _PC_ALLOC_SIZE_MIN 10
+#define _PC_FILESIZEBITS 12
+#define _PC_REC_INCR_XFER_SIZE 14
+#define _PC_REC_MAX_XFER_SIZE 15
+#define _PC_REC_MIN_XFER_SIZE 16
+#define _PC_REC_XFER_ALIGN 17
+#define _PC_SYMLINK_MAX 18
+#endif
+
+#if __BSD_VISIBLE
+#define _PC_ACL_EXTENDED 59
+#define _PC_ACL_PATH_MAX 60
+#define _PC_CAP_PRESENT 61
+#define _PC_INF_PRESENT 62
+#define _PC_MAC_PRESENT 63
+#define _PC_ACL_NFS4 64
+#endif
+
+/* From OpenSolaris, used by SEEK_DATA/SEEK_HOLE. */
+#define _PC_MIN_HOLE_SIZE 21
+
+#if __BSD_VISIBLE
+/*
+ * rfork() options.
+ *
+ * XXX currently, some operations without RFPROC set are not supported.
+ */
+#define RFNAMEG (1<<0) /* UNIMPL new plan9 `name space' */
+#define RFENVG (1<<1) /* UNIMPL copy plan9 `env space' */
+#define RFFDG (1<<2) /* copy fd table */
+#define RFNOTEG (1<<3) /* UNIMPL create new plan9 `note group' */
+#define RFPROC (1<<4) /* change child (else changes curproc) */
+#define RFMEM (1<<5) /* share `address space' */
+#define RFNOWAIT (1<<6) /* give child to init */
+#define RFCNAMEG (1<<10) /* UNIMPL zero plan9 `name space' */
+#define RFCENVG (1<<11) /* UNIMPL zero plan9 `env space' */
+#define RFCFDG (1<<12) /* close all fds, zero fd table */
+#define RFTHREAD (1<<13) /* enable kernel thread support */
+#define RFSIGSHARE (1<<14) /* share signal handlers */
+#define RFLINUXTHPN (1<<16) /* do linux clone exit parent notification */
+#define RFSTOPPED (1<<17) /* leave child in a stopped state */
+#define RFHIGHPID (1<<18) /* use a pid higher than 10 (idleproc) */
+#define RFPPWAIT (1<<31) /* parent sleeps until child exits (vfork) */
+#define RFKERNELONLY (RFSTOPPED | RFHIGHPID | RFPPWAIT)
+
+#endif /* __BSD_VISIBLE */
+
+#endif /* !_SYS_UNISTD_HH_ */
diff --git a/rtemsbsd/include/rtems/netcmds-config.h b/rtemsbsd/include/rtems/netcmds-config.h
new file mode 100644
index 00000000..8938e97b
--- /dev/null
+++ b/rtemsbsd/include/rtems/netcmds-config.h
@@ -0,0 +1,33 @@
+/**
+ * @file rtems/netcmds-config.h
+ *
+ * RTEMS Shell Network Command Set Configuration
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2012.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifndef _RTEMS_NETCMDS_CONFIG_h
+#define _RTEMS_NETCMDS_CONFIG_h
+
+#include <rtems/shell.h>
+
+/*
+ * Externs for all command definition structures
+ */
+// #if RTEMS_NETWORKING
+ extern rtems_shell_cmd_t rtems_shell_PING_Command;
+ extern rtems_shell_cmd_t rtems_shell_PING6_Command;
+
+ extern rtems_shell_cmd_t rtems_shell_IFCONFIG_Command;
+ extern rtems_shell_cmd_t rtems_shell_ROUTE_Command;
+ extern rtems_shell_cmd_t rtems_shell_NETSTAT_Command;
+// #endif
+
+#endif
diff --git a/rtemsbsd/include/rtems/rtems_bsdnet.h b/rtemsbsd/include/rtems/rtems_bsdnet.h
new file mode 100644
index 00000000..9dd44fec
--- /dev/null
+++ b/rtemsbsd/include/rtems/rtems_bsdnet.h
@@ -0,0 +1,314 @@
+/**
+ * @file rtems/rtems_bsdnet.h
+ */
+
+
+#ifndef _RTEMS_BSDNET_H
+#define _RTEMS_BSDNET_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rtems.h>
+
+/*
+ * If this file is included from inside the Network Stack proper or
+ * a device driver, then __INSIDE_RTEMS_BSD_TCPIP_STACK__ should be
+ * defined. This triggers a number of internally used definitions.
+ */
+
+#if defined(__INSIDE_RTEMS_BSD_TCPIP_STACK__)
+#undef _KERNEL
+#undef INET
+#undef NFS
+#undef DIAGNOSTIC
+#undef BOOTP_COMPAT
+#undef __BSD_VISIBLE
+
+#define _KERNEL
+#define INET
+#define NFS
+#define DIAGNOSTIC
+#define BOOTP_COMPAT
+#define __BSD_VISIBLE 1
+#endif
+
+/*
+ * Values that may be obtained by BOOTP
+ */
+extern struct in_addr rtems_bsdnet_bootp_server_address;
+extern char *rtems_bsdnet_bootp_server_name;
+extern char *rtems_bsdnet_bootp_boot_file_name;
+extern char *rtems_bsdnet_bootp_cmdline;
+extern int32_t rtems_bsdnet_timeoffset;
+
+/*
+ * Manipulate routing tables
+ */
+struct sockaddr;
+struct rtentry;
+int rtems_bsdnet_rtrequest (
+ int req,
+ struct sockaddr *dst,
+ struct sockaddr *gateway,
+ struct sockaddr *netmask,
+ int flags,
+ struct rtentry **net_nrt);
+
+/*
+ * Diagnostics
+ */
+void rtems_bsdnet_show_inet_routes (void);
+void rtems_bsdnet_show_mbuf_stats (void);
+void rtems_bsdnet_show_if_stats (void);
+void rtems_bsdnet_show_ip_stats (void);
+void rtems_bsdnet_show_icmp_stats (void);
+void rtems_bsdnet_show_udp_stats (void);
+void rtems_bsdnet_show_tcp_stats (void);
+
+/*
+ * Network configuration
+ */
+struct rtems_bsdnet_ifconfig {
+ /*
+ * These three entries must be supplied for each interface.
+ */
+ char *name;
+
+ /*
+ * This function now handles attaching and detaching an interface.
+ * The parameter attaching indicates the operation being invoked.
+ * For older attach functions which do not have the extra parameter
+ * it will be ignored.
+ */
+ int (*attach)(struct rtems_bsdnet_ifconfig *conf, int attaching);
+
+ /*
+ * Link to next interface
+ */
+ struct rtems_bsdnet_ifconfig *next;
+
+ /*
+ * The following entries may be obtained
+ * from BOOTP or explicitily supplied.
+ */
+ char *ip_address;
+ char *ip_netmask;
+ void *hardware_address;
+
+ /*
+ * The driver assigns defaults values to the following
+ * entries if they are not explicitly supplied.
+ */
+ int ignore_broadcast;
+ int mtu;
+ int rbuf_count;
+ int xbuf_count;
+
+ /*
+ * For external ethernet controller board the following
+ * parameters are needed
+ */
+ unsigned int port; /* port of the board */
+ unsigned int irno; /* irq of the board */
+ unsigned int bpar; /* memory of the board */
+
+ /*
+ * Driver control block pointer. Typcially this points to the driver's
+ * controlling structure. You set this when you have the structure allocated
+ * externally to the driver.
+ */
+ void *drv_ctrl;
+
+};
+
+struct rtems_bsdnet_config {
+ /*
+ * This entry points to the head of the ifconfig chain.
+ */
+ struct rtems_bsdnet_ifconfig *ifconfig;
+
+ /*
+ * This entry should be rtems_bsdnet_do_bootp if BOOTP
+ * is being used to configure the network, and NULL
+ * if BOOTP is not being used.
+ */
+ void (*bootp)(void);
+
+ /*
+ * The remaining items can be initialized to 0, in
+ * which case the default value will be used.
+ */
+ rtems_task_priority network_task_priority; /* 100 */
+ unsigned long mbuf_bytecount; /* 64 kbytes */
+ unsigned long mbuf_cluster_bytecount; /* 128 kbytes */
+ char *hostname; /* BOOTP */
+ char *domainname; /* BOOTP */
+ char *gateway; /* BOOTP */
+ char *log_host; /* BOOTP */
+ char *name_server[3]; /* BOOTP */
+ char *ntp_server[3]; /* BOOTP */
+ /*
+ * Default "multiplier" on buffer size. This is
+ * claimed by the TCP/IP implementation to be for
+ * efficiency but you will have to measure the
+ * benefit for buffering beyond double buffering
+ * in your own application.
+ *
+ * The default value is 2.
+ *
+ * See kern/uipc_socket2.c for details.
+ */
+ unsigned long sb_efficiency;
+ /*
+ * Default UDP buffer sizes PER SOCKET!!
+ *
+ * TX = 9216 -- max datagram size
+ * RX = 40 * (1024 + sizeof(struct sockaddr_in))
+ *
+ * See netinet/udp_usrreq.c for details
+ */
+ unsigned long udp_tx_buf_size;
+ unsigned long udp_rx_buf_size;
+ /*
+ * Default UDP buffer sizes PER SOCKET!!
+ *
+ * TX = 16 * 1024
+ * RX = 16 * 1024
+ *
+ * See netinet/tcp_usrreq.c for details
+ */
+ unsigned long tcp_tx_buf_size;
+ unsigned long tcp_rx_buf_size;
+};
+
+/*
+ * Default global device configuration structure. This is scanned
+ * by the initialize network function. Check the network demo's for
+ * an example of the structure. Like the RTEMS configuration tables,
+ * they are not part of RTEMS but part of your application or bsp
+ * code.
+ */
+extern struct rtems_bsdnet_config rtems_bsdnet_config;
+
+/*
+ * Initialise the BSD stack, attach and `up' interfaces
+ * in the `rtems_bsdnet_config'. RTEMS must already be initialised.
+ */
+int rtems_bsdnet_initialize_network (void);
+
+/*
+ * Dynamic interface control. Drivers must free any resources such as
+ * memory, interrupts, io regions claimed during the `attach' and/or
+ * `up' operations when asked to `detach'.
+ * You must configure the interface after attaching it.
+ */
+void rtems_bsdnet_attach (struct rtems_bsdnet_ifconfig *ifconfig);
+void rtems_bsdnet_detach (struct rtems_bsdnet_ifconfig *ifconfig);
+
+/*
+ * Interface configuration. The commands are listed in `sys/sockio.h'.
+ */
+int rtems_bsdnet_ifconfig (const char *ifname, uint32_t cmd, void *param);
+
+void rtems_bsdnet_do_bootp (void);
+void rtems_bsdnet_do_bootp_and_rootfs (void);
+
+/* NTP tuning parameters */
+extern int rtems_bsdnet_ntp_retry_count;
+extern int rtems_bsdnet_ntp_timeout_secs;
+extern int rtems_bsdnet_ntp_bcast_timeout_secs;
+
+
+struct timestamp {
+ uint32_t integer;
+ uint32_t fraction;
+};
+
+/* Data is passed in network byte order */
+struct ntpPacketSmall {
+ uint8_t li_vn_mode;
+ uint8_t stratum;
+ int8_t poll_interval;
+ int8_t precision;
+ int32_t root_delay;
+ int32_t root_dispersion;
+ char reference_identifier[4];
+ struct timestamp reference_timestamp;
+ struct timestamp originate_timestamp;
+ struct timestamp receive_timestamp;
+ struct timestamp transmit_timestamp;
+};
+
+/* NOTE: packet data is *only* accessible from the callback
+ *
+ * 'callback' is invoked twice, once prior to sending a request
+ * to the server and one more time after receiving a valid reply.
+ * This allows for the user to measure round-trip times.
+ *
+ * Semantics of the 'state' parameter:
+ *
+ * state == 1: 1st call, just prior to sending request. The
+ * packet has been set up already but may be
+ * modified by the callback (e.g. to set the originate
+ * timestamp).
+ * state == -1: 1st call - no request will be sent but we'll
+ * wait for a reply from a broadcast server. The
+ * packet has not been set up.
+ * state == 0: 2nd call. The user is responsible for keeping track
+ * of the 'state' during the first call in order to
+ * know if it makes sense to calculate 'round-trip' times.
+ *
+ * RETURN VALUE: the callback should return 0 if processing the packet was
+ * successful and -1 on error in which case rtems_bsdnet_get_ntp()
+ * may try another server.
+ */
+typedef int (*rtems_bsdnet_ntp_callback_t)(
+ struct ntpPacketSmall *packet,
+ int state,
+ void *usr_data);
+
+/* Obtain time from a NTP server and call user callback to process data;
+ * socket parameter may be -1 to request the routine to open and close its own socket.
+ * Networking parameters as configured are used...
+ *
+ * It is legal to pass a NULL callback pointer. In this case, a default callback
+ * is used which determines the current time by contacting an NTP server. The current
+ * time is converted to a 'struct timespec' (seconds/nanoseconds) and passed into *usr_data.
+ * The caller is responsible for providing a memory area >= sizeof(struct timespec).
+ *
+ * RETURNS: 0 on success, -1 on failure.
+ */
+int rtems_bsdnet_get_ntp(int socket, rtems_bsdnet_ntp_callback_t callback, void *usr_data);
+
+int rtems_bsdnet_synchronize_ntp (int interval, rtems_task_priority priority);
+
+/*
+ * Callback to report BSD malloc starvation.
+ * The default implementation just prints a message but an application
+ * can provide its own version.
+ */
+void rtems_bsdnet_malloc_starvation(void);
+
+/*
+ * mbuf malloc interface to enable custom allocation of mbuf's
+ *
+ * May be declared in user code. If not, then the default is to
+ * malloc.
+ */
+void* rtems_bsdnet_malloc_mbuf(size_t size, int type);
+
+/*
+ * Possible values of the type parameter to rtems_bsdnet_malloc_mbuf to assist
+ * in allocation of the structure.
+ */
+#define MBUF_MALLOC_NMBCLUSTERS (0)
+#define MBUF_MALLOC_MCLREFCNT (1)
+#define MBUF_MALLOC_MBUF (2)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTEMS_BSDNET_H */