summaryrefslogtreecommitdiff
path: root/kc/core/pit8253.c
diff options
context:
space:
mode:
authorAda Christine <adachristine18@gmail.com>2022-02-18 01:31:03 +0000
committerAda Christine <adachristine18@gmail.com>2022-02-18 01:31:03 +0000
commit606b7dc226cb51077c016a8ea5fa862ac6ce1db4 (patch)
tree06188c7da4d7ce3ba53aba3ebf8be3a98665aed1 /kc/core/pit8253.c
parent67d43fd64099a8ce51ad107e6f27bbdc6a52d852 (diff)
bug fixes
- needed an atomic_load() when getting the count in pic8253_nanoseconds_elapsed() - i was deleting half the bits of the outgoing task's stack in cpu_task.S (oops) - updated .gdbint. TODO: automate laoding section offsets correctly
Diffstat (limited to 'kc/core/pit8253.c')
-rw-r--r--kc/core/pit8253.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/kc/core/pit8253.c b/kc/core/pit8253.c
index 4728020..6f6256a 100644
--- a/kc/core/pit8253.c
+++ b/kc/core/pit8253.c
@@ -21,7 +21,7 @@
static void pit8253_set_divisor(uint16_t divisor);
-static atomic_uint_fast64_t count = 0;
+static volatile atomic_uint_fast64_t count = 0;
static uint16_t divisor = 0;
const struct timer_source pit8253_timer_source =
@@ -82,7 +82,7 @@ uint32_t pit8253_get_frequency(void)
uint64_t pit8253_nanoseconds_elapsed(void)
{
- return pit8253_nanoseconds_delta() * count;
+ return pit8253_nanoseconds_delta() * atomic_load(&count);
}
uint64_t pit8253_nanoseconds_delta(void)