Subversion Repositories Kolibri OS

Rev

Rev 412 | Rev 431 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
425 victor 1
$Revision: 425 $
164 serge 2
 
3
 
4
drw0    equ  10010010b      ; data read/write dpl0
5
drw3    equ  11110010b      ; data read/write dpl3
6
cpl0    equ  10011010b      ; code read dpl0
7
cpl3    equ  11111010b      ; code read dpl3
8
 
9
D32     equ  01000000b      ; 32bit segment
10
G32    equ   10000000b      ; page gran
11
 
12
 
13
;;;;;;;;;;;;cpu_caps flags;;;;;;;;;;;;;;;;
14
 
15
CPU_386        equ 3
16
CPU_486        equ 4
17
CPU_PENTIUM    equ 5
18
CPU_P6         equ 6
19
CPU_PENTIUM4   equ 0x0F
20
 
21
CAPS_FPU       equ    00 ;on-chip x87 floating point unit
22
CAPS_VME       equ    01 ;virtual-mode enhancements
23
CAPS_DE        equ    02 ;debugging extensions
24
CAPS_PSE       equ    03 ;page-size extensions
25
CAPS_TSC       equ    04 ;time stamp counter
26
CAPS_MSR       equ    05 ;model-specific registers
27
CAPS_PAE       equ    06 ;physical-address extensions
28
CAPS_MCE       equ    07 ;machine check exception
29
CAPS_CX8       equ    08 ;CMPXCHG8B instruction
30
CAPS_APIC      equ    09 ;on-chip advanced programmable
31
                         ; interrupt controller
32
;                     10 ;unused
33
CAPS_SEP       equ    11 ;SYSENTER and SYSEXIT instructions
34
CAPS_MTRR      equ    12 ;memory-type range registers
35
CAPS_PGE       equ    13 ;page global extension
36
CAPS_MCA       equ    14 ;machine check architecture
37
CAPS_CMOV      equ    15 ;conditional move instructions
38
CAPS_PAT       equ    16 ;page attribute table
39
 
40
CAPS_PSE36     equ    17 ;page-size extensions
41
CAPS_PSN       equ    18 ;processor serial number
42
CAPS_CLFLUSH   equ    19 ;CLFUSH instruction
43
 
44
CAPS_DS        equ    21 ;debug store
45
CAPS_ACPI      equ    22 ;thermal monitor and software
46
                         ;controlled clock supported
47
CAPS_MMX       equ    23 ;MMX instructions
48
CAPS_FXSR      equ    24 ;FXSAVE and FXRSTOR instructions
49
CAPS_SSE       equ    25 ;SSE instructions
50
CAPS_SSE2      equ    26 ;SSE2 instructions
51
CAPS_SS        equ    27 ;self-snoop
52
CAPS_HTT       equ    28 ;hyper-threading technology
53
CAPS_TM        equ    29 ;thermal monitor supported
54
CAPS_IA64      equ    30 ;IA64 capabilities
55
CAPS_PBE       equ    31 ;pending break enable
56
 
57
;ecx
58
CAPS_SSE3      equ    32 ;SSE3 instructions
59
;                     33
60
;                     34
61
CAPS_MONITOR   equ    35 ;MONITOR/MWAIT instructions
62
CAPS_DS_CPL    equ    36 ;
63
CAPS_VMX       equ    37 ;virtual mode extensions
64
;                     38 ;
65
CAPS_EST       equ    39 ;enhansed speed step
66
CAPS_TM2       equ    40 ;thermal monitor2 supported
67
;                     41
68
CAPS_CID       equ    42 ;
69
;                     43
70
;                     44
71
CAPS_CX16      equ    45 ;CMPXCHG16B instruction
72
CAPS_xTPR      equ    46 ;
73
;
74
;reserved
75
;
76
;ext edx /ecx
77
CAPS_SYSCAL    equ    64 ;
78
CAPS_XD        equ    65 ;execution disable
79
CAPS_FFXSR     equ    66 ;
80
CAPS_RDTSCP    equ    67 ;
81
CAPS_X64       equ    68 ;
82
CAPS_3DNOW     equ    69 ;
83
CAPS_3DNOWEXT  equ    70 ;
84
CAPS_LAHF      equ    71 ;
85
CAPS_CMP_LEG   equ    72 ;
86
CAPS_SVM       equ    73 ;secure virual machine
87
CAPS_ALTMOVCR8 equ    74 ;
88
 
