mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 22:22:45 +00:00 
			
		
		
		
	 32aa37d5dc
			
		
	
	
		32aa37d5dc
		
	
	
	
	
		
			
			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
 |