📄 wvlan_mdd.h
字号:
/* This file is part of the Hardware Control Functions Light (HCF-light) library to control the Lucent Technologies WaveLAN/IEEE Network I/F Card. The HCF is the implementation of the Wireless Connection I/F (WCI). The HCF-light files are a subset of the HCF files. The complete set offers a number of additional facilities, e.g. firmware download, Etherner-II encapsulation, additional diagnostic facilities, ASSERT logic to support debugging, 802.11 support, Configuration Management. This complete set is explicitely not in the Public Domain but can be made available under certain restriction. (see the pointer below for support) The HCF-light files are free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. At the time of this writing, you can request for support at: betasupport@wavelan.com Documentation is expected to be available in the week of 8 Februari 1999*/#ifndef MDD_H#define MDD_H 1/*************************************************************************************************************** FILE : mdd.h** DATE : 2001/08/17 14:26:26 1.5** AUTHOR : Nico Valster** DESC : Definitions and Prototypes for HCF, MSF, UIL as well as USF sources**** Implementation Notes* - Typ rather than type is used as field names in structures like CFG_CIS_STRCT because type leads to conflicts with MASM when the H-file is converted to an INC-file***************************************************************************************************************Instructions to convert MDD.H to MDD.INC by means of H2INCUse a command line which defines the specific macros and command line optionsneeded to build the C-part, e.g. for the DOS ODI driver `h2inc /C /Ni /Zp /Zn mdd mdd.h`*************************************************************************************************************** COPYRIGHT (c) 1998 by Lucent Technologies. All Rights Reserved.*************************************************************************************************************//****************************************************************************wvlan_mdd.h,vRevision 1.5 2001/08/17 14:26:26 root*** empty log message ***Revision 1.4 2000/07/14 23:27:51 root*** empty log message ***Revision 1.3 2000/02/28 23:09:38 root*** empty log message ***Revision 1.2 2000/01/06 23:30:53 root*** empty log message *** * * Rev 1.0 02 Feb 1999 14:32:36 NVALST * Initial revision.Revision 1.3 1999/02/01 22:58:35 nico*** empty log message ***Revision 1.2 1999/02/01 21:01:41 nico*** empty log message ***Revision 1.1 1999/01/30 19:24:39 nicoInitial revisionRevision 1.1 1999/01/30 19:07:57 nicoInitial revision * * Rev 1.110 29 Jan 1999 15:52:44 NVALST * intermediate, maybe working but seems to need two times to load in * light-version * * Rev 2.12 29 Jan 1999 10:48:46 NVALST * * Rev 1.108 28 Jan 1999 14:43:24 NVALST * intermediate, once more correction of loop in hcf_service_nic + download * passed to Marc * * Rev 2.11 27 Jan 1999 16:57:42 NVALST * * Rev 1.107 27 Jan 1999 13:53:24 NVALST * intermediate, once more correction of loop in hcf_service_nic * * Rev 1.106 26 Jan 1999 16:42:46 NVALST * intermediate, corrected loop in hcf_service_nic (which was as result of a * walkthrough, changed from a bug without consequences into one with consequences * * Rev 1.105 25 Jan 1999 14:24:48 NVALST * intermediate, hopefully suitable for release * * Rev 1.104 22 Jan 1999 16:59:34 NVALST * intermediate, minor corrections + some HCF-L stuff * * Rev 1.103 15 Jan 1999 15:14:46 NVALST * intermediate, deposited as HCF2.10 * * Rev 2.10 15 Jan 1999 14:54:36 NVALST * *****************************************************************************//****************************************************************************** CHANGE HISTORY* 961018 - NV Original Entry, split of from HCF.H*************************************************************************************************************//****************************** M A C R O S ********************************************************//* min and max macros */#if !defined(_max)#define _max(a,b) (((a) > (b)) ? (a) : (b))#endif#if !defined(_min)#define _min(a,b) (((a) < (b)) ? (a) : (b))#endif/*************************************************************************************************************//****************************** General define ***************************************************************/#define MAC_ADDR_SIZE 6#define GROUP_ADDR_SIZE (32 * MAC_ADDR_SIZE)#define STAT_NAME_SIZE 32//IFB field related// IFB_CardStat#define CARD_STAT_PRESENT 0x8000U /* MSF defines card as being present * controls whether hcf-function is allowed to do I/O */#define CARD_STAT_ENABLED 0x4000U // one or more MAC Ports enabled#define CARD_STAT_INI 0x0800U // Hermes Initiliazed// IFB_RxStat#define RX_STAT_ERR 0x0003U //Error mask#define RX_STAT_UNDECR 0x0002U //Non-decryptable encrypted message#define RX_STAT_FCS_ERR 0x0001U //FCS error/****************************** Xxxxxxxx *********************************************************************/enum /*hcf_stat*/ { HCF_FAILURE = 0xFF, /* An (unspecified) failure, 0xFF is choosen to have a non-ubiquitous value * Note that HCF_xxxx errors which can end up in the CFG_DIAG LTV should * never exceed 0xFF, because the high order byte of VAL[0] is reserved * for Hermes errors */ HCF_SUCCESS = 0x00, // 0x00: OK //gap for ODI related status HCF_ERR_DIAG_0 = 0x02, // 0x02: HCF noticed an error after hcf_disable, before diagnose command HCF_ERR_DIAG_1, // 0x03: HCF noticed an error after succesful diagnose command HCF_ERR_TIME_OUT, // 0x04: Expected Hermes event did not occure in expected time HCF_ERR_NO_NIC, // 0x05: card not found (usually yanked away during hcfio_in_string HCF_ERR_BUSY, // 0x06: ;?Inquire cmd while another Inquire in progress HCF_ERR_SEQ_BUG, // 0x07: other cmd than the expected completed, probably HCF-bug HCF_ERR_LEN, // 0x08: buffer size insufficient // - hcf_get_info buffer has a size of 0 or 1 or less than needed // to accomodate all data};#define HCF_INT_PENDING 1 // (ODI initiated) return status of hcf_act( HCF_ACT_INT_OFF )/* hard coded values (e.g. for HCF_ACT_TALLIES and HCF_ACT_INT_OFF) are needed for HCFL */typedef enum { /*hcf_action_cmd*/ /* gap left over by swapping 3 frame mode action with 4 INT_OFF/_ON * CARD_IN/_OUT. This was done to have HCFL default automagically * to HCF_ACT_802_3_PURE * This gap available for future features */ HCF_ACT_SPARE_03, //03 gap available for future features /* DUI code 0x04 -> DON'T EVER MOVE */ /* DUI code 0x05 -> DON'T EVER MOVE */ HCF_ACT_TALLIES = 0x05, //05 Hermes Inquire Tallies (F100) command#if defined HCF_ASSERT HCF_ACT_ASSERT_OFF, //09 de-activate Assert reporting HCF_ACT_ASSERT_ON, //0A activate Assert reporting #else #endif // HCF_ASSERT /* DUI code 0x0B -> DON'T EVER MOVE */ /* DUI code 0x0C -> DON'T EVER MOVE */ HCF_ACT_INT_OFF = 0x0D, //0D Disable Interrupt generation HCF_ACT_INT_ON, //0E Enable Interrupt generation HCF_ACT_CARD_IN, //0F MSF reported Card insertion HCF_ACT_CARD_OUT, //10 MSF reported Card removal/* HCF_ACT_MAX // xxxx: start value for UIL-range, NOT to be passed to HCF * Too bad, there was originally no spare room created to use * HCF_ACT_MAX as an equivalent of HCF_ERR_MAX. Since creating * this room in retrospect would create a backward incompatibilty * we will just have to live with the haphazard sequence of * UIL- and HCF specific codes. Theoretically this could be * corrected when and if there will ever be an overall * incompatibilty introduced for another reason */ } hcf_action_cmd;/*============================================================= HCF Defined RECORDS =========================*//*============================================================= INFORMATION FRRAMES =====================*/#define CFG_INFO_FRAME_MIN 0xF000 //lowest value representing an Informatio Frame
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -