ratazana/utils.c
2025-11-10 04:53:37 -03:00

47 lines
937 B
C

/**
* Copyright (c) 2025 favewa
* SPDX-License-Identifier: BSD-3-Clause
*/
#include "ratazana.h"
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
[[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";
}
}