patch-2.1.112 linux/drivers/net/wavelan.p.h

Next file: linux/drivers/pci/oldproc.c
Previous file: linux/drivers/net/wavelan.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.111/linux/drivers/net/wavelan.p.h linux/drivers/net/wavelan.p.h
@@ -1,79 +1,79 @@
 /*
- *	Wavelan ISA driver
+ *	WaveLAN ISA driver
  *
  *		Jean II - HPLB '96
  *
  * Reorganisation and extension of the driver.
  *
- * This file contain all definition and declarations necessary for the
- * wavelan isa driver. This file is a private header, so it should
- * be included only on wavelan.c !!!
+ * This file contains all definitions and declarations necessary for the
+ * WaveLAN ISA driver.  This file is a private header, so it should
+ * be included only in wavelan.c!
  */
 
 #ifndef WAVELAN_P_H
 #define WAVELAN_P_H
 
-/************************** DOCUMENTATION **************************/
+/************************** DOCUMENTATION ***************************/
 /*
- * This driver provide a Linux interface to the Wavelan ISA hardware
- * The Wavelan is a product of Lucent ("http://wavelan.netland.nl/").
+ * This driver provides a Linux interface to the WaveLAN ISA hardware.
+ * The WaveLAN is a product of Lucent (http://www.wavelan.com/).
  * This division was formerly part of NCR and then AT&T.
- * Wavelan are also distributed by DEC (RoamAbout), Digital Ocean and
- * Aironet (Arlan). If you have one of those product, you will need to
- * make some changes below...
- *
- * This driver is still a beta software. A lot of bugs have been corrected,
- * a lot of functionalities are implemented, the whole appear pretty stable,
- * but there is still some area of improvement (encryption, performance...).
- *
- * To know how to use this driver, read the NET3 HOWTO.
- * If you want to exploit the many other fonctionalities, look comments
- * in the code...
+ * WaveLANs are also distributed by DEC (RoamAbout), Digital Ocean and
+ * Aironet (Arlan).  If you have one of those products, you will need to
+ * make some changes below.
+ *
+ * This driver is still beta software.  A lot of bugs have been corrected,
+ * a lot of functionality is implemented, and the whole appears stable,
+ * but there is still room for improvement (encryption, performance).
+ *
+ * To learn how to use this driver, read the NET3 HOWTO.
+ * If you want to exploit the many other functionalities, read the comments
+ * in the code.
  *
- * This driver is the result of the effort of many peoples (see below).
+ * This driver is the result of the effort of many people (see below).
  */
 
 /* ------------------------ SPECIFIC NOTES ------------------------ */
 /*
- * wavelan.o is darn too big
- * -------------------------
- *	That's true ! There is a very simple way to reduce the driver
- *	object by 33% (yes !). Comment out the following line :
+ * wavelan.o is too darned big
+ * ---------------------------
+ *	That's true!  There is a very simple way to reduce the driver
+ *	object by 33%!  Comment out the following line:
  *		#include <linux/wireless.h>
  *
- * MAC address and hardware detection :
- * ----------------------------------
- *	The detection code of the wavelan chech that the first 3
- *	octets of the MAC address fit the company code. This type of
- *	detection work well for AT&T cards (because the AT&T code is
+ * MAC address and hardware detection:
+ * -----------------------------------
+ *	The detection code for the WaveLAN checks that the first three
+ *	octets of the MAC address fit the company code.  This type of
+ *	detection works well for AT&T cards (because the AT&T code is
  *	hardcoded in wavelan.h), but of course will fail for other
- *	manufacturer.
+ *	manufacturers.
  *
- *	If you are sure that your card is derived from the wavelan,
- *	here is the way to configure it :
+ *	If you are sure that your card is derived from the WaveLAN,
+ *	here is the way to configure it:
  *	1) Get your MAC address
- *		a) With your card utilities (wfreqsel, instconf, ...)
- *		b) With the driver :
+ *		a) With your card utilities (wfreqsel, instconf, etc.)
+ *		b) With the driver:
  *			o compile the kernel with DEBUG_CONFIG_INFO enabled
  *			o Boot and look the card messages
  *	2) Set your MAC code (3 octets) in MAC_ADDRESSES[][3] (wavelan.h)
- *	3) Compile & verify
- *	4) Send me the MAC code - I will include it in the next version...
+ *	3) Compile and verify
+ *	4) Send me the MAC code.  I will include it in the next version.
  *
- * "CU Inactive" message at boot up :
+ * "CU Inactive" message at boot up:
  * -----------------------------------
- *	It seem that there is some weird timings problems with the
- *	Intel microcontroler. In fact, this message is triggered by a
- *	bad reading of the on board ram the first time we read the
- *	control block. If you ignore this message, all is ok (but in
- *	fact, currently, it reset the wavelan hardware).
+ *	It seems that there is some weird timing problem with the
+ *	Intel microcontroller.  In fact, this message is triggered by a
+ *	bad reading of the onboard RAM the first time we read the
+ *	control block.  If you ignore this message, all is OK (but in
+ *	fact, currently, it resets the WaveLAN hardware).
  *
- *	To get rid of that problem, there is two solution. The first
+ *	There are two ways to get rid of that problem.  The first
  *	is to add a dummy read of the scb at the end of
- *	wv_82586_config. The second is to add the timers
+ *	wv_82586_config.  The second is to add the timers
  *	wv_synchronous_cmd and wv_ack (the udelay just after the
- *	waiting loops - seem that the controler is not totally ready
- *	when it say it is !).
+ *	waiting loops--it seems that the controller is not totally ready
+ *	when it says it is).
  *
  *	In the current code, I use the second solution (to be
  *	consistent with the original solution of Bruce Janson).
@@ -81,10 +81,10 @@
 
 /* --------------------- WIRELESS EXTENSIONS --------------------- */
 /*
- * This driver is the first one to support "wireless extensions".
- * This set of extensions provide you some way to control the wireless
- * caracteristics of the hardware in a standard way and support for
- * applications for taking advantage of it (like Mobile IP).
+ * This driver is the first to support "wireless extensions".
+ * This set of extensions provides a standard way to control the wireless
+ * characteristics of the hardware.  Applications such as mobile IP may
+ * take advantage of it.
  *
  * You will need to enable the CONFIG_NET_RADIO define in the kernel
  * configuration to enable the wireless extensions (this is the one
@@ -96,64 +96,64 @@
 
 /* ---------------------------- FILES ---------------------------- */
 /*
- * wavelan.c :		The actual code for the driver - C functions
+ * wavelan.c:		actual code for the driver:  C functions
  *
- * wavelan.p.h :	Private header : local types / vars for the driver
+ * wavelan.p.h:		private header:  local types and variables for driver
  *
- * wavelan.h :		Description of the hardware interface & structs
+ * wavelan.h:		description of the hardware interface and structs
  *
- * i82586.h :		Description if the Ethernet controler
+ * i82586.h:		description of the Ethernet controller
  */
 
 /* --------------------------- HISTORY --------------------------- */
 /*
- * (Made with information in drivers headers. It may not be accurate,
- * and I garantee nothing except my best effort...)
+ * This is based on information in the drivers' headers. It may not be
+ * accurate, and I guarantee only my best effort.
  *
- * The history of the Wavelan drivers is as complicated as history of
- * the Wavelan itself (NCR -> AT&T -> Lucent).
+ * The history of the WaveLAN drivers is as complicated as the history of
+ * the WaveLAN itself (NCR -> AT&T -> Lucent).
  *
- * All started with Anders Klemets <klemets@paul.rutgers.edu>,
- * writting a Wavelan ISA driver for the MACH microkernel. Girish
+ * It all started with Anders Klemets <klemets@paul.rutgers.edu>
+ * writing a WaveLAN ISA driver for the Mach microkernel.  Girish
  * Welling <welling@paul.rutgers.edu> had also worked on it.
- * Keith Moore modify this for the Pcmcia hardware.
+ * Keith Moore modified this for the PCMCIA hardware.
  * 
- * Robert Morris <rtm@das.harvard.edu> port these two drivers to BSDI
- * and add specific Pcmcia support (there is currently no equivalent
- * of the PCMCIA package under BSD...).
+ * Robert Morris <rtm@das.harvard.edu> ported these two drivers to BSDI
+ * and added specific PCMCIA support (there is currently no equivalent
+ * of the PCMCIA package under BSD).
  *
- * Jim Binkley <jrb@cs.pdx.edu> port both BSDI drivers to freeBSD.
+ * Jim Binkley <jrb@cs.pdx.edu> ported both BSDI drivers to FreeBSD.
  *
- * Bruce Janson <bruce@cs.usyd.edu.au> port the BSDI ISA driver to Linux.
+ * Bruce Janson <bruce@cs.usyd.edu.au> ported the BSDI ISA driver to Linux.
  *
- * Anthony D. Joseph <adj@lcs.mit.edu> started modify Bruce driver
+ * Anthony D. Joseph <adj@lcs.mit.edu> started to modify Bruce's driver
  * (with help of the BSDI PCMCIA driver) for PCMCIA.
- * Yunzhou Li <yunzhou@strat.iol.unh.edu> finished is work.
+ * Yunzhou Li <yunzhou@strat.iol.unh.edu> finished this work.
  * Joe Finney <joe@comp.lancs.ac.uk> patched the driver to start
- * correctly 2.00 cards (2.4 GHz with frequency selection).
+ * 2.00 cards correctly (2.4 GHz with frequency selection).
  * David Hinds <dhinds@hyper.stanford.edu> integrated the whole in his
- * Pcmcia package (+ bug corrections).
+ * PCMCIA package (and bug corrections).
  *
  * I (Jean Tourrilhes - jt@hplb.hpl.hp.com) then started to make some
- * patchs to the Pcmcia driver. After, I added code in the ISA driver
+ * patches to the PCMCIA driver.  Later, I added code in the ISA driver
  * for Wireless Extensions and full support of frequency selection
- * cards. Then, I've done the same to the Pcmcia driver + some
- * reorganisation. Finally, I came back to the ISA driver to
- * upgrade it at the same level as the Pcmcia one and reorganise
- * the code
+ * cards.  Then, I did the same to the PCMCIA driver, and did some
+ * reorganisation.  Finally, I came back to the ISA driver to
+ * upgrade it at the same level as the PCMCIA one and reorganise
+ * the code.
  * Loeke Brederveld <lbrederv@wavelan.com> from Lucent has given me
- * much needed informations on the Wavelan hardware.
+ * much needed information on the WaveLAN hardware.
  */
 
