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 +# 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)