blob: 7e541aafb7f2d3dd88849b03408a62478e997635 [file] [log] [blame]
bigbiff bigbiff9c754052013-01-09 09:09:08 -05001/*
2 log.c (02.09.09)
3 exFAT file system implementation library.
4
bigbiff bigbiff61cdc022013-08-08 08:35:06 -04005 Free exFAT implementation.
bigbiff bigbiffca829c42013-01-28 08:14:25 -05006 Copyright (C) 2010-2013 Andrew Nayenko
bigbiff bigbiff9c754052013-01-09 09:09:08 -05007
bigbiff bigbiff61cdc022013-08-08 08:35:06 -04008 This program is free software; you can redistribute it and/or modify
bigbiff bigbiff9c754052013-01-09 09:09:08 -05009 it under the terms of the GNU General Public License as published by
bigbiff bigbiff61cdc022013-08-08 08:35:06 -040010 the Free Software Foundation, either version 2 of the License, or
bigbiff bigbiff9c754052013-01-09 09:09:08 -050011 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
bigbiff bigbiff61cdc022013-08-08 08:35:06 -040018 You should have received a copy of the GNU General Public License along
19 with this program; if not, write to the Free Software Foundation, Inc.,
20 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
bigbiff bigbiff9c754052013-01-09 09:09:08 -050021*/
22
23#include "exfat.h"
24#include <stdarg.h>
25#include <syslog.h>
26#include <unistd.h>
27
28int exfat_errors;
29
30/*
31 * This message means an internal bug in exFAT implementation.
32 */
33void exfat_bug(const char* format, ...)
34{
35 va_list ap, aq;
36
37 va_start(ap, format);
38 va_copy(aq, ap);
39
40 fflush(stdout);
41 fputs("BUG: ", stderr);
42 vfprintf(stderr, format, ap);
43 va_end(ap);
44 fputs(".\n", stderr);
45
46 if (!isatty(STDERR_FILENO))
47 vsyslog(LOG_CRIT, format, aq);
48 va_end(aq);
49
50 abort();
51}
52
53/*
54 * This message means an error in exFAT file system.
55 */
56void exfat_error(const char* format, ...)
57{
58 va_list ap, aq;
59
60 exfat_errors++;
61 va_start(ap, format);
62 va_copy(aq, ap);
63
64 fflush(stdout);
65 fputs("ERROR: ", stderr);
66 vfprintf(stderr, format, ap);
67 va_end(ap);
68 fputs(".\n", stderr);
69
70 if (!isatty(STDERR_FILENO))
71 vsyslog(LOG_ERR, format, aq);
72 va_end(aq);
73}
74
75/*
76 * This message means that there is something unexpected in exFAT file system
77 * that can be a potential problem.
78 */
79void exfat_warn(const char* format, ...)
80{
81 va_list ap, aq;
82
83 va_start(ap, format);
84 va_copy(aq, ap);
85
86 fflush(stdout);
87 fputs("WARN: ", stderr);
88 vfprintf(stderr, format, ap);
89 va_end(ap);
90 fputs(".\n", stderr);
91
92 if (!isatty(STDERR_FILENO))
93 vsyslog(LOG_WARNING, format, aq);
94 va_end(aq);
95}
96
97/*
98 * Just debug message. Disabled by default.
99 */
100void exfat_debug(const char* format, ...)
101{
102 va_list ap;
103
104 fflush(stdout);
105 fputs("DEBUG: ", stderr);
106 va_start(ap, format);
107 vfprintf(stderr, format, ap);
108 va_end(ap);
109 fputs(".\n", stderr);
110}