Warning: main(/www/www/htdocs/style/globals.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/i/iofunc_notify_trigger.html on line 1
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/globals.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/i/iofunc_notify_trigger.html on line 1
Warning: main(/www/www/htdocs/style/header.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/i/iofunc_notify_trigger.html on line 8
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/header.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/i/iofunc_notify_trigger.html on line 8
Send notifications to queued clients
#include <sys/iofunc.h>
void iofunc_notify_trigger( iofunc_notify_t *nop,
int count,
int index );
- nop
- An array of three
iofunc_notify_t
structures that represent (in order), the input, output, and out-of-band
notification lists whose entries you want to examine; for information about
this structure, see the documentation for iofunc_notify().
- count
- The count that you want to compare to the trigger value for the event.
- index
- The index into the nop array that you want to check; one of
the following:
- IOFUNC_NOTIFY_INPUT
- IOFUNC_NOTIFY_OUTPUT
- IOFUNC_NOTIFY_OBAND
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
The iofunc_notify_trigger() function
examines all entries given in the list
maintained at nop [index] to see if the event should be delivered
to the client.
If the specified count
is greater than or equal to
the trigger count for the particular notification list element,
this function calls
MsgDeliverEvent()
to deliver the event to the client
whose rcvid is stored in the notification list element, and the
list element is disarmed.
Note that if the client has specified a code of SI_NOTIFY, then
the value that the client specified (e.g. the value member of
the struct sigevent) has the top three bits ORed
with the reason for the trigger (this is the expression _NOTIFY_COND_INPUT << index),
as in the following table:
- index = IOFUNC_NOTIFY_INPUT
- 0x10000000, or _NOTIFY_COND_INPUT
- index = IOFUNC_NOTIFY_OUTPUT
- 0x20000000, or _NOTIFY_COND_OUTPUT
- index = IOFUNC_NOTIFY_OBAND
- 0x40000000, or _NOTIFY_COND_OBAND
If the client has specified a code of something other than SI_NOTIFY
then this routine doesn't modify the value member in any way.
The sys/iofunc.h file also defines the
IOFUNC_NOTIFY_INPUT_CHECK(),
IOFUNC_NOTIFY_OUTPUT_CHECK(), and
IOFUNC_NOTIFY_OBAND_CHECK() macros, which you can use to see if
there are enough bytes in the lists to make it worthwhile to call
iofunc_notify_trigger() to notify clients about:
#define IOFUNC_NOTIFY_INPUT_CHECK(__nop, __cnt, __tran) ...
#define IOFUNC_NOTIFY_OUTPUT_CHECK(__nop, __cnt) ...
#define IOFUNC_NOTIFY_OBAND_CHECK(__nop, __cnt, __tran) ...
The arguments are:
- __nop
- An array of three
iofunc_notify_t
structures that represent (in order), the input, output, and out-of-band
notification lists whose entries you want to examine.
- __cnt
- The count that you want to compare to the trigger value for the event.
- __tran
- (IOFUNC_NOTIFY_INPUT_CHECK() and
IOFUNC_NOTIFY_OBAND_CHECK() only)
Nonzero if you want to arm the trigger when the list makes the transition
from empty to nonempty (for example, as
mq_notify()
does).
See
Writing a Resource Manager
QNX Neutrino
Safety: | |
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
Yes |
Thread |
Yes |
iofunc_notify(),
iofunc_notify_remove(),
sigevent
“Handling ionotify() and select()”
in the Handling Other Messages
chapter of Writing a Resource Manager
Resource Managers
chapter of Getting Started with QNX Neutrino
Warning: main(/www/www/htdocs/style/footer.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/i/iofunc_notify_trigger.html on line 229
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/footer.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/i/iofunc_notify_trigger.html on line 229