iofunc_ocb_attach()
QNX SDP8.0C Library ReferenceAPIDeveloper
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 then calls resmgr_open_bind() to bind the newly created OCB to the request.
The iofunc_ocb_attach() 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.
- ENFILE
- There are too many open files in the system; either allocation of the ocb failed or an attempt was made to attach more that UINT16_MAX ocbs to the same attribute structure.
- ENOMEM
- Not enough memory was available.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | Yes |
Thread | Yes |
Page updated: