Blame src/internal/perk_errinfo_impl.h

db655e
/***************************************************************/
db655e
/*  perk: PE Resource Kit                                      */
db655e
/*  Copyright (C) 2015--2016  Z. Gilboa                        */
db655e
/*  Released under GPLv2 and GPLv3; see COPYING.PERK.          */
db655e
/***************************************************************/
db655e
db655e
#include <errno.h>
db655e
#include <perk/perk.h>
db655e
db655e
int pe_record_error(
db655e
	const struct pe_driver_ctx *,
db655e
	int		syserror,
db655e
	int		liberror,
db655e
	const char *	function,
db655e
	int		line,
db655e
	unsigned	flags,
db655e
	void *		ctx);
db655e
db655e
#define PERK_SYSTEM_ERROR(dctx)           \
db655e
	pe_record_error(                  \
db655e
		dctx,                     \
db655e
		errno,                    \
db655e
		0,                        \
db655e
		__func__,                 \
db655e
		__LINE__,                 \
db655e
		PERK_ERROR_TOP_LEVEL,     \
db655e
		0)
db655e
db655e
#define PERK_BUFFER_ERROR(dctx)           \
db655e
	pe_record_error(                  \
db655e
		dctx,                     \
db655e
		ENOBUFS,                  \
db655e
		0,                        \
db655e
		__func__,                 \
db655e
		__LINE__,                 \
db655e
		PERK_ERROR_TOP_LEVEL,     \
db655e
		0)
db655e
db655e
#define PERK_SPAWN_ERROR(dctx)            \
db655e
	pe_record_error(                  \
db655e
		dctx,                     \
db655e
		errno,                    \
db655e
		0,                        \
db655e
		__func__,                 \
db655e
		__LINE__,                 \
db655e
		PERK_ERROR_TOP_LEVEL      \
db655e
		| (errno ? 0              \
db655e
		   : PERK_ERROR_CHILD),   \
db655e
		0)
db655e
db655e
#define PERK_FILE_ERROR(dctx)             \
db655e
	pe_record_error(                  \
db655e
		dctx,                     \
db655e
		EIO,                      \
db655e
		0,                        \
db655e
		__func__,                 \
db655e
		__LINE__,                 \
db655e
		PERK_ERROR_TOP_LEVEL,     \
db655e
		0)
db655e
db655e
#define PERK_CUSTOM_ERROR(dctx,liberror)  \
db655e
	pe_record_error(                  \
db655e
		dctx,                     \
db655e
		0,                        \
db655e
		liberror,                 \
db655e
		__func__,                 \
db655e
		__LINE__,                 \
db655e
		PERK_ERROR_TOP_LEVEL      \
db655e
		| PERK_ERROR_CUSTOM,      \
db655e
		0)
db655e
db655e
#define PERK_NESTED_ERROR(dctx)           \
db655e
	pe_record_error(                  \
db655e
		dctx,                     \
db655e
		0,                        \
db655e
		0,                        \
db655e
		__func__,                 \
db655e
		__LINE__,                 \
db655e
		PERK_ERROR_NESTED,        \
db655e
		0)