From 993f5e77337528cafb8f5578ec7beec212e0dd0d Mon Sep 17 00:00:00 2001 From: Hubert Badocha Date: Thu, 2 Nov 2023 15:46:18 +0100 Subject: [PATCH] Adjust mmap to new interface JIRA: RTOS-665 --- include/sys/mman.h | 5 ++--- pthread/pthread.c | 2 +- stdio/file.c | 6 ++++-- stdlib/malloc_dl.c | 8 +++++--- stdlib/malloc_trivial3.c | 4 +++- 5 files changed, 15 insertions(+), 10 deletions(-) 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 1abce201..b0b0b6cb 100644 --- a/pthread/pthread.c +++ b/pthread/pthread.c @@ -220,7 +220,7 @@ int pthread_create(pthread_t *thread, const pthread_attr_t *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);