"Daniel Almeida" <daniel.almeida@xxxxxxxxxxxxx> writes: >> On 11 Jul 2025, at 08:43, Andreas Hindborg <a.hindborg@xxxxxxxxxx> wrote: >> >> Add a few block subsystem constants to the rust `kernel::block` name space. >> This makes it easier to access the constants from rust code. >> >> Signed-off-by: Andreas Hindborg <a.hindborg@xxxxxxxxxx> >> --- >> rust/kernel/block.rs | 12 ++++++++++++ >> 1 file changed, 12 insertions(+) >> >> diff --git a/rust/kernel/block.rs b/rust/kernel/block.rs >> index 150f710efe5b..7461adf4d7e0 100644 >> --- a/rust/kernel/block.rs >> +++ b/rust/kernel/block.rs >> @@ -3,3 +3,15 @@ >> //! Types for working with the block layer. >> >> pub mod mq; >> + >> +/// Bit mask for masking out [`SECTOR_SIZE`] > > Missing period. Thanks. > >> +pub const SECTOR_MASK: u32 = bindings::SECTOR_MASK; >> + >> +/// Sectors are size `1 << SECTOR_SHIFT`. >> +pub const SECTOR_SHIFT: u32 = bindings::SECTOR_SHIFT; >> + >> +/// Size of a sector. >> +pub const SECTOR_SIZE: u32 = bindings::SECTOR_SIZE; >> + >> +/// Power of two difference in size of a page and size of a sector. > > A bit hard to parse this. > > Maybe “The difference between the size of a page and the size of a sector, > expressed as a power of two” ? OK. > >> +pub const PAGE_SECTORS_SHIFT: u32 = bindings::PAGE_SECTORS_SHIFT; >> >> -- >> 2.47.2 >> >> >> > > > let sector: usize = something; > let page_offset = (sector & block::SECTOR_MASK as usize) << block::SECTOR_SHIFT; > > > Wait, the parenthesis evaluate to usize, and the shift is a u32. How does this compile? That is all good. `Shl` has a ton of impls for integers [1]. Shifting more than 64 spaces on 64 bit system makes no sense anyway. Best regards, Andreas Hindborg [1] https://doc.rust-lang.org/std/ops/trait.Shl.html