X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fthreads%2Finit.c;h=8af05ece005e629237e3cd459560369e4cab4ca7;hb=926e47d289d06a6bc9ae03029199cf736a78911e;hp=a899921d953aef64ba2c88b01e8a15cece263278;hpb=97c0fe728053129a23dfc556e96fdf4000e7017f;p=pintos-anon diff --git a/src/threads/init.c b/src/threads/init.c index a899921..8af05ec 100644 --- a/src/threads/init.c +++ b/src/threads/init.c @@ -16,8 +16,8 @@ #include "threads/io.h" #include "threads/loader.h" #include "threads/malloc.h" -#include "threads/mmu.h" #include "threads/palloc.h" +#include "threads/pte.h" #include "threads/thread.h" #ifdef USERPROG #include "userprog/process.h" @@ -46,7 +46,7 @@ uint32_t *base_page_dir; bool enable_mlfqs; #ifdef FILESYS -/* -f: Format the filesystem? */ +/* -f: Format the file system? */ static bool format_filesys; #endif @@ -90,6 +90,9 @@ main (void) argv = read_command_line (); argv = parse_options (argv); + /* Set random seed if parse_options() didn't. */ + random_init (0); + /* Initialize memory system. */ palloc_init (); malloc_init (); @@ -101,9 +104,6 @@ main (void) gdt_init (); #endif - /* Set random seed if parse_options() didn't. */ - random_init (0); - /* Initialize interrupt handlers. */ intr_init (); timer_init (); @@ -119,7 +119,7 @@ main (void) timer_calibrate (); #ifdef FILESYS - /* Initialize filesystem. */ + /* Initialize file system. */ disk_init (); filesys_init (format_filesys); #endif @@ -188,7 +188,8 @@ paging_init (void) /* Store the physical address of the page directory into CR3 aka PDBR (page directory base register). This activates our new page tables immediately. See [IA32-v2a] "MOV--Move - to/from Control Registers" and [IA32-v3] 3.7.5. */ + to/from Control Registers" and [IA32-v3a] 3.7.5 "Base Address + of the Page Directory". */ asm volatile ("movl %0, %%cr3" :: "r" (vtop (base_page_dir))); } @@ -218,7 +219,10 @@ read_command_line (void) /* Print kernel command line. */ printf ("Kernel command line:"); for (i = 0; i < argc; i++) - printf (" %s", argv[i]); + if (strchr (argv[i], ' ') == NULL) + printf (" %s", argv[i]); + else + printf (" '%s'", argv[i]); printf ("\n"); return argv; @@ -253,7 +257,6 @@ parse_options (char **argv) #endif else PANIC ("unknown option `%s' (use -h for help)", name); - } return argv;