iofunc_stat_default()

Default handler for _IO_STAT messages

Synopsis:

#include <sys/iofunc.h>

int iofunc_stat_default( resmgr_context_t *ctp,
                         io_stat_t *msg,
                         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.
msg
A pointer to the io_stat_t structure that contains the message that the resource manager received; see below.
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_stat_default() function implements POSIX semantics for the client's stat() or fstat() call, which is received as an _IO_STAT message by the resource manager.

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

The iofunc_stat_default() function calls:

io_stat_t structure

The io_stat_t structure holds the _IO_STAT message received by the resource manager:

struct _io_stat {
    uint16_t                    type;
    uint16_t                    combine_len;
    uint32_t                    zero;
};

typedef union {
    struct _io_stat             i;
    struct stat                 o;
} io_stat_t;

The I/O message structures are unions of an input message (coming to the resource manager) and an output or reply message (going back to the client).

The i member is a structure of type _io_stat that contains the following members:

type
_IO_STAT.
combine_len
If the message is a combine message, _IO_COMBINE_FLAG is set in this member. For more information, see Combine Messages chapter of Writing a Resource Manager.

The o member is a structure of type stat; for more information, see stat().

Returns:

-1, to indicate to the resource manager library that it should return one part from the ctp->iov structure (see resmgr_context_t) to the client.

Classification:

QNX Neutrino

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

See also:

iofunc_func_init(), iofunc_ocb_t, iofunc_stat(), iofunc_time_update(), resmgr_attach(), resmgr_context_t, resmgr_io_funcs_t, stat()

Writing a Resource Manager

Resource Managers chapter of Getting Started with QNX Neutrino