diff -r c734af59ce98 -r 5b5d147c7838 kerneltest/e32test/dmav2/cap_reqs.h --- a/kerneltest/e32test/dmav2/cap_reqs.h Tue May 11 17:28:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -/* -* Copyright (c) 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: Contains TDmaCapability and associated definitions. -* These are used by the DMA tests in test_cases.cpp to express dependancies -* on various DMA controller/channel capabilities -* -*/ -#ifndef __CAP_REQS_H__ -#define __CAP_REQS_H__ - -#include - -/** -The various types of requirement on a -value that can be specified by a TDmaCapability -*/ -enum TCapsReqType - { - EEqual, EGTE /* >= */, ELTE /* <= */, EBitsSet, EBitsClear - }; - -/** -Enumerates all the various DMA channel capabilities -*/ -enum TCapsReq - { - ENone, - EChannelPriorities, - EChannelPauseAndResume, - EAddrAlignedToElementSize, - E1DAddressing, - E2DAddressing, - ESynchronizationTypes, - EBurstTransactions, - EDescriptorInterrupt, - EFrameInterrupt, - ELinkedListPausedInterrupt, - EEndiannessConversion, - EGraphicsOps, - ERepeatingTransfers, - EChannelLinking, - EHwDescriptors, - ESrcDstAsymmetry, - EAsymHwDescriptors, - EBalancedAsymSegments, - EAsymCompletionInterrupt, - EAsymDescriptorInterrupt, - EAsymFrameInterrupt, - EPilVersion, - }; - -enum TResult {ERun=0, ESkip=1, EFail=2}; //The ordering of these should not be changed - -struct SDmacCaps; -struct TDmacTestCaps; - -/** -Represents a requirement for some DMA capability -to be either present or not present, less than, equal to, or -greater than some value, or to have certain bits in a mask -set or unset. -*/ -struct TDmaCapability - { - TDmaCapability() - :iCapsReq(ENone), iCapsReqType(EEqual), iValue(ETrue), iFail(EFalse) - {} - - TDmaCapability(TCapsReq aReq, TCapsReqType aReqType, TUint aValue, TBool aFail) - :iCapsReq(aReq), iCapsReqType(aReqType), iValue(aValue), iFail(aFail) - {} - - static void SelfTest(); - - /** - Compares the requirements held in the struct - against those described in aChannelCaps and makes a decision - as to whether this test case should be run, skipped, or failed. - */ - TResult CompareToDmaCaps(const SDmacCaps& aChannelCaps) const; - TResult CompareToDmaCaps(const TDmacTestCaps& aChannelCaps) const; - -private: - TBool RequirementSatisfied(const SDmacCaps& aChannelCaps) const; - TBool RequirementSatisfied(const TDmacTestCaps& aChannelCaps) const; - - TBool TestValue(TUint aValue) const; - -public: - TCapsReq iCapsReq; - TCapsReqType iCapsReqType; - TUint iValue; - // if HW capability is not available:- - // ETrue - Fail the test - // EFalse - Skip the test - TBool iFail; - }; - -//A set of DMA capability requirements -const TDmaCapability none(ENone, EEqual, 0, ETrue); - -const TDmaCapability pauseRequired(EChannelPauseAndResume, EEqual, ETrue, ETrue); -const TDmaCapability pauseRequired_skip(EChannelPauseAndResume, EEqual, ETrue, EFalse); -const TDmaCapability pauseNotWanted(EChannelPauseAndResume, EEqual, EFalse, ETrue); - -const TDmaCapability hwDesNotWanted(EHwDescriptors, EEqual, EFalse, ETrue); -const TDmaCapability hwDesNotWanted_skip(EHwDescriptors, EEqual, EFalse, EFalse); -const TDmaCapability hwDesWanted(EHwDescriptors, EEqual, ETrue, ETrue); -const TDmaCapability hwDesWanted_skip(EHwDescriptors, EEqual, ETrue, EFalse); - -const TDmaCapability cap_2DRequired(E2DAddressing, EEqual, ETrue, EFalse); - -const TDmaCapability capEqualV1(EPilVersion, EEqual, 1, EFalse); -const TDmaCapability capEqualV2(EPilVersion, EEqual, 2, EFalse); -const TDmaCapability capEqualV2Fatal(EPilVersion, EEqual, 2, ETrue); - -const TDmaCapability capAboveV1(EPilVersion, EGTE, 2, EFalse); -const TDmaCapability capBelowV2(EPilVersion, ELTE, 1, EFalse); -#endif // #ifdef __CAP_REQS_H__