Provided by: alliance_5.0-20110203-4_amd64 bug

NAME

        addrdsfigrec - adds a rectangle to a figure

SYNOPSYS

       #include "rdsnnn.h"
       rdsrec_list ∗addrdsfigrec( Figure, Name, Layer, X, Y, Dx, Dy )
                      rdsfig_list ∗Figure;
                      char        ∗Name;
                      char         Layer;
                      long         X;
                      long         Y;
                      long         Dx;
                      long         Dy;

PARAMETER

       Figure              figure which contains the rectangle to add.

       Name                name of the rectangle to add.

       Layer               Layer of the rectangle to add.

       X,Y,DX,DY           Dimensions of the rectangle to add.

DESCRIPTION

       addrdsfigrec  creates  an  adds  a rectangle in the figure called Figure.  The size of the
       user structure to add next to the structure rdsrec_list (if it exists) is defined  by  the
       field SIZE of the figure who has to contain the rectangle. The rectangle is added in front
       of the list, and becomes  itself  the  list  head  associated  to  the  defined  layer  in
       parameters of the function.  The fields of the rectangle structure are modified as follows
       :
       The field NAME is set to Name.
       The field X is set to X.
       The field Y is set to Y.
       The field DX is set to Dx.
       The field DY is set to Dy.
       The field FLAGS is modified with the value Layer.

RETURN VALUE

       addrdsfigrec returns a pointer to the newly added rectangle.

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"
               typedef struct UserStruct
                {
                  char ∗STRING;
                  void ∗USER1;
                } UserStruct;
               # define POINTER_STRING(R)                                \
                                                                         \
                 (((UserStruct ∗)((char ∗)(R)+sizeof(rdsrec_list)))->STRING )
                main()
                 {
                   rdsfig_list ∗RdsFigure;
                   rdsrec_list ∗Rectangle;
                   char Layer;
                   rdsrec_list ∗ScanRec;
                   mbkenv();
                   rdsenv();
                   loadrdsparam();
                   RdsFigure = addrdsfig ("core",sizeof ( UserStruct ) );
                   Rectangle = addrdsfigrec (RdsFigure,
                                                   "Alu1",RDS_ALU1,
                                                   2,4,12,1);
                   POINTER_STRING(Rectangle) = namealloc ("rectangle_alu1");
                   ...
                   /∗
                      print caracteristics of all rectangles of the Rds figure
                   ∗/
                   for ( Layer = 0 ; Layer < RDS_MAX_LAYER ; Layer ++ )
                    {
                      for (
                             ScanRec  = RdsFigure->LAYERTAB[Layer] ;
                             ScanRec != (rdsrec_list ∗) NULL     ;
                             ScanRec  = ScanRec->NEXT
                          )
                       {
                         printf("Rectangle->LAYER = %s\n",
                            RDS_LAYER_NAME[GetRdsLayer(ScanRec)]);
                         printf("Rectangle->NAME   = %s\n",ScanRec->NAME);
                         printf("Rectangle->X      = %ld\n",ScanRec->X);
                         printf("Rectangle->Y      = %ld\n",ScanRec->Y);
                         printf("Rectangle->DX     = %ld\n",ScanRec->DX);
                         printf("Rectangle->DY     = %ld\n",ScanRec->DY);
                         printf("Rectangle->STRING = %s\n",POINTER_STRING(ScanRec));
                       }
                    }
                 }

SEE ALSO

       librds, delrdsfigrec, viewrdsfig