#ifndef _ACM_H #define _ACM_H /** @file * * USB RNDIS Ethernet driver * */ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include #include /** 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 */