gpg: Extend --quick-gen-key for creating keys from a card.
[gnupg.git] / tests / gpgscm / scheme-private.h
index fe50135..7f92bda 100644 (file)
@@ -45,11 +45,11 @@ typedef struct port {
 struct cell {
   uintptr_t _flag;
   union {
+    num _number;
     struct {
       char   *_svalue;
       int   _length;
     } _string;
-    num _number;
     port *_port;
     foreign_func _ff;
     struct {
@@ -108,18 +108,21 @@ int tracing;
 #ifndef CELL_SEGSIZE
 #define CELL_SEGSIZE    5000  /* # of cells in one segment */
 #endif
-#ifndef CELL_NSEGMENT
-#define CELL_NSEGMENT   10    /* # of segments for cells */
+
+/* If less than # of cells are recovered in a garbage collector run,
+ * allocate a new cell segment to avoid fruitless collection cycles in
+ * the near future.  */
+#ifndef CELL_MINRECOVER
+#define CELL_MINRECOVER    (CELL_SEGSIZE >> 2)
 #endif
-void *alloc_seg[CELL_NSEGMENT];
-pointer cell_seg[CELL_NSEGMENT];
-int     last_cell_seg;
+struct cell_segment *cell_segments;
 
 /* We use 4 registers. */
 pointer args;            /* register for arguments of function */
 pointer envir;           /* stack register for current environment */
 pointer code;            /* register for current code */
 pointer dump;            /* stack register for next evaluation */
+pointer frame_freelist;
 
 #if USE_HISTORY
 struct history history;  /* we keep track of the call history for
@@ -157,12 +160,6 @@ pointer SHARP_HOOK;  /* *sharp-hook* */
 pointer COMPILE_HOOK;  /* *compile-hook* */
 #endif
 
-#if USE_SMALL_INTEGERS
-/* A fixed allocation of small integers.  */
-void *integer_alloc;
-pointer integer_cells;
-#endif
-
 pointer free_cell;       /* pointer to top of free cells */
 long    fcells;          /* # of free cells */
 size_t  inhibit_gc;      /* nesting of gc_disable */
@@ -200,18 +197,17 @@ FILE *tmpfp;
 int tok;
 int print_flag;
 pointer value;
-int op;
 unsigned int flags;
 
 void *ext_data;     /* For the benefit of foreign functions */
 long gensym_cnt;
 
-struct scheme_interface *vptr;
+const struct scheme_interface *vptr;
 };
 
 /* operator code */
 enum scheme_opcodes {
-#define _OP_DEF(A,B,C,D,E,OP) OP,
+#define _OP_DEF(A,B,C,D,OP) OP,
 #include "opdefines.h"
   OP_MAXDEFINED
 };