home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / powerpc / include / asm / mman.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.9 KB  |  64 lines

  1. #ifndef _ASM_POWERPC_MMAN_H
  2. #define _ASM_POWERPC_MMAN_H
  3.  
  4. #include <asm-generic/mman.h>
  5.  
  6. /*
  7.  * This program is free software; you can redistribute it and/or
  8.  * modify it under the terms of the GNU General Public License
  9.  * as published by the Free Software Foundation; either version
  10.  * 2 of the License, or (at your option) any later version.
  11.  */
  12.  
  13. #define PROT_SAO    0x10        /* Strong Access Ordering */
  14.  
  15. #define MAP_RENAME      MAP_ANONYMOUS   /* In SunOS terminology */
  16. #define MAP_NORESERVE   0x40            /* don't reserve swap pages */
  17. #define MAP_LOCKED    0x80
  18.  
  19. #define MAP_GROWSDOWN    0x0100        /* stack-like segment */
  20. #define MAP_DENYWRITE    0x0800        /* ETXTBSY */
  21. #define MAP_EXECUTABLE    0x1000        /* mark it as an executable */
  22.  
  23. #define MCL_CURRENT     0x2000          /* lock all currently mapped pages */
  24. #define MCL_FUTURE      0x4000          /* lock all additions to address space */
  25.  
  26. #define MAP_POPULATE    0x8000        /* populate (prefault) pagetables */
  27. #define MAP_NONBLOCK    0x10000        /* do not block on IO */
  28.  
  29. #ifdef __KERNEL__
  30. #ifdef CONFIG_PPC64
  31.  
  32. #include <asm/cputable.h>
  33. #include <linux/mm.h>
  34.  
  35. /*
  36.  * This file is included by linux/mman.h, so we can't use cacl_vm_prot_bits()
  37.  * here.  How important is the optimization?
  38.  */
  39. static inline unsigned long arch_calc_vm_prot_bits(unsigned long prot)
  40. {
  41.     return (prot & PROT_SAO) ? VM_SAO : 0;
  42. }
  43. #define arch_calc_vm_prot_bits(prot) arch_calc_vm_prot_bits(prot)
  44.  
  45. static inline pgprot_t arch_vm_get_page_prot(unsigned long vm_flags)
  46. {
  47.     return (vm_flags & VM_SAO) ? __pgprot(_PAGE_SAO) : __pgprot(0);
  48. }
  49. #define arch_vm_get_page_prot(vm_flags) arch_vm_get_page_prot(vm_flags)
  50.  
  51. static inline int arch_validate_prot(unsigned long prot)
  52. {
  53.     if (prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC | PROT_SEM | PROT_SAO))
  54.         return 0;
  55.     if ((prot & PROT_SAO) && !cpu_has_feature(CPU_FTR_SAO))
  56.         return 0;
  57.     return 1;
  58. }
  59. #define arch_validate_prot(prot) arch_validate_prot(prot)
  60.  
  61. #endif /* CONFIG_PPC64 */
  62. #endif /* __KERNEL__ */
  63. #endif    /* _ASM_POWERPC_MMAN_H */
  64.