1.1 --- a/compiler-init/memfile.c Sat Jul 15 05:02:38 2006 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,105 +0,0 @@
1.4 -#include "memfile.h"
1.5 -#include <string.h>
1.6 -#include "osdefs.h"
1.7 -
1.8 -memfile_t *memfile_creat(const char *name, size_t init)
1.9 -{
1.10 - memfile_t mf;
1.11 - memfile_t *pmf;
1.12 -
1.13 - mf.size = init;
1.14 - mf.base = (char *)malloc(init);
1.15 - mf.usedoffs = 0;
1.16 - if (!mf.base)
1.17 - {
1.18 - return NULL;
1.19 - }
1.20 -
1.21 - mf.offs = 0;
1.22 - mf._static = 0;
1.23 -
1.24 - pmf = (memfile_t *)malloc(sizeof(memfile_t));
1.25 - memcpy(pmf, &mf, sizeof(memfile_t));
1.26 -
1.27 - pmf->name = strdup(name);
1.28 -
1.29 - return pmf;
1.30 -}
1.31 -
1.32 -void memfile_destroy(memfile_t *mf)
1.33 -{
1.34 - if (!mf->_static)
1.35 - {
1.36 - free(mf->name);
1.37 - free(mf->base);
1.38 - free(mf);
1.39 - }
1.40 -}
1.41 -
1.42 -void memfile_seek(memfile_t *mf, long seek)
1.43 -{
1.44 - mf->offs = seek;
1.45 -}
1.46 -
1.47 -long memfile_tell(memfile_t *mf)
1.48 -{
1.49 - return mf->offs;
1.50 -}
1.51 -
1.52 -size_t memfile_read(memfile_t *mf, void *buffer, size_t maxsize)
1.53 -{
1.54 - if (!maxsize || mf->offs >= mf->usedoffs)
1.55 - {
1.56 - return 0;
1.57 - }
1.58 -
1.59 - if (mf->usedoffs - mf->offs < (long)maxsize)
1.60 - {
1.61 - maxsize = mf->usedoffs - mf->offs;
1.62 - if (!maxsize)
1.63 - {
1.64 - return 0;
1.65 - }
1.66 - }
1.67 -
1.68 - memcpy(buffer, mf->base + mf->offs, maxsize);
1.69 -
1.70 - mf->offs += maxsize;
1.71 -
1.72 - return maxsize;
1.73 -}
1.74 -
1.75 -int memfile_write(memfile_t *mf, void *buffer, size_t size)
1.76 -{
1.77 - if (mf->offs + size > mf->size)
1.78 - {
1.79 - size_t newsize = (mf->size + size) * 2;
1.80 - if (mf->_static)
1.81 - {
1.82 - char *oldbase = mf->base;
1.83 - mf->base = (char *)malloc(newsize);
1.84 - if (!mf->base)
1.85 - {
1.86 - return 0;
1.87 - }
1.88 - memcpy(mf->base, oldbase, mf->size);
1.89 - } else {
1.90 - mf->base = (char *)realloc(mf->base, newsize);
1.91 - if (!mf->base)
1.92 - {
1.93 - return 0;
1.94 - }
1.95 - }
1.96 - mf->_static = 0;
1.97 - mf->size = newsize;
1.98 - }
1.99 - memcpy(mf->base + mf->offs, buffer, size);
1.100 - mf->offs += size;
1.101 -
1.102 - if (mf->offs > mf->usedoffs)
1.103 - {
1.104 - mf->usedoffs = mf->offs;
1.105 - }
1.106 -
1.107 - return 1;
1.108 -}