#include "trigger.h" #include #include "close.h" #include "ndelay.h" #include "open.h" #include "select.h" static int fd = -1; void trigger_set() { if (fd != -1) close(fd); fd = open_read("lock/trigger"); } void trigger_selprep(int *nfds, fd_set *rfds) { if (fd != -1) { FD_SET(fd, rfds); if (*nfds < fd + 1) *nfds = fd + 1; } } int trigger_pulled(fd_set *rfds) { if (fd != -1) if (FD_ISSET(fd, rfds)) return 1; return 0; } void triggerpull() { int fd; fd = open_write("lock/trigger"); if (fd >= 0) { ndelay_on(fd); write(fd, "", 1); /* if it fails, bummer */ close(fd); } }