Further parse AHCI information.

Send an IDENTIFY command to each drive and set up a hook to handle
interrupts.
This commit is contained in:
Drew Galbraith 2023-06-12 19:20:51 -07:00
parent 4e1888bd24
commit 0f0e39d1e9
25 changed files with 721 additions and 90 deletions

View file

@ -43,6 +43,14 @@
#define Z_CHANNEL_RECV 0x42
#define Z_CHANNEL_SENDRECV 0x43
#define Z_PORT_CREATE 0x50
#define Z_PORT_SEND 0x51
#define Z_PORT_RECV 0x52
#define Z_IRQ_REGISTER 0x58
#define Z_IRQ_PCI_BASE 0x30
// Debugging Calls.
#define Z_DEBUG_PRINT 0x10000000
@ -70,6 +78,10 @@ void ZThreadExit();
[[nodiscard]] z_err_t ZMemoryObjectCreate(uint64_t size, uint64_t* vmmo_cap);
[[nodiscard]] z_err_t ZMemoryObjectCreatePhysical(uint64_t paddr, uint64_t size,
uint64_t* vmmo_cap);
[[nodiscard]] z_err_t ZMemoryObjectCreateContiguous(uint64_t size,
uint64_t* vmmo_cap,
uint64_t* paddr);
[[nodiscard]] z_err_t ZTempPcieConfigObjectCreate(uint64_t* vmmo_cap,
uint64_t* vmmo_size);
@ -83,4 +95,10 @@ void ZThreadExit();
uint64_t* actual_bytes,
uint64_t* actual_caps);
[[nodiscard]] z_err_t ZPortRecv(uint64_t port_cap, uint64_t num_bytes,
uint8_t* bytes, uint64_t num_caps,
uint64_t* caps, uint64_t* type,
uint64_t* actual_bytes, uint64_t* actual_caps);
[[nodiscard]] z_err_t ZIrqRegister(uint64_t irq_num, uint64_t* port_cap);
[[nodiscard]] z_err_t ZDebug(const char* message);