X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fthreads%2Finit.c;h=5893ce970b21fe12f707e4c3be55767e31c0034f;hb=53a7f5d0952a4595f252247f5ee3d017468eb57e;hp=2931704120c67bf39441ce56aa469a128b556e39;hpb=d4c30c6a386fe850e7eed1025e459fbc82a0b6e2;p=pintos-anon diff --git a/src/threads/init.c b/src/threads/init.c index 2931704..5893ce9 100644 --- a/src/threads/init.c +++ b/src/threads/init.c @@ -71,23 +71,17 @@ main (void) /* Clear BSS and get machine's RAM size. */ ram_init (); - /* Initialize ourselves as a thread so we can use locks. */ - thread_init (); - - /* Initialize the console so we can use printf(). */ - vga_init (); - serial_init_poll (); - console_init (); - - /* Greet user. */ - printf ("Pintos booting with %'zu kB RAM...\n", ram_pages * PGSIZE / 1024); - /* Break command line into arguments and parse options. */ argv = read_command_line (); argv = parse_options (argv); - /* Set random seed if parse_options() didn't. */ - random_init (0); + /* Initialize ourselves as a thread so we can use locks, + then enable console locking. */ + thread_init (); + console_init (); + + /* Greet user. */ + printf ("Pintos booting with %'zu kB RAM...\n", ram_pages * PGSIZE / 1024); /* Initialize memory system. */ palloc_init (); @@ -189,7 +183,7 @@ paging_init (void) new page tables immediately. See [IA32-v2a] "MOV--Move 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))); + asm volatile ("movl %0, %%cr3" : : "r" (vtop (base_page_dir))); } /* Breaks the kernel command line into words and returns them as @@ -382,7 +376,7 @@ power_off (void) for (p = s; *p != '\0'; p++) outb (0x8900, *p); - asm ("cli; hlt"); + asm volatile ("cli; hlt" : : : "memory"); printf ("still running...\n"); for (;;); }