378 serge 89
; CPU MSR names
375 Ghost 90
MSR_SYSENTER_CS		equ	0x174
91
MSR_SYSENTER_ESP	equ	0x175
92
MSR_SYSENTER_EIP	equ	0x176
93
MSR_AMD_EFER		equ	0xC0000080	; Extended Feature Enable Register
94
MSR_AMD_STAR		equ	0xC0000081	; SYSCALL/SYSRET Target Address Register
164 serge 95
 
168 serge 96
CR0_PE         equ    0x00000001   ;protected mode
97
CR0_MP         equ    0x00000002   ;monitor fpu
98
CR0_EM         equ    0x00000004   ;fpu emulation
99
CR0_TS         equ    0x00000008   ;task switch
100
CR0_ET         equ    0x00000010   ;extension type hardcoded to 1
101
CR0_NE         equ    0x00000020   ;numeric error
102
CR0_WP         equ    0x00010000   ;write protect
103
CR0_AM         equ    0x00040000   ;alignment check
104
CR0_NW         equ    0x20000000   ;not write-through
105
CR0_CD         equ    0x40000000   ;cache disable
106
CR0_PG         equ    0x80000000   ;paging
107
 
108
 
164 serge 109
CR4_VME        equ    0x0001
110
CR4_PVI        equ    0x0002
111
CR4_TSD        equ    0x0004
112
CR4_DE         equ    0x0008
113
CR4_PSE        equ    0x0010
114
CR4_PAE        equ    0x0020
115
CR4_MCE        equ    0x0040
116
CR4_PGE        equ    0x0080
117
CR4_PCE        equ    0x0100
118
CR4_OSFXSR     equ    0x0200
119
CR4_OSXMMEXPT  equ    0x0400
120
 
168 serge 121
SSE_IE         equ    0x0001
122
SSE_DE         equ    0x0002
123
SSE_ZE         equ    0x0004
124
SSE_OE         equ    0x0008
125
SSE_UE         equ    0x0010
126
SSE_PE         equ    0x0020
127
SSE_DAZ        equ    0x0040
128
SSE_IM         equ    0x0080
129
SSE_DM         equ    0x0100
130
SSE_ZM         equ    0x0200
131
SSE_OM         equ    0x0400
132
SSE_UM         equ    0x0800
133
SSE_PM         equ    0x1000
134
SSE_FZ         equ    0x8000
164 serge 135
 
168 serge 136
SSE_INIT equ (SSE_IM+SSE_DM+SSE_ZM+SSE_OM+SSE_UM+SSE_PM)
164 serge 137
 
380 serge 138
OS_BASE             equ 0
164 serge 139
 
380 serge 140
window_data         equ (OS_BASE+0x0000000)
164 serge 141
 
380 serge 142
CURRENT_TASK        equ (OS_BASE+0x0003000)
143
TASK_COUNT          equ (OS_BASE+0x0003004)
144
TASK_BASE           equ (OS_BASE+0x0003010)
145
TASK_DATA           equ (OS_BASE+0x0003020)
146
TASK_EVENT          equ (OS_BASE+0x0003020)
164 serge 147
 
380 serge 148
mouseunder          equ (OS_BASE+0x0006900)
149
FLOPPY_BUFF         equ (OS_BASE+0x0008000)
381 serge 150
ACTIVE_PROC_STACK   equ (OS_BASE+0x000A400) ;unused
380 serge 151
idts                equ (OS_BASE+0x000B100)
152
WIN_STACK           equ (OS_BASE+0x000C000)
153
WIN_POS             equ (OS_BASE+0x000C400)
154
FDD_BUFF            equ (OS_BASE+0x000D000)
164 serge 155
 
381 serge 156
;unused ? only one reference
380 serge 157
ENABLE_TASKSWITCH   equ (OS_BASE+0x000E000)
381 serge 158
 
380 serge 159
PUTPIXEL            equ (OS_BASE+0x000E020)
160
GETPIXEL            equ (OS_BASE+0x000E024)
381 serge 161
 
162
;unused ? only one reference
380 serge 163
BANK_SWITCH         equ (OS_BASE+0x000E030)
164 serge 164
 
