<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>

<book id="MCAGuide">
 <bookinfo>
  <title>MCA Driver Programming Interface</title>
  
  <authorgroup>
   <author>
    <firstname>Alan</firstname>
    <surname>Cox</surname>
    <affiliation>
     <address>
      <email>alan@redhat.com</email>
     </address>
    </affiliation>
   </author>
   <author>
    <firstname>David</firstname>
    <surname>Weinehall</surname>
   </author>
   <author>
    <firstname>Chris</firstname>
    <surname>Beauregard</surname>
   </author>
  </authorgroup>

  <copyright>
   <year>2000</year>
   <holder>Alan Cox</holder>
   <holder>David Weinehall</holder>
   <holder>Chris Beauregard</holder>
  </copyright>

  <legalnotice>
   <para>
     This documentation is free software; you can redistribute
     it and/or modify it under the terms of the GNU General Public
     License as published by the Free Software Foundation; either
     version 2 of the License, or (at your option) any later
     version.
   </para>
      
   <para>
     This program is distributed in the hope that it will be
     useful, but WITHOUT ANY WARRANTY; without even the implied
     warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     See the GNU General Public License for more details.
   </para>
      
   <para>
     You should have received a copy of the GNU General Public
     License along with this program; if not, write to the Free
     Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
     MA 02111-1307 USA
   </para>
      
   <para>
     For more details see the file COPYING in the source
     distribution of Linux.
   </para>
  </legalnotice>
 </bookinfo>

<toc></toc>

  <chapter id="intro">
      <title>Introduction</title>
  <para>
    The MCA bus functions provide a generalised interface to find MCA
    bus cards, to claim them for a driver, and to read and manipulate POS 
    registers without being aware of the motherboard internals or 
    certain deep magic specific to onboard devices.
  </para>
  <para>
    The basic interface to the MCA bus devices is the slot. Each slot
    is numbered and virtual slot numbers are assigned to the internal
    devices. Using a pci_dev as other busses do does not really make
    sense in the MCA context as the MCA bus resources require card
    specific interpretation.
  </para>
  <para>
    Finally the MCA bus functions provide a parallel set of DMA
    functions mimicing the ISA bus DMA functions as closely as possible,
    although also supporting the additional DMA functionality on the
    MCA bus controllers.
  </para>
  </chapter>
  <chapter id="bugs">
     <title>Known Bugs And Assumptions</title>
  <para>
    None.    
  </para>
  </chapter>

  <chapter id="pubfunctions">
     <title>Public Functions Provided</title>
!Earch/i386/kernel/mca.c
  </chapter>

  <chapter id="dmafunctions">
     <title>DMA Functions Provided</title>
!Iinclude/asm-i386/mca_dma.h
  </chapter>

</book>