ptype.3alc - Man Page

mbk list of typed pointers

Description

The ptype is used to save typed pointers in a list. The use of this structure is strongly recommended, 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;

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).

Referenced By

addptype.3alc(3), delptype.3alc(3), freeptype.3alc(3), getptype.3alc(3), locap.3alc(3), locon.3alc(3), lofig.3alc(3), loins.3alc(3), lores.3alc(3), loself.3alc(3), losig.3alc(3), lotrs.3alc(3), phcon.3alc(3), phfig.3alc(3), phins.3alc(3), phref.3alc(3), phseg.3alc(3), phvia.3alc(3).

October 1, 1997 ASIM/LIP6 MBK UTILITY STRUCTURE DEFINITIONS