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

NAME

       ptype - mbk list of typed pointers

DESCRIPTION

       The ptype is used to save typed pointers in a list.  The use of this structure is strongly
       recommanded, when such a need occurs.  It is the case in the USER field of all mbk  layout
       and  netlist objects, where data specific to different proccessing may be accessed through
       this unique field. It is the charge of the user to give its pointers a type that will  not
       collide with existing types.

       The   declarations   needed   to   work   on  ptype  are  available  in  the  header  file
       "/labo/include/mut315.h", where '315' is the actual mbk version.

       The following C structure describes the list of typed pointers :
              typedef struct ptype {
                 struct ptype     ∗NEXT;
                 void             ∗DATA;
                 long             TYPE;
              } ptype_list;

       NEXT                Pointer to the next ptype of the list.

       DATA                Generic pointer that may point where the user wants to.

       TYPE                Identifier of the user of the  pointed  data.  One  shall  not  access
                           someone else ptype since it doesn't know what's in it. This means also
                           that a ptype user should free the space taken by its datas since it is
                           the only one to know how to do it.

       Remark 1:           a  specialized  memory allocator has been built in order to create and
                           free ptype_lists, so absolutly avoid to create or free them  an  other
                           way than through the access functions.

       Remark 2:           Now  a  day,  three  tools are known to use the USER field of some mbk
                           structures :

                           VTIPARSER           the parser of vti physical format '.cp' files uses
                                               the phcon(3) USER field.

                           LOFIGCHAIN          the   lofigchain   function   constructs   a  dual
                                               representation of the netlist in the USER field of
                                               the losig(3) structure.

                           PLACEABOX           Genlib's physical placement functions, in order to
                                               have  model  sizes  in  instances.   It  uses  the
                                               phins(3) USER field.

SEE ALSO

       mbk(1), addptype(3), freeptype(3), getptype(3), delptype(3).