home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 6
/
AACD06.ISO
/
AACD
/
System
/
Mesa-3.1
/
src
/
AOS
/
mempools.c
< prev
next >
Wrap
C/C++ Source or Header
|
1999-09-23
|
3KB
|
118 lines
/*
* $Id: $
*/
/*
* Mesa 3-D graphics library
* Version: 3.1
* Copyright (C) 1995 Brian Paul (brianp@ssec.wisc.edu)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#define NO_CONTEXT_AVAILABLE
#include <AOS/amigamesa.h>
/***************************************************************************************************************************/
/* Subfunctions *********************************************************************************************************** */
/***************************************************************************************************************************/
#if 0
APTR Reallocate(struct MemHeader *freeList, APTR memoryBlock, ULONG byteSize, ULONG oldSize) {
}
APTR ReallocMem(APTR memoryBlock, ULONG byteSize, ULONG oldSize, ULONG requirements) {
}
APTR ReallocAbs(APTR location, ULONG byteSize, ULONG oldSize) {
}
struct MemList *ReallocEntry(struct MemList *entry) {
}
APTR ReallocVec(APTR memoryBlock, ULONG byteSize, ULONG requirements) {
}
APTR ReallocPooled(APTR poolHeader, APTR memoryBlock, ULONG byteSize, ULONG oldSize) {
}
APTR ReallocVecPooled(APTR poolHeader, APTR memoryBlock, ULONG byteSize) {
}
#endif
APTR AllocVecPooled(register APTR poolHeader __asm__("a0"), register ULONG byteSize __asm__("d0"))
{
register ULONG *address;
byteSize += 4;
if ((address = AllocPooled(poolHeader, byteSize)))
*address++ = byteSize;
return (APTR)address;
}
void FreeVecPooled(register APTR poolHeader __asm__("a0"), register ULONG *memory __asm__("a1"))
{
register ULONG byteSize;
if (poolHeader && memory) {
byteSize = *--memory;
FreePooled(poolHeader, memory, byteSize);
}
}
/***************************************************************************************************************************/
#if 0
#ifdef REPLACE_ALLOC
void *realloc(void *mem, size_t newlen) {
ULONG oldlen = ((ULONG *)mem)[-1];
ULONG *newmem = mem;
if (newlen != oldlen) {
#if 0
/* heavy style, but should work */
if (newlen < oldlen)
FreePooled(amesaPool, (unsigned char *)mem + newlen, oldlen - newlen);
else
#endif
if ((newmem = AllocVecPooled(amesaPool, newlen))) {
CopyMem(newmem, mem, oldlen);
FreeVecPooled(amesaPool, (ULONG *)mem);
}
}
return newmem;
}
void *calloc(size_t len, size_t cnt) {
void *ret;
if ((ret = AllocVecPooled(amesaPool, len * cnt)))
bzero(ret, len * cnt);
return ret;
}
void *malloc(size_t len) {
return AllocVecPooled(amesaPool, len);
}
void free(void *mem) {
FreeVecPooled(amesaPool, mem);
}
#endif
#endif