extend OS-level allocation interface with malloc_dirty_pages
svn: r5517
This commit is contained in:
parent
ebb8d0f39a
commit
c8cab191a0
|
@ -24,7 +24,7 @@
|
|||
|
||||
static int page_size; /* OS page size */
|
||||
|
||||
static void *malloc_pages(size_t len, size_t alignment)
|
||||
static void *malloc_dirty_pages(size_t len, size_t alignment)
|
||||
{
|
||||
void *r;
|
||||
size_t extra = 0;
|
||||
|
@ -52,6 +52,14 @@ static void *malloc_pages(size_t len, size_t alignment)
|
|||
return r;
|
||||
}
|
||||
|
||||
static void *malloc_pages(size_t len, size_t alignment)
|
||||
{
|
||||
void *p;
|
||||
p = malloc_dirty_pages(len, alignment);
|
||||
memset(p, 0, len);
|
||||
return p;
|
||||
}
|
||||
|
||||
static void system_free_pages(void *p, size_t len)
|
||||
{
|
||||
free(p);
|
||||
|
|
|
@ -116,6 +116,8 @@ static void *malloc_pages(size_t len, size_t alignment)
|
|||
return r;
|
||||
}
|
||||
|
||||
#define malloc_dirty_pages(size,align) malloc_pages(size,align)
|
||||
|
||||
static void system_free_pages(void *p, size_t len)
|
||||
{
|
||||
if (munmap(p, len)) {
|
||||
|
|
|
@ -24,14 +24,13 @@
|
|||
# define CHECK_USED_AGAINST_MAX(x) /* empty */
|
||||
#endif
|
||||
|
||||
inline static void *malloc_pages(size_t len, size_t alignment)
|
||||
inline static void *malloc_dirty_pages(size_t len, size_t alignment)
|
||||
{
|
||||
void *p;
|
||||
|
||||
CHECK_USED_AGAINST_MAX(len);
|
||||
|
||||
p = smemalign(alignment, len);
|
||||
memset(p, 0, len);
|
||||
|
||||
ACTUALLY_ALLOCATING_PAGES(len);
|
||||
LOGICALLY_ALLOCATING_PAGES(len);
|
||||
|
@ -39,6 +38,14 @@ inline static void *malloc_pages(size_t len, size_t alignment)
|
|||
return p;
|
||||
}
|
||||
|
||||
inline static void *malloc_pages(size_t len, size_t alignment)
|
||||
{
|
||||
void *p;
|
||||
p = malloc_dirty_pages(len, alignment);
|
||||
memset(p, 0, len);
|
||||
return p;
|
||||
}
|
||||
|
||||
static void free_pages(void *p, size_t len)
|
||||
{
|
||||
free_used_pages(len);
|
||||
|
|
|
@ -67,6 +67,8 @@ static void *malloc_pages(size_t len, size_t alignment)
|
|||
PAGE_READWRITE);
|
||||
}
|
||||
|
||||
#define malloc_dirty_pages(size,align) malloc_pages(size,align)
|
||||
|
||||
static void free_pages(void *p, size_t len)
|
||||
{
|
||||
LOGICALLY_FREEING_PAGES(len);
|
||||
|
|
Loading…
Reference in New Issue
Block a user