add ihk_mc_allocate_aligned_pages()

This commit is contained in:
NAKAMURA Gou
2013-07-10 12:52:46 +09:00
parent 63d97642d5
commit 630170fb6a
6 changed files with 44 additions and 18 deletions

View File

@@ -16,10 +16,12 @@
#define PAGE_SHIFT 12
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~((unsigned long)PAGE_SIZE - 1))
#define PAGE_P2ALIGN 0
#define LARGE_PAGE_SHIFT 21
#define LARGE_PAGE_SIZE (1UL << LARGE_PAGE_SHIFT)
#define LARGE_PAGE_MASK (~((unsigned long)LARGE_PAGE_SIZE - 1))
#define LARGE_PAGE_P2ALIGN (LARGE_PAGE_SHIFT - PAGE_SHIFT)
#define USER_END 0x0000800000000000UL
#define MAP_ST_START 0xffff800000000000UL

View File

@@ -35,7 +35,7 @@ void *early_alloc_page(void)
void *arch_alloc_page(enum ihk_mc_ap_flag flag)
{
if (pa_ops)
return pa_ops->alloc_page(1, flag);
return pa_ops->alloc_page(1, PAGE_P2ALIGN, flag);
else
return early_alloc_page();
}
@@ -45,14 +45,19 @@ void arch_free_page(void *ptr)
pa_ops->free_page(ptr, 1);
}
void *ihk_mc_alloc_pages(int npages, enum ihk_mc_ap_flag flag)
void *ihk_mc_alloc_aligned_pages(int npages, int p2align, enum ihk_mc_ap_flag flag)
{
if (pa_ops)
return pa_ops->alloc_page(npages, flag);
return pa_ops->alloc_page(npages, p2align, flag);
else
return NULL;
}
void *ihk_mc_alloc_pages(int npages, enum ihk_mc_ap_flag flag)
{
return ihk_mc_alloc_aligned_pages(npages, PAGE_P2ALIGN, flag);
}
void ihk_mc_free_pages(void *p, int npages)
{
if (pa_ops)