kernel/eka/include/u32hal.h
changeset 0 a41df078684a
child 90 947f0dc9f7a8
child 110 c734af59ce98
equal deleted inserted replaced
-1:000000000000 0:a41df078684a
       
     1 // Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of the License "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // e32\include\u32hal.h
       
    15 // 
       
    16 // WARNING: This file contains some APIs which are internal and are subject
       
    17 //          to change without notice. Such APIs should therefore not be used
       
    18 //          outside the Kernel and Hardware Services package.
       
    19 //
       
    20 
       
    21 #ifndef __U32HAL_H__
       
    22 #define __U32HAL_H__
       
    23 
       
    24 #include <e32cmn.h>
       
    25 
       
    26 //
       
    27 // Classes used for in functions
       
    28 //
       
    29 
       
    30 /**
       
    31 Used for TVariantInfoV01::iLedCapabilities
       
    32 @publishedPartner
       
    33 @released
       
    34 */
       
    35 const TUint KLedMaskRed1=0x00000001;
       
    36 
       
    37 /**
       
    38 Used for TVariantInfoV01::iLedCapabilities
       
    39 @publishedPartner
       
    40 @released
       
    41 */
       
    42 const TUint KLedMaskGreen1=0x00000002;
       
    43 
       
    44 /**
       
    45 Used for TVariantInfoV01::iLedCapabilities
       
    46 @publishedPartner
       
    47 @released
       
    48 */
       
    49 const TUint KLedMaskYellow1=0x00000004;
       
    50 
       
    51 /**
       
    52 Used for TSupplyInfoV1.iFlags
       
    53 @publishedPartner
       
    54 @deprecated Unused by Symbian code
       
    55 */
       
    56 const TUint KSupplyFlagSoundWarning=0x00000001;
       
    57 
       
    58 /**
       
    59 Used for TSupplyInfoV1.iFlags
       
    60 @publishedPartner
       
    61 @deprecated Unused by Symbian code
       
    62 */
       
    63 const TUint KSupplyFlagBacklightWarning=0x00000002;
       
    64 
       
    65 /**
       
    66 Used for TSupplyInfoV1.iFlags
       
    67 @publishedPartner
       
    68 @deprecated Unused by Symbian code
       
    69 */
       
    70 const TUint KSupplyFlagTimeChanged=0x80000000;
       
    71 
       
    72 /**
       
    73 @internalComponent
       
    74 @deprecated Unused by Symbian code
       
    75 */
       
    76 class TClearSetMask
       
    77 	{
       
    78 public:
       
    79 	TUint iClearMask;
       
    80 	TUint iSetMask;
       
    81 	};
       
    82 
       
    83 /**
       
    84 @internalTechnology
       
    85 @deprecated Unused by Symbian code
       
    86 */
       
    87 enum TSupplyStatus
       
    88 	{
       
    89 	EZero,EVeryLow,ELow,EGood
       
    90 	};
       
    91 
       
    92 /**
       
    93 @internalTechnology
       
    94 @deprecated Unused by Symbian code
       
    95 */
       
    96 class TSupplyInfoV1
       
    97 	{
       
    98 public:
       
    99 	SInt64 iMainBatteryInsertionTime;
       
   100 	TSupplyStatus iMainBatteryStatus;
       
   101 	SInt64 iMainBatteryInUseMicroSeconds;
       
   102 	TInt iCurrentConsumptionMilliAmps;
       
   103 	TInt iMainBatteryConsumedMilliAmpSeconds;
       
   104 	TInt iMainBatteryMilliVolts;
       
   105 	TInt iMainBatteryMaxMilliVolts;
       
   106 	TSupplyStatus iBackupBatteryStatus;
       
   107 	TInt iBackupBatteryMilliVolts;
       
   108 	TInt iBackupBatteryMaxMilliVolts;
       
   109 	TBool iExternalPowerPresent;
       
   110 	SInt64 iExternalPowerInUseMicroSeconds;
       
   111 	TUint iFlags;
       
   112 	};
       
   113 
       
   114 /**
       
   115 @internalTechnology
       
   116 @deprecated Unused by Symbian code
       
   117 */
       
   118 typedef TPckgBuf<TSupplyInfoV1> TSupplyInfoV1Buf;
       
   119 
       
   120 /**
       
   121 @publishedPartner
       
   122 @deprecated Unused by Symbian code
       
   123 */
       
   124 class TMouseProperties
       
   125 	{
       
   126 public:
       
   127 	TUint8 iSpeed;
       
   128 	TUint8 iAcceleration;
       
   129 	};
       
   130 
       
   131 /**
       
   132 @internalTechnology Used by Symbian base ports
       
   133 @deprecated Unused by Symbian code
       
   134 */
       
   135 class TSoundInfoV1
       
   136 	{
       
   137 public:
       
   138 	TBool iKeyClickEnabled;
       
   139 	TBool iKeyClickLoud;
       
   140 	TBool iKeyClickOverridden;
       
   141 	TBool iPointerClickEnabled;
       
   142 	TBool iPointerClickLoud;
       
   143 	TBool iBeepEnabled;
       
   144 	TBool iBeepLoud;
       
   145 	TBool iSoundDriverEnabled;
       
   146 	TBool iSoundDriverLoud;
       
   147 	TBool iSoundEnabled;
       
   148 	};
       
   149 
       
   150 /**
       
   151 @internalTechnology
       
   152 @deprecated Unused by Symbian code
       
   153 */
       
   154 typedef TPckgBuf<TSoundInfoV1> TSoundInfoV1Buf;
       
   155 
       
   156 /**
       
   157 @internalTechnology Used by Symbian base ports
       
   158 */
       
   159 class TOnOffInfoV1
       
   160 	{
       
   161 public:
       
   162 	TBool iPointerSwitchesOn;
       
   163 	TBool iCaseOpenSwitchesOn;
       
   164 	TBool iCaseCloseSwitchesOff;
       
   165 	};
       
   166 
       
   167 /**
       
   168 @internalTechnology
       
   169 @deprecated Unused by Symbian code
       
   170 */
       
   171 typedef TPckgBuf<TOnOffInfoV1> TOnOffInfoV1Buf;
       
   172 
       
   173 /**
       
   174 @internalTechnology
       
   175 @removed Unused by Symbian code
       
   176 */
       
   177 enum TUserMediaFunction {EUserMediaRemount,EUserMediaNotifyChange};
       
   178 
       
   179 
       
   180 
       
   181 
       
   182 //
       
   183 // Hal function enumerations
       
   184 //
       
   185 
       
   186 /**
       
   187 @publishedPartner
       
   188 @released
       
   189 
       
   190 Defines the set of HAL groups.
       
   191 
       
   192 Each HAL group has an associated HAL handler. Note that the
       
   193 HAL handlers for EHalGroupKernel and EHalGroupEmulator are internal
       
   194 to Symbian OS.
       
   195 
       
   196 See the Base Porting Guide documentation in the developer library for
       
   197 more information on HAL groups.
       
   198 */
       
   199 enum THalFunctionGroup
       
   200 	{
       
   201 	/**
       
   202 	@internalComponent
       
   203 	
       
   204 	The HAL group associated with kernel related information; for example
       
   205 	the reason for the most recent system boot.
       
   206 	
       
   207 	The function-ids associated with this HAL group are defined by the set
       
   208     of TKernelHalFunction enum values.
       
   209     */
       
   210 	EHalGroupKernel=0,
       
   211 
       
   212 
       
   213     /**
       
   214     The HAL group associated with Variant specific hardware.
       
   215     
       
   216     This HAL handler is implemented by the Variant, specifically by
       
   217     the base port's implementation of Asic::VariantHal().
       
   218     
       
   219     The function-ids associated with this HAL group are defined by the set
       
   220     of TVariantHalFunction enum values. See the individual function-ids for
       
   221     the associated capabilities.
       
   222 
       
   223     @see TVariantHalFunction
       
   224     @see Asic::VariantHal()
       
   225     */
       
   226 	EHalGroupVariant=1,
       
   227 
       
   228 
       
   229     /**
       
   230     The HAL group associated with the media driver.
       
   231     
       
   232     It is used internally by the media driver LDD.
       
   233     
       
   234     The function-ids associated with this HAL group are defined by the set
       
   235     of TMediaHalFunction enum values. See the individual function-ids for
       
   236     the associated capabilities.
       
   237     
       
   238     @see TMediaHalFunction
       
   239     */
       
   240 	EHalGroupMedia=2,
       
   241 
       
   242 
       
   243     /**
       
   244     The HAL group associated with power handling.
       
   245     
       
   246     This HAL handler is implemented by the power model.
       
   247     
       
   248     The function-ids associated with this HAL group are defined by the set
       
   249     of TPowerHalFunction enum values. See the individual function-ids for
       
   250     the associated capabilities.
       
   251 		
       
   252 	@see TPowerHalFunction
       
   253     */
       
   254 	EHalGroupPower=3,
       
   255 	
       
   256 	
       
   257 	/**
       
   258 	The HAL group associated with the main screen display.
       
   259 	
       
   260 	This HAL handler is implemented by the screen (i.e. LCD or video driver).
       
   261 	
       
   262     The function-ids associated with this HAL group are defined by the set
       
   263     of TDisplayHalFunction enum values. See the individual function-ids for
       
   264     the associated capabilities.
       
   265 		
       
   266 	@see TDisplayHalFunction
       
   267 	*/
       
   268 	EHalGroupDisplay=4,
       
   269 
       
   270 
       
   271     /**
       
   272     The HAL group associated with the digitiser (i.e. pen or stylus).
       
   273     
       
   274     This HAL handler is implemented by the digitiser.
       
   275     
       
   276     The function-ids associated with this HAL group are defined by the set
       
   277     of TDigitiserHalFunction enum values. See the individual function-ids for
       
   278     the associated capabilities.
       
   279     
       
   280     @see TDigitiserHalFunction
       
   281     */
       
   282 	EHalGroupDigitiser=5,
       
   283 
       
   284 
       
   285     /**
       
   286     The HAL group associated with a sound driver.
       
   287     	
       
   288    	This group is provided by Symbian OS for backwards compatibility with
       
   289    	the Psion Series 5MX devices.
       
   290    	
       
   291    	The function-ids associated with this HAL group are defined by the set
       
   292     of TSoundHalFunction enum values. See the individual function-ids for
       
   293     the associated capabilities.
       
   294     
       
   295     @see TSoundHalFunction
       
   296     */
       
   297 	EHalGroupSound=6,
       
   298 
       
   299 
       
   300     /**
       
   301 	The HAL group associated with a mouse-type device.
       
   302 	
       
   303 	In Symbian OS, the the only example of a mouse device is in the emulator,
       
   304 	and this is a port of Symbian OS maintained by Symbian.
       
   305 	
       
   306     The function-ids associated with this HAL group are defined by the set
       
   307     of TMouseHalFunction enum values. See the individual function-ids for
       
   308     the associated capabilities.
       
   309 		
       
   310 	@see TMouseHalFunction
       
   311     */
       
   312 	EHalGroupMouse=7,
       
   313 
       
   314 
       
   315 	/**
       
   316 	@internalComponent
       
   317 	
       
   318 	The HAL group associated with the emulator.
       
   319 	
       
   320 	The function-ids associated with this HAL group are defined by the set
       
   321     of TEmulatorHalFunction enum values.
       
   322 	*/
       
   323 	EHalGroupEmulator=8,
       
   324 
       
   325 
       
   326     /**
       
   327     The HAL group associated with the keyboard.
       
   328     
       
   329     This HAL handler is implemented by the keyboard driver.
       
   330     
       
   331     The function-ids associated with this HAL group are defined by the set
       
   332     of TKeyboardHalFunction enum values. See the individual function-ids for
       
   333     the associated capabilities.
       
   334     
       
   335     @see TKeyboardHalFunction
       
   336     */
       
   337 	EHalGroupKeyboard=9,
       
   338 
       
   339 	/*
       
   340     The HAL group associated with the virtual memory system.
       
   341 
       
   342 	The function-ids associated with this HAL group are defined by the set
       
   343     of TVMHalFunction enum values.
       
   344 
       
   345     @see TVMHalFunction
       
   346 	*/
       
   347 	EHalGroupVM=10,
       
   348 
       
   349 	/*
       
   350     The HAL group associated with the RAM Zone configuration.
       
   351 
       
   352 	The function-ids associated with this HAL group are defined by the set
       
   353     of TRamHalFunction enum values.
       
   354 
       
   355     @see TRamHalFunction
       
   356 	*/
       
   357 	EHalGroupRam=11,
       
   358 
       
   359 	/**
       
   360 	Reserved for platform specific use.
       
   361 	*/
       
   362 	EHalGroupPlatformSpecific1=29,
       
   363 
       
   364 	/**
       
   365 	Reserved for platform specific use.
       
   366 	*/
       
   367 	EHalGroupPlatformSpecific2=30
       
   368 	};
       
   369 
       
   370 
       
   371 
       
   372 
       
   373 /**
       
   374 @internalComponent
       
   375 */
       
   376 enum TKernelHalFunction
       
   377 	{
       
   378 	EKernelHalMemoryInfo,
       
   379 	EKernelHalRomInfo,
       
   380 	EKernelHalStartupReason,
       
   381 	EKernelHalFaultReason,
       
   382 	EKernelHalExceptionId,
       
   383 	EKernelHalExceptionInfo,
       
   384 	EKernelHalCpuInfo,
       
   385 	EKernelHalPageSizeInBytes,
       
   386 	EKernelHalTickPeriod,
       
   387 	EKernelHalMemModelInfo,
       
   388 	EKernelHalFastCounterFrequency,
       
   389 	EKernelHalNTickPeriod,
       
   390 	EKernelHalHardwareFloatingPoint,
       
   391 	EKernelHalGetNonsecureClockOffset,
       
   392 	EKernelHalSetNonsecureClockOffset,
       
   393 	EKernelHalSmpSupported,
       
   394 	EKernelHalNumLogicalCpus,
       
   395 	EKernelHalSupervisorBarrier,
       
   396 	EKernelHalFloatingPointSystemId,
       
   397 	EKernelHalLockThreadToCpu,
       
   398 	EKernelHalConfigFlags,
       
   399 	};
       
   400 
       
   401 
       
   402 
       
   403 
       
   404 /**
       
   405 @publishedPartner
       
   406 @released
       
   407 
       
   408 The set of function-ids that are  associated with the EHalGroupVariant
       
   409 HAL group.
       
   410 
       
   411 Each enum value represents a specific characteristic of the Variant,
       
   412 and is passed as the second parameter to
       
   413 the HAL handler function dealing with this group.
       
   414  
       
   415 @see EHalGroupVariant
       
   416 */
       
   417 enum TVariantHalFunction
       
   418 	{
       
   419 	/**
       
   420 	Gets Variant specifc information.
       
   421 	
       
   422 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   423 	
       
   424 	- TInt aFunction : This enum value.
       
   425 	    
       
   426 	- TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
       
   427 	TVariantInfoV01 structure. The HAL function needs to fill the members of
       
   428 	this structure with the appropriate information.
       
   429 									
       
   430 	- TAny* a2 : NULL.
       
   431 
       
   432 	An example of this function can be found in the Variant template;
       
   433 	see the function: 
       
   434 	@code
       
   435 	Template::VariantHal()
       
   436 	@endcode
       
   437 	in  
       
   438 	@code
       
   439 	...\template\template_variant\specific\variant.cpp
       
   440 	@endcode
       
   441 	
       
   442 	@see TVariantInfoV01
       
   443     @see TPckgBuf
       
   444 	*/
       
   445 	EVariantHalVariantInfo,
       
   446 
       
   447 
       
   448 	/**
       
   449 	Sets the debug port number.
       
   450 	
       
   451 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   452 	
       
   453 	- TInt aFunction : This enum value.
       
   454 
       
   455 	- TAny* a1 : A TInt value containing the debug port number.
       
   456 									
       
   457 	- TAny* a2 : NULL.
       
   458 
       
   459 	An example of this function can be found in the Variant template;
       
   460 	see the function: 
       
   461 	@code
       
   462 	Template::VariantHal()
       
   463 	@endcode
       
   464 	in  
       
   465 	@code
       
   466 	...\template\template_variant\specific\variant.cpp
       
   467 	@endcode
       
   468 	*/
       
   469 	EVariantHalDebugPortSet,
       
   470 
       
   471 
       
   472 	/**
       
   473 	Gets the debug port number.
       
   474 	
       
   475 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   476 	
       
   477 	- TInt aFunction : This enum value.
       
   478 
       
   479     - TAny* a1 : A TInt value into which the HAL handler puts the debug port value
       
   480     									
       
   481 	- TAny* a2 : NULL.
       
   482 
       
   483 	An example of this function can be found in the Variant template;
       
   484 	see the function: 
       
   485 	@code
       
   486 	Template::VariantHal()
       
   487 	@endcode
       
   488 	in  
       
   489 	@code
       
   490 	...\template\template_variant\specific\variant.cpp
       
   491 	@endcode
       
   492 	*/
       
   493 	EVariantHalDebugPortGet,
       
   494 
       
   495 
       
   496 	/**
       
   497 	Sets the current state of each LED. 
       
   498 	
       
   499 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   500 	
       
   501 	- TInt aFunction : This enum value.
       
   502 
       
   503     - TAny* a1 : A TUint value containing the bitmask that
       
   504     describes the state of the LEDs. For each bit in the mask, 0 = OFF, 1 = ON.
       
   505     									
       
   506 	- TAny* a2 : NULL.
       
   507 	
       
   508 	An example of this function can be found in the Variant template;
       
   509 	see the function: 
       
   510 	@code
       
   511 	Template::VariantHal()
       
   512 	@endcode
       
   513 	in  
       
   514 	@code
       
   515 	...\template\template_variant\specific\variant.cpp
       
   516 	@endcode
       
   517 	*/
       
   518 	EVariantHalLedMaskSet,
       
   519 
       
   520 
       
   521 	/**
       
   522 	Gets the current state of each LED.
       
   523 	
       
   524 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   525 	
       
   526 	- TInt aFunction : This enum value.
       
   527 
       
   528     - TAny* a1 : A TUint value into which the HAL handler puts the bitmask that
       
   529     describes the state of the LEDs. For each bit in the mask, 0 = OFF, 1 = ON.
       
   530     									
       
   531 	- TAny* a2 : NULL.
       
   532 
       
   533 	An example of this function can be found in the Variant template;
       
   534 	see the function: 
       
   535 	@code
       
   536 	Template::VariantHal()
       
   537 	@endcode
       
   538 	in  
       
   539 	@code
       
   540 	...\template\template_variant\specific\variant.cpp
       
   541 	@endcode
       
   542 	*/
       
   543 	EVariantHalLedMaskGet,
       
   544 
       
   545 
       
   546 	/**
       
   547 	Gets the current state of any Variant specific switches. 
       
   548 	
       
   549 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   550 	
       
   551 	- TInt aFunction : This enum value.
       
   552 
       
   553     - TAny* a1 : A TUint value into which the HAL handler puts the bits that
       
   554     describe the state of the switches. The meaning of the switches is entirely
       
   555     hardware dependent.
       
   556     									
       
   557 	- TAny* a2 : NULL.
       
   558 
       
   559 	An example of this function can be found in the Variant template;
       
   560 	see the function: 
       
   561 	@code
       
   562 	Template::VariantHal()
       
   563 	@endcode
       
   564 	in  
       
   565 	@code
       
   566 	...\template\template_variant\specific\variant.cpp
       
   567 	@endcode
       
   568 	*/
       
   569 	EVariantHalSwitches,
       
   570 
       
   571 
       
   572 	/**
       
   573 	Restarts the system.
       
   574 	
       
   575 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   576 	
       
   577 	- TInt aFunction : This enum value.
       
   578 
       
   579     - TAny* a1 : A TUint value containing the bits defining the custom restart reasons
       
   580     that can be passed to Kern::Restart().
       
   581     									
       
   582 	- TAny* a2 : NULL.
       
   583 
       
   584 	An example of this function can be found in the Variant template;
       
   585 	see the function: 
       
   586 	@code
       
   587 	Template::VariantHal()
       
   588 	@endcode
       
   589 	in  
       
   590 	@code
       
   591 	...\template\template_variant\specific\variant.cpp
       
   592 	@endcode
       
   593 		
       
   594 	@capability PowerMgmt
       
   595 	
       
   596 	@see Kern::Restart()
       
   597 	*/
       
   598 	EVariantHalCustomRestart,
       
   599 
       
   600 
       
   601 	/**
       
   602 	Gets the reason for the system restart.
       
   603 			
       
   604 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   605 	
       
   606 	- TInt aFunction : This enum value.
       
   607 
       
   608     - TAny* a1 : A TInt value into which the handler will put a value
       
   609     representing the restart reason.
       
   610         									
       
   611 	- TAny* a2 : NULL.
       
   612 	
       
   613 	An example of this function can be found in the Variant template;
       
   614 	see the function: 
       
   615 	@code
       
   616 	Template::VariantHal()
       
   617 	@endcode
       
   618 	in the file
       
   619 	@code
       
   620 	...\template\template_variant\specific\variant.cpp
       
   621 	@endcode
       
   622 	*/
       
   623 	EVariantHalCustomRestartReason,
       
   624 
       
   625 
       
   626 	/**
       
   627 	Gets the current state of the case.
       
   628 	
       
   629 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   630 	
       
   631 	- TInt aFunction : This enum value.
       
   632 
       
   633     - TAny* a1 : A TUint value into which the HAL handler puts a value representing the case state.
       
   634       Possible values are 0 for closed, and 1 for open.
       
   635     									
       
   636 	- TAny* a2 : NULL.
       
   637 
       
   638 	An example of this function can be found in the Variant template;
       
   639 	see the function: 
       
   640 	@code
       
   641 	Template::VariantHal()
       
   642 	@endcode
       
   643 	in  
       
   644 	@code
       
   645 	...\template\template_variant\specific\variant.cpp
       
   646 	@endcode
       
   647 	*/
       
   648 	EVariantHalCaseState,
       
   649 
       
   650 
       
   651 	/**
       
   652 	Gets the number of screens on this platform.
       
   653 	
       
   654 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   655 	
       
   656 	- TInt aFunction : This enum value.
       
   657 	    
       
   658 	- TAny* a1 : This is a pointer to TInt that will contain the number of screens
       
   659 									
       
   660 	- TAny* a2 : NULL.
       
   661 
       
   662 	*/
       
   663 	EVariantHalCurrentNumberOfScreens,
       
   664 
       
   665 	/**
       
   666 	Sets the startup reason for the system restart.
       
   667 	
       
   668 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   669 	
       
   670 	- TInt aFunction : This enum value.
       
   671 
       
   672     - TAny* a1 : A TUint value containing the bits defining the startup mode
       
   673     that will be passed to Kern::Restart().
       
   674     									
       
   675 	- TAny* a2 : NULL.
       
   676 	
       
   677 	An example of this function can be found in the Variant template;
       
   678 	see the function: 
       
   679 	@code
       
   680 	Template::VariantHal()
       
   681 	@endcode
       
   682 	in  
       
   683 	@code
       
   684 	...\template\template_variant\specific\variant.cpp
       
   685 	@endcode
       
   686 		
       
   687 	@capability WriteDeviceData
       
   688 	
       
   689 	@see Kern::Restart()
       
   690 	*/	
       
   691 	EVariantHalPersistStartupMode,
       
   692 
       
   693 	/**
       
   694 	Gets the startup mode after a system restart.
       
   695 			
       
   696 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   697 	
       
   698 	- TInt aFunction : This enum value.
       
   699 
       
   700     - TAny* a1 : A TInt that will hold the returned value
       
   701         									
       
   702 	- TAny* a2 : NULL.
       
   703 	
       
   704 	An example of this function can be found in the Variant template;
       
   705 	see the function: 
       
   706 	@code
       
   707 	Template::VariantHal()
       
   708 	@endcode
       
   709 	in the file
       
   710 	@code
       
   711 	...\template\template_variant\specific\variant.cpp
       
   712 	@endcode
       
   713 	*/
       
   714 	EVariantHalGetPersistedStartupMode,
       
   715 
       
   716 	/**
       
   717 	Returns the maximum number of values that can be used to store the startup reason required for a custom restart.
       
   718 	
       
   719 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   720 	
       
   721 	- TInt aFunction : This enum value.
       
   722 
       
   723     - TAny* a1 : A TInt that will hold the returned value
       
   724     									
       
   725 	- TAny* a2 : NULL.
       
   726 
       
   727 	An example of this function can be found in the Variant template;
       
   728 	see the function: 
       
   729 	@code
       
   730 	Template::VariantHal()
       
   731 	@endcode
       
   732 	in  
       
   733 	@code
       
   734 	...\template\template_variant\specific\variant.cpp
       
   735 	@endcode
       
   736 	*/
       
   737 	EVariantHalGetMaximumCustomRestartReasons,
       
   738 
       
   739 	/**
       
   740 	Returns the maximum number of values that can be used to store the startup mode required for a transition to
       
   741 	a EPwRestart power state.
       
   742 	
       
   743 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   744 	
       
   745 	- TInt aFunction : This enum value.
       
   746 
       
   747     - TAny* a1 : A TInt that will hold the returned value
       
   748     									
       
   749 	- TAny* a2 : NULL.
       
   750 
       
   751 	An example of this function can be found in the Variant template;
       
   752 	see the function: 
       
   753 	@code
       
   754 	Template::VariantHal()
       
   755 	@endcode
       
   756 	in  
       
   757 	@code
       
   758 	...\template\template_variant\specific\variant.cpp
       
   759 	@endcode
       
   760 	*/
       
   761 	EVariantHalGetMaximumRestartStartupModes,
       
   762 
       
   763 	/**
       
   764 	Returns a factor by which timeouts in test code should be expanded for
       
   765 	exceptionally slow platforms (e.g. with cores implemented in FPGA).
       
   766 
       
   767 	If this is not supported the factor should be assumed to be 1.
       
   768 	*/
       
   769 	EVariantHalTimeoutExpansion,
       
   770 
       
   771 	/**
       
   772 	Returns a serial number as an Int
       
   773 	*/
       
   774 	EVariantHalSerialNumber,
       
   775 	
       
   776 	/**
       
   777 	Returns the interrupt used by sampling profiler - applicable for SMP only.
       
   778 	Each CPU_i is interrupted by interrupt number ECpuProfilingInterrupt + i
       
   779 	*/	
       
   780 	EVariantHalProfilingDefaultInterruptBase
       
   781 
       
   782 	};
       
   783 
       
   784 
       
   785 
       
   786 
       
   787 /**
       
   788 @publishedPartner
       
   789 @released
       
   790 
       
   791 The set of function-ids that are  associated with the EHalGroupMedia
       
   792 HAL group.
       
   793 
       
   794 Each enum value represents a specific characteristic of the media driver,
       
   795 and is passed as the second parameter to
       
   796 the HAL handler function dealing with this group.
       
   797  
       
   798 @see EHalGroupMedia
       
   799 */
       
   800 enum TMediaHalFunction
       
   801 	{
       
   802 	/**
       
   803 	Gets drive information.
       
   804 
       
   805 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   806 	
       
   807 	- TInt aFunction : This enum value.
       
   808 	    
       
   809 	- TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
       
   810     TDriveInfoV1 structure. The HAL function needs to fill the members of
       
   811 	this structure with the appropriate information.
       
   812 									
       
   813 	- TAny* a2 : NULL.
       
   814 
       
   815 	Note that the HAL handler is implemented by Symbian OS
       
   816 	
       
   817 	@see TDriveInfoV1
       
   818     @see TPckgBuf
       
   819 	*/
       
   820 	EMediaHalDriveInfo,
       
   821 
       
   822 	/**
       
   823 	@internalTechnology
       
   824 	@test
       
   825 	*/
       
   826 	EMediaHalGetROMConcurrencyInfo,
       
   827 
       
   828 	/**
       
   829 	@internalTechnology
       
   830 	@test
       
   831 	*/
       
   832 	EMediaHalGetCodeConcurrencyInfo,
       
   833 
       
   834 	/**
       
   835 	@internalTechnology
       
   836 	@test
       
   837 	*/
       
   838 	EMediaHalResetConcurrencyInfo,
       
   839 
       
   840 	/**
       
   841 	@internalTechnology
       
   842 	@test
       
   843 	*/
       
   844 	EMediaHalGetROMPagingBenchmark,
       
   845 
       
   846 	/**
       
   847 	@internalTechnology
       
   848 	@test
       
   849 	*/
       
   850 	EMediaHalGetCodePagingBenchmark,
       
   851 
       
   852 	/**
       
   853 	@internalTechnology
       
   854 	@test
       
   855 	*/
       
   856 	EMediaHalResetPagingBenchmark,
       
   857 
       
   858 	/**
       
   859 	@internalTechnology
       
   860 	@test
       
   861 	*/
       
   862 	EMediaHalGetDataConcurrencyInfo,
       
   863 
       
   864 	/**
       
   865 	@internalTechnology
       
   866 	@test
       
   867 	*/
       
   868 	EMediaHalGetDataInPagingBenchmark,
       
   869 
       
   870 	/**
       
   871 	@internalTechnology
       
   872 	@test
       
   873 	*/
       
   874 	EMediaHalGetDataOutPagingBenchmark,
       
   875 
       
   876 	/**
       
   877 	@internalTechnology
       
   878 	@test
       
   879 	*/
       
   880 	EMediaHalGetPagingInfo,
       
   881 	};
       
   882 
       
   883 
       
   884 
       
   885 
       
   886 /**
       
   887 @publishedPartner
       
   888 @released
       
   889 
       
   890 The set of function-ids that are  associated with the EHalGroupPower
       
   891 HAL group.
       
   892 
       
   893 Each enum value represents a specific aspect of power handling on the device.
       
   894 
       
   895 @see EHalGroupPower
       
   896 */
       
   897 enum TPowerHalFunction
       
   898 	{
       
   899 	
       
   900 	/**
       
   901 	This is used internally by Symbian
       
   902 	*/
       
   903 	EPowerHalOnOffInfo,
       
   904 	
       
   905 	
       
   906 	/**
       
   907 	This is not currently used.
       
   908 	*/
       
   909 	EPowerHalSupplyInfo,
       
   910 
       
   911 
       
   912 	/**
       
   913 	This is not currently used.
       
   914 	
       
   915 	@capability PowerMgmt
       
   916 	*/
       
   917 	EPowerHalSetAutoSwitchOffBehavior,
       
   918     
       
   919     
       
   920     /**
       
   921     This is not currently used.
       
   922     */
       
   923 	EPowerHalAutoSwitchOffBehavior,
       
   924 
       
   925 
       
   926 	/**
       
   927 	This is not currently used.
       
   928 	
       
   929 	@capability PowerMgmt
       
   930 	*/
       
   931 	EPowerHalSetAutoSwitchOffTime,
       
   932 
       
   933 
       
   934     /**
       
   935     This is not currently used.
       
   936     */
       
   937 	EPowerHalAutoSwitchOffTime,
       
   938 
       
   939 
       
   940 	/**
       
   941 	This is not currently used.
       
   942 	
       
   943 	@capability PowerMgmt
       
   944 	*/
       
   945 	EPowerHalResetAutoSwitchOffTimer,
       
   946 
       
   947 
       
   948 	/** 
       
   949 	Switches the device off.
       
   950 	
       
   951 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   952 	
       
   953 	- TInt aFunction : This enum value.
       
   954 	    
       
   955     - TAny* a1 : NULL.
       
   956 									
       
   957 	- TAny* a2 : NULL.
       
   958 	
       
   959 	@capability PowerMgmt
       
   960 	*/
       
   961 	EPowerHalSwitchOff,
       
   962 
       
   963 
       
   964 	/**
       
   965 	Sets whether touching the screen with a pen or stylus will cause
       
   966     the device to switch on.
       
   967     	
       
   968 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   969 	
       
   970 	- TInt aFunction : This enum value.
       
   971 	    
       
   972     - TAny* a1 : A TBool that needs to be set to ETrue (if touching the screen
       
   973     is to cause a power on), or EFalse (if touching the screen is not to cause
       
   974     a power on).
       
   975 									
       
   976 	- TAny* a2 : NULL.
       
   977 
       
   978 	@capability WriteDeviceData
       
   979 	*/
       
   980 	EPowerHalSetPointerSwitchesOn,
       
   981 
       
   982 
       
   983     /**
       
   984     Tests whether touching the screen with a pen or stylus will cause
       
   985     the device to switch on.
       
   986     
       
   987     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
   988 	
       
   989 	- TInt aFunction : This enum value.
       
   990 	    
       
   991     - TAny* a1 : A TBool into which the HAL handler puts ETrue (if touching
       
   992     the screen will cause a power on), or EFalse (if touching the screen will
       
   993     not cause a power on).
       
   994 									
       
   995 	- TAny* a2 : NULL.
       
   996     */
       
   997 	EPowerHalPointerSwitchesOn,
       
   998 
       
   999 
       
  1000 	/**
       
  1001 	Sets whether the opening of a 'device case' will cause
       
  1002     the device to switch on.
       
  1003     
       
  1004 	Note that the meaning attached to a 'device case' depends on the hardware.
       
  1005 	
       
  1006 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1007 	
       
  1008 	- TInt aFunction : This enum value.
       
  1009 	    
       
  1010     - TAny* a1 : A TBool that needs to be set to ETrue (if opening
       
  1011     the case is to cause a power on), or EFalse (if opening
       
  1012     the case is not to cause a power on).
       
  1013 									
       
  1014 	- TAny* a2 : NULL.
       
  1015 
       
  1016 	@capability WriteDeviceData
       
  1017 	*/
       
  1018 	EPowerHalSetCaseOpenSwitchesOn,
       
  1019 
       
  1020 
       
  1021     /**
       
  1022     Tests whether the opening of a 'device case' will cause
       
  1023     the device to switch on.
       
  1024     
       
  1025     Note that the meaning attached to a 'device case' depends on the hardware.
       
  1026     
       
  1027     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1028 	
       
  1029 	- TInt aFunction : This enum value.
       
  1030 	    
       
  1031     - TAny* a1 : A TBool into which the HAL handler puts ETrue (if opening
       
  1032     the case will cause a power on), or EFalse (if opening
       
  1033     the case will not cause a power on).
       
  1034 									
       
  1035 	- TAny* a2 : NULL.
       
  1036     */
       
  1037 	EPowerHalCaseOpenSwitchesOn,
       
  1038 
       
  1039 
       
  1040 	/**
       
  1041 	Sets whether the closing of a 'device case' will cause
       
  1042     the device to switch off.
       
  1043     
       
  1044 	Note that the meaning attached to a 'device case' depends on the hardware.
       
  1045 	
       
  1046 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1047 	
       
  1048 	- TInt aFunction : This enum value.
       
  1049 	    
       
  1050     - TAny* a1 : A TBool that needs to be set to ETrue (if closing
       
  1051     the case is to cause a power off), or EFalse (if closing
       
  1052     the case is not to cause a power off).
       
  1053 									
       
  1054 	- TAny* a2 : NULL.
       
  1055 	
       
  1056 	@capability WriteDeviceData
       
  1057 	*/
       
  1058 	EPowerHalSetCaseCloseSwitchesOff,
       
  1059     
       
  1060     
       
  1061     /**
       
  1062     Tests whether the closing of a 'device case' will cause
       
  1063     the device to switch off.
       
  1064     
       
  1065     Note that the meaning attached to a 'device case' depends on the hardware.
       
  1066     
       
  1067     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1068 	
       
  1069 	- TInt aFunction : This enum value.
       
  1070 	    
       
  1071     - TAny* a1 : A TBool into which the HAL handler puts ETrue (if closing
       
  1072     the case will cause a power off), or EFalse (if closing
       
  1073     the case will not cause a power off).
       
  1074 									
       
  1075 	- TAny* a2 : NULL.
       
  1076 	*/
       
  1077 	EPowerHalCaseCloseSwitchesOff,
       
  1078 
       
  1079 
       
  1080 	/**
       
  1081 	This is not currently used.
       
  1082 	
       
  1083 	@capability PowerMgmt
       
  1084 	*/
       
  1085 	EPowerHalSetBatteryType,
       
  1086     
       
  1087     
       
  1088     /**
       
  1089     This is not currently used.
       
  1090     */
       
  1091 	EPowerHalBatteryType,
       
  1092 
       
  1093 
       
  1094 	/**
       
  1095 	This is not currently used.
       
  1096 	
       
  1097 	@capability PowerMgmt
       
  1098 	*/
       
  1099 	EPowerHalSetBatteryCapacity,
       
  1100 
       
  1101 
       
  1102     /**
       
  1103     This is not currently used.
       
  1104     */
       
  1105 	EPowerHalBatteryCapacity,
       
  1106 
       
  1107 
       
  1108     /**
       
  1109     This is not currently used.
       
  1110     */
       
  1111 	EPowerHalAutoSwitchOffType,
       
  1112 	
       
  1113 	
       
  1114 	/**
       
  1115     This is used internally by Symbian.
       
  1116 	*/
       
  1117 	EPowerHalTestBootSequence,
       
  1118 
       
  1119 	
       
  1120 	/**
       
  1121     Tests whether a backup power supply is present or not.
       
  1122     
       
  1123     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1124 	
       
  1125 	- TInt aFunction : This enum value.
       
  1126 	    
       
  1127     - TAny* a1 : A TBool into which the HAL handler puts ETrue (if backup 
       
  1128     power is present), or EFalse (if backup power is not present).
       
  1129 									
       
  1130 	- TAny* a2 : NULL.
       
  1131 	*/
       
  1132 	EPowerHalBackupPresent,
       
  1133 
       
  1134 	
       
  1135 	/**
       
  1136     Tests whether accessory power is present or not.
       
  1137     	
       
  1138 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1139 	
       
  1140 	- TInt aFunction : This enum value.
       
  1141 	    
       
  1142     - TAny* a1 : A TBool into which the HAL handler puts ETrue (if accessory 
       
  1143     power is present), or EFalse (if accessory power is not present).
       
  1144 									
       
  1145 	- TAny* a2 : NULL.
       
  1146 	*/
       
  1147 	EPowerHalAcessoryPowerPresent,
       
  1148 	};
       
  1149 
       
  1150 
       
  1151 
       
  1152 
       
  1153 /**
       
  1154 @publishedPartner
       
  1155 @released
       
  1156 
       
  1157 The set of function-ids that are  associated with the EHalGroupDisplay
       
  1158 HAL group.
       
  1159 
       
  1160 Each enum value represents a specific characteristic of the hardware display,
       
  1161 i.e. the screen or the LCD, and is passed as the second parameter to
       
  1162 the HAL handler function dealing with this group.
       
  1163  
       
  1164 @see EHalGroupDisplay
       
  1165 */
       
  1166 enum TDisplayHalFunction
       
  1167 	{
       
  1168 	
       
  1169 	/**
       
  1170 	Gets the screen display properties.
       
  1171 	
       
  1172 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1173 
       
  1174     - TInt aFunction : This enum value.
       
  1175 	
       
  1176 	- TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
       
  1177 	TScreenInfoV01 structure. The HAL function needs to fill the members of
       
  1178 	this structure with the appropriate information.
       
  1179 	
       
  1180 	- TAny* a2 : NULL.
       
  1181 	
       
  1182 	For example:
       
  1183 	@code
       
  1184 	...
       
  1185 	case EDisplayHalScreenInfo:
       
  1186 	    TPckgBuf<TScreenInfoV01> vPckg;
       
  1187 	    // Fill details
       
  1188 	    Kern::InfoCopy(*(TDes8*)a1,vPckg);
       
  1189 	...
       
  1190 	@endcode
       
  1191 	
       
  1192 	@see TScreenInfoV01
       
  1193     @see TPckgBuf
       
  1194 	*/
       
  1195 	EDisplayHalScreenInfo,
       
  1196 	
       
  1197 	
       
  1198 	/**
       
  1199 	Registers whether it is the Window Server's responsibility to turn
       
  1200 	the screen display on or off.
       
  1201 	
       
  1202 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1203 	
       
  1204 	- TInt aFunction : This enum value.
       
  1205 	
       
  1206 	- TAny* a1 : This is a TBool value that needs to be set to ETrue or EFalse.
       
  1207 	
       
  1208 	- TAny* a2 : NULL.
       
  1209 	
       
  1210 	For example:
       
  1211 	@code
       
  1212 	...
       
  1213 	case EDisplayHalWsRegisterSwitchOnScreenHandling:
       
  1214 	    iWsSwitchOnScreen=(TBool)a1;
       
  1215 	...
       
  1216 	@endcode
       
  1217 	
       
  1218 	@see TBool
       
  1219 	*/
       
  1220 	EDisplayHalWsRegisterSwitchOnScreenHandling,
       
  1221 	
       
  1222 	
       
  1223 	/**
       
  1224 	Requests that the Window Server turn the screen display on.
       
  1225 	
       
  1226 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1227 	
       
  1228 	- TInt aFunction : This enum value.
       
  1229 	
       
  1230 	- TAny* a1 : NULL
       
  1231 		
       
  1232 	- TAny* a2 : NULL
       
  1233 	*/
       
  1234 	EDisplayHalWsSwitchOnScreen,
       
  1235 	
       
  1236 	
       
  1237 	/**
       
  1238 	Gets the maximum screen display contrast value.
       
  1239 	
       
  1240 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1241 	
       
  1242 	- TInt aFunction : This enum value.
       
  1243 	
       
  1244 	- TAny* a1 : A TInt value into which the HAL handler puts the maximum
       
  1245 	display contrast value.
       
  1246 		
       
  1247 	- TAny* a2 : NULL
       
  1248 	*/
       
  1249 	EDisplayHalMaxDisplayContrast,
       
  1250 
       
  1251 
       
  1252 	/**
       
  1253 	Sets the screen display contrast value.
       
  1254 	
       
  1255 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1256 	
       
  1257 	- TInt aFunction : This enum value.
       
  1258 	
       
  1259 	- TAny* a1 : A TInt value containing the display contrast value.
       
  1260 	Typically, this needs to lie within a range that is valid for the device.
       
  1261 			
       
  1262 	- TAny* a2 : NULL
       
  1263 	
       
  1264 	@capability WriteDeviceData 
       
  1265 	*/
       
  1266 	EDisplayHalSetDisplayContrast,
       
  1267     
       
  1268     
       
  1269     /**
       
  1270     Gets the screen display's current contrast value.
       
  1271     
       
  1272     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1273 	
       
  1274 	- TInt aFunction : This enum value.
       
  1275 	
       
  1276 	- TAny* a1 : A TInt value into which the HAL handler puts the
       
  1277 	display contrast value.
       
  1278 			
       
  1279 	- TAny* a2 : NULL
       
  1280 	*/
       
  1281 	EDisplayHalDisplayContrast,
       
  1282 
       
  1283 
       
  1284 	/**
       
  1285 	Sets the backlight behaviour.
       
  1286 	
       
  1287 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1288 	
       
  1289 	- TInt aFunction : This enum value.
       
  1290 	
       
  1291 	- TAny* a1 : Not specified; depends on the manufacturer's implementation.
       
  1292 				
       
  1293 	- TAny* a2 : Not specified; depends on the manufacturer's implementation.
       
  1294 	
       
  1295 	@capability WriteDeviceData
       
  1296 	*/
       
  1297 	EDisplayHalSetBacklightBehavior,
       
  1298 
       
  1299 
       
  1300 	/**
       
  1301 	Gets information about the backlight behaviour.
       
  1302 	
       
  1303 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1304 	
       
  1305 	- TInt aFunction : This enum value.
       
  1306 	
       
  1307 	- TAny* a1 : Not specified; depends on the manufacturer's implementation.
       
  1308 				
       
  1309 	- TAny* a2 : Not specified; depends on the manufacturer's implementation.
       
  1310 	*/
       
  1311 	EDisplayHalBacklightBehavior,
       
  1312 
       
  1313 
       
  1314 	/**
       
  1315 	Sets the backlight timeout value, i.e. the length of time that the backlight
       
  1316 	will stay on.
       
  1317 	
       
  1318 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1319 	
       
  1320 	- TInt aFunction : This enum value.
       
  1321 	
       
  1322 	- TAny* a1 : Not specified; depends on the manufacturer's implementation.
       
  1323 				
       
  1324 	- TAny* a2 : Not specified; depends on the manufacturer's implementation.
       
  1325 	
       
  1326 	@capability WriteDeviceData
       
  1327 	*/
       
  1328 	EDisplayHalSetBacklightOnTime,
       
  1329 
       
  1330 
       
  1331     /**
       
  1332     Gets information about the backlight timeout value, i.e. the length
       
  1333     of time that the backlight will stay on.
       
  1334     
       
  1335     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1336 	
       
  1337 	- TInt aFunction : This enum value.
       
  1338 	
       
  1339 	- TAny* a1 : Not specified; depends on the manufacturer's implementation.
       
  1340 				
       
  1341 	- TAny* a2 : Not specified; depends on the manufacturer's implementation.
       
  1342     */
       
  1343 	EDisplayHalBacklightOnTime,
       
  1344 
       
  1345 
       
  1346 	/**
       
  1347 	Sets the backlight on or off.
       
  1348 	
       
  1349 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1350 	
       
  1351 	- TInt aFunction : This enum value.
       
  1352 	
       
  1353     - TAny* a1 : A TBool that needs to be set to ETrue or EFalse.
       
  1354 			
       
  1355 	- TAny* a2 : NULL
       
  1356 	
       
  1357 	@capability WriteDeviceData
       
  1358 	*/
       
  1359 	EDisplayHalSetBacklightOn,
       
  1360 
       
  1361 
       
  1362 	/**
       
  1363 	Gets the current state of the backlight.
       
  1364 	
       
  1365 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1366 	
       
  1367 	- TInt aFunction : This enum value.
       
  1368 	
       
  1369     - TAny* a1 : A TBool into which the HAL handler
       
  1370     puts ETrue (for On) or EFalse (for Off).
       
  1371 				
       
  1372 	- TAny* a2 : NULL
       
  1373 	*/
       
  1374 	EDisplayHalBacklightOn,
       
  1375 	
       
  1376 	
       
  1377 	/**
       
  1378 	Gets the screen display's maximum brightness value.
       
  1379 	
       
  1380 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1381 	
       
  1382 	- TInt aFunction : This enum value.
       
  1383 	
       
  1384 	- TAny* a1 : A TInt value into which the HAL handler puts the
       
  1385 	maximum brightness value.
       
  1386 			
       
  1387 	- TAny* a2 : NULL
       
  1388 	*/
       
  1389 	EDisplayHalMaxDisplayBrightness,
       
  1390 
       
  1391 
       
  1392 	/**
       
  1393 	Sets the screen display's brightness value.
       
  1394 	
       
  1395 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1396 	
       
  1397 	- TInt aFunction : This enum value.
       
  1398 	
       
  1399 	- TAny* a1 : A TInt value containing the brightness value.
       
  1400 	Typically, this needs to lie within a range that is valid for the device.
       
  1401 			
       
  1402 	- TAny* a2 : NULL
       
  1403 	
       
  1404 	@capability WriteDeviceData
       
  1405 	*/
       
  1406 	EDisplayHalSetDisplayBrightness,
       
  1407 
       
  1408 
       
  1409     /**
       
  1410     Gets the screen display's current brightness value.
       
  1411 	
       
  1412 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1413 	
       
  1414 	- TInt aFunction : This enum value.
       
  1415 	
       
  1416 	- TAny* a1 : A TInt value into which the HAL handler puts the
       
  1417 	brightness value.
       
  1418 			
       
  1419 	- TAny* a2 : NULL
       
  1420     */
       
  1421 	EDisplayHalDisplayBrightness,
       
  1422 //
       
  1423 
       
  1424     /**
       
  1425     Gets the number of available display modes.
       
  1426     
       
  1427     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1428 	
       
  1429 	- TInt aFunction : This enum value.
       
  1430 	
       
  1431 	- TAny* a1 : A TInt value into which the HAL handler puts the
       
  1432 	number of display modes value.
       
  1433 			
       
  1434 	- TAny* a2 : NULL
       
  1435     */
       
  1436 	EDisplayHalModeCount,
       
  1437 
       
  1438 
       
  1439 	/**
       
  1440 	Sets the display mode.
       
  1441 	
       
  1442 	This will normally update the information maintained by the screen driver
       
  1443 	in the form of a TScreenInfoV01 struct.
       
  1444 		
       
  1445 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1446 	
       
  1447 	- TInt aFunction : This enum value.
       
  1448 	
       
  1449 	- TAny* a1 : A TInt value containing a number representing the display mode.
       
  1450 	Typically, this needs to lie within a range that is valid for the device.
       
  1451 	For example, the value usually needs to be positive, and be less than
       
  1452 	the number of display modes.
       
  1453 			
       
  1454 	- TAny* a2 : NULL
       
  1455 	
       
  1456 	@capability MultimediaDD
       
  1457 	
       
  1458 	@see TScreenInfoV01
       
  1459 	*/
       
  1460 	EDisplayHalSetMode,
       
  1461 
       
  1462 
       
  1463     /**
       
  1464     Gets the current screen display mode.
       
  1465     
       
  1466     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1467     
       
  1468     - TInt aFunction : This enum value.
       
  1469 	
       
  1470 	- TAny* a1 : A TInt value into which the HAL handler puts the 
       
  1471 	the current display mode value.
       
  1472 			
       
  1473 	- TAny* a2 : NULL
       
  1474     */
       
  1475 	EDisplayHalMode,
       
  1476 
       
  1477 
       
  1478 	/**
       
  1479 	Sets a colour value for the specified palette entry. 
       
  1480 	
       
  1481 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1482     
       
  1483     - TInt aFunction : This enum value.
       
  1484 	
       
  1485 	- TAny* a1 : A TInt value that identifies the palette entry. The value
       
  1486 	occupies the junior 8 bits of the integer. The senior 24 bits are all 0.
       
  1487 					
       
  1488 	- TAny* a2 : A TInt value containing the colour value; it represents
       
  1489 	a standard Symbian OS RGB colour value, and occupies the junior 24 bits
       
  1490 	of the integer. The senior 8 bits are not defined.
       
  1491 	
       
  1492 	@capability MultimediaDD
       
  1493 	*/
       
  1494 	EDisplayHalSetPaletteEntry,
       
  1495     
       
  1496     
       
  1497     /**
       
  1498     Gets the colour value for the specified palette entry.
       
  1499     
       
  1500     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1501     
       
  1502     - TInt aFunction : This enum value.
       
  1503 	
       
  1504 	- TAny* a1 : A TInt value that identifies the palette entry. The value
       
  1505 	is expected to occupy the junior 8 bits of the integer. The senior 24 bits
       
  1506 	are not defined.
       
  1507 					
       
  1508 	- TAny* a2 : On return from the HAL function, a TInt value containing
       
  1509     the colour value. The value occupies the junior 24 bits of the integer.
       
  1510     The senior 8 bits are not defined.
       
  1511     */
       
  1512 	EDisplayHalPaletteEntry,
       
  1513 
       
  1514 
       
  1515 	/**
       
  1516 	Sets the screen display on or off.
       
  1517 
       
  1518     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1519     
       
  1520     - TInt aFunction : This enum value.
       
  1521 	
       
  1522 	- TAny* a1 : A TBool that needs to be set to ETrue (for On),
       
  1523 	or EFalse (for Off).
       
  1524 					
       
  1525 	- TAny* a2 : NULL.
       
  1526 	
       
  1527 	@capability PowerMgmt
       
  1528 	*/
       
  1529 	EDisplayHalSetState,
       
  1530 
       
  1531 
       
  1532     /**
       
  1533     Gets the state of the screen display, i.e. whether the display is on or off.
       
  1534     
       
  1535     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1536     
       
  1537     - TInt aFunction : This enum value.
       
  1538 	
       
  1539     - TAny* a1 : A TBool into which the HAL handler puts ETrue (for On),
       
  1540     or EFalse (for Off).
       
  1541 									
       
  1542 	- TAny* a2 : NULL.
       
  1543     */
       
  1544 	EDisplayHalState,
       
  1545 	
       
  1546 	
       
  1547 	/**
       
  1548 	Gets the maximum number of colours that the screen display supports.
       
  1549 	
       
  1550 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1551 	
       
  1552 	- TInt aFunction : This enum value.
       
  1553 	
       
  1554 	- TAny* a1 : A TInt value into which the HAL handler puts the maximum
       
  1555 	number of colours.
       
  1556 		
       
  1557 	- TAny* a2 : NULL
       
  1558 	*/
       
  1559 	EDisplayHalColors,
       
  1560 	
       
  1561 	
       
  1562 	/**
       
  1563 	Gets information about the current display mode.
       
  1564 	
       
  1565 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1566 	
       
  1567 	- TInt aFunction : This enum value.
       
  1568 	
       
  1569 	- TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
       
  1570 	TVideoInfoV01 structure. The HAL function needs to fill the members of
       
  1571 	this structure with the appropriate information.
       
  1572 	
       
  1573     - TAny* a2 : NULL.
       
  1574 		
       
  1575 	@see TVideoInfoV01
       
  1576     @see TPckgBuf
       
  1577 	*/
       
  1578 	EDisplayHalCurrentModeInfo,
       
  1579 	
       
  1580 	
       
  1581 	/**
       
  1582 	Gets information about the specified display mode.
       
  1583 	
       
  1584 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1585 	
       
  1586 	- TInt aFunction : This enum value.
       
  1587 	
       
  1588 	- TAny* a1 : A TInt value containing the number of the display mode for which
       
  1589 	information is to be fetched.
       
  1590 	
       
  1591 	- TAny* a2 : This is a pointer to a package buffer (TPckgBuf) containing a
       
  1592 	TVideoInfoV01 structure. The HAL function needs to fill the members of
       
  1593 	this structure with the appropriate information.
       
  1594 			
       
  1595 	@see TVideoInfoV01
       
  1596     @see TPckgBuf
       
  1597 	*/
       
  1598 	EDisplayHalSpecifiedModeInfo,
       
  1599 
       
  1600 //	EDisplaySwitchOffScreen,
       
  1601 
       
  1602 
       
  1603     /**
       
  1604     Fills/copies an area of the screen display with a rectangle of a specified colour.
       
  1605     
       
  1606     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1607 	
       
  1608 	- TInt aFunction : This enum value.
       
  1609 			
       
  1610 	- TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
       
  1611 	SRectOpInfo structure. The structure contains the information that
       
  1612 	is needed for the operation.
       
  1613     
       
  1614     - TAny* a1 : NULL.
       
  1615     
       
  1616 	@see SRectOpInfo
       
  1617     @see TPckgBuf
       
  1618     */
       
  1619 	EDisplayHalBlockFill,
       
  1620 	
       
  1621 	
       
  1622     /**
       
  1623     Fills/copies an area of the screen display with a rectangle of a specified colour.
       
  1624     
       
  1625     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1626 	
       
  1627 	- TInt aFunction : This enum value.
       
  1628 			
       
  1629 	- TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
       
  1630 	SRectOpInfo structure. The structure contains the information that
       
  1631 	is needed for the operation.
       
  1632     
       
  1633     - TAny* a1 : NULL.
       
  1634     
       
  1635 	@see SRectOpInfo
       
  1636     @see TPckgBuf
       
  1637     */
       
  1638 	EDisplayHalBlockCopy,
       
  1639 	
       
  1640 	
       
  1641 	/**
       
  1642 	Tests whether the screen display is secure.
       
  1643 	
       
  1644 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1645 	
       
  1646 	- TInt aFunction : This enum value.
       
  1647 	    
       
  1648     - TAny* a1 : A TBool into which the HAL handler puts ETrue (for secure mode),
       
  1649     or EFalse (for non-secure mode).
       
  1650 									
       
  1651 	- TAny* a2 : NULL.
       
  1652 	*/
       
  1653 	EDisplayHalSecure,
       
  1654 
       
  1655 
       
  1656 	/**
       
  1657     Sets the screen display into secure or non-secure mode.
       
  1658     
       
  1659     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1660 	
       
  1661 	- TInt aFunction : This enum value.
       
  1662 	
       
  1663 	- TAny* a1 : A TBool that needs to be set to ETrue (for secure mode),
       
  1664 	or EFalse (for non-secure mode).
       
  1665 									
       
  1666 	- TAny* a2 : NULL.
       
  1667 	
       
  1668 	@capability MultimediaDD
       
  1669 	*/
       
  1670 	EDisplayHalSetSecure,
       
  1671 
       
  1672 	
       
  1673 	/**
       
  1674 	Gets the address of the DSA buffer
       
  1675 	
       
  1676 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1677 	
       
  1678 	- TInt aFunction : This enum value.
       
  1679 	
       
  1680 	- TAny* a1 : A TInt value into which the HAL handler puts the address
       
  1681 		
       
  1682 	- TAny* a2 : NULL
       
  1683 	*/
       
  1684 	EDisplayHalGetDisplayMemoryAddress,
       
  1685 	/**
       
  1686 	Gets a handle to the DSA buffer memory
       
  1687 	
       
  1688 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1689 	
       
  1690 	- TInt aFunction : This enum value.
       
  1691 	
       
  1692 	- TAny* a1 : A TInt value into which the HAL handler puts the handle value
       
  1693 		
       
  1694 	- TAny* a2 : NULL
       
  1695 	*/
       
  1696 	EDisplayHalGetDisplayMemoryHandle,
       
  1697 	
       
  1698 	
       
  1699 	/**
       
  1700     Ask how many resolutions there are on a specific screen
       
  1701     
       
  1702     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1703 	
       
  1704 	- TInt aFunction : This enum value.
       
  1705 	
       
  1706 	- TAny* a1 : A TInt reference to pass back the number of resolutions.
       
  1707 									
       
  1708 	- TAny* a2 : NULL.
       
  1709 	
       
  1710 	@capability MultimediaDD
       
  1711 	*/
       
  1712 	EDisplayHalNumberOfResolutions,
       
  1713 	
       
  1714 	
       
  1715 	/**
       
  1716     Gets information on a specific configuration for a particular screen
       
  1717     
       
  1718     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1719 	
       
  1720 	- TInt aFunction : This enum value.
       
  1721 	
       
  1722 	- TAny* a1 : A TInt configuration index to get back.
       
  1723 									
       
  1724 	- TAny* a2 : A TVideoInfoV01 descriptor to get the info back.
       
  1725 	
       
  1726 	@capability MultimediaDD
       
  1727 	*/
       
  1728 	EDisplayHalSpecificScreenInfo,
       
  1729 	
       
  1730 	
       
  1731 	/**
       
  1732     Gets info on the current configuration for a particular screen
       
  1733     
       
  1734     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1735 	
       
  1736 	- TInt aFunction : This enum value.
       
  1737 	
       
  1738 	- TAny* a1 : A TVideoInfoV01 descriptor to get the info back.
       
  1739 									
       
  1740 	- TAny* a2 : NULL.
       
  1741 	
       
  1742 	@capability MultimediaDD
       
  1743 	*/
       
  1744 	EDisplayHalCurrentScreenInfo,
       
  1745 
       
  1746 	
       
  1747 	/**
       
  1748     Sets the screen display into a predefined state.
       
  1749     
       
  1750     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1751 	
       
  1752 	- TInt aFunction : This enum value.
       
  1753 	
       
  1754 	- TAny* a1 : A TInt that is one of the value of TDisplayState enum
       
  1755 											
       
  1756 	- TAny* a2 : NULL.
       
  1757 	
       
  1758 	@capability MultimediaDD
       
  1759 	*/
       
  1760 	EDisplayHalSetDisplayState,
       
  1761 	
       
  1762 	/**
       
  1763     Gets the spinner of screen display state.
       
  1764     
       
  1765     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1766 	
       
  1767 	- TInt aFunction : This enum value.
       
  1768 	
       
  1769 	- TAny* a1 : A TInt which is set to the spinner value on return
       
  1770 											
       
  1771 	- TAny* a2 : NULL.
       
  1772 	
       
  1773 	@capability MultimediaDD
       
  1774 	*/
       
  1775 	EDisplayHalGetStateSpinner,
       
  1776 	};
       
  1777 
       
  1778 /**
       
  1779 @internalComponent
       
  1780 @test
       
  1781 The set of display state ids that are associated with EDisplayHalSetDisplayState
       
  1782 
       
  1783 @see EDisplayHalSetDisplayState
       
  1784 */
       
  1785 
       
  1786 enum TDisplayConnectState
       
  1787 	{
       
  1788 	ENormalResolution,
       
  1789 	ENoResolution,
       
  1790 	EDisconnect,
       
  1791 	ESingleResolution,
       
  1792 	EDisplayStateTooHigh
       
  1793 	};
       
  1794 
       
  1795 /**
       
  1796 @publishedPartner
       
  1797 @released
       
  1798 
       
  1799 The set of function-ids that are  associated with the EHalGroupDigitiser
       
  1800 HAL group.
       
  1801 
       
  1802 Each enum value represents a specific characteristic of the digitiser,
       
  1803 and is passed as the second parameter to the HAL handler function
       
  1804 dealing with this group.
       
  1805 
       
  1806 @see EHalGroupDigitiser
       
  1807 */
       
  1808 enum TDigitiserHalFunction
       
  1809 	{
       
  1810 	
       
  1811 	/**
       
  1812 	Sets the calibration data (i.e. the values of the digitiser to
       
  1813 	screen constants) for the digitiser device.
       
  1814 	
       
  1815 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1816 	
       
  1817 	- TInt aFunction : This enum value.
       
  1818 	
       
  1819     - TAny* a1 : A pointer to a TDigitizerCalibration object.
       
  1820 				
       
  1821 	- TAny* a2 : NULL	
       
  1822 	
       
  1823 	@see TDigitizerCalibration
       
  1824 	
       
  1825 	@capability WriteDeviceData
       
  1826 	*/
       
  1827 	EDigitiserHalSetXYInputCalibration,
       
  1828 
       
  1829 
       
  1830     /**
       
  1831     Gets the calibration data (i.e. the values of the digitiser to
       
  1832 	screen constants) for the digitiser device.
       
  1833 	
       
  1834 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1835 	
       
  1836 	- TInt aFunction : This enum value.
       
  1837 	
       
  1838     - TAny* a1 : A pointer to a TDigitizerCalibration object; the HAL function
       
  1839     needs to fill the members of this structure with
       
  1840     the appropriate information.
       
  1841 				
       
  1842 	- TAny* a2 : NULL	
       
  1843 	
       
  1844 	@see TDigitizerCalibration
       
  1845     */
       
  1846 	EDigitiserHalCalibrationPoints,
       
  1847 
       
  1848 
       
  1849     /**
       
  1850     Saves the calibration data (i.e. the values of the digitiser to
       
  1851 	screen constants) for the digitiser device in a persistent memory area so
       
  1852 	that they can be restored after a power cycle.
       
  1853 	
       
  1854 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1855 	
       
  1856 	- TInt aFunction : This enum value.
       
  1857 	
       
  1858     - TAny* a1 : NULL.
       
  1859 				
       
  1860 	- TAny* a2 : NULL	
       
  1861     */
       
  1862 	EDigitiserHalSaveXYInputCalibration,
       
  1863 
       
  1864 
       
  1865 	/**
       
  1866 	Restores the calibration data (i.e. the values of the digitiser to
       
  1867 	screen constants) for the digitiser device from a persistent memory area so
       
  1868 	that they can be restored after a power cycle.
       
  1869 
       
  1870     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1871 	
       
  1872 	- TInt aFunction : This enum value.
       
  1873 	
       
  1874     - TAny* a1 : NULL.
       
  1875 				
       
  1876 	- TAny* a2 : NULL	
       
  1877 	
       
  1878 	@capability WriteDeviceData
       
  1879 	*/
       
  1880 	EDigitiserHalRestoreXYInputCalibration,
       
  1881 
       
  1882 
       
  1883     /**
       
  1884     Gets digitiser information as defined by the content of
       
  1885     a TDigitiserInfoV01 (or TDigitiserInfoV02) struct.
       
  1886     
       
  1887     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1888 	
       
  1889 	- TInt aFunction : This enum value.
       
  1890 	
       
  1891    	- TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
       
  1892 	TDigitiserInfoV01 (or TDigitiserInfoV02) structure. The HAL function needs 
       
  1893 	to fill the members of this structure with the appropriate information.
       
  1894 				
       
  1895 	- TAny* a2 : NULL	
       
  1896     
       
  1897     @see TPckgBuf
       
  1898     @see TDigitiserInfoV01
       
  1899     */
       
  1900 	EDigitiserHalXYInfo,
       
  1901 
       
  1902 
       
  1903     /**
       
  1904     Tests whether the digitiser is on or off.
       
  1905     
       
  1906     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1907 	
       
  1908 	- TInt aFunction : This enum value.
       
  1909 	
       
  1910    	- TAny* a1 : A TBool value that needs to be set to ETrue (On), or EFalse (Off).
       
  1911 	
       
  1912 	- TAny* a2 : NULL	
       
  1913     */
       
  1914 	EDigitiserHalXYState,
       
  1915 
       
  1916 
       
  1917 	/**
       
  1918 	Sets the digitiser either on or off.
       
  1919 	
       
  1920 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1921 	
       
  1922 	- TInt aFunction : This enum value.
       
  1923 	
       
  1924 	- TAny* a1 : A TBool that needs to be set to ETrue (On), or EFalse (Off).
       
  1925 	
       
  1926 	- TAny* a2 : NULL	
       
  1927 	
       
  1928 	@capability PowerMgmt
       
  1929 	*/
       
  1930 	EDigitiserHalSetXYState,
       
  1931 
       
  1932     /**
       
  1933 	Checks whether the pointing device supports 3rd dimension.
       
  1934     
       
  1935     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1936 	
       
  1937 	- TInt aFunction : This enum value.
       
  1938 	
       
  1939    	- TAny* a1 : A TBool value that needs to be set to ETrue (3D supported), or EFalse (3D not supported).
       
  1940 	
       
  1941 	- TAny* a2 : NULL	
       
  1942     */
       
  1943 	EDigitiserHal3DPointer,
       
  1944 
       
  1945     /**	
       
  1946     Sets the detection range above the screen.
       
  1947     
       
  1948     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1949 	
       
  1950 	- TInt aFunction : This enum value.
       
  1951 	
       
  1952    	- TAny* a1 : A TInt value that is the detection range in units of distance above the screen.
       
  1953 	
       
  1954 	- TAny* a2 : NULL	
       
  1955     */
       
  1956 	EDigitiserHalSetZRange,
       
  1957     
       
  1958 	/**
       
  1959 	@prototype
       
  1960 	
       
  1961     Sets the  number of pointers it supports on the digitiser.
       
  1962     
       
  1963     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1964 	
       
  1965 	- TInt aFunction : This enum value.
       
  1966 	
       
  1967    	- TAny* a1 : A TInt value that 	sets the number of pointer to be supported by the digitiser driver
       
  1968 	
       
  1969 	- TAny* a2 : NULL	
       
  1970     */
       
  1971 	EDigitiserHalSetNumberOfPointers,
       
  1972 	
       
  1973 	/**
       
  1974 	@prototype
       
  1975 
       
  1976     Gets digitiser information as defined by the content of
       
  1977     a  TDigitiserInfoV02 struct.
       
  1978     
       
  1979     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  1980 	
       
  1981 	- TInt aFunction : This enum value.
       
  1982 	
       
  1983    	- TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
       
  1984 	 TDigitiserInfoV02 structure. The HAL function needs 
       
  1985 	to fill the members of this structure with the appropriate information.
       
  1986 				
       
  1987 	- TAny* a2 : NULL	
       
  1988     
       
  1989     @see TPckgBuf
       
  1990     @see TDigitiserInfoV02
       
  1991     */
       
  1992 	EDigitiserHal3DInfo
       
  1993 
       
  1994 	};
       
  1995 
       
  1996 
       
  1997 
       
  1998 
       
  1999 /**
       
  2000 @publishedPartner
       
  2001 @released
       
  2002 
       
  2003 The set of function-ids that are  associated with the EHalGroupSound
       
  2004 HAL group.
       
  2005 
       
  2006 Each enum value represents a specific characteristic of the sound driver,
       
  2007 and is passed as the second parameter to the HAL handler function
       
  2008 dealing with this group.
       
  2009 
       
  2010 Note that a sound driver in Symbian OS is only maintained for backwards
       
  2011 compatibility with the Psion Series 5MX devices.
       
  2012 
       
  2013 @see EHalGroupSound
       
  2014 */
       
  2015 enum TSoundHalFunction
       
  2016 	{
       
  2017 	/**
       
  2018 	Gets sound driver information.
       
  2019 	
       
  2020 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2021 	
       
  2022 	- TInt aFunction : This enum value.
       
  2023 	    
       
  2024 	- TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
       
  2025     TSoundInfoV1 structure. The HAL function needs to fill the members of
       
  2026 	this structure with the appropriate information.
       
  2027 									
       
  2028 	- TAny* a2 : NULL.
       
  2029 	
       
  2030 	@see TSoundInfoV1
       
  2031     @see TPckgBuf
       
  2032 	*/
       
  2033 	ESoundHalSoundInfo,
       
  2034 
       
  2035 
       
  2036 	/**
       
  2037 	Sets whether a click is to be sounded on a key press.
       
  2038 	
       
  2039 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2040 	
       
  2041 	- TInt aFunction : This enum value.
       
  2042 	    
       
  2043 	- TAny* a1 : A TBool that needs to be set to ETrue (click is to be sounded),
       
  2044 	or EFalse (click is not to be sounded).
       
  2045 									
       
  2046 	- TAny* a2 : NULL.
       
  2047 	
       
  2048 	@capability WriteDeviceData
       
  2049 	*/
       
  2050 	ESoundHalSetKeyClickEnabled,
       
  2051 
       
  2052 
       
  2053 	/**
       
  2054 	Sets whether a click that is to be sounded on a key press, is loud or not.
       
  2055 
       
  2056 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2057 	
       
  2058 	- TInt aFunction : This enum value.
       
  2059 	    
       
  2060 	- TAny* a1 : A TBool that needs to be set to ETrue (click is to be loud),
       
  2061 	or EFalse (click is not to be loud).
       
  2062 									
       
  2063 	- TAny* a2 : NULL.
       
  2064 	
       
  2065 	@capability WriteDeviceData
       
  2066 	*/
       
  2067 	ESoundHalSetKeyClickLoud,
       
  2068 
       
  2069 
       
  2070 	/**
       
  2071 	Sets whether a click is to be sounded when a pointing device touches
       
  2072 	the screen.
       
  2073 
       
  2074 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2075 	
       
  2076 	- TInt aFunction : This enum value.
       
  2077 	    
       
  2078 	- TAny* a1 : A TBool that needs to be set to ETrue (click is to be sounded),
       
  2079 	or EFalse (click is not to be sounded).
       
  2080 									
       
  2081 	- TAny* a2 : NULL.
       
  2082 	
       
  2083 	@capability WriteDeviceData
       
  2084 	*/
       
  2085 	ESoundHalSetPointerClickEnabled,
       
  2086 
       
  2087 
       
  2088 	/**
       
  2089 	Sets whether a click that is to be sounded when a pointing device touches
       
  2090 	the screen, is loud or not.
       
  2091 	
       
  2092 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2093 	
       
  2094 	- TInt aFunction : This enum value.
       
  2095 	    
       
  2096 	- TAny* a1 : A TBool that needs to be set to ETrue (click is to be loud),
       
  2097 	or EFalse (click is not to be loud).
       
  2098 									
       
  2099 	- TAny* a2 : NULL.
       
  2100 	
       
  2101 	@capability WriteDeviceData
       
  2102 	*/
       
  2103 	ESoundHalSetPointerClickLoud,
       
  2104 
       
  2105 
       
  2106 	/**
       
  2107 	Sets whether the beep sound is enabled.
       
  2108 	
       
  2109 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2110 	
       
  2111 	- TInt aFunction : This enum value.
       
  2112 	    
       
  2113 	- TAny* a1 : A TBool that needs to be set to ETrue (beep is enabled),
       
  2114 	or EFalse (beep is not enabled).
       
  2115 									
       
  2116 	- TAny* a2 : NULL.
       
  2117 	
       
  2118 	@capability WriteDeviceData
       
  2119 	*/
       
  2120 	ESoundHalSetBeepEnabled,
       
  2121 
       
  2122 
       
  2123 	/**
       
  2124 	Sets whether the beep sound is to be loud.
       
  2125 	
       
  2126 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2127 	
       
  2128 	- TInt aFunction : This enum value.
       
  2129 	    
       
  2130 	- TAny* a1 : A TBool that needs to be set to ETrue (beep is loud),
       
  2131 	or EFalse (beep is not loud).
       
  2132 									
       
  2133 	- TAny* a2 : NULL.
       
  2134 	
       
  2135 	@capability WriteDeviceData
       
  2136 	*/
       
  2137 	ESoundHalSetBeepLoud,
       
  2138 
       
  2139 
       
  2140 	/**
       
  2141 	Sets whether the sound driver is enabled.
       
  2142 	
       
  2143 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2144 	
       
  2145 	- TInt aFunction : This enum value.
       
  2146 	    
       
  2147 	- TAny* a1 : A TBool that needs to be set to ETrue (driver is enabled),
       
  2148 	or EFalse (driver is not enabled).
       
  2149 									
       
  2150 	- TAny* a2 : NULL.
       
  2151 	
       
  2152 	@capability PowerMgmt
       
  2153 	*/
       
  2154 	ESoundHalSetSoundDriverEnabled,
       
  2155 
       
  2156 
       
  2157 	/**
       
  2158 	Sets whether the sound driver is to generate loud sounds.
       
  2159 	
       
  2160 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2161 	
       
  2162 	- TInt aFunction : This enum value.
       
  2163 	    
       
  2164 	- TAny* a1 : A TBool that needs to be set to ETrue (driver is to generate loud sounds),
       
  2165 	or EFalse (driver is not to generate loud sounds).
       
  2166 									
       
  2167 	- TAny* a2 : NULL.
       
  2168 	
       
  2169 	@capability WriteDeviceData
       
  2170 	*/
       
  2171 	ESoundHalSetSoundDriverLoud,
       
  2172 
       
  2173 
       
  2174 	/**
       
  2175 	Sets whether sound generation is enabled.
       
  2176 	
       
  2177 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2178 	
       
  2179 	- TInt aFunction : This enum value.
       
  2180 	    
       
  2181 	- TAny* a1 : A TBool that needs to be set to ETrue (sound generation is enabled),
       
  2182 	or EFalse (sound generation is not enabled).
       
  2183 									
       
  2184 	- TAny* a2 : NULL.
       
  2185 	
       
  2186 	@capability WriteDeviceData
       
  2187 	*/
       
  2188 	ESoundHalSetSoundEnabled,
       
  2189 
       
  2190 
       
  2191 	/**
       
  2192 	Sets whether generation of key clicks is to be overridden.
       
  2193 	
       
  2194 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2195 	
       
  2196 	- TInt aFunction : This enum value.
       
  2197 	    
       
  2198 	- TAny* a1 : A TBool that needs to be set to ETrue (key clicks to be overridden),
       
  2199 	or EFalse (key clicks not to be overridden).
       
  2200 									
       
  2201 	- TAny* a2 : NULL.
       
  2202 		
       
  2203 	@capability WriteDeviceData
       
  2204 	*/
       
  2205 	ESoundHalSetKeyClickOverridden,
       
  2206 
       
  2207 
       
  2208     /**
       
  2209     Tests whether the generation of key clicks is overridden.
       
  2210     	
       
  2211 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2212 	
       
  2213 	- TInt aFunction : This enum value.
       
  2214 	    
       
  2215 	- TAny* a1 : A TBool into which the HAL handler puts ETrue (key clicks are overridden),
       
  2216 	or EFalse (key clicks are not overridden).
       
  2217 									
       
  2218 	- TAny* a2 : NULL.
       
  2219     */
       
  2220 	ESoundHalKeyClickOverridden,
       
  2221 
       
  2222 
       
  2223     /**
       
  2224     Tests whether a click that is to be sounded on a key press, is loud or not.
       
  2225 
       
  2226 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2227 	
       
  2228 	- TInt aFunction : This enum value.
       
  2229 	    
       
  2230 	- TAny* a1 : A TBool into which the HAL handler puts ETrue (click is loud),
       
  2231 	or EFalse (click is not loud).
       
  2232 									
       
  2233 	- TAny* a2 : NULL.
       
  2234     */
       
  2235 	ESoundHalKeyClickLoud,
       
  2236 
       
  2237 
       
  2238     /**
       
  2239     Tests whether a click is to be sounded on a key press.
       
  2240 	
       
  2241 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2242 	
       
  2243 	- TInt aFunction : This enum value.
       
  2244 	    
       
  2245 	- TAny* a1 : A TBool into which the HAL handler puts ETrue (click is sounded),
       
  2246 	or EFalse (click is not sounded).
       
  2247 									
       
  2248 	- TAny* a2 : NULL.
       
  2249     */
       
  2250 	ESoundHalKeyClickEnabled,
       
  2251 
       
  2252 
       
  2253     /**
       
  2254     Tests whether a click that is to be sounded when a pointing device touches
       
  2255 	the screen, is loud or not.
       
  2256 	
       
  2257 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2258 	
       
  2259 	- TInt aFunction : This enum value.
       
  2260 	    
       
  2261 	- TAny* a1 : A TBool into which the HAL handler puts ETrue (click is loud),
       
  2262 	or EFalse (click is not loud).
       
  2263 									
       
  2264 	- TAny* a2 : NULL.
       
  2265     */
       
  2266 	ESoundHalPointerClickLoud,
       
  2267 
       
  2268 
       
  2269     /**
       
  2270     Tests whether a click is to be sounded when a pointing device touches
       
  2271 	the screen.
       
  2272 
       
  2273 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2274 	
       
  2275 	- TInt aFunction : This enum value.
       
  2276 	    
       
  2277 	- TAny* a1 : A TBool into which teh HAL handler puts ETrue (click is to be sounded),
       
  2278 	or EFalse (click is not to be sounded).
       
  2279 									
       
  2280 	- TAny* a2 : NULL.
       
  2281     */
       
  2282 	ESoundHalPointerClickEnabled,
       
  2283 
       
  2284 
       
  2285     /**
       
  2286     Generates a key click sound.
       
  2287     
       
  2288     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2289 	
       
  2290 	- TInt aFunction : This enum value.
       
  2291 	    
       
  2292 	- TAny* a1 : NULL.
       
  2293 									
       
  2294 	- TAny* a2 : NULL.
       
  2295     */
       
  2296 	ESoundHalKeyClick,
       
  2297 
       
  2298 
       
  2299     /**
       
  2300     Generates a pointer click sound.
       
  2301     
       
  2302     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2303 	
       
  2304 	- TInt aFunction : This enum value.
       
  2305 	    
       
  2306 	- TAny* a1 : NULL.
       
  2307 									
       
  2308 	- TAny* a2 : NULL.
       
  2309     */
       
  2310 	ESoundHalPointerClick,
       
  2311 
       
  2312 
       
  2313     /**
       
  2314     Generates a beep sound.
       
  2315     
       
  2316     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2317 	
       
  2318 	- TInt aFunction : This enum value.
       
  2319 	    
       
  2320 	- TAny* a1 : NULL.
       
  2321 									
       
  2322 	- TAny* a2 : NULL.
       
  2323     */
       
  2324 	ESoundHalBeep,
       
  2325 
       
  2326 
       
  2327     /**
       
  2328     Gets the maximum volume of the key click.
       
  2329     
       
  2330     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2331 	
       
  2332 	- TInt aFunction : This enum value.
       
  2333 	    
       
  2334 	- TAny* a1 : A TInt value into which the HAL handler puts the maximum volume value.
       
  2335 									
       
  2336 	- TAny* a2 : NULL.
       
  2337     */
       
  2338 	ESoundHalKeyClickVolumeMax,
       
  2339 
       
  2340 
       
  2341     /**
       
  2342     Gets the maximum volume of the pointer click.
       
  2343     
       
  2344     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2345 	
       
  2346 	- TInt aFunction : This enum value.
       
  2347 	    
       
  2348 	- TAny* a1 : A TInt value into which the HAL handler puts the maximum volume value.
       
  2349 									
       
  2350 	- TAny* a2 : NULL.
       
  2351     */
       
  2352 	ESoundHalPointerClickVolumeMax,
       
  2353 	};
       
  2354 
       
  2355 
       
  2356 
       
  2357 
       
  2358 /**
       
  2359 @publishedPartner
       
  2360 @released
       
  2361 
       
  2362 The set of function-ids that are  associated with the EHalGroupMouse
       
  2363 HAL group.
       
  2364 
       
  2365 Each enum value represents a specific characteristic of the mouse device,
       
  2366 and is passed as the second parameter to the HAL handler function
       
  2367 dealing with this group.
       
  2368  
       
  2369 @see EHalGroupMouse
       
  2370 */
       
  2371 enum TMouseHalFunction
       
  2372 	{
       
  2373 	
       
  2374 	
       
  2375 	/**
       
  2376 	Tests whether a mouse device is visible.
       
  2377 	
       
  2378 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2379 	
       
  2380 	- TInt aFunction : This enum value.
       
  2381 	
       
  2382     - TAny* a1 : A TBool into which the HAL handler
       
  2383     puts ETrue (for visible) or EFalse (for not-visible).
       
  2384 				
       
  2385 	- TAny* a2 : NULL
       
  2386 	*/
       
  2387 	EMouseHalMouseState,
       
  2388 
       
  2389 
       
  2390 	/**
       
  2391 	Sets the state of the mouse device, i.e. whether it is visible or invisible.
       
  2392 	
       
  2393 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2394 	
       
  2395 	- TInt aFunction : This enum value.
       
  2396 	
       
  2397     - TAny* a1 : A TBool that needs to be set to ETrue (for visible)
       
  2398     or EFalse (for not-visible).
       
  2399 				
       
  2400 	- TAny* a2 : NULL
       
  2401 	
       
  2402 	@capability MultimediaDD
       
  2403 	*/
       
  2404 	EMouseHalSetMouseState,
       
  2405 
       
  2406 
       
  2407     /**
       
  2408     Gets the mouse speed, i.e. how fast the mouse pointer moves.
       
  2409     
       
  2410     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2411 	
       
  2412 	- TInt aFunction : This enum value.
       
  2413 	
       
  2414     - TAny* a1 : A TInt value into which the HAL handler puts the speed value.
       
  2415     This is expected to be a value in the range 0 to 255.
       
  2416 				
       
  2417 	- TAny* a2 : NULL
       
  2418     */
       
  2419 	EMouseHalMouseSpeed,
       
  2420 
       
  2421 
       
  2422 	/**
       
  2423 	Sets the mouse speed, i.e. how fast the mouse pointer moves.
       
  2424 	
       
  2425 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2426 	
       
  2427 	- TInt aFunction : This enum value.
       
  2428 	
       
  2429     - TAny* a1 : A TInt value containing the speed value to be set
       
  2430     This is expected to be a value in the range 0 to 255.
       
  2431 				
       
  2432 	- TAny* a2 : NULL
       
  2433 	
       
  2434 	@capability MultimediaDD
       
  2435 	*/
       
  2436 	EMouseHalSetMouseSpeed,
       
  2437  
       
  2438  
       
  2439     /**
       
  2440     Gets the mouse acceleration, i.e. how much the mouse pointer accelerates
       
  2441     as the user moves it faster.
       
  2442     
       
  2443     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2444 	
       
  2445 	- TInt aFunction : This enum value.
       
  2446 	
       
  2447     - TAny* a1 : A TInt value into which the HAL handler puts the acceleration value.
       
  2448     This is expected to be a value in the range 0 to 255.
       
  2449 				
       
  2450 	- TAny* a2 : NULL
       
  2451     */
       
  2452 	EMouseHalMouseAcceleration,
       
  2453 
       
  2454 
       
  2455 	/**
       
  2456 	Sets the mouse acceleration, i.e. how much the mouse pointer accelerates
       
  2457     as the user moves it faster.
       
  2458 	
       
  2459 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2460 	
       
  2461 	- TInt aFunction : This enum value.
       
  2462 	
       
  2463     - TAny* a1 : A TInt value containing the acceleration value to be set
       
  2464     This is expected to be a value in the range 0 to 255.
       
  2465 				
       
  2466 	- TAny* a2 : NULL
       
  2467 	
       
  2468 	@capability MultimediaDD
       
  2469 	*/
       
  2470 	EMouseHalSetMouseAcceleration,
       
  2471 
       
  2472 
       
  2473     /**
       
  2474     Gets the state of the mouse buttons.
       
  2475     
       
  2476     This is not currently supported.
       
  2477 	*/
       
  2478 	EMouseHalMouseButtonState,
       
  2479 	
       
  2480 	
       
  2481 	/**
       
  2482 	Gets information about the mouse display characteristics. 
       
  2483 	
       
  2484 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2485 	
       
  2486 	- TInt aFunction : This enum value.
       
  2487 	
       
  2488 	- TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
       
  2489 	TMouseInfoV01 structure. The HAL function needs to fill the members of
       
  2490 	this structure with the appropriate information.
       
  2491 	
       
  2492     - TAny* a2 : NULL.
       
  2493     
       
  2494     @see TMouseInfoV01
       
  2495     @see TPckgBuf
       
  2496 	*/
       
  2497 	EMouseHalMouseInfo,
       
  2498 	};
       
  2499 
       
  2500 /**
       
  2501 @internalComponent
       
  2502 */
       
  2503 enum TEmulatorHalFunction
       
  2504 	{
       
  2505 	EEmulatorHalStringProperty,
       
  2506 	EEmulatorHalIntProperty,
       
  2507 	EEmulatorHalBoolProperty,
       
  2508 	EEmulatorHalMapFilename,
       
  2509 	EEmulatorHalColorDepth,
       
  2510 	EEmulatorHalSetFlip,
       
  2511 	EEmulatorHalCPUSpeed,
       
  2512 	EEmulatorHalNumberOfScreens,
       
  2513 	EEmulatorHalSetDisplayChannel,
       
  2514 	};
       
  2515 
       
  2516 /**
       
  2517 @publishedPartner
       
  2518 @released
       
  2519 
       
  2520 The set of function-ids that are  associated with the EHalGroupKeyboard
       
  2521 HAL group.
       
  2522 
       
  2523 Each enum value represents a specific characteristic of the keyboard,
       
  2524 and is passed as the second parameter to the HAL handler function
       
  2525 dealing with this group.
       
  2526   
       
  2527 @see EHalGroupKeyboard
       
  2528 */
       
  2529 enum TKeyboardHalFunction
       
  2530 	{
       
  2531 	
       
  2532 	/**
       
  2533     Tests whether the keyboard is on or off.
       
  2534     
       
  2535     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2536 	
       
  2537 	- TInt aFunction : This enum value.
       
  2538 	
       
  2539    	- TAny* a1 : A TBool into which the HAL handler puts ETrue (for On),
       
  2540     or EFalse (for Off).
       
  2541 	
       
  2542 	- TAny* a2 : NULL	
       
  2543 	*/
       
  2544 	EKeyboardHalKeyboardState,
       
  2545 
       
  2546 
       
  2547 	/**
       
  2548 	Sets the keyboard either on or off.
       
  2549 	
       
  2550 	Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2551 	
       
  2552 	- TInt aFunction : This enum value.
       
  2553 	
       
  2554 	- TAny* a1 :A TBool that needs to be set to ETrue (On), or EFalse (Off).
       
  2555 	
       
  2556 	- TAny* a2 : NULL	
       
  2557 	
       
  2558 	@capability PowerMgmt
       
  2559 	*/
       
  2560 	EKeyboardHalSetKeyboardState,
       
  2561 
       
  2562 
       
  2563     /**
       
  2564     Gets information about the keyboard.
       
  2565     
       
  2566     Requirements of the HAL function handler's 2nd, 3rd and 4th parameters:
       
  2567 	
       
  2568 	- TInt aFunction : This enum value.
       
  2569 	
       
  2570 	- TAny* a1 : This is a pointer to a package buffer (TPckgBuf) containing a
       
  2571 	TKeyboardInfoV01 structure. The HAL function needs to fill the members of
       
  2572 	this structure with the appropriate information.
       
  2573 	
       
  2574     - TAny* a2 : NULL.
       
  2575     
       
  2576     @see TKeyboardInfoV01
       
  2577     @see TPckgBuf
       
  2578     */
       
  2579 	EKeyboardHalKeyboardInfo,
       
  2580 	};
       
  2581 
       
  2582 /**
       
  2583 @publishedPartner
       
  2584 @released
       
  2585 
       
  2586 The set of function-ids that are  associated with the EHalGroupVM
       
  2587 HAL group.
       
  2588 
       
  2589 @see EHalGroupVM
       
  2590 */
       
  2591 enum TVMHalFunction
       
  2592 	{
       
  2593 	/**
       
  2594 	Evict the contents of the virtual memory cache and reduce it to its minimum size.
       
  2595 
       
  2596 	@capability WriteDeviceData
       
  2597 	@test
       
  2598 	*/
       
  2599 	EVMHalFlushCache,
       
  2600 
       
  2601 	/**
       
  2602 	Change the minimum and maximum RAM sizes used for the virtual memory cache.
       
  2603 	These values may be silently restricted to platforn specific limits.
       
  2604 	If required, GetCacheSize can be used to verify sizes actually applied to the system.
       
  2605 
       
  2606 	If there is not enough memory to set the specified cache size then KErrNoMemory is
       
  2607 	returned, however the cache size may still have been modified in an attempt to 
       
  2608 	service the request.
       
  2609 
       
  2610 	This hal function expects two TUint arguments.
       
  2611 	The first argument (a1)	is the minimum size for cache in bytes.
       
  2612 	The second argument (a2) is the maximum size for cache in bytes; using zero for
       
  2613 	this value will restore cache sizes to the initial values used after boot.
       
  2614 
       
  2615 	The return value from the function is one of:
       
  2616 			KErrNone, if successful; 
       
  2617 			KErrNoMemory if there is not enough memory;
       
  2618 			KErrArgument if a1>a2;
       
  2619 			otherwise one of the other system wide error codes.
       
  2620 
       
  2621 	Example usage:
       
  2622 	@code
       
  2623 	TUint minRam = 128*1024; // 128k
       
  2624 	TUint maxRam = KMaxTUint; // unlimited
       
  2625 	TInt r = UserSvr::HalFunction(EHalGroupVM,EVMHalSetCacheSize,(TAny*)minRam,(TAny*)maxRam));
       
  2626 	if(r!=KErrNone)
       
  2627 		anErrorOccured();
       
  2628 	@endcode
       
  2629 
       
  2630 	@capability WriteDeviceData
       
  2631 	@test
       
  2632 	*/
       
  2633 	EVMHalSetCacheSize,
       
  2634 
       
  2635 	/**
       
  2636 	Get the sizes for the virtual memory cache.
       
  2637 	The first argument (a1) is a pointer to a #SVMCacheInfo object.
       
  2638 	The second argument (a2) must be zero.
       
  2639 	@test
       
  2640 	*/
       
  2641 	EVMHalGetCacheSize,
       
  2642 
       
  2643 	/**
       
  2644 	Get paging event information.
       
  2645 	The first argument (a1) is a pointer to a descriptor whose contents will be filled
       
  2646 	with a #SVMEventInfo object.
       
  2647 	The second argument (a2) must be zero.
       
  2648 	@test
       
  2649 	*/
       
  2650 	EVMHalGetEventInfo,
       
  2651 
       
  2652 	/**
       
  2653 	Reset the counters obtained with EVMHalGetEventInfo.
       
  2654 	@test
       
  2655 	*/
       
  2656 	EVMHalResetEventInfo,
       
  2657 
       
  2658 	/**
       
  2659 	@internalTechnology
       
  2660 	@test
       
  2661 	*/
       
  2662 	EVMHalGetOriginalRomPages,
       
  2663 
       
  2664 	/**
       
  2665 	@internalTechnology
       
  2666 	@test
       
  2667 	*/
       
  2668 	EVMPageState,
       
  2669 
       
  2670 	/**
       
  2671 	@internalTechnology
       
  2672 	@test
       
  2673 	*/
       
  2674 	EVMHalGetConcurrencyInfo,
       
  2675 
       
  2676 	/**
       
  2677 	@internalTechnology
       
  2678 	@test
       
  2679 	*/
       
  2680 	EVMHalResetConcurrencyInfo,
       
  2681 
       
  2682 	/**
       
  2683 	@internalTechnology
       
  2684 	@test
       
  2685 	*/
       
  2686 	EVMHalGetPagingBenchmark,
       
  2687 
       
  2688 	/**
       
  2689 	@internalTechnology
       
  2690 	@test
       
  2691 	*/
       
  2692 	EVMHalResetPagingBenchmark,
       
  2693 
       
  2694 	/**
       
  2695 	Gets information about the size of the swap partition, and how much is currently used.
       
  2696 	The first argument (a1) should be a pointer to the SVMSwapInfo structure to write.
       
  2697 	@return KErrNone if successful, or KErrNotSupported if data paging is not supported.
       
  2698 	@internalTechnology
       
  2699 	@prototype
       
  2700 	*/
       
  2701 	EVMHalGetSwapInfo,
       
  2702 
       
  2703 	/**
       
  2704 	Gets information about the current thrashing level.
       
  2705 
       
  2706 	This is a number between 0 and 255 representing how close the system is to thrashing, where 0
       
  2707 	indicates no thrashing and 255 indicates severe thrashing.
       
  2708 
       
  2709 	@return The current thrashing level.
       
  2710 	@internalTechnology
       
  2711 	@prototype
       
  2712 	*/
       
  2713 	EVMHalGetThrashLevel,
       
  2714 
       
  2715 	/**
       
  2716 	Set the available swap space thresholds at which low memory notifications will be generated.
       
  2717 
       
  2718 	Notifications are generated through the RChangeNotifier API, using the enumeration value
       
  2719 	EChangesFreeMemory.
       
  2720 	
       
  2721 	The first argument (a1) should contain a pointer to a SVMSwapThresholds structure. The
       
  2722 	thresholds are specified in bytes.
       
  2723 
       
  2724 	@return KErrNone if successful, KErrNotSupported if data paging is not supported or KErrArgument
       
  2725 	if the thresholds are larger than the size of the swap partition, or if the low threshold is
       
  2726 	larger than the good threshold.
       
  2727 	
       
  2728 	@see RChangeNotifier
       
  2729 	@see TChanges
       
  2730 	*/ 
       
  2731 	EVMHalSetSwapThresholds,
       
  2732 	
       
  2733 	/**
       
  2734 	Set the thrash level thresholds at which thrash level notifications will be generated.
       
  2735 
       
  2736 	Notifications are generated through the RChangeNotifier API, using the enumeration value
       
  2737 	EChangesThrashLevel.
       
  2738 	
       
  2739 	The first argument (a1) should contain the thrashing threshold, and the seond one (a2) should
       
  2740 	contain the good threshold.
       
  2741 
       
  2742 	The thresholds are specified as numbers between 0 and 255 inclusive.
       
  2743 
       
  2744 	@return KErrNone if successful, KErrArgument if the thresholds are out of range or if the
       
  2745 	thrashing threshold is smaller than the good threshold.
       
  2746 	
       
  2747 	@see RChangeNotifier
       
  2748 	@see TChanges
       
  2749 	*/ 
       
  2750 	EVMHalSetThrashThresholds,
       
  2751 	};
       
  2752 
       
  2753 
       
  2754 /**
       
  2755 Paging event information.
       
  2756 @publishedPartner
       
  2757 @test
       
  2758 */
       
  2759 struct SVMEventInfo
       
  2760 	{
       
  2761 	/**
       
  2762 	The total number of page faults which have occurred.
       
  2763 	*/
       
  2764 	TUint64 iPageFaultCount;
       
  2765 
       
  2766 	/**
       
  2767 	The total number of page faults which resulted in reading a page
       
  2768 	from storage media.
       
  2769 	*/
       
  2770 	TUint64 iPageInReadCount;
       
  2771 
       
  2772 	// do not add new members to this struct.
       
  2773 	// instead, derive a new SVMEventInfoV2 class from this and add new members to that.
       
  2774 	};
       
  2775 
       
  2776 	
       
  2777 /**
       
  2778 VM cache information.
       
  2779 @publishedPartner
       
  2780 @test
       
  2781 */
       
  2782 struct SVMCacheInfo
       
  2783 	{
       
  2784 	/**
       
  2785 	The minimum size of virtual memory cache, in bytes.
       
  2786 	*/
       
  2787 	TUint32 iMinSize;
       
  2788 
       
  2789 	/**
       
  2790 	The maximum size of virtual memory cache, in bytes.
       
  2791 	*/
       
  2792 	TUint32 iMaxSize;
       
  2793 
       
  2794 	/**
       
  2795 	The current size of virtual memory cache, in bytes.
       
  2796 	This may be larger than iMaxSize.
       
  2797 	*/
       
  2798 	TUint32 iCurrentSize;
       
  2799 
       
  2800 	/**
       
  2801 	The current size of the freeable memory in the virtual memory cache, in bytes.
       
  2802 	*/
       
  2803 	TUint32 iMaxFreeSize;
       
  2804 
       
  2805 	// do not add new members to this struct, this is a compatability break
       
  2806 	};
       
  2807 
       
  2808 
       
  2809 /**
       
  2810 Enumeration defining the bitmask returned from a call to the demnd paging HAL function
       
  2811 EDemandPagingGetPageState.
       
  2812 
       
  2813 @internalComponent
       
  2814 @test
       
  2815 */
       
  2816 enum TDemandPagingPageState
       
  2817 	{
       
  2818 	// Values common to both moving and multiple memory models
       
  2819 	EPageStateInRom					= 1<<16,
       
  2820 	EPageStateInRamCode				= 1<<17,
       
  2821 	EPageStatePaged					= 1<<18,
       
  2822 	EPageStatePageTablePresent		= 1<<19,
       
  2823 	EPageStatePtePresent			= 1<<20,
       
  2824 	EPageStatePteValid				= 1<<21,
       
  2825 	// Values specific to multiple memory model
       
  2826 	EPageStateCodeChunkPresent		= 1<<22,		
       
  2827 	EPageStatePhysAddrPresent		= 1<<23
       
  2828 	};
       
  2829 
       
  2830 
       
  2831 /**
       
  2832 Information about concurrency in the demand paging system.
       
  2833 
       
  2834 @internalComponent
       
  2835 @test
       
  2836 */
       
  2837 struct SPagingConcurrencyInfo
       
  2838 	{
       
  2839 	/**
       
  2840 	The maximum observed number of threads waiting to page in.
       
  2841 	*/
       
  2842 	TInt iMaxWaitingCount;
       
  2843 
       
  2844 	/**
       
  2845 	The maximum observed number of threads paging in.
       
  2846 	*/
       
  2847 	TInt iMaxPagingCount;
       
  2848 	};
       
  2849 
       
  2850 
       
  2851 /**
       
  2852 Enumeration of demand paging benchmarks.
       
  2853 
       
  2854 @internalComponent
       
  2855 @test
       
  2856 */
       
  2857 enum TPagingBenchmark
       
  2858 	{
       
  2859 	EPagingBmReadRomPage,
       
  2860 	EPagingBmReadCodePage,
       
  2861 	EPagingBmDecompress,
       
  2862 	EPagingBmSetCodePageFree,
       
  2863 	EPagingBmSetCodePageOld,
       
  2864 	EPagingBmReadMedia,
       
  2865 	EPagingBmFixupCodePage,
       
  2866 	EPagingBmReadDataPage,
       
  2867 	EPagingBmWriteDataPage,
       
  2868 	EPagingBmDeleteNotifyDataPage,
       
  2869 	EPagingBmReadDataMedia,
       
  2870 	EPagingBmWriteDataMedia,
       
  2871 		
       
  2872 	EMaxPagingBm
       
  2873 	};
       
  2874 
       
  2875 
       
  2876 /**
       
  2877 Benchmark information for a specific operation.  All times are in terms of the system's fast timer.
       
  2878 
       
  2879 @internalComponent
       
  2880 @test
       
  2881 */
       
  2882 struct SPagingBenchmarkInfo
       
  2883 	{
       
  2884 	/**
       
  2885 	Number of times the operation has been executed.
       
  2886 	*/
       
  2887 	TInt iCount;
       
  2888 	
       
  2889 	/**
       
  2890 	Total time elapsed while executing the operation.
       
  2891 	*/
       
  2892 	TInt64 iTotalTime;
       
  2893 
       
  2894 	/**
       
  2895 	Maximum time recorded for a single execution.
       
  2896 	*/
       
  2897 	TInt iMaxTime;
       
  2898 
       
  2899 	/**
       
  2900 	Minimum time recorded for a single execution.
       
  2901 	*/
       
  2902 	TInt iMinTime;
       
  2903 	};
       
  2904 
       
  2905 /**
       
  2906 Information about concurrency of ROM demand paging requests in the media subsystem.
       
  2907 
       
  2908 @internalComponent
       
  2909 @test
       
  2910 */
       
  2911 struct SMediaROMPagingConcurrencyInfo
       
  2912 	{
       
  2913 	/**
       
  2914 	The maximum number of pending page in requests in the main queue any time during this session.
       
  2915 	*/
       
  2916 	TUint8 iMaxReqsInPending;
       
  2917 
       
  2918 	/**
       
  2919 	The maximum number of pending page in requests in the deferred queue any time during this session.
       
  2920 	*/
       
  2921 	TUint8 iMaxReqsInDeferred;
       
  2922 
       
  2923 	/**
       
  2924 	The maximum number of deferrals of any single page in request during this session.
       
  2925 	*/
       
  2926 	TUint8 iMaxDeferrals;
       
  2927 
       
  2928 	/**
       
  2929 	The total number of times the page in DFC run with an empty main queue during this session.
       
  2930 	*/
       
  2931 	TUint8 iTotalRunDry;
       
  2932 
       
  2933 	/**
       
  2934 	The total number of page in requests first-time deferred during this session.
       
  2935 	*/
       
  2936 	TUint iTotalFirstTimeDeferrals;
       
  2937 
       
  2938 	/**
       
  2939 	The total number of page in requests re-deferred during this session (deferred again after being picked out of deferred queue).
       
  2940 	*/
       
  2941 	TUint iTotalReDeferrals;
       
  2942 
       
  2943 	/**
       
  2944 	The total number of page in requests serviced from main queue when completing an asynchronous request.
       
  2945 	*/
       
  2946 	TUint iTotalSynchServicedFromMainQ;
       
  2947 
       
  2948 	/**
       
  2949 	The total number of page in requests deferred after being picked out of main queue when completing an asynchronous request.
       
  2950 	*/
       
  2951 	TUint iTotalSynchDeferredFromMainQ;
       
  2952 	
       
  2953 	/**
       
  2954 	The total number of page in requests issued whilst processing other page in requests.
       
  2955 	*/
       
  2956 	TUint iTotalConcurrentReqs;
       
  2957 
       
  2958 	/**
       
  2959 	The total number of page in requests issued with at least one queue not empty.
       
  2960 	*/
       
  2961 	TUint iTotalReqIssuedNonEmptyQ;
       
  2962 
       
  2963 	/**
       
  2964 	The total number of times the main queue was emptied when completing an asynchronous request during this session.
       
  2965 	*/
       
  2966 	TUint iTotalSynchEmptiedMainQ;
       
  2967 
       
  2968 	/**
       
  2969 	The total number of times the page in DFC was cancelled because the main queue was synchronously emptied.
       
  2970 	*/
       
  2971 	TUint iTotalDryRunsAvoided;
       
  2972 	};
       
  2973 
       
  2974 /**
       
  2975 Information about concurrency of Code demand paging requests in the media subsystem.
       
  2976 
       
  2977 @internalComponent
       
  2978 @test
       
  2979 */
       
  2980 struct SMediaCodePagingConcurrencyInfo
       
  2981 	{
       
  2982 	/**
       
  2983 	The maximum number of pending page in requests in the main queue any time during this session.
       
  2984 	*/
       
  2985 	TUint8 iMaxReqsInPending;
       
  2986 
       
  2987 	/**
       
  2988 	The maximum number of pending page in requests in the deferred queue any time during this session.
       
  2989 	*/
       
  2990 	TUint8 iMaxReqsInDeferred;
       
  2991 
       
  2992 	/**
       
  2993 	The maximum number of deferrals of any single page in request during this session.
       
  2994 	*/
       
  2995 	TUint8 iMaxDeferrals;
       
  2996 
       
  2997 	/**
       
  2998 	Spare field
       
  2999 	*/
       
  3000 	TUint8 iSpare;
       
  3001 
       
  3002 	/**
       
  3003 	The total number of page in requests first-time deferred during this session.
       
  3004 	*/
       
  3005 	TUint iTotalFirstTimeDeferrals;
       
  3006 
       
  3007 	/**
       
  3008 	The total number of page in requests re-deferred during this session (deferred again after being picked out of deferred queue).
       
  3009 	*/
       
  3010 	TUint iTotalReDeferrals;
       
  3011 
       
  3012 	/**
       
  3013 	The total number of page in requests serviced from main queue when completing an asynchronous request.
       
  3014 	*/
       
  3015 	TUint iTotalSynchServicedFromMainQ;
       
  3016 
       
  3017 	/**
       
  3018 	The total number of page in requests deferred after being picked out of main queue when completing an asynchronous request.
       
  3019 	*/
       
  3020 	TUint iTotalSynchDeferredFromMainQ;
       
  3021 	
       
  3022 	/**
       
  3023 	The total number of page in requests issued whilst processing other page in requests.
       
  3024 	*/
       
  3025 	TUint iTotalConcurrentReqs;
       
  3026 
       
  3027 	/**
       
  3028 	The total number of page in requests issued with at least one queue not empty.
       
  3029 	*/
       
  3030 	TUint iTotalReqIssuedNonEmptyQ;
       
  3031 	};
       
  3032 
       
  3033 
       
  3034 /**
       
  3035 Information about concurrency of Data demand paging requests in the media subsystem.
       
  3036 
       
  3037 @internalComponent
       
  3038 @test
       
  3039 */
       
  3040 struct SMediaDataPagingConcurrencyInfo
       
  3041 	{
       
  3042 	/**
       
  3043 	The maximum number of pending page in requests in the main queue any time during this session.
       
  3044 	*/
       
  3045 	TUint8 iMaxReqsInPending;
       
  3046 
       
  3047 	/**
       
  3048 	The maximum number of pending page in requests in the deferred queue any time during this session.
       
  3049 	*/
       
  3050 	TUint8 iMaxReqsInDeferred;
       
  3051 
       
  3052 	/**
       
  3053 	The maximum number of deferrals of any single page in request during this session.
       
  3054 	*/
       
  3055 	TUint8 iMaxDeferrals;
       
  3056 
       
  3057 	/**
       
  3058 	The total number of times the page in DFC run with an empty main queue during this session.
       
  3059 	*/
       
  3060 	TUint8 iTotalRunDry;
       
  3061 
       
  3062 	/**
       
  3063 	The total number of page in requests first-time deferred during this session.
       
  3064 	*/
       
  3065 	TUint iTotalFirstTimeDeferrals;
       
  3066 
       
  3067 	/**
       
  3068 	The total number of page in requests re-deferred during this session (deferred again after being picked out of deferred queue).
       
  3069 	*/
       
  3070 	TUint iTotalReDeferrals;
       
  3071 
       
  3072 	/**
       
  3073 	The total number of page in requests serviced from main queue when completing an asynchronous request.
       
  3074 	*/
       
  3075 	TUint iTotalSynchServicedFromMainQ;
       
  3076 
       
  3077 	/**
       
  3078 	The total number of page in requests deferred after being picked out of main queue when completing an asynchronous request.
       
  3079 	*/
       
  3080 	TUint iTotalSynchDeferredFromMainQ;
       
  3081 	
       
  3082 	/**
       
  3083 	The total number of page in requests issued whilst processing other page in requests.
       
  3084 	*/
       
  3085 	TUint iTotalConcurrentReqs;
       
  3086 
       
  3087 	/**
       
  3088 	The total number of page in requests issued with at least one queue not empty.
       
  3089 	*/
       
  3090 	TUint iTotalReqIssuedNonEmptyQ;
       
  3091 
       
  3092 	/**
       
  3093 	The total number of times the main queue was emptied when completing an asynchronous request during this session.
       
  3094 	*/
       
  3095 	TUint iTotalSynchEmptiedMainQ;
       
  3096 
       
  3097 	/**
       
  3098 	The total number of times the page in DFC was cancelled because the main queue was synchronously emptied.
       
  3099 	*/
       
  3100 	TUint iTotalDryRunsAvoided;
       
  3101 	};
       
  3102 
       
  3103 
       
  3104 /**
       
  3105 Information about paging requests in the media subsystem.
       
  3106 
       
  3107 @internalComponent
       
  3108 @test
       
  3109 */
       
  3110 struct SMediaPagingInfo
       
  3111 	{
       
  3112 	/**
       
  3113 	The total number of ROM page in requests
       
  3114 	*/
       
  3115 	TInt	iRomPageInCount;
       
  3116 	/**
       
  3117 	The total number of Code page in requests
       
  3118 	*/
       
  3119 	TInt	iCodePageInCount;
       
  3120 	/**
       
  3121 	The total number of Data page in requests
       
  3122 	*/
       
  3123 	TInt	iDataPageInCount;
       
  3124 	/**
       
  3125 	The total number of Data page out requests
       
  3126 	*/
       
  3127 	TInt	iDataPageOutCount;
       
  3128 	/**
       
  3129 	The total number of "background" Data page out requests
       
  3130 	i.e. a page out which only occurs when the media is otherwise idle
       
  3131 	*/
       
  3132 	TInt	iDataPageOutBackgroundCount;
       
  3133 	};
       
  3134 
       
  3135 
       
  3136 
       
  3137 /**
       
  3138 Swap partition information.
       
  3139 @internalAll
       
  3140 @prototype
       
  3141 */
       
  3142 struct SVMSwapInfo
       
  3143 	{
       
  3144 	/**
       
  3145 	The size of the swap partition, in bytes.
       
  3146 	*/
       
  3147 	TUint64 iSwapSize;
       
  3148 
       
  3149 	/**
       
  3150 	The amount of swap currently free, in bytes.
       
  3151 	*/
       
  3152 	TUint64 iSwapFree;
       
  3153 
       
  3154 	// do not add new members to this struct, this is a compatability break
       
  3155 	};
       
  3156 
       
  3157 
       
  3158 
       
  3159 /**
       
  3160 Free swap notification thresholds.
       
  3161 @internalAll
       
  3162 @prototype
       
  3163 */
       
  3164 struct SVMSwapThresholds
       
  3165 	{
       
  3166 	/**
       
  3167 	The low threshold, in bytes
       
  3168 	*/
       
  3169 	TUint64 iLowThreshold;
       
  3170 
       
  3171 	/**
       
  3172 	The good threshold, in bytes.
       
  3173 	*/
       
  3174 	TUint64 iGoodThreshold;
       
  3175 
       
  3176 	// do not add new members to this struct, this is a compatability break
       
  3177 	};
       
  3178 
       
  3179 
       
  3180 
       
  3181 /**
       
  3182 @internalComponent
       
  3183 
       
  3184 The set of function-ids that are  associated with the EHalGroupRam
       
  3185 HAL group.
       
  3186 
       
  3187 @see EHalGroupRam
       
  3188 @test
       
  3189 */
       
  3190 enum TRamHalFunction
       
  3191 	{
       
  3192 	/**
       
  3193 	Retrieve the number of RAM Zones configured for this variant.
       
  3194 
       
  3195 	The first argument (a1) is a TUint in which to store the zone count.
       
  3196 	The second argument (a2) must be zero.
       
  3197 	@test
       
  3198 	*/
       
  3199 	ERamHalGetZoneCount,
       
  3200 	
       
  3201 	/**
       
  3202 	Retrieve configuration information about a zone.
       
  3203 
       
  3204 	The first argument (a1) is a TUint indicating the index of the zone into the zone array.
       
  3205 	The second argument (a2) is a pointer to a struct SRamZoneConfig in which to store the data.
       
  3206 	@test
       
  3207 	*/
       
  3208 	ERamHalGetZoneConfig,
       
  3209 	
       
  3210 	/**
       
  3211 	Retrieve utilisation information about a zone.
       
  3212 
       
  3213 	The first argument (a1) is a TUint indicating the index of the zone into the zone array.
       
  3214 	The second argument (a2) is a pointer to a struct SRamZoneUtilisation in which to store the data.
       
  3215 	@test
       
  3216 	*/
       
  3217 	ERamHalGetZoneUtilisation,
       
  3218 
       
  3219 	};
       
  3220 
       
  3221 /**
       
  3222 Ram zone configuration information.
       
  3223 @internalComponent
       
  3224 @test
       
  3225 */
       
  3226 struct SRamZoneConfig
       
  3227 	{
       
  3228 	/**
       
  3229 	ID number of the RAM zone
       
  3230 	*/
       
  3231 	TUint iZoneId;
       
  3232 
       
  3233 	/**
       
  3234 	The index of the RAM zone in the RAM zone array 
       
  3235 	*/
       
  3236 	TUint8 iZoneIndex;
       
  3237 
       
  3238 	/**
       
  3239 	Physical base address of the RAM zone
       
  3240 	*/
       
  3241 	TUint32 iPhysBase;
       
  3242 
       
  3243 	/**
       
  3244 	Physical end address of the RAM zone
       
  3245 	*/
       
  3246 	TUint32 iPhysEnd;
       
  3247 
       
  3248 	/**
       
  3249 	The total number of pages that are in the RAM zone
       
  3250 	*/
       
  3251 	TUint32 iPhysPages;
       
  3252 	
       
  3253 	/**
       
  3254 	Preference value for the RAM zone, lower preference RAM zones are used first
       
  3255 	*/
       
  3256 	TUint8 iPref;	
       
  3257 
       
  3258 	/**
       
  3259 	Zone flags - specify whether the RAM zone should be reserved for contiguous buffer or h/w etc
       
  3260 	*/
       
  3261 	TUint iFlags;
       
  3262 
       
  3263 	};
       
  3264 
       
  3265 /**
       
  3266 Ram zone utilisation information.
       
  3267 @internalComponent
       
  3268 @test
       
  3269 */
       
  3270 struct SRamZoneUtilisation
       
  3271 	{
       
  3272 	/**
       
  3273 	ID number of the RAM zone
       
  3274 	*/
       
  3275 	TUint iZoneId;			
       
  3276 
       
  3277 	/**
       
  3278 	The index of the RAM zone in the zone array 
       
  3279 	*/
       
  3280 	TUint8 iZoneIndex;		
       
  3281 
       
  3282 	/**
       
  3283 	The total number of pages that are in the RAM zone
       
  3284 	*/
       
  3285 	TUint32 iPhysPages;		
       
  3286 
       
  3287 	/**
       
  3288 	The number of pages free in the RAM zone 
       
  3289 	*/
       
  3290 	TUint32 iFreePages;	
       
  3291 	
       
  3292 	/**
       
  3293 	The number of 'unknown' (reserved at startup or holes in the zone) pages allocated in the RAM zone
       
  3294 	*/
       
  3295 	TUint32 iAllocUnknown;
       
  3296 
       
  3297 	/**
       
  3298 	The number of fixed pages allocated in the RAM zone 
       
  3299 	*/
       
  3300 	TUint32 iAllocFixed; 
       
  3301 
       
  3302 	/**
       
  3303 	The number of movable pages allocated in the RAM zone 
       
  3304 	*/
       
  3305 	TUint32 iAllocMovable; 
       
  3306 
       
  3307 	/**
       
  3308 	The number of discardable pages allocated in the RAM zone 
       
  3309 	*/
       
  3310 	TUint32 iAllocDiscardable; 
       
  3311 
       
  3312 	/**
       
  3313 	The number of other pages allocated in the RAM zone 
       
  3314 	*/
       
  3315 	TUint32 iAllocOther; 
       
  3316 
       
  3317 	};
       
  3318 #endif