/** * Copyright (c) 2025 favewa * SPDX-License-Identifier: BSD-3-Clause */ #include "ratazana.h" #include #include #include [[gnu::format(printf, 1, 2)]] _Noreturn void ratazana_fatal(const char *fmt, ...) { va_list args; va_start(args, fmt); fprintf(stderr, "Fatal error: "); vfprintf(stderr, fmt, args); fprintf(stderr, "\n"); fflush(stderr); va_end(args); exit(EXIT_FAILURE); } const char *ratazana_strerror(ratazana_result_t result) { switch (result) { case RATAZANA_OK: return "Success"; case RATAZANA_ERROR_INVALID_ARG: return "Invalid argument"; case RATAZANA_ERROR_IO: return "I/O error"; case RATAZANA_ERROR_TIMEOUT: return "Timeout"; case RATAZANA_ERROR_NOT_FOUND: return "Device not found"; case RATAZANA_ERROR_PROTOCOL: return "Protocol error"; case RATAZANA_ERROR_ACCESS: return "Access denied"; default: return "Unknown error"; } }