addrdsinsrec

ADDRDSINSREC(3)              RDS PHYSICAL FUNCTIONS              ADDRDSINSREC(3)



NAME
        addrdsinsrec - adds a rectangle to an instance

>> Included manual page: man1/alc_origin.1alc

SYNOPSIS
       #include"rdsnnn.h"
        rdsrec_list ∗addrdsinsrec( Instance, Name, Layer, X, Y, Dx, Dy )
          rdsins_list ∗Instance;
          char        ∗Name;
          char         Layer;
          long         X;
          long         Y;
          long         Dx;
          long         Dy;

PARAMETER
       Instance            The instance 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 the rectangle to add.

DESCRIPTION
       This function creates an adds a rectangle to an instance. The size of the
       user structure to add (if if exists) next to the structure rdsrec_list is
       defined by the field SIZE of the instance which has to contain the
       rectangle. The rectangle is chained to the head of the rectangles's list
       associated to the defined layer in parameters of the function
       addrdsinsrec(). 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´.

       Note :

       - This function uses MBK namealloc() function.

       - coordinates of the rectangle are related to the instance before
       geometrical transformation.

RETURN VALUE
       The pointer to the added rectangle. It is also the head of rectangles's
       list associated to the corresponding layer.

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;
                   rdsins_list ∗Instance;
                   rdsrec_list ∗Rectangle;
                   char Layer;
                   rdsrec_list ∗ScanRec;
                   mbkenv();
                   rdsenv();
                   loadrdsparam();
                   RdsFigure = addrdsfig ("core",sizeof ( UserStruct ) );
                   Instance  = addrdsins (RdsFigure,"na2_y","and2",RDS_NOSYM,8,6);
                   Rectangle = addrdsinsrec (Instance,"Alu1",RDS_ALU1,2,4,12,1);
                   POINTER_STRING( Rectangle ) = namealloc ("un_alu1");
                   /∗
                      Displays caracteristics of all the rectangles of the instance
                   ∗/
                  for ( Layer = 0 ; Layer < RDS_MAX_LAYER ; Layer ++ )
                   {
                     for (
                            ScanRec  = Instance->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, delrdsinsrec, viewrdsins



>> Included manual page: man1/alc_bug_report.1alc




ASIM/LIP6                        October 1, 1997                 ADDRDSINSREC(3)