2017-05-24 11:04:19 +00:00
|
|
|
#ifndef MM_POLL_H
|
|
|
|
#define MM_POLL_H
|
2017-04-07 15:04:43 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* machinarium.
|
|
|
|
*
|
|
|
|
* cooperative multitasking engine.
|
2020-04-02 11:00:56 +00:00
|
|
|
*/
|
2017-04-07 15:04:43 +00:00
|
|
|
|
2017-05-24 11:04:19 +00:00
|
|
|
typedef struct mm_pollif mm_pollif_t;
|
2020-04-02 11:00:56 +00:00
|
|
|
typedef struct mm_poll mm_poll_t;
|
2017-04-07 15:04:43 +00:00
|
|
|
|
2020-12-28 10:43:31 +00:00
|
|
|
struct mm_pollif {
|
2020-04-02 11:00:56 +00:00
|
|
|
char *name;
|
2017-04-07 15:04:43 +00:00
|
|
|
mm_poll_t *(*create)(void);
|
2020-04-02 11:00:56 +00:00
|
|
|
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);
|
2020-12-28 10:43:31 +00:00
|
|
|
int (*read_write)(mm_poll_t *, mm_fd_t *, mm_fd_callback_t, void *,
|
|
|
|
int);
|
2020-04-02 11:00:56 +00:00
|
|
|
int (*del)(mm_poll_t *, mm_fd_t *);
|
2017-04-07 15:04:43 +00:00
|
|
|
};
|
|
|
|
|
2020-12-28 10:43:31 +00:00
|
|
|
struct mm_poll {
|
2017-04-07 15:04:43 +00:00
|
|
|
mm_pollif_t *iface;
|
|
|
|
};
|
|
|
|
|
2017-05-24 11:04:19 +00:00
|
|
|
#endif /* MM_POLL_H */
|