PCI-IDE interrupt based driver fixes, works on QEMU

This commit is contained in:
2026-03-15 10:15:01 +01:00
parent 3c10b76b3f
commit 5b432b2b01
6 changed files with 167 additions and 132 deletions

View File

@@ -19,14 +19,13 @@ struct idedrv_init {
size_t sector_size;
uint16_t io, ctrl;
uint8_t devno;
uint8_t primscnd;
uint8_t irq;
};
struct idedrv_request {
uint16_t* buffer;
size_t sector_done_count;
size_t sector_count;
struct list_node_link requests_link;
int type;
atomic_int done;
};
@@ -38,9 +37,8 @@ struct idedrv {
size_t sector_size;
uint16_t io, ctrl;
uint8_t devno;
uint8_t primscnd;
struct list_node_link* requests;
uint8_t irq;
struct idedrv_request* current_req;
};
struct ide_probe {
@@ -49,7 +47,7 @@ struct ide_probe {
size_t sector_size;
uint16_t io, ctrl;
uint8_t devno;
uint8_t primscnd;
uint8_t irq;
};
bool idedrv_init (struct device* device, void* arg, struct proc* proc, struct reschedule_ctx* rctx);