a00148.html 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
  3. <title>uIP 1.0: uIP conversion functions</title>
  4. <link href="doxygen.css" rel="stylesheet" type="text/css">
  5. <link href="tabs.css" rel="stylesheet" type="text/css">
  6. </head><body>
  7. <!-- Generated by Doxygen 1.4.6 -->
  8. <div class="tabs">
  9. <ul>
  10. <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
  11. <li><a href="modules.html"><span>Modules</span></a></li>
  12. <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
  13. <li><a href="files.html"><span>Files</span></a></li>
  14. <li><a href="examples.html"><span>Examples</span></a></li>
  15. </ul></div>
  16. <h1>uIP conversion functions<br>
  17. <small>
  18. [<a class="el" href="a00150.html">The uIP TCP/IP stack</a>]</small>
  19. </h1><hr><a name="_details"></a><h2>Detailed Description</h2>
  20. These functions can be used for converting between different data formats used by uIP.
  21. <p>
  22. <p>
  23. <table border="0" cellpadding="0" cellspacing="0">
  24. <tr><td></td></tr>
  25. <tr><td colspan="2"><br><h2>Defines</h2></td></tr>
  26. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(addr, addr0, addr1, addr2, addr3)</td></tr>
  27. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct an IP address from four bytes. <a href="#g87f0b54ade0d159fba495089128a4932"></a><br></td></tr>
  28. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g53fbda0e8c31d4882294c8dc3cb5f487">uip_ip6addr</a>(addr, addr0, addr1, addr2, addr3, addr4, addr5, addr6, addr7)</td></tr>
  29. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct an IPv6 address from eight 16-bit words. <a href="#g53fbda0e8c31d4882294c8dc3cb5f487"></a><br></td></tr>
  30. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g769512993b7b27271909d6daa4748b60">uip_ipaddr_copy</a>(dest, src)</td></tr>
  31. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy an IP address to another IP address. <a href="#g769512993b7b27271909d6daa4748b60"></a><br></td></tr>
  32. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g210e629f7252e4bc8458cbdf260b3318">uip_ipaddr_cmp</a>(addr1, addr2)</td></tr>
  33. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two IP addresses. <a href="#g210e629f7252e4bc8458cbdf260b3318"></a><br></td></tr>
  34. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g6b16e0bac41821c1fbe0c267071642f0">uip_ipaddr_maskcmp</a>(addr1, addr2, mask)</td></tr>
  35. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two IP addresses with netmasks. <a href="#g6b16e0bac41821c1fbe0c267071642f0"></a><br></td></tr>
  36. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g969d7fff37a979737da045e0d538a9bd">uip_ipaddr_mask</a>(dest, src, mask)</td></tr>
  37. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mask out the network part of an IP address. <a href="#g969d7fff37a979737da045e0d538a9bd"></a><br></td></tr>
  38. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g22fa0681cd463191d7a01fe85d86996f">uip_ipaddr1</a>(addr)</td></tr>
  39. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pick the first octet of an IP address. <a href="#g22fa0681cd463191d7a01fe85d86996f"></a><br></td></tr>
  40. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#gffcd2fbe181e2aaefbf970551c302af5">uip_ipaddr2</a>(addr)</td></tr>
  41. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pick the second octet of an IP address. <a href="#gffcd2fbe181e2aaefbf970551c302af5"></a><br></td></tr>
  42. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ge23534479ead15af8ff08ace26a47fb5">uip_ipaddr3</a>(addr)</td></tr>
  43. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pick the third octet of an IP address. <a href="#ge23534479ead15af8ff08ace26a47fb5"></a><br></td></tr>
  44. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g165b603ec150e26efec7be199c9c2901">uip_ipaddr4</a>(addr)</td></tr>
  45. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pick the fourth octet of an IP address. <a href="#g165b603ec150e26efec7be199c9c2901"></a><br></td></tr>
  46. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS</a>(n)</td></tr>
  47. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert 16-bit quantity from host byte order to network byte order. <a href="#g69a7a4951ff21b302267532c21ee78fc"></a><br></td></tr>
  48. <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g118e9d76568ab81ad97f138d4ea1ddd2"></a><!-- doxytag: member="uipconvfunc::ntohs" ref="g118e9d76568ab81ad97f138d4ea1ddd2" args="" -->
  49. #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g118e9d76568ab81ad97f138d4ea1ddd2">ntohs</a>&nbsp;&nbsp;&nbsp;htons</td></tr>
  50. <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
  51. <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ga22b04cac8cf283ca12f028578bebc06">htons</a> (<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> val)</td></tr>
  52. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert 16-bit quantity from host byte order to network byte order. <a href="#ga22b04cac8cf283ca12f028578bebc06"></a><br></td></tr>
  53. </table>
  54. <hr><h2>Define Documentation</h2>
  55. <a class="anchor" name="g69a7a4951ff21b302267532c21ee78fc"></a><!-- doxytag: member="uip.h::HTONS" ref="g69a7a4951ff21b302267532c21ee78fc" args="(n)" --><p>
  56. <table class="mdTable" cellpadding="2" cellspacing="0">
  57. <tr>
  58. <td class="mdRow">
  59. <table cellpadding="0" cellspacing="0" border="0">
  60. <tr>
  61. <td class="md" nowrap valign="top">#define HTONS </td>
  62. <td class="md" valign="top">(&nbsp;</td>
  63. <td class="md" nowrap valign="top">n&nbsp;</td>
  64. <td class="mdname1" valign="top" nowrap> </td>
  65. <td class="md" valign="top">&nbsp;)&nbsp;</td>
  66. <td class="md" nowrap></td>
  67. </tr>
  68. </table>
  69. </td>
  70. </tr>
  71. </table>
  72. <table cellspacing="5" cellpadding="0" border="0">
  73. <tr>
  74. <td>
  75. &nbsp;
  76. </td>
  77. <td>
  78. <p>
  79. Convert 16-bit quantity from host byte order to network byte order.
  80. <p>
  81. This macro is primarily used for converting constants from host byte order to network byte order. For converting variables to network byte order, use the <a class="el" href="a00148.html#ga22b04cac8cf283ca12f028578bebc06">htons()</a> function instead. <dl compact><dt><b>Examples: </b></dt><dd>
  82. <a class="el" href="a00048.html#a6">dhcpc.c</a>, <a class="el" href="a00036.html#a103">hello-world.c</a>, <a class="el" href="a00046.html#a139">resolv.c</a>, <a class="el" href="a00038.html#a191">smtp.c</a>, and <a class="el" href="a00044.html#a219">telnetd.c</a>.</dl>
  83. <p>
  84. Definition at line <a class="el" href="a00202.html#l01070">1070</a> of file <a class="el" href="a00202.html">uip.h</a>.
  85. <p>
  86. Referenced by <a class="el" href="a00170.html#l00041">hello_world_init()</a>, <a class="el" href="a00201.html#l01882">htons()</a>, <a class="el" href="a00184.html#l00333">httpd_init()</a>, <a class="el" href="a00172.html#l00331">resolv_appcall()</a>, <a class="el" href="a00172.html#l00438">resolv_conf()</a>, <a class="el" href="a00174.html#l00233">smtp_send()</a>, <a class="el" href="a00204.html#l00278">uip_arp_arpin()</a>, and <a class="el" href="a00201.html#l00682">uip_process()</a>. </td>
  87. </tr>
  88. </table>
  89. <a class="anchor" name="g53fbda0e8c31d4882294c8dc3cb5f487"></a><!-- doxytag: member="uip.h::uip_ip6addr" ref="g53fbda0e8c31d4882294c8dc3cb5f487" args="(addr, addr0, addr1, addr2, addr3, addr4, addr5, addr6, addr7)" --><p>
  90. <table class="mdTable" cellpadding="2" cellspacing="0">
  91. <tr>
  92. <td class="mdRow">
  93. <table cellpadding="0" cellspacing="0" border="0">
  94. <tr>
  95. <td class="md" nowrap valign="top">#define uip_ip6addr </td>
  96. <td class="md" valign="top">(&nbsp;</td>
  97. <td class="md" nowrap valign="top">addr, <tr>
  98. <td class="md" nowrap align="right"></td>
  99. <td class="md"></td>
  100. <td class="md" nowrap>addr0, <tr>
  101. <td class="md" nowrap align="right"></td>
  102. <td class="md"></td>
  103. <td class="md" nowrap>addr1, <tr>
  104. <td class="md" nowrap align="right"></td>
  105. <td class="md"></td>
  106. <td class="md" nowrap>addr2, <tr>
  107. <td class="md" nowrap align="right"></td>
  108. <td class="md"></td>
  109. <td class="md" nowrap>addr3, <tr>
  110. <td class="md" nowrap align="right"></td>
  111. <td class="md"></td>
  112. <td class="md" nowrap>addr4, <tr>
  113. <td class="md" nowrap align="right"></td>
  114. <td class="md"></td>
  115. <td class="md" nowrap>addr5, <tr>
  116. <td class="md" nowrap align="right"></td>
  117. <td class="md"></td>
  118. <td class="md" nowrap>addr6, <tr>
  119. <td class="md" nowrap align="right"></td>
  120. <td class="md"></td>
  121. <td class="md" nowrap>addr7&nbsp;</td>
  122. <td class="mdname1" valign="top" nowrap> </td>
  123. <td class="md" valign="top">&nbsp;)&nbsp;</td>
  124. <td class="md" nowrap></td>
  125. </tr>
  126. </table>
  127. </td>
  128. </tr>
  129. </table>
  130. <table cellspacing="5" cellpadding="0" border="0">
  131. <tr>
  132. <td>
  133. &nbsp;
  134. </td>
  135. <td>
  136. <p>
  137. Construct an IPv6 address from eight 16-bit words.
  138. <p>
  139. This function constructs an IPv6 address.
  140. <p>
  141. Definition at line <a class="el" href="a00202.html#l00852">852</a> of file <a class="el" href="a00202.html">uip.h</a>. </td>
  142. </tr>
  143. </table>
  144. <a class="anchor" name="g87f0b54ade0d159fba495089128a4932"></a><!-- doxytag: member="uip.h::uip_ipaddr" ref="g87f0b54ade0d159fba495089128a4932" args="(addr, addr0, addr1, addr2, addr3)" --><p>
  145. <table class="mdTable" cellpadding="2" cellspacing="0">
  146. <tr>
  147. <td class="mdRow">
  148. <table cellpadding="0" cellspacing="0" border="0">
  149. <tr>
  150. <td class="md" nowrap valign="top">#define uip_ipaddr </td>
  151. <td class="md" valign="top">(&nbsp;</td>
  152. <td class="md" nowrap valign="top">addr, <tr>
  153. <td class="md" nowrap align="right"></td>
  154. <td class="md"></td>
  155. <td class="md" nowrap>addr0, <tr>
  156. <td class="md" nowrap align="right"></td>
  157. <td class="md"></td>
  158. <td class="md" nowrap>addr1, <tr>
  159. <td class="md" nowrap align="right"></td>
  160. <td class="md"></td>
  161. <td class="md" nowrap>addr2, <tr>
  162. <td class="md" nowrap align="right"></td>
  163. <td class="md"></td>
  164. <td class="md" nowrap>addr3&nbsp;</td>
  165. <td class="mdname1" valign="top" nowrap> </td>
  166. <td class="md" valign="top">&nbsp;)&nbsp;</td>
  167. <td class="md" nowrap></td>
  168. </tr>
  169. </table>
  170. </td>
  171. </tr>
  172. </table>
  173. <table cellspacing="5" cellpadding="0" border="0">
  174. <tr>
  175. <td>
  176. &nbsp;
  177. </td>
  178. <td>
  179. <p>
  180. Construct an IP address from four bytes.
  181. <p>
  182. This function constructs an IP address of the type that uIP handles internally from four bytes. The function is handy for specifying IP addresses to use with e.g. the <a class="el" href="a00147.html#g8096b0c4b543dc408f4dd031ddae7240">uip_connect()</a> function.<p>
  183. Example: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr;
  184. <span class="keyword">struct </span><a class="code" href="a00088.html">uip_conn</a> *c;
  185. <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr, 192,168,1,2);
  186. c = <a class="code" href="a00147.html#g8096b0c4b543dc408f4dd031ddae7240">uip_connect</a>(&amp;ipaddr, <a class="code" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS</a>(80));
  187. </pre></div><p>
  188. <dl compact><dt><b>Parameters:</b></dt><dd>
  189. <table border="0" cellspacing="2" cellpadding="0">
  190. <tr><td valign="top"></td><td valign="top"><em>addr</em>&nbsp;</td><td>A pointer to a uip_ipaddr_t variable that will be filled in with the IP address.</td></tr>
  191. <tr><td valign="top"></td><td valign="top"><em>addr0</em>&nbsp;</td><td>The first octet of the IP address. </td></tr>
  192. <tr><td valign="top"></td><td valign="top"><em>addr1</em>&nbsp;</td><td>The second octet of the IP address. </td></tr>
  193. <tr><td valign="top"></td><td valign="top"><em>addr2</em>&nbsp;</td><td>The third octet of the IP address. </td></tr>
  194. <tr><td valign="top"></td><td valign="top"><em>addr3</em>&nbsp;</td><td>The forth octet of the IP address. </td></tr>
  195. </table>
  196. </dl>
  197. <dl compact><dt><b>Examples: </b></dt><dd>
  198. <a class="el" href="a00048.html#a36">dhcpc.c</a>, <a class="el" href="a00042.html#a65">example-mainloop-with-arp.c</a>, and <a class="el" href="a00043.html#a89">example-mainloop-without-arp.c</a>.</dl>
  199. <p>
  200. Definition at line <a class="el" href="a00202.html#l00840">840</a> of file <a class="el" href="a00202.html">uip.h</a>. </td>
  201. </tr>
  202. </table>
  203. <a class="anchor" name="g22fa0681cd463191d7a01fe85d86996f"></a><!-- doxytag: member="uip.h::uip_ipaddr1" ref="g22fa0681cd463191d7a01fe85d86996f" args="(addr)" --><p>
  204. <table class="mdTable" cellpadding="2" cellspacing="0">
  205. <tr>
  206. <td class="mdRow">
  207. <table cellpadding="0" cellspacing="0" border="0">
  208. <tr>
  209. <td class="md" nowrap valign="top">#define uip_ipaddr1 </td>
  210. <td class="md" valign="top">(&nbsp;</td>
  211. <td class="md" nowrap valign="top">addr&nbsp;</td>
  212. <td class="mdname1" valign="top" nowrap> </td>
  213. <td class="md" valign="top">&nbsp;)&nbsp;</td>
  214. <td class="md" nowrap></td>
  215. </tr>
  216. </table>
  217. </td>
  218. </tr>
  219. </table>
  220. <table cellspacing="5" cellpadding="0" border="0">
  221. <tr>
  222. <td>
  223. &nbsp;
  224. </td>
  225. <td>
  226. <p>
  227. Pick the first octet of an IP address.
  228. <p>
  229. Picks out the first octet of an IP address.<p>
  230. Example: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr;
  231. <a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> octet;
  232. <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr, 1,2,3,4);
  233. octet = <a class="code" href="a00148.html#g22fa0681cd463191d7a01fe85d86996f">uip_ipaddr1</a>(&amp;ipaddr);
  234. </pre></div><p>
  235. In the example above, the variable "octet" will contain the value 1. <dl compact><dt><b>Examples: </b></dt><dd>
  236. <a class="el" href="a00048.html#a28">dhcpc.c</a>.</dl>
  237. <p>
  238. Definition at line <a class="el" href="a00202.html#l00995">995</a> of file <a class="el" href="a00202.html">uip.h</a>. </td>
  239. </tr>
  240. </table>
  241. <a class="anchor" name="gffcd2fbe181e2aaefbf970551c302af5"></a><!-- doxytag: member="uip.h::uip_ipaddr2" ref="gffcd2fbe181e2aaefbf970551c302af5" args="(addr)" --><p>
  242. <table class="mdTable" cellpadding="2" cellspacing="0">
  243. <tr>
  244. <td class="mdRow">
  245. <table cellpadding="0" cellspacing="0" border="0">
  246. <tr>
  247. <td class="md" nowrap valign="top">#define uip_ipaddr2 </td>
  248. <td class="md" valign="top">(&nbsp;</td>
  249. <td class="md" nowrap valign="top">addr&nbsp;</td>
  250. <td class="mdname1" valign="top" nowrap> </td>
  251. <td class="md" valign="top">&nbsp;)&nbsp;</td>
  252. <td class="md" nowrap></td>
  253. </tr>
  254. </table>
  255. </td>
  256. </tr>
  257. </table>
  258. <table cellspacing="5" cellpadding="0" border="0">
  259. <tr>
  260. <td>
  261. &nbsp;
  262. </td>
  263. <td>
  264. <p>
  265. Pick the second octet of an IP address.
  266. <p>
  267. Picks out the second octet of an IP address.<p>
  268. Example: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr;
  269. <a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> octet;
  270. <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr, 1,2,3,4);
  271. octet = <a class="code" href="a00148.html#gffcd2fbe181e2aaefbf970551c302af5">uip_ipaddr2</a>(&amp;ipaddr);
  272. </pre></div><p>
  273. In the example above, the variable "octet" will contain the value 2. <dl compact><dt><b>Examples: </b></dt><dd>
  274. <a class="el" href="a00048.html#a29">dhcpc.c</a>.</dl>
  275. <p>
  276. Definition at line <a class="el" href="a00202.html#l01015">1015</a> of file <a class="el" href="a00202.html">uip.h</a>. </td>
  277. </tr>
  278. </table>
  279. <a class="anchor" name="ge23534479ead15af8ff08ace26a47fb5"></a><!-- doxytag: member="uip.h::uip_ipaddr3" ref="ge23534479ead15af8ff08ace26a47fb5" args="(addr)" --><p>
  280. <table class="mdTable" cellpadding="2" cellspacing="0">
  281. <tr>
  282. <td class="mdRow">
  283. <table cellpadding="0" cellspacing="0" border="0">
  284. <tr>
  285. <td class="md" nowrap valign="top">#define uip_ipaddr3 </td>
  286. <td class="md" valign="top">(&nbsp;</td>
  287. <td class="md" nowrap valign="top">addr&nbsp;</td>
  288. <td class="mdname1" valign="top" nowrap> </td>
  289. <td class="md" valign="top">&nbsp;)&nbsp;</td>
  290. <td class="md" nowrap></td>
  291. </tr>
  292. </table>
  293. </td>
  294. </tr>
  295. </table>
  296. <table cellspacing="5" cellpadding="0" border="0">
  297. <tr>
  298. <td>
  299. &nbsp;
  300. </td>
  301. <td>
  302. <p>
  303. Pick the third octet of an IP address.
  304. <p>
  305. Picks out the third octet of an IP address.<p>
  306. Example: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr;
  307. <a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> octet;
  308. <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr, 1,2,3,4);
  309. octet = <a class="code" href="a00148.html#ge23534479ead15af8ff08ace26a47fb5">uip_ipaddr3</a>(&amp;ipaddr);
  310. </pre></div><p>
  311. In the example above, the variable "octet" will contain the value 3. <dl compact><dt><b>Examples: </b></dt><dd>
  312. <a class="el" href="a00048.html#a30">dhcpc.c</a>.</dl>
  313. <p>
  314. Definition at line <a class="el" href="a00202.html#l01035">1035</a> of file <a class="el" href="a00202.html">uip.h</a>. </td>
  315. </tr>
  316. </table>
  317. <a class="anchor" name="g165b603ec150e26efec7be199c9c2901"></a><!-- doxytag: member="uip.h::uip_ipaddr4" ref="g165b603ec150e26efec7be199c9c2901" args="(addr)" --><p>
  318. <table class="mdTable" cellpadding="2" cellspacing="0">
  319. <tr>
  320. <td class="mdRow">
  321. <table cellpadding="0" cellspacing="0" border="0">
  322. <tr>
  323. <td class="md" nowrap valign="top">#define uip_ipaddr4 </td>
  324. <td class="md" valign="top">(&nbsp;</td>
  325. <td class="md" nowrap valign="top">addr&nbsp;</td>
  326. <td class="mdname1" valign="top" nowrap> </td>
  327. <td class="md" valign="top">&nbsp;)&nbsp;</td>
  328. <td class="md" nowrap></td>
  329. </tr>
  330. </table>
  331. </td>
  332. </tr>
  333. </table>
  334. <table cellspacing="5" cellpadding="0" border="0">
  335. <tr>
  336. <td>
  337. &nbsp;
  338. </td>
  339. <td>
  340. <p>
  341. Pick the fourth octet of an IP address.
  342. <p>
  343. Picks out the fourth octet of an IP address.<p>
  344. Example: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr;
  345. <a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> octet;
  346. <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr, 1,2,3,4);
  347. octet = <a class="code" href="a00148.html#g165b603ec150e26efec7be199c9c2901">uip_ipaddr4</a>(&amp;ipaddr);
  348. </pre></div><p>
  349. In the example above, the variable "octet" will contain the value 4. <dl compact><dt><b>Examples: </b></dt><dd>
  350. <a class="el" href="a00048.html#a31">dhcpc.c</a>.</dl>
  351. <p>
  352. Definition at line <a class="el" href="a00202.html#l01055">1055</a> of file <a class="el" href="a00202.html">uip.h</a>. </td>
  353. </tr>
  354. </table>
  355. <a class="anchor" name="g210e629f7252e4bc8458cbdf260b3318"></a><!-- doxytag: member="uip.h::uip_ipaddr_cmp" ref="g210e629f7252e4bc8458cbdf260b3318" args="(addr1, addr2)" --><p>
  356. <table class="mdTable" cellpadding="2" cellspacing="0">
  357. <tr>
  358. <td class="mdRow">
  359. <table cellpadding="0" cellspacing="0" border="0">
  360. <tr>
  361. <td class="md" nowrap valign="top">#define uip_ipaddr_cmp </td>
  362. <td class="md" valign="top">(&nbsp;</td>
  363. <td class="md" nowrap valign="top">addr1, <tr>
  364. <td class="md" nowrap align="right"></td>
  365. <td class="md"></td>
  366. <td class="md" nowrap>addr2&nbsp;</td>
  367. <td class="mdname1" valign="top" nowrap> </td>
  368. <td class="md" valign="top">&nbsp;)&nbsp;</td>
  369. <td class="md" nowrap></td>
  370. </tr>
  371. </table>
  372. </td>
  373. </tr>
  374. </table>
  375. <table cellspacing="5" cellpadding="0" border="0">
  376. <tr>
  377. <td>
  378. &nbsp;
  379. </td>
  380. <td>
  381. <p>
  382. Compare two IP addresses.
  383. <p>
  384. Compares two IP addresses.<p>
  385. Example: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr1, ipaddr2;
  386. <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr1, 192,16,1,2);
  387. <span class="keywordflow">if</span>(<a class="code" href="a00148.html#g210e629f7252e4bc8458cbdf260b3318">uip_ipaddr_cmp</a>(&amp;ipaddr2, &amp;ipaddr1)) {
  388. printf(<span class="stringliteral">"They are the same"</span>);
  389. }
  390. </pre></div><p>
  391. <dl compact><dt><b>Parameters:</b></dt><dd>
  392. <table border="0" cellspacing="2" cellpadding="0">
  393. <tr><td valign="top"></td><td valign="top"><em>addr1</em>&nbsp;</td><td>The first IP address. </td></tr>
  394. <tr><td valign="top"></td><td valign="top"><em>addr2</em>&nbsp;</td><td>The second IP address. </td></tr>
  395. </table>
  396. </dl>
  397. <p>
  398. Definition at line <a class="el" href="a00202.html#l00911">911</a> of file <a class="el" href="a00202.html">uip.h</a>.
  399. <p>
  400. Referenced by <a class="el" href="a00204.html#l00278">uip_arp_arpin()</a>, <a class="el" href="a00204.html#l00354">uip_arp_out()</a>, and <a class="el" href="a00201.html#l00682">uip_process()</a>. </td>
  401. </tr>
  402. </table>
  403. <a class="anchor" name="g769512993b7b27271909d6daa4748b60"></a><!-- doxytag: member="uip.h::uip_ipaddr_copy" ref="g769512993b7b27271909d6daa4748b60" args="(dest, src)" --><p>
  404. <table class="mdTable" cellpadding="2" cellspacing="0">
  405. <tr>
  406. <td class="mdRow">
  407. <table cellpadding="0" cellspacing="0" border="0">
  408. <tr>
  409. <td class="md" nowrap valign="top">#define uip_ipaddr_copy </td>
  410. <td class="md" valign="top">(&nbsp;</td>
  411. <td class="md" nowrap valign="top">dest, <tr>
  412. <td class="md" nowrap align="right"></td>
  413. <td class="md"></td>
  414. <td class="md" nowrap>src&nbsp;</td>
  415. <td class="mdname1" valign="top" nowrap> </td>
  416. <td class="md" valign="top">&nbsp;)&nbsp;</td>
  417. <td class="md" nowrap></td>
  418. </tr>
  419. </table>
  420. </td>
  421. </tr>
  422. </table>
  423. <table cellspacing="5" cellpadding="0" border="0">
  424. <tr>
  425. <td>
  426. &nbsp;
  427. </td>
  428. <td>
  429. <p>
  430. Copy an IP address to another IP address.
  431. <p>
  432. Copies an IP address from one place to another.<p>
  433. Example: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr1, ipaddr2;
  434. <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr1, 192,16,1,2);
  435. <a class="code" href="a00148.html#g769512993b7b27271909d6daa4748b60">uip_ipaddr_copy</a>(&amp;ipaddr2, &amp;ipaddr1);
  436. </pre></div><p>
  437. <dl compact><dt><b>Parameters:</b></dt><dd>
  438. <table border="0" cellspacing="2" cellpadding="0">
  439. <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>The destination for the copy. </td></tr>
  440. <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>The source from where to copy. </td></tr>
  441. </table>
  442. </dl>
  443. <dl compact><dt><b>Examples: </b></dt><dd>
  444. <a class="el" href="a00038.html#a187">smtp.c</a>.</dl>
  445. <p>
  446. Definition at line <a class="el" href="a00202.html#l00882">882</a> of file <a class="el" href="a00202.html">uip.h</a>.
  447. <p>
  448. Referenced by <a class="el" href="a00174.html#l00216">smtp_configure()</a>, <a class="el" href="a00204.html#l00354">uip_arp_out()</a>, and <a class="el" href="a00201.html#l00682">uip_process()</a>. </td>
  449. </tr>
  450. </table>
  451. <a class="anchor" name="g969d7fff37a979737da045e0d538a9bd"></a><!-- doxytag: member="uip.h::uip_ipaddr_mask" ref="g969d7fff37a979737da045e0d538a9bd" args="(dest, src, mask)" --><p>
  452. <table class="mdTable" cellpadding="2" cellspacing="0">
  453. <tr>
  454. <td class="mdRow">
  455. <table cellpadding="0" cellspacing="0" border="0">
  456. <tr>
  457. <td class="md" nowrap valign="top">#define uip_ipaddr_mask </td>
  458. <td class="md" valign="top">(&nbsp;</td>
  459. <td class="md" nowrap valign="top">dest, <tr>
  460. <td class="md" nowrap align="right"></td>
  461. <td class="md"></td>
  462. <td class="md" nowrap>src, <tr>
  463. <td class="md" nowrap align="right"></td>
  464. <td class="md"></td>
  465. <td class="md" nowrap>mask&nbsp;</td>
  466. <td class="mdname1" valign="top" nowrap> </td>
  467. <td class="md" valign="top">&nbsp;)&nbsp;</td>
  468. <td class="md" nowrap></td>
  469. </tr>
  470. </table>
  471. </td>
  472. </tr>
  473. </table>
  474. <table cellspacing="5" cellpadding="0" border="0">
  475. <tr>
  476. <td>
  477. &nbsp;
  478. </td>
  479. <td>
  480. <p>
  481. Mask out the network part of an IP address.
  482. <p>
  483. Masks out the network part of an IP address, given the address and the netmask.<p>
  484. Example: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr1, ipaddr2, netmask;
  485. <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr1, 192,16,1,2);
  486. <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;netmask, 255,255,255,0);
  487. <a class="code" href="a00148.html#g969d7fff37a979737da045e0d538a9bd">uip_ipaddr_mask</a>(&amp;ipaddr2, &amp;ipaddr1, &amp;netmask);
  488. </pre></div><p>
  489. In the example above, the variable "ipaddr2" will contain the IP address 192.168.1.0.<p>
  490. <dl compact><dt><b>Parameters:</b></dt><dd>
  491. <table border="0" cellspacing="2" cellpadding="0">
  492. <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>Where the result is to be placed. </td></tr>
  493. <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>The IP address. </td></tr>
  494. <tr><td valign="top"></td><td valign="top"><em>mask</em>&nbsp;</td><td>The netmask. </td></tr>
  495. </table>
  496. </dl>
  497. <p>
  498. Definition at line <a class="el" href="a00202.html#l00972">972</a> of file <a class="el" href="a00202.html">uip.h</a>. </td>
  499. </tr>
  500. </table>
  501. <a class="anchor" name="g6b16e0bac41821c1fbe0c267071642f0"></a><!-- doxytag: member="uip.h::uip_ipaddr_maskcmp" ref="g6b16e0bac41821c1fbe0c267071642f0" args="(addr1, addr2, mask)" --><p>
  502. <table class="mdTable" cellpadding="2" cellspacing="0">
  503. <tr>
  504. <td class="mdRow">
  505. <table cellpadding="0" cellspacing="0" border="0">
  506. <tr>
  507. <td class="md" nowrap valign="top">#define uip_ipaddr_maskcmp </td>
  508. <td class="md" valign="top">(&nbsp;</td>
  509. <td class="md" nowrap valign="top">addr1, <tr>
  510. <td class="md" nowrap align="right"></td>
  511. <td class="md"></td>
  512. <td class="md" nowrap>addr2, <tr>
  513. <td class="md" nowrap align="right"></td>
  514. <td class="md"></td>
  515. <td class="md" nowrap>mask&nbsp;</td>
  516. <td class="mdname1" valign="top" nowrap> </td>
  517. <td class="md" valign="top">&nbsp;)&nbsp;</td>
  518. <td class="md" nowrap></td>
  519. </tr>
  520. </table>
  521. </td>
  522. </tr>
  523. </table>
  524. <table cellspacing="5" cellpadding="0" border="0">
  525. <tr>
  526. <td>
  527. &nbsp;
  528. </td>
  529. <td>
  530. <p>
  531. Compare two IP addresses with netmasks.
  532. <p>
  533. Compares two IP addresses with netmasks. The masks are used to mask out the bits that are to be compared.<p>
  534. Example: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr1, ipaddr2, mask;
  535. <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;mask, 255,255,255,0);
  536. <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr1, 192,16,1,2);
  537. <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr2, 192,16,1,3);
  538. <span class="keywordflow">if</span>(<a class="code" href="a00148.html#g6b16e0bac41821c1fbe0c267071642f0">uip_ipaddr_maskcmp</a>(&amp;ipaddr1, &amp;ipaddr2, &amp;mask)) {
  539. printf(<span class="stringliteral">"They are the same"</span>);
  540. }
  541. </pre></div><p>
  542. <dl compact><dt><b>Parameters:</b></dt><dd>
  543. <table border="0" cellspacing="2" cellpadding="0">
  544. <tr><td valign="top"></td><td valign="top"><em>addr1</em>&nbsp;</td><td>The first IP address. </td></tr>
  545. <tr><td valign="top"></td><td valign="top"><em>addr2</em>&nbsp;</td><td>The second IP address. </td></tr>
  546. <tr><td valign="top"></td><td valign="top"><em>mask</em>&nbsp;</td><td>The netmask. </td></tr>
  547. </table>
  548. </dl>
  549. <p>
  550. Definition at line <a class="el" href="a00202.html#l00941">941</a> of file <a class="el" href="a00202.html">uip.h</a>.
  551. <p>
  552. Referenced by <a class="el" href="a00204.html#l00354">uip_arp_out()</a>. </td>
  553. </tr>
  554. </table>
  555. <hr><h2>Function Documentation</h2>
  556. <a class="anchor" name="ga22b04cac8cf283ca12f028578bebc06"></a><!-- doxytag: member="uip.h::htons" ref="ga22b04cac8cf283ca12f028578bebc06" args="(u16_t val)" --><p>
  557. <table class="mdTable" cellpadding="2" cellspacing="0">
  558. <tr>
  559. <td class="mdRow">
  560. <table cellpadding="0" cellspacing="0" border="0">
  561. <tr>
  562. <td class="md" nowrap valign="top"><a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> htons </td>
  563. <td class="md" valign="top">(&nbsp;</td>
  564. <td class="md" nowrap valign="top"><a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td>
  565. <td class="mdname1" valign="top" nowrap> <em>val</em> </td>
  566. <td class="md" valign="top">&nbsp;)&nbsp;</td>
  567. <td class="md" nowrap></td>
  568. </tr>
  569. </table>
  570. </td>
  571. </tr>
  572. </table>
  573. <table cellspacing="5" cellpadding="0" border="0">
  574. <tr>
  575. <td>
  576. &nbsp;
  577. </td>
  578. <td>
  579. <p>
  580. Convert 16-bit quantity from host byte order to network byte order.
  581. <p>
  582. This function is primarily used for converting variables from host byte order to network byte order. For converting constants to network byte order, use the <a class="el" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS()</a> macro instead. <dl compact><dt><b>Examples: </b></dt><dd>
  583. <a class="el" href="a00042.html#a70">example-mainloop-with-arp.c</a>, <a class="el" href="a00046.html#a137">resolv.c</a>, and <a class="el" href="a00040.html#a274">webclient.c</a>.</dl>
  584. <p>
  585. Definition at line <a class="el" href="a00201.html#l01882">1882</a> of file <a class="el" href="a00201.html">uip.c</a>.
  586. <p>
  587. References <a class="el" href="a00202.html#l01070">HTONS</a>.
  588. <p>
  589. Referenced by <a class="el" href="a00201.html#l00311">uip_chksum()</a>, <a class="el" href="a00201.html#l00407">uip_connect()</a>, <a class="el" href="a00201.html#l00318">uip_ipchksum()</a>, <a class="el" href="a00201.html#l00473">uip_udp_new()</a>, and <a class="el" href="a00180.html#l00140">webclient_get()</a>. </td>
  590. </tr>
  591. </table>
  592. <hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
  593. <a href="http://www.doxygen.org/index.html">
  594. <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
  595. </body>
  596. </html>