os/kernelhwsrv/kernel/eka/include/u32hal.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 // Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // under the terms of the License "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     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