epoc32/include/e32hal.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@2
     4
// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@2
    14
// e32\include\e32hal.h
williamr@2
    15
// 
williamr@2
    16
//
williamr@2
    17
williamr@2
    18
#ifndef __E32HAL_H__
williamr@2
    19
#define __E32HAL_H__
williamr@2
    20
#include <e32cmn.h>
williamr@2
    21
williamr@2
    22
/**
williamr@2
    23
@publishedPartner
williamr@2
    24
@deprecated No replacement.
williamr@2
    25
*/ 
williamr@2
    26
const TInt KMaxRomDevices=8;
williamr@2
    27
williamr@2
    28
williamr@2
    29
williamr@2
    30
williamr@2
    31
/**
williamr@2
    32
@publishedPartner
williamr@2
    33
@released
williamr@2
    34
williamr@2
    35
Defines the calibration settings that can be restored by 
williamr@2
    36
the digitiser's implementation of DDigitiser::RestoreXYInputCalibration.
williamr@2
    37
williamr@2
    38
See the digitiser template port in:
williamr@2
    39
@code
williamr@2
    40
...\template\template_variant\specific\xyin.cpp
williamr@2
    41
@endcode
williamr@2
    42
williamr@2
    43
@see DDigitiser::RestoreXYInputCalibration()
williamr@2
    44
*/ 
williamr@2
    45
enum TDigitizerCalibrationType
williamr@2
    46
    {
williamr@2
    47
    EFactory, /**< Restore to factory settings. */
williamr@2
    48
    ESaved    /**< Restore to saved settings.   */
williamr@2
    49
    };
williamr@2
    50
williamr@2
    51
williamr@2
    52
williamr@2
    53
williamr@2
    54
/**
williamr@2
    55
@publishedPartner
williamr@2
    56
@released
williamr@2
    57
williamr@2
    58
Defines the screen coordinates of the point touched during calibration.
williamr@2
    59
williamr@2
    60
An object of this type is passed, via a TPckgBuf, to the HAL handler
williamr@2
    61
that deals with the HAL group function-id pair:
williamr@2
    62
- EHalGroupDigitiser, EDigitiserHalSetXYInputCalibration
williamr@2
    63
- EHalGroupDigitiser, EDigitiserHalCalibrationPoints
williamr@2
    64
- EHalGroupDigitiser, EDigitiserHalRestoreXYInputCalibration
williamr@2
    65
williamr@2
    66
@see EDigitiserHalSetXYInputCalibration
williamr@2
    67
@see EDigitiserHalCalibrationPoints
williamr@2
    68
@see EDigitiserHalRestoreXYInputCalibration
williamr@2
    69
@see TDigitiserHalFunction
williamr@2
    70
@see EHalGroupDigitiser
williamr@2
    71
@see TPckgBuf
williamr@2
    72
*/ 
williamr@2
    73
class TDigitizerCalibration
williamr@2
    74
    {
williamr@2
    75
public:
williamr@2
    76
    TPoint iTl;  /**< Top left point.*/
williamr@2
    77
    TPoint iBl;  /**< Bottom left point. */
williamr@2
    78
    TPoint iTr;  /**< Top right point.*/
williamr@2
    79
    TPoint iBr;  /**< Bottom right point.*/
williamr@2
    80
    };
williamr@2
    81
williamr@2
    82
williamr@2
    83
williamr@2
    84
williamr@2
    85
/**
williamr@2
    86
@publishedPartner
williamr@2
    87
@released
williamr@2
    88
williamr@2
    89
An enum that identifies the full set of keyboard types.
williamr@2
    90
williamr@2
    91
A variable of this type is defined and used in the TKeyboardInfoV01 struct. 
williamr@2
    92
williamr@2
    93
@see TKeyboardInfoV01::iKeyboardType.
williamr@2
    94
*/ 
williamr@2
    95
enum TKeyboard
williamr@2
    96
	{
williamr@2
    97
	EKeyboard_Keypad=1, /**< Keypad type*/
williamr@2
    98
	EKeyboard_Full=2,   /**< Full keyboard type*/
williamr@2
    99
	};
williamr@2
   100
williamr@2
   101
