70 lines
1.2 KiB
C
70 lines
1.2 KiB
C
#ifndef _ACM_H
|
|
#define _ACM_H
|
|
|
|
/** @file
|
|
*
|
|
* USB RNDIS Ethernet driver
|
|
*
|
|
*/
|
|
|
|
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
|
|
|
#include <ipxe/usb.h>
|
|
#include <ipxe/cdc.h>
|
|
|
|
/** CDC-ACM subclass */
|
|
#define USB_SUBCLASS_CDC_ACM 0x02
|
|
|
|
/** CDC-ACM RNDIS device protocol */
|
|
#define USB_PROTOCOL_ACM_RNDIS 0xff
|
|
|
|
/** Class code for wireless devices */
|
|
#define USB_CLASS_WIRELESS 0xe0
|
|
|
|
/** Radio frequency device subclass */
|
|
#define USB_SUBCLASS_WIRELESS_RADIO 0x01
|
|
|
|
/** Radio frequency RNDIS device protocol */
|
|
#define USB_PROTOCOL_RADIO_RNDIS 0x03
|
|
|
|
/** A USB RNDIS network device */
|
|
struct acm_device {
|
|
/** USB device */
|
|
struct usb_device *usb;
|
|
/** USB bus */
|
|
struct usb_bus *bus;
|
|
/** RNDIS device */
|
|
struct rndis_device *rndis;
|
|
/** USB network device */
|
|
struct usbnet_device usbnet;
|
|
|
|
/** An encapsulated response is available */
|
|
int responded;
|
|
};
|
|
|
|
/** Interrupt maximum fill level
|
|
*
|
|
* This is a policy decision.
|
|
*/
|
|
#define ACM_INTR_MAX_FILL 2
|
|
|
|
/** Bulk IN maximum fill level
|
|
*
|
|
* This is a policy decision.
|
|
*/
|
|
#define ACM_IN_MAX_FILL 8
|
|
|
|
/** Bulk IN buffer size
|
|
*
|
|
* This is a policy decision.
|
|
*/
|
|
#define ACM_IN_MTU 2048
|
|
|
|
/** Encapsulated response buffer size
|
|
*
|
|
* This is a policy decision.
|
|
*/
|
|
#define ACM_RESPONSE_MTU 128
|
|
|
|
#endif /* _ACM_H */
|