x-engine-c v0.2.13
The C engine for x-lang
Loading...
Searching...
No Matches
x-base.h
Go to the documentation of this file.
1#ifndef X_BASE_H
2#define X_BASE_H
3
62#include "x-obj.h"
63
69/* TODO: Add name and version fields. */
70
72#define x_base(X) x_firstobj(X)
73
75#define x_base_isset(B) ((B) != NULL && x_base((B)) != NULL)
76
86#define x_base_field_io_group(X) x_firstobj(x_restobj(x_base(X)))
87
89#define x_base_field_files(X) x_restobj(x_firstobj(x_base_field_io_group(X)))
90
92#define x_base_field_filein(X) x_firstobj(x_base_field_files(X))
93
95#define x_base_field_fileout(X) x_firstobj(x_restobj(x_base_field_files(X)))
96
98#define x_base_field_fileerr(X) x_firstobj(x_restobj(x_restobj(x_base_field_files(X))))
99
105#define x_base_field_write_buf(X) x_firstobj(x_restobj(x_restobj(x_restobj(x_base_field_files(X)))))
106
108#define x_base_field_buffer(X) x_firstobj(x_restobj(x_restobj(x_restobj(x_restobj(x_base_field_files(X))))))
109
120#define x_base_field_meta_group(X) x_restobj(x_restobj(x_base(X)))
121
123#define x_base_field_profile(X) x_firstobj(x_firstobj(x_base_field_meta_group(X)))
124
126#define x_base_field_profile_allocs(X) x_firstobj(x_base_field_profile(X))
127
136#define x_base_field_hooks(X) x_restobj(x_firstobj(x_base_field_meta_group(X)))
137
144#define x_base_field_hook_type_name(X) x_firstobj(x_base_field_hooks(X))
145
151#define x_base_field_hook_units(X) x_firstobj(x_restobj(x_base_field_hooks(X)))
152
158#define x_base_field_hook_length(X) x_firstobj(x_restobj(x_restobj(x_base_field_hooks(X))))
159
168#define x_base_field_hook_error(X) x_firstobj(x_restobj(x_restobj(x_restobj(x_base_field_hooks(X)))))
169
179#define x_base_field_heap_group(X) x_firstobj(x_restobj(x_base_field_meta_group(X)))
180
186#define x_base_field_obj_meta_extra(X) x_firstobj(x_base_field_heap_group(X))
187
189#define x_base_field_heap_mark(X) x_firstobj(x_restobj(x_base_field_heap_group(X)))
190
192#define x_base_field_heap_free(X) x_firstobj(x_restobj(x_restobj(x_base_field_heap_group(X))))
193
202#define x_base_field_heap_mark_hooks(X) x_firstobj(x_restobj(x_restobj(x_restobj(x_base_field_heap_group(X)))))
203
209#define x_base_field_heap_free_hooks(X) x_firstobj(x_restobj(x_restobj(x_restobj(x_restobj(x_base_field_heap_group(X))))))
210
216#define x_base_field_heap_mark_roots(X) x_firstobj(x_restobj(x_restobj(x_restobj(x_restobj(x_restobj(x_base_field_heap_group(X)))))))
217
227#define x_base_field_heap_root_chain(X) x_firstobj(x_restobj(x_restobj(x_restobj(x_restobj(x_restobj(x_restobj(x_base_field_heap_group(X))))))))
228
241#define x_base_field_alloc_group(X) x_firstobj(x_restobj(x_restobj(x_base_field_meta_group(X))))
242
249#define x_base_field_alloc_count(X) x_firstobj(x_base_field_alloc_group(X))
250
257#define x_base_field_alloc_limit(X) x_firstobj(x_restobj(x_base_field_alloc_group(X)))
258
265#define x_base_field_alloc_error(X) x_firstobj(x_restobj(x_restobj(x_base_field_alloc_group(X))))
266
290
297x_obj_t *x_base_make(x_obj_t *p_base, struct x_base_t base);
298
301
304
307#endif /* X_BASE_H */
static void x_obj_t * p_args
Definition x-prim.h:56
Definition x-base.h:276
x_obj_t * p_heap_mark
Definition x-base.h:287
x_obj_t * p_hook_error
Definition x-base.h:284
x_obj_t * p_hook_length
Definition x-base.h:283
x_int_t filein
Definition x-base.h:277
x_obj_t * p_heap_free
Definition x-base.h:288
x_int_t obj_meta_extra
Definition x-base.h:286
x_obj_t * p_hook_units
Definition x-base.h:282
x_obj_t * p_hook_type_name
Definition x-base.h:281
x_int_t fileerr
Definition x-base.h:279
x_int_t fileout
Definition x-base.h:278
Definition x-obj.h:212
x_obj_t * x_base_make(x_obj_t *p_base, struct x_base_t base)
Definition x-base.c:40
x_obj_t * x_base_write(x_obj_t *p_base, x_obj_t *p_args)
Definition x-base.c:158
x_obj_t * x_base_read(x_obj_t *p_base, x_obj_t *p_args)
Definition x-base.c:127
The x-expr object system – atoms, pairs, flags, and type dispatch.
long x_int_t
Definition x.h:129