[Denali] Move AHCI read to internal method as well.
This commit is contained in:
parent
3e1da2bc90
commit
69ce3028fa
6 changed files with 19 additions and 117 deletions
|
|
@ -1,39 +1,10 @@
|
|||
#pragma once
|
||||
|
||||
#include <mammoth/sync/semaphore.h>
|
||||
#include <mammoth/util/memory_region.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "ahci/ahci.h"
|
||||
|
||||
class AhciPort;
|
||||
|
||||
struct CommandInfo {
|
||||
uint8_t command;
|
||||
uint64_t lba;
|
||||
uint16_t sectors;
|
||||
uint64_t paddr;
|
||||
};
|
||||
|
||||
class Command {
|
||||
public:
|
||||
Command() = default;
|
||||
virtual ~Command();
|
||||
virtual void PopulateFis(uint8_t* command_fis) const = 0;
|
||||
virtual void PopulatePrdt(PhysicalRegionDescriptor* prdt) const = 0;
|
||||
};
|
||||
|
||||
class DmaReadCommand : public Command {
|
||||
public:
|
||||
DmaReadCommand(uint64_t lba, uint64_t sector_cnt, uint64_t dest_paddr);
|
||||
|
||||
virtual ~DmaReadCommand() override;
|
||||
|
||||
void PopulateFis(uint8_t* command_fis) const override;
|
||||
void PopulatePrdt(PhysicalRegionDescriptor* prdt) const override;
|
||||
|
||||
private:
|
||||
uint64_t lba_;
|
||||
uint64_t sector_cnt_;
|
||||
uint64_t paddr_;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue