symport/e32/include/e32def_private.h
changeset 1 0a7b44b10206
child 2 806186ab5e14
equal deleted inserted replaced
0:c55016431358 1:0a7b44b10206
       
     1 // Copyright (c) 1994-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\e32def_private.h
       
    15 // 
       
    16 //
       
    17 
       
    18 #ifndef __E32DEF_PRIVATE_H__
       
    19 #define __E32DEF_PRIVATE_H__
       
    20 
       
    21 #ifdef __PROFILING__
       
    22 
       
    23 /**
       
    24 @publishedPartner
       
    25 @removed
       
    26 */
       
    27 #define __PROFILE_START(aBin) RDebug::ProfileStart(aBin)
       
    28 
       
    29 /**
       
    30 @publishedPartner
       
    31 @removed
       
    32 */
       
    33 #define __PROFILE_END(aBin)   RDebug::ProfileEnd(aBin)
       
    34 
       
    35 /**
       
    36 @publishedPartner
       
    37 @removed
       
    38 */
       
    39 #define __PROFILE_RESET(aNumberOfBins) RDebug::ProfileReset(0,aNumberOfBins)
       
    40 
       
    41 /**
       
    42 @publishedPartner
       
    43 @removed
       
    44 */
       
    45 #define __PROFILE_DISPLAY(aNumberOfBins) \
       
    46 			{	TFixedArray<TProfile, aNumberOfBins> result; \
       
    47 				RDebug::ProfileResult(result.Begin(), 0, aNumberOfBins); \
       
    48 				for (TInt i=0; i<aNumberOfBins; i++)   \
       
    49 				RDebug::Print(_L("Profile bin %d:  Calls: %d, Clock ticks: %d\n" ),i,res[i].iCount,result[i].iTime);  \
       
    50 			}
       
    51 #else /* __PROFILING__ */
       
    52 #define __PROFILE_START(aBin) 
       
    53 #define __PROFILE_END(aBin)   
       
    54 #define __PROFILE_RESET(aNumberOfBins) 
       
    55 #define __PROFILE_DISPLAY(aNumberOfBins)
       
    56 #endif
       
    57 
       
    58 #if defined(_DEBUG)
       
    59 
       
    60 /**
       
    61 @publishedPartner
       
    62 @released
       
    63 
       
    64 Marks the start of Kernel heap checking. 
       
    65 
       
    66 Checking the Kernel heap is only useful when developing Kernel side code such 
       
    67 as device drivers and media drivers.
       
    68 
       
    69 This macro is defined only for debug builds.
       
    70 
       
    71 This macro must be matched by a corresponding call to __KHEAP_MARKEND or __KHEAP_MARKENDC. 
       
    72 Calls to this macro can be nested but each call must be matched by corresponding 
       
    73 call to __KHEAP_MARKEND or __KHEAP_MARKENDC.
       
    74 
       
    75 @see User::__DbgMarkStart()
       
    76 @see __KHEAP_MARKEND
       
    77 @see __KHEAP_MARKENDC
       
    78 */
       
    79 #define __KHEAP_MARK User::__DbgMarkStart(TRUE)
       
    80 
       
    81 
       
    82 
       
    83 
       
    84 /**
       
    85 @publishedPartner
       
    86 @released
       
    87 
       
    88 Checks that the number of allocated cells at the current nested level of the 
       
    89 Kernel heap is the same as the specified value. This macro is defined only 
       
    90 for debug builds. Checking the Kernel heap is only useful when developing 
       
    91 Kernel side code such as device drivers and media drivers.
       
    92 
       
    93 The macro also takes the name of the file containing this source code statement 
       
    94 and the line number of this source code statement; they are displayed as part 
       
    95 of the panic category, if the checks fail.
       
    96 
       
    97 @param aCount The number of heap cells expected to be allocated at
       
    98               the current nest level.
       
    99 
       
   100 @see User::__DbgMarkCheck()
       
   101 @see __UHEAP_CHECK
       
   102 */
       
   103 #define __KHEAP_CHECK(aCount) User::__DbgMarkCheck(TRUE,FALSE,aCount,(TText8*)__FILE__,__LINE__)
       
   104 
       
   105 
       
   106 
       
   107 
       
   108 /**
       
   109 @publishedPartner
       
   110 @released
       
   111 
       
   112 Checks that the total number of allocated cells on the Kernel heap is the same 
       
   113 as the specified value.
       
   114 
       
   115 It is only useful when developing Kernel side code such as device drivers 
       
   116 and media drivers. 
       
   117 
       
   118 The macro also takes the name of the file containing this source code statement 
       
   119 and the line number of this source code statement; they are displayed as part 
       
   120 of the panic category, if the checks fail.
       
   121 
       
   122 This macro is defined only for debug builds.
       
   123 
       
   124 @param aCount The total number of heap cells expected to be allocated
       
   125 
       
   126 @see User::__DbgMarkCheck()
       
   127 @see __UHEAP_CHECKALL
       
   128 */
       
   129 #define __KHEAP_CHECKALL(aCount) User::__DbgMarkCheck(TRUE,TRUE,aCount,(TText8*)__FILE__,__LINE__)
       
   130 
       
   131 
       
   132 
       
   133 
       
   134 /**
       
   135 @publishedPartner
       
   136 @released
       
   137 
       
   138 Marks the end of Kernel heap checking. The macro expects zero heap cells to 
       
   139 remain allocated at the current nest level.
       
   140 
       
   141 This macro is defined only for debug builds. Checking the Kernel heap is only 
       
   142 useful when developing Kernel side code such as device drivers and media drivers.
       
   143 
       
   144 This macro must match an earlier call to __KHEAP_MARK.
       
   145 
       
   146 @see User::__DbgMarkEnd()
       
   147 @see __KHEAP_MARK
       
   148 */
       
   149 #define __KHEAP_MARKEND User::__DbgMarkEnd(TRUE,0)
       
   150 
       
   151 
       
   152 
       
   153 
       
   154 /**
       
   155 @publishedPartner
       
   156 @released
       
   157 
       
   158 Marks the end of Kernel heap checking. The macro expects aCount heap cells 
       
   159 to remain allocated at the current nest level.
       
   160 
       
   161 This macro is defined only for debug builds.
       
   162 
       
   163 This macro must match an earlier call to __KHEAP_MARK.
       
   164 
       
   165 @param aCount The number of heap cells expected to remain allocated at
       
   166               the current nest level.
       
   167 
       
   168 @see User::__DbgMarkEnd()
       
   169 @see __KHEAP_MARK
       
   170 */
       
   171 #define __KHEAP_MARKENDC(aCount) User::__DbgMarkEnd(TRUE,aCount)
       
   172 
       
   173 
       
   174 
       
   175 
       
   176 /**
       
   177 @publishedPartner
       
   178 @released
       
   179 
       
   180 Simulates Kernel heap allocation failure. The failure occurs on the next call 
       
   181 to new or any of the functions which allocate memory from the heap. This macro 
       
   182 is defined only for debug builds.
       
   183 
       
   184 Checking the Kernel heap is only useful when developing Kernel side code such 
       
   185 as device drivers and media drivers.
       
   186 
       
   187 @param aCount The rate of failure - heap allocation fails every aCount attempt.
       
   188 
       
   189 @see User::__DbgSetAllocFail()
       
   190 */
       
   191 #define __KHEAP_FAILNEXT(aCount) User::__DbgSetAllocFail(TRUE,RAllocator::EFailNext,aCount)
       
   192 
       
   193 /**
       
   194 @publishedPartner
       
   195 @released
       
   196 
       
   197 Simulates Kernel heap allocation failures. aBurst failures will occur on the next call 
       
   198 to new or any of the functions which allocate memory from the heap. This macro 
       
   199 is defined only for debug builds.
       
   200 
       
   201 Checking the Kernel heap is only useful when developing Kernel side code such 
       
   202 as device drivers and media drivers.
       
   203 
       
   204 @param aCount The heap allocation will fail after aCount-1 allocation attempts. 
       
   205               Note when used with RHeap the maximum value aCount can be set 
       
   206               to is KMaxTUint16.
       
   207 @param aBurst The number of allocations that will fail after aCount-1 allocation 
       
   208               attempts.  Note when used with RHeap the maximum value aBurst can be 
       
   209               set to is KMaxTUint16.
       
   210 
       
   211 
       
   212 @see User::__DbgSetBurstAllocFail()
       
   213 */
       
   214 #define __KHEAP_BURSTFAILNEXT(aCount,aBurst) User::__DbgSetBurstAllocFail(TRUE,RAllocator::EBurstFailNext,aCount,aBurst)
       
   215 
       
   216 
       
   217 /**
       
   218 @publishedPartner
       
   219 @released
       
   220 
       
   221 Simulates Kernel heap allocation failure. 
       
   222 
       
   223 The failure occurs on subsequent calls to new or any of the functions which 
       
   224 allocate memory from this heap.
       
   225 
       
   226 This macro is defined only for debug builds.
       
   227 
       
   228 @param aType  The type of failure to be simulated.
       
   229 @param aRate The failure rate.
       
   230 
       
   231 @see RAllocator::TAllocFail
       
   232 @see User::__DbgSetAllocFail()
       
   233 */
       
   234 #define __KHEAP_SETFAIL(aType,aRate) User::__DbgSetAllocFail(TRUE,aType,aRate)
       
   235 
       
   236 /**
       
   237 @publishedPartner
       
   238 @released
       
   239 
       
   240 Simulates Kernel heap allocation failure. 
       
   241 
       
   242 The failure occurs on subsequent calls to new or any of the functions which 
       
   243 allocate memory from this heap.
       
   244 
       
   245 This macro is defined only for debug builds.
       
   246 
       
   247 @param aType  The type of failure to be simulated.
       
   248 @param aRate  The failure rate.  Note when used with RHeap the maximum value 
       
   249               aRate can be set to is KMaxTUint16.
       
   250 @param aBurst The number of consecutive allocations that will fail.  Note 
       
   251               when used with RHeap the maximum value aBurst can be set to 
       
   252               is KMaxTUint16.
       
   253 
       
   254 @see RAllocator::TAllocFail
       
   255 @see User::__DbgSetBurstAllocFail()
       
   256 */
       
   257 #define __KHEAP_SETBURSTFAIL(aType,aRate,aBurst) User::__DbgSetBurstAllocFail(TRUE,aType,aRate,aBurst)
       
   258 
       
   259 
       
   260 
       
   261 /**
       
   262 @publishedPartner
       
   263 @released
       
   264 
       
   265 Cancels simulated Kernel heap allocation failure. 
       
   266 
       
   267 Checking the Kernel heap is only useful when developing Kernel side code such 
       
   268 as device drivers and media drivers.
       
   269 
       
   270 This macro is defined only for debug builds.
       
   271 
       
   272 @see User::__DbgSetAllocFail()
       
   273 */
       
   274 #define __KHEAP_RESET User::__DbgSetAllocFail(TRUE,RAllocator::ENone,1)
       
   275 
       
   276 
       
   277 
       
   278 
       
   279 /**
       
   280 @publishedPartner
       
   281 @released
       
   282 
       
   283 Cancels simulated kernel heap allocation failure. 
       
   284 It walks the the heap and sets the nesting level for all allocated
       
   285 cells to zero.
       
   286 
       
   287 Checking the kernel heap is only useful when developing kernel side code such 
       
   288 as device drivers and media drivers.
       
   289 
       
   290 This macro is defined only for debug builds.
       
   291 */
       
   292 #define __KHEAP_TOTAL_RESET User::__DbgSetAllocFail(TRUE,RAllocator::EReset,1)
       
   293 
       
   294 #else
       
   295 
       
   296 /**
       
   297 @publishedPartner
       
   298 @released
       
   299 
       
   300 Marks the start of Kernel heap checking. 
       
   301 
       
   302 Checking the Kernel heap is only useful when developing Kernel side code such 
       
   303 as device drivers and media drivers.
       
   304 
       
   305 This macro is defined only for debug builds.
       
   306 
       
   307 This macro must be matched by a corresponding call to __KHEAP_MARKEND or __KHEAP_MARKENDC. 
       
   308 Calls to this macro can be nested but each call must be matched by corresponding 
       
   309 call to __KHEAP_MARKEND or __KHEAP_MARKENDC.
       
   310 
       
   311 @see User::__DbgMarkStart()
       
   312 @see __KHEAP_MARKEND
       
   313 @see __KHEAP_MARKENDC
       
   314 */
       
   315 #define __KHEAP_MARK
       
   316 
       
   317 
       
   318 
       
   319 
       
   320 /**
       
   321 @publishedPartner
       
   322 @released
       
   323 
       
   324 Checks that the number of allocated cells at the current nested level of the 
       
   325 Kernel heap is the same as the specified value. This macro is defined only 
       
   326 for debug builds. Checking the Kernel heap is only useful when developing 
       
   327 Kernel side code such as device drivers and media drivers.
       
   328 
       
   329 The macro also takes the name of the file containing this source code statement 
       
   330 and the line number of this source code statement; they are displayed as part 
       
   331 of the panic category, if the checks fail.
       
   332 
       
   333 @param aCount The number of heap cells expected to be allocated at
       
   334               the current nest level.
       
   335 
       
   336 @see User::__DbgMarkCheck()
       
   337 @see __UHEAP_CHECK
       
   338 */
       
   339 #define __KHEAP_CHECK(aCount)
       
   340 
       
   341 
       
   342 
       
   343 
       
   344 /**
       
   345 @publishedPartner
       
   346 @released
       
   347 
       
   348 Checks that the total number of allocated cells on the Kernel heap is the same 
       
   349 as the specified value.
       
   350 
       
   351 It is only useful when developing Kernel side code such as device drivers 
       
   352 and media drivers. 
       
   353 
       
   354 The macro also takes the name of the file containing this source code statement 
       
   355 and the line number of this source code statement; they are displayed as part 
       
   356 of the panic category, if the checks fail.
       
   357 
       
   358 This macro is defined only for debug builds.
       
   359 
       
   360 @param aCount The total number of heap cells expected to be allocated
       
   361 
       
   362 @see User::__DbgMarkCheck()
       
   363 @see __UHEAP_CHECKALL
       
   364 */
       
   365 #define __KHEAP_CHECKALL(aCount)
       
   366 
       
   367 
       
   368 
       
   369 
       
   370 /**
       
   371 @publishedPartner
       
   372 @released
       
   373 
       
   374 Marks the end of Kernel heap checking. The macro expects zero heap cells to 
       
   375 remain allocated at the current nest level.
       
   376 
       
   377 This macro is defined only for debug builds. Checking the Kernel heap is only 
       
   378 useful when developing Kernel side code such as device drivers and media drivers.
       
   379 
       
   380 This macro must match an earlier call to __KHEAP_MARK.
       
   381 
       
   382 @see User::__DbgMarkEnd()
       
   383 @see __KHEAP_MARK
       
   384 */
       
   385 #define __KHEAP_MARKEND
       
   386 
       
   387 
       
   388 
       
   389 
       
   390 /**
       
   391 @publishedPartner
       
   392 @released
       
   393 
       
   394 Marks the end of Kernel heap checking. The macro expects aCount heap cells 
       
   395 to remain allocated at the current nest level.
       
   396 
       
   397 This macro is defined only for debug builds.
       
   398 
       
   399 This macro must match an earlier call to __KHEAP_MARK.
       
   400 
       
   401 @param aCount The number of heap cells expected to remain allocated at
       
   402               the current nest level.
       
   403 
       
   404 @see User::__DbgMarkEnd()
       
   405 @see __KHEAP_MARK
       
   406 */
       
   407 #define __KHEAP_MARKENDC(aCount)
       
   408 
       
   409 
       
   410 
       
   411 
       
   412 /**
       
   413 @publishedPartner
       
   414 @released
       
   415 
       
   416 Simulates Kernel heap allocation failure. The failure occurs on the next call 
       
   417 to new or any of the functions which allocate memory from the heap. This macro 
       
   418 is defined only for debug builds.
       
   419 
       
   420 Checking the Kernel heap is only useful when developing Kernel side code such 
       
   421 as device drivers and media drivers.
       
   422 
       
   423 @param aCount The rate of failure - heap allocation fails every aCount attempt.
       
   424 
       
   425 @see User::__DbgSetAllocFail()
       
   426 */
       
   427 #define __KHEAP_FAILNEXT(aCount)
       
   428 
       
   429 /**
       
   430 @publishedPartner
       
   431 @released
       
   432 
       
   433 Simulates Kernel heap allocation failures. aBurst failures will occur on the next call 
       
   434 to new or any of the functions which allocate memory from the heap. This macro 
       
   435 is defined only for debug builds.
       
   436 
       
   437 Checking the Kernel heap is only useful when developing Kernel side code such 
       
   438 as device drivers and media drivers.
       
   439 
       
   440 @param aCount The heap allocation will fail after aCount-1 allocation attempts.  
       
   441               Note when used with RHeap the maximum value aCount can be set 
       
   442               to is KMaxTUint16.
       
   443 @param aBurst The number of allocations that will fail after aCount-1 allocation
       
   444               attempts.  Note when used with RHeap the maximum value aBurst can 
       
   445               be set to is KMaxTUint16.
       
   446 
       
   447 @see User::__DbgSetBurstAllocFail()
       
   448 */
       
   449 #define __KHEAP_BURSTFAILNEXT(aCount,aBurst)
       
   450 
       
   451 
       
   452 
       
   453 /**
       
   454 @publishedPartner
       
   455 @released
       
   456 
       
   457 Simulates Kernel heap allocation failure. 
       
   458 
       
   459 The failure occurs on subsequent calls to new or any of the functions which 
       
   460 allocate memory from this heap.
       
   461 
       
   462 This macro is defined only for debug builds.
       
   463 
       
   464 @param aType  The type of failure to be simulated.
       
   465 @param aRate The failure rate.
       
   466 
       
   467 @see User::__DbgSetAllocFail()
       
   468 */
       
   469 #define __KHEAP_SETFAIL(aType,aRate)
       
   470 
       
   471 /**
       
   472 @publishedPartner
       
   473 @released
       
   474 
       
   475 Simulates Kernel heap allocation failure. 
       
   476 
       
   477 The failure occurs on subsequent calls to new or any of the functions which 
       
   478 allocate memory from this heap.
       
   479 
       
   480 This macro is defined only for debug builds.
       
   481 
       
   482 @param aType  The type of failure to be simulated.
       
   483 @param aRate  The failure rate.  Note when used with RHeap the maximum value 
       
   484               aRate can be set to is KMaxTUint16.
       
   485 @param aBurst The number of consecutive allocations that will fail.  Note 
       
   486               when used with RHeap the maximum value aBurst can be set 
       
   487               to is KMaxTUint16.
       
   488 
       
   489 @see User::__DbgSetBurstAllocFail()
       
   490 */
       
   491 #define __KHEAP_SETBURSTFAIL(aType,aRate,aBurst)
       
   492 
       
   493 
       
   494 
       
   495 /**
       
   496 @publishedPartner
       
   497 @released
       
   498 
       
   499 Cancels simulated Kernel heap allocation failure. 
       
   500 
       
   501 Checking the Kernel heap is only useful when developing Kernel side code such 
       
   502 as device drivers and media drivers.
       
   503 
       
   504 This macro is defined only for debug builds.
       
   505 
       
   506 @see User::__DbgSetAllocFail()
       
   507 */
       
   508 #define __KHEAP_RESET
       
   509 
       
   510 
       
   511 
       
   512 /**
       
   513 @publishedPartner
       
   514 @released
       
   515 
       
   516 Cancels simulated kernel heap allocation failure. 
       
   517 It walks the the heap and sets the nesting level for all allocated
       
   518 cells to zero.
       
   519 
       
   520 Checking the kernel heap is only useful when developing kernel side code such 
       
   521 as device drivers and media drivers.
       
   522 
       
   523 This macro is defined only for debug builds.
       
   524 */
       
   525 #define __KHEAP_TOTAL_RESET
       
   526 #endif
       
   527 
       
   528 #ifndef __VALUE_IN_REGS__ 
       
   529 /**
       
   530 @publishedPartner
       
   531 @released
       
   532 */
       
   533 #define __VALUE_IN_REGS__ 
       
   534 #endif
       
   535 
       
   536 #ifdef __REMOVE_PLATSEC_DIAGNOSTICS__
       
   537 /**
       
   538 @publishedPartner
       
   539 @released
       
   540 */
       
   541 #ifndef __REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__
       
   542 #define __REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__
       
   543 #endif /*__REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__*/
       
   544 #endif /*__REMOVE_PLATSEC_DIAGNOSTICS__*/
       
   545 
       
   546 #ifndef __REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__
       
   547 /**
       
   548 @internalComponent
       
   549 */
       
   550 #define __PLATSEC_DIAGNOSTIC_FILE_AND_LINE_HELPER(l) #l
       
   551 /**
       
   552 @internalComponent
       
   553 */
       
   554 #define __PLATSEC_DIAGNOSTIC_FILE_AND_LINE_HELPER2(f,l) f "(" __PLATSEC_DIAGNOSTIC_FILE_AND_LINE_HELPER(l) ")"
       
   555 /**
       
   556 @publishedPartner
       
   557 @released
       
   558 */
       
   559 #define __PLATSEC_DIAGNOSTIC_FILE_AND_LINE __PLATSEC_DIAGNOSTIC_FILE_AND_LINE_HELPER2(__FILE__,__LINE__)
       
   560 
       
   561 #endif /* !__REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__ */
       
   562 
       
   563 #ifndef __REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__
       
   564 
       
   565 /**
       
   566 @publishedPartner
       
   567 @released
       
   568 
       
   569 A macro that should be used to enclose a platform security diagnostic
       
   570 'C' style string that can be passed to a capability checking function such
       
   571 as RThread::HasCapability() and Kern::CurrentThreadHasCapability().
       
   572 
       
   573 The content of the string is emitted if the capability test finds that
       
   574 the capability is not present.
       
   575 
       
   576 The macro provides a convenient mechanism that allows the strings to
       
   577 be removed from future versions of Symbian OS.
       
   578 
       
   579 For example:
       
   580 
       
   581 @code
       
   582 if(!Kern::CurrentThreadHasCapability(ECapabilityPowerMgmt,__PLATSEC_DIAGNOSTIC_STRING("Checked by Hal function EDisplayHalSetState")))
       
   583     {
       
   584     return KErrPermissionDenied;
       
   585     }			
       
   586 @endcode
       
   587 
       
   588 In this example, the string:
       
   589 
       
   590 @code
       
   591 Checked by Hal function EDisplayHalSetState
       
   592 @endcode
       
   593 
       
   594 is emitted if the calling process does not have the ECapabilityPowerMgmt capability.
       
   595 
       
   596 @param s A C-style string.
       
   597 
       
   598 @see RProcess::HasCapability()
       
   599 @see RThread::HasCapability()
       
   600 @see RMessagePtr2::HasCapability()
       
   601 @see User::CreatorHasCapability()
       
   602 */
       
   603 #define __PLATSEC_DIAGNOSTIC_STRING(s) s
       
   604 
       
   605 #else /* __REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__ */
       
   606 
       
   607 #define __PLATSEC_DIAGNOSTIC_STRING(s) NULL
       
   608 
       
   609 #endif /* !__REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__ */
       
   610 
       
   611 /** @internalTechnology */
       
   612 #define __NO_MUTABLE_KEYWORD
       
   613 
       
   614 
       
   615 /**
       
   616 @internalTechnology
       
   617 
       
   618 A sorted list of all the code segments in ROM that contain an Exception Descriptor.
       
   619 
       
   620 */
       
   621 typedef struct TRomExceptionSearchTable
       
   622 	{
       
   623 	/**
       
   624 	The number of entries in the following table.
       
   625 	*/
       
   626 	TInt32 iNumEntries;
       
   627 	
       
   628 	/**
       
   629 	Address of the code segment of each TRomImageHeader that has an Exception Descriptor.
       
   630 	*/
       
   631 	TLinAddr iEntries[1];
       
   632 	} TRomExceptionSearchTable;
       
   633 	
       
   634 /**
       
   635 @internalComponent
       
   636 */
       
   637 typedef struct TExceptionDescriptor 
       
   638 	{
       
   639 	TLinAddr iExIdxBase;
       
   640 	TLinAddr iExIdxLimit;
       
   641 	TLinAddr iROSegmentBase;
       
   642 	TLinAddr iROSegmentLimit;
       
   643 	} TExceptionDescriptor;
       
   644 	
       
   645 #ifdef __KERNEL_MODE__
       
   646 
       
   647 /** @internalComponent */
       
   648 #define	KIMPORT_C	IMPORT_C
       
   649 
       
   650 /** @internalComponent */
       
   651 #define	KEXPORT_C	EXPORT_C
       
   652 
       
   653 #else
       
   654 #define	KIMPORT_C
       
   655 #define	KEXPORT_C
       
   656 #endif
       
   657 
       
   658 #endif //__E32DEF_PRIVATE_H__