- Merge from trunk up to r45543
[reactos.git] / boot / freeldr / freeldr / arch / i386 / mb.S
1 /*
2 * FreeLoader
3 * Copyright (C) 1998-2002 Brian Palmer <brianp@sginet.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19
20 .text
21 .code16
22
23 #define ASM
24 #include <arch.h>
25 #include <multiboot.h>
26
27 /*
28 * Here we assume the kernel is loaded at 1mb
29 * This boots the kernel
30 */
31 .code32
32 .globl _PageDirectoryStart
33
34 .globl _startup_pagedirectory
35 .globl _lowmem_pagetable
36 .globl _kernel_pagetable
37 .globl _apic_pagetable
38
39 .globl _PageDirectoryEnd
40
41 //
42 // Boot information structure
43 //
44
45 EXTERN(_reactos_memory_map_descriptor_size)
46 .long 0
47
48 EXTERN(_reactos_memory_map)
49 .rept (32 * /*sizeof(memory_map_t)*/24)
50 .byte 0
51 .endr
52
53 .bss
54 _PageDirectoryStart:
55 _startup_pagedirectory:
56 .fill 4096, 1, 0
57
58 _lowmem_pagetable:
59 .fill 4096, 1, 0
60
61 _kernel_pagetable:
62 .fill 2*4096, 1, 0
63
64 _apic_pagetable:
65 .fill 4096, 1, 0
66
67 _PageDirectoryEnd: