18cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/**
28cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @file opannotate_options.h
38cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * Options for opannotate tool
48cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
58cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Copyright 2003 OProfile authors
68cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Read the file COPYING
78cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
88cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author John Levon
98cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author Philippe Elie
108cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */
118cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
128cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#ifndef OPANNOTATE_OPTIONS_H
138cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#define OPANNOTATE_OPTIONS_H
148cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
158cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <string>
168cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <vector>
178cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
188cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include "common_option.h"
198cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include "path_filter.h"
208cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
218cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddclass profile_classes;
228cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
238cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddnamespace options {
248cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	extern demangle_type demangle;
258cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	extern bool source;
268cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	extern bool assembly;
278cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	extern string_filter symbol_filter;
288cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	extern path_filter file_filter;
298cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	extern std::string output_dir;
308cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	extern std::vector<std::string> search_dirs;
318cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	extern std::vector<std::string> base_dirs;
328cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	extern std::vector<std::string> objdump_params;
338cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	extern double threshold;
348cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}
358cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
368cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/// classes of sample filenames to handle
378cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddextern profile_classes classes;
388cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
398cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/**
408cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * handle_options - process command line
418cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @param spec  profile specification
428cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
438cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * Process the spec, fatally complaining on error.
448cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */
458cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddvoid handle_options(options::spec const & spec);
468cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
478cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#endif // OPANNOTATE_OPTIONS_H
48