summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Add ISA ACPI sensor driver name supportHoan Tran2020-08-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | ACPI hwmon sensor driver name has a different format such as APMC0D29:00 APMC0D29:01 compared with DTB. This patch supports this format and gives the correct device address as below apm_xgene-isa-0000 => APMC0D29:00 Adapter: ISA adapter SoC Temperature: +35.0°C CPU power: 11.00 W IO power: 20.00 W apm_xgene-isa-0001 => APMC0D29:01 Adapter: ISA adapter SoC Temperature: +33.0°C CPU power: 13.00 W IO power: 23.83 W Signed-off-by: Hoan Tran <hoan@os.amperecomputing.com>
* libsensors: Prevent warning with glibc >= 2.20Jean Delvare2019-09-021-1/+2
| | | | | | | | | | | Since glibc 2.20, the usage of _BSD_SOURCE is deprecated. Fix it like described here: https://sourceware.org/glibc/wiki/Release/2.20#Deprecation_of__BSD_SOURCE_and__SVID_SOURCE_feature_macros Inspired from a similar patch by Wolfram Sang for i2c-tools. Signed-off-by: Jean Delvare <jdelvare@suse.de>
* 3.5.0 releaseV3-5-0Ondřej Lysoněk2018-11-232-3/+3
| | | | | | | | | soname was bumped due to commit dcf23676cc264927 which introduced an ABI change. Fixes #29 Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
* Clarify how to update SENSORS_API_VERSIONOndřej Lysoněk2018-11-231-1/+1
| | | | | | | | | | My understanding is that SENSORS_API_VERSION should be the same as $(LIBMAINVER)$(LIBMINORVER) in lib/Module.mk. This means that the first digit of SENSORS_API_VERSION needs to be incremented whenever API *or* ABI changes, because we have to increment LIBMAINVER even if only ABI changes to avoid program breakage. Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
* libsensors: Treat devices without a known ancestor bus as virtualOndřej Lysoněk2018-11-231-4/+12
| | | | | | | | | | | | | | | | | | | Currently only hwmon devices that don't have a parent device are treated as virtual. Let's extend the concept to hwmon devices, that don't have a *recognized ancestor* device (hwmon devices that according to the kernel don't reside on a bus that we recognize). This change is meant to address cases where a hwmon device has a thermal class device for a parent, but the thermal class device doesn't have a parent device. These kind of hwmon devices started appearing in the 4.19 kernel due to commit f6b6b52ef7a54160c0. It was not reported as a kernel regression and fixed in the kernel, because according to Documentation/admin-guide/sysfs-rules.rst, the change was OK to make (it says "Position of devices along device chain can change"). Fixes #139 Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
* libsensors: Consider all ancestor devices when determining bus typeOndřej Lysoněk2018-11-231-17/+39
| | | | | | | | | | | | | | | | | | Go through all ancestor devices of a hwmon device until we find a device that resides on a bus that we recognize. This change is meant to address hwmon devices that don't reside directly on a bus, but have another device in the middle of the hiearchy. For example: ACPI device -> thermal device -> hwmon device These kind of hwmon devices started appearing in the 4.19 kernel due to commit f6b6b52ef7a54160c0. It was not reported as a kernel regression and fixed in the kernel, because according to Documentation/admin-guide/sysfs-rules.rst, the change was OK to make (it says "Position of devices along device chain can change"). Fixes #133 Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
* libsensors: Pass a resolved device path to sensors_read_one_sysfs_chipOndřej Lysoněk2018-11-231-11/+15
| | | | | | | | According to Documentation/admin-guide/sysfs-rules.rst, the "device" link "must never appear in any path as an element". This patch makes lm_sensors respect that. Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
* libsensors: Rename a local variableOndřej Lysoněk2018-11-231-4/+4
| | | | | | | | Rename a local variable to make it consistent with other parts of the code. The variable is called (more descriptively) "dev_name" in sensors_read_one_sysfs_chip(), so let's rename it to that. Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
* libsensors: Refactor bus type identification into a separate functionOndřej Lysoněk2018-11-231-33/+39
| | | | | | | Refactor bus type identification into a separate function in order to make the code more readable and easier to maintain. Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
* libsensors: Refactor device classification into a separate functionOndřej Lysoněk2018-11-231-72/+86
| | | | | | | Refactor device classification into a separate function in order to make the code more readable and easier to maintain. Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
* Fix stale linksOndřej Lysoněk2018-09-012-6/+2
| | | | | | Fixes #8 Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
* libsensors: Add support for SENSORS_BUS_TYPE_SCSIGuenter Roeck2018-08-114-0/+16
| | | | | | | Upcoming kernel drivers may add SCSI bus based sensors. Add support for it to libsensors. Signed-off-by: Guenter Roeck <linux@roeck-us.net>
* sensors: Add support for power min, lcrit, min_alarm, lcrit_alarmAndrew Lunn2018-06-292-0/+8
| | | | | | | | SFP modules measure the transmit power of the lazer. The sensor has expected minimum values, and alarms when these minimams are reached. Add support to sensors to print these. Signed-off-by: Andrew Lunn <andrew@lunn.ch>
* Adding documentation of the chip_name to bus_id relationship.Elliott Johnson2018-05-241-0/+12
|
* Add support for MDIO bussesAndrew Lunn2017-07-085-2/+17
| | | | | | | | | | | | Marvell Ethernet PHYs can contain a temperature sensor, which the kernel exports as an HWMON device. The PHY is on an MDIO bus. Add support for this bus types to libsensors. The sensor is then displayed by sensors(1): socaipsbus02100000ethernet02188000mdioswitch0mdio01-mdio-1 Adapter: MDIO adapter temp1: +54.0°C (crit = +100.0°C) Signed-off-by: Andrew Lunn <andrew@lunn.ch>
* Make include guards consistent in libsensorsDavid Frey2017-04-145-9/+9
| | | | | Signed-off-by: David Frey <dpfrey@gmail.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
* libsensors: Fix sparse warningsJean Delvare2015-05-152-19/+14
| | | | | | | | Sparse wants forward declarations of static functions to be static as well. For sensors_eval_expr, do that. For the error callbacks, rearrange the code so that the forward declarations are no longer needed.
* Add libsensors.map to the list of dependencies for libsensors.so.Jean Delvare2014-05-091-2/+2
|
* sensors.conf.5: Enhance the hysteresis documentationJean Delvare2014-04-231-1/+8
| | | | | | Mention all supported temperature hysteresis attributes. Recommend setting each limit before its hysteresis.
* libsensors: Add support for temp[1-*]_min_hyst and temp[1-*]_lcrit_hystJean Delvare2014-04-222-0/+4
| | | | | | | Add support for sysfs attributes temp[1-*]_min_hyst (already implemented by drivers adt7x10, lm77 and lm92) and temp[1-*]_lcrit_hyst (no known users yet.)
* Update my e-mail address and copyright yearsJean Delvare2014-03-2013-13/+13
|
* libsensors: Avoid insane memory allocationsJean Delvare2014-01-301-3/+4
| | | | | | | | | While there is no longer a hard limit to the number of sensor of a given type per chip, I feel a little uncomfortable having no limit at all on the amount of memory we may try to allocate. Add an arbitrary safety limit so that a design error or a bug in a hwmon driver can't result into an insane memory allocation.
* libsensors: Adjust memory pre-allocation stepsJean Delvare2014-01-291-1/+3
| | | | | | | | | Make memory pre-allocation steps depend on the sensor type. Things like voltages, temperatures or fans are typically plenty, however vid and chassis intrusion are typically only a few, and there can only be one beep_enable by design. This saves a small amount of temporary memory for cheap.
* libsensors: Get rid of FEATURE_SIZEJean Delvare2014-01-291-16/+15
| | | | | | | max_subfeatures is computed the first time it is needed, we can do exactly the same with FEATURE_SIZE. Introduce feature_size as a static variable so that we don't have to recompute it again and again.
* Bumb libsensors version, part 2Jean Delvare2014-01-291-1/+1
|
* Bump libsensors versionJean Delvare2014-01-291-1/+1
|
* libsensors: Get rid of arbitrary limit on per-type sensor countJean Delvare2014-01-292-77/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When gathering the attributes of each hwmon chip, libsensors uses a temporary structure in memory to order and group all the attributes into features. This temporary structure used to be a single array with room for every possible attribute/subfeature. While simple, this approach required to predefine a maximum number of per-type sensor that could be handled. In order to get rid of this arbitrary limit, which we hit and had to raise three times already, I changed the temporary structure to an array of dynamically allocated per-type subattribute arrays. This lets us not allocate any memory for types which aren't implemented by a given chip, and more importantly, this lets us reallocate room for more attributes of a given type as needed. I decided to allocate chunks of 8 attributes at a time, as this seemed a good compromise between two frequent reallocations and over-provisioning. It could be tweaked if needed. Icing on the cake, I benchmarked this change on two different systems and it results in performance gains. The total heap usage as reported by valgrind is down by 50% on average, with peak memory consumption (as reported by valgrind's massif) also down by 43% on average. The total instructions count (as reported by valgrind's callgrind) is down by 11% on average, with measured execution time also down by a few percents. Valgrind rocks, BTW. I have some ideas to optimize the memory allocations further, but I do not expect such a huge gain from them. They may not even improve peak memory consumption as massif shows the peak is somewhere else now at least in some cases.
* libsensors: rename function sensors_compute_maxJean Delvare2014-01-281-2/+2
| | | | | | The new function name, sensors_compute_max_sf, better reflects what the function is actually doing.
* libsensors: Increase MAX_SENSORS_PER_TYPE to 33Jean Delvare2014-01-141-1/+1
| | | | | | This is needed to properly support all temperatures reported by the coretemp driver on recent hardware.
* Extend the documentation of sensors_init() andJean Delvare2013-09-112-6/+23
| | | | | | | | sensors_get_adapter_name(). Paul Crawford asked questions about these as he found the original documentation unclear. I'm including my answers to his questions here, reformatted, so that other developers can benefit from them too.
* sensors.conf.5: Mention "sensors -u" to get the raw feature names.Jean Delvare2012-11-121-2/+6
| | | | git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@6091 7894878c-1315-0410-8ee3-d5d059ff63e0
* Merge 4 regular expressions into a single one, this is faster.Jean Delvare2012-04-191-4/+1
| | | | git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@6046 7894878c-1315-0410-8ee3-d5d059ff63e0
* libsensors: Fix warning about library path not in /etc/ld.so.confJean Delvare2012-04-191-4/+4
| | | | | | | | On recent systems, extra configuration files can live in /etc/ld.so.conf.d, so check this directory too, before warning. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@6045 7894878c-1315-0410-8ee3-d5d059ff63e0
* Prepare for release.Jean Delvare2012-03-142-2/+2
| | | | git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@6035 7894878c-1315-0410-8ee3-d5d059ff63e0
* Add support for fan[1-*]_max, fan[1-*]_min_alarm and fan[1-*]_max_alarmJean Delvare2012-03-062-0/+6
| | | | | | | | | attributes. These are defined in the standard sysfs interface for quite some time, and at least three drivers (max6650, lm63 and applesmc) implement them so we should support them. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@6029 7894878c-1315-0410-8ee3-d5d059ff63e0
* Upcoming change in sysfs will break the way libsensors detects ifJean Delvare2012-01-311-3/+5
| | | | | | | | sysfs is mounted. Adjust the implementation so that it still works after said change. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@6017 7894878c-1315-0410-8ee3-d5d059ff63e0
* Add support for additional sysfs attributes to libsensors and to sensors commandGuenter Roeck2012-01-092-0/+16
| | | | | | | | | | | | | | | | inX_average inX_lowest inX_highest tempX_lowest tempX_highest currX_average currX_lowest currX_highest git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@6007 7894878c-1315-0410-8ee3-d5d059ff63e0
* Prepare for release.Jean Delvare2011-03-281-1/+1
| | | | git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5949 7894878c-1315-0410-8ee3-d5d059ff63e0
* Only export from libsensors symbols which are actually public (i.e.Jean Delvare2011-03-062-1/+24
| | | | | | | | listed in the public header files and documented in the manual page.) Patch from Cristian Rodriguez <crrodriguez@opensuse.org>. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5939 7894878c-1315-0410-8ee3-d5d059ff63e0
* Added support for SENSORS_SUBFEATURE_FAN_PULSES to libsensors.Guenter Roeck2011-03-042-0/+2
| | | | git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5938 7894878c-1315-0410-8ee3-d5d059ff63e0
* Added support for humidity sensors to libsensorsGuenter Roeck2011-02-132-2/+16
| | | | git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5918 7894878c-1315-0410-8ee3-d5d059ff63e0
* Add support for recently added sysfs ABI attributesGuenter Roeck2011-02-092-0/+24
| | | | git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5917 7894878c-1315-0410-8ee3-d5d059ff63e0
* Added support for new sysfs attributesGuenter Roeck2010-12-142-0/+18
| | | | git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5898 7894878c-1315-0410-8ee3-d5d059ff63e0
* Compute MAX_*_SENSOR_TYPES at build time (#2378).Jean Delvare2010-12-142-2/+4
| | | | git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5897 7894878c-1315-0410-8ee3-d5d059ff63e0
* Compute MAX_SUBFEATURES at run-time (#2378).Jean Delvare2010-12-141-3/+35
| | | | git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5896 7894878c-1315-0410-8ee3-d5d059ff63e0
* Fixed typo in lib/sensors.conf.5.Guenter Roeck2010-12-091-1/+1
| | | | git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5887 7894878c-1315-0410-8ee3-d5d059ff63e0
* libsensors: Add support for intrusion detection.Jean Delvare2010-11-033-6/+18
| | | | git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5879 7894878c-1315-0410-8ee3-d5d059ff63e0
* Some features are never scaled.Jean Delvare2010-11-021-1/+2
| | | | git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5876 7894878c-1315-0410-8ee3-d5d059ff63e0
* Work with the feature type instead of the shifted subfeature type whereJean Delvare2010-11-021-13/+15
| | | | | | | possible. This makes the code more readable. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5875 7894878c-1315-0410-8ee3-d5d059ff63e0
* Reorganize the temporary sparse subfeature table. It's a little largerJean Delvare2010-11-021-21/+23
| | | | | | | | | | | | | now, but this make it possible to add more feature types without increasing the code complexity beyond reason. Define constants and use them to make the code even easier to understand. If anyone is really worried about the relatively large memory allocation, one way to improve the situation would be a two-pass approach. But remember the memory is only needed for a short time... git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5874 7894878c-1315-0410-8ee3-d5d059ff63e0