error.c 655 B

123456789101112131415161718192021222324252627
  1. #define _PCILIB_ERROR_C
  2. #include <stdio.h>
  3. #include <stdarg.h>
  4. #include "error.h"
  5. static void pcilib_print_error(const char *msg, ...) {
  6. va_list va;
  7. va_start(va, msg);
  8. vprintf(msg, va);
  9. va_end(va);
  10. printf("\n");
  11. }
  12. void (*pcilib_error)(const char *msg, ...) = pcilib_print_error;
  13. void (*pcilib_warning)(const char *msg, ...) = pcilib_print_error;
  14. int pcilib_set_error_handler(void (*err)(const char *msg, ...), void (*warn)(const char *msg, ...)) {
  15. if (err) pcilib_error = err;
  16. else pcilib_error = pcilib_print_error;
  17. if (warn) pcilib_warning = warn;
  18. else pcilib_warning = pcilib_print_error;
  19. return 0;
  20. }