| Christoph Lameter | 8199d3a | 2005-03-30 13:34:31 -0800 | [diff] [blame] | 1 | /***************************************************************************** | 
 | 2 |  *                                                                           * | 
 | 3 |  * File: sge.h                                                               * | 
| Scott Bardone | 559fb51 | 2005-06-23 01:40:19 -0400 | [diff] [blame] | 4 |  * $Revision: 1.11 $                                                          * | 
 | 5 |  * $Date: 2005/06/21 22:10:55 $                                              * | 
| Christoph Lameter | 8199d3a | 2005-03-30 13:34:31 -0800 | [diff] [blame] | 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 |  | 
| Scott Bardone | 559fb51 | 2005-06-23 01:40:19 -0400 | [diff] [blame] | 39 | #ifndef _CXGB_SGE_H_ | 
 | 40 | #define _CXGB_SGE_H_ | 
| Christoph Lameter | 8199d3a | 2005-03-30 13:34:31 -0800 | [diff] [blame] | 41 |  | 
 | 42 | #include <linux/types.h> | 
 | 43 | #include <linux/interrupt.h> | 
 | 44 | #include <asm/byteorder.h> | 
 | 45 |  | 
 | 46 | struct sge_intr_counts { | 
| Stephen Hemminger | 56f643c | 2006-12-01 16:36:21 -0800 | [diff] [blame] | 47 | 	unsigned int rx_drops;        /* # of packets dropped due to no mem */ | 
 | 48 | 	unsigned int pure_rsps;        /* # of non-payload responses */ | 
 | 49 | 	unsigned int unhandled_irqs;   /* # of unhandled interrupts */ | 
| Christoph Lameter | 8199d3a | 2005-03-30 13:34:31 -0800 | [diff] [blame] | 50 | 	unsigned int respQ_empty;      /* # times respQ empty */ | 
 | 51 | 	unsigned int respQ_overflow;   /* # respQ overflow (fatal) */ | 
 | 52 | 	unsigned int freelistQ_empty;  /* # times freelist empty */ | 
 | 53 | 	unsigned int pkt_too_big;      /* packet too large (fatal) */ | 
 | 54 | 	unsigned int pkt_mismatch; | 
| Scott Bardone | 559fb51 | 2005-06-23 01:40:19 -0400 | [diff] [blame] | 55 | 	unsigned int cmdQ_full[3];     /* not HW IRQ, host cmdQ[] full */ | 
 | 56 | 	unsigned int cmdQ_restarted[3];/* # of times cmdQ X was restarted */ | 
| Scott Bardone | 559fb51 | 2005-06-23 01:40:19 -0400 | [diff] [blame] | 57 | }; | 
 | 58 |  | 
 | 59 | struct sge_port_stats { | 
| Stephen Hemminger | 56f643c | 2006-12-01 16:36:21 -0800 | [diff] [blame] | 60 | 	u64 rx_packets;      /* # of Ethernet packets received */ | 
 | 61 | 	u64 rx_cso_good;     /* # of successful RX csum offloads */ | 
 | 62 | 	u64 tx_packets;      /* # of TX packets */ | 
 | 63 | 	u64 tx_cso;          /* # of TX checksum offloads */ | 
 | 64 | 	u64 tx_tso;          /* # of TSO requests */ | 
 | 65 | 	u64 vlan_xtract;     /* # of VLAN tag extractions */ | 
 | 66 | 	u64 vlan_insert;     /* # of VLAN tag insertions */ | 
| Christoph Lameter | 8199d3a | 2005-03-30 13:34:31 -0800 | [diff] [blame] | 67 | }; | 
 | 68 |  | 
 | 69 | struct sk_buff; | 
 | 70 | struct net_device; | 
| Christoph Lameter | 8199d3a | 2005-03-30 13:34:31 -0800 | [diff] [blame] | 71 | struct adapter; | 
 | 72 | struct sge_params; | 
 | 73 | struct sge; | 
 | 74 |  | 
 | 75 | struct sge *t1_sge_create(struct adapter *, struct sge_params *); | 
 | 76 | int t1_sge_configure(struct sge *, struct sge_params *); | 
 | 77 | int t1_sge_set_coalesce_params(struct sge *, struct sge_params *); | 
 | 78 | void t1_sge_destroy(struct sge *); | 
| Stephen Hemminger | 7fe26a6 | 2006-12-08 11:08:33 -0800 | [diff] [blame] | 79 | irqreturn_t t1_interrupt(int irq, void *cookie); | 
 | 80 | int t1_poll(struct net_device *, int *); | 
 | 81 |  | 
| Christoph Lameter | 8199d3a | 2005-03-30 13:34:31 -0800 | [diff] [blame] | 82 | int t1_start_xmit(struct sk_buff *skb, struct net_device *dev); | 
 | 83 | void t1_set_vlan_accel(struct adapter *adapter, int on_off); | 
 | 84 | void t1_sge_start(struct sge *); | 
 | 85 | void t1_sge_stop(struct sge *); | 
 | 86 | int t1_sge_intr_error_handler(struct sge *); | 
 | 87 | void t1_sge_intr_enable(struct sge *); | 
 | 88 | void t1_sge_intr_disable(struct sge *); | 
 | 89 | void t1_sge_intr_clear(struct sge *); | 
| Stephen Hemminger | 56f643c | 2006-12-01 16:36:21 -0800 | [diff] [blame] | 90 | const struct sge_intr_counts *t1_sge_get_intr_counts(const struct sge *sge); | 
 | 91 | void t1_sge_get_port_stats(const struct sge *sge, int port, struct sge_port_stats *); | 
| Stephen Hemminger | f1d3d38 | 2006-12-01 16:36:16 -0800 | [diff] [blame] | 92 | void t1_sched_set_max_avail_bytes(struct sge *, unsigned int); | 
 | 93 | void t1_sched_set_drain_bits_per_us(struct sge *, unsigned int, unsigned int); | 
 | 94 | unsigned int t1_sched_update_parms(struct sge *, unsigned int, unsigned int, | 
 | 95 | 			   unsigned int); | 
| Christoph Lameter | 8199d3a | 2005-03-30 13:34:31 -0800 | [diff] [blame] | 96 |  | 
| Scott Bardone | 559fb51 | 2005-06-23 01:40:19 -0400 | [diff] [blame] | 97 | #endif /* _CXGB_SGE_H_ */ |