iofunc_close_ocb()

Return the memory allocated for an OCB

Synopsis:

#include <sys/iofunc.h>

int iofunc_close_ocb( resmgr_context_t* ctp,
                      iofunc_ocb_t* ocb,
                      iofunc_attr_t* attr );

Arguments:

ctp
A pointer to a resmgr_context_t structure that the resource-manager library uses to pass context information between functions.
ocb
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 the iofunc_attr_t structure that describes the characteristics of the device that's associated with your 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_close_ocb() function detaches the OCB specified by ocb, and releases the memory associated with it.


Note: This function assumes that ocb points to an iofunc_ocb_t. If you encapsulate iofunc_ocb_t in your own OCB it must be the first field of your OCB; otherwise, you can't call this function. If you provide an ocb_free() function in the mount structure then it's called at this point. This means that at least the iofunc_ocb_t portion of your OCB is no longer valid after iofunc_close_ocb() returns.

The iofunc_close_ocb() function calls iofunc_ocb_detach() on your behalf.

Returns:

EOK
Success.

Classification:

QNX Neutrino

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

See also:

iofunc_attr_t, iofunc_close_dup(), iofunc_close_ocb_default(), iofunc_ocb_free(), iofunc_ocb_t, resmgr_context_t

Writing a Resource Manager