Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /*****************************************************************************
  2  *                                                                           *
  3  * File: sge.h                                                               *
  4  * $Revision: 1.11 $                                                          *
  5  * $Date: 2005/06/21 22:10:55 $                                              *
  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 _CXGB_SGE_H_
 40 #define _CXGB_SGE_H_
 41 
 42 #include <linux/types.h>
 43 #include <linux/interrupt.h>
 44 #include <asm/byteorder.h>
 45 
 46 struct sge_intr_counts {
 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 */
 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;
 55         unsigned int cmdQ_full[3];     /* not HW IRQ, host cmdQ[] full */
 56         unsigned int cmdQ_restarted[3];/* # of times cmdQ X was restarted */
 57 };
 58 
 59 struct sge_port_stats {
 60         u64 rx_cso_good;     /* # of successful RX csum offloads */
 61         u64 tx_cso;          /* # of TX checksum offloads */
 62         u64 tx_tso;          /* # of TSO requests */
 63         u64 vlan_xtract;     /* # of VLAN tag extractions */
 64         u64 vlan_insert;     /* # of VLAN tag insertions */
 65         u64 tx_need_hdrroom; /* # of TX skbs in need of more header room */
 66 };
 67 
 68 struct sk_buff;
 69 struct net_device;
 70 struct adapter;
 71 struct sge_params;
 72 struct sge;
 73 
 74 struct sge *t1_sge_create(struct adapter *, struct sge_params *);
 75 int t1_sge_configure(struct sge *, struct sge_params *);
 76 int t1_sge_set_coalesce_params(struct sge *, struct sge_params *);
 77 void t1_sge_destroy(struct sge *);
 78 irqreturn_t t1_interrupt(int irq, void *cookie);
 79 int t1_poll(struct napi_struct *, int);
 80 
 81 int t1_start_xmit(struct sk_buff *skb, struct net_device *dev);
 82 void t1_set_vlan_accel(struct adapter *adapter, int on_off);
 83 void t1_sge_start(struct sge *);
 84 void t1_sge_stop(struct sge *);
 85 int t1_sge_intr_error_handler(struct sge *);
 86 void t1_sge_intr_enable(struct sge *);
 87 void t1_sge_intr_disable(struct sge *);
 88 void t1_sge_intr_clear(struct sge *);
 89 const struct sge_intr_counts *t1_sge_get_intr_counts(const struct sge *sge);
 90 void t1_sge_get_port_stats(const struct sge *sge, int port, struct sge_port_stats *);
 91 unsigned int t1_sched_update_parms(struct sge *, unsigned int, unsigned int,
 92                            unsigned int);
 93 
 94 #endif /* _CXGB_SGE_H_ */
 95 
  This page was automatically generated by the LXR engine.