备注
AI Translation Notice
This document was automatically translated by Qwen/Qwen3-8B
model, for reference only.
Source document: kernel/libs/unified-init.md
Translation time: 2025-05-19 01:41:09
Translation model:
Qwen/Qwen3-8B
Please report issues via Community Channel
unified-init Unified Initialization Library
1. Introduction
This library is located in kernel/crates/unified-init
.
It provides unified initialization macros to register functions into a unified initialization list. It facilitates unified initialization.
It is important to note that the array of initializers is no_mangle, so its naming should follow the rules of 模块_初始化器
to prevent naming conflicts that could lead to unexpected errors.
2. Usage
use system_error::SystemError;
use unified_init::define_unified_initializer_slice;
use unified_init_macros::unified_init;
/// 初始化函数都将会被放到这个列表中
define_unified_initializer_slice!(INITIALIZER_LIST);
#[unified_init(INITIALIZER_LIST)]
fn init1() -> Result<(), SystemError> {
Ok(())
}
#[unified_init(INITIALIZER_LIST)]
fn init2() -> Result<(), SystemError> {
Ok(())
}
fn main() {
assert_eq!(INITIALIZER_LIST.len(), 2);
}
3. Development
When testing, you can write test code in main.rs
,
and then run cargo expand --bin unified-init-expand
in the current directory to see the code after the proc macro has been expanded.
4. Maintainer
Longjin longjin@DragonOS.org