Module Name: src
Committed By: christos
Date: Sun Oct 4 23:25:32 UTC 2015
Modified Files:
src/external/cddl/osnet/dist/lib/libdtrace/common: dt_module.c
Log Message:
put back module filename finding code.
To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c
diff -u src/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c:1.9 src/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c:1.10
--- src/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c:1.9 Thu Sep 24 10:25:29 2015
+++ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c Sun Oct 4 19:25:32 2015
@@ -1169,6 +1169,36 @@ dt_module_update(dtrace_hdl_t *dtp, stru
(void) strlcpy(name, k_stat->name, sizeof(name));
(void) strlcpy(fname, k_stat->pathname, sizeof(fname));
+#elif defined(__NetBSD__)
+ int mib_osrel[2] = { CTL_KERN, KERN_OSRELEASE };
+ int mib_mach[2] = { CTL_HW, HW_MACHINE };
+ char osrel[64];
+ char machine[64];
+ size_t len;
+
+ if (strcmp("netbsd", name) == 0) {
+ /* want the kernel */
+ strncpy(fname, "/netbsd", sizeof(fname));
+ } else {
+
+ /* build stand module path from system */
+ len = sizeof(osrel);
+ if (sysctl(mib_osrel, 2, osrel, &len, NULL, 0) == -1) {
+ dt_dprintf("sysctl osrel failed: %s\n",
+ strerror(errno));
+ return;
+ }
+
+ len = sizeof(machine);
+ if (sysctl(mib_mach, 2, machine, &len, NULL, 0) == -1) {
+ dt_dprintf("sysctl machine failed: %s\n",
+ strerror(errno));
+ return;
+ }
+
+ (void) snprintf(fname, sizeof (fname),
+ "/stand/%s/%s/modules/%s/%s.kmod", machine, osrel, name, name);
+ }
#endif
if ((fd = open(fname, O_RDONLY)) == -1 || fstat64(fd, &st) == -1 ||