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.
5 #include "mojo/system/core.h"
7 static mojo::system::Core* g_core = NULL;
11 namespace entrypoints {
13 void SetCore(Core* core) {
21 } // namespace entrypoints
25 // Definitions of the system functions.
28 MojoTimeTicks MojoGetTimeTicksNow() {
29 return g_core->GetTimeTicksNow();
32 MojoResult MojoClose(MojoHandle handle) {
33 return g_core->Close(handle);
36 MojoResult MojoWait(MojoHandle handle,
38 MojoDeadline deadline) {
39 return g_core->Wait(handle, flags, deadline);
42 MojoResult MojoWaitMany(const MojoHandle* handles,
43 const MojoWaitFlags* flags,
45 MojoDeadline deadline) {
46 return g_core->WaitMany(handles, flags, num_handles, deadline);
49 MojoResult MojoCreateMessagePipe(MojoHandle* message_pipe_handle0,
50 MojoHandle* message_pipe_handle1) {
51 return g_core->CreateMessagePipe(message_pipe_handle0, message_pipe_handle1);
54 MojoResult MojoWriteMessage(MojoHandle message_pipe_handle,
57 const MojoHandle* handles,
59 MojoWriteMessageFlags flags) {
60 return g_core->WriteMessage(
61 message_pipe_handle, bytes, num_bytes, handles, num_handles, flags);
64 MojoResult MojoReadMessage(MojoHandle message_pipe_handle,
68 uint32_t* num_handles,
69 MojoReadMessageFlags flags) {
70 return g_core->ReadMessage(
71 message_pipe_handle, bytes, num_bytes, handles, num_handles, flags);
74 MojoResult MojoCreateDataPipe(const MojoCreateDataPipeOptions* options,
75 MojoHandle* data_pipe_producer_handle,
76 MojoHandle* data_pipe_consumer_handle) {
77 return g_core->CreateDataPipe(
78 options, data_pipe_producer_handle, data_pipe_consumer_handle);
81 MojoResult MojoWriteData(MojoHandle data_pipe_producer_handle,
83 uint32_t* num_elements,
84 MojoWriteDataFlags flags) {
85 return g_core->WriteData(
86 data_pipe_producer_handle, elements, num_elements, flags);
89 MojoResult MojoBeginWriteData(MojoHandle data_pipe_producer_handle,
91 uint32_t* buffer_num_elements,
92 MojoWriteDataFlags flags) {
93 return g_core->BeginWriteData(
94 data_pipe_producer_handle, buffer, buffer_num_elements, flags);
97 MojoResult MojoEndWriteData(MojoHandle data_pipe_producer_handle,
98 uint32_t num_elements_written) {
99 return g_core->EndWriteData(data_pipe_producer_handle, num_elements_written);
102 MojoResult MojoReadData(MojoHandle data_pipe_consumer_handle,
104 uint32_t* num_elements,
105 MojoReadDataFlags flags) {
106 return g_core->ReadData(
107 data_pipe_consumer_handle, elements, num_elements, flags);
110 MojoResult MojoBeginReadData(MojoHandle data_pipe_consumer_handle,
112 uint32_t* buffer_num_elements,
113 MojoReadDataFlags flags) {
114 return g_core->BeginReadData(
115 data_pipe_consumer_handle, buffer, buffer_num_elements, flags);
118 MojoResult MojoEndReadData(MojoHandle data_pipe_consumer_handle,
119 uint32_t num_elements_read) {
120 return g_core->EndReadData(data_pipe_consumer_handle, num_elements_read);
123 MojoResult MojoCreateSharedBuffer(
124 const struct MojoCreateSharedBufferOptions* options,
126 MojoHandle* shared_buffer_handle) {
127 return g_core->CreateSharedBuffer(options, num_bytes, shared_buffer_handle);
130 MojoResult MojoDuplicateBufferHandle(
131 MojoHandle buffer_handle,
132 const struct MojoDuplicateBufferHandleOptions* options,
133 MojoHandle* new_buffer_handle) {
134 return g_core->DuplicateBufferHandle(
135 buffer_handle, options, new_buffer_handle);
138 MojoResult MojoMapBuffer(MojoHandle buffer_handle,
142 MojoMapBufferFlags flags) {
143 return g_core->MapBuffer(buffer_handle, offset, num_bytes, buffer, flags);
146 MojoResult MojoUnmapBuffer(void* buffer) {
147 return g_core->UnmapBuffer(buffer);