1 /*
2  * Copyright 2019 The Hafnium Authors.
3  *
4  * Use of this source code is governed by a BSD-style
5  * license that can be found in the LICENSE file or at
6  * https://opensource.org/licenses/BSD-3-Clause.
7  */
8 
9 #pragma once
10 
11 #include "hf/mm.h"
12 #include "hf/mpool.h"
13 
14 /**
15  * Performs arch specific boot time initialization.
16  *
17  * It must only be called once, on first boot and must be called as early as
18  * possible.
19  */
20 void arch_one_time_init(void);
21 
22 /**
23  * Updates the hypervisor page table such that the stack address range
24  * is mapped into the address space at the corresponding address range in the
25  * architecture-specific mode.
26  */
27 bool arch_stack_mm_init(struct mm_stage1_locked stage1_locked,
28 			struct mpool *ppool);
29