Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
net
ethernet
chelsio
cxgb
gmac.h
Go to the documentation of this file.
1
/*****************************************************************************
2
* *
3
* File: gmac.h *
4
* $Revision: 1.6 $ *
5
* $Date: 2005/06/21 18:29:47 $ *
6
* Description: *
7
* Generic MAC functionality. *
8
* part of the Chelsio 10Gb Ethernet Driver. *
9
* *
10
* This program is free software; you can redistribute it and/or modify *
11
* it under the terms of the GNU General Public License, version 2, as *
12
* published by the Free Software Foundation. *
13
* *
14
* You should have received a copy of the GNU General Public License along *
15
* with this program; if not, write to the Free Software Foundation, Inc., *
16
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
17
* *
18
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED *
19
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF *
20
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. *
21
* *
22
* http://www.chelsio.com *
23
* *
24
* Copyright (c) 2003 - 2005 Chelsio Communications, Inc. *
25
* All rights reserved. *
26
* *
27
* Maintainers:
[email protected]
*
28
* *
29
* Authors: Dimitrios Michailidis <
[email protected]
> *
30
* Tina Yang <
[email protected]
> *
31
* Felix Marti <
[email protected]
> *
32
* Scott Bardone <
[email protected]
> *
33
* Kurt Ottaway <
[email protected]
> *
34
* Frank DiMambro <
[email protected]
> *
35
* *
36
* History: *
37
* *
38
****************************************************************************/
39
40
#ifndef _CXGB_GMAC_H_
41
#define _CXGB_GMAC_H_
42
43
#include "
common.h
"
44
45
enum
{
46
MAC_STATS_UPDATE_FAST
,
47
MAC_STATS_UPDATE_FULL
48
};
49
50
enum
{
51
MAC_DIRECTION_RX
= 1,
52
MAC_DIRECTION_TX
= 2
53
};
54
55
struct
cmac_statistics
{
56
/* Transmit */
57
u64
TxOctetsOK
;
58
u64
TxOctetsBad
;
59
u64
TxUnicastFramesOK
;
60
u64
TxMulticastFramesOK
;
61
u64
TxBroadcastFramesOK
;
62
u64
TxPauseFrames
;
63
u64
TxFramesWithDeferredXmissions
;
64
u64
TxLateCollisions
;
65
u64
TxTotalCollisions
;
66
u64
TxFramesAbortedDueToXSCollisions
;
67
u64
TxUnderrun
;
68
u64
TxLengthErrors
;
69
u64
TxInternalMACXmitError
;
70
u64
TxFramesWithExcessiveDeferral
;
71
u64
TxFCSErrors
;
72
u64
TxJumboFramesOK
;
73
u64
TxJumboOctetsOK
;
74
75
/* Receive */
76
u64
RxOctetsOK
;
77
u64
RxOctetsBad
;
78
u64
RxUnicastFramesOK
;
79
u64
RxMulticastFramesOK
;
80
u64
RxBroadcastFramesOK
;
81
u64
RxPauseFrames
;
82
u64
RxFCSErrors
;
83
u64
RxAlignErrors
;
84
u64
RxSymbolErrors
;
85
u64
RxDataErrors
;
86
u64
RxSequenceErrors
;
87
u64
RxRuntErrors
;
88
u64
RxJabberErrors
;
89
u64
RxInternalMACRcvError
;
90
u64
RxInRangeLengthErrors
;
91
u64
RxOutOfRangeLengthField
;
92
u64
RxFrameTooLongErrors
;
93
u64
RxJumboFramesOK
;
94
u64
RxJumboOctetsOK
;
95
};
96
97
struct
cmac_ops
{
98
void
(*
destroy
)(
struct
cmac
*);
99
int
(*
reset
)(
struct
cmac
*);
100
int
(*
interrupt_enable
)(
struct
cmac
*);
101
int
(*
interrupt_disable
)(
struct
cmac
*);
102
int
(*
interrupt_clear
)(
struct
cmac
*);
103
int
(*
interrupt_handler
)(
struct
cmac
*);
104
105
int
(*
enable
)(
struct
cmac
*,
int
);
106
int
(*
disable
)(
struct
cmac
*,
int
);
107
108
int
(*
loopback_enable
)(
struct
cmac
*);
109
int
(*
loopback_disable
)(
struct
cmac
*);
110
111
int
(*
set_mtu
)(
struct
cmac
*,
int
mtu);
112
int
(*
set_rx_mode
)(
struct
cmac
*,
struct
t1_rx_mode
*rm);
113
114
int
(*
set_speed_duplex_fc
)(
struct
cmac
*,
int
speed
,
int
duplex
,
int
fc
);
115
int
(*
get_speed_duplex_fc
)(
struct
cmac
*,
int
*
speed
,
int
*
duplex
,
116
int
*
fc
);
117
118
const
struct
cmac_statistics
*(*statistics_update)(
struct
cmac
*,
int
);
119
120
int
(*
macaddress_get
)(
struct
cmac
*,
u8
mac_addr
[6]);
121
int
(*
macaddress_set
)(
struct
cmac
*,
u8
mac_addr
[6]);
122
};
123
124
typedef
struct
_cmac_instance
cmac_instance
;
125
126
struct
cmac
{
127
struct
cmac_statistics
stats
;
128
adapter_t
*
adapter
;
129
const
struct
cmac_ops
*
ops
;
130
cmac_instance
*
instance
;
131
};
132
133
struct
gmac
{
134
unsigned
int
stats_update_period
;
135
struct
cmac
*(*create)(
adapter_t
*
adapter
,
int
index
);
136
int
(*
reset
)(
adapter_t
*);
137
};
138
139
extern
const
struct
gmac
t1_pm3393_ops
;
140
extern
const
struct
gmac
t1_vsc7326_ops
;
141
142
#endif
/* _CXGB_GMAC_H_ */
Generated on Thu Jan 10 2013 14:00:02 for Linux Kernel by
1.8.2