-/* The original copyrights and litteratures mention others names and
- * credits. I don't know what there part in this development was...
+/* The original copyrights and literature mention others' names and
+ * credits.  I don't know what their part in this development was.
  */
 
-/* By the way : for the copyright & legal stuff :
- * Almost everybody wrote code under GNU or BSD license (or alike),
- * and want that their original copyright remain somewhere in the
+/* By the way, for the copyright and legal stuff:
+ * almost everybody wrote code under the GNU or BSD license (or similar),
+ * and want their original copyright to remain somewhere in the
  * code (for myself, I go with the GPL).
- * Nobody want to take responsibility for anything, except the fame...
+ * Nobody wants to take responsibility for anything, except the fame.
  */
 
 /* --------------------------- CREDITS --------------------------- */
@@ -162,121 +162,120 @@
  * Linux operating system.
  * It is based on other device drivers and information
  * either written or supplied by:
- *	Ajay Bakre (bakre@paul.rutgers.edu),
- *	Donald Becker (becker@cesdis.gsfc.nasa.gov),
- *	Loeke Brederveld (Loeke.Brederveld@Utrecht.NCR.com),
+ *	Ajay Bakre <bakre@paul.rutgers.edu>,
+ *	Donald Becker <becker@cesdis.gsfc.nasa.gov>,
+ *	Loeke Brederveld <Loeke.Brederveld@Utrecht.NCR.com>,
  *	Brent Elphick <belphick@uwaterloo.ca>,
