summaryrefslogtreecommitdiffstats
path: root/sys/link.h
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-09-11 11:16:36 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-09-11 11:16:36 -0400
commitbb08472a04127c994d3ea5a2cbc195f7116a03b8 (patch)
treec55910449fae5cc2a722c4b6619f4c8dde8d5b56 /sys/link.h
parent880dc3ee72809e74a5bde2275fc8f419a762b255 (diff)
downloadjove-kernel-bb08472a04127c994d3ea5a2cbc195f7116a03b8.tar.gz
jove-kernel-bb08472a04127c994d3ea5a2cbc195f7116a03b8.tar.bz2
jove-kernel-bb08472a04127c994d3ea5a2cbc195f7116a03b8.zip
preliminary object linking support. needs testing
Diffstat (limited to 'sys/link.h')
-rw-r--r--sys/link.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/sys/link.h b/sys/link.h
new file mode 100644
index 0000000..37fa1e8
--- /dev/null
+++ b/sys/link.h
@@ -0,0 +1,21 @@
+#ifndef _JOVE_SYS_LINK_HPP
+#define _JOVE_SYS_LINK_HPP 1
+
+#include "hal/obj.h"
+
+struct obj_link
+{
+ size_t refcount;
+ jove_obj_t obj;
+};
+
+void *obj_deref_linked(jove_owned_obj_t *obj);
+uint8_t obj_gettype_linked(jove_owned_obj_t *obj);
+uint64_t obj_getvalue_linked(jove_owned_obj_t *obj);
+
+jove_owned_obj_t *link_deref(jove_owned_obj_t *link);
+jove_obj_t link_unlink(jove_owned_obj_t *link);
+
+jove_owned_obj_t *link_new(jove_obj_t *tgt, jove_owned_obj_t *dst);
+
+#endif