MCPcopy Create free account
hub / github.com/Bananymous/banan-os / allocate_stack

Method allocate_stack

kernel/kernel/Processor.cpp:160–172  ·  view source on GitHub ↗

NOTE: I don't like this being a separate function but we need heap and page tables for this :)

Source from the content-addressed store, hash-verified

158
159 // NOTE: I don't like this being a separate function but we need heap and page tables for this :)
160 void Processor::allocate_stack()
161 {
162 ASSERT(m_stack_paddr == 0);
163 ASSERT(m_stack_vaddr == 0);
164
165 m_stack_paddr = Heap::get().take_free_page();
166 ASSERT(m_stack_paddr);
167
168 m_stack_vaddr = PageTable::kernel().reserve_free_page(KERNEL_OFFSET);
169 ASSERT(m_stack_vaddr);
170
171 PageTable::kernel().map_page_at(m_stack_paddr, m_stack_vaddr, PageTable::ReadWrite | PageTable::Present);
172 }
173
174 void Processor::initialize_smp()
175 {

Callers 2

kernel_mainFunction · 0.80

Calls 3

take_free_pageMethod · 0.80
reserve_free_pageMethod · 0.45
map_page_atMethod · 0.45

Tested by

no test coverage detected