vi50_ioctl(3) CLIX vi50_ioctl(3)
NAME
vi50_ioctl - Performs I/O control functions on VI50 channel
LIBRARY
Intergraph Device Library (libix.a)
SYNOPSIS
#include <sys/xio/xerr.h>
#include <sys/xio/xreq.h>
int vi50_ioctl(
int channel ,
int func ,
int *arg );
PARAMETERS
channel
Specifies the VI50 channel on which the I/O control functions will
be performed.
func Specifies the I/O control functions that will be performed on
channel.
Possible values for func, as defined in <sys/xio/xreq.h> are as
follows:
VI50_GET_BUS_ADDRESS
The arg parameter contains the address of an integer to hold
the physical VME bus address of the VI50 device.
VI50_SET_SIGNAL_NUMBER
The arg parameter contains the address of an integer
specifying the signal to be used. Only SIGUSER1 or SIGUSER2
are accepted.
VI50_CLEAR_SIGNAL_NUMBER
The arg parameter is not used.
VI50_INQ_SIGNAL_NUMBER
The arg parameter contains the address of an integer
location to which the previously set signal number is
returned.
VI50_GRANT_ACCESS
The arg parameter contains the address of an integer
location holding the process ID of the process to be given
2/94 - Intergraph Corporation 1
vi50_ioctl(3) CLIX vi50_ioctl(3)
access. Only the owner of the device may successfully make
this call. The arg parameter must be a child of the owner.
VI50_CHECK_ACCESS
The arg parameter is not used. The call will succeed if the
requesting process has been granted access to the device.
arg Points to the argument to func. (See the description for func for
more information.)
DESCRIPTION
The vi50_ioctl() performs func on channel, provided channel is open and
the requesting process has access to it.
RETURN VALUES
The vi50_ioctl() function returns a value of 0 if successful. If not
successful, one of the failure codes listed in the ERRORS section is
returned.
ERRORS
The vi50_ioctl() function fails if one of the following is true:
[XIO_FAILURE]
The system does not contain the driver needed to support the
request.
[VI50_INVALID_DEVICE]
There is no hardware corresponding to the channel.
[VI50_NOT_OWNER]
The device specified by channel is not open.
[VI50_NO_ACCESS]
The requesting process does not have access to channel.
[VI50_UNKNOWN_COMMAND]
The func parameter does not represent a valid request.
[VI50_COPY_FAIL]
The driver could not copy the parameters into kernel space, or
could not copy return value into user space.
[VI50_SIG_SET]
The user process has already specified a signal to be used for
driver to user communication.
[VI50_INVALID_SIG]
The signal specified is not SIGUSER1 or SIGUSER2.
2 Intergraph Corporation - 2/94
vi50_ioctl(3) CLIX vi50_ioctl(3)
[VI50_SIG_NOT_SET]
The process has never specified a signal to be used.
[VI50_ACCESS_FULL]
The maximum number of processes allowed access to the VI50 has been
reached.
[VI50_NOT_CHILD]
The arg parameter does not represent a child of the owner process.
[VI50_REDUNDANT_REQ]
The process ID specified in the call to GRANT_ACCESS already has
access.
RELATED INFORMATION
Functions: vi50_open(3)
Files: xvi50(7)
2/94 - Intergraph Corporation 3