OID_802_3_XMIT_MORE_COLLISIONS,\r
};\r
\r
-void RNDIS_Device_ProcessControlPacket(USB_ClassInfo_RNDIS_t* RNDISInterfaceInfo)\r
+void RNDIS_Device_ProcessControlPacket(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo)\r
{\r
if (!(Endpoint_IsSETUPReceived()))\r
return;\r
\r
- if (USB_ControlRequest.wIndex != RNDISInterfaceInfo->ControlInterfaceNumber)\r
+ if (USB_ControlRequest.wIndex != RNDISInterfaceInfo->Config.ControlInterfaceNumber)\r
return;\r
\r
switch (USB_ControlRequest.bRequest)\r
{\r
Endpoint_ClearSETUP();\r
\r
- Endpoint_Read_Control_Stream_LE(RNDISInterfaceInfo->RNDISMessageBuffer, USB_ControlRequest.wLength);\r
+ Endpoint_Read_Control_Stream_LE(RNDISInterfaceInfo->State.RNDISMessageBuffer, USB_ControlRequest.wLength);\r
Endpoint_ClearIN();\r
\r
RNDIS_Device_ProcessRNDISControlMessage(RNDISInterfaceInfo);\r
{\r
Endpoint_ClearSETUP();\r
\r
- RNDIS_Message_Header_t* MessageHeader = (RNDIS_Message_Header_t*)&RNDISInterfaceInfo->RNDISMessageBuffer;\r
+ RNDIS_Message_Header_t* MessageHeader = (RNDIS_Message_Header_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer;\r
\r
if (!(MessageHeader->MessageLength))\r
{\r
- RNDISInterfaceInfo->RNDISMessageBuffer[0] = 0;\r
+ RNDISInterfaceInfo->State.RNDISMessageBuffer[0] = 0;\r
MessageHeader->MessageLength = 1;\r
}\r
\r
- Endpoint_Write_Control_Stream_LE(RNDISInterfaceInfo->RNDISMessageBuffer, MessageHeader->MessageLength); \r
+ Endpoint_Write_Control_Stream_LE(RNDISInterfaceInfo->State.RNDISMessageBuffer, MessageHeader->MessageLength); \r
Endpoint_ClearOUT();\r
\r
MessageHeader->MessageLength = 0;\r
}\r
}\r
\r
-bool RNDIS_Device_ConfigureEndpoints(USB_ClassInfo_RNDIS_t* RNDISInterfaceInfo)\r
+bool RNDIS_Device_ConfigureEndpoints(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo)\r
{\r
- if (!(Endpoint_ConfigureEndpoint(RNDISInterfaceInfo->DataINEndpointNumber, EP_TYPE_BULK,\r
- ENDPOINT_DIR_IN, RNDISInterfaceInfo->DataINEndpointSize,\r
+ if (!(Endpoint_ConfigureEndpoint(RNDISInterfaceInfo->Config.DataINEndpointNumber, EP_TYPE_BULK,\r
+ ENDPOINT_DIR_IN, RNDISInterfaceInfo->Config.DataINEndpointSize,\r
ENDPOINT_BANK_SINGLE)))\r
{\r
return false;\r
}\r
\r
- if (!(Endpoint_ConfigureEndpoint(RNDISInterfaceInfo->DataOUTEndpointNumber, EP_TYPE_BULK,\r
- ENDPOINT_DIR_OUT, RNDISInterfaceInfo->DataOUTEndpointSize,\r
+ if (!(Endpoint_ConfigureEndpoint(RNDISInterfaceInfo->Config.DataOUTEndpointNumber, EP_TYPE_BULK,\r
+ ENDPOINT_DIR_OUT, RNDISInterfaceInfo->Config.DataOUTEndpointSize,\r
ENDPOINT_BANK_SINGLE)))\r
{\r
return false;\r
}\r
\r
- if (!(Endpoint_ConfigureEndpoint(RNDISInterfaceInfo->NotificationEndpointNumber, EP_TYPE_INTERRUPT,\r
- ENDPOINT_DIR_IN, RNDISInterfaceInfo->NotificationEndpointSize,\r
+ if (!(Endpoint_ConfigureEndpoint(RNDISInterfaceInfo->Config.NotificationEndpointNumber, EP_TYPE_INTERRUPT,\r
+ ENDPOINT_DIR_IN, RNDISInterfaceInfo->Config.NotificationEndpointSize,\r
ENDPOINT_BANK_SINGLE)))\r
{\r
return false;\r
return true;\r
}\r
\r
-void RNDIS_Device_USBTask(USB_ClassInfo_RNDIS_t* RNDISInterfaceInfo)\r
+void RNDIS_Device_USBTask(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo)\r
{\r
if (!(USB_IsConnected))\r
return;\r
\r
- RNDIS_Message_Header_t* MessageHeader = (RNDIS_Message_Header_t*)&RNDISInterfaceInfo->RNDISMessageBuffer;\r
+ RNDIS_Message_Header_t* MessageHeader = (RNDIS_Message_Header_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer;\r
\r
- Endpoint_SelectEndpoint(RNDISInterfaceInfo->NotificationEndpointNumber);\r
+ Endpoint_SelectEndpoint(RNDISInterfaceInfo->Config.NotificationEndpointNumber);\r
\r
- if (Endpoint_IsINReady() && RNDISInterfaceInfo->ResponseReady)\r
+ if (Endpoint_IsINReady() && RNDISInterfaceInfo->State.ResponseReady)\r
{\r
USB_Request_Header_t Notification = (USB_Request_Header_t)\r
{\r
\r
Endpoint_ClearIN();\r
\r
- RNDISInterfaceInfo->ResponseReady = false;\r
+ RNDISInterfaceInfo->State.ResponseReady = false;\r
}\r
\r
- if ((RNDISInterfaceInfo->CurrRNDISState == RNDIS_Data_Initialized) && !(MessageHeader->MessageLength))\r
+ if ((RNDISInterfaceInfo->State.CurrRNDISState == RNDIS_Data_Initialized) && !(MessageHeader->MessageLength))\r
{\r
RNDIS_PACKET_MSG_t RNDISPacketHeader;\r
\r
- Endpoint_SelectEndpoint(RNDISInterfaceInfo->DataOUTEndpointNumber);\r
+ Endpoint_SelectEndpoint(RNDISInterfaceInfo->Config.DataOUTEndpointNumber);\r
\r
- if (Endpoint_IsOUTReceived() && !(RNDISInterfaceInfo->FrameIN.FrameInBuffer))\r
+ if (Endpoint_IsOUTReceived() && !(RNDISInterfaceInfo->State.FrameIN.FrameInBuffer))\r
{\r
Endpoint_Read_Stream_LE(&RNDISPacketHeader, sizeof(RNDIS_PACKET_MSG_t), NO_STREAM_CALLBACK);\r
\r
return;\r
}\r
\r
- Endpoint_Read_Stream_LE(RNDISInterfaceInfo->FrameIN.FrameData, RNDISPacketHeader.DataLength, NO_STREAM_CALLBACK);\r
+ Endpoint_Read_Stream_LE(RNDISInterfaceInfo->State.FrameIN.FrameData, RNDISPacketHeader.DataLength, NO_STREAM_CALLBACK);\r
\r
Endpoint_ClearOUT();\r
\r
- RNDISInterfaceInfo->FrameIN.FrameLength = RNDISPacketHeader.DataLength;\r
+ RNDISInterfaceInfo->State.FrameIN.FrameLength = RNDISPacketHeader.DataLength;\r
\r
- RNDISInterfaceInfo->FrameIN.FrameInBuffer = true;\r
+ RNDISInterfaceInfo->State.FrameIN.FrameInBuffer = true;\r
}\r
\r
- Endpoint_SelectEndpoint(RNDISInterfaceInfo->DataINEndpointNumber);\r
+ Endpoint_SelectEndpoint(RNDISInterfaceInfo->Config.DataINEndpointNumber);\r
\r
- if (Endpoint_IsINReady() && RNDISInterfaceInfo->FrameOUT.FrameInBuffer)\r
+ if (Endpoint_IsINReady() && RNDISInterfaceInfo->State.FrameOUT.FrameInBuffer)\r
{\r
memset(&RNDISPacketHeader, 0, sizeof(RNDIS_PACKET_MSG_t));\r
\r
RNDISPacketHeader.MessageType = REMOTE_NDIS_PACKET_MSG;\r
- RNDISPacketHeader.MessageLength = (sizeof(RNDIS_PACKET_MSG_t) + RNDISInterfaceInfo->FrameOUT.FrameLength);\r
+ RNDISPacketHeader.MessageLength = (sizeof(RNDIS_PACKET_MSG_t) + RNDISInterfaceInfo->State.FrameOUT.FrameLength);\r
RNDISPacketHeader.DataOffset = (sizeof(RNDIS_PACKET_MSG_t) - sizeof(RNDIS_Message_Header_t));\r
- RNDISPacketHeader.DataLength = RNDISInterfaceInfo->FrameOUT.FrameLength;\r
+ RNDISPacketHeader.DataLength = RNDISInterfaceInfo->State.FrameOUT.FrameLength;\r
\r
Endpoint_Write_Stream_LE(&RNDISPacketHeader, sizeof(RNDIS_PACKET_MSG_t), NO_STREAM_CALLBACK);\r
- Endpoint_Write_Stream_LE(RNDISInterfaceInfo->FrameOUT.FrameData, RNDISPacketHeader.DataLength, NO_STREAM_CALLBACK);\r
+ Endpoint_Write_Stream_LE(RNDISInterfaceInfo->State.FrameOUT.FrameData, RNDISPacketHeader.DataLength, NO_STREAM_CALLBACK);\r
Endpoint_ClearIN();\r
\r
- RNDISInterfaceInfo->FrameOUT.FrameInBuffer = false;\r
+ RNDISInterfaceInfo->State.FrameOUT.FrameInBuffer = false;\r
}\r
}\r
} \r
\r
-void RNDIS_Device_ProcessRNDISControlMessage(USB_ClassInfo_RNDIS_t* RNDISInterfaceInfo)\r
+void RNDIS_Device_ProcessRNDISControlMessage(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo)\r
{\r
/* Note: Only a single buffer is used for both the received message and its response to save SRAM. Because of\r
this, response bytes should be filled in order so that they do not clobber unread data in the buffer. */\r
\r
- RNDIS_Message_Header_t* MessageHeader = (RNDIS_Message_Header_t*)&RNDISInterfaceInfo->RNDISMessageBuffer;\r
+ RNDIS_Message_Header_t* MessageHeader = (RNDIS_Message_Header_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer;\r
\r
switch (MessageHeader->MessageType)\r
{\r
case REMOTE_NDIS_INITIALIZE_MSG:\r
- RNDISInterfaceInfo->ResponseReady = true;\r
+ RNDISInterfaceInfo->State.ResponseReady = true;\r
\r
- RNDIS_INITIALIZE_MSG_t* INITIALIZE_Message = (RNDIS_INITIALIZE_MSG_t*)&RNDISInterfaceInfo->RNDISMessageBuffer;\r
- RNDIS_INITIALIZE_CMPLT_t* INITIALIZE_Response = (RNDIS_INITIALIZE_CMPLT_t*)&RNDISInterfaceInfo->RNDISMessageBuffer;\r
+ RNDIS_INITIALIZE_MSG_t* INITIALIZE_Message = (RNDIS_INITIALIZE_MSG_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer;\r
+ RNDIS_INITIALIZE_CMPLT_t* INITIALIZE_Response = (RNDIS_INITIALIZE_CMPLT_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer;\r
\r
INITIALIZE_Response->MessageType = REMOTE_NDIS_INITIALIZE_CMPLT;\r
INITIALIZE_Response->MessageLength = sizeof(RNDIS_INITIALIZE_CMPLT_t);\r
INITIALIZE_Response->AFListOffset = 0;\r
INITIALIZE_Response->AFListSize = 0;\r
\r
- RNDISInterfaceInfo->CurrRNDISState = RNDIS_Initialized;\r
+ RNDISInterfaceInfo->State.CurrRNDISState = RNDIS_Initialized;\r
\r
break;\r
case REMOTE_NDIS_HALT_MSG:\r
- RNDISInterfaceInfo->ResponseReady = false;\r
+ RNDISInterfaceInfo->State.ResponseReady = false;\r
MessageHeader->MessageLength = 0;\r
\r
- RNDISInterfaceInfo->CurrRNDISState = RNDIS_Uninitialized;\r
+ RNDISInterfaceInfo->State.CurrRNDISState = RNDIS_Uninitialized;\r
\r
break;\r
case REMOTE_NDIS_QUERY_MSG:\r
- RNDISInterfaceInfo->ResponseReady = true;\r
+ RNDISInterfaceInfo->State.ResponseReady = true;\r
\r
- RNDIS_QUERY_MSG_t* QUERY_Message = (RNDIS_QUERY_MSG_t*)&RNDISInterfaceInfo->RNDISMessageBuffer;\r
- RNDIS_QUERY_CMPLT_t* QUERY_Response = (RNDIS_QUERY_CMPLT_t*)&RNDISInterfaceInfo->RNDISMessageBuffer;\r
+ RNDIS_QUERY_MSG_t* QUERY_Message = (RNDIS_QUERY_MSG_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer;\r
+ RNDIS_QUERY_CMPLT_t* QUERY_Response = (RNDIS_QUERY_CMPLT_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer;\r
uint32_t Query_Oid = QUERY_Message->Oid;\r
\r
- void* QueryData = &RNDISInterfaceInfo->RNDISMessageBuffer[sizeof(RNDIS_Message_Header_t) +\r
+ void* QueryData = &RNDISInterfaceInfo->State.RNDISMessageBuffer[sizeof(RNDIS_Message_Header_t) +\r
QUERY_Message->InformationBufferOffset];\r
- void* ResponseData = &RNDISInterfaceInfo->RNDISMessageBuffer[sizeof(RNDIS_QUERY_CMPLT_t)]; \r
+ void* ResponseData = &RNDISInterfaceInfo->State.RNDISMessageBuffer[sizeof(RNDIS_QUERY_CMPLT_t)]; \r
uint16_t ResponseSize;\r
\r
QUERY_Response->MessageType = REMOTE_NDIS_QUERY_CMPLT;\r
\r
break;\r
case REMOTE_NDIS_SET_MSG:\r
- RNDISInterfaceInfo->ResponseReady = true;\r
+ RNDISInterfaceInfo->State.ResponseReady = true;\r
\r
- RNDIS_SET_MSG_t* SET_Message = (RNDIS_SET_MSG_t*)&RNDISInterfaceInfo->RNDISMessageBuffer;\r
- RNDIS_SET_CMPLT_t* SET_Response = (RNDIS_SET_CMPLT_t*)&RNDISInterfaceInfo->RNDISMessageBuffer;\r
+ RNDIS_SET_MSG_t* SET_Message = (RNDIS_SET_MSG_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer;\r
+ RNDIS_SET_CMPLT_t* SET_Response = (RNDIS_SET_CMPLT_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer;\r
uint32_t SET_Oid = SET_Message->Oid;\r
\r
SET_Response->MessageType = REMOTE_NDIS_SET_CMPLT;\r
SET_Response->MessageLength = sizeof(RNDIS_SET_CMPLT_t);\r
SET_Response->RequestId = SET_Message->RequestId;\r
\r
- void* SetData = &RNDISInterfaceInfo->RNDISMessageBuffer[sizeof(RNDIS_Message_Header_t) +\r
+ void* SetData = &RNDISInterfaceInfo->State.RNDISMessageBuffer[sizeof(RNDIS_Message_Header_t) +\r
SET_Message->InformationBufferOffset];\r
\r
if (RNDIS_Device_ProcessNDISSet(RNDISInterfaceInfo, SET_Oid, SetData, SET_Message->InformationBufferLength))\r
\r
break;\r
case REMOTE_NDIS_RESET_MSG:\r
- RNDISInterfaceInfo->ResponseReady = true;\r
+ RNDISInterfaceInfo->State.ResponseReady = true;\r
\r
- RNDIS_RESET_CMPLT_t* RESET_Response = (RNDIS_RESET_CMPLT_t*)&RNDISInterfaceInfo->RNDISMessageBuffer;\r
+ RNDIS_RESET_CMPLT_t* RESET_Response = (RNDIS_RESET_CMPLT_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer;\r
\r
RESET_Response->MessageType = REMOTE_NDIS_RESET_CMPLT;\r
RESET_Response->MessageLength = sizeof(RNDIS_RESET_CMPLT_t);\r
\r
break;\r
case REMOTE_NDIS_KEEPALIVE_MSG:\r
- RNDISInterfaceInfo->ResponseReady = true;\r
+ RNDISInterfaceInfo->State.ResponseReady = true;\r
\r
- RNDIS_KEEPALIVE_MSG_t* KEEPALIVE_Message = (RNDIS_KEEPALIVE_MSG_t*)&RNDISInterfaceInfo->RNDISMessageBuffer;\r
- RNDIS_KEEPALIVE_CMPLT_t* KEEPALIVE_Response = (RNDIS_KEEPALIVE_CMPLT_t*)&RNDISInterfaceInfo->RNDISMessageBuffer;\r
+ RNDIS_KEEPALIVE_MSG_t* KEEPALIVE_Message = (RNDIS_KEEPALIVE_MSG_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer;\r
+ RNDIS_KEEPALIVE_CMPLT_t* KEEPALIVE_Response = (RNDIS_KEEPALIVE_CMPLT_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer;\r
\r
KEEPALIVE_Response->MessageType = REMOTE_NDIS_KEEPALIVE_CMPLT;\r
KEEPALIVE_Response->MessageLength = sizeof(RNDIS_KEEPALIVE_CMPLT_t);\r
}\r
}\r
\r
-static bool RNDIS_Device_ProcessNDISQuery(USB_ClassInfo_RNDIS_t* RNDISInterfaceInfo,\r
+static bool RNDIS_Device_ProcessNDISQuery(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo,\r
uint32_t OId, void* QueryData, uint16_t QuerySize,\r
void* ResponseData, uint16_t* ResponseSize)\r
{\r
\r
return true;\r
case OID_GEN_VENDOR_DESCRIPTION:\r
- *ResponseSize = (strlen(RNDISInterfaceInfo->AdapterVendorDescription) + 1);\r
+ *ResponseSize = (strlen(RNDISInterfaceInfo->Config.AdapterVendorDescription) + 1);\r
\r
- memcpy(ResponseData, RNDISInterfaceInfo->AdapterVendorDescription, *ResponseSize);\r
+ memcpy(ResponseData, RNDISInterfaceInfo->Config.AdapterVendorDescription, *ResponseSize);\r
\r
return true;\r
case OID_GEN_MEDIA_CONNECT_STATUS:\r
case OID_802_3_CURRENT_ADDRESS:\r
*ResponseSize = sizeof(MAC_Address_t);\r
\r
- memcpy(ResponseData, &RNDISInterfaceInfo->AdapterMACAddress, sizeof(MAC_Address_t));\r
+ memcpy(ResponseData, &RNDISInterfaceInfo->Config.AdapterMACAddress, sizeof(MAC_Address_t));\r
\r
return true;\r
case OID_802_3_MAXIMUM_LIST_SIZE:\r
case OID_GEN_CURRENT_PACKET_FILTER:\r
*ResponseSize = sizeof(uint32_t);\r
\r
- *((uint32_t*)ResponseData) = RNDISInterfaceInfo->CurrPacketFilter;\r
+ *((uint32_t*)ResponseData) = RNDISInterfaceInfo->State.CurrPacketFilter;\r
\r
return true; \r
case OID_GEN_XMIT_OK:\r
}\r
}\r
\r
-static bool RNDIS_Device_ProcessNDISSet(USB_ClassInfo_RNDIS_t* RNDISInterfaceInfo, uint32_t OId, void* SetData, uint16_t SetSize)\r
+static bool RNDIS_Device_ProcessNDISSet(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo, uint32_t OId, void* SetData,\r
+ uint16_t SetSize)\r
{\r
switch (OId)\r
{\r
case OID_GEN_CURRENT_PACKET_FILTER:\r
- RNDISInterfaceInfo->CurrPacketFilter = *((uint32_t*)SetData);\r
- RNDISInterfaceInfo->CurrRNDISState = ((RNDISInterfaceInfo->CurrPacketFilter) ?\r
+ RNDISInterfaceInfo->State.CurrPacketFilter = *((uint32_t*)SetData);\r
+ RNDISInterfaceInfo->State.CurrRNDISState = ((RNDISInterfaceInfo->State.CurrPacketFilter) ?\r
RNDIS_Data_Initialized : RNDIS_Data_Initialized);\r
\r
return true;\r