Provided by: alliance_5.1.1-1.1build1_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).