You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by vi...@apache.org on 2025/03/20 00:51:32 UTC
(mynewt-core) 05/05: Minor fixes, build and CLI
This is an automated email from the ASF dual-hosted git repository.
vipulrahane pushed a commit to branch vipul/logging_num_entries_callbacks
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit 690517fa026634286ee7e31aa80684a033ae7880
Author: Vipul Rahane <vi...@juul.com>
AuthorDate: Tue Feb 11 17:19:20 2025 -0800
Minor fixes, build and CLI
---
sys/log/common/include/log_common/log_common.h | 34 ++--------
sys/log/full/include/log/log.h | 89 +++++++++++++-------------
sys/log/full/include/log/log_fcb.h | 2 +-
sys/log/full/src/log.c | 2 +-
sys/log/full/src/log_cbmem.c | 17 ++---
sys/log/full/src/log_fcb.c | 5 +-
sys/log/full/src/log_shell.c | 5 +-
7 files changed, 65 insertions(+), 89 deletions(-)
diff --git a/sys/log/common/include/log_common/log_common.h b/sys/log/common/include/log_common/log_common.h
index 45e259f8c..92b139bcd 100644
--- a/sys/log/common/include/log_common/log_common.h
+++ b/sys/log/common/include/log_common/log_common.h
@@ -138,36 +138,14 @@ typedef void log_append_cb(struct log *log, uint32_t idx);
*/
typedef void log_notify_rotate_cb(const struct log *log);
-/** @typedef log_cbmem_trailer_append_cb
- * @brief Callback that is executed each time the corresponding log entry is
- * appended to
- *
- * @param log The log that was just appended to
- * @param buf Pointer to the buffer that contains the log entry
- * @param buflen Length of the trailer
- * @return 0 on success, non-zero on failure
- */
-typedef int log_cbmem_trailer_append_cb(struct log *log, uint8_t *buf,
- uint16_t buflen);
-
-/** @typedef log_cbmem_trailer_mbuf_append_cb
- * @brief Callback that is executed each time the corresponding log entry is
- * appended to
- *
- * @param log The log that was just appended to
- * @param om Pointer to the mbuf
- *
- * @return 0 on success, non-zero on failure
- */
-typedef int log_cbmem_trailer_mbuf_append_cb(struct log *log, struct os_mbuf *om);
-
/** @typedef log_trailer_append_cb
* @brief Callback that is executed each time the corresponding log entry is
* appended to
*
* @param log The log that was just appended to
* @param buf Buffer to append trailer to
- * @param buflen Length of the trailer to be filled up
+ * @param buflen Pointer to the length of the trailer to be filled up
+ * optionally
* @param loc Argument pointing to the location of
* the entry
* @param f_offset Pointer to the offset(optional) at which append should
@@ -176,7 +154,7 @@ typedef int log_cbmem_trailer_mbuf_append_cb(struct log *log, struct os_mbuf *om
* @return 0 on success, non-zero on failure
*/
typedef int log_trailer_append_cb(struct log *log, uint8_t *buf,
- uint16_t buflen, void *loc,
+ uint16_t *buflen, void *loc,
uint16_t *f_offset);
/** @typedef log_mbuf_trailer_append_cb
@@ -199,14 +177,14 @@ typedef int log_trailer_mbuf_append_cb(struct log *log, struct os_mbuf *om,
* @brief Callback that is executed each time a trailer is processed
*
* @param log The log that was just appended to
- * @param hdr Pointer to the log netry header
+ * @param arg Void pointer for a custom arg
* @param dptr Pointer to the data buffer
* @param len Length of the trailer
*
* @return 0 on success, non-zero on failure
*/
-typedef int log_process_trailer_cb(struct log *log, struct log_entry_hdr *hdr,
- const void *dptr, uint16_t len);
+typedef int log_process_trailer_cb(struct log *log, void *arg, const void *dptr,
+ uint16_t len);
/** @typedef log_trailer_len_cb
* @brief Callback used to read length of trailer in a log entry
diff --git a/sys/log/full/include/log/log.h b/sys/log/full/include/log/log.h
index 2be91efa6..745610b1e 100644
--- a/sys/log/full/include/log/log.h
+++ b/sys/log/full/include/log/log.h
@@ -247,8 +247,6 @@ struct log {
log_trailer_append_cb *l_trailer_append_cb;
log_process_trailer_cb *l_process_trailer_cb;
log_trailer_mbuf_append_cb *l_trailer_mbuf_append_cb;
- log_cbmem_trailer_append_cb *l_cbmem_trailer_append_cb;
- log_cbmem_trailer_mbuf_append_cb *l_cbmem_trailer_mbuf_append_cb;
void *l_trailer_arg;
#if MYNEWT_VAL(LOG_STATS)
STATS_SECT_DECL(logs) l_stats;
@@ -724,9 +722,9 @@ uint8_t log_get_level(const struct log *log);
void log_set_max_entry_len(struct log *log, uint16_t max_entry_len);
/**
- * Return last entry index in log.
+ * @brief Return last entry index in log.
*
- * @param log Log to check last entry index from.
+ * @param log Log to check last entry index from.
*
* @return last entry index
*/
@@ -734,13 +732,13 @@ uint32_t log_get_last_index(struct log *log);
#if MYNEWT_VAL(LOG_STORAGE_INFO)
/**
- * Return information about log storage
+ * @brief Return information about log storage
*
* This return information about size and usage of storage on top of which log
* instance is created.
*
- * @param log The log to query.
- * @param info The destination to write information to.
+ * @param log The log to query.
+ * @param info The destination to write information to.
*
* @return 0 on success, error code otherwise
*
@@ -749,17 +747,17 @@ int log_storage_info(struct log *log, struct log_storage_info *info);
#endif
/**
- * Assign a callback function to be notified when the log is about to be rotated.
+ * @brief Assign a callback function to be notified when the log is about to be rotated.
*
- * @param log The log
- * @param cb The callback function to be executed.
+ * @param log The log
+ * @param cb The callback function to be executed.
*/
void
log_set_rotate_notify_cb(struct log *log, log_notify_rotate_cb *cb);
#if MYNEWT_VAL(LOG_STORAGE_WATERMARK)
/**
- * Set watermark on log
+ * @brief Set watermark on log
*
* This sets watermark on log item with given index. This information is used
* to calculate size of entries which were logged after watermark item, i.e.
@@ -774,9 +772,9 @@ int log_set_watermark(struct log *log, uint32_t index);
#endif
/**
- * Fill log current image hash
+ * @brief Fill log current image hash
*
- * @param hdr Ptr to the header
+ * @param hdr Ptr to the header
*
* @return 0 on success, non-zero on failure
*/
@@ -784,10 +782,10 @@ int
log_fill_current_img_hash(struct log_entry_hdr *hdr);
/**
- * Get the length of data in medium - storage (fcb/fcb2), memory or stream
+ * @brief Get the length of data in medium - storage (fcb/fcb2), memory or stream
*
- * @param log The log to get number of entries for
- * @param len Length in medium with padding if any
+ * @param log The log to get number of entries for
+ * @param len Length in medium with padding if any
*/
int
log_len_in_medium(struct log *log, uint16_t len);
@@ -795,50 +793,51 @@ log_len_in_medium(struct log *log, uint16_t len);
/**
* @brief Reads the trailer length
*
- * @param hdr Ptr to the header
+ * @param hdr Ptr to the header
*
* @return Length of the trailer
*/
uint16_t log_trailer_len(struct log *log, const struct log_entry_hdr *hdr);
/**
- * Append trailer to the log entry
+ * @brief Append trailer to the log entry
*
- * @param log Pointer to the log
- * @param buf Pointer to the buffer containing trailer
- * @param buflen Length of the trailer
- * @param loc Pointer to the log entry
- * @param f_offset Pointer to the offset(optional) at which append should
- * happen, gets updated once append is successful
+ * @param log Pointer to the log
+ * @param buf Pointer to the buffer containing trailer
+ * @param buflen Pointer to the length of the trailer
+ * @param loc Pointer to the log entry
+ * @param f_offset Pointer to the offset(optional) at which append should
+ * happen, gets updated once append is successful
* @return 0 on success, non-zero on failure
*/
int
-log_trailer_append(struct log *log, uint8_t *buf, uint16_t buflen,
+log_trailer_append(struct log *log, uint8_t *buf, uint16_t *buflen,
void *loc, uint16_t *f_offset);
/**
- * Append trailer in an mbuf to the log entry
+ * @brief Append trailer in an mbuf to the log entry
*
- * @param log Pointer to the log
- * @param om Pointer to the os_mbuf
- * @param loc Pointer to the log entry
- * @param f_offset The offset(optional) at which append should
- * happen
+ * @param log Pointer to the log
+ * @param om Pointer to the os_mbuf
+ * @param loc Pointer to the log entry
+ * @param f_offset The offset(optional) at which append should
+ * happen
+ * @return 0 on success; nonzero on failure.
*/
int
log_mbuf_trailer_append(struct log *log, struct os_mbuf *om, void *loc,
uint16_t f_offset);
/**
- * Reads the final log entry's header and processes trailer if the flag
+ * @brief Reads the final log entry's header and processes trailer if the flag
* indicates so from the specified log.
*
- * @param log The log to read from.
- * @param out_hdr On success, the last entry header gets written
- * here.
- * @param trailer_exists Pointer to a boolean
+ * @param log The log to read from.
+ * @param out_hdr On success, the last entry header gets written
+ * here.
+ * @param trailer_exists Pointer to a boolean
*
- * @return 0 on success; nonzero on failure.
+ * @return 0 on success; nonzero on failure.
*/
int
log_read_last_hdr_trailer(struct log *log, struct log_entry_hdr *out_hdr,
@@ -846,12 +845,12 @@ log_read_last_hdr_trailer(struct log *log, struct log_entry_hdr *out_hdr,
#if MYNEWT_VAL(LOG_FLAGS_TRAILER_SUPPORT)
/**
- * Register trailer callbacks
+ * @brief Register trailer callbacks
*
- * @param log Pointer to the log
- * @param ltac Pointer to the log trailer append callback
- * @param ltlc Pointer to the log trailer length callback
- * @param lptc Pointer to the log process trailer callback
+ * @param log Pointer to the log
+ * @param ltac Pointer to the log trailer append callback
+ * @param ltlc Pointer to the log trailer length callback
+ * @param lptc Pointer to the log process trailer callback
*/
static inline void
log_register_trailer_cbs(struct log *log, log_trailer_append_cb *ltac,
@@ -864,10 +863,10 @@ log_register_trailer_cbs(struct log *log, log_trailer_append_cb *ltac,
}
/**
- * Register trailer callbacks
+ * @brief Register trailer callbacks
*
- * @param log Pointer to the log
- * @param ltmac Pointer to the log trailer mbuf append callback
+ * @param log Pointer to the log
+ * @param ltmac Pointer to the log trailer mbuf append callback
*/
static inline void
log_register_mbuf_trailer_cbs(struct log *log,
diff --git a/sys/log/full/include/log/log_fcb.h b/sys/log/full/include/log/log_fcb.h
index 7eca59b8c..468ad5942 100644
--- a/sys/log/full/include/log/log_fcb.h
+++ b/sys/log/full/include/log/log_fcb.h
@@ -183,7 +183,7 @@ const struct log_fcb_bmark *
log_fcb_closest_bmark(const struct fcb_log *fcb_log, uint32_t index, int *min_diff);
/**
- * Inserts a bookmark into the provided log.
+ * @brief Inserts a bookmark into the provided log.
*
* @param fcb_log The log to insert a bookmark into.
* @param entry The entry the bookmark should point to.
diff --git a/sys/log/full/src/log.c b/sys/log/full/src/log.c
index 957560fb6..05b8d238d 100644
--- a/sys/log/full/src/log.c
+++ b/sys/log/full/src/log.c
@@ -495,7 +495,7 @@ log_trailer_len(struct log *log, const struct log_entry_hdr *hdr)
}
int
-log_trailer_append(struct log *log, uint8_t *buf, uint16_t buflen,
+log_trailer_append(struct log *log, uint8_t *buf, uint16_t *buflen,
void *loc, uint16_t *f_offset)
{
if (log->l_trailer_append_cb) {
diff --git a/sys/log/full/src/log_cbmem.c b/sys/log/full/src/log_cbmem.c
index 9940384b8..364ec5087 100644
--- a/sys/log/full/src/log_cbmem.c
+++ b/sys/log/full/src/log_cbmem.c
@@ -60,12 +60,12 @@ log_cbmem_append_body(struct log *log, const struct log_entry_hdr *hdr,
}
if (hdr->ue_flags & LOG_FLAGS_TRAILER_SUPPORT) {
- if (log->l_cbmem_trailer_append_cb) {
- rc = log->l_cbmem_trailer_append_cb(log, trailer, trailer_len);
- if (!rc) {
- sg->count += ((trailer_len - sizeof(sg->count))/sizeof(sg->entries[0]));
- sg->entries[3].flat_len = trailer_len;
- }
+ rc = log_trailer_append(log, trailer, &trailer_len, NULL, NULL);
+ if (rc && rc != SYS_ENOTSUP) {
+ return rc;
+ } else if (!rc) {
+ sg->count += ((trailer_len - sizeof(sg->count))/sizeof(sg->entries[0]));
+ sg->entries[3].flat_len = trailer_len;
}
}
@@ -115,8 +115,9 @@ log_cbmem_append_mbuf_body(struct log *log, const struct log_entry_hdr *hdr,
}
if (hdr->ue_flags & LOG_FLAGS_TRAILER_SUPPORT) {
- if (log->l_cbmem_trailer_mbuf_append_cb) {
- log->l_cbmem_trailer_mbuf_append_cb(log, om);
+ rc = log_mbuf_trailer_append(log, om, NULL, 0);
+ if (rc) {
+ return rc;
}
}
diff --git a/sys/log/full/src/log_fcb.c b/sys/log/full/src/log_fcb.c
index e436eb023..bcb1be092 100644
--- a/sys/log/full/src/log_fcb.c
+++ b/sys/log/full/src/log_fcb.c
@@ -26,7 +26,6 @@
#include "flash_map/flash_map.h"
#include "fcb/fcb.h"
#include "log/log.h"
-#include <console/console.h>
static int log_fcb_rtr_erase(struct log *log);
@@ -332,7 +331,7 @@ log_fcb_write_mbuf(struct fcb_entry *loc, struct os_mbuf *om)
return 0;
}
-int
+static int
log_fcb_hdr_trailer_bytes(uint16_t align, uint16_t len)
{
uint16_t mod;
@@ -461,7 +460,7 @@ log_fcb_append_body(struct log *log, const struct log_entry_hdr *hdr,
/* The first trailer gets appended after the padding + trailer_alignment
* Trailers start from updated loc.fe_data_off.
*/
- rc = log_trailer_append(log, buf, trailer_len, &loc, NULL);
+ rc = log_trailer_append(log, buf, &trailer_len, &loc, NULL);
if (rc && rc != SYS_ENOTSUP) {
return rc;
}
diff --git a/sys/log/full/src/log_shell.c b/sys/log/full/src/log_shell.c
index 314ec95b5..c33be9eae 100644
--- a/sys/log/full/src/log_shell.c
+++ b/sys/log/full/src/log_shell.c
@@ -90,8 +90,6 @@ shell_log_dump_entry(struct log *log, struct log_offset *log_offset,
bool read_hash = ueh->ue_flags & LOG_FLAGS_IMG_HASH;
bool add_lf = true;
- dlen = min(len, 128);
-
if (arg) {
arg->count++;
/* Continue walk if number of entries to skip not reached yet */
@@ -100,6 +98,8 @@ shell_log_dump_entry(struct log *log, struct log_offset *log_offset,
}
}
+ dlen = min(len, 128);
+
if (read_data) {
rc = log_read_body(log, dptr, data, 0, dlen);
if (rc < 0) {
@@ -120,7 +120,6 @@ shell_log_dump_entry(struct log *log, struct log_offset *log_offset,
console_printf(" [%llu] ", ueh->ue_ts);
}
- console_printf(" [%llu] ", ueh->ue_ts);
#if MYNEWT_VAL(LOG_SHELL_SHOW_INDEX)
console_printf(" [ix=%lu] ", ueh->ue_index);
#endif