diff --git a/headers/private/kernel/vm/VMAddressSpace.h b/headers/private/kernel/vm/VMAddressSpace.h index fd02bc6be6..15a91ad4c3 100644 --- a/headers/private/kernel/vm/VMAddressSpace.h +++ b/headers/private/kernel/vm/VMAddressSpace.h @@ -1,5 +1,5 @@ /* - * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. + * Copyright 2009-2010, Ingo Weinhold, ingo_weinhold@gmx.de. * Copyright 2002-2008, Axel Dörfler, axeld@pinc-software.de. All rights reserved. * Distributed under the terms of the MIT License. * @@ -32,6 +32,7 @@ public: team_id ID() const { return fID; } addr_t Base() const { return fBase; } addr_t EndAddress() const { return fEndAddress; } + size_t Size() const { return fEndAddress - fBase + 1; } size_t FreeSpace() const { return fFreeSpace; } bool IsBeingDeleted() const { return fDeleting; } @@ -106,6 +107,9 @@ public: static VMAddressSpace* Get(team_id teamID); + static VMAddressSpace* DebugFirst(); + static VMAddressSpace* DebugNext(VMAddressSpace* addressSpace); + protected: static void _DeleteIfUnreferenced(team_id id); diff --git a/src/system/kernel/vm/VMAddressSpace.cpp b/src/system/kernel/vm/VMAddressSpace.cpp index fcaccfaa8f..e84020e608 100644 --- a/src/system/kernel/vm/VMAddressSpace.cpp +++ b/src/system/kernel/vm/VMAddressSpace.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. + * Copyright 2009-2010, Ingo Weinhold, ingo_weinhold@gmx.de. * Copyright 2002-2009, Axel Dörfler, axeld@pinc-software.de. * Distributed under the terms of the MIT License. * @@ -276,6 +276,26 @@ VMAddressSpace::Get(team_id teamID) } +/*static*/ VMAddressSpace* +VMAddressSpace::DebugFirst() +{ + return sAddressSpaceTable.GetIterator().Next(); +} + + +/*static*/ VMAddressSpace* +VMAddressSpace::DebugNext(VMAddressSpace* addressSpace) +{ + if (addressSpace == NULL) + return NULL; + + AddressSpaceTable::Iterator it + = sAddressSpaceTable.GetIterator(addressSpace->ID()); + it.Next(); + return it.Next(); +} + + /*static*/ void VMAddressSpace::_DeleteIfUnreferenced(team_id id) {