Sun Apr 28 14:14:35 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>

* sysdeps/unix/sysv/linux/i386/Makefile: New file.

Wed Apr 24 17:35:30  Ulrich Drepper  <drepper@cygnus.com>

	* inet/netinet/in.h, socket/sys/socket.h: Move to
	sysdeps/generic/netinet/in.h, sysdeps/generic/sys/socket.h.
	* netinet/in.h, sys/socket.h: Remove file.

	* misc/Makefile (routines): Add fdatasync.

	* posix/Makefile (headers): Add sched.h.
	(routines): Add nanosleep, sched_setp, sched_getp, sched_sets,
	sched_gets, sched_yield, sched_primax, sched_primin, sched_rr_gi.

	* posix/getconf.c (vars): Add entries for _POSIX_REALTIME_SIGNALS,
	_POSIX_PRIORITY_SCHEDULING, _POSIX_TIMERS, _POSIX_ASYNCHRONOUS_IO,
	_POSIX_PRIORITIZED_IO, _POSIX_SYNCHRONIZED_IO, _POSIX_FSYNC,
	_POSIX_MAPPED_FILES, _POSIX_MEMLOCK, _POSIX_MEMLOCK_RANGE,
	_POSIX_MEMORY_PROTECTION, _POSIX_MESSAGE_PASSING,
	_POSIX_SEMAPHORES, _POSIX_SHARED_MEMORY_OBJECTS.

	* posix/sched.h: New file.  Header for POSIX scheduling interface.

	* posix/unistd.h: Describe options from POSIX.4.
	Add declaration of fdatasync.

	* sysdeps/generic/confname.h: Add definition for
	 _SC_REALTIME_SIGNALS, _SC_PRIORITY_SCHEDULING, _SC_TIMERS,
	_SC_ASYNCHRONOUS_IO, _SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO,
	_SC_FSYNC, _SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE,
	_SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING,
	_SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS.

	* sysdeps/generic/fdatasync.c: New file.  Default implementation
	simply uses fsync.

	* sysdeps/generic/netinit/in.h: Moved to here from inet/netinet/in.h.

	* sysdeps/generic/schedbits.h: New file.  System dependent
	defintion for POSIX.4 scheduling interface.

	* sysdeps/generic/sys/socket.h: Moved to here from socket/sys/socket.h.

	* sysdeps/stub/nanosleep.c, sysdeps/stub/sched_getp.c,
	sysdeps/stub/sched_gets.c, sysdeps/stub/sched_primax.c,
	sysdeps/stub/sched_primin.c, sysdeps/stub/sched_rr_gi.c,
	sysdeps/stub/sched_setp.c, sysdeps/stub/sched_sets.c,
	sysdeps/stub/sched_yield.c: New file:  Stub implementation
	for systems missing these POSIX.4 system calls.

	* sysdeps/unix/sysv/linux/gnu/types.h,
	sysdeps/unix/sysv/linux/ioctls.h: Use kernel header for
	data type definitions.

	* sysdeps/unix/sysv/linux/netinet/in.h: New file.  Linux
	specific version.

	* sysdeps/unix/sysv/linux/posix_opt.h: New file.  Define POSIX
	options applicable for Linux.

	* sysdeps/unix/sysv/linux/syscalls.list: Add definitions for
	fdatasync, nanosleep, sched_setparam, sched_getparam,
	sched_setscheduler, sched_getscheduler, sched_yield,
	sched_get_priority_max, sched_get_priority_min, and
	sched_rr_get_interval.

	* sysdeps/unix/sysv/linux/sysconf.c: Add handling of POSIX.4
	options.

	* sysdeps/unix/sysv/linux/termbits.h: Use kernel headers.

	* time/sys/time.h: Remove definition of `struct timespec'.

	* time/time.h (struct timespec): Move definition to here.

 	variable, LUCKY, to use instead of setting D to -1 (which fouls
This commit is contained in:
Roland McGrath 1996-04-28 18:25:22 +00:00
parent b1794a285f
commit 7b3547eb0f
32 changed files with 1002 additions and 218 deletions

View File

@ -1,3 +1,80 @@
Sun Apr 28 14:14:35 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/i386/Makefile: New file.
Wed Apr 24 17:35:30 Ulrich Drepper <drepper@cygnus.com>
* inet/netinet/in.h, socket/sys/socket.h: Move to
sysdeps/generic/netinet/in.h, sysdeps/generic/sys/socket.h.
* netinet/in.h, sys/socket.h: Remove file.
* misc/Makefile (routines): Add fdatasync.
* posix/Makefile (headers): Add sched.h.
(routines): Add nanosleep, sched_setp, sched_getp, sched_sets,
sched_gets, sched_yield, sched_primax, sched_primin, sched_rr_gi.
* posix/getconf.c (vars): Add entries for _POSIX_REALTIME_SIGNALS,
_POSIX_PRIORITY_SCHEDULING, _POSIX_TIMERS, _POSIX_ASYNCHRONOUS_IO,
_POSIX_PRIORITIZED_IO, _POSIX_SYNCHRONIZED_IO, _POSIX_FSYNC,
_POSIX_MAPPED_FILES, _POSIX_MEMLOCK, _POSIX_MEMLOCK_RANGE,
_POSIX_MEMORY_PROTECTION, _POSIX_MESSAGE_PASSING,
_POSIX_SEMAPHORES, _POSIX_SHARED_MEMORY_OBJECTS.
* posix/sched.h: New file. Header for POSIX scheduling interface.
* posix/unistd.h: Describe options from POSIX.4.
Add declaration of fdatasync.
* sysdeps/generic/confname.h: Add definition for
_SC_REALTIME_SIGNALS, _SC_PRIORITY_SCHEDULING, _SC_TIMERS,
_SC_ASYNCHRONOUS_IO, _SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO,
_SC_FSYNC, _SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE,
_SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING,
_SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS.
* sysdeps/generic/fdatasync.c: New file. Default implementation
simply uses fsync.
* sysdeps/generic/netinit/in.h: Moved to here from inet/netinet/in.h.
* sysdeps/generic/schedbits.h: New file. System dependent
defintion for POSIX.4 scheduling interface.
* sysdeps/generic/sys/socket.h: Moved to here from socket/sys/socket.h.
* sysdeps/stub/nanosleep.c, sysdeps/stub/sched_getp.c,
sysdeps/stub/sched_gets.c, sysdeps/stub/sched_primax.c,
sysdeps/stub/sched_primin.c, sysdeps/stub/sched_rr_gi.c,
sysdeps/stub/sched_setp.c, sysdeps/stub/sched_sets.c,
sysdeps/stub/sched_yield.c: New file: Stub implementation
for systems missing these POSIX.4 system calls.
* sysdeps/unix/sysv/linux/gnu/types.h,
sysdeps/unix/sysv/linux/ioctls.h: Use kernel header for
data type definitions.
* sysdeps/unix/sysv/linux/netinet/in.h: New file. Linux
specific version.
* sysdeps/unix/sysv/linux/posix_opt.h: New file. Define POSIX
options applicable for Linux.
* sysdeps/unix/sysv/linux/syscalls.list: Add definitions for
fdatasync, nanosleep, sched_setparam, sched_getparam,
sched_setscheduler, sched_getscheduler, sched_yield,
sched_get_priority_max, sched_get_priority_min, and
sched_rr_get_interval.
* sysdeps/unix/sysv/linux/sysconf.c: Add handling of POSIX.4
options.
* sysdeps/unix/sysv/linux/termbits.h: Use kernel headers.
* time/sys/time.h: Remove definition of `struct timespec'.
* time/time.h (struct timespec): Move definition to here.
Fri Apr 26 01:55:07 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* malloc/mcheck.c (mabort): Use __libc_fatal only #ifdef _LIBC.
@ -23,7 +100,7 @@ Wed Apr 24 00:22:42 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
Tue Apr 23 21:09:14 1996 Miles Bader <miles@gnu.ai.mit.edu>
* hurd/hurdsig.c (signal_allowed): For SIGIO/SIGURG, add a new
variable, LUCKY, to use instead of setting D to -1 (which fucks
variable, LUCKY, to use instead of setting D to -1 (which fouls
things up).
Tue Apr 23 15:56:56 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>

View File

@ -36,7 +36,7 @@ routines := brk sbrk sstk ioctl \
getdtsz \
gethostname sethostname getdomain setdomain \
select \
acct chroot fsync sync reboot \
acct chroot fsync sync fdatasync reboot \
gethostid sethostid \
revoke vhangup \
swapon mktemp mkstemp \

View File

@ -1 +0,0 @@
#include <inet/netinet/in.h>

View File

@ -21,10 +21,11 @@
#
subdir := posix
headers := sys/utsname.h sys/times.h sys/wait.h sys/types.h unistd.h \
glob.h regex.h wordexp.h fnmatch.h gnu/types.h getopt.h \
posix1_lim.h posix2_lim.h posix_opt.h local_lim.h tar.h \
utsnamelen.h confname.h waitflags.h waitstatus.h sys/unistd.h
headers := sys/utsname.h sys/times.h sys/wait.h sys/types.h unistd.h \
glob.h regex.h wordexp.h fnmatch.h gnu/types.h getopt.h \
posix1_lim.h posix2_lim.h posix_opt.h local_lim.h tar.h \
utsnamelen.h confname.h waitflags.h waitstatus.h sys/unistd.h \
sched.h
distribute := confstr.h
@ -32,7 +33,7 @@ routines := \
uname \
times \
wait waitpid wait3 wait4 \
alarm sleep pause \
alarm sleep pause nanosleep \
fork vfork _exit \
execve fexecve execv execle execl execvp execlp \
getpid getppid \
@ -42,7 +43,10 @@ routines := \
pathconf sysconf fpathconf \
glob fnmatch regex \
confstr \
getopt getopt1
getopt getopt1 \
sched_setp sched_getp sched_sets sched_gets sched_yield sched_primax \
sched_primin sched_rr_gi
aux := init-posix environ
tests := tstgetopt testfnm
others := getconf

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1992, 1995, 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
@ -49,6 +49,20 @@ static struct conf vars[] =
{ "OPEN_MAX", _SC_OPEN_MAX, SYSCONF },
{ "_POSIX_JOB_CONTROL", _SC_JOB_CONTROL, SYSCONF },
{ "_POSIX_SAVED_IDS", _SC_SAVED_IDS, SYSCONF },
{ "_POSIX_REALTIME_SIGNALS", _SC_REALTIME_SIGNALS, SYSCONF },
{ "_POSIX_PRIORITY_SCHEDULING", _SC_PRIORITY_SCHEDULING, SYSCONF },
{ "_POSIX_TIMERS", _SC_TIMERS, SYSCONF },
{ "_POSIX_ASYNCHRONOUS_IO", _SC_ASYNCHRONOUS_IO, SYSCONF },
{ "_POSIX_PRIORITIZED_IO", _SC_PRIORITIZED_IO, SYSCONF },
{ "_POSIX_SYNCHRONIZED_IO", _SC_SYNCHRONIZED_IO, SYSCONF },
{ "_POSIX_FSYNC", _SC_FSYNC, SYSCONF },
{ "_POSIX_MAPPED_FILES", _SC_MAPPED_FILES, SYSCONF },
{ "_POSIX_MEMLOCK", _SC_MEMLOCK, SYSCONF },
{ "_POSIX_MEMLOCK_RANGE", _SC_MEMLOCK_RANGE, SYSCONF },
{ "_POSIX_MEMORY_PROTECTION", _SC_MEMORY_PROTECTION, SYSCONF },
{ "_POSIX_MESSAGE_PASSING", _SC_MESSAGE_PASSING, SYSCONF },
{ "_POSIX_SEMAPHORES", _SC_SEMAPHORES, SYSCONF },
{ "_POSIX_SHARED_MEMORY_OBJECTS", _SC_SHARED_MEMORY_OBJECTS, SYSCONF },
{ "_POSIX_VERSION", _SC_VERSION, SYSCONF },
{ "PATH", _CS_PATH, CONFSTR },

72
posix/sched.h Normal file
View File

@ -0,0 +1,72 @@
/* Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface.
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. */
#ifndef _SCHED_H
#define _SCHED_H 1
#include <features.h>
/* Get type definitions. */
#include <gnu/types.h>
#include <sys/time.h> /* for struct timespec */
/* Get system specific constant and data structure definitions. */
#include <schedbits.h>
__BEGIN_DECLS
/* Set scheduling parameters for a process. */
extern int __sched_setparam __P ((__pid_t __pid,
__const struct sched_param *__param));
extern int sched_setparam __P ((__pid_t __pid,
__const struct sched_param *__param));
/* Retrieve scheduling parameters for a particular process. */
extern int __sched_getparam __P ((__pid_t __pid, struct sched_param *__param));
extern int sched_getparam __P ((__pid_t __pid, struct sched_param *__param));
/* Set scheduling algorithm and/or parameters for a process. */
extern int __sched_setscheduler __P ((__pid_t __pid, int __policy,
__const struct sched_param *__param));
extern int sched_setscheduler __P ((__pid_t __pid, int __policy,
__const struct sched_param *__param));
/* Retrieve scheduling algorithm for a particular purpose. */
extern int __sched_getscheduler __P ((__pid_t __pid));
extern int sched_getscheduler __P ((__pid_t __pid));
/* Yield the processor. */
extern int __sched_yield __P ((void));
extern int sched_yield __P ((void));
/* Get maximum priority value for a scheduler. */
extern int __sched_get_priority_max __P ((int __algorithm));
extern int sched_get_priority_max __P ((int __algorithm));
/* Get minimum priority value for a scheduler. */
extern int __sched_get_priority_min __P ((int __algorithm));
extern int sched_get_priority_min __P ((int __algorithm));
/* Get the SCHED_RR interval for the named process. */
extern int __sched_rr_get_interval __P ((__pid_t __pid, struct timespec *__t));
extern int sched_rr_get_interval __P ((__pid_t __pid, struct timespec *__t));
__END_DECLS
#endif /* sched.h */

View File

@ -61,9 +61,23 @@ __BEGIN_DECLS
always available. If not, they may be available sometimes.
The current values can be obtained with `sysconf'.
_POSIX_JOB_CONTROL Job control is supported.
_POSIX_SAVED_IDS Processes have a saved set-user-ID
and a saved set-group-ID.
_POSIX_JOB_CONTROL Job control is supported.
_POSIX_SAVED_IDS Processes have a saved set-user-ID
and a saved set-group-ID.
_POSIX_REALTIME_SIGNALS Real-time, queued signals are supported.
_POSIX_PRIORITY_SCHEDULING Priority scheduling is supported.
_POSIX_TIMERS POSIX.4 clocks and timers are supported.
_POSIX_ASYNCHRONOUS_IO Asynchronous I/O is supported.
_POSIX_PRIORITIZED_IO Prioritized asynchronous I/O is supported.
_POSIX_SYNCHRONIZED_IO Synchronizing file data is supported.
_POSIX_FSYNC The fsync function is present.
_POSIX_MAPPED_FILES Mapping of files to memory is supported.
_POSIX_MEMLOCK Locking of all memory is supported.
_POSIX_MEMLOCK_RANGE Locking of ranges of memory is supported.
_POSIX_MEMORY_PROTECTION Setting of memory protections is supported.
_POSIX_MESSAGE_PASSING POSIX.4 message queues are supported.
_POSIX_SEMAPHORES POSIX.4 counting semaphores are supported.
_POSIX_SHARED_MEMORY_OBJECTS POSIX.4 shared memory objects are supported.
If any of these symbols is defined as -1, the corresponding option is not
true for any file. If any is defined as other than -1, the corresponding
@ -732,6 +746,12 @@ extern int lockf __P ((int __fd, int __cmd, __off_t __len));
#endif
#ifdef __USE_POSIX
/* Synchronize at least the data part of a file with the underlying
media. */
extern int fdatasync __P ((int __fildes));
#endif /* Use POSIX */
__END_DECLS
#endif /* unistd.h */

View File

@ -1 +0,0 @@
#include <socket/sys/socket.h>

View File

@ -1,5 +1,5 @@
/* `sysconf', `pathconf', and `confstr' NAME values. Generic version.
Copyright (C) 1993, 1995 Free Software Foundation, Inc.
Copyright (C) 1993, 1995, 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
@ -60,6 +60,34 @@ enum
#define _SC_JOB_CONTROL _SC_JOB_CONTROL
_SC_SAVED_IDS,
#define _SC_SAVED_IDS _SC_SAVED_IDS
_SC_REALTIME_SIGNALS,
#define _SC_REALTIME_SIGNALS _SC_REALTIME_SIGNALS
_SC_PRIORITY_SCHEDULING,
#define _SC_PRIORITY_SCHEDULING _SC_PRIORITY_SCHEDULING
_SC_TIMERS,
#define _SC_TIMERS _SC_TIMERS
_SC_ASYNCHRONOUS_IO,
#define _SC_ASYNCHRONOUS_IO _SC_ASYNCHRONOUS_IO
_SC_PRIORITIZED_IO,
#define _SC_PRIORITIZED_IO _SC_PRIORITIZED_IO
_SC_SYNCHRONIZED_IO,
#define _SC_SYNCHRONIZED_IO _SC_SYNCHRONIZED_IO
_SC_FSYNC,
#define _SC_FSYNC _SC_FSYNC
_SC_MAPPED_FILES,
#define _SC_MAPPED_FILES _SC_MAPPED_FILES
_SC_MEMLOCK,
#define _SC_MEMLOCK _SC_MEMLOCK
_SC_MEMLOCK_RANGE,
#define _SC_MEMLOCK_RANGE _SC_MEMLOCK_RANGE
_SC_MEMORY_PROTECTION,
#define _SC_MEMORY_PROTECTION _SC_MEMORY_PROTECTION
_SC_MESSAGE_PASSING,
#define _SC_MESSAGE_PASSING _SC_MESSAGE_PASSING
_SC_SEMAPHORES,
#define _SC_SEMAPHORES _SC_SEMAPHORES
_SC_SHARED_MEMORY_OBJECTS,
#define _SC_SHARED_MEMORY_OBJECTS _SC_SHARED_MEMORY_OBJECTS
_SC_VERSION,
#define _SC_VERSION _SC_VERSION
_SC_PAGESIZE,

View File

@ -0,0 +1,28 @@
/* 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. */
#include <unistd.h>
/* Synchronize at least the data part of a file with the underlying
media. */
int
fdatasync (int fildes)
{
return fsync (fildes);
}

View File

@ -0,0 +1,35 @@
/* Definitions of constants and data structure for POSIX 1003.1b-1993
scheduling interface.
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. */
#ifndef _SCHEDBITS_H
#define _SCHEDBITS_H 1
/* Scheduling algorithms. */
#define SCHED_OTHER 0
#define SCHED_FIFO 1
#define SCHED_RR 2
/* Data structure to describe a process' schedulability. */
struct sched_params
{
int sched_priority;
};
#endif /* schedbits.h */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1994, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 92, 94, 95, 96 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
@ -13,7 +13,7 @@ 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, 1992 Free Software Foundation, Inc., 675 Mass Ave,
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#ifndef _SYS_SOCKET_H

30
sysdeps/stub/nanosleep.c Normal file
View File

@ -0,0 +1,30 @@
/* 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. */
#include <errno.h>
#include <time.h>
/* Pause execution for a number of nanoseconds. */
int
nanosleep (const struct timespec *requested_time, struct time_spec *remaining)
{
errno = ENOSYS;
return -1;
}
stub_warning (nanosleep)

32
sysdeps/stub/sched_getp.c Normal file
View File

@ -0,0 +1,32 @@
/* 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. */
#include <errno.h>
#include <sched.h>
/* Retrieve scheduling parameters for a particular process. */
int
__sched_getparam (pid_t pid, struct sched_param *param)
{
errno = ENOSYS;
return -1;
}
stub_warning (sched_getparam)
weak_alias (__sched_getparam, sched_getparam)

32
sysdeps/stub/sched_gets.c Normal file
View File

@ -0,0 +1,32 @@
/* 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. */
#include <errno.h>
#include <sched.h>
/* Retrieve scheduling algorithm for a particular purpose. */
int
__sched_getscheduler (pid_t pid)
{
errno = ENOSYS;
return -1;
}
stub_warning (sched_getscheduler)
weak_alias (__sched_getscheduler, sched_getscheduler)

View File

@ -0,0 +1,32 @@
/* 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. */
#include <errno.h>
#include <sched.h>
/* Get maximum priority value for a scheduler. */
int
__sched_get_priority_max (int algorithm)
{
errno = ENOSYS;
return -1;
}
stub_warning (sched_get_priority_max)
weak_alias (__sched_get_priority_max, sched_get_priority_max)

View File

@ -0,0 +1,32 @@
/* 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. */
#include <errno.h>
#include <sched.h>
/* Get minimum priority value for a scheduler. */
int
__sched_get_priority_min (int algorithm)
{
errno = ENOSYS;
return -1;
}
stub_warning (sched_get_priority_min)
weak_alias (__sched_get_priority_min, sched_get_priority_min)

View File

@ -0,0 +1,32 @@
/* 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. */
#include <errno.h>
#include <sched.h>
/* Get the SCHED_RR interval for the named process. */
int
__sched_rr_get_interval (pid_t pid, struct timespec *t)
{
errno = ENOSYS;
return -1;
}
stub_warning (sched_rr_get_interval)
weak_alias (__sched_rr_get_interval, sched_rr_get_interval)

32
sysdeps/stub/sched_setp.c Normal file
View File

@ -0,0 +1,32 @@
/* 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. */
#include <errno.h>
#include <sched.h>
/* Set scheduling parameters for a process. */
int
__sched_setparam (pid_t pid, const struct sched_param *param)
{
errno = ENOSYS;
return -1;
}
stub_warning (sched_setparam)
weak_alias (__sched_setparam, sched_setparam)

32
sysdeps/stub/sched_sets.c Normal file
View File

@ -0,0 +1,32 @@
/* 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. */
#include <errno.h>
#include <sched.h>
/* Set scheduling algorithm and/or parameters for a process. */
int
__sched_setscheduler (pid_t pid, int policy, const struct sched_param *param)
{
errno = ENOSYS;
return -1;
}
stub_warning (sched_setscheduler)
weak_alias (__sched_setscheduler, sched_setscheduler)

View File

@ -0,0 +1,32 @@
/* 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. */
#include <errno.h>
#include <sched.h>
/* Yield the processor. */
int
__sched_yield (void)
{
errno = ENOSYS;
return -1;
}
stub_warning (sched_yield)
weak_alias (__sched_yield, sched_yield)

View File

@ -19,6 +19,9 @@ Cambridge, MA 02139, USA. */
#ifndef _GNU_TYPES_H
#define _GNU_TYPES_H 1
/* Get actual type definitions for architecture from kernel headers. */
#include <linux/posix_types.h>
/* Convenience types. */
typedef unsigned char __u_char;
typedef unsigned short __u_short;
@ -38,15 +41,15 @@ typedef struct
__u_long val[2];
} __u_quad_t;
#endif
typedef unsigned short int __dev_t; /* Type of device numbers. */
typedef unsigned short int __uid_t; /* Type of user identifications. */
typedef unsigned short int __gid_t; /* Type of group identifications. */
typedef unsigned long int __ino_t; /* Type of file serial numbers. */
typedef unsigned short int __mode_t; /* Type of file attribute bitmasks. */
typedef unsigned short int __nlink_t; /* Type of file link counts. */
typedef long int __off_t; /* Type of file sizes and offsets. */
typedef int __pid_t; /* Type of process identifications. */
typedef int __ssize_t; /* Type of a byte count, or error. */
typedef __kernel_dev_t __dev_t; /* Type of device numbers. */
typedef __kernel_uid_t __uid_t; /* Type of user identifications. */
typedef __kernel_gid_t __gid_t; /* Type of group identifications. */
typedef __kernel_ino_t __ino_t; /* Type of file serial numbers. */
typedef __kernel_mode_t __mode_t; /* Type of file attribute bitmasks. */
typedef __kernel_nlink_t __nlink_t; /* Type of file link counts. */
typedef __kernel_off_t __off_t; /* Type of file sizes and offsets. */
typedef __kernel_pid_t __pid_t; /* Type of process identifications. */
typedef __kernel_ssize_t __ssize_t; /* Type of a byte count, or error. */
#ifdef __GNUC__
typedef long long int __fsid_t; /* Type of file system IDs. */
#else
@ -56,33 +59,12 @@ typedef struct { /* Type of file system IDs. */
#endif
/* Everythin' else. */
typedef int __daddr_t; /* The type of a disk address. */
typedef char *__caddr_t;
typedef long int __time_t;
typedef __kernel_daddr_t __daddr_t; /* The type of a disk address. */
typedef __kernel_caddr_t __caddr_t;
typedef __kernel_time_t __time_t;
typedef long int __swblk_t; /* Type of a swap block maybe? */
/* fd_set for select. */
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 256
/* It's easier to assume 8-bit bytes than to get CHAR_BIT. */
#define __NFDBITS (sizeof (unsigned long int) * 8)
#define __FDELT(d) ((d) / __NFDBITS)
#define __FDMASK(d) (1 << ((d) % __NFDBITS))
typedef struct
{
/* Some braindead old software uses this member name. */
unsigned long int fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
} __fd_set;
/* This line MUST be split! Otherwise m4 will not change it. */
#define __FD_ZERO(set) \
((void) memset ((__ptr_t) (set), 0, sizeof (fd_set)))
#define __FD_SET(d, set) ((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
#define __FD_CLR(d, set) ((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
#define __FD_ISSET(d, set) ((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
typedef __kernel_fd_set __fd_set;
#endif /* gnu/types.h */

View File

@ -0,0 +1,4 @@
# Set the shared library version numbers for Linux/i386.
libc.so-version = .6
libm.so-version = .6

View File

@ -0,0 +1,26 @@
/* 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. */
#ifndef _IOCTLS_H
#define _IOCTLS_H 1
/* Use the definitions from the kernel header files. */
#include <asm/ioctls.h>
#include <linux/sockios.h>
#endif /* ioctls.h */

View File

@ -0,0 +1,191 @@
/* Copyright (C) 1991, 1992, 1993, 1994, 1995 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 General Public License as published by
the Free Software Foundation; either version 2, 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with the GNU C Library; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef _NETINET_IN_H
#define _NETINET_IN_H 1
#include <features.h>
#include <sys/socket.h>
/* Standard well-defined IP protocols. */
enum
{
IPPROTO_IP = 0, /* Dummy protocol for TCP. */
IPPROTO_ICMP = 1, /* Internet Control Message Protocol. */
IPPROTO_IGMP = 2, /* Internet Group Management Protocol. */
IPPROTO_TCP = 6, /* Transmission Control Protocol. */
IPPROTO_EGP = 8, /* Exterior Gateway Protocol. */
IPPROTO_PUP = 12, /* PUP protocol. */
IPPROTO_UDP = 17, /* User Datagram Protocol. */
IPPROTO_IDP = 22, /* XNS IDP protocol. */
IPPROTO_RAW = 255, /* Raw IP packets. */
IPPROTO_MAX,
};
/* Standard well-known ports. */
enum
{
IPPORT_ECHO = 7, /* Echo service. */
IPPORT_DISCARD = 9, /* Discard transmissions service. */
IPPORT_SYSTAT = 11, /* System status service. */
IPPORT_DAYTIME = 13, /* Time of day service. */
IPPORT_NETSTAT = 15, /* Network status service. */
IPPORT_FTP = 21, /* File Transfer Protocol. */
IPPORT_TELNET = 23, /* Telnet protocol. */
IPPORT_SMTP = 25, /* Simple Mail Transfer Protocol. */
IPPORT_TIMESERVER = 37, /* Timeserver service. */
IPPORT_NAMESERVER = 42, /* Domain Name Service. */
IPPORT_WHOIS = 43, /* Internet Whois service. */
IPPORT_MTP = 57,
IPPORT_TFTP = 69, /* Trivial File Transfer Protocol. */
IPPORT_RJE = 77,
IPPORT_FINGER = 79, /* Finger service. */
IPPORT_TTYLINK = 87,
IPPORT_SUPDUP = 95, /* SUPDUP protocol. */
IPPORT_EXECSERVER = 512, /* execd service. */
IPPORT_LOGINSERVER = 513, /* rlogind service. */
IPPORT_CMDSERVER = 514,
IPPORT_EFSSERVER = 520,
/* UDP ports. */
IPPORT_BIFFUDP = 512,
IPPORT_WHOSERVER = 513,
IPPORT_ROUTESERVER = 520,
/* Ports less than this value are reserved for privileged processes. */
IPPORT_RESERVED = 1024,
/* Ports greater this value are reserved for (non-privileged) servers. */
IPPORT_USERRESERVED = 5000,
};
/* Link numbers. */
#define IMPLINK_IP 155
#define IMPLINK_LOWEXPER 156
#define IMPLINK_HIGHEXPER 158
/* Internet address. */
struct in_addr
{
unsigned int s_addr;
};
/* Definitions of the bits in an Internet address integer.
On subnets, host and network parts are found according to
the subnet mask, not these masks. */
#define IN_CLASSA(a) ((((unsigned) (a)) & 0x80000000) == 0)
#define IN_CLASSA_NET 0xff000000
#define IN_CLASSA_NSHIFT 24
#define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET)
#define IN_CLASSA_MAX 128
#define IN_CLASSB(a) ((((unsigned) (a)) & 0xc0000000) == 0x80000000)
#define IN_CLASSB_NET 0xffff0000
#define IN_CLASSB_NSHIFT 16
#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET)
#define IN_CLASSB_MAX 65536
#define IN_CLASSC(a) ((((unsigned) (a)) & 0xc0000000) == 0xc0000000)
#define IN_CLASSC_NET 0xffffff00
#define IN_CLASSC_NSHIFT 8
#define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET)
#define IN_CLASSD(a) ((((unsigned) (a)) & 0xf0000000) == 0xe0000000)
#define IN_MULTICAST(a) IN_CLASSD(a)
#define IN_EXPERIMENTAL(a) ((((unsigned) (a)) & 0xe0000000) == 0xe0000000)
#define IN_BADCLASS(a) ((((unsigned) (a)) & 0xf0000000) == 0xf0000000)
/* Address to accept any incoming messages. */
#define INADDR_ANY ((unsigned) 0x00000000)
/* Address to send to all hosts. */
#define INADDR_BROADCAST ((unsigned) 0xffffffff)
/* Address indicating an error return. */
#define INADDR_NONE 0xffffffff
/* Network number for local host loopback. */
#define IN_LOOPBACKNET 127
/* Address to loopback in software to local host. */
#ifndef INADDR_LOOPBACK
#define INADDR_LOOPBACK 0x7f000001 /* Internet address 127.0.0.1. */
#endif
/* Get the definition of the macro to define the common sockaddr members. */
#include <sockaddrcom.h>
/* Structure describing an Internet socket address. */
struct sockaddr_in
{
__SOCKADDR_COMMON (sin_);
unsigned short int sin_port; /* Port number. */
struct in_addr sin_addr; /* Internet address. */
/* Pad to size of `struct sockaddr'. */
unsigned char sin_zero[sizeof(struct sockaddr) -
__SOCKADDR_COMMON_SIZE -
sizeof(unsigned short int) -
sizeof(struct in_addr)];
};
/* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
The `ip_dst' field is used for the first-hop gateway when using a
source route (this gets put into the header proper). */
struct ip_opts
{
struct in_addr ip_dst; /* First hop; zero without source route. */
char ip_opts[40]; /* Actually variable in size. */
};
/* Structure used for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. */
struct ip_mreq
{
struct in_addr imr_multiaddr; /* IP multicast address of group */
struct in_addr imr_interface; /* local IP address of interface */
};
/* Functions to convert between host and network byte order. */
extern unsigned long int ntohl __P ((unsigned long int));
extern unsigned short int ntohs __P ((unsigned short int));
extern unsigned long int htonl __P ((unsigned long int));
extern unsigned short int htons __P ((unsigned short int));
#include <endian.h>
#if __BYTE_ORDER == __BIG_ENDIAN
/* The host byte order is the same as network byte order,
so these functions are all just identity. */
#define ntohl(x) (x)
#define ntohs(x) (x)
#define htonl(x) (x)
#define htons(x) (x)
#endif
#endif /* netinet/in.h */

View File

@ -0,0 +1,57 @@
/* Define POSIX options for Linux.
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. */
#ifndef _POSIX_OPT_H
#define _POSIX_OPT_H 1
/* Job control is supported. */
#define _POSIX_JOB_CONTROL 1
/* Processes have a saved set-user-ID and a saved set-group-ID. */
#define _POSIX_SAVED_IDS 1
/* Priority scheduling is supported. */
#define _POSIX_PRIORITY_SCHEDULING 1
/* Synchronizing file data is supported. */
#define _POSIX_SYNCHRONIZED_IO 1
/* The fsync function is present. */
#define _POSIX_FSYNC 1
/* Mapping of files to memory is supported. */
#define _POSIX_MAPPED_FILES 1
/* Locking of all memory is supported. */
#define _POSIX_MEMLOCK 1
/* Locking of ranges of memory is supported. */
#define _POSIX_MEMLOCK_RANGE 1
/* Setting of memory protections is supported. */
#define _POSIX_MEMORY_PROTECTION 1
/* Only root can change owner of file. */
#define _POSIX_CHOWN_RESTRICTED 1
/* `c_cc' member of 'struct termios' structure can be disabled by
using the value _POSIX_VDISABLE. */
#define _POSIX_VDISABLE '\0'
#endif /* posix_opt.h */

