diff -r 96d581d2147d -r 184a1eb85cf2 libraries/memoryaccess/memoryaccess.h --- a/libraries/memoryaccess/memoryaccess.h Fri Jul 09 10:11:55 2010 +0100 +++ b/libraries/memoryaccess/memoryaccess.h Mon Jul 26 17:19:00 2010 +0100 @@ -305,23 +305,26 @@ }; typedef TPckgBuf TCondVarKernelInfoBuf; -class TCodeSegKernelInfo +class TCodeSegKernelInfoBase { public: TUint32 iRunAddress; TInt iSize; TFileName8 iFileName; }; -typedef TPckgBuf TCodeSegKernelInfoBuf; -class TTomsciCodeSegKernelInfo : public TCodeSegKernelInfo +// We don't really need a base class, it's just for BC reasons +class TCodeSegKernelInfo : public TCodeSegKernelInfoBase { public: TUint8* iAddressOfKernelObject; TFullName8 iName; TInt iAccessCount; TInt iDepCount; + TBool iXip; }; +typedef TPckgBuf TCodeSegKernelInfoBuf; + class TProp { @@ -451,6 +454,7 @@ EControlPropertyNotify, EControlPropertyNotifyCancel, EControlSubscribeToProperty, + EControlAcquireCodeSegMutexAndFilterCodesegsForProcess, ENumRequests, // Add new commands above this line }; public: @@ -492,6 +496,7 @@ TInt GetObjectInfoByHandle (TObjectType aObjectType, TInt aThreadId, TInt aObjectHandle, TDes8& aObjectInfoBuf); //Wait on the kernel's code seg mutex TInt AcquireCodeSegMutex(); + TInt AcquireCodeSegMutexAndFilterCodesegsForProcess(TUint aProcessId); //Signal the kernel's code seg mutex TInt ReleaseCodeSegMutex(); //Get info about the next code seg. Call repeatedly to iterate all code segs. Call AcquireCodeSegMutex before calling. @@ -683,6 +688,8 @@ } inline TInt RMemoryAccess::AcquireCodeSegMutex() { return DoControl(EControlAcquireCodeSegMutex, NULL, NULL); } +inline TInt RMemoryAccess::AcquireCodeSegMutexAndFilterCodesegsForProcess(TUint aProcessId) + { return DoControl(EControlAcquireCodeSegMutexAndFilterCodesegsForProcess, (TAny*)aProcessId); } inline TInt RMemoryAccess::ReleaseCodeSegMutex() { return DoControl(EControlReleaseCodeSegMutex, NULL, NULL); } inline TInt RMemoryAccess::GetNextCodeSegInfo(TDes8& aCodeSegInfoBuf)