Expand description
Commonly used sizes.
C headers: include/linux/sizes.h.
The top-level SZ_* constants are usize-typed, for use in kernel page
arithmetic and similar CPU-side work.
The SizeConstants trait provides the same constants as associated constants
on u32, u64, and usize, for use in device address spaces where
the address width depends on the hardware. Device drivers frequently need
these constants as u64 (or u32) rather than usize, because
device address spaces are sized independently of the CPU pointer width.
§Examples
use kernel::{
page::PAGE_SIZE,
sizes::{
SizeConstants,
SZ_1M, //
}, //
};
// Module-level constants continue to work without a type qualifier.
let num_pages_in_1m = SZ_1M / PAGE_SIZE;
// Trait associated constants require a type qualifier.
let heap_size = 14 * u64::SZ_1M;
let small = u32::SZ_4K;Constants§
0x4000_0000.0x0000_0400.0x0010_0000.0x8000_0000.0x0000_0800.0x0020_0000.0x0000_1000.0x0040_0000.0x0000_2000.0x0080_0000.0x0000_4000.0x0100_0000.0x0000_8000.0x0200_0000.0x0001_0000.0x0400_0000.0x0002_0000.0x0800_0000.0x0004_0000.0x1000_0000.0x0008_0000.0x2000_0000.
Traits§
- Size constants for device address spaces.