*
* SCSI capacity structure, to hold the total capacity of the device in both the number
* of blocks in the current LUN, and the size of each block. This structure is filled by
- * the device when the MassStore_ReadCapacity() function is called.
+ * the device when the \ref MS_Host_ReadDeviceCapacity() function is called.
*/
typedef struct
{
/** Retrieves the Mass Storage device's inquiry data for the specified LUN, indicating the device characteristics and
* properties.
*
- * \note This function must only be called when the Host state machine is in the HOST_STATE_Configured state or the
- * call will fail.
+ * \pre This function must only be called when the Host state machine is in the HOST_STATE_Configured state or the
+ * call will fail.
*
* \param[in,out] MSInterfaceInfo Pointer to a structure containing a MS Class host configuration and state
* \param[in] LUNIndex LUN index within the device the command is being issued to
/** Retrieves the total capacity of the attached USB Mass Storage device, in blocks, and block size.
*
- * \note This function must only be called when the Host state machine is in the HOST_STATE_Configured state or the
- * call will fail.
+ * \pre This function must only be called when the Host state machine is in the HOST_STATE_Configured state or the
+ * call will fail.
*
* \param[in,out] MSInterfaceInfo Pointer to a structure containing a MS Class host configuration and state
* \param[in] LUNIndex LUN index within the device the command is being issued to
/** Retrieves the device sense data, indicating the current device state and error codes for the previously
* issued command.
*
- * \note This function must only be called when the Host state machine is in the HOST_STATE_Configured state or the
- * call will fail.
+ * \pre This function must only be called when the Host state machine is in the HOST_STATE_Configured state or the
+ * call will fail.
*
* \param[in,out] MSInterfaceInfo Pointer to a structure containing a MS Class host configuration and state
* \param[in] LUNIndex LUN index within the device the command is being issued to
/** Issues a PREVENT MEDIUM REMOVAL command, to logically (or, depending on the type of device, physically) lock
* the device from removal so that blocks of data on the medium can be read or altered.
*
- * \note This function must only be called when the Host state machine is in the HOST_STATE_Configured state or the
- * call will fail.
+ * \pre This function must only be called when the Host state machine is in the HOST_STATE_Configured state or the
+ * call will fail.
*
* \param[in,out] MSInterfaceInfo Pointer to a structure containing a MS Class host configuration and state
* \param[in] LUNIndex LUN index within the device the command is being issued to
/** Reads blocks of data from the attached Mass Storage device's medium.
*
- * \note This function must only be called when the Host state machine is in the HOST_STATE_Configured state or the
- * call will fail.
+ * \pre This function must only be called when the Host state machine is in the HOST_STATE_Configured state or the
+ * call will fail.
*
* \param[in,out] MSInterfaceInfo Pointer to a structure containing a MS Class host configuration and state
* \param[in] LUNIndex LUN index within the device the command is being issued to
/** Writes blocks of data to the attached Mass Storage device's medium.
*
- * \note This function must only be called when the Host state machine is in the HOST_STATE_Configured state or the
- * call will fail.
+ * \pre This function must only be called when the Host state machine is in the HOST_STATE_Configured state or the
+ * call will fail.
*
* \param[in,out] MSInterfaceInfo Pointer to a structure containing a MS Class host configuration and state
* \param[in] LUNIndex LUN index within the device the command is being issued to
/* Function Prototypes: */
#if defined(__INCLUDE_FROM_MS_CLASS_HOST_C)
- static uint8_t DCOMP_MS_NextMSInterface(void* const CurrentDescriptor);
- static uint8_t DCOMP_MS_NextMSInterfaceEndpoint(void* const CurrentDescriptor);
+ static uint8_t DCOMP_MS_NextMSInterface(void* const CurrentDescriptor) ATTR_NON_NULL_PTR_ARG(1);
+ static uint8_t DCOMP_MS_NextMSInterfaceEndpoint(void* const CurrentDescriptor) ATTR_NON_NULL_PTR_ARG(1);
static uint8_t MS_Host_SendCommand(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo,
MS_CommandBlockWrapper_t* const SCSICommandBlock,
- const void* const BufferPtr);
- static uint8_t MS_Host_WaitForDataReceived(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo);
+ const void* const BufferPtr) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
+ static uint8_t MS_Host_WaitForDataReceived(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
static uint8_t MS_Host_SendReceiveData(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo,
- MS_CommandBlockWrapper_t* const SCSICommandBlock, void* BufferPtr);
+ MS_CommandBlockWrapper_t* const SCSICommandBlock, void* BufferPtr)
+ ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
static uint8_t MS_Host_GetReturnedStatus(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo,
- MS_CommandStatusWrapper_t* const SCSICommandStatus);
+ MS_CommandStatusWrapper_t* const SCSICommandStatus)
+ ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
#endif
#endif