Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
ADDRDSFIGREC(3) 	     RDS PHYSICAL FUNCTIONS		 ADDRDSFIGREC(3)

NAME
      addrdsfigrec - adds a rectangle to a figure

SYNOPSIS
     #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 func-
     tion.  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

ASIM/LIP6			 October 1, 1997		 ADDRDSFIGREC(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=addrdsfigrec&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help