diff --git a/lib/c/2014/labcomm2014_fd_reader.c b/lib/c/2014/labcomm2014_fd_reader.c index 23d5ba547d2e6fd98679e6b3b7d27ebb5281009d..ad2d22285e2b9b31b25e727fa40e9b33da6502c7 100644 --- a/lib/c/2014/labcomm2014_fd_reader.c +++ b/lib/c/2014/labcomm2014_fd_reader.c @@ -20,6 +20,7 @@ */ #include <errno.h> +#include <unistd.h> #include <stdlib.h> #include <string.h> #include "labcomm2014_private.h" diff --git a/lib/c/2014/labcomm2014_fd_writer.c b/lib/c/2014/labcomm2014_fd_writer.c index 0e4d00937ea7c51fa659fb758d9d8fc086e561bd..42c9dbcc14eb765dbae6547000994a2c7c3c8153 100644 --- a/lib/c/2014/labcomm2014_fd_writer.c +++ b/lib/c/2014/labcomm2014_fd_writer.c @@ -20,6 +20,7 @@ */ #include <errno.h> +#include <unistd.h> #include <string.h> #include <stdlib.h> #include <stdarg.h> diff --git a/lib/c/2014/labcomm2014_time.c b/lib/c/2014/labcomm2014_time.c index 8805f90d2c50c2d2c67246ad30cc171ae52baa74..eb5e1f5e43ab2cf4c6e03739078b57d022267874 100644 --- a/lib/c/2014/labcomm2014_time.c +++ b/lib/c/2014/labcomm2014_time.c @@ -22,17 +22,21 @@ #include <errno.h> #include "labcomm2014_scheduler_private.h" +#define TIME_time(time, ...) time +#define TIME(func, ...) \ + if (TIME_time(__VA_ARGS__) && \ + TIME_time(__VA_ARGS__)->action->func) { \ + return TIME_time(__VA_ARGS__)->action->func(__VA_ARGS__); \ + } \ + return -ENOSYS; + int labcomm2014_time_free(struct labcomm2014_time *s) { - if (s && s->action->free) - return s->action->free(s); - return -ENOSYS; + TIME(free, s); } int labcomm2014_time_add_usec(struct labcomm2014_time *s, uint32_t usec) { - if (s && s->action->add_usec) - return s->action->add_usec(s, usec); - return -ENOSYS; + TIME(add_usec, s, usec); }