summaryrefslogtreecommitdiff
path: root/tinyusb/device/romdriver/mw_usbd_mscuser.h
diff options
context:
space:
mode:
Diffstat (limited to 'tinyusb/device/romdriver/mw_usbd_mscuser.h')
-rw-r--r--tinyusb/device/romdriver/mw_usbd_mscuser.h267
1 files changed, 0 insertions, 267 deletions
diff --git a/tinyusb/device/romdriver/mw_usbd_mscuser.h b/tinyusb/device/romdriver/mw_usbd_mscuser.h
deleted file mode 100644
index 62ca2ee9d..000000000
--- a/tinyusb/device/romdriver/mw_usbd_mscuser.h
+++ /dev/null
@@ -1,267 +0,0 @@
-/***********************************************************************
-* $Id:: mw_usbd_mscuser.h 202 2011-06-12 21:50:01Z usb06052 $
-*
-* Project: USB device ROM Stack
-*
-* Description:
-* Mass Storage Class Custom User Module definitions.
-*
-***********************************************************************
-* Copyright(C) 2011, NXP Semiconductor
-* All rights reserved.
-*
-* Software that is described herein is for illustrative purposes only
-* which provides customers with programming information regarding the
-* products. This software is supplied "AS IS" without any warranties.
-* NXP Semiconductors assumes no responsibility or liability for the
-* use of the software, conveys no license or title under any patent,
-* copyright, or mask work right to the product. NXP Semiconductors
-* reserves the right to make changes in the software without
-* notification. NXP Semiconductors also make no representation or
-* warranty that such application will be suitable for the specified
-* use without further testing or modification.
-**********************************************************************/
-#ifndef __MSCUSER_H__
-#define __MSCUSER_H__
-
-#include "error.h"
-#include "mw_usbd.h"
-#include "mw_usbd_msc.h"
-#include "mw_usbd_core.h"
-#include "tusb_option.h"
-
-/** \file
- * \brief Mass Storage Class (MSC) API structures and function prototypes.
- *
- * Definition of functions exported by ROM based MSC function driver.
- *
- */
-
-/** \ingroup Group_USBD
- * @defgroup USBD_MSC Mass Storage Class (MSC) Function Driver
- * \section Sec_MSCModDescription Module Description
- * MSC Class Function Driver module. This module contains an internal implementation of the USB MSC Class.
- * User applications can use this class driver instead of implementing the MSC class manually
- * via the low-level USBD_HW and USBD_Core APIs.
- *
- * This module is designed to simplify the user code by exposing only the required interface needed to interface with
- * Devices using the USB MSC Class.
- */
-
-/** \brief Mass Storage class function driver initilization parameter data structure.
- * \ingroup USBD_MSC
- *
- * \details This data structure is used to pass initialization parameters to the
- * Mass Storage class function driver's init function.
- *
- */
-typedef struct USBD_MSC_INIT_PARAM
-{
- /* memory allocation params */
- uint32_t mem_base; /**< Base memory location from where the stack can allocate
- data and buffers. \note The memory address set in this field
- should be accessible by USB DMA controller. Also this value
- should be aligned on 4 byte boundary.
- */
- uint32_t mem_size; /**< The size of memory buffer which stack can use.
- \note The \em mem_size should be greater than the size
- returned by USBD_MSC_API::GetMemSize() routine.*/
- /* mass storage paramas */
- uint8_t* InquiryStr; /**< Pointer to the 28 character string. This string is
- sent in response to the SCSI Inquiry command. \note The data
- pointed by the pointer should be of global scope.
- */
- uint32_t BlockCount; /**< Number of blocks present in the mass storage device */
- uint32_t BlockSize; /**< Block size in number of bytes */
- uint32_t MemorySize; /**< Memory size in number of bytes */
- /** Pointer to the interface descriptor within the descriptor
- * array (\em high_speed_desc) passed to Init() through \ref USB_CORE_DESCS_T
- * structure. The stack assumes both HS and FS use same BULK endpoints.
- */
- uint8_t* intf_desc;
- /* user defined functions */
-
- /**
- * MSC Write callback function.
- *
- * This function is provided by the application software. This function gets called
- * when host sends a write command.
- *
- * \param[in] offset Destination start address.
- * \param[in, out] src Pointer to a pointer to the source of data. Pointer-to-pointer
- * is used to implement zero-copy buffers. See \ref USBD_ZeroCopy
- * for more details on zero-copy concept.
- * \param[in] length Number of bytes to be written.
- * \return Nothing.
- *
- */
- void (*MSC_Write)( uint32_t offset, uint8_t** src, uint32_t length);
- /**
- * MSC Read callback function.
- *
- * This function is provided by the application software. This function gets called
- * when host sends a read command.
- *
- * \param[in] offset Source start address.
- * \param[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 (<em>uint8_t** dst</em>).
- * 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. See \ref USBD_ZeroCopy for more details on zero-copy concept.
- * \param[in] length Number of bytes to be read.
- * \return Nothing.
- *
- */
- void (*MSC_Read)( uint32_t offset, uint8_t** dst, 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
- *
- * \param[in] offset Destination start address.
- * \param[in] buf Buffer containing the data sent by the host.
- * \param[in] length Number of bytes to verify.
- * \return Returns \ref ErrorCode_t type to indicate success or error condition.
- * \retval LPC_OK If data in the buffer matches the data at destination
- * \retval ERR_FAILED Atleast one byte is different.
- *
- */
- ErrorCode_t (*MSC_Verify)( uint32_t offset, uint8_t buf[], uint32_t length);
- /**
- * 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 \em 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. See \ref USBD_ZeroCopy for more details
- * on zero-copy concept.
- *
- * \param[in] offset Destination start address.
- * \param[in,out] buf Buffer containing the data sent by the host.
- * \param[in] length Number of bytes to write.
- * \return Nothing.
- *
- */
- void (*MSC_GetWriteBuf)( uint32_t offset, uint8_t** buff_adr, uint32_t length);
-
- /**
- * 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().
- * \n
- * \note
- *
- * \param[in] hUsb Handle to the USB device stack.
- * \param[in] data Pointer to the data which will be passed when callback function is called by the stack.
- * \param[in] event Type of endpoint event. See \ref USBD_EVENT_T for more details.
- * \return The call back should returns \ref ErrorCode_t type to indicate success or error condition.
- * \retval LPC_OK On success.
- * \retval ERR_USBD_UNHANDLED Event is not handled hence pass the event to next in line.
- * \retval ERR_USBD_xxx For other error conditions.
- *
- */
- ErrorCode_t (*MSC_Ep0_Hdlr) (USBD_HANDLE_T hUsb, void* data, uint32_t event);
-
-} USBD_MSC_INIT_PARAM_T;
-
-/** \brief MSC class API functions structure.
- * \ingroup USBD_MSC
- *
- * This module exposes functions which interact directly with USB device controller hardware.
- *
- */
-typedef struct USBD_MSC_API
-{
- /** \fn uint32_t GetMemSize(USBD_MSC_INIT_PARAM_T* param)
- * Function to determine the memory required by the MSC function driver module.
- *
- * This function is called by application layer before calling pUsbApi->msc->Init(), to allocate memory used
- * by MSC function driver module. The application should allocate the memory which is accessible by USB
- * controller/DMA controller.
- * \note Some memory areas are not accessible by all bus masters.
- *
- * \param[in] param Structure containing MSC function driver module initialization parameters.
- * \return Returns the required memory size in bytes.
- */
- uint32_t (*GetMemSize)(USBD_MSC_INIT_PARAM_T* param);
-
- /** \fn ErrorCode_t init(USBD_HANDLE_T hUsb, USBD_MSC_INIT_PARAM_T* param)
- * Function to initialize MSC function driver module.
- *
- * This fuction is called by application layer to initialize MSC function driver module.
- *
- * \param[in] hUsb Handle to the USB device stack.
- * \param[in, out] param Structure containing MSC function driver module initialization parameters.
- * \return Returns \ref ErrorCode_t type to indicate success or error condition.
- * \retval LPC_OK On success
- * \retval ERR_USBD_BAD_MEM_BUF Memory buffer passed is not 4-byte
- * aligned or smaller than required.
- * \retval ERR_API_INVALID_PARAM2 Either MSC_Write() or MSC_Read() or
- * MSC_Verify() callbacks are not defined.
- * \retval ERR_USBD_BAD_INTF_DESC Wrong interface descriptor is passed.
- * \retval ERR_USBD_BAD_EP_DESC Wrong endpoint descriptor is passed.
- */
- ErrorCode_t (*init)(USBD_HANDLE_T hUsb, USBD_MSC_INIT_PARAM_T* param);
-
-} USBD_MSC_API_T;
-
-/*-----------------------------------------------------------------------------
- * Private functions & structures prototypes
- *-----------------------------------------------------------------------------*/
-/** @cond ADVANCED_API */
-
-typedef struct _MSC_CTRL_T
-{
- /* If it's a USB HS, the max packet is 512, if it's USB FS,
- the max packet is 64. Use 512 for both HS and FS. */
- /*ALIGNED(4)*/ uint8_t BulkBuf[USB_HS_MAX_BULK_PACKET]; /* Bulk In/Out Buffer */
- /*ALIGNED(4)*/MSC_CBW CBW; /* Command Block Wrapper */
- /*ALIGNED(4)*/MSC_CSW CSW; /* Command Status Wrapper */
-
- USB_CORE_CTRL_T* pUsbCtrl;
-
- uint32_t Offset; /* R/W Offset */
- uint32_t Length; /* R/W Length */
- uint32_t BulkLen; /* Bulk In/Out Length */
- uint8_t* rx_buf;
-
- uint8_t BulkStage; /* Bulk Stage */
- uint8_t if_num; /* interface number */
- uint8_t epin_num; /* BULK IN endpoint number */
- uint8_t epout_num; /* BULK OUT endpoint number */
- uint32_t MemOK; /* Memory OK */
-
- uint8_t* InquiryStr;
- uint32_t BlockCount;
- uint32_t BlockSize;
- uint32_t MemorySize;
- /* user defined functions */
- 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 src[], uint32_t length);
- /* optional call back for MSC_Write optimization */
- void (*MSC_GetWriteBuf)( uint32_t offset, uint8_t** buff_adr, uint32_t length);
-
-
-}USB_MSC_CTRL_T;
-
-/** @cond DIRECT_API */
-extern uint32_t mwMSC_GetMemSize(USBD_MSC_INIT_PARAM_T* param);
-extern ErrorCode_t mwMSC_init(USBD_HANDLE_T hUsb, USBD_MSC_INIT_PARAM_T* param);
-/** @endcond */
-
-/** @endcond */
-
-
-#endif /* __MSCUSER_H__ */