kernel/eka/euser/epoc/symc/uc_exec.cpp
branchanywhere
changeset 94 f36eb4948686
parent 93 7c26c0978cbf
child 95 f561f9ae805b
equal deleted inserted replaced
93:7c26c0978cbf 94:f36eb4948686
    20 
    20 
    21 #include "../win32/uc_std.h"
    21 #include "../win32/uc_std.h"
    22 #include <e32svr.h>
    22 #include <e32svr.h>
    23 #include <emulator.h>
    23 #include <emulator.h>
    24 
    24 
       
    25 //
       
    26 #include <stdlib.h>
       
    27 #include <stdio.h>
       
    28 
       
    29 /*
       
    30 Symbian compatibility executive panics
       
    31 */
       
    32 enum TSymcExecPanic
       
    33 	{
       
    34 	ESymcExecPanicHeapAlreadyExists,
       
    35 	ESymcExecPanicCreateHeapFailed
       
    36 	};
       
    37 
       
    38 void Panic(TInt aReason)
       
    39 	{
       
    40 	_LIT(KCategory,"SYMC-Exec");
       
    41 	User::Panic(KCategory,aReason);
       
    42 	}
       
    43 
       
    44 
       
    45 
       
    46 
       
    47 //
       
    48 
       
    49 
    25 typedef TInt (__fastcall *TDispatcher)(TInt, TInt*);
    50 typedef TInt (__fastcall *TDispatcher)(TInt, TInt*);
    26 TInt __fastcall LazyDispatch(TInt aFunction, TInt* aArgs);
    51 TInt __fastcall LazyDispatch(TInt aFunction, TInt* aArgs);
    27 
    52 
    28 #pragma data_seg(".data2")
    53 #pragma data_seg(".data2")
    29 #ifdef __VC32__
    54 #ifdef __VC32__
   327 
   352 
   328 
   353 
   329 //
   354 //
   330 #ifndef __GEN_USER_EXEC_CODE__
   355 #ifndef __GEN_USER_EXEC_CODE__
   331 
   356 
   332 class CProcess : public CBase
   357 /*
   333 	{
   358 Object used to store process globals for our pseudo kernel.
   334 
   359 */
       
   360 class TProcess
       
   361 	{
       
   362 public:
       
   363 	void CreateHeap();
       
   364 	void Free();
       
   365 
       
   366 public:
       
   367 	RHeap* iAllocator;
       
   368 	TAny* iBase;
   335 	};
   369 	};
   336 
   370 
       
   371 void TProcess::CreateHeap()
       
   372 	{
       
   373 	__ASSERT_ALWAYS(iAllocator==NULL && iBase==NULL,Panic(ESymcExecPanicHeapAlreadyExists));	
       
   374 	iBase=malloc(1024*10);
       
   375 	__ASSERT_ALWAYS(iBase!=NULL,Panic(ESymcExecPanicCreateHeapFailed));	
       
   376 	iAllocator=UserHeap::FixedHeap(iBase,1024*10);
       
   377 	__ASSERT_ALWAYS(iAllocator!=NULL,Panic(ESymcExecPanicCreateHeapFailed));	
       
   378 	}
       
   379 
       
   380 void TProcess::Free()
       
   381 	{
       
   382 	free(iBase);
       
   383 	}
       
   384 
       
   385 
       
   386 
       
   387 TProcess gProcess;
       
   388 
   337 
   389 
   338 
   390 
   339 //RHeap gAllocator;
   391 //RHeap gAllocator;
   340 
   392 
   341 __EXECDECL__ void Exec::WaitForAnyRequest()
   393 __EXECDECL__ void Exec::WaitForAnyRequest()
   342 	{
   394 	{
   343 	FAST_EXEC0(EFastExecWaitForAnyRequest);
   395 	FAST_EXEC0(EFastExecWaitForAnyRequest);
   344 	}
   396 	}
   345 
   397 
   346 __EXECDECL__ RAllocator* Exec::Heap()
   398 __EXECDECL__ RAllocator* Exec::Heap()
   347 	{
   399 	{	
       
   400 	//FAST_EXEC0(EFastExecHeap);
       
   401 	return gProcess.iAllocator;
       
   402 	}
       
   403 
       
   404 __EXECDECL__ RAllocator* Exec::HeapSwitch(RAllocator*)
       
   405 	{
       
   406 	FAST_EXEC1(EFastExecHeapSwitch);
       
   407 	}
       
   408 
       
   409 __EXECDECL__ TTrapHandler* Exec::PushTrapFrame(TTrap*)
       
   410 	{
       
   411 	FAST_EXEC1(EFastExecPushTrapFrame);
       
   412 	}
       
   413 
       
   414 __EXECDECL__ TTrap* Exec::PopTrapFrame()
       
   415 	{
       
   416 	FAST_EXEC0(EFastExecPopTrapFrame);
       
   417 	}
       
   418 
       
   419 __EXECDECL__ CActiveScheduler* Exec::ActiveScheduler()
       
   420 	{
       
   421 	FAST_EXEC0(EFastExecActiveScheduler);
       
   422 	}
       
   423 
       
   424 __EXECDECL__ void Exec::SetActiveScheduler(CActiveScheduler*)
       
   425 	{
       
   426 	FAST_EXEC1(EFastExecSetActiveScheduler);
       
   427 	}
       
   428 
       
   429 __EXECDECL__ TTimerLockSpec Exec::LockPeriod()
       
   430 	{
       
   431 	FAST_EXEC0(EFastExecLockPeriod);
       
   432 	}
       
   433 
       
   434 __EXECDECL__ TTrapHandler* Exec::TrapHandler()
       
   435 	{
       
   436 	FAST_EXEC0(EFastExecTrapHandler);
       
   437 	}
       
   438 
       
   439 __EXECDECL__ TTrapHandler* Exec::SetTrapHandler(TTrapHandler*)
       
   440 	{
       
   441 	FAST_EXEC1(EFastExecSetTrapHandler);
       
   442 	}
       
   443 
       
   444 __EXECDECL__ TUint32 Exec::DebugMask()
       
   445 	{
       
   446 	FAST_EXEC0(EFastExecDebugMask);
       
   447 	}
       
   448 
       
   449 __EXECDECL__ TUint32 Exec::DebugMaskIndex(TUint)
       
   450 	{
       
   451 	FAST_EXEC1(EFastExecDebugMaskIndex);
       
   452 	}
       
   453 
       
   454 __EXECDECL__ void Exec::SetDebugMask(TUint32)
       
   455 	{
       
   456 	FAST_EXEC1(EFastExecSetDebugMask);
       
   457 	}
       
   458 
       
   459 __EXECDECL__ TUint32 Exec::FastCounter()
       
   460 	{
       
   461 	FAST_EXEC0(EFastExecFastCounter);
       
   462 	}
       
   463 
       
   464 __EXECDECL__ TUint32 Exec::NTickCount()
       
   465 	{
       
   466 	FAST_EXEC0(EFastExecNTickCount);
       
   467 	}
       
   468 
       
   469 EXPORT_C __EXECDECL__ void UserSvr::LockRamDrive()
       
   470 	{
       
   471 	FAST_EXEC0(EFastExecLockRamDrive);
       
   472 	}
       
   473 
       
   474 EXPORT_C __EXECDECL__ void UserSvr::UnlockRamDrive()
       
   475 	{
       
   476 	FAST_EXEC0(EFastExecUnlockRamDrive);
       
   477 	}
       
   478 
       
   479 EXPORT_C __EXECDECL__ TLinAddr UserSvr::RomHeaderAddress()
       
   480 	{
       
   481 	FAST_EXEC0(EFastExecRomHeaderAddress);
       
   482 	}
       
   483 
       
   484 EXPORT_C __EXECDECL__ TLinAddr UserSvr::RomRootDirectoryAddress()
       
   485 	{
       
   486 	FAST_EXEC0(EFastExecRomRootDirectoryAddress);
       
   487 	}
       
   488 
       
   489 __EXECDECL__ void Exec::SetReentryPoint(TLinAddr)
       
   490 	{
       
   491 	FAST_EXEC1(EFastExecSetReentryPoint);
       
   492 	}
       
   493 
       
   494 __EXECDECL__ TUint32 Exec::KernelConfigFlags()
       
   495 	{
       
   496 	FAST_EXEC0(EFastExecKernelConfigFlags);
       
   497 	}
       
   498 
       
   499 __EXECDECL__ TInt Exec::UTCOffset()
       
   500 	{
       
   501 	FAST_EXEC0(EFastExecUTCOffset);
       
   502 	}
       
   503 
       
   504 __EXECDECL__ TInt Exec::GetGlobalUserData(TInt)
       
   505 	{
       
   506 	FAST_EXEC1(EFastExecGetGlobalUserData);
       
   507 	}
       
   508 
       
   509 EXPORT_C __EXECDECL__ TBool BTrace::CheckFilter(TUint32)
       
   510 	{
       
   511 	FAST_EXEC1(EFastExecCheckFilter);
       
   512 	}
       
   513 
       
   514 __EXECDECL__ TInt Exec::ObjectNext(TObjectType, TBuf8<KMaxFullName>&, TFindHandle&)
       
   515 	{
       
   516 	SLOW_EXEC3(EExecObjectNext);
       
   517 	}
       
   518 
       
   519 __EXECDECL__ TUint8* Exec::ChunkBase(TInt)
       
   520 	{
       
   521 	SLOW_EXEC1(EExecChunkBase);
       
   522 	}
       
   523 
       
   524 __EXECDECL__ TInt Exec::ChunkSize(TInt)
       
   525 	{
       
   526 	SLOW_EXEC1(EExecChunkSize);
       
   527 	}
       
   528 
       
   529 __EXECDECL__ TInt Exec::ChunkMaxSize(TInt)
       
   530 	{
       
   531 	SLOW_EXEC1(EExecChunkMaxSize);
       
   532 	}
       
   533 
       
   534 __EXECDECL__ TUint Exec::HandleAttributes(TInt)
       
   535 	{
       
   536 	SLOW_EXEC1(EExecHandleAttributes);
       
   537 	}
       
   538 
       
   539 __EXECDECL__ TUint Exec::TickCount()
       
   540 	{
       
   541 	SLOW_EXEC0(EExecTickCount);
       
   542 	}
       
   543 
       
   544 __EXECDECL__ void Exec::LogicalDeviceGetCaps(TInt, TDes8&)
       
   545 	{
       
   546 	SLOW_EXEC2(EExecLogicalDeviceGetCaps);
       
   547 	}
       
   548 
       
   549 __EXECDECL__ TBool Exec::LogicalDeviceQueryVersionSupported(TInt, const TVersion&)
       
   550 	{
       
   551 	SLOW_EXEC2(EExecLogicalDeviceQueryVersionSupported);
       
   552 	}
       
   553 
       
   554 __EXECDECL__ TBool Exec::LogicalDeviceIsAvailable(TInt, TInt, const TDesC8*, const TDesC8*)
       
   555 	{
       
   556 	SLOW_EXEC4(EExecLogicalDeviceIsAvailable);
       
   557 	}
       
   558 
       
   559 EXPORT_C __EXECDECL__ TInt E32Loader::LocaleExports(TAny*, TLibraryFunction*)
       
   560 	{
       
   561 	SLOW_EXEC2(EExecLocaleExports);
       
   562 	}
       
   563 
       
   564 __EXECDECL__ TInt Exec::ChannelRequest(TInt, TInt, TAny*, TAny*)
       
   565 	{
       
   566 	SLOW_EXEC4(EExecChannelRequest);
       
   567 	}
       
   568 
       
   569 __EXECDECL__ TUint32 Exec::MathRandom()
       
   570 	{
       
   571 	SLOW_EXEC0(EExecMathRandom);
       
   572 	}
       
   573 
       
   574 __EXECDECL__ void Exec::IMB_Range(TAny*, TUint)
       
   575 	{
       
   576 	SLOW_EXEC2(EExecIMBRange);
       
   577 	}
       
   578 
       
   579 __EXECDECL__ TInt Exec::ResetMachine(TMachineStartupType)
       
   580 	{
       
   581 	SLOW_EXEC1(EExecResetMachine);
       
   582 	}
       
   583 
       
   584 __EXECDECL__ TLibraryFunction Exec::LibraryLookup(TInt, TInt)
       
   585 	{
       
   586 	SLOW_EXEC2(EExecLibraryLookup);
       
   587 	}
       
   588 
       
   589 __EXECDECL__ void Exec::LibraryFileName(TInt, TDes8&)
       
   590 	{
       
   591 	SLOW_EXEC2(EExecLibraryFileName);
       
   592 	}
       
   593 
       
   594 EXPORT_C __EXECDECL__ TInt UserSvr::ExecuteInSupervisorMode(TSupervisorFunction, TAny*)
       
   595 	{
       
   596 	SLOW_EXEC2(EExecExecuteInSupervisorMode);
       
   597 	}
       
   598 
       
   599 __EXECDECL__ void Exec::MutexWait(TInt)
       
   600 	{
       
   601 	SLOW_EXEC1(EExecMutexWait);
       
   602 	}
       
   603 
       
   604 __EXECDECL__ void Exec::MutexSignal(TInt)
       
   605 	{
       
   606 	SLOW_EXEC1(EExecMutexSignal);
       
   607 	}
       
   608 
       
   609 __EXECDECL__ TInt Exec::ProcessId(TInt)
       
   610 	{
       
   611 	SLOW_EXEC1(EExecProcessId);
       
   612 	}
       
   613 
       
   614 __EXECDECL__ void Exec::DllFileName(TInt, TDes8&)
       
   615 	{
       
   616 	SLOW_EXEC2(EExecDllFileName);
       
   617 	}
       
   618 
       
   619 __EXECDECL__ void Exec::ProcessResume(TInt)
       
   620 	{
       
   621 	SLOW_EXEC1(EExecProcessResume);
       
   622 	}
       
   623 
       
   624 __EXECDECL__ void Exec::ProcessFileName(TInt, TDes8&)
       
   625 	{
       
   626 	SLOW_EXEC2(EExecProcessFileName);
       
   627 	}
       
   628 
       
   629 __EXECDECL__ void Exec::ProcessCommandLine(TInt, TDes8&)
       
   630 	{
       
   631 	SLOW_EXEC2(EExecProcessCommandLine);
       
   632 	}
       
   633 
       
   634 __EXECDECL__ TExitType Exec::ProcessExitType(TInt)
       
   635 	{
       
   636 	SLOW_EXEC1(EExecProcessExitType);
       
   637 	}
       
   638 
       
   639 __EXECDECL__ TInt Exec::ProcessExitReason(TInt)
       
   640 	{
       
   641 	SLOW_EXEC1(EExecProcessExitReason);
       
   642 	}
       
   643 
       
   644 __EXECDECL__ void Exec::ProcessExitCategory(TInt, TDes8&)
       
   645 	{
       
   646 	SLOW_EXEC2(EExecProcessExitCategory);
       
   647 	}
       
   648 
       
   649 __EXECDECL__ TProcessPriority Exec::ProcessPriority(TInt)
       
   650 	{
       
   651 	SLOW_EXEC1(EExecProcessPriority);
       
   652 	}
       
   653 
       
   654 __EXECDECL__ TInt Exec::ProcessSetPriority(TInt, TProcessPriority)
       
   655 	{
       
   656 	SLOW_EXEC2(EExecProcessSetPriority);
       
   657 	}
       
   658 
       
   659 __EXECDECL__ TUint Exec::ProcessFlags(TInt)
       
   660 	{
       
   661 	SLOW_EXEC1(EExecProcessFlags);
       
   662 	}
       
   663 
       
   664 __EXECDECL__ void Exec::ProcessSetFlags(TInt, TUint, TUint)
       
   665 	{
       
   666 	SLOW_EXEC3(EExecProcessSetFlags);
       
   667 	}
       
   668 
       
   669 __EXECDECL__ TInt Exec::SemaphoreWait(TInt, TInt)
       
   670 	{
       
   671 	SLOW_EXEC2(EExecSemaphoreWait);
       
   672 	}
       
   673 
       
   674 __EXECDECL__ void Exec::SemaphoreSignal1(TInt)
       
   675 	{
       
   676 	SLOW_EXEC1(EExecSemaphoreSignal1);
       
   677 	}
       
   678 
       
   679 __EXECDECL__ void Exec::SemaphoreSignalN(TInt, TInt)
       
   680 	{
       
   681 	SLOW_EXEC2(EExecSemaphoreSignalN);
       
   682 	}
       
   683 
       
   684 __EXECDECL__ void Exec::ServerReceive(TInt, TRequestStatus&, TAny*)
       
   685 	{
       
   686 	SLOW_EXEC3(EExecServerReceive);
       
   687 	}
       
   688 
       
   689 __EXECDECL__ void Exec::ServerCancel(TInt)
       
   690 	{
       
   691 	SLOW_EXEC1(EExecServerCancel);
       
   692 	}
       
   693 
       
   694 __EXECDECL__ void Exec::SetSessionPtr(TInt, const TAny*)
       
   695 	{
       
   696 	SLOW_EXEC2(EExecSetSessionPtr);
       
   697 	}
       
   698 
       
   699 __EXECDECL__ TInt Exec::ThreadId(TInt)
       
   700 	{
       
   701 	SLOW_EXEC1(EExecThreadId);
       
   702 	}
       
   703 
       
   704 __EXECDECL__ TInt Exec::SessionShare(TInt&, TInt)
       
   705 	{
       
   706 	SLOW_EXEC2(EExecSessionShare);
       
   707 	}
       
   708 
       
   709 __EXECDECL__ void Exec::ThreadResume(TInt)
       
   710 	{
       
   711 	SLOW_EXEC1(EExecThreadResume);
       
   712 	}
       
   713 
       
   714 __EXECDECL__ void Exec::ThreadSuspend(TInt)
       
   715 	{
       
   716 	SLOW_EXEC1(EExecThreadSuspend);
       
   717 	}
       
   718 
       
   719 __EXECDECL__ TThreadPriority Exec::ThreadPriority(TInt)
       
   720 	{
       
   721 	SLOW_EXEC1(EExecThreadPriority);
       
   722 	}
       
   723 
       
   724 __EXECDECL__ void Exec::ThreadSetPriority(TInt, TThreadPriority)
       
   725 	{
       
   726 	SLOW_EXEC2(EExecThreadSetPriority);
       
   727 	}
       
   728 
       
   729 __EXECDECL__ TProcessPriority Exec::ThreadProcessPriority(TInt)
       
   730 	{
       
   731 	SLOW_EXEC1(EExecThreadProcessPriority);
       
   732 	}
       
   733 
       
   734 __EXECDECL__ void Exec::ThreadSetProcessPriority(TInt, TProcessPriority)
       
   735 	{
       
   736 	SLOW_EXEC2(EExecThreadSetProcessPriority);
       
   737 	}
       
   738 
       
   739 __EXECDECL__ TUint Exec::ThreadFlags(TInt)
       
   740 	{
       
   741 	SLOW_EXEC1(EExecThreadFlags);
       
   742 	}
       
   743 
       
   744 __EXECDECL__ void Exec::ThreadSetFlags(TInt, TUint, TUint)
       
   745 	{
       
   746 	SLOW_EXEC3(EExecThreadSetFlags);
       
   747 	}
       
   748 
       
   749 __EXECDECL__ TInt Exec::ThreadRequestCount(TInt)
       
   750 	{
       
   751 	SLOW_EXEC1(EExecThreadRequestCount);
       
   752 	}
       
   753 
       
   754 __EXECDECL__ TExitType Exec::ThreadExitType(TInt)
       
   755 	{
       
   756 	SLOW_EXEC1(EExecThreadExitType);
       
   757 	}
       
   758 
       
   759 __EXECDECL__ TInt Exec::ThreadExitReason(TInt)
       
   760 	{
       
   761 	SLOW_EXEC1(EExecThreadExitReason);
       
   762 	}
       
   763 
       
   764 __EXECDECL__ void Exec::ThreadExitCategory(TInt, TDes8&)
       
   765 	{
       
   766 	SLOW_EXEC2(EExecThreadExitCategory);
       
   767 	}
       
   768 
       
   769 __EXECDECL__ void Exec::TimerCancel(TInt)
       
   770 	{
       
   771 	SLOW_EXEC1(EExecTimerCancel);
       
   772 	}
       
   773 
       
   774 __EXECDECL__ void Exec::TimerAfter(TInt, TRequestStatus&, TInt)
       
   775 	{
       
   776 	SLOW_EXEC3(EExecTimerAfter);
       
   777 	}
       
   778 
       
   779 __EXECDECL__ void Exec::TimerAt(TInt, TRequestStatus&, TUint32, TUint32)
       
   780 	{
       
   781 	SLOW_EXEC4(EExecTimerAt);
       
   782 	}
       
   783 
       
   784 __EXECDECL__ void Exec::TimerLock(TInt, TRequestStatus&, TTimerLockSpec)
       
   785 	{
       
   786 	SLOW_EXEC3(EExecTimerLock);
       
   787 	}
       
   788 
       
   789 __EXECDECL__ TInt Exec::ChangeNotifierLogon(TInt, TRequestStatus&)
       
   790 	{
       
   791 	SLOW_EXEC2(EExecChangeNotifierLogon);
       
   792 	}
       
   793 
       
   794 __EXECDECL__ TInt Exec::ChangeNotifierLogoff(TInt)
       
   795 	{
       
   796 	SLOW_EXEC1(EExecChangeNotifierLogoff);
       
   797 	}
       
   798 
       
   799 __EXECDECL__ void Exec::RequestSignal(TInt)
       
   800 	{
       
   801 	SLOW_EXEC1(EExecRequestSignal);
       
   802 	}
       
   803 
       
   804 __EXECDECL__ void Exec::HandleName(TInt, TDes8&)
       
   805 	{
       
   806 	SLOW_EXEC2(EExecHandleName);
       
   807 	}
       
   808 
       
   809 __EXECDECL__ void Exec::HandleFullName(TInt, TDes8&)
       
   810 	{
       
   811 	SLOW_EXEC2(EExecHandleFullName);
       
   812 	}
       
   813 
       
   814 __EXECDECL__ void Exec::HandleInfo(TInt, THandleInfo*)
       
   815 	{
       
   816 	SLOW_EXEC2(EExecHandleInfo);
       
   817 	}
       
   818 
       
   819 __EXECDECL__ void Exec::HandleCount(TInt, TInt&, TInt&)
       
   820 	{
       
   821 	SLOW_EXEC3(EExecHandleCount);
       
   822 	}
       
   823 
       
   824 __EXECDECL__ void Exec::After(TInt, TRequestStatus&)
       
   825 	{
       
   826 	SLOW_EXEC2(EExecAfter);
       
   827 	}
       
   828 
       
   829 __EXECDECL__ void Exec::At(const EXEC_TIME&, TRequestStatus&)
       
   830 	{
       
   831 	SLOW_EXEC2(EExecAt);
       
   832 	}
       
   833 
       
   834 __EXECDECL__ void Exec::MessageComplete(TInt, TInt)
       
   835 	{
       
   836 	SLOW_EXEC2(EExecMessageComplete);
       
   837 	}
       
   838 
       
   839 __EXECDECL__ void Exec::MessageCompleteWithHandle(TInt, TInt)
       
   840 	{
       
   841 	SLOW_EXEC2(EExecMessageCompleteWithHandle);
       
   842 	}
       
   843 
       
   844 __EXECDECL__ void Exec::TransferSession(TInt, TInt)
       
   845 	{
       
   846 	SLOW_EXEC2(EExecTransferSession);
       
   847 	}
       
   848 
       
   849 __EXECDECL__ TInt Exec::TimeNow(EXEC_TIME&, TInt&)
       
   850 	{
       
   851 	SLOW_EXEC2(EExecTimeNow);
       
   852 	}
       
   853 
       
   854 __EXECDECL__ TInt Exec::TimeNowSecure(EXEC_TIME&, TInt&)
       
   855 	{
       
   856 	SLOW_EXEC2(EExecTimeNowSecure);
       
   857 	}
       
   858 
       
   859 __EXECDECL__ TInt Exec::SetUTCTimeAndOffset(const EXEC_TIME&, TInt, TUint, TUint)
       
   860 	{
       
   861 	SLOW_EXEC4(EExecSetUTCTimeAndOffset);
       
   862 	}
       
   863 
       
   864 __EXECDECL__ TInt Exec::SetMachineConfiguration(const TDesC8&)
       
   865 	{
       
   866 	SLOW_EXEC1(EExecSetMachineConfiguration);
       
   867 	}
       
   868 
       
   869 __EXECDECL__ void Exec::CaptureEventHook()
       
   870 	{
       
   871 	SLOW_EXEC0(EExecCaptureEventHook);
       
   872 	}
       
   873 
       
   874 __EXECDECL__ void Exec::ReleaseEventHook()
       
   875 	{
       
   876 	SLOW_EXEC0(EExecReleaseEventHook);
       
   877 	}
       
   878 
       
   879 __EXECDECL__ void Exec::RequestEvent(TRawEventBuf&, TRequestStatus&)
       
   880 	{
       
   881 	SLOW_EXEC2(EExecRequestEvent);
       
   882 	}
       
   883 
       
   884 __EXECDECL__ void Exec::RequestEventCancel()
       
   885 	{
       
   886 	SLOW_EXEC0(EExecRequestEventCancel);
       
   887 	}
       
   888 
       
   889 __EXECDECL__ TInt Exec::AddEvent(const TRawEvent&)
       
   890 	{
       
   891 	SLOW_EXEC1(EExecAddEvent);
       
   892 	}
       
   893 
       
   894 __EXECDECL__ TAny* Exec::DllTls(TInt aHandle, TInt aDllUid)
       
   895 	{
       
   896 	//SLOW_EXEC2(EExecDllTls);
       
   897 	if (aHandle==-1 && aDllUid==-1)
       
   898 		{
       
   899 		//No TGlobalDestructorFunc ATM
       
   900 		return NULL;
       
   901 		}
       
   902 	else
       
   903 		{
       
   904 		//No sure what to do here
       
   905 		__BREAKPOINT();
       
   906 		}
       
   907 
       
   908 	}
       
   909 
       
   910 __EXECDECL__ TInt Exec::HalFunction(TInt, TInt, TAny*, TAny*)
       
   911 	{
       
   912 	SLOW_EXEC4(EExecHalFunction);
       
   913 	}
       
   914 
       
   915 __EXECDECL__ void Exec::WsRegisterThread()
       
   916 	{
       
   917 	SLOW_EXEC0(EExecWsRegisterThread);
       
   918 	}
       
   919 
       
   920 __EXECDECL__ void Exec::FsRegisterThread()
       
   921 	{
       
   922 	SLOW_EXEC0(EExecFsRegisterThread);
       
   923 	}
       
   924 
       
   925 __EXECDECL__ TInt Exec::ProcessCommandLineLength(TInt)
       
   926 	{
       
   927 	SLOW_EXEC1(EExecProcessCommandLineLength);
       
   928 	}
       
   929 
       
   930 __EXECDECL__ void Exec::TimerInactivity(TInt, TRequestStatus&, TInt)
       
   931 	{
       
   932 	SLOW_EXEC3(EExecTimerInactivity);
       
   933 	}
       
   934 
       
   935 __EXECDECL__ TInt Exec::UserInactivityTime()
       
   936 	{
       
   937 	SLOW_EXEC0(EExecUserInactivityTime);
       
   938 	}
       
   939 
       
   940 __EXECDECL__ void Exec::ResetInactivityTime()
       
   941 	{
       
   942 	SLOW_EXEC0(EExecResetInactivityTime);
       
   943 	}
       
   944 
       
   945 __EXECDECL__ void Exec::DebugPrint(TAny*, TInt)
       
   946 	{
       
   947 	SLOW_EXEC2(EExecDebugPrint);
       
   948 	}
       
   949 
       
   950 __EXECDECL__ TInt Exec::BreakPoint()
       
   951 	{
       
   952 	SLOW_EXEC0(EExecBreakPoint);
       
   953 	}
       
   954 
       
   955 __EXECDECL__ TInt Exec::ProfileStart(TInt)
       
   956 	{
       
   957 	SLOW_EXEC1(EExecProfileStart);
       
   958 	}
       
   959 
       
   960 __EXECDECL__ TInt Exec::ProfileEnd(TInt)
       
   961 	{
       
   962 	SLOW_EXEC1(EExecProfileEnd);
       
   963 	}
       
   964 
       
   965 __EXECDECL__ TExceptionHandler Exec::ExceptionHandler(TInt)
       
   966 	{
       
   967 	SLOW_EXEC1(EExecExceptionHandler);
       
   968 	}
       
   969 
       
   970 __EXECDECL__ TInt Exec::SetExceptionHandler(TInt, TExceptionHandler, TUint32)
       
   971 	{
       
   972 	SLOW_EXEC3(EExecSetExceptionHandler);
       
   973 	}
       
   974 
       
   975 __EXECDECL__ void Exec::ModifyExceptionMask(TInt, TUint32, TUint32)
       
   976 	{
       
   977 	SLOW_EXEC3(EExecModifyExceptionMask);
       
   978 	}
       
   979 
       
   980 __EXECDECL__ TInt Exec::RaiseException(TInt, TExcType)
       
   981 	{
       
   982 	SLOW_EXEC2(EExecRaiseException);
       
   983 	}
       
   984 
       
   985 __EXECDECL__ TInt Exec::IsExceptionHandled(TInt, TExcType, TBool)
       
   986 	{
       
   987 	SLOW_EXEC3(EExecIsExceptionHandled);
       
   988 	}
       
   989 
       
   990 __EXECDECL__ TInt Exec::ProcessGetMemoryInfo(TInt, TModuleMemoryInfo&)
       
   991 	{
       
   992 	SLOW_EXEC2(EExecProcessGetMemoryInfo);
       
   993 	}
       
   994 
       
   995 __EXECDECL__ TInt Exec::LibraryGetMemoryInfo(TInt, TModuleMemoryInfo&)
       
   996 	{
       
   997 	SLOW_EXEC2(EExecLibraryGetMemoryInfo);
       
   998 	}
       
   999 
       
  1000 __EXECDECL__ TInt Exec::MachineConfiguration(TDes8&, TInt&)
       
  1001 	{
       
  1002 	SLOW_EXEC2(EExecMachineConfiguration);
       
  1003 	}
       
  1004 
       
  1005 __EXECDECL__ TInt Exec::SetMemoryThresholds(TInt, TInt)
       
  1006 	{
       
  1007 	SLOW_EXEC2(EExecSetMemoryThresholds);
       
  1008 	}
       
  1009 
       
  1010 __EXECDECL__ void Exec::LibraryType(TInt, TUidType&)
       
  1011 	{
       
  1012 	SLOW_EXEC2(EExecLibraryType);
       
  1013 	}
       
  1014 
       
  1015 __EXECDECL__ void Exec::ProcessType(TInt, TUidType&)
       
  1016 	{
       
  1017 	SLOW_EXEC2(EExecProcessType);
       
  1018 	}
       
  1019 
       
  1020 __EXECDECL__ TInt Exec::ChunkBottom(TInt)
       
  1021 	{
       
  1022 	SLOW_EXEC1(EExecChunkBottom);
       
  1023 	}
       
  1024 
       
  1025 __EXECDECL__ TInt Exec::ChunkTop(TInt)
       
  1026 	{
       
  1027 	SLOW_EXEC1(EExecChunkTop);
       
  1028 	}
       
  1029 
       
  1030 __EXECDECL__ void Exec::ThreadContext(TInt, TDes8&)
       
  1031 	{
       
  1032 	SLOW_EXEC2(EExecThreadContext);
       
  1033 	}
       
  1034 
       
  1035 __EXECDECL__ TInt Exec::ThreadCreate(const TDesC8&, TOwnerType, SThreadCreateInfo8&)
       
  1036 	{
       
  1037 	SLOW_EXEC3(EExecThreadCreate);
       
  1038 	}
       
  1039 
       
  1040 __EXECDECL__ TInt Exec::FindHandleOpen(TOwnerType, const TFindHandle&)
       
  1041 	{
       
  1042 	SLOW_EXEC2(EExecFindHandleOpen);
       
  1043 	}
       
  1044 
       
  1045 __EXECDECL__ TInt Exec::HandleClose(TInt)
       
  1046 	{
       
  1047 	SLOW_EXEC1(EExecHandleClose);
       
  1048 	}
       
  1049 
       
  1050 __EXECDECL__ TInt Exec::ChunkCreate(TOwnerType, const TDesC8*, TChunkCreate&)
       
  1051 	{
       
  1052 	SLOW_EXEC3(EExecChunkCreate);
       
  1053 	}
       
  1054 
       
  1055 __EXECDECL__ TInt Exec::ChunkAdjust(TInt, TInt, TInt, TInt)
       
  1056 	{
       
  1057 	SLOW_EXEC4(EExecChunkAdjust);
       
  1058 	}
       
  1059 
       
  1060 __EXECDECL__ TInt Exec::OpenObject(TObjectType, const TDesC8&, TOwnerType)
       
  1061 	{
       
  1062 	SLOW_EXEC3(EExecOpenObject);
       
  1063 	}
       
  1064 
       
  1065 __EXECDECL__ TInt Exec::HandleDuplicate(TInt, TOwnerType, TInt&)
       
  1066 	{
       
  1067 	SLOW_EXEC3(EExecHandleDuplicate);
       
  1068 	}
       
  1069 
       
  1070 __EXECDECL__ TInt Exec::MutexCreate(const TDesC8*, TOwnerType)
       
  1071 	{
       
  1072 	SLOW_EXEC2(EExecMutexCreate);
       
  1073 	}
       
  1074 
       
  1075 __EXECDECL__ TInt Exec::SemaphoreCreate(const TDesC8*, TInt, TOwnerType)
       
  1076 	{
       
  1077 	SLOW_EXEC3(EExecSemaphoreCreate);
       
  1078 	}
       
  1079 
       
  1080 __EXECDECL__ TInt Exec::ThreadOpenById(TUint, TOwnerType)
       
  1081 	{
       
  1082 	SLOW_EXEC2(EExecThreadOpenById);
       
  1083 	}
       
  1084 
       
  1085 __EXECDECL__ TInt Exec::ProcessOpenById(TUint, TOwnerType)
       
  1086 	{
       
  1087 	SLOW_EXEC2(EExecProcessOpenById);
       
  1088 	}
       
  1089 
       
  1090 __EXECDECL__ void Exec::ThreadKill(TInt aThreadHandle, TExitType aType, TInt aReason, const TDesC8* aCategory)
       
  1091 	{
       
  1092 	//SLOW_EXEC4(EExecThreadKill);
       
  1093 	if (aThreadHandle!=KCurrentThreadHandle)
       
  1094 		{
       
  1095 		//Not sure how to do that yet
       
  1096 		__BREAKPOINT();
       
  1097 		return;
       
  1098 		}
       
  1099 
       
  1100 	if (aType==EExitPanic)
       
  1101 		{
       
  1102 		//Display message
       
  1103 #ifdef _WINDOWS
       
  1104 		TBuf8<256> buf;
       
  1105 		buf.Copy(*aCategory);	
       
  1106 		char errstr[256]; sprintf(errstr, "Category: %s\nReason: %d",buf.PtrZ(),aReason);
       
  1107 		MessageBoxA(NULL,errstr, "PANIC", MB_OK | MB_ICONERROR);	
       
  1108 #endif
       
  1109 		__BREAKPOINT();
       
  1110 		}
   348 	
  1111 	
   349 	FAST_EXEC0(EFastExecHeap);
  1112 	exit(aType);
   350 	}
       
   351 
       
   352 __EXECDECL__ RAllocator* Exec::HeapSwitch(RAllocator*)
       
   353 	{
       
   354 	FAST_EXEC1(EFastExecHeapSwitch);
       
   355 	}
       
   356 
       
   357 __EXECDECL__ TTrapHandler* Exec::PushTrapFrame(TTrap*)
       
   358 	{
       
   359 	FAST_EXEC1(EFastExecPushTrapFrame);
       
   360 	}
       
   361 
       
   362 __EXECDECL__ TTrap* Exec::PopTrapFrame()
       
   363 	{
       
   364 	FAST_EXEC0(EFastExecPopTrapFrame);
       
   365 	}
       
   366 
       
   367 __EXECDECL__ CActiveScheduler* Exec::ActiveScheduler()
       
   368 	{
       
   369 	FAST_EXEC0(EFastExecActiveScheduler);
       
   370 	}
       
   371 
       
   372 __EXECDECL__ void Exec::SetActiveScheduler(CActiveScheduler*)
       
   373 	{
       
   374 	FAST_EXEC1(EFastExecSetActiveScheduler);
       
   375 	}
       
   376 
       
   377 __EXECDECL__ TTimerLockSpec Exec::LockPeriod()
       
   378 	{
       
   379 	FAST_EXEC0(EFastExecLockPeriod);
       
   380 	}
       
   381 
       
   382 __EXECDECL__ TTrapHandler* Exec::TrapHandler()
       
   383 	{
       
   384 	FAST_EXEC0(EFastExecTrapHandler);
       
   385 	}
       
   386 
       
   387 __EXECDECL__ TTrapHandler* Exec::SetTrapHandler(TTrapHandler*)
       
   388 	{
       
   389 	FAST_EXEC1(EFastExecSetTrapHandler);
       
   390 	}
       
   391 
       
   392 __EXECDECL__ TUint32 Exec::DebugMask()
       
   393 	{
       
   394 	FAST_EXEC0(EFastExecDebugMask);
       
   395 	}
       
   396 
       
   397 __EXECDECL__ TUint32 Exec::DebugMaskIndex(TUint)
       
   398 	{
       
   399 	FAST_EXEC1(EFastExecDebugMaskIndex);
       
   400 	}
       
   401 
       
   402 __EXECDECL__ void Exec::SetDebugMask(TUint32)
       
   403 	{
       
   404 	FAST_EXEC1(EFastExecSetDebugMask);
       
   405 	}
       
   406 
       
   407 __EXECDECL__ TUint32 Exec::FastCounter()
       
   408 	{
       
   409 	FAST_EXEC0(EFastExecFastCounter);
       
   410 	}
       
   411 
       
   412 __EXECDECL__ TUint32 Exec::NTickCount()
       
   413 	{
       
   414 	FAST_EXEC0(EFastExecNTickCount);
       
   415 	}
       
   416 
       
   417 EXPORT_C __EXECDECL__ void UserSvr::LockRamDrive()
       
   418 	{
       
   419 	FAST_EXEC0(EFastExecLockRamDrive);
       
   420 	}
       
   421 
       
   422 EXPORT_C __EXECDECL__ void UserSvr::UnlockRamDrive()
       
   423 	{
       
   424 	FAST_EXEC0(EFastExecUnlockRamDrive);
       
   425 	}
       
   426 
       
   427 EXPORT_C __EXECDECL__ TLinAddr UserSvr::RomHeaderAddress()
       
   428 	{
       
   429 	FAST_EXEC0(EFastExecRomHeaderAddress);
       
   430 	}
       
   431 
       
   432 EXPORT_C __EXECDECL__ TLinAddr UserSvr::RomRootDirectoryAddress()
       
   433 	{
       
   434 	FAST_EXEC0(EFastExecRomRootDirectoryAddress);
       
   435 	}
       
   436 
       
   437 __EXECDECL__ void Exec::SetReentryPoint(TLinAddr)
       
   438 	{
       
   439 	FAST_EXEC1(EFastExecSetReentryPoint);
       
   440 	}
       
   441 
       
   442 __EXECDECL__ TUint32 Exec::KernelConfigFlags()
       
   443 	{
       
   444 	FAST_EXEC0(EFastExecKernelConfigFlags);
       
   445 	}
       
   446 
       
   447 __EXECDECL__ TInt Exec::UTCOffset()
       
   448 	{
       
   449 	FAST_EXEC0(EFastExecUTCOffset);
       
   450 	}
       
   451 
       
   452 __EXECDECL__ TInt Exec::GetGlobalUserData(TInt)
       
   453 	{
       
   454 	FAST_EXEC1(EFastExecGetGlobalUserData);
       
   455 	}
       
   456 
       
   457 EXPORT_C __EXECDECL__ TBool BTrace::CheckFilter(TUint32)
       
   458 	{
       
   459 	FAST_EXEC1(EFastExecCheckFilter);
       
   460 	}
       
   461 
       
   462 __EXECDECL__ TInt Exec::ObjectNext(TObjectType, TBuf8<KMaxFullName>&, TFindHandle&)
       
   463 	{
       
   464 	SLOW_EXEC3(EExecObjectNext);
       
   465 	}
       
   466 
       
   467 __EXECDECL__ TUint8* Exec::ChunkBase(TInt)
       
   468 	{
       
   469 	SLOW_EXEC1(EExecChunkBase);
       
   470 	}
       
   471 
       
   472 __EXECDECL__ TInt Exec::ChunkSize(TInt)
       
   473 	{
       
   474 	SLOW_EXEC1(EExecChunkSize);
       
   475 	}
       
   476 
       
   477 __EXECDECL__ TInt Exec::ChunkMaxSize(TInt)
       
   478 	{
       
   479 	SLOW_EXEC1(EExecChunkMaxSize);
       
   480 	}
       
   481 
       
   482 __EXECDECL__ TUint Exec::HandleAttributes(TInt)
       
   483 	{
       
   484 	SLOW_EXEC1(EExecHandleAttributes);
       
   485 	}
       
   486 
       
   487 __EXECDECL__ TUint Exec::TickCount()
       
   488 	{
       
   489 	SLOW_EXEC0(EExecTickCount);
       
   490 	}
       
   491 
       
   492 __EXECDECL__ void Exec::LogicalDeviceGetCaps(TInt, TDes8&)
       
   493 	{
       
   494 	SLOW_EXEC2(EExecLogicalDeviceGetCaps);
       
   495 	}
       
   496 
       
   497 __EXECDECL__ TBool Exec::LogicalDeviceQueryVersionSupported(TInt, const TVersion&)
       
   498 	{
       
   499 	SLOW_EXEC2(EExecLogicalDeviceQueryVersionSupported);
       
   500 	}
       
   501 
       
   502 __EXECDECL__ TBool Exec::LogicalDeviceIsAvailable(TInt, TInt, const TDesC8*, const TDesC8*)
       
   503 	{
       
   504 	SLOW_EXEC4(EExecLogicalDeviceIsAvailable);
       
   505 	}
       
   506 
       
   507 EXPORT_C __EXECDECL__ TInt E32Loader::LocaleExports(TAny*, TLibraryFunction*)
       
   508 	{
       
   509 	SLOW_EXEC2(EExecLocaleExports);
       
   510 	}
       
   511 
       
   512 __EXECDECL__ TInt Exec::ChannelRequest(TInt, TInt, TAny*, TAny*)
       
   513 	{
       
   514 	SLOW_EXEC4(EExecChannelRequest);
       
   515 	}
       
   516 
       
   517 __EXECDECL__ TUint32 Exec::MathRandom()
       
   518 	{
       
   519 	SLOW_EXEC0(EExecMathRandom);
       
   520 	}
       
   521 
       
   522 __EXECDECL__ void Exec::IMB_Range(TAny*, TUint)
       
   523 	{
       
   524 	SLOW_EXEC2(EExecIMBRange);
       
   525 	}
       
   526 
       
   527 __EXECDECL__ TInt Exec::ResetMachine(TMachineStartupType)
       
   528 	{
       
   529 	SLOW_EXEC1(EExecResetMachine);
       
   530 	}
       
   531 
       
   532 __EXECDECL__ TLibraryFunction Exec::LibraryLookup(TInt, TInt)
       
   533 	{
       
   534 	SLOW_EXEC2(EExecLibraryLookup);
       
   535 	}
       
   536 
       
   537 __EXECDECL__ void Exec::LibraryFileName(TInt, TDes8&)
       
   538 	{
       
   539 	SLOW_EXEC2(EExecLibraryFileName);
       
   540 	}
       
   541 
       
   542 EXPORT_C __EXECDECL__ TInt UserSvr::ExecuteInSupervisorMode(TSupervisorFunction, TAny*)
       
   543 	{
       
   544 	SLOW_EXEC2(EExecExecuteInSupervisorMode);
       
   545 	}
       
   546 
       
   547 __EXECDECL__ void Exec::MutexWait(TInt)
       
   548 	{
       
   549 	SLOW_EXEC1(EExecMutexWait);
       
   550 	}
       
   551 
       
   552 __EXECDECL__ void Exec::MutexSignal(TInt)
       
   553 	{
       
   554 	SLOW_EXEC1(EExecMutexSignal);
       
   555 	}
       
   556 
       
   557 __EXECDECL__ TInt Exec::ProcessId(TInt)
       
   558 	{
       
   559 	SLOW_EXEC1(EExecProcessId);
       
   560 	}
       
   561 
       
   562 __EXECDECL__ void Exec::DllFileName(TInt, TDes8&)
       
   563 	{
       
   564 	SLOW_EXEC2(EExecDllFileName);
       
   565 	}
       
   566 
       
   567 __EXECDECL__ void Exec::ProcessResume(TInt)
       
   568 	{
       
   569 	SLOW_EXEC1(EExecProcessResume);
       
   570 	}
       
   571 
       
   572 __EXECDECL__ void Exec::ProcessFileName(TInt, TDes8&)
       
   573 	{
       
   574 	SLOW_EXEC2(EExecProcessFileName);
       
   575 	}
       
   576 
       
   577 __EXECDECL__ void Exec::ProcessCommandLine(TInt, TDes8&)
       
   578 	{
       
   579 	SLOW_EXEC2(EExecProcessCommandLine);
       
   580 	}
       
   581 
       
   582 __EXECDECL__ TExitType Exec::ProcessExitType(TInt)
       
   583 	{
       
   584 	SLOW_EXEC1(EExecProcessExitType);
       
   585 	}
       
   586 
       
   587 __EXECDECL__ TInt Exec::ProcessExitReason(TInt)
       
   588 	{
       
   589 	SLOW_EXEC1(EExecProcessExitReason);
       
   590 	}
       
   591 
       
   592 __EXECDECL__ void Exec::ProcessExitCategory(TInt, TDes8&)
       
   593 	{
       
   594 	SLOW_EXEC2(EExecProcessExitCategory);
       
   595 	}
       
   596 
       
   597 __EXECDECL__ TProcessPriority Exec::ProcessPriority(TInt)
       
   598 	{
       
   599 	SLOW_EXEC1(EExecProcessPriority);
       
   600 	}
       
   601 
       
   602 __EXECDECL__ TInt Exec::ProcessSetPriority(TInt, TProcessPriority)
       
   603 	{
       
   604 	SLOW_EXEC2(EExecProcessSetPriority);
       
   605 	}
       
   606 
       
   607 __EXECDECL__ TUint Exec::ProcessFlags(TInt)
       
   608 	{
       
   609 	SLOW_EXEC1(EExecProcessFlags);
       
   610 	}
       
   611 
       
   612 __EXECDECL__ void Exec::ProcessSetFlags(TInt, TUint, TUint)
       
   613 	{
       
   614 	SLOW_EXEC3(EExecProcessSetFlags);
       
   615 	}
       
   616 
       
   617 __EXECDECL__ TInt Exec::SemaphoreWait(TInt, TInt)
       
   618 	{
       
   619 	SLOW_EXEC2(EExecSemaphoreWait);
       
   620 	}
       
   621 
       
   622 __EXECDECL__ void Exec::SemaphoreSignal1(TInt)
       
   623 	{
       
   624 	SLOW_EXEC1(EExecSemaphoreSignal1);
       
   625 	}
       
   626 
       
   627 __EXECDECL__ void Exec::SemaphoreSignalN(TInt, TInt)
       
   628 	{
       
   629 	SLOW_EXEC2(EExecSemaphoreSignalN);
       
   630 	}
       
   631 
       
   632 __EXECDECL__ void Exec::ServerReceive(TInt, TRequestStatus&, TAny*)
       
   633 	{
       
   634 	SLOW_EXEC3(EExecServerReceive);
       
   635 	}
       
   636 
       
   637 __EXECDECL__ void Exec::ServerCancel(TInt)
       
   638 	{
       
   639 	SLOW_EXEC1(EExecServerCancel);
       
   640 	}
       
   641 
       
   642 __EXECDECL__ void Exec::SetSessionPtr(TInt, const TAny*)
       
   643 	{
       
   644 	SLOW_EXEC2(EExecSetSessionPtr);
       
   645 	}
       
   646 
       
   647 __EXECDECL__ TInt Exec::ThreadId(TInt)
       
   648 	{
       
   649 	SLOW_EXEC1(EExecThreadId);
       
   650 	}
       
   651 
       
   652 __EXECDECL__ TInt Exec::SessionShare(TInt&, TInt)
       
   653 	{
       
   654 	SLOW_EXEC2(EExecSessionShare);
       
   655 	}
       
   656 
       
   657 __EXECDECL__ void Exec::ThreadResume(TInt)
       
   658 	{
       
   659 	SLOW_EXEC1(EExecThreadResume);
       
   660 	}
       
   661 
       
   662 __EXECDECL__ void Exec::ThreadSuspend(TInt)
       
   663 	{
       
   664 	SLOW_EXEC1(EExecThreadSuspend);
       
   665 	}
       
   666 
       
   667 __EXECDECL__ TThreadPriority Exec::ThreadPriority(TInt)
       
   668 	{
       
   669 	SLOW_EXEC1(EExecThreadPriority);
       
   670 	}
       
   671 
       
   672 __EXECDECL__ void Exec::ThreadSetPriority(TInt, TThreadPriority)
       
   673 	{
       
   674 	SLOW_EXEC2(EExecThreadSetPriority);
       
   675 	}
       
   676 
       
   677 __EXECDECL__ TProcessPriority Exec::ThreadProcessPriority(TInt)
       
   678 	{
       
   679 	SLOW_EXEC1(EExecThreadProcessPriority);
       
   680 	}
       
   681 
       
   682 __EXECDECL__ void Exec::ThreadSetProcessPriority(TInt, TProcessPriority)
       
   683 	{
       
   684 	SLOW_EXEC2(EExecThreadSetProcessPriority);
       
   685 	}
       
   686 
       
   687 __EXECDECL__ TUint Exec::ThreadFlags(TInt)
       
   688 	{
       
   689 	SLOW_EXEC1(EExecThreadFlags);
       
   690 	}
       
   691 
       
   692 __EXECDECL__ void Exec::ThreadSetFlags(TInt, TUint, TUint)
       
   693 	{
       
   694 	SLOW_EXEC3(EExecThreadSetFlags);
       
   695 	}
       
   696 
       
   697 __EXECDECL__ TInt Exec::ThreadRequestCount(TInt)
       
   698 	{
       
   699 	SLOW_EXEC1(EExecThreadRequestCount);
       
   700 	}
       
   701 
       
   702 __EXECDECL__ TExitType Exec::ThreadExitType(TInt)
       
   703 	{
       
   704 	SLOW_EXEC1(EExecThreadExitType);
       
   705 	}
       
   706 
       
   707 __EXECDECL__ TInt Exec::ThreadExitReason(TInt)
       
   708 	{
       
   709 	SLOW_EXEC1(EExecThreadExitReason);
       
   710 	}
       
   711 
       
   712 __EXECDECL__ void Exec::ThreadExitCategory(TInt, TDes8&)
       
   713 	{
       
   714 	SLOW_EXEC2(EExecThreadExitCategory);
       
   715 	}
       
   716 
       
   717 __EXECDECL__ void Exec::TimerCancel(TInt)
       
   718 	{
       
   719 	SLOW_EXEC1(EExecTimerCancel);
       
   720 	}
       
   721 
       
   722 __EXECDECL__ void Exec::TimerAfter(TInt, TRequestStatus&, TInt)
       
   723 	{
       
   724 	SLOW_EXEC3(EExecTimerAfter);
       
   725 	}
       
   726 
       
   727 __EXECDECL__ void Exec::TimerAt(TInt, TRequestStatus&, TUint32, TUint32)
       
   728 	{
       
   729 	SLOW_EXEC4(EExecTimerAt);
       
   730 	}
       
   731 
       
   732 __EXECDECL__ void Exec::TimerLock(TInt, TRequestStatus&, TTimerLockSpec)
       
   733 	{
       
   734 	SLOW_EXEC3(EExecTimerLock);
       
   735 	}
       
   736 
       
   737 __EXECDECL__ TInt Exec::ChangeNotifierLogon(TInt, TRequestStatus&)
       
   738 	{
       
   739 	SLOW_EXEC2(EExecChangeNotifierLogon);
       
   740 	}
       
   741 
       
   742 __EXECDECL__ TInt Exec::ChangeNotifierLogoff(TInt)
       
   743 	{
       
   744 	SLOW_EXEC1(EExecChangeNotifierLogoff);
       
   745 	}
       
   746 
       
   747 __EXECDECL__ void Exec::RequestSignal(TInt)
       
   748 	{
       
   749 	SLOW_EXEC1(EExecRequestSignal);
       
   750 	}
       
   751 
       
   752 __EXECDECL__ void Exec::HandleName(TInt, TDes8&)
       
   753 	{
       
   754 	SLOW_EXEC2(EExecHandleName);
       
   755 	}
       
   756 
       
   757 __EXECDECL__ void Exec::HandleFullName(TInt, TDes8&)
       
   758 	{
       
   759 	SLOW_EXEC2(EExecHandleFullName);
       
   760 	}
       
   761 
       
   762 __EXECDECL__ void Exec::HandleInfo(TInt, THandleInfo*)
       
   763 	{
       
   764 	SLOW_EXEC2(EExecHandleInfo);
       
   765 	}
       
   766 
       
   767 __EXECDECL__ void Exec::HandleCount(TInt, TInt&, TInt&)
       
   768 	{
       
   769 	SLOW_EXEC3(EExecHandleCount);
       
   770 	}
       
   771 
       
   772 __EXECDECL__ void Exec::After(TInt, TRequestStatus&)
       
   773 	{
       
   774 	SLOW_EXEC2(EExecAfter);
       
   775 	}
       
   776 
       
   777 __EXECDECL__ void Exec::At(const EXEC_TIME&, TRequestStatus&)
       
   778 	{
       
   779 	SLOW_EXEC2(EExecAt);
       
   780 	}
       
   781 
       
   782 __EXECDECL__ void Exec::MessageComplete(TInt, TInt)
       
   783 	{
       
   784 	SLOW_EXEC2(EExecMessageComplete);
       
   785 	}
       
   786 
       
   787 __EXECDECL__ void Exec::MessageCompleteWithHandle(TInt, TInt)
       
   788 	{
       
   789 	SLOW_EXEC2(EExecMessageCompleteWithHandle);
       
   790 	}
       
   791 
       
   792 __EXECDECL__ void Exec::TransferSession(TInt, TInt)
       
   793 	{
       
   794 	SLOW_EXEC2(EExecTransferSession);
       
   795 	}
       
   796 
       
   797 __EXECDECL__ TInt Exec::TimeNow(EXEC_TIME&, TInt&)
       
   798 	{
       
   799 	SLOW_EXEC2(EExecTimeNow);
       
   800 	}
       
   801 
       
   802 __EXECDECL__ TInt Exec::TimeNowSecure(EXEC_TIME&, TInt&)
       
   803 	{
       
   804 	SLOW_EXEC2(EExecTimeNowSecure);
       
   805 	}
       
   806 
       
   807 __EXECDECL__ TInt Exec::SetUTCTimeAndOffset(const EXEC_TIME&, TInt, TUint, TUint)
       
   808 	{
       
   809 	SLOW_EXEC4(EExecSetUTCTimeAndOffset);
       
   810 	}
       
   811 
       
   812 __EXECDECL__ TInt Exec::SetMachineConfiguration(const TDesC8&)
       
   813 	{
       
   814 	SLOW_EXEC1(EExecSetMachineConfiguration);
       
   815 	}
       
   816 
       
   817 __EXECDECL__ void Exec::CaptureEventHook()
       
   818 	{
       
   819 	SLOW_EXEC0(EExecCaptureEventHook);
       
   820 	}
       
   821 
       
   822 __EXECDECL__ void Exec::ReleaseEventHook()
       
   823 	{
       
   824 	SLOW_EXEC0(EExecReleaseEventHook);
       
   825 	}
       
   826 
       
   827 __EXECDECL__ void Exec::RequestEvent(TRawEventBuf&, TRequestStatus&)
       
   828 	{
       
   829 	SLOW_EXEC2(EExecRequestEvent);
       
   830 	}
       
   831 
       
   832 __EXECDECL__ void Exec::RequestEventCancel()
       
   833 	{
       
   834 	SLOW_EXEC0(EExecRequestEventCancel);
       
   835 	}
       
   836 
       
   837 __EXECDECL__ TInt Exec::AddEvent(const TRawEvent&)
       
   838 	{
       
   839 	SLOW_EXEC1(EExecAddEvent);
       
   840 	}
       
   841 
       
   842 __EXECDECL__ TAny* Exec::DllTls(TInt, TInt)
       
   843 	{
       
   844 	SLOW_EXEC2(EExecDllTls);
       
   845 	}
       
   846 
       
   847 __EXECDECL__ TInt Exec::HalFunction(TInt, TInt, TAny*, TAny*)
       
   848 	{
       
   849 	SLOW_EXEC4(EExecHalFunction);
       
   850 	}
       
   851 
       
   852 __EXECDECL__ void Exec::WsRegisterThread()
       
   853 	{
       
   854 	SLOW_EXEC0(EExecWsRegisterThread);
       
   855 	}
       
   856 
       
   857 __EXECDECL__ void Exec::FsRegisterThread()
       
   858 	{
       
   859 	SLOW_EXEC0(EExecFsRegisterThread);
       
   860 	}
       
   861 
       
   862 __EXECDECL__ TInt Exec::ProcessCommandLineLength(TInt)
       
   863 	{
       
   864 	SLOW_EXEC1(EExecProcessCommandLineLength);
       
   865 	}
       
   866 
       
   867 __EXECDECL__ void Exec::TimerInactivity(TInt, TRequestStatus&, TInt)
       
   868 	{
       
   869 	SLOW_EXEC3(EExecTimerInactivity);
       
   870 	}
       
   871 
       
   872 __EXECDECL__ TInt Exec::UserInactivityTime()
       
   873 	{
       
   874 	SLOW_EXEC0(EExecUserInactivityTime);
       
   875 	}
       
   876 
       
   877 __EXECDECL__ void Exec::ResetInactivityTime()
       
   878 	{
       
   879 	SLOW_EXEC0(EExecResetInactivityTime);
       
   880 	}
       
   881 
       
   882 __EXECDECL__ void Exec::DebugPrint(TAny*, TInt)
       
   883 	{
       
   884 	SLOW_EXEC2(EExecDebugPrint);
       
   885 	}
       
   886 
       
   887 __EXECDECL__ TInt Exec::BreakPoint()
       
   888 	{
       
   889 	SLOW_EXEC0(EExecBreakPoint);
       
   890 	}
       
   891 
       
   892 __EXECDECL__ TInt Exec::ProfileStart(TInt)
       
   893 	{
       
   894 	SLOW_EXEC1(EExecProfileStart);
       
   895 	}
       
   896 
       
   897 __EXECDECL__ TInt Exec::ProfileEnd(TInt)
       
   898 	{
       
   899 	SLOW_EXEC1(EExecProfileEnd);
       
   900 	}
       
   901 
       
   902 __EXECDECL__ TExceptionHandler Exec::ExceptionHandler(TInt)
       
   903 	{
       
   904 	SLOW_EXEC1(EExecExceptionHandler);
       
   905 	}
       
   906 
       
   907 __EXECDECL__ TInt Exec::SetExceptionHandler(TInt, TExceptionHandler, TUint32)
       
   908 	{
       
   909 	SLOW_EXEC3(EExecSetExceptionHandler);
       
   910 	}
       
   911 
       
   912 __EXECDECL__ void Exec::ModifyExceptionMask(TInt, TUint32, TUint32)
       
   913 	{
       
   914 	SLOW_EXEC3(EExecModifyExceptionMask);
       
   915 	}
       
   916 
       
   917 __EXECDECL__ TInt Exec::RaiseException(TInt, TExcType)
       
   918 	{
       
   919 	SLOW_EXEC2(EExecRaiseException);
       
   920 	}
       
   921 
       
   922 __EXECDECL__ TInt Exec::IsExceptionHandled(TInt, TExcType, TBool)
       
   923 	{
       
   924 	SLOW_EXEC3(EExecIsExceptionHandled);
       
   925 	}
       
   926 
       
   927 __EXECDECL__ TInt Exec::ProcessGetMemoryInfo(TInt, TModuleMemoryInfo&)
       
   928 	{
       
   929 	SLOW_EXEC2(EExecProcessGetMemoryInfo);
       
   930 	}
       
   931 
       
   932 __EXECDECL__ TInt Exec::LibraryGetMemoryInfo(TInt, TModuleMemoryInfo&)
       
   933 	{
       
   934 	SLOW_EXEC2(EExecLibraryGetMemoryInfo);
       
   935 	}
       
   936 
       
   937 __EXECDECL__ TInt Exec::MachineConfiguration(TDes8&, TInt&)
       
   938 	{
       
   939 	SLOW_EXEC2(EExecMachineConfiguration);
       
   940 	}
       
   941 
       
   942 __EXECDECL__ TInt Exec::SetMemoryThresholds(TInt, TInt)
       
   943 	{
       
   944 	SLOW_EXEC2(EExecSetMemoryThresholds);
       
   945 	}
       
   946 
       
   947 __EXECDECL__ void Exec::LibraryType(TInt, TUidType&)
       
   948 	{
       
   949 	SLOW_EXEC2(EExecLibraryType);
       
   950 	}
       
   951 
       
   952 __EXECDECL__ void Exec::ProcessType(TInt, TUidType&)
       
   953 	{
       
   954 	SLOW_EXEC2(EExecProcessType);
       
   955 	}
       
   956 
       
   957 __EXECDECL__ TInt Exec::ChunkBottom(TInt)
       
   958 	{
       
   959 	SLOW_EXEC1(EExecChunkBottom);
       
   960 	}
       
   961 
       
   962 __EXECDECL__ TInt Exec::ChunkTop(TInt)
       
   963 	{
       
   964 	SLOW_EXEC1(EExecChunkTop);
       
   965 	}
       
   966 
       
   967 __EXECDECL__ void Exec::ThreadContext(TInt, TDes8&)
       
   968 	{
       
   969 	SLOW_EXEC2(EExecThreadContext);
       
   970 	}
       
   971 
       
   972 __EXECDECL__ TInt Exec::ThreadCreate(const TDesC8&, TOwnerType, SThreadCreateInfo8&)
       
   973 	{
       
   974 	SLOW_EXEC3(EExecThreadCreate);
       
   975 	}
       
   976 
       
   977 __EXECDECL__ TInt Exec::FindHandleOpen(TOwnerType, const TFindHandle&)
       
   978 	{
       
   979 	SLOW_EXEC2(EExecFindHandleOpen);
       
   980 	}
       
   981 
       
   982 __EXECDECL__ TInt Exec::HandleClose(TInt)
       
   983 	{
       
   984 	SLOW_EXEC1(EExecHandleClose);
       
   985 	}
       
   986 
       
   987 __EXECDECL__ TInt Exec::ChunkCreate(TOwnerType, const TDesC8*, TChunkCreate&)
       
   988 	{
       
   989 	SLOW_EXEC3(EExecChunkCreate);
       
   990 	}
       
   991 
       
   992 __EXECDECL__ TInt Exec::ChunkAdjust(TInt, TInt, TInt, TInt)
       
   993 	{
       
   994 	SLOW_EXEC4(EExecChunkAdjust);
       
   995 	}
       
   996 
       
   997 __EXECDECL__ TInt Exec::OpenObject(TObjectType, const TDesC8&, TOwnerType)
       
   998 	{
       
   999 	SLOW_EXEC3(EExecOpenObject);
       
  1000 	}
       
  1001 
       
  1002 __EXECDECL__ TInt Exec::HandleDuplicate(TInt, TOwnerType, TInt&)
       
  1003 	{
       
  1004 	SLOW_EXEC3(EExecHandleDuplicate);
       
  1005 	}
       
  1006 
       
  1007 __EXECDECL__ TInt Exec::MutexCreate(const TDesC8*, TOwnerType)
       
  1008 	{
       
  1009 	SLOW_EXEC2(EExecMutexCreate);
       
  1010 	}
       
  1011 
       
  1012 __EXECDECL__ TInt Exec::SemaphoreCreate(const TDesC8*, TInt, TOwnerType)
       
  1013 	{
       
  1014 	SLOW_EXEC3(EExecSemaphoreCreate);
       
  1015 	}
       
  1016 
       
  1017 __EXECDECL__ TInt Exec::ThreadOpenById(TUint, TOwnerType)
       
  1018 	{
       
  1019 	SLOW_EXEC2(EExecThreadOpenById);
       
  1020 	}
       
  1021 
       
  1022 __EXECDECL__ TInt Exec::ProcessOpenById(TUint, TOwnerType)
       
  1023 	{
       
  1024 	SLOW_EXEC2(EExecProcessOpenById);
       
  1025 	}
       
  1026 
       
  1027 __EXECDECL__ void Exec::ThreadKill(TInt, TExitType, TInt, const TDesC8*)
       
  1028 	{
       
  1029 	SLOW_EXEC4(EExecThreadKill);
       
  1030 	}
  1113 	}
  1031 
  1114 
  1032 __EXECDECL__ void Exec::ThreadLogon(TInt, TRequestStatus*, TBool)
  1115 __EXECDECL__ void Exec::ThreadLogon(TInt, TRequestStatus*, TBool)
  1033 	{
  1116 	{
  1034 	SLOW_EXEC3(EExecThreadLogon);
  1117 	SLOW_EXEC3(EExecThreadLogon);
  1254 	SLOW_EXEC1(EExecLibraryAttached);
  1337 	SLOW_EXEC1(EExecLibraryAttached);
  1255 	}
  1338 	}
  1256 
  1339 
  1257 __EXECDECL__ TInt E32Loader::StaticCallList(TInt& aEntryPointCount, TLinAddr* /*aUnused*/)
  1340 __EXECDECL__ TInt E32Loader::StaticCallList(TInt& aEntryPointCount, TLinAddr* /*aUnused*/)
  1258 	{
  1341 	{
  1259 	SLOW_EXEC2(EExecStaticCallList);
  1342 	//SLOW_EXEC2(EExecStaticCallList);
  1260 	//SL: We hijack this function for initializing our process see User::InitProcess
  1343 	//SL: We hijack this function for initializing our process see User::InitProcess
  1261 	//aEntryPointCount=0; //Tell the caller we don't have any DLL entry point
  1344 	aEntryPointCount=0; //Tell the caller we don't have any DLL entry point
  1262 	//__asm ret;
       
  1263 	
  1345 	
  1264 	//return KErrNone;
  1346 	gProcess.CreateHeap();
       
  1347 
       
  1348 	return KErrNone;
  1265 	}
  1349 	}
  1266 
  1350 
  1267 __EXECDECL__ TInt E32Loader::LibraryDetach(TInt&, TLinAddr*)
  1351 __EXECDECL__ TInt E32Loader::LibraryDetach(TInt&, TLinAddr*)
  1268 	{
  1352 	{
  1269 	SLOW_EXEC2(EExecLibraryDetach);
  1353 	SLOW_EXEC2(EExecLibraryDetach);
  1274 	SLOW_EXEC0(EExecLibraryDetached);
  1358 	SLOW_EXEC0(EExecLibraryDetached);
  1275 	}
  1359 	}
  1276 
  1360 
  1277 __EXECDECL__ TInt Exec::LastThreadHandle()
  1361 __EXECDECL__ TInt Exec::LastThreadHandle()
  1278 	{
  1362 	{
  1279 	SLOW_EXEC0(EExecLastThreadHandle);
  1363 	//SLOW_EXEC0(EExecLastThreadHandle);
       
  1364 	//Not sure what to do with that returning 0 seams appropriate for now
       
  1365 	return 0;
  1280 	}
  1366 	}
  1281 
  1367 
  1282 __EXECDECL__ void Exec::ThreadRendezvous(TInt)
  1368 __EXECDECL__ void Exec::ThreadRendezvous(TInt)
  1283 	{
  1369 	{
  1284 	SLOW_EXEC1(EExecThreadRendezvous);
  1370 	SLOW_EXEC1(EExecThreadRendezvous);
  1662 __EXECDECL__ void Exec::RegisterTrustedChunk(TInt)
  1748 __EXECDECL__ void Exec::RegisterTrustedChunk(TInt)
  1663 	{
  1749 	{
  1664 	SLOW_EXEC1(EExecRegisterTrustedChunk);
  1750 	SLOW_EXEC1(EExecRegisterTrustedChunk);
  1665 	}
  1751 	}
  1666 
  1752 
  1667 __EXECDECL__ TBool Exec::UserThreadExiting(TInt)
  1753 /*
  1668 	{
  1754 Notify the kernel a thread is exiting.
  1669 	SLOW_EXEC1(EExecUserThreadExiting);
  1755 
       
  1756 @param Exit reason
       
  1757 @return ETrue if this is the last thread in the process, EFalse otherwise.
       
  1758 */
       
  1759 __EXECDECL__ TBool Exec::UserThreadExiting(TInt aReason)
       
  1760 	{
       
  1761 	//SLOW_EXEC1(EExecUserThreadExiting);
       
  1762 	gProcess.Free();
       
  1763 
       
  1764 	return ETrue; //No thread support ATM so we are always the last thread
  1670 	}
  1765 	}
  1671 
  1766 
  1672 __EXECDECL__ TBool Exec::ChunkIsPaged(TInt)
  1767 __EXECDECL__ TBool Exec::ChunkIsPaged(TInt)
  1673 	{
  1768 	{
  1674 	SLOW_EXEC1(EExecChunkIsPaged);
  1769 	SLOW_EXEC1(EExecChunkIsPaged);