1/*
2 * Hardware-specific MIB definition for
3 * Broadcom Home Networking Division
4 * BCM44XX and BCM47XX 10/100 Mbps Ethernet cores.
5 *
6 * Copyright (C) 2013, Broadcom Corporation. All Rights Reserved.
7 *
8 * Permission to use, copy, modify, and/or distribute this software for any
9 * purpose with or without fee is hereby granted, provided that the above
10 * copyright notice and this permission notice appear in all copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
13 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
14 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
15 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
17 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
18 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 * $Id: bcmenetmib.h 376344 2012-12-24 21:10:09Z $
20 */
21
22#ifndef _bcmenetmib_h_
23#define _bcmenetmib_h_
24
25/* cpp contortions to concatenate w/arg prescan */
26#ifndef PAD
27#define	_PADLINE(line)	pad ## line
28#define	_XSTR(line)	_PADLINE(line)
29#define	PAD		_XSTR(__LINE__)
30#endif	/* PAD */
31
32/*
33 * EMAC MIB Registers
34 */
35typedef volatile struct {
36	uint32 tx_good_octets;
37	uint32 tx_good_pkts;
38	uint32 tx_octets;
39	uint32 tx_pkts;
40	uint32 tx_broadcast_pkts;
41	uint32 tx_multicast_pkts;
42	uint32 tx_len_64;
43	uint32 tx_len_65_to_127;
44	uint32 tx_len_128_to_255;
45	uint32 tx_len_256_to_511;
46	uint32 tx_len_512_to_1023;
47	uint32 tx_len_1024_to_max;
48	uint32 tx_jabber_pkts;
49	uint32 tx_oversize_pkts;
50	uint32 tx_fragment_pkts;
51	uint32 tx_underruns;
52	uint32 tx_total_cols;
53	uint32 tx_single_cols;
54	uint32 tx_multiple_cols;
55	uint32 tx_excessive_cols;
56	uint32 tx_late_cols;
57	uint32 tx_defered;
58	uint32 tx_carrier_lost;
59	uint32 tx_pause_pkts;
60	uint32 PAD[8];
61
62	uint32 rx_good_octets;
63	uint32 rx_good_pkts;
64	uint32 rx_octets;
65	uint32 rx_pkts;
66	uint32 rx_broadcast_pkts;
67	uint32 rx_multicast_pkts;
68	uint32 rx_len_64;
69	uint32 rx_len_65_to_127;
70	uint32 rx_len_128_to_255;
71	uint32 rx_len_256_to_511;
72	uint32 rx_len_512_to_1023;
73	uint32 rx_len_1024_to_max;
74	uint32 rx_jabber_pkts;
75	uint32 rx_oversize_pkts;
76	uint32 rx_fragment_pkts;
77	uint32 rx_missed_pkts;
78	uint32 rx_crc_align_errs;
79	uint32 rx_undersize;
80	uint32 rx_crc_errs;
81	uint32 rx_align_errs;
82	uint32 rx_symbol_errs;
83	uint32 rx_pause_pkts;
84	uint32 rx_nonpause_pkts;
85} bcmenetmib_t;
86
87#endif	/* _bcmenetmib_h_ */
88