10cc16201SJason Zhu /* SPDX-License-Identifier: GPL-2.0+ */ 20cc16201SJason Zhu /* 30cc16201SJason Zhu * (C) Copyright 2019 Rockchip Electronics Co., Ltd 40cc16201SJason Zhu */ 50cc16201SJason Zhu 60cc16201SJason Zhu #ifndef _SPL_AB_H_ 70cc16201SJason Zhu #define _SPL_AB_H_ 80cc16201SJason Zhu 90cc16201SJason Zhu #include <android_avb/libavb_ab.h> 100cc16201SJason Zhu #include <android_avb/avb_ab_flow.h> 110cc16201SJason Zhu 120cc16201SJason Zhu #define AB_METADATA_OFFSET 4 130cc16201SJason Zhu 140cc16201SJason Zhu /* 150cc16201SJason Zhu * spl_get_current_slot 160cc16201SJason Zhu * 170cc16201SJason Zhu * @dev_desc: block description 180cc16201SJason Zhu * @partition: partition name 190cc16201SJason Zhu * @slot: A/B slot 200cc16201SJason Zhu * 210cc16201SJason Zhu * return: 0 success, others fail. 220cc16201SJason Zhu */ 230cc16201SJason Zhu int spl_get_current_slot(struct blk_desc *dev_desc, char *partition, 240cc16201SJason Zhu char *slot); 250cc16201SJason Zhu 260cc16201SJason Zhu /* 271e33e3cbSJason Zhu * spl_ab_append_part_slot 280cc16201SJason Zhu * 290cc16201SJason Zhu * @dev_desc: block description 301e33e3cbSJason Zhu * @part_name: partition name 311e33e3cbSJason Zhu * @new_name: append the slot suffix 321e33e3cbSJason Zhu * 331e33e3cbSJason Zhu * return: 0 success, others fail. 340cc16201SJason Zhu */ 351e33e3cbSJason Zhu int spl_ab_append_part_slot(struct blk_desc *dev_desc, 361e33e3cbSJason Zhu const char *part_name, 371e33e3cbSJason Zhu char *new_name); 380cc16201SJason Zhu 39*093f4d99SJason Zhu /* 40*093f4d99SJason Zhu * spl_ab_decrease_tries 41*093f4d99SJason Zhu * 42*093f4d99SJason Zhu * @dev_desc: block description 43*093f4d99SJason Zhu * 44*093f4d99SJason Zhu * return: 0 success, others fail. 45*093f4d99SJason Zhu */ 46*093f4d99SJason Zhu int spl_ab_decrease_tries(struct blk_desc *dev_desc); 47*093f4d99SJason Zhu 480cc16201SJason Zhu #endif 49