brintos

brintos / linux-shallow public Read only

0
0
Text · 4.8 KiB · 21cb09c Raw
153 lines · c
1/*2*3* mwavedd.h -- declarations for mwave device driver4*5*6* Written By: Mike Sullivan IBM Corporation7*8* Copyright (C) 1999 IBM Corporation9*10* This program is free software; you can redistribute it and/or modify11* it under the terms of the GNU General Public License as published by12* the Free Software Foundation; either version 2 of the License, or13* (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 of17* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the18* GNU General Public License for more details.19*20* NO WARRANTY21* THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR22* CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT23* LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,24* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is25* solely responsible for determining the appropriateness of using and26* distributing the Program and assumes all risks associated with its27* exercise of rights under this Agreement, including but not limited to28* 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 LIABILITY32* NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY33* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL34* DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND35* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR36* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE37* USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED38* HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES39*40* You should have received a copy of the GNU General Public License41* along with this program; if not, write to the Free Software42* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA43*44*45* 10/23/2000 - Alpha Release46*	First release to the public47*/48 49#ifndef _LINUX_MWAVEDD_H50#define _LINUX_MWAVEDD_H51#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 printk66#define KERN_ERR_MWAVE KERN_ERR "mwave: "67 68#define TRACE_MWAVE     0x000169#define TRACE_SMAPI     0x000270#define TRACE_3780I     0x000471#define TRACE_TP3780I   0x000872 73#ifdef MW_TRACE74#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#else115#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#endif124 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#endif153