Add export of def files, add requesthandlerextension import library, and fix files to to unix line ending bug235_bringup_0
authorFaisal Memon <faisal.memon@nokia.com>
Fri, 20 Aug 2010 16:18:46 +0100
branchbug235_bringup_0
changeset 153 d8f29c307082
parent 148 706129140cfc
child 154 0ae4976a79ef
Add export of def files, add requesthandlerextension import library, and fix files to to unix line ending
graphics_plat/guestvideodriver_api/eabi/guestvideodriveru.def
graphics_plat/guestvideodriver_api/eabi/guestvideohwu.def
graphics_plat/guestvideodriver_api/group/bld.inf
graphics_plat/guestvideodriver_api/group/guestvideodriverlib.mmp
graphics_plat/guestvideodriver_api/group/guestvideohwlib.mmp
graphics_plat/guestvideodriver_api/inc/guestvideodriver.h
graphics_plat/guestvideodriver_api/inc/guestvideodrivercommon.h
graphics_plat/guestvideodriver_api/inc/guestvideodriverinterfaceconstants.h
graphics_plat/guestvideodriver_api/inc/guestvideodriverprotocol.h
graphics_plat/guestvideodriver_api/ldd/eabi/reqhandlerextensionu.def
graphics_plat/guestvideodriver_api/ldd/group/bld.inf
graphics_plat/guestvideodriver_api/ldd/group/reqhandlerextensionlib.mmp
graphics_plat/surfacemanager_api/bwins/surfacemanageru.def
graphics_plat/surfacemanager_api/eabi/surfacemanageru.def
graphics_plat/surfacemanager_api/group/bld.inf
graphics_plat/surfacemanager_api/group/surfacemanager.iby
graphics_plat/surfacemanager_api/group/surfacemanagerlib.mmp
graphics_plat/surfacemanager_api/inc/surface_hints.h
graphics_plat/surfacemanager_api/inc/surfacemanager.h
--- a/graphics_plat/guestvideodriver_api/eabi/guestvideodriveru.def	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/eabi/guestvideodriveru.def	Fri Aug 20 16:18:46 2010 +0100
@@ -1,1 +1,1 @@
-EXPORTS
+EXPORTS
--- a/graphics_plat/guestvideodriver_api/eabi/guestvideohwu.def	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/eabi/guestvideohwu.def	Fri Aug 20 16:18:46 2010 +0100
@@ -1,2 +1,2 @@
-EXPORTS
-_ZN24DVirtualVideoHwInterface12GetFrameBaseEv @ 1 NONAME
+EXPORTS
+_ZN24DVirtualVideoHwInterface12GetFrameBaseEv @ 1 NONAME
--- a/graphics_plat/guestvideodriver_api/group/bld.inf	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/group/bld.inf	Fri Aug 20 16:18:46 2010 +0100
@@ -1,40 +1,44 @@
-// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "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:
-//
-// Description:
-// Guest side Virtual Video Driver Interface for adaptation layer software use
-//
-// This interface component provides an interface for adapt layer callers
-// only so one adapt layer package can call another adapy layer package.
-// The graphics package, nor any other app, mw, or os layer package may
-// call this interface.
-
-PRJ_PLATFORMS
-ARMV5
-
-PRJ_EXPORTS
-../inc/guestvideodriver.h					OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodriver.h)
-../inc/guestvideodrivercommon.h				OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodrivercommon.h)
-../inc/guestvideodriverinterfaceconstants.h	OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodriverinterfaceconstants.h)
-../inc/guestvideodriverprotocol.h			OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodriverprotocol.h)
-
-../ldd/inc/devicereqhandler.h				OS_LAYER_PLATFORM_EXPORT_PATH(graphics/devicereqhandler.h)
-../ldd/inc/reqhandlerextension.h			OS_LAYER_PLATFORM_EXPORT_PATH(graphics/reqhandlerextension.h)
-../ldd/inc/virtualvideohwchannel.h			OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwchannel.h)
-../ldd/inc/virtualvideohwdevice.h			OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwdevice.h)
-../ldd/inc/virtualvideohwdeviceinterface.h	OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwdeviceinterface.h)
-../ldd/inc/virtualvideohwinterface.h		OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwinterface.h)
-../ldd/inc/virtualvideotracing.h			OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideotracing.h)
-
-PRJ_MMPFILES
-guestvideodriverlib.mmp
-guestvideohwlib.mmp
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+// Description:
+// Guest side Virtual Video Driver Interface for adaptation layer software use
+//
+// This interface component provides an interface for adapt layer callers
+// only so one adapt layer package can call another adapt layer package.
+// The graphics package, nor any other app, mw, or os layer package may
+// call this interface.
+
+#include "../ldd/group/bld.inf"
+
+PRJ_PLATFORMS
+ARMV5
+
+PRJ_EXPORTS
+../inc/guestvideodriver.h					OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodriver.h)
+../inc/guestvideodrivercommon.h				OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodrivercommon.h)
+../inc/guestvideodriverinterfaceconstants.h	OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodriverinterfaceconstants.h)
+../inc/guestvideodriverprotocol.h			OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodriverprotocol.h)
+
+../ldd/inc/devicereqhandler.h				OS_LAYER_PLATFORM_EXPORT_PATH(graphics/devicereqhandler.h)
+../ldd/inc/reqhandlerextension.h			OS_LAYER_PLATFORM_EXPORT_PATH(graphics/reqhandlerextension.h)
+../ldd/inc/virtualvideohwchannel.h			OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwchannel.h)
+../ldd/inc/virtualvideohwdevice.h			OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwdevice.h)
+../ldd/inc/virtualvideohwdeviceinterface.h	OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwdeviceinterface.h)
+../ldd/inc/virtualvideohwinterface.h		OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwinterface.h)
+../ldd/inc/virtualvideotracing.h			OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideotracing.h)
+../eabi/guestvideodriveru.def				/epoc32/include/def/eabi/guestvideodriveru.def
+../eabi/guestvideohwu.def					/epoc32/include/def/eabi/guestvideohwu.def
+
+PRJ_MMPFILES
+guestvideodriverlib.mmp
+guestvideohwlib.mmp
--- a/graphics_plat/guestvideodriver_api/group/guestvideodriverlib.mmp	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/group/guestvideodriverlib.mmp	Fri Aug 20 16:18:46 2010 +0100
@@ -1,21 +1,21 @@
-// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "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:
-//
-// Description:
-// Provide a library interface for the guest video driver.  This interface
-// is expected to be implemented in an adapt layer component.
-
-#include <platform_paths.hrh>
-
-TARGET          guestvideodriver.lib
-TARGETTYPE      IMPLIB
-DEFFILE         ../eabi/guestvideodriver.def
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+// Description:
+// Provide a library interface for the guest video driver.  This interface
+// is expected to be implemented in an adapt layer component.
+
+#include <platform_paths.hrh>
+
+TARGET          guestvideodriver.lib
+TARGETTYPE      IMPLIB
+DEFFILE         ../eabi/guestvideodriver.def
--- a/graphics_plat/guestvideodriver_api/group/guestvideohwlib.mmp	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/group/guestvideohwlib.mmp	Fri Aug 20 16:18:46 2010 +0100
@@ -1,21 +1,21 @@
-// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "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:
-//
-// Description:
-// Provide a library interface for the guest video hardware device.  This
-// interface is expected to be implemented in an adapt layer component.
-
-#include <platform_paths.hrh>
-
-TARGET          guestvideohw.lib
-TARGETTYPE      IMPLIB
-DEFFILE         ../eabi/guestvideohw.def
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+// Description:
+// Provide a library interface for the guest video hardware device.  This
+// interface is expected to be implemented in an adapt layer component.
+
+#include <platform_paths.hrh>
+
+TARGET          guestvideohw.lib
+TARGETTYPE      IMPLIB
+DEFFILE         ../eabi/guestvideohw.def
--- a/graphics_plat/guestvideodriver_api/inc/guestvideodriver.h	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/inc/guestvideodriver.h	Fri Aug 20 16:18:46 2010 +0100
@@ -1,96 +1,96 @@
-// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "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:
-//
-// Description:
-// Header file for guest video driver
-
-#ifndef __GUESTVIDEODRIVER_H__
-#define __GUESTVIDEODRIVER_H__
-
-#include <e32cmn.h>
-#include <e32std.h>
-#include <babitflags.h>
-
-#include "guestvideodrivercommon.h"
-
-class RemoteFunctionCallData;
-
-//Local request buffering size
-const TInt KRequestBufferSize = 20000;
-
-/**
- * Guest video driver user API. One instance exists per process.
- */
-NONSHARABLE_CLASS(RGuestVideoDriver) : public RBusLogicalChannel
-    {
-public:
-	// Default constructor
-	IMPORT_C RGuestVideoDriver();
-
-	// Destructor
-	IMPORT_C ~RGuestVideoDriver();
-
-	/**
-	 * Opens this driver handle. Calls RBusLogicalChannel::DoCreate.
-	 * 
-	 * @return System wide error code
-	 */
-	IMPORT_C TInt Open();
-
-	/**
-	 * Executes a command 
-	 * @param aRequestData Remote function call
-	 */
-	IMPORT_C void ExecuteCommand(RemoteFunctionCallData& aRequestData);
-
-	/**
-	 * Flushes any buffered commands.
-	 */
-	IMPORT_C void Flush();
-
-	IMPORT_C TInt MapToHWAddress( const TInt aChunkHandle, TUint32& aHWAddress );
-
-	IMPORT_C TInt EglGetSgHandles( const TUint64 aId, TUint64 *aSgHandles );
-
-	/**
-     * Gets Base Address of Frame Buffer
-     * @param aHWAddress	returned Base Address
-     *
-	 * @note	A base address of 0 is invalid, and indicates a failure to
-     *          obtain the base address.
-	 */
-	IMPORT_C TInt GetFrameBufferBaseAddress( TUint32& aHWAddress );
-
-
-private:
-	/*
-	 Buffer, or send if it needs a reply, a command to the virtual video hardware
-	 @param aRFC Remote function call to buffer
-	 @return ETrue if buffering succeeds, otherwise the aRFC needs to be executed directly
-	 */
-	TBool BufferCommand( RemoteFunctionCallData& aRFC );
-
-	// Sends buffered commands 
-	void SendBuffer();
-
-private:
-	TBool     iIsOpen;
-	RMutex    iThreadLock;
-	/**
-	 * Request buffer
-	 */
-	TUint32                   iProcessId;
-	TBuf8<KRequestBufferSize> iBuffer;
-    };
-
-
-#endif // __GUESTVIDEODRIVER_H__
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+// Description:
+// Header file for guest video driver
+
+#ifndef __GUESTVIDEODRIVER_H__
+#define __GUESTVIDEODRIVER_H__
+
+#include <e32cmn.h>
+#include <e32std.h>
+#include <babitflags.h>
+
+#include "guestvideodrivercommon.h"
+
+class RemoteFunctionCallData;
+
+//Local request buffering size
+const TInt KRequestBufferSize = 20000;
+
+/**
+ * Guest video driver user API. One instance exists per process.
+ */
+NONSHARABLE_CLASS(RGuestVideoDriver) : public RBusLogicalChannel
+    {
+public:
+	// Default constructor
+	IMPORT_C RGuestVideoDriver();
+
+	// Destructor
+	IMPORT_C ~RGuestVideoDriver();
+
+	/**
+	 * Opens this driver handle. Calls RBusLogicalChannel::DoCreate.
+	 * 
+	 * @return System wide error code
+	 */
+	IMPORT_C TInt Open();
+
+	/**
+	 * Executes a command 
+	 * @param aRequestData Remote function call
+	 */
+	IMPORT_C void ExecuteCommand(RemoteFunctionCallData& aRequestData);
+
+	/**
+	 * Flushes any buffered commands.
+	 */
+	IMPORT_C void Flush();
+
+	IMPORT_C TInt MapToHWAddress( const TInt aChunkHandle, TUint32& aHWAddress );
+
+	IMPORT_C TInt EglGetSgHandles( const TUint64 aId, TUint64 *aSgHandles );
+
+	/**
+     * Gets Base Address of Frame Buffer
+     * @param aHWAddress	returned Base Address
+     *
+	 * @note	A base address of 0 is invalid, and indicates a failure to
+     *          obtain the base address.
+	 */
+	IMPORT_C TInt GetFrameBufferBaseAddress( TUint32& aHWAddress );
+
+
+private:
+	/*
+	 Buffer, or send if it needs a reply, a command to the virtual video hardware
+	 @param aRFC Remote function call to buffer
+	 @return ETrue if buffering succeeds, otherwise the aRFC needs to be executed directly
+	 */
+	TBool BufferCommand( RemoteFunctionCallData& aRFC );
+
+	// Sends buffered commands 
+	void SendBuffer();
+
+private:
+	TBool     iIsOpen;
+	RMutex    iThreadLock;
+	/**
+	 * Request buffer
+	 */
+	TUint32                   iProcessId;
+	TBuf8<KRequestBufferSize> iBuffer;
+    };
+
+
+#endif // __GUESTVIDEODRIVER_H__
--- a/graphics_plat/guestvideodriver_api/inc/guestvideodrivercommon.h	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/inc/guestvideodrivercommon.h	Fri Aug 20 16:18:46 2010 +0100
@@ -1,49 +1,49 @@
-// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "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:
-//
-// Description:
-// Header file for guest video driver
-
-#ifndef __GUESTVIDEODRIVERCOMMON_H
-#define __GUESTVIDEODRIVERCOMMON_H
-
-#include <e32cmn.h>
-
-/**
- * Namespace for Platform Simulator Audio Driver.
- */
-namespace GuestVideoDriver
-    {
-    /**
-     * Name of the DFC thread used by logical channels.
-     */
-    _LIT( KDfcThreadName, "DfcThreadVirtualVideoHw" );
-    
-    /**
-     * Name of the logical device used to identify the device.
-     */
-    _LIT( KDeviceName, "VirtualVideoHwDevice" );
-
-    /**
-     * Name of the logical device dll file name.
-     */
-    _LIT( KDeviceFileName, "guestvideohw" );
-
-    /**
-     * Current version of the driver.
-     */
-    const TInt KMajorVer = 1;
-    const TInt KMinorVer = 0;
-    const TInt KBuildVer = 1;
-    }
-
-#endif // __GUESTVIDEODRIVERCOMMON_H
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+// Description:
+// Header file for guest video driver
+
+#ifndef __GUESTVIDEODRIVERCOMMON_H
+#define __GUESTVIDEODRIVERCOMMON_H
+
+#include <e32cmn.h>
+
+/**
+ * Namespace for Platform Simulator Audio Driver.
+ */
+namespace GuestVideoDriver
+    {
+    /**
+     * Name of the DFC thread used by logical channels.
+     */
+    _LIT( KDfcThreadName, "DfcThreadVirtualVideoHw" );
+    
+    /**
+     * Name of the logical device used to identify the device.
+     */
+    _LIT( KDeviceName, "VirtualVideoHwDevice" );
+
+    /**
+     * Name of the logical device dll file name.
+     */
+    _LIT( KDeviceFileName, "guestvideohw" );
+
+    /**
+     * Current version of the driver.
+     */
+    const TInt KMajorVer = 1;
+    const TInt KMinorVer = 0;
+    const TInt KBuildVer = 1;
+    }
+
+#endif // __GUESTVIDEODRIVERCOMMON_H
--- a/graphics_plat/guestvideodriver_api/inc/guestvideodriverinterfaceconstants.h	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/inc/guestvideodriverinterfaceconstants.h	Fri Aug 20 16:18:46 2010 +0100
@@ -1,58 +1,58 @@
-// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "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:
-//
-// Description:
-// Header file for the guest video driver
-
-#ifndef VirtualVideoInterfaceConstants_h_
-#define VirtualVideoInterfaceConstants_h_
-
-//      virtualhw.irq => ic.input[391];
-//        pvbus.pvbus_m_range[0x60000000..0x62ffffff] => graphicsvirtualhw.mbus; //=>Reserve own memory area later
-//        pvbus.pvbus_m_range[0x63000000..0x63000fff] => graphicsvirtualhw.pbus; //=>Reserve own memory area later                
-
-// base address
-#define VVI_REGISTERS_BASE_ADDRESS 0x63000000
-#define VVI_REGISTERS_MEMORY_SIZE 0x1000
-#define VVI_REGISTERS_MASK 0x0FFF
-
-#define VVI_PARAMETERS_INPUT_BASE_ADDRESS 0x60000000
-#define VVI_PARAMETERS_INPUT_MEMORY_SIZE  0x01000000
-
-#define VVI_PARAMETERS_OUTPUT_BASE_ADDRESS 0x61000000
-#define VVI_PARAMETERS_OUTPUT_MEMORY_SIZE  0x01000000
-
-#define VVI_FRAMEBUFFER_BASE_ADDRESS 0x62000000
-#define VVI_FRAMEBUFFER_MEMORY_SIZE  0x01000000
-
-// register indices, TODO: cleanup needed, some are not used
-#define VVI_R_ID                       0x0000
-#define VVI_R_IRQ_ENABLE               0x0004
-#define VVI_R_IRQ_STATUS               0x0008
-#define VVI_R_COMMAND                  0x000c
-#define VVI_R_PARAMETER_LOAD           0x0010
-#define VVI_R_ERROR                    0x0014
-#define VVI_R_INPUT_BUFFER_TAIL        0x0018
-#define VVI_R_INPUT_BUFFER_HEAD        0x001c
-#define VVI_R_INPUT_BUFFER_READ_COUNT  0x0020
-#define VVI_R_INPUT_BUFFER_WRITE_COUNT 0x0024
-#define VVI_R_INPUT_BUFFER_MAX_TAIL    0x0028
-#define VVI_R_REQUEST_ID               0x002c
-#define VVI_R_LASTREG                  0x0030  // not a register, address of last register
-
-// COMMAND register values
-#define VVI_EXECUTE 0
-
-//IRQ number
-#define VVI_IRQ 391
-
-#endif
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+// Description:
+// Header file for the guest video driver
+
+#ifndef VirtualVideoInterfaceConstants_h_
+#define VirtualVideoInterfaceConstants_h_
+
+//      virtualhw.irq => ic.input[391];
+//        pvbus.pvbus_m_range[0x60000000..0x62ffffff] => graphicsvirtualhw.mbus; //=>Reserve own memory area later
+//        pvbus.pvbus_m_range[0x63000000..0x63000fff] => graphicsvirtualhw.pbus; //=>Reserve own memory area later                
+
+// base address
+#define VVI_REGISTERS_BASE_ADDRESS 0x63000000
+#define VVI_REGISTERS_MEMORY_SIZE 0x1000
+#define VVI_REGISTERS_MASK 0x0FFF
+
+#define VVI_PARAMETERS_INPUT_BASE_ADDRESS 0x60000000
+#define VVI_PARAMETERS_INPUT_MEMORY_SIZE  0x01000000
+
+#define VVI_PARAMETERS_OUTPUT_BASE_ADDRESS 0x61000000
+#define VVI_PARAMETERS_OUTPUT_MEMORY_SIZE  0x01000000
+
+#define VVI_FRAMEBUFFER_BASE_ADDRESS 0x62000000
+#define VVI_FRAMEBUFFER_MEMORY_SIZE  0x01000000
+
+// register indices, TODO: cleanup needed, some are not used
+#define VVI_R_ID                       0x0000
+#define VVI_R_IRQ_ENABLE               0x0004
+#define VVI_R_IRQ_STATUS               0x0008
+#define VVI_R_COMMAND                  0x000c
+#define VVI_R_PARAMETER_LOAD           0x0010
+#define VVI_R_ERROR                    0x0014
+#define VVI_R_INPUT_BUFFER_TAIL        0x0018
+#define VVI_R_INPUT_BUFFER_HEAD        0x001c
+#define VVI_R_INPUT_BUFFER_READ_COUNT  0x0020
+#define VVI_R_INPUT_BUFFER_WRITE_COUNT 0x0024
+#define VVI_R_INPUT_BUFFER_MAX_TAIL    0x0028
+#define VVI_R_REQUEST_ID               0x002c
+#define VVI_R_LASTREG                  0x0030  // not a register, address of last register
+
+// COMMAND register values
+#define VVI_EXECUTE 0
+
+//IRQ number
+#define VVI_IRQ 391
+
+#endif
--- a/graphics_plat/guestvideodriver_api/inc/guestvideodriverprotocol.h	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/inc/guestvideodriverprotocol.h	Fri Aug 20 16:18:46 2010 +0100
@@ -1,45 +1,45 @@
-// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "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:
-//
-// Description:
-// Header file for the guest video driver
-
-
-#ifndef __GUESTVIDEODRIVERPROTOCOL_H
-#define __GUESTVIDEODRIVERPROTOCOL_H
-
-#include <e32cmn.h>
-#include "guestvideodrivercommon.h"
-
-/**
- * Namespace for Platform Simulator Video Driver.
- * The user API - kernel LDD messaging protocol is defined within this
- * namespace.
- */
-namespace GuestVideoDriver
-    {
-
-    /**
-     * Enumeration of different requests
-     */
-    enum TRequestId
-        {
-        ERequestExecuteCommand = 0x1001, // Asynchronous (DoRequest)
-        ERequestMapAddress = 0x1002, // Synchronous (DoControl)
-        ERequestLoadCommands = 0x1004, // Synchronous (DoRequest)
-        ERequestSgHandles = 0x1005, //Synchronous (DoControl)
-        };
-
-    }
-
-
-#endif // __GUESTVIDEODRIVERPROTOCOL_H
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+// Description:
+// Header file for the guest video driver
+
+
+#ifndef __GUESTVIDEODRIVERPROTOCOL_H
+#define __GUESTVIDEODRIVERPROTOCOL_H
+
+#include <e32cmn.h>
+#include "guestvideodrivercommon.h"
+
+/**
+ * Namespace for Platform Simulator Video Driver.
+ * The user API - kernel LDD messaging protocol is defined within this
+ * namespace.
+ */
+namespace GuestVideoDriver
+    {
+
+    /**
+     * Enumeration of different requests
+     */
+    enum TRequestId
+        {
+        ERequestExecuteCommand = 0x1001, // Asynchronous (DoRequest)
+        ERequestMapAddress = 0x1002, // Synchronous (DoControl)
+        ERequestLoadCommands = 0x1004, // Synchronous (DoRequest)
+        ERequestSgHandles = 0x1005, //Synchronous (DoControl)
+        };
+
+    }
+
+
+#endif // __GUESTVIDEODRIVERPROTOCOL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphics_plat/guestvideodriver_api/ldd/eabi/reqhandlerextensionu.def	Fri Aug 20 16:18:46 2010 +0100
@@ -0,0 +1,6 @@
+EXPORTS
+	_ZN19ReqHandlerExtension20CreateSgImagePbufferERK16TSgImageMetaData @ 1 NONAME
+	_ZN19ReqHandlerExtension20CreateSgImageVGImageERK16TSgImageMetaData @ 2 NONAME
+	_ZN19ReqHandlerExtension13SetReqHandlerEP19MReqHandlerCallback @ 3 NONAME
+	_ZN19ReqHandlerExtension14DestroySgImageEy @ 4 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphics_plat/guestvideodriver_api/ldd/group/bld.inf	Fri Aug 20 16:18:46 2010 +0100
@@ -0,0 +1,30 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+// Description:
+// Request Handler Extension Interface
+//
+// This interface component provides an interface for adapt layer callers
+// only so one adapt layer package can call another adapt layer package.
+// The graphics package, nor any other app, mw, or os layer package may
+// call this interface.
+
+
+PRJ_PLATFORMS
+ARMV5
+
+PRJ_EXPORTS
+
+../eabi/reqhandlerextensionu.def		/epoc32/include/def/eabi/reqhandlerextensionu.def
+
+PRJ_MMPFILES
+reqhandlerextensionlib.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphics_plat/guestvideodriver_api/ldd/group/reqhandlerextensionlib.mmp	Fri Aug 20 16:18:46 2010 +0100
@@ -0,0 +1,23 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+// Description:
+// Provide a library interface for the request handler extension.
+// The implementation is expected to be provided by the graphics.simulator
+// package.
+
+#include <platform_paths.hrh>
+
+TARGET          reqhandlerextension.lib
+TARGETTYPE      IMPLIB
+DEFFILE         ../eabi/reqhandlerextension.def
+
--- a/graphics_plat/surfacemanager_api/bwins/surfacemanageru.def	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/surfacemanager_api/bwins/surfacemanageru.def	Fri Aug 20 16:18:46 2010 +0100
@@ -1,17 +1,17 @@
-EXPORTS
-	?AddSurfaceHint@RSurfaceManager@@QAEHABVTSurfaceId@@ABVTHintPair@1@@Z @ 1 NONAME ; int RSurfaceManager::AddSurfaceHint(class TSurfaceId const &, class RSurfaceManager::THintPair const &)
-	?Open@RSurfaceManager@@QAEHXZ @ 2 NONAME ; int RSurfaceManager::Open(void)
-	?GetSurfaceManagerAttrib@RSurfaceManager@@QAEHW4TSurfaceManagerAttrib@1@AAH@Z @ 3 NONAME ; int RSurfaceManager::GetSurfaceManagerAttrib(enum RSurfaceManager::TSurfaceManagerAttrib, int &)
-	?CreateSurface@RSurfaceManager@@QAEHABV?$TPckgBuf@VTSurfaceCreationAttributes@RSurfaceManager@@@@AAVTSurfaceId@@ABVRChunk@@@Z @ 4 NONAME ; int RSurfaceManager::CreateSurface(class TPckgBuf<class RSurfaceManager::TSurfaceCreationAttributes> const &, class TSurfaceId &, class RChunk const &)
-	?SurfaceInfo@RSurfaceManager@@QAEHABVTSurfaceId@@AAV?$TPckgBuf@VTSurfaceInfoV01@RSurfaceManager@@@@@Z @ 5 NONAME ; int RSurfaceManager::SurfaceInfo(class TSurfaceId const &, class TPckgBuf<class RSurfaceManager::TSurfaceInfoV01> &)
-	?CloseSurface@RSurfaceManager@@QAEHABVTSurfaceId@@@Z @ 6 NONAME ; int RSurfaceManager::CloseSurface(class TSurfaceId const &)
-	?SynchronizeCache@RSurfaceManager@@QAEHABVTSurfaceId@@HW4TSyncOperation@1@@Z @ 7 NONAME ; int RSurfaceManager::SynchronizeCache(class TSurfaceId const &, int, enum RSurfaceManager::TSyncOperation)
-	?Close@RSurfaceManager@@QAEXXZ @ 8 NONAME ; void RSurfaceManager::Close(void)
-	?GetBufferOffset@RSurfaceManager@@QAEHABVTSurfaceId@@HAAH@Z @ 9  NONAME ; int RSurfaceManager::GetBufferOffset(class TSurfaceId const &, int, int &)
-	?SetSurfaceHint@RSurfaceManager@@QAEHABVTSurfaceId@@ABVTHintPair@1@@Z @ 10 NONAME ; int RSurfaceManager::SetSurfaceHint(class TSurfaceId const &, class RSurfaceManager::THintPair const &)
-	?GetSurfaceHint@RSurfaceManager@@QAEHABVTSurfaceId@@AAVTHintPair@1@@Z @ 11 NONAME ; int RSurfaceManager::GetSurfaceHint(class TSurfaceId const &, class RSurfaceManager::THintPair &)
-	?CreateSurface@RSurfaceManager@@QAEHABV?$TPckgBuf@VTSurfaceCreationAttributes@RSurfaceManager@@@@AAVTSurfaceId@@@Z @ 12 NONAME ; int RSurfaceManager::CreateSurface(class TPckgBuf<class RSurfaceManager::TSurfaceCreationAttributes> const &, class TSurfaceId &)
-	?MapSurface@RSurfaceManager@@QAEHABVTSurfaceId@@AAVRChunk@@@Z @ 13 NONAME ; int RSurfaceManager::MapSurface(class TSurfaceId const &, class RChunk &)
-	??0RSurfaceManager@@QAE@XZ @ 14 NONAME ; RSurfaceManager::RSurfaceManager(void)
-	?OpenSurface@RSurfaceManager@@QAEHABVTSurfaceId@@@Z @ 15 NONAME ; int RSurfaceManager::OpenSurface(class TSurfaceId const &)
-
+EXPORTS
+	?AddSurfaceHint@RSurfaceManager@@QAEHABVTSurfaceId@@ABVTHintPair@1@@Z @ 1 NONAME ; int RSurfaceManager::AddSurfaceHint(class TSurfaceId const &, class RSurfaceManager::THintPair const &)
+	?Open@RSurfaceManager@@QAEHXZ @ 2 NONAME ; int RSurfaceManager::Open(void)
+	?GetSurfaceManagerAttrib@RSurfaceManager@@QAEHW4TSurfaceManagerAttrib@1@AAH@Z @ 3 NONAME ; int RSurfaceManager::GetSurfaceManagerAttrib(enum RSurfaceManager::TSurfaceManagerAttrib, int &)
+	?CreateSurface@RSurfaceManager@@QAEHABV?$TPckgBuf@VTSurfaceCreationAttributes@RSurfaceManager@@@@AAVTSurfaceId@@ABVRChunk@@@Z @ 4 NONAME ; int RSurfaceManager::CreateSurface(class TPckgBuf<class RSurfaceManager::TSurfaceCreationAttributes> const &, class TSurfaceId &, class RChunk const &)
+	?SurfaceInfo@RSurfaceManager@@QAEHABVTSurfaceId@@AAV?$TPckgBuf@VTSurfaceInfoV01@RSurfaceManager@@@@@Z @ 5 NONAME ; int RSurfaceManager::SurfaceInfo(class TSurfaceId const &, class TPckgBuf<class RSurfaceManager::TSurfaceInfoV01> &)
+	?CloseSurface@RSurfaceManager@@QAEHABVTSurfaceId@@@Z @ 6 NONAME ; int RSurfaceManager::CloseSurface(class TSurfaceId const &)
+	?SynchronizeCache@RSurfaceManager@@QAEHABVTSurfaceId@@HW4TSyncOperation@1@@Z @ 7 NONAME ; int RSurfaceManager::SynchronizeCache(class TSurfaceId const &, int, enum RSurfaceManager::TSyncOperation)
+	?Close@RSurfaceManager@@QAEXXZ @ 8 NONAME ; void RSurfaceManager::Close(void)
+	?GetBufferOffset@RSurfaceManager@@QAEHABVTSurfaceId@@HAAH@Z @ 9  NONAME ; int RSurfaceManager::GetBufferOffset(class TSurfaceId const &, int, int &)
+	?SetSurfaceHint@RSurfaceManager@@QAEHABVTSurfaceId@@ABVTHintPair@1@@Z @ 10 NONAME ; int RSurfaceManager::SetSurfaceHint(class TSurfaceId const &, class RSurfaceManager::THintPair const &)
+	?GetSurfaceHint@RSurfaceManager@@QAEHABVTSurfaceId@@AAVTHintPair@1@@Z @ 11 NONAME ; int RSurfaceManager::GetSurfaceHint(class TSurfaceId const &, class RSurfaceManager::THintPair &)
+	?CreateSurface@RSurfaceManager@@QAEHABV?$TPckgBuf@VTSurfaceCreationAttributes@RSurfaceManager@@@@AAVTSurfaceId@@@Z @ 12 NONAME ; int RSurfaceManager::CreateSurface(class TPckgBuf<class RSurfaceManager::TSurfaceCreationAttributes> const &, class TSurfaceId &)
+	?MapSurface@RSurfaceManager@@QAEHABVTSurfaceId@@AAVRChunk@@@Z @ 13 NONAME ; int RSurfaceManager::MapSurface(class TSurfaceId const &, class RChunk &)
+	??0RSurfaceManager@@QAE@XZ @ 14 NONAME ; RSurfaceManager::RSurfaceManager(void)
+	?OpenSurface@RSurfaceManager@@QAEHABVTSurfaceId@@@Z @ 15 NONAME ; int RSurfaceManager::OpenSurface(class TSurfaceId const &)
+
--- a/graphics_plat/surfacemanager_api/eabi/surfacemanageru.def	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/surfacemanager_api/eabi/surfacemanageru.def	Fri Aug 20 16:18:46 2010 +0100
@@ -1,18 +1,18 @@
-EXPORTS
-	_ZN15RSurfaceManager10MapSurfaceERK10TSurfaceIdR6RChunk @ 1 NONAME
-	_ZN15RSurfaceManager11OpenSurfaceERK10TSurfaceId @ 2 NONAME
-	_ZN15RSurfaceManager11SurfaceInfoERK10TSurfaceIdR8TPckgBufINS_15TSurfaceInfoV01EE @ 3 NONAME
-	_ZN15RSurfaceManager12CloseSurfaceERK10TSurfaceId @ 4 NONAME
-	_ZN15RSurfaceManager13CreateSurfaceERK8TPckgBufINS_26TSurfaceCreationAttributesEER10TSurfaceId @ 5 NONAME
-	_ZN15RSurfaceManager13CreateSurfaceERK8TPckgBufINS_26TSurfaceCreationAttributesEER10TSurfaceIdRK6RChunk @ 6 NONAME
-	_ZN15RSurfaceManager14AddSurfaceHintERK10TSurfaceIdRKNS_9THintPairE @ 7 NONAME
-	_ZN15RSurfaceManager14GetSurfaceHintERK10TSurfaceIdRNS_9THintPairE @ 8 NONAME
-	_ZN15RSurfaceManager14SetSurfaceHintERK10TSurfaceIdRKNS_9THintPairE @ 9 NONAME
-	_ZN15RSurfaceManager16SynchronizeCacheERK10TSurfaceIdiNS_14TSyncOperationE @ 10 NONAME
-	_ZN15RSurfaceManager23GetSurfaceManagerAttribENS_21TSurfaceManagerAttribERi @ 11 NONAME
-	_ZN15RSurfaceManager4OpenEv @ 12 NONAME
-	_ZN15RSurfaceManager5CloseEv @ 13 NONAME
-	_ZN15RSurfaceManagerC1Ev @ 14 NONAME
-	_ZN15RSurfaceManagerC2Ev @ 15 NONAME
-	_ZN15RSurfaceManager15GetBufferOffsetERK10TSurfaceIdiRi @ 16 NONAME
-
+EXPORTS
+	_ZN15RSurfaceManager10MapSurfaceERK10TSurfaceIdR6RChunk @ 1 NONAME
+	_ZN15RSurfaceManager11OpenSurfaceERK10TSurfaceId @ 2 NONAME
+	_ZN15RSurfaceManager11SurfaceInfoERK10TSurfaceIdR8TPckgBufINS_15TSurfaceInfoV01EE @ 3 NONAME
+	_ZN15RSurfaceManager12CloseSurfaceERK10TSurfaceId @ 4 NONAME
+	_ZN15RSurfaceManager13CreateSurfaceERK8TPckgBufINS_26TSurfaceCreationAttributesEER10TSurfaceId @ 5 NONAME
+	_ZN15RSurfaceManager13CreateSurfaceERK8TPckgBufINS_26TSurfaceCreationAttributesEER10TSurfaceIdRK6RChunk @ 6 NONAME
+	_ZN15RSurfaceManager14AddSurfaceHintERK10TSurfaceIdRKNS_9THintPairE @ 7 NONAME
+	_ZN15RSurfaceManager14GetSurfaceHintERK10TSurfaceIdRNS_9THintPairE @ 8 NONAME
+	_ZN15RSurfaceManager14SetSurfaceHintERK10TSurfaceIdRKNS_9THintPairE @ 9 NONAME
+	_ZN15RSurfaceManager16SynchronizeCacheERK10TSurfaceIdiNS_14TSyncOperationE @ 10 NONAME
+	_ZN15RSurfaceManager23GetSurfaceManagerAttribENS_21TSurfaceManagerAttribERi @ 11 NONAME
+	_ZN15RSurfaceManager4OpenEv @ 12 NONAME
+	_ZN15RSurfaceManager5CloseEv @ 13 NONAME
+	_ZN15RSurfaceManagerC1Ev @ 14 NONAME
+	_ZN15RSurfaceManagerC2Ev @ 15 NONAME
+	_ZN15RSurfaceManager15GetBufferOffsetERK10TSurfaceIdiRi @ 16 NONAME
+
--- a/graphics_plat/surfacemanager_api/group/bld.inf	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/surfacemanager_api/group/bld.inf	Fri Aug 20 16:18:46 2010 +0100
@@ -1,27 +1,27 @@
-// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "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:
-//
-// Description:
-// User side interface for the surface manager
-
-PRJ_PLATFORMS
-BASEDEFAULT
-
-PRJ_EXPORTS
-../inc/surfacemanager.h			OS_LAYER_PLATFORM_EXPORT_PATH(graphics/surfacemanager.h)
-../inc/surface_hints.h			OS_LAYER_PLATFORM_EXPORT_PATH(graphics/surface_hints.h)
-surfacemanager.iby				/epoc32/rom/include/surfacemanager.iby
-../bwins/surfacemanageru.def	/epoc32/include/def/win32/surfacemanageru.def
-../eabi/surfacemanageru.def		/epoc32/include/def/eabi/surfacemanageru.def
-
-PRJ_MMPFILES
-surfacemanagerlib.mmp
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+// Description:
+// User side interface for the surface manager
+
+PRJ_PLATFORMS
+BASEDEFAULT
+
+PRJ_EXPORTS
+../inc/surfacemanager.h			OS_LAYER_PLATFORM_EXPORT_PATH(graphics/surfacemanager.h)
+../inc/surface_hints.h			OS_LAYER_PLATFORM_EXPORT_PATH(graphics/surface_hints.h)
+surfacemanager.iby				/epoc32/rom/include/surfacemanager.iby
+../bwins/surfacemanageru.def	/epoc32/include/def/win32/surfacemanageru.def
+../eabi/surfacemanageru.def		/epoc32/include/def/eabi/surfacemanageru.def
+
+PRJ_MMPFILES
+surfacemanagerlib.mmp
--- a/graphics_plat/surfacemanager_api/group/surfacemanager.iby	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/surfacemanager_api/group/surfacemanager.iby	Fri Aug 20 16:18:46 2010 +0100
@@ -1,24 +1,24 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "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:
-//
-// Description:
-// surfacemanager_ref.iby
-//
-
-#ifndef __SURFACEMANAGER_IBY__
-#define __SURFACEMANAGER_IBY__
-
-#include <graphics_adaptation.hby>
-#include SURFACEMANAGER_DRV
-
-
-#endif
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+// Description:
+// surfacemanager_ref.iby
+//
+
+#ifndef __SURFACEMANAGER_IBY__
+#define __SURFACEMANAGER_IBY__
+
+#include <graphics_adaptation.hby>
+#include SURFACEMANAGER_DRV
+
+
+#endif
--- a/graphics_plat/surfacemanager_api/group/surfacemanagerlib.mmp	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/surfacemanager_api/group/surfacemanagerlib.mmp	Fri Aug 20 16:18:46 2010 +0100
@@ -1,28 +1,28 @@
-// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "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:
-//
-// Description:
-// Provide a library interface for the surface manager.  This interface is
-// expected to be implemented in an adapt layer component.
-
-#include <platform_paths.hrh>
-
-TARGET          surfacemanager.lib
-TARGETTYPE      IMPLIB
-
-#ifdef WINS
-DEFFILE       ../bwins/surfacemanager.def
-#else
-DEFFILE       ../eabi/surfacemanager.def
-#endif
-
-SMPSAFE
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+// Description:
+// Provide a library interface for the surface manager.  This interface is
+// expected to be implemented in an adapt layer component.
+
+#include <platform_paths.hrh>
+
+TARGET          surfacemanager.lib
+TARGETTYPE      IMPLIB
+
+#ifdef WINS
+DEFFILE       ../bwins/surfacemanager.def
+#else
+DEFFILE       ../eabi/surfacemanager.def
+#endif
+
+SMPSAFE
--- a/graphics_plat/surfacemanager_api/inc/surface_hints.h	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/surfacemanager_api/inc/surface_hints.h	Fri Aug 20 16:18:46 2010 +0100
@@ -1,210 +1,210 @@
-// 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 "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:
-//
-// Description:
-// Surface Manager API
-//
-
-#ifndef __SURFACE_HINTS_H__
-#define __SURFACE_HINTS_H__
-
-//- Include Files  ----------------------------------------------------------
-
-#include <e32cmn.h>
-
-
-//- Namespace ---------------------------------------------------------------
-
-namespace surfaceHints
-{
-
-//- Constants ---------------------------------------------------------------
-
-/** Hint of the surface content.
-    @see TSurfaceContent for possible values
-*/
-const TInt KSurfaceContent = 0x1;
-
-/** Hint of the expected update rate of the surface content.
-    Value for a surface containing e.g. 25 fps video the value should be 25.
-    For a static UI element the value should be 0.
-    @see TSurfaceUpdate
-*/
-const TInt KSurfaceUpdate = 0x2;
-
-/** Hint whether the surface content is copy protected and can it be
-    shown on external displays.
-    @see TSurfaceProtection for possible values.
-*/
-const TInt KSurfaceProtection = 0x3;
-
-/** Hint about the surface’s characteristics or properties,
-   For example if a surface can be persisted by the effects engine.
-   @see TSurfaceCharacteristics for possible values.
-*/
-const TInt KSurfaceCharacteristics = 0x4;
-
-
-/** Values used for the KSurfaceContent key */
-enum TSurfaceContent
-    {
-    /** No specific use-case */
-    EGeneric,
-    /** Camera viewfinder frames */
-    EViewFinder,
-    /** Images captured by camera */
-    EStillImage,
-    /** Decoded video frames */
-    EVideoPlayback,
-    /** Video frames from video telephony */
-    EVideoTelephony,
-    /** EGL surface */
-    EGfx,
-    /** Main UI surface */
-    EUi,
-    /** Composition target surface */
-    ECompositionTarget,
-    /** Indicates that the surface has to accessible by ARM.
-        This can be orr'ed with other TSurfaceContent enumerations. */
-    EArmAccess = 0x80000000
-    };
-
-
-/** Values used for the KSurfaceProtection key. The values are bitmasks and can be combined
-* e.g. EAllowAnalogProtectionRequired | EAllowDigitalProtectionRequired.
-*/
-enum TSurfaceProtection
-    {
-    /**
-    * Not allowed on external outputs
-    */
-    EAllowInternalOnly                  = 0x00000000,
-
-    /**
-    * Allowed on all external outputs
-    */
-    EAllowAllExternals                  = 0xFFFFFFFF,
-
-    /**
-    * Allow passing content over analog outputs,
-    * e.g. composite and S-video
-    */
-    EAllowAnalog                        = 0x00000010,
-
-    /**
-    * Allow output over an analog output channel which has a protection
-    * mechanism
-    */
-    EAllowAnalogProtectionRequired      = 0x00000020,
-
-    /**
-    * Allow passing content over digital outputs,
-    * e.g. DVI and HDMI
-    */
-    EAllowDigital                       = 0x00000200,
-
-    /**
-    * Licensed product must attempt to engage HDCP to protect the content.
-    * However it should be passed through to HDMI even if HDCP is not engaged or fails to engage.
-    */
-    EAllowDigitalProtectionRequested    = 0x00000400,
-
-    /**
-    * Licensed product is required to engage HDCP to protect the content.
-    * If HDCP is not engaged or can not be engaged the content must not be passed through to HDMI.
-    */
-    EAllowDigitalProtectionRequired     = 0x00000800,
-    };
-
-
-/** Values used for the KSurfaceCharacteristics key. The values are bitmasks and can be combined.
-*/
-enum TSurfaceCharacteristics
-    {
-    /**
-    * Surface cannot be persisted once it has been closed by the creator
-    */
-    ENotPersistable = 1,
-    };
-
-
-class TSurfaceUpdate
-    {
-    /** Constructor.
-        @param aUpdateRate   How often the surface content is redrawn per second.
-        @param aTearingFree  When ETrue surface updates should be synchronized
-                             with display refresh rate, otherwise surface can
-                             be updated as fast as possible.
-    */
-    inline TSurfaceUpdate(TUint aUpdateRate, TBool aTearingFree);
-
-    /** Converts a value to TSurfaceUpdate */
-    inline TSurfaceUpdate(TInt aValue);
-
-    /** Converts TSurfaceUpdate to a signed integer, so it can be used as
-        a value for KSurfaceUpdate key. */
-    inline operator TInt() const;
-
-    /** Getter for surface update rate.
-        @return updates per second
-    */
-    inline TUint UpdateRate() const;
-
-    /** Getter for surface update synchronization.
-        @return ETrue - updates should be synchronized with display refresh rate,
-                EFalse - surface can be updated as fast as possible.
-    */
-    inline TBool TearingFree() const;
-
-    private:
-        TUint iValue;
-    };
-
-
-//- Forward Declarations ----------------------------------------------------
-
-
-//- Class Definitions -------------------------------------------------------
-
-
-//- Inline Functions --------------------------------------------------------
-
-TSurfaceUpdate::TSurfaceUpdate(TUint aUpdateRate, TBool aTearingFree)
-    : iValue( ( aUpdateRate & 0xFFFF ) | ( aTearingFree ? 0x80000000 : 0x0 ) )
-    {
-    }
-TSurfaceUpdate::TSurfaceUpdate(TInt aValue)
-    : iValue( static_cast<TUint>( aValue ) )
-    {
-    }
-
-TSurfaceUpdate::operator TInt() const
-    {
-    return static_cast<TInt>( iValue );
-    }
-
-TUint TSurfaceUpdate::UpdateRate() const
-    {
-    return ( iValue & 0xFFFF );
-    }
-
-TBool TSurfaceUpdate::TearingFree() const
-    {
-    return ( iValue & 0x80000000 ) ? ETrue : EFalse;
-    }
-
-} //namespace surfaceHints
-
-#endif //__SURFACE_HINTS_H__
-
-// End of File
-
+// 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 "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:
+//
+// Description:
+// Surface Manager API
+//
+
+#ifndef __SURFACE_HINTS_H__
+#define __SURFACE_HINTS_H__
+
+//- Include Files  ----------------------------------------------------------
+
+#include <e32cmn.h>
+
+
+//- Namespace ---------------------------------------------------------------
+
+namespace surfaceHints
+{
+
+//- Constants ---------------------------------------------------------------
+
+/** Hint of the surface content.
+    @see TSurfaceContent for possible values
+*/
+const TInt KSurfaceContent = 0x1;
+
+/** Hint of the expected update rate of the surface content.
+    Value for a surface containing e.g. 25 fps video the value should be 25.
+    For a static UI element the value should be 0.
+    @see TSurfaceUpdate
+*/
+const TInt KSurfaceUpdate = 0x2;
+
+/** Hint whether the surface content is copy protected and can it be
+    shown on external displays.
+    @see TSurfaceProtection for possible values.
+*/
+const TInt KSurfaceProtection = 0x3;
+
+/** Hint about the surface’s characteristics or properties,
+   For example if a surface can be persisted by the effects engine.
+   @see TSurfaceCharacteristics for possible values.
+*/
+const TInt KSurfaceCharacteristics = 0x4;
+
+
+/** Values used for the KSurfaceContent key */
+enum TSurfaceContent
+    {
+    /** No specific use-case */
+    EGeneric,
+    /** Camera viewfinder frames */
+    EViewFinder,
+    /** Images captured by camera */
+    EStillImage,
+    /** Decoded video frames */
+    EVideoPlayback,
+    /** Video frames from video telephony */
+    EVideoTelephony,
+    /** EGL surface */
+    EGfx,
+    /** Main UI surface */
+    EUi,
+    /** Composition target surface */
+    ECompositionTarget,
+    /** Indicates that the surface has to accessible by ARM.
+        This can be orr'ed with other TSurfaceContent enumerations. */
+    EArmAccess = 0x80000000
+    };
+
+
+/** Values used for the KSurfaceProtection key. The values are bitmasks and can be combined
+* e.g. EAllowAnalogProtectionRequired | EAllowDigitalProtectionRequired.
+*/
+enum TSurfaceProtection
+    {
+    /**
+    * Not allowed on external outputs
+    */
+    EAllowInternalOnly                  = 0x00000000,
+
+    /**
+    * Allowed on all external outputs
+    */
+    EAllowAllExternals                  = 0xFFFFFFFF,
+
+    /**
+    * Allow passing content over analog outputs,
+    * e.g. composite and S-video
+    */
+    EAllowAnalog                        = 0x00000010,
+
+    /**
+    * Allow output over an analog output channel which has a protection
+    * mechanism
+    */
+    EAllowAnalogProtectionRequired      = 0x00000020,
+
+    /**
+    * Allow passing content over digital outputs,
+    * e.g. DVI and HDMI
+    */
+    EAllowDigital                       = 0x00000200,
+
+    /**
+    * Licensed product must attempt to engage HDCP to protect the content.
+    * However it should be passed through to HDMI even if HDCP is not engaged or fails to engage.
+    */
+    EAllowDigitalProtectionRequested    = 0x00000400,
+
+    /**
+    * Licensed product is required to engage HDCP to protect the content.
+    * If HDCP is not engaged or can not be engaged the content must not be passed through to HDMI.
+    */
+    EAllowDigitalProtectionRequired     = 0x00000800,
+    };
+
+
+/** Values used for the KSurfaceCharacteristics key. The values are bitmasks and can be combined.
+*/
+enum TSurfaceCharacteristics
+    {
+    /**
+    * Surface cannot be persisted once it has been closed by the creator
+    */
+    ENotPersistable = 1,
+    };
+
+
+class TSurfaceUpdate
+    {
+    /** Constructor.
+        @param aUpdateRate   How often the surface content is redrawn per second.
+        @param aTearingFree  When ETrue surface updates should be synchronized
+                             with display refresh rate, otherwise surface can
+                             be updated as fast as possible.
+    */
+    inline TSurfaceUpdate(TUint aUpdateRate, TBool aTearingFree);
+
+    /** Converts a value to TSurfaceUpdate */
+    inline TSurfaceUpdate(TInt aValue);
+
+    /** Converts TSurfaceUpdate to a signed integer, so it can be used as
+        a value for KSurfaceUpdate key. */
+    inline operator TInt() const;
+
+    /** Getter for surface update rate.
+        @return updates per second
+    */
+    inline TUint UpdateRate() const;
+
+    /** Getter for surface update synchronization.
+        @return ETrue - updates should be synchronized with display refresh rate,
+                EFalse - surface can be updated as fast as possible.
+    */
+    inline TBool TearingFree() const;
+
+    private:
+        TUint iValue;
+    };
+
+
+//- Forward Declarations ----------------------------------------------------
+
+
+//- Class Definitions -------------------------------------------------------
+
+
+//- Inline Functions --------------------------------------------------------
+
+TSurfaceUpdate::TSurfaceUpdate(TUint aUpdateRate, TBool aTearingFree)
+    : iValue( ( aUpdateRate & 0xFFFF ) | ( aTearingFree ? 0x80000000 : 0x0 ) )
+    {
+    }
+TSurfaceUpdate::TSurfaceUpdate(TInt aValue)
+    : iValue( static_cast<TUint>( aValue ) )
+    {
+    }
+
+TSurfaceUpdate::operator TInt() const
+    {
+    return static_cast<TInt>( iValue );
+    }
+
+TUint TSurfaceUpdate::UpdateRate() const
+    {
+    return ( iValue & 0xFFFF );
+    }
+
+TBool TSurfaceUpdate::TearingFree() const
+    {
+    return ( iValue & 0x80000000 ) ? ETrue : EFalse;
+    }
+
+} //namespace surfaceHints
+
+#endif //__SURFACE_HINTS_H__
+
+// End of File
+
--- a/graphics_plat/surfacemanager_api/inc/surfacemanager.h	Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/surfacemanager_api/inc/surfacemanager.h	Fri Aug 20 16:18:46 2010 +0100
@@ -1,223 +1,223 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "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:
-//
-// Description:
-// Surface Manager API
-// 
-//
-
-/**
- @file
- @publishedPartner
- @prototype
-*/
-
-#ifndef __SURFACEMANAGER_H__
-#define __SURFACEMANAGER_H__
-
-#ifndef __KERNEL_MODE__
-#include <e32std.h>
-#endif
-
-#include <e32cmn.h>
-#include <e32ver.h>
-#include <pixelformats.h>
-#include <graphics/surface.h>
-
-class RSurfaceManagerDriver;
-
-/**
-RSurface Manager User API.
-*/
-class RSurfaceManager
-	{
-public:
-
-	class THintPair
-		{
-	public:
-		/** UID key number */
-		TUid iKey;
-		/** Integer key value */
-		TInt iValue;
-		/** Is the value modifiable */
-		TBool iMutable;
-	public:
-		inline void Set(TUid aKey,TInt aValue,TBool aMutable);
-		};
-	
-	enum TCacheAttribute
-		{
-		/** CPU cached */
-		ECached = 0,
-		/** Non CPU cached */
-		ENotCached = 1
-		};
-
-	class TSurfaceCreationAttributes
-		{
-	public:
-		/** Width and height of the surface in pixels. */
-		TSize iSize;
-		/** Number of buffers in the surface. */
-		TInt iBuffers;
-		/** The pixel format. */
-		TUidPixelFormat iPixelFormat;
-		/** Minimum or required number of bytes between start of one line and
-		start of next. */
-		TInt iStride;
-		/** Minimum or required offset to the first buffer from the base of the
-		chunk. Typically this will be set to 0. The value specified for the
-		offset must comply with the alignment specified in iAlignment.
-		
-		If iAlignment is page aligned, this value will be rounded up to a
-		multiple of the page size when the surface is created, therefore the
-		surface info must be queried for the actual value used. */
-		TInt iOffsetToFirstBuffer;
-		/** Alignment applied to the base address of each buffer in the surface:
-		1, 2, 4, 8 ,16, 32, 64 bytes or EPageAligned. */
-		TInt iAlignment;
-		/** Require physically contiguous memory. This value will be ignored if
-		using a chunk which already exists. */
-		TBool iContiguous;
-		/** Caching attribute to create chunk memory. This value will be 
-		ignored if using a chunk which already exists. */
-		TCacheAttribute iCacheAttrib;
-		/** Minimum or required offset between the start of one buffer and the
-		start of the next one in bytes. When set to 0 the surface manager will
-	   	choose how buffers are laid out within the chunk. If it is too small
-		and doesn't fit with the alignment, CreateSurface() will return
-		KErrArgument. */
-		TInt iOffsetBetweenBuffers;
-		/** Array of hints which should be associated with the surface. This
-		array must not contain duplicate hint keys. */
-		THintPair* iSurfaceHints;
-		/** Number of hints in the array iSurfaceHints. The number should not
-		exceed the maximum number supported by the surface manager, see 
-		GetSurfaceManagerAttrib(EMaxNumberOfHints). */
-		TInt iHintCount;
-		/** Should the surface be mappable. If EFalse any call to MapSurface()
-		will fail with KErrNotSupported -- Note, some architectures may not
-		support mappable surfaces. */
-		TBool iMappable;
-	public:
-		inline TSurfaceCreationAttributes();
-		};
-
-	class TSurfaceInfoV01
-		{
-	public:
-		/** Width and height of the surface in pixels */
-		TSize iSize;
-		/** Number of buffers in the surface */
-		TInt iBuffers;
-		/** The pixel format */
-		TUidPixelFormat iPixelFormat;
-		/** Number of bytes between start of one line and start of next */
-		TInt iStride;
-		/** Has physically contiguous memory */
-		TBool iContiguous;
-		/** Specified if the underlying chunk is CPU cached or not */
-		TCacheAttribute iCacheAttrib;
-		/** ETrue if the surface can be mapped */
-		TBool iMappable;
-		};
-	
-	enum TSurfaceManagerAttrib
-		{
-		/** Maximum number of hints per surface */
-		EMaxNumberOfHints = 0x0 
-		};
-
-	/** Package buf used to pass information about a surface from the driver */
-	typedef TPckgBuf<TSurfaceInfoV01> TInfoBuf;
-	/** Package buf used to pass the surface creation attributes to the device driver */
-	typedef TPckgBuf<TSurfaceCreationAttributes> TSurfaceCreationAttributesBuf;
-
-	enum TSyncOperation
-		{
-		/** Synchronize before non CPU hardware reads from the memory, i.e. if the
-		buffer is cached and may have been written to by the CPU, this type of
-		synchronisation should be used before a peripheral is used to read from the
-		buffer's memory */
-		ESyncBeforeNonCPURead,
-		/** Synchronize before non CPU hardware writes to the memory, i.e. if the
-		buffer is cached and may have been written to by the CPU, this type of
-		synchronisation should be used before a peripheral is used to write to the
-		buffer's memory */
-		ESyncBeforeNonCPUWrite,
-		/** Synchronize after non CPU hardware writes to the memory, i.e. if the
-		buffer is cached, this type of synchronisation should be used after a
-		peripheral has been used to write to the buffer's memory */
-		ESyncAfterNonCPUWrite
-		};
-
-	enum TPageAlignment
-		{
-		/** Specifies iAlignment is a page alignment */
-		EPageAligned = -1
-		};
-	
-public:
-#ifndef __KERNEL_MODE__
-	IMPORT_C RSurfaceManager();
-	IMPORT_C TInt Open();
-	IMPORT_C void Close();
-	IMPORT_C TInt CreateSurface(const TSurfaceCreationAttributesBuf& aReqs, TSurfaceId& aSurfaceId);
-	IMPORT_C TInt CreateSurface(const TSurfaceCreationAttributesBuf& aReqs, TSurfaceId& aSurfaceId, const RChunk& aChunkHandle);
-	IMPORT_C TInt OpenSurface(const TSurfaceId& aSurfaceId);
-	IMPORT_C TInt CloseSurface(const TSurfaceId& aSurfaceId);
-	IMPORT_C TInt MapSurface(const TSurfaceId& aSurfaceId, RChunk& aHandle);
-	IMPORT_C TInt SurfaceInfo(const TSurfaceId& aSurfaceId, TInfoBuf& aInfo);
-	IMPORT_C TInt SynchronizeCache(const TSurfaceId& aSurfaceId, TInt aBuffer, TSyncOperation aOperation);
-	IMPORT_C TInt GetSurfaceManagerAttrib(TSurfaceManagerAttrib aAttrib, TInt& aValue);
-	IMPORT_C TInt GetSurfaceHint(const TSurfaceId& aSurfaceId, THintPair& aHint);
-	IMPORT_C TInt SetSurfaceHint(const TSurfaceId& aSurfaceId, const THintPair& aHint);
-	IMPORT_C TInt AddSurfaceHint(const TSurfaceId&aSurface, const THintPair& aHint);
-	IMPORT_C TInt GetBufferOffset(const TSurfaceId& aSurfaceId, TInt aBuffer, TInt& aOffset);
-#endif	//__KERNEL_MODE__	
-private:
-	inline RSurfaceManagerDriver& Driver();
-private:
-	TInt32 iDriverBuf[4];
-	};
-
-//
-// THintPair inline
-//
-
-/**
-Sets key, value and mutability of the hint.
-@param aKeyUid The UID of the key
-@param aValue The value of the hint
-@param aMutable ETrue if the hint value is mutable
-*/
-inline void RSurfaceManager::THintPair::Set(TUid aKeyUid,TInt aValue,TBool aMutable)
-	{
-	iKey = aKeyUid;
-	iValue = aValue;
-	iMutable = aMutable;
-	}
-
-//
-// TSurfaceCreationAttributes inline
-//
-
-/**
-Default constructor, zero initializes all attributes.
-*/
-inline RSurfaceManager::TSurfaceCreationAttributes::TSurfaceCreationAttributes()
-	{
-	memclr(this, sizeof(TSurfaceCreationAttributes));
-	}
-
-#endif //__SURFACEMANAGER_H__
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+// Description:
+// Surface Manager API
+// 
+//
+
+/**
+ @file
+ @publishedPartner
+ @prototype
+*/
+
+#ifndef __SURFACEMANAGER_H__
+#define __SURFACEMANAGER_H__
+
+#ifndef __KERNEL_MODE__
+#include <e32std.h>
+#endif
+
+#include <e32cmn.h>
+#include <e32ver.h>
+#include <pixelformats.h>
+#include <graphics/surface.h>
+
+class RSurfaceManagerDriver;
+
+/**
+RSurface Manager User API.
+*/
+class RSurfaceManager
+	{
+public:
+
+	class THintPair
+		{
+	public:
+		/** UID key number */
+		TUid iKey;
+		/** Integer key value */
+		TInt iValue;
+		/** Is the value modifiable */
+		TBool iMutable;
+	public:
+		inline void Set(TUid aKey,TInt aValue,TBool aMutable);
+		};
+	
+	enum TCacheAttribute
+		{
+		/** CPU cached */
+		ECached = 0,
+		/** Non CPU cached */
+		ENotCached = 1
+		};
+
+	class TSurfaceCreationAttributes
+		{
+	public:
+		/** Width and height of the surface in pixels. */
+		TSize iSize;
+		/** Number of buffers in the surface. */
+		TInt iBuffers;
+		/** The pixel format. */
+		TUidPixelFormat iPixelFormat;
+		/** Minimum or required number of bytes between start of one line and
+		start of next. */
+		TInt iStride;
+		/** Minimum or required offset to the first buffer from the base of the
+		chunk. Typically this will be set to 0. The value specified for the
+		offset must comply with the alignment specified in iAlignment.
+		
+		If iAlignment is page aligned, this value will be rounded up to a
+		multiple of the page size when the surface is created, therefore the
+		surface info must be queried for the actual value used. */
+		TInt iOffsetToFirstBuffer;
+		/** Alignment applied to the base address of each buffer in the surface:
+		1, 2, 4, 8 ,16, 32, 64 bytes or EPageAligned. */
+		TInt iAlignment;
+		/** Require physically contiguous memory. This value will be ignored if
+		using a chunk which already exists. */
+		TBool iContiguous;
+		/** Caching attribute to create chunk memory. This value will be 
+		ignored if using a chunk which already exists. */
+		TCacheAttribute iCacheAttrib;
+		/** Minimum or required offset between the start of one buffer and the
+		start of the next one in bytes. When set to 0 the surface manager will
+	   	choose how buffers are laid out within the chunk. If it is too small
+		and doesn't fit with the alignment, CreateSurface() will return
+		KErrArgument. */
+		TInt iOffsetBetweenBuffers;
+		/** Array of hints which should be associated with the surface. This
+		array must not contain duplicate hint keys. */
+		THintPair* iSurfaceHints;
+		/** Number of hints in the array iSurfaceHints. The number should not
+		exceed the maximum number supported by the surface manager, see 
+		GetSurfaceManagerAttrib(EMaxNumberOfHints). */
+		TInt iHintCount;
+		/** Should the surface be mappable. If EFalse any call to MapSurface()
+		will fail with KErrNotSupported -- Note, some architectures may not
+		support mappable surfaces. */
+		TBool iMappable;
+	public:
+		inline TSurfaceCreationAttributes();
+		};
+
+	class TSurfaceInfoV01
+		{
+	public:
+		/** Width and height of the surface in pixels */
+		TSize iSize;
+		/** Number of buffers in the surface */
+		TInt iBuffers;
+		/** The pixel format */
+		TUidPixelFormat iPixelFormat;
+		/** Number of bytes between start of one line and start of next */
+		TInt iStride;
+		/** Has physically contiguous memory */
+		TBool iContiguous;
+		/** Specified if the underlying chunk is CPU cached or not */
+		TCacheAttribute iCacheAttrib;
+		/** ETrue if the surface can be mapped */
+		TBool iMappable;
+		};
+	
+	enum TSurfaceManagerAttrib
+		{
+		/** Maximum number of hints per surface */
+		EMaxNumberOfHints = 0x0 
+		};
+
+	/** Package buf used to pass information about a surface from the driver */
+	typedef TPckgBuf<TSurfaceInfoV01> TInfoBuf;
+	/** Package buf used to pass the surface creation attributes to the device driver */
+	typedef TPckgBuf<TSurfaceCreationAttributes> TSurfaceCreationAttributesBuf;
+
+	enum TSyncOperation
+		{
+		/** Synchronize before non CPU hardware reads from the memory, i.e. if the
+		buffer is cached and may have been written to by the CPU, this type of
+		synchronisation should be used before a peripheral is used to read from the
+		buffer's memory */
+		ESyncBeforeNonCPURead,
+		/** Synchronize before non CPU hardware writes to the memory, i.e. if the
+		buffer is cached and may have been written to by the CPU, this type of
+		synchronisation should be used before a peripheral is used to write to the
+		buffer's memory */
+		ESyncBeforeNonCPUWrite,
+		/** Synchronize after non CPU hardware writes to the memory, i.e. if the
+		buffer is cached, this type of synchronisation should be used after a
+		peripheral has been used to write to the buffer's memory */
+		ESyncAfterNonCPUWrite
+		};
+
+	enum TPageAlignment
+		{
+		/** Specifies iAlignment is a page alignment */
+		EPageAligned = -1
+		};
+	
+public:
+#ifndef __KERNEL_MODE__
+	IMPORT_C RSurfaceManager();
+	IMPORT_C TInt Open();
+	IMPORT_C void Close();
+	IMPORT_C TInt CreateSurface(const TSurfaceCreationAttributesBuf& aReqs, TSurfaceId& aSurfaceId);
+	IMPORT_C TInt CreateSurface(const TSurfaceCreationAttributesBuf& aReqs, TSurfaceId& aSurfaceId, const RChunk& aChunkHandle);
+	IMPORT_C TInt OpenSurface(const TSurfaceId& aSurfaceId);
+	IMPORT_C TInt CloseSurface(const TSurfaceId& aSurfaceId);
+	IMPORT_C TInt MapSurface(const TSurfaceId& aSurfaceId, RChunk& aHandle);
+	IMPORT_C TInt SurfaceInfo(const TSurfaceId& aSurfaceId, TInfoBuf& aInfo);
+	IMPORT_C TInt SynchronizeCache(const TSurfaceId& aSurfaceId, TInt aBuffer, TSyncOperation aOperation);
+	IMPORT_C TInt GetSurfaceManagerAttrib(TSurfaceManagerAttrib aAttrib, TInt& aValue);
+	IMPORT_C TInt GetSurfaceHint(const TSurfaceId& aSurfaceId, THintPair& aHint);
+	IMPORT_C TInt SetSurfaceHint(const TSurfaceId& aSurfaceId, const THintPair& aHint);
+	IMPORT_C TInt AddSurfaceHint(const TSurfaceId&aSurface, const THintPair& aHint);
+	IMPORT_C TInt GetBufferOffset(const TSurfaceId& aSurfaceId, TInt aBuffer, TInt& aOffset);
+#endif	//__KERNEL_MODE__	
+private:
+	inline RSurfaceManagerDriver& Driver();
+private:
+	TInt32 iDriverBuf[4];
+	};
+
+//
+// THintPair inline
+//
+
+/**
+Sets key, value and mutability of the hint.
+@param aKeyUid The UID of the key
+@param aValue The value of the hint
+@param aMutable ETrue if the hint value is mutable
+*/
+inline void RSurfaceManager::THintPair::Set(TUid aKeyUid,TInt aValue,TBool aMutable)
+	{
+	iKey = aKeyUid;
+	iValue = aValue;
+	iMutable = aMutable;
+	}
+
+//
+// TSurfaceCreationAttributes inline
+//
+
+/**
+Default constructor, zero initializes all attributes.
+*/
+inline RSurfaceManager::TSurfaceCreationAttributes::TSurfaceCreationAttributes()
+	{
+	memclr(this, sizeof(TSurfaceCreationAttributes));
+	}
+
+#endif //__SURFACEMANAGER_H__