asterinas/kernel/src
Arthur Paulino 6a67807fd0 Implement `IdSet::iter_in`
This patch enables more expressive ways to slice and iterate over
the `Id`s in an `IdSet` with `IdSet::iter_in`, which takes an arbitrary
`IdSetSlicer`.

`IdSet::iter_in` efficiently slices out unintended inner parts and
then, within the remaining parts, skips inactive bits by using
`BitSlice::iter_ones` from the `bitvec` crate.

It also delivers several implementations of `IdSetSlicer` so OSTD
consumers can represent `Id` ranges ergonomically.

In the Asterinas kernel, `CpuSet::iter_in` enables a cleaner way to
define an interator that cycles over the CPUs.
2025-10-25 11:23:13 +08:00
..
arch Implement `IdSet::iter_in` 2025-10-25 11:23:13 +08:00
device Revise some error messages 2025-10-22 14:05:38 +08:00
driver Refactor framebuffer 2025-04-29 19:48:45 +08:00
events Fix clippy warnings in kernel crate 2025-06-06 18:22:09 +08:00
fs Implement `IdSet::iter_in` 2025-10-25 11:23:13 +08:00
ipc Fix `semid_ds`'s layout on non-x86_64 platforms 2025-09-29 23:46:01 +08:00
net Implement better FS path APIs 2025-10-22 14:05:38 +08:00
process Unshare VM during execve 2025-10-25 10:36:30 +08:00
sched Implement `IdSet::iter_in` 2025-10-25 11:23:13 +08:00
syscall Implement `IdSet::iter_in` 2025-10-25 11:23:13 +08:00
thread Implement `IdSet::iter_in` 2025-10-25 11:23:13 +08:00
time Fix some minor style issues 2025-10-06 14:46:23 +08:00
util Unshare VM during execve 2025-10-25 10:36:30 +08:00
vm Unshare VM during execve 2025-10-25 10:36:30 +08:00
context.rs Unshare VM during execve 2025-10-25 10:36:30 +08:00
cpu.rs Make syscall restart mechanism work across all architectures 2025-09-26 15:10:34 +08:00
error.rs Support generating the mount infomation 2025-10-24 11:12:16 +08:00
kcmdline.rs Mark all kernel modules as private 2025-08-26 18:02:56 +08:00
lib.rs Implement `IdSet::iter_in` 2025-10-25 11:23:13 +08:00
prelude.rs Move `ReadCString` to `util/` 2025-09-18 17:19:51 +08:00
vdso.rs Init vDSO singleton in the first kthread 2025-08-31 23:57:17 +08:00