summaryrefslogtreecommitdiffstats
path: root/sys/link.h
blob: 37fa1e82c1a6d8ff220d6f10c5eb234dfa966fd1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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