diff options
author | Dimitri Staessens <[email protected]> | 2018-05-14 09:20:44 +0200 |
---|---|---|
committer | Sander Vrijders <[email protected]> | 2018-05-14 11:40:09 +0200 |
commit | 38cfdc212c623a46038f005b0c1604c3fdaf3762 (patch) | |
tree | 57d9c0860f014afc9cb10de022d3e72fe4fa8fbc /doc/man/fqueue.3 | |
parent | eaf14819c8cdab3c5ae1d678b0a12977f8b2d9e1 (diff) | |
download | ouroboros-38cfdc212c623a46038f005b0c1604c3fdaf3762.tar.gz ouroboros-38cfdc212c623a46038f005b0c1604c3fdaf3762.zip |
lib: Add event types to fqueue
The event type of the current event in the fqueue can now be requested
using the fqueue_type() command. Currently events for packets
(FLOW_PKT), flows (FLOW_UP, FLOW_DOWN) and allocation (FLOW_ALLOC,
FLOW_DEALLOC) are specified. The implementation only tracks FLOW_PKT
at this point.
Signed-off-by: Dimitri Staessens <[email protected]>
Signed-off-by: Sander Vrijders <[email protected]>
Diffstat (limited to 'doc/man/fqueue.3')
-rw-r--r-- | doc/man/fqueue.3 | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/doc/man/fqueue.3 b/doc/man/fqueue.3 index 00c28d4c..abd21cfe 100644 --- a/doc/man/fqueue.3 +++ b/doc/man/fqueue.3 @@ -19,6 +19,8 @@ on flows \fBint fqueue_next(fqueue_t * \fIfq\fB); +\fBint fqueue_type(fqueue_t * \fIfq\fB); + \fBint fevent(fset_t * \fIset\fB, fqueue_t * \fIfq\fB, const struct timespec * \fItimeo\fB); @@ -36,6 +38,22 @@ an \fBfqueue_t\fR \fIfq\fR. The \fBfqueue_next\fR() function retrieves the next event (a \fIflow descriptor\fR) that is ready within the event queue \fIfq\fR. +The \fBfqueue_type\fR() function retrieves the type for the current +event on the fd that was returned by \fBfqueue_next\fR(). Event types +are: +.RS 4 +FLOW_PKT: A new packet arrived on this flow and is ready for reading. + +FLOW_UP: The flow is now marked UP and ready for read/write. + +FLOW_DOWN: The flow is now marked DOWN and cannot be written to. + +FLOW_ALLOC: A pending flow is now allocated. + +FLOW_DEALLOC: The flow is deallocated by the other (N+1 or N-1) +process. +.RE + The \fBfevent\fR() function retrieves all events that occured on any \fIflow descriptor\fR within \fIset\fR and returns them in the event queue \fBfq\fR. If a \fBstruct timespec *\fI timeo\fR can be provided, @@ -50,7 +68,14 @@ On success, \fBfqueue_create\fR() returns a pointer to an \fBfqueue_destroy\fR() has no return value. -On success, \fBfevent\fR() returns the number of events that occured in \fIset\fR. +On success, \fBfevent\fR() returns the number of events that occured +in \fIset\fR. + +On success, \fBfqueue_next\fR() returns the next file descriptor for +which an event occurred. + +On success, \fBfqueue_type\fR() returns the event type for the last +event returned by \fBfqueue_next\fR(). .SH ERRORS @@ -62,10 +87,10 @@ were available to create the \fBfqueue_t\fR. .B -EINVAL An invalid argument was passed (\fIfq\fR or \fIset\fR was \fINULL\fR). -In addition, \fBfqueue_next\fR() can return +In addition, \fBfqueue_next\fR() or \fBqueue_type\fR() can return .B -EPERM -No more fds available in \fIfq\fR. +No more fds available or no current event in \fIfq\fR. and \fBfevent\fR() can return |