lkml.org 
[lkml]   [2004]   [Nov]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    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, &param, &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/
    \
     
     \ /
      Last update: 2005-03-22 14:07    [W:0.048 / U:30.480 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site