blob: aca92ea5b8d37a7c53a9a154ad225bc28a372eab [file] [log] [blame]
Lenny Komowb8133f52017-06-09 15:21:06 -06001#
2# Copyright (c) 2017 The Khronos Group Inc.
3# Copyright (c) 2017 Valve Corporation
4# Copyright (c) 2017 LunarG, Inc.
5#
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17#
18# Author: Lenny Komow <lenny@lunarg.com>
19#
20
Lenny Komowea568fe2017-07-03 14:48:38 -060021# This code is used to pass on device (including physical device) extensions through the call chain. It must do this without
22# creating a stack frame, because the actual parameters of the call are not known. Since the first parameter is known to be a
23# VkPhysicalDevice or a dispatchable object it can unwrap the object, possibly overwriting the wrapped physical device, and then
24# jump to the next function in the call chain
Lenny Komowb8133f52017-06-09 15:21:06 -060025
26.intel_syntax noprefix
27.include "gen_defines.asm"
28
29.ifdef X86_64
30
Lenny Komowb8133f52017-06-09 15:21:06 -060031.macro PhysDevExtTramp num
32.global vkPhysDevExtTramp\num
33vkPhysDevExtTramp\num:
34 mov rax, [rdi]
Lenny Komow253747d2017-06-29 11:11:16 -060035 mov rdi, [rdi + PHYS_DEV_OFFSET_PHYS_DEV_TRAMP]
36 jmp [rax + (PHYS_DEV_OFFSET_INST_DISPATCH + (PTR_SIZE * \num))]
37.endm
38
39.macro PhysDevExtTermin num
40.global vkPhysDevExtTermin\num
41vkPhysDevExtTermin\num:
42 mov rax, [rdi + ICD_TERM_OFFSET_PHYS_DEV_TERM] # Store the loader_icd_term* in rax
43 cmp qword ptr [rax + (DISPATCH_OFFSET_ICD_TERM + (PTR_SIZE * \num))], 0 # Check if the next function in the chain is NULL
44 je terminError\num # Go to the error section if it is NULL
45 mov rdi, [rdi + PHYS_DEV_OFFSET_PHYS_DEV_TERM] # Load the unwrapped VkPhysicalDevice into the first arg
46 jmp [rax + (DISPATCH_OFFSET_ICD_TERM + (PTR_SIZE * \num))] # Jump to the next function in the chain
47terminError\num:
48 sub rsp, 56 # Create the stack frame
49 mov rdi, [rax + INSTANCE_OFFSET_ICD_TERM] # Load the loader_instance into rdi (first arg)
50 mov r8, [rdi + (HASH_OFFSET_INSTANCE + (HASH_SIZE * \num) + FUNC_NAME_OFFSET_HASH)] # Load the func name into r8 (fifth arg)
51 lea rcx, termin_error_string@GOTPCREL # Load the error string into rcx (fourth arg)
52 xor edx, edx # Set rdx to zero (third arg)
53 lea esi, [rdx + VK_DEBUG_REPORT_ERROR_BIT_EXT] # Write the error logging bit to rsi (second arg)
54 call loader_log # Log the error message before we crash
55 add rsp, 56 # Clean up the stack frame
56 mov rax, 0
57 jmp rax # Crash intentionally by jumping to address zero
Lenny Komowb8133f52017-06-09 15:21:06 -060058.endm
59
Lenny Komow35d2aa32017-06-29 15:26:20 -060060.macro DevExtTramp num
61.global vkdev_ext\num
62vkdev_ext\num:
63 mov rax, [rdi] # Dereference the handle to get the dispatch table
64 jmp [rax + (EXT_OFFSET_DEVICE_DISPATCH + (PTR_SIZE * \num))] # Jump to the appropriate call chain
65.endm
66
Lenny Komowb8133f52017-06-09 15:21:06 -060067.else
Lenny Komowb8133f52017-06-09 15:21:06 -060068
69.macro PhysDevExtTramp num
70.global vkPhysDevExtTramp\num
71vkPhysDevExtTramp\num:
Lenny Komow253747d2017-06-29 11:11:16 -060072 mov eax, [esp + 4] # Load the wrapped VkPhysicalDevice into eax
73 mov ecx, [eax + PHYS_DEV_OFFSET_PHYS_DEV_TRAMP] # Load the unwrapped VkPhysicalDevice into ecx
74 mov [esp + 4], ecx # Overwrite the wrapped VkPhysicalDevice with the unwrapped one (on the stack)
Lenny Komowb8133f52017-06-09 15:21:06 -060075 mov eax, [eax] # Dereference the wrapped VkPhysicalDevice to get the dispatch table in eax
Lenny Komow253747d2017-06-29 11:11:16 -060076 jmp [eax + (PHYS_DEV_OFFSET_INST_DISPATCH + (PTR_SIZE * \num))] # Dereference the wrapped VkPhysicalDevice to get the dispatch table in eax
77.endm
78
79.macro PhysDevExtTermin num
80.global vkPhysDevExtTermin\num
81vkPhysDevExtTermin\num:
82 mov ecx, [esp + 4] # Move the wrapped VkPhysicalDevice into ecx
83 mov eax, [ecx + ICD_TERM_OFFSET_PHYS_DEV_TERM] # Store the loader_icd_term* in eax
84 cmp dword ptr [eax + (DISPATCH_OFFSET_ICD_TERM + (PTR_SIZE * \num))], 0 # Check if the next function in the chain is NULL
85 je terminError\num # Go to the error section if it is NULL
86 mov ecx, [ecx + PHYS_DEV_OFFSET_PHYS_DEV_TERM] # Unwrap the VkPhysicalDevice in ecx
87 mov [esp + 4], ecx # Copy the unwrapped VkPhysicalDevice into the first arg
88 jmp [eax + (DISPATCH_OFFSET_ICD_TERM + (PTR_SIZE * \num))] # Jump to the next function in the chain
89terminError\num:
90 mov eax, [eax + INSTANCE_OFFSET_ICD_TERM] # Load the loader_instance into eax
91 push [eax + (HASH_OFFSET_INSTANCE + (HASH_SIZE * \num) + FUNC_NAME_OFFSET_HASH)] # Push the func name (fifth arg)
Lenny Komow5c5fde32017-10-06 11:13:15 -060092 push offset termin_error_string@GOT # Push the error string (fourth arg)
Lenny Komow253747d2017-06-29 11:11:16 -060093 push 0 # Push zero (third arg)
94 push VK_DEBUG_REPORT_ERROR_BIT_EXT # Push the error logging bit (second arg)
95 push eax # Push the loader_instance (first arg)
96 call loader_log # Log the error message before we crash
97 add esp, 20 # Clean up the args
98 mov eax, 0
99 jmp eax # Crash intentionally by jumping to address zero
Lenny Komowb8133f52017-06-09 15:21:06 -0600100.endm
101
Lenny Komow35d2aa32017-06-29 15:26:20 -0600102.macro DevExtTramp num
103.global vkdev_ext\num
104vkdev_ext\num:
105 mov eax, [esp + 4] # Dereference the handle to get the dispatch table
106 jmp [eax + (EXT_OFFSET_DEVICE_DISPATCH + (PTR_SIZE * \num))] # Jump to the appropriate call chain
107.endm
108
Lenny Komowb8133f52017-06-09 15:21:06 -0600109.endif
110
Lenny Komow32dffc02017-07-20 16:07:14 -0600111#if defined(__ELF__)
112.section .note.GNU-stack,"",%progbits
113#endif
114
Lenny Komow253747d2017-06-29 11:11:16 -0600115.data
116
117termin_error_string:
118.string "Extension %s not supported for this physical device"
119
Lenny Komowb8133f52017-06-09 15:21:06 -0600120.text
121
122 PhysDevExtTramp 0
123 PhysDevExtTramp 1
124 PhysDevExtTramp 2
125 PhysDevExtTramp 3
126 PhysDevExtTramp 4
127 PhysDevExtTramp 5
128 PhysDevExtTramp 6
129 PhysDevExtTramp 7
130 PhysDevExtTramp 8
131 PhysDevExtTramp 9
132 PhysDevExtTramp 10
133 PhysDevExtTramp 11
134 PhysDevExtTramp 12
135 PhysDevExtTramp 13
136 PhysDevExtTramp 14
137 PhysDevExtTramp 15
138 PhysDevExtTramp 16
139 PhysDevExtTramp 17
140 PhysDevExtTramp 18
141 PhysDevExtTramp 19
142 PhysDevExtTramp 20
143 PhysDevExtTramp 21
144 PhysDevExtTramp 22
145 PhysDevExtTramp 23
146 PhysDevExtTramp 24
147 PhysDevExtTramp 25
148 PhysDevExtTramp 26
149 PhysDevExtTramp 27
150 PhysDevExtTramp 28
151 PhysDevExtTramp 29
152 PhysDevExtTramp 30
153 PhysDevExtTramp 31
154 PhysDevExtTramp 32
155 PhysDevExtTramp 33
156 PhysDevExtTramp 34
157 PhysDevExtTramp 35
158 PhysDevExtTramp 36
159 PhysDevExtTramp 37
160 PhysDevExtTramp 38
161 PhysDevExtTramp 39
162 PhysDevExtTramp 40
163 PhysDevExtTramp 41
164 PhysDevExtTramp 42
165 PhysDevExtTramp 43
166 PhysDevExtTramp 44
167 PhysDevExtTramp 45
168 PhysDevExtTramp 46
169 PhysDevExtTramp 47
170 PhysDevExtTramp 48
171 PhysDevExtTramp 49
172 PhysDevExtTramp 50
173 PhysDevExtTramp 51
174 PhysDevExtTramp 52
175 PhysDevExtTramp 53
176 PhysDevExtTramp 54
177 PhysDevExtTramp 55
178 PhysDevExtTramp 56
179 PhysDevExtTramp 57
180 PhysDevExtTramp 58
181 PhysDevExtTramp 59
182 PhysDevExtTramp 60
183 PhysDevExtTramp 61
184 PhysDevExtTramp 62
185 PhysDevExtTramp 63
186 PhysDevExtTramp 64
187 PhysDevExtTramp 65
188 PhysDevExtTramp 66
189 PhysDevExtTramp 67
190 PhysDevExtTramp 68
191 PhysDevExtTramp 69
192 PhysDevExtTramp 70
193 PhysDevExtTramp 71
194 PhysDevExtTramp 72
195 PhysDevExtTramp 73
196 PhysDevExtTramp 74
197 PhysDevExtTramp 75
198 PhysDevExtTramp 76
199 PhysDevExtTramp 77
200 PhysDevExtTramp 78
201 PhysDevExtTramp 79
202 PhysDevExtTramp 80
203 PhysDevExtTramp 81
204 PhysDevExtTramp 82
205 PhysDevExtTramp 83
206 PhysDevExtTramp 84
207 PhysDevExtTramp 85
208 PhysDevExtTramp 86
209 PhysDevExtTramp 87
210 PhysDevExtTramp 88
211 PhysDevExtTramp 89
212 PhysDevExtTramp 90
213 PhysDevExtTramp 91
214 PhysDevExtTramp 92
215 PhysDevExtTramp 93
216 PhysDevExtTramp 94
217 PhysDevExtTramp 95
218 PhysDevExtTramp 96
219 PhysDevExtTramp 97
220 PhysDevExtTramp 98
221 PhysDevExtTramp 99
222 PhysDevExtTramp 100
223 PhysDevExtTramp 101
224 PhysDevExtTramp 102
225 PhysDevExtTramp 103
226 PhysDevExtTramp 104
227 PhysDevExtTramp 105
228 PhysDevExtTramp 106
229 PhysDevExtTramp 107
230 PhysDevExtTramp 108
231 PhysDevExtTramp 109
232 PhysDevExtTramp 110
233 PhysDevExtTramp 111
234 PhysDevExtTramp 112
235 PhysDevExtTramp 113
236 PhysDevExtTramp 114
237 PhysDevExtTramp 115
238 PhysDevExtTramp 116
239 PhysDevExtTramp 117
240 PhysDevExtTramp 118
241 PhysDevExtTramp 119
242 PhysDevExtTramp 120
243 PhysDevExtTramp 121
244 PhysDevExtTramp 122
245 PhysDevExtTramp 123
246 PhysDevExtTramp 124
247 PhysDevExtTramp 125
248 PhysDevExtTramp 126
249 PhysDevExtTramp 127
250 PhysDevExtTramp 128
251 PhysDevExtTramp 129
252 PhysDevExtTramp 130
253 PhysDevExtTramp 131
254 PhysDevExtTramp 132
255 PhysDevExtTramp 133
256 PhysDevExtTramp 134
257 PhysDevExtTramp 135
258 PhysDevExtTramp 136
259 PhysDevExtTramp 137
260 PhysDevExtTramp 138
261 PhysDevExtTramp 139
262 PhysDevExtTramp 140
263 PhysDevExtTramp 141
264 PhysDevExtTramp 142
265 PhysDevExtTramp 143
266 PhysDevExtTramp 144
267 PhysDevExtTramp 145
268 PhysDevExtTramp 146
269 PhysDevExtTramp 147
270 PhysDevExtTramp 148
271 PhysDevExtTramp 149
272 PhysDevExtTramp 150
273 PhysDevExtTramp 151
274 PhysDevExtTramp 152
275 PhysDevExtTramp 153
276 PhysDevExtTramp 154
277 PhysDevExtTramp 155
278 PhysDevExtTramp 156
279 PhysDevExtTramp 157
280 PhysDevExtTramp 158
281 PhysDevExtTramp 159
282 PhysDevExtTramp 160
283 PhysDevExtTramp 161
284 PhysDevExtTramp 162
285 PhysDevExtTramp 163
286 PhysDevExtTramp 164
287 PhysDevExtTramp 165
288 PhysDevExtTramp 166
289 PhysDevExtTramp 167
290 PhysDevExtTramp 168
291 PhysDevExtTramp 169
292 PhysDevExtTramp 170
293 PhysDevExtTramp 171
294 PhysDevExtTramp 172
295 PhysDevExtTramp 173
296 PhysDevExtTramp 174
297 PhysDevExtTramp 175
298 PhysDevExtTramp 176
299 PhysDevExtTramp 177
300 PhysDevExtTramp 178
301 PhysDevExtTramp 179
302 PhysDevExtTramp 180
303 PhysDevExtTramp 181
304 PhysDevExtTramp 182
305 PhysDevExtTramp 183
306 PhysDevExtTramp 184
307 PhysDevExtTramp 185
308 PhysDevExtTramp 186
309 PhysDevExtTramp 187
310 PhysDevExtTramp 188
311 PhysDevExtTramp 189
312 PhysDevExtTramp 190
313 PhysDevExtTramp 191
314 PhysDevExtTramp 192
315 PhysDevExtTramp 193
316 PhysDevExtTramp 194
317 PhysDevExtTramp 195
318 PhysDevExtTramp 196
319 PhysDevExtTramp 197
320 PhysDevExtTramp 198
321 PhysDevExtTramp 199
322 PhysDevExtTramp 200
323 PhysDevExtTramp 201
324 PhysDevExtTramp 202
325 PhysDevExtTramp 203
326 PhysDevExtTramp 204
327 PhysDevExtTramp 205
328 PhysDevExtTramp 206
329 PhysDevExtTramp 207
330 PhysDevExtTramp 208
331 PhysDevExtTramp 209
332 PhysDevExtTramp 210
333 PhysDevExtTramp 211
334 PhysDevExtTramp 212
335 PhysDevExtTramp 213
336 PhysDevExtTramp 214
337 PhysDevExtTramp 215
338 PhysDevExtTramp 216
339 PhysDevExtTramp 217
340 PhysDevExtTramp 218
341 PhysDevExtTramp 219
342 PhysDevExtTramp 220
343 PhysDevExtTramp 221
344 PhysDevExtTramp 222
345 PhysDevExtTramp 223
346 PhysDevExtTramp 224
347 PhysDevExtTramp 225
348 PhysDevExtTramp 226
349 PhysDevExtTramp 227
350 PhysDevExtTramp 228
351 PhysDevExtTramp 229
352 PhysDevExtTramp 230
353 PhysDevExtTramp 231
354 PhysDevExtTramp 232
355 PhysDevExtTramp 233
356 PhysDevExtTramp 234
357 PhysDevExtTramp 235
358 PhysDevExtTramp 236
359 PhysDevExtTramp 237
360 PhysDevExtTramp 238
361 PhysDevExtTramp 239
362 PhysDevExtTramp 240
363 PhysDevExtTramp 241
364 PhysDevExtTramp 242
365 PhysDevExtTramp 243
366 PhysDevExtTramp 244
367 PhysDevExtTramp 245
368 PhysDevExtTramp 246
369 PhysDevExtTramp 247
370 PhysDevExtTramp 248
371 PhysDevExtTramp 249
Lenny Komow253747d2017-06-29 11:11:16 -0600372
373 PhysDevExtTermin 0
374 PhysDevExtTermin 1
375 PhysDevExtTermin 2
376 PhysDevExtTermin 3
377 PhysDevExtTermin 4
378 PhysDevExtTermin 5
379 PhysDevExtTermin 6
380 PhysDevExtTermin 7
381 PhysDevExtTermin 8
382 PhysDevExtTermin 9
383 PhysDevExtTermin 10
384 PhysDevExtTermin 11
385 PhysDevExtTermin 12
386 PhysDevExtTermin 13
387 PhysDevExtTermin 14
388 PhysDevExtTermin 15
389 PhysDevExtTermin 16
390 PhysDevExtTermin 17
391 PhysDevExtTermin 18
392 PhysDevExtTermin 19
393 PhysDevExtTermin 20
394 PhysDevExtTermin 21
395 PhysDevExtTermin 22
396 PhysDevExtTermin 23
397 PhysDevExtTermin 24
398 PhysDevExtTermin 25
399 PhysDevExtTermin 26
400 PhysDevExtTermin 27
401 PhysDevExtTermin 28
402 PhysDevExtTermin 29
403 PhysDevExtTermin 30
404 PhysDevExtTermin 31
405 PhysDevExtTermin 32
406 PhysDevExtTermin 33
407 PhysDevExtTermin 34
408 PhysDevExtTermin 35
409 PhysDevExtTermin 36
410 PhysDevExtTermin 37
411 PhysDevExtTermin 38
412 PhysDevExtTermin 39
413 PhysDevExtTermin 40
414 PhysDevExtTermin 41
415 PhysDevExtTermin 42
416 PhysDevExtTermin 43
417 PhysDevExtTermin 44
418 PhysDevExtTermin 45
419 PhysDevExtTermin 46
420 PhysDevExtTermin 47
421 PhysDevExtTermin 48
422 PhysDevExtTermin 49
423 PhysDevExtTermin 50
424 PhysDevExtTermin 51
425 PhysDevExtTermin 52
426 PhysDevExtTermin 53
427 PhysDevExtTermin 54
428 PhysDevExtTermin 55
429 PhysDevExtTermin 56
430 PhysDevExtTermin 57
431 PhysDevExtTermin 58
432 PhysDevExtTermin 59
433 PhysDevExtTermin 60
434 PhysDevExtTermin 61
435 PhysDevExtTermin 62
436 PhysDevExtTermin 63
437 PhysDevExtTermin 64
438 PhysDevExtTermin 65
439 PhysDevExtTermin 66
440 PhysDevExtTermin 67
441 PhysDevExtTermin 68
442 PhysDevExtTermin 69
443 PhysDevExtTermin 70
444 PhysDevExtTermin 71
445 PhysDevExtTermin 72
446 PhysDevExtTermin 73
447 PhysDevExtTermin 74
448 PhysDevExtTermin 75
449 PhysDevExtTermin 76
450 PhysDevExtTermin 77
451 PhysDevExtTermin 78
452 PhysDevExtTermin 79
453 PhysDevExtTermin 80
454 PhysDevExtTermin 81
455 PhysDevExtTermin 82
456 PhysDevExtTermin 83
457 PhysDevExtTermin 84
458 PhysDevExtTermin 85
459 PhysDevExtTermin 86
460 PhysDevExtTermin 87
461 PhysDevExtTermin 88
462 PhysDevExtTermin 89
463 PhysDevExtTermin 90
464 PhysDevExtTermin 91
465 PhysDevExtTermin 92
466 PhysDevExtTermin 93
467 PhysDevExtTermin 94
468 PhysDevExtTermin 95
469 PhysDevExtTermin 96
470 PhysDevExtTermin 97
471 PhysDevExtTermin 98
472 PhysDevExtTermin 99
473 PhysDevExtTermin 100
474 PhysDevExtTermin 101
475 PhysDevExtTermin 102
476 PhysDevExtTermin 103
477 PhysDevExtTermin 104
478 PhysDevExtTermin 105
479 PhysDevExtTermin 106
480 PhysDevExtTermin 107
481 PhysDevExtTermin 108
482 PhysDevExtTermin 109
483 PhysDevExtTermin 110
484 PhysDevExtTermin 111
485 PhysDevExtTermin 112
486 PhysDevExtTermin 113
487 PhysDevExtTermin 114
488 PhysDevExtTermin 115
489 PhysDevExtTermin 116
490 PhysDevExtTermin 117
491 PhysDevExtTermin 118
492 PhysDevExtTermin 119
493 PhysDevExtTermin 120
494 PhysDevExtTermin 121
495 PhysDevExtTermin 122
496 PhysDevExtTermin 123
497 PhysDevExtTermin 124
498 PhysDevExtTermin 125
499 PhysDevExtTermin 126
500 PhysDevExtTermin 127
501 PhysDevExtTermin 128
502 PhysDevExtTermin 129
503 PhysDevExtTermin 130
504 PhysDevExtTermin 131
505 PhysDevExtTermin 132
506 PhysDevExtTermin 133
507 PhysDevExtTermin 134
508 PhysDevExtTermin 135
509 PhysDevExtTermin 136
510 PhysDevExtTermin 137
511 PhysDevExtTermin 138
512 PhysDevExtTermin 139
513 PhysDevExtTermin 140
514 PhysDevExtTermin 141
515 PhysDevExtTermin 142
516 PhysDevExtTermin 143
517 PhysDevExtTermin 144
518 PhysDevExtTermin 145
519 PhysDevExtTermin 146
520 PhysDevExtTermin 147
521 PhysDevExtTermin 148
522 PhysDevExtTermin 149
523 PhysDevExtTermin 150
524 PhysDevExtTermin 151
525 PhysDevExtTermin 152
526 PhysDevExtTermin 153
527 PhysDevExtTermin 154
528 PhysDevExtTermin 155
529 PhysDevExtTermin 156
530 PhysDevExtTermin 157
531 PhysDevExtTermin 158
532 PhysDevExtTermin 159
533 PhysDevExtTermin 160
534 PhysDevExtTermin 161
535 PhysDevExtTermin 162
536 PhysDevExtTermin 163
537 PhysDevExtTermin 164
538 PhysDevExtTermin 165
539 PhysDevExtTermin 166
540 PhysDevExtTermin 167
541 PhysDevExtTermin 168
542 PhysDevExtTermin 169
543 PhysDevExtTermin 170
544 PhysDevExtTermin 171
545 PhysDevExtTermin 172
546 PhysDevExtTermin 173
547 PhysDevExtTermin 174
548 PhysDevExtTermin 175
549 PhysDevExtTermin 176
550 PhysDevExtTermin 177
551 PhysDevExtTermin 178
552 PhysDevExtTermin 179
553 PhysDevExtTermin 180
554 PhysDevExtTermin 181
555 PhysDevExtTermin 182
556 PhysDevExtTermin 183
557 PhysDevExtTermin 184
558 PhysDevExtTermin 185
559 PhysDevExtTermin 186
560 PhysDevExtTermin 187
561 PhysDevExtTermin 188
562 PhysDevExtTermin 189
563 PhysDevExtTermin 190
564 PhysDevExtTermin 191
565 PhysDevExtTermin 192
566 PhysDevExtTermin 193
567 PhysDevExtTermin 194
568 PhysDevExtTermin 195
569 PhysDevExtTermin 196
570 PhysDevExtTermin 197
571 PhysDevExtTermin 198
572 PhysDevExtTermin 199
573 PhysDevExtTermin 200
574 PhysDevExtTermin 201
575 PhysDevExtTermin 202
576 PhysDevExtTermin 203
577 PhysDevExtTermin 204
578 PhysDevExtTermin 205
579 PhysDevExtTermin 206
580 PhysDevExtTermin 207
581 PhysDevExtTermin 208
582 PhysDevExtTermin 209
583 PhysDevExtTermin 210
584 PhysDevExtTermin 211
585 PhysDevExtTermin 212
586 PhysDevExtTermin 213
587 PhysDevExtTermin 214
588 PhysDevExtTermin 215
589 PhysDevExtTermin 216
590 PhysDevExtTermin 217
591 PhysDevExtTermin 218
592 PhysDevExtTermin 219
593 PhysDevExtTermin 220
594 PhysDevExtTermin 221
595 PhysDevExtTermin 222
596 PhysDevExtTermin 223
597 PhysDevExtTermin 224
598 PhysDevExtTermin 225
599 PhysDevExtTermin 226
600 PhysDevExtTermin 227
601 PhysDevExtTermin 228
602 PhysDevExtTermin 229
603 PhysDevExtTermin 230
604 PhysDevExtTermin 231
605 PhysDevExtTermin 232
606 PhysDevExtTermin 233
607 PhysDevExtTermin 234
608 PhysDevExtTermin 235
609 PhysDevExtTermin 236
610 PhysDevExtTermin 237
611 PhysDevExtTermin 238
612 PhysDevExtTermin 239
613 PhysDevExtTermin 240
614 PhysDevExtTermin 241
615 PhysDevExtTermin 242
616 PhysDevExtTermin 243
617 PhysDevExtTermin 244
618 PhysDevExtTermin 245
619 PhysDevExtTermin 246
620 PhysDevExtTermin 247
621 PhysDevExtTermin 248
622 PhysDevExtTermin 249
Lenny Komow35d2aa32017-06-29 15:26:20 -0600623
624 DevExtTramp 0
625 DevExtTramp 1
626 DevExtTramp 2
627 DevExtTramp 3
628 DevExtTramp 4
629 DevExtTramp 5
630 DevExtTramp 6
631 DevExtTramp 7
632 DevExtTramp 8
633 DevExtTramp 9
634 DevExtTramp 10
635 DevExtTramp 11
636 DevExtTramp 12
637 DevExtTramp 13
638 DevExtTramp 14
639 DevExtTramp 15
640 DevExtTramp 16
641 DevExtTramp 17
642 DevExtTramp 18
643 DevExtTramp 19
644 DevExtTramp 20
645 DevExtTramp 21
646 DevExtTramp 22
647 DevExtTramp 23
648 DevExtTramp 24
649 DevExtTramp 25
650 DevExtTramp 26
651 DevExtTramp 27
652 DevExtTramp 28
653 DevExtTramp 29
654 DevExtTramp 30
655 DevExtTramp 31
656 DevExtTramp 32
657 DevExtTramp 33
658 DevExtTramp 34
659 DevExtTramp 35
660 DevExtTramp 36
661 DevExtTramp 37
662 DevExtTramp 38
663 DevExtTramp 39
664 DevExtTramp 40
665 DevExtTramp 41
666 DevExtTramp 42
667 DevExtTramp 43
668 DevExtTramp 44
669 DevExtTramp 45
670 DevExtTramp 46
671 DevExtTramp 47
672 DevExtTramp 48
673 DevExtTramp 49
674 DevExtTramp 50
675 DevExtTramp 51
676 DevExtTramp 52
677 DevExtTramp 53
678 DevExtTramp 54
679 DevExtTramp 55
680 DevExtTramp 56
681 DevExtTramp 57
682 DevExtTramp 58
683 DevExtTramp 59
684 DevExtTramp 60
685 DevExtTramp 61
686 DevExtTramp 62
687 DevExtTramp 63
688 DevExtTramp 64
689 DevExtTramp 65
690 DevExtTramp 66
691 DevExtTramp 67
692 DevExtTramp 68
693 DevExtTramp 69
694 DevExtTramp 70
695 DevExtTramp 71
696 DevExtTramp 72
697 DevExtTramp 73
698 DevExtTramp 74
699 DevExtTramp 75
700 DevExtTramp 76
701 DevExtTramp 77
702 DevExtTramp 78
703 DevExtTramp 79
704 DevExtTramp 80
705 DevExtTramp 81
706 DevExtTramp 82
707 DevExtTramp 83
708 DevExtTramp 84
709 DevExtTramp 85
710 DevExtTramp 86
711 DevExtTramp 87
712 DevExtTramp 88
713 DevExtTramp 89
714 DevExtTramp 90
715 DevExtTramp 91
716 DevExtTramp 92
717 DevExtTramp 93
718 DevExtTramp 94
719 DevExtTramp 95
720 DevExtTramp 96
721 DevExtTramp 97
722 DevExtTramp 98
723 DevExtTramp 99
724 DevExtTramp 100
725 DevExtTramp 101
726 DevExtTramp 102
727 DevExtTramp 103
728 DevExtTramp 104
729 DevExtTramp 105
730 DevExtTramp 106
731 DevExtTramp 107
732 DevExtTramp 108
733 DevExtTramp 109
734 DevExtTramp 110
735 DevExtTramp 111
736 DevExtTramp 112
737 DevExtTramp 113
738 DevExtTramp 114
739 DevExtTramp 115
740 DevExtTramp 116
741 DevExtTramp 117
742 DevExtTramp 118
743 DevExtTramp 119
744 DevExtTramp 120
745 DevExtTramp 121
746 DevExtTramp 122
747 DevExtTramp 123
748 DevExtTramp 124
749 DevExtTramp 125
750 DevExtTramp 126
751 DevExtTramp 127
752 DevExtTramp 128
753 DevExtTramp 129
754 DevExtTramp 130
755 DevExtTramp 131
756 DevExtTramp 132
757 DevExtTramp 133
758 DevExtTramp 134
759 DevExtTramp 135
760 DevExtTramp 136
761 DevExtTramp 137
762 DevExtTramp 138
763 DevExtTramp 139
764 DevExtTramp 140
765 DevExtTramp 141
766 DevExtTramp 142
767 DevExtTramp 143
768 DevExtTramp 144
769 DevExtTramp 145
770 DevExtTramp 146
771 DevExtTramp 147
772 DevExtTramp 148
773 DevExtTramp 149
774 DevExtTramp 150
775 DevExtTramp 151
776 DevExtTramp 152
777 DevExtTramp 153
778 DevExtTramp 154
779 DevExtTramp 155
780 DevExtTramp 156
781 DevExtTramp 157
782 DevExtTramp 158
783 DevExtTramp 159
784 DevExtTramp 160
785 DevExtTramp 161
786 DevExtTramp 162
787 DevExtTramp 163
788 DevExtTramp 164
789 DevExtTramp 165
790 DevExtTramp 166
791 DevExtTramp 167
792 DevExtTramp 168
793 DevExtTramp 169
794 DevExtTramp 170
795 DevExtTramp 171
796 DevExtTramp 172
797 DevExtTramp 173
798 DevExtTramp 174
799 DevExtTramp 175
800 DevExtTramp 176
801 DevExtTramp 177
802 DevExtTramp 178
803 DevExtTramp 179
804 DevExtTramp 180
805 DevExtTramp 181
806 DevExtTramp 182
807 DevExtTramp 183
808 DevExtTramp 184
809 DevExtTramp 185
810 DevExtTramp 186
811 DevExtTramp 187
812 DevExtTramp 188
813 DevExtTramp 189
814 DevExtTramp 190
815 DevExtTramp 191
816 DevExtTramp 192
817 DevExtTramp 193
818 DevExtTramp 194
819 DevExtTramp 195
820 DevExtTramp 196
821 DevExtTramp 197
822 DevExtTramp 198
823 DevExtTramp 199
824 DevExtTramp 200
825 DevExtTramp 201
826 DevExtTramp 202
827 DevExtTramp 203
828 DevExtTramp 204
829 DevExtTramp 205
830 DevExtTramp 206
831 DevExtTramp 207
832 DevExtTramp 208
833 DevExtTramp 209
834 DevExtTramp 210
835 DevExtTramp 211
836 DevExtTramp 212
837 DevExtTramp 213
838 DevExtTramp 214
839 DevExtTramp 215
840 DevExtTramp 216
841 DevExtTramp 217
842 DevExtTramp 218
843 DevExtTramp 219
844 DevExtTramp 220
845 DevExtTramp 221
846 DevExtTramp 222
847 DevExtTramp 223
848 DevExtTramp 224
849 DevExtTramp 225
850 DevExtTramp 226
851 DevExtTramp 227
852 DevExtTramp 228
853 DevExtTramp 229
854 DevExtTramp 230
855 DevExtTramp 231
856 DevExtTramp 232
857 DevExtTramp 233
858 DevExtTramp 234
859 DevExtTramp 235
860 DevExtTramp 236
861 DevExtTramp 237
862 DevExtTramp 238
863 DevExtTramp 239
864 DevExtTramp 240
865 DevExtTramp 241
866 DevExtTramp 242
867 DevExtTramp 243
868 DevExtTramp 244
869 DevExtTramp 245
870 DevExtTramp 246
871 DevExtTramp 247
872 DevExtTramp 248
873 DevExtTramp 249