| OLD | NEW |
| 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 Loading... |
| 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 } |
| OLD | NEW |