[ Previous | Next | Contents | Search ]
AIXLink/X.25 1.1 for AIX: Guide and Reference

List of X.25 Programming References

This list, for programs using the COMIO emulation port, includes:

Subroutines

The list of X.25 subroutines is organized by function:

Initialization and Termination Subroutines

The subroutines that begin and end X.25 sessions are:

x25_init
                          Initializes the API for a particular X.25 port.
x25_term
                          Terminates the API for a particular X.25 port.

Network Subroutines

The network subroutines that establish calls, transmit data, clear calls, and allocate network resources are:

x25_ack
                          Acknowledges data received with the D-bit set.
x25_call
                          Sets up a switched virtual circuit and establishes the call.
x25_call_accept
                          Accepts an incoming call.
x25_call_clear
                             Clears a call.
x25_listen
                          Starts listening for incoming calls.
x25_deafen
                          Turns off listening.
x25_interrupt
                          Sends an interrupt.
x25_pvc_alloc
                             Allocates a permanent virtual circuit.
x25_pvc_free
                          Frees a permanent virtual circuit.
x25_receive
                          Receives a message and indicates the message type.
x25_reset
                          Resynchronizes communications.
x25_reset_confirm
                          Sends a reset-confirmation message.
x25_send
                          Sends data.

Counter Subroutines

To monitor and control what is happening during a call, your application can use these counters supplied by the API:

x25_ctr_get
                          Gets a counter.
x25_ctr_remove
                          Removes a counter.
x25_ctr_test
                          Gets the current value of a counter.
x25_ctr_wait
                          Suspends the current process until one of the counters has exceeded a specified value, usually 0.

Management Subroutines

These subroutines can be used to control and monitor X.25 links:

x25_device_query
                          Returns information about some of the attributes of an X.25 adapter.
x25_circuit_query
                          Returns information about a virtual circuit.

API Structures

The list of X.25 API structures is organized by function:

Miscellaneous Structures

cb_link_name_struct
                          Used to indicate the name of the X.25 port.
cb_msg_struct
                             Used to indicate the type of message being received.
ctr_array_struct
                          Used to store the counter values and identifiers for use with the x25_ctr_wait structure.

Structures Used to Establish Calls and Transfer Data

cb_call_struct
                             Used for calls made and accepted.
cb_data_struct
                             Used for data transferred during a call.
cb_fac_struct
                             Used for information about optional facilities being used.
cb_pvc_alloc_struct
                          Used to indicate the logical channel number and port assigned to a PVC.

Structures Used to Clear, Interrupt, and Reset Calls

cb_clear_struct
                          Used for calls being cleared.
cb_int_data_struct
                          Used for data sent or received in an interrupt packet.
cb_res_struct
                             Used for data sent or received in a reset-request packet.

Structures Used to Manage X.25 Communications

cb_circuit_info_struct
                          Used for information about a virtual circuit.
cb_dev_info_struct
                          Used for information about an X.25 adapter.
cb_link_stats_struct, x25_query_data, and x25_stats
                          Used for statistics for an X.25 port.

API Error Codes

The list of X.25 API error codes is organized by function:

X.25-Specific Error Codes

For X.25-specific error conditions, the x25_errno flag is set to one of the following values:

X25ACKREQ One or more packets require acknowledgement. Issue the x25_ack subroutine before continuing.
X25AUTH The calling application does not have system permission to control the status of the link.
X25AUTHCTR The application does not have permission to remove this counter because it did not issue the corresponding the x25_ctr_get subroutine.
X25AUTHLISTEN The application cannot listen to this name, because the corresponding entry in the routing list has a user name that excludes the user running the application. Use another routing list name, or change the user name in the routing list entry.
X25BADCONNID The connection identifier is invalid.
X25BADDEVICE The X.25 port name is invalid.
X25BADID The connection identifier or listen identifier is invalid.
X25BADLISTENID The listen identifier is invalid.
X25CALLED The called address is invalid. Check that the address is correct and is a null-terminated string.
X25CALLING The calling address is invalid. Check that the address is correct and is a null-terminated string.
X25CTRUSE The counter has a nonzero value.
X25INIT X.25 is already initialized for this X.25 port, so it cannot be initialized again.
X25INVCTR The specified counter does not exist. (In the case of the x25_ctr_wait subroutine, the counter is one of an array of counters.)
X25INVFAC An optional facility requested is invalid. Check the structure cb_fac_struct.
X25INVMON The monitoring mode is invalid.
X25LINKUP The X.25 port is already connected.
X25LINKUSE The X.25 port still has virtual circuits established; it may still be in use. Either free all virtual circuits or disconnect the port using the override.
X25LONG The parameter is too long. Check each of the parameters for this subroutine.
X25MAXDEVICE Attempts have been made to connect more X.25 ports than are available. Check the smit configuration to see how many ports are available.
X25MONITOR X.25 traffic on this X.25 port is already being monitored by another application. The other application must stop monitoring before any other application can start monitoring.
X25NAMEUSED Calls for this name are already being listened for.
X25NOACKREQ No packets currently require acknowledgment.
X25NOCARD The X.25 adapter is either not installed or not functioning.
X25NOCTRS No counters are available.
X25NODATA No data has arrived for this connection identifier. Issue the x25_ctr_wait subroutine to be notified when data arrives.
X25NODEVICE    The X.25 device driver is either not installed or not functioning.
X25NOLINK The X.25 port is not connected. Issue the x25_link_connect subroutine, or use the xmanage command to connect it.
X25NONAME The name is not in the routing list. Add the name or use one that is already in the list.
X25NOSUCHLINK The X.25 port does not exist. Check the smit configuration.
X25NOTINIT The application has not initialized X.25 communications. Issue the x25_init subroutine.
X25NOTPVC This is not defined as a permanent virtual circuit (PVC). Check the smit configuration.
X25PROTOCOL An X.25 protocol error occurred.
X25PVCUSED This permanent virtual circuit (PVC) is already allocated to another application. The other application must free the PVC before it can be used.
X25RESETCLEAR The call was reset or cleared during processing. Issue the x25_receive subroutine to obtain the reset-indication or clear-indication packet. Then issue the x25_reset_confirm or x25_clear_confirm subroutine, as necessary.
X25SYSERR An error occurred that was not an X.25 error. Check the value of errno.
X25TABLE The routing list cannot be updated because the xroute command is using it. Try again after xroute command has completed.
X25TIMEOUT A time-out problem occurred.
X25TOOMANYVCS No virtual circuits are free on the listed X.25 ports.
X25TRUNCTX The packet size is too big for internal buffers, so data cannot be sent.

System Error Codes

For non-X.25-specific error conditions, the x25_errno flag is set to X25SYSERR , and the errno global variable is set to one of the following values:

EFAULT Indicates a bad address pointer.
EINTR A signal was caught during the call.
EIO An I/O error occurred.
ENOMEM Could not allocate memory for device information.
ENOSPC There are no buffers available in the pool.
EPERM Calling application does not have sufficient authorization.

Header Files

x25sdefs.h Contains the structures used by the X.25 application programming interface (API).

Example Programs

pvcrcv Receives a call using a permanent virtual circuit.
pvcxmit Sends a call using a permanent virtual circuit.
svcrcv Receives a call using a switched virtual circuit.
svcxmit Sends a call using a switched virtual circuit.

[ Previous | Next | Contents | Search ]