kth: Remove irq_state from sem_.*irqsave's interface
[akaros.git] / kern / src / monitor.c
index be56b11..3f26125 100644 (file)
@@ -2,7 +2,6 @@
 // controlling the kernel and exploring the system interactively.
 
 #include <arch/arch.h>
-#include <stab.h>
 #include <smp.h>
 #include <arch/console.h>
 
@@ -24,6 +23,7 @@
 #include <trap.h>
 #include <time.h>
 #include <percpu.h>
+#include <kprof.h>
 
 #include <ros/memlayout.h>
 #include <ros/event.h>
@@ -74,6 +74,7 @@ static command_t commands[] = {
        { "hd", "Hexdump PID's memory (0 for kernel)", mon_hexdump},
        { "pahexdump", "Hexdump physical memory", mon_pahexdump},
        { "phd", "Hexdump physical memory", mon_pahexdump},
+       { "dmesg", "Dump the dmesg buffer", mon_dmesg},
 };
 #define NCOMMANDS (sizeof(commands)/sizeof(commands[0]))
 
@@ -1004,14 +1005,14 @@ int mon_db(int argc, char **argv, struct hw_trapframe *hw_tf)
 
        if (argc < 2) {
                printk("Usage: db OPTION\n");
-               printk("\tsem [PID]: print all semaphore info\n");
+               printk("\tblk [PID]: print all blocked kthreads\n");
                printk("\taddr PID 0xADDR: for PID lookup ADDR's file/vmr info\n");
                return 1;
        }
-       if (!strcmp(argv[1], "sem")) {
+       if (!strcmp(argv[1], "blk") || !strcmp(argv[1], "sem")) {
                if (argc > 2)
                        pid = strtol(argv[2], 0, 0);
-               print_all_sem_info(pid);
+               print_db_blk_info(pid);
        } else if (!strcmp(argv[1], "addr")) {
                if (argc < 4) {
                        printk("Usage: db addr PID 0xADDR\n");
@@ -1211,3 +1212,9 @@ int mon_pahexdump(int argc, char **argv, struct hw_trapframe *hw_tf)
        pahexdump(start, len);
        return 0;
 }
+
+int mon_dmesg(int argc, char **argv, struct hw_trapframe *hw_tf)
+{
+       kprof_dump_data();
+       return 0;
+}