int db_md_set_watchpoint(db_expr_t addr, db_expr_t size) { int dummy; if (watch_virt_active()) { db_printf("Overwriting previously active watch point at " "0x%lx\n", watch_virt_get(&dummy)); } return (watch_virt_set(addr, size)); }
vm_offset_t watch_virt_get(int *bm) { u_long va; u_long lsucr; if (!watch_virt_active()) return (0); va = ldxa(AA_DMMU_VWPR, ASI_DMMU); lsucr = ldxa(0, ASI_LSU_CTL_REG); *bm = (lsucr & LSU_VM_MASK) >> LSU_VM_SHIFT; return ((vm_offset_t)va); }
void db_md_list_watchpoints(void) { vm_offset_t wp; int bm; db_printf("Physical address watchpoint:\n"); if (watch_phys_active()) { wp = watch_phys_get(&bm); db_watch_print(wp, bm); } else db_printf("\tnot active.\n"); db_printf("Virtual address watchpoint:\n"); if (watch_virt_active()) { wp = watch_virt_get(&bm); db_watch_print(wp, bm); } else db_printf("\tnot active.\n"); }
void db_md_list_watchpoints(void) { vm_offset_t va; vm_paddr_t pa; int bm; db_printf("Physical address watchpoint:\n"); if (watch_phys_active()) { pa = watch_phys_get(&bm); db_watch_print(pa, bm); } else db_printf("\tnot active.\n"); db_printf("Virtual address watchpoint:\n"); if (watch_virt_active()) { va = watch_virt_get(&bm); db_watch_print(va, bm); } else db_printf("\tnot active.\n"); }