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> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> </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 <stdio.h></code><br> 14 <code>#include <stdlib.h></code><br> 15 <code>#include <stdarg.h></code><br> 16 <code>#include <sys/socket.h></code><br> 17 <code>#include <netinet/in.h></code><br> 18 <code>#include <arpa/inet.h></code><br> 19 <code>#include <fcntl.h></code><br> 20 <code>#include <signal.h></code><br> 21 <code>#include <netdb.h></code><br> 22 <code>#include <sys/mman.h></code><br> 23 <code>#include <sys/types.h></code><br> 24 <code>#include <errno.h></code><br> 25 <code>#include <sys/vfs.h></code><br> 26 <code>#include <dirent.h></code><br> 27 <code>#include <sys/stat.h></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 </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a0">OSCL_HAS_GLOB</a> 0</td></tr> 35 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a1">OSCL_HAS_ANSI_FILE_IO_SUPPORT</a> 1</td></tr> 36 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a2">OSCL_HAS_SYMBIAN_COMPATIBLE_IO_FUNCTION</a> 0</td></tr> 37 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a3">OSCL_HAS_NATIVE_FILE_CACHE_ENABLE</a> 1</td></tr> 38 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a4">OSCL_FILE_BUFFER_MAX_SIZE</a> 32768</td></tr> 39 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a5">OSCL_HAS_PV_FILE_CACHE</a> 0</td></tr> 40 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a6">OSCL_HAS_LARGE_FILE_SUPPORT</a> 1</td></tr> 41 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a7">OSCL_HAS_SYMBIAN_SOCKET_SERVER</a> 0</td></tr> 42 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a8">OSCL_HAS_SYMBIAN_DNS_SERVER</a> 0</td></tr> 43 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a9">OSCL_HAS_BERKELEY_SOCKETS</a> 1</td></tr> 44 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a10">OSCL_HAS_SOCKET_SUPPORT</a> 1</td></tr> 45 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a11">OsclValidInetAddr</a>(addr) (inet_addr(addr)!=INADDR_NONE)</td></tr> 46 <tr><td nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a13">OsclUnMakeSockAddr</a>(sockaddr, addrstr) addrstr=inet_ntoa(sockaddr.sin_addr);</td></tr> 48 <tr><td nowrap align=right valign=top>#define </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a35">OSCL_SD_RECEIVE</a> SHUT_RD</td></tr> 70 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a36">OSCL_SD_SEND</a> SHUT_WR</td></tr> 71 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a37">OSCL_SD_BOTH</a> SHUT_RDWR</td></tr> 72 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a38">OSCL_AF_INET</a> AF_INET</td></tr> 73 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a39">OSCL_SOCK_STREAM</a> SOCK_STREAM</td></tr> 74 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a40">OSCL_SOCK_DATAGRAM</a> SOCK_DGRAM</td></tr> 75 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a41">OSCL_IPPROTO_TCP</a> IPPROTO_TCP</td></tr> 76 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a42">OSCL_IPPROTO_UDP</a> IPPROTO_UDP</td></tr> 77 <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="osclconfig__io_8h.html#a43">_FILE_OFFSET_BITS</a> 64</td></tr> 78 <tr><td colspan=2><br><h2>Typedefs</h2></td></tr> 79 <tr><td nowrap align=right valign=top>typedef int </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 </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 </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 </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 </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> 86 This 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 64 98 </table> 99 </td> 100 </tr> 101 </table> 102 <table cellspacing=5 cellpadding=0 border=0> 103 <tr> 104 <td> 105 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 AF_INET 120 </table> 121 </td> 122 </tr> 123 </table> 124 <table cellspacing=5 cellpadding=0 border=0> 125 <tr> 126 <td> 127 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 32768 142 </table> 143 </td> 144 </tr> 145 </table> 146 <table cellspacing=5 cellpadding=0 border=0> 147 <tr> 148 <td> 149 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 1 164 </table> 165 </td> 166 </tr> 167 </table> 168 <table cellspacing=5 cellpadding=0 border=0> 169 <tr> 170 <td> 171 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 1 186 </table> 187 </td> 188 </tr> 189 </table> 190 <table cellspacing=5 cellpadding=0 border=0> 191 <tr> 192 <td> 193 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 0 208 </table> 209 </td> 210 </tr> 211 </table> 212 <table cellspacing=5 cellpadding=0 border=0> 213 <tr> 214 <td> 215 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 1 230 </table> 231 </td> 232 </tr> 233 </table> 234 <table cellspacing=5 cellpadding=0 border=0> 235 <tr> 236 <td> 237 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 1 252 </table> 253 </td> 254 </tr> 255 </table> 256 <table cellspacing=5 cellpadding=0 border=0> 257 <tr> 258 <td> 259 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 0 274 </table> 275 </td> 276 </tr> 277 </table> 278 <table cellspacing=5 cellpadding=0 border=0> 279 <tr> 280 <td> 281 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 1 296 </table> 297 </td> 298 </tr> 299 </table> 300 <table cellspacing=5 cellpadding=0 border=0> 301 <tr> 302 <td> 303 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 0 318 </table> 319 </td> 320 </tr> 321 </table> 322 <table cellspacing=5 cellpadding=0 border=0> 323 <tr> 324 <td> 325 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 0 340 </table> 341 </td> 342 </tr> 343 </table> 344 <table cellspacing=5 cellpadding=0 border=0> 345 <tr> 346 <td> 347 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 0 362 </table> 363 </td> 364 </tr> 365 </table> 366 <table cellspacing=5 cellpadding=0 border=0> 367 <tr> 368 <td> 369 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 IPPROTO_TCP 384 </table> 385 </td> 386 </tr> 387 </table> 388 <table cellspacing=5 cellpadding=0 border=0> 389 <tr> 390 <td> 391 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 IPPROTO_UDP 406 </table> 407 </td> 408 </tr> 409 </table> 410 <table cellspacing=5 cellpadding=0 border=0> 411 <tr> 412 <td> 413 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 SHUT_RDWR 428 </table> 429 </td> 430 </tr> 431 </table> 432 <table cellspacing=5 cellpadding=0 border=0> 433 <tr> 434 <td> 435 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 SHUT_RD 450 </table> 451 </td> 452 </tr> 453 </table> 454 <table cellspacing=5 cellpadding=0 border=0> 455 <tr> 456 <td> 457 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 SHUT_WR 472 </table> 473 </td> 474 </tr> 475 </table> 476 <table cellspacing=5 cellpadding=0 border=0> 477 <tr> 478 <td> 479 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 SOCK_DGRAM 494 </table> 495 </td> 496 </tr> 497 </table> 498 <table cellspacing=5 cellpadding=0 border=0> 499 <tr> 500 <td> 501 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 SOCK_STREAM 516 </table> 517 </td> 518 </tr> 519 </table> 520 <table cellspacing=5 cellpadding=0 border=0> 521 <tr> 522 <td> 523 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">( </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 </td> 552 <td class="mdname1" valign="top" nowrap> </td> 553 <td class="md" valign="top">) </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 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">( </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 </td> 590 <td class="mdname1" valign="top" nowrap> </td> 591 <td class="md" valign="top">) </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 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 = &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">( </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 </td> 626 <td class="mdname1" valign="top" nowrap> </td> 627 <td class="md" valign="top">) </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 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">( </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 </td> 666 <td class="mdname1" valign="top" nowrap> </td> 667 <td class="md" valign="top">) </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 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 = &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">( </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 </td> 714 <td class="mdname1" valign="top" nowrap> </td> 715 <td class="md" valign="top">) </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 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,&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,&wset))\ 733 {<a class="code" href="osclconfig__io_8h.html#a26">OsclGetAsyncSockErr</a>(s,ok,err);<span class="keywordflow">if</span> (ok && 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">( </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 </td> 751 <td class="mdname1" valign="top" nowrap> </td> 752 <td class="md" valign="top">) </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 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> *)&opterr,&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">( </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 </td> 786 <td class="mdname1" valign="top" nowrap> </td> 787 <td class="md" valign="top">) </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 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->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">( </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 </td> 826 <td class="mdname1" valign="top" nowrap> </td> 827 <td class="md" valign="top">) </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 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">( </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 </td> 864 <td class="mdname1" valign="top" nowrap> </td> 865 <td class="md" valign="top">) </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 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 = &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, &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">( </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 </td> 908 <td class="mdname1" valign="top" nowrap> </td> 909 <td class="md" valign="top">) </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 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">( </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 </td> 945 <td class="mdname1" valign="top" nowrap> </td> 946 <td class="md" valign="top">) </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 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,&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">( </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 </td> 993 <td class="mdname1" valign="top" nowrap> </td> 994 <td class="md" valign="top">) </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 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">( </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 </td> 1046 <td class="mdname1" valign="top" nowrap> </td> 1047 <td class="md" valign="top">) </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 1057 </td> 1058 <td> 1059 1060 <p> 1061 <b>Value:</b><div class="fragment"><pre>{\ 1062 <span class="keywordtype">void</span>* p=paddr;\ 1063 nbytes=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">( </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 </td> 1096 <td class="mdname1" valign="top" nowrap> </td> 1097 <td class="md" valign="top">) </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 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">( </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 </td> 1146 <td class="mdname1" valign="top" nowrap> </td> 1147 <td class="md" valign="top">) </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 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 = &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">( </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 </td> 1183 <td class="mdname1" valign="top" nowrap> </td> 1184 <td class="md" valign="top">) </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 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">( </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 </td> 1220 <td class="mdname1" valign="top" nowrap> </td> 1221 <td class="md" valign="top">) </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 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>*)&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">( </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 </td> 1257 <td class="mdname1" valign="top" nowrap> </td> 1258 <td class="md" valign="top">) </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 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">( </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 </td> 1300 <td class="mdname1" valign="top" nowrap> </td> 1301 <td class="md" valign="top">) </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 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">( </td> 1328 <td class="md" nowrap valign="top">ok </td> 1329 <td class="mdname1" valign="top" nowrap> </td> 1330 <td class="md" valign="top">) </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 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">( </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 </td> 1378 <td class="mdname1" valign="top" nowrap> </td> 1379 <td class="md" valign="top">) </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 1389 </td> 1390 <td> 1391 1392 <p> 1393 <b>Value:</b><div class="fragment"><pre>nhandles=select(nfds,&rd,&wr,&ex,&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">( </td> 1406 <td class="md" nowrap valign="top">ok </td> 1407 <td class="mdname1" valign="top" nowrap> </td> 1408 <td class="md" valign="top">) </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 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">( </td> 1434 <td class="md" nowrap valign="top">sockaddr, <tr> 1435 <td></td> 1436 <td></td> 1437 <td class="md" nowrap>addrstr </td> 1438 <td class="mdname1" valign="top" nowrap> </td> 1439 <td class="md" valign="top">) </td> 1440 <td class="md" nowrap> 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 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">( </td> 1464 <td class="md" nowrap valign="top">addr </td> 1465 <td class="mdname1" valign="top" nowrap> </td> 1466 <td class="md" valign="top">) </td> 1467 <td class="md" nowrap> (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 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 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 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 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 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 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