Blender
V3.3
|
#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_file * | BLI_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) |
void | BLI_mmap_free (BLI_mmap_file *file) |
Variables | |
static struct error_handler_data | error_handler = {0} |
void BLI_mmap_free | ( | BLI_mmap_file * | file | ) |
Definition at line 210 of file BLI_mmap.c.
References file, MEM_freeN, and sigbus_handler_remove().
Referenced by IMB_loadifffile(), imb_loadtilefile(), memory_close_mmap(), and IMMapStream::~IMMapStream().
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_file* BLI_mmap_open | ( | int | fd | ) |
Definition at line 131 of file BLI_mmap.c.
References BLI_lseek(), file, blender::math::length(), MEM_callocN, NULL, sigbus_handler_add(), and sigbus_handler_setup().
Referenced by BLI_filereader_new_mmap(), IMB_loadifffile(), imb_loadtilefile(), and IMMapStream::IMMapStream().
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().
Definition at line 60 of file BLI_mmap.c.
References BLI_assert, error_handler, file, LISTBASE_FOREACH, error_handler_data::next_handler, error_handler_data::open_mmaps, and ptr.
Referenced by sigbus_handler_setup().
|
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().
|
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().
Definition at line 96 of file BLI_mmap.c.
References error_handler_data::configured, error_handler, error_handler_data::next_handler, and sigbus_handler().
Referenced by BLI_mmap_open().
|
static |
Referenced by sigbus_handler(), sigbus_handler_add(), sigbus_handler_remove(), and sigbus_handler_setup().