diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | sysdeps/mach/hurd/Dist | 1 | ||||
-rw-r--r-- | sysdeps/mach/hurd/fxstat64.c | 40 | ||||
-rw-r--r-- | sysdeps/mach/hurd/lxstat64.c | 40 | ||||
-rw-r--r-- | sysdeps/mach/hurd/xstat64.c | 40 | ||||
-rw-r--r-- | sysdeps/mach/hurd/xstatconv.c | 47 |
6 files changed, 176 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index be9e75295d..eb774583c1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2000-08-15 Mark Kettenis <kettenis@gnu.org> + * sysdeps/mach/hurd/xstatconv.c: New file. + * sysdeps/mach/hurd/fxstat64.c: New file. + * sysdeps/mach/hurd/lxstat64.c: New file. + * sysdeps/mach/hurd/xstat64.c: New file. + * sysdeps/mach/hurd/Dist: Add xstatconv.c. + +2000-08-15 Mark Kettenis <kettenis@gnu.org> + * sysdeps/mach/hurd/dl-sysdep.c (__libc_multiple_libcs): Initialize, needed for change in common symbol handling in newer binutils. Mirrors 2000-01-03 change made by Andreas Schwab. diff --git a/sysdeps/mach/hurd/Dist b/sysdeps/mach/hurd/Dist index 6f9abb25ac..3a0a252564 100644 --- a/sysdeps/mach/hurd/Dist +++ b/sysdeps/mach/hurd/Dist @@ -13,3 +13,4 @@ net/if_ppp.h net/route.h nfs/nfs.h siglist.h +xstatconv.c diff --git a/sysdeps/mach/hurd/fxstat64.c b/sysdeps/mach/hurd/fxstat64.c new file mode 100644 index 0000000000..2c2fe63965 --- /dev/null +++ b/sysdeps/mach/hurd/fxstat64.c @@ -0,0 +1,40 @@ +/* Copyright (C) 2000 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <errno.h> +#include <stddef.h> +#include <sys/stat.h> + +#include "xstatconv.c" + +/* Get information about the file descriptor FD in BUF. */ +int +__fxstat64 (int vers, int fd, struct stat64 *buf) +{ + int result; + struct stat buf32; + + /* XXX We simply call __fxstat and convert the result to `struct + stat64'. We can probably get away with that since we don't + support large files on the Hurd yet. */ + result = __fxstat (vers, fd, &buf32); + if (result == 0) + xstat64_conv (&buf32, buf); + + return result; +} diff --git a/sysdeps/mach/hurd/lxstat64.c b/sysdeps/mach/hurd/lxstat64.c new file mode 100644 index 0000000000..a8c3c9b0e9 --- /dev/null +++ b/sysdeps/mach/hurd/lxstat64.c @@ -0,0 +1,40 @@ +/* Copyright (C) 2000 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <errno.h> +#include <stddef.h> +#include <sys/stat.h> + +#include "xstatconv.c" + +/* Get information about the file descriptor FD in BUF. */ +int +__lxstat64 (int vers, const char *file, struct stat64 *buf) +{ + int result; + struct stat buf32; + + /* XXX We simply call __lxstat and convert the result to `struct + stat64'. We can probably get away with that since we don't + support large files on the Hurd yet. */ + result = __lxstat (vers, file, &buf32); + if (result == 0) + xstat64_conv (&buf32, buf); + + return result; +} diff --git a/sysdeps/mach/hurd/xstat64.c b/sysdeps/mach/hurd/xstat64.c new file mode 100644 index 0000000000..5bb4096c75 --- /dev/null +++ b/sysdeps/mach/hurd/xstat64.c @@ -0,0 +1,40 @@ +/* Copyright (C) 2000 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <errno.h> +#include <stddef.h> +#include <sys/stat.h> + +#include "xstatconv.c" + +/* Get information about the file descriptor FD in BUF. */ +int +__xstat64 (int vers, const char *file, struct stat64 *buf) +{ + int result; + struct stat buf32; + + /* XXX We simply call __xstat and convert the result to `struct + stat64'. We can probably get away with that since we don't + support large files on the Hurd yet. */ + result = __xstat (vers, file, &buf32); + if (result == 0) + xstat64_conv (&buf32, buf); + + return result; +} diff --git a/sysdeps/mach/hurd/xstatconv.c b/sysdeps/mach/hurd/xstatconv.c new file mode 100644 index 0000000000..51e5b53b8c --- /dev/null +++ b/sysdeps/mach/hurd/xstatconv.c @@ -0,0 +1,47 @@ +/* Convert between `struct stat' format, and `struct stat64' format. + Copyright (C) 2000 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <string.h> +#include <sys/stat.h> + +static inline void +xstat64_conv (struct stat *buf, struct stat64 *buf64) +{ + memset (buf64, 0, sizeof (struct stat64)); + + buf64->st_fstype = buf->st_fstype; + buf64->st_fsid = buf->st_fsid; + buf64->st_ino = buf->st_ino; + buf64->st_gen = buf->st_gen; + buf64->st_rdev = buf->st_rdev; + buf64->st_mode = buf->st_mode; + buf64->st_nlink = buf->st_nlink; + buf64->st_uid = buf->st_uid; + buf64->st_gid = buf->st_gid; + buf64->st_size = buf->st_size; + buf64->st_atime_usec = buf->st_atime_usec; + buf64->st_mtime = buf->st_mtime; + buf64->st_mtime_usec = buf->st_mtime_usec; + buf64->st_ctime = buf->st_ctime; + buf64->st_ctime_usec = buf->st_ctime_usec; + buf64->st_blksize = buf->st_blksize; + buf64->st_blocks = buf->st_blocks; + buf64->st_author = buf->st_author; + buf64->st_flags = buf->st_flags; +} |