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

Side by Side Diff: mojo/monacl/libmojo.cc

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

Powered by Google App Engine
This is Rietveld 408576698