Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

63 lines
1.4 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/********************************************************************
*
* calloc.c - memory allocator for sets of elements
* zalloc - memory allocator like malloc only zeros storage.
*
* BYTE *calloc(nelem,sizelem)
* UWORD nelem, sizelem;
*
* Returns a pointer to a region of (zero filled) memory large
* enough to hold 'nelem' items each of size 'sizelem'.
* Returns NULL if not enough memory, or allocation too large
* (on 8086).
*
* BYTE *zalloc(nbytes)
* UWORD nbytes;
*
* Returns a pointer to a region of zero filled memory nbytes long.
* Returns NULL if not enough memory.
*
*********************************************************************/
#include "portab.h"
#include "osif.h"
BYTE * zalloc(nbytes) /* CLEAR FUNCTION ***********/
UWORD nbytes; /* number of bytes */
{
REG BYTE *rp; /* pointer to region */
BYTE *malloc();
if( (rp = malloc(nbytes)) == NULLPTR) return(NULLPTR);
blkfill( rp, NULL, nbytes );
return(rp);
}
BYTE * calloc(nelem,sizelem) /* CLEAR FUNCTION ***********/
UWORD nelem, /* number of elements */
sizelem; /* size of element */
{
REG LONG size;
size = sizelem*nelem;
#if I8086
if( size > 65535L )
return NULLPTR;
#endif
return zalloc((UWORD)size);
}
e = sizelem*nelem;
#if I8086
if( size > 65535L )
return NULLPTR;
#endif
return zalloc((UWORD)size);
}
e = sizelem*nelem;
#if I8086
if( size > 65535L )
return NULLPTR;
#endif
return zalloc((UWORD)size);
}