CVS commit: src/sys/kern

2024-02-29 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Fri Mar  1 04:32:38 UTC 2024

Modified Files:
src/sys/kern: kern_idle.c kern_softint.c subr_workqueue.c subr_xcall.c

Log Message:
check that l_nopreempt (preemption count) doesn't change after callbacks

check that the idle loop, soft interrupt handlers, workqueue, and xcall
callbacks do not modify the preemption count, in most cases, knowing it
should be 0 currently.

this work was originally done by simonb.  cleaned up slightly and some
minor enhancement made by myself, and with discussion with riastradh@.

other callback call sites could check this as well (such as MD interrupt
handlers, or really anything that includes a callback registration.  x86
version to be commited separately.)


To generate a diff of this commit:
cvs rdiff -u -r1.35 -r1.36 src/sys/kern/kern_idle.c
cvs rdiff -u -r1.75 -r1.76 src/sys/kern/kern_softint.c
cvs rdiff -u -r1.47 -r1.48 src/sys/kern/subr_workqueue.c
cvs rdiff -u -r1.37 -r1.38 src/sys/kern/subr_xcall.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/kern_idle.c
diff -u src/sys/kern/kern_idle.c:1.35 src/sys/kern/kern_idle.c:1.36
--- src/sys/kern/kern_idle.c:1.35	Thu Oct  5 19:10:18 2023
+++ src/sys/kern/kern_idle.c	Fri Mar  1 04:32:38 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_idle.c,v 1.35 2023/10/05 19:10:18 ad Exp $	*/
+/*	$NetBSD: kern_idle.c,v 1.36 2024/03/01 04:32:38 mrg Exp $	*/
 
 /*-
  * Copyright (c)2002, 2006, 2007 YAMAMOTO Takashi,
@@ -28,7 +28,7 @@
 
 #include 
 
-__KERNEL_RCSID(0, "$NetBSD: kern_idle.c,v 1.35 2023/10/05 19:10:18 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_idle.c,v 1.36 2024/03/01 04:32:38 mrg Exp $");
 
 #include 
 #include 
@@ -75,6 +75,8 @@ idle_loop(void *dummy)
 		KASSERT(l == curlwp);
 		KASSERT(CURCPU_IDLE_P());
 		KASSERT(l->l_priority == PRI_IDLE);
+		KASSERTMSG(l->l_nopreempt == 0, "lwp %p nopreempt %d",
+		l, l->l_nopreempt);
 
 		sched_idle();
 		if (!sched_curcpu_runnable_p()) {

Index: src/sys/kern/kern_softint.c
diff -u src/sys/kern/kern_softint.c:1.75 src/sys/kern/kern_softint.c:1.76
--- src/sys/kern/kern_softint.c:1.75	Fri Aug  4 12:24:36 2023
+++ src/sys/kern/kern_softint.c	Fri Mar  1 04:32:38 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_softint.c,v 1.75 2023/08/04 12:24:36 riastradh Exp $	*/
+/*	$NetBSD: kern_softint.c,v 1.76 2024/03/01 04:32:38 mrg Exp $	*/
 
 /*-
  * Copyright (c) 2007, 2008, 2019, 2020 The NetBSD Foundation, Inc.
@@ -170,7 +170,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: kern_softint.c,v 1.75 2023/08/04 12:24:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_softint.c,v 1.76 2024/03/01 04:32:38 mrg Exp $");
 
 #include 
 #include 
@@ -569,6 +569,8 @@ softint_execute(lwp_t *l, int s)
 	KASSERT(si->si_cpu == curcpu());
 	KASSERT(si->si_lwp->l_wchan == NULL);
 	KASSERT(si->si_active);
+	KASSERTMSG(l->l_nopreempt == 0, "lwp %p nopreempt %d",
+	l, l->l_nopreempt);
 
 	/*
 	 * Note: due to priority inheritance we may have interrupted a
@@ -616,6 +618,10 @@ softint_execute(lwp_t *l, int s)
 		KASSERTMSG(l->l_blcnt == 0,
 		"%s: sh_func=%p leaked %d biglocks",
 		__func__, sh->sh_func, curlwp->l_blcnt);
+		/* Diagnostic: check that LWP nopreempt remains zero. */
+		KASSERTMSG(l->l_nopreempt == 0,
+		"%s: lwp %p nopreempt %d func %p",
+		__func__, l, l->l_nopreempt, sh->sh_func);
 
 		(void)splhigh();
 	}

