summaryrefslogtreecommitdiff
path: root/kern/arg.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-07-13 20:07:07 +0200
committerRichard Braun <rbraun@sceen.net>2017-07-13 20:07:07 +0200
commitb2ad7d862388558556288877a65f2797528168f4 (patch)
tree4d3080abf0cbcca7c058cba5cad2ed71e5d5e1e5 /kern/arg.c
parentcacd797c0c1825301f21aab18a7ce2c410d14535 (diff)
Switch to initialization operations
Diffstat (limited to 'kern/arg.c')
-rw-r--r--kern/arg.c24
1 files changed, 11 insertions, 13 deletions
diff --git a/kern/arg.c b/kern/arg.c
index 62ace8be..7bb616a4 100644
--- a/kern/arg.c
+++ b/kern/arg.c
@@ -35,22 +35,17 @@ static char arg_cmdline[ARG_CMDLINE_MAX_SIZE] __initdata;
static const char *arg_cmdline_end __initdata;
void __init
-arg_setup(const char *cmdline)
+arg_set_cmdline(const char *cmdline)
{
- size_t i, length;
-
- if (cmdline == NULL) {
- arg_cmdline[0] = '\0';
- return;
- }
-
- length = strlen(cmdline);
+ strlcpy(arg_cmdline, cmdline, sizeof(arg_cmdline));
+}
- if ((length + 1) > ARRAY_SIZE(arg_cmdline)) {
- panic("arg: command line too long");
- }
+static int __init
+arg_setup(void)
+{
+ size_t i, length;
- memcpy(arg_cmdline, cmdline, length + 1);
+ length = strlen(arg_cmdline);
for (i = 0; i < length; i++) {
if (arg_cmdline[i] == ' ') {
@@ -59,8 +54,11 @@ arg_setup(const char *cmdline)
}
arg_cmdline_end = arg_cmdline + length;
+ return 0;
}
+INIT_OP_DEFINE(arg_setup);
+
void __init
arg_log_info(void)
{