allocrdsrec

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 Université 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)