Home
last modified time | relevance | path

Searched refs:guard (Results 1 – 25 of 61) sorted by relevance

123

/DragonOS/kernel/src/libs/
H A Dwait_queue.rs37 let mut guard: SpinLockGuard<InnerWaitQueue> = self.0.lock_irqsave(); in prepare_to_wait_event() localVariable
45 guard.wait_list.push_back(ProcessManager::current_pcb()); in prepare_to_wait_event()
46 drop(guard); in prepare_to_wait_event()
54 let mut guard: SpinLockGuard<InnerWaitQueue> = self.0.lock_irqsave(); in finish_wait() localVariable
59 guard.wait_list.retain(|x| !Arc::ptr_eq(x, &pcb)); in finish_wait()
60 drop(guard); in finish_wait()
67 let mut guard: SpinLockGuard<InnerWaitQueue> = self.0.lock_irqsave(); in sleep() localVariable
71 guard.wait_list.push_back(ProcessManager::current_pcb()); in sleep()
72 drop(guard); in sleep()
82 let mut guard: SpinLockGuard<InnerWaitQueue> = self.0.lock_irqsave(); in sleep_with_func() localVariable
[all …]
H A Drwlock.rs160 Some(guard) => return guard, in read()
171 Some(mut guard) => { in read_irqsave()
172 guard.irq_guard = Some(irq_guard); in read_irqsave()
173 return guard; in read_irqsave()
183 if let Some(mut guard) = self.try_read() { in try_read_irqsave()
184 guard.irq_guard = Some(irq_guard); in try_read_irqsave()
185 return Some(guard); in try_read_irqsave()
262 Some(guard) => return guard, in write()
275 Some(mut guard) => { in write_irqsave()
276 guard.irq_guard = Some(irq_guard); in write_irqsave()
[all …]
H A Dspinlock.rs85 if let Ok(guard) = self.try_lock_no_preempt() { in lock_no_preempt()
86 return guard; in lock_no_preempt()
94 if let Ok(guard) = self.try_lock_irqsave() { in lock_irqsave()
95 return guard; in lock_irqsave()
/DragonOS/user/apps/user-manage/src/executor/
H A Dexecutor.rs103 let mut guard = GLOBAL_FILE.lock().unwrap(); in write_group_file() localVariable
104 let content = read_to_string(&guard.group_file); in write_group_file()
122 guard.group_file.set_len(0).unwrap(); in write_group_file()
123 guard.group_file.seek(std::io::SeekFrom::Start(0)).unwrap(); in write_group_file()
124 guard.group_file.write_all(new_content.as_bytes()).unwrap(); in write_group_file()
125 guard.group_file.flush().unwrap(); in write_group_file()
145 let mut guard = GLOBAL_FILE.lock().unwrap(); in write_gshadow_file() localVariable
146 let content = read_to_string(&guard.gshadow_file); in write_gshadow_file()
163 guard.gshadow_file.set_len(0).unwrap(); in write_gshadow_file()
164 guard in write_gshadow_file()
[all …]
/DragonOS/kernel/src/process/
H A Dsyscall.rs311 let mut guard = pcb.cred.lock(); in setuid() localVariable
313 if guard.uid.data() == 0 { in setuid()
314 guard.setuid(uid); in setuid()
315 guard.seteuid(uid); in setuid()
316 guard.setsuid(uid); in setuid()
317 } else if uid == guard.uid.data() || uid == guard.suid.data() { in setuid()
318 guard.seteuid(uid); in setuid()
328 let mut guard = pcb.cred.lock(); in setgid() localVariable
330 if guard.egid.data() == 0 { in setgid()
331 guard.setgid(gid); in setgid()
[all …]
/DragonOS/docs/kernel/locking/
H A Drwlock.md16 …wLock的数据结构进行访问和修改. 每个要访问共享数据的会获得一个守卫(guard), 只读进程获得READER(读者守卫),需要修改共享变量的进程获得WRITER(写者守卫),作为RwLock…
132 let guard = LOCK.read();
133 let value = *guard;
143 let guard = LOCK.read();
144 let value = *guard;
154 let mut guard = LOCK.write();
155 *guard += 100;
159 "Writers: the value is {guard}
161 guard = *guard
163 let read_guard=guard.downgrade();
[all …]
/DragonOS/kernel/src/mm/
H A Dc_adapter.rs39 let mut guard = C_ALLOCATION_MAP.lock(); in do_kmalloc() localVariable
40 if unlikely(guard.contains_key(&vaddr)) { in do_kmalloc()
41 drop(guard); in do_kmalloc()
51 guard.insert(vaddr, (vaddr, len, cap)); in do_kmalloc()
61 let mut guard = C_ALLOCATION_MAP.lock(); in kfree() localVariable
62 let p = guard.remove(&vaddr); in kfree()
63 drop(guard); in kfree()
H A Ducontext.rs869 let guard = v.lock_irqsave(); in contains() localVariable
870 if guard.region.contains(vaddr) { in contains()
889 let guard = v.lock_irqsave(); in find_nearest() localVariable
890 if guard.region.contains(vaddr) { in find_nearest()
893 if guard.region.start >= vaddr in find_nearest()
895 guard.region.start < nearest.lock_irqsave().region.start in find_nearest()
1133 let mut guard = self.lock_irqsave(); in remap() localVariable
1134 for page in guard.region.pages() { in remap()
1144 guard.flags = flags; in remap()
1151 let mut guard = self.lock_irqsave(); in unmap() localVariable
[all …]
H A Dfault.rs73 let guard = vma.lock_irqsave(); in new() localVariable
74 let file_pgoff = guard.file_page_offset().map(|file_page_offset| { in new()
75 ((address - guard.region().start()) >> MMArch::PAGE_SHIFT) + file_page_offset in new()
129 let mut guard = current_pcb.sched_info().inner_lock_write_irqsave(); in handle_mm_fault() localVariable
130 guard.set_state(ProcessState::Runnable); in handle_mm_fault()
141 let guard = vma.lock_irqsave(); in handle_mm_fault() localVariable
142 let vm_flags = *guard.vm_flags(); in handle_mm_fault()
143 drop(guard); in handle_mm_fault()
242 let guard = vma.lock_irqsave(); in do_anonymous_page() localVariable
245 if let Some(flush) = mapper.map(address, guard.flags()) { in do_anonymous_page()
/DragonOS/kernel/src/net/
H A Dnet_core.rs127 let guard: RwLockReadGuard<BTreeMap<usize, Arc<dyn NetDevice>>> = NET_DEVICES.read_irqsave(); in poll_ifaces() localVariable
128 if guard.len() == 0 { in poll_ifaces()
133 for (_, iface) in guard.iter() { in poll_ifaces()
147 let guard: RwLockReadGuard<BTreeMap<usize, Arc<dyn NetDevice>>> = in poll_ifaces_try_lock() localVariable
149 if guard.len() == 0 { in poll_ifaces_try_lock()
162 for (_, iface) in guard.iter() { in poll_ifaces_try_lock()
178 let guard: RwLockReadGuard<BTreeMap<usize, Arc<dyn NetDevice>>> = NET_DEVICES.read_irqsave(); in poll_ifaces_try_lock_onetime() localVariable
179 if guard.len() == 0 { in poll_ifaces_try_lock_onetime()
185 for (_, iface) in guard.iter() { in poll_ifaces_try_lock_onetime()
/DragonOS/kernel/src/driver/input/ps2_mouse/
H A Dps_mouse_device.rs290 let mut guard = self.inner.lock(); in process_packet() localVariable
291 guard.buf.push(packet); // 更新缓冲区 in process_packet()
292 match guard.current_packet { in process_packet()
298 guard.current_state.flags = flags; in process_packet()
301 let flags = guard.current_state.flags; in process_packet()
303 guard.current_state.x = self.get_x_movement(packet, flags); in process_packet()
307 let flags = guard.current_state.flags; in process_packet()
309 guard.current_state.y = self.get_y_movement(packet, flags); in process_packet()
321 guard.current_packet = (guard.current_packet + 1) % 3; in process_packet()
473 let mut guard = self.inner(); in class() localVariable
[all …]
H A Dps_mouse_driver.rs103 let guard = self.inner.lock(); in process_packet() localVariable
104 if guard.devices.is_empty() { in process_packet()
108 let device: Option<&Ps2MouseDevice> = guard.devices[0] in process_packet()
136 let mut guard = self.inner.lock(); in add_device() localVariable
138 if guard.devices.iter().any(|dev| Arc::ptr_eq(dev, &device)) { in add_device()
142 guard.devices.push(device); in add_device()
146 let mut guard = self.inner.lock(); in delete_device() localVariable
147 guard.devices.retain(|dev| !Arc::ptr_eq(dev, device)); in delete_device()
/DragonOS/kernel/src/filesystem/fat/
H A Dfs.rs1392 let mut guard: SpinLockGuard<FATInode> = self.0.lock(); in read_at() localVariable
1393 match &guard.inode_type { in read_at()
1396 &guard.fs.upgrade().unwrap(), in read_at()
1400 guard.update_metadata(); in read_at()
1420 let mut guard: SpinLockGuard<FATInode> = self.0.lock(); in write_at() localVariable
1421 let fs: &Arc<FATFileSystem> = &guard.fs.upgrade().unwrap(); in write_at()
1423 match &mut guard.inode_type { in write_at()
1426 guard.update_metadata(); in write_at()
1446 let mut guard: SpinLockGuard<FATInode> = self.0.lock(); in create() localVariable
1447 let fs: &Arc<FATFileSystem> = &guard.fs.upgrade().unwrap(); in create()
[all …]
/DragonOS/kernel/src/ipc/
H A Dpipe.rs161 let mut guard = result.inner.lock(); in new() localVariable
162 guard.self_ref = Arc::downgrade(&result); in new()
164 drop(guard); //这一步其实不需要,只要离开作用域,guard生命周期结束,自会解锁 in new()
281 let mut guard = self.inner.lock(); in open() localVariable
287 guard.reader += 1; in open()
290 guard.writer += 1; in open()
314 let mut guard = self.inner.lock(); in close() localVariable
318 assert!(guard.writer > 0); in close()
319 guard.writer -= 1; in close()
321 if guard.writer == 0 { in close()
[all …]
H A Dsignal.rs37 let guard = pcb.sig_info_irqsave(); in fatal_signal_pending() localVariable
38 if guard in fatal_signal_pending()
211 let guard = target_pcb.sig_struct(); in complete_signal() localVariable
212 signal_wake_up(target_pcb.clone(), guard, *self == Signal::SIGKILL); in complete_signal()
464 let guard = pcb.sig_struct_irqsave(); in set_current_sig_blocked() localVariable
470 drop(guard); in set_current_sig_blocked()
/DragonOS/kernel/src/filesystem/devpts/
H A Dmod.rs227 let mut guard = self.inner.lock(); in create_with_data() localVariable
229 if guard.children_unchecked_mut().contains_key(name) { in create_with_data()
233 let fs = guard.fs.upgrade().unwrap(); in create_with_data()
249 guard in create_with_data()
259 let guard = self.inner.lock(); in find() localVariable
261 if let Some(dev) = guard.children_unchecked().get(name) { in find()
269 let mut guard = self.inner.lock(); in unlink() localVariable
270 guard.children_unchecked_mut().remove(name); in unlink()
/DragonOS/kernel/src/sched/
H A Dsyscall.rs20 let (rq, guard) = rq.self_lock(); in do_sched_yield()
28 drop(guard); in do_sched_yield()
/DragonOS/kernel/src/driver/pci/test/
H A Dpt_driver.rs92 let mut guard = self.driver_data.write(); in add_device() localVariable
94 if guard.devices.iter().any(|dev| Arc::ptr_eq(dev, &device)) { in add_device()
98 guard.devices.push(device); in add_device()
102 let mut guard = self.driver_data.write(); in delete_device() localVariable
103 guard.devices.retain(|dev| !Arc::ptr_eq(dev, device)); in delete_device()
/DragonOS/kernel/src/arch/x86_64/mm/
H A Dpkru.rs19 let guard = vma.lock_irqsave(); in vma_pkey() localVariable
20 ((guard.vm_flags().bits() & PKEY_MASK) >> VM_PKEY_SHIFT) as u16 in vma_pkey()
H A Dfault.rs252 let guard = vma.lock_irqsave(); in do_user_addr_fault() localVariable
253 let region = *guard.region(); in do_user_addr_fault()
254 let vm_flags = *guard.vm_flags(); in do_user_addr_fault()
255 drop(guard); in do_user_addr_fault()
/DragonOS/kernel/src/driver/input/serio/i8042/
H A Di8042_driver.rs111 let mut guard = self.inner.lock(); in add_device() localVariable
113 if guard.devices.iter().any(|dev| Arc::ptr_eq(dev, &device)) { in add_device()
117 guard.devices.push(device); in add_device()
121 let mut guard = self.inner.lock(); in delete_device() localVariable
122 guard.devices.retain(|dev| !Arc::ptr_eq(dev, device)); in delete_device()
H A Di8042_ports.rs78 let mut guard = self.inner(); in class() localVariable
79 let r = guard.device_common.class.clone()?.upgrade(); in class()
81 guard.device_common.class = None; in class()
/DragonOS/kernel/src/filesystem/devfs/
H A Dmod.rs297 let guard: SpinLockGuard<DevFSInode> = self.0.lock(); in add_dir() localVariable
299 if guard.children.contains_key(&DName::from(name)) { in add_dir()
304 guard, in add_dir()
344 mut guard: SpinLockGuard<DevFSInode>, in do_create_with_data()
350 if guard.metadata.file_type != FileType::Dir { in do_create_with_data()
355 if guard.children.contains_key(&name) { in do_create_with_data()
361 parent: guard.self_ref.clone(), in do_create_with_data()
380 fs: guard.fs.clone(), in do_create_with_data()
388 guard.children.insert(name, result.clone()); in do_create_with_data()
418 let guard: SpinLockGuard<DevFSInode> = self.0.lock(); in create_with_data() localVariable
[all …]
/DragonOS/kernel/src/driver/clocksource/
H A Dtimer_riscv.rs78 let mut guard = SBI_TIMER_INIT_BMP.lock(); in riscv_sbi_timer_init_local() localVariable
80 if guard in riscv_sbi_timer_init_local()
101 guard in riscv_sbi_timer_init_local()
/DragonOS/kernel/src/driver/rtc/
H A Drtc_cmos.rs86 let mut guard = CMOS_RTC_GENERAL_DEVICE.write(); in probe() localVariable
89 if guard.is_some() { in probe()
94 guard.replace(general_rtc_device.clone()); in probe()
97 drop(guard); in probe()

123