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

FreeBSD Manual Pages

  
 
  

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

NAME
	addrdsinsrec - adds a rectangle	to an instance

SYNOPSYS
       #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  rd-
       srec_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 rec-
       tangles's  list	associated  to	the defined layer in parameters	of the
       function	addrdsinsrec().	The fields of the rectangle structure are mod-
       ified 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 geo-
       metrical	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

ASIM/LIP6			October	1, 1997		       ADDRDSINSREC(3)

NAME | SYNOPSYS | PARAMETER | DESCRIPTION | RETURN VALUE | ERRORS | EXAMPLE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=addrdsinsrec&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help