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