about summary refs log tree commit diff
path: root/sysdeps/mach/hurd/sethostid.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-06-16 03:49:40 +0000
committerRoland McGrath <roland@gnu.org>1996-06-16 03:49:40 +0000
commit5fbef188648f5150617e0a14f1011e600f1b3a0f (patch)
tree81334ea044e87bc2cf489cc8cb49adab73b9d6dd /sysdeps/mach/hurd/sethostid.c
parentf9496a7b54c27580d4b30cc2b2b40e86738b2b81 (diff)
downloadglibc-5fbef188648f5150617e0a14f1011e600f1b3a0f.tar.gz
glibc-5fbef188648f5150617e0a14f1011e600f1b3a0f.tar.xz
glibc-5fbef188648f5150617e0a14f1011e600f1b3a0f.zip
* hurd/Makefile (routines): Add get-host, set-host.
	(distribute): Add hurdhost.h.
	* hurd/hurdhost.h: New file.
	* sysdeps/mach/hurd/gethostname.c: Use _hurd_get_host_config.
	* sysdeps/mach/hurd/gethostid.c: Likewise.
	* sysdeps/mach/hurd/sethostname.c: Use _hurd_set_host_config.
	* sysdeps/mach/hurd/sethostid.c: Likewise.
	* hurd/get-host.c: New file.
	* hurd/set-host.c: New file.

	* math/Makefile (headers): Add fpu_control.h.
	(aux): New variable, list fpu_control and setfpucw.
	* sysdeps/generic/fpu_control.c: New file.
	* sysdeps/stub/fpu_control.h: New file.
	* sysdeps/unix/sysv/linux/m68k/fpu_control.h: Moved to ...
	* sysdeps/m68k/fpu_control.h: here.
	* sysdeps/unix/sysv/linux/i386/fpu_control.h: Moved to ...
	* sysdeps/i386/fpu_control.h: here.
	* sysdeps/unix/sysv/linux/alpha/fpu_control.h: Moved to ...
	* sysdeps/alpha/fpu/fpu_control.h: here.  Fixed copyright.
	* sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines): Remove
	setfpucw, fpu_control.
	* sysdeps/unix/sysv/linux/alpha/fpu_control.c: File removed.
	* sysdeps/unix/sysv/linux/setfpucw.c: Moved to ...
	* sysdeps/generic/setfpucw.c: here.
	(__fpu_control): Variable removed.
	(__setfpucw): Use SET even if zero.
Diffstat (limited to 'sysdeps/mach/hurd/sethostid.c')
-rw-r--r--sysdeps/mach/hurd/sethostid.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/sysdeps/mach/hurd/sethostid.c b/sysdeps/mach/hurd/sethostid.c
index dc8153caa6..64f5e0c1c6 100644
--- a/sysdeps/mach/hurd/sethostid.c
+++ b/sysdeps/mach/hurd/sethostid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1996 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -17,15 +17,26 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
 #include <ansidecl.h>
-#include <errno.h>
 #include <unistd.h>
 #include <hurd.h>
+#include "hurdhost.h"
+#include "../stdio-common/_itoa.h"
 
 /* Set the current machine's Internet number to ID.
    This call is restricted to the super-user.  */
 int
 DEFUN(sethostid, (id), long int id)
 {
-  error_t err = __USEPORT (PROC, __proc_sethostid (port, id));
-  return err ? __hurd_fail (err) : 0;
+  char buf[8], *bp;
+  ssize_t n;
+
+  /* The hostid is kept in the file /etc/hostid,
+     eight characters of upper-case hexadecimal.  */
+
+  bp = _itoa_word (id, &buf[sizeof buf], 16, 1);
+  while (bp > buf)
+    *--bp = '0';
+
+  n = _hurd_set_host_config ("/etc/hostid", buf, sizeof buf);
+  return n < 0 ? -1 : 0;
 }