Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

kip.h

Go to the documentation of this file.
00001 // AUTOMATICALLY GENERATED -- DO NOT EDIT!         -*- c++ -*-
00002 
00003 #ifndef kip_h
00004 #define kip_h
00005 
00006 #include "types.h"
00007 
00008 #include "types.h"
00009 
00010 //
00011 // INTERFACE definition follows 
00012 //
00013 
00014 
00015 class Kip
00016 {
00017 public:
00018   void print() const;
00019 
00020   char const *version_string() const;
00021 
00022   // returns the 1st address beyond all available physical memory
00023   Address main_memory_high() const;
00024 
00025 private:
00026   static Kip *global_kip asm ("GLOBAL_KIP");
00027 private:
00028 
00029 public:
00030 
00031   /* 00 */
00032   Mword magic;
00033   Mword version;
00034   Unsigned8 offset_version_strings;
00035   Unsigned8 reserved[3];
00036   Unsigned8 kip_sys_calls;
00037   Unsigned8 reserved01[3];
00038 
00039   /* the following stuff is undocumented; we assume that the kernel
00040      info page is located at offset 0x1000 into the L4 kernel boot
00041      image so that these declarations are consistent with section 2.9
00042      of the L4 Reference Manual */
00043 
00044   /* 10 */
00045   Mword init_default_kdebug, default_kdebug_exception,
00046   sched_granularity, default_kdebug_end;
00047 
00048   /* 20 */
00049   Mword sigma0_sp, sigma0_ip;
00050   l4_low_high_t sigma0_memory;
00051 
00052   /* 30 */
00053   Mword sigma1_sp, sigma1_ip;
00054   l4_low_high_t sigma1_memory;
00055 
00056   /* 40 */
00057   Mword root_sp, root_ip;
00058   l4_low_high_t root_memory;
00059 
00060   /* 50 */
00061   Mword l4_config;
00062   Mword reserved2;
00063   Mword kdebug_config;
00064   Mword kdebug_permission;
00065 
00066   /* 60 */
00067   l4_low_high_t main_memory;
00068   l4_low_high_t reserved0;
00069 
00070   /* 70 */
00071   l4_low_high_t reserved1;
00072   l4_low_high_t semi_reserved;
00073 
00074   /* 80 */
00075   l4_low_high_t dedicated[4];
00076 
00077   /* A0 */
00078   volatile Cpu_time clock;
00079   volatile Cpu_time switch_time;
00080 
00081   /* B0 */
00082   Mword frequency_cpu;
00083   Mword frequency_bus;
00084   volatile Cpu_time thread_time;
00085 
00086   /* C0 */
00087   Mword sys_ipc;
00088   Mword sys_id_nearest;
00089   Mword sys_fpage_unmap;
00090   Mword sys_thread_switch;
00091 
00092   /* D0 */
00093   Mword sys_thread_schedule;
00094   Mword sys_lthread_ex_regs;
00095   Mword sys_task_new;
00096   Mword unused_6;
00097 
00098   /* E0 */
00099   char  version_strings[512];
00100 
00101   /* 2E0 */
00102   char  sys_calls[256];
00103 
00104   /* 3E0 */
00105   char  pad[288];
00106 
00107   /* ======================================== */
00108 
00109   /* 0x500,
00110    *   Here resides the LIPC code. If the offset changes, then application
00111    *   LIPC binding needs to be adjusted.
00112    */
00113   char  lipc_code[256];
00114 
00115 public:  
00116   static inline void init_global_kip(Kip *kip);
00117   
00118   static inline Kip *const k();
00119 };
00120 
00121 #define L4_KERNEL_INFO_MAGIC (0x4BE6344CL) /* "L4ľK" */
00122 /*
00123  * IA-32 Kernel-Info Page
00124  */
00125 
00126 
00127 //
00128 // IMPLEMENTATION of inline functions (and needed classes)
00129 //
00130 
00131 
00132 inline void Kip::init_global_kip(Kip *kip) { global_kip = kip; }
00133 
00134 inline Kip *const Kip::k() { return global_kip; }
00135 
00136 
00137 
00138 inline Address Kip::main_memory_high() const
00139 { 
00140   return main_memory.high; 
00141 }
00142 
00143 #endif // kip_h

Generated on Mon Sep 26 14:20:11 2005 for Fiasco by  doxygen 1.4.2