/DragonOS/kernel/src/mm/allocator/ |
H A D | kernel_allocator.rs | 13 ptr::NonNull, 26 unsafe fn local_dealloc(&self, ptr: *mut u8, layout: Layout); in local_dealloc() 54 unsafe fn free_in_buddy(&self, ptr: *mut u8, layout: Layout) { in free_in_buddy() 58 let phy_addr = MMArch::virt_2_phys(VirtAddr::new(ptr as usize)).unwrap(); in free_in_buddy() 70 .unwrap_or(core::ptr::null_mut()); in local_alloc() 75 return core::ptr::null_mut(); in local_alloc() 84 let ptr: *mut u8 = x.as_mut_ptr(); in local_alloc_zeroed() localVariable 85 core::ptr::write_bytes(ptr, 0, x.len()); in local_alloc_zeroed() 86 ptr in local_alloc_zeroed() 88 .unwrap_or(core::ptr::null_mut()); in local_alloc_zeroed() [all …]
|
H A D | slab.rs | 1 use core::{alloc::Layout, ptr::NonNull, sync::atomic::AtomicBool}; 50 ptr: *mut u8, in deallocate() 53 if let Some(nptr) = NonNull::new(ptr) { in deallocate()
|
/DragonOS/kernel/src/common/ |
H A D | err.h | 15 static inline long __must_check IS_ERR(const void* ptr) in IS_ERR() argument 17 return IS_ERR_VALUE((uint64_t)ptr); in IS_ERR() 27 static inline long __must_check IS_ERR_OR_NULL(const void* ptr) in IS_ERR_OR_NULL() argument 29 return !ptr || IS_ERR_VALUE((uint64_t)ptr); in IS_ERR_OR_NULL() 43 static inline long __must_check PTR_ERR(void * ptr) in PTR_ERR() argument 45 return (long)ptr; in PTR_ERR()
|
H A D | glib.h | 25 #define container_of(ptr, type, member) \ argument 27 typeof(((type *)0)->member) *p = (ptr); \
|
/DragonOS/kernel/src/arch/x86_64/include/asm/ |
H A D | cmpxchg.h | 33 [ptr] "+m"(*__ptr), \ 44 [ptr] "+m"(*__ptr), \ 55 [ptr] "+m"(*__ptr), \ 66 [ptr] "+m"(*__ptr), \ 80 #define arch_try_cmpxchg(ptr, old_ptr, new) \ argument 81 __raw_try_cmpxchg((ptr), (old_ptr), (new), sizeof(*ptr)) 83 bool __try_cmpxchg_q(uint64_t *ptr, uint64_t *old_ptr, uint64_t *new_ptr);
|
/DragonOS/kernel/crates/rust-slabmalloc/src/ |
H A D | sc.rs | 193 let ptr = slab_page.allocate(sc_layout); in try_allocate_from_pagelist() localVariable 194 if !ptr.is_null() { in try_allocate_from_pagelist() 200 return ptr; in try_allocate_from_pagelist() 212 ptr::null_mut() in try_allocate_from_pagelist() 264 let ptr = { in allocate() localVariable 267 let ptr = self.try_allocate_from_pagelist(new_layout); in allocate() localVariable 268 if ptr.is_null() && self.empty_slabs.head.is_some() { in allocate() 273 let ptr = empty_page.allocate(layout); in allocate() localVariable 274 debug_assert!(!ptr.is_null(), "Allocation must have succeeded here."); in allocate() 283 ptr in allocate() [all …]
|
H A D | lib.rs | 40 use core::ptr::{self, NonNull}; 68 fn deallocate(&mut self, ptr: NonNull<u8>, layout: Layout) -> Result<(), AllocationError>; in deallocate()
|
H A D | pages.rs | 224 None => ptr::null_mut(), in allocate() 239 fn deallocate(&self, ptr: NonNull<u8>, layout: Layout) -> Result<(), AllocationError> { in deallocate() 242 ptr, in deallocate() 246 let page_offset = ((ptr.as_ptr() as usize) - align_offset) & (Self::SIZE - 1); in deallocate() 252 ptr in deallocate() 438 if core::ptr::eq(slab_page, s) { in contains() 482 Rawlink { p: ptr::null_mut() } in default() 489 Rawlink { p: ptr::null_mut() } in none()
|
/DragonOS/kernel/src/libs/ |
H A D | volatile.rs | 3 unsafe { core::ptr::read_volatile(core::ptr::addr_of!($data)) } 9 unsafe { core::ptr::write_volatile(core::ptr::addr_of_mut!($data), $value) } 21 true => core::ptr::read_volatile(core::ptr::addr_of!($data)) | $val, 22 false => core::ptr::read_volatile(core::ptr::addr_of!($data)) & (!$val), 150 crate::libs::volatile::VolatileReadable::vread(core::ptr::addr_of!( 172 core::ptr::addr_of_mut!((*$nonnull.as_ptr()).$field),
|
H A D | align.rs | 4 use core::{alloc::GlobalAlloc, fmt::Debug, ptr::Unique}; 53 let ptr = unsafe { KERNEL_ALLOCATOR.alloc_zeroed(Self::LAYOUT) }; in new_zeroed() localVariable 54 if ptr.is_null() { in new_zeroed() 58 inner: unsafe { Unique::new_unchecked(ptr.cast()) }, in new_zeroed() 63 pub unsafe fn new_unchecked(ptr: *mut T) -> Self { in new_unchecked() 65 inner: Unique::new_unchecked(ptr), in new_unchecked() 87 core::ptr::drop_in_place(self.inner.as_ptr()); in drop()
|
/DragonOS/docs/kernel/core_api/ |
H A D | kernel_api.md | 129 ### `list_entry(ptr, type, member)` 133   该宏能通过ptr指向的List获取到List所处的结构体的地址 137 **ptr** 149 ### `list_first_entry(ptr, type, member)` 159 ### `list_first_entry_or_null(ptr, type, member)` 169 ### `list_last_entry(ptr, type, member)` 179 ### `list_last_entry_or_full(ptr, type, member)` 217 ### `list_for_each(ptr, head)` 225 **ptr** 233 ### `list_for_each_prev(ptr, head)` [all …]
|
/DragonOS/kernel/src/arch/riscv64/ |
H A D | cpu.rs | 19 let ptr: *const LocalContext = riscv::register::tp::read() as *const LocalContext; in current_cpu_id() localVariable 21 if core::intrinsics::unlikely(ptr.is_null()) { in current_cpu_id() 25 unsafe { (*ptr).current_cpu() } in current_cpu_id() 99 let ptr = self as *const Self as usize; in sync_to_cpu() localVariable 103 riscv::register::tp::write(ptr); in sync_to_cpu()
|
/DragonOS/kernel/src/arch/x86_64/asm/ |
H A D | cmpxchg.c | 3 bool __try_cmpxchg_q(uint64_t *ptr, uint64_t *old_ptr, uint64_t *new_ptr) in __try_cmpxchg_q() argument 5 bool success = __raw_try_cmpxchg(ptr, old_ptr, *new_ptr, 8); in __try_cmpxchg_q()
|
/DragonOS/user/apps/test-for-robustfutex/src/ |
H A D | main.rs | 8 ptr::{self, NonNull}, 194 list: RobustList { next: ptr::null() }, in set_list() 196 list_op_pending: ptr::null(), in set_list() 235 list: RobustList { next: ptr::null() }, in test01() 237 list_op_pending: ptr::null(), in test01() 243 ptr::null_mut::<c_void>(), in test01() 315 ptr::null_mut::<c_void>(), in test02() 328 ptr::null_mut::<c_void>(), in test02()
|
/DragonOS/kernel/crates/multiboot/src/ |
H A D | lib.rs | 430 ptr: usize, field 436 unsafe { (self.ptr as *const u32).read_unaligned() } in size() 441 unsafe { ((self.ptr + 4) as *const u64).read_unaligned() } in base_addr() 446 unsafe { ((self.ptr + 12) as *const u64).read_unaligned() } in length() 450 let typ_val = unsafe { ((self.ptr + 20) as *const u8).read_unaligned() }; in memory_type() 477 let entry = MemoryEntry { ptr: self.cur_ptr }; in next()
|
/DragonOS/kernel/src/mm/ |
H A D | c_adapter.rs | 36 let (ptr, len, cap) = space.into_raw_parts(); in do_kmalloc() 37 if !ptr.is_null() { in do_kmalloc() 38 let vaddr = VirtAddr::new(ptr as usize); in do_kmalloc()
|
/DragonOS/kernel/src/driver/net/ |
H A D | dma.rs | 13 use core::ptr::NonNull; 26 core::ptr::write_bytes(virt.data() as *mut u8, 0, count.data() * MMArch::PAGE_SIZE); in dma_alloc()
|
/DragonOS/kernel/src/driver/irqchip/ |
H A D | riscv_sifive_plic.rs | 18 ptr::{read_volatile, write_volatile}, 144 core::ptr::write_volatile( in set_threshold() 179 core::ptr::write_volatile(reg, core::ptr::read_volatile(reg) | hwirq_mask); in toggle() 183 core::ptr::write_volatile(reg, core::ptr::read_volatile(reg) & !hwirq_mask); in toggle() 268 core::ptr::write_volatile( in irq_unmask() 291 core::ptr::write_volatile( in irq_mask() 493 core::ptr::write_volatile( in do_riscv_sifive_plic_init()
|
/DragonOS/kernel/src/process/ |
H A D | kthread.rs | 223 let ptr = Arc::into_raw(self); in generate_unsafe_arc_ptr() localVariable 224 return ptr; in generate_unsafe_arc_ptr() 227 pub unsafe fn parse_unsafe_arc_ptr(ptr: *const Self) -> Arc<Self> { in parse_unsafe_arc_ptr() 228 let arc = Arc::from_raw(ptr); in parse_unsafe_arc_ptr() 495 pub unsafe extern "C" fn kernel_thread_bootstrap_stage2(ptr: *const KernelThreadCreateInfo) -> ! { in kernel_thread_bootstrap_stage2() 496 let info = KernelThreadCreateInfo::parse_unsafe_arc_ptr(ptr); in kernel_thread_bootstrap_stage2()
|
/DragonOS/kernel/src/driver/virtio/ |
H A D | virtio_impl.rs | 13 use core::ptr::NonNull; 33 core::ptr::write_bytes(virt.data() as *mut u8, 0, count.data() * MMArch::PAGE_SIZE); in dma_alloc()
|
/DragonOS/kernel/src/driver/disk/ahci/ |
H A D | hba.rs | 1 use core::{intrinsics::size_of, ptr}; 202 ptr::write_bytes( in init() 217 ptr::write_bytes( in init() 240 ptr::write_bytes( in init()
|
/DragonOS/kernel/src/libs/futex/ |
H A D | futex.rs | 164 ptr: u64, field 521 ptr: 0, in get_futex_key() 535 ptr: 0, in get_futex_key() 619 let ptr = atomic_addr.as_ptr(); in arch_futex_atomic_op_inuser() localVariable 622 *((*ptr) as *mut u32) = oparg; in arch_futex_atomic_op_inuser() 625 *((*ptr) as *mut u32) += oparg; in arch_futex_atomic_op_inuser() 628 *((*ptr) as *mut u32) |= oparg; in arch_futex_atomic_op_inuser() 631 *((*ptr) as *mut u32) &= oparg; in arch_futex_atomic_op_inuser() 634 *((*ptr) as *mut u32) ^= oparg; in arch_futex_atomic_op_inuser()
|
/DragonOS/kernel/src/arch/riscv64/process/ |
H A D | kthread.rs | 119 fn jump_to_stage2(ptr: *const KernelThreadCreateInfo) { in jump_to_stage2() 120 unsafe { kernel_thread_bootstrap_stage2(ptr) }; in jump_to_stage2()
|
/DragonOS/kernel/src/arch/x86_64/smp/ |
H A D | mod.rs | 242 core::ptr::copy( in copy_smp_start_code() 275 let ptr = vaddr.data() as *mut u64; in arch_init() localVariable 276 unsafe { *ptr = addr.data() as u64 }; in arch_init()
|
/DragonOS/tools/debugging/logmonitor/src/backend/monitor/ |
H A D | mod.rs | 24 let x = unsafe { std::ptr::read(buf.as_ptr() as *const T) }; in new()
|