• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3<title>osclconfig_io.h File Reference</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5</head><body>
6<!-- Generated by Doxygen 1.2.18 -->
7<center>
8<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
9<hr><h1>osclconfig_io.h File Reference</h1>This file contains common typedefs based on the ANSI C limits.h header.
10<a href="#_details">More...</a>
11<p>
12<code>#include "<a class="el" href="osclconfig_8h-source.html">osclconfig.h</a>"</code><br>
13<code>#include &lt;stdio.h&gt;</code><br>
14<code>#include &lt;stdlib.h&gt;</code><br>
15<code>#include &lt;stdarg.h&gt;</code><br>
16<code>#include &lt;sys/socket.h&gt;</code><br>
17<code>#include &lt;netinet/in.h&gt;</code><br>
18<code>#include &lt;arpa/inet.h&gt;</code><br>
19<code>#include &lt;fcntl.h&gt;</code><br>
20<code>#include &lt;signal.h&gt;</code><br>
21<code>#include &lt;netdb.h&gt;</code><br>
22<code>#include &lt;sys/mman.h&gt;</code><br>
23<code>#include &lt;sys/types.h&gt;</code><br>
24<code>#include &lt;errno.h&gt;</code><br>
25<code>#include &lt;sys/vfs.h&gt;</code><br>
26<code>#include &lt;dirent.h&gt;</code><br>
27<code>#include &lt;sys/stat.h&gt;</code><br>
28<code>#include "<a class="el" href="osclconfig__io__check_8h-source.html">osclconfig_io_check.h</a>"</code><br>
29
30<p>
31<a href="osclconfig__io_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
32<tr><td></td></tr>
33<tr><td colspan=2><br><h2>Defines</h2></td></tr>
34<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a0">OSCL_HAS_GLOB</a>&nbsp;&nbsp;&nbsp;0</td></tr>
35<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a1">OSCL_HAS_ANSI_FILE_IO_SUPPORT</a>&nbsp;&nbsp;&nbsp;1</td></tr>
36<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a2">OSCL_HAS_SYMBIAN_COMPATIBLE_IO_FUNCTION</a>&nbsp;&nbsp;&nbsp;0</td></tr>
37<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a3">OSCL_HAS_NATIVE_FILE_CACHE_ENABLE</a>&nbsp;&nbsp;&nbsp;1</td></tr>
38<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a4">OSCL_FILE_BUFFER_MAX_SIZE</a>&nbsp;&nbsp;&nbsp;32768</td></tr>
39<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a5">OSCL_HAS_PV_FILE_CACHE</a>&nbsp;&nbsp;&nbsp;0</td></tr>
40<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a6">OSCL_HAS_LARGE_FILE_SUPPORT</a>&nbsp;&nbsp;&nbsp;1</td></tr>
41<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a7">OSCL_HAS_SYMBIAN_SOCKET_SERVER</a>&nbsp;&nbsp;&nbsp;0</td></tr>
42<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a8">OSCL_HAS_SYMBIAN_DNS_SERVER</a>&nbsp;&nbsp;&nbsp;0</td></tr>
43<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a9">OSCL_HAS_BERKELEY_SOCKETS</a>&nbsp;&nbsp;&nbsp;1</td></tr>
44<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a10">OSCL_HAS_SOCKET_SUPPORT</a>&nbsp;&nbsp;&nbsp;1</td></tr>
45<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a11">OsclValidInetAddr</a>(addr)&nbsp;&nbsp;&nbsp;(inet_addr(addr)!=INADDR_NONE)</td></tr>
46<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a12">OsclMakeSockAddr</a>(sockaddr, port, addrstr, ok)</td></tr>
47<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a13">OsclUnMakeSockAddr</a>(sockaddr, addrstr)&nbsp;&nbsp;&nbsp;addrstr=inet_ntoa(sockaddr.sin_addr);</td></tr>
48<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a14">OsclSetRecvBufferSize</a>(s, val, ok, err)</td></tr>
49<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a15">OsclBind</a>(s, addr, ok, err)</td></tr>
50<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a16">OsclJoin</a>(s, addr, ok, err)</td></tr>
51<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a17">OsclListen</a>(s, size, ok, err)</td></tr>
52<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a18">OsclAccept</a>(s, accept_s, ok, err, wouldblock)</td></tr>
53<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a19">OsclSetNonBlocking</a>(s, ok, err)</td></tr>
54<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a20">OsclShutdown</a>(s, how, ok, err)</td></tr>
55<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a21">OsclSocket</a>(s, fam, type, prot, ok, err)</td></tr>
56<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a22">OsclSendTo</a>(s, buf, len, addr, ok, err, nbytes, wouldblock)</td></tr>
57<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a23">OsclSend</a>(s, buf, len, ok, err, nbytes, wouldblock)</td></tr>
58<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a24">OsclCloseSocket</a>(s, ok, err)</td></tr>
59<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a25">OsclConnect</a>(s, addr, ok, err, wouldblock)</td></tr>
60<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a26">OsclGetAsyncSockErr</a>(s, ok, err)</td></tr>
61<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a27">OsclConnectComplete</a>(s, wset, eset, success, fail, ok, err)</td></tr>
62<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a28">OsclRecv</a>(s, buf, len, ok, err, nbytes, wouldblock)</td></tr>
63<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a29">OsclRecvFrom</a>(s, buf, len, paddr, paddrlen, ok, err, nbytes, wouldblock)</td></tr>
64<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a30">OsclSocketSelect</a>(nfds, rd, wr, ex, timeout, ok, err, nhandles)</td></tr>
65<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a31">OsclSocketStartup</a>(ok)</td></tr>
66<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a32">OsclSocketCleanup</a>(ok)</td></tr>
67<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a33">OsclGethostbyname</a>(name, hostent, ok, err)</td></tr>
68<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a34">OsclGetDottedAddr</a>(hostent, dottedaddr, ok)</td></tr>
69<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a35">OSCL_SD_RECEIVE</a>&nbsp;&nbsp;&nbsp;SHUT_RD</td></tr>
70<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a36">OSCL_SD_SEND</a>&nbsp;&nbsp;&nbsp;SHUT_WR</td></tr>
71<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a37">OSCL_SD_BOTH</a>&nbsp;&nbsp;&nbsp;SHUT_RDWR</td></tr>
72<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a38">OSCL_AF_INET</a>&nbsp;&nbsp;&nbsp;AF_INET</td></tr>
73<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a39">OSCL_SOCK_STREAM</a>&nbsp;&nbsp;&nbsp;SOCK_STREAM</td></tr>
74<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a40">OSCL_SOCK_DATAGRAM</a>&nbsp;&nbsp;&nbsp;SOCK_DGRAM</td></tr>
75<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a41">OSCL_IPPROTO_TCP</a>&nbsp;&nbsp;&nbsp;IPPROTO_TCP</td></tr>
76<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a42">OSCL_IPPROTO_UDP</a>&nbsp;&nbsp;&nbsp;IPPROTO_UDP</td></tr>
77<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a43">_FILE_OFFSET_BITS</a>&nbsp;&nbsp;&nbsp;64</td></tr>
78<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
79<tr><td nowrap align=right valign=top>typedef int&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a44">TOsclSocket</a></td></tr>
80<tr><td nowrap align=right valign=top>typedef sockaddr_in&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a45">TOsclSockAddr</a></td></tr>
81<tr><td nowrap align=right valign=top>typedef socklen_t&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a46">TOsclSockAddrLen</a></td></tr>
82<tr><td nowrap align=right valign=top>typedef hostent&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a47">TOsclHostent</a></td></tr>
83<tr><td nowrap align=right valign=top>typedef off_t&nbsp;</td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a48">TOsclFileOffset</a></td></tr>
84</table>
85<hr><a name="_details"></a><h2>Detailed Description</h2>
86This file contains common typedefs based on the ANSI C limits.h header.
87<p>
88 This header file should work for any ANSI C compiler to determine the proper native C types to use for OSCL integer types.
89<p>
90<hr><h2>Define Documentation</h2>
91<a name="a43" doxytag="osclconfig_io.h::_FILE_OFFSET_BITS"></a><p>
92<table width="100%" cellpadding="2" cellspacing="0" border="0">
93  <tr>
94    <td class="md">
95      <table cellpadding="0" cellspacing="0" border="0">
96        <tr>
97          <td class="md" nowrap valign="top"> #define _FILE_OFFSET_BITS&nbsp;&nbsp;&nbsp;64
98      </table>
99    </td>
100  </tr>
101</table>
102<table cellspacing=5 cellpadding=0 border=0>
103  <tr>
104    <td>
105      &nbsp;
106    </td>
107    <td>
108
109<p>
110    </td>
111  </tr>
112</table>
113<a name="a38" doxytag="osclconfig_io.h::OSCL_AF_INET"></a><p>
114<table width="100%" cellpadding="2" cellspacing="0" border="0">
115  <tr>
116    <td class="md">
117      <table cellpadding="0" cellspacing="0" border="0">
118        <tr>
119          <td class="md" nowrap valign="top"> #define OSCL_AF_INET&nbsp;&nbsp;&nbsp;AF_INET
120      </table>
121    </td>
122  </tr>
123</table>
124<table cellspacing=5 cellpadding=0 border=0>
125  <tr>
126    <td>
127      &nbsp;
128    </td>
129    <td>
130
131<p>
132    </td>
133  </tr>
134</table>
135<a name="a4" doxytag="osclconfig_io.h::OSCL_FILE_BUFFER_MAX_SIZE"></a><p>
136<table width="100%" cellpadding="2" cellspacing="0" border="0">
137  <tr>
138    <td class="md">
139      <table cellpadding="0" cellspacing="0" border="0">
140        <tr>
141          <td class="md" nowrap valign="top"> #define OSCL_FILE_BUFFER_MAX_SIZE&nbsp;&nbsp;&nbsp;32768
142      </table>
143    </td>
144  </tr>
145</table>
146<table cellspacing=5 cellpadding=0 border=0>
147  <tr>
148    <td>
149      &nbsp;
150    </td>
151    <td>
152
153<p>
154    </td>
155  </tr>
156</table>
157<a name="a1" doxytag="osclconfig_io.h::OSCL_HAS_ANSI_FILE_IO_SUPPORT"></a><p>
158<table width="100%" cellpadding="2" cellspacing="0" border="0">
159  <tr>
160    <td class="md">
161      <table cellpadding="0" cellspacing="0" border="0">
162        <tr>
163          <td class="md" nowrap valign="top"> #define OSCL_HAS_ANSI_FILE_IO_SUPPORT&nbsp;&nbsp;&nbsp;1
164      </table>
165    </td>
166  </tr>
167</table>
168<table cellspacing=5 cellpadding=0 border=0>
169  <tr>
170    <td>
171      &nbsp;
172    </td>
173    <td>
174
175<p>
176    </td>
177  </tr>
178</table>
179<a name="a9" doxytag="osclconfig_io.h::OSCL_HAS_BERKELEY_SOCKETS"></a><p>
180<table width="100%" cellpadding="2" cellspacing="0" border="0">
181  <tr>
182    <td class="md">
183      <table cellpadding="0" cellspacing="0" border="0">
184        <tr>
185          <td class="md" nowrap valign="top"> #define OSCL_HAS_BERKELEY_SOCKETS&nbsp;&nbsp;&nbsp;1
186      </table>
187    </td>
188  </tr>
189</table>
190<table cellspacing=5 cellpadding=0 border=0>
191  <tr>
192    <td>
193      &nbsp;
194    </td>
195    <td>
196
197<p>
198    </td>
199  </tr>
200</table>
201<a name="a0" doxytag="osclconfig_io.h::OSCL_HAS_GLOB"></a><p>
202<table width="100%" cellpadding="2" cellspacing="0" border="0">
203  <tr>
204    <td class="md">
205      <table cellpadding="0" cellspacing="0" border="0">
206        <tr>
207          <td class="md" nowrap valign="top"> #define OSCL_HAS_GLOB&nbsp;&nbsp;&nbsp;0
208      </table>
209    </td>
210  </tr>
211</table>
212<table cellspacing=5 cellpadding=0 border=0>
213  <tr>
214    <td>
215      &nbsp;
216    </td>
217    <td>
218
219<p>
220    </td>
221  </tr>
222</table>
223<a name="a6" doxytag="osclconfig_io.h::OSCL_HAS_LARGE_FILE_SUPPORT"></a><p>
224<table width="100%" cellpadding="2" cellspacing="0" border="0">
225  <tr>
226    <td class="md">
227      <table cellpadding="0" cellspacing="0" border="0">
228        <tr>
229          <td class="md" nowrap valign="top"> #define OSCL_HAS_LARGE_FILE_SUPPORT&nbsp;&nbsp;&nbsp;1
230      </table>
231    </td>
232  </tr>
233</table>
234<table cellspacing=5 cellpadding=0 border=0>
235  <tr>
236    <td>
237      &nbsp;
238    </td>
239    <td>
240
241<p>
242    </td>
243  </tr>
244</table>
245<a name="a3" doxytag="osclconfig_io.h::OSCL_HAS_NATIVE_FILE_CACHE_ENABLE"></a><p>
246<table width="100%" cellpadding="2" cellspacing="0" border="0">
247  <tr>
248    <td class="md">
249      <table cellpadding="0" cellspacing="0" border="0">
250        <tr>
251          <td class="md" nowrap valign="top"> #define OSCL_HAS_NATIVE_FILE_CACHE_ENABLE&nbsp;&nbsp;&nbsp;1
252      </table>
253    </td>
254  </tr>
255</table>
256<table cellspacing=5 cellpadding=0 border=0>
257  <tr>
258    <td>
259      &nbsp;
260    </td>
261    <td>
262
263<p>
264    </td>
265  </tr>
266</table>
267<a name="a5" doxytag="osclconfig_io.h::OSCL_HAS_PV_FILE_CACHE"></a><p>
268<table width="100%" cellpadding="2" cellspacing="0" border="0">
269  <tr>
270    <td class="md">
271      <table cellpadding="0" cellspacing="0" border="0">
272        <tr>
273          <td class="md" nowrap valign="top"> #define OSCL_HAS_PV_FILE_CACHE&nbsp;&nbsp;&nbsp;0
274      </table>
275    </td>
276  </tr>
277</table>
278<table cellspacing=5 cellpadding=0 border=0>
279  <tr>
280    <td>
281      &nbsp;
282    </td>
283    <td>
284
285<p>
286    </td>
287  </tr>
288</table>
289<a name="a10" doxytag="osclconfig_io.h::OSCL_HAS_SOCKET_SUPPORT"></a><p>
290<table width="100%" cellpadding="2" cellspacing="0" border="0">
291  <tr>
292    <td class="md">
293      <table cellpadding="0" cellspacing="0" border="0">
294        <tr>
295          <td class="md" nowrap valign="top"> #define OSCL_HAS_SOCKET_SUPPORT&nbsp;&nbsp;&nbsp;1
296      </table>
297    </td>
298  </tr>
299</table>
300<table cellspacing=5 cellpadding=0 border=0>
301  <tr>
302    <td>
303      &nbsp;
304    </td>
305    <td>
306
307<p>
308    </td>
309  </tr>
310</table>
311<a name="a2" doxytag="osclconfig_io.h::OSCL_HAS_SYMBIAN_COMPATIBLE_IO_FUNCTION"></a><p>
312<table width="100%" cellpadding="2" cellspacing="0" border="0">
313  <tr>
314    <td class="md">
315      <table cellpadding="0" cellspacing="0" border="0">
316        <tr>
317          <td class="md" nowrap valign="top"> #define OSCL_HAS_SYMBIAN_COMPATIBLE_IO_FUNCTION&nbsp;&nbsp;&nbsp;0
318      </table>
319    </td>
320  </tr>
321</table>
322<table cellspacing=5 cellpadding=0 border=0>
323  <tr>
324    <td>
325      &nbsp;
326    </td>
327    <td>
328
329<p>
330    </td>
331  </tr>
332</table>
333<a name="a8" doxytag="osclconfig_io.h::OSCL_HAS_SYMBIAN_DNS_SERVER"></a><p>
334<table width="100%" cellpadding="2" cellspacing="0" border="0">
335  <tr>
336    <td class="md">
337      <table cellpadding="0" cellspacing="0" border="0">
338        <tr>
339          <td class="md" nowrap valign="top"> #define OSCL_HAS_SYMBIAN_DNS_SERVER&nbsp;&nbsp;&nbsp;0
340      </table>
341    </td>
342  </tr>
343</table>
344<table cellspacing=5 cellpadding=0 border=0>
345  <tr>
346    <td>
347      &nbsp;
348    </td>
349    <td>
350
351<p>
352    </td>
353  </tr>
354</table>
355<a name="a7" doxytag="osclconfig_io.h::OSCL_HAS_SYMBIAN_SOCKET_SERVER"></a><p>
356<table width="100%" cellpadding="2" cellspacing="0" border="0">
357  <tr>
358    <td class="md">
359      <table cellpadding="0" cellspacing="0" border="0">
360        <tr>
361          <td class="md" nowrap valign="top"> #define OSCL_HAS_SYMBIAN_SOCKET_SERVER&nbsp;&nbsp;&nbsp;0
362      </table>
363    </td>
364  </tr>
365</table>
366<table cellspacing=5 cellpadding=0 border=0>
367  <tr>
368    <td>
369      &nbsp;
370    </td>
371    <td>
372
373<p>
374    </td>
375  </tr>
376</table>
377<a name="a41" doxytag="osclconfig_io.h::OSCL_IPPROTO_TCP"></a><p>
378<table width="100%" cellpadding="2" cellspacing="0" border="0">
379  <tr>
380    <td class="md">
381      <table cellpadding="0" cellspacing="0" border="0">
382        <tr>
383          <td class="md" nowrap valign="top"> #define OSCL_IPPROTO_TCP&nbsp;&nbsp;&nbsp;IPPROTO_TCP
384      </table>
385    </td>
386  </tr>
387</table>
388<table cellspacing=5 cellpadding=0 border=0>
389  <tr>
390    <td>
391      &nbsp;
392    </td>
393    <td>
394
395<p>
396    </td>
397  </tr>
398</table>
399<a name="a42" doxytag="osclconfig_io.h::OSCL_IPPROTO_UDP"></a><p>
400<table width="100%" cellpadding="2" cellspacing="0" border="0">
401  <tr>
402    <td class="md">
403      <table cellpadding="0" cellspacing="0" border="0">
404        <tr>
405          <td class="md" nowrap valign="top"> #define OSCL_IPPROTO_UDP&nbsp;&nbsp;&nbsp;IPPROTO_UDP
406      </table>
407    </td>
408  </tr>
409</table>
410<table cellspacing=5 cellpadding=0 border=0>
411  <tr>
412    <td>
413      &nbsp;
414    </td>
415    <td>
416
417<p>
418    </td>
419  </tr>
420</table>
421<a name="a37" doxytag="osclconfig_io.h::OSCL_SD_BOTH"></a><p>
422<table width="100%" cellpadding="2" cellspacing="0" border="0">
423  <tr>
424    <td class="md">
425      <table cellpadding="0" cellspacing="0" border="0">
426        <tr>
427          <td class="md" nowrap valign="top"> #define OSCL_SD_BOTH&nbsp;&nbsp;&nbsp;SHUT_RDWR
428      </table>
429    </td>
430  </tr>
431</table>
432<table cellspacing=5 cellpadding=0 border=0>
433  <tr>
434    <td>
435      &nbsp;
436    </td>
437    <td>
438
439<p>
440    </td>
441  </tr>
442</table>
443<a name="a35" doxytag="osclconfig_io.h::OSCL_SD_RECEIVE"></a><p>
444<table width="100%" cellpadding="2" cellspacing="0" border="0">
445  <tr>
446    <td class="md">
447      <table cellpadding="0" cellspacing="0" border="0">
448        <tr>
449          <td class="md" nowrap valign="top"> #define OSCL_SD_RECEIVE&nbsp;&nbsp;&nbsp;SHUT_RD
450      </table>
451    </td>
452  </tr>
453</table>
454<table cellspacing=5 cellpadding=0 border=0>
455  <tr>
456    <td>
457      &nbsp;
458    </td>
459    <td>
460
461<p>
462    </td>
463  </tr>
464</table>
465<a name="a36" doxytag="osclconfig_io.h::OSCL_SD_SEND"></a><p>
466<table width="100%" cellpadding="2" cellspacing="0" border="0">
467  <tr>
468    <td class="md">
469      <table cellpadding="0" cellspacing="0" border="0">
470        <tr>
471          <td class="md" nowrap valign="top"> #define OSCL_SD_SEND&nbsp;&nbsp;&nbsp;SHUT_WR
472      </table>
473    </td>
474  </tr>
475</table>
476<table cellspacing=5 cellpadding=0 border=0>
477  <tr>
478    <td>
479      &nbsp;
480    </td>
481    <td>
482
483<p>
484    </td>
485  </tr>
486</table>
487<a name="a40" doxytag="osclconfig_io.h::OSCL_SOCK_DATAGRAM"></a><p>
488<table width="100%" cellpadding="2" cellspacing="0" border="0">
489  <tr>
490    <td class="md">
491      <table cellpadding="0" cellspacing="0" border="0">
492        <tr>
493          <td class="md" nowrap valign="top"> #define OSCL_SOCK_DATAGRAM&nbsp;&nbsp;&nbsp;SOCK_DGRAM
494      </table>
495    </td>
496  </tr>
497</table>
498<table cellspacing=5 cellpadding=0 border=0>
499  <tr>
500    <td>
501      &nbsp;
502    </td>
503    <td>
504
505<p>
506    </td>
507  </tr>
508</table>
509<a name="a39" doxytag="osclconfig_io.h::OSCL_SOCK_STREAM"></a><p>
510<table width="100%" cellpadding="2" cellspacing="0" border="0">
511  <tr>
512    <td class="md">
513      <table cellpadding="0" cellspacing="0" border="0">
514        <tr>
515          <td class="md" nowrap valign="top"> #define OSCL_SOCK_STREAM&nbsp;&nbsp;&nbsp;SOCK_STREAM
516      </table>
517    </td>
518  </tr>
519</table>
520<table cellspacing=5 cellpadding=0 border=0>
521  <tr>
522    <td>
523      &nbsp;
524    </td>
525    <td>
526
527<p>
528    </td>
529  </tr>
530</table>
531<a name="a18" doxytag="osclconfig_io.h::OsclAccept"></a><p>
532<table width="100%" cellpadding="2" cellspacing="0" border="0">
533  <tr>
534    <td class="md">
535      <table cellpadding="0" cellspacing="0" border="0">
536        <tr>
537          <td class="md" nowrap valign="top"> #define OsclAccept</td>
538          <td class="md" valign="top">(&nbsp;</td>
539          <td class="md" nowrap valign="top">s,         <tr>
540          <td></td>
541          <td></td>
542          <td class="md" nowrap>accept_s,         <tr>
543          <td></td>
544          <td></td>
545          <td class="md" nowrap>ok,         <tr>
546          <td></td>
547          <td></td>
548          <td class="md" nowrap>err,         <tr>
549          <td></td>
550          <td></td>
551          <td class="md" nowrap>wouldblock&nbsp;</td>
552          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
553          <td class="md" valign="top">)&nbsp;</td>
554          <td class="md" nowrap>
555      </table>
556    </td>
557  </tr>
558</table>
559<table cellspacing=5 cellpadding=0 border=0>
560  <tr>
561    <td>
562      &nbsp;
563    </td>
564    <td>
565
566<p>
567<b>Value:</b><div class="fragment"><pre>accept_s=accept(s,<a class="code" href="group__osclbase.html#a81">NULL</a>,<a class="code" href="group__osclbase.html#a81">NULL</a>);\
568        ok=(accept_s!=(-1));\
569        <span class="keywordflow">if</span> (!ok){err=errno;wouldblock=(err==EAGAIN||err==EWOULDBLOCK);}</pre></div>    </td>
570  </tr>
571</table>
572<a name="a15" doxytag="osclconfig_io.h::OsclBind"></a><p>
573<table width="100%" cellpadding="2" cellspacing="0" border="0">
574  <tr>
575    <td class="md">
576      <table cellpadding="0" cellspacing="0" border="0">
577        <tr>
578          <td class="md" nowrap valign="top"> #define OsclBind</td>
579          <td class="md" valign="top">(&nbsp;</td>
580          <td class="md" nowrap valign="top">s,         <tr>
581          <td></td>
582          <td></td>
583          <td class="md" nowrap>addr,         <tr>
584          <td></td>
585          <td></td>
586          <td class="md" nowrap>ok,         <tr>
587          <td></td>
588          <td></td>
589          <td class="md" nowrap>err&nbsp;</td>
590          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
591          <td class="md" valign="top">)&nbsp;</td>
592          <td class="md" nowrap>
593      </table>
594    </td>
595  </tr>
596</table>
597<table cellspacing=5 cellpadding=0 border=0>
598  <tr>
599    <td>
600      &nbsp;
601    </td>
602    <td>
603
604<p>
605<b>Value:</b><div class="fragment"><pre><a class="code" href="osclconfig__io_8h.html#a45">TOsclSockAddr</a>* tmpadr = &amp;addr;\
606    sockaddr* sadr = <a class="code" href="group__osclbase.html#a86">OSCL_STATIC_CAST</a>(sockaddr*, tmpadr);\
607        ok=(bind(s,sadr,<span class="keyword">sizeof</span>(addr))!=(-1));\
608        <span class="keywordflow">if</span> (!ok)err=errno</pre></div>    </td>
609  </tr>
610</table>
611<a name="a24" doxytag="osclconfig_io.h::OsclCloseSocket"></a><p>
612<table width="100%" cellpadding="2" cellspacing="0" border="0">
613  <tr>
614    <td class="md">
615      <table cellpadding="0" cellspacing="0" border="0">
616        <tr>
617          <td class="md" nowrap valign="top"> #define OsclCloseSocket</td>
618          <td class="md" valign="top">(&nbsp;</td>
619          <td class="md" nowrap valign="top">s,         <tr>
620          <td></td>
621          <td></td>
622          <td class="md" nowrap>ok,         <tr>
623          <td></td>
624          <td></td>
625          <td class="md" nowrap>err&nbsp;</td>
626          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
627          <td class="md" valign="top">)&nbsp;</td>
628          <td class="md" nowrap>
629      </table>
630    </td>
631  </tr>
632</table>
633<table cellspacing=5 cellpadding=0 border=0>
634  <tr>
635    <td>
636      &nbsp;
637    </td>
638    <td>
639
640<p>
641<b>Value:</b><div class="fragment"><pre>ok=(close(s)!=(-1));\
642        <span class="keywordflow">if</span> (!ok)err=errno</pre></div>    </td>
643  </tr>
644</table>
645<a name="a25" doxytag="osclconfig_io.h::OsclConnect"></a><p>
646<table width="100%" cellpadding="2" cellspacing="0" border="0">
647  <tr>
648    <td class="md">
649      <table cellpadding="0" cellspacing="0" border="0">
650        <tr>
651          <td class="md" nowrap valign="top"> #define OsclConnect</td>
652          <td class="md" valign="top">(&nbsp;</td>
653          <td class="md" nowrap valign="top">s,         <tr>
654          <td></td>
655          <td></td>
656          <td class="md" nowrap>addr,         <tr>
657          <td></td>
658          <td></td>
659          <td class="md" nowrap>ok,         <tr>
660          <td></td>
661          <td></td>
662          <td class="md" nowrap>err,         <tr>
663          <td></td>
664          <td></td>
665          <td class="md" nowrap>wouldblock&nbsp;</td>
666          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
667          <td class="md" valign="top">)&nbsp;</td>
668          <td class="md" nowrap>
669      </table>
670    </td>
671  </tr>
672</table>
673<table cellspacing=5 cellpadding=0 border=0>
674  <tr>
675    <td>
676      &nbsp;
677    </td>
678    <td>
679
680<p>
681<b>Value:</b><div class="fragment"><pre><a class="code" href="osclconfig__io_8h.html#a45">TOsclSockAddr</a>* tmpadr = &amp;addr;\
682    sockaddr* sadr = <a class="code" href="group__osclbase.html#a86">OSCL_STATIC_CAST</a>(sockaddr*, tmpadr);\
683        ok=(connect(s,sadr,<span class="keyword">sizeof</span>(addr))!=(-1));\
684        <span class="keywordflow">if</span> (!ok){err=errno;wouldblock=(err==EINPROGRESS);}</pre></div>    </td>
685  </tr>
686</table>
687<a name="a27" doxytag="osclconfig_io.h::OsclConnectComplete"></a><p>
688<table width="100%" cellpadding="2" cellspacing="0" border="0">
689  <tr>
690    <td class="md">
691      <table cellpadding="0" cellspacing="0" border="0">
692        <tr>
693          <td class="md" nowrap valign="top"> #define OsclConnectComplete</td>
694          <td class="md" valign="top">(&nbsp;</td>
695          <td class="md" nowrap valign="top">s,         <tr>
696          <td></td>
697          <td></td>
698          <td class="md" nowrap>wset,         <tr>
699          <td></td>
700          <td></td>
701          <td class="md" nowrap>eset,         <tr>
702          <td></td>
703          <td></td>
704          <td class="md" nowrap>success,         <tr>
705          <td></td>
706          <td></td>
707          <td class="md" nowrap>fail,         <tr>
708          <td></td>
709          <td></td>
710          <td class="md" nowrap>ok,         <tr>
711          <td></td>
712          <td></td>
713          <td class="md" nowrap>err&nbsp;</td>
714          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
715          <td class="md" valign="top">)&nbsp;</td>
716          <td class="md" nowrap>
717      </table>
718    </td>
719  </tr>
720</table>
721<table cellspacing=5 cellpadding=0 border=0>
722  <tr>
723    <td>
724      &nbsp;
725    </td>
726    <td>
727
728<p>
729<b>Value:</b><div class="fragment"><pre>success=fail=<span class="keyword">false</span>;\
730        <span class="keywordflow">if</span> (FD_ISSET(s,&amp;eset))\
731        {fail=<span class="keyword">true</span>;<a class="code" href="osclconfig__io_8h.html#a26">OsclGetAsyncSockErr</a>(s,ok,err);}\
732        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (FD_ISSET(s,&amp;wset))\
733        {<a class="code" href="osclconfig__io_8h.html#a26">OsclGetAsyncSockErr</a>(s,ok,err);<span class="keywordflow">if</span> (ok &amp;&amp; err==0)success=<span class="keyword">true</span>;<span class="keywordflow">else</span> fail=<span class="keyword">true</span>;}</pre></div>    </td>
734  </tr>
735</table>
736<a name="a26" doxytag="osclconfig_io.h::OsclGetAsyncSockErr"></a><p>
737<table width="100%" cellpadding="2" cellspacing="0" border="0">
738  <tr>
739    <td class="md">
740      <table cellpadding="0" cellspacing="0" border="0">
741        <tr>
742          <td class="md" nowrap valign="top"> #define OsclGetAsyncSockErr</td>
743          <td class="md" valign="top">(&nbsp;</td>
744          <td class="md" nowrap valign="top">s,         <tr>
745          <td></td>
746          <td></td>
747          <td class="md" nowrap>ok,         <tr>
748          <td></td>
749          <td></td>
750          <td class="md" nowrap>err&nbsp;</td>
751          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
752          <td class="md" valign="top">)&nbsp;</td>
753          <td class="md" nowrap>
754      </table>
755    </td>
756  </tr>
757</table>
758<table cellspacing=5 cellpadding=0 border=0>
759  <tr>
760    <td>
761      &nbsp;
762    </td>
763    <td>
764
765<p>
766<b>Value:</b><div class="fragment"><pre><span class="keywordtype">int</span> opterr;socklen_t optlen=<span class="keyword">sizeof</span>(opterr);\
767        ok=(getsockopt(s,SOL_SOCKET,SO_ERROR,(<span class="keywordtype">void</span> *)&amp;opterr,&amp;optlen)!=(-1));\
768        <span class="keywordflow">if</span>(ok)err=opterr;<span class="keywordflow">else</span> err=errno;</pre></div>    </td>
769  </tr>
770</table>
771<a name="a34" doxytag="osclconfig_io.h::OsclGetDottedAddr"></a><p>
772<table width="100%" cellpadding="2" cellspacing="0" border="0">
773  <tr>
774    <td class="md">
775      <table cellpadding="0" cellspacing="0" border="0">
776        <tr>
777          <td class="md" nowrap valign="top"> #define OsclGetDottedAddr</td>
778          <td class="md" valign="top">(&nbsp;</td>
779          <td class="md" nowrap valign="top">hostent,         <tr>
780          <td></td>
781          <td></td>
782          <td class="md" nowrap>dottedaddr,         <tr>
783          <td></td>
784          <td></td>
785          <td class="md" nowrap>ok&nbsp;</td>
786          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
787          <td class="md" valign="top">)&nbsp;</td>
788          <td class="md" nowrap>
789      </table>
790    </td>
791  </tr>
792</table>
793<table cellspacing=5 cellpadding=0 border=0>
794  <tr>
795    <td>
796      &nbsp;
797    </td>
798    <td>
799
800<p>
801<b>Value:</b><div class="fragment"><pre><span class="keywordtype">long</span> *_hostaddr=(<span class="keywordtype">long</span>*)hostent-&gt;h_addr_list[0];\
802        <span class="keyword">struct </span>in_addr _inaddr;\
803        _inaddr.s_addr=*_hostaddr;\
804        dottedaddr=inet_ntoa(_inaddr);\
805        ok=(dottedaddr!=<a class="code" href="group__osclbase.html#a81">NULL</a>);</pre></div>    </td>
806  </tr>
807</table>
808<a name="a33" doxytag="osclconfig_io.h::OsclGethostbyname"></a><p>
809<table width="100%" cellpadding="2" cellspacing="0" border="0">
810  <tr>
811    <td class="md">
812      <table cellpadding="0" cellspacing="0" border="0">
813        <tr>
814          <td class="md" nowrap valign="top"> #define OsclGethostbyname</td>
815          <td class="md" valign="top">(&nbsp;</td>
816          <td class="md" nowrap valign="top">name,         <tr>
817          <td></td>
818          <td></td>
819          <td class="md" nowrap>hostent,         <tr>
820          <td></td>
821          <td></td>
822          <td class="md" nowrap>ok,         <tr>
823          <td></td>
824          <td></td>
825          <td class="md" nowrap>err&nbsp;</td>
826          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
827          <td class="md" valign="top">)&nbsp;</td>
828          <td class="md" nowrap>
829      </table>
830    </td>
831  </tr>
832</table>
833<table cellspacing=5 cellpadding=0 border=0>
834  <tr>
835    <td>
836      &nbsp;
837    </td>
838    <td>
839
840<p>
841<b>Value:</b><div class="fragment"><pre>hostent=gethostbyname((<span class="keyword">const</span> <span class="keywordtype">char</span>*)name);\
842        ok=(hostent!=<a class="code" href="group__osclbase.html#a81">NULL</a>);\
843        <span class="keywordflow">if</span> (!ok)err=errno;</pre></div>    </td>
844  </tr>
845</table>
846<a name="a16" doxytag="osclconfig_io.h::OsclJoin"></a><p>
847<table width="100%" cellpadding="2" cellspacing="0" border="0">
848  <tr>
849    <td class="md">
850      <table cellpadding="0" cellspacing="0" border="0">
851        <tr>
852          <td class="md" nowrap valign="top"> #define OsclJoin</td>
853          <td class="md" valign="top">(&nbsp;</td>
854          <td class="md" nowrap valign="top">s,         <tr>
855          <td></td>
856          <td></td>
857          <td class="md" nowrap>addr,         <tr>
858          <td></td>
859          <td></td>
860          <td class="md" nowrap>ok,         <tr>
861          <td></td>
862          <td></td>
863          <td class="md" nowrap>err&nbsp;</td>
864          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
865          <td class="md" valign="top">)&nbsp;</td>
866          <td class="md" nowrap>
867      </table>
868    </td>
869  </tr>
870</table>
871<table cellspacing=5 cellpadding=0 border=0>
872  <tr>
873    <td>
874      &nbsp;
875    </td>
876    <td>
877
878<p>
879<b>Value:</b><div class="fragment"><pre>{\
880                <span class="keyword">struct </span>ip_mreq mreq; \
881            <span class="keywordtype">void</span>* p = &amp;addr; \
882            ok=(bind(s,(sockaddr*)p,<span class="keyword">sizeof</span>(addr))!=(-1));\
883        mreq.imr_multiaddr.s_addr = addr.sin_addr.s_addr ; \
884        mreq.imr_interface.s_addr = htonl(INADDR_ANY); \
885        ok=(setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, &amp;mreq, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> ip_mreq))!=(-1)); \
886        <span class="keywordflow">if</span> (!ok)err=errno;\
887}</pre></div>    </td>
888  </tr>
889</table>
890<a name="a17" doxytag="osclconfig_io.h::OsclListen"></a><p>
891<table width="100%" cellpadding="2" cellspacing="0" border="0">
892  <tr>
893    <td class="md">
894      <table cellpadding="0" cellspacing="0" border="0">
895        <tr>
896          <td class="md" nowrap valign="top"> #define OsclListen</td>
897          <td class="md" valign="top">(&nbsp;</td>
898          <td class="md" nowrap valign="top">s,         <tr>
899          <td></td>
900          <td></td>
901          <td class="md" nowrap>size,         <tr>
902          <td></td>
903          <td></td>
904          <td class="md" nowrap>ok,         <tr>
905          <td></td>
906          <td></td>
907          <td class="md" nowrap>err&nbsp;</td>
908          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
909          <td class="md" valign="top">)&nbsp;</td>
910          <td class="md" nowrap>
911      </table>
912    </td>
913  </tr>
914</table>
915<table cellspacing=5 cellpadding=0 border=0>
916  <tr>
917    <td>
918      &nbsp;
919    </td>
920    <td>
921
922<p>
923<b>Value:</b><div class="fragment"><pre>ok=(listen(iSocket,qSize)!=(-1));\
924        <span class="keywordflow">if</span> (!ok)err=errno</pre></div>    </td>
925  </tr>
926</table>
927<a name="a12" doxytag="osclconfig_io.h::OsclMakeSockAddr"></a><p>
928<table width="100%" cellpadding="2" cellspacing="0" border="0">
929  <tr>
930    <td class="md">
931      <table cellpadding="0" cellspacing="0" border="0">
932        <tr>
933          <td class="md" nowrap valign="top"> #define OsclMakeSockAddr</td>
934          <td class="md" valign="top">(&nbsp;</td>
935          <td class="md" nowrap valign="top">sockaddr,         <tr>
936          <td></td>
937          <td></td>
938          <td class="md" nowrap>port,         <tr>
939          <td></td>
940          <td></td>
941          <td class="md" nowrap>addrstr,         <tr>
942          <td></td>
943          <td></td>
944          <td class="md" nowrap>ok&nbsp;</td>
945          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
946          <td class="md" valign="top">)&nbsp;</td>
947          <td class="md" nowrap>
948      </table>
949    </td>
950  </tr>
951</table>
952<table cellspacing=5 cellpadding=0 border=0>
953  <tr>
954    <td>
955      &nbsp;
956    </td>
957    <td>
958
959<p>
960<b>Value:</b><div class="fragment"><pre>sockaddr.sin_family=<a class="code" href="osclconfig__io_8h.html#a38">OSCL_AF_INET</a>;\
961        sockaddr.sin_port=htons(port);\
962        int32 result=inet_aton((<span class="keyword">const</span> <span class="keywordtype">char</span>*)addrstr,&amp;sockaddr.sin_addr);\
963        ok=(result!=0);</pre></div>    </td>
964  </tr>
965</table>
966<a name="a28" doxytag="osclconfig_io.h::OsclRecv"></a><p>
967<table width="100%" cellpadding="2" cellspacing="0" border="0">
968  <tr>
969    <td class="md">
970      <table cellpadding="0" cellspacing="0" border="0">
971        <tr>
972          <td class="md" nowrap valign="top"> #define OsclRecv</td>
973          <td class="md" valign="top">(&nbsp;</td>
974          <td class="md" nowrap valign="top">s,         <tr>
975          <td></td>
976          <td></td>
977          <td class="md" nowrap>buf,         <tr>
978          <td></td>
979          <td></td>
980          <td class="md" nowrap>len,         <tr>
981          <td></td>
982          <td></td>
983          <td class="md" nowrap>ok,         <tr>
984          <td></td>
985          <td></td>
986          <td class="md" nowrap>err,         <tr>
987          <td></td>
988          <td></td>
989          <td class="md" nowrap>nbytes,         <tr>
990          <td></td>
991          <td></td>
992          <td class="md" nowrap>wouldblock&nbsp;</td>
993          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
994          <td class="md" valign="top">)&nbsp;</td>
995          <td class="md" nowrap>
996      </table>
997    </td>
998  </tr>
999</table>
1000<table cellspacing=5 cellpadding=0 border=0>
1001  <tr>
1002    <td>
1003      &nbsp;
1004    </td>
1005    <td>
1006
1007<p>
1008<b>Value:</b><div class="fragment"><pre>nbytes=recv(s,(<span class="keywordtype">void</span> *)(buf),(size_t)(len),0);\
1009        ok=(nbytes!=(-1));\
1010        <span class="keywordflow">if</span> (!ok){err=errno;wouldblock=(err==EAGAIN);}</pre></div>    </td>
1011  </tr>
1012</table>
1013<a name="a29" doxytag="osclconfig_io.h::OsclRecvFrom"></a><p>
1014<table width="100%" cellpadding="2" cellspacing="0" border="0">
1015  <tr>
1016    <td class="md">
1017      <table cellpadding="0" cellspacing="0" border="0">
1018        <tr>
1019          <td class="md" nowrap valign="top"> #define OsclRecvFrom</td>
1020          <td class="md" valign="top">(&nbsp;</td>
1021          <td class="md" nowrap valign="top">s,         <tr>
1022          <td></td>
1023          <td></td>
1024          <td class="md" nowrap>buf,         <tr>
1025          <td></td>
1026          <td></td>
1027          <td class="md" nowrap>len,         <tr>
1028          <td></td>
1029          <td></td>
1030          <td class="md" nowrap>paddr,         <tr>
1031          <td></td>
1032          <td></td>
1033          <td class="md" nowrap>paddrlen,         <tr>
1034          <td></td>
1035          <td></td>
1036          <td class="md" nowrap>ok,         <tr>
1037          <td></td>
1038          <td></td>
1039          <td class="md" nowrap>err,         <tr>
1040          <td></td>
1041          <td></td>
1042          <td class="md" nowrap>nbytes,         <tr>
1043          <td></td>
1044          <td></td>
1045          <td class="md" nowrap>wouldblock&nbsp;</td>
1046          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1047          <td class="md" valign="top">)&nbsp;</td>
1048          <td class="md" nowrap>
1049      </table>
1050    </td>
1051  </tr>
1052</table>
1053<table cellspacing=5 cellpadding=0 border=0>
1054  <tr>
1055    <td>
1056      &nbsp;
1057    </td>
1058    <td>
1059
1060<p>
1061<b>Value:</b><div class="fragment"><pre>{\
1062<span class="keywordtype">void</span>* p=paddr;\
1063nbytes=recvfrom(s,(<span class="keywordtype">void</span>*)(buf),(size_t)(len),0,(<span class="keyword">struct</span> sockaddr*)p,paddrlen);\
1064        ok=(nbytes!=(-1));\
1065        <span class="keywordflow">if</span> (!ok){err=errno;wouldblock=(err==EAGAIN);}\
1066}</pre></div>    </td>
1067  </tr>
1068</table>
1069<a name="a23" doxytag="osclconfig_io.h::OsclSend"></a><p>
1070<table width="100%" cellpadding="2" cellspacing="0" border="0">
1071  <tr>
1072    <td class="md">
1073      <table cellpadding="0" cellspacing="0" border="0">
1074        <tr>
1075          <td class="md" nowrap valign="top"> #define OsclSend</td>
1076          <td class="md" valign="top">(&nbsp;</td>
1077          <td class="md" nowrap valign="top">s,         <tr>
1078          <td></td>
1079          <td></td>
1080          <td class="md" nowrap>buf,         <tr>
1081          <td></td>
1082          <td></td>
1083          <td class="md" nowrap>len,         <tr>
1084          <td></td>
1085          <td></td>
1086          <td class="md" nowrap>ok,         <tr>
1087          <td></td>
1088          <td></td>
1089          <td class="md" nowrap>err,         <tr>
1090          <td></td>
1091          <td></td>
1092          <td class="md" nowrap>nbytes,         <tr>
1093          <td></td>
1094          <td></td>
1095          <td class="md" nowrap>wouldblock&nbsp;</td>
1096          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1097          <td class="md" valign="top">)&nbsp;</td>
1098          <td class="md" nowrap>
1099      </table>
1100    </td>
1101  </tr>
1102</table>
1103<table cellspacing=5 cellpadding=0 border=0>
1104  <tr>
1105    <td>
1106      &nbsp;
1107    </td>
1108    <td>
1109
1110<p>
1111<b>Value:</b><div class="fragment"><pre>nbytes=send(s,(<span class="keyword">const</span> <span class="keywordtype">void</span>*)(buf),(size_t)(len),0);\
1112        ok=(nbytes!=(-1));\
1113        <span class="keywordflow">if</span> (!ok){err=errno;wouldblock=(err==EAGAIN||err==EWOULDBLOCK);}</pre></div>    </td>
1114  </tr>
1115</table>
1116<a name="a22" doxytag="osclconfig_io.h::OsclSendTo"></a><p>
1117<table width="100%" cellpadding="2" cellspacing="0" border="0">
1118  <tr>
1119    <td class="md">
1120      <table cellpadding="0" cellspacing="0" border="0">
1121        <tr>
1122          <td class="md" nowrap valign="top"> #define OsclSendTo</td>
1123          <td class="md" valign="top">(&nbsp;</td>
1124          <td class="md" nowrap valign="top">s,         <tr>
1125          <td></td>
1126          <td></td>
1127          <td class="md" nowrap>buf,         <tr>
1128          <td></td>
1129          <td></td>
1130          <td class="md" nowrap>len,         <tr>
1131          <td></td>
1132          <td></td>
1133          <td class="md" nowrap>addr,         <tr>
1134          <td></td>
1135          <td></td>
1136          <td class="md" nowrap>ok,         <tr>
1137          <td></td>
1138          <td></td>
1139          <td class="md" nowrap>err,         <tr>
1140          <td></td>
1141          <td></td>
1142          <td class="md" nowrap>nbytes,         <tr>
1143          <td></td>
1144          <td></td>
1145          <td class="md" nowrap>wouldblock&nbsp;</td>
1146          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1147          <td class="md" valign="top">)&nbsp;</td>
1148          <td class="md" nowrap>
1149      </table>
1150    </td>
1151  </tr>
1152</table>
1153<table cellspacing=5 cellpadding=0 border=0>
1154  <tr>
1155    <td>
1156      &nbsp;
1157    </td>
1158    <td>
1159
1160<p>
1161<b>Value:</b><div class="fragment"><pre><a class="code" href="osclconfig__io_8h.html#a45">TOsclSockAddr</a>* tmpadr = &amp;addr;\
1162    sockaddr* sadr = <a class="code" href="group__osclbase.html#a86">OSCL_STATIC_CAST</a>(sockaddr*, tmpadr);\
1163        nbytes=sendto(s,(<span class="keyword">const</span> <span class="keywordtype">void</span>*)(buf),(size_t)(len),0,sadr,(socklen_t)<span class="keyword">sizeof</span>(addr));\
1164        ok=(nbytes!=(-1));\
1165        <span class="keywordflow">if</span> (!ok){err=errno;wouldblock=(err==EAGAIN||err==EWOULDBLOCK);}</pre></div>    </td>
1166  </tr>
1167</table>
1168<a name="a19" doxytag="osclconfig_io.h::OsclSetNonBlocking"></a><p>
1169<table width="100%" cellpadding="2" cellspacing="0" border="0">
1170  <tr>
1171    <td class="md">
1172      <table cellpadding="0" cellspacing="0" border="0">
1173        <tr>
1174          <td class="md" nowrap valign="top"> #define OsclSetNonBlocking</td>
1175          <td class="md" valign="top">(&nbsp;</td>
1176          <td class="md" nowrap valign="top">s,         <tr>
1177          <td></td>
1178          <td></td>
1179          <td class="md" nowrap>ok,         <tr>
1180          <td></td>
1181          <td></td>
1182          <td class="md" nowrap>err&nbsp;</td>
1183          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1184          <td class="md" valign="top">)&nbsp;</td>
1185          <td class="md" nowrap>
1186      </table>
1187    </td>
1188  </tr>
1189</table>
1190<table cellspacing=5 cellpadding=0 border=0>
1191  <tr>
1192    <td>
1193      &nbsp;
1194    </td>
1195    <td>
1196
1197<p>
1198<b>Value:</b><div class="fragment"><pre>ok=(fcntl(s,F_SETFL,O_NONBLOCK)!=(-1));\
1199        <span class="keywordflow">if</span> (!ok)err=errno</pre></div>    </td>
1200  </tr>
1201</table>
1202<a name="a14" doxytag="osclconfig_io.h::OsclSetRecvBufferSize"></a><p>
1203<table width="100%" cellpadding="2" cellspacing="0" border="0">
1204  <tr>
1205    <td class="md">
1206      <table cellpadding="0" cellspacing="0" border="0">
1207        <tr>
1208          <td class="md" nowrap valign="top"> #define OsclSetRecvBufferSize</td>
1209          <td class="md" valign="top">(&nbsp;</td>
1210          <td class="md" nowrap valign="top">s,         <tr>
1211          <td></td>
1212          <td></td>
1213          <td class="md" nowrap>val,         <tr>
1214          <td></td>
1215          <td></td>
1216          <td class="md" nowrap>ok,         <tr>
1217          <td></td>
1218          <td></td>
1219          <td class="md" nowrap>err&nbsp;</td>
1220          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1221          <td class="md" valign="top">)&nbsp;</td>
1222          <td class="md" nowrap>
1223      </table>
1224    </td>
1225  </tr>
1226</table>
1227<table cellspacing=5 cellpadding=0 border=0>
1228  <tr>
1229    <td>
1230      &nbsp;
1231    </td>
1232    <td>
1233
1234<p>
1235<b>Value:</b><div class="fragment"><pre>ok=(setsockopt(s,SOL_SOCKET,SO_RCVBUF,(<span class="keywordtype">char</span>*)&amp;val, <span class="keyword">sizeof</span>(<span class="keywordtype">int</span>)) !=-1);\
1236        <span class="keywordflow">if</span> (!ok)err=errno</pre></div>    </td>
1237  </tr>
1238</table>
1239<a name="a20" doxytag="osclconfig_io.h::OsclShutdown"></a><p>
1240<table width="100%" cellpadding="2" cellspacing="0" border="0">
1241  <tr>
1242    <td class="md">
1243      <table cellpadding="0" cellspacing="0" border="0">
1244        <tr>
1245          <td class="md" nowrap valign="top"> #define OsclShutdown</td>
1246          <td class="md" valign="top">(&nbsp;</td>
1247          <td class="md" nowrap valign="top">s,         <tr>
1248          <td></td>
1249          <td></td>
1250          <td class="md" nowrap>how,         <tr>
1251          <td></td>
1252          <td></td>
1253          <td class="md" nowrap>ok,         <tr>
1254          <td></td>
1255          <td></td>
1256          <td class="md" nowrap>err&nbsp;</td>
1257          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1258          <td class="md" valign="top">)&nbsp;</td>
1259          <td class="md" nowrap>
1260      </table>
1261    </td>
1262  </tr>
1263</table>
1264<table cellspacing=5 cellpadding=0 border=0>
1265  <tr>
1266    <td>
1267      &nbsp;
1268    </td>
1269    <td>
1270
1271<p>
1272<b>Value:</b><div class="fragment"><pre>ok=(shutdown(iSocket,how)!=(-1));\
1273        <span class="keywordflow">if</span> (!ok)err=errno</pre></div>    </td>
1274  </tr>
1275</table>
1276<a name="a21" doxytag="osclconfig_io.h::OsclSocket"></a><p>
1277<table width="100%" cellpadding="2" cellspacing="0" border="0">
1278  <tr>
1279    <td class="md">
1280      <table cellpadding="0" cellspacing="0" border="0">
1281        <tr>
1282          <td class="md" nowrap valign="top"> #define OsclSocket</td>
1283          <td class="md" valign="top">(&nbsp;</td>
1284          <td class="md" nowrap valign="top">s,         <tr>
1285          <td></td>
1286          <td></td>
1287          <td class="md" nowrap>fam,         <tr>
1288          <td></td>
1289          <td></td>
1290          <td class="md" nowrap>type,         <tr>
1291          <td></td>
1292          <td></td>
1293          <td class="md" nowrap>prot,         <tr>
1294          <td></td>
1295          <td></td>
1296          <td class="md" nowrap>ok,         <tr>
1297          <td></td>
1298          <td></td>
1299          <td class="md" nowrap>err&nbsp;</td>
1300          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1301          <td class="md" valign="top">)&nbsp;</td>
1302          <td class="md" nowrap>
1303      </table>
1304    </td>
1305  </tr>
1306</table>
1307<table cellspacing=5 cellpadding=0 border=0>
1308  <tr>
1309    <td>
1310      &nbsp;
1311    </td>
1312    <td>
1313
1314<p>
1315<b>Value:</b><div class="fragment"><pre>s=socket(fam,type,prot);\
1316        ok=(s!=(-1));\
1317        <span class="keywordflow">if</span> (!ok)err=errno</pre></div>    </td>
1318  </tr>
1319</table>
1320<a name="a32" doxytag="osclconfig_io.h::OsclSocketCleanup"></a><p>
1321<table width="100%" cellpadding="2" cellspacing="0" border="0">
1322  <tr>
1323    <td class="md">
1324      <table cellpadding="0" cellspacing="0" border="0">
1325        <tr>
1326          <td class="md" nowrap valign="top"> #define OsclSocketCleanup</td>
1327          <td class="md" valign="top">(&nbsp;</td>
1328          <td class="md" nowrap valign="top">ok&nbsp;</td>
1329          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1330          <td class="md" valign="top">)&nbsp;</td>
1331          <td class="md" nowrap>
1332      </table>
1333    </td>
1334  </tr>
1335</table>
1336<table cellspacing=5 cellpadding=0 border=0>
1337  <tr>
1338    <td>
1339      &nbsp;
1340    </td>
1341    <td>
1342
1343<p>
1344<b>Value:</b><div class="fragment"><pre>signal(SIGPIPE,SIG_DFL);\
1345        ok=<span class="keyword">true</span></pre></div>    </td>
1346  </tr>
1347</table>
1348<a name="a30" doxytag="osclconfig_io.h::OsclSocketSelect"></a><p>
1349<table width="100%" cellpadding="2" cellspacing="0" border="0">
1350  <tr>
1351    <td class="md">
1352      <table cellpadding="0" cellspacing="0" border="0">
1353        <tr>
1354          <td class="md" nowrap valign="top"> #define OsclSocketSelect</td>
1355          <td class="md" valign="top">(&nbsp;</td>
1356          <td class="md" nowrap valign="top">nfds,         <tr>
1357          <td></td>
1358          <td></td>
1359          <td class="md" nowrap>rd,         <tr>
1360          <td></td>
1361          <td></td>
1362          <td class="md" nowrap>wr,         <tr>
1363          <td></td>
1364          <td></td>
1365          <td class="md" nowrap>ex,         <tr>
1366          <td></td>
1367          <td></td>
1368          <td class="md" nowrap>timeout,         <tr>
1369          <td></td>
1370          <td></td>
1371          <td class="md" nowrap>ok,         <tr>
1372          <td></td>
1373          <td></td>
1374          <td class="md" nowrap>err,         <tr>
1375          <td></td>
1376          <td></td>
1377          <td class="md" nowrap>nhandles&nbsp;</td>
1378          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1379          <td class="md" valign="top">)&nbsp;</td>
1380          <td class="md" nowrap>
1381      </table>
1382    </td>
1383  </tr>
1384</table>
1385<table cellspacing=5 cellpadding=0 border=0>
1386  <tr>
1387    <td>
1388      &nbsp;
1389    </td>
1390    <td>
1391
1392<p>
1393<b>Value:</b><div class="fragment"><pre>nhandles=select(nfds,&amp;rd,&amp;wr,&amp;ex,&amp;timeout);\
1394        ok=(nhandles!=(-1));\
1395        <span class="keywordflow">if</span> (!ok)err=errno</pre></div>    </td>
1396  </tr>
1397</table>
1398<a name="a31" doxytag="osclconfig_io.h::OsclSocketStartup"></a><p>
1399<table width="100%" cellpadding="2" cellspacing="0" border="0">
1400  <tr>
1401    <td class="md">
1402      <table cellpadding="0" cellspacing="0" border="0">
1403        <tr>
1404          <td class="md" nowrap valign="top"> #define OsclSocketStartup</td>
1405          <td class="md" valign="top">(&nbsp;</td>
1406          <td class="md" nowrap valign="top">ok&nbsp;</td>
1407          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1408          <td class="md" valign="top">)&nbsp;</td>
1409          <td class="md" nowrap>
1410      </table>
1411    </td>
1412  </tr>
1413</table>
1414<table cellspacing=5 cellpadding=0 border=0>
1415  <tr>
1416    <td>
1417      &nbsp;
1418    </td>
1419    <td>
1420
1421<p>
1422<b>Value:</b><div class="fragment"><pre>signal(SIGPIPE,SIG_IGN);\
1423        ok=<span class="keyword">true</span></pre></div>    </td>
1424  </tr>
1425</table>
1426<a name="a13" doxytag="osclconfig_io.h::OsclUnMakeSockAddr"></a><p>
1427<table width="100%" cellpadding="2" cellspacing="0" border="0">
1428  <tr>
1429    <td class="md">
1430      <table cellpadding="0" cellspacing="0" border="0">
1431        <tr>
1432          <td class="md" nowrap valign="top"> #define OsclUnMakeSockAddr</td>
1433          <td class="md" valign="top">(&nbsp;</td>
1434          <td class="md" nowrap valign="top">sockaddr,         <tr>
1435          <td></td>
1436          <td></td>
1437          <td class="md" nowrap>addrstr&nbsp;</td>
1438          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1439          <td class="md" valign="top">)&nbsp;</td>
1440          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;addrstr=inet_ntoa(sockaddr.sin_addr);
1441      </table>
1442    </td>
1443  </tr>
1444</table>
1445<table cellspacing=5 cellpadding=0 border=0>
1446  <tr>
1447    <td>
1448      &nbsp;
1449    </td>
1450    <td>
1451
1452<p>
1453    </td>
1454  </tr>
1455</table>
1456<a name="a11" doxytag="osclconfig_io.h::OsclValidInetAddr"></a><p>
1457<table width="100%" cellpadding="2" cellspacing="0" border="0">
1458  <tr>
1459    <td class="md">
1460      <table cellpadding="0" cellspacing="0" border="0">
1461        <tr>
1462          <td class="md" nowrap valign="top"> #define OsclValidInetAddr</td>
1463          <td class="md" valign="top">(&nbsp;</td>
1464          <td class="md" nowrap valign="top">addr&nbsp;</td>
1465          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1466          <td class="md" valign="top">)&nbsp;</td>
1467          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;(inet_addr(addr)!=INADDR_NONE)
1468      </table>
1469    </td>
1470  </tr>
1471</table>
1472<table cellspacing=5 cellpadding=0 border=0>
1473  <tr>
1474    <td>
1475      &nbsp;
1476    </td>
1477    <td>
1478
1479<p>
1480    </td>
1481  </tr>
1482</table>
1483<hr><h2>Typedef Documentation</h2>
1484<a name="a48" doxytag="osclconfig_io.h::TOsclFileOffset"></a><p>
1485<table width="100%" cellpadding="2" cellspacing="0" border="0">
1486  <tr>
1487    <td class="md">
1488      <table cellpadding="0" cellspacing="0" border="0">
1489        <tr>
1490          <td class="md" nowrap valign="top"> typedef off_t TOsclFileOffset
1491      </table>
1492    </td>
1493  </tr>
1494</table>
1495<table cellspacing=5 cellpadding=0 border=0>
1496  <tr>
1497    <td>
1498      &nbsp;
1499    </td>
1500    <td>
1501
1502<p>
1503    </td>
1504  </tr>
1505</table>
1506<a name="a47" doxytag="osclconfig_io.h::TOsclHostent"></a><p>
1507<table width="100%" cellpadding="2" cellspacing="0" border="0">
1508  <tr>
1509    <td class="md">
1510      <table cellpadding="0" cellspacing="0" border="0">
1511        <tr>
1512          <td class="md" nowrap valign="top"> typedef struct hostent TOsclHostent
1513      </table>
1514    </td>
1515  </tr>
1516</table>
1517<table cellspacing=5 cellpadding=0 border=0>
1518  <tr>
1519    <td>
1520      &nbsp;
1521    </td>
1522    <td>
1523
1524<p>
1525    </td>
1526  </tr>
1527</table>
1528<a name="a45" doxytag="osclconfig_io.h::TOsclSockAddr"></a><p>
1529<table width="100%" cellpadding="2" cellspacing="0" border="0">
1530  <tr>
1531    <td class="md">
1532      <table cellpadding="0" cellspacing="0" border="0">
1533        <tr>
1534          <td class="md" nowrap valign="top"> typedef struct sockaddr_in TOsclSockAddr
1535      </table>
1536    </td>
1537  </tr>
1538</table>
1539<table cellspacing=5 cellpadding=0 border=0>
1540  <tr>
1541    <td>
1542      &nbsp;
1543    </td>
1544    <td>
1545
1546<p>
1547    </td>
1548  </tr>
1549</table>
1550<a name="a46" doxytag="osclconfig_io.h::TOsclSockAddrLen"></a><p>
1551<table width="100%" cellpadding="2" cellspacing="0" border="0">
1552  <tr>
1553    <td class="md">
1554      <table cellpadding="0" cellspacing="0" border="0">
1555        <tr>
1556          <td class="md" nowrap valign="top"> typedef socklen_t TOsclSockAddrLen
1557      </table>
1558    </td>
1559  </tr>
1560</table>
1561<table cellspacing=5 cellpadding=0 border=0>
1562  <tr>
1563    <td>
1564      &nbsp;
1565    </td>
1566    <td>
1567
1568<p>
1569    </td>
1570  </tr>
1571</table>
1572<a name="a44" doxytag="osclconfig_io.h::TOsclSocket"></a><p>
1573<table width="100%" cellpadding="2" cellspacing="0" border="0">
1574  <tr>
1575    <td class="md">
1576      <table cellpadding="0" cellspacing="0" border="0">
1577        <tr>
1578          <td class="md" nowrap valign="top"> typedef int TOsclSocket
1579      </table>
1580    </td>
1581  </tr>
1582</table>
1583<table cellspacing=5 cellpadding=0 border=0>
1584  <tr>
1585    <td>
1586      &nbsp;
1587    </td>
1588    <td>
1589
1590<p>
1591    </td>
1592  </tr>
1593</table>
1594<hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
1595<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
1596</small></address>
1597</body>
1598</html>
1599