1 #ifndef _ALPHA_PAGE_H
2 #define _ALPHA_PAGE_H
3
4 #define invalidate_all() \
5 __asm__ __volatile__( \
6 "lda $16,-2($31)\n\t" \
7 ".long 51" \
8 : : :"$1", "$16", "$17", "$22","$23","$24","$25")
9
10 #define invalidate() \
11 __asm__ __volatile__( \
12 "lda $16,-1($31)\n\t" \
13 ".long 51" \
14 : : :"$1", "$16", "$17", "$22","$23","$24","$25")
15
16
17 #define PAGE_SHIFT 13
18 #define PGDIR_SHIFT 23
19 #define PAGE_SIZE (1UL << PAGE_SHIFT)
20 #define PGDIR_SIZE (1UL << PGDIR_SHIFT)
21
22 #ifdef __KERNEL__
23
24
25 #define BITS_PER_PTR (8*sizeof(unsigned long))
26
27 #define PAGE_MASK (~(PAGE_SIZE-1))
28
29 #define PGDIR_MASK (~(PGDIR_SIZE-1))
30
31 #define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)
32
33 #define PTR_MASK (~(sizeof(void*)-1))
34
35
36
37 #define SIZEOF_PTR_LOG2 4
38
39
40 #define PAGE_DIR_OFFSET(base,address) ((unsigned long*)((base)+\
41 ((unsigned long)(address)>>(PAGE_SHIFT-SIZEOF_PTR_LOG2)*2&PTR_MASK&~PAGE_MASK)))
42
43 #define PAGE_PTR(address) \
44 ((unsigned long)(address)>>(PAGE_SHIFT-SIZEOF_PTR_LOG2)&PTR_MASK&~PAGE_MASK)
45
46 #define PTRS_PER_PAGE (PAGE_SIZE/sizeof(void*))
47
48 #endif
49
50 #endif