Contents of /alx-src/tags/kernel26-2.6.12-alx-r9/include/asm-alpha/pgalloc.h
Parent Directory | Revision Log
Revision 630 -
(show annotations)
(download)
Wed Mar 4 11:03:09 2009 UTC (15 years, 3 months ago) by niro
File MIME type: text/plain
File size: 1512 byte(s)
Wed Mar 4 11:03:09 2009 UTC (15 years, 3 months ago) by niro
File MIME type: text/plain
File size: 1512 byte(s)
Tag kernel26-2.6.12-alx-r9
1 | #ifndef _ALPHA_PGALLOC_H |
2 | #define _ALPHA_PGALLOC_H |
3 | |
4 | #include <linux/config.h> |
5 | #include <linux/mm.h> |
6 | #include <linux/mmzone.h> |
7 | |
8 | /* |
9 | * Allocate and free page tables. The xxx_kernel() versions are |
10 | * used to allocate a kernel page table - this turns on ASN bits |
11 | * if any. |
12 | */ |
13 | |
14 | static inline void |
15 | pmd_populate(struct mm_struct *mm, pmd_t *pmd, struct page *pte) |
16 | { |
17 | pmd_set(pmd, (pte_t *)(page_to_pa(pte) + PAGE_OFFSET)); |
18 | } |
19 | |
20 | static inline void |
21 | pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) |
22 | { |
23 | pmd_set(pmd, pte); |
24 | } |
25 | |
26 | static inline void |
27 | pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd) |
28 | { |
29 | pgd_set(pgd, pmd); |
30 | } |
31 | |
32 | extern pgd_t *pgd_alloc(struct mm_struct *mm); |
33 | |
34 | static inline void |
35 | pgd_free(pgd_t *pgd) |
36 | { |
37 | free_page((unsigned long)pgd); |
38 | } |
39 | |
40 | static inline pmd_t * |
41 | pmd_alloc_one(struct mm_struct *mm, unsigned long address) |
42 | { |
43 | pmd_t *ret = (pmd_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO); |
44 | return ret; |
45 | } |
46 | |
47 | static inline void |
48 | pmd_free(pmd_t *pmd) |
49 | { |
50 | free_page((unsigned long)pmd); |
51 | } |
52 | |
53 | extern pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr); |
54 | |
55 | static inline void |
56 | pte_free_kernel(pte_t *pte) |
57 | { |
58 | free_page((unsigned long)pte); |
59 | } |
60 | |
61 | static inline struct page * |
62 | pte_alloc_one(struct mm_struct *mm, unsigned long addr) |
63 | { |
64 | pte_t *pte = pte_alloc_one_kernel(mm, addr); |
65 | if (pte) |
66 | return virt_to_page(pte); |
67 | return NULL; |
68 | } |
69 | |
70 | static inline void |
71 | pte_free(struct page *page) |
72 | { |
73 | __free_page(page); |
74 | } |
75 | |
76 | #define check_pgt_cache() do { } while (0) |
77 | |
78 | #endif /* _ALPHA_PGALLOC_H */ |