xref: /illumos-gate/usr/src/uts/common/io/chxge/com/mc3.h (revision 2d6eb4a5)
1d39a76e7Sxw /*
2d39a76e7Sxw  * CDDL HEADER START
3d39a76e7Sxw  *
4d39a76e7Sxw  * The contents of this file are subject to the terms of the
5d39a76e7Sxw  * Common Development and Distribution License (the "License").
6d39a76e7Sxw  * You may not use this file except in compliance with the License.
7d39a76e7Sxw  *
8d39a76e7Sxw  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9d39a76e7Sxw  * or http://www.opensolaris.org/os/licensing.
10d39a76e7Sxw  * See the License for the specific language governing permissions
11d39a76e7Sxw  * and limitations under the License.
12d39a76e7Sxw  *
13d39a76e7Sxw  * When distributing Covered Code, include this CDDL HEADER in each
14d39a76e7Sxw  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15d39a76e7Sxw  * If applicable, add the following below this CDDL HEADER, with the
16d39a76e7Sxw  * fields enclosed by brackets "[]" replaced with your own identifying
17d39a76e7Sxw  * information: Portions Copyright [yyyy] [name of copyright owner]
18d39a76e7Sxw  *
19d39a76e7Sxw  * CDDL HEADER END
20d39a76e7Sxw  */
21d39a76e7Sxw 
22d39a76e7Sxw /*
23d39a76e7Sxw  * Copyright (C) 2003-2005 Chelsio Communications.  All rights reserved.
24d39a76e7Sxw  */
25d39a76e7Sxw 
26d39a76e7Sxw #ifndef CHELSIO_MC3_H
27d39a76e7Sxw #define CHELSIO_MC3_H
28d39a76e7Sxw 
29d39a76e7Sxw #include "common.h"
30d39a76e7Sxw 
31d39a76e7Sxw struct pemc3_intr_counts {
32d39a76e7Sxw 	unsigned int corr_err;
33d39a76e7Sxw 	unsigned int uncorr_err;
34d39a76e7Sxw 	unsigned int parity_err;
35d39a76e7Sxw 	unsigned int addr_err;
36d39a76e7Sxw };
37*2d6eb4a5SToomas Soome 
38d39a76e7Sxw struct pemc3;
39d39a76e7Sxw 
40d39a76e7Sxw struct pemc3 *t1_mc3_create(adapter_t * adapter);
41d39a76e7Sxw void t1_mc3_destroy(struct pemc3 *mc3);
42d39a76e7Sxw int t1_mc3_init(struct pemc3 *mc3, unsigned int mc3_clock);
43d39a76e7Sxw 
44d39a76e7Sxw int t1_mc3_intr_handler(struct pemc3 *mc3);
45d39a76e7Sxw void t1_mc3_intr_enable(struct pemc3 *mc3);
46d39a76e7Sxw void t1_mc3_intr_disable(struct pemc3 *mc3);
47d39a76e7Sxw void t1_mc3_intr_clear(struct pemc3 *mc3);
48d39a76e7Sxw 
49d39a76e7Sxw unsigned int t1_mc3_get_size(struct pemc3 *mc3);
50d39a76e7Sxw const struct pemc3_intr_counts *t1_mc3_get_intr_counts(struct pemc3 *mc3);
51d39a76e7Sxw 
52d39a76e7Sxw #endif
53