[ Bottom of Page | Previous Page | Next Page | Contents | Index | Library Home | Legal | Search ]

Kernel Extensions and Device Support Programming Concepts

MPQP Device Handler Interface Overview for the ARTIC960Hx PCI Adapter

The ARTIC960Hx PCI Adapter (PCI MPQP) device handler is a component of the communication I/O subsystem. The PCI MPQP device handler interface is made up of the following eight entry points:

tsclose Resets the PCI MPQP device to a known state and returns system resources back to the system on the last close for that adapter. The port no longer transmits or receives data.
tsconfig Provides functions for initializing and terminating the PCI MPQP device handler and adapter.
tsioctl Provides the following functions for controlling the PCI MPQP device:
Initiates a session with the PCI MPQP device handler.
Ends a session with the PCI MPQP device handler.
Reads the counter values accumulated by the PCI MPQP device handler.
Gets the status of the current PCI MPQP adapter and device handler.
Permits the data link control (DLC) to change certain profile parameters after the PCI MPQP device has been started.
tsopen Opens a channel on the PCI MPQP device for transmitting and receiving data.
tsmpx Provides allocation and deallocation of a channel.
tsread Provides the means for receiving data to the PCI MPQP device.
tsselect Provides the means for determining which specified events have occurred on the PCI MPQP device.
tswrite Provides the means for transmitting data to the PCI MPQP device.

Binary Synchronous Communication (BSC) with the PCI MPQP Adapter

The PCI MPQP adapter software performs low-level BSC frame-type determination to facilitate character parsing at the kernel-mode process level. Frames received without errors are parsed. A message type is returned in the status field of the extension block along with a pointer to the receive buffer. The message type indicates the type of frame that was received.

For control frames that only contain control characters, the message type is returned and no data is transferred from the board. For example, if an ACK0 was received, the message type MP_ACK0 is returned in the status field of the extension block. In addition, a NULL pointer for the receive buffer is returned. If an error occurs, the error status is logged by the device driver. Unlogged buffer overrun errors are an exception.

In BSC communications, the caller receives either a message type or an error status.

Read operations must be performed using the readx subroutine because the read_extension structure is needed to return BSC function results.

BSC Message Types Detected by the PCI MPQP Adapter

BSC message types are defined in the /usr/include/sys/mpqp.h file. The PCI MPQP adapter can detect the following message types:


Receive Errors Logged by the PCI MPQP Adapter

The PCI MPQP adapter detects many types of receive errors. As errors occur they are logged and the appropriate statistical counter is incremented. The kernel-mode process is not notified of the error. The following are the possible BSC receive errors logged by the PCI MPQP adapter:

If status and data information are available, but no extension block is provided, the read operation returns the data, but not the status information.

Errors, such as buffer overflow errors, can occur during the read data operation. In these cases, the return value is the byte count. Therefore, status should be checked even if no errno global value is returned.

Description of the PCI MPQP Card

The PCI MPQP card is a 4-port multiprotocol adapter that supports BSC and SDLC on the EIA232-D, X.21, and V.35 physical interfaces. When using the X.21 physical interface, X.21 centralized multipoint operation on a leased-circuit public data network is not supported.

[ Top of Page | Previous Page | Next Page | Contents | Index | Library Home | Legal | Search ]