aboutsummaryrefslogtreecommitdiff
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>