2002-10-19 04:36:01 +08:00
|
|
|
/* System-dependent timing definitions. Generic version.
|
2017-01-01 08:14:16 +08:00
|
|
|
Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
update from main archive 961101
Sat Nov 2 01:48:47 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/errnos.h: Move declaration of errno
and __errno_location to correct position.
Thu Oct 31 22:51:25 1996 Ulrich Drepper <drepper@cygnus.com>
* Makefile (distribute): Add rellns-sh.
* rellns-sh: New file.
* Makerules (make-link): Use rellns-sh.
* time/Makefile ($(installed-localtime-file)): Likewise.
Thu Oct 31 11:33:01 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/Makefile ($objpfx)ldd) Substitute $(version) for @VERSION@.
(distribute): Add ldd.bash.in.
* elf/ldd.sh.in: Process --help and --version parameter.
Correct comments.
* elf/ldd.bash.in: New file.
* stdlib/stdlib.h: Add prototype for clearenv.
* sysdeps/generic/setenv.c: Add implementation of clearenv.
(setenv): Handle __environ == NULL correctly.
* sysdeps/stub/setenv.c: Add stub definition for unsetenv and
clearenv.
* sysdeps/generic/putenv.c: Correct layout to fit in libit.
* sysdeps/generic/setenv.c: Likewise.
* stdlib/strtol.h: Likewise.
* time/sys/time.h: Define __need_timeval and include <timebits.h>.
Remove definition of struct timeval.
* sysdeps/stub/timebits.h [__need_timeval]: Define struct timeval
using `time_t' for members.
* sysdeps/unix/sysv/linux/timebits.h [__need_timeval]: Likewise.
* sysdeps/unix/sysv/linux/alpha/timebits.h: New file. Same
as old Linux specific version.
* string/argz.h: Use __const in definitions.
* inet/herrno.c: Don't define __h_errno, only h_errno otherwise the
__syscall_error defined.
TRACE_MODE.
Craig Metz.
arithmetic.
buggy and more competent people work on a usable version which is
distributed separately.
`finitel'.
better message if it is not available.
whether read failed.
PSEUDO_END macro.
Especially on the currently supported ELF systems the nlist
function comes with the libelf.
"$(i18ndir)/charmaps".
net/if_arp.h, and net/route.h.
version.
EXTERN_PARSER is defined.
set errno (to ENOMEM).
nothing is found. This guarantees all subsequent calls behave
the same.
the file even if no `era's are specified.
pointers.
_llseek to _llseek (not llseek).
Initialize `result'.
end_alt_digits.
__libc_force_cancel_wrapper when compiling reentrant version.
a weak alias.
make tcdrain a weak alias.
lseek, open, read, and write to have __libc_ prefix and make old
names a weak alias.
to fpathconf.
__libc_setlocale_lock.
ld.so.preload. Suggested by David Engel <david@elo.ods.com>.
on the same device as the password file.
variable.
to lock when passing it to __libc_lock_init macro.
sysdep.h to the top outside of #ifndef PIC. Don't include errnos.h.
Use the ENTRY macro.
9th field.
and sys/vt.h.
`_dl_start' so that linking fails if this file should ever be used
in ld.so.
RMS' last standard revision.
(sysdep_headers): Remove sys/sysinfo.h.
match files in the sysdeps hierachy (welcome back,
sys/syscall.h!).
categories which succeeded to load after a wrong or missing data
file was observed.
_IO_flockfile and _IO_funlockfile resp.
all three versions of the math function.
non-trivial inline functions.
rpath-link so that running the check finds the new library.
daylight saving, timezone by time zone.
syscall_error handler for reentrant libc.
warning.
_IO_getc_unlocked.
in version information banner.
clearerr_u, feof_u, ferror_u, fputc_u, getc_u, getchar_u,
iofflush_u, putc_u, putchar_u, ioflockfile.
using __errno_location function.
syscall_error handler for reentrant libc.
definition of function itself.
funlockfile.
_malloc_loc.
but _POSIX_THREAD_DESTRUCTOR_ITERATIONS.
Add macro `errno' to get thread specific variable.
__errno_location function.
* malloc/free.c (free): __lib_malloc_lock -> __libc_malloc_lock.
case, so don't prepend uppercase `ISO' for only numeric arg.
call to __libc_lock_lock.
sys/sysmacros.h. Reported by Curtiss <1CMC3466@IBM.MTSAC.EDU>.
stamp file.
generating stamp file.
implementation.
`decimal' char is 0.
noexpr to "^[nN]"; this conforms to POSIX.2.
conform to POSIX.2.
mon_grouping, int_frac_digits, frac_digits, p_cs_precedes,
p_sep_by_space, n_cs_precedes, n_sep_by_space, p_sign_posn, and
n_sign_posn to CHAR_MAX, as required by the POSIX Standard.
variable.
this changes the global state for `localtime' and `gmtime'. Use
`__localtime_r'/`__gmtime_r' instead.
state.
getutid_r() fails with ESRCH. Reported by Miquel van Smoorenburg.
for "Jensen" so _bus_base() returns 0 on that platform. Use
_bus_base_sparse() to determine base address of sparse memory.
are now in $P/stdio-common.pot.
script at run time, not configure time.
warning.
sorted.
inet_net_pton, inet_net.
value of sprintf.
functions instead of BSD `b*' functions.
$(objpfx)/mach-syscalls.mk.
<marcus@sysc.pdx.edu> for the patch.)
before returning. Reported by Miles Bader.
__BEGIN_DECLS/__END_DECLS up so ntohl() et al are bracketed as
well.
This is not a gross hack, after all---for compatibility,
getlogin() really should check fd 0 only and not try to base its
operation on the controlling tty.
change utmp_data from static to auto.
_IO_file_flags. It's the same as _flags.
call is only a stub.
Mikasa.
pointer as __const.
segfault when called with an N that is not a multiple of four and
src[N-1]=='\0'.
try again with SOCK_STREAM (the Linux syslogd uses a socket of the
latter type).
terminator as a record-delimiter. If __send(LogFile) fails,
`getutline_r'.
`setutline_r'.
of `vscanf'.
name a weak alias.
typo.
initialized in init-first.c. Some actions in the libc work
different when libc is static or dynamic.
`__libc_is_static' variable to determine whether call to
`personality' and `setfpucw' is necessary. When done set variable
to +-1 depending on library type.
`__libc_enable_secure' instead of calling `get{,e}{g,u}id()' to
determine whether it's a SET[UG]ID program.
(open_file): New function, contents mostly from __open.
LD_TRACE_LOADED_OBJECTS is set.
n)' equivalent to `strncpy (d, s, n), d += strnlen (d, n)'.
from the USA any software that even makes it easy to drop in an
encryption module of foreign origin.
old code would have failed on a big-endian 64-bit architecture).
Remove gratitous parentheses around return expressions.
not int.
ustatbits.h.
alphabetically correct place. Mention ustat.
record always gets appended at end of file (wtmp is a log file,
after all). Set ut_type to DEAD_PROCESS if name is empty.
ut_line matches and type is either USER_PROCESS or LOGIN_PROCESS.
avoid duplicate declarations.
word extends right up to rmargin.
point_col ssize_t.
to fiddle __put_limit in conjunction with __linebuf_active.
of, not the ones he is _not_ a member of.
instead of a local function. The latter are difficult to debug
and slow to execute on certain platforms.
place of sizeof (dev). The size of a literal string includes the
NUL byte.
entry. Return 1 on error, not -1.
shift amount for Jensen must be 5 not 4.
for send and connect syscalls.
signed<->unsigned warnings.
variable name, so new a libc with new requirements won't fail to
notice an insufficient Linux version.
PENDIN, NOFLSH): Undefine these at start if they are already
defined to avoid collision with termbits.h.
error is 0. The "placeholder" entries recently added to
memcpy for possibly overlapping strings.
instead of weak_symbol (NAME) after the defn.
necessary using current implementation of memcpy, but...).
Move struct timespec defn outside [_TIME_H] so it can be got with
#define __need_timespec.
__connect instead of connect to avoid name-space collisions (e.g.,
with psgetty).
function ctype_is_charmap to ctype_is_charconv.
charconv.
charconv.
lables according to this.
warnings.
actually do something.
sysdeps/unix/sysv/linux/m68k/init-first.h,
sysdeps/unix/sysv/linux/i386/init-first.h: New files.
init-first.h to make abstract machine dependent parts of
typo/extraneous whitespace.
check-for-pending signals code, release _hurd_siglock before
jumping to deliver_pending.
size_t.
soname of a loaded object, use that object.
if libnss_dns.so module for DNS name lookup in NSS service.
guessing to not assume p_vaddr of first load cmd is zero.
only for ?s, not for *s. Fix from Chet Ramey.
about currently used character set.
name `MAX_IOVEC'. Instead use standard name `UIO_MAXIOV'.
(xdrrec_getlong), sunrpc/xdr_mem.c (xdrmem_getlong): Make sure
appropriate sign-extension is performed on machines with
sizeof(long) > 4.
sizeof(int)<sizeof(long), we need to go through a temporary
variable.
in efect.
volatile to avoid "might get clobbered by longjmp" warning.
unless _LOOSE_KERNEL_NAMES is in effect (which, with high
probability is a sure loser).
sysdeps/unix/sysv/linux/alpha/brk.S,
sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
sysdeps/unix/sysv/linux/alpha/llseek.S,
sysdeps/unix/sysv/linux/alpha/sigsuspend.S,
sysdeps/unix/sysv/linux/alpha/syscall.S: Rename syscall_error to
__syscall_error to avoid intruding application name space.
sysdeps/unix/geteuid.S, sysdeps/unix/getppid.S,
sysdeps/unix/execve.S, sysdeps/unix/fork.S,
sysdeps/unix/syscall.S: Terminate syscall with PSEUDO_END.
(PSEUDO_END): Rename END() to PSEUDO_END().
to PSEUDO_END to improve branch-prediction. Include .frame
directive to make syscalls debugabble.
sysdeps/unix/sysv/linux/alpha/brk.S: Use ldiq instead of ldi since
latter is illegal under DEC Unix.
as well.
EWOULDBLOCK -> EAGAIN mapping was unnecessary since
EWOULDBLOCK==EAGAIN under DEC Unix and Linux/Alpha).
address register in the .frame directive.
avoid RPC definitions of INADDR_LOOPBACK and/or MAXHOSTNAMELEN.
compilable under c++.
as unsigned long, not as int (to avoid incorrect int->long
promotion).
1996-11-02 09:28:01 +08:00
|
|
|
This file is part of the GNU C Library.
|
|
|
|
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
2001-07-06 12:58:11 +08:00
|
|
|
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.
|
update from main archive 961101
Sat Nov 2 01:48:47 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/errnos.h: Move declaration of errno
and __errno_location to correct position.
Thu Oct 31 22:51:25 1996 Ulrich Drepper <drepper@cygnus.com>
* Makefile (distribute): Add rellns-sh.
* rellns-sh: New file.
* Makerules (make-link): Use rellns-sh.
* time/Makefile ($(installed-localtime-file)): Likewise.
Thu Oct 31 11:33:01 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/Makefile ($objpfx)ldd) Substitute $(version) for @VERSION@.
(distribute): Add ldd.bash.in.
* elf/ldd.sh.in: Process --help and --version parameter.
Correct comments.
* elf/ldd.bash.in: New file.
* stdlib/stdlib.h: Add prototype for clearenv.
* sysdeps/generic/setenv.c: Add implementation of clearenv.
(setenv): Handle __environ == NULL correctly.
* sysdeps/stub/setenv.c: Add stub definition for unsetenv and
clearenv.
* sysdeps/generic/putenv.c: Correct layout to fit in libit.
* sysdeps/generic/setenv.c: Likewise.
* stdlib/strtol.h: Likewise.
* time/sys/time.h: Define __need_timeval and include <timebits.h>.
Remove definition of struct timeval.
* sysdeps/stub/timebits.h [__need_timeval]: Define struct timeval
using `time_t' for members.
* sysdeps/unix/sysv/linux/timebits.h [__need_timeval]: Likewise.
* sysdeps/unix/sysv/linux/alpha/timebits.h: New file. Same
as old Linux specific version.
* string/argz.h: Use __const in definitions.
* inet/herrno.c: Don't define __h_errno, only h_errno otherwise the
__syscall_error defined.
TRACE_MODE.
Craig Metz.
arithmetic.
buggy and more competent people work on a usable version which is
distributed separately.
`finitel'.
better message if it is not available.
whether read failed.
PSEUDO_END macro.
Especially on the currently supported ELF systems the nlist
function comes with the libelf.
"$(i18ndir)/charmaps".
net/if_arp.h, and net/route.h.
version.
EXTERN_PARSER is defined.
set errno (to ENOMEM).
nothing is found. This guarantees all subsequent calls behave
the same.
the file even if no `era's are specified.
pointers.
_llseek to _llseek (not llseek).
Initialize `result'.
end_alt_digits.
__libc_force_cancel_wrapper when compiling reentrant version.
a weak alias.
make tcdrain a weak alias.
lseek, open, read, and write to have __libc_ prefix and make old
names a weak alias.
to fpathconf.
__libc_setlocale_lock.
ld.so.preload. Suggested by David Engel <david@elo.ods.com>.
on the same device as the password file.
variable.
to lock when passing it to __libc_lock_init macro.
sysdep.h to the top outside of #ifndef PIC. Don't include errnos.h.
Use the ENTRY macro.
9th field.
and sys/vt.h.
`_dl_start' so that linking fails if this file should ever be used
in ld.so.
RMS' last standard revision.
(sysdep_headers): Remove sys/sysinfo.h.
match files in the sysdeps hierachy (welcome back,
sys/syscall.h!).
categories which succeeded to load after a wrong or missing data
file was observed.
_IO_flockfile and _IO_funlockfile resp.
all three versions of the math function.
non-trivial inline functions.
rpath-link so that running the check finds the new library.
daylight saving, timezone by time zone.
syscall_error handler for reentrant libc.
warning.
_IO_getc_unlocked.
in version information banner.
clearerr_u, feof_u, ferror_u, fputc_u, getc_u, getchar_u,
iofflush_u, putc_u, putchar_u, ioflockfile.
using __errno_location function.
syscall_error handler for reentrant libc.
definition of function itself.
funlockfile.
_malloc_loc.
but _POSIX_THREAD_DESTRUCTOR_ITERATIONS.
Add macro `errno' to get thread specific variable.
__errno_location function.
* malloc/free.c (free): __lib_malloc_lock -> __libc_malloc_lock.
case, so don't prepend uppercase `ISO' for only numeric arg.
call to __libc_lock_lock.
sys/sysmacros.h. Reported by Curtiss <1CMC3466@IBM.MTSAC.EDU>.
stamp file.
generating stamp file.
implementation.
`decimal' char is 0.
noexpr to "^[nN]"; this conforms to POSIX.2.
conform to POSIX.2.
mon_grouping, int_frac_digits, frac_digits, p_cs_precedes,
p_sep_by_space, n_cs_precedes, n_sep_by_space, p_sign_posn, and
n_sign_posn to CHAR_MAX, as required by the POSIX Standard.
variable.
this changes the global state for `localtime' and `gmtime'. Use
`__localtime_r'/`__gmtime_r' instead.
state.
getutid_r() fails with ESRCH. Reported by Miquel van Smoorenburg.
for "Jensen" so _bus_base() returns 0 on that platform. Use
_bus_base_sparse() to determine base address of sparse memory.
are now in $P/stdio-common.pot.
script at run time, not configure time.
warning.
sorted.
inet_net_pton, inet_net.
value of sprintf.
functions instead of BSD `b*' functions.
$(objpfx)/mach-syscalls.mk.
<marcus@sysc.pdx.edu> for the patch.)
before returning. Reported by Miles Bader.
__BEGIN_DECLS/__END_DECLS up so ntohl() et al are bracketed as
well.
This is not a gross hack, after all---for compatibility,
getlogin() really should check fd 0 only and not try to base its
operation on the controlling tty.
change utmp_data from static to auto.
_IO_file_flags. It's the same as _flags.
call is only a stub.
Mikasa.
pointer as __const.
segfault when called with an N that is not a multiple of four and
src[N-1]=='\0'.
try again with SOCK_STREAM (the Linux syslogd uses a socket of the
latter type).
terminator as a record-delimiter. If __send(LogFile) fails,
`getutline_r'.
`setutline_r'.
of `vscanf'.
name a weak alias.
typo.
initialized in init-first.c. Some actions in the libc work
different when libc is static or dynamic.
`__libc_is_static' variable to determine whether call to
`personality' and `setfpucw' is necessary. When done set variable
to +-1 depending on library type.
`__libc_enable_secure' instead of calling `get{,e}{g,u}id()' to
determine whether it's a SET[UG]ID program.
(open_file): New function, contents mostly from __open.
LD_TRACE_LOADED_OBJECTS is set.
n)' equivalent to `strncpy (d, s, n), d += strnlen (d, n)'.
from the USA any software that even makes it easy to drop in an
encryption module of foreign origin.
old code would have failed on a big-endian 64-bit architecture).
Remove gratitous parentheses around return expressions.
not int.
ustatbits.h.
alphabetically correct place. Mention ustat.
record always gets appended at end of file (wtmp is a log file,
after all). Set ut_type to DEAD_PROCESS if name is empty.
ut_line matches and type is either USER_PROCESS or LOGIN_PROCESS.
avoid duplicate declarations.
word extends right up to rmargin.
point_col ssize_t.
to fiddle __put_limit in conjunction with __linebuf_active.
of, not the ones he is _not_ a member of.
instead of a local function. The latter are difficult to debug
and slow to execute on certain platforms.
place of sizeof (dev). The size of a literal string includes the
NUL byte.
entry. Return 1 on error, not -1.
shift amount for Jensen must be 5 not 4.
for send and connect syscalls.
signed<->unsigned warnings.
variable name, so new a libc with new requirements won't fail to
notice an insufficient Linux version.
PENDIN, NOFLSH): Undefine these at start if they are already
defined to avoid collision with termbits.h.
error is 0. The "placeholder" entries recently added to
memcpy for possibly overlapping strings.
instead of weak_symbol (NAME) after the defn.
necessary using current implementation of memcpy, but...).
Move struct timespec defn outside [_TIME_H] so it can be got with
#define __need_timespec.
__connect instead of connect to avoid name-space collisions (e.g.,
with psgetty).
function ctype_is_charmap to ctype_is_charconv.
charconv.
charconv.
lables according to this.
warnings.
actually do something.
sysdeps/unix/sysv/linux/m68k/init-first.h,
sysdeps/unix/sysv/linux/i386/init-first.h: New files.
init-first.h to make abstract machine dependent parts of
typo/extraneous whitespace.
check-for-pending signals code, release _hurd_siglock before
jumping to deliver_pending.
size_t.
soname of a loaded object, use that object.
if libnss_dns.so module for DNS name lookup in NSS service.
guessing to not assume p_vaddr of first load cmd is zero.
only for ?s, not for *s. Fix from Chet Ramey.
about currently used character set.
name `MAX_IOVEC'. Instead use standard name `UIO_MAXIOV'.
(xdrrec_getlong), sunrpc/xdr_mem.c (xdrmem_getlong): Make sure
appropriate sign-extension is performed on machines with
sizeof(long) > 4.
sizeof(int)<sizeof(long), we need to go through a temporary
variable.
in efect.
volatile to avoid "might get clobbered by longjmp" warning.
unless _LOOSE_KERNEL_NAMES is in effect (which, with high
probability is a sure loser).
sysdeps/unix/sysv/linux/alpha/brk.S,
sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
sysdeps/unix/sysv/linux/alpha/llseek.S,
sysdeps/unix/sysv/linux/alpha/sigsuspend.S,
sysdeps/unix/sysv/linux/alpha/syscall.S: Rename syscall_error to
__syscall_error to avoid intruding application name space.
sysdeps/unix/geteuid.S, sysdeps/unix/getppid.S,
sysdeps/unix/execve.S, sysdeps/unix/fork.S,
sysdeps/unix/syscall.S: Terminate syscall with PSEUDO_END.
(PSEUDO_END): Rename END() to PSEUDO_END().
to PSEUDO_END to improve branch-prediction. Include .frame
directive to make syscalls debugabble.
sysdeps/unix/sysv/linux/alpha/brk.S: Use ldiq instead of ldi since
latter is illegal under DEC Unix.
as well.
EWOULDBLOCK -> EAGAIN mapping was unnecessary since
EWOULDBLOCK==EAGAIN under DEC Unix and Linux/Alpha).
address register in the .frame directive.
avoid RPC definitions of INADDR_LOOPBACK and/or MAXHOSTNAMELEN.
compilable under c++.
as unsigned long, not as int (to avoid incorrect int->long
promotion).
1996-11-02 09:28:01 +08:00
|
|
|
|
|
|
|
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
|
2001-07-06 12:58:11 +08:00
|
|
|
Lesser General Public License for more details.
|
update from main archive 961101
Sat Nov 2 01:48:47 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/errnos.h: Move declaration of errno
and __errno_location to correct position.
Thu Oct 31 22:51:25 1996 Ulrich Drepper <drepper@cygnus.com>
* Makefile (distribute): Add rellns-sh.
* rellns-sh: New file.
* Makerules (make-link): Use rellns-sh.
* time/Makefile ($(installed-localtime-file)): Likewise.
Thu Oct 31 11:33:01 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/Makefile ($objpfx)ldd) Substitute $(version) for @VERSION@.
(distribute): Add ldd.bash.in.
* elf/ldd.sh.in: Process --help and --version parameter.
Correct comments.
* elf/ldd.bash.in: New file.
* stdlib/stdlib.h: Add prototype for clearenv.
* sysdeps/generic/setenv.c: Add implementation of clearenv.
(setenv): Handle __environ == NULL correctly.
* sysdeps/stub/setenv.c: Add stub definition for unsetenv and
clearenv.
* sysdeps/generic/putenv.c: Correct layout to fit in libit.
* sysdeps/generic/setenv.c: Likewise.
* stdlib/strtol.h: Likewise.
* time/sys/time.h: Define __need_timeval and include <timebits.h>.
Remove definition of struct timeval.
* sysdeps/stub/timebits.h [__need_timeval]: Define struct timeval
using `time_t' for members.
* sysdeps/unix/sysv/linux/timebits.h [__need_timeval]: Likewise.
* sysdeps/unix/sysv/linux/alpha/timebits.h: New file. Same
as old Linux specific version.
* string/argz.h: Use __const in definitions.
* inet/herrno.c: Don't define __h_errno, only h_errno otherwise the
__syscall_error defined.
TRACE_MODE.
Craig Metz.
arithmetic.
buggy and more competent people work on a usable version which is
distributed separately.
`finitel'.
better message if it is not available.
whether read failed.
PSEUDO_END macro.
Especially on the currently supported ELF systems the nlist
function comes with the libelf.
"$(i18ndir)/charmaps".
net/if_arp.h, and net/route.h.
version.
EXTERN_PARSER is defined.
set errno (to ENOMEM).
nothing is found. This guarantees all subsequent calls behave
the same.
the file even if no `era's are specified.
pointers.
_llseek to _llseek (not llseek).
Initialize `result'.
end_alt_digits.
__libc_force_cancel_wrapper when compiling reentrant version.
a weak alias.
make tcdrain a weak alias.
lseek, open, read, and write to have __libc_ prefix and make old
names a weak alias.
to fpathconf.
__libc_setlocale_lock.
ld.so.preload. Suggested by David Engel <david@elo.ods.com>.
on the same device as the password file.
variable.
to lock when passing it to __libc_lock_init macro.
sysdep.h to the top outside of #ifndef PIC. Don't include errnos.h.
Use the ENTRY macro.
9th field.
and sys/vt.h.
`_dl_start' so that linking fails if this file should ever be used
in ld.so.
RMS' last standard revision.
(sysdep_headers): Remove sys/sysinfo.h.
match files in the sysdeps hierachy (welcome back,
sys/syscall.h!).
categories which succeeded to load after a wrong or missing data
file was observed.
_IO_flockfile and _IO_funlockfile resp.
all three versions of the math function.
non-trivial inline functions.
rpath-link so that running the check finds the new library.
daylight saving, timezone by time zone.
syscall_error handler for reentrant libc.
warning.
_IO_getc_unlocked.
in version information banner.
clearerr_u, feof_u, ferror_u, fputc_u, getc_u, getchar_u,
iofflush_u, putc_u, putchar_u, ioflockfile.
using __errno_location function.
syscall_error handler for reentrant libc.
definition of function itself.
funlockfile.
_malloc_loc.
but _POSIX_THREAD_DESTRUCTOR_ITERATIONS.
Add macro `errno' to get thread specific variable.
__errno_location function.
* malloc/free.c (free): __lib_malloc_lock -> __libc_malloc_lock.
case, so don't prepend uppercase `ISO' for only numeric arg.
call to __libc_lock_lock.
sys/sysmacros.h. Reported by Curtiss <1CMC3466@IBM.MTSAC.EDU>.
stamp file.
generating stamp file.
implementation.
`decimal' char is 0.
noexpr to "^[nN]"; this conforms to POSIX.2.
conform to POSIX.2.
mon_grouping, int_frac_digits, frac_digits, p_cs_precedes,
p_sep_by_space, n_cs_precedes, n_sep_by_space, p_sign_posn, and
n_sign_posn to CHAR_MAX, as required by the POSIX Standard.
variable.
this changes the global state for `localtime' and `gmtime'. Use
`__localtime_r'/`__gmtime_r' instead.
state.
getutid_r() fails with ESRCH. Reported by Miquel van Smoorenburg.
for "Jensen" so _bus_base() returns 0 on that platform. Use
_bus_base_sparse() to determine base address of sparse memory.
are now in $P/stdio-common.pot.
script at run time, not configure time.
warning.
sorted.
inet_net_pton, inet_net.
value of sprintf.
functions instead of BSD `b*' functions.
$(objpfx)/mach-syscalls.mk.
<marcus@sysc.pdx.edu> for the patch.)
before returning. Reported by Miles Bader.
__BEGIN_DECLS/__END_DECLS up so ntohl() et al are bracketed as
well.
This is not a gross hack, after all---for compatibility,
getlogin() really should check fd 0 only and not try to base its
operation on the controlling tty.
change utmp_data from static to auto.
_IO_file_flags. It's the same as _flags.
call is only a stub.
Mikasa.
pointer as __const.
segfault when called with an N that is not a multiple of four and
src[N-1]=='\0'.
try again with SOCK_STREAM (the Linux syslogd uses a socket of the
latter type).
terminator as a record-delimiter. If __send(LogFile) fails,
`getutline_r'.
`setutline_r'.
of `vscanf'.
name a weak alias.
typo.
initialized in init-first.c. Some actions in the libc work
different when libc is static or dynamic.
`__libc_is_static' variable to determine whether call to
`personality' and `setfpucw' is necessary. When done set variable
to +-1 depending on library type.
`__libc_enable_secure' instead of calling `get{,e}{g,u}id()' to
determine whether it's a SET[UG]ID program.
(open_file): New function, contents mostly from __open.
LD_TRACE_LOADED_OBJECTS is set.
n)' equivalent to `strncpy (d, s, n), d += strnlen (d, n)'.
from the USA any software that even makes it easy to drop in an
encryption module of foreign origin.
old code would have failed on a big-endian 64-bit architecture).
Remove gratitous parentheses around return expressions.
not int.
ustatbits.h.
alphabetically correct place. Mention ustat.
record always gets appended at end of file (wtmp is a log file,
after all). Set ut_type to DEAD_PROCESS if name is empty.
ut_line matches and type is either USER_PROCESS or LOGIN_PROCESS.
avoid duplicate declarations.
word extends right up to rmargin.
point_col ssize_t.
to fiddle __put_limit in conjunction with __linebuf_active.
of, not the ones he is _not_ a member of.
instead of a local function. The latter are difficult to debug
and slow to execute on certain platforms.
place of sizeof (dev). The size of a literal string includes the
NUL byte.
entry. Return 1 on error, not -1.
shift amount for Jensen must be 5 not 4.
for send and connect syscalls.
signed<->unsigned warnings.
variable name, so new a libc with new requirements won't fail to
notice an insufficient Linux version.
PENDIN, NOFLSH): Undefine these at start if they are already
defined to avoid collision with termbits.h.
error is 0. The "placeholder" entries recently added to
memcpy for possibly overlapping strings.
instead of weak_symbol (NAME) after the defn.
necessary using current implementation of memcpy, but...).
Move struct timespec defn outside [_TIME_H] so it can be got with
#define __need_timespec.
__connect instead of connect to avoid name-space collisions (e.g.,
with psgetty).
function ctype_is_charmap to ctype_is_charconv.
charconv.
charconv.
lables according to this.
warnings.
actually do something.
sysdeps/unix/sysv/linux/m68k/init-first.h,
sysdeps/unix/sysv/linux/i386/init-first.h: New files.
init-first.h to make abstract machine dependent parts of
typo/extraneous whitespace.
check-for-pending signals code, release _hurd_siglock before
jumping to deliver_pending.
size_t.
soname of a loaded object, use that object.
if libnss_dns.so module for DNS name lookup in NSS service.
guessing to not assume p_vaddr of first load cmd is zero.
only for ?s, not for *s. Fix from Chet Ramey.
about currently used character set.
name `MAX_IOVEC'. Instead use standard name `UIO_MAXIOV'.
(xdrrec_getlong), sunrpc/xdr_mem.c (xdrmem_getlong): Make sure
appropriate sign-extension is performed on machines with
sizeof(long) > 4.
sizeof(int)<sizeof(long), we need to go through a temporary
variable.
in efect.
volatile to avoid "might get clobbered by longjmp" warning.
unless _LOOSE_KERNEL_NAMES is in effect (which, with high
probability is a sure loser).
sysdeps/unix/sysv/linux/alpha/brk.S,
sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
sysdeps/unix/sysv/linux/alpha/llseek.S,
sysdeps/unix/sysv/linux/alpha/sigsuspend.S,
sysdeps/unix/sysv/linux/alpha/syscall.S: Rename syscall_error to
__syscall_error to avoid intruding application name space.
sysdeps/unix/geteuid.S, sysdeps/unix/getppid.S,
sysdeps/unix/execve.S, sysdeps/unix/fork.S,
sysdeps/unix/syscall.S: Terminate syscall with PSEUDO_END.
(PSEUDO_END): Rename END() to PSEUDO_END().
to PSEUDO_END to improve branch-prediction. Include .frame
directive to make syscalls debugabble.
sysdeps/unix/sysv/linux/alpha/brk.S: Use ldiq instead of ldi since
latter is illegal under DEC Unix.
as well.
EWOULDBLOCK -> EAGAIN mapping was unnecessary since
EWOULDBLOCK==EAGAIN under DEC Unix and Linux/Alpha).
address register in the .frame directive.
avoid RPC definitions of INADDR_LOOPBACK and/or MAXHOSTNAMELEN.
compilable under c++.
as unsigned long, not as int (to avoid incorrect int->long
promotion).
1996-11-02 09:28:01 +08:00
|
|
|
|
2001-07-06 12:58:11 +08:00
|
|
|
You should have received a copy of the GNU Lesser General Public
|
2012-02-10 07:18:22 +08:00
|
|
|
License along with the GNU C Library; if not, see
|
|
|
|
<http://www.gnu.org/licenses/>. */
|
update from main archive 961101
Sat Nov 2 01:48:47 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/errnos.h: Move declaration of errno
and __errno_location to correct position.
Thu Oct 31 22:51:25 1996 Ulrich Drepper <drepper@cygnus.com>
* Makefile (distribute): Add rellns-sh.
* rellns-sh: New file.
* Makerules (make-link): Use rellns-sh.
* time/Makefile ($(installed-localtime-file)): Likewise.
Thu Oct 31 11:33:01 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/Makefile ($objpfx)ldd) Substitute $(version) for @VERSION@.
(distribute): Add ldd.bash.in.
* elf/ldd.sh.in: Process --help and --version parameter.
Correct comments.
* elf/ldd.bash.in: New file.
* stdlib/stdlib.h: Add prototype for clearenv.
* sysdeps/generic/setenv.c: Add implementation of clearenv.
(setenv): Handle __environ == NULL correctly.
* sysdeps/stub/setenv.c: Add stub definition for unsetenv and
clearenv.
* sysdeps/generic/putenv.c: Correct layout to fit in libit.
* sysdeps/generic/setenv.c: Likewise.
* stdlib/strtol.h: Likewise.
* time/sys/time.h: Define __need_timeval and include <timebits.h>.
Remove definition of struct timeval.
* sysdeps/stub/timebits.h [__need_timeval]: Define struct timeval
using `time_t' for members.
* sysdeps/unix/sysv/linux/timebits.h [__need_timeval]: Likewise.
* sysdeps/unix/sysv/linux/alpha/timebits.h: New file. Same
as old Linux specific version.
* string/argz.h: Use __const in definitions.
* inet/herrno.c: Don't define __h_errno, only h_errno otherwise the
__syscall_error defined.
TRACE_MODE.
Craig Metz.
arithmetic.
buggy and more competent people work on a usable version which is
distributed separately.
`finitel'.
better message if it is not available.
whether read failed.
PSEUDO_END macro.
Especially on the currently supported ELF systems the nlist
function comes with the libelf.
"$(i18ndir)/charmaps".
net/if_arp.h, and net/route.h.
version.
EXTERN_PARSER is defined.
set errno (to ENOMEM).
nothing is found. This guarantees all subsequent calls behave
the same.
the file even if no `era's are specified.
pointers.
_llseek to _llseek (not llseek).
Initialize `result'.
end_alt_digits.
__libc_force_cancel_wrapper when compiling reentrant version.
a weak alias.
make tcdrain a weak alias.
lseek, open, read, and write to have __libc_ prefix and make old
names a weak alias.
to fpathconf.
__libc_setlocale_lock.
ld.so.preload. Suggested by David Engel <david@elo.ods.com>.
on the same device as the password file.
variable.
to lock when passing it to __libc_lock_init macro.
sysdep.h to the top outside of #ifndef PIC. Don't include errnos.h.
Use the ENTRY macro.
9th field.
and sys/vt.h.
`_dl_start' so that linking fails if this file should ever be used
in ld.so.
RMS' last standard revision.
(sysdep_headers): Remove sys/sysinfo.h.
match files in the sysdeps hierachy (welcome back,
sys/syscall.h!).
categories which succeeded to load after a wrong or missing data
file was observed.
_IO_flockfile and _IO_funlockfile resp.
all three versions of the math function.
non-trivial inline functions.
rpath-link so that running the check finds the new library.
daylight saving, timezone by time zone.
syscall_error handler for reentrant libc.
warning.
_IO_getc_unlocked.
in version information banner.
clearerr_u, feof_u, ferror_u, fputc_u, getc_u, getchar_u,
iofflush_u, putc_u, putchar_u, ioflockfile.
using __errno_location function.
syscall_error handler for reentrant libc.
definition of function itself.
funlockfile.
_malloc_loc.
but _POSIX_THREAD_DESTRUCTOR_ITERATIONS.
Add macro `errno' to get thread specific variable.
__errno_location function.
* malloc/free.c (free): __lib_malloc_lock -> __libc_malloc_lock.
case, so don't prepend uppercase `ISO' for only numeric arg.
call to __libc_lock_lock.
sys/sysmacros.h. Reported by Curtiss <1CMC3466@IBM.MTSAC.EDU>.
stamp file.
generating stamp file.
implementation.
`decimal' char is 0.
noexpr to "^[nN]"; this conforms to POSIX.2.
conform to POSIX.2.
mon_grouping, int_frac_digits, frac_digits, p_cs_precedes,
p_sep_by_space, n_cs_precedes, n_sep_by_space, p_sign_posn, and
n_sign_posn to CHAR_MAX, as required by the POSIX Standard.
variable.
this changes the global state for `localtime' and `gmtime'. Use
`__localtime_r'/`__gmtime_r' instead.
state.
getutid_r() fails with ESRCH. Reported by Miquel van Smoorenburg.
for "Jensen" so _bus_base() returns 0 on that platform. Use
_bus_base_sparse() to determine base address of sparse memory.
are now in $P/stdio-common.pot.
script at run time, not configure time.
warning.
sorted.
inet_net_pton, inet_net.
value of sprintf.
functions instead of BSD `b*' functions.
$(objpfx)/mach-syscalls.mk.
<marcus@sysc.pdx.edu> for the patch.)
before returning. Reported by Miles Bader.
__BEGIN_DECLS/__END_DECLS up so ntohl() et al are bracketed as
well.
This is not a gross hack, after all---for compatibility,
getlogin() really should check fd 0 only and not try to base its
operation on the controlling tty.
change utmp_data from static to auto.
_IO_file_flags. It's the same as _flags.
call is only a stub.
Mikasa.
pointer as __const.
segfault when called with an N that is not a multiple of four and
src[N-1]=='\0'.
try again with SOCK_STREAM (the Linux syslogd uses a socket of the
latter type).
terminator as a record-delimiter. If __send(LogFile) fails,
`getutline_r'.
`setutline_r'.
of `vscanf'.
name a weak alias.
typo.
initialized in init-first.c. Some actions in the libc work
different when libc is static or dynamic.
`__libc_is_static' variable to determine whether call to
`personality' and `setfpucw' is necessary. When done set variable
to +-1 depending on library type.
`__libc_enable_secure' instead of calling `get{,e}{g,u}id()' to
determine whether it's a SET[UG]ID program.
(open_file): New function, contents mostly from __open.
LD_TRACE_LOADED_OBJECTS is set.
n)' equivalent to `strncpy (d, s, n), d += strnlen (d, n)'.
from the USA any software that even makes it easy to drop in an
encryption module of foreign origin.
old code would have failed on a big-endian 64-bit architecture).
Remove gratitous parentheses around return expressions.
not int.
ustatbits.h.
alphabetically correct place. Mention ustat.
record always gets appended at end of file (wtmp is a log file,
after all). Set ut_type to DEAD_PROCESS if name is empty.
ut_line matches and type is either USER_PROCESS or LOGIN_PROCESS.
avoid duplicate declarations.
word extends right up to rmargin.
point_col ssize_t.
to fiddle __put_limit in conjunction with __linebuf_active.
of, not the ones he is _not_ a member of.
instead of a local function. The latter are difficult to debug
and slow to execute on certain platforms.
place of sizeof (dev). The size of a literal string includes the
NUL byte.
entry. Return 1 on error, not -1.
shift amount for Jensen must be 5 not 4.
for send and connect syscalls.
signed<->unsigned warnings.
variable name, so new a libc with new requirements won't fail to
notice an insufficient Linux version.
PENDIN, NOFLSH): Undefine these at start if they are already
defined to avoid collision with termbits.h.
error is 0. The "placeholder" entries recently added to
memcpy for possibly overlapping strings.
instead of weak_symbol (NAME) after the defn.
necessary using current implementation of memcpy, but...).
Move struct timespec defn outside [_TIME_H] so it can be got with
#define __need_timespec.
__connect instead of connect to avoid name-space collisions (e.g.,
with psgetty).
function ctype_is_charmap to ctype_is_charconv.
charconv.
charconv.
lables according to this.
warnings.
actually do something.
sysdeps/unix/sysv/linux/m68k/init-first.h,
sysdeps/unix/sysv/linux/i386/init-first.h: New files.
init-first.h to make abstract machine dependent parts of
typo/extraneous whitespace.
check-for-pending signals code, release _hurd_siglock before
jumping to deliver_pending.
size_t.
soname of a loaded object, use that object.
if libnss_dns.so module for DNS name lookup in NSS service.
guessing to not assume p_vaddr of first load cmd is zero.
only for ?s, not for *s. Fix from Chet Ramey.
about currently used character set.
name `MAX_IOVEC'. Instead use standard name `UIO_MAXIOV'.
(xdrrec_getlong), sunrpc/xdr_mem.c (xdrmem_getlong): Make sure
appropriate sign-extension is performed on machines with
sizeof(long) > 4.
sizeof(int)<sizeof(long), we need to go through a temporary
variable.
in efect.
volatile to avoid "might get clobbered by longjmp" warning.
unless _LOOSE_KERNEL_NAMES is in effect (which, with high
probability is a sure loser).
sysdeps/unix/sysv/linux/alpha/brk.S,
sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
sysdeps/unix/sysv/linux/alpha/llseek.S,
sysdeps/unix/sysv/linux/alpha/sigsuspend.S,
sysdeps/unix/sysv/linux/alpha/syscall.S: Rename syscall_error to
__syscall_error to avoid intruding application name space.
sysdeps/unix/geteuid.S, sysdeps/unix/getppid.S,
sysdeps/unix/execve.S, sysdeps/unix/fork.S,
sysdeps/unix/syscall.S: Terminate syscall with PSEUDO_END.
(PSEUDO_END): Rename END() to PSEUDO_END().
to PSEUDO_END to improve branch-prediction. Include .frame
directive to make syscalls debugabble.
sysdeps/unix/sysv/linux/alpha/brk.S: Use ldiq instead of ldi since
latter is illegal under DEC Unix.
as well.
EWOULDBLOCK -> EAGAIN mapping was unnecessary since
EWOULDBLOCK==EAGAIN under DEC Unix and Linux/Alpha).
address register in the .frame directive.
avoid RPC definitions of INADDR_LOOPBACK and/or MAXHOSTNAMELEN.
compilable under c++.
as unsigned long, not as int (to avoid incorrect int->long
promotion).
1996-11-02 09:28:01 +08:00
|
|
|
|
1997-06-21 10:59:26 +08:00
|
|
|
/*
|
|
|
|
* Never include this file directly; use <time.h> instead.
|
|
|
|
*/
|
|
|
|
|
Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
2016-08-24 23:54:34 +08:00
|
|
|
#ifndef _BITS_TIME_H
|
|
|
|
#define _BITS_TIME_H 1
|
|
|
|
|
|
|
|
#include <bits/types.h>
|
1997-11-26 12:23:08 +08:00
|
|
|
|
2015-01-06 20:59:13 +08:00
|
|
|
/* ISO/IEC 9899:1999 7.23.1: Components of time
|
|
|
|
The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
|
|
|
|
the number per second of the value returned by the `clock' function. */
|
2002-10-19 04:36:01 +08:00
|
|
|
/* CAE XSH, Issue 4, Version 2: <time.h>
|
|
|
|
The value of CLOCKS_PER_SEC is required to be 1 million on all
|
|
|
|
XSI-conformant systems. */
|
Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
2016-08-24 23:54:34 +08:00
|
|
|
#define CLOCKS_PER_SEC ((__clock_t) 1000000)
|
2002-10-19 04:36:01 +08:00
|
|
|
|
Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
2016-08-24 23:54:34 +08:00
|
|
|
#if (!defined __STRICT_ANSI__ || defined __USE_POSIX) \
|
|
|
|
&& !defined __USE_XOPEN2K
|
2002-10-19 04:36:01 +08:00
|
|
|
/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK
|
|
|
|
presents the real value for clock ticks per second for the system. */
|
|
|
|
extern long int __sysconf (int);
|
Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
2016-08-24 23:54:34 +08:00
|
|
|
# define CLK_TCK ((__clock_t) __sysconf (2)) /* 2 is _SC_CLK_TCK */
|
|
|
|
#endif
|
1997-11-26 12:23:08 +08:00
|
|
|
|
Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
2016-08-24 23:54:34 +08:00
|
|
|
#ifdef __USE_POSIX199309
|
Update.
1999-07-26 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/clock_getres.c: New file.
* sysdeps/generic/clock_gettime.c: New file.
* sysdeps/generic/clock_settime.c: New file.
* sysdeps/generic/timer_create.c: New file.
* sysdeps/generic/timer_delete.c: New file.
* sysdeps/generic/timer_getoverr.c: New file.
* sysdeps/generic/timer_gettime.c: New file.
* sysdeps/generic/timer_settime.c: New file.
* sysdeps/generic/bits/time.h: Define __clockid_t, __timer_t,
CLOCK_REALTIME, and TIMER_ABSTIME.
* sysdeps/mach/hurd/bits/time.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/time.h: Likewise.
* sysdeps/unix/sysv/linux/bits/time.h: Likewise.
* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_TIMERS.
* sysdeps/unix/sysv/linux/bits/siginfo.h: Define si_timer1 and
si_timer2.
* sysdeps/unix/sysv/linux/syscalls.list: Add clock and timer syscalls.
* time/Makefile (routines): Add clock_getres, clock_gettime,
clock_setres, timer_create, timer_delete, timer_getoverr,
timer_gettime, and timer_settime.
* time/time.h: Define clockid_t, timer_t, and struct itimerspec for
POSIX.1b. Add prototypes for clock and timer functions.
1999-07-27 08:24:04 +08:00
|
|
|
/* Identifier for system-wide realtime clock. */
|
Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
2016-08-24 23:54:34 +08:00
|
|
|
# define CLOCK_REALTIME 0
|
2003-03-03 12:42:14 +08:00
|
|
|
/* Monotonic system-wide clock. */
|
Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
2016-08-24 23:54:34 +08:00
|
|
|
# define CLOCK_MONOTONIC 1
|
2002-10-19 04:36:01 +08:00
|
|
|
/* High-resolution timer from the CPU. */
|
Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
2016-08-24 23:54:34 +08:00
|
|
|
# define CLOCK_PROCESS_CPUTIME_ID 2
|
2002-10-19 04:36:01 +08:00
|
|
|
/* Thread-specific CPU-time clock. */
|
Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
2016-08-24 23:54:34 +08:00
|
|
|
# define CLOCK_THREAD_CPUTIME_ID 3
|
2010-03-25 19:01:33 +08:00
|
|
|
/* Monotonic system-wide clock, not adjusted for frequency scaling. */
|
Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
2016-08-24 23:54:34 +08:00
|
|
|
# define CLOCK_MONOTONIC_RAW 4
|
2010-03-25 19:01:33 +08:00
|
|
|
/* Identifier for system-wide realtime clock, updated only on ticks. */
|
Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
2016-08-24 23:54:34 +08:00
|
|
|
# define CLOCK_REALTIME_COARSE 5
|
2010-03-25 19:01:33 +08:00
|
|
|
/* Monotonic system-wide clock, updated only on ticks. */
|
Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
2016-08-24 23:54:34 +08:00
|
|
|
# define CLOCK_MONOTONIC_COARSE 6
|
Update.
1999-07-26 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/clock_getres.c: New file.
* sysdeps/generic/clock_gettime.c: New file.
* sysdeps/generic/clock_settime.c: New file.
* sysdeps/generic/timer_create.c: New file.
* sysdeps/generic/timer_delete.c: New file.
* sysdeps/generic/timer_getoverr.c: New file.
* sysdeps/generic/timer_gettime.c: New file.
* sysdeps/generic/timer_settime.c: New file.
* sysdeps/generic/bits/time.h: Define __clockid_t, __timer_t,
CLOCK_REALTIME, and TIMER_ABSTIME.
* sysdeps/mach/hurd/bits/time.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/time.h: Likewise.
* sysdeps/unix/sysv/linux/bits/time.h: Likewise.
* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_TIMERS.
* sysdeps/unix/sysv/linux/bits/siginfo.h: Define si_timer1 and
si_timer2.
* sysdeps/unix/sysv/linux/syscalls.list: Add clock and timer syscalls.
* time/Makefile (routines): Add clock_getres, clock_gettime,
clock_setres, timer_create, timer_delete, timer_getoverr,
timer_gettime, and timer_settime.
* time/time.h: Define clockid_t, timer_t, and struct itimerspec for
POSIX.1b. Add prototypes for clock and timer functions.
1999-07-27 08:24:04 +08:00
|
|
|
|
|
|
|
/* Flag to indicate time is absolute. */
|
Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
2016-08-24 23:54:34 +08:00
|
|
|
# define TIMER_ABSTIME 1
|
1997-11-26 12:23:08 +08:00
|
|
|
#endif
|
|
|
|
|
Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
2016-08-24 23:54:34 +08:00
|
|
|
#endif /* bits/time.h */
|