tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: The <signal.h> header shall define the timespec structure as described in <time.h>



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 30.07.2015 17:48, Taylor R Campbell wrote:
> Date: Thu, 30 Jul 2015 17:33:47 +0200 From: Kamil Rytarowski
> <n54%gmx.com@localhost>
> 
> I'm attaching the patch adding struct timespec to <signal.h>.
> 
> Are there any objections to commit it?
> 
> This kind of copy pasta should be avoided.  Why not just make 
> <signal.h> include <sys/time.h>?
> 

As there is no general agreement for this, I'm attaching a patch with
exported struct timespec to a separate file.

Are there any objections to commit it?

It's verified to work.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJVuomuAAoJEEuzCOmwLnZslvgP/ioKC3MBffQ8BxKRb5bpsygl
Z/mAF2XUD0a1kEwBQfc6BseZkH9+DvhmhIzPIiOjECXGwjZN+HZBbQLfl5y8z6Pv
9izKQ4F0hjD7qt9i+aAGk1o7IFLc6TBF0BS0jCknBWJfl5hii6L/gE4R9ZnaGkQS
RFLtVLaHGhpf1ohx5c6Aqks6abGNGQfhmg/8WMvMPa9oQNrUrK0BkadykB69Uv4P
XJOwQX/WcH3E4Wm82PefrR6EUxJmpl3SzyFY+2p208S2AqwJE4wH0LKcJhXyN7O5
4Uz8iXVhs6p882wdpXmyHEHkh99kj0oEl+1lOqxBL1POaxUAinoQamv5BD705RJX
Q/mpNpDsVAd8P5UKWJaJCe0vy+/O/bEV5WIW3sBSYcB0F8nkpwn6NXAAjVgody5t
aAM8AZK4uocbAgWA5DUYhXOhDKFDINd2nU/eVZ/5O6fYFYvQcw/UXqnXZJRN7Pzh
6DpIG8zJ7JUnr8dj7lUHtI/Epn1VNonZndD2fW+Av3rPDPzAxa1vrQb+A4xEHgno
uw5cSP/dtaLgJAcH5Ci4a8f8Sa9O/wFLSR6tVbxHbrYRKJfGznOnESGbI4iqX/Kp
QIbspqHlEj6jm5mCpYS3ciNN48gDAe/Xa+JUtTzOxQd0+/t6/XpO8sEnie55FyxU
KJRhZcP2eT97uIxk2yH1
=WDrR
-----END PGP SIGNATURE-----
Index: distrib/sets/lists/comp/mi
===================================================================
RCS file: /public/netbsd-rsync/src/distrib/sets/lists/comp/mi,v
retrieving revision 1.1974
diff -u -r1.1974 mi
--- distrib/sets/lists/comp/mi	29 Jul 2015 00:12:27 -0000	1.1974
+++ distrib/sets/lists/comp/mi	30 Jul 2015 19:25:36 -0000
@@ -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
Index: include/signal.h
===================================================================
RCS file: /public/netbsd-rsync/src/include/signal.h,v
retrieving revision 1.54
diff -u -r1.54 signal.h
--- include/signal.h	27 Aug 2010 08:40:38 -0000	1.54
+++ include/signal.h	30 Jul 2015 19:23:31 -0000
@@ -183,7 +183,7 @@
 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);
Index: sys/sys/Makefile
===================================================================
RCS file: /public/netbsd-rsync/src/sys/sys/Makefile,v
retrieving revision 1.155
diff -u -r1.155 Makefile
--- sys/sys/Makefile	29 Jul 2015 00:10:25 -0000	1.155
+++ sys/sys/Makefile	30 Jul 2015 19:24:16 -0000
@@ -39,7 +39,7 @@
 	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 \
Index: sys/sys/time.h
===================================================================
RCS file: /public/netbsd-rsync/src/sys/sys/time.h,v
retrieving revision 1.69
diff -u -r1.69 time.h
--- sys/sys/time.h	19 May 2015 23:35:11 -0000	1.69
+++ sys/sys/time.h	30 Jul 2015 19:23:05 -0000
@@ -46,13 +46,7 @@
 	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 {				\
Index: sys/sys/timespec.h
===================================================================
RCS file: sys/sys/timespec.h
diff -N sys/sys/timespec.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sys/sys/timespec.h	30 Jul 2015 19:21:31 -0000
@@ -0,0 +1,52 @@
+/*	$NetBSD$	*/
+
+/*
+ * 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_ */


Home | Main Index | Thread Index | Old Index