/**************************************************************************//* *//* Copyright (c) Microsoft Corporation. All rights reserved. *//* *//* This software is licensed under the Microsoft Software License *//* Terms for Microsoft Azure RTOS. Full text of the license can be *//* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA *//* and in the root directory of this software. *//* */.../**************************************************************************//**************************************************************************//**************************************************************************//** *//** USBX Component *//** *//** CDC_ECM Class *//** */.../**************************************************************************//**************************************************************************//**************************************************************************//* *//* COMPONENT DEFINITION RELEASE *//* *//* ux_device_class_cdc_ecm.h PORTABLE C *//* 6.1.8 *//* AUTHOR *//* *//* Chaoqiong Xiao, Microsoft Corporation *//* *//* DESCRIPTION *//* *//* This file defines the equivalences for the USBX Device Class *//* CDC_ECM component. *//* *//* RELEASE HISTORY *//* *//* 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 *//* 08-02-2021 Wen Wang Modified comment(s), *//* fixed spelling error, *//* added extern "C" keyword *//* for compatibility with C++, *//* resulting in version 6.1.8 *//* */.../**************************************************************************/#ifndefUX_DEVICE_CLASS_CDC_ECM_H#defineUX_DEVICE_CLASS_CDC_ECM_H/* Determine if a C++ compiler is being used. If so, ensure that standard C is used to process the API information. *//* ... */#ifdef__cplusplus/* Yes, C++ compiler is present. Use standard C. */extern"C"{#endif#include"nx_api.h"#include"ux_network_driver.h"/* Define generic CDC_ECM equivalences. */#defineUX_DEVICE_CLASS_CDC_ECM_CLASS_COMMUNICATION_CONTROL0x02#defineUX_DEVICE_CLASS_CDC_ECM_SUBCLASS_COMMUNICATION_CONTROL0x06#defineUX_DEVICE_CLASS_CDC_ECM_CLASS_COMMUNICATION_DATA0x0A#defineUX_DEVICE_CLASS_CDC_ECM_NEW_INTERRUPT_EVENT0x01#defineUX_DEVICE_CLASS_CDC_ECM_NEW_BULKOUT_EVENT0x02#defineUX_DEVICE_CLASS_CDC_ECM_NEW_BULKIN_EVENT0x04#defineUX_DEVICE_CLASS_CDC_ECM_NEW_DEVICE_STATE_CHANGE_EVENT0x08#defineUX_DEVICE_CLASS_CDC_ECM_NETWORK_NOTIFICATION_EVENT0x10#defineUX_DEVICE_CLASS_CDC_ECM_INTERRUPT_RESPONSE_LENGTH8#defineUX_DEVICE_CLASS_CDC_ECM_MAX_CONTROL_RESPONSE_LENGTH256#defineUX_DEVICE_CLASS_CDC_ECM_INTERRUPT_RESPONSE_AVAILABLE_FLAG1#defineUX_DEVICE_CLASS_CDC_ECM_BASE_IP_ADDRESS0xC0A80001#defineUX_DEVICE_CLASS_CDC_ECM_BASE_IP_MASK0xFFFFFF00#defineUX_DEVICE_CLASS_CDC_ECM_MAX_MTU1518#defineUX_DEVICE_CLASS_CDC_ECM_ETHERNET_IP0x0800#defineUX_DEVICE_CLASS_CDC_ECM_ETHERNET_ARP0x0806#defineUX_DEVICE_CLASS_CDC_ECM_ETHERNET_RARP0x8035#defineUX_DEVICE_CLASS_CDC_ECM_ETHERNET_PACKET_SIZE1536#defineUX_DEVICE_CLASS_CDC_ECM_NX_ALIGN_PADDING219 defines#ifndefUX_DEVICE_CLASS_CDC_ECM_NX_PKPOOL_ENTRIES#defineUX_DEVICE_CLASS_CDC_ECM_NX_PKPOOL_ENTRIES16#endif#defineUX_DEVICE_CLASS_CDC_ECM_NX_PACKET_SIZEsizeof(NX_PACKET)#defineUX_DEVICE_CLASS_CDC_ECM_NX_PAYLOAD_SIZE_ASSERTUX_COMPILE_TIME_ASSERT(!UX_OVERFLOW_CHECK_ADD_ULONG(UX_DEVICE_CLASS_CDC_ECM_ETHERNET_PACKET_SIZE,UX_DEVICE_CLASS_CDC_ECM_NX_ALIGN_PADDING),UX_DEVICE_CLASS_CDC_ECM_NX_PAYLOAD_SIZE_calc_ovf)#defineUX_DEVICE_CLASS_CDC_ECM_NX_PAYLOAD_SIZE(UX_DEVICE_CLASS_CDC_ECM_ETHERNET_PACKET_SIZE+UX_DEVICE_CLASS_CDC_ECM_NX_ALIGN_PADDING)#defineUX_DEVICE_CLASS_CDC_ECM_NX_BUFF_SIZE_ASSERT\UX_DEVICE_CLASS_CDC_ECM_NX_PAYLOAD_SIZE_ASSERT\UX_COMPILE_TIME_ASSERT(!UX_OVERFLOW_CHECK_ADD_ULONG(\UX_DEVICE_CLASS_CDC_ECM_NX_PAYLOAD_SIZE,\UX_DEVICE_CLASS_CDC_ECM_NX_PACKET_SIZE),\UX_DEVICE_CLASS_CDC_ECM_NX_BUFF_SIZE_calc_ovf)...#defineUX_DEVICE_CLASS_CDC_ECM_NX_BUFF_SIZE(UX_DEVICE_CLASS_CDC_ECM_NX_PAYLOAD_SIZE+UX_DEVICE_CLASS_CDC_ECM_NX_PACKET_SIZE)#defineUX_DEVICE_CLASS_CDC_ECM_NX_ETHERNET_POOL_ALLOCSIZE_ASSERT\UX_DEVICE_CLASS_CDC_ECM_NX_BUFF_SIZE_ASSERT\UX_COMPILE_TIME_ASSERT(!UX_OVERFLOW_CHECK_MULC_ULONG(\UX_DEVICE_CLASS_CDC_ECM_NX_PKPOOL_ENTRIES,\UX_DEVICE_CLASS_CDC_ECM_NX_BUFF_SIZE),\UX_DEVICE_CLASS_CDC_ECM_NX_ETHERNET_POOL_ALLOCSIZE_calc1_ovf)\UX_COMPILE_TIME_ASSERT(!UX_OVERFLOW_CHECK_ADD_ULONG(\UX_DEVICE_CLASS_CDC_ECM_NX_PKPOOL_ENTRIES*\UX_DEVICE_CLASS_CDC_ECM_NX_BUFF_SIZE,\32),UX_DEVICE_CLASS_CDC_ECM_NX_ETHERNET_POOL_ALLOCSIZE_calc2_ovf)...#defineUX_DEVICE_CLASS_CDC_ECM_NX_ETHERNET_POOL_ALLOCSIZE(UX_DEVICE_CLASS_CDC_ECM_NX_PKPOOL_ENTRIES*UX_DEVICE_CLASS_CDC_ECM_NX_BUFF_SIZE+32)#defineUX_DEVICE_CLASS_CDC_ECM_ETHERNET_SIZE14#defineUX_DEVICE_CLASS_CDC_ECM_NODE_ID_LENGTH6#defineUX_DEVICE_CLASS_CDC_ECM_VENDOR_DESCRIPTION_MAX_LENGTH64#defineUX_DEVICE_CLASS_CDC_ECM_MAC_OPTIONS8#defineUX_DEVICE_CLASS_CDC_ECM_PACKET_HEADER_MSG1/* Device CDC_ECM Requests */#defineUX_DEVICE_CLASS_CDC_ECM_SEND_ENCAPSULATED_COMMAND0x00#defineUX_DEVICE_CLASS_CDC_ECM_GET_ENCAPSULATED_RESPONSE0x01#defineUX_DEVICE_CLASS_CDC_ECM_SET_ETHERNET_MULTICAST_FILTER0x40#defineUX_DEVICE_CLASS_CDC_ECM_SET_ETHERNET_POWER_MANAGEMENT_FILTER0x41#defineUX_DEVICE_CLASS_CDC_ECM_GET_ETHERNET_POWER_MANAGEMENT_FILTER0x42#defineUX_DEVICE_CLASS_CDC_ECM_SET_ETHERNET_PACKET_FILTER0x43/* Define CDC_ECM Versions. Set to 1.0 here. */#defineUX_DEVICE_CLASS_CDC_ECM_VERSION_MAJOR0x00000001#defineUX_DEVICE_CLASS_CDC_ECM_VERSION_MINOR0x00000000/* Define CDC_ECM Connection type supported. Set to conectionless. */#defineUX_DEVICE_CLASS_CDC_ECM_DF_CONNECTIONLESS0x00000001#defineUX_DEVICE_CLASS_CDC_ECM_DF_CONNECTION_ORIENTED0x00000002#defineUX_DEVICE_CLASS_CDC_ECM_DF_CONNECTION_SUPPORTEDUX_DEVICE_CLASS_CDC_ECM_DF_CONNECTIONLESS/* Define CDC_ECM Medium supported by the device. */#defineUX_DEVICE_CLASS_CDC_ECM_MEDIUM_SUPPORTED0x00000000/* Define CDC_ECM Packet size and types supported. */#defineUX_DEVICE_CLASS_CDC_ECM_MAX_PACKET_PER_TRANSFER0x00000001#defineUX_DEVICE_CLASS_CDC_ECM_MAX_PACKET_TRANSFER_SIZE0x00000640#defineUX_DEVICE_CLASS_CDC_ECM_PACKET_ALIGNEMENT_FACTOR0x00000003#defineUX_DEVICE_CLASS_CDC_ECM_MAX_FRAME_SIZE0x000005DC#defineUX_DEVICE_CLASS_CDC_ECM_MAX_PACKET_LENGTH0x000005EA/* Define LINK speeds. */#defineUX_DEVICE_CLASS_CDC_ECM_LINK_SPEED_FS0x0001D4C0/* Define LINK statess. */#defineUX_DEVICE_CLASS_CDC_ECM_LINK_STATE_DOWN0#defineUX_DEVICE_CLASS_CDC_ECM_LINK_STATE_UP1#defineUX_DEVICE_CLASS_CDC_ECM_LINK_STATE_PENDING_UP2#defineUX_DEVICE_CLASS_CDC_ECM_LINK_STATE_PENDING_DOWN3/* Define media connection values. */#defineUX_DEVICE_CLASS_CDC_ECM_MEDIA_CONNECTED0x00000000#defineUX_DEVICE_CLASS_CDC_ECM_MEDIA_DISCONNECTED0x00000001/* Define media supported values. */#defineUX_DEVICE_CLASS_CDC_ECM_MEDIA_802_30x00000000#defineUX_DEVICE_CLASS_CDC_ECM_MEDIA_802_50x00000001#defineUX_DEVICE_CLASS_CDC_ECM_MEDIA_FDDI0x00000002#defineUX_DEVICE_CLASS_CDC_ECM_MEDIA_WAN0x00000003#defineUX_DEVICE_CLASS_CDC_ECM_MEDIA_LOCAL_TALK0x00000004#defineUX_DEVICE_CLASS_CDC_ECM_MEDIA_DIX0x00000005#defineUX_DEVICE_CLASS_CDC_ECM_MEDIA_ARCNET_RAW0x00000006#defineUX_DEVICE_CLASS_CDC_ECM_MEDIA_ARCNET_878_20x00000007#defineUX_DEVICE_CLASS_CDC_ECM_MEDIA_ATM0x00000008#defineUX_DEVICE_CLASS_CDC_ECM_MEDIA_WIRELESS_WAN0x00000009#defineUX_DEVICE_CLASS_CDC_ECM_MEDIA_IRDA0x0000000A/* Define CDC_ECM status values. */#defineUX_DEVICE_CLASS_CDC_ECM_STATUS_SUCCESS0x00000000#defineUX_DEVICE_CLASS_CDC_ECM_STATUS_FAILURE0xC0000001#defineUX_DEVICE_CLASS_CDC_ECM_STATUS_INVALID_DATA0xC0010015#defineUX_DEVICE_CLASS_CDC_ECM_STATUS_NOT_SUPPORTED0xC00000BB#defineUX_DEVICE_CLASS_CDC_ECM_STATUS_MEDIA_CONNECTED0x4001000B#defineUX_DEVICE_CLASS_CDC_ECM_STATUS_MEDIA_DISCONNECT0x4001000C/* Define CDC_ECM Control Messages values. *//* Define CDC_ECM State machine. */#defineUX_DEVICE_CLASS_CDC_ECM_STATE_UNINITIALIZED0x00000000#defineUX_DEVICE_CLASS_CDC_ECM_STATE_INITIALIZED0x00000001#defineUX_DEVICE_CLASS_CDC_ECM_STATE_DATA_INITIALIZED0x00000002/* Define NetX errors inside the CDC_ECM class. */#defineUX_DEVICE_CLASS_CDC_ECM_NX_SUCCESS0x00#defineUX_DEVICE_CLASS_CDC_ECM_NX_NO_PACKET0x01#defineUX_DEVICE_CLASS_CDC_ECM_NX_UNDERFLOW0x02#defineUX_DEVICE_CLASS_CDC_ECM_NX_OVERFLOW0x03#defineUX_DEVICE_CLASS_CDC_ECM_NX_NO_MAPPING0x04#defineUX_DEVICE_CLASS_CDC_ECM_NX_DELETED0x05#defineUX_DEVICE_CLASS_CDC_ECM_NX_POOL_ERROR0x06#defineUX_DEVICE_CLASS_CDC_ECM_NX_PTR_ERROR0x07#defineUX_DEVICE_CLASS_CDC_ECM_NX_WAIT_ERROR0x08#defineUX_DEVICE_CLASS_CDC_ECM_NX_SIZE_ERROR0x09#defineUX_DEVICE_CLASS_CDC_ECM_NX_OPTION_ERROR0x0a#defineUX_DEVICE_CLASS_CDC_ECM_NX_DELETE_ERROR0x10#defineUX_DEVICE_CLASS_CDC_ECM_NX_CALLER_ERROR0x11#defineUX_DEVICE_CLASS_CDC_ECM_NX_INVALID_PACKET0x12#defineUX_DEVICE_CLASS_CDC_ECM_NX_INVALID_SOCKET0x13#defineUX_DEVICE_CLASS_CDC_ECM_NX_NOT_ENABLED0x14#defineUX_DEVICE_CLASS_CDC_ECM_NX_ALREADY_ENABLED0x15#defineUX_DEVICE_CLASS_CDC_ECM_NX_ENTRY_NOT_FOUND0x16#defineUX_DEVICE_CLASS_CDC_ECM_NX_NO_MORE_ENTRIES0x17#defineUX_DEVICE_CLASS_CDC_ECM_NX_ARP_TIMER_ERROR0x18#defineUX_DEVICE_CLASS_CDC_ECM_NX_RESERVED_CODE00x19#defineUX_DEVICE_CLASS_CDC_ECM_NX_WAIT_ABORTED0x1A#defineUX_DEVICE_CLASS_CDC_ECM_NX_IP_INTERNAL_ERROR0x20#defineUX_DEVICE_CLASS_CDC_ECM_NX_IP_ADDRESS_ERROR0x21#defineUX_DEVICE_CLASS_CDC_ECM_NX_ALREADY_BOUND0x22#defineUX_DEVICE_CLASS_CDC_ECM_NX_PORT_UNAVAILABLE0x23#defineUX_DEVICE_CLASS_CDC_ECM_NX_NOT_BOUND0x24#defineUX_DEVICE_CLASS_CDC_ECM_NX_RESERVED_CODE10x25#defineUX_DEVICE_CLASS_CDC_ECM_NX_SOCKET_UNBOUND0x26#defineUX_DEVICE_CLASS_CDC_ECM_NX_NOT_CREATED0x27#defineUX_DEVICE_CLASS_CDC_ECM_NX_SOCKETS_BOUND0x28#defineUX_DEVICE_CLASS_CDC_ECM_NX_NO_RESPONSE0x29#defineUX_DEVICE_CLASS_CDC_ECM_NX_POOL_DELETED0x30#defineUX_DEVICE_CLASS_CDC_ECM_NX_ALREADY_RELEASED0x31#defineUX_DEVICE_CLASS_CDC_ECM_NX_RESERVED_CODE20x32#defineUX_DEVICE_CLASS_CDC_ECM_NX_MAX_LISTEN0x33#defineUX_DEVICE_CLASS_CDC_ECM_NX_DUPLICATE_LISTEN0x34#defineUX_DEVICE_CLASS_CDC_ECM_NX_NOT_CLOSED0x35#defineUX_DEVICE_CLASS_CDC_ECM_NX_NOT_LISTEN_STATE0x36#defineUX_DEVICE_CLASS_CDC_ECM_NX_IN_PROGRESS0x37#defineUX_DEVICE_CLASS_CDC_ECM_NX_NOT_CONNECTED0x38#defineUX_DEVICE_CLASS_CDC_ECM_NX_WINDOW_OVERFLOW0x39#defineUX_DEVICE_CLASS_CDC_ECM_NX_ALREADY_SUSPENDED0x40#defineUX_DEVICE_CLASS_CDC_ECM_NX_DISCONNECT_FAILED0x41#defineUX_DEVICE_CLASS_CDC_ECM_NX_STILL_BOUND0x42#defineUX_DEVICE_CLASS_CDC_ECM_NX_NOT_SUCCESSFUL0x43#defineUX_DEVICE_CLASS_CDC_ECM_NX_UNHANDLED_COMMAND0x44#defineUX_DEVICE_CLASS_CDC_ECM_NX_NO_FREE_PORTS0x45#defineUX_DEVICE_CLASS_CDC_ECM_NX_INVALID_PORT0x46#defineUX_DEVICE_CLASS_CDC_ECM_NX_INVALID_RELISTEN0x47#defineUX_DEVICE_CLASS_CDC_ECM_NX_CONNECTION_PENDING0x48#defineUX_DEVICE_CLASS_CDC_ECM_NX_TX_QUEUE_DEPTH0x49#defineUX_DEVICE_CLASS_CDC_ECM_NX_NOT_IMPLEMENTED0x80109 defines/* Define timeout packet allocation value. */#ifndefUX_DEVICE_CLASS_CDC_ECM_PACKET_POOL_WAIT#defineUX_DEVICE_CLASS_CDC_ECM_PACKET_POOL_WAIT1000#endif/* Define Slave CDC_ECM Class Calling Parameter structure */typedefstructUX_SLAVE_CLASS_CDC_ECM_PARAMETER_STRUCT{VOID(*ux_slave_class_cdc_ecm_instance_activate)(VOID*);VOID(*ux_slave_class_cdc_ecm_instance_deactivate)(VOID*);ULONGux_slave_class_cdc_ecm_parameter_media;ULONGux_slave_class_cdc_ecm_parameter_vendor_id;ULONGux_slave_class_cdc_ecm_parameter_driver_version;UCHARux_slave_class_cdc_ecm_parameter_vendor_description[UX_DEVICE_CLASS_CDC_ECM_VENDOR_DESCRIPTION_MAX_LENGTH];UCHARux_slave_class_cdc_ecm_parameter_local_node_id[UX_DEVICE_CLASS_CDC_ECM_NODE_ID_LENGTH];UCHARux_slave_class_cdc_ecm_parameter_remote_node_id[UX_DEVICE_CLASS_CDC_ECM_NODE_ID_LENGTH];...}UX_SLAVE_CLASS_CDC_ECM_PARAMETER;/* Define CDC_ECM Class structure. */typedefstructUX_SLAVE_CLASS_CDC_ECM_STRUCT{UX_SLAVE_INTERFACE*ux_slave_class_cdc_ecm_interface;UX_SLAVE_CLASS_CDC_ECM_PARAMETERux_slave_class_cdc_ecm_parameter;UX_SLAVE_ENDPOINT*ux_slave_class_cdc_ecm_bulkin_endpoint;UX_SLAVE_ENDPOINT*ux_slave_class_cdc_ecm_bulkout_endpoint;UX_SLAVE_ENDPOINT*ux_slave_class_cdc_ecm_interrupt_endpoint;ULONGux_slave_class_cdc_ecm_state;ULONGux_slave_class_cdc_ecm_current_alternate_setting;ULONGux_slave_class_cdc_ecm_max_transfer_size;ULONGux_slave_class_cdc_ecm_request_id;ULONGux_slave_class_cdc_ecm_statistics_xmit_ok;ULONGux_slave_class_cdc_ecm_statistics_rcv_ok;ULONGux_slave_class_cdc_ecm_statistics_xmit_error;ULONGux_slave_class_cdc_ecm_statistics_rcv_error;ULONGux_slave_class_cdc_ecm_statistics_rcv_no_buffer;ULONGux_slave_class_cdc_ecm_statistics_rcv_error_alignment;ULONGux_slave_class_cdc_ecm_statistics_xmit_one_collision;ULONGux_slave_class_cdc_ecm_statistics_xmit_more_collisions;ULONGux_slave_class_cdc_ecm_ethernet_multicast_filter;ULONGux_slave_class_cdc_ecm_ethernet_power_management_filter;ULONGux_slave_class_cdc_ecm_ethernet_packet_filter;UX_EVENT_FLAGS_GROUPux_slave_class_cdc_ecm_event_flags_group;UCHARux_slave_class_cdc_ecm_local_node_id[UX_DEVICE_CLASS_CDC_ECM_NODE_ID_LENGTH];UCHARux_slave_class_cdc_ecm_remote_node_id[UX_DEVICE_CLASS_CDC_ECM_NODE_ID_LENGTH];NX_IP*ux_slave_class_cdc_ecm_nx_ip;ULONGux_slave_class_cdc_ecm_nx_ip_address;ULONGux_slave_class_cdc_ecm_nx_ip_network_mask;NX_INTERFACE*ux_slave_class_cdc_ecm_nx_interface;NX_PACKET*ux_slave_class_cdc_ecm_xmit_queue;NX_PACKET*ux_slave_class_cdc_ecm_xmit_queue_tail;NX_PACKET*ux_slave_class_cdc_ecm_receive_queue;UCHAR*ux_slave_class_cdc_ecm_pool_memory;NX_PACKET_POOLux_slave_class_cdc_ecm_packet_pool;UX_THREADux_slave_class_cdc_ecm_bulkin_thread;UX_THREADux_slave_class_cdc_ecm_bulkout_thread;UX_THREADux_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;ULONGux_slave_class_cdc_ecm_link_state;UX_MUTEXux_slave_class_cdc_ecm_mutex;VOID*ux_slave_class_cdc_ecm_network_handle;...}UX_SLAVE_CLASS_CDC_ECM;/* Requests - Ethernet Networking Control Model */#defineUX_DEVICE_CLASS_CDC_ECM_SEND_ENCAPSULATED_COMMAND0x00/* Issues a command in the format of the supported control protocol. The intent of this mechanism is to support networking devices (e.g., host-based cable modems) that require an additional vendor-defined interface for media specific hardware configuration and management. *//* ... */#defineUX_DEVICE_CLASS_CDC_ECM_GET_ENCAPSULATED_RESPONSE0x01/* Requests a response in the format of the supported control protocol. *//* ... *//* Define buffer length for IN/OUT pipes. */#defineUX_DEVICE_CLASS_CDC_ECM_BUFFER_SIZE4096/* Define Device CDC_ECM Class prototypes. */UINT_ux_device_class_cdc_ecm_activate(UX_SLAVE_CLASS_COMMAND*command);UINT_ux_device_class_cdc_ecm_control_request(UX_SLAVE_CLASS_COMMAND*command);UINT_ux_device_class_cdc_ecm_deactivate(UX_SLAVE_CLASS_COMMAND*command);UINT_ux_device_class_cdc_ecm_change(UX_SLAVE_CLASS_COMMAND*command);UINT_ux_device_class_cdc_ecm_entry(UX_SLAVE_CLASS_COMMAND*command);UINT_ux_device_class_cdc_ecm_initialize(UX_SLAVE_CLASS_COMMAND*command);UINT_ux_device_class_cdc_ecm_uninitialize(UX_SLAVE_CLASS_COMMAND*command);UINT_ux_device_class_cdc_ecm_write(VOID*cdc_ecm_class,NX_PACKET*packet);VOID_ux_device_class_cdc_ecm_bulkin_thread(ULONGcdc_ecm_class);VOID_ux_device_class_cdc_ecm_bulkout_thread(ULONGcdc_ecm_class);VOID_ux_device_class_cdc_ecm_interrupt_thread(ULONGcdc_ecm_class);/* Define Device CDC Class API prototypes. */#defineux_device_class_cdc_ecm_entry_ux_device_class_cdc_ecm_entry#defineux_device_class_cdc_ecm_read_ux_device_class_cdc_ecm_read#defineux_device_class_cdc_ecm_write_ux_device_class_cdc_ecm_write/* Determine if a C++ compiler is being used. If so, complete the standard C conditional started above. *//* ... */#ifdef__cplusplus}extern "C" { ... }#endif/* ... */...#endif/* UX_DEVICE_CLASS_CDC_ECM_H */
Details
Show: from
Types: Columns:
All items filtered out
All items filtered out
This file uses the notable symbols shown below. Click anywhere in the file to view more details.