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