From e6decafcf1a462c5bb410c0777a902d25c4a5014 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Thu, 6 Nov 2008 21:54:04 -0800 Subject: [PATCH] Eliminate user_page_limit global symbol. The name "user_page_limit" did not follow the naming convention, which stated that its name should start with palloc_ since it is defined in palloc.c. But it was only used in one function, so it was better off as a function parameter anyhow. Found by Godmar with his process-linker-map.pl. --- src/threads/init.c | 5 ++++- src/threads/palloc.c | 8 +++----- src/threads/palloc.h | 5 +---- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/threads/init.c b/src/threads/init.c index 60d6c46..8a03705 100644 --- a/src/threads/init.c +++ b/src/threads/init.c @@ -53,6 +53,9 @@ bool power_off_when_done; /* -r: Reboot after kernel tasks complete? */ static bool reboot_when_done; +/* -ul: Maximum number of pages to put into palloc's user pool. */ +static size_t user_page_limit = SIZE_MAX; + static void ram_init (void); static void paging_init (void); @@ -88,7 +91,7 @@ main (void) printf ("Pintos booting with %'zu kB RAM...\n", ram_pages * PGSIZE / 1024); /* Initialize memory system. */ - palloc_init (); + palloc_init (user_page_limit); malloc_init (); paging_init (); diff --git a/src/threads/palloc.c b/src/threads/palloc.c index d5d513f..b2fcafe 100644 --- a/src/threads/palloc.c +++ b/src/threads/palloc.c @@ -37,16 +37,14 @@ struct pool /* Two pools: one for kernel data, one for user pages. */ static struct pool kernel_pool, user_pool; -/* Maximum number of pages to put in user pool. */ -size_t user_page_limit = SIZE_MAX; - static void init_pool (struct pool *, void *base, size_t page_cnt, const char *name); static bool page_from_pool (const struct pool *, void *page); -/* Initializes the page allocator. */ +/* Initializes the page allocator. At most USER_PAGE_LIMIT + pages are put into the user pool. */ void -palloc_init (void) +palloc_init (size_t user_page_limit) { /* End of the kernel as recorded by the linker. See kernel.lds.S. */ diff --git a/src/threads/palloc.h b/src/threads/palloc.h index 2d41cf6..cb3b70e 100644 --- a/src/threads/palloc.h +++ b/src/threads/palloc.h @@ -11,10 +11,7 @@ enum palloc_flags PAL_USER = 004 /* User page. */ }; -/* Maximum number of pages to put in user pool. */ -extern size_t user_page_limit; - -void palloc_init (void); +void palloc_init (size_t user_page_limit); void *palloc_get_page (enum palloc_flags); void *palloc_get_multiple (enum palloc_flags, size_t page_cnt); void palloc_free_page (void *); -- 2.30.2