1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
<?xml version='1.0' encoding='iso-8859-1'?>
<!doctype html public '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<html xmlns='http://www.w3c.org/1999/xhtml' lang='en-us'>
<head>
<title>
ether.h
</title>
<meta http-equiv='content-type' content='text/html;iso-8859-1'/>
<meta name='generator' content='motley-tools 1.9.4 13:40:33 Feb 18 2015'/>
<meta name='author' content='cmaier@cmassoc.net'/>
<meta name='robots' content='noindex,nofollow'/>
<link href='toolkit.css' rel='stylesheet' type='text/css'/>
</head>
<body>
<div class='headerlink'>
[<a href='error.h.html' title=' error.h '>PREV</a>]
[<a href='toolkit.html' title=' Index '>HOME</a>]
[<a href='ethernet.h.html' title=' ethernet.h '>NEXT</a>]
</div>
<pre>
/*====================================================================*
*
* ether.h - Ethernet definitions and declarations;
*
* include or exclude various ethernet related definitions based
* platform and environment;
*
*. Qualcomm Atheros HomePlug AV Powerline Toolkit
*: Copyright (c) 2009-2013 by Qualcomm Atheros Inc. ALL RIGHTS RESERVED;
*; For demonstration and evaluation only; Not for production use.
*
*--------------------------------------------------------------------*/
#ifndef ETHER_HEADER
#define ETHER_HEADER
/*====================================================================*
* system header files;
*--------------------------------------------------------------------*/
#include <stdint.h>
#if defined (__linux__)
# include <net/if.h>
# include <net/ethernet.h>
# include <arpa/inet.h>
#elif defined (__APPLE__)
# include <sys/types.h>
# include <sys/socket.h>
# include <net/if.h>
# include <net/ethernet.h>
# include <arpa/inet.h>
# include <net/bpf.h>
#elif defined (__OpenBSD__)
# include <sys/ioctl.h>
# include <sys/types.h>
# include <sys/socket.h>
# include <net/if.h>
# include <netinet/in.h>
# include <netinet/if_ether.h>
# include <net/bpf.h>
# include <fcntl.h>
#elif defined (WIN32)
# if defined (WINPCAP)
# include <pcap.h>
# include <Packet32.h>
# endif
# include <net/ethernet.h>
# include <net/if.h>
#elif defined (__CYGWIN__)
# error "Cygwin in unsupported!"
#else
# error "Unknown environment!"
#endif
/*====================================================================*
* custom header files;
*--------------------------------------------------------------------*/
#include "../tools/types.h"
/*====================================================================*
* variables;
*--------------------------------------------------------------------*/
typedef struct nic
{
unsigned ifindex;
byte ethernet [ETHER_ADDR_LEN];
byte internet [4];
char ifname [IF_NAMESIZE];
char ifdesc [255];
}
NIC;
/*====================================================================*
* ethertypes;
*--------------------------------------------------------------------*/
#define ETH_P_HP10 0x887B
#define ETH_P_HCP 0x88B7
#define ETH_P_LLDP 0x88CC
#define ETH_P_HPAV 0x88E1
#define ETH_P_1905 0x893A
/*====================================================================*
* basic 802.2 Ethernet frame structure;
*--------------------------------------------------------------------*/
#ifndef __GNUC__
#pragma pack (push, 1)
#endif
typedef struct ethernet_frame
{
byte frame_dhost [ETHER_ADDR_LEN];
byte frame_shost [ETHER_ADDR_LEN];
uint16_t frame_type;
byte frame_data [ETHERMTU];
}
FRAME;
#ifndef __GNUC__
#pragma pack (pop)
#endif
/*====================================================================*
* functions;
*--------------------------------------------------------------------*/
char * getifname (signed number);
signed gethwaddr (void * memory, char const * device);
signed anynic (char buffer [], unsigned length);
unsigned hostnics (struct nic list [], unsigned size);
/*====================================================================*
*
*--------------------------------------------------------------------*/
#endif
</pre>
<div class='footerlink'>
[<a href='error.h.html' title=' error.h '>PREV</a>]
[<a href='toolkit.html' title=' Index '>HOME</a>]
[<a href='ethernet.h.html' title=' ethernet.h '>NEXT</a>]
</div>
</body>
</html>
|