* sysdeps/unix/sysv/linux/Makefile [$(subdir)=termios] (headers):
Append termio.h. * Makefile ($(includedir)/stubs.h): Print a msg if we do nothing. * misc/sgtty.h: Add forward decl of struct sgttyb in case it is never defined. * sysdeps/unix/sysv/linux/termio.h: New file. * sysdeps/unix/sysv/linux/Dist: Add it. * sysdeps/unix/sysv/linux/ioctl-types.h: New file, wrapper around kernel header <asm/termios.h>. * misc/Makefile (headers): Add ioctl-types.h. * sysdeps/generic/ioctl-types.h: New file. * misc/sys/ioctl.h: Include <ioctl-types.h>. (struct tchars, struct ltchars, struct sgttyb, struct winsize, struct ttysize): Types moved there.
This commit is contained in:
parent
d36e769230
commit
807912915b
20
ChangeLog
20
ChangeLog
|
@ -1,5 +1,25 @@
|
|||
Mon May 27 10:10:00 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
|
||||
|
||||
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=termios] (headers):
|
||||
Append termio.h.
|
||||
|
||||
* Makefile ($(includedir)/stubs.h): Print a msg if we do nothing.
|
||||
|
||||
* misc/sgtty.h: Add forward decl of struct sgttyb in case it is never
|
||||
defined.
|
||||
|
||||
* sysdeps/unix/sysv/linux/termio.h: New file.
|
||||
* sysdeps/unix/sysv/linux/Dist: Add it.
|
||||
|
||||
* sysdeps/unix/sysv/linux/ioctl-types.h: New file, wrapper around
|
||||
kernel header <asm/termios.h>.
|
||||
|
||||
* misc/Makefile (headers): Add ioctl-types.h.
|
||||
* sysdeps/generic/ioctl-types.h: New file.
|
||||
* misc/sys/ioctl.h: Include <ioctl-types.h>.
|
||||
(struct tchars, struct ltchars, struct sgttyb, struct winsize,
|
||||
struct ttysize): Types moved there.
|
||||
|
||||
* Makefile ($(includedir)/stubs.h): Don't touch target if new one is
|
||||
identical.
|
||||
|
||||
|
|
3
Makefile
3
Makefile
|
@ -144,7 +144,8 @@ $(includedir)/stubs.h: subdir_install
|
|||
echo ' in the C library which is a stub, meaning it will fail';\
|
||||
echo ' every time called, usually setting errno to ENOSYS. */';\
|
||||
sort $(subdir-stubs)) > $(objpfx)stubs.h
|
||||
if test -r $@ && cmp -s $(objpfx)stubs.h $@; then : ; \
|
||||
if test -r $@ && cmp -s $(objpfx)stubs.h $@;
|
||||
then echo stubs.h unchanged ; \
|
||||
else $(INSTALL_DATA) $(objpfx)stubs.h $@; fi
|
||||
rm -f $(objpfx)stubs.h
|
||||
|
||||
|
|
|
@ -22,7 +22,8 @@
|
|||
|
||||
subdir := misc
|
||||
|
||||
headers := sys/uio.h iovec.h sys/ioctl.h sys/ptrace.h ioctls.h sys/file.h\
|
||||
headers := sys/uio.h iovec.h sys/ioctl.h ioctls.h ioctl-types.h \
|
||||
sys/ptrace.h sys/file.h \
|
||||
a.out.h nlist.h stab.h stab.def sgtty.h sys/dir.h sys/cdefs.h \
|
||||
ttyent.h syscall.h syslog.h sys/syslog.h paths.h sys/reboot.h \
|
||||
sys/mman.h sys/param.h fstab.h mntent.h search.h err.h error.h\
|
||||
|
|
|
@ -22,6 +22,10 @@ Cambridge, MA 02139, USA. */
|
|||
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
/* On some systems this type is not defined by <ioctl-types.h>;
|
||||
in that case, the functions are just stubs that return ENOSYS. */
|
||||
struct sgttyb;
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* Fill in *PARAMS with terminal parameters associated with FD. */
|
||||
|
|
|
@ -26,6 +26,9 @@ __BEGIN_DECLS
|
|||
/* Get the list of `ioctl' requests and related constants. */
|
||||
#include <ioctls.h>
|
||||
|
||||
/* Define some types used by `ioctl' requests. */
|
||||
#include <ioctl-types.h>
|
||||
|
||||
/* On a Unix system, the system <sys/ioctl.h> probably defines some of the
|
||||
symbols we define in <sys/ttydefaults.h> (usually with the same values).
|
||||
The code to generate <ioctls.h> has omitted these symbols to avoid the
|
||||
|
@ -33,92 +36,6 @@ __BEGIN_DECLS
|
|||
must include <sys/ttydefaults.h> here. */
|
||||
#include <sys/ttydefaults.h>
|
||||
|
||||
#if defined(TIOCGETC) || defined(TIOCSETC)
|
||||
/* Type of ARG for TIOCGETC and TIOCSETC requests. */
|
||||
struct tchars
|
||||
{
|
||||
char t_intrc; /* Interrupt character. */
|
||||
char t_quitc; /* Quit character. */
|
||||
char t_startc; /* Start-output character. */
|
||||
char t_stopc; /* Stop-output character. */
|
||||
char t_eofc; /* End-of-file character. */
|
||||
char t_brkc; /* Input delimiter character. */
|
||||
};
|
||||
|
||||
#define _IOT_tchars /* Hurd ioctl type field. */ \
|
||||
_IOT (_IOTS (char), 6, 0, 0, 0, 0)
|
||||
#endif
|
||||
|
||||
#if defined(TIOCGLTC) || defined(TIOCSLTC)
|
||||
/* Type of ARG for TIOCGLTC and TIOCSLTC requests. */
|
||||
struct ltchars
|
||||
{
|
||||
char t_suspc; /* Suspend character. */
|
||||
char t_dsuspc; /* Delayed suspend character. */
|
||||
char t_rprntc; /* Reprint-line character. */
|
||||
char t_flushc; /* Flush-output character. */
|
||||
char t_werasc; /* Word-erase character. */
|
||||
char t_lnextc; /* Literal-next character. */
|
||||
};
|
||||
|
||||
#define _IOT_ltchars /* Hurd ioctl type field. */ \
|
||||
_IOT (_IOTS (char), 6, 0, 0, 0, 0)
|
||||
#endif
|
||||
|
||||
/* Type of ARG for TIOCGETP and TIOCSETP requests (and gtty and stty). */
|
||||
struct sgttyb
|
||||
{
|
||||
char sg_ispeed; /* Input speed. */
|
||||
char sg_ospeed; /* Output speed. */
|
||||
char sg_erase; /* Erase character. */
|
||||
char sg_kill; /* Kill character. */
|
||||
short int sg_flags; /* Mode flags. */
|
||||
};
|
||||
|
||||
#define _IOT_sgttyb /* Hurd ioctl type field. */ \
|
||||
_IOT (_IOTS (char), 6, _IOTS (short int), 1, 0, 0)
|
||||
|
||||
#if defined(TIOCGWINSZ) || defined(TIOCSWINSZ)
|
||||
/* Type of ARG for TIOCGWINSZ and TIOCSWINSZ requests. */
|
||||
struct winsize
|
||||
{
|
||||
unsigned short int ws_row; /* Rows, in characters. */
|
||||
unsigned short int ws_col; /* Columns, in characters. */
|
||||
|
||||
/* These are not actually used. */
|
||||
unsigned short int ws_xpixel; /* Horizontal pixels. */
|
||||
unsigned short int ws_ypixel; /* Vertical pixels. */
|
||||
};
|
||||
|
||||
#define _IOT_winsize /* Hurd ioctl type field. */ \
|
||||
_IOT (_IOTS (unsigned short int), 4, 0, 0, 0, 0)
|
||||
#endif
|
||||
|
||||
#if defined (TIOCGSIZE) || defined (TIOCSSIZE)
|
||||
# if defined (TIOCGWINSZ) && TIOCGSIZE == TIOCGWINSZ
|
||||
/* Many systems that have TIOCGWINSZ define TIOCGSIZE for source
|
||||
compatibility with Sun; they define `struct ttysize' to have identical
|
||||
layout as `struct winsize' and #define TIOCGSIZE to be TIOCGWINSZ
|
||||
(likewise TIOCSSIZE and TIOCSWINSZ). */
|
||||
struct ttysize
|
||||
{
|
||||
unsigned short int ts_lines;
|
||||
unsigned short int ts_cols;
|
||||
unsigned short int ts_xxx;
|
||||
unsigned short int ts_yyy;
|
||||
};
|
||||
#define _IOT_ttysize _IOT_winsize
|
||||
# else
|
||||
/* Suns use a different layout for `struct ttysize', and TIOCGSIZE and
|
||||
TIOCGWINSZ are separate commands that do the same thing with different
|
||||
structures (likewise TIOCSSIZE and TIOCSWINSZ). */
|
||||
struct ttysize
|
||||
{
|
||||
int ts_lines, ts_cols; /* Lines and columns, in characters. */
|
||||
};
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* 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. */
|
||||
|
|
|
@ -0,0 +1,111 @@
|
|||
/* Structure types for pre-termios terminal ioctls. Generic Unix 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 _IOCTL_TYPES_H
|
||||
#define _IOCTL_TYPES_H 1
|
||||
|
||||
|
||||
#if defined(TIOCGETC) || defined(TIOCSETC)
|
||||
/* Type of ARG for TIOCGETC and TIOCSETC requests. */
|
||||
struct tchars
|
||||
{
|
||||
char t_intrc; /* Interrupt character. */
|
||||
char t_quitc; /* Quit character. */
|
||||
char t_startc; /* Start-output character. */
|
||||
char t_stopc; /* Stop-output character. */
|
||||
char t_eofc; /* End-of-file character. */
|
||||
char t_brkc; /* Input delimiter character. */
|
||||
};
|
||||
|
||||
#define _IOT_tchars /* Hurd ioctl type field. */ \
|
||||
_IOT (_IOTS (char), 6, 0, 0, 0, 0)
|
||||
#endif
|
||||
|
||||
#if defined(TIOCGLTC) || defined(TIOCSLTC)
|
||||
/* Type of ARG for TIOCGLTC and TIOCSLTC requests. */
|
||||
struct ltchars
|
||||
{
|
||||
char t_suspc; /* Suspend character. */
|
||||
char t_dsuspc; /* Delayed suspend character. */
|
||||
char t_rprntc; /* Reprint-line character. */
|
||||
char t_flushc; /* Flush-output character. */
|
||||
char t_werasc; /* Word-erase character. */
|
||||
char t_lnextc; /* Literal-next character. */
|
||||
};
|
||||
|
||||
#define _IOT_ltchars /* Hurd ioctl type field. */ \
|
||||
_IOT (_IOTS (char), 6, 0, 0, 0, 0)
|
||||
#endif
|
||||
|
||||
/* Type of ARG for TIOCGETP and TIOCSETP requests (and gtty and stty). */
|
||||
struct sgttyb
|
||||
{
|
||||
char sg_ispeed; /* Input speed. */
|
||||
char sg_ospeed; /* Output speed. */
|
||||
char sg_erase; /* Erase character. */
|
||||
char sg_kill; /* Kill character. */
|
||||
short int sg_flags; /* Mode flags. */
|
||||
};
|
||||
|
||||
#define _IOT_sgttyb /* Hurd ioctl type field. */ \
|
||||
_IOT (_IOTS (char), 6, _IOTS (short int), 1, 0, 0)
|
||||
|
||||
#if defined(TIOCGWINSZ) || defined(TIOCSWINSZ)
|
||||
/* Type of ARG for TIOCGWINSZ and TIOCSWINSZ requests. */
|
||||
struct winsize
|
||||
{
|
||||
unsigned short int ws_row; /* Rows, in characters. */
|
||||
unsigned short int ws_col; /* Columns, in characters. */
|
||||
|
||||
/* These are not actually used. */
|
||||
unsigned short int ws_xpixel; /* Horizontal pixels. */
|
||||
unsigned short int ws_ypixel; /* Vertical pixels. */
|
||||
};
|
||||
|
||||
#define _IOT_winsize /* Hurd ioctl type field. */ \
|
||||
_IOT (_IOTS (unsigned short int), 4, 0, 0, 0, 0)
|
||||
#endif
|
||||
|
||||
#if defined (TIOCGSIZE) || defined (TIOCSSIZE)
|
||||
# if defined (TIOCGWINSZ) && TIOCGSIZE == TIOCGWINSZ
|
||||
/* Many systems that have TIOCGWINSZ define TIOCGSIZE for source
|
||||
compatibility with Sun; they define `struct ttysize' to have identical
|
||||
layout as `struct winsize' and #define TIOCGSIZE to be TIOCGWINSZ
|
||||
(likewise TIOCSSIZE and TIOCSWINSZ). */
|
||||
struct ttysize
|
||||
{
|
||||
unsigned short int ts_lines;
|
||||
unsigned short int ts_cols;
|
||||
unsigned short int ts_xxx;
|
||||
unsigned short int ts_yyy;
|
||||
};
|
||||
#define _IOT_ttysize _IOT_winsize
|
||||
# else
|
||||
/* Suns use a different layout for `struct ttysize', and TIOCGSIZE and
|
||||
TIOCGWINSZ are separate commands that do the same thing with different
|
||||
structures (likewise TIOCSSIZE and TIOCSWINSZ). */
|
||||
struct ttysize
|
||||
{
|
||||
int ts_lines, ts_cols; /* Lines and columns, in characters. */
|
||||
};
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* ioctl-types.h */
|
|
@ -5,3 +5,4 @@ sys/socketcall.h
|
|||
sys/sysctl.h
|
||||
sys/timex.h
|
||||
nfs/nfs.h
|
||||
termio.h
|
||||
|
|
|
@ -54,6 +54,10 @@ ifeq ($(subdir), sunrpc)
|
|||
headers += nfs/nfs.h
|
||||
endif
|
||||
|
||||
ifeq ($(subdir), termios)
|
||||
headers += termio.h
|
||||
endif
|
||||
|
||||
rtld-installed-name = ld-gnu.so.1
|
||||
|
||||
# Don't compile the ctype glue code, since there is no old non-GNU C library.
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
/* Structure types for pre-termios terminal ioctls. Linux 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 _IOCTL_TYPES_H
|
||||
#define _IOCTL_TYPES_H 1
|
||||
|
||||
/* The Linux kernel header defines the types associated with old ioctls. */
|
||||
|
||||
#include <asm/termios.h>
|
||||
|
||||
#endif /* ioctl-types.h */
|
|
@ -0,0 +1,6 @@
|
|||
/* Compatible <termio.h> for old `struct termio' ioctl interface.
|
||||
This is obsolete; use the POSIX.1 `struct termios' interface
|
||||
defined in <termios.h> instead. */
|
||||
|
||||
#include <termios.h>
|
||||
#include <sys/ioctl.h>
|
Loading…
Reference in New Issue