OLD | NEW |
| (Empty) |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef MOJO_PUBLIC_PLATFORM_NACL_MOJO_IRT_H_ | |
6 #define MOJO_PUBLIC_PLATFORM_NACL_MOJO_IRT_H_ | |
7 | |
8 #include <mojo/result.h> | |
9 #include <mojo/system/buffer.h> | |
10 #include <mojo/system/data_pipe.h> | |
11 #include <mojo/system/handle.h> | |
12 #include <mojo/system/message_pipe.h> | |
13 #include <mojo/system/time.h> | |
14 #include <mojo/system/wait_set.h> | |
15 | |
16 #define NACL_IRT_MOJO_v0_1 "nacl-irt-mojo-0.1" | |
17 | |
18 struct nacl_irt_mojo { | |
19 MojoResult (*_MojoGetInitialHandle)(MojoHandle* handle); | |
20 MojoTimeTicks (*MojoGetTimeTicksNow)(); | |
21 MojoResult (*MojoClose)(MojoHandle handle); | |
22 MojoResult (*MojoGetRights)(MojoHandle handle, MojoHandleRights* rights); | |
23 MojoResult (*MojoReplaceHandleWithReducedRights)( | |
24 MojoHandle handle, | |
25 MojoHandleRights rights_to_remove, | |
26 MojoHandle* replacement_handle); | |
27 MojoResult (*MojoDuplicateHandleWithReducedRights)( | |
28 MojoHandle handle, | |
29 MojoHandleRights rights_to_remove, | |
30 MojoHandle* new_handle); | |
31 MojoResult (*MojoDuplicateHandle)(MojoHandle handle, MojoHandle* new_handle); | |
32 MojoResult (*MojoWait)(MojoHandle handle, | |
33 MojoHandleSignals signals, | |
34 MojoDeadline deadline, | |
35 struct MojoHandleSignalsState* signals_state); | |
36 MojoResult (*MojoWaitMany)(const MojoHandle* handles, | |
37 const MojoHandleSignals* signals, | |
38 uint32_t num_handles, | |
39 MojoDeadline deadline, | |
40 uint32_t* result_index, | |
41 struct MojoHandleSignalsState* signals_states); | |
42 MojoResult (*MojoCreateMessagePipe)( | |
43 const struct MojoCreateMessagePipeOptions* options, | |
44 MojoHandle* message_pipe_handle0, | |
45 MojoHandle* message_pipe_handle1); | |
46 MojoResult (*MojoWriteMessage)(MojoHandle message_pipe_handle, | |
47 const void* bytes, | |
48 uint32_t num_bytes, | |
49 const MojoHandle* handles, | |
50 uint32_t num_handles, | |
51 MojoWriteMessageFlags flags); | |
52 MojoResult (*MojoReadMessage)(MojoHandle message_pipe_handle, | |
53 void* bytes, | |
54 uint32_t* num_bytes, | |
55 MojoHandle* handles, | |
56 uint32_t* num_handles, | |
57 MojoReadMessageFlags flags); | |
58 MojoResult (*MojoCreateDataPipe)( | |
59 const struct MojoCreateDataPipeOptions* options, | |
60 MojoHandle* data_pipe_producer_handle, | |
61 MojoHandle* data_pipe_consumer_handle); | |
62 MojoResult (*MojoSetDataPipeProducerOptions)( | |
63 MojoHandle data_pipe_producer_handle, | |
64 const struct MojoDataPipeProducerOptions* options); | |
65 MojoResult (*MojoGetDataPipeProducerOptions)( | |
66 MojoHandle data_pipe_producer_handle, | |
67 struct MojoDataPipeProducerOptions* options, | |
68 uint32_t options_num_bytes); | |
69 MojoResult (*MojoWriteData)(MojoHandle data_pipe_producer_handle, | |
70 const void* elements, | |
71 uint32_t* num_bytes, | |
72 MojoWriteDataFlags flags); | |
73 MojoResult (*MojoBeginWriteData)(MojoHandle data_pipe_producer_handle, | |
74 void** buffer, | |
75 uint32_t* buffer_num_bytes, | |
76 MojoWriteDataFlags flags); | |
77 MojoResult (*MojoEndWriteData)(MojoHandle data_pipe_producer_handle, | |
78 uint32_t num_bytes_written); | |
79 MojoResult (*MojoSetDataPipeConsumerOptions)( | |
80 MojoHandle data_pipe_consumer_handle, | |
81 const struct MojoDataPipeConsumerOptions* options); | |
82 MojoResult (*MojoGetDataPipeConsumerOptions)( | |
83 MojoHandle data_pipe_consumer_handle, | |
84 struct MojoDataPipeConsumerOptions* options, | |
85 uint32_t options_num_bytes); | |
86 MojoResult (*MojoReadData)(MojoHandle data_pipe_consumer_handle, | |
87 void* elements, | |
88 uint32_t* num_bytes, | |
89 MojoReadDataFlags flags); | |
90 MojoResult (*MojoBeginReadData)(MojoHandle data_pipe_consumer_handle, | |
91 const void** buffer, | |
92 uint32_t* buffer_num_bytes, | |
93 MojoReadDataFlags flags); | |
94 MojoResult (*MojoEndReadData)(MojoHandle data_pipe_consumer_handle, | |
95 uint32_t num_bytes_read); | |
96 MojoResult (*MojoCreateSharedBuffer)( | |
97 const struct MojoCreateSharedBufferOptions* options, | |
98 uint64_t num_bytes, | |
99 MojoHandle* shared_buffer_handle); | |
100 MojoResult (*MojoDuplicateBufferHandle)( | |
101 MojoHandle buffer_handle, | |
102 const struct MojoDuplicateBufferHandleOptions* options, | |
103 MojoHandle* new_buffer_handle); | |
104 MojoResult (*MojoGetBufferInformation)(MojoHandle buffer_handle, | |
105 struct MojoBufferInformation* info, | |
106 uint32_t info_num_bytes); | |
107 MojoResult (*MojoMapBuffer)(MojoHandle buffer_handle, | |
108 uint64_t offset, | |
109 uint64_t num_bytes, | |
110 void** buffer, | |
111 MojoMapBufferFlags flags); | |
112 MojoResult (*MojoUnmapBuffer)(void* buffer); | |
113 MojoResult (*MojoCreateWaitSet)( | |
114 const struct MojoCreateWaitSetOptions* options, | |
115 MojoHandle* handle); | |
116 MojoResult (*MojoWaitSetAdd)(MojoHandle wait_set_handle, | |
117 MojoHandle handle, | |
118 MojoHandleSignals signals, | |
119 uint64_t cookie, | |
120 const struct MojoWaitSetAddOptions* options); | |
121 MojoResult (*MojoWaitSetRemove)(MojoHandle wait_set_handle, uint64_t cookie); | |
122 MojoResult (*MojoWaitSetWait)(MojoHandle wait_set_handle, | |
123 MojoDeadline deadline, | |
124 uint32_t* num_results, | |
125 struct MojoWaitSetResult* results, | |
126 uint32_t* max_results); | |
127 }; | |
128 | |
129 #endif // MOJO_PUBLIC_PLATFORM_NACL_MOJO_IRT_H_ | |
OLD | NEW |