]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - doc/html/ref/tcpip-openbsd-enhanced-select.html
Initial revision
[karo-tx-redboot.git] / doc / html / ref / tcpip-openbsd-enhanced-select.html
1 <!-- Copyright (C) 2003 Red Hat, Inc.                                -->
2 <!-- This material may be distributed only subject to the terms      -->
3 <!-- and conditions set forth in the Open Publication License, v1.0  -->
4 <!-- or later (the latest version is presently available at          -->
5 <!-- http://www.opencontent.org/openpub/).                           -->
6 <!-- Distribution of the work or derivative of the work in any       -->
7 <!-- standard (paper) book form is prohibited unless prior           -->
8 <!-- permission is obtained from the copyright holder.               -->
9 <HTML
10 ><HEAD
11 ><TITLE
12 >Enhanced Select()</TITLE
13 ><meta name="MSSmartTagsPreventParsing" content="TRUE">
14 <META
15 NAME="GENERATOR"
16 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
17 "><LINK
18 REL="HOME"
19 TITLE="eCos Reference Manual"
20 HREF="ecos-ref.html"><LINK
21 REL="UP"
22 TITLE="APIs"
23 HREF="tcpip-openbsd-tcpip-apis.html"><LINK
24 REL="PREVIOUS"
25 TITLE="APIs"
26 HREF="tcpip-openbsd-tcpip-apis.html"><LINK
27 REL="NEXT"
28 TITLE="DNS for eCos and RedBoot"
29 HREF="net-ns-dns.html"></HEAD
30 ><BODY
31 CLASS="SECT1"
32 BGCOLOR="#FFFFFF"
33 TEXT="#000000"
34 LINK="#0000FF"
35 VLINK="#840084"
36 ALINK="#0000FF"
37 ><DIV
38 CLASS="NAVHEADER"
39 ><TABLE
40 SUMMARY="Header navigation table"
41 WIDTH="100%"
42 BORDER="0"
43 CELLPADDING="0"
44 CELLSPACING="0"
45 ><TR
46 ><TH
47 COLSPAN="3"
48 ALIGN="center"
49 >eCos Reference Manual</TH
50 ></TR
51 ><TR
52 ><TD
53 WIDTH="10%"
54 ALIGN="left"
55 VALIGN="bottom"
56 ><A
57 HREF="tcpip-openbsd-tcpip-apis.html"
58 ACCESSKEY="P"
59 >Prev</A
60 ></TD
61 ><TD
62 WIDTH="80%"
63 ALIGN="center"
64 VALIGN="bottom"
65 >Chapter 44. APIs</TD
66 ><TD
67 WIDTH="10%"
68 ALIGN="right"
69 VALIGN="bottom"
70 ><A
71 HREF="net-ns-dns.html"
72 ACCESSKEY="N"
73 >Next</A
74 ></TD
75 ></TR
76 ></TABLE
77 ><HR
78 ALIGN="LEFT"
79 WIDTH="100%"></DIV
80 ><DIV
81 CLASS="SECT1"
82 ><H1
83 CLASS="SECT1"
84 ><A
85 NAME="TCPIP-OPENBSD-ENHANCED-SELECT">Enhanced Select()</H1
86 ><P
87 >The network stack supports an extension to the standard select
88 semantics which allows all threads that are waiting to be restarted
89 even if the select conditions are not satisfied.</P
90 ><P
91 >The standard select() API:  </P
92 ><TABLE
93 BORDER="5"
94 BGCOLOR="#E0E0F0"
95 WIDTH="70%"
96 ><TR
97 ><TD
98 ><PRE
99 CLASS="PROGRAMLISTING"
100 >int  
101 <TT
102 CLASS="FUNCTION"
103 >select</TT
104 >(int nfd,
105        fd_set &#0042;in, fd_set &#0042;out, fd_set &#0042;ex,
106        struct timeval &#0042;tv); </PRE
107 ></TD
108 ></TR
109 ></TABLE
110 ><P
111 >does not support the restart.</P
112 ><P
113 >The additional API:  </P
114 ><TABLE
115 BORDER="5"
116 BGCOLOR="#E0E0F0"
117 WIDTH="70%"
118 ><TR
119 ><TD
120 ><PRE
121 CLASS="PROGRAMLISTING"
122 >int  
123 <TT
124 CLASS="FUNCTION"
125 >cyg_select_with_abort</TT
126 >(int nfd,
127        fd_set &#0042;in, fd_set &#0042;out, fd_set &#0042;ex,
128        struct timeval &#0042;tv)</PRE
129 ></TD
130 ></TR
131 ></TABLE
132 ><P
133 >behaves exactly as select() with the additional feature that
134 a call to</P
135 ><TABLE
136 BORDER="5"
137 BGCOLOR="#E0E0F0"
138 WIDTH="70%"
139 ><TR
140 ><TD
141 ><PRE
142 CLASS="PROGRAMLISTING"
143 >void <TT
144 CLASS="FUNCTION"
145 >cyg_select_abort</TT
146 >(void)</PRE
147 ></TD
148 ></TR
149 ></TABLE
150 ><P
151 >will cause all threads waiting in any
152 <TT
153 CLASS="FUNCTION"
154 >cyg_select_with_abort()</TT
155 > call
156 to cease waiting and continue execution.</P
157 ></DIV
158 ><DIV
159 CLASS="NAVFOOTER"
160 ><HR
161 ALIGN="LEFT"
162 WIDTH="100%"><TABLE
163 SUMMARY="Footer navigation table"
164 WIDTH="100%"
165 BORDER="0"
166 CELLPADDING="0"
167 CELLSPACING="0"
168 ><TR
169 ><TD
170 WIDTH="33%"
171 ALIGN="left"
172 VALIGN="top"
173 ><A
174 HREF="tcpip-openbsd-tcpip-apis.html"
175 ACCESSKEY="P"
176 >Prev</A
177 ></TD
178 ><TD
179 WIDTH="34%"
180 ALIGN="center"
181 VALIGN="top"
182 ><A
183 HREF="ecos-ref.html"
184 ACCESSKEY="H"
185 >Home</A
186 ></TD
187 ><TD
188 WIDTH="33%"
189 ALIGN="right"
190 VALIGN="top"
191 ><A
192 HREF="net-ns-dns.html"
193 ACCESSKEY="N"
194 >Next</A
195 ></TD
196 ></TR
197 ><TR
198 ><TD
199 WIDTH="33%"
200 ALIGN="left"
201 VALIGN="top"
202 >APIs</TD
203 ><TD
204 WIDTH="34%"
205 ALIGN="center"
206 VALIGN="top"
207 ><A
208 HREF="tcpip-openbsd-tcpip-apis.html"
209 ACCESSKEY="U"
210 >Up</A
211 ></TD
212 ><TD
213 WIDTH="33%"
214 ALIGN="right"
215 VALIGN="top"
216 >DNS for eCos and RedBoot</TD
217 ></TR
218 ></TABLE
219 ></DIV
220 ></BODY
221 ></HTML
222 >