OLD | NEW |
(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 |
OLD | NEW |