summaryrefslogtreecommitdiff
path: root/Source/Kernel/Map.txt
blob: 34c65eeaad2f4041e57a53748713bb1f3f47fa8b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
Discarded input sections

 .group         0x00000000        0x0 Core/kmain.wtf.o
 .group         0x00000000        0x0 Core/kmain.wtf.o
 .group         0x00000000        0x0 Core/kmain.wtf.o
 .group         0x00000000        0x0 Core/kmain.wtf.o
 .group         0x00000000        0x0 Core/kmain.wtf.o
 .group         0x00000000        0x0 Core/kmain.wtf.o
 .group         0x00000000        0x0 Core/kmain.wtf.o
 .group         0x00000000        0x0 Core/kmain.wtf.o
 .group         0x00000000        0x0 Core/kmain.wtf.o
 .group         0x00000000        0x0 Core/kmain.wtf.o
 .group         0x00000000        0x0 Core/Sys.ns.o
 .group         0x00000000        0x0 Core/Sys.ns.o
 .group         0x00000000        0x0 Core/Sys.ns.o
 .text._Znwj    0x00000000        0x0 Core/Sys.ns.o
 .text._ZN15VirtualTerminallsEPc
                0x00000000        0x0 Core/Sys.ns.o
 .text._ZN15VirtualTerminallsEi
                0x00000000        0x0 Core/Sys.ns.o
 .group         0x00000000        0x0 MemoryManager/PhysMem.ns.o
 .group         0x00000000        0x0 MemoryManager/PhysMem.ns.o
 .text._Znwj    0x00000000        0x0 MemoryManager/PhysMem.ns.o
 .group         0x00000000        0x0 DeviceManager/Dev.ns.o
 .group         0x00000000        0x0 DeviceManager/Dev.ns.o
 .group         0x00000000        0x0 DeviceManager/Dev.ns.o
 .group         0x00000000        0x0 DeviceManager/Dev.ns.o
 .group         0x00000000        0x0 DeviceManager/Dev.ns.o
 .group         0x00000000        0x0 DeviceManager/Dev.ns.o
 .group         0x00000000        0x0 DeviceManager/Dev.ns.o
 .group         0x00000000        0x0 DeviceManager/Dev.ns.o
 .group         0x00000000        0x0 DeviceManager/Dev.ns.o
 .group         0x00000000        0x0 DeviceManager/Dev.ns.o
 .text._ZnwjPv  0x00000000        0x0 DeviceManager/Dev.ns.o
 .group         0x00000000        0x0 VTManager/VirtualTerminal.class.o
 .group         0x00000000        0x0 VTManager/VirtualTerminal.class.o
 .text._ZdaPv   0x00000000        0x0 VTManager/VirtualTerminal.class.o
 .group         0x00000000        0x0 VTManager/VT.ns.o
 .group         0x00000000        0x0 VTManager/VT.ns.o
 .group         0x00000000        0x0 VTManager/VT.ns.o
 .group         0x00000000        0x0 VTManager/VT.ns.o
 .group         0x00000000        0x0 VTManager/VT.ns.o
 .group         0x00000000        0x0 VTManager/VT.ns.o
 .group         0x00000000        0x0 VTManager/VT.ns.o
 .group         0x00000000        0x0 VTManager/VT.ns.o
 .group         0x00000000        0x0 VTManager/VT.ns.o
 .text._ZnwjPv  0x00000000        0x0 VTManager/VT.ns.o
 .text._ZdaPv   0x00000000        0x0 VTManager/VT.ns.o
 .group         0x00000000        0x0 Library/String.class.o
 .group         0x00000000        0x0 Library/String.class.o
 .group         0x00000000        0x0 Library/String.class.o
 .group         0x00000000        0x0 Library/String.class.o
 .text._ZnwjPv  0x00000000        0x0 Library/String.class.o
 .group         0x00000000        0x0 SyscallManager/IDT.ns.o
 .group         0x00000000        0x0 SyscallManager/IDT.ns.o
 .group         0x00000000        0x0 SyscallManager/IDT.ns.o
 .group         0x00000000        0x0 SyscallManager/IDT.ns.o
 .text._Znwj    0x00000000        0x0 SyscallManager/IDT.ns.o
 .text._ZN15VirtualTerminallsEPc
                0x00000000        0x0 SyscallManager/IDT.ns.o
 .text._ZN15VirtualTerminallsEi
                0x00000000        0x0 SyscallManager/IDT.ns.o
 .text._ZN15VirtualTerminallsEj
                0x00000000        0x0 SyscallManager/IDT.ns.o
 .group         0x00000000        0x0 Devices/Display/VGATextOutput.class.o
 .group         0x00000000        0x0 Devices/Display/VGATextOutput.class.o
 .text._ZN6Device9handleIRQE11registers_ti
                0x00000000        0x0 Devices/Display/VGATextOutput.class.o
 .group         0x00000000        0x0 Devices/Timer.class.o
 .group         0x00000000        0x0 Devices/Timer.class.o
 .group         0x00000000        0x0 Devices/Timer.class.o
 .group         0x00000000        0x0 Devices/Timer.class.o
 .text._ZN6Device9handleIRQE11registers_ti
                0x00000000        0x0 Devices/Timer.class.o
 .text._ZN6DeviceC2Ev
                0x00000000        0x0 Devices/Timer.class.o
 .rodata._ZTV6Device
                0x00000000        0x0 Devices/Timer.class.o

