Structure of a connect message that redirects a client to another resource
struct _io_connect_link_reply {
uint32_t reserved1;
uint32_t file_type;
uint8_t eflag;
uint8_t reserved2[1];
uint16_t chroot_len;
uint32_t umask;
uint16_t nentries;
uint16_t path_len;
/*
struct _io_connect_entry server[nentries];
char path[path_len];
or
struct _server_info info;
io_?_t msg;
*/
};
A resource manager uses the _io_connect_link_reply structure
in a reply to a client that redirects the client to another resource.
The members include:
- file_type
- The file type; one of the following (defined in
<sys/ftype.h>):
- _FTYPE_ANY — the path name can be anything.
- _FTYPE_LINK — reserved for the Process Manager.
- _FTYPE_MOUNT — receive mount requests on the path
(path must be NULL).
- _FTYPE_MQUEUE — reserved for a message-queue manager.
- _FTYPE_PIPE — reserved for a pipe manager.
- _FTYPE_SEM — reserved for a semaphore manager.
- _FTYPE_SHMEM — reserved for a shared memory object.
- _FTYPE_SOCKET — reserved for a socket manager.
- _FTYPE_SYMLINK — reserved for the Process Manager.
- eflag
- Extended flags:
- _IO_CONNECT_EFLAG_DIR — the path referenced a
directory.
- _IO_CONNECT_EFLAG_DOT — the last component of a
path was . or .. (i.e. the current or parent
directory).
- chroot_len
- The length of chroot in the returned path.
- umask
- One of:
- S_IFBLK — block special.
- S_IFCHR — character special.
- S_IFDIR — directory.
- S_IFIFO — FIFO special.
- S_IFLNK — symbolic link.
- S_IFMT — type of file.
- S_IFNAM — special named file.
- S_IFREG — regular.
- S_IFSOCK — socket.
- nentries
- If this member is zero, the path is a symbolic link.
- path_len
- The length of the path including the terminating null character.
If this member is zero, the path is null-terminated.
QNX Neutrino
_io_connect,
_io_connect_ftype_reply,
resmgr_connect_funcs_t
Writing a Resource Manager