williamr@2
   102
williamr@2
   103
williamr@2
   104
/**
williamr@2
   105
@publishedPartner
williamr@2
   106
@released
williamr@2
   107
williamr@2
   108
Encapsulates information about the keyboard.
williamr@2
   109
williamr@2
   110
NOTE that the information represented here is not used by Symbian OS, 
williamr@2
   111
and exists to maintain binary compatibilty with older versions.
williamr@2
   112
williamr@2
   113
However, keyboard drivers that implement the HAL handler for
williamr@2
   114
the EHalGroupKeyboard group still need to return a default object
williamr@2
   115
of this type.
williamr@2
   116
See the template port.
williamr@2
   117
williamr@2
   118
An object of this type is passed, via a TPckgBuf, to the HAL handler
williamr@2
   119
that deals with the HAL group function-id pair:
williamr@2
   120
- EHalGroupKeyboard, EKeyboardHalKeyboardInfo;
williamr@2
   121
williamr@2
   122
@see EKeyboardHalKeyboardInfo
williamr@2
   123
@see TKeyboardHalFunction
williamr@2
   124
@see EHalGroupKeyboard
williamr@2
   125
@see TPckgBuf
williamr@2
   126
*/ 
williamr@2
   127
class TKeyboardInfoV01
williamr@2
   128
	{
williamr@2
   129
public:
williamr@2
   130
    /**
williamr@2
   131
    The number of device keys.
williamr@2
   132
    
williamr@2
   133
    NOTE that the information represented by this variable is not
williamr@2
   134
    used by Symbian OS, and exists to maintain binary compatibility
williamr@2
   135
    with older versions. 
williamr@2
   136
    */
williamr@2
   137
	TInt iDeviceKeys;
williamr@2
   138
	
williamr@2
   139
	
williamr@2
   140
	/**
williamr@2
   141
	The number of application keys.
williamr@2
   142
	
williamr@2
   143
	NOTE that the information represented by this variable is not
williamr@2
   144
    used by Symbian OS, and exists to maintain binary compatibility
williamr@2
   145
    with older versions. 
williamr@2
   146
	*/
williamr@2
   147
    TInt iAppsKeys;
williamr@2
   148
    
williamr@2
   149
    
williamr@2
   150
    /**
williamr@2
   151
    Defines the type of keyboard available as enumerated by
williamr@2
   152
    the TKeyboard enum.
williamr@2
   153
        
williamr@2
   154
    NOTE that the information represented by this variable is not
williamr@2
   155
    used by Symbian OS, and exists to maintain binary compatibility
williamr@2
   156
    with older versions. 
williamr@2
   157
            
williamr@2
   158
    @see TKeyboard
williamr@2
   159
    */
williamr@2
   160
	TKeyboard iKeyboardType;
williamr@2
   161
    };
williamr@2
   162
    
williamr@2
   163
    
williamr@2
   164
    
williamr@2
   165
    
williamr@2
   166
/**
williamr@2
   167
@publishedPartner
williamr@2
   168
@released
williamr@2
   169
williamr@2
   170
Package buffer for a TKeyboardInfoV01 object.
williamr@2
   171
williamr@2
   172
@see TKeyboardInfoV01
williamr@2
   173
*/ 
williamr@2
   174
typedef TPckgBuf<TKeyboardInfoV01> TKeyboardInfoV01Buf;
williamr@2
   175
williamr@2
   176
williamr@2
   177
williamr@2
   178
williamr@2
   179
/**
williamr@2
   180
@publishedPartner
williamr@2
   181
@released
williamr@2
   182
williamr@2
   183
Encapsulates information about the digitiser.
williamr@2
   184
williamr@2
   185
An object of this type is passed, via a TPckgBuf, to the HAL handler
williamr@2
   186
that deals with the HAL group function-id pair:
williamr@2
   187
- EHalGroupDigitiser, EDigitiserHalXYInfo;
williamr@2
   188
williamr@2
   189
@see EDigitiserHalXYInfo
williamr@2
   190
@see TDigitiserHalFunction
williamr@2
   191
@see EHalGroupDigitiser
williamr@2
   192
@see TPckgBuf
williamr@2
   193
*/ 
williamr@2
   194
