Technical data

SunOS 5.5 Ioctl Requests streamio(7I)
new user file descriptor is allocated for the file pointer contained in the
message. The new file descriptor is placed in the fd field of the strrecvfd
structure. The structure is copied into the user data buffer pointed to by
arg. On failure, errno is set to one of the following values:
EAGAIN A message is not present at the stream head read
queue, and theO_NDELAY or O_NONBLOCK flag is set.
EBADMSG The message at the stream head read queue is not a
message containing a passed file descriptor.
EFAULT arg points outside the allocated address space.
EMFILE NOFILES file descriptors are currently open.
ENXIO Hangup received on fildes.
EOVERFLOW uid or gid is too large to be stored in the structure
pointed to by arg.
I_LIST Allows the user to list all the module names on the stream, up to and
including the topmost driver name. If arg is NULL, the return value is
the number of modules, including the driver, that are on the stream
pointed to by fildes. This allows the user to allocate enough space for the
module names. If arg is non-NULL, it should point to an str_list struc-
ture that has the following members:
int sl_nmods;
struct str_mlistsl_modlist;
The str_mlist structure has the following member:
char l_name[FMNAMESZ+1];
sl_nmods indicates the number of entries the user has allocated in the
array and on return, sl_modlist contains the list of module names. The
return value indicates the number of entries that have been filled in. On
failure, errno may be set to one of the following values:
EINVAL The sl_nmods member is less than 1.
EAGAIN Unable to allocate buffers
I_ATMARK Allows the user to see if the current message on the stream head read
queue is ‘‘marked’’ by some module downstream. arg determines how
the checking is done when there may be multiple marked messages on
the stream head read queue. It may take the following values:
ANYMARK Check if the message is marked.
LASTMARK Check if the message is the last one marked on the
queue.
modified 24 Jan 1995 7I-335