From fc6542266017cee03545e614a3304d78661af376 Mon Sep 17 00:00:00 2001 From: Justine Tunney Date: Fri, 5 Jul 2024 12:55:46 -0700 Subject: [PATCH] Remove __mmap() and __munmap() --- libc/intrin/maps.h | 2 -- libc/intrin/mmap.c | 6 +++--- libc/runtime/enable_tls.c | 8 ++++---- libc/runtime/zipos-mmap.c | 2 +- libc/runtime/zipos-open.c | 9 +++------ 5 files changed, 11 insertions(+), 16 deletions(-) diff --git a/libc/intrin/maps.h b/libc/intrin/maps.h index e6a56b28dd5..5b5aba76a2f 100644 --- a/libc/intrin/maps.h +++ b/libc/intrin/maps.h @@ -47,8 +47,6 @@ void __maps_unlock(void); void __maps_add(struct Map *); struct Map *__maps_alloc(void); void __maps_free(struct Map *); -int __munmap(char *, size_t, bool); -void *__mmap(char *, size_t, int, int, int, int64_t); void __maps_stack(char *, int, int, size_t, int, intptr_t); struct AddrSize __get_main_stack(void); diff --git a/libc/intrin/mmap.c b/libc/intrin/mmap.c index af9f016c828..c4229924e55 100644 --- a/libc/intrin/mmap.c +++ b/libc/intrin/mmap.c @@ -176,7 +176,7 @@ struct Map *__maps_alloc(void) { return map; } -int __munmap(char *addr, size_t size, bool untrack_only) { +static int __munmap(char *addr, size_t size, bool untrack_only) { // validate arguments int pagesz = getpagesize(); @@ -479,8 +479,8 @@ static void *__mmap_impl(char *addr, size_t size, int prot, int flags, int fd, return res; } -void *__mmap(char *addr, size_t size, int prot, int flags, int fd, - int64_t off) { +static void *__mmap(char *addr, size_t size, int prot, int flags, int fd, + int64_t off) { char *res; int pagesz = getpagesize(); int granularity = __granularity(); diff --git a/libc/runtime/enable_tls.c b/libc/runtime/enable_tls.c index d2ec8d9de1a..92807978e5c 100644 --- a/libc/runtime/enable_tls.c +++ b/libc/runtime/enable_tls.c @@ -148,8 +148,8 @@ textstartup void __enable_tls(void) { // if a binary needs this much thread_local storage, then it // surely must have linked the mmap() function at some point // we can't call mmap() because it's too early for sig block - mem = _weaken(__mmap)(0, siz, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + mem = _weaken(mmap)(0, siz, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); } struct CosmoTib *tib = (struct CosmoTib *)(mem + siz - sizeof(*tib)); @@ -176,8 +176,8 @@ textstartup void __enable_tls(void) { // if a binary needs this much thread_local storage, then it // surely must have linked the mmap() function at some point // we can't call mmap() because it's too early for sig block - mem = _weaken(__mmap)(0, size, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + mem = _weaken(mmap)(0, size, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); } struct CosmoTib *tib = diff --git a/libc/runtime/zipos-mmap.c b/libc/runtime/zipos-mmap.c index 237b9d16a49..ae355949423 100644 --- a/libc/runtime/zipos-mmap.c +++ b/libc/runtime/zipos-mmap.c @@ -77,7 +77,7 @@ void *__zipos_mmap(void *addr, size_t size, int prot, int flags, flags |= MAP_PRIVATE | MAP_ANONYMOUS; const int tempProt = !IsXnu() ? prot | PROT_WRITE : PROT_WRITE; - void *outAddr = __mmap(addr, size, tempProt, flags, -1, 0); + void *outAddr = mmap(addr, size, tempProt, flags, -1, 0); if (outAddr == MAP_FAILED) { return MAP_FAILED; } diff --git a/libc/runtime/zipos-open.c b/libc/runtime/zipos-open.c index 1bd8e568a13..5dfda7ea5b9 100644 --- a/libc/runtime/zipos-open.c +++ b/libc/runtime/zipos-open.c @@ -48,18 +48,15 @@ void __zipos_drop(struct ZiposHandle *h) { if (atomic_fetch_sub_explicit(&h->refs, 1, memory_order_release)) return; atomic_thread_fence(memory_order_acquire); - __munmap((char *)h, h->mapsize, false); + munmap((char *)h, h->mapsize); } static struct ZiposHandle *__zipos_alloc(struct Zipos *zipos, size_t size) { size_t mapsize; - int granularity; struct ZiposHandle *h; - granularity = __granularity(); mapsize = sizeof(struct ZiposHandle) + size; - mapsize = (mapsize + granularity - 1) & -granularity; - if ((h = __mmap(0, mapsize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS, -1, 0)) != MAP_FAILED) { + if ((h = mmap(0, mapsize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, + -1, 0)) != MAP_FAILED) { h->size = size; h->zipos = zipos; h->mapsize = mapsize;