NeurOX 1.0.0 dev-in-progress
Экосистема многопользовательской игры классические крестики-нолики с ИИ
Загрузка...
Поиск...
Не найдено
Файл _FXAlloc.h

Внутренний заголовочный файл модуля FXAlloc. Подробнее...

#include "FXAlloc.h"
#include <stdalign.h>
#include <stdlib.h>
Граф включаемых заголовочных файлов для _FXAlloc.h:
Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

struct  FXMemoryBlock
 Метаданные отдельного блока памяти Подробнее...
 
struct  FXGradePool
 Элемент пула потока выделяемый для градации Подробнее...
 
struct  FXThreadPool
 Пул памяти потока Подробнее...
 
struct  FXGlobalMemoryPool
 Глобальный пул памяти Подробнее...
 

Функции

void * fxalloc_proxy_alloc (size_t NBytes)
 Прокси-функция аллокации
 
void fxalloc_proxy_free (void *Ptr)
 Прокси-функция высвобождения
 
void * fxalloc_ungraded_alloc_init (size_t NBytes)
 Функция для инициализации грейдов по-умолчанию
 
void * fxalloc_shifted_speed (size_t NBytes)
 Выделение блока. Режим: скорость. Алгоритм поиска: сдвиг битов размера.
 
void * fxalloc_shifted_summary (size_t NBytes)
 Выделение блока. Режим: поверхностное профилирование. Алгоритм поиска: сдвиг битов размера.
 
void * fxalloc_shifted_full (size_t NBytes)
 Выделение блока. Режим: глубокое профилирование. Алгоритм поиска: сдвиг битов размера.
 
void * fxalloc_binary_speed (size_t NBytes)
 Выделение блока. Режим: скорость. Алгоритм поиска: бинарный поиск.
 
void * fxalloc_binary_summary (size_t NBytes)
 Выделение блока. Режим: поверхностное профилирование. Алгоритм поиска: бинарный поиск.
 
void * fxalloc_binary_full (size_t NBytes)
 Выделение блока. Режим: глубокое профилирование. Алгоритм поиска: бинарный поиск.
 
void * fxalloc_linear_speed (size_t NBytes)
 Выделение блока. Режим: скорость. Алгоритм поиска: линейный поиск.
 
void * fxalloc_linear_summary (size_t NBytes)
 Выделение блока. Режим: поверхностное профилирование. Алгоритм поиска: линейный поиск.
 
void * fxalloc_linear_full (size_t NBytes)
 Выделение блока. Режим: глубокое профилирование. Алгоритм поиска: линейный поиск.
 
void * fxfree_speed (void *Ptr)
 Возврат блока в пул. Режим: скорость
 
void * fxfree_summary (void *Ptr)
 Возврат блока в пул. Режим: поверхностное профилирование
 
void * fxfree_full (void *Ptr)
 Возврат блока в пул. Режим: глубокое профилирование
 

Переменные

TLS void *(* thread_alloc )(size_t NBytes)
 Макрос условной компиляции квалификаторов типа указателя для fxalloc и fxfree В случае если не определён данный блок кода компилируется и все вызовы происзодят через прокси функцию
 
TLS void(* thread_free )(void *Ptr)
 Указатель на активную функцию аллокации
 
TLS FXThreadPoolthread_pool
 Указатель на пул данного потока Изначально равен NULL, инициализируется при первом вызове fxalloc или fxalloc_init
 
TLS eXFAllocSearchType search_type
 Переменная хранящая тип поиска для функций выеления памяти в данном потоке При первом вызове fxalloc без предварительного вызова fxalloc_init устанавливается в FXSEARCH_SHIFTED, в противном случае определяется функцией fxalloc_init
 
TLS eFXAllocProfile thread_profile
 Текущий профиль потока FXALLOC_SPEED | FXALLOC_SUMMARY | FXALLOC_FULL.
 

Подробное описание

Внутренний заголовочный файл модуля FXAlloc.

Автор
felex67 (admin.nosp@m.@fel.nosp@m.exdev.nosp@m..ru)
Версия
1.0.0 dev-in-progress

Функции

