4. Porting STREAMS Protocols to WindNet STREAMS

In order to have your STREAMS-based protocol stack execute on WindNet STREAMS, minimal modifications of your STREAMS components will be required. Reconciliation between your application and WindNet STREAMS is likely to occur in the following areas, each of which is discussed below: synchronization, rules of access for components and drivers, WindNet STREAMS routines that can be invoked at interrupt level, UNIX-compatible routines, and WindNet STREAMS extensions. After your application has been ported, you must hook the protocol software into VxWorks. The following sections explain the porting process.

4.1 The WindNet STREAMS Synchronization Model
4.1.1 Synchronization Levels
4.1.1.1 SQLVL_QUEUE
4.1.1.2 SQLVL_QUEUEPAIR
4.1.1.3 SQLVL_MODULE
4.1.1.4 SQLVL_GLOBAL
4.1.2 Synchronization During Open and Close Procedures
4.1.3 Service and Put Procedures Synchronization
4.1.3.1 Writer Buddies
4.1.3.2 Updating Shared Data with strmSyncWriteAccess( )
4.1.3.3 Updating Shared Data Using Native VxWorks Synchronization
4.1.4 General Synchronization Guidelines
4.1.5 Synchronization of Non-Standard Plumbing Operations.
4.2 WindNet STREAMS Services Accessible from Interrupt Context
4.3 WindNet STREAMS UNIX-Compatible Routines.
4.4 Configuration of STREAMS Drivers and Modules in WindNet STREAMS
4.4.1 strmDriverAdd( )
4.4.2 strmModuleAdd( )
4.5 WindNet STREAMS Header Files
4.6 WindNet STREAMS Utility Routines
4.7 Initialization of STREAMS-based Network Protocols in WindNet STREAMS