#ifndef MM_POLL_H #define MM_POLL_H /* * machinarium. * * cooperative multitasking engine. */ typedef struct mm_pollif mm_pollif_t; typedef struct mm_poll mm_poll_t; struct mm_pollif { char *name; mm_poll_t *(*create)(void); void (*free)(mm_poll_t*); int (*shutdown)(mm_poll_t*); int (*step)(mm_poll_t*, int); int (*add)(mm_poll_t*, mm_fd_t*, int); int (*read)(mm_poll_t*, mm_fd_t*, mm_fd_callback_t, void*, int); int (*write)(mm_poll_t*, mm_fd_t*, mm_fd_callback_t, void*, int); int (*del)(mm_poll_t*, mm_fd_t*); }; struct mm_poll { mm_pollif_t *iface; }; #endif /* MM_POLL_H */