Structure of a connect message that redirects a client to another resource
Synopsis:
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;
*/
};
Description:
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.