Adaptation/GUID-FCCF9634-0610-5199-A37A-CF2EC9B73261.dita
changeset 15 307f4279f433
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Adaptation/GUID-FCCF9634-0610-5199-A37A-CF2EC9B73261.dita	Fri Oct 15 14:32:18 2010 +0100
@@ -0,0 +1,112 @@
+<?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-FCCF9634-0610-5199-A37A-CF2EC9B73261" xml:lang="en"><title>Adaptation Quick Start</title><shortdesc>Adaptation involves extending software on the device to
+support a given hardware component. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-BC149020-EE8D-55ED-8254-75B70A4A1D3E"><title>Adaptation
+environment</title> <p>The functionality of a particular hardware
+technology is enabled when an interface to the standard for that technology
+is defined. </p> <p>The hardware is enabled when the following exist: </p> <ul>
+<li id="GUID-70F0057C-32FA-5AC5-922B-9FA853950490"><p>LDD – Logical
+Device Driver </p> </li>
+<li id="GUID-554F5C6F-F718-5FFA-8685-31D8322A513C"><p>PDD – Physical
+Device Driver </p> </li>
+</ul> </section>
+<section id="GUID-8298F0E2-1811-5C08-8C08-F6A5754EA678"><title>Kernel
+extensions</title> <p>Kernel extensions provide additional functionality
+in the kernel and run with the same access rights and permissions
+as the rest of the kernel. </p> <p>Adaptation device drivers (LDD/PDD)
+require low-level access to the device and implementing them as a
+kernel extension gives them this access. </p> <p><b>LDD</b> </p> <p>Each LDD has the following features: </p> <ul>
+<li id="GUID-7549B5B5-7E7C-5F7C-9A2F-81EB8FB7F9E7"><p>the LDD is a
+packaged DLL </p> </li>
+<li id="GUID-5A57648F-9657-5261-8068-4D7F946F1C04"><p>provides user
+side functionality </p> </li>
+<li id="GUID-740E0B4E-A993-577E-ACF4-2EDC8E8DE834"><p>loaded into
+the kernel </p> </li>
+<li id="GUID-0991A098-C7DC-5335-8AF1-567BD9C0EEF8"><p>calls a function
+that opens a <xref href="GUID-A3CC1D95-4681-3349-A67C-F113A614041D.dita"><apiname>DLogicalChannel</apiname></xref>  </p> </li>
+<li id="GUID-5BA91833-A9DC-5C07-B3CB-769FD2B4758C"><p>opens an <xref href="GUID-6FBFA078-8253-3E24-B1F8-5F75E86C3066.dita"><apiname>RBusLogicalChannel</apiname></xref>  </p> </li>
+<li id="GUID-0BB01A79-8D94-5BDB-BE4C-7B1A015950EE"><p>allows user
+code to communicate with the hardware and send commands to control
+the hardware </p> </li>
+<li id="GUID-9A42F726-DBF3-5559-A2D9-867B293D7A44"><p>defines an abstract
+class that must be implemented in the PDD </p> </li>
+</ul> <p>Mandatory – there must be one LDD for each hardware component. </p> <p id="GUID-1097C454-8236-5291-88FB-92F979FB3B78"><b>PDD</b> </p> <p>PDDs have the following features: </p> <ul>
+<li id="GUID-83481281-B6B0-50D2-A8B0-EDF6FDF7632B"><p>the PDD is a
+packaged DLL </p> </li>
+<li id="GUID-3B0AAFEC-786C-5003-B71A-B686C49034B4"><p>provides access
+to hardware </p> </li>
+<li id="GUID-E23527A0-4082-51E3-A3B1-200952C7B071"><p>loaded into
+the kernel </p> </li>
+<li id="GUID-9436F11E-6E53-5990-A2D5-625AFA815FD9"><p>calls a function
+that opens a physical channel </p> </li>
+<li id="GUID-285B2015-34B2-5BC5-8903-2BBE47E35CF3"><p>receives control
+commands and other communications through its interface with the LDD </p> </li>
+<li id="GUID-E3BA0A9E-4856-5831-86E3-6BC7702C7CC7"><p>may be an extension
+to an existing device driver </p> </li>
+</ul> <p>Mandatory – there must be one PDD for each hardware platform
+for each hardware component. </p> </section>
+<section id="GUID-A20284FD-D793-5650-94DF-D4DCB6BC0CC2"><title>Using
+Kernel extensions</title> <p>A Kernel Extension is additional functionality
+that runs as part of the kernel. </p> <p>For example, access to the
+SD Card is provided through a kernel extension. </p> <p><b>Adaptation ready architecture</b> </p> <p>Adaptation ready architecture
+means the following have been created: </p> <ul>
+<li id="GUID-90B150BC-C18A-5578-AC86-54D4525D28E4"><p>The LDD </p> </li>
+<li id="GUID-73DF2D9B-E53A-51C8-93C5-60AC883DDE18"><p>The abstract
+class that must be implemented in the PDD </p> </li>
+<li id="GUID-82E50357-5AB6-5975-9630-A9C7382F2FBB"><p>The interface
+to the user code </p> </li>
+<li id="GUID-CBA9DF88-CF53-519D-A792-3DBD3B548F25"><p>Any optional
+kernel extension DLLs </p> </li>
+<li id="GUID-D887C2E9-04FC-504F-A09A-5D9227AD4AEC"><p>Optional reference
+implementation PDD </p> </li>
+</ul> <p id="GUID-C10B0527-A1E1-54B0-A4B6-E4E991FD24B8"><b>Adaptation options</b> </p> <p>There are broadly two types of hardware adaptation: </p> <ul>
+<li id="GUID-716ACF8A-278F-5FDA-A27A-2634EB6F24E5"><p>New hardware </p> </li>
+<li id="GUID-6E1419FA-99EB-5183-A1E3-5F998995D96E"><p>Updated hardware </p> </li>
+</ul> <p> <i>New hardware</i>  </p> <p>The entire adaptation architecture,
+as described above, must be defined. This includes: </p> <ul>
+<li id="GUID-12A35E7B-3F03-5D4D-83C9-EA61BAD0D193"><p>Defining an
+abstract class that the PDD creators are required to implement, creating
+an LDD and so on. </p> </li>
+<li id="GUID-EA64CF53-61C4-531D-89C2-6B580A6E75C4"><p>The architecture
+enables the new hardware. </p> </li>
+<li id="GUID-0AA5340B-647E-535C-B183-D0E886017093"><p>The architecture
+allows hardware manufacturers to create their own implementation (PDD). </p> </li>
+</ul> <p>New hardware adaptation will be supported with a reference
+implementation, which will go a long way towards guiding the device
+developer’s efforts. </p> <p> <i>Updated hardware</i>  </p> <p>Updated
+hardware which provides new or modified functionality requires a new
+PDD to be created to either extend the functionality of the existing
+PDD or to replace the existing PDD. </p> <p>In most cases the new
+functionality of the hardware will be enabled by extending the architecture
+with a new extension PDD or be writing a new PDD that incorporates
+all the existing and new functionality. </p> <p>There are situations
+where the entire adaptation architecture needs to be extended or redesigned,
+such as when a hardware component is extended in a way that was not
+expected. The Bluetooth baseband radio being extended to provide Bluetooth,
+802.11, and FM radio from the same hardware component, for example,
+will require a redesign of the adaptation architecture so the LDD
+knows about 802.11 and FM as well as Bluetooth. Such a redesign should
+ensure older Bluetooth PDDs will still work while extending the possible
+PDDs that will work with the LDD to include Bluetooth, 802.11, FM
+radio, and a combination of the above. </p> </section>
+<section id="GUID-AC29A1E3-4FAF-41EC-A08A-CCCE8B28AB02"><title>Where
+to go next</title> <p>Adaptation is described in more detail in these
+documents:</p><ul>
+<li><xref href="GUID-D5EE0A17-2246-4CB3-9CE5-538F1E01F8D4.dita">What is
+Adaptation?</xref></li>
+<li><xref href="GUID-95BD3650-08CB-407D-969E-DFDB39B2FEFC.dita">What is
+a Platform Service?</xref></li>
+<li><xref href="GUID-C9923DF3-8425-4EB4-8066-FB5A92A85F5B.dita">Adaptation
+Process Guide</xref></li>
+</ul> </section>
+</conbody></concept>
\ No newline at end of file