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".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
19 #ifndef __HAL_DATA_H__
20 #define __HAL_DATA_H__
28 Sets of attributes and values used by HAL functions.
33 A set of enumerators that identifies hardware attributes.
34 The enumerators are passed to HAL::Get() and HAL::Set().
36 They are also used by the HAL accessor functions.
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.
48 @see HALData::TManufacturer
54 The device specific hardware version number, as defined by
55 the device manufacturer.
57 EManufacturerHardwareRev,
61 The device specific version number, as defined by
62 the device manufacturer.
64 EManufacturerSoftwareRev,
68 The device specific software version number, as defined by
69 the device manufacturer.
71 EManufacturerSoftwareBuild,
75 The device specific model number, as defined by
76 the device manufacturer.
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
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.
94 @see HALData::TDeviceFamily
100 The Symbian OS specified device family version.
106 The CPU architecture used by this device. The values are enumerated
115 A revision number for the CPU architecture.
121 This is the default ABI used by CPU for user applications.
122 The values are enumerated by HALData::TCPUABI.
128 The processor speed in KHz.
134 The reason for most recent system boot.
135 This is dynamic and readonly; the values are enumerated by
136 TSystemStartupReason.
138 @see HALData::TSystemStartupReason
140 ESystemStartupReason,
144 This is the last exception code, in the case of system reboot.
145 This is dynamic and readonly.
151 The time between system ticks, in microseconds.
157 The total system RAM, in bytes.
163 The currently free system RAM.
165 This is dynamic and readonly.
171 The total System ROM, in bytes.
177 The MMU page size in bytes.
183 Indicates the state of the power supply.
186 1 = Power is good (i.e. external power is available,
187 or the 'power' battery is >= low);
190 This is dynamic and readonly.
196 The System (or 'Main') battery power level.
197 The allowable values are enumerated by TPowerBatteryStatus
199 This is dynamic and readonly,
201 @see HALData::TPowerBatteryStatus
207 Indicates whether a backup power supply is available.
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
217 The power level for backup power.
219 It has the values enumerated by TPowerBackupStatus.
221 This is dynamic and readonly.
223 @see HALData::TPowerBackupStatus
229 Indicates the state of the external power.
232 0 = external power is not in use;
233 1 = external power is in use.
235 This is dynamic and readonly.
241 A bitmask that describes the available keyboard types (it may support
244 @see HALData::TKeyboard
260 Indicates whether the device can produce a click sound for
264 0 = the device cannot produce a click sound for each keypress;
265 1 = the device can produce a click sound.
271 The state of keyboard clicking.
274 0 = key click disabled;
275 1 = key click enabled.
277 This is dynamic and writeable.
279 @capability WriteDeviceData needed to Set this attribute
285 The keyboard click volume level.
287 It can take a value in the range 0 to EKeyboardClickVolumeMax.
289 This is dynamic and writeable.
291 @see HALData::EKeyboardClickVolumeMax
293 @capability WriteDeviceData needed to Set this attribute
295 EKeyboardClickVolume,
299 The maximum value for EKeyboardClickVolume.
301 @see HALData::EKeyboardClickVolume
303 EKeyboardClickVolumeMax,
307 The screen horizontal dimension in pixels.
313 The screen vertical dimension in pixels.
319 The screen horizontal dimension in twips.
325 The screen vertical dimension in twips.
331 The number of hues (colors or shades of grey) displayable on
338 The state of the display.
341 0 = screen is turned off;
344 This is dynamic and writeable.
346 @capability PowerMgmt needed to Set this attribute
352 The screen contrast level.
353 It can take a value in the range 0 to EDisplayContrastMax.
355 This is dynamic and writeable
357 @see HALData::EDisplayContrastMax
359 @capability WriteDeviceData needed to Set this attribute
365 The maximum value for EDisplayContrast
367 @see HALData::EDisplayContrast
373 Indicates whether there is a backlight on the device.
376 0 = there is no screen backlight;
377 1 = a screen backlight is present.
383 The current status of the backlight.
389 This is dynamic and writeable.
391 @capability WriteDeviceData needed to Set this attribute
397 Indicates whether a pen or digitizer is available for input.
400 0 = a pen/digitizer is not available for input;
401 1 = a pen/digitizeris present.
407 The pen/digitizer horizontal resolution, in pixels.
413 The pen/digitizer vertical resolution, in pixels.
419 Indicates whether a pen tap will turn the display on.
422 0 = a pen tap has no effect;
423 1 = a pent tap or press enables the display.
425 This is dynamic and writeable.
427 @capability WriteDeviceData needed to Set this attribute
433 Indicates whether the device can produce a click sound for
437 0 = the device cannot produce a click sound
438 1 = production of a click sound is supported by the device.
444 The state of pen clicking.
447 0 = pen clicking is disabled;
448 1 = pen clicking is enabled.
450 This is dynamic and writable.
452 @capability WriteDeviceData needed to Set this attribute
458 The pen click volume level.
459 It can take a value in the range 0 to EPenClickVolumeMax.
461 This value is dynamic and writable.
463 @see HALData::EPenClickVolumeMax
465 @capability WriteDeviceData needed to Set this attribute
471 The maximum value for EPenClickVolume.
473 @see HALData::EPenClickVolume
479 Indicates whether a mouse is available for input.
482 0 = there is no mouse available pen/digitizer is present;
483 1 = a mouse is available for input.
489 The mouse horizontal resolution, in pixels.
495 The mouse vertical resolution, in pixels.
501 Describes the mouse cursor visibility.
503 The value is enumerated by TMouseState.
505 This is dynamic and writable.
506 @see HALData::TMouseState
508 @capability MultimediaDD needed to Set this attribute
514 Reserved for future use.
515 @capability MultimediaDD needed to Set this attribute
521 Reserved for future use.
522 @capability MultimediaDD needed to Set this attribute
528 The number of buttons on the mouse.
534 A bitmask defining the state of each button.
536 For each bit, it has values:
540 This is dynamic and read only.
546 Defines the state of the case.
552 This is dynamic and read only.
558 Indicates whether the device has a case switch, that actions when
559 the case opens and closes.
569 Indicates whether the device is to switch on when case opens.
572 0 = disable device switchon when the case opens;
573 1 = enable device switchon when the case opens.
575 This is dynamic and writeable.
577 @capability WriteDeviceData needed to Set this attribute
579 ECaseSwitchDisplayOn,
583 Indicates whether the device is to switch off when case close.
586 0 = disable device switchoff when the case closes;
587 1 = enable device switchoff when the case closes.
589 This is dynamic and writeable.
591 @capability WriteDeviceData needed to Set this attribute
593 ECaseSwitchDisplayOff,
597 The number of LEDs on the device.
603 A bitmask defining the state of each LED.
605 For each bit, it has values:
609 This is dynamic and writeable.
615 Indicates how the phone hardware is connected.
618 0 = phone hardware is not permanently connected;
619 1 = phone hardware is permanently connected.
625 @capability WriteDeviceData needed to Set this attribute
632 EDisplayBrightnessMax,
636 Indicates the state of the keyboard backlight.
639 0 = keyboard backlight is off;
640 1 = keyboard backlight is on.
642 This is dynamic and writeable.
644 @capability PowerMgmt needed to Set this attribute
646 EKeyboardBacklightState,
650 Power supply to an accessory port.
653 0 = turn off power to an accessory port on the device;
656 This is dynamic and writeable.
658 @capability PowerMgmt needed to Set this attribute
664 A 2 decimal digit language index.
666 It is used as the two digit language number that is the suffix of
667 language resource DLLs, e.g ELOCL.01.
669 The locale with this language index is loaded the next time that
672 This is dynamic and writeable.
676 @capability WriteDeviceData needed to Set this attribute
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.
688 @capability WriteDeviceData needed to Set this attribute
694 The maximum allowable size of RAM drive, in bytes.
700 Indicates the state of the keyboard.
703 0 = keyboard is disabled;
704 1 = Keyboard is enabled.
706 This is dynamic and writeable.
708 @capability PowerMgmt needed to Set this attribute
713 Defines the system drive & custom resource drive.
714 Legacy attribute which is no longer supported.
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
725 Indicates the state of the pen or digitiser.
728 1 = pen/digitiser is enabled;
729 0 = pen/digitiser is disabled.
731 This is dynamic and writeable.
733 @capability PowerMgmt needed to Set this attribute
739 On input: aInOut contains the mode number.
740 On output: aInOut contains: 0 = display is colour;
741 1 = display is black & white.
743 aInOut is the 3rd parameter passed to accessor functions
744 for derived attributes.
750 On input: aInOut contains the mode number;
751 On output, aInOut contains: 0 = display is not palettised;
752 1 = display is palettised.
754 aInOut is the 3rd parameter passed to accessor functions
755 for derived attributes.
757 EDisplayIsPalettized,
761 The display bits per pixel.
763 On input, aInOut contains the mode number.
764 On output, aInOut contains the bits per pixel for that mode.
766 aInOut is the 3rd parameter passed to accessor functions
767 for derived attributes.
769 It is read only data.
771 EDisplayBitsPerPixel,
775 The number of display modes available.
781 The address of the display memory.
783 EDisplayMemoryAddress,
787 The offset, in bytes, to the pixel area of the screen from the start of screen memory.
789 This is used to account for the fact that the palette is sometimes at
790 the beginning of the display memory.
792 On input, aInOut contains the mode number.
793 On output, aInOut contains the offset to the first pixel for that mode.
795 aInOut is the 3rd parameter passed to accessor functions
796 for derived attributes.
798 EDisplayOffsetToFirstPixel,
802 The separation, in bytes, of successive lines of display in memory.
804 On input, aInOut contains the mode number.
805 On output, aInOut contains the display offset between lines.
807 aInOut is the 3rd parameter passed to accessor functions
808 for derived attributes.
810 EDisplayOffsetBetweenLines,
814 @capability MultimediaDD needed to Set this attribute
816 EDisplayPaletteEntry,
821 1 = order of pixels in display is RGB;
824 EDisplayIsPixelOrderRGB,
829 1 = pixel order is landscape;
830 0 = pixel order is portrait.
832 EDisplayIsPixelOrderLandscape,
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
842 @capability MultimediaDD needed to Set this attribute
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.
856 The port number of the debug port.
862 The language code of the Locale which was loaded at device boot time.
864 This is dynamic and writeable.
868 @capability WriteSystemData needed to Set this attribute
874 The drive number to use for storage of Clipboard data.
875 0 = Drive A, 1 = Drive B, etc...
881 @capability PowerMgmt
886 Custom restart reason
888 ECustomRestartReason,
891 The number of screens.
893 EDisplayNumberOfScreens,
896 The time between nanokernel ticks, in microseconds.
901 The frequency of the fast counter.
903 EFastCounterFrequency,
906 Indicates the whether the fast counter counts up or down.
908 EFastCounterCountsUp,
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.
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.
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.
924 This is dynamic and writeable.
926 EPointer3DMaxProximity,
929 Indicates whether a 3 dimensional pointing device supports Theta polar angle reading.
932 0 = a 3D pointer does not support Theta polar angle reading;
933 1 = a 3D pointer supports Theta polar angle reading.
935 EPointer3DThetaSupported,
938 Indicates whether a 3 dimensional pointing device supports Phi polar angle reading.
941 0 = a 3D pointer does not support Phi polar angle reading;
942 1 = a 3D pointer supports Phi polar angle reading.
944 EPointer3DPhiSupported,
947 Indicates whether a 3 dimensional pointing device supports rotation angle along its main axis reading.
950 0 = a 3D pointer does not support alpha (rotation) reading;
951 1 = a 3D pointer supports alpha (rotation) reading.
953 EPointer3DRotationSupported,
956 Indicates whether a 3 dimensional pointing device supports readings of pressure applied on screen.
959 0 = a 3D pointer does not support pressure reading;
960 1 = a 3D pointer supports pressure reading.
962 EPointer3DPressureSupported,
965 Indicates whether hardware floating point is available, and what type.
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.
971 EHardwareFloatingPoint,
974 The offset between secure and nonsecure clocks. If this attribute is undefined no secure clock
977 ETimeNonSecureOffset,
980 Persist startup mode.
982 If no variant specific implementation exists, the startup mode will be stored in platform
983 specific values.hda file.
985 EPersistStartupModeKernel,
988 Maximum restart reasons.
990 Returns the maximum number of values that can be used to store the restart reason required for a custom restart.
992 EMaximumCustomRestartReasons,
995 Maximum startup modes.
997 Returns the maximum number of values that can be used to store the startup mode requires for a system restart.
999 EMaximumRestartStartupModes,
1002 Defines the custom resource drive.
1004 This drive attribute should be set if an additional drive is required for use in the search
1005 algorithm for language files.
1008 @see BaflUtils::NearestLanguageFile for how this attribute is used
1009 @capability WriteDeviceData needed to Set this attribute
1011 ECustomResourceDrive,
1014 Step size of Z distance data.
1016 Returns the minimum size of the step between two resolvable z positions
1018 EPointer3DProximityStep,
1021 Maximum Number of Pointers supported by hardware/driver
1023 Returns the maximum number of pointers for a multi-touch configuration (or KErrNotSupported or 0 or 1 for single-touch legacy configuration)
1025 EPointerMaxPointers,
1028 Maximum Number of Pointers
1030 Sets and reads back the number of pointers as requested by the UI (<=EPointerMaxPointers)
1032 EPointerNumberOfPointers,
1035 Maximum Pressure Value
1037 Returns the maximum pressure value
1039 EPointer3DMaxPressure,
1042 Step size of pressure data.
1044 Returns the minimum size of the step between two resolvable pressure readings
1046 EPointer3DPressureStep,
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
1054 EPointer3DEnterHighPressureThreshold,
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
1062 EPointer3DExitHighPressureThreshold,
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
1070 EPointer3DEnterCloseProximityThreshold,
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
1079 EPointer3DExitCloseProximityThreshold,
1082 A Handle to the display memory.
1086 EDisplayMemoryHandle,
1089 Serial number of this board
1095 Interrupt used by sampling profiler - applicable for SMP only. Each CPU_i is interrupted by interrupt number ECpuProfilingInterrupt + i
1097 ECpuProfilingDefaultInterruptBase,
1101 Number of processors present on the device. Returns 1 on unicore. This number is constant and does not take account of power management
1108 * When updating this list, please also update hal/rom/hal.hby and hal/tsrc/t_newhal.cpp.
1113 The number of HAL attributes per screen.
1115 It is simply defined by its position in the enumeration.
1124 Defines properties for the hardware attributes.
1126 @see HALData::TAttribute
1128 enum TAttributeProperty
1131 When set, means that an attribute is meaningful on this device.
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.
1153 UIDs for a defined set of device manufacturers.
1155 Note that any manufacturer not represented in this list must obtain
1156 a value from the Symbian registry.
1158 @see HALData::TAttribute
1160 enum TManufacturer // UID for manufacturer
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
1178 Defines the Symbian OS device families.
1180 @see HALData::TAttribute
1184 EDeviceFamily_Crystal,
1185 EDeviceFamily_Pearl,
1186 EDeviceFamily_Quartz,
1192 Defines the set of CPU architectures.
1194 @see HALData::TAttribute
1206 Defines the set of ABIs used by the CPU for user applications.
1208 @see HALData::TAttribute
1224 Defines the set of reasons for a system boot.
1226 @see HALData::TAttribute
1228 enum TSystemStartupReason
1230 ESystemStartupReason_Cold,
1231 ESystemStartupReason_Warm,
1232 ESystemStartupReason_Fault,
1238 Defines the set of available keyboard types.
1240 @see HALData::TAttribute
1244 EKeyboard_Keypad=0x1,
1251 Defines the mouse cursor visibility.
1253 @see HALData::TAttribute
1257 EMouseState_Invisible=0,
1258 EMouseState_Visible=1,
1264 Defines a set of UIDs for specific devices, reference boards etc
1266 @see HALData::TAttribute
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,
1296 Defines power levels for the system (or 'Main') battery.
1298 @see HALData::TAttribute
1300 enum TPowerBatteryStatus
1302 EPowerBatteryStatus_Zero,
1303 EPowerBatteryStatus_Replace,
1304 EPowerBatteryStatus_Low,
1305 EPowerBatteryStatus_Good,
1311 Defines power levels for the backup power.
1313 @see HALData::TAttribute
1315 enum TPowerBackupStatus
1317 EPowerBackupStatus_Zero,
1318 EPowerBackupStatus_Replace,
1319 EPowerBackupStatus_Low,
1320 EPowerBackupStatus_Good,