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