Memory Configuration

Name             Origin             Length             Attributes
*default*        0x00000000         0xffffffff

Linker script and memory map

                0x00100000                . = 0x100000

.setup          0x00100000       0x1e
 *(.setup)
 .setup         0x00100000       0x1e Core/loader.wtf.o
                0xc010001e                . = (. + 0xc0000000)

.text           0xc0100020     0x4e2e load address 0x00100020
 *(.text)
 .text          0xc0100020      0x533 Core/kmain.wtf.o
                0xc0100020                kmain
 *fill*         0xc0100553        0xd 00
 .text          0xc0100560       0x75 Core/loader.wtf.o
                0xc010056c                loader
 *fill*         0xc01005d5        0x3 00
 .text          0xc01005d8        0xf Core/cppsupport.wtf.o
                0xc01005d8                __cxa_pure_virtual
                0xc01005dd                __cxa_atexit
 *fill*         0xc01005e7        0x1 00
 .text          0xc01005e8      0x41a Core/Sys.ns.o
                0xc0100642                Sys::bochs_output(char*, char*, unsigned int)
                0xc0100606                Sys::inb(unsigned short)
                0xc0100623                Sys::inw(unsigned short)
                0xc01007c6                Sys::panic(char*, char*, unsigned int)
                0xc01009e6                Sys::reboot()
                0xc01005e8                Sys::outb(unsigned short, unsigned char)
                0xc010073c                Sys::bochs_output_hex(unsigned int)
                0xc01008d6                Sys::panic_assert(char*, unsigned int, char*)
 *fill*         0xc0100a02        0x2 00
 .text          0xc0100a04       0xd5 Core/CMem.ns.o
                0xc0100a3a                CMem::memset(unsigned char*, unsigned char, int)
                0xc0100a71                CMem::memsetw(unsigned short*, unsigned short, int)
                0xc0100aac                CMem::strlen(char const*)
                0xc0100a04                CMem::memcpy(unsigned char*, unsigned char const*, int)
 *fill*         0xc0100ad9        0x3 00
 .text          0xc0100adc      0x8b4 MemoryManager/Mem.ns.o
                0xc0100f8f                Mem::contractHeap()
                0xc0100b96                Mem::insertIntoHeapIndex(Mem::heap_header_t*)
                0xc0100d3a                Mem::removeFromHeapIndex(Mem::heap_header_t*)
                0xc0100cf1                Mem::removeFromHeapIndex(unsigned int)
                0xc0100d61                Mem::createHeap()
                0xc0100e6f                Mem::expandHeap(unsigned int)
                0xc010122e                Mem::kfree(void*)
                0xc010109f                Mem::kalloc(unsigned int, bool)
                0xc0100caf                Mem::heapIndexFindEntry(Mem::heap_header_t*)
                0xc0100adc                Mem::kallocInternal(unsigned int, bool)
 .text          0xc0101390      0x35c MemoryManager/PhysMem.ns.o
                0xc01016e2                PhysMem::total()
                0xc0101532                PhysMem::removeTemporaryPages()
                0xc010166d                PhysMem::freeFrame(page_t*)
                0xc01016bc                PhysMem::free()
                0xc0101586                PhysMem::allocFrame(page_t*, bool, bool)
                0xc0101390                PhysMem::initPaging(unsigned int)
 *fill*         0xc01016ec        0x4 00
 .text          0xc01016f0       0x1d MemoryManager/GDT.wtf.o
                0xc01016f0                gdt_flush
 *fill*         0xc010170d        0x3 00
 .text          0xc0101710      0x193 MemoryManager/GDT.ns.o
                0xc010179f                GDT::init()
                0xc0101710                GDT::setGate(int, unsigned int, unsigned int, unsigned char, unsigned char)
 *fill*         0xc01018a3        0x1 00
 .text          0xc01018a4      0x2db MemoryManager/PageDirectory.class.o
                0xc0101a0c                PageDirectory::getPage(unsigned int, bool)
                0xc01018a4                PageDirectory::PageDirectory()
                0xc01019ba                PageDirectory::~PageDirectory()
                0xc0101968                PageDirectory::~PageDirectory()
                0xc0101b1e                PageDirectory::freeFrame(unsigned int)
                0xc0101906                PageDirectory::PageDirectory()
                0xc0101acc                PageDirectory::allocFrame(unsigned int, bool, bool)
                0xc0101b58                PageDirectory::switchTo()
 *fill*         0xc0101b7f        0x1 00
 .text          0xc0101b80      0x239 MemoryManager/PageAlloc.ns.o
                0xc0101d9d                PageAlloc::free(void*)
                0xc0101bd4                PageAlloc::alloc(unsigned int*)
                0xc0101b80                PageAlloc::init()
 *fill*         0xc0101db9        0x3 00
 .text          0xc0101dbc      0x16a DeviceManager/Disp.ns.o
                0xc0101dc6                Disp::textRows()
                0xc0101eb2                Disp::clear()
                0xc0101dbc                Disp::textCols()
                0xc0101ed0                Disp::setDisplay(Display*)
                0xc0101e51                Disp::moveCursor(unsigned short, unsigned short)
                0xc0101dd0                Disp::putChar(unsigned short, unsigned short, char, unsigned char)
 *fill*         0xc0101f26        0x2 00
 .text          0xc0101f28      0x37d DeviceManager/Dev.ns.o
                0xc0101fd9                Dev::registerDevice(Device*)
                0xc01020ad                Dev::findDevice(String)
                0xc0101fff                Dev::unregisterDevice(Device*)
                0xc0102081                Dev::requestIRQ(Device*, int)
                0xc0101f28                Dev::handleIRQ(registers_t, int)
 *fill*         0xc01022a5        0x3 00
 .text          0xc01022a8       0x37 DeviceManager/Time.ns.o
                0xc01022a8                Time::setTimer(Timer*)
                0xc01022ca                Time::time()
                0xc01022b5                Time::uptime()
 *fill*         0xc01022df        0x1 00
 .text          0xc01022e0      0x941 VTManager/VirtualTerminal.class.o
                0xc01025d2                VirtualTerminal::map(int, int)
                0xc010264c                VirtualTerminal::unmap()
                0xc01028da                VirtualTerminal::put(char, bool)
                0xc01028a2                VirtualTerminal::setCursorLine(unsigned int)
                0xc0102448                VirtualTerminal::setColor(unsigned char, unsigned char)
                0xc01023e0                VirtualTerminal::~VirtualTerminal()
                0xc01028be                VirtualTerminal::setCursorCol(unsigned int)
                0xc0102360                VirtualTerminal::VirtualTerminal(unsigned int, unsigned int, unsigned char, unsigned char)
                0xc0102840                VirtualTerminal::updateCursor()
                0xc0102a30                VirtualTerminal::write(char*, bool)
                0xc0102a84                VirtualTerminal::writeDec(int, bool)
                0xc0102414                VirtualTerminal::~VirtualTerminal()
                0xc0102666                VirtualTerminal::redraw()
                0xc0102496                VirtualTerminal::putChar(unsigned int, unsigned int, char)
                0xc0102b86                VirtualTerminal::writeHex(unsigned int, bool)
                0xc0102740                VirtualTerminal::scroll()
                0xc01022e0                VirtualTerminal::VirtualTerminal(unsigned int, unsigned int, unsigned char, unsigned char)
                0xc0102568                VirtualTerminal::clear()
                0xc010287c                VirtualTerminal::moveCursor(unsigned int, unsigned int)
 *fill*         0xc0102c21        0x3 00
 .text          0xc0102c24      0x156 VTManager/VT.ns.o
                0xc0102c4a                VT::unmap(VirtualTerminal*)
                0xc0102cd1                VT::redrawScreen()
                0xc0102c24                VT::map(VirtualTerminal*)
 *fill*         0xc0102d7a        0x2 00
 .text          0xc0102d7c      0x2f1 Library/Bitset.class.o
                0xc0103062                Bitset::usedBits()
                0xc0102d7c                Bitset::Bitset()
                0xc0102f84                Bitset::testBit(unsigned int)
                0xc0102e4a                Bitset::~Bitset()
                0xc0102f1c                Bitset::clearBit(unsigned int)
                0xc0102e60                Bitset::init(unsigned int, unsigned int*)
                0xc0102d88                Bitset::Bitset(unsigned int)
                0xc0102d82                Bitset::Bitset()
                0xc0102dbc                Bitset::Bitset(unsigned int)
                0xc0102eb6                Bitset::setBit(unsigned int)
                0xc0102e34                Bitset::~Bitset()
                0xc0102e12                Bitset::Bitset(unsigned int, unsigned int*)
                0xc0102df0                Bitset::Bitset(unsigned int, unsigned int*)
                0xc0102fcc                Bitset::firstFreeBit()
 *fill*         0xc010306d        0x3 00
 .text          0xc0103070      0xd2c Library/String.class.o
                0xc0103070                String::hex(unsigned int)
                0xc0103694                String::operator==(char*)
                0xc0103a66                String::toInt()
                0xc010345c                String::String(String const&)
                0xc01032b8                String::String()
                0xc01032d0                String::String()
                0xc0103be2                String::size()
                0xc0103124                String::number(int)
                0xc0103632                String::operator==(String&)
                0xc01039c4                String::operator+(char*)
                0xc01034f2                String::~String()
                0xc01033e4                String::String(String const&)
                0xc0103a4c                String::operator char*()
                0xc01034d4                String::~String()
                0xc0103510                String::operator=(String const&)
                0xc01032e8                String::String(char*)
                0xc0103706                String::operator+=(String&)
                0xc0103bd2                String::operator[](int)
                0xc0103bee                String::clear()
                0xc0103c16                String::empty()
                0xc01038d4                String::operator+=(char)
                0xc0103c26                String::split(char)
                0xc0103b1a                String::toInt16()
                0xc0103d00                String::substr(int, int)
                0xc0103a04                String::operator+(char)
                0xc0103366                String::String(char*)
                0xc01037e2                String::operator+=(char*)
                0xc010359e                String::operator=(char*)
                0xc0103984                String::operator+(String&)
 .text          0xc0103d9c      0xabf SyscallManager/IDT.ns.o
                0xc010474e                IDT::handleException(registers_t, int)
                0xc0103f51                IDT::init()
                0xc0103eea                IDT::setGate(unsigned char, unsigned int, unsigned short, unsigned char)
                0xc0103d9c                interrupt_handler
 *fill*         0xc010485b        0x5 00
 .text          0xc0104860      0x204 SyscallManager/IDT.wtf.o
                0xc0104890                isr4
                0xc010496a                isr27
                0xc01048e2                isr13
                0xc0104a14                irq12
                0xc0104938                isr22
                0xc01048f2                isr15
                0xc0104a00                irq10
                0xc0104a28                irq14
                0xc01048c0                isr9
                0xc01049ec                irq8
                0xc0104942                isr23
                0xc010497e                isr29
                0xc0104992                isr31
                0xc010492e                isr21
                0xc0104a0a                irq11
                0xc0104974                isr28
                0xc01048b8                isr8
                0xc01049ce                irq5
                0xc0104924                isr20
                0xc01048ea                isr14
                0xc010489a                isr5
                0xc01049d8                irq6
                0xc01049a6                irq1
                0xc0104872                isr1
                0xc01049f6                irq9
                0xc0104960                isr26
                0xc01048d2                isr11
                0xc0104a1e                irq13
                0xc01048da                isr12
                0xc0104868                isr0
                0xc01049b0                irq2
                0xc010494c                isr24
                0xc01048fc                isr16
                0xc0104886                isr3
                0xc01048a4                isr6
                0xc01049e2                irq7
                0xc0104910                isr18
                0xc010499c                irq0
                0xc01048ca                isr10
                0xc0104906                isr17
                0xc010487c                isr2
                0xc010491a                isr19
                0xc0104860                idt_flush
                0xc0104988                isr30
                0xc0104a32                irq15
                0xc01048ae                isr7
                0xc0104956                isr25
                0xc01049c4                irq4
                0xc01049ba                irq3
 .text          0xc0104a64      0x17f Devices/Display/VGATextOutput.class.o
                0xc0104a8c                VGATextOutput::getName()
                0xc0104ab4                VGATextOutput::textCols()
                0xc0104bac                VGATextOutput::clear()
                0xc0104a64                VGATextOutput::getClass()
                0xc0104b26                VGATextOutput::moveCursor(unsigned short, unsigned short)
                0xc0104ac8                VGATextOutput::putChar(unsigned short, unsigned short, char, unsigned char)
                0xc0104abe                VGATextOutput::textRows()
 *fill*         0xc0104be3        0x1 00
 .text          0xc0104be4      0x26a Devices/Timer.class.o
                0xc0104cfc                Timer::setFrequency(unsigned char)
                0xc0104be4                Timer::Timer(unsigned char)
                0xc0104cac                Timer::getClass()
                0xc0104cd4                Timer::getName()
                0xc0104d80                Timer::time()
                0xc0104dba                Timer::handleIRQ(registers_t, int)
                0xc0104d74                Timer::uptime()
                0xc0104c48                Timer::Timer(unsigned char)

