diff options
Diffstat (limited to 'src/rt/rust_stack.h')
| -rw-r--r-- | src/rt/rust_stack.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/rt/rust_stack.h b/src/rt/rust_stack.h index d665b4fa2c1..34d4dda742d 100644 --- a/src/rt/rust_stack.h +++ b/src/rt/rust_stack.h @@ -1,3 +1,6 @@ +#ifndef RUST_STACK_H +#define RUST_STACK_H + struct stk_seg { stk_seg *prev; stk_seg *next; @@ -10,6 +13,19 @@ struct stk_seg { uint8_t data[]; }; +template <class T> +stk_seg * +create_stack(T allocer, size_t sz) { + size_t total_sz = sizeof(stk_seg) + sz; + return (stk_seg *)allocer->malloc(total_sz, "stack"); +} + +template <class T> +void +destroy_stack(T allocer, stk_seg *stk) { + allocer->free(stk); +} + void config_valgrind_stack(stk_seg *stk); @@ -21,3 +37,5 @@ add_stack_canary(stk_seg *stk); void check_stack_canary(stk_seg *stk); + +#endif /* RUST_STACK_H */ |
