/* 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 ();
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
for (p = s; *p != '\0'; p++)
outb (0x8900, *p);
- asm ("cli; hlt");
+ asm volatile ("cli; hlt" : : : "memory");
printf ("still running...\n");
for (;;);
}