diff options
Diffstat (limited to 'common/usbx_device_classes/inc')
10 files changed, 88 insertions, 40 deletions
diff --git a/common/usbx_device_classes/inc/ux_device_class_audio.h b/common/usbx_device_classes/inc/ux_device_class_audio.h index 2ed7cfb..38acd0d 100644 --- a/common/usbx_device_classes/inc/ux_device_class_audio.h +++ b/common/usbx_device_classes/inc/ux_device_class_audio.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_audio.h PORTABLE C */ -/* 6.0 */ +/* 6.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -41,6 +41,11 @@ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ +/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */ +/* used UX prefix to refer to */ +/* TX symbols instead of using */ +/* them directly, */ +/* resulting in version 6.1 */ /* */ /**************************************************************************/ @@ -333,7 +338,7 @@ typedef struct UX_DEVICE_CLASS_AUDIO_STREAM_STRUCT UX_DEVICE_CLASS_AUDIO_STREAM_CALLBACKS ux_device_class_audio_stream_callbacks; UCHAR *ux_device_class_audio_stream_thread_stack; - TX_THREAD ux_device_class_audio_stream_thread; + UX_THREAD ux_device_class_audio_stream_thread; UCHAR *ux_device_class_audio_stream_buffer; ULONG ux_device_class_audio_stream_buffer_size; diff --git a/common/usbx_device_classes/inc/ux_device_class_audio10.h b/common/usbx_device_classes/inc/ux_device_class_audio10.h index 4d3572e..add1f9e 100644 --- a/common/usbx_device_classes/inc/ux_device_class_audio10.h +++ b/common/usbx_device_classes/inc/ux_device_class_audio10.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_audio10.h PORTABLE C */ -/* 6.0 */ +/* 6.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -41,6 +41,8 @@ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ +/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */ +/* resulting in version 6.1 */ /* */ /**************************************************************************/ diff --git a/common/usbx_device_classes/inc/ux_device_class_audio20.h b/common/usbx_device_classes/inc/ux_device_class_audio20.h index 6da1b1b..f55df76 100644 --- a/common/usbx_device_classes/inc/ux_device_class_audio20.h +++ b/common/usbx_device_classes/inc/ux_device_class_audio20.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_audio20.h PORTABLE C */ -/* 6.0 */ +/* 6.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -41,6 +41,8 @@ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ +/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */ +/* resulting in version 6.1 */ /* */ /**************************************************************************/ diff --git a/common/usbx_device_classes/inc/ux_device_class_cdc_acm.h b/common/usbx_device_classes/inc/ux_device_class_cdc_acm.h index 43a6703..3934fc9 100644 --- a/common/usbx_device_classes/inc/ux_device_class_cdc_acm.h +++ b/common/usbx_device_classes/inc/ux_device_class_cdc_acm.h @@ -24,7 +24,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_cdc_acm.h PORTABLE C */ -/* 6.0 */ +/* 6.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -39,6 +39,11 @@ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ +/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */ +/* used UX prefix to refer to */ +/* TX symbols instead of using */ +/* them directly, */ +/* resulting in version 6.1 */ /* */ /**************************************************************************/ @@ -137,21 +142,21 @@ typedef struct UX_SLAVE_CLASS_CDC_ACM_STRUCT { UX_SLAVE_INTERFACE *ux_slave_class_cdc_acm_interface; UX_SLAVE_CLASS_CDC_ACM_PARAMETER ux_slave_class_cdc_acm_parameter; - TX_MUTEX ux_slave_class_cdc_acm_endpoint_in_mutex; - TX_MUTEX ux_slave_class_cdc_acm_endpoint_out_mutex; + UX_MUTEX ux_slave_class_cdc_acm_endpoint_in_mutex; + UX_MUTEX ux_slave_class_cdc_acm_endpoint_out_mutex; ULONG ux_slave_class_cdc_acm_baudrate; UCHAR ux_slave_class_cdc_acm_stop_bit; UCHAR ux_slave_class_cdc_acm_parity; UCHAR ux_slave_class_cdc_acm_data_bit; UCHAR ux_slave_class_cdc_acm_data_dtr_state; UCHAR ux_slave_class_cdc_acm_data_rts_state; - TX_THREAD ux_slave_class_cdc_acm_bulkin_thread; - TX_THREAD ux_slave_class_cdc_acm_bulkout_thread; + UX_THREAD ux_slave_class_cdc_acm_bulkin_thread; + UX_THREAD ux_slave_class_cdc_acm_bulkout_thread; UCHAR *ux_slave_class_cdc_acm_bulkin_thread_stack; UCHAR *ux_slave_class_cdc_acm_bulkout_thread_stack; UINT (*ux_device_class_cdc_acm_write_callback)(struct UX_SLAVE_CLASS_CDC_ACM_STRUCT *cdc_acm, UINT status, ULONG length); UINT (*ux_device_class_cdc_acm_read_callback)(struct UX_SLAVE_CLASS_CDC_ACM_STRUCT *cdc_acm, UINT status, UCHAR *data_pointer, ULONG length); - TX_EVENT_FLAGS_GROUP ux_slave_class_cdc_acm_event_flags_group; + UX_EVENT_FLAGS_GROUP ux_slave_class_cdc_acm_event_flags_group; ULONG ux_slave_class_cdc_acm_transmission_status; ULONG ux_slave_class_cdc_acm_scheduled_write; ULONG ux_slave_class_cdc_acm_callback_total_length; diff --git a/common/usbx_device_classes/inc/ux_device_class_cdc_ecm.h b/common/usbx_device_classes/inc/ux_device_class_cdc_ecm.h index df6dee3..fac6c1c 100644 --- a/common/usbx_device_classes/inc/ux_device_class_cdc_ecm.h +++ b/common/usbx_device_classes/inc/ux_device_class_cdc_ecm.h @@ -24,7 +24,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_cdc_ecm.h PORTABLE C */ -/* 6.0 */ +/* 6.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -39,6 +39,11 @@ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ +/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */ +/* used UX prefix to refer to */ +/* TX symbols instead of using */ +/* them directly, */ +/* resulting in version 6.1 */ /* */ /**************************************************************************/ @@ -269,7 +274,7 @@ typedef struct UX_SLAVE_CLASS_CDC_ECM_STRUCT ULONG ux_slave_class_cdc_ecm_ethernet_multicast_filter; ULONG ux_slave_class_cdc_ecm_ethernet_power_management_filter; ULONG ux_slave_class_cdc_ecm_ethernet_packet_filter; - TX_EVENT_FLAGS_GROUP ux_slave_class_cdc_ecm_event_flags_group; + UX_EVENT_FLAGS_GROUP ux_slave_class_cdc_ecm_event_flags_group; UCHAR ux_slave_class_cdc_ecm_local_node_id[UX_DEVICE_CLASS_CDC_ECM_NODE_ID_LENGTH]; UCHAR ux_slave_class_cdc_ecm_remote_node_id[UX_DEVICE_CLASS_CDC_ECM_NODE_ID_LENGTH]; NX_IP *ux_slave_class_cdc_ecm_nx_ip; @@ -281,14 +286,14 @@ typedef struct UX_SLAVE_CLASS_CDC_ECM_STRUCT NX_PACKET *ux_slave_class_cdc_ecm_receive_queue; UCHAR *ux_slave_class_cdc_ecm_pool_memory; NX_PACKET_POOL ux_slave_class_cdc_ecm_packet_pool; - TX_THREAD ux_slave_class_cdc_ecm_bulkin_thread; - TX_THREAD ux_slave_class_cdc_ecm_bulkout_thread; - TX_THREAD ux_slave_class_cdc_ecm_interrupt_thread; + UX_THREAD ux_slave_class_cdc_ecm_bulkin_thread; + UX_THREAD ux_slave_class_cdc_ecm_bulkout_thread; + UX_THREAD ux_slave_class_cdc_ecm_interrupt_thread; UCHAR *ux_slave_class_cdc_ecm_bulkin_thread_stack; UCHAR *ux_slave_class_cdc_ecm_bulkout_thread_stack; UCHAR *ux_slave_class_cdc_ecm_interrupt_thread_stack; ULONG ux_slave_class_cdc_ecm_link_state; - TX_MUTEX ux_slave_class_cdc_ecm_mutex; + UX_MUTEX ux_slave_class_cdc_ecm_mutex; VOID *ux_slave_class_cdc_ecm_network_handle; } UX_SLAVE_CLASS_CDC_ECM; diff --git a/common/usbx_device_classes/inc/ux_device_class_dfu.h b/common/usbx_device_classes/inc/ux_device_class_dfu.h index 815aec0..10e3985 100644 --- a/common/usbx_device_classes/inc/ux_device_class_dfu.h +++ b/common/usbx_device_classes/inc/ux_device_class_dfu.h @@ -24,7 +24,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_dfu.h PORTABLE C */ -/* 6.0 */ +/* 6.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -39,6 +39,11 @@ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ +/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */ +/* used UX prefix to refer to */ +/* TX symbols instead of using */ +/* them directly, */ +/* resulting in version 6.1 */ /* */ /**************************************************************************/ @@ -161,9 +166,9 @@ typedef struct UX_SLAVE_CLASS_DFU_STRUCT UINT (*ux_slave_class_dfu_notify)(VOID *dfu, ULONG notification); ULONG ux_slave_class_dfu_download_block_count; ULONG ux_slave_class_dfu_upload_block_count; - TX_THREAD ux_slave_class_dfu_thread; + UX_THREAD ux_slave_class_dfu_thread; UCHAR *ux_slave_class_dfu_thread_stack; - TX_EVENT_FLAGS_GROUP ux_slave_class_dfu_event_flags_group; + UX_EVENT_FLAGS_GROUP ux_slave_class_dfu_event_flags_group; } UX_SLAVE_CLASS_DFU; diff --git a/common/usbx_device_classes/inc/ux_device_class_hid.h b/common/usbx_device_classes/inc/ux_device_class_hid.h index f1b885b..05e3833 100644 --- a/common/usbx_device_classes/inc/ux_device_class_hid.h +++ b/common/usbx_device_classes/inc/ux_device_class_hid.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_hid.h PORTABLE C */ -/* 6.0 */ +/* 6.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -41,6 +41,11 @@ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ +/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */ +/* used UX prefix to refer to */ +/* TX symbols instead of using */ +/* them directly, */ +/* resulting in version 6.1 */ /* */ /**************************************************************************/ @@ -122,7 +127,7 @@ typedef struct UX_SLAVE_CLASS_HID_STRUCT UCHAR *ux_device_class_hid_report_address; ULONG ux_device_class_hid_report_id; ULONG ux_device_class_hid_report_length; - TX_EVENT_FLAGS_GROUP ux_device_class_hid_event_flags_group; + UX_EVENT_FLAGS_GROUP ux_device_class_hid_event_flags_group; ULONG ux_device_class_hid_event_idle_rate; ULONG ux_device_class_hid_event_wait_timeout; UX_SLAVE_CLASS_HID_EVENT *ux_device_class_hid_event_array; diff --git a/common/usbx_device_classes/inc/ux_device_class_pima.h b/common/usbx_device_classes/inc/ux_device_class_pima.h index 5506927..36558ba 100644 --- a/common/usbx_device_classes/inc/ux_device_class_pima.h +++ b/common/usbx_device_classes/inc/ux_device_class_pima.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_pima.h PORTABLE C */ -/* 6.0 */ +/* 6.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -41,6 +41,11 @@ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ +/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */ +/* used UX prefix to refer to */ +/* TX symbols instead of using */ +/* them directly, */ +/* resulting in version 6.1 */ /* */ /**************************************************************************/ @@ -785,10 +790,10 @@ typedef struct UX_SLAVE_CLASS_PIMA_STRUCT ULONG ux_device_class_pima_storage_free_space_image; UCHAR *ux_device_class_pima_storage_description; UCHAR *ux_device_class_pima_storage_volume_label; - TX_SEMAPHORE ux_device_class_pima_semaphore; - TX_THREAD ux_device_class_pima_interrupt_thread; + UX_SEMAPHORE ux_device_class_pima_semaphore; + UX_THREAD ux_device_class_pima_interrupt_thread; UCHAR *ux_device_class_pima_interrupt_thread_stack; - TX_SEMAPHORE ux_device_class_pima_interrupt_thread_semaphore; + UX_SEMAPHORE ux_device_class_pima_interrupt_thread_semaphore; UX_SLAVE_CLASS_PIMA_EVENT *ux_device_class_pima_event_array; UX_SLAVE_CLASS_PIMA_EVENT diff --git a/common/usbx_device_classes/inc/ux_device_class_rndis.h b/common/usbx_device_classes/inc/ux_device_class_rndis.h index c934b18..7142cf3 100644 --- a/common/usbx_device_classes/inc/ux_device_class_rndis.h +++ b/common/usbx_device_classes/inc/ux_device_class_rndis.h @@ -24,7 +24,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_rndis.h PORTABLE C */ -/* 6.0 */ +/* 6.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -39,6 +39,11 @@ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ +/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */ +/* used UX prefix to refer to */ +/* TX symbols instead of using */ +/* them directly, */ +/* resulting in version 6.1 */ /* */ /**************************************************************************/ @@ -479,7 +484,7 @@ typedef struct UX_SLAVE_CLASS_RNDIS_STRUCT { UX_SLAVE_INTERFACE *ux_slave_class_rndis_interface; UX_SLAVE_CLASS_RNDIS_PARAMETER ux_slave_class_rndis_parameter; - TX_SEMAPHORE ux_slave_class_rndis_semaphore; + UX_SEMAPHORE ux_slave_class_rndis_semaphore; UX_SLAVE_ENDPOINT *ux_slave_class_rndis_interrupt_endpoint; UX_SLAVE_ENDPOINT *ux_slave_class_rndis_bulkin_endpoint; UX_SLAVE_ENDPOINT *ux_slave_class_rndis_bulkout_endpoint; @@ -498,7 +503,7 @@ typedef struct UX_SLAVE_CLASS_RNDIS_STRUCT ULONG ux_slave_class_rndis_statistics_rcv_error_alignment; ULONG ux_slave_class_rndis_statistics_xmit_one_collision; ULONG ux_slave_class_rndis_statistics_xmit_more_collisions; - TX_EVENT_FLAGS_GROUP ux_slave_class_rndis_event_flags_group; + UX_EVENT_FLAGS_GROUP ux_slave_class_rndis_event_flags_group; UCHAR ux_slave_class_rndis_local_node_id[UX_DEVICE_CLASS_RNDIS_NODE_ID_LENGTH]; UCHAR ux_slave_class_rndis_remote_node_id[UX_DEVICE_CLASS_RNDIS_NODE_ID_LENGTH]; NX_IP *ux_slave_class_rndis_nx_ip; @@ -509,14 +514,14 @@ typedef struct UX_SLAVE_CLASS_RNDIS_STRUCT NX_PACKET *ux_slave_class_rndis_receive_queue; UCHAR *ux_slave_class_rndis_pool_memory; NX_PACKET_POOL ux_slave_class_rndis_packet_pool; - TX_THREAD ux_slave_class_rndis_interrupt_thread; - TX_THREAD ux_slave_class_rndis_bulkin_thread; - TX_THREAD ux_slave_class_rndis_bulkout_thread; + UX_THREAD ux_slave_class_rndis_interrupt_thread; + UX_THREAD ux_slave_class_rndis_bulkin_thread; + UX_THREAD ux_slave_class_rndis_bulkout_thread; UCHAR *ux_slave_class_rndis_interrupt_thread_stack; UCHAR *ux_slave_class_rndis_bulkin_thread_stack; UCHAR *ux_slave_class_rndis_bulkout_thread_stack; ULONG ux_slave_class_rndis_link_state; - TX_MUTEX ux_slave_class_rndis_mutex; + UX_MUTEX ux_slave_class_rndis_mutex; VOID *ux_slave_class_rndis_network_handle; } UX_SLAVE_CLASS_RNDIS; diff --git a/common/usbx_device_classes/inc/ux_device_class_storage.h b/common/usbx_device_classes/inc/ux_device_class_storage.h index c2e7858..e658da8 100644 --- a/common/usbx_device_classes/inc/ux_device_class_storage.h +++ b/common/usbx_device_classes/inc/ux_device_class_storage.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_storage.h PORTABLE C */ -/* 6.0.2 */ +/* 6.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -41,9 +41,9 @@ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ -/* 08-14-2020 Chaoqiong Xiao Modified comment(s), */ -/* added mode related macros, */ -/* resulting in version 6.0.2 */ +/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */ +/* optimized command logic, */ +/* resulting in version 6.1 */ /* */ /**************************************************************************/ @@ -425,9 +425,7 @@ typedef struct UX_SLAVE_CLASS_STORAGE_LUN_STRUCT ULONG ux_slave_class_storage_media_read_only_flag; ULONG ux_slave_class_storage_media_id; ULONG ux_slave_class_storage_scsi_tag; - UCHAR ux_slave_class_storage_request_sense_key; - UCHAR ux_slave_class_storage_request_code; - UCHAR ux_slave_class_storage_request_code_qualifier; + ULONG ux_slave_class_storage_request_sense_status; ULONG ux_slave_class_storage_disk_status; ULONG ux_slave_class_storage_last_session_state; UINT (*ux_slave_class_storage_media_read)(VOID *storage, ULONG lun, UCHAR *data_pointer, ULONG number_blocks, ULONG lba, ULONG *media_status); @@ -437,6 +435,14 @@ typedef struct UX_SLAVE_CLASS_STORAGE_LUN_STRUCT UINT (*ux_slave_class_storage_media_notification)(VOID *storage, ULONG lun, ULONG media_id, ULONG notification_class, UCHAR **media_notification, ULONG *media_notification_length); } UX_SLAVE_CLASS_STORAGE_LUN; +/* Sense status value (key at bit0-7, code at bit8-15 and qualifier at bit16-23). */ + +#define UX_DEVICE_CLASS_STORAGE_SENSE_STATUS(key,code,qualifier) (((key) & 0xFF)|(((code) & 0xFF) << 8)|(((qualifier) & 0xFF) << 16)) +#define UX_DEVICE_CLASS_STORAGE_SENSE_KEY(status) ((status) & 0xFF) +#define UX_DEVICE_CLASS_STORAGE_SENSE_CODE(status) (((status) >> 8) & 0xFF) +#define UX_DEVICE_CLASS_STORAGE_SENSE_QUALIFIER(status) (((status) >> 16) & 0xFF) + + /* Define Slave Storage Class structure. */ typedef struct UX_SLAVE_CLASS_STORAGE_STRUCT @@ -444,7 +450,7 @@ typedef struct UX_SLAVE_CLASS_STORAGE_STRUCT UX_SLAVE_INTERFACE *ux_slave_class_storage_interface; ULONG ux_slave_class_storage_number_lun; UX_SLAVE_CLASS_STORAGE_LUN ux_slave_class_storage_lun[UX_MAX_SLAVE_LUN]; - ULONG ux_slave_class_storage_phase_error; + ULONG ux_slave_class_storage_csw_status; VOID (*ux_slave_class_storage_instance_activate)(VOID *); VOID (*ux_slave_class_storage_instance_deactivate)(VOID *); UCHAR *ux_slave_class_storage_vendor_id; @@ -454,6 +460,9 @@ typedef struct UX_SLAVE_CLASS_STORAGE_STRUCT } UX_SLAVE_CLASS_STORAGE; +#define UX_DEVICE_CLASS_STORAGE_CSW_STATUS(p) (((UCHAR*)(p))[0]) +#define UX_DEVICE_CLASS_STORAGE_CSW_SKIP(p) (((UCHAR*)(p))[3]) + /* Define Slave Storage Class Calling Parameter structure */ typedef struct UX_SLAVE_CLASS_STORAGE_PARAMETER_STRUCT |
