Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
<?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-2ADB873A-1580-476A-9642-AB47D13D4A98" xml:lang="en"><title>Driver
Source Files</title><shortdesc>This document details the directory structure and file types of
logical device drivers and physical device drivers.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<section id="GUID-437190D1-9F2D-450E-A659-B2EDE09A98B6"> <title>Directory
structure</title> <p>Device driver DLLs come in two types - the logical
device driver (LDD), and the physical device driver (PDD). Typically, a single
LDD supports functionality common to a class of hardware devices, whereas
a PDD supports a specific member of that class. </p> <p>In Symbian platform
source code, PDDs are part of variant baseports, while LDDs are stored in
a shared location that is not specific to a particular variant: </p> <ul>
<li id="GUID-AA32E34F-DA8E-5093-B2F2-A05C6FF5878C"><p>PDD source files (<filepath>.cpp</filepath>, <filepath>.h</filepath> and <filepath>.mmp</filepath>) for peripherals for the H4 variant are in source directories named <filepath>base\omap_hrp\h4\</filepath> <<i>driver_pdd</i> >. </p> </li>
<li id="GUID-59BCB89E-4DDA-5EC5-9CE7-766929578688"><p>PDD source files (<filepath>.cpp</filepath>, <filepath>.h</filepath> and <filepath>.mmp</filepath>) for peripherals for the Emulator variant are in source directories named <filepath>base\wins\</filepath> <<i>driver_pdd</i> >. </p> </li>
<li id="GUID-E6C48B50-6ACA-58DE-A17A-159FECCC419E"><p>LDD source files are
in source directories named <filepath>base\e32\</filepath> <<i>driver</i> _<i>ldd</i> >,
which are shared for all variants. </p> </li>
<li id="GUID-79EFD591-60E9-5949-B1DB-1E7F9BFEF94A"><p>Common test application
source files are in source directories named <filepath>base\e32test\</filepath> <<i>driver_test</i> >. </p> </li>
</ul> <p>For both types of driver, the source files are generally organised
in the following sub-directories: </p> <ul>
<li id="GUID-7C92DAB4-607D-5E28-B40E-CE6BE889F54D"><p><<i>driver</i> ><filepath>\group</filepath> – <filepath>.mmp</filepath> files </p> </li>
<li id="GUID-D4D7A72B-B45D-5142-9567-23D913AE09D1"><p><<i>driver</i> ><filepath>\inc</filepath> – <filepath>.h</filepath> files </p> </li>
<li id="GUID-5C955F3B-B490-5CB1-90EA-AB51F2B86ECD"><p><<i>driver</i> ><filepath>\src</filepath> – <filepath>.cpp</filepath> files </p> </li>
</ul> </section>
<section id="GUID-F0256258-9C68-4598-9848-54D1BE43C63D"><title>File extensions</title> <p>The
project files of a device driver that is part of the Kernel code are similar
to those for other components in Symbian platform. The following tables summarise
the source and binary file types you will see: </p> <table id="GUID-0EFAD42A-E690-5143-93A8-29EC596B72B6">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p> <b>Source File Type</b> </p> </entry>
<entry><p> <b>Description</b> </p> </entry>
</row>
<row>
<entry><p> <filepath> .h</filepath> </p> </entry>
<entry><p>Include files </p> </entry>
</row>
<row>
<entry><p> <filepath> .cpp</filepath> </p> </entry>
<entry><p>Source files </p> </entry>
</row>
<row>
<entry><p> <filepath> .inl</filepath> </p> </entry>
<entry><p>Inline files </p> </entry>
</row>
<row>
<entry><p> <filepath> .mmp</filepath> </p> </entry>
<entry><p>Project file, similar to a makefile in other operating systems </p> </entry>
</row>
<row>
<entry><p> <filepath> .inf</filepath> </p> </entry>
<entry><p>Build file grouping multiple mmp files. Command line builds are
done from this file's directory. </p> </entry>
</row>
<row>
<entry><p> <filepath> .iby</filepath> </p> </entry>
<entry><p>ROM include file. This file specifies the built files that need
to be included in a ROM image. This is not used in builds for the Emulator. </p> </entry>
</row>
</tbody>
</tgroup>
</table> <p> </p> <table id="GUID-23EBCA5D-F979-54D7-B3D8-75CB1BEFBC92">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p> <b>Binary File Type</b> </p> </entry>
<entry><p> <b>Description</b> </p> </entry>
</row>
<row>
<entry><p> <filepath> .ldd</filepath> </p> </entry>
<entry><p>Logical Device Driver target. A LDD contains code that is common
to a class of hardware devices. </p> </entry>
</row>
<row>
<entry><p> <filepath> .pdd</filepath> </p> </entry>
<entry><p>Physical Device Driver target. A PDD contains code that is specific
to one particular type of device. </p> </entry>
</row>
<row>
<entry><p> <filepath> .exe</filepath> </p> </entry>
<entry><p>Application executable target. </p> </entry>
</row>
<row>
<entry><p> <filepath> .ext</filepath> </p> </entry>
<entry><p>Kernel extension target, a driver that is started when the kernel
boots. </p> </entry>
</row>
</tbody>
</tgroup>
</table> </section>
</conbody></concept>