sethtitem - test and set an item in an hash table.
This software belongs to the ALLIANCE CAD system from the CAO-VLSI team at
ASIM/LIP6/UPMC laboratory.
LIP6/ASIM
University P. et M. Curie
4, place Jussieu
75252 PARIS Cedex 05
FRANCE
Fax : {33/0} 1.44.27.62.86
E-mail support : alliance-support@asim.lip6.fr
#include mut315.h"
int sethtitem(table, key)
ht *table;
void *key;
sethtitem() adds an item in the hash table pointed to by table, whether it existed or not, and returns an appropriate value. This is kind of a test and set operator.
If the key exists, the funtion return 1, if it doesn't, the item is stored and the function returns 0.
#include <stdio.h>
#include mut315.h"
checksigname(p)
lofig_list *p;
{
int i;
losig_list *ptsig;
locon_list *ptcon;
ht *h;
char *amatla;
for (i = 0, ptsig = p->LOSIG; ptsig; i++, ptsig = ptsig->NEXT);
h = addht(i << 1); /* half empty hash tables are faster! */
for (ptcon = p->LOCON; ptcon; ptcon = ptcon->NEXT)
addhtitem(h, ptcon->NAME, 0);
for (ptsig = p->LOSIG; ptsig; ptsig = ptsig->NEXT) {
if (ptsig->TYPE == INTERNAL) {
amatla = getsigname(ptsig)
;
if (!sethtitem(h, amatla, 0))
printf("node %s is now unique\n", amatla);
}
}
delht(h);
}
*** mbk error *** sethtitem impossible : value is EMPTYHT or DELETEHT" The values EMPTYHT, -1, and DELETEHT, -2, are reserved for internal use, sorry.
The value must be distinct from -1 and -2.
mbk(1) , addht(3) , delht(3) , addhtitem(3) , gethtitem(3) , delhtitem(3) , viewht(3) .
This tool is under development at the ASIM/LIP6/UPMC laboratory, cao-vlsi
research team.
We need your feedbak to improve documentation and tools.
If you find bugs, please fill-in the form at
http://asim.lip6.fr/alliance/support/bug-report/
Thanks for doing this.