Minor documentation adjustments to the demos, projects and bootloaders to ensure...
[pub/USBasp.git] / Projects / TempDataLogger / Lib / SCSI.c
index 31f62ee..c0421a6 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2011.
+     Copyright (C) Dean Camera, 2012.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -41,7 +41,7 @@
 /** Structure to hold the SCSI response data to a SCSI INQUIRY command. This gives information about the device's
  *  features and capabilities.
  */
-SCSI_Inquiry_Response_t InquiryData =
+static const SCSI_Inquiry_Response_t InquiryData =
        {
                .DeviceType          = DEVICE_TYPE_BLOCK,
                .PeripheralQualifier = 0,
@@ -73,7 +73,7 @@ SCSI_Inquiry_Response_t InquiryData =
 /** Structure to hold the sense data for the last issued SCSI command, which is returned to the host after a SCSI REQUEST SENSE
  *  command is issued. This gives information on exactly why the last command failed to complete.
  */
-SCSI_Request_Sense_Response_t SenseData =
+static SCSI_Request_Sense_Response_t SenseData =
        {
                .ResponseCode        = 0x70,
                .AdditionalLength    = 0x0A,
@@ -154,8 +154,7 @@ bool SCSI_DecodeSCSICommand(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
 static bool SCSI_Command_Inquiry(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
 {
        uint16_t AllocationLength  = SwapEndian_16(*(uint16_t*)&MSInterfaceInfo->State.CommandBlock.SCSICommandData[3]);
-       uint16_t BytesTransferred  = (AllocationLength < sizeof(InquiryData))? AllocationLength :
-                                                                              sizeof(InquiryData);
+       uint16_t BytesTransferred  = MIN(AllocationLength, sizeof(InquiryData));
 
        /* Only the standard INQUIRY data is supported, check if any optional INQUIRY bits set */
        if ((MSInterfaceInfo->State.CommandBlock.SCSICommandData[1] & ((1 << 0) | (1 << 1))) ||
@@ -193,7 +192,7 @@ static bool SCSI_Command_Inquiry(USB_ClassInfo_MS_Device_t* const MSInterfaceInf
 static bool SCSI_Command_Request_Sense(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
 {
        uint8_t  AllocationLength = MSInterfaceInfo->State.CommandBlock.SCSICommandData[4];
-       uint8_t  BytesTransferred = (AllocationLength < sizeof(SenseData))? AllocationLength : sizeof(SenseData);
+       uint8_t  BytesTransferred = MIN(AllocationLength, sizeof(SenseData));
 
        Endpoint_Write_Stream_LE(&SenseData, BytesTransferred, NULL);
        Endpoint_Null_Stream((AllocationLength - BytesTransferred), NULL);
@@ -288,7 +287,7 @@ static bool SCSI_Command_ReadWrite_10(USB_ClassInfo_MS_Device_t* const MSInterfa
                               SCSI_ASENSE_WRITE_PROTECTED,
                               SCSI_ASENSEQ_NO_QUALIFIER);
 
-               return false;           
+               return false;
        }
 
        /* Load in the 32-bit block address (SCSI uses big-endian, so have to reverse the byte order) */
@@ -307,7 +306,7 @@ static bool SCSI_Command_ReadWrite_10(USB_ClassInfo_MS_Device_t* const MSInterfa
 
                return false;
        }
-       
+
        /* Determine if the packet is a READ (10) or WRITE (10) command, call appropriate function */
        if (IsDataRead == DATA_READ)
          DataflashManager_ReadBlocks(MSInterfaceInfo, BlockAddress, TotalBlocks);
@@ -330,10 +329,10 @@ static bool SCSI_Command_ReadWrite_10(USB_ClassInfo_MS_Device_t* const MSInterfa
 static bool SCSI_Command_ModeSense_6(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
 {
        /* Send an empty header response with the Write Protect flag status */
-       Endpoint_Write_Byte(0x00);
-       Endpoint_Write_Byte(0x00);
-       Endpoint_Write_Byte(DISK_READ_ONLY ? 0x80 : 0x00);
-       Endpoint_Write_Byte(0x00);
+       Endpoint_Write_8(0x00);
+       Endpoint_Write_8(0x00);
+       Endpoint_Write_8(DISK_READ_ONLY ? 0x80 : 0x00);
+       Endpoint_Write_8(0x00);
        Endpoint_ClearIN();
 
        /* Update the bytes transferred counter and succeed the command */
@@ -341,3 +340,4 @@ static bool SCSI_Command_ModeSense_6(USB_ClassInfo_MS_Device_t* const MSInterfac
 
        return true;
 }
+