8 /// reflect symbols in linker script
9 static const char load asm ("_load");
10 static const char image_start asm ("_kernel_image_start");
11 static const char start asm ("_start");
12 static const char end asm ("_end");
13 static const char ecode asm ("_ecode");
14 static const char etext asm ("_etext");
15 static const char data_start asm ("_kernel_data_start");
16 static const char edata asm ("_edata");
17 static const char initcall_start asm ("_initcall_start");
18 static const char initcall_end asm ("_initcall_end");
20 static Mword in_tcbs (Address a); // FIXME
21 static Mword in_kernel (Address a); // XXX: not right for UX
30 Mem_layout::is_caps_area(Address a)
31 { return (a >= Caps_start) && (a < Caps_end); }
35 Mem_layout::user_utcb_ptr(unsigned cpu)
36 { return reinterpret_cast<User<Utcb>::Ptr*>(Utcb_ptr_page)[cpu]; }
40 Mem_layout::in_kernel (Address a)
47 Mem_layout::in_kernel_code (Address a)
49 return a >= (Address)&start && a < (Address)&ecode;