xref: /csrg-svn/usr.bin/gprof/printlist.c (revision 42683)
121964Sdist /*
221964Sdist  * Copyright (c) 1983 Regents of the University of California.
334199Sbostic  * All rights reserved.
434199Sbostic  *
5*42683Sbostic  * %sccs.include.redist.c%
621964Sdist  */
721964Sdist 
87175Speter #ifndef lint
9*42683Sbostic static char sccsid[] = "@(#)printlist.c	5.5 (Berkeley) 06/01/90";
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
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