aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--icetime/iceutil.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/icetime/iceutil.cc b/icetime/iceutil.cc
index 440b9a8..c9075a4 100644
--- a/icetime/iceutil.cc
+++ b/icetime/iceutil.cc
@@ -32,7 +32,7 @@
# include <unistd.h>
#endif
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__NetBSD__)
# include <sys/sysctl.h>
#endif
@@ -51,10 +51,14 @@ std::string proc_self_dirname()
buflen--;
return std::string(path, buflen);
}
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined(__NetBSD__)
std::string proc_self_dirname()
{
+#ifdef __NetBSD__
+ int mib[4] = {CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_PATHNAME};
+#else
int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};
+#endif
size_t buflen;
char *buffer;
std::string path;