From 74e6646b5c4d4363ec0f339d33e3adb6659737e8 Mon Sep 17 00:00:00 2001 From: Ian McFarlane Date: Sun, 20 Apr 2025 14:19:33 -0400 Subject: added initialization but it is untested --- kernel/include/comus/asm.h | 7 ++++++- kernel/include/comus/drivers/ata.h | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) (limited to 'kernel/include') diff --git a/kernel/include/comus/asm.h b/kernel/include/comus/asm.h index 5e1dce7..87393eb 100644 --- a/kernel/include/comus/asm.h +++ b/kernel/include/comus/asm.h @@ -26,10 +26,15 @@ static inline void outw(uint16_t port, uint16_t val) __asm__ volatile("outw %0, %1" : : "a"(val), "Nd"(port)); } +#define __inl_nocall(port, out_uint32) \ + do { \ + __asm__ volatile("inl %1, %0" : "=a"(out_uint32) : "Nd"(port)); \ + } while (0); + static inline uint32_t inl(uint16_t port) { uint32_t ret; - __asm__ volatile("inl %1, %0" : "=a"(ret) : "Nd"(port)); + __inl_nocall(port, ret); return ret; } diff --git a/kernel/include/comus/drivers/ata.h b/kernel/include/comus/drivers/ata.h index e69de29..a9770c8 100644 --- a/kernel/include/comus/drivers/ata.h +++ b/kernel/include/comus/drivers/ata.h @@ -0,0 +1,14 @@ +#ifndef ATA_H_ +#define ATA_H_ + +/* + * @file ata.h + * + * @author Ian McFarlane + * + * ATA driver + */ + +void ata_init(void); + +#endif -- cgit v1.2.3-freya