static void write_rootdev (grub_device_t root_dev, char *boot_img, grub_uint64_t first_sector) { #ifdef GRUB_SETUP_BIOS { grub_uint8_t *boot_drive; void *kernel_sector; boot_drive = (grub_uint8_t *) (boot_img + GRUB_BOOT_MACHINE_BOOT_DRIVE); kernel_sector = (boot_img + GRUB_BOOT_MACHINE_KERNEL_SECTOR); /* FIXME: can this be skipped? */ *boot_drive = 0xFF; grub_set_unaligned64 (kernel_sector, grub_cpu_to_le64 (first_sector)); } #endif #ifdef GRUB_SETUP_SPARC64 { void *kernel_byte; kernel_byte = (boot_img + GRUB_BOOT_AOUT_HEADER_SIZE + GRUB_BOOT_MACHINE_KERNEL_BYTE); grub_set_unaligned64 (kernel_byte, grub_cpu_to_be64 (first_sector << GRUB_DISK_SECTOR_BITS)); } #endif }
static int key_cmp (const struct grub_btrfs_key *a, const struct grub_btrfs_key *b) { if (grub_cpu_to_le64 (a->object_id) < grub_cpu_to_le64 (b->object_id)) return -1; if (grub_cpu_to_le64 (a->object_id) > grub_cpu_to_le64 (b->object_id)) return +1; if (a->type < b->type) return -1; if (a->type > b->type) return +1; if (grub_cpu_to_le64 (a->offset) < grub_cpu_to_le64 (b->offset)) return -1; if (grub_cpu_to_le64 (a->offset) > grub_cpu_to_le64 (b->offset)) return +1; return 0; }