- *	Anders Klemets (klemets@it.kth.se),
- *	Vladimir V. Kolpakov (w@stier.koenig.ru),
- *	Marc Meertens (Marc.Meertens@Utrecht.NCR.com),
- *	Pauline Middelink (middelin@polyware.iaf.nl),
- *	Robert Morris (rtm@das.harvard.edu),
- *	Jean Tourrilhes (jt@hplb.hpl.hp.com),
- *	Girish Welling (welling@paul.rutgers.edu),
+ *	Anders Klemets <klemets@it.kth.se>,
+ *	Vladimir V. Kolpakov <w@stier.koenig.ru>,
+ *	Marc Meertens <Marc.Meertens@Utrecht.NCR.com>,
+ *	Pauline Middelink <middelin@polyware.iaf.nl>,
+ *	Robert Morris <rtm@das.harvard.edu>,
+ *	Jean Tourrilhes <jt@hplb.hpl.hp.com>,
+ *	Girish Welling <welling@paul.rutgers.edu>,
  *	Clark Woodworth <clark@hiway1.exit109.com>
- *	Yongguang Zhang <ygz@isl.hrl.hac.com>...
+ *	Yongguang Zhang <ygz@isl.hrl.hac.com>
  *
  * Thanks go also to:
- *	James Ashton (jaa101@syseng.anu.edu.au),
- *	Alan Cox (iialan@iiit.swan.ac.uk),
- *	Allan Creighton (allanc@cs.usyd.edu.au),
- *	Matthew Geier (matthew@cs.usyd.edu.au),
- *	Remo di Giovanni (remo@cs.usyd.edu.au),
- *	Eckhard Grah (grah@wrcs1.urz.uni-wuppertal.de),
- *	Vipul Gupta (vgupta@cs.binghamton.edu),
- *	Mark Hagan (mhagan@wtcpost.daytonoh.NCR.COM),
- *	Tim Nicholson (tim@cs.usyd.edu.au),
- *	Ian Parkin (ian@cs.usyd.edu.au),
- *	John Rosenberg (johnr@cs.usyd.edu.au),
- *	George Rossi (george@phm.gov.au),
- *	Arthur Scott (arthur@cs.usyd.edu.au),
+ *	James Ashton <jaa101@syseng.anu.edu.au>,
+ *	Alan Cox <iialan@iiit.swan.ac.uk>,
+ *	Allan Creighton <allanc@cs.usyd.edu.au>,
+ *	Matthew Geier <matthew@cs.usyd.edu.au>,
+ *	Remo di Giovanni <remo@cs.usyd.edu.au>,
+ *	Eckhard Grah <grah@wrcs1.urz.uni-wuppertal.de>,
+ *	Vipul Gupta <vgupta@cs.binghamton.edu>,
+ *	Mark Hagan <mhagan@wtcpost.daytonoh.NCR.COM>,
+ *	Tim Nicholson <tim@cs.usyd.edu.au>,
+ *	Ian Parkin <ian@cs.usyd.edu.au>,
+ *	John Rosenberg <johnr@cs.usyd.edu.au>,
+ *	George Rossi <george@phm.gov.au>,
+ *	Arthur Scott <arthur@cs.usyd.edu.au>,
  *	Stanislav Sinyagin <stas@isf.ru>
