summaryrefslogtreecommitdiff
path: root/infra/exdata/exdata_internal.h
blob: a4b7a4f42a246198973a3a631bc8f1a77e99363c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#pragma once

#include "uthash/utarray.h"

#include "stellar/exdata.h"

struct exdata_schema
{
	UT_array *exdata_meta_array;
};

struct exdata_meta
{
	char *name;
	exdata_free *free_func;
	
	void *free_arg;
	int idx;
}__attribute__((aligned(sizeof(void*))));


enum exdata_state
{ INIT, ACTIVE, EXIT };

struct exdata
{
	void *exdata;
	enum exdata_state state;
};

struct exdata_runtime
{
	struct exdata_schema *schema;
	struct exdata *exdata_array;
};