syscall test
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
// vim: set noet ts=4 sw=4:
|
||||
|
||||
#include "appl.h"
|
||||
#include "../../syscall/stub.h"
|
||||
|
||||
#include "../../arch/core.h"
|
||||
#include "../../arch/system.h"
|
||||
@@ -16,26 +17,29 @@ extern Application apps[];
|
||||
|
||||
void Application::action() { // NOLINT
|
||||
// Thread 1 may be an auxiliary thread
|
||||
|
||||
sys_test(1,2,3,4,5);
|
||||
|
||||
unsigned id = 0;
|
||||
while (&apps[id++] != this);
|
||||
for (unsigned i = 0;; ++i) {
|
||||
// Make sure that we can use kout exclusively due to the hardware cursor
|
||||
// otherwise we'd get a word jumble
|
||||
koutsem.p(Guard::enter().vault());
|
||||
kout.setPos(0U, id);
|
||||
kout << i;
|
||||
kout.flush();
|
||||
koutsem.v(Guard::enter().vault());
|
||||
// XXX: Doing this (the first time) in TASK 16 breaks all scheduling
|
||||
if (i == 10000) {
|
||||
if (id % 2 == 1) {
|
||||
Guard::enter().vault().scheduler.kill(&apps[id - 1]);
|
||||
}
|
||||
}
|
||||
Guard::enter().vault().scheduler.resume();
|
||||
if (id > 1) {
|
||||
Guarded g = Guard::enter();
|
||||
g.vault().bellringer.sleep(g.vault(), id * id * 10);
|
||||
}
|
||||
//// Make sure that we can use kout exclusively due to the hardware cursor
|
||||
//// otherwise we'd get a word jumble
|
||||
//koutsem.p(Guard::enter().vault());
|
||||
//kout.setPos(0U, id);
|
||||
//kout << i;
|
||||
//kout.flush();
|
||||
//koutsem.v(Guard::enter().vault());
|
||||
//// XXX: Doing this (the first time) in TASK 16 breaks all scheduling
|
||||
//if (i == 10000) {
|
||||
// if (id % 2 == 1) {
|
||||
// Guard::enter().vault().scheduler.kill(&apps[id - 1]);
|
||||
// }
|
||||
//}
|
||||
//Guard::enter().vault().scheduler.resume();
|
||||
//if (id > 1) {
|
||||
// Guarded g = Guard::enter();
|
||||
// g.vault().bellringer.sleep(g.vault(), id * id * 10);
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user