From fc77e1b975364f5cf3b200b2ee24aea4dec88431 Mon Sep 17 00:00:00 2001 From: Gabriele Gristina Date: Sat, 19 Jun 2021 15:23:59 +0200 Subject: [PATCH] update hm_IOKIT_get_fan_speed_current(), get rid of minimum_speed --- src/ext_iokit.c | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/src/ext_iokit.c b/src/ext_iokit.c index 05b297ba3..a8a6debce 100644 --- a/src/ext_iokit.c +++ b/src/ext_iokit.c @@ -141,10 +141,10 @@ int hm_IOKIT_SMCGetSensorGraphicHot (void *hashcat_ctx) memset (&val, 0, sizeof (SMCVal_t)); - int alarm = -1; - if (hm_IOKIT_SMCReadKey (HM_IOKIT_SMC_SENSOR_GRAPHICS_HOT, &val, iokit->conn) == kIOReturnSuccess) { + int alarm = -1; + if (val.dataSize > 0) { if (strcmp(val.dataType, DATATYPE_UINT8) == 0) @@ -230,44 +230,28 @@ int hm_IOKIT_get_fan_speed_current (void *hashcat_ctx, int *fan_speed) UInt32Char_t key; - int i, totalFans = 0; - memset (&val, 0, sizeof (SMCVal_t)); if (hm_IOKIT_SMCReadKey ("FNum", &val, iokit->conn) == kIOReturnSuccess) { - totalFans = hm_IOKIT_strtoul ((char *)val.bytes, val.dataSize, 10); + int totalFans = hm_IOKIT_strtoul ((char *)val.bytes, val.dataSize, 10); - for (i = 0; i < totalFans; i++) + for (int i = 0; i < totalFans; i++) { float actual_speed = 0.0f; - float minimum_speed = 0.0f; float maximum_speed = 0.0f; - float rpm = 0.0f; - float pct = 0.0f; memset (&key, 0, sizeof (UInt32Char_t)); sprintf (key, "F%dAc", i); hm_IOKIT_SMCGetFanRPM (key, iokit->conn, &actual_speed); if (actual_speed < 0.f) continue; - memset (&key, 0, sizeof (UInt32Char_t)); - sprintf(key, "F%dMn", i); - hm_IOKIT_SMCGetFanRPM (key, iokit->conn, &minimum_speed); - if (minimum_speed < 0.f) continue; - memset (&key, 0, sizeof (UInt32Char_t)); sprintf (key, "F%dMx", i); hm_IOKIT_SMCGetFanRPM (key, iokit->conn, &maximum_speed); if (maximum_speed < 0.f) continue; - rpm = actual_speed - minimum_speed; - if (rpm < 0.f) rpm = 0.f; - - pct = rpm / (maximum_speed - minimum_speed); - pct *= 100.f; - - *fan_speed = pct; + *fan_speed = (actual_speed / maximum_speed) * 100.f; break; }