xref: /DragonOS/kernel/crates/driver_base_macros/src/lib.rs (revision 4b0170bd6bb374d0e9699a0076cc23b976ad6db7)
1 #![no_std]
2 
3 /// 获取指定字段
4 ///
5 /// 当weak指针的strong count为0的时候,清除弱引用
6 #[macro_export]
7 macro_rules! get_weak_or_clear {
8     ($field:expr) => {{
9         if let Some(x) = $field.clone() {
10             if x.strong_count() == 0 {
11                 $field = None;
12                 None
13             } else {
14                 Some(x)
15             }
16         } else {
17             None
18         }
19     }};
20 }
21