|
Blender V4.5
|
#include "BLI_mmap.h"#include "BLI_fileops.h"#include "BLI_listbase.h"#include "MEM_guardedalloc.h"#include <cstring>#include <csignal>#include <cstdlib>#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 () |
| 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) |
| size_t | BLI_mmap_get_length (const BLI_mmap_file *file) |
| bool | BLI_mmap_any_io_error (const BLI_mmap_file *file) |
| void | BLI_mmap_free (BLI_mmap_file *file) |
Variables | |
| static struct error_handler_data | error_handler = {{nullptr}} |
| bool BLI_mmap_any_io_error | ( | const BLI_mmap_file * | file | ) |
Definition at line 222 of file BLI_mmap.cc.
References BLI_mmap_file::io_error.
Referenced by IMB_load_image_from_file_descriptor().
| void BLI_mmap_free | ( | BLI_mmap_file * | file | ) |
Definition at line 227 of file BLI_mmap.cc.
References BLI_mmap_file::handle, BLI_mmap_file::length, MEM_freeN(), BLI_mmap_file::memory, and sigbus_handler_remove().
Referenced by imb_load_filepath_thumbnail_webp(), IMB_load_image_from_file_descriptor(), memory_close_mmap(), and IMMapStream::~IMMapStream().
| size_t BLI_mmap_get_length | ( | const BLI_mmap_file * | file | ) |
Definition at line 217 of file BLI_mmap.cc.
References BLI_mmap_file::length.
Referenced by BLI_filereader_new_mmap(), imb_load_filepath_thumbnail_webp(), IMB_load_image_from_file_descriptor(), and IMMapStream::IMMapStream().
| void * BLI_mmap_get_pointer | ( | BLI_mmap_file * | file | ) |
Definition at line 212 of file BLI_mmap.cc.
References BLI_mmap_file::memory.
Referenced by imb_load_filepath_thumbnail_webp(), IMB_load_image_from_file_descriptor(), and IMMapStream::IMMapStream().
| BLI_mmap_file * BLI_mmap_open | ( | int | fd | ) |
Definition at line 133 of file BLI_mmap.cc.
References BLI_lseek(), BLI_mmap_file::handle, BLI_mmap_file::length, length(), MEM_callocN(), BLI_mmap_file::memory, sigbus_handler_add(), sigbus_handler_setup(), and UNLIKELY.
Referenced by BLI_filereader_new_mmap(), imb_load_filepath_thumbnail_webp(), IMB_load_image_from_file_descriptor(), and IMMapStream::IMMapStream().
| bool BLI_mmap_read | ( | BLI_mmap_file * | file, |
| void * | dest, | ||
| size_t | offset, | ||
| size_t | length ) |
Definition at line 183 of file BLI_mmap.cc.
References BLI_mmap_file::io_error, BLI_mmap_file::length, length(), and BLI_mmap_file::memory.
Referenced by memory_read_mmap().
|
static |
Definition at line 61 of file BLI_mmap.cc.
References BLI_assert, error_handler, BLI_mmap_file::io_error, BLI_mmap_file::length, LISTBASE_FOREACH, BLI_mmap_file::memory, and ptr.
Referenced by sigbus_handler_setup().
|
static |
Definition at line 119 of file BLI_mmap.cc.
References BLI_addtail(), BLI_genericNodeN(), and error_handler.
Referenced by BLI_mmap_open().
|
static |
Definition at line 125 of file BLI_mmap.cc.
References BLI_findptr(), BLI_freelinkN(), data, error_handler, and offsetof.
Referenced by BLI_mmap_free().
|
static |
Definition at line 97 of file BLI_mmap.cc.
References error_handler, and sigbus_handler().
Referenced by BLI_mmap_open().
|
static |
Referenced by sigbus_handler(), sigbus_handler_add(), sigbus_handler_remove(), and sigbus_handler_setup().