381 serge 165
;unused ? store mousepointer
380 serge 166
MOUSE_PICTURE       equ (OS_BASE+0x000F200)
381 serge 167
 
380 serge 168
MOUSE_VISIBLE       equ (OS_BASE+0x000F204)
381 serge 169
WIN_TEMP_XY         equ (OS_BASE+0x000F300)
380 serge 170
KEY_COUNT           equ (OS_BASE+0x000F400)
171
KEY_BUFF            equ (OS_BASE+0x000F401)
164 serge 172
 
380 serge 173
BTN_COUNT           equ (OS_BASE+0x000F500)
174
BTN_BUFF            equ (OS_BASE+0x000F501)
164 serge 175
 
380 serge 176
CPU_FREQ            equ (OS_BASE+0x000F600)
381 serge 177
 
178
;unused ? no active references
380 serge 179
MOUSE_PORT          equ (OS_BASE+0x000F604)
164 serge 180
 
381 serge 181
;unused
380 serge 182
PS2_CHUNK           equ (OS_BASE+0x000FB00)
381 serge 183
 
380 serge 184
MOUSE_X             equ (OS_BASE+0x000FB0A)
185
MOUSE_Y             equ (OS_BASE+0x000FB0C)
164 serge 186
 
380 serge 187
MOUSE_COLOR_MEM     equ (OS_BASE+0x000FB10)
188
COLOR_TEMP          equ (OS_BASE+0x000FB30)
189
BTN_DOWN            equ (OS_BASE+0x000FB40)
190
MOUSE_DOWN          equ (OS_BASE+0x000FB44)
191
X_UNDER             equ (OS_BASE+0x000FB4A)
192
Y_UNDER             equ (OS_BASE+0x000FB4C)
193
ScreenBPP           equ (OS_BASE+0x000FBF1)
381 serge 194
 
195
;unused ? only one reference
380 serge 196
MOUSE_BUFF_COUNT    equ (OS_BASE+0x000FCFF)
381 serge 197
 
380 serge 198
LFBAddress          equ (OS_BASE+0x000FE80)
199
MEM_AMOUNT          equ (OS_BASE+0x000FE8C)
200
;LFBSize             equ (OS_BASE+0x02f9050)
164 serge 201
 
381 serge 202
ScreenWidth         equ (OS_BASE+0x000FE00)
203
ScreenHeight        equ (OS_BASE+0x000FE04)
204
BytesPerScanLine    equ (OS_BASE+0x000FE08)
380 serge 205
SCR_MODE            equ (OS_BASE+0x000FE0C)
164 serge 206
 
380 serge 207
BTN_ADDR            equ (OS_BASE+0x000FE88)
208
SYS_SHUTDOWN        equ (OS_BASE+0x000FF00)
209
TASK_ACTIVATE       equ (OS_BASE+0x000FF01)
164 serge 210
 
380 serge 211
REDRAW_BACKGROUND   equ (OS_BASE+0x000FFF0)
212
BANK_RW             equ (OS_BASE+0x000FFF2)
213
MOUSE_BACKGROUND    equ (OS_BASE+0x000FFF4)
214
DONT_DRAW_MOUSE     equ (OS_BASE+0x000FFF5)
215
DONT_SWITCH         equ (OS_BASE+0x000FFFF)
164 serge 216
 
381 serge 217
TMP_STACK_TOP       equ 0x003EC00
164 serge 218
 
380 serge 219
FONT_II             equ (OS_BASE+0x003EC00)
220
FONT_I              equ (OS_BASE+0x003F600)
381 serge 221
DRIVE_DATA          equ (OS_BASE+0x0040000)
380 serge 222
SLOT_BASE           equ (OS_BASE+0x0080000)
381 serge 223
 
224
;unused
380 serge 225
TMP_BUFF            equ (OS_BASE+0x0090000)
164 serge 226
 
380 serge 227
VGABasePtr          equ (OS_BASE+0x00A0000)
164 serge 228
 
380 serge 229
RAMDISK             equ (OS_BASE+0x0100000)
230
RAMDISK_FAT         equ (OS_BASE+0x0280000)
231
FLOPPY_FAT          equ (OS_BASE+0x0282000)
381 serge 232
 
233
; unused?
380 serge 234
SB16_Status         equ (OS_BASE+0x02B0000)
381 serge 235
 
