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