[ 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:
CIO_START
Initiates a session with the PCI MPQP device handler.
CIO_HALT
Ends a session with the PCI MPQP device handler.
CIO_QUERY
Reads the counter values accumulated by the PCI MPQP device handler.
CIO_GET_STAT
Gets the status of the current PCI MPQP adapter and device handler.
MP_CHG_PARMS
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.

Note
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:

MP_ACK0 MP_DISC MP_STX_ETX
MP_ACK1 MP_SOH_ITB MP_STX_ENQ
MP_WACK MP_SOH_ETB MP_DATA_ACK0
MP_NAK MP_SOH_ETX MP_DATA_ACK1
MP_ENQ MP_SOH_ENQ MP_DATA_NAK
MP_EOT MP_STX_ITB MP_DATA_ENQ
MP_RVI MP_STX_ETB

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.

Note
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 ]