/* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once #include "nulstr-util.h" #include "stat-util.h" #include "string-util.h" #define FILESYSTEM_MAGIC_MAX 10 typedef enum FilesystemGroups { /* Please leave BASIC_API first and KNOWN last, but sort the rest alphabetically */ FILESYSTEM_SET_BASIC_API, FILESYSTEM_SET_ANONYMOUS, FILESYSTEM_SET_APPLICATION, FILESYSTEM_SET_AUXILIARY_API, FILESYSTEM_SET_COMMON_BLOCK, FILESYSTEM_SET_HISTORICAL_BLOCK, FILESYSTEM_SET_NETWORK, FILESYSTEM_SET_PRIVILEGED_API, FILESYSTEM_SET_SECURITY, FILESYSTEM_SET_TEMPORARY, FILESYSTEM_SET_KNOWN, _FILESYSTEM_SET_MAX, _FILESYSTEM_SET_INVALID = -EINVAL, } FilesystemGroups; typedef struct FilesystemSet { const char *name; const char *help; const char *value; } FilesystemSet; extern const FilesystemSet filesystem_sets[]; const FilesystemSet *filesystem_set_find(const char *name); const char *fs_type_to_string(statfs_f_type_t magic); int fs_type_from_string(const char *name, const statfs_f_type_t **ret); bool fs_in_group(const struct statfs *s, enum FilesystemGroups fs_group); /* gperf prototypes */ const struct FilesystemMagic* filesystems_gperf_lookup(const char *key, GPERF_LEN_TYPE length);