1 /*
   2  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
   3  * Use is subject to license terms.
   4  */
   5 
   6 /*
   7  * Copyright(c) 2004
   8  *      Damien Bergamini <damien.bergamini@free.fr>. All rights reserved.
   9  *
  10  * Redistribution and use in source and binary forms, with or without
  11  * modification, are permitted provided that the following conditions
  12  * are met:
  13  * 1. Redistributions of source code must retain the above copyright
  14  *    notice unmodified, this list of conditions, and the following
  15  *    disclaimer.
  16  * 2. Redistributions in binary form must reproduce the above copyright
  17  *    notice, this list of conditions and the following disclaimer in the
  18  *    documentation and/or other materials provided with the distribution.
  19  *
  20  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  24  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  25  * DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  26  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  27  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  29  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  30  * SUCH DAMAGE.
  31  */
  32 
  33 #ifndef _SYS_IPW2200_H
  34 #define _SYS_IPW2200_H
  35 
  36 #ifdef __cplusplus
  37 extern "C" {
  38 #endif
  39 
  40 /*
  41  * Intel Wireless PRO/2200 mini-pci adpater drier
  42  * ipw2200.h: common definitions and interface to user land application
  43  */
  44 #include <sys/types.h>
  45 #include <sys/ddi.h>
  46 #include <sys/sunddi.h>
  47 
  48 #define IPW2200_DRV_NAME  "iwi"
  49 #define IPW2200_DRV_DESC  "Intel Wireless 2200/2915"
  50 
  51 /*
  52  * Debug functionalities
  53  */
  54 #define IPW2200_DBG_INIT        (0x00000001)  /* initialization */
  55 #define IPW2200_DBG_GLD         (0x00000002)  /* GLD */
  56 #define IPW2200_DBG_WIFI        (0x00000004)  /* WiFi */
  57 #define IPW2200_DBG_DMA         (0x00000008)  /* DMA */
  58 #define IPW2200_DBG_CSR         (0x00000010)  /* low-level CSR access */
  59 #define IPW2200_DBG_FW          (0x00000020)  /* uc & fw */
  60 #define IPW2200_DBG_RING        (0x00000040)  /* ring operations */
  61 #define IPW2200_DBG_IOCTL       (0x00000080)  /* ioctl */
  62 #define IPW2200_DBG_INT         (0x00000100)  /* interrupt */
  63 #define IPW2200_DBG_TABLE       (0x00000200)  /* ipw2200 tables */
  64 #define IPW2200_DBG_RX          (0x00000400)  /* rx */
  65 #define IPW2200_DBG_TX          (0x00000800)  /* tx */
  66 #define IPW2200_DBG_HWCAP       (0x00001000)  /* hardware capabilities */
  67 #define IPW2200_DBG_NOTIF       (0x00002000)  /* ipw2200 notification */
  68 #define IPW2200_DBG_SCAN        (0x00004000)  /* scan results */
  69 #define IPW2200_DBG_SOFTINT     (0x00008000)  /* soft interrupt */
  70 #define IPW2200_DBG_FATAL       (0x00010000)  /* interrupt report error */
  71 #define IPW2200_DBG_SUSPEND     (0x00020000)  /* suspend resume */
  72 #define IPW2200_DBG_BRUSSELS    (0x00040000)  /* brussels support */
  73 
  74 extern uint32_t ipw2200_debug;
  75 extern void     ipw2200_dbg(dev_info_t *dip, int level, const char *fmt, ...);
  76 
  77 #ifdef  DEBUG
  78 #define IPW2200_DBG(l, x)       do {                            \
  79         _NOTE(CONSTANTCONDITION)                                \
  80         if ((l) & ipw2200_debug)                            \
  81                 ipw2200_dbg x;                                  \
  82         _NOTE(CONSTANTCONDITION)                                \
  83 } while (0)
  84 #else
  85 #define IPW2200_DBG(l, x)
  86 #endif
  87 
  88 #define IPW2200_WARN(x)   ipw2200_dbg x
  89 #define IPW2200_REPORT(x) ipw2200_dbg x
  90 
  91 #ifdef __cplusplus
  92 }
  93 #endif
  94 
  95 #endif /* _SYS_IPW2200_H */