From 058631a374937dfed9bf0bed0ff7ac9b71991356 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Tue, 23 Feb 2021 18:12:21 +0100 Subject: update comments --- src/userprog/process.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/userprog/process.c') diff --git a/src/userprog/process.c b/src/userprog/process.c index 2b50edd..21ba48d 100644 --- a/src/userprog/process.c +++ b/src/userprog/process.c @@ -307,7 +307,7 @@ load (const char *file_name, void (**eip) (void), void **esp) unsigned argc = 0; /* Tokenize passed command in-place. */ - // esp_c still points to first character of passed command + // esp_cmd still points to first character of passed command char *token, *save_ptr; for (token = strtok_r (esp_cmd, " ", &save_ptr); token != NULL; token = strtok_r (NULL, " ", &save_ptr)) @@ -317,15 +317,15 @@ load (const char *file_name, void (**eip) (void), void **esp) file_name = esp_cmd; - /* Alignment for entries of argv. */ + /* argv entries are pointers so they need to be aligned to the pointer size. */ size_t psize = sizeof (char *); - size_t word_alignment = (cmd_len + psize) / psize; // next address to place pointer + size_t word_alignment = (cmd_len + psize) / psize; /* Write argv entries. */ char **esp_argv_entry = *esp; esp_argv_entry -= word_alignment + argc + 1; // +1 makes room for argv[argc] = NULL - char **esp_argv_first = esp_argv_entry; + char **esp_argv_first = esp_argv_entry; // save for later // esp_cmd points to first entry so write directly *esp_argv_entry = esp_cmd; @@ -334,11 +334,11 @@ load (const char *file_name, void (**eip) (void), void **esp) for (unsigned i = 0; i < argc - 1; i++) { // find next \0 in cmd while (*(++esp_cmd) != '\0') {} - *esp_argv_entry = esp_cmd + 1; + *esp_argv_entry = esp_cmd + 1; // point to next character esp_argv_entry++; } - char *** esp_argv = esp_argv_first; + char ***esp_argv = esp_argv_first; esp_argv--; *esp_argv = esp_argv_first; -- cgit v1.2.1