NAME
zx25int_conf - Send acknowledgment for a received
interrupt packet
SYNOPSIS
#include <zcom/zcomsys.h>
#include <zcom/zcomx25.h>
int zx25int_conf (zxip, vzap)
zx25info_type *zxip;
zaddr_type *vzap;
DESCRIPTION
Routine zx25int_conf requests
that an Interrupt Confirmation packet be sent in response to an
inbound interrupt message. This function should only be called if
the Virtual Circuit has have been configured for application handling
of Interrupt Confirmations by setting the INTC bit in the VC's
option word. If the INTC bit in the option word has not been set,
then the Interrupt Confirmation packet is sent automatically by
the X.25 firmware running on the ACC card whenever interrupt data arrives.
When application handling of Interrupt Confirmations has not been
configured, the zx25int_conf function
returns immediately without taking any action.
This function must be called once for each interrupt data
message received (using zread).
Failure to acknowledge each and every inbound interrupt data message
will result in the VC being reset (when T26 expires, which is normally
180 seconds).
The libraries libzx25.a, libzcom_c.a, and libpthread.a must
be linked into the calling program by giving the "-lzx25
-lzcom_c -lpthread" options to cc(1) or ld(1).
Threads Considerations
This routine may be called from a multi-threaded application
using the POSIX (1003.1c) kernel threads API package. It has the
following characteristics when called by multi-threaded applications:
- cancellation point
Thread cancellation can occur when a thread calls
this routine.
- async-cancel unsafe
The calling thread's cancelability type
must be PTHREAD_CANCEL_DEFERRED if cancellation is enabled.
- async-signal unsafe
It cannot be called from a signal handler.
- fork unsafe
It cannot be called by a child process after fork(2) but before exec(2).
See the NOTES section that follows for more information on
using this routine in a multi-threaded application.
PARAMETERS:
- zxip
ZCOM X.25 access data structure (from zx25info call).
- vzap
ZCOM address of the Virtual Circuit terminal.
RETURN VALUE
Routine zx25int_conf returns
a 0 when successful. If there
was a ZCOM error, it returns a negative value.
See /opt/acc/include/zcom/zcomsys.h for
the list of ZCOM error codes and their meanings. If zx25int_conf itself failed, one of
the following positive error
codes is returned:
- ZxeUNKNOWN_L2_ZLU (02)
Unable to find the X.25 link ZLU for this SVC ZLU.
- ZxeREQ_TIMEOUT (04)
The remote ZCOM system did not respond within 30
seconds.
- ZxeINVALID_STATE (06)
The ZLU specified is not in the data transfer state.
- ZxeLINK_IS_DOWN (11)
The X.25 link is down. Unable to send acknowledgment
to D-bit data packet.
- ZxeUNKNOWN_VC_ZLU (13)
The ZLU specified is not an X.25 Virtual Circuit
ZLU.
- ZxeMUST_CALL_ZX25INFO
(17)
The zx25info() routine
has not been called. You must call zx25info before issuing
any other zx25...() calls.
- ZxeBAD_ZX25INFO_ADDR
(18)
The pointer to the zx25info_type structure does
not contain the same address that was passed to the zx25info() routine.
- ZxeX25_NOT_INITIALIZED
(98)
The ACC X.25 subsystem has not been initialized.
You must run zx25d_init before
issuing any zx25...() calls.
- ZxeX25_TBL_FULL (99)
The X.25 routines maintain an internal table for
accessing remote ZCOM nodes. This table has room to access up to
20 different ZCOM nodes (including the local node). This request
attempted to access the 21st ZCOM remote node and the internal table
used had insufficient space to save the routing data.
NOTES
The calling program (or thread) must call zx25info before calling this routine.
In a multi-threaded application, each thread must make a separate
call to zx25info using a per-thread
ZCOM X.25 access data buffer zxip.
The per-thread data buffer can then be used to call this routine.
EXAMPLE
#include <zcom/zcomsys.h>
#include <zcom/zcomx25.h>
int ierr;
zx25info_type zxi;
if (ierr = zx25int_conf (&zxi, &vzaddr)) {
/* error return code */
}
else {
/* good return code */
}
FILES
- /opt/acc/include/zcom/zcomsys.h
ZCOM system general include file, containing data
types, data structures, constants, error codes, masks, etc. Note
that this must be the first include file before any other ZCOM include
files.
- /opt/acc/include/zcom/zcomx25.h
ZCOM X.25 access data structure declarations.
SEE ALSO
zx25info(3x)