X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fthreads%2Fpalloc.h;h=cb3b70e94c93b6642ae35b74eee636da594c2d8d;hb=bcf9f9ab10a3df0fd12e6e69944307a63967a521;hp=9bd076f4214b3f493fcbdfee955b758a5b20a221;hpb=750d21936d284127e265d050ccbce76fca1ece1a;p=pintos-anon diff --git a/src/threads/palloc.h b/src/threads/palloc.h index 9bd076f..cb3b70e 100644 --- a/src/threads/palloc.h +++ b/src/threads/palloc.h @@ -1,20 +1,20 @@ -#ifndef HEADER_PALLOC_H -#define HEADER_PALLOC_H 1 +#ifndef THREADS_PALLOC_H +#define THREADS_PALLOC_H -/* Page allocator. Hands out memory in page-size chunks. - See malloc.h for an allocator that hands out smaller - chunks. */ - -#include +#include +/* How to allocate pages. */ enum palloc_flags { PAL_ASSERT = 001, /* Panic on failure. */ - PAL_ZERO = 002 /* Zero page contents. */ + PAL_ZERO = 002, /* Zero page contents. */ + PAL_USER = 004 /* User page. */ }; -void palloc_init (uint8_t *start, uint8_t *end); -void *palloc_get (enum palloc_flags); -void palloc_free (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 *); +void palloc_free_multiple (void *, size_t page_cnt); -#endif /* palloc.h */ +#endif /* threads/palloc.h */