/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Generic Event Handling * * Copyright (C) 2018 Laurent Pinchart * * This file comes from the omap3-isp-live project * (git://git.ideasonboard.org/omap3-isp-live.git) * * Copyright (C) 2010-2011 Ideas on board SPRL * * Contact: Laurent Pinchart */ #ifndef __EVENTS_H__ #define __EVENTS_H__ #include #include #include "list.h" struct events { struct list_entry events; bool done; int maxfd; fd_set rfds; fd_set wfds; fd_set efds; }; enum event_type { EVENT_READ = 1, EVENT_WRITE = 2, EVENT_EXCEPTION = 4, }; void events_watch_fd(struct events *events, int fd, enum event_type type, void(*callback)(void *), void *priv); void events_unwatch_fd(struct events *events, int fd, enum event_type type); bool events_loop(struct events *events); void events_stop(struct events *events); void events_init(struct events *events); void events_cleanup(struct events *events); #endif