Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Jun 2012 04:41:35 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r237153 - in head/sys/dev/ath: . ath_hal
Message-ID:  <201206160441.q5G4fZD5022714@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Sat Jun 16 04:41:35 2012
New Revision: 237153
URL: http://svn.freebsd.org/changeset/base/237153

Log:
  Shuffle some more fields in ath_buf so it's not too big.
  
  This shaves off 20 bytes - from 288 bytes to 268 bytes.
  
  However, it's still too big.

Modified:
  head/sys/dev/ath/ath_hal/ah_desc.h
  head/sys/dev/ath/if_ath.c
  head/sys/dev/ath/if_athvar.h

Modified: head/sys/dev/ath/ath_hal/ah_desc.h
==============================================================================
--- head/sys/dev/ath/ath_hal/ah_desc.h	Sat Jun 16 04:36:08 2012	(r237152)
+++ head/sys/dev/ath/ath_hal/ah_desc.h	Sat Jun 16 04:41:35 2012	(r237153)
@@ -225,6 +225,7 @@ struct ath_desc_status {
 #define	ds_rxstat	ds_us.rx
 
 /* flags passed to tx descriptor setup methods */
+/* This is a uint16_t field in ath_buf, just be warned! */
 #define	HAL_TXDESC_CLRDMASK	0x0001	/* clear destination filter mask */
 #define	HAL_TXDESC_NOACK	0x0002	/* don't wait for ACK */
 #define	HAL_TXDESC_RTSENA	0x0004	/* enable RTS */

Modified: head/sys/dev/ath/if_ath.c
==============================================================================
--- head/sys/dev/ath/if_ath.c	Sat Jun 16 04:36:08 2012	(r237152)
+++ head/sys/dev/ath/if_ath.c	Sat Jun 16 04:41:35 2012	(r237153)
@@ -662,6 +662,9 @@ ath_attach(u_int16_t devid, struct ath_s
 		(void) ath_hal_settxchainmask(sc->sc_ah, tx_chainmask);
 	}
 
+	device_printf(sc->sc_dev, "%s: sizeof(ath_buf) = %d bytes\n",
+	    __func__, sizeof(struct ath_buf));
+
 #ifdef	ATH_ENABLE_11N
 	/*
 	 * Query HT capabilities

Modified: head/sys/dev/ath/if_athvar.h
==============================================================================
--- head/sys/dev/ath/if_athvar.h	Sat Jun 16 04:36:08 2012	(r237152)
+++ head/sys/dev/ath/if_athvar.h	Sat Jun 16 04:41:35 2012	(r237153)
@@ -236,20 +236,32 @@ struct ath_buf {
 		 * These fields are passed into the
 		 * descriptor setup functions.
 		 */
+
+		/* Make this an 8 bit value? */
 		HAL_PKT_TYPE bfs_atype;	/* packet type */
-		int bfs_pktlen;		/* length of this packet */
-		int bfs_hdrlen;		/* length of this packet header */
+
+		uint32_t bfs_pktlen;	/* length of this packet */
+
+		uint16_t bfs_hdrlen;	/* length of this packet header */
 		uint16_t bfs_al;	/* length of aggregate */
-		int bfs_txflags;	/* HAL (tx) descriptor flags */
-		int bfs_txrate0;	/* first TX rate */
-		int bfs_try0;		/* first try count */
+
+		uint16_t bfs_txflags;	/* HAL (tx) descriptor flags */
+		uint8_t bfs_txrate0;	/* first TX rate */
+		uint8_t bfs_try0;		/* first try count */
+
+		uint16_t bfs_txpower;	/* tx power */
 		uint8_t bfs_ctsrate0;	/* Non-zero - use this as ctsrate */
-		int bfs_keyix;		/* crypto key index */
-		int bfs_txpower;	/* tx power */
-		int bfs_txantenna;	/* TX antenna config */
+		uint8_t bfs_ctsrate;	/* CTS rate */
+
+		/* 16 bit? */
+		int32_t bfs_keyix;		/* crypto key index */
+		int32_t bfs_txantenna;	/* TX antenna config */
+
+		/* Make this an 8 bit value? */
 		enum ieee80211_protmode bfs_protmode;
-		int bfs_ctsrate;	/* CTS rate */
-		int bfs_ctsduration;	/* CTS duration (pre-11n NICs) */
+
+		/* 16 bit? */
+		uint32_t bfs_ctsduration;	/* CTS duration (pre-11n NICs) */
 		struct ath_rc_series bfs_rc[ATH_RC_NUM];	/* non-11n TX series */
 	} bf_state;
 };



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201206160441.q5G4fZD5022714>