vrahane commented on code in PR #3400: URL: https://github.com/apache/mynewt-core/pull/3400#discussion_r2076153644
########## sys/log/full/include/log/log.h: ########## @@ -131,25 +213,48 @@ struct log_handler { /* Image hash length to be looged */ #define LOG_IMG_HASHLEN 4 -/* Flags used to indicate type of data in reserved payload*/ -#define LOG_FLAGS_IMG_HASH (1 << 0) +/* Flags used to indicate type of data in reserved payload */ +#define LOG_FLAGS_IMG_HASH (1 << 0) +#define LOG_FLAGS_TRAILER_SUPPORT (1 << 1) #if MYNEWT_VAL(LOG_VERSION) == 3 struct log_entry_hdr { int64_t ue_ts; uint32_t ue_index; uint8_t ue_module; uint8_t ue_level; - uint8_t ue_etype:4; - uint8_t ue_flags:4; + uint8_t ue_etype : 4; + uint8_t ue_flags : 4; uint8_t ue_imghash[4]; -}__attribute__((__packed__)); +} __attribute__((__packed__)); #else #error "Unsupported log version" #endif #define LOG_BASE_ENTRY_HDR_SIZE (15) +/* Assume the flash alignment requirement is no stricter than 32. */ +#define LOG_FCB_MAX_ALIGN 32 +#define LOG_FCB2_MAX_ALIGN 32 + + +#if MYNEWT_VAL(LOG_FCB2) +#define LF_MAX_ALIGN LOG_FCB2_MAX_ALIGN +#else +#define LF_MAX_ALIGN LOG_FCB_MAX_ALIGN +#endif + +#define LOG_FCB_EXT_HDR_SIZE LOG_BASE_ENTRY_HDR_SIZE + LOG_IMG_HASHLEN + \ + LF_MAX_ALIGN + +#ifndef LOG_FCB_FLAT_BUF_SIZE +/* Assuming the trailer fits in this, an arbitrary value */ +#define LOG_FCB_FLAT_BUF_SIZE (LOG_FCB_EXT_HDR_SIZE > LF_MAX_ALIGN * 3) ? \ + LOG_FCB_EXT_HDR_SIZE : LF_MAX_ALIGN * 3 +#endif Review Comment: `LOG_FCB_FLAT_BUF_SIZE` is used as a constant to indicate how big a buffer needs to be to read the 15 byte log base header + the image hash length. The above calculation allows us to use the same buffer to read the trailer. So, if extended log header > max trailer length, the length of the buffer can be set to that of the extended log header or it needs to be set to the max trailer length which is `( LF_MAX_ALIGN * 3 )`. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@mynewt.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org