os/kernelhwsrv/halservices/hal/inc/hal_data.h
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/kernelhwsrv/halservices/hal/inc/hal_data.h	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,1325 @@
     1.4 +// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.5 +// All rights reserved.
     1.6 +// This component and the accompanying materials are made available
     1.7 +// under the terms of the License "Eclipse Public License v1.0"
     1.8 +// which accompanies this distribution, and is available
     1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
    1.10 +//
    1.11 +// Initial Contributors:
    1.12 +// Nokia Corporation - initial contribution.
    1.13 +//
    1.14 +// Contributors:
    1.15 +//
    1.16 +// Description:
    1.17 +// hal\inc\hal_data.h
    1.18 +// 
    1.19 +//
    1.20 +
    1.21 +
    1.22 +#ifndef __HAL_DATA_H__
    1.23 +#define __HAL_DATA_H__
    1.24 +#define bitmask enum
    1.25 +
    1.26 +class HALData
    1.27 +/**
    1.28 +@publishedPartner
    1.29 +@released
    1.30 +
    1.31 +Sets of attributes and values used by HAL functions.
    1.32 +*/
    1.33 +	{
    1.34 +public:
    1.35 +    /**
    1.36 +    A set of enumerators that identifies hardware attributes.
    1.37 +    The enumerators are passed to HAL::Get() and HAL::Set().
    1.38 +    
    1.39 +    They are also used by the HAL accessor functions.
    1.40 +    
    1.41 +    @see HAL::Get()
    1.42 +    @see HAL::Set()
    1.43 +    */
    1.44 +	enum TAttribute
    1.45 +		{
    1.46 +		/**
    1.47 +		Identifies the manufacturer of a device.
    1.48 +        If this is not enumerated in TManufacturer, then the manufacturer must
    1.49 +        obtain a value from the Symbian registry.
    1.50 +        
    1.51 +        @see HALData::TManufacturer
    1.52 +		*/
    1.53 +		EManufacturer,
    1.54 +		
    1.55 +		
    1.56 +		/**
    1.57 +		The device specific hardware version number, as defined by
    1.58 +		the device manufacturer.
    1.59 +		*/
    1.60 +		EManufacturerHardwareRev,
    1.61 +		
    1.62 +		
    1.63 +		/**
    1.64 +		The device specific version number, as defined by
    1.65 +		the device manufacturer.
    1.66 +		*/
    1.67 +		EManufacturerSoftwareRev,
    1.68 +		
    1.69 +		
    1.70 +		/**
    1.71 +		The device specific software version number, as defined by
    1.72 +		the device manufacturer.
    1.73 +		*/
    1.74 +		EManufacturerSoftwareBuild,
    1.75 +
    1.76 +		
    1.77 +		/**
    1.78 +		The device specific model number, as defined by
    1.79 +		the device manufacturer.
    1.80 +		*/
    1.81 +		EModel,
    1.82 +		
    1.83 +				
    1.84 +		/**
    1.85 +		This is the device specific UID, It is unique to the class /model
    1.86 +		of device. A value must be obtained from Symbian's UID registry for
    1.87 +		this attribute.
    1.88 +		*/
    1.89 +		EMachineUid,
    1.90 +		
    1.91 +		
    1.92 +		/**
    1.93 +		The Symbian OS specified device family identifier.
    1.94 +		If the device family is not one of those enumerated by TDeviceFamily,
    1.95 +		then the licensee must obtain a UID from Symbian for this attribute.
    1.96 +		
    1.97 +		@see HALData::TDeviceFamily
    1.98 +		*/
    1.99 +		EDeviceFamily,
   1.100 +
   1.101 +		
   1.102 +		/**
   1.103 +		The Symbian OS specified device family version.
   1.104 +		*/
   1.105 +		EDeviceFamilyRev,
   1.106 +
   1.107 +		
   1.108 +		/**
   1.109 +		The CPU architecture used by this device. The values are enumerated
   1.110 +		by TCPU.
   1.111 +		
   1.112 +		@see HALData::TCPU
   1.113 +		*/
   1.114 +		ECPU,
   1.115 +		
   1.116 +		
   1.117 +		/**
   1.118 +		A revision number for the CPU architecture.
   1.119 +		*/
   1.120 +		ECPUArch,
   1.121 +
   1.122 +		
   1.123 +		/**
   1.124 +		This is the default ABI used by CPU for user applications.
   1.125 +		The values are enumerated by HALData::TCPUABI.
   1.126 +		*/
   1.127 +		ECPUABI,
   1.128 +
   1.129 +		
   1.130 +		/**
   1.131 +		The processor speed in KHz.
   1.132 +		*/
   1.133 +		ECPUSpeed,
   1.134 +
   1.135 +		
   1.136 +		/**
   1.137 +		The reason for most recent system boot.
   1.138 +        This is dynamic and readonly; the values are enumerated by
   1.139 +        TSystemStartupReason.
   1.140 +
   1.141 +		@see HALData::TSystemStartupReason
   1.142 +		*/
   1.143 +		ESystemStartupReason,
   1.144 +
   1.145 +		
   1.146 +		/**
   1.147 +		This is the last exception code, in the case of system reboot.
   1.148 +		This is dynamic and readonly.
   1.149 +		*/
   1.150 +		ESystemException,
   1.151 +		
   1.152 +		
   1.153 +		/**
   1.154 +		The time between system ticks, in microseconds.
   1.155 +		*/
   1.156 +		ESystemTickPeriod,
   1.157 +		
   1.158 +		
   1.159 +		/** 
   1.160 +		The total system RAM, in bytes.
   1.161 +		*/
   1.162 +		EMemoryRAM,
   1.163 +		
   1.164 +		
   1.165 +		/**
   1.166 +		The currently free system RAM.
   1.167 +		
   1.168 +		This is dynamic and readonly.
   1.169 +		*/
   1.170 +		EMemoryRAMFree,
   1.171 +
   1.172 +		
   1.173 +		/**
   1.174 +		The total System ROM, in bytes.
   1.175 +		*/
   1.176 +		EMemoryROM,
   1.177 +	
   1.178 +		
   1.179 +		/**
   1.180 +		The MMU page size in bytes.
   1.181 +		*/
   1.182 +		EMemoryPageSize,
   1.183 +	
   1.184 +		
   1.185 +		/**
   1.186 +		Indicates the state of the power supply.
   1.187 +        
   1.188 +        It has the values:
   1.189 +        1 = Power is good (i.e. external power is available,
   1.190 +        or the 'power' battery is >= low);
   1.191 +        0 = otherwise.
   1.192 +        
   1.193 +        This is dynamic and readonly.
   1.194 +		*/
   1.195 +		EPowerGood,
   1.196 +	
   1.197 +		
   1.198 +		/**
   1.199 +        The System (or 'Main') battery power level.
   1.200 +        The allowable values are enumerated by TPowerBatteryStatus
   1.201 +
   1.202 +		This is dynamic and readonly,
   1.203 +		
   1.204 +		@see HALData::TPowerBatteryStatus
   1.205 +		*/
   1.206 +		EPowerBatteryStatus,
   1.207 +	
   1.208 +		
   1.209 +		/**
   1.210 +		Indicates whether a backup power supply is available.
   1.211 +        It has the values:
   1.212 +        0 = the device does not support (or need) a backup battery source;
   1.213 +        1 = a backup batter source is present.
   1.214 +		This is dynamic and readonly
   1.215 +		*/
   1.216 +		EPowerBackup,
   1.217 +	
   1.218 +		
   1.219 +		/**
   1.220 +        The power level for backup power.
   1.221 +        
   1.222 +        It has the values enumerated by TPowerBackupStatus.
   1.223 +
   1.224 +		This is dynamic and readonly.
   1.225 +		
   1.226 +		@see HALData::TPowerBackupStatus
   1.227 +		*/
   1.228 +		EPowerBackupStatus,
   1.229 +	
   1.230 +		
   1.231 +		/**
   1.232 +		Indicates the state of the external power.
   1.233 +
   1.234 +		It has the values:
   1.235 +		0 = external power is not in use;
   1.236 +		1 = external power is in use.
   1.237 +		        
   1.238 +        This is dynamic and readonly.
   1.239 +		*/
   1.240 +		EPowerExternal,
   1.241 +	
   1.242 +		
   1.243 +		/**
   1.244 +		A bitmask that describes the available keyboard types (it may support
   1.245 +		more than one).
   1.246 +
   1.247 +        @see HALData::TKeyboard
   1.248 +		*/
   1.249 +		EKeyboard,
   1.250 +	
   1.251 +		
   1.252 +		/**
   1.253 +		*/
   1.254 +		EKeyboardDeviceKeys,
   1.255 +	
   1.256 +		
   1.257 +		/**
   1.258 +		*/
   1.259 +		EKeyboardAppKeys,
   1.260 +	
   1.261 +		
   1.262 +		/**
   1.263 +		Indicates whether the device can produce a click sound for
   1.264 +		each keypress.
   1.265 +		
   1.266 +		It has the values:
   1.267 +		0 = the device cannot produce a click sound for each keypress;
   1.268 +		1 = the device can produce a click sound.
   1.269 +		*/
   1.270 +		EKeyboardClick,
   1.271 +	
   1.272 +		
   1.273 +		/**
   1.274 +		The state of keyboard clicking.
   1.275 +
   1.276 +        It has the values:
   1.277 +        0 = key click disabled;
   1.278 +        1 = key click enabled.
   1.279 +        
   1.280 +		This is dynamic and writeable.
   1.281 +
   1.282 +		@capability WriteDeviceData needed to Set this attribute
   1.283 +		*/
   1.284 +		EKeyboardClickState,
   1.285 +	
   1.286 +		
   1.287 +		/**
   1.288 +		The keyboard click volume level.
   1.289 +
   1.290 +		It can take a value in the range 0 to EKeyboardClickVolumeMax.
   1.291 +        
   1.292 +        This is dynamic and writeable.
   1.293 +        
   1.294 +        @see HALData::EKeyboardClickVolumeMax
   1.295 +
   1.296 +		@capability WriteDeviceData needed to Set this attribute
   1.297 +		*/
   1.298 +		EKeyboardClickVolume,
   1.299 +	
   1.300 +		
   1.301 +		/**
   1.302 +		The maximum value for EKeyboardClickVolume.
   1.303 +		
   1.304 +		@see HALData::EKeyboardClickVolume
   1.305 +		*/
   1.306 +		EKeyboardClickVolumeMax,
   1.307 +	
   1.308 +		
   1.309 +		/**
   1.310 +		The screen horizontal dimension in pixels.
   1.311 +		*/
   1.312 +		EDisplayXPixels,
   1.313 +	
   1.314 +		
   1.315 +		/**
   1.316 +		The screen vertical dimension in pixels.
   1.317 +		*/
   1.318 +		EDisplayYPixels,
   1.319 +	
   1.320 +		
   1.321 +		/**
   1.322 +		The screen horizontal dimension in twips.
   1.323 +		*/
   1.324 +		EDisplayXTwips,
   1.325 +	
   1.326 +		
   1.327 +		/**
   1.328 +		The screen vertical dimension in twips.
   1.329 +		*/
   1.330 +		EDisplayYTwips,
   1.331 +	
   1.332 +		
   1.333 +		/**
   1.334 +		The number of hues (colors or shades of grey) displayable on
   1.335 +		the screen.
   1.336 +		*/
   1.337 +		EDisplayColors,
   1.338 +	
   1.339 +		
   1.340 +		/**
   1.341 +		The state of the display.
   1.342 +		
   1.343 +		It has the values:
   1.344 +		0 = screen is turned off;
   1.345 +		1 = screen is on.
   1.346 +		
   1.347 +		This is dynamic and writeable.
   1.348 +
   1.349 +		@capability PowerMgmt needed to Set this attribute
   1.350 +		*/
   1.351 +		EDisplayState,
   1.352 +	
   1.353 +		
   1.354 +		/**
   1.355 +		The screen contrast level.
   1.356 +   		It can take a value in the range 0 to EDisplayContrastMax.
   1.357 +        
   1.358 +        This is dynamic and writeable
   1.359 +
   1.360 +		@see HALData::EDisplayContrastMax
   1.361 +
   1.362 +		@capability WriteDeviceData needed to Set this attribute
   1.363 +		*/
   1.364 +		EDisplayContrast,
   1.365 +	
   1.366 +		
   1.367 +		/**
   1.368 +		The maximum value for EDisplayContrast
   1.369 +		
   1.370 +		@see HALData::EDisplayContrast
   1.371 +		*/
   1.372 +		EDisplayContrastMax,
   1.373 +		
   1.374 +		
   1.375 +		/**
   1.376 +		Indicates whether there is a backlight on the device.
   1.377 +
   1.378 +		It has the values:
   1.379 +		0 = there is no screen backlight;
   1.380 +		1 = a screen backlight is present.
   1.381 +		*/
   1.382 +		EBacklight,
   1.383 +			
   1.384 +		
   1.385 +		/**
   1.386 +		The current status of the backlight.
   1.387 +
   1.388 +		It has the values:
   1.389 +		0 = off;
   1.390 +		1 = on.
   1.391 +        
   1.392 +        This is dynamic and writeable.
   1.393 +
   1.394 +		@capability WriteDeviceData needed to Set this attribute
   1.395 +		*/
   1.396 +		EBacklightState,
   1.397 +			
   1.398 +		
   1.399 +		/**
   1.400 +		Indicates whether a pen or digitizer is available for input.
   1.401 +
   1.402 +		It has the values:
   1.403 +		0 = a pen/digitizer is not available for input;
   1.404 +		1 = a pen/digitizeris present.
   1.405 +		*/
   1.406 +		EPen,
   1.407 +			
   1.408 +		
   1.409 +		/**
   1.410 +		The pen/digitizer horizontal resolution, in pixels.
   1.411 +		*/
   1.412 +		EPenX,
   1.413 +			
   1.414 +		
   1.415 +		/**
   1.416 +		The pen/digitizer vertical resolution, in pixels.
   1.417 +		*/
   1.418 +		EPenY,
   1.419 +			
   1.420 +		
   1.421 +		/**
   1.422 +		Indicates whether a pen tap will turn the display on.
   1.423 +
   1.424 +        It has the values:
   1.425 +        0 = a pen tap has no effect;
   1.426 +        1 = a pent tap or press enables the display.
   1.427 +        
   1.428 +        This is dynamic and writeable.
   1.429 +
   1.430 +		@capability WriteDeviceData needed to Set this attribute
   1.431 +		*/
   1.432 +		EPenDisplayOn,
   1.433 +			
   1.434 +		
   1.435 +		/**
   1.436 +		Indicates whether the device can produce a click sound for
   1.437 +		each pen tap.
   1.438 +
   1.439 +		It has the values:
   1.440 +        0 = the device cannot produce a click sound
   1.441 +        1 = production of a click sound is supported by the device.
   1.442 +		*/
   1.443 +		EPenClick,
   1.444 +			
   1.445 +		
   1.446 +		/**
   1.447 +		The state of pen clicking.
   1.448 +		
   1.449 +		It has the values:
   1.450 +		0 = pen clicking is disabled;
   1.451 +		1 = pen clicking is enabled.
   1.452 +		
   1.453 +        This is dynamic and writable.
   1.454 +
   1.455 +		@capability WriteDeviceData needed to Set this attribute
   1.456 +		*/
   1.457 +		EPenClickState,
   1.458 +			
   1.459 +		
   1.460 +		/**
   1.461 +		The pen click volume level.
   1.462 +        It can take a value in the range 0 to EPenClickVolumeMax.
   1.463 +        
   1.464 +        This value is dynamic and writable.
   1.465 +        
   1.466 +        @see HALData::EPenClickVolumeMax
   1.467 +
   1.468 +		@capability WriteDeviceData needed to Set this attribute
   1.469 +		*/
   1.470 +		EPenClickVolume,
   1.471 +			
   1.472 +		
   1.473 +		/**
   1.474 +		The maximum value for EPenClickVolume.
   1.475 +		
   1.476 +		@see HALData::EPenClickVolume
   1.477 +		*/
   1.478 +		EPenClickVolumeMax,
   1.479 +			
   1.480 +		
   1.481 +		/**
   1.482 +		Indicates whether a mouse is available for input.
   1.483 +		
   1.484 +		It has the values:
   1.485 +		0 = there is no mouse available pen/digitizer is present;
   1.486 +		1 = a mouse is available for input.
   1.487 +		*/
   1.488 +		EMouse,
   1.489 +			
   1.490 +		
   1.491 +		/**
   1.492 +		The mouse horizontal resolution, in pixels.
   1.493 +		*/
   1.494 +		EMouseX,
   1.495 +			
   1.496 +		
   1.497 +		/**
   1.498 +		The mouse vertical resolution, in pixels.
   1.499 +		*/
   1.500 +		EMouseY,
   1.501 +			
   1.502 +		
   1.503 +		/**
   1.504 +		Describes the mouse cursor visibility.
   1.505 +
   1.506 +        The value is enumerated by TMouseState.
   1.507 +        
   1.508 +		This is dynamic and writable.
   1.509 +		@see HALData::TMouseState
   1.510 +		
   1.511 +		@capability MultimediaDD needed to Set this attribute
   1.512 +		*/
   1.513 +		EMouseState,
   1.514 +			
   1.515 +		
   1.516 +		/**
   1.517 +        Reserved for future use.
   1.518 +		@capability MultimediaDD needed to Set this attribute
   1.519 +		*/
   1.520 +		EMouseSpeed,
   1.521 +		
   1.522 +		
   1.523 +		/**
   1.524 +		Reserved for future use.
   1.525 +		@capability MultimediaDD needed to Set this attribute
   1.526 +		*/
   1.527 +		EMouseAcceleration,
   1.528 +		
   1.529 +		
   1.530 +		/**
   1.531 +		The number of buttons on the mouse.
   1.532 +		*/
   1.533 +		EMouseButtons,
   1.534 +		
   1.535 +		
   1.536 +		/**
   1.537 +        A bitmask defining the state of each button.
   1.538 +
   1.539 +        For each bit, it has values:
   1.540 +        0 = up;
   1.541 +        1 = down.
   1.542 +        
   1.543 +		This is dynamic and read only.
   1.544 +		*/
   1.545 +		EMouseButtonState,
   1.546 +		
   1.547 +		
   1.548 +		/**
   1.549 +		Defines the state of the case.
   1.550 +		
   1.551 +        It has the values:
   1.552 +        0 = case closed;
   1.553 +        1 = case opened.
   1.554 +        
   1.555 +        This is dynamic and read only.
   1.556 +		*/
   1.557 +		ECaseState,
   1.558 +		
   1.559 +		
   1.560 +		/**
   1.561 +		Indicates whether the device has a case switch, that actions when
   1.562 +		the case opens and closes.
   1.563 +		
   1.564 +        It has values:
   1.565 +        0 = no;
   1.566 +        1 = yes.
   1.567 +		*/
   1.568 +		ECaseSwitch,
   1.569 +		
   1.570 +		
   1.571 +		/**
   1.572 +		Indicates whether the device is to switch on when case opens.
   1.573 +		
   1.574 +		It has the values:
   1.575 +		0 = disable device switchon when the case opens;
   1.576 +		1 = enable device  switchon when the case opens.
   1.577 +        
   1.578 +        This is dynamic and writeable.
   1.579 +
   1.580 +		@capability WriteDeviceData needed to Set this attribute
   1.581 +		*/
   1.582 +		ECaseSwitchDisplayOn,
   1.583 +		
   1.584 +		
   1.585 +		/**
   1.586 +        Indicates whether the device is to switch off when case close.
   1.587 +
   1.588 +		It has the values:
   1.589 +		0 = disable device switchoff when the case closes;
   1.590 +		1 = enable device switchoff when the case closes.
   1.591 +        
   1.592 +        This is dynamic and writeable.
   1.593 +
   1.594 +		@capability WriteDeviceData needed to Set this attribute
   1.595 +		*/
   1.596 +		ECaseSwitchDisplayOff,
   1.597 +		
   1.598 +		
   1.599 +		/**
   1.600 +		The number of LEDs on the device.
   1.601 +		*/
   1.602 +		ELEDs,
   1.603 +		
   1.604 +		
   1.605 +		/**
   1.606 +        A bitmask defining the state of each LED.
   1.607 +
   1.608 +        For each bit, it has values:
   1.609 +        0 = off;
   1.610 +        1 = on.
   1.611 +		
   1.612 +		This is dynamic and writeable.
   1.613 +		*/
   1.614 +		ELEDmask,
   1.615 +		
   1.616 +		
   1.617 +		/**
   1.618 +		Indicates how the phone hardware is connected.
   1.619 +		
   1.620 +		It has the values:
   1.621 +		0 = phone hardware is not permanently connected;
   1.622 +		1 = phone hardware is permanently connected.
   1.623 +		*/
   1.624 +		EIntegratedPhone,
   1.625 +		
   1.626 +		
   1.627 +		/**
   1.628 +		@capability WriteDeviceData needed to Set this attribute
   1.629 +		*/
   1.630 +		EDisplayBrightness,
   1.631 +	
   1.632 +		
   1.633 +		/**
   1.634 +		*/
   1.635 +		EDisplayBrightnessMax,
   1.636 +	
   1.637 +		
   1.638 +		/**
   1.639 +		Indicates the state of the keyboard backlight.
   1.640 +        
   1.641 +        It has the values:
   1.642 +        0 = keyboard backlight is off;
   1.643 +        1 = keyboard backlight is on.
   1.644 +
   1.645 +		This is dynamic and writeable.
   1.646 +
   1.647 +		@capability PowerMgmt needed to Set this attribute
   1.648 +		*/
   1.649 +		EKeyboardBacklightState,
   1.650 +	
   1.651 +		
   1.652 +		/**
   1.653 +		Power supply to an accessory port.
   1.654 +
   1.655 +        It has the values:
   1.656 +        0 = turn off power to an accessory port on the device;
   1.657 +        1 = turn on power.
   1.658 +        
   1.659 +        This is dynamic and writeable.
   1.660 +
   1.661 +		@capability PowerMgmt needed to Set this attribute
   1.662 +		*/
   1.663 +		EAccessoryPower,
   1.664 +	
   1.665 +		
   1.666 +		/**
   1.667 +		A 2 decimal digit language index. 
   1.668 +		
   1.669 +		It is used as the two digit language number that is the suffix of
   1.670 +		language resource DLLs, e.g ELOCL.01.
   1.671 +
   1.672 +		The locale with this language index is loaded the next time that
   1.673 +		the device boots.
   1.674 +
   1.675 +        This is dynamic and writeable.
   1.676 +
   1.677 +		@see TLanguage
   1.678 +
   1.679 +		@capability WriteDeviceData needed to Set this attribute
   1.680 +		*/
   1.681 +		ELanguageIndex,
   1.682 +	
   1.683 +		
   1.684 +		/**
   1.685 +		A 2 decimal digit (decimal) language keyboard index.
   1.686 +		It is used as the two digit language number that is the suffix of
   1.687 +		language resource DLLs, e.g. EKDATA.01.
   1.688 +		
   1.689 +		@see TLanguage
   1.690 +
   1.691 +		@capability WriteDeviceData needed to Set this attribute
   1.692 +		*/
   1.693 +		EKeyboardIndex,
   1.694 +	
   1.695 +		
   1.696 +		/**
   1.697 +		The maximum allowable size of RAM drive, in bytes.
   1.698 +		*/
   1.699 +		EMaxRAMDriveSize,
   1.700 +	
   1.701 +		
   1.702 +		/**
   1.703 +		Indicates the state of the keyboard.
   1.704 +		
   1.705 +		It has the values:
   1.706 +		0 = keyboard is disabled;
   1.707 +		1 = Keyboard is enabled.
   1.708 +        
   1.709 +        This is dynamic and writeable.
   1.710 +
   1.711 +		@capability PowerMgmt needed to Set this attribute
   1.712 +		*/
   1.713 +		EKeyboardState,
   1.714 +	
   1.715 +		/**
   1.716 +  		Defines the system drive & custom resource drive. 
   1.717 +        Legacy attribute which is no longer supported.
   1.718 +  
   1.719 +  		@deprecated Attribute is no longer the primary mechanism to define the 
   1.720 +  		System Drive or the Custom Resource Drive.
   1.721 +        @see RFs::GetSystemDrive.
   1.722 +        @see BaflUtils::NearestLanguageFile
   1.723 +        @see HALData::ECustomResourceDrive
   1.724 +  		*/
   1.725 +		ESystemDrive,	
   1.726 +		
   1.727 +		/**
   1.728 +		Indicates the state of the pen or digitiser.
   1.729 +
   1.730 +		It has the values:
   1.731 +		1 = pen/digitiser is enabled;
   1.732 +		0 = pen/digitiser is disabled.
   1.733 +		
   1.734 +        This is dynamic and writeable.
   1.735 +
   1.736 +		@capability PowerMgmt needed to Set this attribute
   1.737 +		*/
   1.738 +		EPenState,
   1.739 +	
   1.740 +		
   1.741 +		/**
   1.742 +		On input: aInOut contains the mode number.
   1.743 +        On output: aInOut contains: 0 = display is colour;
   1.744 +                                    1 = display is black & white.
   1.745 +        
   1.746 +        aInOut is the 3rd parameter passed to accessor functions
   1.747 +        for derived attributes.
   1.748 +		*/
   1.749 +		EDisplayIsMono,
   1.750 +	
   1.751 +		
   1.752 +		/**
   1.753 +		On input: aInOut contains the mode number;
   1.754 +        On output, aInOut contains: 0 = display is not palettised;
   1.755 +                                    1 = display is palettised.
   1.756 +        
   1.757 +        aInOut is the 3rd parameter passed to accessor functions
   1.758 +        for derived attributes.
   1.759 +  		*/
   1.760 +		EDisplayIsPalettized,
   1.761 +	
   1.762 +		
   1.763 +		/**
   1.764 +		The display bits per pixel.
   1.765 +		
   1.766 +        On input, aInOut contains the mode number.
   1.767 +        On output, aInOut contains the bits per pixel for that mode.
   1.768 +
   1.769 +        aInOut is the 3rd parameter passed to accessor functions
   1.770 +        for derived attributes.
   1.771 +        
   1.772 +        It is read only data.
   1.773 +		*/
   1.774 +		EDisplayBitsPerPixel,
   1.775 +	
   1.776 +		
   1.777 +		/**
   1.778 +		The number of display modes available.
   1.779 +		*/
   1.780 +		EDisplayNumModes,
   1.781 +	
   1.782 +		
   1.783 +		/**
   1.784 +		The address of the display memory.
   1.785 +		*/
   1.786 +		EDisplayMemoryAddress,
   1.787 +	
   1.788 +		
   1.789 +		/**
   1.790 +		The offset, in bytes, to the pixel area of the screen from the start of screen memory.
   1.791 +		
   1.792 +		This is used to account for the fact that the palette is sometimes at
   1.793 +		the beginning of the display memory.
   1.794 +		
   1.795 +        On input, aInOut contains the mode number.
   1.796 +        On output, aInOut contains the offset to the first pixel for that mode.
   1.797 +
   1.798 +        aInOut is the 3rd parameter passed to accessor functions
   1.799 +        for derived attributes.
   1.800 +		*/
   1.801 +		EDisplayOffsetToFirstPixel,
   1.802 +	
   1.803 +		
   1.804 +		/**
   1.805 +		The separation, in bytes, of successive lines of display in memory.
   1.806 +        
   1.807 +        On input, aInOut contains the mode number.
   1.808 +        On output, aInOut contains the display offset between lines.
   1.809 +
   1.810 +        aInOut is the 3rd parameter passed to accessor functions
   1.811 +        for derived attributes.
   1.812 +		*/
   1.813 +		EDisplayOffsetBetweenLines,
   1.814 +	
   1.815 +		
   1.816 +		/**
   1.817 +		@capability MultimediaDD needed to Set this attribute
   1.818 +		*/
   1.819 +		EDisplayPaletteEntry,
   1.820 +	
   1.821 +		
   1.822 +		/**
   1.823 +		It has the values:
   1.824 +		1 = order of pixels in display is RGB;
   1.825 +		0 = otherwise.
   1.826 +		*/
   1.827 +		EDisplayIsPixelOrderRGB,
   1.828 +	
   1.829 +		
   1.830 +		/**
   1.831 +		It has the values:
   1.832 +		1 = pixel order is landscape;
   1.833 +		0 = pixel order is portrait.
   1.834 +		*/
   1.835 +		EDisplayIsPixelOrderLandscape,
   1.836 +	
   1.837 +		
   1.838 +		/**
   1.839 +		This indicates or sets the current display mode where
   1.840 +		EDisplayNumModes-1 is the maximum value for the display mode.
   1.841 +		The properties of a particular display mode are entirely defined by
   1.842 +		the base port software associated with the hardware upon which the OS
   1.843 +		is running.
   1.844 +
   1.845 +		@capability MultimediaDD needed to Set this attribute
   1.846 +		*/
   1.847 +		EDisplayMode,
   1.848 +	
   1.849 +		
   1.850 +		/**
   1.851 +		If the target hardware upon which Symbian OS is running has switches
   1.852 +		which can be read by the base port software, this interface allows
   1.853 +		the current status of those switches to be read. 
   1.854 +		*/
   1.855 +		ESwitches,
   1.856 +	
   1.857 +		
   1.858 +		/**
   1.859 +		The port number of the debug port.
   1.860 +		*/
   1.861 +		EDebugPort,
   1.862 +	
   1.863 +		
   1.864 +		/**
   1.865 +		The language code of the Locale which was loaded at device boot time.
   1.866 +
   1.867 +        This is dynamic and writeable.
   1.868 +
   1.869 +		@see ELanguageIndex
   1.870 +
   1.871 +		@capability WriteSystemData needed to Set this attribute
   1.872 +		*/
   1.873 +		ELocaleLoaded,
   1.874 +	
   1.875 +		
   1.876 +		/**
   1.877 +		The drive number to use for storage of Clipboard data.
   1.878 +		0 = Drive A, 1 = Drive B, etc...
   1.879 +		*/
   1.880 +		EClipboardDrive,
   1.881 +	
   1.882 +		/**
   1.883 +		Custom restart
   1.884 +		@capability PowerMgmt
   1.885 +		*/
   1.886 +		ECustomRestart,
   1.887 +
   1.888 +		/**
   1.889 +		Custom restart reason
   1.890 +		*/
   1.891 +		ECustomRestartReason,
   1.892 +
   1.893 +		/**
   1.894 +		The number of screens.
   1.895 +		*/
   1.896 +		EDisplayNumberOfScreens,
   1.897 +
   1.898 +		/**
   1.899 +		The time between nanokernel ticks, in microseconds.
   1.900 +		*/
   1.901 +		ENanoTickPeriod,
   1.902 +
   1.903 +		/**
   1.904 +		The frequency of the fast counter.
   1.905 +		*/
   1.906 +		EFastCounterFrequency,
   1.907 +
   1.908 +		/**
   1.909 +		Indicates the whether the fast counter counts up or down.
   1.910 +		*/
   1.911 +		EFastCounterCountsUp,
   1.912 +
   1.913 +		/**		
   1.914 +		Indicates whether a 3 dimensional pointing device is available for input and Z coordinate
   1.915 +		is provided in appropriate pointer-related TRawEvents generated by the driver.
   1.916 +
   1.917 +		It has the values:
   1.918 +		0 = a 3D pointer is not available for input and Z coordinate is not provided in TRawEvents;
   1.919 +		1 = a 3D pointer is present and Z coordinate is provided in TRawEvents.
   1.920 +		*/
   1.921 +		EPointer3D,
   1.922 +
   1.923 +		/**		
   1.924 +		The furthest detectable 3D pointing device's proximity above the screen.
   1.925 +		As proximity values above the screen are negative, this will be a negative value.
   1.926 +
   1.927 +		This is dynamic and writeable.
   1.928 +		*/
   1.929 +		EPointer3DMaxProximity,
   1.930 +
   1.931 +		/**		
   1.932 +		Indicates whether a 3 dimensional pointing device supports Theta polar angle reading.
   1.933 +
   1.934 +		It has the values:
   1.935 +		0 = a 3D pointer does not support Theta polar angle reading;
   1.936 +		1 = a 3D pointer supports Theta polar angle reading.
   1.937 +		*/
   1.938 +		EPointer3DThetaSupported,
   1.939 +
   1.940 +		/**
   1.941 +		Indicates whether a 3 dimensional pointing device supports Phi polar angle reading.
   1.942 +
   1.943 +		It has the values:
   1.944 +		0 = a 3D pointer does not support Phi polar angle reading;
   1.945 +		1 = a 3D pointer supports Phi polar angle reading.
   1.946 +		*/
   1.947 +		EPointer3DPhiSupported,
   1.948 +
   1.949 +		/**
   1.950 +		Indicates whether a 3 dimensional pointing device supports rotation angle along its main axis reading.
   1.951 +
   1.952 +		It has the values:
   1.953 +		0 = a 3D pointer does not support alpha (rotation) reading;
   1.954 +		1 = a 3D pointer supports alpha (rotation) reading.
   1.955 +		*/
   1.956 +		EPointer3DRotationSupported,
   1.957 +
   1.958 +		/**
   1.959 +		Indicates whether a 3 dimensional pointing device supports readings of pressure applied on screen.
   1.960 +
   1.961 +		It has the values:
   1.962 +		0 = a 3D pointer does not support pressure reading;
   1.963 +		1 = a 3D pointer supports pressure reading.
   1.964 +		*/
   1.965 +		EPointer3DPressureSupported,
   1.966 +
   1.967 +		/**
   1.968 +		Indicates whether hardware floating point is available, and what type.
   1.969 +		
   1.970 +		If no hardware floating point is available, reading this attribute will return KErrNotSupported.
   1.971 +		If hardware floating point is available, reading this attribute will return KErrNone and the type
   1.972 +		available. These types are specified in TFloatingPointType.
   1.973 +		*/
   1.974 +		EHardwareFloatingPoint,
   1.975 +
   1.976 +		/**
   1.977 +		The offset between secure and nonsecure clocks. If this attribute is undefined no secure clock
   1.978 +		will be available.
   1.979 +		*/
   1.980 +		ETimeNonSecureOffset,
   1.981 +
   1.982 +		/**
   1.983 +		Persist startup mode.
   1.984 +
   1.985 +		If no variant specific implementation exists, the startup mode will be stored in platform
   1.986 +		specific values.hda file.
   1.987 +		*/
   1.988 +		EPersistStartupModeKernel,
   1.989 +
   1.990 +		/**
   1.991 +		Maximum restart reasons.
   1.992 +
   1.993 +		Returns the maximum number of values that can be used to store the restart reason required for a custom restart.
   1.994 +		*/
   1.995 +		EMaximumCustomRestartReasons,
   1.996 +
   1.997 +		/**
   1.998 +		Maximum startup modes.
   1.999 +		
  1.1000 +		Returns the maximum number of values that can be used to store the startup mode requires for a system restart.
  1.1001 +		*/
  1.1002 +		EMaximumRestartStartupModes,
  1.1003 +		
  1.1004 +		/**
  1.1005 +		Defines the custom resource drive.
  1.1006 +		
  1.1007 +		This drive attribute should be set if an additional drive is required for use in the search 
  1.1008 +		algorithm for language files.  
  1.1009 +        
  1.1010 +        @see TDriveNumber
  1.1011 +		@see BaflUtils::NearestLanguageFile for how this attribute is used
  1.1012 +		@capability WriteDeviceData needed to Set this attribute
  1.1013 +		*/
  1.1014 +		ECustomResourceDrive,
  1.1015 +
  1.1016 +		/**
  1.1017 +		Step size of Z distance data.
  1.1018 +
  1.1019 +		Returns the minimum size of the step between two resolvable z positions
  1.1020 +		*/
  1.1021 +		EPointer3DProximityStep,
  1.1022 +
  1.1023 +		/**
  1.1024 +		Maximum Number of Pointers supported by hardware/driver
  1.1025 +
  1.1026 +		Returns the maximum number of pointers for a multi-touch configuration (or KErrNotSupported or 0 or 1 for single-touch legacy configuration)
  1.1027 +		*/
  1.1028 +		EPointerMaxPointers,
  1.1029 +
  1.1030 +		/**
  1.1031 +		Maximum Number of Pointers
  1.1032 +		
  1.1033 +		Sets and reads back the number of pointers as requested by the UI (<=EPointerMaxPointers)
  1.1034 +		*/
  1.1035 +		EPointerNumberOfPointers,
  1.1036 +
  1.1037 +		/**
  1.1038 +		Maximum Pressure Value
  1.1039 +
  1.1040 +		Returns the maximum pressure value
  1.1041 +		*/
  1.1042 +		EPointer3DMaxPressure,
  1.1043 +
  1.1044 +		/**
  1.1045 +		Step size of pressure data.
  1.1046 +
  1.1047 +		Returns the minimum size of the step between two resolvable pressure readings			
  1.1048 +		*/
  1.1049 +		EPointer3DPressureStep,
  1.1050 +
  1.1051 +		/**
  1.1052 +		The threshold on pointer's Z coordinate above which EEnterHighPressure pointer event is sent to WSERV's clients.
  1.1053 +		This value is intended to be preconfigured in build time and modified by Window Server only
  1.1054 +
  1.1055 +		@prototype 9.5
  1.1056 +		*/
  1.1057 +		EPointer3DEnterHighPressureThreshold,
  1.1058 +	
  1.1059 +		/**
  1.1060 +		The threshold on pointer's Z coordinate below which EExitHighPressure pointer event is sent to WSERV's clients.
  1.1061 +		This value is intended to be preconfigured in build time and modified by Window Server only
  1.1062 +
  1.1063 +		@prototype 9.5
  1.1064 +		*/
  1.1065 +		EPointer3DExitHighPressureThreshold,
  1.1066 +
  1.1067 +		/**
  1.1068 +		The threshold on pointer's Z coordinate above which EEnterCloseProximity pointer event is sent to WSERV's clients.
  1.1069 +		This value is intended to be preconfigured in build time and modified by Window Server only
  1.1070 +
  1.1071 +		@prototype 9.5
  1.1072 +		*/
  1.1073 +		EPointer3DEnterCloseProximityThreshold,
  1.1074 +
  1.1075 +		
  1.1076 +		/**
  1.1077 +		The threshold on pointer's Z coordinate below which EExitCloseProximity pointer event is sent to WSERV's clients.
  1.1078 +		This value is intended to be preconfigured in build time and modified by Window Server only
  1.1079 +
  1.1080 +		@prototype 9.5
  1.1081 +		*/
  1.1082 +		EPointer3DExitCloseProximityThreshold,
  1.1083 +		
  1.1084 +		/**
  1.1085 +		A Handle to the display memory.
  1.1086 +
  1.1087 +		@prototype 9.5
  1.1088 +		*/
  1.1089 +		EDisplayMemoryHandle,
  1.1090 +
  1.1091 +		/**
  1.1092 +		Serial number of this board
  1.1093 +		*/
  1.1094 +		ESerialNumber,
  1.1095 +		
  1.1096 +		
  1.1097 +		/**
  1.1098 +		Interrupt used by sampling profiler - applicable for SMP only. Each CPU_i is interrupted by interrupt number ECpuProfilingInterrupt + i
  1.1099 +		*/
  1.1100 +		ECpuProfilingDefaultInterruptBase,
  1.1101 +
  1.1102 +
  1.1103 +		/**
  1.1104 +		Number of processors present on the device. Returns 1 on unicore. This number is constant and does not take account of power management
  1.1105 +		*/
  1.1106 +		ENumCpus,
  1.1107 +
  1.1108 +
  1.1109 +		/*
  1.1110 +		 * NOTE:
  1.1111 +		 * When updating this list, please also update hal/rom/hal.hby and hal/tsrc/t_newhal.cpp.
  1.1112 +		 */
  1.1113 +
  1.1114 +		/**
  1.1115 +		
  1.1116 +		The number of HAL attributes per screen.
  1.1117 +		
  1.1118 +		It is simply defined by its position in the enumeration.
  1.1119 +		*/
  1.1120 +		ENumHalAttributes		
  1.1121 +
  1.1122 +		};
  1.1123 +
  1.1124 +
  1.1125 +
  1.1126 +    /**
  1.1127 +    Defines properties for the hardware attributes.
  1.1128 +    
  1.1129 +    @see HALData::TAttribute
  1.1130 +    */
  1.1131 +	enum TAttributeProperty
  1.1132 +		{
  1.1133 +		/**
  1.1134 +		When set, means that an attribute is meaningful on this device.
  1.1135 +				
  1.1136 +		@see HAL::Get()
  1.1137 +		@see HAL::Set()
  1.1138 +		*/
  1.1139 +		EValid=0x1,
  1.1140 +		
  1.1141 +		
  1.1142 +		/**
  1.1143 +		When set, means that an attribute is modifiable.
  1.1144 +		A call to HAL::Set() for an attribute that does not have this property,
  1.1145 +		returns KErrNotSupported.
  1.1146 +		
  1.1147 +		@see HAL::Get()
  1.1148 +		@see HAL::Set()
  1.1149 +		*/
  1.1150 +		ESettable=0x2,
  1.1151 +		};
  1.1152 +
  1.1153 +
  1.1154 +
  1.1155 +    /**
  1.1156 +    UIDs for a defined set of device manufacturers.
  1.1157 +    
  1.1158 +    Note that any manufacturer not represented in this list must obtain
  1.1159 +    a value from the Symbian registry.
  1.1160 +    
  1.1161 +    @see HALData::TAttribute
  1.1162 +    */
  1.1163 +    enum TManufacturer // UID for manufacturer
  1.1164 +		{
  1.1165 +		EManufacturer_Ericsson=0x00000000,
  1.1166 +		EManufacturer_Motorola=0x00000001,
  1.1167 +		EManufacturer_Nokia=0x00000002,
  1.1168 +		EManufacturer_Panasonic=0x00000003,
  1.1169 +		EManufacturer_Psion=0x00000004,
  1.1170 +		EManufacturer_Intel=0x00000005,
  1.1171 +		EManufacturer_Cogent=0x00000006,
  1.1172 +		EManufacturer_Cirrus=0x00000007,
  1.1173 +		EManufacturer_Linkup=0x00000008,
  1.1174 +		EManufacturer_TexasInstruments=0x00000009,
  1.1175 +		// New manufacturers must obtain an official UID to identify themselves
  1.1176 +		};
  1.1177 +
  1.1178 +
  1.1179 +
  1.1180 +    /**
  1.1181 +	Defines the Symbian OS device families.
  1.1182 +	
  1.1183 +    @see HALData::TAttribute
  1.1184 +    */
  1.1185 +	enum TDeviceFamily
  1.1186 +		{
  1.1187 +		EDeviceFamily_Crystal,
  1.1188 +		EDeviceFamily_Pearl,
  1.1189 +		EDeviceFamily_Quartz,
  1.1190 +		};
  1.1191 +
  1.1192 +
  1.1193 +
  1.1194 +    /**
  1.1195 +    Defines the set of CPU architectures.
  1.1196 +    
  1.1197 +    @see HALData::TAttribute
  1.1198 +    */
  1.1199 +	enum TCPU
  1.1200 +		{
  1.1201 +		ECPU_ARM,
  1.1202 +		ECPU_MCORE,
  1.1203 +		ECPU_X86,
  1.1204 +		};
  1.1205 +
  1.1206 +
  1.1207 +
  1.1208 +    /**
  1.1209 +    Defines the set of ABIs used by the CPU for user applications.
  1.1210 +    
  1.1211 +    @see HALData::TAttribute    
  1.1212 +    */
  1.1213 +	enum TCPUABI
  1.1214 +		{
  1.1215 +		ECPUABI_ARM4,
  1.1216 +		ECPUABI_ARMI,
  1.1217 +		ECPUABI_THUMB,
  1.1218 +		ECPUABI_MCORE,
  1.1219 +		ECPUABI_MSVC,
  1.1220 +		ECPUABI_ARM5T,
  1.1221 +		ECPUABI_X86,
  1.1222 +		};
  1.1223 +
  1.1224 +
  1.1225 +
  1.1226 +    /**
  1.1227 +    Defines the set of reasons for a system boot.
  1.1228 +    
  1.1229 +    @see HALData::TAttribute
  1.1230 +    */
  1.1231 +	enum TSystemStartupReason
  1.1232 +		{
  1.1233 +		ESystemStartupReason_Cold,
  1.1234 +		ESystemStartupReason_Warm,
  1.1235 +		ESystemStartupReason_Fault,
  1.1236 +		};
  1.1237 +
  1.1238 +
  1.1239 +
  1.1240 +    /**
  1.1241 +    Defines the set of available keyboard types.
  1.1242 +
  1.1243 +    @see HALData::TAttribute
  1.1244 +    */
  1.1245 +	bitmask TKeyboard
  1.1246 +		{
  1.1247 +		EKeyboard_Keypad=0x1,
  1.1248 +		EKeyboard_Full=0x2,
  1.1249 +		};
  1.1250 +
  1.1251 +
  1.1252 +
  1.1253 +    /**
  1.1254 +    Defines the mouse cursor visibility.
  1.1255 +    
  1.1256 +    @see HALData::TAttribute
  1.1257 +    */
  1.1258 +	enum TMouseState
  1.1259 +		{
  1.1260 +		EMouseState_Invisible=0,
  1.1261 +		EMouseState_Visible=1,
  1.1262 +		};
  1.1263 +
  1.1264 +
  1.1265 +
  1.1266 +    /**
  1.1267 +    Defines a set of UIDs for specific devices, reference boards etc
  1.1268 +    
  1.1269 +    @see HALData::TAttribute
  1.1270 +    */
  1.1271 +	enum TMachineUid
  1.1272 +		{
  1.1273 +		EMachineUid_Series5mx=0x1000118a,
  1.1274 +		EMachineUid_Brutus=0x10005f60,
  1.1275 +		EMachineUid_Cogent=0x10005f61,
  1.1276 +		EMachineUid_Win32Emulator=0x10005f62,
  1.1277 +		EMachineUid_WinC=0x10005f63,
  1.1278 +		EMachineUid_CL7211_Eval=0x1000604f,
  1.1279 +		EMachineUid_LinkUp=0x00000000,
  1.1280 +		EMachineUid_Assabet=0x100093f3,
  1.1281 +		EMachineUid_Zylonite=0x101f7f27,
  1.1282 +		EMachineUid_IQ80310=0x1000a681,
  1.1283 +		EMachineUid_Lubbock=0x101f7f26,
  1.1284 +		EMachineUid_Integrator=0x1000AAEA,
  1.1285 +		EMachineUid_Helen=0x101F3EE3,
  1.1286 +		EMachineUid_X86PC=0x100000ad,
  1.1287 +		EMachineUid_OmapH2=0x1020601C,
  1.1288 +		EMachineUid_OmapH4=0x102734E3,
  1.1289 +		EMachineUid_NE1_TB=0x102864F7,
  1.1290 +		EMachineUid_EmuBoard=0x1200afed,
  1.1291 +		EMachineUid_OmapH6=0x10286564,
  1.1292 +		EMachineUid_OmapZoom=0x10286565,
  1.1293 +		EMachineUid_STE8500=0x101FF810,
  1.1294 +		};
  1.1295 +
  1.1296 +
  1.1297 +
  1.1298 +    /**
  1.1299 +    Defines power levels for the system (or 'Main') battery.
  1.1300 +    
  1.1301 +    @see HALData::TAttribute
  1.1302 +    */
  1.1303 +	enum TPowerBatteryStatus
  1.1304 +		{
  1.1305 +		EPowerBatteryStatus_Zero,
  1.1306 +		EPowerBatteryStatus_Replace,
  1.1307 +		EPowerBatteryStatus_Low,
  1.1308 +		EPowerBatteryStatus_Good,
  1.1309 +		};
  1.1310 +
  1.1311 +
  1.1312 +
  1.1313 +    /**
  1.1314 +    Defines power levels for the backup power.
  1.1315 +
  1.1316 +    @see HALData::TAttribute
  1.1317 +    */
  1.1318 +	enum TPowerBackupStatus
  1.1319 +		{
  1.1320 +		EPowerBackupStatus_Zero,
  1.1321 +		EPowerBackupStatus_Replace,
  1.1322 +		EPowerBackupStatus_Low,
  1.1323 +		EPowerBackupStatus_Good,
  1.1324 +		};
  1.1325 +	
  1.1326 +	};
  1.1327 +
  1.1328 +#endif