home *** CD-ROM | disk | FTP | other *** search
/ Big Green CD 8 / BGCD_8_Dev.iso / NEXTSTEP / UNIX / Utilities / vmount-0.6a-I / src / my_include / asm / page.h next >
Encoding:
C/C++ Source or Header  |  1996-11-14  |  1.7 KB  |  72 lines

  1. /*
  2.  * Name: page.h
  3.  * Description: asm/page.h from Linux, but MAP_NR() redefined to give an
  4.  *     error when used.
  5.  * Modified: Christian Starkjohann <cs@hal.kph.tuwien.ac.at>
  6.  * Date: 1996-11-14
  7.  * Copyright: GNU-GPL
  8.  * Tabsize: 4
  9.  */
  10. #ifndef _I386_PAGE_H
  11. #define _I386_PAGE_H
  12.  
  13. /* PAGE_SHIFT determines the page size */
  14. #define PAGE_SHIFT    12
  15. #define PAGE_SIZE    (1UL << PAGE_SHIFT)
  16. #define PAGE_MASK    (~(PAGE_SIZE-1))
  17.  
  18. #ifdef __KERNEL__
  19.  
  20. #define STRICT_MM_TYPECHECKS
  21.  
  22. #ifdef STRICT_MM_TYPECHECKS
  23. /*
  24.  * These are used to make use of C type-checking..
  25.  */
  26. typedef struct { unsigned long pte; } pte_t;
  27. typedef struct { unsigned long pmd; } pmd_t;
  28. typedef struct { unsigned long pgd; } pgd_t;
  29. typedef struct { unsigned long pgprot; } pgprot_t;
  30.  
  31. #define pte_val(x)    ((x).pte)
  32. #define pmd_val(x)    ((x).pmd)
  33. #define pgd_val(x)    ((x).pgd)
  34. #define pgprot_val(x)    ((x).pgprot)
  35.  
  36. #define __pte(x)    ((pte_t) { (x) } )
  37. #define __pmd(x)    ((pmd_t) { (x) } )
  38. #define __pgd(x)    ((pgd_t) { (x) } )
  39. #define __pgprot(x)    ((pgprot_t) { (x) } )
  40.  
  41. #else
  42. /*
  43.  * .. while these make it easier on the compiler
  44.  */
  45. typedef unsigned long pte_t;
  46. typedef unsigned long pmd_t;
  47. typedef unsigned long pgd_t;
  48. typedef unsigned long pgprot_t;
  49.  
  50. #define pte_val(x)    (x)
  51. #define pmd_val(x)    (x)
  52. #define pgd_val(x)    (x)
  53. #define pgprot_val(x)    (x)
  54.  
  55. #define __pte(x)    (x)
  56. #define __pmd(x)    (x)
  57. #define __pgd(x)    (x)
  58. #define __pgprot(x)    (x)
  59.  
  60. #endif
  61.  
  62. /* to align the pointer to the (next) page boundary */
  63. #define PAGE_ALIGN(addr)    (((addr)+PAGE_SIZE-1)&PAGE_MASK)
  64.  
  65. /* This handles the memory map.. */
  66. #define PAGE_OFFSET        0
  67. #define MAP_NR(addr)        this_is_an_error()    /* fake all pages in a single structure */
  68.  
  69. #endif /* __KERNEL__ */
  70.  
  71. #endif /* _I386_PAGE_H */
  72.