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
|