blob: 7f4d79404a2256042ec9bed3e6048e3c99e1a3b3 [file] [log] [blame]
/*
* Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
/*
* poller: an abstraction around epoll, shamelessly stolen from ellyjones.
*
* Based on https://github.com/elly/elib/blob/master/include/elib/reactor.h
*/
#ifndef LIBQMI_POLLER_H
#define LIBQMI_POLLER_H
struct poller *poller_new(void);
void poller_free(struct poller *poller);
int poller_fd(struct poller *poller);
struct polled *poller_add(struct poller *poller, int fd);
int poller_poll(struct poller *poller);
void *polled_priv(struct polled *polled);
void polled_set_priv(struct polled *polled, void *priv);
void polled_set_read(struct polled *polled, void (*read)(struct polled *));
void polled_set_write(struct polled *polled, void (*write)(struct polled *));
void polled_set_close(struct polled *polled, void (*close)(struct polled *));
int polled_update(struct polled *polled);
int polled_delete(struct polled *polled);
#endif /* LIBQMI_POLLER_H */