perf python scripting: Support fedora 11 (audit 1.7.17)
[linux-2.6/libata-dev.git] / tools / perf / scripts / python / Perf-Trace-Util / lib / Perf / Trace / Util.py
blob99ff1b7a0d2c5d3e6fd585350464f7f6cd969249
1 # Util.py - Python extension for perf trace, miscellaneous utility code
3 # Copyright (C) 2010 by Tom Zanussi <tzanussi@gmail.com>
5 # This software may be distributed under the terms of the GNU General
6 # Public License ("GPL") version 2 as published by the Free Software
7 # Foundation.
9 import errno, os
11 NSECS_PER_SEC = 1000000000
13 def avg(total, n):
14 return total / n
16 def nsecs(secs, nsecs):
17 return secs * NSECS_PER_SEC + nsecs
19 def nsecs_secs(nsecs):
20 return nsecs / NSECS_PER_SEC
22 def nsecs_nsecs(nsecs):
23 return nsecs % NSECS_PER_SEC
25 def nsecs_str(nsecs):
26 str = "%5u.%09u" % (nsecs_secs(nsecs), nsecs_nsecs(nsecs)),
27 return str
29 def clear_term():
30 print("\x1b[H\x1b[2J")
32 audit_package_warned = False
34 try:
35 import audit
36 machine_to_id = {
37 'x86_64': audit.MACH_86_64,
38 'alpha' : audit.MACH_ALPHA,
39 'ia64' : audit.MACH_IA64,
40 'ppc' : audit.MACH_PPC,
41 'ppc64' : audit.MACH_PPC64,
42 's390' : audit.MACH_S390,
43 's390x' : audit.MACH_S390X,
44 'i386' : audit.MACH_X86,
45 'i586' : audit.MACH_X86,
46 'i686' : audit.MACH_X86,
48 try:
49 machine_to_id['armeb'] = audit.MACH_ARMEB
50 except:
51 pass
52 machine_id = machine_to_id[os.uname()[4]]
53 except:
54 if not audit_package_warned:
55 audit_package_warned = True
56 print "Install the audit-libs-python package to get syscall names"
58 def syscall_name(id):
59 try:
60 return audit.audit_syscall_to_name(id, machine_id)
61 except:
62 return str(id)
64 def strerror(nr):
65 try:
66 return errno.errorcode[abs(nr)]
67 except:
68 return "Unknown %d errno" % nr