Porting drivers to SCO OpenServer 5 from earlier SCO releases

Porting drivers to SCO OpenServer 5 from earlier releases

The following notes highlight differences that may affect device drivers being ported from earlier releases of SCO systems:

dynamic interrupt registration
Drivers that use add_intr_handler(D3oddi) to dynamically register interrupts should be rewritten to use idistributed(D3oddi). idistributed( ) provides support for distributed interrupts and must be used for level two multithreaded drivers and PCI drivers, but is also a more robust method of dynamically registering interrupts for single-threaded drivers running on all bus types.

LLI drivers
The LLI interface has been replaced by the simpler MDI for implementing network adapter drivers. Converting LLI drivers to use MDI is a straight-forward process that mainly involves removing code. and the MDI Network Driver Specification. Most existing LLI drivers that are not converted to MDI will run on SCO OpenServer 5 but they will not benefit from the features offered by the new architecture.

memory allocation
Drivers that use non-standard methods of allocating memory may require modification because of the dynamic memory feature in the SCO OpenServer 5 kernel. Drivers that use the documented memory allocation routines should not be affected.

STREAMS buffers
Because of the dynamic allocation of STREAMS buffers, these buffers may not be physically contiguous. In earlier releases, these buffers were preallocated when the system was initialized and so occupied contiguous blocks of memory. Certain drivers (such as devices that used DMA) relied on these buffers occupying contiguous memory and may need to be modified because of this. See ``Guidelines for STREAMS drivers''.

© 2005 The SCO Group, Inc. All rights reserved.