00001
00038 #ifndef USB_UDI_MSC_BULK_H_INCLUDED
00039 #define USB_UDI_MSC_BULK_H_INCLUDED
00040
00064 struct block_device;
00065
00071 #define MSC_MAX_SERIAL_LEN 20
00072
00073 extern struct udm_interface *udi_msc_create_iface(struct block_device *bdev);
00074
00075 status_t udi_msc_enable(struct udc *udc, struct udm_interface *iface,
00076 uint16_t setting);
00077 void udi_msc_disable(struct udc *udc, struct udm_interface *iface);
00078 status_t udi_msc_setup(struct udc *udc, struct udm_interface *iface,
00079 struct usb_setup_req *req);
00080 status_t udi_msc_get_iface_descriptor(struct udm_interface *iface,
00081 struct usb_request *req, enum usb_device_speed speed,
00082 uint16_t len);
00083 void udi_msc_free_descriptor(struct udm_interface *iface,
00084 struct usb_request *req);
00085
00086 void udi_msc_set_ready(struct udm_interface *iface);
00087 void udi_msc_set_busy(struct udm_interface *iface, uint16_t asc,
00088 void (*queue_empty)(void *data), void *data);
00089
00091
00092 #endif