.text._Znwj     0xc0104e4e       0x1b load address 0x00104e4e
 .text._Znwj    0xc0104e4e       0x1b Core/kmain.wtf.o
                0xc0104e4e                operator new(unsigned int)

.text._ZN6Device9handleIRQE11registers_ti
                0xc0104e6a        0x5 load address 0x00104e6a
 .text._ZN6Device9handleIRQE11registers_ti
                0xc0104e6a        0x5 Core/kmain.wtf.o
                0xc0104e6a                Device::handleIRQ(registers_t, int)

.text._ZN15VirtualTerminallsEPc
                0xc0104e70       0x25 load address 0x00104e70
 .text._ZN15VirtualTerminallsEPc
                0xc0104e70       0x25 Core/kmain.wtf.o
                0xc0104e70                VirtualTerminal::operator<<(char*)

.text._ZN15VirtualTerminallsEi
                0xc0104e96       0x25 load address 0x00104e96
 .text._ZN15VirtualTerminallsEi
                0xc0104e96       0x25 Core/kmain.wtf.o
                0xc0104e96                VirtualTerminal::operator<<(int)

.text._ZN15VirtualTerminallsEj
                0xc0104ebc       0x25 load address 0x00104ebc
 .text._ZN15VirtualTerminallsEj
                0xc0104ebc       0x25 Core/kmain.wtf.o
                0xc0104ebc                VirtualTerminal::operator<<(unsigned int)

