odyssey/src/mm_poll.h

30 lines
647 B
C
Raw Normal View History

#ifndef MM_POLL_H_
#define MM_POLL_H_
/*
* machinarium.
*
* cooperative multitasking engine.
*/
typedef struct mm_pollif_t mm_pollif_t;
typedef struct mm_poll_t mm_poll_t;
struct mm_pollif_t {
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_t {
mm_pollif_t *iface;
};
#endif