class TDigitiserInfoV01
williamr@2
   195
	{
williamr@2
   196
public:
williamr@2
   197
	TPoint iOffsetToDisplay;/**< The offset in pixels from the digitiser usable area to the display area. */
williamr@2
   198
	TSize iDigitiserSize;   /**< The width/height of the display in pixels as used by digitiser.*/
williamr@2
   199
	};
williamr@2
   200
	
williamr@2
   201
	
williamr@2
   202
/**
williamr@2
   203
@publishedPartner
williamr@2
   204
@prototype
williamr@2
   205
williamr@2
   206
Encapsulates extra information required by 3 dimensional pointing devices.
williamr@2
   207
*/ 
williamr@2
   208
class TDigitiserInfoV02 : public TDigitiserInfoV01
williamr@2
   209
	{	
williamr@2
   210
	TInt iZRange;			/**< The maximum distance to screen a pointing device will be detected (settable).*/
williamr@2
   211
	TUint8 iThetaSupported;	/**< A Boolean value that indicates if Theta polar angle detection (tilt) is supported.*/
williamr@2
   212
	TUint8 iPhiSupported;	/**< A Boolean value that indicates if Phi polar angle detection (tilt) is supported.*/
williamr@2
   213
	TUint8 iAlphaSupported;	/**< A Boolean value that indicates if rotation of the pointing device along its main axis is supported.*/
williamr@2
   214
	TUint8 iPressureSupported; /**< A Boolean value that indicates if pressure applied on screen is supported.*/
williamr@2
   215
	};
williamr@2
   216
williamr@2
   217
williamr@2
   218
/**
williamr@2
   219
@publishedPartner
williamr@2
   220
@released
williamr@2
   221
williamr@2
   222
Package buffer for a TDigitiserInfoV01 object.
williamr@2
   223
williamr@2
   224
@see TDigitiserInfoV01
williamr@2
   225
*/ 
williamr@2
   226
typedef TPckgBuf<TDigitiserInfoV01> TDigitiserInfoV01Buf;
williamr@2
   227
williamr@2
   228
/**
williamr@2
   229
@publishedPartner
williamr@2
   230
@prototype
williamr@2
   231
williamr@2
   232
Package buffer for a TDigitiserInfoV02 object.
williamr@2
   233
williamr@2
   234
@see TDigitiserInfoV02
williamr@2
   235
*/ 
williamr@2
   236
typedef TPckgBuf<TDigitiserInfoV02> TDigitiserInfoV02Buf;
williamr@2
   237
williamr@2
   238
/**
williamr@2
   239
@publishedPartner
williamr@2
   240
@released
williamr@2
   241
williamr@2
   242
Encapsulates information about the mouse display characteristics.
williamr@2
   243
williamr@2
   244
An object of this type is passed, via a TPckgBuf, to the HAL handler
williamr@2
   245
that deals with the HAL group function-id pair:
williamr@2
   246
- EHalGroupMouse, EMouseHalMouseInfo;
williamr@2
   247
williamr@2
   248
@see EMouseHalMouseInfo
williamr@2
   249
@see TMouseHalFunction
williamr@2
   250
@see EHalGroupMouse
williamr@2
   251
@see TPckgBuf
williamr@2
   252
*/ 
williamr@2
   253
class TMouseInfoV01
williamr@2
   254
	{
williamr@2
   255
public:
williamr@2
   256
	TInt iMouseButtons;      /**< The number of mouse buttons.*/
williamr@2
   257
	TPoint iOffsetToDisplay; /**< The offset in pixels from the mouse usable area to the display area.*/
williamr@2
   258
	TSize iMouseAreaSize;    /**< The width/height of the display in pixels as used by the mouse.     */
williamr@2
   259
	};
williamr@2
   260
	
williamr@2
   261
	
williamr@2
   262
	
williamr@2
   263
	
williamr@2
   264
/**
williamr@2
   265
@publishedPartner
williamr@2
   266
@released
williamr@2
   267
williamr@2
   268
Package buffer for a TMouseInfoV01 object.
williamr@2
   269
williamr@2
   270
@see TMouseInfoV01
williamr@2
   271
*/ 
williamr@2
   272
