/DragonOS/kernel/crates/intertrait/src/ |
H A D | lib.rs | 66 any::{Any, TypeId}, 85 pub type BoxedCaster = Box<dyn Any + Send + Sync>; 166 fn cast_arc_panic<T: ?Sized + 'static>(_: Arc<dyn Any + Sync + Send>) -> Arc<T> { in cast_arc_panic() 180 pub cast_ref: fn(from: &dyn Any) -> &T, 184 pub cast_mut: fn(from: &mut dyn Any) -> &mut T, 188 pub cast_box: fn(from: Box<dyn Any>) -> Box<T>, 192 pub cast_rc: fn(from: Rc<dyn Any>) -> Rc<T>, 196 pub cast_arc: fn(from: Arc<dyn Any + Sync + Send + 'static>) -> Arc<T>, 201 cast_ref: fn(from: &dyn Any) -> &T, in new() 202 cast_mut: fn(from: &mut dyn Any) -> &mut T, in new() [all …]
|
/DragonOS/kernel/src/libs/ |
H A D | casting.rs | 19 use core::any::Any; 56 pub trait DowncastArc: Any + Send + Sync { 58 fn as_any_arc(self: Arc<Self>) -> Arc<dyn Any>; in as_any_arc() argument 65 fn downcast_arc<T: Any + Send + Sync>(self: Arc<Self>) -> Option<Arc<T>> { in downcast_arc() 66 let x: Arc<dyn Any> = self.as_any_arc(); in downcast_arc()
|
/DragonOS/docs/kernel/core_api/ |
H A D | casting.md | 44 …现`DowncastArc`trait。这个trait定义在`kernel/src/libs/casting.rs`中。它要求`trait U`实现`Any + Sync + Send`trait. 46   为`trait U: Any + Send + Sync`实现`DowncastArc`trait,需要这样做: 50 fn as_any_arc(self: Arc<Self>) -> Arc<dyn Any> {
|
/DragonOS/kernel/src/net/socket/ |
H A D | unix.rs | 117 fn as_any_ref(&self) -> &dyn core::any::Any { in as_any_ref() argument 121 fn as_any_mut(&mut self) -> &mut dyn core::any::Any { in as_any_mut() argument 232 fn as_any_ref(&self) -> &dyn core::any::Any { in as_any_ref() argument 236 fn as_any_mut(&mut self) -> &mut dyn core::any::Any { in as_any_mut() argument
|
H A D | mod.rs | 1 use core::{any::Any, fmt::Debug, sync::atomic::AtomicUsize}; 97 pub trait Socket: Sync + Send + Debug + Any { 241 fn as_any_ref(&self) -> &dyn Any; in as_any_ref() argument 243 fn as_any_mut(&mut self) -> &mut dyn Any; in as_any_mut() argument 381 fn as_any_ref(&self) -> &dyn Any { in as_any_ref() argument
|
H A D | inet.rs | 230 fn as_any_ref(&self) -> &dyn core::any::Any { in as_any_ref() argument 234 fn as_any_mut(&mut self) -> &mut dyn core::any::Any { in as_any_mut() argument 477 fn as_any_ref(&self) -> &dyn core::any::Any { in as_any_ref() argument 481 fn as_any_mut(&mut self) -> &mut dyn core::any::Any { in as_any_mut() argument 1005 fn as_any_ref(&self) -> &dyn core::any::Any { in as_any_ref() argument 1009 fn as_any_mut(&mut self) -> &mut dyn core::any::Any { in as_any_mut() argument
|
/DragonOS/kernel/src/exception/ |
H A D | msi.rs | 1 use core::{any::Any, fmt::Debug}; 135 pub trait MsiDescFuncData: Send + Sync + Any {}
|
H A D | irqchip.rs | 1 use core::{any::Any, fmt::Debug, intrinsics::unlikely}; 39 pub trait IrqChip: Sync + Send + Any + Debug { 231 pub trait IrqChipData: Sync + Send + Any + Debug { 232 fn as_any_ref(&self) -> &dyn Any; in as_any_ref() argument 304 pub trait IrqChipGenericPrivateData: Sync + Send + Any + Debug {}
|
H A D | irqdesc.rs | 2 any::Any, 46 pub trait IrqFlowHandler: Debug + Send + Sync + Any { 51 pub trait IrqHandler: Debug + Send + Sync + Any { 553 fn as_any_ref(&self) -> &dyn Any { in as_any_ref() argument
|
/DragonOS/kernel/src/driver/base/ |
H A D | kobject.rs | 1 use core::{any::Any, fmt::Debug, hash::Hash, ops::Deref}; 26 pub trait KObject: Any + Send + Sync + Debug + CastFromSync { 27 fn as_any_ref(&self) -> &dyn core::any::Any; in as_any_ref() argument 72 fn as_any_arc(self: Arc<Self>) -> Arc<dyn Any> { in as_any_arc() argument
|
H A D | cpu.rs | 1 use core::any::Any; 196 fn as_any_ref(&self) -> &dyn Any { in as_any_ref() argument
|
/DragonOS/kernel/src/filesystem/vfs/ |
H A D | mod.rs | 9 use ::core::{any::Any, fmt::Debug, sync::atomic::AtomicUsize}; 127 pub trait IndexNode: Any + Sync + Send + Debug + CastFromSync { 372 fn as_any_ref(&self) -> &dyn Any; in as_any_ref() argument 576 fn as_any_arc(self: Arc<Self>) -> Arc<dyn Any> { in as_any_arc() argument 808 pub trait FileSystem: Any + Sync + Send + Debug { 817 fn as_any_ref(&self) -> &dyn Any; in as_any_ref() argument 844 fn as_any_arc(self: Arc<Self>) -> Arc<dyn Any> { in as_any_arc() argument
|
H A D | mount.rs | 2 any::Any, 287 fn as_any_ref(&self) -> &dyn core::any::Any { in as_any_ref() argument 528 fn as_any_ref(&self) -> &dyn Any { in as_any_ref() argument
|
/DragonOS/docs/kernel/filesystem/ |
H A D | sysfs.md | 29 pub trait Device: Any + Send + Sync + Debug {} 47 pub trait Driver: Any + Send + Sync + Debug {}
|
/DragonOS/kernel/crates/intertrait/ |
H A D | README.md | 12 In Rust, a trait object for a sub-trait of [`std::any::Any`] can be downcast to a concrete type at … 122 `std::sync::Arc` is unique in that it implements `downcast` method only on `dyn Any + Send + Sync +… 134 First of all, [`CastFrom`] trait makes it possible to retrieve an object of [`std::any::Any`] 138 for [`std::any::Any`] back to its concrete type and then creating a trait object for the target tra…
|
/DragonOS/kernel/src/driver/pci/ |
H A D | raw_device.rs | 1 use core::any::Any; 152 fn as_any_ref(&self) -> &dyn Any { in as_any_ref() argument
|
/DragonOS/kernel/src/driver/pci/test/ |
H A D | pt_device.rs | 1 use core::any::Any; 144 fn as_any_ref(&self) -> &dyn Any { in as_any_ref() argument
|
/DragonOS/kernel/src/filesystem/ |
H A D | eventfd.rs | 14 use core::any::Any; 232 fn as_any_ref(&self) -> &dyn Any { in as_any_ref() argument
|
/DragonOS/kernel/src/filesystem/devpts/ |
H A D | mod.rs | 79 fn as_any_ref(&self) -> &dyn core::any::Any { in as_any_ref() argument 190 fn as_any_ref(&self) -> &dyn core::any::Any { in as_any_ref() argument
|
/DragonOS/kernel/src/driver/block/ |
H A D | virtio_blk.rs | 1 use core::{any::Any, fmt::Debug}; 263 fn as_any_ref(&self) -> &dyn Any { in as_any_ref() argument 413 fn as_any_ref(&self) -> &dyn Any { in as_any_ref() argument 600 fn as_any_ref(&self) -> &dyn Any { in as_any_ref() argument
|
/DragonOS/kernel/src/arch/x86_64/driver/ |
H A D | rtc.rs | 1 use core::any::Any; 177 fn as_any_ref(&self) -> &dyn Any { in as_any_ref() argument
|
/DragonOS/kernel/src/driver/serial/serial8250/ |
H A D | mod.rs | 2 any::Any, 264 fn as_any_ref(&self) -> &dyn Any { in as_any_ref() argument 467 fn as_any_ref(&self) -> &dyn core::any::Any { in as_any_ref() argument
|
/DragonOS/kernel/src/filesystem/devfs/ |
H A D | null_dev.rs | 71 fn as_any_ref(&self) -> &dyn core::any::Any { in as_any_ref() argument
|
H A D | zero_dev.rs | 71 fn as_any_ref(&self) -> &dyn core::any::Any { in as_any_ref() argument
|
/DragonOS/kernel/src/driver/disk/ahci/ |
H A D | ahci_inode.rs | 76 fn as_any_ref(&self) -> &dyn core::any::Any { in as_any_ref() argument
|