Home
last modified time | relevance | path

Searched refs:SpinLockGuard (Results 1 – 25 of 78) sorted by relevance

1234

/DragonOS/kernel/src/libs/
H A Dspinlock.rs27 pub struct SpinLockGuard<'a, T: 'a> { struct
34 impl<'a, T: 'a> SpinLockGuard<'a, T> { implementation
71 pub fn lock(&self) -> SpinLockGuard<T> { in lock()
83 pub fn lock_no_preempt(&self) -> SpinLockGuard<T> { in lock_no_preempt()
92 pub fn lock_irqsave(&self) -> SpinLockGuard<T> { in lock_irqsave()
101 pub fn try_lock(&self) -> Result<SpinLockGuard<T>, SystemError> { in try_lock()
106 return Ok(SpinLockGuard { in try_lock()
128 pub fn try_lock_irqsave(&self) -> Result<SpinLockGuard<T>, SystemError> { in try_lock_irqsave()
132 return Ok(SpinLockGuard { in try_lock_irqsave()
144 pub fn try_lock_no_preempt(&self) -> Result<SpinLockGuard<T>, SystemError> { in try_lock_no_preempt()
[all …]
H A Dwait_queue.rs17 spinlock::{SpinLock, SpinLockGuard},
37 let mut guard: SpinLockGuard<InnerWaitQueue> = self.0.lock_irqsave(); in prepare_to_wait_event()
54 let mut guard: SpinLockGuard<InnerWaitQueue> = self.0.lock_irqsave(); in finish_wait()
67 let mut guard: SpinLockGuard<InnerWaitQueue> = self.0.lock_irqsave(); in sleep()
82 let mut guard: SpinLockGuard<InnerWaitQueue> = self.0.lock_irqsave(); in sleep_with_func()
113 let mut guard: SpinLockGuard<InnerWaitQueue> = self.0.lock(); in sleep_without_schedule()
125 let mut guard: SpinLockGuard<InnerWaitQueue> = self.0.lock(); in sleep_without_schedule_uninterruptible()
135 let mut guard: SpinLockGuard<InnerWaitQueue> = self.0.lock(); in sleep_uninterruptible()
148 pub fn sleep_unlock_spinlock<T>(&self, to_unlock: SpinLockGuard<T>) { in sleep_unlock_spinlock()
150 let mut guard: SpinLockGuard<InnerWaitQueue> = self.0.lock(); in sleep_unlock_spinlock()
[all …]
H A Dmutex.rs12 libs::spinlock::SpinLockGuard,
64 let mut inner: SpinLockGuard<MutexInner> = self.inner.lock(); in lock()
117 let mut inner: SpinLockGuard<MutexInner> = self.inner.lock(); in unlock()
/DragonOS/docs/kernel/locking/
H A Dspinlock.md55 &emsp;&emsp;当需要读取、修改SpinLock保护的数据时,请先使用SpinLock的`lock()`方法。该方法会返回一个`SpinLockGuard`。您可以使用被保护的数据的成员函数…
62 let mut g :SpinLockGuard<Vec<i32>>= x.lock();
94SpinLockGuard`作为守卫。我们在编写代码的时候,保证只有调用`SpinLock`的`lock()`方法加锁后,才能生成一个`SpinLockGuard`。 并且,当我们想要访问受保护的…
104 - 如果函数B需要访问临界区内的数据,那么,函数B应当接收一个类型为`&SpinLockGuard`的参数,这个守卫由函数A获得。这样一来,函数B就能访问临界区内的数据。
/DragonOS/kernel/src/exception/
H A Dresend.rs3 use crate::{exception::irqdesc::IrqDescState, libs::spinlock::SpinLockGuard};
16 desc_inner_guard: &mut SpinLockGuard<'_, InnerIrqDesc>, in irq_check_and_resend()
72 desc_inner_guard: &SpinLockGuard<'_, InnerIrqDesc>, in try_retrigger()
H A Dhandle.rs10 libs::{once::Once, spinlock::SpinLockGuard},
66 let out = |din: SpinLockGuard<InnerIrqDesc>| { in handle()
102 let mut desc_inner_guard: SpinLockGuard<'_, InnerIrqDesc> = irq_desc.inner(); in handle()
161 fn irq_may_run(desc_inner_guard: &SpinLockGuard<'_, InnerIrqDesc>) -> bool { in irq_may_run()
212 action_inner: &mut SpinLockGuard<'_, InnerIrqAction>, in do_irq_wake_thread()
241 mut desc_inner_guard: SpinLockGuard<'_, InnerIrqDesc>, in handle_irq_event()
242 ) -> SpinLockGuard<'a, InnerIrqDesc> { in handle_irq_event()
271 let mut action_inner: SpinLockGuard<'_, InnerIrqAction> = action.inner(); in do_handle_irq_event()
296 desc_inner_guard: &SpinLockGuard<'_, InnerIrqDesc>, in cond_unmask_eoi_irq()
335 fn warn_no_thread(irq: IrqNumber, action_inner: &mut SpinLockGuard<'_, InnerIrqAction>) { in warn_no_thread()
H A Dmanage.rs14 libs::{cpumask::CpuMask, spinlock::SpinLockGuard},
173 |e: SystemError, mut action_guard: SpinLockGuard<'_, InnerIrqAction>| -> SystemError { in inner_setup_irq()
192 action_guard: SpinLockGuard<'_, InnerIrqAction>| in inner_setup_irq()
200 desc_guard: SpinLockGuard<'_, InnerIrqDesc>, in inner_setup_irq()
203 action_guard: SpinLockGuard<'_, InnerIrqAction>| in inner_setup_irq()
209 let err_out_mismatch = |old_action_guard: SpinLockGuard<'_, InnerIrqAction>, in inner_setup_irq()
210 desc_guard: SpinLockGuard<'_, InnerIrqDesc>, in inner_setup_irq()
211 action_guard: SpinLockGuard<'_, InnerIrqAction>, in inner_setup_irq()
320 let mut desc_inner_guard: SpinLockGuard<'_, InnerIrqDesc> = desc.inner(); in inner_setup_irq()
629 desc_inner_guard: &mut SpinLockGuard<'_, InnerIrqDesc>, in irq_activate_and_startup()
[all …]
/DragonOS/kernel/src/filesystem/devfs/
H A Dnull_dev.rs7 use crate::libs::spinlock::SpinLockGuard;
77 _data: SpinLockGuard<FilePrivateData>, in open()
83 fn close(&self, _data: SpinLockGuard<FilePrivateData>) -> Result<(), SystemError> { in close()
117 _data: SpinLockGuard<FilePrivateData>, in read_at()
128 _data: SpinLockGuard<FilePrivateData>, in write_at()
H A Dzero_dev.rs7 use crate::libs::spinlock::SpinLockGuard;
77 _data: SpinLockGuard<FilePrivateData>, in open()
83 fn close(&self, _data: SpinLockGuard<FilePrivateData>) -> Result<(), SystemError> { in close()
117 _data: SpinLockGuard<FilePrivateData>, in read_at()
136 _data: SpinLockGuard<FilePrivateData>, in write_at()
H A Dmod.rs16 spinlock::{SpinLock, SpinLockGuard},
84 let mut root_guard: SpinLockGuard<DevFSInode> = devfs.root_inode.0.lock(); in new()
297 let guard: SpinLockGuard<DevFSInode> = self.0.lock(); in add_dir()
344 mut guard: SpinLockGuard<DevFSInode>, in do_create_with_data()
400 _data: SpinLockGuard<FilePrivateData>, in open()
406 fn close(&self, _data: SpinLockGuard<FilePrivateData>) -> Result<(), SystemError> { in close()
418 let guard: SpinLockGuard<DevFSInode> = self.0.lock(); in create_with_data()
453 let inode: SpinLockGuard<DevFSInode> = self.0.lock(); in get_entry_name()
542 _data: SpinLockGuard<FilePrivateData>, in read_at()
554 _data: SpinLockGuard<FilePrivateData>, in write_at()
/DragonOS/kernel/src/driver/disk/ahci/
H A Dahci_inode.rs9 use crate::libs::spinlock::SpinLockGuard;
82 _data: SpinLockGuard<FilePrivateData>, in open()
88 fn close(&self, _data: SpinLockGuard<FilePrivateData>) -> Result<(), SystemError> { in close()
122 data: SpinLockGuard<FilePrivateData>, in read_at()
141 data: SpinLockGuard<FilePrivateData>, in write_at()
/DragonOS/kernel/src/mm/
H A Dmmio_buddy.rs2 use crate::libs::spinlock::{SpinLock, SpinLockGuard};
149 low_list_guard: &mut SpinLockGuard<MmioFreeRegionList>, in split_block()
172 list_guard: &mut SpinLockGuard<MmioFreeRegionList>, in query_addr_region()
185 let pop_list: &mut SpinLockGuard<MmioFreeRegionList> = in query_addr_region()
197 let low_list_guard: &mut SpinLockGuard<MmioFreeRegionList> = in query_addr_region()
216 let low_list_guard: &mut SpinLockGuard<MmioFreeRegionList> = in query_addr_region()
308 let mut list_guard: SpinLockGuard<MmioFreeRegionList> = in mmio_buddy_query_addr_region()
326 list_guard: &mut SpinLockGuard<MmioFreeRegionList>, in push_block()
354 list_guard: &mut SpinLockGuard<MmioFreeRegionList>, in pop_buddy_block()
386 list_guard: &mut SpinLockGuard<MmioFreeRegionList>, in pop_block()
[all …]
H A Dmemblock.rs8 spinlock::{SpinLock, SpinLockGuard},
105 inner: &mut SpinLockGuard<'_, InnerMemBlockManager>, in do_add_block()
172 inner: &mut SpinLockGuard<'_, InnerMemBlockManager>, in do_insert_area()
188 inner: &mut SpinLockGuard<'_, InnerMemBlockManager>, in do_merge_blocks()
249 fn do_remove_region(&self, inner: &mut SpinLockGuard<'_, InnerMemBlockManager>, index: usize) { in do_remove_region()
274 inner: &mut SpinLockGuard<'_, InnerMemBlockManager>, in isolate_range()
409 inner: &SpinLockGuard<'_, InnerMemBlockManager>, in do_is_overlapped()
470 inner: SpinLockGuard<'a, InnerMemBlockManager>,
/DragonOS/kernel/src/virt/kvm/
H A Dkvm_dev.rs9 use crate::libs::spinlock::SpinLockGuard;
95 _data: SpinLockGuard<FilePrivateData>, in open()
102 fn close(&self, _data: SpinLockGuard<FilePrivateData>) -> Result<(), SystemError> { in close()
167 _data: SpinLockGuard<FilePrivateData>, in read_at()
178 _data: SpinLockGuard<FilePrivateData>, in write_at()
H A Dvcpu_dev.rs10 use crate::libs::spinlock::SpinLockGuard;
103 _data: SpinLockGuard<FilePrivateData>, in open()
110 fn close(&self, _data: SpinLockGuard<FilePrivateData>) -> Result<(), SystemError> { in close()
203 _data: SpinLockGuard<FilePrivateData>, in read_at()
214 _data: SpinLockGuard<FilePrivateData>, in write_at()
H A Dvm_dev.rs9 use crate::libs::spinlock::SpinLockGuard;
101 _data: SpinLockGuard<FilePrivateData>, in open()
108 fn close(&self, _data: SpinLockGuard<FilePrivateData>) -> Result<(), SystemError> { in close()
199 _data: SpinLockGuard<FilePrivateData>, in read_at()
210 _data: SpinLockGuard<FilePrivateData>, in write_at()
/DragonOS/kernel/src/filesystem/kernfs/
H A Dcallback.rs3 libs::spinlock::SpinLockGuard,
38 private_data: SpinLockGuard<'a, Option<KernInodePrivateData>>,
45 private_data: SpinLockGuard<'a, Option<KernInodePrivateData>>, in new()
/DragonOS/kernel/src/filesystem/ramfs/
H A Dmod.rs11 libs::spinlock::{SpinLock, SpinLockGuard},
140 let mut root_guard: SpinLockGuard<RamFSInode> = result.root_inode.0.lock(); in new()
177 fn close(&self, _data: SpinLockGuard<FilePrivateData>) -> Result<(), SystemError> { in close()
183 _data: SpinLockGuard<FilePrivateData>, in open()
194 _data: SpinLockGuard<FilePrivateData>, in read_at()
200 let inode: SpinLockGuard<RamFSInode> = self.0.lock(); in read_at()
226 _data: SpinLockGuard<FilePrivateData>, in write_at()
233 let mut inode: SpinLockGuard<RamFSInode> = self.0.lock(); in write_at()
350 let mut inode: SpinLockGuard<RamFSInode> = self.0.lock(); in link()
351 let mut other_locked: SpinLockGuard<RamFSInode> = other.0.lock(); in link()
[all …]
/DragonOS/kernel/src/driver/tty/
H A Dtty_port.rs7 use crate::libs::spinlock::{SpinLock, SpinLockGuard};
81 fn port_data(&self) -> SpinLockGuard<TtyPortData>; in port_data()
122 fn port_data(&self) -> SpinLockGuard<TtyPortData> { in port_data()
/DragonOS/kernel/src/driver/keyboard/
H A Dps2_keyboard.rs33 spinlock::{SpinLock, SpinLockGuard},
122 _data: SpinLockGuard<FilePrivateData>, in read_at()
132 _data: SpinLockGuard<FilePrivateData>, in write_at()
139 _data: SpinLockGuard<FilePrivateData>, in open()
145 fn close(&self, _data: SpinLockGuard<FilePrivateData>) -> Result<(), SystemError> { in close()
/DragonOS/kernel/src/filesystem/
H A Deventfd.rs4 use crate::libs::spinlock::{SpinLock, SpinLockGuard};
83 _data: SpinLockGuard<FilePrivateData>, in open()
89 fn close(&self, _data: SpinLockGuard<FilePrivateData>) -> Result<(), SystemError> { in close()
106 data: SpinLockGuard<FilePrivateData>, in read_at()
157 data: SpinLockGuard<FilePrivateData>, in write_at()
/DragonOS/kernel/src/driver/scsi/
H A Dmod.rs7 libs::spinlock::{SpinLock, SpinLockGuard},
48 fn inner(&self) -> SpinLockGuard<InnerScsiManager> { in inner()
/DragonOS/kernel/src/filesystem/devpts/
H A Dmod.rs27 libs::spinlock::{SpinLock, SpinLockGuard},
148 _data: SpinLockGuard<FilePrivateData>, in open()
161 fn close(&self, _data: SpinLockGuard<FilePrivateData>) -> Result<(), SystemError> { in close()
171 _data: SpinLockGuard<FilePrivateData>, in read_at()
181 _data: SpinLockGuard<FilePrivateData>, in write_at()
/DragonOS/kernel/src/filesystem/procfs/
H A Dmod.rs24 spinlock::{SpinLock, SpinLockGuard},
360 let mut root_guard: SpinLockGuard<ProcFSInode> = result.root_inode.0.lock(); in new()
454 mut data: SpinLockGuard<FilePrivateData>, in open()
458 let mut inode: SpinLockGuard<ProcFSInode> = self.0.lock(); in open()
480 fn close(&self, mut data: SpinLockGuard<FilePrivateData>) -> Result<(), SystemError> { in close()
481 let guard: SpinLockGuard<ProcFSInode> = self.0.lock(); in close()
497 data: SpinLockGuard<FilePrivateData>, in read_at()
503 let inode: SpinLockGuard<ProcFSInode> = self.0.lock(); in read_at()
550 _data: SpinLockGuard<FilePrivateData>, in write_at()
655 let mut inode: SpinLockGuard<ProcFSInode> = self.0.lock(); in link()
[all …]
/DragonOS/kernel/src/driver/video/fbdev/base/
H A Dfbmem.rs39 spinlock::{SpinLock, SpinLockGuard},
251 fn do_device_number(&self, inner_guard: &SpinLockGuard<'_, InnerFbDevice>) -> DeviceNumber { in do_device_number()
255 fn inner(&self) -> SpinLockGuard<InnerFbDevice> { in inner()
397 _data: SpinLockGuard<FilePrivateData>, in open()
403 fn close(&self, _data: SpinLockGuard<FilePrivateData>) -> Result<(), SystemError> { in close()
411 _data: SpinLockGuard<FilePrivateData>, in read_at()
422 _data: SpinLockGuard<FilePrivateData>, in write_at()

1234