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

Side by Side Diff: mojo/nacl/sfi/nacl_bindings/mojo_irt.c

Issue 1778753002: Implement MojoGetBufferInformation(), part 3. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 9 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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698