xref: /haiku/src/kits/debugger/model/Watchpoint.cpp (revision fce4895d1884da5ae6fb299d23c735c598e690b1)
1 /*
2  * Copyright 2012, Rene Gollent, rene@gollent.com.
3  * Distributed under the terms of the MIT License.
4  */
5 
6 #include "Watchpoint.h"
7 
8 
Watchpoint(target_addr_t address,uint32 type,int32 length)9 Watchpoint::Watchpoint(target_addr_t address, uint32 type, int32 length)
10 	:
11 	fAddress(address),
12 	fType(type),
13 	fLength(length),
14 	fInstalled(false),
15 	fEnabled(false)
16 {
17 }
18 
19 
~Watchpoint()20 Watchpoint::~Watchpoint()
21 {
22 }
23 
24 
25 void
SetInstalled(bool installed)26 Watchpoint::SetInstalled(bool installed)
27 {
28 	fInstalled = installed;
29 }
30 
31 
32 void
SetEnabled(bool enabled)33 Watchpoint::SetEnabled(bool enabled)
34 {
35 	fEnabled = enabled;
36 }
37 
38 
39 bool
Contains(target_addr_t address) const40 Watchpoint::Contains(target_addr_t address) const
41 {
42 	return address >= fAddress && address <= (fAddress + fLength);
43 }
44 
45 
46 int
CompareWatchpoints(const Watchpoint * a,const Watchpoint * b)47 Watchpoint::CompareWatchpoints(const Watchpoint* a, const Watchpoint* b)
48 {
49 	if (a->Address() < b->Address())
50 		return -1;
51 	return a->Address() == b->Address() ? 0 : 1;
52 }
53 
54 
55 int
CompareAddressWatchpoint(const target_addr_t * address,const Watchpoint * watchpoint)56 Watchpoint::CompareAddressWatchpoint(const target_addr_t* address,
57 	const Watchpoint* watchpoint)
58 {
59 	if (*address < watchpoint->Address())
60 		return -1;
61 	return *address == watchpoint->Address() ? 0 : 1;
62 }
63 
64 
65 
66