10.3. Setting FFIO library parameters (UNICOS systems only)

The UNICOS operating system supports a number of library parameters that can be tuned. Sites can use these parameters to change both the performance of the libraries and some of their limits. Through a similar technique, users can also change these parameters when linking an application.

When SEGLDR is invoked, one of its first actions is to read the /lib/segdirs file, which defines the parameters of SEGLDR; this file contains an LINCLUDE directive for the file /usr/lib/segdirs/def_lib, which by default is empty. An administrator can place directives in this file to modify the SEGLDR behavior.

The following HARDREF directives select optional capabilities of the FFIO package to include in the standard libraries compiled into user programs by default.

HARDREF Directives
HARDREF = 

FFIO option

_f_ffvect 

F-type records, fixed length

_v_ffvect 

V-type records, variable length

_x_ffvect 

X-type records

_cos_ffvect 

COS-type records, COS blocking

_tape_ffvect 

Magnetic tape handlers

_cdc_ffvect 

CDC 60-bit record handlers

_sds_ffvect 

SDS-resident file handlers

_mr_ffvect 

Memory-resident file handlers

_trc_ffvect 

Trace layer

_txt_ffvect 

Text-type records, newline separated records

_fd_ffvect 

Specified file descriptor

_blx_ffvect 

Blank compression handlers

_cch_ffvect 

Cache layer

Each of these directives refers to a list of function pointers. Each function-pointer list represents the set of routines necessary to process one or more options on the assign(1) command. Some of these layers are tied to specific hardware, such as tape or SDS. Others are foreign conversion options such as ETA System V-format data. Not all of these layers are loaded into user programs by default. As delivered, the UNICOS operating system can read and write data in many different ways, however, only a subset of these capabilities is loaded into user programs by default, so that user executables are smaller.

If UNICOS source code is available, it is better to change the switches in fdcconfig.h, rather than to use these HARDREF directives, primarily because assign still issues warnings to users who use layers disabled in fdcconfig.h. Also, changing fdcconfig.h is the only way to disable layers that are shipped enabled by default.