linux/drivers/md/bcache/features.h

/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _BCACHE_FEATURES_H
#define _BCACHE_FEATURES_H

#include <linux/kernel.h>
#include <linux/types.h>

#include "bcache_ondisk.h"

#define BCH_FEATURE_COMPAT
#define BCH_FEATURE_RO_COMPAT
#define BCH_FEATURE_INCOMPAT
#define BCH_FEATURE_TYPE_MASK

/* Feature set definition */
/* Incompat feature set */
/* 32bit bucket size, obsoleted */
#define BCH_FEATURE_INCOMPAT_OBSO_LARGE_BUCKET
/* real bucket size is (1 << bucket_size) */
#define BCH_FEATURE_INCOMPAT_LOG_LARGE_BUCKET_SIZE

#define BCH_FEATURE_COMPAT_SUPP
#define BCH_FEATURE_RO_COMPAT_SUPP
#define BCH_FEATURE_INCOMPAT_SUPP

#define BCH_HAS_COMPAT_FEATURE(sb, mask)
#define BCH_HAS_RO_COMPAT_FEATURE(sb, mask)
#define BCH_HAS_INCOMPAT_FEATURE(sb, mask)

#define BCH_FEATURE_COMPAT_FUNCS(name, flagname)

#define BCH_FEATURE_RO_COMPAT_FUNCS(name, flagname)

#define BCH_FEATURE_INCOMPAT_FUNCS(name, flagname)

BCH_FEATURE_INCOMPAT_FUNCS(obso_large_bucket, OBSO_LARGE_BUCKET);
BCH_FEATURE_INCOMPAT_FUNCS(large_bucket, LOG_LARGE_BUCKET_SIZE);

static inline bool bch_has_unknown_compat_features(struct cache_sb *sb)
{}

static inline bool bch_has_unknown_ro_compat_features(struct cache_sb *sb)
{}

static inline bool bch_has_unknown_incompat_features(struct cache_sb *sb)
{}

int bch_print_cache_set_feature_compat(struct cache_set *c, char *buf, int size);
int bch_print_cache_set_feature_ro_compat(struct cache_set *c, char *buf, int size);
int bch_print_cache_set_feature_incompat(struct cache_set *c, char *buf, int size);

#endif