- *	Peter Storey,
- * for their assistance and advice.
+ *	and Peter Storey for their assistance and advice.
  *
  * Additional Credits:
  *
- * My developpement has been done under Linux 2.0.x (Debian 1.1) with
+ *	My development has been done under Linux 2.0.x (Debian 1.1) with
  *	an HP Vectra XP/60.
  *
  */
 
 /* ------------------------- IMPROVEMENTS ------------------------- */
 /*
- * I proudly present :
+ * I proudly present:
  *
- * Changes mades in first pre-release :
+ * Changes made in first pre-release:
  * ----------------------------------
- *	- Reorganisation of the code, function name change
- *	- Creation of private header (wavelan.p.h)
- *	- Reorganised debug messages
- *	- More comments, history, ...
- *	- mmc_init : configure the PSA if not done
- *	- mmc_init : correct default value of level threshold for pcmcia
- *	- mmc_init : 2.00 detection better code for 2.00 init
+ *	- reorganisation of the code, function name change
+ *	- creation of private header (wavelan.p.h)
+ *	- reorganised debug messages
+ *	- more comments, history, etc.
+ *	- mmc_init:  configure the PSA if not done
+ *	- mmc_init:  correct default value of level threshold for PCMCIA
+ *	- mmc_init:  2.00 detection better code for 2.00 initialization
  *	- better info at startup
- *	- irq setting (note : this setting is permanent...)
- *	- Watchdog : change strategy (+ solve module removal problems)
- *	- add wireless extensions (ioctl & get_wireless_stats)
+ *	- IRQ setting (note:  this setting is permanent)
+ *	- watchdog:  change strategy (and solve module removal problems)
+ *	- add wireless extensions (ioctl and get_wireless_stats)
  *	  get/set nwid/frequency on fly, info for /proc/net/wireless
- *	- More wireless extension : SETSPY and GETSPY
- *	- Make wireless extensions optional
- *	- Private ioctl to set/get quality & level threshold, histogram
- *	- Remove /proc/net/wavelan
- *	- Supress useless stuff from lp (net_local)
+ *	- more wireless extensions:  SETSPY and GETSPY
+ *	- make wireless extensions optional
+ *	- private ioctl to set/get quality and level threshold, histogram
+ *	- remove /proc/net/wavelan
+ *	- suppress useless stuff from lp (net_local)
  *	- kernel 2.1 support (copy_to/from_user instead of memcpy_to/fromfs)
- *	- Add message level (debug stuff in /var/adm/debug & errors not
+ *	- add message level (debug stuff in /var/adm/debug and errors not
  *	  displayed at console and still in /var/adm/messages)
  *	- multi device support
- *	- Start fixing the probe (init code)
- *	- More inlines
+ *	- start fixing the probe (init code)
+ *	- more inlines
  *	- man page
- *	- Lot of others minor details & cleanups
+ *	- many other minor details and cleanups
  *
- * Changes made in second pre-release :
- * ----------------------------------
- *	- Cleanup init code (probe & module init)
- *	- Better multi device support (module)
- *	- name assignement (module)
- *
- * Changes made in third pre-release :
- * ---------------------------------
- *	- Be more conservative on timers
- *	- Preliminary support for multicast (I still lack some details...)
+ * Changes made in second pre-release:
+ * -----------------------------------
+ *	- clean up init code (probe and module init)
+ *	- better multiple device support (module)
+ *	- name assignment (module)
  *
- * Changes made in fourth pre-release :
+ * Changes made in third pre-release:
  * ----------------------------------
+ *	- be more conservative on timers
+ *	- preliminary support for multicast (I still lack some details)
+ *
+ * Changes made in fourth pre-release:
+ * -----------------------------------
  *	- multicast (revisited and finished)
- *	- Avoid reset in set_multicast_list (a really big hack)
- *	  if somebody could apply this code for other i82586 based driver...
- *	- Share on board memory 75% RU / 25% CU (instead of 50/50)
+ *	- avoid reset in set_multicast_list (a really big hack)
+ *	  if somebody could apply this code for other i82586 based drivers
+ *	- share onboard memory 75% RU and 25% CU (instead of 50/50)
  *
- * Changes made for release in 2.1.15 :
- * ----------------------------------
- *	- Change the detection code for multi manufacturer code support
+ * Changes made for release in 2.1.15:
+ * -----------------------------------
+ *	- change the detection code for multi manufacturer code support
  *
- * Changes made for release in 2.1.17 :
- * ----------------------------------
- *	- Update to wireless extensions changes
- *	- Silly bug in card initial configuration (psa_conf_status)
+ * Changes made for release in 2.1.17:
+ * -----------------------------------
+ *	- update to wireless extensions changes
+ *	- silly bug in card initial configuration (psa_conf_status)
  *
- * Changes made for release in 2.1.27 & 2.0.30 :
- * -------------------------------------------
- *	- Small bug in debug code (probably not the last one...)
- *	- Remove extern kerword for wavelan_probe()
- *	- Level threshold is now a standard wireless extension (version 4 !)
+ * Changes made for release in 2.1.27 & 2.0.30:
+ * --------------------------------------------
+ *	- small bug in debug code (probably not the last one...)
+ *	- remove extern keyword for wavelan_probe()
+ *	- level threshold is now a standard wireless extension (version 4 !)
  *	- modules parameters types (new module interface)
  *
- * Changes made for release in 2.1.36 :
- * ----------------------------------
+ * Changes made for release in 2.1.36:
+ * -----------------------------------
  *	- byte count stats (courtesy of David Hinds)
- *	- Remove dev_tint stuff (courtesy of David Hinds)
- *	- Encryption setting from Brent Elphick (thanks a lot !)
+ *	- remove dev_tint stuff (courtesy of David Hinds)
+ *	- encryption setting from Brent Elphick (thanks a lot!)
  *	- 'ioaddr' to 'u_long' for the Alpha (thanks to Stanislav Sinyagin)
  *
- * Wishes & dreams :
- * ---------------
- *	- Roaming
+ * Wishes & dreams:
+ * ----------------
+ *	- roaming
  */
 
 /***************************** INCLUDES *****************************/
