--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/eka/include/u32hal.h Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,3318 @@
+// Copyright (c) 1995-2009 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:
+//
+// Description:
+// e32\include\u32hal.h
+//
+// WARNING: This file contains some APIs which are internal and are subject
+// to change without notice. Such APIs should therefore not be used
+// outside the Kernel and Hardware Services package.
+//
+
+#ifndef __U32HAL_H__
+#define __U32HAL_H__
+
+#include <e32cmn.h>
+
+//
+// Classes used for in functions
+//
+
+/**
+Used for TVariantInfoV01::iLedCapabilities
+@publishedPartner
+@released
+*/
+const TUint KLedMaskRed1=0x00000001;
+
+/**
+Used for TVariantInfoV01::iLedCapabilities
+@publishedPartner
+@released
+*/
+const TUint KLedMaskGreen1=0x00000002;
+
+/**
+Used for TVariantInfoV01::iLedCapabilities
+@publishedPartner
+@released
+*/
+const TUint KLedMaskYellow1=0x00000004;
+
+/**
+Used for TSupplyInfoV1.iFlags
+@publishedPartner
+@deprecated Unused by Symbian code
+*/
+const TUint KSupplyFlagSoundWarning=0x00000001;
+
+/**
+Used for TSupplyInfoV1.iFlags
+@publishedPartner
+@deprecated Unused by Symbian code
+*/
+const TUint KSupplyFlagBacklightWarning=0x00000002;
+
+/**
+Used for TSupplyInfoV1.iFlags
+@publishedPartner
+@deprecated Unused by Symbian code
+*/
+const TUint KSupplyFlagTimeChanged=0x80000000;
+
+/**
+@internalComponent
+@deprecated Unused by Symbian code
+*/
+class TClearSetMask
+ {
+public:
+ TUint iClearMask;
+ TUint iSetMask;
+ };
+
+/**
+@internalTechnology
+@deprecated Unused by Symbian code
+*/
+enum TSupplyStatus
+ {
+ EZero,EVeryLow,ELow,EGood
+ };
+
+/**
+@internalTechnology
+@deprecated Unused by Symbian code
+*/
+class TSupplyInfoV1
+ {
+public:
+ SInt64 iMainBatteryInsertionTime;
+ TSupplyStatus iMainBatteryStatus;
+ SInt64 iMainBatteryInUseMicroSeconds;
+ TInt iCurrentConsumptionMilliAmps;
+ TInt iMainBatteryConsumedMilliAmpSeconds;
+ TInt iMainBatteryMilliVolts;
+ TInt iMainBatteryMaxMilliVolts;
+ TSupplyStatus iBackupBatteryStatus;
+ TInt iBackupBatteryMilliVolts;
+ TInt iBackupBatteryMaxMilliVolts;
+ TBool iExternalPowerPresent;
+ SInt64 iExternalPowerInUseMicroSeconds;
+ TUint iFlags;
+ };
+
+/**
+@internalTechnology
+@deprecated Unused by Symbian code
+*/
+typedef TPckgBuf<TSupplyInfoV1> TSupplyInfoV1Buf;
+
+/**
+@publishedPartner
+@deprecated Unused by Symbian code
+*/
+class TMouseProperties
+ {
+public:
+ TUint8 iSpeed;
+ TUint8 iAcceleration;
+ };
+
+/**
+@internalTechnology Used by Symbian base ports
+@deprecated Unused by Symbian code
+*/
+class TSoundInfoV1
+ {
+public:
+ TBool iKeyClickEnabled;
+ TBool iKeyClickLoud;
+ TBool iKeyClickOverridden;
+ TBool iPointerClickEnabled;
+ TBool iPointerClickLoud;
+ TBool iBeepEnabled;
+ TBool iBeepLoud;
+ TBool iSoundDriverEnabled;
+ TBool iSoundDriverLoud;
+ TBool iSoundEnabled;
+ };
+
+/**
+@internalTechnology
+@deprecated Unused by Symbian code
+*/
+typedef TPckgBuf<TSoundInfoV1> TSoundInfoV1Buf;
+
+/**
+@internalTechnology Used by Symbian base ports
+*/
+class TOnOffInfoV1
+ {
+public:
+ TBool iPointerSwitchesOn;
+ TBool iCaseOpenSwitchesOn;
+ TBool iCaseCloseSwitchesOff;
+ };
+
+/**
+@internalTechnology
+@deprecated Unused by Symbian code
+*/
+typedef TPckgBuf<TOnOffInfoV1> TOnOffInfoV1Buf;
+
+/**
+@internalTechnology
+@removed Unused by Symbian code
+*/
+enum TUserMediaFunction {EUserMediaRemount,EUserMediaNotifyChange};
+
+
+
+
+//
+// Hal function enumerations
+//
+
+/**
+@publishedPartner
+@released
+
+Defines the set of HAL groups.
+
+Each HAL group has an associated HAL handler. Note that the
+HAL handlers for EHalGroupKernel and EHalGroupEmulator are internal
+to Symbian OS.
+
+See the Base Porting Guide documentation in the developer library for
+more information on HAL groups.
+*/
+enum THalFunctionGroup
+ {
+ /**
+ @internalComponent
+
+ The HAL group associated with kernel related information; for example
+ the reason for the most recent system boot.
+
+ The function-ids associated with this HAL group are defined by the set
+ of TKernelHalFunction enum values.
+ */
+ EHalGroupKernel=0,
+
+
+ /**
+ The HAL group associated with Variant specific hardware.
+
+ This HAL handler is implemented by the Variant, specifically by
+ the base port's implementation of Asic::VariantHal().
+
+ The function-ids associated with this HAL group are defined by the set
+ of TVariantHalFunction enum values. See the individual function-ids for
+ the associated capabilities.
+
+ @see TVariantHalFunction
+ @see Asic::VariantHal()
+ */
+ EHalGroupVariant=1,
+
+
+ /**
+ The HAL group associated with the media driver.
+
+ It is used internally by the media driver LDD.
+
+ The function-ids associated with this HAL group are defined by the set
+ of TMediaHalFunction enum values. See the individual function-ids for
+ the associated capabilities.
+
+ @see TMediaHalFunction
+ */
+ EHalGroupMedia=2,
+
+
+ /**
+ The HAL group associated with power handling.
+
+ This HAL handler is implemented by the power model.
+
+ The function-ids associated with this HAL group are defined by the set
+ of TPowerHalFunction enum values. See the individual function-ids for
+ the associated capabilities.
+
+ @see TPowerHalFunction
+ */
+ EHalGroupPower=3,
+
+
+ /**
+ The HAL group associated with the main screen display.
+
+ This HAL handler is implemented by the screen (i.e. LCD or video driver).
+
+ The function-ids associated with this HAL group are defined by the set
+ of TDisplayHalFunction enum values. See the individual function-ids for
+ the associated capabilities.
+
+ @see TDisplayHalFunction
+ */
+ EHalGroupDisplay=4,
+
+
+ /**
+ The HAL group associated with the digitiser (i.e. pen or stylus).
+
+ This HAL handler is implemented by the digitiser.
+
+ The function-ids associated with this HAL group are defined by the set
+ of TDigitiserHalFunction enum values. See the individual function-ids for
+ the associated capabilities.
+
+ @see TDigitiserHalFunction
+ */
+ EHalGroupDigitiser=5,
+
+
+ /**
+ The HAL group associated with a sound driver.
+
+ This group is provided by Symbian OS for backwards compatibility with
+ the Psion Series 5MX devices.
+
+ The function-ids associated with this HAL group are defined by the set
+ of TSoundHalFunction enum values. See the individual function-ids for
+ the associated capabilities.
+
+ @see TSoundHalFunction
+ */
+ EHalGroupSound=6,
+
+
+ /**
+ The HAL group associated with a mouse-type device.
+
+ In Symbian OS, the the only example of a mouse device is in the emulator,
+ and this is a port of Symbian OS maintained by Symbian.
+
+ The function-ids associated with this HAL group are defined by the set
+ of TMouseHalFunction enum values. See the individual function-ids for
+ the associated capabilities.
+
+ @see TMouseHalFunction
+ */
+ EHalGroupMouse=7,
+
+
+ /**
+ @internalComponent
+
+ The HAL group associated with the emulator.
+
+ The function-ids associated with this HAL group are defined by the set
+ of TEmulatorHalFunction enum values.
+ */
+ EHalGroupEmulator=8,
+
+
+ /**
+ The HAL group associated with the keyboard.
+
+ This HAL handler is implemented by the keyboard driver.
+
+ The function-ids associated with this HAL group are defined by the set
+ of TKeyboardHalFunction enum values. See the individual function-ids for
+ the associated capabilities.
+
+ @see TKeyboardHalFunction
+ */
+ EHalGroupKeyboard=9,
+
+ /*
+ The HAL group associated with the virtual memory system.
+
+ The function-ids associated with this HAL group are defined by the set
+ of TVMHalFunction enum values.
+
+ @see TVMHalFunction
+ */
+ EHalGroupVM=10,
+
+ /*
+ The HAL group associated with the RAM Zone configuration.
+
+ The function-ids associated with this HAL group are defined by the set
+ of TRamHalFunction enum values.
+
+ @see TRamHalFunction
+ */
+ EHalGroupRam=11,
+
+ /**
+ Reserved for platform specific use.
+ */
+ EHalGroupPlatformSpecific1=29,
+
+ /**
+ Reserved for platform specific use.
+ */
+ EHalGroupPlatformSpecific2=30
+ };
+
+
+
+
+/**
+@internalComponent
+*/
+enum TKernelHalFunction
+ {
+ EKernelHalMemoryInfo,
+ EKernelHalRomInfo,
+ EKernelHalStartupReason,
+ EKernelHalFaultReason,
+ EKernelHalExceptionId,
+ EKernelHalExceptionInfo,
+ EKernelHalCpuInfo,
+ EKernelHalPageSizeInBytes,
+ EKernelHalTickPeriod,
+ EKernelHalMemModelInfo,
+ EKernelHalFastCounterFrequency,
+ EKernelHalNTickPeriod,
+ EKernelHalHardwareFloatingPoint,
+ EKernelHalGetNonsecureClockOffset,
+ EKernelHalSetNonsecureClockOffset,
+ EKernelHalSmpSupported,
+ EKernelHalNumLogicalCpus,
+ EKernelHalSupervisorBarrier,
+ EKernelHalFloatingPointSystemId,
+ EKernelHalLockThreadToCpu,
+ EKernelHalConfigFlags,
+ };
+
+
+
+
+/**
+@publishedPartner
+@released
+
+The set of function-ids that are associated with the EHalGroupVariant
+HAL group.
+
+Each enum value represents a specific characteristic of the Variant,
+and is passed as the second parameter to
+the HAL handler function dealing with this group.
+
+@see EHalGroupVariant
+*/
+enum TVariantHalFunction
+ {
+ /**
+ Gets Variant specifc information.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
+ TVariantInfoV01 structure. The HAL function needs to fill the members of
+ this structure with the appropriate information.
+
+ - TAny* a2 : NULL.
+
+ An example of this function can be found in the Variant template;
+ see the function:
+ @code
+ Template::VariantHal()
+ @endcode
+ in
+ @code
+ ...\template\template_variant\specific\variant.cpp
+ @endcode
+
+ @see TVariantInfoV01
+ @see TPckgBuf
+ */
+ EVariantHalVariantInfo,
+
+
+ /**
+ Sets the debug port number.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value containing the debug port number.
+
+ - TAny* a2 : NULL.
+
+ An example of this function can be found in the Variant template;
+ see the function:
+ @code
+ Template::VariantHal()
+ @endcode
+ in
+ @code
+ ...\template\template_variant\specific\variant.cpp
+ @endcode
+ */
+ EVariantHalDebugPortSet,
+
+
+ /**
+ Gets the debug port number.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the HAL handler puts the debug port value
+
+ - TAny* a2 : NULL.
+
+ An example of this function can be found in the Variant template;
+ see the function:
+ @code
+ Template::VariantHal()
+ @endcode
+ in
+ @code
+ ...\template\template_variant\specific\variant.cpp
+ @endcode
+ */
+ EVariantHalDebugPortGet,
+
+
+ /**
+ Sets the current state of each LED.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TUint value containing the bitmask that
+ describes the state of the LEDs. For each bit in the mask, 0 = OFF, 1 = ON.
+
+ - TAny* a2 : NULL.
+
+ An example of this function can be found in the Variant template;
+ see the function:
+ @code
+ Template::VariantHal()
+ @endcode
+ in
+ @code
+ ...\template\template_variant\specific\variant.cpp
+ @endcode
+ */
+ EVariantHalLedMaskSet,
+
+
+ /**
+ Gets the current state of each LED.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TUint value into which the HAL handler puts the bitmask that
+ describes the state of the LEDs. For each bit in the mask, 0 = OFF, 1 = ON.
+
+ - TAny* a2 : NULL.
+
+ An example of this function can be found in the Variant template;
+ see the function:
+ @code
+ Template::VariantHal()
+ @endcode
+ in
+ @code
+ ...\template\template_variant\specific\variant.cpp
+ @endcode
+ */
+ EVariantHalLedMaskGet,
+
+
+ /**
+ Gets the current state of any Variant specific switches.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TUint value into which the HAL handler puts the bits that
+ describe the state of the switches. The meaning of the switches is entirely
+ hardware dependent.
+
+ - TAny* a2 : NULL.
+
+ An example of this function can be found in the Variant template;
+ see the function:
+ @code
+ Template::VariantHal()
+ @endcode
+ in
+ @code
+ ...\template\template_variant\specific\variant.cpp
+ @endcode
+ */
+ EVariantHalSwitches,
+
+
+ /**
+ Restarts the system.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TUint value containing the bits defining the custom restart reasons
+ that can be passed to Kern::Restart().
+
+ - TAny* a2 : NULL.
+
+ An example of this function can be found in the Variant template;
+ see the function:
+ @code
+ Template::VariantHal()
+ @endcode
+ in
+ @code
+ ...\template\template_variant\specific\variant.cpp
+ @endcode
+
+ @capability PowerMgmt
+
+ @see Kern::Restart()
+ */
+ EVariantHalCustomRestart,
+
+
+ /**
+ Gets the reason for the system restart.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the handler will put a value
+ representing the restart reason.
+
+ - TAny* a2 : NULL.
+
+ An example of this function can be found in the Variant template;
+ see the function:
+ @code
+ Template::VariantHal()
+ @endcode
+ in the file
+ @code
+ ...\template\template_variant\specific\variant.cpp
+ @endcode
+ */
+ EVariantHalCustomRestartReason,
+
+
+ /**
+ Gets the current state of the case.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TUint value into which the HAL handler puts a value representing the case state.
+ Possible values are 0 for closed, and 1 for open.
+
+ - TAny* a2 : NULL.
+
+ An example of this function can be found in the Variant template;
+ see the function:
+ @code
+ Template::VariantHal()
+ @endcode
+ in
+ @code
+ ...\template\template_variant\specific\variant.cpp
+ @endcode
+ */
+ EVariantHalCaseState,
+
+
+ /**
+ Gets the number of screens on this platform.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : This is a pointer to TInt that will contain the number of screens
+
+ - TAny* a2 : NULL.
+
+ */
+ EVariantHalCurrentNumberOfScreens,
+
+ /**
+ Sets the startup reason for the system restart.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TUint value containing the bits defining the startup mode
+ that will be passed to Kern::Restart().
+
+ - TAny* a2 : NULL.
+
+ An example of this function can be found in the Variant template;
+ see the function:
+ @code
+ Template::VariantHal()
+ @endcode
+ in
+ @code
+ ...\template\template_variant\specific\variant.cpp
+ @endcode
+
+ @capability WriteDeviceData
+
+ @see Kern::Restart()
+ */
+ EVariantHalPersistStartupMode,
+
+ /**
+ Gets the startup mode after a system restart.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt that will hold the returned value
+
+ - TAny* a2 : NULL.
+
+ An example of this function can be found in the Variant template;
+ see the function:
+ @code
+ Template::VariantHal()
+ @endcode
+ in the file
+ @code
+ ...\template\template_variant\specific\variant.cpp
+ @endcode
+ */
+ EVariantHalGetPersistedStartupMode,
+
+ /**
+ Returns the maximum number of values that can be used to store the startup reason required for a custom restart.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt that will hold the returned value
+
+ - TAny* a2 : NULL.
+
+ An example of this function can be found in the Variant template;
+ see the function:
+ @code
+ Template::VariantHal()
+ @endcode
+ in
+ @code
+ ...\template\template_variant\specific\variant.cpp
+ @endcode
+ */
+ EVariantHalGetMaximumCustomRestartReasons,
+
+ /**
+ Returns the maximum number of values that can be used to store the startup mode required for a transition to
+ a EPwRestart power state.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt that will hold the returned value
+
+ - TAny* a2 : NULL.
+
+ An example of this function can be found in the Variant template;
+ see the function:
+ @code
+ Template::VariantHal()
+ @endcode
+ in
+ @code
+ ...\template\template_variant\specific\variant.cpp
+ @endcode
+ */
+ EVariantHalGetMaximumRestartStartupModes,
+
+ /**
+ Returns a factor by which timeouts in test code should be expanded for
+ exceptionally slow platforms (e.g. with cores implemented in FPGA).
+
+ If this is not supported the factor should be assumed to be 1.
+ */
+ EVariantHalTimeoutExpansion,
+
+ /**
+ Returns a serial number as an Int
+ */
+ EVariantHalSerialNumber,
+
+ /**
+ Returns the interrupt used by sampling profiler - applicable for SMP only.
+ Each CPU_i is interrupted by interrupt number ECpuProfilingInterrupt + i
+ */
+ EVariantHalProfilingDefaultInterruptBase
+
+ };
+
+
+
+
+/**
+@publishedPartner
+@released
+
+The set of function-ids that are associated with the EHalGroupMedia
+HAL group.
+
+Each enum value represents a specific characteristic of the media driver,
+and is passed as the second parameter to
+the HAL handler function dealing with this group.
+
+@see EHalGroupMedia
+*/
+enum TMediaHalFunction
+ {
+ /**
+ Gets drive information.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
+ TDriveInfoV1 structure. The HAL function needs to fill the members of
+ this structure with the appropriate information.
+
+ - TAny* a2 : NULL.
+
+ Note that the HAL handler is implemented by Symbian OS
+
+ @see TDriveInfoV1
+ @see TPckgBuf
+ */
+ EMediaHalDriveInfo,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EMediaHalGetROMConcurrencyInfo,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EMediaHalGetCodeConcurrencyInfo,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EMediaHalResetConcurrencyInfo,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EMediaHalGetROMPagingBenchmark,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EMediaHalGetCodePagingBenchmark,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EMediaHalResetPagingBenchmark,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EMediaHalGetDataConcurrencyInfo,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EMediaHalGetDataInPagingBenchmark,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EMediaHalGetDataOutPagingBenchmark,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EMediaHalGetPagingInfo,
+ };
+
+
+
+
+/**
+@publishedPartner
+@released
+
+The set of function-ids that are associated with the EHalGroupPower
+HAL group.
+
+Each enum value represents a specific aspect of power handling on the device.
+
+@see EHalGroupPower
+*/
+enum TPowerHalFunction
+ {
+
+ /**
+ This is used internally by Symbian
+ */
+ EPowerHalOnOffInfo,
+
+
+ /**
+ This is not currently used.
+ */
+ EPowerHalSupplyInfo,
+
+
+ /**
+ This is not currently used.
+
+ @capability PowerMgmt
+ */
+ EPowerHalSetAutoSwitchOffBehavior,
+
+
+ /**
+ This is not currently used.
+ */
+ EPowerHalAutoSwitchOffBehavior,
+
+
+ /**
+ This is not currently used.
+
+ @capability PowerMgmt
+ */
+ EPowerHalSetAutoSwitchOffTime,
+
+
+ /**
+ This is not currently used.
+ */
+ EPowerHalAutoSwitchOffTime,
+
+
+ /**
+ This is not currently used.
+
+ @capability PowerMgmt
+ */
+ EPowerHalResetAutoSwitchOffTimer,
+
+
+ /**
+ Switches the device off.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : NULL.
+
+ - TAny* a2 : NULL.
+
+ @capability PowerMgmt
+ */
+ EPowerHalSwitchOff,
+
+
+ /**
+ Sets whether touching the screen with a pen or stylus will cause
+ the device to switch on.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (if touching the screen
+ is to cause a power on), or EFalse (if touching the screen is not to cause
+ a power on).
+
+ - TAny* a2 : NULL.
+
+ @capability WriteDeviceData
+ */
+ EPowerHalSetPointerSwitchesOn,
+
+
+ /**
+ Tests whether touching the screen with a pen or stylus will cause
+ the device to switch on.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which the HAL handler puts ETrue (if touching
+ the screen will cause a power on), or EFalse (if touching the screen will
+ not cause a power on).
+
+ - TAny* a2 : NULL.
+ */
+ EPowerHalPointerSwitchesOn,
+
+
+ /**
+ Sets whether the opening of a 'device case' will cause
+ the device to switch on.
+
+ Note that the meaning attached to a 'device case' depends on the hardware.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (if opening
+ the case is to cause a power on), or EFalse (if opening
+ the case is not to cause a power on).
+
+ - TAny* a2 : NULL.
+
+ @capability WriteDeviceData
+ */
+ EPowerHalSetCaseOpenSwitchesOn,
+
+
+ /**
+ Tests whether the opening of a 'device case' will cause
+ the device to switch on.
+
+ Note that the meaning attached to a 'device case' depends on the hardware.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which the HAL handler puts ETrue (if opening
+ the case will cause a power on), or EFalse (if opening
+ the case will not cause a power on).
+
+ - TAny* a2 : NULL.
+ */
+ EPowerHalCaseOpenSwitchesOn,
+
+
+ /**
+ Sets whether the closing of a 'device case' will cause
+ the device to switch off.
+
+ Note that the meaning attached to a 'device case' depends on the hardware.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (if closing
+ the case is to cause a power off), or EFalse (if closing
+ the case is not to cause a power off).
+
+ - TAny* a2 : NULL.
+
+ @capability WriteDeviceData
+ */
+ EPowerHalSetCaseCloseSwitchesOff,
+
+
+ /**
+ Tests whether the closing of a 'device case' will cause
+ the device to switch off.
+
+ Note that the meaning attached to a 'device case' depends on the hardware.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which the HAL handler puts ETrue (if closing
+ the case will cause a power off), or EFalse (if closing
+ the case will not cause a power off).
+
+ - TAny* a2 : NULL.
+ */
+ EPowerHalCaseCloseSwitchesOff,
+
+
+ /**
+ This is not currently used.
+
+ @capability PowerMgmt
+ */
+ EPowerHalSetBatteryType,
+
+
+ /**
+ This is not currently used.
+ */
+ EPowerHalBatteryType,
+
+
+ /**
+ This is not currently used.
+
+ @capability PowerMgmt
+ */
+ EPowerHalSetBatteryCapacity,
+
+
+ /**
+ This is not currently used.
+ */
+ EPowerHalBatteryCapacity,
+
+
+ /**
+ This is not currently used.
+ */
+ EPowerHalAutoSwitchOffType,
+
+
+ /**
+ This is used internally by Symbian.
+ */
+ EPowerHalTestBootSequence,
+
+
+ /**
+ Tests whether a backup power supply is present or not.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which the HAL handler puts ETrue (if backup
+ power is present), or EFalse (if backup power is not present).
+
+ - TAny* a2 : NULL.
+ */
+ EPowerHalBackupPresent,
+
+
+ /**
+ Tests whether accessory power is present or not.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which the HAL handler puts ETrue (if accessory
+ power is present), or EFalse (if accessory power is not present).
+
+ - TAny* a2 : NULL.
+ */
+ EPowerHalAcessoryPowerPresent,
+ };
+
+
+
+
+/**
+@publishedPartner
+@released
+
+The set of function-ids that are associated with the EHalGroupDisplay
+HAL group.
+
+Each enum value represents a specific characteristic of the hardware display,
+i.e. the screen or the LCD, and is passed as the second parameter to
+the HAL handler function dealing with this group.
+
+@see EHalGroupDisplay
+*/
+enum TDisplayHalFunction
+ {
+
+ /**
+ Gets the screen display properties.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
+ TScreenInfoV01 structure. The HAL function needs to fill the members of
+ this structure with the appropriate information.
+
+ - TAny* a2 : NULL.
+
+ For example:
+ @code
+ ...
+ case EDisplayHalScreenInfo:
+ TPckgBuf<TScreenInfoV01> vPckg;
+ // Fill details
+ Kern::InfoCopy(*(TDes8*)a1,vPckg);
+ ...
+ @endcode
+
+ @see TScreenInfoV01
+ @see TPckgBuf
+ */
+ EDisplayHalScreenInfo,
+
+
+ /**
+ Registers whether it is the Window Server's responsibility to turn
+ the screen display on or off.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : This is a TBool value that needs to be set to ETrue or EFalse.
+
+ - TAny* a2 : NULL.
+
+ For example:
+ @code
+ ...
+ case EDisplayHalWsRegisterSwitchOnScreenHandling:
+ iWsSwitchOnScreen=(TBool)a1;
+ ...
+ @endcode
+
+ @see TBool
+ */
+ EDisplayHalWsRegisterSwitchOnScreenHandling,
+
+
+ /**
+ Requests that the Window Server turn the screen display on.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : NULL
+
+ - TAny* a2 : NULL
+ */
+ EDisplayHalWsSwitchOnScreen,
+
+
+ /**
+ Gets the maximum screen display contrast value.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the HAL handler puts the maximum
+ display contrast value.
+
+ - TAny* a2 : NULL
+ */
+ EDisplayHalMaxDisplayContrast,
+
+
+ /**
+ Sets the screen display contrast value.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value containing the display contrast value.
+ Typically, this needs to lie within a range that is valid for the device.
+
+ - TAny* a2 : NULL
+
+ @capability WriteDeviceData
+ */
+ EDisplayHalSetDisplayContrast,
+
+
+ /**
+ Gets the screen display's current contrast value.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the HAL handler puts the
+ display contrast value.
+
+ - TAny* a2 : NULL
+ */
+ EDisplayHalDisplayContrast,
+
+
+ /**
+ Sets the backlight behaviour.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : Not specified; depends on the manufacturer's implementation.
+
+ - TAny* a2 : Not specified; depends on the manufacturer's implementation.
+
+ @capability WriteDeviceData
+ */
+ EDisplayHalSetBacklightBehavior,
+
+
+ /**
+ Gets information about the backlight behaviour.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : Not specified; depends on the manufacturer's implementation.
+
+ - TAny* a2 : Not specified; depends on the manufacturer's implementation.
+ */
+ EDisplayHalBacklightBehavior,
+
+
+ /**
+ Sets the backlight timeout value, i.e. the length of time that the backlight
+ will stay on.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : Not specified; depends on the manufacturer's implementation.
+
+ - TAny* a2 : Not specified; depends on the manufacturer's implementation.
+
+ @capability WriteDeviceData
+ */
+ EDisplayHalSetBacklightOnTime,
+
+
+ /**
+ Gets information about the backlight timeout value, i.e. the length
+ of time that the backlight will stay on.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : Not specified; depends on the manufacturer's implementation.
+
+ - TAny* a2 : Not specified; depends on the manufacturer's implementation.
+ */
+ EDisplayHalBacklightOnTime,
+
+
+ /**
+ Sets the backlight on or off.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue or EFalse.
+
+ - TAny* a2 : NULL
+
+ @capability WriteDeviceData
+ */
+ EDisplayHalSetBacklightOn,
+
+
+ /**
+ Gets the current state of the backlight.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which the HAL handler
+ puts ETrue (for On) or EFalse (for Off).
+
+ - TAny* a2 : NULL
+ */
+ EDisplayHalBacklightOn,
+
+
+ /**
+ Gets the screen display's maximum brightness value.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the HAL handler puts the
+ maximum brightness value.
+
+ - TAny* a2 : NULL
+ */
+ EDisplayHalMaxDisplayBrightness,
+
+
+ /**
+ Sets the screen display's brightness value.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value containing the brightness value.
+ Typically, this needs to lie within a range that is valid for the device.
+
+ - TAny* a2 : NULL
+
+ @capability WriteDeviceData
+ */
+ EDisplayHalSetDisplayBrightness,
+
+
+ /**
+ Gets the screen display's current brightness value.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the HAL handler puts the
+ brightness value.
+
+ - TAny* a2 : NULL
+ */
+ EDisplayHalDisplayBrightness,
+//
+
+ /**
+ Gets the number of available display modes.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the HAL handler puts the
+ number of display modes value.
+
+ - TAny* a2 : NULL
+ */
+ EDisplayHalModeCount,
+
+
+ /**
+ Sets the display mode.
+
+ This will normally update the information maintained by the screen driver
+ in the form of a TScreenInfoV01 struct.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value containing a number representing the display mode.
+ Typically, this needs to lie within a range that is valid for the device.
+ For example, the value usually needs to be positive, and be less than
+ the number of display modes.
+
+ - TAny* a2 : NULL
+
+ @capability MultimediaDD
+
+ @see TScreenInfoV01
+ */
+ EDisplayHalSetMode,
+
+
+ /**
+ Gets the current screen display mode.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the HAL handler puts the
+ the current display mode value.
+
+ - TAny* a2 : NULL
+ */
+ EDisplayHalMode,
+
+
+ /**
+ Sets a colour value for the specified palette entry.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value that identifies the palette entry. The value
+ occupies the junior 8 bits of the integer. The senior 24 bits are all 0.
+
+ - TAny* a2 : A TInt value containing the colour value; it represents
+ a standard Symbian OS RGB colour value, and occupies the junior 24 bits
+ of the integer. The senior 8 bits are not defined.
+
+ @capability MultimediaDD
+ */
+ EDisplayHalSetPaletteEntry,
+
+
+ /**
+ Gets the colour value for the specified palette entry.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value that identifies the palette entry. The value
+ is expected to occupy the junior 8 bits of the integer. The senior 24 bits
+ are not defined.
+
+ - TAny* a2 : On return from the HAL function, a TInt value containing
+ the colour value. The value occupies the junior 24 bits of the integer.
+ The senior 8 bits are not defined.
+ */
+ EDisplayHalPaletteEntry,
+
+
+ /**
+ Sets the screen display on or off.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (for On),
+ or EFalse (for Off).
+
+ - TAny* a2 : NULL.
+
+ @capability PowerMgmt
+ */
+ EDisplayHalSetState,
+
+
+ /**
+ Gets the state of the screen display, i.e. whether the display is on or off.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which the HAL handler puts ETrue (for On),
+ or EFalse (for Off).
+
+ - TAny* a2 : NULL.
+ */
+ EDisplayHalState,
+
+
+ /**
+ Gets the maximum number of colours that the screen display supports.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the HAL handler puts the maximum
+ number of colours.
+
+ - TAny* a2 : NULL
+ */
+ EDisplayHalColors,
+
+
+ /**
+ Gets information about the current display mode.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
+ TVideoInfoV01 structure. The HAL function needs to fill the members of
+ this structure with the appropriate information.
+
+ - TAny* a2 : NULL.
+
+ @see TVideoInfoV01
+ @see TPckgBuf
+ */
+ EDisplayHalCurrentModeInfo,
+
+
+ /**
+ Gets information about the specified display mode.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value containing the number of the display mode for which
+ information is to be fetched.
+
+ - TAny* a2 : This is a pointer to a package buffer (TPckgBuf) containing a
+ TVideoInfoV01 structure. The HAL function needs to fill the members of
+ this structure with the appropriate information.
+
+ @see TVideoInfoV01
+ @see TPckgBuf
+ */
+ EDisplayHalSpecifiedModeInfo,
+
+// EDisplaySwitchOffScreen,
+
+
+ /**
+ Fills/copies an area of the screen display with a rectangle of a specified colour.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
+ SRectOpInfo structure. The structure contains the information that
+ is needed for the operation.
+
+ - TAny* a1 : NULL.
+
+ @see SRectOpInfo
+ @see TPckgBuf
+ */
+ EDisplayHalBlockFill,
+
+
+ /**
+ Fills/copies an area of the screen display with a rectangle of a specified colour.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
+ SRectOpInfo structure. The structure contains the information that
+ is needed for the operation.
+
+ - TAny* a1 : NULL.
+
+ @see SRectOpInfo
+ @see TPckgBuf
+ */
+ EDisplayHalBlockCopy,
+
+
+ /**
+ Tests whether the screen display is secure.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which the HAL handler puts ETrue (for secure mode),
+ or EFalse (for non-secure mode).
+
+ - TAny* a2 : NULL.
+ */
+ EDisplayHalSecure,
+
+
+ /**
+ Sets the screen display into secure or non-secure mode.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (for secure mode),
+ or EFalse (for non-secure mode).
+
+ - TAny* a2 : NULL.
+
+ @capability MultimediaDD
+ */
+ EDisplayHalSetSecure,
+
+
+ /**
+ Gets the address of the DSA buffer
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the HAL handler puts the address
+
+ - TAny* a2 : NULL
+ */
+ EDisplayHalGetDisplayMemoryAddress,
+ /**
+ Gets a handle to the DSA buffer memory
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the HAL handler puts the handle value
+
+ - TAny* a2 : NULL
+ */
+ EDisplayHalGetDisplayMemoryHandle,
+
+
+ /**
+ Ask how many resolutions there are on a specific screen
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt reference to pass back the number of resolutions.
+
+ - TAny* a2 : NULL.
+
+ @capability MultimediaDD
+ */
+ EDisplayHalNumberOfResolutions,
+
+
+ /**
+ Gets information on a specific configuration for a particular screen
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt configuration index to get back.
+
+ - TAny* a2 : A TVideoInfoV01 descriptor to get the info back.
+
+ @capability MultimediaDD
+ */
+ EDisplayHalSpecificScreenInfo,
+
+
+ /**
+ Gets info on the current configuration for a particular screen
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TVideoInfoV01 descriptor to get the info back.
+
+ - TAny* a2 : NULL.
+
+ @capability MultimediaDD
+ */
+ EDisplayHalCurrentScreenInfo,
+
+
+ /**
+ Sets the screen display into a predefined state.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt that is one of the value of TDisplayState enum
+
+ - TAny* a2 : NULL.
+
+ @capability MultimediaDD
+ */
+ EDisplayHalSetDisplayState,
+
+ /**
+ Gets the spinner of screen display state.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt which is set to the spinner value on return
+
+ - TAny* a2 : NULL.
+
+ @capability MultimediaDD
+ */
+ EDisplayHalGetStateSpinner,
+ };
+
+/**
+@internalComponent
+@test
+The set of display state ids that are associated with EDisplayHalSetDisplayState
+
+@see EDisplayHalSetDisplayState
+*/
+
+enum TDisplayConnectState
+ {
+ ENormalResolution,
+ ENoResolution,
+ EDisconnect,
+ ESingleResolution,
+ EDisplayStateTooHigh
+ };
+
+/**
+@publishedPartner
+@released
+
+The set of function-ids that are associated with the EHalGroupDigitiser
+HAL group.
+
+Each enum value represents a specific characteristic of the digitiser,
+and is passed as the second parameter to the HAL handler function
+dealing with this group.
+
+@see EHalGroupDigitiser
+*/
+enum TDigitiserHalFunction
+ {
+
+ /**
+ Sets the calibration data (i.e. the values of the digitiser to
+ screen constants) for the digitiser device.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A pointer to a TDigitizerCalibration object.
+
+ - TAny* a2 : NULL
+
+ @see TDigitizerCalibration
+
+ @capability WriteDeviceData
+ */
+ EDigitiserHalSetXYInputCalibration,
+
+
+ /**
+ Gets the calibration data (i.e. the values of the digitiser to
+ screen constants) for the digitiser device.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A pointer to a TDigitizerCalibration object; the HAL function
+ needs to fill the members of this structure with
+ the appropriate information.
+
+ - TAny* a2 : NULL
+
+ @see TDigitizerCalibration
+ */
+ EDigitiserHalCalibrationPoints,
+
+
+ /**
+ Saves the calibration data (i.e. the values of the digitiser to
+ screen constants) for the digitiser device in a persistent memory area so
+ that they can be restored after a power cycle.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : NULL.
+
+ - TAny* a2 : NULL
+ */
+ EDigitiserHalSaveXYInputCalibration,
+
+
+ /**
+ Restores the calibration data (i.e. the values of the digitiser to
+ screen constants) for the digitiser device from a persistent memory area so
+ that they can be restored after a power cycle.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : NULL.
+
+ - TAny* a2 : NULL
+
+ @capability WriteDeviceData
+ */
+ EDigitiserHalRestoreXYInputCalibration,
+
+
+ /**
+ Gets digitiser information as defined by the content of
+ a TDigitiserInfoV01 (or TDigitiserInfoV02) struct.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
+ TDigitiserInfoV01 (or TDigitiserInfoV02) structure. The HAL function needs
+ to fill the members of this structure with the appropriate information.
+
+ - TAny* a2 : NULL
+
+ @see TPckgBuf
+ @see TDigitiserInfoV01
+ */
+ EDigitiserHalXYInfo,
+
+
+ /**
+ Tests whether the digitiser is on or off.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool value that needs to be set to ETrue (On), or EFalse (Off).
+
+ - TAny* a2 : NULL
+ */
+ EDigitiserHalXYState,
+
+
+ /**
+ Sets the digitiser either on or off.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (On), or EFalse (Off).
+
+ - TAny* a2 : NULL
+
+ @capability PowerMgmt
+ */
+ EDigitiserHalSetXYState,
+
+ /**
+ Checks whether the pointing device supports 3rd dimension.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool value that needs to be set to ETrue (3D supported), or EFalse (3D not supported).
+
+ - TAny* a2 : NULL
+ */
+ EDigitiserHal3DPointer,
+
+ /**
+ Sets the detection range above the screen.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value that is the detection range in units of distance above the screen.
+
+ - TAny* a2 : NULL
+ */
+ EDigitiserHalSetZRange,
+
+ /**
+ @prototype
+
+ Sets the number of pointers it supports on the digitiser.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value that sets the number of pointer to be supported by the digitiser driver
+
+ - TAny* a2 : NULL
+ */
+ EDigitiserHalSetNumberOfPointers,
+
+ /**
+ @prototype
+
+ Gets digitiser information as defined by the content of
+ a TDigitiserInfoV02 struct.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
+ TDigitiserInfoV02 structure. The HAL function needs
+ to fill the members of this structure with the appropriate information.
+
+ - TAny* a2 : NULL
+
+ @see TPckgBuf
+ @see TDigitiserInfoV02
+ */
+ EDigitiserHal3DInfo
+
+ };
+
+
+
+
+/**
+@publishedPartner
+@released
+
+The set of function-ids that are associated with the EHalGroupSound
+HAL group.
+
+Each enum value represents a specific characteristic of the sound driver,
+and is passed as the second parameter to the HAL handler function
+dealing with this group.
+
+Note that a sound driver in Symbian OS is only maintained for backwards
+compatibility with the Psion Series 5MX devices.
+
+@see EHalGroupSound
+*/
+enum TSoundHalFunction
+ {
+ /**
+ Gets sound driver information.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
+ TSoundInfoV1 structure. The HAL function needs to fill the members of
+ this structure with the appropriate information.
+
+ - TAny* a2 : NULL.
+
+ @see TSoundInfoV1
+ @see TPckgBuf
+ */
+ ESoundHalSoundInfo,
+
+
+ /**
+ Sets whether a click is to be sounded on a key press.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (click is to be sounded),
+ or EFalse (click is not to be sounded).
+
+ - TAny* a2 : NULL.
+
+ @capability WriteDeviceData
+ */
+ ESoundHalSetKeyClickEnabled,
+
+
+ /**
+ Sets whether a click that is to be sounded on a key press, is loud or not.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (click is to be loud),
+ or EFalse (click is not to be loud).
+
+ - TAny* a2 : NULL.
+
+ @capability WriteDeviceData
+ */
+ ESoundHalSetKeyClickLoud,
+
+
+ /**
+ Sets whether a click is to be sounded when a pointing device touches
+ the screen.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (click is to be sounded),
+ or EFalse (click is not to be sounded).
+
+ - TAny* a2 : NULL.
+
+ @capability WriteDeviceData
+ */
+ ESoundHalSetPointerClickEnabled,
+
+
+ /**
+ Sets whether a click that is to be sounded when a pointing device touches
+ the screen, is loud or not.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (click is to be loud),
+ or EFalse (click is not to be loud).
+
+ - TAny* a2 : NULL.
+
+ @capability WriteDeviceData
+ */
+ ESoundHalSetPointerClickLoud,
+
+
+ /**
+ Sets whether the beep sound is enabled.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (beep is enabled),
+ or EFalse (beep is not enabled).
+
+ - TAny* a2 : NULL.
+
+ @capability WriteDeviceData
+ */
+ ESoundHalSetBeepEnabled,
+
+
+ /**
+ Sets whether the beep sound is to be loud.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (beep is loud),
+ or EFalse (beep is not loud).
+
+ - TAny* a2 : NULL.
+
+ @capability WriteDeviceData
+ */
+ ESoundHalSetBeepLoud,
+
+
+ /**
+ Sets whether the sound driver is enabled.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (driver is enabled),
+ or EFalse (driver is not enabled).
+
+ - TAny* a2 : NULL.
+
+ @capability PowerMgmt
+ */
+ ESoundHalSetSoundDriverEnabled,
+
+
+ /**
+ Sets whether the sound driver is to generate loud sounds.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (driver is to generate loud sounds),
+ or EFalse (driver is not to generate loud sounds).
+
+ - TAny* a2 : NULL.
+
+ @capability WriteDeviceData
+ */
+ ESoundHalSetSoundDriverLoud,
+
+
+ /**
+ Sets whether sound generation is enabled.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (sound generation is enabled),
+ or EFalse (sound generation is not enabled).
+
+ - TAny* a2 : NULL.
+
+ @capability WriteDeviceData
+ */
+ ESoundHalSetSoundEnabled,
+
+
+ /**
+ Sets whether generation of key clicks is to be overridden.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (key clicks to be overridden),
+ or EFalse (key clicks not to be overridden).
+
+ - TAny* a2 : NULL.
+
+ @capability WriteDeviceData
+ */
+ ESoundHalSetKeyClickOverridden,
+
+
+ /**
+ Tests whether the generation of key clicks is overridden.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which the HAL handler puts ETrue (key clicks are overridden),
+ or EFalse (key clicks are not overridden).
+
+ - TAny* a2 : NULL.
+ */
+ ESoundHalKeyClickOverridden,
+
+
+ /**
+ Tests whether a click that is to be sounded on a key press, is loud or not.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which the HAL handler puts ETrue (click is loud),
+ or EFalse (click is not loud).
+
+ - TAny* a2 : NULL.
+ */
+ ESoundHalKeyClickLoud,
+
+
+ /**
+ Tests whether a click is to be sounded on a key press.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which the HAL handler puts ETrue (click is sounded),
+ or EFalse (click is not sounded).
+
+ - TAny* a2 : NULL.
+ */
+ ESoundHalKeyClickEnabled,
+
+
+ /**
+ Tests whether a click that is to be sounded when a pointing device touches
+ the screen, is loud or not.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which the HAL handler puts ETrue (click is loud),
+ or EFalse (click is not loud).
+
+ - TAny* a2 : NULL.
+ */
+ ESoundHalPointerClickLoud,
+
+
+ /**
+ Tests whether a click is to be sounded when a pointing device touches
+ the screen.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which teh HAL handler puts ETrue (click is to be sounded),
+ or EFalse (click is not to be sounded).
+
+ - TAny* a2 : NULL.
+ */
+ ESoundHalPointerClickEnabled,
+
+
+ /**
+ Generates a key click sound.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : NULL.
+
+ - TAny* a2 : NULL.
+ */
+ ESoundHalKeyClick,
+
+
+ /**
+ Generates a pointer click sound.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : NULL.
+
+ - TAny* a2 : NULL.
+ */
+ ESoundHalPointerClick,
+
+
+ /**
+ Generates a beep sound.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : NULL.
+
+ - TAny* a2 : NULL.
+ */
+ ESoundHalBeep,
+
+
+ /**
+ Gets the maximum volume of the key click.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the HAL handler puts the maximum volume value.
+
+ - TAny* a2 : NULL.
+ */
+ ESoundHalKeyClickVolumeMax,
+
+
+ /**
+ Gets the maximum volume of the pointer click.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the HAL handler puts the maximum volume value.
+
+ - TAny* a2 : NULL.
+ */
+ ESoundHalPointerClickVolumeMax,
+ };
+
+
+
+
+/**
+@publishedPartner
+@released
+
+The set of function-ids that are associated with the EHalGroupMouse
+HAL group.
+
+Each enum value represents a specific characteristic of the mouse device,
+and is passed as the second parameter to the HAL handler function
+dealing with this group.
+
+@see EHalGroupMouse
+*/
+enum TMouseHalFunction
+ {
+
+
+ /**
+ Tests whether a mouse device is visible.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which the HAL handler
+ puts ETrue (for visible) or EFalse (for not-visible).
+
+ - TAny* a2 : NULL
+ */
+ EMouseHalMouseState,
+
+
+ /**
+ Sets the state of the mouse device, i.e. whether it is visible or invisible.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool that needs to be set to ETrue (for visible)
+ or EFalse (for not-visible).
+
+ - TAny* a2 : NULL
+
+ @capability MultimediaDD
+ */
+ EMouseHalSetMouseState,
+
+
+ /**
+ Gets the mouse speed, i.e. how fast the mouse pointer moves.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the HAL handler puts the speed value.
+ This is expected to be a value in the range 0 to 255.
+
+ - TAny* a2 : NULL
+ */
+ EMouseHalMouseSpeed,
+
+
+ /**
+ Sets the mouse speed, i.e. how fast the mouse pointer moves.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value containing the speed value to be set
+ This is expected to be a value in the range 0 to 255.
+
+ - TAny* a2 : NULL
+
+ @capability MultimediaDD
+ */
+ EMouseHalSetMouseSpeed,
+
+
+ /**
+ Gets the mouse acceleration, i.e. how much the mouse pointer accelerates
+ as the user moves it faster.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value into which the HAL handler puts the acceleration value.
+ This is expected to be a value in the range 0 to 255.
+
+ - TAny* a2 : NULL
+ */
+ EMouseHalMouseAcceleration,
+
+
+ /**
+ Sets the mouse acceleration, i.e. how much the mouse pointer accelerates
+ as the user moves it faster.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TInt value containing the acceleration value to be set
+ This is expected to be a value in the range 0 to 255.
+
+ - TAny* a2 : NULL
+
+ @capability MultimediaDD
+ */
+ EMouseHalSetMouseAcceleration,
+
+
+ /**
+ Gets the state of the mouse buttons.
+
+ This is not currently supported.
+ */
+ EMouseHalMouseButtonState,
+
+
+ /**
+ Gets information about the mouse display characteristics.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
+ TMouseInfoV01 structure. The HAL function needs to fill the members of
+ this structure with the appropriate information.
+
+ - TAny* a2 : NULL.
+
+ @see TMouseInfoV01
+ @see TPckgBuf
+ */
+ EMouseHalMouseInfo,
+ };
+
+/**
+@internalComponent
+*/
+enum TEmulatorHalFunction
+ {
+ EEmulatorHalStringProperty,
+ EEmulatorHalIntProperty,
+ EEmulatorHalBoolProperty,
+ EEmulatorHalMapFilename,
+ EEmulatorHalColorDepth,
+ EEmulatorHalSetFlip,
+ EEmulatorHalCPUSpeed,
+ EEmulatorHalNumberOfScreens,
+ EEmulatorHalSetDisplayChannel,
+ };
+
+/**
+@publishedPartner
+@released
+
+The set of function-ids that are associated with the EHalGroupKeyboard
+HAL group.
+
+Each enum value represents a specific characteristic of the keyboard,
+and is passed as the second parameter to the HAL handler function
+dealing with this group.
+
+@see EHalGroupKeyboard
+*/
+enum TKeyboardHalFunction
+ {
+
+ /**
+ Tests whether the keyboard is on or off.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : A TBool into which the HAL handler puts ETrue (for On),
+ or EFalse (for Off).
+
+ - TAny* a2 : NULL
+ */
+ EKeyboardHalKeyboardState,
+
+
+ /**
+ Sets the keyboard either on or off.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 :A TBool that needs to be set to ETrue (On), or EFalse (Off).
+
+ - TAny* a2 : NULL
+
+ @capability PowerMgmt
+ */
+ EKeyboardHalSetKeyboardState,
+
+
+ /**
+ Gets information about the keyboard.
+
+ Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
+
+ - TInt aFunction : This enum value.
+
+ - TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
+ TKeyboardInfoV01 structure. The HAL function needs to fill the members of
+ this structure with the appropriate information.
+
+ - TAny* a2 : NULL.
+
+ @see TKeyboardInfoV01
+ @see TPckgBuf
+ */
+ EKeyboardHalKeyboardInfo,
+ };
+
+/**
+@publishedPartner
+@released
+
+The set of function-ids that are associated with the EHalGroupVM
+HAL group.
+
+@see EHalGroupVM
+*/
+enum TVMHalFunction
+ {
+ /**
+ Evict the contents of the virtual memory cache and reduce it to its minimum size.
+
+ @capability WriteDeviceData
+ @test
+ */
+ EVMHalFlushCache,
+
+ /**
+ Change the minimum and maximum RAM sizes used for the virtual memory cache.
+ These values may be silently restricted to platforn specific limits.
+ If required, GetCacheSize can be used to verify sizes actually applied to the system.
+
+ If there is not enough memory to set the specified cache size then KErrNoMemory is
+ returned, however the cache size may still have been modified in an attempt to
+ service the request.
+
+ This hal function expects two TUint arguments.
+ The first argument (a1) is the minimum size for cache in bytes.
+ The second argument (a2) is the maximum size for cache in bytes; using zero for
+ this value will restore cache sizes to the initial values used after boot.
+
+ The return value from the function is one of:
+ KErrNone, if successful;
+ KErrNoMemory if there is not enough memory;
+ KErrArgument if a1>a2;
+ otherwise one of the other system wide error codes.
+
+ Example usage:
+ @code
+ TUint minRam = 128*1024; // 128k
+ TUint maxRam = KMaxTUint; // unlimited
+ TInt r = UserSvr::HalFunction(EHalGroupVM,EVMHalSetCacheSize,(TAny*)minRam,(TAny*)maxRam));
+ if(r!=KErrNone)
+ anErrorOccured();
+ @endcode
+
+ @capability WriteDeviceData
+ @test
+ */
+ EVMHalSetCacheSize,
+
+ /**
+ Get the sizes for the virtual memory cache.
+ The first argument (a1) is a pointer to a #SVMCacheInfo object.
+ The second argument (a2) must be zero.
+ @test
+ */
+ EVMHalGetCacheSize,
+
+ /**
+ Get paging event information.
+ The first argument (a1) is a pointer to a descriptor whose contents will be filled
+ with a #SVMEventInfo object.
+ The second argument (a2) must be zero.
+ @test
+ */
+ EVMHalGetEventInfo,
+
+ /**
+ Reset the counters obtained with EVMHalGetEventInfo.
+ @test
+ */
+ EVMHalResetEventInfo,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EVMHalGetOriginalRomPages,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EVMPageState,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EVMHalGetConcurrencyInfo,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EVMHalResetConcurrencyInfo,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EVMHalGetPagingBenchmark,
+
+ /**
+ @internalTechnology
+ @test
+ */
+ EVMHalResetPagingBenchmark,
+
+ /**
+ Gets information about the size of the swap partition, and how much is currently used.
+ The first argument (a1) should be a pointer to the SVMSwapInfo structure to write.
+ @return KErrNone if successful, or KErrNotSupported if data paging is not supported.
+ @internalTechnology
+ @prototype
+ */
+ EVMHalGetSwapInfo,
+
+ /**
+ Gets information about the current thrashing level.
+
+ This is a number between 0 and 255 representing how close the system is to thrashing, where 0
+ indicates no thrashing and 255 indicates severe thrashing.
+
+ @return The current thrashing level.
+ @internalTechnology
+ @prototype
+ */
+ EVMHalGetThrashLevel,
+
+ /**
+ Set the available swap space thresholds at which low memory notifications will be generated.
+
+ Notifications are generated through the RChangeNotifier API, using the enumeration value
+ EChangesFreeMemory.
+
+ The first argument (a1) should contain a pointer to a SVMSwapThresholds structure. The
+ thresholds are specified in bytes.
+
+ @return KErrNone if successful, KErrNotSupported if data paging is not supported or KErrArgument
+ if the thresholds are larger than the size of the swap partition, or if the low threshold is
+ larger than the good threshold.
+
+ @see RChangeNotifier
+ @see TChanges
+ */
+ EVMHalSetSwapThresholds,
+
+ /**
+ Set the thrash level thresholds at which thrash level notifications will be generated.
+
+ Notifications are generated through the RChangeNotifier API, using the enumeration value
+ EChangesThrashLevel.
+
+ The first argument (a1) should contain the thrashing threshold, and the seond one (a2) should
+ contain the good threshold.
+
+ The thresholds are specified as numbers between 0 and 255 inclusive.
+
+ @return KErrNone if successful, KErrArgument if the thresholds are out of range or if the
+ thrashing threshold is smaller than the good threshold.
+
+ @see RChangeNotifier
+ @see TChanges
+ */
+ EVMHalSetThrashThresholds,
+ };
+
+
+/**
+Paging event information.
+@publishedPartner
+@test
+*/
+struct SVMEventInfo
+ {
+ /**
+ The total number of page faults which have occurred.
+ */
+ TUint64 iPageFaultCount;
+
+ /**
+ The total number of page faults which resulted in reading a page
+ from storage media.
+ */
+ TUint64 iPageInReadCount;
+
+ // do not add new members to this struct.
+ // instead, derive a new SVMEventInfoV2 class from this and add new members to that.
+ };
+
+
+/**
+VM cache information.
+@publishedPartner
+@test
+*/
+struct SVMCacheInfo
+ {
+ /**
+ The minimum size of virtual memory cache, in bytes.
+ */
+ TUint32 iMinSize;
+
+ /**
+ The maximum size of virtual memory cache, in bytes.
+ */
+ TUint32 iMaxSize;
+
+ /**
+ The current size of virtual memory cache, in bytes.
+ This may be larger than iMaxSize.
+ */
+ TUint32 iCurrentSize;
+
+ /**
+ The current size of the freeable memory in the virtual memory cache, in bytes.
+ */
+ TUint32 iMaxFreeSize;
+
+ // do not add new members to this struct, this is a compatability break
+ };
+
+
+/**
+Enumeration defining the bitmask returned from a call to the demnd paging HAL function
+EDemandPagingGetPageState.
+
+@internalComponent
+@test
+*/
+enum TDemandPagingPageState
+ {
+ // Values common to both moving and multiple memory models
+ EPageStateInRom = 1<<16,
+ EPageStateInRamCode = 1<<17,
+ EPageStatePaged = 1<<18,
+ EPageStatePageTablePresent = 1<<19,
+ EPageStatePtePresent = 1<<20,
+ EPageStatePteValid = 1<<21,
+ // Values specific to multiple memory model
+ EPageStateCodeChunkPresent = 1<<22,
+ EPageStatePhysAddrPresent = 1<<23
+ };
+
+
+/**
+Information about concurrency in the demand paging system.
+
+@internalComponent
+@test
+*/
+struct SPagingConcurrencyInfo
+ {
+ /**
+ The maximum observed number of threads waiting to page in.
+ */
+ TInt iMaxWaitingCount;
+
+ /**
+ The maximum observed number of threads paging in.
+ */
+ TInt iMaxPagingCount;
+ };
+
+
+/**
+Enumeration of demand paging benchmarks.
+
+@internalComponent
+@test
+*/
+enum TPagingBenchmark
+ {
+ EPagingBmReadRomPage,
+ EPagingBmReadCodePage,
+ EPagingBmDecompress,
+ EPagingBmSetCodePageFree,
+ EPagingBmSetCodePageOld,
+ EPagingBmReadMedia,
+ EPagingBmFixupCodePage,
+ EPagingBmReadDataPage,
+ EPagingBmWriteDataPage,
+ EPagingBmDeleteNotifyDataPage,
+ EPagingBmReadDataMedia,
+ EPagingBmWriteDataMedia,
+
+ EMaxPagingBm
+ };
+
+
+/**
+Benchmark information for a specific operation. All times are in terms of the system's fast timer.
+
+@internalComponent
+@test
+*/
+struct SPagingBenchmarkInfo
+ {
+ /**
+ Number of times the operation has been executed.
+ */
+ TInt iCount;
+
+ /**
+ Total time elapsed while executing the operation.
+ */
+ TInt64 iTotalTime;
+
+ /**
+ Maximum time recorded for a single execution.
+ */
+ TInt iMaxTime;
+
+ /**
+ Minimum time recorded for a single execution.
+ */
+ TInt iMinTime;
+ };
+
+/**
+Information about concurrency of ROM demand paging requests in the media subsystem.
+
+@internalComponent
+@test
+*/
+struct SMediaROMPagingConcurrencyInfo
+ {
+ /**
+ The maximum number of pending page in requests in the main queue any time during this session.
+ */
+ TUint8 iMaxReqsInPending;
+
+ /**
+ The maximum number of pending page in requests in the deferred queue any time during this session.
+ */
+ TUint8 iMaxReqsInDeferred;
+
+ /**
+ The maximum number of deferrals of any single page in request during this session.
+ */
+ TUint8 iMaxDeferrals;
+
+ /**
+ The total number of times the page in DFC run with an empty main queue during this session.
+ */
+ TUint8 iTotalRunDry;
+
+ /**
+ The total number of page in requests first-time deferred during this session.
+ */
+ TUint iTotalFirstTimeDeferrals;
+
+ /**
+ The total number of page in requests re-deferred during this session (deferred again after being picked out of deferred queue).
+ */
+ TUint iTotalReDeferrals;
+
+ /**
+ The total number of page in requests serviced from main queue when completing an asynchronous request.
+ */
+ TUint iTotalSynchServicedFromMainQ;
+
+ /**
+ The total number of page in requests deferred after being picked out of main queue when completing an asynchronous request.
+ */
+ TUint iTotalSynchDeferredFromMainQ;
+
+ /**
+ The total number of page in requests issued whilst processing other page in requests.
+ */
+ TUint iTotalConcurrentReqs;
+
+ /**
+ The total number of page in requests issued with at least one queue not empty.
+ */
+ TUint iTotalReqIssuedNonEmptyQ;
+
+ /**
+ The total number of times the main queue was emptied when completing an asynchronous request during this session.
+ */
+ TUint iTotalSynchEmptiedMainQ;
+
+ /**
+ The total number of times the page in DFC was cancelled because the main queue was synchronously emptied.
+ */
+ TUint iTotalDryRunsAvoided;
+ };
+
+/**
+Information about concurrency of Code demand paging requests in the media subsystem.
+
+@internalComponent
+@test
+*/
+struct SMediaCodePagingConcurrencyInfo
+ {
+ /**
+ The maximum number of pending page in requests in the main queue any time during this session.
+ */
+ TUint8 iMaxReqsInPending;
+
+ /**
+ The maximum number of pending page in requests in the deferred queue any time during this session.
+ */
+ TUint8 iMaxReqsInDeferred;
+
+ /**
+ The maximum number of deferrals of any single page in request during this session.
+ */
+ TUint8 iMaxDeferrals;
+
+ /**
+ Spare field
+ */
+ TUint8 iSpare;
+
+ /**
+ The total number of page in requests first-time deferred during this session.
+ */
+ TUint iTotalFirstTimeDeferrals;
+
+ /**
+ The total number of page in requests re-deferred during this session (deferred again after being picked out of deferred queue).
+ */
+ TUint iTotalReDeferrals;
+
+ /**
+ The total number of page in requests serviced from main queue when completing an asynchronous request.
+ */
+ TUint iTotalSynchServicedFromMainQ;
+
+ /**
+ The total number of page in requests deferred after being picked out of main queue when completing an asynchronous request.
+ */
+ TUint iTotalSynchDeferredFromMainQ;
+
+ /**
+ The total number of page in requests issued whilst processing other page in requests.
+ */
+ TUint iTotalConcurrentReqs;
+
+ /**
+ The total number of page in requests issued with at least one queue not empty.
+ */
+ TUint iTotalReqIssuedNonEmptyQ;
+ };
+
+
+/**
+Information about concurrency of Data demand paging requests in the media subsystem.
+
+@internalComponent
+@test
+*/
+struct SMediaDataPagingConcurrencyInfo
+ {
+ /**
+ The maximum number of pending page in requests in the main queue any time during this session.
+ */
+ TUint8 iMaxReqsInPending;
+
+ /**
+ The maximum number of pending page in requests in the deferred queue any time during this session.
+ */
+ TUint8 iMaxReqsInDeferred;
+
+ /**
+ The maximum number of deferrals of any single page in request during this session.
+ */
+ TUint8 iMaxDeferrals;
+
+ /**
+ The total number of times the page in DFC run with an empty main queue during this session.
+ */
+ TUint8 iTotalRunDry;
+
+ /**
+ The total number of page in requests first-time deferred during this session.
+ */
+ TUint iTotalFirstTimeDeferrals;
+
+ /**
+ The total number of page in requests re-deferred during this session (deferred again after being picked out of deferred queue).
+ */
+ TUint iTotalReDeferrals;
+
+ /**
+ The total number of page in requests serviced from main queue when completing an asynchronous request.
+ */
+ TUint iTotalSynchServicedFromMainQ;
+
+ /**
+ The total number of page in requests deferred after being picked out of main queue when completing an asynchronous request.
+ */
+ TUint iTotalSynchDeferredFromMainQ;
+
+ /**
+ The total number of page in requests issued whilst processing other page in requests.
+ */
+ TUint iTotalConcurrentReqs;
+
+ /**
+ The total number of page in requests issued with at least one queue not empty.
+ */
+ TUint iTotalReqIssuedNonEmptyQ;
+
+ /**
+ The total number of times the main queue was emptied when completing an asynchronous request during this session.
+ */
+ TUint iTotalSynchEmptiedMainQ;
+
+ /**
+ The total number of times the page in DFC was cancelled because the main queue was synchronously emptied.
+ */
+ TUint iTotalDryRunsAvoided;
+ };
+
+
+/**
+Information about paging requests in the media subsystem.
+
+@internalComponent
+@test
+*/
+struct SMediaPagingInfo
+ {
+ /**
+ The total number of ROM page in requests
+ */
+ TInt iRomPageInCount;
+ /**
+ The total number of Code page in requests
+ */
+ TInt iCodePageInCount;
+ /**
+ The total number of Data page in requests
+ */
+ TInt iDataPageInCount;
+ /**
+ The total number of Data page out requests
+ */
+ TInt iDataPageOutCount;
+ /**
+ The total number of "background" Data page out requests
+ i.e. a page out which only occurs when the media is otherwise idle
+ */
+ TInt iDataPageOutBackgroundCount;
+ };
+
+
+
+/**
+Swap partition information.
+@internalAll
+@prototype
+*/
+struct SVMSwapInfo
+ {
+ /**
+ The size of the swap partition, in bytes.
+ */
+ TUint64 iSwapSize;
+
+ /**
+ The amount of swap currently free, in bytes.
+ */
+ TUint64 iSwapFree;
+
+ // do not add new members to this struct, this is a compatability break
+ };
+
+
+
+/**
+Free swap notification thresholds.
+@internalAll
+@prototype
+*/
+struct SVMSwapThresholds
+ {
+ /**
+ The low threshold, in bytes
+ */
+ TUint64 iLowThreshold;
+
+ /**
+ The good threshold, in bytes.
+ */
+ TUint64 iGoodThreshold;
+
+ // do not add new members to this struct, this is a compatability break
+ };
+
+
+
+/**
+@internalComponent
+
+The set of function-ids that are associated with the EHalGroupRam
+HAL group.
+
+@see EHalGroupRam
+@test
+*/
+enum TRamHalFunction
+ {
+ /**
+ Retrieve the number of RAM Zones configured for this variant.
+
+ The first argument (a1) is a TUint in which to store the zone count.
+ The second argument (a2) must be zero.
+ @test
+ */
+ ERamHalGetZoneCount,
+
+ /**
+ Retrieve configuration information about a zone.
+
+ The first argument (a1) is a TUint indicating the index of the zone into the zone array.
+ The second argument (a2) is a pointer to a struct SRamZoneConfig in which to store the data.
+ @test
+ */
+ ERamHalGetZoneConfig,
+
+ /**
+ Retrieve utilisation information about a zone.
+
+ The first argument (a1) is a TUint indicating the index of the zone into the zone array.
+ The second argument (a2) is a pointer to a struct SRamZoneUtilisation in which to store the data.
+ @test
+ */
+ ERamHalGetZoneUtilisation,
+
+ };
+
+/**
+Ram zone configuration information.
+@internalComponent
+@test
+*/
+struct SRamZoneConfig
+ {
+ /**
+ ID number of the RAM zone
+ */
+ TUint iZoneId;
+
+ /**
+ The index of the RAM zone in the RAM zone array
+ */
+ TUint8 iZoneIndex;
+
+ /**
+ Physical base address of the RAM zone
+ */
+ TUint32 iPhysBase;
+
+ /**
+ Physical end address of the RAM zone
+ */
+ TUint32 iPhysEnd;
+
+ /**
+ The total number of pages that are in the RAM zone
+ */
+ TUint32 iPhysPages;
+
+ /**
+ Preference value for the RAM zone, lower preference RAM zones are used first
+ */
+ TUint8 iPref;
+
+ /**
+ Zone flags - specify whether the RAM zone should be reserved for contiguous buffer or h/w etc
+ */
+ TUint iFlags;
+
+ };
+
+/**
+Ram zone utilisation information.
+@internalComponent
+@test
+*/
+struct SRamZoneUtilisation
+ {
+ /**
+ ID number of the RAM zone
+ */
+ TUint iZoneId;
+
+ /**
+ The index of the RAM zone in the zone array
+ */
+ TUint8 iZoneIndex;
+
+ /**
+ The total number of pages that are in the RAM zone
+ */
+ TUint32 iPhysPages;
+
+ /**
+ The number of pages free in the RAM zone
+ */
+ TUint32 iFreePages;
+
+ /**
+ The number of 'unknown' (reserved at startup or holes in the zone) pages allocated in the RAM zone
+ */
+ TUint32 iAllocUnknown;
+
+ /**
+ The number of fixed pages allocated in the RAM zone
+ */
+ TUint32 iAllocFixed;
+
+ /**
+ The number of movable pages allocated in the RAM zone
+ */
+ TUint32 iAllocMovable;
+
+ /**
+ The number of discardable pages allocated in the RAM zone
+ */
+ TUint32 iAllocDiscardable;
+
+ /**
+ The number of other pages allocated in the RAM zone
+ */
+ TUint32 iAllocOther;
+
+ };
+#endif