1/**
2 * \file
3 * \brief Define generics for arch specific definitions
4 */
5
6/*
7 * Copyright (c) 2010-2013 ETH Zurich.
8 * All rights reserved.
9 *
10 * This file is distributed under the terms in the attached LICENSE file.
11 * If you do not find this file, copies can be found by writing to:
12 * ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
13 */
14
15#ifndef ARCH_X86_64_BARRELFISH_KPI_PAGING_H
16#define ARCH_X86_64_BARRELFISH_KPI_PAGING_H
17
18#include <target/x86_64/barrelfish_kpi/paging_target.h>
19
20/**
21 * Information about page sizes
22 */
23#define BASE_PAGE_BITS      X86_64_BASE_PAGE_BITS
24#define BASE_PAGE_SIZE      X86_64_BASE_PAGE_SIZE
25#define BASE_PAGE_MASK      X86_64_BASE_PAGE_MASK
26#define BASE_PAGE_OFFSET    X86_64_BASE_PAGE_OFFSET
27
28#define LARGE_PAGE_BITS      X86_64_LARGE_PAGE_BITS
29#define LARGE_PAGE_SIZE      X86_64_LARGE_PAGE_SIZE
30#define LARGE_PAGE_MASK      X86_64_LARGE_PAGE_MASK
31#define LARGE_PAGE_OFFSET    X86_64_LARGE_PAGE_OFFSET
32
33#define HUGE_PAGE_BITS      X86_64_HUGE_PAGE_BITS
34#define HUGE_PAGE_SIZE      X86_64_HUGE_PAGE_SIZE
35#define HUGE_PAGE_MASK      X86_64_HUGE_PAGE_MASK
36#define HUGE_PAGE_OFFSET    X86_64_HUGE_PAGE_OFFSET
37
38/**
39 * Bits within the various page directories and tables.
40 */
41#define PTABLE_EXECUTE_DISABLE  X86_64_PTABLE_EXECUTE_DISABLE
42#define PTABLE_GLOBAL_PAGE      X86_64_PTABLE_GLOBAL_PAGE
43#define PTABLE_ATTR_INDEX       X86_64_PTABLE_ATTR_INDEX
44#define PTABLE_DIRTY            X86_64_PTABLE_DIRTY
45#define PTABLE_ACCESSED         X86_64_PTABLE_ACCESSED
46#define PTABLE_CACHE_DISABLED   X86_64_PTABLE_CACHE_DISABLED
47#define PTABLE_WRITE_THROUGH    X86_64_PTABLE_WRITE_THROUGH
48#define PTABLE_USER_SUPERVISOR  X86_64_PTABLE_USER_SUPERVISOR
49#define PTABLE_READ_WRITE       X86_64_PTABLE_READ_WRITE
50#define PTABLE_PRESENT          X86_64_PTABLE_PRESENT
51
52#define PTABLE_SIZE             X86_64_PTABLE_SIZE
53#define PTABLE_MASK             X86_64_PTABLE_MASK
54#define PTABLE_CLEAR            X86_64_PTABLE_CLEAR
55
56#define PTABLE_ACCESS_DEFAULT   X86_64_PTABLE_ACCESS_DEFAULT
57#define PTABLE_ACCESS_READONLY  X86_64_PTABLE_ACCESS_READONLY
58
59#define PTABLE_ENTRY_SIZE       X86_64_PTABLE_ENTRY_SIZE
60
61#endif // ARCH_X86_64_BARRELFISH_KPI_PAGING_H
62