📄 strmlib.html
字号:
</blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>void strmWakeup ( ulong_t event /* tasks to be woken up for this event */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine awakens tasks sleeping on the specified event and makes them eligible for scheduling.<p></blockquote><h4>RETURNS</h4><blockquote><p>N/A<p></blockquote><h4>ERRNO</h4><blockquote><p>N/A<p></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./strmLib.html#top">strmLib</a></b>, <b><i><a href="./strmLib.html#strmSleep">strmSleep</a></i>( )</b><hr><a name="strmSyncWriteAccess"></a><p align=right><a href="rtnIndex.html"><i>Libraries : Routines</i></a></p></blockquote><h1><i>strmSyncWriteAccess</i>( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong><i>strmSyncWriteAccess</i>( )</strong> - access a shared data structure for synchronous writing (STREAMS Option)</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>void strmSyncWriteAccess ( queue_t * pQueue, /* queue to acquire only for write */ mblk_t * pMsg, /* message block to pass to callback */ void (* pFuncToWrite)(PCELL, mblk_t * ) /* callback for write operation */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine is provided to STREAMS drivers and modules to gain exclusive write access to a shared data structure.<p></blockquote><h4>EXAMPLE</h4><blockquote><p>The read-side and write-side queues of an IP module operate independently;however, when an IP instance updates its routing table, it requires temporaryexclusive access to the routing table shared among all IP instances.<p></blockquote><h4>RETURNS</h4><blockquote><p>N/A<p></blockquote><h4>ERRNO</h4><blockquote><p>N/A</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./strmLib.html#top">strmLib</a></b><hr><a name="strmWeld"></a><p align=right><a href="rtnIndex.html"><i>Libraries : Routines</i></a></p></blockquote><h1><i>strmWeld</i>( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong><i>strmWeld</i>( )</strong> - connect the <b>q_next</b> pointers of arbitrary streams (STREAMS Option)</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS strmWeld ( queue_t * pQdst1, /* pQdts1->q_next is set to pQsrc1 */ queue_t * pQsrc1, /* new value for pQdst1->q_next */ queue_t * pQdst2, /* pQdts2->q_next is set to pQsrc2 */ queue_t * pQsrc2, /* new value for pQdst2->q_next */ void (* pFunc)(), /* callback to notify weld completion */ u32 arg0, /* argument 1 to callback */ u32 arg1 /* argument 2 to callback */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine connects <b>q_next</b> pointers of arbitrary streams to facilitate construction of STREAMS configurations not supported by normal STREAMS services. The routine <b><i><a href="./strmLib.html#strmWeld">strmWeld</a></i>( )</b> does not connect the <b>q_next</b> pointerssynchronously at its invocation. An optional callback function can be specified as the argument <i>pFunc</i> to <b><i><a href="./strmLib.html#strmWeld">strmWeld</a></i>( )</b>. The callback function is invoked after the <b>q_next</b> pointers have been connected.<p></blockquote><h4>EXAMPLES</h4><blockquote><p>A loopback configuration can be constructed by setting the driver's write-side<b>q_next</b> pointer to its read-side queue. The <b><i><a href="./strmLib.html#strmWeld">strmWeld</a></i>( )</b> call would have <i>pQdst1</i> set to point to the driver write-side queue, <i>pQsrc2</i> setto its read-side queue, and the rest of the parameters set to NULL.<p></blockquote><h4>RETURNS</h4><blockquote><p>OK if successful, otherwise ERROR.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./strmLib.html#top">strmLib</a></b><hr><a name="strmUnWeld"></a><p align=right><a href="rtnIndex.html"><i>Libraries : Routines</i></a></p></blockquote><h1><i>strmUnWeld</i>( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong><i>strmUnWeld</i>( )</strong> - set the <b>q_next</b> pointers of streams queues to NULL (STREAMS Option)</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS strmUnWeld ( queue_t * pQdst1, /* pQdts1->q_next is set to NULL */ queue_t * pQdst2, /* pQdts2->q_next is set to NULL */ void (* pFunc)(), /* callback to notify unweld completion */ u32 arg0, /* argument 1 to callback */ u32 arg1 /* argument 2 to callback */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine removes queue links performed by <b><i><a href="./strmLib.html#strmWeld">strmWeld</a></i>( )</b> operations. It assigns NULL to the <b>q_next</b> fields of the queue parameters <i>pQdst1</i>and <i>pQdst2</i>. The routine <b><i><a href="./strmLib.html#strmUnWeld">strmUnWeld</a></i>( )</b> does not set the <b>q_next</b> pointers to NULL synchronously at its invocation. An optional callback function can be specified as the argument <i>pFunc</i> to <b><i><a href="./strmLib.html#strmUnWeld">strmUnWeld</a></i>( )</b>. The callback function is invoked after the <b>q_next</b> pointers have been set to NULL.<p></blockquote><h4>RETURNS</h4><blockquote><p>OK if successful, otherwise ERROR.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./strmLib.html#top">strmLib</a></b><hr><a name="strmPipe"></a><p align=right><a href="rtnIndex.html"><i>Libraries : Routines</i></a></p></blockquote><h1><i>strmPipe</i>( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong><i>strmPipe</i>( )</strong> - create an intertask channel (STREAMS Option)</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>int strmPipe ( int * fds /* pointer to an array of file descriptors */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine creates an I/O mechanism called a pipe and returns two filedescriptors, <b>fds[0]</b> and <b>fds[1]</b>. The files associated with <b>fds[0]</b> and<b>fds[1]</b> are streams and are opened for reading and writing.<p>A read from <b>fds[0]</b> accesses the data written to <b>fds[1]</b> on a first-in-first-out (FIFO) basis. A read from <b>fds[1]</b> accesses the data written to <b>fds[0]</b>, also on a FIFO basis.<p></blockquote><h4>RETURNS</h4><blockquote><p>0 if successful, otherwise -1.<p></blockquote><h4>ERRNO</h4><blockquote><p>Errors from <b><i><a href="./ioLib.html#open">open</a></i>( )</b>.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./strmLib.html#top">strmLib</a></b><hr><a name="strmMkfifo"></a><p align=right><a href="rtnIndex.html"><i>Libraries : Routines</i></a></p></blockquote><h1><i>strmMkfifo</i>( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong><i>strmMkfifo</i>( )</strong> - create a STREAMS FIFO (STREAMS Option)</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>int strmMkfifo()</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine creates an I/O mechanism called a first-in-first-out (FIFO) andreturns a file descriptor. The file associated with the file descriptor is astream. The data written to the file descriptor can be read on a first-in-first-out basis by making read calls to the same file descriptor.<p></blockquote><h4>RETURNS</h4><blockquote><p>A file descriptor if successful, otherwise -1.<p></blockquote><h4>ERRNO</h4><blockquote><p>Errors from <b><i><a href="./ioLib.html#open">open</a></i>( )</b>.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./strmLib.html#top">strmLib</a></b><hr><a name="mps_fd_to_sth"></a><p align=right><a href="rtnIndex.html"><i>Libraries : Routines</i></a></p></blockquote><h1><i>mps_fd_to_sth</i>( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong><i>mps_fd_to_sth</i>( )</strong> - return the Stream Head pointer for a given fd</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>void * mps_fd_to_sth ( OSRP osr, int fildes )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine obtains the stream head pointer for a file descriptor.It uses an <b>internal</b> ioctl request to obtain this value, therebyavoiding internal knowledge of the VxWorks I/O library in this module.<p></blockquote><h4>RETURNS</h4><blockquote><p>Stream head pointer or zero<p></blockquote><h4>ERRNO</h4><blockquote><p>As returned from iosFdValue</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./strmLib.html#top">strmLib</a></b></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -