17175Speter #ifndef lint 2*7222Speter static char *sccsid = "@(#)printlist.c 1.2 (Berkeley) 06/18/82"; 37175Speter #endif lint 47175Speter 57175Speter #include "gprof.h" 67175Speter 7*7222Speter /* 8*7222Speter * these are the lists of names: 9*7222Speter * there is the list head and then the listname 10*7222Speter * is a pointer to the list head 11*7222Speter * (for ease of passing to stringlist functions). 12*7222Speter */ 13*7222Speter struct stringlist fhead = { 0 , 0 }; 14*7222Speter struct stringlist *flist = &fhead; 15*7222Speter struct stringlist Fhead = { 0 , 0 }; 16*7222Speter struct stringlist *Flist = &Fhead; 17*7222Speter struct stringlist ehead = { 0 , 0 }; 18*7222Speter struct stringlist *elist = &ehead; 19*7222Speter struct stringlist Ehead = { 0 , 0 }; 20*7222Speter struct stringlist *Elist = &Ehead; 217175Speter 22*7222Speter addlist( listp , funcname ) 23*7222Speter struct stringlist *listp; 24*7222Speter char *funcname; 257175Speter { 267175Speter struct stringlist *slp; 277175Speter 287175Speter slp = (struct stringlist *) malloc( sizeof(struct stringlist)); 297175Speter if ( slp == (struct stringlist *) 0 ) { 307175Speter fprintf( stderr, "gprof: ran out room for printlist\n" ); 317175Speter done(); 327175Speter } 33*7222Speter slp -> next = listp -> next; 347175Speter slp -> string = funcname; 35*7222Speter listp -> next = slp; 367175Speter } 377175Speter 387175Speter bool 39*7222Speter onlist( listp , funcname ) 40*7222Speter struct stringlist *listp; 41*7222Speter char *funcname; 427175Speter { 437175Speter struct stringlist *slp; 447175Speter 45*7222Speter for ( slp = listp -> next ; slp ; slp = slp -> next ) { 467175Speter if ( ! strcmp( slp -> string , funcname ) ) { 477175Speter return TRUE; 487175Speter } 497175Speter if ( funcname[0] == '_' && ! strcmp( slp -> string , &funcname[1] ) ) { 507175Speter return TRUE; 517175Speter } 527175Speter } 537175Speter return FALSE; 547175Speter } 55