Merge branch 'x86-mrst-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / tools / perf / scripts / perl / Perf-Trace-Util / lib / Perf / Trace / Util.pm
1 package Perf::Trace::Util;
2
3 use 5.010000;
4 use strict;
5 use warnings;
6
7 require Exporter;
8
9 our @ISA = qw(Exporter);
10
11 our %EXPORT_TAGS = ( 'all' => [ qw(
12 ) ] );
13
14 our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
15
16 our @EXPORT = qw(
17 avg nsecs nsecs_secs nsecs_nsecs nsecs_usecs print_nsecs
18 clear_term
19 );
20
21 our $VERSION = '0.01';
22
23 sub avg
24 {
25     my ($total, $n) = @_;
26
27     return $total / $n;
28 }
29
30 my $NSECS_PER_SEC    = 1000000000;
31
32 sub nsecs
33 {
34     my ($secs, $nsecs) = @_;
35
36     return $secs * $NSECS_PER_SEC + $nsecs;
37 }
38
39 sub nsecs_secs {
40     my ($nsecs) = @_;
41
42     return $nsecs / $NSECS_PER_SEC;
43 }
44
45 sub nsecs_nsecs {
46     my ($nsecs) = @_;
47
48     return $nsecs % $NSECS_PER_SEC;
49 }
50
51 sub nsecs_str {
52     my ($nsecs) = @_;
53
54     my $str = sprintf("%5u.%09u", nsecs_secs($nsecs), nsecs_nsecs($nsecs));
55
56     return $str;
57 }
58
59 sub clear_term
60 {
61     print "\x1b[H\x1b[2J";
62 }
63
64 1;
65 __END__
66 =head1 NAME
67
68 Perf::Trace::Util - Perl extension for perf trace
69
70 =head1 SYNOPSIS
71
72   use Perf::Trace::Util;
73
74 =head1 SEE ALSO
75
76 Perf (trace) documentation
77
78 =head1 AUTHOR
79
80 Tom Zanussi, E<lt>tzanussi@gmail.com<gt>
81
82 =head1 COPYRIGHT AND LICENSE
83
84 Copyright (C) 2009 by Tom Zanussi
85
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.
89
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.
93
94 =cut