@@ -309,52 +308,52 @@
 
 #include <linux/wireless.h>		/* Wireless extensions */
 
-/* Wavelan declarations */
+/* WaveLAN declarations */
 #include	"i82586.h"
 #include	"wavelan.h"
 
 /****************************** DEBUG ******************************/
 
-#undef DEBUG_MODULE_TRACE	/* Module insertion/removal */
-#undef DEBUG_CALLBACK_TRACE	/* Calls made by Linux */
-#undef DEBUG_INTERRUPT_TRACE	/* Calls to handler */
-#undef DEBUG_INTERRUPT_INFO	/* type of interrupt & so on */
+#undef DEBUG_MODULE_TRACE	/* module insertion/removal */
+#undef DEBUG_CALLBACK_TRACE	/* calls made by Linux */
+#undef DEBUG_INTERRUPT_TRACE	/* calls to handler */
+#undef DEBUG_INTERRUPT_INFO	/* type of interrupt and so on */
 #define DEBUG_INTERRUPT_ERROR	/* problems */
-#undef DEBUG_CONFIG_TRACE	/* Trace the config functions */
-#undef DEBUG_CONFIG_INFO	/* What's going on... */
-#define DEBUG_CONFIG_ERRORS	/* Errors on configuration */
-#undef DEBUG_TX_TRACE		/* Transmission calls */
-#undef DEBUG_TX_INFO		/* Header of the transmited packet */
+#undef DEBUG_CONFIG_TRACE	/* Trace the config functions. */
+#undef DEBUG_CONFIG_INFO	/* what's going on */
+#define DEBUG_CONFIG_ERRORS	/* errors on configuration */
+#undef DEBUG_TX_TRACE		/* transmission calls */
+#undef DEBUG_TX_INFO		/* header of the transmitted packet */
 #define DEBUG_TX_ERROR		/* unexpected conditions */
-#undef DEBUG_RX_TRACE		/* Transmission calls */
-#undef DEBUG_RX_INFO		/* Header of the transmited packet */
+#undef DEBUG_RX_TRACE		/* transmission calls */
+#undef DEBUG_RX_INFO		/* header of the transmitted packet */
 #define DEBUG_RX_ERROR		/* unexpected conditions */
