mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 10:50:07 +00:00
* 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.
This commit is contained in:
parent
f9496a7b54
commit
5fbef18864
28
ChangeLog
28
ChangeLog
@ -1,5 +1,33 @@
|
|||||||
Sat Jun 15 18:13:43 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
|
Sat Jun 15 18:13:43 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
|
||||||
* elf/dl-deps.c (_dl_map_object_deps): Set MAP's mark bit before loop.
|
* elf/dl-deps.c (_dl_map_object_deps): Set MAP's mark bit before loop.
|
||||||
Set mark bits of deps as opened, instead of as scanned.
|
Set mark bits of deps as opened, instead of as scanned.
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ server-interfaces := hurd/msg faultexc
|
|||||||
|
|
||||||
routines = hurdstartup hurdinit \
|
routines = hurdstartup hurdinit \
|
||||||
hurdid hurdlookup hurdpid hurdrlimit hurdprio hurdexec \
|
hurdid hurdlookup hurdpid hurdrlimit hurdprio hurdexec \
|
||||||
|
get-host set-host \
|
||||||
path-lookup \
|
path-lookup \
|
||||||
setauth \
|
setauth \
|
||||||
pid2task task2pid \
|
pid2task task2pid \
|
||||||
@ -57,7 +58,8 @@ sig = hurdsig hurdfault siginfo hurd-raise preempt-sig \
|
|||||||
dtable = dtable port2fd new-fd alloc-fd intern-fd \
|
dtable = dtable port2fd new-fd alloc-fd intern-fd \
|
||||||
getdport openport \
|
getdport openport \
|
||||||
fd-close fd-read fd-write hurdioctl ctty-input ctty-output
|
fd-close fd-read fd-write hurdioctl ctty-input ctty-output
|
||||||
distribute = hurdstartup.h hurdfault.h faultexc.defs intr-rpc.defs intr-rpc.h
|
distribute = hurdstartup.h hurdfault.h hurdhost.h \
|
||||||
|
faultexc.defs intr-rpc.defs intr-rpc.h
|
||||||
|
|
||||||
# XXX this is a temporary hack; see hurdmalloc.h
|
# XXX this is a temporary hack; see hurdmalloc.h
|
||||||
routines += hurdmalloc
|
routines += hurdmalloc
|
||||||
|
57
hurd/get-host.c
Normal file
57
hurd/get-host.c
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/* Get a host configuration item kept as the whole contents of a file.
|
||||||
|
Copyright (C) 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
|
||||||
|
modify it under the terms of the GNU Library General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||||
|
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||||
|
Cambridge, MA 02139, USA. */
|
||||||
|
|
||||||
|
#include <hurd.h>
|
||||||
|
#include "hurdhost.h"
|
||||||
|
|
||||||
|
ssize_t
|
||||||
|
_hurd_get_host_config (const char *item, char *buf, size_t buflen)
|
||||||
|
{
|
||||||
|
error_t err;
|
||||||
|
char *data;
|
||||||
|
mach_msg_type_number_t nread, more;
|
||||||
|
file_t config = __file_name_lookup (item, O_RDONLY, 0);
|
||||||
|
if (config == MACH_PORT_NULL)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
data = buf;
|
||||||
|
err = __io_read (config, &data, &nread, -1, buflen);
|
||||||
|
if (! err)
|
||||||
|
/* Check if there is more in the file we didn't read. */
|
||||||
|
err = __io_readable (config, &more);
|
||||||
|
__mach_port_deallocate (__mach_task_self (), config);
|
||||||
|
if (err)
|
||||||
|
return __hurd_fail (err);
|
||||||
|
if (data != buf)
|
||||||
|
{
|
||||||
|
memcpy (buf, data, nread);
|
||||||
|
__vm_deallocate (__mach_task_self (), (vm_address_t) data, nread);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Remove newlines in case someone wrote the file by hand. */
|
||||||
|
while (buf[nread - 1] == '\n')
|
||||||
|
buf[--nread] = '\0';
|
||||||
|
|
||||||
|
if (more)
|
||||||
|
/* If we didn't read the whole file, tell the caller to use a bigger
|
||||||
|
buffer next time. */
|
||||||
|
return __hurd_fail (ENAMETOOLONG);
|
||||||
|
|
||||||
|
return nread;
|
||||||
|
}
|
28
hurd/hurdhost.h
Normal file
28
hurd/hurdhost.h
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/* Host configuration items kept as the whole contents of a file.
|
||||||
|
Copyright (C) 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
|
||||||
|
modify it under the terms of the GNU Library General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||||
|
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||||
|
Cambridge, MA 02139, USA. */
|
||||||
|
|
||||||
|
/* Fetch and atomically store the contents of the file ITEM.
|
||||||
|
Returns the size read or written, or -1 for errors.
|
||||||
|
If BUFLEN is not big enough to contain the whole contents,
|
||||||
|
BUFLEN bytes of BUF are filled in and we fail with ENAMETOOLONG. */
|
||||||
|
|
||||||
|
ssize_t _hurd_get_host_config (const char *item,
|
||||||
|
char *buf, size_t buflen);
|
||||||
|
ssize_t _hurd_set_host_config (const char *item,
|
||||||
|
const char *value, size_t valuelen);
|
48
hurd/set-host.c
Normal file
48
hurd/set-host.c
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/* Set a host configuration item kept as the whole contents of a file.
|
||||||
|
Copyright (C) 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
|
||||||
|
modify it under the terms of the GNU Library General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||||
|
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||||
|
Cambridge, MA 02139, USA. */
|
||||||
|
|
||||||
|
#include <hurd.h>
|
||||||
|
#include "hurdhost.h"
|
||||||
|
|
||||||
|
ssize_t
|
||||||
|
_hurd_set_host_config (const char *item, const char *value, size_t valuelen)
|
||||||
|
{
|
||||||
|
error_t err;
|
||||||
|
mach_msg_type_number_t nwrote;
|
||||||
|
file_t new, dir;
|
||||||
|
|
||||||
|
dir = __file_name_split (item, &item);
|
||||||
|
if (dir == MACH_PORT_NULL)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
/* Create a new node. */
|
||||||
|
err = __dir_mkfile (dir, O_CREAT|O_TRUNC, 0600, &new);
|
||||||
|
if (! err)
|
||||||
|
{
|
||||||
|
/* Write the contents. */
|
||||||
|
err = __io_write (new, value, valuelen, 0, &nwrote);
|
||||||
|
if (! err)
|
||||||
|
/* Atomically link the new node onto the name. */
|
||||||
|
err = __dir_link (dir, item, 0);
|
||||||
|
__mach_port_deallocate (__mach_task_self (), new);
|
||||||
|
}
|
||||||
|
__mach_port_deallocate (__mach_task_self (), dir);
|
||||||
|
|
||||||
|
return nread;
|
||||||
|
}
|
@ -21,11 +21,13 @@
|
|||||||
subdir := math
|
subdir := math
|
||||||
|
|
||||||
# Installed header files.
|
# Installed header files.
|
||||||
headers := math.h mathcalls.h __math.h huge_val.h nan.h
|
headers := math.h mathcalls.h __math.h huge_val.h nan.h fpu_control.h
|
||||||
|
|
||||||
# Internal header files.
|
# Internal header files.
|
||||||
distribute := math_private.h machine/asm.h machine/endian.h
|
distribute := math_private.h machine/asm.h machine/endian.h
|
||||||
|
|
||||||
|
# FPU support code.
|
||||||
|
aux := fpu_control setfpucw
|
||||||
|
|
||||||
# Build the -lm library.
|
# Build the -lm library.
|
||||||
|
|
||||||
|
@ -1,15 +1,23 @@
|
|||||||
/* Copyright (C) 1993 Olaf Flebbe
|
/* FPU control word bits. Alpha version.
|
||||||
This file is part of the Linux C Library.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
Contributed by Olaf Flebbe.
|
||||||
|
|
||||||
The Linux C Library is free software; you can redistribute it and/or
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
modify it under the terms of the GNU Library General Public License as
|
modify it under the terms of the GNU Library General Public License as
|
||||||
published by the Free Software Foundation; either version 2 of the
|
published by the Free Software Foundation; either version 2 of the
|
||||||
License, or (at your option) any later version.
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
The Linux C Library is distributed in the hope that it will be useful,
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
Library General Public License for more details. */
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||||
|
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||||
|
Cambridge, MA 02139, USA. */
|
||||||
|
|
||||||
#ifndef _ALPHA_FPU_CONTROL_H
|
#ifndef _ALPHA_FPU_CONTROL_H
|
||||||
#define _ALPHA_FPU_CONTROL_H
|
#define _ALPHA_FPU_CONTROL_H
|
||||||
@ -28,7 +36,7 @@ Library General Public License for more details. */
|
|||||||
* OM: Overflow mask
|
* OM: Overflow mask
|
||||||
* UM: Underflow mask
|
* UM: Underflow mask
|
||||||
* PM: Precision (inexact result) mask
|
* PM: Precision (inexact result) mask
|
||||||
*
|
*
|
||||||
* Mask bit is 1 means no interrupt.
|
* Mask bit is 1 means no interrupt.
|
||||||
*
|
*
|
||||||
* PC: Precision control
|
* PC: Precision control
|
||||||
@ -51,7 +59,7 @@ Library General Public License for more details. */
|
|||||||
#include <features.h>
|
#include <features.h>
|
||||||
|
|
||||||
/* masking of interrupts */
|
/* masking of interrupts */
|
||||||
#define _FPU_MASK_IM 0x01
|
#define _FPU_MASK_IM 0x01
|
||||||
#define _FPU_MASK_DM 0x02
|
#define _FPU_MASK_DM 0x02
|
||||||
#define _FPU_MASK_ZM 0x04
|
#define _FPU_MASK_ZM 0x04
|
||||||
#define _FPU_MASK_OM 0x08
|
#define _FPU_MASK_OM 0x08
|
||||||
@ -84,7 +92,7 @@ Library General Public License for more details. */
|
|||||||
one can use /d to get round to +infinity with no extra overhead
|
one can use /d to get round to +infinity with no extra overhead
|
||||||
(so long as the default isn't changed, of course...)
|
(so long as the default isn't changed, of course...)
|
||||||
- exceptions on overflow, zero divide and NaN */
|
- exceptions on overflow, zero divide and NaN */
|
||||||
#define _FPU_DEFAULT 0x1f72
|
#define _FPU_DEFAULT 0x1f72
|
||||||
|
|
||||||
/* IEEE: same as above, but exceptions */
|
/* IEEE: same as above, but exceptions */
|
||||||
#define _FPU_IEEE 0x1f7f
|
#define _FPU_IEEE 0x1f7f
|
@ -1,5 +1,6 @@
|
|||||||
/* Copyright (C) 1993, 1995 Free Software Foundation, Inc.
|
/* Default FPU control word initialization.
|
||||||
Contributed by David Mosberger (davidm@azstarnet.com).
|
Copyright (C) 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
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
modify it under the terms of the GNU Library General Public License as
|
modify it under the terms of the GNU Library General Public License as
|
||||||
@ -18,4 +19,6 @@ Cambridge, MA 02139, USA. */
|
|||||||
|
|
||||||
#include <fpu_control.h>
|
#include <fpu_control.h>
|
||||||
|
|
||||||
|
/* This module defines `__fpu_control' with the default value. */
|
||||||
|
|
||||||
fpu_control_t __fpu_control = _FPU_DEFAULT;
|
fpu_control_t __fpu_control = _FPU_DEFAULT;
|
@ -29,9 +29,5 @@ __setfpucw (fpu_control_t set)
|
|||||||
|
|
||||||
/* Preserve the reserved bits, and set the rest as the user
|
/* Preserve the reserved bits, and set the rest as the user
|
||||||
specified (or the default, if the user gave zero). */
|
specified (or the default, if the user gave zero). */
|
||||||
_FPU_SETCW ((cw & _FPU_RESERVED) | ((set ?: _FPU_DEFAULT) & ~_FPU_RESERVED));
|
_FPU_SETCW ((cw & _FPU_RESERVED) | (set & ~_FPU_RESERVED));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The startup code in init-first.c calls __setfpucw (__fpu_control). */
|
|
||||||
|
|
||||||
fpu_control_t __fpu_control;
|
|
@ -1,4 +1,5 @@
|
|||||||
/* Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc.
|
/* FPU control word bits. i387 version.
|
||||||
|
Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Olaf Flebbe.
|
Contributed by Olaf Flebbe.
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
|
/* Copyright (C) 1991, 92, 93, 94, 96 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -17,17 +17,19 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
|||||||
Cambridge, MA 02139, USA. */
|
Cambridge, MA 02139, USA. */
|
||||||
|
|
||||||
#include <ansidecl.h>
|
#include <ansidecl.h>
|
||||||
#include <errno.h>
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <hurd.h>
|
#include <hurd.h>
|
||||||
|
#include "hurdhost.h"
|
||||||
|
|
||||||
/* Return the current machine's Internet number. */
|
/* Return the current machine's Internet number. */
|
||||||
long int
|
long int
|
||||||
DEFUN_VOID(gethostid)
|
DEFUN_VOID(gethostid)
|
||||||
{
|
{
|
||||||
int hostid;
|
/* The hostid is just the contents of the file /etc/hostid,
|
||||||
error_t err;
|
kept as text of hexadecimal digits. */
|
||||||
if (err = __USEPORT (PROC, __proc_gethostid (port, &hostid)))
|
char buf[8];
|
||||||
return __hurd_fail (err);
|
ssize_t n = _hurd_get_host_config ("/etc/hostid", buf, sizeof buf);
|
||||||
return hostid;
|
if (n < 0)
|
||||||
|
return -1;
|
||||||
|
return strtol (buf, NULL, 16);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
|
/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -17,11 +17,8 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
|||||||
Cambridge, MA 02139, USA. */
|
Cambridge, MA 02139, USA. */
|
||||||
|
|
||||||
#include <ansidecl.h>
|
#include <ansidecl.h>
|
||||||
#include <errno.h>
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <hurd.h>
|
#include "hurdhost.h"
|
||||||
#include <hurd/port.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/* Put the name of the current host in no more than LEN bytes of NAME.
|
/* Put the name of the current host in no more than LEN bytes of NAME.
|
||||||
The result is null-terminated if LEN is large enough for the full
|
The result is null-terminated if LEN is large enough for the full
|
||||||
@ -30,19 +27,9 @@ int
|
|||||||
DEFUN(__gethostname, (name, len),
|
DEFUN(__gethostname, (name, len),
|
||||||
char *name AND size_t len)
|
char *name AND size_t len)
|
||||||
{
|
{
|
||||||
error_t err;
|
/* The host name is just the contents of the file /etc/hostname. */
|
||||||
char *buf = name;
|
ssize_t n = _hurd_get_host_config ("/etc/hostname", name, len);
|
||||||
mach_msg_type_number_t buflen = len;
|
return n < 0 ? -1 : 0;
|
||||||
if (err = __USEPORT (PROC, __proc_gethostname (port, &buf, &buflen)))
|
|
||||||
return __hurd_fail (err);
|
|
||||||
if (buf != name)
|
|
||||||
{
|
|
||||||
memcpy (name, buf, len < buflen ? len : buflen);
|
|
||||||
__vm_deallocate (__mach_task_self (), (vm_address_t) buf, buflen);
|
|
||||||
}
|
|
||||||
if (buflen > len)
|
|
||||||
return __hurd_fail (ENAMETOOLONG);
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
weak_alias (__gethostname, gethostname)
|
weak_alias (__gethostname, gethostname)
|
||||||
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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. */
|
Cambridge, MA 02139, USA. */
|
||||||
|
|
||||||
#include <ansidecl.h>
|
#include <ansidecl.h>
|
||||||
#include <errno.h>
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <hurd.h>
|
#include <hurd.h>
|
||||||
|
#include "hurdhost.h"
|
||||||
|
#include "../stdio-common/_itoa.h"
|
||||||
|
|
||||||
/* Set the current machine's Internet number to ID.
|
/* Set the current machine's Internet number to ID.
|
||||||
This call is restricted to the super-user. */
|
This call is restricted to the super-user. */
|
||||||
int
|
int
|
||||||
DEFUN(sethostid, (id), long int id)
|
DEFUN(sethostid, (id), long int id)
|
||||||
{
|
{
|
||||||
error_t err = __USEPORT (PROC, __proc_sethostid (port, id));
|
char buf[8], *bp;
|
||||||
return err ? __hurd_fail (err) : 0;
|
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;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
|
/* Copyright (C) 1991, 92, 93, 94, 96 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -17,9 +17,8 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
|||||||
Cambridge, MA 02139, USA. */
|
Cambridge, MA 02139, USA. */
|
||||||
|
|
||||||
#include <ansidecl.h>
|
#include <ansidecl.h>
|
||||||
#include <errno.h>
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <hurd.h>
|
#include "hurdhost.h"
|
||||||
|
|
||||||
/* Set the name of the current host to NAME, which is LEN bytes long.
|
/* Set the name of the current host to NAME, which is LEN bytes long.
|
||||||
This call is restricted to the super-user. */
|
This call is restricted to the super-user. */
|
||||||
@ -27,8 +26,7 @@ int
|
|||||||
DEFUN(sethostname, (name, len),
|
DEFUN(sethostname, (name, len),
|
||||||
CONST char *name AND size_t len)
|
CONST char *name AND size_t len)
|
||||||
{
|
{
|
||||||
error_t err = __USEPORT (PROC, __proc_sethostname (port, name, len));
|
/* The host name is just the contents of the file /etc/hostname. */
|
||||||
if (err)
|
ssize_t n = _hurd_set_host_config ("/etc/hostname", name, len);
|
||||||
return __hurd_fail (err);
|
return n < 0 ? -1 : 0;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
46
sysdeps/stub/fpu_control.h
Normal file
46
sysdeps/stub/fpu_control.h
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/* FPU control word definitions. Stub version.
|
||||||
|
Copyright (C) 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
|
||||||
|
modify it under the terms of the GNU Library General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||||
|
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||||
|
Cambridge, MA 02139, USA. */
|
||||||
|
|
||||||
|
#ifndef _FPU_CONTROL_H
|
||||||
|
#define _FPU_CONTROL_H
|
||||||
|
|
||||||
|
#define _FPU_RESERVED ??? /* These bits are reserved are not changed. */
|
||||||
|
|
||||||
|
/* The fdlibm code requires no interrupts for exceptions. Don't
|
||||||
|
change the rounding mode, it would break long double I/O! */
|
||||||
|
#define _FPU_DEFAULT 0x00000000 /* Default value. */
|
||||||
|
|
||||||
|
/* Type of the control word. */
|
||||||
|
typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__?I__)));
|
||||||
|
|
||||||
|
/* Macros for accessing the hardware control word. */
|
||||||
|
#define _FPU_GETCW(cw) __asm__ ("fetch fpu control word into %0" : "=g" (cw))
|
||||||
|
#define _FPU_SETCW(cw) __asm__ ("set fpu control word to %0" : : "g" (cw))
|
||||||
|
|
||||||
|
/* Default control word set at startup. */
|
||||||
|
extern fpu_control_t __fpu_control;
|
||||||
|
|
||||||
|
__BEGIN_DECLS
|
||||||
|
|
||||||
|
/* Called at startup. It can be used to manipulate fpu control register. */
|
||||||
|
extern void __setfpucw __P ((fpu_control_t));
|
||||||
|
|
||||||
|
__END_DECLS
|
||||||
|
|
||||||
|
#endif /* _M68K_FPU_CONTROL_H */
|
@ -1,6 +1,6 @@
|
|||||||
ifeq ($(subdir), misc)
|
ifeq ($(subdir), misc)
|
||||||
sysdep_headers += alpha/ptrace.h alpha/regdef.h
|
sysdep_headers += alpha/ptrace.h alpha/regdef.h
|
||||||
|
|
||||||
sysdep_routines += ieee_get_fp_control ieee_set_fp_control fpu_control \
|
sysdep_routines += ieee_get_fp_control ieee_set_fp_control \
|
||||||
setfpucw sethae ioperm osf_sigprocmask fstatfs statfs
|
sethae ioperm osf_sigprocmask fstatfs statfs
|
||||||
endif
|
endif
|
||||||
|
Loading…
Reference in New Issue
Block a user