Fix a couple of problems with FreeLDR portability.
[reactos.git] / reactos / 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
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, 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 _hyperspace_pagetable
38 .globl _apic_pagetable
39 .globl _kpcr_pagetable
40 .globl _kuser_pagetable
41
42 .globl _PageDirectoryEnd
43
44 //
45 // Boot information structure
46 //
47
48 EXTERN(_reactos_memory_map_descriptor_size)
49 .long 0
50
51 EXTERN(_reactos_memory_map)
52 .rept (32 * /*sizeof(memory_map_t)*/24)
53 .byte 0
54 .endr
55
56 .bss
57 _PageDirectoryStart:
58 _startup_pagedirectory:
59 .fill 4096, 1, 0
60
61 _lowmem_pagetable:
62 .fill 4096, 1, 0
63
64 _kernel_pagetable:
65 .fill 2*4096, 1, 0
66
67 _hyperspace_pagetable:
68 .fill 4096, 1, 0
69
70 _apic_pagetable:
71 .fill 4096, 1, 0
72
73 _kpcr_pagetable:
74 .fill 4096, 1, 0
75
76 _kuser_pagetable:
77 .fill 4096, 1, 0
78
79 _PageDirectoryEnd: