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-um / pgalloc.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.6 KB  |  67 lines

  1. /* 
  2.  * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
  3.  * Copyright 2003 PathScale, Inc.
  4.  * Derived from include/asm-i386/pgalloc.h and include/asm-i386/pgtable.h
  5.  * Licensed under the GPL
  6.  */
  7.  
  8. #ifndef __UM_PGALLOC_H
  9. #define __UM_PGALLOC_H
  10.  
  11. #include "linux/mm.h"
  12. #include "asm/fixmap.h"
  13.  
  14. #define pmd_populate_kernel(mm, pmd, pte) \
  15.     set_pmd(pmd, __pmd(_PAGE_TABLE + (unsigned long) __pa(pte)))
  16.  
  17. #define pmd_populate(mm, pmd, pte)                 \
  18.     set_pmd(pmd, __pmd(_PAGE_TABLE +            \
  19.         ((unsigned long long)page_to_pfn(pte) <<    \
  20.             (unsigned long long) PAGE_SHIFT)))
  21.  
  22. /*
  23.  * Allocate and free page tables.
  24.  */
  25. extern pgd_t *pgd_alloc(struct mm_struct *);
  26. extern void pgd_free(pgd_t *pgd);
  27.  
  28. extern pte_t *pte_alloc_one_kernel(struct mm_struct *, unsigned long);
  29. extern struct page *pte_alloc_one(struct mm_struct *, unsigned long);
  30.  
  31. static inline void pte_free_kernel(pte_t *pte)
  32. {
  33.     free_page((unsigned long) pte);
  34. }
  35.  
  36. static inline void pte_free(struct page *pte)
  37. {
  38.     __free_page(pte);
  39. }
  40.  
  41. #define __pte_free_tlb(tlb,pte) tlb_remove_page((tlb),(pte))
  42.  
  43. #ifdef CONFIG_3_LEVEL_PGTABLES
  44.  
  45. extern __inline__ void pmd_free(pmd_t *pmd)
  46. {
  47.     free_page((unsigned long)pmd);
  48. }
  49.  
  50. #define __pmd_free_tlb(tlb,x)   tlb_remove_page((tlb),virt_to_page(x))
  51. #endif
  52.  
  53. #define check_pgt_cache()    do { } while (0)
  54.  
  55. #endif
  56.  
  57. /*
  58.  * Overrides for Emacs so that we follow Linus's tabbing style.
  59.  * Emacs will notice this stuff at the end of the file and automatically
  60.  * adjust the settings for this buffer only.  This must remain at the end
  61.  * of the file.
  62.  * ---------------------------------------------------------------------------
  63.  * Local variables:
  64.  * c-file-style: "linux"
  65.  * End:
  66.  */
  67.