![]() |
LPCOpen Platform
v1.03
LPCOpen Platform for NXP LPC Microcontrollers
|
Mass Storage class function driver initilization parameter data structure.
This data structure is used to pass initialization parameters to the Mass Storage class function driver's init function.
Definition at line 110 of file usbd_api.h.
#include "usbd_api.h"
Data Fields | |
| uint32_t | mem_base |
| uint32_t | mem_size |
| uint8_t * | InquiryStr |
| uint32_t | BlockCount |
| uint32_t | BlockSize |
| uint32_t | MemorySize |
| uint8_t * | intf_desc |
| void(* | MSC_Write )(uint32_t offset, uint8_t **src, uint32_t length) |
| void(* | MSC_Read )(uint32_t offset, uint8_t **dst, uint32_t length) |
| ErrorCode_t(* | MSC_Verify )(uint32_t offset, uint8_t dst[], uint32_t length) |
| void(* | MSC_GetWriteBuf )(uint32_t offset, uint8_t **buff_adr, uint32_t length) |
| ErrorCode_t(* | MSC_Ep0_Hdlr )(USBD_HANDLE_T hUsb, void *data, uint32_t event) |
| uint32_t BlockCount |
Number of blocks present in the mass storage device
Definition at line 117 of file usbd_api.h.
| uint32_t BlockSize |
Block size in number of bytes
Definition at line 118 of file usbd_api.h.
| uint8_t * InquiryStr |
Pointer to the 28 character string. This string is sent in response to the SCSI Inquiry command.
Pointer to the 28 character string. This string is sent in response to the SCSI Inquiry command.
Definition at line 116 of file usbd_api.h.
| uint8_t * intf_desc |
Pointer to the interface descriptor within the descriptor array (high_speed_desc) passed to Init() through USB_CORE_DESCS_T structure. The stack assumes both HS and FS use same BULK endpoints.
Pointer to the interface descriptor within the descriptor array (high_speed_desc) passed to Init() through USB_CORE_DESCS_T structure. The stack assumes both HS and FS use same BULK endpoints.
Definition at line 126 of file usbd_api.h.
| uint32_t mem_base |
Base memory location from where the stack can allocate data and buffers.
Base memory location from where the stack can allocate data and buffers.
Definition at line 113 of file usbd_api.h.
| uint32_t mem_size |
The size of memory buffer which stack can use.
The size of memory buffer which stack can use.
Definition at line 114 of file usbd_api.h.
| uint32_t MemorySize |
Memory size in number of bytes
Definition at line 119 of file usbd_api.h.
| ErrorCode_t(* MSC_Ep0_Hdlr)(USBD_HANDLE_T hUsb, void *data, uint32_t event) |
Optional user overridable function to replace the default MSC class handler.
The application software could override the default EP0 class handler with their own by providing the handler function address as this data member of the parameter structure. Application which like the default handler should set this data member to zero before calling the USBD_MSC_API::Init().
| [in] | hUsb | Handle to the USB device stack. |
| [in] | data | Pointer to the data which will be passed when callback function is called by the stack. |
| [in] | event | Type of endpoint event. See USBD_EVENT_T for more details. |
| LPC_OK | On success. |
| ERR_USBD_UNHANDLED | Event is not handled hence pass the event to next in line. |
| ERR_USBD_xxx | For other error conditions. |
Optional user overridable function to replace the default MSC class handler.
The application software could override the default EP0 class handler with their own by providing the handler function address as this data member of the parameter structure. Application which like the default handler should set this data member to zero before calling the USBD_MSC_API::Init().
| hUsb | Handle to the USB device stack. |
| data | Pointer to the data which will be passed when callback function is called by the stack. |
| event | Type of endpoint event. See USBD_EVENT_T for more details. |
| LPC_OK | On success. |
| ERR_USBD_UNHANDLED | Event is not handled hence pass the event to next in line. |
| ERR_USBD_xxx | For other error conditions. |
Definition at line 134 of file usbd_api.h.
Optional callback function to optimize MSC_Write buffer transfer.
This function is provided by the application software. This function gets called when host sends SCSI_WRITE10/SCSI_WRITE12 command. The callback function should update the buff_adr pointer so that the stack transfers the data directly to the target buffer. /note The updated buffer address should be accessable by USB DMA master. If user doesn't want to use zero-copy model, then the user should not update the buffer pointer.
| [in] | offset | Destination start address. |
| [in,out] | buf | Buffer containing the data sent by the host. |
| [in] | length | Number of bytes to write. |
Optional callback function to optimize MSC_Write buffer transfer.
This function is provided by the application software. This function gets called when host sends SCSI_WRITE10/SCSI_WRITE12 command. The callback function should update the buff_adr pointer so that the stack transfers the data directly to the target buffer. /note The updated buffer address should be accessable by USB DMA master. If user doesn't want to use zero-copy model, then the user should not update the buffer pointer.
| offset | Destination start address. | |
| [in,out] | buf | Buffer containing the data sent by the host. |
| length | Number of bytes to write. |
Definition at line 132 of file usbd_api.h.
MSC Read callback function.
This function is provided by the application software. This function gets called when host sends a read command.
| [in] | offset | Source start address. |
| [in,out] | dst | Pointer to a pointer to the source of data. The MSC function drivers implemented in stack are written with zero-copy model. Meaning the stack doesn't make an extra copy of buffer before writing/reading data from USB hardware FIFO. Hence the parameter is pointer to a pointer containing address buffer (uint8_t** dst). So that the user application can update the buffer pointer instead of copying data to address pointed by the parameter. /note The updated buffer address should be accessable by USB DMA master. If user doesn't want to use zero-copy model, then the user should copy data to the address pointed by the passed buffer pointer parameter and shouldn't change the address value. |
| [in] | length | Number of bytes to be read. |
MSC Read callback function.
This function is provided by the application software. This function gets called when host sends a read command.
| offset | Source start address. |
| dst | Pointer to a pointer to the source of data. The MSC function drivers implemented in stack are written with zero-copy model. Meaning the stack doesn't make an extra copy of buffer before writing/reading data from USB hardware FIFO. Hence the parameter is pointer to a pointer containing address buffer (uint8_t** dst). So that the user application can update the buffer pointer instead of copying data to address pointed by the parameter. /note The updated buffer address should be accessable by USB DMA master. If user doesn't want to use zero-copy model, then the user should copy data to the address pointed by the passed buffer pointer parameter and shouldn't change the address value. |
| length | Number of bytes to be read. |
Definition at line 129 of file usbd_api.h.
| ErrorCode_t(* MSC_Verify)(uint32_t offset, uint8_t buf[], uint32_t length) |
MSC Verify callback function.
This function is provided by the application software. This function gets called when host sends a verify command. The callback function should compare the buffer with the destination memory at the requested offset and
| [in] | offset | Destination start address. |
| [in] | buf | Buffer containing the data sent by the host. |
| [in] | length | Number of bytes to verify. |
| LPC_OK | If data in the buffer matches the data at destination |
| ERR_FAILED | Atleast one byte is different. |
MSC Verify callback function.
This function is provided by the application software. This function gets called when host sends a verify command. The callback function should compare the buffer with the destination memory at the requested offset and
| offset | Destination start address. |
| buf | Buffer containing the data sent by the host. |
| length | Number of bytes to verify. |
| LPC_OK | If data in the buffer matches the data at destination |
| ERR_FAILED | Atleast one byte is different. |
Definition at line 130 of file usbd_api.h.
MSC Write callback function.
This function is provided by the application software. This function gets called when host sends a write command.
| [in] | offset | Destination start address. |
| [in,out] | src | Pointer to a pointer to the source of data. Pointer-to-pointer is used to implement zero-copy buffers. |
| [in] | length | Number of bytes to be written. |
MSC Write callback function.
This function is provided by the application software. This function gets called when host sends a write command.
| offset | Destination start address. |
| src | Pointer to a pointer to the source of data. Pointer-to-pointer is used to implement zero-copy buffers. |
| length | Number of bytes to be written. |
Definition at line 128 of file usbd_api.h.