Lines Matching +full:no +full:- +full:map
1 /*-
2 * SPDX-License-Identifier: MIT-CMU
23 * Pittsburgh PA 15213-3890
62 static void db_delete_watchpoint(vm_map_t map, db_addr_t addr);
64 static bool db_find_watchpoint(vm_map_t map, db_addr_t addr,
68 static void db_set_watchpoint(vm_map_t map, db_addr_t addr,
77 db_free_watchpoints = watch->link; in db_watchpoint_alloc()
93 watch->link = db_free_watchpoints; in db_watchpoint_free()
98 db_set_watchpoint(vm_map_t map, db_addr_t addr, vm_size_t size) in db_set_watchpoint() argument
102 if (map == NULL) { in db_set_watchpoint()
103 db_printf("No map.\n"); in db_set_watchpoint()
113 watch = watch->link) in db_set_watchpoint()
114 if (db_map_equal(watch->map, map) && in db_set_watchpoint()
115 (watch->loaddr == addr) && in db_set_watchpoint()
116 (watch->hiaddr == addr+size)) { in db_set_watchpoint()
127 watch->map = map; in db_set_watchpoint()
128 watch->loaddr = addr; in db_set_watchpoint()
129 watch->hiaddr = addr+size; in db_set_watchpoint()
131 watch->link = db_watchpoint_list; in db_set_watchpoint()
138 db_delete_watchpoint(vm_map_t map, db_addr_t addr) in db_delete_watchpoint() argument
145 prev = &watch->link) in db_delete_watchpoint()
146 if (db_map_equal(watch->map, map) && in db_delete_watchpoint()
147 (watch->loaddr <= addr) && in db_delete_watchpoint()
148 (addr < watch->hiaddr)) { in db_delete_watchpoint()
149 *prev = watch->link; in db_delete_watchpoint()
163 db_printf("No watchpoints set\n"); in db_list_watchpoints()
168 db_printf(" Map Address Size\n"); in db_list_watchpoints()
170 db_printf(" Map Address Size\n"); in db_list_watchpoints()
174 watch = watch->link) in db_list_watchpoints()
180 db_map_current(watch->map) ? "*" : " ", in db_list_watchpoints()
181 (void *)watch->map, (long)watch->loaddr, in db_list_watchpoints()
182 (long)watch->hiaddr - (long)watch->loaddr); in db_list_watchpoints()
213 * At least one non-optional show-command must be implemented using
230 watch = watch->link) in db_set_watchpoints()
231 pmap_protect(watch->map->pmap, in db_set_watchpoints()
232 trunc_page(watch->loaddr), in db_set_watchpoints()
233 round_page(watch->hiaddr), in db_set_watchpoints()
248 db_find_watchpoint(vm_map_t map, db_addr_t addr, db_regs_t regs) in db_find_watchpoint() argument
255 watch = watch->link) in db_find_watchpoint()
256 if (db_map_equal(watch->map, map)) { in db_find_watchpoint()
257 if ((watch->loaddr <= addr) && in db_find_watchpoint()
258 (addr < watch->hiaddr)) in db_find_watchpoint()
260 else if ((trunc_page(watch->loaddr) <= addr) && in db_find_watchpoint()
261 (addr < round_page(watch->hiaddr))) in db_find_watchpoint()
267 * in a protected region. We want to single-step in db_find_watchpoint()
268 * and then re-protect. in db_find_watchpoint()
324 db_printf("No hardware watchpoints available.\n"); in db_hwatchpoint_cmd()