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); }