/* SPDX-License-Identifier: GPL-2.0-only */ #ifndef __CBFSTOOL_CSE_FPT_H__ #define __CBFSTOOL_CSE_FPT_H__ #include #include #include "common.h" #define FPT_MARKER "$FPT" #define FPT_ENTRY_VERSION 0x10 #define READ_MEMBER(_buff, _x) read_member(_buff, &(_x), sizeof(_x)) enum fpt_hdr_version { FPT_HDR_VERSION_20 = 0x20, FPT_HDR_VERSION_21 = 0x21, }; typedef void *fpt_hdr_ptr; struct fpt_hdr_ops { bool (*match_version)(struct buffer *buff); fpt_hdr_ptr (*read)(struct buffer *buff); void (*print)(const fpt_hdr_ptr ptr); size_t (*get_entry_count)(const fpt_hdr_ptr ptr); }; extern const struct fpt_hdr_ops fpt_hdr_20_ops; extern const struct fpt_hdr_ops fpt_hdr_21_ops; void read_member(struct buffer *buff, void *dst, size_t size); #endif /* __CBFSTOOL_CSE_FPT_H__ */