altos/lisp: Add 'big' ints -- 24 bits wide
[fw/altos] / src / lisp / ao_lisp_mem.c
index 5bf6e1e4b14d064560cd29b07dbee7ab86146d14..f333073a339f920db13348227cc6673ece557c97 100644 (file)
@@ -169,15 +169,15 @@ static const struct ao_lisp_root  ao_lisp_root[] = {
        },
        {
                .type = NULL,
-               .addr = (void **) &save_poly[0]
+               .addr = (void **) (void *) &save_poly[0]
        },
        {
                .type = NULL,
-               .addr = (void **) &save_poly[1]
+               .addr = (void **) (void *) &save_poly[1]
        },
        {
                .type = NULL,
-               .addr = (void **) &save_poly[2]
+               .addr = (void **) (void *) &save_poly[2]
        },
        {
                .type = &ao_lisp_atom_type,
@@ -197,7 +197,7 @@ static const struct ao_lisp_root    ao_lisp_root[] = {
        },
        {
                .type = NULL,
-               .addr = (void **) &ao_lisp_v,
+               .addr = (void **) (void *) &ao_lisp_v,
        },
        {
                .type = &ao_lisp_cons_type,
@@ -211,6 +211,16 @@ static const struct ao_lisp_root   ao_lisp_root[] = {
                .type = &ao_lisp_cons_type,
                .addr = (void **) &ao_lisp_read_stack,
        },
+#ifdef AO_LISP_MAKE_CONST
+       {
+               .type = &ao_lisp_bool_type,
+               .addr = (void **) &ao_lisp_false,
+       },
+       {
+               .type = &ao_lisp_bool_type,
+               .addr = (void **) &ao_lisp_true,
+       },
+#endif
 };
 
 #define AO_LISP_ROOT   (sizeof (ao_lisp_root) / sizeof (ao_lisp_root[0]))
@@ -437,7 +447,7 @@ dump_busy(void)
 #define DUMP_BUSY()
 #endif
 
-static const struct ao_lisp_type const *ao_lisp_types[AO_LISP_NUM_TYPE] = {
+static const struct ao_lisp_type *ao_lisp_types[AO_LISP_NUM_TYPE] = {
        [AO_LISP_CONS] = &ao_lisp_cons_type,
        [AO_LISP_INT] = NULL,
        [AO_LISP_STRING] = &ao_lisp_string_type,
@@ -447,6 +457,8 @@ static const struct ao_lisp_type const *ao_lisp_types[AO_LISP_NUM_TYPE] = {
        [AO_LISP_FRAME] = &ao_lisp_frame_type,
        [AO_LISP_LAMBDA] = &ao_lisp_lambda_type,
        [AO_LISP_STACK] = &ao_lisp_stack_type,
+       [AO_LISP_BOOL] = &ao_lisp_bool_type,
+       [AO_LISP_BIGINT] = &ao_lisp_bigint_type,
 };
 
 static int