1
0
mirror of https://github.com/fumiama/fumidb.git synced 2026-06-08 20:10:25 +08:00
Files
fumidb/include/page.h
源文雨 1463c1f606 add page
2022-05-01 01:19:38 +08:00

33 lines
760 B
C

#ifndef _PAGE_H_
#define _PAGE_H_
#include <stdio.h>
#ifndef PAGESZ
#define PAGESZ 4096
#endif
// 获取文件中的第一个空闲页,并将其 mmap 到内存
// 如果现有空闲均无整页,则新分配一页
// 返回:
// EOF 错误
void* alloc_page(int fd);
// 释放分配的页,将其标记为空闲以备使用
// 返回:
// EOF 错误
int free_page(int fd, void* page);
// 获取文件中的第一个满足 size 大小的块
// 返回:
// EOF 错误
void* alloc_block(int fd, size_t size);
// 释放块,并将其标记为空闲以备使用
// 值得注意的是,只有在本页最后一块
// 也被释放后,这一页才会被真正释放
// 返回:
// EOF 错误
int free_block(int fd, void* page);
#endif