255 dis_previnstr(dis_handle_t *dhp, uint64_t pc, int n)
256 {
257 if (dhp->dh_arch->da_previnstr == NULL)
258 return (dis_generic_previnstr(dhp, pc, n));
259
260 return (dhp->dh_arch->da_previnstr(dhp, pc, n));
261 }
262
263 int
264 dis_min_instrlen(dis_handle_t *dhp)
265 {
266 return (dhp->dh_arch->da_min_instrlen(dhp));
267 }
268
269 int
270 dis_max_instrlen(dis_handle_t *dhp)
271 {
272 return (dhp->dh_arch->da_max_instrlen(dhp));
273 }
274
275 int
276 dis_instrlen(dis_handle_t *dhp, uint64_t pc)
277 {
278 return (dhp->dh_arch->da_instrlen(dhp, pc));
279 }
280
281 int
282 dis_vsnprintf(char *restrict s, size_t n, const char *restrict format,
283 va_list args)
284 {
285 #ifdef DIS_STANDALONE
286 return (mdb_iob_vsnprintf(s, n, format, args));
287 #else
288 return (vsnprintf(s, n, format, args));
289 #endif
290 }
291
292 int
293 dis_snprintf(char *restrict s, size_t n, const char *restrict format, ...)
294 {
295 va_list args;
296
297 va_start(args, format);
|
255 dis_previnstr(dis_handle_t *dhp, uint64_t pc, int n)
256 {
257 if (dhp->dh_arch->da_previnstr == NULL)
258 return (dis_generic_previnstr(dhp, pc, n));
259
260 return (dhp->dh_arch->da_previnstr(dhp, pc, n));
261 }
262
263 int
264 dis_min_instrlen(dis_handle_t *dhp)
265 {
266 return (dhp->dh_arch->da_min_instrlen(dhp));
267 }
268
269 int
270 dis_max_instrlen(dis_handle_t *dhp)
271 {
272 return (dhp->dh_arch->da_max_instrlen(dhp));
273 }
274
275 static int
276 dis_generic_instrlen(dis_handle_t *dhp, uint64_t pc)
277 {
278 if (dis_disassemble(dhp, pc, NULL, 0) != 0)
279 return (-1);
280
281 return (dhp->dh_addr - pc);
282 }
283
284 int
285 dis_instrlen(dis_handle_t *dhp, uint64_t pc)
286 {
287 if (dhp->dh_arch->da_instrlen == NULL)
288 return (dis_generic_instrlen(dhp, pc));
289
290 return (dhp->dh_arch->da_instrlen(dhp, pc));
291 }
292
293 int
294 dis_vsnprintf(char *restrict s, size_t n, const char *restrict format,
295 va_list args)
296 {
297 #ifdef DIS_STANDALONE
298 return (mdb_iob_vsnprintf(s, n, format, args));
299 #else
300 return (vsnprintf(s, n, format, args));
301 #endif
302 }
303
304 int
305 dis_snprintf(char *restrict s, size_t n, const char *restrict format, ...)
306 {
307 va_list args;
308
309 va_start(args, format);
|