18cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/**
28cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @file oprof_start_util.h
38cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * Miscellaneous helpers for the GUI start
48cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
58cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Copyright 2002 OProfile authors
68cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Read the file COPYING
78cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
88cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author Philippe Elie
98cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author John Levon
108cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */
118cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
128cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#ifndef OPROF_START_UTIL_H
138cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#define OPROF_START_UTIL_H
148cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
158cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <cmath>
168cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <string>
178cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <vector>
188cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
198cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/// Store various daemon status data
208cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstruct daemon_status {
218cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	/// fill various data member according to the current daemon status
228cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	daemon_status();
238cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	bool running;			///< true if daemon is running
248cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	unsigned int nr_interrupts;	///< nr_interrupts from profiling start
258cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd};
268cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
278cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddinline double ratio(double x1, double x2)
288cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{
298cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	return fabs(((x1 - x2) / x2)) * 100;
308cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}
318cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
328cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstd::string const get_config_filename(std::string const & filename);
338cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddbool check_and_create_config_dir();
348cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstd::string const format(std::string const & orig, uint const maxlen);
358cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddint do_exec_command(std::string const & cmd, std::vector<std::string> const & args = std::vector<std::string>());
368cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstd::string const do_open_file_or_dir(std::string const & base_dir, bool dir_only);
378cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddbool verify_argument(std::string const & str);
388cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
398cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#endif // OPROF_START_UTIL_H
40