Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Overholt2011-02-28 03:53:33 +0000
committerAndrew Overholt2011-02-28 03:54:00 +0000
commitda6e2347941a139ff6d0933ad5dbf3e474f93886 (patch)
treebb7c8866a298fa07e35f60e5e83c050f4e10d19c
parent5f8240be78afe800cf95b83e477ef5e872d57ba8 (diff)
parent1503d4738ec76f5f93c301a421c2236dfee7a42a (diff)
downloadorg.eclipse.linuxtools-da6e2347941a139ff6d0933ad5dbf3e474f93886.tar.gz
org.eclipse.linuxtools-da6e2347941a139ff6d0933ad5dbf3e474f93886.tar.xz
org.eclipse.linuxtools-da6e2347941a139ff6d0933ad5dbf3e474f93886.zip
Merge all 0.6.0 tagsv0.6.0
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/common/DataRequestQueue.java246
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/common/UiCommonFactory.java42
-rw-r--r--man/org.eclipse.linuxtools.man-feature/.project (renamed from systemtap/org.eclipse.linuxtools.systemtap.local-feature/.project)2
-rw-r--r--man/org.eclipse.linuxtools.man-feature/ChangeLog19
-rw-r--r--man/org.eclipse.linuxtools.man-feature/build.properties4
-rw-r--r--man/org.eclipse.linuxtools.man-feature/epl-v10.html (renamed from systemtap/org.eclipse.linuxtools.systemtap.local-feature/epl-v10.html)0
-rw-r--r--man/org.eclipse.linuxtools.man-feature/feature.properties155
-rw-r--r--man/org.eclipse.linuxtools.man-feature/feature.xml27
-rw-r--r--man/org.eclipse.linuxtools.man-feature/license.html107
-rw-r--r--man/org.eclipse.linuxtools.man/.classpath (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/.classpath)2
-rw-r--r--man/org.eclipse.linuxtools.man/.project (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/.project)15
-rw-r--r--man/org.eclipse.linuxtools.man/.settings/.api_filters11
-rw-r--r--man/org.eclipse.linuxtools.man/.settings/org.eclipse.jdt.core.prefs355
-rw-r--r--man/org.eclipse.linuxtools.man/.settings/org.eclipse.jdt.ui.prefs60
-rw-r--r--man/org.eclipse.linuxtools.man/ChangeLog22
-rw-r--r--man/org.eclipse.linuxtools.man/META-INF/MANIFEST.MF15
-rw-r--r--man/org.eclipse.linuxtools.man/build.properties (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/build.properties)1
-rw-r--r--man/org.eclipse.linuxtools.man/icons/sample.gif (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/icons/sample.gif)bin983 -> 983 bytes
-rw-r--r--man/org.eclipse.linuxtools.man/plugin.xml32
-rw-r--r--man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/Activator.java62
-rw-r--r--man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/parser/ManDocument.java69
-rw-r--r--man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/parser/ManPage.java88
-rw-r--r--man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/parser/ManParser.java73
-rw-r--r--man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/preferences/ManPathPage.java55
-rw-r--r--man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/preferences/PreferenceConstants.java23
-rw-r--r--man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/preferences/PreferenceInitializer.java34
-rw-r--r--man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/views/ManTextViewer.java60
-rw-r--r--man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/views/ManView.java60
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile-feature/.project (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.tests-feature/.project)2
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile-feature/ChangeLog54
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile-feature/build.properties9
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile-feature/epl-v10.html (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.tests-feature/epl-v10.html)0
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile-feature/feature.properties138
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile-feature/feature.xml101
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile-feature/license.html107
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/.classpath (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.core/.classpath)2
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/.project (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/.project)2
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/.svnignore (renamed from rpm/.cvsignore)0
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/META-INF/MANIFEST.MF12
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/about.html28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/build.properties15
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/fragment.properties12
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/fragment.xml11
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/src/org/eclipse/linuxtools/oprofile/core/linux/ppc/LinuxOpxmlProviderPPC.java46
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.classpath (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/.classpath)2
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.project28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.svnignore1
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/META-INF/MANIFEST.MF11
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/about.html28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/build.properties15
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/fragment.properties12
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/fragment.xml11
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/src/org/eclipse/linuxtools/oprofile/core/linux/x86/LinuxOpxmlProvider32.java47
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.classpath (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/.classpath)2
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.project28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.svnignore1
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/META-INF/MANIFEST.MF11
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/about.html28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/build.properties15
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/fragment.properties12
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/fragment.xml11
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/src/org/eclipse/linuxtools/oprofile/core/linux/x86_64/LinuxOpxmlProvider64.java46
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/.classpath7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/.project (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.core/.project)2
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/.svnignore1
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/ChangeLog9
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/META-INF/MANIFEST.MF22
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/build.properties14
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/plugin.properties12
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_invalid_counter.xml4
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_invalid_event.xml4
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_invalid_umask.xml4
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_ok.xml4
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_info.xml140
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_info_0ctrs.xml4
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_model-data.xml77
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_model-data_multiple_image.xml217
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_sessions.xml18
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/AllCoreTests.java (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/src/org/eclipse/linuxtools/systemtap/local/callgraph/tests/AllTests.java)27
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/CoreTestsPlugin.java60
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestCheckEventsParse.java73
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestDataModel.java61
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestInfoParse.java418
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestModelDataParse.java180
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestSessionsParse.java115
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core.tests/test.xml (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/test.xml)16
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/.classpath7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/.project (renamed from rpm/.project)2
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/.settings/org.eclipse.jdt.core.prefs (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/.settings/org.eclipse.jdt.core.prefs)8
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/.svnignore1
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/ChangeLog21
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/META-INF/MANIFEST.MF21
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/README23
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/about.html28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/build.properties19
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/.svnignore15
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/Makefile78
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/README8
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/imageheader.cc35
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/imageheader.h48
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/move_opxml.sh27
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/opinfo.cc225
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/opinfo.h118
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/oprofiledb.cc160
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/oprofiledb.h92
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/opxml.cc495
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/oxmlstream.h27
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/profileimage.cc341
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/profileimage.h106
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sample.cc57
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sample.h78
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/samplefile.cc248
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/samplefile.h140
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/session.cc203
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/session.h59
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sevent.cc105
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sevent.h63
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/stable.cc294
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/stable.h87
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/symbol.cc85
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/symbol.h97
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/xmlbuf.cc101
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/xmlbuf.h62
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/xmlfmt.cc79
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/xmlfmt.h52
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/xmltag.cc157
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/xmltag.h101
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/scripts/.svnignore2
-rwxr-xr-xoprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/scripts/install-noconsolehelper.sh53
-rwxr-xr-xoprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/scripts/install.sh71
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/scripts/opcontrol-wrapper.pamd9
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/scripts/opcontrol-wrapper.security3
-rwxr-xr-xoprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/scripts/uninstall-noconsolehelper.sh23
-rwxr-xr-xoprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/scripts/uninstall.sh22
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/plugin.properties12
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/plugin.xml6
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/schema/OpxmlProvider.exsd70
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/IOpcontrolProvider.java85
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/IOpxmlProvider.java62
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/OpcontrolException.java24
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/Oprofile.java225
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/OprofileCorePlugin.java177
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/OprofileProperties.java (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/Messages.java)19
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/OpxmlException.java33
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/daemon/OpEvent.java118
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/daemon/OpInfo.java214
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/daemon/OpUnitMask.java244
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/daemon/OprofileDaemonEvent.java118
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/daemon/OprofileDaemonOptions.java141
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/linux/LinuxOpcontrolProvider.java343
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/linux/LinuxOpxmlProvider.java124
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/linux/OpxmlRunner.java105
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/model/OpModelEvent.java66
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/model/OpModelImage.java140
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/model/OpModelRoot.java78
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/model/OpModelSample.java48
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/model/OpModelSession.java85
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/model/OpModelSymbol.java84
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/oprofile.properties49
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/opxml/OprofileSAXHandler.java184
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/opxml/OpxmlConstants.java43
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/opxml/XMLProcessor.java79
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/opxml/checkevent/CheckEventsProcessor.java63
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/opxml/info/DefaultsProcessor.java50
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/opxml/info/EventListProcessor.java241
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/opxml/info/OpInfoProcessor.java80
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/opxml/modeldata/DependentProcessor.java75
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/opxml/modeldata/ModelDataProcessor.java92
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/opxml/modeldata/SamplesProcessor.java63
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/opxml/modeldata/SymbolsProcessor.java80
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/oprofile/core/opxml/sessions/SessionsProcessor.java89
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/.classpath7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/.project (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.launch/.project)2
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/ChangeLog44
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/META-INF/MANIFEST.MF11
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/about.html28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/build-helper.xml151
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/build.properties19
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/doc/notices.html22
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/extract-markup.xsl9
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/plugin.properties2
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/plugin.xml19
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/src/org/eclipse/linuxtools/internal/oprofile/doc/anttask/MediaWikiImageFetcher.java149
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/src/org/eclipse/linuxtools/internal/oprofile/doc/anttask/tasks.properties1
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/toc.xml7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/Example-Project.html63
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/Installation-and-Set-Up.html156
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/Launching-A-Profile.html93
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/OProfile Reference-toc.xml46
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/OProfile Reference.html53
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/OProfile Reference.xml959
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/OProfile-View.html148
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/Profiling-Configuration.html227
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/Troubleshooting.html278
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/Updating-This-Document.html54
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Icon-oprofile_dependent.gifbin0 -> 364 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Icon-oprofile_event.gifbin0 -> 617 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Icon-oprofile_image.gifbin0 -> 357 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Icon-oprofile_sample.gifbin0 -> 561 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Icon-oprofile_session.gifbin0 -> 372 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Icon-oprofile_symbol.gifbin0 -> 89 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/LinuxTools-0.2.0-OProfile-Screenshot.pngbin0 -> 69827 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Oprofile_manual_dialog.pngbin0 -> 12126 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Oprofile_manual_shortcut.pngbin0 -> 9436 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Screenshot-global_config.pngbin0 -> 46090 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Screenshot-installscript_error_dialog.pngbin0 -> 126665 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Screenshot-one-click_launch.pngbin0 -> 93518 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Screenshot-opcontrol_consolehelper.pngbin0 -> 18444 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Screenshot-oprofile_event_timer.pngbin0 -> 37908 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Screenshot-oprofile_eventconfig.pngbin0 -> 66787 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Screenshot-oprofile_global_differences.pngbin0 -> 52748 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Screenshot-oprofile_save_session.pngbin0 -> 8805 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Screenshot-oprofile_view_full.pngbin0 -> 40368 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.doc/userguide/images/Screenshot-oprofiled_log_reader.pngbin0 -> 35457 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/.classpath7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/.project28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/.svnignore1
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/META-INF/MANIFEST.MF26
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/build.properties13
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/plugin.properties12
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/resources/primeTest/.cproject (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/basicTest/.cproject)92
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/resources/primeTest/.project (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/basicTest/.project)8
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/resources/primeTest/primeTest.c36
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/resources/sleepTest/.cproject (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.cproject)433
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/resources/sleepTest/.project (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.project)5
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/resources/sleepTest/sleepTest.c6
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/src/org/eclipse/linuxtools/oprofile/launch/tests/AllLaunchTests.java32
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/src/org/eclipse/linuxtools/oprofile/launch/tests/LaunchTestsPlugin.java (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/src/org/eclipse/linuxtools/systemtap/local/launch/tests/Activator.java)54
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/src/org/eclipse/linuxtools/oprofile/launch/tests/TestDummy.java (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/CallGraphConstants.java)22
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/src/org/eclipse/linuxtools/oprofile/launch/tests/TestLaunching.java140
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/src/org/eclipse/linuxtools/oprofile/launch/tests/TestManualLaunching.java140
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/src/org/eclipse/linuxtools/oprofile/launch/tests/TestSetup.java151
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch.tests/test.xml (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/test.xml)16
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/.classpath7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/.project28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/.svnignore1
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/META-INF/MANIFEST.MF30
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/about.html28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/build.properties15
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/icons/event_tab.gifbin0 -> 617 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/icons/global_tab.gifbin0 -> 362 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/icons/profile_manual_run.pngbin0 -> 720 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/icons/profile_run.pngbin0 -> 604 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/plugin.properties27
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/plugin.xml129
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/oprofile/launch/OprofileLaunchMessages.java (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/Messages.java)18
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/oprofile/launch/OprofileLaunchPlugin.java115
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/oprofile/launch/configuration/EventConfigCache.java91
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/oprofile/launch/configuration/LaunchOptions.java129
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/oprofile/launch/configuration/OprofileCounter.java253
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/oprofile/launch/configuration/OprofileEventConfigTab.java800
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/oprofile/launch/configuration/OprofileLaunchConfigurationTabGroup.java (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/SystemTapLaunchConfigurationTabGroup.java)27
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/oprofile/launch/configuration/OprofileSetupTab.java280
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/oprofile/launch/launching/AbstractOprofileLaunchConfigurationDelegate.java189
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/oprofile/launch/launching/OprofileLaunchConfigurationDelegate.java98
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/oprofile/launch/launching/OprofileLaunchShortcut.java64
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/oprofile/launch/launching/OprofileManualLaunchConfigurationDelegate.java296
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/oprofile/launch/launching/OprofileManualLaunchShortcut.java62
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/oprofile/launch/oprofilelaunch.properties68
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.test-feature/.project17
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.test-feature/ChangeLog18
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.test-feature/build.properties9
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.test-feature/epl-v10.html256
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.test-feature/feature.properties138
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.test-feature/feature.xml60
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.test-feature/license.html107
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/.classpath7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/.project28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/.svnignore1
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/META-INF/MANIFEST.MF15
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/build.properties11
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/plugin.properties12
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/resources/test_model-data.xml77
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/resources/test_model-data_multiple_image.xml217
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/resources/test_model-data_nodepimage.xml39
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/src/org/eclipse/linuxtools/oprofile/tests/TestPlugin.java64
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/src/org/eclipse/linuxtools/oprofile/tests/TestingOpModelRoot.java38
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/src/org/eclipse/linuxtools/oprofile/tests/TestingOpModelSession.java74
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/src/org/eclipse/linuxtools/oprofile/tests/TestingOpModelSession2.java74
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/src/org/eclipse/linuxtools/oprofile/tests/TestingOpModelSession3.java73
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.tests/src/org/eclipse/linuxtools/oprofile/tests/TestingOpModelSession4.java30
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui.tests/.classpath7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui.tests/.project28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui.tests/.svnignore1
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui.tests/META-INF/MANIFEST.MF17
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui.tests/build.properties11
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui.tests/plugin.properties12
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui.tests/src/org/eclipse/linuxtools/oprofile/ui/tests/AllUiTests.java26
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui.tests/src/org/eclipse/linuxtools/oprofile/ui/tests/TestUiDataModel.java678
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui.tests/src/org/eclipse/linuxtools/oprofile/ui/tests/UiTestsPlugin.java (renamed from systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/Activator.java)53
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui.tests/test.xml54
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/.classpath7
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/.project28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/.svnignore1
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/META-INF/MANIFEST.MF33
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/about.html28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/build.properties15
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/icons/annotate.pngbin0 -> 450 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/icons/dependent.gifbin0 -> 364 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/icons/dump.gifbin0 -> 245 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/icons/error.pngbin0 -> 378 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/icons/event.gifbin0 -> 617 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/icons/image.gifbin0 -> 357 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/icons/oprofile_view.pngbin0 -> 604 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/icons/sample.gifbin0 -> 561 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/icons/session.gifbin0 -> 372 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/icons/symbol.gifbin0 -> 89 bytes
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/plugin.properties28
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/plugin.xml19
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/OprofileUiMessages.java (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/actions/Messages.java)33
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/OprofileUiPlugin.java142
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/IUiModelElement.java49
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelDependent.java70
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelError.java46
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelEvent.java71
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelImage.java96
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelRoot.java91
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelSample.java65
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelSession.java89
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelSymbol.java96
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/oprofileui.properties41
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/view/OprofileView.java138
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/view/OprofileViewContentProvider.java51
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/view/OprofileViewDoubleClickListener.java134
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/view/OprofileViewLabelProvider.java51
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/view/OprofileViewLogReaderAction.java142
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/view/OprofileViewRefreshAction.java29
-rw-r--r--oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/view/OprofileViewSaveDefaultSessionAction.java127
-rw-r--r--profiling/org.eclipse.linuxtools.profiling.launch/about.html28
-rw-r--r--profiling/org.eclipse.linuxtools.profiling.ui/about.html28
-rw-r--r--releng/org.eclipse.linuxtools.all/.project17
-rw-r--r--releng/org.eclipse.linuxtools.all/ChangeLog96
-rw-r--r--releng/org.eclipse.linuxtools.all/build.properties (renamed from systemtap/org.eclipse.linuxtools.systemtap.local-feature/build.properties)3
-rw-r--r--releng/org.eclipse.linuxtools.all/epl-v10.html320
-rw-r--r--releng/org.eclipse.linuxtools.all/feature.properties138
-rw-r--r--releng/org.eclipse.linuxtools.all/feature.xml92
-rw-r--r--releng/org.eclipse.linuxtools.all/license.html107
-rw-r--r--releng/org.eclipse.linuxtools.releng/.project11
-rw-r--r--releng/org.eclipse.linuxtools.releng/ChangeLog411
-rw-r--r--releng/org.eclipse.linuxtools.releng/README.txt30
-rwxr-xr-xreleng/org.eclipse.linuxtools.releng/build.properties56
-rwxr-xr-xreleng/org.eclipse.linuxtools.releng/build.properties.linux55
-rwxr-xr-xreleng/org.eclipse.linuxtools.releng/build.xml55
-rw-r--r--releng/org.eclipse.linuxtools.releng/buildExtra.xml30
-rw-r--r--releng/org.eclipse.linuxtools.releng/category.xml62
-rw-r--r--releng/org.eclipse.linuxtools.releng/maps/linuxtools.map148
-rw-r--r--releng/org.eclipse.linuxtools.releng/org.eclipse.linuxtools.releng build.xml.launch22
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/athena.psf7
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/autotools.psf12
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/callgraph.psf12
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/changelog.psf10
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/eclipse-build.psf8
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/gcov.psf10
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/gprof.psf10
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/libhover.psf12
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/linuxtools.psf155
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/linuxtoolswebsite.psf6
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/lttng.psf19
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/manviewer.psf7
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/oprofile.psf25
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/oprofiledocs.psf10
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/rpm-editor.psf14
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/rpmstubby.psf7
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/systemtap.psf20
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/valgrind-tests.psf12
-rw-r--r--releng/org.eclipse.linuxtools.releng/psfs/valgrind.psf38
-rw-r--r--releng/org.eclipse.linuxtools.releng/testExtra.xml34
-rwxr-xr-xreleng/org.eclipse.linuxtools.releng/testManifest.xml32
-rw-r--r--releng/org.eclipse.linuxtools.releng/testing.properties22
-rwxr-xr-xreleng/org.eclipse.linuxtools.releng/tools/index.php116
-rw-r--r--releng/org.eclipse.linuxtools.releng/tools/linuxtools_build.eclipse.org_hudson.sh80
-rw-r--r--releng/org.eclipse.linuxtools.releng/tools/linuxtoolsupdatesite-galileo.sh42
-rwxr-xr-xreleng/org.eclipse.linuxtools.releng/tools/linuxtoolsupdatesite-helios.sh38
-rwxr-xr-xreleng/org.eclipse.linuxtools.releng/tools/localSourceSetup.sh59
-rw-r--r--releng/org.eclipse.linuxtools.test-feature/.project17
-rw-r--r--releng/org.eclipse.linuxtools.test-feature/ChangeLog51
-rw-r--r--releng/org.eclipse.linuxtools.test-feature/build.properties4
-rw-r--r--releng/org.eclipse.linuxtools.test-feature/epl-v10.html256
-rw-r--r--releng/org.eclipse.linuxtools.test-feature/feature.properties138
-rw-r--r--releng/org.eclipse.linuxtools.test-feature/feature.xml96
-rw-r--r--releng/org.eclipse.linuxtools.test-feature/license.html107
-rw-r--r--releng/org.eclipse.linuxtools.tests/.classpath7
-rw-r--r--releng/org.eclipse.linuxtools.tests/.project28
-rw-r--r--releng/org.eclipse.linuxtools.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--releng/org.eclipse.linuxtools.tests/ChangeLog25
-rw-r--r--releng/org.eclipse.linuxtools.tests/META-INF/MANIFEST.MF13
-rw-r--r--releng/org.eclipse.linuxtools.tests/build.properties6
-rw-r--r--releng/org.eclipse.linuxtools.tests/plugin.properties12
-rw-r--r--releng/org.eclipse.linuxtools.tests/src/org/eclipse/linuxtools/tests/Activator.java (renamed from rpm/src/org/eclipse/linuxtools/rpm/ui/editor/Activator.java)29
-rw-r--r--releng/org.eclipse.linuxtools.tests/test.xml84
-rw-r--r--releng/org.eclipse.linuxtools.updatesite/.project17
-rw-r--r--releng/org.eclipse.linuxtools.updatesite/ChangeLog9
-rw-r--r--releng/org.eclipse.linuxtools.updatesite/updates-nightly/site.xml42
-rw-r--r--releng/org.eclipse.linuxtools.updatesite/updates/associateSites.xml4
-rw-r--r--releng/org.eclipse.linuxtools.updatesite/updates/site.xml17
-rw-r--r--rpm/.classpath7
-rw-r--r--rpm/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--rpm/.settings/org.eclipse.jdt.ui.prefs3
-rw-r--r--rpm/ChangeLog541
-rw-r--r--rpm/META-INF/MANIFEST.MF21
-rw-r--r--rpm/icons/changelog.gifbin983 -> 0 bytes
-rw-r--r--rpm/icons/rpm.gifbin1019 -> 0 bytes
-rw-r--r--rpm/plugin.xml60
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/AuthorEmailRule.java126
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/ColorManager.java28
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/ISpecfileColorConstants.java20
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/IStrictWordDetector.java7
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/KeywordWordDetector.java17
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/MacroWordDetector.java17
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/NonRuleBasedDamagerRepairer.java138
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/PatchNumberDetector.java18
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SectionRule.java129
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileChangelogScanner.java62
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileConfiguration.java107
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileDocumentProvider.java21
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileDoubleClickStrategy.java112
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileEditor.java117
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileErrorHandler.java83
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileHover.java185
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfilePartitionScanner.java55
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfilePartitioner.java45
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileReconcilingStrategy.java50
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileScanner.java102
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileTagScanner.java25
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileWhitespaceDetector.java10
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/StringWithEndingRule.java94
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SuffixNumberDetector.java18
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/TagRule.java31
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/TagWordDetector.java16
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/VersionReleaseRule.java155
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/actions/SpecfileChangelogAction.java182
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/actions/SpecfileChangelogFormatter.java166
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/actions/SpecfileChangelogParser.java22
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/actions/SpecfileEditorOrganizePatchesActionDelegate.java32
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/outline/SpecfileContentOutlinePage.java97
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/outline/SpecfileContentProvider.java106
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/outline/SpecfileLabelProvider.java57
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SourceComparator.java20
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/Specfile.java249
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileDefine.java13
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileElement.java86
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileMacro.java5
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfilePackage.java65
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfilePackageContainer.java86
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileParseException.java49
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileParser.java491
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfilePatchMacro.java27
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfilePreamble.java5
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileSection.java34
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileSource.java102
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileTag.java64
-rw-r--r--rpmstubby/org.eclipse.linuxtools.rpmstubby-feature/ChangeLog19
-rw-r--r--rpmstubby/org.eclipse.linuxtools.rpmstubby-feature/feature.properties131
-rw-r--r--rpmstubby/org.eclipse.linuxtools.rpmstubby-feature/license.html102
-rw-r--r--rpmstubby/org.eclipse.linuxtools.rpmstubby/ChangeLog30
-rw-r--r--rpmstubby/org.eclipse.linuxtools.rpmstubby/plugin.properties2
-rw-r--r--rpmstubby/org.eclipse.linuxtools.rpmstubby/plugin.xml2
-rw-r--r--rpmstubby/org.eclipse.linuxtools.rpmstubby/src/org/eclipse/linuxtools/rpmstubby/StubbyGenerator.java55
-rw-r--r--rpmstubby/org.eclipse.linuxtools.rpmstubby/src/org/eclipse/linuxtools/rpmstubby/StubbyPomGenerator.java23
-rw-r--r--rpmstubby/org.eclipse.linuxtools.rpmstubby/src/org/eclipse/linuxtools/rpmstubby/model/PomModel.java9
-rw-r--r--rpmstubby/org.eclipse.linuxtools.rpmstubby/src/org/eclipse/linuxtools/rpmstubby/preferences/PreferenceConstants.java2
-rw-r--r--rpmstubby/org.eclipse.linuxtools.rpmstubby/src/org/eclipse/linuxtools/rpmstubby/preferences/PreferenceInitializer.java5
-rw-r--r--rpmstubby/org.eclipse.linuxtools.rpmstubby/src/org/eclipse/linuxtools/rpmstubby/preferences/StubbyPreferencePage.java2
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph-feature/ChangeLog23
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph-feature/build.properties3
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph-feature/feature.properties132
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph-feature/feature.xml5
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph-feature/license.html107
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/ChangeLog239
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/META-INF/MANIFEST.MF18
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/about.html26
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/build.properties9
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/errors.prop9
-rwxr-xr-xsystemtap/org.eclipse.linuxtools.callgraph.core/install.sh2
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/parse_function_mark_partial.stp122
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/parse_function_partial.stp24
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/plugin.properties7
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/plugin.xml28
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/schema/org.eclipse.linuxtools.callgraph.core.parser.exsd24
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/src/org/eclipse/linuxtools/callgraph/core/Activator.java133
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/src/org/eclipse/linuxtools/callgraph/core/DocWriter.java68
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/src/org/eclipse/linuxtools/callgraph/core/FileFinderOpener.java133
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/src/org/eclipse/linuxtools/callgraph/core/Helper.java50
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/src/org/eclipse/linuxtools/callgraph/core/LaunchConfigurationConstants.java8
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/src/org/eclipse/linuxtools/callgraph/core/PluginConstants.java40
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/src/org/eclipse/linuxtools/callgraph/core/ShellOpener.java40
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/src/org/eclipse/linuxtools/callgraph/core/SystemTapCommandGenerator.java184
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/src/org/eclipse/linuxtools/callgraph/core/SystemTapErrorHandler.java472
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/src/org/eclipse/linuxtools/callgraph/core/SystemTapParser.java329
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/src/org/eclipse/linuxtools/callgraph/core/SystemTapTextParser.java62
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.core/src/org/eclipse/linuxtools/callgraph/core/messages.properties54
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch.tests/ChangeLog4
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch.tests/META-INF/MANIFEST.MF2
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch.tests/resources/.cproject936
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch.tests/resources/.project82
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/ChangeLog165
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/META-INF/MANIFEST.MF7
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/about.html26
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/build.properties4
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/plugin.properties16
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/plugin.xml11
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/src/org/eclipse/linuxtools/callgraph/launch/ASTTranslationUnitVisitor.java54
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/src/org/eclipse/linuxtools/callgraph/launch/Activator.java105
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/src/org/eclipse/linuxtools/callgraph/launch/ConfigurationOptionsSetter.java155
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/src/org/eclipse/linuxtools/callgraph/launch/LaunchStapGraph.java120
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/src/org/eclipse/linuxtools/callgraph/launch/LaunchWizard.java56
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/src/org/eclipse/linuxtools/callgraph/launch/ListTreeContentProvider.java7
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/src/org/eclipse/linuxtools/callgraph/launch/RuledTreeSelectionDialog.java1
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/src/org/eclipse/linuxtools/callgraph/launch/SystemTapLaunchConfigurationDelegate.java351
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/src/org/eclipse/linuxtools/callgraph/launch/SystemTapLaunchShortcut.java827
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/src/org/eclipse/linuxtools/callgraph/launch/SystemTapOptionsTab.java62
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.launch/src/org/eclipse/linuxtools/callgraph/launch/messages.properties100
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.tests-feature/feature.properties4
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.tests/ChangeLog34
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.tests/META-INF/MANIFEST.MF3
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.tests/basic.graph12
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.tests/build.properties8
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.tests/catlan.graph495
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.tests/eag.graph197
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.tests/parse_function_nomark.stp29
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.tests/src/org/eclipse/linuxtools/callgraph/tests/AllTests.java3
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.tests/src/org/eclipse/linuxtools/callgraph/tests/MouseListenerTest.java48
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.tests/src/org/eclipse/linuxtools/callgraph/tests/StapGraphParserTest.java72
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.tests/src/org/eclipse/linuxtools/callgraph/tests/SystemTapGraphTest.java290
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph.tests/src/org/eclipse/linuxtools/callgraph/tests/SystemTapGraphViewTest.java16
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/ChangeLog233
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/META-INF/MANIFEST.MF6
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/about.html26
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/build.properties4
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/plugin.properties6
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/plugin.xml34
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/AggregateLayoutAlgorithm.java35
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/CallGraphConstants.java7
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/CallgraphView.java1405
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/GraphUIJob.java226
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/StapData.java230
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/StapGraph.java491
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/StapGraphParser.java715
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/StapNode.java43
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/SystemTapCommandParser.java123
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/graphlisteners/AutoScrollHelper.java8
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/graphlisteners/StapGraphKeyListener.java17
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/graphlisteners/StapGraphMouseListener.java44
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/graphlisteners/StapGraphMouseWheelListener.java2
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/messages.properties98
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/treeviewer/StapTreeContentProvider.java10
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/treeviewer/StapTreeDoubleClickListener.java2
-rw-r--r--systemtap/org.eclipse.linuxtools.callgraph/src/org/eclipse/linuxtools/callgraph/treeviewer/StapTreeLabelProvider.java6
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap-feature/ChangeLog51
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap-feature/build.properties5
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap-feature/feature.properties141
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap-feature/feature.xml109
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap-feature/license.html107
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.backup-feature/ChangeLog52
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.backup-feature/feature.properties138
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.backup-feature/license.html107
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.backup.ui.editor/plugin.properties12
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local-feature/feature.properties114
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local-feature/feature.xml68
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/META-INF/MANIFEST.MF18
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/basic.graph6
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/catlan.graph6
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/eag.graph6
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/makefile30
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/parse_function_nomark.stp43
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/src/org/eclipse/linuxtools/systemtap/local/callgraph/tests/Activator.java83
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/src/org/eclipse/linuxtools/systemtap/local/callgraph/tests/MouseListenerTest.java60
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/src/org/eclipse/linuxtools/systemtap/local/callgraph/tests/StapGraphParserTest.java106
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/src/org/eclipse/linuxtools/systemtap/local/callgraph/tests/SystemTapGraphTest.java321
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/src/org/eclipse/linuxtools/systemtap/local/callgraph/tests/SystemTapGraphViewTest.java34
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/META-INF/MANIFEST.MF21
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/build.properties16
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/icons/compare_method.gifbin193 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/icons/down.gifbin99 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/icons/genericregister_obj.gifbin115 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/icons/mode_collapsednodes.gifbin88 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/icons/nav_refresh.gifbin327 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/icons/public_co.gifbin194 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/icons/radial_view.gifbin362 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/icons/showchild_mode.gifbin323 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/icons/tree_view.gifbin91 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/icons/up.gifbin105 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/icons/view_aggregateview.gifbin131 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/plugin.xml92
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/Activator.java95
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/AggregateLayoutAlgorithm.java72
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/CallgraphView.java1172
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/GraphUIJob.java226
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/StapData.java228
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/StapGraph.java1832
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/StapGraphParser.java368
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/StapNode.java143
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/SystemTapCommandParser.java123
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/actions/InsertMarkerAction.java123
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/actions/RemoveMarkerAction.java125
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/actions/messages.properties10
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/graphlisteners/AutoScrollHelper.java58
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/graphlisteners/AutoScrollSelectionListener.java42
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/graphlisteners/Messages.java17
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/graphlisteners/StapGraphFocusListener.java38
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/graphlisteners/StapGraphKeyListener.java78
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/graphlisteners/StapGraphMouseExitListener.java28
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/graphlisteners/StapGraphMouseListener.java278
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/graphlisteners/StapGraphMouseMoveListener.java82
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/graphlisteners/StapGraphMouseWheelListener.java143
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/graphlisteners/messages.properties13
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/messages.properties82
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/treeviewer/StapTreeContentProvider.java74
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/treeviewer/StapTreeDoubleClickListener.java55
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/treeviewer/StapTreeLabelProvider.java55
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/src/org/eclipse/linuxtools/systemtap/local/callgraph/treeviewer/StapTreeListener.java73
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/META-INF/MANIFEST.MF21
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/build.properties23
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/errors.prop13
-rwxr-xr-xsystemtap/org.eclipse.linuxtools.systemtap.local.core/install.sh21
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/parse_function_mark_partial.stp122
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/parse_function_partial.stp21
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/plugin.xml6
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/schema/org.eclipse.linuxtools.systemtap.local.core.parser.exsd109
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/schema/systemtapCommands.exsd84
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/src/org/eclipse/linuxtools/systemtap/local/core/Activator.java133
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/src/org/eclipse/linuxtools/systemtap/local/core/FileFinderOpener.java153
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/src/org/eclipse/linuxtools/systemtap/local/core/Helper.java142
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/src/org/eclipse/linuxtools/systemtap/local/core/LaunchConfigurationConstants.java92
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/src/org/eclipse/linuxtools/systemtap/local/core/MP.java45
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/src/org/eclipse/linuxtools/systemtap/local/core/Messages.java36
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/src/org/eclipse/linuxtools/systemtap/local/core/PluginConstants.java51
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/src/org/eclipse/linuxtools/systemtap/local/core/ShellOpener.java40
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/src/org/eclipse/linuxtools/systemtap/local/core/SystemTapCommandGenerator.java236
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/src/org/eclipse/linuxtools/systemtap/local/core/SystemTapErrorHandler.java323
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/src/org/eclipse/linuxtools/systemtap/local/core/SystemTapParser.java169
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/src/org/eclipse/linuxtools/systemtap/local/core/SystemTapUIErrorMessages.java62
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/src/org/eclipse/linuxtools/systemtap/local/core/messages.properties38
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/systemtap.pngbin3538 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.core/systemtapbanner.pngbin4071 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/.project28
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/META-INF/MANIFEST.MF21
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/build.properties16
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.lock0
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.mylyn/repositories.xml.zipbin402 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.mylyn/tasks.xml.zipbin250 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.resources/.history/e4/0056fdb7b8a6001e143aec015f68a92782
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.resources/.projects/CallGraphDemo/.indexes/history.indexbin42 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.resources/.projects/CallGraphDemo/1.treebin627069 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version1
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.indexbin151 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version1
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.resources/.root/2.treebin361 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resourcesbin568 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.collabnet.subversion.merge.prefs3
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs15
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs3
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs3
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs3
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs6
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs3
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs3
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.tigris.subversion.subclipse.ui.prefs3
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCachebin4 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.datbin115 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml2
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml2
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml10
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml7
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml7
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml5
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml235
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml4
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/.metadata/version.ini1
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/basicTest/main.c25
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/resources/basicTest/uncalled.c3
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/src/org/eclipse/linuxtools/systemtap/local/launch/tests/AbstractStapTest.java67
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/src/org/eclipse/linuxtools/systemtap/local/launch/tests/AllTests.java41
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/src/org/eclipse/linuxtools/systemtap/local/launch/tests/ConfigurationTest.java104
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/src/org/eclipse/linuxtools/systemtap/local/launch/tests/LaunchShortcutsTest.java69
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/src/org/eclipse/linuxtools/systemtap/local/launch/tests/SystemTapCommandGeneratorTest.java94
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/src/org/eclipse/linuxtools/systemtap/local/launch/tests/SystemTapCommandLineTest.java172
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/src/org/eclipse/linuxtools/systemtap/local/launch/tests/SystemTapCommandTest.java59
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/src/org/eclipse/linuxtools/systemtap/local/launch/tests/SystemTapTabTest.java50
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/.classpath7
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/META-INF/MANIFEST.MF30
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/build.properties18
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/icons/Wizard.gifbin10445 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/icons/bar_graph.pngbin467 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/icons/question.pngbin438 -> 0 bytes
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/index.xml5
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/plugin.properties12
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/plugin.xml90
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/ASTTranslationUnitVisitor.java54
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/Activator.java105
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/ConfigurationOptionsSetter.java235
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/LaunchStapGraph.java301
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/LaunchWizard.java332
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/ListTreeContentProvider.java151
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/RuledTreeSelectionDialog.java109
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/SystemTapLCTG.java37
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/SystemTapLaunchConfigurationDelegate.java473
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/SystemTapLaunchShortcut.java793
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/SystemTapOptionsTab.java1011
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/TranslationUnitVisitor.java49
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/src/org/eclipse/linuxtools/systemtap/local/launch/messages.properties135
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/toc.xml6
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.launch/tree.htm1
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.tests-feature/build.properties1
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.tests-feature/feature.properties112
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.local.tests-feature/feature.xml51
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.consolelog/ChangeLog74
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.consolelog/META-INF/MANIFEST.MF25
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.consolelog/about.html26
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.consolelog/build.properties10
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.consolelog/plugin.properties8
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.consolelog/plugin.xml47
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.consolelog/src/org/eclipse/linuxtools/systemtap/ui/consolelog/actions/StopScriptAction.java100
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.consolelog/src/org/eclipse/linuxtools/systemtap/ui/consolelog/structures/ScriptConsole.java315
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboard/ChangeLog151
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboard/META-INF/MANIFEST.MF26
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboard/about.html26
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboard/build.properties11
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboard/plugin.properties42
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboard/plugin.xml295
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboard/src/org/eclipse/linuxtools/systemtap/ui/dashboard/structures/DashboardModuleLocator.java98
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboard/src/org/eclipse/linuxtools/systemtap/ui/dashboard/structures/DashboardModuleTreeBuilder.java140
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboardextension/ChangeLog46
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboardextension/META-INF/MANIFEST.MF23
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboardextension/about.html26
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboardextension/build.properties8
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboardextension/plugin.properties21
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboardextension/plugin.xml114
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.dashboardextension/src/org/eclipse/linuxtools/systemtap/ui/dashboardextension/dialogs/ScriptDetails.java129
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.editor/ChangeLog46
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.editor/META-INF/MANIFEST.MF17
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.editor/about.html26
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.editor/build.properties8
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.editor/plugin.properties19
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.editor/src/org/eclipse/linuxtools/systemtap/ui/editor/actions/file/OpenFileAction.java117
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphicalrun/ChangeLog39
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphicalrun/META-INF/MANIFEST.MF22
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphicalrun/about.html26
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphicalrun/build.properties8
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphicalrun/plugin.properties18
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphicalrun/plugin.xml94
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphing/ChangeLog38
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphing/META-INF/MANIFEST.MF26
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphing/about.html26
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphing/build.properties10
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphing/plugin.properties34
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphing/plugin.xml157
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphingapi.nonui/ChangeLog27
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphingapi.nonui/META-INF/MANIFEST.MF22
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphingapi.nonui/about.html26
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphingapi.nonui/build.properties7
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphingapi.nonui/plugin.properties2
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphingapi.ui/ChangeLog55
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphingapi.ui/META-INF/MANIFEST.MF27
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphingapi.ui/about.html26
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphingapi.ui/build.properties8
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphingapi.ui/plugin.properties6
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.graphingapi.ui/plugin.xml27
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.ide/ChangeLog124
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.ide/META-INF/MANIFEST.MF35
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.ide/about.html26
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.ide/build.properties10
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.ide/plugin.properties72
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.ide/plugin.xml305
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/systemtap/ui/ide/actions/RunScriptAction.java342
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/systemtap/ui/ide/actions/hidden/FunctionBrowserAction.java145
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/systemtap/ui/ide/internal/localization.properties70
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/systemtap/ui/ide/views/BrowserView.java172
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.logging/ChangeLog23
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.logging/META-INF/MANIFEST.MF15
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.logging/about.html26
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.logging/build.properties (renamed from rpm/build.properties)3
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.logging/plugin.properties3
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.logging/plugin.xml17
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.structures/ChangeLog23
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.structures/META-INF/MANIFEST.MF17
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.structures/about.html26
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.structures/build.properties8
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.structures/plugin.properties3
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.structures/plugin.xml12
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.structures/src/org/eclipse/linuxtools/systemtap/ui/structures/runnable/StreamGobbler.java201
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.systemtapgui/ChangeLog30
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.systemtapgui/META-INF/MANIFEST.MF20
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.systemtapgui/about.html28
-rw-r--r--systemtap/org.eclipse.linuxtools.systemtap.ui.systemtapgui/plugin.properties10
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind-feature/ChangeLog103
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind-feature/build.properties4
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind-feature/feature.properties138
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind-feature/feature.xml114
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind-feature/license.html107
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/ChangeLog120
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/META-INF/MANIFEST.MF32
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/plugin.properties3
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/META-INF/MANIFEST.MF30
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/about.html26
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/build.properties8
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/plugin.properties3
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/ChangeLog106
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/META-INF/MANIFEST.MF19
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/build.properties7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/plugin.properties4
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindCommand.java108
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindPlugin.java71
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindPreferencePage.java150
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/messages.properties5
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/ChangeLog72
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/META-INF/MANIFEST.MF11
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/plugin.properties3
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/userguide/General-Usage.html215
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/userguide/Valgrind Reference-toc.xml34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/userguide/Valgrind Reference.xml739
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/ChangeLog244
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/META-INF/MANIFEST.MF38
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/about.html28
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/plugin.properties13
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/ValgrindLaunchConfigurationDelegate.java354
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/ValgrindLaunchPlugin.java322
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/messages.properties55
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/ChangeLog160
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/META-INF/MANIFEST.MF38
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/plugin.properties3
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/DoubleClickTest.java90
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/ExpandCollapseTest.java88
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/LaunchConfigTabTest.java364
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/TreeTest.java70
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/ChangeLog210
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/META-INF/MANIFEST.MF55
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/about.html28
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/plugin.properties4
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifLaunchConstants.java48
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifLaunchDelegate.java109
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifToolPage.java414
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifTreeViewer.java110
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifViewPart.java491
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/birt/ChartEditorInput.java64
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/ChangeLog208
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/META-INF/MANIFEST.MF44
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/plugin.properties3
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/basicTest/test.c (renamed from systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/src/org/eclipse/linuxtools/systemtap/local/launch/tests/TestConstants.java)16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/linkedTest/src/test.c19
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/multiProcTest/parent.c16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/AllTests.java40
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/DoubleClickTest.java151
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/ExpandCollapseTest.java88
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/LaunchConfigTabTest.java545
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/LinkedResourceDoubleClickTest.java112
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/LinkedResourceMarkerTest.java83
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/LocationPreferenceTest.java34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/MarkerTest.java94
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/ChangeLog118
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/META-INF/MANIFEST.MF29
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/about.html28
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/plugin.properties3
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/src/org/eclipse/linuxtools/internal/valgrind/memcheck/MemcheckLaunchConstants.java44
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/src/org/eclipse/linuxtools/internal/valgrind/memcheck/MemcheckLaunchDelegate.java55
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/src/org/eclipse/linuxtools/internal/valgrind/memcheck/MemcheckToolPage.java332
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.test-feature/ChangeLog70
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.test-feature/build.properties5
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.test-feature/feature.properties138
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.test-feature/feature.xml75
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.test-feature/license.html107
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/ChangeLog173
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/META-INF/MANIFEST.MF26
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/plugin.properties12
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/META-INF/MANIFEST.MF25
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/about.html26
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/build.properties8
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/ChangeLog66
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/META-INF/MANIFEST.MF24
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/about.html28
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/plugin.properties5
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/src/org/eclipse/linuxtools/internal/valgrind/ui/CoreMessagesViewer.java200
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/src/org/eclipse/linuxtools/internal/valgrind/ui/ValgrindViewPart.java191
888 files changed, 44677 insertions, 24516 deletions
diff --git a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/common/DataRequestQueue.java b/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/common/DataRequestQueue.java
deleted file mode 100644
index 8851553b2c..0000000000
--- a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/common/DataRequestQueue.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Alvaro Sanchez-Leon (alvsan09@gmail.com) - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.linuxtools.lttng.ui.views.common;
-
-import org.eclipse.linuxtools.lttng.state.IStateDataRequestListener;
-import org.eclipse.linuxtools.lttng.state.StateDataRequest;
-import org.eclipse.linuxtools.lttng.state.experiment.StateManagerFactory;
-import org.eclipse.linuxtools.lttng.ui.TraceDebug;
-import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
-import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
-
-/**
- * One instance to keep track of the state of data request and a single time
- * range data request pending in queue
- *
- * @author alvaro
- *
- */
-class DataRequestQueue {
-
- // ========================================================================
- // Data
- // ========================================================================
- private TmfTimeRange queued = null;
- private StateDataRequest currentRequest = null;
-
- // ========================================================================
- // Methods
- // ========================================================================
-
- /**
- * @return the data request time range in queue and reset it reference to
- * null to get ready for a new entry in queue
- */
- private synchronized TmfTimeRange popQueued() {
- // Save the reference to current request
- TmfTimeRange result = queued;
- // remove from queue
- queued = null;
- // Send original reference
- return result;
- }
-
- /**
- * @param queued
- * <p>
- * Set the data request time range to be waiting for processing
- * </p>
- * <p>
- * Only the latest request is preserved
- * </p>
- */
- private synchronized void pushQueued(TmfTimeRange nqueued) {
- if (TraceDebug.isDEBUG()) {
- if (this.queued != null) {
- StringBuilder sb = new StringBuilder(
- "Queued request replaced from: "
-
- + queued.getStartTime() + "-" + queued.getEndTime()
- + "\n\t\t to: " + nqueued.getStartTime() + "-"
- + nqueued.getEndTime());
- TraceDebug.debug(sb.toString());
- }
- }
-
- this.queued = nqueued;
- }
-
- private synchronized boolean processNextInQueue() {
- // initialise return value
- boolean next = false;
-
- // If currentRequest is still active, no action is taken as it needs to
- // be completed first
- if (currentRequest != null) {
- boolean reqActive = !(currentRequest.isCancelled()
- | currentRequest.isCompleted() | currentRequest.isFailed());
-
- if (reqActive) {
- TraceDebug.debug("Exception: current request is still active");
- return false;
- } else {
- currentRequest = null;
- }
- }
-
- // get next in queue
- TmfTimeRange trange = popQueued();
- if (trange != null) {
- // clean up any possible pending request
- if (TraceDebug.isDEBUG()) {
- TmfTimestamp start = trange.getStartTime();
- TmfTimestamp end = trange.getEndTime();
- TraceDebug.debug("New request about to start: " + start + "-"
- + end);
- }
-
- // Start the new request.
- // TODO: ViewID and listener don't seem to be needed if all views
- // participate. this needs to be revisited when the request perform
- // individual requests for synthetic events and TMF supports request
- // coalescing
- currentRequest = StateManagerFactory.getExperimentManager()
- .readExperimentTimeWindow(trange, new String(""), null);
- next = true;
- } else {
- // All requests cancelled and no more pending requests
- TraceDebug.debug("No requests pending in the queue");
- }
-
- return next;
- }
-
- /**
- * check if the current state is IDLE
- *
- * @return
- */
- public synchronized boolean isIdle() {
- if (currentRequest == null) {
- return true;
- }
-
- return false;
- }
-
- /**
- * Evaluates the need to either send a new data request or queue the request
- * till next available opportunity. One element queue to keep the latest
- * request only.
- *
- * @param trange
- * @param viewID
- * @param listener
- * @return
- */
- public synchronized boolean processDataRequest(TmfTimeRange trange,
- String viewID, IStateDataRequestListener listener) {
-
- // Validate input
- if (trange == null) {
- return false;
- }
-
- // initialise return value
- boolean requested = false;
- // cancelPendingRequests();
- // If a request is ongoing queue the new request
- if (currentRequest != null) {
- if (currentTRangeEquals(trange)) {
- // Requesting same data, no need for a new request
- return requested;
- }
-
- // check if the currentRequest is still active
- boolean reqActive = !(currentRequest.isCancelled()
- || currentRequest.isFailed() || currentRequest
- .isCompleted());
-
- // Queue the new request and trigger cancel for the current one.
- if (reqActive) {
- pushQueued(trange);
- // make sure the request gets cancelled, request Completed is
- // expected before processing queue or next request
- currentRequest.cancel();
- return requested;
- }
- }
-
- if (TraceDebug.isDEBUG()) {
- TraceDebug.debug("Requesting data: " + trange.getStartTime() + "-"
- + trange.getEndTime());
- }
-
- // no request is ongoing, proceed with data read of all events
- // within the specified time window
- currentRequest = StateManagerFactory.getExperimentManager()
- .readExperimentTimeWindow(
- trange, viewID, listener);
-
- requested = true;
-
- return requested;
- }
-
- /**
- * Receive an update with current request.
- *
- * @param request
- */
- public synchronized void requestStarted(StateDataRequest request) {
- if (request == null) {
- return;
- }
-
- if (currentRequest == null) {
- TraceDebug
- .debug("Data requested started when currentRequest is null");
- return;
- }
-
- if (!request.equals(currentRequest)) {
- TraceDebug
- .debug("Started Data Request and current request are different");
- }
- }
-
- public synchronized void requestCompleted(StateDataRequest request) {
- if (currentRequest == null) {
- TraceDebug
- .debug("Data request completed when currentRequest is null");
- }
-
- if (request.equals(currentRequest)) {
- currentRequest = null;
- processNextInQueue();
- } else {
- TraceDebug.debug("completed request not equal to current request");
- }
- }
-
- /**
- * Compare new request time range with the one related to the current
- * request
- *
- * @param trange
- * @return
- */
- private boolean currentTRangeEquals(TmfTimeRange trange) {
- if (currentRequest != null) {
- if (currentRequest.getRange().equals(trange)) {
- return true;
- }
- }
- return false;
- }
-}
diff --git a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/common/UiCommonFactory.java b/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/common/UiCommonFactory.java
deleted file mode 100644
index 90424b32b7..0000000000
--- a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/common/UiCommonFactory.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Alvaro Sanchez-Leon (alvsan09@gmail.com) - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.linuxtools.lttng.ui.views.common;
-
-/**
- * @author alvaro
- */
-public class UiCommonFactory {
- // ========================================================================
- // Data
- // ========================================================================
- private static DataRequestQueue queue = null;
-
-
-
- // ========================================================================
- // Methods
- // ========================================================================
-
- /**
- * Needed when a queue is shared e.g. avoid multiple requests competing for
- * same resources
- *
- * @return
- */
- public synchronized static DataRequestQueue getQueue() {
- if (queue == null) {
- queue = new DataRequestQueue();
- }
- return queue;
- }
-}
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local-feature/.project b/man/org.eclipse.linuxtools.man-feature/.project
index b3cfb4bf36..f617d299b4 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local-feature/.project
+++ b/man/org.eclipse.linuxtools.man-feature/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.eclipse.linuxtools.systemtap.local-feature</name>
+ <name>org.eclipse.linuxtools.man-feature</name>
<comment></comment>
<projects>
</projects>
diff --git a/man/org.eclipse.linuxtools.man-feature/ChangeLog b/man/org.eclipse.linuxtools.man-feature/ChangeLog
new file mode 100644
index 0000000000..a78dbbe6c7
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man-feature/ChangeLog
@@ -0,0 +1,19 @@
+2010-05-18 Andrew Overholt <overholt@redhat.com>
+
+ * feature.properties: Fix provider name.
+
+2010-04-26 Andrew Overholt <overholt@redhat.com>
+
+ * feature.properties: Match consistent license text (bug #306627). Update
+ copyright text.
+ * license.html: Updated HTML version of SUA (bug #306627).
+
+2010-02-08 Andrew Overholt <overholt@redhat.com>
+
+ * feature.properties: Update featureName.
+
+2010-01-15 Alexander Kurakov <akurtakov@redhat.com>
+
+ * epl-v10.html: New file.
+ * build.properties: Include license and epl in the build.
+ * feature.xml: Add description url and fix license url. \ No newline at end of file
diff --git a/man/org.eclipse.linuxtools.man-feature/build.properties b/man/org.eclipse.linuxtools.man-feature/build.properties
new file mode 100644
index 0000000000..8ea310b4ff
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man-feature/build.properties
@@ -0,0 +1,4 @@
+bin.includes = feature.xml,\
+ license.html,\
+ epl-v10.html,\
+ feature.properties
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local-feature/epl-v10.html b/man/org.eclipse.linuxtools.man-feature/epl-v10.html
index 9321f4082e..9321f4082e 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local-feature/epl-v10.html
+++ b/man/org.eclipse.linuxtools.man-feature/epl-v10.html
diff --git a/man/org.eclipse.linuxtools.man-feature/feature.properties b/man/org.eclipse.linuxtools.man-feature/feature.properties
new file mode 100644
index 0000000000..3fe88d3ae9
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man-feature/feature.properties
@@ -0,0 +1,155 @@
+###############################################################################
+# Copyright (c) 2009 Red Hat, Inc.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Red Hat - initial API and implementation
+###############################################################################
+
+# features.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+featureName=Man Page Viewer (Incubation)
+provider=Eclipse Linux Tools
+description=View or fetch man page content.
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=Copyright (c) 2009, 2010 Red Hat, Inc and others. All rights reserved.
+################ end of copyright property ####################################
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+Eclipse Foundation Software User Agreement\n\
+April 14, 2010\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+ - Content may be structured and packaged into modules to facilitate delivering,\n\
+ extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+ plug-in fragments ("Fragments"), and features ("Features").\n\
+ - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+ in a directory named "plugins".\n\
+ - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+ Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+ Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+ numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+ - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+ named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+ - The top-level (root) directory\n\
+ - Plug-in and Fragment directories\n\
+ - Inside Plug-ins and Fragments packaged as JARs\n\
+ - Sub-directories of the directory named "src" of certain Plug-ins\n\
+ - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+ - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+ - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+ - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+ - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+ - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+ 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+ the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+ extending or updating the functionality of an Eclipse-based product.\n\
+ 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+ Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+ 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+ govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+ Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+ with the Specification. Such Installable Software Agreement must inform the user of the\n\
+ terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+ the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+ indication of agreement by the user, the provisioning Technology will complete installation\n\
+ of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/man/org.eclipse.linuxtools.man-feature/feature.xml b/man/org.eclipse.linuxtools.man-feature/feature.xml
new file mode 100644
index 0000000000..f1528d16ac
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man-feature/feature.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.linuxtools.man"
+ label="%featureName"
+ version="0.0.1.qualifier"
+ provider-name="%provider">
+
+ <description url="http://www.eclipse.org/linuxtools/projectPages/manpage/">
+ %description
+ </description>
+
+ <copyright>
+ %copyright
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <plugin
+ id="org.eclipse.linuxtools.man"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/man/org.eclipse.linuxtools.man-feature/license.html b/man/org.eclipse.linuxtools.man-feature/license.html
new file mode 100644
index 0000000000..c184ca36a9
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man-feature/license.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 14, 2010</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+ (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+ CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+ OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+ NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+ CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+ (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+ repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+ <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+ <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+ <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+ and/or Fragments associated with that Feature.</li>
+ <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+ <li>The top-level (root) directory</li>
+ <li>Plug-in and Fragment directories</li>
+ <li>Inside Plug-ins and Fragments packaged as JARs</li>
+ <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+ <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+ <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+ <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+ <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+ <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+ <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+ Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+ other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+ install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+ href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+ (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+ applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+ in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+ Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+ <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+ on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+ product.</li>
+ <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+ accessed and copied to the Target Machine.</li>
+ <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+ Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+ Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+ the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+ indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+ another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+ possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/.classpath b/man/org.eclipse.linuxtools.man/.classpath
index ad32c83a78..64c5e31b7a 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/.classpath
+++ b/man/org.eclipse.linuxtools.man/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/.project b/man/org.eclipse.linuxtools.man/.project
index 8bb007b39a..c8d0197730 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/.project
+++ b/man/org.eclipse.linuxtools.man/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.eclipse.linuxtools.systemtap.local.callgraph.tests</name>
+ <name>org.eclipse.linuxtools.man</name>
<comment></comment>
<projects>
</projects>
@@ -20,9 +20,20 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ds.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
</natures>
</projectDescription>
diff --git a/man/org.eclipse.linuxtools.man/.settings/.api_filters b/man/org.eclipse.linuxtools.man/.settings/.api_filters
new file mode 100644
index 0000000000..6cf0f2903f
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/.settings/.api_filters
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.linuxtools.man" version="2">
+ <resource path="src/org/eclipse/linuxtools/man/views/ManTextViewer.java" type="org.eclipse.linuxtools.man.views.ManTextViewer">
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="TextViewer"/>
+ <message_argument value="ManTextViewer"/>
+ </message_arguments>
+ </filter>
+ </resource>
+</component>
diff --git a/man/org.eclipse.linuxtools.man/.settings/org.eclipse.jdt.core.prefs b/man/org.eclipse.linuxtools.man/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..7c0c5584ec
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,355 @@
+#Wed Dec 09 21:56:12 EET 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=80
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/man/org.eclipse.linuxtools.man/.settings/org.eclipse.jdt.ui.prefs b/man/org.eclipse.linuxtools.man/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000000..c43046c52c
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,60 @@
+#Wed Dec 09 21:56:11 EET 2009
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
+formatter_settings_version=11
+org.eclipse.jdt.ui.exception.name=e
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.overrideannotation=true
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=false
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/man/org.eclipse.linuxtools.man/ChangeLog b/man/org.eclipse.linuxtools.man/ChangeLog
new file mode 100644
index 0000000000..9c2fe94b7c
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/ChangeLog
@@ -0,0 +1,22 @@
+2010-05-31 Alexander Kurtakov <akurtako@redhat.com>
+
+ * build.properties: Add icons to bin.includes.
+
+2010-02-03 Andrew Overholt <overholt@redhat.com>
+
+ * plugin.xml: Add "(Incubation)" and Provider.
+
+2009-12-09 Alexander Kurakov <akurtakov@redhat.com>
+
+ * src/org/eclipse/linuxtools/man/preferences/ManPathPage.java: New file.
+ * src/org/eclipse/linuxtools/man/preferences/PreferenceConstants.java: New file.
+ * src/org/eclipse/linuxtools/man/preferences/PreferenceInitializer.java: New file.
+ * .settings/org.eclipse.jdt.core.prefs: Enable project specific settings.
+ * .settings/org.eclipse.jdt.ui.prefs: Likewise.
+ * plugin.xml: Add preferences.
+ * src/org/eclipse/linuxtools/man/parser/ManParser.java (getRawManPage): Use the executable from the preferences.
+
+2009-11-25 Alexander Kurakov <akurtakov@redhat.com>
+
+ * src/org/eclipse/linuxtools/man/parser/ManPage.java (getStrippedHtmlPage): Fix AIOOB.
+ * src/org/eclipse/linuxtools/man/views/ManView.java (createPartControl): Do not set default man page. \ No newline at end of file
diff --git a/man/org.eclipse.linuxtools.man/META-INF/MANIFEST.MF b/man/org.eclipse.linuxtools.man/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..cb39178db1
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Man viewer and service (Incubation)
+Bundle-SymbolicName: org.eclipse.linuxtools.man;singleton:=true
+Bundle-Version: 0.0.1.qualifier
+Bundle-Activator: org.eclipse.linuxtools.man.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.jface.text
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.linuxtools.man,
+ org.eclipse.linuxtools.man.views,
+ org.eclipse.linuxtools.man.parser
+Bundle-Vendor: Eclipse
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/build.properties b/man/org.eclipse.linuxtools.man/build.properties
index c6baffa001..6c480f39f1 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/build.properties
+++ b/man/org.eclipse.linuxtools.man/build.properties
@@ -2,4 +2,5 @@ source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
+ plugin.xml,\
icons/
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/icons/sample.gif b/man/org.eclipse.linuxtools.man/icons/sample.gif
index 34fb3c9d8c..34fb3c9d8c 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/icons/sample.gif
+++ b/man/org.eclipse.linuxtools.man/icons/sample.gif
Binary files differ
diff --git a/man/org.eclipse.linuxtools.man/plugin.xml b/man/org.eclipse.linuxtools.man/plugin.xml
new file mode 100644
index 0000000000..d22939d465
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/plugin.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <category
+ id="org.eclipse.linuxtools.man"
+ name="Man pages">
+ </category>
+ <view
+ category="org.eclipse.linuxtools.man"
+ class="org.eclipse.linuxtools.man.views.ManView"
+ icon="icons/sample.gif"
+ id="org.eclipse.linuxtools.man.views.ManView"
+ name="Man Page View">
+ </view>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.eclipse.linuxtools.man.preferences.ManPathPage"
+ id="org.eclipse.linuxtools.man.preferences.ManPathPage"
+ name="Man pages">
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.core.runtime.preferences">
+ <initializer
+ class="org.eclipse.linuxtools.man.preferences.PreferenceInitializer">
+ </initializer>
+ </extension>
+</plugin>
diff --git a/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/Activator.java b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/Activator.java
new file mode 100644
index 0000000000..77f310f6cf
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/Activator.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexander Kurtakov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.man;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ /** The plug-in ID */
+ public static final String PLUGIN_ID = "org.eclipse.linuxtools.man";
+
+ // The shared instance
+ private static Activator plugin;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+ * )
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+ * )
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/parser/ManDocument.java b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/parser/ManDocument.java
new file mode 100644
index 0000000000..c46d5db665
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/parser/ManDocument.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexander Kurtakov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.man.parser;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.text.Document;
+
+/**
+ * IDocument for a given man page.
+ */
+// TODO consider bold and underline symbols to handle ranges.
+public class ManDocument extends Document {
+
+ private List<Integer> boldSymbols = new ArrayList<Integer>();
+ private List<Integer> underlineSymbols = new ArrayList<Integer>();
+
+ /**
+ * Creates an IDocument for the given man page and taking care for marking
+ * bold and underline symbols.
+ *
+ * @param manPage
+ * The man page to create document for.
+ */
+ public ManDocument(String manPage) {
+ StringBuilder sb = new ManParser().getRawManPage(manPage);
+ while (sb.indexOf("\b") != -1) {
+ int index = sb.indexOf("\b");
+ if (sb.charAt(index - 1) == '_') {
+ sb.replace(index - 1, index + 2, sb.substring(index + 1,
+ index + 2));
+ underlineSymbols.add(index - 1);
+ } else {
+ sb.replace(index - 1, index + 1, sb.substring(index - 1,
+ index - 1));
+ boldSymbols.add(index - 1);
+ }
+ }
+ set(sb.toString());
+
+ }
+
+ /**
+ * Returns the indexes of bold symbols.
+ *
+ * @return List of bold symbols.
+ */
+ public List<Integer> getBoldSymbols() {
+ return boldSymbols;
+ }
+
+ /**
+ * Returns the indexes of underline symbols.
+ *
+ * @return List of underline symbols.
+ */
+ public List<Integer> getUnderlinedSymbols() {
+ return underlineSymbols;
+ }
+}
diff --git a/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/parser/ManPage.java b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/parser/ManPage.java
new file mode 100644
index 0000000000..f36c7baadf
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/parser/ManPage.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexander Kurtakov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.man.parser;
+
+/**
+ * Man page bean to ease fetching html-preformatted different parts of a man
+ * page.
+ */
+public class ManPage {
+
+ private StringBuilder rawContent;
+
+ /**
+ * Creates the man page which includes retrieving the raw content and
+ * changing format symbols to html.
+ *
+ * @param manPage
+ * The man page.
+ */
+ public ManPage(String manPage) {
+ parse(new ManParser().getRawManPage(manPage));
+ }
+
+ // TODO make bold and underline be ranges instead of separate symbols.
+ private void parse(StringBuilder rawManPage) {
+ StringBuilder sb = new StringBuilder();
+ sb.append(rawManPage);
+
+ while (sb.indexOf("_\b") != -1) {
+ int index = sb.indexOf("_\b");
+ sb.replace(index, index + 3, "<u>"
+ + sb.substring(index + 2, index + 3) + "</u>");
+ }
+ while (sb.indexOf("\b") != -1) {
+ int index = sb.indexOf("\b");
+ sb.replace(index - 1, index + 2, "<b>"
+ + sb.substring(index - 1, index) + "</b>");
+ }
+ rawContent = sb;
+ }
+
+ /**
+ * Returns html representation of the man page. The whole man page is kept
+ * in one giant &lt;pre&gt; block with bold and underline symbols.
+ *
+ * @return The whole html man page.
+ */
+ public StringBuilder getHtmlPage() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("<pre>").append(rawContent).append("</pre>");
+ return sb;
+ }
+
+ /**
+ * Returns stripped representaton of the man page. Stripped parts are:
+ * <ul>
+ * <li>Header - all the parts before <b>NAME</b></li>
+ * <li>Footer - all the parts from <b>AUTHOR</b> till the end</li>
+ * </ul>
+ *
+ * @return The stripped html content of the man page.
+ */
+ public StringBuilder getStrippedHtmlPage() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(rawContent);
+ if (sb.indexOf("<b>N</b>") != -1) {
+ sb.delete(0, sb.indexOf("<b>N</b>"));
+ }
+ if (sb.indexOf("<b>A</b><b>U</b><b>T</b><b>H</b><b>O</b><b>R</b>") != -1) {
+ sb
+ .delete(
+ sb
+ .indexOf("<b>A</b><b>U</b><b>T</b><b>H</b><b>O</b><b>R</b>"),
+ sb.length());
+ }
+ sb.insert(0, "<pre>");
+ sb.append("</pre>");
+ return sb;
+ }
+}
diff --git a/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/parser/ManParser.java b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/parser/ManParser.java
new file mode 100644
index 0000000000..66e7742934
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/parser/ManParser.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexander Kurtakov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.man.parser;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+import org.eclipse.linuxtools.man.Activator;
+import org.eclipse.linuxtools.man.preferences.PreferenceConstants;
+
+/**
+ * Parser for the man executable output.
+ *
+ */
+public class ManParser {
+
+ /**
+ * Returns the raw representation of the man executable for a given man page
+ * i.e. `man ls`.
+ *
+ * @param manPage
+ * The man page to fetch.
+ * @return Raw output of the man command.
+ */
+ public StringBuilder getRawManPage(String manPage) {
+ String manExecutable = Activator.getDefault().getPreferenceStore()
+ .getString(PreferenceConstants.P_PATH);
+ ProcessBuilder builder = new ProcessBuilder(manExecutable, manPage);
+ builder.redirectErrorStream(true);
+ Process process;
+ StringBuilder sb = new StringBuilder();
+ try {
+ process = builder.start();
+ process.waitFor();
+ InputStream manContent = process.getInputStream();
+ BufferedReader reader = new BufferedReader(new InputStreamReader(
+ manContent));
+
+ String line = null;
+ try {
+ while ((line = reader.readLine()) != null) {
+ sb.append(line + "\n");
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ manContent.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ } catch (IOException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ } catch (InterruptedException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ return sb;
+ }
+
+}
diff --git a/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/preferences/ManPathPage.java b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/preferences/ManPathPage.java
new file mode 100644
index 0000000000..e3fd1646bd
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/preferences/ManPathPage.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexander Kurtakov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.man.preferences;
+
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.FileFieldEditor;
+import org.eclipse.linuxtools.man.Activator;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * Man page preferences.
+ */
+
+public class ManPathPage extends FieldEditorPreferencePage implements
+ IWorkbenchPreferencePage {
+
+ /**
+ * Preference page for setting the man path.
+ */
+ public ManPathPage() {
+ super(GRID);
+ setPreferenceStore(Activator.getDefault().getPreferenceStore());
+ setDescription("Man page viewer preference");
+ }
+
+ /**
+ * Creates the field editors. Field editors are abstractions of the common
+ * GUI blocks needed to manipulate various types of preferences. Each field
+ * editor knows how to save and restore itself.
+ */
+ @Override
+ public void createFieldEditors() {
+ addField(new FileFieldEditor(PreferenceConstants.P_PATH,
+ "Man executable path:", getFieldEditorParent()));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+ */
+ public void init(IWorkbench workbench) {
+ }
+
+} \ No newline at end of file
diff --git a/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/preferences/PreferenceConstants.java b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/preferences/PreferenceConstants.java
new file mode 100644
index 0000000000..da44cd3465
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/preferences/PreferenceConstants.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexander Kurtakov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.man.preferences;
+
+/**
+ * Constant definitions for plug-in preferences
+ */
+public class PreferenceConstants {
+
+ /**
+ * Path preference constant.
+ */
+ public static final String P_PATH = "pathPreference";
+
+}
diff --git a/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/preferences/PreferenceInitializer.java b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/preferences/PreferenceInitializer.java
new file mode 100644
index 0000000000..c3a546c921
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/preferences/PreferenceInitializer.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexander Kurtakov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.man.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.linuxtools.man.Activator;
+
+/**
+ * Class used to initialize default preference values.
+ */
+public class PreferenceInitializer extends AbstractPreferenceInitializer {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#
+ * initializeDefaultPreferences()
+ */
+ @Override
+ public void initializeDefaultPreferences() {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ store.setDefault(PreferenceConstants.P_PATH, "/usr/bin/man");
+ }
+
+}
diff --git a/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/views/ManTextViewer.java b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/views/ManTextViewer.java
new file mode 100644
index 0000000000..b06ede048f
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/views/ManTextViewer.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexander Kurtakov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.man.views;
+
+import org.eclipse.jface.text.TextPresentation;
+import org.eclipse.jface.text.TextViewer;
+import org.eclipse.linuxtools.man.parser.ManDocument;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyleRange;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Text viewer for a man page.
+ *
+ */
+public class ManTextViewer extends TextViewer {
+
+ /**
+ * Creates a resizable text viewer.
+ *
+ * @param parent
+ */
+ public ManTextViewer(Composite parent) {
+ super(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
+ // setEditable(false);
+ }
+
+ /**
+ * Sets the document to display.
+ *
+ * @param document
+ * The document to display.
+ */
+ public void setDocument(ManDocument document) {
+ super.setDocument(document);
+ TextPresentation style = new TextPresentation();
+ for (int underlineSymbol : document.getUnderlinedSymbols()) {
+ StyleRange styleRange = new StyleRange(underlineSymbol, 1, null,
+ null, SWT.NORMAL);
+ styleRange.underline = true;
+ style.addStyleRange(styleRange);
+ }
+ for (int boldSymbol : document.getBoldSymbols()) {
+ style.mergeStyleRange(new StyleRange(boldSymbol, 1, null, null,
+ SWT.BOLD));
+ }
+ getTextWidget().setBackground(
+ getControl().getDisplay().getSystemColor(SWT.COLOR_GRAY));
+ changeTextPresentation(style, true);
+ }
+
+}
diff --git a/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/views/ManView.java b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/views/ManView.java
new file mode 100644
index 0000000000..ac69e241c8
--- /dev/null
+++ b/man/org.eclipse.linuxtools.man/src/org/eclipse/linuxtools/man/views/ManView.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexander Kurtakov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.man.views;
+
+import org.eclipse.linuxtools.man.parser.ManDocument;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+
+/**
+ * View for man pages.
+ */
+
+public class ManView extends ViewPart {
+
+ /**
+ * The ID of the view as specified by the extension.
+ */
+ public static final String ID = "org.eclipse.linuxtools.man.views.ManView";
+
+ private ManTextViewer viewer;
+
+ /**
+ * This is a callback that will allow us to create the viewer and initialize
+ * it.
+ */
+ @Override
+ public void createPartControl(Composite parent) {
+ viewer = new ManTextViewer(parent);
+ // Create the help context id for the viewer's control
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(),
+ "org.eclipse.linuxtools.man.viewer");
+ }
+
+ /**
+ * Sets the man page to dispaly
+ *
+ * @param manPageName
+ * The name of the man page to display.
+ */
+ public void setManPageName(String manPageName) {
+ viewer.setDocument(new ManDocument(manPageName));
+ }
+
+ /**
+ * Passing the focus request to the viewer's control.
+ */
+ @Override
+ public void setFocus() {
+ viewer.getControl().setFocus();
+ }
+} \ No newline at end of file
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local.tests-feature/.project b/oprofile/org.eclipse.linuxtools.oprofile-feature/.project
index 8a9084ce91..e08eda091a 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local.tests-feature/.project
+++ b/oprofile/org.eclipse.linuxtools.oprofile-feature/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.eclipse.linuxtools.systemtap.local.tests-feature</name>
+ <name>org.eclipse.linuxtools.oprofile-feature</name>
<comment></comment>
<projects>
</projects>
diff --git a/oprofile/org.eclipse.linuxtools.oprofile-feature/ChangeLog b/oprofile/org.eclipse.linuxtools.oprofile-feature/ChangeLog
new file mode 100644
index 0000000000..fc9beb67ef
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile-feature/ChangeLog
@@ -0,0 +1,54 @@
+2010-05-18 Andrew Overholt <overholt@redhat.com>
+
+ * feature.properties: Fix provider name.
+
+2010-04-26 Andrew Overholt <overholt@redhat.com>
+
+ * feature.properties: Match consistent license text (bug #306627). Update
+ copyright year.
+ * license.html: New file. HTML version of SUA (bug #306627).
+ * build.properties: Include license.html.
+
+2010-04-13 Andrew Overholt <overholt@redhat.com>
+
+ * feature.xml: Restrict to os=linux.
+
+2010-04-12 Andrew Overholt <overholt@redhat.com>
+
+ * feature.properties: Match consistent license text (bug #306627).
+
+2009-05-21 Andrew Overholt <overholt@redhat.com>
+
+ * feature.xml: Remove unnecessary ".feature" qualifier in requirement of
+ profilingframework.
+
+2009-05-20 Andrew Overholt <overholt@redhat.com>
+
+ * feature.xml: Remove unnecessary .feature qualifier.
+
+2009-05-19 Andrew Overholt <overholt@redhat.com>
+
+ * feature.properties: Change provider from Eclipse.org to Eclipse.
+
+2009-04-20 Andrew Overholt <overholt@redhat.com>
+
+ * feature.xml: Add ws qualifiers.
+
+2009-04-20 Andrew Overholt <overholt@redhat.com>
+
+ * feature.xml: Add os and arch qualifiers to fragment stanzas.
+
+2009-01-14 Andrew Overholt <overholt@redhat.com>
+
+ * feature.xml: Re-add update site information.
+
+2009-01-06 Andrew Overholt <overholt@redhat.com>
+
+ * feature.xml: Add dependencies. Add update site information.
+
+2008-12-18 Andrew Overholt <overholt@redhat.com>
+
+ * build.properties: Inital checkin.
+ * feature.xml: Likewise.
+ * feature.properties: Likewise.
+ * epl-v10.html: Likewise. \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile-feature/build.properties b/oprofile/org.eclipse.linuxtools.oprofile-feature/build.properties
new file mode 100644
index 0000000000..4a2e637799
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile-feature/build.properties
@@ -0,0 +1,9 @@
+bin.includes = feature.xml,\
+ feature.properties,\
+ epl-v10.html,\
+ license.html
+src.includes = epl-v10.html,\
+ feature.properties,\
+ feature.xml,\
+ license.html,\
+ ChangeLog
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local.tests-feature/epl-v10.html b/oprofile/org.eclipse.linuxtools.oprofile-feature/epl-v10.html
index 9321f4082e..9321f4082e 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local.tests-feature/epl-v10.html
+++ b/oprofile/org.eclipse.linuxtools.oprofile-feature/epl-v10.html
diff --git a/oprofile/org.eclipse.linuxtools.oprofile-feature/feature.properties b/oprofile/org.eclipse.linuxtools.oprofile-feature/feature.properties
new file mode 100644
index 0000000000..0e355b8786
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile-feature/feature.properties
@@ -0,0 +1,138 @@
+#*******************************************************************************
+# Copyright (c) 2008 Red Hat, Inc.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Red Hat, Inc. - initial API and implementation
+#********************************************************************************
+featureName=OProfile Integration (Incubation)
+description=Plugins to bring OProfile-based profiling into the workbench.
+provider=Eclipse Linux Tools
+copyright=Copyright 2008, 2010 Red Hat, Inc.
+licenseURL=license.html
+license=\
+Eclipse Foundation Software User Agreement\n\
+April 14, 2010\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+ - Content may be structured and packaged into modules to facilitate delivering,\n\
+ extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+ plug-in fragments ("Fragments"), and features ("Features").\n\
+ - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+ in a directory named "plugins".\n\
+ - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+ Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+ Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+ numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+ - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+ named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+ - The top-level (root) directory\n\
+ - Plug-in and Fragment directories\n\
+ - Inside Plug-ins and Fragments packaged as JARs\n\
+ - Sub-directories of the directory named "src" of certain Plug-ins\n\
+ - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+ - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+ - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+ - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+ - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+ - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+ 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+ the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+ extending or updating the functionality of an Eclipse-based product.\n\
+ 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+ Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+ 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+ govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+ Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+ with the Specification. Such Installable Software Agreement must inform the user of the\n\
+ terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+ the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+ indication of agreement by the user, the provisioning Technology will complete installation\n\
+ of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
diff --git a/oprofile/org.eclipse.linuxtools.oprofile-feature/feature.xml b/oprofile/org.eclipse.linuxtools.oprofile-feature/feature.xml
new file mode 100644
index 0000000000..1762f1b77e
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile-feature/feature.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.linuxtools.oprofile"
+ label="%featureName"
+ version="0.3.0.qualifier"
+ provider-name="%featureProvider"
+ os="linux">
+
+ <description>
+ %description
+ </description>
+
+ <copyright>
+ %copyright
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <url>
+ <update label="Linux Tools Update Site" url="http://download.eclipse.org/technology/linuxtools/update"/>
+ </url>
+
+ <requires>
+ <import plugin="org.eclipse.core.runtime" version="3.4.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.ui" version="3.4.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.cdt.core"/>
+ <import plugin="org.eclipse.cdt.debug.core"/>
+ <import plugin="org.eclipse.cdt.launch"/>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.debug.core"/>
+ <import plugin="org.eclipse.debug.ui"/>
+ <import plugin="org.eclipse.linuxtools.profiling.launch"/>
+ <import plugin="org.eclipse.ui.ide"/>
+ <import plugin="org.eclipse.jface.text"/>
+ <import plugin="org.eclipse.linuxtools.profiling.ui"/>
+ <import feature="org.eclipse.linuxtools.profiling" version="0.1.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.ui.editors" version="3.4.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.linuxtools.oprofile.core" version="0.1.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.help"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.linuxtools.oprofile.core"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.oprofile.launch"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.oprofile.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.oprofile.core.linux.x86"
+ os="linux"
+ ws="gtk"
+ arch="x86"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.oprofile.core.linux.x86_64"
+ os="linux"
+ ws="gtk"
+ arch="x86_64"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.oprofile.core.linux.ppc"
+ os="linux"
+ ws="gtk"
+ arch="ppc"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.oprofile.doc"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/oprofile/org.eclipse.linuxtools.oprofile-feature/license.html b/oprofile/org.eclipse.linuxtools.oprofile-feature/license.html
new file mode 100644
index 0000000000..c184ca36a9
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile-feature/license.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 14, 2010</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+ (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+ CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+ OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+ NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+ CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+ (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+ repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+ <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+ <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+ <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+ and/or Fragments associated with that Feature.</li>
+ <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+ <li>The top-level (root) directory</li>
+ <li>Plug-in and Fragment directories</li>
+ <li>Inside Plug-ins and Fragments packaged as JARs</li>
+ <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+ <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+ <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+ <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+ <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+ <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+ <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+ Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+ other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+ install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+ href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+ (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+ applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+ in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+ Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+ <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+ on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+ product.</li>
+ <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+ accessed and copied to the Target Machine.</li>
+ <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+ Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+ Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+ the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+ indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+ another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+ possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local.core/.classpath b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/.classpath
index ad32c83a78..64c5e31b7a 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local.core/.classpath
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/.project b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/.project
index e654493362..0bf69ac337 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph/.project
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.eclipse.linuxtools.systemtap.local.callgraph</name>
+ <name>org.eclipse.linuxtools.oprofile.core.linux.ppc</name>
<comment></comment>
<projects>
</projects>
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/.settings/org.eclipse.jdt.core.prefs b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..4e94468fe0
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Tue Mar 17 11:57:30 EDT 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/rpm/.cvsignore b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/.svnignore
index ba077a4031..ba077a4031 100644
--- a/rpm/.cvsignore
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/.svnignore
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/META-INF/MANIFEST.MF b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..33a9ecbb1f
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %bundleName
+Bundle-SymbolicName: org.eclipse.linuxtools.oprofile.core.linux.ppc;singleton:=true
+Bundle-Version: 0.3.0.qualifier
+Fragment-Host: org.eclipse.linuxtools.oprofile.core;bundle-version="0.1.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Vendor: %bundleProvider
+Eclipse-PlatformFilter: (& (osgi.os=linux) (osgi.arch=ppc))
+Bundle-Localization: fragment
+Import-Package: org.eclipse.linuxtools.oprofile.core,
+ org.eclipse.linuxtools.oprofile.core.linux
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/about.html b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/about.html
new file mode 100644
index 0000000000..c258ef55d8
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/build.properties b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/build.properties
new file mode 100644
index 0000000000..5920d6e869
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/build.properties
@@ -0,0 +1,15 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ fragment.xml,\
+ os/,\
+ fragment.properties,\
+ about.html
+src.includes = META-INF/,\
+ about.html,\
+ fragment.properties,\
+ fragment.xml,\
+ os/,\
+ src/
+individualSourceBundles=true
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/fragment.properties b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/fragment.properties
new file mode 100644
index 0000000000..242c5c3261
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/fragment.properties
@@ -0,0 +1,12 @@
+#*******************************************************************************
+# Copyright (c) 2009 Red Hat, Inc.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
+#*******************************************************************************
+bundleName=OProfile Core Linux PPC Fragment (Incubation)
+bundleProvider=Eclipse \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/fragment.xml b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/fragment.xml
new file mode 100644
index 0000000000..a86122de76
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/fragment.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<fragment>
+ <extension
+ point="org.eclipse.linuxtools.oprofile.core.OpxmlProvider">
+ <opxmlProvider
+ class="org.eclipse.linuxtools.oprofile.core.linux.ppc.LinuxOpxmlProviderPPC">
+ </opxmlProvider>
+ </extension>
+
+</fragment>
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/src/org/eclipse/linuxtools/oprofile/core/linux/ppc/LinuxOpxmlProviderPPC.java b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/src/org/eclipse/linuxtools/oprofile/core/linux/ppc/LinuxOpxmlProviderPPC.java
new file mode 100644
index 0000000000..a75e7483c6
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.ppc/src/org/eclipse/linuxtools/oprofile/core/linux/ppc/LinuxOpxmlProviderPPC.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.oprofile.core.linux.ppc;
+
+import java.io.IOException;
+import java.net.URL;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.linuxtools.oprofile.core.OpxmlException;
+import org.eclipse.linuxtools.oprofile.core.linux.LinuxOpxmlProvider;
+
+public class LinuxOpxmlProviderPPC extends LinuxOpxmlProvider {
+ private static final String PLUGIN_ID = "org.eclipse.linuxtools.oprofile.core.linux.ppc"; //$NON-NLS-1$
+ private static final String OPXML_BINARY_NAME = "opxml"; //$NON-NLS-1$
+ private static final String OPXML_BINARY_PATH = "$os$"; //$NON-NLS-1$
+
+ public LinuxOpxmlProviderPPC() throws OpxmlException {
+ super();
+ }
+
+ @Override
+ public String _getOpxmlPath() {
+ String opxmlPath = null;
+ URL opxmlBinaryUrl = FileLocator.find(Platform.getBundle(PLUGIN_ID), new Path(OPXML_BINARY_PATH + Path.SEPARATOR + OPXML_BINARY_NAME), null);
+
+ if (opxmlBinaryUrl != null) {
+ try {
+ opxmlPath = FileLocator.toFileURL(opxmlBinaryUrl).getPath();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ return opxmlPath;
+ }
+}
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/.classpath b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.classpath
index ad32c83a78..64c5e31b7a 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/.classpath
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.project b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.project
new file mode 100644
index 0000000000..3ea4bebeb9
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.linuxtools.oprofile.core.linux.x86</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.settings/org.eclipse.jdt.core.prefs b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..213f5b6e58
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Wed Jan 07 11:21:45 EST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.svnignore b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.svnignore
new file mode 100644
index 0000000000..ba077a4031
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/.svnignore
@@ -0,0 +1 @@
+bin
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/META-INF/MANIFEST.MF b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..d35d803c58
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/META-INF/MANIFEST.MF
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %bundleName
+Bundle-SymbolicName: org.eclipse.linuxtools.oprofile.core.linux.x86;singleton:=true
+Bundle-Version: 0.3.0.qualifier
+Bundle-Vendor: %bundleProvider
+Fragment-Host: org.eclipse.linuxtools.oprofile.core;bundle-version="0.1.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Eclipse-PlatformFilter: (& (osgi.os=linux) (osgi.arch=x86))
+Import-Package: org.eclipse.linuxtools.oprofile.core.linux
+Bundle-Localization: fragment
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/about.html b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/about.html
new file mode 100644
index 0000000000..c258ef55d8
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/build.properties b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/build.properties
new file mode 100644
index 0000000000..863422d3d0
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/build.properties
@@ -0,0 +1,15 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ fragment.xml,\
+ about.html,\
+ fragment.properties,\
+ os/
+src.includes = about.html,\
+ META-INF/,\
+ fragment.xml,\
+ fragment.properties,\
+ src/,\
+ os/
+individualSourceBundles=true
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/fragment.properties b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/fragment.properties
new file mode 100644
index 0000000000..fb866b4ec7
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/fragment.properties
@@ -0,0 +1,12 @@
+#*******************************************************************************
+# Copyright (c) 2008 Red Hat, Inc.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
+#*******************************************************************************
+bundleName=OProfile Core Linux x86 Fragment (Incubation)
+bundleProvider=Eclipse \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/fragment.xml b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/fragment.xml
new file mode 100644
index 0000000000..9c7f111d94
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/fragment.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<fragment>
+ <extension
+ point="org.eclipse.linuxtools.oprofile.core.OpxmlProvider">
+ <opxmlProvider
+ class="org.eclipse.linuxtools.oprofile.core.linux.x86.LinuxOpxmlProvider32">
+ </opxmlProvider>
+ </extension>
+
+</fragment>
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/src/org/eclipse/linuxtools/oprofile/core/linux/x86/LinuxOpxmlProvider32.java b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/src/org/eclipse/linuxtools/oprofile/core/linux/x86/LinuxOpxmlProvider32.java
new file mode 100644
index 0000000000..e250a917de
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86/src/org/eclipse/linuxtools/oprofile/core/linux/x86/LinuxOpxmlProvider32.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.oprofile.core.linux.x86;
+
+import java.io.IOException;
+import java.net.URL;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.linuxtools.oprofile.core.OpxmlException;
+import org.eclipse.linuxtools.oprofile.core.linux.LinuxOpxmlProvider;
+
+
+public class LinuxOpxmlProvider32 extends LinuxOpxmlProvider {
+ private static final String PLUGIN_ID = "org.eclipse.linuxtools.oprofile.core.linux.x86"; //$NON-NLS-1$
+ private static final String OPXML_BINARY_NAME = "opxml"; //$NON-NLS-1$
+ private static final String OPXML_BINARY_PATH = "$os$"; //$NON-NLS-1$
+
+ public LinuxOpxmlProvider32() throws OpxmlException {
+ super();
+ }
+
+ @Override
+ public String _getOpxmlPath() {
+ String opxmlPath = null;
+ URL opxmlBinaryUrl = FileLocator.find(Platform.getBundle(PLUGIN_ID), new Path(OPXML_BINARY_PATH + Path.SEPARATOR + OPXML_BINARY_NAME), null);
+
+ if (opxmlBinaryUrl != null) {
+ try {
+ opxmlPath = FileLocator.toFileURL(opxmlBinaryUrl).getPath();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ return opxmlPath;
+ }
+}
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/.classpath b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.classpath
index ad32c83a78..64c5e31b7a 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/.classpath
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.project b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.project
new file mode 100644
index 0000000000..2399a11e7d
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.linuxtools.oprofile.core.linux.x86_64</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.settings/org.eclipse.jdt.core.prefs b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..ec5057ae74
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Wed Jan 07 11:21:57 EST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.svnignore b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.svnignore
new file mode 100644
index 0000000000..ba077a4031
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/.svnignore
@@ -0,0 +1 @@
+bin
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/META-INF/MANIFEST.MF b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..abd6a658e8
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/META-INF/MANIFEST.MF
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %bundleName
+Bundle-SymbolicName: org.eclipse.linuxtools.oprofile.core.linux.x86_64;singleton:=true
+Bundle-Version: 0.3.0.qualifier
+Bundle-Vendor: %bundleProvider
+Fragment-Host: org.eclipse.linuxtools.oprofile.core;bundle-version="0.1.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Eclipse-PlatformFilter: (& (osgi.os=linux) (osgi.arch=x86_64))
+Import-Package: org.eclipse.linuxtools.oprofile.core.linux
+Bundle-Localization: fragment
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/about.html b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/about.html
new file mode 100644
index 0000000000..c258ef55d8
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/build.properties b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/build.properties
new file mode 100644
index 0000000000..e392e8adb7
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/build.properties
@@ -0,0 +1,15 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ fragment.xml,\
+ about.html,\
+ fragment.properties,\
+ os/
+src.includes = META-INF/,\
+ about.html,\
+ fragment.properties,\
+ fragment.xml,\
+ os/,\
+ src/
+individualSourceBundles=true
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/fragment.properties b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/fragment.properties
new file mode 100644
index 0000000000..32ff95c380
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/fragment.properties
@@ -0,0 +1,12 @@
+#*******************************************************************************
+# Copyright (c) 2008 Red Hat, Inc.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
+#*******************************************************************************
+bundleName=OProfile Core Linux x86_64 Fragment (Incubation)
+bundleProvider=Eclipse \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/fragment.xml b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/fragment.xml
new file mode 100644
index 0000000000..c56483e1a1
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/fragment.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<fragment>
+ <extension
+ point="org.eclipse.linuxtools.oprofile.core.OpxmlProvider">
+ <opxmlProvider
+ class="org.eclipse.linuxtools.oprofile.core.linux.x86_64.LinuxOpxmlProvider64">
+ </opxmlProvider>
+ </extension>
+
+</fragment>
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/src/org/eclipse/linuxtools/oprofile/core/linux/x86_64/LinuxOpxmlProvider64.java b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/src/org/eclipse/linuxtools/oprofile/core/linux/x86_64/LinuxOpxmlProvider64.java
new file mode 100644
index 0000000000..c74ccacb76
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.linux.x86_64/src/org/eclipse/linuxtools/oprofile/core/linux/x86_64/LinuxOpxmlProvider64.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.oprofile.core.linux.x86_64;
+
+import java.io.IOException;
+import java.net.URL;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.linuxtools.oprofile.core.OpxmlException;
+import org.eclipse.linuxtools.oprofile.core.linux.LinuxOpxmlProvider;
+
+public class LinuxOpxmlProvider64 extends LinuxOpxmlProvider {
+ private static final String PLUGIN_ID = "org.eclipse.linuxtools.oprofile.core.linux.x86_64"; //$NON-NLS-1$
+ private static final String OPXML_BINARY_NAME = "opxml"; //$NON-NLS-1$
+ private static final String OPXML_BINARY_PATH = "$os$"; //$NON-NLS-1$
+
+ public LinuxOpxmlProvider64() throws OpxmlException {
+ super();
+ }
+
+ @Override
+ public String _getOpxmlPath() {
+ String opxmlPath = null;
+ URL opxmlBinaryUrl = FileLocator.find(Platform.getBundle(PLUGIN_ID), new Path(OPXML_BINARY_PATH + Path.SEPARATOR + OPXML_BINARY_NAME), null);
+
+ if (opxmlBinaryUrl != null) {
+ try {
+ opxmlPath = FileLocator.toFileURL(opxmlBinaryUrl).getPath();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ return opxmlPath;
+ }
+}
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/.classpath b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/.classpath
new file mode 100644
index 0000000000..64c5e31b7a
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local.core/.project b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/.project
index 547f6de468..775970bedc 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local.core/.project
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.eclipse.linuxtools.systemtap.local.core</name>
+ <name>org.eclipse.linuxtools.oprofile.core.tests</name>
<comment></comment>
<projects>
</projects>
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/.settings/org.eclipse.jdt.core.prefs b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..8858758938
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Thu Jan 15 11:55:42 EST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/.svnignore b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/.svnignore
new file mode 100644
index 0000000000..ba077a4031
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/.svnignore
@@ -0,0 +1 @@
+bin
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/ChangeLog b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/ChangeLog
new file mode 100644
index 0000000000..d5190fe10e
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/ChangeLog
@@ -0,0 +1,9 @@
+2009-02-25 Andrew Overholt <overholt@redhat.com>
+
+ * test.xml: Clean up variable names.
+ * META-INF/MANIFEST.MF: Explicitly require JUnit 3.
+ * build.properties: Add test.xml.
+
+2009-02-02 Andrew Overholt <overholt@redhat.com>
+
+ * test.xml: Initial checkin. \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/META-INF/MANIFEST.MF b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..1ca6686ef7
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %bundleName
+Bundle-SymbolicName: org.eclipse.linuxtools.oprofile.core.tests
+Bundle-Version: 0.3.0.qualifier
+Bundle-Activator: org.eclipse.linuxtools.oprofile.core.tests.CoreTestsPlugin
+Bundle-Vendor: %bundleProvider
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources;bundle-version="3.4.1",
+ org.junit;bundle-version="3.8.2"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.linuxtools.oprofile.core,
+ org.eclipse.linuxtools.oprofile.core.daemon,
+ org.eclipse.linuxtools.oprofile.core.model,
+ org.eclipse.linuxtools.oprofile.core.opxml,
+ org.eclipse.linuxtools.oprofile.core.opxml.checkevent,
+ org.eclipse.linuxtools.oprofile.core.opxml.info,
+ org.eclipse.linuxtools.oprofile.core.opxml.modeldata,
+ org.eclipse.linuxtools.oprofile.core.opxml.sessions,
+ org.eclipse.linuxtools.oprofile.tests
+Bundle-Localization: plugin
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/build.properties b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/build.properties
new file mode 100644
index 0000000000..0785092212
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/build.properties
@@ -0,0 +1,14 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ resources/,\
+ plugin.properties,\
+ test.xml
+src.includes = src/,\
+ resources/,\
+ plugin.properties,\
+ build.properties,\
+ META-INF/,\
+ test.xml
+individualSourceBundles=true
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/plugin.properties b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/plugin.properties
new file mode 100644
index 0000000000..89afb561dd
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/plugin.properties
@@ -0,0 +1,12 @@
+#*******************************************************************************
+# Copyright (c) 2009 Red Hat, Inc.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
+#*******************************************************************************
+bundleName=OProfile Core Tests Plug-in (Incubation)
+bundleProvider=Eclipse Linux Tools
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_invalid_counter.xml b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_invalid_counter.xml
new file mode 100644
index 0000000000..0d95acc0f7
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_invalid_counter.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<check-events>
+ <result>invalid-counter</result>
+</check-events> \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_invalid_event.xml b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_invalid_event.xml
new file mode 100644
index 0000000000..a71f74558b
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_invalid_event.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<check-events>
+ <result>invalid-event</result>
+</check-events> \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_invalid_umask.xml b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_invalid_umask.xml
new file mode 100644
index 0000000000..126fd38be0
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_invalid_umask.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<check-events>
+ <result>invalid-um</result>
+</check-events> \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_ok.xml b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_ok.xml
new file mode 100644
index 0000000000..7f6c9a9f80
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_ok.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<check-events>
+ <result>ok</result>
+</check-events> \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_info.xml b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_info.xml
new file mode 100644
index 0000000000..022a5d9793
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_info.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<info>
+ <num-counters>2</num-counters>
+ <cpu-frequency>800</cpu-frequency>
+ <defaults>
+ <sample-dir>/var/lib/oprofile/samples/</sample-dir>
+ <lock-file>/var/lib/oprofile/lock</lock-file>
+ <log-file>/var/lib/oprofile/samples/oprofiled.log</log-file>
+ <dump-status>/var/lib/oprofile/complete_dump</dump-status>
+ </defaults>
+ <timer-mode>true</timer-mode>
+ <event-list counter="0">
+ <event>
+ <name>CPU_CLK_UNHALTED</name>
+ <description>Clock cycles when not halted</description>
+ <value>60</value>
+ <minimum>6000</minimum>
+ <unit-mask>
+ <type>exclusive</type>
+ <default>0</default>
+ <mask>
+ <value>0</value>
+ <description>Unhalted core cycles</description>
+ </mask>
+ <mask>
+ <value>1</value>
+ <description>Unhalted bus cycles</description>
+ </mask>
+ <mask>
+ <value>2</value>
+ <description>Unhalted bus cycles of this core while the other core is halted</description>
+ </mask>
+ </unit-mask>
+ </event>
+ <event>
+ <name>INST_RETIRED_ANY_P</name>
+ <description>number of instructions retired</description>
+ <value>192</value>
+ <minimum>6000</minimum>
+ <unit-mask>
+ <type>mandatory</type>
+ <default>0</default>
+ <mask>
+ <value>0</value>
+ <description>No unit mask</description>
+ </mask>
+ </unit-mask>
+ </event>
+ <event>
+ <name>DTLB_MISSES</name>
+ <description>DTLB miss events</description>
+ <value>8</value>
+ <minimum>500</minimum>
+ <unit-mask>
+ <type>bitmask</type>
+ <default>15</default>
+ <mask>
+ <value>1</value>
+ <description>ANY Memory accesses that missed the DTLB.</description>
+ </mask>
+ <mask>
+ <value>2</value>
+ <description>MISS_LD DTLB misses due to load operations.</description>
+ </mask>
+ <mask>
+ <value>4</value>
+ <description>L0_MISS_LD L0 DTLB misses due to load operations.</description>
+ </mask>
+ <mask>
+ <value>8</value>
+ <description>MISS_ST TLB misses due to store operations.</description>
+ </mask>
+ </unit-mask>
+ </event>
+ </event-list>
+ <event-list counter="1">
+ <event>
+ <name>L2_M_LINES_IN</name>
+ <description>number of modified lines allocated in L2</description>
+ <value>37</value>
+ <minimum>500</minimum>
+ <unit-mask>
+ <type>exclusive</type>
+ <default>64</default>
+ <mask>
+ <value>192</value>
+ <description>All cores</description>
+ </mask>
+ <mask>
+ <value>64</value>
+ <description>This core</description>
+ </mask>
+ </unit-mask>
+ </event>
+ <event>
+ <name>L2_LINES_OUT</name>
+ <description>number of recovered lines from L2</description>
+ <value>38</value>
+ <minimum>500</minimum>
+ <unit-mask>
+ <type>bitmask</type>
+ <default>112</default>
+ <mask>
+ <value>192</value>
+ <description>core: all cores</description>
+ </mask>
+ <mask>
+ <value>64</value>
+ <description>core: this core</description>
+ </mask>
+ <mask>
+ <value>48</value>
+ <description>prefetch: all inclusive</description>
+ </mask>
+ <mask>
+ <value>16</value>
+ <description>prefetch: Hardware prefetch only</description>
+ </mask>
+ <mask>
+ <value>0</value>
+ <description>prefetch: exclude hardware prefetch</description>
+ </mask>
+ </unit-mask>
+ </event>
+ <event>
+ <name>EIST_TRANS_ALL</name>
+ <description>Intel(tm) Enhanced SpeedStep(r) Technology transitions</description>
+ <value>58</value>
+ <minimum>500</minimum>
+ <unit-mask>
+ <type>notavalidtype</type>
+ <default>1</default>
+ <mask>
+ <value>1</value>
+ <description>No unit mask</description>
+ </mask>
+ </unit-mask>
+ </event>
+ </event-list>
+</info> \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_info_0ctrs.xml b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_info_0ctrs.xml
new file mode 100644
index 0000000000..c7dac5069d
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_info_0ctrs.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<info>
+ <num-counters>error</num-counters>
+</info> \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_model-data.xml b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_model-data.xml
new file mode 100644
index 0000000000..8292083ae6
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_model-data.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<model-data>
+ <image name="/test/path/for/image" count="205000">
+ <symbols>
+ <symbol name="TestFunction1(int)" file="/test/path/for/src/image.cpp" count="180000">
+ <sample>
+ <count>130000</count>
+ <line>42</line>
+ </sample>
+ <sample>
+ <count>40000</count>
+ <line>36</line>
+ </sample>
+ <sample>
+ <count>9999</count>
+ <line>31</line>
+ </sample>
+ <sample>
+ <count>1</count>
+ <line>39</line>
+ </sample>
+ </symbol>
+ <symbol name="TestFunction2(int, int)" file="/test/path/for/src/image2.cpp" count="20000">
+ <sample>
+ <count>19998</count>
+ <line>94</line>
+ </sample>
+ <sample>
+ <count>1</count>
+ <line>12</line>
+ </sample>
+ <sample>
+ <count>1</count>
+ <line>55</line>
+ </sample>
+ </symbol>
+ </symbols>
+ <dependent count="5000">
+ <image name="/no-vmlinux" count="4400">
+ </image>
+ <image name="/lib64/ld-2.9.so" count="300">
+ <symbols>
+ <symbol name="do_lookup_x" file="dl-lookup.c" count="299">
+ <sample>
+ <count>299</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="_dl_unload_cache" file="rawmemchr.c" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ </symbols>
+ </image>
+ <image name="/usr/lib64/libstdc++.so.6.0.10" count="160">
+ </image>
+ <image name="/lib64/libc-2.9.so" count="140">
+ <symbols>
+ <symbol name="_IO_new_file_seekoff" file="" count="100">
+ <sample>
+ <count>100</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="bool std::operator!=&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, char const*)" file="" count="40">
+ <sample>
+ <count>40</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ </symbols>
+ </image>
+ </dependent>
+ </image>
+</model-data> \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_model-data_multiple_image.xml b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_model-data_multiple_image.xml
new file mode 100644
index 0000000000..e82dad5077
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_model-data_multiple_image.xml
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<model-data>
+ <image name="/no-vmlinux" count="6844">
+ </image>
+ <image name="/bin/grep" count="2">
+ </image>
+ <image name="/bin/gawk" count="8">
+ </image>
+ <image name="/bin/bash" count="142">
+ </image>
+ <image name="/lib64/libgobject-2.0.so.0.1800.3" count="61">
+ </image>
+ <image name="/lib64/libgio-2.0.so.0.1800.3" count="2">
+ </image>
+ <image name="/lib64/libdl-2.9.so" count="2">
+ <symbols>
+ <symbol name="__do_global_dtors_aux" file="crtstuff.c" count="2">
+ <sample>
+ <count>2</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ </symbols>
+ </image>
+ <image name="/lib64/ld-2.9.so" count="36">
+ <symbols>
+ <symbol name="_dl_start" file="rtld.c" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="dl_main" file="rtld.c" count="3">
+ <sample>
+ <count>3</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="init_tls" file="rtld.c" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="open_verify" file="dl-load.c" count="2">
+ <sample>
+ <count>2</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="_dl_setup_hash" file="rawmemchr.c" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="_dl_init_internal" file="rawmemchr.c" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="_dl_important_hwcaps" file="rawmemchr.c" count="2">
+ <sample>
+ <count>2</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="munmap" file="rawmemchr.c" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="_dl_load_cache_lookup" file="rawmemchr.c" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="_dl_fini" file="rawmemchr.c" count="2">
+ <sample>
+ <count>2</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="__GI_memset" file="rawmemchr.c" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="_dl_init_paths" file="rawmemchr.c" count="3">
+ <sample>
+ <count>3</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="__brk" file="rawmemchr.c" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="_dl_name_match_p" file="rawmemchr.c" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="index" file="rawmemchr.c" count="2">
+ <sample>
+ <count>2</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="_dl_resolve_conflicts" file="rawmemchr.c" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="_dl_cache_libcmp" file="rawmemchr.c" count="2">
+ <sample>
+ <count>2</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="strcmp" file="rawmemchr.c" count="2">
+ <sample>
+ <count>2</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="_dl_start_user" file="rawmemchr.c" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="strlen" file="rawmemchr.c" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="_dl_sort_fini" file="rawmemchr.c" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="_dl_map_object_deps" file="rawmemchr.c" count="4">
+ <sample>
+ <count>4</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ <symbol name="__libc_memalign" file="" count="1">
+ <sample>
+ <count>1</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ </symbols>
+ </image>
+ <image name="/lib64/libdbus-1.so.3.4.0" count="10">
+ </image>
+ <image name="/lib64/libfuse.so.2.7.4" count="1">
+ </image>
+ <image name="/lib64/libm-2.9.so" count="2">
+ <symbols>
+ <symbol name="__dubsin" file="interp.c" count="2">
+ <sample>
+ <count>2</count>
+ <line>0</line>
+ </sample>
+ </symbol>
+ </symbols>
+ </image>
+ <image name="/lib64/libglib-2.0.so.0.1800.3" count="107">
+ </image>
+ <image name="/lib64/libgthread-2.0.so.0.1800.3" count="3">
+ </image>
+ <image name="/usr/bin/which" count="1">
+ </image>
+ <image name="/usr/bin/compiz" count="21">
+ </image>
+ <image name="/usr/bin/Xorg" count="154">
+ <dependent count="6">
+ <image name="[vdso]" count="6">
+ </image>
+ </dependent>
+ </image>
+ <image name="/usr/bin/ophelp" count="11">
+ </image>
+ <image name="/usr/bin/qemu-kvm" count="142">
+ <dependent count="1">
+ <image name="[vdso]" count="1">
+ </image>
+ </dependent>
+ </image>
+ <image name="/usr/bin/oprofiled" count="26">
+ </image>
+ <image name="/usr/sbin/libvirtd" count="3">
+ </image>
+ <image name="/usr/libexec/multiload-applet-2" count="1">
+ </image>
+ <image name="/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/amd64/server/libjvm.so" count="7">
+ </image>
+ <image name="/usr/lib64/libgtk-x11-2.0.so.0.1400.5" count="22">
+ </image>
+ <image name="/usr/lib64/libpangocairo-1.0.so.0.2203.0" count="4">
+ </image>
+ <image name="/usr/lib64/libXrender.so.1.3.0" count="2">
+ </image>
+</model-data> \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_sessions.xml b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_sessions.xml
new file mode 100644
index 0000000000..2c3016ddde
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_sessions.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sessions>
+ <event name="BR_INST_EXEC">
+ <session name="current">
+ </session>
+ </event>
+ <event name="CPU_CLK_UNHALTED">
+ <session name="saved">
+ </session>
+ </event>
+ <event name="UOPS_RETIRED">
+ <session name="current">
+ </session>
+ <session name="&quot;&lt;&gt;&amp;&apos;">
+ </session>
+ </event>
+</sessions>
+ \ No newline at end of file
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/src/org/eclipse/linuxtools/systemtap/local/callgraph/tests/AllTests.java b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/AllCoreTests.java
index c5133426e3..f89f6aa5fd 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/src/org/eclipse/linuxtools/systemtap/local/callgraph/tests/AllTests.java
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/AllCoreTests.java
@@ -4,29 +4,26 @@
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
- *
+ *
* Contributors:
- * Red Hat - initial API and implementation
+ * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
*******************************************************************************/
-
-package org.eclipse.linuxtools.systemtap.local.callgraph.tests;
-
-import org.eclipse.linuxtools.systemtap.local.core.SystemTapUIErrorMessages;
+package org.eclipse.linuxtools.oprofile.core.tests;
import junit.framework.Test;
import junit.framework.TestSuite;
-public class AllTests {
+public class AllCoreTests {
public static Test suite() {
- SystemTapUIErrorMessages.setActive(false);
- TestSuite suite = new TestSuite(
- "Test for org.eclipse.linuxtools.systemtap.local.callgraph.tests");
- //$JUnit-BEGIN$
- suite.addTestSuite(StapGraphParserTest.class);
- suite.addTestSuite(SystemTapGraphViewTest.class);
- suite.addTestSuite(SystemTapGraphTest.class);
- //$JUnit-END$
+ TestSuite suite = new TestSuite("Test for org.eclipse.linuxtools.oprofile.core.tests"); //$NON-NLS-1$
+
+ suite.addTestSuite(TestModelDataParse.class);
+ suite.addTestSuite(TestSessionsParse.class);
+ suite.addTestSuite(TestCheckEventsParse.class);
+ suite.addTestSuite(TestInfoParse.class);
+ suite.addTestSuite(TestDataModel.class);
+
return suite;
}
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/CoreTestsPlugin.java b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/CoreTestsPlugin.java
new file mode 100644
index 0000000000..dfc0de866f
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/CoreTestsPlugin.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.oprofile.core.tests;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class CoreTestsPlugin extends Plugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.linuxtools.oprofile.core.tests"; //$NON-NLS-1$
+
+ // The shared instance
+ private static CoreTestsPlugin plugin;
+
+ /**
+ * The constructor
+ */
+ public CoreTestsPlugin() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static CoreTestsPlugin getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestCheckEventsParse.java b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestCheckEventsParse.java
new file mode 100644
index 0000000000..71fe76c4c9
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestCheckEventsParse.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.oprofile.core.tests;
+
+import java.io.FileReader;
+
+import javax.xml.parsers.SAXParserFactory;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.linuxtools.oprofile.core.opxml.OprofileSAXHandler;
+import org.eclipse.linuxtools.oprofile.core.opxml.checkevent.CheckEventsProcessor;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+
+public class TestCheckEventsParse extends TestCase {
+ private static final String REL_PATH_TO_TEST_XML_OK = "resources/test_check-event_ok.xml"; //$NON-NLS-1$
+ private static final String REL_PATH_TO_TEST_XML_INVALID_EVENT = "resources/test_check-event_invalid_event.xml"; //$NON-NLS-1$
+ private static final String REL_PATH_TO_TEST_XML_INVALID_UMASK = "resources/test_check-event_invalid_umask.xml"; //$NON-NLS-1$
+ private static final String REL_PATH_TO_TEST_XML_INVALID_COUNTER = "resources/test_check-event_invalid_counter.xml"; //$NON-NLS-1$
+ private int[] test_ok, test_invalid_event, test_invalid_umask, test_invalid_counter;
+
+ public TestCheckEventsParse() {
+ super("test check-event parsers"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ test_ok = new int[1];
+ setUpHelper(REL_PATH_TO_TEST_XML_OK, test_ok);
+ test_invalid_event = new int[1];
+ setUpHelper(REL_PATH_TO_TEST_XML_INVALID_EVENT, test_invalid_event);
+ test_invalid_umask = new int[1];
+ setUpHelper(REL_PATH_TO_TEST_XML_INVALID_UMASK, test_invalid_umask);
+ test_invalid_counter = new int[1];
+ setUpHelper(REL_PATH_TO_TEST_XML_INVALID_COUNTER, test_invalid_counter);
+ }
+
+ //helper
+ private void setUpHelper(String fileToParse, final int[] resultArray) throws Exception {
+ /* this code mostly taken from OpxmlRunner */
+ XMLReader reader = null;
+ OprofileSAXHandler handler = OprofileSAXHandler.getInstance(resultArray);
+
+ // Create XMLReader
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+ reader = factory.newSAXParser().getXMLReader();
+
+ // Set content/error handlers
+ reader.setContentHandler(handler);
+ reader.setErrorHandler(handler);
+
+ String filePath = FileLocator.toFileURL(FileLocator.find(CoreTestsPlugin.getDefault().getBundle(), new Path(fileToParse), null)).getFile();
+ reader.parse(new InputSource(new FileReader(filePath)));
+ }
+
+ public void testParse() {
+ assertEquals(CheckEventsProcessor.EVENT_OK, test_ok[0]);
+ assertEquals(CheckEventsProcessor.INVALID_EVENT, test_invalid_event[0]);
+ assertEquals(CheckEventsProcessor.INVALID_UMASK, test_invalid_umask[0]);
+ assertEquals(CheckEventsProcessor.INVALID_COUNTER, test_invalid_counter[0]);
+ }
+}
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestDataModel.java b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestDataModel.java
new file mode 100644
index 0000000000..c50573eff9
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestDataModel.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.oprofile.core.tests;
+
+import junit.framework.TestCase;
+
+import org.eclipse.linuxtools.oprofile.core.model.OpModelEvent;
+import org.eclipse.linuxtools.oprofile.core.model.OpModelImage;
+import org.eclipse.linuxtools.oprofile.core.model.OpModelSession;
+import org.eclipse.linuxtools.oprofile.tests.TestingOpModelRoot;
+
+public class TestDataModel extends TestCase {
+ private TestingOpModelRoot _testRoot;
+
+ public TestDataModel() {
+ super("test data model"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ _testRoot = new TestingOpModelRoot();
+ _testRoot.refreshModel();
+ }
+
+ public void testParse() {
+ OpModelEvent[] events = _testRoot.getEvents();
+ assertEquals(3, events.length);
+ assertEquals(TestingOpModelRoot.NAME_E1, events[0].getName());
+ assertEquals(TestingOpModelRoot.NAME_E2, events[1].getName());
+
+ OpModelSession[] e1_sessions = events[0].getSessions(), e2_sessions = events[1].getSessions();
+ assertEquals(1, e1_sessions.length);
+ assertEquals(4, e2_sessions.length);
+
+ assertEquals(205000, e1_sessions[0].getCount());
+ assertEquals(205000, e2_sessions[0].getCount());
+ assertEquals(200000, e2_sessions[1].getCount());
+ assertEquals(OpModelImage.IMAGE_PARSE_ERROR, e2_sessions[2].getCount());
+ assertEquals(0, e2_sessions[3].getCount());
+
+ assertEquals(TestingOpModelRoot.NAME_E1_S1, e1_sessions[0].getName());
+ assertEquals(TestingOpModelRoot.NAME_E2_S1, e2_sessions[0].getName());
+ assertEquals(TestingOpModelRoot.NAME_E2_S2, e2_sessions[1].getName());
+ assertEquals(TestingOpModelRoot.NAME_E2_S3, e2_sessions[2].getName());
+ assertEquals(TestingOpModelRoot.NAME_E2_S4, e2_sessions[3].getName());
+
+ //further image parsing is tested in the TestModelDataParse testParse
+ }
+
+ public void testStringOutput() {
+ assertEquals(TestingOpModelRoot.ROOT_OUTPUT, _testRoot.toString());
+ }
+}
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestInfoParse.java b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestInfoParse.java
new file mode 100644
index 0000000000..f962b31bf7
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestInfoParse.java
@@ -0,0 +1,418 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.oprofile.core.tests;
+
+import java.io.FileReader;
+
+import javax.xml.parsers.SAXParserFactory;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.linuxtools.oprofile.core.daemon.OpEvent;
+import org.eclipse.linuxtools.oprofile.core.daemon.OpInfo;
+import org.eclipse.linuxtools.oprofile.core.daemon.OpUnitMask;
+import org.eclipse.linuxtools.oprofile.core.opxml.OprofileSAXHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+
+public class TestInfoParse extends TestCase {
+ private static final String REL_PATH_TO_TEST_XML = "resources/test_info.xml"; //$NON-NLS-1$
+ private static final String REL_PATH_TO_TEST_XML_0CTR = "resources/test_info_0ctrs.xml"; //$NON-NLS-1$
+
+ private OpInfo info;
+ private OpInfo info_0ctr;
+
+
+ public TestInfoParse() {
+ super("test info parsers"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ /* this code mostly taken from OpxmlRunner */
+ XMLReader reader = null;
+ info = new OpInfo();
+ OprofileSAXHandler handler = OprofileSAXHandler.getInstance(info);
+
+ // Create XMLReader
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+ reader = factory.newSAXParser().getXMLReader();
+
+ // Set content/error handlers
+ reader.setContentHandler(handler);
+ reader.setErrorHandler(handler);
+
+ String filePath = FileLocator.toFileURL(FileLocator.find(CoreTestsPlugin.getDefault().getBundle(), new Path(REL_PATH_TO_TEST_XML), null)).getFile();
+ reader.parse(new InputSource(new FileReader(filePath)));
+
+ info_0ctr = new OpInfo();
+ handler = OprofileSAXHandler.getInstance(info_0ctr);
+
+ // Set content/error handlers
+ reader.setContentHandler(handler);
+ reader.setErrorHandler(handler);
+
+ filePath = FileLocator.toFileURL(FileLocator.find(CoreTestsPlugin.getDefault().getBundle(), new Path(REL_PATH_TO_TEST_XML_0CTR), null)).getFile();
+ reader.parse(new InputSource(new FileReader(filePath)));
+ }
+
+ public void testParse() {
+ assertEquals("/var/lib/oprofile/samples/", info.getDefault(OpInfo.DEFAULT_SAMPLE_DIR)); //$NON-NLS-1$
+ assertEquals("/var/lib/oprofile/lock", info.getDefault(OpInfo.DEFAULT_LOCK_FILE)); //$NON-NLS-1$
+ assertEquals("/var/lib/oprofile/samples/oprofiled.log", info.getDefault(OpInfo.DEFAULT_LOG_FILE)); //$NON-NLS-1$
+ assertEquals("/var/lib/oprofile/complete_dump", info.getDefault(OpInfo.DEFAULT_DUMP_STATUS)); //$NON-NLS-1$
+ assertTrue(info.getTimerMode());
+
+ assertEquals((double)800, info.getCPUSpeed());
+ assertEquals(2, info.getNrCounters());
+
+ OpEvent[] ctr0_events = info.getEvents(0), ctr1_events = info.getEvents(1);
+ assertEquals(3, ctr0_events.length);
+ assertEquals(3, ctr1_events.length);
+
+ OpEvent ctr0_e1 = ctr0_events[0], ctr0_e2 = ctr0_events[1], ctr0_e3 = ctr0_events[2],
+ ctr1_e1 = ctr1_events[0], ctr1_e2 = ctr1_events[1], ctr1_e3 = ctr1_events[2];
+ //events must be ordered alphabetically
+ assertEquals(6000, ctr0_e1.getMinCount());
+ assertEquals(60, ctr0_e1.getNumber());
+ assertEquals("CPU_CLK_UNHALTED", ctr0_e1.getText()); //$NON-NLS-1$
+ assertEquals("Clock cycles when not halted", ctr0_e1.getTextDescription()); //$NON-NLS-1$
+ assertEquals(500, ctr0_e2.getMinCount());
+ assertEquals(8, ctr0_e2.getNumber());
+ assertEquals("DTLB_MISSES", ctr0_e2.getText()); //$NON-NLS-1$
+ assertEquals("DTLB miss events", ctr0_e2.getTextDescription()); //$NON-NLS-1$
+ assertEquals(6000, ctr0_e3.getMinCount());
+ assertEquals(192, ctr0_e3.getNumber());
+ assertEquals("INST_RETIRED_ANY_P", ctr0_e3.getText()); //$NON-NLS-1$
+ assertEquals("number of instructions retired", ctr0_e3.getTextDescription()); //$NON-NLS-1$
+ assertEquals(500, ctr1_e1.getMinCount());
+ assertEquals(58, ctr1_e1.getNumber());
+ assertEquals("EIST_TRANS_ALL", ctr1_e1.getText()); //$NON-NLS-1$
+ assertEquals("Intel(tm) Enhanced SpeedStep(r) Technology transitions", ctr1_e1.getTextDescription()); //$NON-NLS-1$
+ assertEquals(500, ctr1_e2.getMinCount());
+ assertEquals(38, ctr1_e2.getNumber());
+ assertEquals("L2_LINES_OUT", ctr1_e2.getText()); //$NON-NLS-1$
+ assertEquals("number of recovered lines from L2", ctr1_e2.getTextDescription()); //$NON-NLS-1$
+ assertEquals(500, ctr1_e3.getMinCount());
+ assertEquals(37, ctr1_e3.getNumber());
+ assertEquals("L2_M_LINES_IN", ctr1_e3.getText()); //$NON-NLS-1$
+ assertEquals("number of modified lines allocated in L2", ctr1_e3.getTextDescription()); //$NON-NLS-1$
+
+ OpUnitMask ctr0_e1_mask = ctr0_e1.getUnitMask(), ctr0_e2_mask = ctr0_e2.getUnitMask(),
+ ctr0_e3_mask = ctr0_e3.getUnitMask(), ctr1_e1_mask = ctr1_e1.getUnitMask(),
+ ctr1_e2_mask = ctr1_e2.getUnitMask(), ctr1_e3_mask = ctr1_e3.getUnitMask();
+
+ assertEquals(0, ctr0_e1_mask.getMaskValue());
+ assertEquals(OpUnitMask.EXCLUSIVE, ctr0_e1_mask.getType());
+ assertEquals(3, ctr0_e1_mask.getNumMasks());
+ assertEquals(0, ctr0_e1_mask.getMaskFromIndex(0));
+ assertEquals("Unhalted core cycles", ctr0_e1_mask.getText(0)); //$NON-NLS-1$
+ assertEquals(1, ctr0_e1_mask.getMaskFromIndex(1));
+ assertEquals("Unhalted bus cycles", ctr0_e1_mask.getText(1)); //$NON-NLS-1$
+ assertEquals(2, ctr0_e1_mask.getMaskFromIndex(2));
+ assertEquals("Unhalted bus cycles of this core while the other core is halted", ctr0_e1_mask.getText(2)); //$NON-NLS-1$
+
+ assertEquals(15, ctr0_e2_mask.getMaskValue());
+ assertEquals(OpUnitMask.BITMASK, ctr0_e2_mask.getType());
+ assertEquals(4, ctr0_e2_mask.getNumMasks());
+ assertEquals(1, ctr0_e2_mask.getMaskFromIndex(0));
+ assertEquals("ANY Memory accesses that missed the DTLB.", ctr0_e2_mask.getText(0)); //$NON-NLS-1$
+ assertEquals(2, ctr0_e2_mask.getMaskFromIndex(1));
+ assertEquals("MISS_LD DTLB misses due to load operations.", ctr0_e2_mask.getText(1)); //$NON-NLS-1$
+ assertEquals(4, ctr0_e2_mask.getMaskFromIndex(2));
+ assertEquals("L0_MISS_LD L0 DTLB misses due to load operations.", ctr0_e2_mask.getText(2)); //$NON-NLS-1$
+ assertEquals(8, ctr0_e2_mask.getMaskFromIndex(3));
+ assertEquals("MISS_ST TLB misses due to store operations.", ctr0_e2_mask.getText(3)); //$NON-NLS-1$
+
+ assertEquals(0, ctr0_e3_mask.getMaskValue());
+ assertEquals(OpUnitMask.MANDATORY, ctr0_e3_mask.getType());
+ assertEquals(1, ctr0_e3_mask.getNumMasks());
+ assertEquals(0, ctr0_e3_mask.getMaskFromIndex(0));
+ assertEquals("No unit mask", ctr0_e3_mask.getText(0)); //$NON-NLS-1$
+
+ assertEquals(1, ctr1_e1_mask.getMaskValue());
+ assertEquals(OpUnitMask.INVALID, ctr1_e1_mask.getType());
+ assertEquals(1, ctr1_e1_mask.getNumMasks());
+ assertEquals(-1, ctr1_e1_mask.getMaskFromIndex(0)); //-1 because of invalid mask type
+ assertEquals("No unit mask", ctr1_e1_mask.getText(0)); //$NON-NLS-1$
+
+ assertEquals(112, ctr1_e2_mask.getMaskValue());
+ assertEquals(OpUnitMask.BITMASK, ctr1_e2_mask.getType());
+ assertEquals(5, ctr1_e2_mask.getNumMasks());
+ assertEquals(192, ctr1_e2_mask.getMaskFromIndex(0));
+ assertEquals("core: all cores", ctr1_e2_mask.getText(0)); //$NON-NLS-1$
+ assertEquals(64, ctr1_e2_mask.getMaskFromIndex(1));
+ assertEquals("core: this core", ctr1_e2_mask.getText(1)); //$NON-NLS-1$
+ assertEquals(48, ctr1_e2_mask.getMaskFromIndex(2));
+ assertEquals("prefetch: all inclusive", ctr1_e2_mask.getText(2)); //$NON-NLS-1$
+ assertEquals(16, ctr1_e2_mask.getMaskFromIndex(3));
+ assertEquals("prefetch: Hardware prefetch only", ctr1_e2_mask.getText(3)); //$NON-NLS-1$
+ assertEquals(0, ctr1_e2_mask.getMaskFromIndex(4));
+ assertEquals("prefetch: exclude hardware prefetch", ctr1_e2_mask.getText(4)); //$NON-NLS-1$
+
+ assertEquals(64, ctr1_e3_mask.getMaskValue());
+ assertEquals(OpUnitMask.EXCLUSIVE, ctr1_e3_mask.getType());
+ assertEquals(2, ctr1_e3_mask.getNumMasks());
+ assertEquals(192, ctr1_e3_mask.getMaskFromIndex(0));
+ assertEquals("All cores", ctr1_e3_mask.getText(0)); //$NON-NLS-1$
+ assertEquals(64, ctr1_e3_mask.getMaskFromIndex(1));
+ assertEquals("This core", ctr1_e3_mask.getText(1)); //$NON-NLS-1$
+
+ assertNull(ctr0_e1_mask.getText(-1));
+
+ assertEquals(0, info_0ctr.getNrCounters());
+ }
+
+ public void testUnitMask() throws Exception {
+ //test types of masks setting/unsetting
+ OpUnitMask mask_bit1 = info.getEvents(0)[1].getUnitMask(),
+// mask_bit2 = info.getEvents(1)[1].getUnitMask(),
+ mask_exl = info.getEvents(0)[0].getUnitMask(),
+ mask_mand = info.getEvents(0)[2].getUnitMask(),
+ mask_invalid = info.getEvents(1)[0].getUnitMask();
+
+ //bitmask 1 test -- bitmasks all mutually exclusive
+ assertEquals(15, mask_bit1.getMaskValue());
+ mask_bit1.setMaskValue(0);
+ mask_bit1.setMaskFromIndex(0);
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(2));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
+ assertEquals(1, mask_bit1.getMaskValue());
+
+ mask_bit1.setMaskFromIndex(1);
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(1));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(2));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
+ assertEquals(3, mask_bit1.getMaskValue());
+
+ mask_bit1.setMaskFromIndex(2);
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(1));
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(2));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
+ assertEquals(7, mask_bit1.getMaskValue());
+
+ mask_bit1.setMaskFromIndex(3);
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(1));
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(2));
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(3));
+ assertEquals(15, mask_bit1.getMaskValue());
+
+ mask_bit1.unSetMaskFromIndex(1);
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(2));
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(3));
+
+ mask_bit1.unSetMaskFromIndex(2);
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(2));
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(3));
+
+ mask_bit1.unSetMaskFromIndex(3);
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(2));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
+
+ mask_bit1.setMaskFromIndex(2);
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(2));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
+ assertEquals(5, mask_bit1.getMaskValue());
+
+ mask_bit1.unSetMaskFromIndex(1);
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(2));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
+
+ mask_bit1.unSetMaskFromIndex(3);
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(2));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
+ assertEquals(5, mask_bit1.getMaskValue());
+
+ mask_bit1.setMaskFromIndex(2);
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
+ assertEquals(true, mask_bit1.isMaskSetFromIndex(2));
+ assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
+ assertEquals(5, mask_bit1.getMaskValue());
+
+ mask_bit1.setMaskValue(OpUnitMask.SET_DEFAULT_MASK);
+ assertEquals(15, mask_bit1.getMaskValue());
+
+ //bitmask 2 test -- bitmasks overlap
+ /* bug related to overlapping bitmasks eclipse bz 261917 */
+// assertEquals(112, mask_bit2.getMaskValue());
+// mask_bit2.setMaskValue(0);
+// mask_bit2.setMaskFromIndex(0);
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(2));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
+//// assertEquals(192, mask_bit2.getMaskValue());
+//
+// mask_bit2.setMaskFromIndex(1);
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(1));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(2));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
+//// assertEquals(3, mask_bit2.getMaskValue());
+//
+// mask_bit2.setMaskFromIndex(2);
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(1));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
+//// assertEquals(7, mask_bit2.getMaskValue());
+//
+// mask_bit2.setMaskFromIndex(3);
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(1));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(3));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
+//// assertEquals(15, mask_bit2.getMaskValue());
+//
+// mask_bit2.setMaskFromIndex(4);
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(1));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(3));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(4));
+//// assertEquals(15, mask_bit2.getMaskValue());
+//
+// mask_bit2.unSetMaskFromIndex(1);
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(3));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(4));
+//
+// mask_bit2.unSetMaskFromIndex(2);
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(2));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(3));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(4));
+//
+// mask_bit2.unSetMaskFromIndex(3);
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(2));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(4));
+//
+// mask_bit2.unSetMaskFromIndex(4);
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(2));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
+//
+// mask_bit2.setMaskFromIndex(2);
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
+//// assertEquals(5, mask_bit2.getMaskValue());
+//
+// mask_bit2.unSetMaskFromIndex(1);
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
+//
+// mask_bit2.unSetMaskFromIndex(3);
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
+//// assertEquals(5, mask_bit2.getMaskValue());
+//
+// mask_bit2.setMaskFromIndex(2);
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
+// assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
+// assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
+//// assertEquals(5, mask_bit2.getMaskValue());
+//
+// mask_bit2.setMaskValue(OpUnitMask.SET_DEFAULT_MASK);
+// assertEquals(112, mask_bit2.getMaskValue());
+
+
+ //exclusive test
+ assertEquals(0, mask_exl.getMaskValue());
+ assertEquals(true, mask_exl.isMaskSetFromIndex(0));
+ assertEquals(false, mask_exl.isMaskSetFromIndex(1));
+ assertEquals(false, mask_exl.isMaskSetFromIndex(2));
+ mask_exl.setMaskFromIndex(1);
+ assertEquals(false, mask_exl.isMaskSetFromIndex(0));
+ assertEquals(1, mask_exl.getMaskValue());
+ mask_exl.unSetMaskFromIndex(1);
+ assertEquals(1, mask_exl.getMaskValue());
+ mask_exl.setMaskFromIndex(2);
+ assertEquals(2, mask_exl.getMaskValue());
+ mask_exl.setDefaultMaskValue();
+ assertEquals(0, mask_exl.getMaskValue());
+
+
+ //mandatory test
+ assertEquals(0, mask_mand.getMaskValue());
+ assertEquals(false, mask_mand.isMaskSetFromIndex(0));
+ mask_mand.setMaskFromIndex(0);
+ assertEquals(0, mask_mand.getMaskValue());
+ mask_mand.unSetMaskFromIndex(0);
+ assertEquals(0, mask_mand.getMaskValue());
+ mask_mand.setMaskValue(10);
+ mask_mand.setDefaultMaskValue();
+ assertEquals(0, mask_mand.getMaskValue());
+
+ //invalid test
+ assertEquals(1, mask_invalid.getMaskValue());
+ assertEquals(false, mask_invalid.isMaskSetFromIndex(0));
+ mask_invalid.setMaskFromIndex(0);
+ assertEquals(1, mask_invalid.getMaskValue());
+ mask_invalid.unSetMaskFromIndex(0);
+ assertEquals(1, mask_invalid.getMaskValue());
+ mask_invalid.setMaskValue(0);
+ mask_invalid.setDefaultMaskValue();
+ assertEquals(1, mask_invalid.getMaskValue());
+ }
+
+ public void testInfo() throws Exception {
+ OpEvent[] result = info.getEvents(-1);
+ assertEquals(0, result.length);
+
+ assertNull(info.findEvent("doesnt exist")); //$NON-NLS-1$
+
+ OpEvent event = info.findEvent("CPU_CLK_UNHALTED"); //$NON-NLS-1$
+ assertEquals("CPU_CLK_UNHALTED", event.getText()); //$NON-NLS-1$
+ }
+}
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestModelDataParse.java b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestModelDataParse.java
new file mode 100644
index 0000000000..6311d7d6a0
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestModelDataParse.java
@@ -0,0 +1,180 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.oprofile.core.tests;
+
+import java.io.FileReader;
+
+import javax.xml.parsers.SAXParserFactory;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.linuxtools.oprofile.core.model.OpModelImage;
+import org.eclipse.linuxtools.oprofile.core.model.OpModelSample;
+import org.eclipse.linuxtools.oprofile.core.model.OpModelSymbol;
+import org.eclipse.linuxtools.oprofile.core.opxml.OprofileSAXHandler;
+import org.eclipse.linuxtools.oprofile.core.opxml.modeldata.ModelDataProcessor;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+
+public class TestModelDataParse extends TestCase {
+ private static final String REL_PATH_TO_TEST_XML = "resources/test_model-data.xml"; //$NON-NLS-1$
+ private static final String REL_PATH_TO_TEST_XML_MULTI_IMAGE = "resources/test_model-data_multiple_image.xml"; //$NON-NLS-1$
+ private static final String IMAGE_OUTPUT = "/test/path/for/image, Count: 205000, Dependent Count: 5000\nSymbols: TestFunction1(int), File: /test/path/for/src/image.cpp, Count: 180000\n\tSample: Line #: 42, Count: 130000\n\tSample: Line #: 36, Count: 40000\n\tSample: Line #: 31, Count: 9999\n\tSample: Line #: 39, Count: 1\nSymbols: TestFunction2(int, int), File: /test/path/for/src/image2.cpp, Count: 20000\n\tSample: Line #: 94, Count: 19998\n\tSample: Line #: 12, Count: 1\n\tSample: Line #: 55, Count: 1\nDependent Image: /no-vmlinux, Count: 4400\nDependent Image: /lib64/ld-2.9.so, Count: 300\n\tSymbols: do_lookup_x, File: dl-lookup.c, Count: 299\n\t\tSample: Line #: 0, Count: 299\n\tSymbols: _dl_unload_cache, File: rawmemchr.c, Count: 1\n\t\tSample: Line #: 0, Count: 1\nDependent Image: /usr/lib64/libstdc++.so.6.0.10, Count: 160\nDependent Image: /lib64/libc-2.9.so, Count: 140\n\tSymbols: _IO_new_file_seekoff, File: , Count: 100\n\t\tSample: Line #: 0, Count: 100\n\tSymbols: bool std::operator!=<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*), File: , Count: 40\n\t\tSample: Line #: 0, Count: 40\n"; //$NON-NLS-1$
+ private static final String IMAGE_OUTPUT_WITHTAB = "/test/path/for/image, Count: 205000, Dependent Count: 5000\n\tSymbols: TestFunction1(int), File: /test/path/for/src/image.cpp, Count: 180000\n\t\tSample: Line #: 42, Count: 130000\n\t\tSample: Line #: 36, Count: 40000\n\t\tSample: Line #: 31, Count: 9999\n\t\tSample: Line #: 39, Count: 1\n\tSymbols: TestFunction2(int, int), File: /test/path/for/src/image2.cpp, Count: 20000\n\t\tSample: Line #: 94, Count: 19998\n\t\tSample: Line #: 12, Count: 1\n\t\tSample: Line #: 55, Count: 1\n\tDependent Image: /no-vmlinux, Count: 4400\n\tDependent Image: /lib64/ld-2.9.so, Count: 300\n\t\tSymbols: do_lookup_x, File: dl-lookup.c, Count: 299\n\t\t\tSample: Line #: 0, Count: 299\n\t\tSymbols: _dl_unload_cache, File: rawmemchr.c, Count: 1\n\t\t\tSample: Line #: 0, Count: 1\n\tDependent Image: /usr/lib64/libstdc++.so.6.0.10, Count: 160\n\tDependent Image: /lib64/libc-2.9.so, Count: 140\n\t\tSymbols: _IO_new_file_seekoff, File: , Count: 100\n\t\t\tSample: Line #: 0, Count: 100\n\t\tSymbols: bool std::operator!=<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*), File: , Count: 40\n\t\t\tSample: Line #: 0, Count: 40\n"; //$NON-NLS-1$
+
+ private OpModelImage parsedImage;
+ private OpModelImage parsedErrorImage;
+
+ public TestModelDataParse() {
+ super("test model-data parsers"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ /* this code mostly taken from OpxmlRunner */
+ XMLReader reader = null;
+ parsedImage = new OpModelImage();
+ ModelDataProcessor.CallData image = new ModelDataProcessor.CallData(parsedImage);
+ OprofileSAXHandler handler = OprofileSAXHandler.getInstance(image);
+
+ // Create XMLReader
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+ reader = factory.newSAXParser().getXMLReader();
+
+ // Set content/error handlers
+ reader.setContentHandler(handler);
+ reader.setErrorHandler(handler);
+
+ String filePath = FileLocator.toFileURL(FileLocator.find(CoreTestsPlugin.getDefault().getBundle(), new Path(REL_PATH_TO_TEST_XML), null)).getFile();
+ reader.parse(new InputSource(new FileReader(filePath)));
+
+ //2nd test image
+ parsedErrorImage = new OpModelImage();
+ ModelDataProcessor.CallData errorImage = new ModelDataProcessor.CallData(parsedErrorImage);
+ handler = OprofileSAXHandler.getInstance(errorImage);
+
+ // Set content/error handlers
+ reader.setContentHandler(handler);
+ reader.setErrorHandler(handler);
+
+ filePath = FileLocator.toFileURL(FileLocator.find(CoreTestsPlugin.getDefault().getBundle(), new Path(REL_PATH_TO_TEST_XML_MULTI_IMAGE), null)).getFile();
+ reader.parse(new InputSource(new FileReader(filePath)));
+ }
+
+ public void testParse() {
+ //test attributes
+ assertEquals("/test/path/for/image", parsedImage.getName()); //$NON-NLS-1$
+ assertEquals(205000, parsedImage.getCount());
+
+ //test symbols
+ OpModelSymbol[] symbols = parsedImage.getSymbols();
+ assertEquals(2, symbols.length);
+ OpModelSymbol sym1 = symbols[0], sym2 = symbols[1];
+ assertEquals("TestFunction1(int)", sym1.getName()); //$NON-NLS-1$
+ assertEquals("/test/path/for/src/image.cpp", sym1.getFile()); //$NON-NLS-1$
+ assertEquals(180000, sym1.getCount());
+ assertEquals("TestFunction2(int, int)", sym2.getName()); //$NON-NLS-1$
+ assertEquals("/test/path/for/src/image2.cpp", sym2.getFile()); //$NON-NLS-1$
+ assertEquals(20000, sym2.getCount());
+
+ //test samples
+ OpModelSample[] sym1_spls = sym1.getSamples(), sym2_spls = sym2.getSamples();
+ assertEquals(4, sym1_spls.length);
+ assertEquals(3, sym2_spls.length);
+ OpModelSample sym1_spl1 = sym1_spls[0], sym1_spl2 = sym1_spls[1], sym1_spl3 = sym1_spls[2], sym1_spl4 = sym1_spls[3];
+ OpModelSample sym2_spl1 = sym2_spls[0], sym2_spl2 = sym2_spls[1], sym2_spl3 = sym2_spls[2];
+ assertEquals(130000, sym1_spl1.getCount());
+ assertEquals(42, sym1_spl1.getLine());
+ assertEquals(40000, sym1_spl2.getCount());
+ assertEquals(36, sym1_spl2.getLine());
+ assertEquals(9999, sym1_spl3.getCount());
+ assertEquals(31, sym1_spl3.getLine());
+ assertEquals(1, sym1_spl4.getCount());
+ assertEquals(39, sym1_spl4.getLine());
+ assertEquals(19998, sym2_spl1.getCount());
+ assertEquals(94, sym2_spl1.getLine());
+ assertEquals(1, sym2_spl2.getCount());
+ assertEquals(12, sym2_spl2.getLine());
+ assertEquals(1, sym2_spl3.getCount());
+ assertEquals(55, sym2_spl3.getLine());
+
+ //test dependent images
+ assertEquals(true, parsedImage.hasDependents());
+ assertEquals(5000, parsedImage.getDepCount());
+ OpModelImage[] deps = parsedImage.getDependents();
+ assertEquals(4, deps.length);
+ OpModelImage dep1 = deps[0], dep2 = deps[1], dep3 = deps[2], dep4 = deps[3];
+
+ assertEquals(false, dep1.hasDependents());
+ assertEquals("/no-vmlinux", dep1.getName()); //$NON-NLS-1$
+ assertEquals(4400, dep1.getCount());
+
+ assertEquals(false, dep2.hasDependents());
+ OpModelSymbol[] dep2_syms = dep2.getSymbols();
+ assertEquals(2, dep2_syms.length);
+ OpModelSymbol dep2_sym1 = dep2_syms[0], dep2_sym2 = dep2_syms[1];
+ OpModelSample[] dep2_sym1_spls = dep2_sym1.getSamples(), dep2_sym2_spls = dep2_sym2.getSamples();
+ assertEquals(1, dep2_sym1_spls.length);
+ assertEquals(1, dep2_sym2_spls.length);
+ OpModelSample dep2_sym1_spl1 = dep2_sym1_spls[0], dep2_sym2_spl1 = dep2_sym2_spls[0];
+ assertEquals("/lib64/ld-2.9.so", dep2.getName()); //$NON-NLS-1$
+ assertEquals(300, dep2.getCount());
+ assertEquals("do_lookup_x", dep2_sym1.getName()); //$NON-NLS-1$
+ assertEquals("dl-lookup.c", dep2_sym1.getFile()); //$NON-NLS-1$
+ assertEquals(299, dep2_sym1.getCount());
+ assertEquals(299, dep2_sym1_spl1.getCount());
+ assertEquals(0, dep2_sym1_spl1.getLine());
+ assertEquals("_dl_unload_cache", dep2_sym2.getName()); //$NON-NLS-1$
+ assertEquals("rawmemchr.c", dep2_sym2.getFile()); //$NON-NLS-1$
+ assertEquals(1, dep2_sym2.getCount());
+ assertEquals(1, dep2_sym2_spl1.getCount());
+ assertEquals(0, dep2_sym2_spl1.getLine());
+
+ assertEquals(false, dep3.hasDependents());
+ assertEquals("/usr/lib64/libstdc++.so.6.0.10", dep3.getName()); //$NON-NLS-1$
+ assertEquals(160, dep3.getCount());
+
+ assertEquals(false, dep4.hasDependents());
+ OpModelSymbol[] dep4_syms = dep4.getSymbols();
+ assertEquals(2, dep4_syms.length);
+ OpModelSymbol dep4_sym1 = dep4_syms[0], dep4_sym2 = dep4_syms[1];
+ OpModelSample[] dep4_sym1_spls = dep4_sym1.getSamples(), dep4_sym2_spls = dep4_sym2.getSamples();
+ assertEquals(1, dep4_sym1_spls.length);
+ assertEquals(1, dep4_sym2_spls.length);
+ OpModelSample dep4_sym1_spl1 = dep4_sym1_spls[0], dep4_sym2_spl1 = dep4_sym2_spls[0];
+ assertEquals("/lib64/libc-2.9.so", dep4.getName()); //$NON-NLS-1$
+ assertEquals(140, dep4.getCount());
+ assertEquals("_IO_new_file_seekoff", dep4_sym1.getName()); //$NON-NLS-1$
+ assertEquals("", dep4_sym1.getFile()); //$NON-NLS-1$
+ assertEquals(100, dep4_sym1.getCount());
+ assertEquals(100, dep4_sym1_spl1.getCount());
+ assertEquals(0, dep4_sym1_spl1.getLine());
+ assertEquals("bool std::operator!=<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)", dep4_sym2.getName()); //$NON-NLS-1$
+ assertEquals("", dep4_sym2.getFile()); //$NON-NLS-1$
+ assertEquals(40, dep4_sym2.getCount());
+ assertEquals(40, dep4_sym2_spl1.getCount());
+ assertEquals(0, dep4_sym2_spl1.getLine());
+
+
+ assertEquals(OpModelImage.IMAGE_PARSE_ERROR, parsedErrorImage.getCount());
+ assertEquals(0, parsedErrorImage.getDepCount());
+ assertNull(parsedErrorImage.getDependents());
+ assertNull(parsedErrorImage.getSymbols());
+ assertEquals("", parsedErrorImage.getName()); //$NON-NLS-1$
+ }
+
+ public void testStringOutput() throws Exception {
+ assertEquals(IMAGE_OUTPUT, parsedImage.toString());
+ assertEquals(IMAGE_OUTPUT_WITHTAB, parsedImage.toString("\t")); //$NON-NLS-1$
+ }
+}
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestSessionsParse.java b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestSessionsParse.java
new file mode 100644
index 0000000000..4e585ffe11
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestSessionsParse.java
@@ -0,0 +1,115 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.oprofile.core.tests;
+
+import java.io.FileReader;
+import java.util.ArrayList;
+
+import javax.xml.parsers.SAXParserFactory;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.linuxtools.oprofile.core.model.OpModelEvent;
+import org.eclipse.linuxtools.oprofile.core.model.OpModelSession;
+import org.eclipse.linuxtools.oprofile.core.opxml.OprofileSAXHandler;
+import org.eclipse.linuxtools.oprofile.core.opxml.sessions.SessionsProcessor;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+
+public class TestSessionsParse extends TestCase {
+ private static final String REL_PATH_TO_TEST_XML = "resources/test_sessions.xml"; //$NON-NLS-1$
+ private static final String EVENT1_OUTPUT = "BR_INST_EXEC\nSession: current\n"; //$NON-NLS-1$
+ private static final String EVENT1_OUTPUT_WITHTAB = "BR_INST_EXEC\n\tSession: current\n"; //$NON-NLS-1$
+ private static final String EVENT2_OUTPUT = "CPU_CLK_UNHALTED\nSession: saved\n"; //$NON-NLS-1$
+ private static final String EVENT2_OUTPUT_WITHTAB = "CPU_CLK_UNHALTED\n\tSession: saved\n"; //$NON-NLS-1$
+ private static final String EVENT3_OUTPUT = "UOPS_RETIRED\nSession: current\nSession: \"<>&'\n"; //$NON-NLS-1$
+ private static final String EVENT3_OUTPUT_WITHTAB = "UOPS_RETIRED\n\tSession: current\n\tSession: \"<>&'\n"; //$NON-NLS-1$
+
+ private ArrayList<OpModelEvent> eventList;
+
+
+ public TestSessionsParse() {
+ super("test sessions parsers"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ /* this code mostly taken from OpxmlRunner */
+ XMLReader reader = null;
+ eventList = new ArrayList<OpModelEvent>();
+ SessionsProcessor.SessionInfo sessioninfo = new SessionsProcessor.SessionInfo(eventList);
+ OprofileSAXHandler handler = OprofileSAXHandler.getInstance(sessioninfo);
+
+ // Create XMLReader
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+ reader = factory.newSAXParser().getXMLReader();
+
+ // Set content/error handlers
+ reader.setContentHandler(handler);
+ reader.setErrorHandler(handler);
+
+ String filePath = FileLocator.toFileURL(FileLocator.find(CoreTestsPlugin.getDefault().getBundle(), new Path(REL_PATH_TO_TEST_XML), null)).getFile();
+ reader.parse(new InputSource(new FileReader(filePath)));
+ }
+
+ public void testParse() {
+ assertEquals(3, eventList.size());
+ OpModelEvent evt1 = eventList.get(0), evt2 = eventList.get(1), evt3 = eventList.get(2);
+
+ assertEquals("BR_INST_EXEC", evt1.getName()); //$NON-NLS-1$
+ assertEquals("CPU_CLK_UNHALTED", evt2.getName()); //$NON-NLS-1$
+ assertEquals("UOPS_RETIRED", evt3.getName()); //$NON-NLS-1$
+
+ OpModelSession[] evt1_ss = evt1.getSessions(), evt2_ss = evt2.getSessions(), evt3_ss = evt3.getSessions();
+ assertEquals(1, evt1_ss.length);
+ assertEquals(1, evt2_ss.length);
+ assertEquals(2, evt3_ss.length);
+ OpModelSession evt1_ss_s1 = evt1_ss[0];
+ OpModelSession evt2_ss_s1 = evt2_ss[0];
+ OpModelSession evt3_ss_s1 = evt3_ss[0];
+ OpModelSession evt3_ss_s2 = evt3_ss[1];
+
+ assertEquals("current", evt1_ss_s1.getName()); //$NON-NLS-1$
+ assertEquals(true, evt1_ss_s1.isDefaultSession());
+ assertNull(evt1_ss_s1.getImage());
+ assertEquals(0, evt1_ss_s1.getCount());
+ assertEquals(evt1, evt1_ss_s1.getEvent());
+
+ assertEquals("saved", evt2_ss_s1.getName()); //$NON-NLS-1$
+ assertEquals(false, evt2_ss_s1.isDefaultSession());
+ assertNull(evt2_ss_s1.getImage());
+ assertEquals(0, evt2_ss_s1.getCount());
+ assertEquals(evt2, evt2_ss_s1.getEvent());
+
+ assertEquals("current", evt3_ss_s1.getName()); //$NON-NLS-1$
+ assertEquals(true, evt3_ss_s1.isDefaultSession());
+ assertNull(evt3_ss_s1.getImage());
+ assertEquals(0, evt3_ss_s1.getCount());
+ assertEquals(evt3, evt3_ss_s1.getEvent());
+
+ assertEquals("\"<>&'", evt3_ss_s2.getName()); //$NON-NLS-1$
+ assertEquals(false, evt3_ss_s2.isDefaultSession());
+ assertNull(evt3_ss_s2.getImage());
+ assertEquals(0, evt3_ss_s2.getCount());
+ assertEquals(evt3, evt3_ss_s2.getEvent());
+ }
+
+ public void testStringOutput() throws Exception {
+ assertEquals(EVENT1_OUTPUT, eventList.get(0).toString());
+ assertEquals(EVENT1_OUTPUT_WITHTAB, eventList.get(0).toString("\t")); //$NON-NLS-1$
+ assertEquals(EVENT2_OUTPUT, eventList.get(1).toString());
+ assertEquals(EVENT2_OUTPUT_WITHTAB, eventList.get(1).toString("\t")); //$NON-NLS-1$
+ assertEquals(EVENT3_OUTPUT, eventList.get(2).toString());
+ assertEquals(EVENT3_OUTPUT_WITHTAB, eventList.get(2).toString("\t")); //$NON-NLS-1$
+ }
+}
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/test.xml b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/test.xml
index 4559259865..0123d5079b 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local.launch.tests/test.xml
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core.tests/test.xml
@@ -1,8 +1,8 @@
<?xml version="1.0"?>
<project name="testsuite" default="run" basedir=".">
- <property name="classname" value="org.eclipse.linuxtools.systemtap.local.launch.tests.AllTests" />
- <property name="plugin-name" value="org.eclipse.linuxtools.systemtap.local.launch.tests" />
+ <property name="classname" value="org.eclipse.linuxtools.oprofile.core.tests.AllCoreTests" />
+ <property name="plugin-name" value="org.eclipse.linuxtools.oprofile.core.tests" />
<property name="library-file" value="${eclipse-home}/dropins/${subProjectName2}/plugins/org.eclipse.test/library.xml" />
@@ -21,11 +21,11 @@
</target>
<!-- This target defines the tests that need to be run. -->
- <target name="locallaunch_suite">
- <property name="locallaunch-folder" value="${eclipse-home}/locallaunch_folder" />
- <delete dir="${localcallgraph-folder}" quiet="true" />
- <ant target="launch-test" antfile="${library-file}" dir="${eclipse-home}">
- <property name="data-dir" value="${locallaunch-folder}" />
+ <target name="oprofile_core_suite">
+ <property name="oprofile-core-folder" value="${eclipse-home}/oprofile_core_folder" />
+ <delete dir="${oprofile-core-folder}" quiet="true" />
+ <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
+ <property name="data-dir" value="${oprofile-core-folder}" />
<property name="plugin-name" value="${plugin-name}" />
<property name="classname" value="${classname}" />
</ant>
@@ -41,7 +41,7 @@
<!-- This target runs the test suite. Any actions that need to happen -->
<!-- after all the tests have been run should go here. -->
- <target name="run" depends="init,locallaunch_suite,cleanup">
+ <target name="run" depends="init,oprofile_core_suite,cleanup">
<ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
<property name="includes" value="org*.xml" />
<property name="output-file" value="${plugin-name}.xml" />
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/.classpath b/oprofile/org.eclipse.linuxtools.oprofile.core/.classpath
new file mode 100644
index 0000000000..64c5e31b7a
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/rpm/.project b/oprofile/org.eclipse.linuxtools.oprofile.core/.project
index 556cc126d9..f6a0d6999d 100644
--- a/rpm/.project
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.eclipse.linuxtools.rpm.ui.editor</name>
+ <name>org.eclipse.linuxtools.oprofile.core</name>
<comment></comment>
<projects>
</projects>
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/.settings/org.eclipse.jdt.core.prefs b/oprofile/org.eclipse.linuxtools.oprofile.core/.settings/org.eclipse.jdt.core.prefs
index 5270881c3f..fdf3224780 100644
--- a/systemtap/org.eclipse.linuxtools.systemtap.local.callgraph.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,12 @@
-#Mon Sep 21 12:34:05 EDT 2009
+#Thu Jan 15 14:14:30 EST 2009
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/.svnignore b/oprofile/org.eclipse.linuxtools.oprofile.core/.svnignore
new file mode 100644
index 0000000000..ba077a4031
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/.svnignore
@@ -0,0 +1 @@
+bin
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/ChangeLog b/oprofile/org.eclipse.linuxtools.oprofile.core/ChangeLog
new file mode 100644
index 0000000000..96f1804a1e
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/ChangeLog
@@ -0,0 +1,21 @@
+2010-05-07 Andrew Overholt <overholt@redhat.com>
+
+ * src/org/eclipse/linuxtools/oprofile/core/oprofile.properties: Fix typo
+ with \find instead of \nfind.
+
+2010-05-05 Andrew Overholt <overholt@redhat.com>
+
+ * src/org/eclipse/linuxtools/oprofile/core/oprofile.properties: Clean up
+ build/install instructions.
+
+2009-12-07 Andrew Overholt <overholt@redhat.com>
+
+ Bug #297007
+
+ * natives/linux/opxml/move_opxml.sh: Fix release number.
+
+2009-10-29 Andrew Overholt <overholt@redhat.com>
+
+ Bug #292172
+
+ * natives/linux/opxml/move_opxml.sh: Update release number. \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/META-INF/MANIFEST.MF b/oprofile/org.eclipse.linuxtools.oprofile.core/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..c4343ced02
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %bundleName
+Bundle-SymbolicName: org.eclipse.linuxtools.oprofile.core;singleton:=true
+Bundle-Version: 0.3.0.qualifier
+Bundle-Activator: org.eclipse.linuxtools.oprofile.core.OprofileCorePlugin
+Bundle-Vendor: %bundleProvider
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.4.0",
+ org.eclipse.ui;bundle-version="3.4.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.linuxtools.oprofile.core,
+ org.eclipse.linuxtools.oprofile.core.daemon,
+ org.eclipse.linuxtools.oprofile.core.linux,
+ org.eclipse.linuxtools.oprofile.core.model,
+ org.eclipse.linuxtools.oprofile.core.opxml,
+ org.eclipse.linuxtools.oprofile.core.opxml.checkevent,
+ org.eclipse.linuxtools.oprofile.core.opxml.info,
+ org.eclipse.linuxtools.oprofile.core.opxml.modeldata,
+ org.eclipse.linuxtools.oprofile.core.opxml.sessions
+Bundle-Localization: plugin
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/README b/oprofile/org.eclipse.linuxtools.oprofile.core/README
new file mode 100644
index 0000000000..4f47299329
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/README
@@ -0,0 +1,23 @@
+An extra step is required to install the plugin (due to OProfile's lack of a user-space mode):
+
+* Run the install script in the natives/linux/scripts directory (must be as root):
+
+ # ./install
+
+ * This will ensure all the necessary programs are installed, and create a wrapper for opcontrol
+ which prompts for the root password (since OProfile must be run as root). It will also load the
+ OProfile kernel module, however it is not loaded persistently. Hence, after the computer is
+ restarted and any functions of the plugin are used, there will be an extra prompt to run
+ opcontrol that would not normally appear.
+
+ * If there are any programs missing or an error occurs, the script will fail and display the error.
+ If there are no errors, you will see the message:
+
+ Eclipse-OProfile plugin install successful.
+
+
+* To uninstall the plugin, run the uninstall script in the natives/linux/scripts (must be root):
+
+ # ./uninstall
+
+ * This will simply remove the same files the install script created. \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/about.html b/oprofile/org.eclipse.linuxtools.oprofile.core/about.html
new file mode 100644
index 0000000000..c258ef55d8
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/build.properties b/oprofile/org.eclipse.linuxtools.oprofile.core/build.properties
new file mode 100644
index 0000000000..39977e0112
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/build.properties
@@ -0,0 +1,19 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ plugin.xml,\
+ about.html,\
+ README,\
+ natives/,\
+ schema/
+src.includes = META-INF/,\
+ README,\
+ about.html,\
+ src/,\
+ plugin.xml,\
+ plugin.properties,\
+ natives/,\
+ schema/
+individualSourceBundles=true
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/.svnignore b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/.svnignore
new file mode 100644
index 0000000000..5366501966
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/.svnignore
@@ -0,0 +1,15 @@
+opxml.o
+stable.o
+oprofiledb.o
+symbol.o
+sample.o
+session.o
+samplefile.o
+imageheader.o
+opinfo.o
+xmlfmt.o
+xmlbuf.o
+xmltag.o
+sevent.o
+profileimage.o
+opxml
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/Makefile b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/Makefile
new file mode 100644
index 0000000000..e532b37a61
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/Makefile
@@ -0,0 +1,78 @@
+# Makefile for Eclipse Oprofile wrapper library
+# Written by Keith Seitz <keiths@redhat.com>
+# Edited by Kent Sebastian <ksebasti@redhat.com>
+#
+# Copyright (c) 2004,2008 Red Hat, Inc.
+
+CFLAGS += -g -Wall
+CXXFLAGS = $(CFLAGS)
+
+OPROFILE_LIBS = -lop -lodb -loputil++ -loputil
+BFD_LIBRARY = -lbfd
+LIBIBERTY = -liberty
+OTHER_LIBS = $(BFD_LIBRARY)
+EXTRA_LIBS = $(OPROFILE_LIBS) $(OTHER_LIBS) $(LIBIBERTY)
+
+OPXML = opxml
+OPXML_OBJS = opxml.o
+OPROFILE_LIB_OBJS = stable.o oprofiledb.o symbol.o sample.o \
+ session.o samplefile.o imageheader.o opinfo.o \
+ xmlfmt.o xmlbuf.o xmltag.o \
+ sevent.o profileimage.o
+
+all: $(OPXML)
+
+$(OPXML): $(OPROFILE_LIB_OBJS) $(OPXML_OBJS)
+ $(CXX) -o $(OPXML) $(OPXML_OBJS) $(OPROFILE_LIB_OBJS) \
+ $(EXTRA_LIBS)
+
+clean:
+ $(RM) $(OPROFILE_LIB_OBJS) $(OPXML) $(OPXML_OBJS) $(OPXML_EXEC) *~
+
+install:
+ sh move_opxml.sh
+
+# Dependencies
+opxml.o: oxmlstream.h opinfo.h session.h sample.h sevent.h opxml.cc
+
+imageheader.o: xmlfmt.h imageheader.h imageheader.cc
+imageheader.h: samplefile.h
+
+opinfo.o: opinfo.h opinfo.cc
+opinfo.h:
+
+oprofiledb.o: oprofiledb.h sample.h stable.h oprofiledb.cc
+oprofiledb.h: xmlbuf.h xmlfmt.h
+
+oxmlstream.h: xmlbuf.h xmlfmt.h
+
+profileimage.o: xmlfmt.h profileimage.h profileimage.cc sample.h
+profileimage.h: samplefile.h
+
+sample.o: xmlfmt.h sample.h sample.cc symbol.h symbol.cc
+sample.h:
+
+samplefile.o: sample.h stable.h xmlfmt.h samplefile.h samplefile.cc
+samplefile.h: oprofiledb.h
+
+session.o: sevent.h opinfo.h xmlfmt.h session.h session.cc
+session.h: samplefile.h
+
+sevent.o: session.h xmlfmt.h sevent.h sevent.cc
+sevent.h: profileimage.h
+
+stable.o: stable.h symbol.h stable.cc
+stable.h:
+
+symbol.o: xmlfmt.h symbol.h symbol.cc
+symbol.h: sample.h
+
+xmlbuf.o: xmltag.h xmlbuf.h xmlbuf.cc
+xmlbuf.h:
+
+xmlfmt.o: xmlbuf.h xmlfmt.h xmlfmt.cc
+xmlfmt.h:
+
+xmltag.o: xmltag.h xmltag.cc
+xmltag.h:
+
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/README b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/README
new file mode 100644
index 0000000000..6a027ed9f9
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/README
@@ -0,0 +1,8 @@
+opxml requires 4 packages to be compiled:
+
+* oprofile
+* oprofile-devel
+* binutils-devel
+* binutils-static
+
+These packages may vary in name and some may be combined across distributions.
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/imageheader.cc b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/imageheader.cc
new file mode 100644
index 0000000000..d8b560cbda
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/imageheader.cc
@@ -0,0 +1,35 @@
+/* imageheader - a class which represents the "header" information for a given
+ image.
+ Written by Keith Seitz <keiths@redhat.com>
+ Copyright 2004 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#include "imageheader.h"
+#include "xmlfmt.h"
+
+using namespace std;
+
+imageheader::imageheader (const samplefile* sfile)
+ : _sfile (sfile)
+{
+}
+
+ostream&
+operator<< (ostream& os, const imageheader* ihdr)
+{
+ return os << startt ("header")
+ << startt ("cpu_type") << ihdr->get_cpu () << endt
+ << startt ("count") << ihdr->get_count () << endt
+ << startt ("event") << ihdr->get_event () << endt
+ << startt ("unit-mask") << ihdr->get_unit_mask () << endt
+ << startt ("cpu-speed") << ihdr->get_cpu_speed () << endt
+ << endt;
+}
+
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/imageheader.h b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/imageheader.h
new file mode 100644
index 0000000000..ec1f904f1f
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/imageheader.h
@@ -0,0 +1,48 @@
+/* imageheader - a class which represents the "header" info for a given
+ image.
+ Written by Keith Seitz <keiths@redhat.com>
+ Copyright 2004 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#ifndef _IMAGEHEADER_H
+#define _IMAGEHEADER_H
+#include <ostream>
+#include <string>
+
+#include "samplefile.h"
+
+class imageheader
+{
+ public:
+ // Constructor - pass in the oprofile header
+ imageheader (const samplefile* sfile);
+
+ // Returns the cpu type
+ inline std::string get_cpu (void) const { return _sfile->get_cpu (); };
+
+ // Returns the event collected
+ inline std::string get_event (void) const { return _sfile->get_event (); };
+
+ // Returns the count
+ inline std::string get_count (void) const { return _sfile->get_count (); };
+
+ // Returns the unit mask used during collection
+ inline std::string get_unit_mask (void) const { return _sfile->get_unit_mask (); };
+
+ // Returns an approx cpu speed
+ // FIXME: SUCK?
+ inline double get_cpu_speed (void) const { return 0.00; };
+
+ private:
+ const samplefile* _sfile;
+};
+
+std::ostream& operator<< (std::ostream& os, const imageheader* ihdr);
+#endif // !_SFILEHEADER_H
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/move_opxml.sh b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/move_opxml.sh
new file mode 100644
index 0000000000..5b526ea982
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/move_opxml.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+RELEASE_VER=0.3.0
+
+case `uname -m` in
+ 'i386') \
+ mv -f opxml ../../../../org.eclipse.linuxtools.oprofile.core.linux.x86_${RELEASE_VER}.*/os/linux/x86
+ ;;
+ 'i586')
+ mv -f opxml ../../../../org.eclipse.linuxtools.oprofile.core.linux.x86_${RELEASE_VER}.*/os/linux/x86
+ ;;
+ 'i686')
+ mv -f opxml ../../../../org.eclipse.linuxtools.oprofile.core.linux.x86_${RELEASE_VER}.*/os/linux/x86
+ ;;
+ 'x86_64')
+ mv -f opxml ../../../../org.eclipse.linuxtools.oprofile.core.linux.x86_64_${RELEASE_VER}.*/os/linux/x86_64
+ ;;
+ 'ppc')
+ mv -f opxml ../../../../org.eclipse.linuxtools.oprofile.core.linux.ppc_${RELEASE_VER}.*/os/linux/ppc
+ ;;
+ 'ppc64')
+ mv -f opxml ../../../../org.eclipse.linuxtools.oprofile.core.linux.ppc_${RELEASE_VER}.*/os/linux/ppc
+ ;;
+ *)
+ echo Could not detect system architecture -- please move the opxml binary into the appropriate org.eclipse.linuxtools.oprofile.core.linux.[x86,x86_64,ppc]/os/linux/[x86,x86_64,ppc] directory.
+ exit 1
+ ;;
+ esac && echo Success! \ No newline at end of file
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/opinfo.cc b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/opinfo.cc
new file mode 100644
index 0000000000..6dd98415ea
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/opinfo.cc
@@ -0,0 +1,225 @@
+/* Generic oprofile information class for opmxl.
+ Written by Keith Seitz <keiths@redhat.com>
+ Copyright 2003, Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#include "opinfo.h"
+
+#include <sstream>
+#include <string.h>
+
+#include "xmlfmt.h"
+
+using namespace std;
+
+// From liboputil.a. Sadly this won't work if we want to enable
+// remote-system profiling.
+extern "C" double op_cpu_frequency (void);
+
+// Forward declaration
+static void __output_unit_mask_info (ostream& os, const opinfo::event_t* e);
+
+// Constructor
+opinfo::opinfo (op_cpu cpu_type, string dir)
+ : _cpu_type (cpu_type), _dir (dir)
+{
+}
+
+// Returns the number of counters for this cpu type
+int
+opinfo::get_nr_counters (void) const
+{
+ return op_get_nr_counters (_cpu_type);
+}
+
+// Returns (in LIST) a list of valid events for the given counter
+void
+opinfo::get_events (eventlist_t& list, int ctr) const
+{
+ struct list_head* events, *p;
+ events = op_events (_cpu_type);
+
+ list_for_each (p, events)
+ {
+ struct op_event* event = list_entry (p, struct op_event, event_next);
+ if (/*event->counter_mask == CTR_ALL || */ event->counter_mask & (1 << ctr))
+ list.push_back (event);
+ }
+}
+
+// Returns cpu frequency
+double
+opinfo::get_cpu_frequency (void) const
+{
+ return op_cpu_frequency ();
+}
+
+// Checks whether the given CTR, EVENT, and MASK are valid
+opinfo::eventcheck
+opinfo::check (int ctr, int event, int mask) const
+{
+ eventcheck::result_t result =
+ static_cast<eventcheck::result_t> (op_check_events (ctr, event, mask, _cpu_type));
+ return eventcheck (result);
+}
+
+// Converts the given string into a corresponding op_cpu (CPU_NO_GOOD if invalid)
+op_cpu
+opinfo::str_to_op_cpu (const char* const cpu_str)
+{
+ int i;
+ for (i = 0; i < MAX_CPU_TYPE; ++i)
+ {
+ if (strcmp (op_get_cpu_type_str ((op_cpu) i), cpu_str) == 0)
+ return (op_cpu) i;
+ }
+
+ return CPU_NO_GOOD;
+}
+
+// This actually outputs a bunch of information
+ostream&
+operator<< (ostream& os, const opinfo& info)
+{
+ os << startt ("info");
+
+ // Output out number of counters and defaults
+ os << startt ("num-counters") << info.get_nr_counters () << endt
+ << startt ("cpu-frequency") << info.get_cpu_frequency () << endt
+ << startt ("defaults")
+ << startt ("sample-dir") << opinfo::get_default_samples_dir () << endt
+ << startt ("lock-file") << opinfo::get_default_lock_file () << endt
+ << startt ("log-file") << opinfo::get_default_log_file () << endt
+ << startt ("dump-status") << opinfo::get_default_dump_status () << endt
+ << endt;
+
+ if (info.get_cpu_type() == CPU_TIMER_INT)
+ {
+ os << startt ("timer-mode") << "true" << endt;
+
+ //create a fake timer event and output as normal
+ char UM_0_DESC[] = TIMER_EVENT_MASK_UM_0_DESCRIPTION;
+ char TIMER_NAME[] = TIMER_EVENT_NAME;
+ char TIMER_DESC[] = TIMER_EVENT_DESCRIPTION;
+
+ struct op_unit_mask mask;
+ mask.unit_type_mask = utm_mandatory;
+ mask.default_mask = TIMER_EVENT_MASK_DEFAULT_VALUE;
+ mask.um[0].value = TIMER_EVENT_MASK_UM_0_VALUE;
+ mask.um[0].desc = UM_0_DESC;
+ mask.num = TIMER_EVENT_MASK_UM_NUM;
+
+ opinfo::event_t timer_event;
+ timer_event.name = TIMER_NAME;
+ timer_event.desc = TIMER_DESC;
+ timer_event.val = TIMER_EVENT_NUMBER;
+ timer_event.min_count = TIMER_EVENT_MIN_COUNT;
+ timer_event.counter_mask = TIMER_EVENT_COUNTER_MASK;
+ timer_event.unit = &mask;
+
+ os << startt ("event-list") << attrt ("counter", "0");
+
+ os << (&timer_event);
+
+ os << endt;
+ }
+ else
+ {
+ os << startt ("timer-mode") << "false" << endt;
+
+ // Output event list
+ for (int ctr = 0; ctr < info.get_nr_counters (); ++ctr)
+ {
+ opinfo::eventlist_t events;
+
+ ostringstream ctr_s;
+ ctr_s << ctr;
+ os << startt ("event-list") << attrt ("counter", ctr_s.str ());
+ info.get_events (events, ctr);
+ opinfo::eventlist_t::iterator i;
+ for (i = events.begin (); i != events.end (); ++i)
+ os << (*i);
+ os << endt;
+ }
+ }
+
+ return os << endt;
+}
+
+// Prints the given EVENT on the given stream
+ostream&
+operator<< (ostream& os, const opinfo::event_t* event)
+{
+ os << startt ("event")
+ << startt ("name") << event->name << endt
+ << startt ("description") << event->desc << endt
+ << startt ("value") << static_cast<int> (event->val) << endt
+ << startt ("minimum") << static_cast<int> (event->min_count) << endt;
+
+ // ouput unit mask info
+ __output_unit_mask_info (os, event);
+
+ return os << endt;
+}
+
+// Prints the given eventcheck on the given stream
+ostream&
+operator<< (ostream& os, const opinfo::eventcheck& check)
+{
+ static const char* errors[3] = {"invalid-event", "invalid-um", "invalid-counter"};
+
+ os << startt ("check-events");
+
+ if (check.get_result () == OP_OK_EVENT)
+ os << startt ("result") << "ok" << endt;
+ else
+ {
+ for (unsigned int i = 0; i < sizeof (errors) / sizeof (errors[0]); ++i)
+ {
+ if ((check.get_result () & (1 << i)) > 0)
+ os << startt ("result") << errors[i] << endt;
+ }
+ }
+
+ return os << endt;
+}
+
+// Convenience function to output unit mask information
+static void
+__output_unit_mask_info (ostream& os, const opinfo::event_t* event)
+{
+ const struct op_unit_mask* umask = event->unit;
+ const char* type;
+
+ switch (umask->unit_type_mask)
+ {
+ case utm_exclusive:
+ type = "exclusive"; break;
+ case utm_bitmask:
+ type = "bitmask"; break;
+ case utm_mandatory:
+ default:
+ type = "mandatory"; break;
+ }
+
+ os << startt ("unit-mask")
+ << startt ("type") << type << endt
+ << startt ("default") << umask->default_mask << endt;
+
+ for (u32 i = 0; i < umask->num; ++i)
+ {
+ os << startt ("mask")
+ << startt ("value") << umask->um[i].value << endt
+ << startt ("description") << umask->um[i].desc << endt
+ << endt;
+ }
+
+ os << endt;
+}
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/opinfo.h b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/opinfo.h
new file mode 100644
index 0000000000..958f9fb180
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/opinfo.h
@@ -0,0 +1,118 @@
+/* Generic oprofile information class for opmxl.
+ Written by Keith Seitz <keiths@redhat.com>
+ Copyright 2003, Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#ifndef _OPINFO_H
+#define _OPINFO_H
+#include <vector>
+#include <ostream>
+
+#include <op_cpu_type.h>
+#include <op_config.h>
+#include <op_events.h>
+
+#define OP_SAMPLES_DIR "/var/lib/oprofile/samples/"
+#define OP_LOCK_FILE "/var/lib/oprofile/lock"
+#define OP_LOG_FILE "/var/lib/oprofile/samples/oprofiled.log"
+#define OP_DUMP_STATUS "/var/lib/oprofile/complete_dump"
+#define TIMER_EVENT_NAME "TIMER"
+#define TIMER_EVENT_DESCRIPTION "Profiling through timer interrupt"
+#define TIMER_EVENT_NUMBER 0
+#define TIMER_EVENT_MIN_COUNT 0
+#define TIMER_EVENT_COUNTER_MASK 0
+#define TIMER_EVENT_MASK_DEFAULT_VALUE 0
+#define TIMER_EVENT_MASK_UM_NUM 1
+#define TIMER_EVENT_MASK_UM_0_VALUE 0
+#define TIMER_EVENT_MASK_UM_0_DESCRIPTION "No unit mask"
+
+struct op_event;
+
+// A class which knows about static oprofile information, i.e., things
+// which do not depend on sample files.
+class opinfo
+{
+ public:
+ // The type of an oprofile event
+ typedef struct op_event event_t;
+
+ // The type of a list of oprofile events
+ typedef std::vector<event_t*> eventlist_t;
+
+ // A class used for reporting the validity of an event.
+ // Used by opinfo::check.
+ class eventcheck
+ {
+ public:
+ // The result type returned by get_result;
+ typedef enum op_event_check result_t;
+
+ // Constructor
+ eventcheck (result_t ec) : _ec (ec) {};
+
+ // Returns the result of the check. Can be (bitmask):
+ // OP_OK_EVENT, OP_INVALID_EVENT, OP_INVALID_UM, OP_INVALID_COUNTER
+ inline result_t get_result (void) const { return _ec; };
+
+ private:
+ // The result from the check
+ result_t _ec;
+ };
+
+ // Get the default sample directory
+ inline static const char* get_default_samples_dir (void) { return OP_SAMPLES_DIR; };
+
+ // Get the default lock filename
+ inline static const char* get_default_lock_file (void) { return OP_LOCK_FILE; };
+
+ // Get the default log filename
+ inline static const char* get_default_log_file (void) { return OP_LOG_FILE; };
+
+ // Get the default dump status filename
+ inline static const char* get_default_dump_status (void) { return OP_DUMP_STATUS; };
+
+ // Converts the given string into an enum op_cpu
+ static op_cpu str_to_op_cpu (const char* const cpu_str);
+
+ // Constructors
+ opinfo (op_cpu cpu_type = op_get_cpu_type (), std::string dir = get_default_samples_dir ());
+
+ // Returns the number of counters for this cpu type
+ int get_nr_counters (void) const;
+
+ // Returns a list of valid events for the given counter on this cpu type
+ void get_events (eventlist_t& list, int ctr) const;
+
+ // Returns the samples directory in use
+ inline const std::string& get_samples_directory (void) const { return _dir; };
+
+ // Returns the CPU frequency in MHz
+ double get_cpu_frequency (void) const;
+
+ // Returns an eventcheck object representing whether the given
+ // CTR, EVENT, and MASK are valid for this cpu type
+ eventcheck check (int ctr, int event, int mask) const;
+
+ // Returns the cpu type being used
+ op_cpu get_cpu_type (void) const { return _cpu_type; };
+
+ private:
+ // The cpu type
+ op_cpu _cpu_type;
+
+ // The sample directory to use
+ std::string _dir;
+};
+
+// Insert operators for various classes defined in this file
+std::ostream& operator<< (std::ostream& os, const opinfo::eventcheck& ec);
+std::ostream& operator<< (std::ostream& os, const opinfo::event_t* event);
+std::ostream& operator<< (std::ostream& os, const opinfo& info);
+#endif // !_OPINFO_H
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/oprofiledb.cc b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/oprofiledb.cc
new file mode 100644
index 0000000000..808e50526a
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/oprofiledb.cc
@@ -0,0 +1,160 @@
+/* oprofile_db - An Oprofile sample file database wrapper.
+ Written by Keith Seitz <keiths@redhat.com>
+ Copyright 2004 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#include <iostream>
+#include <op_sample_file.h>
+#include <string.h>
+
+#include "oprofiledb.h"
+#include "stable.h"
+#include "sample.h"
+
+oprofile_db::oprofile_db (std::string filename)
+ : _filename (filename), _tree (NULL), _symbol_table (NULL), _is_kernel (false)
+{
+}
+
+oprofile_db::~oprofile_db ()
+{
+ _close_db ();
+ samples_t::iterator i = _samples.begin ();
+ while (i != _samples.end ())
+ {
+ delete SAMPLE (*i);
+ ++i;
+ }
+ _samples.clear ();
+}
+
+void
+oprofile_db::_open_db (void)
+{
+ if (_tree == NULL)
+ {
+ int rc;
+
+ _tree = new odb_t;
+ rc = odb_open (_tree, _filename.c_str (), ODB_RDONLY, sizeof (opd_header));
+ if (rc != 0)
+ {
+ // This shouldn't happen, but let's at least print something out.
+ std::cerr << "Error opening oprofile database: " << strerror (rc)
+ << std::endl;
+ return;
+ }
+
+ // Get the is_kernel parameter: this is needed for sample gathering later
+ const opd_header* hdr = static_cast<opd_header*> (odb_get_data (_tree));
+ _is_kernel = (hdr->is_kernel != 0);
+ }
+}
+
+void
+oprofile_db::_close_db (void)
+{
+ if (_tree != NULL)
+ {
+ odb_close (_tree);
+ delete _tree;
+ }
+
+ _tree = NULL;
+}
+
+static void
+samples_odb_travel (odb_t* hash, int start, int end, oprofile_db::callback_t callback, void* data)
+{
+ odb_node_nr_t node_nr, pos;
+ odb_node_t* node = odb_get_iterator (hash, &node_nr);
+ for (pos = 0; pos < node_nr; ++pos)
+ {
+ if (node[pos].key)
+ callback (node[pos].key, node[pos].value, data);
+ }
+}
+
+void
+oprofile_db::walk_samples (callback_t callback, void* data)
+{
+ _open_db ();
+ samples_odb_travel (_tree, 0, ~0, callback, data);
+ _close_db ();
+}
+
+const oprofile_db::samples_t&
+oprofile_db::get_samples (symboltable* stable)
+{
+ _symbol_table = stable;
+ walk_samples (_get_samples_callback, this);
+ _symbol_table = NULL;
+ return _samples;
+}
+
+bool
+oprofile_db::has_samples (void)
+{
+ walk_samples (_has_samples_callback, this);
+ return _has_samples;
+}
+
+long
+oprofile_db::get_count (void)
+{
+ long count = 0;
+ walk_samples (_get_count_callback, &count);
+ return count;
+}
+
+// This is a callback from oprofile when traveling the samples in the sample file.
+void
+oprofile_db::_get_samples_callback (odb_key_t key, odb_value_t info, void* data)
+{
+ oprofile_db* odb = static_cast<oprofile_db*> (data);
+
+ symbol* symbol = NULL;
+ bfd_vma real_addr;
+ if (odb->_symbol_table != NULL)
+ symbol = odb->_symbol_table->lookup_vma ((bfd_vma) key, real_addr, odb->_is_kernel);
+
+ // Oprofile can have multiple samples for the same VMA, so look in the
+ // our map/database and see if the given VMA exists. If it does not exist,
+ // add a new Sample. If it does exist, just increment the count of the Sample
+ // by INFO.
+ samples_t::iterator i = odb->_samples.find ((bfd_vma) key);
+ if (i == odb->_samples.end ())
+ {
+ // new sample
+ sample* s = new sample (real_addr, symbol, info);
+ odb->_samples.insert (sample_t (key, s));
+ }
+ else
+ {
+ // existing sample
+ SAMPLE (*i)->incr_count (info);
+ }
+}
+
+void
+oprofile_db::_has_samples_callback (odb_key_t key, odb_value_t info, void* data)
+{
+ oprofile_db* odb = static_cast<oprofile_db*> (data);
+ if (info > 0)
+ odb->has_samples (true);
+}
+
+void
+oprofile_db::_get_count_callback (odb_key_t key, odb_value_t info, void* data)
+{
+ long* count = static_cast<long*> (data);
+ *count += info;
+}
+
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/oprofiledb.h b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/oprofiledb.h
new file mode 100644
index 0000000000..23e83a2ce0
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/oprofiledb.h
@@ -0,0 +1,92 @@
+/* oprofile_db - An Oprofile sample file database wrapper.
+ Written by Keith Seitz <keiths@redhat.com>
+ Copyright 2004 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#ifndef _OPROFILEDB_H
+#define _OPROFILEDB_H
+
+#include <map>
+#include <string>
+#include <bfd.h>
+#include <odb.h>
+
+class sample;
+class symboltable;
+
+// A class which represents an oprofile sample database. This is much
+// lower-level stuff than class samplefile.
+class oprofile_db
+{
+ public:
+ typedef void (*callback_t)(odb_key_t, odb_value_t, void*);
+
+ // Creates an oprofile_db from the given sample file
+ oprofile_db (std::string sample_file);
+ ~oprofile_db ();
+
+ // Function object used to compare VMA for sorting
+ struct ltvma
+ {
+ bool operator() (const bfd_vma a, const bfd_vma b) const
+ { return (a < b); }
+ };
+
+ // The type of the sample database returned be get_samples
+ typedef std::map<const bfd_vma, sample*, ltvma> samples_t;
+
+ // The type of one sample in the database
+ typedef std::pair<const bfd_vma, sample*> sample_t;
+
+ // Macro to fetch the sample from the sample_t.
+ static inline sample* SAMPLE (sample_t sample) { return sample.second; }
+
+ // Retrieves the sample database using STABLE as a symbol table (may be NULL)
+ const samples_t& get_samples (symboltable* stable);
+
+ // Set/query whether the db has any samples in it
+ bool has_samples (void);
+ void has_samples (bool yesno) { _has_samples = yesno; };
+
+ // Get the total number of samples in this samplefile
+ long get_count (void);
+
+ // Walks the samples with the given callback
+ void walk_samples (callback_t callback, void* data);
+
+ protected:
+ // Callbacks for walking oprofile sample database
+ static void _get_samples_callback (odb_key_t key, odb_value_t info, void* data);
+ static void _has_samples_callback (odb_key_t key, odb_value_t info, void* data);
+ static void _get_count_callback (odb_key_t key, odb_value_t info, void* data);
+
+ // Makes sure the oprofile sample file is open
+ void _open_db (void);
+
+ // Closes the oprofile sample file
+ void _close_db (void);
+
+ // The sample file
+ std::string _filename;
+
+ // The oprofile sample database for the file
+ odb_t* _tree;
+
+ // A map of all the samples
+ samples_t _samples;
+
+ // The symbol table used to resolve VMA into symbols
+ symboltable* _symbol_table;
+
+ bool _has_samples;
+ callback_t _callback;
+ bool _is_kernel;
+};
+#endif // !_OPROFILEDB_H
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/opxml.cc b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/opxml.cc
new file mode 100644
index 0000000000..55dfb2b08c
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/opxml.cc
@@ -0,0 +1,495 @@
+/* Opxml a simple program to output XML descriptions of oprofile sample
+ files (and a little more). This program exists as a bridge between
+ GPL'd software (oprofile and BFD) and EPL'd software (Eclipse).
+ Written by Keith Seitz <keiths@redhat.com>
+ Edited by Kent Sebastian <ksebasti@redhat.com>
+
+ Copyright 2004, 2008, 2009 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#include <stdlib.h>
+#include <iostream>
+#include <string.h>
+#include <getopt.h>
+#include <errno.h>
+#include <iterator>
+#include <vector>
+#include <set>
+
+#include "opinfo.h"
+#include "oxmlstream.h"
+#include "session.h"
+#include "sample.h"
+#include "sevent.h"
+
+using namespace std;
+
+// Enum describing info options
+enum options
+{
+ INFO,
+ CHECK_EVENT,
+ MODEL_DATA,
+ SESSIONS
+};
+
+// Strings of options
+static const char* options[] =
+{
+ "info",
+ "check-events",
+ "model-data",
+ "sessions",
+ 0
+};
+
+// Help for options
+struct help
+{
+ const char* arg;
+ const char* desc;
+};
+
+static const struct help args_help[] =
+{
+ {"[CPU]\t\t\t", "information for given cpu (defualt: current cpu)" },
+ {"CTR EVENT UMASK\t", "check counter/event validity"},
+ {"EVENT SESSION\t", "get model data (image, symbols, samples..) for given SESSION and EVENT"},
+ {"\t\t\t", "get session information"}
+};
+
+//hacky struct to ensure that the default session is
+// always printed out first (and the rest alphabetical)
+struct sevent_comp {
+ bool operator() (const sessionevent* lhs, const sessionevent* rhs) { return (lhs->get_session()->get_name() < rhs->get_session()->get_name()); }
+};
+
+typedef set<sessionevent*, struct sevent_comp > ordered_sessions_t;
+struct session_list_t {
+ sessionevent* default_sevent;
+ ordered_sessions_t* sessions;
+};
+
+
+
+const string DEFAULT_SESSION_NAME = "current";
+
+// Local functions
+static void print_usage (const char* const argv0);
+static int get_option_index (const char* options[], const char* arg);
+static void wrong_num_arguments (int argc, char* argv[], const char* opts);
+static int get_integer (const char* arg);
+
+// Info handlers
+static int info (opinfo& info, int argc, char* argv[]);
+static int check_events (opinfo& info, int argc, char* argv[]);
+static int model_data (opinfo& info, int argc, char* argv[]);
+static int sessions (opinfo& info, int argc, char* argv[]);
+
+//helper function
+static bool object_in_list(const string obj, const vector<string>& objects);
+
+
+static void
+wrong_num_arguments (int argc, char* argv[], const char* opts)
+{
+ cerr << "wrong # args: should be \"";
+ for (int i = 0; i < argc; ++i)
+ cerr << argv[i] << " ";
+
+ cerr << opts << "\"" << endl;
+ exit (EXIT_FAILURE);
+}
+
+// Converts the argument into its corresponding option index
+static int
+get_option_index (const char* options[], const char* arg)
+{
+ const char* option;
+
+ int i = 0;
+ for (option = options[0]; option != NULL; option = options[++i])
+ {
+ if (strncmp (option, arg, strlen (arg)) == 0)
+ return i;
+ }
+
+ return -1;
+}
+
+// Prints a small help message
+static void
+print_help (const char* const argv0)
+{
+ cerr << "Use '" << argv0 << " --help' for a complete list of options."
+ << endl;
+}
+
+// Prints the usage of this program
+static void
+print_usage (const char* const argv0)
+{
+ cerr << argv0 << ": usage: " << argv0 << " [OPTION] INFO [INFO_OPTIONS]" << endl;
+ cerr << "Supply information about Oprofile and its sample files." << endl << endl;
+ cerr << "Options:" << endl << endl;
+ cerr << "-c, --cpu CPU_TYPE\t\t cpu type (current: "
+ << op_get_cpu_type_str (op_get_cpu_type ()) << ")" << endl;
+ cerr << "-d, --dir SAMPLES_DIR\t\t set sample directory (default: "
+ << opinfo::get_default_samples_dir () << ")" << endl;
+
+ cerr << endl << "Types of INFO:" << endl << endl;
+
+ for (unsigned int i = 0; i < (sizeof (args_help) / sizeof (args_help[0])); ++i)
+ {
+ cerr << options[i] << " " << args_help[i].arg << " "
+ << args_help[i].desc << endl;
+ }
+}
+
+int
+main (int argc, char* argv[])
+{
+ const char* argv0 = argv[0];
+
+ if (argc < 2)
+ {
+ print_help (argv0);
+ exit (EXIT_FAILURE);
+ }
+
+ op_cpu cpu_type = op_get_cpu_type ();
+ string dir = opinfo::get_default_samples_dir ();
+
+ static struct option long_options[] =
+ {
+ {"cpu-type", required_argument, 0, 'c'},
+ {"dir", required_argument, 0, 'd'},
+ {"help", no_argument, 0, 'h'},
+ {0, 0, 0, 0}
+ };
+
+ int index;
+ while (true)
+ {
+ int c;
+ c = getopt_long_only (argc, argv, "+", long_options, &index);
+ if (c == -1)
+ break;
+
+ if (c == 0 && long_options[index].flag == 0)
+ c = long_options[index].val;
+
+ switch (c)
+ {
+ case 'c':
+ cpu_type = opinfo::str_to_op_cpu (optarg);
+ if (cpu_type == CPU_NO_GOOD)
+ {
+ cerr << argv0 << ": cpu \"" << optarg << "\" not recognized"
+ << endl;
+ exit (EXIT_FAILURE);
+ }
+ break;
+
+ case 'd':
+ dir = optarg;
+ break;
+
+ case 'h':
+ print_usage (argv0);
+ exit (EXIT_SUCCESS);
+ break;
+
+ case '?':
+ print_help (argv0);
+ exit (EXIT_FAILURE);
+ }
+ }
+
+ // Check that we have a valid cpu type. It can be invalid (here) because
+ // the Oprofile module not loaded/running. Oprofile library will output error.
+ if (cpu_type == CPU_NO_GOOD)
+ exit (EXIT_FAILURE);
+
+ argc -= optind;
+ argv += optind;
+
+ if (argc == 0)
+ {
+ print_help (argv0);
+ exit (EXIT_FAILURE);
+ }
+
+ int rc;
+ opinfo oinfo (cpu_type, dir);
+ index = get_option_index (options, argv[0]);
+ {
+ switch ((enum options) index)
+ {
+ case INFO:
+ rc = info (oinfo, argc, argv);
+ break;
+
+ case CHECK_EVENT:
+ rc = check_events (oinfo, argc, argv);
+ break;
+
+ case MODEL_DATA:
+ rc = model_data(oinfo, argc, argv);
+ break;
+
+ case SESSIONS:
+ rc = sessions (oinfo, argc, argv);
+ break;
+
+ default:
+ cerr << argv0 << ": unknown option \"" << argv[0] << "\""
+ << endl;
+ print_help (argv0);
+ rc = EXIT_FAILURE;
+ }
+ }
+
+ return rc;
+}
+
+/* Get an integer value from the argument. Only does ints > 0.
+ Returns the integer or -1. */
+static int
+get_integer (const char* arg)
+{
+ errno = 0;
+ int integer = strtol (arg, NULL, 10);
+ if (errno != 0)
+ return -errno;
+
+ return integer;
+}
+
+/* Output static information about oprofile for this cpu type. */
+static int
+info (opinfo& info, int argc, char* argv[])
+{
+ oxmlstream oxml (cout);
+ oxml << info << endxml;
+ return EXIT_SUCCESS;
+}
+
+/* Check whether the given counter/event/umask info is valid.
+ *
+ * Input: COUNTER EVENT UMASK (all integers)
+ * Note: output is a BITMASK of errors. Expect multiple "result" fields on error.
+ */
+static int
+check_events (opinfo& info, int argc, char* argv[])
+{
+ if (argc != 4)
+ wrong_num_arguments (1, argv, "counter event umask");
+
+ int counter = get_integer (argv[1]);
+ if (counter < 0)
+ {
+ cerr << "invalid counter \"" << argv[1] << "\"" << endl;
+ return EXIT_FAILURE;
+ }
+
+ if (counter >= info.get_nr_counters ())
+ {
+ cerr << "counter must not be greater than "
+ << (info.get_nr_counters () - 1) << endl;
+ return EXIT_FAILURE;
+ }
+
+ int event = get_integer (argv[2]);
+ if (event < 0)
+ {
+ cerr << "invalid event \"" << argv[2] << "\"" << endl;
+ return EXIT_FAILURE;
+ }
+
+ int umask = get_integer (argv[3]);
+ if (umask < 0)
+ {
+ cerr << "invalid unit mask \"" << argv[3] << "\"" << endl;
+ return EXIT_FAILURE;
+ }
+
+ opinfo::eventcheck result = info.check (counter, event, umask);
+
+ oxmlstream oxml (cout);
+ oxml << result << endxml;
+ return EXIT_SUCCESS;
+}
+
+/* Print out the samples associated with the given session
+ *
+ * Input:
+ * event name
+ * session name (a default session is 'current')
+ */
+static int
+model_data (opinfo& info, int argc, char* argv[])
+{
+ //TODO: should this be xml so the parser can parse such an error?
+ if (argc < 3)
+ wrong_num_arguments (1, argv, "event session");
+
+ string event (argv[1]);
+ string session_name (argv[2]);
+
+ vector<string> object_list;
+ if (argc >= 3)
+ {
+ //make a list of binary paths to filter out images
+ for (int j = 3; j < argc; j++) {
+ object_list.insert(object_list.begin(), argv[j]);
+ }
+ }
+ session session (session_name, &info);
+
+ //passing the object list in here filters the images that
+ // are added to the sessionevent from an early stage
+ sessionevent* sevent = session.get_event (event);
+
+ if (sevent == NULL)
+ {
+ oxmlstream oxml (cout);
+ oxml << startt ("error");
+
+ oxml << "no such session, event or matching images: "
+ << "session=" << session_name
+ << "; event=" << event
+ << endt << endxml;
+
+ return EXIT_FAILURE;
+ }
+
+ sessionevent::profileimages_t* images = sevent->get_images ();
+
+ oxmlstream oxml (cout);
+ oxml << startt ("model-data");
+
+ sessionevent::profileimages_t::iterator i;
+ for (i = images->begin (); i != images->end (); ++i)
+ {
+ if (object_list.empty() || object_in_list((*i)->get_name(),object_list))
+ oxml << (*i);
+ }
+
+ oxml << endt << endxml;
+
+ // delete sevent; -- don't do this: it takes too much time!
+ return EXIT_SUCCESS;
+}
+
+static bool
+object_in_list(const string obj, const vector<string>& objects) {
+ vector<string>::const_iterator it;
+
+ for (it = objects.begin(); it != objects.end(); it++) {
+ if ((*it) == obj) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+//The special case handling for the default event is to enusure it is always
+// the first event ouput. This is for usability of the UI on the java side
+// so that the current session is always the first in the view.
+static int
+sessions (opinfo& info, int argc, char* argv[])
+{
+ session::sessionlist_t sessions;
+ sessions = session::get_sessions (info);
+
+
+ /* This seems goofy, but this is best for the UI.
+ Arrange the sessions by the event that they collected. */
+
+ typedef map<string, struct session_list_t* > eventlist_t;
+ eventlist_t eventlist;
+
+ session::sessionlist_t::iterator sit = sessions.begin ();
+ session::sessionlist_t::iterator const send = sessions.end ();
+ for (; sit != send; ++sit)
+ {
+ session* s = *sit;
+ session::seventlist_t events = s->get_events ();
+
+ session::seventlist_t::iterator sit = events.begin ();
+ for (; sit != events.end (); ++sit)
+ {
+ sessionevent* sevent = *sit;
+ string event = sevent->get_name ();
+
+ if (eventlist.find (event) == eventlist.end ())
+ {
+ // New event -- new event, and new list of sessions
+ struct session_list_t* sl = (session_list_t*)malloc(sizeof(session_list_t*));
+ sl->default_sevent = NULL;
+ sl->sessions = new ordered_sessions_t;
+
+ //check if it's the default session
+ if (s->get_name() == DEFAULT_SESSION_NAME) {
+ sl->default_sevent = sevent;
+ } else {
+ sl->sessions->insert(sevent);
+ }
+
+ eventlist.insert (pair<string, session_list_t*> (event, sl));
+ }
+ else
+ {
+ // Known event -- add this session to the existing list for this event
+
+ //check if it's the default session
+ if (s->get_name() == DEFAULT_SESSION_NAME) {
+ eventlist[event]->default_sevent = sevent;
+ } else {
+ eventlist[event]->sessions->insert(sevent);
+ }
+ }
+ }
+ }
+
+ // Done compiling the list of events. Output information.
+ oxmlstream oxml (cout);
+ oxml << startt ("sessions");
+
+ if (!eventlist.empty ())
+ {
+ eventlist_t::iterator elit;
+ for (elit = eventlist.begin (); elit != eventlist.end (); ++elit)
+ {
+ string event = elit->first;
+
+ sessionevent* default_sevent = elit->second->default_sevent;
+ ordered_sessions_t* sessionlist = elit->second->sessions;
+
+ oxml << startt ("event") << attrt ("name", event);
+
+ if (default_sevent != NULL)
+ oxml << default_sevent;
+
+ copy (sessionlist->begin (), sessionlist->end (), ostream_iterator<sessionevent*> (oxml, ""));
+ oxml << endt;
+
+ if (default_sevent != NULL)
+ free(default_sevent);
+ delete sessionlist;
+ }
+ }
+
+ oxml << endt << endxml;
+
+ return EXIT_SUCCESS;
+}
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/oxmlstream.h b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/oxmlstream.h
new file mode 100644
index 0000000000..9166d4a01c
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/oxmlstream.h
@@ -0,0 +1,27 @@
+/* oxmlstream.h - A convenience class for outputting XML.
+ Written by Keith Seitz <keiths@redhat.com>
+ Copyright 2003, Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#ifndef _OXMLSTREAM_H
+#define _OXMLSTREAM_H
+#include <ostream>
+#include "xmlbuf.h"
+#include "xmlfmt.h"
+
+// An ostream which outputs in XML. See xmlfmt.h for XML operators.
+class oxmlstream : public std::ostream
+{
+ public:
+ // Constructor - pass ostream onto which XML should be output.
+ oxmlstream (std::ostream& os) : std::ostream (new xmlbuf (os)) {}
+ ~oxmlstream () { delete rdbuf (); }
+};
+#endif // ! _OXMLSTREAM_H
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/profileimage.cc b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/profileimage.cc
new file mode 100644
index 0000000000..d0c34f8362
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/profileimage.cc
@@ -0,0 +1,341 @@
+/* profileimage - A class which represents a single image for
+ which oprofile has samples (or for which some child dependency
+ has samples).
+ Written by Keith Seitz <keiths@redhat.com>
+ Edited by Kent Sebastian <ksebasti@redhat.com>
+ Copyright 2004,2008 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#include "profileimage.h"
+
+#include <stdio.h>
+#include <iostream>
+#include <iterator>
+#include <set>
+#include <list>
+
+#include "sample.h"
+#include "imageheader.h"
+#include "xmlfmt.h"
+
+using namespace std;
+
+profileimage::profileimage (samplefile* sfile)
+ : _samplefile (sfile), _header (NULL)
+{
+ _dependencies = new list<profileimage*>;
+}
+
+profileimage::~profileimage ()
+{
+ delete _samplefile;
+ delete _dependencies;
+ if (_header != NULL)
+ delete _header;
+}
+
+// returns parsed_filename.image if top-level image
+// or parsed_filename.lib_image if dependency
+string
+profileimage::get_name (void) const
+{
+ if (!_samplefile->has_samplefile ())
+ {
+ // We have no sample file for this object -- look for
+ // the image name in the first dependency
+ list<profileimage*>::iterator i = _dependencies->begin ();
+ if (i != _dependencies->end ())
+ return (*i)->get_samplefile ()->get_image ();
+ else
+ {
+ // Can this happen? I don't think so, but...
+ cerr << "WARNING: empty profileimage at " << __FILE__
+ << ":" << __LINE__ << endl;
+ return "";
+ }
+ }
+
+ return _samplefile->get_name ();
+}
+
+long
+profileimage::get_count (void) const
+{
+ return _samplefile->get_sample_count ();
+}
+
+void
+profileimage::add_dependency (profileimage* image)
+{
+ _dependencies->push_back (image);
+}
+
+const imageheader*
+profileimage::get_header (void)
+{
+ if (_header == NULL)
+ {
+ samplefile* sfile;
+ if (_samplefile->has_samplefile ())
+ sfile =_samplefile;
+ else
+ {
+ // No samplefile -- use first dependency
+ list<profileimage*>::iterator i = _dependencies->begin ();
+ if (i != _dependencies->end ())
+ sfile = (*i)->get_samplefile ();
+ else
+ {
+ // Can this happen? I don't think so, but...
+ cerr << "WARNING: empty profileimage at " << __FILE__
+ << ":" << __LINE__ << endl;
+ return NULL;
+ }
+ }
+
+ _header = new imageheader (sfile);
+ }
+
+ return _header;
+}
+
+/*
+ * This loops through the samples and symbols for the image
+ * and organizes them in a top down manner so that they can
+ * be output as below:
+ *
+ *
+ * IMAGE name=""
+ * SYMBOL1 name="" file=""
+ * SAMPLE1 --\
+ * .. |-- this done by sample's operator<<
+ * SAMPLEN --/
+ * ..
+ * SYMBOLN
+ *
+ *
+ * Note that this will only output info if there are symbols
+ * for the specified image.
+ *
+ */
+ostream&
+operator<< (ostream& os, profileimage* image)
+{
+ samplefile* sfile;
+
+ if (image->get_samplefile ()->has_samplefile ())
+ {
+ sfile = image->get_samplefile();
+
+ //index the symbols by their bfd symbol
+ map<const asymbol*, symbol*> symbols;
+
+ //a list of samples collapsed by file & line number
+ list<sample*> samples_aggregated;
+
+ //get a list of samples from this image
+ samplefile::samples_t all_samples = sfile->get_samples();
+
+ //loop through samples, collapsing those with the same sample and line #
+ for (samplefile::samples_t::iterator i = all_samples.begin (); i != all_samples.end (); ++i)
+ {
+ const sample* smpl = samplefile::SAMPLE (*i);
+
+ if (smpl->has_symbol())
+ {
+ unsigned int line = 0;
+ const char* func = NULL;
+ const char* file = NULL;
+ sfile->get_debug_info (smpl->get_vma (), func, file, line);
+
+ //these are deleted in add_sample or at the end of this method
+ sample* new_sample = new sample(smpl->get_vma(), smpl->get_symbol(), smpl->get_count(), line);
+
+ add_sample(samples_aggregated, new_sample);
+ }
+ }
+
+ //loop through the samples, find all unique symbols
+ //add the sample to the symbol's list of samples
+ for (list<sample*>::iterator i = samples_aggregated.begin (); i != samples_aggregated.end (); ++i)
+ {
+ if ((*i)->has_symbol())
+ {
+ unsigned int line = 0;
+ const char* func = NULL;
+ const char* file = NULL;
+ sfile->get_debug_info ((*i)->get_vma (), func, file, line);
+
+ //deleted when output later
+ symbol* new_symbol = new symbol((*i)->get_symbol()->get_asymbol(), (file == NULL ? "" : file) );
+
+ //duplicates aren't inserted because of the unique asymbol*
+ symbols.insert(pair<const asymbol*, symbol*>(new_symbol->get_asymbol(),new_symbol));
+
+ //this symbol must be in the map, either it was just added or it was already there
+ symbols[(*i)->get_symbol()->get_asymbol()]->add_sample((*i));
+
+ //add to total count of the symbol
+ symbols[(*i)->get_symbol()->get_asymbol()]->add_count((*i)->get_count());
+ }
+ }
+
+ char buf[11];
+ long total_count = sfile->get_sample_count() + get_dependent_count(image->get_dependencies());
+ sprintf(buf,"%ld", total_count);
+
+ os << startt ("image")
+ << attrt ("name", get_name(image))
+ << attrt ("count", buf);
+
+ if (symbols.size() > 0) {
+ os << startt("symbols");
+
+ set<symbol*, symbol_comp>* sorted_symbols = sort_symbols(&symbols);
+
+ //output the symbols, and free their memory
+ for (set<symbol*, symbol_comp>::iterator i = sorted_symbols->begin(); i != sorted_symbols->end(); ++i)
+ {
+ os << *i;
+ delete *i;
+ }
+
+ os << endt; // </symbols>
+ sorted_symbols->clear();
+ symbols.clear();
+ }
+
+ //free the memory from the allocated samples
+ for (list<sample*>::iterator i = samples_aggregated.begin(); i != samples_aggregated.end(); ++i)
+ {
+// cerr << (*i)->get_demangled_name() << " " << (*i)->get_line() << " " << (*i)->get_count() << endl;
+ delete (*i);
+ }
+ samples_aggregated.clear();
+
+
+ //output dependent images
+ list<profileimage*>* deps = image->get_dependencies ();
+ if (!deps->empty())
+ {
+ char buf[21];
+ sprintf(buf,"%ld", get_dependent_count(deps));
+
+ os << startt ("dependent")
+ << attrt ("count", buf);
+
+ set<profileimage*, depimage_comp>* ordered_deps = sort_depimages(deps);
+
+ copy (ordered_deps->begin (), ordered_deps->end (), ostream_iterator<profileimage*> (os, ""));
+ os << endt;
+ }
+
+ os << endt; //</image>
+ }
+
+ return os;
+}
+
+//Adds the sample new_sample to the container samples.
+//
+//This method is required to collapse multiple samples that
+// occur on the same line, since one line can correspond to
+// more than one instructions and hence multiple samples
+// occur for the same line of code.
+void
+add_sample(list<sample*> &samples, sample* new_sample)
+{
+ bool added = false;
+
+ if (samples.size() == 0)
+ {
+ samples.push_back(new_sample);
+ }
+ else
+ {
+ for (list<sample*>::iterator i = samples.begin(); i != samples.end(); ++i)
+ {
+ //compare based on the symbols (bfd symbol ptr) and line number
+ if ((*i)->get_symbol()->get_asymbol() == new_sample->get_symbol()->get_asymbol() &&
+ (*i)->get_line() == new_sample->get_line())
+ {
+ //sample exists -- remove from vector, aggregate, reinsert
+ sample* s = new sample( (*i)->get_vma(),
+ (*i)->get_symbol(),
+ (*i)->get_count() + new_sample->get_count(),
+ (*i)->get_line());
+
+ delete (*i);
+ samples.erase(i);
+ samples.push_back(s);
+ added = true;
+ break;
+ }
+ }
+
+ if (!added)
+ {
+ samples.push_back(new_sample);
+ }
+ }
+}
+
+long
+get_dependent_count(const list<profileimage*>* const deps)
+{
+ long dep_count = 0;
+
+ //get total count for all the dependent images
+ for (list<profileimage*>::const_iterator i = deps->begin(); i != deps->end(); ++i)
+ {
+ dep_count += (*i)->get_samplefile()->get_sample_count();
+ }
+
+ return dep_count;
+}
+
+//special case name for VDSO
+string
+get_name(const profileimage* p)
+{
+ string name = p->get_name();
+
+ if (name == "")
+ {
+ //FIXME: any better way to do this?
+ if ((p->get_samplefile()->get_sample_file_name()).find("{anon:[vdso]}",0) != string::npos)
+ {
+ name = VDSO_NAME_STRING;
+ }
+ }
+
+ return name;
+}
+
+set<profileimage*, depimage_comp>*
+sort_depimages(const std::list<profileimage*>* const deps) {
+ set<profileimage*, depimage_comp>* sorted_deps = new set<profileimage*, depimage_comp>();
+ for (list<profileimage*>::const_iterator i = deps->begin(); i != deps->end(); ++i) {
+ sorted_deps->insert((*i));
+ }
+
+ return sorted_deps;
+}
+
+set<symbol*, symbol_comp>*
+sort_symbols(const std::map<const asymbol*, symbol*>* const symbols) {
+ set<symbol*, symbol_comp>* sorted_syms = new set<symbol*, symbol_comp>();
+
+ for (map<const asymbol*, symbol*>::const_iterator i = symbols->begin(); i != symbols->end(); ++i) {
+ sorted_syms->insert(i->second);
+ }
+
+ return sorted_syms;
+}
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/profileimage.h b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/profileimage.h
new file mode 100644
index 0000000000..2639a76b86
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/profileimage.h
@@ -0,0 +1,106 @@
+/* profileimage - A class which represents a single image for
+ which oprofile has samples (or for which some child dependency
+ has samples).
+ Written by Keith Seitz <keiths@redhat.com>
+ Edited by Kent Sebastian <ksebasti@redhat.com>
+ Copyright 2004,2008 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#ifndef _PROFILEIMAGE_H
+#define _PROFILEIMAGE_H
+
+#include <list>
+#include <string>
+#include <set>
+
+#include "samplefile.h"
+#include "symbol.h"
+
+#define VDSO_NAME_STRING "[vdso]"
+
+class sample;
+class imageheader;
+
+class profileimage
+{
+ public:
+ // Constructor - pass in the samplefile; CANNOT BE NULL.
+ profileimage (samplefile* sfile);
+
+ // Destructor
+ ~profileimage ();
+
+ // Returns the name of this image; it is the name of the actual binary
+ // in which samples were collected.
+ std::string get_name (void) const;
+
+ // Returns the image header for this image
+ const imageheader* get_header (void);
+
+ // Add the given profileimage as a dependency of this image
+ void add_dependency (profileimage* image);
+
+ // Returns a list of all the dependencies of this image
+ std::list<profileimage*>* get_dependencies (void) const { return _dependencies; };
+
+ // Returns the Oprofile samplefile for this image
+ samplefile* get_samplefile (void) const { return _samplefile; };
+
+ // Returns the count of all the samples collected in this image, excluding dependencies
+ long get_count (void) const;
+
+ private:
+ // The samplefile (non-NULL)
+ samplefile* _samplefile;
+
+ // List of dependencies
+ std::list<profileimage*>* _dependencies;
+
+ // Image header
+ imageheader* _header;
+};
+
+struct depimage_comp {
+ bool operator() (const profileimage* lhs, const profileimage* rhs)
+ {
+ if (lhs->get_count() == rhs->get_count())
+ if (lhs->get_name() == rhs->get_name())
+ return true;
+ else
+ return lhs->get_name() < rhs->get_name();
+ else
+ return lhs->get_count() > rhs->get_count();
+ }
+};
+
+struct symbol_comp {
+ bool operator() (const symbol* lhs, const symbol* rhs)
+ {
+ if (lhs->get_count() == rhs->get_count())
+ {
+ std::string ln(lhs->name()), rn(rhs->name());
+ if (ln == rn)
+ return true;
+ else
+ return ln < rn;
+ }
+ else
+ return lhs->get_count() > rhs->get_count();
+ }
+};
+
+
+std::ostream& operator<< (std::ostream& os, profileimage* image);
+void add_sample(std::list<sample*> &samples, sample* new_sample);
+long get_dependent_count(const std::list<profileimage*>* const deps);
+std::set<profileimage*, depimage_comp>* sort_depimages(const std::list<profileimage*>* const deps);
+std::set<symbol*, symbol_comp>* sort_symbols(const std::map<const asymbol*, symbol*>* const symbols);
+std::string get_name(const profileimage* p);
+#endif // !_PROFILEIMAGE_H
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sample.cc b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sample.cc
new file mode 100644
index 0000000000..820b378fc1
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sample.cc
@@ -0,0 +1,57 @@
+/* sample - A class which represents an Oprofile sample
+ Written by Keith Seitz <keiths@redhat.com>
+ Edited by Kent Sebastian <ksebasti@redhat.com>
+ Copyright 2004,2008 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#include "sample.h"
+#include "xmlfmt.h"
+#include "symbol.h"
+
+using namespace std;
+
+// Constructor - pass in sample's address, any associated symbol, count,
+sample::sample(bfd_vma addr, symbol* sym, unsigned int count)
+ : _addr (addr), _symbol (sym), _count (count)
+{
+}
+
+sample::sample(bfd_vma addr, const symbol* sym, unsigned int count, unsigned int line)
+ : _addr (addr), _symbol (sym), _count (count), _line (line)
+{
+}
+
+const char*
+sample::get_name (void) const
+{
+ return (has_symbol () ? _symbol->name () : NULL);
+}
+
+const char*
+sample::get_demangled_name (void) const
+{
+ return (has_symbol () ? _symbol->demangled_name () : NULL);
+}
+
+/*
+ * <sample>
+ * <count>4312</count>
+ * <line>41</line>
+ * </sample>
+ */
+ostream&
+operator<< (ostream& os, const sample* s)
+{
+ os << startt ("sample")
+ << startt ("count") << s->get_count () << endt
+ << startt ("line") << s->get_line() << endt;
+
+ return os << endt;
+}
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sample.h b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sample.h
new file mode 100644
index 0000000000..f3940fe97f
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sample.h
@@ -0,0 +1,78 @@
+/* Sample - A class which represents an Oprofile sample
+ Written by Keith Seitz <keiths@redhat.com>
+ Edited by Kent Sebastian <ksebasti@redhat.com>
+ Copyright 2003,2008 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#ifndef _SAMPLE_H
+#define _SAMPLE_H
+#include <stdlib.h>
+#include <bfd.h>
+#include <ostream>
+#include <set>
+
+
+class symbol;
+
+
+class sample
+{
+ public:
+ sample (bfd_vma a, symbol* sym, unsigned int cnt);
+ sample (bfd_vma a, const symbol* sym, unsigned int cnt, unsigned int line);
+
+ // Get the name of the symbol corresponding to this sample
+ // Returns NULL if no symbol.
+ const char* get_name (void) const;
+
+ // Returns the demangled name for this sample
+ const char* get_demangled_name (void) const;
+
+ // Returns the total sample count for this sample
+ inline unsigned int get_count(void) const { return _count; };
+
+ // Increments the total sample count for this sample
+ inline void incr_count (int n) { _count += n; };
+
+ // Does this sample have a symbol?
+ inline bool has_symbol (void) const { return _symbol != NULL; };
+
+ // Returns the symbol for this sample (could be NULL)
+ inline const symbol* get_symbol (void) const { return _symbol; };
+
+ // Gets the real vma for this sample
+ inline bfd_vma get_vma (void) const { return _addr; };
+
+ inline unsigned int get_line() const { return _line; };
+
+ private:
+ // (real) Address of sample
+ bfd_vma _addr;
+
+ // Symbol for sample (according to minimal symbols)
+ const symbol* _symbol;
+
+ // Number of times sample appears in output
+ unsigned int _count;
+
+ //line number -- set in profileimage
+ unsigned int _line;
+
+};
+
+
+struct sample_comp {
+ bool operator() (const sample* lhs, const sample* rhs) { return (lhs->get_count() == rhs->get_count() ? lhs->get_line() < rhs->get_line() : lhs->get_count() > rhs->get_count() ); }
+};
+
+
+// Operator to output samples
+std::ostream& operator<< (std::ostream& os, const sample* s);
+#endif // !_SAMPLE_H
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/samplefile.cc b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/samplefile.cc
new file mode 100644
index 0000000000..2bc55d8477
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/samplefile.cc
@@ -0,0 +1,248 @@
+/* samplefile - A class which represents a samplefile. This class either
+ represents a real disk file or a "fake" one (needed in cases where
+ Oprofile only collected samples in a dependency, like a library).
+ Written by Keith Seitz <keiths@redhat.com>
+ Copyright 2004 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#include "samplefile.h"
+#include "sample.h"
+#include "stable.h"
+#include "xmlfmt.h"
+
+#include <algorithm>
+
+using namespace std;
+
+// From libutil++
+extern bool create_file_list (list<string>& file_list, const string& base_dir,
+ const string& filter = "*", bool recursive = true);
+
+samplefile::samplefile (string filename)
+{
+ _st = NULL;
+ _db = new oprofile_db (filename);
+ _filename = filename;
+ _get_info_from_filename ();
+}
+
+// This seems like a giant waste of time, but when it comes down to processing many
+// hundreds of samplefiles, we really need to be able to do this quickly.
+string
+samplefile::event_for_filename (string filename)
+{
+ string event;
+
+ string::size_type pos = filename.find_last_of ('/');
+ if (pos != string::npos)
+ {
+ string basename = filename.substr (pos + 1, string::npos);
+
+ // Tokenize the basename between the '.'. This seems like a contradiction
+ // to the speed mantra, but consider it a minimal sanity check.
+ vector<string> parts = _tokenize (basename, '.');
+ if (parts.size () == 6)
+ event = parts[0];
+ }
+
+ return event;
+}
+
+void
+samplefile::_get_info_from_filename (void)
+{
+ // First the easy stuff: event specifications
+ // Filenames look like: EVENT.COUNT.UMASK.TGID.TID.CPU
+ string basename;
+ string dir_name;
+ string::size_type pos = _filename.find_last_of ('/');
+ if (pos != string::npos)
+ {
+ dir_name = _filename.substr (0, pos);
+ basename = _filename.substr (pos + 1, string::npos);
+
+ // Tokenize the basename between the '.'
+ vector<string> parts = _tokenize (basename, '.');
+ if (parts.size () == 6)
+ {
+ // Right number of specifications!
+ int i = 0;
+ _event = parts[i++];
+ _count = parts[i++];
+ _unit_mask = parts[i++];
+ _tgid = parts[i++];
+ _tid = parts[i++];
+ _cpu = parts[i++];
+ }
+ else
+ return ;
+
+ /* Now the hard part: the lib and image names */
+
+ // Like the event spec, the easiest way to do this is to tokenize the pathname
+ parts = _tokenize (dir_name, '/');
+
+ // Strip off everything up to either "{root}" or "{kern}"
+ vector<string>::size_type i = 0;
+
+ /* Basically, we have
+ "/path/to/samples/<session>/{root} or {kern}"
+ + "/path/to/executable/{dep}" + "{root}" || "{kern}"
+ + "/path/to/library[/{cg}]
+ [+ "/path/to/callgraph"] */
+
+ // First "token" to look for is "{root}" or "{kern}"
+ for ( ; i < parts.size (); ++i)
+ {
+ if (parts[i] == "{root}" || parts[i] == "{kern}")
+ break;
+ }
+
+ // Skip past "{root}" or "{kern}"
+ ++i;
+
+ // Next "token" is "{dep}". Everything else is image name
+ for ( ; i < parts.size () && parts[i] != "{dep}"; ++i)
+ _image += "/" + parts[i];
+
+ // Skip past "{dep}"
+ ++i;
+
+ // "{dep}" must be followed by "{kern}" or "{root}"
+ if (parts[i] != "{kern}" && parts[i] != "{root}")
+ {
+ // Error. Filename truncated.
+ return;
+ }
+
+ // Skip past "{kern}" or "{root}"
+ ++i;
+
+ // Next "token" will be "{cg}" or string::npos
+ for ( ; i < parts.size () && parts[i] != "{cg}"; ++i)
+ _lib_image += "/" + parts[i];
+
+ // Skip past "{cg}" (or end)
+ ++i;
+
+ // Last bits will be callgraph
+ for ( ; i < parts.size (); ++i)
+ _callgraph += "/" + parts[i];
+ }
+}
+
+vector<string>
+samplefile::_tokenize (const string& str, char delim)
+{
+ vector<string> tokens;
+ string::size_type start, end;
+
+ start = end = 0;
+ while ((end = str.find (delim, start)) != string::npos)
+ {
+ if (start != end ) // ignore zero-length, i.e, str[0] == delim
+ tokens.push_back (str.substr (start, end - start));
+
+ // skip the delimiter character
+ start = end + 1;
+ }
+
+ // add any trailing stuff
+ if (start != str.length ())
+ tokens.push_back (str.substr (start, string::npos));
+
+ return tokens;
+}
+
+samplefile::~samplefile (void)
+{
+ if (_db != NULL)
+ {
+ delete _db;
+ _db = NULL;
+ }
+
+ if (_st != NULL)
+ {
+ delete _st;
+ _st = NULL;
+ }
+}
+
+// DO NOT FREE THE RESULT. ~oprofile_db will do it.
+const samplefile::samples_t
+samplefile::get_samples (void)
+{
+ samplefile::samples_t samples;
+
+ if (has_samplefile ())
+ {
+ if (_st == NULL)
+ {
+ _st = new symboltable (get_name ().c_str ());
+ _st->read_symbols ();
+ }
+
+ samples = _db->get_samples (_st);
+ }
+
+ return samples;
+}
+
+bool
+samplefile::get_debug_info (bfd_vma vma, const char*& func, const char*& file, unsigned int& line)
+{
+ return (_st == NULL ? false : _st->get_debug_info (vma, func, file, line));
+}
+
+void
+samplefile::get_sample_file_list (list<string>& file_list, const string& base_dir)
+{
+ file_list.clear ();
+
+ list<string> files;
+ if (create_file_list (files, base_dir))
+ {
+ list<string>::iterator i;
+ for (i = files.begin (); i != files.end (); ++i)
+ {
+ // Only allow unique filenames into the final list.
+ // (This can happen because we can have multiple counters
+ // for any given sample file.)
+ if (find (file_list.begin (), file_list.end (), *i)
+ == file_list.end ())
+ file_list.push_back (*i);
+ }
+ }
+}
+
+// Output header & list of samples
+/*
+ * <samplefile>/var/lib/oprofile/samples/current/blah/blah/blah</samplefile>
+ * SAMPLE (handled by class sample)
+ */
+ostream&
+operator<< (ostream& os, samplefile* sf)
+{
+ // output the sfile's full pathname (used for fetching debug info)
+ os << startt ("samplefile") << sf->get_sample_file_name () << endt;
+
+ // output list of samples
+ //TODO: grouped by symbol, then line number
+ samplefile::samples_t samples = sf->get_samples ();
+ samplefile::samples_t::iterator s;
+ for (s = samples.begin (); s != samples.end (); ++s)
+ {
+ const sample* smpl = samplefile::SAMPLE (*s);
+ os << smpl;
+ }
+
+ return os;
+}
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/samplefile.h b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/samplefile.h
new file mode 100644
index 0000000000..90ca91c6ec
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/samplefile.h
@@ -0,0 +1,140 @@
+/* samplefile - A class which represents a samplefile. This class either
+ represents a real disk file or a "fake" one (needed in cases where
+ Oprofile only collected samples in a dependency, like a library).
+ Written by Keith Seitz <keiths@redhat.com>
+ Copyright 2004 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#ifndef _SAMPLEFILE_H
+#define _SAMPLEFILE_H
+#include <string>
+#include <list>
+#include <vector>
+
+#include "oprofiledb.h"
+
+class symboltable;
+
+class samplefile
+{
+ public:
+ // The type of a list of samples. STL container with iterators.
+ typedef oprofile_db::samples_t samples_t;
+
+ // The type of a sample. Also an STL container. Use SAMPLE to get at
+ // actual sample.
+ typedef oprofile_db::sample_t sample_t;
+
+ // The type of a list of samplefiles
+ typedef std::list<samplefile*> samplefilelist_t;
+
+ // Convenience function to return the sample associated with
+ // a sample_t
+ static inline sample* SAMPLE (sample_t sample)
+ { return oprofile_db::SAMPLE (sample); };
+
+ // Constructor -- pass in the filename (may be "" when there
+ // were no samples collected for the profileimage, i.e., "fake").
+ samplefile (std::string filename);
+
+ // Destructor
+ ~samplefile (void);
+
+ // Does this sample have a samplefile? This happens when Oprofile has
+ // collected samples for an image, but all those samples were collected
+ // in libraries and other dependencies.
+ bool has_samplefile (void) const
+ { return _filename != ""; };
+
+ // Is this samplefile a dependency?
+ bool is_dependency (void) const
+ { return (!has_samplefile () || (_image != _lib_image)); }
+
+ // Get count of all samples in this file
+ long get_sample_count (void)
+ { return (has_samplefile () ? _db->get_count () : 0); };
+
+ // Returns the filename of this samplefile (or "" if it is "fake")
+ std::string get_sample_file_name (void) const
+ { return _filename; };
+
+ // Returns the image name
+ std::string get_image (void) const
+ { return _image; };
+
+ // Returns the library image name
+ std::string get_lib_image (void) const
+ {return _lib_image; };
+
+ // Returns the logical name of the image in this samplefile, i.e.,
+ // the lib_image if this is a dependency or image_name if not
+ std::string get_name (void) const
+ { return (is_dependency () ? get_lib_image () : get_image ()); };
+
+ // Returns the event name that was collected in this samplefile
+ std::string get_event (void) const
+ { return _event; };
+
+ std::string get_count (void) const
+ { return _count; };
+
+ std::string get_unit_mask (void) const
+ { return _unit_mask; };
+
+ std::string get_tgid (void) const
+ { return _tgid; };
+
+ std::string get_tid (void) const
+ { return _tid; };
+
+ std::string get_cpu (void) const
+ { return _cpu; };
+
+ std::string get_callgraph (void) const
+ { return _callgraph; };
+
+ // Returns a list of all the samples in this samplefile. Do NOT free the result!
+ const samples_t get_samples (void);
+
+ // Returns the debug info for the given VMA.
+ bool get_debug_info (bfd_vma vma, const char*& func, const char*& file, unsigned int& line);
+
+ // Get list of files from base_dir
+ static void get_sample_file_list (std::list<std::string>& file_list,
+ const std::string& base_dir);
+
+ // This may seem like a bad practice, but this is done for speed reasons
+ static std::string event_for_filename (std::string filename);
+
+ private:
+ static std::vector<std::string> _tokenize (const std::string& str, char delim);
+ void _get_info_from_filename (void);
+
+ // The oprofile_db associated with this samplefile
+ oprofile_db* _db;
+
+ // The symbol table opened for the executable represented by this samplefile
+ symboltable* _st;
+
+ // Information about the collection configuration
+ std::string _filename; // Disk filename of samplefile
+ std::string _image; // Name of the image recorded
+ std::string _lib_image; // Name of the library (== _image if not a sub-image)
+ std::string _event;
+ std::string _count;
+ std::string _unit_mask;
+ std::string _tgid;
+ std::string _tid;
+ std::string _cpu;
+ std::string _callgraph;
+};
+
+std::ostream& operator<< (std::ostream& os, samplefile* sf);
+#endif // !_SAMPLEFILE_H
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/session.cc b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/session.cc
new file mode 100644
index 0000000000..7b2bc44d8b
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/session.cc
@@ -0,0 +1,203 @@
+/* session - a class which represents an oprofile session.
+ All sessions occur as directories of the samples directory.
+ Written by Keith Seitz <keiths@redhat.com>
+ Copyright 2003, 2004 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#include "session.h"
+#include <iostream>
+#include <string.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <dirent.h>
+
+#include "sevent.h"
+#include "opinfo.h"
+#include "xmlfmt.h"
+
+using namespace std;
+
+session::session(string name, const opinfo* info)
+ : _name (name), _info (info)
+{
+}
+
+string
+session::get_base_directory (void) const
+{
+ return _info->get_samples_directory () + _name;
+}
+
+session::sessionlist_t
+session::get_sessions (const opinfo& info)
+{
+ sessionlist_t sessions;
+
+ struct stat sbuf;
+ int rc = stat (info.get_samples_directory ().c_str (), &sbuf);
+ if (rc < 0)
+ {
+ cerr << "cannot stat samples directory (" << info.get_samples_directory () << ")"
+ << endl;
+ return sessions;
+ }
+ else if (S_ISDIR (sbuf.st_mode) == 0)
+ {
+ cerr << "samples directory (" << info.get_samples_directory ()
+ << ") is not a directory" << endl;
+ return sessions;
+ }
+
+ DIR* dirp = opendir (info.get_samples_directory ().c_str ());
+ if (dirp == NULL)
+ {
+ cerr << "cannot read samples directory (" << info.get_samples_directory () << ")"
+ << endl;
+ return sessions;
+ }
+
+ struct dirent* dir;
+ while ((dir = readdir (dirp)) != NULL)
+ {
+ if (strcmp (dir->d_name, ".") != 0 && strcmp (dir->d_name, "..") != 0)
+ {
+ string name (dir->d_name);
+ sessions.push_back (new session (name, &info));
+ }
+ }
+
+ return sessions;
+}
+
+// returns NULL if not found
+sessionevent*
+session::get_event (string event_name)
+{
+ list<string> filelist;
+ samplefile::get_sample_file_list (filelist, get_base_directory ());
+
+ // Loop through all sample files, create & populate sessionevents
+ // with sample file lists
+ sessionevent* the_sevent = NULL;
+ list<samplefile*> deps;
+ list<string>::iterator fit = filelist.begin ();
+ for (; fit != filelist.end (); ++fit)
+ {
+ if (samplefile::event_for_filename (*fit) == event_name)
+ {
+ samplefile* sfile = new samplefile (*fit);
+
+ if (!sfile->is_dependency ())
+ {
+ // main image
+ if (the_sevent == NULL)
+ {
+ // found the desired event -- create it
+ the_sevent = new sessionevent (this, event_name);
+ }
+
+ // Add this sample file to the sessionevent
+ the_sevent->add_sample_file (sfile);
+ }
+ else
+ {
+ // dependency -- save it for later resolution
+ deps.push_back (sfile);
+ }
+ }
+ }
+
+ // Now run through the list of dependencies
+ if (the_sevent != NULL)
+ {
+ list<samplefile*>::iterator sfit;
+ for (sfit = deps.begin (); sfit != deps.end (); ++sfit)
+ {
+ samplefile* sfile = *sfit;
+ the_sevent->add_sample_file (sfile);
+ }
+ }
+
+ return the_sevent;
+}
+
+
+
+session::seventlist_t
+session::get_events ()
+{
+ list<string> filelist;
+ samplefile::get_sample_file_list (filelist, get_base_directory ());
+
+ // Loop through all sample files, create & populate sessionevents
+ // with sample file lists
+ seventlist_t events;
+ map<string, sessionevent*> emap;
+ list<samplefile*> deps;
+ list<string>::iterator fit = filelist.begin ();
+ for (; fit != filelist.end (); ++fit)
+ {
+ if (samplefile::event_for_filename (*fit) != "")
+ {
+ samplefile* sfile = new samplefile (*fit);
+ if (!sfile->is_dependency ())
+ {
+ // main image
+ map<string, sessionevent*>::iterator item;
+ item = emap.find (sfile->get_event ());
+ if (item == emap.end ())
+ {
+ // new event -- create sessionevent
+ sessionevent* se = new sessionevent (this, sfile->get_event ());
+
+ // Save this sessionevent in the event map
+ emap.insert (make_pair<string, sessionevent*> (sfile->get_event (), se));
+
+ // Add this sample file to the list
+ se->add_sample_file (sfile);
+
+ // Finally, add this new sessionevent to result
+ events.push_back (se);
+ }
+ else
+ {
+ // Add this sample file to the sessionevent
+ sessionevent* se = (*item).second;
+ se->add_sample_file (sfile);
+ }
+ }
+ else
+ {
+ // dependency -- save it for later resolution
+ deps.push_back (sfile);
+ }
+ }
+ }
+
+ // Now run through the list of dependencies
+ list<samplefile*>::iterator sfit;
+ for (sfit = deps.begin (); sfit != deps.end (); ++sfit)
+ {
+ samplefile* sfile = *sfit;
+ map<string, sessionevent*>::iterator item;
+ item = emap.find (sfile->get_event ());
+ if (item != emap.end ())
+ {
+ sessionevent* se = (*item).second;
+ se->add_sample_file (sfile);
+ }
+ else
+ cerr << "WARNING! dep file with no event!" << endl;
+ }
+
+ return events;
+}
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/session.h b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/session.h
new file mode 100644
index 0000000000..337114096e
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/session.h
@@ -0,0 +1,59 @@
+/* session - a class which represents an oprofile session.
+ All sessions occur as directories of the samples directory.
+ Written by Keith Seitz <keiths@redhat.com>
+ Copyright 2003, 2004 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#ifndef _SESSION_H
+#define _SESSION_H
+#include <string>
+#include <list>
+
+#include "samplefile.h"
+
+class opinfo;
+class sessionevent;
+
+class session
+{
+ public:
+ // Constructor - pass in the name of the session (or "" for the default)
+ // and cpu/config information
+ session (std::string name, const opinfo* info);
+
+ // Returns a list of all sessions
+ typedef std::list<session*> sessionlist_t;
+ static sessionlist_t get_sessions (const opinfo& info);
+
+ // Returns the name of this session
+ const std::string& get_name (void) const { return _name; };
+
+ // Returns a list of events collected in this session.
+ typedef std::list<sessionevent*> seventlist_t;
+ seventlist_t get_events ();
+
+ // Searches for and returns the sessionevent which collected the
+ // given event_name. Returns NULL if not found. Return value must be
+ // freed by caller.
+ sessionevent* get_event (std::string event_name);
+
+ // Returns the directory for this session, i.e., SAMPLES_DIR+session_name
+ std::string get_base_directory (void) const;
+
+ private:
+ // The name of this session
+ std::string _name;
+
+ // The cpu info
+ const opinfo* _info;
+};
+
+
+#endif // !_SESSION_H
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sevent.cc b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sevent.cc
new file mode 100644
index 0000000000..34496ef80a
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sevent.cc
@@ -0,0 +1,105 @@
+/* sevent (sessionevent) - a class which represents an event collected
+ within an oprofile session. There will be one sessionevent for every
+ event collected within a session. No two sessionevents with the same
+ session name may have the same event name.
+ Written by Keith Seitz <keiths@redhat.com>
+ Copyright 2004 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#include "sevent.h"
+
+#include "session.h"
+#include "xmlfmt.h"
+
+using namespace std;
+
+sessionevent::sessionevent (const session* session, string event)
+ : _session (session), _event_name (event)
+{
+ _files = new profileimages_t;
+}
+
+sessionevent::~sessionevent ()
+{
+ profileimages_t::iterator it;
+ for (it = _files->begin (); it != _files->end (); ++it)
+ delete (*it);
+ delete _files;
+}
+
+void
+sessionevent::add_sample_file (samplefile* sfile)
+{
+ if (!sfile->is_dependency ())
+ {
+ // top-level image
+ _files->push_back (new profileimage (sfile));
+
+ }
+ else
+ {
+ // find file -- add dependent
+ bool found = false;
+ profileimages_t::iterator it;
+ for (it = _files->begin (); it != _files->end (); ++it)
+ {
+ if ((*it)->get_name () == sfile->get_image ())
+ {
+ (*it)->add_dependency (new profileimage (sfile));
+ found = true;
+ }
+ }
+
+ if (!found)
+ {
+ // This does happen!! We got no samples in a profileimage,
+ // but we DID get samples in a dependency. Create a new
+ // "fake" profileimage and add this as a dependency.
+ profileimage* img = new profileimage (new samplefile (""));
+ img->add_dependency (new profileimage (sfile));
+ _files->push_back (img);
+ }
+ }
+}
+
+long
+sessionevent::get_count (void) const
+{
+ // Get list of images
+ profileimages_t::iterator it;
+ long count = 0;
+ for (it = _files->begin (); it != _files->end (); ++it)
+ {
+ // Get count of the main image
+ count += (*it)->get_count ();
+
+ // Add count for dependencies
+ list<profileimage*>* deps = (*it)->get_dependencies ();
+ list<profileimage*>::iterator dit;
+ for (dit = deps->begin (); dit != deps->end (); ++dit)
+ count += (*dit)->get_count ();
+ }
+
+ return count;
+}
+
+/*
+ * <session name="foo">
+ * <count>1234</count>
+ * </session>
+ *
+ */
+ostream&
+operator<< (ostream& os, const sessionevent* se)
+{
+ return os << startt ("session") << attrt ("name", se->get_session ()->get_name ())
+// << startt ("count") << se->get_count () << endt
+ << endt;
+}
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sevent.h b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sevent.h
new file mode 100644
index 0000000000..afcb15c8d2
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/sevent.h
@@ -0,0 +1,63 @@
+/* sevent (sessionevent) - a class which represents an event collected
+ within an oprofile session. There will be one sessionevent for every
+ event collected within a session. No two sessionevents with the same
+ session name may have the same event name.
+ Written by Keith Seitz <keiths@redhat.com>
+ Copyright 2004 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#ifndef _SEVENT_H
+#define _SEVENT_H
+#include <string>
+#include <list>
+
+#include "profileimage.h"
+
+class samplefile;
+class session;
+
+class sessionevent
+{
+ public:
+ // Constructor -- pass in session and event name
+ sessionevent (const session* session, std::string event);
+
+ // Desctructor
+ ~sessionevent ();
+
+ // Returns the event name
+ const std::string get_name (void) const { return _event_name; };
+
+ // Returns the session
+ const session* get_session (void) const { return _session; };
+
+ // Adds the samplefile to this sessionevent
+ void add_sample_file (samplefile* sfile);
+
+ // Returns the count of all samples in this sessionevent
+ long get_count (void) const;
+
+ // Returns a list of the images in the sessionevent
+ typedef std::list<profileimage*> profileimages_t;
+ profileimages_t* get_images (void) const { return _files; };
+
+ private:
+ // The session
+ const session* _session;
+
+ // The name of the event
+ const std::string _event_name;
+
+ // A list of images in this session
+ profileimages_t* _files;
+};
+
+std::ostream& operator<< (std::ostream& os, const sessionevent* se);
+#endif // _SEVENT_H
diff --git a/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/stable.cc b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/stable.cc
new file mode 100644
index 0000000000..5f9e63bfac
--- /dev/null
+++ b/oprofile/org.eclipse.linuxtools.oprofile.core/natives/linux/opxml/stable.cc
@@ -0,0 +1,294 @@
+/* symboltable - A symbol table class
+ Written by Keith Seitz <keiths@redhat.com>
+ Copyright 2004 Red Hat, Inc.
+
+ This program is open source software licensed under the Eclipse
+ Public License ver. 1.
+
+ Alternatively, this program may be used under the terms of the GNU
+ General Public License as published by the Free Software Foundation;
+ either version 2 of the License, or (at your option) any later
+ version. */
+
+#include <stdlib.h>
+#include <string.h>
+#include <iostream>
+#include <fcntl.h>
+#include <algorithm>
+
+#include "stable.h"
+#include "symbol.h"
+
+static bool ltvma (const symbol* a, const symbol* b);
+
+// Stolen from oprofile
+char const* symboltable::_boring_symbols[] = {
+ "gcc2_compiled.",
+ "_init"
+};
+
+// Helper function for sorting symbols by VMA
+static bool
+compare_symbol_with_vma (bfd_vma vma, const symbol* a)
+{
+ return (a->end () > vma);
+}
+
+symboltable::symboltable(const char* file)
+ : _filename (strdup (file)), _abfd (NULL), _symbol_table (NULL), _cache_symbol (NULL)
+{
+}
+
+symboltable::~symboltable ()
+{
+ if (_symbol_table != NULL)
+ free (_symbol_table);
+
+ std::vector<symbol*>::iterator i = _symbols.begin ();
+ while (i != _symbols.end ())
+ {
+ delete (*i);
+ //_symbols.erase (i);
+ ++i;
+ }
+
+ _symbols.clear ();
+ _close_bfd ();
+ free (_filename);
+}
+
+// If this returns NULL, then the VMA is not in any range of
+// msymbols. This is can apparently happen. op_time and friends
+// ignore these samples.
+symbol*
+symboltable::lookup_vma (bfd_vma vma, bfd_vma& real_vma, bool is_kernel)
+{
+ if (is_kernel)
+ real_vma = vma;
+ else
+ real_vma = vma + _start_vma - _text_offset;
+ return (lookup_vma (real_vma));
+}
+
+symbol*
+symboltable::lookup_vma (bfd_vma real_vma)
+{
+ if (_cache_symbol != NULL && _cache_symbol->contains (real_vma))
+ return _cache_symbol;
+
+ std::vector<symbol*>::iterator i;
+ i = upper_bound (_symbols.begin (), _symbols.end (),
+ real_vma, compare_symbol_with_vma);
+ if (i != _symbols.end () && (*i)->contains (real_vma))
+ {
+ _cache_symbol = *i;
+ return *i;
+ }
+
+ return NULL;
+}
+
+bool
+symboltable::read_symbols ()
+{
+ if (_open_bfd ())
+ {
+ long storage_needed = bfd_get_symtab_upper_bound (_abfd);
+ if (storage_needed > 0)
+ {
+ _symbol_table = (asymbol**) malloc (storage_needed);
+ long num_symbols = bfd_canonicalize_symtab (_abfd, _symbol_table);
+ for (int i = 0; i < num_symbols; ++i)
+ {
+ if (_interesting_symbol (_symbol_table[i]))
+ _symbols.push_back (new symbol (_symbol_table[i]));
+ }
+
+ if (_symbols.size() > 0)
+ {
+ // Sort in order of increasing vma and eliminate duplicates
+