pub struct TableBuilder { /* private fields */ }
Expand description
CPU frequency table builder.
This is used by the CPU frequency drivers to build a frequency table dynamically.
§Examples
The following example demonstrates how to create a CPU frequency table.
use kernel::cpufreq::{TableBuilder, TableIndex};
use kernel::clk::Hertz;
let mut builder = TableBuilder::new();
// Adds few entries to the table.
builder.add(Hertz::from_mhz(700), 0, 1).unwrap();
builder.add(Hertz::from_mhz(800), 2, 3).unwrap();
builder.add(Hertz::from_mhz(900), 4, 5).unwrap();
builder.add(Hertz::from_ghz(1), 6, 7).unwrap();
let table = builder.to_table().unwrap();
// SAFETY: Index values correspond to valid entries in the table.
let (index0, index2) = unsafe { (TableIndex::new(0), TableIndex::new(2)) };
assert_eq!(table.freq(index0), Ok(Hertz::from_mhz(700)));
assert_eq!(table.flags(index0), 0);
assert_eq!(table.data(index0), 1);
assert_eq!(table.freq(index2), Ok(Hertz::from_mhz(900)));
assert_eq!(table.flags(index2), 4);
assert_eq!(table.data(index2), 5);
Implementations§
Trait Implementations§
Source§impl Default for TableBuilder
impl Default for TableBuilder
Source§fn default() -> TableBuilder
fn default() -> TableBuilder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for TableBuilder
impl RefUnwindSafe for TableBuilder
impl Send for TableBuilder
impl Sync for TableBuilder
impl Unpin for TableBuilder
impl UnwindSafe for TableBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more