xref: /csrg-svn/usr.bin/gprof/printlist.c (revision 30963)
121964Sdist /*
221964Sdist  * Copyright (c) 1983 Regents of the University of California.
321964Sdist  * All rights reserved.  The Berkeley software License Agreement
421964Sdist  * specifies the terms and conditions for redistribution.
521964Sdist  */
621964Sdist 
77175Speter #ifndef lint
8*30963Smckusick static char sccsid[] = "@(#)printlist.c	5.2 (Berkeley) 04/27/87";
921964Sdist #endif not lint
107175Speter 
117175Speter #include "gprof.h"
127175Speter 
137222Speter     /*
147222Speter      *	these are the lists of names:
157222Speter      *	there is the list head and then the listname
167222Speter      *	is a pointer to the list head
177222Speter      *	(for ease of passing to stringlist functions).
187222Speter      */
19*30963Smckusick struct stringlist	kfromhead = { 0 , 0 };
20*30963Smckusick struct stringlist	*kfromlist = &kfromhead;
21*30963Smckusick struct stringlist	ktohead = { 0 , 0 };
22*30963Smckusick struct stringlist	*ktolist = &ktohead;
237222Speter struct stringlist	fhead = { 0 , 0 };
247222Speter struct stringlist	*flist = &fhead;
257222Speter struct stringlist	Fhead = { 0 , 0 };
267222Speter struct stringlist	*Flist = &Fhead;
277222Speter struct stringlist	ehead = { 0 , 0 };
287222Speter struct stringlist	*elist = &ehead;
297222Speter struct stringlist	Ehead = { 0 , 0 };
307222Speter struct stringlist	*Elist = &Ehead;
317175Speter 
327222Speter addlist( listp , funcname )
337222Speter     struct stringlist	*listp;
347222Speter     char		*funcname;
357175Speter {
367175Speter     struct stringlist	*slp;
377175Speter 
387175Speter     slp = (struct stringlist *) malloc( sizeof(struct stringlist));
397175Speter     if ( slp == (struct stringlist *) 0 ) {
407175Speter 	fprintf( stderr, "gprof: ran out room for printlist\n" );
417175Speter 	done();
427175Speter     }
437222Speter     slp -> next = listp -> next;
447175Speter     slp -> string = funcname;
457222Speter     listp -> next = slp;
467175Speter }
477175Speter 
487175Speter bool
497222Speter onlist( listp , funcname )
507222Speter     struct stringlist	*listp;
517222Speter     char		*funcname;
527175Speter {
537175Speter     struct stringlist	*slp;
547175Speter 
557222Speter     for ( slp = listp -> next ; slp ; slp = slp -> next ) {
567175Speter 	if ( ! strcmp( slp -> string , funcname ) ) {
577175Speter 	    return TRUE;
587175Speter 	}
597175Speter 	if ( funcname[0] == '_' && ! strcmp( slp -> string , &funcname[1] ) ) {
607175Speter 	    return TRUE;
617175Speter 	}
627175Speter     }
637175Speter     return FALSE;
647175Speter }
65