增加两个函数指针类型定义

This commit is contained in:
pointer-to-bios 2024-01-14 15:45:35 +08:00
parent bdccf4add6
commit def9bc89ca
2 changed files with 7 additions and 4 deletions

View File

@ -23,6 +23,9 @@
/* 只分配不映射空间 */ /* 只分配不映射空间 */
#define MEMM_ALLOC_ONLY_MEMORY (128 * 1024 * 1024) #define MEMM_ALLOC_ONLY_MEMORY (128 * 1024 * 1024)
typedef void *(*memm_allocate_t)(void *allocator, usize size, usize align);
typedef void (*memm_free_t)(void *allocator, void *mem);
/* /*
MEMM_PAGE_SIZE对齐的 MEMM_PAGE_SIZE对齐的
@ -45,11 +48,11 @@ typedef struct __allocator_t
// 无法分配空间返回nullptr // 无法分配空间返回nullptr
// 在size参数为0时保证不可以分配空间但是如果空间已满依然返回nullptr // 在size参数为0时保证不可以分配空间但是如果空间已满依然返回nullptr
// 当参数align=0时表示不需要对齐 // 当参数align=0时表示不需要对齐
void *(*allocate)(void *allocator, usize size, usize align); memm_allocate_t allocate;
// 分配器实例的free函数 // 分配器实例的free函数
// 若不是allocate得到的地址则什么都不做 // 若不是allocate得到的地址则什么都不做
void (*free)(void *allocator, void *mem); memm_free_t free;
// 分配器实例 // 分配器实例
// 对应`type`类型使用 // 对应`type`类型使用

View File

@ -82,8 +82,8 @@ allocator_t *memm_allocator_new(void *start, usize length, usize type, usize pid
{ {
case MEMM_RAW_ALLOCATOR: case MEMM_RAW_ALLOCATOR:
raw_allocator_new((void *)allocator->allocator_instance, length - sizeof(allocator_t)); raw_allocator_new((void *)allocator->allocator_instance, length - sizeof(allocator_t));
allocator->allocate = raw_allocator_allocate; allocator->allocate = (memm_allocate_t)raw_allocator_allocate;
allocator->free = raw_allocator_free; allocator->free = (memm_free_t)raw_allocator_free;
break; break;
default: default:
allocator->initialized = false; allocator->initialized = false;