diff options
Diffstat (limited to 'kernel/params.c')
-rw-r--r-- | kernel/params.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/kernel/params.c b/kernel/params.c index 9240664af110..32ee04308285 100644 --- a/kernel/params.c +++ b/kernel/params.c | |||
@@ -363,6 +363,30 @@ struct kernel_param_ops param_ops_invbool = { | |||
363 | }; | 363 | }; |
364 | EXPORT_SYMBOL(param_ops_invbool); | 364 | EXPORT_SYMBOL(param_ops_invbool); |
365 | 365 | ||
366 | int param_set_bint(const char *val, const struct kernel_param *kp) | ||
367 | { | ||
368 | struct kernel_param boolkp; | ||
369 | bool v; | ||
370 | int ret; | ||
371 | |||
372 | /* Match bool exactly, by re-using it. */ | ||
373 | boolkp = *kp; | ||
374 | boolkp.arg = &v; | ||
375 | boolkp.flags |= KPARAM_ISBOOL; | ||
376 | |||
377 | ret = param_set_bool(val, &boolkp); | ||
378 | if (ret == 0) | ||
379 | *(int *)kp->arg = v; | ||
380 | return ret; | ||
381 | } | ||
382 | EXPORT_SYMBOL(param_set_bint); | ||
383 | |||
384 | struct kernel_param_ops param_ops_bint = { | ||
385 | .set = param_set_bint, | ||
386 | .get = param_get_int, | ||
387 | }; | ||
388 | EXPORT_SYMBOL(param_ops_bint); | ||
389 | |||
366 | /* We break the rule and mangle the string. */ | 390 | /* We break the rule and mangle the string. */ |
367 | static int param_array(const char *name, | 391 | static int param_array(const char *name, |
368 | const char *val, | 392 | const char *val, |