1/**
2 * \file
3 * \brief Arch specific paging definitions
4 */
5
6/*
7 * Copyright (c) 2010, 2015, ETH Zurich.
8 * Copyright (c) 2015, 2016 Hewlett Packard Enterprise Development LP.
9 * All rights reserved.
10 *
11 * This file is distributed under the terms in the attached LICENSE file.
12 * If you do not find this file, copies can be found by writing to:
13 * ETH Zurich D-INFK, Universitaetstr. 6, CH-8092 Zurich. Attn: Systems Group.
14 */
15
16#ifndef ARCH_AARCH64_BARRELFISH_KPI_PAGING_H
17#define ARCH_AARCH64_BARRELFISH_KPI_PAGING_H
18
19#include <target/aarch64/barrelfish_kpi/paging_arm_v8.h>
20
21/**
22 * Information about page sizes
23 */
24#define BASE_PAGE_BITS      VMSAv8_64_BASE_PAGE_BITS
25#define BASE_PAGE_SIZE      VMSAv8_64_BASE_PAGE_SIZE
26#define BASE_PAGE_MASK      VMSAv8_64_BASE_PAGE_MASK
27#define BASE_PAGE_OFFSET    VMSAv8_64_BASE_PAGE_OFFSET
28
29#define LARGE_PAGE_BITS     VMSAv8_64_L2_BLOCK_BITS
30#define LARGE_PAGE_SIZE     VMSAv8_64_L2_BLOCK_SIZE
31#define LARGE_PAGE_MASK     VMSAv8_64_L2_BLOCK_MASK
32#define LARGE_PAGE_OFFSET   VMSAv8_64_L2_BLOCK_OFFSET
33
34#define HUGE_PAGE_BITS      VMSAv8_64_L1_BLOCK_BITS
35#define HUGE_PAGE_SIZE      VMSAv8_64_L1_BLOCK_SIZE
36#define HUGE_PAGE_MASK      VMSAv8_64_L1_BLOCK_MASK
37#define HUGE_PAGE_OFFSET    VMSAv8_64_L1_BLOCK_OFFSET
38
39/**
40 * Bits within the various page directories and tables.
41 */
42#define PTABLE_EXECUTE_DISABLE  VMSAv8_64_PTABLE_EXECUTE_DISABLE
43#define PTABLE_GLOBAL_PAGE      VMSAv8_64_PTABLE_GLOBAL_PAGE
44#define PTABLE_ATTR_INDEX       VMSAv8_64_PTABLE_ATTR_INDEX
45#define PTABLE_DIRTY            VMSAv8_64_PTABLE_DIRTY
46#define PTABLE_ACCESSED         VMSAv8_64_PTABLE_ACCESSED
47#define PTABLE_CACHE_DISABLED   VMSAv8_64_PTABLE_CACHE_DISABLED
48#define PTABLE_WRITE_THROUGH    VMSAv8_64_PTABLE_WRITE_THROUGH
49#define PTABLE_USER_SUPERVISOR  VMSAv8_64_PTABLE_USER_SUPERVISOR
50#define PTABLE_READ_WRITE       VMSAv8_64_PTABLE_READ_WRITE
51#define PTABLE_PRESENT          VMSAv8_64_PTABLE_PRESENT
52
53#define PTABLE_SIZE             VMSAv8_64_PTABLE_SIZE
54#define PTABLE_MASK             VMSAv8_64_PTABLE_MASK
55#define PTABLE_CLEAR            VMSAv8_64_PTABLE_CLEAR
56
57#define PTABLE_ACCESS_DEFAULT   VMSAv8_64_PTABLE_ACCESS_DEFAULT
58#define PTABLE_ACCESS_READONLY  VMSAv8_64_PTABLE_ACCESS_READONLY
59
60#define PTABLE_ENTRY_SIZE       VMSAv8_64_PTABLE_ENTRY_SIZE
61#endif // ARCH_ARM_BARRELFISH_KPI_PAGING_H
62