121964Sdist /*
2*62017Sbostic * Copyright (c) 1983, 1993
3*62017Sbostic * The Regents of the University of California. All rights reserved.
434199Sbostic *
542683Sbostic * %sccs.include.redist.c%
621964Sdist */
721964Sdist
87175Speter #ifndef lint
9*62017Sbostic static char sccsid[] = "@(#)printlist.c 8.1 (Berkeley) 06/06/93";
1034199Sbostic #endif /* not lint */
117175Speter
127175Speter #include "gprof.h"
137175Speter
147222Speter /*
157222Speter * these are the lists of names:
167222Speter * there is the list head and then the listname
177222Speter * is a pointer to the list head
187222Speter * (for ease of passing to stringlist functions).
197222Speter */
2030963Smckusick struct stringlist kfromhead = { 0 , 0 };
2130963Smckusick struct stringlist *kfromlist = &kfromhead;
2230963Smckusick struct stringlist ktohead = { 0 , 0 };
2330963Smckusick struct stringlist *ktolist = &ktohead;
247222Speter struct stringlist fhead = { 0 , 0 };
257222Speter struct stringlist *flist = &fhead;
267222Speter struct stringlist Fhead = { 0 , 0 };
277222Speter struct stringlist *Flist = &Fhead;
287222Speter struct stringlist ehead = { 0 , 0 };
297222Speter struct stringlist *elist = &ehead;
307222Speter struct stringlist Ehead = { 0 , 0 };
317222Speter struct stringlist *Elist = &Ehead;
327175Speter
337222Speter addlist( listp , funcname )
347222Speter struct stringlist *listp;
357222Speter char *funcname;
367175Speter {
377175Speter struct stringlist *slp;
387175Speter
397175Speter slp = (struct stringlist *) malloc( sizeof(struct stringlist));
407175Speter if ( slp == (struct stringlist *) 0 ) {
417175Speter fprintf( stderr, "gprof: ran out room for printlist\n" );
427175Speter done();
437175Speter }
447222Speter slp -> next = listp -> next;
457175Speter slp -> string = funcname;
467222Speter listp -> next = slp;
477175Speter }
487175Speter
497175Speter bool
onlist(listp,funcname)507222Speter onlist( listp , funcname )
517222Speter struct stringlist *listp;
527222Speter char *funcname;
537175Speter {
547175Speter struct stringlist *slp;
557175Speter
567222Speter for ( slp = listp -> next ; slp ; slp = slp -> next ) {
577175Speter if ( ! strcmp( slp -> string , funcname ) ) {
587175Speter return TRUE;
597175Speter }
607175Speter if ( funcname[0] == '_' && ! strcmp( slp -> string , &funcname[1] ) ) {
617175Speter return TRUE;
627175Speter }
637175Speter }
647175Speter return FALSE;
657175Speter }
66