/*
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
static bool SCSI_Command_Read_Capacity_10(void)
{
/* Send the total number of logical blocks in the current LUN */
- Endpoint_Write_DWord_BE(LUN_MEDIA_BLOCKS - 1);
+ Endpoint_Write_32_BE(LUN_MEDIA_BLOCKS - 1);
/* Send the logical block size of the device (must be 512 bytes) */
- Endpoint_Write_DWord_BE(VIRTUAL_MEMORY_BLOCK_SIZE);
+ Endpoint_Write_32_BE(VIRTUAL_MEMORY_BLOCK_SIZE);
/* Check if the current command is being aborted by the host */
if (IsMassStoreReset)
SCSI_ASENSE_WRITE_PROTECTED,
SCSI_ASENSEQ_NO_QUALIFIER);
- return false;
+ return false;
}
BlockAddress = SwapEndian_32(*(uint32_t*)&CommandBlock.SCSICommandData[2]);
TotalBlocks = SwapEndian_16(*(uint16_t*)&CommandBlock.SCSICommandData[7]);
-
+
/* Check if the block address is outside the maximum allowable value for the LUN */
if (BlockAddress >= LUN_MEDIA_BLOCKS)
{
static bool SCSI_Command_ModeSense_6(void)
{
/* 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 */
return true;
}
+