blob: cf2ada577b95ad92a26da5ad99fe1030cf5e49cd [file] [log] [blame]
Mark Young274e4bc2017-01-19 21:10:49 -07001/*
2 *
3 * Copyright (c) 2016 The Khronos Group Inc.
4 * Copyright (c) 2016 Valve Corporation
5 * Copyright (c) 2016 LunarG, Inc.
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 *
19 * Author: Mark Young <marky@lunarg.com>
20 *
21 */
22
23// This code is used to enable generic instance extensions which use a physical device
24// as the first parameter. If the extension is already known by the loader, it will
25// not use this code, but instead use the more direct route. However, if it is
26// unknown to the loader, it will use this code. Technically, this is not trampoline
27// code since we don't want to optimize it out.
28
29#include "vk_loader_platform.h"
30#include "loader.h"
31
32#if defined(__GNUC__) && !defined(__clang__)
33#pragma GCC optimize(3) // force gcc to use tail-calls
34#endif
35
36// Trampoline function macro for unknown physical device extension command.
Mark Lobodzinski91c10752017-01-26 12:16:30 -070037#define PhysDevExtTramp(num) \
38 VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp##num(VkPhysicalDevice physical_device) { \
39 const struct loader_instance_dispatch_table *disp; \
40 disp = loader_get_instance_dispatch(physical_device); \
41 disp->phys_dev_ext[num](loader_unwrap_physical_device(physical_device)); \
Mark Young274e4bc2017-01-19 21:10:49 -070042 }
43
44// Terminator function macro for unknown physical device extension command.
Mark Lobodzinski91c10752017-01-26 12:16:30 -070045#define PhysDevExtTermin(num) \
46 VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin##num(VkPhysicalDevice physical_device) { \
47 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physical_device; \
48 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term; \
49 struct loader_instance *inst = (struct loader_instance *)icd_term->this_instance; \
50 if (NULL == icd_term->phys_dev_ext[num]) { \
51 loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0, "Extension %s not supported for this physical device", \
52 inst->phys_dev_ext_disp_hash[num].func_name); \
53 } \
54 icd_term->phys_dev_ext[num](phys_dev_term->phys_dev); \
Mark Young274e4bc2017-01-19 21:10:49 -070055 }
56
Mark Lobodzinski1a6065d2017-01-26 12:22:32 -070057// Disable clang-format for lists of macros
58// clang-format off
59
Mark Young274e4bc2017-01-19 21:10:49 -070060// Instantiations of the trampoline and terminator
61PhysDevExtTramp(0) PhysDevExtTermin(0)
62PhysDevExtTramp(1) PhysDevExtTermin(1)
63PhysDevExtTramp(2) PhysDevExtTermin(2)
64PhysDevExtTramp(3) PhysDevExtTermin(3)
65PhysDevExtTramp(4) PhysDevExtTermin(4)
66PhysDevExtTramp(5) PhysDevExtTermin(5)
67PhysDevExtTramp(6) PhysDevExtTermin(6)
68PhysDevExtTramp(7) PhysDevExtTermin(7)
69PhysDevExtTramp(8) PhysDevExtTermin(8)
70PhysDevExtTramp(9) PhysDevExtTermin(9)
71PhysDevExtTramp(10) PhysDevExtTermin(10)
72PhysDevExtTramp(11) PhysDevExtTermin(11)
73PhysDevExtTramp(12) PhysDevExtTermin(12)
74PhysDevExtTramp(13) PhysDevExtTermin(13)
75PhysDevExtTramp(14) PhysDevExtTermin(14)
76PhysDevExtTramp(15) PhysDevExtTermin(15)
77PhysDevExtTramp(16) PhysDevExtTermin(16)
78PhysDevExtTramp(17) PhysDevExtTermin(17)
79PhysDevExtTramp(18) PhysDevExtTermin(18)
80PhysDevExtTramp(19) PhysDevExtTermin(19)
81PhysDevExtTramp(20) PhysDevExtTermin(20)
82PhysDevExtTramp(21) PhysDevExtTermin(21)
83PhysDevExtTramp(22) PhysDevExtTermin(22)
84PhysDevExtTramp(23) PhysDevExtTermin(23)
85PhysDevExtTramp(24) PhysDevExtTermin(24)
86PhysDevExtTramp(25) PhysDevExtTermin(25)
87PhysDevExtTramp(26) PhysDevExtTermin(26)
88PhysDevExtTramp(27) PhysDevExtTermin(27)
89PhysDevExtTramp(28) PhysDevExtTermin(28)
90PhysDevExtTramp(29) PhysDevExtTermin(29)
91PhysDevExtTramp(30) PhysDevExtTermin(30)
92PhysDevExtTramp(31) PhysDevExtTermin(31)
93PhysDevExtTramp(32) PhysDevExtTermin(32)
94PhysDevExtTramp(33) PhysDevExtTermin(33)
95PhysDevExtTramp(34) PhysDevExtTermin(34)
96PhysDevExtTramp(35) PhysDevExtTermin(35)
97PhysDevExtTramp(36) PhysDevExtTermin(36)
98PhysDevExtTramp(37) PhysDevExtTermin(37)
99PhysDevExtTramp(38) PhysDevExtTermin(38)
100PhysDevExtTramp(39) PhysDevExtTermin(39)
101PhysDevExtTramp(40) PhysDevExtTermin(40)
102PhysDevExtTramp(41) PhysDevExtTermin(41)
103PhysDevExtTramp(42) PhysDevExtTermin(42)
104PhysDevExtTramp(43) PhysDevExtTermin(43)
105PhysDevExtTramp(44) PhysDevExtTermin(44)
106PhysDevExtTramp(45) PhysDevExtTermin(45)
107PhysDevExtTramp(46) PhysDevExtTermin(46)
108PhysDevExtTramp(47) PhysDevExtTermin(47)
109PhysDevExtTramp(48) PhysDevExtTermin(48)
110PhysDevExtTramp(49) PhysDevExtTermin(49)
111PhysDevExtTramp(50) PhysDevExtTermin(50)
112PhysDevExtTramp(51) PhysDevExtTermin(51)
113PhysDevExtTramp(52) PhysDevExtTermin(52)
114PhysDevExtTramp(53) PhysDevExtTermin(53)
115PhysDevExtTramp(54) PhysDevExtTermin(54)
116PhysDevExtTramp(55) PhysDevExtTermin(55)
117PhysDevExtTramp(56) PhysDevExtTermin(56)
118PhysDevExtTramp(57) PhysDevExtTermin(57)
119PhysDevExtTramp(58) PhysDevExtTermin(58)
120PhysDevExtTramp(59) PhysDevExtTermin(59)
121PhysDevExtTramp(60) PhysDevExtTermin(60)
122PhysDevExtTramp(61) PhysDevExtTermin(61)
123PhysDevExtTramp(62) PhysDevExtTermin(62)
124PhysDevExtTramp(63) PhysDevExtTermin(63)
125PhysDevExtTramp(64) PhysDevExtTermin(64)
126PhysDevExtTramp(65) PhysDevExtTermin(65)
127PhysDevExtTramp(66) PhysDevExtTermin(66)
128PhysDevExtTramp(67) PhysDevExtTermin(67)
129PhysDevExtTramp(68) PhysDevExtTermin(68)
130PhysDevExtTramp(69) PhysDevExtTermin(69)
131PhysDevExtTramp(70) PhysDevExtTermin(70)
132PhysDevExtTramp(71) PhysDevExtTermin(71)
133PhysDevExtTramp(72) PhysDevExtTermin(72)
134PhysDevExtTramp(73) PhysDevExtTermin(73)
135PhysDevExtTramp(74) PhysDevExtTermin(74)
136PhysDevExtTramp(75) PhysDevExtTermin(75)
137PhysDevExtTramp(76) PhysDevExtTermin(76)
138PhysDevExtTramp(77) PhysDevExtTermin(77)
139PhysDevExtTramp(78) PhysDevExtTermin(78)
140PhysDevExtTramp(79) PhysDevExtTermin(79)
141PhysDevExtTramp(80) PhysDevExtTermin(80)
142PhysDevExtTramp(81) PhysDevExtTermin(81)
143PhysDevExtTramp(82) PhysDevExtTermin(82)
144PhysDevExtTramp(83) PhysDevExtTermin(83)
145PhysDevExtTramp(84) PhysDevExtTermin(84)
146PhysDevExtTramp(85) PhysDevExtTermin(85)
147PhysDevExtTramp(86) PhysDevExtTermin(86)
148PhysDevExtTramp(87) PhysDevExtTermin(87)
149PhysDevExtTramp(88) PhysDevExtTermin(88)
150PhysDevExtTramp(89) PhysDevExtTermin(89)
151PhysDevExtTramp(90) PhysDevExtTermin(90)
152PhysDevExtTramp(91) PhysDevExtTermin(91)
153PhysDevExtTramp(92) PhysDevExtTermin(92)
154PhysDevExtTramp(93) PhysDevExtTermin(93)
155PhysDevExtTramp(94) PhysDevExtTermin(94)
156PhysDevExtTramp(95) PhysDevExtTermin(95)
157PhysDevExtTramp(96) PhysDevExtTermin(96)
158PhysDevExtTramp(97) PhysDevExtTermin(97)
159PhysDevExtTramp(98) PhysDevExtTermin(98)
160PhysDevExtTramp(99) PhysDevExtTermin(99)
161PhysDevExtTramp(100) PhysDevExtTermin(100)
162PhysDevExtTramp(101) PhysDevExtTermin(101)
163PhysDevExtTramp(102) PhysDevExtTermin(102)
164PhysDevExtTramp(103) PhysDevExtTermin(103)
165PhysDevExtTramp(104) PhysDevExtTermin(104)
166PhysDevExtTramp(105) PhysDevExtTermin(105)
167PhysDevExtTramp(106) PhysDevExtTermin(106)
168PhysDevExtTramp(107) PhysDevExtTermin(107)
169PhysDevExtTramp(108) PhysDevExtTermin(108)
170PhysDevExtTramp(109) PhysDevExtTermin(109)
171PhysDevExtTramp(110) PhysDevExtTermin(110)
172PhysDevExtTramp(111) PhysDevExtTermin(111)
173PhysDevExtTramp(112) PhysDevExtTermin(112)
174PhysDevExtTramp(113) PhysDevExtTermin(113)
175PhysDevExtTramp(114) PhysDevExtTermin(114)
176PhysDevExtTramp(115) PhysDevExtTermin(115)
177PhysDevExtTramp(116) PhysDevExtTermin(116)
178PhysDevExtTramp(117) PhysDevExtTermin(117)
179PhysDevExtTramp(118) PhysDevExtTermin(118)
180PhysDevExtTramp(119) PhysDevExtTermin(119)
181PhysDevExtTramp(120) PhysDevExtTermin(120)
182PhysDevExtTramp(121) PhysDevExtTermin(121)
183PhysDevExtTramp(122) PhysDevExtTermin(122)
184PhysDevExtTramp(123) PhysDevExtTermin(123)
185PhysDevExtTramp(124) PhysDevExtTermin(124)
186PhysDevExtTramp(125) PhysDevExtTermin(125)
187PhysDevExtTramp(126) PhysDevExtTermin(126)
188PhysDevExtTramp(127) PhysDevExtTermin(127)
189PhysDevExtTramp(128) PhysDevExtTermin(128)
190PhysDevExtTramp(129) PhysDevExtTermin(129)
191PhysDevExtTramp(130) PhysDevExtTermin(130)
192PhysDevExtTramp(131) PhysDevExtTermin(131)
193PhysDevExtTramp(132) PhysDevExtTermin(132)
194PhysDevExtTramp(133) PhysDevExtTermin(133)
195PhysDevExtTramp(134) PhysDevExtTermin(134)
196PhysDevExtTramp(135) PhysDevExtTermin(135)
197PhysDevExtTramp(136) PhysDevExtTermin(136)
198PhysDevExtTramp(137) PhysDevExtTermin(137)
199PhysDevExtTramp(138) PhysDevExtTermin(138)
200PhysDevExtTramp(139) PhysDevExtTermin(139)
201PhysDevExtTramp(140) PhysDevExtTermin(140)
202PhysDevExtTramp(141) PhysDevExtTermin(141)
203PhysDevExtTramp(142) PhysDevExtTermin(142)
204PhysDevExtTramp(143) PhysDevExtTermin(143)
205PhysDevExtTramp(144) PhysDevExtTermin(144)
206PhysDevExtTramp(145) PhysDevExtTermin(145)
207PhysDevExtTramp(146) PhysDevExtTermin(146)
208PhysDevExtTramp(147) PhysDevExtTermin(147)
209PhysDevExtTramp(148) PhysDevExtTermin(148)
210PhysDevExtTramp(149) PhysDevExtTermin(149)
211PhysDevExtTramp(150) PhysDevExtTermin(150)
212PhysDevExtTramp(151) PhysDevExtTermin(151)
213PhysDevExtTramp(152) PhysDevExtTermin(152)
214PhysDevExtTramp(153) PhysDevExtTermin(153)
215PhysDevExtTramp(154) PhysDevExtTermin(154)
216PhysDevExtTramp(155) PhysDevExtTermin(155)
217PhysDevExtTramp(156) PhysDevExtTermin(156)
218PhysDevExtTramp(157) PhysDevExtTermin(157)
219PhysDevExtTramp(158) PhysDevExtTermin(158)
220PhysDevExtTramp(159) PhysDevExtTermin(159)
221PhysDevExtTramp(160) PhysDevExtTermin(160)
222PhysDevExtTramp(161) PhysDevExtTermin(161)
223PhysDevExtTramp(162) PhysDevExtTermin(162)
224PhysDevExtTramp(163) PhysDevExtTermin(163)
225PhysDevExtTramp(164) PhysDevExtTermin(164)
226PhysDevExtTramp(165) PhysDevExtTermin(165)
227PhysDevExtTramp(166) PhysDevExtTermin(166)
228PhysDevExtTramp(167) PhysDevExtTermin(167)
229PhysDevExtTramp(168) PhysDevExtTermin(168)
230PhysDevExtTramp(169) PhysDevExtTermin(169)
231PhysDevExtTramp(170) PhysDevExtTermin(170)
232PhysDevExtTramp(171) PhysDevExtTermin(171)
233PhysDevExtTramp(172) PhysDevExtTermin(172)
234PhysDevExtTramp(173) PhysDevExtTermin(173)
235PhysDevExtTramp(174) PhysDevExtTermin(174)
236PhysDevExtTramp(175) PhysDevExtTermin(175)
237PhysDevExtTramp(176) PhysDevExtTermin(176)
238PhysDevExtTramp(177) PhysDevExtTermin(177)
239PhysDevExtTramp(178) PhysDevExtTermin(178)
240PhysDevExtTramp(179) PhysDevExtTermin(179)
241PhysDevExtTramp(180) PhysDevExtTermin(180)
242PhysDevExtTramp(181) PhysDevExtTermin(181)
243PhysDevExtTramp(182) PhysDevExtTermin(182)
244PhysDevExtTramp(183) PhysDevExtTermin(183)
245PhysDevExtTramp(184) PhysDevExtTermin(184)
246PhysDevExtTramp(185) PhysDevExtTermin(185)
247PhysDevExtTramp(186) PhysDevExtTermin(186)
248PhysDevExtTramp(187) PhysDevExtTermin(187)
249PhysDevExtTramp(188) PhysDevExtTermin(188)
250PhysDevExtTramp(189) PhysDevExtTermin(189)
251PhysDevExtTramp(190) PhysDevExtTermin(190)
252PhysDevExtTramp(191) PhysDevExtTermin(191)
253PhysDevExtTramp(192) PhysDevExtTermin(192)
254PhysDevExtTramp(193) PhysDevExtTermin(193)
255PhysDevExtTramp(194) PhysDevExtTermin(194)
256PhysDevExtTramp(195) PhysDevExtTermin(195)
257PhysDevExtTramp(196) PhysDevExtTermin(196)
258PhysDevExtTramp(197) PhysDevExtTermin(197)
259PhysDevExtTramp(198) PhysDevExtTermin(198)
260PhysDevExtTramp(199) PhysDevExtTermin(199)
261PhysDevExtTramp(200) PhysDevExtTermin(200)
262PhysDevExtTramp(201) PhysDevExtTermin(201)
263PhysDevExtTramp(202) PhysDevExtTermin(202)
264PhysDevExtTramp(203) PhysDevExtTermin(203)
265PhysDevExtTramp(204) PhysDevExtTermin(204)
266PhysDevExtTramp(205) PhysDevExtTermin(205)
267PhysDevExtTramp(206) PhysDevExtTermin(206)
268PhysDevExtTramp(207) PhysDevExtTermin(207)
269PhysDevExtTramp(208) PhysDevExtTermin(208)
270PhysDevExtTramp(209) PhysDevExtTermin(209)
271PhysDevExtTramp(210) PhysDevExtTermin(210)
272PhysDevExtTramp(211) PhysDevExtTermin(211)
273PhysDevExtTramp(212) PhysDevExtTermin(212)
274PhysDevExtTramp(213) PhysDevExtTermin(213)
275PhysDevExtTramp(214) PhysDevExtTermin(214)
276PhysDevExtTramp(215) PhysDevExtTermin(215)
277PhysDevExtTramp(216) PhysDevExtTermin(216)
278PhysDevExtTramp(217) PhysDevExtTermin(217)
279PhysDevExtTramp(218) PhysDevExtTermin(218)
280PhysDevExtTramp(219) PhysDevExtTermin(219)
281PhysDevExtTramp(220) PhysDevExtTermin(220)
282PhysDevExtTramp(221) PhysDevExtTermin(221)
283PhysDevExtTramp(222) PhysDevExtTermin(222)
284PhysDevExtTramp(223) PhysDevExtTermin(223)
285PhysDevExtTramp(224) PhysDevExtTermin(224)
286PhysDevExtTramp(225) PhysDevExtTermin(225)
287PhysDevExtTramp(226) PhysDevExtTermin(226)
288PhysDevExtTramp(227) PhysDevExtTermin(227)
289PhysDevExtTramp(228) PhysDevExtTermin(228)
290PhysDevExtTramp(229) PhysDevExtTermin(229)
291PhysDevExtTramp(230) PhysDevExtTermin(230)
292PhysDevExtTramp(231) PhysDevExtTermin(231)
293PhysDevExtTramp(232) PhysDevExtTermin(232)
294PhysDevExtTramp(233) PhysDevExtTermin(233)
295PhysDevExtTramp(234) PhysDevExtTermin(234)
296PhysDevExtTramp(235) PhysDevExtTermin(235)
297PhysDevExtTramp(236) PhysDevExtTermin(236)
298PhysDevExtTramp(237) PhysDevExtTermin(237)
299PhysDevExtTramp(238) PhysDevExtTermin(238)
300PhysDevExtTramp(239) PhysDevExtTermin(239)
301PhysDevExtTramp(240) PhysDevExtTermin(240)
302PhysDevExtTramp(241) PhysDevExtTermin(241)
303PhysDevExtTramp(242) PhysDevExtTermin(242)
304PhysDevExtTramp(243) PhysDevExtTermin(243)
305PhysDevExtTramp(244) PhysDevExtTermin(244)
306PhysDevExtTramp(245) PhysDevExtTermin(245)
307PhysDevExtTramp(246) PhysDevExtTermin(246)
308PhysDevExtTramp(247) PhysDevExtTermin(247)
309PhysDevExtTramp(248) PhysDevExtTermin(248)
310PhysDevExtTramp(249) PhysDevExtTermin(249)
311
312
313void *loader_get_phys_dev_ext_tramp(uint32_t index) {
314 switch (index) {
315#define TRAMP_CASE_HANDLE(num) case num: return vkPhysDevExtTramp##num
316 TRAMP_CASE_HANDLE(0);
317 TRAMP_CASE_HANDLE(1);
318 TRAMP_CASE_HANDLE(2);
319 TRAMP_CASE_HANDLE(3);
320 TRAMP_CASE_HANDLE(4);
321 TRAMP_CASE_HANDLE(5);
322 TRAMP_CASE_HANDLE(6);
323 TRAMP_CASE_HANDLE(7);
324 TRAMP_CASE_HANDLE(8);
325 TRAMP_CASE_HANDLE(9);
326 TRAMP_CASE_HANDLE(10);
327 TRAMP_CASE_HANDLE(11);
328 TRAMP_CASE_HANDLE(12);
329 TRAMP_CASE_HANDLE(13);
330 TRAMP_CASE_HANDLE(14);
331 TRAMP_CASE_HANDLE(15);
332 TRAMP_CASE_HANDLE(16);
333 TRAMP_CASE_HANDLE(17);
334 TRAMP_CASE_HANDLE(18);
335 TRAMP_CASE_HANDLE(19);
336 TRAMP_CASE_HANDLE(20);
337 TRAMP_CASE_HANDLE(21);
338 TRAMP_CASE_HANDLE(22);
339 TRAMP_CASE_HANDLE(23);
340 TRAMP_CASE_HANDLE(24);
341 TRAMP_CASE_HANDLE(25);
342 TRAMP_CASE_HANDLE(26);
343 TRAMP_CASE_HANDLE(27);
344 TRAMP_CASE_HANDLE(28);
345 TRAMP_CASE_HANDLE(29);
346 TRAMP_CASE_HANDLE(30);
347 TRAMP_CASE_HANDLE(31);
348 TRAMP_CASE_HANDLE(32);
349 TRAMP_CASE_HANDLE(33);
350 TRAMP_CASE_HANDLE(34);
351 TRAMP_CASE_HANDLE(35);
352 TRAMP_CASE_HANDLE(36);
353 TRAMP_CASE_HANDLE(37);
354 TRAMP_CASE_HANDLE(38);
355 TRAMP_CASE_HANDLE(39);
356 TRAMP_CASE_HANDLE(40);
357 TRAMP_CASE_HANDLE(41);
358 TRAMP_CASE_HANDLE(42);
359 TRAMP_CASE_HANDLE(43);
360 TRAMP_CASE_HANDLE(44);
361 TRAMP_CASE_HANDLE(45);
362 TRAMP_CASE_HANDLE(46);
363 TRAMP_CASE_HANDLE(47);
364 TRAMP_CASE_HANDLE(48);
365 TRAMP_CASE_HANDLE(49);
366 TRAMP_CASE_HANDLE(50);
367 TRAMP_CASE_HANDLE(51);
368 TRAMP_CASE_HANDLE(52);
369 TRAMP_CASE_HANDLE(53);
370 TRAMP_CASE_HANDLE(54);
371 TRAMP_CASE_HANDLE(55);
372 TRAMP_CASE_HANDLE(56);
373 TRAMP_CASE_HANDLE(57);
374 TRAMP_CASE_HANDLE(58);
375 TRAMP_CASE_HANDLE(59);
376 TRAMP_CASE_HANDLE(60);
377 TRAMP_CASE_HANDLE(61);
378 TRAMP_CASE_HANDLE(62);
379 TRAMP_CASE_HANDLE(63);
380 TRAMP_CASE_HANDLE(64);
381 TRAMP_CASE_HANDLE(65);
382 TRAMP_CASE_HANDLE(66);
383 TRAMP_CASE_HANDLE(67);
384 TRAMP_CASE_HANDLE(68);
385 TRAMP_CASE_HANDLE(69);
386 TRAMP_CASE_HANDLE(70);
387 TRAMP_CASE_HANDLE(71);
388 TRAMP_CASE_HANDLE(72);
389 TRAMP_CASE_HANDLE(73);
390 TRAMP_CASE_HANDLE(74);
391 TRAMP_CASE_HANDLE(75);
392 TRAMP_CASE_HANDLE(76);
393 TRAMP_CASE_HANDLE(77);
394 TRAMP_CASE_HANDLE(78);
395 TRAMP_CASE_HANDLE(79);
396 TRAMP_CASE_HANDLE(80);
397 TRAMP_CASE_HANDLE(81);
398 TRAMP_CASE_HANDLE(82);
399 TRAMP_CASE_HANDLE(83);
400 TRAMP_CASE_HANDLE(84);
401 TRAMP_CASE_HANDLE(85);
402 TRAMP_CASE_HANDLE(86);
403 TRAMP_CASE_HANDLE(87);
404 TRAMP_CASE_HANDLE(88);
405 TRAMP_CASE_HANDLE(89);
406 TRAMP_CASE_HANDLE(90);
407 TRAMP_CASE_HANDLE(91);
408 TRAMP_CASE_HANDLE(92);
409 TRAMP_CASE_HANDLE(93);
410 TRAMP_CASE_HANDLE(94);
411 TRAMP_CASE_HANDLE(95);
412 TRAMP_CASE_HANDLE(96);
413 TRAMP_CASE_HANDLE(97);
414 TRAMP_CASE_HANDLE(98);
415 TRAMP_CASE_HANDLE(99);
416 TRAMP_CASE_HANDLE(100);
417 TRAMP_CASE_HANDLE(101);
418 TRAMP_CASE_HANDLE(102);
419 TRAMP_CASE_HANDLE(103);
420 TRAMP_CASE_HANDLE(104);
421 TRAMP_CASE_HANDLE(105);
422 TRAMP_CASE_HANDLE(106);
423 TRAMP_CASE_HANDLE(107);
424 TRAMP_CASE_HANDLE(108);
425 TRAMP_CASE_HANDLE(109);
426 TRAMP_CASE_HANDLE(110);
427 TRAMP_CASE_HANDLE(111);
428 TRAMP_CASE_HANDLE(112);
429 TRAMP_CASE_HANDLE(113);
430 TRAMP_CASE_HANDLE(114);
431 TRAMP_CASE_HANDLE(115);
432 TRAMP_CASE_HANDLE(116);
433 TRAMP_CASE_HANDLE(117);
434 TRAMP_CASE_HANDLE(118);
435 TRAMP_CASE_HANDLE(119);
436 TRAMP_CASE_HANDLE(120);
437 TRAMP_CASE_HANDLE(121);
438 TRAMP_CASE_HANDLE(122);
439 TRAMP_CASE_HANDLE(123);
440 TRAMP_CASE_HANDLE(124);
441 TRAMP_CASE_HANDLE(125);
442 TRAMP_CASE_HANDLE(126);
443 TRAMP_CASE_HANDLE(127);
444 TRAMP_CASE_HANDLE(128);
445 TRAMP_CASE_HANDLE(129);
446 TRAMP_CASE_HANDLE(130);
447 TRAMP_CASE_HANDLE(131);
448 TRAMP_CASE_HANDLE(132);
449 TRAMP_CASE_HANDLE(133);
450 TRAMP_CASE_HANDLE(134);
451 TRAMP_CASE_HANDLE(135);
452 TRAMP_CASE_HANDLE(136);
453 TRAMP_CASE_HANDLE(137);
454 TRAMP_CASE_HANDLE(138);
455 TRAMP_CASE_HANDLE(139);
456 TRAMP_CASE_HANDLE(140);
457 TRAMP_CASE_HANDLE(141);
458 TRAMP_CASE_HANDLE(142);
459 TRAMP_CASE_HANDLE(143);
460 TRAMP_CASE_HANDLE(144);
461 TRAMP_CASE_HANDLE(145);
462 TRAMP_CASE_HANDLE(146);
463 TRAMP_CASE_HANDLE(147);
464 TRAMP_CASE_HANDLE(148);
465 TRAMP_CASE_HANDLE(149);
466 TRAMP_CASE_HANDLE(150);
467 TRAMP_CASE_HANDLE(151);
468 TRAMP_CASE_HANDLE(152);
469 TRAMP_CASE_HANDLE(153);
470 TRAMP_CASE_HANDLE(154);
471 TRAMP_CASE_HANDLE(155);
472 TRAMP_CASE_HANDLE(156);
473 TRAMP_CASE_HANDLE(157);
474 TRAMP_CASE_HANDLE(158);
475 TRAMP_CASE_HANDLE(159);
476 TRAMP_CASE_HANDLE(160);
477 TRAMP_CASE_HANDLE(161);
478 TRAMP_CASE_HANDLE(162);
479 TRAMP_CASE_HANDLE(163);
480 TRAMP_CASE_HANDLE(164);
481 TRAMP_CASE_HANDLE(165);
482 TRAMP_CASE_HANDLE(166);
483 TRAMP_CASE_HANDLE(167);
484 TRAMP_CASE_HANDLE(168);
485 TRAMP_CASE_HANDLE(169);
486 TRAMP_CASE_HANDLE(170);
487 TRAMP_CASE_HANDLE(171);
488 TRAMP_CASE_HANDLE(172);
489 TRAMP_CASE_HANDLE(173);
490 TRAMP_CASE_HANDLE(174);
491 TRAMP_CASE_HANDLE(175);
492 TRAMP_CASE_HANDLE(176);
493 TRAMP_CASE_HANDLE(177);
494 TRAMP_CASE_HANDLE(178);
495 TRAMP_CASE_HANDLE(179);
496 TRAMP_CASE_HANDLE(180);
497 TRAMP_CASE_HANDLE(181);
498 TRAMP_CASE_HANDLE(182);
499 TRAMP_CASE_HANDLE(183);
500 TRAMP_CASE_HANDLE(184);
501 TRAMP_CASE_HANDLE(185);
502 TRAMP_CASE_HANDLE(186);
503 TRAMP_CASE_HANDLE(187);
504 TRAMP_CASE_HANDLE(188);
505 TRAMP_CASE_HANDLE(189);
506 TRAMP_CASE_HANDLE(190);
507 TRAMP_CASE_HANDLE(191);
508 TRAMP_CASE_HANDLE(192);
509 TRAMP_CASE_HANDLE(193);
510 TRAMP_CASE_HANDLE(194);
511 TRAMP_CASE_HANDLE(195);
512 TRAMP_CASE_HANDLE(196);
513 TRAMP_CASE_HANDLE(197);
514 TRAMP_CASE_HANDLE(198);
515 TRAMP_CASE_HANDLE(199);
516 TRAMP_CASE_HANDLE(200);
517 TRAMP_CASE_HANDLE(201);
518 TRAMP_CASE_HANDLE(202);
519 TRAMP_CASE_HANDLE(203);
520 TRAMP_CASE_HANDLE(204);
521 TRAMP_CASE_HANDLE(205);
522 TRAMP_CASE_HANDLE(206);
523 TRAMP_CASE_HANDLE(207);
524 TRAMP_CASE_HANDLE(208);
525 TRAMP_CASE_HANDLE(209);
526 TRAMP_CASE_HANDLE(210);
527 TRAMP_CASE_HANDLE(211);
528 TRAMP_CASE_HANDLE(212);
529 TRAMP_CASE_HANDLE(213);
530 TRAMP_CASE_HANDLE(214);
531 TRAMP_CASE_HANDLE(215);
532 TRAMP_CASE_HANDLE(216);
533 TRAMP_CASE_HANDLE(217);
534 TRAMP_CASE_HANDLE(218);
535 TRAMP_CASE_HANDLE(219);
536 TRAMP_CASE_HANDLE(220);
537 TRAMP_CASE_HANDLE(221);
538 TRAMP_CASE_HANDLE(222);
539 TRAMP_CASE_HANDLE(223);
540 TRAMP_CASE_HANDLE(224);
541 TRAMP_CASE_HANDLE(225);
542 TRAMP_CASE_HANDLE(226);
543 TRAMP_CASE_HANDLE(227);
544 TRAMP_CASE_HANDLE(228);
545 TRAMP_CASE_HANDLE(229);
546 TRAMP_CASE_HANDLE(230);
547 TRAMP_CASE_HANDLE(231);
548 TRAMP_CASE_HANDLE(232);
549 TRAMP_CASE_HANDLE(233);
550 TRAMP_CASE_HANDLE(234);
551 TRAMP_CASE_HANDLE(235);
552 TRAMP_CASE_HANDLE(236);
553 TRAMP_CASE_HANDLE(237);
554 TRAMP_CASE_HANDLE(238);
555 TRAMP_CASE_HANDLE(239);
556 TRAMP_CASE_HANDLE(240);
557 TRAMP_CASE_HANDLE(241);
558 TRAMP_CASE_HANDLE(242);
559 TRAMP_CASE_HANDLE(243);
560 TRAMP_CASE_HANDLE(244);
561 TRAMP_CASE_HANDLE(245);
562 TRAMP_CASE_HANDLE(246);
563 TRAMP_CASE_HANDLE(247);
564 TRAMP_CASE_HANDLE(248);
565 TRAMP_CASE_HANDLE(249);
566 }
567 return NULL;
568}
569
570void *loader_get_phys_dev_ext_termin(uint32_t index) {
571 switch (index) {
572#define TERM_CASE_HANDLE(num) case num: return vkPhysDevExtTermin##num
573 TERM_CASE_HANDLE(0);
574 TERM_CASE_HANDLE(1);
575 TERM_CASE_HANDLE(2);
576 TERM_CASE_HANDLE(3);
577 TERM_CASE_HANDLE(4);
578 TERM_CASE_HANDLE(5);
579 TERM_CASE_HANDLE(6);
580 TERM_CASE_HANDLE(7);
581 TERM_CASE_HANDLE(8);
582 TERM_CASE_HANDLE(9);
583 TERM_CASE_HANDLE(10);
584 TERM_CASE_HANDLE(11);
585 TERM_CASE_HANDLE(12);
586 TERM_CASE_HANDLE(13);
587 TERM_CASE_HANDLE(14);
588 TERM_CASE_HANDLE(15);
589 TERM_CASE_HANDLE(16);
590 TERM_CASE_HANDLE(17);
591 TERM_CASE_HANDLE(18);
592 TERM_CASE_HANDLE(19);
593 TERM_CASE_HANDLE(20);
594 TERM_CASE_HANDLE(21);
595 TERM_CASE_HANDLE(22);
596 TERM_CASE_HANDLE(23);
597 TERM_CASE_HANDLE(24);
598 TERM_CASE_HANDLE(25);
599 TERM_CASE_HANDLE(26);
600 TERM_CASE_HANDLE(27);
601 TERM_CASE_HANDLE(28);
602 TERM_CASE_HANDLE(29);
603 TERM_CASE_HANDLE(30);
604 TERM_CASE_HANDLE(31);
605 TERM_CASE_HANDLE(32);
606 TERM_CASE_HANDLE(33);
607 TERM_CASE_HANDLE(34);
608 TERM_CASE_HANDLE(35);
609 TERM_CASE_HANDLE(36);
610 TERM_CASE_HANDLE(37);
611 TERM_CASE_HANDLE(38);
612 TERM_CASE_HANDLE(39);
613 TERM_CASE_HANDLE(40);
614 TERM_CASE_HANDLE(41);
615 TERM_CASE_HANDLE(42);
616 TERM_CASE_HANDLE(43);
617 TERM_CASE_HANDLE(44);
618 TERM_CASE_HANDLE(45);
619 TERM_CASE_HANDLE(46);
620 TERM_CASE_HANDLE(47);
621 TERM_CASE_HANDLE(48);
622 TERM_CASE_HANDLE(49);
623 TERM_CASE_HANDLE(50);
624 TERM_CASE_HANDLE(51);
625 TERM_CASE_HANDLE(52);
626 TERM_CASE_HANDLE(53);
627 TERM_CASE_HANDLE(54);
628 TERM_CASE_HANDLE(55);
629 TERM_CASE_HANDLE(56);
630 TERM_CASE_HANDLE(57);
631 TERM_CASE_HANDLE(58);
632 TERM_CASE_HANDLE(59);
633 TERM_CASE_HANDLE(60);
634 TERM_CASE_HANDLE(61);
635 TERM_CASE_HANDLE(62);
636 TERM_CASE_HANDLE(63);
637 TERM_CASE_HANDLE(64);
638 TERM_CASE_HANDLE(65);
639 TERM_CASE_HANDLE(66);
640 TERM_CASE_HANDLE(67);
641 TERM_CASE_HANDLE(68);
642 TERM_CASE_HANDLE(69);
643 TERM_CASE_HANDLE(70);
644 TERM_CASE_HANDLE(71);
645 TERM_CASE_HANDLE(72);
646 TERM_CASE_HANDLE(73);
647 TERM_CASE_HANDLE(74);
648 TERM_CASE_HANDLE(75);
649 TERM_CASE_HANDLE(76);
650 TERM_CASE_HANDLE(77);
651 TERM_CASE_HANDLE(78);
652 TERM_CASE_HANDLE(79);
653 TERM_CASE_HANDLE(80);
654 TERM_CASE_HANDLE(81);
655 TERM_CASE_HANDLE(82);
656 TERM_CASE_HANDLE(83);
657 TERM_CASE_HANDLE(84);
658 TERM_CASE_HANDLE(85);
659 TERM_CASE_HANDLE(86);
660 TERM_CASE_HANDLE(87);
661 TERM_CASE_HANDLE(88);
662 TERM_CASE_HANDLE(89);
663 TERM_CASE_HANDLE(90);
664 TERM_CASE_HANDLE(91);
665 TERM_CASE_HANDLE(92);
666 TERM_CASE_HANDLE(93);
667 TERM_CASE_HANDLE(94);
668 TERM_CASE_HANDLE(95);
669 TERM_CASE_HANDLE(96);
670 TERM_CASE_HANDLE(97);
671 TERM_CASE_HANDLE(98);
672 TERM_CASE_HANDLE(99);
673 TERM_CASE_HANDLE(100);
674 TERM_CASE_HANDLE(101);
675 TERM_CASE_HANDLE(102);
676 TERM_CASE_HANDLE(103);
677 TERM_CASE_HANDLE(104);
678 TERM_CASE_HANDLE(105);
679 TERM_CASE_HANDLE(106);
680 TERM_CASE_HANDLE(107);
681 TERM_CASE_HANDLE(108);
682 TERM_CASE_HANDLE(109);
683 TERM_CASE_HANDLE(110);
684 TERM_CASE_HANDLE(111);
685 TERM_CASE_HANDLE(112);
686 TERM_CASE_HANDLE(113);
687 TERM_CASE_HANDLE(114);
688 TERM_CASE_HANDLE(115);
689 TERM_CASE_HANDLE(116);
690 TERM_CASE_HANDLE(117);
691 TERM_CASE_HANDLE(118);
692 TERM_CASE_HANDLE(119);
693 TERM_CASE_HANDLE(120);
694 TERM_CASE_HANDLE(121);
695 TERM_CASE_HANDLE(122);
696 TERM_CASE_HANDLE(123);
697 TERM_CASE_HANDLE(124);
698 TERM_CASE_HANDLE(125);
699 TERM_CASE_HANDLE(126);
700 TERM_CASE_HANDLE(127);
701 TERM_CASE_HANDLE(128);
702 TERM_CASE_HANDLE(129);
703 TERM_CASE_HANDLE(130);
704 TERM_CASE_HANDLE(131);
705 TERM_CASE_HANDLE(132);
706 TERM_CASE_HANDLE(133);
707 TERM_CASE_HANDLE(134);
708 TERM_CASE_HANDLE(135);
709 TERM_CASE_HANDLE(136);
710 TERM_CASE_HANDLE(137);
711 TERM_CASE_HANDLE(138);
712 TERM_CASE_HANDLE(139);
713 TERM_CASE_HANDLE(140);
714 TERM_CASE_HANDLE(141);
715 TERM_CASE_HANDLE(142);
716 TERM_CASE_HANDLE(143);
717 TERM_CASE_HANDLE(144);
718 TERM_CASE_HANDLE(145);
719 TERM_CASE_HANDLE(146);
720 TERM_CASE_HANDLE(147);
721 TERM_CASE_HANDLE(148);
722 TERM_CASE_HANDLE(149);
723 TERM_CASE_HANDLE(150);
724 TERM_CASE_HANDLE(151);
725 TERM_CASE_HANDLE(152);
726 TERM_CASE_HANDLE(153);
727 TERM_CASE_HANDLE(154);
728 TERM_CASE_HANDLE(155);
729 TERM_CASE_HANDLE(156);
730 TERM_CASE_HANDLE(157);
731 TERM_CASE_HANDLE(158);
732 TERM_CASE_HANDLE(159);
733 TERM_CASE_HANDLE(160);
734 TERM_CASE_HANDLE(161);
735 TERM_CASE_HANDLE(162);
736 TERM_CASE_HANDLE(163);
737 TERM_CASE_HANDLE(164);
738 TERM_CASE_HANDLE(165);
739 TERM_CASE_HANDLE(166);
740 TERM_CASE_HANDLE(167);
741 TERM_CASE_HANDLE(168);
742 TERM_CASE_HANDLE(169);
743 TERM_CASE_HANDLE(170);
744 TERM_CASE_HANDLE(171);
745 TERM_CASE_HANDLE(172);
746 TERM_CASE_HANDLE(173);
747 TERM_CASE_HANDLE(174);
748 TERM_CASE_HANDLE(175);
749 TERM_CASE_HANDLE(176);
750 TERM_CASE_HANDLE(177);
751 TERM_CASE_HANDLE(178);
752 TERM_CASE_HANDLE(179);
753 TERM_CASE_HANDLE(180);
754 TERM_CASE_HANDLE(181);
755 TERM_CASE_HANDLE(182);
756 TERM_CASE_HANDLE(183);
757 TERM_CASE_HANDLE(184);
758 TERM_CASE_HANDLE(185);
759 TERM_CASE_HANDLE(186);
760 TERM_CASE_HANDLE(187);
761 TERM_CASE_HANDLE(188);
762 TERM_CASE_HANDLE(189);
763 TERM_CASE_HANDLE(190);
764 TERM_CASE_HANDLE(191);
765 TERM_CASE_HANDLE(192);
766 TERM_CASE_HANDLE(193);
767 TERM_CASE_HANDLE(194);
768 TERM_CASE_HANDLE(195);
769 TERM_CASE_HANDLE(196);
770 TERM_CASE_HANDLE(197);
771 TERM_CASE_HANDLE(198);
772 TERM_CASE_HANDLE(199);
773 TERM_CASE_HANDLE(200);
774 TERM_CASE_HANDLE(201);
775 TERM_CASE_HANDLE(202);
776 TERM_CASE_HANDLE(203);
777 TERM_CASE_HANDLE(204);
778 TERM_CASE_HANDLE(205);
779 TERM_CASE_HANDLE(206);
780 TERM_CASE_HANDLE(207);
781 TERM_CASE_HANDLE(208);
782 TERM_CASE_HANDLE(209);
783 TERM_CASE_HANDLE(210);
784 TERM_CASE_HANDLE(211);
785 TERM_CASE_HANDLE(212);
786 TERM_CASE_HANDLE(213);
787 TERM_CASE_HANDLE(214);
788 TERM_CASE_HANDLE(215);
789 TERM_CASE_HANDLE(216);
790 TERM_CASE_HANDLE(217);
791 TERM_CASE_HANDLE(218);
792 TERM_CASE_HANDLE(219);
793 TERM_CASE_HANDLE(220);
794 TERM_CASE_HANDLE(221);
795 TERM_CASE_HANDLE(222);
796 TERM_CASE_HANDLE(223);
797 TERM_CASE_HANDLE(224);
798 TERM_CASE_HANDLE(225);
799 TERM_CASE_HANDLE(226);
800 TERM_CASE_HANDLE(227);
801 TERM_CASE_HANDLE(228);
802 TERM_CASE_HANDLE(229);
803 TERM_CASE_HANDLE(230);
804 TERM_CASE_HANDLE(231);
805 TERM_CASE_HANDLE(232);
806 TERM_CASE_HANDLE(233);
807 TERM_CASE_HANDLE(234);
808 TERM_CASE_HANDLE(235);
809 TERM_CASE_HANDLE(236);
810 TERM_CASE_HANDLE(237);
811 TERM_CASE_HANDLE(238);
812 TERM_CASE_HANDLE(239);
813 TERM_CASE_HANDLE(240);
814 TERM_CASE_HANDLE(241);
815 TERM_CASE_HANDLE(242);
816 TERM_CASE_HANDLE(243);
817 TERM_CASE_HANDLE(244);
818 TERM_CASE_HANDLE(245);
819 TERM_CASE_HANDLE(246);
820 TERM_CASE_HANDLE(247);
821 TERM_CASE_HANDLE(248);
822 TERM_CASE_HANDLE(249);
823 }
824 return NULL;
825}