.text._ZN6DeviceC2Ev
                0xc0104ee2        0xe load address 0x00104ee2
 .text._ZN6DeviceC2Ev
                0xc0104ee2        0xe Core/kmain.wtf.o
                0xc0104ee2                Device::Device()

.text._ZN7DisplayC2Ev
                0xc0104ef0       0x1c load address 0x00104ef0
 .text._ZN7DisplayC2Ev
                0xc0104ef0       0x1c Core/kmain.wtf.o
                0xc0104ef0                Display::Display()

.text._ZN13VGATextOutputC1Ev
                0xc0104f0c       0x1c load address 0x00104f0c
 .text._ZN13VGATextOutputC1Ev
                0xc0104f0c       0x1c Core/kmain.wtf.o
                0xc0104f0c                VGATextOutput::VGATextOutput()

.text._ZnwjPv   0xc0104f28        0x8 load address 0x00104f28
 .text._ZnwjPv  0xc0104f28        0x8 MemoryManager/PhysMem.ns.o
                0xc0104f28                operator new(unsigned int, void*)

.text._ZdaPv    0xc0104f30       0x13 load address 0x00104f30
 .text._ZdaPv   0xc0104f30       0x13 DeviceManager/Dev.ns.o
                0xc0104f30                operator delete[](void*)

