1#ifndef _X86_64_PAGE_H
2#define _X86_64_PAGE_H
3
4#include <linux/const.h>
5
6/* PAGE_SHIFT determines the page size */
7#define PAGE_SHIFT	12
8#define PAGE_SIZE	(_AC(1,UL) << PAGE_SHIFT)
9#define PAGE_MASK	(~(PAGE_SIZE-1))
10#define PHYSICAL_PAGE_MASK	(~(PAGE_SIZE-1) & __PHYSICAL_MASK)
11
12#define THREAD_ORDER 1
13#define THREAD_SIZE  (PAGE_SIZE << THREAD_ORDER)
14#define CURRENT_MASK (~(THREAD_SIZE-1))
15
16#define EXCEPTION_STACK_ORDER 0
17#define EXCEPTION_STKSZ (PAGE_SIZE << EXCEPTION_STACK_ORDER)
18
19#define DEBUG_STACK_ORDER (EXCEPTION_STACK_ORDER + 1)
20#define DEBUG_STKSZ (PAGE_SIZE << DEBUG_STACK_ORDER)
21
22#define IRQSTACK_ORDER 2
23#define IRQSTACKSIZE (PAGE_SIZE << IRQSTACK_ORDER)
24
25#define STACKFAULT_STACK 1
26#define DOUBLEFAULT_STACK 2
27#define NMI_STACK 3
28#define DEBUG_STACK 4
29#define MCE_STACK 5
30#define N_EXCEPTION_STACKS 5  /* hw limit: 7 */
31
32#define LARGE_PAGE_MASK (~(LARGE_PAGE_SIZE-1))
33#define LARGE_PAGE_SIZE (_AC(1,UL) << PMD_SHIFT)
34
35#define HPAGE_SHIFT PMD_SHIFT
36#define HPAGE_SIZE	(_AC(1,UL) << HPAGE_SHIFT)
37#define HPAGE_MASK	(~(HPAGE_SIZE - 1))
38#define HUGETLB_PAGE_ORDER	(HPAGE_SHIFT - PAGE_SHIFT)
39
40
41#endif /* _X86_64_PAGE_H */
42