View File

@ -1,6 +1,7 @@
# File name Caller Syscall name # args Strong name Weak names
adjtimex adjtime adjtimex 1 __adjtimex
fdatasync - fdatasync 1 fdatasync
fork - fork 0 __fork fork
getegid - getegid 0 __getegid getegid
geteuid - geteuid 0 __geteuid geteuid
@ -14,11 +15,20 @@ mlockall - mlockall 1 __mlockall mlockall
mount - mount 5 __mount mount
munlock - munlock 2 __munlock munlock
munlockall - munlockall 0 __munlockall munlockall
nanosleep - nanosleep 2 nanosleep
personality init-first personality 1 __personality personality
pipe - pipe 1 __pipe pipe
reboot - reboot 3 reboot
s_ptrace ptrace ptrace 4 __syscall_ptrace
s_sigsuspend sigsuspend sigsuspend 3 __syscall_sigsuspend
sched_setp - sched_setparam 2 __sched_setparam sched_setparam
sched_getp - sched_getparam 2 __sched_getparam sched_getparam
sched_sets - sched_setscheduler 3 __sched_setscheduler sched_setscheduler
sched_gets - sched_getscheduler 1 __sched_getscheduler sched_getscheduler
sched_yield - sched_yield 0 __sched_yield sched_yield
sched_primax - sched_get_priority_max 1 __sched_get_priority_max sched_get_priority_max
sched_primin - sched_get_priority_min 1 __sched_get_priority_min sched_get_priority_min
sched_rr_gi - sched_rr_get_interval 2 __sched_rr_get_interval sched_rr_get_interval
setpgid - setpgid 2 setpgid
sigpending - sigpending 1 sigpending
sigprocmask - sigprocmask 3 __sigprocmask sigprocmask

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1993, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1993, 1995, 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
@ -83,12 +83,112 @@ DEFUN(__sysconf, (name), int name)
#else
return -1;
#endif
case _SC_SAVED_IDS:
#ifdef _POSIX_SAVED_IDS
return 1;
#else
return -1;
#endif
case _SC_REALTIME_SIGNALS:
#ifdef _POSIX_REALTIME_SIGNALS
return 1;
#else
return -1;
#endif
case _SC_PRIORITY_SCHEDULING:
#ifdef _POSIX_PRIORITY_SCHEDULING
return 1;
#else
return -1;
#endif
case _SC_TIMERS:
#ifdef _POSIX_TIMERS
return 1;
#else
return -1;
#endif
case _SC_ASYNCHRONOUS_IO:
#ifdef _POSIX_ASYNCHRONOUS_IO
return 1;
#else
return -1;
#endif
case _SC_PRIORITIZED_IO:
#ifdef _POSIX_PRIORITIZED_IO
return 1;
#else
return -1;
#endif
case _SC_SYNCHRONIZED_IO:
#ifdef _POSIX_SYNCHRONIZED_IO
return 1;
#else
return -1;
#endif
case _SC_FSYNC:
#ifdef _POSIX_FSYNC
return 1;
#else
return -1;
#endif
case _SC_MAPPED_FILES:
#ifdef _POSIX_MAPPED_FILES
return 1;
#else
return -1;
#endif
case _SC_MEMLOCK:
#ifdef _POSIX_MEMLOCK
return 1;
#else
return -1;
#endif
case _SC_MEMLOCK_RANGE:
#ifdef _POSIX_MEMLOCK_RANGE
return 1;
#else
return -1;
#endif
case _SC_MEMORY_PROTECTION:
#ifdef _POSIX_MEMORY_PROTECTION
return 1;
#else
return -1;
#endif
case _SC_MESSAGE_PASSING:
#ifdef _POSIX_MESSAGE_PASSING
return 1;
#else
return -1;
#endif
case _SC_SEMAPHORES:
#ifdef _POSIX_SEMAPHORES
return 1;
#else
return -1;
#endif
case _SC_SHARED_MEMORY_OBJECTS:
#ifdef _POSIX_SHARED_MEMORY_OBJECTS
return 1;
#else
return -1;
#endif
case _SC_VERSION:
return _POSIX_VERSION;

