tools/libs/ctrl: Save errno only once in *PRINTF() and *ERROR()

All *PRINTF() and *ERROR() macros are based on xc_reportv() which is
saving and restoring errno in order to not modify it. There is no need
to save and restore in those macros, too.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
Juergen Gross authored and Andrew Cooper committed 2021-12-09 16:26:29 +00:00
1 parent 1d896a0ef7
commit f10202d5c7
1 file changed
+11 -21
+11 -21
View File
@@ -122,28 +122,18 @@ void xc_report_progress_step(xc_interface *xch,
/* anamorphic macros: struct xc_interface *xch must be in scope */
#define IPRINTF(_f, _a...) do { int IPRINTF_errno = errno; \
xc_report(xch, xch->error_handler, XTL_INFO,0, _f , ## _a); \
errno = IPRINTF_errno; \
} while (0)
#define DPRINTF(_f, _a...) do { int DPRINTF_errno = errno; \
xc_report(xch, xch->error_handler, XTL_DETAIL,0, _f , ## _a); \
errno = DPRINTF_errno; \
} while (0)
#define DBGPRINTF(_f, _a...) do { int DBGPRINTF_errno = errno; \
xc_report(xch, xch->error_handler, XTL_DEBUG,0, _f , ## _a); \
errno = DBGPRINTF_errno; \
} while (0)
#define IPRINTF(_f, _a...) \
xc_report(xch, xch->error_handler, XTL_INFO, 0, _f, ## _a)
#define DPRINTF(_f, _a...) \
xc_report(xch, xch->error_handler, XTL_DETAIL, 0, _f, ## _a)
#define DBGPRINTF(_f, _a...) \
xc_report(xch, xch->error_handler, XTL_DEBUG, 0, _f, ## _a)
#define ERROR(_m, _a...) do { int ERROR_errno = errno; \
xc_report_error(xch,XC_INTERNAL_ERROR,_m , ## _a ); \
errno = ERROR_errno; \
} while (0)
#define PERROR(_m, _a...) do { int PERROR_errno = errno; \
xc_report_error(xch,XC_INTERNAL_ERROR,_m " (%d = %s)", \
## _a , errno, xc_strerror(xch, errno)); \
errno = PERROR_errno; \
} while (0)
#define ERROR(_m, _a...) \
xc_report_error(xch, XC_INTERNAL_ERROR, _m, ## _a)
#define PERROR(_m, _a...) \
xc_report_error(xch, XC_INTERNAL_ERROR, _m " (%d = %s)", \
## _a, errno, xc_strerror(xch, errno))
/*
* HYPERCALL ARGUMENT BUFFERS
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.