| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef _BCACHEFS_BTREE_GC_TYPES_H |
| #define _BCACHEFS_BTREE_GC_TYPES_H |
| |
| #include <linux/generic-radix-tree.h> |
| |
| #define GC_PHASES() \ |
| x(not_running) \ |
| x(start) \ |
| x(sb) \ |
| x(btree) |
| |
| enum gc_phase { |
| #define x(n) GC_PHASE_##n, |
| GC_PHASES() |
| #undef x |
| }; |
| |
| struct gc_pos { |
| enum gc_phase phase:8; |
| enum btree_id btree:8; |
| u16 level; |
| struct bpos pos; |
| }; |
| |
| struct reflink_gc { |
| u64 offset; |
| u32 size; |
| u32 refcount; |
| }; |
| |
| typedef GENRADIX(struct reflink_gc) reflink_gc_table; |
| |
| #endif /* _BCACHEFS_BTREE_GC_TYPES_H */ |