#ifndef source_h #define source_h #include #include "gprof.h" #include "search_list.h" typedef struct source_file { struct source_file *next; const char *name; /* name of source file */ unsigned long ncalls; /* # of "calls" to this file */ int num_lines; /* # of lines in file */ int nalloced; /* number of lines allocated */ void **line; /* usage-dependent per-line data */ } Source_File; /* * Options: */ extern bool create_annotation_files; /* create annotated output files? */ /* * List of directories to search for source files: */ extern Search_List src_search_list; /* * Chain of source-file descriptors: */ extern Source_File *first_src_file; /* * Returns pointer to source file descriptor for PATH/FILENAME. */ extern Source_File *source_file_lookup_path PARAMS ((const char *path)); extern Source_File *source_file_lookup_name PARAMS ((const char *filename)); /* * Read source file SF output annotated source. The annotation is at * MAX_WIDTH characters wide and for each source-line an annotation is * obtained by invoking function ANNOTE. ARG is an argument passed to * ANNOTE that is left uninterpreted by annotate_source(). * * Returns a pointer to the output file (which maybe stdout) such * that summary statistics can be printed. If the returned file * is not stdout, it should be closed when done with it. */ extern FILE *annotate_source PARAMS ((Source_File * sf, int max_width, void (*annote) (char *b, int w, int l, void *arg), void *arg)); #endif /* source_h */