.text._ZN6VectorIP6DeviceEC1Ev
                0xc0104f44       0x18 load address 0x00104f44
 .text._ZN6VectorIP6DeviceEC1Ev
                0xc0104f44       0x18 DeviceManager/Dev.ns.o
                0xc0104f44                Vector<Device*>::Vector()

.text._ZN6VectorIP6DeviceE4pushES1_
                0xc0104f5c       0x91 load address 0x00104f5c
 .text._ZN6VectorIP6DeviceE4pushES1_
                0xc0104f5c       0x91 DeviceManager/Dev.ns.o
                0xc0104f5c                Vector<Device*>::push(Device*)

.text._ZN6VectorIP6DeviceE4sizeEv
                0xc0104fee        0xb load address 0x00104fee
 .text._ZN6VectorIP6DeviceE4sizeEv
                0xc0104fee        0xb DeviceManager/Dev.ns.o
                0xc0104fee                Vector<Device*>::size()

.text._ZN6VectorIP6DeviceEixEj
                0xc0104ffa       0x12 load address 0x00104ffa
 .text._ZN6VectorIP6DeviceEixEj
                0xc0104ffa       0x12 DeviceManager/Dev.ns.o
                0xc0104ffa                Vector<Device*>::operator[](unsigned int)

.text._ZN6VectorIP6DeviceE4backEv
                0xc010500c       0x19 load address 0x0010500c
 .text._ZN6VectorIP6DeviceE4backEv
                0xc010500c       0x19 DeviceManager/Dev.ns.o
                0xc010500c                Vector<Device*>::back()

.text._ZN6VectorIP6DeviceE3popEv
                0xc0105026       0x6d load address 0x00105026
 .text._ZN6VectorIP6DeviceE3popEv
                0xc0105026       0x6d DeviceManager/Dev.ns.o
                0xc0105026                Vector<Device*>::pop()

.text._ZN6VectorIP6DeviceEC1ERKS2_
                0xc0105094       0x7f load address 0x00105094
 .text._ZN6VectorIP6DeviceEC1ERKS2_
                0xc0105094       0x7f DeviceManager/Dev.ns.o
                0xc0105094                Vector<Device*>::Vector(Vector<Device*> const&)

.text._ZN6VectorIP6DeviceED1Ev
                0xc0105114       0x27 load address 0x00105114
 .text._ZN6VectorIP6DeviceED1Ev
                0xc0105114       0x27 DeviceManager/Dev.ns.o
                0xc0105114                Vector<Device*>::~Vector()

.text._Znaj     0xc010513b       0x1b load address 0x0010513b
 .text._Znaj    0xc010513b       0x1b VTManager/VirtualTerminal.class.o
                0xc010513b                operator new[](unsigned int)

.text._ZN6VectorIP15VirtualTerminalEC1Ev
                0xc0105156       0x18 load address 0x00105156
 .text._ZN6VectorIP15VirtualTerminalEC1Ev
                0xc0105156       0x18 VTManager/VT.ns.o
                0xc0105156                Vector<VirtualTerminal*>::Vector()

.text._ZN6VectorIP15VirtualTerminalE4pushES1_
                0xc010516e       0x91 load address 0x0010516e
 .text._ZN6VectorIP15VirtualTerminalE4pushES1_
                0xc010516e       0x91 VTManager/VT.ns.o
                0xc010516e                Vector<VirtualTerminal*>::push(VirtualTerminal*)

.text._ZN6VectorIP15VirtualTerminalE4sizeEv
                0xc0105200        0xb load address 0x00105200
 .text._ZN6VectorIP15VirtualTerminalE4sizeEv
                0xc0105200        0xb VTManager/VT.ns.o
                0xc0105200                Vector<VirtualTerminal*>::size()

