3个不稳定版本
0.3.0 | 2024年2月8日 |
---|---|
0.2.2 | 2023年12月7日 |
0.2.1 | 2023年11月25日 |
#610 在 操作系统 中
每月 25次下载
77KB
2K SLoC
FreeBSD内核模块接口Rust包
此存储库包含构建内核模块和安全的实现所需的一切!通过 FreeBSD-KPI-RS 包提供FreeBSD内核的绑定。
支持的FreeBSD版本
- 13.1 RELENG(RELEASE)!!!不再维护。
- 14.0 RELENG(RELEASE)<-- 当前
发布
!!! 只会积极支持FreeBSD的最新(主要)版本。一旦发布新主要版本,旧版本将自动移动到 legacy
。
例如:当前13.1。当14.0发布时,当前将变为14.0
目前无法为x.x-CURRENT或x.x-STABLE提供可用的 KPI
或 KMI
。
功能
内存分配
GLOBAL_ALLOC_DISABLED
- 禁用内核分配器的内置实现。
以下之一:GLOBAL_ALLOC_FLAG_WAITOK
- 通知malloc您的内核模块可以等待堆空间。或者:GLOBAL_ALLOC_FLAG_NOWAIT
- 通知malloc您的内核模块不应等待堆空间。GLOBAL_ALLOC_FLAG_USERESERVE
- 改变NOWAIT行为的附加功能。
应该声明上述之一。
GLOBAL_ALLOC_EXCLUDE_PANICHANDLER
- 排除默认的 \#\[panic_handler\]
GLOBAL_ALLOC_EXCLUDE_ALLOC_ERROR_HNDL
- 排除 \#\[alloc_error_handler\]
编程指南
堆
默认情况下,此包实现了常见的 GlobalAllocator``. 建议不要使用它,并从 use 它和调用 macro 从
global_alloc.rs来实现自己的. 此外, 此 crate 应该编译设置功能
GLOBAL_ALLOC_DISABLED`。
不幸的是,默认情况下需要GlobalAllocator。
默认的 panic_handler
和 alloc_error_handler
作为GlobalAllocator的一部分包含在内。两者都可以通过包含功能 GLOBAL_ALLOC_EXCLUDE_PANICHANDLER
GLOBAL_ALLOC_EXCLUDE_ALLOC_ERROR_HNDL
来覆盖。
可以使用 heap_alloc/alloc.rs
中的宏声明自定义的 malloc
实例。
请求
todo
依赖项
~3.5MB
~65K SLoC