|
LAMMP 4.2.0
Lamina High-Precision Arithmetic Library
|
tmp_alloc.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:结构体 | |
| struct | lmmp_alloc_marker |
| struct | lmmp_memory_ctx |
| Copyright (C) 2026 HJimmyK(Jericho Knox) 更多... | |
宏定义 | |
| #define | ALLOC_TYPE(n, type) ((type*)lmmp_alloc((size_t)(n) * sizeof(type))) |
| #define | BALLOC_TYPE(n, type) ((type*)TEMP_BALLOC((n) * sizeof(type))) |
| #define | HSIZE sizeof(void*) |
| #define | REALLOC_TYPE(p, new_size, type) ((type*)lmmp_realloc((p), (new_size) * sizeof(type))) |
| #define | SALLOC_TYPE(n, type) ((type*)TEMP_SALLOC((n) * sizeof(type))) |
| #define | TALLOC_TYPE(n, type) ((type*)TEMP_TALLOC((n) * sizeof(type))) |
| #define | TEMP_B_DECL TEMP_DECL |
| #define | TEMP_B_FREE |
| #define | TEMP_BALLOC(n) lmmp_temp_pool_alloc_(&__lmmp_marker_, (n)) |
| #define | TEMP_DECL lmmp_alloc_marker __lmmp_marker_ = {NULL, NULL, NULL} |
| #define | TEMP_FREE |
| #define | TEMP_S_DECL TEMP_DECL |
| #define | TEMP_S_FREE |
| #define | TEMP_SALLOC(n) lmmp_temp_stack_alloc_(&__lmmp_marker_, (n)) |
| #define | TEMP_SALLOC_THRESHOLD 0x7f00 |
| #define | TEMP_TALLOC(n) ((n) <= TEMP_SALLOC_THRESHOLD ? TEMP_SALLOC(n) : TEMP_BALLOC(n)) |
函数 | |
| static void * | lmmp_temp_heap_alloc_ (lmmp_alloc_marker *pmarker, size_t size) |
| static void | lmmp_temp_heap_free_ (lmmp_alloc_marker *pmarker) |
| static void * | lmmp_temp_pool_alloc_ (lmmp_alloc_marker *pmarker, size_t size) |
| static void | lmmp_temp_pool_free_ (lmmp_alloc_marker *pmarker) |
| static void * | lmmp_temp_stack_alloc_ (lmmp_alloc_marker *pmarker, size_t size) |
| static void | lmmp_temp_stack_free_ (lmmp_alloc_marker *pmarker) |
变量 | |
| _Thread_local lmmp_heap_allocator_t | global_heap |
| _Thread_local lmmp_memory_ctx | lmmp_tmpmem_ctx |
| struct lmmp_alloc_marker |
在文件 tmp_alloc.h 第 35 行定义.
lmmp_alloc_marker 的协作图:| 成员变量 | ||
|---|---|---|
| void * | heap_marker | |
| void * | pool_marker | |
| void * | stack_marker | |
| struct lmmp_memory_ctx |
Copyright (C) 2026 HJimmyK(Jericho Knox)
This file is part of LAMMP.
LAMMP is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License (LGPL) as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This program is distributed WITHOUT ANY WARRANTY.
See https://www.gnu.org/licenses/.
在文件 tmp_alloc.h 第 22 行定义.
lmmp_memory_ctx 的协作图:| 成员变量 | ||
|---|---|---|
| size_t | capacity | |
| void * | pool_begin | |
| void * | pool_top | |
| size_t | remain | |
| void * | stack_begin | |
| void * | stack_end | |
| void * | stack_top | |
在文件 tmp_alloc.h 第 173 行定义.
在文件 tmp_alloc.h 第 146 行定义.
在文件 tmp_alloc.h 第 175 行定义.
在文件 tmp_alloc.h 第 144 行定义.
在文件 tmp_alloc.h 第 148 行定义.
在文件 tmp_alloc.h 第 132 行定义.
| #define TEMP_B_FREE |
| #define TEMP_BALLOC | ( | n | ) | lmmp_temp_pool_alloc_(&__lmmp_marker_, (n)) |
在文件 tmp_alloc.h 第 140 行定义.
| #define TEMP_DECL lmmp_alloc_marker __lmmp_marker_ = {NULL, NULL, NULL} |
在文件 tmp_alloc.h 第 131 行定义.
| #define TEMP_FREE |
在文件 tmp_alloc.h 第 133 行定义.
| #define TEMP_S_FREE |
| #define TEMP_SALLOC | ( | n | ) | lmmp_temp_stack_alloc_(&__lmmp_marker_, (n)) |
在文件 tmp_alloc.h 第 138 行定义.
| #define TEMP_SALLOC_THRESHOLD 0x7f00 |
在文件 tmp_alloc.h 第 135 行定义.
| #define TEMP_TALLOC | ( | n | ) | ((n) <= TEMP_SALLOC_THRESHOLD ? TEMP_SALLOC(n) : TEMP_BALLOC(n)) |
在文件 tmp_alloc.h 第 142 行定义.
|
inlinestatic |
在文件 tmp_alloc.h 第 41 行定义.
引用了 lmmp_heap_allocator_t::alloc, global_heap, HSIZE, LAMMP_ERROR_MEMORY_ALLOC_FAILURE, LAMMP_MAX_ALIGN, lmmp_abort(), LMMP_ROUND_UP_MULTIPLE , 以及 n.
被这些函数引用 lmmp_temp_pool_alloc_().
函数调用图:
这是这个函数的调用关系图:
|
inlinestatic |
在文件 tmp_alloc.h 第 65 行定义.
引用了 lmmp_heap_allocator_t::free, global_heap , 以及 n.
|
inlinestatic |
在文件 tmp_alloc.h 第 106 行定义.
引用了 LAMMP_MAX_ALIGN, LMMP_ROUND_UP_MULTIPLE, lmmp_temp_heap_alloc_(), lmmp_tmpmem_ctx, n, lmmp_memory_ctx::pool_top , 以及 lmmp_memory_ctx::remain.
函数调用图:
|
inlinestatic |
在文件 tmp_alloc.h 第 123 行定义.
引用了 lmmp_tmpmem_ctx, n, lmmp_memory_ctx::pool_top , 以及 lmmp_memory_ctx::remain.
|
inlinestatic |
在文件 tmp_alloc.h 第 76 行定义.
引用了 LAMMP_ERROR_MEMORY_ALLOC_FAILURE, LAMMP_MAX_ALIGN, lmmp_abort(), LMMP_ROUND_UP_MULTIPLE, lmmp_tmpmem_ctx, n, lmmp_memory_ctx::stack_end , 以及 lmmp_memory_ctx::stack_top.
函数调用图:
|
inlinestatic |
在文件 tmp_alloc.h 第 101 行定义.
引用了 lmmp_tmpmem_ctx, n , 以及 lmmp_memory_ctx::stack_top.
|
extern |
被这些函数引用 lmmp_set_heap_allocator(), lmmp_temp_heap_alloc_() , 以及 lmmp_temp_heap_free_().
|
extern |
被这些函数引用 lmmp_leak_tracker(), lmmp_stack_deinit(), lmmp_stack_init(), lmmp_temp_pool_alloc_(), lmmp_temp_pool_free_(), lmmp_temp_stack_alloc_() , 以及 lmmp_temp_stack_free_().