.text._ZN6VectorIP15VirtualTerminalEixEj
                0xc010520c       0x12 load address 0x0010520c
 .text._ZN6VectorIP15VirtualTerminalEixEj
                0xc010520c       0x12 VTManager/VT.ns.o
                0xc010520c                Vector<VirtualTerminal*>::operator[](unsigned int)

.text._ZN6VectorIP15VirtualTerminalE4backEv
                0xc010521e       0x19 load address 0x0010521e
 .text._ZN6VectorIP15VirtualTerminalE4backEv
                0xc010521e       0x19 VTManager/VT.ns.o
                0xc010521e                Vector<VirtualTerminal*>::back()

.text._ZN6VectorIP15VirtualTerminalE3popEv
                0xc0105238       0x6d load address 0x00105238
 .text._ZN6VectorIP15VirtualTerminalE3popEv
                0xc0105238       0x6d VTManager/VT.ns.o
                0xc0105238                Vector<VirtualTerminal*>::pop()

.text._ZN6VectorIP15VirtualTerminalED1Ev
                0xc01052a6       0x27 load address 0x001052a6
 .text._ZN6VectorIP15VirtualTerminalED1Ev
                0xc01052a6       0x27 VTManager/VT.ns.o
                0xc01052a6                Vector<VirtualTerminal*>::~Vector()

.text._ZN6VectorI6StringEC1Ev
                0xc01052ce       0x18 load address 0x001052ce
 .text._ZN6VectorI6StringEC1Ev
                0xc01052ce       0x18 Library/String.class.o
                0xc01052ce                Vector<String>::Vector()

.text._ZN6VectorI6StringE4pushES0_
                0xc01052e6       0x9b load address 0x001052e6
 .text._ZN6VectorI6StringE4pushES0_
                0xc01052e6       0x9b Library/String.class.o
                0xc01052e6                Vector<String>::push(String)

.text._ZN6VectorI6StringE4backEv
                0xc0105382       0x19 load address 0x00105382
 .text._ZN6VectorI6StringE4backEv
                0xc0105382       0x19 Library/String.class.o
                0xc0105382                Vector<String>::back()

.rodata         0xc0106000      0x6f3 load address 0x00106000
 *(.rodata)
 .rodata        0xc0106000      0x353 Core/kmain.wtf.o
 .rodata        0xc0106353       0x4f Core/Sys.ns.o
 .rodata        0xc01063a2       0x5c MemoryManager/PhysMem.ns.o
 *fill*         0xc01063fe        0x2 00
 .rodata        0xc0106400       0x6f MemoryManager/PageAlloc.ns.o
 .rodata        0xc010646f        0x3 VTManager/VirtualTerminal.class.o
 .rodata        0xc0106472        0x5 Library/String.class.o
 *fill*         0xc0106477        0x9 00
 .rodata        0xc0106480      0x220 SyscallManager/IDT.ns.o
 .rodata        0xc01066a0       0x30 Devices/Display/VGATextOutput.class.o
 .rodata        0xc01066d0       0x23 Devices/Timer.class.o

.rodata._ZTV7Display
                0xc0106700       0x28 load address 0x00106700
 .rodata._ZTV7Display
                0xc0106700       0x28 Core/kmain.wtf.o
                0xc0106700                vtable for Display

.rodata._ZTV6Device
                0xc0106728       0x14 load address 0x00106728
 .rodata._ZTV6Device
                0xc0106728       0x14 Core/kmain.wtf.o
                0xc0106728                vtable for Device

.rodata._ZTV13VGATextOutput
                0xc0106740       0x28 load address 0x00106740
 .rodata._ZTV13VGATextOutput
                0xc0106740       0x28 Devices/Display/VGATextOutput.class.o
                0xc0106740                vtable for VGATextOutput

.rodata._ZTV5Timer
                0xc0106768       0x14 load address 0x00106768
 .rodata._ZTV5Timer
                0xc0106768       0x14 Devices/Timer.class.o
                0xc0106768                vtable for Timer

.rel.dyn        0xc010677c        0x0 load address 0x0010677c
 .rel.text      0x00000000        0x0 Core/kmain.wtf.o
 .rel.text._Znwj
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.text._ZN15VirtualTerminallsEPc
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.text._ZN15VirtualTerminallsEi
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.text._ZN15VirtualTerminallsEj
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.text._ZN6DeviceC2Ev
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.text._ZN7DisplayC2Ev
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.text._ZN13VGATextOutputC1Ev
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.rodata._ZTV7Display
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.rodata._ZTV6Device
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.text._ZN6VectorIP6DeviceE4pushES1_
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.text._ZN6VectorIP6DeviceEC1ERKS2_
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.text._ZN6VectorIP6DeviceED1Ev
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.text._ZN6VectorIP15VirtualTerminalE4pushES1_
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.text._ZN6VectorIP15VirtualTerminalED1Ev
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.text._ZN6VectorI6StringE4pushES0_
                0x00000000        0x0 Core/kmain.wtf.o
 .rel.rodata._ZTV13VGATextOutput
                0x00000000        0x0 Core/kmain.wtf.o

