| h->return_stack_size=rsize; |
h->return_stack_size=rsize; |
| h->locals_stack_size=lsize; |
h->locals_stack_size=lsize; |
| |
|
| #if defined(HAVE_MMAP) |
#if defined(HAVE_MMAP) && !defined(STANDALONE) |
| if (pagesize > 1) { |
if (pagesize > 1) { |
| size_t p = pagesize; |
size_t p = pagesize; |
| size_t totalsize = |
size_t totalsize = |
| } |
} |
| #endif |
#endif |
| |
|
| |
#ifdef STANDALONE |
| |
Address gforth_alloc(Cell size) |
| |
{ |
| |
Address r; |
| |
/* leave a little room (64B) for stack underflows */ |
| |
if ((r = malloc(size+64))==NULL) { |
| |
perror(progname); |
| |
exit(1); |
| |
} |
| |
r = (Address)((((Cell)r)+(sizeof(Float)-1))&(-sizeof(Float))); |
| |
debugp(stderr, "malloc succeeds, address=$%lx\n", (long)r); |
| |
return r; |
| |
} |
| |
#endif |
| |
|
| int forget_dyncode(Address code) |
int forget_dyncode(Address code) |
| { |
{ |
| #ifdef NO_DYNAMIC |
#ifdef NO_DYNAMIC |
| #endif /* !(defined(DOUBLY_INDIRECT) || defined(INDIRECT_THREADED)) */ |
#endif /* !(defined(DOUBLY_INDIRECT) || defined(INDIRECT_THREADED)) */ |
| } |
} |
| |
|
| |
#ifndef STANDALONE |
| Address gforth_loader(FILE *imagefile, char* filename) |
Address gforth_loader(FILE *imagefile, char* filename) |
| /* returns the address of the image proper (after the preamble) */ |
/* returns the address of the image proper (after the preamble) */ |
| { |
{ |
| |
|
| return imp; |
return imp; |
| } |
} |
| |
#endif |
| |
|
| /* pointer to last '/' or '\' in file, 0 if there is none. */ |
/* pointer to last '/' or '\' in file, 0 if there is none. */ |
| static char *onlypath(char *filename) |
static char *onlypath(char *filename) |