DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
STREAMS in DDI 8

Porting SCO OpenServer 5 STREAMS drivers and modules

SCO OpenServer 5 Release 5 provides a SVID 3-compatible user-level STREAMS implementation. This provides much of the System V Release 4 functionality that is in SVR5, but does not include features such as auto-push modules and STREAMS-based tty devices.

The SCO OpenServer 5 Release 5 kernel implementation and interface is based on the System V Release 3 implementation. It includes support for many System V Release 4 features, but the internal implementation does not always match that of SCO SVR5 1 and 2 and SVR5.

The SCO OpenServer 5 Release 5 kernel is quite different from the SVR5 kernel, which means that STREAMS drivers and modules will require significant modifications for non-STREAMS code. See ``Porting drivers to DDI 8''.

For more information about the new features of DDI 8 which impact how STREAMS drivers and modules should be implemented, see ``Implementing STREAMS drivers and modules in DDI 8''. In addition, please note the following specific points when porting SCO OpenServer 5 STREAMS drivers to SVR5:

The following table summarizes the differences between the STREAMS functions in the ODDI (which is essentially based on SVR3 STREAMS) and those in DDI 8 (which includes SVR4 STREAMS and SCO SVR5 1 and 2 modifications to support multiprocessing). See the manual pages for full details about using each of these functions. Note that some ODDI functions are not supported on SVR5, either because they provided functionality that was specific to SCO OpenServer 5, or because they were made obsolete by the implementation of STREAMS in SVR4, SCO SVR5 1 and 2, or SVR5.

allocb(D3str) For memory-mapped I/O, use esballoc(D3str).
backq(D3str) This function is obsolete.
bcanput(D3str) See usage restrictions on manual page.
bufcall(D3str) Returns a value of type toid_t; do not use with esballoc(D3str).
canput(D3str) Use bcanput(D3str) to test specific priority band; also see usage restrictions on manual page.
copyb(D3str) The memory for the data buffer should not be assumed to be physically contiguous.
copymsg(D3str) The memory for the data buffer should not be assumed to be physically contiguous.
datamsg(D3str) Implemented as a function rather than as a macro.
enableok(D3str) Implemented as a function rather than as a macro; also see usage restrictions on manual page.
esballoc(D3str) The third argument, fr_rtnp, is now of type frtn_t *; also see usage restrictions on manual page.
flushband(D3str) See usage restrictions on manual page.
flushq(D3str) Use flushband(D3str) to flush specific priority band; also see usage restrictions on manual page.
getadmin(D3str) This function is obsolete.
getmid(D3str) This function is obsolete.

getq(D3str) See usage restrictions on manual page.
insq(D3str) See usage restrictions on manual page.
MPSTR_QLOCK(D3str) This function is obsolete.
MPSTR_QRELE(D3str) This function is obsolete.
MPSTR_STPLOCK(D3str) This function is obsolete.
MPSTR_STPRELE(D3str) This function is obsolete.
noenable(D3str) Implemented as a function rather than as a macro; also see usage restrictions on manual page.
OTHERQ(D3str) Implemented as a function rather than as a macro.
pullupmsg(D3str) Not MP-safe; replaced by msgpullup(D3str).
put(D3str) Provides an MP-safe, DDI-conforming equivalent of a direct call to the put(D2str) entry point.
putbq(D3str) See usage restrictions on manual page.
putctl(D3str) See usage restrictions on manual page.
putctl1(D3str) See usage restrictions on manual page.
putnext(D3str) Implemented as a function rather than as a macro; also see usage restrictions on manual page.
putq(D3str) See usage restrictions on manual page.

qenable(D3str) See usage restrictions on manual page.
qreply(D3str) See usage restrictions on manual page.
qsize(D3str) See usage restrictions on manual page.
RD(D3str) Implemented as a function rather than as a macro.
rmvq(D3str) See usage restrictions on manual page.
SAMESTR(D3str) See usage restrictions on manual page.
strqget(D3str) See usage restrictions on manual page.
strqset(D3str) See usage restrictions on manual page.
testb(D3str) This function is obsolete.
unbufcall(D3str) This function now takes a single argument, id, of type toid_t; also see usage restrictions on manual page.
WR(D3str) Implemented as a function rather than as a macro.


© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005