Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
| 2 | |
| 3 | #ifndef BTRFS_SYSFS_H |
| 4 | #define BTRFS_SYSFS_H |
| 5 | |
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame^] | 6 | #include <linux/kobject.h> |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 7 | |
| 8 | enum btrfs_feature_set { |
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame^] | 9 | FEAT_COMPAT, |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 10 | FEAT_COMPAT_RO, |
| 11 | FEAT_INCOMPAT, |
| 12 | FEAT_MAX |
| 13 | }; |
| 14 | |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 15 | char *btrfs_printable_features(enum btrfs_feature_set set, u64 flags); |
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame^] | 16 | const char * const btrfs_feature_set_name(enum btrfs_feature_set set); |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 17 | int btrfs_sysfs_add_device_link(struct btrfs_fs_devices *fs_devices, |
| 18 | struct btrfs_device *one_device); |
| 19 | int btrfs_sysfs_rm_device_link(struct btrfs_fs_devices *fs_devices, |
| 20 | struct btrfs_device *one_device); |
| 21 | int btrfs_sysfs_add_fsid(struct btrfs_fs_devices *fs_devs, |
| 22 | struct kobject *parent); |
| 23 | int btrfs_sysfs_add_device(struct btrfs_fs_devices *fs_devs); |
| 24 | void btrfs_sysfs_remove_fsid(struct btrfs_fs_devices *fs_devs); |
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame^] | 25 | void btrfs_sysfs_update_sprout_fsid(struct btrfs_fs_devices *fs_devices, |
| 26 | const u8 *fsid); |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 27 | void btrfs_sysfs_feature_update(struct btrfs_fs_info *fs_info, |
| 28 | u64 bit, enum btrfs_feature_set set); |
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame^] | 29 | void btrfs_kobject_uevent(struct block_device *bdev, enum kobject_action action); |
| 30 | |
| 31 | int __init btrfs_init_sysfs(void); |
| 32 | void __cold btrfs_exit_sysfs(void); |
| 33 | int btrfs_sysfs_add_mounted(struct btrfs_fs_info *fs_info); |
| 34 | void btrfs_sysfs_remove_mounted(struct btrfs_fs_info *fs_info); |
| 35 | void btrfs_sysfs_add_block_group_type(struct btrfs_block_group_cache *cache); |
| 36 | int btrfs_sysfs_add_space_info_type(struct btrfs_fs_info *fs_info, |
| 37 | struct btrfs_space_info *space_info); |
| 38 | void btrfs_sysfs_remove_space_info(struct btrfs_space_info *space_info); |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 39 | |
| 40 | #endif |