home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-alpha / pgalloc.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.5 KB  |  78 lines

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