4 #include "entry_frame.h"
6 #include "jdb_module.h"
7 #include "jdb_kobject.h"
8 #include "static_init.h"
9 #include "thread_object.h"
11 class Jdb_halt_thread : public Jdb_module
14 Jdb_halt_thread() FIASCO_INIT;
16 static Kobject *threadid;
19 Kobject *Jdb_halt_thread::threadid;
22 Jdb_module::Action_code
23 Jdb_halt_thread::action(int cmd, void *&, char const *&, int &)
28 Thread *t = Kobject::dcast<Thread_object*>(threadid);
33 t->regs()->cs(Gdt::gdt_code_kernel | Gdt::Selector_kernel);
34 t->regs()->ip(reinterpret_cast<Address>(&Thread::halt_current));
35 t->regs()->flags(0); // disable interrupts
42 Jdb_module::Cmd const *
43 Jdb_halt_thread::cmds() const
47 { 0, "H", "halt", "%q", "H<threadid>\thalt a specific thread",
56 Jdb_halt_thread::num_cmds() const
62 Jdb_halt_thread::Jdb_halt_thread()
66 static Jdb_halt_thread jdb_halt_thread INIT_PRIORITY(JDB_MODULE_INIT_PRIO);