about summary refs log tree commit diff
path: root/boot/visit/visit.c
diff options
context:
space:
mode:
authorMel <mel@rnrd.eu>2026-05-03 19:54:15 +0200
committerMel <mel@rnrd.eu>2026-05-03 19:54:15 +0200
commit74ffd7a95c0894a96ab984e2c4d2cd9c75539af0 (patch)
treeef8db3b3432dc1203b12079247c982892c7d21d1 /boot/visit/visit.c
parent5211970448a05205b67d7604ad5e4e3925e4ddef (diff)
downloadcatskill-74ffd7a95c0894a96ab984e2c4d2cd9c75539af0.tar.zst
catskill-74ffd7a95c0894a96ab984e2c4d2cd9c75539af0.zip
IR visit system and pretty printer
Signed-off-by: Mel <mel@rnrd.eu>
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); }