diff --git a/Cargo.lock b/Cargo.lock index 0a7321715..5fcf84e14 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1036,6 +1036,7 @@ name = "drv-i2c-devices" version = "0.1.0" dependencies = [ "bitfield 0.13.2", + "counters", "derive-idol-err", "drv-i2c-api", "drv-onewire", @@ -4761,6 +4762,7 @@ dependencies = [ "build-i2c", "build-util", "cortex-m", + "counters", "drv-i2c-api", "drv-i2c-devices", "idol", diff --git a/drv/i2c-devices/Cargo.toml b/drv/i2c-devices/Cargo.toml index ee99ce654..3b3d5f38a 100644 --- a/drv/i2c-devices/Cargo.toml +++ b/drv/i2c-devices/Cargo.toml @@ -14,6 +14,7 @@ zerocopy = { workspace = true } derive-idol-err = { path = "../../lib/derive-idol-err" } drv-i2c-api = { path = "../i2c-api" } drv-onewire = { path = "../onewire" } +counters = { path = "../../lib/counters" } ringbuf = { path = "../../lib/ringbuf" } task-power-api = { path = "../../task/power-api" } userlib = { path = "../../sys/userlib" } diff --git a/drv/i2c-devices/src/mwocp68.rs b/drv/i2c-devices/src/mwocp68.rs index 5dccabb02..7e131d1a9 100644 --- a/drv/i2c-devices/src/mwocp68.rs +++ b/drv/i2c-devices/src/mwocp68.rs @@ -27,7 +27,7 @@ pub struct Mwocp68 { mode: Cell>, } -#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[derive(Copy, Clone, Debug, Eq, PartialEq, counters::Count)] pub enum Error { BadRead { cmd: u8, code: ResponseCode }, BadWrite { cmd: u8, code: ResponseCode }, diff --git a/task/sensor-polling/Cargo.toml b/task/sensor-polling/Cargo.toml index 67160328a..b467a78c7 100644 --- a/task/sensor-polling/Cargo.toml +++ b/task/sensor-polling/Cargo.toml @@ -10,6 +10,7 @@ zerocopy = { workspace = true } drv-i2c-api = { path = "../../drv/i2c-api" } drv-i2c-devices = { path = "../../drv/i2c-devices" } +counters = { path = "../../lib/counters" } ringbuf = { path = "../../lib/ringbuf" } task-sensor-api = { path = "../sensor-api" } userlib = { path = "../../sys/userlib", features = ["panic-messages"] } diff --git a/task/sensor-polling/src/main.rs b/task/sensor-polling/src/main.rs index f850410a9..79b82ee3a 100644 --- a/task/sensor-polling/src/main.rs +++ b/task/sensor-polling/src/main.rs @@ -22,9 +22,9 @@ pub enum Device { Mwocp68, } -#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[derive(Copy, Clone, Debug, Eq, PartialEq, counters::Count)] pub enum Error { - Mwocp68Error(Mwocp68Error), + Mwocp68Error(#[count(children)] Mwocp68Error), } impl From for task_sensor_api::NoData { @@ -101,14 +101,16 @@ impl TemperatureSensor { //////////////////////////////////////////////////////////////////////////////// -#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[derive(Copy, Clone, Debug, Eq, PartialEq, counters::Count)] enum Trace { + #[count(skip)] None, + #[count(skip)] Start, - SpeedReadFailed(SensorId, Error), - TemperatureReadFailed(SensorId, Error), + SpeedReadFailed(SensorId, #[count(children)] Error), + TemperatureReadFailed(SensorId, #[count(children)] Error), } -ringbuf!(Trace, 32, Trace::None); +counted_ringbuf!(Trace, 32, Trace::None); //////////////////////////////////////////////////////////////////////////////// diff --git a/task/thermal-api/src/lib.rs b/task/thermal-api/src/lib.rs index 929e43761..743b0c51b 100644 --- a/task/thermal-api/src/lib.rs +++ b/task/thermal-api/src/lib.rs @@ -145,7 +145,7 @@ impl ThermalProperties { counters::Count, )] pub enum SensorReadError { - I2cError(#[count(children)] ResponseCode), + I2cError(ResponseCode), /// The sensor reported that data is either not present or too old NoData, diff --git a/task/thermal/src/main.rs b/task/thermal/src/main.rs index e112da87d..6865cfc87 100644 --- a/task/thermal/src/main.rs +++ b/task/thermal/src/main.rs @@ -68,17 +68,18 @@ task_slot!(SENSOR, sensor); enum Trace { #[count(skip)] None, + #[count(skip)] Start, ThermalMode(#[count(children)] ThermalMode), AutoState(#[count(children)] ThermalAutoState), FanReadFailed(SensorId, ResponseCode), - MiscReadFailed(SensorId, SensorReadError), - SensorReadFailed(SensorId, SensorReadError), + MiscReadFailed(SensorId, #[count(children)] SensorReadError), + SensorReadFailed(SensorId, #[count(children)] SensorReadError), ControlPwm(u8), PowerModeChanged(PowerBitmask), - PowerDownFailed(SeqError), + PowerDownFailed(#[count(children)] SeqError), ControlError(#[count(children)] ThermalError), - FanPresenceUpdateFailed(SeqError), + FanPresenceUpdateFailed(#[count(children)] SeqError), FanAdded(Fan), FanRemoved(Fan), PowerDownAt(u64),