typedef TPckgBuf<TMouseInfoV01> TMouseInfoV01Buf;
williamr@2
   273
williamr@2
   274
williamr@2
   275
williamr@2
   276
/**
williamr@2
   277
@publishedPartner
williamr@2
   278
@released
williamr@2
   279
williamr@2
   280
Encapsulates Variant specific information.
williamr@2
   281
williamr@2
   282
An object of this type is passed, via a TPckgBuf, to the HAL handler
williamr@2
   283
that deals with the HAL group function-id pair:
williamr@2
   284
- EHalGroupVariant, EVariantHalVariantInfo;
williamr@2
   285
williamr@2
   286
@see EVariantHalVariantInfo
williamr@2
   287
@see TVariantHalFunction
williamr@2
   288
@see EHalGroupVariant
williamr@2
   289
@see TPckgBuf
williamr@2
   290
*/ 
williamr@2
   291
class TVariantInfoV01
williamr@2
   292
	{
williamr@2
   293
public:
williamr@2
   294
    /**
williamr@2
   295
    The ROM version.
williamr@2
   296
    */
williamr@2
   297
	TVersion iRomVersion;
williamr@2
   298
	
williamr@2
   299
	/**
williamr@2
   300
	The Id that uniquely identifies the device.
williamr@2
   301
	*/
williamr@2
   302
	SInt64 iMachineUniqueId;
williamr@2
   303
	
williamr@2
   304
	/**
williamr@2
   305
	The bits that represent the LED capabilities.
williamr@2
   306
	
williamr@2
   307
	NB capabilities in this context does not mean security capabilities.
williamr@2
   308
	*/
williamr@2
   309
    TUint iLedCapabilities;
williamr@2
   310
    
williamr@2
   311
    /**
williamr@2
   312
    The processor clock speed.
williamr@2
   313
    */
williamr@2
   314
    TInt iProcessorClockInKHz;
williamr@2
   315
    
williamr@2
   316
    /**
williamr@2
   317
    The speed factor. 
williamr@2
   318
    */
williamr@2
   319
    TInt iSpeedFactor;
williamr@2
   320
    };
williamr@2
   321
    
williamr@2
   322
    
williamr@2
   323
    
williamr@2
   324
    
williamr@2
   325
/**
williamr@2
   326
@publishedPartner
williamr@2
   327
@released
williamr@2
   328
williamr@2
   329
Package buffer for a TVariantInfoV01 object.
williamr@2
   330
williamr@2
   331
@see TVariantInfoV01
williamr@2
   332
*/ 
williamr@2
   333
typedef TPckgBuf<TVariantInfoV01> TVariantInfoV01Buf;
williamr@2
   334
williamr@2
   335
williamr@2
   336
williamr@2
   337
williamr@2
   338
/**
williamr@2
   339
@publishedPartner
williamr@2
   340
@deprecated Use HAL::Get() from the HAL library instead with attributes ESystemStartupReason.
williamr@2
   341
williamr@2
   342
The reason that the device last reset
williamr@2
   343
williamr@2
   344
Note that not all reasons can occur on all devices.
williamr@2
   345
*/
williamr@2
   346
enum TMachineStartupType
williamr@2
   347
	{
williamr@2
   348
	EStartupCold,EStartupColdReset,EStartupNewOs,
williamr@2
   349
	EStartupPowerFail,EStartupWarmReset,EStartupKernelFault,
williamr@2
   350
	EStartupSafeReset
williamr@2
   351
	};
williamr@2
   352
williamr@2
   353
williamr@2
   354
williamr@2
   355
williamr@2
   356
/**
williamr@2
   357
@publishedPartner
williamr@2
   358
@deprecated Use HAL::Get() from the HAL library instead with attributes  EPen or EMouse.
williamr@2
   359
williamr@2
   360
The XY input method supported
williamr@2
   361
*/
williamr@2
   362
enum TXYInputType
williamr@2
   363
	{
williamr@2
   364
	EXYInputNone,
williamr@2
   365
	EXYInputPointer,
williamr@2
   366
	EXYInputMouse,
williamr@2
   367
	EXYInputDeltaMouse
williamr@2
   368
	};
