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_lock_default.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_lock_default.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_lock_default.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_lock_default.html on line 8
Default handler for _IO_LOCK messages
#include <sys/iofunc.h>
int iofunc_lock_default( resmgr_context_t * ctp,
io_lock_t * msg,
iofunc_ocb_t * ocb );
- ctp
- A pointer to a
resmgr_context_t
structure that the resource-manager library uses to pass context information
between functions.
- msg
- A pointer to the io_lock_t structure that contains
the message that the resource manager received; see
iofunc_lock().
- ocb
- A pointer to the
iofunc_ocb_t
structure for the Open Control Block that was created when the
client opened the resource.
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
The iofunc_lock_default() function
implements POSIX semantics for the _IO_LOCK message
(generated as a result of a client
fcntl() call).
You can place this function directly into the io_funcs
table passed to
resmgr_attach(),
at the lock position, or you can call
iofunc_func_init()
to initialize all of the functions to their default values.
The iofunc_lock_default() function verifies that the client has the
necessary permissions to effect a lock on the resource.
This includes checking for read and write permissions against
the type of lock being effected.
If so, the lock is performed, modifying elements of the
ocb->attr structure, and updating
ocb->attr->locklist to reflect the new lock.
This function calls
iofunc_lock() to do the actual work.
- EOK
- Successful completion.
- EINVAL
- An invalid range was specified for the lock operation,
or an invalid lock operation was attempted.
- EBADF
- An attempt to perform a read lock on a write-only resource,
or a write lock on a read-only resource was attempted.
- ENOMEM
- Insufficient memory exists to allocate an internal lock structure.
QNX Neutrino
Safety: | |
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
Yes |
Thread |
Yes |
iofunc_func_init(),
iofunc_lock(),
iofunc_ocb_t,
iofunc_time_update(),
resmgr_attach(),
resmgr_context_t,
resmgr_io_funcs_t
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_lock_default.html on line 198
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_lock_default.html on line 198