X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=kern%2Fmonitor.c;h=02f936229d0bd10f127b35a1dc9cc824ed8ef1c9;hb=390b6f25afb04fee925be597381e06ce5a9e8110;hp=babdb72fc8c559cc2dd9e0d763bd95f751d40644;hpb=7f5d3d3799955d4ef380bb9199a8e32c6dc72ae1;p=bertos.git diff --git a/kern/monitor.c b/kern/monitor.c old mode 100755 new mode 100644 index babdb72f..02f93622 --- a/kern/monitor.c +++ b/kern/monitor.c @@ -1,8 +1,33 @@ -/*! +/** * \file * * * \brief Monitor to check for stack overflows @@ -14,6 +39,18 @@ /*#* *#* $Log$ + *#* Revision 1.10 2006/09/20 13:58:42 marco + *#* Used z modifier instead l. + *#* + *#* Revision 1.9 2006/07/19 12:56:27 bernie + *#* Convert to new Doxygen style. + *#* + *#* Revision 1.8 2006/03/22 09:49:22 bernie + *#* Reduce memory usage. + *#* + *#* Revision 1.7 2006/03/13 02:07:14 bernie + *#* Add TODO item. + *#* *#* Revision 1.6 2006/02/24 01:17:05 bernie *#* Update for new emulator. *#* @@ -81,6 +118,7 @@ void monitor_rename(Process *proc, const char* name) proc->monitor.name = name; } +/* TODO: use containerof() */ #define MONITOR_NODE_TO_PROCESS(node) \ (struct Process *)((char *)(node) - offsetof(struct Process, monitor.link)) @@ -139,7 +177,7 @@ void monitor_report(void) p = MONITOR_NODE_TO_PROCESS(p->monitor.link.succ)) { size_t free = monitor_checkStack(p->monitor.stack_base, p->monitor.stack_size); - kprintf("%-24s%8p%8p%8lx%8lx\n", + kprintf("%-24s%8p%8p%8zx%8zx\n", p->monitor.name, p, p->monitor.stack_base, p->monitor.stack_size, free); } } @@ -147,7 +185,7 @@ void monitor_report(void) static void NORETURN monitor(void) { - struct Process* p; + struct Process *p; while (1) { @@ -158,11 +196,8 @@ static void NORETURN monitor(void) size_t free = monitor_checkStack(p->monitor.stack_base, p->monitor.stack_size); if (free < 0x20) - { - kprintf("MONITOR: ***************************************\n"); - kprintf("MONITOR: WARNING: Free stack for process '%s' is only %04x chars\n", p->monitor.name, free); - kprintf("MONITOR: ***************************************\n\n"); - } + kprintf("MONITOR: WARNING: Free stack for process '%s' is only %x chars\n", + p->monitor.name, free); timer_delay(500); }