5 //------------------------------------------------------------------------------
8 #include "mem_layout.h"
9 #include "kernel_task.h"
10 #include "mem_space.h"
11 #include "vmem_alloc.h"
18 Mword *sys_calls = (Mword *)Mem_layout::Syscalls_phys;
19 for(unsigned i = 0; i < Config::PAGE_SIZE; i += sizeof(Mword))
20 *(sys_calls++) = 0x44000002; //sc
23 Kernel_task::kernel_task()->mem_space()->v_insert(
24 Mem_space::Phys_addr(Mem_layout::Syscalls_phys),
25 Mem_space::Addr(Mem_layout::Syscalls),
26 Mem_space::Size(Config::PAGE_SIZE),
27 Mem_space::Page_cacheable | Mem_space::Page_user_accessible
31 Kernel_task::kernel_task()->mem_space()->try_htab_fault(Mem_layout::Syscalls);
35 Mword *sys_calls = (Mword*)Mem_layout::Syscalls;
36 if (!Vmem_alloc::page_alloc(sys_calls,
37 Vmem_alloc::NO_ZERO_FILL, Vmem_alloc::User))
38 panic("FIASCO: can't allocate system-call page.\n");
39 for (unsigned i = 0; i < Config::PAGE_SIZE; i += sizeof(Mword))
40 *(sys_calls++) = 0x44000002; //sc
42 Kernel_task::kernel_task()
43 ->set_attributes(Mem_layout::Syscalls,
44 Mem_space::Page_cacheable | Mem_space::Page_user_accessible);
46 //Mem_unit::flush_cache();