os/kernelhwsrv/kerneltest/e32test/resourceman/acctst/d_prmacctst.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // under the terms of the License "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 #ifndef D_PRMACCTST_H
    17 #define D_PRMACCTST_H
    18 
    19 // The name of the device driver
    20 #ifdef RESOURCE_MANAGER_SIMULATED_PSL
    21 _LIT(KPrmIfLddName, "D_PRMACCTSTSIM");
    22 #else
    23 _LIT(KPrmIfLddName, "D_PRMACCTST");
    24 #endif
    25 
    26 // The maximum length of a resource name (should always be 32 characters)
    27 const TInt KNameMaxLength = 32;
    28 
    29 // This is a copy of TPowerResourceInfoV01 meant to be used by the user-side
    30 // test application.
    31 struct TResInfo
    32 	{
    33 	enum TType		{ EBinary, EMultiLevel, EMultiProperty };
    34 	enum TUsage		{ ESingleUse, EShared };
    35 	enum TLatency	{ EInstantaneous, ELongLatency };
    36 	enum TClass		{ EPhysical, ELogical };
    37 	enum TSense		{ EPositive, ENegative, ECustom };
    38 	TClass		iClass;
    39 	TLatency	iLatencyGet;
    40 	TLatency	iLatencySet;
    41 	TType		iType;
    42 	TUsage		iUsage;
    43 	TSense		iSense;
    44 	TDesC8*		iResourceName;
    45 	TInt		iResourceId;
    46 	TInt		iDefaultLevel;
    47 	TInt		iMinLevel;
    48 	TInt		iMaxLevel;
    49 	TInt		iReserved1;
    50 	TInt		iReserved2;
    51 	TInt		iReserved3;
    52 	TInt		iPslReserved1;
    53 	TInt		iPslReserved2;
    54 	TInt		iPslReserved3;
    55 	};
    56 typedef TPckgBuf<TResInfo> TTestResourceInfoBuf01;
    57 
    58 
    59 // To be used with ChangeResourceStateAndGetState()
    60 class TTestResourceState
    61 	{
    62 public:
    63 	TUint iResourceId;
    64 	TInt  iNewState;
    65 	};
    66 typedef TPckgBuf<TTestResourceState> TTestResourceStateBuf;
    67 
    68 class RPrmIf : public RBusLogicalChannel
    69 	{
    70 public:
    71 	enum TControl
    72 		{
    73 		EControlOpenClient,
    74 		EControlGetKernelExtClientId,
    75 		EControlRegisterClient,
    76 		EControlDeRegisterClient,
    77 		EControlGetInfoOnResourcesInUseByClient,
    78 		EControlChangeResourceState,
    79 		EControlGetResourceState,
    80 		EControlGetResourceStateCached,
    81 		EControlGetLevelOwner,
    82 		EControlGetTotalNumberOfResources,
    83 		EControlGetResourceDependencies
    84 		};
    85 	enum TRequest
    86 		{
    87 		ERequestChangeResourceStateAndGetState
    88 		};
    89 #ifndef __KERNEL_MODE__
    90 public:
    91 	inline TInt Open()
    92 		{ return DoCreate(KPrmIfLddName, TVersion(), KNullUnit, NULL, NULL); }
    93 	inline TInt OpenClient(TUint aClientId)
    94 		{ return DoControl(EControlOpenClient, (TAny*) aClientId); }
    95 	inline TInt GetKernelExtClientId(TUint& aClientId)
    96 		{ return DoControl(EControlGetKernelExtClientId, (TAny*) &aClientId); }
    97 	inline TInt RegisterClient(const TDesC8& aClientName)
    98 		{ return DoControl(EControlRegisterClient, (TAny*) &aClientName); }
    99 	inline TInt DeRegisterClient()
   100 		{ return DoControl(EControlDeRegisterClient); }
   101 	inline TInt GetInfoOnResourcesInUseByClient(TUint aClientId, RBuf8& aInfo)
   102 		{ return DoControl(EControlGetInfoOnResourcesInUseByClient, (TAny*) aClientId, (TAny*) &aInfo); }
   103 	inline TInt ChangeResourceState(TUint aResourceId, TInt aNewState)
   104 		{ return DoControl(EControlChangeResourceState, (TAny*) aResourceId, (TAny*) aNewState); }
   105 	inline TInt GetResourceState(TUint aResourceId, TInt& aState)
   106 		{ return DoControl(EControlGetResourceState, (TAny*) aResourceId, (TAny*) &aState); }
   107 	inline TInt GetResourceStateCached(TUint aResourceId, TInt& aState)
   108 		{ return DoControl(EControlGetResourceStateCached, (TAny*) aResourceId, (TAny*) &aState); }
   109 	inline TInt GetLevelOwner(TUint aResourceId, TInt& aLevelOwner)
   110 		{ return DoControl(EControlGetLevelOwner, (TAny*) aResourceId, (TAny*) &aLevelOwner); }
   111 	inline TInt GetTotalNumberOfResources(TUint& aNumResources)
   112 		{ return DoControl(EControlGetTotalNumberOfResources, (TAny*) &aNumResources); }
   113 	inline TInt GetResourceDependencies(TUint aResourceId, RBuf8& aDeps)
   114 		{ return DoControl(EControlGetResourceDependencies, (TAny*) aResourceId, (TAny*) &aDeps); }
   115 	inline void ChangeResourceStateAndGetState(TRequestStatus& aRs, TTestResourceStateBuf& aState, TInt& aTmpState)
   116 		{ DoRequest(ERequestChangeResourceStateAndGetState, aRs, (TAny*) &aState, (TAny*) &aTmpState); }
   117 
   118 #endif // __KERNEL_MODE__
   119 	};
   120 #endif // D_PRMACCTST_H