/* * Every btree node begins with this structure. Make sure it's a multiple * of 8-bytes in size, otherwise the 64bit keys will be mis-aligned.
*/ struct node_header {
__le32 csum;
__le32 flags;
__le64 blocknr; /* Block this node is supposed to live in. */
/* * Spines keep track of the rolling locks. There are 2 variants, read-only * and one that uses shadowing. These are separate structs to allow the * type checker to spot misuse, for example accidentally calling read_lock * on a shadow spine.
*/ struct ro_spine { struct dm_btree_info *info;
/* * Value type for upper levels of multi-level btrees.
*/ externvoid init_le64_type(struct dm_transaction_manager *tm, struct dm_btree_value_type *vt);
/* * This returns a shadowed btree leaf that you may modify. In practise * this means overwrites only, since an insert could cause a node to * be split. Useful if you need access to the old value to calculate the * new one. * * This only works with single level btrees. The given key must be present in * the tree, otherwise -EINVAL will be returned.
*/ int btree_get_overwrite_leaf(struct dm_btree_info *info, dm_block_t root,
uint64_t key, int *index,
dm_block_t *new_root, struct dm_block **leaf);
#endif/* DM_BTREE_INTERNAL_H */
Messung V0.5
¤ Dauer der Verarbeitung: 0.22 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.