Lines Matching +full:flags +full:- +full:mask
21 #include "qemu/error-report.h"
29 int flags, CPUWatchpoint **watchpoint) in cpu_watchpoint_insert() argument
35 if (len == 0 || (addr + len - 1) < addr) { in cpu_watchpoint_insert()
38 return -EINVAL; in cpu_watchpoint_insert()
42 wp->vaddr = addr; in cpu_watchpoint_insert()
43 wp->len = len; in cpu_watchpoint_insert()
44 wp->flags = flags; in cpu_watchpoint_insert()
46 /* keep all GDB-injected watchpoints in front */ in cpu_watchpoint_insert()
47 if (flags & BP_GDB) { in cpu_watchpoint_insert()
48 QTAILQ_INSERT_HEAD(&cpu->watchpoints, wp, entry); in cpu_watchpoint_insert()
50 QTAILQ_INSERT_TAIL(&cpu->watchpoints, wp, entry); in cpu_watchpoint_insert()
53 in_page = -(addr | TARGET_PAGE_MASK); in cpu_watchpoint_insert()
68 int flags) in cpu_watchpoint_remove() argument
72 QTAILQ_FOREACH(wp, &cpu->watchpoints, entry) { in cpu_watchpoint_remove()
73 if (addr == wp->vaddr && len == wp->len in cpu_watchpoint_remove()
74 && flags == (wp->flags & ~BP_WATCHPOINT_HIT)) { in cpu_watchpoint_remove()
79 return -ENOENT; in cpu_watchpoint_remove()
85 QTAILQ_REMOVE(&cpu->watchpoints, watchpoint, entry); in cpu_watchpoint_remove_by_ref()
87 tlb_flush_page(cpu, watchpoint->vaddr); in cpu_watchpoint_remove_by_ref()
93 void cpu_watchpoint_remove_all(CPUState *cpu, int mask) in cpu_watchpoint_remove_all() argument
97 QTAILQ_FOREACH_SAFE(wp, &cpu->watchpoints, entry, next) { in cpu_watchpoint_remove_all()
98 if (wp->flags & mask) { in cpu_watchpoint_remove_all()