diff options
Diffstat (limited to 'common/usbx_host_classes/inc')
16 files changed, 212 insertions, 50 deletions
diff --git a/common/usbx_host_classes/inc/ux_host_class_asix.h b/common/usbx_host_classes/inc/ux_host_class_asix.h index 71d1083..477b632 100644 --- a/common/usbx_host_classes/inc/ux_host_class_asix.h +++ b/common/usbx_host_classes/inc/ux_host_class_asix.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_class_asix.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 */ /* */ /**************************************************************************/ @@ -344,9 +349,9 @@ typedef struct UX_HOST_CLASS_ASIX_STRUCT UX_INTERFACE *ux_host_class_asix_interface; UINT ux_host_class_asix_instance_status; UINT ux_host_class_asix_state; - TX_SEMAPHORE ux_host_class_asix_semaphore; - TX_SEMAPHORE ux_host_class_asix_interrupt_notification_semaphore; - TX_THREAD ux_host_class_asix_thread; + UX_SEMAPHORE ux_host_class_asix_semaphore; + UX_SEMAPHORE ux_host_class_asix_interrupt_notification_semaphore; + UX_THREAD ux_host_class_asix_thread; UCHAR *ux_host_class_asix_thread_stack; ULONG ux_host_class_asix_notification_count; ULONG ux_host_class_asix_primary_phy_id; diff --git a/common/usbx_host_classes/inc/ux_host_class_audio.h b/common/usbx_host_classes/inc/ux_host_class_audio.h index c976e2d..db23a18 100644 --- a/common/usbx_host_classes/inc/ux_host_class_audio.h +++ b/common/usbx_host_classes/inc/ux_host_class_audio.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_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 */ /* */ /**************************************************************************/ @@ -338,7 +343,7 @@ typedef struct UX_HOST_CLASS_AUDIO_STRUCT UINT ux_host_class_audio_channels; ULONG ux_host_class_audio_channel_control[UX_HOST_CLASS_AUDIO_MAX_CHANNEL]; UCHAR ux_host_class_audio_name[UX_HOST_CLASS_AUDIO_NAME_LENGTH]; - TX_SEMAPHORE ux_host_class_audio_semaphore; + UX_SEMAPHORE ux_host_class_audio_semaphore; } UX_HOST_CLASS_AUDIO; @@ -352,7 +357,7 @@ typedef struct UX_HOST_CLASS_AUDIO_TRANSFER_REQUEST_STRUCT ULONG ux_host_class_audio_transfer_request_requested_length; ULONG ux_host_class_audio_transfer_request_actual_length; VOID (*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; + UX_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 diff --git a/common/usbx_host_classes/inc/ux_host_class_cdc_acm.h b/common/usbx_host_classes/inc/ux_host_class_cdc_acm.h index 62ff9f9..0e0795a 100644 --- a/common/usbx_host_classes/inc/ux_host_class_cdc_acm.h +++ b/common/usbx_host_classes/inc/ux_host_class_cdc_acm.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_class_cdc_acm.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 */ /* */ /**************************************************************************/ @@ -194,7 +199,7 @@ typedef struct UX_HOST_CLASS_CDC_ACM_STRUCT UX_INTERFACE *ux_host_class_cdc_acm_interface; UINT ux_host_class_cdc_acm_instance_status; UINT ux_host_class_cdc_acm_state; - TX_SEMAPHORE ux_host_class_cdc_acm_semaphore; + UX_SEMAPHORE ux_host_class_cdc_acm_semaphore; ULONG ux_host_class_cdc_acm_notification_count; UCHAR ux_host_class_cdc_acm_capabilities; ULONG ux_host_class_cdc_acm_device_state; @@ -220,7 +225,7 @@ typedef struct UX_HOST_CLASS_CDC_DLC_STRUCT UX_INTERFACE *ux_host_class_cdc_dlc_interface; UINT ux_host_class_cdc_dlc_instance_status; UINT ux_host_class_cdc_dlc_state; - TX_SEMAPHORE ux_host_class_cdc_dlc_semaphore; + UX_SEMAPHORE ux_host_class_cdc_dlc_semaphore; ULONG ux_host_class_cdc_dlc_notification_count; UCHAR ux_host_class_cdc_dlc_capabilities; struct UX_HOST_CLASS_CDC_DLC_RECEPTION_STRUCT diff --git a/common/usbx_host_classes/inc/ux_host_class_cdc_ecm.h b/common/usbx_host_classes/inc/ux_host_class_cdc_ecm.h index a3f15d1..ae5e1c8 100644 --- a/common/usbx_host_classes/inc/ux_host_class_cdc_ecm.h +++ b/common/usbx_host_classes/inc/ux_host_class_cdc_ecm.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_class_cdc_ecm.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 */ /* */ /**************************************************************************/ @@ -220,14 +225,14 @@ typedef struct UX_HOST_CLASS_CDC_ECM_STRUCT UX_INTERFACE *ux_host_class_cdc_ecm_interface_control; UCHAR ux_host_class_cdc_ecm_bulk_in_transfer_check_and_arm_in_process; UCHAR ux_host_class_cdc_ecm_bulk_in_transfer_waiting_for_check_and_arm_to_finish; - TX_SEMAPHORE ux_host_class_cdc_ecm_bulk_in_transfer_waiting_for_check_and_arm_to_finish_semaphore; + UX_SEMAPHORE ux_host_class_cdc_ecm_bulk_in_transfer_waiting_for_check_and_arm_to_finish_semaphore; UCHAR ux_host_class_cdc_ecm_bulk_out_transfer_check_and_arm_in_process; UCHAR ux_host_class_cdc_ecm_bulk_out_transfer_waiting_for_check_and_arm_to_finish; - TX_SEMAPHORE ux_host_class_cdc_ecm_bulk_out_transfer_waiting_for_check_and_arm_to_finish_semaphore; + UX_SEMAPHORE ux_host_class_cdc_ecm_bulk_out_transfer_waiting_for_check_and_arm_to_finish_semaphore; UINT ux_host_class_cdc_ecm_instance_status; UINT ux_host_class_cdc_ecm_state; - TX_SEMAPHORE ux_host_class_cdc_ecm_interrupt_notification_semaphore; - TX_THREAD ux_host_class_cdc_ecm_thread; + UX_SEMAPHORE ux_host_class_cdc_ecm_interrupt_notification_semaphore; + UX_THREAD ux_host_class_cdc_ecm_thread; UCHAR *ux_host_class_cdc_ecm_thread_stack; ULONG ux_host_class_cdc_ecm_notification_count; ULONG ux_host_class_cdc_ecm_primary_phy_id; diff --git a/common/usbx_host_classes/inc/ux_host_class_gser.h b/common/usbx_host_classes/inc/ux_host_class_gser.h index a9d76b6..5b84686 100644 --- a/common/usbx_host_classes/inc/ux_host_class_gser.h +++ b/common/usbx_host_classes/inc/ux_host_class_gser.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_class_gser.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 */ /* */ /**************************************************************************/ @@ -155,7 +160,7 @@ typedef struct UX_HOST_CLASS_GSER_INTERFACE_STRUCT UX_INTERFACE *ux_host_class_gser_interface; UX_ENDPOINT *ux_host_class_gser_bulk_out_endpoint; UX_ENDPOINT *ux_host_class_gser_bulk_in_endpoint; - TX_SEMAPHORE ux_host_class_gser_semaphore; + UX_SEMAPHORE ux_host_class_gser_semaphore; struct UX_HOST_CLASS_GSER_RECEPTION_STRUCT *ux_host_class_gser_reception; ULONG ux_host_class_gser_notification_count; } UX_HOST_CLASS_GSER_INTERFACE; diff --git a/common/usbx_host_classes/inc/ux_host_class_hid.h b/common/usbx_host_classes/inc/ux_host_class_hid.h index d7aa0d5..49b1cec 100644 --- a/common/usbx_host_classes/inc/ux_host_class_hid.h +++ b/common/usbx_host_classes/inc/ux_host_class_hid.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_class_hid.h PORTABLE C */ -/* 6.0.2 */ +/* 6.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -41,10 +41,12 @@ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ -/* 08-14-2020 Chaoqiong Xiao Modified comment(s), */ -/* fixed struct field */ -/* definition issues, */ -/* resulting in version 6.0.2 */ +/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */ +/* used UX prefix to refer to */ +/* TX symbols instead of using */ +/* them directly, fixed struct */ +/* field definition issues, */ +/* resulting in version 6.1 */ /* */ /**************************************************************************/ @@ -936,7 +938,7 @@ typedef struct UX_HOST_CLASS_HID_STRUCT 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_SEMAPHORE ux_host_class_hid_semaphore; } UX_HOST_CLASS_HID; diff --git a/common/usbx_host_classes/inc/ux_host_class_hid_keyboard.h b/common/usbx_host_classes/inc/ux_host_class_hid_keyboard.h index 1a6a5d2..229302a 100644 --- a/common/usbx_host_classes/inc/ux_host_class_hid_keyboard.h +++ b/common/usbx_host_classes/inc/ux_host_class_hid_keyboard.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_class_hid_keyboard.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 */ /* */ /**************************************************************************/ @@ -185,8 +190,8 @@ typedef struct UX_HOST_CLASS_HID_KEYBOARD_STRUCT ULONG ux_host_class_hid_keyboard_key_count; UX_HOST_CLASS_HID *ux_host_class_hid_keyboard_hid; USHORT ux_host_class_hid_keyboard_id; - TX_THREAD ux_host_class_hid_keyboard_thread; - TX_SEMAPHORE ux_host_class_hid_keyboard_semaphore; + UX_THREAD ux_host_class_hid_keyboard_thread; + UX_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; diff --git a/common/usbx_host_classes/inc/ux_host_class_hid_mouse.h b/common/usbx_host_classes/inc/ux_host_class_hid_mouse.h index 363611e..00846a7 100644 --- a/common/usbx_host_classes/inc/ux_host_class_hid_mouse.h +++ b/common/usbx_host_classes/inc/ux_host_class_hid_mouse.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_class_hid_mouse.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_host_classes/inc/ux_host_class_hid_remote_control.h b/common/usbx_host_classes/inc/ux_host_class_hid_remote_control.h index 11d006f..a8685fa 100644 --- a/common/usbx_host_classes/inc/ux_host_class_hid_remote_control.h +++ b/common/usbx_host_classes/inc/ux_host_class_hid_remote_control.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_class_hid_remote_control.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_host_classes/inc/ux_host_class_hub.h b/common/usbx_host_classes/inc/ux_host_class_hub.h index 47a77d5..50f76d5 100644 --- a/common/usbx_host_classes/inc/ux_host_class_hub.h +++ b/common/usbx_host_classes/inc/ux_host_class_hub.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_class_hub.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_host_classes/inc/ux_host_class_pima.h b/common/usbx_host_classes/inc/ux_host_class_pima.h index 009415c..5b3d0b6 100644 --- a/common/usbx_host_classes/inc/ux_host_class_pima.h +++ b/common/usbx_host_classes/inc/ux_host_class_pima.h @@ -25,8 +25,8 @@ /* */ /* COMPONENT DEFINITION RELEASE */ /* */ -/* ux_host_class_cdc_acm.h PORTABLE C */ -/* 6.0 */ +/* ux_host_class_pima.h PORTABLE C */ +/* 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 */ /* */ /**************************************************************************/ @@ -367,7 +372,7 @@ typedef struct UX_HOST_CLASS_PIMA_STRUCT struct UX_HOST_CLASS_PIMA_SESSION_STRUCT *ux_host_class_pima_session; UCHAR *ux_host_class_pima_container; - TX_SEMAPHORE ux_host_class_pima_semaphore; + UX_SEMAPHORE ux_host_class_pima_semaphore; VOID *ux_host_class_pima_application; ULONG ux_host_class_pima_zlp_flag; diff --git a/common/usbx_host_classes/inc/ux_host_class_printer.h b/common/usbx_host_classes/inc/ux_host_class_printer.h index 7cdf4b7..8caa2eb 100644 --- a/common/usbx_host_classes/inc/ux_host_class_printer.h +++ b/common/usbx_host_classes/inc/ux_host_class_printer.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_class_printer.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 */ /* */ /**************************************************************************/ @@ -86,7 +91,7 @@ typedef struct UX_HOST_CLASS_PRINTER_STRUCT UX_ENDPOINT *ux_host_class_printer_bulk_in_endpoint; UINT ux_host_class_printer_state; UCHAR ux_host_class_printer_name[UX_HOST_CLASS_PRINTER_NAME_LENGTH]; - TX_SEMAPHORE ux_host_class_printer_semaphore; + UX_SEMAPHORE ux_host_class_printer_semaphore; } UX_HOST_CLASS_PRINTER; diff --git a/common/usbx_host_classes/inc/ux_host_class_prolific.h b/common/usbx_host_classes/inc/ux_host_class_prolific.h index 79b4918..5e69646 100644 --- a/common/usbx_host_classes/inc/ux_host_class_prolific.h +++ b/common/usbx_host_classes/inc/ux_host_class_prolific.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_class_prolific.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 */ /* */ /**************************************************************************/ @@ -191,7 +196,7 @@ typedef struct UX_HOST_CLASS_PROLIFIC_STRUCT UX_INTERFACE *ux_host_class_prolific_interface; UINT ux_host_class_prolific_instance_status; UINT ux_host_class_prolific_state; - TX_SEMAPHORE ux_host_class_prolific_semaphore; + UX_SEMAPHORE ux_host_class_prolific_semaphore; ULONG ux_host_class_prolific_notification_count; ULONG ux_host_class_prolific_device_state; VOID (*ux_host_class_prolific_device_status_change_callback)(struct UX_HOST_CLASS_PROLIFIC_STRUCT *prolific, diff --git a/common/usbx_host_classes/inc/ux_host_class_storage.h b/common/usbx_host_classes/inc/ux_host_class_storage.h index afe000d..359bbd1 100644 --- a/common/usbx_host_classes/inc/ux_host_class_storage.h +++ b/common/usbx_host_classes/inc/ux_host_class_storage.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_class_storage.h PORTABLE C */ -/* 6.0 */ +/* 6.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -41,6 +41,17 @@ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ +/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */ +/* added option to disable FX */ +/* media integration, used UX_ */ +/* things instead of FX_ */ +/* things directly, used host */ +/* class extension pointer for */ +/* class specific structured */ +/* data, used UX prefix to */ +/* refer to TX symbols instead */ +/* of using them directly, */ +/* resulting in version 6.1 */ /* */ /**************************************************************************/ @@ -48,9 +59,49 @@ #define UX_HOST_CLASS_STORAGE_H +#if !defined(UX_HOST_CLASS_STORAGE_NO_FILEX) /* Include the FileX API. */ #include "fx_api.h" +/* Refine media stubs. */ + +#ifndef UX_MEDIA +#define UX_MEDIA FX_MEDIA +#endif + +#ifndef ux_media_id_get +#define ux_media_id_get(m) ((m)->fx_media_id) +#endif + +#ifndef ux_media_id_set +#define ux_media_id_set(m,id) ((m)->fx_media_id=(id)) +#endif + +#ifndef ux_media_driver_info_get +#define ux_media_driver_info_get(m) ((m)->fx_media_driver_info) +#endif + +#ifndef ux_media_driver_info_set +#define ux_media_driver_info_set(m,i) ((m)->fx_media_driver_info=(VOID*)(i)) +#endif + +#ifndef ux_media_reserved_for_user_get +#define ux_media_reserved_for_user_get(m) ((m)->fx_media_reserved_for_user) +#endif + +#ifndef ux_media_reserved_for_user_set +#define ux_media_reserved_for_user_set(m,u) ((m)->fx_media_reserved_for_user=(ALIGN_TYPE)(u)) +#endif + +#ifndef ux_media_open +#define ux_media_open fx_media_open +#endif + +#ifndef ux_media_close +#define ux_media_close fx_media_close +#endif +#endif + /* Define User configurable Storage Class constants. */ #ifndef UX_MAX_HOST_LUN @@ -356,8 +407,8 @@ #define UX_HOST_CLASS_STORAGE_CBW_LENGTH 31 #define UX_HOST_CLASS_STORAGE_CSW_LENGTH 13 -#define UX_HOST_CLASS_STORAGE_CBW_LENGTH_ALIGNED 64 -#define UX_HOST_CLASS_STORAGE_CSW_LENGTH_ALIGNED 64 +#define UX_HOST_CLASS_STORAGE_CBW_LENGTH_ALIGNED 32 +#define UX_HOST_CLASS_STORAGE_CSW_LENGTH_ALIGNED 16 typedef struct UX_HOST_CLASS_STORAGE_STRUCT @@ -381,26 +432,45 @@ typedef struct UX_HOST_CLASS_STORAGE_STRUCT UINT ux_host_class_storage_max_lun; UINT ux_host_class_storage_lun; UINT ux_host_class_storage_lun_types[UX_MAX_HOST_LUN]; +#if defined(UX_HOST_CLASS_STORAGE_NO_FILEX) + ULONG ux_host_class_storage_last_sector_number; +#endif ULONG ux_host_class_storage_sector_size; ULONG ux_host_class_storage_data_phase_length; UINT (*ux_host_class_storage_transport) (struct UX_HOST_CLASS_STORAGE_STRUCT *storage, UCHAR * data_pointer); ULONG ux_host_class_storage_sense_code; UCHAR *ux_host_class_storage_memory; - TX_SEMAPHORE ux_host_class_storage_semaphore; + UX_SEMAPHORE ux_host_class_storage_semaphore; } UX_HOST_CLASS_STORAGE; +typedef struct UX_HOST_CLASS_STORAGE_EXT_STRUCT +{ + UX_THREAD ux_host_class_thread; + CHAR ux_host_class_thread_stack[UX_HOST_CLASS_STORAGE_THREAD_STACK_SIZE]; +} UX_HOST_CLASS_STORAGE_EXT; + + /* Define Host Storage Class Media structure. */ typedef struct UX_HOST_CLASS_STORAGE_MEDIA_STRUCT { - FX_MEDIA ux_host_class_storage_media; +#if !defined(UX_HOST_CLASS_STORAGE_NO_FILEX) + UX_MEDIA ux_host_class_storage_media; + ULONG ux_host_class_storage_media_partition_start; + VOID *ux_host_class_storage_media_memory; ULONG ux_host_class_storage_media_status; ULONG ux_host_class_storage_media_lun; - ULONG ux_host_class_storage_media_partition_start; ULONG ux_host_class_storage_media_sector_size; - VOID *ux_host_class_storage_media_memory; +#else + struct UX_HOST_CLASS_STORAGE_STRUCT + *ux_host_class_storage_media_storage; + ULONG ux_host_class_storage_media_number_sectors; + USHORT ux_host_class_storage_media_sector_size; + UCHAR ux_host_class_storage_media_lun; + UCHAR reserved; +#endif } UX_HOST_CLASS_STORAGE_MEDIA; @@ -415,7 +485,15 @@ UINT _ux_host_class_storage_deactivate(UX_HOST_CLASS_COMMAND *command); UINT _ux_host_class_storage_device_initialize(UX_HOST_CLASS_STORAGE *storage); UINT _ux_host_class_storage_device_reset(UX_HOST_CLASS_STORAGE *storage); UINT _ux_host_class_storage_device_support_check(UX_HOST_CLASS_STORAGE *storage); -VOID _ux_host_class_storage_driver_entry(FX_MEDIA *media); +#if !defined(UX_HOST_CLASS_STORAGE_NO_FILEX) +VOID _ux_host_class_storage_driver_entry(UX_MEDIA *media); +#else +#define _ux_host_class_storage_lock(s,w) _ux_utility_semaphore_get(&(s) -> ux_host_class_storage_semaphore, (w)) +#define _ux_host_class_storage_unlock(s) _ux_utility_semaphore_put(&(s) -> ux_host_class_storage_semaphore) +UINT _ux_host_class_storage_media_get(UX_HOST_CLASS_STORAGE *storage, ULONG media_index, UX_HOST_CLASS_STORAGE_MEDIA **storage_media); +UINT _ux_host_class_storage_media_lock(UX_HOST_CLASS_STORAGE_MEDIA *storage_media, ULONG wait); +#define _ux_host_class_storage_media_unlock(m) _ux_host_class_storage_unlock((m) -> ux_host_class_storage_media_storage) +#endif UINT _ux_host_class_storage_endpoints_get(UX_HOST_CLASS_STORAGE *storage); UINT _ux_host_class_storage_entry(UX_HOST_CLASS_COMMAND *command); UINT _ux_host_class_storage_max_lun_get(UX_HOST_CLASS_STORAGE *storage); @@ -448,4 +526,10 @@ UINT _ux_host_class_storage_unit_ready_test(UX_HOST_CLASS_STORAGE *storage); #define ux_host_class_storage_media_read _ux_host_class_storage_media_read #define ux_host_class_storage_media_write _ux_host_class_storage_media_write +#if defined(UX_HOST_CLASS_STORAGE_NO_FILEX) +#define ux_host_class_storage_media_get _ux_host_class_storage_media_get +#define ux_host_class_storage_media_lock _ux_host_class_storage_media_lock +#define ux_host_class_storage_media_unlock _ux_host_class_storage_media_unlock +#endif + #endif diff --git a/common/usbx_host_classes/inc/ux_host_class_swar.h b/common/usbx_host_classes/inc/ux_host_class_swar.h index 2eecbd2..a5e9fb6 100644 --- a/common/usbx_host_classes/inc/ux_host_class_swar.h +++ b/common/usbx_host_classes/inc/ux_host_class_swar.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_class_swar.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 */ /* */ /**************************************************************************/ @@ -86,7 +91,7 @@ typedef struct UX_HOST_CLASS_SWAR_STRUCT UX_ENDPOINT *ux_host_class_swar_bulk_out_endpoint; UX_ENDPOINT *ux_host_class_swar_bulk_in_endpoint; UINT ux_host_class_swar_state; - TX_SEMAPHORE ux_host_class_swar_semaphore; + UX_SEMAPHORE ux_host_class_swar_semaphore; struct UX_HOST_CLASS_SWAR_RECEPTION_STRUCT *ux_host_class_swar_reception; diff --git a/common/usbx_host_classes/inc/ux_host_class_video.h b/common/usbx_host_classes/inc/ux_host_class_video.h index 7308c87..2d5822b 100644 --- a/common/usbx_host_classes/inc/ux_host_class_video.h +++ b/common/usbx_host_classes/inc/ux_host_class_video.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_host_class_video.h PORTABLE C */ -/* 6.0 */ +/* 6.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -41,6 +41,14 @@ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ +/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */ +/* added new definition, field */ +/* and functions for video */ +/* control handling, used UX */ +/* prefix to refer to TX */ +/* symbols instead of using */ +/* them directly, */ +/* resulting in version 6.1 */ /* */ /**************************************************************************/ @@ -243,6 +251,7 @@ extern UCHAR _ux_system_host_class_video_name[]; #define UX_HOST_CLASS_VIDEO_WRONG_TYPE 0x90 #define UX_HOST_CLASS_VIDEO_WRONG_INTERFACE 0x91 #define UX_HOST_CLASS_VIDEO_PARAMETER_ERROR 0x92 +#define UX_HOST_CLASS_VIDEO_DEVICE_NOT_READY 0x93 /* Define Video Class Terminal Control Selectors. */ #define UX_HOST_CLASS_VIDEO_TCS_VC_CONTROL_UNDEFINED 0x00 @@ -481,7 +490,8 @@ typedef struct UX_HOST_CLASS_VIDEO_STRUCT UX_TRANSFER ux_host_class_video_transfer_requests[UX_HOST_CLASS_VIDEO_TRANSFER_REQUEST_COUNT]; ULONG ux_host_class_video_transfer_request_start_index; ULONG ux_host_class_video_transfer_request_end_index; - TX_SEMAPHORE ux_host_class_video_semaphore; + UX_SEMAPHORE ux_host_class_video_semaphore; + UX_SEMAPHORE ux_host_class_video_semaphore_control_request; VOID (*ux_host_class_video_transfer_completion_function)(UX_TRANSFER*); } UX_HOST_CLASS_VIDEO; @@ -497,7 +507,7 @@ typedef struct UX_HOST_CLASS_VIDEO_TRANSFER_REQUEST_STRUCT ULONG ux_host_class_video_transfer_request_requested_length; ULONG ux_host_class_video_transfer_request_actual_length; VOID (*ux_host_class_video_transfer_request_completion_function) (struct UX_HOST_CLASS_VIDEO_TRANSFER_REQUEST_STRUCT *); - TX_SEMAPHORE ux_host_class_video_transfer_request_semaphore; + UX_SEMAPHORE ux_host_class_video_transfer_request_semaphore; VOID *ux_host_class_video_transfer_request_class_instance; UINT ux_host_class_video_transfer_request_completion_code; struct UX_HOST_CLASS_VIDEO_TRANSFER_REQUEST_STRUCT @@ -612,7 +622,15 @@ ULONG _ux_host_class_video_max_payload_get(UX_HOST_CLASS_VIDEO *video); UINT _ux_host_class_video_transfer_buffer_add(UX_HOST_CLASS_VIDEO *video, UCHAR* buffer); UINT _ux_host_class_video_transfer_buffers_add(UX_HOST_CLASS_VIDEO *video, UCHAR** buffers, ULONG num_buffers); VOID _ux_host_class_video_transfer_callback_set(UX_HOST_CLASS_VIDEO *video, VOID (*callback_function)(UX_TRANSFER*)); - +UINT _ux_host_class_video_entities_parse(UX_HOST_CLASS_VIDEO *video, + UINT(*parse_function)(VOID *arg, + UCHAR *packed_interface_descriptor, + UCHAR *packed_entity_descriptor), + VOID* arg); +UINT _ux_host_class_video_control_request(UX_HOST_CLASS_VIDEO *video, + UINT request, UCHAR interface_index, + UINT entity_id, UINT control_selector, + UCHAR *parameter, UINT parameter_size); /* Define Video Class API prototypes. */ @@ -629,6 +647,8 @@ VOID _ux_host_class_video_transfer_callback_set(UX_HOST_CLASS_VIDEO *video, V #define ux_host_class_video_transfer_buffer_add _ux_host_class_video_transfer_buffer_add #define ux_host_class_video_transfer_buffers_add _ux_host_class_video_transfer_buffers_add #define ux_host_class_video_transfer_callback_set _ux_host_class_video_transfer_callback_set +#define ux_host_class_video_entities_parse _ux_host_class_video_entities_parse +#define ux_host_class_video_control_request _ux_host_class_video_control_request #endif |