.data           0xc0107000       0x2c load address 0x00107000
                0xc0107000                start_ctors = .
 *(.ctor*)
 .ctors         0xc0107000        0x4 DeviceManager/Dev.ns.o
 .ctors         0xc0107004        0x4 VTManager/VT.ns.o
                0xc0107008                end_ctors = .
                0xc0107008                start_dtors = .
 *(.dtor*)
                0xc0107008                end_dtors = .
 *(.data)
 .data          0xc0107008       0x24 Core/kmain.wtf.o
                0xc0107028                melonLogoCols
                0xc0107008                melonLogo
                0xc0107024                melonLogoLines
 .data          0xc010702c        0x0 Core/cppsupport.wtf.o
 .data          0xc010702c        0x0 Core/Sys.ns.o
 .data          0xc010702c        0x0 Core/CMem.ns.o
 .data          0xc010702c        0x0 MemoryManager/Mem.ns.o
 .data          0xc010702c        0x0 MemoryManager/PhysMem.ns.o
 .data          0xc010702c        0x0 MemoryManager/GDT.ns.o
 .data          0xc010702c        0x0 MemoryManager/PageDirectory.class.o
 .data          0xc010702c        0x0 MemoryManager/PageAlloc.ns.o
 .data          0xc010702c        0x0 DeviceManager/Disp.ns.o
 .data          0xc010702c        0x0 DeviceManager/Dev.ns.o
 .data          0xc010702c        0x0 DeviceManager/Time.ns.o
 .data          0xc010702c        0x0 VTManager/VirtualTerminal.class.o
 .data          0xc010702c        0x0 VTManager/VT.ns.o
 .data          0xc010702c        0x0 Library/Bitset.class.o
 .data          0xc010702c        0x0 Library/String.class.o
 .data          0xc010702c        0x0 SyscallManager/IDT.ns.o
 .data          0xc010702c        0x0 Devices/Display/VGATextOutput.class.o
 .data          0xc010702c        0x0 Devices/Timer.class.o

.bss            0xc0107040     0x4928 load address 0x00107040
                0xc0107040                sbss = .
 *(COMMON)
 *(.bss)
 .bss           0xc0107040        0x0 Core/kmain.wtf.o
 .bss           0xc0107040     0x4000 Core/loader.wtf.o
 .bss           0xc010b040        0x4 Core/cppsupport.wtf.o
                0xc010b040                __dso_handle
 .bss           0xc010b044        0x0 Core/Sys.ns.o
 .bss           0xc010b044        0x0 Core/CMem.ns.o
 .bss           0xc010b044       0x1c MemoryManager/Mem.ns.o
                0xc010b058                Mem::heapStart
                0xc010b045                Mem::pagingEnabled
                0xc010b04c                Mem::kheapFree
                0xc010b05c                Mem::heapEnd
                0xc010b044                Mem::kheapUsable
                0xc010b048                Mem::placementAddress
                0xc010b050                Mem::heapIndex
 .bss           0xc010b060        0xc MemoryManager/PhysMem.ns.o
                0xc010b060                kernelPageDirectory
                0xc010b068                PhysMem::frames
                0xc010b064                PhysMem::nframes
 *fill*         0xc010b06c       0x14 00
 .bss           0xc010b080       0x2e MemoryManager/GDT.ns.o
                0xc010b0a8                GDT::gdt_ptr
                0xc010b080                GDT::gdt_entries
 *fill*         0xc010b0ae        0x2 00
 .bss           0xc010b0b0        0x0 MemoryManager/PageDirectory.class.o
 .bss           0xc010b0b0       0x12 MemoryManager/PageAlloc.ns.o
                0xc010b0c0                PageAlloc::usable
                0xc010b0b0                PageAlloc::freePage
                0xc010b0bc                PageAlloc::freec
                0xc010b0c1                PageAlloc::locked
 *fill*         0xc010b0c2        0x2 00
 .bss           0xc010b0c4        0xc DeviceManager/Disp.ns.o
                0xc010b0c4                Disp::mode
 *fill*         0xc010b0d0       0x10 00
 .bss           0xc010b0e0       0x60 DeviceManager/Dev.ns.o
                0xc010b0e0                Dev::devices
                0xc010b100                Dev::irqHandler
 .bss           0xc010b140        0x4 DeviceManager/Time.ns.o
                0xc010b140                Time::timer
 .bss           0xc010b144        0x0 VTManager/VirtualTerminal.class.o
 .bss           0xc010b144        0x8 VTManager/VT.ns.o
                0xc010b144                VT::mappedVTs
 .bss           0xc010b14c        0x0 Library/Bitset.class.o
 .bss           0xc010b14c        0x0 Library/String.class.o
 *fill*         0xc010b14c       0x14 00
 .bss           0xc010b160      0x806 SyscallManager/IDT.ns.o
                0xc010b160                IDT::idt_entries
                0xc010b960                IDT::idt_ptr
 *fill*         0xc010b966        0x2 00
 .bss           0xc010b968        0x0 Devices/Display/VGATextOutput.class.o
 .bss           0xc010b968        0x0 Devices/Timer.class.o
                0xc010b968                ebss = .
                0xc010b968                end = .
                0xc010b968                _end = .
                0xc010b968                __end = .
