]> rtime.felk.cvut.cz Git - l4.git/blob - kernel/fiasco/src/jdb/jdb_ipi.cpp
Update
[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(Cpu_number cpu)
22 {
23   Ipi &ipi = Ipi::_ipi.cpu(cpu);
24   printf("CPU%02u sent/rcvd: %lu/%lu\n",
25          cxx::int_value<Cpu_number>(cpu), ipi._stat_sent, ipi._stat_received);
26 }
27
28 PUBLIC
29 Jdb_module::Action_code
30 Jdb_ipi_module::action(int cmd, void *&, char const *&, int &)
31 {
32   if (cmd)
33     return NOTHING;
34
35   Jdb::foreach_cpu(&print_info);
36
37   return NOTHING;
38 }
39
40 PUBLIC
41 int
42 Jdb_ipi_module::num_cmds() const
43 { return 1; }
44
45 PUBLIC
46 Jdb_module::Cmd const *
47 Jdb_ipi_module::cmds() const
48 {
49   static Cmd cs[] =
50     { { 0, "", "ipi", "", "ipi\tIPI information", 0 } };
51
52   return cs;
53 }
54
55 IMPLEMENT
56 Jdb_ipi_module::Jdb_ipi_module()
57   : Jdb_module("INFO")
58 {}