X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/fe8ab488e9161c46dd9885d58fc52996dc0249ff..04b8595b18b1b41ac7a206e4b3d51a635f8413d7:/bsd/sys/event.h diff --git a/bsd/sys/event.h b/bsd/sys/event.h index 66efc61b0..44cef5438 100644 --- a/bsd/sys/event.h +++ b/bsd/sys/event.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003-2012 Apple Inc. All rights reserved. + * Copyright (c) 2003-2015 Apple Inc. All rights reserved. * * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * @@ -177,14 +177,20 @@ struct kevent64_s { * (which always returns true for regular files - regardless of the amount * of unread data in the file). * - * On input, EV_OOBAND specifies that only OOB data should be looked for. - * The returned data count is the number of bytes beyond the current OOB marker. + * On input, EV_OOBAND specifies that filter should actively return in the + * presence of OOB on the descriptor. It implies that filter will return + * if there is OOB data available to read OR when any other condition + * for the read are met (for example number of bytes regular data becomes >= + * low-watermark). + * If EV_OOBAND is not set on input, it implies that the filter should not actively + * return for out of band data on the descriptor. The filter will then only return + * when some other condition for read is met (ex: when number of regular data bytes + * >=low-watermark OR when socket can't receive more data (SS_CANTRCVMORE)). * - * On output, EV_OOBAND indicates that OOB data is present + * On output, EV_OOBAND indicates the presence of OOB data on the descriptor. * If it was not specified as an input parameter, then the data count is the - * number of bytes before the current OOB marker. If at the marker, the - * data count indicates the number of bytes available after it. In either - * case, it's the amount of data one could expect to receive next. + * number of bytes before the current OOB marker, else data count is the number + * of bytes beyond OOB marker. */ #define EV_POLL EV_FLAG0 #define EV_OOBAND EV_FLAG1 @@ -474,7 +480,7 @@ extern int knote_link_wait_queue(struct knote *kn, struct wait_queue *wq, wait_q extern int knote_unlink_wait_queue(struct knote *kn, struct wait_queue *wq, wait_queue_link_t *wqlp); extern void knote_fdclose(struct proc *p, int fd); extern void knote_markstayqueued(struct knote *kn); - +extern void knote_clearstayqueued(struct knote *kn); #endif /* !KERNEL_PRIVATE */ #else /* KERNEL */