380 serge 236
BUTTON_INFO         equ (OS_BASE+0x02C0000)
237
RESERVED_PORTS      equ (OS_BASE+0x02D0000)
238
IRQ_SAVE            equ (OS_BASE+0x02E0000)
412 serge 239
BOOT_VAR            equ (OS_BASE+0x02f0000)
380 serge 240
IMG_BACKGROUND      equ (OS_BASE+0x0300000)
241
WinMapAddress       equ (OS_BASE+0x0460000)
242
display_data        equ (OS_BASE+0x0460000)
381 serge 243
 
244
;unused ?
380 serge 245
HD_CACHE            equ (OS_BASE+0x0600000)
381 serge 246
 
380 serge 247
stack_data_start    equ (OS_BASE+0x0700000)
248
eth_data_start      equ (OS_BASE+0x0700000)
249
stack_data          equ (OS_BASE+0x0704000)
250
stack_data_end      equ (OS_BASE+0x071ffff)
251
VMODE_BASE          equ (OS_BASE+0x0760000)
252
resendQ             equ (OS_BASE+0x0770000)
164 serge 253
 
381 serge 254
skin_data           equ (OS_BASE+0x0778000)
164 serge 255
 
378 serge 256
 
380 serge 257
tss_data            equ (OS_BASE+0x780000)
258
draw_data           equ (OS_BASE+0x988000)
164 serge 259
 
380 serge 260
HEAP_BASE           equ (OS_BASE+0x98B000)
164 serge 261
 
378 serge 262
LFB_BASE            equ 0x7DC00000
164 serge 263
 
378 serge 264
page_tabs           equ 0x7FC00000
265
master_tab          equ 0x7FDFF000
266
app_page_tabs       equ 0x7FE00000
164 serge 267
 
378 serge 268
sys_pgdir           equ OS_BASE+0x00050000
269
sys_master_tab      equ OS_BASE+0x00051000
270
sys_pgmap           equ OS_BASE+0x00052000
164 serge 271
 
272
 
273
 
378 serge 274
new_app_base        equ 0x80000000
275
 
188 serge 276
twdw                equ (CURRENT_TASK-window_data)
164 serge 277
 
278
std_application_base_address   equ new_app_base
392 serge 279
RING0_STACK_SIZE    equ (0x2000-512)    ;512 байт для контекста FPU
164 serge 280
 
378 serge 281
;PAGES_USED          equ 4
375 Ghost 282
 
188 serge 283
PG_UNMAP            equ 0x000
284
PG_MAP              equ 0x001
285
PG_WRITE            equ 0x002
286
PG_SW               equ 0x003
287
PG_USER             equ 0x005
288
PG_UW               equ 0x007
289
PG_NOCACHE          equ 0x018
290
PG_LARGE            equ 0x080
291
PG_GLOBAL           equ 0x100
164 serge 292
 
293
;;;;;;;;;;;boot time variables
294
 
295
;BOOT_BPP            equ 0x9000    ;byte   bits per pixel
296
BOOT_SCANLINE       equ 0x9001    ;word   scanline length
297
BOOT_VESA_MODE      equ 0x9008    ;word   vesa video mode
298
;;BOOT_X_RES          equ 0x900A    ;word   X res
299
;;BOOT_Y_RES          equ 0x900C    ;word   Y res
300
;;BOOT_MOUSE_PORT     equ 0x9010    ;byte   mouse port  - not used
301
BOOT_BANK_SW        equ 0x9014    ;dword  Vesa 1.2 pm bank switch
302
BOOT_LFB            equ 0x9018    ;dword  Vesa 2.0 LFB address
303
BOOT_MTRR           equ 0x901C    ;byte   0 or 1 : enable MTRR graphics acceleration
304
BOOT_LOG            equ 0x901D    ;byte   not used anymore (0 or 1 : enable system log display)
305
BOOT_DIRECT_LFB     equ 0x901E    ;byte   0 or 1 : enable direct lfb write, paging disabled
306
BOOT_PCI_DATA       equ 0x9020    ;8bytes pci data
307
BOOT_VRR            equ 0x9030    ;byte   VRR start enabled 1, 2-no
308
BOOT_IDE_BASE_ADDR  equ 0x9031   ;word   IDEContrRegsBaseAddr
309
BOOT_MEM_AMOUNT     equ 0x9034    ;dword  memory amount
310
 
