diff options
Diffstat (limited to 'lib/lufa/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h')
-rw-r--r-- | lib/lufa/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h | 411 |
1 files changed, 0 insertions, 411 deletions
diff --git a/lib/lufa/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h b/lib/lufa/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h deleted file mode 100644 index ade1af067..000000000 --- a/lib/lufa/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h +++ /dev/null @@ -1,411 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaims all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * \brief Common definitions and declarations for the library USB RNDIS Class driver. - * - * Common definitions and declarations for the library USB RNDIS Class driver. - * - * \note This file should not be included directly. It is automatically included as needed by the USB module driver - * dispatch header located in LUFA/Drivers/USB.h. - */ - -/** \ingroup Group_USBClassRNDIS - * \defgroup Group_USBClassRNDISCommon Common Class Definitions - * - * \section Sec_USBClassRNDISCommon_ModDescription Module Description - * Constants, Types and Enum definitions that are common to both Device and Host modes for the USB - * RNDIS Class. - * - * @{ - */ - -#ifndef _RNDIS_CLASS_COMMON_H_ -#define _RNDIS_CLASS_COMMON_H_ - - /* Macros: */ - #define __INCLUDE_FROM_CDC_DRIVER - - /* Includes: */ - #include "../../Core/StdDescriptors.h" - #include "CDCClassCommon.h" - - /* Enable C linkage for C++ Compilers: */ - #if defined(__cplusplus) - extern "C" { - #endif - - /* Preprocessor Checks: */ - #if !defined(__INCLUDE_FROM_RNDIS_DRIVER) - #error Do not include this file directly. Include LUFA/Drivers/USB.h instead. - #endif - - /* Macros: */ - /** Additional error code for RNDIS functions when a device returns a logical command failure. */ - #define RNDIS_ERROR_LOGICAL_CMD_FAILED 0x80 - - /** Implemented RNDIS Version Major. */ - #define REMOTE_NDIS_VERSION_MAJOR 0x01 - - /** Implemented RNDIS Version Minor. */ - #define REMOTE_NDIS_VERSION_MINOR 0x00 - - /** \name RNDIS Message Values */ - //@{ - #define REMOTE_NDIS_PACKET_MSG 0x00000001UL - #define REMOTE_NDIS_INITIALIZE_MSG 0x00000002UL - #define REMOTE_NDIS_HALT_MSG 0x00000003UL - #define REMOTE_NDIS_QUERY_MSG 0x00000004UL - #define REMOTE_NDIS_SET_MSG 0x00000005UL - #define REMOTE_NDIS_RESET_MSG 0x00000006UL - #define REMOTE_NDIS_INDICATE_STATUS_MSG 0x00000007UL - #define REMOTE_NDIS_KEEPALIVE_MSG 0x00000008UL - //@} - - /** \name RNDIS Response Values */ - //@{ - #define REMOTE_NDIS_INITIALIZE_CMPLT 0x80000002UL - #define REMOTE_NDIS_QUERY_CMPLT 0x80000004UL - #define REMOTE_NDIS_SET_CMPLT 0x80000005UL - #define REMOTE_NDIS_RESET_CMPLT 0x80000006UL - #define REMOTE_NDIS_KEEPALIVE_CMPLT 0x80000008UL - //@} - - /** \name RNDIS Status Values */ - //@{ - #define REMOTE_NDIS_STATUS_SUCCESS 0x00000000UL - #define REMOTE_NDIS_STATUS_FAILURE 0xC0000001UL - #define REMOTE_NDIS_STATUS_INVALID_DATA 0xC0010015UL - #define REMOTE_NDIS_STATUS_NOT_SUPPORTED 0xC00000BBUL - #define REMOTE_NDIS_STATUS_MEDIA_CONNECT 0x4001000BUL - #define REMOTE_NDIS_STATUS_MEDIA_DISCONNECT 0x4001000CUL - //@} - - /** \name RNDIS Media States */ - //@{ - #define REMOTE_NDIS_MEDIA_STATE_CONNECTED 0x00000000UL - #define REMOTE_NDIS_MEDIA_STATE_DISCONNECTED 0x00000001UL - //@} - - /** \name RNDIS Media Types */ - //@{ - #define REMOTE_NDIS_MEDIUM_802_3 0x00000000UL - //@} - - /** \name RNDIS Connection Types */ - //@{ - #define REMOTE_NDIS_DF_CONNECTIONLESS 0x00000001UL - #define REMOTE_NDIS_DF_CONNECTION_ORIENTED 0x00000002UL - //@} - - /** \name RNDIS Packet Types */ - //@{ - #define REMOTE_NDIS_PACKET_DIRECTED 0x00000001UL - #define REMOTE_NDIS_PACKET_MULTICAST 0x00000002UL - #define REMOTE_NDIS_PACKET_ALL_MULTICAST 0x00000004UL - #define REMOTE_NDIS_PACKET_BROADCAST 0x00000008UL - #define REMOTE_NDIS_PACKET_SOURCE_ROUTING 0x00000010UL - #define REMOTE_NDIS_PACKET_PROMISCUOUS 0x00000020UL - #define REMOTE_NDIS_PACKET_SMT 0x00000040UL - #define REMOTE_NDIS_PACKET_ALL_LOCAL 0x00000080UL - #define REMOTE_NDIS_PACKET_GROUP 0x00001000UL - #define REMOTE_NDIS_PACKET_ALL_FUNCTIONAL 0x00002000UL - #define REMOTE_NDIS_PACKET_FUNCTIONAL 0x00004000UL - #define REMOTE_NDIS_PACKET_MAC_FRAME 0x00008000UL - //@} - - /** \name RNDIS OID Values */ - //@{ - #define OID_GEN_SUPPORTED_LIST 0x00010101UL - #define OID_GEN_HARDWARE_STATUS 0x00010102UL - #define OID_GEN_MEDIA_SUPPORTED 0x00010103UL - #define OID_GEN_MEDIA_IN_USE 0x00010104UL - #define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106UL - #define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111UL - #define OID_GEN_LINK_SPEED 0x00010107UL - #define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010AUL - #define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010BUL - #define OID_GEN_VENDOR_ID 0x0001010CUL - #define OID_GEN_VENDOR_DESCRIPTION 0x0001010DUL - #define OID_GEN_CURRENT_PACKET_FILTER 0x0001010EUL - #define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111UL - #define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114UL - #define OID_GEN_PHYSICAL_MEDIUM 0x00010202UL - #define OID_GEN_XMIT_OK 0x00020101UL - #define OID_GEN_RCV_OK 0x00020102UL - #define OID_GEN_XMIT_ERROR 0x00020103UL - #define OID_GEN_RCV_ERROR 0x00020104UL - #define OID_GEN_RCV_NO_BUFFER 0x00020105UL - #define OID_802_3_PERMANENT_ADDRESS 0x01010101UL - #define OID_802_3_CURRENT_ADDRESS 0x01010102UL - #define OID_802_3_MULTICAST_LIST 0x01010103UL - #define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104UL - #define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101UL - #define OID_802_3_XMIT_ONE_COLLISION 0x01020102UL - #define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103UL - //@} - - /** Maximum size in bytes of an Ethernet frame according to the Ethernet standard. */ - #define ETHERNET_FRAME_SIZE_MAX 1500 - - /* Enums: */ - /** Enum for the RNDIS class specific control requests that can be issued by the USB bus host. */ - enum RNDIS_ClassRequests_t - { - RNDIS_REQ_SendEncapsulatedCommand = 0x00, /**< RNDIS request to issue a host-to-device NDIS command. */ - RNDIS_REQ_GetEncapsulatedResponse = 0x01, /**< RNDIS request to issue a device-to-host NDIS response. */ - }; - - /** Enum for the possible NDIS adapter states. */ - enum RNDIS_States_t - { - RNDIS_Uninitialized = 0, /**< Adapter currently uninitialized. */ - RNDIS_Initialized = 1, /**< Adapter currently initialized but not ready for data transfers. */ - RNDIS_Data_Initialized = 2, /**< Adapter currently initialized and ready for data transfers. */ - }; - - /** Enum for the RNDIS class specific notification requests that can be issued by a RNDIS device to a host. */ - enum RNDIS_ClassNotifications_t - { - RNDIS_NOTIF_ResponseAvailable = 0x01, /**< Notification request value for a RNDIS Response Available notification. */ - }; - - /** Enum for the NDIS hardware states. */ - enum NDIS_Hardware_Status_t - { - NDIS_HardwareStatus_Ready, /**< Hardware Ready to accept commands from the host. */ - NDIS_HardwareStatus_Initializing, /**< Hardware busy initializing. */ - NDIS_HardwareStatus_Reset, /**< Hardware reset. */ - NDIS_HardwareStatus_Closing, /**< Hardware currently closing. */ - NDIS_HardwareStatus_NotReady /**< Hardware not ready to accept commands from the host. */ - }; - - /* Type Defines: */ - /** \brief MAC Address Structure. - * - * Type define for a physical MAC address of a device on a network. - */ - typedef struct - { - uint8_t Octets[6]; /**< Individual bytes of a MAC address */ - } ATTR_PACKED MAC_Address_t; - - /** \brief RNDIS Common Message Header Structure. - * - * Type define for a RNDIS message header, sent before RNDIS messages. - * - * \note Regardless of CPU architecture, these values should be stored as little endian. - */ - typedef struct - { - uint32_t MessageType; /**< RNDIS message type, a \c REMOTE_NDIS_*_MSG constant */ - uint32_t MessageLength; /**< Total length of the RNDIS message, in bytes */ - } ATTR_PACKED RNDIS_Message_Header_t; - - /** \brief RNDIS Message Structure. - * - * Type define for a RNDIS packet message, used to encapsulate Ethernet packets sent to and from the adapter. - * - * \note Regardless of CPU architecture, these values should be stored as little endian. - */ - typedef struct - { - uint32_t MessageType; - uint32_t MessageLength; - uint32_t DataOffset; - uint32_t DataLength; - uint32_t OOBDataOffset; - uint32_t OOBDataLength; - uint32_t NumOOBDataElements; - uint32_t PerPacketInfoOffset; - uint32_t PerPacketInfoLength; - uint32_t VcHandle; - uint32_t Reserved; - } ATTR_PACKED RNDIS_Packet_Message_t; - - /** \brief RNDIS Initialization Message Structure. - * - * Type define for a RNDIS Initialize command message. - * - * \note Regardless of CPU architecture, these values should be stored as little endian. - */ - typedef struct - { - uint32_t MessageType; - uint32_t MessageLength; - uint32_t RequestId; - - uint32_t MajorVersion; - uint32_t MinorVersion; - uint32_t MaxTransferSize; - } ATTR_PACKED RNDIS_Initialize_Message_t; - - /** \brief RNDIS Initialize Complete Message Structure. - * - * Type define for a RNDIS Initialize Complete response message. - * - * \note Regardless of CPU architecture, these values should be stored as little endian. - */ - typedef struct - { - uint32_t MessageType; - uint32_t MessageLength; - uint32_t RequestId; - uint32_t Status; - - uint32_t MajorVersion; - uint32_t MinorVersion; - uint32_t DeviceFlags; - uint32_t Medium; - uint32_t MaxPacketsPerTransfer; - uint32_t MaxTransferSize; - uint32_t PacketAlignmentFactor; - uint32_t AFListOffset; - uint32_t AFListSize; - } ATTR_PACKED RNDIS_Initialize_Complete_t; - - /** \brief RNDIS Keep Alive Message Structure. - * - * Type define for a RNDIS Keep Alive command message. - * - * \note Regardless of CPU architecture, these values should be stored as little endian. - */ - typedef struct - { - uint32_t MessageType; - uint32_t MessageLength; - uint32_t RequestId; - } ATTR_PACKED RNDIS_KeepAlive_Message_t; - - /** \brief RNDIS Keep Alive Complete Message Structure. - * - * Type define for a RNDIS Keep Alive Complete response message. - * - * \note Regardless of CPU architecture, these values should be stored as little endian. - */ - typedef struct - { - uint32_t MessageType; - uint32_t MessageLength; - uint32_t RequestId; - uint32_t Status; - } ATTR_PACKED RNDIS_KeepAlive_Complete_t; - - /** \brief RNDIS Reset Complete Message Structure. - * - * Type define for a RNDIS Reset Complete response message. - * - * \note Regardless of CPU architecture, these values should be stored as little endian. - */ - typedef struct - { - uint32_t MessageType; - uint32_t MessageLength; - uint32_t Status; - - uint32_t AddressingReset; - } ATTR_PACKED RNDIS_Reset_Complete_t; - - /** \brief RNDIS OID Property Set Message Structure. - * - * Type define for a RNDIS OID Property Set command message. - * - * \note Regardless of CPU architecture, these values should be stored as little endian. - */ - typedef struct - { - uint32_t MessageType; - uint32_t MessageLength; - uint32_t RequestId; - - uint32_t Oid; - uint32_t InformationBufferLength; - uint32_t InformationBufferOffset; - uint32_t DeviceVcHandle; - } ATTR_PACKED RNDIS_Set_Message_t; - - /** \brief RNDIS OID Property Set Complete Message Structure. - * - * Type define for a RNDIS OID Property Set Complete response message. - * - * \note Regardless of CPU architecture, these values should be stored as little endian. - */ - typedef struct - { - uint32_t MessageType; - uint32_t MessageLength; - uint32_t RequestId; - uint32_t Status; - } ATTR_PACKED RNDIS_Set_Complete_t; - - /** \brief RNDIS OID Property Query Message Structure. - * - * Type define for a RNDIS OID Property Query command message. - * - * \note Regardless of CPU architecture, these values should be stored as little endian. - */ - typedef struct - { - uint32_t MessageType; - uint32_t MessageLength; - uint32_t RequestId; - - uint32_t Oid; - uint32_t InformationBufferLength; - uint32_t InformationBufferOffset; - uint32_t DeviceVcHandle; - } ATTR_PACKED RNDIS_Query_Message_t; - - /** \brief RNDIS OID Property Query Complete Message Structure. - * - * Type define for a RNDIS OID Property Query Complete response message. - * - * \note Regardless of CPU architecture, these values should be stored as little endian. - */ - typedef struct - { - uint32_t MessageType; - uint32_t MessageLength; - uint32_t RequestId; - uint32_t Status; - - uint32_t InformationBufferLength; - uint32_t InformationBufferOffset; - } ATTR_PACKED RNDIS_Query_Complete_t; - - /* Disable C linkage for C++ Compilers: */ - #if defined(__cplusplus) - } - #endif - -#endif - -/** @} */ - |