Adaptation/GUID-F9051D21-3E4C-4645-BD04-06606E849AEF.dita
author Graeme Price <GRAEME.PRICE@NOKIA.COM>
Fri, 15 Oct 2010 14:32:18 +0100
changeset 15 307f4279f433
permissions -rw-r--r--
Initial contribution of the Adaptation Documentation.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-F9051D21-3E4C-4645-BD04-06606E849AEF" xml:lang="en"><title>Interrupt Interface Overview</title><shortdesc>Provides a summary of the Interrupt platform service interface.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>The Interrupt interface is provided by functions of the <xref href="GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3.dita"><apiname>Interrupt</apiname></xref> class. The class is defined in the <filepath>os/kernelhwsrv/kernel/eka/include/kernel/arm/assp.h</filepath> file.
The <codeph>Interrupt</codeph> class functions must be implemented
by the baseport variant to enable device drivers and other kernel
side code to handle the interrupts.</p>
<section id="GUID-77EF021F-41F9-4126-A8C6-B93885B64C27">         
   <title>Interrupt handling functions</title>   <table id="GUID-08A082CA-81EA-4B50-8901-BE0DB06093EA">
<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
<thead>
<row>
<entry valign="top">API</entry>
<entry valign="top">Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><xref href="GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3.dita#GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3/GUID-B594B453-899D-3066-9E45-A9A1AE54CAE4"><apiname>Interrupt::Bind(TInt anId, TIsr anIsr, TAny* aPtr)</apiname></xref></entry>
<entry>Allows an Interrupt Service Routine (ISR) to be associated
with a specified interrupt ID in the <codeph>anId </codeph> parameter.</entry>
</row>
<row>
<entry><xref href="GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3.dita#GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3/GUID-AE029812-8220-3970-80F6-6322B9D933BC"><apiname>Interrupt::Unbind(TInt anId)</apiname></xref></entry>
<entry>Unbinds an ISR from a specified interrupt ID.</entry>
</row>
<row>
<entry><xref href="GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3.dita#GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3/GUID-A0D94710-E832-36F9-B324-823BFA537C2E"><apiname>Interrupt::Enable(TInt anId)</apiname></xref></entry>
<entry>Enables a specified interrupt to be active and allows the associated
ISR to handle the interrupts.</entry>
</row>
<row>
<entry><xref href="GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3.dita#GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3/GUID-410A0ED1-CA83-396C-921B-766C4D0BEFF6"><apiname>Interrupt::Disable(TInt anId)</apiname></xref></entry>
<entry>Disable a specified interrupt.</entry>
</row>
<row>
<entry><xref href="GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3.dita#GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3/GUID-63C93F0D-F236-35D0-8E21-9FF1F96074B3"><apiname>Interrupt::Clear(TInt anId)</apiname></xref></entry>
<entry>Clears the interrupt pending condition in the interrupt controller
hardware.</entry>
</row>
<row>
<entry><xref href="GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3.dita#GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3/GUID-CD40CF24-7732-34FB-8FA1-34E0DCB9B474"><apiname>Interrupt::SetPriority(TInt anId, TInt aPriority)</apiname></xref></entry>
<entry>Change the priority of a specified interrupt.</entry>
</row>
<row>
<entry><xref href="GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3.dita#GUID-E7A7083C-97B9-39B9-A147-4A6E314EE3A3/GUID-C46E48EE-6F4A-3A61-A3C9-84B145119541"><apiname>Interrupt::AddTimingEntropy()</apiname></xref></entry>
<entry>Adds high resolution timestamp to the interrupt. This function
should be called by the device driver where the timing of the interrupts
are considered to be random. </entry>
</row>
</tbody>
</tgroup>
</table> <p>The header file for the Interrupt platform service can
be found <xref href="http://developer.symbian.org/xref/oss/xref/MCL/sf/os/kernelhwsrv/kernel/eka/include/kernel/arm/assp.h.dita">here</xref>.</p>        <note> The Interrupt platform service is
only used to associate an interrupt with an ISR. The Interrupt platform
service is not used to dispatch interrupts.</note></section>
</conbody></concept>