williamr@2
   369
williamr@2
   370
williamr@2
   371
williamr@2
   372
/**
williamr@2
   373
@publishedPartner
williamr@2
   374
@deprecated Use HAL::Get() from the HAL library instead.
williamr@2
   375
williamr@2
   376
Miscellaneous machine info.
williamr@2
   377
*/
williamr@2
   378
class TMachineInfoV1
williamr@2
   379
	{
williamr@2
   380
public:
williamr@2
   381
	TVersion iRomVersion;
williamr@2
   382
	TXYInputType iXYInputType;
williamr@2
   383
	TBool iKeyboardPresent;
williamr@2
   384
	TBool iBacklightPresent;
williamr@2
   385
    TSize iDisplaySizeInPixels;
williamr@2
   386
    TSize iXYInputSizeInPixels;
williamr@2
   387
    TSize iPhysicalScreenSize;
williamr@2
   388
	TPoint iOffsetToDisplayInPixels;
williamr@2
   389
	TInt iKeyboardId;
williamr@2
   390
	TInt iDisplayId;
williamr@2
   391
	SInt64 iMachineUniqueId;
williamr@2
   392
    TUint iLedCapabilities;
williamr@2
   393
    TInt iProcessorClockInKHz;
williamr@2
   394
    TInt iSpeedFactor;
williamr@2
   395
    TInt iMaximumDisplayColors;
williamr@2
   396
	};
williamr@2
   397
/**
williamr@2
   398
@publishedPartner
williamr@2
   399
@deprecated
williamr@2
   400
*/
williamr@2
   401
typedef TPckgBuf<TMachineInfoV1> TMachineInfoV1Buf;
williamr@2
   402
williamr@2
   403
williamr@2
   404
williamr@2
   405
williamr@2
   406
/**
williamr@2
   407
@publishedPartner
williamr@2
   408
@deprecated Use HAL::Get() from the HAL library instead with attributes ELanguageIndex or EKeyboardIndex.
williamr@2
   409
williamr@2
   410
Miscellaneous locale info.
williamr@2
   411
*/
williamr@2
   412
class TMachineInfoV2 : public TMachineInfoV1
williamr@2
   413
	{
williamr@2
   414
public:
williamr@2
   415
	TInt iLanguageIndex;
williamr@2
   416
    TInt iKeyboardIndex;
williamr@2
   417
    };
williamr@2
   418
/**
williamr@2
   419
@publishedPartner
williamr@2
   420
@deprecated
williamr@2
   421
*/
williamr@2
   422
typedef TPckgBuf<TMachineInfoV2> TMachineInfoV2Buf;
williamr@2
   423
williamr@2
   424
williamr@2
   425
williamr@2
   426
williamr@2
   427
/**
williamr@2
   428
@publishedPartner
williamr@2
   429
@deprecated Use HAL::Get() from the HAL library instead with attributes EMemoryRAM, EMemoryRAMFree or EMemoryROM.
williamr@2
   430
williamr@2
   431
Miscellaneous memory info.
williamr@2
   432
*/ 
williamr@2
   433
class TMemoryInfoV1
williamr@2
   434
    {
williamr@2
   435
public:
williamr@2
   436
    TInt iTotalRamInBytes;
williamr@2
   437
    TInt iTotalRomInBytes;
williamr@2
   438
    TInt iMaxFreeRamInBytes;
williamr@2
   439
    TInt iFreeRamInBytes;
williamr@2
   440
    TInt iInternalDiskRamInBytes;
williamr@2
   441
    TBool iRomIsReprogrammable;
williamr@2
   442
    };
williamr@2
   443
/**
williamr@2
   444
@publishedPartner
williamr@2
   445
@deprecated
williamr@2
   446
*/
williamr@2
   447
typedef TPckgBuf<TMemoryInfoV1> TMemoryInfoV1Buf;
williamr@2
   448
williamr@2
   449
williamr@2
   450
williamr@2
   451
williamr@2
   452
