Added David Mills' kernel NTP PLL code. The current version of NTP does
[unix-history] / sys / kern / kern_xxx.c
index f183c74..8fe70c8 100644 (file)
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  *     from: @(#)kern_xxx.c    7.17 (Berkeley) 4/20/91
  * SUCH DAMAGE.
  *
  *     from: @(#)kern_xxx.c    7.17 (Berkeley) 4/20/91
- *     $Id$
+ *     $Id: kern_xxx.c,v 1.6 1993/11/25 01:33:15 wollman Exp $
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -42,6 +42,7 @@
 #include "utsname.h"
 
 /* ARGSUSED */
 #include "utsname.h"
 
 /* ARGSUSED */
+int
 gethostid(p, uap, retval)
        struct proc *p;
        void *uap;
 gethostid(p, uap, retval)
        struct proc *p;
        void *uap;
@@ -57,6 +58,7 @@ struct sethostid_args {
 };
 
 /* ARGSUSED */
 };
 
 /* ARGSUSED */
+int
 sethostid(p, uap, retval)
        struct proc *p;
        struct sethostid_args *uap;
 sethostid(p, uap, retval)
        struct proc *p;
        struct sethostid_args *uap;
@@ -76,6 +78,7 @@ struct gethostname_args {
 };
 
 /* ARGSUSED */
 };
 
 /* ARGSUSED */
+int
 gethostname(p, uap, retval)
        struct proc *p;
        struct gethostname_args *uap;
 gethostname(p, uap, retval)
        struct proc *p;
        struct gethostname_args *uap;
@@ -93,6 +96,7 @@ struct sethostname_args {
 };
 
 /* ARGSUSED */
 };
 
 /* ARGSUSED */
+int
 sethostname(p, uap, retval)
        struct proc *p;
        register struct sethostname_args *uap;
 sethostname(p, uap, retval)
        struct proc *p;
        register struct sethostname_args *uap;
@@ -110,6 +114,47 @@ sethostname(p, uap, retval)
        return (error);
 }
 
        return (error);
 }
 
+struct getdomainname_args {
+        char    *domainname;
+        u_int   len;
+};
+
+/* ARGSUSED */
+int
+getdomainname(p, uap, retval)
+        struct proc *p;
+        struct getdomainname_args *uap;
+        int *retval;
+{
+       if (uap->len > domainnamelen + 1)
+               uap->len = domainnamelen + 1;
+       return (copyout((caddr_t)domainname, (caddr_t)uap->domainname, uap->len));
+}
+
+struct setdomainname_args {
+        char    *domainname;
+        u_int   len;
+};
+
+/* ARGSUSED */
+int
+setdomainname(p, uap, retval)
+        struct proc *p;
+        struct setdomainname_args *uap;
+        int *retval;
+{
+        int error;
+
+        if (error = suser(p->p_ucred, &p->p_acflag))
+                return (error);
+        if (uap->len > sizeof (domainname) - 1)
+                return EINVAL;
+        domainnamelen = uap->len;
+        error = copyin((caddr_t)uap->domainname, domainname, uap->len);
+        domainname[domainnamelen] = 0;
+        return (error);
+}
+
 struct uname_args {
         struct utsname  *name;
 };
 struct uname_args {
         struct utsname  *name;
 };
@@ -132,6 +177,7 @@ struct reboot_args {
 };
 
 /* ARGSUSED */
 };
 
 /* ARGSUSED */
+int
 reboot(p, uap, retval)
        struct proc *p;
        struct reboot_args *uap;
 reboot(p, uap, retval)
        struct proc *p;
        struct reboot_args *uap;
@@ -146,9 +192,23 @@ reboot(p, uap, retval)
 }
 
 #ifdef COMPAT_43
 }
 
 #ifdef COMPAT_43
+int
 oquota()
 {
 
        return (ENOSYS);
 }
 #endif
 oquota()
 {
 
        return (ENOSYS);
 }
 #endif
+
+
+void
+shutdown_nice(void)
+{
+       register struct proc *p;
+
+       /* Send a signal to init(8) and have it shutdown the world */
+       p = pfind(1);
+       psignal(p, SIGINT);
+
+       return;
+}