ALLOCRDSREC(3) RDS PHYSICAL FUNCTIONS ALLOCRDSREC(3)
NAME
allocrdsrec - allocates memory for a rectangle
ORIGIN
This software belongs to the ALLIANCE CAD SYSTEM developed by the ASIM team at LIP6 laboratory of Universite Pierre et Marie CURIE, in
Paris, France.
Web : http://asim.lip6.fr/recherche/alliance/
E-mail : alliance-users@asim.lip6.fr
SYNOPSYS
#include"rdsnnn.h"
rdsrec_list *allocrdsrec( Size )
unsigned int Size;
PARAMETER
Size Size of the added structure to the rdsrec_list structure.
DESCRIPTION
Allocates a memory block for rdsrec_list structure and an added structure defined by the user. Fields contained in the two structures are
set to NULL for pointers and 0L for numbers.
NOTE: Allocation by heap ( see rdsalloc function ).
RETURN VALUE
The pointer to the rectangle structure allocated.
ERRORS
"Rds202: rdsalloc error, can't continue !"
it's impossible to allocate the memory size desired.
EXAMPLE
# include "mutnnn.h"
# include "rdsnnn.h"
# include "rtlnnn.h"
/* Name and fields of UserStruct are defined by the user */
typedef struct UserStruct
{
char *STRING;
void *USER1;
} UserStruct;
# define POINTER_STRING(R)
(((UserStruct *)((char *)(R)+sizeof(rdsrec_list)))->STRING )
# define POINTER_USER1(R)
(((UserStruct *)((char *)(R)+sizeof(rdsrec_list)))->USER1 )
main()
{
rdsfig_list *Figure;
rdsrec_list *Rectangle;
mbkenv();
rdsenv();
loadrdsparam();
Rectangle = allocrdsrec ( sizeof ( UserStruct ) );
Rectangle->X = 20;
Rectangle->Y = 20;
Rectangle->DX = 48;
Rectangle->DY = 8;
POINTER_STRING (Rectangle) = (char *) malloc (strlen ("Alu1")+1);
strcpy(POINTER_STRING(Rectangle),"Alu1");
POINTER_USER1 (Rectangle) = (void *) Figure;
...
}
SEE ALSO
librds, freerdsrec, rdsalloc, rdsfree
BUG REPORT
This tool is under development at the ASIM department of the LIP6 laboratory.
We need your feedback to improve documentation and tools.
ASIM
/LIP6 October 1, 1997 ALLOCRDSREC(3)