mirror of
https://github.com/RGBCube/serenity
synced 2025-07-05 20:37:35 +00:00

This allows userspace to trigger a full (FIXME) flush of a shared file mapping to disk. We iterate over all the mapped pages in the VMObject and write them out to the underlying inode, one by one. This is rather naive, and there's lots of room for improvement. Note that shared file mappings are currently not possible since mmap() returns ENOTSUP for PROT_WRITE+MAP_SHARED. That restriction will be removed in a subsequent commit. :^)
25 lines
830 B
C
25 lines
830 B
C
/*
|
|
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <Kernel/API/POSIX/sys/mman.h>
|
|
|
|
__BEGIN_DECLS
|
|
|
|
void* mmap(void* addr, size_t, int prot, int flags, int fd, off_t);
|
|
void* mmap_with_name(void* addr, size_t, int prot, int flags, int fd, off_t, const char* name);
|
|
void* serenity_mmap(void* addr, size_t, int prot, int flags, int fd, off_t, size_t alignment, const char* name);
|
|
void* mremap(void* old_address, size_t old_size, size_t new_size, int flags);
|
|
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);
|
|
void* allocate_tls(const char* initial_data, size_t);
|
|
int mlock(const void*, size_t);
|
|
int msync(void*, size_t, int flags);
|
|
|
|
__END_DECLS
|