#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
#include <stdio.h>
#include "lbm_types.h"
Go to the source code of this file.
|
int | lbm_stack_allocate (lbm_stack_t *s, lbm_uint stack_size) |
|
int | lbm_stack_create (lbm_stack_t *s, lbm_uint *data, lbm_uint size) |
|
lbm_uint | lbm_get_max_stack (lbm_stack_t *s) |
|
void | lbm_stack_free (lbm_stack_t *s) |
|
void | lbm_stack_clear (lbm_stack_t *s) |
|
int | lbm_stack_drop (lbm_stack_t *s, lbm_uint n) |
|
int | lbm_push (lbm_stack_t *s, lbm_uint val) |
|
int | lbm_pop (lbm_stack_t *s, lbm_uint *val) |
|
static int | lbm_stack_is_empty (lbm_stack_t *s) |
|
int | lbm_pop_2 (lbm_stack_t *s, lbm_uint *r0, lbm_uint *r1) |
|
int | lbm_pop_3 (lbm_stack_t *s, lbm_uint *r0, lbm_uint *r1, lbm_uint *r2) |
|
◆ lbm_get_max_stack()
Check maximum SP
- Parameters
-
- Returns
- maximum SP written to in stack.
◆ lbm_pop()
Pop a value from a stack.
- Parameters
-
s | Stack to pop a value from. |
val | Pointer to an lbm_value to store the pop:ed value int. |
- Returns
- 1 on success and 0 on failure (stack is empty).
◆ lbm_pop_2()
Pop 2 values from a stack.
- Parameters
-
s | Stack to pop values from. |
r0 | Pointer to lbm_value where the first pop:ed value will be stored. |
r1 | Pointer to lbm_value where the seconds pop:ed value will be stored. |
- Returns
- 1 on success and 0 on failure (stack is empty).
◆ lbm_pop_3()
Pop 3 values from a stack.
- Parameters
-
s | Stack to pop values from. |
r0 | |
r1 | |
r2 | |
- Returns
- 1 on success and 0 on failure (stack is empty).
◆ lbm_push()
Push an element onto a stack.
- Parameters
-
s | Stack to push a value onto. |
val | Value to push to the stack. |
- Returns
- 1 on success and 0 on failure (stack is full).
◆ lbm_stack_allocate()
Allocate a stack on the symbols and arrays memory. lbm_memory_init must have been run before this function or it will fail.
- Parameters
-
s | Pointer to an lbm_stack_t to initialize. |
stack_size | Size in 32 bit words of stack to allocate. |
- Returns
- 1 on success and 0 on failure.
◆ lbm_stack_clear()
Sets the stack SP to 0.
- Parameters
-
◆ lbm_stack_create()
Create a stack in a statically allocated array.
- Parameters
-
s | Pointer to an lbm_stack_t to initialize. |
data | Pointer to array of 32 bit words to use as the stack storage. |
size | Size in number of 32 bit words. |
- Returns
- 1
◆ lbm_stack_drop()
Drop n elements (from the top) of a stack.
- Parameters
-
s | Stack to drop elements from. |
n | Number of elements to drop. |
- Returns
- 1 on Success and 0 on failure.
◆ lbm_stack_free()
Free a stack allocated on the lispbm_memory.
- Parameters
-
◆ lbm_stack_is_empty()
Check if a stack is empty.
- Parameters
-
- Returns
- 1 if stack is empty otherwise 0.