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 |