diff options
Diffstat (limited to 'rust/kernel')
-rw-r--r-- | rust/kernel/clk.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/rust/kernel/clk.rs b/rust/kernel/clk.rs index d5b1112102e1..fbcea31dbcca 100644 --- a/rust/kernel/clk.rs +++ b/rust/kernel/clk.rs @@ -30,19 +30,23 @@ use crate::ffi::c_ulong; pub struct Hertz(pub c_ulong); impl Hertz { + const KHZ_TO_HZ: c_ulong = 1_000; + const MHZ_TO_HZ: c_ulong = 1_000_000; + const GHZ_TO_HZ: c_ulong = 1_000_000_000; + /// Create a new instance from kilohertz (kHz) pub const fn from_khz(khz: c_ulong) -> Self { - Self(khz * 1_000) + Self(khz * Self::KHZ_TO_HZ) } /// Create a new instance from megahertz (MHz) pub const fn from_mhz(mhz: c_ulong) -> Self { - Self(mhz * 1_000_000) + Self(mhz * Self::MHZ_TO_HZ) } /// Create a new instance from gigahertz (GHz) pub const fn from_ghz(ghz: c_ulong) -> Self { - Self(ghz * 1_000_000_000) + Self(ghz * Self::GHZ_TO_HZ) } /// Get the frequency in hertz @@ -52,17 +56,17 @@ impl Hertz { /// Get the frequency in kilohertz pub const fn as_khz(&self) -> c_ulong { - self.0 / 1_000 + self.0 / Self::KHZ_TO_HZ } /// Get the frequency in megahertz pub const fn as_mhz(&self) -> c_ulong { - self.0 / 1_000_000 + self.0 / Self::MHZ_TO_HZ } /// Get the frequency in gigahertz pub const fn as_ghz(&self) -> c_ulong { - self.0 / 1_000_000_000 + self.0 / Self::GHZ_TO_HZ } } |