Index: src/sys/kern/subr_workqueue.c
diff -u src/sys/kern/subr_workqueue.c:1.47 src/sys/kern/subr_workqueue.c:1.48
--- src/sys/kern/subr_workqueue.c:1.47	Wed Aug  9 08:24:18 2023
+++ src/sys/kern/subr_workqueue.c	Fri Mar  1 04:32:38 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: subr_workqueue.c,v 1.47 2023/08/09 08:24:18 riastradh Exp $	*/
+/*	$NetBSD: subr_workqueue.c,v 1.48 2024/03/01 04:32:38 mrg Exp $	*/
 
 /*-
  * Copyright (c)2002, 2005, 2006, 2007 YAMAMOTO Takashi,
@@ -27,7 +27,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: subr_workqueue.c,v 1.47 2023/08/09 08:24:18 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_workqueue.c,v 1.48 2024/03/01 04:32:38 mrg Exp $");
 
 #include 
 
@@ -140,6 +140,10 @@ workqueue_runlist(struct workqueue *wq, 
 {
 	work_impl_t *wk;
 	work_impl_t *next;
+	struct lwp *l = curlwp;
+
+	KASSERTMSG(l->l_nopreempt == 0, "lwp %p nopreempt %d",
+	l, l->l_nopreempt);
 
 	for (wk = SIMPLEQ_FIRST(list); wk != NULL; wk = next) {
 		next = SIMPLEQ_NEXT(wk, wk_entry);
@@ -148,6 +152,9 @@ workqueue_runlist(struct workqueue *wq, 
 		(*wq->wq_func)((void *)wk, wq->wq_arg);
 		SDT_PROBE4(sdt, kernel, workqueue, return,
 		wq, wk, wq->wq_func, wq->wq_arg);
+		KASSERTMSG(l->l_nopreempt == 0,
+		"lwp %p nopreempt %d func %p",
+		l, l->l_nopreempt, wq->wq_func);
 	}
 }
 

Index: src/sys/kern/subr_xcall.c
diff -u src/sys/kern/subr_xcall.c:1.37 src/sys/kern/subr_xcall.c:1.38
--- src/sys/kern/subr_xcall.c:1.37	Sun Aug  6 17:50:20 2023
+++ src/sys/kern/subr_xcall.c	Fri Mar  1 04:32:38 2024
@@ -

CVS commit: src/sys/kern

2024-02-29 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Fri Mar  1 04:32:38 UTC 2024

Modified Files:
src/sys/kern: kern_idle.c kern_softint.c subr_workqueue.c subr_xcall.c

Log Message:
check that l_nopreempt (preemption count) doesn't change after callbacks

check that the idle loop, soft interrupt handlers, workqueue, and xcall
callbacks do not modify the preemption count, in most cases, knowing it
should be 0 currently.

this work was originally done by simonb.  cleaned up slightly and some
minor enhancement made by myself, and with discussion with riastradh@.

other callback call sites could check this as well (such as MD interrupt
handlers, or really anything that includes a callback registration.  x86
version to be commited separately.)


To generate a diff of this commit:
cvs rdiff -u -r1.35 -r1.36 src/sys/kern/kern_idle.c
cvs rdiff -u -r1.75 -r1.76 src/sys/kern/kern_softint.c
cvs rdiff -u -r1.47 -r1.48 src/sys/kern/subr_workqueue.c
cvs rdiff -u -r1.37 -r1.38 src/sys/kern/subr_xcall.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/dev/ic

2024-02-29 Thread Andrius Varanavicius
Module Name:src
Committed By:   andvar
Date:   Thu Feb 29 22:02:41 UTC 2024

Modified Files:
src/sys/dev/ic: mpc106reg.h

Log Message:
Fix couple typos in comments.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/dev/ic/mpc106reg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/ic/mpc106reg.h
diff -u src/sys/dev/ic/mpc106reg.h:1.4 src/sys/dev/ic/mpc106reg.h:1.5
--- src/sys/dev/ic/mpc106reg.h:1.4	Mon Apr 28 20:23:50 2008
+++ src/sys/dev/ic/mpc106reg.h	Thu Feb 29 22:02:41 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: mpc106reg.h,v 1.4 2008/04/28 20:23:50 martin Exp $	*/
+/*	$NetBSD: mpc106reg.h,v 1.5 2024/02/29 22:02:41 andvar Exp $	*/
 
 /*-
  * Copyright (c) 2001,2007 The NetBSD Foundation, Inc.
@@ -86,7 +86,7 @@
 	/* must be read with MPC106_PICR1_EXT_L2_EN :
 	 * L2_EN	L2_MP	Meaning
 	 * 0		00	Uniprocessor/none
-	 * 0		01	internal conrol/write-through
+	 * 0		01	internal control/write-through
 	 * 0		10	internal control/write-back
 	 * 0		11	Multiproc/none
 	 * 1		00	Uniprocessor/external L2
@@ -185,7 +185,7 @@
 #define  MPC106_MCRR2_EXT_ECM_ECC_EN	__BIT(18) /* ext. ECM ECC enable */
 #define  MPC106_MCRR2_ECC_EN	__BIT(17)	/* ECC enable */
 #define  MPC106_MCRR2_EDO	__BIT(16)	/* EDO enable */
-#define  MPC106_MCRR2_REFINT	__BITS(15,2)	/* refreash interval */
+#define  MPC106_MCRR2_REFINT	__BITS(15,2)	/* refresh interval */
 #define  MPC106_MCRR2_BUFMODE	__BIT(1)	/* buffer mode */
 #define  MPC106_MCRR2_RMW_PAR	__BIT(0)	/* RMW parity enable */
 #define	MPC106_MCCR3		0xf8	/* Memory control configuration 3 */



CVS commit: src/sys/dev/ic

2024-02-29 Thread Andrius Varanavicius
Module Name:src
Committed By:   andvar
Date:   Thu Feb 29 22:02:41 UTC 2024

Modified Files:
src/sys/dev/ic: mpc106reg.h

Log Message:
Fix couple typos in comments.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/dev/ic/mpc106reg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/dev/hpc

2024-02-29 Thread Andrius Varanavicius
Module Name:src
Committed By:   andvar
Date:   Thu Feb 29 22:01:58 UTC 2024

Modified Files:
src/sys/dev/hpc: hpcfb.c

Log Message:
s/hpcfb_refres_screen/hpcfb_refresh_screen/ in debug message.


