Lines Matching +full:hardware +full:- +full:protected
1 /*-
2 * SPDX-License-Identifier: MIT-CMU
23 * Pittsburgh PA 15213-3890
77 db_free_watchpoints = watch->link; in db_watchpoint_alloc()
93 watch->link = db_free_watchpoints; in db_watchpoint_free()
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()
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()
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()
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()
280 /* Delete hardware watchpoint */
300 db_printf("Hardware watchpoint could not be deleted, " in db_deletehwatch_cmd()
306 /* Set hardware watchpoint */
324 db_printf("No hardware watchpoints available.\n"); in db_hwatchpoint_cmd()
327 db_printf("Hardware watchpoints are not supported on this platform.\n"); in db_hwatchpoint_cmd()
331 db_printf("Could not set hardware watchpoint, " in db_hwatchpoint_cmd()