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