3 * (C) Copyright 2018, Linaro Limited
5 * SPDX-License-Identifier: GPL-2.0+
11 #include <../lib/libavb/libavb.h>
14 #define AVB_MAX_ARGS 1024
15 #define VERITY_TABLE_OPT_RESTART "restart_on_corruption"
16 #define VERITY_TABLE_OPT_LOGGING "ignore_corruption"
17 #define ALLOWED_BUF_ALIGN 8
29 enum avb_boot_state boot_state;
30 #ifdef CONFIG_OPTEE_TA_AVB
39 struct blk_desc *mmc_blk;
40 disk_partition_t info;
48 AvbOps *avb_ops_alloc(int boot_device);
49 void avb_ops_free(AvbOps *ops);
51 char *avb_set_state(AvbOps *ops, enum avb_boot_state boot_state);
52 char *avb_set_enforce_verity(const char *cmdline);
53 char *avb_set_ignore_corruption(const char *cmdline);
55 char *append_cmd_line(char *cmdline_orig, char *cmdline_new);
58 * ============================================================================
59 * I/O helper inline functions
60 * ============================================================================
62 static inline uint64_t calc_offset(struct mmc_part *part, int64_t offset)
64 u64 part_size = part->info.size * part->info.blksz;
67 return part_size + offset;
72 static inline size_t get_sector_buf_size(void)
74 return (size_t)CONFIG_FASTBOOT_BUF_SIZE;
77 static inline void *get_sector_buf(void)
79 return (void *)CONFIG_FASTBOOT_BUF_ADDR;
82 static inline bool is_buf_unaligned(void *buffer)
84 return (bool)((uintptr_t)buffer % ALLOWED_BUF_ALIGN);
87 static inline int get_boot_device(AvbOps *ops)
89 struct AvbOpsData *data;
92 data = ops->user_data;
100 #endif /* _AVB_VERIFY_H */