mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 03:33:33 +08:00
2001-07-20 Roland McGrath <roland@frob.com>
* libio/stdio_ext.h: Moved to ... * stdio-common/stdio_ext.h: ... here. * libio/Makefile (headers): Move stdio_ext.h from here ... * stdio-common/Makefile (headers): ... to here. * include/stdio_ext.h: New file. * stdio/Makefile (routines): Add the stdio_ext.h functions here. * stdio/Versions (GLIBC_2.2.4): Export the stdio_ext.h functions. * stdio/__flbf.c: New file. * stdio/__fbufsize.c: New file. * stdio/__fpending.c: New file. * stdio/__fpurge.c: New file. * stdio/__freadable.c: New file. * stdio/__freading.c: New file. * stdio/__fsetlocking.c: New file. * stdio/__fwritable.c: New file. * stdio/__fwriting.c: New file.
This commit is contained in:
parent
5cd915d7ba
commit
35c53530e9
5
include/stdio_ext.h
Normal file
5
include/stdio_ext.h
Normal file
@ -0,0 +1,5 @@
|
||||
#ifndef _STDIO_EXT_H
|
||||
|
||||
# include <stdio-common/stdio_ext.h>
|
||||
|
||||
#endif
|
@ -21,8 +21,7 @@
|
||||
#
|
||||
subdir := libio
|
||||
|
||||
headers := stdio.h libio.h _G_config.h bits/stdio.h bits/stdio-lock.h \
|
||||
stdio_ext.h
|
||||
headers := stdio.h libio.h _G_config.h bits/stdio.h bits/stdio-lock.h
|
||||
|
||||
routines := \
|
||||
filedoalloc iofclose iofdopen iofflush iofgetpos iofgets iofopen \
|
||||
|
@ -21,7 +21,7 @@
|
||||
#
|
||||
subdir := stdio-common
|
||||
|
||||
headers := printf.h
|
||||
headers := printf.h stdio_ext.h
|
||||
|
||||
routines := \
|
||||
ctermid cuserid \
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1991,92,93,94,95,96,2001 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
|
||||
@ -37,6 +37,8 @@ routines := \
|
||||
fclose fcloseall fflush \
|
||||
vdprintf vsnprintf vsprintf vasprintf vsscanf vscanf \
|
||||
memstream obstream linewrap \
|
||||
__fbufsize __freading __fwriting __freadable __fwritable __flbf \
|
||||
__fpurge __fpending __fsetlocking \
|
||||
internals sysd-stdio pipestream stdio_init libc_fatal
|
||||
aux := defs glue
|
||||
|
||||
|
@ -62,4 +62,9 @@ libc {
|
||||
# p*
|
||||
putc_unlocked; putchar_unlocked;
|
||||
}
|
||||
GLIBC_2.2.4 {
|
||||
# Functions to access FILE internals.
|
||||
__fbufsize; __freading; __fwriting; __freadable; __fwritable; __flbf;
|
||||
__fpurge; __fpending; __fsetlocking; _flushlbf;
|
||||
}
|
||||
}
|
||||
|
25
stdio/__fbufsize.c
Normal file
25
stdio/__fbufsize.c
Normal file
@ -0,0 +1,25 @@
|
||||
/* Copyright (C) 2001 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, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <stdio_ext.h>
|
||||
|
||||
size_t
|
||||
__fbufsize (FILE *fp)
|
||||
{
|
||||
return fp->__bufsize;
|
||||
}
|
25
stdio/__flbf.c
Normal file
25
stdio/__flbf.c
Normal file
@ -0,0 +1,25 @@
|
||||
/* Copyright (C) 2001 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, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <stdio_ext.h>
|
||||
|
||||
int
|
||||
__flbf (FILE *fp)
|
||||
{
|
||||
return fp->__linebuf;
|
||||
}
|
25
stdio/__fpending.c
Normal file
25
stdio/__fpending.c
Normal file
@ -0,0 +1,25 @@
|
||||
/* Copyright (C) 2001 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, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <stdio_ext.h>
|
||||
|
||||
size_t
|
||||
__fpending (FILE *fp)
|
||||
{
|
||||
return (fp->__put_limit >= fp->__bufp ? fp->__bufp - fp->__buffer : 0);
|
||||
}
|
25
stdio/__fpurge.c
Normal file
25
stdio/__fpurge.c
Normal file
@ -0,0 +1,25 @@
|
||||
/* Copyright (C) 2001 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, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <stdio_ext.h>
|
||||
|
||||
void
|
||||
__fpurge (FILE *fp)
|
||||
{
|
||||
fp->__get_limit = fp->__put_limit = fp->__bufp = fp->__buffer;
|
||||
}
|
25
stdio/__freadable.c
Normal file
25
stdio/__freadable.c
Normal file
@ -0,0 +1,25 @@
|
||||
/* Copyright (C) 2001 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, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <stdio_ext.h>
|
||||
|
||||
int
|
||||
__freadable (FILE *fp)
|
||||
{
|
||||
return !!fp->__mode.__read;
|
||||
}
|
26
stdio/__freading.c
Normal file
26
stdio/__freading.c
Normal file
@ -0,0 +1,26 @@
|
||||
/* Copyright (C) 2001 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, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <stdio_ext.h>
|
||||
|
||||
int
|
||||
__freading (FILE *fp)
|
||||
{
|
||||
/* This is not really right for unbuffered streams. */
|
||||
return (!fp->__mode.__write || fp->__put_limit == fp->__buffer);
|
||||
}
|
41
stdio/__fsetlocking.c
Normal file
41
stdio/__fsetlocking.c
Normal file
@ -0,0 +1,41 @@
|
||||
/* Copyright (C) 2001 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, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <stdio_ext.h>
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int
|
||||
__fsetlocking (FILE *fp, int type)
|
||||
{
|
||||
/* We don't really support locking. */
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case FSETLOCKING_QUERY:
|
||||
case FSETLOCKING_BYCALLER:
|
||||
break;
|
||||
case FSETLOCKING_INTERNAL:
|
||||
abort ();
|
||||
default:
|
||||
__set_errno (EINVAL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return FSETLOCKING_BYCALLER;
|
||||
}
|
25
stdio/__fwritable.c
Normal file
25
stdio/__fwritable.c
Normal file
@ -0,0 +1,25 @@
|
||||
/* Copyright (C) 2001 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, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <stdio_ext.h>
|
||||
|
||||
int
|
||||
__fwritable (FILE *fp)
|
||||
{
|
||||
return !!fp->__mode.__write;
|
||||
}
|
26
stdio/__fwriting.c
Normal file
26
stdio/__fwriting.c
Normal file
@ -0,0 +1,26 @@
|
||||
/* Copyright (C) 2001 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, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <stdio_ext.h>
|
||||
|
||||
int
|
||||
__fwriting (FILE *fp)
|
||||
{
|
||||
/* This is not really right for unbuffered streams. */
|
||||
return (!fp->__mode.__read || fp->__get_limit == fp->__buffer);
|
||||
}
|
Loading…
Reference in New Issue
Block a user