support shared anonymous mapping

mmap(..., MAP_SHARED|MAP_ANONYMOUS, ...) is possible now.
shared mapped file is still not implemented.
This commit is contained in:
NAKAMURA Gou
2013-08-28 17:43:00 +09:00
parent 877f1be797
commit 0e0684cd1c

View File

@@ -316,6 +316,7 @@ out:
SYSCALL_DECLARE(mmap)
{
const int supported_flags = 0
| MAP_SHARED // 01
| MAP_PRIVATE // 02
| MAP_FIXED // 10
| MAP_ANONYMOUS // 20
@@ -329,7 +330,6 @@ SYSCALL_DECLARE(mmap)
| MAP_STACK // 00020000
;
const int error_flags = 0
| MAP_SHARED // 01
#ifndef USE_NOCACHE_MMAP
| MAP_32BIT // 40
#endif /* ndef USE_NOCACHE_MMAP */
@@ -410,6 +410,14 @@ SYSCALL_DECLARE(mmap)
goto out;
}
if ((flags & MAP_SHARED) && !(flags & MAP_ANONYMOUS)) {
ekprintf("sys_mmap(%lx,%lx,%x,%x,%x,%lx):NYI:shared mapped file%lx\n",
addr0, len0, prot, flags, fd, off,
(flags & ~(supported_flags | ignored_flags)));
error = -EINVAL;
goto out;
}
ihk_mc_spinlock_lock_noirq(&proc->vm->memory_range_lock);
if (flags & MAP_FIXED) {