View File

@ -1,5 +1,5 @@
/* termios type and macro definitions. Linux version.
Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
Copyright (C) 1993, 1994, 1995, 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
@ -17,163 +17,8 @@ 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. */
/* Type of terminal control flag masks. */
typedef unsigned int tcflag_t;
/* Type of control characters. */
typedef unsigned char cc_t;
/* Type of baud rate specifiers. */
typedef unsigned int speed_t;
/* Terminal control structure. */
struct termios
{
/* Input modes. */
tcflag_t c_iflag;
#define IGNBRK 0x0001 /* Ignore break condition. */
#define BRKINT 0x0002 /* Signal interrupt on break. */
#define IGNPAR 0x0004 /* Ignore characters with parity errors. */
#define PARMRK 0x0008 /* Mark parity and framing errors. */
#define INPCK 0x0010 /* Enable input parity check. */
#define ISTRIP 0x0020 /* Strip 8th bit off characters. */
#define INLCR 0x0040 /* Map NL to CR on input. */
#define IGNCR 0x0080 /* Ignore CR. */
#define ICRNL 0x0100 /* Map CR to NL on input. */
#ifdef __USE_BSD
#define IUCLC 0x0200 /* Map upper case to lower case on input. */
#endif
#define IXON 0x0400 /* Enable start/stop output control. */
#define IXOFF 0x1000 /* Enable start/stop input control. */
#ifdef __USE_BSD
#define IXANY 0x0800 /* Any character will restart after stop. */
#define IMAXBEL 0x2000 /* Ring bell when input queue is full. */
#endif
/* Output modes. */
tcflag_t c_oflag;
#define OPOST 0x0001 /* Perform output processing. */
#ifdef __USE_BSD
#define OLCUC 0x00000002 /* Map lower case to upper case on output. */
#define ONLCR 0x00000004 /* Map NL to CR-NL on output. */
#define OCRNL 0x00000008
#define ONOCR 0x00000010
#define ONLRET 0x00000020
#define OFILL 0x00000040
#define OFDEL 0x00000080
#define NLDLY 0x00000100
#define NL0 0
#define NL1 0x00000100
#define CRDLY 0x00000600
#define CR0 0
#define CR1 0x00000200
#define CR2 0x00000400
#define CR3 0x00000600
#define TABDLY 0x00001800
#define TAB0 0
#define TAB1 0x00000800
#define TAB2 0x00001000
#define XTABS 0x00001800
#define TAB3 XTABS
#define BSDLY 0x00002000
#define BS0 0
#define BS1 0x00002000
#define VTDLY 0x00004000
#define VT0 0
#define VT1 0x00004000
#define FFDLY 0x00008000
#define FF0 0
#define FF1 0x00008000
#endif
/* Control modes. */
tcflag_t c_cflag;
#define CSIZE (CS5|CS6|CS7|CS8) /* Number of bits per byte (mask). */
#define CS5 0 /* 5 bits per byte. */
#define CS6 0x00000010 /* 6 bits per byte. */
#define CS7 0x00000020 /* 7 bits per byte. */
#define CS8 0x00000030 /* 8 bits per byte. */
#define CSTOPB 0x00000040 /* Two stop bits instead of one. */
#define CREAD 0x00000080 /* Enable receiver. */
#define PARENB 0x00000100 /* Parity enable. */
#define PARODD 0x00000200 /* Odd parity instead of even. */
#define HUPCL 0x00000400 /* Hang up on last close. */
#define CLOCAL 0x00000800 /* Ignore modem status lines. */
#ifdef __USE_BSD
#define CRTSCTS 0x80000000
#define CBAUD 0x0000000f /* Mask for speed from c_cflag. */
#define CBAUDEX 0x00001000 /* Mask for extended speed from c_cflag. */
#endif
/* Local modes. */
tcflag_t c_lflag;
#ifdef __USE_BSD
#define ECHOKE 0x00000800 /* Visual erase for KILL. */
#endif
#define ECHOE 0x00000010 /* Visual erase for ERASE. */
#define ECHOK 0x00000020 /* Echo NL after KILL. */
#define ECHO 0x00000008 /* Enable echo. */
#define ECHONL 0x00000040 /* Echo NL even if ECHO is off. */
#ifdef __USE_BSD
#define ECHOPRT 0x00000400 /* Hardcopy visual erase. */
#define ECHOCTL 0x00000200 /* Echo control characters as ^X. */
#endif
#define ISIG 0x00000001 /* Enable signals. */
#define ICANON 0x00000002 /* Do erase and kill processing. */
#define IEXTEN 0x00008000 /* Enable DISCARD and LNEXT. */
#define TOSTOP 0x00000100 /* Send SIGTTOU for background output. */
#ifdef __USE_BSD
#define PENDIN 0x00004000 /* Retype pending input (state). */
#endif
#define NOFLSH 0x00000080 /* Disable flush after interrupt. */
cc_t c_line; /* Line discipline (?) */
/* Control characters. */
#define VEOF 4 /* End-of-file character [ICANON]. */
#define VEOL 11 /* End-of-line character [ICANON]. */
#ifdef __USE_BSD
#define VEOL2 16 /* Second EOL character [ICANON]. */
#define VSWTCH 7 /* ??? */
#endif
#define VERASE 2 /* Erase character [ICANON]. */
#ifdef __USE_BSD
#define VWERASE 14 /* Word-erase character [ICANON]. */
#endif
#define VKILL 3 /* Kill-line character [ICANON]. */
#ifdef __USE_BSD
#define VREPRINT 12 /* Reprint-line character [ICANON]. */
#endif
#define VINTR 0 /* Interrupt character [ISIG]. */
#define VQUIT 1 /* Quit character [ISIG]. */
#define VSUSP 10 /* Suspend character [ISIG]. */
#define VSTART 8 /* Start (X-ON) character [IXON, IXOFF]. */
#define VSTOP 9 /* Stop (X-OFF) character [IXON, IXOFF]. */
#ifdef __USE_BSD
#define VLNEXT 15 /* Literal-next character [IEXTEN]. */
#define VDISCARD 13 /* Discard character [IEXTEN]. */
#endif
#define VMIN 6 /* Minimum number of bytes read at once [!ICANON]. */
#define VTIME 5 /* Time-out value (tenths of a second) [!ICANON]. */
#define NCCS 19
cc_t c_cc[NCCS];
};
/* Use the architecture dependend definitions from the kernel. */
#include <asm/termbits.h>
#define _IOT_termios /* Hurd ioctl type field. */ \
_IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'. */
#define TCSANOW 0 /* Change immediately. */
#define TCSADRAIN 1 /* Change when pending output is written. */
#define TCSAFLUSH 2 /* Flush pending input before changing. */
/* Values for the QUEUE_SELECTOR argument to `tcflush'. */
#define TCIFLUSH 0 /* Discard data received but not yet read. */
#define TCOFLUSH 1 /* Discard data written but not yet sent. */
#define TCIOFLUSH 2 /* Discard all pending data. */
/* Values for the ACTION argument to `tcflow'. */
#define TCOOFF 0 /* Suspend output. */
#define TCOON 1 /* Restart suspended output. */
#define TCIOFF 2 /* Send a STOP character. */
#define TCION 3 /* Send a START character. */

View File

@ -33,14 +33,6 @@ struct timeval
int tv_usec; /* Microseconds. */
};
/* POSIX.4 structure for a time value. This is like a `struct timeval' but
has nanoseconds instead of microseconds. */
struct timespec
{
long int ts_sec; /* Seconds. */
long int ts_nsec; /* Nanoseconds. */
};
/* Macros for converting between `struct timeval' and `struct timespec'. */
#define TIMEVAL_TO_TIMESPEC(tv, ts) { \
(ts)->ts_sec = (tv)->tv_sec; \

View File

@ -217,6 +217,21 @@ extern int dysize __P ((int __year));
#endif
/* POSIX.4 structure for a time value. This is like a `struct timeval' but
has nanoseconds instead of microseconds. */
struct timespec
{
long int ts_sec; /* Seconds. */
long int ts_nsec; /* Nanoseconds. */
};
#ifdef __USE_POSIX
/* Pause execution for a number of nanoseconds. */
extern int nanosleep __P ((__const struct timespec *__requested_time,
struct timespec *__remaining));
#endif
__END_DECLS
#endif /* <time.h> included. */