Table of Contents

Name

rdsalloc - memory allocation function

Origin

This software belongs to the ALLIANCE CAD system from the CAO-VLSI team at ASIM/LIP6/UPMC laboratory.
LIP6/ASIM
University P. et M. Curie 4, place Jussieu 75252 PARIS Cedex 05 FRANCE
Fax : {33/0} 1.44.27.62.86
E-mail support : alliance-support@asim.lip6.fr

Synopsys

#include rdsnnn.h"
char *rdsalloc( Size, Heap )
unsigned int Size;

char
Heap;

Parameter

Size
memory size to allocate
Heap
takes the values RDS_ALLOC_BLOCK or RDS_ALLOC_HEAP (two defined constants).

Description

The rdsalloc function can do memory allocation by block or by heap. If the user wants to allocate by block, he sets the parameter Heap to the constant RDS_ALLOC_BLOCK else, he wants to allocate by heap so the parameter Heap is set to RDS_ALLOC_HEAP. If rdsalloc is used with the constant RDS_ALLOC_BLOCK then rdsalloc is used as standard language C function malloc(). If the user allocates by heap then : At the first allocation of the block of size the parameter `Size', a heap of size multiple of the block Size is allocated. When another allocation of the same size is done then if the the heap isn't full then a pointer (of size='Size') is returned else a new heap is allocated and a pointer returned. Like this, the user does really one allocation (he has many pointers) to minimize fragmentation. Heap allocation is usefull if the user has to allocate many pointers of the same size (ex: rdsrec_list structure).

Note: Memory place allocated is set to NULL.

Return Value

pointer to the allocated memory is returned.

Errors

Rds202: rdsalloc error, can't continue !" it's impossible to allocate the memory size desired.

Example

#include rdsnnn.h"
main()
{
rdsrec_list *Rectangle;
rdsfig_list *Figure;
Rectangle =
(rdsrec_list *) rdsalloc (sizeof(rdsrec_list *),RDS_ALLOC_HEAP);

Figure
= (rdsfig_list *) rdsalloc (sizeof(rdsfig_list *),RDS_ALLOC_BLOCK); }

See Also

librds, rdsfree

Bug Report

This tool is under development at the ASIM/LIP6/UPMC laboratory, cao-vlsi research team.
We need your feedbak to improve documentation and tools. If you find bugs, please fill-in the form at http://asim.lip6.fr/alliance/support/bug-report/ Thanks for doing this.


Table of Contents

 



Alliance Web Site © 1997, 2002 ASIM/LIP6/UPMC, page maintained by Czo [Olivier Sirol] , last updated on 26 May 2000.