iofunc_ocb_attach()

Initialize an Open Control Block

Synopsis:

#include <sys/iofunc.h>

int iofunc_ocb_attach( 
        resmgr_context_t * ctp,
        io_open_t * msg,
        iofunc_ocb_t * ocb,
        iofunc_attr_t * attr,
        const resmgr_io_funcs_t * io_funcs );

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().
ocb
NULL, or a pointer to the iofunc_ocb_t structure for the Open Control Block that was created when the client opened the resource.
attr
A pointer to a iofunc_attr_t structure that defines the characteristics of the device that the resource manager handles.
io_funcs
A pointer to a resmgr_io_funcs_t that specifies the I/O functions for the resource manager.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The iofunc_ocb_attach() function examines the mode specified by the io_open msg, and increments the read and write count flags (ocb->attr->rcount and ocb->attr->wcount), and the locking flags (ocb->attr->rlocks and ocb->attr->wlocks), as specified by the open mode.

This function is called by iofunc_open_default() as part of its initialization.

This function allocates the memory for the OCB if you pass NULL as the ocb.

Returns:

EOK
Successful completion.

Classification:

QNX Neutrino

Safety:
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

iofunc_attr_init(), iofunc_attr_t, iofunc_ocb_detach(), iofunc_ocb_t, iofunc_open_default(), resmgr_context_t, resmgr_io_funcs_t

Writing a Resource Manager

Resource Managers chapter of Getting Started with QNX Neutrino