int r;
assert(m);
+ assert(!m->kernel_seqnum);
/* We store the seqnum we last read in an mmapped file. That way we can just use it like a variable,
* but it is persistent and automatically flushed at reboot. */
return 0;
}
+void manager_close_kernel_seqnum(Manager *m) {
+ assert(m);
+
+ manager_unmap_seqnum_file(m->kernel_seqnum, sizeof(*m->kernel_seqnum));
+ m->kernel_seqnum = NULL;
+}
+
int manager_reload_dev_kmsg(Manager *m) {
int r;
void manager_forward_kmsg(Manager *m, int priority, const char *identifier, const char *message, const struct ucred *ucred);
int manager_open_kernel_seqnum(Manager *m);
+void manager_close_kernel_seqnum(Manager *m);
void dev_kmsg_record(Manager *m, char *p, size_t l);
return 0;
}
-static void manager_unmap_seqnum_file(void *p, size_t size) {
+void manager_unmap_seqnum_file(void *p, size_t size) {
assert(size > 0);
if (!p)
ordered_hashmap_free(m->ratelimit_groups_by_id);
manager_unmap_seqnum_file(m->seqnum, sizeof(*m->seqnum));
- manager_unmap_seqnum_file(m->kernel_seqnum, sizeof(*m->kernel_seqnum));
+ manager_close_kernel_seqnum(m);
free(m->buffer);
free(m->cgroup_root);
int manager_reload_journals(Manager *m);
int manager_map_seqnum_file(Manager *m, const char *fname, size_t size, void **ret);
+void manager_unmap_seqnum_file(void *p, size_t size);