/* Copyright (c) 2015 Google Inc
 * Barret Rhoden <brho@cs.berkeley.edu>
 * See LICENSE for details. */

#pragma once

#include <ros/event.h>

/* FD Tap commands.  The commands get passed to the device, but intermediate
 * code will process them to some extent. */
#define FDTAP_CMD_ADD 			1
#define FDTAP_CMD_REM 			2
#define FDTAP_CMD_MOD 			3

/* FD Tap Event/Filter types.  These are somewhat a mix of kqueue and epoll
 * filters and are in flux.  For instance, we don't support things like
 * ONESHOT/DISPATCH yet.
 *
 * When using these, you're communicating directly with the device, so really
 * anything goes, but we'll try to standardize on a few flags. */
#define FDTAP_FILT_READABLE		0x00000001
#define FDTAP_FILT_WRITABLE		0x00000002
#define FDTAP_FILT_WRITTEN		0x00000004
#define FDTAP_FILT_DELETED		0x00000008
#define FDTAP_FILT_ERROR		0x00000010	/* may overwrite *data */
#define FDTAP_FILT_RENAME		0x00000020
#define FDTAP_FILT_TRUNCATE		0x00000040
#define FDTAP_FILT_ATTRIB		0x00000080
#define FDTAP_FILT_PRIORITY		0x00000100
#define FDTAP_FILT_HANGUP		0x00000200
#define FDTAP_FILT_RDHUP		0x00000400

/* When an event on FD matches filter, that event will be sent to ev_q with
 * ev_id, with an optional data blob passed back.  The specifics will depend on
 * the type of ev_q used.  For a CEQ, the event will coalesce, and the data will
 * be a 'last write wins'. */
struct fd_tap_req {
	int							fd;
	int							cmd;
	int							filter;
	int							ev_id;
	struct event_queue			*ev_q;
	void						*data;
};
