00001 // AUTOMATICALLY GENERATED -- DO NOT EDIT! -*- c++ -*- 00002 00003 #ifndef kernel_thread_i_h 00004 #define kernel_thread_i_h 00005 00006 #include <cstdlib> 00007 #include <cstdio> 00008 00009 #include "config.h" 00010 #include "globals.h" 00011 #include "helping_lock.h" 00012 #include "thread.h" 00013 #include "thread_state.h" 00014 #include "timer.h" 00015 #include "vmem_alloc.h" 00016 00017 #include "config.h" 00018 #include "initcalls.h" 00019 #include "mem_layout.h" 00020 #include "thread.h" 00021 #include "types.h" 00022 #include "space_index.h" 00023 00024 #include "apic.h" 00025 #include "cmdline.h" 00026 #include "config.h" 00027 #include "cpu.h" 00028 #include "irq_alloc.h" 00029 #include "pic.h" 00030 #include "profile.h" 00031 #include "trap_state.h" 00032 #include "watchdog.h" 00033 00034 // 00035 // IMPLEMENTATION of inline functions follows 00036 // 00037 00038 00039 00040 00041 inline Address 00042 Kernel_thread::init_workload_s0_stack() 00043 { 00044 // push address of kernel info page to sigma0's stack 00045 Address sp = Kip::k()->sigma0_sp - 4; 00046 *Mem_layout::boot_data (reinterpret_cast<Address*>(sp)) 00047 = Kmem::virt_to_phys (Kip::k()); 00048 return sp; 00049 } 00050 00051 #endif // kernel_thread_i_h