1 #ifndef lint 2 static char *sccsid = "@(#)printlist.c 1.2 (Berkeley) 06/18/82"; 3 #endif lint 4 5 #include "gprof.h" 6 7 /* 8 * these are the lists of names: 9 * there is the list head and then the listname 10 * is a pointer to the list head 11 * (for ease of passing to stringlist functions). 12 */ 13 struct stringlist fhead = { 0 , 0 }; 14 struct stringlist *flist = &fhead; 15 struct stringlist Fhead = { 0 , 0 }; 16 struct stringlist *Flist = &Fhead; 17 struct stringlist ehead = { 0 , 0 }; 18 struct stringlist *elist = &ehead; 19 struct stringlist Ehead = { 0 , 0 }; 20 struct stringlist *Elist = &Ehead; 21 22 addlist( listp , funcname ) 23 struct stringlist *listp; 24 char *funcname; 25 { 26 struct stringlist *slp; 27 28 slp = (struct stringlist *) malloc( sizeof(struct stringlist)); 29 if ( slp == (struct stringlist *) 0 ) { 30 fprintf( stderr, "gprof: ran out room for printlist\n" ); 31 done(); 32 } 33 slp -> next = listp -> next; 34 slp -> string = funcname; 35 listp -> next = slp; 36 } 37 38 bool 39 onlist( listp , funcname ) 40 struct stringlist *listp; 41 char *funcname; 42 { 43 struct stringlist *slp; 44 45 for ( slp = listp -> next ; slp ; slp = slp -> next ) { 46 if ( ! strcmp( slp -> string , funcname ) ) { 47 return TRUE; 48 } 49 if ( funcname[0] == '_' && ! strcmp( slp -> string , &funcname[1] ) ) { 50 return TRUE; 51 } 52 } 53 return FALSE; 54 } 55