diff options
Diffstat (limited to 'src/lisp/ao_lisp.h')
| -rw-r--r-- | src/lisp/ao_lisp.h | 18 | 
1 files changed, 13 insertions, 5 deletions
| diff --git a/src/lisp/ao_lisp.h b/src/lisp/ao_lisp.h index 44838a34..ea3d2a09 100644 --- a/src/lisp/ao_lisp.h +++ b/src/lisp/ao_lisp.h @@ -26,16 +26,22 @@ typedef int16_t		ao_signed_poly;  #ifdef AO_LISP_SAVE  struct ao_lisp_os_save { -	ao_poly	ao_lisp_atoms; -	ao_poly	ao_lisp_globals; +	ao_poly		atoms; +	ao_poly		globals; +	uint16_t	const_checksum; +	uint16_t	const_checksum_inv;  }; -#define AO_LISP_POOL	(AO_LISP_POOL_TOTAL - sizeof (struct ao_lisp_os_save)) +#define AO_LISP_POOL_EXTRA	(sizeof(struct ao_lisp_os_save)) +#define AO_LISP_POOL	((int) (AO_LISP_POOL_TOTAL - AO_LISP_POOL_EXTRA))  int  ao_lisp_os_save(void);  int +ao_lisp_os_restore_save(struct ao_lisp_os_save *save, int offset); + +int  ao_lisp_os_restore(void);  #endif @@ -67,12 +73,14 @@ extern uint8_t ao_lisp_const[AO_LISP_POOL_CONST];  #define _ao_lisp_atom_eval	_atom("eval")  #define _ao_lisp_atom_read	_atom("read")  #define _ao_lisp_atom_eof	_atom("eof") +#define _ao_lisp_atom_save	_atom("save") +#define _ao_lisp_atom_restore	_atom("restore")  #else  #include "ao_lisp_const.h"  #ifndef AO_LISP_POOL -#define AO_LISP_POOL	16384 +#define AO_LISP_POOL	3072  #endif -extern uint8_t		ao_lisp_pool[AO_LISP_POOL]; +extern uint8_t		ao_lisp_pool[AO_LISP_POOL + AO_LISP_POOL_EXTRA];  #endif  /* Primitive types */ | 
