mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 20:33:10 +00:00
LibC: Add support for posix_madvise(..)
Add the `posix_madvise(..)` LibC implementation that just forwards to the normal `madvise(..)` implementation. Also define a few POSIX_MADV_DONTNEED and POSIX_MADV_NORMAL as they are part of the POSIX API for `posix_madvise(..)`. This is needed by the `fio` port.
This commit is contained in:
parent
ba9a525ba6
commit
c724955d54
|
@ -31,10 +31,20 @@ extern "C" {
|
|||
|
||||
#define MAP_FAILED ((void*)-1)
|
||||
|
||||
#define MADV_NORMAL 0x0
|
||||
#define MADV_SET_VOLATILE 0x1
|
||||
#define MADV_SET_NONVOLATILE 0x2
|
||||
#define MADV_DONTNEED 0x3
|
||||
|
||||
// https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_madvise.html
|
||||
#define POSIX_MADV_NORMAL MADV_NORMAL
|
||||
#define POSIX_MADV_DONTNEED MADV_DONTNEED
|
||||
|
||||
// Unsupported posix_madvise() advise:
|
||||
// POSIX_MADV_SEQUENTIAL
|
||||
// POSIX_MADV_RANDOM
|
||||
// POSIX_MADV_WILLNEED
|
||||
|
||||
#define MS_SYNC 1
|
||||
#define MS_ASYNC 2
|
||||
#define MS_INVALIDATE 4
|
||||
|
|
|
@ -77,6 +77,12 @@ int madvise(void* address, size_t size, int advice)
|
|||
__RETURN_WITH_ERRNO(rc, rc, -1);
|
||||
}
|
||||
|
||||
// https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_madvise.html
|
||||
int posix_madvise(void* address, size_t len, int advice)
|
||||
{
|
||||
return madvise(address, len, advice);
|
||||
}
|
||||
|
||||
void* allocate_tls(const char* initial_data, size_t size)
|
||||
{
|
||||
ptrdiff_t rc = syscall(SC_allocate_tls, initial_data, size);
|
||||
|
|
|
@ -18,6 +18,7 @@ int munmap(void*, size_t);
|
|||
int mprotect(void*, size_t, int prot);
|
||||
int set_mmap_name(void*, size_t, const char*);
|
||||
int madvise(void*, size_t, int advice);
|
||||
int posix_madvise(void*, size_t, int advice);
|
||||
void* allocate_tls(const char* initial_data, size_t);
|
||||
int mlock(const void*, size_t);
|
||||
int munlock(const void*, size_t);
|
||||
|
|
Loading…
Reference in a new issue