Lines Matching defs:dhp

132 dis_set_data(dis_handle_t *dhp, void *data)
134 dhp->dh_data = data;
138 dis_flags_set(dis_handle_t *dhp, int f)
140 dhp->dh_flags |= f;
144 dis_flags_clear(dis_handle_t *dhp, int f)
146 dhp->dh_flags &= ~f;
150 dis_handle_destroy(dis_handle_t *dhp)
152 if (dhp->dh_arch->da_handle_detach != NULL)
153 dhp->dh_arch->da_handle_detach(dhp);
155 dis_free(dhp, sizeof (dis_handle_t));
162 dis_handle_t *dhp;
178 if ((dhp = dis_zalloc(sizeof (dis_handle_t))) == NULL) {
182 dhp->dh_arch = arch;
183 dhp->dh_lookup = lookup_func;
184 dhp->dh_read = read_func;
185 dhp->dh_flags = flags;
186 dhp->dh_data = data;
193 arch->da_handle_attach(dhp) != 0) {
194 dis_free(dhp, sizeof (dis_handle_t));
199 return (dhp);
203 dis_disassemble(dis_handle_t *dhp, uint64_t addr, char *buf, size_t buflen)
205 return (dhp->dh_arch->da_disassemble(dhp, addr, buf, buflen));
215 dis_generic_previnstr(dis_handle_t *dhp, uint64_t pc, int n)
224 if (dhp->dh_lookup(dhp->dh_data, pc, NULL, 0, &start, NULL) != 0 ||
230 for (cur = 0, nseen = 0, addr = start; addr < pc; addr = dhp->dh_addr) {
236 if (dis_disassemble(dhp, addr, NULL, 0) != 0)
264 dis_previnstr(dis_handle_t *dhp, uint64_t pc, int n)
266 if (dhp->dh_arch->da_previnstr == NULL)
267 return (dis_generic_previnstr(dhp, pc, n));
269 return (dhp->dh_arch->da_previnstr(dhp, pc, n));
273 dis_min_instrlen(dis_handle_t *dhp)
275 return (dhp->dh_arch->da_min_instrlen(dhp));
279 dis_max_instrlen(dis_handle_t *dhp)
281 return (dhp->dh_arch->da_max_instrlen(dhp));
285 dis_generic_instrlen(dis_handle_t *dhp, uint64_t pc)
287 if (dis_disassemble(dhp, pc, NULL, 0) != 0)
290 return (dhp->dh_addr - pc);
294 dis_instrlen(dis_handle_t *dhp, uint64_t pc)
296 if (dhp->dh_arch->da_instrlen == NULL)
297 return (dis_generic_instrlen(dhp, pc));
299 return (dhp->dh_arch->da_instrlen(dhp, pc));