Do as POSIX says, define the timespec structure in <signal.h>

Extract struct timespec from <sys/time.h> and put into a separate header.

This solution is minimally invasive.
This commit is contained in:
kamil 2015-07-31 12:51:32 +00:00
parent 25711fd317
commit 0c4bdb7434
5 changed files with 60 additions and 13 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: mi,v 1.1974 2015/07/29 00:12:27 christos Exp $
# $NetBSD: mi,v 1.1975 2015/07/31 12:51:32 kamil Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@ -3317,6 +3317,7 @@
./usr/include/sys/timeb.h comp-c-include
./usr/include/sys/timepps.h comp-c-include
./usr/include/sys/times.h comp-c-include
./usr/include/sys/timespec.h comp-c-include
./usr/include/sys/timex.h comp-c-include
./usr/include/sys/tls.h comp-c-include
./usr/include/sys/tprintf.h comp-obsolete obsolete

View File

@ -1,4 +1,4 @@
/* $NetBSD: signal.h,v 1.54 2010/08/27 08:40:38 christos Exp $ */
/* $NetBSD: signal.h,v 1.55 2015/07/31 12:51:32 kamil Exp $ */
/*-
* Copyright (c) 1991, 1993
@ -183,7 +183,7 @@ int sigwaitinfo(const sigset_t * __restrict, siginfo_t * __restrict);
void psiginfo(const siginfo_t *, const char *);
#ifndef __LIBC12_SOURCE__
struct timespec;
#include <sys/timespec.h>
int sigtimedwait(const sigset_t * __restrict,
siginfo_t * __restrict, const struct timespec * __restrict)
__RENAME(__sigtimedwait50);

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.155 2015/07/29 00:10:25 christos Exp $
# $NetBSD: Makefile,v 1.156 2015/07/31 12:51:32 kamil Exp $
.include <bsd.own.mk>
@ -39,7 +39,7 @@ INCS= acct.h agpio.h aio.h ansi.h aout_mids.h ataio.h atomic.h audioio.h \
socketvar.h sockio.h spawn.h specificdata.h stat.h \
statvfs.h syscall.h syscallargs.h sysctl.h stdarg.h stdbool.h \
stdint.h swap.h syncobj.h syslimits.h syslog.h \
tape.h termios.h time.h timeb.h timepps.h times.h \
tape.h termios.h time.h timeb.h timepps.h times.h timespec.h \
timex.h tls.h trace.h tree.h tty.h ttychars.h ttycom.h \
ttydefaults.h ttydev.h types.h \
ucontext.h ucred.h uio.h un.h unistd.h unpcb.h user.h utsname.h uuid.h \

View File

@ -1,4 +1,4 @@
/* $NetBSD: time.h,v 1.69 2015/05/19 23:35:11 riastradh Exp $ */
/* $NetBSD: time.h,v 1.70 2015/07/31 12:51:32 kamil Exp $ */
/*
* Copyright (c) 1982, 1986, 1993
@ -46,13 +46,7 @@ struct timeval {
suseconds_t tv_usec; /* and microseconds */
};
/*
* Structure defined by POSIX.1b to be like a timeval.
*/
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* and nanoseconds */
};
#include <sys/timespec.h>
#if defined(_NETBSD_SOURCE)
#define TIMEVAL_TO_TIMESPEC(tv, ts) do { \

52
sys/sys/timespec.h Normal file
View File

@ -0,0 +1,52 @@
/* $NetBSD: timespec.h,v 1.1 2015/07/31 12:51:32 kamil Exp $ */
/*
* Copyright (c) 1982, 1986, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)time.h 8.5 (Berkeley) 5/4/95
*
* Extracted by Kamil Rytarowski from:
* NetBSD: src/sys/sys/time.h,v 1.69 2015/05/19 23:35:11 riastradh Exp
*/
#ifndef _SYS_TIMESPEC_H_
#define _SYS_TIMESPEC_H_
#include <sys/ansi.h>
#ifdef _BSD_TIME_T_
typedef _BSD_TIME_T_ time_t;
#undef _BSD_TIME_T_
#endif
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* and nanoseconds */
};
#endif /* !_SYS_TIMESPEC_H_ */