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