| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 #include "mojo/edk/embedder/embedder_internal.h" |
| 6 #include "mojo/edk/system/core.h" |
| 5 #include "mojo/public/c/system/buffer.h" | 7 #include "mojo/public/c/system/buffer.h" |
| 6 #include "mojo/public/c/system/data_pipe.h" | 8 #include "mojo/public/c/system/data_pipe.h" |
| 7 #include "mojo/public/c/system/functions.h" | 9 #include "mojo/public/c/system/functions.h" |
| 8 #include "mojo/public/c/system/message_pipe.h" | 10 #include "mojo/public/c/system/message_pipe.h" |
| 9 #include "third_party/mojo/src/mojo/edk/embedder/embedder_internal.h" | |
| 10 #include "third_party/mojo/src/mojo/edk/system/core.h" | |
| 11 | 11 |
| 12 using mojo::embedder::internal::g_core; | 12 using mojo::edk::internal::g_core; |
| 13 using mojo::system::MakeUserPointer; | 13 |
| 14 // TODO(use_chrome_edk): commented out since for now we use the entrypoints in |
| 15 // third_party and that checks the command line to redirect here. |
| 16 /* |
| 14 | 17 |
| 15 // Definitions of the system functions. | 18 // Definitions of the system functions. |
| 16 extern "C" { | 19 extern "C" { |
| 17 MojoTimeTicks MojoGetTimeTicksNow() { | 20 MojoTimeTicks MojoGetTimeTicksNow() { |
| 18 return g_core->GetTimeTicksNow(); | 21 return g_core->GetTimeTicksNow(); |
| 19 } | 22 } |
| 20 | 23 |
| 21 MojoResult MojoClose(MojoHandle handle) { | 24 MojoResult MojoClose(MojoHandle handle) { |
| 22 return g_core->Close(handle); | 25 return g_core->Close(handle); |
| 23 } | 26 } |
| 24 | 27 |
| 25 MojoResult MojoWait(MojoHandle handle, | 28 MojoResult MojoWait(MojoHandle handle, |
| 26 MojoHandleSignals signals, | 29 MojoHandleSignals signals, |
| 27 MojoDeadline deadline, | 30 MojoDeadline deadline, |
| 28 MojoHandleSignalsState* signals_state) { | 31 MojoHandleSignalsState* signals_state) { |
| 29 return g_core->Wait(handle, signals, deadline, | 32 return g_core->Wait(handle, signals, deadline, signals_state); |
| 30 MakeUserPointer(signals_state)); | |
| 31 } | 33 } |
| 32 | 34 |
| 33 MojoResult MojoWaitMany(const MojoHandle* handles, | 35 MojoResult MojoWaitMany(const MojoHandle* handles, |
| 34 const MojoHandleSignals* signals, | 36 const MojoHandleSignals* signals, |
| 35 uint32_t num_handles, | 37 uint32_t num_handles, |
| 36 MojoDeadline deadline, | 38 MojoDeadline deadline, |
| 37 uint32_t* result_index, | 39 uint32_t* result_index, |
| 38 MojoHandleSignalsState* signals_states) { | 40 MojoHandleSignalsState* signals_states) { |
| 39 return g_core->WaitMany(MakeUserPointer(handles), MakeUserPointer(signals), | 41 return g_core->WaitMany(handles, signals, num_handles, deadline, result_index, |
| 40 num_handles, deadline, MakeUserPointer(result_index), | 42 signals_states); |
| 41 MakeUserPointer(signals_states)); | |
| 42 } | 43 } |
| 43 | 44 |
| 44 MojoResult MojoCreateMessagePipe(const MojoCreateMessagePipeOptions* options, | 45 MojoResult MojoCreateMessagePipe(const MojoCreateMessagePipeOptions* options, |
| 45 MojoHandle* message_pipe_handle0, | 46 MojoHandle* message_pipe_handle0, |
| 46 MojoHandle* message_pipe_handle1) { | 47 MojoHandle* message_pipe_handle1) { |
| 47 return g_core->CreateMessagePipe(MakeUserPointer(options), | 48 return g_core->CreateMessagePipe(options, message_pipe_handle0, |
| 48 MakeUserPointer(message_pipe_handle0), | 49 message_pipe_handle1); |
| 49 MakeUserPointer(message_pipe_handle1)); | |
| 50 } | 50 } |
| 51 | 51 |
| 52 MojoResult MojoWriteMessage(MojoHandle message_pipe_handle, | 52 MojoResult MojoWriteMessage(MojoHandle message_pipe_handle, |
| 53 const void* bytes, | 53 const void* bytes, |
| 54 uint32_t num_bytes, | 54 uint32_t num_bytes, |
| 55 const MojoHandle* handles, | 55 const MojoHandle* handles, |
| 56 uint32_t num_handles, | 56 uint32_t num_handles, |
| 57 MojoWriteMessageFlags flags) { | 57 MojoWriteMessageFlags flags) { |
| 58 return g_core->WriteMessage(message_pipe_handle, MakeUserPointer(bytes), | 58 return g_core->WriteMessage(message_pipe_handle, bytes, num_bytes, handles, |
| 59 num_bytes, MakeUserPointer(handles), num_handles, | 59 num_handles, flags); |
| 60 flags); | |
| 61 } | 60 } |
| 62 | 61 |
| 63 MojoResult MojoReadMessage(MojoHandle message_pipe_handle, | 62 MojoResult MojoReadMessage(MojoHandle message_pipe_handle, |
| 64 void* bytes, | 63 void* bytes, |
| 65 uint32_t* num_bytes, | 64 uint32_t* num_bytes, |
| 66 MojoHandle* handles, | 65 MojoHandle* handles, |
| 67 uint32_t* num_handles, | 66 uint32_t* num_handles, |
| 68 MojoReadMessageFlags flags) { | 67 MojoReadMessageFlags flags) { |
| 69 return g_core->ReadMessage( | 68 return g_core->ReadMessage( |
| 70 message_pipe_handle, MakeUserPointer(bytes), MakeUserPointer(num_bytes), | 69 message_pipe_handle, bytes, num_bytes, handles, num_handles, flags); |
| 71 MakeUserPointer(handles), MakeUserPointer(num_handles), flags); | |
| 72 } | 70 } |
| 73 | 71 |
| 74 MojoResult MojoCreateDataPipe(const MojoCreateDataPipeOptions* options, | 72 MojoResult MojoCreateDataPipe(const MojoCreateDataPipeOptions* options, |
| 75 MojoHandle* data_pipe_producer_handle, | 73 MojoHandle* data_pipe_producer_handle, |
| 76 MojoHandle* data_pipe_consumer_handle) { | 74 MojoHandle* data_pipe_consumer_handle) { |
| 77 return g_core->CreateDataPipe(MakeUserPointer(options), | 75 return g_core->CreateDataPipe(options, data_pipe_producer_handle, |
| 78 MakeUserPointer(data_pipe_producer_handle), | 76 data_pipe_consumer_handle); |
| 79 MakeUserPointer(data_pipe_consumer_handle)); | |
| 80 } | 77 } |
| 81 | 78 |
| 82 MojoResult MojoWriteData(MojoHandle data_pipe_producer_handle, | 79 MojoResult MojoWriteData(MojoHandle data_pipe_producer_handle, |
| 83 const void* elements, | 80 const void* elements, |
| 84 uint32_t* num_elements, | 81 uint32_t* num_elements, |
| 85 MojoWriteDataFlags flags) { | 82 MojoWriteDataFlags flags) { |
| 86 return g_core->WriteData(data_pipe_producer_handle, MakeUserPointer(elements), | 83 return g_core->WriteData(data_pipe_producer_handle, elements, num_elements, |
| 87 MakeUserPointer(num_elements), flags); | 84 flags); |
| 88 } | 85 } |
| 89 | 86 |
| 90 MojoResult MojoBeginWriteData(MojoHandle data_pipe_producer_handle, | 87 MojoResult MojoBeginWriteData(MojoHandle data_pipe_producer_handle, |
| 91 void** buffer, | 88 void** buffer, |
| 92 uint32_t* buffer_num_elements, | 89 uint32_t* buffer_num_elements, |
| 93 MojoWriteDataFlags flags) { | 90 MojoWriteDataFlags flags) { |
| 94 return g_core->BeginWriteData(data_pipe_producer_handle, | 91 return g_core->BeginWriteData(data_pipe_producer_handle, buffer, |
| 95 MakeUserPointer(buffer), | 92 buffer_num_elements, flags); |
| 96 MakeUserPointer(buffer_num_elements), flags); | |
| 97 } | 93 } |
| 98 | 94 |
| 99 MojoResult MojoEndWriteData(MojoHandle data_pipe_producer_handle, | 95 MojoResult MojoEndWriteData(MojoHandle data_pipe_producer_handle, |
| 100 uint32_t num_elements_written) { | 96 uint32_t num_elements_written) { |
| 101 return g_core->EndWriteData(data_pipe_producer_handle, num_elements_written); | 97 return g_core->EndWriteData(data_pipe_producer_handle, num_elements_written); |
| 102 } | 98 } |
| 103 | 99 |
| 104 MojoResult MojoReadData(MojoHandle data_pipe_consumer_handle, | 100 MojoResult MojoReadData(MojoHandle data_pipe_consumer_handle, |
| 105 void* elements, | 101 void* elements, |
| 106 uint32_t* num_elements, | 102 uint32_t* num_elements, |
| 107 MojoReadDataFlags flags) { | 103 MojoReadDataFlags flags) { |
| 108 return g_core->ReadData(data_pipe_consumer_handle, MakeUserPointer(elements), | 104 return g_core->ReadData(data_pipe_consumer_handle, elements, num_elements, |
| 109 MakeUserPointer(num_elements), flags); | 105 flags); |
| 110 } | 106 } |
| 111 | 107 |
| 112 MojoResult MojoBeginReadData(MojoHandle data_pipe_consumer_handle, | 108 MojoResult MojoBeginReadData(MojoHandle data_pipe_consumer_handle, |
| 113 const void** buffer, | 109 const void** buffer, |
| 114 uint32_t* buffer_num_elements, | 110 uint32_t* buffer_num_elements, |
| 115 MojoReadDataFlags flags) { | 111 MojoReadDataFlags flags) { |
| 116 return g_core->BeginReadData(data_pipe_consumer_handle, | 112 return g_core->BeginReadData(data_pipe_consumer_handle, buffer, |
| 117 MakeUserPointer(buffer), | 113 buffer_num_elements, flags); |
| 118 MakeUserPointer(buffer_num_elements), flags); | |
| 119 } | 114 } |
| 120 | 115 |
| 121 MojoResult MojoEndReadData(MojoHandle data_pipe_consumer_handle, | 116 MojoResult MojoEndReadData(MojoHandle data_pipe_consumer_handle, |
| 122 uint32_t num_elements_read) { | 117 uint32_t num_elements_read) { |
| 123 return g_core->EndReadData(data_pipe_consumer_handle, num_elements_read); | 118 return g_core->EndReadData(data_pipe_consumer_handle, num_elements_read); |
| 124 } | 119 } |
| 125 | 120 |
| 126 MojoResult MojoCreateSharedBuffer( | 121 MojoResult MojoCreateSharedBuffer( |
| 127 const struct MojoCreateSharedBufferOptions* options, | 122 const struct MojoCreateSharedBufferOptions* options, |
| 128 uint64_t num_bytes, | 123 uint64_t num_bytes, |
| 129 MojoHandle* shared_buffer_handle) { | 124 MojoHandle* shared_buffer_handle) { |
| 130 return g_core->CreateSharedBuffer(MakeUserPointer(options), num_bytes, | 125 return g_core->CreateSharedBuffer(options, num_bytes, shared_buffer_handle); |
| 131 MakeUserPointer(shared_buffer_handle)); | |
| 132 } | 126 } |
| 133 | 127 |
| 134 MojoResult MojoDuplicateBufferHandle( | 128 MojoResult MojoDuplicateBufferHandle( |
| 135 MojoHandle buffer_handle, | 129 MojoHandle buffer_handle, |
| 136 const struct MojoDuplicateBufferHandleOptions* options, | 130 const struct MojoDuplicateBufferHandleOptions* options, |
| 137 MojoHandle* new_buffer_handle) { | 131 MojoHandle* new_buffer_handle) { |
| 138 return g_core->DuplicateBufferHandle(buffer_handle, MakeUserPointer(options), | 132 return g_core->DuplicateBufferHandle(buffer_handle, options, |
| 139 MakeUserPointer(new_buffer_handle)); | 133 new_buffer_handle); |
| 140 } | 134 } |
| 141 | 135 |
| 142 MojoResult MojoMapBuffer(MojoHandle buffer_handle, | 136 MojoResult MojoMapBuffer(MojoHandle buffer_handle, |
| 143 uint64_t offset, | 137 uint64_t offset, |
| 144 uint64_t num_bytes, | 138 uint64_t num_bytes, |
| 145 void** buffer, | 139 void** buffer, |
| 146 MojoMapBufferFlags flags) { | 140 MojoMapBufferFlags flags) { |
| 147 return g_core->MapBuffer(buffer_handle, offset, num_bytes, | 141 return g_core->MapBuffer(buffer_handle, offset, num_bytes, buffer, flags); |
| 148 MakeUserPointer(buffer), flags); | |
| 149 } | 142 } |
| 150 | 143 |
| 151 MojoResult MojoUnmapBuffer(void* buffer) { | 144 MojoResult MojoUnmapBuffer(void* buffer) { |
| 152 return g_core->UnmapBuffer(MakeUserPointer(buffer)); | 145 return g_core->UnmapBuffer(buffer); |
| 153 } | 146 } |
| 154 | 147 |
| 155 } // extern "C" | 148 } // extern "C" |
| 149 */ |
| OLD | NEW |