aboutsummaryrefslogtreecommitdiffstats
path: root/Demos/Device/RNDISEthernet/RNDISEthernet.c
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-04-22 13:03:11 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-04-22 13:03:11 +0000
commitd860e9e842c05e759214f5170f78783decae9956 (patch)
tree688f408e32d6f4d205fce4bd33e953199c9ea7dc /Demos/Device/RNDISEthernet/RNDISEthernet.c
parente5e7eaee7af719cee00a8c2cb6fb4649dde0aa05 (diff)
downloadlufa-d860e9e842c05e759214f5170f78783decae9956.tar.gz
lufa-d860e9e842c05e759214f5170f78783decae9956.tar.bz2
lufa-d860e9e842c05e759214f5170f78783decae9956.zip
USB_HostRequest renamed to USB_ControlRequest, entire control request header is now read into USB_ControlRequest in Device mode rather than having the library pass only partially read header data to the application.
The USB_UnhandledControlPacket event has had its parameters removed, in favour of accessing the new USB_ControlRequest structure. The Endpoint control stream functions now correctly send a ZLP to the host when less data than requested is sent.
Diffstat (limited to 'Demos/Device/RNDISEthernet/RNDISEthernet.c')
-rw-r--r--Demos/Device/RNDISEthernet/RNDISEthernet.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/Demos/Device/RNDISEthernet/RNDISEthernet.c b/Demos/Device/RNDISEthernet/RNDISEthernet.c
index ec8eb7b87..7b81ad85f 100644
--- a/Demos/Device/RNDISEthernet/RNDISEthernet.c
+++ b/Demos/Device/RNDISEthernet/RNDISEthernet.c
@@ -150,10 +150,10 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
uint16_t wLength = Endpoint_Read_Word_LE();
/* Process RNDIS class commands */
- switch (bRequest)
+ switch (USB_ControlRequest.bRequest)
{
case REQ_SendEncapsulatedCommand:
- if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
+ if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
{
/* Clear the SETUP packet, ready for data transfer */
Endpoint_ClearSETUP();
@@ -170,7 +170,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
break;
case REQ_GetEncapsulatedResponse:
- if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
+ if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
{
/* Check if a response to the last message is ready */
if (!(MessageHeader->MessageLength))
@@ -180,15 +180,11 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
MessageHeader->MessageLength = 1;
}
- /* Check if less than the requested number of bytes to transfer */
- if (MessageHeader->MessageLength < wLength)
- wLength = MessageHeader->MessageLength;
-
/* Clear the SETUP packet, ready for data transfer */
Endpoint_ClearSETUP();
/* Write the message response data to the endpoint */
- Endpoint_Write_Control_Stream_LE(RNDISMessageBuffer, wLength);
+ Endpoint_Write_Control_Stream_LE(RNDISMessageBuffer, MessageHeader->MessageLength);
/* Finalize the stream transfer to send the last packet or clear the host abort */
Endpoint_ClearOUT();