X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fuserprog%2Fprocess.c;h=a81ca590fea187321197c699950df0e38cdbc40f;hb=09fdbd36a6d12efd53edd764f3176d3fc3bad284;hp=58e81fd173d36c5bb0282f5ef29a05cb71ef8cff;hpb=615bf3b3d2a8573ed6fb9ddc0055745e163ac999;p=pintos-anon diff --git a/src/userprog/process.c b/src/userprog/process.c index 58e81fd..a81ca59 100644 --- a/src/userprog/process.c +++ b/src/userprog/process.c @@ -71,7 +71,7 @@ execute_thread (void *filename_) arguments on the stack in the form of a `struct intr_frame', we just point the stack pointer (%esp) to our stack frame and jump to it. */ - asm ("mov %%esp, %0; jmp intr_exit" :: "g" (&if_)); + asm ("movl %0, %%esp; jmp intr_exit" :: "g" (&if_)); NOT_REACHED (); } @@ -386,8 +386,12 @@ setup_stack (void **esp) } /* Adds a mapping from user virtual address UPAGE to kernel - virtual address KPAGE to the page table. Fails if UPAGE is - already mapped or if memory allocation fails. */ + virtual address KPAGE to the page table. + UPAGE must not already be mapped. + KPAGE should probably be a page obtained from the user pool + with palloc_get_page(). + Returns true on success, false if UPAGE is already mapped or + if memory allocation fails. */ static bool install_page (void *upage, void *kpage) {