// SPDX-License-Identifier: GPL-2.0 /* * led_hw_brightness_mon.c * * This program monitors LED brightness level changes having its origin * in hardware/firmware, i.e. outside of kernel control. * A timestamp and brightness value is printed each time the brightness changes. * * Usage: led_hw_brightness_mon <device-name> * * <device-name> is the name of the LED class device to be monitored. Pressing * CTRL+C will exit.
*/
fd = open(brightness_file_path, O_RDONLY); if (fd == -1) {
printf("Failed to open %s file\n", brightness_file_path); return 1;
}
/* * read may fail if no hw brightness change has occurred so far, * but it is required to avoid spurious poll notifications in * the opposite case.
*/
read(fd, buf, sizeof(buf));
pollfd.fd = fd;
pollfd.events = POLLPRI;
while (1) {
ret = poll(&pollfd, 1, -1); if (ret == -1) {
printf("Failed to poll %s file (%d)\n",
brightness_file_path, ret);
ret = 1; break;
}
clock_gettime(CLOCK_MONOTONIC, &ts);
ret = read(fd, buf, sizeof(buf)); if (ret < 0) break;
ret = lseek(pollfd.fd, 0, SEEK_SET); if (ret < 0) {
printf("lseek failed (%d)\n", ret); break;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.