iofunc_close_ocb_default()

Updated: April 19, 2023

Return the memory allocated for an OCB

Synopsis:

#include <sys/iofunc.h>

int iofunc_close_ocb_default( resmgr_context_t* ctp,
                              void* reserved,
                              iofunc_ocb_t* ocb );

Arguments:

ctp
A pointer to a resmgr_context_t structure that the resource-manager library uses to pass context information between functions.
reserved
This argument must be passed as NULL.
ocb
A pointer to the iofunc_ocb_t structure for the Open Control Block that was created when the client opened the resource.

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_default() function detaches the OCB specified by ocb, and releases the memory associated with it.

You can place this function directly into the resmgr_io_funcs_t table passed as the io_funcs argument to resmgr_attach(), at the close_ocb position, or you can call iofunc_func_init() to initialize all of the functions to their default values.

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, 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_default() function calls iofunc_close_ocb() to do the actual work.

Returns:

EOK
Success.

Classification:

QNX Neutrino

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