.\"
-.\" Copyright (c) 2008 Apple Inc. All rights reserved.
+.\" Copyright (c) 2008-2015 Apple Inc. All rights reserved.
.\"
.\" @APPLE_LICENSE_HEADER_START@
.\"
The
.Fn kqueue
system call
-provides a generic method of notifying the user when an kernel
+provides a generic method of notifying the user when a kernel
event (kevent) happens or a condition holds, based on the results
of small pieces of kernel code termed filters.
A kevent is identified by an (ident, filter) pair and specifies
.It EV_RECEIPT
This flag is useful for making bulk changes to a kqueue without draining any
pending events. When passed as input, it forces EV_ERROR to always be returned.
-When a filter is successfully added. The
+When a filter is successfully added, the
.Va data
field will be zero.
.It EV_ONESHOT
set this flag internally.
.It EV_EOF
Filters may set this flag to indicate filter-specific EOF condition.
+.It EV_OOBAND
+Read filter on socket may set this flag to indicate the presence of out of
+band data on the descriptor.
.It EV_ERROR
See
.Sx RETURN VALUES
.Va data
contains the number of bytes of protocol data available to read.
.Pp
+The presence of EV_OOBAND in
+.Va flags ,
+indicates the presence of out of band data on the socket
+.Va data
+equal to the potential number of OOB bytes availble to read.
+.Pp
If the read direction of the socket has shutdown, then the filter
also sets EV_EOF in
.Va flags ,
.Bl -tag -width NOTE_SIGNAL
.It NOTE_EXIT
The process has exited.
+.It NOTE_EXITSTATUS
+The process has exited and its exit status is in filter specific data. Valid only on child processes and to be used along with NOTE_EXIT.
.It NOTE_FORK
The process created a child process via
.Xr fork 2
.It NOTE_REAP
The process was reaped by the parent via
.Xr wait 2
-or similar call.
+or similar call. Deprecated, use NOTE_EXIT.
.El
.Pp
On return,
data is in nanoseconds
.It NOTE_ABSOLUTE
data is an absolute timeout
+.It NOTE_CRITICAL
+system makes a best effort to fire this timer as scheduled.
+.It NOTE_BACKGROUND
+system has extra leeway to coalesce this timer.
+.It NOTE_LEEWAY
+ext[1] holds user-supplied slop in deadline for timer coalescing.
.El
.Pp
If fflags is not set, the default is milliseconds. The timer will be periodic unless EV_ONESHOT is specified.
or
.Fn kevent64 .
This filter automatically sets the EV_CLEAR flag internally.
-.It EVFILT_SESSION
-Takes the audit session ID to monitor as the identifier and the events to watch for in
-.Va fflags ,
-and returns when one or more of the requested session events occurs.
-To monitor for events for any audit session the value AS_ANY_ASID
-should be used as the identifier. With AS_ANY_ASID, as new audit
-sessions are created they are included as if the were added
-individually. The events to monitor are:
-.Bl -tag -width NOTE_AS_UPDATE
-.It NOTE_AS_START
-A new audit session has started.
-.It NOTE_AS_END
-All the processes in the audit session have exited.
-.It NOTE_AS_CLOSE
-This audit session is no longer valid in the kernel. In other words, it
-is now safe to dispose of any cached information about this session or
-reuse its session ID for a new audit session.
-.It NOTE_AS_UPDATE
-The audit session information was updated. The audit session information is
-considered immutable once initially set. If this becomes enforced in
-the kernel then this event may no longer be needed and may become
-obsolete.
-.It NOTE_AS_ERR
-This flag is returned if the system was unable to attach an event to a
-new session when the audit session ID of AS_ANY_ASID
-is used. This is usually due to resource limitations.
-.El
-.Pp
-On return,
-.Va fflags
-contains the events which triggered the filter,
-.Va ident
-contains the audit session ID, and
-.Va data
-contains the audit user ID.
-This filter automatically sets the EV_CLEAR flag internally.
.El
.Pp
----