Interface(4dsp)


Interface -- specify kernel module interface symbols

Description

The files in $ROOT/$MACH/etc/conf/interface.d are Installable Driver/Tunable Parameters kernel configuration files that contain specifications of interfaces and their symbols which can be referenced from installed kernel modules. These interface files allow for remapping symbols to alternate symbols, thereby facilitating compatibility support for old interfaces.

The name of each file determines the interface name and version that it describes. The filenames must be in the following form:

name.version

The idbuild(1M) command uses these files to determine which symbols, if any, in the Driver.o files should be remapped to different symbol names before linking. The idbuild(1M) command uses the set of $interface lines in a module's Master(4dsp) file to determine which Interface files to use. The module is not accepted if it references symbols not covered by its $interface lines.

Interface checking is done at idbuild time for static modules and at load time for loadable modules.

Each interface file contains lines with the following whitespace-separated fields:

``symbol-name''
``new-symbol-name''

The ``new-symbol-name'' field is optional. If present, it specifies the alternate symbol to use in place of ``symbol-name''.

If the same ``symbol-name'' appears on multiple lines, the last one is used. The special ``new-symbol-name'', $dropped, can be used to drop a previouslylisted symbol from the interface. This is most useful with $replace.

The following special lines also can appear in Interface files:

$replace version
$depend module-name-list

The description of each line follows:

$replace
Specifies that this interface is based on a previous version with the same name. This acts as if the corresponding name.version file were directly included at this point. Also, it establishes an ordering between versions of an interface. This ordering is used by idinstall(1M), when converting old Master files that do not have $interface lines, if symbols match multiple interface versions. In this case, the ``oldest'' version is used.

$depend
Specifies the kernel modules that implement the interface. These modules are loaded automatically whenever a module that uses this interface is loaded.

References

idbuild(1M), idinstall(1M), Master(4dsp)
30 January 1998
© 1998 The Santa Cruz Operation, Inc. All rights reserved.