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