support shared anonymous mapping
mmap(..., MAP_SHARED|MAP_ANONYMOUS, ...) is possible now. shared mapped file is still not implemented.
This commit is contained in:
@@ -316,6 +316,7 @@ out:
|
|||||||
SYSCALL_DECLARE(mmap)
|
SYSCALL_DECLARE(mmap)
|
||||||
{
|
{
|
||||||
const int supported_flags = 0
|
const int supported_flags = 0
|
||||||
|
| MAP_SHARED // 01
|
||||||
| MAP_PRIVATE // 02
|
| MAP_PRIVATE // 02
|
||||||
| MAP_FIXED // 10
|
| MAP_FIXED // 10
|
||||||
| MAP_ANONYMOUS // 20
|
| MAP_ANONYMOUS // 20
|
||||||
@@ -329,7 +330,6 @@ SYSCALL_DECLARE(mmap)
|
|||||||
| MAP_STACK // 00020000
|
| MAP_STACK // 00020000
|
||||||
;
|
;
|
||||||
const int error_flags = 0
|
const int error_flags = 0
|
||||||
| MAP_SHARED // 01
|
|
||||||
#ifndef USE_NOCACHE_MMAP
|
#ifndef USE_NOCACHE_MMAP
|
||||||
| MAP_32BIT // 40
|
| MAP_32BIT // 40
|
||||||
#endif /* ndef USE_NOCACHE_MMAP */
|
#endif /* ndef USE_NOCACHE_MMAP */
|
||||||
@@ -410,6 +410,14 @@ SYSCALL_DECLARE(mmap)
|
|||||||
goto out;
|
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);
|
ihk_mc_spinlock_lock_noirq(&proc->vm->memory_range_lock);
|
||||||
|
|
||||||
if (flags & MAP_FIXED) {
|
if (flags & MAP_FIXED) {
|
||||||
|
|||||||
Reference in New Issue
Block a user