[BACK]Return to paristio.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / pari / src / headers

Annotation of OpenXM_contrib/pari/src/headers/paristio.h, Revision 1.1.1.1

1.1       maekawa     1: /******************************************************************/
                      2: /* This file contains memory and I/O management definitions       */
                      3: /* $Id: paristio.h,v 1.1.1.1 1999/09/16 13:47:45 karim Exp $ */
                      4:
                      5: typedef unsigned char *byteptr;
                      6:
                      7: typedef struct stackzone
                      8: {
                      9:   long zonetop, bot, top, avma, memused;
                     10: } stackzone;
                     11:
                     12: typedef struct entree {
                     13:   char *name;
                     14:   ulong valence;
                     15:   void *value;
                     16:   long menu;
                     17:   char *code;
                     18:   struct entree *next;
                     19:   char *help;
                     20:   void *args;
                     21: } entree;
                     22:
                     23: typedef struct PariOUT {
                     24:   void (*putch)(char);
                     25:   void (*puts)(char*);
                     26:   void (*flush)();     /* Finalize a report of a non fatal-error. */
                     27:   void (*die)();       /* If not-NULL, should be called to finalize
                     28:                           a report of a fatal error (no "\n" required). */
                     29: } PariOUT;
                     30:
                     31: typedef struct pariFILE {
                     32:   FILE *file;
                     33:   int type;
                     34:   char *name;
                     35:   struct pariFILE* prev;
                     36:   struct pariFILE* next;
                     37: } pariFILE;
                     38: /* Common global variables: */
                     39:
                     40: extern PariOUT *pariOut, *pariErr;
                     41: extern FILE    *pari_outfile, *logfile, *infile, *errfile;
                     42:
                     43: extern ulong avma,bot,top,memused;
                     44: extern byteptr diffptr;
                     45: extern entree  **varentries;
                     46: extern char    *errmessage[], *current_psfile;
                     47:
                     48:
                     49: /* This may not be exact on all machines [Ptitboul] */
                     50: #define is_universal_constant(x) \
                     51:   ((long)(x) >= (long)gzero && (long)(x)<=(long)gi)
                     52:
                     53: #define copyifstack(x,y) {long t=(long)(x); \
                     54:                          (y)=(t>=bot &&t<top)? lcopy((GEN)t): t;}
                     55: #define icopyifstack(x,y) {long t=(long)(x); \
                     56:                          (y)=(t>=bot &&t<top)? licopy((GEN)t): t;}
                     57: #define isonstack(x) ((GEN)(x)>=(GEN)bot && (GEN)(x)<(GEN)top)
                     58:
                     59: /* Define this to (1) locally (in a given file, NOT here) to check
                     60:  * "random" garbage collecting
                     61:  */
                     62: #ifdef DYNAMIC_STACK
                     63: #  define low_stack(x,l) (avma < (l))
                     64: #else
                     65: #  define low_stack(x,l) (avma < (x))
                     66: #endif
                     67:
                     68: #define stack_lim(av,n) (bot + (((av)-bot)>>(n)))

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>