| LUFA Library 140302 |

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Functions
Mass Storage Class Device Mode Driver
Mass Storage Class Driver

## Data Structures
struct | USB_ClassInfo_MS_Device_t
| Mass Storage Class Device Mode Configuration and State Structure. More...

## Functions
bool | CALLBACK_MS_Device_SCSICommandReceived (USB_ClassInfo_MS_Device_t *const MSInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
bool | MS_Device_ConfigureEndpoints (USB_ClassInfo_MS_Device_t *const MSInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
void | MS_Device_ProcessControlRequest (USB_ClassInfo_MS_Device_t *const MSInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
void | MS_Device_USBTask (USB_ClassInfo_MS_Device_t *const MSInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)

## Detailed Description

# Module Source Dependencies

The following files must be built with any user project that uses this module:

- LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c (Makefile source module name: LUFA_SRC_USBCLASS)

# Module Description

Device Mode USB Class driver framework interface, for the Mass Storage USB Class driver.

## Function Documentation

bool CALLBACK_MS_Device_SCSICommandReceived | ( | USB_ClassInfo_MS_Device_t *const | MSInterfaceInfo | ) |

Mass Storage class driver callback for the user processing of a received SCSI command. This callback will fire each time the host sends a SCSI command which requires processing by the user application. Inside this callback the user is responsible for the processing of the received SCSI command from the host. The SCSI command is available in the CommandBlock structure inside the Mass Storage class state structure passed as a parameter to the callback function.

Parameters

  [in,out] | MSInterfaceInfo | Pointer to a structure containing a Mass Storage Class configuration and state.

Returns
  Boolean `true` if the SCSI command was successfully processed, `false` otherwise.

bool MS_Device_ConfigureEndpoints | ( | USB_ClassInfo_MS_Device_t *const | MSInterfaceInfo | ) |

Configures the endpoints of a given Mass Storage interface, ready for use. This should be linked to the library EVENT_USB_Device_ConfigurationChanged() event so that the endpoints are configured when the configuration containing the given Mass Storage interface is selected.

Parameters

  [in,out] | MSInterfaceInfo | Pointer to a structure containing a Mass Storage Class configuration and state.

Returns
  Boolean `true` if the endpoints were successfully configured, `false` otherwise.

void MS_Device_ProcessControlRequest | ( | USB_ClassInfo_MS_Device_t *const | MSInterfaceInfo | ) |

Processes incoming control requests from the host, that are directed to the given Mass Storage class interface. This should be linked to the library EVENT_USB_Device_ControlRequest() event.

Parameters

  [in,out] | MSInterfaceInfo | Pointer to a structure containing a Mass Storage Class configuration and state.

void MS_Device_USBTask | ( | USB_ClassInfo_MS_Device_t *const | MSInterfaceInfo | ) |

General management task for a given Mass Storage class interface, required for the correct operation of the interface. This should be called frequently in the main program loop, before the master USB management task USB_USBTask().

Parameters

  [in,out] | MSInterfaceInfo | Pointer to a structure containing a Mass Storage configuration and state.