with Type_Definitions;
use Type_Definitions;

-------------------
package Profile_Pkg is
    -------------------

    -----------------
    procedure Profile ( --| Performance Analyzer report generator

                       Log_File_Name : in
                       Filename;       --| The name of the log file

                       Report_File_Name : in
                          Filename);  --| The name of Output report file


    --| Overview
    --| Profile is the Report Generator for the Ada Performance Analyzer
    --| Its purpose is to report execution timing and performance
    --| information about computer programs written in the Ada language that
    --| have been instrumented by the Ada Source Instrumenter. Execution data
    --| is dynamically recorded at runtime by the instrumented program in an
    --| Execution Log File (ELF). Profile reads the information recorded in
    --| the ELF and prepares a summarizes it in a meaningful format.
    --|
    --| The report file generated by Profile contains three reports:
    --|
    --|   1) Test Configuration Report
    --|      This report includes information necessary to correlate the
    --|      report with a specific test or execution of the target
    --|      Ada program. Specifically,
    --|        - the name of the program being analyzed
    --|        - the date and time the log file was created
    --|        - the name of the log file
    --|        - the date and time the report was created
    --|        - a test ID specified by the user
    --|
    --|   2) Net Execution Time Report
    --|      This report includes the "net" time spent in each program unit.
    --|      The time reported for each unit  does not include time spent in
    --|      other program units called by that unit if they have been
    --|      instrumented by the Source Instrumenter.
    --|
    --|   3) Cumulative Execution Time Report
    --|      This report includes the "cumulative" time spent in each program
    --|      unit. The time reported for each unit includes all time spent in
    --|      that unit and all other program units called by that unit whether
    --|      or not the other program units have been instrumented by the
    --|      Source Instrumenter.
    --|
    --|   4) Call Summary Report
    --|      The Call Summary Report reports the number of units called by
    --|      each program unit that was executed.
    --|
    --| Each of the reports includes the following information about each
    --| program unit:
    --|
    --|   1) Compilation unit name
    --|
    --|   2) Program unit name
    --|
    --|   3) Program unit number - a unique ID assigned to each program unit
    --|      by the Source Instrumenter to allow for overloaded procedure
    --|      names. The same program unit number is printed in the listing
    --|      file generated by the Source Instrumenter.
    --|
    --|   4) The program unit type: Procedure, Function, Task, or Generic.
    --|
    --|   5) The total number of times the unit was executed.
    --|
    --|   6) The maximum, minimum, and average execution times for
    --|      a single execution of the unit
    --|
    --|   7) The total accumulated execution time for all executions
    --|      of the unit.
    --|
    --|   8) The percentage of the program's total execution time
    --|      spent in the unit.

    --| Requires
    --| Each Ada program unit about which information is to be recorded
    --| by ProfileM, the Performance Analyzer Runtime Monitor (RTM), and
    --| to be reported by ProfileR must have been instrumented by the Ada
    --| Source Instrumenter prior to compilation, linking, and execution.
    --| An Ada program unit is a procedure, function, task, or generic.

    --| N/A:  Errors, Raises, Modifies

    --  Version         : 1.0
    --  Last Modified   : 07/08/85
    --  Author          : Jeff England
    --  Initial Release : 02/08/85


end Profile_Pkg;