diff options
author | msmith <msmith@FreeBSD.org> | 1997-05-22 08:50:14 +0000 |
---|---|---|
committer | msmith <msmith@FreeBSD.org> | 1997-05-22 08:50:14 +0000 |
commit | 8b8b690675bc37aba622ecd7dc1cd4cd90a3ee9b (patch) | |
tree | 7180c5373d826ce5050eb56837b66b37c66cc901 /sys/i386/include/if_wl_wavelan.h | |
parent | c15db4fd91061e0497ef762f7069b54aedeaf598 (diff) | |
download | FreeBSD-src-8b8b690675bc37aba622ecd7dc1cd4cd90a3ee9b.zip FreeBSD-src-8b8b690675bc37aba622ecd7dc1cd4cd90a3ee9b.tar.gz |
Add 'wl' Wavelan driver.
Obtained from: Jim Binkley <jrb@cs.pdx.edu>
Diffstat (limited to 'sys/i386/include/if_wl_wavelan.h')
-rw-r--r-- | sys/i386/include/if_wl_wavelan.h | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/sys/i386/include/if_wl_wavelan.h b/sys/i386/include/if_wl_wavelan.h new file mode 100644 index 0000000..b69e257 --- /dev/null +++ b/sys/i386/include/if_wl_wavelan.h @@ -0,0 +1,139 @@ +/* + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain all copyright + * notices, this list of conditions and the following disclaimer. + * 2. The names of the authors may not be used to endorse or promote products + * derived from this software withough specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +#ifndef _CHIPS_WAVELAN_H +#define _CHIPS_WAVELAN_H + +/* This file contains definitions that are common for all versions of + * the NCR WaveLAN + */ + +#define WAVELAN_ADDR_SIZE 6 /* Size of a MAC address */ +#define WAVELAN_MTU 1500 /* Maximum size of Wavelan packet */ + +/* Modem Management Controler write commands */ + +#define MMC_LOOPT_SEL 0x10 +#define MMC_JABBER_ENABLE 0x11 +#define MMC_FREEZE 0x12 +#define MMC_ANTEN_SEL 0x13 +#define MMC_IFS 0x14 +#define MMC_MOD_DELAY 0x15 +#define MMC_JAM_TIME 0x16 +#define MMC_THR_PRE_SET 0x18 +#define MMC_DECAY_PRM 0x19 +#define MMC_DECAY_UPDAT_PRM 0x1a +#define MMC_QUALITY_THR 0x1b +#define MMC_NETW_ID_L 0x1c +#define MMC_NETW_ID_H 0x1d +#define MMC_MODE_SEL 0x1e +#define MMC_ENCR_KEY 0x00 /* to 0x07 */ +#define MMC_ENCR_ENABLE 0x08 +#define MMC_DES_IO_INVERT 0x0a + +/* MMC read register names */ + +#define MMC_DCE_STATUS 0x10 +#define MMC_CORRECT_NWID_L 0x14 +#define MMC_CORRECT_NWID_H 0x15 +#define MMC_WRONG_NWID_L 0x16 +#define MMC_WRONG_NWID_H 0x17 +#define MMC_THR_PRE_SET 0x18 +#define MMC_SIGNAL_LVL 0x19 +#define MMC_SILENCE_LVL 0x1a +#define MMC_SIGN_QUAL 0x1b +#define MMC_DES_AVAIL 0x09 + + +#endif _CHIPS_WAVELAN_H + +/* additional socket ioctl params for wl card + * see sys/sockio.h for numbers. The 2nd params here + * must be greater than any values in sockio.h + */ + +#define SIOCGWLCNWID _IOWR('i', 60, struct ifreq) /* get wlan current nwid */ +#define SIOCSWLCNWID _IOWR('i', 61, struct ifreq) /* set wlan current nwid */ +#define SIOCGWLPSA _IOWR('i', 62, struct ifreq) /* get wlan PSA (all) */ +#define SIOCSWLPSA _IOWR('i', 63, struct ifreq) /* set wlan PSA (all) */ + +/* PSA address definitions */ +#define WLPSA_ID 0x0 /* ID byte (0 for ISA, 0x14 for MCA) */ +#define WLPSA_IO1 0x1 /* I/O address 1 */ +#define WLPSA_IO2 0x2 /* I/O address 2 */ +#define WLPSA_IO3 0x3 /* I/O address 3 */ +#define WLPSA_BR1 0x4 /* Bootrom address 1 */ +#define WLPSA_BR2 0x5 /* Bootrom address 2 */ +#define WLPSA_BR3 0x6 /* Bootrom address 3 */ +#define WLPSA_HWCONF 0x7 /* HW config bits */ +#define WLPSA_IRQNO 0x8 /* IRQ value */ +#define WLPSA_UNIMAC 0x10 /* Universal MAC address */ +#define WLPSA_LOCALMAC 0x16 /* Locally configured MAC address */ +#define WLPSA_MACSEL 0x1c /* MAC selector */ +#define WLPSA_COMPATNO 0x1d /* compatability number */ +#define WLPSA_THRESH 0x1e /* RF modem threshold preset */ +#define WLPSA_FEATSEL 0x1f /* feature select */ +#define WLPSA_SUBBAND 0x20 /* subband selector */ +#define WLPSA_QUALTHRESH 0x21 /* RF modem quality threshold preset */ +#define WLPSA_HWVERSION 0x22 /* hardware version indicator */ +#define WLPSA_NWID 0x23 /* network ID */ +#define WLPSA_NWIDENABLE 0x24 /* network ID enable */ +#define WLPSA_SECURITY 0x25 /* datalink security enable */ +#define WLPSA_DESKEY 0x26 /* datalink security DES key */ +#define WLPSA_DBWIDTH 0x2f /* databus width select */ +#define WLPSA_CALLCODE 0x30 /* call code (japan only) */ +#define WLPSA_CONFIGURED 0x3c /* configuration status */ +#define WLPSA_CRCLOW 0x3d /* CRC-16 (lowbyte) */ +#define WLPSA_CRCHIGH 0x3e /* (highbyte) */ +#define WLPSA_CRCOK 0x3f /* CRC OK flag */ + +/* + * signal strength cache + * + * driver (wlp only at the moment) keeps cache of last + * IP (only) packets to arrive including signal strength info. + * daemons may read this with kvm. See if_wlp.c for globals + * that may be accessed through kvm. + * + * Each entry in the w_sigcache has a unique macsrc and age. + * Each entry is identified by its macsrc field. + * Age of the packet is identified by its age field. + */ + +#define MAXCACHEITEMS 10 +#ifndef INT_MAX +#define INT_MAX 2147483647 +#endif +#define MAX_AGE (INT_MAX - MAXCACHEITEMS) + +/* signal is 7 bits, 0..63, although it doesn't seem to get to 63. + * silence is 7 bits, 0..63 + * quality is 4 bits, 0..15 + */ +struct w_sigcache { + char macsrc[6]; /* unique MAC address for entry */ + int ipsrc; /* ip address associated with packet */ + int signal; /* signal strength of the packet */ + int silence; /* silence of the packet */ + int quality; /* quality of the packet */ + int age; /* packet has unique age between 1 to MAX_AGE - 1 */ +}; + |