]> rtime.felk.cvut.cz Git - l4.git/blob - kernel/fiasco/src/jdb/jdb_ipi.cpp
cde9d2b04d740ab4b9b588e50a772a7ef3b5c8d3
[l4.git] / kernel / fiasco / src / jdb / jdb_ipi.cpp
1 IMPLEMENTATION [mp]:
2
3 #include <cstdio>
4 #include "simpleio.h"
5
6 #include "jdb.h"
7 #include "jdb_module.h"
8 #include "static_init.h"
9 #include "types.h"
10
11 class Jdb_ipi_module : public Jdb_module
12 {
13 public:
14   Jdb_ipi_module() FIASCO_INIT;
15 };
16
17 static Jdb_ipi_module jdb_ipi_module INIT_PRIORITY(JDB_MODULE_INIT_PRIO);
18
19 PRIVATE static
20 void
21 Jdb_ipi_module::print_info(unsigned cpu)
22 {
23   printf("CPU%02u sent/rcvd: %ld/%ld\n",
24          cpu, Ipi::_stat_sent.cpu(cpu), Ipi::_stat_received.cpu(cpu));
25 }
26
27 PUBLIC
28 Jdb_module::Action_code
29 Jdb_ipi_module::action(int cmd, void *&, char const *&, int &)
30 {
31   if (cmd)
32     return NOTHING;
33
34   Jdb::foreach_cpu(&print_info);
35
36   return NOTHING;
37 }
38
39 PUBLIC
40 int
41 Jdb_ipi_module::num_cmds() const
42 { return 1; }
43
44 PUBLIC
45 Jdb_module::Cmd const *
46 Jdb_ipi_module::cmds() const
47 {
48   static Cmd cs[] =
49     { { 0, "", "ipi", "", "ipi\tIPI information", 0 } };
50
51   return cs;
52 }
53
54 IMPLEMENT
55 Jdb_ipi_module::Jdb_ipi_module()
56   : Jdb_module("INFO")
57 {}