Skip to content

Commit

Permalink
Remove __mmap() and __munmap()
Browse files Browse the repository at this point in the history
  • Loading branch information
jart committed Jul 5, 2024
1 parent 01587de commit fc65422
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 16 deletions.
2 changes: 0 additions & 2 deletions libc/intrin/maps.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
6 changes: 3 additions & 3 deletions libc/intrin/mmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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();
Expand Down
8 changes: 4 additions & 4 deletions libc/runtime/enable_tls.c
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand All @@ -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 =
Expand Down
2 changes: 1 addition & 1 deletion libc/runtime/zipos-mmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
9 changes: 3 additions & 6 deletions libc/runtime/zipos-open.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit fc65422

Please sign in to comment.