root/src/kits/debugger/model/Watchpoint.cpp
/*
 * Copyright 2012, Rene Gollent, rene@gollent.com.
 * Distributed under the terms of the MIT License.
 */

#include "Watchpoint.h"


Watchpoint::Watchpoint(target_addr_t address, uint32 type, int32 length)
        :
        fAddress(address),
        fType(type),
        fLength(length),
        fInstalled(false),
        fEnabled(false)
{
}


Watchpoint::~Watchpoint()
{
}


void
Watchpoint::SetInstalled(bool installed)
{
        fInstalled = installed;
}


void
Watchpoint::SetEnabled(bool enabled)
{
        fEnabled = enabled;
}


bool
Watchpoint::Contains(target_addr_t address) const
{
        return address >= fAddress && address <= (fAddress + fLength);
}


int
Watchpoint::CompareWatchpoints(const Watchpoint* a, const Watchpoint* b)
{
        if (a->Address() < b->Address())
                return -1;
        return a->Address() == b->Address() ? 0 : 1;
}


int
Watchpoint::CompareAddressWatchpoint(const target_addr_t* address,
        const Watchpoint* watchpoint)
{
        if (*address < watchpoint->Address())
                return -1;
        return *address == watchpoint->Address() ? 0 : 1;
}