#ifndef __KERNELINFO_H__ #include "itsutils.h" #include "kernelmisc.h" // here the various implementations are defined // used only by cever_deps.cpp #if _WIN32_WCE==300 #define test_forver test300 //#define GetProcessTimes_forver GetProcessTimes300 //#define GetProcessCommandLine_forver GetProcessCommandLine300 #define GetProcessList_forver GetProcessList300 #define GetProcessThreadSummary_forver GetProcessThreadSummary300 #define AddThreadInfo_forver AddThreadInfo300 #define GetProcessUsageList_forver GetProcessUsageList300 #define dumpcallstack_forver dumpcallstack300 #define dump_proxy_list_forver dump_proxy_list300 #define dumplocks_forver dumplocks300 #define GetThreadUsageList_forver GetThreadUsageList300 #define VirtToPhys_forver VirtToPhys300 #define FindProcessSlotForName_forver FindProcessSlotForName300 #define getProcessSlotVMBase_forver getProcessSlotVMBase300 #define getProcessSlotHandle_forver getProcessSlotHandle300 #define GetModuleMembase_forver GetModuleMembase300 #define FillModuleInfo_forver FillModuleInfo300 #elif _WIN32_WCE==420 #define test_forver test420 //#define GetProcessTimes_forver GetProcessTimes420 //#define GetProcessCommandLine_forver GetProcessCommandLine420 #define GetProcessList_forver GetProcessList420 #define GetProcessThreadSummary_forver GetProcessThreadSummary420 #define AddThreadInfo_forver AddThreadInfo420 #define GetProcessUsageList_forver GetProcessUsageList420 #define dumpcallstack_forver dumpcallstack420 #define dump_proxy_list_forver dump_proxy_list420 #define dumplocks_forver dumplocks420 #define GetThreadUsageList_forver GetThreadUsageList420 #define VirtToPhys_forver VirtToPhys420 #define FindProcessSlotForName_forver FindProcessSlotForName420 #define getProcessSlotVMBase_forver getProcessSlotVMBase420 #define getProcessSlotHandle_forver getProcessSlotHandle420 #define GetModuleMembase_forver GetModuleMembase420 #define FillModuleInfo_forver FillModuleInfo420 #elif _WIN32_WCE==501 #define test_forver test500 //#define GetProcessTimes_forver GetProcessTimes500 //#define GetProcessCommandLine_forver GetProcessCommandLine500 #define GetProcessList_forver GetProcessList500 #define GetProcessThreadSummary_forver GetProcessThreadSummary500 #define AddThreadInfo_forver AddThreadInfo500 #define GetProcessUsageList_forver GetProcessUsageList500 #define dumpcallstack_forver dumpcallstack500 #define dump_proxy_list_forver dump_proxy_list500 #define dumplocks_forver dumplocks500 #define GetThreadUsageList_forver GetThreadUsageList500 #define VirtToPhys_forver VirtToPhys500 #define FindProcessSlotForName_forver FindProcessSlotForName500 #define getProcessSlotVMBase_forver getProcessSlotVMBase500 #define getProcessSlotHandle_forver getProcessSlotHandle500 #define GetModuleMembase_forver GetModuleMembase500 #define FillModuleInfo_forver FillModuleInfo500 #endif // macro to declare the various versions, and the version independent version #define XVERSION_DECLARE(name, result, paramdecl, paramlist) \ result name##300 paramdecl; \ result name##420 paramdecl; \ result name##500 paramdecl; \ inline result name paramdecl \ { \ switch (GetWinceVersion()) { \ case 3: return name##300 paramlist; \ case 4: return name##420 paramlist; \ case 5: return name##500 paramlist; \ default: return name##300 paramlist; \ } \ } bool test300(); bool test420(); bool test500(); //XVERSION_DECLARE(GetProcessTimes, bool, (DWORD pid, DWORD *ptKernel, DWORD *ptUser), (pid, ptKernel, ptUser)) //XVERSION_DECLARE(GetProcessCommandLine, const WCHAR *, (DWORD pid), (pid)) XVERSION_DECLARE(GetProcessList, bool, (CeProcessList& list), (list)) XVERSION_DECLARE(GetProcessThreadSummary, int, (PROCESS *pp, DWORD *ptKernel, DWORD *ptUser), (pp, ptKernel, ptUser)) XVERSION_DECLARE(AddThreadInfo, int, (char *buf, int bufsize, DWORD pid, DWORD tid), (buf, bufsize, pid, tid)) XVERSION_DECLARE(GetProcessUsageList, bool, (GetProcessUsageListResult *pOut), (pOut)) XVERSION_DECLARE(dumpcallstack, bool, (THREAD *t), (t)) XVERSION_DECLARE(dump_proxy_list, bool, (PROXY *proxy), (proxy)) XVERSION_DECLARE(dumplocks, bool, (THREAD *t), (t)) XVERSION_DECLARE(GetThreadUsageList, bool, (GetThreadUsageListResult *pOut), (pOut)) XVERSION_DECLARE(GetThreadUsageList, bool, (GetThreadUsageListResult *pOut, bool resolve_modulenames), (pOut, resolve_modulenames)) XVERSION_DECLARE(VirtToPhys, DWORD, (DWORD dwAddr), (dwAddr)) XVERSION_DECLARE(FindProcessSlotForName, int, (const TCHAR *procname), (procname)) XVERSION_DECLARE(getProcessSlotVMBase, DWORD, (int slot), (slot)) XVERSION_DECLARE(getProcessSlotHandle, HANDLE, (int slot), (slot)) XVERSION_DECLARE(GetModuleMembase, DWORD, (const struct Module *m), (m)) XVERSION_DECLARE(FillModuleInfo, bool, (ModuleInfo &mi, const struct Module *m), (mi, m)) //------------------------------------- #define __KERNELINFO_H__ #endif