about summary refs log tree commit diff
path: root/boot/visit/visit.c
diff options
context:
space:
mode:
Diffstat (limited to 'boot/visit/visit.c')
-rw-r--r--boot/visit/visit.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/boot/visit/visit.c b/boot/visit/visit.c
new file mode 100644
index 0000000..8bc6cf7
--- /dev/null
+++ b/boot/visit/visit.c
@@ -0,0 +1,20 @@
+/*
+ * useful shared visit system helpers.
+ *
+ * Copyright (c) 2026, Mel G. <mel@rnrd.eu>
+ *
+ * SPDX-License-Identifier: MPL-2.0
+ */
+
+#pragma once
+
+#include "../catboot.h"
+
+#define VISIT(visit_function, node) visit->table->visit_function(visit, node);
+
+#define VISIT_MAYBE(visit_function, node) \
+    if (node) visit->table->visit_function(visit, node)
+
+#define DATA_FOR_VISIT(type, name)        \
+    type* name = (type*)visit->user_data; \
+    if (!name) { failure("visit user data is NULL for " #name); }