1/*
2 * Copyright 2017, Data61
3 * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
4 * ABN 41 687 119 230.
5 *
6 * This software may be distributed and modified according to the terms of
7 * the BSD 2-Clause license. Note that NO WARRANTY is provided.
8 * See "LICENSE_BSD2.txt" for details.
9 *
10 * @TAG(DATA61_BSD)
11 */
12#pragma once
13
14#include <autoconf.h>
15#include <stddef.h>
16#include <utils/attribute.h>
17#include <sel4/sel4.h>
18
19/* ordered list of page sizes for this architecture */
20static const UNUSED size_t sel4_page_sizes[] = {
21    seL4_PageBits,
22    seL4_LargePageBits,
23#if defined(CONFIG_ARCH_AARCH32)
24    seL4_SectionBits,
25    seL4_SuperSectionBits
26#elif defined(CONFIG_ARCH_AARCH64)
27    seL4_HugePageBits
28#endif
29};
30
31#define seL4_ARCH_Uncached_VMAttributes 0
32
33#define seL4_ARCH_Page_Map             seL4_ARM_Page_Map
34#define seL4_ARCH_Page_MapIO           seL4_ARM_Page_MapIO
35#define seL4_ARCH_Page_Unmap           seL4_ARM_Page_Unmap
36#define seL4_ARCH_Page_GetAddress      seL4_ARM_Page_GetAddress
37#define seL4_ARCH_Page_GetAddress_t    seL4_ARM_Page_GetAddress_t
38#define seL4_ARCH_PageTable_Map        seL4_ARM_PageTable_Map
39#define seL4_ARCH_IOPageTable_Map      seL4_ARM_IOPageTable_Map
40#define seL4_ARCH_PageTable_Unmap      seL4_ARM_PageTable_Unmap
41#define seL4_ARCH_ASIDPool_Assign      seL4_ARM_ASIDPool_Assign
42#define seL4_ARCH_ASIDControl_MakePool seL4_ARM_ASIDControl_MakePool
43#define seL4_ARCH_PageTableObject      seL4_ARM_PageTableObject
44#define seL4_ARCH_PageDirectoryObject  seL4_ARM_PageDirectoryObject
45#define seL4_ARCH_Default_VMAttributes seL4_ARM_Default_VMAttributes
46#define seL4_ARCH_VMAttributes         seL4_ARM_VMAttributes
47#define seL4_ARCH_4KPage               seL4_ARM_SmallPageObject
48#define seL4_ARCH_LargePageObject      seL4_ARM_LargePageObject
49/* for the size of a large page use seL4_LargePageBits */
50#define ARCHPageGetAddress             ARMPageGetAddress
51
52