USBX User Guide
USBX User Guide
User Guide
Contents
1 Introduction to USBX
1
USBX Features 12
Product Highlights 14
11
Host Considerations 18
Computer Type 18
Download Interfaces 18
Debugging Tools 18
Required Hard Disk Space 18
Target Considerations 18
Product Distribution 19
USBX Installation 20
Configuration Options 21
1
1
17
User Guide
Execution Overview 34
Initialization 35
Application Interface Calls 35
USB Host Stack APIs 35
USB Host Class APIs 36
Root Hub 36
Hub Class 36
Topology Manager 37
USBX APIs 39
Host Controller 39
Root Hub 39
Power Management 40
Endpoints 40
Transfers 40
USB Device Framework 40
Device Descriptors 43
Configuration Descriptors 48
Interface Descriptors 52
Endpoint Descriptors 56
String Descriptors 61
Functional Descriptors 62
USBX Device Descriptor Framework in Memory 62
User Guide
133
65
Contents
177
B USBX Constants
C USBX Data Types
189
229
D Language Identifiers
247
Index
User Guide
257
Organization
Chapter 1
Contains an introduction to
USBX.
Chapter 2
Chapter 3
Chapter 4
Chapter 5
User Guide
Chapter 6
Appendix A
Contains supplementary
information about the USB
device and DPUMP classes.
Appendix B
Appendix C
Appendix D
Index
Guide Conventions
Italics
Boldface
User Guide
ULONG
VOID
CHAR
Latest Product
Information
Support
engineers
858.613.6640
Support fax
858.521.4259
Support email
Web page
http://www.expresslogic.com
10
What We Need
From You
A detailed description of any changes to the application and/or USBX that preceded the problem.
Where to Send
Comments About
This Guide
User Guide
CHAPTER
Introduction to USBX
USBX is a full-featured USB stack for deeply
embedded applications. This chapter introduces
USBX, describing its applications and benefits:
1
USBX Features 12
Product Highlights 14
User Guide
12
USBX Features
USBX supports the two existing USB specifications:
1.1 and 2.0. It is designed to be scalable and will
accommodate simple USB topologies with only one
connected device as well as complex topologies with
multiple devices and cascading hubs. USBX
supports all the data transfer types of the USB
protocols: control, bulk, interrupt, and isochronous.
USBX supports both the host side and the device
side. Each side is comprised of three layers:
Controller layer
Stack layer
Class layer
User Guide
13
Host Stack
Device Stack
Host Controller
Driver
Device Controller
Driver
Host Controller
Device Controller
Host side
Device side
Hardware
Class Driver
Software
Class Driver
14
Product Highlights
USB Software
Scheduler
User Guide
15
Complete USB
Device Framework
Support
Easy-to-use APIs
16
Introduction to USBX
User Guide
CHAPTER
Host Considerations 18
Computer Type 18
Download Interfaces 18
Debugging Tools 18
Required Hard Disk Space 18
Target Considerations 18
Product Distribution 19
USBX Installation 20
Configuration Options 21
1
1
User Guide
18
Host Considerations
Computer Type
Download
Interfaces
Debugging Tools
Required Hard
Disk Space
Target
Considerations
User Guide
19
Product Distribution
Two USBX packages are availablestandard and
premium. The standard package includes minimal
source code, while the premium package contains
the complete USBX source code. Either package is
shipped on a single CD.
The contents of the distribution CD depends on the
target processor, development tools, and the USBX
package. Following is a list of the important files
common to most product distributions:
readme_usbx.txt
ux_api.h
20
ux_port.h
ux.lib
demo_usbx.c
USBX Installation
Installation of USBX is straightforward. The following
general instructions apply to virtually any installation.
However, the readme_usbx.txt file should be
examined for changes specific to the actual
development tool environment.
Step 1:
Step 2:
2:
Step
Step 3:
Step 4:
Step 5:
User Guide
Step 6:
Step 7:
Step 8:
21
Configuration Options
There are several configuration options for building
the USBX library. All options are located in the
ux_port.h file. The list below details each
configuration option. Additional development tool
options are described in the readme_usbx.txt file
supplied on the distribution disk.
UX_PERIODIC_RATE
This value represents how many
ticks per seconds for a specific
hardware platform. The default is
1000 indicating 1 tick per
millisecond.
UX_MAX_CLASSES
This value is the maximum
number of classes that can be
loaded by USBX. This value
represents the class container
and not the number of instances
of a class. For instance, if a
particular implementation of
USBX needs the hub class, the
22
UX_MAX_DEVICES
This value represents the
maximum number of devices
that can be attached to the USB.
Normally, the theoretical
maximum number on a single
USB is 127 devices. This value
can be scaled down to conserve
memory. Note that this value
represents the total number of
devices regardless of the
User Guide
23
UX_SLAVE_REQUEST_DATA_MAX_LENGTH
This value represents the
maximum number of bytes
received on a bulk endpoint in
the device stack. The default is
4096 bytes but can be reduced
in memory constraint
environments.
24
usbx
usbx_device_classes
usbx_host_classes
core host stack
core device stack
simulator controller
simulator classes
usbx_device_controllers
usbx_host_controllers
usbx_examples
usbx_docs
User Guide
Atmel 91RM
Philips ISP1161/1181
Freescale MCF5329
PPC440EP/EPX
OKI ML6965
EHCI controller
OHCI controller
Philips 1161
usbx.pdf document
25
Initialization of
USBX resources
File Content
ux_host_class_audio
ux_host_class_storage
ux_host_class_hid
ux_host_class_hub
ux_host_class_printer
ux_dpump
ux_host_stack
ux_hcd
ux_device_stack
ux_device_class_storage
ux_device_class_dpump
ux_dcd
ux_utility
26
UINT
_ux_system_initialize(VOID *regular_memory_pool_start,
ULONG regular_memory_size,
VOID *cache_safe_memory_pool_start,
ULONG cache safe memory size)
:
:
:
:
User Guide
27
hcd_initialize_function
hcd_param1
hcd_param2
ux_ohci_initialize
0x0a
28
*/
User Guide
29
where
"ux_host_class_hub"
where
class_name
class_entry_address
Definition of USB
Device Controller
30
ULONG dcd_irq
ULONG dcd_vbus_address
User Guide
31
*/
/* Initialize the storage class parameters for reading/writing to the Flash Disk. */
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class_storage_media_last_lba
= 0x1e6bfe;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class_storage_media_block_length
= 512;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class_storage_media_type
= 0;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class_storage_media_removable_flag
= 0x80;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class_storage_media_read
= tx_demo_thread_flash_media_read;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class_storage_media_write
= tx_demo_thread_flash_media_write;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class_storage_media_status
= tx_demo_thread_flash_media_status;
/* Initialize the device storage class. The class is connected with interface 0 */
status = _ux_device_stack_class_register(_ux_system_slave_class_storage_name,
_ux_device_class_storage_entry,
_ux_device_class_storage_thread,0,
(VOID *)&storage_parameter);
/* Register the OKI USB device controllers available in this system */
status = ux_dcd_ml6965_initialize(0x7BB00000, 0, 0xB7A00000);
/* If status equals UX_SUCCESS, registration was successful. */
Troubleshooting
32
USBX Version ID
User Guide
CHAPTER
3
3
Functional Components of
USBX Host Stack
This chapter contains a description of the highperformance USBX embedded USB host stack from a
functional perspective. This includes the following:
1
Execution Overview 34
Initialization 35
Application Interface Calls 35
USB Host Stack APIs 35
USB Host Class APIs 36
Root Hub 36
Hub Class 36
Topology Manager 37
USBX APIs 39
Host Controller 39
Root Hub 39
Power Management 40
Endpoints 40
Transfers 40
USB Device Framework 40
Device Descriptors 43
Configuration Descriptors 48
Interface Descriptors 52
Endpoint Descriptors 56
String Descriptors 61
Functional Descriptors 62
USBX Device Descriptor in Memory 62
User Guide
34
Execution Overview
The following illustrates the USBX host stack
structure:
Keyboard
Client
Isochronous
Classes
Hub Class
Asynchronous
Classes
Mouse
Client
HID Class
USB Stack
EHCI
OHCI
Software
Scheduler
Controller
Driver
User Guide
Remote
Control
Client
Initialization
35
Application
Interface Calls
36
Root Hub
Each host controller instance has one or more USB
root hubs. The number of root hubs is either
determined by the nature of the controller or can be
retrieved by reading specific registers from the
controller.
Hub Class
The hub class drives the USB hubs. A USB hub can
either be a standalone hub or a part of a compound
device such as a keyboard or a monitor. A hub can
be self powered or bus powered. Bus-powered hubs
have a maximum of four downstream ports and can
only allow for the connection of devices that are
either self powered or bus-powered devices that use
less than 100mA of power. Hubs can be cascaded.
Up to five hubs can be connected to one another.
User Guide
37
Topology Manager
The USB stack topology thread is activated when a
new device is connected or when a device has been
disconnected. Either the root hub or a regular hub
can accept device connections. After a device has
been connected to the USB, the topology manager
retrieves the device descriptor. This descriptor
contains the number of possible configurations
available for this device. Most devices have one
configuration only. Some devices operate differently
according to the power available on the port in which
the device is connected. If this is the case, the device
has multiple configurations that can be selected
depending on the available power. After the device is
configured by the topology manager, it is allowed to
draw the amount of power specified in its
configuration descriptor.
38
User Guide
39
USBX APIs
The USB stack exports a certain number of APIs for
the USB classes to interogate the device and make
USB transfers on specific endpoints. These APIs are
described in detail in Chapter 4.
Host Controller
The host controller driver drives a specific type of
USB controller. A USB host controller can have
multiple controllers inside. For instance, certain Intel
PC chipsets contain two UHCI controllers. Some
USB 2.0 controllers contain multiple instances of
OHCI controllers in addition to one instance of the
EHCI controller.
The host controller manages multiple instances of the
same controller only. To drive most USB 2.0 host
controllers, it must initialize both the OCHI controller
and the EHCI controller during USBX initialization.
The host controller is responsible for managing the
following:
Root Hub
Root hub
Power management
Endpoints
Transfers
40
Power
Management
Endpoints
Transfers
User Guide
Device descriptors
Configuration descriptors
Interface descriptors
Endpoint descriptors
41
String descriptors
Functional descriptors
A USB device may have a simple description.
Figure 4 illustrates such a device.
Device
Descriptor
String
Descriptor
Configuration
Descriptor
Interface
Descriptor
Endpoint
Descriptor
42
Device Descriptor
Configuration
Descriptor
Interface
Descriptor
String Descriptor
Configuration
Descriptor
Interface
Descriptor
Interface
Descriptor
Endpoint
Descriptor
Endpoint
Descriptor
Endpoint
Descriptor
Endpoint
Descriptor
Endpoint
Descriptor
Endpoint
Descriptor
Endpoint
Descriptor
Functional
Descriptor
Functional
Descriptor
Functional
Descriptor
User Guide
43
Device
Descriptors
Offset
Field
Size
Value
Description
BLength
Number
bDescriptorType
Constant
bcdUSB
BCD
44
bDeviceClass
Class
bDeviceSubClass
User Guide
SubClass
bDeviceProtocol
Protocol
45
bMaxPacketSize0
Number
idVendor
ID
10
idProduct
ID
12
bcdDevice
BCD
14
iManufacturer
Index
15
iProduct
Index
16
iSerialNumber
Index
17
bNumConfigurations
Number
Number of possible
configurations
46
User Guide
47
Variable Description
ux_device_handle
ux_device_type
Device type.
ux_device_state
ux_device_address
ux_device_speed
ux_device_port_location
ux_device_max_power
ux_device_power_source
ux_device_current_configuration
ux_device_parent
ux_device_class
ux_device_class_instance
ux_device_hcd
48
ux_device_first_configuration
ux_device_next_device
ux_device_descriptor
ux_device_control_endpoint
Configuration
Descriptors
User Guide
49
Field
Size
Value
Description
bLength
Number
bDescriptorType
Constant
CONFIGURATION
wTotalLength
Number
bNumInterfaces
Number
bConfigurationValue
Number
iConfiguration
Index
50
bMAttributes
Bitmap
Configuration characteristics
D7 Bus Powered
D6 Self Powered
D5 Remote Wakeup
D4..0 Reserved (reset to 0)
A device configuration that uses
power from the bus and a local
source sets both D7 and D6. The
actual power source at runtime
may be determined using the Get
Status device request. If a device
configuration supports remote
wakeup, D5 is set to 1.
MaxPower
mA
User Guide
51
Variable Description
ux_configuration_handle
ux_configuration_state
ux_configuration_descriptor
ux_configuration_first_interface
52
ux_configuration_next_configuration
ux_configuration_device
Interface
Descriptors
User Guide
53
Field
Size
Value
Descriptor
bLength
Number
bDescriptorType
Constant
bInterfaceNumber
Number
bAltenateSetting
Number
54
bNumEndpoints
Number
bInterfaceClass
Class
bInterfaceSubClass
SubClass
bInterfaceProtocol
Protocol
iInterface
Index
User Guide
55
Variable Description
ux_interface_handle
ux_interface_state
ux_interface_descriptor
ux_interface_class
56
ux_interface_class_instance
ux_interface_first_endpoint
ux_interface_next_interface
ux_interface_configuration
Endpoint
Descriptors
Offset
Field
Size
Value
Description
bLength
Number
bDescriptorType
Constant
User Guide
bEndpointAddress
Endpoint
57
bmAttributes
Bitmap
58
wMaxPacketSize
Number
User Guide
bInterval
Number
59
60
Variable Description
ux_endpoint_handle
ux_endpoint_state
ux_endpoint_ed
ux_endpoint_descriptor
ux_endpoint_next_endpoint
ux_endpoint_interface
User Guide
61
ux_endpoint_device
ux_endpoint_transfer request
String Descriptors
Offset
Field
Size
Value
Description
bLength
N+2
bDescriptorType
Constant
wLANGID[0]
Number
LANGID code 0
..
..
wLANGID[n]
Number
LANGID code n
62
Field
Size
Value
Description
bLength
Number
bDescriptorType
Constant
bString
Number
Functional
Descriptors
Functional descriptors are also known as classspecific descriptors. They normally use the same
basic structures as generic descriptors and allow for
additional information to be available to the class. For
example, in the case of the USB audio speaker, class
specific descriptors allow the audio class to retrieve
for each alternate setting the type of audio frequency
supported.
USBX Device
Descriptor
Framework in
Memory
User Guide
63
Device
Container
ux_device_next_device
Device
Descriptor
ux_device_first_configuration
Configuration
Container
Device
Descriptor
Configuration
Container
ux_configuration_next_configuration
Configuration
Descriptor
Configuration
Descriptor
ux_configuration_first_interface
Interface
Container
(Alternate
Setting 0)
Interface
Container
ux_interface_next_interface
ux_interface_next_interface
Interface
Container
(Alternate
Setting 1)
Interface
Descriptor
Interface
Descriptor
ux_interface_first_endpoint
ux_interface_first_endpoint
Endpoint
Container
ux_endpoint_next_endpoint
Endpoint
Descriptor
Endpoint
Container
Endpoint
Container
Endpoint
Descriptor
ux_endpoint_next_endpoint
Endpoint
Container
Endpoint
Descriptor
Endpoint
Descriptor
64
User Guide
CHAPTER
44
User Guide
66
ux_host_stack_interface_setting_select
Selects alternative setting for interface 94
ux_host_stack_transfer_request_abort
Abort pending transfer request 96
ux_host_stack_transfer_request
Request USB transfer 98
ux_host_create_printer_read
Read from printer interface 100
ux_host_class_printer_write
Write to printer interface 102
ux_host_class_printer_soft_reset
Perform a soft reset to the printer 104
ux_host_class_printer_status_get
Get printer status 106
ux_host_class_audio_read
Read from audio interface 108
ux_host_class_audio_write
Read from audio interface 110
ux_host_class_audio_control_get
Get specific control from audio control interface 112
ux_host_class_audio_control_value_set
Set specific control to audio control interface 114
ux_host_class_audio_streaming_sampling_set
Set alternate interface of audio streaming interface 116
ux_host_class_audio_streaming_sampling_get
Get sampling settings of audio streaming interface 118
ux_host_class_hid_client_register
Register HID client to HID class 120
ux_host_class_hid_report_callback_register
Register callback from HID class 122
ux_host_class_hid_periodic_report_start
Start periodic endpoint for HID class instance 124
ux_host_class_hid_periodic_report_stop
Stop periodic endpoint for HID class instance 126
ux_host_class_hid_report_get
Get report from HID class instance 128
ux_host_class_hid_report_set
Send a report 130
User Guide
67
68
ux_host_stack_initialize
Initialize USBX host operation
USB Host Stack Initialize
Prototype
UINT
Description
This function will initialize the USB host stack. The supplied memory area
will be setup for USBX internal use. If UX_SUCCESS is returned, USBX
is ready for host controller and class registration.
Input Parameters
system_change_function Pointer to optional callback routine for
notifying application of device changes.
Return Values
UX_SUCCESS
User Guide
(0x00)
Successful initialization.
69
Example
UINT
status;
/* Initialize USBX for host operation, without notification.
status = ux_host_stack_initialize(UX_NULL);
/* If status equals UX_SUCCESS, USBX has been successfully
initialized for host operation. */
*/
70
ux_host_stack_endpoint_transfer_abort
Abort transactions attached to transfer request for endpoint
Host Stack Abort Transfer Request
Prototype
UINT ux_host_stack_endpoint_transfer_abort(UX_ENDPOINT *endpoint)
Description
This function will cancel all transactions active or pending for a specific
transfer request attached to an endpoint. If the transfer request has a
callback function attached, the callback function will be called with the
UX_TRANSACTION_ABORTED status.
Input Parameters
endpoint
Pointer to an endpoint.
Return Values
UX_SUCCESS
(0x00)
No errors.
UX_ENDPOINT_HANDLE_UNKNOWN
(0x53)
Endpoint handle not valid.
User Guide
71
Example
UX_HOST_CLASS_PRINTER
UINT
status;
*printer;
72
ux_host_stack_class_get
Get pointer to a class container
Host Stack Class
Prototype
UINT ux_host_stack_class_get(UCHAR *class_name,UX_CLASS **class)
Description
This function returns a pointer to the class container. A class needs to
obtain its container from the USB stack to search for instances when a
class or an application wants to open a device.
Input Parameters
class_name
class
Return Values
UX_SUCCESS
(0x00)
UX_CLASS_UNKNOWN
(0x59)
User Guide
73
Example
UX_HOST_CLASS
UINT
*printer_container;
status;
74
ux_host_stack_class_register
Register USB class to USB stack
Host Stack Class
Prototype
UINT ux_host_stack_class_register(CHAR_PTR class_name,
UINT (*class_entry_address)(struct UX_CLASS_COMMAND_STRUCT *))
Description
This function registers a USB class to the USB stack. The class must specify an
entry point for the USB stack to send commands such as :
UX_CLASS_COMMAND_QUERY
UX_CLASS_COMMAND_ACTIVATE
UX_CLASS_COMMAND_DESTROY
Input Parameters
class_name
User Guide
75
Return Values
UX_SUCCESS
(0x00)
UX_MEMORY_INSUFFICIENT
(0x12)
UX_CLASS_ALREADY_INSTALLED
(0x58)
Example
UINT
status;
/* Register all the classes for this implementation. */
status = ux_host_stack_class_register("ux_host_class_hub",
ux_host_class_hub_entry);
/* If status equals UX_SUCCESS, the class was successfully
installed. */
76
ux_host_stack_class_instance_create
Create new class instance for class container
Host Stack Class
Prototype
UINT
Description
This function creates a new class instance for a class container. The
instance of a class is not contained in the class code to reduce the class
complexity. Rather, each class instance is attached to class container
located in the main stack.
Input Parameters
class
class_instance
Return Values
UX_SUCCESS
User Guide
(0x00)
77
Example
UINT
UX_HOST_CLASS_PRINTER
status;
*printer;
78
ux_host_stack_class_instance_destroy
Destroy class instance for class container
Host Stack Class
Prototype
UINT ux_host_stack_class_instance_destroy(UX_HOST_CLASS *class,VOID *class_instance)
Description
This function destroys a class instance for a class container.
Input Parameters
class
class_instance
Return Values
UX_SUCCESS
(0x00)
UX_CLASS_INSTANCE_UNKNOWN
(0x5b)
User Guide
79
Example
UINT
UX_HOST_CLASS_PRINTER
status;
*printer;
80
ux_host_stack_class_instance_get
Get class instance pointer for specific class
Host Stack Class
Prototype
UINT ux_host_stack_class_instance_get(UX_HOST_CLASS *class,UINT
class_index, VOID **class_instance)
Description
This function returns a class instance pointer for a specific class. The
instance of a class is not contained in the class code to reduce the class
complexity. Rather, each class instance is attached to the class container.
This function is used to search for class instances within a class
container.
Input Parameters
class
class_index
class_instance
Return Values
UX_SUCCESS
(0x00)
UX_HOST_CLASS_INSTANCE_UNKNOWN
(0x5b)
No more classes instances
attached to the class container.
User Guide
81
Example
UINT
UX_HOST_CLASS_PRINTER
status
*printer;
82
ux_host_stack_device_configuration_get
Get a pointer to a configuration container
Host Stack Device
Prototype
UINT ux_host_stack_configuration_get(UX_DEVICE *device,
UINT configuration_index,
UX_CONFIGURATION **configuration)
Description
This function returns a configuration container based on a device handle
and a configuration index.
Input Parameters
device
configuration_index
configuration
Return Values
UX_SUCCESS
(0x00)
UX_DEVICE_HANDLE_UNKNOWN
(0x50)
Configuration found.
Device container does not exist.
UX_CONFIGURATION_HANDLE_UNKNOWN
(0x51)
Configuration handle for index
does not exist.
User Guide
83
Example
UINT
UX_HOST_CLASS_PRINTER
status;
*printer;
84
ux_host_stack_device_configuration_select
Select specific configuration for a device
Host Stack Device
Prototype
UINT ux_host_stack_configuration_select(UX_CONFIGURATION *configuration)
Description
This function selects a specific configuration for a device. When this
configuration is set to the device, by default, each device interface and its
associated alternate setting 0 are activated on the device. If the device/
interface class needs to change the setting of a particular interface, it
issues a ux_host_stack_interface_setting_select service call.
Input Parameters
configuration
Return Values
UX_SUCCESS
(0x00)
Configuration selection
successful.
UX_CONFIGURATION_HANDLE_UNKNOWN
(0x51)
Configuration handle does not
exist.
UX_OVER_CURRENT_CONDITION
(0x43)
User Guide
85
Example
UINT
UX_HOST_CLASS_PRINTER
status;
*printer;
86
ux_host_stack_device_get
Get pointer to a device container
Host Stack Device
Prototype
UINT ux_host_stack_device_get(ULONG device_index,UX_DEVICE **device)
Description
This function returns a device container based on its index. The device
index starts with 0.
Input Parameters
device_index
device
Return Values
UX_SUCCESS
(0x00)
UX_DEVICE_HANDLE_UNKNOWN
(0x50)
User Guide
87
Example
UINT
status;
88
ux_host_stack_interface_endpoint_get
Get endpoint container
Host Stack Interface
Prototype
UINT ux_host_stack_interface_endpoint_get(UX_INTERFACE *interface,
UINT endpoint_index,
UX_ENDPOINT **endpoint)
Description
This function returns an endpoint container based on the interface handle
and an endpoint index. It is assumed that the alternate setting for the
interface has been selected or the default setting is being used prior to the
endpoint(s) being searched.
Input Parameters
interface
endpoint_index
endpoint
Return Values
UX_SUCCESS
(0x00)
UX_INTERFACE_HANDLE_UNKNOWN
(0x52)
UX_ENDPOINT_HANDLE_UNKNOWN
(0x53)
User Guide
89
Example
UINT
UX_HOST_CLASS_PRINTER
status;
*printer;
for(endpoint_index = 0;
endpoint_index < printer -> printer_interface ->
ux_interface_descriptor.bNumEndpoints;
endpoint_index++)
{
status = ux_host_stack_interface_endpoint_get(printer ->printer_interface,
endpoint_index, &endpoint);
if (status == UX_SUCCESS)
{
/* Check if endpoint is bulk and OUT. */
if (((endpoint -> ux_endpoint_descriptor.bEndpointAddress &
UX_ENDPOINT_DIRECTION) == UX_ENDPOINT_OUT) &&
((endpoint -> ux_endpoint_descriptor.bmAttributes &
UX_MASK_ENDPOINT_TYPE) == UX_BULK_ENDPOINT))
return(UX_SUCCESS)
}
}
90
ux_host_stack_hcd_register
Register USB controller to USB stack
Host Stack HCD
Prototype
UINT ux_host_stack_hcd_register(CHAR_PTR hcd_name,
UINT (*hcd_function)(struct UX_HCD_STRUCT *),
ULONG hcd_param1,
ULONG hcd_param2)
Description
This function registers a USB controller to the USB stack. It mainly
allocates the memory used by this controller and passes the initialization
command to the controller.
Input Parameters
hcd_name
hcd_function
hcd_param1
hcd_param2
User Guide
91
Return Values
UX_SUCCESS
(0x00)
Controller initialized.
UX_MEMORY_INSUFFICIENT
(0x12)
UX_PORT_RESET_FAILED (0x31)
UX_CONTROLLER_INIT_FAILED
(0x32)
Example
UINT
status;
/* Initialize an OHCI controller mapped at address 0xd0000 and using IRQ 10. */
status = ux_host_stack_hcd_register("ux_hcd_ohci", ux_hcd_ohci_initialize,
0xd0000, 0x0a);
/* If status equals UX_SUCCESS, the controller was initialized properly. */
/* Note that the application must also setup a call to the interrupt
handler for the OHCI controller. The function for OHCI is called
_ux_hch_ohci_interrupt_handler. */
92
ux_host_stack_configuration_interface_get
Get interface container pointer
Host Stack Configuration
Prototype
UINT ux_host_stack_configuration_interface_get UX_CONFIGURATION *configuration,
UINT interface_index,
UINT alternate_setting_index,
UX_INTERFACE **interface)
Description
This function returns an interface container based on a configuration handle, an
interface index, and an alternate setting index.
Input Parameters
configuration
interface_index
alternate_setting_index
interface
Return Values
UX_SUCCESS
(0x00)
UX_CONFIGURATION_HANDLE_UNKNOWN
(0x51)
Configuration does not exist.
UX_INTERFACE_HANDLE_UNKNOWN
(0x52)
Interface does not exist.
User Guide
93
Example
UINT
status;
/* Search for the default alternate setting on the first interface for the
printer. */
status = ux_host_stack_configuration_interface_get(configuration, 0, 0,
&printer -> printer_interface);
/* If status equals UX_SUCCESS, the operation was successful. */
94
ux_host_stack_interface_setting_select
Selects alternative setting for interface
Host Stack Configuration
Prototype
UINT ux_host_stack_configuration_interface_setting_select (UX_INTERFACE *interfac
Description
Input Parameters
interface
Return Values
UX_SUCCESS
(0x00)
UX_INTERFACE_HANDLE_UNKNOWN
(0x52)
Interface does not exist.
User Guide
95
Example
UINT
status;
96
ux_host_stack_transfer_request_abort
Abort pending transfer request
Host Stack Transfer
Prototype
UINT
Description
This function aborts a previously submitted pending transfer request. This
function only cancels a specific transfer request. The call back to the
function will have the UX_TRANSFER REQUEST_STATUS_ABORT
status.
Input Parameters
transfer request
Return Values
UX_SUCCESS
User Guide
(0x00)
97
Example
UINT
status;
98
ux_host_stack_transfer_request
Request USB transfer
Host Stack Transfer
Prototype
UINT
Description
This function performs a USB transaction. On entry the transfer request
gives the endpoint pipe selected for this transaction and the parameters
associated with the transfer (data payload, length of transaction). For
control pipe, the transaction is blocking and will only return when the three
phases of the control transfer have been completed or if there is a
previous error. For other pipes, the USB stack will schedule the
transaction on the USB but will not wait for its completion. Each transfer
request for non-blocking pipes has to specify a completion routine
handler.
When the function call returns, the status of the transfer request should be
examined as it contains the result of the transaction.
Input Parameters
transfer_request
Return Values
UX_SUCCESS
(0x00)
UX_MEMORY_INSUFFICIENT
(0x12)
User Guide
99
Example
UINT
status;
100
ux_host_create_printer_read
Read from printer interface
Host Class Printer
Prototype
UINT
Description
This function reads from the printer interface. The call is blocking and only
returns when there is either an error or when the transfer is complete. A
read is allowed only on bi-directional printers.
Input Parameters
printer
data_pointer
requested_length
Length to be received.
actual_length
User Guide
101
Return Values
UX_SUCCESS
(0x00)
UX_FUNCTION_NOT_SUPPORTED
(0x54)
UX_TRANSFER_TIMEOUT (0x5c)
Example
UINT
status;
102
ux_host_class_printer_write
Write to printer interface
Host Class Printer
Prototype
UINT
ux_host_class_printer_write(UX_HOST_CLASS_PRINTER *printer,
UCHAR *data_pointer,
ULONG requested_length,
ULONG *actual_length)
Description
This function writes to the printer interface. The call is blocking and only
returns when there is either an error or when the transfer is complete.
Input Parameters
printer
data_pointer
requested_length
actual_length
Return Values
UX_SUCCESS
(0x00)
UX_TRANSFER_TIMEOUT (0x5c)
User Guide
103
Example
UINT
status;
104
ux_host_class_printer_soft_reset
Perform a soft reset to the printer
Host Class Printer
Prototype
UINT
ux_host_class_printer_soft_reset(UX_HOST_CLASS_PRINTER *printer)
Description
This function performs a soft reset to the printer.
Input Parameters
printer
Return Values
UX_SUCCESS
(0x00)
UX_TRANSFER_TIMEOUT
(0x05c)
User Guide
105
Example
UINT
status;
106
ux_host_class_printer_status_get
Get printer status
Host Class Printer
Prototype
UINT ux_host_class_printer_status_get(UX_HOST_CLASS_PRINTER *printer,
ULONG *printer_status)
Description
This function obtains the printer status. Printer status is similar to the LPT
status (1284 standard).
Input Parameters
printer
printer_status
Return Values
UX_SUCCESS
(0x00)
UX_MEMORY_INSUFFICIENT
(0x12)
UX_TRANSFER_TIMEOUT (0x5c)
User Guide
107
Example
UINT
status;
108
ux_host_class_audio_read
Read from audio interface
Host Class Audio
Prototype
UINT
ux_host_class_audio_read(UX_HOST_CLASS_AUDIO *audio,
UX_HOST_CLASS_AUDIO_TRANSFER_REQUEST
*audio_transfer_request)
Description
This function reads from the audio interface. The call is non-blocking. The
application must ensure that the appropriate alternate setting has been
selected for the audio streaming interface.
Input Parameters
audio
audio_transfer_request
Return Values
UX_SUCCESS
(0x00)
UX_FUNCTION_NOT_SUPPORTED
(0x54)
User Guide
109
Example
/* The following example reads from the audio interface. */
audio_transfer_request.ux_host_class_audio_transfer_request_completion_function =
tx_audio_transfer_completion_function;
audio_transfer_request.ux_host_class_audio_transfer_request_class_instance = audio;
audio_transfer_request.ux_host_class_audio_transfer_request_next_audio_audio_transfer_request =
UX_NULL;
audio_transfer_request. ux_host_class_audio_transfer_request_data_pointer = audio_buffer;
audio_transfer_request.ux_host_class_audio_transfer_request_requested_length =
requested_length;
audio_transfer_request.ux_host_class_audio_transfer_request_packet_length = AUDIO_FRAME_LENGTH;
status = ux_host_class_audio_read(audio, audio_transfer_request);
/* If status equals UX_SUCCESS, the operation was successful. */
110
ux_host_class_audio_write
Read from audio interface
Host Class Audio
Prototype
UINT
ux_host_class_audio_write(UX_HOST_CLASS_AUDIO *audio,
UX_HOST_CLASS_AUDIO_TRANSFER_REQUEST *audio_transfer_request)
Description
This function writes to the audio interface. The call is non-blocking. The
application must ensure that the appropriate alternate setting has been
selected for the audio streaming interface.
Input Parameters
audio
audio_transfer_request
Return Values
UX_SUCCESS
(0x00)
UX_FUNCTION_NOT_SUPPORTED
(0x54)
UX_HOST_CLASS_AUDIO_WRONG_INTERFACE
(0x81)
Interface incorrect.
User Guide
111
Example
UINT
status;
112
ux_host_class_audio_control_get
Get specific control from audio control interface
Host Class Audio
Prototype
UINT
ux_host_class_audio_control_get(UX_HOST_CLASS_AUDIO *audio,
UX_HOST_CLASS_AUDIO_CONTROL *audio_control)
Description
This function reads a specific control from the audio control interface.
Input Parameters
audio
audio_control
Return Values
UX_SUCCESS
(0x00)
UX_FUNCTION_NOT_SUPPORTED
(0x54)
UX_HOST_CLASS_AUDIO_WRONG_INTERFACE
(0x81)
User Guide
Interface incorrect.
113
Example
UINT
status;
/* The following example reads the volume control from a stereo USB
speaker. */
UX_HOST_CLASS_AUDIO_CONTROLaudio_control;
audio_control. ux_host_class_audio_control_channel = 1;
audio_control. ux_host_class_audio_control =
UX_HOST_CLASS_AUDIO_VOLUME_CONTROL;
status = ux_host_class_audio_control_get(audio, &audio_control);
/* If status equals UX_SUCCESS, the operation was successful. */
audio_control. ux_host_class_audio_control_channel = 2;
audio_control. ux_host_class_audio_control =
UX_HOST_CLASS_AUDIO_VOLUME_CONTROL;
status = ux_host_class_audio_control_get(audio, &audio_control);
/* If status equals UX_SUCCESS, the operation was successful. */
114
ux_host_class_audio_control_value_set
Set specific control to audio control interface
Host Class Audio
Prototype
UINT
ux_host_class_audio_control_value_set(UX_HOST_CLASS_AUDIO *audio,
UX_HOST_CLASS_AUDIO_CONTROL *audio_control)
Description
This function sets a specific control to the audio control interface.
Input Parameters
audio
audio_control
Return Values
UX_SUCCESS
(0x00)
UX_FUNCTION_NOT_SUPPORTED
(0x54)
UX_HOST_CLASS_AUDIO_WRONG_INTERFACE
(0x81)
User Guide
Interface incorrect.
115
Example
/* The following example sets the volume control of a stereo USB speaker. */
UX_HOST_CLASS_AUDIO_CONTROL
UINT
status;
audio_control;
audio_control. ux_host_class_audio_control_channel = 1;
audio_control. ux_host_class_audio_control = UX_HOST_CLASS_AUDIO_VOLUME_CONTROL;
audio_control. ux_host_class_audio_control_cur = 0xf000;
status = ux_host_class_audio_control_value_set(audio, &audio_control);
/* If status equals UX_SUCCESS, the operation was successful. */
current_volume = audio_control.audio_ control_cur;
audio_control. ux_host_class_audio_control_channel = 2;
audio_control. ux_host_class_audio_control = UX_HOST_CLASS_AUDIO_VOLUME_CONTROL;
audio_control. ux_host_class_audio_control_cur = 0xf000;
status = ux_host_class_audio_control_value_set(audio, &audio_control);
/* If status equals UX_SUCCESS, the operation was successful. */
116
ux_host_class_audio_streaming_sampling_set
Set alternate setting interface of audio streaming interface
Host Class Audio
Prototype
UINT
ux_host_class_audio_streaming_sampling_set(UX_HOST_CLASS_AUDIO *audio,
UX_HOST_CLASS_AUDIO_SAMPLING *audio_sampling)
Description
This function sets the appropriate alternate setting interface of the audio streaming
interface according to a specific sampling structure.
Input Parameters
audio
audio_sampling
Return Values
UX_SUCCESS
(0x00)
UX_FUNCTION_NOT_SUPPORTED
(0x54)
UX_HOST_CLASS_AUDIO_WRONG_INTERFACE
(0x81)
Interface incorrect.
UX_NO_ALTERNATE_SETTING
(0x5e)
User Guide
117
Example
/* The following example sets the alternate setting interface of a
stereo
USB speaker. */
UX_HOST_CLASS_AUDIO_SAMPLING
UINT
status;
audio_sampling;
sampling. ux_host_class_audio_sampling_channels = 2;
sampling. ux_host_class_audio_sampling_frequency = AUDIO_FREQUENCY;
sampling. ux_host_class_audio_sampling_resolution = 16;
status = ux_host_class_audio_streaming_sampling_set(audio,
&sampling);
/* If status equals UX_SUCCESS, the operation was successful. */
118
ux_host_class_audio_streaming_sampling_get
Get sampling settings of audio streaming interface
Host Class Audio
Prototype
UINT
ux_host_class_audio_streaming_sampling_get(UX_HOST_CLASS_AUDIO *audio,
UX_HOST_CLASS_AUDIO_SAMPLING_CHARACTERISTICS *audio_sampling)
Description
This function gets, one by one, all the possible sampling settings available in each
of the alternate settings of the audio streaming interface. The first time the function
is used, all the fields in the calling structure pointer must be reset. The function will
return a specific set of streaming values upon return unless the end of the alternate
settings has been reached. When this function is reused, the previous sampling
values will be used to find the next sampling values.
Input Parameters
audio
audio_sampling
Return Values
UX_SUCCESS
(0x00)
UX_FUNCTION_NOT_SUPPORTED
(0x54)
UX_HOST_CLASS_AUDIO_WRONG_INTERFACE
(0x81)
Interface incorrect.
UX_NO_ALTERNATE_SETTING
(0x5e)
User Guide
119
Example
/* The following example gets the sampling values for the first
alternate setting interface of a stereo USB speaker. */
UX_HOST_CLASS_AUDIO_SAMPLING_CHARACTERISTICS
UINT
status;
audio_sampling;
sampling.ux_host_class_audio_sampling_channels=0;
sampling.ux_host_class_audio_sampling_frequency_low=0;
sampling.ux_host_class_audio_sampling_frequency_high=0;
sampling.ux_host_class_audio_sampling_resolution=0;
status = ux_host_class_audio_streaming_sampling_get(audio,
&sampling);
/* If status equals UX_SUCCESS, the operation was successful and
information could be displayed as follows:
printf("Number of channels %d, Resolution %d bits,
frequency range %d-%d\n",
sampling.audio_channels, sampling.audio_resolution,
sampling.audio_frequency_low, sampling.audio_frequency_high);
*/
120
ux_host_class_hid_client_register
Register HID client to HID class
Host Class HID Client
Prototype
UINT ux_host_class_hid_client_register(UCHAR_PTR hid_client_name,
UINT (*hid_client_handler) (
struct UX_HOST_CLASS_HID_CLIENT_COMMAND_STRUCT *))
Description
This function is used to register an HID client to the HID class. The HID class needs
to find a match between an HID device and HID client before requesting data from
this device.
Input Parameters
hid_client_name
hid_client_handler
Return Values
UX_SUCCESS
(0x00)
UX_FUNCTION_NOT_SUPPORTED
(0x54)
UX_HOST_CLASS_ALREADY_INSTALLED
(0x58)
User Guide
121
Example
UINT
status;
122
ux_host_class_hid_report_callback_register
Register callback from HID class
Host Class HID Client
Prototype
UINT
ux_host_class_hid_report_callback_register(UX_HOST_CLASS_HID *hid,
UX_HOST_CLASS_HID_REPORT_CALLBACK *call_back)
Description
This function is used to register a callback from the HID class to the HID client
when a report is received.
Input Parameters
hid
call_back
Return Values
UX_SUCCESS
(0x00)
UX_FUNCTION_NOT_SUPPORTED
(0x54)
UX_HOST_CLASS_HID_REPORT_ERROR
(0x79)
User Guide
123
Example
UINT
status;
124
ux_host_class_hid_periodic_report_start
Start periodic endpoint for HID class instance
Host Class HID Client
Prototype
UINT
ux_host_class_hid_periodic_report_start(UX_HOST_CLASS_HID *hid)
Description
This function is used to start the periodic (interrupt) endpoint for the instance
of the HID class that is bound to this HID client. The HID class cannot start
the periodic endpoint until the HID client is activated and, therefore, it is left
to the HID client to start this endpoint to receive reports.
Input Parameters
hid
Return Values
UX_SUCCESS
(0x00)
UX_FUNCTION_NOT_SUPPORTED
(0x54)
UX_HOST_CLASS_HID_PERIODIC_REPORT_ERROR
(0x7A)
UX_HOST_CLASS_INSTANCE_UNKNOWN
(0x5b)
User Guide
125
Example
UINT
status;
126
ux_host_class_hid_periodic_report_stop
Stop periodic endpoint for HID class instance
Host Class HID Client
Prototype
UINT
ux_host_class_hid_periodic_report_stop(UX_HOST_CLASS_HID *hid)
Description
This function is used to stop the periodic (interrupt) endpoint for the
instance of the HID class that is bound to this HID client. The HID class
cannot stop the periodic endpoint until the HID client is deactivated, all its
resources freed, and, therefore, it is left to the HID client to stop this
endpoint.
Input Parameters
hid
Return Values
UX_SUCCESS
(0x00)
UX_FUNCTION_NOT_SUPPORTED
(0x54)
UX_HOST_CLASS_HID_PERIODIC_REPORT_ERROR
(0x7A)
UX_HOST_CLASS_INSTANCE_UNKNOWN
(0x5b)
User Guide
127
Example
UINT
status;
128
ux_host_class_hid_report_get
Get report from HID class instance
Host Class HID Client
Prototype
UINT
ux_host_class_hid_report_get(UX_HOST_CLASS_HID *hid,
UX_HOST_CLASS_HID_CLIENT_REPORT *client_report)
Description
This function is used to receive a report directly from the device without
relying on the periodic endpoint. This report is coming from the control
endpoint but its treatment is the same as though it were coming on the
periodic endpoint.
Input Parameters
hid
client_report
Return Values
UX_SUCCESS
(0x00)
UX_FUNCTION_NOT_SUPPORTED
(0x54)
UX_HOST_CLASS_HID_REPORT_ERROR
(0x70)
UX_HOST_CLASS_INSTANCE_UNKNOWN
(0x5b)
UX_BUFFER_OVERFLOW (0x5d)
User Guide
129
Example
UX_HOST_CLASS_HID_CLIENT_REPORT
UINT
status;
input_report;
130
ux_host_class_hid_report_set
Send a report
Host Class HID Client
Prototype
UINT
ux_host_class_hid_report_set(UX_HOST_CLASS_HID *hid,
UX_HOST_CLASS_HID_CLIENT_REPORT *client_report)
Description
This function is used to send a report directly to the device.
Input Parameters
hid
client_report
Return Values
UX_SUCCESS
(0x00)
UX_FUNCTION_NOT_SUPPORTED
(0x54)
UX_HOST_CLASS_HID_REPORT_ERROR
(0x70)
UX_HOST_CLASS_INSTANCE_UNKNOWN(
0x5b)
UX_BUFFER_OVERFLOW (0x5d)
User Guide
131
Example
/* The following example illustrates how to send a report. */
UX_HOST_CLASS_HID_CLIENT_REPORT
input_report;
input_report.ux_host_class_hid_client_report = hid_report;
input_report.ux_host_class_hid_client_report_buffer = buffer;
input_report.ux_host_class_hid_client_report_length = length;
input_report.ux_host_class_hid_client_report_flags =
UX_HOST_CLASS_HID_REPORT_INDIVIDUAL_USAGE;
status = ux_host_class_hid_report_set(hid, &input_report);
/* If status equals UX_SUCCESS, the operation was successful. */
132
User Guide
CHAPTER
53
User Guide
134
Execution Overview
USBX for the device is composed of several
components. The following diagram illustrates the
USBX device stack:
Storage Class
CDC Class
Custom Class
VBUS Manager
Initialization
User Guide
135
Application
Interface Calls
Device Framework
The USB device side is responsible for the definition of
the device framework. The device framework is divided
into three categories, as described in the following
sections.
136
Components of
Device Framework
Device Descriptor
Configuration Descriptor
Interface Descriptor
Endpoint Descriptor
User Guide
137
#define DEVICE_FRAMEWORK_LENGTH_HIGH_SPEED 60
UCHAR device_framework_high_speed[] = {
/* Device descriptor */
0x12, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40,
0x0a, 0x07, 0x25, 0x40, 0x01, 0x00, 0x01, 0x02,
0x03, 0x01,
/* Device qualifier descriptor */
0x0a, 0x06, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40,
0x01, 0x00,
/* Configuration descriptor */
0x09, 0x02, 0x20, 0x00, 0x01, 0x01, 0x00, 0xc0,
0x32,
/* Interface descriptor */
0x09, 0x04, 0x00, 0x00, 0x02, 0x08, 0x06, 0x50,
0x00,
/* Endpoint descriptor (Bulk Out) */
0x07, 0x05, 0x01, 0x02, 0x00, 0x02, 0x00,
/* Endpoint descriptor (Bulk In) */
0x07, 0x05, 0x82, 0x02, 0x00, 0x02, 0x00
};
Strings of Device
Framework
138
Device Framework:
0 and 1: Word containing the language ID: 0x0904 for US
2
: Byte containing the index of the descriptor
3
: Byte containing the length of the descriptor string
#define STRING_FRAMEWORK_LENGTH 38
UCHAR string_framework[] = {
/* Manufacturer string descriptor: Index 1 */
0x09, 0x04, 0x01, 0x0c,
0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x20, 0x4c,
0x6f, 0x67, 0x69, 0x63,
/* Product string descriptor: Index 2 */
0x09, 0x04, 0x02, 0x0c,
0x4D, 0x4C, 0x36, 0x39, 0x36, 0x35, 0x30, 0x30,
0x20, 0x53, 0x44, 0x4B,
/* Serial Number string descriptor: Index 3 */
0x09, 0x04, 0x03, 0x04,
0x30, 0x30, 0x30, 0x31
};
User Guide
Languages
Supported by
Device for each
String
139
VBUS Manager
In most USB device designs, VBUS is not part of the
USB Device core but rather connected to an external
GPIO, which monitors the line signal. As a result,
VBUS has to be managed separately from the device
controller driver.
It is up to the application to provide the device
controller with the address of the VBUS IO. VBUS
must be initialized prior to the device controller
initialization.
Depending on the platform specification for
monitoring VBUS, it is possible to let the controller
driver handle VBUS signals after the VBUS IO is
initialized or if this is not possible, the application has
to provide the code for handling VBUS.
140
User Guide
CHAPTER
64
User Guide
142
ux_device_stack_interface_start
Start search for class to own an interface instance 172
ux_device_stack_transfer_request
Request to transfer data to host 174
ux_device_stack_transfer_request_abort
Cancel a transfer request 176
User Guide
143
144
ux_device_stack_alternate_setting_get
Get current alternate setting for interface value
Device Stack
Prototype
UINT ux_device_stack_alternate_setting_get(ULONG interface_value)
Description
This function is used by the USB host to obtain the current alternate
setting for a specific interface value. It is called by the controller driver
when a GET_INTERFACE request is received.
Input Parameters
interface_value
Return Values
UX_SUCCESS
(0x00)
UX_ERROR
(0xFF)
User Guide
145
Example
ULONG
UINT
interface_value;
status;
146
ux_device_stack_alternate_setting_set
Set current alternate setting for interface value
Device Stack
Prototype
UINT ux_device_stack_alternate_setting_set(ULONG interface_value,
ULONG alternate_setting_value)
Description
This function is used by the USB host to set the current alternate setting
for a specific interface value. It is called by the controller driver when a
SET_INTERFACE request is received. When the SET_INTERFACE is
completed, the values of the alternate settings are applied to the class.
Input Parameters
interface_value
alternate_setting_value
Return Values
UX_SUCCESS
(0x00)
UX_INTERFACE_HANDLE_UNKNOWN
UX_ERROR
User Guide
(0x52)
No interface attached.
(0xFF)
147
Example
ULONG
ULONG
interface_value;
alternate_setting_value;
148
ux_device_stack_class_register
Register new USB device class
Device Stack
Prototype
UINT
ux_device_stack_class_register(UCHAR *class_name,
UINT (*class_entry_function)
(struct UX_SLAVE_CLASS_COMMAND_STRUCT *),
VOID (*class_thread_function)(ULONG),
ULONG interface_number,
VOID *parameter)
Description
This function is used by the application to register a new USB device
class. This registration starts a class container and not an instance of the
class. A class should have an active thread and be attached to a specific
interface.
Some classes expect a parameter or parameter list. For instance, the
device storage class would expect the geometry of the storage device it is
trying to emulate. The parameter field is therefore dependent on the class
requirement and can be a value or a pointer to a structure filled with the
class values.
Input Parameters
class_entry_function
class_thread_function
interface_number
parameter
User Guide
149
Return Values
UX_SUCCESS
(0x00)
UX_MEMORY_INSUFFICIENT
UX_THREAD_ERROR
(0x52)
(0xFF)
Example
UINT
status;
150
ux_device_stack_configuration_get
Get current configuration
Device Stack
Prototype
UINT ux_device_stack_configuration_get(VOID)
Description
This function is used by the host to obtain the current configuration running in
the device.
Input Parameters
No input parameters.
Return Values
UX_SUCCESS
User Guide
(0x00)
151
Example
UINT
status;
152
ux_device_stack_configuration_set
Set current configuration
Device Stack
Prototype
UINT ux_device_stack_configuration_set(ULONG configuration_value)
Description
This function is used by the host to set the current configuration running in
the device. Upon reception of this command, the USB device stack will
activate the alternate setting 0 of each interface connected to this
configuration.
Input Parameters
configuration_value
Return Values
UX_SUCCESS
User Guide
(0x00)
153
Example
ULONG
UINT
configuration_value;
status;
154
ux_device_stack_descriptor_send
Send descriptor to host
Device Stack
Prototype
UINT ux_device_stack_descriptor_send(ULONG descriptor_type,
ULONG request_index, ULONG host_length)
Description
This function is used by the device side to return a descriptor to the host.
This descriptor can be a device descriptor, a configuration descriptor, or a
string descriptor.
Input Parameters
descriptor_type
Nature of descriptor:
UX_DEVICE_DESCRIPTOR_ITEM
UX_CONFIGURATION_DESCRIPTOR_ITEM
UX_STRING_DESCRIPTOR_ITEM
UX_DEVICE_QUALIFIER_DESCRIPTOR_ITEM
UX_OTHER_SPEED_DESCRIPTOR_ITEM
request_index
host_length
User Guide
Index of descriptor.
Length required by host.
155
Return Values
UX_SUCCESS
(0x00)
UX_ERROR
(0xFF)
Example
ULONG
ULONG
ULONG
UINT
descriptor_type;
request_index;
host_length;
status;
156
ux_device_stack_disconnect
Disconnect device stack
Device Stack
Prototype
UINT ux_device_stack_disconnect(VOID)
Description
VBUS manager calls this function when there is a device disconnection.
The device stack will inform all classes registered to this device and will
thereafter release all the device resources.
Input Parameters
No input parameters.
Return Values
UX_SUCCESS
User Guide
(0x00)
157
Example
UINT
status;
158
ux_device_stack_endpoint_stall
Request endpoint stall condition
Device Stack
Prototype
UINT ux_device_stack_endpoint_stall(UX_SLAVE_ENDPOINT *endpoint)
Description
This function is called by the USB device class when an endpoint should
return a stall condition to the host.
Input Parameters
endpoint
Return Values
UX_SUCCESS
User Guide
(0x00)
159
Example
UINT
status;
160
ux_device_stack_host_wakeup
Wake up host
Device Stack
Prototype
UINT ux_device_stack_host_wakeup(VOID)
Description
This function is called when the device wants to wake up the host. This
command is only valid when the device is in suspend mode. It is up to the
device application to decide when it wants to wake up the USB host. For
instance, a USB modem can wake up a host when it detects a RING
signal on the telephone line.
Input Parameters
No input parameters.
Return Values
UX_SUCCESS
(0x00)
UX_ERROR
(0xFF)
User Guide
161
Example
UINT
status;
162
ux_device_stack_initialize
Initialize USB device stack
Device Stack
Prototype
UINT ux_device_stack_initialize(UCHAR_PTR device_framework_high_speed,
ULONG device_framework_length_high_speed,
UCHAR_PTR device_framework_full_speed,
ULONG device_framework_length_full_speed,
UCHAR_PTR string_framework,
ULONG string_framework_length,
UCHAR_PTR language_id_framework,
ULONG language_id_framework_length),
UINT (*ux_system_slave_change_function)(ULONG)))
Description
This function is called by the application to initialize the USB device stack.
It does not initialize any classes or any controllers. This should be done
with separate function calls. This call mainly provides the stack with the
device framework for the USB function. It supports both high and full
speeds with the possibility to have completely separate device framework
for each speed. String framework and multiple languages are supported.
Input Parameters
device_framework_high_speed
Pointer to the high speed framework.
device_framework_length_high_speed
Length of the high speed framework.
device_framework_full_speed
Pointer to the full speed framework.
device_framework_length_full_speed
Length of the full speed framework.
string_framework
Pointer to string framework.
string_framework_length Length of string framework.
language_id_framework Pointer to string language framework.
language_id_framework_length
Length of the string language framework.
ux_system_slave_change_function
Function to be called when the device state
changes.
User Guide
163
Return Values
UX_SUCCESS
(0x00)
UX_MEMORY_INSUFFICIENT
(0x12)
Example
/* Example of a device framework */
#define DEVICE_FRAMEWORK_LENGTH_FULL_SPEED 50
UCHAR device_framework_full_speed[] = {
/* Device descriptor */
0x12, 0x01, 0x10, 0x01, 0x00, 0x00, 0x00, 0x08,
0xec, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01,
/* Configuration descriptor */
0x09, 0x02, 0x20, 0x00, 0x01, 0x01, 0x00, 0xc0,
0x32,
/* Interface descriptor */
0x09, 0x04, 0x00, 0x00, 0x02, 0x08, 0x06, 0x50,
0x00,
/* Endpoint descriptor (Bulk Out) */
0x07, 0x05, 0x01, 0x02, 0x40, 0x00, 0x00,
/* Endpoint descriptor (Bulk In) */
0x07, 0x05, 0x82, 0x02, 0x40, 0x00, 0x00
};
#define DEVICE_FRAMEWORK_LENGTH_HIGH_SPEED 60
UCHAR device_framework_high_speed[] = {
/* Device descriptor */
0x12, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40,
0x0a, 0x07, 0x25, 0x40, 0x01, 0x00, 0x01, 0x02,
0x03, 0x01,
/* Device qualifier descriptor */
0x0a, 0x06, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40,
0x01, 0x00,
/* Configuration descriptor */
0x09, 0x02, 0x20, 0x00, 0x01, 0x01, 0x00, 0xc0,
0x32,
164
/* Interface descriptor */
0x09, 0x04, 0x00, 0x00, 0x02, 0x08, 0x06, 0x50,
0x00,
/* Endpoint descriptor (Bulk Out) */
0x07, 0x05, 0x01, 0x02, 0x00, 0x02, 0x00,
/* Endpoint descriptor (Bulk In) */
0x07, 0x05, 0x82, 0x02, 0x00, 0x02, 0x00
};
descriptor: Index 2 */
0x0c,
0x39, 0x36, 0x35, 0x30, 0x30,
0x4B,
User Guide
165
The application can request a call back when the controller changes its state. The
two main states for the controller are:
UX_DEVICE_SUSPENDED
UX_DEVICE_RESUMED
If the application does not need Suspend/Resume signals, it would supply a
UX_NULL function.
UINT
status;
/* The code below is required for installing the device portion of USBX.
There is no call back for device status change in this example. */
status = ux_device_stack_initialize(&device_framework_high_speed,
DEVICE_FRAMEWORK_LENGTH_HIGH_SPEED,
&device_framework_full_speed,
DEVICE_FRAMEWORK_LENGTH_FULL_SPEED,
&string_framework,
STRING_FRAMEWORK_LENGTH,
&language_id_framework,
LANGUAGE_ID_FRAMEWORK_LENGTH,
UX_NULL);
/* If status equals UX_SUCCESS, initialization was successful. */
166
ux_device_stack_interface_delete
Delete stack interface
Device Stack
Prototype
UINT ux_device_stack_interface_delete(UX_SLAVE_INTERFACE *interface)
Description
This function is called when an interface should be removed. An interface
is removed either when a device is extracted, or following a bus reset, or
when there is a new alternate setting.
Input Parameters
interface
Return Values
UX_SUCCESS
User Guide
(0x00)
167
Example
UINT
status;
168
ux_device_stack_interface_get
Get current interface value
Device Stack
Prototype
UINT ux_device_stack_interface_get(UINT interface_value)
Description
This function is called when the host queries the current interface. The
device returns the current interface value.
Input Parameters
interface_value
Return Values
UX_SUCCESS
(0x00)
UX_ERROR
(0xFF)
No interface exists.
User Guide
169
Example
ULONG
UINT
interface_value;
status;
170
ux_device_stack_interface_set
Change alternate setting of interface
Device Stack
Prototype
UINT ux_device_stack_interface_set(UCHAR_PTR device_framework,
ULONG device_framework_length,
ULONG alternate_setting_value)
Description
This function is called when the host requests a change of the alternate
setting for the interface.
Input Parameters
device_framework
Return Values
UX_SUCCESS
(0x00)
UX_ERROR
(0xFF)
No interface exists.
User Guide
171
Example
UCHAR_PTR
ULONG
ULONG
UINT
device_framework
device_framework_length;
alternate_setting_value;
status;
172
ux_device_stack_interface_start
Start search for class to own an interface instance
Device Stack
Prototype
UINT ux_device_stack_interface_start(UX_SLAVE_INTERFACE *interface)
Description
This function is called when an interface has been selected by the host
and the device stack needs to search for a device class to own this
interface instance.
Input Parameters
interface
Return Values
UX_SUCCESS
(0x00)
UX_NO_CLASS_MATCH
(0x57)
User Guide
173
Example
UINT
status;
174
ux_device_stack_transfer_request
Request to transfer data to host
Device Stack
Prototype
UINT ux_device_stack_transfer_request(UX_SLAVE_TRANSFER *transfer_request,
ULONG slave_length,
ULONG host_length)
Description
This function is called when a class or the stack wants to transfer data to
the host. The host always polls the device but the device can prepare data
in advance.
Input Parameters
transfer_request
slave_length
host_length
Return Values
UX_SUCCESS
(0x00)
UX_ERROR
(0xFF)
Transport error.
User Guide
175
Example
UINT
status;
/* The following example illustrates how to transfer more data
than an application requests. */
while(total_length)
{
/* How much can we
if (total_length >
transfer_length
else
transfer_length
176
ux_device_stack_transfer_request_abort
Cancel a transfer request
Device Stack
Prototype
UINT ux_device_stack_transfer_abort(UX_SLAVE_TRANSFER *transfer_request,
ULONG completion_code)
Description
This function is called when an application needs to cancel a transfer request or
when the stack needs to abort a transfer request associated with an endpoint.
Input Parameters
transfer_request
completion_code
Return Values
UX_SUCCESS
(0x00)
Example
UINT
status;
User Guide
APPENDIX
A
3
USBX Classes
This chapter contains a description of USBX device
storage and DPUMP classes:
1
User Guide
178
User Guide
USBX Classes
179
/* Store the number of LUN in this device storage instance : single LUN.
*/
storage_parameter.ux_slave_class_storage_parameter_number_lun = 1;
/* Initialize the storage class parameters for reading/writing to the Flash
Disk.*/
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class_storag
e_media_last_lba= 0x1e6bfe;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class_stora
ge_media_block_length=512;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class_stora
ge_media_type=0;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class_stora
ge_media_removable_flag
=
0x80;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class_stora
ge_media_read
=
tx_demo_thread_flash_media_read;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class_stora
ge_media_write
=
tx_demo_thread_flash_media_write;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class_stora
ge_media_status
=
tx_demo_thread_flash_media_status;
180
/* Initialize the device storage class. The class is connected with interface 0
*/
status =
_ux_device_stack_class_register(_ux_system_slave_class_storage_name,
_ux_device_class_storage_entry,
_ux_device_class_storage_thread,0,
(VOID *)&storage_parameter);
UINT
where
data_pointer
number_blocks
lba
User Guide
tx_demo_thread_media_status(ULONG media_id);
USBX Classes
181
Sense_key
Additional Sense Code
Additional Sense Code Qualifier
ASC
00
17
18
04
04
ASCQ
00
01
00
01
02
02
04
04
02
02
02
02
02
02
02
02
02
03
03
03
03
03
03
04
06
08
08
08
3A
54
80
FF
02
03
10
11
12
13
FF
00
00
01
80
00
00
00
FF
00
00
00
00
00
00
Description
NO SENSE
RECOVERED DATA WITH RETRIES
RECOVERED DATA WITH ECC
LOGICAL DRIVE NOT READY - BECOMING READY
LOGICAL DRIVE NOT READY - INITIALIZATION
REQUIRED
LOGICAL UNIT NOT READY - FORMAT IN
PROGRESS
LOGICAL DRIVE NOT READY - DEVICE IS BUSY
NO REFERENCE POSITION FOUND
LOGICAL UNIT COMMUNICATION FAILURE
LOGICAL UNIT COMMUNICATION TIME-OUT
LOGICAL UNIT COMMUNICATION OVERRUN
MEDIUM NOT PRESENT
USB TO HOST SYSTEM INTERFACE FAILURE
INSUFFICIENT RESOURCES
UNKNOWN ERROR
NO SEEK COMPLETE
WRITE FAULT
ID CRC ERROR
UNRECOVERED READ ERROR
ADDRESS MARK NOT FOUND FOR ID FIELD
ADDRESS MARK NOT FOUND FOR DATA FIELD
182
03
03
03
04
14
30
31
40
00
01
01
NN
05
05
05
05
05
05
05
05
05
06
1A
20
21
24
25
26
26
26
39
28
00
00
00
00
00
00
01
02
00
00
06
29
00
06
07
0B
2F
27
4E
00
00
00
User Guide
USBX Classes
183
*/
storage_parameter.ux_slave_class_storage_parameter_number_lun = 2;
/* Initialize the storage class parameters for reading/writing to the
Flash Disk. */
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class
_storage_media_last_lba = 0x7bbff;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class
_storage_media_block_length = 512;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class
_storage_media_type = 0;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class
_storage_media_removable_flag = 0x80;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class
_storage_media_read = tx_demo_thread_flash_media_read;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class
_storage_media_write = tx_demo_thread_flash_media_write;
storage_parameter.ux_slave_class_storage_parameter_lun[0].ux_slave_class
_storage_media_status = tx_demo_thread_flash_media_status;
/* Initialize the storage class LUN parameters for reading/writing to the
CD-ROM. */
storage_parameter.ux_slave_class_storage_parameter_lun[1].ux_slave_class
_storage_media_last_lba = 0x04caaf;
storage_parameter.ux_slave_class_storage_parameter_lun[1].ux_slave_class
_storage_media_block_length = 2048;
storage_parameter.ux_slave_class_storage_parameter_lun[1].ux_slave_class
_storage_media_type = 5;
storage_parameter.ux_slave_class_storage_parameter_lun[1].ux_slave_class
_storage_media_removable_flag = 0x80;
184
storage_parameter.ux_slave_class_storage_parameter_lun[1].ux_slave_class_
storage_media_read = tx_demo_thread_cdrom_media_read;
storage_parameter.ux_slave_class_storage_parameter_lun[1].ux_slave_class_
storage_media_write = tx_demo_thread_cdrom_media_write;
storage_parameter.ux_slave_class_storage_parameter_lun[1].ux_slave_class_
storage_media_status = tx_demo_thread_cdrom_media_status;
/* Initialize the device storage class for a Flash disk and CD-ROM.
The class is connected with interface 0 */
status =
_ux_device_stack_class_register(_ux_system_slave_class_storage_name,
_ux_device_class_storage_entry,
_ux_device_class_storage_thread,0,
(VOID *)&storage_parameter);
User Guide
USBX Classes
Host Application
185
USB HostStack
Write a packet
_ux_host_class_dpump_write
_ux_host_stack_transfer_request
_ux_device_stack_transfer_request
Wait for OUT packet on Bulk Out
Write a packet
Receive a packet
_ux_device_stack_transfer_request
_ux_host_class_dpump_read
The host side of the DPUMP Class has two functions: one for
sending data and one for receiving data:
_ux_host_class_dpump_write
_ux_host_class_dpump_read
Both functions are blocking to make the DPUMP application
easier. If it is necessary to have both pipes (IN and OUT)
186
Where :
dpump
data_pointer
requested_length
actual_length
User Guide
USBX Classes
187
*/
while(1)
{
/* Initialize the write buffer. */
_ux_utility_memory_set(out_buffer, current_char,
UX_HOST_CLASS_DPUMP_PACKET_SIZE);
/* Increment the character in buffer.
current_char++;
*/
*/
188
USB DPUMP
Device Class
User Guide
APPENDIX
USBX Constants
This appendix includes an alphabetic list of all USBX
constants and their values.
User Guide
190
UX_ALIGN_16
UX_ALIGN_2048
UX_ALIGN_256
UX_ALIGN_32
UX_ALIGN_4096
UX_ALIGN_512
UX_ALIGN_512
UX_ALIGN_64
UX_ALIGN_MIN
UX_BUFFER_OVERFLOW
UX_BULK_ENDPOINT
UX_BULK_ENDPOINT_IN
UX_BULK_ENDPOINT_OUT
UX_CACHE_SAFE_MEMORY
UX_CLEAR_FEATURE
UX_CONFIGURATION_DESCRIPTOR_ITEM
UX_CONFIGURATION_DEVICE_BUS_POWERED
UX_CONFIGURATION_DEVICE_SELF_POWERED
UX_CONFIGURATION_HANDLE_UNKNOWN
UX_CONNECTION_INCOMPATIBLE
UX_CONTROL_ENDPOINT
UX_CONTROL_TRANSFER_TIMEOUT
UX_CONTROLLER_INIT_FAILED
UX_CONTROLLER_UNKNOWN
UX_DCD_CHANGE_STATE
UX_DCD_CREATE_ENDPOINT
UX_DCD_DESTROY_ENDPOINT
UX_DCD_DISABLE_CONTROLLER
UX_DCD_DISABLE_PORT
UX_DCD_ENABLE_PORT
UX_DCD_ENDPOINT_STATUS
UX_DCD_GET_FRAME_NUMBER
UX_DCD_GET_PORT_STATUS
UX_DCD_ISR_PENDING
UX_DCD_POWER_DOWN_PORT
UX_DCD_POWER_ON_PORT
UX_DCD_RESET_ENDPOINT
UX_DCD_RESET_PORT
User Guide
0x0f
0x7ff
0xff
0x1f
0xfff
0x1ff
0x1ff
0x3f
0x0f
0x5d
2
0x82
0x02
1
1
2
0x80
0x40
0x51
0x5a
0
1000
0x32
0x55
19
14
15
1
4
3
21
10
2
18
6
5
16
9
USBX Constants
UX_DCD_RESUME_PORT
UX_DCD_SET_DEVICE_ADDRESS
UX_DCD_SET_FRAME_NUMBER
UX_DCD_STALL_ENDPOINT
UX_DCD_STATUS_DEAD
UX_DCD_STATUS_HALTED
UX_DCD_STATUS_OPERATIONAL
UX_DCD_SUSPEND_PORT
UX_DCD_TRANSFER_ABORT
UX_DCD_TRANSFER_REQUEST
UX_DCD_VBUS_RESET
UX_DCD_VBUS_SET
UX_DEFAULT_HS_MPS
UX_DEFAULT_MPS
UX_DESCRIPTOR_CORRUPTED
UX_DEVICE_ADDRESS_SET_WAIT
UX_DEVICE_ADDRESSED
UX_DEVICE_ATTACHED
UX_DEVICE_BUS_POWERED
UX_DEVICE_BUS_POWERED_STATE
UX_DEVICE_BUS_RESET_COMPLETED
UX_DEVICE_CONFIGURED
UX_DEVICE_DESCRIPTOR_ITEM
UX_DEVICE_ENUMERATION_FAILURE
UX_DEVICE_HANDLE_UNKNOWN
UX_DEVICE_INSERTION
UX_DEVICE_QUALIFIER_DESCRIPTOR_ITEM
UX_DEVICE_REMOTE_WAKEUP
UX_DEVICE_REMOVAL
UX_DEVICE_RESET
UX_DEVICE_RESUMED
UX_DEVICE_SELF_POWERED
UX_DEVICE_SELF_POWERED_STATE
UX_DEVICE_SUSPENDED
UX_ENDPOINT_DESCRIPTOR_ITEM
UX_ENDPOINT_DIRECTION
UX_ENDPOINT_HALT
UX_ENDPOINT_HALTED
191
8
17
11
20
2
0
1
7
13
12
0
1
64
8
0x42
50
2
1
1
7
9
3
1
0x44
0x50
1
6
8
2
0
5
2
6
4
5
0x80
0
2
192
UX_ENDPOINT_HANDLE_UNKNOWN
UX_ENDPOINT_IN
UX_ENDPOINT_OUT
UX_ENDPOINT_RESET
UX_ENDPOINT_RUNNING
UX_ERROR
UX_FALSE
UX_FULL_SPEED_DEVICE
UX_FUNCTION_NOT_SUPPORTED
UX_GET_CONFIGURATION
UX_GET_DESCRIPTOR
UX_GET_INTERFACE
UX_GET_STATUS
UX_HCD_CREATE_ENDPOINT
UX_HCD_DESTROY_ENDPOINT
UX_HCD_DISABLE_CONTROLLER
UX_HCD_DISABLE_PORT
UX_HCD_ENABLE_PORT
UX_HCD_GET_FRAME_NUMBER
UX_HCD_GET_PORT_STATUS
UX_HCD_POWER_DOWN_PORT
UX_HCD_POWER_ON_PORT
UX_HCD_PROCESS_DONE_QUEUE
UX_HCD_RESET_ENDPOINT
UX_HCD_RESET_PORT
UX_HCD_RESUME_PORT
UX_HCD_SET_FRAME_NUMBER
UX_HCD_STATUS_DEAD
UX_HCD_STATUS_HALTED
UX_HCD_STATUS_OPERATIONAL
UX_HCD_SUSPEND_PORT
UX_HCD_TRANSFER_ABORT
UX_HCD_TRANSFER_REQUEST
UX_HID_DESCRIPTOR_ENTRIES
UX_HID_DESCRIPTOR_LENGTH
UX_HIGH_SPEED_DEVICE
UX_HOST_CLASS_ALREADY_INSTALLED
UX_HOST_CLASS_AUDIO_3D_STEREO_EXTENDED_PROCESS
User Guide
0x53
0x80
0x00
0
1
0xff
0
1
0x54
8
6
10
0
14
15
1
4
3
10
2
6
5
17
16
9
8
11
2
0
1
7
13
12
7
9
2
0x58
0x03
USBX Constants
UX_HOST_CLASS_AUDIO_AUTOMATIC_GAIN_CONTROL
UX_HOST_CLASS_AUDIO_BASS_BOOST_CONTROL
UX_HOST_CLASS_AUDIO_BASS_CONTROL
UX_HOST_CLASS_AUDIO_BIDIRECTIONAL_UNDEFINED
UX_HOST_CLASS_AUDIO_CHORUS_PROCESS
UX_HOST_CLASS_AUDIO_CLASS
UX_HOST_CLASS_AUDIO_CLASS_TRANSFER_TIMEOUT
UX_HOST_CLASS_AUDIO_COMMUNICATION_SPEAKER
UX_HOST_CLASS_AUDIO_COPY_PROTECT_CONTROL
UX_HOST_CLASS_AUDIO_CS_AC_UNDEFINED
UX_HOST_CLASS_AUDIO_CS_AS_GENERAL
UX_HOST_CLASS_AUDIO_CS_AS_UNDEFINED
UX_HOST_CLASS_AUDIO_CS_CONFIGURATION
UX_HOST_CLASS_AUDIO_CS_DEVICE
UX_HOST_CLASS_AUDIO_CS_ENDPOINT
UX_HOST_CLASS_AUDIO_CS_EXTENSION_UNIT
UX_HOST_CLASS_AUDIO_CS_FEATURE_UNIT
UX_HOST_CLASS_AUDIO_CS_FORMAT_SPECIFIC
UX_HOST_CLASS_AUDIO_CS_FORMAT_TYPE
UX_HOST_CLASS_AUDIO_CS_HEADER
UX_HOST_CLASS_AUDIO_CS_INPUT_TERMINAL
UX_HOST_CLASS_AUDIO_CS_INTERFACE
UX_HOST_CLASS_AUDIO_CS_MIXER_UNIT
UX_HOST_CLASS_AUDIO_CS_OUTPUT_TERMINAL
UX_HOST_CLASS_AUDIO_CS_PROCESSING_UNIT
UX_HOST_CLASS_AUDIO_CS_SELECTOR_UNIT
UX_HOST_CLASS_AUDIO_CS_STRING
UX_HOST_CLASS_AUDIO_CS_UNDEFINED
UX_HOST_CLASS_AUDIO_DELAY_CONTROL
UX_HOST_CLASS_AUDIO_DESCRIPTOR_UNDEFINED
UX_HOST_CLASS_AUDIO_DESKTOP_MICROPHONE
UX_HOST_CLASS_AUDIO_DESKTOP_SPEAKER
UX_HOST_CLASS_AUDIO_DOLBY_PROLOGIC_PROCESS
UX_HOST_CLASS_AUDIO_DOWN_LINE_PHONE
UX_HOST_CLASS_AUDIO_DYN_RANGE_COMP_PROCESS
UX_HOST_CLASS_AUDIO_ECHO_CANCEL_SPEAKERPHONE
UX_HOST_CLASS_AUDIO_ECHO_SUPRESS_SPEAKERPHONE
UX_HOST_CLASS_AUDIO_EP_GENERAL
193
0x07
0x09
0x03
0x0400
0x05
1
30
0x0306
0x01
0x00
0x01
0x00
0x22
0x21
0x25
0x08
0x06
0x03
0x02
0x01
0x02
0x24
0x04
0x03
0x07
0x05
0x23
0x20
0x08
0x00
0x0202
0x0304
0x02
0x0403
0x06
0x0405
0x0404
0x01
194
UX_HOST_CLASS_AUDIO_FEATURE_UNIT_DESCRIPTOR_ENTRIES
UX_HOST_CLASS_AUDIO_FEATURE_UNIT_DESCRIPTOR_LENGTH
UX_HOST_CLASS_AUDIO_FORMAT_ALAW
UX_HOST_CLASS_AUDIO_FORMAT_IEEE_FLOAT
UX_HOST_CLASS_AUDIO_FORMAT_MULAW
UX_HOST_CLASS_AUDIO_FORMAT_PCM
UX_HOST_CLASS_AUDIO_FORMAT_PCM8
UX_HOST_CLASS_AUDIO_FORMAT_TYPE_I
UX_HOST_CLASS_AUDIO_FORMAT_TYPE_II
UX_HOST_CLASS_AUDIO_FORMAT_TYPE_III
UX_HOST_CLASS_AUDIO_FORMAT_TYPE_UNDEFINED
UX_HOST_CLASS_AUDIO_FU_CONTROL_UNDEFINED
UX_HOST_CLASS_AUDIO_GET_CUR
UX_HOST_CLASS_AUDIO_GET_MAX
UX_HOST_CLASS_AUDIO_GET_MEM
UX_HOST_CLASS_AUDIO_GET_MIN
UX_HOST_CLASS_AUDIO_GET_RES
UX_HOST_CLASS_AUDIO_GET_STAT
UX_HOST_CLASS_AUDIO_GRAPHIC_EQUALIZER_CONTROL
UX_HOST_CLASS_AUDIO_HANDSET
UX_HOST_CLASS_AUDIO_HEAD_MOUNTED_DISPLAY
UX_HOST_CLASS_AUDIO_HEADPHONES
UX_HOST_CLASS_AUDIO_HEADSET
UX_HOST_CLASS_AUDIO_INPUT
UX_HOST_CLASS_AUDIO_INPUT_TERMINAL_DESCRIPTOR_ENTRIES
UX_HOST_CLASS_AUDIO_INPUT_TERMINAL_DESCRIPTOR_LENGTH
UX_HOST_CLASS_AUDIO_INTERFACE_DESCRIPTOR_ENTRIES
UX_HOST_CLASS_AUDIO_INTERFACE_DESCRIPTOR_LENGTH
UX_HOST_CLASS_AUDIO_LOUNDNESS_CONTROL
UX_HOST_CLASS_AUDIO_LOW_FREQUENCY_SPEAKER
UX_HOST_CLASS_AUDIO_MICROPHONE
UX_HOST_CLASS_AUDIO_MICROPHONE_ARRAY
UX_HOST_CLASS_AUDIO_MID_CONTROL
UX_HOST_CLASS_AUDIO_MUTE_CONTROL
UX_HOST_CLASS_AUDIO_OMNI_DIRECTIONAL_MICROPHONE
UX_HOST_CLASS_AUDIO_OUTPUT
UX_HOST_CLASS_AUDIO_OUTPUT_TERMINAL_DESCRIPTOR_ENTRIES
UX_HOST_CLASS_AUDIO_OUTPUT_TERMINAL_DESCRIPTOR_LENGTH
User Guide
7
7
4
3
5
1
2
1
2
3
0
0x00
0x81
0x83
0x85
0x82
0x84
0xFF
0x06
0x0401
0x0303
0x0302
0x0402
0x0200
10
12
8
8
0x0A
0x0307
0x0201
0x0205
0x04
0x01
0x0204
0x0300
8
9
USBX Constants
195
UX_HOST_CLASS_AUDIO_PERSONAL_MICROPHONE
0x0203
UX_HOST_CLASS_AUDIO_PHONE_LINE
0x0401
UX_HOST_CLASS_AUDIO_PROCESS_UNDEFINED
0x00
UX_HOST_CLASS_AUDIO_PROCESSING_MICROPHONE_ARRAY
0x0206
UX_HOST_CLASS_AUDIO_PROTOCOL_UNDEFINED
0
UX_HOST_CLASS_AUDIO_REQUEST_CODE_UNDEFINED
0x00
UX_HOST_CLASS_AUDIO_REVERBERATION_PROCESS
0x04
UX_HOST_CLASS_AUDIO_ROOM_SPEAKER
0x0305
UX_HOST_CLASS_AUDIO_SET_CUR
0x01
UX_HOST_CLASS_AUDIO_SET_MAX
0x03
UX_HOST_CLASS_AUDIO_SET_MEM
0x05
UX_HOST_CLASS_AUDIO_SET_MIN
0x02
UX_HOST_CLASS_AUDIO_SET_RES
0x04
UX_HOST_CLASS_AUDIO_SPEAKER
0x0301
UX_HOST_CLASS_AUDIO_SPEAKERPHONE
0x0403
UX_HOST_CLASS_AUDIO_STREAMING_ENDPOINT_DESCRIPTOR_ENTRIES
6
UX_HOST_CLASS_AUDIO_STREAMING_ENDPOINT_DESCRIPTOR_LENGTH
6
UX_HOST_CLASS_AUDIO_STREAMING_INTERFACE_DESCRIPTOR_ENTRIES
6
UX_HOST_CLASS_AUDIO_STREAMING_INTERFACE_DESCRIPTOR_LENGTH
6
UX_HOST_CLASS_AUDIO_SUBCLASS_CONTROL
1
UX_HOST_CLASS_AUDIO_SUBCLASS_MIDI_STREAMING
3
UX_HOST_CLASS_AUDIO_SUBCLASS_STREAMING
2
UX_HOST_CLASS_AUDIO_SUBCLASS_UNDEFINED
0
UX_HOST_CLASS_AUDIO_TE_CONTROL_UNDEFINED
0x00
UX_HOST_CLASS_AUDIO_TELEPHONE
0x0402
UX_HOST_CLASS_AUDIO_TELEPHONTY_UNDEFINED
0x0400
UX_HOST_CLASS_AUDIO_TREBLE_CONTROL
0x05
UX_HOST_CLASS_AUDIO_UP_DOWN_MIX_PROCESS
0x01
UX_HOST_CLASS_AUDIO_VOLUME_CONTROL
0x02
UX_HOST_CLASS_AUDIO_WRONG_INTERFACE
0x81
UX_HOST_CLASS_AUDIO_WRONG_TYPE
0x80
UX_HOST_CLASS_COMMAND_ACTIVATE
2
UX_HOST_CLASS_COMMAND_DEACTIVATE
3
UX_HOST_CLASS_COMMAND_QUERY
1
UX_HOST_CLASS_COMMAND_USAGE_CSP
2
UX_HOST_CLASS_COMMAND_USAGE_PIDVID
1
UX_HOST_CLASS_HID_CLASS
3
UX_HOST_CLASS_HID_COLLECTION_APPLICATION
1
196
UX_HOST_CLASS_HID_COLLECTION_LOGICAL
UX_HOST_CLASS_HID_COLLECTION_OVERFLOW
UX_HOST_CLASS_HID_COLLECTION_PHYSICAL
UX_HOST_CLASS_HID_COLLECTION_UNDERFLOW
UX_HOST_CLASS_HID_CONSUMER_AC_ADD_TO_CART
UX_HOST_CLASS_HID_CONSUMER_AC_ALL_CAPS
UX_HOST_CLASS_HID_CONSUMER_AC_ATTACH_COMMENT
UX_HOST_CLASS_HID_CONSUMER_AC_ATTACH_FILE
UX_HOST_CLASS_HID_CONSUMER_AC_BACK
UX_HOST_CLASS_HID_CONSUMER_AC_BOLD
UX_HOST_CLASS_HID_CONSUMER_AC_BOOKMARKS
UX_HOST_CLASS_HID_CONSUMER_AC_BULLETED_LIST
UX_HOST_CLASS_HID_CONSUMER_AC_BUY_CHECKOUT
UX_HOST_CLASS_HID_CONSUMER_AC_CANCEL
UX_HOST_CLASS_HID_CONSUMER_AC_CATALOG
UX_HOST_CLASS_HID_CONSUMER_AC_CLEAR_ALARM
UX_HOST_CLASS_HID_CONSUMER_AC_CLOSE
UX_HOST_CLASS_HID_CONSUMER_AC_COLLAPSE
UX_HOST_CLASS_HID_CONSUMER_AC_COLLAPSE_ALL
UX_HOST_CLASS_HID_CONSUMER_AC_COPY
UX_HOST_CLASS_HID_CONSUMER_AC_CUT
UX_HOST_CLASS_HID_CONSUMER_AC_DELETE
UX_HOST_CLASS_HID_CONSUMER_AC_DELETE_COMMENT
UX_HOST_CLASS_HID_CONSUMER_AC_DEMOTE
UX_HOST_CLASS_HID_CONSUMER_AC_DISRIBUTE_HORIZONTALLY
UX_HOST_CLASS_HID_CONSUMER_AC_DISTRIBUTE_VERTICALLY
UX_HOST_CLASS_HID_CONSUMER_AC_DOWNLOAD
UX_HOST_CLASS_HID_CONSUMER_AC_EDIT
UX_HOST_CLASS_HID_CONSUMER_AC_EDIT_TIME_ZONES
UX_HOST_CLASS_HID_CONSUMER_AC_EXIT
UX_HOST_CLASS_HID_CONSUMER_AC_EXPAND
UX_HOST_CLASS_HID_CONSUMER_AC_EXPAND_ALL
UX_HOST_CLASS_HID_CONSUMER_AC_FILTER
UX_HOST_CLASS_HID_CONSUMER_AC_FIND
UX_HOST_CLASS_HID_CONSUMER_AC_FIND_AND_REPLACE
UX_HOST_CLASS_HID_CONSUMER_AC_FLIP_HORIZONTAL
UX_HOST_CLASS_HID_CONSUMER_AC_FLIP_VERTICAL
UX_HOST_CLASS_HID_CONSUMER_AC_FONT_COLOR
User Guide
2
0x75
0
0x76
0x261
0x243
0x26E
0x28C
0x223
0x23D
0x229
0x259
0x260
0x25E
0x25F
0x282
0x202
0x264
0x265
0x21A
0x21B
0x269
0x26F
0x25B
0x29A
0x29B
0x28E
0x23C
0x280
0x203
0x262
0x263
0x27C
0x21E
0x21F
0x246
0x247
0x24B
USBX Constants
197
UX_HOST_CLASS_HID_CONSUMER_AC_FONT_SELECT
UX_HOST_CLASS_HID_CONSUMER_AC_FONT_SIZE
UX_HOST_CLASS_HID_CONSUMER_AC_FORMAT
UX_HOST_CLASS_HID_CONSUMER_AC_FORWARD
UX_HOST_CLASS_HID_CONSUMER_AC_FORWARD_MSG
UX_HOST_CLASS_HID_CONSUMER_AC_FULL_SCREEN_VIEW
UX_HOST_CLASS_HID_CONSUMER_AC_GO_TO
UX_HOST_CLASS_HID_CONSUMER_AC_HISTORY
UX_HOST_CLASS_HID_CONSUMER_AC_HOME
UX_HOST_CLASS_HID_CONSUMER_AC_INDENT_DECREASE
UX_HOST_CLASS_HID_CONSUMER_AC_INDENT_INCREASE
UX_HOST_CLASS_HID_CONSUMER_AC_INSERT_COLUMN
UX_HOST_CLASS_HID_CONSUMER_AC_INSERT_FILE
UX_HOST_CLASS_HID_CONSUMER_AC_INSERT_MODE
UX_HOST_CLASS_HID_CONSUMER_AC_INSERT_OBJECT
UX_HOST_CLASS_HID_CONSUMER_AC_INSERT_PICTURE
UX_HOST_CLASS_HID_CONSUMER_AC_INSERT_ROW
UX_HOST_CLASS_HID_CONSUMER_AC_INSERT_SYMBOL
UX_HOST_CLASS_HID_CONSUMER_AC_ITALICS
UX_HOST_CLASS_HID_CONSUMER_AC_JUSTIFY_BLOCK_H
UX_HOST_CLASS_HID_CONSUMER_AC_JUSTIFY_BLOCK_V
UX_HOST_CLASS_HID_CONSUMER_AC_JUSTIFY_BOTTOM
UX_HOST_CLASS_HID_CONSUMER_AC_JUSTIFY_CENTER_H
UX_HOST_CLASS_HID_CONSUMER_AC_JUSTIFY_CENTER_V
UX_HOST_CLASS_HID_CONSUMER_AC_JUSTIFY_LEFT
UX_HOST_CLASS_HID_CONSUMER_AC_JUSTIFY_RIGHT
UX_HOST_CLASS_HID_CONSUMER_AC_JUSTIFY_TOP
UX_HOST_CLASS_HID_CONSUMER_AC_LOCK
UX_HOST_CLASS_HID_CONSUMER_AC_MAXIMIZE
UX_HOST_CLASS_HID_CONSUMER_AC_MERGE
UX_HOST_CLASS_HID_CONSUMER_AC_MINIMIZE
UX_HOST_CLASS_HID_CONSUMER_AC_MIRROR_HORIZONTAL
UX_HOST_CLASS_HID_CONSUMER_AC_MIRROR_VERTICAL
UX_HOST_CLASS_HID_CONSUMER_AC_NEW
UX_HOST_CLASS_HID_CONSUMER_AC_NEW_WINDOW
UX_HOST_CLASS_HID_CONSUMER_AC_NEXT_LINK
UX_HOST_CLASS_HID_CONSUMER_AC_NO
UX_HOST_CLASS_HID_CONSUMER_AC_NORMAL_VIEW
0x24A
0x24C
0x23B
0x224
0x28A
0x22F
0x221
0x22A
0x222
0x255
0x256
0x291
0x292
0x268
0x294
0x293
0x290
0x295
0x23E
0x250
0x254
0x253
0x24E
0x252
0x24D
0x24F
0x251
0x26A
0x204
0x298
0x205
0x248
0x249
0x1B5
0x238
0x228
0x25D
0x230
198
UX_HOST_CLASS_HID_CONSUMER_AC_NUMBERED_LIST
UX_HOST_CLASS_HID_CONSUMER_AC_OPEN
UX_HOST_CLASS_HID_CONSUMER_AC_PAN
UX_HOST_CLASS_HID_CONSUMER_AC_PAN_LEFT
UX_HOST_CLASS_HID_CONSUMER_AC_PAN_RIGHT
UX_HOST_CLASS_HID_CONSUMER_AC_PASTE
UX_HOST_CLASS_HID_CONSUMER_AC_PASTE_SPECIAL
UX_HOST_CLASS_HID_CONSUMER_AC_PREVIOUS_LINK
UX_HOST_CLASS_HID_CONSUMER_AC_PRINT
UX_HOST_CLASS_HID_CONSUMER_AC_PRINT_PREVIEW
UX_HOST_CLASS_HID_CONSUMER_AC_PROMOTE
UX_HOST_CLASS_HID_CONSUMER_AC_PROPERTIES
UX_HOST_CLASS_HID_CONSUMER_AC_PROTECT
UX_HOST_CLASS_HID_CONSUMER_AC_REDO_REPEAT
UX_HOST_CLASS_HID_CONSUMER_AC_REFRESH
UX_HOST_CLASS_HID_CONSUMER_AC_RENAME
UX_HOST_CLASS_HID_CONSUMER_AC_REPLY
UX_HOST_CLASS_HID_CONSUMER_AC_REPLY_ALL
UX_HOST_CLASS_HID_CONSUMER_AC_RESET_ALARM
UX_HOST_CLASS_HID_CONSUMER_AC_RESIZE
UX_HOST_CLASS_HID_CONSUMER_AC_RESTART_NUMBERING
UX_HOST_CLASS_HID_CONSUMER_AC_ROTATE
UX_HOST_CLASS_HID_CONSUMER_AC_SAVE
UX_HOST_CLASS_HID_CONSUMER_AC_SAVE_CLOSE
UX_HOST_CLASS_HID_CONSUMER_AC_SCROLL
UX_HOST_CLASS_HID_CONSUMER_AC_SCROLL_DOWN
UX_HOST_CLASS_HID_CONSUMER_AC_SCROLL_UP
UX_HOST_CLASS_HID_CONSUMER_AC_SEARCH
UX_HOST_CLASS_HID_CONSUMER_AC_SELECT_ALL
UX_HOST_CLASS_HID_CONSUMER_AC_SELECT_COLUMN
UX_HOST_CLASS_HID_CONSUMER_AC_SELECT_OBJECT
UX_HOST_CLASS_HID_CONSUMER_AC_SELECT_PARAGRAPH
UX_HOST_CLASS_HID_CONSUMER_AC_SELECT_ROW
UX_HOST_CLASS_HID_CONSUMER_AC_SELECT_SENTENCE
UX_HOST_CLASS_HID_CONSUMER_AC_SELECT_TABLE
UX_HOST_CLASS_HID_CONSUMER_AC_SELECT_TIME_ZONE
UX_HOST_CLASS_HID_CONSUMER_AC_SELECT_WORD
UX_HOST_CLASS_HID_CONSUMER_AC_SEND
User Guide
0x257
0x201
0x237
0x235
0x236
0x21C
0x267
0x227
0x207
0x266
0x25A
0x208
0x26C
0x278
0x226
0x297
0x288
0x289
0x284
0x245
0x258
0x244
0x206
0x296
0x234
0x233
0x232
0x220
0x21D
0x274
0x277
0x273
0x275
0x272
0x276
0x27F
0x271
0x28B
USBX Constants
199
UX_HOST_CLASS_HID_CONSUMER_AC_SEND_RECEIVE
UX_HOST_CLASS_HID_CONSUMER_AC_SEND_TO
UX_HOST_CLASS_HID_CONSUMER_AC_SET_ALARM
UX_HOST_CLASS_HID_CONSUMER_AC_SET_BORDERS
UX_HOST_CLASS_HID_CONSUMER_AC_SET_CLOCK
UX_HOST_CLASS_HID_CONSUMER_AC_SNOOZE_ALARM
UX_HOST_CLASS_HID_CONSUMER_AC_SORT
UX_HOST_CLASS_HID_CONSUMER_AC_SORT_ASCENDING
UX_HOST_CLASS_HID_CONSUMER_AC_SORT_DESCENDING
UX_HOST_CLASS_HID_CONSUMER_AC_SPLIT
UX_HOST_CLASS_HID_CONSUMER_AC_STOP
UX_HOST_CLASS_HID_CONSUMER_AC_STRIKETHROUGH
UX_HOST_CLASS_HID_CONSUMER_AC_SUBSCRIPT
UX_HOST_CLASS_HID_CONSUMER_AC_SUBSCRIPTIONS
UX_HOST_CLASS_HID_CONSUMER_AC_SUPERSCRIPT
UX_HOST_CLASS_HID_CONSUMER_AC_SYNCHRONIZE
UX_HOST_CLASS_HID_CONSUMER_AC_TILE_HORIZONTALLY
UX_HOST_CLASS_HID_CONSUMER_AC_TILE_VERTICALLY
UX_HOST_CLASS_HID_CONSUMER_AC_UNDERLINE
UX_HOST_CLASS_HID_CONSUMER_AC_UNDO
UX_HOST_CLASS_HID_CONSUMER_AC_UNLOCK
UX_HOST_CLASS_HID_CONSUMER_AC_UNPROTECT
UX_HOST_CLASS_HID_CONSUMER_AC_UPLOAD
UX_HOST_CLASS_HID_CONSUMER_AC_VIEW_CLOCK
UX_HOST_CLASS_HID_CONSUMER_AC_VIEW_COMMENT
UX_HOST_CLASS_HID_CONSUMER_AC_VIEW_TOGGLE
UX_HOST_CLASS_HID_CONSUMER_AC_YES
UX_HOST_CLASS_HID_CONSUMER_AC_ZOOM
UX_HOST_CLASS_HID_CONSUMER_AC_ZOOM_IN
UX_HOST_CLASS_HID_CONSUMER_AC_ZOOM_OUT
UX_HOST_CLASS_HID_CONSUMER_AL_A_V_CAPTURE_PLAYBACK
UX_HOST_CLASS_HID_CONSUMER_AL_ALARMS
UX_HOST_CLASS_HID_CONSUMER_AL_CALCULATOR
UX_HOST_CLASS_HID_CONSUMER_AL_CALENDAR_SCHEDULE
UX_HOST_CLASS_HID_CONSUMER_AL_CHECKBOOK_FINANCE
UX_HOST_CLASS_HID_CONSUMER_AL_CLOCK
UX_HOST_CLASS_HID_CONSUMER_AL_COMMAND_LINE_PROCESSOR
0x286
0x287
0x281
0x28F
0x27D
0x283
0x279
0x27A
0x27B
0x299
0x225
0x240
0x241
0x22B
0x242
0x285
0x239
0x23A
0x23F
0x209
0x26B
0x26D
0x28D
0x27E
0x270
0x231
0x25C
0x22E
0x22C
0x22D
0x192
0x1B1
0x191
0x18D
0x190
0x1B2
0x19F
200
UX_HOST_CLASS_HID_CONSUMER_AL_CONSUMER_CONTROL_CONFIGURATION
0x182
UX_HOST_CLASS_HID_CONSUMER_AL_CONTACTS_ADDRESS_BOOK
0x18C
UX_HOST_CLASS_HID_CONSUMER_AL_CONTROL_PANEL
0x19E
UX_HOST_CLASS_HID_CONSUMER_AL_DATABASE_APP
0x188
UX_HOST_CLASS_HID_CONSUMER_AL_DESKTOP
0x1A9
UX_HOST_CLASS_HID_CONSUMER_AL_DICTIONARY
0x1A8
UX_HOST_CLASS_HID_CONSUMER_AL_DOCUMENTS
0x1A6
UX_HOST_CLASS_HID_CONSUMER_AL_EMAIL_READER
0x189
UX_HOST_CLASS_HID_CONSUMER_AL_ENCRYPTION
0x1AF
UX_HOST_CLASS_HID_CONSUMER_AL_FILE_BROWSER
0x1B3
UX_HOST_CLASS_HID_CONSUMER_AL_GRAMMAR_CHECK
0x1AB
UX_HOST_CLASS_HID_CONSUMER_AL_GRAPHICS_EDITOR
0x186
UX_HOST_CLASS_HID_CONSUMER_AL_INTEGRATED_HELP_CENTER
0x1A5
UX_HOST_CLASS_HID_CONSUMER_AL_INTERNET_BROWSER
0x195
UX_HOST_CLASS_HID_CONSUMER_AL_KEYBOARD_LAYOUT
0x1AD
UX_HOST_CLASS_HID_CONSUMER_AL_LAN_WAN_BROWSER
0x194
UX_HOST_CLASS_HID_CONSUMER_AL_LAUNCH_BUTTON_CONFIGURATION
0x180
UX_HOST_CLASS_HID_CONSUMER_AL_LOCAL_MACHINE_BROWSER
0x193
UX_HOST_CLASS_HID_CONSUMER_AL_LOG_JOURNAL_TIMECARD
0x18F
UX_HOST_CLASS_HID_CONSUMER_AL_LOGOFF
0x19B
UX_HOST_CLASS_HID_CONSUMER_AL_LOGON
0x19A
UX_HOST_CLASS_HID_CONSUMER_AL_LOGON_LOGOFF
0x19C
UX_HOST_CLASS_HID_CONSUMER_AL_NETWORK_CHAT
0x198
UX_HOST_CLASS_HID_CONSUMER_AL_NETWORK_CONFERENCE
0x197
UX_HOST_CLASS_HID_CONSUMER_AL_NEWSREADER
0x18A
UX_HOST_CLASS_HID_CONSUMER_AL_NEXT_APPLICATION
0x1A2
UX_HOST_CLASS_HID_CONSUMER_AL_POWER_STATUS
0x1B4
UX_HOST_CLASS_HID_CONSUMER_AL_PREEMPTIVE_HALT_APPLICATION 0x1A4
UX_HOST_CLASS_HID_CONSUMER_AL_PRESENTATION_APP
0x187
UX_HOST_CLASS_HID_CONSUMER_AL_PREVIOUS_APPLICATION
0x1A3
UX_HOST_CLASS_HID_CONSUMER_AL_PROCESS_MANAGER
0x1A0
UX_HOST_CLASS_HID_CONSUMER_AL_PROGRAMMABLE_BUTTON
0x181
UX_HOST_CLASS_HID_CONSUMER_AL_REMOTE_NETWORKING
0x196
UX_HOST_CLASS_HID_CONSUMER_AL_SCREEN_SAVER
0x1B0
UX_HOST_CLASS_HID_CONSUMER_AL_SCREENSAVER
0x19D
UX_HOST_CLASS_HID_CONSUMER_AL_SELECT_APPLICATION
0x1A1
User Guide
USBX Constants
201
UX_HOST_CLASS_HID_CONSUMER_AL_SPELL_CHECK
UX_HOST_CLASS_HID_CONSUMER_AL_SPREADSHEET
UX_HOST_CLASS_HID_CONSUMER_AL_TASK_PROJECT_MANAGER
UX_HOST_CLASS_HID_CONSUMER_AL_TELEPHONY_DIALER
UX_HOST_CLASS_HID_CONSUMER_AL_TEXT_EDITOR
UX_HOST_CLASS_HID_CONSUMER_AL_THESAURUS
UX_HOST_CLASS_HID_CONSUMER_AL_VIRUS_PROTECTION
UX_HOST_CLASS_HID_CONSUMER_AL_VOICEMAIL
UX_HOST_CLASS_HID_CONSUMER_AL_WIRELESS_STATUS
UX_HOST_CLASS_HID_CONSUMER_AL_WORD_PROCESSOR
UX_HOST_CLASS_HID_CONSUMER_ALTERNATE_AUDIO_DECREMENT
UX_HOST_CLASS_HID_CONSUMER_ALTERNATE_AUDIO_INCREMENT
UX_HOST_CLASS_HID_CONSUMER_AM_PM
UX_HOST_CLASS_HID_CONSUMER_APPLICATION_LAUNCH_BUTTONS
UX_HOST_CLASS_HID_CONSUMER_ASSIGN_SELECTION
UX_HOST_CLASS_HID_CONSUMER_BALANCE
UX_HOST_CLASS_HID_CONSUMER_BALANCE_LEFT
UX_HOST_CLASS_HID_CONSUMER_BALANCE_RIGHT
UX_HOST_CLASS_HID_CONSUMER_BASS
UX_HOST_CLASS_HID_CONSUMER_BASS_BOOST
UX_HOST_CLASS_HID_CONSUMER_BASS_DECREMENT
UX_HOST_CLASS_HID_CONSUMER_BASS_INCREMENT
UX_HOST_CLASS_HID_CONSUMER_BROADCAST_MODE
UX_HOST_CLASS_HID_CONSUMER_CHANNEL_CENTER
UX_HOST_CLASS_HID_CONSUMER_CHANNEL_CENTER_FRONT
UX_HOST_CLASS_HID_CONSUMER_CHANNEL_DECREMENT
UX_HOST_CLASS_HID_CONSUMER_CHANNEL_FRONT
UX_HOST_CLASS_HID_CONSUMER_CHANNEL_INCREMENT
UX_HOST_CLASS_HID_CONSUMER_CHANNEL_L
UX_HOST_CLASS_HID_CONSUMER_CHANNEL_LEFT
UX_HOST_CLASS_HID_CONSUMER_CHANNEL_LOW_FREQUENCY
UX_HOST_CLASS_HID_CONSUMER_CHANNEL_RIGHT
UX_HOST_CLASS_HID_CONSUMER_CHANNEL_SIDE
UX_HOST_CLASS_HID_CONSUMER_CHANNEL_SURROUND
UX_HOST_CLASS_HID_CONSUMER_CHANNEL_TOP
UX_HOST_CLASS_HID_CONSUMER_CHANNEL_UNKNOWN
UX_HOST_CLASS_HID_CONSUMER_CLEAR_MARK
UX_HOST_CLASS_HID_CONSUMER_CLIMATE_CONTROL_ENABLE
0x1AA
0x185
0x18E
0x199
0x184
0x1A7
0x1AE
0x18B
0x1AC
0x183
0x173
0x172
0x22
0x174
0x81
0xE1
0x150
0x10D
0xE3
0xE5
0x152
0x151
0x64
0x162
0x164
0x9D
0x163
0x9C
0x86
0x160
0x167
0x161
0x165
0x166
0x168
0x169
0xC3
0x103
202
UX_HOST_CLASS_HID_CONSUMER_CLOSED_CAPTION
UX_HOST_CLASS_HID_CONSUMER_CLOSED_CAPTION_SELECT
UX_HOST_CLASS_HID_CONSUMER_COUNTER_RESET
UX_HOST_CLASS_HID_CONSUMER_DAILY
UX_HOST_CLASS_HID_CONSUMER_DATA_ON_SCREEN
UX_HOST_CLASS_HID_CONSUMER_DURESS_ALARM
UX_HOST_CLASS_HID_CONSUMER_EJECT
UX_HOST_CLASS_HID_CONSUMER_ENTER_CHANNEL
UX_HOST_CLASS_HID_CONSUMER_ENTER_DISC
UX_HOST_CLASS_HID_CONSUMER_EXTENDED_PLAY
UX_HOST_CLASS_HID_CONSUMER_FAN_ENABLE
UX_HOST_CLASS_HID_CONSUMER_FAN_SPEED
UX_HOST_CLASS_HID_CONSUMER_FAST_FORWARD
UX_HOST_CLASS_HID_CONSUMER_FIRE_ALARM
UX_HOST_CLASS_HID_CONSUMER_FRAME_BACK
UX_HOST_CLASS_HID_CONSUMER_FRAME_FORWARD
UX_HOST_CLASS_HID_CONSUMER_FUNCTION_BUTTONS
UX_HOST_CLASS_HID_CONSUMER_GRAPHIC_EQUALIZER
UX_HOST_CLASS_HID_CONSUMER_HEADPHONE
UX_HOST_CLASS_HID_CONSUMER_HELP
UX_HOST_CLASS_HID_CONSUMER_HOLDUP_ALARM
UX_HOST_CLASS_HID_CONSUMER_ILLUMINATION
UX_HOST_CLASS_HID_CONSUMER_LIGHT_ENABLE
UX_HOST_CLASS_HID_CONSUMER_LIGHT_ILLUMINATION_LEVEL
UX_HOST_CLASS_HID_CONSUMER_LONG_PLAY
UX_HOST_CLASS_HID_CONSUMER_LOUDNESS
UX_HOST_CLASS_HID_CONSUMER_MARK
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_CABLE
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_CALL
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_CD
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_COMPUTER
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_DVD
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_GAMES
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_HOME
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_MESSAGES
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_PROGRAM_GUIDE
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_SATELLITE
User Guide
0x61
0x62
0xC8
0xA2
0x60
0x10A
0xB8
0x84
0xBB
0xF4
0xF6
0x100
0xB3
0x106
0xC1
0xC0
0x36
0x06
0x05
0x95
0x10B
0x35
0x101
0x102
0xF3
0xE7
0xC2
0x9E
0x97
0x9B
0x91
0x88
0x8B
0x8F
0x9A
0x90
0x8D
0x98
USBX Constants
203
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_SECURITY
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_TAPE
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_TELEPHONE
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_TUNER
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_TV
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_VCR
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_VIDEO_PHONE
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECT_WWW
UX_HOST_CLASS_HID_CONSUMER_MEDIA_SELECTION
UX_HOST_CLASS_HID_CONSUMER_MEDICAL_ALARM
UX_HOST_CLASS_HID_CONSUMER_MENU
UX_HOST_CLASS_HID_CONSUMER_MENU_DOWN
UX_HOST_CLASS_HID_CONSUMER_MENU_ESCAPE
UX_HOST_CLASS_HID_CONSUMER_MENU_LEFT
UX_HOST_CLASS_HID_CONSUMER_MENU_PICK
UX_HOST_CLASS_HID_CONSUMER_MENU_RIGHT
UX_HOST_CLASS_HID_CONSUMER_MENU_UP
UX_HOST_CLASS_HID_CONSUMER_MENU_VALUE_DECREASE
UX_HOST_CLASS_HID_CONSUMER_MENU_VALUE_INCREASE
UX_HOST_CLASS_HID_CONSUMER_MICROPHONE
UX_HOST_CLASS_HID_CONSUMER_MODE_STEP
UX_HOST_CLASS_HID_CONSUMER_MONTHLY
UX_HOST_CLASS_HID_CONSUMER_MOTION
UX_HOST_CLASS_HID_CONSUMER_MPX
UX_HOST_CLASS_HID_CONSUMER_MUTE
UX_HOST_CLASS_HID_CONSUMER_NUMERIC_KEY_PAD
UX_HOST_CLASS_HID_CONSUMER_ONCE
UX_HOST_CLASS_HID_CONSUMER_ORDER_MOVIE
UX_HOST_CLASS_HID_CONSUMER_PAUSE
UX_HOST_CLASS_HID_CONSUMER_PLAY
UX_HOST_CLASS_HID_CONSUMER_PLAY_PAUSE
UX_HOST_CLASS_HID_CONSUMER_PLAY_SKIP
UX_HOST_CLASS_HID_CONSUMER_PLAYBACK_SPEED
UX_HOST_CLASS_HID_CONSUMER_PLUS_10
UX_HOST_CLASS_HID_CONSUMER_PLUS_100
UX_HOST_CLASS_HID_CONSUMER_POLICE_ALARM
UX_HOST_CLASS_HID_CONSUMER_POWER
UX_HOST_CLASS_HID_CONSUMER_PROGRAMMABLE_BUTTONS
0x99
0x96
0x8C
0x93
0x89
0x92
0x8E
0x8A
0x87
0x10C
0x40
0x43
0x46
0x44
0x41
0x45
0x42
0x48
0x47
0x04
0x82
0xA4
0x109
0xE8
0xE2
0x02
0xA1
0x85
0xB1
0xB0
0xCD
0xCE
0xF1
0x20
0x21
0x107
0x30
0x03
204
UX_HOST_CLASS_HID_CONSUMER_PROXIMITY
UX_HOST_CLASS_HID_CONSUMER_QUIT
UX_HOST_CLASS_HID_CONSUMER_RANDOM_PLAY
UX_HOST_CLASS_HID_CONSUMER_RECALL_LAST
UX_HOST_CLASS_HID_CONSUMER_RECORD
UX_HOST_CLASS_HID_CONSUMER_REMOTE_CONTROL
UX_HOST_CLASS_HID_CONSUMER_REPEAT
UX_HOST_CLASS_HID_CONSUMER_REPEAT_FROM_MARK
UX_HOST_CLASS_HID_CONSUMER_RESET
UX_HOST_CLASS_HID_CONSUMER_RETURN_TO_MARK
UX_HOST_CLASS_HID_CONSUMER_REWIND
UX_HOST_CLASS_HID_CONSUMER_ROOM_TEMPERATURE
UX_HOST_CLASS_HID_CONSUMER_SCAN_NEXT_TRACK
UX_HOST_CLASS_HID_CONSUMER_SCAN_PREVIOUS_TRACK
UX_HOST_CLASS_HID_CONSUMER_SEARCH_MARK_BACKWARDS
UX_HOST_CLASS_HID_CONSUMER_SEARCH_MARK_FORWARD
UX_HOST_CLASS_HID_CONSUMER_SECURITY_ENABLE
UX_HOST_CLASS_HID_CONSUMER_SELECT_DISC
UX_HOST_CLASS_HID_CONSUMER_SELECTION
UX_HOST_CLASS_HID_CONSUMER_SHOW_COUNTER
UX_HOST_CLASS_HID_CONSUMER_SLEEP
UX_HOST_CLASS_HID_CONSUMER_SLEEP_AFTER
UX_HOST_CLASS_HID_CONSUMER_SLEEP_MODE_RTC
UX_HOST_CLASS_HID_CONSUMER_SLOW
UX_HOST_CLASS_HID_CONSUMER_SLOW_TRACKING
UX_HOST_CLASS_HID_CONSUMER_SNAPSHOT
UX_HOST_CLASS_HID_CONSUMER_SPEAKER_SYSTEM
UX_HOST_CLASS_HID_CONSUMER_SPEED_SELECT
UX_HOST_CLASS_HID_CONSUMER_STANDARD_PLAY
UX_HOST_CLASS_HID_CONSUMER_STILL
UX_HOST_CLASS_HID_CONSUMER_STOP
UX_HOST_CLASS_HID_CONSUMER_STOP_EJECT
UX_HOST_CLASS_HID_CONSUMER_SUB_CHANNEL
UX_HOST_CLASS_HID_CONSUMER_SUB_CHANNEL_DECREMENT
UX_HOST_CLASS_HID_CONSUMER_SUB_CHANNEL_INCREMENT
UX_HOST_CLASS_HID_CONSUMER_SURROUND_MODE
UX_HOST_CLASS_HID_CONSUMER_TRACK_NORMAL
UX_HOST_CLASS_HID_CONSUMER_TRACKING
User Guide
0x108
0x94
0xB9
0x83
0xB2
0x01
0xBC
0xC4
0x31
0xC5
0xB4
0x104
0xB5
0xB6
0xC7
0xC6
0x105
0xBA
0x80
0xC9
0x32
0x33
0x34
0xF5
0xBF
0x65
0x155
0xF0
0xF2
0x66
0xB7
0xCC
0x16A
0x171
0x170
0xE6
0xBE
0xBD
USBX Constants
205
UX_HOST_CLASS_HID_CONSUMER_TRACKING_DECREMENT
UX_HOST_CLASS_HID_CONSUMER_TRACKING_INCREMENT
UX_HOST_CLASS_HID_CONSUMER_TREBLE
UX_HOST_CLASS_HID_CONSUMER_TREBLE_DECREMENT
UX_HOST_CLASS_HID_CONSUMER_TREBLE_INCREMENT
UX_HOST_CLASS_HID_CONSUMER_UNASSIGNED
UX_HOST_CLASS_HID_CONSUMER_VCR_PLUS
UX_HOST_CLASS_HID_CONSUMER_VCR_TV
UX_HOST_CLASS_HID_CONSUMER_VOLUME
UX_HOST_CLASS_HID_CONSUMER_VOLUME_DECREMENT
UX_HOST_CLASS_HID_CONSUMER_VOLUME_INCREMENT
UX_HOST_CLASS_HID_CONSUMER_WEEKLY
UX_HOST_CLASS_HID_DECOMPRESSION_BUFFER
UX_HOST_CLASS_HID_DELIMITER_CLOSE
UX_HOST_CLASS_HID_DELIMITER_ERROR
UX_HOST_CLASS_HID_DELIMITER_OPEN
UX_HOST_CLASS_HID_DESCRIPTOR
UX_HOST_CLASS_HID_DESCRIPTOR
UX_HOST_CLASS_HID_FIELDS
UX_HOST_CLASS_HID_GAME_CONTROL_3D_GAME_CONTROLLER
UX_HOST_CLASS_HID_GAME_CONTROL_BUMP
UX_HOST_CLASS_HID_GAME_CONTROL_FLIPPER
UX_HOST_CLASS_HID_GAME_CONTROL_GAMEAD_FIRE_JUMP
UX_HOST_CLASS_HID_GAME_CONTROL_GAMEPAD_TRIGGER
UX_HOST_CLASS_HID_GAME_CONTROL_GUN_AUTOMATIC
UX_HOST_CLASS_HID_GAME_CONTROL_GUN_BOLT
UX_HOST_CLASS_HID_GAME_CONTROL_GUN_BURST
UX_HOST_CLASS_HID_GAME_CONTROL_GUN_CLIP
UX_HOST_CLASS_HID_GAME_CONTROL_GUN_DEVICE
UX_HOST_CLASS_HID_GAME_CONTROL_GUN_SAFETY
UX_HOST_CLASS_HID_GAME_CONTROL_GUN_SELECTOR
UX_HOST_CLASS_HID_GAME_CONTROL_GUN_SINGLE_SHOT
UX_HOST_CLASS_HID_GAME_CONTROL_HEIGHT_OF_POV
UX_HOST_CLASS_HID_GAME_CONTROL_LEAN_FORWARD_BACKWARD
UX_HOST_CLASS_HID_GAME_CONTROL_LEAN_RIGHT_LEFT
UX_HOST_CLASS_HID_GAME_CONTROL_MOVE_FORWARD_BACKWARD
UX_HOST_CLASS_HID_GAME_CONTROL_MOVE_RIGHT_LEFT
UX_HOST_CLASS_HID_GAME_CONTROL_MOVE_UP_DOWN
0xCB
0xCA
0xE4
0x154
0x153
0x00
0xA0
0x63
0xE0
0xEA
0xE9
0xA3
4096
0
0x78
1
0x21
0x21
16
0x01
0x2C
0x2A
0x37
0x39
0x35
0x30
0x34
0x31
0x03
0x36
0x32
0x33
0x29
0x28
0x27
0x25
0x24
0x26
206
UX_HOST_CLASS_HID_GAME_CONTROL_NEW_GAME
0x2D
UX_HOST_CLASS_HID_GAME_CONTROL_PINBALL_DEVICE
0x02
UX_HOST_CLASS_HID_GAME_CONTROL_PITCH_FORWARD_BACKWARD
0x22
UX_HOST_CLASS_HID_GAME_CONTROL_PLAYER
0x2F
UX_HOST_CLASS_HID_GAME_CONTROL_POINT_OF_VIEW
0x20
UX_HOST_CLASS_HID_GAME_CONTROL_ROLL_RIGHT_LEFT
0x23
UX_HOST_CLASS_HID_GAME_CONTROL_SECONDARY_FLIPPER
0x2B
UX_HOST_CLASS_HID_GAME_CONTROL_SHOOT_BALL
0x2E
UX_HOST_CLASS_HID_GAME_CONTROL_TURN_RIGHT_LEFT
0x21
UX_HOST_CLASS_HID_GAME_CONTROL_UNDEFINED
0x00
UX_HOST_CLASS_HID_GENERIC_DESKTOP_APPLICAION_BREAK
0xA5
UX_HOST_CLASS_HID_GENERIC_DESKTOP_APPLICATION_DEBUGGER_BREAK
0xA6
UX_HOST_CLASS_HID_GENERIC_DESKTOP_BYTE_COUNT
0x3B
UX_HOST_CLASS_HID_GENERIC_DESKTOP_COUNTED_BUFFER
0x3A
UX_HOST_CLASS_HID_GENERIC_DESKTOP_D_PAD_DOWN
0x91
UX_HOST_CLASS_HID_GENERIC_DESKTOP_D_PAD_LEFT
0x93
UX_HOST_CLASS_HID_GENERIC_DESKTOP_D_PAD_RIGHT
0x92
UX_HOST_CLASS_HID_GENERIC_DESKTOP_D_PAD_UP
0x90
UX_HOST_CLASS_HID_GENERIC_DESKTOP_DIAL
0x37
UX_HOST_CLASS_HID_GENERIC_DESKTOP_FEATURE_NOTIFICATION
0x47
UX_HOST_CLASS_HID_GENERIC_DESKTOP_GAME PAD
0x05
UX_HOST_CLASS_HID_GENERIC_DESKTOP_HAT_SWITCH
0x39
UX_HOST_CLASS_HID_GENERIC_DESKTOP_JOYSTICK
0x04
UX_HOST_CLASS_HID_GENERIC_DESKTOP_KEYBOARD
0x06
UX_HOST_CLASS_HID_GENERIC_DESKTOP_KEYPAD
0x07
UX_HOST_CLASS_HID_GENERIC_DESKTOP_MOTION_WAKEUP
0x3C
UX_HOST_CLASS_HID_GENERIC_DESKTOP_MOUSE
0x02
UX_HOST_CLASS_HID_GENERIC_DESKTOP_MULTI_AXIS_CONTROLLER
0x08
UX_HOST_CLASS_HID_GENERIC_DESKTOP_POINTER
0x01
UX_HOST_CLASS_HID_GENERIC_DESKTOP_RESERVED
0x03
UX_HOST_CLASS_HID_GENERIC_DESKTOP_RX
0x33
UX_HOST_CLASS_HID_GENERIC_DESKTOP_RY
0x34
UX_HOST_CLASS_HID_GENERIC_DESKTOP_RZ
0x35
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SELECT
0x3E
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SLIDER
0x36
UX_HOST_CLASS_HID_GENERIC_DESKTOP_START
0x3D
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_APP_MENU
0x86
User Guide
USBX Constants
207
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_BREAK
0xA3
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_COLD_RESTART
0x8E
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_CONTEXT_MENU
0x84
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_CONTROL
0x80
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_DEBUGGER_BREAK
0xA4
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_DISPLAY_BOTH
0xB3
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_DISPLAY_DUAL
0xB4
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_DISPLAY_EXTERNAL 0xB2
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_DISPLAY_INTERNAL
0xB1
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_DISPLAY_INVERT
0xB0
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_DISPLAY_LCD_AUTOSCALE
0xB7
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_DISPLAY_SWAP
0xB6
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_DISPLAY_TOGGLE
0xB5
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_DOCK
0xA0
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_HIBERNATE
0xA8
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_MAIN_MENU
0x85
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_MENU_DOWN
0x8D
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_MENU_EXIT
0x88
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_MENU_HELP
0x87
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_MENU_LEFT
0x8B
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_MENU_RIGHT
0x8A
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_MENU_SELECT
0x89
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_MENU_UP
0x8C
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_POWER_DOWN
0x81
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_SETUP
0xA2
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_SLEEP
0x82
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_SPEAKER_MUTE
0xA7
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_UNDOCK
0xA1
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_WAKE_UP
0x83
UX_HOST_CLASS_HID_GENERIC_DESKTOP_SYSTEM_WARM_RESTART
0x8F
UX_HOST_CLASS_HID_GENERIC_DESKTOP_UNDEFINED
0x00
UX_HOST_CLASS_HID_GENERIC_DESKTOP_VBRX
0x43
UX_HOST_CLASS_HID_GENERIC_DESKTOP_VBRY
0x44
UX_HOST_CLASS_HID_GENERIC_DESKTOP_VBRZ
0x45
UX_HOST_CLASS_HID_GENERIC_DESKTOP_VNO
0x46
UX_HOST_CLASS_HID_GENERIC_DESKTOP_VX
0x40
UX_HOST_CLASS_HID_GENERIC_DESKTOP_VY
0x41
208
UX_HOST_CLASS_HID_GENERIC_DESKTOP_VZ
UX_HOST_CLASS_HID_GENERIC_DESKTOP_WHEEL
UX_HOST_CLASS_HID_GENERIC_DESKTOP_X
UX_HOST_CLASS_HID_GENERIC_DESKTOP_Y
UX_HOST_CLASS_HID_GENERIC_DESKTOP_Z
UX_HOST_CLASS_HID_GET_IDLE
UX_HOST_CLASS_HID_GET_PROTOCOL
UX_HOST_CLASS_HID_GET_REPORT
UX_HOST_CLASS_HID_GLOBAL_TAG_LOGICAL_MAXIMUM
UX_HOST_CLASS_HID_GLOBAL_TAG_LOGICAL_MINIMUM
UX_HOST_CLASS_HID_GLOBAL_TAG_PHYSICAL_MAXIMUM
UX_HOST_CLASS_HID_GLOBAL_TAG_PHYSICAL_MINIMUM
UX_HOST_CLASS_HID_GLOBAL_TAG_POP
UX_HOST_CLASS_HID_GLOBAL_TAG_PUSH
UX_HOST_CLASS_HID_GLOBAL_TAG_REPORT_COUNT
UX_HOST_CLASS_HID_GLOBAL_TAG_REPORT_ID
UX_HOST_CLASS_HID_GLOBAL_TAG_REPORT_SIZE
UX_HOST_CLASS_HID_GLOBAL_TAG_UNIT
UX_HOST_CLASS_HID_GLOBAL_TAG_UNIT_EXPONENT
UX_HOST_CLASS_HID_GLOBAL_TAG_USAGE_PAGE
UX_HOST_CLASS_HID_INTERRUPT_ENDPOINT_ACTIVE
UX_HOST_CLASS_HID_INTERRUPT_ENDPOINT_READY
UX_HOST_CLASS_HID_ITEM_BUFFERED_BYTES
UX_HOST_CLASS_HID_ITEM_CONSTANT
UX_HOST_CLASS_HID_ITEM_LENGTH_MASK
UX_HOST_CLASS_HID_ITEM_NO_PREFERRED_STATE
UX_HOST_CLASS_HID_ITEM_NON_LINEAR
UX_HOST_CLASS_HID_ITEM_NULL_STATE
UX_HOST_CLASS_HID_ITEM_RELATIVE
UX_HOST_CLASS_HID_ITEM_TAG_LONG
UX_HOST_CLASS_HID_ITEM_TAG_MASK
UX_HOST_CLASS_HID_ITEM_TAG_SHORT
UX_HOST_CLASS_HID_ITEM_VARIABLE
UX_HOST_CLASS_HID_ITEM_VOLATILE
UX_HOST_CLASS_HID_ITEM_WRAP
UX_HOST_CLASS_HID_LED_BATTERY_LOW
UX_HOST_CLASS_HID_LED_BATTERY_OK
UX_HOST_CLASS_HID_LED_BATTERY_OPERATION
User Guide
0x42
0x38
0x30
0x31
0x32
0x02
0x03
0x01
0x2
0x1
0x4
0x3
0xb
0xa
0x9
0x8
0x7
0x6
0x5
0x0
2
1
0x0100
0x0001
3
0x0020
0x0010
0x0040
0x0004
3
0xf0
1
0x0002
0x0080
0x0008
0x1D
0x1C
0x1B
USBX Constants
209
UX_HOST_CLASS_HID_LED_BUSY
UX_HOST_CLASS_HID_LED_CALL_PICKUP
UX_HOST_CLASS_HID_LED_CAMERA_OFF
UX_HOST_CLASS_HID_LED_CAMERA_ON
UX_HOST_CLASS_HID_LED_CAPS_LOCK
UX_HOST_CLASS_HID_LED_CAV
UX_HOST_CLASS_HID_LED_CLV
UX_HOST_CLASS_HID_LED_COMPOSE
UX_HOST_CLASS_HID_LED_CONFERENCE
UX_HOST_CLASS_HID_LED_COVERAGE
UX_HOST_CLASS_HID_LED_DATA_MODE
UX_HOST_CLASS_HID_LED_DO_NOT_DISTURB
UX_HOST_CLASS_HID_LED_EQUALIZER_ENABLE
UX_HOST_CLASS_HID_LED_ERROR
UX_HOST_CLASS_HID_LED_EXTERNAL_POWER_CONNECTED
UX_HOST_CLASS_HID_LED_FAST_BLINK_OFF_TIME
UX_HOST_CLASS_HID_LED_FAST_BLINK_ON_TIME
UX_HOST_CLASS_HID_LED_FAST_FORWARD
UX_HOST_CLASS_HID_LED_FLASH_ON_TIME
UX_HOST_CLASS_HID_LED_FORWARD
UX_HOST_CLASS_HID_LED_GENERIC_INDICATOR
UX_HOST_CLASS_HID_LED_HEAD_SET
UX_HOST_CLASS_HID_LED_HIGH_CUT_FILTER
UX_HOST_CLASS_HID_LED_HOLD
UX_HOST_CLASS_HID_LED_INDICATOR_AMBER
UX_HOST_CLASS_HID_LED_INDICATOR_FAST_BLINK
UX_HOST_CLASS_HID_LED_INDICATOR_FLASH
UX_HOST_CLASS_HID_LED_INDICATOR_GREEN
UX_HOST_CLASS_HID_LED_INDICATOR_OFF
UX_HOST_CLASS_HID_LED_INDICATOR_ON
UX_HOST_CLASS_HID_LED_INDICATOR_RED
UX_HOST_CLASS_HID_LED_INDICATOR_SLOW_BLINK
UX_HOST_CLASS_HID_LED_KANA
UX_HOST_CLASS_HID_LED_LOW_CUT_FILTER
UX_HOST_CLASS_HID_LED_MESSAGE_WAITING
UX_HOST_CLASS_HID_LED_MICROPHONE
UX_HOST_CLASS_HID_LED_MUTE
UX_HOST_CLASS_HID_LED_NIGHT_MODE
0x2C
0x25
0x29
0x28
0x02
0x14
0x15
0x04
0x26
0x22
0x1A
0x08
0x0D
0x39
0x4D
0x46
0x45
0x35
0x42
0x31
0x4B
0x1F
0x0B
0x20
0x4A
0x40
0x3E
0x49
0x41
0x3D
0x48
0x3F
0x05
0x0C
0x19
0x21
0x09
0x23
210
UX_HOST_CLASS_HID_LED_NUM_LOCK
UX_HOST_CLASS_HID_LED_OFF_HOOK
UX_HOST_CLASS_HID_LED_OFF_LINE
UX_HOST_CLASS_HID_LED_ON_LINE
UX_HOST_CLASS_HID_LED_PAPER_JAM
UX_HOST_CLASS_HID_LED_PAPER_OUT
UX_HOST_CLASS_HID_LED_PAUSE
UX_HOST_CLASS_HID_LED_PLAY
UX_HOST_CLASS_HID_LED_POWER
UX_HOST_CLASS_HID_LED_READY
UX_HOST_CLASS_HID_LED_RECORD
UX_HOST_CLASS_HID_LED_RECORDING_FORMAT_DETECT
UX_HOST_CLASS_HID_LED_REMOTE
UX_HOST_CLASS_HID_LED_REPEAT
UX_HOST_CLASS_HID_LED_REVERSE
UX_HOST_CLASS_HID_LED_REWIND
UX_HOST_CLASS_HID_LED_RING
UX_HOST_CLASS_HID_LED_SAMPLING_RATE_DETECT
UX_HOST_CLASS_HID_LED_SCROLL_LOCK
UX_HOST_CLASS_HID_LED_SEND_CALLS
UX_HOST_CLASS_HID_LED_SHIFT
UX_HOST_CLASS_HID_LED_SLOW_BLINK_OFF_TIME
UX_HOST_CLASS_HID_LED_SLOW_BLINK_ON_TIME
UX_HOST_CLASS_HID_LED_SOUND_FIELD_ON
UX_HOST_CLASS_HID_LED_SPEAKER
UX_HOST_CLASS_HID_LED_SPINNING
UX_HOST_CLASS_HID_LED_STAND_BY
UX_HOST_CLASS_HID_LED_STEREO
UX_HOST_CLASS_HID_LED_STOP
UX_HOST_CLASS_HID_LED_SURROUND_ON
UX_HOST_CLASS_HID_LED_SYSTEM_SUSPEND
UX_HOST_CLASS_HID_LED_TONE_ENABLE
UX_HOST_CLASS_HID_LED_UNDEFINED
UX_HOST_CLASS_HID_LED_USAGE MULTI_MODE_INDICATOR
UX_HOST_CLASS_HID_LED_USAGE_IN_USE_INDICATOR
UX_HOST_CLASS_HID_LED_USAGE_INDICATOR_COLOR
UX_HOST_CLASS_HID_LED_USAGE_SELECTED_INDICATOR
UX_HOST_CLASS_HID_LOCAL_TAG_DELIMITER
User Guide
0x01
0x17
0x2B
0x2A
0x2F
0x2E
0x37
0x36
0x06
0x2D
0x38
0x16
0x30
0x10
0x32
0x34
0x18
0x12
0x03
0x24
0x07
0x44
0x43
0x0E
0x1E
0x13
0x27
0x11
0x33
0x0F
0x4C
0x0A
0x00
0x3C
0x3B
0x47
0x3A
0xa
USBX Constants
211
UX_HOST_CLASS_HID_LOCAL_TAG_DESIGNATOR_INDEX
UX_HOST_CLASS_HID_LOCAL_TAG_DESIGNATOR_MAXIMUM
UX_HOST_CLASS_HID_LOCAL_TAG_DESIGNATOR_MINIMUM
UX_HOST_CLASS_HID_LOCAL_TAG_STRING_INDEX
UX_HOST_CLASS_HID_LOCAL_TAG_STRING_MAXIMUM
UX_HOST_CLASS_HID_LOCAL_TAG_STRING_MINIMUM
UX_HOST_CLASS_HID_LOCAL_TAG_USAGE
UX_HOST_CLASS_HID_LOCAL_TAG_USAGE_MAXIMUM
UX_HOST_CLASS_HID_LOCAL_TAG_USAGE_MINIMUM
UX_HOST_CLASS_HID_MAIN_TAG_COLLECTION
UX_HOST_CLASS_HID_MAIN_TAG_END_COLLECTION
UX_HOST_CLASS_HID_MAIN_TAG_FEATURE
UX_HOST_CLASS_HID_MAIN_TAG_INPUT
UX_HOST_CLASS_HID_MAIN_TAG_OUTPUT
UX_HOST_CLASS_HID_MAX_CLIENTS
UX_HOST_CLASS_HID_MAX_COLLECTION
UX_HOST_CLASS_HID_MAX_REPORT
UX_HOST_CLASS_HID_MIN_MAX_ERROR
UX_HOST_CLASS_HID_PAGE_ALPHANUMERIC_DISPLAY
UX_HOST_CLASS_HID_PAGE_BAR_CODE_SCANNER
UX_HOST_CLASS_HID_PAGE_BUTTON
UX_HOST_CLASS_HID_PAGE_CAMERA_CONTROL_PAGE
UX_HOST_CLASS_HID_PAGE_CONSUMER
UX_HOST_CLASS_HID_PAGE_DIGITIZER
UX_HOST_CLASS_HID_PAGE_GAME_CONTROLS
UX_HOST_CLASS_HID_PAGE_GENERIC_DESKTOP_CONTROLS
UX_HOST_CLASS_HID_PAGE_GENERIC_DEVICE_CONTROLS
UX_HOST_CLASS_HID_PAGE_KEYBOARD_KEYPAD
UX_HOST_CLASS_HID_PAGE_LEDS
UX_HOST_CLASS_HID_PAGE_MAGNETIC_STRIPE_READING
UX_HOST_CLASS_HID_PAGE_MEDICAL_INSTRUMENTS
UX_HOST_CLASS_HID_PAGE_ORDINAL
UX_HOST_CLASS_HID_PAGE_PHYSICAL_INTERFACE_DEVICE
UX_HOST_CLASS_HID_PAGE_SCALE_PAGE
UX_HOST_CLASS_HID_PAGE_SIMULATION_CONTROLS
UX_HOST_CLASS_HID_PAGE_SPORT_CONTROLS
UX_HOST_CLASS_HID_PAGE_TELEPHONY
UX_HOST_CLASS_HID_PAGE_UNICODE
0x3
0x5
0x4
0x7
0x9
0x8
0x0
0x2
0x1
0xa
0xc
0xb
0x8
0x9
8
4
8
0x77
0x14
0x8C
0x09
0x90
0x0C
0x0D
0x05
0x01
0x06
0x07
0x08
0x8E
0x40
0x0A
0x0F
0x8D
0x02
0x04
0x0B
0x10
212
UX_HOST_CLASS_HID_PAGE_VR_CONTROLS
UX_HOST_CLASS_HID_PERIODIC_REPORT_ERROR
UX_HOST_CLASS_HID_PHYSICAL_DESCRIPTOR
UX_HOST_CLASS_HID_POP_UNDERFLOW
UX_HOST_CLASS_HID_PUSH_OVERFLOW
UX_HOST_CLASS_HID_REPORT_DECOMPRESSED
UX_HOST_CLASS_HID_REPORT_DESCRIPTOR
UX_HOST_CLASS_HID_REPORT_ERROR
UX_HOST_CLASS_HID_REPORT_INDIVIDUAL_USAGE
UX_HOST_CLASS_HID_REPORT_OVERFLOW
UX_HOST_CLASS_HID_REPORT_RAW
UX_HOST_CLASS_HID_REPORT_SIZE
UX_HOST_CLASS_HID_REPORT_TYPE_FEATURE
UX_HOST_CLASS_HID_REPORT_TYPE_INPUT
UX_HOST_CLASS_HID_REPORT_TYPE_OUTPUT
UX_HOST_CLASS_HID_SET_IDLE
UX_HOST_CLASS_HID_SET_PROTOCOL
UX_HOST_CLASS_HID_SET_REPORT
UX_HOST_CLASS_HID_TAG_UNSUPPORTED
UX_HOST_CLASS_HID_TYPE_GLOBAL
UX_HOST_CLASS_HID_TYPE_LOCAL
UX_HOST_CLASS_HID_TYPE_MAIN
UX_HOST_CLASS_HID_TYPE_RESERVED
UX_HOST_CLASS_HID_UNKNOWN
UX_HOST_CLASS_HID_USAGE_OVERFLOW
UX_HOST_CLASS_HUB_C_PORT_CONNECTION
UX_HOST_CLASS_HUB_C_PORT_ENABLE
UX_HOST_CLASS_HUB_C_PORT_OVER_CURRENT
UX_HOST_CLASS_HUB_C_PORT_RESET
UX_HOST_CLASS_HUB_C_PORT_SUSPEND
UX_HOST_CLASS_HUB_CLASS
UX_HOST_CLASS_HUB_CLEAR_FEATURE
UX_HOST_CLASS_HUB_COMPOUND_DEVICE
UX_HOST_CLASS_HUB_ENABLE_RETRY_COUNT
UX_HOST_CLASS_HUB_ENABLE_RETRY_DELAY
UX_HOST_CLASS_HUB_ENUMERATION_RETRY
UX_HOST_CLASS_HUB_ENUMERATION_RETRY_DELAY
UX_HOST_CLASS_HUB_GANG_POWER_SWITCHING
User Guide
0x03
0x7A
0x23
0x74
0x73
0
0x22
0x79
2
0x70
1
32
0x3
0x1
0x2
0x0A
0x0B
0x09
0x72
0x1
0x2
0x0
0x3
0x7B
0x71
0x10
0x11
0x13
0x14
0x12
9
0x01
0x04
3
100
3
300
0x00
USBX Constants
UX_HOST_CLASS_HUB_GET_DESCRIPTOR
UX_HOST_CLASS_HUB_GET_STATE
UX_HOST_CLASS_HUB_GET_STATUS
UX_HOST_CLASS_HUB_GLOBAL_OVERCURRENT
UX_HOST_CLASS_HUB_INDIVIDUAL_OVERCURRENT
UX_HOST_CLASS_HUB_INDIVIDUAL_POWER_SWITCHING
UX_HOST_CLASS_HUB_NO_OVERCURRENT
UX_HOST_CLASS_HUB_NO_POWER_SWITCHING
UX_HOST_CLASS_HUB_NOT_POWERED
UX_HOST_CLASS_HUB_PORT_CHANGE_CONNECTION
UX_HOST_CLASS_HUB_PORT_CHANGE_ENABLE
UX_HOST_CLASS_HUB_PORT_CHANGE_OVER_CURRENT
UX_HOST_CLASS_HUB_PORT_CHANGE_RESET
UX_HOST_CLASS_HUB_PORT_CHANGE_SUSPEND
UX_HOST_CLASS_HUB_PORT_CONNECTION
UX_HOST_CLASS_HUB_PORT_ENABLE
UX_HOST_CLASS_HUB_PORT_LOW_SPEED
UX_HOST_CLASS_HUB_PORT_OVER_CURRENT
UX_HOST_CLASS_HUB_PORT_POWER
UX_HOST_CLASS_HUB_PORT_RESET
UX_HOST_CLASS_HUB_PORT_STATUS_CONNECTION
UX_HOST_CLASS_HUB_PORT_STATUS_ENABLE
UX_HOST_CLASS_HUB_PORT_STATUS_HIGH_SPEED
UX_HOST_CLASS_HUB_PORT_STATUS_LOW_SPEED
UX_HOST_CLASS_HUB_PORT_STATUS_OVER_CURRENT
UX_HOST_CLASS_HUB_PORT_STATUS_POWER
UX_HOST_CLASS_HUB_PORT_STATUS_RESET
UX_HOST_CLASS_HUB_PORT_STATUS_SUSPEND
UX_HOST_CLASS_HUB_PORT_SUSPEND
UX_HOST_CLASS_HUB_PROTOCOL_FS
UX_HOST_CLASS_HUB_PROTOCOL_MULTIPLE_TT
UX_HOST_CLASS_HUB_PROTOCOL_SINGLE_TT
UX_HOST_CLASS_HUB_SET_DESCRIPTOR
UX_HOST_CLASS_HUB_SET_FEATURE
UX_HOST_CLASS_INSTANCE_FREE
UX_HOST_CLASS_INSTANCE_LIVE
UX_HOST_CLASS_INSTANCE_OPENED
UX_HOST_CLASS_INSTANCE_SHUTDOWN
213
0x06
0x02
0x00
0x00
0x08
0x01
0x10
0x02
8
0x00001
0x00002
0x00008
0x00010
0x00004
0x00
0x01
0x09
0x03
0x08
0x04
0x0001
0x0002
0x0400
0x0200
0x0008
0x0100
0x0010
0x0004
0x02
0
2
1
0x07
0x03
0
1
3
2
214
UX_HOST_CLASS_INSTANCE_UNKNOWN
UX_HOST_CLASS_MEDIA_NOT_SUPPORTED
UX_HOST_CLASS_MEMORY_ERROR
UX_HOST_CLASS_PRINTER_CLASS
UX_HOST_CLASS_PRINTER_CLASS_TRANSFER_TIMEOUT
UX_HOST_CLASS_PRINTER_DESCRIPTOR_LENGTH
UX_HOST_CLASS_PRINTER_GENERIC_NAME
UX_HOST_CLASS_PRINTER_GET_DEVICE_ID
UX_HOST_CLASS_PRINTER_GET_STATUS
UX_HOST_CLASS_PRINTER_NAME_LENGTH
UX_HOST_CLASS_PRINTER_NAME_LENGTH
UX_HOST_CLASS_PRINTER_PROTOCOL_BI_DIRECTIONAL
UX_HOST_CLASS_PRINTER_SOFT_RESET
UX_HOST_CLASS_PRINTER_STATUS_LENGTH
UX_HOST_CLASS_PRINTER_SUBCLASS
UX_HOST_CLASS_PRINTER_TAG_DES
UX_HOST_CLASS_PRINTER_TAG_DESCRIPTION
UX_HOST_CLASS_PROTOCOL_ERROR
UX_HOST_CLASS_STORAGE_CBI_STATUS_TIMEOUT
UX_HOST_CLASS_STORAGE_CBW_CB
UX_HOST_CLASS_STORAGE_CBW_CB_LENGTH
UX_HOST_CLASS_STORAGE_CBW_DATA_LENGTH
UX_HOST_CLASS_STORAGE_CBW_FLAGS
UX_HOST_CLASS_STORAGE_CBW_LUN
UX_HOST_CLASS_STORAGE_CBW_SIGNATURE
UX_HOST_CLASS_STORAGE_CBW_SIGNATURE_MASK
UX_HOST_CLASS_STORAGE_CBW_SIZE
UX_HOST_CLASS_STORAGE_CBW_TAG
UX_HOST_CLASS_STORAGE_CBW_TAG_MASK
UX_HOST_CLASS_STORAGE_CLASS
UX_HOST_CLASS_STORAGE_COMMAND_ERROR
UX_HOST_CLASS_STORAGE_CSW_DATA_RESIDUE
UX_HOST_CLASS_STORAGE_CSW_FAILED
UX_HOST_CLASS_STORAGE_CSW_PASSED
UX_HOST_CLASS_STORAGE_CSW_PHASE_ERROR
UX_HOST_CLASS_STORAGE_CSW_SIGNATURE
UX_HOST_CLASS_STORAGE_CSW_STATUS
UX_HOST_CLASS_STORAGE_CSW_TAG
User Guide
0x5b
0x62
0x61
7
300000
1024
"USB PRINTER"
0
1
64
64
2
2
4
1
"DES:"
"DESCRIPTION:"
0x60
3000
15
14
8
12
13
0
0x43425355
64
4
0x55534243
8
2
8
13
0
2
0
12
4
USBX Constants
215
UX_HOST_CLASS_STORAGE_DATA_IN
0x80
UX_HOST_CLASS_STORAGE_DATA_OUT
0
UX_HOST_CLASS_STORAGE_DEVICE_INIT_DELAY
(2 * UX_PERIODIC_RATE)
UX_HOST_CLASS_STORAGE_ERROR_MEDIA_NOT_READ
0x023A00
UX_HOST_CLASS_STORAGE_GET_MAX_LUN
0xfe
UX_HOST_CLASS_STORAGE_INQUIRY_ALLOCATION_LENGTH
4
UX_HOST_CLASS_STORAGE_INQUIRY_COMMAND_LENGTH_SBC
06
UX_HOST_CLASS_STORAGE_INQUIRY_COMMAND_LENGTH_UFI
12
UX_HOST_CLASS_STORAGE_INQUIRY_LUN
1
UX_HOST_CLASS_STORAGE_INQUIRY_OPERATION
0
UX_HOST_CLASS_STORAGE_INQUIRY_PAGE_CODE
2
UX_HOST_CLASS_STORAGE_INQUIRY_RESPONSE_ADDITIONAL_LENGTH
4
UX_HOST_CLASS_STORAGE_INQUIRY_RESPONSE_DATA_FORMAT
3
UX_HOST_CLASS_STORAGE_INQUIRY_RESPONSE_LENGTH
36
UX_HOST_CLASS_STORAGE_INQUIRY_RESPONSE_PERIPHERAL_TYPE
0
UX_HOST_CLASS_STORAGE_INQUIRY_RESPONSE_PRODUCT_ID
16
UX_HOST_CLASS_STORAGE_INQUIRY_RESPONSE_PRODUCT_REVISION
32
UX_HOST_CLASS_STORAGE_INQUIRY_RESPONSE_REMOVABLE_MEDIA
1
UX_HOST_CLASS_STORAGE_INQUIRY_RESPONSE_VENDOR_INFORMATION
8
UX_HOST_CLASS_STORAGE_MAX_MEDIA
8
UX_HOST_CLASS_STORAGE_MEDIA_CDROM
5
UX_HOST_CLASS_STORAGE_MEDIA_FAT_DISK
0
UX_HOST_CLASS_STORAGE_MEDIA_IOMEGA_CLICK
0x55
UX_HOST_CLASS_STORAGE_MEDIA_KNOWN
1
UX_HOST_CLASS_STORAGE_MEDIA_MOUNTED
1
UX_HOST_CLASS_STORAGE_MEDIA_NAME
"usb disk"
UX_HOST_CLASS_STORAGE_MEDIA_OPTICAL_DISK
7
UX_HOST_CLASS_STORAGE_MEDIA_REMOVABLE
0x80
UX_HOST_CLASS_STORAGE_MEDIA_UNKNOWN
0
UX_HOST_CLASS_STORAGE_MEDIA_UNMOUNTED
0
UX_HOST_CLASS_STORAGE_MEMORY_BUFFER_SIZE
1024*8
UX_HOST_CLASS_STORAGE_MODE_SENSE_ALL_PAGE
0x3F
UX_HOST_CLASS_STORAGE_MODE_SENSE_ALL_PAGE_LENGTH
0xC0
UX_HOST_CLASS_STORAGE_MODE_SENSE_COMMAND_LENGTH_SBC
12
UX_HOST_CLASS_STORAGE_MODE_SENSE_COMMAND_LENGTH_UFI
12
UX_HOST_CLASS_STORAGE_MODE_SENSE_FD_PAGE
0x05
UX_HOST_CLASS_STORAGE_MODE_SENSE_FD_PAGE_LENGTH
0x20
UX_HOST_CLASS_STORAGE_MODE_SENSE_HEADER_PAGE_LENGTH
0x08
216
UX_HOST_CLASS_STORAGE_MODE_SENSE_LUN
1
UX_HOST_CLASS_STORAGE_MODE_SENSE_OPERATION
0
UX_HOST_CLASS_STORAGE_MODE_SENSE_PARAMETER_LIST_LENGTH
7
UX_HOST_CLASS_STORAGE_MODE_SENSE_PC_PAGE_CODE
2
UX_HOST_CLASS_STORAGE_MODE_SENSE_RBAC_PAGE
0x1B
UX_HOST_CLASS_STORAGE_MODE_SENSE_RBAC_PAGE_LENGTH
0x0c
UX_HOST_CLASS_STORAGE_MODE_SENSE_RESPONSE_ATTRIBUTES
3
UX_HOST_CLASS_STORAGE_MODE_SENSE_RESPONSE_ATTRIBUTES_SHORT 2
UX_HOST_CLASS_STORAGE_MODE_SENSE_RESPONSE_ATTRIBUTES_WP
0x80
UX_HOST_CLASS_STORAGE_MODE_SENSE_RESPONSE_MEDIUM_TYPE_CODE 2
UX_HOST_CLASS_STORAGE_MODE_SENSE_RESPONSE_MODE_DATA_LENGTH 0
UX_HOST_CLASS_STORAGE_MODE_SENSE_RWER_PAGE
0x01
UX_HOST_CLASS_STORAGE_MODE_SENSE_RWER_PAGE_LENGTH
0x0c
UX_HOST_CLASS_STORAGE_MODE_SENSE_TP_PAGE
0x1C
UX_HOST_CLASS_STORAGE_MODE_SENSE_TP_PAGE_LENGTH
0x08
UX_HOST_CLASS_STORAGE_PARTITION_BOOT_FLAG
0
UX_HOST_CLASS_STORAGE_PARTITION_END_HEAD
5
UX_HOST_CLASS_STORAGE_PARTITION_END_SECTOR
6
UX_HOST_CLASS_STORAGE_PARTITION_END_TRACK
7
UX_HOST_CLASS_STORAGE_PARTITION_EXTENDED
5
UX_HOST_CLASS_STORAGE_PARTITION_EXTENDED_LBA_MAPPED
0x0f
UX_HOST_CLASS_STORAGE_PARTITION_FAT_12
1
UX_HOST_CLASS_STORAGE_PARTITION_FAT_16
4
UX_HOST_CLASS_STORAGE_PARTITION_FAT_16_LBA_MAPPED
0x0e
UX_HOST_CLASS_STORAGE_PARTITION_FAT_16L
6
UX_HOST_CLASS_STORAGE_PARTITION_FAT_32_1
0x0b
UX_HOST_CLASS_STORAGE_PARTITION_FAT_32_2
0x0c
UX_HOST_CLASS_STORAGE_PARTITION_NUMBER_SECTORS
12
UX_HOST_CLASS_STORAGE_PARTITION_SECTORS_BEFORE
8
UX_HOST_CLASS_STORAGE_PARTITION_SIGNATURE
0xaa55
UX_HOST_CLASS_STORAGE_PARTITION_START_HEAD
1
UX_HOST_CLASS_STORAGE_PARTITION_START_SECTOR
2
UX_HOST_CLASS_STORAGE_PARTITION_START_16
UX_HOST_CLASS_STORAGE_PARTITION_TABLE_START
446
UX_HOST_CLASS_STORAGE_PARTITION_TYPE
4
UX_HOST_CLASS_STORAGE_PROTOCOL_BO
0x50
UX_HOST_CLASS_STORAGE_PROTOCOL_CB
1
UX_HOST_CLASS_STORAGE_PROTOCOL_CBI
0
User Guide
USBX Constants
217
UX_HOST_CLASS_STORAGE_READ_CAPACITY_COMMAND_LENGTH_SBC
10
UX_HOST_CLASS_STORAGE_READ_CAPACITY_COMMAND_LENGTH_UFI
12
UX_HOST_CLASS_STORAGE_READ_CAPACITY_DATA_LBA
0
UX_HOST_CLASS_STORAGE_READ_CAPACITY_DATA_SECTOR_SIZE
4
UX_HOST_CLASS_STORAGE_READ_CAPACITY_LBA
2
UX_HOST_CLASS_STORAGE_READ_CAPACITY_LUN
1
UX_HOST_CLASS_STORAGE_READ_CAPACITY_OPERATION
0
UX_HOST_CLASS_STORAGE_READ_CAPACITY_RESPONSE_LENGTH
8
UX_HOST_CLASS_STORAGE_READ_COMMAND_LENGTH_SBC
10
UX_HOST_CLASS_STORAGE_READ_COMMAND_LENGTH_UFI
12
UX_HOST_CLASS_STORAGE_READ_FORMAT_COMMAND_LENGTH_SBC
10
UX_HOST_CLASS_STORAGE_READ_FORMAT_COMMAND_LENGTH_UFI
12
UX_HOST_CLASS_STORAGE_READ_FORMAT_LBA
2
UX_HOST_CLASS_STORAGE_READ_FORMAT_LUN
1
UX_HOST_CLASS_STORAGE_READ_FORMAT_OPERATION
0
UX_HOST_CLASS_STORAGE_READ_FORMAT_PARAMETER_LIST_LENGTH
7
UX_HOST_CLASS_STORAGE_READ_FORMAT_RESPONSE_LENGTH
0xFC
UX_HOST_CLASS_STORAGE_READ_LBA
2
UX_HOST_CLASS_STORAGE_READ_LUN
1
UX_HOST_CLASS_STORAGE_READ_OPERATION
0
UX_HOST_CLASS_STORAGE_READ_TRANSFER_LENGTH
7
UX_HOST_CLASS_STORAGE_REQUEST_SENSE_ALLOCATION_LENGTH
4
UX_HOST_CLASS_STORAGE_REQUEST_SENSE_COMMAND_LENGTH_SBC
12
UX_HOST_CLASS_STORAGE_REQUEST_SENSE_COMMAND_LENGTH_UFI
12
UX_HOST_CLASS_STORAGE_REQUEST_SENSE_LUN
1
UX_HOST_CLASS_STORAGE_REQUEST_SENSE_OPERATION
0
UX_HOST_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_ADD_LENGTH
7
UX_HOST_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_CODE
12
UX_HOST_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_CODE_QUALIFIER 13
UX_HOST_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_ERROR_CODE
0
UX_HOST_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_INFORMATION
3
UX_HOST_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_LENGTH
18
UX_HOST_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_SENSE_KEY
2
UX_HOST_CLASS_STORAGE_REQUEST_SENSE_RETRY
10
UX_HOST_CLASS_STORAGE_RESET
0xff
UX_HOST_CLASS_STORAGE_SCSI_FORMAT
0x04
UX_HOST_CLASS_STORAGE_SCSI_INQUIRY
0x12
UX_HOST_CLASS_STORAGE_SCSI_MODE_SELECT
0x55
218
UX_HOST_CLASS_STORAGE_SCSI_MODE_SENSE
UX_HOST_CLASS_STORAGE_SCSI_MODE_SENSE_SHORT
UX_HOST_CLASS_STORAGE_SCSI_READ_CAPACITY
UX_HOST_CLASS_STORAGE_SCSI_READ_FORMAT_CAPACITY
UX_HOST_CLASS_STORAGE_SCSI_READ16
UX_HOST_CLASS_STORAGE_SCSI_READ32
UX_HOST_CLASS_STORAGE_SCSI_REQUEST_SENSE
UX_HOST_CLASS_STORAGE_SCSI_START_STOP
UX_HOST_CLASS_STORAGE_SCSI_TEST_READY
UX_HOST_CLASS_STORAGE_SCSI_VERIFY
UX_HOST_CLASS_STORAGE_SCSI_WRITE16
UX_HOST_CLASS_STORAGE_SCSI_WRITE32
UX_HOST_CLASS_STORAGE_SECTOR_SIZE_FAT
UX_HOST_CLASS_STORAGE_SECTOR_SIZE_OTHER
UX_HOST_CLASS_STORAGE_SENSE_ERROR
UX_HOST_CLASS_STORAGE_SENSE_KEY_ABORTED_COMMAND
UX_HOST_CLASS_STORAGE_SENSE_KEY_BLANK_CHECK
UX_HOST_CLASS_STORAGE_SENSE_KEY_DATA_PROTECT
UX_HOST_CLASS_STORAGE_SENSE_KEY_HARDWARE_ERROR
UX_HOST_CLASS_STORAGE_SENSE_KEY_ILLEGAL_REQUEST
UX_HOST_CLASS_STORAGE_SENSE_KEY_MEDIUM_ERROR
UX_HOST_CLASS_STORAGE_SENSE_KEY_MISCOMPARE
UX_HOST_CLASS_STORAGE_SENSE_KEY_NO_SENSE
UX_HOST_CLASS_STORAGE_SENSE_KEY_NOT_READY
UX_HOST_CLASS_STORAGE_SENSE_KEY_RECOVERED_ERROR
UX_HOST_CLASS_STORAGE_SENSE_KEY_UNIT_ATTENTION
UX_HOST_CLASS_STORAGE_START_MEDIA
UX_HOST_CLASS_STORAGE_START_STOP_COMMAND_LENGTH_SBC
UX_HOST_CLASS_STORAGE_START_STOP_COMMAND_LENGTH_UFI
UX_HOST_CLASS_STORAGE_START_STOP_LBUFLAGS
UX_HOST_CLASS_STORAGE_START_STOP_OPERATION
UX_HOST_CLASS_STORAGE_START_STOP_START_BIT
UX_HOST_CLASS_STORAGE_STOP_MEDIA
UX_HOST_CLASS_STORAGE_SUBCLASS_RBC
UX_HOST_CLASS_STORAGE_SUBCLASS_SCSI
UX_HOST_CLASS_STORAGE_SUBCLASS_SFF8020
UX_HOST_CLASS_STORAGE_SUBCLASS_SFF8070
UX_HOST_CLASS_STORAGE_SUBCLASS_UFI
User Guide
0x5a
0x1a
0x25
0x23
0x28
0xa8
0x03
0x1b
0x00
0x2f
0x2a
0xaa
512
2048
3
0x0b
0x8
0x7
0x4
0x5
0x3
0x0e
0x0
0x2
0x1
0x0d
1
12
12
1
0
4
0
1
6
2
5
4
USBX Constants
219
UX_HOST_CLASS_STORAGE_TEST_READY_COMMAND_LENGTH_SBC
6
UX_HOST_CLASS_STORAGE_TEST_READY_COMMAND_LENGTH_UFI
12
UX_HOST_CLASS_STORAGE_TEST_READY_LUN
1
UX_HOST_CLASS_STORAGE_TEST_READY_OPERATION
0
UX_HOST_CLASS_STORAGE_THREAD_PRIORITY_CLASS
20
UX_HOST_CLASS_STORAGE_THREAD_SLEEP_TIME
(2 * UX_PERIODIC_RATE)
UX_HOST_CLASS_STORAGE_THREAD_STACK_SIZE
4096
UX_HOST_CLASS_STORAGE_TRANSFER_TIMEOUT
10000
UX_HOST_CLASS_STORAGE_TRANSPORT_ERROR
1
UX_HOST_CLASS_STORAGE_WRITE_COMMAND_LENGTH_SBC
10
UX_HOST_CLASS_STORAGE_WRITE_COMMAND_LENGTH_UFI
12
UX_HOST_CLASS_STORAGE_WRITE_LBA
2
UX_HOST_CLASS_STORAGE_WRITE_LUN
1
UX_HOST_CLASS_STORAGE_WRITE_OPERATION
0
UX_HOST_CLASS_STORAGE_WRITE_TRANSFER_LENGTH
7
UX_HOST_CLASS_UNKNOWN
0x59
UX_HUB_DESCRIPTOR_ENTRIES
8
UX_HUB_DESCRIPTOR_LENGTH
9
UX_INTERFACE_DESCRIPTOR_ITEM
4
UX_INTERFACE_HANDLE_UNKNOWN
0x52
UX_INTERRUPT_ENDPOINT
3
UX_INTERRUPT_ENDPOINT_IN
0x83
UX_INTERRUPT_ENDPOINT_OUT
0x03
UX_ISOCHRONOUS_ENDPOINT
1
UX_ISOCHRONOUS_ENDPOINT_IN
0x81
UX_ISOCHRONOUS_ENDPOINT_OUT
0x01
UX_LOW_SPEED_DEVICE
0
UX_MASK_ENDPOINT_TYPE
3
UX_MAX_BUS_POWER
(100/2)
UX_MAX_CLASS_DRIVER
8
UX_MAX_DEVICES
8
UX_MAX_ED
80
UX_MAX_HCD
1
UX_MAX_ISO_TD
128
UX_MAX_SELF_POWER
(500/2)
UX_MAX_SLAVE_CLASS_DRIVER
3
UX_MAX_SLAVE_LUN
2
UX_MAX_TD
32
220
UX_MAX_TT
UX_MAX_USB_DEVICES
UX_MEMORY_INSUFFICIENT
UX_MEMORY_UNUSED
UX_MEMORY_USED
UX_MUTEX_ERROR
UX_NO_ALIGN
UX_NO_ALTERNATE_SETTING
UX_NO_BANDWIDTH_AVAILABLE
UX_NO_CLASS_MATCH
UX_NO_ED_AVAILABLE
UX_NO_TD_AVAILABLE
UX_NO_TIME_SLICE
UX_NULL
UX_OTHER_SPEED_DESCRIPTOR_ITEM
UX_OVER_CURRENT_CONDITION
UX_PCI_CFG_BASE_ADDRESS_0
UX_PCI_CFG_BASE_ADDRESS_1
UX_PCI_CFG_BASE_ADDRESS_2
UX_PCI_CFG_BASE_ADDRESS_3
UX_PCI_CFG_BASE_ADDRESS_4
UX_PCI_CFG_BASE_ADDRESS_5
UX_PCI_CFG_BIST
UX_PCI_CFG_CACHE_LINE_SIZE
UX_PCI_CFG_CARDBUS_CIS
UX_PCI_CFG_CLASS
UX_PCI_CFG_COMMAND
UX_PCI_CFG_CTRL_ADDRESS
UX_PCI_CFG_DATA_ADDRESS
UX_PCI_CFG_DEVICE_ID
UX_PCI_CFG_EXPANSION_ROM_ADDRESS
UX_PCI_CFG_FLADJ
UX_PCI_CFG_HEADER_TYPE
UX_PCI_CFG_INT_LINE
UX_PCI_CFG_INT_PIN
UX_PCI_CFG_LATENCY_TIMER
UX_PCI_CFG_MAX_LATENCY
UX_PCI_CFG_MIN_GNT
User Guide
8
127
0x12
0x12345678
0x87654321
0x17
0
0x5e
0x41
0x57
0x14
0x13
0
((void*)0)
7
0x43
0x10
0x14
0x18
0x1c
0x20
0x24
0x0f
0x0c
0x28
0x0b
0x04
0x0cf8
0x0cfc
0x02
0x30
0x61
0x0e
0x3c
0x3d
0x0d
0x3f
0x3e
USBX Constants
UX_PCI_CFG_PROGRAMMING_IF
UX_PCI_CFG_RESERVED_0
UX_PCI_CFG_RESERVED_1
UX_PCI_CFG_REVISION
UX_PCI_CFG_SBRN
UX_PCI_CFG_STATUS
UX_PCI_CFG_SUB_SYSTEM_ID
UX_PCI_CFG_SUB_VENDOR_ID
UX_PCI_CFG_SUBCLASS
UX_PCI_CFG_VENDOR_ID
UX_PCI_CMD_FBB_ENABLE
UX_PCI_CMD_IO_ENABLE
UX_PCI_CMD_MASTER_ENABLE
UX_PCI_CMD_MEM_ENABLE
UX_PCI_CMD_MEM_WRITE_INV_ENABLE
UX_PCI_CMD_MONITOR_ENABLE
UX_PCI_CMD_PARITY_ERROR_ENABLE
UX_PCI_CMD_SERR_ENABLE
UX_PCI_CMD_SNOOP_PALETTE_ENABLE
UX_PCI_CMD_WAIT_CYCLE_CTRL_ENABLE
UX_PCI_NB_BUS
UX_PCI_NB_DEVICE
UX_PCI_NB_FUNCTIONS
UX_PERIODIC_RATE
UX_PORT_ENABLE_WAIT
UX_PORT_INDEX_UNKNOWN
UX_PORT_RESET_FAILED
UX_PS_CCS
UX_PS_CPE
UX_PS_DS
UX_PS_DS_FS
UX_PS_DS_HS
UX_PS_DS_LS
UX_PS_PES
UX_PS_POCI
UX_PS_PPS
UX_PS_PRS
UX_PS_PSS
221
0x09
0x34
0x38
0x08
0x60
0x06
0x2e
0x2c
0x0a
0x00
0x0200
0x0001
0x0004
0x0002
0x0010
0x0008
0x0040
0x0100
0x0020
0x0080
0xff
32
7
1000
50
0x56
0x31
0x01
0x01
6
0x40
0x80
0x00
0x02
0x08
0x20
0x10
0x04
222
UX_REGULAR_MEMORY
UX_REQUEST_DIRECTION
UX_REQUEST_IN
UX_REQUEST_OUT
UX_REQUEST_TARGET
UX_REQUEST_TARGET_DEVICE
UX_REQUEST_TARGET_ENDPOINT
UX_REQUEST_TARGET_INTERFACE
UX_REQUEST_TARGET_OTHER
UX_REQUEST_TYPE
UX_REQUEST_TYPE_CLASS
UX_REQUEST_TYPE_STANDARD
UX_REQUEST_TYPE_VENDOR
UX_RH_ENUMERATION_RETRY
UX_RH_ENUMERATION_RETRY_DELAY
UX_SEMAPHORE_ERROR
UX_SET_ADDRESS
UX_SET_CONFIGURATION
UX_SET_DESCRIPTOR
UX_SET_FEATURE
UX_SET_INTERFACE
UX_SETUP_INDEX
UX_SETUP_LENGTH
UX_SETUP_REQUEST
UX_SETUP_REQUEST_TYPE
UX_SETUP_SIZE
UX_SETUP_VALUE
UX_SLAVE_CLASS_COMMAND_ACTIVATE
UX_SLAVE_CLASS_COMMAND_DEACTIVATE
UX_SLAVE_CLASS_COMMAND_QUERY
UX_SLAVE_CLASS_COMMAND_REQUEST
UX_SLAVE_CLASS_STORAGE_ASC_KEY_INVALID_COMMAND
UX_SLAVE_CLASS_STORAGE_BUFFER_SIZE
UX_SLAVE_REQUEST_DATA_MAX_LENGTH
UX_SLAVE_CLASS_STORAGE_CBW_CB
UX_SLAVE_CLASS_STORAGE_CBW_CB_LENGTH
UX_SLAVE_CLASS_STORAGE_CBW_DATA_LENGTH
UX_SLAVE_CLASS_STORAGE_CBW_FLAGS
User Guide
0
0x80
0x80
0x00
0x03
0x00
0x02
0x01
0x03
0x60
0x20
0x00
0x40
3
100
0x15
5
9
7
3
11
4
6
1
0
8
2
2
3
1
4
0x20
15
14
8
12
USBX Constants
223
UX_SLAVE_CLASS_STORAGE_CBW_LUN
13
UX_SLAVE_CLASS_STORAGE_CBW_SIGNATURE
0
UX_SLAVE_CLASS_STORAGE_CBW_SIGNATURE_MASK
0x43425355
UX_SLAVE_CLASS_STORAGE_CBW_TAG
4
UX_SLAVE_CLASS_STORAGE_CLASS
8
UX_SLAVE_CLASS_STORAGE_CSW_DATA_RESIDUE
8
UX_SLAVE_CLASS_STORAGE_CSW_FAILED
1
UX_SLAVE_CLASS_STORAGE_CSW_LENGTH
13
UX_SLAVE_CLASS_STORAGE_CSW_PASSED
0
UX_SLAVE_CLASS_STORAGE_CSW_PHASE_ERROR
2
UX_SLAVE_CLASS_STORAGE_CSW_SIGNATURE
0
UX_SLAVE_CLASS_STORAGE_CSW_SIGNATURE_MASK
0x53425355
UX_SLAVE_CLASS_STORAGE_CSW_STATUS
12
UX_SLAVE_CLASS_STORAGE_CSW_TAG
4
UX_SLAVE_CLASS_STORAGE_GET_MAX_LUN
0xfe
UX_SLAVE_CLASS_STORAGE_INQUIRY_ALLOCATION_LENGTH
4
UX_SLAVE_CLASS_STORAGE_INQUIRY_COMMAND_LENGTH_SBC
06
UX_SLAVE_CLASS_STORAGE_INQUIRY_COMMAND_LENGTH_UFI
12
UX_SLAVE_CLASS_STORAGE_INQUIRY_LUN
1
UX_SLAVE_CLASS_STORAGE_INQUIRY_OPERATION
0
UX_SLAVE_CLASS_STORAGE_INQUIRY_PAGE_CODE
2
UX_SLAVE_CLASS_STORAGE_INQUIRY_PAGE_CODE_STANDARD
0x00
UX_SLAVE_CLASS_STORAGE_INQUIRY_PERIPHERAL_TYPE
0x00
UX_SLAVE_CLASS_STORAGE_INQUIRY_RESPONSE_ADDITIONAL_LENGTH
4
UX_SLAVE_CLASS_STORAGE_INQUIRY_RESPONSE_DATA_FORMAT
3
UX_SLAVE_CLASS_STORAGE_INQUIRY_RESPONSE_LENGTH
36
UX_SLAVE_CLASS_STORAGE_INQUIRY_RESPONSE_LENGTH_CD_ROM
0x5b
UX_SLAVE_CLASS_STORAGE_INQUIRY_RESPONSE_PERIPHERAL_TYPE
0
UX_SLAVE_CLASS_STORAGE_INQUIRY_RESPONSE_PRODUCT_ID
16
UX_SLAVE_CLASS_STORAGE_INQUIRY_RESPONSE_PRODUCT_REVISION
32
UX_SLAVE_CLASS_STORAGE_INQUIRY_RESPONSE_REMOVABLE_MEDIA
1
UX_SLAVE_CLASS_STORAGE_INQUIRY_RESPONSE_VENDOR_INFORMATION
8
UX_SLAVE_CLASS_STORAGE_MAX_LUN
0
UX_SLAVE_CLASS_STORAGE_MEDIA_CDROM
5
UX_SLAVE_CLASS_STORAGE_MEDIA_FAT_DISK
0
UX_SLAVE_CLASS_STORAGE_MEDIA_IOMEGA_CLICK
0x55
UX_SLAVE_CLASS_STORAGE_MEDIA_OPTICAL_DISK
7
UX_SLAVE_CLASS_STORAGE_MODE_SENSE_COMMAND_LENGTH_SBC
12
224
UX_SLAVE_CLASS_STORAGE_MODE_SENSE_COMMAND_LENGTH_UFI
12
UX_SLAVE_CLASS_STORAGE_MODE_SENSE_LUN
1
UX_SLAVE_CLASS_STORAGE_MODE_SENSE_OPERATION
0
UX_SLAVE_CLASS_STORAGE_MODE_SENSE_PARAMETER_LIST_LENGTH
7
UX_SLAVE_CLASS_STORAGE_MODE_SENSE_PC_PAGE_CODE
2
UX_SLAVE_CLASS_STORAGE_PROTOCOL_BO
0x50
UX_SLAVE_CLASS_STORAGE_PROTOCOL_CB
1
UX_SLAVE_CLASS_STORAGE_PROTOCOL_CBI
0
UX_SLAVE_CLASS_STORAGE_READ_CAPACITY_COMMAND_LENGTH_SBC
10
UX_SLAVE_CLASS_STORAGE_READ_CAPACITY_COMMAND_LENGTH_UFI
12
UX_SLAVE_CLASS_STORAGE_READ_CAPACITY_LBA
2
UX_SLAVE_CLASS_STORAGE_READ_CAPACITY_LUN
1
UX_SLAVE_CLASS_STORAGE_READ_CAPACITY_OPERATION
0
UX_SLAVE_CLASS_STORAGE_READ_CAPACITY_RESPONSE_BLOCK_SIZE
4
UX_SLAVE_CLASS_STORAGE_READ_CAPACITY_RESPONSE_LAST_LBA
0
UX_SLAVE_CLASS_STORAGE_READ_CAPACITY_RESPONSE_LENGTH
8
UX_SLAVE_CLASS_STORAGE_READ_COMMAND_LENGTH_SBC
10
UX_SLAVE_CLASS_STORAGE_READ_COMMAND_LENGTH_UFI
12
UX_SLAVE_CLASS_STORAGE_READ_LBA
2
UX_SLAVE_CLASS_STORAGE_READ_LUN
1
UX_SLAVE_CLASS_STORAGE_READ_OPERATION
0
UX_SLAVE_CLASS_STORAGE_READ_TRANSFER_LENGTH_16
7
UX_SLAVE_CLASS_STORAGE_READ_TRANSFER_LENGTH_32
6
UX_SLAVE_CLASS_STORAGE_REQUEST_SENSE_ALLOCATION_LENGTH
4
UX_SLAVE_CLASS_STORAGE_REQUEST_SENSE_COMMAND_LENGTH_SBC
12
UX_SLAVE_CLASS_STORAGE_REQUEST_SENSE_COMMAND_LENGTH_UFI
12
UX_SLAVE_CLASS_STORAGE_REQUEST_SENSE_LUN
1
UX_SLAVE_CLASS_STORAGE_REQUEST_SENSE_OPERATION
0
UX_SLAVE_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_ADD_LENGTH
7
UX_SLAVE_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_CODE
12
UX_SLAVE_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_CODE_QUALIFIER 13
UX_SLAVE_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_ERROR_CODE
0
UX_SLAVE_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_ERROR_CODE_VALUE 0x70
UX_SLAVE_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_INFORMATION
3
UX_SLAVE_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_LENGTH
18
UX_SLAVE_CLASS_STORAGE_REQUEST_SENSE_RESPONSE_SENSE_KEY
2
UX_SLAVE_CLASS_STORAGE_RESET
0xff
UX_SLAVE_CLASS_STORAGE_RESPONSE_LENGTH
64
User Guide
USBX Constants
225
UX_SLAVE_CLASS_STORAGE_SCSI_FORMAT
UX_SLAVE_CLASS_STORAGE_SCSI_INQUIRY
UX_SLAVE_CLASS_STORAGE_SCSI_MODE_SELECT
UX_SLAVE_CLASS_STORAGE_SCSI_MODE_SENSE
UX_SLAVE_CLASS_STORAGE_SCSI_MODE_SENSE_SHORT
UX_SLAVE_CLASS_STORAGE_SCSI_PREVENT_ALLOW_MEDIA_REMOVAL
UX_SLAVE_CLASS_STORAGE_SCSI_READ_CAPACITY
UX_SLAVE_CLASS_STORAGE_SCSI_READ_FORMAT_CAPACITY
UX_SLAVE_CLASS_STORAGE_SCSI_READ_TOC
UX_SLAVE_CLASS_STORAGE_SCSI_READ16
UX_SLAVE_CLASS_STORAGE_SCSI_READ32
UX_SLAVE_CLASS_STORAGE_SCSI_REQUEST_SENSE
UX_SLAVE_CLASS_STORAGE_SCSI_START_STOP
UX_SLAVE_CLASS_STORAGE_SCSI_TEST_READY
UX_SLAVE_CLASS_STORAGE_SCSI_VERIFY
UX_SLAVE_CLASS_STORAGE_SCSI_WRITE16
UX_SLAVE_CLASS_STORAGE_SCSI_WRITE32
UX_SLAVE_CLASS_STORAGE_SENSE_KEY_ABORTED_COMMAND
UX_SLAVE_CLASS_STORAGE_SENSE_KEY_BLANK_CHECK
UX_SLAVE_CLASS_STORAGE_SENSE_KEY_DATA_PROTECT
UX_SLAVE_CLASS_STORAGE_SENSE_KEY_HARDWARE_ERROR
UX_SLAVE_CLASS_STORAGE_SENSE_KEY_ILLEGAL_REQUEST
UX_SLAVE_CLASS_STORAGE_SENSE_KEY_MEDIUM_ERROR
UX_SLAVE_CLASS_STORAGE_SENSE_KEY_MISCOMPARE
UX_SLAVE_CLASS_STORAGE_SENSE_KEY_NO_SENSE
UX_SLAVE_CLASS_STORAGE_SENSE_KEY_NOT_READY
UX_SLAVE_CLASS_STORAGE_SENSE_KEY_RECOVERED_ERROR
UX_SLAVE_CLASS_STORAGE_SENSE_KEY_UNIT_ATTENTION
UX_SLAVE_CLASS_STORAGE_SENSE_KEY_VOLUME_OVERFLOW
UX_SLAVE_CLASS_STORAGE_START_STOP_COMMAND_LENGTH_SBC
UX_SLAVE_CLASS_STORAGE_START_STOP_COMMAND_LENGTH_UFI
UX_SLAVE_CLASS_STORAGE_START_STOP_LBUFLAGS
UX_SLAVE_CLASS_STORAGE_START_STOP_OPERATION
UX_SLAVE_CLASS_STORAGE_START_STOP_START_BIT
UX_SLAVE_CLASS_STORAGE_SUBCLASS_RBC
UX_SLAVE_CLASS_STORAGE_SUBCLASS_SCSI
UX_SLAVE_CLASS_STORAGE_SUBCLASS_SFF8020
UX_SLAVE_CLASS_STORAGE_SUBCLASS_SFF8070
0x04
0x12
0x55
0x5a
0x1a
0x1e
0x25
0x23
0x43
0x28
0xa8
0x03
0x1b
0x00
0x2f
0x2a
0xaa
0x0b
0x8
0x7
0x4
0x5
0x3
0x0e
0x0
0x2
0x1
0x6
0x0d
6
12
1
0
4
1
6
2
5
226
UX_SLAVE_CLASS_STORAGE_SUBCLASS_UFI
UX_SLAVE_CLASS_STORAGE_TEST_READY_COMMAND_LENGTH_SBC
UX_SLAVE_CLASS_STORAGE_TEST_READY_COMMAND_LENGTH_UFI
UX_SLAVE_CLASS_STORAGE_TEST_READY_LUN
UX_SLAVE_CLASS_STORAGE_TEST_READY_OPERATION
UX_SLAVE_CLASS_STORAGE_WRITE_COMMAND_LENGTH_SBC
UX_SLAVE_CLASS_STORAGE_WRITE_COMMAND_LENGTH_UFI
UX_SLAVE_CLASS_STORAGE_WRITE_LBA
UX_SLAVE_CLASS_STORAGE_WRITE_LUN
UX_SLAVE_CLASS_STORAGE_WRITE_OPERATION
UX_SLAVE_CLASS_STORAGE_WRITE_TRANSFER_LENGTH_16
UX_SLAVE_CLASS_STORAGE_WRITE_TRANSFER_LENGTH_32
UX_SLAVE_ENDPOINT_DEFAULT_BUFFER_SIZE
UX_SLAVE_REQUEST_CONTROL_MAX_LENGTH
UX_SLAVE_REQUEST_DATA_MAX_LENGTH
UX_STATUS_DEVICE_SELF_POWERED
UX_STRING_DESCRIPTOR_ITEM
UX_SUCCESS
UX_SYNCH_FRAME
UX_THREAD_ERROR
UX_THREAD_PRIORITY_CLASS
UX_THREAD_PRIORITY_DCD
UX_THREAD_PRIORITY_ENUM
UX_THREAD_PRIORITY_HCD
UX_THREAD_PRIORITY_KEYBOARD
UX_THREAD_STACK_SIZE
UX_TOO_MANY_DEVICES
UX_TRANSFER_BUFFER_OVERFLOW
UX_TRANSFER_BUS_RESET
UX_TRANSFER_ERROR
UX_TRANSFER_MISSED_FRAME
UX_TRANSFER_NO_ANSWER
UX_TRANSFER_NOT_READY
UX_TRANSFER_PHASE_DATA_IN
UX_TRANSFER_PHASE_DATA_OUT
UX_TRANSFER_PHASE_SETUP
UX_TRANSFER_PHASE_STATUS_IN
UX_TRANSFER_PHASE_STATUS_OUT
User Guide
4
6
12
1
0
10
12
2
1
0
7
6
256
256
4096
1
3
0
12
0x16
20
2
20
2
20
1024
0x11
0x27
0x26
0x23
0x24
0x22
0x25
2
3
1
4
5
USBX Constants
UX_TRANSFER_STALLED
UX_TRANSFER_STATUS_ABORT
UX_TRANSFER_STATUS_COMPLETED
UX_TRANSFER_STATUS_NOT_PENDING
UX_TRANSFER_STATUS_PENDING
UX_TRANSFER_TIMEOUT
UX_TRUE
UX_TT_BANDWIDTH
UX_TT_MASK
UX_UNUSED
UX_USED
UX_WAIT_FOREVER
227
0x21
4
2
0
1
0x5c
1
900
0x1f7
0
1
0xffffffff
228
USBX Constants
User Guide
APPENDIX
User Guide
230
ux_hub_tt_port_mapping;
ux_hub_tt_max_bandwidth;
ux_host_class_name[32];
ux_host_class_status;
(*ux_host_class_entry_function)
(struct UX_HOST_CLASS_COMMAND_STRUCT *) ;
ux_host_class_nb_devices_owned;
*ux_host_class_first_instance;
*ux_host_class_client;
ux_host_class_thread;
*ux_host_class_thread_stack;
*ux_host_class_media;
User Guide
231
ULONG
ux_transfer_request_maximum_length;
UINT
ux_transfer_request_completion_code;
ULONG
ux_transfer_request_packet_length;
struct UX_TRANSFER_STRUCT
*ux_transfer_request_next_transfer_request;
VOID
*ux_transfer_request_user_specific;
} UX_TRANSFER;
bLength;
bDescriptorType;
bcdUSB;
bDeviceClass;
bDeviceSubClass;
bDeviceProtocol;
232
ULONG
bMaxPacketSize0;
ULONG
bNumConfigurations;
ULONG
bReserved;
} UX_DEVICE_QUALIFIER_DESCRIPTOR;
ux_configuration_handle;
ux_configuration_state;
User Guide
233
struct UX_CONFIGURATION_DESCRIPTOR_STRUCT
ux_configuration_descriptor;
struct UX_INTERFACE_STRUCT
*ux_configuration_first_interface;
struct UX_CONFIGURATION_STRUCT
*ux_configuration_next_configuration;
struct UX_DEVICE_STRUCT
*ux_configuration_device;
} UX_CONFIGURATION;
ux_hcd_name[32];
ux_hcd_address[16];
ux_hcd_status;
ux_hcd_controller_type;
ux_hcd_irq;
ux_hcd_nb_root_hubs;
ux_hcd_root_hub_signal;
ux_hcd_nb_devices;
ux_hcd_power_switch;
ux_hcd_thread_signal;
ux_hcd_rh_device_connection;
ux_hcd_io;
ux_hcd_available_bandwidth;
ux_hcd_maximum_transfer_request_size;
234
ULONG
UINT
void
} UX_HCD;
ux_hcd_version;
(*ux_hcd_entry_function) (struct UX_HCD_STRUCT *, UINT, VOID *);
*ux_hcd_controller_hardware;
User Guide
235
*ux_slave_interface_first_endpoint;
} UX_SLAVE_INTERFACE;
ux_slave_dcd_name[32];
ux_slave_dcd_status;
ux_slave_dcd_controller_type;
ux_slave_dcd_irq;
ux_slave_dcd_io;
ux_slave_dcd_device_address;
(*ux_slave_dcd_function)
(struct UX_SLAVE_DCD_STRUCT *,UINT, VOID *);
void
*ux_slave_dcd_controller_hardware;
struct UX_SLAVE_DEVICE_STRUCT
ux_slave_dcd_device;
} UX_SLAVE_DCD;
typedef struct UX_SLAVE_CLASS_COMMAND_STRUCT
{
UINT
ux_slave_class_command_request;
VOID
*ux_slave_class_command_container;
VOID
*ux_slave_class_command_instance;
UINT
ux_slave_class_command_pid;
UINT
ux_slave_class_command_vid;
UINT
ux_slave_class_command_class;
UINT
ux_slave_class_command_subclass;
UINT
ux_slave_class_command_protocol;
struct UX_SLAVE_CLASS_STRUCT
*ux_slave_class_command_class_ptr;
} UX_SLAVE_CLASS_COMMAND;
ux_slave_class_name[32];
ux_slave_class_status;
(*ux_slave_class_entry_function)
(struct UX_SLAVE_CLASS_COMMAND_STRUCT *) ;
*ux_slave_class_instance;
*ux_slave_class_client;
ux_slave_class_thread;
*ux_slave_class_thread_stack;
236
VOID
*ux_slave_class_interface_parameter;
ULONG
ux_slave_class_interface_number;
struct UX_SLAVE_INTERFACE_STRUCT
*ux_slave_class_interface;
} UX_SLAVE_CLASS;
ux_memory_block_size;
ux_memory_block_status;
UX_MEMORY_BLOCK_STRUCT
*ux_memory_block_next;
struct UX_MEMORY_BLOCK_STRUCT
*ux_memory_block_previous;
} UX_MEMORY_BLOCK;
*ux_system_regular_memory_pool_start;
ux_system_regular_memory_pool_size;
*ux_system_cache_safe_memory_pool_start;
ux_system_cache_safe_memory_pool_size;
ux_system_mutex;
ux_system_host_max_class;
ux_system_host_registered_class;
*ux_system_host_class_array;
ux_system_host_max_hcd;
*ux_system_host_hcd_array;
ux_system_host_registered_hcd;
*ux_system_host_device_array;
ux_system_host_max_devices;
ux_system_host_max_ed;
ux_system_host_max_td;
ux_system_host_max_iso_td;
ux_system_host_rhsc_hcd;
ux_system_host_enum_thread_stack;
ux_system_host_enum_thread;
ux_system_host_enum_semaphore;
(*ux_system_host_enum_hub_function) (VOID);
ux_system_host_hcd_thread_stack;
ux_system_host_hcd_thread;
ux_system_host_hcd_semaphore;
(*ux_system_host_change_function) (ULONG, UX_HOST_CLASS *);
ux_system_slave_enum_thread;
ux_system_slave_enum_thread_stack;
ux_system_slave_enum_semaphore;
ux_system_slave_dcd;
ux_system_slave_device;
ux_system_slave_device_framework;
ux_system_slave_device_framework_length;
ux_system_slave_device_framework_full_speed;
ux_system_slave_device_framework_length_full_speed;
User Guide
UCHAR *
ULONG
UCHAR *
ULONG
UCHAR *
ULONG
UINT
UINT
UX_SLAVE_CLASS
ULONG
ULONG
ULONG
UINT
237
ux_system_slave_device_framework_high_speed;
ux_system_slave_device_framework_length_high_speed;
ux_system_slave_string_framework;
ux_system_slave_string_framework_length;
ux_system_slave_language_id_framework;
ux_system_slave_language_id_framework_length;
ux_system_slave_max_class;
ux_system_slave_registered_class;
*ux_system_slave_class_array;
ux_system_slave_speed;
ux_system_slave_power_state;
ux_system_slave_remote_wakeup_capability;
(*ux_system_slave_change_function) (ULONG);
} UX_SYSTEM_SLAVE;
238
ux_host_class_audio_transfer_request_status;
ux_host_class_audio_transfer_request_data_pointer;
ux_host_class_audio_transfer_request_requested_length;
User Guide
239
ULONG
VOID
ux_host_class_audio_transfer_request_actual_length;
(*ux_host_class_audio_transfer_request_completion_function)
(struct UX_HOST_CLASS_AUDIO_TRANSFER_REQUEST_STRUCT *);
TX_SEMAPHORE
ux_host_class_audio_transfer_request_semaphore;
VOID
*ux_host_class_audio_transfer_request_class_instance;
UINT
ux_host_class_audio_transfer_request_completion_code;
struct UX_HOST_CLASS_AUDIO_TRANSFER_REQUEST_STRUCT
*ux_host_class_audio_transfer_request_next_audio_transfer_request;
UX_TRANSFER
ux_host_class_audio_transfer_request;
} UX_HOST_CLASS_AUDIO_TRANSFER_REQUEST;
240
ULONG
ULONG
ULONG
ULONG
ULONG
ULONG
ULONG
VOID
VOID
ux_host_class_hid_report_callback_id;
ux_host_class_hid_report_callback_status;
ux_host_class_hid_report_callback_flags;
ux_host_class_hid_report_callback_value;
ux_host_class_hid_report_callback_usage;
ux_host_class_hid_report_callback_length;
ux_host_class_hid_report_callback_actual_length;
*ux_host_class_hid_report_callback_buffer;
(*ux_host_class_hid_report_callback_function)
(struct UX_HOST_CLASS_HID_REPORT_CALLBACK_STRUCT *);
} UX_HOST_CLASS_HID_REPORT_CALLBACK;
ux_host_class_hid_field_physical;
ux_host_class_hid_field_logical;
ux_host_class_hid_field_application;
ux_host_class_hid_field_logical_min;
ux_host_class_hid_field_logical_max;
ux_host_class_hid_field_physical_min;
ux_host_class_hid_field_physical_max;
ux_host_class_hid_field_unit;
ux_host_class_hid_field_unit_expo;
ux_host_class_hid_field_report_type;
ux_host_class_hid_field_report_id;
ux_host_class_hid_field_report_offset;
ux_host_class_hid_field_report_size;
ux_host_class_hid_field_report_count;
ux_host_class_hid_field_value;
User Guide
241
ULONG
*ux_host_class_hid_field_usages;
ULONG
ux_host_class_hid_field_number_usage;
ULONG
*ux_host_class_hid_field_values;
ULONG
ux_host_class_hid_field_number_values;
struct UX_HOST_CLASS_HID_REPORT
*ux_host_class_hid_field_report;
struct UX_HOST_CLASS_HID_FIELD_STRUCT
*ux_host_class_hid_field_next_field;
} UX_HOST_CLASS_HID_FIELD;
UCHAR
ux_host_class_hid_item_report_type;
UCHAR
ux_host_class_hid_item_report_tag;
USHORT
ux_host_class_hid_item_report_length;
USHORT
ux_host_class_hid_item_report_format;
UX_HOST_CLASS_HID_ITEM;
242
*ux_host_class_hid_next_instance;
UX_HOST_CLASS
*ux_host_class_hid_class;
UX_DEVICE
*ux_host_class_hid_device;
UX_ENDPOINT
*ux_host_class_hid_interrupt_endpoint;
UINT
ux_host_class_hid_interrupt_endpoint_status;
UX_INTERFACE
*ux_host_class_hid_interface;
ULONG
ux_host_class_hid_state;
struct UX_HID_DESCRIPTOR_STRUCT
ux_host_class_hid_descriptor;
UX_HOST_CLASS_HID_PARSER
ux_host_class_hid_parser;
struct UX_HOST_CLASS_HID_CLIENT_STRUCT
*ux_host_class_hid_client;
TX_SEMAPHORE
ux_host_class_hid_semaphore;
} UX_HOST_CLASS_HID;
ux_host_class_hid_client_status;
ux_host_class_hid_client_name[64];
(*ux_host_class_hid_client_handler)
(struct UX_HOST_CLASS_HID_CLIENT_COMMAND_STRUCT *);
VOID
*ux_host_class_hid_client_local_instance;
} UX_HOST_CLASS_HID_CLIENT;
User Guide
243
TX_SEMAPHORE
ux_host_class_hid_keyboard_semaphore;
ULONG
ux_host_class_hid_keyboard_alternate_key_state;
ULONG
ux_host_class_hid_keyboard_led_mask;
VOID
*ux_host_class_hid_keyboard_thread_stack;
ULONG
*ux_host_class_hid_keyboard_usage_array;
ULONG
*ux_host_class_hid_keyboard_usage_array_head;
ULONG
*ux_host_class_hid_keyboard_usage_array_tail;
} UX_HOST_CLASS_HID_KEYBOARD;
244
ux_host_class_storage_media;
ux_host_class_storage_media_status;
ux_host_class_storage_media_lun;
ux_host_class_storage_media_partition_start;
*ux_host_class_storage_media_memory;
} UX_HOST_CLASS_STORAGE_MEDIA;
User Guide
UX_SLAVE_CLASS_STORAGE_LUN
245
ux_slave_class_storage_lun[UX_MAX_SLAVE_LUN];
} UX_SLAVE_CLASS_STORAGE;
246
User Guide
APPENDIX
Language Identifiers
The 16-bit language identifiers, and the Primary
Language and Sublanguage Identifiers are defined in
following sections.
1
User Guide
248
User Guide
Afrikaans
Albanian
Arabic (Saudi Arabia)
Arabic (Iraq)
Arabic (Egypt)
Arabic (Libya)
Arabic (Algeria)
Arabic (Morocco)
Arabic (Tunisia)
Arabic (Oman)
Arabic (Yemen)
Arabic (Syria)
Arabic (Jordan)
Arabic (Lebanon)
Arabic (Kuwait)
Arabic (U.A.E.)
Arabic (Bahrain)
Arabic (Qatar)
Armenian.
Assamese.
Azeri (Latin)
Azeri (Cyrillic)
Basque
Belarussian
Bengali.
Bulgarian
Burmese
Catalan
Chinese (Taiwan)
Chinese (PRC)
Chinese (Hong Kong SAR, PRC)
Chinese (Singapore)
Chinese (Macau SAR)
Croatian
Czech
Language Identifiers
0x0406
0x0413
0x0813
0x0409
0x0809
0x0c09
0x1009
0x1409
0x1809
0x1c09
0x2009
0x2409
0x2809
0x2c09
0x3 009
0x3409
0x0425
0x0438
0x0429
0x040b
0x040c
0x080c
0x0c0c
0x100c
0x140c
0x180c
0x0437
0x0407
0x0807
0x0c07
0x1007
0x1407
0x0408
0x0447
0x040d
0x0439
0x040e
0x040f
0x0421
0x0410
0x0810
249
Danish
Dutch (Netherlands)
Dutch (Belgium)
English (United States)
English (United Kingdom)
English (Australian)
English (Canadian)
English (New Zealand)
English (Ireland)
English (South Africa)
English (Jamaica)
English (Caribbean)
English (Belize)
English (Trinidad)
English (Zimbabwe)
English (Philippines)
Estonian
Faeroese
Farsi
Finnish
French (Standard)
French (Belgian)
French (Canadian)
French (Switzerland)
French (Luxembourg)
French (Monaco)
Georgian.
German (Standard)
German (Switzerland)
German (Austria)
German (Luxembourg)
German (Liechtenstein)
Greek
Gujarati.
Hebrew
Hindi.
Hungarian
Icelandic
Indonesian
Italian (Standard)
Italian (Switzerland)
250
0x0411
0x044b
0x0860
0x043f
0x0457
0x0412
0x0812
0x0426
0x0427
0x0827
0x042f
0x043e
0x083e
0x044c
0x0458
0x044e
0x0861
0x0414
0x0814
0x0448
0x0415
0x0416
0x0816
0x0446
0x0418
0x0419
0x044f
0x0c1a
0x081a
0x0459
0x041b
0x0424
0x040a
0x080a
0x0c0a
0x100a
0x140a
0x180a
0x1c0a
0x200a
0x240a
User Guide
Japanese
Kannada.
Kashmiri (India)
Kazakh
Konkani.
Korean
Korean (Johab)
Latvian
Lithuanian
Lithuanian (Classic)
Macedonian
Malay (Malaysian)
Malay (Brunei Darussalam)
Malayalam.
Manipuri
Marathi.
Nepali (India).
Norwegian (Bokmal)
Norwegian (Nynorsk)
Oriya.
Polish
Portuguese (Brazil)
Portuguese (Standard)
Punjabi.
Romanian
Russian
Sanskrit.
Serbian (Cyrillic)
Serbian (Latin)
Sindhi
Slovak
Slovenian
Spanish (Traditional Sort)
Spanish (Mexican)
Spanish (Modern Sort)
Spanish (Guatemala)
Spanish (Costa Rica)
Spanish (Panama)
Spanish (Dominican Republic)
Spanish (Venezuela)
Spanish (Colombia)
Language Identifiers
0x280a
0x2c0a
0x300a
0x340a
0x380a
0x3c0a
0x400a
0x440a
0x480a
0x4c0a
0x500a
0x0430
0x0441
0x041d
0x081d
0x0449
0x0444
0x044a
0x041e
0x041f
0x0422
0x0420
0x0820
0x0443
0x0843
0x042a
0x04ff
0xf0ff
0xf4ff
0xf8ff
0xfcff
251
Spanish (Peru)
Spanish (Argentina)
Spanish (Ecuador)
Spanish (Chile)
Spanish (Uruguay)
Spanish (Paraguay)
Spanish (Bolivia)
Spanish (El Salvador)
Spanish (Honduras)
Spanish (Nicaragua)
Spanish (Puerto Rico)
Sutu
Swahili (Kenya)
Swedish
Swedish (Finland)
Tamil.
Tatar (Tatarstan)
Telugu.
Thai
Turkish
Ukrainian
Urdu (Pakistan)
Urdu (India)
Uzbek (Latin)
Uzbek (Cyrillic)
Vietnamese
HID (Usage Data Descriptor)
HID (Vendor Defined 1)
HID (Vendor Defined 2)
HID (Vendor Defined 3)
HID (Vendor Defined 4)
252
Predefined symbol
Language
0x39
LANG_HINDI
Hindi
0x3e
LANG_MALAY
Malay
0x3f
LANG_KAZAK
Kazak
0x41
LANG_SWAHILI
Swahili
0x43
LANG_UZBEK
Uzbek
0x44
LANG_TATAR
Tatar
0x45
LANG_BENGALI
Bengali
0x46
LANG_PUNJABI
Punjabi
0x47
LANG_GUJARATI
Gujarati
0x48
LANG_ORIYA
Oriya
0x49
LANG_TAMIL
Tamil
0x4a
LANG_TELUGU
Telugu
0x4b
LANG_KANNADA
Kannada
0x4c
LANG_MALAYALAM
Malayalam
0x4d
LANG_ASSAMESE
Assamese
0x4e
LANG_MARATHI
Marathi
0x4f
LANG_SANSKRIT
Sanskrit
0x57
LANG_KONKANI
Konkani
0x58
LANG_MANIPURI
Manipuri
0x59
LANG_SINDHI
Sindhi
0x60
LANG_KASHMIRI
Kashmiri
0x61
LANG_NEPALI
Nepali
LANG_HID
0x62-0xfe
0xff
Reserved
0x1 00-0x3ff
Reserved
User Guide
Language Identifiers
253
Sublanguage Identifiers
The following are sublanguage identifiers. They can be
combined with Primary Language Identifiers to form
Language Identifiers.
Identifier
Predefined symbol
Language
0x01
SUBLANG_ARABIC_SAUDI_ARABIA
0x02
SUBLANG_ARABIC_IRAQ
Arabic (Iraq)
0x03
SUBLANG_ARABIC_EGYPT
Arabic (Egypt)
0x04
SUBLANG_ARABIC_LIBYA
Arabic (Libya)
0x05
SUBLANG_ARABIC_ALGERIA
Arabic (Algeria)
0x06
SUBLANG_ARABIC_MOROCCO
Arabic (Morocco)
0x07
SUBLANG_ARABIC_TUNISIA
Arabic (Tunisia)
0x08
SUBLANG_ARABIC_OMAN
Arabic (Oman)
0x00-0x02
Reserved
0x09
SUBLANG_ARABIC_YEMEN
Arabic (Yemen)
0x10
SUBLANG_ARABIC_SYRIA
Arabic (Syria)
0x11
SUBLANG_ARABIC_JORDAN
Arabic (Jordan)
0x12
SUBLANG_ARABIC_LEBANON
Arabic (Lebanon)
0x13
SUBLANG_ARABIC_KUWAIT
Arabic (Kuwait)
0x14
SUBLANG_ARABIC_UAE
Arabic (U.A.E.)
0x15
SUBLANG_ARABIC_BAHRAIN
Arabic (Bahrain)
0x16
SUBLANG_ARABIC_QATAR
Arabic (Qatar)
0x01
SUBLANG_AZERI_CYRILLIC
Azeri (Cyrillic)
0x02
SUBLANG_AZERI_LATIN
Azeri (Latin)
0x01
SUBLANG_CHINESE_TRADITIONAL
Chinese (Traditional)
0x02
SUBLANG_CHINESE_SIMPLIFIED
Chinese (Simplified)
0x03
SUBLANG_CHINESE_HONGKONG
0x04
SUBLANG_CHINESE_SINGAPORE
Chinese (Singapore)
0x05
SUBLANG_CHINESE_MACAU
0x01
SUBLANG_DUTCH
Dutch
0x02
SUBLANG_DUTCH_BELGIAN
Dutch (Belgian)
0x01
SUBLANG_ENGLISH_US
English (US)
0x02
SUBLANG_ENGLISH_UK
English (UK)
0x03
SUBLANG_ENGLISH_AUS
English (Australian)
0x04
SUBLANG_ENGLISH_CAN
English (Canadian)
0x05
SUBLANG_ENGLISH_NZ
0x06
SUBLANG_ENGLISH_EIRE
English (Ireland)
254
0x07
SUBLANG_ENGLISH_SOUTH_AFRICA
0x08
SUBLANG_ENGLISH_JAMAICA
English (Jamaica)
0x09
SUBLANG_ENGLISH_CARIBBEAN
English (Caribbean)
0x0a
SUBLANG_ENGLISH_BELIZE
English (Belize)
0x0b
SUBLANG_ENGLISH_TRINIDAD
English (Trinidad)
0x0c
SUBLANG_ENGLISH_PHILIPPINES
English (Zimbabwe)
0x0d
SUBLANG_ENGLISH_ZIMBABWE
English (Philippines)
0x01
SUBLANG_FRENCH
French
0x02
SUBLANG_FRENCH_BELGIAN
French (Belgian)
0x03
SUBLANG_FRENCH_CANADIAN
French (Canadian)
0x04
SUBLANG_FRENCH_SWISS
French (Swiss)
0x05
SUBLANG_FRENCH_LUXEMBOURG
French (Luxembourg)
0x06
SUBLANG_FRENCH_MONACO
French (Monaco)
0x01
SUBLANG_GERMAN
German
0x02
SUBLANG_GERMAN_SWISS
German (Swiss)
0x03
SUBLANG_GERMAN_AUSTRIAN
German (Austrian)
0x04
SUBLANG_GERMAN_LUXEMBOURG
German (Luxembourg)
0x05
SUBLANG_GERMAN_LIECHTENSTEIN
German (Liechtenstein)
0x01
SUBLANG_ITALIAN
Italian
0x02
SUBLANG_ITALIAN_SWISS
Italian (Swiss)
0x02
SUBLANG_KASHMIRI_INDIA
Kashmiri (India)
0x01
SUBLANG_KOREAN
Korean
0x01
SUBLANG_LITHUANIAN
Lithuanian
0x01
SUBLANG_MALAY_MALAYSIA
Malay (Malaysia)
0x02
SUBLANG_MALAY_BRUNEI_DARUSSALAM
0x02
SUBLANG_NEPALI_INDIA
Nepali (India)
0x01
SUBLANG_NORWEGIAN_BOKMAL
Norwegian (Bokmal)
0x02
SUBLANG_NORWEGIAN_NYNORSK
Norwegian (Nynorsk)
0x01
SUBLANG_PORTUGUESE
Portuguese (Brazilian)
0x02
SUBLANG_PORTUGUESE_BRAZILIAN
Portuguese
0x02
SUBLANG_SERBIAN_LATIN
Serbian (Latin)
0x03
SUBLANG_SERBIAN_CYRILLIC
Serbian (Cyrillic)
0x01
SUBLANG_SPANISH
Spanish (Castilian)
0x02
SUBLANG_SPANISH_MEXICAN
Spanish (Mexican)
0x03
SUBLANG_SPANISH_MODERN
Spanish (Modern)
0x04
SUBLANG_SPANISH_GUATEMALA
Spanish (Guatemala)
0x05
SUBLANG_SPANISH_COSTA_RICA
0x06
SUBLANG_SPANISH_PANAMA
Spanish (Panama)
0x07
SUBLANG_SPANISH_DOMINICAN_REPUBLIC
Spanish (Dominican
Republic)
0x08
SUBLANG_SPANISH_VENEZUELA
Spanish (Venezuela)
User Guide
Language Identifiers
255
0x09
SUBLANG_SPANISH_COLOMBIA
0x0a
SUBLANG_SPANISH_PERU
Spanish (Colombia)
Spanish (Peru)
0x0b
SUBLANG_SPANISH_ARGENTINA
Spanish (Argentina)
0x0c
SUBLANG_SPANISH_ECUADOR
Spanish (Ecuador)
0x0d
SUBLANG_SPANISH_CHILE
Spanish (Chile)
0x0e
SUBLANG_SPANISH_URUGUAY
Spanish (Uruguay)
0x0f
SUBLANG_SPANISH_PARAGUAY
Spanish (Paraguay)
0x10
SUBLANG_SPANISH_BOLIVIA
Spanish (Bolivia)
0x11
SUBLANG_SPANISH_EL_SALVADOR
0x12
SUBLANG_SPANISH_HONDURAS
Spanish (Honduras)
0x13
SUBLANG_SPANISH_NICARAGUA
Spanish (Nicaragua)
0x14
SUBLANG_SPANISH_PUERTO_RICO
0x01
SUBLANG_SWEDISH
Swedish
0x02
SUBLANG_SWEDISH_FINLAND
Swedish (Finland)
0x01
SUBLANG_URDU_PAKISTAN
Urdu (Pakistan)
0x02
SUBLANG_URDU_INDIA
Urdu (India)
0x01
SUBLANG_UZBEK_LATIN
Uzbek (Latin)
0x02
SUBLANG_UZBEK_CYRILLIC
Uzbek (Cyrillic)
0x01
SUBLANG_HID_USAGE_DATA_DESCRIPTOR
0x3c
SUBLANG_HID_VENDOR_DEFINED_1
0x3d
SUBLANG_HID_VENDOR_DEFINED_2
0x3e
SUBLANG_HID_VENDOR_DEFINED_3
0x3f
SUBLANG_HID_VENDOR_DEFINED_4
256
Language Identifiers
User Guide
INDEX
A
abort pending transfer request 96
abort transactions attached to transfer
request for endpoint 70
activating USBX host facilities 35
alternate settings for interfaces 38
application interface calls 35
B
Background Debug Monitor 18
bAlternateSetting 53
bConfigurationValue 48
bInterfaceNumber 53
bNumConfigurations 48
bus-powered hubs 36
C
cancel a transfer request 176
cascading hubs 36
change alternate setting of interface 170
class manager 37
complex USB device illustration 42
components of device framework 136
compound device hubs 36
configuration descriptor information 49
configuration descriptor variable names 51
configuration descriptors 48
configuration of devices 36
configuration options for USBX library 21
create new class instance for class
container 76
creating a transmit thread 186
Customer Support Center 9
D
data transfer types 12
debugging tools 18
delete stack interface 166
demo_usbx.c 20
descriptor relationships 63
destroy class instance for class
container 78
device class APIs 135
device classes 10
device connections 37
device controller 29
device controllers 10
device descriptor information 43
device descriptors in memory 62
device discovery 37
Device Framework 135
device multiple configurations 37
device stack APIs 135
disconnect device stack 156
distribution CD 19
distribution disk 21
E
EHCI 27
endpoint descriptor information 56
endpoint descriptor variable names 60
endpoint descriptors 56
endpoint management 40
enumerating devices 35
Ethernet 18
examining the device interface
descriptors 37
example of a device framework 136
example of multiple LUNs 182
example of registration of HUB class 29
F
functional components of NetX 33
functional descriptors 62
G
get a pointer to a configuration
container 82
User Guide
258
ISP1161 27
hcd_initialize_function 27
hcd_name 27
hcd_param1 27
hcd_param2 27
host class definition 28
host controller functions 39
hub class 36
I
I/O suspension 19
illustration of USB host stack 34
In-Circuit Emulator 18
Initialization 134
initialization example 28
initialization of USBX 35
initialize USB device stack 162
initializing memory resources of USBX 35
initializing USBX host operation 68
interface descriptor variable names 55
interface descriptors 52
User Guide
J
joining device interfaces 38
L
language ID 61
language identifiers 247, 248
languages 139
latest product information 9
M
making support requests 10
master DMA support 40
mounting endpoints 38
multiple host controller support 14
multiple language support 139
multiple SCS LUNs 182
multiple thread protection 19
OHCI 27
OHCI USB controller 26
P
parallel interfaces 18
perform a soft reset to the printer 104
periodic processing 19
physical endpoints 40
power management processing 40
premium package contents 19
primary language identifiers 252
R
RAM memory usage 19
read from audio interface 108, 110
read from printer interface 100
readme_usbx.txt 18, 19, 20, 21
receiving a thread 186
receiving function 186
register callback from HID class 122
Index
S
sample definition of OKI controller 30
sample initialization in device mode with
storage device class and OKI
controller 31
searching for default alternate setting for
interface 38
select specific configuration for a device 84
selects alternative setting for interface 94
send a report 130
send descriptor to host 154
sending comments to Express Logic 10
service call data type
CHAR 9
UINT 9
ULONG 9
VOID 9
set alternate setting interface of audio
streaming interface 116
set current alternate setting for interface
value 146
set current configuration 152
259
T
ThreadX 8
ThreadX mutexes 35
ThreadX semaphores 35
ThreadX threads 35
transfer management 40
TRANSFER REQUEST 40
transfer request components 40
transfer requests for device endpoints 36
troubleshooting 31
tx_port.h 8, 9
U
USB 2.0 standard 14
USB bus topology monitoring 19
USB descriptor for interface 53
USB device descriptors 40
USB device diagram 41
USB device framework 40
USB DPUMP classes 184
USB DPUMP device class 188
260
User Guide
Index
ux_host_class_hid_report_callback_regist
er 122
ux_host_class_hid_report_get 128
ux_host_class_hid_report_set 130
ux_host_class_hub 29
ux_host_class_hub_entry 29
ux_host_class_printer_soft_reset 104
ux_host_class_printer_status_get 106
ux_host_class_printer_write 102
ux_host_class_register 29
ux_host_create_printer_read 100
ux_host_stack_class_get 72
ux_host_stack_class_instance_create 76
ux_host_stack_class_instance_destroy 78
ux_host_stack_class_instance_get 80
ux_host_stack_class_register 74
ux_host_stack_configuration_interface_get
92
ux_host_stack_device_configuration_get
82
ux_host_stack_device_configuration_selec
t 84
ux_host_stack_device_get 86
ux_host_stack_endpoint_transfer_abort 7
0
ux_host_stack_hcd_register 27, 90
ux_host_stack_initialize 35, 68
ux_host_stack_interface_endpoint_get 88
ux_host_stack_interface_setting_select 94
ux_host_stack_transfer_request 98
ux_host_stack_transfer_request_abort 96
UX_MAX_CLASSES 21
UX_MAX_DEVICES 22
UX_MAX_HCD 22
UX_MAX_HOST_LUN 23
UX_MAX_SLAVE_CLASSES 22
UX_MAX_SLAVE_LUN 23
ux_ohci_initialize 27
UX_PERIODIC_RATE 21
ux_port.h 9, 20, 21
UX_SLAVE_REQUEST_CONTROL_MAX
_LENGTH 23
261
UX_SLAVE_REQUEST_DATA_MAX_LEN
GTH 23
ux_system_initialize 35
V
VBUS management 139
VBUS Manager 139
W
wake up host 160
write to printer interface 102
262
Index
User Guide