/**
williamr@2
   453
@publishedPartner
williamr@2
   454
@deprecated No replacement.
williamr@2
   455
williamr@2
   456
Miscellaneous ROM info.
williamr@2
   457
*/ 
williamr@2
   458
class TRomInfoEntryV1
williamr@2
   459
	{
williamr@2
   460
public:
williamr@2
   461
    enum TRomTypeV1
williamr@2
   462
    	{
williamr@2
   463
    	ERomTypeRom=0,
williamr@2
   464
    	ERomTypeFlash=1
williamr@2
   465
    	};
williamr@2
   466
	TInt iSize;		    // size of ROM in bytes, 0=no ROM present
williamr@2
   467
	TInt iWidth;		// bus width in bits
williamr@2
   468
	TInt iSpeed;		// number of wait states
williamr@2
   469
	TRomTypeV1 iType;	// 0=ROM, 1=FLASH
williamr@2
   470
	};
williamr@2
   471
williamr@2
   472
williamr@2
   473
williamr@2
   474
williamr@2
   475
/**
williamr@2
   476
@publishedPartner
williamr@2
   477
@deprecated No replacement.
williamr@2
   478
williamr@2
   479
Miscellaneous ROM info.
williamr@2
   480
*/ 
williamr@2
   481
class TRomInfoV1
williamr@2
   482
	{
williamr@2
   483
public:
williamr@2
   484
	TRomInfoEntryV1	iEntry[KMaxRomDevices];
williamr@2
   485
	};
williamr@2
   486
/**
williamr@2
   487
@publishedPartner
williamr@2
   488
@deprecated
williamr@2
   489
*/
williamr@2
   490
typedef TPckgBuf<TRomInfoV1> TRomInfoV1Buf;
williamr@2
   491
williamr@2
   492
/**
williamr@2
   493
@publishedPartner
williamr@2
   494
@released
williamr@2
   495
*/
williamr@2
   496
const TUint KRuggedFileSystem=0x01;
williamr@2
   497
williamr@2
   498
/**
williamr@2
   499
@publishedPartner
williamr@2
   500
@released
williamr@2
   501
*/
williamr@2
   502
class TDriveInfoV1
williamr@2
   503
    {
williamr@2
   504
public:
williamr@2
   505
	TInt iTotalSupportedDrives;
williamr@2
   506
	TInfoName iDriveName[KMaxLocalDrives];
williamr@2
   507
	TInt iTotalSockets;
williamr@2
   508
	TInfoName iSocketName[KMaxPBusSockets];
williamr@2
   509
	TInt iRuggedFileSystem;
williamr@2
   510
	TUint iRegisteredDriveBitmask;
williamr@2
   511
	};
williamr@2
   512
/**
williamr@2
   513
@publishedPartner
williamr@2
   514
@released
williamr@2
   515
*/
williamr@2
   516
typedef TPckgBuf<TDriveInfoV1> TDriveInfoV1Buf;
williamr@2
   517
williamr@2
   518
#if defined(_UNICODE) && !defined(__KERNEL_MODE__)
williamr@2
   519
/**
williamr@2
   520
@publishedPartner
williamr@2
   521
@released
williamr@2
   522
*/
williamr@2
   523
class TDriveInfoV18
williamr@2
   524
    {
williamr@2
   525
public:
williamr@2
   526
	TInt iTotalSupportedDrives;
williamr@2
   527
	TBuf8<KMaxInfoName> iDriveName[KMaxLocalDrives]; //TInfoName
williamr@2
   528
	TInt iTotalSockets;
williamr@2
   529
	TBuf8<KMaxInfoName> iSocketName[KMaxPBusSockets]; //TInfoName
williamr@2
   530
	TInt iRuggedFileSystem;
williamr@2
   531
	TUint iRegisteredDriveBitmask;
williamr@2
   532
	};
williamr@2
   533
/**
williamr@2
   534
@publishedPartner
williamr@2
   535
@released
williamr@2
   536
*/
williamr@2
   537
typedef TPckgBuf<TDriveInfoV18> TDriveInfoV1Buf8;
williamr@2
   538
#else
williamr@2
   539
typedef TDriveInfoV1 TDriveInfoV18;
williamr@2
   540
