From 958696be616aaaa4fe18fc2b886216f191bb6f9b Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Sun, 13 Feb 2022 01:54:51 -0700 Subject: Mutex Waiting Implemented Svc 4 and 5 --- src/tests/test.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'src/tests/test.c') diff --git a/src/tests/test.c b/src/tests/test.c index f6213ae..af906cc 100644 --- a/src/tests/test.c +++ b/src/tests/test.c @@ -4,8 +4,10 @@ #include #include #include +#include extern void atest(void); +void btest(void); void test_entry(void) { @@ -27,4 +29,47 @@ void test_entry(void) dt += tf - ti; DRAW64(34, 19, dt/64); DRAW64(34+17, 19, dt%64); + btest(); +} + +static struct Mutex testm = {.addr = 0, .pid = 0}; +static int testi = 0; + +void ctest1(void) +{ + uart_string("1 Started\n"); + sys1(4, &testm); + uart_string("1 Finished\n"); +} + +void ctest2(void) +{ + uart_string("2 Started\n"); + sys1(4, &testm); + uart_string("2 Finished\n"); + sys1(5, &testm); +} + +void ctest3(void) +{ + uart_string("3 Started\n"); + sys1(5, &testm); + uart_string("3 Finished\n"); +} + +void btest(void) +{ + if (testi % 3 == 0) { + testi++; + ctest1(); + } + else if (testi % 3 == 1) { + testi++; + ctest2(); + } + else if (testi % 3 == 2) { + testi++; + ctest3(); + } + uart_hexn(&testm); } -- cgit v1.2.1