| /**************************************************************/ |
| /* tpax: a topological pax implementation */ |
| /* Copyright (C) 2020--2024 SysDeer Technologies, LLC */ |
| /* Released under GPLv2 and GPLv3; see COPYING.TPAX. */ |
| /**************************************************************/ |
| |
| #include <errno.h> |
| #include <tpax/tpax.h> |
| |
| int tpax_record_error( |
| const struct tpax_driver_ctx *, |
| int esyscode, |
| int elibcode, |
| const char * efunction, |
| int eline, |
| unsigned eflags, |
| void * ectx); |
| |
| #define TPAX_SYSTEM_ERROR(dctx) \ |
| tpax_record_error( \ |
| dctx, \ |
| errno, \ |
| 0, \ |
| __func__, \ |
| __LINE__, \ |
| TPAX_ERROR_TOP_LEVEL, \ |
| 0) |
| |
| #define TPAX_BUFFER_ERROR(dctx) \ |
| tpax_record_error( \ |
| dctx, \ |
| ENOBUFS, \ |
| 0, \ |
| __func__, \ |
| __LINE__, \ |
| TPAX_ERROR_TOP_LEVEL, \ |
| 0) |
| |
| #define TPAX_SPAWN_ERROR(dctx) \ |
| tpax_record_error( \ |
| dctx, \ |
| errno, \ |
| 0, \ |
| __func__, \ |
| __LINE__, \ |
| TPAX_ERROR_TOP_LEVEL \ |
| | (errno ? 0 \ |
| : TPAX_ERROR_CHILD), \ |
| 0) |
| |
| #define TPAX_FILE_ERROR(dctx) \ |
| tpax_record_error( \ |
| dctx, \ |
| EIO, \ |
| 0, \ |
| __func__, \ |
| __LINE__, \ |
| TPAX_ERROR_TOP_LEVEL, \ |
| 0) |
| |
| #define TPAX_CUSTOM_ERROR(dctx,elibcode) \ |
| tpax_record_error( \ |
| dctx, \ |
| 0, \ |
| elibcode, \ |
| __func__, \ |
| __LINE__, \ |
| TPAX_ERROR_TOP_LEVEL \ |
| | TPAX_ERROR_CUSTOM, \ |
| 0) |
| |
| #define TPAX_NESTED_ERROR(dctx) \ |
| tpax_record_error( \ |
| dctx, \ |
| 0, \ |
| 0, \ |
| __func__, \ |
| __LINE__, \ |
| TPAX_ERROR_NESTED, \ |
| 0) |