summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bootasm.S2
-rw-r--r--bootmain.c12
-rw-r--r--mkfs.c4
3 files changed, 8 insertions, 10 deletions
diff --git a/bootasm.S b/bootasm.S
index 1b718b7..fc3ebf6 100644
--- a/bootasm.S
+++ b/bootasm.S
@@ -44,7 +44,7 @@ seta20.2:
//PAGEBREAK!
# Switch from real to protected mode, using a bootstrap GDT
# and segment translation that makes virtual addresses
- # identical to their physical addresses, so that the
+ # identical to physical addresses, so that the
# effective memory map does not change during the switch.
lgdt gdtdesc
movl %cr0, %eax
diff --git a/bootmain.c b/bootmain.c
index 5f9e51b..8ba4bd4 100644
--- a/bootmain.c
+++ b/bootmain.c
@@ -1,10 +1,9 @@
// Boot loader.
//
-// The BIOS loads boot sector (bootasm.S) from sector 0 of the disk
-// into memory and executes it. The boot sector puts the processor
-// in 32-bit mode and calls bootmain below, which loads an ELF kernel
-// image from the disk starting at sector 1 and then jumps to the
-// kernel entry routine.
+// Part of the boot sector, along with bootasm.S, which calls bootmain().
+// bootasm.S has put the processor into protected 32-bit mode.
+// bootmain() loads an ELF kernel image from the disk starting at
+// sector 1 and then jumps to the kernel entry routine.
#include "types.h"
#include "elf.h"
@@ -34,7 +33,7 @@ bootmain(void)
ph = (struct proghdr*)((uchar*)elf + elf->phoff);
eph = ph + elf->phnum;
for(; ph < eph; ph++)
- readseg(ph->va, ph->memsz, ph->offset);
+ readseg(ph->va & 0xFFFFFF, ph->memsz, ph->offset);
// Call the entry point from the ELF header.
// Does not return!
@@ -81,7 +80,6 @@ readseg(uint va, uint count, uint offset)
{
uint eva;
- va &= 0xFFFFFF;
eva = va + count;
// Round down to sector boundary.
diff --git a/mkfs.c b/mkfs.c
index 32bf4e7..4614f99 100644
--- a/mkfs.c
+++ b/mkfs.c
@@ -81,7 +81,7 @@ main(int argc, char *argv[])
usedblocks = ninodes / IPB + 3 + bitblocks;
freeblock = usedblocks;
- printf("used %d (bit %d ninode %d) free %d total %d\n", usedblocks,
+ printf("used %d (bit %d ninode %lu) free %u total %d\n", usedblocks,
bitblocks, ninodes/IPB + 1, freeblock, nblocks+usedblocks);
assert(nblocks + usedblocks == size);
@@ -229,7 +229,7 @@ balloc(int used)
for(i = 0; i < used; i++) {
buf[i/8] = buf[i/8] | (0x1 << (i%8));
}
- printf("balloc: write bitmap block at sector %d\n", ninodes/IPB + 3);
+ printf("balloc: write bitmap block at sector %lu\n", ninodes/IPB + 3);
wsect(ninodes / IPB + 3, buf);
}