asterinas/book/src/kernel/linux-compatibility/syscall-flag-coverage/memory-management
Ruihan Li 033c240d8f Fix madvise behavior 2025-12-29 19:43:00 +08:00
..
README.md Fix madvise behavior 2025-12-29 19:43:00 +08:00
fully_covered.scml Rename `syscall-feature-coverage` to `syscall-flag-coverage` 2025-12-04 12:51:45 +08:00
madvise.scml Fix madvise behavior 2025-12-29 19:43:00 +08:00
mmap_and_munmap.scml Drop `MAP_SYNC` support 2025-12-29 19:43:00 +08:00
mprotect.scml Rename `syscall-feature-coverage` to `syscall-flag-coverage` 2025-12-04 12:51:45 +08:00
mremap.scml Rename `syscall-feature-coverage` to `syscall-flag-coverage` 2025-12-04 12:51:45 +08:00
msync.scml Rename `syscall-feature-coverage` to `syscall-flag-coverage` 2025-12-04 12:51:45 +08:00

README.md

Memory Management

Memory Mappings

mmap and munmap

Supported functionality in SCML:

{{#include mmap_and_munmap.scml}}

Silently-ignored flags:

  • MAP_HUGETLB
  • MAP_GROWSDOWN
  • MAP_LOCKED
  • MAP_NONBLOCK
  • MAP_NORESERVE
  • MAP_POPULATE

Partially supported flags:

  • MAP_FIXED_NOREPLACE is treated as MAP_FIXED

Unsupported flags:

  • MAP_32BIT
  • MAP_HUGE_1GB
  • MAP_HUGE_2MB
  • MAP_UNINITIALIZED

For more information, see the man page.

msync

Supported functionality in SCML:

{{#include msync.scml}}

Silently-ignored flags:

  • MS_INVALIDATE is ignored because all processes use the same page cache

For more information, see the man page.

mremap

Supported functionality in SCML:

{{#include mremap.scml}}

For more information, see the man page.

mprotect

Supported functionality in SCML:

{{#include mprotect.scml}}

Silently-ignored protection flags:

  • PROT_SEM
  • PROT_SAO
  • PROT_GROWSUP
  • PROT_GROWSDOWN

For more information, see the man page.

madvise

Supported functionality in SCML:

{{#include madvise.scml}}

Silently-ignored advice:

  • MADV_NORMAL
  • MADV_RANDOM
  • MADV_SEQUENTIAL
  • MADV_WILLNEED
  • MADV_FREE
  • MADV_MERGEABLE
  • MADV_UNMERGEABLE
  • MADV_HUGEPAGE
  • MADV_NOHUGEPAGE

Unsupported advice:

  • MADV_RANDOM
  • MADV_REMOVE
  • MADV_DONTFORK
  • MADV_DOFORK
  • MADV_HWPOISON
  • MADV_UNMERGEABLE
  • MADV_SOFT_OFFLINE
  • MADV_DONTDUMP
  • MADV_DODUMP
  • MADV_FREE
  • MADV_WIPEONFORK
  • MADV_KEEPONFORK

For more information, see the man page.