home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Headers / mach / sparc / vm_param.h < prev    next >
C/C++ Source or Header  |  1997-04-27  |  2KB  |  72 lines

  1. /*
  2.  * Copyright (c) 1994 NeXT Computer, Inc.
  3.  *
  4.  * sun sparc Family:    Virtual memory constants.
  5.  *
  6.  * HISTORY
  7.  *
  8.  * 11 April 1994 Mahesh M. Kumar created at NeXT
  9.  *        based on the i386 version by David E. Bohman
  10.  *
  11.  */
  12.  
  13. #ifndef    _MACH_SPARC_VM_PARAM_H_
  14. #define _MACH_SPARC_VM_PARAM_H_
  15.  
  16.  
  17. #define BYTE_SIZE    8    /* byte size in bits */
  18. #define BYTE_MSF    0
  19.  
  20. #define SPARC_PGBYTES    4096    /* bytes per sun4m page */
  21. #define SPARC_PGSHIFT    12    /* number of bits to shift for pages */
  22. #define SPARC_PGALIGN    12    /* number of bits to shift for pages */
  23.  
  24. /*
  25.  *    Convert bytes to pages and convert pages to bytes.
  26.  *    No rounding is used.
  27.  */
  28.  
  29. #define sparc_btop(x)        (((unsigned)(x)) >> SPARC_PGSHIFT)
  30. #define sparc_ptob(x)        (((unsigned)(x)) << SPARC_PGSHIFT)
  31.  
  32. /*
  33.  *    Round off or truncate to the nearest page.  These will work
  34.  *    for either addresses or counts.  (i.e. 1 byte rounds to 1 page
  35.  *    bytes.
  36.  */
  37.  
  38. #define sparc_round_page(x)    ((((unsigned)(x)) + SPARC_PGBYTES - 1) & \
  39.                     ~(SPARC_PGBYTES-1))
  40. #define sparc_trunc_page(x)    (((unsigned)(x)) & ~(SPARC_PGBYTES-1))
  41.  
  42. #define VM_MIN_ADDRESS        ((vm_offset_t) 0)
  43. #define VM_MAX_ADDRESS        ((vm_offset_t) 0xF0000000)
  44.  
  45.  
  46. #define KERNELBASE          0xF0000000
  47. #define KERNELSIZE        (16*1024*1024) /* 16 MB */
  48. #define VM_KERNEL_LOAD_ADDRESS  ((vm_offset_t)KERNELBASE)
  49.  
  50. #define VM_MIN_KERNEL_ADDRESS    ((vm_offset_t) 0xF0000000)
  51. #define VM_MAX_KERNEL_ADDRESS    ((vm_offset_t) 0xFF000000)
  52.                 /* except the last 16 MB for DVMA */
  53.  
  54. #define KERNSTACK_SIZE        (4*SPARC_PGBYTES)
  55. #define INTSTACK_SIZE        (8*SPARC_PGBYTES)
  56.  
  57. /*
  58.  *    Conversion between sun4m pages and VM pages
  59.  */
  60.  
  61. #define trunc_sun_to_vm(p)    (atop(trunc_page(sun_ptob(p))))
  62. #define round_sun_to_vm(p)    (atop(round_page(sun_ptob(p))))
  63. #define vm_to_sun(p)        (sun_btop(ptoa(p)))
  64.  
  65. /*
  66.  * Maximum alignment required by any data type for this architecture.
  67.  * (Use cache line size bytes for performance reasons....)
  68.  */
  69. #define    MAX_DATA_ALIGNMENT    16        /* 16 bytes */
  70.  
  71. #endif    _MACH_SPARC_VM_PARAM_H_
  72.