aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary <admin@garyshood.com>2013-07-23 00:07:23 -0500
committerWilliam Hubbs <w.d.hubbs@gmail.com>2013-07-25 22:33:24 -0500
commit9ebd5a6aff73d70717f1d9a2f57767eae3eeb0c8 (patch)
tree0732c859b154ef706762cc205170cd2808230dfa
parentbee59c68c5ff5be426e68ecb603d4cc26542f4af (diff)
Add support for DragonFly BSD
-rw-r--r--etc/rc.conf.DragonFly13
-rw-r--r--mk/os-DragonFly.mk6
-rw-r--r--src/librc/librc-daemon.c12
-rw-r--r--src/rc/rc-plugin.h2
-rw-r--r--src/rc/start-stop-daemon.c2
5 files changed, 31 insertions, 4 deletions
diff --git a/etc/rc.conf.DragonFly b/etc/rc.conf.DragonFly
new file mode 100644
index 00000000..208bcc16
--- /dev/null
+++ b/etc/rc.conf.DragonFly
@@ -0,0 +1,13 @@
+##############################################################################
+# DragonFly BSD SPECIFIC OPTIONS
+
+# This is the subsystem type. Valid options on DragonFly BSD:
+# "" - nothing special
+# "jail" - DragonFly BSD jails
+# "prefix" - Prefix
+# If this is commented out, automatic detection will be used.
+#
+# This should be set to the value representing the environment this file is
+# PRESENTLY in, not the virtualization the environment is capable of.
+#rc_sys=""
+
diff --git a/mk/os-DragonFly.mk b/mk/os-DragonFly.mk
new file mode 100644
index 00000000..ff5e42f3
--- /dev/null
+++ b/mk/os-DragonFly.mk
@@ -0,0 +1,6 @@
+# Copyright (c) 2008 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+# Generic definitions
+
+include ${MK}/os-BSD.mk
diff --git a/src/librc/librc-daemon.c b/src/librc/librc-daemon.c
index 982da354..6e7d57fd 100644
--- a/src/librc/librc-daemon.c
+++ b/src/librc/librc-daemon.c
@@ -164,9 +164,15 @@ librc_hidden_def(rc_find_pids)
# endif
# define _KINFO_PROC kinfo_proc
# define _KVM_GETARGV kvm_getargv
-# define _GET_KINFO_UID(kp) (kp.ki_ruid)
-# define _GET_KINFO_COMM(kp) (kp.ki_comm)
-# define _GET_KINFO_PID(kp) (kp.ki_pid)
+# if defined(__DragonFly__)
+# define _GET_KINFO_UID(kp) (kp.kp_ruid)
+# define _GET_KINFO_COMM(kp) (kp.kp_comm)
+# define _GET_KINFO_PID(kp) (kp.kp_pid)
+# else
+# define _GET_KINFO_UID(kp) (kp.ki_ruid)
+# define _GET_KINFO_COMM(kp) (kp.ki_comm)
+# define _GET_KINFO_PID(kp) (kp.ki_pid)
+# endif
# define _KVM_PATH _PATH_DEVNULL
# define _KVM_FLAGS O_RDONLY
# endif
diff --git a/src/rc/rc-plugin.h b/src/rc/rc-plugin.h
index f763c3e9..b4e40ab4 100644
--- a/src/rc/rc-plugin.h
+++ b/src/rc/rc-plugin.h
@@ -41,7 +41,7 @@ void rc_plugin_unload(void);
void rc_plugin_run(RC_HOOK, const char *value);
/* dlfunc defines needed to avoid ISO errors. FreeBSD has this right :) */
-#ifndef __FreeBSD__
+#if !defined(__FreeBSD__) && !defined(__DragonFly__)
struct __dlfunc_arg {
int __dlfunc_dummy;
};
diff --git a/src/rc/start-stop-daemon.c b/src/rc/start-stop-daemon.c
index bfa8852e..5576d49d 100644
--- a/src/rc/start-stop-daemon.c
+++ b/src/rc/start-stop-daemon.c
@@ -110,6 +110,7 @@ extern char **environ;
#if !defined(SYS_ioprio_set) && defined(__NR_ioprio_set)
# define SYS_ioprio_set __NR_ioprio_set
#endif
+#if !defined(__DragonFly__)
static inline int ioprio_set(int which, int who, int ioprio)
{
#ifdef SYS_ioprio_set
@@ -118,6 +119,7 @@ static inline int ioprio_set(int which, int who, int ioprio)
return 0;
#endif
}
+#endif
static void
free_schedulelist(void)