Skip to content
This repository has been archived by the owner on Jun 9, 2020. It is now read-only.

Commit

Permalink
Change the macro name PAGE_SIZE() to PAGE_SIZEOF() to avoid conflict …
Browse files Browse the repository at this point in the history
…with a system header file
  • Loading branch information
utshina committed Oct 18, 2018
1 parent 528d716 commit 5d9c216
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 16 deletions.
4 changes: 2 additions & 2 deletions include/x86/vm.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down
2 changes: 1 addition & 1 deletion src/mm/mm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
12 changes: 6 additions & 6 deletions src/mm/mmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand All @@ -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) {
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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;

Expand Down Expand Up @@ -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;
Expand Down
14 changes: 7 additions & 7 deletions src/proc/exec.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
Expand Down Expand Up @@ -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;
Expand All @@ -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);
Expand Down Expand Up @@ -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 },
};
Expand Down

0 comments on commit 5d9c216

Please sign in to comment.