diff -r 578be2adaf3e -r 307f4279f433 Adaptation/GUID-54042C84-6216-5930-9CBF-BAF635CECD4D.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Adaptation/GUID-54042C84-6216-5930-9CBF-BAF635CECD4D.dita Fri Oct 15 14:32:18 2010 +0100 @@ -0,0 +1,62 @@ + + + + + +Power +HAL Handler TutorialUser-side programs can get and set a number of system attributes +about power using the HAL interface. +

The base port must provide and register a HAL handler to handle these attributes.

+

The power attributes are in the EHalGroupPower HAL group. +The handler provides a kernel-side implementation to deal with the user-side +calls to HAL::Get() and HAL::Set() when +one of the following parameters is passed:

+ +

A typical application will have a user side monitor that periodically calls HAL::Get(), +passing HALData::EPowerBatteryStatus to get the charge +level of the battery.

+

Typically, the handler is implemented as part of a DPowerHal derived +object, which is created by the entry point of the base port power kernel +extension. The object is, therefore, part of the power controller kernel extension.

+
Implementation +notes
    +
  • The DPowerHal derived +object constructor must register with the power manager by calling Register().

  • +
  • If there is some power-related +data that can be accessed via the HAL component and that persists through +power cycles (On/Off), it should be initialised here. Typically the TOnOffInfoV1 data +member of the Variant-specific TActualMachineConfig (usually +found in mconf.h file under the platform directory) contains +some of that persistent data.

  • +
  • The handler itself is +the function PowerHalFunction(), and must be fully implemented +in the base port.

  • +
  • The kernel hooks up +the handler to service the HAL functions at boot-time.

  • +
  • The power Hal functions +that the Handler can handle are enumerated by TPowerHalFunction. +Not all of these functions need to be handled. If not handled, the kernel +returns KErrNotSupported when the HAL function is called +with the relevant parameter. It is left to the base port to decide which functions +are relevant.

  • +
+
+ +User-Side Hardware Abstraction +
\ No newline at end of file