Imported Upstream version 0.1.0+git20131207+e452e83
[deb_libhybris.git] / hybris / include / hybris / internal / binding.h
1
2 /**
3 * Copyright (C) 2013 Simon Busch <morphis@gravedo.de>
4 * 2012 Canonical Ltd
5 * 2013 Jolla Ltd.
6 *
7 * Auto-generated via "generate_wrapper_macros.py"
8 *
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
12 *
13 * http://www.apache.org/licenses/LICENSE-2.0
14 *
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 **/
21
22 #ifndef HYBRIS_BINDING_H_
23 #define HYBRIS_BINDING_H_
24
25 /* floating_point_abi.h defines FP_ATTRIB */
26 #include <hybris/internal/floating_point_abi.h>
27
28 void *android_dlopen(const char *filename, int flag);
29 void *android_dlsym(void *name, const char *symbol);
30 int android_dlclose(void *handle);
31 const char *android_dlerror(void);
32 int android_dladdr(const void *addr, void *info);
33
34
35
36 /**
37 * XXX AUTO-GENERATED FILE XXX
38 *
39 * Do not edit this file directly, but update the templates in
40 * utils/generate_wrapper_macros.py and run it again to build
41 * an updated version of this header file:
42 *
43 * python utils/generate_wrapper_macros.py > \
44 * hybris/include/hybris/internal/binding.h
45 *
46 * If you need macros with more arguments, just customize the
47 * MAX_ARGS variable in generate_wrapper_macros.py.
48 *
49 * XXX AUTO-GENERATED FILE XXX
50 **/
51
52
53 #define HYBRIS_DLSYSM(name, fptr, sym) \
54 if (!name##_handle) \
55 hybris_##name##_initialize(); \
56 if (*(fptr) == NULL) \
57 { \
58 *(fptr) = (void *) android_dlsym(name##_handle, sym); \
59 }
60
61 #define HYBRIS_LIBRARY_INITIALIZE(name, path) \
62 void *name##_handle; \
63 void hybris_##name##_initialize() \
64 { \
65 name##_handle = android_dlopen(path, RTLD_LAZY); \
66 }
67
68
69
70 #define HYBRIS_IMPLEMENT_FUNCTION0(name, return_type, symbol) \
71 return_type symbol() \
72 { \
73 static return_type (*f)() FP_ATTRIB = NULL; \
74 HYBRIS_DLSYSM(name, &f, #symbol); \
75 return f(); \
76 }
77
78
79 #define HYBRIS_IMPLEMENT_FUNCTION1(name, return_type, symbol, a1) \
80 return_type symbol(a1 n1) \
81 { \
82 static return_type (*f)(a1) FP_ATTRIB = NULL; \
83 HYBRIS_DLSYSM(name, &f, #symbol); \
84 return f(n1); \
85 }
86
87
88 #define HYBRIS_IMPLEMENT_FUNCTION2(name, return_type, symbol, a1, a2) \
89 return_type symbol(a1 n1, a2 n2) \
90 { \
91 static return_type (*f)(a1, a2) FP_ATTRIB = NULL; \
92 HYBRIS_DLSYSM(name, &f, #symbol); \
93 return f(n1, n2); \
94 }
95
96
97 #define HYBRIS_IMPLEMENT_FUNCTION3(name, return_type, symbol, a1, a2, a3) \
98 return_type symbol(a1 n1, a2 n2, a3 n3) \
99 { \
100 static return_type (*f)(a1, a2, a3) FP_ATTRIB = NULL; \
101 HYBRIS_DLSYSM(name, &f, #symbol); \
102 return f(n1, n2, n3); \
103 }
104
105
106 #define HYBRIS_IMPLEMENT_FUNCTION4(name, return_type, symbol, a1, a2, a3, a4) \
107 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4) \
108 { \
109 static return_type (*f)(a1, a2, a3, a4) FP_ATTRIB = NULL; \
110 HYBRIS_DLSYSM(name, &f, #symbol); \
111 return f(n1, n2, n3, n4); \
112 }
113
114
115 #define HYBRIS_IMPLEMENT_FUNCTION5(name, return_type, symbol, a1, a2, a3, a4, a5) \
116 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5) \
117 { \
118 static return_type (*f)(a1, a2, a3, a4, a5) FP_ATTRIB = NULL; \
119 HYBRIS_DLSYSM(name, &f, #symbol); \
120 return f(n1, n2, n3, n4, n5); \
121 }
122
123
124 #define HYBRIS_IMPLEMENT_FUNCTION6(name, return_type, symbol, a1, a2, a3, a4, a5, a6) \
125 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6) \
126 { \
127 static return_type (*f)(a1, a2, a3, a4, a5, a6) FP_ATTRIB = NULL; \
128 HYBRIS_DLSYSM(name, &f, #symbol); \
129 return f(n1, n2, n3, n4, n5, n6); \
130 }
131
132
133 #define HYBRIS_IMPLEMENT_FUNCTION7(name, return_type, symbol, a1, a2, a3, a4, a5, a6, a7) \
134 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7) \
135 { \
136 static return_type (*f)(a1, a2, a3, a4, a5, a6, a7) FP_ATTRIB = NULL; \
137 HYBRIS_DLSYSM(name, &f, #symbol); \
138 return f(n1, n2, n3, n4, n5, n6, n7); \
139 }
140
141
142 #define HYBRIS_IMPLEMENT_FUNCTION8(name, return_type, symbol, a1, a2, a3, a4, a5, a6, a7, a8) \
143 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8) \
144 { \
145 static return_type (*f)(a1, a2, a3, a4, a5, a6, a7, a8) FP_ATTRIB = NULL; \
146 HYBRIS_DLSYSM(name, &f, #symbol); \
147 return f(n1, n2, n3, n4, n5, n6, n7, n8); \
148 }
149
150
151 #define HYBRIS_IMPLEMENT_FUNCTION9(name, return_type, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9) \
152 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9) \
153 { \
154 static return_type (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9) FP_ATTRIB = NULL; \
155 HYBRIS_DLSYSM(name, &f, #symbol); \
156 return f(n1, n2, n3, n4, n5, n6, n7, n8, n9); \
157 }
158
159
160 #define HYBRIS_IMPLEMENT_FUNCTION10(name, return_type, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \
161 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10) \
162 { \
163 static return_type (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) FP_ATTRIB = NULL; \
164 HYBRIS_DLSYSM(name, &f, #symbol); \
165 return f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10); \
166 }
167
168
169 #define HYBRIS_IMPLEMENT_FUNCTION11(name, return_type, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) \
170 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11) \
171 { \
172 static return_type (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) FP_ATTRIB = NULL; \
173 HYBRIS_DLSYSM(name, &f, #symbol); \
174 return f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11); \
175 }
176
177
178 #define HYBRIS_IMPLEMENT_FUNCTION12(name, return_type, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) \
179 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12) \
180 { \
181 static return_type (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) FP_ATTRIB = NULL; \
182 HYBRIS_DLSYSM(name, &f, #symbol); \
183 return f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12); \
184 }
185
186
187 #define HYBRIS_IMPLEMENT_FUNCTION13(name, return_type, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) \
188 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12, a13 n13) \
189 { \
190 static return_type (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) FP_ATTRIB = NULL; \
191 HYBRIS_DLSYSM(name, &f, #symbol); \
192 return f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13); \
193 }
194
195
196 #define HYBRIS_IMPLEMENT_FUNCTION14(name, return_type, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) \
197 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12, a13 n13, a14 n14) \
198 { \
199 static return_type (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) FP_ATTRIB = NULL; \
200 HYBRIS_DLSYSM(name, &f, #symbol); \
201 return f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14); \
202 }
203
204
205 #define HYBRIS_IMPLEMENT_FUNCTION15(name, return_type, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) \
206 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12, a13 n13, a14 n14, a15 n15) \
207 { \
208 static return_type (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) FP_ATTRIB = NULL; \
209 HYBRIS_DLSYSM(name, &f, #symbol); \
210 return f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15); \
211 }
212
213
214 #define HYBRIS_IMPLEMENT_FUNCTION16(name, return_type, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) \
215 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12, a13 n13, a14 n14, a15 n15, a16 n16) \
216 { \
217 static return_type (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) FP_ATTRIB = NULL; \
218 HYBRIS_DLSYSM(name, &f, #symbol); \
219 return f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16); \
220 }
221
222
223 #define HYBRIS_IMPLEMENT_FUNCTION17(name, return_type, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) \
224 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12, a13 n13, a14 n14, a15 n15, a16 n16, a17 n17) \
225 { \
226 static return_type (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) FP_ATTRIB = NULL; \
227 HYBRIS_DLSYSM(name, &f, #symbol); \
228 return f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17); \
229 }
230
231
232 #define HYBRIS_IMPLEMENT_FUNCTION18(name, return_type, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) \
233 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12, a13 n13, a14 n14, a15 n15, a16 n16, a17 n17, a18 n18) \
234 { \
235 static return_type (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) FP_ATTRIB = NULL; \
236 HYBRIS_DLSYSM(name, &f, #symbol); \
237 return f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18); \
238 }
239
240
241 #define HYBRIS_IMPLEMENT_FUNCTION19(name, return_type, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) \
242 return_type symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12, a13 n13, a14 n14, a15 n15, a16 n16, a17 n17, a18 n18, a19 n19) \
243 { \
244 static return_type (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) FP_ATTRIB = NULL; \
245 HYBRIS_DLSYSM(name, &f, #symbol); \
246 return f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19); \
247 }
248
249
250 #define HYBRIS_IMPLEMENT_VOID_FUNCTION0(name, symbol) \
251 void symbol() \
252 { \
253 static void (*f)() FP_ATTRIB = NULL; \
254 HYBRIS_DLSYSM(name, &f, #symbol); \
255 f(); \
256 }
257
258
259 #define HYBRIS_IMPLEMENT_VOID_FUNCTION1(name, symbol, a1) \
260 void symbol(a1 n1) \
261 { \
262 static void (*f)(a1) FP_ATTRIB = NULL; \
263 HYBRIS_DLSYSM(name, &f, #symbol); \
264 f(n1); \
265 }
266
267
268 #define HYBRIS_IMPLEMENT_VOID_FUNCTION2(name, symbol, a1, a2) \
269 void symbol(a1 n1, a2 n2) \
270 { \
271 static void (*f)(a1, a2) FP_ATTRIB = NULL; \
272 HYBRIS_DLSYSM(name, &f, #symbol); \
273 f(n1, n2); \
274 }
275
276
277 #define HYBRIS_IMPLEMENT_VOID_FUNCTION3(name, symbol, a1, a2, a3) \
278 void symbol(a1 n1, a2 n2, a3 n3) \
279 { \
280 static void (*f)(a1, a2, a3) FP_ATTRIB = NULL; \
281 HYBRIS_DLSYSM(name, &f, #symbol); \
282 f(n1, n2, n3); \
283 }
284
285
286 #define HYBRIS_IMPLEMENT_VOID_FUNCTION4(name, symbol, a1, a2, a3, a4) \
287 void symbol(a1 n1, a2 n2, a3 n3, a4 n4) \
288 { \
289 static void (*f)(a1, a2, a3, a4) FP_ATTRIB = NULL; \
290 HYBRIS_DLSYSM(name, &f, #symbol); \
291 f(n1, n2, n3, n4); \
292 }
293
294
295 #define HYBRIS_IMPLEMENT_VOID_FUNCTION5(name, symbol, a1, a2, a3, a4, a5) \
296 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5) \
297 { \
298 static void (*f)(a1, a2, a3, a4, a5) FP_ATTRIB = NULL; \
299 HYBRIS_DLSYSM(name, &f, #symbol); \
300 f(n1, n2, n3, n4, n5); \
301 }
302
303
304 #define HYBRIS_IMPLEMENT_VOID_FUNCTION6(name, symbol, a1, a2, a3, a4, a5, a6) \
305 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6) \
306 { \
307 static void (*f)(a1, a2, a3, a4, a5, a6) FP_ATTRIB = NULL; \
308 HYBRIS_DLSYSM(name, &f, #symbol); \
309 f(n1, n2, n3, n4, n5, n6); \
310 }
311
312
313 #define HYBRIS_IMPLEMENT_VOID_FUNCTION7(name, symbol, a1, a2, a3, a4, a5, a6, a7) \
314 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7) \
315 { \
316 static void (*f)(a1, a2, a3, a4, a5, a6, a7) FP_ATTRIB = NULL; \
317 HYBRIS_DLSYSM(name, &f, #symbol); \
318 f(n1, n2, n3, n4, n5, n6, n7); \
319 }
320
321
322 #define HYBRIS_IMPLEMENT_VOID_FUNCTION8(name, symbol, a1, a2, a3, a4, a5, a6, a7, a8) \
323 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8) \
324 { \
325 static void (*f)(a1, a2, a3, a4, a5, a6, a7, a8) FP_ATTRIB = NULL; \
326 HYBRIS_DLSYSM(name, &f, #symbol); \
327 f(n1, n2, n3, n4, n5, n6, n7, n8); \
328 }
329
330
331 #define HYBRIS_IMPLEMENT_VOID_FUNCTION9(name, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9) \
332 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9) \
333 { \
334 static void (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9) FP_ATTRIB = NULL; \
335 HYBRIS_DLSYSM(name, &f, #symbol); \
336 f(n1, n2, n3, n4, n5, n6, n7, n8, n9); \
337 }
338
339
340 #define HYBRIS_IMPLEMENT_VOID_FUNCTION10(name, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \
341 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10) \
342 { \
343 static void (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) FP_ATTRIB = NULL; \
344 HYBRIS_DLSYSM(name, &f, #symbol); \
345 f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10); \
346 }
347
348
349 #define HYBRIS_IMPLEMENT_VOID_FUNCTION11(name, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) \
350 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11) \
351 { \
352 static void (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) FP_ATTRIB = NULL; \
353 HYBRIS_DLSYSM(name, &f, #symbol); \
354 f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11); \
355 }
356
357
358 #define HYBRIS_IMPLEMENT_VOID_FUNCTION12(name, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) \
359 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12) \
360 { \
361 static void (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) FP_ATTRIB = NULL; \
362 HYBRIS_DLSYSM(name, &f, #symbol); \
363 f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12); \
364 }
365
366
367 #define HYBRIS_IMPLEMENT_VOID_FUNCTION13(name, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) \
368 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12, a13 n13) \
369 { \
370 static void (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) FP_ATTRIB = NULL; \
371 HYBRIS_DLSYSM(name, &f, #symbol); \
372 f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13); \
373 }
374
375
376 #define HYBRIS_IMPLEMENT_VOID_FUNCTION14(name, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) \
377 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12, a13 n13, a14 n14) \
378 { \
379 static void (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) FP_ATTRIB = NULL; \
380 HYBRIS_DLSYSM(name, &f, #symbol); \
381 f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14); \
382 }
383
384
385 #define HYBRIS_IMPLEMENT_VOID_FUNCTION15(name, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) \
386 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12, a13 n13, a14 n14, a15 n15) \
387 { \
388 static void (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) FP_ATTRIB = NULL; \
389 HYBRIS_DLSYSM(name, &f, #symbol); \
390 f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15); \
391 }
392
393
394 #define HYBRIS_IMPLEMENT_VOID_FUNCTION16(name, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) \
395 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12, a13 n13, a14 n14, a15 n15, a16 n16) \
396 { \
397 static void (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) FP_ATTRIB = NULL; \
398 HYBRIS_DLSYSM(name, &f, #symbol); \
399 f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16); \
400 }
401
402
403 #define HYBRIS_IMPLEMENT_VOID_FUNCTION17(name, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) \
404 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12, a13 n13, a14 n14, a15 n15, a16 n16, a17 n17) \
405 { \
406 static void (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) FP_ATTRIB = NULL; \
407 HYBRIS_DLSYSM(name, &f, #symbol); \
408 f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17); \
409 }
410
411
412 #define HYBRIS_IMPLEMENT_VOID_FUNCTION18(name, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) \
413 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12, a13 n13, a14 n14, a15 n15, a16 n16, a17 n17, a18 n18) \
414 { \
415 static void (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) FP_ATTRIB = NULL; \
416 HYBRIS_DLSYSM(name, &f, #symbol); \
417 f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18); \
418 }
419
420
421 #define HYBRIS_IMPLEMENT_VOID_FUNCTION19(name, symbol, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) \
422 void symbol(a1 n1, a2 n2, a3 n3, a4 n4, a5 n5, a6 n6, a7 n7, a8 n8, a9 n9, a10 n10, a11 n11, a12 n12, a13 n13, a14 n14, a15 n15, a16 n16, a17 n17, a18 n18, a19 n19) \
423 { \
424 static void (*f)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) FP_ATTRIB = NULL; \
425 HYBRIS_DLSYSM(name, &f, #symbol); \
426 f(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19); \
427 }
428
429
430 /**
431 * XXX AUTO-GENERATED FILE XXX
432 *
433 * Do not edit this file directly, but update the templates in
434 * utils/generate_wrapper_macros.py and run it again to build
435 * an updated version of this header file:
436 *
437 * python utils/generate_wrapper_macros.py > \
438 * hybris/include/hybris/internal/binding.h
439 *
440 * If you need macros with more arguments, just customize the
441 * MAX_ARGS variable in generate_wrapper_macros.py.
442 *
443 * XXX AUTO-GENERATED FILE XXX
444 **/
445
446
447 #endif /* HYBRIS_BINDING_H_ */
448