|
15 | 15 |
|
16 | 16 | static double parseTZDir(int dfd, FFstrbuf* buffer)
|
17 | 17 | {
|
18 |
| - if(!ffReadFileBufferRelative(dfd, "temp", buffer)) |
| 18 | + if (!ffReadFileBufferRelative(dfd, "type", buffer)) |
19 | 19 | return FF_CPU_TEMP_UNSET;
|
20 | 20 |
|
21 |
| - double value = ffStrbufToDouble(buffer, FF_CPU_TEMP_UNSET);// millidegree Celsius |
22 |
| - if(value == FF_CPU_TEMP_UNSET) |
| 21 | + if (!ffStrbufStartsWithS(buffer, "cpu") && |
| 22 | + !ffStrbufStartsWithS(buffer, "soc") && |
| 23 | + #if __x86_64__ || __i386__ |
| 24 | + !ffStrbufEqualS(buffer, "x86_pkg_temp") && |
| 25 | + #endif |
| 26 | + true |
| 27 | + ) return FF_CPU_TEMP_UNSET; |
| 28 | + |
| 29 | + if (!ffReadFileBufferRelative(dfd, "temp", buffer)) |
23 | 30 | return FF_CPU_TEMP_UNSET;
|
24 | 31 |
|
25 |
| - if (!ffReadFileBufferRelative(dfd, "type", buffer) || ffStrbufStartsWithS(buffer, "cpu")) |
| 32 | + double value = ffStrbufToDouble(buffer, FF_CPU_TEMP_UNSET);// millidegree Celsius |
| 33 | + if (value == FF_CPU_TEMP_UNSET) |
26 | 34 | return FF_CPU_TEMP_UNSET;
|
27 | 35 |
|
28 | 36 | return value / 1000.;
|
29 | 37 | }
|
30 | 38 |
|
31 | 39 | static double parseHwmonDir(int dfd, FFstrbuf* buffer)
|
32 | 40 | {
|
33 |
| - //https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface |
34 |
| - if(!ffReadFileBufferRelative(dfd, "temp1_input", buffer)) |
35 |
| - return FF_CPU_TEMP_UNSET; |
36 |
| - |
37 |
| - double value = ffStrbufToDouble(buffer, FF_CPU_TEMP_UNSET);// millidegree Celsius |
38 |
| - if(value == FF_CPU_TEMP_UNSET) |
39 |
| - return FF_CPU_TEMP_UNSET; |
40 |
| - |
41 |
| - if (!ffReadFileBufferRelative(dfd, "temp1_label", buffer)) |
| 41 | + if (!ffReadFileBufferRelative(dfd, "name", buffer)) |
42 | 42 | return FF_CPU_TEMP_UNSET;
|
43 | 43 |
|
44 | 44 | ffStrbufTrimRightSpace(buffer);
|
45 | 45 |
|
46 |
| - if( |
47 |
| - ffStrbufContainS(buffer, "cpu") || |
| 46 | + if ( |
| 47 | + !ffStrbufContainS(buffer, "cpu") && |
48 | 48 | #if __x86_64__ || __i386__
|
49 |
| - ffStrbufEqualS(buffer, "k10temp") || // AMD |
50 |
| - ffStrbufEqualS(buffer, "fam15h_power") || // AMD |
51 |
| - ffStrbufEqualS(buffer, "coretemp") || // Intel |
| 49 | + !ffStrbufEqualS(buffer, "k10temp") && // AMD |
| 50 | + !ffStrbufEqualS(buffer, "fam15h_power") && // AMD |
| 51 | + !ffStrbufEqualS(buffer, "coretemp") && // Intel |
52 | 52 | #endif
|
53 |
| - false |
54 |
| - ) return value / 1000.; |
| 53 | + true |
| 54 | + ) return FF_CPU_TEMP_UNSET; |
55 | 55 |
|
56 |
| - return FF_CPU_TEMP_UNSET; |
| 56 | + //https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface |
| 57 | + if (!ffReadFileBufferRelative(dfd, "temp1_input", buffer)) |
| 58 | + return FF_CPU_TEMP_UNSET; |
| 59 | + |
| 60 | + double value = ffStrbufToDouble(buffer, FF_CPU_TEMP_UNSET);// millidegree Celsius |
| 61 | + if (value == FF_CPU_TEMP_UNSET) |
| 62 | + return FF_CPU_TEMP_UNSET; |
| 63 | + |
| 64 | + return value / 1000.; |
57 | 65 | }
|
58 | 66 |
|
59 | 67 | static double detectCPUTemp(void)
|
|
0 commit comments