The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/man/memory_object_copy.man

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 .\" 
    2 .\" Mach Operating System
    3 .\" Copyright (c) 1991,1990 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:       memory_object_copy.man,v $
   29 .\" Revision 2.5  93/05/10  19:33:22  rvb
   30 .\"     updated
   31 .\"     [93/04/21  16:08:05  lli]
   32 .\" 
   33 .\" Revision 2.4  91/05/14  17:08:31  mrt
   34 .\"     Correcting copyright
   35 .\" 
   36 .\" Revision 2.3  91/02/14  14:12:28  mrt
   37 .\"     Changed to new Mach copyright
   38 .\"     [91/02/12  18:12:50  mrt]
   39 .\" 
   40 .\" Revision 2.2  90/08/07  18:39:19  rpd
   41 .\"     Created.
   42 .\" 
   43 .TH memory_object_copy 2 12/19/89
   44 .CM 4
   45 .SH NAME
   46 .nf
   47 memory_object_copy  \-   part of page object has been copied
   48 .SH SYNOPSIS
   49 .nf
   50 .ft B
   51 #include <mach.h>
   52 
   53 .nf
   54 .ft B
   55 kern_return_t memory_object_copy(old_memory_object, old_memory_control,
   56                                 offset, length, new_memory_object)           
   57      mach_port_t                old_memory_object;
   58      memory_object_control_t    old_memory_control;
   59      vm_offset_t                offset;
   60      vm_size_t                  length;
   61      mach_port_t                new_memory_object;
   62 
   63 
   64 
   65 .fi
   66 .ft P
   67 .SH DESCRIPTION
   68 .B memory_object_copy
   69 indicates that a copy has been made of the specified
   70 range of the given original memory object.  
   71 This call includes only the new memory object itself; a 
   72 .B memory_object_init
   73 call will be made on the new memory object after the currently cached pages
   74 of the original object are prepared. After the memory manager receives the
   75 init call, it should reply with the 
   76 .B memory_object_set_attributes
   77 call to
   78 assert the "ready" attribute. The kernel will use the new memory
   79 object, contol and name ports to refer to the new copy.
   80 
   81 This call is made when the original memory object had the caching
   82 parameter set to 
   83 .B MEMORY_OBJECT_COPY_CALL
   84 and a user of the object 
   85 has asked the kernel to copy it.
   86 
   87 Cached pages from the original memory object at the time of the copy operation
   88 are handled as follows: Readable pages may be silently copied to the new
   89 memory object (with all access permissions). Pages not copied are locked 
   90 to prevent write access.
   91 
   92 The new memory object is 
   93 .I temporary
   94 , meaning that the memory manager should
   95 not change its contents or allow the memory object to be mapped in another 
   96 client.  The memory manager may use the 
   97 .B memory_object_data_unavailable
   98 call to indicate that the appropriate pages of the original memory 
   99 object may be used to fulfill the data request.
  100 
  101 .SH ARGUMENTS
  102 .TP 15
  103 .B
  104 .B old_memory_object
  105 The port that represents the old memory object date.
  106 .TP 15
  107 .B
  108 .B old_memory_contol
  109 The kernel control port for the old object.
  110 .TP 15
  111 .B
  112 .B offset
  113 The offset within a memory object to which this call refers.
  114 This will be page aligned.
  115 .TP 15
  116 .B
  117 .B length
  118 The number of bytes of data, starting at 
  119 .B offset
  120 , to which this
  121 call refers. This will be an integral number of memory object pages.
  122 .TP 15
  123 .B
  124 .B new_memory_object
  125 A new memory object created by the kernel; see 
  126 synopsis for further description.  Note that all port rights (including
  127 receive rights) are included for the new memory object.
  128 
  129 .SH DIAGNOSTICS
  130 .TP 25
  131 .B KERN_SUCCESS
  132 Since this routine is called by the kernel, which does not
  133 wait for a reply message, this value is ignored.
  134 
  135 .SH SEE ALSO
  136 .B memory_object_init, memory_object_set_attributes,
  137 
  138 .B memory_object_data_unavailable
  139 

Cache object: 5aad1b4414ab815c8f54eb02c6f90e33


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.