diff options
author | Nikhil <nikhil@MrSlave.(none)> | 2012-03-02 03:15:28 -0500 |
---|---|---|
committer | Pekka Enberg <penberg@kernel.org> | 2012-03-02 14:25:17 +0200 |
commit | c9229efc3902dd7994f0be70883881be35847ac6 (patch) | |
tree | a6368243e859953c8d4a07ef68813c60f63d086d | |
parent | 05625ee26fbfacb146b7fc94631f56bae58affcb (diff) | |
download | jato-c9229efc3902dd7994f0be70883881be35847ac6.tar.gz |
gc: Added a reference table.
Signed-off-by: Nikhil Sarda <nikhilsarda.iitkgp@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
-rw-r--r-- | include/vm/reference-table.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/include/vm/reference-table.h b/include/vm/reference-table.h new file mode 100644 index 00000000..67d5fafe --- /dev/null +++ b/include/vm/reference-table.h @@ -0,0 +1,23 @@ +#ifndef JATO_VM_REFERENCE_TABLE_H +#define JATO_VM_REFERENCE_TABLE_H + +struct gc_reference_map { + /* top of the list */ + vm_object** top; + + /* bottom of the list */ + vm_object** bottom; + + /* no. of entries we can accomodate */ + int left_entrie; + + /* maximum no. of entries */ + int max_entries; +}; + +int gc_init_reftable(struct gc_reference_map* ref_t, int init_count, int max_count); + +void gc_clear_reftable(struct gc_reference_table* ref_t); + +#define gc_reftable_entries(ref_t) ref_t->top - ref_t->bottom; +#define is_gc_reftable_full(ref_t) gc_reftable_entries(ref_t) == (size_t)ref_t->left_entries; |