#include <linux/export.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
#include <linux/slab.h>
#include <linux/security.h>
#include <linux/namei.h>
#include "internal.h"
static const struct constant_table bool_names[] = …;
static const struct constant_table *
__lookup_constant(const struct constant_table *tbl, const char *name)
{ … }
int lookup_constant(const struct constant_table *tbl, const char *name, int not_found)
{ … }
EXPORT_SYMBOL(…);
static inline bool is_flag(const struct fs_parameter_spec *p)
{ … }
static const struct fs_parameter_spec *fs_lookup_key(
const struct fs_parameter_spec *desc,
struct fs_parameter *param, bool *negated)
{ … }
int __fs_parse(struct p_log *log,
const struct fs_parameter_spec *desc,
struct fs_parameter *param,
struct fs_parse_result *result)
{ … }
EXPORT_SYMBOL(…);
int fs_lookup_param(struct fs_context *fc,
struct fs_parameter *param,
bool want_bdev,
unsigned int flags,
struct path *_path)
{ … }
EXPORT_SYMBOL(…);
static int fs_param_bad_value(struct p_log *log, struct fs_parameter *param)
{ … }
int fs_param_is_bool(struct p_log *log, const struct fs_parameter_spec *p,
struct fs_parameter *param, struct fs_parse_result *result)
{ … }
EXPORT_SYMBOL(…);
int fs_param_is_u32(struct p_log *log, const struct fs_parameter_spec *p,
struct fs_parameter *param, struct fs_parse_result *result)
{ … }
EXPORT_SYMBOL(…);
int fs_param_is_s32(struct p_log *log, const struct fs_parameter_spec *p,
struct fs_parameter *param, struct fs_parse_result *result)
{ … }
EXPORT_SYMBOL(…);
int fs_param_is_u64(struct p_log *log, const struct fs_parameter_spec *p,
struct fs_parameter *param, struct fs_parse_result *result)
{ … }
EXPORT_SYMBOL(…);
int fs_param_is_enum(struct p_log *log, const struct fs_parameter_spec *p,
struct fs_parameter *param, struct fs_parse_result *result)
{ … }
EXPORT_SYMBOL(…);
int fs_param_is_string(struct p_log *log, const struct fs_parameter_spec *p,
struct fs_parameter *param, struct fs_parse_result *result)
{ … }
EXPORT_SYMBOL(…);
int fs_param_is_blob(struct p_log *log, const struct fs_parameter_spec *p,
struct fs_parameter *param, struct fs_parse_result *result)
{ … }
EXPORT_SYMBOL(…);
int fs_param_is_fd(struct p_log *log, const struct fs_parameter_spec *p,
struct fs_parameter *param, struct fs_parse_result *result)
{ … }
EXPORT_SYMBOL(…);
int fs_param_is_uid(struct p_log *log, const struct fs_parameter_spec *p,
struct fs_parameter *param, struct fs_parse_result *result)
{ … }
EXPORT_SYMBOL(…);
int fs_param_is_gid(struct p_log *log, const struct fs_parameter_spec *p,
struct fs_parameter *param, struct fs_parse_result *result)
{ … }
EXPORT_SYMBOL(…);
int fs_param_is_blockdev(struct p_log *log, const struct fs_parameter_spec *p,
struct fs_parameter *param, struct fs_parse_result *result)
{ … }
EXPORT_SYMBOL(…);
int fs_param_is_path(struct p_log *log, const struct fs_parameter_spec *p,
struct fs_parameter *param, struct fs_parse_result *result)
{ … }
EXPORT_SYMBOL(…);
#ifdef CONFIG_VALIDATE_FS_PARSER
bool validate_constant_table(const struct constant_table *tbl, size_t tbl_size,
int low, int high, int special)
{ … }
bool fs_validate_description(const char *name,
const struct fs_parameter_spec *desc)
{ … }
#endif