Home | History | Annotate | Line # | Download | only in ic
      1  1.2  xtraeme /*	$NetBSD: athrate-amrr.h,v 1.2 2006/02/05 06:03:26 xtraeme Exp $ */
      2  1.2  xtraeme 
      3  1.1   dyoung /*-
      4  1.1   dyoung  * Copyright (c) 2004 INRIA
      5  1.1   dyoung  * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
      6  1.1   dyoung  * All rights reserved.
      7  1.1   dyoung  *
      8  1.1   dyoung  * Redistribution and use in source and binary forms, with or without
      9  1.1   dyoung  * modification, are permitted provided that the following conditions
     10  1.1   dyoung  * are met:
     11  1.1   dyoung  * 1. Redistributions of source code must retain the above copyright
     12  1.1   dyoung  *    notice, this list of conditions and the following disclaimer,
     13  1.1   dyoung     without modification.
     14  1.1   dyoung  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     15  1.1   dyoung  *    similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
     16  1.1   dyoung  *    redistribution must be conditioned upon including a substantially
     17  1.1   dyoung  *    similar Disclaimer requirement for further binary redistribution.
     18  1.1   dyoung  * 3. Neither the names of the above-listed copyright holders nor the names
     19  1.1   dyoung  *    of any contributors may be used to endorse or promote products derived
     20  1.1   dyoung  *    from this software without specific prior written permission.
     21  1.1   dyoung  *
     22  1.1   dyoung  * Alternatively, this software may be distributed under the terms of the
     23  1.1   dyoung  * GNU General Public License ("GPL") version 2 as published by the Free
     24  1.1   dyoung  * Software Foundation.
     25  1.1   dyoung  *
     26  1.1   dyoung  * NO WARRANTY
     27  1.1   dyoung  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     28  1.1   dyoung  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     29  1.1   dyoung  * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
     30  1.1   dyoung  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
     31  1.1   dyoung  * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
     32  1.1   dyoung  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     33  1.1   dyoung  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     34  1.1   dyoung  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
     35  1.1   dyoung  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     36  1.1   dyoung  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
     37  1.1   dyoung  * THE POSSIBILITY OF SUCH DAMAGES.
     38  1.1   dyoung  *
     39  1.1   dyoung  * $FreeBSD: src/sys/dev/ath/ath_rate/amrr/amrr.h,v 1.2 2004/12/31 22:41:45 sam Exp $
     40  1.1   dyoung  */
     41  1.1   dyoung 
     42  1.1   dyoung #ifndef _DEV_ATH_RATE_AMRR_H
     43  1.1   dyoung #define _DEV_ATH_RATE_AMRR_H
     44  1.1   dyoung 
     45  1.1   dyoung /* per-device state */
     46  1.1   dyoung struct amrr_softc {
     47  1.1   dyoung 	struct ath_ratectrl arc;	/* base state */
     48  1.1   dyoung 	struct callout timer;		/* periodic timer */
     49  1.1   dyoung };
     50  1.1   dyoung 
     51  1.1   dyoung /* per-node state */
     52  1.1   dyoung struct amrr_node {
     53  1.1   dyoung   	/* AMRR statistics for this node */
     54  1.1   dyoung   	u_int           amn_tx_try0_cnt;
     55  1.1   dyoung   	u_int           amn_tx_try1_cnt;
     56  1.1   dyoung   	u_int           amn_tx_try2_cnt;
     57  1.1   dyoung   	u_int           amn_tx_try3_cnt;
     58  1.1   dyoung   	u_int           amn_tx_failure_cnt;
     59  1.1   dyoung         /* AMRR algorithm state for this node */
     60  1.1   dyoung   	u_int           amn_success_threshold;
     61  1.1   dyoung   	u_int           amn_success;
     62  1.1   dyoung   	u_int           amn_recovery;
     63  1.1   dyoung 	/* rate index et al. */
     64  1.1   dyoung 	u_int8_t	amn_tx_rix0;	/* series 0 rate index */
     65  1.1   dyoung 	u_int8_t	amn_tx_rate0;	/* series 0 h/w rate */
     66  1.1   dyoung 	u_int8_t	amn_tx_rate1;	/* series 1 h/w rate */
     67  1.1   dyoung 	u_int8_t	amn_tx_rate2;	/* series 2 h/w rate */
     68  1.1   dyoung 	u_int8_t	amn_tx_rate3;	/* series 3 h/w rate */
     69  1.1   dyoung 	u_int8_t	amn_tx_rate0sp;	/* series 0 short preamble h/w rate */
     70  1.1   dyoung 	u_int8_t	amn_tx_rate1sp;	/* series 1 short preamble h/w rate */
     71  1.1   dyoung 	u_int8_t	amn_tx_rate2sp;	/* series 2 short preamble h/w rate */
     72  1.1   dyoung 	u_int8_t	amn_tx_rate3sp;	/* series 3 short preamble h/w rate */
     73  1.1   dyoung 	u_int8_t	amn_tx_try0;	/* series 0 try count */
     74  1.1   dyoung   	u_int           amn_tx_try1;    /* series 1 try count */
     75  1.1   dyoung   	u_int           amn_tx_try2;    /* series 2 try count */
     76  1.1   dyoung   	u_int           amn_tx_try3;    /* series 3 try count */
     77  1.1   dyoung };
     78  1.1   dyoung #define	ATH_NODE_AMRR(an)	((struct amrr_node *)&an[1])
     79  1.1   dyoung #endif /* _DEV_ATH_RATE_AMRR_H */
     80