summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp_builtin.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-11-11 21:16:09 -0800
committerKeith Packard <keithp@keithp.com>2016-11-17 22:18:39 -0800
commit0fd008d75ca451ba68ad8ae773ea8a5ebc1785c5 (patch)
tree98485dc6304efce6c96774613fba5bf352cbd32a /src/lisp/ao_lisp_builtin.c
parentc8d2b9acf4b118f36a114de2af4db42ae04426ed (diff)
altos/lisp: Add save/restore infrastructure. Needs OS support to work.
This sticks a few globals past the end of the heap and then asks the OS to save the heap. On restore, the heap is re-populated by the OS and then various global variables reset. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/lisp/ao_lisp_builtin.c')
-rw-r--r--src/lisp/ao_lisp_builtin.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lisp/ao_lisp_builtin.c b/src/lisp/ao_lisp_builtin.c
index 30631980..ebc69f77 100644
--- a/src/lisp/ao_lisp_builtin.c
+++ b/src/lisp/ao_lisp_builtin.c
@@ -82,6 +82,9 @@ static const ao_poly builtin_names[] = {
[builtin_flush] = _ao_lisp_atom_flush,
[builtin_delay] = _ao_lisp_atom_delay,
[builtin_led] = _ao_lisp_atom_led,
+ [builtin_save] = _ao_lisp_atom_save,
+ [builtin_restore] = _ao_lisp_atom_restore,
+
};
static char *
@@ -591,5 +594,7 @@ const ao_lisp_func_t ao_lisp_builtins[] = {
[builtin_flush] = ao_lisp_flush,
[builtin_led] = ao_lisp_led,
[builtin_delay] = ao_lisp_delay,
+ [builtin_save] = ao_lisp_save,
+ [builtin_restore] = ao_lisp_restore,
};