lama_byterun/runtime/virt_stack.h

34 lines
632 B
C
Raw Normal View History

//
// Created by egor on 24.04.23.
//
#ifndef LAMA_RUNTIME_VIRT_STACK_H
#define LAMA_RUNTIME_VIRT_STACK_H
#define RUNTIME_VSTACK_SIZE 100000
#include <assert.h>
2023-05-31 11:01:11 +02:00
#include <stddef.h>
struct {
2023-05-31 11:01:11 +02:00
size_t buf[RUNTIME_VSTACK_SIZE + 1];
size_t cur;
} typedef virt_stack;
2023-05-31 11:01:11 +02:00
virt_stack *vstack_create ();
2023-05-31 11:01:11 +02:00
void vstack_destruct (virt_stack *st);
2023-05-31 11:01:11 +02:00
void vstack_init (virt_stack *st);
2023-05-31 11:01:11 +02:00
void vstack_push (virt_stack *st, size_t value);
2023-05-31 11:01:11 +02:00
size_t vstack_pop (virt_stack *st);
2023-05-31 11:01:11 +02:00
void *vstack_top (virt_stack *st);
2023-05-31 11:01:11 +02:00
size_t vstack_size (virt_stack *st);
2023-05-31 11:01:11 +02:00
size_t vstack_kth_from_start (virt_stack *st, size_t k);
2023-05-31 11:01:11 +02:00
#endif //LAMA_RUNTIME_VIRT_STACK_H