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 ba87de7f079c06972715c00eb4243fa4c74be150..0d0b61b7c5b5e3897fc039e035f98e2c562c8996 100644 |
--- a/mojo/public/c/system/message_pipe.h |
+++ b/mojo/public/c/system/message_pipe.h |
@@ -9,9 +9,36 @@ |
#ifndef MOJO_PUBLIC_C_SYSTEM_MESSAGE_PIPE_H_ |
#define MOJO_PUBLIC_C_SYSTEM_MESSAGE_PIPE_H_ |
+#include "mojo/public/c/system/macros.h" |
#include "mojo/public/c/system/system_export.h" |
#include "mojo/public/c/system/types.h" |
+// |MojoCreateMessagePipeOptions|: Used to specify creation parameters for a |
+// message pipe to |MojoCreateMessagePipe()|. |
+// |uint32_t struct_size|: Set to the size of the |
+// |MojoCreateMessagePipeOptions| struct. (Used to allow for future |
+// extensions.) |
+// |MojoCreateMessagePipeOptionsFlags flags|: Reserved for future use. |
+// |MOJO_CREATE_MESSAGE_PIPE_OPTIONS_FLAG_NONE|: No flags; default mode. |
+ |
+typedef uint32_t MojoCreateMessagePipeOptionsFlags; |
+ |
+#ifdef __cplusplus |
+const MojoCreateMessagePipeOptionsFlags |
+ MOJO_CREATE_MESSAGE_PIPE_OPTIONS_FLAG_NONE = 0; |
+#else |
+#define MOJO_CREATE_MESSAGE_PIPE_OPTIONS_FLAG_NONE \ |
+ ((MojoCreateMessagePipeOptionsFlags) 0) |
+#endif |
+ |
+MOJO_COMPILE_ASSERT(MOJO_ALIGNOF(int64_t) == 8, int64_t_has_weird_alignment); |
+struct MOJO_ALIGNAS(8) MojoCreateMessagePipeOptions { |
+ uint32_t struct_size; |
+ MojoCreateMessagePipeOptionsFlags flags; |
+}; |
+MOJO_COMPILE_ASSERT(sizeof(MojoCreateMessagePipeOptions) == 8, |
+ MojoCreateMessagePipeOptions_has_wrong_size); |
+ |
// |MojoWriteMessageFlags|: Used to specify different modes to |
// |MojoWriteMessage()|. |
// |MOJO_WRITE_MESSAGE_FLAG_NONE| - No flags; default mode. |
@@ -50,8 +77,12 @@ extern "C" { |
// Creates a message pipe, which is a bidirectional communication channel for |
// framed data (i.e., messages). Messages can contain plain data and/or Mojo |
-// handles. On success, |*message_pipe_handle0| and |*message_pipe_handle1| are |
-// set to handles for the two endpoints (ports) for the message pipe. |
+// handles. |
+// |
+// |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. |
// |
// Returns: |
// |MOJO_RESULT_OK| on success. |
@@ -62,6 +93,7 @@ extern "C" { |
// |
// TODO(vtl): Add an options struct pointer argument. |
MOJO_SYSTEM_EXPORT MojoResult MojoCreateMessagePipe( |
+ const struct MojoCreateMessagePipeOptions* options, // Optional. |
MojoHandle* message_pipe_handle0, // Out. |
MojoHandle* message_pipe_handle1); // Out. |