1
/* -*- mode: c; c-basic-offset: 8; -*-
2
* vim: noexpandtab sw=8 ts=8 sts=0:
6
* Routines for analyzing a feature string.
8
* Copyright (C) 2007 Oracle. All rights reserved.
10
* This program is free software; you can redistribute it and/or
11
* modify it under the terms of the GNU General Public
12
* License, version 2, as published by the Free Software Foundation.
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
* General Public License for more details.
19
* You should have received a copy of the GNU General Public
20
* License along with this program; if not, write to the
21
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22
* Boston, MA 021110-1307, USA.
26
#ifndef __FEATURE_STRING_H
27
#define __FEATURE_STRING_H
31
struct fs_feature_flags {
33
/* this flag is the feature's own flag. */
34
fs_options ff_own_flags;
36
* this flag includes the feature's own flag and
37
* all the other features' flag it depends on.
42
enum feature_level_indexes {
43
FEATURE_LEVEL_DEFAULT = 0,
44
FEATURE_LEVEL_MAX_COMPAT,
45
FEATURE_LEVEL_MAX_FEATURES,
48
errcode_t parse_feature(const char *opts,
49
fs_options *feature_flags,
50
fs_options *reverse_flags);
52
int parse_feature_level(const char *typestr,
53
enum feature_level_indexes *index);
55
int merge_feature_flags_with_level(fs_options *dest,
57
fs_options *feature_set,
58
fs_options *reverse_set);
59
#endif /* __FEATURE_STIRNG_H */