Commit 12cd3cd8 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Kees Cook

params: Introduce the param_unknown_fn type

Introduce a new type for the callback to parse an unknown argument.
This unifies function prototypes which takes that as a parameter.
Reviewed-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
Reviewed-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20231120151419.1661807-2-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarKees Cook <keescook@chromium.org>
parent aabf7c37
...@@ -385,6 +385,8 @@ extern bool parameq(const char *name1, const char *name2); ...@@ -385,6 +385,8 @@ extern bool parameq(const char *name1, const char *name2);
*/ */
extern bool parameqn(const char *name1, const char *name2, size_t n); extern bool parameqn(const char *name1, const char *name2, size_t n);
typedef int (*parse_unknown_fn)(char *param, char *val, const char *doing, void *arg);
/* Called on module insert or kernel boot */ /* Called on module insert or kernel boot */
extern char *parse_args(const char *name, extern char *parse_args(const char *name,
char *args, char *args,
...@@ -392,9 +394,7 @@ extern char *parse_args(const char *name, ...@@ -392,9 +394,7 @@ extern char *parse_args(const char *name,
unsigned num, unsigned num,
s16 level_min, s16 level_min,
s16 level_max, s16 level_max,
void *arg, void *arg, parse_unknown_fn unknown);
int (*unknown)(char *param, char *val,
const char *doing, void *arg));
/* Called by module remove. */ /* Called by module remove. */
#ifdef CONFIG_SYSFS #ifdef CONFIG_SYSFS
......
...@@ -120,9 +120,7 @@ static int parse_one(char *param, ...@@ -120,9 +120,7 @@ static int parse_one(char *param,
unsigned num_params, unsigned num_params,
s16 min_level, s16 min_level,
s16 max_level, s16 max_level,
void *arg, void *arg, parse_unknown_fn handle_unknown)
int (*handle_unknown)(char *param, char *val,
const char *doing, void *arg))
{ {
unsigned int i; unsigned int i;
int err; int err;
...@@ -165,9 +163,7 @@ char *parse_args(const char *doing, ...@@ -165,9 +163,7 @@ char *parse_args(const char *doing,
unsigned num, unsigned num,
s16 min_level, s16 min_level,
s16 max_level, s16 max_level,
void *arg, void *arg, parse_unknown_fn unknown)
int (*unknown)(char *param, char *val,
const char *doing, void *arg))
{ {
char *param, *val, *err = NULL; char *param, *val, *err = NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment