From 8dde461b65798cc1552a860dcec148a7c261f461 Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Sun, 27 Apr 2025 15:39:01 -0400 Subject: better rep insw --- kernel/include/comus/asm.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'kernel') diff --git a/kernel/include/comus/asm.h b/kernel/include/comus/asm.h index c7597e7..a6a8a45 100644 --- a/kernel/include/comus/asm.h +++ b/kernel/include/comus/asm.h @@ -36,8 +36,7 @@ static inline uint16_t inw(uint16_t port) static inline void rep_inw(uint16_t port, uint16_t *buffer, size_t count) { - while (count--) - *(buffer++) = inw(port); + __asm__ volatile("rep insw" : "+D"(buffer), "+c"(count) : "d"(port) : "memory"); } static inline void outw(uint16_t port, uint16_t val) -- cgit v1.2.3-freya