[Previous] [Contents] [Next]

iofunc_devctl()

Handle an _IO_DEVCTL message

Synopsis:

#include <sys/iofunc.h>

int iofunc_devctl( resmgr_context_t *ctp,
                   io_devctl_t *msg,
                   iofunc_ocb_t *ocb,
                   iofunc_attr_t *attr );

Library:

libc

Description:

The iofunc_devctl() function implements POSIX semantics for the client's devctl() call, which is received as an _IO_DEVCTL message by the resource manager. This function handles the DCMD_ALL* functionality.

This function handles at least the following device control messages:

Control message Description
DCMD_ALL_GETFLAGS Implements fcntl() get flags functionality.
DCMD_ALL_SETFLAGS Implements fcntl() set flags functionality.
DCMD_ALL_GETMOUNTFLAGS Returns the mount flag (mount->flags) for a resource that has a mount structure defined, else returns a mount flag of zero.

Supported mount flags (bitmask values) for DCMD_ALL_GETMOUNTFLAGS include:

_MOUNT_READONLY
Read only.
_MOUNT_NOEXEC
Can't exec from filesystem.
_MOUNT_NOSUID
Don't honor setuid bits on filesystem.

Any other device control messages return ENOTTY.

Returns:

EOK
Successful completion.
EINVAL
An attempt to set the flags for a resource that is synchronized, with no mount structure defined, or no synchronized I/O defined.
ENOTTY
An unsupported device control message was decoded.

Classification:

QNX 6

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

See also:

iofunc_chmod_default(), iofunc_chown_default(), iofunc_close_dup_default(), iofunc_close_ocb_default(), iofunc_devctl_default(), iofunc_lock_default(), iofunc_lseek_default(), iofunc_mmap_default(), iofunc_open_default(), iofunc_pathconf_default(), iofunc_stat_default(), iofunc_time_update(), iofunc_unblock_default(), iofunc_utime_default()


[Previous] [Contents] [Next]