From 86875ad9d13d4ac67092fade0f423f261b19d417 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Tue, 13 Apr 2010 17:18:57 +0000 Subject: [PATCH] Added VMCache::DebugHasPage() and DebugLookupPage() for use in the kernel debugger. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36228 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/kernel/vm/VMCache.h | 3 +++ src/system/kernel/vm/VMAnonymousCache.h | 1 + src/system/kernel/vm/VMCache.cpp | 21 +++++++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/headers/private/kernel/vm/VMCache.h b/headers/private/kernel/vm/VMCache.h index 924d8c9139..65ef81460d 100644 --- a/headers/private/kernel/vm/VMCache.h +++ b/headers/private/kernel/vm/VMCache.h @@ -153,6 +153,9 @@ public: virtual void AcquireStoreRef(); virtual void ReleaseStoreRef(); + virtual bool DebugHasPage(off_t offset); + vm_page* DebugLookupPage(off_t offset); + public: VMArea* areas; list_link consumer_link; diff --git a/src/system/kernel/vm/VMAnonymousCache.h b/src/system/kernel/vm/VMAnonymousCache.h index d985ae28fa..c4a4671f6f 100644 --- a/src/system/kernel/vm/VMAnonymousCache.h +++ b/src/system/kernel/vm/VMAnonymousCache.h @@ -40,6 +40,7 @@ public: virtual status_t Commit(off_t size, int priority); virtual bool HasPage(off_t offset); + virtual bool DebugHasPage(off_t offset); virtual status_t Read(off_t offset, const iovec* vecs, size_t count, uint32 flags, diff --git a/src/system/kernel/vm/VMCache.cpp b/src/system/kernel/vm/VMCache.cpp index 4f943674cb..efc17c539b 100644 --- a/src/system/kernel/vm/VMCache.cpp +++ b/src/system/kernel/vm/VMCache.cpp @@ -1239,6 +1239,27 @@ VMCache::ReleaseStoreRef() } +/*! Kernel debugger version of HasPage(). + Does not do any locking. +*/ +bool +VMCache::DebugHasPage(off_t offset) +{ + // default that works for all subclasses that don't lock anyway + return HasPage(offset); +} + + +/*! Kernel debugger version of LookupPage(). + Does not do any locking. +*/ +vm_page* +VMCache::DebugLookupPage(off_t offset) +{ + return pages.Lookup((page_num_t)(offset >> PAGE_SHIFT)); +} + + /*! Wakes up threads waiting for page events. \param page The page for which events occurred. \param events The mask of events that occurred.