diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1998-08-25 09:12:35 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1998-08-25 09:12:35 +0000 |
commit | c7fc24dc4420057f103afe8fc64524ebc25c5d37 (patch) | |
tree | 3682407a599b8f9f03fc096298134cafba1c9b2f /drivers/net/wavelan.p.h | |
parent | 1d793fade8b063fde3cf275bf1a5c2d381292cd9 (diff) |
o Merge with Linux 2.1.116.
o New Newport console code.
o New G364 console code.
Diffstat (limited to 'drivers/net/wavelan.p.h')
-rw-r--r-- | drivers/net/wavelan.p.h | 521 |
1 files changed, 260 insertions, 261 deletions
diff --git a/drivers/net/wavelan.p.h b/drivers/net/wavelan.p.h index 18320dcc4..251f2b98e 100644 --- a/drivers/net/wavelan.p.h +++ b/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... + * 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 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...). + * 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 know how to use this driver, read the NET3 HOWTO. - * If you want to exploit the many other fonctionalities, look comments - * in the code... + * 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 - * - * Changes made in second pre-release : - * ---------------------------------- - * - Cleanup init code (probe & module init) - * - Better multi device support (module) - * - name assignement (module) + * - many other minor details and cleanups * - * 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.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.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 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 @@ static const char *version = "wavelan.c : v16 (wireless extensions) 17/4/97\n"; #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 @@ typedef u_char mac_addr[WAVELAN_ADDR_SIZE]; /* Hardware address */ /* * 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 @@ struct net_local 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 @@ static void 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 @@ static u_char irqvals[] = }; /* - * 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 @@ static unsigned short iobase[] = * 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 */ |