OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 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 // WARNING this file was generated by generate_nacl_bindings.py | 5 // WARNING this file was generated by generate_nacl_bindings.py |
6 // Do not edit by hand. | 6 // Do not edit by hand. |
7 | 7 |
8 #include <stdio.h> | 8 #include <stdio.h> |
9 #include <string.h> | 9 #include <string.h> |
10 | 10 |
(...skipping 10 matching lines...) Expand all Loading... |
21 struct NaClAbiNaClImcMsgIoVec iov[1] = { | 21 struct NaClAbiNaClImcMsgIoVec iov[1] = { |
22 {params, num_params} | 22 {params, num_params} |
23 }; | 23 }; |
24 struct NaClAbiNaClImcMsgHdr msgh = {iov, 1, NULL, 0}; | 24 struct NaClAbiNaClImcMsgHdr msgh = {iov, 1, NULL, 0}; |
25 // Note: return value unchecked. We're relying on the result parameter being | 25 // Note: return value unchecked. We're relying on the result parameter being |
26 // unmodified - if the syscall fails, the Mojo function will return whatever | 26 // unmodified - if the syscall fails, the Mojo function will return whatever |
27 // the result parameter was initialized to before this function was called. | 27 // the result parameter was initialized to before this function was called. |
28 imc_sendmsg(NACL_MOJO_DESC, &msgh, 0); | 28 imc_sendmsg(NACL_MOJO_DESC, &msgh, 0); |
29 } | 29 } |
30 | 30 |
31 static MojoResult irt_MojoCreateSharedBuffer( | 31 static MojoResult irt__MojoGetInitialHandle(MojoHandle* handle) { |
32 const struct MojoCreateSharedBufferOptions* options, | 32 uint32_t params[3]; |
33 uint64_t num_bytes, | 33 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
34 MojoHandle* shared_buffer_handle) { | 34 params[0] = 0; |
| 35 params[1] = (uint32_t)(handle); |
| 36 params[2] = (uint32_t)(&result); |
| 37 DoMojoCall(params, sizeof(params)); |
| 38 return result; |
| 39 }; |
| 40 |
| 41 static MojoTimeTicks irt_MojoGetTimeTicksNow() { |
| 42 uint32_t params[2]; |
| 43 MojoTimeTicks result = 0; |
| 44 params[0] = 1; |
| 45 params[1] = (uint32_t)(&result); |
| 46 DoMojoCall(params, sizeof(params)); |
| 47 return result; |
| 48 }; |
| 49 |
| 50 static MojoResult irt_MojoClose(MojoHandle handle) { |
| 51 uint32_t params[3]; |
| 52 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
| 53 params[0] = 2; |
| 54 params[1] = (uint32_t)(&handle); |
| 55 params[2] = (uint32_t)(&result); |
| 56 DoMojoCall(params, sizeof(params)); |
| 57 return result; |
| 58 }; |
| 59 |
| 60 static MojoResult irt_MojoWait( |
| 61 MojoHandle handle, |
| 62 MojoHandleSignals signals, |
| 63 MojoDeadline deadline, |
| 64 struct MojoHandleSignalsState* signals_state) { |
| 65 uint32_t params[6]; |
| 66 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
| 67 params[0] = 3; |
| 68 params[1] = (uint32_t)(&handle); |
| 69 params[2] = (uint32_t)(&signals); |
| 70 params[3] = (uint32_t)(&deadline); |
| 71 params[4] = (uint32_t)(signals_state); |
| 72 params[5] = (uint32_t)(&result); |
| 73 DoMojoCall(params, sizeof(params)); |
| 74 return result; |
| 75 }; |
| 76 |
| 77 static MojoResult irt_MojoWaitMany( |
| 78 const MojoHandle* handles, |
| 79 const MojoHandleSignals* signals, |
| 80 uint32_t num_handles, |
| 81 MojoDeadline deadline, |
| 82 uint32_t* result_index, |
| 83 struct MojoHandleSignalsState* signals_states) { |
| 84 uint32_t params[8]; |
| 85 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
| 86 params[0] = 4; |
| 87 params[1] = (uint32_t)(handles); |
| 88 params[2] = (uint32_t)(signals); |
| 89 params[3] = (uint32_t)(&num_handles); |
| 90 params[4] = (uint32_t)(&deadline); |
| 91 params[5] = (uint32_t)(result_index); |
| 92 params[6] = (uint32_t)(signals_states); |
| 93 params[7] = (uint32_t)(&result); |
| 94 DoMojoCall(params, sizeof(params)); |
| 95 return result; |
| 96 }; |
| 97 |
| 98 static MojoResult irt_MojoCreateMessagePipe( |
| 99 const struct MojoCreateMessagePipeOptions* options, |
| 100 MojoHandle* message_pipe_handle0, |
| 101 MojoHandle* message_pipe_handle1) { |
35 uint32_t params[5]; | 102 uint32_t params[5]; |
36 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | 103 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
37 params[0] = 0; | 104 params[0] = 5; |
38 params[1] = (uint32_t)(options); | 105 params[1] = (uint32_t)(options); |
39 params[2] = (uint32_t)(&num_bytes); | 106 params[2] = (uint32_t)(message_pipe_handle0); |
40 params[3] = (uint32_t)(shared_buffer_handle); | 107 params[3] = (uint32_t)(message_pipe_handle1); |
41 params[4] = (uint32_t)(&result); | 108 params[4] = (uint32_t)(&result); |
42 DoMojoCall(params, sizeof(params)); | 109 DoMojoCall(params, sizeof(params)); |
43 return result; | 110 return result; |
44 }; | 111 }; |
45 | 112 |
46 static MojoResult irt_MojoDuplicateBufferHandle( | 113 static MojoResult irt_MojoWriteMessage( |
47 MojoHandle buffer_handle, | 114 MojoHandle message_pipe_handle, |
48 const struct MojoDuplicateBufferHandleOptions* options, | 115 const void* bytes, |
49 MojoHandle* new_buffer_handle) { | 116 uint32_t num_bytes, |
50 uint32_t params[5]; | 117 const MojoHandle* handles, |
| 118 uint32_t num_handles, |
| 119 MojoWriteMessageFlags flags) { |
| 120 uint32_t params[8]; |
51 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | 121 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
52 params[0] = 1; | 122 params[0] = 6; |
53 params[1] = (uint32_t)(&buffer_handle); | 123 params[1] = (uint32_t)(&message_pipe_handle); |
54 params[2] = (uint32_t)(options); | 124 params[2] = (uint32_t)(bytes); |
55 params[3] = (uint32_t)(new_buffer_handle); | 125 params[3] = (uint32_t)(&num_bytes); |
56 params[4] = (uint32_t)(&result); | 126 params[4] = (uint32_t)(handles); |
| 127 params[5] = (uint32_t)(&num_handles); |
| 128 params[6] = (uint32_t)(&flags); |
| 129 params[7] = (uint32_t)(&result); |
57 DoMojoCall(params, sizeof(params)); | 130 DoMojoCall(params, sizeof(params)); |
58 return result; | 131 return result; |
59 }; | 132 }; |
60 | 133 |
61 static MojoResult irt_MojoMapBuffer( | 134 static MojoResult irt_MojoReadMessage( |
62 MojoHandle buffer_handle, | 135 MojoHandle message_pipe_handle, |
63 uint64_t offset, | 136 void* bytes, |
64 uint64_t num_bytes, | 137 uint32_t* num_bytes, |
65 void** buffer, | 138 MojoHandle* handles, |
66 MojoMapBufferFlags flags) { | 139 uint32_t* num_handles, |
67 uint32_t params[7]; | 140 MojoReadMessageFlags flags) { |
| 141 uint32_t params[8]; |
68 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | 142 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
69 params[0] = 2; | 143 params[0] = 7; |
70 params[1] = (uint32_t)(&buffer_handle); | 144 params[1] = (uint32_t)(&message_pipe_handle); |
71 params[2] = (uint32_t)(&offset); | 145 params[2] = (uint32_t)(bytes); |
72 params[3] = (uint32_t)(&num_bytes); | 146 params[3] = (uint32_t)(num_bytes); |
73 params[4] = (uint32_t)(buffer); | 147 params[4] = (uint32_t)(handles); |
74 params[5] = (uint32_t)(&flags); | 148 params[5] = (uint32_t)(num_handles); |
75 params[6] = (uint32_t)(&result); | 149 params[6] = (uint32_t)(&flags); |
| 150 params[7] = (uint32_t)(&result); |
76 DoMojoCall(params, sizeof(params)); | 151 DoMojoCall(params, sizeof(params)); |
77 return result; | 152 return result; |
78 }; | 153 }; |
79 | |
80 static MojoResult irt_MojoUnmapBuffer(void* buffer) { | |
81 uint32_t params[3]; | |
82 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | |
83 params[0] = 3; | |
84 params[1] = (uint32_t)(&buffer); | |
85 params[2] = (uint32_t)(&result); | |
86 DoMojoCall(params, sizeof(params)); | |
87 return result; | |
88 }; | |
89 | 154 |
90 static MojoResult irt_MojoCreateDataPipe( | 155 static MojoResult irt_MojoCreateDataPipe( |
91 const struct MojoCreateDataPipeOptions* options, | 156 const struct MojoCreateDataPipeOptions* options, |
92 MojoHandle* data_pipe_producer_handle, | 157 MojoHandle* data_pipe_producer_handle, |
93 MojoHandle* data_pipe_consumer_handle) { | 158 MojoHandle* data_pipe_consumer_handle) { |
94 uint32_t params[5]; | 159 uint32_t params[5]; |
95 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | 160 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
96 params[0] = 4; | 161 params[0] = 8; |
97 params[1] = (uint32_t)(options); | 162 params[1] = (uint32_t)(options); |
98 params[2] = (uint32_t)(data_pipe_producer_handle); | 163 params[2] = (uint32_t)(data_pipe_producer_handle); |
99 params[3] = (uint32_t)(data_pipe_consumer_handle); | 164 params[3] = (uint32_t)(data_pipe_consumer_handle); |
100 params[4] = (uint32_t)(&result); | 165 params[4] = (uint32_t)(&result); |
101 DoMojoCall(params, sizeof(params)); | 166 DoMojoCall(params, sizeof(params)); |
102 return result; | 167 return result; |
103 }; | 168 }; |
104 | 169 |
105 static MojoResult irt_MojoWriteData( | 170 static MojoResult irt_MojoWriteData( |
106 MojoHandle data_pipe_producer_handle, | 171 MojoHandle data_pipe_producer_handle, |
107 const void* elements, | 172 const void* elements, |
108 uint32_t* num_bytes, | 173 uint32_t* num_bytes, |
109 MojoWriteDataFlags flags) { | 174 MojoWriteDataFlags flags) { |
110 uint32_t params[6]; | 175 uint32_t params[6]; |
111 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | 176 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
112 params[0] = 5; | 177 params[0] = 9; |
113 params[1] = (uint32_t)(&data_pipe_producer_handle); | 178 params[1] = (uint32_t)(&data_pipe_producer_handle); |
114 params[2] = (uint32_t)(elements); | 179 params[2] = (uint32_t)(elements); |
115 params[3] = (uint32_t)(num_bytes); | 180 params[3] = (uint32_t)(num_bytes); |
116 params[4] = (uint32_t)(&flags); | 181 params[4] = (uint32_t)(&flags); |
117 params[5] = (uint32_t)(&result); | 182 params[5] = (uint32_t)(&result); |
118 DoMojoCall(params, sizeof(params)); | 183 DoMojoCall(params, sizeof(params)); |
119 return result; | 184 return result; |
120 }; | 185 }; |
121 | 186 |
122 static MojoResult irt_MojoBeginWriteData( | 187 static MojoResult irt_MojoBeginWriteData( |
123 MojoHandle data_pipe_producer_handle, | 188 MojoHandle data_pipe_producer_handle, |
124 void** buffer, | 189 void** buffer, |
125 uint32_t* buffer_num_bytes, | 190 uint32_t* buffer_num_bytes, |
126 MojoWriteDataFlags flags) { | 191 MojoWriteDataFlags flags) { |
127 uint32_t params[6]; | 192 uint32_t params[6]; |
128 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | 193 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
129 params[0] = 6; | 194 params[0] = 10; |
130 params[1] = (uint32_t)(&data_pipe_producer_handle); | 195 params[1] = (uint32_t)(&data_pipe_producer_handle); |
131 params[2] = (uint32_t)(buffer); | 196 params[2] = (uint32_t)(buffer); |
132 params[3] = (uint32_t)(buffer_num_bytes); | 197 params[3] = (uint32_t)(buffer_num_bytes); |
133 params[4] = (uint32_t)(&flags); | 198 params[4] = (uint32_t)(&flags); |
134 params[5] = (uint32_t)(&result); | 199 params[5] = (uint32_t)(&result); |
135 DoMojoCall(params, sizeof(params)); | 200 DoMojoCall(params, sizeof(params)); |
136 return result; | 201 return result; |
137 }; | 202 }; |
138 | 203 |
139 static MojoResult irt_MojoEndWriteData( | 204 static MojoResult irt_MojoEndWriteData( |
140 MojoHandle data_pipe_producer_handle, | 205 MojoHandle data_pipe_producer_handle, |
141 uint32_t num_bytes_written) { | 206 uint32_t num_bytes_written) { |
142 uint32_t params[4]; | 207 uint32_t params[4]; |
143 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | 208 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
144 params[0] = 7; | 209 params[0] = 11; |
145 params[1] = (uint32_t)(&data_pipe_producer_handle); | 210 params[1] = (uint32_t)(&data_pipe_producer_handle); |
146 params[2] = (uint32_t)(&num_bytes_written); | 211 params[2] = (uint32_t)(&num_bytes_written); |
147 params[3] = (uint32_t)(&result); | 212 params[3] = (uint32_t)(&result); |
148 DoMojoCall(params, sizeof(params)); | 213 DoMojoCall(params, sizeof(params)); |
149 return result; | 214 return result; |
150 }; | 215 }; |
151 | 216 |
152 static MojoResult irt_MojoReadData( | 217 static MojoResult irt_MojoReadData( |
153 MojoHandle data_pipe_consumer_handle, | 218 MojoHandle data_pipe_consumer_handle, |
154 void* elements, | 219 void* elements, |
155 uint32_t* num_bytes, | 220 uint32_t* num_bytes, |
156 MojoReadDataFlags flags) { | 221 MojoReadDataFlags flags) { |
157 uint32_t params[6]; | 222 uint32_t params[6]; |
158 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | 223 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
159 params[0] = 8; | 224 params[0] = 12; |
160 params[1] = (uint32_t)(&data_pipe_consumer_handle); | 225 params[1] = (uint32_t)(&data_pipe_consumer_handle); |
161 params[2] = (uint32_t)(elements); | 226 params[2] = (uint32_t)(elements); |
162 params[3] = (uint32_t)(num_bytes); | 227 params[3] = (uint32_t)(num_bytes); |
163 params[4] = (uint32_t)(&flags); | 228 params[4] = (uint32_t)(&flags); |
164 params[5] = (uint32_t)(&result); | 229 params[5] = (uint32_t)(&result); |
165 DoMojoCall(params, sizeof(params)); | 230 DoMojoCall(params, sizeof(params)); |
166 return result; | 231 return result; |
167 }; | 232 }; |
168 | 233 |
169 static MojoResult irt_MojoBeginReadData( | 234 static MojoResult irt_MojoBeginReadData( |
170 MojoHandle data_pipe_consumer_handle, | 235 MojoHandle data_pipe_consumer_handle, |
171 const void** buffer, | 236 const void** buffer, |
172 uint32_t* buffer_num_bytes, | 237 uint32_t* buffer_num_bytes, |
173 MojoReadDataFlags flags) { | 238 MojoReadDataFlags flags) { |
174 uint32_t params[6]; | 239 uint32_t params[6]; |
175 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | 240 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
176 params[0] = 9; | 241 params[0] = 13; |
177 params[1] = (uint32_t)(&data_pipe_consumer_handle); | 242 params[1] = (uint32_t)(&data_pipe_consumer_handle); |
178 params[2] = (uint32_t)(buffer); | 243 params[2] = (uint32_t)(buffer); |
179 params[3] = (uint32_t)(buffer_num_bytes); | 244 params[3] = (uint32_t)(buffer_num_bytes); |
180 params[4] = (uint32_t)(&flags); | 245 params[4] = (uint32_t)(&flags); |
181 params[5] = (uint32_t)(&result); | 246 params[5] = (uint32_t)(&result); |
182 DoMojoCall(params, sizeof(params)); | 247 DoMojoCall(params, sizeof(params)); |
183 return result; | 248 return result; |
184 }; | 249 }; |
185 | 250 |
186 static MojoResult irt_MojoEndReadData( | 251 static MojoResult irt_MojoEndReadData( |
187 MojoHandle data_pipe_consumer_handle, | 252 MojoHandle data_pipe_consumer_handle, |
188 uint32_t num_bytes_read) { | 253 uint32_t num_bytes_read) { |
189 uint32_t params[4]; | 254 uint32_t params[4]; |
190 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | 255 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
191 params[0] = 10; | 256 params[0] = 14; |
192 params[1] = (uint32_t)(&data_pipe_consumer_handle); | 257 params[1] = (uint32_t)(&data_pipe_consumer_handle); |
193 params[2] = (uint32_t)(&num_bytes_read); | 258 params[2] = (uint32_t)(&num_bytes_read); |
194 params[3] = (uint32_t)(&result); | 259 params[3] = (uint32_t)(&result); |
195 DoMojoCall(params, sizeof(params)); | 260 DoMojoCall(params, sizeof(params)); |
196 return result; | 261 return result; |
197 }; | 262 }; |
198 | 263 |
199 static MojoTimeTicks irt_MojoGetTimeTicksNow() { | 264 static MojoResult irt_MojoCreateSharedBuffer( |
200 uint32_t params[2]; | 265 const struct MojoCreateSharedBufferOptions* options, |
201 MojoTimeTicks result = 0; | 266 uint64_t num_bytes, |
202 params[0] = 11; | 267 MojoHandle* shared_buffer_handle) { |
203 params[1] = (uint32_t)(&result); | |
204 DoMojoCall(params, sizeof(params)); | |
205 return result; | |
206 }; | |
207 | |
208 static MojoResult irt_MojoClose(MojoHandle handle) { | |
209 uint32_t params[3]; | |
210 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | |
211 params[0] = 12; | |
212 params[1] = (uint32_t)(&handle); | |
213 params[2] = (uint32_t)(&result); | |
214 DoMojoCall(params, sizeof(params)); | |
215 return result; | |
216 }; | |
217 | |
218 static MojoResult irt_MojoWait( | |
219 MojoHandle handle, | |
220 MojoHandleSignals signals, | |
221 MojoDeadline deadline, | |
222 struct MojoHandleSignalsState* signals_state) { | |
223 uint32_t params[6]; | |
224 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | |
225 params[0] = 13; | |
226 params[1] = (uint32_t)(&handle); | |
227 params[2] = (uint32_t)(&signals); | |
228 params[3] = (uint32_t)(&deadline); | |
229 params[4] = (uint32_t)(signals_state); | |
230 params[5] = (uint32_t)(&result); | |
231 DoMojoCall(params, sizeof(params)); | |
232 return result; | |
233 }; | |
234 | |
235 static MojoResult irt_MojoWaitMany( | |
236 const MojoHandle* handles, | |
237 const MojoHandleSignals* signals, | |
238 uint32_t num_handles, | |
239 MojoDeadline deadline, | |
240 uint32_t* result_index, | |
241 struct MojoHandleSignalsState* signals_states) { | |
242 uint32_t params[8]; | |
243 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | |
244 params[0] = 14; | |
245 params[1] = (uint32_t)(handles); | |
246 params[2] = (uint32_t)(signals); | |
247 params[3] = (uint32_t)(&num_handles); | |
248 params[4] = (uint32_t)(&deadline); | |
249 params[5] = (uint32_t)(result_index); | |
250 params[6] = (uint32_t)(signals_states); | |
251 params[7] = (uint32_t)(&result); | |
252 DoMojoCall(params, sizeof(params)); | |
253 return result; | |
254 }; | |
255 | |
256 static MojoResult irt_MojoCreateMessagePipe( | |
257 const struct MojoCreateMessagePipeOptions* options, | |
258 MojoHandle* message_pipe_handle0, | |
259 MojoHandle* message_pipe_handle1) { | |
260 uint32_t params[5]; | 268 uint32_t params[5]; |
261 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | 269 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
262 params[0] = 15; | 270 params[0] = 15; |
263 params[1] = (uint32_t)(options); | 271 params[1] = (uint32_t)(options); |
264 params[2] = (uint32_t)(message_pipe_handle0); | 272 params[2] = (uint32_t)(&num_bytes); |
265 params[3] = (uint32_t)(message_pipe_handle1); | 273 params[3] = (uint32_t)(shared_buffer_handle); |
266 params[4] = (uint32_t)(&result); | 274 params[4] = (uint32_t)(&result); |
267 DoMojoCall(params, sizeof(params)); | 275 DoMojoCall(params, sizeof(params)); |
268 return result; | 276 return result; |
269 }; | 277 }; |
270 | 278 |
271 static MojoResult irt_MojoWriteMessage( | 279 static MojoResult irt_MojoDuplicateBufferHandle( |
272 MojoHandle message_pipe_handle, | 280 MojoHandle buffer_handle, |
273 const void* bytes, | 281 const struct MojoDuplicateBufferHandleOptions* options, |
274 uint32_t num_bytes, | 282 MojoHandle* new_buffer_handle) { |
275 const MojoHandle* handles, | 283 uint32_t params[5]; |
276 uint32_t num_handles, | |
277 MojoWriteMessageFlags flags) { | |
278 uint32_t params[8]; | |
279 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | 284 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
280 params[0] = 16; | 285 params[0] = 16; |
281 params[1] = (uint32_t)(&message_pipe_handle); | 286 params[1] = (uint32_t)(&buffer_handle); |
282 params[2] = (uint32_t)(bytes); | 287 params[2] = (uint32_t)(options); |
283 params[3] = (uint32_t)(&num_bytes); | 288 params[3] = (uint32_t)(new_buffer_handle); |
284 params[4] = (uint32_t)(handles); | 289 params[4] = (uint32_t)(&result); |
285 params[5] = (uint32_t)(&num_handles); | |
286 params[6] = (uint32_t)(&flags); | |
287 params[7] = (uint32_t)(&result); | |
288 DoMojoCall(params, sizeof(params)); | 290 DoMojoCall(params, sizeof(params)); |
289 return result; | 291 return result; |
290 }; | 292 }; |
291 | 293 |
292 static MojoResult irt_MojoReadMessage( | 294 static MojoResult irt_MojoGetBufferInformation( |
293 MojoHandle message_pipe_handle, | 295 MojoHandle buffer_handle, |
294 void* bytes, | 296 struct MojoBufferInformation* info, |
295 uint32_t* num_bytes, | 297 uint32_t info_num_bytes) { |
296 MojoHandle* handles, | 298 uint32_t params[5]; |
297 uint32_t* num_handles, | |
298 MojoReadMessageFlags flags) { | |
299 uint32_t params[8]; | |
300 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | 299 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
301 params[0] = 17; | 300 params[0] = 17; |
302 params[1] = (uint32_t)(&message_pipe_handle); | 301 params[1] = (uint32_t)(&buffer_handle); |
303 params[2] = (uint32_t)(bytes); | 302 params[2] = (uint32_t)(info); |
304 params[3] = (uint32_t)(num_bytes); | 303 params[3] = (uint32_t)(&info_num_bytes); |
305 params[4] = (uint32_t)(handles); | 304 params[4] = (uint32_t)(&result); |
306 params[5] = (uint32_t)(num_handles); | |
307 params[6] = (uint32_t)(&flags); | |
308 params[7] = (uint32_t)(&result); | |
309 DoMojoCall(params, sizeof(params)); | 305 DoMojoCall(params, sizeof(params)); |
310 return result; | 306 return result; |
311 }; | 307 }; |
312 | 308 |
313 static MojoResult irt__MojoGetInitialHandle(MojoHandle* handle) { | 309 static MojoResult irt_MojoMapBuffer( |
| 310 MojoHandle buffer_handle, |
| 311 uint64_t offset, |
| 312 uint64_t num_bytes, |
| 313 void** buffer, |
| 314 MojoMapBufferFlags flags) { |
| 315 uint32_t params[7]; |
| 316 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
| 317 params[0] = 18; |
| 318 params[1] = (uint32_t)(&buffer_handle); |
| 319 params[2] = (uint32_t)(&offset); |
| 320 params[3] = (uint32_t)(&num_bytes); |
| 321 params[4] = (uint32_t)(buffer); |
| 322 params[5] = (uint32_t)(&flags); |
| 323 params[6] = (uint32_t)(&result); |
| 324 DoMojoCall(params, sizeof(params)); |
| 325 return result; |
| 326 }; |
| 327 |
| 328 static MojoResult irt_MojoUnmapBuffer(void* buffer) { |
314 uint32_t params[3]; | 329 uint32_t params[3]; |
315 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; | 330 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT; |
316 params[0] = 18; | 331 params[0] = 19; |
317 params[1] = (uint32_t)(handle); | 332 params[1] = (uint32_t)(&buffer); |
318 params[2] = (uint32_t)(&result); | 333 params[2] = (uint32_t)(&result); |
319 DoMojoCall(params, sizeof(params)); | 334 DoMojoCall(params, sizeof(params)); |
320 return result; | 335 return result; |
321 }; | 336 }; |
322 | 337 |
323 struct nacl_irt_mojo kIrtMojo = { | 338 struct nacl_irt_mojo kIrtMojo = { |
324 &irt_MojoCreateSharedBuffer, | 339 &irt__MojoGetInitialHandle, |
325 &irt_MojoDuplicateBufferHandle, | |
326 &irt_MojoMapBuffer, | |
327 &irt_MojoUnmapBuffer, | |
328 &irt_MojoCreateDataPipe, | |
329 &irt_MojoWriteData, | |
330 &irt_MojoBeginWriteData, | |
331 &irt_MojoEndWriteData, | |
332 &irt_MojoReadData, | |
333 &irt_MojoBeginReadData, | |
334 &irt_MojoEndReadData, | |
335 &irt_MojoGetTimeTicksNow, | 340 &irt_MojoGetTimeTicksNow, |
336 &irt_MojoClose, | 341 &irt_MojoClose, |
337 &irt_MojoWait, | 342 &irt_MojoWait, |
338 &irt_MojoWaitMany, | 343 &irt_MojoWaitMany, |
339 &irt_MojoCreateMessagePipe, | 344 &irt_MojoCreateMessagePipe, |
340 &irt_MojoWriteMessage, | 345 &irt_MojoWriteMessage, |
341 &irt_MojoReadMessage, | 346 &irt_MojoReadMessage, |
342 &irt__MojoGetInitialHandle, | 347 &irt_MojoCreateDataPipe, |
| 348 &irt_MojoWriteData, |
| 349 &irt_MojoBeginWriteData, |
| 350 &irt_MojoEndWriteData, |
| 351 &irt_MojoReadData, |
| 352 &irt_MojoBeginReadData, |
| 353 &irt_MojoEndReadData, |
| 354 &irt_MojoCreateSharedBuffer, |
| 355 &irt_MojoDuplicateBufferHandle, |
| 356 &irt_MojoGetBufferInformation, |
| 357 &irt_MojoMapBuffer, |
| 358 &irt_MojoUnmapBuffer, |
343 }; | 359 }; |
344 | 360 |
345 | 361 |
346 size_t mojo_irt_query(const char* interface_ident, | 362 size_t mojo_irt_query(const char* interface_ident, |
347 void* table, | 363 void* table, |
348 size_t tablesize) { | 364 size_t tablesize) { |
349 static const size_t size = sizeof(kIrtMojo); | 365 static const size_t size = sizeof(kIrtMojo); |
350 if (0 == strcmp(interface_ident, NACL_IRT_MOJO_v0_1)) { | 366 if (0 == strcmp(interface_ident, NACL_IRT_MOJO_v0_1)) { |
351 if (size <= tablesize) { | 367 if (size <= tablesize) { |
352 memcpy(table, &kIrtMojo, size); | 368 memcpy(table, &kIrtMojo, size); |
353 return size; | 369 return size; |
354 } | 370 } |
355 } | 371 } |
356 return 0; | 372 return 0; |
357 } | 373 } |
OLD | NEW |