4 #include "trap_state.h"
7 class Jdb_entry_frame : public Trap_state
10 Address_type from_user() const;
12 bool debug_ipi() const;
15 class Jdb_output_frame : public Jdb_entry_frame
18 class Jdb_status_page_frame : public Jdb_entry_frame
21 class Jdb_log_frame : public Jdb_entry_frame
24 class Jdb_log_3val_frame : public Jdb_log_frame
27 class Jdb_debug_frame : public Jdb_entry_frame
30 class Jdb_symbols_frame : public Jdb_debug_frame
33 class Jdb_lines_frame : public Jdb_debug_frame
36 class Jdb_get_cputime_frame : public Jdb_entry_frame
39 class Jdb_thread_name_frame : public Jdb_entry_frame
42 //---------------------------------------------------------------------------
46 #include "processor.h"
51 Jdb_entry_frame::dump() const
54 "R[ 0- 3]: %08lx %08lx %08lx %08lx\n"
55 "R[ 4- 7]: %08lx %08lx %08lx %08lx\n"
56 "R[ 8-11]: %08lx %08lx %08lx %08lx\n"
57 "R[12-15]: %08lx %08lx %08lx %08lx\n"
58 "kernel sp = %08lx cpsr = %08lx spsr = %08lx\n",
59 r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8],
60 r[9], r[10], r[11], r[12], r[13], r[14], pc, ksp, cpsr, spsr);
66 Jdb_entry_frame::debug_ipi() const
67 { return error_code == 0x00e00002; }
69 IMPLEMENT inline NEEDS["processor.h"]
71 Jdb_entry_frame::from_user() const
73 return (psr & Proc::Status_mode_mask) == Proc::Status_mode_user
74 ? ADDR_USER : ADDR_KERNEL;
78 Address Jdb_entry_frame::ksp() const
79 { return Address(this); }
82 Address Jdb_entry_frame::ip() const
87 Jdb_entry_frame::param() const
93 Jdb_log_frame::str() const
94 { return (Unsigned8*)r[1]; }
96 PUBLIC inline NEEDS["tb_entry.h"]
98 Jdb_log_frame::set_tb_entry(Tb_entry* tb_entry)
99 { r[0] = (Mword)tb_entry; }
101 //---------------------------------------------------------------------------
104 Jdb_log_3val_frame::val1() const
109 Jdb_log_3val_frame::val2() const
114 Jdb_log_3val_frame::val3() const
117 //---------------------------------------------------------------------------
120 Jdb_status_page_frame::set(Address status_page)
121 { r[0] = (Mword)status_page; }