c38c5a7f2e
Expose our three options to userspace. Signed-off-by: Richard Weinberger <richard@nod.at>
70 lines
1.3 KiB
C
70 lines
1.3 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
#include <linux/kernel.h>
|
|
#include "ubifs.h"
|
|
|
|
/* Normal UBIFS messages */
|
|
void ubifs_msg(const struct ubifs_info *c, const char *fmt, ...)
|
|
{
|
|
struct va_format vaf;
|
|
va_list args;
|
|
|
|
va_start(args, fmt);
|
|
|
|
vaf.fmt = fmt;
|
|
vaf.va = &args;
|
|
|
|
pr_notice("UBIFS (ubi%d:%d): %pV\n",
|
|
c->vi.ubi_num, c->vi.vol_id, &vaf);
|
|
|
|
va_end(args);
|
|
} \
|
|
|
|
/* UBIFS error messages */
|
|
void ubifs_err(const struct ubifs_info *c, const char *fmt, ...)
|
|
{
|
|
struct va_format vaf;
|
|
va_list args;
|
|
|
|
va_start(args, fmt);
|
|
|
|
vaf.fmt = fmt;
|
|
vaf.va = &args;
|
|
|
|
pr_err("UBIFS error (ubi%d:%d pid %d): %ps: %pV\n",
|
|
c->vi.ubi_num, c->vi.vol_id, current->pid,
|
|
__builtin_return_address(0),
|
|
&vaf);
|
|
|
|
va_end(args);
|
|
} \
|
|
|
|
/* UBIFS warning messages */
|
|
void ubifs_warn(const struct ubifs_info *c, const char *fmt, ...)
|
|
{
|
|
struct va_format vaf;
|
|
va_list args;
|
|
|
|
va_start(args, fmt);
|
|
|
|
vaf.fmt = fmt;
|
|
vaf.va = &args;
|
|
|
|
pr_warn("UBIFS warning (ubi%d:%d pid %d): %ps: %pV\n",
|
|
c->vi.ubi_num, c->vi.vol_id, current->pid,
|
|
__builtin_return_address(0),
|
|
&vaf);
|
|
|
|
va_end(args);
|
|
}
|
|
|
|
static char *assert_names[] = {
|
|
[ASSACT_REPORT] = "report",
|
|
[ASSACT_RO] = "read-only",
|
|
[ASSACT_PANIC] = "panic",
|
|
};
|
|
|
|
const char *ubifs_assert_action_name(struct ubifs_info *c)
|
|
{
|
|
return assert_names[c->assert_action];
|
|
}
|