Messages in this thread Patch in this message | | | Date | Thu, 4 Nov 2004 15:50:16 +0900 | From | Tejun Heo <> | Subject | [PATCH 2.6.10-rc1 9/15] driver-model: parse_args()'s @unknown function modified to take void *arg |
| |
dp_09_module_param_unknown_arg.patch
This is the 9th patch of 15 patches for devparam.
The @unknown function of parse_args() is changed to take a void *arg. This is used by devparam.
Signed-off-by: Tejun Heo <tj@home-tj.org>
Index: linux-export/include/linux/moduleparam.h =================================================================== --- linux-export.orig/include/linux/moduleparam.h 2004-11-04 14:25:59.000000000 +0900 +++ linux-export/include/linux/moduleparam.h 2004-11-04 14:25:59.000000000 +0900 @@ -114,7 +114,8 @@ extern int parse_args(const char *name, char *args, struct kernel_param *params, unsigned num, - int (*unknown)(char *param, char *val)); + int (*unknown)(char *param, char *val, void *arg), + void *uarg); /* All the helper functions */ /* The macros to do compile-time type checking stolen from Jakub Index: linux-export/init/main.c =================================================================== --- linux-export.orig/init/main.c 2004-11-04 10:25:56.000000000 +0900 +++ linux-export/init/main.c 2004-11-04 14:25:59.000000000 +0900 @@ -284,7 +284,7 @@ __setup("quiet", quiet_kernel); * Unknown boot options get handed to init, unless they look like * failed parameters */ -static int __init unknown_bootoption(char *param, char *val) +static int __init unknown_bootoption(char *param, char *val, void *arg) { /* Change NUL term back to "=", to make "param" the whole string. */ if (val) { @@ -450,7 +450,7 @@ static void noinline rest_init(void) } /* Check for early params. */ -static int __init do_early_param(char *param, char *val) +static int __init do_early_param(char *param, char *val, void *arg) { struct obs_kernel_param *p; extern struct obs_kernel_param __setup_start, __setup_end; @@ -477,7 +477,7 @@ void __init parse_early_param(void) /* All fall through to do_early_param. */ strlcpy(tmp_cmdline, saved_command_line, COMMAND_LINE_SIZE); - parse_args("early options", tmp_cmdline, NULL, 0, do_early_param); + parse_args("early options", tmp_cmdline, NULL, 0, do_early_param, NULL); done = 1; } @@ -517,7 +517,7 @@ asmlinkage void __init start_kernel(void parse_early_param(); parse_args("Booting kernel", command_line, __start___param, __stop___param - __start___param, - &unknown_bootoption); + &unknown_bootoption, NULL); sort_main_extable(); trap_init(); rcu_init(); Index: linux-export/kernel/module.c =================================================================== --- linux-export.orig/kernel/module.c 2004-11-04 14:25:58.000000000 +0900 +++ linux-export/kernel/module.c 2004-11-04 14:25:59.000000000 +0900 @@ -807,7 +807,7 @@ static int obsolete_params(const char *n kp[i].arg = &obsparm[i]; } - ret = parse_args(name, args, kp, num, NULL); + ret = parse_args(name, args, kp, num, NULL, NULL); out: kfree(kp); return ret; @@ -1716,7 +1716,7 @@ static struct module *load_module(void _ sechdrs[setupindex].sh_addr, sechdrs[setupindex].sh_size / sizeof(struct kernel_param), - NULL); + NULL, NULL); } err = mod_sysfs_setup(mod, (struct kernel_param *) Index: linux-export/kernel/params.c =================================================================== --- linux-export.orig/kernel/params.c 2004-11-04 14:25:59.000000000 +0900 +++ linux-export/kernel/params.c 2004-11-04 14:25:59.000000000 +0900 @@ -50,7 +50,8 @@ static int parse_one(char *param, char *val, struct kernel_param *params, unsigned num_params, - int (*handle_unknown)(char *param, char *val)) + int (*handle_unknown)(char *param, char *val, void *arg), + void *uarg) { unsigned int i; @@ -65,7 +66,7 @@ static int parse_one(char *param, if (handle_unknown) { DEBUGP("Unknown argument: calling %p\n", handle_unknown); - return handle_unknown(param, val); + return handle_unknown(param, val, uarg); } DEBUGP("Unknown argument `%s'\n", param); @@ -120,7 +121,7 @@ int parse_args(const char *name, char *args, struct kernel_param *params, unsigned num, - int (*unknown)(char *param, char *val)) + int (*unknown)(char *param, char *val, void *arg), void *uarg) { char *param, *val; @@ -130,7 +131,7 @@ int parse_args(const char *name, int ret; args = param_next_arg(args, ¶m, &val); - ret = parse_one(param, val, params, num, unknown); + ret = parse_one(param, val, params, num, unknown, uarg); switch (ret) { case -ENOENT: printk(KERN_ERR "%s: Unknown parameter `%s'\n", - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |