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-A849B353-76E5-5AD6-851A-AF18C66AED48" xml:lang="en"><title>Generic
Driver Support Overview</title><shortdesc>Generic driver related concepts in Symbian platform. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<section id="GUID-DBF1C87D-7360-54B7-8658-B6659BF77F06-GENID-1-12-1-18-1-1-13-1-4-1-3-1"><title>Architecture</title> <p>The
role of a generic device driver is to give a user-side application access
to peripheral resources without exposing the operation of the underlying hardware.
A device driver is effectively an add-on to the kernel, and implements a polymorphic
interface defined by the kernel. It resides on the kernel side and therefore
has the same access rights, uses the kernel heap and links to the kernel,
so that it can call kernel functions. Typically, hardware indicates completion
of an operation by generating an interrupt. This is handled by an Interrupt
Service Routine (ISR) provided by the driver. An ISR is restricted in what
it can do, and must complete quickly. So it is normal for it to schedule a
Delayed Function Call (DFC) which at some later time runs in the context of
a kernel-side thread. Device driver services are generally asynchronous. A
device driver includes: </p> <ul>
<li id="GUID-DE0F5D5C-B3C2-547D-BE5B-EA80FE290A20"><p>A user-side API </p> </li>
<li id="GUID-33122E07-9C29-5138-8FBD-D8B34195091D"><p>Two kernel-side DLLs,
each of which exports a single factory function at ordinal 1 to create the
necessary kernel-side objects, namely </p> <ul>
<li id="GUID-33F58387-8EB1-559B-9410-F06F76DA436C"><p>Logical device driver
DLL with a file name extension <codeph>.ldd</codeph> </p> </li>
<li id="GUID-ED88F823-7883-5BEC-8E50-728F59901D05"><p>Physical device driver
DLL with a file name extension .pdd </p> </li>
</ul> </li>
</ul> </section>
<section id="GUID-A51AA612-F9DC-4A57-A110-BABB0002B624"><title>Components</title> <p>The
following components make up the generic driver support collection: </p> <ul>
<li id="GUID-10D21882-F873-5A7A-BF95-1099CF2D1105"><p>Generic Board Support
Packages </p> </li>
<li id="GUID-3537A6C7-9DA1-57D8-9C41-BA15A7647979"><p>Media Drivers </p> </li>
<li id="GUID-0DDB7C2E-2231-5C12-9650-5BEA71A21A89"><p>SD Card 3C Driver </p> </li>
<li id="GUID-60CCAEA4-0260-55DB-AD7E-4565C9866A9F"><p>SD Card 4C Driver </p> </li>
<li id="GUID-D196EB31-A9A9-591D-B193-D51A51CBF36C"><p>System On Chip ASSP </p> </li>
</ul> </section>
<section id="GUID-B6DCB613-80AF-416C-A8E2-3321CE02C1C6"><title>Using Generic
Driver Support</title> <ul>
<li id="GUID-F905C135-E1B0-5AB1-A131-5136CC4B45F7"><p>Generic Board Support
Packages - Generic Board Support Packages provides generic code for DMA framework,
power management and digitizer. </p> </li>
<li id="GUID-44105C97-F2CD-597C-8645-2A3556B711AE"><p>Media Drivers - The
Media Drivers collection provides the physical device drivers, called media
drivers, and associated libraries that manage storage media hardware. Some
media drivers have platform specific layers that a base port can implement
for particular types of storage hardware. </p> </li>
<li id="GUID-1A009040-46D7-5BE9-A31E-CECBF3FC0DF4"><p>SD Card 3C Driver -
SD Card 3C Driver provides media drivers and generic (PIL) parts of the stack
for accessing Secure Digital flash memory cards. </p> </li>
<li id="GUID-813297BC-3DC3-519A-9193-EACB6DDFBA2F"><p>SD Card 4C Driver -
SD Card 4C Driver provides media drivers and generic (PIL) parts of the stack
for accessing 4C type Secure Digital flash memory cards. </p> </li>
<li id="GUID-A424393A-EDA6-524A-9117-6AFB8595EF2D"><p>System On Chip ASSP
- System On Chip ASSP contains source for common hardware peripherals that
may be used by multiple BSPs. </p> </li>
</ul><note> 4C and 3C type SD card drivers are split, as they are available
under different licenses.</note> </section>
</conbody><related-links>
<link href="GUID-52371DAB-A231-558C-B3E6-220DAAEE566B.dita#GUID-52371DAB-A231-558C-B3E6-220DAAEE566B/GUID-D25228C5-D51E-54A3-A5D0-0B68A9E8E7C8">
<linktext>Logical Device Drivers and Generic Driver Support</linktext>
</link>
</related-links></concept>