diff options
author | Freya Murphy <freya@freyacat.org> | 2025-04-20 19:56:27 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2025-04-20 23:44:40 -0400 |
commit | 0b677d872e111e332c2f248d003a076370467100 (patch) | |
tree | 4463ad63ccc35ac971eb690c05fabc633ee096ee /kernel | |
parent | generate disk image as make step (diff) | |
download | comus-0b677d872e111e332c2f248d003a076370467100.tar.gz comus-0b677d872e111e332c2f248d003a076370467100.tar.bz2 comus-0b677d872e111e332c2f248d003a076370467100.zip |
ata fin
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/drivers/pit.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/kernel/drivers/pit.c b/kernel/drivers/pit.c index fd42084..5b15dd9 100644 --- a/kernel/drivers/pit.c +++ b/kernel/drivers/pit.c @@ -8,18 +8,19 @@ uint64_t ticks = 0; -uint16_t pit_read_divider(void) -{ +uint16_t pit_read_divider(void) { uint16_t count = 0; cli(); outb(CMD, 0); // clear bits count = inb(CHAN_0); // low byte - count |= inb(CHAN_0) << 8; // highbyte + count |= inb(CHAN_0)<<8; // highbyte + sti(); return count; } -void pit_set_divider(uint16_t count) -{ +void pit_set_divider(uint16_t count) { + cli(); outb(CHAN_0, count & 0xFF); // low byte outb(CHAN_0, (count & 0xFF00) >> 8); // high byte + sti(); } |