File: ether.h.html

package info (click to toggle)
open-plc-utils 0.0.6%2Bgit20230504.1ba7d5a0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 17,212 kB
  • sloc: ansic: 60,875; xml: 16,179; sh: 1,216; makefile: 698
file content (153 lines) | stat: -rw-r--r-- 4,584 bytes parent folder | download | duplicates (3)
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 &lt;stdint.h&gt;
#if defined (__linux__)
#       include &lt;net/if.h&gt;
#       include &lt;net/ethernet.h&gt;
#       include &lt;arpa/inet.h&gt;
#elif defined (__APPLE__)
#       include &lt;sys/types.h&gt;
#       include &lt;sys/socket.h&gt;
#       include &lt;net/if.h&gt;
#       include &lt;net/ethernet.h&gt;
#       include &lt;arpa/inet.h&gt;
#       include &lt;net/bpf.h&gt;
#elif defined (__OpenBSD__)
#       include &lt;sys/ioctl.h&gt;
#       include &lt;sys/types.h&gt;
#       include &lt;sys/socket.h&gt;
#       include &lt;net/if.h&gt;
#       include &lt;netinet/in.h&gt;
#       include &lt;netinet/if_ether.h&gt;
#       include &lt;net/bpf.h&gt;
#       include &lt;fcntl.h&gt;
#elif defined (WIN32)
#       if defined (WINPCAP)
#               include &lt;pcap.h&gt;
#               include &lt;Packet32.h&gt;
#       endif
#       include &lt;net/ethernet.h&gt;
#       include &lt;net/if.h&gt;
#elif defined (__CYGWIN__)
#	error &quot;Cygwin in unsupported!&quot;
#else
#	error &quot;Unknown environment!&quot;
#endif

/*====================================================================*
 *   custom header files;
 *--------------------------------------------------------------------*/

#include &quot;../tools/types.h&quot;

/*====================================================================*
 *   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>