-#undef DEBUG_PACKET_DUMP	16	/* Dump packet on the screen */
-#undef DEBUG_IOCTL_TRACE	/* Misc call by Linux */
-#undef DEBUG_IOCTL_INFO		/* Various debug info */
-#define DEBUG_IOCTL_ERROR	/* What's going wrong */
-#define DEBUG_BASIC_SHOW	/* Show basic startup info */
-#undef DEBUG_VERSION_SHOW	/* Print version info */
-#undef DEBUG_PSA_SHOW		/* Dump psa to screen */
-#undef DEBUG_MMC_SHOW		/* Dump mmc to screen */
-#undef DEBUG_SHOW_UNUSED	/* Show also unused fields */
-#undef DEBUG_I82586_SHOW	/* Show i82586 status */
-#undef DEBUG_DEVICE_SHOW	/* Show device parameters */
-
-/* Options : */
-#define USE_PSA_CONFIG		/* Use info from the PSA */
-#define IGNORE_NORMAL_XMIT_ERRS	/* Don't bother with normal conditions */
-#undef STRUCT_CHECK		/* Verify padding of structures */
-#undef PSA_CRC			/* Check CRC in PSA */
-#undef OLDIES			/* Old code (to redo) */
-#undef RECORD_SNR		/* To redo */
-#undef EEPROM_IS_PROTECTED	/* Doesn't seem to be necessary */
-#define MULTICAST_AVOID		/* Avoid extra multicast (I'm sceptical) */
-
-#ifdef WIRELESS_EXT	/* If wireless extension exist in the kernel */
-/* Warning : these stuff will slow down the driver... */
-#define WIRELESS_SPY		/* Enable spying addresses */
-#undef HISTOGRAM		/* Enable histogram of sig level... */
+#undef DEBUG_PACKET_DUMP	16	/* Dump packet on the screen. */
+#undef DEBUG_IOCTL_TRACE	/* misc. call by Linux */
+#undef DEBUG_IOCTL_INFO		/* various debugging info */
+#define DEBUG_IOCTL_ERROR	/* what's going wrong */
+#define DEBUG_BASIC_SHOW	/* Show basic startup info. */
+#undef DEBUG_VERSION_SHOW	/* Print version info. */
+#undef DEBUG_PSA_SHOW		/* Dump PSA to screen. */
+#undef DEBUG_MMC_SHOW		/* Dump mmc to screen. */
+#undef DEBUG_SHOW_UNUSED	/* Show unused fields too. */
+#undef DEBUG_I82586_SHOW	/* Show i82586 status. */
+#undef DEBUG_DEVICE_SHOW	/* Show device parameters. */
+
+/* Options */
+#define USE_PSA_CONFIG		/* Use info from the PSA. */
+#define IGNORE_NORMAL_XMIT_ERRS	/* Don't bother with normal conditions. */
+#undef STRUCT_CHECK		/* Verify padding of structures. */
+#undef PSA_CRC			/* Check CRC in PSA. */
+#undef OLDIES			/* old code (to redo) */
+#undef RECORD_SNR		/* to redo */
+#undef EEPROM_IS_PROTECTED	/* doesn't seem to be necessary */
+#define MULTICAST_AVOID		/* Avoid extra multicast (I'm sceptical). */
+
+#ifdef WIRELESS_EXT	/* If wireless extensions exist in the kernel */
+/* Warning:  this stuff will slow down the driver. */
+#define WIRELESS_SPY		/* Enable spying addresses. */
+#undef HISTOGRAM		/* Enable histogram of signal level. */
 #endif
 
 /************************ CONSTANTS & MACROS ************************/
@@ -364,7 +363,7 @@
 #endif
 
 /* Watchdog temporisation */
-#define	WATCHDOG_JIFFIES	32	/* TODO: express in HZ. */
+#define	WATCHDOG_JIFFIES	32	/* TODO:  express in HZ. */
 
 /* Macro to get the number of elements in an array */
 #define	NELS(a)				(sizeof(a) / sizeof(a[0]))
