Fixed incorrect comparison in the descriptor callback routine of the TeensyHID bootlo...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Common / MassStorage.h
index f107bdb..b5e590e 100644 (file)
@@ -1,13 +1,13 @@
 /*\r
              LUFA Library\r
 /*\r
              LUFA Library\r
-     Copyright (C) Dean Camera, 2009.\r
+     Copyright (C) Dean Camera, 2010.\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
 \r
   Permission to use, copy, modify, distribute, and sell this \r
   software and its documentation for any purpose is hereby granted\r
 \r
   Permission to use, copy, modify, distribute, and sell this \r
   software and its documentation for any purpose is hereby granted\r
   this software.\r
 */\r
 \r
   this software.\r
 */\r
 \r
+/** \file\r
+ *  \brief Common definitions and declarations for the library USB Mass Storage Class driver.\r
+ *\r
+ *  Common definitions and declarations for the library USB Mass Storage Class driver.\r
+ *\r
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver\r
+ *        dispatch header located in LUFA/Drivers/USB/Class/MassStorage.h.\r
+ */\r
+\r
 /** \ingroup Group_USBClassMS\r
  *  @defgroup Group_USBClassMSCommon  Common Class Definitions\r
  *\r
 /** \ingroup Group_USBClassMS\r
  *  @defgroup Group_USBClassMSCommon  Common Class Definitions\r
  *\r
                        extern "C" {\r
                #endif\r
 \r
                        extern "C" {\r
                #endif\r
 \r
+       /* Preprocessor Checks: */\r
+               #if !defined(__INCLUDE_FROM_MS_DRIVER)\r
+                       #error Do not include this file directly. Include LUFA/Drivers/Class/MassStorage.h instead.\r
+               #endif\r
+               \r
        /* Macros: */\r
                /** Mass Storage Class specific request to reset the Mass Storage interface, ready for the next command. */\r
                #define REQ_MassStorageReset       0xFF\r
        /* Macros: */\r
                /** Mass Storage Class specific request to reset the Mass Storage interface, ready for the next command. */\r
                #define REQ_MassStorageReset       0xFF\r
                #define SCSI_ASENSEQ_OPERATION_IN_PROGRESS             0x07\r
                \r
        /* Type defines: */\r
                #define SCSI_ASENSEQ_OPERATION_IN_PROGRESS             0x07\r
                \r
        /* Type defines: */\r
-               /** Type define for a Command Block Wrapper, used in the Mass Storage Bulk-Only Transport protocol. */\r
+               /** \brief Mass Storage Class Command Block Wrapper.\r
+                *\r
+                *  Type define for a Command Block Wrapper, used in the Mass Storage Bulk-Only Transport protocol. */\r
                typedef struct\r
                {\r
                        uint32_t Signature; /**< Command block signature, must be CBW_SIGNATURE to indicate a valid Command Block */\r
                typedef struct\r
                {\r
                        uint32_t Signature; /**< Command block signature, must be CBW_SIGNATURE to indicate a valid Command Block */\r
                        uint8_t  SCSICommandData[16]; /**< Issued SCSI command in the Command Block */\r
                } MS_CommandBlockWrapper_t;\r
                \r
                        uint8_t  SCSICommandData[16]; /**< Issued SCSI command in the Command Block */\r
                } MS_CommandBlockWrapper_t;\r
                \r
-               /** Type define for a Command Status Wrapper, used in the Mass Storage Bulk-Only Transport protocol. */\r
+               /** \brief Mass Storage Class Command Status Wrapper.\r
+                *\r
+                *  Type define for a Command Status Wrapper, used in the Mass Storage Bulk-Only Transport protocol.\r
+                */\r
                typedef struct\r
                {\r
                        uint32_t Signature; /**< Status block signature, must be CSW_SIGNATURE to indicate a valid Command Status */\r
                typedef struct\r
                {\r
                        uint32_t Signature; /**< Status block signature, must be CSW_SIGNATURE to indicate a valid Command Status */\r
                        uint8_t  Status; /**< Status code of the issued command - a value from the MassStorage_CommandStatusCodes_t enum */\r
                } MS_CommandStatusWrapper_t;\r
                \r
                        uint8_t  Status; /**< Status code of the issued command - a value from the MassStorage_CommandStatusCodes_t enum */\r
                } MS_CommandStatusWrapper_t;\r
                \r
-               /** Type define for a SCSI Sense structure. Structures of this type are filled out by the\r
+               /** \brief Mass Storage Class SCSI Sense Structure\r
+                *  \r
+                *  Type define for a SCSI Sense structure. Structures of this type are filled out by the\r
                 *  device via the MassStore_RequestSense() function, indicating the current sense data of the\r
                 *  device (giving explicit error codes for the last issued command). For details of the\r
                 *  structure contents, refer to the SCSI specifications.\r
                 *  device via the MassStore_RequestSense() function, indicating the current sense data of the\r
                 *  device (giving explicit error codes for the last issued command). For details of the\r
                 *  structure contents, refer to the SCSI specifications.\r
                        uint8_t      SenseKeySpecific[3];\r
                } SCSI_Request_Sense_Response_t;\r
 \r
                        uint8_t      SenseKeySpecific[3];\r
                } SCSI_Request_Sense_Response_t;\r
 \r
-               /** Type define for a SCSI Inquiry structure. Structures of this type are filled out by the\r
+               /** \brief Mass Storage Class SCSI Inquiry Structure.\r
+                *\r
+                *  Type define for a SCSI Inquiry structure. Structures of this type are filled out by the\r
                 *  device via the MassStore_Inquiry() function, retrieving the attached device's information.\r
                 *  For details of the structure contents, refer to the SCSI specifications.\r
                 */\r
                 *  device via the MassStore_Inquiry() function, retrieving the attached device's information.\r
                 *  For details of the structure contents, refer to the SCSI specifications.\r
                 */\r