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

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

Issue 1052723003: NaCl: create a separate namespace for Mojo handles. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 8 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
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/core_system_thunks.h"
6
7 #include <assert.h>
8
9 #include "mojo/public/platform/native/thunk_export.h"
10
11 extern "C" {
12
13 static MojoCoreSystemThunks g_core_thunks = {0};
14
15 MojoCoreHandle MojoCoreGetDefaultCore() {
16 assert(g_core_thunks.GetDefaultCore);
17 return g_core_thunks.GetDefaultCore();
18 }
19
20 MojoCoreHandle MojoCoreCreateCore() {
21 assert(g_core_thunks.CreateCore);
22 return g_core_thunks.CreateCore();
23 }
24
25 MojoResult MojoCoreTransferHandle(MojoCoreHandle from_core,
26 MojoHandle handle,
27 MojoCoreHandle to_core,
28 MojoHandle* result_handle) {
29 assert(g_core_thunks.TransferHandle);
30 return g_core_thunks.TransferHandle(from_core, handle, to_core,
31 result_handle);
32 }
33
34 MojoResult MojoCoreCloseCore(MojoCoreHandle core) {
35 assert(g_core_thunks.CloseCore);
36 return g_core_thunks.CloseCore(core);
37 }
38
39 MojoTimeTicks MojoCoreGetTimeTicksNow(MojoCoreHandle core) {
40 assert(g_core_thunks.GetTimeTicksNow);
41 return g_core_thunks.GetTimeTicksNow(core);
42 }
43
44 MojoResult MojoCoreClose(MojoCoreHandle core, MojoHandle handle) {
45 assert(g_core_thunks.Close);
46 return g_core_thunks.Close(core, handle);
47 }
48
49 MojoResult MojoCoreWait(MojoCoreHandle core,
50 MojoHandle handle,
51 MojoHandleSignals signals,
52 MojoDeadline deadline,
53 struct MojoHandleSignalsState* signals_state) {
54 assert(g_core_thunks.Wait);
55 return g_core_thunks.Wait(core, handle, signals, deadline, signals_state);
56 }
57
58 MojoResult MojoCoreWaitMany(MojoCoreHandle core,
59 const MojoHandle* handles,
60 const MojoHandleSignals* signals,
61 uint32_t num_handles,
62 MojoDeadline deadline,
63 uint32_t* result_index,
64 struct MojoHandleSignalsState* signals_states) {
65 assert(g_core_thunks.WaitMany);
66 return g_core_thunks.WaitMany(core, handles, signals, num_handles, deadline,
67 result_index, signals_states);
68 }
69
70 MojoResult MojoCoreCreateMessagePipe(
71 MojoCoreHandle core,
72 const struct MojoCreateMessagePipeOptions* options,
73 MojoHandle* message_pipe_handle0,
74 MojoHandle* message_pipe_handle1) {
75 assert(g_core_thunks.CreateMessagePipe);
76 return g_core_thunks.CreateMessagePipe(core, options, message_pipe_handle0,
77 message_pipe_handle1);
78 }
79
80 MojoResult MojoCoreWriteMessage(MojoCoreHandle core,
81 MojoHandle message_pipe_handle,
82 const void* bytes,
83 uint32_t num_bytes,
84 const MojoHandle* handles,
85 uint32_t num_handles,
86 MojoWriteMessageFlags flags) {
87 assert(g_core_thunks.WriteMessage);
88 return g_core_thunks.WriteMessage(core, message_pipe_handle, bytes, num_bytes,
89 handles, num_handles, flags);
90 }
91
92 MojoResult MojoCoreReadMessage(MojoCoreHandle core,
93 MojoHandle message_pipe_handle,
94 void* bytes,
95 uint32_t* num_bytes,
96 MojoHandle* handles,
97 uint32_t* num_handles,
98 MojoReadMessageFlags flags) {
99 assert(g_core_thunks.ReadMessage);
100 return g_core_thunks.ReadMessage(core, message_pipe_handle, bytes, num_bytes,
101 handles, num_handles, flags);
102 }
103
104 MojoResult MojoCoreCreateDataPipe(
105 MojoCoreHandle core,
106 const struct MojoCreateDataPipeOptions* options,
107 MojoHandle* data_pipe_producer_handle,
108 MojoHandle* data_pipe_consumer_handle) {
109 assert(g_core_thunks.CreateDataPipe);
110 return g_core_thunks.CreateDataPipe(core, options, data_pipe_producer_handle,
111 data_pipe_consumer_handle);
112 }
113
114 MojoResult MojoCoreWriteData(MojoCoreHandle core,
115 MojoHandle data_pipe_producer_handle,
116 const void* elements,
117 uint32_t* num_elements,
118 MojoWriteDataFlags flags) {
119 assert(g_core_thunks.WriteData);
120 return g_core_thunks.WriteData(core, data_pipe_producer_handle, elements,
121 num_elements, flags);
122 }
123
124 MojoResult MojoCoreBeginWriteData(MojoCoreHandle core,
125 MojoHandle data_pipe_producer_handle,
126 void** buffer,
127 uint32_t* buffer_num_elements,
128 MojoWriteDataFlags flags) {
129 assert(g_core_thunks.BeginWriteData);
130 return g_core_thunks.BeginWriteData(core, data_pipe_producer_handle, buffer,
131 buffer_num_elements, flags);
132 }
133
134 MojoResult MojoCoreEndWriteData(MojoCoreHandle core,
135 MojoHandle data_pipe_producer_handle,
136 uint32_t num_elements_written) {
137 assert(g_core_thunks.EndWriteData);
138 return g_core_thunks.EndWriteData(core, data_pipe_producer_handle,
139 num_elements_written);
140 }
141
142 MojoResult MojoCoreReadData(MojoCoreHandle core,
143 MojoHandle data_pipe_consumer_handle,
144 void* elements,
145 uint32_t* num_elements,
146 MojoReadDataFlags flags) {
147 assert(g_core_thunks.ReadData);
148 return g_core_thunks.ReadData(core, data_pipe_consumer_handle, elements,
149 num_elements, flags);
150 }
151
152 MojoResult MojoCoreBeginReadData(MojoCoreHandle core,
153 MojoHandle data_pipe_consumer_handle,
154 const void** buffer,
155 uint32_t* buffer_num_elements,
156 MojoReadDataFlags flags) {
157 assert(g_core_thunks.BeginReadData);
158 return g_core_thunks.BeginReadData(core, data_pipe_consumer_handle, buffer,
159 buffer_num_elements, flags);
160 }
161
162 MojoResult MojoCoreEndReadData(MojoCoreHandle core,
163 MojoHandle data_pipe_consumer_handle,
164 uint32_t num_elements_read) {
165 assert(g_core_thunks.EndReadData);
166 return g_core_thunks.EndReadData(core, data_pipe_consumer_handle,
167 num_elements_read);
168 }
169
170 MojoResult MojoCoreCreateSharedBuffer(
171 MojoCoreHandle core,
172 const struct MojoCreateSharedBufferOptions* options,
173 uint64_t num_bytes,
174 MojoHandle* shared_buffer_handle) {
175 assert(g_core_thunks.CreateSharedBuffer);
176 return g_core_thunks.CreateSharedBuffer(core, options, num_bytes,
177 shared_buffer_handle);
178 }
179
180 MojoResult MojoCoreDuplicateBufferHandle(
181 MojoCoreHandle core,
182 MojoHandle buffer_handle,
183 const struct MojoDuplicateBufferHandleOptions* options,
184 MojoHandle* new_buffer_handle) {
185 assert(g_core_thunks.DuplicateBufferHandle);
186 return g_core_thunks.DuplicateBufferHandle(core, buffer_handle, options,
187 new_buffer_handle);
188 }
189
190 MojoResult MojoCoreMapBuffer(MojoCoreHandle core,
191 MojoHandle buffer_handle,
192 uint64_t offset,
193 uint64_t num_bytes,
194 void** buffer,
195 MojoMapBufferFlags flags) {
196 assert(g_core_thunks.MapBuffer);
197 return g_core_thunks.MapBuffer(core, buffer_handle, offset, num_bytes, buffer,
198 flags);
199 }
200
201 MojoResult MojoCoreUnmapBuffer(MojoCoreHandle core, void* buffer) {
202 assert(g_core_thunks.UnmapBuffer);
203 return g_core_thunks.UnmapBuffer(core, buffer);
204 }
205
206 extern "C" THUNK_EXPORT size_t
207 MojoSetCoreSystemThunks(const MojoCoreSystemThunks* system_thunks) {
208 if (system_thunks->size >= sizeof(g_core_thunks))
209 g_core_thunks = *system_thunks;
210 return sizeof(g_core_thunks);
211 }
212
213 } // extern "C"
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698