no /* */ comments
This commit is contained in:
		
							parent
							
								
									9e9bcaf143
								
							
						
					
					
						commit
						f552738889
					
				
					 22 changed files with 347 additions and 371 deletions
				
			
		
							
								
								
									
										57
									
								
								bootmain.c
									
										
									
									
									
								
							
							
						
						
									
										57
									
								
								bootmain.c
									
										
									
									
									
								
							|  | @ -1,34 +1,31 @@ | |||
| #include "types.h" | ||||
| #include "elf.h" | ||||
| #include "x86.h" | ||||
| 
 | ||||
| /**********************************************************************
 | ||||
|  * This a dirt simple boot loader, whose sole job is to boot | ||||
|  * an elf kernel image from the first IDE hard disk. | ||||
|  * | ||||
|  * DISK LAYOUT | ||||
|  *  * This program(boot.S and main.c) is the bootloader.  It should | ||||
|  *    be stored in the first sector of the disk. | ||||
|  * | ||||
|  *  * The 2nd sector onward holds the kernel image. | ||||
|  * | ||||
|  *  * The kernel image must be in ELF format. | ||||
|  * | ||||
|  * BOOT UP STEPS | ||||
|  *  * when the CPU boots it loads the BIOS into memory and executes it | ||||
|  * | ||||
|  *  * the BIOS intializes devices, sets of the interrupt routines, and | ||||
|  *    reads the first sector of the boot device(e.g., hard-drive) | ||||
|  *    into memory and jumps to it. | ||||
|  * | ||||
|  *  * Assuming this boot loader is stored in the first sector of the | ||||
|  *    hard-drive, this code takes over... | ||||
|  * | ||||
|  *  * control starts in bootloader.S -- which sets up protected mode, | ||||
|  *    and a stack so C code then run, then calls cmain() | ||||
|  * | ||||
|  *  * cmain() in this file takes over, reads in the kernel and jumps to it. | ||||
|  **********************************************************************/ | ||||
| // This a dirt simple boot loader, whose sole job is to boot
 | ||||
| // an elf kernel image from the first IDE hard disk.
 | ||||
| //
 | ||||
| // DISK LAYOUT
 | ||||
| //  * This program(boot.S and main.c) is the bootloader.  It should
 | ||||
| //    be stored in the first sector of the disk.
 | ||||
| //
 | ||||
| //  * The 2nd sector onward holds the kernel image.
 | ||||
| //
 | ||||
| //  * The kernel image must be in ELF format.
 | ||||
| //
 | ||||
| // BOOT UP STEPS
 | ||||
| //  * when the CPU boots it loads the BIOS into memory and executes it
 | ||||
| //
 | ||||
| //  * the BIOS intializes devices, sets of the interrupt routines, and
 | ||||
| //    reads the first sector of the boot device(e.g., hard-drive)
 | ||||
| //    into memory and jumps to it.
 | ||||
| //
 | ||||
| //  * Assuming this boot loader is stored in the first sector of the
 | ||||
| //    hard-drive, this code takes over...
 | ||||
| //
 | ||||
| //  * control starts in bootloader.S -- which sets up protected mode,
 | ||||
| //    and a stack so C code then run, then calls cmain()
 | ||||
| //
 | ||||
| //  * cmain() in this file takes over, reads in the kernel and jumps to it.
 | ||||
| 
 | ||||
| #define SECTSIZE  512 | ||||
| #define ELFHDR    ((struct elfhdr*) 0x10000) // scratch space
 | ||||
|  | @ -62,7 +59,7 @@ bad: | |||
|   outw(0x8A00, 0x8A00); | ||||
|   outw(0x8A00, 0x8E00); | ||||
|   while(1) | ||||
|     /* do nothing */; | ||||
|     ; | ||||
| } | ||||
| 
 | ||||
| // Read 'count' bytes at 'offset' from kernel into virtual address 'va'.
 | ||||
|  | @ -96,7 +93,7 @@ waitdisk(void) | |||
| { | ||||
|   // wait for disk reaady
 | ||||
|   while((inb(0x1F7) & 0xC0) != 0x40) | ||||
|     /* do nothing */; | ||||
|     ; | ||||
| } | ||||
| 
 | ||||
| void | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 rsc
						rsc