Index: mojo/public/c/system/message_pipe.h |
diff --git a/mojo/public/c/system/message_pipe.h b/mojo/public/c/system/message_pipe.h |
index cc57d8cd26a75eebf2feba09102b375292ccc25f..ea3dcc30e4a505b742d20faaff291e44f01799aa 100644 |
--- a/mojo/public/c/system/message_pipe.h |
+++ b/mojo/public/c/system/message_pipe.h |
@@ -63,7 +63,10 @@ MOJO_BEGIN_EXTERN_C |
// |options| may be set to null for a message pipe with the default options. |
// |
// On success, |*message_pipe_handle0| and |*message_pipe_handle1| are set to |
-// handles for the two endpoints (ports) for the message pipe. |
+// handles for the two endpoints (ports) for the message pipe. Both handles have |
+// (at least) the following rights: |MOJO_HANDLE_RIGHT_TRANSFER|, |
+// |MOJO_HANDLE_RIGHT_READ|, |MOJO_HANDLE_RIGHT_WRITE|, |
+// |MOJO_HANDLE_RIGHT_GET_OPTIONS|, and |MOJO_HANDLE_RIGHT_SET_OPTIONS|. |
// |
// Returns: |
// |MOJO_RESULT_OK| on success. |
@@ -78,22 +81,25 @@ MojoResult MojoCreateMessagePipe( |
MojoHandle* MOJO_RESTRICT message_pipe_handle1); // Out. |
// |MojoWriteMessage()|: Writes a message to the message pipe endpoint given by |
-// |message_pipe_handle|, with message data specified by |bytes| of size |
-// |num_bytes| and attached handles specified by |handles| of count |
-// |num_handles|, and options specified by |flags|. If there is no message data, |
-// |bytes| may be null, in which case |num_bytes| must be zero. If there are no |
-// attached handles, |handles| may be null, in which case |num_handles| must be |
-// zero. |
+// |message_pipe_handle| (which must have the |MOJO_HANDLE_RIGHT_WRITE| right), |
+// with message data specified by |bytes| of size |num_bytes| and attached |
+// handles specified by |handles| of count |num_handles|, and options specified |
+// by |flags|. If there is no message data, |bytes| may be null, in which case |
+// |num_bytes| must be zero. If there are no attached handles, |handles| may be |
+// null, in which case |num_handles| must be zero. |
// |
// If handles are attached, on success the handles will no longer be valid (the |
// receiver will receive equivalent, but logically different, handles). Handles |
-// to be sent should not be in simultaneous use (e.g., on another thread). |
+// to be sent should not be in simultaneous use (e.g., on another thread). On |
+// failure, any handles to be attached will remain valid. |
// |
// Returns: |
// |MOJO_RESULT_OK| on success (i.e., the message was enqueued). |
// |MOJO_RESULT_INVALID_ARGUMENT| if some argument was invalid (e.g., if |
// |message_pipe_handle| is not a valid handle, or some of the |
// requirements above are not satisfied). |
+// |MOJO_RESULT_PERMISSION_DENIED| if |message_pipe_handle| does not have the |
+// |MOJO_HANDLE_RIGHT_WRITE| right. |
// |MOJO_RESULT_RESOURCE_EXHAUSTED| if some system limit has been reached, or |
// the number of handles to send is too large (TODO(vtl): reconsider the |
// latter case). |
@@ -116,12 +122,13 @@ MojoResult MojoWriteMessage(MojoHandle message_pipe_handle, // In. |
uint32_t num_handles, // In. |
MojoWriteMessageFlags flags); // In. |
-// |MojoReadMessage()|: Reads the next message from a message pipe, or indicates |
-// the size of the message if it cannot fit in the provided buffers. The message |
-// will be read in its entirety or not at all; if it is not, it will remain |
-// enqueued unless the |MOJO_READ_MESSAGE_FLAG_MAY_DISCARD| flag was passed. At |
-// most one message will be consumed from the queue, and the return value will |
-// indicate whether a message was successfully read. |
+// |MojoReadMessage()|: Reads the next message from the message pipe endpoint |
+// given by |message_pipe_handle| (which must have the |MOJO_HANDLE_RIGHT_READ| |
+// right) or indicates the size of the message if it cannot fit in the provided |
+// buffers. The message will be read in its entirety or not at all; if it is |
+// not, it will remain enqueued unless the |MOJO_READ_MESSAGE_FLAG_MAY_DISCARD| |
+// flag was passed. At most one message will be consumed from the queue, and the |
+// return value will indicate whether a message was successfully read. |
// |
// |num_bytes| and |num_handles| are optional in/out parameters that on input |
// must be set to the sizes of the |bytes| and |handles| arrays, and on output |
@@ -140,6 +147,8 @@ MojoResult MojoWriteMessage(MojoHandle message_pipe_handle, // In. |
// |MOJO_RESULT_OK| on success (i.e., a message was actually read). |
// |MOJO_RESULT_INVALID_ARGUMENT| if some argument was invalid. |
// |MOJO_RESULT_FAILED_PRECONDITION| if the other endpoint has been closed. |
+// |MOJO_RESULT_PERMISSION_DENIED| if |message_pipe_handle| does not have the |
+// |MOJO_HANDLE_RIGHT_READ| right. |
// |MOJO_RESULT_RESOURCE_EXHAUSTED| if the message was too large to fit in the |
// provided buffer(s). The message will have been left in the queue or |
// discarded, depending on flags. |