Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

addptype(3) [posix man page]

ADDPTYPE(3)						       MBK UTILITY FUNCTIONS						       ADDPTYPE(3)

NAME
addptype - create a ptype and add it to a ptype_list ORIGIN
This software belongs to the ALLIANCE CAD SYSTEM developed by the ASIM team at LIP6 laboratory of Universite Pierre et Marie CURIE, in Paris, France. Web : http://asim.lip6.fr/recherche/alliance/ E-mail : alliance-users@asim.lip6.fr SYNOPSYS
#include "mut.h" ptype_list *addptype(pthead,type,ptdata) ptype_list *pthead; void *ptdata; long type; PARAMETERS
pthead Pointer to a ptype list type Flag indicating the pointer owner ptdata Generic pointer to any kind of information DESCRIPTION
addptype creates a new ptype element and adds it to the front of the list pointed to by pthead, and becomes itself the list head. The ptype_lists are mosty used to create lists of homogeneous elements in mbk, but also for trees, graphs, and so on. The type argument indicates the pointer type, at the C type meaning, for its owner. The types allow to access the pointers with adequat cast, and for example to share informations in the USER fields of mbk structures. The ptdata points to any kind of list or may itself be a value, if proper cast is performed at compilation time, and fills the DATA field of the ptype structure. For details on the structure, see ptype(3). RETURN VALUE
addptype returns a pointer to the new head of list. EXAMPLE
#include "mut.h" #include "mph.h" void corner(ptfig, name) phfig_list *ptfig; char *name; { phins_list *i = getphins(ptfig, name); num_list *ptnum; phfig_list *model; model = getphfig(i->FIGNAME); ptnum = addnum((num_list *)NULL, model->X2 - model->X1); ptnum = addnum(ptnum, model->Y2 - model->Y1); i->USER = addptype(i->USER, (long)PLACEABOX, (void *)ptnum); } SEE ALSO
mbk(1), ptype(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. ASIM
/LIP6 October 1, 1997 ADDPTYPE(3)

Check Out this Related Man Page

PTYPE(3)						 MBK UTILITY STRUCTURE DEFINITIONS						  PTYPE(3)

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. ASIM
/LIP6 October 1, 1997 PTYPE(3)
Man Page