From ace3d24b37f446c59218c0e389d579c0b79fccc0 Mon Sep 17 00:00:00 2001 From: jb Date: Sat, 26 Apr 2008 04:43:19 +0000 Subject: There are many places in libdtrace where errno can be set. When an error is returned all the way back to the dtrace app, it's hard to figure out where that error came from. Add a couple of functions to get and set the error location which can be optionally compiled into the library. --- .../opensolaris/lib/libdtrace/common/dt_error.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'cddl/contrib/opensolaris/lib/libdtrace/common/dt_error.c') diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_error.c b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_error.c index 5005f59..263f70c 100644 --- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_error.c +++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_error.c @@ -25,6 +25,7 @@ #pragma ident "%Z%%M% %I% %E% SMI" +#include #include #include @@ -138,12 +139,29 @@ dtrace_errno(dtrace_hdl_t *dtp) return (dtp->dt_errno); } +#if defined(sun) int dt_set_errno(dtrace_hdl_t *dtp, int err) { dtp->dt_errno = err; return (-1); } +#else +int +_dt_set_errno(dtrace_hdl_t *dtp, int err, const char *errfile, int errline) +{ + dtp->dt_errno = err; + dtp->dt_errfile = errfile; + dtp->dt_errline = errline; + return (-1); +} + +void dt_get_errloc(dtrace_hdl_t *dtp, const char **p_errfile, int *p_errline) +{ + *p_errfile = dtp->dt_errfile; + *p_errline = dtp->dt_errline; +} +#endif void dt_set_errmsg(dtrace_hdl_t *dtp, const char *errtag, const char *region, -- cgit v1.1