/*===-- Profiling.h - Profiling support library support routines ----------===*\
|*
|*                     The LLVM Compiler Infrastructure
|*
|* This file is distributed under the University of Illinois Open Source
|* License. See LICENSE.TXT for details.
|*
|*===----------------------------------------------------------------------===*|
|*
|* This file defines functions shared by the various different profiling
|* implementations.
|*
\*===----------------------------------------------------------------------===*/

#ifndef PROFILING_H
#define PROFILING_H

#include "llvm/Analysis/ProfileInfoTypes.h" /* for enum ProfilingType */

/* save_arguments - Save argc and argv as passed into the program for the file
 * we output.
 */
int save_arguments(int argc, const char **argv);

/*
 * Retrieves the file descriptor for the profile file.
 */
int getOutFile();

/* write_profiling_data - Write out a typed packet of profiling data to the
 * current output file.
 */
void write_profiling_data(enum ProfilingType PT, unsigned *Start,
                          unsigned NumElements);

#endif
