mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-18 16:26:31 +00:00
实现了rtc的抽象,并且把x86的cmos rtc接入到设备驱动模型 (#674)
* 实现了rtc的抽象,并且把x86的cmos rtc接入到设备驱动模型。
This commit is contained in:
8
kernel/crates/driver_base_macros/Cargo.toml
Normal file
8
kernel/crates/driver_base_macros/Cargo.toml
Normal file
@ -0,0 +1,8 @@
|
||||
[package]
|
||||
name = "driver_base_macros"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
20
kernel/crates/driver_base_macros/src/lib.rs
Normal file
20
kernel/crates/driver_base_macros/src/lib.rs
Normal file
@ -0,0 +1,20 @@
|
||||
#![no_std]
|
||||
|
||||
/// 获取指定字段
|
||||
///
|
||||
/// 当weak指针的strong count为0的时候,清除弱引用
|
||||
#[macro_export]
|
||||
macro_rules! get_weak_or_clear {
|
||||
($field:expr) => {{
|
||||
if let Some(x) = $field.clone() {
|
||||
if x.strong_count() == 0 {
|
||||
$field = None;
|
||||
None
|
||||
} else {
|
||||
Some(x)
|
||||
}
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}};
|
||||
}
|
Reference in New Issue
Block a user