home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.0 / NeXTSTEP3.0.iso / NextDeveloper / Headers / mach / memory_object.h < prev    next >
Text File  |  1992-07-29  |  2KB  |  68 lines

  1. /* 
  2.  * Mach Operating System
  3.  * Copyright (c) 1988 Carnegie-Mellon University
  4.  * All rights reserved.  The CMU software License Agreement specifies
  5.  * the terms and conditions for use and redistribution.
  6.  */
  7. /*
  8.  *    File:    memory_object.h
  9.  *    Author:    Michael Wayne Young
  10.  *
  11.  *    External memory management interface definition.
  12.  */
  13. /*
  14.  * HISTORY
  15.  * 20-May-91  Gregg Kellogg (gk) at NeXT
  16.  *    Moved to from vm to mach directories.
  17.  */
  18.  
  19. #ifndef    _MACH_MEMORY_OBJECT_
  20. #define    _MACH_MEMORY_OBJECT_    1
  21.  
  22. /*
  23.  *    User-visible types used in the external memory
  24.  *    management interface:
  25.  */
  26.  
  27. #import <mach/port.h>
  28.  
  29. typedef    port_t        memory_object_t;
  30.                     /* Represents a memory object ... */
  31.                     /*  Used by user programs to specify */
  32.                     /*  the object to map; used by the */
  33.                     /*  kernel to retrieve or store data */
  34.  
  35. typedef    port_t        memory_object_control_t;
  36.                     /* Provided to a memory manager; ... */
  37.                     /*  used to control a memory object */
  38.  
  39. typedef    port_t        memory_object_name_t;
  40.                     /* Used to describe the memory ... */
  41.                     /*  object in vm_regions() calls */
  42.  
  43. typedef    int        memory_object_copy_strategy_t;
  44.                     /* How memory manager handles copy: */
  45. #define        MEMORY_OBJECT_COPY_NONE        0
  46.                     /* ... No special support */
  47. #define        MEMORY_OBJECT_COPY_CALL        1
  48.                     /* ... Make call on memory manager */
  49. #define        MEMORY_OBJECT_COPY_DELAY     2
  50.                     /* ... Memory manager doesn't ... */
  51.                     /*     change data externally. */
  52.                         
  53.  
  54. #define        MEMORY_OBJECT_NULL    PORT_NULL
  55.  
  56. /* Obsolete forms of the above names: */
  57. #ifndef    KERNEL
  58. typedef    port_t        paging_object_t;
  59. typedef    port_t        vm_pager_request_t;
  60. typedef    port_t        vm_pager_t;
  61. #define    vm_pager_null    ((vm_pager_t) 0)
  62. #endif    KERNEL
  63.  
  64. #ifdef    KERNEL
  65. memory_object_t    memory_manager_default;
  66. #endif    KERNEL
  67. #endif    _MACH_MEMORY_OBJECT_
  68.