diff --git a/include/sys/mman.h b/include/sys/mman.h index 9bc37788..0847b36a 100644 --- a/include/sys/mman.h +++ b/include/sys/mman.h @@ -21,8 +21,7 @@ #include -#define MAP_ANON MAP_ANONYMOUS -#define MAP_FAILED (void *)-1 +#define MAP_ANON MAP_ANONYMOUS #ifdef __cplusplus @@ -39,7 +38,7 @@ extern void meminfo(meminfo_t *info); extern int syspageprog(syspageprog_t *prog, int index); -extern void *mmap(void *vaddr, size_t size, int prot, int flags, oid_t *oid, offs_t offs); +extern void *mmap(void *vaddr, size_t size, int prot, int flags, int fildes, off_t offs); extern int munmap(void *vaddr, size_t size); diff --git a/pthread/pthread.c b/pthread/pthread.c index e122e351..be28e6b2 100644 --- a/pthread/pthread.c +++ b/pthread/pthread.c @@ -237,7 +237,7 @@ int pthread_create(pthread_t *thread, const pthread_attr_t *attr, attrs = attr; void *stack = mmap(attrs->stackaddr, attrs->stacksize, - PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, NULL, 0); + PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); if (stack == MAP_FAILED || stack == NULL) return EAGAIN; diff --git a/stdio/file.c b/stdio/file.c index 84c2850c..f97f41ac 100644 --- a/stdio/file.c +++ b/stdio/file.c @@ -120,7 +120,8 @@ static void *buffAlloc(size_t size) void *ret; #ifndef NOMMU - if ((ret = mmap(NULL, (size + (_PAGE_SIZE - 1)) & ~(_PAGE_SIZE - 1), PROT_READ | PROT_WRITE, MAP_ANONYMOUS, NULL, 0)) == MAP_FAILED) { + ret = mmap(NULL, (size + (_PAGE_SIZE - 1)) & ~(_PAGE_SIZE - 1), PROT_READ | PROT_WRITE, MAP_ANONYMOUS, -1, 0); + if (ret == MAP_FAILED) { return NULL; } #else @@ -1150,7 +1151,8 @@ FILE *popen(const char *command, const char *mode) goto failed; } - if ((pf->file.buffer = mmap(NULL, BUFSIZ, PROT_READ | PROT_WRITE, MAP_ANONYMOUS, NULL, 0)) == MAP_FAILED) { + pf->file.buffer = mmap(NULL, BUFSIZ, PROT_READ | PROT_WRITE, MAP_ANONYMOUS, -1, 0); + if (pf->file.buffer == MAP_FAILED) { goto failed; } diff --git a/stdlib/malloc_dl.c b/stdlib/malloc_dl.c index 585132b9..a3ac8752 100644 --- a/stdlib/malloc_dl.c +++ b/stdlib/malloc_dl.c @@ -309,12 +309,14 @@ static heap_t *_malloc_heapAlloc(size_t size) size_t heapSize = CEIL(sizeof(heap_t) + size, _PAGE_SIZE); heap_t *heap; - if (heapSize < size) + if (heapSize < size) { return NULL; + } - heap = mmap(NULL, heapSize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, NULL, 0); - if (heap == MAP_FAILED) + heap = mmap(NULL, heapSize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + if (heap == MAP_FAILED) { return NULL; + } chunk = (chunk_t*) heap->space; diff --git a/stdlib/malloc_trivial3.c b/stdlib/malloc_trivial3.c index ecdc5c94..bb8c187b 100644 --- a/stdlib/malloc_trivial3.c +++ b/stdlib/malloc_trivial3.c @@ -57,8 +57,10 @@ static heap_t *_malloc_heapCreate(size_t size) heap_t *heap; chunk_t *chunk; - if ((heap = mmap((void *)0, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, NULL, 0)) == NULL) + heap = mmap((void *)0, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + if (heap == NULL) { return NULL; + } heap->size = size; chunk = (chunk_t *)(heap + 1);