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