From 07489a4a44634768e79216aeb1d3ae422fd244c9 Mon Sep 17 00:00:00 2001 From: Hilko Bengen Date: Sun, 5 Jun 2011 01:02:49 +0200 Subject: [PATCH 1/1] febootstrap/helper/init: Add translations for errno --- helper/init.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/helper/init.c b/helper/init.c index 0ca3135..34a8450 100644 --- a/helper/init.c +++ b/helper/init.c @@ -40,6 +40,23 @@ extern long init_module (void *, unsigned long, const char *); +/* translation taken from module-init-tools/insmod.c */ +static const char *moderror(int err) +{ + switch (err) { + case ENOEXEC: + return "Invalid module format"; + case ENOENT: + return "Unknown symbol in module"; + case ESRCH: + return "Module has wrong symbol version"; + case EINVAL: + return "Invalid parameters"; + default: + return strerror(err); + } +} + /* Leave this enabled for now. When we get more confident in the boot * process we can turn this off or make it configurable. */ @@ -210,7 +227,7 @@ insmod (const char *filename) close (fd); if (init_module (buf, st.st_size, "") != 0) { - fprintf (stderr, "insmod: init_module: %s: %m\n", filename); + fprintf (stderr, "insmod: init_module: %s: %s\n", filename, moderror (errno)); /* However ignore the error because this can just happen because * of a missing device. */ -- 1.8.3.1