Default handler for _IO_CONNECT messages
Synopsis:
#include <sys/iofunc.h>
int iofunc_open_default( resmgr_context_t *ctp,
io_open_t *msg,
iofunc_attr_t *attr,
void *extra );
Arguments:
- 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_open_t
structure that contains the message that the resource manager received.
For more information, see the documentation for iofunc_open().
- attr
- A pointer to the
iofunc_attr_t
structure that defines the characteristics of the device that the resource
manager is controlling.
- extra
- Extra information from the library.
If you're calling iofunc_open_default() from a resource manager's
open() function (see
resmgr_connect_funcs_t),
simply pass the extra argument that's passed to open().
Library:
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
Description:
The iofunc_open_default() function implements the default actions
for the _IO_CONNECT message in a resource manager.
This function calls:
You can place this function directly into the connect_funcs
table passed to
resmgr_attach(),
at the open position, or you can call
iofunc_func_init()
to initialize all of the functions to their default values.
For an outline of what this function does, see
Writing the entire function yourself
in the Fleshing Out the Skeleton chapter of Writing a Resource Manager.
Returns:
- EOK
- Successful completion.
- EINVAL
- The requested synchronized modes (O_SYNC, O_DSYNC,
O_RSYNC) aren't supported (i.e, IOFUNC_PC_SYNC_IO
isn't set in the device's mount configuration).
- ENOSPC
- There's insufficient memory to allocate the OCB.
- ENOMEM
- There's insufficient memory to allocate an internal data
structure required by resmgr_open_bind().
Classification:
QNX Neutrino
Safety: |
|
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
Yes |
Thread |
Yes |