Annotation of qemu/roms/ipxe/src/drivers/net/wlan_compat.h, revision 1.1

1.1     ! root        1: /* src/include/wlan/wlan_compat.h
        !             2: *
        !             3: * Types and macros to aid in portability
        !             4: *
        !             5: * Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
        !             6: * --------------------------------------------------------------------
        !             7: *
        !             8: * linux-wlan
        !             9: *
        !            10: *   The contents of this file are subject to the Mozilla Public
        !            11: *   License Version 1.1 (the "License"); you may not use this file
        !            12: *   except in compliance with the License. You may obtain a copy of
        !            13: *   the License at http://www.mozilla.org/MPL/
        !            14: *
        !            15: *   Software distributed under the License is distributed on an "AS
        !            16: *   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
        !            17: *   implied. See the License for the specific language governing
        !            18: *   rights and limitations under the License.
        !            19: *
        !            20: *   Alternatively, the contents of this file may be used under the
        !            21: *   terms of the GNU Public License version 2 (the "GPL"), in which
        !            22: *   case the provisions of the GPL are applicable instead of the
        !            23: *   above.  If you wish to allow the use of your version of this file
        !            24: *   only under the terms of the GPL and not to allow others to use
        !            25: *   your version of this file under the MPL, indicate your decision
        !            26: *   by deleting the provisions above and replace them with the notice
        !            27: *   and other provisions required by the GPL.  If you do not delete
        !            28: *   the provisions above, a recipient may use your version of this
        !            29: *   file under either the MPL or the GPL.
        !            30: *
        !            31: * --------------------------------------------------------------------
        !            32: *
        !            33: * Inquiries regarding the linux-wlan Open Source project can be
        !            34: * made directly to:
        !            35: *
        !            36: * AbsoluteValue Systems Inc.
        !            37: * [email protected]
        !            38: * http://www.linux-wlan.com
        !            39: *
        !            40: * --------------------------------------------------------------------
        !            41: *
        !            42: * Portions of the development of this software were funded by 
        !            43: * Intersil Corporation as part of PRISM(R) chipset product development.
        !            44: *
        !            45: * --------------------------------------------------------------------
        !            46: */
        !            47: 
        !            48: FILE_LICENCE ( GPL2_ONLY );
        !            49: 
        !            50: #ifndef _WLAN_COMPAT_H
        !            51: #define _WLAN_COMPAT_H
        !            52: 
        !            53: /*=============================================================*/
        !            54: /*------ Establish Platform Identity --------------------------*/
        !            55: /*=============================================================*/
        !            56: /* Key macros: */
        !            57: /* WLAN_CPU_FAMILY */
        !            58:        #define WLAN_Ix86                       1
        !            59:        #define WLAN_PPC                        2
        !            60:        #define WLAN_Ix96                       3
        !            61:        #define WLAN_ARM                        4
        !            62:        #define WLAN_ALPHA                      5
        !            63:        #define WLAN_MIPS                       6
        !            64:        #define WLAN_HPPA                       7
        !            65: /* WLAN_CPU_CORE */
        !            66:        #define WLAN_I386CORE                   1
        !            67:        #define WLAN_PPCCORE                    2
        !            68:        #define WLAN_I296                       3
        !            69:        #define WLAN_ARMCORE                    4
        !            70:        #define WLAN_ALPHACORE                  5
        !            71:        #define WLAN_MIPSCORE                   6
        !            72:        #define WLAN_HPPACORE                   7
        !            73: /* WLAN_CPU_PART */
        !            74:        #define WLAN_I386PART                   1
        !            75:        #define WLAN_MPC860                     2
        !            76:        #define WLAN_MPC823                     3
        !            77:        #define WLAN_I296SA                     4
        !            78:        #define WLAN_PPCPART                    5
        !            79:        #define WLAN_ARMPART                    6
        !            80:        #define WLAN_ALPHAPART                  7
        !            81:        #define WLAN_MIPSPART                   8
        !            82:        #define WLAN_HPPAPART                   9
        !            83: /* WLAN_SYSARCH */
        !            84:        #define WLAN_PCAT                       1
        !            85:        #define WLAN_MBX                        2
        !            86:        #define WLAN_RPX                        3
        !            87:        #define WLAN_LWARCH                     4
        !            88:        #define WLAN_PMAC                       5
        !            89:        #define WLAN_SKIFF                      6
        !            90:        #define WLAN_BITSY                      7
        !            91:        #define WLAN_ALPHAARCH                  7
        !            92:        #define WLAN_MIPSARCH                   9
        !            93:        #define WLAN_HPPAARCH                   10
        !            94: /* WLAN_OS */
        !            95:        #define WLAN_LINUX_KERNEL               1
        !            96:        #define WLAN_LINUX_USER                 2
        !            97: /* WLAN_HOSTIF (generally set on the command line, not detected) */
        !            98:        #define WLAN_PCMCIA                     1
        !            99:        #define WLAN_ISA                        2
        !           100:        #define WLAN_PCI                        3
        !           101:        #define WLAN_USB                        4
        !           102:        #define WLAN_PLX                        5
        !           103: 
        !           104: /* Note: the PLX HOSTIF above refers to some vendors implementations for */
        !           105: /*       PCI.  It's a PLX chip that is a PCI to PCMCIA adapter, but it   */
        !           106: /*       isn't a real PCMCIA host interface adapter providing all the    */
        !           107: /*       card&socket services.                                           */
        !           108: 
        !           109: /* Lets try to figure out what we've got.  Kernel mode or User mode? */
        !           110: #if defined(__KERNEL__)
        !           111:        #define WLAN_OS                         WLAN_LINUX_KERNEL
        !           112: #else 
        !           113:        #define WLAN_OS                         WLAN_LINUX_USER
        !           114: #endif
        !           115: 
        !           116: #ifdef __powerpc__
        !           117: #ifndef __ppc__
        !           118: #define __ppc__
        !           119: #endif
        !           120: #endif
        !           121: 
        !           122: #if (defined(CONFIG_PPC) || defined(CONFIG_8xx))
        !           123: #ifndef __ppc__
        !           124: #define __ppc__
        !           125: #endif
        !           126: #endif
        !           127: 
        !           128: #if defined(__KERNEL__)
        !           129: #if defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__)
        !           130:        #define WLAN_CPU_FAMILY         WLAN_Ix86
        !           131:        #define WLAN_CPU_CORE           WLAN_I386CORE
        !           132:        #define WLAN_CPU_PART           WLAN_I386PART
        !           133:        #define WLAN_SYSARCH            WLAN_PCAT
        !           134: #elif defined(__ppc__)
        !           135:        #define WLAN_CPU_FAMILY         WLAN_PPC
        !           136:        #define WLAN_CPU_CORE           WLAN_PPCCORE
        !           137:        #if defined(CONFIG_MBX)
        !           138:                #define WLAN_CPU_PART   WLAN_MPC860
        !           139:                #define WLAN_SYSARCH    WLAN_MBX
        !           140:        #elif defined(CONFIG_RPXLITE)
        !           141:                #define WLAN_CPU_PART   WLAN_MPC823
        !           142:                #define WLAN_SYSARCH    WLAN_RPX
        !           143:        #elif defined(CONFIG_RPXCLASSIC)
        !           144:                #define WLAN_CPU_PART   WLAN_MPC860
        !           145:                #define WLAN_SYSARCH    WLAN_RPX
        !           146:        #else
        !           147:                #define WLAN_CPU_PART   WLAN_PPCPART
        !           148:                #define WLAN_SYSARCH    WLAN_PMAC
        !           149:        #endif
        !           150: #elif defined(__arm__)
        !           151:        #define WLAN_CPU_FAMILY         WLAN_ARM
        !           152:        #define WLAN_CPU_CORE           WLAN_ARMCORE
        !           153:         #define WLAN_CPU_PART          WLAN_ARM_PART
        !           154:        #define WLAN_SYSARCH            WLAN_SKIFF
        !           155: #elif defined(__alpha__)
        !           156:        #define WLAN_CPU_FAMILY         WLAN_ALPHA
        !           157:        #define WLAN_CPU_CORE           WLAN_ALPHACORE
        !           158:        #define WLAN_CPU_PART           WLAN_ALPHAPART
        !           159:        #define WLAN_SYSARCH            WLAN_ALPHAARCH
        !           160: #elif defined(__mips__)
        !           161:        #define WLAN_CPU_FAMILY         WLAN_MIPS
        !           162:        #define WLAN_CPU_CORE           WLAN_MIPSCORE
        !           163:         #define WLAN_CPU_PART          WLAN_MIPSPART
        !           164:        #define WLAN_SYSARCH            WLAN_MIPSARCH
        !           165: #elif defined(__hppa__)
        !           166:        #define WLAN_CPU_FAMILY         WLAN_HPPA
        !           167:        #define WLAN_CPU_CORE           WLAN_HPPACORE
        !           168:        #define WLAN_CPU_PART           WLAN_HPPAPART
        !           169:        #define WLAN_SYSARCH            WLAN_HPPAARCH
        !           170: #else
        !           171:        #error "No CPU identified!"
        !           172: #endif
        !           173: #endif /* __KERNEL__ */
        !           174: 
        !           175: /*
        !           176:    Some big endian machines implicitly do all I/O in little endian mode.
        !           177: 
        !           178:    In particular:
        !           179:           Linux/PPC on PowerMacs (PCI)
        !           180:          Arm/Intel Xscale (PCI)
        !           181: 
        !           182:    This may also affect PLX boards and other BE &| PPC platforms; 
        !           183:    as new ones are discovered, add them below. 
        !           184: */
        !           185: 
        !           186: #if (WLAN_HOSTIF == WLAN_PCI)
        !           187: #if ((WLAN_SYSARCH == WLAN_SKIFF) || (WLAN_SYSARCH == WLAN_PMAC))
        !           188: #define REVERSE_ENDIAN
        !           189: #endif
        !           190: #endif
        !           191: 
        !           192: /*=============================================================*/
        !           193: /*------ Bit settings -----------------------------------------*/
        !           194: /*=============================================================*/
        !           195: 
        !           196: #define BIT0   0x00000001
        !           197: #define BIT1   0x00000002
        !           198: #define BIT2   0x00000004
        !           199: #define BIT3   0x00000008
        !           200: #define BIT4   0x00000010
        !           201: #define BIT5   0x00000020
        !           202: #define BIT6   0x00000040
        !           203: #define BIT7   0x00000080
        !           204: #define BIT8   0x00000100
        !           205: #define BIT9   0x00000200
        !           206: #define BIT10  0x00000400
        !           207: #define BIT11  0x00000800
        !           208: #define BIT12  0x00001000
        !           209: #define BIT13  0x00002000
        !           210: #define BIT14  0x00004000
        !           211: #define BIT15  0x00008000
        !           212: #define BIT16  0x00010000
        !           213: #define BIT17  0x00020000
        !           214: #define BIT18  0x00040000
        !           215: #define BIT19  0x00080000
        !           216: #define BIT20  0x00100000
        !           217: #define BIT21  0x00200000
        !           218: #define BIT22  0x00400000
        !           219: #define BIT23  0x00800000
        !           220: #define BIT24  0x01000000
        !           221: #define BIT25  0x02000000
        !           222: #define BIT26  0x04000000
        !           223: #define BIT27  0x08000000
        !           224: #define BIT28  0x10000000
        !           225: #define BIT29  0x20000000
        !           226: #define BIT30  0x40000000
        !           227: #define BIT31  0x80000000
        !           228: 
        !           229: typedef unsigned char   UINT8;
        !           230: typedef unsigned short  UINT16;
        !           231: typedef unsigned long   UINT32;
        !           232: 
        !           233: typedef signed char     INT8;
        !           234: typedef signed short    INT16;
        !           235: typedef signed long     INT32;
        !           236: 
        !           237: typedef unsigned int    UINT;
        !           238: typedef signed int      INT;
        !           239: 
        !           240: typedef unsigned long long     UINT64;
        !           241: typedef signed long long       INT64;
        !           242: 
        !           243: #define UINT8_MAX      (0xffUL)
        !           244: #define UINT16_MAX     (0xffffUL)
        !           245: #define UINT32_MAX     (0xffffffffUL)
        !           246: 
        !           247: #define INT8_MAX       (0x7fL)
        !           248: #define INT16_MAX      (0x7fffL)
        !           249: #define INT32_MAX      (0x7fffffffL)
        !           250: 
        !           251: /*=============================================================*/
        !           252: /*------ Compiler Portability Macros --------------------------*/
        !           253: /*=============================================================*/
        !           254: #define __WLAN_ATTRIB_PACK__           __attribute__ ((packed))
        !           255: #define __WLAN_PRAGMA_PACK1__
        !           256: #define __WLAN_PRAGMA_PACKDFLT__
        !           257: #define __WLAN_INLINE__                        inline
        !           258: #define WLAN_MIN_ARRAY                 0
        !           259: 
        !           260: /*=============================================================*/
        !           261: /*------ OS Portability Macros --------------------------------*/
        !           262: /*=============================================================*/
        !           263: 
        !           264: #ifndef WLAN_DBVAR
        !           265: #define WLAN_DBVAR     wlan_debug
        !           266: #endif
        !           267: 
        !           268: #if (WLAN_OS == WLAN_LINUX_KERNEL)
        !           269:        #define WLAN_LOG_ERROR0(x) printk(KERN_ERR "%s: " x , __FUNCTION__ );
        !           270:        #define WLAN_LOG_ERROR1(x,n) printk(KERN_ERR "%s: " x , __FUNCTION__ , (n));
        !           271:        #define WLAN_LOG_ERROR2(x,n1,n2) printk(KERN_ERR "%s: " x , __FUNCTION__ , (n1), (n2));
        !           272:        #define WLAN_LOG_ERROR3(x,n1,n2,n3) printk(KERN_ERR "%s: " x , __FUNCTION__, (n1), (n2), (n3));
        !           273:        #define WLAN_LOG_ERROR4(x,n1,n2,n3,n4) printk(KERN_ERR "%s: " x , __FUNCTION__, (n1), (n2), (n3), (n4));
        !           274: 
        !           275:        #define WLAN_LOG_WARNING0(x) printk(KERN_WARNING "%s: " x , __FUNCTION__);
        !           276:        #define WLAN_LOG_WARNING1(x,n) printk(KERN_WARNING "%s: " x , __FUNCTION__, (n));
        !           277:        #define WLAN_LOG_WARNING2(x,n1,n2) printk(KERN_WARNING "%s: " x , __FUNCTION__, (n1), (n2));
        !           278:        #define WLAN_LOG_WARNING3(x,n1,n2,n3) printk(KERN_WARNING "%s: " x , __FUNCTION__, (n1), (n2), (n3));
        !           279:        #define WLAN_LOG_WARNING4(x,n1,n2,n3,n4) printk(KERN_WARNING "%s: " x , __FUNCTION__ , (n1), (n2), (n3), (n4));
        !           280: 
        !           281:        #define WLAN_LOG_NOTICE0(x) printk(KERN_NOTICE "%s: " x , __FUNCTION__);
        !           282:        #define WLAN_LOG_NOTICE1(x,n) printk(KERN_NOTICE "%s: " x , __FUNCTION__, (n));
        !           283:        #define WLAN_LOG_NOTICE2(x,n1,n2) printk(KERN_NOTICE "%s: " x , __FUNCTION__, (n1), (n2));
        !           284:        #define WLAN_LOG_NOTICE3(x,n1,n2,n3) printk(KERN_NOTICE "%s: " x , __FUNCTION__, (n1), (n2), (n3));
        !           285:        #define WLAN_LOG_NOTICE4(x,n1,n2,n3,n4) printk(KERN_NOTICE "%s: " x , __FUNCTION__, (n1), (n2), (n3), (n4));
        !           286: 
        !           287:        #define WLAN_LOG_INFO0(x) printk(KERN_INFO x);
        !           288:        #define WLAN_LOG_INFO1(x,n) printk(KERN_INFO x, (n));
        !           289:        #define WLAN_LOG_INFO2(x,n1,n2) printk(KERN_INFO x, (n1), (n2));
        !           290:        #define WLAN_LOG_INFO3(x,n1,n2,n3) printk(KERN_INFO x, (n1), (n2), (n3));
        !           291:        #define WLAN_LOG_INFO4(x,n1,n2,n3,n4) printk(KERN_INFO x, (n1), (n2), (n3), (n4));
        !           292:        #define WLAN_LOG_INFO5(x,n1,n2,n3,n4,n5) printk(KERN_INFO x, (n1), (n2), (n3), (n4), (n5));
        !           293: 
        !           294:        #if defined(WLAN_INCLUDE_DEBUG)
        !           295:                #define WLAN_ASSERT(c) if ((!(c)) && WLAN_DBVAR >= 1) { \
        !           296:                        WLAN_LOG_DEBUG0(1, "Assertion failure!\n"); }
        !           297:                #define WLAN_HEX_DUMP( l, x, p, n)      if( WLAN_DBVAR >= (l) ){ \
        !           298:                        int __i__; \
        !           299:                        printk(KERN_DEBUG x ":"); \
        !           300:                        for( __i__=0; __i__ < (n); __i__++) \
        !           301:                                printk( " %02x", ((UINT8*)(p))[__i__]); \
        !           302:                        printk("\n"); }
        !           303: 
        !           304:                #define DBFENTER { if ( WLAN_DBVAR >= 4 ){ WLAN_LOG_DEBUG0(3,"Enter\n"); } }
        !           305:                #define DBFEXIT  { if ( WLAN_DBVAR >= 4 ){ WLAN_LOG_DEBUG0(3,"Exit\n"); } }
        !           306: 
        !           307:                #define WLAN_LOG_DEBUG0(l,x) if ( WLAN_DBVAR >= (l)) printk(KERN_DEBUG "%s: " x ,  __FUNCTION__ );
        !           308:                #define WLAN_LOG_DEBUG1(l,x,n) if ( WLAN_DBVAR >= (l)) printk(KERN_DEBUG "%s: " x , __FUNCTION__ , (n));
        !           309:                #define WLAN_LOG_DEBUG2(l,x,n1,n2) if ( WLAN_DBVAR >= (l)) printk(KERN_DEBUG "%s: " x , __FUNCTION__ , (n1), (n2));
        !           310:                #define WLAN_LOG_DEBUG3(l,x,n1,n2,n3) if ( WLAN_DBVAR >= (l)) printk(KERN_DEBUG "%s: " x , __FUNCTION__ , (n1), (n2), (n3));
        !           311:                #define WLAN_LOG_DEBUG4(l,x,n1,n2,n3,n4) if ( WLAN_DBVAR >= (l)) printk(KERN_DEBUG "%s: " x , __FUNCTION__ , (n1), (n2), (n3), (n4));
        !           312:                #define WLAN_LOG_DEBUG5(l,x,n1,n2,n3,n4,n5) if ( WLAN_DBVAR >= (l)) printk(KERN_DEBUG "%s: " x , __FUNCTION__ , (n1), (n2), (n3), (n4), (n5));
        !           313:                #define WLAN_LOG_DEBUG6(l,x,n1,n2,n3,n4,n5,n6) if ( WLAN_DBVAR >= (l)) printk(KERN_DEBUG "%s: " x , __FUNCTION__ , (n1), (n2), (n3), (n4), (n5), (n6));
        !           314:        #else
        !           315:                #define WLAN_ASSERT(c) 
        !           316:                #define WLAN_HEX_DUMP( l, s, p, n)
        !           317: 
        !           318:                #define DBFENTER 
        !           319:                #define DBFEXIT 
        !           320: 
        !           321:                #define WLAN_LOG_DEBUG0(l, s)
        !           322:                #define WLAN_LOG_DEBUG1(l, s,n)
        !           323:                #define WLAN_LOG_DEBUG2(l, s,n1,n2)
        !           324:                #define WLAN_LOG_DEBUG3(l, s,n1,n2,n3)
        !           325:                #define WLAN_LOG_DEBUG4(l, s,n1,n2,n3,n4)
        !           326:                #define WLAN_LOG_DEBUG5(l, s,n1,n2,n3,n4,n5)
        !           327:        #endif
        !           328: #else
        !           329:        #define WLAN_LOG_ERROR0(s)
        !           330:        #define WLAN_LOG_ERROR1(s,n)
        !           331:        #define WLAN_LOG_ERROR2(s,n1,n2)
        !           332:        #define WLAN_LOG_ERROR3(s,n1,n2,n3)
        !           333:        #define WLAN_LOG_ERROR4(s,n1,n2,n3,n4)
        !           334: 
        !           335:        #define WLAN_LOG_WARNING0(s)
        !           336:        #define WLAN_LOG_WARNING1(s,n)
        !           337:        #define WLAN_LOG_WARNING2(s,n1,n2)
        !           338:        #define WLAN_LOG_WARNING3(s,n1,n2,n3)
        !           339:        #define WLAN_LOG_WARNING4(s,n1,n2,n3,n4)
        !           340: 
        !           341:        #define WLAN_LOG_NOTICE0(s)
        !           342:        #define WLAN_LOG_NOTICE1(s,n)
        !           343:        #define WLAN_LOG_NOTICE2(s,n1,n2)
        !           344:        #define WLAN_LOG_NOTICE3(s,n1,n2,n3)
        !           345:        #define WLAN_LOG_NOTICE4(s,n1,n2,n3,n4)
        !           346: 
        !           347:                #define WLAN_ASSERT(c) 
        !           348:                #define WLAN_HEX_DUMP( l, s, p, n)
        !           349: 
        !           350:                #define DBFENTER 
        !           351:                #define DBFEXIT 
        !           352: 
        !           353:                #define WLAN_LOG_INFO0(s)
        !           354:                #define WLAN_LOG_INFO1(s,n)
        !           355:                #define WLAN_LOG_INFO2(s,n1,n2)
        !           356:                #define WLAN_LOG_INFO3(s,n1,n2,n3)
        !           357:                #define WLAN_LOG_INFO4(s,n1,n2,n3,n4)
        !           358:                #define WLAN_LOG_INFO5(s,n1,n2,n3,n4,n5)
        !           359: 
        !           360:                #define WLAN_LOG_DEBUG0(l, s)
        !           361:                #define WLAN_LOG_DEBUG1(l, s,n)
        !           362:                #define WLAN_LOG_DEBUG2(l, s,n1,n2)
        !           363:                #define WLAN_LOG_DEBUG3(l, s,n1,n2,n3)
        !           364:                #define WLAN_LOG_DEBUG4(l, s,n1,n2,n3,n4)
        !           365:                #define WLAN_LOG_DEBUG5(l, s,n1,n2,n3,n4,n5)
        !           366: #endif
        !           367: 
        !           368: #define wlan_ms_per_tick               (1000UL / (wlan_ticks_per_sec))
        !           369: #define wlan_ms_to_ticks(n)            ( (n) / (wlan_ms_per_tick))
        !           370: #define wlan_tu2ticks(n)               ( (n) / (wlan_ms_per_tick))
        !           371: #define WLAN_INT_DISABLE(n)            { save_flags((n)); cli(); }
        !           372: #define WLAN_INT_ENABLE(n)             { sti(); restore_flags((n)); }
        !           373: 
        !           374: #ifdef CONFIG_MODVERSIONS
        !           375: #define MODVERSIONS            1
        !           376: #include <linux/modversions.h>
        !           377: #endif
        !           378: 
        !           379: #ifdef CONFIG_SMP
        !           380: #define __SMP__                        1
        !           381: #endif 
        !           382: 
        !           383: #ifndef KERNEL_VERSION
        !           384: #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
        !           385: #endif
        !           386: 
        !           387: #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,17))
        !           388: #define CONFIG_NETLINK         1
        !           389: #endif
        !           390: 
        !           391: #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0))
        !           392: #define kfree_s(a, b)  kfree((a))
        !           393: #endif
        !           394: 
        !           395: #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,2,18))
        !           396: #ifndef init_waitqueue_head
        !           397: #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,0,16))
        !           398: #define init_waitqueue_head(p)  (*(p) = NULL)
        !           399: #else
        !           400: #define init_waitqueue_head(p)  init_waitqueue(p)
        !           401: #endif
        !           402: typedef struct wait_queue *wait_queue_head_t;
        !           403: typedef struct wait_queue wait_queue_t;
        !           404: #define set_current_state(b)  { current->state = (b); mb(); }
        !           405: #define init_waitqueue_entry(a, b) { (a)->task = current; }
        !           406: #endif
        !           407: #endif
        !           408: 
        !           409: #ifndef wait_event_interruptible_timeout
        !           410: // retval == 0; signal met; we're good.
        !           411: // retval < 0; interrupted by signal.
        !           412: // retval > 0; timed out.
        !           413: #define __wait_event_interruptible_timeout(wq, condition, timeout, ret)   \
        !           414: do {                                                                      \
        !           415:         int __ret = 0;                                                    \
        !           416:         if (!(condition)) {                                               \
        !           417:           wait_queue_t __wait;                                            \
        !           418:           unsigned long expire;                                           \
        !           419:           init_waitqueue_entry(&__wait, current);                         \
        !           420:                                                                          \
        !           421:           expire = timeout + jiffies;                                     \
        !           422:           add_wait_queue(&wq, &__wait);                                   \
        !           423:           for (;;) {                                                      \
        !           424:                   set_current_state(TASK_INTERRUPTIBLE);                  \
        !           425:                   if (condition)                                          \
        !           426:                           break;                                          \
        !           427:                   if (jiffies > expire) {                                 \
        !           428:                           ret = jiffies - expire;                         \
        !           429:                           break;                                          \
        !           430:                   }                                                       \
        !           431:                   if (!signal_pending(current)) {                         \
        !           432:                           schedule_timeout(timeout);                      \
        !           433:                           continue;                                       \
        !           434:                   }                                                       \
        !           435:                   ret = -ERESTARTSYS;                                     \
        !           436:                   break;                                                  \
        !           437:           }                                                               \
        !           438:           set_current_state(TASK_RUNNING);                                \
        !           439:           remove_wait_queue(&wq, &__wait);                                \
        !           440:        }                                                                 \
        !           441: } while (0)
        !           442: 
        !           443: #define wait_event_interruptible_timeout(wq, condition, timeout)       \
        !           444: ({                                                                     \
        !           445:        int __ret = 0;                                                  \
        !           446:        if (!(condition))                                               \
        !           447:                __wait_event_interruptible_timeout(wq, condition,       \
        !           448:                                                timeout, __ret);        \
        !           449:        __ret;                                                          \
        !           450: })
        !           451: 
        !           452: #endif
        !           453: 
        !           454: #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,1,90))
        !           455: #define spin_lock(l)            do { } while (0)
        !           456: #define spin_unlock(l)          do { } while (0)
        !           457: #define spin_lock_irqsave(l,f)  do { save_flags(f); cli(); } while (0)
        !           458: #define spin_unlock_irqrestore(l,f) do { restore_flags(f); } while (0)
        !           459: #define spin_lock_init(s)       do { } while (0)
        !           460: #define spin_trylock(l)         (1)
        !           461: typedef int spinlock_t;
        !           462: #endif
        !           463: 
        !           464: #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0))
        !           465: #ifdef CONFIG_SMP
        !           466: #define spin_is_locked(x)       (*(volatile char *)(&(x)->lock) <= 0)
        !           467: #else
        !           468: #define spin_is_locked(l)       (0)
        !           469: #endif
        !           470: #endif
        !           471: 
        !           472: #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,3,38))
        !           473: typedef struct device netdevice_t;
        !           474: #elif (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,4))
        !           475: typedef struct net_device netdevice_t;
        !           476: #else
        !           477: #undef netdevice_t
        !           478: typedef struct net_device netdevice_t;
        !           479: #endif
        !           480: 
        !           481: #ifdef WIRELESS_EXT
        !           482: #if (WIRELESS_EXT < 13)
        !           483: struct iw_request_info
        !           484: {
        !           485:         __u16           cmd;            /* Wireless Extension command */
        !           486:         __u16           flags;          /* More to come ;-) */
        !           487: };
        !           488: #endif
        !           489: #endif
        !           490: 
        !           491: 
        !           492: #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,1,18))
        !           493: #define MODULE_PARM(a,b)        extern int __bogus_decl
        !           494: #define MODULE_AUTHOR(a)        extern int __bogus_decl
        !           495: #define MODULE_DESCRIPTION(a)   extern int __bogus_decl
        !           496: #define MODULE_SUPPORTED_DEVICE(a) extern int __bogus_decl
        !           497: #undef  GET_USE_COUNT
        !           498: #define GET_USE_COUNT(m)        mod_use_count_
        !           499: #endif
        !           500: 
        !           501: #ifndef MODULE_LICENSE
        !           502: #define MODULE_LICENSE(m)       extern int __bogus_decl
        !           503: #endif
        !           504: 
        !           505: /* TODO:  Do we care about this? */
        !           506: #ifndef MODULE_DEVICE_TABLE
        !           507: #define MODULE_DEVICE_TABLE(foo,bar)
        !           508: #endif
        !           509: 
        !           510: #define wlan_minutes2ticks(a) ((a)*(wlan_ticks_per_sec *  60))
        !           511: #define wlan_seconds2ticks(a) ((a)*(wlan_ticks_per_sec))
        !           512: 
        !           513: /*=============================================================*/
        !           514: /*------ Hardware Portability Macros --------------------------*/
        !           515: /*=============================================================*/
        !           516: 
        !           517: #define ieee2host16(n) __le16_to_cpu(n)
        !           518: #define ieee2host32(n) __le32_to_cpu(n)
        !           519: #define host2ieee16(n) __cpu_to_le16(n)
        !           520: #define host2ieee32(n) __cpu_to_le32(n)
        !           521: 
        !           522: #if (WLAN_CPU_FAMILY == WLAN_PPC)
        !           523:        #define wlan_inw(a)                     in_be16((unsigned short *)((a)+_IO_BASE))
        !           524:        #define wlan_inw_le16_to_cpu(a)         inw((a))
        !           525:        #define wlan_outw(v,a)                  out_be16((unsigned short *)((a)+_IO_BASE), (v))
        !           526:        #define wlan_outw_cpu_to_le16(v,a)      outw((v),(a))
        !           527: #else
        !           528:        #define wlan_inw(a)                     inw((a))
        !           529:        #define wlan_inw_le16_to_cpu(a)         __cpu_to_le16(inw((a)))
        !           530:        #define wlan_outw(v,a)                  outw((v),(a))
        !           531:        #define wlan_outw_cpu_to_le16(v,a)      outw(__cpu_to_le16((v)),(a))
        !           532: #endif
        !           533: 
        !           534: /*=============================================================*/
        !           535: /*--- General Macros ------------------------------------------*/
        !           536: /*=============================================================*/
        !           537: 
        !           538: #define wlan_max(a, b) (((a) > (b)) ? (a) : (b))
        !           539: #define wlan_min(a, b) (((a) < (b)) ? (a) : (b))
        !           540: 
        !           541: #define wlan_isprint(c)        (((c) > (0x19)) && ((c) < (0x7f)))
        !           542: 
        !           543: #define wlan_hexchar(x) (((x) < 0x0a) ? ('0' + (x)) : ('a' + ((x) - 0x0a)))
        !           544: 
        !           545: /* Create a string of printable chars from something that might not be */
        !           546: /* It's recommended that the str be 4*len + 1 bytes long */
        !           547: #define wlan_mkprintstr(buf, buflen, str, strlen) \
        !           548: { \
        !           549:        int i = 0; \
        !           550:        int j = 0; \
        !           551:        memset(str, 0, (strlen)); \
        !           552:        for (i = 0; i < (buflen); i++) { \
        !           553:                if ( wlan_isprint((buf)[i]) ) { \
        !           554:                        (str)[j] = (buf)[i]; \
        !           555:                        j++; \
        !           556:                } else { \
        !           557:                        (str)[j] = '\\'; \
        !           558:                        (str)[j+1] = 'x'; \
        !           559:                        (str)[j+2] = wlan_hexchar(((buf)[i] & 0xf0) >> 4); \
        !           560:                        (str)[j+3] = wlan_hexchar(((buf)[i] & 0x0f)); \
        !           561:                        j += 4; \
        !           562:                } \
        !           563:        } \
        !           564: }
        !           565: 
        !           566: /*=============================================================*/
        !           567: /*--- Variables -----------------------------------------------*/
        !           568: /*=============================================================*/
        !           569: 
        !           570: extern int wlan_debug;
        !           571: extern int wlan_ethconv;               /* What's the default ethconv? */
        !           572: 
        !           573: /*=============================================================*/
        !           574: /*--- Functions -----------------------------------------------*/
        !           575: /*=============================================================*/
        !           576: #endif /* _WLAN_COMPAT_H */
        !           577: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.