typedef TDriveInfoV1Buf TDriveInfoV1Buf8;
williamr@2
   541
#endif
williamr@2
   542
williamr@2
   543
/**
williamr@2
   544
@publishedPartner
williamr@2
   545
@released
williamr@2
   546
*/
williamr@2
   547
class TExcInfo
williamr@2
   548
	{
williamr@2
   549
public:
williamr@2
   550
	TAny *iCodeAddress;
williamr@2
   551
	TAny *iDataAddress;
williamr@2
   552
	TInt iExtraData;
williamr@2
   553
	};
williamr@2
   554
williamr@2
   555
#ifndef __KERNEL_MODE__
williamr@2
   556
#include <e32std.h>
williamr@2
   557
williamr@2
   558
williamr@2
   559
williamr@2
   560
williamr@2
   561
/**
williamr@2
   562
@publishedPartner
williamr@2
   563
@released
williamr@2
   564
williamr@2
   565
A set of user side utility functions for acessing hardware related
williamr@2
   566
information.
williamr@2
   567
williamr@2
   568
Four of these functions are DEPRECATED and should NOT be used; some of
williamr@2
   569
these functions have replacements, but others do not; see the description of
williamr@2
   570
the individual functions.
williamr@2
   571
williamr@2
   572
The following functions are not deprecated, but are only used by Symbian
williamr@2
   573
OS as part of its internal implementation:
williamr@2
   574
-  UserHal::FaultReason()
williamr@2
   575
-  UserHal::ExceptionId()
williamr@2
   576
-  UserHal::ExceptionInfo()
williamr@2
   577
-  UserHal::PageSizeInBytes()
williamr@2
   578
-  UserHal::TickPeriod()
williamr@2
   579
-  UserHal::DriveInfo()
williamr@2
   580
-  UserHal::SwitchOff()
williamr@2
   581
-  UserHal::SetXYInputCalibration()
williamr@2
   582
-  UserHal::CalibrationPoints()
williamr@2
   583
-  UserHal::SaveXYInputCalibration()
williamr@2
   584
-  UserHal::RestoreXYInputCalibration()
williamr@2
   585
*/
williamr@2
   586
class UserHal
williamr@2
   587
	{
williamr@2
   588
public:
williamr@2
   589
	// kernel group
williamr@2
   590
	IMPORT_C static TInt MemoryInfo(TDes8& anInfo);
williamr@2
   591
	IMPORT_C static TInt RomInfo(TDes8& anInfo);
williamr@2
   592
	IMPORT_C static TInt StartupReason(TMachineStartupType& aReason);
williamr@2
   593
	IMPORT_C static TInt FaultReason(TInt &aReason);
williamr@2
   594
	IMPORT_C static TInt ExceptionId(TInt &anId);
williamr@2
   595
	IMPORT_C static TInt ExceptionInfo(TExcInfo &aInfo);
williamr@2
   596
	IMPORT_C static TInt PageSizeInBytes(TInt& aSize);
williamr@2
   597
williamr@2
   598
	// variant group
williamr@2
   599
	IMPORT_C static TInt MachineInfo(TDes8& anInfo);
williamr@2
   600
	IMPORT_C static TInt TickPeriod(TTimeIntervalMicroSeconds32& aPeriod);
williamr@2
   601
williamr@2
   602
	// media group
williamr@2
   603
	IMPORT_C static TInt DriveInfo(TDes8& anInfo);
williamr@2
   604
williamr@2
   605
	// power group
williamr@2
   606
   	IMPORT_C static TInt SwitchOff();
williamr@2
   607
williamr@2
   608
	// digitiser group
williamr@2
   609
	IMPORT_C static TInt SetXYInputCalibration(const TDigitizerCalibration& aCalibration);
williamr@2
   610
	IMPORT_C static TInt CalibrationPoints(TDigitizerCalibration& aCalibration);
williamr@2
   611
	IMPORT_C static TInt SaveXYInputCalibration();
williamr@2
   612
	IMPORT_C static TInt RestoreXYInputCalibration(TDigitizerCalibrationType aType);
williamr@2
   613
	};
williamr@2
   614
#endif
williamr@2
   615
#endif