To allow marking an imd tag with properties, add a flags field to the imd_header. Signed-off-by: Steffen Trumtrar <s.trumtrar@xxxxxxxxxxxxxx> --- include/image-metadata.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/image-metadata.h b/include/image-metadata.h index 5904d95acd37..ca73e6cf6ec6 100644 --- a/include/image-metadata.h +++ b/include/image-metadata.h @@ -28,6 +28,8 @@ #define IMD_TYPE_END 0x640c7fff #define IMD_TYPE_INVALID 0xffffffff +#define IMD_FLAG_TAG_VALID (1 << 0) + /* * The IMD header. All data is stored in little endian format in the image. * The next header starts at the next 4 byte boundary after the data. @@ -35,6 +37,7 @@ struct imd_header { uint32_t type; /* One of IMD_TYPE_* above */ uint32_t datalength; /* Length of the data (exluding the header) */ + uint32_t flags; }; /* @@ -51,6 +54,11 @@ static inline int imd_is_string(uint32_t type) return (type & 0x8000) ? 1 : 0; } +static inline int imd_tag_is_valid(uint32_t flags) +{ + return (flags & IMD_FLAG_TAG_VALID) ? 1 : 0; +} + static inline int imd_type_valid(uint32_t type) { return (type & 0xffff0000) == 0x640c0000; @@ -78,6 +86,11 @@ static inline uint32_t imd_read_length(const struct imd_header *imd) return imd_read_le32(&imd->datalength); } +static inline uint32_t imd_read_flags(const struct imd_header *imd) +{ + return imd_read_le32(&imd->flags); +} + const struct imd_header *imd_find_type(const struct imd_header *imd, uint32_t type); -- 2.24.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox