Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 | /* p80211meta.h * * Macros, constants, types, and funcs for p80211 metadata * * Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved. * -------------------------------------------------------------------- * * linux-wlan * * The contents of this file are subject to the Mozilla Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * Alternatively, the contents of this file may be used under the * terms of the GNU Public License version 2 (the "GPL"), in which * case the provisions of the GPL are applicable instead of the * above. If you wish to allow the use of your version of this file * only under the terms of the GPL and not to allow others to use * your version of this file under the MPL, indicate your decision * by deleting the provisions above and replace them with the notice * and other provisions required by the GPL. If you do not delete * the provisions above, a recipient may use your version of this * file under either the MPL or the GPL. * * -------------------------------------------------------------------- * * Inquiries regarding the linux-wlan Open Source project can be * made directly to: * * AbsoluteValue Systems Inc. * info@linux-wlan.com * http://www.linux-wlan.com * * -------------------------------------------------------------------- * * Portions of the development of this software were funded by * Intersil Corporation as part of PRISM(R) chipset product development. * * -------------------------------------------------------------------- * * This file declares some of the constants and types used in various * parts of the linux-wlan system. * * Notes: * - Constant values are always in HOST byte order. * * All functions and statics declared here are implemented in p80211types.c * -------------------------------------------------------------------- */ #ifndef _P80211META_H #define _P80211META_H /*================================================================*/ /* System Includes */ /*================================================================*/ /* Project Includes */ #ifndef _WLAN_COMPAT_H #include "wlan_compat.h" #endif /*================================================================*/ /* Constants */ /*----------------------------------------------------------------*/ /* */ /*================================================================*/ /* Macros */ /*----------------------------------------------------------------*/ /* The following macros are used to ensure consistent naming */ /* conventions for all the different metadata lists. */ #define MKREQMETANAME(name) p80211meta_ ## req ## _ ## name #define MKINDMETANAME(name) p80211meta_ ## ind ## _ ## name #define MKMIBMETANAME(name) p80211meta_ ## mib ## _ ## name #define MKGRPMETANAME(name) p80211meta_ ## grp ## _ ## name #define MKREQMETASIZE(name) p80211meta_ ## req ## _ ## name ## _ ## size #define MKINDMETASIZE(name) p80211meta_ ## ind ## _ ## name ## _ ## size #define MKMIBMETASIZE(name) p80211meta_ ## mib ## _ ## name ## _ ## size #define MKGRPMETASIZE(name) p80211meta_ ## grp ## _ ## name ## _ ## size #define GETMETASIZE(aptr) (**((UINT32**)(aptr))) /*----------------------------------------------------------------*/ /* The following ifdef depends on the following defines: */ /* P80211_NOINCLUDESTRINGS - if defined, all metadata name fields */ /* are empty strings */ #ifdef P80211_NOINCLUDESTRINGS #define MKITEMNAME(s) ("") #else #define MKITEMNAME(s) (s) #endif /*================================================================*/ /* Types */ /*----------------------------------------------------------------*/ /* The following structure types are used for the metadata */ /* representation of category list metadata, group list metadata, */ /* and data item metadata for both Mib and Messages. */ typedef struct p80211meta { char *name; /* data item name */ UINT32 did; /* partial did */ UINT32 flags; /* set of various flag bits */ UINT32 min; /* min value of a BOUNDEDINT */ UINT32 max; /* max value of a BOUNDEDINT */ UINT32 maxlen; /* maxlen of a OCTETSTR or DISPLAYSTR */ UINT32 minlen; /* minlen of a OCTETSTR or DISPLAYSTR */ p80211enum_t *enumptr; /* ptr to the enum type for ENUMINT */ p80211_totext_t totextptr; /* ptr to totext conversion function */ p80211_fromtext_t fromtextptr; /* ptr to totext conversion function */ p80211_valid_t validfunptr; /* ptr to totext conversion function */ } p80211meta_t; typedef struct grplistitem { char *name; p80211meta_t *itemlist; } grplistitem_t; typedef struct catlistitem { char *name; grplistitem_t *grplist; } catlistitem_t; /*================================================================*/ /* Extern Declarations */ /*----------------------------------------------------------------*/ /* */ /*================================================================*/ /* Function Declarations */ /*----------------------------------------------------------------*/ /* */ UINT32 p80211_text2did(catlistitem_t *catlist, char *catname, char *grpname, char *itemname); UINT32 p80211_text2catdid(catlistitem_t *list, char *name ); UINT32 p80211_text2grpdid(grplistitem_t *list, char *name ); UINT32 p80211_text2itemdid(p80211meta_t *list, char *name ); UINT32 p80211_isvalid_did( catlistitem_t *catlist, UINT32 did ); UINT32 p80211_isvalid_catdid( catlistitem_t *catlist, UINT32 did ); UINT32 p80211_isvalid_grpdid( catlistitem_t *catlist, UINT32 did ); UINT32 p80211_isvalid_itemdid( catlistitem_t *catlist, UINT32 did ); catlistitem_t *p80211_did2cat( catlistitem_t *catlist, UINT32 did ); grplistitem_t *p80211_did2grp( catlistitem_t *catlist, UINT32 did ); p80211meta_t *p80211_did2item( catlistitem_t *catlist, UINT32 did ); UINT32 p80211item_maxdatalen( struct catlistitem *metalist, UINT32 did ); UINT32 p80211_metaname2did(struct catlistitem *metalist, char *itemname); UINT32 p80211item_getoffset( struct catlistitem *metalist, UINT32 did ); int p80211item_gettype(p80211meta_t *meta); #endif /* _P80211META_H */ |