os/kernelhwsrv/halservices/hal/inc/hal_data.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 // Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // under the terms of the License "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 // hal\inc\hal_data.h
    15 // 
    16 //
    17 
    18 
    19 #ifndef __HAL_DATA_H__
    20 #define __HAL_DATA_H__
    21 #define bitmask enum
    22 
    23 class HALData
    24 /**
    25 @publishedPartner
    26 @released
    27 
    28 Sets of attributes and values used by HAL functions.
    29 */
    30 	{
    31 public:
    32     /**
    33     A set of enumerators that identifies hardware attributes.
    34     The enumerators are passed to HAL::Get() and HAL::Set().
    35     
    36     They are also used by the HAL accessor functions.
    37     
    38     @see HAL::Get()
    39     @see HAL::Set()
    40     */
    41 	enum TAttribute
    42 		{
    43 		/**
    44 		Identifies the manufacturer of a device.
    45         If this is not enumerated in TManufacturer, then the manufacturer must
    46         obtain a value from the Symbian registry.
    47         
    48         @see HALData::TManufacturer
    49 		*/
    50 		EManufacturer,
    51 		
    52 		
    53 		/**
    54 		The device specific hardware version number, as defined by
    55 		the device manufacturer.
    56 		*/
    57 		EManufacturerHardwareRev,
    58 		
    59 		
    60 		/**
    61 		The device specific version number, as defined by
    62 		the device manufacturer.
    63 		*/
    64 		EManufacturerSoftwareRev,
    65 		
    66 		
    67 		/**
    68 		The device specific software version number, as defined by
    69 		the device manufacturer.
    70 		*/
    71 		EManufacturerSoftwareBuild,
    72 
    73 		
    74 		/**
    75 		The device specific model number, as defined by
    76 		the device manufacturer.
    77 		*/
    78 		EModel,
    79 		
    80 				
    81 		/**
    82 		This is the device specific UID, It is unique to the class /model
    83 		of device. A value must be obtained from Symbian's UID registry for
    84 		this attribute.
    85 		*/
    86 		EMachineUid,
    87 		
    88 		
    89 		/**
    90 		The Symbian OS specified device family identifier.
    91 		If the device family is not one of those enumerated by TDeviceFamily,
    92 		then the licensee must obtain a UID from Symbian for this attribute.
    93 		
    94 		@see HALData::TDeviceFamily
    95 		*/
    96 		EDeviceFamily,
    97 
    98 		
    99 		/**
   100 		The Symbian OS specified device family version.
   101 		*/
   102 		EDeviceFamilyRev,
   103 
   104 		
   105 		/**
   106 		The CPU architecture used by this device. The values are enumerated
   107 		by TCPU.
   108 		
   109 		@see HALData::TCPU
   110 		*/
   111 		ECPU,
   112 		
   113 		
   114 		/**
   115 		A revision number for the CPU architecture.
   116 		*/
   117 		ECPUArch,
   118 
   119 		
   120 		/**
   121 		This is the default ABI used by CPU for user applications.
   122 		The values are enumerated by HALData::TCPUABI.
   123 		*/
   124 		ECPUABI,
   125 
   126 		
   127 		/**
   128 		The processor speed in KHz.
   129 		*/
   130 		ECPUSpeed,
   131 
   132 		
   133 		/**
   134 		The reason for most recent system boot.
   135         This is dynamic and readonly; the values are enumerated by
   136         TSystemStartupReason.
   137 
   138 		@see HALData::TSystemStartupReason
   139 		*/
   140 		ESystemStartupReason,
   141 
   142 		
   143 		/**
   144 		This is the last exception code, in the case of system reboot.
   145 		This is dynamic and readonly.
   146 		*/
   147 		ESystemException,
   148 		
   149 		
   150 		/**
   151 		The time between system ticks, in microseconds.
   152 		*/
   153 		ESystemTickPeriod,
   154 		
   155 		
   156 		/** 
   157 		The total system RAM, in bytes.
   158 		*/
   159 		EMemoryRAM,
   160 		
   161 		
   162 		/**
   163 		The currently free system RAM.
   164 		
   165 		This is dynamic and readonly.
   166 		*/
   167 		EMemoryRAMFree,
   168 
   169 		
   170 		/**
   171 		The total System ROM, in bytes.
   172 		*/
   173 		EMemoryROM,
   174 	
   175 		
   176 		/**
   177 		The MMU page size in bytes.
   178 		*/
   179 		EMemoryPageSize,
   180 	
   181 		
   182 		/**
   183 		Indicates the state of the power supply.
   184         
   185         It has the values:
   186         1 = Power is good (i.e. external power is available,
   187         or the 'power' battery is >= low);
   188         0 = otherwise.
   189         
   190         This is dynamic and readonly.
   191 		*/
   192 		EPowerGood,
   193 	
   194 		
   195 		/**
   196         The System (or 'Main') battery power level.
   197         The allowable values are enumerated by TPowerBatteryStatus
   198 
   199 		This is dynamic and readonly,
   200 		
   201 		@see HALData::TPowerBatteryStatus
   202 		*/
   203 		EPowerBatteryStatus,
   204 	
   205 		
   206 		/**
   207 		Indicates whether a backup power supply is available.
   208         It has the values:
   209         0 = the device does not support (or need) a backup battery source;
   210         1 = a backup batter source is present.
   211 		This is dynamic and readonly
   212 		*/
   213 		EPowerBackup,
   214 	
   215 		
   216 		/**
   217         The power level for backup power.
   218         
   219         It has the values enumerated by TPowerBackupStatus.
   220 
   221 		This is dynamic and readonly.
   222 		
   223 		@see HALData::TPowerBackupStatus
   224 		*/
   225 		EPowerBackupStatus,
   226 	
   227 		
   228 		/**
   229 		Indicates the state of the external power.
   230 
   231 		It has the values:
   232 		0 = external power is not in use;
   233 		1 = external power is in use.
   234 		        
   235         This is dynamic and readonly.
   236 		*/
   237 		EPowerExternal,
   238 	
   239 		
   240 		/**
   241 		A bitmask that describes the available keyboard types (it may support
   242 		more than one).
   243 
   244         @see HALData::TKeyboard
   245 		*/
   246 		EKeyboard,
   247 	
   248 		
   249 		/**
   250 		*/
   251 		EKeyboardDeviceKeys,
   252 	
   253 		
   254 		/**
   255 		*/
   256 		EKeyboardAppKeys,
   257 	
   258 		
   259 		/**
   260 		Indicates whether the device can produce a click sound for
   261 		each keypress.
   262 		
   263 		It has the values:
   264 		0 = the device cannot produce a click sound for each keypress;
   265 		1 = the device can produce a click sound.
   266 		*/
   267 		EKeyboardClick,
   268 	
   269 		
   270 		/**
   271 		The state of keyboard clicking.
   272 
   273         It has the values:
   274         0 = key click disabled;
   275         1 = key click enabled.
   276         
   277 		This is dynamic and writeable.
   278 
   279 		@capability WriteDeviceData needed to Set this attribute
   280 		*/
   281 		EKeyboardClickState,
   282 	
   283 		
   284 		/**
   285 		The keyboard click volume level.
   286 
   287 		It can take a value in the range 0 to EKeyboardClickVolumeMax.
   288         
   289         This is dynamic and writeable.
   290         
   291         @see HALData::EKeyboardClickVolumeMax
   292 
   293 		@capability WriteDeviceData needed to Set this attribute
   294 		*/
   295 		EKeyboardClickVolume,
   296 	
   297 		
   298 		/**
   299 		The maximum value for EKeyboardClickVolume.
   300 		
   301 		@see HALData::EKeyboardClickVolume
   302 		*/
   303 		EKeyboardClickVolumeMax,
   304 	
   305 		
   306 		/**
   307 		The screen horizontal dimension in pixels.
   308 		*/
   309 		EDisplayXPixels,
   310 	
   311 		
   312 		/**
   313 		The screen vertical dimension in pixels.
   314 		*/
   315 		EDisplayYPixels,
   316 	
   317 		
   318 		/**
   319 		The screen horizontal dimension in twips.
   320 		*/
   321 		EDisplayXTwips,
   322 	
   323 		
   324 		/**
   325 		The screen vertical dimension in twips.
   326 		*/
   327 		EDisplayYTwips,
   328 	
   329 		
   330 		/**
   331 		The number of hues (colors or shades of grey) displayable on
   332 		the screen.
   333 		*/
   334 		EDisplayColors,
   335 	
   336 		
   337 		/**
   338 		The state of the display.
   339 		
   340 		It has the values:
   341 		0 = screen is turned off;
   342 		1 = screen is on.
   343 		
   344 		This is dynamic and writeable.
   345 
   346 		@capability PowerMgmt needed to Set this attribute
   347 		*/
   348 		EDisplayState,
   349 	
   350 		
   351 		/**
   352 		The screen contrast level.
   353    		It can take a value in the range 0 to EDisplayContrastMax.
   354         
   355         This is dynamic and writeable
   356 
   357 		@see HALData::EDisplayContrastMax
   358 
   359 		@capability WriteDeviceData needed to Set this attribute
   360 		*/
   361 		EDisplayContrast,
   362 	
   363 		
   364 		/**
   365 		The maximum value for EDisplayContrast
   366 		
   367 		@see HALData::EDisplayContrast
   368 		*/
   369 		EDisplayContrastMax,
   370 		
   371 		
   372 		/**
   373 		Indicates whether there is a backlight on the device.
   374 
   375 		It has the values:
   376 		0 = there is no screen backlight;
   377 		1 = a screen backlight is present.
   378 		*/
   379 		EBacklight,
   380 			
   381 		
   382 		/**
   383 		The current status of the backlight.
   384 
   385 		It has the values:
   386 		0 = off;
   387 		1 = on.
   388         
   389         This is dynamic and writeable.
   390 
   391 		@capability WriteDeviceData needed to Set this attribute
   392 		*/
   393 		EBacklightState,
   394 			
   395 		
   396 		/**
   397 		Indicates whether a pen or digitizer is available for input.
   398 
   399 		It has the values:
   400 		0 = a pen/digitizer is not available for input;
   401 		1 = a pen/digitizeris present.
   402 		*/
   403 		EPen,
   404 			
   405 		
   406 		/**
   407 		The pen/digitizer horizontal resolution, in pixels.
   408 		*/
   409 		EPenX,
   410 			
   411 		
   412 		/**
   413 		The pen/digitizer vertical resolution, in pixels.
   414 		*/
   415 		EPenY,
   416 			
   417 		
   418 		/**
   419 		Indicates whether a pen tap will turn the display on.
   420 
   421         It has the values:
   422         0 = a pen tap has no effect;
   423         1 = a pent tap or press enables the display.
   424         
   425         This is dynamic and writeable.
   426 
   427 		@capability WriteDeviceData needed to Set this attribute
   428 		*/
   429 		EPenDisplayOn,
   430 			
   431 		
   432 		/**
   433 		Indicates whether the device can produce a click sound for
   434 		each pen tap.
   435 
   436 		It has the values:
   437         0 = the device cannot produce a click sound
   438         1 = production of a click sound is supported by the device.
   439 		*/
   440 		EPenClick,
   441 			
   442 		
   443 		/**
   444 		The state of pen clicking.
   445 		
   446 		It has the values:
   447 		0 = pen clicking is disabled;
   448 		1 = pen clicking is enabled.
   449 		
   450         This is dynamic and writable.
   451 
   452 		@capability WriteDeviceData needed to Set this attribute
   453 		*/
   454 		EPenClickState,
   455 			
   456 		
   457 		/**
   458 		The pen click volume level.
   459         It can take a value in the range 0 to EPenClickVolumeMax.
   460         
   461         This value is dynamic and writable.
   462         
   463         @see HALData::EPenClickVolumeMax
   464 
   465 		@capability WriteDeviceData needed to Set this attribute
   466 		*/
   467 		EPenClickVolume,
   468 			
   469 		
   470 		/**
   471 		The maximum value for EPenClickVolume.
   472 		
   473 		@see HALData::EPenClickVolume
   474 		*/
   475 		EPenClickVolumeMax,
   476 			
   477 		
   478 		/**
   479 		Indicates whether a mouse is available for input.
   480 		
   481 		It has the values:
   482 		0 = there is no mouse available pen/digitizer is present;
   483 		1 = a mouse is available for input.
   484 		*/
   485 		EMouse,
   486 			
   487 		
   488 		/**
   489 		The mouse horizontal resolution, in pixels.
   490 		*/
   491 		EMouseX,
   492 			
   493 		
   494 		/**
   495 		The mouse vertical resolution, in pixels.
   496 		*/
   497 		EMouseY,
   498 			
   499 		
   500 		/**
   501 		Describes the mouse cursor visibility.
   502 
   503         The value is enumerated by TMouseState.
   504         
   505 		This is dynamic and writable.
   506 		@see HALData::TMouseState
   507 		
   508 		@capability MultimediaDD needed to Set this attribute
   509 		*/
   510 		EMouseState,
   511 			
   512 		
   513 		/**
   514         Reserved for future use.
   515 		@capability MultimediaDD needed to Set this attribute
   516 		*/
   517 		EMouseSpeed,
   518 		
   519 		
   520 		/**
   521 		Reserved for future use.
   522 		@capability MultimediaDD needed to Set this attribute
   523 		*/
   524 		EMouseAcceleration,
   525 		
   526 		
   527 		/**
   528 		The number of buttons on the mouse.
   529 		*/
   530 		EMouseButtons,
   531 		
   532 		
   533 		/**
   534         A bitmask defining the state of each button.
   535 
   536         For each bit, it has values:
   537         0 = up;
   538         1 = down.
   539         
   540 		This is dynamic and read only.
   541 		*/
   542 		EMouseButtonState,
   543 		
   544 		
   545 		/**
   546 		Defines the state of the case.
   547 		
   548         It has the values:
   549         0 = case closed;
   550         1 = case opened.
   551         
   552         This is dynamic and read only.
   553 		*/
   554 		ECaseState,
   555 		
   556 		
   557 		/**
   558 		Indicates whether the device has a case switch, that actions when
   559 		the case opens and closes.
   560 		
   561         It has values:
   562         0 = no;
   563         1 = yes.
   564 		*/
   565 		ECaseSwitch,
   566 		
   567 		
   568 		/**
   569 		Indicates whether the device is to switch on when case opens.
   570 		
   571 		It has the values:
   572 		0 = disable device switchon when the case opens;
   573 		1 = enable device  switchon when the case opens.
   574         
   575         This is dynamic and writeable.
   576 
   577 		@capability WriteDeviceData needed to Set this attribute
   578 		*/
   579 		ECaseSwitchDisplayOn,
   580 		
   581 		
   582 		/**
   583         Indicates whether the device is to switch off when case close.
   584 
   585 		It has the values:
   586 		0 = disable device switchoff when the case closes;
   587 		1 = enable device switchoff when the case closes.
   588         
   589         This is dynamic and writeable.
   590 
   591 		@capability WriteDeviceData needed to Set this attribute
   592 		*/
   593 		ECaseSwitchDisplayOff,
   594 		
   595 		
   596 		/**
   597 		The number of LEDs on the device.
   598 		*/
   599 		ELEDs,
   600 		
   601 		
   602 		/**
   603         A bitmask defining the state of each LED.
   604 
   605         For each bit, it has values:
   606         0 = off;
   607         1 = on.
   608 		
   609 		This is dynamic and writeable.
   610 		*/
   611 		ELEDmask,
   612 		
   613 		
   614 		/**
   615 		Indicates how the phone hardware is connected.
   616 		
   617 		It has the values:
   618 		0 = phone hardware is not permanently connected;
   619 		1 = phone hardware is permanently connected.
   620 		*/
   621 		EIntegratedPhone,
   622 		
   623 		
   624 		/**
   625 		@capability WriteDeviceData needed to Set this attribute
   626 		*/
   627 		EDisplayBrightness,
   628 	
   629 		
   630 		/**
   631 		*/
   632 		EDisplayBrightnessMax,
   633 	
   634 		
   635 		/**
   636 		Indicates the state of the keyboard backlight.
   637         
   638         It has the values:
   639         0 = keyboard backlight is off;
   640         1 = keyboard backlight is on.
   641 
   642 		This is dynamic and writeable.
   643 
   644 		@capability PowerMgmt needed to Set this attribute
   645 		*/
   646 		EKeyboardBacklightState,
   647 	
   648 		
   649 		/**
   650 		Power supply to an accessory port.
   651 
   652         It has the values:
   653         0 = turn off power to an accessory port on the device;
   654         1 = turn on power.
   655         
   656         This is dynamic and writeable.
   657 
   658 		@capability PowerMgmt needed to Set this attribute
   659 		*/
   660 		EAccessoryPower,
   661 	
   662 		
   663 		/**
   664 		A 2 decimal digit language index. 
   665 		
   666 		It is used as the two digit language number that is the suffix of
   667 		language resource DLLs, e.g ELOCL.01.
   668 
   669 		The locale with this language index is loaded the next time that
   670 		the device boots.
   671 
   672         This is dynamic and writeable.
   673 
   674 		@see TLanguage
   675 
   676 		@capability WriteDeviceData needed to Set this attribute
   677 		*/
   678 		ELanguageIndex,
   679 	
   680 		
   681 		/**
   682 		A 2 decimal digit (decimal) language keyboard index.
   683 		It is used as the two digit language number that is the suffix of
   684 		language resource DLLs, e.g. EKDATA.01.
   685 		
   686 		@see TLanguage
   687 
   688 		@capability WriteDeviceData needed to Set this attribute
   689 		*/
   690 		EKeyboardIndex,
   691 	
   692 		
   693 		/**
   694 		The maximum allowable size of RAM drive, in bytes.
   695 		*/
   696 		EMaxRAMDriveSize,
   697 	
   698 		
   699 		/**
   700 		Indicates the state of the keyboard.
   701 		
   702 		It has the values:
   703 		0 = keyboard is disabled;
   704 		1 = Keyboard is enabled.
   705         
   706         This is dynamic and writeable.
   707 
   708 		@capability PowerMgmt needed to Set this attribute
   709 		*/
   710 		EKeyboardState,
   711 	
   712 		/**
   713   		Defines the system drive & custom resource drive. 
   714         Legacy attribute which is no longer supported.
   715   
   716   		@deprecated Attribute is no longer the primary mechanism to define the 
   717   		System Drive or the Custom Resource Drive.
   718         @see RFs::GetSystemDrive.
   719         @see BaflUtils::NearestLanguageFile
   720         @see HALData::ECustomResourceDrive
   721   		*/
   722 		ESystemDrive,	
   723 		
   724 		/**
   725 		Indicates the state of the pen or digitiser.
   726 
   727 		It has the values:
   728 		1 = pen/digitiser is enabled;
   729 		0 = pen/digitiser is disabled.
   730 		
   731         This is dynamic and writeable.
   732 
   733 		@capability PowerMgmt needed to Set this attribute
   734 		*/
   735 		EPenState,
   736 	
   737 		
   738 		/**
   739 		On input: aInOut contains the mode number.
   740         On output: aInOut contains: 0 = display is colour;
   741                                     1 = display is black & white.
   742         
   743         aInOut is the 3rd parameter passed to accessor functions
   744         for derived attributes.
   745 		*/
   746 		EDisplayIsMono,
   747 	
   748 		
   749 		/**
   750 		On input: aInOut contains the mode number;
   751         On output, aInOut contains: 0 = display is not palettised;
   752                                     1 = display is palettised.
   753         
   754         aInOut is the 3rd parameter passed to accessor functions
   755         for derived attributes.
   756   		*/
   757 		EDisplayIsPalettized,
   758 	
   759 		
   760 		/**
   761 		The display bits per pixel.
   762 		
   763         On input, aInOut contains the mode number.
   764         On output, aInOut contains the bits per pixel for that mode.
   765 
   766         aInOut is the 3rd parameter passed to accessor functions
   767         for derived attributes.
   768         
   769         It is read only data.
   770 		*/
   771 		EDisplayBitsPerPixel,
   772 	
   773 		
   774 		/**
   775 		The number of display modes available.
   776 		*/
   777 		EDisplayNumModes,
   778 	
   779 		
   780 		/**
   781 		The address of the display memory.
   782 		*/
   783 		EDisplayMemoryAddress,
   784 	
   785 		
   786 		/**
   787 		The offset, in bytes, to the pixel area of the screen from the start of screen memory.
   788 		
   789 		This is used to account for the fact that the palette is sometimes at
   790 		the beginning of the display memory.
   791 		
   792         On input, aInOut contains the mode number.
   793         On output, aInOut contains the offset to the first pixel for that mode.
   794 
   795         aInOut is the 3rd parameter passed to accessor functions
   796         for derived attributes.
   797 		*/
   798 		EDisplayOffsetToFirstPixel,
   799 	
   800 		
   801 		/**
   802 		The separation, in bytes, of successive lines of display in memory.
   803         
   804         On input, aInOut contains the mode number.
   805         On output, aInOut contains the display offset between lines.
   806 
   807         aInOut is the 3rd parameter passed to accessor functions
   808         for derived attributes.
   809 		*/
   810 		EDisplayOffsetBetweenLines,
   811 	
   812 		
   813 		/**
   814 		@capability MultimediaDD needed to Set this attribute
   815 		*/
   816 		EDisplayPaletteEntry,
   817 	
   818 		
   819 		/**
   820 		It has the values:
   821 		1 = order of pixels in display is RGB;
   822 		0 = otherwise.
   823 		*/
   824 		EDisplayIsPixelOrderRGB,
   825 	
   826 		
   827 		/**
   828 		It has the values:
   829 		1 = pixel order is landscape;
   830 		0 = pixel order is portrait.
   831 		*/
   832 		EDisplayIsPixelOrderLandscape,
   833 	
   834 		
   835 		/**
   836 		This indicates or sets the current display mode where
   837 		EDisplayNumModes-1 is the maximum value for the display mode.
   838 		The properties of a particular display mode are entirely defined by
   839 		the base port software associated with the hardware upon which the OS
   840 		is running.
   841 
   842 		@capability MultimediaDD needed to Set this attribute
   843 		*/
   844 		EDisplayMode,
   845 	
   846 		
   847 		/**
   848 		If the target hardware upon which Symbian OS is running has switches
   849 		which can be read by the base port software, this interface allows
   850 		the current status of those switches to be read. 
   851 		*/
   852 		ESwitches,
   853 	
   854 		
   855 		/**
   856 		The port number of the debug port.
   857 		*/
   858 		EDebugPort,
   859 	
   860 		
   861 		/**
   862 		The language code of the Locale which was loaded at device boot time.
   863 
   864         This is dynamic and writeable.
   865 
   866 		@see ELanguageIndex
   867 
   868 		@capability WriteSystemData needed to Set this attribute
   869 		*/
   870 		ELocaleLoaded,
   871 	
   872 		
   873 		/**
   874 		The drive number to use for storage of Clipboard data.
   875 		0 = Drive A, 1 = Drive B, etc...
   876 		*/
   877 		EClipboardDrive,
   878 	
   879 		/**
   880 		Custom restart
   881 		@capability PowerMgmt
   882 		*/
   883 		ECustomRestart,
   884 
   885 		/**
   886 		Custom restart reason
   887 		*/
   888 		ECustomRestartReason,
   889 
   890 		/**
   891 		The number of screens.
   892 		*/
   893 		EDisplayNumberOfScreens,
   894 
   895 		/**
   896 		The time between nanokernel ticks, in microseconds.
   897 		*/
   898 		ENanoTickPeriod,
   899 
   900 		/**
   901 		The frequency of the fast counter.
   902 		*/
   903 		EFastCounterFrequency,
   904 
   905 		/**
   906 		Indicates the whether the fast counter counts up or down.
   907 		*/
   908 		EFastCounterCountsUp,
   909 
   910 		/**		
   911 		Indicates whether a 3 dimensional pointing device is available for input and Z coordinate
   912 		is provided in appropriate pointer-related TRawEvents generated by the driver.
   913 
   914 		It has the values:
   915 		0 = a 3D pointer is not available for input and Z coordinate is not provided in TRawEvents;
   916 		1 = a 3D pointer is present and Z coordinate is provided in TRawEvents.
   917 		*/
   918 		EPointer3D,
   919 
   920 		/**		
   921 		The furthest detectable 3D pointing device's proximity above the screen.
   922 		As proximity values above the screen are negative, this will be a negative value.
   923 
   924 		This is dynamic and writeable.
   925 		*/
   926 		EPointer3DMaxProximity,
   927 
   928 		/**		
   929 		Indicates whether a 3 dimensional pointing device supports Theta polar angle reading.
   930 
   931 		It has the values:
   932 		0 = a 3D pointer does not support Theta polar angle reading;
   933 		1 = a 3D pointer supports Theta polar angle reading.
   934 		*/
   935 		EPointer3DThetaSupported,
   936 
   937 		/**
   938 		Indicates whether a 3 dimensional pointing device supports Phi polar angle reading.
   939 
   940 		It has the values:
   941 		0 = a 3D pointer does not support Phi polar angle reading;
   942 		1 = a 3D pointer supports Phi polar angle reading.
   943 		*/
   944 		EPointer3DPhiSupported,
   945 
   946 		/**
   947 		Indicates whether a 3 dimensional pointing device supports rotation angle along its main axis reading.
   948 
   949 		It has the values:
   950 		0 = a 3D pointer does not support alpha (rotation) reading;
   951 		1 = a 3D pointer supports alpha (rotation) reading.
   952 		*/
   953 		EPointer3DRotationSupported,
   954 
   955 		/**
   956 		Indicates whether a 3 dimensional pointing device supports readings of pressure applied on screen.
   957 
   958 		It has the values:
   959 		0 = a 3D pointer does not support pressure reading;
   960 		1 = a 3D pointer supports pressure reading.
   961 		*/
   962 		EPointer3DPressureSupported,
   963 
   964 		/**
   965 		Indicates whether hardware floating point is available, and what type.
   966 		
   967 		If no hardware floating point is available, reading this attribute will return KErrNotSupported.
   968 		If hardware floating point is available, reading this attribute will return KErrNone and the type
   969 		available. These types are specified in TFloatingPointType.
   970 		*/
   971 		EHardwareFloatingPoint,
   972 
   973 		/**
   974 		The offset between secure and nonsecure clocks. If this attribute is undefined no secure clock
   975 		will be available.
   976 		*/
   977 		ETimeNonSecureOffset,
   978 
   979 		/**
   980 		Persist startup mode.
   981 
   982 		If no variant specific implementation exists, the startup mode will be stored in platform
   983 		specific values.hda file.
   984 		*/
   985 		EPersistStartupModeKernel,
   986 
   987 		/**
   988 		Maximum restart reasons.
   989 
   990 		Returns the maximum number of values that can be used to store the restart reason required for a custom restart.
   991 		*/
   992 		EMaximumCustomRestartReasons,
   993 
   994 		/**
   995 		Maximum startup modes.
   996 		
   997 		Returns the maximum number of values that can be used to store the startup mode requires for a system restart.
   998 		*/
   999 		EMaximumRestartStartupModes,
  1000 		
  1001 		/**
  1002 		Defines the custom resource drive.
  1003 		
  1004 		This drive attribute should be set if an additional drive is required for use in the search 
  1005 		algorithm for language files.  
  1006         
  1007         @see TDriveNumber
  1008 		@see BaflUtils::NearestLanguageFile for how this attribute is used
  1009 		@capability WriteDeviceData needed to Set this attribute
  1010 		*/
  1011 		ECustomResourceDrive,
  1012 
  1013 		/**
  1014 		Step size of Z distance data.
  1015 
  1016 		Returns the minimum size of the step between two resolvable z positions
  1017 		*/
  1018 		EPointer3DProximityStep,
  1019 
  1020 		/**
  1021 		Maximum Number of Pointers supported by hardware/driver
  1022 
  1023 		Returns the maximum number of pointers for a multi-touch configuration (or KErrNotSupported or 0 or 1 for single-touch legacy configuration)
  1024 		*/
  1025 		EPointerMaxPointers,
  1026 
  1027 		/**
  1028 		Maximum Number of Pointers
  1029 		
  1030 		Sets and reads back the number of pointers as requested by the UI (<=EPointerMaxPointers)
  1031 		*/
  1032 		EPointerNumberOfPointers,
  1033 
  1034 		/**
  1035 		Maximum Pressure Value
  1036 
  1037 		Returns the maximum pressure value
  1038 		*/
  1039 		EPointer3DMaxPressure,
  1040 
  1041 		/**
  1042 		Step size of pressure data.
  1043 
  1044 		Returns the minimum size of the step between two resolvable pressure readings			
  1045 		*/
  1046 		EPointer3DPressureStep,
  1047 
  1048 		/**
  1049 		The threshold on pointer's Z coordinate above which EEnterHighPressure pointer event is sent to WSERV's clients.
  1050 		This value is intended to be preconfigured in build time and modified by Window Server only
  1051 
  1052 		@prototype 9.5
  1053 		*/
  1054 		EPointer3DEnterHighPressureThreshold,
  1055 	
  1056 		/**
  1057 		The threshold on pointer's Z coordinate below which EExitHighPressure pointer event is sent to WSERV's clients.
  1058 		This value is intended to be preconfigured in build time and modified by Window Server only
  1059 
  1060 		@prototype 9.5
  1061 		*/
  1062 		EPointer3DExitHighPressureThreshold,
  1063 
  1064 		/**
  1065 		The threshold on pointer's Z coordinate above which EEnterCloseProximity pointer event is sent to WSERV's clients.
  1066 		This value is intended to be preconfigured in build time and modified by Window Server only
  1067 
  1068 		@prototype 9.5
  1069 		*/
  1070 		EPointer3DEnterCloseProximityThreshold,
  1071 
  1072 		
  1073 		/**
  1074 		The threshold on pointer's Z coordinate below which EExitCloseProximity pointer event is sent to WSERV's clients.
  1075 		This value is intended to be preconfigured in build time and modified by Window Server only
  1076 
  1077 		@prototype 9.5
  1078 		*/
  1079 		EPointer3DExitCloseProximityThreshold,
  1080 		
  1081 		/**
  1082 		A Handle to the display memory.
  1083 
  1084 		@prototype 9.5
  1085 		*/
  1086 		EDisplayMemoryHandle,
  1087 
  1088 		/**
  1089 		Serial number of this board
  1090 		*/
  1091 		ESerialNumber,
  1092 		
  1093 		
  1094 		/**
  1095 		Interrupt used by sampling profiler - applicable for SMP only. Each CPU_i is interrupted by interrupt number ECpuProfilingInterrupt + i
  1096 		*/
  1097 		ECpuProfilingDefaultInterruptBase,
  1098 
  1099 
  1100 		/**
  1101 		Number of processors present on the device. Returns 1 on unicore. This number is constant and does not take account of power management
  1102 		*/
  1103 		ENumCpus,
  1104 
  1105 
  1106 		/*
  1107 		 * NOTE:
  1108 		 * When updating this list, please also update hal/rom/hal.hby and hal/tsrc/t_newhal.cpp.
  1109 		 */
  1110 
  1111 		/**
  1112 		
  1113 		The number of HAL attributes per screen.
  1114 		
  1115 		It is simply defined by its position in the enumeration.
  1116 		*/
  1117 		ENumHalAttributes		
  1118 
  1119 		};
  1120 
  1121 
  1122 
  1123     /**
  1124     Defines properties for the hardware attributes.
  1125     
  1126     @see HALData::TAttribute
  1127     */
  1128 	enum TAttributeProperty
  1129 		{
  1130 		/**
  1131 		When set, means that an attribute is meaningful on this device.
  1132 				
  1133 		@see HAL::Get()
  1134 		@see HAL::Set()
  1135 		*/
  1136 		EValid=0x1,
  1137 		
  1138 		
  1139 		/**
  1140 		When set, means that an attribute is modifiable.
  1141 		A call to HAL::Set() for an attribute that does not have this property,
  1142 		returns KErrNotSupported.
  1143 		
  1144 		@see HAL::Get()
  1145 		@see HAL::Set()
  1146 		*/
  1147 		ESettable=0x2,
  1148 		};
  1149 
  1150 
  1151 
  1152     /**
  1153     UIDs for a defined set of device manufacturers.
  1154     
  1155     Note that any manufacturer not represented in this list must obtain
  1156     a value from the Symbian registry.
  1157     
  1158     @see HALData::TAttribute
  1159     */
  1160     enum TManufacturer // UID for manufacturer
  1161 		{
  1162 		EManufacturer_Ericsson=0x00000000,
  1163 		EManufacturer_Motorola=0x00000001,
  1164 		EManufacturer_Nokia=0x00000002,
  1165 		EManufacturer_Panasonic=0x00000003,
  1166 		EManufacturer_Psion=0x00000004,
  1167 		EManufacturer_Intel=0x00000005,
  1168 		EManufacturer_Cogent=0x00000006,
  1169 		EManufacturer_Cirrus=0x00000007,
  1170 		EManufacturer_Linkup=0x00000008,
  1171 		EManufacturer_TexasInstruments=0x00000009,
  1172 		// New manufacturers must obtain an official UID to identify themselves
  1173 		};
  1174 
  1175 
  1176 
  1177     /**
  1178 	Defines the Symbian OS device families.
  1179 	
  1180     @see HALData::TAttribute
  1181     */
  1182 	enum TDeviceFamily
  1183 		{
  1184 		EDeviceFamily_Crystal,
  1185 		EDeviceFamily_Pearl,
  1186 		EDeviceFamily_Quartz,
  1187 		};
  1188 
  1189 
  1190 
  1191     /**
  1192     Defines the set of CPU architectures.
  1193     
  1194     @see HALData::TAttribute
  1195     */
  1196 	enum TCPU
  1197 		{
  1198 		ECPU_ARM,
  1199 		ECPU_MCORE,
  1200 		ECPU_X86,
  1201 		};
  1202 
  1203 
  1204 
  1205     /**
  1206     Defines the set of ABIs used by the CPU for user applications.
  1207     
  1208     @see HALData::TAttribute    
  1209     */
  1210 	enum TCPUABI
  1211 		{
  1212 		ECPUABI_ARM4,
  1213 		ECPUABI_ARMI,
  1214 		ECPUABI_THUMB,
  1215 		ECPUABI_MCORE,
  1216 		ECPUABI_MSVC,
  1217 		ECPUABI_ARM5T,
  1218 		ECPUABI_X86,
  1219 		};
  1220 
  1221 
  1222 
  1223     /**
  1224     Defines the set of reasons for a system boot.
  1225     
  1226     @see HALData::TAttribute
  1227     */
  1228 	enum TSystemStartupReason
  1229 		{
  1230 		ESystemStartupReason_Cold,
  1231 		ESystemStartupReason_Warm,
  1232 		ESystemStartupReason_Fault,
  1233 		};
  1234 
  1235 
  1236 
  1237     /**
  1238     Defines the set of available keyboard types.
  1239 
  1240     @see HALData::TAttribute
  1241     */
  1242 	bitmask TKeyboard
  1243 		{
  1244 		EKeyboard_Keypad=0x1,
  1245 		EKeyboard_Full=0x2,
  1246 		};
  1247 
  1248 
  1249 
  1250     /**
  1251     Defines the mouse cursor visibility.
  1252     
  1253     @see HALData::TAttribute
  1254     */
  1255 	enum TMouseState
  1256 		{
  1257 		EMouseState_Invisible=0,
  1258 		EMouseState_Visible=1,
  1259 		};
  1260 
  1261 
  1262 
  1263     /**
  1264     Defines a set of UIDs for specific devices, reference boards etc
  1265     
  1266     @see HALData::TAttribute
  1267     */
  1268 	enum TMachineUid
  1269 		{
  1270 		EMachineUid_Series5mx=0x1000118a,
  1271 		EMachineUid_Brutus=0x10005f60,
  1272 		EMachineUid_Cogent=0x10005f61,
  1273 		EMachineUid_Win32Emulator=0x10005f62,
  1274 		EMachineUid_WinC=0x10005f63,
  1275 		EMachineUid_CL7211_Eval=0x1000604f,
  1276 		EMachineUid_LinkUp=0x00000000,
  1277 		EMachineUid_Assabet=0x100093f3,
  1278 		EMachineUid_Zylonite=0x101f7f27,
  1279 		EMachineUid_IQ80310=0x1000a681,
  1280 		EMachineUid_Lubbock=0x101f7f26,
  1281 		EMachineUid_Integrator=0x1000AAEA,
  1282 		EMachineUid_Helen=0x101F3EE3,
  1283 		EMachineUid_X86PC=0x100000ad,
  1284 		EMachineUid_OmapH2=0x1020601C,
  1285 		EMachineUid_OmapH4=0x102734E3,
  1286 		EMachineUid_NE1_TB=0x102864F7,
  1287 		EMachineUid_EmuBoard=0x1200afed,
  1288 		EMachineUid_OmapH6=0x10286564,
  1289 		EMachineUid_OmapZoom=0x10286565,
  1290 		EMachineUid_STE8500=0x101FF810,
  1291 		};
  1292 
  1293 
  1294 
  1295     /**
  1296     Defines power levels for the system (or 'Main') battery.
  1297     
  1298     @see HALData::TAttribute
  1299     */
  1300 	enum TPowerBatteryStatus
  1301 		{
  1302 		EPowerBatteryStatus_Zero,
  1303 		EPowerBatteryStatus_Replace,
  1304 		EPowerBatteryStatus_Low,
  1305 		EPowerBatteryStatus_Good,
  1306 		};
  1307 
  1308 
  1309 
  1310     /**
  1311     Defines power levels for the backup power.
  1312 
  1313     @see HALData::TAttribute
  1314     */
  1315 	enum TPowerBackupStatus
  1316 		{
  1317 		EPowerBackupStatus_Zero,
  1318 		EPowerBackupStatus_Replace,
  1319 		EPowerBackupStatus_Low,
  1320 		EPowerBackupStatus_Good,
  1321 		};
  1322 	
  1323 	};
  1324 
  1325 #endif