diff options
Diffstat (limited to 'usr.bin/f2c/mem.c')
-rw-r--r-- | usr.bin/f2c/mem.c | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/usr.bin/f2c/mem.c b/usr.bin/f2c/mem.c deleted file mode 100644 index 940e9c1..0000000 --- a/usr.bin/f2c/mem.c +++ /dev/null @@ -1,234 +0,0 @@ -/**************************************************************** -Copyright 1990, 1991 by AT&T Bell Laboratories and Bellcore. - -Permission to use, copy, modify, and distribute this software -and its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notice appear in all -copies and that both that the copyright notice and this -permission notice and warranty disclaimer appear in supporting -documentation, and that the names of AT&T Bell Laboratories or -Bellcore or any of their entities not be used in advertising or -publicity pertaining to distribution of the software without -specific, written prior permission. - -AT&T and Bellcore disclaim all warranties with regard to this -software, including all implied warranties of merchantability -and fitness. In no event shall AT&T or Bellcore be liable for -any special, indirect or consequential damages or any damages -whatsoever resulting from loss of use, data or profits, whether -in an action of contract, negligence or other tortious action, -arising out of or in connection with the use or performance of -this software. -****************************************************************/ - -#include "defs.h" -#include "iob.h" - -#define MEMBSIZE 32000 -#define GMEMBSIZE 16000 - - extern void exit(); - - char * -gmem(n, round) - int n, round; -{ - static char *last, *next; - char *rv; - if (round) -#ifdef CRAY - if ((long)next & 0xe000000000000000) - next = (char *)(((long)next & 0x1fffffffffffffff) + 1); -#else -#ifdef MSDOS - if ((int)next & 1) - next++; -#else - next = (char *)(((long)next + sizeof(char *)-1) - & ~((long)sizeof(char *)-1)); -#endif -#endif - rv = next; - if ((next += n) > last) { - rv = Alloc(n + GMEMBSIZE); - - next = rv + n; - last = next + GMEMBSIZE; - } - return rv; - } - - struct memblock { - struct memblock *next; - char buf[MEMBSIZE]; - }; - typedef struct memblock memblock; - - static memblock *mem0; - memblock *curmemblock, *firstmemblock; - - char *mem_first, *mem_next, *mem_last, *mem0_last; - - void -mem_init() -{ - curmemblock = firstmemblock = mem0 - = (memblock *)Alloc(sizeof(memblock)); - mem_first = mem0->buf; - mem_next = mem0->buf; - mem_last = mem0->buf + MEMBSIZE; - mem0_last = mem0->buf + MEMBSIZE; - mem0->next = 0; - } - - char * -mem(n, round) - int n, round; -{ - memblock *b; - register char *rv, *s; - - if (round) -#ifdef CRAY - if ((long)mem_next & 0xe000000000000000) - mem_next = (char *)(((long)mem_next & 0x1fffffffffffffff) + 1); -#else -#ifdef MSDOS - if ((int)mem_next & 1) - mem_next++; -#else - mem_next = (char *)(((long)mem_next + sizeof(char *)-1) - & ~((long)sizeof(char *)-1)); -#endif -#endif - rv = mem_next; - s = rv + n; - if (s >= mem_last) { - if (n > MEMBSIZE) { - fprintf(stderr, "mem(%d) failure!\n", n); - exit(1); - } - if (!(b = curmemblock->next)) { - b = (memblock *)Alloc(sizeof(memblock)); - curmemblock->next = b; - b->next = 0; - } - curmemblock = b; - rv = b->buf; - mem_last = rv + sizeof(b->buf); - s = rv + n; - } - mem_next = s; - return rv; - } - - char * -tostring(s,n) - register char *s; - int n; -{ - register char *s1, *se, **sf; - char *rv, *s0; - register int k = n + 2, t; - - sf = str_fmt; - sf['%'] = "%"; - s0 = s; - se = s + n; - for(; s < se; s++) { - t = *(unsigned char *)s; - s1 = sf[t]; - while(*++s1) - k++; - } - sf['%'] = "%%"; - rv = s1 = mem(k,0); - *s1++ = '"'; - for(s = s0; s < se; s++) { - t = *(unsigned char *)s; - sprintf(s1, sf[t], t); - s1 += strlen(s1); - } - *s1 = 0; - return rv; - } - - char * -cpstring(s) - register char *s; -{ - return strcpy(mem(strlen(s)+1,0), s); - } - - void -new_iob_data(ios, name) - register io_setup *ios; - char *name; -{ - register iob_data *iod; - register char **s, **se; - - iod = (iob_data *) - mem(sizeof(iob_data) + ios->nelt*sizeof(char *), 1); - iod->next = iob_list; - iob_list = iod; - iod->type = ios->fields[0]; - iod->name = cpstring(name); - s = iod->fields; - se = s + ios->nelt; - while(s < se) - *s++ = "0"; - *s = 0; - } - - char * -string_num(pfx, n) - char *pfx; - long n; -{ - char buf[32]; - sprintf(buf, "%s%ld", pfx, n); - /* can't trust return type of sprintf -- BSD gets it wrong */ - return strcpy(mem(strlen(buf)+1,0), buf); - } - -static defines *define_list; - - void -def_start(outfile, s1, s2, post) - FILE *outfile; - char *s1, *s2, *post; -{ - defines *d; - int n, n1; - extern int in_define; - - n = n1 = strlen(s1); - if (s2) - n += strlen(s2); - d = (defines *)mem(sizeof(defines)+n, 1); - d->next = define_list; - define_list = d; - strcpy(d->defname, s1); - if (s2) - strcpy(d->defname + n1, s2); - in_define = 1; - nice_printf(outfile, "#define %s", d->defname); - if (post) - nice_printf(outfile, " %s", post); - } - - void -other_undefs(outfile) - FILE *outfile; -{ - defines *d; - if (d = define_list) { - define_list = 0; - nice_printf(outfile, "\n"); - do - nice_printf(outfile, "#undef %s\n", d->defname); - while(d = d->next); - nice_printf(outfile, "\n"); - } - } |