um: add mmap/mremap OS calls
For the upcoming shared-memory time-travel external optimisations, we need to be able to mmap/mremap. Add the necessary OS calls. Link: https://patch.msgid.link/20240702192118.ca4472963638.Ic2da1d3a983fe57340c1b693badfa9c5bd2d8c61@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
5cde6096a4
commit
e20f9b3c59
2 changed files with 25 additions and 0 deletions
|
@ -181,6 +181,8 @@ extern int os_eventfd(unsigned int initval, int flags);
|
|||
extern int os_sendmsg_fds(int fd, const void *buf, unsigned int len,
|
||||
const int *fds, unsigned int fds_num);
|
||||
int os_poll(unsigned int n, const int *fds);
|
||||
void *os_mmap_rw_shared(int fd, size_t size);
|
||||
void *os_mremap_rw_shared(void *old_addr, size_t old_size, size_t new_size);
|
||||
|
||||
/* start_up.c */
|
||||
extern void os_early_checks(void);
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <sys/stat.h>
|
||||
#include <sys/sysmacros.h>
|
||||
#include <sys/un.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/eventfd.h>
|
||||
#include <poll.h>
|
||||
|
@ -718,3 +719,25 @@ int os_poll(unsigned int n, const int *fds)
|
|||
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
void *os_mmap_rw_shared(int fd, size_t size)
|
||||
{
|
||||
void *res = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
|
||||
|
||||
if (res == MAP_FAILED)
|
||||
return NULL;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
void *os_mremap_rw_shared(void *old_addr, size_t old_size, size_t new_size)
|
||||
{
|
||||
void *res;
|
||||
|
||||
res = mremap(old_addr, old_size, new_size, MREMAP_MAYMOVE, NULL);
|
||||
|
||||
if (res == MAP_FAILED)
|
||||
return NULL;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue