3.5  Unsupported Features

Signals
UNIX signal semantics are not directly applicable to multi-threaded environments, like VxWorks, where families of processes are not supported. This functionality is not supported by WindNet STREAMS.

Do not send M_SIG or M_PCSIG messages from STREAMS drivers or modules to user applications because WindNet STREAMS stream heads will ignore them. The user applications that communicate with WindNet STREAMS drivers also cannot make use of signal handlers to trap signals originating from the drivers. Applications cannot make the ioctl( ) call with the command I_SETSIG. The poll( ) call under WindNet STREAMS does not generate sigpoll signals, as it does in UNIX.

Poll over non-STREAMS file descriptors
WindNet STREAMS provides the poll( ) routine to perform I/O multiplexing among many STREAMS file descriptors. However, poll( ) cannot be used to perform I/O multiplexing over non-STREAMS file descriptors. Applications requiring poll functionality over non-STREAMS file descriptors should use the VxWorks select( ) routine.

Unsupported ioctl commands
WindNet STREAMS does not support the ioctl commands I_SENDFD and I_RECVFD. These functions share and pass file descriptors in operating systems like UNIX, where file descriptors are maintained on a process basis. In an environment like VxWorks, the file descriptor table is maintained globally and all tasks have access to any file descriptor, obviating functions like I_SENDFD and I_RECVFD.

Unsupported STREAMS set processor level (spl) routines
WindNet STREAMS does not support the STREAMS-specific spl routines splstr( ) and splx( ). Developers of STREAMS drivers under WindNet STREAMS are expected to use WindNet STREAMS synchronization primitives, as well as VxWorks semaphores, to protect critical regions of code in their drivers and modules.