summaryrefslogtreecommitdiff
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
* 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;
}