Blender V4.3
BLI_mmap.c File Reference
#include "BLI_mmap.h"
#include "BLI_fileops.h"
#include "BLI_listbase.h"
#include "MEM_guardedalloc.h"
#include <string.h>
#include <signal.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <unistd.h>

Go to the source code of this file.

Classes

struct  BLI_mmap_file
 
struct  error_handler_data
 

Functions

static void sigbus_handler (int sig, siginfo_t *siginfo, void *ptr)
 
static bool sigbus_handler_setup (void)
 
static void sigbus_handler_add (BLI_mmap_file *file)
 
static void sigbus_handler_remove (BLI_mmap_file *file)
 
BLI_mmap_fileBLI_mmap_open (int fd)
 
bool BLI_mmap_read (BLI_mmap_file *file, void *dest, size_t offset, size_t length)
 
void * BLI_mmap_get_pointer (BLI_mmap_file *file)
 
size_t BLI_mmap_get_length (const BLI_mmap_file *file)
 
void BLI_mmap_free (BLI_mmap_file *file)
 

Variables

static struct error_handler_data error_handler = {0}
 

Function Documentation

◆ BLI_mmap_free()

void BLI_mmap_free ( BLI_mmap_file * file)

◆ BLI_mmap_get_length()

size_t BLI_mmap_get_length ( const BLI_mmap_file * file)

◆ BLI_mmap_get_pointer()

void * BLI_mmap_get_pointer ( BLI_mmap_file * file)

◆ BLI_mmap_open()

◆ BLI_mmap_read()

bool BLI_mmap_read ( BLI_mmap_file * file,
void * dest,
size_t offset,
size_t length )

Definition at line 182 of file BLI_mmap.c.

Referenced by memory_read_mmap().

◆ sigbus_handler()

static void sigbus_handler ( int sig,
siginfo_t * siginfo,
void * ptr )
static

◆ sigbus_handler_add()

static void sigbus_handler_add ( BLI_mmap_file * file)
static

Definition at line 119 of file BLI_mmap.c.

References BLI_addtail(), BLI_genericNodeN(), error_handler, and error_handler_data::open_mmaps.

Referenced by BLI_mmap_open().

◆ sigbus_handler_remove()

static void sigbus_handler_remove ( BLI_mmap_file * file)
static

Definition at line 125 of file BLI_mmap.c.

References BLI_findptr(), BLI_freelinkN(), error_handler, offsetof, and error_handler_data::open_mmaps.

Referenced by BLI_mmap_free().

◆ sigbus_handler_setup()

static bool sigbus_handler_setup ( void )
static

Variable Documentation

◆ error_handler