Lines Matching refs:key

184   struct grub_reiserfs_key key;
240 /* Return the type of given v2 key. */
242 grub_reiserfs_get_key_v2_type (const struct grub_reiserfs_key *key)
244 switch (grub_le_to_cpu64 (key->u.v2.offset_type) >> 60)
260 /* Return the type of given v1 key. */
262 grub_reiserfs_get_key_v1_type (const struct grub_reiserfs_key *key)
264 switch (grub_le_to_cpu32 (key->u.v1.type))
282 /* Return 1 if the given key is version 1 key, 2 otherwise. */
284 grub_reiserfs_get_key_version (const struct grub_reiserfs_key *key)
286 return grub_reiserfs_get_key_v1_type (key) == GRUB_REISERFS_UNKNOWN ? 2 : 1;
307 grub_reiserfs_get_key_offset (const struct grub_reiserfs_key *key);
310 grub_reiserfs_get_key_type (const struct grub_reiserfs_key *key);
313 grub_reiserfs_print_key (const struct grub_reiserfs_key *key)
326 grub_printf ("%02x ", ((unsigned int) ((unsigned char *) key)[a]) & 0xFF);
328 grub_le_to_cpu32 (key->directory_id),
329 grub_le_to_cpu32 (key->object_id),
330 reiserfs_type_strings [grub_reiserfs_get_key_type (key)]);
331 if (grub_reiserfs_get_key_version (key) == 1)
332 grub_printf("%08x", (unsigned int) grub_reiserfs_get_key_offset (key));
335 (unsigned) (grub_reiserfs_get_key_offset (key) >> 32),
336 (unsigned) (grub_reiserfs_get_key_offset (key) & 0xFFFFFFFF));
341 /* Return the offset of given key. */
343 grub_reiserfs_get_key_offset (const struct grub_reiserfs_key *key)
345 if (grub_reiserfs_get_key_version (key) == 1)
346 return grub_le_to_cpu32 (key->u.v1.offset);
348 return grub_le_to_cpu64 (key->u.v2.offset_type) & (~0ULL >> 4);
351 /* Set the offset of given key. */
353 grub_reiserfs_set_key_offset (struct grub_reiserfs_key *key,
356 if (grub_reiserfs_get_key_version (key) == 1)
357 key->u.v1.offset = grub_cpu_to_le32 (value);
359 key->u.v2.offset_type \
360 = ((key->u.v2.offset_type & grub_cpu_to_le64 (15ULL << 60))
364 /* Return the type of given key. */
366 grub_reiserfs_get_key_type (const struct grub_reiserfs_key *key)
368 if (grub_reiserfs_get_key_version (key) == 1)
369 return grub_reiserfs_get_key_v1_type (key);
371 return grub_reiserfs_get_key_v2_type (key);
374 /* Set the type of given key, with given version number. */
376 grub_reiserfs_set_key_type (struct grub_reiserfs_key *key,
404 key->u.v1.type = grub_cpu_to_le32 (type);
406 key->u.v2.offset_type
407 = ((key->u.v2.offset_type & grub_cpu_to_le64 (~0ULL >> 4))
410 assert (grub_reiserfs_get_key_type (key) == grub_type);
413 /* -1 if key 1 if lower than key 2.
414 0 if key 1 is equal to key 2.
415 1 if key 1 is higher than key 2. */
469 const struct grub_reiserfs_key *key,
486 if (! key)
488 grub_error (GRUB_ERR_TEST_FAILURE, "key is NULL");
502 grub_reiserfs_print_key (key);
533 the searched key. */
542 && grub_reiserfs_compare_keys (key, &(keys[i])) >= 0;
551 if ((i < item_count) && (key->directory_id == keys[i].directory_id)
552 && (key->object_id == keys[i].object_id))
556 || grub_reiserfs_compare_keys (key, &(keys[i])) == 0)
577 /* Leaf node. Check that the key is actually present. */
582 && (grub_reiserfs_compare_keys (key, &(item_headers[i].key))
587 if (key->directory_id == item_headers[i].key.directory_id && \
588 key->object_id == item_headers[i].key.object_id)
593 grub_reiserfs_print_key (&(item_headers[i].key));
597 block_key = &(item_headers[i].key);
604 if (i == item_count || grub_reiserfs_compare_keys (key, block_key))
647 struct grub_reiserfs_key key;
649 grub_memcpy (&key, &(node->header.key), sizeof (key));
650 grub_reiserfs_set_key_offset (&key, 1);
651 grub_reiserfs_set_key_type (&key, GRUB_REISERFS_DIRECT,
652 grub_reiserfs_get_key_version (&key));
654 if (grub_reiserfs_get_item (node->data, &key, &found) != GRUB_ERR_NONE)
811 First set the offset to 0 using current key version.
812 Then change the key type, which affects key version
957 grub_reiserfs_set_key_offset (&(item_headers[block_position].key),
959 if (grub_reiserfs_get_item (data, &(item_headers[block_position].key),
988 struct grub_reiserfs_key key;
997 key.directory_id = grub_cpu_to_le32 (1);
998 key.object_id = grub_cpu_to_le32 (2);
999 key.u.v2.offset_type = 0;
1000 grub_reiserfs_set_key_type (&key, GRUB_REISERFS_DIRECTORY, 2);
1001 grub_reiserfs_set_key_offset (&key, 1);
1002 if (grub_reiserfs_get_item (data, &key, &root) != GRUB_ERR_NONE)
1014 key.directory_id = found->header.key.directory_id;
1015 key.object_id = found->header.key.object_id;
1016 grub_reiserfs_set_key_type (&key, GRUB_REISERFS_STAT, 2);
1017 grub_reiserfs_set_key_offset (&key, 0);
1018 if (grub_reiserfs_get_item (data, &key, &info) != GRUB_ERR_NONE)
1073 struct grub_reiserfs_key key;
1085 key.directory_id = node->header.key.directory_id;
1086 key.object_id = node->header.key.object_id;
1087 key.u.v2.offset_type = 0;
1088 grub_reiserfs_set_key_type (&key, GRUB_REISERFS_ANY, 2);
1100 grub_reiserfs_set_key_offset (&key, current_key_offset);
1102 if (grub_reiserfs_get_item (data, &key, &found) != GRUB_ERR_NONE)