diff --git a/src/pipewire/mem.c b/src/pipewire/mem.c index 2f2a130f1..d9f65f779 100644 --- a/src/pipewire/mem.c +++ b/src/pipewire/mem.c @@ -296,6 +296,9 @@ static struct mapping * memblock_map(struct memblock *b, else fl |= MAP_SHARED; + if (flags & PW_MEMMAP_FLAG_LOCKED) + fl |= MAP_LOCKED; + if (flags & PW_MEMMAP_FLAG_TWICE) { pw_log_error(NAME" %p: implement me PW_MEMMAP_FLAG_TWICE", p); errno = ENOTSUP; diff --git a/src/pipewire/mem.h b/src/pipewire/mem.h index b1751819a..a695e9814 100644 --- a/src/pipewire/mem.h +++ b/src/pipewire/mem.h @@ -51,6 +51,7 @@ enum pw_memmap_flags { PW_MEMMAP_FLAG_TWICE = (1 << 2), /**< map the same area twice after each other, * creating a circular ringbuffer */ PW_MEMMAP_FLAG_PRIVATE = (1 << 3), /**< writes will be private */ + PW_MEMMAP_FLAG_LOCKED = (1 << 4), /**< lock the memory into RAM */ PW_MEMMAP_FLAG_READWRITE = PW_MEMMAP_FLAG_READ | PW_MEMMAP_FLAG_WRITE, };