#include "threads/test.h"
#include "threads/thread.h"
#ifdef USERPROG
-#include "userprog/addrspace.h"
+#include "userprog/process.h"
#include "userprog/exception.h"
#include "userprog/gdt.h"
#include "userprog/syscall.h"
/* Run a user program. */
if (initial_program != NULL)
{
+ tid_t tid;
printf ("\nExecuting '%s':\n", initial_program);
- addrspace_execute (initial_program);
+ tid = process_execute (initial_program);
+#ifdef THREAD_JOIN_IMPLEMENTED
+ if (tid != TID_ERROR)
+ thread_join (tid);
+#endif
}
#else
test ();
uint32_t *pd, *pt;
size_t page;
- pd = base_page_dir = palloc_get (PAL_ASSERT | PAL_ZERO);
+ pd = base_page_dir = palloc_get_page (PAL_ASSERT | PAL_ZERO);
pt = NULL;
for (page = 0; page < ram_pages; page++)
{
if (pd[pde_idx] == 0)
{
- pt = palloc_get (PAL_ASSERT | PAL_ZERO);
+ pt = palloc_get_page (PAL_ASSERT | PAL_ZERO);
pd[pde_idx] = pde_create (pt);
}
#endif
printf ("Powering off...\n");
+ serial_flush ();
+
for (p = s; *p != '\0'; p++)
outb (0x8900, *p);
for (;;);