Refresh OProfile code running on the target side to 0.9.5 for ARMV7.
diff --git a/daemon/oprofiled.c b/daemon/oprofiled.c
index ec2ea1b..173d972 100644
--- a/daemon/oprofiled.c
+++ b/daemon/oprofiled.c
@@ -17,6 +17,7 @@
#include "oprofiled.h"
#include "opd_printf.h"
#include "opd_events.h"
+#include "opd_extended.h"
#include "op_config.h"
#include "op_version.h"
@@ -52,11 +53,13 @@
uint op_nr_counters;
op_cpu cpu_type;
+int no_event_ok;
int vsfile;
int vsamples;
int varcs;
int vmodule;
int vmisc;
+int vext;
int separate_lib;
int separate_kernel;
int separate_thread;
@@ -71,6 +74,7 @@
static char * verbose;
static char * binary_name_filter;
static char * events;
+static char * ext_feature;
static int showvers;
static struct oprofiled_ops * opd_ops;
extern struct oprofiled_ops opd_24_ops;
@@ -94,6 +98,7 @@
{ "events", 'e', POPT_ARG_STRING, &events, 0, "events list", "[events]" },
{ "version", 'v', POPT_ARG_NONE, &showvers, 0, "show version", NULL, },
{ "verbose", 'V', POPT_ARG_STRING, &verbose, 0, "be verbose in log file", "all,sfile,arcs,samples,module,misc", },
+ { "ext-feature", 'x', POPT_ARG_STRING, &ext_feature, 1, "enable extended feature", "<extended-feature-name>:[args]", },
POPT_AUTOHELP
{ NULL, 0, 0, NULL, 0, NULL, NULL, },
};
@@ -353,6 +358,7 @@
varcs = 1;
vmodule = 1;
vmisc = 1;
+ vext= 1;
} else if (!strcmp(name, "sfile")) {
vsfile = 1;
} else if (!strcmp(name, "arcs")) {
@@ -363,6 +369,8 @@
vmodule = 1;
} else if (!strcmp(name, "misc")) {
vmisc = 1;
+ } else if (!strcmp(name, "ext")) {
+ vext= 1;
} else {
fprintf(stderr, "unknown verbose options\n");
exit(EXIT_FAILURE);
@@ -426,7 +434,10 @@
}
}
- if (events == NULL) {
+ if(opd_ext_initialize(ext_feature) != EXIT_SUCCESS)
+ exit(EXIT_FAILURE);
+
+ if (events == NULL && no_event_ok == 0) {
fprintf(stderr, "oprofiled: no events specified.\n");
poptPrintHelp(optcon, stderr, 0);
exit(EXIT_FAILURE);
@@ -451,7 +462,8 @@
}
}
- opd_parse_events(events);
+ if (events != NULL)
+ opd_parse_events(events);
opd_parse_image_filter();