if WITH_REMOTE
nodist_libvirt_driver_remote_la_SOURCES = libvirt_probes.h
endif WITH_REMOTE
+if WITH_DRIVER_MODULES
+DTRACE2SYSTEMTAP_FLAGS = --with-modules
+endif
BUILT_SOURCES += libvirt_probes.h libvirt_probes.stp libvirt_functions.stp
libvirt_functions.stp: $(RPC_PROBE_FILES) $(srcdir)/rpc/gensystemtap.pl
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gensystemtap.pl $(RPC_PROBE_FILES) > $@
-%_probes.stp: %_probes.d $(srcdir)/dtrace2systemtap.pl
+%_probes.stp: %_probes.d $(srcdir)/dtrace2systemtap.pl $(top_builddir)/config.status
$(AM_V_GEN)$(PERL) -w $(srcdir)/dtrace2systemtap.pl \
- $(bindir) $(sbindir) $(libdir) $< > $@
+ $(DTRACE2SYSTEMTAP_FLAGS) $(bindir) $(sbindir) $(libdir) $< > $@
CLEANFILES += libvirt_probes.h libvirt_probes.o libvirt_probes.lo \
libvirt_qemu_probes.h libvirt_qemu_probes.o \
my @files;
my %files;
+my $with_modules = 0;
+if ($ARGV[0] eq "--with-modules") {
+ # set if we want to honor the "module" setting in the .d file
+ $with_modules = 1;
+ shift @ARGV;
+}
+
my $bindir = shift @ARGV;
my $sbindir = shift @ARGV;
my $libdir = shift @ARGV;
$files{$file}->{prefix} = $1;
} elsif (m,^\s*\#\s*binary:\s*(\S+)\s*$,) {
$files{$file}->{binary} = $1;
+ } elsif (m,^\s*\#\s*module:\s*(\S+)\s*$,) {
+ $files{$file}->{module} = $1;
} else {
# ignore unknown comments
}
if (exists $files{$file}->{binary}) {
$binary = $sbindir . "/" . $files{$file}->{binary};
}
+ if ($with_modules && exists $files{$file}->{module}) {
+ $binary = $libdir . "/" . $files{$file}->{module};
+ }
print "probe $pname = process(\"$binary\").mark(\"$name\") {\n";
# file: src/qemu/qemu_monitor.c
# prefix: qemu
# binary: libvirtd
+ # module: libvirt/connection-driver/libvirt_driver_qemu.so
# Monitor lifecycle
probe qemu_monitor_new(void *mon, int refs, int fd);
probe qemu_monitor_ref(void *mon, int refs);