@@ -396,23 +395,23 @@
 /*
  * Static specific data for the interface.
  *
- * For each network interface, Linux keep data in two structure. "device"
- * keep the generic data (same format for everybody) and "net_local" keep
- * the additional specific data.
+ * For each network interface, Linux keeps data in two structures:  "device"
+ * keeps the generic data (same format for everybody) and "net_local" keeps
+ * additional specific data.
  * Note that some of this specific data is in fact generic (en_stats, for
  * example).
  */
 struct net_local
 {
-  net_local *	next;		/* Linked list of the devices */
-  device *	dev;		/* Reverse link... */
+  net_local *	next;		/* linked list of the devices */
+  device *	dev;		/* reverse link */
   en_stats	stats;		/* Ethernet interface statistics */
-  int		nresets;	/* Number of hw resets */
-  u_char	reconfig_82586;	/* Need to reconfigure the controler */
-  u_char	promiscuous;	/* Promiscuous mode */
-  int		mc_count;	/* Number of multicast addresses */
-  timer_list	watchdog;	/* To avoid blocking state */
-  u_short	hacr;		/* Current host interface state */
+  int		nresets;	/* number of hardware resets */
+  u_char	reconfig_82586;	/* We need to reconfigure the controller. */
+  u_char	promiscuous;	/* promiscuous mode */
+  int		mc_count;	/* number of multicast addresses */
+  timer_list	watchdog;	/* to avoid blocking state */
+  u_short	hacr;		/* current host interface state */
 
   int		tx_n_in_use;
   u_short	rx_head;
@@ -421,82 +420,83 @@
   u_short	tx_first_in_use;
 
 #ifdef WIRELESS_EXT
-  iw_stats	wstats;		/* Wireless specific stats */
+  iw_stats	wstats;		/* Wireless-specific statistics */
 #endif
 
 #ifdef WIRELESS_SPY
-  int		spy_number;		/* Number of addresses to spy */
-  mac_addr	spy_address[IW_MAX_SPY];	/* The addresses to spy */
-  iw_qual	spy_stat[IW_MAX_SPY];		/* Statistics gathered */
+  int		spy_number;			/* number of addresses to spy */
+  mac_addr	spy_address[IW_MAX_SPY];	/* the addresses to spy */
+  iw_qual	spy_stat[IW_MAX_SPY];		/* statistics gathered */
 #endif	/* WIRELESS_SPY */
+
 #ifdef HISTOGRAM
-  int		his_number;		/* Number of intervals */
-  u_char	his_range[16];		/* Boundaries of interval ]n-1; n] */
-  u_long	his_sum[16];		/* Sum in interval */
+  int		his_number;		/* number of intervals */
+  u_char	his_range[16];		/* boundaries of interval ]n-1; n] */
+  u_long	his_sum[16];		/* sum in interval */
 #endif	/* HISTOGRAM */
 };
 
 /**************************** PROTOTYPES ****************************/
 
-/* ----------------------- MISC SUBROUTINES ------------------------ */
+/* ----------------------- MISC. SUBROUTINES ------------------------ */
 static inline unsigned long	/* flags */
 	wv_splhi(void);		/* Disable interrupts */
 static inline void
-	wv_splx(unsigned long);	/* ReEnable interrupts : flags */
+	wv_splx(unsigned long);	/* Enable interrupts:  flags */
 static u_char
 	wv_irq_to_psa(int);
 static int
 	wv_psa_to_irq(u_char);
 /* ------------------- HOST ADAPTER SUBROUTINES ------------------- */
 static inline u_short		/* data */
-	hasr_read(u_long);	/* Read the host interface : base address */
+	hasr_read(u_long);	/* Read the host interface:  base address */
 static inline void
-	hacr_write(u_long,	/* Write to host interface : base address */
+	hacr_write(u_long,	/* Write to host interface:  base address */
 		   u_short),	/* data */
 	hacr_write_slow(u_long,
 		   u_short),
 	set_chan_attn(u_long,	/* ioaddr */
-		      u_short),	/* hacr */
+		      u_short),	/* hacr   */
 	wv_hacr_reset(u_long),	/* ioaddr */
 	wv_16_off(u_long,	/* ioaddr */
-		  u_short),	/* hacr */
+		  u_short),	/* hacr   */
 	wv_16_on(u_long,	/* ioaddr */
-		 u_short),	/* hacr */
+		 u_short),	/* hacr   */
 	wv_ints_off(device *),
 	wv_ints_on(device *);
 /* ----------------- MODEM MANAGEMENT SUBROUTINES ----------------- */
 static void
