Thu Jun 4 11:34:02 1992 Mark Eichin (eichin at cygnus.com)
[deliverable/binutils-gdb.git] / gprof / printlist.c
1 /*
2 * Copyright (c) 1983 Regents of the University of California.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms are permitted
6 * provided that: (1) source distributions retain this entire copyright
7 * notice and comment, and (2) distributions including binaries display
8 * the following acknowledgement: ``This product includes software
9 * developed by the University of California, Berkeley and its contributors''
10 * in the documentation or other materials provided with the distribution
11 * and in all advertising materials mentioning features or use of this
12 * software. Neither the name of the University nor the names of its
13 * contributors may be used to endorse or promote products derived
14 * from this software without specific prior written permission.
15 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18 */
19
20 #ifndef lint
21 static char sccsid[] = "@(#)printlist.c 5.5 (Berkeley) 6/1/90";
22 #endif /* not lint */
23
24 #include "gprof.h"
25
26 /*
27 * these are the lists of names:
28 * there is the list head and then the listname
29 * is a pointer to the list head
30 * (for ease of passing to stringlist functions).
31 */
32 struct stringlist kfromhead = { 0 , 0 };
33 struct stringlist *kfromlist = &kfromhead;
34 struct stringlist ktohead = { 0 , 0 };
35 struct stringlist *ktolist = &ktohead;
36 struct stringlist fhead = { 0 , 0 };
37 struct stringlist *flist = &fhead;
38 struct stringlist Fhead = { 0 , 0 };
39 struct stringlist *Flist = &Fhead;
40 struct stringlist ehead = { 0 , 0 };
41 struct stringlist *elist = &ehead;
42 struct stringlist Ehead = { 0 , 0 };
43 struct stringlist *Elist = &Ehead;
44
45 addlist( listp , funcname )
46 struct stringlist *listp;
47 char *funcname;
48 {
49 struct stringlist *slp;
50
51 slp = (struct stringlist *) malloc( sizeof(struct stringlist));
52 if ( slp == (struct stringlist *) 0 ) {
53 fprintf( stderr, "gprof: ran out room for printlist\n" );
54 done();
55 }
56 slp -> next = listp -> next;
57 slp -> string = funcname;
58 listp -> next = slp;
59 }
60
61 bool
62 onlist( listp , funcname )
63 struct stringlist *listp;
64 char *funcname;
65 {
66 struct stringlist *slp;
67
68 for ( slp = listp -> next ; slp ; slp = slp -> next ) {
69 if ( ! strcmp( slp -> string , funcname ) ) {
70 return TRUE;
71 }
72 if ( funcname[0] == '_' && ! strcmp( slp -> string , &funcname[1] ) ) {
73 return TRUE;
74 }
75 }
76 return FALSE;
77 }
This page took 0.031015 seconds and 4 git commands to generate.