The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/i386/include/if_wl_wavelan.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* $FreeBSD: releng/12.0/sys/i386/include/if_wl_wavelan.h 326260 2017-11-27 15:08:52Z pfg $ */
    2 /*-
    3  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
    4  *
    5  * Redistribution and use in source and binary forms, with or without
    6  * modification, are permitted provided that the following conditions
    7  * are met:
    8  * 1. Redistributions of source code must retain all copyright 
    9  *    notices, this list of conditions and the following disclaimer.
   10  * 2. The names of the authors may not be used to endorse or promote products
   11  *    derived from this software without specific prior written permission
   12  *
   13  * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
   14  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   15  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   16  * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
   17  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   18  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   19  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
   20  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   21  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   22  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   23  * 
   24  */
   25 #ifndef _CHIPS_WAVELAN_H
   26 #define _CHIPS_WAVELAN_H
   27 
   28 /* This file contains definitions that are common for all versions of
   29  * the NCR WaveLAN
   30  */
   31 
   32 #define WAVELAN_ADDR_SIZE       6       /* Size of a MAC address */
   33 #define WAVELAN_MTU             1500    /* Maximum size of Wavelan packet */
   34 
   35 /* Modem Management Controler write commands */
   36 #define MMC_ENCR_KEY            0x00    /* to 0x07 */
   37 #define MMC_ENCR_ENABLE         0x08
   38 #define MMC_DES_IO_INVERT       0x0a
   39 #define MMC_LOOPT_SEL           0x10
   40 #define MMC_JABBER_ENABLE       0x11
   41 #define MMC_FREEZE              0x12
   42 #define MMC_ANTEN_SEL           0x13
   43 #define MMC_IFS                 0x14
   44 #define MMC_MOD_DELAY           0x15
   45 #define MMC_JAM_TIME            0x16
   46 #define MMC_THR_PRE_SET         0x18
   47 #define MMC_DECAY_PRM           0x19
   48 #define MMC_DECAY_UPDAT_PRM     0x1a
   49 #define MMC_QUALITY_THR         0x1b
   50 #define MMC_NETW_ID_L           0x1c
   51 #define MMC_NETW_ID_H           0x1d
   52 #define MMC_MODE_SEL            0x1e
   53 #define MMC_EECTRL              0x20    /* 2.4 Gz */
   54 #define MMC_EEADDR              0x21    /* 2.4 Gz */
   55 #define MMC_EEDATAL             0x22    /* 2.4 Gz */
   56 #define MMC_EEDATAH             0x23    /* 2.4 Gz */
   57 #define MMC_ANALCTRL            0x24    /* 2.4 Gz */
   58 
   59 /* fields in MMC registers that relate to EEPROM in WaveMODEM daughtercard */
   60 #define MMC_EECTRL_EEPRE        0x10    /* 2.4 Gz EEPROM Protect Reg Enable */
   61 #define MMC_EECTRL_DWLD         0x08    /* 2.4 Gz EEPROM Download Synths   */
   62 #define MMC_EECTRL_EEOP         0x07    /* 2.4 Gz EEPROM Opcode mask     */
   63 #define MMC_EECTRL_EEOP_READ    0x06    /* 2.4 Gz EEPROM Read Opcode     */
   64 #define MMC_EEADDR_CHAN         0xf0    /* 2.4 Gz EEPROM Channel # mask  */
   65 #define MMC_EEADDR_WDCNT        0x0f    /* 2.4 Gz EEPROM DNLD WordCount-1 */
   66 #define MMC_ANALCTRL_ANTPOL     0x02    /* 2.4 Gz Antenna Polarity mask  */
   67 #define MMC_ANALCTRL_EXTANT     0x01    /* 2.4 Gz External Antenna mask  */
   68 
   69 /* MMC read register names */
   70 #define MMC_DCE_STATUS          0x10
   71 #define MMC_CORRECT_NWID_L      0x14
   72 #define MMC_CORRECT_NWID_H      0x15
   73 #define MMC_WRONG_NWID_L        0x16
   74 #define MMC_WRONG_NWID_H        0x17
   75 #define MMC_THR_PRE_SET         0x18
   76 #define MMC_SIGNAL_LVL          0x19
   77 #define MMC_SILENCE_LVL         0x1a
   78 #define MMC_SIGN_QUAL           0x1b
   79 #define MMC_DES_AVAIL           0x09
   80 #define MMC_EECTRLstat          0x20    /* 2.4 Gz  EEPROM r/w/dwld status */
   81 #define MMC_EEDATALrv           0x22    /* 2.4 Gz  EEPROM read value      */
   82 #define MMC_EEDATAHrv           0x23    /* 2.4 Gz  EEPROM read value      */
   83 
   84 /* fields in MMC registers that relate to EEPROM in WaveMODEM daughtercard */
   85 #define MMC_EECTRLstat_ID24     0xf0    /* 2.4 Gz  =A0 rev-A, =B0 rev-B   */
   86 #define MMC_EECTRLstat_DWLD     0x08    /* 2.4 Gz  Synth/Tx-Pwr DWLD busy */
   87 #define MMC_EECTRLstat_EEBUSY   0x04    /* 2.4 Gz  EEPROM busy            */
   88 
   89 /* additional socket ioctl params for wl card   
   90  * see sys/sockio.h for numbers.  The 2nd params here
   91  * must be greater than any values in sockio.h
   92  */
   93 
   94 #define SIOCGWLCNWID    _IOWR('i', 60, struct ifreq)    /* get wlan current nwid */
   95 #define SIOCSWLCNWID    _IOWR('i', 61, struct ifreq)    /* set wlan current nwid */
   96 #define SIOCGWLPSA      _IOWR('i', 62, struct ifreq)    /* get wlan PSA (all) */
   97 #define SIOCSWLPSA      _IOWR('i', 63, struct ifreq)    /* set wlan PSA (all) */
   98 #define SIOCDWLCACHE    _IOW('i',  64, struct ifreq)    /* clear SNR cache    */
   99 #define SIOCSWLTHR      _IOW('i',  65, struct ifreq)    /* set new quality threshold */
  100 #define SIOCGWLEEPROM   _IOWR('i', 66, struct ifreq)    /* get modem EEPROM   */
  101 #define SIOCGWLCACHE    _IOWR('i', 67, struct ifreq)    /* get SNR cache */
  102 #define SIOCGWLCITEM    _IOWR('i', 68, struct ifreq)    /* get cache element count */
  103 
  104 /* PSA address definitions */
  105 #define WLPSA_ID                0x0     /* ID byte (0 for ISA, 0x14 for MCA) */
  106 #define WLPSA_IO1               0x1     /* I/O address 1 */
  107 #define WLPSA_IO2               0x2     /* I/O address 2 */
  108 #define WLPSA_IO3               0x3     /* I/O address 3 */
  109 #define WLPSA_BR1               0x4     /* Bootrom address 1 */
  110 #define WLPSA_BR2               0x5     /* Bootrom address 2 */
  111 #define WLPSA_BR3               0x6     /* Bootrom address 3 */
  112 #define WLPSA_HWCONF            0x7     /* HW config bits */
  113 #define WLPSA_IRQNO             0x8     /* IRQ value */
  114 #define WLPSA_UNIMAC            0x10    /* Universal MAC address */
  115 #define WLPSA_LOCALMAC          0x16    /* Locally configured MAC address */
  116 #define WLPSA_MACSEL            0x1c    /* MAC selector */
  117 #define WLPSA_COMPATNO          0x1d    /* compatibility number */
  118 #define WLPSA_THRESH            0x1e    /* RF modem threshold preset */
  119 #define WLPSA_FEATSEL           0x1f    /* feature select */
  120 #define WLPSA_SUBBAND           0x20    /* subband selector */
  121 #define WLPSA_QUALTHRESH        0x21    /* RF modem quality threshold preset */
  122 #define WLPSA_HWVERSION         0x22    /* hardware version indicator */
  123 #define WLPSA_NWID              0x23    /* network ID */
  124 #define WLPSA_NWIDENABLE        0x24    /* network ID enable */
  125 #define WLPSA_SECURITY          0x25    /* datalink security enable */
  126 #define WLPSA_DESKEY            0x26    /* datalink security DES key */
  127 #define WLPSA_DBWIDTH           0x2f    /* databus width select */
  128 #define WLPSA_CALLCODE          0x30    /* call code (japan only) */
  129 #define WLPSA_CONFIGURED        0x3c    /* configuration status */
  130 #define WLPSA_CRCLOW            0x3d    /* CRC-16 (lowbyte) */
  131 #define WLPSA_CRCHIGH           0x3e    /*        (highbyte) */
  132 #define WLPSA_CRCOK             0x3f    /* CRC OK flag */
  133 
  134 #define WLPSA_COMPATNO_WL24B    0x04    /* 2.4 Gz WaveMODEM ISA rev-B  */
  135 
  136 /* 
  137  * signal strength cache
  138  *
  139  * driver (wlp only at the moment) keeps cache of last
  140  * IP (only) packets to arrive including signal strength info.
  141  * daemons may read this with kvm.  See if_wlp.c for globals
  142  * that may be accessed through kvm.
  143  *
  144  * Each entry in the w_sigcache has a unique macsrc and age.
  145  * Each entry is identified by its macsrc field.
  146  * Age of the packet is identified by its age field.
  147  */
  148 
  149 #define  MAXCACHEITEMS  10
  150 #ifndef INT_MAX
  151 #define        INT_MAX         2147483647
  152 #endif
  153 #define  MAX_AGE        (INT_MAX - MAXCACHEITEMS)
  154 
  155 /* signal is 7 bits, 0..63, although it doesn't seem to get to 63.
  156  * silence is 7 bits, 0..63
  157  * quality is 4 bits, 0..15
  158  */
  159 struct w_sigcache {
  160         char   macsrc[6]; /* unique MAC address for entry */
  161         int    ipsrc;     /* ip address associated with packet */
  162         int    signal;    /* signal strength of the packet */
  163         int    silence;   /* silence of the packet */
  164         int    quality;   /* quality of the packet */
  165         int    snr;       /* packet has unique age between 1 to MAX_AGE - 1 */
  166 };
  167 
  168 #endif /* _CHIPS_WAVELAN_H */
  169 

Cache object: 79c5d73308cfa8727dd1a0decf52baf1


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.