#include <lunaix/mm/vmm.h>
#include <lunaix/spike.h>
+void
+sata_read_error(struct hba_port* port)
+{
+ uint32_t tfd = port->regs[HBA_RPxTFD];
+ port->device->last_error = (tfd >> 8) & 0xff;
+ port->device->last_status = tfd & 0xff;
+}
+
int
__sata_buffer_io(struct hba_device* dev,
uint64_t lba,
header->options |= HBA_CMDH_WRITE * (write == 1);
uint16_t count = ICEIL(size, port->device->block_size);
- struct sata_reg_fis* fis = table->command_fis;
+ struct sata_reg_fis* fis = (struct sata_reg_fis*)table->command_fis;
if ((port->device->flags & HBA_DEV_FEXTLBA)) {
// 如果该设备支持48位LBA寻址
{
return __sata_buffer_io(dev, lba, buffer, size, 1);
}
-
-void
-sata_read_error(struct hba_port* port)
-{
- uint32_t tfd = port->regs[HBA_RPxTFD];
- port->device->last_error = (tfd >> 8) & 0xff;
- port->device->last_status = tfd & 0xff;
-}
\ No newline at end of file