311
TMP_FILE_NAME       equ     0
312
TMP_CMD_LINE        equ  1024
313
TMP_ICON_OFFS       equ  1280
314
 
315
 
316
EVENT_REDRAW       equ 0x00000001
317
EVENT_KEY          equ 0x00000002
318
EVENT_BUTTON       equ 0x00000004
319
EVENT_BACKGROUND   equ 0x00000010
320
EVENT_MOUSE        equ 0x00000020
321
EVENT_IPC          equ 0x00000040
322
EVENT_NETWORK      equ 0x00000080
323
EVENT_DEBUG        equ 0x00000100
227 serge 324
EVENT_EXTENDED     equ 0x00000200
164 serge 325
 
326
EV_INTR            equ 1
327
 
328
struc SYS_VARS
329
{ .bpp            dd ?
330
  .scanline       dd ?
331
  .vesa_mode      dd ?
332
  .x_res          dd ?
333
  .y_res          dd ?
334
  .cpu_caps       dd ?
335
                  dd ?
336
                  dd ?
337
                  dd ?
338
}
339
 
281 serge 340
struc APPOBJ           ;common object header
341
{
342
   .magic       dd ?   ;
343
   .destroy     dd ?   ;internal destructor
344
   .fd          dd ?   ;next object in list
345
   .bk          dd ?   ;prev object in list
346
   .pid         dd ?   ;owner id
347
};
348
 
349
virtual at 0
350
  APPOBJ APPOBJ
351
end virtual
352
 
353
APP_OBJ_OFFSET  equ 48
354 serge 354
APP_EV_OFFSET   equ 40
281 serge 355
 
221 serge 356
struc CURSOR
281 serge 357
{;common object header
358
   .magic       dd ?   ;'CURS'
359
   .destroy     dd ?   ;internal destructor
360
   .fd          dd ?   ;next object in list
361
   .bk          dd ?   ;prev object in list
362
   .pid         dd ?   ;owner id
363
 
364
 ;cursor data
365
   .base        dd ?   ;allocated memory
366
   .hot_x       dd ?   ;hotspot coords
221 serge 367
   .hot_y       dd ?
368
}
369
virtual at 0
370
  CURSOR CURSOR
371
end virtual
372
 
281 serge 373
CURSOR_SIZE     equ 32
221 serge 374
 
354 serge 375
struc EVENT
376
{
377
   .magic       dd ?   ;'EVNT'
378
   .destroy     dd ?   ;internal destructor
379
   .fd          dd ?   ;next object in list
380
   .bk          dd ?   ;prev object in list
381
   .pid         dd ?   ;owner id
382
 
383
   .id          dd ?   ;event uid
384
   .state       dd ?   ;internal flags
385
   .code        dd ?
386
                rd 5
387
}
388
EVENT_SIZE  equ 52
389
 
390
virtual at 0
391
  EVENT EVENT
392
end virtual
393
 
394
 
395
 
396
struc HEAP_DATA
397
{
398
   .mutex         rd 1
399
   .refcount      rd 1
400
   .heap_base     rd 1
401
   .heap_top      rd 1
402
   .app_mem       rd 1
403
}
404
 
405
HEAP_DATA_SIZE  equ 20
406
virtual at 0
407
  HEAP_DATA HEAP_DATA
408
end virtual
409
 
164 serge 410
struc BOOT_DATA
411
{ .bpp            dd ?
412
  .scanline       dd ?
413
  .vesa_mode      dd ?
414
  .x_res          dd ?
415
  .y_res          dd ?
416
  .mouse_port     dd ?
417
  .bank_switch    dd ?
418
  .lfb            dd ?
419
  .vesa_mem       dd ?
420
  .log            dd ?
421
  .direct_lfb     dd ?
422
  .pci_data       dd ?
423
;                  dd ?
424
  .vrr            dd ?
425
  .ide_base       dd ?
426
  .mem_amount     dd ?
427
  .pages_count    dd ?
428
  .pagemap_size   dd ?
429
  .kernel_max     dd ?
430
  .kernel_pages   dd ?
431
  .kernel_tables  dd ?
432
 
433
  .cpu_vendor     dd ?
434
                  dd ?
435
                  dd ?
436
  .cpu_sign       dd ?
437
  .cpu_info       dd ?
438
  .cpu_caps       dd ?
439
                  dd ?
440
                  dd ?
441
}
442
 
