From 49a8cb34d2b6e3f7af4a7cbe842fe48ffa0245eb Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Mon, 27 Jun 2011 19:15:03 -0700 Subject: Removed dom_owned, splitting things between task_owned and kernel_owned. Had to re-xfail a few tests brson recently un-xfailed. --- src/rt/rust_task.h | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) (limited to 'src/rt/rust_task.h') diff --git a/src/rt/rust_task.h b/src/rt/rust_task.h index 62a725a98d5..5e61306af2e 100644 --- a/src/rt/rust_task.h +++ b/src/rt/rust_task.h @@ -9,9 +9,34 @@ #include "context.h" +struct stk_seg { + unsigned int valgrind_id; + uintptr_t limit; + uint8_t data[]; +}; + +struct frame_glue_fns { + uintptr_t mark_glue_off; + uintptr_t drop_glue_off; + uintptr_t reloc_glue_off; +}; + +struct gc_alloc { + gc_alloc *prev; + gc_alloc *next; + uintptr_t ctrl_word; + uint8_t data[]; + bool mark() { + if (ctrl_word & 1) + return false; + ctrl_word |= 1; + return true; + } +}; + struct rust_task : public maybe_proxy, - public dom_owned + public kernel_owned { // Fields known to the compiler. stk_seg *stk; @@ -46,8 +71,6 @@ rust_task : public maybe_proxy, // List of tasks waiting for this task to finish. array_list *> tasks_waiting_to_join; - rust_alarm alarm; - rust_handle *handle; context ctx; @@ -56,6 +79,9 @@ rust_task : public maybe_proxy, // or is about to run this task. volatile bool active; + memory_region local_region; + memory_region synchronized_region; + // Only a pointer to 'name' is kept, so it must live as long as this task. rust_task(rust_dom *dom, rust_task_list *state, @@ -118,6 +144,13 @@ rust_task : public maybe_proxy, rust_crate_cache * get_crate_cache(); bool can_schedule(); + + void *malloc(size_t size, memory_region::memory_region_type type); + void *calloc(size_t size); + void *calloc(size_t size, memory_region::memory_region_type type); + void *realloc(void *mem, size_t size, + memory_region::memory_region_type type); + void free(void *mem, memory_region::memory_region_type type); }; // -- cgit 1.4.1-3-g733a5