Lines Matching full:param
56 struct fs_parameter *param, bool *negated) in fs_lookup_key() argument
59 const char *name = param->key; in fs_lookup_key()
60 bool want_flag = param->type == fs_value_is_flag; in fs_lookup_key()
89 * @param: The parameter.
105 struct fs_parameter *param, in __fs_parse() argument
112 p = fs_lookup_key(desc, param, &result->negated); in __fs_parse()
117 warn_plog(log, "Deprecated parameter '%s'", param->key); in __fs_parse()
123 if (param->type != fs_value_is_flag) in __fs_parse()
125 param->key); in __fs_parse()
128 int ret = p->type(log, p, param, result); in __fs_parse()
139 * @param: The parameter.
144 struct fs_parameter *param, in fs_lookup_param() argument
153 switch (param->type) { in fs_lookup_param()
155 f = getname_kernel(param->string); in fs_lookup_param()
161 f = param->name; in fs_lookup_param()
165 return invalf(fc, "%s: not usable as path", param->key); in fs_lookup_param()
168 ret = filename_lookup(param->dirfd, f, flags, _path, NULL); in fs_lookup_param()
170 errorf(fc, "%s: Lookup failure for '%s'", param->key, f->name); in fs_lookup_param()
180 param->key, f->name); in fs_lookup_param()
191 static int fs_param_bad_value(struct p_log *log, struct fs_parameter *param) in fs_param_bad_value() argument
193 return inval_plog(log, "Bad value for '%s'", param->key); in fs_param_bad_value()
197 struct fs_parameter *param, struct fs_parse_result *result) in fs_param_is_bool() argument
200 if (param->type != fs_value_is_string) in fs_param_is_bool()
201 return fs_param_bad_value(log, param); in fs_param_is_bool()
202 if (!*param->string && (p->flags & fs_param_can_be_empty)) in fs_param_is_bool()
204 b = lookup_constant(bool_names, param->string, -1); in fs_param_is_bool()
206 return fs_param_bad_value(log, param); in fs_param_is_bool()
213 struct fs_parameter *param, struct fs_parse_result *result) in fs_param_is_u32() argument
216 if (param->type != fs_value_is_string) in fs_param_is_u32()
217 return fs_param_bad_value(log, param); in fs_param_is_u32()
218 if (!*param->string && (p->flags & fs_param_can_be_empty)) in fs_param_is_u32()
220 if (kstrtouint(param->string, base, &result->uint_32) < 0) in fs_param_is_u32()
221 return fs_param_bad_value(log, param); in fs_param_is_u32()
227 struct fs_parameter *param, struct fs_parse_result *result) in fs_param_is_s32() argument
229 if (param->type != fs_value_is_string) in fs_param_is_s32()
230 return fs_param_bad_value(log, param); in fs_param_is_s32()
231 if (!*param->string && (p->flags & fs_param_can_be_empty)) in fs_param_is_s32()
233 if (kstrtoint(param->string, 0, &result->int_32) < 0) in fs_param_is_s32()
234 return fs_param_bad_value(log, param); in fs_param_is_s32()
240 struct fs_parameter *param, struct fs_parse_result *result) in fs_param_is_u64() argument
242 if (param->type != fs_value_is_string) in fs_param_is_u64()
243 return fs_param_bad_value(log, param); in fs_param_is_u64()
244 if (!*param->string && (p->flags & fs_param_can_be_empty)) in fs_param_is_u64()
246 if (kstrtoull(param->string, 0, &result->uint_64) < 0) in fs_param_is_u64()
247 return fs_param_bad_value(log, param); in fs_param_is_u64()
253 struct fs_parameter *param, struct fs_parse_result *result) in fs_param_is_enum() argument
256 if (param->type != fs_value_is_string) in fs_param_is_enum()
257 return fs_param_bad_value(log, param); in fs_param_is_enum()
258 if (!*param->string && (p->flags & fs_param_can_be_empty)) in fs_param_is_enum()
260 c = __lookup_constant(p->data, param->string); in fs_param_is_enum()
262 return fs_param_bad_value(log, param); in fs_param_is_enum()
269 struct fs_parameter *param, struct fs_parse_result *result) in fs_param_is_string() argument
271 if (param->type != fs_value_is_string || in fs_param_is_string()
272 (!*param->string && !(p->flags & fs_param_can_be_empty))) in fs_param_is_string()
273 return fs_param_bad_value(log, param); in fs_param_is_string()
279 struct fs_parameter *param, struct fs_parse_result *result) in fs_param_is_blob() argument
281 if (param->type != fs_value_is_blob) in fs_param_is_blob()
282 return fs_param_bad_value(log, param); in fs_param_is_blob()
288 struct fs_parameter *param, struct fs_parse_result *result) in fs_param_is_fd() argument
290 switch (param->type) { in fs_param_is_fd()
292 if ((!*param->string && !(p->flags & fs_param_can_be_empty)) || in fs_param_is_fd()
293 kstrtouint(param->string, 0, &result->uint_32) < 0) in fs_param_is_fd()
299 result->uint_32 = param->dirfd; in fs_param_is_fd()
306 return fs_param_bad_value(log, param); in fs_param_is_fd()
311 struct fs_parameter *param, struct fs_parse_result *result) in fs_param_is_blockdev() argument
318 struct fs_parameter *param, struct fs_parse_result *result) in fs_param_is_path() argument
382 const struct fs_parameter_spec *param, *p2; in fs_validate_description() local
385 for (param = desc; param->name; param++) { in fs_validate_description()
387 for (p2 = desc; p2 < param; p2++) { in fs_validate_description()
388 if (strcmp(param->name, p2->name) == 0) { in fs_validate_description()
389 if (is_flag(param) != is_flag(p2)) in fs_validate_description()
391 pr_err("VALIDATE %s: PARAM[%s]: Duplicate\n", in fs_validate_description()
392 name, param->name); in fs_validate_description()