Lines Matching defs:unsafe

137 unsafe impl<Data> Sync for Subsystem<Data> {}
140 unsafe impl<Data> Send for Subsystem<Data> {}
157 unsafe {
166 unsafe {
181 unsafe { bindings::configfs_register_subsystem(this.subsystem.get()) },
191 unsafe { bindings::configfs_unregister_subsystem(self.subsystem.get()) };
193 unsafe { bindings::mutex_destroy(&raw mut (*self.subsystem.get()).su_mutex) };
206 pub unsafe trait HasGroup<Data> {
212 unsafe fn group(this: *const Self) -> *const bindings::config_group;
220 unsafe fn container_of(group: *const bindings::config_group) -> *const Self;
225 unsafe impl<Data> HasGroup<Data> for Subsystem<Data> {
226 unsafe fn group(this: *const Self) -> *const bindings::config_group {
228 unsafe { &raw const (*(*this).subsystem.get()).su_group }
231 unsafe fn container_of(group: *const bindings::config_group) -> *const Self {
233 let c_subsys_ptr = unsafe { container_of!(group, bindings::configfs_subsystem, su_group) };
237 unsafe { container_of!(opaque_ptr, Subsystem<Data>, subsystem) }
268 unsafe {
280 unsafe impl<Data> HasGroup<Data> for Group<Data> {
281 unsafe fn group(this: *const Self) -> *const bindings::config_group {
285 unsafe { &raw const (*this).group },
289 unsafe fn container_of(group: *const bindings::config_group) -> *const Self {
293 unsafe { container_of!(opaque_ptr, Self, group) }
308 unsafe fn get_group_data<'a, Parent>(this: *mut bindings::config_group) -> &'a Parent {
310 let is_root = unsafe { (*this).cg_subsys.is_null() };
316 unsafe { &(*Group::<Parent>::container_of(this)).data }
320 unsafe { &(*Subsystem::container_of(this)).data }
344 unsafe extern "C" fn make_group(
350 let parent_data = unsafe { get_group_data(this) };
356 unsafe { CStr::from_char_ptr(name) },
372 unsafe { Group::<Child>::group(child_group_ptr) }.cast_mut()
390 unsafe extern "C" fn drop_item(
396 let parent_data = unsafe { get_group_data(this) };
400 let c_child_group_ptr = unsafe { container_of!(item, bindings::config_group, cg_item) };
403 let r_child_group_ptr = unsafe { Group::<Child>::container_of(c_child_group_ptr) };
408 let arc: Arc<Group<Child>> = unsafe { Arc::from_raw(r_child_group_ptr.cast_mut()) };
416 unsafe { bindings::config_item_put(item) };
446 unsafe extern "C" fn release(this: *mut bindings::config_item) {
449 let c_group_ptr = unsafe { kernel::container_of!(this, bindings::config_group, cg_item) };
452 let r_group_ptr = unsafe { Group::<Data>::container_of(c_group_ptr) };
456 let pin_self: Arc<Group<Data>> = unsafe { Arc::from_raw(r_group_ptr.cast_mut()) };
530 unsafe impl<const ID: u64, O, Data> Sync for Attribute<ID, O, Data> {}
533 unsafe impl<const ID: u64, O, Data> Send for Attribute<ID, O, Data> {}
550 unsafe extern "C" fn show(
557 unsafe { container_of!(item, bindings::config_group, cg_item) };
561 let data: &Data = unsafe { get_group_data(c_group) };
564 let ret = O::show(data, unsafe { &mut *(page.cast::<[u8; PAGE_SIZE]>()) });
583 unsafe extern "C" fn store(
591 unsafe { container_of!(item, bindings::config_group, cg_item) };
595 let data: &Data = unsafe { get_group_data(c_group) };
601 unsafe { core::slice::from_raw_parts(page.cast(), size) },
689 unsafe impl<const N: usize, Data> Send for AttributeList<N, Data> {}
692 unsafe impl<const N: usize, Data> Sync for AttributeList<N, Data> {}
700 pub const unsafe fn new() -> Self {
709 pub const unsafe fn add<const I: usize, const ID: u64, O>(
720 unsafe { (&mut *self.0.get())[I] = core::ptr::from_ref(attribute).cast_mut().cast() };
738 unsafe impl<Container, Data> Sync for ItemType<Container, Data> {}
741 unsafe impl<Container, Data> Send for ItemType<Container, Data> {}
820 /// > = unsafe {
841 /// > = unsafe {
861 /// unsafe { kernel::configfs::AttributeList::new() };
865 /// unsafe { CONFIGURATION_ATTRS.add::<N, 0, _>(&CONFIGURATION_MESSAGE_ATTR) };
870 /// unsafe { CONFIGURATION_ATTRS.add::<N, 1, _>(&CONFIGURATION_BAR_ATTR) };
954 unsafe {
1002 unsafe {
1014 unsafe { $crate::configfs::AttributeList::new() };