00001 // AUTOMATICALLY GENERATED -- DO NOT EDIT! -*- c++ -*- 00002 00003 #ifndef jdb_thread_names_h 00004 #define jdb_thread_names_h 00005 00006 #include "config.h" 00007 #include "l4_types.h" 00008 #include "initcalls.h" 00009 00010 // 00011 // INTERFACE definition follows 00012 // 00013 00014 00015 class Name_entry 00016 { 00017 public: 00018 enum 00019 { 00020 Size = 19, 00021 }; 00022 00023 private: 00024 Global_id _id; 00025 char _name[Size]; 00026 00027 public: 00028 inline bool is_invalid() const; 00029 00030 inline void invalidate(); 00031 00032 inline Global_id id() const; 00033 00034 inline const char * name() const; 00035 00036 void set(Global_id id, const char *name); 00037 }; 00038 00039 class Jdb_thread_names 00040 { 00041 private: 00042 enum 00043 { 00044 Name_pages = 2, 00045 Name_entries = (Name_pages<<Config::PAGE_SHIFT) / sizeof(Name_entry), 00046 }; 00047 00048 static Name_entry *_names; 00049 00050 public: 00051 static FIASCO_INIT void init(); 00052 00053 static void register_thread(Global_id id, const char *name); 00054 00055 static Name_entry * lookup(Global_id id); 00056 }; 00057 00058 // 00059 // IMPLEMENTATION of inline functions (and needed classes) 00060 // 00061 00062 00063 00064 00065 inline const char * 00066 Name_entry::name() const 00067 { return this ? _name : ""; } 00068 00069 #endif // jdb_thread_names_h