summaryrefslogtreecommitdiff
path: root/libguile/whippet/api/gc-forwarding.h
blob: 25aca30117980966c2138afed1b68c7ef5c3243c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef GC_FORWARDING_H
#define GC_FORWARDING_H

#include <stdint.h>
#include "gc-ref.h"

enum gc_forwarding_state {
  GC_FORWARDING_STATE_FORWARDED,
  GC_FORWARDING_STATE_BUSY,
  GC_FORWARDING_STATE_ACQUIRED,
  GC_FORWARDING_STATE_NOT_FORWARDED
};

struct gc_atomic_forward {
  struct gc_ref ref;
  uintptr_t data;
  enum gc_forwarding_state state;
};

#endif // GC_FORWARDING_H