10 #include <glog/logging.h>
17 #include <sys/ioctl.h>
20 #define USER_TASK _IOW('A', 1, int32_t *)
32 int signal_value = info->si_int;
33 DLOG(
INFO) <<
"Received signal " << info->si_int <<
" from kernel";
36 if (std::shared_ptr<Adsd3500Sensor> sptr = sensor.lock()) {
37 sptr->adsd3500InterruptHandler(signal_value);
48 sigemptyset(&act.sa_mask);
49 act.sa_flags = (SA_SIGINFO | SA_RESTART);
55 int debug_fd = ::open(
"/sys/kernel/debug/adsd3500/value", O_RDWR);
57 LOG(
WARNING) <<
"Failed to open the debug sysfs. "
58 <<
"Interrupts support will not be available!";
63 LOG(
WARNING) <<
"Failed to register the application process with the "
64 "kernel driver. IOCTL failed.";
82 std::weak_ptr<Adsd3500Sensor> sensor) {
87 std::weak_ptr<Adsd3500Sensor> sensor) {}