00001 // AUTOMATICALLY GENERATED -- DO NOT EDIT! -*- c++ -*- 00002 00003 #ifndef jdb_timeout_i_h 00004 #define jdb_timeout_i_h 00005 00006 #include "jdb_thread_names.h" 00007 00008 #include <cstdio> 00009 #include <cstring> 00010 00011 #include "config.h" 00012 #include "deadline_timeout.h" 00013 #include "globals.h" 00014 #include "ipc_timeout.h" 00015 #include "jdb.h" 00016 #include "jdb_module.h" 00017 #include "jdb_screen.h" 00018 #include "kernel_console.h" 00019 #include "keycodes.h" 00020 #include "kmem.h" 00021 #include "simpleio.h" 00022 #include "static_init.h" 00023 #include "timeout.h" 00024 #include "timeslice_timeout.h" 00025 #include "thread.h" 00026 00027 00028 class Jdb_list_timeouts : public Jdb_module 00029 { 00030 enum 00031 { 00032 Timeout_ipc = 1, 00033 Timeout_deadline = 2, 00034 Timeout_timeslice = 3, 00035 }; 00036 00037 public: 00038 Jdb_list_timeouts(); 00039 00040 Jdb_module::Action_code action(int cmd, void *&, char const *&, int &); 00041 00042 Jdb_module::Cmd const *const cmds() const; 00043 00044 int const num_cmds() const; 00045 00046 private: 00047 // use implicit knowledge to determine the type of a timeout because we 00048 // cannot use dynamic_cast (we compile with -fno-rtti) 00049 static int get_type(Timeout *t); 00050 00051 static Thread* get_owner(Timeout *t); 00052 00053 static void show_header(); 00054 00055 static void list_timeouts_show_timeout(Timeout *t); 00056 00057 static void list(); 00058 }; 00059 00060 class Jdb_timeout_list 00061 { 00062 private: 00063 static int _count; 00064 static Timeout *_t_start; 00065 00066 public: 00067 static void init(Timeout *t_head); 00068 00069 // _t_start-- if possible 00070 static int line_back(void); 00071 00072 // _t_start++ if possible 00073 static int line_forw(void); 00074 00075 // _t_start -= 24 if possible 00076 static int page_back(void); 00077 00078 // _t_start += 24 if possible 00079 static int page_forw(void); 00080 00081 // _t_start = first element of list 00082 static int goto_home(void); 00083 00084 // _t_start = last element of list 00085 static int goto_end(void); 00086 00087 static int lookup(Timeout *t_search); 00088 00089 static Timeout* index(int y); 00090 00091 static int page_show(void (*show)(Timeout *t)); 00092 00093 private: 00094 static bool iter(int count, Timeout **t_start, void (*iter)(Timeout *t)=0); 00095 }; 00096 00097 #endif // jdb_timeout_i_h