Provided by: alliance_5.0-20120515-6_amd64 bug

NAME

       addphins - create a physical instance

SYNOPSYS

       #include "mph.h"
       phins_list ∗addphins(ptfig, figname, insname, sym, x, y)
       phfig_list ∗ptfig;
       char ∗figname;
       char ∗insname;
       char sym;
       long x, y;

PARAMETERS

       ptfig               Pointer to the figure in which the instance should be added

       figname             Instance model name

       insname             Instance name

       sym                 Geometrical operation performed on the instance

       x, y                Coordinates of the lower left corner of the instance

DESCRIPTION

       addphins  creates  a new instance whose lower left corner is at the given coordinates, and
       adds it to the list of instances pointed to by ptfig->PHINS. The new instance is added  in
       front of the list, and becomes itself the list head.
       The  parameters  figname,  insname,  sym,  x  and y fill respectivly the FIGNAME, INSNAME,
       TRANSF, XINS and YINS fields of the phins structure.
       The addphins function does not check in memory or on disk to see if the instanciated model
       exists, since no informations on it are needed.
       The  coordinates  are  not  transformation  dependant. It means that the transformation is
       performed before placing the instance at the given point.  For details on  the  structure,
       see phins(3).

RETURN VALUE

       addphins returns a pointer to the newly created instance.

ERRORS

       "∗∗∗ mbk error ∗∗∗ addphins figure figname cannot be part of itself"
              The instance has for model name of the figure on the which it is to be added.  It's
              illegal and dangerous. This check is made at the actual hierachy  level  only,  not
              recursivly on the structure, so it still may happend.

       "∗∗∗ mbk error ∗∗∗ illegal addphins transformation sym in : insname"
              The  geometrical  operation  is not in the legal range. See phins(3) for a complete
              list of values.

       "∗∗∗ mbk error ∗∗∗ illegal addphins duplicate instance name : insname"
              The instance name is an identifier, so it can't appear twice in the same figure.

EXAMPLE

       #include "mph.h"
       phins_list ∗ins_dup(pfd, pfs) /∗ duplicate instances ∗/
       phfig_list ∗pfd, ∗pfs;
       {
       phins_list ∗pi;
          for (pi = pfs->phins; pi != NULL; pi = pi->NEXT)
             addphins(pfd, pi->FIGNAME, pi->INSNAME, pi->TRANSF,
                                pi->XINS, pi->YINS);
          return pfd->PHINS;
       }

SEE ALSO

       mbk(1), phfig(3), phins(3), getphins(3), delphins(3).