AddressSpaceWriteLocker: Added VMAddressSpace* constructor and SetTo()
versions. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36029 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -173,6 +173,17 @@ AddressSpaceWriteLocker::AddressSpaceWriteLocker(team_id team)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
AddressSpaceWriteLocker::AddressSpaceWriteLocker(VMAddressSpace* space,
|
||||||
|
bool getNewReference)
|
||||||
|
:
|
||||||
|
fSpace(NULL),
|
||||||
|
fLocked(false),
|
||||||
|
fDegraded(false)
|
||||||
|
{
|
||||||
|
SetTo(space, getNewReference);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
AddressSpaceWriteLocker::AddressSpaceWriteLocker()
|
AddressSpaceWriteLocker::AddressSpaceWriteLocker()
|
||||||
:
|
:
|
||||||
fSpace(NULL),
|
fSpace(NULL),
|
||||||
@@ -210,6 +221,19 @@ AddressSpaceWriteLocker::SetTo(team_id team)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
AddressSpaceWriteLocker::SetTo(VMAddressSpace* space, bool getNewReference)
|
||||||
|
{
|
||||||
|
fSpace = space;
|
||||||
|
|
||||||
|
if (getNewReference)
|
||||||
|
fSpace->Get();
|
||||||
|
|
||||||
|
fSpace->WriteLock();
|
||||||
|
fLocked = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
AddressSpaceWriteLocker::SetFromArea(area_id areaID, VMArea*& area)
|
AddressSpaceWriteLocker::SetFromArea(area_id areaID, VMArea*& area)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -53,10 +53,14 @@ private:
|
|||||||
class AddressSpaceWriteLocker : private AddressSpaceLockerBase {
|
class AddressSpaceWriteLocker : private AddressSpaceLockerBase {
|
||||||
public:
|
public:
|
||||||
AddressSpaceWriteLocker(team_id team);
|
AddressSpaceWriteLocker(team_id team);
|
||||||
|
AddressSpaceWriteLocker(VMAddressSpace* space,
|
||||||
|
bool getNewReference);
|
||||||
AddressSpaceWriteLocker();
|
AddressSpaceWriteLocker();
|
||||||
~AddressSpaceWriteLocker();
|
~AddressSpaceWriteLocker();
|
||||||
|
|
||||||
status_t SetTo(team_id team);
|
status_t SetTo(team_id team);
|
||||||
|
void SetTo(VMAddressSpace* space,
|
||||||
|
bool getNewReference);
|
||||||
status_t SetFromArea(area_id areaID, VMArea*& area);
|
status_t SetFromArea(area_id areaID, VMArea*& area);
|
||||||
status_t SetFromArea(team_id team, area_id areaID,
|
status_t SetFromArea(team_id team, area_id areaID,
|
||||||
bool allowKernel, VMArea*& area);
|
bool allowKernel, VMArea*& area);
|
||||||
|
|||||||
Reference in New Issue
Block a user