To generate a diff of this commit:
cvs rdiff -u -r1.65 -r1.66 src/sys/dev/hpc/hpcfb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/hpc/hpcfb.c
diff -u src/sys/dev/hpc/hpcfb.c:1.65 src/sys/dev/hpc/hpcfb.c:1.66
--- src/sys/dev/hpc/hpcfb.c:1.65	Sun Dec 19 21:15:28 2021
+++ src/sys/dev/hpc/hpcfb.c	Thu Feb 29 22:01:57 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: hpcfb.c,v 1.65 2021/12/19 21:15:28 andvar Exp $	*/
+/*	$NetBSD: hpcfb.c,v 1.66 2024/02/29 22:01:57 andvar Exp $	*/
 
 /*-
  * Copyright (c) 1999
@@ -43,7 +43,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: hpcfb.c,v 1.65 2021/12/19 21:15:28 andvar Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hpcfb.c,v 1.66 2024/02/29 22:01:57 andvar Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_hpcfb.h"
@@ -695,7 +695,7 @@ hpcfb_refresh_screen(struct hpcfb_softc 
 	struct hpcfb_devconfig *dc = sc->sc_dc;
 	int x, y;
 
-	DPRINTF(("hpcfb_refres_screen()\n"));
+	DPRINTF(("hpcfb_refresh_screen()\n"));
 	if (dc == NULL)
 		return;
 



CVS commit: src/sys/dev/hpc

2024-02-29 Thread Andrius Varanavicius
Module Name:src
Committed By:   andvar
Date:   Thu Feb 29 22:01:58 UTC 2024

Modified Files:
src/sys/dev/hpc: hpcfb.c

Log Message:
s/hpcfb_refres_screen/hpcfb_refresh_screen/ in debug message.


To generate a diff of this commit:
cvs rdiff -u -r1.65 -r1.66 src/sys/dev/hpc/hpcfb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/usr.bin/xlint/lint1

2024-02-29 Thread Roland Illig
Module Name:src
Committed By:   rillig
Date:   Thu Feb 29 21:37:10 UTC 2024

Modified Files:
src/usr.bin/xlint/lint1: lex.c

Log Message:
lint1: remove redundant type table for integer constant suffixes


To generate a diff of this commit:
cvs rdiff -u -r1.217 -r1.218 src/usr.bin/xlint/lint1/lex.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/xlint/lint1/lex.c
diff -u src/usr.bin/xlint/lint1/lex.c:1.217 src/usr.bin/xlint/lint1/lex.c:1.218
--- src/usr.bin/xlint/lint1/lex.c:1.217	Thu Feb  8 20:59:19 2024
+++ src/usr.bin/xlint/lint1/lex.c	Thu Feb 29 21:37:10 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: lex.c,v 1.217 2024/02/08 20:59:19 rillig Exp $ */
+/* $NetBSD: lex.c,v 1.218 2024/02/29 21:37:10 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -38,7 +38,7 @@
 
 #include 
 #if defined(__RCSID)
-__RCSID("$NetBSD: lex.c,v 1.217 2024/02/08 20:59:19 rillig Exp $");
+__RCSID("$NetBSD: lex.c,v 1.218 2024/02/29 21:37:10 rillig Exp $");
 #endif
 
 #include 
@@ -481,84 +481,72 @@ lex_name(const char *yytext, size_t yyle
 // Determines whether the constant is signed in traditional C but unsigned in
 // C90 and later.
 static bool
-is_unsigned_since_c90(tspec_t t, uint64_t ui, int base)
+is_unsigned_since_c90(unsigned ls, uint64_t ui, int base)
 {
-	if (!(allow_trad && allow_c90))
+	if (ui <= TARG_INT_MAX)
 		return false;
-	if (t == INT) {
-		if (ui > TARG_INT_MAX && ui <= TARG_UINT_MAX && base != 10)
-			return true;
-		return ui > TARG_LONG_MAX;
-	}
-	return t == LONG && ui > TARG_LONG_MAX;
+	if (ls == 0 && ui <= TARG_UINT_MAX && base != 10)
+		return true;
+	return ls <= 1 && ui > TARG_LONG_MAX;
 }
 
 static tspec_t
-integer_constant_type(tspec_t t, uint64_t ui, int base, bool warned)
+integer_constant_type_signed(unsigned ls, uint64_t ui, int base, bool warned)
 {
-	switch (t) {
-	case INT:
-		if (ui <= TARG_INT_MAX)
-			return INT;
-		if (ui <= TARG_UINT_MAX && base != 10 && allow_c90)
-			return UINT;
-		if (ui <= TARG_LONG_MAX)
-			return LONG;
-		/* FALLTHROUGH */
-	case LONG:
-		if (ui <= TARG_LONG_MAX)
-			return LONG;
-		if (ui <= TARG_ULONG_MAX && base != 10)
-			return allow_c90 ? ULONG : LONG;
-		if (!allow_c99) {
-			if (!warned)
-/* integer constant out of range */
-warning(252);
-			return allow_c90 ? ULONG : LONG;
-		}
-		/* FALLTHROUGH */
-	case LLONG:
-		if (ui <= TARG_LLONG_MAX)
-			return LLONG;
-		if (ui <= TARG_ULLONG_MAX && base != 10)
-			return allow_c90 ? ULLONG : LLONG;
+	if (ls == 0 && ui <= TARG_INT_MAX)
+		return INT;
+	if (ls == 0 && ui <= TARG_UINT_MAX && base != 10 && allow_c90)
+		return UINT;
+	if (ls == 0 && ui <= TARG_LONG_MAX)
+		return LONG;
+
+	if (ls <= 1 && ui <= TARG_LONG_MAX)
+		return LONG;
+	if (ls <= 1 && ui <= TARG_ULONG_MAX && base != 10)
+		return allow_c90 ? ULONG : LONG;
+	if (ls <= 1 && !allow_c99) {
 		if (!warned)
 			/* integer constant out of range */
 			warning(252);
+		return allow_c90 ? ULONG : LONG;
+	}
+
+	if (ui <= TARG_LLONG_MAX)
+		return LLONG;
+	if (ui <= TARG_ULLONG_MAX && base != 10)
 		return allow_c90 ? ULLONG : LLONG;
