sol_read Serial Optical Link Device Handler Entry Point

Purpose

Note: This function is supported in AIX® 5.1 and earlier only.

Provides the means for receiving data from the Serial Optical Link (SOL) device handler.

Syntax

#include  <sys/device.h>
#include  <sys/comio.h>
#include  <sys/soluser.h>

int sol_read ( devno,  uiop,  chan,  arg)
dev_t devno;
struct uio *uiop;
int chan;
struct read_extension *arg;

Parameters

Item Description
devno Specifies the major and minor device numbers.
uiop Points to a uio structure. For a calling user-mode process, the uio structure specifies the location and length of the caller's data area in which to transfer information. The kernel fills in the uio structure for the user.
chan Specifies the channel number assigned by the sol_mpx entry point.
arg Has a value of null or else points to a read_extension structure. This structure is defined in the /usr/include/sys/comio.h file.

Description

Note: Only user-mode callers should use the sol_read entry point.

The sol_read entry point provides the means for receiving data from the SOL device handler. When a user-mode caller issues a read, readx, readv, or readvx subroutine, the kernel calls the sol_read entry point. Any data available for the specified channel is returned.

For this operation, the arg parameter may point to the read_extension structure. This structure is defined in the /usr/include/sys/comio.h file and contains the following fields:

Field Description
status Contains additional information about the completion of the sol_read entry point. Possible values for this field are:
CIO_OK
Indicates the operation was successful.
CIO_BUF_OVRFLW
Indicates the user buffer was too small, and the data was truncated.
netid Not used
sessid Not use.

The data received does contain the 4-byte field for the processor ID. Therefore, the first byte of data will be the netid field.

The sol_read entry point functions with a Serial Link Adapter and Serial Optical Channel Converter that have been correctly configured for use on a qualified network. Consult hardware specifications for more information on configuring hardware and network qualifications.

Execution Environment

The sol_read entry point can be called from the process environment only.

Return Values

Item Description
EACCES Indicates an illegal call from a kernel-mode user.
ENODEV Indicates an invalid minor number was specified.
EINTR Indicates a system call was interrupted.
EMSGSIZE Indicates the data was too large to fit into the receive buffer and that no arg parameter was supplied to provide an alternate means of reporting this error with a status of CIO_BUF_OVFLW.
EFAULT Indicates an invalid address was supplied.
ENOCONNECT Indicates the device has not been started.