[kernel] Switch logger from bip to ring buffer

A bip-buffer is good for producer/consumer systems, but ideally logs
will stay in the buffer until they're ousted because they need to be
overwritten. Now they're a regular ring buffer and every entry has an
incremental id. Consumers pass in the last id they've seen, and will get
the next log in the sequence.
This commit is contained in:
Justin C. Miller
2023-02-07 20:19:02 -08:00
parent 0a097ec7d3
commit 393db1e792
5 changed files with 77 additions and 51 deletions

View File

@@ -45,10 +45,10 @@ test_finish(uint32_t exit_code)
}
j6_status_t
system_get_log(system *self, void *buffer, size_t *buffer_len)
system_get_log(system *self, uint64_t seen, void *buffer, size_t *buffer_len)
{
size_t orig_size = *buffer_len;
*buffer_len = g_logger.get_entry(buffer, *buffer_len);
*buffer_len = g_logger.get_entry(seen, buffer, *buffer_len);
return (*buffer_len > orig_size) ? j6_err_insufficient : j6_status_ok;
}