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