From 37bd000b189378dfe27ed61f6441673ca99666c1 Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Tue, 22 Apr 2025 11:22:42 -0400 Subject: make pit ticks volatile, disable reload for now since broken --- kernel/drivers/pit.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'kernel/drivers/pit.c') diff --git a/kernel/drivers/pit.c b/kernel/drivers/pit.c index a8fe179..1a05f03 100644 --- a/kernel/drivers/pit.c +++ b/kernel/drivers/pit.c @@ -6,7 +6,7 @@ #define CHAN_2 0x42 #define CMD 0x43 -uint64_t ticks = 0; +volatile uint64_t ticks = 0; uint16_t pit_read_divider(void) { @@ -21,8 +21,9 @@ uint16_t pit_read_divider(void) void pit_set_divider(uint16_t count) { - cli(); - outb(CHAN_0, count & 0xFF); // low byte - outb(CHAN_0, (count & 0xFF00) >> 8); // high byte - sti(); + // FIXME: broken on -O0 + // cli(); + // outb(CHAN_0, count & 0xFF); // low byte + // outb(CHAN_0, (count & 0xFF00) >> 8); // high byte + // sti(); } -- cgit v1.2.3-freya From ba4392e4a912ea2d5886dc03c9fed324ccaf135c Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Tue, 22 Apr 2025 11:23:19 -0400 Subject: fix warning --- kernel/drivers/pit.c | 1 + 1 file changed, 1 insertion(+) (limited to 'kernel/drivers/pit.c') diff --git a/kernel/drivers/pit.c b/kernel/drivers/pit.c index 1a05f03..b0d10d9 100644 --- a/kernel/drivers/pit.c +++ b/kernel/drivers/pit.c @@ -21,6 +21,7 @@ uint16_t pit_read_divider(void) void pit_set_divider(uint16_t count) { + (void) count; // FIXME: broken on -O0 // cli(); // outb(CHAN_0, count & 0xFF); // low byte -- cgit v1.2.3-freya From c8ad77d642d50c3d137d8d50c474b2b812722deb Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Tue, 22 Apr 2025 13:18:41 -0400 Subject: fmt --- kernel/drivers/pit.c | 2 +- kernel/fs/fs.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'kernel/drivers/pit.c') diff --git a/kernel/drivers/pit.c b/kernel/drivers/pit.c index b0d10d9..d77df08 100644 --- a/kernel/drivers/pit.c +++ b/kernel/drivers/pit.c @@ -21,7 +21,7 @@ uint16_t pit_read_divider(void) void pit_set_divider(uint16_t count) { - (void) count; + (void)count; // FIXME: broken on -O0 // cli(); // outb(CHAN_0, count & 0xFF); // low byte diff --git a/kernel/fs/fs.c b/kernel/fs/fs.c index 5f53c6d..8c918b6 100644 --- a/kernel/fs/fs.c +++ b/kernel/fs/fs.c @@ -127,7 +127,7 @@ static int disk_read_ata(struct disk *disk, size_t offset, size_t len, return 1; // copy over to buffer - memcpy(buffer, (char*)atabuf + err, len); + memcpy(buffer, (char *)atabuf + err, len); return ret; } @@ -186,7 +186,7 @@ static int disk_write_ata(struct disk *disk, size_t offset, size_t len, return 1; // copy custom data over - memcpy((char*)atabuf + err, buffer, len); + memcpy((char *)atabuf + err, buffer, len); // write back sectors if ((ret = ide_device_write_sectors(disk->ide, numsects, -- cgit v1.2.3-freya