-	psa_read(u_long,	/* Read the Parameter Storage Area */
+	psa_read(u_long,	/* Read the Parameter Storage Area. */
 		 u_short,	/* hacr */
 		 int,		/* offset in PSA */
 		 u_char *,	/* buffer to fill */
 		 int),		/* size to read */
-	psa_write(u_long, 	/* Write to the PSA */
+	psa_write(u_long, 	/* Write to the PSA. */
 		  u_short,	/* hacr */
-		  int,		/* Offset in psa */
-		  u_char *,	/* Buffer in memory */
-		  int);		/* Length of buffer */
+		  int,		/* offset in PSA */
+		  u_char *,	/* buffer in memory */
+		  int);		/* length of buffer */
 static inline void
-	mmc_out(u_long,		/* Write 1 byte to the Modem Manag Control */
+	mmc_out(u_long,		/* Write 1 byte to the Modem Manag Control. */
 		u_short,
 		u_char),
-	mmc_write(u_long,	/* Write n bytes to the MMC */
+	mmc_write(u_long,	/* Write n bytes to the MMC. */
 		  u_char,
 		  u_char *,
 		  int);
-static inline u_char		/* Read 1 byte from the MMC */
+static inline u_char		/* Read 1 byte from the MMC. */
 	mmc_in(u_long,
 	       u_short);
 static inline void
-	mmc_read(u_long,	/* Read n bytes from the MMC */
+	mmc_read(u_long,	/* Read n bytes from the MMC. */
 		 u_char,
 		 u_char *,
 		 int),
-	fee_wait(u_long,	/* Wait for frequency EEprom : base address */
-		 int,		/* Base delay to wait for */
-		 int);		/* Number of time to wait */
+	fee_wait(u_long,	/* Wait for frequency EEPROM:  base address */
+		 int,		/* base delay to wait for */
+		 int);		/* time to wait */
 static void
-	fee_read(u_long,	/* Read the frequency EEprom : base address */
+	fee_read(u_long,	/* Read the frequency EEPROM:  base address */
 		 u_short,	/* destination offset */
 		 u_short *,	/* data buffer */
 		 int);		/* number of registers */
@@ -539,60 +539,59 @@
 	wavelan_set_multicast_list(device *);
 /* ----------------------- PACKET RECEPTION ----------------------- */
 static inline void
-	wv_packet_read(device *,	/* Read a packet from a frame */
+	wv_packet_read(device *,	/* Read a packet from a frame. */
 		       u_short,
 		       int),
-	wv_receive(device *);	/* Read all packets waiting */
+	wv_receive(device *);	/* Read all packets waiting. */
 /* --------------------- PACKET TRANSMISSION --------------------- */
 static inline void
-	wv_packet_write(device *,	/* Write a packet to the Tx buffer */
+	wv_packet_write(device *,	/* Write a packet to the Tx buffer. */
 			void *,
 			short);
 static int
-	wavelan_packet_xmit(struct sk_buff *,	/* Send a packet */
+	wavelan_packet_xmit(struct sk_buff *,	/* Send a packet. */
 			    device *);
 /* -------------------- HARDWARE CONFIGURATION -------------------- */
 static inline int
-	wv_mmc_init(device *),		/* Initialize the modem */
-	wv_ru_start(device *),		/* Start the i82586 receiver unit */
-	wv_cu_start(device *),		/* Start the i82586 command unit */
-	wv_82586_start(device *);	/* Start the i82586 */
+	wv_mmc_init(device *),		/* Initialize the modem. */
+	wv_ru_start(device *),		/* Start the i82586 receiver unit. */
+	wv_cu_start(device *),		/* Start the i82586 command unit. */
+	wv_82586_start(device *);	/* Start the i82586. */
 static void
-	wv_82586_config(device *);	/* Configure the i82586 */
+	wv_82586_config(device *);	/* Configure the i82586. */
 static inline void
 	wv_82586_stop(device *);
 static int
-	wv_hw_reset(device *),		/* Reset the wavelan hardware */
+	wv_hw_reset(device *),		/* Reset the WaveLAN hardware. */
 	wv_check_ioaddr(u_long,		/* ioaddr */
 			u_char *);	/* mac address (read) */
 /* ---------------------- INTERRUPT HANDLING ---------------------- */
 static void
-	wavelan_interrupt(int,		/* Interrupt handler */
+	wavelan_interrupt(int,		/* interrupt handler */
 			  void *,
 			  struct pt_regs *);
 static void
-	wavelan_watchdog(u_long);	/* Transmission watchdog */
+	wavelan_watchdog(u_long);	/* transmission watchdog */
 /* ------------------- CONFIGURATION CALLBACKS ------------------- */
 static int
-	wavelan_open(device *),		/* Open the device */
-	wavelan_close(device *),	/* Close the device */
-	wavelan_config(device *);	/* Configure one device */
+	wavelan_open(device *),		/* Open the device. */
+	wavelan_close(device *),	/* Close the device. */
+	wavelan_config(device *);	/* Configure one device. */
 extern int
-	wavelan_probe(device *);	/* See Space.c */
+	wavelan_probe(device *);	/* See Space.c. */
 
 /**************************** VARIABLES ****************************/
 
 /*
- * This is the root of the linked list of wavelan drivers
+ * This is the root of the linked list of WaveLAN drivers
  * It is use to verify that we don't reuse the same base address
- * for two differents drivers and to make the cleanup when
- * removing the module.
+ * for two different drivers and to clean up when removing the module.
  */
 static net_local *	wavelan_list	= (net_local *) NULL;
 
 /*
- * This table is used to translate the psa value to irq number
- * and vice versa...
+ * This table is used to translate the PSA value to IRQ number
+ * and vice versa.
  */
 static u_char	irqvals[]	=
 {
@@ -603,7 +602,7 @@
 };
 
 /*
- * Table of the available i/o address (base address) for wavelan
+ * Table of the available I/O addresses (base addresses) for WaveLAN
  */
 static unsigned short	iobase[]	=
 {
@@ -612,7 +611,7 @@
    * controllers.
    * Leave out the others too -- we will always use 0x390 and leave
    * 0x300 for the Ethernet device.
-   * Jean II : 0x3E0 is really fine as well...
+   * Jean II:  0x3E0 is fine as well.
    */
   0x300, 0x390, 0x3E0, 0x3C0
 #endif	/* 0 */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov