Blender  V3.3
Classes | Functions | Variables
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)
 
voidBLI_mmap_get_pointer (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_pointer()

void* BLI_mmap_get_pointer ( BLI_mmap_file file)

Definition at line 205 of file BLI_mmap.c.

References file.

Referenced by IMB_loadifffile(), imb_loadtilefile(), and IMMapStream::IMMapStream().

◆ BLI_mmap_open()

BLI_mmap_file* BLI_mmap_open ( int  fd)

◆ BLI_mmap_read()

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

Definition at line 178 of file BLI_mmap.c.

References dest, file, blender::math::length(), and offset.

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 118 of file BLI_mmap.c.

References BLI_addtail(), BLI_genericNodeN(), error_handler, file, 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 124 of file BLI_mmap.c.

References BLI_findptr(), BLI_freelinkN(), data, error_handler, file, 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

struct error_handler_data error_handler = {0}
static