Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(951)

Side by Side Diff: mojo/public/c/system/handle.h

Issue 2012283003: Update API: MojoReduceRights() -> MojoReplaceHandleWithReducedRights(). (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file contains Mojo system handle-related declarations/definitions. 5 // This file contains Mojo system handle-related declarations/definitions.
6 // 6 //
7 // Note: This header should be compilable as C. 7 // Note: This header should be compilable as C.
8 8
9 #ifndef MOJO_PUBLIC_C_SYSTEM_HANDLE_H_ 9 #ifndef MOJO_PUBLIC_C_SYSTEM_HANDLE_H_
10 #define MOJO_PUBLIC_C_SYSTEM_HANDLE_H_ 10 #define MOJO_PUBLIC_C_SYSTEM_HANDLE_H_
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 // rights. 120 // rights.
121 // 121 //
122 // Returns: 122 // Returns:
123 // |MOJO_RESULT_OK| on success. 123 // |MOJO_RESULT_OK| on success.
124 // |MOJO_RESULT_INVALID_ARGUMENT| if |handle| is not a valid handle. 124 // |MOJO_RESULT_INVALID_ARGUMENT| if |handle| is not a valid handle.
125 // |MOJO_RESULT_BUSY| if |handle| is currently in use in some transaction 125 // |MOJO_RESULT_BUSY| if |handle| is currently in use in some transaction
126 // (that, e.g., may result in it being invalidated, such as being sent in 126 // (that, e.g., may result in it being invalidated, such as being sent in
127 // a message). 127 // a message).
128 MojoResult MojoGetRights(MojoHandle handle, MojoHandleRights* rights); // Out. 128 MojoResult MojoGetRights(MojoHandle handle, MojoHandleRights* rights); // Out.
129 129
130 // |MojoReduceRights()|: Reduces rights that the given |handle| may have. 130 // |MojoReplaceHandleWithReducedRights()|: Replaces |handle| with an equivalent
131 // one with reduced rights.
131 // 132 //
132 // That is, on success: 133 // On success, |*replacement_handle| will be a handle that is equivalent to
134 // |handle| (before the call), but with:
133 // 135 //
134 // new rights = current rights & ~rights_to_remove. 136 // replacement handle rights = current rights & ~rights_to_remove.
137 //
138 // |handle| will be invalidated, and any ongoing two-phase operations (e.g., for
139 // data pipes) on |handle| will be aborted.
jamesr 2016/05/26 19:51:39 this behavior needs to be defined
140 //
141 // On failure, |handle| will remain valid and unchanged (with any ongoing
142 // two-phase operations undisturbed) and |*replacement_handle| will not be set.
135 // 143 //
136 // Note that it is not an error to "remove" rights that the handle does not 144 // Note that it is not an error to "remove" rights that the handle does not
137 // (currently) possess. 145 // (currently) possess.
138 // 146 //
139 // Returns: 147 // Returns:
140 // |MOJO_RESULT_OK| on success. 148 // |MOJO_RESULT_OK| on success.
141 // |MOJO_RESULT_INVALID_ARGUMENT| if |handle| is not a valid handle. 149 // |MOJO_RESULT_INVALID_ARGUMENT| if |handle| is not a valid handle.
150 // |MOJO_RESULT_RESOURCE_EXHAUSTED| if a process/system/quota/etc. limit has
151 // been reached.
142 // |MOJO_RESULT_BUSY| if |handle| is currently in use in some transaction 152 // |MOJO_RESULT_BUSY| if |handle| is currently in use in some transaction
143 // (that, e.g., may result in it being invalidated, such as being sent in 153 // (that, e.g., may result in it being invalidated, such as being sent in
144 // a message). 154 // a message).
145 // 155 MojoResult MojoReplaceHandleWithReducedRights(
146 // TODO(vtl): Discuss this API some more. It may be more desirable to replace 156 MojoHandle handle,
147 // the handle with a new one (with reduced rights). 157 MojoHandleRights rights_to_remove,
148 MojoResult MojoReduceRights(MojoHandle handle, 158 MojoHandle* replacement_handle); // Out.
149 MojoHandleRights rights_to_remove);
150 159
151 // |MojoDuplicateHandleWithReducedRights()|: Duplicates |handle| to a new handle 160 // |MojoDuplicateHandleWithReducedRights()|: Duplicates |handle| to a new handle
152 // with reduced rights. This requires |handle| to have the 161 // with reduced rights. This requires |handle| to have the
153 // |MOJO_HANDLE_RIGHT_DUPLICATE| (note that some handle types may never have 162 // |MOJO_HANDLE_RIGHT_DUPLICATE| (note that some handle types may never have
154 // this right). 163 // this right).
155 // 164 //
156 // The rights for the new handle are determined as in |MojoReduceRights()|. That 165 // The rights for the new handle are determined as in
157 // is, on success: 166 // |MojoReplaceHandleWithReducedRights()|. That is, on success:
158 // 167 //
159 // new handle rights = original handle rights & ~rights_to_remove. 168 // new handle rights = original handle rights & ~rights_to_remove.
160 // 169 //
161 // Returns: 170 // Returns:
162 // |MOJO_RESULT_OK| on success. 171 // |MOJO_RESULT_OK| on success.
163 // |MOJO_RESULT_INVALID_ARGUMENT| if |handle| is not a valid handle. 172 // |MOJO_RESULT_INVALID_ARGUMENT| if |handle| is not a valid handle.
164 // |MOJO_RESULT_PERMISSION_DENIED| if |handle| does not have the 173 // |MOJO_RESULT_PERMISSION_DENIED| if |handle| does not have the
165 // |MOJO_HANDLE_RIGHT_DUPLICATE| right. 174 // |MOJO_HANDLE_RIGHT_DUPLICATE| right.
166 // |MOJO_RESULT_RESOURCE_EXHAUSTED| if a process/system/quota/etc. limit has 175 // |MOJO_RESULT_RESOURCE_EXHAUSTED| if a process/system/quota/etc. limit has
167 // been reached. 176 // been reached.
(...skipping 19 matching lines...) Expand all
187 // been reached. 196 // been reached.
188 // |MOJO_RESULT_BUSY| if |handle| is currently in use in some transaction 197 // |MOJO_RESULT_BUSY| if |handle| is currently in use in some transaction
189 // (that, e.g., may result in it being invalidated, such as being sent in 198 // (that, e.g., may result in it being invalidated, such as being sent in
190 // a message). 199 // a message).
191 MojoResult MojoDuplicateHandle(MojoHandle handle, 200 MojoResult MojoDuplicateHandle(MojoHandle handle,
192 MojoHandle* new_handle); // Out. 201 MojoHandle* new_handle); // Out.
193 202
194 MOJO_END_EXTERN_C 203 MOJO_END_EXTERN_C
195 204
196 #endif // MOJO_PUBLIC_C_SYSTEM_HANDLE_H_ 205 #endif // MOJO_PUBLIC_C_SYSTEM_HANDLE_H_
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698