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).
BUG REPORT¶
This tool is under development at the
ASIM department of the
LIP6
laboratory.
We need your feedback to improve documentation and tools.