summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-04-20 19:56:27 -0400
committerFreya Murphy <freya@freyacat.org>2025-04-20 23:44:40 -0400
commit0b677d872e111e332c2f248d003a076370467100 (patch)
tree4463ad63ccc35ac971eb690c05fabc633ee096ee /kernel
parentgenerate disk image as make step (diff)
downloadcomus-0b677d872e111e332c2f248d003a076370467100.tar.gz
comus-0b677d872e111e332c2f248d003a076370467100.tar.bz2
comus-0b677d872e111e332c2f248d003a076370467100.zip
ata fin
Diffstat (limited to 'kernel')
-rw-r--r--kernel/drivers/pit.c11
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();
}