SF Bug 1284 - QEMU has faulty instruction emulation for VMOV (between two ARM core registers and two single-precision registers)
/** Copyright (c) 2010 ISB.* 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:* ISB - initial contribution.** Contributors:** Description:**/#ifndef __devicePDD_H__#define __devicePDD_H__#include <comm.h>#include <e32hal.h>#include "system.h"#include "webcamera_device.h"const TInt KMinimumLddMajorVersion=1;const TInt KMinimumLddMinorVersion=1;const TInt KMinimumLddBuild=0;const TInt EIrqWebamera=0xb;class DWebcameraPddFactory : public DPhysicalDevice{public: /** Constructor */ DWebcameraPddFactory(); virtual TInt Install(); virtual void GetCaps(TDes8 &aDes) const; virtual TInt Create(DBase*& aChannel, TInt aUnit, const TDesC8* anInfo, const TVersion &aVer); virtual TInt Validate(TInt aUnit, const TDesC8* anInfo, const TVersion &aVer);};class DWebcameraDriver : public DWebcameraDriverBase{public: /** Constructor */ DWebcameraDriver(); /** Destructor */ ~DWebcameraDriver(); /** Second stage constructor called by the kernel's device driver framework. This is called in the context of the user thread (client) which requested the creation of a Logical Channel The thread is in a critical section. @param aUnit The unit argument supplied by the client @param aInfo The info argument supplied by the client @return KErrNone if successful, otherwise one of the other system wide error codes. */ TInt DoCreate(TInt aUnit, const TDesC8* anInfo); /** Request data from device. Only one send request may be pending at any time. @param aBuffer physical adress @param aData size of buffer. */ virtual TInt StartViewerFinder(TUint aBuffer,TInt aSize); /** Request data from device. Only one send request may be pending at any time. @param aBuffer physical adress @param aData size of buffer. */ virtual TInt StartCapture(TUint aBuffer,TInt aSize); /** Request device not to send data. Only one send request may be pending at any time. @param aMode stop mode */ virtual void Stop(TUSBStopMode aMode);// virtual void Caps(TDes8 &aCaps) const; /** Called by ISR to indicate that interrupt occurs. */ static void Isr(TAny* aPtr); /** Called from a Isr after the Peripheral has signalled that getting oneflame completed. */ void receivedatacallback();public: /** Enumeration of register types. */ enum { WEBCAMERA_REG_ID = 0, WEBCAMERA_REG_INT_ENABLE = 1, WEBCAMERA_REG_DATA_TYPE = 2, WEBCAMERA_REG_DMA_ADDR = 3, WEBCAMERA_REG_DMA_SIZE = 4 };private: /** operation types. */ TInt iType;};#endif