| /linux/drivers/android/binder/ |
| H A D | freeze.rs | 90 let _removed_listener; in do_work() 91 let mut node_refs = thread.process.node_refs.lock(); in do_work() 92 let Some(mut freeze_entry) = node_refs.freeze_listeners.find_mut(&self.cookie) else { in do_work() 95 let freeze = freeze_entry.get_mut(); in do_work() 124 let is_frozen = freeze.node.owner.inner.lock().is_frozen.is_fully_frozen(); in do_work() 129 let mut state_info = BinderFrozenStateInfo::default(); in do_work() 169 let hc = reader.read::<BinderHandleCookie>()?; in request_freeze_notif() 170 let handle = hc.handle; in request_freeze_notif() 171 let cookie = FreezeCookie(hc.cookie); in request_freeze_notif() 173 let msg = FreezeMessage::new(GFP_KERNEL)?; in request_freeze_notif() [all …]
|
| H A D | process.rs | 176 if let Some(thread) = self.ready_threads.pop_front() { in push_work() 186 let sync = work.should_sync_wakeup(); in push_work() 224 let push = node.update_refcount_locked(inc, strong, count, self); in update_node_refcount() 228 if let Some(node) = push { in update_node_refcount() 229 if let Some(thread) = othread { in update_node_refcount() 232 let _ = self.push_work(node); in update_node_refcount() 246 let strong_count = if strong { 1 } else { 0 }; in new_node_ref() 257 let push = match wrapper { in new_node_ref_with_thread() 263 if let Some(node) = push { in new_node_ref_with_thread() 266 let strong_count = if strong { 1 } else { 0 }; in new_node_ref_with_thread() [all …]
|
| H A D | transaction.rs | 59 let debug_id = super::next_debug_id(); in new() 60 let trd = &tr.transaction_data; in new() 61 let allow_fds = node_ref.node.flags & FLAT_BINDER_FLAG_ACCEPTS_FDS != 0; in new() 62 let txn_security_ctx = node_ref.node.flags & FLAT_BINDER_FLAG_TXN_SECURITY_CTX != 0; in new() 63 let mut txn_security_ctx_off = if txn_security_ctx { Some(0) } else { None }; in new() 64 let to = node_ref.node.owner.clone(); in new() 65 let mut alloc = match from.copy_transaction_data( in new() 80 let oneway_spam_detected = alloc.oneway_spam_detected; in new() 91 let target_node = node_ref.node.clone(); in new() 93 let data_address = alloc.ptr; in new() [all …]
|
| H A D | node.rs | 243 let inner = self.inner.access_mut(owner_inner); in has_oneway_transaction() 253 let inner = self.inner.access_mut(owner_inner); in full_debug_print() 336 let inner = self.inner.access_mut(owner_inner); in inc_ref_done_locked() 346 let strong = inner.strong.count > 0; in inc_ref_done_locked() 347 let has_strong = inner.strong.has_count; in inc_ref_done_locked() 348 let weak = strong || inner.weak.count > 0; in inc_ref_done_locked() 349 let has_weak = inner.weak.has_count; in inc_ref_done_locked() 351 let should_drop_weak = !weak && has_weak; in inc_ref_done_locked() 352 let should_drop_strong = !strong && has_strong; in inc_ref_done_locked() 356 let need_push = should_drop_weak || should_drop_strong; in inc_ref_done_locked() [all …]
|
| /linux/tools/memory-model/ |
| H A D | linux-kernel.cat | 28 let acq-po = [Acquire] ; po ; [M] 29 let po-rel = [M] ; po ; [Release] 30 let po-unlock-lock-po = po ; [UL] ; (po|rf) ; [LKR] ; po 33 let R4rmb = R \ Noreturn (* Reads for which rmb works *) 34 let rmb = [R4rmb] ; fencerel(Rmb) ; [R4rmb] 35 let wmb = [W] ; fencerel(Wmb) ; [W] 36 let mb = ([M] ; fencerel(Mb) ; [M]) | 64 let gp = po ; [Sync-rcu | Sync-srcu] ; po? 65 let strong-fence = mb | gp 67 let nonr [all...] |
| H A D | lock.cat | 33 let RL = try RL with emptyset 34 let RU = try RU with emptyset 37 let LF = LF | RL 40 let ALL-LOCKS = LKR | LKW | UL | LF | RU | Srcu-lock | Srcu-unlock | Sync-srcu 44 let lk-rmw = ([LKR] ; po-loc ; [LKW]) \ (po ; po) 45 let rmw = rmw | lk-rmw 70 let R = R | LKR | LF | RU 71 let W = W | LKW 73 let Release = Release | UL 74 let Acquire = Acquire | LKR [all …]
|
| H A D | linux-kernel.bell | 44 let FailedRMW = RMW \ (domain(rmw) | range(rmw)) 45 let Acquire = ACQUIRE \ W \ FailedRMW 46 let Release = RELEASE \ R \ FailedRMW 47 let Mb = MB \ FailedRMW 48 let Noreturn = NORETURN \ W 54 let Srcu = Srcu-lock | Srcu-unlock | Sync-srcu 57 let rcu-rscs = let rec 73 let carry-srcu-data = (data ; [~ Srcu-unlock] ; rf)* 74 let src [all...] |
| /linux/samples/rust/ |
| H A D | rust_driver_platform.rs | 107 let dev = pdev.as_ref(); in probe() 111 if let Some(info) = info { in probe() 119 let drvdata = KBox::new(Self { pdev: pdev.into() }, GFP_KERNEL)?; in probe() 127 let fwnode = dev.fwnode().ok_or(ENOENT)?; in properties_parse() 129 if let Ok(idx) = in properties_parse() 135 let name = c_str!("compatible"); in properties_parse() 136 let prop = fwnode.property_read::<CString>(name).required_by(dev)?; in properties_parse() 139 let name = c_str!("test,bool-prop"); in properties_parse() 140 let prop = fwnode.property_read_bool(c_str!("test,bool-prop")); in properties_parse() 147 let nam in properties_parse() [all...] |
| /linux/rust/kernel/ |
| H A D | maple_tree.rs | 57 let first = match range.start_bound() { in to_maple_range() 63 let last = match range.end_bound() { in to_maple_range() 103 /// let tree = KBox::pin_init(MapleTree::<KBox<i32>>::new(), GFP_KERNEL)?; 105 /// let ten = KBox::new(10, GFP_KERNEL)?; 106 /// let twenty = KBox::new(20, GFP_KERNEL)?; 107 /// let the_answer = KBox::new(42, GFP_KERNEL)?; 142 /// let tree = KBox::pin_init(MapleTree::<KBox<i32>>::new(), GFP_KERNEL)?; 144 /// let ten = KBox::new(10, GFP_KERNEL)?; 145 /// let twenty = KBox::new(20, GFP_KERNEL)?; 146 /// let the_answer = KBox::new(42, GFP_KERNEL)?; [all …]
|
| H A D | str.rs | 63 /// let ascii = b_str!("Hello, BStr!"); 64 /// let s = CString::try_from_fmt(fmt!("{ascii}"))?; 67 /// let non_ascii = b_str!("?"); in fmt() 68 /// let s = CString::try_from_fmt(fmt!("{non_ascii}"))?; in fmt() 95 /// let ascii = b_str!("Hello, \"BStr\"!"); 96 /// let s = CString::try_from_fmt(fmt!("{ascii:?}"))?; 99 /// let non_ascii = b_str!("?"); in fmt() 100 /// let s = CString::try_from_fmt(fmt!("{non_ascii:?}"))?; in fmt() 252 let len = unsafe { bindings::strlen(ptr) } + 1; in from_char_ptr() 254 let byte in from_char_ptr() [all...] |
| H A D | rbtree.rs | 30 /// let mut tree = RBTree::new(); 46 /// let mut iter = tree.iter(); 63 /// let mut iter = tree.iter(); 75 /// let mut iter = tree.iter(); 87 /// let mut iter = tree.iter(); 105 /// let node = RBTreeNode::new(10, 100, flags::GFP_KERNEL)?; 109 /// let mut guard = tree.lock(); 121 /// let mut tree = RBTree::new(); 130 /// let mut iter = tree.iter(); 138 /// let existing = tree.remove(&30); [all …]
|
| H A D | miscdevice.rs | 36 let mut result: bindings::miscdevice = unsafe { MaybeUninit::zeroed().assume_init() }; in into_raw() 206 let ret = unsafe { bindings::generic_file_open(inode, raw_file) }; in open() 212 let misc_ptr = unsafe { (*raw_file).private_data }; in open() 218 let misc = unsafe { &*misc_ptr.cast::<MiscDeviceRegistration<T>>() }; in open() 223 let file = unsafe { File::from_raw_file(raw_file) }; in open() 225 let ptr = match T::open(file, misc) { in open() 247 let private = unsafe { (*file).private_data }; 249 let ptr = unsafe { <T::Ptr as ForeignOwnable>::from_foreign(private) }; 269 let kiocb = unsafe { Kiocb::from_raw(kiocb) }; in mmap() 271 let io in mmap() [all...] |
| /linux/rust/kernel/io/ |
| H A D | mem.rs | 57 /// let offset = 0; // Some offset. 62 /// let request = pdev.io_request_by_index(0).ok_or(ENODEV)?; 63 /// let iomem = request.iomap_sized::<42>(); 64 /// let iomem = KBox::pin_init(iomem, GFP_KERNEL)?; 66 /// let io = iomem.access(pdev.as_ref())?; 69 /// let data = io.read32_relaxed(offset); 115 /// let offset = 0; // Some offset. 121 /// let request = pdev.io_request_by_index(0).ok_or(ENODEV)?; 122 /// let iomem = request.iomap(); 123 /// let iomem = KBox::pin_init(iomem, GFP_KERNEL)?; [all …]
|
| /linux/rust/kernel/alloc/ |
| H A D | kvec.rs | 38 /// let mut v = kernel::kvec![]; 42 /// let mut v = kernel::kvec![1; 3]?; 46 /// let mut v = kernel::kvec![1, 2, 3]?; 120 /// let mut v = KVec::new(); 133 /// let mut v = VVec::new(); 146 /// let mut v = KVVec::new(); 234 /// let mut v = KVec::new(); 270 /// let mut v = KVec::new(); 305 let ptr = unsafe { self.as_mut_ptr().add(self.len) }.cast::<MaybeUninit<T>>(); in spare_capacity_mut() 317 /// let mut v = KVec::new(); [all …]
|
| H A D | kbox.rs | 41 /// let b = KBox::<u64>::new(24_u64, GFP_KERNEL)?; 71 /// let _ = KBox::new(FooStruct, GFP_KERNEL)? as KBox<dyn FooTrait>; 113 /// let b = KBox::new(24_u64, GFP_KERNEL)?; 125 /// let b = VBox::new(24_u64, GFP_KERNEL)?; 137 /// let b = KVBox::new(24_u64, GFP_KERNEL)?; 194 /// let x = KBox::new(24, GFP_KERNEL)?; 195 /// let ptr = KBox::into_raw(x); 197 /// let x = unsafe { KBox::from_raw(ptr) }; 231 let raw = Self::into_raw(self); in assume_init() 257 let b = Self::new_uninit(flags)?; in new() [all …]
|
| H A D | allocator.rs | 92 let size = layout.size(); in call() 93 let ptr = match ptr { in call() 112 let raw_ptr = unsafe { in call() 117 let ptr = if size == 0 { in call() 153 let layout = Kmalloc::aligned_layout(layout); in realloc() 170 /// let mut vbox = VBox::<[u8; page::PAGE_SIZE]>::new_uninit(GFP_KERNEL)?; 174 /// let ptr = unsafe { NonNull::new_unchecked(from_mut(&mut *vbox)) }; 179 /// let page = unsafe { Vmalloc::to_page(ptr.cast()) }; 193 let page = unsafe { bindings::vmalloc_to_page(ptr.as_ptr().cast()) }; in to_page() 197 let page = unsafe { NonNull::new_unchecked(page) }; in to_page() [all …]
|
| /linux/scripts/ |
| H A D | rustdoc_test_gen.rs | 51 let potential_components: Vec<&str> = file.strip_suffix("_rs").unwrap().split('_').collect(); in find_real_path() 62 let joined_potential_components = potential_components.join("_") + ".rs"; in find_real_path() 80 let (components_prefix, components_rest) = potential_components.split_at(i); in find_real_path() 81 let prefix = prefix.join(components_prefix.join("_")); in find_real_path() 97 let mut candidates = String::new(); in find_real_path() 110 let srctree = std::env::var("srctree").unwrap(); in main() 111 let srctree = Path::new(&srctree); in main() 113 let mut paths = fs::read_dir("rust/test/doctests/kernel") in main() 121 let mut rust_tests = String::new(); in main() 122 let mu in main() [all...] |
| /linux/rust/macros/ |
| H A D | vtable.rs | 8 let mut tokens: Vec<_> = ts.into_iter().collect(); in vtable() 11 let is_trait = tokens in vtable() 24 let body = match tokens.pop() { in vtable() 29 let mut body_it = body.stream().into_iter(); in vtable() 30 let mut functions = Vec::new(); in vtable() 31 let mut consts = HashSet::new(); in vtable() 32 while let Some(token) = body_it.next() { in vtable() 35 let fn_name = match body_it.next() { in vtable() 43 let const_name = match body_it.next() { in vtable() 54 let mut const_items; in vtable() [all …]
|
| H A D | kunit.rs | 12 let attr = attr.to_string(); in kunit_tests() 22 let mut tokens: Vec<_> = ts.into_iter().collect(); in kunit_tests() 37 let body = match tokens.pop() { in kunit_tests() 43 let mut body_it = body.stream().into_iter(); in kunit_tests() 44 let mut tests = Vec::new(); in kunit_tests() 45 let mut attributes: HashMap<String, TokenStream> = HashMap::new(); in kunit_tests() 46 while let Some(token) = body_it.next() { in kunit_tests() 50 if let Some(TokenTree::Ident(name)) = g.stream().into_iter().next() { in kunit_tests() 63 if let Some(TokenTree::Ident(test_name)) = body_it.next() { in kunit_tests() 74 let config_kuni in kunit_tests() [all...] |
| H A D | paste.rs | 6 let mut tokens = tokens.iter(); in concat_helper() 7 let mut segments = Vec::new(); in concat_helper() 8 let mut span = None; in concat_helper() 14 let mut value = lit.to_string(); in concat_helper() 22 let mut value = ident.to_string(); in concat_helper() 29 let Some(TokenTree::Ident(ident)) = tokens.next() else { in concat_helper() 33 let (mut value, sp) = segments.pop().expect("expected identifier before modifier"); in concat_helper() 50 let tokens = group.stream().into_iter().collect::<Vec<TokenTree>>(); in concat_helper() 61 let segments = concat_helper(tokens); in concat() 62 let pasted: String = segments.into_iter().map(|x| x.0).collect(); in concat() [all …]
|
| H A D | module.rs | 8 let group = expect_group(it); in expect_string_array() 10 let mut values = Vec::new(); in expect_string_array() 11 let mut it = group.stream().into_iter(); in expect_string_array() 13 while let Some(val) = try_string(&mut it) { in expect_string_array() 41 let string = if builtin { in emit_base() 105 let mut info = ModuleInfo::default(); in parse() 117 let mut seen_keys = Vec::new(); in parse() 120 let key = match it.next() { in parse() 156 let mut ordered_keys: Vec<&str> = Vec::new(); in parse() 172 let mut it = ts.into_iter(); in module() [all …]
|
| H A D | helpers.rs | 6 if let Some(TokenTree::Ident(ident)) = it.next() { in try_ident() 14 if let Some(TokenTree::Literal(literal)) = it.next() { in try_literal() 24 let content = &string[1..string.len() - 1]; in try_string() 42 if let TokenTree::Punct(punct) = it.next().expect("Reached end of token stream for Punct") { in expect_punct() 54 let string = try_string(it).expect("Expected string"); in expect_string_ascii() 60 if let TokenTree::Group(group) = it.next().expect("Reached end of token stream for Group") { in expect_group() 75 let mut input = input.into_iter(); in function_name() 76 while let Some(token) = input.next() { in function_name() 79 if let Some(TokenTree::Ident(i)) = input.next() { in function_name()
|
| /linux/rust/kernel/sync/ |
| H A D | arc.rs | 62 /// let obj = Arc::new(Example { a: 10, b: 20 }, GFP_KERNEL)?; 65 /// let cloned = obj.clone(); 101 /// let obj = Arc::new(Example { a: 10, b: 20 }, GFP_KERNEL)?; 124 /// let obj: Arc<Example> = Arc::new(Example, GFP_KERNEL)?; 127 /// let coerced: Arc<dyn MyTrait> = obj; 160 let refcount_layout = Layout::new::<Refcount>(); in container_of() 162 let val_layout = Layout::for_value(unsafe { &*ptr }); in container_of() 165 let val_offset = unsafe { refcount_layout.extend(val_layout).unwrap_unchecked().1 }; in container_of() 172 let ptr = ptr as *const ArcInner<T>; in container_of() 177 let pt in container_of() [all...] |
| /linux/rust/kernel/device/ |
| H A D | property.rs | 83 let name = unsafe { bindings::fwnode_get_name(self.0.as_raw()) }; in display_name() 90 let name = unsafe { CStr::from_char_ptr(name) }; in display_name() 118 let ret = unsafe { in property_match_string() 135 let mut val: KVec<T> = KVec::with_capacity(len, GFP_KERNEL)?; in property_read_array_vec() 137 let res = T::read_array_from_fwnode_property(self, name, val.spare_capacity_mut()); in property_read_array_vec() 138 let res = match res { in property_read_array_vec() 183 /// let fwnode = dev.fwnode().ok_or(ENOENT)?; 184 /// let b: u32 = fwnode.property_read(c_str!("some-number")).required_by(dev)?; 185 /// if let Some(s) = fwnode.property_read::<CString>(c_str!("some-str")).optional() { 205 let chil in get_child_by_name() [all...] |
| /linux/rust/pin-init/examples/ |
| H A D | pthread_mutex.rs | 68 let init = |slot: *mut UnsafeCell<libc::pthread_mutex_t>| { in new() 70 let slot: *mut libc::pthread_mutex_t = slot.cast(); in new() 71 let mut attr = MaybeUninit::uninit(); in new() 72 let attr = attr.as_mut_ptr(); in new() 74 let ret = unsafe { libc::pthread_mutexattr_init(attr) }; in new() 79 let ret = unsafe { in new() 90 let ret = unsafe { libc::pthread_mutex_init(slot, attr) }; in new() 155 let mtx: Pin<Arc<PThreadMutex<usize>>> = Arc::try_pin_init(PThreadMutex::new(0)).unwrap(); in main() 156 let mut handles = vec![]; in main() 157 let thread_count = 20; in main() [all …]
|