WIP FPC-III support
[linux/fpc-iii.git] / tools / perf / scripts / perl / Perf-Trace-Util / lib / Perf / Trace / Util.pm
blob053500114625515d7745757178274e097c0d6aa2
1 package Perf::Trace::Util;
3 use 5.010000;
4 use strict;
5 use warnings;
7 require Exporter;
9 our @ISA = qw(Exporter);
11 our %EXPORT_TAGS = ( 'all' => [ qw(
12 ) ] );
14 our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
16 our @EXPORT = qw(
17 avg nsecs nsecs_secs nsecs_nsecs nsecs_usecs print_nsecs
18 clear_term
21 our $VERSION = '0.01';
23 sub avg
25 my ($total, $n) = @_;
27 return $total / $n;
30 my $NSECS_PER_SEC = 1000000000;
32 sub nsecs
34 my ($secs, $nsecs) = @_;
36 return $secs * $NSECS_PER_SEC + $nsecs;
39 sub nsecs_secs {
40 my ($nsecs) = @_;
42 return $nsecs / $NSECS_PER_SEC;
45 sub nsecs_nsecs {
46 my ($nsecs) = @_;
48 return $nsecs % $NSECS_PER_SEC;
51 sub nsecs_str {
52 my ($nsecs) = @_;
54 my $str = sprintf("%5u.%09u", nsecs_secs($nsecs), nsecs_nsecs($nsecs));
56 return $str;
59 sub clear_term
61 print "\x1b[H\x1b[2J";
65 __END__
66 =head1 NAME
68 Perf::Trace::Util - Perl extension for perf script
70 =head1 SYNOPSIS
72 use Perf::Trace::Util;
74 =head1 SEE ALSO
76 Perf (script) documentation
78 =head1 AUTHOR
80 Tom Zanussi, E<lt>tzanussi@gmail.com<gt>
82 =head1 COPYRIGHT AND LICENSE
84 Copyright (C) 2009 by Tom Zanussi
86 This library is free software; you can redistribute it and/or modify
87 it under the same terms as Perl itself, either Perl version 5.10.0 or,
88 at your option, any later version of Perl 5 you may have available.
90 Alternatively, this software may be distributed under the terms of the
91 GNU General Public License ("GPL") version 2 as published by the Free
92 Software Foundation.
94 =cut