A clone of btpd with my configuration changes.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

59 lignes
1.1 KiB

  1. #ifndef BTPD_EVLOOP_H
  2. #define BTPD_EVLOOP_H
  3. #include <sys/time.h>
  4. #include <stdint.h>
  5. #include "timeheap.h"
  6. #define EV_READ 1
  7. #define EV_WRITE 2
  8. #define EV_TIMEOUT 3
  9. typedef void (*evloop_cb_t)(int fd, short type, void *arg);
  10. #if defined(EVLOOP_EPOLL) || defined(EVLOOP_KQUEUE)
  11. struct fdev {
  12. evloop_cb_t cb;
  13. void *arg;
  14. int fd;
  15. uint16_t flags;
  16. int16_t index;
  17. };
  18. #elif defined(EVLOOP_POLL)
  19. struct fdev {
  20. int i;
  21. };
  22. #else
  23. #error No evloop method defined.
  24. #endif
  25. struct timeout {
  26. evloop_cb_t cb;
  27. void *arg;
  28. struct th_handle th;
  29. };
  30. int evloop_init(void);
  31. int evloop(void);
  32. int fdev_new(struct fdev *ev, int fd, uint16_t flags, evloop_cb_t cb,
  33. void *arg);
  34. int fdev_del(struct fdev *ev);
  35. int fdev_enable(struct fdev *ev, uint16_t flags);
  36. int fdev_disable(struct fdev *ev, uint16_t flags);
  37. void evtimer_init(struct timeout *, evloop_cb_t, void *);
  38. int evtimer_add(struct timeout *, struct timespec *);
  39. void evtimer_del(struct timeout *);
  40. void evtimers_run(void);
  41. struct timespec evtimer_delay(void);
  42. int evtimer_gettime(struct timespec *);
  43. #endif