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
uint32_t offset
offset in first page with start of data
Definition: mem.h:71
enum pw_memblock_flags flags
flags used when allocating
Definition: mem.h:44
int pw_memblock_import(enum pw_memblock_flags flags, int fd, off_t offset, size_t size, struct pw_memblock **mem)
Definition: mem.c:228
pw_memblock_flags
Flags passed to pw_memblock_alloc()
Definition: mem.h:30
void pw_memblock_free(struct pw_memblock *mem)
Free a memblock.
Definition: mem.c:251
int fd
memfd if any
Definition: mem.h:45
int pw_memblock_alloc(enum pw_memblock_flags flags, size_t size, struct pw_memblock **mem)
Create a new memblock.
Definition: mem.c:152
int pw_memblock_map(struct pw_memblock *mem)
Map a memblock.
Definition: mem.c:96
off_t offset
offset of mappable memory
Definition: mem.h:46
uint32_t start
Definition: mem.h:70
void * ptr
ptr to mapped memory
Definition: mem.h:47
Memory block structure.
Definition: mem.h:43
size_t size
size of mapped memory
Definition: mem.h:48
uint32_t size
page aligned offset to map
Definition: mem.h:72
struct pw_memblock * pw_memblock_find(const void *ptr)
Find memblock for given ptr.
Definition: mem.c:271