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

  1. /* 
  2.  * Mach Operating System
  3.  * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
  4.  * All Rights Reserved.
  5.  * 
  6.  * Permission to use, copy, modify and distribute this software and its
  7.  * documentation is hereby granted, provided that both the copyright
  8.  * notice and this permission notice appear in all copies of the
  9.  * software, derivative works or modified versions, and any portions
  10.  * thereof, and that both notices appear in supporting documentation.
  11.  * 
  12.  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
  13.  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  14.  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
  15.  * 
  16.  * Carnegie Mellon requests users of this software to return to
  17.  * 
  18.  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
  19.  *  School of Computer Science
  20.  *  Carnegie Mellon University
  21.  *  Pittsburgh PA 15213-3890
  22.  * 
  23.  * any improvements or extensions that they make and grant Carnegie Mellon
  24.  * the rights to redistribute these changes.
  25.  */
  26. /*
  27.  * HISTORY
  28.  * $Log:    vm_prot.h,v $
  29.  * Revision 2.6  93/01/14  17:49:10  danner
  30.  *     Standardized include symbol name.
  31.  *     [92/06/10            pds]
  32.  * 
  33.  * Revision 2.5  92/03/10  16:27:15  jsb
  34.  *     Add no change protection value for memory_object_lock_request.
  35.  *     [David L. Black 92/02/22  17:03:43  dlb@osf.org]
  36.  * 
  37.  * Revision 2.4  91/05/14  17:03:00  mrt
  38.  *     Correcting copyright
  39.  * 
  40.  * Revision 2.3  91/02/05  17:37:38  mrt
  41.  *     Changed to new Mach copyright
  42.  *     [91/02/01  17:22:39  mrt]
  43.  * 
  44.  * Revision 2.2  90/01/22  23:05:57  af
  45.  *     Removed execute permission from default protection.
  46.  *     On the only machine that cares for execute permission (mips)
  47.  *     this is an expensive liability: it requires keeping
  48.  *     Icache consistent memory that never contains code.
  49.  *     [89/12/15            af]
  50.  * 
  51.  * Revision 2.1  89/08/03  16:06:47  rwd
  52.  * Created.
  53.  * 
  54.  * Revision 2.3  89/02/25  18:42:29  gm0w
  55.  *     Changes for cleanup.
  56.  * 
  57.  *  6-Jun-85  Avadis Tevanian (avie) at Carnegie-Mellon University
  58.  *    Created.
  59.  *
  60.  */
  61. /*
  62.  *    File:    mach/vm_prot.h
  63.  *    Author:    Avadis Tevanian, Jr., Michael Wayne Young
  64.  *
  65.  *    Virtual memory protection definitions.
  66.  *
  67.  */
  68.  
  69. #ifndef    _MACH_VM_PROT_H_
  70. #define    _MACH_VM_PROT_H_
  71.  
  72. /*
  73.  *    Types defined:
  74.  *
  75.  *    vm_prot_t        VM protection values.
  76.  */
  77.  
  78. typedef int        vm_prot_t;
  79.  
  80. /*
  81.  *    Protection values, defined as bits within the vm_prot_t type
  82.  */
  83.  
  84. #define    VM_PROT_NONE    ((vm_prot_t) 0x00)
  85.  
  86. #define VM_PROT_READ    ((vm_prot_t) 0x01)    /* read permission */
  87. #define VM_PROT_WRITE    ((vm_prot_t) 0x02)    /* write permission */
  88. #define VM_PROT_EXECUTE    ((vm_prot_t) 0x04)    /* execute permission */
  89.  
  90. /*
  91.  *    The default protection for newly-created virtual memory
  92.  */
  93.  
  94. #define VM_PROT_DEFAULT    (VM_PROT_READ|VM_PROT_WRITE)
  95.  
  96. /*
  97.  *    The maximum privileges possible, for parameter checking.
  98.  */
  99.  
  100. #define VM_PROT_ALL    (VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE)
  101.  
  102. /*
  103.  *    An invalid protection value.
  104.  *    Used only by memory_object_lock_request to indicate no change
  105.  *    to page locks.  Using -1 here is a bad idea because it
  106.  *    looks like VM_PROT_ALL and then some.
  107.  */
  108. #define VM_PROT_NO_CHANGE    ((vm_prot_t) 0x08)
  109.  
  110. #endif    /* _MACH_VM_PROT_H_ */
  111.