LOAD Core/kmain.wtf.o
LOAD Core/loader.wtf.o
LOAD Core/cppsupport.wtf.o
LOAD Core/Sys.ns.o
LOAD Core/CMem.ns.o
LOAD MemoryManager/Mem.ns.o
LOAD MemoryManager/PhysMem.ns.o
LOAD MemoryManager/GDT.wtf.o
LOAD MemoryManager/GDT.ns.o
LOAD MemoryManager/PageDirectory.class.o
LOAD MemoryManager/PageAlloc.ns.o
LOAD DeviceManager/Disp.ns.o
LOAD DeviceManager/Dev.ns.o
LOAD DeviceManager/Time.ns.o
LOAD VTManager/VirtualTerminal.class.o
LOAD VTManager/VT.ns.o
LOAD Library/Bitset.class.o
LOAD Library/String.class.o
LOAD SyscallManager/IDT.ns.o
LOAD SyscallManager/IDT.wtf.o
LOAD Devices/Display/VGATextOutput.class.o
LOAD Devices/Timer.class.o
OUTPUT(Melon.ke elf32-i386)

.comment        0x00000000      0x1b3
 .comment       0x00000000       0x12 Core/kmain.wtf.o
 .comment       0x00000012       0x1f Core/loader.wtf.o
 .comment       0x00000031       0x12 Core/cppsupport.wtf.o
 .comment       0x00000043       0x12 Core/Sys.ns.o
 .comment       0x00000055       0x12 Core/CMem.ns.o
 .comment       0x00000067       0x12 MemoryManager/Mem.ns.o
 .comment       0x00000079       0x12 MemoryManager/PhysMem.ns.o
 .comment       0x0000008b       0x1f MemoryManager/GDT.wtf.o
 .comment       0x000000aa       0x12 MemoryManager/GDT.ns.o
 .comment       0x000000bc       0x12 MemoryManager/PageDirectory.class.o
 .comment       0x000000ce       0x12 MemoryManager/PageAlloc.ns.o
 .comment       0x000000e0       0x12 DeviceManager/Disp.ns.o
 .comment       0x000000f2       0x12 DeviceManager/Dev.ns.o
 .comment       0x00000104       0x12 DeviceManager/Time.ns.o
 .comment       0x00000116       0x12 VTManager/VirtualTerminal.class.o
 .comment       0x00000128       0x12 VTManager/VT.ns.o
 .comment       0x0000013a       0x12 Library/Bitset.class.o
 .comment       0x0000014c       0x12 Library/String.class.o
 .comment       0x0000015e       0x12 SyscallManager/IDT.ns.o
 .comment       0x00000170       0x1f SyscallManager/IDT.wtf.o
 .comment       0x0000018f       0x12 Devices/Display/VGATextOutput.class.o
 .comment       0x000001a1       0x12 Devices/Timer.class.o

.note.GNU-stack
                0x00000000        0x0
 .note.GNU-stack
                0x00000000        0x0 Core/kmain.wtf.o
 .note.GNU-stack
                0x00000000        0x0 Core/cppsupport.wtf.o
 .note.GNU-stack
                0x00000000        0x0 Core/Sys.ns.o
 .note.GNU-stack
                0x00000000        0x0 Core/CMem.ns.o
 .note.GNU-stack
                0x00000000        0x0 MemoryManager/Mem.ns.o
 .note.GNU-stack
                0x00000000        0x0 MemoryManager/PhysMem.ns.o
 .note.GNU-stack
                0x00000000        0x0 MemoryManager/GDT.ns.o
 .note.GNU-stack
                0x00000000        0x0 MemoryManager/PageDirectory.class.o
 .note.GNU-stack
                0x00000000        0x0 MemoryManager/PageAlloc.ns.o
 .note.GNU-stack
                0x00000000        0x0 DeviceManager/Disp.ns.o
 .note.GNU-stack
                0x00000000        0x0 DeviceManager/Dev.ns.o
 .note.GNU-stack
                0x00000000        0x0 DeviceManager/Time.ns.o
 .note.GNU-stack
                0x00000000        0x0 VTManager/VirtualTerminal.class.o
 .note.GNU-stack
                0x00000000        0x0 VTManager/VT.ns.o
 .note.GNU-stack
                0x00000000        0x0 Library/Bitset.class.o
 .note.GNU-stack
                0x00000000        0x0 Library/String.class.o
 .note.GNU-stack
                0x00000000        0x0 SyscallManager/IDT.ns.o
 .note.GNU-stack
                0x00000000        0x0 Devices/Display/VGATextOutput.class.o
 .note.GNU-stack
                0x00000000        0x0 Devices/Timer.class.o