Annotation of embedaddon/libnet/doc/html/libnet-macros_8h.html, revision 1.1
1.1 ! misho 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>libnet: libnet-macros.h File Reference</title>
! 4: <link href="doxygen.css" rel="stylesheet" type="text/css">
! 5: </head><body>
! 6: <!-- Generated by Doxygen 1.3.4 -->
! 7: <div class="qindex"><a class="qindex" href="index.html">Main Page</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></div>
! 8: <h1>libnet-macros.h File Reference</h1>libnet macros and symbloc constants
! 9: <a href="#_details">More...</a>
! 10: <p>
! 11:
! 12: <p>
! 13: <a href="libnet-macros_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
! 14: <tr><td></td></tr>
! 15: <tr><td colspan=2><br><h2>Defines</h2></td></tr>
! 16: <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="libnet-macros_8h.html#a0">LIBNET_DONT_RESOLVE</a> 0</td></tr>
! 17:
! 18: <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="libnet-macros_8h.html#a1">LIBNET_RESOLVE</a> 1</td></tr>
! 19:
! 20: <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="libnet-macros_8h.html#a2">LIBNET_ON</a> 0</td></tr>
! 21:
! 22: <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="libnet-macros_8h.html#a3">LIBNET_OFF</a> 1</td></tr>
! 23:
! 24: <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="libnet-macros_8h.html#a4">IN6ADDR_ERROR_INIT</a></td></tr>
! 25:
! 26: <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="libnet-macros_8h.html#a5">LIBNET_PR2</a> 0</td></tr>
! 27:
! 28: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a6" doxytag="libnet-macros.h::LIBNET_PR8" ></a>
! 29: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_PR8</b> 1</td></tr>
! 30:
! 31: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a7" doxytag="libnet-macros.h::LIBNET_PR16" ></a>
! 32: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_PR16</b> 2</td></tr>
! 33:
! 34: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a8" doxytag="libnet-macros.h::LIBNET_PRu16" ></a>
! 35: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_PRu16</b> 3</td></tr>
! 36:
! 37: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a9" doxytag="libnet-macros.h::LIBNET_PR32" ></a>
! 38: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_PR32</b> 4</td></tr>
! 39:
! 40: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a10" doxytag="libnet-macros.h::LIBNET_PRu32" ></a>
! 41: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_PRu32</b> 5</td></tr>
! 42:
! 43: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a11" doxytag="libnet-macros.h::LIBNET_PRAND_MAX" ></a>
! 44: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_PRAND_MAX</b> 0xffffffff</td></tr>
! 45:
! 46: <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="libnet-macros_8h.html#a12">LIBNET_MAX_PACKET</a> 0xffff</td></tr>
! 47:
! 48: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a13" doxytag="libnet-macros.h::IP_MAXPACKET" ></a>
! 49: #define </td><td class="memItemRight" valign=bottom><b>IP_MAXPACKET</b> 0xffff</td></tr>
! 50:
! 51: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a14" doxytag="libnet-macros.h::ETHER_ADDR_LEN" ></a>
! 52: #define </td><td class="memItemRight" valign=bottom><b>ETHER_ADDR_LEN</b> 0x6</td></tr>
! 53:
! 54: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a15" doxytag="libnet-macros.h::FDDI_ADDR_LEN" ></a>
! 55: #define </td><td class="memItemRight" valign=bottom><b>FDDI_ADDR_LEN</b> 0x6</td></tr>
! 56:
! 57: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a16" doxytag="libnet-macros.h::TOKEN_RING_ADDR_LEN" ></a>
! 58: #define </td><td class="memItemRight" valign=bottom><b>TOKEN_RING_ADDR_LEN</b> 0x6</td></tr>
! 59:
! 60: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a17" doxytag="libnet-macros.h::LIBNET_ORG_CODE_SIZE" ></a>
! 61: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_ORG_CODE_SIZE</b> 0x3</td></tr>
! 62:
! 63: <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="libnet-macros_8h.html#a18">LIBNET_ERRBUF_SIZE</a> 0x100</td></tr>
! 64:
! 65: <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="libnet-macros_8h.html#a19">LIBNET_MAXOPTION_SIZE</a> 0x28</td></tr>
! 66:
! 67: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a20" doxytag="libnet-macros.h::FIX" ></a>
! 68: #define </td><td class="memItemRight" valign=bottom><b>FIX</b>(n) (n)</td></tr>
! 69:
! 70: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a21" doxytag="libnet-macros.h::UNFIX" ></a>
! 71: #define </td><td class="memItemRight" valign=bottom><b>UNFIX</b>(n) (n)</td></tr>
! 72:
! 73: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a22" doxytag="libnet-macros.h::LIBNET_CKSUM_CARRY" ></a>
! 74: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_CKSUM_CARRY</b>(x) (x = (x >> 16) + (x & 0xffff), (~(x + (x >> 16)) & 0xffff))</td></tr>
! 75:
! 76: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a23" doxytag="libnet-macros.h::LIBNET_OSPF_AUTHCPY" ></a>
! 77: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_OSPF_AUTHCPY</b>(x, y) memcpy((u_int8_t *)x, (u_int8_t *)y, sizeof(y))</td></tr>
! 78:
! 79: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a24" doxytag="libnet-macros.h::LIBNET_OSPF_CKSUMBUF" ></a>
! 80: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_OSPF_CKSUMBUF</b>(x, y) memcpy((u_int8_t *)x, (u_int8_t *)y, sizeof(y))</td></tr>
! 81:
! 82: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a25" doxytag="libnet-macros.h::LIBNET_NTP_DO_LI_VN_MODE" ></a>
! 83: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_NTP_DO_LI_VN_MODE</b>(li, vn, md) ((u_int8_t)((((li) << 6) & 0xc0) | (((vn) << 3) & 0x38) | ((md) & 0x7)))</td></tr>
! 84:
! 85: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a26" doxytag="libnet-macros.h::LIBNET_ISLOOPBACK" ></a>
! 86: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_ISLOOPBACK</b>(p) (strcmp((p)->ifr_name, "lo0") == 0)</td></tr>
! 87:
! 88: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a27" doxytag="libnet-macros.h::LIBNET_ISADVMODE" ></a>
! 89: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_ISADVMODE</b>(x) (x & 0x08)</td></tr>
! 90:
! 91: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a28" doxytag="libnet-macros.h::LIBNET_LABEL_SIZE" ></a>
! 92: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_LABEL_SIZE</b> 64</td></tr>
! 93:
! 94: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a29" doxytag="libnet-macros.h::LIBNET_LABEL_DEFAULT" ></a>
! 95: #define </td><td class="memItemRight" valign=bottom><b>LIBNET_LABEL_DEFAULT</b> "cardshark"</td></tr>
! 96:
! 97: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a30" doxytag="libnet-macros.h::CQ_LOCK_UNLOCKED" ></a>
! 98: #define </td><td class="memItemRight" valign=bottom><b>CQ_LOCK_UNLOCKED</b> (u_int)0x00000000</td></tr>
! 99:
! 100: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a31" doxytag="libnet-macros.h::CQ_LOCK_READ" ></a>
! 101: #define </td><td class="memItemRight" valign=bottom><b>CQ_LOCK_READ</b> (u_int)0x00000001</td></tr>
! 102:
! 103: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a32" doxytag="libnet-macros.h::CQ_LOCK_WRITE" ></a>
! 104: #define </td><td class="memItemRight" valign=bottom><b>CQ_LOCK_WRITE</b> (u_int)0x00000002</td></tr>
! 105:
! 106: <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="libnet-macros_8h.html#a33">for_each_context_in_cq</a>(l) for (l = libnet_cq_head(); libnet_cq_last(); l = libnet_cq_next())</td></tr>
! 107:
! 108: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a34" doxytag="libnet-macros.h::cq_is_wlocked" ></a>
! 109: #define </td><td class="memItemRight" valign=bottom><b>cq_is_wlocked</b>() (l_cqd.cq_lock & CQ_LOCK_WRITE)</td></tr>
! 110:
! 111: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a35" doxytag="libnet-macros.h::cq_is_rlocked" ></a>
! 112: #define </td><td class="memItemRight" valign=bottom><b>cq_is_rlocked</b>() (l_cqd.cq_lock & CQ_LOCK_READ)</td></tr>
! 113:
! 114: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a36" doxytag="libnet-macros.h::cq_is_locked" ></a>
! 115: #define </td><td class="memItemRight" valign=bottom><b>cq_is_locked</b>() (l_cqd.cq_lock & (CQ_LOCK_READ | CQ_LOCK_WRITE))</td></tr>
! 116:
! 117: <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a37" doxytag="libnet-macros.h::check_cq_lock" ></a>
! 118: #define </td><td class="memItemRight" valign=bottom><b>check_cq_lock</b>(x) (l_cqd.cq_lock & x)</td></tr>
! 119:
! 120: </table>
! 121: <hr><a name="_details"></a><h2>Detailed Description</h2>
! 122: libnet macros and symbloc constants
! 123: <p>
! 124: <hr><h2>Define Documentation</h2>
! 125: <a class="anchor" name="a33" doxytag="libnet-macros.h::for_each_context_in_cq" ></a><p>
! 126: <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
! 127: <tr>
! 128: <td class="mdRow">
! 129: <table cellpadding="0" cellspacing="0" border="0">
! 130: <tr>
! 131: <td class="md" nowrap valign="top"> #define for_each_context_in_cq</td>
! 132: <td class="md" valign="top">( </td>
! 133: <td class="md" nowrap valign="top">l </td>
! 134: <td class="mdname1" valign="top" nowrap> </td>
! 135: <td class="md" valign="top"> ) </td>
! 136: <td class="md" nowrap> for (l = libnet_cq_head(); libnet_cq_last(); l = libnet_cq_next())
! 137: </table>
! 138: </td>
! 139: </tr>
! 140: </table>
! 141: <table cellspacing=5 cellpadding=0 border=0>
! 142: <tr>
! 143: <td>
! 144:
! 145: </td>
! 146: <td>
! 147:
! 148: <p>
! 149: Provides an interface to iterate through the context queue of libnet contexts. Before calling this macro, be sure to set the queue using <a class="el" href="libnet-functions_8h.html#a108">libnet_cq_head()</a>. </td>
! 150: </tr>
! 151: </table>
! 152: <a class="anchor" name="a4" doxytag="libnet-macros.h::IN6ADDR_ERROR_INIT" ></a><p>
! 153: <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
! 154: <tr>
! 155: <td class="mdRow">
! 156: <table cellpadding="0" cellspacing="0" border="0">
! 157: <tr>
! 158: <td class="md" nowrap valign="top"> #define IN6ADDR_ERROR_INIT
! 159: </table>
! 160: </td>
! 161: </tr>
! 162: </table>
! 163: <table cellspacing=5 cellpadding=0 border=0>
! 164: <tr>
! 165: <td>
! 166:
! 167: </td>
! 168: <td>
! 169:
! 170: <p>
! 171: <b>Value:</b><div class="fragment"><pre>{ { { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
! 172: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
! 173: 0xff, 0xff } } }
! 174: </pre></div>IPv6 error code </td>
! 175: </tr>
! 176: </table>
! 177: <a class="anchor" name="a0" doxytag="libnet-macros.h::LIBNET_DONT_RESOLVE" ></a><p>
! 178: <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
! 179: <tr>
! 180: <td class="mdRow">
! 181: <table cellpadding="0" cellspacing="0" border="0">
! 182: <tr>
! 183: <td class="md" nowrap valign="top"> #define LIBNET_DONT_RESOLVE 0
! 184: </table>
! 185: </td>
! 186: </tr>
! 187: </table>
! 188: <table cellspacing=5 cellpadding=0 border=0>
! 189: <tr>
! 190: <td>
! 191:
! 192: </td>
! 193: <td>
! 194:
! 195: <p>
! 196: Used for libnet's name resolution functions, specifies that no DNS lookups should be performed and the IP address should be kept in numeric form. </td>
! 197: </tr>
! 198: </table>
! 199: <a class="anchor" name="a18" doxytag="libnet-macros.h::LIBNET_ERRBUF_SIZE" ></a><p>
! 200: <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
! 201: <tr>
! 202: <td class="mdRow">
! 203: <table cellpadding="0" cellspacing="0" border="0">
! 204: <tr>
! 205: <td class="md" nowrap valign="top"> #define LIBNET_ERRBUF_SIZE 0x100
! 206: </table>
! 207: </td>
! 208: </tr>
! 209: </table>
! 210: <table cellspacing=5 cellpadding=0 border=0>
! 211: <tr>
! 212: <td>
! 213:
! 214: </td>
! 215: <td>
! 216:
! 217: <p>
! 218: The libnet error buffer is 256 bytes long. </td>
! 219: </tr>
! 220: </table>
! 221: <a class="anchor" name="a12" doxytag="libnet-macros.h::LIBNET_MAX_PACKET" ></a><p>
! 222: <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
! 223: <tr>
! 224: <td class="mdRow">
! 225: <table cellpadding="0" cellspacing="0" border="0">
! 226: <tr>
! 227: <td class="md" nowrap valign="top"> #define LIBNET_MAX_PACKET 0xffff
! 228: </table>
! 229: </td>
! 230: </tr>
! 231: </table>
! 232: <table cellspacing=5 cellpadding=0 border=0>
! 233: <tr>
! 234: <td>
! 235:
! 236: </td>
! 237: <td>
! 238:
! 239: <p>
! 240: The biggest an IP packet can be -- 65,535 bytes. </td>
! 241: </tr>
! 242: </table>
! 243: <a class="anchor" name="a19" doxytag="libnet-macros.h::LIBNET_MAXOPTION_SIZE" ></a><p>
! 244: <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
! 245: <tr>
! 246: <td class="mdRow">
! 247: <table cellpadding="0" cellspacing="0" border="0">
! 248: <tr>
! 249: <td class="md" nowrap valign="top"> #define LIBNET_MAXOPTION_SIZE 0x28
! 250: </table>
! 251: </td>
! 252: </tr>
! 253: </table>
! 254: <table cellspacing=5 cellpadding=0 border=0>
! 255: <tr>
! 256: <td>
! 257:
! 258: </td>
! 259: <td>
! 260:
! 261: <p>
! 262: IP and TCP options can be up to 40 bytes long. </td>
! 263: </tr>
! 264: </table>
! 265: <a class="anchor" name="a3" doxytag="libnet-macros.h::LIBNET_OFF" ></a><p>
! 266: <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
! 267: <tr>
! 268: <td class="mdRow">
! 269: <table cellpadding="0" cellspacing="0" border="0">
! 270: <tr>
! 271: <td class="md" nowrap valign="top"> #define LIBNET_OFF 1
! 272: </table>
! 273: </td>
! 274: </tr>
! 275: </table>
! 276: <table cellspacing=5 cellpadding=0 border=0>
! 277: <tr>
! 278: <td>
! 279:
! 280: </td>
! 281: <td>
! 282:
! 283: <p>
! 284: Used several places, to specify "on" or "one" </td>
! 285: </tr>
! 286: </table>
! 287: <a class="anchor" name="a2" doxytag="libnet-macros.h::LIBNET_ON" ></a><p>
! 288: <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
! 289: <tr>
! 290: <td class="mdRow">
! 291: <table cellpadding="0" cellspacing="0" border="0">
! 292: <tr>
! 293: <td class="md" nowrap valign="top"> #define LIBNET_ON 0
! 294: </table>
! 295: </td>
! 296: </tr>
! 297: </table>
! 298: <table cellspacing=5 cellpadding=0 border=0>
! 299: <tr>
! 300: <td>
! 301:
! 302: </td>
! 303: <td>
! 304:
! 305: <p>
! 306: Used several places, to specify "on" or "one" </td>
! 307: </tr>
! 308: </table>
! 309: <a class="anchor" name="a5" doxytag="libnet-macros.h::LIBNET_PR2" ></a><p>
! 310: <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
! 311: <tr>
! 312: <td class="mdRow">
! 313: <table cellpadding="0" cellspacing="0" border="0">
! 314: <tr>
! 315: <td class="md" nowrap valign="top"> #define LIBNET_PR2 0
! 316: </table>
! 317: </td>
! 318: </tr>
! 319: </table>
! 320: <table cellspacing=5 cellpadding=0 border=0>
! 321: <tr>
! 322: <td>
! 323:
! 324: </td>
! 325: <td>
! 326:
! 327: <p>
! 328: Used for <a class="el" href="libnet-functions_8h.html#a12">libnet_get_prand()</a> to specify function disposition </td>
! 329: </tr>
! 330: </table>
! 331: <a class="anchor" name="a1" doxytag="libnet-macros.h::LIBNET_RESOLVE" ></a><p>
! 332: <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
! 333: <tr>
! 334: <td class="mdRow">
! 335: <table cellpadding="0" cellspacing="0" border="0">
! 336: <tr>
! 337: <td class="md" nowrap valign="top"> #define LIBNET_RESOLVE 1
! 338: </table>
! 339: </td>
! 340: </tr>
! 341: </table>
! 342: <table cellspacing=5 cellpadding=0 border=0>
! 343: <tr>
! 344: <td>
! 345:
! 346: </td>
! 347: <td>
! 348:
! 349: <p>
! 350: Used for libnet's name resolution functions, specifies that a DNS lookup can be performed if needed to resolve the IP address to a canonical form. </td>
! 351: </tr>
! 352: </table>
! 353: <hr size="1"><address style="align: right;"><small>Generated on Wed Mar 10 13:23:38 2004 for libnet by
! 354: <a href="http://www.doxygen.org/index.html">
! 355: <img src="doxygen.png" alt="doxygen" align="middle" border=0 >
! 356: </a>1.3.4 </small></address>
! 357: </body>
! 358: </html>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>