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

Side by Side Diff: mojo/nacl/NOT_FOR_COMMIT/libmojo.cc

Issue 776643004: Update NaCl's generator to support new wait APIs. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Recast Created 6 years 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
OLDNEW
(Empty)
1 // Copyright 2014 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 // WARNING this file was generated by generate_nacl_bindings.py
6 // Do not edit by hand.
7
8 #include "mojo/public/c/system/core.h"
9 #include "native_client/src/public/chrome_main.h"
10 #include "native_client/src/public/imc_syscalls.h"
11 #include "native_client/src/public/imc_types.h"
12
13 // The value for this FD must not conflict with uses inside Chromium. However,
14 // mojo/nacl doesn't depend on any Chromium headers, so we can't use a #define
15 // from there.
16 #define NACL_MOJO_DESC (NACL_CHROME_DESC_BASE + 3)
17
18 static void DoMojoCall(uint32_t params[], nacl_abi_size_t num_params) {
19 NaClAbiNaClImcMsgIoVec iov[1] = {
20 {params, num_params}
21 };
22 NaClAbiNaClImcMsgHdr msgh = {iov, 1, NULL, 0};
23 // Note: return value unchecked. We're relying on the result parameter being
24 // unmodified - if the syscall fails, the Mojo function will return whatever
25 // the result parameter was initialized to before this function was called.
26 imc_sendmsg(NACL_MOJO_DESC, &msgh, 0);
27 }
28
29 MojoResult MojoCreateSharedBuffer(
30 const struct MojoCreateSharedBufferOptions* options,
31 uint64_t num_bytes,
32 MojoHandle* shared_buffer_handle) {
33 uint32_t params[5];
34 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
35 params[0] = 0;
36 params[1] = reinterpret_cast<uint32_t>(options);
37 params[2] = reinterpret_cast<uint32_t>(&num_bytes);
38 params[3] = reinterpret_cast<uint32_t>(shared_buffer_handle);
39 params[4] = reinterpret_cast<uint32_t>(&result);
40 DoMojoCall(params, sizeof(params));
41 return result;
42 }
43
44 MojoResult MojoDuplicateBufferHandle(
45 MojoHandle buffer_handle,
46 const struct MojoDuplicateBufferHandleOptions* options,
47 MojoHandle* new_buffer_handle) {
48 uint32_t params[5];
49 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
50 params[0] = 1;
51 params[1] = reinterpret_cast<uint32_t>(&buffer_handle);
52 params[2] = reinterpret_cast<uint32_t>(options);
53 params[3] = reinterpret_cast<uint32_t>(new_buffer_handle);
54 params[4] = reinterpret_cast<uint32_t>(&result);
55 DoMojoCall(params, sizeof(params));
56 return result;
57 }
58
59 MojoResult MojoMapBuffer(
60 MojoHandle buffer_handle,
61 uint64_t offset,
62 uint64_t num_bytes,
63 void** buffer,
64 MojoMapBufferFlags flags) {
65 uint32_t params[7];
66 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
67 params[0] = 2;
68 params[1] = reinterpret_cast<uint32_t>(&buffer_handle);
69 params[2] = reinterpret_cast<uint32_t>(&offset);
70 params[3] = reinterpret_cast<uint32_t>(&num_bytes);
71 params[4] = reinterpret_cast<uint32_t>(buffer);
72 params[5] = reinterpret_cast<uint32_t>(&flags);
73 params[6] = reinterpret_cast<uint32_t>(&result);
74 DoMojoCall(params, sizeof(params));
75 return result;
76 }
77
78 MojoResult MojoUnmapBuffer(void* buffer) {
79 uint32_t params[3];
80 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
81 params[0] = 3;
82 params[1] = reinterpret_cast<uint32_t>(&buffer);
83 params[2] = reinterpret_cast<uint32_t>(&result);
84 DoMojoCall(params, sizeof(params));
85 return result;
86 }
87
88 MojoResult MojoCreateDataPipe(
89 const struct MojoCreateDataPipeOptions* options,
90 MojoHandle* data_pipe_producer_handle,
91 MojoHandle* data_pipe_consumer_handle) {
92 uint32_t params[5];
93 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
94 params[0] = 4;
95 params[1] = reinterpret_cast<uint32_t>(options);
96 params[2] = reinterpret_cast<uint32_t>(data_pipe_producer_handle);
97 params[3] = reinterpret_cast<uint32_t>(data_pipe_consumer_handle);
98 params[4] = reinterpret_cast<uint32_t>(&result);
99 DoMojoCall(params, sizeof(params));
100 return result;
101 }
102
103 MojoResult MojoWriteData(
104 MojoHandle data_pipe_producer_handle,
105 const void* elements,
106 uint32_t* num_bytes,
107 MojoWriteDataFlags flags) {
108 uint32_t params[6];
109 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
110 params[0] = 5;
111 params[1] = reinterpret_cast<uint32_t>(&data_pipe_producer_handle);
112 params[2] = reinterpret_cast<uint32_t>(elements);
113 params[3] = reinterpret_cast<uint32_t>(num_bytes);
114 params[4] = reinterpret_cast<uint32_t>(&flags);
115 params[5] = reinterpret_cast<uint32_t>(&result);
116 DoMojoCall(params, sizeof(params));
117 return result;
118 }
119
120 MojoResult MojoBeginWriteData(
121 MojoHandle data_pipe_producer_handle,
122 void** buffer,
123 uint32_t* buffer_num_bytes,
124 MojoWriteDataFlags flags) {
125 uint32_t params[6];
126 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
127 params[0] = 6;
128 params[1] = reinterpret_cast<uint32_t>(&data_pipe_producer_handle);
129 params[2] = reinterpret_cast<uint32_t>(buffer);
130 params[3] = reinterpret_cast<uint32_t>(buffer_num_bytes);
131 params[4] = reinterpret_cast<uint32_t>(&flags);
132 params[5] = reinterpret_cast<uint32_t>(&result);
133 DoMojoCall(params, sizeof(params));
134 return result;
135 }
136
137 MojoResult MojoEndWriteData(
138 MojoHandle data_pipe_producer_handle,
139 uint32_t num_bytes_written) {
140 uint32_t params[4];
141 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
142 params[0] = 7;
143 params[1] = reinterpret_cast<uint32_t>(&data_pipe_producer_handle);
144 params[2] = reinterpret_cast<uint32_t>(&num_bytes_written);
145 params[3] = reinterpret_cast<uint32_t>(&result);
146 DoMojoCall(params, sizeof(params));
147 return result;
148 }
149
150 MojoResult MojoReadData(
151 MojoHandle data_pipe_consumer_handle,
152 void* elements,
153 uint32_t* num_bytes,
154 MojoReadDataFlags flags) {
155 uint32_t params[6];
156 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
157 params[0] = 8;
158 params[1] = reinterpret_cast<uint32_t>(&data_pipe_consumer_handle);
159 params[2] = reinterpret_cast<uint32_t>(elements);
160 params[3] = reinterpret_cast<uint32_t>(num_bytes);
161 params[4] = reinterpret_cast<uint32_t>(&flags);
162 params[5] = reinterpret_cast<uint32_t>(&result);
163 DoMojoCall(params, sizeof(params));
164 return result;
165 }
166
167 MojoResult MojoBeginReadData(
168 MojoHandle data_pipe_consumer_handle,
169 const void** buffer,
170 uint32_t* buffer_num_bytes,
171 MojoReadDataFlags flags) {
172 uint32_t params[6];
173 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
174 params[0] = 9;
175 params[1] = reinterpret_cast<uint32_t>(&data_pipe_consumer_handle);
176 params[2] = reinterpret_cast<uint32_t>(buffer);
177 params[3] = reinterpret_cast<uint32_t>(buffer_num_bytes);
178 params[4] = reinterpret_cast<uint32_t>(&flags);
179 params[5] = reinterpret_cast<uint32_t>(&result);
180 DoMojoCall(params, sizeof(params));
181 return result;
182 }
183
184 MojoResult MojoEndReadData(
185 MojoHandle data_pipe_consumer_handle,
186 uint32_t num_bytes_read) {
187 uint32_t params[4];
188 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
189 params[0] = 10;
190 params[1] = reinterpret_cast<uint32_t>(&data_pipe_consumer_handle);
191 params[2] = reinterpret_cast<uint32_t>(&num_bytes_read);
192 params[3] = reinterpret_cast<uint32_t>(&result);
193 DoMojoCall(params, sizeof(params));
194 return result;
195 }
196
197 MojoTimeTicks MojoGetTimeTicksNow() {
198 uint32_t params[2];
199 MojoTimeTicks result = 0;
200 params[0] = 11;
201 params[1] = reinterpret_cast<uint32_t>(&result);
202 DoMojoCall(params, sizeof(params));
203 return result;
204 }
205
206 MojoResult MojoClose(MojoHandle handle) {
207 uint32_t params[3];
208 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
209 params[0] = 12;
210 params[1] = reinterpret_cast<uint32_t>(&handle);
211 params[2] = reinterpret_cast<uint32_t>(&result);
212 DoMojoCall(params, sizeof(params));
213 return result;
214 }
215
216 MojoResult MojoWait(
217 MojoHandle handle,
218 MojoHandleSignals signals,
219 MojoDeadline deadline) {
220 uint32_t params[5];
221 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
222 params[0] = 13;
223 params[1] = reinterpret_cast<uint32_t>(&handle);
224 params[2] = reinterpret_cast<uint32_t>(&signals);
225 params[3] = reinterpret_cast<uint32_t>(&deadline);
226 params[4] = reinterpret_cast<uint32_t>(&result);
227 DoMojoCall(params, sizeof(params));
228 return result;
229 }
230
231 MojoResult MojoWaitMany(
232 const MojoHandle* handles,
233 const MojoHandleSignals* signals,
234 uint32_t num_handles,
235 MojoDeadline deadline) {
236 uint32_t params[6];
237 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
238 params[0] = 14;
239 params[1] = reinterpret_cast<uint32_t>(handles);
240 params[2] = reinterpret_cast<uint32_t>(signals);
241 params[3] = reinterpret_cast<uint32_t>(&num_handles);
242 params[4] = reinterpret_cast<uint32_t>(&deadline);
243 params[5] = reinterpret_cast<uint32_t>(&result);
244 DoMojoCall(params, sizeof(params));
245 return result;
246 }
247
248 MojoResult MojoNewWait(
249 MojoHandle handle,
250 MojoHandleSignals signals,
251 MojoDeadline deadline,
252 struct MojoHandleSignalsState* signals_state) {
253 uint32_t params[6];
254 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
255 params[0] = 15;
256 params[1] = reinterpret_cast<uint32_t>(&handle);
257 params[2] = reinterpret_cast<uint32_t>(&signals);
258 params[3] = reinterpret_cast<uint32_t>(&deadline);
259 params[4] = reinterpret_cast<uint32_t>(signals_state);
260 params[5] = reinterpret_cast<uint32_t>(&result);
261 DoMojoCall(params, sizeof(params));
262 return result;
263 }
264
265 MojoResult MojoNewWaitMany(
266 const MojoHandle* handles,
267 const MojoHandleSignals* signals,
268 uint32_t num_handles,
269 MojoDeadline deadline,
270 uint32_t* result_index,
271 MojoHandleSignalsState* signals_states) {
272 uint32_t params[8];
273 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
274 params[0] = 16;
275 params[1] = reinterpret_cast<uint32_t>(handles);
276 params[2] = reinterpret_cast<uint32_t>(signals);
277 params[3] = reinterpret_cast<uint32_t>(&num_handles);
278 params[4] = reinterpret_cast<uint32_t>(&deadline);
279 params[5] = reinterpret_cast<uint32_t>(result_index);
280 params[6] = reinterpret_cast<uint32_t>(signals_states);
281 params[7] = reinterpret_cast<uint32_t>(&result);
282 DoMojoCall(params, sizeof(params));
283 return result;
284 }
285
286 MojoResult MojoCreateMessagePipe(
287 const struct MojoCreateMessagePipeOptions* options,
288 MojoHandle* message_pipe_handle0,
289 MojoHandle* message_pipe_handle1) {
290 uint32_t params[5];
291 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
292 params[0] = 17;
293 params[1] = reinterpret_cast<uint32_t>(options);
294 params[2] = reinterpret_cast<uint32_t>(message_pipe_handle0);
295 params[3] = reinterpret_cast<uint32_t>(message_pipe_handle1);
296 params[4] = reinterpret_cast<uint32_t>(&result);
297 DoMojoCall(params, sizeof(params));
298 return result;
299 }
300
301 MojoResult MojoWriteMessage(
302 MojoHandle message_pipe_handle,
303 const void* bytes,
304 uint32_t num_bytes,
305 const MojoHandle* handles,
306 uint32_t num_handles,
307 MojoWriteMessageFlags flags) {
308 uint32_t params[8];
309 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
310 params[0] = 18;
311 params[1] = reinterpret_cast<uint32_t>(&message_pipe_handle);
312 params[2] = reinterpret_cast<uint32_t>(bytes);
313 params[3] = reinterpret_cast<uint32_t>(&num_bytes);
314 params[4] = reinterpret_cast<uint32_t>(handles);
315 params[5] = reinterpret_cast<uint32_t>(&num_handles);
316 params[6] = reinterpret_cast<uint32_t>(&flags);
317 params[7] = reinterpret_cast<uint32_t>(&result);
318 DoMojoCall(params, sizeof(params));
319 return result;
320 }
321
322 MojoResult MojoReadMessage(
323 MojoHandle message_pipe_handle,
324 void* bytes,
325 uint32_t* num_bytes,
326 MojoHandle* handles,
327 uint32_t* num_handles,
328 MojoReadMessageFlags flags) {
329 uint32_t params[8];
330 MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
331 params[0] = 19;
332 params[1] = reinterpret_cast<uint32_t>(&message_pipe_handle);
333 params[2] = reinterpret_cast<uint32_t>(bytes);
334 params[3] = reinterpret_cast<uint32_t>(num_bytes);
335 params[4] = reinterpret_cast<uint32_t>(handles);
336 params[5] = reinterpret_cast<uint32_t>(num_handles);
337 params[6] = reinterpret_cast<uint32_t>(&flags);
338 params[7] = reinterpret_cast<uint32_t>(&result);
339 DoMojoCall(params, sizeof(params));
340 return result;
341 }
342
OLDNEW
« no previous file with comments | « no previous file | mojo/nacl/NOT_FOR_COMMIT/mojo_syscall.cc » ('j') | mojo/nacl/generator/interface_dsl.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698