xref: /openbmc/linux/drivers/char/mwave/mwavepub.h (revision 833882b4)
11da177e4SLinus Torvalds /*
21da177e4SLinus Torvalds *
31da177e4SLinus Torvalds * mwavepub.h -- PUBLIC declarations for the mwave driver
41da177e4SLinus Torvalds *               and applications using it
51da177e4SLinus Torvalds *
61da177e4SLinus Torvalds *
71da177e4SLinus Torvalds * Written By: Mike Sullivan IBM Corporation
81da177e4SLinus Torvalds *
91da177e4SLinus Torvalds * Copyright (C) 1999 IBM Corporation
101da177e4SLinus Torvalds *
111da177e4SLinus Torvalds * This program is free software; you can redistribute it and/or modify
121da177e4SLinus Torvalds * it under the terms of the GNU General Public License as published by
131da177e4SLinus Torvalds * the Free Software Foundation; either version 2 of the License, or
141da177e4SLinus Torvalds * (at your option) any later version.
151da177e4SLinus Torvalds *
161da177e4SLinus Torvalds * This program is distributed in the hope that it will be useful,
171da177e4SLinus Torvalds * but WITHOUT ANY WARRANTY; without even the implied warranty of
181da177e4SLinus Torvalds * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
191da177e4SLinus Torvalds * GNU General Public License for more details.
201da177e4SLinus Torvalds *
211da177e4SLinus Torvalds * NO WARRANTY
221da177e4SLinus Torvalds * THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
231da177e4SLinus Torvalds * CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT
241da177e4SLinus Torvalds * LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
251da177e4SLinus Torvalds * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
261da177e4SLinus Torvalds * solely responsible for determining the appropriateness of using and
271da177e4SLinus Torvalds * distributing the Program and assumes all risks associated with its
281da177e4SLinus Torvalds * exercise of rights under this Agreement, including but not limited to
291da177e4SLinus Torvalds * the risks and costs of program errors, damage to or loss of data,
301da177e4SLinus Torvalds * programs or equipment, and unavailability or interruption of operations.
311da177e4SLinus Torvalds *
321da177e4SLinus Torvalds * DISCLAIMER OF LIABILITY
331da177e4SLinus Torvalds * NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
341da177e4SLinus Torvalds * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
351da177e4SLinus Torvalds * DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND
361da177e4SLinus Torvalds * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
371da177e4SLinus Torvalds * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
381da177e4SLinus Torvalds * USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
391da177e4SLinus Torvalds * HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES
401da177e4SLinus Torvalds *
411da177e4SLinus Torvalds * You should have received a copy of the GNU General Public License
421da177e4SLinus Torvalds * along with this program; if not, write to the Free Software
431da177e4SLinus Torvalds * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
441da177e4SLinus Torvalds *
451da177e4SLinus Torvalds *
461da177e4SLinus Torvalds * 10/23/2000 - Alpha Release
471da177e4SLinus Torvalds *	First release to the public
481da177e4SLinus Torvalds */
491da177e4SLinus Torvalds 
501da177e4SLinus Torvalds #ifndef _LINUX_MWAVEPUB_H
511da177e4SLinus Torvalds #define _LINUX_MWAVEPUB_H
521da177e4SLinus Torvalds 
531da177e4SLinus Torvalds #include <linux/miscdevice.h>
541da177e4SLinus Torvalds 
551da177e4SLinus Torvalds 
561da177e4SLinus Torvalds typedef struct _MW_ABILITIES {
571da177e4SLinus Torvalds 	unsigned long instr_per_sec;
581da177e4SLinus Torvalds 	unsigned long data_size;
591da177e4SLinus Torvalds 	unsigned long inst_size;
601da177e4SLinus Torvalds 	unsigned long bus_dma_bw;
611da177e4SLinus Torvalds 	unsigned short uart_enable;
621da177e4SLinus Torvalds 	short component_count;
631da177e4SLinus Torvalds 	unsigned long component_list[7];
641da177e4SLinus Torvalds 	char mwave_os_name[16];
651da177e4SLinus Torvalds 	char bios_task_name[16];
661da177e4SLinus Torvalds } MW_ABILITIES, *pMW_ABILITIES;
671da177e4SLinus Torvalds 
681da177e4SLinus Torvalds 
691da177e4SLinus Torvalds typedef struct _MW_READWRITE {
701da177e4SLinus Torvalds 	unsigned short usDspAddress;	/* The dsp address */
711da177e4SLinus Torvalds 	unsigned long ulDataLength;	/* The size in bytes of the data or user buffer */
72833882b4SAl Viro 	void __user *pBuf;		/* Input:variable sized buffer */
731da177e4SLinus Torvalds } MW_READWRITE, *pMW_READWRITE;
741da177e4SLinus Torvalds 
751da177e4SLinus Torvalds #define IOCTL_MW_RESET           _IO(MWAVE_MINOR,1)
761da177e4SLinus Torvalds #define IOCTL_MW_RUN             _IO(MWAVE_MINOR,2)
771da177e4SLinus Torvalds #define IOCTL_MW_DSP_ABILITIES   _IOR(MWAVE_MINOR,3,MW_ABILITIES)
781da177e4SLinus Torvalds #define IOCTL_MW_READ_DATA       _IOR(MWAVE_MINOR,4,MW_READWRITE)
791da177e4SLinus Torvalds #define IOCTL_MW_READCLEAR_DATA  _IOR(MWAVE_MINOR,5,MW_READWRITE)
801da177e4SLinus Torvalds #define IOCTL_MW_READ_INST       _IOR(MWAVE_MINOR,6,MW_READWRITE)
811da177e4SLinus Torvalds #define IOCTL_MW_WRITE_DATA      _IOW(MWAVE_MINOR,7,MW_READWRITE)
821da177e4SLinus Torvalds #define IOCTL_MW_WRITE_INST      _IOW(MWAVE_MINOR,8,MW_READWRITE)
831da177e4SLinus Torvalds #define IOCTL_MW_REGISTER_IPC    _IOW(MWAVE_MINOR,9,int)
841da177e4SLinus Torvalds #define IOCTL_MW_UNREGISTER_IPC  _IOW(MWAVE_MINOR,10,int)
851da177e4SLinus Torvalds #define IOCTL_MW_GET_IPC         _IOW(MWAVE_MINOR,11,int)
861da177e4SLinus Torvalds #define IOCTL_MW_TRACE           _IOR(MWAVE_MINOR,12,MW_READWRITE)
871da177e4SLinus Torvalds 
881da177e4SLinus Torvalds 
891da177e4SLinus Torvalds #endif
90