Power Management/pm_services_chipset_api.h
author Arnaud Lenoir
Wed, 11 Aug 2010 19:57:11 +0100
changeset 20 4a8d14a1a8ca
parent 3 89965ac1daf8
permissions -rw-r--r--
FYI - READ ONLY - contact arnaudl@symbian.org for any changes you want.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     1
/*
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     2
  pm_services_chipset_api.h
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     3
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     4
  Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     5
  All rights reserved.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     6
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     7
  This program and the accompanying materials are made available
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     8
  under the terms of the Eclipse Public License v1.0 which accompanies
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     9
  this distribution, and is available at
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    10
  http://www.eclipse.org/legal/epl-v10.html
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    11
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    12
  Initial Contributors:
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    13
  Nokia Corporation - initial contribution.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    14
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    15
  Contributors:
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    16
*/
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    17
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    18
/** @file
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    19
@brief PM Services Chipset API H
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    20
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    21
The purpose of this interface is to enable Nokia to test power management
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    22
functionalities implemented below the Chipset API. This interface is meant to be
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    23
used only by Symbian kernel side clients.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    24
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    25
@publishedDeviceAbstraction
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    26
*/
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    27
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    28
#ifndef PM_SERVICES_CHIPSET_API_H
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    29
#define PM_SERVICES_CHIPSET_API_H
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    30
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    31
// Include files
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    32
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    33
#include <kern_priv.h>
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    34
#include "pm_definitions_chipset_api.h"
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    35
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    36
// Data types
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    37
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    38
/**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    39
Dvfs monitor callback function
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    40
@param aMonitor monitor id
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    41
@param aLoad load (casted in case of non-integer types)
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    42
*/
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    43
typedef void (*TDvfsMonitorCbFn)(TDvfsMonitor aMonitor, TUint32 aLoad);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    44
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    45
/**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    46
Idle entry callback function
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    47
@param aMode Target sleep mode
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    48
@param aPtr Client parameter
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    49
*/
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    50
typedef void (*TIdleEntryCbFn)(TInt aMode, TAny* aPtr);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    51
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    52
/**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    53
Idle exit callback function
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    54
@param aMode Sleep mode just exited
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    55
@param aPtr Client parameter
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    56
*/
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    57
typedef void (*TIdleExitCbFn)(TInt aMode, TUint32 aIdleTime, TAny* aPtr);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    58
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    59
// Class declaration
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    60
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    61
/**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    62
@brief Class description
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    63
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    64
This class contains static methods to set and get certain power management
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    65
services parameters. There are no data members.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    66
*/
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    67
class PMServices
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    68
    {
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    69
    public:
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    70
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    71
        The integer aLevel will be passed and this will represent the forced
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    72
        OPP.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    73
        @param aRes The ID for a power resource(CPU, DMA) that will be forced to
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    74
        an OPP.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    75
        @param aLevel An integer, which represents the forced OPP level.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    76
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    77
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    78
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    79
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    80
        IMPORT_C static TInt ForceSystemOPP(TPerfRes aRes, TInt aLevel);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    81
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    82
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    83
        A resource is no longer forced to a particular OPP.  The OPP will now be
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    84
        based on the DVFS algorithms.  If the system was not forced then no
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    85
        action need take place.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    86
        @param aRes resource id.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    87
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    88
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    89
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    90
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    91
        IMPORT_C static TInt UnForceSystemOPP(TPerfRes aRes);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    92
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    93
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    94
        Gets the number of supported global sleep states.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    95
        @return Number of sleep states supported
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    96
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    97
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    98
        IMPORT_C static TInt GetNumSleepStates();
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    99
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   100
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   101
        Blocks a certain sleep state.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   102
        @param aSleepState The Sleep state to be blocked..
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   103
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   104
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   105
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   106
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   107
        IMPORT_C static TInt BlockSleepState(TInt aSleepState);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   108
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   109
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   110
        Un-blocks a certain sleep state.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   111
        @param aSleepState The Sleep state to be un-blocked..
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   112
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   113
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   114
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   115
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   116
        IMPORT_C static TInt UnBlockSleepState(TInt aSleepState);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   117
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   118
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   119
        Starts the monitoring and load prediction algorithms but does nothing to
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   120
        the OPP.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   121
        @param aRes The ID for a power resource(CPU, DMA) that will now start to
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   122
        use the DVFS algorithms.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   123
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   124
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   125
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   126
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   127
        IMPORT_C static TInt EnableDVFS(TPerfRes aRes);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   128
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   129
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   130
        Stops the monitoring and load prediction algorithms.  This API will not
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   131
        change the OPP.  The OPP will remain the same as it was before this API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   132
        was called
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   133
        @param aRes The ID for a power resource(CPU, DMA) that will no longer
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   134
        use the DVFS algorithms.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   135
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   136
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   137
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   138
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   139
        IMPORT_C static TInt DisableDVFS(TPerfRes aRes);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   140
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   141
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   142
        Finds out if the DVFS algorithms are currently running for a given power
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   143
        resource.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   144
        @param aRes Find out if the DVFS algorithms are working for this
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   145
        particular power resource ID .
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   146
        @return ETrue if DVFS enabled, EFalse otherwise.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   147
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   148
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   149
        IMPORT_C static TBool IsDVFSEnabled(TPerfRes aRes);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   150
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   151
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   152
        Gets the current load of a given HW block.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   153
        @param aMon Monitor id
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   154
        @param aLoad Load value (casted into TUint32 in case of non-integer
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   155
        types)
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   156
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   157
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   158
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   159
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   160
        IMPORT_C static TInt GetCurrentLoad(TDvfsMonitor aMon, TUint32 aLoad);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   161
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   162
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   163
        Register to receive notifications of a change in load for a given
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   164
        monitor.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   165
        @param aCb callback function pointer
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   166
        @param aMon monitor id.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   167
        @param aGranuality The percentage change at which notifications will be
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   168
        sent.  Zero will mean that notifications will be sent straight away.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   169
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   170
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   171
        @pre Called from thread context with interrupts enabled.  The preferable
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   172
        way to call this function is from a thread context with interrupts
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   173
        enabled after all the kernel extensions have been initialized in the
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   174
        boot up.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   175
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   176
        IMPORT_C static TInt RegisterForLoadObservations(TDvfsMonitorCbFn aCb,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   177
            TDvfsMonitor aMon, TInt aGranuality);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   178
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   179
        Method to cancel any load observation callback.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   180
        @param aCb callback function pointer
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   181
        @param aMon monitor id.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   182
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   183
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   184
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   185
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   186
        IMPORT_C static TInt DeRegisterForLoadObservations(TDvfsMonitorCbFn
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   187
            aCb, TDvfsMonitor aMon);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   188
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   189
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   190
        Method to get the number of supported OPPs for a given performance
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   191
        resource.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   192
        @param aRes performance resource id.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   193
        @return The resource’s available OPPs.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   194
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   195
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   196
        IMPORT_C static TInt GetNumOPPs(TPerfRes aRes);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   197
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   198
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   199
        Get the workload prediction window buffer pointer (Symbian kernel data).
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   200
        @return The window buffer pointer (casted into TUint32 type)
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   201
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   202
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   203
        IMPORT_C static TUint32 GetWpWindowBuf();
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   204
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   205
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   206
        Request for idle entry callback.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   207
        @param aCbFn Callback function
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   208
        @param aPtr A pointer to be passed to the callback function when called
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   209
        @param aCore Core number. If -1, API applies to system idle
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   210
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   211
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   212
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   213
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   214
        IMPORT_C static TInt RequestIdleEntryCallback(TIdleEntryCbFn aCbFn,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   215
            TAny* aPtr, TInt aCore = -1);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   216
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   217
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   218
        Request for idle exit callback
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   219
        @param aCbFn Callback function
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   220
        @param aPtr A pointer to be passed to the callback function when called
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   221
        @param aCore Core number. If -1, API applies to system idle
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   222
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   223
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   224
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   225
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   226
        IMPORT_C static TInt RequestIdleExitCallback(TIdleExitCbFn aCbFn,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   227
            TAny* aPtr, TInt aCore = -1);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   228
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   229
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   230
        Cancel idle entry callback
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   231
        @param aCbFn Callback function
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   232
        @param aCore Core number. If -1, API applies to system idle
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   233
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   234
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   235
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   236
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   237
        IMPORT_C static TInt CancelIdleEntryCallback(TIdleEntryCbFn aCbFn,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   238
            TInt aCore);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   239
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   240
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   241
        Cancel idle exit callback
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   242
        @param aCbFn Callback function
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   243
        @param aCore Core number. If -1, API applies to system idle
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   244
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   245
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   246
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   247
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   248
        IMPORT_C static TInt CancelIdleExitCallback(TIdleExitCbFn aCbFn,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   249
            TInt aCore);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   250
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   251
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   252
        Method to get the hardware time based on a real time clock.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   253
        @return Hardware time in microseconds.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   254
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   255
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   256
        IMPORT_C static TUint32 HwTime();
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   257
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   258
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   259
        Retire a given number of cores. It is possible that no cores can be
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   260
        retired because all remaining running cores have features not available
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   261
        on any other core; and so may not allow any to be retired ( even if
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   262
        there are no threads in the ready list that may require those features);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   263
        when that happens this API will fail (and return as error code).
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   264
        @param aCount number of cores to retire
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   265
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   266
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   267
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   268
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   269
        IMPORT_C static TInt RetireCore(TInt aCount);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   270
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   271
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   272
        Enables any retired cores.  If no cores can be engaged due to all cores
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   273
        being on or for some other   reason then this API returns an error.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   274
        @param aEngage The number of cores to Engage.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   275
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   276
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   277
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   278
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   279
        IMPORT_C static TInt EngageCore(TInt aEngage);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   280
    };
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   281
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   282
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   283
#endif // PM_SERVICES_CHIPSET_API_H