diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-10-09 22:42:09 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-10-10 09:06:58 +0200 |
commit | bceabc95c1c85d793200446fa85f1ddc6313ea29 (patch) | |
tree | 973c8bd8deca9fd69913f2895cc91e0e6114d46c /rtemsbsd | |
parent | Add FreeBSD sources as a submodule (diff) | |
download | rtems-libbsd-bceabc95c1c85d793200446fa85f1ddc6313ea29.tar.bz2 |
Move files to match FreeBSD layout
Diffstat (limited to 'rtemsbsd')
193 files changed, 26886 insertions, 80 deletions
diff --git a/rtemsbsd/freebsd/sys/limits.h b/rtemsbsd/freebsd/sys/limits.h deleted file mode 100644 index b2850e20..00000000 --- a/rtemsbsd/freebsd/sys/limits.h +++ /dev/null @@ -1,9 +0,0 @@ -#include <sys/types.h> -#include <limits.h> - -#define __FD_SETSIZE 1024 -#define FD_SETSIZE __FD_SETSIZE - -#define __CHAR_BIT CHAR_BIT /* number of bits in a char */ - - diff --git a/rtemsbsd/include/cam/cam_queue.h b/rtemsbsd/include/cam/cam_queue.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/cam/cam_queue.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/ddb/db_sym.h b/rtemsbsd/include/ddb/db_sym.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/ddb/db_sym.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/ddb/ddb.h b/rtemsbsd/include/ddb/ddb.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/ddb/ddb.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/geom/geom_disk.h b/rtemsbsd/include/geom/geom_disk.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/geom/geom_disk.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/freebsd/local/pmap.h b/rtemsbsd/include/local/pmap.h index f6d2924c..f6d2924c 100644 --- a/rtemsbsd/freebsd/local/pmap.h +++ b/rtemsbsd/include/local/pmap.h diff --git a/rtemsbsd/freebsd/machine/_bus.h b/rtemsbsd/include/machine/_bus.h index 436fb584..436fb584 100644 --- a/rtemsbsd/freebsd/machine/_bus.h +++ b/rtemsbsd/include/machine/_bus.h diff --git a/rtemsbsd/freebsd/machine/_limits.h b/rtemsbsd/include/machine/_limits.h index 46cac302..46cac302 100644 --- a/rtemsbsd/freebsd/machine/_limits.h +++ b/rtemsbsd/include/machine/_limits.h diff --git a/rtemsbsd/freebsd/machine/atomic.h b/rtemsbsd/include/machine/atomic.h index 3e63ef2d..3e63ef2d 100644 --- a/rtemsbsd/freebsd/machine/atomic.h +++ b/rtemsbsd/include/machine/atomic.h diff --git a/rtemsbsd/freebsd/machine/bus.h b/rtemsbsd/include/machine/bus.h index 18689dec..18689dec 100644 --- a/rtemsbsd/freebsd/machine/bus.h +++ b/rtemsbsd/include/machine/bus.h diff --git a/rtemsbsd/freebsd/machine/bus_dma.h b/rtemsbsd/include/machine/bus_dma.h index 44ed7762..44ed7762 100644 --- a/rtemsbsd/freebsd/machine/bus_dma.h +++ b/rtemsbsd/include/machine/bus_dma.h diff --git a/rtemsbsd/freebsd/machine/bus_space-i386.h b/rtemsbsd/include/machine/bus_space-i386.h index 748d883d..748d883d 100644 --- a/rtemsbsd/freebsd/machine/bus_space-i386.h +++ b/rtemsbsd/include/machine/bus_space-i386.h diff --git a/rtemsbsd/freebsd/machine/bus_space-simple_memory.h b/rtemsbsd/include/machine/bus_space-simple_memory.h index 559294e6..559294e6 100644 --- a/rtemsbsd/freebsd/machine/bus_space-simple_memory.h +++ b/rtemsbsd/include/machine/bus_space-simple_memory.h diff --git a/rtemsbsd/freebsd/machine/clock.h b/rtemsbsd/include/machine/clock.h index 9f40d413..9f40d413 100644 --- a/rtemsbsd/freebsd/machine/clock.h +++ b/rtemsbsd/include/machine/clock.h diff --git a/rtemsbsd/freebsd/machine/cpu.h b/rtemsbsd/include/machine/cpu.h index eafeca93..eafeca93 100644 --- a/rtemsbsd/freebsd/machine/cpu.h +++ b/rtemsbsd/include/machine/cpu.h diff --git a/rtemsbsd/avr/include/freebsd/machine/cpufunc.h b/rtemsbsd/include/machine/cpufunc.h index fa882cb5..fa882cb5 100644 --- a/rtemsbsd/avr/include/freebsd/machine/cpufunc.h +++ b/rtemsbsd/include/machine/cpufunc.h diff --git a/rtemsbsd/include/machine/elf.h b/rtemsbsd/include/machine/elf.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/machine/elf.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/freebsd/machine/mutex.h b/rtemsbsd/include/machine/mutex.h index 8ab14405..8ab14405 100644 --- a/rtemsbsd/freebsd/machine/mutex.h +++ b/rtemsbsd/include/machine/mutex.h diff --git a/rtemsbsd/include/machine/pcb.h b/rtemsbsd/include/machine/pcb.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/machine/pcb.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/freebsd/machine/pcpu.h b/rtemsbsd/include/machine/pcpu.h index caf1385f..caf1385f 100644 --- a/rtemsbsd/freebsd/machine/pcpu.h +++ b/rtemsbsd/include/machine/pcpu.h diff --git a/rtemsbsd/freebsd/machine/proc.h b/rtemsbsd/include/machine/proc.h index 6873e087..6873e087 100644 --- a/rtemsbsd/freebsd/machine/proc.h +++ b/rtemsbsd/include/machine/proc.h diff --git a/rtemsbsd/include/machine/resource.h b/rtemsbsd/include/machine/resource.h new file mode 100644 index 00000000..9b143810 --- /dev/null +++ b/rtemsbsd/include/machine/resource.h @@ -0,0 +1,10 @@ +#ifndef _MACHINE_RESOURCE_H_ +#define _MACHINE_RESOURCE_H_ 1 + +#define SYS_RES_IRQ 1 /* interrupt lines */ +#define SYS_RES_DRQ 2 /* isa dma lines */ +#define SYS_RES_MEMORY 3 /* i/o memory */ +#define SYS_RES_IOPORT 4 /* i/o ports */ +#define SYS_RES_GPIO 5 /* general purpose i/o */ + +#endif /* !_MACHINE_RESOURCE_H_ */ diff --git a/rtemsbsd/freebsd/machine/rtems-bsd-bus-dma.h b/rtemsbsd/include/machine/rtems-bsd-bus-dma.h index e9115e42..e9115e42 100644 --- a/rtemsbsd/freebsd/machine/rtems-bsd-bus-dma.h +++ b/rtemsbsd/include/machine/rtems-bsd-bus-dma.h diff --git a/rtemsbsd/freebsd/machine/rtems-bsd-cache.h b/rtemsbsd/include/machine/rtems-bsd-cache.h index 77cc0794..77cc0794 100644 --- a/rtemsbsd/freebsd/machine/rtems-bsd-cache.h +++ b/rtemsbsd/include/machine/rtems-bsd-cache.h diff --git a/rtemsbsd/freebsd/machine/rtems-bsd-config.h.in b/rtemsbsd/include/machine/rtems-bsd-config.h.in index 655d319a..655d319a 100644 --- a/rtemsbsd/freebsd/machine/rtems-bsd-config.h.in +++ b/rtemsbsd/include/machine/rtems-bsd-config.h.in diff --git a/rtemsbsd/freebsd/machine/rtems-bsd-devicet.h b/rtemsbsd/include/machine/rtems-bsd-devicet.h index 2db95850..2db95850 100644 --- a/rtemsbsd/freebsd/machine/rtems-bsd-devicet.h +++ b/rtemsbsd/include/machine/rtems-bsd-devicet.h diff --git a/rtemsbsd/freebsd/machine/rtems-bsd-symbols.h b/rtemsbsd/include/machine/rtems-bsd-symbols.h index 4c3be853..4c3be853 100644 --- a/rtemsbsd/freebsd/machine/rtems-bsd-symbols.h +++ b/rtemsbsd/include/machine/rtems-bsd-symbols.h diff --git a/rtemsbsd/freebsd/machine/rtems-bsd-sysinit.h b/rtemsbsd/include/machine/rtems-bsd-sysinit.h index 0e31d3ec..0e31d3ec 100644 --- a/rtemsbsd/freebsd/machine/rtems-bsd-sysinit.h +++ b/rtemsbsd/include/machine/rtems-bsd-sysinit.h diff --git a/rtemsbsd/freebsd/machine/rtems-bsd-taskqueue.h b/rtemsbsd/include/machine/rtems-bsd-taskqueue.h index 39c6f6e9..39c6f6e9 100644 --- a/rtemsbsd/freebsd/machine/rtems-bsd-taskqueue.h +++ b/rtemsbsd/include/machine/rtems-bsd-taskqueue.h diff --git a/rtemsbsd/freebsd/machine/runq.h b/rtemsbsd/include/machine/runq.h index affc070d..affc070d 100644 --- a/rtemsbsd/freebsd/machine/runq.h +++ b/rtemsbsd/include/machine/runq.h diff --git a/rtemsbsd/freebsd/machine/signal.h b/rtemsbsd/include/machine/signal.h index 0e71cabb..0e71cabb 100644 --- a/rtemsbsd/freebsd/machine/signal.h +++ b/rtemsbsd/include/machine/signal.h diff --git a/rtemsbsd/include/machine/smp.h b/rtemsbsd/include/machine/smp.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/machine/smp.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/freebsd/machine/stdarg.h b/rtemsbsd/include/machine/stdarg.h index 7535272e..7535272e 100644 --- a/rtemsbsd/freebsd/machine/stdarg.h +++ b/rtemsbsd/include/machine/stdarg.h diff --git a/rtemsbsd/freebsd/machine/ucontext.h b/rtemsbsd/include/machine/ucontext.h index 92d2b5d2..92d2b5d2 100644 --- a/rtemsbsd/freebsd/machine/ucontext.h +++ b/rtemsbsd/include/machine/ucontext.h diff --git a/rtemsbsd/include/machine/vm.h b/rtemsbsd/include/machine/vm.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/machine/vm.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/netgraph/ng_ipfw.h b/rtemsbsd/include/netgraph/ng_ipfw.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/netgraph/ng_ipfw.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/poll.h b/rtemsbsd/include/poll.h new file mode 100644 index 00000000..48572ee4 --- /dev/null +++ b/rtemsbsd/include/poll.h @@ -0,0 +1,2 @@ +#include <freebsd/bsd.h> +#include <freebsd/sys/poll.h> diff --git a/rtemsbsd/freebsd/bsd.h b/rtemsbsd/include/rtems/bsd/bsd.h index 6eafb4e5..6eafb4e5 100644 --- a/rtemsbsd/freebsd/bsd.h +++ b/rtemsbsd/include/rtems/bsd/bsd.h 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/freebsd/sys/timespec.h b/rtemsbsd/include/rtems/bsd/sys/timespec.h index 4ec4147e..4ec4147e 100644 --- a/rtemsbsd/freebsd/sys/timespec.h +++ b/rtemsbsd/include/rtems/bsd/sys/timespec.h 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 */ diff --git a/rtemsbsd/include/security/audit/audit.h b/rtemsbsd/include/security/audit/audit.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/security/audit/audit.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/sys/_pthreadtypes.h b/rtemsbsd/include/sys/_pthreadtypes.h new file mode 100644 index 00000000..fa882cb5 --- /dev/null +++ b/rtemsbsd/include/sys/_pthreadtypes.h @@ -0,0 +1 @@ +/* empty file */ diff --git a/rtemsbsd/include/sys/bio.h b/rtemsbsd/include/sys/bio.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/sys/bio.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/sys/copyright.h b/rtemsbsd/include/sys/copyright.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/sys/copyright.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/sys/cpuset.h b/rtemsbsd/include/sys/cpuset.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/sys/cpuset.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/sys/exec.h b/rtemsbsd/include/sys/exec.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/sys/exec.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/sys/fail.h b/rtemsbsd/include/sys/fail.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/sys/fail.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/sys/namei.h b/rtemsbsd/include/sys/namei.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/sys/namei.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/freebsd/sys/signalvar.h b/rtemsbsd/include/sys/signalvar.h index baa28bdd..baa28bdd 100644 --- a/rtemsbsd/freebsd/sys/signalvar.h +++ b/rtemsbsd/include/sys/signalvar.h diff --git a/rtemsbsd/include/sys/sleepqueue.h b/rtemsbsd/include/sys/sleepqueue.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/sys/sleepqueue.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/sys/syscallsubr.h b/rtemsbsd/include/sys/syscallsubr.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/sys/syscallsubr.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/sys/sysent.h b/rtemsbsd/include/sys/sysent.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/sys/sysent.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/sys/sysproto.h b/rtemsbsd/include/sys/sysproto.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/sys/sysproto.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/sys/ucontext.h b/rtemsbsd/include/sys/ucontext.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/sys/ucontext.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/sys/vnode.h b/rtemsbsd/include/sys/vnode.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/sys/vnode.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/syslog.h b/rtemsbsd/include/syslog.h new file mode 100644 index 00000000..830b4928 --- /dev/null +++ b/rtemsbsd/include/syslog.h @@ -0,0 +1 @@ +#include <sys/syslog.h> diff --git a/rtemsbsd/include/vm/pmap.h b/rtemsbsd/include/vm/pmap.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/vm/pmap.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/vm/vm_map.h b/rtemsbsd/include/vm/vm_map.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/vm/vm_map.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/include/vm/vm_param.h b/rtemsbsd/include/vm/vm_param.h new file mode 100644 index 00000000..936ffd88 --- /dev/null +++ b/rtemsbsd/include/vm/vm_param.h @@ -0,0 +1 @@ +/* EMPTY */ diff --git a/rtemsbsd/local/bus_if.c b/rtemsbsd/local/bus_if.c new file mode 100644 index 00000000..10f9ef46 --- /dev/null +++ b/rtemsbsd/local/bus_if.c @@ -0,0 +1,273 @@ +#include <freebsd/machine/rtems-bsd-config.h> + +/* + * 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 + */ + +#include <freebsd/sys/param.h> +#include <freebsd/sys/queue.h> +#include <freebsd/sys/kernel.h> +#include <freebsd/sys/kobj.h> +#include <freebsd/sys/types.h> +#include <freebsd/sys/systm.h> +#include <freebsd/sys/bus.h> +#include <freebsd/local/bus_if.h> + + +static struct resource * +null_alloc_resource(device_t dev, device_t child, + int type, int *rid, u_long start, u_long end, + u_long count, u_int flags) +{ + return (0); +} + +static int +null_remap_intr(device_t bus, device_t dev, u_int irq) +{ + + if (dev != NULL) + return (BUS_REMAP_INTR(dev, NULL, irq)); + return (ENXIO); +} + +static device_t +null_add_child(device_t bus, int order, const char *name, + int unit) +{ + + panic("bus_add_child is not implemented"); +} + +struct kobj_method bus_print_child_method_default = { + &bus_print_child_desc, (kobjop_t) bus_generic_print_child +}; + +struct kobjop_desc bus_print_child_desc = { + 0, &bus_print_child_method_default +}; + +struct kobj_method bus_probe_nomatch_method_default = { + &bus_probe_nomatch_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_probe_nomatch_desc = { + 0, &bus_probe_nomatch_method_default +}; + +struct kobj_method bus_read_ivar_method_default = { + &bus_read_ivar_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_read_ivar_desc = { + 0, &bus_read_ivar_method_default +}; + +struct kobj_method bus_write_ivar_method_default = { + &bus_write_ivar_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_write_ivar_desc = { + 0, &bus_write_ivar_method_default +}; + +struct kobj_method bus_child_detached_method_default = { + &bus_child_detached_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_child_detached_desc = { + 0, &bus_child_detached_method_default +}; + +struct kobj_method bus_driver_added_method_default = { + &bus_driver_added_desc, (kobjop_t) bus_generic_driver_added +}; + +struct kobjop_desc bus_driver_added_desc = { + 0, &bus_driver_added_method_default +}; + +struct kobj_method bus_add_child_method_default = { + &bus_add_child_desc, (kobjop_t) null_add_child +}; + +struct kobjop_desc bus_add_child_desc = { + 0, &bus_add_child_method_default +}; + +struct kobj_method bus_alloc_resource_method_default = { + &bus_alloc_resource_desc, (kobjop_t) null_alloc_resource +}; + +struct kobjop_desc bus_alloc_resource_desc = { + 0, &bus_alloc_resource_method_default +}; + +struct kobj_method bus_activate_resource_method_default = { + &bus_activate_resource_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_activate_resource_desc = { + 0, &bus_activate_resource_method_default +}; + +struct kobj_method bus_deactivate_resource_method_default = { + &bus_deactivate_resource_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_deactivate_resource_desc = { + 0, &bus_deactivate_resource_method_default +}; + +struct kobj_method bus_release_resource_method_default = { + &bus_release_resource_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_release_resource_desc = { + 0, &bus_release_resource_method_default +}; + +struct kobj_method bus_setup_intr_method_default = { + &bus_setup_intr_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_setup_intr_desc = { + 0, &bus_setup_intr_method_default +}; + +struct kobj_method bus_teardown_intr_method_default = { + &bus_teardown_intr_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_teardown_intr_desc = { + 0, &bus_teardown_intr_method_default +}; + +struct kobj_method bus_set_resource_method_default = { + &bus_set_resource_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_set_resource_desc = { + 0, &bus_set_resource_method_default +}; + +struct kobj_method bus_get_resource_method_default = { + &bus_get_resource_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_get_resource_desc = { + 0, &bus_get_resource_method_default +}; + +struct kobj_method bus_delete_resource_method_default = { + &bus_delete_resource_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_delete_resource_desc = { + 0, &bus_delete_resource_method_default +}; + +struct kobj_method bus_get_resource_list_method_default = { + &bus_get_resource_list_desc, (kobjop_t) bus_generic_get_resource_list +}; + +struct kobjop_desc bus_get_resource_list_desc = { + 0, &bus_get_resource_list_method_default +}; + +struct kobj_method bus_child_present_method_default = { + &bus_child_present_desc, (kobjop_t) bus_generic_child_present +}; + +struct kobjop_desc bus_child_present_desc = { + 0, &bus_child_present_method_default +}; + +struct kobj_method bus_child_pnpinfo_str_method_default = { + &bus_child_pnpinfo_str_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_child_pnpinfo_str_desc = { + 0, &bus_child_pnpinfo_str_method_default +}; + +struct kobj_method bus_child_location_str_method_default = { + &bus_child_location_str_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_child_location_str_desc = { + 0, &bus_child_location_str_method_default +}; + +struct kobj_method bus_bind_intr_method_default = { + &bus_bind_intr_desc, (kobjop_t) bus_generic_bind_intr +}; + +struct kobjop_desc bus_bind_intr_desc = { + 0, &bus_bind_intr_method_default +}; + +struct kobj_method bus_config_intr_method_default = { + &bus_config_intr_desc, (kobjop_t) bus_generic_config_intr +}; + +struct kobjop_desc bus_config_intr_desc = { + 0, &bus_config_intr_method_default +}; + +struct kobj_method bus_describe_intr_method_default = { + &bus_describe_intr_desc, (kobjop_t) bus_generic_describe_intr +}; + +struct kobjop_desc bus_describe_intr_desc = { + 0, &bus_describe_intr_method_default +}; + +struct kobj_method bus_hinted_child_method_default = { + &bus_hinted_child_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_hinted_child_desc = { + 0, &bus_hinted_child_method_default +}; + +struct kobj_method bus_get_dma_tag_method_default = { + &bus_get_dma_tag_desc, (kobjop_t) bus_generic_get_dma_tag +}; + +struct kobjop_desc bus_get_dma_tag_desc = { + 0, &bus_get_dma_tag_method_default +}; + +struct kobj_method bus_hint_device_unit_method_default = { + &bus_hint_device_unit_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc bus_hint_device_unit_desc = { + 0, &bus_hint_device_unit_method_default +}; + +struct kobj_method bus_new_pass_method_default = { + &bus_new_pass_desc, (kobjop_t) bus_generic_new_pass +}; + +struct kobjop_desc bus_new_pass_desc = { + 0, &bus_new_pass_method_default +}; + +struct kobj_method bus_remap_intr_method_default = { + &bus_remap_intr_desc, (kobjop_t) null_remap_intr +}; + +struct kobjop_desc bus_remap_intr_desc = { + 0, &bus_remap_intr_method_default +}; + diff --git a/rtemsbsd/local/cryptodev_if.c b/rtemsbsd/local/cryptodev_if.c new file mode 100644 index 00000000..d4875e46 --- /dev/null +++ b/rtemsbsd/local/cryptodev_if.c @@ -0,0 +1,54 @@ +#include <freebsd/machine/rtems-bsd-config.h> + +/* + * 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 + */ + +#include <freebsd/sys/param.h> +#include <freebsd/sys/queue.h> +#include <freebsd/sys/kernel.h> +#include <freebsd/sys/kobj.h> +#include <freebsd/sys/malloc.h> +#include <freebsd/opencrypto/cryptodev.h> +#include <freebsd/local/cryptodev_if.h> + +struct kobj_method cryptodev_newsession_method_default = { + &cryptodev_newsession_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc cryptodev_newsession_desc = { + 0, &cryptodev_newsession_method_default +}; + +struct kobj_method cryptodev_freesession_method_default = { + &cryptodev_freesession_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc cryptodev_freesession_desc = { + 0, &cryptodev_freesession_method_default +}; + +struct kobj_method cryptodev_process_method_default = { + &cryptodev_process_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc cryptodev_process_desc = { + 0, &cryptodev_process_method_default +}; + +struct kobj_method cryptodev_kprocess_method_default = { + &cryptodev_kprocess_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc cryptodev_kprocess_desc = { + 0, &cryptodev_kprocess_method_default +}; + diff --git a/rtemsbsd/local/device_if.c b/rtemsbsd/local/device_if.c new file mode 100644 index 00000000..e6f3189a --- /dev/null +++ b/rtemsbsd/local/device_if.c @@ -0,0 +1,106 @@ +#include <freebsd/machine/rtems-bsd-config.h> + +/* + * 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 + */ + +#include <freebsd/sys/param.h> +#include <freebsd/sys/queue.h> +#include <freebsd/sys/kernel.h> +#include <freebsd/sys/kobj.h> +#include <freebsd/sys/bus.h> +#include <freebsd/local/device_if.h> + + +static int null_shutdown(device_t dev) +{ + return 0; +} + +static int null_suspend(device_t dev) +{ + return 0; +} + +static int null_resume(device_t dev) +{ + return 0; +} + +static int null_quiesce(device_t dev) +{ + return EOPNOTSUPP; +} + +struct kobj_method device_probe_method_default = { + &device_probe_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc device_probe_desc = { + 0, &device_probe_method_default +}; + +struct kobj_method device_identify_method_default = { + &device_identify_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc device_identify_desc = { + 0, &device_identify_method_default +}; + +struct kobj_method device_attach_method_default = { + &device_attach_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc device_attach_desc = { + 0, &device_attach_method_default +}; + +struct kobj_method device_detach_method_default = { + &device_detach_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc device_detach_desc = { + 0, &device_detach_method_default +}; + +struct kobj_method device_shutdown_method_default = { + &device_shutdown_desc, (kobjop_t) null_shutdown +}; + +struct kobjop_desc device_shutdown_desc = { + 0, &device_shutdown_method_default +}; + +struct kobj_method device_suspend_method_default = { + &device_suspend_desc, (kobjop_t) null_suspend +}; + +struct kobjop_desc device_suspend_desc = { + 0, &device_suspend_method_default +}; + +struct kobj_method device_resume_method_default = { + &device_resume_desc, (kobjop_t) null_resume +}; + +struct kobjop_desc device_resume_desc = { + 0, &device_resume_method_default +}; + +struct kobj_method device_quiesce_method_default = { + &device_quiesce_desc, (kobjop_t) null_quiesce +}; + +struct kobjop_desc device_quiesce_desc = { + 0, &device_quiesce_method_default +}; + diff --git a/rtemsbsd/local/miibus_if.c b/rtemsbsd/local/miibus_if.c new file mode 100644 index 00000000..2f5127e8 --- /dev/null +++ b/rtemsbsd/local/miibus_if.c @@ -0,0 +1,61 @@ +#include <freebsd/machine/rtems-bsd-config.h> + +/* + * 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 + */ + +#include <freebsd/sys/param.h> +#include <freebsd/sys/queue.h> +#include <freebsd/sys/kernel.h> +#include <freebsd/sys/kobj.h> +#include <freebsd/sys/bus.h> +#include <freebsd/local/miibus_if.h> + +struct kobj_method miibus_readreg_method_default = { + &miibus_readreg_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc miibus_readreg_desc = { + 0, &miibus_readreg_method_default +}; + +struct kobj_method miibus_writereg_method_default = { + &miibus_writereg_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc miibus_writereg_desc = { + 0, &miibus_writereg_method_default +}; + +struct kobj_method miibus_statchg_method_default = { + &miibus_statchg_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc miibus_statchg_desc = { + 0, &miibus_statchg_method_default +}; + +struct kobj_method miibus_linkchg_method_default = { + &miibus_linkchg_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc miibus_linkchg_desc = { + 0, &miibus_linkchg_method_default +}; + +struct kobj_method miibus_mediainit_method_default = { + &miibus_mediainit_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc miibus_mediainit_desc = { + 0, &miibus_mediainit_method_default +}; + diff --git a/rtemsbsd/local/pci_if.c b/rtemsbsd/local/pci_if.c new file mode 100644 index 00000000..257e890b --- /dev/null +++ b/rtemsbsd/local/pci_if.c @@ -0,0 +1,172 @@ +#include <freebsd/machine/rtems-bsd-config.h> + +/* + * 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 + */ + +#include <freebsd/sys/param.h> +#include <freebsd/sys/queue.h> +#include <freebsd/sys/kernel.h> +#include <freebsd/sys/kobj.h> +#include <freebsd/sys/bus.h> +#include <freebsd/local/pci_if.h> + + +static int +null_msi_count(device_t dev, device_t child) +{ + return (0); +} + +struct kobj_method pci_read_config_method_default = { + &pci_read_config_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_read_config_desc = { + 0, &pci_read_config_method_default +}; + +struct kobj_method pci_write_config_method_default = { + &pci_write_config_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_write_config_desc = { + 0, &pci_write_config_method_default +}; + +struct kobj_method pci_get_powerstate_method_default = { + &pci_get_powerstate_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_get_powerstate_desc = { + 0, &pci_get_powerstate_method_default +}; + +struct kobj_method pci_set_powerstate_method_default = { + &pci_set_powerstate_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_set_powerstate_desc = { + 0, &pci_set_powerstate_method_default +}; + +struct kobj_method pci_get_vpd_ident_method_default = { + &pci_get_vpd_ident_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_get_vpd_ident_desc = { + 0, &pci_get_vpd_ident_method_default +}; + +struct kobj_method pci_get_vpd_readonly_method_default = { + &pci_get_vpd_readonly_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_get_vpd_readonly_desc = { + 0, &pci_get_vpd_readonly_method_default +}; + +struct kobj_method pci_enable_busmaster_method_default = { + &pci_enable_busmaster_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_enable_busmaster_desc = { + 0, &pci_enable_busmaster_method_default +}; + +struct kobj_method pci_disable_busmaster_method_default = { + &pci_disable_busmaster_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_disable_busmaster_desc = { + 0, &pci_disable_busmaster_method_default +}; + +struct kobj_method pci_enable_io_method_default = { + &pci_enable_io_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_enable_io_desc = { + 0, &pci_enable_io_method_default +}; + +struct kobj_method pci_disable_io_method_default = { + &pci_disable_io_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_disable_io_desc = { + 0, &pci_disable_io_method_default +}; + +struct kobj_method pci_assign_interrupt_method_default = { + &pci_assign_interrupt_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_assign_interrupt_desc = { + 0, &pci_assign_interrupt_method_default +}; + +struct kobj_method pci_find_extcap_method_default = { + &pci_find_extcap_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_find_extcap_desc = { + 0, &pci_find_extcap_method_default +}; + +struct kobj_method pci_alloc_msi_method_default = { + &pci_alloc_msi_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_alloc_msi_desc = { + 0, &pci_alloc_msi_method_default +}; + +struct kobj_method pci_alloc_msix_method_default = { + &pci_alloc_msix_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_alloc_msix_desc = { + 0, &pci_alloc_msix_method_default +}; + +struct kobj_method pci_remap_msix_method_default = { + &pci_remap_msix_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_remap_msix_desc = { + 0, &pci_remap_msix_method_default +}; + +struct kobj_method pci_release_msi_method_default = { + &pci_release_msi_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pci_release_msi_desc = { + 0, &pci_release_msi_method_default +}; + +struct kobj_method pci_msi_count_method_default = { + &pci_msi_count_desc, (kobjop_t) null_msi_count +}; + +struct kobjop_desc pci_msi_count_desc = { + 0, &pci_msi_count_method_default +}; + +struct kobj_method pci_msix_count_method_default = { + &pci_msix_count_desc, (kobjop_t) null_msi_count +}; + +struct kobjop_desc pci_msix_count_desc = { + 0, &pci_msix_count_method_default +}; + diff --git a/rtemsbsd/local/pcib_if.c b/rtemsbsd/local/pcib_if.c new file mode 100644 index 00000000..cc460893 --- /dev/null +++ b/rtemsbsd/local/pcib_if.c @@ -0,0 +1,101 @@ +#include <freebsd/machine/rtems-bsd-config.h> + +/* + * 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 + */ + +#include <freebsd/sys/param.h> +#include <freebsd/sys/queue.h> +#include <freebsd/sys/kernel.h> +#include <freebsd/sys/kobj.h> +#include <freebsd/sys/bus.h> +#include <freebsd/dev/pci/pcivar.h> +#include <freebsd/local/pcib_if.h> + + +static int +null_route_interrupt(device_t pcib, device_t dev, int pin) +{ + return (PCI_INVALID_IRQ); +} + +struct kobj_method pcib_maxslots_method_default = { + &pcib_maxslots_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pcib_maxslots_desc = { + 0, &pcib_maxslots_method_default +}; + +struct kobj_method pcib_read_config_method_default = { + &pcib_read_config_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pcib_read_config_desc = { + 0, &pcib_read_config_method_default +}; + +struct kobj_method pcib_write_config_method_default = { + &pcib_write_config_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pcib_write_config_desc = { + 0, &pcib_write_config_method_default +}; + +struct kobj_method pcib_route_interrupt_method_default = { + &pcib_route_interrupt_desc, (kobjop_t) null_route_interrupt +}; + +struct kobjop_desc pcib_route_interrupt_desc = { + 0, &pcib_route_interrupt_method_default +}; + +struct kobj_method pcib_alloc_msi_method_default = { + &pcib_alloc_msi_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pcib_alloc_msi_desc = { + 0, &pcib_alloc_msi_method_default +}; + +struct kobj_method pcib_release_msi_method_default = { + &pcib_release_msi_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pcib_release_msi_desc = { + 0, &pcib_release_msi_method_default +}; + +struct kobj_method pcib_alloc_msix_method_default = { + &pcib_alloc_msix_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pcib_alloc_msix_desc = { + 0, &pcib_alloc_msix_method_default +}; + +struct kobj_method pcib_release_msix_method_default = { + &pcib_release_msix_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pcib_release_msix_desc = { + 0, &pcib_release_msix_method_default +}; + +struct kobj_method pcib_map_msi_method_default = { + &pcib_map_msi_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc pcib_map_msi_desc = { + 0, &pcib_map_msi_method_default +}; + diff --git a/rtemsbsd/local/usb_if.c b/rtemsbsd/local/usb_if.c new file mode 100644 index 00000000..db9b2670 --- /dev/null +++ b/rtemsbsd/local/usb_if.c @@ -0,0 +1,29 @@ +#include <freebsd/machine/rtems-bsd-config.h> + +/* + * 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 + */ + +#include <freebsd/sys/param.h> +#include <freebsd/sys/queue.h> +#include <freebsd/sys/kernel.h> +#include <freebsd/sys/kobj.h> +#include <freebsd/sys/bus.h> +#include <freebsd/local/usb_if.h> + +struct kobj_method usb_handle_request_method_default = { + &usb_handle_request_desc, (kobjop_t) kobj_error_method +}; + +struct kobjop_desc usb_handle_request_desc = { + 0, &usb_handle_request_method_default +}; + diff --git a/rtemsbsd/rtems/generate_kvm_symbols b/rtemsbsd/rtems/generate_kvm_symbols new file mode 100755 index 00000000..b26259c7 --- /dev/null +++ b/rtemsbsd/rtems/generate_kvm_symbols @@ -0,0 +1,108 @@ +#! /bin/sh +# +# This file generates the symbol table for the kvm subsystem. The +# table is limited to the ones we believe are needed. + +symbols="" +while read sym +do + symbols="${symbols} ${sym}" +done <<EOF +_ifnet +_rtstat +_rt_tables +_mrtstat +_mfchashtbl +_viftable +_ipxpcb_list +_ipxstat +_spx_istat +_ddpstat +_ddpcb +_ngsocklist +_ip6stat +_icmp6stat +_ipsec4stat +_ipsec6stat +_pim6stat +_mrt6stat +_mf6ctable +_mif6table +_pfkeystat +_mbstat +_mbtypes +_nmbclusters +_nmbufs +_mbuf_hiwm +_clust_hiwm +_smp_cpus +_pagesize +_mb_statpcpu +_rttrash +_mbuf_lowm +_clust_lowm +_carpstats +_pfsyncstats +_ahstat +_espstat +_ipcompstat +_tcpstat +_udpstat +_ipstat +_icmpstat +_igmpstat +_pimstat +_tcbinfo +_udbinfo +_divcbinfo +_ripcbinfo +_unp_count +_unp_gencnt +_unp_dhead +_unp_shead +_rip6stat +_sctpstat +_mfctablesize +_arpstat +EOF + +cat <<EOF +/**** THIS FILE IS GENERATED BY A SCRIPT ****/ + +/* + * This file contains the known list of symbols for the kvm subsystem. + */ + +#include "kvm_private.h" +#include "stdio.h" + +/* + * The following is the known list of symbols that may be passed + * to the kvm family of calls. + */ + +EOF +for sym in ${symbols} +do + no_underscore=`echo $sym | sed -e 's/^_//' ` + echo "extern int ${no_underscore} __attribute((weak));" +done + +cat <<EOF +/* + * The following is the known list of symbols that may be passed + * to the kvm family of calls. + */ + +kvm_symval_t rtems_kvm_symbols[] = { +EOF +for sym in ${symbols} +do + no_underscore=`echo $sym | sed -e 's/^_//' ` + echo " { \"${sym}\", &${no_underscore} }," +done + +cat <<EOF + { "", NULL } +}; +EOF diff --git a/rtemsbsd/rtems/ipsec_get_policylen.c b/rtemsbsd/rtems/ipsec_get_policylen.c new file mode 100644 index 00000000..160c5e52 --- /dev/null +++ b/rtemsbsd/rtems/ipsec_get_policylen.c @@ -0,0 +1,16 @@ + +#include <sys/types.h> +#include <sys/param.h> + +#include <netipsec/ipsec.h> + +#include <net/pfkeyv2.h> + +#include "ipsec_strerror.h" + +int +ipsec_get_policylen(policy) + caddr_t policy; +{ + return policy ? PFKEY_EXTLEN(policy) : -1; +} diff --git a/rtemsbsd/rtems/kvm_private.h b/rtemsbsd/rtems/kvm_private.h new file mode 100644 index 00000000..7655511a --- /dev/null +++ b/rtemsbsd/rtems/kvm_private.h @@ -0,0 +1,13 @@ +#ifndef __KVM_PRIVATE_h +#define __KVM_PRIVATE_h + +#include <stdint.h> + +typedef struct { + const char *symbol; + uintptr_t value; +} kvm_symval_t; + +kvm_symval_t rtems_kvm_symbols[]; + +#endif diff --git a/rtemsbsd/src/rtems-bsd-assert.c b/rtemsbsd/rtems/rtems-bsd-assert.c index 2228fe8d..2228fe8d 100644 --- a/rtemsbsd/src/rtems-bsd-assert.c +++ b/rtemsbsd/rtems/rtems-bsd-assert.c diff --git a/rtemsbsd/src/rtems-bsd-autoconf.c b/rtemsbsd/rtems/rtems-bsd-autoconf.c index 94cf5355..94cf5355 100644 --- a/rtemsbsd/src/rtems-bsd-autoconf.c +++ b/rtemsbsd/rtems/rtems-bsd-autoconf.c diff --git a/rtemsbsd/src/rtems-bsd-bus-dma-mbuf.c b/rtemsbsd/rtems/rtems-bsd-bus-dma-mbuf.c index 97e0149b..97e0149b 100644 --- a/rtemsbsd/src/rtems-bsd-bus-dma-mbuf.c +++ b/rtemsbsd/rtems/rtems-bsd-bus-dma-mbuf.c diff --git a/rtemsbsd/src/rtems-bsd-bus-dma.c b/rtemsbsd/rtems/rtems-bsd-bus-dma.c index e186e8ba..e186e8ba 100644 --- a/rtemsbsd/src/rtems-bsd-bus-dma.c +++ b/rtemsbsd/rtems/rtems-bsd-bus-dma.c diff --git a/rtemsbsd/src/rtems-bsd-cam.c b/rtemsbsd/rtems/rtems-bsd-cam.c index 1f039412..1f039412 100644 --- a/rtemsbsd/src/rtems-bsd-cam.c +++ b/rtemsbsd/rtems/rtems-bsd-cam.c diff --git a/rtemsbsd/src/rtems-bsd-condvar.c b/rtemsbsd/rtems/rtems-bsd-condvar.c index cb97174d..cb97174d 100644 --- a/rtemsbsd/src/rtems-bsd-condvar.c +++ b/rtemsbsd/rtems/rtems-bsd-condvar.c diff --git a/rtemsbsd/src/rtems-bsd-conf.c b/rtemsbsd/rtems/rtems-bsd-conf.c index cfe8e823..cfe8e823 100644 --- a/rtemsbsd/src/rtems-bsd-conf.c +++ b/rtemsbsd/rtems/rtems-bsd-conf.c diff --git a/rtemsbsd/src/rtems-bsd-copyinout.c b/rtemsbsd/rtems/rtems-bsd-copyinout.c index 334de961..334de961 100644 --- a/rtemsbsd/src/rtems-bsd-copyinout.c +++ b/rtemsbsd/rtems/rtems-bsd-copyinout.c diff --git a/rtemsbsd/src/rtems-bsd-delay.c b/rtemsbsd/rtems/rtems-bsd-delay.c index e7fe9ae9..e7fe9ae9 100644 --- a/rtemsbsd/src/rtems-bsd-delay.c +++ b/rtemsbsd/rtems/rtems-bsd-delay.c diff --git a/rtemsbsd/src/rtems-bsd-descrip.c b/rtemsbsd/rtems/rtems-bsd-descrip.c index 72539987..72539987 100644 --- a/rtemsbsd/src/rtems-bsd-descrip.c +++ b/rtemsbsd/rtems/rtems-bsd-descrip.c diff --git a/rtemsbsd/src/rtems-bsd-generic.c b/rtemsbsd/rtems/rtems-bsd-generic.c index 4b32f6df..4b32f6df 100644 --- a/rtemsbsd/src/rtems-bsd-generic.c +++ b/rtemsbsd/rtems/rtems-bsd-generic.c diff --git a/rtemsbsd/src/rtems-bsd-init-with-irq.c b/rtemsbsd/rtems/rtems-bsd-init-with-irq.c index c1917e6b..c1917e6b 100644 --- a/rtemsbsd/src/rtems-bsd-init-with-irq.c +++ b/rtemsbsd/rtems/rtems-bsd-init-with-irq.c diff --git a/rtemsbsd/src/rtems-bsd-init.c b/rtemsbsd/rtems/rtems-bsd-init.c index 429f0649..429f0649 100644 --- a/rtemsbsd/src/rtems-bsd-init.c +++ b/rtemsbsd/rtems/rtems-bsd-init.c diff --git a/rtemsbsd/src/rtems-bsd-jail.c b/rtemsbsd/rtems/rtems-bsd-jail.c index 6294e98c..6294e98c 100644 --- a/rtemsbsd/src/rtems-bsd-jail.c +++ b/rtemsbsd/rtems/rtems-bsd-jail.c diff --git a/rtemsbsd/src/rtems-bsd-lock.c b/rtemsbsd/rtems/rtems-bsd-lock.c index 6af64ea0..6af64ea0 100644 --- a/rtemsbsd/src/rtems-bsd-lock.c +++ b/rtemsbsd/rtems/rtems-bsd-lock.c diff --git a/rtemsbsd/src/rtems-bsd-log.c b/rtemsbsd/rtems/rtems-bsd-log.c index 05d94e89..05d94e89 100644 --- a/rtemsbsd/src/rtems-bsd-log.c +++ b/rtemsbsd/rtems/rtems-bsd-log.c diff --git a/rtemsbsd/src/rtems-bsd-malloc.c b/rtemsbsd/rtems/rtems-bsd-malloc.c index 244f6a66..244f6a66 100644 --- a/rtemsbsd/src/rtems-bsd-malloc.c +++ b/rtemsbsd/rtems/rtems-bsd-malloc.c diff --git a/rtemsbsd/src/rtems-bsd-mutex.c b/rtemsbsd/rtems/rtems-bsd-mutex.c index 23249148..23249148 100644 --- a/rtemsbsd/src/rtems-bsd-mutex.c +++ b/rtemsbsd/rtems/rtems-bsd-mutex.c diff --git a/rtemsbsd/src/rtems-bsd-newproc.c b/rtemsbsd/rtems/rtems-bsd-newproc.c index b532f86e..b532f86e 100644 --- a/rtemsbsd/src/rtems-bsd-newproc.c +++ b/rtemsbsd/rtems/rtems-bsd-newproc.c diff --git a/rtemsbsd/src/rtems-bsd-nexus.c b/rtemsbsd/rtems/rtems-bsd-nexus.c index ba85c05d..ba85c05d 100644 --- a/rtemsbsd/src/rtems-bsd-nexus.c +++ b/rtemsbsd/rtems/rtems-bsd-nexus.c diff --git a/rtemsbsd/src/rtems-bsd-page.c b/rtemsbsd/rtems/rtems-bsd-page.c index 2a807178..2a807178 100644 --- a/rtemsbsd/src/rtems-bsd-page.c +++ b/rtemsbsd/rtems/rtems-bsd-page.c diff --git a/rtemsbsd/src/rtems-bsd-panic.c b/rtemsbsd/rtems/rtems-bsd-panic.c index e4361110..e4361110 100644 --- a/rtemsbsd/src/rtems-bsd-panic.c +++ b/rtemsbsd/rtems/rtems-bsd-panic.c diff --git a/rtemsbsd/src/rtems-bsd-pci_cfgreg.c b/rtemsbsd/rtems/rtems-bsd-pci_cfgreg.c index c6d47823..c6d47823 100644 --- a/rtemsbsd/src/rtems-bsd-pci_cfgreg.c +++ b/rtemsbsd/rtems/rtems-bsd-pci_cfgreg.c diff --git a/rtemsbsd/src/rtems-bsd-rwlock.c b/rtemsbsd/rtems/rtems-bsd-rwlock.c index a38a9a14..a38a9a14 100644 --- a/rtemsbsd/src/rtems-bsd-rwlock.c +++ b/rtemsbsd/rtems/rtems-bsd-rwlock.c diff --git a/rtemsbsd/src/rtems-bsd-shell.c b/rtemsbsd/rtems/rtems-bsd-shell.c index f80e9371..f80e9371 100644 --- a/rtemsbsd/src/rtems-bsd-shell.c +++ b/rtemsbsd/rtems/rtems-bsd-shell.c diff --git a/rtemsbsd/src/rtems-bsd-signal.c b/rtemsbsd/rtems/rtems-bsd-signal.c index 8ba40693..8ba40693 100644 --- a/rtemsbsd/src/rtems-bsd-signal.c +++ b/rtemsbsd/rtems/rtems-bsd-signal.c diff --git a/rtemsbsd/src/rtems-bsd-smp.c b/rtemsbsd/rtems/rtems-bsd-smp.c index f2a46520..f2a46520 100644 --- a/rtemsbsd/src/rtems-bsd-smp.c +++ b/rtemsbsd/rtems/rtems-bsd-smp.c diff --git a/rtemsbsd/src/rtems-bsd-subr_param.c b/rtemsbsd/rtems/rtems-bsd-subr_param.c index 5bdc63d2..5bdc63d2 100644 --- a/rtemsbsd/src/rtems-bsd-subr_param.c +++ b/rtemsbsd/rtems/rtems-bsd-subr_param.c diff --git a/rtemsbsd/src/rtems-bsd-support.c b/rtemsbsd/rtems/rtems-bsd-support.c index 8c0ccac7..8c0ccac7 100644 --- a/rtemsbsd/src/rtems-bsd-support.c +++ b/rtemsbsd/rtems/rtems-bsd-support.c diff --git a/rtemsbsd/src/rtems-bsd-sx.c b/rtemsbsd/rtems/rtems-bsd-sx.c index 73df4f6f..73df4f6f 100644 --- a/rtemsbsd/src/rtems-bsd-sx.c +++ b/rtemsbsd/rtems/rtems-bsd-sx.c diff --git a/rtemsbsd/src/rtems-bsd-synch.c b/rtemsbsd/rtems/rtems-bsd-synch.c index 40e08e1c..40e08e1c 100644 --- a/rtemsbsd/src/rtems-bsd-synch.c +++ b/rtemsbsd/rtems/rtems-bsd-synch.c diff --git a/rtemsbsd/src/rtems-bsd-syscalls.c b/rtemsbsd/rtems/rtems-bsd-syscalls.c index 821fcc9c..821fcc9c 100644 --- a/rtemsbsd/src/rtems-bsd-syscalls.c +++ b/rtemsbsd/rtems/rtems-bsd-syscalls.c diff --git a/rtemsbsd/src/rtems-bsd-sysctl.c b/rtemsbsd/rtems/rtems-bsd-sysctl.c index 8d3b7570..8d3b7570 100644 --- a/rtemsbsd/src/rtems-bsd-sysctl.c +++ b/rtemsbsd/rtems/rtems-bsd-sysctl.c diff --git a/rtemsbsd/src/rtems-bsd-sysctlbyname.c b/rtemsbsd/rtems/rtems-bsd-sysctlbyname.c index 6b7c2018..6b7c2018 100644 --- a/rtemsbsd/src/rtems-bsd-sysctlbyname.c +++ b/rtemsbsd/rtems/rtems-bsd-sysctlbyname.c diff --git a/rtemsbsd/src/rtems-bsd-sysctlnametomib.c b/rtemsbsd/rtems/rtems-bsd-sysctlnametomib.c index ecd5cbf1..ecd5cbf1 100644 --- a/rtemsbsd/src/rtems-bsd-sysctlnametomib.c +++ b/rtemsbsd/rtems/rtems-bsd-sysctlnametomib.c diff --git a/rtemsbsd/src/rtems-bsd-taskqueue.c b/rtemsbsd/rtems/rtems-bsd-taskqueue.c index 36bbf235..36bbf235 100644 --- a/rtemsbsd/src/rtems-bsd-taskqueue.c +++ b/rtemsbsd/rtems/rtems-bsd-taskqueue.c diff --git a/rtemsbsd/src/rtems-bsd-thread.c b/rtemsbsd/rtems/rtems-bsd-thread.c index ca1ff1f2..ca1ff1f2 100644 --- a/rtemsbsd/src/rtems-bsd-thread.c +++ b/rtemsbsd/rtems/rtems-bsd-thread.c diff --git a/rtemsbsd/src/rtems-bsd-thread0-ucred.c b/rtemsbsd/rtems/rtems-bsd-thread0-ucred.c index 4ff61ea4..4ff61ea4 100644 --- a/rtemsbsd/src/rtems-bsd-thread0-ucred.c +++ b/rtemsbsd/rtems/rtems-bsd-thread0-ucred.c diff --git a/rtemsbsd/src/rtems-bsd-timesupport.c b/rtemsbsd/rtems/rtems-bsd-timesupport.c index 5d730c45..5d730c45 100644 --- a/rtemsbsd/src/rtems-bsd-timesupport.c +++ b/rtemsbsd/rtems/rtems-bsd-timesupport.c diff --git a/rtemsbsd/src/rtems-bsd-vm_glue.c b/rtemsbsd/rtems/rtems-bsd-vm_glue.c index 284f7d60..284f7d60 100644 --- a/rtemsbsd/src/rtems-bsd-vm_glue.c +++ b/rtemsbsd/rtems/rtems-bsd-vm_glue.c diff --git a/rtemsbsd/rtems/rtems-getprogname.c b/rtemsbsd/rtems/rtems-getprogname.c new file mode 100644 index 00000000..1a075df8 --- /dev/null +++ b/rtemsbsd/rtems/rtems-getprogname.c @@ -0,0 +1,8 @@ +/* + * RTEMS version of + */ + +const char *getprogname(void) +{ + return "RTEMS"; +} diff --git a/rtemsbsd/rtems/rtems-kvm.c b/rtemsbsd/rtems/rtems-kvm.c new file mode 100644 index 00000000..945c6952 --- /dev/null +++ b/rtemsbsd/rtems/rtems-kvm.c @@ -0,0 +1,107 @@ +#include "port_before.h" +#include <sys/cdefs.h> +#include <kvm.h> +#include <nlist.h> +#include <assert.h> + +#include "kvm_private.h" + +char * +kvm_geterr( + kvm_t *kd +) +{ + return "KVM error"; + // return (kd->errbuf); +} + +kvm_t * +kvm_openfiles( + const char *uf, + const char *mf, + const char *sf __unused, + int flag, + char *errout +) +{ + return (kvm_t *)kvm_openfiles; +} + +int +kvm_nlist(kvm_t *kd, struct nlist *nl) +{ + struct nlist *p; + int nvalid; + int error; + kvm_symval_t *kvm; + + assert( kd != NULL ); + assert( nl != NULL ); + + nvalid = 0; +again: + for (p = nl; p->n_name && p->n_name[0]; ++p) { + if (p->n_type != N_UNDF) + continue; + if (p->n_name[0] != '_') + continue; + + for (kvm=rtems_kvm_symbols; kvm->symbol[0]; ++kvm) { + if (!strcmp(p->n_name, kvm->symbol)) { + p->n_type = N_TEXT; + p->n_other = 0; + p->n_desc = 0; + p->n_value = kvm->value; + if (kvm->value) { + ++nvalid; + // printf("kvm: %s = %p\n", p->n_name, (void*)kvm->value); + } + break; + } + } + if (! kvm->symbol[0]) { + printf("kvm: did not know about %s\n", p->n_name); + } + } + + error = ((p - nl) - nvalid); + return (error); + +} + + +ssize_t +kvm_read(kd, kva, buf, len) + kvm_t *kd; + u_long kva; + void *buf; + size_t len; +{ + assert( kd != NULL ); + assert( buf != NULL ); + + if ( kva == 0 ) + return (-1); + +#ifdef __rtems__ + // printf( "%d from %p to %p\n", len, (void*)kva, buf); +#endif +#if 0 + /* + * Use a byte-wide copy to avoid alignment issues. + */ + { + unsigned char *s; + unsigned char *d; + size_t c; + + s = (void *)kva; + d = buf; + for (c=0; c<len ; c++) + *d++ = *s++; + } +#else + memcpy(buf, (void *)kva, len); +#endif + return len; +} diff --git a/rtemsbsd/rtems/rtems-net-setup.c b/rtemsbsd/rtems/rtems-net-setup.c new file mode 100644 index 00000000..7774cd26 --- /dev/null +++ b/rtemsbsd/rtems/rtems-net-setup.c @@ -0,0 +1,311 @@ +/* + * XXX copyright and license. + * XXX integrate more setup from old code in rtems_glue.c + * XXX integrate using old configuration structure as it makes sense + */ + +#include <freebsd/bsd.h> +#include <sys/socket.h> +#include <net/if.h> +#include <netinet/in.h> +#include <arpa/inet.h> +#include <net/route.h> +#include <rtems/rtems_bsdnet.h> + +static const struct sockaddr_in address_template = { + sizeof(address_template), + AF_INET, + 0, + { INADDR_ANY }, + { 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +/* + * Manipulate routing tables + */ +int rtems_bsdnet_rtrequest( + int req, + struct sockaddr *dst, + struct sockaddr *gateway, + struct sockaddr *netmask, + int flags, + struct rtentry **net_nrt +) +{ + int error; + + // rtems_bsdnet_semaphore_obtain(); + error = rtrequest(req, dst, gateway, netmask, flags, net_nrt); + // rtems_bsdnet_semaphore_release(); + if (error) { + errno = error; + return -1; + } + return 0; +} + +static void +rtems_bsdnet_initialize_sockaddr_in(struct sockaddr_in *addr) +{ + memcpy(addr, &address_template, sizeof(*addr)); +} + +/* + * Interface Configuration. + */ +int rtems_bsdnet_ifconfig(const char *ifname, uint32_t cmd, void *param) +{ + int s, r = 0; + struct ifreq ifreq; + + /* + * Configure interfaces + */ + s = socket(AF_INET, SOCK_DGRAM, 0); + if (s < 0) + return -1; + + strncpy(ifreq.ifr_name, ifname, IFNAMSIZ); + + switch (cmd) { + case SIOCSIFADDR: + case SIOCSIFNETMASK: + memcpy(&ifreq.ifr_addr, param, sizeof(struct sockaddr)); + r = ioctl(s, cmd, &ifreq); + break; + + case OSIOCGIFADDR: + case SIOCGIFADDR: + case OSIOCGIFNETMASK: + case SIOCGIFNETMASK: + if ((r = ioctl(s, cmd, &ifreq)) < 0) + break; + memcpy(param, &ifreq.ifr_addr, sizeof(struct sockaddr)); + break; + + case SIOCGIFFLAGS: + case SIOCSIFFLAGS: + if ((r = ioctl(s, SIOCGIFFLAGS, &ifreq)) < 0) + break; + if (cmd == SIOCGIFFLAGS) { + *((short*) param) = ifreq.ifr_flags; + break; + } + ifreq.ifr_flags |= *((short*) param); + if ( (*((short*) param) & IFF_UP ) == 0 ) { + /* set the interface down */ + ifreq.ifr_flags &= ~(IFF_UP); + } + r = ioctl(s, SIOCSIFFLAGS, &ifreq); + break; + + case SIOCSIFDSTADDR: + memcpy(&ifreq.ifr_dstaddr, param, sizeof(struct sockaddr)); + r = ioctl(s, cmd, &ifreq); + break; + + case OSIOCGIFDSTADDR: + case SIOCGIFDSTADDR: + if ((r = ioctl(s, cmd, &ifreq)) < 0) + break; + memcpy(param, &ifreq.ifr_dstaddr, sizeof(struct sockaddr)); + break; + + case SIOCSIFBRDADDR: + memcpy(&ifreq.ifr_broadaddr, param, sizeof(struct sockaddr)); + r = ioctl(s, cmd, &ifreq); + break; + + case OSIOCGIFBRDADDR: + case SIOCGIFBRDADDR: + if ((r = ioctl(s, cmd, &ifreq)) < 0) + break; + memcpy(param, &ifreq.ifr_broadaddr, sizeof(struct sockaddr)); + break; + + case SIOCSIFMETRIC: + ifreq.ifr_metric = *((int*) param); + r = ioctl(s, cmd, &ifreq); + break; + + case SIOCGIFMETRIC: + if ((r = ioctl(s, cmd, &ifreq)) < 0) + break; + *((int*) param) = ifreq.ifr_metric; + break; + + case SIOCSIFMTU: + ifreq.ifr_mtu = *((int*) param); + r = ioctl(s, cmd, &ifreq); + break; + + case SIOCGIFMTU: + if ((r = ioctl(s, cmd, &ifreq)) < 0) + break; + *((int*) param) = ifreq.ifr_mtu; + break; + + case SIOCSIFPHYS: + ifreq.ifr_phys = *((int*) param); + r = ioctl(s, cmd, &ifreq); + break; + + case SIOCGIFPHYS: + if ((r = ioctl(s, cmd, &ifreq)) < 0) + break; + *((int*) param) = ifreq.ifr_phys; + break; + + case SIOCSIFMEDIA: + ifreq.ifr_media = *((int*) param); + r = ioctl(s, cmd, &ifreq); + break; + + case SIOCGIFMEDIA: + /* 'param' passes the phy index they want to + * look at... + */ + ifreq.ifr_media = *((int*) param); + if ((r = ioctl(s, cmd, &ifreq)) < 0) + break; + *((int*) param) = ifreq.ifr_media; + break; + + case SIOCAIFADDR: + case SIOCDIFADDR: + r = ioctl(s, cmd, (struct ifreq *) param); + break; + + default: + errno = EOPNOTSUPP; + r = -1; + break; + } + + close(s); + return r; +} + + + +static bool rtems_bsdnet_setup_interface( + const char *name, + const char *ip_address, + const char *ip_netmask +) +{ + struct sockaddr_in address; + struct sockaddr_in netmask; + short flags; + + /* + * Bring interface up + */ + flags = IFF_UP; + if (rtems_bsdnet_ifconfig(name, SIOCSIFFLAGS, &flags) < 0) { + printf("Can't bring %s up: %s\n", name, strerror(errno)); + return false; + } + + /* + * Set interface netmask + */ + rtems_bsdnet_initialize_sockaddr_in(&netmask); + netmask.sin_addr.s_addr = inet_addr(ip_netmask); + if (rtems_bsdnet_ifconfig(name, SIOCSIFNETMASK, &netmask) < 0) { + printf("Can't set %s netmask: %s\n", name, strerror(errno)); + return false; + } + + /* + * Set interface address + */ + rtems_bsdnet_initialize_sockaddr_in(&address); + address.sin_addr.s_addr = inet_addr(ip_address); + if (rtems_bsdnet_ifconfig(name, SIOCSIFADDR, &address) < 0) { + printf("Can't set %s address: %s\n", name, strerror(errno)); + return false; + } + + /* + * Set interface broadcast address if the interface has the + * broadcast flag set. + */ + if (rtems_bsdnet_ifconfig(name, SIOCGIFFLAGS, &flags) < 0) { + printf("Can't read %s flags: %s\n", name, strerror(errno)); + return false; + } + + if (flags & IFF_BROADCAST) { + struct sockaddr_in broadcast; + + rtems_bsdnet_initialize_sockaddr_in(&broadcast); + broadcast.sin_addr.s_addr = + address.sin_addr.s_addr | ~netmask.sin_addr.s_addr; + if (rtems_bsdnet_ifconfig(name, SIOCSIFBRDADDR, &broadcast) < 0) { + struct in_addr in_addr; + char buf[20]; + in_addr.s_addr = broadcast.sin_addr.s_addr; + if (!inet_ntop(AF_INET, &in_addr, buf, sizeof(buf))) + strcpy(buf,"?.?.?.?"); + printf("Can't set %s broadcast address %s: %s\n", + name, buf, strerror(errno)); + } + } + + return true; +} + + + +void rtems_initialize_interfaces(void) +{ + bool any_if_configured; + struct rtems_bsdnet_ifconfig *ifp; + + any_if_configured = false; + + any_if_configured |= rtems_bsdnet_setup_interface( + "lo0", + "127.0.0.1", + "255.0.0.0" + ); + + + for (ifp = rtems_bsdnet_config.ifconfig ; ifp ; ifp = ifp->next) { + if (ifp->ip_address == NULL) + continue; + + any_if_configured |= rtems_bsdnet_setup_interface( + ifp->name, + ifp->ip_address, + ifp->ip_netmask + ); + } + /* + * Set default route + */ + if (rtems_bsdnet_config.gateway && any_if_configured) { + struct sockaddr_in address; + struct sockaddr_in netmask; + struct sockaddr_in gateway; + + rtems_bsdnet_initialize_sockaddr_in(&address); + rtems_bsdnet_initialize_sockaddr_in(&netmask); + rtems_bsdnet_initialize_sockaddr_in(&gateway); + + gateway.sin_addr.s_addr = inet_addr (rtems_bsdnet_config.gateway); + + if (rtems_bsdnet_rtrequest ( + RTM_ADD, + (struct sockaddr *)&address, + (struct sockaddr *)&gateway, + (struct sockaddr *)&netmask, + (RTF_UP | RTF_GATEWAY | RTF_STATIC), NULL) < 0) { + printf ("Can't set default route: %s\n", strerror (errno)); + return -1; + } + } + return 0; + +} diff --git a/rtemsbsd/rtems/rtems-shell.c b/rtemsbsd/rtems/rtems-shell.c new file mode 100644 index 00000000..d1bc6631 --- /dev/null +++ b/rtemsbsd/rtems/rtems-shell.c @@ -0,0 +1,14 @@ + + +#include <err.h> + +rtems_shell_globals_t *rtems_shell_globals; + +void +rtems_shell_exit (int code) +{ + rtems_shell_globals->exit_code = code; + longjmp (rtems_shell_globals->exit_jmp, 1); +} + + diff --git a/rtemsbsd/rtems/rtems-syslog-initialize.c b/rtemsbsd/rtems/rtems-syslog-initialize.c new file mode 100644 index 00000000..c092d269 --- /dev/null +++ b/rtemsbsd/rtems/rtems-syslog-initialize.c @@ -0,0 +1,21 @@ +/* + * RTEMS version of syslog initialization + */ + +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + + +struct in_addr rtems_bsdnet_log_host_address = {0}; + +int rtems_syslog_initialize(const char *log_host) +{ + struct in_addr *i; + + i = &rtems_bsdnet_log_host_address; + + if (log_host) + i->s_addr = inet_addr(log_host); + return 0; +} diff --git a/rtemsbsd/rtems/rtems-syspoll.c b/rtemsbsd/rtems/rtems-syspoll.c new file mode 100644 index 00000000..d53d14e8 --- /dev/null +++ b/rtemsbsd/rtems/rtems-syspoll.c @@ -0,0 +1,30 @@ +#include <unistd.h> +#include <errno.h> +#include <sys/time.h> +#include <rtems.h> +#include <rtems/error.h> +#include <freebsd/sys/poll.h> + +struct poll_args { + struct pollfd *fds; + u_int nfds; + int timeout; +}; + +int kern_poll( struct thread *td, struct poll_args *uap ); + + +int +__sys_poll(struct pollfd *fds, unsigned nfds, int timeout) +{ + struct poll_args uap; + struct thread *td = rtems_get_curthread(); + + uap.fds = fds; + uap.nfds = nfds; + uap.timeout = timeout; + + kern_poll(td, &uap); + + return -1; +} diff --git a/rtemsbsd/rtems/rtems-uthread_kevent.c b/rtemsbsd/rtems/rtems-uthread_kevent.c new file mode 100644 index 00000000..4cfeaa03 --- /dev/null +++ b/rtemsbsd/rtems/rtems-uthread_kevent.c @@ -0,0 +1,15 @@ +#include <unistd.h> +#include <errno.h> +#include <sys/time.h> +#include <rtems.h> +#include <rtems/error.h> + +__weak_reference(_kevent, kevent); + +int +_kevent(int kq, const struct kevent *changelist, int nchanges, + struct kevent *eventlist, int nevents, const struct timespec *timeout) +{ + rtems_panic("Unimplemented method!!!\n"); + return -1; +} diff --git a/rtemsbsd/rtems/rtems-uthread_kqueue.c b/rtemsbsd/rtems/rtems-uthread_kqueue.c new file mode 100644 index 00000000..0693412f --- /dev/null +++ b/rtemsbsd/rtems/rtems-uthread_kqueue.c @@ -0,0 +1,14 @@ +#include <sys/types.h> +#include <fcntl.h> +#include <unistd.h> +#include <rtems.h> +#include <rtems/error.h> + +__weak_reference(_kqueue, kqueue); + +int +_kqueue(void) +{ + rtems_panic("Unimplemented method!!!\n"); + return -1; +} diff --git a/rtemsbsd/rtems/syslog.c b/rtemsbsd/rtems/syslog.c new file mode 100644 index 00000000..10a75a61 --- /dev/null +++ b/rtemsbsd/rtems/syslog.c @@ -0,0 +1,192 @@ +/* + * RTEMS version of syslog and associated routines + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <rtems.h> +#include <stdio.h> +#include <stdarg.h> +#include <errno.h> +#include <syslog.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <string.h> + +#include <unistd.h> + +static int LogStatus = LOG_CONS; +static const char *LogTag = "syslog"; +static int LogFacility = LOG_USER; +static int LogMask = 0xff; + +static int LogFd = -1; +static rtems_id LogSemaphore; +extern struct in_addr rtems_bsdnet_log_host_address; + +#define SYSLOG_PORT 514 + +void +syslog (int pri, const char *fmt, ...) +{ + va_list ap; + + va_start (ap, fmt); + vsyslog (pri, fmt, ap); + va_end (ap); +} + +/* + * FIXME: Should cbuf be static? It could be if we put the mutex + * around the entire body of this routine. Then we wouldn't + * have to worry about blowing stacks with a local variable + * that large. Could make cbuf bigger, too. + */ +void +vsyslog (int pri, const char *fmt, va_list ap) +{ + int cnt; + char *cp; + char *msgp, cbuf[200]; + int sent; + + if (pri & ~(LOG_PRIMASK|LOG_FACMASK)) { + syslog (LOG_ERR|LOG_CONS|LOG_PERROR|LOG_PID, + "syslog: unknown facility/priority: %#x", pri); + pri &= LOG_PRIMASK|LOG_FACMASK; + } + + if (!(LOG_MASK(LOG_PRI(pri)) & LogMask)) + return; + + if ((pri & LOG_FACMASK) == 0) + pri |= LogFacility; + + cnt = sprintf (cbuf, "<%d>", pri); + cp = msgp = cbuf + cnt; + if (LogTag) { + const char *lp = LogTag; + while ((*cp = *lp++) != '\0') + cp++; + } + if (LogStatus & LOG_PID) { + rtems_id tid; + rtems_task_ident (RTEMS_SELF, 0, &tid); + cnt = sprintf (cp, "[%#lx]", (unsigned long)tid); + cp += cnt; + } + if (LogTag) { + *cp++ = ':'; + *cp++ = ' '; + } + cnt = vsprintf (cp, fmt, ap); + cnt += cp - cbuf; + if (cbuf[cnt-1] == '\n') + cbuf[--cnt] = '\0'; + + if (LogStatus & LOG_PERROR) + printf ("%s\n", cbuf); + + /* + * Grab the mutex + */ + sent = 0; + if ((rtems_bsdnet_log_host_address.s_addr != INADDR_ANY) + && (LogFd >= 0) + && (rtems_semaphore_obtain (LogSemaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT) == RTEMS_SUCCESSFUL)) { + /* + * Set the destination address/port + */ + struct sockaddr_in farAddress; + farAddress.sin_family = AF_INET; + farAddress.sin_port = htons (SYSLOG_PORT); + farAddress.sin_addr = rtems_bsdnet_log_host_address; + memset (farAddress.sin_zero, '\0', sizeof farAddress.sin_zero); + + /* + * Send the message + */ + if (sendto (LogFd, cbuf, cnt, 0, (struct sockaddr *)&farAddress, sizeof farAddress) >= 0) + sent = 1; + rtems_semaphore_release (LogSemaphore); + } + if (!sent && (LogStatus & LOG_CONS) && !(LogStatus & LOG_PERROR)) + printf ("%s\n", msgp); +} + +void +openlog (const char *ident, int logstat, int logfac) +{ + rtems_status_code sc; + struct sockaddr_in myAddress; + + if (ident != NULL) + LogTag = ident; + LogStatus = logstat; + if (logfac != 0 && (logfac & ~LOG_FACMASK) == 0) + LogFacility = logfac; + + /* + * Create the socket + */ + if ((LogFd = socket (AF_INET, SOCK_DGRAM, 0)) < 0) { + printf ("Can't create syslog socket: %d\n", errno); + return; + } + + /* + * Bind socket to name + */ + myAddress.sin_family = AF_INET; + myAddress.sin_addr.s_addr = INADDR_ANY; + myAddress.sin_port = 0; + memset (myAddress.sin_zero, '\0', sizeof myAddress.sin_zero); + if (bind (LogFd, (struct sockaddr *)&myAddress, sizeof (myAddress)) < 0) { + close (LogFd); + LogFd = -1; + printf ("Can't bind syslog socket: %d\n", errno); + return; + } + + /* + * Create the mutex + */ + sc = rtems_semaphore_create (rtems_build_name('s', 'L', 'o', 'g'), + 1, + RTEMS_PRIORITY | + RTEMS_BINARY_SEMAPHORE | + RTEMS_INHERIT_PRIORITY | + RTEMS_NO_PRIORITY_CEILING | + RTEMS_LOCAL, + 0, + &LogSemaphore); + if (sc != RTEMS_SUCCESSFUL) { + printf ("Can't create syslog semaphore: %d\n", sc); + close (LogFd); + LogFd = -1; + } +} + +void +closelog(void) +{ + if (LogFd >= 0) { + close (LogFd); + LogFd = -1; + rtems_semaphore_delete (LogSemaphore); + } +} + +int +setlogmask (int pmask) +{ + int omask; + + omask = LogMask; + if (pmask != 0) + LogMask = pmask; + return (omask); +} diff --git a/rtemsbsd/src/rtems-bsd-pci_bus.c b/rtemsbsd/src/rtems-bsd-pci_bus.c deleted file mode 100644 index 62cd96c1..00000000 --- a/rtemsbsd/src/rtems-bsd-pci_bus.c +++ /dev/null @@ -1,71 +0,0 @@ -#include <freebsd/machine/rtems-bsd-config.h> - -/** - * @file - * - * @ingroup rtems_bsd_rtems - * - * @brief This file contains methods that are rtems specific implementation - * of methods in pci_bus.c. - */ - -/* - * COPYRIGHT (c) 2012. On-Line Applications Research Corporation (OAR). - * 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. - */ - -#include <freebsd/sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <freebsd/local/opt_cpu.h> - -#include <freebsd/sys/param.h> -#include <freebsd/sys/systm.h> -#include <freebsd/sys/bus.h> -#include <freebsd/sys/kernel.h> - -#include <freebsd/dev/pci/pcivar.h> -#include <freebsd/dev/pci/pcireg.h> -#include <freebsd/dev/pci/pcib_private.h> -#include <freebsd/machine/resource.h> - -#include <freebsd/local/pcib_if.h> -#include <rtems/pci.h> -#include <freebsd/machine/bus.h> - -int -pcibios_pcib_route_interrupt(device_t pcib, device_t dev, int pin) -{ - int bus; - int slot; - int func; - uint8_t irq; - - bus = pci_get_bus(dev); - slot = pci_get_slot(dev); - func = pci_get_function(dev); - - pci_read_config_byte(bus, slot, func, PCI_INTERRUPT_LINE, &irq); - return irq; -} diff --git a/rtemsbsd/dev/usb/controller/ehci_mpc83xx.c b/rtemsbsd/sys/dev/usb/controller/ehci_mpc83xx.c index 88952e5f..88952e5f 100644 --- a/rtemsbsd/dev/usb/controller/ehci_mpc83xx.c +++ b/rtemsbsd/sys/dev/usb/controller/ehci_mpc83xx.c diff --git a/rtemsbsd/dev/usb/controller/ohci_lpc24xx.c b/rtemsbsd/sys/dev/usb/controller/ohci_lpc24xx.c index dc32510c..dc32510c 100644 --- a/rtemsbsd/dev/usb/controller/ohci_lpc24xx.c +++ b/rtemsbsd/sys/dev/usb/controller/ohci_lpc24xx.c diff --git a/rtemsbsd/dev/usb/controller/ohci_lpc32xx.c b/rtemsbsd/sys/dev/usb/controller/ohci_lpc32xx.c index 9c7e8efb..9c7e8efb 100644 --- a/rtemsbsd/dev/usb/controller/ohci_lpc32xx.c +++ b/rtemsbsd/sys/dev/usb/controller/ohci_lpc32xx.c |