halservices/hal/inc/hal_data.h
changeset 0 a41df078684a
child 6 0173bcd7697c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/halservices/hal/inc/hal_data.h	Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,1324 @@
+// 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:
+// hal\inc\hal_data.h
+// 
+//
+
+
+#ifndef __HAL_DATA_H__
+#define __HAL_DATA_H__
+#define bitmask enum
+
+class HALData
+/**
+@publishedPartner
+@released
+
+Sets of attributes and values used by HAL functions.
+*/
+	{
+public:
+    /**
+    A set of enumerators that identifies hardware attributes.
+    The enumerators are passed to HAL::Get() and HAL::Set().
+    
+    They are also used by the HAL accessor functions.
+    
+    @see HAL::Get()
+    @see HAL::Set()
+    */
+	enum TAttribute
+		{
+		/**
+		Identifies the manufacturer of a device.
+        If this is not enumerated in TManufacturer, then the manufacturer must
+        obtain a value from the Symbian registry.
+        
+        @see HALData::TManufacturer
+		*/
+		EManufacturer,
+		
+		
+		/**
+		The device specific hardware version number, as defined by
+		the device manufacturer.
+		*/
+		EManufacturerHardwareRev,
+		
+		
+		/**
+		The device specific version number, as defined by
+		the device manufacturer.
+		*/
+		EManufacturerSoftwareRev,
+		
+		
+		/**
+		The device specific software version number, as defined by
+		the device manufacturer.
+		*/
+		EManufacturerSoftwareBuild,
+
+		
+		/**
+		The device specific model number, as defined by
+		the device manufacturer.
+		*/
+		EModel,
+		
+				
+		/**
+		This is the device specific UID, It is unique to the class /model
+		of device. A value must be obtained from Symbian's UID registry for
+		this attribute.
+		*/
+		EMachineUid,
+		
+		
+		/**
+		The Symbian OS specified device family identifier.
+		If the device family is not one of those enumerated by TDeviceFamily,
+		then the licensee must obtain a UID from Symbian for this attribute.
+		
+		@see HALData::TDeviceFamily
+		*/
+		EDeviceFamily,
+
+		
+		/**
+		The Symbian OS specified device family version.
+		*/
+		EDeviceFamilyRev,
+
+		
+		/**
+		The CPU architecture used by this device. The values are enumerated
+		by TCPU.
+		
+		@see HALData::TCPU
+		*/
+		ECPU,
+		
+		
+		/**
+		A revision number for the CPU architecture.
+		*/
+		ECPUArch,
+
+		
+		/**
+		This is the default ABI used by CPU for user applications.
+		The values are enumerated by HALData::TCPUABI.
+		*/
+		ECPUABI,
+
+		
+		/**
+		The processor speed in KHz.
+		*/
+		ECPUSpeed,
+
+		
+		/**
+		The reason for most recent system boot.
+        This is dynamic and readonly; the values are enumerated by
+        TSystemStartupReason.
+
+		@see HALData::TSystemStartupReason
+		*/
+		ESystemStartupReason,
+
+		
+		/**
+		This is the last exception code, in the case of system reboot.
+		This is dynamic and readonly.
+		*/
+		ESystemException,
+		
+		
+		/**
+		The time between system ticks, in microseconds.
+		*/
+		ESystemTickPeriod,
+		
+		
+		/** 
+		The total system RAM, in bytes.
+		*/
+		EMemoryRAM,
+		
+		
+		/**
+		The currently free system RAM.
+		
+		This is dynamic and readonly.
+		*/
+		EMemoryRAMFree,
+
+		
+		/**
+		The total System ROM, in bytes.
+		*/
+		EMemoryROM,
+	
+		
+		/**
+		The MMU page size in bytes.
+		*/
+		EMemoryPageSize,
+	
+		
+		/**
+		Indicates the state of the power supply.
+        
+        It has the values:
+        1 = Power is good (i.e. external power is available,
+        or the 'power' battery is >= low);
+        0 = otherwise.
+        
+        This is dynamic and readonly.
+		*/
+		EPowerGood,
+	
+		
+		/**
+        The System (or 'Main') battery power level.
+        The allowable values are enumerated by TPowerBatteryStatus
+
+		This is dynamic and readonly,
+		
+		@see HALData::TPowerBatteryStatus
+		*/
+		EPowerBatteryStatus,
+	
+		
+		/**
+		Indicates whether a backup power supply is available.
+        It has the values:
+        0 = the device does not support (or need) a backup battery source;
+        1 = a backup batter source is present.
+		This is dynamic and readonly
+		*/
+		EPowerBackup,
+	
+		
+		/**
+        The power level for backup power.
+        
+        It has the values enumerated by TPowerBackupStatus.
+
+		This is dynamic and readonly.
+		
+		@see HALData::TPowerBackupStatus
+		*/
+		EPowerBackupStatus,
+	
+		
+		/**
+		Indicates the state of the external power.
+
+		It has the values:
+		0 = external power is not in use;
+		1 = external power is in use.
+		        
+        This is dynamic and readonly.
+		*/
+		EPowerExternal,
+	
+		
+		/**
+		A bitmask that describes the available keyboard types (it may support
+		more than one).
+
+        @see HALData::TKeyboard
+		*/
+		EKeyboard,
+	
+		
+		/**
+		*/
+		EKeyboardDeviceKeys,
+	
+		
+		/**
+		*/
+		EKeyboardAppKeys,
+	
+		
+		/**
+		Indicates whether the device can produce a click sound for
+		each keypress.
+		
+		It has the values:
+		0 = the device cannot produce a click sound for each keypress;
+		1 = the device can produce a click sound.
+		*/
+		EKeyboardClick,
+	
+		
+		/**
+		The state of keyboard clicking.
+
+        It has the values:
+        0 = key click disabled;
+        1 = key click enabled.
+        
+		This is dynamic and writeable.
+
+		@capability WriteDeviceData needed to Set this attribute
+		*/
+		EKeyboardClickState,
+	
+		
+		/**
+		The keyboard click volume level.
+
+		It can take a value in the range 0 to EKeyboardClickVolumeMax.
+        
+        This is dynamic and writeable.
+        
+        @see HALData::EKeyboardClickVolumeMax
+
+		@capability WriteDeviceData needed to Set this attribute
+		*/
+		EKeyboardClickVolume,
+	
+		
+		/**
+		The maximum value for EKeyboardClickVolume.
+		
+		@see HALData::EKeyboardClickVolume
+		*/
+		EKeyboardClickVolumeMax,
+	
+		
+		/**
+		The screen horizontal dimension in pixels.
+		*/
+		EDisplayXPixels,
+	
+		
+		/**
+		The screen vertical dimension in pixels.
+		*/
+		EDisplayYPixels,
+	
+		
+		/**
+		The screen horizontal dimension in twips.
+		*/
+		EDisplayXTwips,
+	
+		
+		/**
+		The screen vertical dimension in twips.
+		*/
+		EDisplayYTwips,
+	
+		
+		/**
+		The number of hues (colors or shades of grey) displayable on
+		the screen.
+		*/
+		EDisplayColors,
+	
+		
+		/**
+		The state of the display.
+		
+		It has the values:
+		0 = screen is turned off;
+		1 = screen is on.
+		
+		This is dynamic and writeable.
+
+		@capability PowerMgmt needed to Set this attribute
+		*/
+		EDisplayState,
+	
+		
+		/**
+		The screen contrast level.
+   		It can take a value in the range 0 to EDisplayContrastMax.
+        
+        This is dynamic and writeable
+
+		@see HALData::EDisplayContrastMax
+
+		@capability WriteDeviceData needed to Set this attribute
+		*/
+		EDisplayContrast,
+	
+		
+		/**
+		The maximum value for EDisplayContrast
+		
+		@see HALData::EDisplayContrast
+		*/
+		EDisplayContrastMax,
+		
+		
+		/**
+		Indicates whether there is a backlight on the device.
+
+		It has the values:
+		0 = there is no screen backlight;
+		1 = a screen backlight is present.
+		*/
+		EBacklight,
+			
+		
+		/**
+		The current status of the backlight.
+
+		It has the values:
+		0 = off;
+		1 = on.
+        
+        This is dynamic and writeable.
+
+		@capability WriteDeviceData needed to Set this attribute
+		*/
+		EBacklightState,
+			
+		
+		/**
+		Indicates whether a pen or digitizer is available for input.
+
+		It has the values:
+		0 = a pen/digitizer is not available for input;
+		1 = a pen/digitizeris present.
+		*/
+		EPen,
+			
+		
+		/**
+		The pen/digitizer horizontal resolution, in pixels.
+		*/
+		EPenX,
+			
+		
+		/**
+		The pen/digitizer vertical resolution, in pixels.
+		*/
+		EPenY,
+			
+		
+		/**
+		Indicates whether a pen tap will turn the display on.
+
+        It has the values:
+        0 = a pen tap has no effect;
+        1 = a pent tap or press enables the display.
+        
+        This is dynamic and writeable.
+
+		@capability WriteDeviceData needed to Set this attribute
+		*/
+		EPenDisplayOn,
+			
+		
+		/**
+		Indicates whether the device can produce a click sound for
+		each pen tap.
+
+		It has the values:
+        0 = the device cannot produce a click sound
+        1 = production of a click sound is supported by the device.
+		*/
+		EPenClick,
+			
+		
+		/**
+		The state of pen clicking.
+		
+		It has the values:
+		0 = pen clicking is disabled;
+		1 = pen clicking is enabled.
+		
+        This is dynamic and writable.
+
+		@capability WriteDeviceData needed to Set this attribute
+		*/
+		EPenClickState,
+			
+		
+		/**
+		The pen click volume level.
+        It can take a value in the range 0 to EPenClickVolumeMax.
+        
+        This value is dynamic and writable.
+        
+        @see HALData::EPenClickVolumeMax
+
+		@capability WriteDeviceData needed to Set this attribute
+		*/
+		EPenClickVolume,
+			
+		
+		/**
+		The maximum value for EPenClickVolume.
+		
+		@see HALData::EPenClickVolume
+		*/
+		EPenClickVolumeMax,
+			
+		
+		/**
+		Indicates whether a mouse is available for input.
+		
+		It has the values:
+		0 = there is no mouse available pen/digitizer is present;
+		1 = a mouse is available for input.
+		*/
+		EMouse,
+			
+		
+		/**
+		The mouse horizontal resolution, in pixels.
+		*/
+		EMouseX,
+			
+		
+		/**
+		The mouse vertical resolution, in pixels.
+		*/
+		EMouseY,
+			
+		
+		/**
+		Describes the mouse cursor visibility.
+
+        The value is enumerated by TMouseState.
+        
+		This is dynamic and writable.
+		@see HALData::TMouseState
+		
+		@capability MultimediaDD needed to Set this attribute
+		*/
+		EMouseState,
+			
+		
+		/**
+        Reserved for future use.
+		@capability MultimediaDD needed to Set this attribute
+		*/
+		EMouseSpeed,
+		
+		
+		/**
+		Reserved for future use.
+		@capability MultimediaDD needed to Set this attribute
+		*/
+		EMouseAcceleration,
+		
+		
+		/**
+		The number of buttons on the mouse.
+		*/
+		EMouseButtons,
+		
+		
+		/**
+        A bitmask defining the state of each button.
+
+        For each bit, it has values:
+        0 = up;
+        1 = down.
+        
+		This is dynamic and read only.
+		*/
+		EMouseButtonState,
+		
+		
+		/**
+		Defines the state of the case.
+		
+        It has the values:
+        0 = case closed;
+        1 = case opened.
+        
+        This is dynamic and read only.
+		*/
+		ECaseState,
+		
+		
+		/**
+		Indicates whether the device has a case switch, that actions when
+		the case opens and closes.
+		
+        It has values:
+        0 = no;
+        1 = yes.
+		*/
+		ECaseSwitch,
+		
+		
+		/**
+		Indicates whether the device is to switch on when case opens.
+		
+		It has the values:
+		0 = disable device switchon when the case opens;
+		1 = enable device  switchon when the case opens.
+        
+        This is dynamic and writeable.
+
+		@capability WriteDeviceData needed to Set this attribute
+		*/
+		ECaseSwitchDisplayOn,
+		
+		
+		/**
+        Indicates whether the device is to switch off when case close.
+
+		It has the values:
+		0 = disable device switchoff when the case closes;
+		1 = enable device switchoff when the case closes.
+        
+        This is dynamic and writeable.
+
+		@capability WriteDeviceData needed to Set this attribute
+		*/
+		ECaseSwitchDisplayOff,
+		
+		
+		/**
+		The number of LEDs on the device.
+		*/
+		ELEDs,
+		
+		
+		/**
+        A bitmask defining the state of each LED.
+
+        For each bit, it has values:
+        0 = off;
+        1 = on.
+		
+		This is dynamic and writeable.
+		*/
+		ELEDmask,
+		
+		
+		/**
+		Indicates how the phone hardware is connected.
+		
+		It has the values:
+		0 = phone hardware is not permanently connected;
+		1 = phone hardware is permanently connected.
+		*/
+		EIntegratedPhone,
+		
+		
+		/**
+		@capability WriteDeviceData needed to Set this attribute
+		*/
+		EDisplayBrightness,
+	
+		
+		/**
+		*/
+		EDisplayBrightnessMax,
+	
+		
+		/**
+		Indicates the state of the keyboard backlight.
+        
+        It has the values:
+        0 = keyboard backlight is off;
+        1 = keyboard backlight is on.
+
+		This is dynamic and writeable.
+
+		@capability PowerMgmt needed to Set this attribute
+		*/
+		EKeyboardBacklightState,
+	
+		
+		/**
+		Power supply to an accessory port.
+
+        It has the values:
+        0 = turn off power to an accessory port on the device;
+        1 = turn on power.
+        
+        This is dynamic and writeable.
+
+		@capability PowerMgmt needed to Set this attribute
+		*/
+		EAccessoryPower,
+	
+		
+		/**
+		A 2 decimal digit language index. 
+		
+		It is used as the two digit language number that is the suffix of
+		language resource DLLs, e.g ELOCL.01.
+
+		The locale with this language index is loaded the next time that
+		the device boots.
+
+        This is dynamic and writeable.
+
+		@see TLanguage
+
+		@capability WriteDeviceData needed to Set this attribute
+		*/
+		ELanguageIndex,
+	
+		
+		/**
+		A 2 decimal digit (decimal) language keyboard index.
+		It is used as the two digit language number that is the suffix of
+		language resource DLLs, e.g. EKDATA.01.
+		
+		@see TLanguage
+
+		@capability WriteDeviceData needed to Set this attribute
+		*/
+		EKeyboardIndex,
+	
+		
+		/**
+		The maximum allowable size of RAM drive, in bytes.
+		*/
+		EMaxRAMDriveSize,
+	
+		
+		/**
+		Indicates the state of the keyboard.
+		
+		It has the values:
+		0 = keyboard is disabled;
+		1 = Keyboard is enabled.
+        
+        This is dynamic and writeable.
+
+		@capability PowerMgmt needed to Set this attribute
+		*/
+		EKeyboardState,
+	
+		/**
+  		Defines the system drive & custom resource drive. 
+        Legacy attribute which is no longer supported.
+  
+  		@deprecated Attribute is no longer the primary mechanism to define the 
+  		System Drive or the Custom Resource Drive.
+        @see RFs::GetSystemDrive.
+        @see BaflUtils::NearestLanguageFile
+        @see HALData::ECustomResourceDrive
+  		*/
+		ESystemDrive,	
+		
+		/**
+		Indicates the state of the pen or digitiser.
+
+		It has the values:
+		1 = pen/digitiser is enabled;
+		0 = pen/digitiser is disabled.
+		
+        This is dynamic and writeable.
+
+		@capability PowerMgmt needed to Set this attribute
+		*/
+		EPenState,
+	
+		
+		/**
+		On input: aInOut contains the mode number.
+        On output: aInOut contains: 0 = display is colour;
+                                    1 = display is black & white.
+        
+        aInOut is the 3rd parameter passed to accessor functions
+        for derived attributes.
+		*/
+		EDisplayIsMono,
+	
+		
+		/**
+		On input: aInOut contains the mode number;
+        On output, aInOut contains: 0 = display is not palettised;
+                                    1 = display is palettised.
+        
+        aInOut is the 3rd parameter passed to accessor functions
+        for derived attributes.
+  		*/
+		EDisplayIsPalettized,
+	
+		
+		/**
+		The display bits per pixel.
+		
+        On input, aInOut contains the mode number.
+        On output, aInOut contains the bits per pixel for that mode.
+
+        aInOut is the 3rd parameter passed to accessor functions
+        for derived attributes.
+        
+        It is read only data.
+		*/
+		EDisplayBitsPerPixel,
+	
+		
+		/**
+		The number of display modes available.
+		*/
+		EDisplayNumModes,
+	
+		
+		/**
+		The address of the display memory.
+		*/
+		EDisplayMemoryAddress,
+	
+		
+		/**
+		The offset, in bytes, to the pixel area of the screen from the start of screen memory.
+		
+		This is used to account for the fact that the palette is sometimes at
+		the beginning of the display memory.
+		
+        On input, aInOut contains the mode number.
+        On output, aInOut contains the offset to the first pixel for that mode.
+
+        aInOut is the 3rd parameter passed to accessor functions
+        for derived attributes.
+		*/
+		EDisplayOffsetToFirstPixel,
+	
+		
+		/**
+		The separation, in bytes, of successive lines of display in memory.
+        
+        On input, aInOut contains the mode number.
+        On output, aInOut contains the display offset between lines.
+
+        aInOut is the 3rd parameter passed to accessor functions
+        for derived attributes.
+		*/
+		EDisplayOffsetBetweenLines,
+	
+		
+		/**
+		@capability MultimediaDD needed to Set this attribute
+		*/
+		EDisplayPaletteEntry,
+	
+		
+		/**
+		It has the values:
+		1 = order of pixels in display is RGB;
+		0 = otherwise.
+		*/
+		EDisplayIsPixelOrderRGB,
+	
+		
+		/**
+		It has the values:
+		1 = pixel order is landscape;
+		0 = pixel order is portrait.
+		*/
+		EDisplayIsPixelOrderLandscape,
+	
+		
+		/**
+		This indicates or sets the current display mode where
+		EDisplayNumModes-1 is the maximum value for the display mode.
+		The properties of a particular display mode are entirely defined by
+		the base port software associated with the hardware upon which the OS
+		is running.
+
+		@capability MultimediaDD needed to Set this attribute
+		*/
+		EDisplayMode,
+	
+		
+		/**
+		If the target hardware upon which Symbian OS is running has switches
+		which can be read by the base port software, this interface allows
+		the current status of those switches to be read. 
+		*/
+		ESwitches,
+	
+		
+		/**
+		The port number of the debug port.
+		*/
+		EDebugPort,
+	
+		
+		/**
+		The language code of the Locale which was loaded at device boot time.
+
+        This is dynamic and writeable.
+
+		@see ELanguageIndex
+
+		@capability WriteSystemData needed to Set this attribute
+		*/
+		ELocaleLoaded,
+	
+		
+		/**
+		The drive number to use for storage of Clipboard data.
+		0 = Drive A, 1 = Drive B, etc...
+		*/
+		EClipboardDrive,
+	
+		/**
+		Custom restart
+		@capability PowerMgmt
+		*/
+		ECustomRestart,
+
+		/**
+		Custom restart reason
+		*/
+		ECustomRestartReason,
+
+		/**
+		The number of screens.
+		*/
+		EDisplayNumberOfScreens,
+
+		/**
+		The time between nanokernel ticks, in microseconds.
+		*/
+		ENanoTickPeriod,
+
+		/**
+		The frequency of the fast counter.
+		*/
+		EFastCounterFrequency,
+
+		/**
+		Indicates the whether the fast counter counts up or down.
+		*/
+		EFastCounterCountsUp,
+
+		/**		
+		Indicates whether a 3 dimensional pointing device is available for input and Z coordinate
+		is provided in appropriate pointer-related TRawEvents generated by the driver.
+
+		It has the values:
+		0 = a 3D pointer is not available for input and Z coordinate is not provided in TRawEvents;
+		1 = a 3D pointer is present and Z coordinate is provided in TRawEvents.
+		*/
+		EPointer3D,
+
+		/**		
+		The furthest detectable 3D pointing device's proximity above the screen.
+		As proximity values above the screen are negative, this will be a negative value.
+
+		This is dynamic and writeable.
+		*/
+		EPointer3DMaxProximity,
+
+		/**		
+		Indicates whether a 3 dimensional pointing device supports Theta polar angle reading.
+
+		It has the values:
+		0 = a 3D pointer does not support Theta polar angle reading;
+		1 = a 3D pointer supports Theta polar angle reading.
+		*/
+		EPointer3DThetaSupported,
+
+		/**
+		Indicates whether a 3 dimensional pointing device supports Phi polar angle reading.
+
+		It has the values:
+		0 = a 3D pointer does not support Phi polar angle reading;
+		1 = a 3D pointer supports Phi polar angle reading.
+		*/
+		EPointer3DPhiSupported,
+
+		/**
+		Indicates whether a 3 dimensional pointing device supports rotation angle along its main axis reading.
+
+		It has the values:
+		0 = a 3D pointer does not support alpha (rotation) reading;
+		1 = a 3D pointer supports alpha (rotation) reading.
+		*/
+		EPointer3DRotationSupported,
+
+		/**
+		Indicates whether a 3 dimensional pointing device supports readings of pressure applied on screen.
+
+		It has the values:
+		0 = a 3D pointer does not support pressure reading;
+		1 = a 3D pointer supports pressure reading.
+		*/
+		EPointer3DPressureSupported,
+
+		/**
+		Indicates whether hardware floating point is available, and what type.
+		
+		If no hardware floating point is available, reading this attribute will return KErrNotSupported.
+		If hardware floating point is available, reading this attribute will return KErrNone and the type
+		available. These types are specified in TFloatingPointType.
+		*/
+		EHardwareFloatingPoint,
+
+		/**
+		The offset between secure and nonsecure clocks. If this attribute is undefined no secure clock
+		will be available.
+		*/
+		ETimeNonSecureOffset,
+
+		/**
+		Persist startup mode.
+
+		If no variant specific implementation exists, the startup mode will be stored in platform
+		specific values.hda file.
+		*/
+		EPersistStartupModeKernel,
+
+		/**
+		Maximum restart reasons.
+
+		Returns the maximum number of values that can be used to store the restart reason required for a custom restart.
+		*/
+		EMaximumCustomRestartReasons,
+
+		/**
+		Maximum startup modes.
+		
+		Returns the maximum number of values that can be used to store the startup mode requires for a system restart.
+		*/
+		EMaximumRestartStartupModes,
+		
+		/**
+		Defines the custom resource drive.
+		
+		This drive attribute should be set if an additional drive is required for use in the search 
+		algorithm for language files.  
+        
+        @see TDriveNumber
+		@see BaflUtils::NearestLanguageFile for how this attribute is used
+		@capability WriteDeviceData needed to Set this attribute
+		*/
+		ECustomResourceDrive,
+
+		/**
+		Step size of Z distance data.
+
+		Returns the minimum size of the step between two resolvable z positions
+		*/
+		EPointer3DProximityStep,
+
+		/**
+		Maximum Number of Pointers supported by hardware/driver
+
+		Returns the maximum number of pointers for a multi-touch configuration (or KErrNotSupported or 0 or 1 for single-touch legacy configuration)
+		*/
+		EPointerMaxPointers,
+
+		/**
+		Maximum Number of Pointers
+		
+		Sets and reads back the number of pointers as requested by the UI (<=EPointerMaxPointers)
+		*/
+		EPointerNumberOfPointers,
+
+		/**
+		Maximum Pressure Value
+
+		Returns the maximum pressure value
+		*/
+		EPointer3DMaxPressure,
+
+		/**
+		Step size of pressure data.
+
+		Returns the minimum size of the step between two resolvable pressure readings			
+		*/
+		EPointer3DPressureStep,
+
+		/**
+		The threshold on pointer's Z coordinate above which EEnterHighPressure pointer event is sent to WSERV's clients.
+		This value is intended to be preconfigured in build time and modified by Window Server only
+
+		@prototype 9.5
+		*/
+		EPointer3DEnterHighPressureThreshold,
+	
+		/**
+		The threshold on pointer's Z coordinate below which EExitHighPressure pointer event is sent to WSERV's clients.
+		This value is intended to be preconfigured in build time and modified by Window Server only
+
+		@prototype 9.5
+		*/
+		EPointer3DExitHighPressureThreshold,
+
+		/**
+		The threshold on pointer's Z coordinate above which EEnterCloseProximity pointer event is sent to WSERV's clients.
+		This value is intended to be preconfigured in build time and modified by Window Server only
+
+		@prototype 9.5
+		*/
+		EPointer3DEnterCloseProximityThreshold,
+
+		
+		/**
+		The threshold on pointer's Z coordinate below which EExitCloseProximity pointer event is sent to WSERV's clients.
+		This value is intended to be preconfigured in build time and modified by Window Server only
+
+		@prototype 9.5
+		*/
+		EPointer3DExitCloseProximityThreshold,
+		
+		/**
+		A Handle to the display memory.
+
+		@prototype 9.5
+		*/
+		EDisplayMemoryHandle,
+
+		/**
+		Serial number of this board
+		*/
+		ESerialNumber,
+		
+		
+		/**
+		Interrupt used by sampling profiler - applicable for SMP only. Each CPU_i is interrupted by interrupt number ECpuProfilingInterrupt + i
+		*/
+		ECpuProfilingDefaultInterruptBase,
+
+
+		/**
+		Number of processors present on the device. Returns 1 on unicore. This number is constant and does not take account of power management
+		*/
+		ENumCpus,
+
+
+		/*
+		 * NOTE:
+		 * When updating this list, please also update hal/rom/hal.hby and hal/tsrc/t_newhal.cpp.
+		 */
+
+		/**
+		
+		The number of HAL attributes per screen.
+		
+		It is simply defined by its position in the enumeration.
+		*/
+		ENumHalAttributes		
+
+		};
+
+
+
+    /**
+    Defines properties for the hardware attributes.
+    
+    @see HALData::TAttribute
+    */
+	enum TAttributeProperty
+		{
+		/**
+		When set, means that an attribute is meaningful on this device.
+				
+		@see HAL::Get()
+		@see HAL::Set()
+		*/
+		EValid=0x1,
+		
+		
+		/**
+		When set, means that an attribute is modifiable.
+		A call to HAL::Set() for an attribute that does not have this property,
+		returns KErrNotSupported.
+		
+		@see HAL::Get()
+		@see HAL::Set()
+		*/
+		ESettable=0x2,
+		};
+
+
+
+    /**
+    UIDs for a defined set of device manufacturers.
+    
+    Note that any manufacturer not represented in this list must obtain
+    a value from the Symbian registry.
+    
+    @see HALData::TAttribute
+    */
+    enum TManufacturer // UID for manufacturer
+		{
+		EManufacturer_Ericsson=0x00000000,
+		EManufacturer_Motorola=0x00000001,
+		EManufacturer_Nokia=0x00000002,
+		EManufacturer_Panasonic=0x00000003,
+		EManufacturer_Psion=0x00000004,
+		EManufacturer_Intel=0x00000005,
+		EManufacturer_Cogent=0x00000006,
+		EManufacturer_Cirrus=0x00000007,
+		EManufacturer_Linkup=0x00000008,
+		EManufacturer_TexasInstruments=0x00000009,
+		// New manufacturers must obtain an official UID to identify themselves
+		};
+
+
+
+    /**
+	Defines the Symbian OS device families.
+	
+    @see HALData::TAttribute
+    */
+	enum TDeviceFamily
+		{
+		EDeviceFamily_Crystal,
+		EDeviceFamily_Pearl,
+		EDeviceFamily_Quartz,
+		};
+
+
+
+    /**
+    Defines the set of CPU architectures.
+    
+    @see HALData::TAttribute
+    */
+	enum TCPU
+		{
+		ECPU_ARM,
+		ECPU_MCORE,
+		ECPU_X86,
+		};
+
+
+
+    /**
+    Defines the set of ABIs used by the CPU for user applications.
+    
+    @see HALData::TAttribute    
+    */
+	enum TCPUABI
+		{
+		ECPUABI_ARM4,
+		ECPUABI_ARMI,
+		ECPUABI_THUMB,
+		ECPUABI_MCORE,
+		ECPUABI_MSVC,
+		ECPUABI_ARM5T,
+		ECPUABI_X86,
+		};
+
+
+
+    /**
+    Defines the set of reasons for a system boot.
+    
+    @see HALData::TAttribute
+    */
+	enum TSystemStartupReason
+		{
+		ESystemStartupReason_Cold,
+		ESystemStartupReason_Warm,
+		ESystemStartupReason_Fault,
+		};
+
+
+
+    /**
+    Defines the set of available keyboard types.
+
+    @see HALData::TAttribute
+    */
+	bitmask TKeyboard
+		{
+		EKeyboard_Keypad=0x1,
+		EKeyboard_Full=0x2,
+		};
+
+
+
+    /**
+    Defines the mouse cursor visibility.
+    
+    @see HALData::TAttribute
+    */
+	enum TMouseState
+		{
+		EMouseState_Invisible=0,
+		EMouseState_Visible=1,
+		};
+
+
+
+    /**
+    Defines a set of UIDs for specific devices, reference boards etc
+    
+    @see HALData::TAttribute
+    */
+	enum TMachineUid
+		{
+		EMachineUid_Series5mx=0x1000118a,
+		EMachineUid_Brutus=0x10005f60,
+		EMachineUid_Cogent=0x10005f61,
+		EMachineUid_Win32Emulator=0x10005f62,
+		EMachineUid_WinC=0x10005f63,
+		EMachineUid_CL7211_Eval=0x1000604f,
+		EMachineUid_LinkUp=0x00000000,
+		EMachineUid_Assabet=0x100093f3,
+		EMachineUid_Zylonite=0x101f7f27,
+		EMachineUid_IQ80310=0x1000a681,
+		EMachineUid_Lubbock=0x101f7f26,
+		EMachineUid_Integrator=0x1000AAEA,
+		EMachineUid_Helen=0x101F3EE3,
+		EMachineUid_X86PC=0x100000ad,
+		EMachineUid_OmapH2=0x1020601C,
+		EMachineUid_OmapH4=0x102734E3,
+		EMachineUid_NE1_TB=0x102864F7,
+		EMachineUid_EmuBoard=0x1200afed,
+		EMachineUid_OmapH6=0x10286564,
+		EMachineUid_OmapZoom=0x10286565,
+		};
+
+
+
+    /**
+    Defines power levels for the system (or 'Main') battery.
+    
+    @see HALData::TAttribute
+    */
+	enum TPowerBatteryStatus
+		{
+		EPowerBatteryStatus_Zero,
+		EPowerBatteryStatus_Replace,
+		EPowerBatteryStatus_Low,
+		EPowerBatteryStatus_Good,
+		};
+
+
+
+    /**
+    Defines power levels for the backup power.
+
+    @see HALData::TAttribute
+    */
+	enum TPowerBackupStatus
+		{
+		EPowerBackupStatus_Zero,
+		EPowerBackupStatus_Replace,
+		EPowerBackupStatus_Low,
+		EPowerBackupStatus_Good,
+		};
+	
+	};
+
+#endif