version 1.1, 2001/10/02 11:17:07 |
version 1.2, 2002/09/11 07:26:58 |
Line 15 Foundation, Inc., 59 Temple Place - Suite 330, Boston, |
|
Line 15 Foundation, Inc., 59 Temple Place - Suite 330, Boston, |
|
|
|
/* This file contains memory and I/O management definitions */ |
/* This file contains memory and I/O management definitions */ |
|
|
|
typedef struct { |
|
long s, us; |
|
} pari_timer; |
|
|
typedef unsigned char *byteptr; |
typedef unsigned char *byteptr; |
|
typedef ulong gpmem_t; |
|
|
typedef struct stackzone |
typedef struct stackzone |
{ |
{ |
long zonetop, bot, top, avma, memused; |
gpmem_t zonetop, bot, top, avma; |
|
size_t memused; |
} stackzone; |
} stackzone; |
|
|
typedef struct entree { |
typedef struct entree { |
Line 53 typedef struct pariFILE { |
|
Line 59 typedef struct pariFILE { |
|
extern PariOUT *pariOut, *pariErr; |
extern PariOUT *pariOut, *pariErr; |
extern FILE *pari_outfile, *logfile, *infile, *errfile; |
extern FILE *pari_outfile, *logfile, *infile, *errfile; |
|
|
extern ulong avma,bot,top,memused; |
extern gpmem_t avma,bot,top; |
|
extern size_t memused; |
extern byteptr diffptr; |
extern byteptr diffptr; |
extern entree **varentries; |
extern entree **varentries; |
extern char *errmessage[], *current_psfile; |
extern char *errmessage[], *current_psfile; |
|
|
#define is_universal_constant(x) ((GEN)(x) >= gzero && (GEN)(x) <= gi) |
#define is_universal_constant(x) ((GEN)(x) >= gzero && (GEN)(x) <= gi) |
|
|
#define copyifstack(x,y) {ulong t=(ulong)(x); \ |
#define copyifstack(x,y) STMT_START {gpmem_t _t=(gpmem_t)(x); \ |
(y)=(t>=bot &&t<top)? lcopy((GEN)t): t;} |
(y)=(_t>=bot &&_t<top)? lcopy((GEN)_t): (long)_t;} STMT_END |
#define icopyifstack(x,y) {ulong t=(ulong)(x); \ |
#define icopyifstack(x,y) STMT_START {gpmem_t _t=(gpmem_t)(x); \ |
(y)=(t>=bot &&t<top)? licopy((GEN)t): t;} |
(y)=(_t>=bot &&_t<top)? licopy((GEN)_t): (long)_t;} STMT_END |
#define isonstack(x) ((ulong)(x)>=bot && (ulong)(x)<top) |
#define isonstack(x) ((gpmem_t)(x)>=bot && (gpmem_t)(x)<top) |
|
|
/* Define this to (1) locally (in a given file, NOT here) to check |
/* Define this to (1) locally (in a given file, NOT here) to check |
* "random" garbage collecting |
* "random" garbage collecting |
*/ |
*/ |
#ifdef DYNAMIC_STACK |
#ifdef DYNAMIC_STACK |
# define low_stack(x,l) (avma < (ulong)(l)) |
# define low_stack(x,l) (avma < (gpmem_t)(l)) |
#else |
#else |
# define low_stack(x,l) (avma < (ulong)(x)) |
# define low_stack(x,l) (avma < (gpmem_t)(x)) |
#endif |
#endif |
|
|
#define stack_lim(av,n) (bot + (((av)-bot)>>(n))) |
#define stack_lim(av,n) (bot + (((av)-bot)>>(n))) |