Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(562)

Side by Side Diff: mojo/public/platform/native/system_thunks.cc

Issue 2044023004: Mojo: Eliminate duplicate C API symbols (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nit Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojo/public/platform/native/system_thunks.h ('k') | mojo/public/platform/native/thunk_export.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2013 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 #include "mojo/public/platform/native/system_thunks.h"
6
7 #include <assert.h>
8 #include <stddef.h>
9 #include <stdint.h>
10
11 #include "mojo/public/platform/native/thunk_export.h"
12
13 extern "C" {
14
15 static MojoSystemThunks g_thunks = {0};
16
17 MojoTimeTicks MojoGetTimeTicksNow() {
18 assert(g_thunks.GetTimeTicksNow);
19 return g_thunks.GetTimeTicksNow();
20 }
21
22 MojoResult MojoClose(MojoHandle handle) {
23 assert(g_thunks.Close);
24 return g_thunks.Close(handle);
25 }
26
27 MojoResult MojoWait(MojoHandle handle,
28 MojoHandleSignals signals,
29 MojoDeadline deadline,
30 struct MojoHandleSignalsState* signals_state) {
31 assert(g_thunks.Wait);
32 return g_thunks.Wait(handle, signals, deadline, signals_state);
33 }
34
35 MojoResult MojoWaitMany(const MojoHandle* handles,
36 const MojoHandleSignals* signals,
37 uint32_t num_handles,
38 MojoDeadline deadline,
39 uint32_t* result_index,
40 struct MojoHandleSignalsState* signals_states) {
41 assert(g_thunks.WaitMany);
42 return g_thunks.WaitMany(handles, signals, num_handles, deadline,
43 result_index, signals_states);
44 }
45
46 MojoResult MojoCreateMessagePipe(const MojoCreateMessagePipeOptions* options,
47 MojoHandle* message_pipe_handle0,
48 MojoHandle* message_pipe_handle1) {
49 assert(g_thunks.CreateMessagePipe);
50 return g_thunks.CreateMessagePipe(options, message_pipe_handle0,
51 message_pipe_handle1);
52 }
53
54 MojoResult MojoWriteMessage(MojoHandle message_pipe_handle,
55 const void* bytes,
56 uint32_t num_bytes,
57 const MojoHandle* handles,
58 uint32_t num_handles,
59 MojoWriteMessageFlags flags) {
60 assert(g_thunks.WriteMessage);
61 return g_thunks.WriteMessage(message_pipe_handle, bytes, num_bytes, handles,
62 num_handles, flags);
63 }
64
65 MojoResult MojoReadMessage(MojoHandle message_pipe_handle,
66 void* bytes,
67 uint32_t* num_bytes,
68 MojoHandle* handles,
69 uint32_t* num_handles,
70 MojoReadMessageFlags flags) {
71 assert(g_thunks.ReadMessage);
72 return g_thunks.ReadMessage(message_pipe_handle, bytes, num_bytes, handles,
73 num_handles, flags);
74 }
75
76 MojoResult MojoCreateDataPipe(const MojoCreateDataPipeOptions* options,
77 MojoHandle* data_pipe_producer_handle,
78 MojoHandle* data_pipe_consumer_handle) {
79 assert(g_thunks.CreateDataPipe);
80 return g_thunks.CreateDataPipe(options, data_pipe_producer_handle,
81 data_pipe_consumer_handle);
82 }
83
84 MojoResult MojoWriteData(MojoHandle data_pipe_producer_handle,
85 const void* elements,
86 uint32_t* num_elements,
87 MojoWriteDataFlags flags) {
88 assert(g_thunks.WriteData);
89 return g_thunks.WriteData(data_pipe_producer_handle, elements, num_elements,
90 flags);
91 }
92
93 MojoResult MojoBeginWriteData(MojoHandle data_pipe_producer_handle,
94 void** buffer,
95 uint32_t* buffer_num_elements,
96 MojoWriteDataFlags flags) {
97 assert(g_thunks.BeginWriteData);
98 return g_thunks.BeginWriteData(data_pipe_producer_handle, buffer,
99 buffer_num_elements, flags);
100 }
101
102 MojoResult MojoEndWriteData(MojoHandle data_pipe_producer_handle,
103 uint32_t num_elements_written) {
104 assert(g_thunks.EndWriteData);
105 return g_thunks.EndWriteData(data_pipe_producer_handle, num_elements_written);
106 }
107
108 MojoResult MojoReadData(MojoHandle data_pipe_consumer_handle,
109 void* elements,
110 uint32_t* num_elements,
111 MojoReadDataFlags flags) {
112 assert(g_thunks.ReadData);
113 return g_thunks.ReadData(data_pipe_consumer_handle, elements, num_elements,
114 flags);
115 }
116
117 MojoResult MojoBeginReadData(MojoHandle data_pipe_consumer_handle,
118 const void** buffer,
119 uint32_t* buffer_num_elements,
120 MojoReadDataFlags flags) {
121 assert(g_thunks.BeginReadData);
122 return g_thunks.BeginReadData(data_pipe_consumer_handle, buffer,
123 buffer_num_elements, flags);
124 }
125
126 MojoResult MojoEndReadData(MojoHandle data_pipe_consumer_handle,
127 uint32_t num_elements_read) {
128 assert(g_thunks.EndReadData);
129 return g_thunks.EndReadData(data_pipe_consumer_handle, num_elements_read);
130 }
131
132 MojoResult MojoCreateSharedBuffer(
133 const struct MojoCreateSharedBufferOptions* options,
134 uint64_t num_bytes,
135 MojoHandle* shared_buffer_handle) {
136 assert(g_thunks.CreateSharedBuffer);
137 return g_thunks.CreateSharedBuffer(options, num_bytes, shared_buffer_handle);
138 }
139
140 MojoResult MojoDuplicateBufferHandle(
141 MojoHandle buffer_handle,
142 const struct MojoDuplicateBufferHandleOptions* options,
143 MojoHandle* new_buffer_handle) {
144 assert(g_thunks.DuplicateBufferHandle);
145 return g_thunks.DuplicateBufferHandle(buffer_handle, options,
146 new_buffer_handle);
147 }
148
149 MojoResult MojoMapBuffer(MojoHandle buffer_handle,
150 uint64_t offset,
151 uint64_t num_bytes,
152 void** buffer,
153 MojoMapBufferFlags flags) {
154 assert(g_thunks.MapBuffer);
155 return g_thunks.MapBuffer(buffer_handle, offset, num_bytes, buffer, flags);
156 }
157
158 MojoResult MojoUnmapBuffer(void* buffer) {
159 assert(g_thunks.UnmapBuffer);
160 return g_thunks.UnmapBuffer(buffer);
161 }
162
163 MojoResult MojoCreateWaitSet(MojoHandle* wait_set) {
164 assert(g_thunks.CreateWaitSet);
165 return g_thunks.CreateWaitSet(wait_set);
166 }
167
168 MojoResult MojoAddHandle(MojoHandle wait_set,
169 MojoHandle handle,
170 MojoHandleSignals signals) {
171 assert(g_thunks.AddHandle);
172 return g_thunks.AddHandle(wait_set, handle, signals);
173 }
174
175 MojoResult MojoRemoveHandle(MojoHandle wait_set, MojoHandle handle) {
176 assert(g_thunks.RemoveHandle);
177 return g_thunks.RemoveHandle(wait_set, handle);
178 }
179
180 MojoResult MojoGetReadyHandles(MojoHandle wait_set,
181 uint32_t* count,
182 MojoHandle* handles,
183 MojoResult* results,
184 struct MojoHandleSignalsState* signals_states) {
185 assert(g_thunks.GetReadyHandles);
186 return g_thunks.GetReadyHandles(wait_set, count, handles, results,
187 signals_states);
188 }
189
190 MojoResult MojoWatch(MojoHandle handle,
191 MojoHandleSignals signals,
192 MojoWatchCallback callback,
193 uintptr_t context) {
194 assert(g_thunks.Watch);
195 return g_thunks.Watch(handle, signals, callback, context);
196 }
197
198 MojoResult MojoCancelWatch(MojoHandle handle, uintptr_t context) {
199 assert(g_thunks.CancelWatch);
200 return g_thunks.CancelWatch(handle, context);
201 }
202
203 MojoResult MojoFuseMessagePipes(MojoHandle handle0, MojoHandle handle1) {
204 assert(g_thunks.FuseMessagePipes);
205 return g_thunks.FuseMessagePipes(handle0, handle1);
206 }
207
208 MojoResult MojoWriteMessageNew(MojoHandle message_pipe_handle,
209 MojoMessageHandle message,
210 MojoWriteMessageFlags flags) {
211 assert(g_thunks.WriteMessageNew);
212 return g_thunks.WriteMessageNew(message_pipe_handle, message, flags);
213 }
214
215 MojoResult MojoReadMessageNew(MojoHandle message_pipe_handle,
216 MojoMessageHandle* message,
217 uint32_t* num_bytes,
218 MojoHandle* handles,
219 uint32_t* num_handles,
220 MojoReadMessageFlags flags) {
221 assert(g_thunks.ReadMessageNew);
222 return g_thunks.ReadMessageNew(message_pipe_handle, message, num_bytes,
223 handles, num_handles, flags);
224 }
225
226 MojoResult MojoAllocMessage(uint32_t num_bytes,
227 const MojoHandle* handles,
228 uint32_t num_handles,
229 MojoAllocMessageFlags flags,
230 MojoMessageHandle* message) {
231 assert(g_thunks.AllocMessage);
232 return g_thunks.AllocMessage(
233 num_bytes, handles, num_handles, flags, message);
234 }
235
236 MojoResult MojoFreeMessage(MojoMessageHandle message) {
237 assert(g_thunks.FreeMessage);
238 return g_thunks.FreeMessage(message);
239 }
240
241 MojoResult MojoGetMessageBuffer(MojoMessageHandle message, void** buffer) {
242 assert(g_thunks.GetMessageBuffer);
243 return g_thunks.GetMessageBuffer(message, buffer);
244 }
245
246 MojoResult MojoWrapPlatformHandle(
247 const struct MojoPlatformHandle* platform_handle,
248 MojoHandle* mojo_handle) {
249 assert(g_thunks.WrapPlatformHandle);
250 return g_thunks.WrapPlatformHandle(platform_handle, mojo_handle);
251 }
252
253 MojoResult MojoUnwrapPlatformHandle(
254 MojoHandle mojo_handle,
255 struct MojoPlatformHandle* platform_handle) {
256 assert(g_thunks.UnwrapPlatformHandle);
257 return g_thunks.UnwrapPlatformHandle(mojo_handle, platform_handle);
258 }
259
260 MojoResult MojoWrapPlatformSharedBufferHandle(
261 const struct MojoPlatformHandle* platform_handle,
262 size_t num_bytes,
263 MojoPlatformSharedBufferHandleFlags flags,
264 MojoHandle* mojo_handle) {
265 assert(g_thunks.WrapPlatformSharedBufferHandle);
266 return g_thunks.WrapPlatformSharedBufferHandle(platform_handle, num_bytes,
267 flags, mojo_handle);
268 }
269
270 MojoResult MojoUnwrapPlatformSharedBufferHandle(
271 MojoHandle mojo_handle,
272 struct MojoPlatformHandle* platform_handle,
273 size_t* num_bytes,
274 MojoPlatformSharedBufferHandleFlags* flags) {
275 assert(g_thunks.UnwrapPlatformSharedBufferHandle);
276 return g_thunks.UnwrapPlatformSharedBufferHandle(mojo_handle, platform_handle,
277 num_bytes, flags);
278 }
279
280 extern "C" THUNK_EXPORT size_t MojoSetSystemThunks(
281 const MojoSystemThunks* system_thunks) {
282 if (system_thunks->size >= sizeof(g_thunks))
283 g_thunks = *system_thunks;
284 return sizeof(g_thunks);
285 }
286
287 } // extern "C"
OLDNEW
« no previous file with comments | « mojo/public/platform/native/system_thunks.h ('k') | mojo/public/platform/native/thunk_export.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698