<!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>