-	case UINT:
-		if (ui <= TARG_UINT_MAX)
-			return UINT;
-		/* FALLTHROUGH */
-	case ULONG:
-		if (ui <= TARG_ULONG_MAX)
-			return ULONG;
-		if (!allow_c99) {
-			if (!warned)
-/* integer constant out of range */
-warning(252);
-			return ULONG;
-		}
-		/* FALLTHROUGH */
-	default:
-		if (ui <= TARG_ULLONG_MAX)
-			return ULLONG;
+	if (!warned)
+		/* integer constant out of range */
+		warning(252);
+	return allow_c90 ? ULLONG : LLONG;
+}
+
+static tspec_t
+integer_constant_type_unsigned(unsigned l, uint64_t ui, bool warned)
+{
+	if (l == 0 && ui <= TARG_UINT_MAX)
+		return UINT;
+
+	if (l <= 1 && ui <= TARG_ULONG_MAX)
+		return ULONG;
+	if (l <= 1 && !allow_c99) {
 		if (!warned)
 			/* integer constant out of range */
 			warning(252);
-		return ULLONG;
+		return ULONG;
 	}
+
+	if (ui <= TARG_ULLONG_MAX)
+		return ULLONG;
+	if (!warned)
+		/* integer constant out of range */
+		warning(252);
+	return ULLONG;
 }
 
 int
 lex_integer_constant(const char *yytext, size_t yyleng, int base)
 {
-	/* C11 6.4.4.1p5 */
-	static const tspec_t suffix_type[2][3] = {
-		{ INT,  LONG,  LLONG, },
-		{ UINT, ULONG, ULLONG, }
-	};
-
 	const char *cp = yytext;
 	size_t len = yyleng;
 
@@ -590,7 +578,6 @@ lex_integer_constant(const char *yytext,
 	if (!allow_c90 && u_suffix > 0)
 		/* suffix 'U' is illegal in traditional C */
 		warning(97);
-	tspec_t ct = suffix_type[u_suffix][l_suffix];
 
 	bool warned = false;
 	errno = 0;
@@ -607,14 +594,17 @@ lex_integer_constant(const char *yytext,
 		/* octal number '%.*s' */
 		query_message(8, (int)len, cp);
 
-	bool ansiu = is_unsigned_since_c90(ct, ui, base);
+	bool unsigned_since_c90 = allow_trad && allow_c90 && u_suffix == 0
+	&& is_unsigned_since_c90(l_suffix, ui, base);
 
-	tspec_t t = integer_constant_type(ct, ui, base, wa

CVS commit: src/usr.bin/xlint/lint1

2024-02-29 Thread Roland Illig
Module Name:src
Committed By:   rillig
Date:   Thu Feb 29 21:37:10 UTC 2024

Modified Files:
src/usr.bin/xlint/lint1: lex.c

Log Message:
lint1: remove redundant type table for integer constant suffixes


To generate a diff of this commit:
cvs rdiff -u -r1.217 -r1.218 src/usr.bin/xlint/lint1/lex.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libutil

2024-02-29 Thread Roland Illig
Module Name:src
Committed By:   rillig
Date:   Thu Feb 29 21:08:55 UTC 2024

Modified Files:
src/lib/libutil: snprintb.3

Log Message:
snprintb.3: fix typo


To generate a diff of this commit:
cvs rdiff -u -r1.35 -r1.36 src/lib/libutil/snprintb.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libutil/snprintb.3
diff -u src/lib/libutil/snprintb.3:1.35 src/lib/libutil/snprintb.3:1.36
--- src/lib/libutil/snprintb.3:1.35	Thu Feb 22 21:04:24 2024
+++ src/lib/libutil/snprintb.3	Thu Feb 29 21:08:54 2024
@@ -1,4 +1,4 @@
-.\" $NetBSD: snprintb.3,v 1.35 2024/02/22 21:04:24 rillig Exp $
+.\" $NetBSD: snprintb.3,v 1.36 2024/02/29 21:08:54 rillig Exp $
 .\"
 .\" Copyright (c) 1998, 2024 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -69,7 +69,7 @@ terminating
 If
 .Fa bufsize
 is zero, nothing is written and
-.Fa arg
+.Fa buf
 may be a null pointer.
 .Pp
 The



CVS commit: src/lib/libutil

2024-02-29 Thread Roland Illig
Module Name:src
Committed By:   rillig
Date:   Thu Feb 29 21:08:55 UTC 2024

Modified Files:
src/lib/libutil: snprintb.3

Log Message:
snprintb.3: fix typo


To generate a diff of this commit:
cvs rdiff -u -r1.35 -r1.36 src/lib/libutil/snprintb.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libutil

2024-02-29 Thread Roland Illig
Module Name:src
Committed By:   rillig
Date:   Thu Feb 29 20:55:35 UTC 2024

Modified Files:
src/lib/libutil: parsedate.y

Log Message:
parsedate.y: remove outdated comment

The number of shift/reduce conflicts has grown to 16.


To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 src/lib/libutil/parsedate.y

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libutil/parsedate.y
diff -u src/lib/libutil/parsedate.y:1.37 src/lib/libutil/parsedate.y:1.38
--- src/lib/libutil/parsedate.y:1.37	Sat Apr 23 13:02:04 2022
+++ src/lib/libutil/parsedate.y	Thu Feb 29 20:55:35 2024
@@ -5,8 +5,6 @@
 **  a couple of people on Usenet.  Completely overhauled by Rich $alz
 **   and Jim Berets  in August, 1990;
 **
-**  This grammar has 10 shift/reduce conflicts.
-**
 **  This code is in the public domain and has no copyright.
 */
 /* SUPPRESS 287 on yaccpar_sccsid *//* Unused static variable */
@@ -14,7 +12,7 @@
 
 #include 
 #ifdef __RCSID
-__RCSID("$NetBSD: parsedate.y,v 1.37 2022/04/23 13:02:04 christos Exp $");
+__RCSID("$NetBSD: parsedate.y,v 1.38 2024/02/29 20:55:35 rillig Exp $");
 #endif
 
 #include 



CVS commit: src/lib/libutil

2024-02-29 Thread Roland Illig
Module Name:src
Committed By:   rillig
Date:   Thu Feb 29 20:55:35 UTC 2024

Modified Files:
src/lib/libutil: parsedate.y

Log Message:
parsedate.y: remove outdated comment

The number of shift/reduce conflicts has grown to 16.


To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 src/lib/libutil/parsedate.y

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/external/mpl/bind/lib/libisc

2024-02-29 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Feb 29 20:41:52 UTC 2024

Modified Files:
src/external/mpl/bind/lib/libisc: Makefile

Log Message:
remove std= override from here. It happens on top of the bind tree.


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 src/external/mpl/bind/lib/libisc/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/mpl/bind/lib/libisc/Makefile
diff -u src/external/mpl/bind/lib/libisc/Makefile:1.21 src/external/mpl/bind/lib/libisc/Makefile:1.22
--- src/external/mpl/bind/lib/libisc/Makefile:1.21	Wed Feb 21 17:52:54 2024
+++ src/external/mpl/bind/lib/libisc/Makefile	Thu Feb 29 15:41:52 2024
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.21 2024/02/21 22:52:54 christos Exp $
+#	$NetBSD: Makefile,v 1.22 2024/02/29 20:41:52 christos Exp $
 
 NOLINT=yes # XXX
 LIB=isc
@@ -9,7 +9,6 @@ LIB=isc
 LIBUVDIR=${NETBSDSRCDIR}/external/mit/libuv
 LIBUVOBJDIR!=   cd ${LIBUVDIR}/lib && ${PRINTOBJDIR}
 CPPFLAGS+=-I${LIBUVDIR}/dist/include
-CFLAGS+=-std=gnu18
 
 .include "${.CURDIR}/../Makefile.inc"
 



CVS commit: src/external/mpl/bind/lib/libisc

2024-02-29 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Feb 29 20:41:52 UTC 2024

Modified Files:
src/external/mpl/bind/lib/libisc: Makefile

Log Message:
remove std= override from here. It happens on top of the bind tree.


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 src/external/mpl/bind/lib/libisc/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: [netbsd-9] src/doc

2024-02-29 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Thu Feb 29 13:00:58 UTC 2024

Modified Files:
src/doc [netbsd-9]: CHANGES-9.4

Log Message:
Fix entry for ticket #1804


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.133 -r1.1.2.134 src/doc/CHANGES-9.4

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: [netbsd-9] src/doc

2024-02-29 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Thu Feb 29 13:00:58 UTC 2024

Modified Files:
src/doc [netbsd-9]: CHANGES-9.4

Log Message:
Fix entry for ticket #1804


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.133 -r1.1.2.134 src/doc/CHANGES-9.4

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/doc/CHANGES-9.4
diff -u src/doc/CHANGES-9.4:1.1.2.133 src/doc/CHANGES-9.4:1.1.2.134
--- src/doc/CHANGES-9.4:1.1.2.133	Thu Feb 29 12:44:34 2024
+++ src/doc/CHANGES-9.4	Thu Feb 29 13:00:58 2024
@@ -1,4 +1,4 @@
-# $NetBSD: CHANGES-9.4,v 1.1.2.133 2024/02/29 12:44:34 martin Exp $
+# $NetBSD: CHANGES-9.4,v 1.1.2.134 2024/02/29 13:00:58 martin Exp $
 
 A complete list of changes from the NetBSD 9.3 release to the NetBSD 9.4
 release:
@@ -12914,6 +12914,7 @@ distrib/sets/lists/debug/mi			1.427,1.42
 distrib/sets/lists/debug/shl.mi			1.338 (patch)
 distrib/sets/lists/man/mi			1.1769,1.1771 (patch)
 doc/3RDPARTY	(manually edited)
+share/mk/bsd.prog.mk(apply patch)
 share/mk/bsd.sys.mk1.316
 	
 	named(8): update to bind 9.18.24, which fixes several



CVS commit: [netbsd-9] src/share/mk

2024-02-29 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Thu Feb 29 13:00:14 UTC 2024

Modified Files:
src/share/mk [netbsd-9]: bsd.prog.mk bsd.sys.mk

Log Message:
Part of ticket #1804 accidently not commited


To generate a diff of this commit:
cvs rdiff -u -r1.319.2.3 -r1.319.2.4 src/share/mk/bsd.prog.mk
cvs rdiff -u -r1.292.2.1 -r1.292.2.2 src/share/mk/bsd.sys.mk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/share/mk/bsd.prog.mk
diff -u src/share/mk/bsd.prog.mk:1.319.2.3 src/share/mk/bsd.prog.mk:1.319.2.4
--- src/share/mk/bsd.prog.mk:1.319.2.3	Sun Sep  1 10:44:22 2019
+++ src/share/mk/bsd.prog.mk	Thu Feb 29 13:00:14 2024
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.prog.mk,v 1.319.2.3 2019/09/01 10:44:22 martin Exp $
+#	$NetBSD: bsd.prog.mk,v 1.319.2.4 2024/02/29 13:00:14 martin Exp $
 #	@(#)bsd.prog.mk	8.2 (Berkeley) 4/2/94
 
 .ifndef HOSTPROG
@@ -434,6 +434,10 @@ DPADD+=		${PROGDO.${_lib}}/lib${_lib}.a
 .endif
 .endfor
 .endif	# }
+
+LDADD+=${LDADD_AFTER}
+DPADD+=${DPADD_AFTER}
+
 #
 # Per-program definitions and targets.
 #

Index: src/share/mk/bsd.sys.mk
diff -u src/share/mk/bsd.sys.mk:1.292.2.1 src/share/mk/bsd.sys.mk:1.292.2.2
--- src/share/mk/bsd.sys.mk:1.292.2.1	Tue Dec 24 17:32:20 2019
+++ src/share/mk/bsd.sys.mk	Thu Feb 29 13:00:14 2024
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.sys.mk,v 1.292.2.1 2019/12/24 17:32:20 martin Exp $
+#	$NetBSD: bsd.sys.mk,v 1.292.2.2 2024/02/29 13:00:14 martin Exp $
 #
 # Build definitions used for NetBSD source tree builds.
 
@@ -53,7 +53,7 @@ CXXFLAGS+=	${REPROFLAGS}
 
 # NetBSD sources use C99 style, with some GCC extensions.
 # Coverity does not like -std=gnu99
-.if !defined(COVERITY_TOP_CONFIG)
+.if !defined(COVERITY_TOP_CONFIG) && empty(CFLAGS:M*-std=*)
 CFLAGS+=	${${ACTIVE_CC} == "clang":? -std=gnu99 :}
 CFLAGS+=	${${ACTIVE_CC} == "gcc":? -std=gnu99 :}
 CFLAGS+=	${${ACTIVE_CC} == "pcc":? -std=gnu99 :}



CVS commit: [netbsd-9] src/share/mk

2024-02-29 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Thu Feb 29 13:00:14 UTC 2024

Modified Files:
src/share/mk [netbsd-9]: bsd.prog.mk bsd.sys.mk

Log Message:
Part of ticket #1804 accidently not commited


To generate a diff of this commit:
cvs rdiff -u -r1.319.2.3 -r1.319.2.4 src/share/mk/bsd.prog.mk
cvs rdiff -u -r1.292.2.1 -r1.292.2.2 src/share/mk/bsd.sys.mk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: [netbsd-9] src/doc

2024-02-29 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Thu Feb 29 12:44:34 UTC 2024

Modified Files:
src/doc [netbsd-9]: CHANGES-9.4

Log Message:
Tickets #18003 and #1804


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.132 -r1.1.2.133 src/doc/CHANGES-9.4

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: [netbsd-8] src/doc

2024-02-29 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Thu Feb 29 10:47:52 UTC 2024

Modified Files:
src/doc [netbsd-8]: CHANGES-8.3

Log Message:
Ticket #1938


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.220 -r1.1.2.221 src/doc/CHANGES-8.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/doc/CHANGES-8.3
diff -u src/doc/CHANGES-8.3:1.1.2.220 src/doc/CHANGES-8.3:1.1.2.221
--- src/doc/CHANGES-8.3:1.1.2.220	Fri Feb 23 18:18:35 2024
+++ src/doc/CHANGES-8.3	Thu Feb 29 10:47:52 2024
@@ -1,4 +1,4 @@
-$NetBSD: CHANGES-8.3,v 1.1.2.220 2024/02/23 18:18:35 martin Exp $
+$NetBSD: CHANGES-8.3,v 1.1.2.221 2024/02/29 10:47:52 martin Exp $
 
 A complete list of changes from the NetBSD 8.2 release to the NetBSD 8.3
 release:
@@ -4280,3 +4280,15 @@ tests/lib/libm/t_fenv.c1.14,1.15
 	libm: PR 57949: fix spurious side effects in fetestexcept.
 	[riastradh, ticket #1937]
 
+sys/dev/pci/if_wm.c			1.792,1.794-1.798 via patch
+sys/dev/pci/if_wmreg.h			1.131
+
+	- Add RQDPC(Receive Queue Drop Packet Count) to iqdrops.
+	- Drop frames if the RX descriptor ring has no room on multiqueue
+	  system.
+	- Improve dmesg output.
+	  - Print RX packet buffer size.
+	  - Fix the upper 16bit of Image Unique ID(EtrackID).
+	- Fix comment.
+	[msaitoh, ticket #1938]
+



CVS commit: [netbsd-8] src/doc

2024-02-29 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Thu Feb 29 10:47:52 UTC 2024

Modified Files:
src/doc [netbsd-8]: CHANGES-8.3

Log Message:
Ticket #1938


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.220 -r1.1.2.221 src/doc/CHANGES-8.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: [netbsd-8] src/sys/dev/pci

2024-02-29 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Thu Feb 29 10:46:28 UTC 2024

Modified Files:
src/sys/dev/pci [netbsd-8]: if_wm.c if_wmreg.h

Log Message:
Pull up the following, requested by msaitoh in ticket #1938:

sys/dev/pci/if_wm.c 1.792,1.794-1.798 via patch
sys/dev/pci/if_wmreg.h  1.131

- Add RQDPC(Receive Queue Drop Packet Count) to iqdrops.
- Drop frames if the RX descriptor ring has no room on multiqueue system.
- Improve dmesg output.
  - Print RX packet buffer size.
  - Fix the upper 16bit of Image Unique ID(EtrackID).
- Fix comment.


To generate a diff of this commit:
cvs rdiff -u -r1.508.4.54 -r1.508.4.55 src/sys/dev/pci/if_wm.c
cvs rdiff -u -r1.98.6.18 -r1.98.6.19 src/sys/dev/pci/if_wmreg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: [netbsd-8] src/sys/dev/pci

2024-02-29 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Thu Feb 29 10:46:28 UTC 2024

Modified Files:
src/sys/dev/pci [netbsd-8]: if_wm.c if_wmreg.h

Log Message:
Pull up the following, requested by msaitoh in ticket #1938:

sys/dev/pci/if_wm.c 1.792,1.794-1.798 via patch
sys/dev/pci/if_wmreg.h  1.131

- Add RQDPC(Receive Queue Drop Packet Count) to iqdrops.
- Drop frames if the RX descriptor ring has no room on multiqueue system.
- Improve dmesg output.
  - Print RX packet buffer size.
  - Fix the upper 16bit of Image Unique ID(EtrackID).
- Fix comment.


To generate a diff of this commit:
cvs rdiff -u -r1.508.4.54 -r1.508.4.55 src/sys/dev/pci/if_wm.c
cvs rdiff -u -r1.98.6.18 -r1.98.6.19 src/sys/dev/pci/if_wmreg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/pci/if_wm.c
diff -u src/sys/dev/pci/if_wm.c:1.508.4.54 src/sys/dev/pci/if_wm.c:1.508.4.55
--- src/sys/dev/pci/if_wm.c:1.508.4.54	Sat Feb  3 12:04:06 2024
+++ src/sys/dev/pci/if_wm.c	Thu Feb 29 10:46:27 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_wm.c,v 1.508.4.54 2024/02/03 12:04:06 martin Exp $	*/
+/*	$NetBSD: if_wm.c,v 1.508.4.55 2024/02/29 10:46:27 martin Exp $	*/
 
 /*
  * Copyright (c) 2001, 2002, 2003, 2004 Wasabi Systems, Inc.
@@ -82,7 +82,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.508.4.54 2024/02/03 12:04:06 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.508.4.55 2024/02/29 10:46:27 martin Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_net_mpsafe.h"
@@ -469,9 +469,9 @@ struct wm_rxqueue {
 	/* RX event counters */
 	WM_Q_EVCNT_DEFINE(rxq, intr);	/* Interrupts */
 	WM_Q_EVCNT_DEFINE(rxq, defer);	/* Rx deferred processing */
-
 	WM_Q_EVCNT_DEFINE(rxq, ipsum);	/* IP checksums checked */
 	WM_Q_EVCNT_DEFINE(rxq, tusum);	/* TCP/UDP cksums checked */
+	WM_Q_EVCNT_DEFINE(rxq, qdrop);	/* Rx queue drop packet */
 #endif
 };
 
@@ -2693,6 +2693,10 @@ alloc_retry:
 	/* Reset the chip to a known state. */
 	wm_reset(sc);
 
+	/* sc->sc_pba is set in wm_reset(). */
+	aprint_verbose_dev(sc->sc_dev, "RX packet buffer size: %uKB\n",
+	sc->sc_pba);
+
 	/*
 	 * Check for I21[01] PLL workaround.
 	 *
@@ -6526,6 +6530,7 @@ wm_update_stats(struct wm_softc *sc)
 	struct ifnet *ifp = &sc->sc_ethercom.ec_if;
 	uint64_t crcerrs, algnerrc, symerrc, mpc, colc,  sec, rlec, rxerrc,
 	cexterr;
+	uint64_t total_qdrop = 0;
 
 	crcerrs = CSR_READ(sc, WMREG_CRCERRS);
 	symerrc = CSR_READ(sc, WMREG_SYMERRC);
@@ -6674,6 +6679,22 @@ wm_update_stats(struct wm_softc *sc)
 		WM_EVCNT_ADD(&sc->sc_ev_lenerrs, CSR_READ(sc, WMREG_LENERRS));
 		WM_EVCNT_ADD(&sc->sc_ev_scvpc, CSR_READ(sc, WMREG_SCVPC));
 		WM_EVCNT_ADD(&sc->sc_ev_hrmpc, CSR_READ(sc, WMREG_HRMPC));
+#ifdef WM_EVENT_COUNTERS
+		for (int i = 0; i < sc->sc_nqueues; i++) {
+			struct wm_rxqueue *rxq = &sc->sc_queue[i].wmq_rxq;
+			uint32_t rqdpc;
+
+			rqdpc = CSR_READ(sc, WMREG_RQDPC(i));
+			/*
+			 * On I210 and newer device, the RQDPC register is not
+			 * cleard on read.
+			 */
+			if ((rqdpc != 0) && (sc->sc_type >= WM_T_I210))
+CSR_WRITE(sc, WMREG_RQDPC(i), 0);
+			WM_Q_EVCNT_ADD(rxq, qdrop, rqdpc);
+			total_qdrop += rqdpc;
+		}
+#endif
 	}
 	if ((sc->sc_type >= WM_T_I350) && !WM_IS_ICHPCH(sc)) {
 		WM_EVCNT_ADD(&sc->sc_ev_tlpic, CSR_READ(sc, WMREG_TLPIC));
@@ -6702,7 +6723,7 @@ wm_update_stats(struct wm_softc *sc)
 	 * If you want to know the nubmer of WMREG_RMBC, you should use such as
 	 * own EVCNT instead of if_iqdrops.
 	 */
-	ifp->if_iqdrops += mpc;
+	ifp->if_iqdrops += mpc + total_qdrop;
 }
 
 void
@@ -6719,6 +6740,8 @@ wm_clear_evcnt(struct wm_softc *sc)
 		WM_Q_EVCNT_STORE(rxq, defer, 0);
 		WM_Q_EVCNT_STORE(rxq, ipsum, 0);
 		WM_Q_EVCNT_STORE(rxq, tusum, 0);
+		if ((sc->sc_type >= WM_T_82575) && !WM_IS_ICHPCH(sc))
+			WM_Q_EVCNT_STORE(rxq, qdrop, 0);
 	}
 
 	/* TX queues */
@@ -8052,9 +8075,10 @@ wm_alloc_txrx_queues(struct wm_softc *sc
 
 		WM_Q_INTR_EVCNT_ATTACH(rxq, intr, rxq, i, xname);
 		WM_Q_INTR_EVCNT_ATTACH(rxq, defer, rxq, i, xname);
-
 		WM_Q_MISC_EVCNT_ATTACH(rxq, ipsum, rxq, i, xname);
 		WM_Q_MISC_EVCNT_ATTACH(rxq, tusum, rxq, i, xname);
+		if ((sc->sc_type >= WM_T_82575) && !WM_IS_ICHPCH(sc))
+			WM_Q_MISC_EVCNT_ATTACH(rxq, qdrop, rxq, i, xname);
 #endif /* WM_EVENT_COUNTERS */
 
 		rx_done++;
@@ -8117,6 +8141,8 @@ wm_free_txrx_queues(struct wm_softc *sc)
 		WM_Q_EVCNT_DETACH(rxq, defer, rxq, i);
 		WM_Q_EVCNT_DETACH(rxq, ipsum, rxq, i);
 		WM_Q_EVCNT_DETACH(rxq, tusum, rxq, i);
+		if ((sc->sc_type >= WM_T_82575) && !WM_IS_ICHPCH(sc))
+			WM_Q_EVCNT_DETACH(rxq, qdrop, rxq, i);
 #endif /* WM_EVENT_COUNTERS */
 
 		wm_free_rx_buffer(sc, rxq);
@@ -8306,6 +8332,8 @@ wm_init_rx_regs(struct wm_softc *sc, str
 		rxq->rxq_descsize * rxq->rxq_ndesc);
 
 		if ((sc->sc_flags & WM_F_NEWQUEUE) != 0) {
+			uint32_t srrctl;
+
 			if (MCLBYTES & ((1 << SRRCTL_BSIZEPKT_SHIFT) - 1))
 panic("%s: MCLBYTES 

CVS commit: src/usr.sbin/makefs

2024-02-29 Thread Tomohiro Kusumi
Module Name:src
Committed By:   tkusumi
Date:   Thu Feb 29 08:13:52 UTC 2024

Modified Files:
src/usr.sbin/makefs: msdos.c

Log Message:
makefs/msdos: Fix broken [extra-directory ...] case

"path + cur->name" is not same as "cur->root + cur->path + cur->name"
for extra-directory files, as extra-directory files are
in different location. Do what makefs ffs code does.


To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 src/usr.sbin/makefs/msdos.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.sbin/makefs/msdos.c
diff -u src/usr.sbin/makefs/msdos.c:1.24 src/usr.sbin/makefs/msdos.c:1.25
--- src/usr.sbin/makefs/msdos.c:1.24	Sun Feb 18 16:58:51 2024
+++ src/usr.sbin/makefs/msdos.c	Thu Feb 29 08:13:52 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: msdos.c,v 1.24 2024/02/18 16:58:51 christos Exp $	*/
+/*	$NetBSD: msdos.c,v 1.25 2024/02/29 08:13:52 tkusumi Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
 
 #include 
 #if defined(__RCSID) && !defined(__lint)
-__RCSID("$NetBSD: msdos.c,v 1.24 2024/02/18 16:58:51 christos Exp $");
+__RCSID("$NetBSD: msdos.c,v 1.25 2024/02/29 08:13:52 tkusumi Exp $");
 #endif	/* !__lint */
 
 #include 
@@ -226,8 +226,8 @@ msdos_populate_dir(const char *path, str
 	assert(fsopts != NULL);
 
 	for (cur = root->next; cur != NULL; cur = cur->next) {
-		if ((size_t)snprintf(pbuf, sizeof(pbuf), "%s/%s", path,
-		cur->name) >= sizeof(pbuf)) {
+		if ((size_t)snprintf(pbuf, sizeof(pbuf), "%s/%s/%s",
+		cur->root, cur->path, cur->name) >= sizeof(pbuf)) {
 			warnx("path %s too long", pbuf);
 			return -1;
 		}



CVS commit: src/usr.sbin/makefs

2024-02-29 Thread Tomohiro Kusumi
Module Name:src
Committed By:   tkusumi
Date:   Thu Feb 29 08:13:52 UTC 2024

Modified Files:
src/usr.sbin/makefs: msdos.c

Log Message:
makefs/msdos: Fix broken [extra-directory ...] case

"path + cur->name" is not same as "cur->root + cur->path + cur->name"
for extra-directory files, as extra-directory files are
in different location. Do what makefs ffs code does.


To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 src/usr.sbin/makefs/msdos.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.