Adaptation/GUID-CFE0A4EB-845C-43B6-A732-AA155AFD99D6.dita
changeset 15 307f4279f433
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Adaptation/GUID-CFE0A4EB-845C-43B6-A732-AA155AFD99D6.dita	Fri Oct 15 14:32:18 2010 +0100
@@ -0,0 +1,41 @@
+<?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-CFE0A4EB-845C-43B6-A732-AA155AFD99D6" xml:lang="en"><title>User
+Requests and Synchronisation</title><shortdesc>This document introduces user requests and synchronisation methods
+used by device drivers.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-B206AAEC-9750-44BB-B2FC-70613D3AEAB9">       <title>Types
+of user request</title>       <p>User-side requests to a driver can be of
+three types: synchronous, asynchronous, and cancellation of an asynchronous
+request. User requests can be handled in two different ways, based on the
+logical channel model used by the device driver. A channel implementation
+is derived from either: </p> <ul>
+<li id="GUID-7FB5FD8B-A33D-5AC2-9913-F741AB04853F"><p> <xref href="GUID-E7550422-5121-3393-A85E-BB797969CD2A.dita"><apiname>DLogicalChannelBase</apiname></xref>:
+the driver developer decides how a request is handled. </p> </li>
+<li id="GUID-0E2BF6E4-4B7C-5B8D-8A56-0E7607BB53EB"><p> <xref href="GUID-A3CC1D95-4681-3349-A67C-F113A614041D.dita"><apiname>DLogicalChannel</apiname></xref>:
+this is derived from <codeph>DLogicalChannelBase</codeph>, and implements
+a basic mechanism for handling requests. </p> </li>
+</ul> <p>In the <codeph>DLogicalChannel</codeph> derived model, requests from
+user threads to the driver are queued as messages and handled sequentially
+by a single Kernel side DFC. This is the model described in this section.
+More details on the differences between the models can be found in<xref href="GUID-0956CE5E-C02B-5EEE-890A-5E8E84A8D9A1.dita">Logical
+Channel</xref> documentation. </p> <p>All requests from the user result in
+a call to a single function <xref href="GUID-E7550422-5121-3393-A85E-BB797969CD2A.dita#GUID-E7550422-5121-3393-A85E-BB797969CD2A/GUID-FD4DA73F-45E7-37BE-9380-1D8ED36114F7"><apiname>DLogicalChannelBase::Request()</apiname></xref>.
+In this function the driver determines the type of the request, i.e. synchronous,
+asynchronous, or cancel, and implements handling of the requests. </p>   
+ </section>
+<section id="GUID-0C209A93-7FFE-4C63-A362-A6674D941E9C"><title>Synchronisation
+methods</title><p>A driver uses the following synchronisation methods.</p><ul>
+<li>Deferred Function Calls</li>
+<li>Timers</li>
+<li>Generated Events</li>
+</ul></section>
+</conbody></concept>
\ No newline at end of file