1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_BTREE_WRITE_BUFFER_TYPES_H
3 #define _BCACHEFS_BTREE_WRITE_BUFFER_TYPES_H
6 #include "journal_types.h"
8 #define BTREE_WRITE_BUFERED_VAL_U64s_MAX 4
9 #define BTREE_WRITE_BUFERED_U64s_MAX (BKEY_U64s + BTREE_WRITE_BUFERED_VAL_U64s_MAX)
14 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
16 u8 pos[sizeof(struct bpos)];
17 enum btree_id btree:8;
19 enum btree_id btree:8;
20 u8 pos[sizeof(struct bpos)];
25 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
38 struct btree_write_buffered_key {
39 enum btree_id btree:8;
41 __BKEY_PADDED(k, BTREE_WRITE_BUFERED_VAL_U64s_MAX);
44 struct btree_write_buffer_keys {
45 DARRAY(struct btree_write_buffered_key) keys;
46 struct journal_entry_pin pin;
50 struct btree_write_buffer {
51 DARRAY(struct wb_key_ref) sorted;
52 struct btree_write_buffer_keys inc;
53 struct btree_write_buffer_keys flushing;
54 struct work_struct flush_work;
57 #endif /* _BCACHEFS_BTREE_WRITE_BUFFER_TYPES_H */