[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH v2 04/10] plat/linuxu: Use ukplat_coutk() for command line interaction
The platform's command line interaction (e.g., `-h`, `-V`) should actually use stdio to print messages. printf() would be suitable for this. However, since this is provided by a libc, it may not be initialized. Because of this we use ukplat_coutk directly. Signed-off-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx> --- plat/linuxu/setup.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/plat/linuxu/setup.c b/plat/linuxu/setup.c index acb67d2..bf797f5 100644 --- a/plat/linuxu/setup.c +++ b/plat/linuxu/setup.c @@ -41,12 +41,18 @@ #include <linuxu/setup.h> #include <linuxu/console.h> #include <linuxu/syscall.h> +#include <uk/plat/console.h> #include <uk/plat/bootstrap.h> #include <uk/assert.h> #include <uk/errptr.h> struct liblinuxuplat_opts _liblinuxuplat_opts = { 0 }; +#define _coutk_chr(c) \ + ukplat_coutk((char *) &(c), 1) +#define _coutk_str(str) \ + ukplat_coutk((str), strlen(str)) + static const char *sopts = "h?Vm:"; static struct option lopts[] = { {"help", no_argument, NULL, 'h'}, @@ -57,20 +63,21 @@ static struct option lopts[] = { static void version(void) { - uk_printk("Unikraft " - STRINGIFY(UK_CODENAME) " " - STRINGIFY(UK_FULLVERSION) "\n"); + _coutk_str("Unikraft " + STRINGIFY(UK_CODENAME) " " + STRINGIFY(UK_FULLVERSION) "\n"); } static void usage(const char *progname) { - uk_printk("Usage: %s [[LINUXU PLATFORM ARGUMENT]].. -- [[ARGUMENT]]..\n", progname); - uk_printk("\n"); - uk_printk("Unikraft LinuxU platform arguments:\n"); - uk_printk("Mandatory arguments to long options are mandatory for short options too.\n"); - uk_printk(" -h, --help display this help and exit\n"); - uk_printk(" -V, --version display Unikraft version and exit\n"); - uk_printk(" -m, --heapmem [MBYTES] allocate MBYTES as heap memory\n"); + _coutk_str("Usage: "); + _coutk_str(progname); + _coutk_str(" [[LINUXU PLATFORM ARGUMENT]].. -- [[ARGUMENT]]..\n\n"); + _coutk_str("Unikraft LinuxU platform arguments:\n"); + _coutk_str("Mandatory arguments to long options are mandatory for short options too.\n"); + _coutk_str(" -h, --help display this help and exit\n"); + _coutk_str(" -V, --version display Unikraft version and exit\n"); + _coutk_str(" -m, --heapmem [MBYTES] allocate MBYTES as heap memory\n"); } static int parseopts(int argc, char *argv[], struct liblinuxuplat_opts *opts) @@ -114,7 +121,10 @@ static int parseopts(int argc, char *argv[], struct liblinuxuplat_opts *opts) * 1024 * 1024); break; default: - uk_printk("%s: invalid option: -%c\n", progname, opt); + _coutk_str(progname); + _coutk_str(": invalid option: -"); + _coutk_chr(opt); + _coutk_str("\n"); usage(progname); ret = -EINVAL; goto out; -- 2.7.4 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |