<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Ubixos: ipv4/ip_addr.h File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.3.3 --> <h1>ip_addr.h File Reference</h1><code>#include "<a class="el" href="arch_8h-source.html">net/arch.h</a>"</code><br> <p> <a href="ipv4_2ip__addr_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0> <tr><td></td></tr> <tr><td colspan=2><br><h2>Data Structures</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="structip__addr.html">ip_addr</a></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a0">IP_ADDR_ANY</a> 0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a1">IP_ADDR_BROADCAST</a> (&<a class="el" href="ipv4_2ip__addr_8h.html#a15">ip_addr_broadcast</a>)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a2">IP4_ADDR</a>(ipaddr, a, b, c, d)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a3">ip_addr_set</a>(dest, src)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a4">ip_addr_maskcmp</a>(addr1, addr2, mask)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a5">ip_addr_cmp</a>(addr1, addr2) ((addr1)->addr == (addr2)->addr)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a6">ip_addr_isany</a>(addr1) ((addr1) == NULL || (addr1)->addr == 0)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a7">ip_addr_isbroadcast</a>(addr1, mask)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a8">ip_addr_ismulticast</a>(addr1) (((addr1)->addr & ntohl(0xf0000000)) == ntohl(0xe0000000))</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a9">ip_addr_debug_print</a>(ipaddr)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a10">ip4_addr1</a>(ipaddr) ((<a class="el" href="types_8h.html#a1">uInt8</a>)(ntohl((ipaddr)->addr) >> 24) & 0xff)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a11">ip4_addr2</a>(ipaddr) ((<a class="el" href="types_8h.html#a1">uInt8</a>)(ntohl((ipaddr)->addr) >> 16) & 0xff)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a12">ip4_addr3</a>(ipaddr) ((<a class="el" href="types_8h.html#a1">uInt8</a>)(ntohl((ipaddr)->addr) >> 8) & 0xff)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a13">ip4_addr4</a>(ipaddr) ((<a class="el" href="types_8h.html#a1">uInt8</a>)(ntohl((ipaddr)->addr)) & 0xff)</td></tr> <tr><td colspan=2><br><h2>Variables</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>PACK_STRUCT_BEGIN struct <a class="el" href="structip__addr.html">ip_addr</a> </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a14">PACK_STRUCT_STRUCT</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>PACK_STRUCT_END struct <a class="el" href="structip__addr.html">ip_addr</a> </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip__addr_8h.html#a15">ip_addr_broadcast</a></td></tr> </table> <hr><h2>Define Documentation</h2> <a name="a2" doxytag="ipv4/ip_addr.h::IP4_ADDR"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define IP4_ADDR</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">ipaddr, <tr> <td></td> <td></td> <td class="md" nowrap>a, <tr> <td></td> <td></td> <td class="md" nowrap>b, <tr> <td></td> <td></td> <td class="md" nowrap>c, <tr> <td></td> <td></td> <td class="md" nowrap>d </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <b>Value:</b><div class="fragment"><pre>(ipaddr)->addr = <a class="code" href="ipv4_2inet_8h.html#a5">htonl</a>(((uInt32)(a & 0xff) << 24) | ((uInt32)(b & 0xff) << 16) | \ ((uInt32)(c & 0xff) << 8) | (uInt32)(d & 0xff)) </pre></div> </td> </tr> </table> <a name="a10" doxytag="ipv4/ip_addr.h::ip4_addr1"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ip4_addr1</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">ipaddr </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> ((<a class="el" href="types_8h.html#a1">uInt8</a>)(ntohl((ipaddr)->addr) >> 24) & 0xff) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a11" doxytag="ipv4/ip_addr.h::ip4_addr2"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ip4_addr2</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">ipaddr </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> ((<a class="el" href="types_8h.html#a1">uInt8</a>)(ntohl((ipaddr)->addr) >> 16) & 0xff) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a12" doxytag="ipv4/ip_addr.h::ip4_addr3"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ip4_addr3</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">ipaddr </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> ((<a class="el" href="types_8h.html#a1">uInt8</a>)(ntohl((ipaddr)->addr) >> 8) & 0xff) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a13" doxytag="ipv4/ip_addr.h::ip4_addr4"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ip4_addr4</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">ipaddr </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> ((<a class="el" href="types_8h.html#a1">uInt8</a>)(ntohl((ipaddr)->addr)) & 0xff) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a0" doxytag="ipv4/ip_addr.h::IP_ADDR_ANY"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define IP_ADDR_ANY 0 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a1" doxytag="ipv4/ip_addr.h::IP_ADDR_BROADCAST"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define IP_ADDR_BROADCAST (&<a class="el" href="ipv4_2ip__addr_8h.html#a15">ip_addr_broadcast</a>) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a5" doxytag="ipv4/ip_addr.h::ip_addr_cmp"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ip_addr_cmp</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">addr1, <tr> <td></td> <td></td> <td class="md" nowrap>addr2 </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> ((addr1)->addr == (addr2)->addr) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a9" doxytag="ipv4/ip_addr.h::ip_addr_debug_print"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ip_addr_debug_print</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">ipaddr </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <b>Value:</b><div class="fragment"><pre><a class="code" href="kprint_8h.html#a1">kprintf</a>(<span class="stringliteral">"%d.%d.%d.%d"</span>, \ (uInt8)(<a class="code" href="ipv4_2inet_8h.html#a7">ntohl</a>((ipaddr)->addr) >> 24) & 0xff, \ (uInt8)(<a class="code" href="ipv4_2inet_8h.html#a7">ntohl</a>((ipaddr)->addr) >> 16) & 0xff, \ (uInt8)(<a class="code" href="ipv4_2inet_8h.html#a7">ntohl</a>((ipaddr)->addr) >> 8) & 0xff, \ (uInt8)<a class="code" href="ipv4_2inet_8h.html#a7">ntohl</a>((ipaddr)->addr) & 0xff) </pre></div> </td> </tr> </table> <a name="a6" doxytag="ipv4/ip_addr.h::ip_addr_isany"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ip_addr_isany</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">addr1 </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> ((addr1) == NULL || (addr1)->addr == 0) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a7" doxytag="ipv4/ip_addr.h::ip_addr_isbroadcast"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ip_addr_isbroadcast</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">addr1, <tr> <td></td> <td></td> <td class="md" nowrap>mask </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <b>Value:</b><div class="fragment"><pre>(((((addr1)->addr) & ~((mask)->addr)) == \ (0xffffffff & ~((mask)->addr))) || \ ((addr1)->addr == 0xffffffff) || \ ((addr1)->addr == 0x00000000)) </pre></div> </td> </tr> </table> <a name="a8" doxytag="ipv4/ip_addr.h::ip_addr_ismulticast"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ip_addr_ismulticast</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">addr1 </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (((addr1)->addr & ntohl(0xf0000000)) == ntohl(0xe0000000)) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a4" doxytag="ipv4/ip_addr.h::ip_addr_maskcmp"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ip_addr_maskcmp</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">addr1, <tr> <td></td> <td></td> <td class="md" nowrap>addr2, <tr> <td></td> <td></td> <td class="md" nowrap>mask </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <b>Value:</b><div class="fragment"><pre>(((addr1)->addr & \ (mask)->addr) == \ ((addr2)->addr & \ (mask)->addr)) </pre></div> </td> </tr> </table> <a name="a3" doxytag="ipv4/ip_addr.h::ip_addr_set"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ip_addr_set</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">dest, <tr> <td></td> <td></td> <td class="md" nowrap>src </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <b>Value:</b><div class="fragment"><pre>(dest)->addr = \ ((src) == <a class="code" href="ipv4_2ip__addr_8h.html#a0">IP_ADDR_ANY</a>? <a class="code" href="ipv4_2ip__addr_8h.html#a0">IP_ADDR_ANY</a>:\ ((<span class="keyword">struct </span><a class="code" href="structip__addr.html">ip_addr</a> *)src)->addr) </pre></div> </td> </tr> </table> <hr><h2>Variable Documentation</h2> <a name="a15" doxytag="ipv4/ip_addr.h::ip_addr_broadcast"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> PACK_STRUCT_END struct <a class="el" href="structip__addr.html">ip_addr</a> <a class="el" href="ipv4_2ip__addr_8h.html#a15">ip_addr_broadcast</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a14" doxytag="ipv4/ip_addr.h::PACK_STRUCT_STRUCT"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> PACK_STRUCT_BEGIN struct <a class="el" href="structip__addr.html">ip_addr</a> <a class="el" href="arp_8h.html#a3">PACK_STRUCT_STRUCT</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr size="1"><address style="align: right;"><small>Generated on Sat May 8 09:28:20 2004 for Ubixos by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.3 </small></address> </body> </html>