Lines Matching refs:abc

19 		struct android_bootloader_control *abc)  in android_boot_control_compute_crc()  argument
21 return crc32(0, (void *)abc, offsetof(typeof(*abc), crc32_le)); in android_boot_control_compute_crc()
29 void android_boot_control_default(struct android_bootloader_control *abc) in android_boot_control_default() argument
39 memcpy(abc->slot_suffix, "a\0\0\0", 4); in android_boot_control_default()
40 abc->magic = ANDROID_BOOT_CTRL_MAGIC; in android_boot_control_default()
41 abc->version = ANDROID_BOOT_CTRL_VERSION; in android_boot_control_default()
42 abc->nb_slot = ANDROID_NUM_SLOTS; in android_boot_control_default()
43 memset(abc->reserved0, 0, sizeof(abc->reserved0)); in android_boot_control_default()
44 for (i = 0; i < abc->nb_slot; ++i) { in android_boot_control_default()
45 abc->slot_info[i] = metadata; in android_boot_control_default()
47 memset(abc->reserved1, 0, sizeof(abc->reserved1)); in android_boot_control_default()
48 abc->crc32_le = android_boot_control_compute_crc(abc); in android_boot_control_default()
153 struct android_bootloader_control *abc; in android_ab_select() local
159 abc = android_boot_control_create_from_disk(dev_desc, part_info); in android_ab_select()
160 if (!abc) { in android_ab_select()
169 crc32_le = android_boot_control_compute_crc(abc); in android_ab_select()
170 if (abc->crc32_le != crc32_le) { in android_ab_select()
173 crc32_le, abc->crc32_le); in android_ab_select()
174 android_boot_control_default(abc); in android_ab_select()
178 if (abc->magic != ANDROID_BOOT_CTRL_MAGIC) { in android_ab_select()
179 printf("ANDROID: Unknown A/B metadata: %.8x\n", abc->magic); in android_ab_select()
180 free(abc); in android_ab_select()
184 if (abc->version > ANDROID_BOOT_CTRL_VERSION) { in android_ab_select()
186 abc->version); in android_ab_select()
187 free(abc); in android_ab_select()
203 if (abc->nb_slot > ARRAY_SIZE(abc->slot_info)) { in android_ab_select()
204 abc->nb_slot = ARRAY_SIZE(abc->slot_info); in android_ab_select()
209 for (i = 0; i < abc->nb_slot; ++i) { in android_ab_select()
210 if (abc->slot_info[i].verity_corrupted || in android_ab_select()
211 !abc->slot_info[i].tries_remaining) { in android_ab_select()
215 abc->slot_info[i].tries_remaining, in android_ab_select()
216 abc->slot_info[i].verity_corrupted); in android_ab_select()
222 abc->slot_info[i].priority, in android_ab_select()
223 abc->slot_info[i].tries_remaining, in android_ab_select()
224 abc->slot_info[i].verity_corrupted, in android_ab_select()
225 abc->slot_info[i].successful_boot); in android_ab_select()
228 android_ab_compare_slots(&abc->slot_info[i], in android_ab_select()
229 &abc->slot_info[slot]) < 0) { in android_ab_select()
234 if (slot >= 0 && !abc->slot_info[slot].successful_boot) { in android_ab_select()
237 abc->slot_info[slot].tries_remaining); in android_ab_select()
238 abc->slot_info[slot].tries_remaining--; in android_ab_select()
249 if (memcmp(abc->slot_suffix, slot_suffix, in android_ab_select()
251 memcpy(abc->slot_suffix, slot_suffix, in android_ab_select()
258 abc->crc32_le = android_boot_control_compute_crc(abc); in android_ab_select()
259 android_boot_control_store(abc, dev_desc, part_info); in android_ab_select()
261 free(abc); in android_ab_select()