Fix: Magic number in stackgrowth.c

This commit is contained in:
EDiasAlberto
2024-11-26 04:54:00 +00:00
parent 3ef5264b6e
commit af7f2ba873

View File

@@ -5,14 +5,16 @@
#include "threads/vaddr.h"
#include "userprog/pagedir.h"
#define MAX_STACK_ACCESS_DIST 32
/* Validates a given address for being <=32 bytes away from the stack pointer or
above the stack */
bool needs_new_page (void *addr, void *esp)
{
return (is_user_vaddr (addr) &&
(uint32_t*)addr >= ((uint32_t*)esp - 32) &&
((PHYS_BASE - pg_round_down (addr))
<= MAX_STACK_SIZE));
(uint32_t*)addr >= ((uint32_t*)esp - MAX_STACK_ACCESS_DIST) &&
((PHYS_BASE - pg_round_down (addr))
<= MAX_STACK_SIZE));
}
/* Extends the stack by the necessary number of pages */