aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-08-11 01:08:23 +0000
committerUlrich Drepper <drepper@redhat.com>1996-08-11 01:08:23 +0000
commit267ca16a67be70e0361c212e805d43884aee4506 (patch)
tree5866c33fdf3e7366ae9d89ed71e0683fbbf8517c
parentf2b5d40e87c64a1bd855e9408bd81ab508eade87 (diff)
downloadglibc-267ca16a67be70e0361c212e805d43884aee4506.tar.xz
glibc-267ca16a67be70e0361c212e805d43884aee4506.zip
Sat Aug 10 13:17:27 1996 David Mosberger-Tang <davidm@azstarnet.com> * shadow.h: New file. * sysdeps/unix/sysv/linux/netinet/in.h: Move __BEGIN_DECLS/__END_DECLS up so ntohl() et al are bracketed as well. * socket/sys/socket.h [__cplusplus]: Use old-style __SOCKADDR_ARG. g++ 2.7.2 (and earlier) has no transparent unions support. Fri Aug 9 18:50:06 1996 David Mosberger-Tang <davidm@azstarnet.com> * sysdeps/unix/sysv/linux/alpha/ioperm.c (_bus_base_sparse): New function to determine the base address of sparse bus memory. (APECS_*): Rename to CIA_*. (APECS_SPARSE_MEM, CIA_SPARSE_MEM): New macros. (platform): Add sparse_bus_memory_base member and initialize. (sparse_bus_memory_base): New variable. Tue Aug 6 10:23:18 1996 David Mosberger-Tang <davidm@azstarnet.com> * sysdeps/posix/ttyname_r.c (ttyname_r), sysdeps/posix/ttyname.c (ttyname): Return -1/NULL if !__isatty(fd) (POSIX.1 says so.) * sysdeps/unix/getlogin.c (getlogin): Fix to check fd 0 only. This is not a gross hack, after all---for compatibility, getlogin() really should check fd 0 only and not try to base its operation on the controlling tty. Wed Jul 17 10:54:20 1996 David Mosberger-Tang <davidm@azstarnet.com> * sysdeps/unix/getlogin.c (getlogin): Add static variable NAME, change utmp_data from static to auto. Sun Aug 11 02:56:08 1996 Ulrich Drepper <drepper@cygnus.com> * posix/unistd.h [__USE_MISC]: Add prototype for `nice'. Reported by David Mosberger-Tang.
-rw-r--r--ChangeLog41
-rw-r--r--gmon/sys/gmon.h8
-rw-r--r--grp/fgetgrent_r.c63
-rw-r--r--io/fts.h1
-rw-r--r--nss/nss_files/files-spwd.c37
-rw-r--r--nss/spwd-lookup.c22
-rw-r--r--pwd/fgetpwent_r.c65
-rw-r--r--shadow/Makefile29
-rw-r--r--shadow/fgetspent.c31
-rw-r--r--shadow/fgetspent_r.c56
-rw-r--r--shadow/getspent.c30
-rw-r--r--shadow/getspent_r.c30
-rw-r--r--shadow/getspnam.c30
-rw-r--r--shadow/getspnam_r.c30
-rw-r--r--shadow/putspent.c80
-rw-r--r--shadow/sgetspent.c46
-rw-r--r--shadow/sgetspent_r.c72
-rw-r--r--shadow/shadow.h108
-rw-r--r--stdio-common/scanf3.c1
-rw-r--r--string/argz.h8
-rw-r--r--sysdeps/i386/i686/Implies2
-rw-r--r--sysdeps/libm-ieee754/s_isnan.c1
-rw-r--r--sysdeps/posix/tempname.c1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/clone.S118
-rw-r--r--sysdeps/unix/sysv/linux/direntry.h22
-rw-r--r--sysdeps/unix/sysv/linux/ftime.c3
-rw-r--r--sysdeps/unix/sysv/linux/i386/clone.S80
-rw-r--r--sysdeps/unix/sysv/linux/m68k/resourcebits.h3
-rw-r--r--sysdeps/unix/sysv/linux/sys/acct.h3
-rw-r--r--sysdeps/unix/sysv/linux/sys/io.h13
-rw-r--r--sysdeps/unix/sysv/linux/sys/klog.h26
-rw-r--r--sysdeps/unix/sysv/linux/sys/module.h23
-rw-r--r--sysdeps/unix/sysv/linux/sys/timex.h9
33 files changed, 1062 insertions, 30 deletions
diff --git a/ChangeLog b/ChangeLog
index ef3a011895..6b9e3b98ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,44 @@
+Sat Aug 10 13:17:27 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * shadow.h: New file.
+
+ * sysdeps/unix/sysv/linux/netinet/in.h: Move
+ __BEGIN_DECLS/__END_DECLS up so ntohl() et al are bracketed as
+ well.
+
+ * socket/sys/socket.h [__cplusplus]: Use old-style __SOCKADDR_ARG.
+ g++ 2.7.2 (and earlier) has no transparent unions support.
+
+Fri Aug 9 18:50:06 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sysdeps/unix/sysv/linux/alpha/ioperm.c (_bus_base_sparse): New
+ function to determine the base address of sparse bus memory.
+ (APECS_*): Rename to CIA_*.
+ (APECS_SPARSE_MEM, CIA_SPARSE_MEM): New macros.
+ (platform): Add sparse_bus_memory_base member and initialize.
+ (sparse_bus_memory_base): New variable.
+
+Tue Aug 6 10:23:18 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sysdeps/posix/ttyname_r.c (ttyname_r),
+ sysdeps/posix/ttyname.c (ttyname): Return -1/NULL if
+ !__isatty(fd) (POSIX.1 says so.)
+
+ * sysdeps/unix/getlogin.c (getlogin): Fix to check fd 0 only.
+ This is not a gross hack, after all---for compatibility,
+ getlogin() really should check fd 0 only and not try to base its
+ operation on the controlling tty.
+
+Wed Jul 17 10:54:20 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sysdeps/unix/getlogin.c (getlogin): Add static variable NAME,
+ change utmp_data from static to auto.
+
+Sun Aug 11 02:56:08 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/unistd.h [__USE_MISC]: Add prototype for `nice'.
+ Reported by David Mosberger-Tang.
+
Sat Aug 10 02:05:28 1996 Richard Henderson <richard@twiddle.tamu.edu>
* sysdeps/libm-ieee754/s_isnan.c [NO_LONG_DOUBLE]: Add strong
diff --git a/gmon/sys/gmon.h b/gmon/sys/gmon.h
index 8cbd6bdeda..d963797cd2 100644
--- a/gmon/sys/gmon.h
+++ b/gmon/sys/gmon.h
@@ -33,10 +33,12 @@
* @(#)gmon.h 8.2 (Berkeley) 1/4/94
*/
-#ifndef _SYS_GMON_H_
-#define _SYS_GMON_H_
+#ifndef _SYS_GMON_H_
-#include <sys/cdefs.h>
+#define _SYS_GMON_H_ 1
+#include <features.h>
+
+#include <sys/types.h>
/*
* See gmon_out.h for gmon.out format.
diff --git a/grp/fgetgrent_r.c b/grp/fgetgrent_r.c
new file mode 100644
index 0000000000..f8b8d97d25
--- /dev/null
+++ b/grp/fgetgrent_r.c
@@ -0,0 +1,63 @@
+/* Copyright (C) 1991, 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 <ctype.h>
+#include <grp.h>
+#include <stdio.h>
+
+/* Define a line parsing function using the common code
+ used in the nss_files module. */
+
+#define STRUCTURE group
+#define ENTNAME grent
+struct grent_data {};
+
+#define TRAILING_LIST_MEMBER gr_mem
+#define TRAILING_LIST_SEPARATOR_P(c) ((c) == ',')
+#include "../nss/nss_files/files-parse.c"
+LINE_PARSER
+(,
+ STRING_FIELD (result->gr_name, ISCOLON, 0);
+ STRING_FIELD (result->gr_passwd, ISCOLON, 0);
+ INT_FIELD (result->gr_gid, ISCOLON, 0, 10,);
+ )
+
+
+/* Read one entry from the given stream. */
+struct group *
+__fgetgrent_r (FILE *stream, struct group *result, char *buffer, int buflen)
+{
+ char *p;
+
+ do
+ {
+ p = fgets (buffer, buflen, stream);
+ if (p == NULL)
+ return NULL;
+
+ /* Skip leading blanks. */
+ while (isspace (*p))
+ ++p;
+ } while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ /* Parse the line. If it is invalid, loop to
+ get the next line of the file to parse. */
+ ! parse_line (p, result, (void *) buffer, buflen));
+
+ return result;
+}
+weak_alias (__fgetgrent_r, fgetgrent_r)
diff --git a/io/fts.h b/io/fts.h
index 643a027c2c..a6548c2d79 100644
--- a/io/fts.h
+++ b/io/fts.h
@@ -37,6 +37,7 @@
#define _FTS_H_
#include <sys/cdefs.h>
+#include <sys/types.h>
typedef struct {
struct _ftsent *fts_cur; /* current node */
diff --git a/nss/nss_files/files-spwd.c b/nss/nss_files/files-spwd.c
new file mode 100644
index 0000000000..df0106bdd6
--- /dev/null
+++ b/nss/nss_files/files-spwd.c
@@ -0,0 +1,37 @@
+/* User file parser in nss_files module.
+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 <shadow.h>
+
+#define STRUCTURE spwd
+#define ENTNAME spent
+#define DATABASE "shadow"
+struct spent_data {};
+
+/* Our parser function is already defined in sgetspent_r.c, so use that
+ to parse lines from the database file. */
+#define EXTERN_PARSER
+#include "files-parse.c"
+#include GENERIC
+
+DB_LOOKUP (spnam, 1 + strlen (name), (".%s", name),
+ {
+ if (! strcmp (name, result->sp_namp))
+ break;
+ }, const char *name)
diff --git a/nss/spwd-lookup.c b/nss/spwd-lookup.c
new file mode 100644
index 0000000000..8832805f44
--- /dev/null
+++ b/nss/spwd-lookup.c
@@ -0,0 +1,22 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+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. */
+
+#define DATABASE_NAME shadow
+
+#include "XXX-lookup.c"
diff --git a/pwd/fgetpwent_r.c b/pwd/fgetpwent_r.c
new file mode 100644
index 0000000000..9b58e61009
--- /dev/null
+++ b/pwd/fgetpwent_r.c
@@ -0,0 +1,65 @@
+/* Copyright (C) 1991, 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 <ctype.h>
+#include <stdio.h>
+#include <pwd.h>
+
+/* Define a line parsing function using the common code
+ used in the nss_files module. */
+
+#define STRUCTURE passwd
+#define ENTNAME pwent
+struct pwent_data {};
+
+#include "../nss/nss_files/files-parse.c"
+LINE_PARSER
+(,
+ STRING_FIELD (result->pw_name, ISCOLON, 0);
+ STRING_FIELD (result->pw_passwd, ISCOLON, 0);
+ INT_FIELD (result->pw_uid, ISCOLON, 0, 10,);
+ INT_FIELD (result->pw_gid, ISCOLON, 0, 10,);
+ STRING_FIELD (result->pw_gecos, ISCOLON, 0);
+ STRING_FIELD (result->pw_dir, ISCOLON, 0);
+ result->pw_shell = line;
+ )
+
+
+/* Read one entry from the given stream. */
+struct passwd *
+__fgetpwent_r (FILE *stream, struct passwd *result, char *buffer, int buflen)
+{
+ char *p;
+
+ do
+ {
+ p = fgets (buffer, buflen, stream);
+ if (p == NULL)
+ return NULL;
+
+ /* Skip leading blanks. */
+ while (isspace (*p))
+ ++p;
+ } while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ /* Parse the line. If it is invalid, loop to
+ get the next line of the file to parse. */
+ ! parse_line (p, result, (void *) buffer, buflen));
+
+ return result;
+}
+weak_alias (__fgetpwent_r, fgetpwent_r)
diff --git a/shadow/Makefile b/shadow/Makefile
new file mode 100644
index 0000000000..943881f1f1
--- /dev/null
+++ b/shadow/Makefile
@@ -0,0 +1,29 @@
+# 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.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# Makefile for shadow.
+#
+subdir := shadow
+
+headers = shadow.h
+routines = getspent getspnam sgetspent fgetspent putspent \
+ getspent_r getspnam_r sgetspent_r fgetspent_r
+
+
+include ../Rules
diff --git a/shadow/fgetspent.c b/shadow/fgetspent.c
new file mode 100644
index 0000000000..d6c4e4fc05
--- /dev/null
+++ b/shadow/fgetspent.c
@@ -0,0 +1,31 @@
+/* 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 <shadow.h>
+#include <stdio.h>
+
+
+/* Read one shadow entry from the given stream. */
+struct spwd *
+fgetspent (FILE *stream)
+{
+ static char buffer[BUFSIZ];
+ static struct spwd result;
+
+ return __fgetspent_r (stream, &result, buffer, sizeof buffer);
+}
diff --git a/shadow/fgetspent_r.c b/shadow/fgetspent_r.c
new file mode 100644
index 0000000000..6521517a6f
--- /dev/null
+++ b/shadow/fgetspent_r.c
@@ -0,0 +1,56 @@
+/* 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 <ctype.h>
+#include <shadow.h>
+#include <stdio.h>
+
+/* Define a line parsing function using the common code
+ used in the nss_files module. */
+
+#define STRUCTURE spwd
+#define ENTNAME spent
+#define EXTERN_PARSER 1
+struct spent_data {};
+
+#include "../nss/nss_files/files-parse.c"
+
+
+/* Read one shadow entry from the given stream. */
+struct spwd *
+__fgetspent_r (FILE *stream, struct spwd *result, char *buffer, int buflen)
+{
+ char *p;
+
+ do
+ {
+ p = fgets (buffer, buflen, stream);
+ if (p == NULL)
+ return NULL;
+
+ /* Skip leading blanks. */
+ while (isspace (*p))
+ ++p;
+ } while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ /* Parse the line. If it is invalid, loop to
+ get the next line of the file to parse. */
+ ! parse_line (buffer, (void *) result, NULL, 0));
+
+ return result;
+}
+weak_alias (__fgetspent_r, fgetspent_r)
diff --git a/shadow/getspent.c b/shadow/getspent.c
new file mode 100644
index 0000000000..4266959bc1
--- /dev/null
+++ b/shadow/getspent.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+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