Merge /spare/repo/linux-2.6/
[linux-2.6] / drivers / net / chelsio / tp.h
1 /*****************************************************************************
2  *                                                                           *
3  * File: tp.h                                                                *
4  * $Revision: 1.3 $                                                          *
5  * $Date: 2005/03/23 07:15:59 $                                              *
6  * Description:                                                              *
7  *  part of the Chelsio 10Gb Ethernet Driver.                                *
8  *                                                                           *
9  * This program is free software; you can redistribute it and/or modify      *
10  * it under the terms of the GNU General Public License, version 2, as       *
11  * published by the Free Software Foundation.                                *
12  *                                                                           *
13  * You should have received a copy of the GNU General Public License along   *
14  * with this program; if not, write to the Free Software Foundation, Inc.,   *
15  * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.                 *
16  *                                                                           *
17  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED    *
18  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF      *
19  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.                     *
20  *                                                                           *
21  * http://www.chelsio.com                                                    *
22  *                                                                           *
23  * Copyright (c) 2003 - 2005 Chelsio Communications, Inc.                    *
24  * All rights reserved.                                                      *
25  *                                                                           *
26  * Maintainers: maintainers@chelsio.com                                      *
27  *                                                                           *
28  * Authors: Dimitrios Michailidis   <dm@chelsio.com>                         *
29  *          Tina Yang               <tainay@chelsio.com>                     *
30  *          Felix Marti             <felix@chelsio.com>                      *
31  *          Scott Bardone           <sbardone@chelsio.com>                   *
32  *          Kurt Ottaway            <kottaway@chelsio.com>                   *
33  *          Frank DiMambro          <frank@chelsio.com>                      *
34  *                                                                           *
35  * History:                                                                  *
36  *                                                                           *
37  ****************************************************************************/
38
39 #ifndef CHELSIO_TP_H
40 #define CHELSIO_TP_H
41
42 #include "common.h"
43
44 #define TP_MAX_RX_COALESCING_SIZE 16224U
45
46 struct tp_mib_statistics {
47
48         /* IP */
49         u32 ipInReceive_hi;
50         u32 ipInReceive_lo;
51         u32 ipInHdrErrors_hi;
52         u32 ipInHdrErrors_lo;
53         u32 ipInAddrErrors_hi;
54         u32 ipInAddrErrors_lo;
55         u32 ipInUnknownProtos_hi;
56         u32 ipInUnknownProtos_lo;
57         u32 ipInDiscards_hi;
58         u32 ipInDiscards_lo;
59         u32 ipInDelivers_hi;
60         u32 ipInDelivers_lo;
61         u32 ipOutRequests_hi;
62         u32 ipOutRequests_lo;
63         u32 ipOutDiscards_hi;
64         u32 ipOutDiscards_lo;
65         u32 ipOutNoRoutes_hi;
66         u32 ipOutNoRoutes_lo;
67         u32 ipReasmTimeout;
68         u32 ipReasmReqds;
69         u32 ipReasmOKs;
70         u32 ipReasmFails;
71
72         u32 reserved[8];
73
74         /* TCP */
75         u32 tcpActiveOpens;
76         u32 tcpPassiveOpens;
77         u32 tcpAttemptFails;
78         u32 tcpEstabResets;
79         u32 tcpOutRsts;
80         u32 tcpCurrEstab;
81         u32 tcpInSegs_hi;
82         u32 tcpInSegs_lo;
83         u32 tcpOutSegs_hi;
84         u32 tcpOutSegs_lo;
85         u32 tcpRetransSeg_hi;
86         u32 tcpRetransSeg_lo;
87         u32 tcpInErrs_hi;
88         u32 tcpInErrs_lo;
89         u32 tcpRtoMin;
90         u32 tcpRtoMax;
91 };
92
93 struct petp;
94 struct tp_params;
95
96 struct petp *t1_tp_create(adapter_t *adapter, struct tp_params *p);
97 void t1_tp_destroy(struct petp *tp);
98
99 void t1_tp_intr_disable(struct petp *tp);
100 void t1_tp_intr_enable(struct petp *tp);
101 void t1_tp_intr_clear(struct petp *tp);
102 int t1_tp_intr_handler(struct petp *tp);
103
104 void t1_tp_get_mib_statistics(adapter_t *adap, struct tp_mib_statistics *tps);
105 void t1_tp_set_udp_checksum_offload(struct petp *tp, int enable);
106 void t1_tp_set_tcp_checksum_offload(struct petp *tp, int enable);
107 void t1_tp_set_ip_checksum_offload(struct petp *tp, int enable);
108 int t1_tp_set_coalescing_size(struct petp *tp, unsigned int size);
109 int t1_tp_reset(struct petp *tp, struct tp_params *p, unsigned int tp_clk);
110 #endif