Go to the documentation of this file.
20 #ifndef __PIPEWIRE_MEM_H__
21 #define __PIPEWIRE_MEM_H__
23 #include <spa/utils/defs.h>
39 #define PW_MEMBLOCK_FLAG_MAP_READWRITE (PW_MEMBLOCK_FLAG_MAP_READ | PW_MEMBLOCK_FLAG_MAP_WRITE)
56 int fd, off_t offset,
size_t size,
75 #define PW_MAP_RANGE_INIT (struct pw_map_range){ 0, }
79 static inline void pw_map_range_init(
struct pw_map_range *range,
80 uint32_t offset, uint32_t size,
83 range->
offset = SPA_ROUND_DOWN_N(offset, page_size);
parameters to map a memory range
Definition: mem.h:69
SPA_EXPORT int pw_memblock_import(enum pw_memblock_flags flags, int fd, off_t offset, size_t size, struct pw_memblock **mem)
Definition: mem.c:231
struct spa_list link
Definition: mem.c:84
#define MFD_CLOEXEC
Definition: mem.c:59
SPA_EXPORT int pw_memblock_map(struct pw_memblock *mem)
Map a memblock.
Definition: mem.c:97
#define PW_MEMBLOCK_FLAG_MAP_READWRITE
Definition: mem.h:39
uint32_t start
Definition: mem.h:70
#define MFD_ALLOW_SEALING
Definition: mem.c:63
struct pw_memblock * pw_memblock_find(const void *ptr)
Find memblock for given ptr.
Definition: mem.c:276
SPA_EXPORT int pw_memblock_alloc(enum pw_memblock_flags flags, size_t size, struct pw_memblock **mem)
Create a new memblock.
Definition: mem.c:154
pw_memblock_flags
Flags passed to pw_memblock_alloc()
Definition: mem.h:30
size_t size
size of mapped memory
Definition: mem.h:48
enum pw_memblock_flags flags
flags used when allocating
Definition: mem.h:44
uint32_t offset
offset in first page with start of data
Definition: mem.h:71
struct pw_memblock mem
Definition: mem.c:83
#define F_SEAL_GROW
Definition: mem.c:78
off_t offset
offset of mappable memory
Definition: mem.h:46
int fd
memfd if any
Definition: mem.h:45
uint32_t size
page aligned offset to map
Definition: mem.h:72
void * ptr
ptr to mapped memory
Definition: mem.h:47
#define F_ADD_SEALS
Definition: mem.c:73
SPA_EXPORT void pw_memblock_free(struct pw_memblock *mem)
Free a memblock.
Definition: mem.c:255
#define F_SEAL_SEAL
Definition: mem.c:76
#define F_SEAL_SHRINK
Definition: mem.c:77
int pw_memblock_import(enum pw_memblock_flags flags, int fd, off_t offset, size_t size, struct pw_memblock **mem)
Definition: mem.c:231
void pw_log_error(const char *format,...)
SPA_EXPORT struct pw_memblock * pw_memblock_find(const void *ptr)
Find memblock for given ptr.
Definition: mem.c:276
void pw_log_warn(const char *format,...)
void pw_log_debug(const char *format,...)