linux/drivers/char/mwave/mwavedd.h
<<
>>
Prefs
   1/*
   2*
   3* mwavedd.h -- declarations for mwave device driver
   4*
   5*
   6* Written By: Mike Sullivan IBM Corporation
   7*
   8* Copyright (C) 1999 IBM Corporation
   9*
  10* This program is free software; you can redistribute it and/or modify
  11* it under the terms of the GNU General Public License as published by
  12* the Free Software Foundation; either version 2 of the License, or
  13* (at your option) any later version.
  14*
  15* This program is distributed in the hope that it will be useful,
  16* but WITHOUT ANY WARRANTY; without even the implied warranty of
  17* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18* GNU General Public License for more details.
  19*
  20* NO WARRANTY
  21* THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
  22* CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT
  23* LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
  24* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
  25* solely responsible for determining the appropriateness of using and
  26* distributing the Program and assumes all risks associated with its
  27* exercise of rights under this Agreement, including but not limited to
  28* the risks and costs of program errors, damage to or loss of data,
  29* programs or equipment, and unavailability or interruption of operations.
  30*
  31* DISCLAIMER OF LIABILITY
  32* NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
  33* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  34* DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND
  35* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
  36* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
  37* USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
  38* HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES
  39*
  40* You should have received a copy of the GNU General Public License
  41* along with this program; if not, write to the Free Software
  42* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  43*
  44*
  45* 10/23/2000 - Alpha Release
  46*       First release to the public
  47*/
  48
  49#ifndef _LINUX_MWAVEDD_H
  50#define _LINUX_MWAVEDD_H
  51#include "3780i.h"
  52#include "tp3780i.h"
  53#include "smapi.h"
  54#include "mwavepub.h"
  55#include <linux/ioctl.h>
  56#include <linux/uaccess.h>
  57#include <linux/wait.h>
  58
  59extern int mwave_debug;
  60extern int mwave_3780i_irq;
  61extern int mwave_3780i_io;
  62extern int mwave_uart_irq;
  63extern int mwave_uart_io;
  64
  65#define PRINTK_ERROR printk
  66#define KERN_ERR_MWAVE KERN_ERR "mwave: "
  67
  68#define TRACE_MWAVE     0x0001
  69#define TRACE_SMAPI     0x0002
  70#define TRACE_3780I     0x0004
  71#define TRACE_TP3780I   0x0008
  72
  73#ifdef MW_TRACE
  74#define PRINTK_1(f,s)                       \
  75  if (f & (mwave_debug)) {                  \
  76    printk(s);                              \
  77  }
  78
  79#define PRINTK_2(f,s,v1)                    \
  80  if (f & (mwave_debug)) {                  \
  81    printk(s,v1);                           \
  82  }
  83
  84#define PRINTK_3(f,s,v1,v2)                 \
  85  if (f & (mwave_debug)) {                  \
  86    printk(s,v1,v2);                        \
  87  }
  88
  89#define PRINTK_4(f,s,v1,v2,v3)              \
  90  if (f & (mwave_debug)) {                  \
  91    printk(s,v1,v2,v3);                     \
  92  }
  93
  94#define PRINTK_5(f,s,v1,v2,v3,v4)           \
  95  if (f & (mwave_debug)) {                  \
  96    printk(s,v1,v2,v3,v4);                  \
  97  }
  98
  99#define PRINTK_6(f,s,v1,v2,v3,v4,v5)        \
 100  if (f & (mwave_debug)) {                  \
 101    printk(s,v1,v2,v3,v4,v5);               \
 102  }
 103
 104#define PRINTK_7(f,s,v1,v2,v3,v4,v5,v6)     \
 105  if (f & (mwave_debug)) {                  \
 106    printk(s,v1,v2,v3,v4,v5,v6);            \
 107  }
 108
 109#define PRINTK_8(f,s,v1,v2,v3,v4,v5,v6,v7)  \
 110  if (f & (mwave_debug)) {                  \
 111    printk(s,v1,v2,v3,v4,v5,v6,v7);         \
 112  }
 113
 114#else
 115#define PRINTK_1(f,s)
 116#define PRINTK_2(f,s,v1)
 117#define PRINTK_3(f,s,v1,v2)
 118#define PRINTK_4(f,s,v1,v2,v3)
 119#define PRINTK_5(f,s,v1,v2,v3,v4)
 120#define PRINTK_6(f,s,v1,v2,v3,v4,v5)
 121#define PRINTK_7(f,s,v1,v2,v3,v4,v5,v6)
 122#define PRINTK_8(f,s,v1,v2,v3,v4,v5,v6,v7)
 123#endif
 124
 125
 126typedef struct _MWAVE_IPC {
 127        unsigned short usIntCount;      /* 0=none, 1=first, 2=greater than 1st */
 128        bool bIsEnabled;
 129        bool bIsHere;
 130        /* entry spin lock */
 131        wait_queue_head_t ipc_wait_queue;
 132} MWAVE_IPC;
 133
 134typedef struct _MWAVE_DEVICE_DATA {
 135        THINKPAD_BD_DATA rBDData;       /* board driver's data area */
 136        unsigned long ulIPCSource_ISR;  /* IPC source bits for recently processed intr, set during ISR processing */
 137        unsigned long ulIPCSource_DPC;  /* IPC source bits for recently processed intr, set during DPC processing */
 138        bool bBDInitialized;
 139        bool bResourcesClaimed;
 140        bool bDSPEnabled;
 141        bool bDSPReset;
 142        MWAVE_IPC IPCs[16];
 143        bool bMwaveDevRegistered;
 144        short sLine;
 145        int nr_registered_attrs;
 146        int device_registered;
 147
 148} MWAVE_DEVICE_DATA, *pMWAVE_DEVICE_DATA;
 149
 150extern MWAVE_DEVICE_DATA mwave_s_mdd;
 151
 152#endif
 153