◆ fxalloc_binary_full()

void * fxalloc_binary_full ( size_t  NBytes)

Выделение блока. Режим: глубокое профилирование. Алгоритм поиска: бинарный поиск.

◆ fxalloc_binary_speed()

void * fxalloc_binary_speed ( size_t  NBytes)

Выделение блока. Режим: скорость. Алгоритм поиска: бинарный поиск.

◆ fxalloc_binary_summary()

void * fxalloc_binary_summary ( size_t  NBytes)

Выделение блока. Режим: поверхностное профилирование. Алгоритм поиска: бинарный поиск.

◆ fxalloc_linear_full()

void * fxalloc_linear_full ( size_t  NBytes)

Выделение блока. Режим: глубокое профилирование. Алгоритм поиска: линейный поиск.

◆ fxalloc_linear_speed()

void * fxalloc_linear_speed ( size_t  NBytes)

Выделение блока. Режим: скорость. Алгоритм поиска: линейный поиск.

◆ fxalloc_linear_summary()

void * fxalloc_linear_summary ( size_t  NBytes)

Выделение блока. Режим: поверхностное профилирование. Алгоритм поиска: линейный поиск.

◆ fxalloc_proxy_alloc()

void * fxalloc_proxy_alloc ( size_t  NBytes)

Прокси-функция аллокации

Аргументы
NBytesКоличество байт
Возвращает
void*
Возвращаемые значения
!NULLУказатель на область памяти выровненный по sizeof(void*)
NULLошибка выделения памяти

◆ fxalloc_proxy_free()

void fxalloc_proxy_free ( void *  Ptr)

Прокси-функция высвобождения

Аргументы
Ptrуказатель на блок выделенный пользователю

◆ fxalloc_shifted_full()

void * fxalloc_shifted_full ( size_t  NBytes)

Выделение блока. Режим: глубокое профилирование. Алгоритм поиска: сдвиг битов размера.

◆ fxalloc_shifted_speed()

void * fxalloc_shifted_speed ( size_t  NBytes)

Выделение блока. Режим: скорость. Алгоритм поиска: сдвиг битов размера.

◆ fxalloc_shifted_summary()

void * fxalloc_shifted_summary ( size_t  NBytes)

Выделение блока. Режим: поверхностное профилирование. Алгоритм поиска: сдвиг битов размера.

◆ fxalloc_ungraded_alloc_init()

void * fxalloc_ungraded_alloc_init ( size_t  NBytes)

Функция для инициализации грейдов по-умолчанию

Аргументы
NBytes
Возвращает
void*

◆ fxfree_full()

void * fxfree_full ( void *  Ptr)

Возврат блока в пул. Режим: глубокое профилирование

◆ fxfree_speed()

void * fxfree_speed ( void *  Ptr)

Возврат блока в пул. Режим: скорость

◆ fxfree_summary()

void * fxfree_summary ( void *  Ptr)

Возврат блока в пул. Режим: поверхностное профилирование

Переменные

◆ search_type

TLS eXFAllocSearchType search_type
extern

Переменная хранящая тип поиска для функций выеления памяти в данном потоке При первом вызове fxalloc без предварительного вызова fxalloc_init устанавливается в FXSEARCH_SHIFTED, в противном случае определяется функцией fxalloc_init

◆ thread_alloc

TLS void *(* thread_alloc) (size_t NBytes) ( size_t  NBytes)
extern

Макрос условной компиляции квалификаторов типа указателя для fxalloc и fxfree В случае если не определён данный блок кода компилируется и все вызовы происзодят через прокси функцию

Указатель на активную функцию аллокации

◆ thread_free

TLS void(* thread_free) (void *Ptr) ( void *  Ptr)
extern

Указатель на активную функцию аллокации

◆ thread_pool

TLS FXThreadPool* thread_pool
extern

Указатель на пул данного потока Изначально равен NULL, инициализируется при первом вызове fxalloc или fxalloc_init

◆ thread_profile

TLS eFXAllocProfile thread_profile
extern

Текущий профиль потока FXALLOC_SPEED | FXALLOC_SUMMARY | FXALLOC_FULL.