IDE interrupt based driver
All checks were successful
Build documentation / build-and-deploy (push) Successful in 3m36s

This commit is contained in:
2026-03-14 16:40:03 +01:00
parent 217179c9a0
commit 3c10b76b3f
19 changed files with 199 additions and 195 deletions

View File

@@ -23,12 +23,12 @@ struct idedrv_init {
};
struct idedrv_request {
uint16_t* outbuffer;
uint16_t* buffer;
size_t sector_done_count;
size_t sector_count;
struct list_node_link requests_link;
struct proc_suspension_q sq;
int rw;
int type;
atomic_int done;
};
struct idedrv {
@@ -56,20 +56,20 @@ bool idedrv_init (struct device* device, void* arg, struct proc* proc, struct re
void idedrv_fini (struct device* device, struct proc* proc, struct reschedule_ctx* rctx);
int idedrv_read (struct device* device, struct proc* proc, struct reschedule_ctx* rctx, void* a1,
void* a2, void* a3, void* a4);
int idedrv_read (struct device* device, struct proc* proc, struct reschedule_ctx* rctx,
uint64_t* lockflags, void* a1, void* a2, void* a3, void* a4);
int idedrv_write (struct device* device, struct proc* proc, struct reschedule_ctx* rctx, void* a1,
void* a2, void* a3, void* a4);
int idedrv_write (struct device* device, struct proc* proc, struct reschedule_ctx* rctx,
uint64_t* lockflags, void* a1, void* a2, void* a3, void* a4);
int idedrv_get_device_type (struct device* device, struct proc* proc, struct reschedule_ctx* rctx,
void* a1, void* a2, void* a3, void* a4);
uint64_t* lockflags, void* a1, void* a2, void* a3, void* a4);
int idedrv_get_sector_size (struct device* device, struct proc* proc, struct reschedule_ctx* rctx,
void* a1, void* a2, void* a3, void* a4);
uint64_t* lockflags, void* a1, void* a2, void* a3, void* a4);
int idedrv_get_size (struct device* device, struct proc* proc, struct reschedule_ctx* rctx,
void* a1, void* a2, void* a3, void* a4);
uint64_t* lockflags, void* a1, void* a2, void* a3, void* a4);
void ide_probe (uint16_t io, uint16_t ctrl, uint8_t devno, struct ide_probe* probe);