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_lock_request.man,v $
29 .\" Revision 2.5 93/05/10 19:34:00 rvb
30 .\" updated
31 .\" [93/04/21 16:08:49 lli]
32 .\"
33 .\" Revision 2.4 91/05/14 17:10:17 mrt
34 .\" Correcting copyright
35 .\"
36 .\" Revision 2.3 91/02/14 14:13:22 mrt
37 .\" Changed to new Mach copyright
38 .\" [91/02/12 18:14:07 mrt]
39 .\"
40 .\" Revision 2.2 90/08/07 18:41:26 rpd
41 .\" Created.
42 .\"
43 .TH memory_object_lock_request 2 12/19/89
44 .CM 4
45 .SH NAME
46 .nf
47 memory_object_lock_request \- request consistency control actions
48 .SH SYNOPSIS
49 .nf
50 .ft B
51 #include <mach.h>
52
53 .nf
54 .ft B
55 kern_return_t memory_object_lock_request(memory_control,
56 offset, size, should_clean
57 should_flush, lock_value, reply_to)
58 mach_port_t
59 memory_control;
60 vm_offset_t offset;
61 vm_size_t size;
62 memory_object_return_t should_clean;
63 boolean_t should_flush;
64 vm_prot_t lock_value;
65 mach_port_t reply_to;
66
67
68 .fi
69 .ft P
70 .SH DESCRIPTION
71
72 .B memory_object_lock_request
73 allows a memory manager to make cache
74 management requests.
75 As specified in arguments to the call, the kernel will:
76 clean (i.e., write back using
77 .B memory_object_data_write
78 )
79 any cached data which
80 has been modified since the last time it was written;
81 flush (i.e., remove any uses of) that data from memory;
82 lock (i.e., prohibit the specified uses of) the cached data.
83 Locks applied to cached data are not cumulative; new lock values override
84 previous ones. Thus, data may also be unlocked using this primitive.
85 The lock values must be one or more of the following values:
86 .B VM_PROT_NONE, VM_PROT_READ, VM_PROT_WRITE, VM_PROT_EXECUTE
87 and
88 .B VM_PROT_ALL
89 as defined in
90 .B <mach/vm_prot.h>
91 .
92
93 Only data which is cached at the time of this call is affected.
94 When a running thread requires a prohibited
95 access to cached data, the will issue a
96 .B memory_object_data_unlock
97 call specifying the forms of access
98 required.
99 Once all of the actions requested by this call have been completed,
100 the on the specified reply port.
101
102 .SH ARGUMENTS
103 .TP 15
104 .B
105 memory_control
106 The port, provided by the kernel
107 in a
108 .B memory_object_init
109 call, to which cache management requests may be issued.
110 .TP 15
111 .B
112 offset
113 An offset within a memory object, in bytes. This must be
114 page aligned.
115 .TP 15
116 .B
117 size
118 The amount of cached data (starting at
119 .B offset
120 ) to be handled, must
121 be an integral multiple of the memory object page size.
122 .TP 15
123 .B
124 should_clean
125 If set, modified data should be written back to the memory manager.
126 .TP 15
127 .B
128 should_flush
129 If set, the specified cached data should be invalidated, and all
130 uses of that data should be revoked.
131 .TP 15
132 .B
133 lock_value
134 A protection value indicating those forms of access that should
135 .B not
136 be permitted to the specified cached data.
137 .TP 15
138 .B
139 reply_to
140 A port on which a
141 .B memory_object_lock_completed
142 call should be issued,
143 or
144 .B PORT_NULL
145 if no acknowledgement is desired.
146
147 .SH DIAGNOSTICS
148 .TP 25
149 KERN_SUCCESS
150 This routine does not receive a reply message (and consequently
151 has no return value), so only message transmission errors apply.
152
153 .SH SEE ALSO
154 .B memory_object_lock_completed, memory_object_data_unlock
155
Cache object: 72c4bc8e0ee6a99a62b70f2cdc9d484c
|