about summary refs log tree commit diff
path: root/REORG.TODO/streams
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/streams')
-rw-r--r--REORG.TODO/streams/Makefile28
-rw-r--r--REORG.TODO/streams/Versions15
-rw-r--r--REORG.TODO/streams/fattach.c29
-rw-r--r--REORG.TODO/streams/fdetach.c29
-rw-r--r--REORG.TODO/streams/getmsg.c29
-rw-r--r--REORG.TODO/streams/getpmsg.c30
-rw-r--r--REORG.TODO/streams/isastream.c33
-rw-r--r--REORG.TODO/streams/putmsg.c30
-rw-r--r--REORG.TODO/streams/putpmsg.c30
-rw-r--r--REORG.TODO/streams/stropts.h92
-rw-r--r--REORG.TODO/streams/sys/stropts.h1
11 files changed, 346 insertions, 0 deletions
diff --git a/REORG.TODO/streams/Makefile b/REORG.TODO/streams/Makefile
new file mode 100644
index 0000000000..ce577ae30d
--- /dev/null
+++ b/REORG.TODO/streams/Makefile
@@ -0,0 +1,28 @@
+# Copyright (C) 1998-2017 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 Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 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
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <http://www.gnu.org/licenses/>.
+
+#
+#	Makefile for streams.
+#
+subdir	:= streams
+
+include ../Makeconfig
+
+headers		= stropts.h sys/stropts.h bits/stropts.h bits/xtitypes.h
+routines	= isastream getmsg getpmsg putmsg putpmsg fattach fdetach
+
+include ../Rules
diff --git a/REORG.TODO/streams/Versions b/REORG.TODO/streams/Versions
new file mode 100644
index 0000000000..9a6f4d756c
--- /dev/null
+++ b/REORG.TODO/streams/Versions
@@ -0,0 +1,15 @@
+libc {
+  GLIBC_2.1 {
+    # f*
+    fattach; fdetach;
+
+    # g*
+    getmsg; getpmsg;
+
+    # i*
+    isastream;
+
+    # p*
+    putmsg; putpmsg;
+  }
+}
diff --git a/REORG.TODO/streams/fattach.c b/REORG.TODO/streams/fattach.c
new file mode 100644
index 0000000000..e25c86c5f8
--- /dev/null
+++ b/REORG.TODO/streams/fattach.c
@@ -0,0 +1,29 @@
+/* Copyright (C) 1998-2017 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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stropts.h>
+
+int
+fattach (int fildes, const char *path)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+
+stub_warning (fattach)
diff --git a/REORG.TODO/streams/fdetach.c b/REORG.TODO/streams/fdetach.c
new file mode 100644
index 0000000000..786dc124ea
--- /dev/null
+++ b/REORG.TODO/streams/fdetach.c
@@ -0,0 +1,29 @@
+/* Copyright (C) 1998-2017 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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stropts.h>
+
+int
+fdetach (const char *path)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+
+stub_warning (fdetach)
diff --git a/REORG.TODO/streams/getmsg.c b/REORG.TODO/streams/getmsg.c
new file mode 100644
index 0000000000..5ab1b7caad
--- /dev/null
+++ b/REORG.TODO/streams/getmsg.c
@@ -0,0 +1,29 @@
+/* Copyright (C) 1998-2017 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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stropts.h>
+
+int
+getmsg (int fildes, struct strbuf *ctlptr, struct strbuf *dataptr, int *flagsp)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+
+stub_warning (getmsg)
diff --git a/REORG.TODO/streams/getpmsg.c b/REORG.TODO/streams/getpmsg.c
new file mode 100644
index 0000000000..a163a6cb89
--- /dev/null
+++ b/REORG.TODO/streams/getpmsg.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 1998-2017 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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stropts.h>
+
+int
+getpmsg (int fildes, struct strbuf *ctlptr, struct strbuf *dataptr, int *bandp,
+	 int *flagsp)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+
+stub_warning (getpmsg)
diff --git a/REORG.TODO/streams/isastream.c b/REORG.TODO/streams/isastream.c
new file mode 100644
index 0000000000..23ef519980
--- /dev/null
+++ b/REORG.TODO/streams/isastream.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 1998-2017 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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stropts.h>
+
+int
+isastream (int fildes)
+{
+  /* In general we do not have a STREAMS implementation and therefore
+     return 0.  But for invalid file descriptors we have to return an
+     error.  */
+  if (__fcntl (fildes, F_GETFD) < 0)
+    return -1;
+
+  /* No STREAM.  */
+  return 0;
+}
diff --git a/REORG.TODO/streams/putmsg.c b/REORG.TODO/streams/putmsg.c
new file mode 100644
index 0000000000..e397a1ac6b
--- /dev/null
+++ b/REORG.TODO/streams/putmsg.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 1998-2017 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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stropts.h>
+
+int
+putmsg (int fildes, const struct strbuf *ctlptr, const struct strbuf *dataptr,
+	int flags)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+
+stub_warning (putmsg)
diff --git a/REORG.TODO/streams/putpmsg.c b/REORG.TODO/streams/putpmsg.c
new file mode 100644
index 0000000000..e7d8ead7a5
--- /dev/null
+++ b/REORG.TODO/streams/putpmsg.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 1998-2017 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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stropts.h>
+
+int
+putpmsg (int fildes, const struct strbuf *ctlptr, const struct strbuf *dataptr,
+	 int band, int flags)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+
+stub_warning (putpmsg)
diff --git a/REORG.TODO/streams/stropts.h b/REORG.TODO/streams/stropts.h
new file mode 100644
index 0000000000..b66ba02467
--- /dev/null
+++ b/REORG.TODO/streams/stropts.h
@@ -0,0 +1,92 @@
+/* Copyright (C) 1998-2017 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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _STROPTS_H
+#define _STROPTS_H	1
+
+#include <features.h>
+#include <bits/types.h>
+#include <bits/xtitypes.h>
+
+#ifndef __gid_t_defined
+typedef __gid_t gid_t;
+# define __gid_t_defined
+#endif
+
+#ifndef __uid_t_defined
+typedef __uid_t uid_t;
+# define __uid_t_defined
+#endif
+
+typedef __t_scalar_t t_scalar_t;
+typedef __t_uscalar_t t_uscalar_t;
+
+/* Get system specific constants.  */
+#include <bits/stropts.h>
+
+
+__BEGIN_DECLS
+
+/* Test whether FILDES is associated with a STREAM-based file.  */
+extern int isastream (int __fildes) __THROW;
+
+/* Receive next message from a STREAMS file.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern int getmsg (int __fildes, struct strbuf *__restrict __ctlptr,
+		   struct strbuf *__restrict __dataptr,
+		   int *__restrict __flagsp);
+
+/* Receive next message from a STREAMS file, with *FLAGSP allowing to
+   control which message.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern int getpmsg (int __fildes, struct strbuf *__restrict __ctlptr,
+		    struct strbuf *__restrict __dataptr,
+		    int *__restrict __bandp, int *__restrict __flagsp);
+
+/* Perform the I/O control operation specified by REQUEST on FD.
+   One argument may follow; its presence and type depend on REQUEST.
+   Return value depends on REQUEST.  Usually -1 indicates error.  */
+extern int ioctl (int __fd, unsigned long int __request, ...) __THROW;
+
+/* Send a message on a STREAM.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern int putmsg (int __fildes, const struct strbuf *__ctlptr,
+		   const struct strbuf *__dataptr, int __flags);
+
+/* Send a message on a STREAM to the BAND.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern int putpmsg (int __fildes, const struct strbuf *__ctlptr,
+		    const struct strbuf *__dataptr, int __band, int __flags);
+
+/* Attach a STREAMS-based file descriptor FILDES to a file PATH in the
+   file system name space.  */
+extern int fattach (int __fildes, const char *__path) __THROW;
+
+/* Detach a name PATH from a STREAMS-based file descriptor.  */
+extern int fdetach (const char *__path) __THROW;
+
+__END_DECLS
+
+#endif /* stropts.h */
diff --git a/REORG.TODO/streams/sys/stropts.h b/REORG.TODO/streams/sys/stropts.h
new file mode 100644
index 0000000000..5b5bc02f40
--- /dev/null
+++ b/REORG.TODO/streams/sys/stropts.h
@@ -0,0 +1 @@
+#include <stropts.h>