* Use the ATAInfoblock.h header file instead of redoing it somehow.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36412 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2010-04-22 12:14:05 +00:00
parent 0b46a85e47
commit dba5fcaed8
3 changed files with 10 additions and 27 deletions
+3 -1
View File
@@ -2,6 +2,8 @@ SubDir HAIKU_TOP src add-ons kernel busses scsi ahci ;
UsePrivateHeaders drivers ;
UsePrivateKernelHeaders ;
UseHeaders
[ FDirName $(HAIKU_TOP) src add-ons kernel bus_managers ata ] : true ;
KernelAddon ahci :
ahci.c
@@ -10,4 +12,4 @@ KernelAddon ahci :
ahci_sim.cpp
sata_request.cpp
util.c
;
;
@@ -13,9 +13,10 @@
#include <ByteOrder.h>
#include <KernelExport.h>
#include <ATAInfoblock.h>
#include "ahci_controller.h"
#include "ahci_tracing.h"
#include "ata_cmds.h"
#include "sata_request.h"
#include "scsi_cmds.h"
#include "util.h"
@@ -547,7 +548,7 @@ AHCIPort::ScsiInquiry(scsi_ccb *request)
scsi_cmd_inquiry *cmd = (scsi_cmd_inquiry *)request->cdb;
scsi_res_inquiry scsiData;
ata_res_identify_device ataData;
ata_device_infoblock ataData;
ASSERT(sizeof(ataData) == 512);
@@ -604,10 +605,10 @@ AHCIPort::ScsiInquiry(scsi_ccb *request)
sizeof(scsiData.product_rev));
if (!fIsATAPI) {
bool lba = (ataData.words[49] & (1 << 9)) != 0;
bool lba48 = (ataData.words[83] & (1 << 10)) != 0;
uint32 sectors = *(uint32*)&ataData.words[60];
uint64 sectors48 = *(uint64*)&ataData.words[100];
bool lba = ataData.dma_supported != 0;
bool lba48 = ataData.lba48_supported != 0;
uint32 sectors = ataData.lba_sector_count;
uint64 sectors48 = ataData.lba48_sector_count;
fUse48BitCommands = lba && lba48;
fSectorSize = 512;
fSectorCount = !(lba || sectors) ? 0 : lba48 ? sectors48 : sectors;
@@ -1,20 +0,0 @@
#ifndef _ATA_CMDS_H
#define _ATA_CMDS_H
#include <SupportDefs.h>
struct ata_res_identify_device
{
union {
uint16 words[256];
struct {
uint16 data1[10];
char serial_number[20];
uint16 data2[3];
char firmware_revision[8];
char model_number[40];
};
};
};
#endif