443
virtual at 0
444
  BOOT_DATA BOOT_DATA
445
end virtual
446
 
276 serge 447
struc MEM_STATE
448
{  .mutex             rd 1
449
   .smallmap          rd 1
450
   .treemap           rd 1
451
   .topsize           rd 1
452
   .top               rd 1
453
   .smallbins         rd 4*32
454
   .treebins          rd 32
455
}
456
 
164 serge 457
struc PG_DATA
458
{ .mem_amount        dd ?
459
  .vesa_mem          dd ?
460
  .pages_count       dd ?
461
  .pages_free        dd ?
462
  .pages_faults      dd ?
463
  .pagemap_size      dd ?
464
  .kernel_max        dd ?
465
  .kernel_pages      dd ?
466
  .kernel_tables     dd ?
467
  .sys_page_dir      dd ?
468
  .pg_mutex          dd ?
469
}
470
 
278 serge 471
;struc LIB
378 serge 472
;{ .lib_name         rb 16
473
;  .lib_base         dd ?
474
;  .lib_start        dd ?
475
;  .export           dd ?
476
;  .import           dd ?
278 serge 477
;}
164 serge 478
 
479
struc SRV
278 serge 480
{ .srv_name          rb 16           ;ASCIIZ string
481
  .magic             dd ?     ;+0x10 ;'SRV '
482
  .size              dd ?     ;+0x14 ;size of structure SRV
483
  .fd                dd ?     ;+0x18 ;next SRV descriptor
484
  .bk                dd ?     ;+0x1C ;prev SRV descriptor
485
  .base              dd ?     ;+0x20 ;service base address
486
  .entry             dd ?     ;+0x24 ;service START function
487
  .srv_proc          dd ?     ;+0x28 ;main service handler
164 serge 488
}
489
 
278 serge 490
SRV_FD_OFFSET  equ 0x18
491
SRV_SIZE       equ 44
492
 
164 serge 493
struc COFF_HEADER
494
{  .machine          dw ?
495
   .nSections        dw ?
496
   .DataTime         dd ?
497
   .pSymTable        dd ?
498
   .nSymbols         dd ?
499
   .optHeader        dw ?
500
   .flags            dw ?
501
};
502
 
503
 
504
struc COFF_SECTION
505
{  .Name             rb 8
506
   .VirtualSize      dd ?
507
   .VirtualAddress   dd ?
508
   .SizeOfRawData    dd ?
509
   .PtrRawData       dd ?
510
   .PtrReloc         dd ?
511
   .PtrLinenumbers   dd ?
512
   .NumReloc         dw ?
513
   .NumLinenum       dw ?
514
   .Characteristics  dd ?
515
}
206 serge 516
COFF_SECTION_SIZE equ 40
164 serge 517
 
518
struc COFF_RELOC
519
{  .VirtualAddress   dd ?
520
   .SymIndex         dd ?
521
   .Type             dw ?
522
}
523
 
524
struc COFF_SYM
525
{  .Name             rb 8
526
   .Value            dd ?
527
   .SectionNumber    dw ?
528
   .Type             dw ?
529
   .StorageClass     db ?
530
   .NumAuxSymbols    db ?
531
}
188 serge 532
CSYM_SIZE equ 18
164 serge 533
 
534
struc IOCTL
535
{  .handle           dd ?
536
   .io_code          dd ?
537
   .input            dd ?
538
   .inp_size         dd ?
539
   .output           dd ?
540
   .out_size         dd ?
541
}
542
 
543
virtual at 0
544
  IOCTL IOCTL
545
end virtual
546
 
278 serge 547
;virtual at 0
548
;  LIB LIB
549
;end virtual
164 serge 550
 
551
virtual at 0
552
  SRV SRV
553
end virtual
554
 
555
virtual at 0
188 serge 556
  CFH COFF_HEADER
557
end virtual
558
 
559
virtual at 0
164 serge 560
  CFS COFF_SECTION
561
end virtual
562
 
563
virtual at 0
564
  CRELOC COFF_RELOC
565
end virtual
566
 
567
virtual at 0
568
  CSYM COFF_SYM
569
end virtual
570