Lines Matching +full:64 +full:- +full:bits

1 /* SPDX-License-Identifier: GPL-2.0 */
48 #define DECLARE_BTRFS_SETGET_BITS(bits) \ argument
49 u##bits btrfs_get_token_##bits(struct btrfs_map_token *token, \
51 void btrfs_set_token_##bits(struct btrfs_map_token *token, \
53 u##bits val); \
54 u##bits btrfs_get_##bits(const struct extent_buffer *eb, \
56 void btrfs_set_##bits(const struct extent_buffer *eb, void *ptr, \
57 unsigned long off, u##bits val);
62 DECLARE_BTRFS_SETGET_BITS(64)
64 #define BTRFS_SETGET_FUNCS(name, type, member, bits) \ argument
65 static inline u##bits btrfs_##name(const struct extent_buffer *eb, \
68 static_assert(sizeof(u##bits) == sizeof_field(type, member)); \
69 return btrfs_get_##bits(eb, s, offsetof(type, member)); \
72 u##bits val) \
74 static_assert(sizeof(u##bits) == sizeof_field(type, member)); \
75 btrfs_set_##bits(eb, s, offsetof(type, member), val); \
77 static inline u##bits btrfs_token_##name(struct btrfs_map_token *token, \
80 static_assert(sizeof(u##bits) == sizeof_field(type, member)); \
81 return btrfs_get_token_##bits(token, s, offsetof(type, member));\
84 type *s, u##bits val) \
86 static_assert(sizeof(u##bits) == sizeof_field(type, member)); \
87 btrfs_set_token_##bits(token, s, offsetof(type, member), val); \
90 #define BTRFS_SETGET_HEADER_FUNCS(name, type, member, bits) \ argument
91 static inline u##bits btrfs_##name(const struct extent_buffer *eb) \
93 const type *p = folio_address(eb->folios[0]) + \
94 offset_in_page(eb->start); \
95 return get_unaligned_le##bits(&p->member); \
98 u##bits val) \
100 type *p = folio_address(eb->folios[0]) + offset_in_page(eb->start); \
101 put_unaligned_le##bits(val, &p->member); \
104 #define BTRFS_SETGET_STACK_FUNCS(name, type, member, bits) \ argument
105 static inline u##bits btrfs_##name(const type *s) \
107 return get_unaligned_le##bits(&s->member); \
109 static inline void btrfs_set_##name(type *s, u##bits val) \
111 put_unaligned_le##bits(val, &s->member); \
125 WARN_ON(!IS_ALIGNED(val, eb->fs_info->sectorsize)); in btrfs_set_device_total_bytes()
129 BTRFS_SETGET_FUNCS(device_type, struct btrfs_dev_item, type, 64);
130 BTRFS_SETGET_FUNCS(device_bytes_used, struct btrfs_dev_item, bytes_used, 64);
133 BTRFS_SETGET_FUNCS(device_start_offset, struct btrfs_dev_item, start_offset, 64);
135 BTRFS_SETGET_FUNCS(device_id, struct btrfs_dev_item, devid, 64);
139 BTRFS_SETGET_FUNCS(device_generation, struct btrfs_dev_item, generation, 64);
141 BTRFS_SETGET_STACK_FUNCS(stack_device_type, struct btrfs_dev_item, type, 64);
143 total_bytes, 64);
145 bytes_used, 64);
152 BTRFS_SETGET_STACK_FUNCS(stack_device_id, struct btrfs_dev_item, devid, 64);
159 generation, 64);
171 BTRFS_SETGET_FUNCS(chunk_length, struct btrfs_chunk, length, 64);
172 BTRFS_SETGET_FUNCS(chunk_owner, struct btrfs_chunk, owner, 64);
173 BTRFS_SETGET_FUNCS(chunk_stripe_len, struct btrfs_chunk, stripe_len, 64);
177 BTRFS_SETGET_FUNCS(chunk_type, struct btrfs_chunk, type, 64);
180 BTRFS_SETGET_FUNCS(stripe_devid, struct btrfs_stripe, devid, 64);
181 BTRFS_SETGET_FUNCS(stripe_offset, struct btrfs_stripe, offset, 64);
188 BTRFS_SETGET_STACK_FUNCS(stack_chunk_length, struct btrfs_chunk, length, 64);
189 BTRFS_SETGET_STACK_FUNCS(stack_chunk_owner, struct btrfs_chunk, owner, 64);
191 stripe_len, 64);
196 BTRFS_SETGET_STACK_FUNCS(stack_chunk_type, struct btrfs_chunk, type, 64);
201 BTRFS_SETGET_STACK_FUNCS(stack_stripe_devid, struct btrfs_stripe, devid, 64);
202 BTRFS_SETGET_STACK_FUNCS(stack_stripe_offset, struct btrfs_stripe, offset, 64);
246 used, 64);
247 BTRFS_SETGET_FUNCS(block_group_used, struct btrfs_block_group_item, used, 64);
249 struct btrfs_block_group_item, chunk_objectid, 64);
252 struct btrfs_block_group_item, chunk_objectid, 64);
253 BTRFS_SETGET_FUNCS(block_group_flags, struct btrfs_block_group_item, flags, 64);
255 struct btrfs_block_group_item, flags, 64);
264 BTRFS_SETGET_FUNCS(inode_ref_index, struct btrfs_inode_ref, index, 64);
266 BTRFS_SETGET_STACK_FUNCS(stack_inode_ref_index, struct btrfs_inode_ref, index, 64);
270 parent_objectid, 64);
273 BTRFS_SETGET_FUNCS(inode_extref_index, struct btrfs_inode_extref, index, 64);
276 BTRFS_SETGET_FUNCS(inode_generation, struct btrfs_inode_item, generation, 64);
277 BTRFS_SETGET_FUNCS(inode_sequence, struct btrfs_inode_item, sequence, 64);
278 BTRFS_SETGET_FUNCS(inode_transid, struct btrfs_inode_item, transid, 64);
279 BTRFS_SETGET_FUNCS(inode_size, struct btrfs_inode_item, size, 64);
280 BTRFS_SETGET_FUNCS(inode_nbytes, struct btrfs_inode_item, nbytes, 64);
281 BTRFS_SETGET_FUNCS(inode_block_group, struct btrfs_inode_item, block_group, 64);
286 BTRFS_SETGET_FUNCS(inode_rdev, struct btrfs_inode_item, rdev, 64);
287 BTRFS_SETGET_FUNCS(inode_flags, struct btrfs_inode_item, flags, 64);
289 generation, 64);
291 sequence, 64);
293 transid, 64);
294 BTRFS_SETGET_STACK_FUNCS(stack_inode_size, struct btrfs_inode_item, size, 64);
295 BTRFS_SETGET_STACK_FUNCS(stack_inode_nbytes, struct btrfs_inode_item, nbytes, 64);
297 block_group, 64);
302 BTRFS_SETGET_STACK_FUNCS(stack_inode_rdev, struct btrfs_inode_item, rdev, 64);
303 BTRFS_SETGET_STACK_FUNCS(stack_inode_flags, struct btrfs_inode_item, flags, 64);
304 BTRFS_SETGET_FUNCS(timespec_sec, struct btrfs_timespec, sec, 64);
306 BTRFS_SETGET_STACK_FUNCS(stack_timespec_sec, struct btrfs_timespec, sec, 64);
310 BTRFS_SETGET_FUNCS(raid_stride_devid, struct btrfs_raid_stride, devid, 64);
311 BTRFS_SETGET_FUNCS(raid_stride_physical, struct btrfs_raid_stride, physical, 64);
314 BTRFS_SETGET_STACK_FUNCS(stack_raid_stride_devid, struct btrfs_raid_stride, devid, 64);
315 BTRFS_SETGET_STACK_FUNCS(stack_raid_stride_physical, struct btrfs_raid_stride, physical, 64);
318 BTRFS_SETGET_FUNCS(dev_extent_chunk_tree, struct btrfs_dev_extent, chunk_tree, 64);
320 chunk_objectid, 64);
322 chunk_offset, 64);
323 BTRFS_SETGET_FUNCS(dev_extent_length, struct btrfs_dev_extent, length, 64);
325 chunk_tree, 64);
327 chunk_objectid, 64);
329 chunk_offset, 64);
330 BTRFS_SETGET_STACK_FUNCS(stack_dev_extent_length, struct btrfs_dev_extent, length, 64);
332 BTRFS_SETGET_FUNCS(extent_refs, struct btrfs_extent_item, refs, 64);
333 BTRFS_SETGET_FUNCS(extent_generation, struct btrfs_extent_item, generation, 64);
334 BTRFS_SETGET_FUNCS(extent_flags, struct btrfs_extent_item, flags, 64);
352 BTRFS_SETGET_FUNCS(extent_data_ref_root, struct btrfs_extent_data_ref, root, 64);
354 objectid, 64);
356 offset, 64);
362 root_id, 64);
367 offset, 64);
386 BTRFS_SETGET_FUNCS(key_blockptr, struct btrfs_key_ptr, blockptr, 64);
387 BTRFS_SETGET_FUNCS(key_generation, struct btrfs_key_ptr, generation, 64);
388 BTRFS_SETGET_STACK_FUNCS(stack_key_blockptr, struct btrfs_key_ptr, blockptr, 64);
390 generation, 64);
479 struct btrfs_item *item = btrfs_item_nr(token->eb, slot); \
485 struct btrfs_item *item = btrfs_item_nr(token->eb, slot); \
513 BTRFS_SETGET_FUNCS(dir_log_end, struct btrfs_dir_log_item, end, 64);
516 BTRFS_SETGET_FUNCS(root_ref_dirid, struct btrfs_root_ref, dirid, 64);
517 BTRFS_SETGET_FUNCS(root_ref_sequence, struct btrfs_root_ref, sequence, 64);
519 BTRFS_SETGET_STACK_FUNCS(stack_root_ref_dirid, struct btrfs_root_ref, dirid, 64);
520 BTRFS_SETGET_STACK_FUNCS(stack_root_ref_sequence, struct btrfs_root_ref, sequence, 64);
527 BTRFS_SETGET_FUNCS(dir_transid, struct btrfs_dir_item, transid, 64);
531 BTRFS_SETGET_STACK_FUNCS(stack_dir_transid, struct btrfs_dir_item, transid, 64);
559 num_entries, 64);
561 num_bitmaps, 64);
563 generation, 64);
580 BTRFS_SETGET_STACK_FUNCS(disk_key_objectid, struct btrfs_disk_key, objectid, 64);
581 BTRFS_SETGET_STACK_FUNCS(disk_key_offset, struct btrfs_disk_key, offset, 64);
587 * Optimized helpers for little-endian architectures where CPU and on-disk
633 cpu->offset = le64_to_cpu(disk->offset); in btrfs_disk_key_to_cpu()
634 cpu->type = disk->type; in btrfs_disk_key_to_cpu()
635 cpu->objectid = le64_to_cpu(disk->objectid); in btrfs_disk_key_to_cpu()
641 disk->offset = cpu_to_le64(cpu->offset); in btrfs_cpu_key_to_disk()
642 disk->type = cpu->type; in btrfs_cpu_key_to_disk()
643 disk->objectid = cpu_to_le64(cpu->objectid); in btrfs_cpu_key_to_disk()
677 BTRFS_SETGET_HEADER_FUNCS(header_bytenr, struct btrfs_header, bytenr, 64);
678 BTRFS_SETGET_HEADER_FUNCS(header_generation, struct btrfs_header, generation, 64);
679 BTRFS_SETGET_HEADER_FUNCS(header_owner, struct btrfs_header, owner, 64);
681 BTRFS_SETGET_HEADER_FUNCS(header_flags, struct btrfs_header, flags, 64);
684 generation, 64);
685 BTRFS_SETGET_STACK_FUNCS(stack_header_owner, struct btrfs_header, owner, 64);
687 BTRFS_SETGET_STACK_FUNCS(stack_header_bytenr, struct btrfs_header, bytenr, 64);
730 BTRFS_SETGET_FUNCS(disk_root_generation, struct btrfs_root_item, generation, 64);
732 BTRFS_SETGET_FUNCS(disk_root_bytenr, struct btrfs_root_item, bytenr, 64);
735 BTRFS_SETGET_STACK_FUNCS(root_generation, struct btrfs_root_item, generation, 64);
736 BTRFS_SETGET_STACK_FUNCS(root_bytenr, struct btrfs_root_item, bytenr, 64);
739 BTRFS_SETGET_STACK_FUNCS(root_dirid, struct btrfs_root_item, root_dirid, 64);
741 BTRFS_SETGET_STACK_FUNCS(root_flags, struct btrfs_root_item, flags, 64);
742 BTRFS_SETGET_STACK_FUNCS(root_used, struct btrfs_root_item, bytes_used, 64);
743 BTRFS_SETGET_STACK_FUNCS(root_limit, struct btrfs_root_item, byte_limit, 64);
745 last_snapshot, 64);
747 generation_v2, 64);
748 BTRFS_SETGET_STACK_FUNCS(root_ctransid, struct btrfs_root_item, ctransid, 64);
749 BTRFS_SETGET_STACK_FUNCS(root_otransid, struct btrfs_root_item, otransid, 64);
750 BTRFS_SETGET_STACK_FUNCS(root_stransid, struct btrfs_root_item, stransid, 64);
751 BTRFS_SETGET_STACK_FUNCS(root_rtransid, struct btrfs_root_item, rtransid, 64);
755 tree_root, 64);
757 tree_root_gen, 64);
762 chunk_root, 64);
764 chunk_root_gen, 64);
769 extent_root, 64);
771 extent_root_gen, 64);
776 fs_root, 64);
778 fs_root_gen, 64);
783 dev_root, 64);
785 dev_root_gen, 64);
790 csum_root, 64);
792 csum_root_gen, 64);
796 total_bytes, 64);
798 bytes_used, 64);
800 num_devices, 64);
803 BTRFS_SETGET_FUNCS(balance_flags, struct btrfs_balance_item, flags, 64);
852 cpu->profiles = le64_to_cpu(disk->profiles); in btrfs_disk_balance_args_to_cpu()
853 cpu->usage = le64_to_cpu(disk->usage); in btrfs_disk_balance_args_to_cpu()
854 cpu->devid = le64_to_cpu(disk->devid); in btrfs_disk_balance_args_to_cpu()
855 cpu->pstart = le64_to_cpu(disk->pstart); in btrfs_disk_balance_args_to_cpu()
856 cpu->pend = le64_to_cpu(disk->pend); in btrfs_disk_balance_args_to_cpu()
857 cpu->vstart = le64_to_cpu(disk->vstart); in btrfs_disk_balance_args_to_cpu()
858 cpu->vend = le64_to_cpu(disk->vend); in btrfs_disk_balance_args_to_cpu()
859 cpu->target = le64_to_cpu(disk->target); in btrfs_disk_balance_args_to_cpu()
860 cpu->flags = le64_to_cpu(disk->flags); in btrfs_disk_balance_args_to_cpu()
861 cpu->limit = le64_to_cpu(disk->limit); in btrfs_disk_balance_args_to_cpu()
862 cpu->stripes_min = le32_to_cpu(disk->stripes_min); in btrfs_disk_balance_args_to_cpu()
863 cpu->stripes_max = le32_to_cpu(disk->stripes_max); in btrfs_disk_balance_args_to_cpu()
872 disk->profiles = cpu_to_le64(cpu->profiles); in btrfs_cpu_balance_args_to_disk()
873 disk->usage = cpu_to_le64(cpu->usage); in btrfs_cpu_balance_args_to_disk()
874 disk->devid = cpu_to_le64(cpu->devid); in btrfs_cpu_balance_args_to_disk()
875 disk->pstart = cpu_to_le64(cpu->pstart); in btrfs_cpu_balance_args_to_disk()
876 disk->pend = cpu_to_le64(cpu->pend); in btrfs_cpu_balance_args_to_disk()
877 disk->vstart = cpu_to_le64(cpu->vstart); in btrfs_cpu_balance_args_to_disk()
878 disk->vend = cpu_to_le64(cpu->vend); in btrfs_cpu_balance_args_to_disk()
879 disk->target = cpu_to_le64(cpu->target); in btrfs_cpu_balance_args_to_disk()
880 disk->flags = cpu_to_le64(cpu->flags); in btrfs_cpu_balance_args_to_disk()
881 disk->limit = cpu_to_le64(cpu->limit); in btrfs_cpu_balance_args_to_disk()
882 disk->stripes_min = cpu_to_le32(cpu->stripes_min); in btrfs_cpu_balance_args_to_disk()
883 disk->stripes_max = cpu_to_le32(cpu->stripes_max); in btrfs_cpu_balance_args_to_disk()
887 BTRFS_SETGET_STACK_FUNCS(super_bytenr, struct btrfs_super_block, bytenr, 64);
888 BTRFS_SETGET_STACK_FUNCS(super_flags, struct btrfs_super_block, flags, 64);
890 generation, 64);
891 BTRFS_SETGET_STACK_FUNCS(super_root, struct btrfs_super_block, root, 64);
895 struct btrfs_super_block, chunk_root_generation, 64);
899 chunk_root, 64);
902 BTRFS_SETGET_STACK_FUNCS(super_log_root, struct btrfs_super_block, log_root, 64);
906 total_bytes, 64);
908 bytes_used, 64);
916 root_dir_objectid, 64);
918 num_devices, 64);
920 compat_flags, 64);
922 compat_ro_flags, 64);
924 incompat_flags, 64);
928 cache_generation, 64);
929 BTRFS_SETGET_STACK_FUNCS(super_magic, struct btrfs_super_block, magic, 64);
931 uuid_tree_generation, 64);
933 nr_global_roots, 64);
939 struct btrfs_file_extent_item, disk_bytenr, 64);
941 struct btrfs_file_extent_item, offset, 64);
943 struct btrfs_file_extent_item, generation, 64);
945 struct btrfs_file_extent_item, num_bytes, 64);
947 struct btrfs_file_extent_item, ram_bytes, 64);
949 struct btrfs_file_extent_item, disk_num_bytes, 64);
956 disk_bytenr, 64);
958 generation, 64);
960 disk_num_bytes, 64);
962 offset, 64);
964 num_bytes, 64);
966 ram_bytes, 64);
976 generation, 64);
978 version, 64);
980 flags, 64);
982 rescan, 64);
984 enable_gen, 64);
988 generation, 64);
989 BTRFS_SETGET_FUNCS(qgroup_info_rfer, struct btrfs_qgroup_info_item, rfer, 64);
991 rfer_cmpr, 64);
992 BTRFS_SETGET_FUNCS(qgroup_info_excl, struct btrfs_qgroup_info_item, excl, 64);
994 excl_cmpr, 64);
997 struct btrfs_qgroup_info_item, generation, 64);
999 rfer, 64);
1001 struct btrfs_qgroup_info_item, rfer_cmpr, 64);
1003 excl, 64);
1005 struct btrfs_qgroup_info_item, excl_cmpr, 64);
1008 BTRFS_SETGET_FUNCS(qgroup_limit_flags, struct btrfs_qgroup_limit_item, flags, 64);
1010 max_rfer, 64);
1012 max_excl, 64);
1014 rsv_rfer, 64);
1016 rsv_excl, 64);
1018 struct btrfs_qgroup_limit_item, flags, 64);
1020 struct btrfs_qgroup_limit_item, max_rfer, 64);
1022 struct btrfs_qgroup_limit_item, max_excl, 64);
1024 struct btrfs_qgroup_limit_item, rsv_rfer, 64);
1026 struct btrfs_qgroup_limit_item, rsv_excl, 64);
1030 struct btrfs_dev_replace_item, src_devid, 64);
1033 64);
1035 replace_state, 64);
1037 time_started, 64);
1039 time_stopped, 64);
1041 num_write_errors, 64);
1044 64);
1046 cursor_left, 64);
1048 cursor_right, 64);
1051 struct btrfs_dev_replace_item, src_devid, 64);
1054 cont_reading_from_srcdev_mode, 64);
1056 struct btrfs_dev_replace_item, replace_state, 64);
1058 struct btrfs_dev_replace_item, time_started, 64);
1060 struct btrfs_dev_replace_item, time_stopped, 64);
1062 struct btrfs_dev_replace_item, num_write_errors, 64);
1065 num_uncorrectable_read_errors, 64);
1067 struct btrfs_dev_replace_item, cursor_left, 64);
1069 struct btrfs_dev_replace_item, cursor_right, 64);
1075 size, 64);
1079 struct btrfs_verity_descriptor_item, size, 64);