aboutsummaryrefslogtreecommitdiff
path: root/kernel/ctrl.c
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2012-03-06 04:32:57 +0000
committerDimitri Sokolyuk <demon@dim13.org>2012-03-06 04:32:57 +0000
commit72df3d8292c5c0c5713c88ded50b12b2226c56d9 (patch)
tree4b10031e8a76f51b3a8ff25a5e8fbb545affff4f /kernel/ctrl.c
parent17fa9164ec9b3e12e01c47ff7bcf3f35487fc407 (diff)
add reboot function
Diffstat (limited to 'kernel/ctrl.c')
-rw-r--r--kernel/ctrl.c29
1 files changed, 21 insertions, 8 deletions
diff --git a/kernel/ctrl.c b/kernel/ctrl.c
index 1f802db..3d26f07 100644
--- a/kernel/ctrl.c
+++ b/kernel/ctrl.c
@@ -24,15 +24,28 @@
void
ctrl(void *arg)
{
- struct ctrlarg *a = arg;
+ int c;
for (;;) {
- sprintf(a->lcd->first, "%8lx", now());
- sprintf(a->lcd->second, "%4d:%.2d:%.2d:%.2d",
- a->clock->d,
- a->clock->h,
- a->clock->m,
- a->clock->s);
- sleep(MSEC(500));
+ c = fgetc(stdin);
+
+ switch (c) {
+ case '-':
+ reboot();
+ break;
+ case 'n':
+ fprintf(stdout, "\r%ld\n", now());
+ break;
+ case 'r':
+ fprintf(stdout, "\r%d\n", rqlen());
+ break;
+ case 't':
+ fprintf(stdout, "\r%d\n", running());
+ break;
+ default:
+ break;
+ }
+
+ yield();
}
}