From 5d9c216f1a2058f8c1e65e0e0a389a28bcd6c7e1 Mon Sep 17 00:00:00 2001 From: Takahiro Shinagawa Date: Thu, 18 Oct 2018 18:40:30 +0900 Subject: [PATCH] Change the macro name PAGE_SIZE() to PAGE_SIZEOF() to avoid conflict with a system header file --- include/x86/vm.h | 4 ++-- src/mm/mm.c | 2 +- src/mm/mmap.c | 12 ++++++------ src/proc/exec.c | 14 +++++++------- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/include/x86/vm.h b/include/x86/vm.h index 79e746c5..0426cc99 100644 --- a/include/x86/vm.h +++ b/include/x86/vm.h @@ -19,12 +19,12 @@ typedef enum { } page_type_t; #define PAGE_SHIFT(page_type) (12 + (page_type) * 9) -#define PAGE_SIZE(page_type) (1ULL << PAGE_SHIFT(page_type)) +#define PAGE_SIZEOF(page_type) (1ULL << PAGE_SHIFT(page_type)) #define NR_PAGE_ENTRY 512 static inline int is_page_aligned(void *addr, page_type_t page) { - return ((uint64_t)addr & (PAGE_SIZE(page) - 1)) == 0; + return ((uint64_t)addr & (PAGE_SIZEOF(page) - 1)) == 0; } /* idt */ diff --git a/src/mm/mm.c b/src/mm/mm.c index 9332f47e..5b21335e 100644 --- a/src/mm/mm.c +++ b/src/mm/mm.c @@ -282,7 +282,7 @@ DEFINE_SYSCALL(munlock, gaddr_t, addr, size_t, length) DEFINE_SYSCALL(brk, unsigned long, brk) { uint64_t ret; - brk = roundup(brk, PAGE_SIZE(PAGE_4KB)); + brk = roundup(brk, PAGE_SIZEOF(PAGE_4KB)); pthread_rwlock_wrlock(&proc.mm->alloc_lock); if (brk < proc.mm->start_brk) { diff --git a/src/mm/mmap.c b/src/mm/mmap.c index e5f2f8a8..7854516a 100644 --- a/src/mm/mmap.c +++ b/src/mm/mmap.c @@ -28,7 +28,7 @@ init_mmap(struct mm *mm) gaddr_t alloc_region(size_t len) { - len = roundup(len, PAGE_SIZE(PAGE_4KB)); + len = roundup(len, PAGE_SIZEOF(PAGE_4KB)); proc.mm->current_mmap_top += len; return proc.mm->current_mmap_top - len; } @@ -39,7 +39,7 @@ do_munmap(gaddr_t gaddr, size_t size) if (!is_page_aligned((void*)gaddr, PAGE_4KB)) { return -LINUX_EINVAL; } - size = roundup(size, PAGE_SIZE(PAGE_4KB)); // Linux kernel also does this + size = roundup(size, PAGE_SIZEOF(PAGE_4KB)); // Linux kernel also does this struct mm_region *overlapping = find_region_range(gaddr, size, proc.mm); if (overlapping == NULL) { @@ -94,7 +94,7 @@ do_mmap(gaddr_t addr, size_t len, int d_prot, int l_prot, int l_flags, int fd, o /* the linux kernel does nothing for LINUX_MAP_STACK */ l_flags &= ~LINUX_MAP_STACK; - len = roundup(len, PAGE_SIZE(PAGE_4KB)); + len = roundup(len, PAGE_SIZEOF(PAGE_4KB)); if ((l_flags & ~(LINUX_MAP_SHARED | LINUX_MAP_PRIVATE | LINUX_MAP_FIXED | LINUX_MAP_ANON)) != 0) { warnk("unsupported mmap l_flags: 0x%x\n", l_flags); @@ -148,8 +148,8 @@ DEFINE_SYSCALL(mremap, gaddr_t, old_addr, size_t, old_size, size_t, new_size, in return -LINUX_EINVAL; /* Linux kernel also does these aligning */ - old_size = roundup(old_size, PAGE_SIZE(PAGE_4KB)); - new_size = roundup(new_size, PAGE_SIZE(PAGE_4KB)); + old_size = roundup(old_size, PAGE_SIZEOF(PAGE_4KB)); + new_size = roundup(new_size, PAGE_SIZEOF(PAGE_4KB)); gaddr_t ret = old_addr; @@ -221,7 +221,7 @@ DEFINE_SYSCALL(mprotect, gaddr_t, addr, size_t, len, int, prot) } // TODO check if user is permiited to access the addr - len = roundup(len, PAGE_SIZE(PAGE_4KB)); + len = roundup(len, PAGE_SIZEOF(PAGE_4KB)); gaddr_t end = addr + len; hv_memory_flags_t hvprot = 0; diff --git a/src/proc/exec.c b/src/proc/exec.c index 3a43dc8e..d4944a18 100644 --- a/src/proc/exec.c +++ b/src/proc/exec.c @@ -66,10 +66,10 @@ load_elf_interp(const char *path, ulong load_addr) ulong p_vaddr = p[i].p_vaddr + load_addr; - ulong mask = PAGE_SIZE(PAGE_4KB) - 1; + ulong mask = PAGE_SIZEOF(PAGE_4KB) - 1; ulong vaddr = p_vaddr & ~mask; ulong offset = p_vaddr & mask; - ulong size = roundup(p[i].p_memsz + offset, PAGE_SIZE(PAGE_4KB)); + ulong size = roundup(p[i].p_memsz + offset, PAGE_SIZEOF(PAGE_4KB)); int prot = 0; if (p[i].p_flags & PF_X) prot |= LINUX_PROT_EXEC; @@ -81,7 +81,7 @@ load_elf_interp(const char *path, ulong load_addr) copy_to_user(vaddr + offset, data + p[i].p_offset, p[i].p_filesz); - map_top = MAX(map_top, roundup(vaddr + size, PAGE_SIZE(PAGE_4KB))); + map_top = MAX(map_top, roundup(vaddr + size, PAGE_SIZEOF(PAGE_4KB))); } vmm_write_vmcs(VMCS_GUEST_RIP, load_addr + h->e_entry); @@ -128,10 +128,10 @@ load_elf(Elf64_Ehdr *ehdr, int argc, char *argv[], char **envp) ulong p_vaddr = p[i].p_vaddr + global_offset; - ulong mask = PAGE_SIZE(PAGE_4KB) - 1; + ulong mask = PAGE_SIZEOF(PAGE_4KB) - 1; ulong vaddr = p_vaddr & ~mask; ulong offset = p_vaddr & mask; - ulong size = roundup(p[i].p_memsz + offset, PAGE_SIZE(PAGE_4KB)); + ulong size = roundup(p[i].p_memsz + offset, PAGE_SIZEOF(PAGE_4KB)); int prot = 0; if (p[i].p_flags & PF_X) prot |= LINUX_PROT_EXEC; @@ -147,7 +147,7 @@ load_elf(Elf64_Ehdr *ehdr, int argc, char *argv[], char **envp) load_base = p[i].p_vaddr - p[i].p_offset + global_offset; load_base_set = true; } - map_top = MAX(map_top, roundup(vaddr + size, PAGE_SIZE(PAGE_4KB))); + map_top = MAX(map_top, roundup(vaddr + size, PAGE_SIZEOF(PAGE_4KB))); } assert(load_base_set); @@ -301,7 +301,7 @@ init_userstack(int argc, char *argv[], char **envp, uint64_t exe_base, const Elf { AT_PHDR, exe_base + ehdr->e_phoff }, { AT_PHENT, ehdr->e_phentsize }, { AT_PHNUM, ehdr->e_phnum }, - { AT_PAGESZ, PAGE_SIZE(PAGE_4KB) }, + { AT_PAGESZ, PAGE_SIZEOF(PAGE_4KB) }, { AT_RANDOM, rand_ptr }, { AT_NULL, 0 }, };