* Fixed wrong indentation, and number of blank lines.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30367 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2009-04-24 12:13:22 +00:00
parent 9b65e90569
commit 8c8c904aca
5 changed files with 61 additions and 53 deletions
@@ -9,18 +9,20 @@
#include "ATAPrivate.h" #include "ATAPrivate.h"
ATAChannel::ATAChannel(device_node *node) ATAChannel::ATAChannel(device_node *node)
: fNode(node), :
fChannelID(0), fNode(node),
fController(NULL), fChannelID(0),
fCookie(NULL), fController(NULL),
fExpectsInterrupt(false), fCookie(NULL),
fStatus(B_NO_INIT), fExpectsInterrupt(false),
fSCSIBus(NULL), fStatus(B_NO_INIT),
fDeviceCount(0), fSCSIBus(NULL),
fDevices(NULL), fDeviceCount(0),
fUseDMA(true), fDevices(NULL),
fRequest(NULL) fUseDMA(true),
fRequest(NULL)
{ {
B_INITIALIZE_SPINLOCK(&fInterruptLock); B_INITIALIZE_SPINLOCK(&fInterruptLock);
fInterruptCondition.Init(this, "ata dma transfer"); fInterruptCondition.Init(this, "ata dma transfer");
@@ -64,7 +66,7 @@ ATAChannel::ATAChannel(device_node *node)
uint8 maxDevices = 2; uint8 maxDevices = 2;
if (gDeviceManager->get_attr_uint8(node, ATA_CONTROLLER_MAX_DEVICES_ITEM, if (gDeviceManager->get_attr_uint8(node, ATA_CONTROLLER_MAX_DEVICES_ITEM,
&maxDevices, true) != B_OK) { &maxDevices, true) != B_OK) {
maxDevices = 2; maxDevices = 2;
} }
@@ -182,7 +184,7 @@ ATAChannel::PathInquiry(scsi_path_inquiry *info)
const char *controllerName = NULL; const char *controllerName = NULL;
if (gDeviceManager->get_attr_string(fNode, if (gDeviceManager->get_attr_string(fNode,
SCSI_DESCRIPTION_CONTROLLER_NAME, &controllerName, true) == B_OK) SCSI_DESCRIPTION_CONTROLLER_NAME, &controllerName, true) == B_OK)
strlcpy(info->hba_vid, controllerName, SCSI_HBA_ID); strlcpy(info->hba_vid, controllerName, SCSI_HBA_ID);
else else
strlcpy(info->hba_vid, "unknown", SCSI_HBA_ID); strlcpy(info->hba_vid, "unknown", SCSI_HBA_ID);
@@ -336,7 +338,7 @@ ATAChannel::Reset(bool *presence, uint16 *signatures)
ata_task_file taskFile; ata_task_file taskFile;
if (_ReadRegs(&taskFile, ATA_MASK_LBA_MID | ATA_MASK_LBA_HIGH if (_ReadRegs(&taskFile, ATA_MASK_LBA_MID | ATA_MASK_LBA_HIGH
| ATA_MASK_ERROR) != B_OK) { | ATA_MASK_ERROR) != B_OK) {
TRACE_ERROR("reading status failed\n"); TRACE_ERROR("reading status failed\n");
return B_ERROR; return B_ERROR;
} }
@@ -497,7 +499,7 @@ ATAChannel::SendRequest(ATARequest *request, uint32 flags)
} }
if (_WriteRegs(device->TaskFile(), device->RegisterMask() if (_WriteRegs(device->TaskFile(), device->RegisterMask()
| ATA_MASK_COMMAND) != B_OK) { | ATA_MASK_COMMAND) != B_OK) {
TRACE_ERROR("can't write command\n"); TRACE_ERROR("can't write command\n");
request->SetStatus(SCSI_HBA_ERR); request->SetStatus(SCSI_HBA_ERR);
return B_ERROR; return B_ERROR;
@@ -551,7 +553,7 @@ ATAChannel::FinishRequest(ATARequest *request, uint32 flags, uint8 errorMask)
return B_OK; return B_OK;
if ((taskFile->read.error & ATA_ERROR_MEDIUM_CHANGED) if ((taskFile->read.error & ATA_ERROR_MEDIUM_CHANGED)
!= ATA_ERROR_MEDIUM_CHANGED) { != ATA_ERROR_MEDIUM_CHANGED) {
TRACE_ERROR("command failed, error bit is set: 0x%02x\n", TRACE_ERROR("command failed, error bit is set: 0x%02x\n",
taskFile->read.error); taskFile->read.error);
} }
@@ -897,7 +899,7 @@ ATAChannel::_TransferPIOPhysical(ATARequest *request, addr_t physicalAddress,
void *handle; void *handle;
addr_t virtualAddress; addr_t virtualAddress;
if (vm_get_physical_page_current_cpu(physicalAddress, &virtualAddress, if (vm_get_physical_page_current_cpu(physicalAddress, &virtualAddress,
&handle) != B_OK) { &handle) != B_OK) {
thread_unpin_from_current_cpu(thread); thread_unpin_from_current_cpu(thread);
// ouch: this should never ever happen // ouch: this should never ever happen
return B_ERROR; return B_ERROR;
@@ -11,14 +11,15 @@
ATADevice::ATADevice(ATAChannel *channel, uint8 index) ATADevice::ATADevice(ATAChannel *channel, uint8 index)
: fChannel(channel), :
fRegisterMask(0), fChannel(channel),
fUseDMA(channel->UseDMA()), fRegisterMask(0),
fDMAMode(0), fUseDMA(channel->UseDMA()),
fDMAFailures(0), fDMAMode(0),
fIndex(index), fDMAFailures(0),
fUse48Bits(false), fIndex(index),
fTotalSectors(0) fUse48Bits(false),
fTotalSectors(0)
{ {
memset(&fInfoBlock, 0, sizeof(fInfoBlock)); memset(&fInfoBlock, 0, sizeof(fInfoBlock));
memset(&fTaskFile, 0, sizeof(fTaskFile)); memset(&fTaskFile, 0, sizeof(fTaskFile));
@@ -45,7 +46,7 @@ ATADevice::TestUnitReady(ATARequest *request)
return result; return result;
} }
return fChannel->FinishRequest(request, ATA_WAIT_FINISH return fChannel->FinishRequest(request, ATA_WAIT_FINISH
| ATA_DEVICE_READY_REQUIRED, ATA_ERROR_NO_MEDIA | ATA_ERROR_ABORTED | ATA_DEVICE_READY_REQUIRED, ATA_ERROR_NO_MEDIA | ATA_ERROR_ABORTED
| ATA_ERROR_MEDIA_CHANGE_REQUESTED | ATA_ERROR_MEDIUM_CHANGED); | ATA_ERROR_MEDIA_CHANGE_REQUESTED | ATA_ERROR_MEDIUM_CHANGED);
} }
@@ -63,8 +64,8 @@ ATADevice::SynchronizeCache(ATARequest *request)
return B_OK; return B_OK;
fRegisterMask = 0; fRegisterMask = 0;
fTaskFile.lba.command = fUse48Bits ? ATA_COMMAND_FLUSH_CACHE_EXT fTaskFile.lba.command
: ATA_COMMAND_FLUSH_CACHE; = fUse48Bits ? ATA_COMMAND_FLUSH_CACHE_EXT : ATA_COMMAND_FLUSH_CACHE;
request->SetTimeout(60 * 1000 * 1000); request->SetTimeout(60 * 1000 * 1000);
status_t result = fChannel->SendRequest(request, ATA_DEVICE_READY_REQUIRED); status_t result = fChannel->SendRequest(request, ATA_DEVICE_READY_REQUIRED);
@@ -254,7 +255,7 @@ ATADevice::ExecuteIO(ATARequest *request)
case SCSI_OP_WRITE_6: case SCSI_OP_WRITE_6:
{ {
scsi_cmd_rw_6 *command = (scsi_cmd_rw_6 *)ccb->cdb; scsi_cmd_rw_6 *command = (scsi_cmd_rw_6 *)ccb->cdb;
uint32 address = ((uint32)command->high_lba << 16) uint32 address = ((uint32)command->high_lba << 16)
| ((uint32)command->mid_lba << 8) | (uint32)command->low_lba; | ((uint32)command->mid_lba << 8) | (uint32)command->low_lba;
request->SetIsWrite(command->opcode == SCSI_OP_WRITE_6); request->SetIsWrite(command->opcode == SCSI_OP_WRITE_6);
@@ -320,15 +321,14 @@ ATADevice::SetFeature(int feature)
fTaskFile.write.command = ATA_COMMAND_SET_FEATURES; fTaskFile.write.command = ATA_COMMAND_SET_FEATURES;
fRegisterMask = ATA_MASK_FEATURES; fRegisterMask = ATA_MASK_FEATURES;
status_t result = fChannel->SendRequest(&request, status_t result = fChannel->SendRequest(&request, ATA_DEVICE_READY_REQUIRED);
ATA_DEVICE_READY_REQUIRED);
if (result != B_OK) { if (result != B_OK) {
TRACE_ERROR("sending set feature request failed\n"); TRACE_ERROR("sending set feature request failed\n");
return result; return result;
} }
result = fChannel->FinishRequest(&request, ATA_WAIT_FINISH result = fChannel->FinishRequest(&request,
| ATA_DEVICE_READY_REQUIRED, ATA_ERROR_ABORTED); ATA_WAIT_FINISH | ATA_DEVICE_READY_REQUIRED, ATA_ERROR_ABORTED);
if (result != B_OK) { if (result != B_OK) {
TRACE_ERROR("set feature request failed\n"); TRACE_ERROR("set feature request failed\n");
return result; return result;
@@ -469,27 +469,27 @@ ATADevice::Identify()
fTaskFile.write.command = IsATAPI() ? ATA_COMMAND_IDENTIFY_PACKET_DEVICE fTaskFile.write.command = IsATAPI() ? ATA_COMMAND_IDENTIFY_PACKET_DEVICE
: ATA_COMMAND_IDENTIFY_DEVICE; : ATA_COMMAND_IDENTIFY_DEVICE;
if (fChannel->SendRequest(&request, IsATAPI() ? 0 if (fChannel->SendRequest(&request,
: ATA_DEVICE_READY_REQUIRED) != B_OK) { IsATAPI() ? 0 : ATA_DEVICE_READY_REQUIRED) != B_OK) {
TRACE_ERROR("sending identify request failed\n"); TRACE_ERROR("sending identify request failed\n");
return B_ERROR; return B_ERROR;
} }
if (fChannel->Wait(ATA_STATUS_BUSY | ATA_STATUS_DATA_REQUEST, 0, if (fChannel->Wait(ATA_STATUS_BUSY | ATA_STATUS_DATA_REQUEST, 0,
ATA_WAIT_ANY_BIT, 100 * 1000) != B_OK) { ATA_WAIT_ANY_BIT, 100 * 1000) != B_OK) {
TRACE_ALWAYS("no data request and not busy within 100ms, assuming " TRACE_ALWAYS("no data request and not busy within 100ms, assuming "
"no device present\n"); "no device present\n");
return B_TIMED_OUT; return B_TIMED_OUT;
} }
if (fChannel->Wait(ATA_STATUS_DATA_REQUEST, ATA_STATUS_BUSY, if (fChannel->Wait(ATA_STATUS_DATA_REQUEST, ATA_STATUS_BUSY,
ATA_CHECK_ERROR_BIT | ATA_CHECK_DEVICE_FAULT, IsATAPI() ATA_CHECK_ERROR_BIT | ATA_CHECK_DEVICE_FAULT,
? 20 * 1000 * 1000 : 500 * 1000) != B_OK) { IsATAPI() ? 20 * 1000 * 1000 : 500 * 1000) != B_OK) {
TRACE_ERROR("timeout waiting for identify request\n"); TRACE_ERROR("timeout waiting for identify request\n");
return B_TIMED_OUT; return B_TIMED_OUT;
} }
// get the infoblock // get the infoblock
fChannel->ReadPIO((uint8 *)&fInfoBlock, sizeof(fInfoBlock)); fChannel->ReadPIO((uint8 *)&fInfoBlock, sizeof(fInfoBlock));
if (fChannel->WaitDataRequest(false) != B_OK) { if (fChannel->WaitDataRequest(false) != B_OK) {
@@ -497,8 +497,9 @@ ATADevice::Identify()
return B_ERROR; return B_ERROR;
} }
if (fChannel->FinishRequest(&request, ATA_WAIT_FINISH | (IsATAPI() ? 0 if (fChannel->FinishRequest(&request,
: ATA_DEVICE_READY_REQUIRED), ATA_ERROR_ABORTED) != B_OK) { ATA_WAIT_FINISH | (IsATAPI() ? 0 : ATA_DEVICE_READY_REQUIRED),
ATA_ERROR_ABORTED) != B_OK) {
TRACE_ERROR("failed to finish identify request\n"); TRACE_ERROR("failed to finish identify request\n");
return B_ERROR; return B_ERROR;
} }
@@ -523,8 +524,8 @@ ATADevice::ExecuteReadWrite(ATARequest *request, uint64 address,
return B_ERROR; return B_ERROR;
} }
status_t result = fChannel->SendRequest(request, IsATAPI() status_t result = fChannel->SendRequest(request,
? 0 : ATA_DEVICE_READY_REQUIRED); IsATAPI() ? 0 : ATA_DEVICE_READY_REQUIRED);
if (result != B_OK) { if (result != B_OK) {
TRACE_ERROR("failed to send transfer request\n"); TRACE_ERROR("failed to send transfer request\n");
if (request->UseDMA()) if (request->UseDMA())
@@ -558,7 +559,7 @@ ATADevice::ExecuteReadWrite(ATARequest *request, uint64 address,
} }
} else { } else {
if (fChannel->Wait(ATA_STATUS_DATA_REQUEST, 0, ATA_CHECK_ERROR_BIT if (fChannel->Wait(ATA_STATUS_DATA_REQUEST, 0, ATA_CHECK_ERROR_BIT
| ATA_CHECK_DEVICE_FAULT, request->Timeout()) != B_OK) { | ATA_CHECK_DEVICE_FAULT, request->Timeout()) != B_OK) {
TRACE_ERROR("timeout waiting for device to request data\n"); TRACE_ERROR("timeout waiting for device to request data\n");
request->SetStatus(SCSI_CMD_TIMEOUT); request->SetStatus(SCSI_CMD_TIMEOUT);
return B_TIMED_OUT; return B_TIMED_OUT;
@@ -9,9 +9,11 @@
#include "ATAPrivate.h" #include "ATAPrivate.h"
scsi_for_sim_interface *gSCSIModule = NULL; scsi_for_sim_interface *gSCSIModule = NULL;
device_manager_info *gDeviceManager = NULL; device_manager_info *gDeviceManager = NULL;
static status_t static status_t
ata_sim_init_bus(device_node *node, void **cookie) ata_sim_init_bus(device_node *node, void **cookie)
{ {
@@ -175,8 +177,7 @@ ata_channel_added(device_node *parent)
return B_ERROR; return B_ERROR;
} }
device_attr attributes[] = device_attr attributes[] = {
{
{ {
B_DEVICE_FIXED_CHILD, B_STRING_TYPE, B_DEVICE_FIXED_CHILD, B_STRING_TYPE,
{ string: SCSI_FOR_SIM_MODULE_NAME } { string: SCSI_FOR_SIM_MODULE_NAME }
@@ -5,14 +5,16 @@
#include "ATAPrivate.h" #include "ATAPrivate.h"
ATARequest::ATARequest(bool hasLock) ATARequest::ATARequest(bool hasLock)
: fHasLock(hasLock), :
fDevice(NULL), fHasLock(hasLock),
fTimeout(0), fDevice(NULL),
fBytesLeft(0), fTimeout(0),
fIsWrite(false), fBytesLeft(0),
fUseDMA(false), fIsWrite(false),
fCCB(NULL) fUseDMA(false),
fCCB(NULL)
{ {
if (hasLock) if (hasLock)
mutex_init(&fLock, "ata request"); mutex_init(&fLock, "ata request");
@@ -7,9 +7,11 @@
#include <stdarg.h> #include <stdarg.h>
static char sTraceBuffer[256]; static char sTraceBuffer[256];
static uint32 sTraceBufferOffset = 0; static uint32 sTraceBufferOffset = 0;
void void
ata_trace_printf(uint32 flags, const char *format, ...) ata_trace_printf(uint32 flags, const char *format, ...)
{ {