HPlogo HP-UX Reference Volume 4 of 5 > h

hpib_pass_ctl(3I)

Series 800 Only
» 

Technical documentation

Complete book in PDF

 » Table of Contents

 » Index

NAME

hpib_pass_ctl() — change active controllers on HP-IB (OBSOLETED AT 10.30)

SYNOPSIS

#include <dvio.h>

int hpib_pass_ctl(int eid, int ba);

DESCRIPTION

hpib_pass_ctl() passes control of a bus to an inactive controller on that bus. The inactive controller becomes the active controller of that bus. eid is an entity identifier of an open HP-IB raw bus device file obtained from an open(), dup(), fcntl(), or creat() call. ba is the bus address of the intended device.

Not all devices can accept control. Pass control passes only active control of the bus; it cannot pass system control of the bus. The specified interface must be the current active controller but need not be the system controller. The pass control operation does not suspend program execution if the inactive controller does not take active control of the bus. However, the interface is no longer active controller.

RETURN VALUE

hpib_pass_ctl() returns 0 (zero) if successful, or -1 if an error was encountered.

ERRORS

hpib_pass_ctl() fails under any of the following circumstances, and sets errno (see errno(2)) to the value in square brackets:

[EBADF]

eid does not refer to an open file.

[ENOTTY]

eid does not refer to an HP-IB raw bus device file.

[EIO]

the interface is not the active controller.

[ETIMEDOUT]

a timeout occurred.

[EINVAL]

ba is not a valid HP-IB bus address.

[EACCES]

The interface associated with this eid is locked by another process and O_NDELAY is set for this eid (see io_lock(3I)).

DEPENDENCIES

If the interface is not currently the active controller, hpib_pass_ctl() sets errno to [EACCES] instead of to [EIO].

AUTHOR

hpib_pass_ctl() was developed by HP.

© Hewlett-Packard Development Company, L.P.