110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/**
210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @file daemon/oprofiled.h
310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Initialisation and setup
410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project *
510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @remark Copyright 2002, 2003 OProfile authors
610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @remark Read the file COPYING
710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project *
810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @author John Levon
910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @author Philippe Elie
1010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Modified by Aravind Menon for Xen
1110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * These modifications are:
1210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Copyright (C) 2005 Hewlett-Packard Co.
1310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */
1410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
1510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#ifndef OPROFILED_H
1610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
1710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#include <signal.h>
1810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
1910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectstruct oprofiled_ops {
2010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project	void (*init)(void);
2110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project	void (*start)(void);
2210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project	void (*exit)(void);
2310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project};
2410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
2510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
2610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/**
2710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * opd_open_logfile - open the log file
2810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project *
2910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Open the logfile on stdout and stderr. This function
3010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * assumes that 1 and 2 are the lowest close()d file
3110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * descriptors. Failure to open on either descriptor is
3210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * a fatal error.
3310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */
3410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectvoid opd_open_logfile(void);
3510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
3610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
3710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/**
3810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * is_image_ignored - check if we must ignore this image
3910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @param name the name to check
4010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project *
4110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Return true if the image should not be profiled
4210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */
4310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectint is_image_ignored(char const * name);
4410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
4510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** return the int in the given oprofilefs file, error is fatal if !is_fatal */
4610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectint opd_read_fs_int(char const * path, char const * name, int is_fatal);
4710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
4810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
4910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** global variable positioned by signal handler */
5010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern sig_atomic_t signal_alarm;
5110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern sig_atomic_t signal_hup;
5210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern sig_atomic_t signal_term;
5310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern sig_atomic_t signal_child;
5410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern sig_atomic_t signal_usr1;
5510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern sig_atomic_t signal_usr2;
5610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
5710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern unsigned int op_nr_counters;
5810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern int separate_lib;
5910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern int separate_kernel;
6010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern int separate_thread;
6110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern int separate_cpu;
6210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern int no_vmlinux;
6310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern char * vmlinux;
6410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern char * kernel_range;
6510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern int no_xen;
6610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern char * xenimage;
6710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern char * xen_range;
6810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
6910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#endif /* OPROFILED_H */
70