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