diff --git a/userprog/populate_stack.c b/userprog/populate_stack.c index 00092b3a5162f8c83bebe564f56887f96f20a299..be08f793c1a601c756e2553be25ad4d33218f4a6 100644 --- a/userprog/populate_stack.c +++ b/userprog/populate_stack.c @@ -1,3 +1,11 @@ +/* + * populates_stack.c --implements function for populating the program stack + * + * + * Authored by Alex Stratford + */ + +#include "threads/vaddr.h" #include "userprog/argument_parsing.h" @@ -40,6 +48,7 @@ void populate_stack(void* stackPointer, int argc, char** argv) { (*(int *)(*stackPointer)) = 0; } +// Adds the move value to the stack pointer int move_stack_pointer(void* stackPointer, int moveValue) { *stackPointer = *stackPointer + moveValue; return *stackPointer; diff --git a/userprog/process.c b/userprog/process.c index d44ae7a436d9bd1deea19aadb0146715e243eb0d..668584f6734ddea0e1951e4b6f6f65ac7881e432 100644 --- a/userprog/process.c +++ b/userprog/process.c @@ -456,6 +456,7 @@ setup_stack (void **initialStackPointer, char **argv, int argc) success = install_page (((uint8_t *) PHYS_BASE) - PGSIZE, kpage, true); if (success) { *initialStackPointer = PHYS_BASE - 12; + arr[] } else palloc_free_page (kpage); }