AIF: OS Enhancements [ COMMUNICATOR 3000 MPE MPE/iX RELEASE 4.0 ] MPE/iX Communicators
COMMUNICATOR 3000 MPE MPE/iX RELEASE 4.0
AIF: OS Enhancements
by Kay Chan, Gail Duro, and Joanne Gong
Commercial Systems Division
PRODUCT OVERVIEW
The Architected Interface Facility: Operating System product (AIF: OS),
HP36374A, has provided several new or enhanced interfaces for this
release of MPE/iX. These enhancements include information access AIFs for
devices and device classes, new functional interfaces for KSAM XL, and
additional functionality for AIF ports. Each of these areas will be
described below.
DEVICE ARCHITECTED INTERFACES
The device architected interfaces provide a set of new information access
AIFs that return or update the MPE/iX internal device data structures and
provide control operations for a terminal, printer, tape drive, or disk.
There are three new device AIFs, and the system-wide AIFs have expanded
to access device information.
AIFDEVICEGET - New
The AIFDEVICEGET interface retrieves internal device characteristics for
configured devices. The type of information returned includes:
* general device data, such as device type, availability, ownership
state, and owner's pin
* terminal device data, such as terminal type, speed, mode, and
various character settings
* tape drive data, such as generic status, density, tape position
and conditions
* disk drive data, such as disk size in pages
AIFDEVICEPUT - New
The AIFDEVICEPUT interface modifies device characteristics or performs
various control operations on the device. Examples of these
characteristics include the following:
* terminal functions, such as changing the terminal type, speed,
mode, and various character settings
* printer functions, such as setting the left margin, lines per
inch, end of job, and enabling the trailer/header
* tape functions, such as setting auto reply and density, rewind,
unload, remote load/unload, remote online, write tape mark,
forward/backward file or record, enable/disable immediate report
and data compression
AIFDEVCLASSGET - New
The AIFDEVCLASSGET interface returns information for a device class.
This includes the number of devices in the class and a list of LDEVs in
the class.
AIFSYSWIDEGET - Changed
Two new areas have been added to system-wide AIFs to obtain a list of
LDEV numbers and device class names based on some selection criteria.
This information can be used as input keys to the AIFDEVICEGET,
AIFDEVICEPUT, and AIFDEVCLASSGET interfaces.
The device area returns the LDEV numbers and ufids (unique file
identifier) of devices based on the user specified selection criteria.
The use of a range of LDEV numbers and wildcarding on device class names
is permitted on input items.
The device class area returns the device class names and the device class
table indexes based on the user-specified selection criteria. The use of
a range of LDEV numbers and wildcarding on device class names is
permitted on input items.
KSAM XL ARCHITECTED INTERFACES
The KSAM XL architected interfaces add new functionality to the AIF:OS
product. They provide a mechanism for accessing a KSAM XL file in the
copy mode. The main function of the copy mode is to access a file in the
physical sequence without considering its logical data structures.
Software vendors can use the KSAM XL AIFs to develop their software,
where fast copying of the KSAM XL file is desired. Software involving
the functions of backup, fast copy, and data search of the KSAM XL file
may take advantage of this new functionality.
The KSAM XL AIFs include three new AIFs. These three new interfaces must
be used together to perform the functionality of copying a KSAM XL file.
They are designed for backup software to read a physical block from an
existing KSAM XL file then write that block to a new KSAM XL file.
Another KSAM XL feature that can be utilized by software developers is
the BLOCK-READ feature in the FREAD file system interface. Users of KSAM
XL AIFs may also want to utilize this feature in their application
development.
AIFKSMREAD - New
The AIFKSMREAD interface sequentially reads a block from an existing KSAM
XL file in its physical sequence. In order to call this interface, the
KSAM XL fil must be opened for ready-only in copy mode with MR and NOBUF
options. The AIFKSMREAD interface returns end-of-file status after the
last byte of the file has been transferred.
AIFKSMCREATE - New
The AIFKSMCREATE interface creates a raw KSAM XL file structure based on
the file-specific information obtained from the first AIFKSMREAD call.
Similar to the RESTORE command, this interface allows the file to be
created by an alternative creator, in an alternative group, account,
volume, logical device, volume class, or volume set. It also provides
the option of retaining the file's original modification and access
dates.
AIFKSMWRITE - New
The AIFKSMWRITE interface sequentially writes a block of data to the
newly created KSAM XL file in the physical sequence. This interface
returns an end-of-file status after the last byte of the file has been
completely written.
KSAM XL Block-Read Feature by FREAD Intrinsic
The BLOCK-READ feature of the MPE/iX FREAD intrinsic reads a block of
KSAM XL records in the physical sequence. It provides the capability of
transferring multiple KSAM XL records by FREAD. Using this feature does
not require privilege mode capability but the file must be opened in copy
mode, with MR, and NOBUF options and read-only access. The data being
transferred includes the data records and their overheads. The user must
know the physical structure of the data area in the KSAM XL file in order
to extract the logical data from the buffer.
PORTS ARCHITECTED INTERFACES
The current AIF user port facility provides a fast means of interprocess
communication by sending messages from one process to another. Several
enhancements to the AIF:OS port facility have been included in MPE/iX
Release 4.0. These enhancements include:
* the ability to asynchronously receive incoming port messages
* an increase in the number of AIF ports and the maximum message
size
* the ability to issue an AIFPORTSEND without an explicit port
opened by the calling process
The AIF user port facility is an application interface (API) that sits on
top of the internal ports subsystem. Asynchronous receipt of incoming
messages has been implemented using the process interrupt feature of
ports. These interrupts are used to signal the arrival of a message on a
port. When a port interrupt occurs, the executing sequence of a process
is interrupted and control is transferred to a specified sequence of
code, the port interrupt handler is provided by the caller. When the
port interrupt handler completes, the process's interrupted state is
restored, and the process resumes its normal execution.
AIFPORTOPEN - Changed
The AIFPORTOPEN interface has been enhanced to include new items that
allow the application developer to specify the port interrupt handler to
be invoked upon the receipt of a message for asynchronous ports. When
the port is opened, the handler can be enabled or disabled by setting a
new handler state item. The handler state can also be enabled later by
using the new AIFPORTINT interface. The handler state must be enabled
and the user code must be running at execution level 2 (privileged mode)
or execution level 3 (user mode) for the handler to be invoked. Critical
operating system operations run at lower privilege levels and are not
interrupted by a message arriving on an AIF port; these port interrupts
are delayed until the user code returns to execution level 2 or 3.
When an asynchronous port is created, the creator is the only receiver,
and the port can only be opened as temporary. When the creator process
terminates, subsequent sends to the port return an error.
AIFPORTINT - New
The AIFPORTINT interface is new and allows users to change the handler
state of one or more asynchronous ports. The interrupt handlers are
enabled or disabled using this routine for the specified list of port
ids, as long as the calling process is the receiver/creator for all ports
in the list. For every port id that is specified, the handler state
prior to the current change will be returned. This allows the caller to
return all asynchronous ports for the current process back to their
previous state the next time AIFPORTINT is called. When the handler
state is disabled, the invocation of the user interrupt handler is
delayed, this way the user can protect their own critical areas of code.
AIFPORTRECEIVE - Changed
Normally for an asynchronous port, there is a one to one relationship
between messages and handler invocation. However, when AIFPORTINT is
called to disable the handler invocation, multiple messages with pending
interrupts continue to queue up. The AIFPORTRECEIVE contains a new item
that allows a user to receive a message that has a pending interrupt
without subsequently invoking the handler.
AIFPORTSEND - Changed
A new item has been added to AIFPORTSEND that allows the caller to send
to an AIF port that has not been explicitly opened by the caller. This
new item can only be specified when a nowait send is being issued.
ADDITIONAL CHANGES
Along with the enhancements to the interfaces, resource limits were
expanded for this MPE/iX release. The total number of AIF ports
available grew from 1024 to 2048. Additionally, the message size
increased from 4096 to 8144 bytes.
MPE/iX Communicators