summaryrefslogtreecommitdiff
path: root/src/stem/stem.map
blob: a919c0197d5b051a21fc306091b1ad4c44ada8b8 (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
Allocating common symbols
Common symbol       size              file

idt_ptr             0x6               task/idt.o
mem_placementAddr   0x4               mem/mem.o
tasking_tmpStack    0x10000           task/task.o
idt_entries         0x800             task/idt.o
kernel_process      0x4               task/task.o
idle_thread         0x4               task/task.o
current_pagedir     0x4               mem/paging.o
kernel_pagedir      0x4               mem/paging.o

Memory Configuration

Name             Origin             Length             Attributes
*default*        0x00000000         0xffffffff

Linker script and memory map

                0x00100000                . = 0x100000

.setup          0x00100000       0x3a
 *(.setup)
 .setup         0x00100000       0x3a core/loader_.o
                0x00100000                loader
                0xe010003a                . = (. + 0xe0000000)

.text           0xe0100040     0x355a load address 0x00100040
 *(.text)
 .text          0xe0100040       0x25 core/loader_.o
 *fill*         0xe0100065        0x3 00
 .text          0xe0100068      0x126 core/kmain.o
                0xe0100068                kmain_othertask
                0xe01000a7                kmain_stage2
                0xe01000eb                kmain
 *fill*         0xe010018e        0x2 00
 .text          0xe0100190       0xf6 core/sys.o
                0xe0100190                outb
                0xe01001ae                outw
                0xe01001ce                inb
                0xe01001eb                inw
                0xe010020a                panic
                0xe010024e                cli
                0xe0100261                sti
 *fill*         0xe0100286        0x2 00
 .text          0xe0100288      0x310 core/monitor.o
                0xe0100399                monitor_put
                0xe01004a5                monitor_clear
                0xe0100502                monitor_write
                0xe010052b                monitor_writeHex
 .text          0xe0100598      0x104 task/timer.o
                0xe0100598                timer_callback
                0xe01005d0                timer_uptime
                0xe01005da                timer_time
                0xe0100611                timer_init
 .text          0xe010069c      0xa26 task/idt.o
                0xe010069c                idt_isrHandler
                0xe0100734                idt_irqHandler
                0xe01007d5                idt_syscallHandler
                0xe0100882                idt_init
                0xe01010b0                idt_handleIrq
 *fill*         0xe01010c2        0xe 00
 .text          0xe01010d0      0x293 task/idt_.o
                0xe01010d0                gdt_flush
                0xe01010ed                idt_flush
                0xe0101185                isr0
                0xe010118f                isr1
                0xe0101199                isr2
                0xe01011a3                isr3
                0xe01011ad                isr4
                0xe01011b7                isr5
                0xe01011c1                isr6
                0xe01011cb                isr7
                0xe01011d5                isr8
                0xe01011dd                isr9
                0xe01011e7                isr10
                0xe01011ef                isr11
                0xe01011f7                isr12
                0xe01011ff                isr13
                0xe0101207                isr14
                0xe010120f                isr15
                0xe0101219                isr16
                0xe0101223                isr17
                0xe010122d                isr18
                0xe0101237                isr19
                0xe0101241                isr20
                0xe010124b                isr21
                0xe0101255                isr22
                0xe010125f                isr23
                0xe0101269                isr24
                0xe0101273                isr25
                0xe010127d                isr26
                0xe0101287                isr27
                0xe0101291                isr28
                0xe010129b                isr29
                0xe01012a5                isr30
                0xe01012af                isr31
                0xe01012b9                irq0
                0xe01012c3                irq1
                0xe01012cd                irq2
                0xe01012d7                irq3
                0xe01012e1                irq4
                0xe01012eb                irq5
                0xe01012f5                irq6
                0xe01012ff                irq7
                0xe0101309                irq8
                0xe0101313                irq9
                0xe010131d                irq10
                0xe0101327                irq11
                0xe0101331                irq12
                0xe010133b                irq13
                0xe0101345                irq14
                0xe010134f                irq15
                0xe0101359                syscall64
 *fill*         0xe0101363        0x1 00
 .text          0xe0101364      0x6f6 task/task.o
                0xe0101364                tasking_init
                0xe01014af                tasking_switch
                0xe0101556                tasking_updateKernelPagetable
                0xe01015a0                tasking_handleException
                0xe0101611                thread_sleep
                0xe01016f5                thread_exit
                0xe0101709                process_exit
                0xe01017a5                thread_new
                0xe010189a                process_new
 *fill*         0xe0101a5a        0x6 00
 .text          0xe0101a60        0xa task/task_.o
                0xe0101a60                read_eip
                0xe0101a63                task_idle
 *fill*         0xe0101a6a        0x2 00
 .text          0xe0101a6c       0x66 task/syscall.o
 *fill*         0xe0101ad2        0x2 00
 .text          0xe0101ad4      0x13a lib/stdlib.o
                0xe0101ad4                memcpy
                0xe0101b7e                memset
                0xe0101bb0                memsetw
                0xe0101be6                strlen
 *fill*         0xe0101c0e        0x2 00
 .text          0xe0101c10      0x173 lib/bitset.o
                0xe0101c10                bitset_set
                0xe0101c64                bitset_clear
                0xe0101cba                bitset_test
                0xe0101cfc                bitset_firstFree
 *fill*         0xe0101d83        0x1 00
 .text          0xe0101d84      0x29f mem/mem.o
                0xe0101eea                kmalloc_page
                0xe0101f31                kfree_page
                0xe0101f6c                kheap_init
                0xe0101fc1                kmalloc
                0xe0101fff                kfree
 *fill*         0xe0102023        0x1 00
 .text          0xe0102024      0x6cc mem/paging.o
                0xe0102024                frame_alloc
                0xe0102051                frame_free
                0xe010206c                paging_init
                0xe0102213                paging_cleanup
                0xe010226e                pagedir_switch
                0xe010229d                pagedir_new
                0xe0102332                pagedir_delete
                0xe010239d                paging_fault
                0xe01024ea                pagedir_getPage
                0xe0102601                page_map
                0xe0102689                page_unmap
                0xe01026ac                page_unmapFree
 .text          0xe01026f0      0x19f mem/gdt.o
                0xe010277f                gdt_init
 *fill*         0xe010288f        0x1 00
 .text          0xe0102890      0x858 mem/heap.o
                0xe0102a20                heap_create
                0xe0102df3                heap_alloc
                0xe0102f54                heap_free
 .text          0xe01030e8      0x2ed mem/seg.o
                0xe01030e8                seg_map
                0xe0103156                seg_unmap
                0xe0103235                simpleseg_make
                0xe01032b2                simpleseg_map
                0xe01032e8                simpleseg_unmap
                0xe010333b                simpleseg_handleFault
                0xe01033d0                simpleseg_delete
 *fill*         0xe01033d5        0x3 00
 .text          0xe01033d8      0x1c2 linker/elf.o
                0xe01033d8                elf_check
                0xe010341d                elf_load

.iplt           0xe010359c        0x0 load address 0x0010359a
 .iplt          0x00000000        0x0 core/loader_.o

.rodata         0xe0104000      0x395 load address 0x00104000
 *(.rodata)
 .rodata        0xe0104000       0x52 core/kmain.o
 .rodata        0xe0104052       0x2c core/sys.o
 .rodata        0xe010407e        0xf task/timer.o
 *fill*         0xe010408d        0x3 00
 .rodata        0xe0104090       0x8a task/idt.o
 *fill*         0xe010411a        0x6 00
 .rodata        0xe0104120      0x1ec task/task.o
 .rodata        0xe010430c       0x10 mem/mem.o
 .rodata        0xe010431c       0x71 mem/paging.o
 .rodata        0xe010438d        0x8 mem/gdt.o

.rel.dyn        0xe0104398        0x0 load address 0x00104395
 .rel.iplt      0x00000000        0x0 core/loader_.o
 .rel.text      0x00000000        0x0 core/loader_.o

.data           0xe0105000       0x24 load address 0x00105000
 *(.data)
 .data          0xe0105000        0x0 core/kmain.o
 .data          0xe0105000        0x4 core/sys.o
 .data          0xe0105004        0x4 core/monitor.o
 .data          0xe0105008        0x0 task/timer.o
 .data          0xe0105008        0x0 task/idt.o
 .data          0xe0105008        0x4 task/task.o
 .data          0xe010500c       0x18 task/syscall.o
                0xe010500c                syscalls
 .data          0xe0105024        0x0 lib/stdlib.o
 .data          0xe0105024        0x0 lib/bitset.o
 .data          0xe0105024        0x0 mem/mem.o
 .data          0xe0105024        0x0 mem/paging.o
 .data          0xe0105024        0x0 mem/gdt.o
 .data          0xe0105024        0x0 mem/heap.o
 .data          0xe0105024        0x0 mem/seg.o
 .data          0xe0105024        0x0 linker/elf.o

.igot.plt       0xe0105024        0x0 load address 0x00105024
 .igot.plt      0x00000000        0x0 core/loader_.o

.bss            0xe0105040    0x10970 load address 0x00105040
                0xe0105040                sbss = .
 *(COMMON)
 COMMON         0xe0105040      0x820 task/idt.o
                0xe0105040                idt_ptr
                0xe0105060                idt_entries
 COMMON         0xe0105860    0x10008 task/task.o
                0xe0105860                tasking_tmpStack
                0xe0115860                kernel_process
                0xe0115864                idle_thread
 COMMON         0xe0115868        0x4 mem/mem.o
                0xe0115868                mem_placementAddr
 COMMON         0xe011586c        0x8 mem/paging.o
                0xe011586c                current_pagedir
                0xe0115870                kernel_pagedir
 *(.bss)
 .bss           0xe0115874        0x0 core/kmain.o
 .bss           0xe0115874        0x0 core/sys.o
 .bss           0xe0115874        0x8 core/monitor.o
 .bss           0xe011587c        0xc task/timer.o
 *fill*         0xe0115888       0x18 00
 .bss           0xe01158a0       0x40 task/idt.o
 .bss           0xe01158e0        0xc task/task.o
                0xe01158e0                processes
                0xe01158e4                threads
                0xe01158e8                current_thread
 .bss           0xe01158ec        0x0 task/syscall.o
 .bss           0xe01158ec        0x0 lib/stdlib.o
 .bss           0xe01158ec        0x0 lib/bitset.o
 *fill*         0xe01158ec       0x14 00
 .bss           0xe0115900       0x60 mem/mem.o
                0xe0115900                freepagecount
 .bss           0xe0115960        0x8 mem/paging.o
 *fill*         0xe0115968       0x18 00
 .bss           0xe0115980       0x2e mem/gdt.o
 *fill*         0xe01159ae        0x2 00
 .bss           0xe01159b0        0x0 mem/heap.o
 .bss           0xe01159b0        0x0 mem/seg.o
 .bss           0xe01159b0        0x0 linker/elf.o
                0xe01159b0                ebss = .
                0xe01159b0                end = .
                0xe01159b0                _end = .
                0xe01159b0                __end = .
LOAD core/loader_.o
LOAD core/kmain.o
LOAD core/sys.o
LOAD core/monitor.o
LOAD task/timer.o
LOAD task/idt.o
LOAD task/idt_.o
LOAD task/task.o
LOAD task/task_.o
LOAD task/syscall.o
LOAD lib/stdlib.o
LOAD lib/bitset.o
LOAD mem/mem.o
LOAD mem/paging.o
LOAD mem/gdt.o
LOAD mem/heap.o
LOAD mem/seg.o
LOAD linker/elf.o
OUTPUT(stem.elf elf32-i386)

.comment        0x00000000       0x11
 .comment       0x00000000       0x11 core/kmain.o
                                 0x12 (size before relaxing)
 .comment       0x00000000       0x12 core/sys.o
 .comment       0x00000000       0x12 core/monitor.o
 .comment       0x00000000       0x12 task/timer.o
 .comment       0x00000000       0x12 task/idt.o
 .comment       0x00000000       0x12 task/task.o
 .comment       0x00000000       0x12 task/syscall.o
 .comment       0x00000000       0x12 lib/stdlib.o
 .comment       0x00000000       0x12 lib/bitset.o
 .comment       0x00000000       0x12 mem/mem.o
 .comment       0x00000000       0x12 mem/paging.o
 .comment       0x00000000       0x12 mem/gdt.o
 .comment       0x00000000       0x12 mem/heap.o
 .comment       0x00000000       0x12 mem/seg.o
 .comment       0x00000000       0x12 linker/elf.o

.note.GNU-stack
                0x00000000        0x0
 .note.GNU-stack
                0x00000000        0x0 core/kmain.o
 .note.GNU-stack
                0x00000000        0x0 core/sys.o
 .note.GNU-stack
                0x00000000        0x0 core/monitor.o
 .note.GNU-stack
                0x00000000        0x0 task/timer.o
 .note.GNU-stack
                0x00000000        0x0 task/idt.o
 .note.GNU-stack
                0x00000000        0x0 task/task.o
 .note.GNU-stack
                0x00000000        0x0 task/syscall.o
 .note.GNU-stack
                0x00000000        0x0 lib/stdlib.o
 .note.GNU-stack
                0x00000000        0x0 lib/bitset.o
 .note.GNU-stack
                0x00000000        0x0 mem/mem.o
 .note.GNU-stack
                0x00000000        0x0 mem/paging.o
 .note.GNU-stack
                0x00000000        0x0 mem/gdt.o
 .note.GNU-stack
                0x00000000        0x0 mem/heap.o
 .note.GNU-stack
                0x00000000        0x0 mem/seg.o
 .note.GNU-stack
                0x00000000        0x0 linker/elf.o