Module Name:    src
Committed By:   martin
Date:           Fri Oct 11 17:26:32 UTC 2024

Modified Files:
        src/include [netbsd-10]: limits.h

Log Message:
Pull up following revision(s) (requested by riastradh in ticket #945):

        include/limits.h: revision 1.45

limits.h: Define PTHREAD_STACK_MIN and tidy up comments.

Define this to be 4096, which is (as far as I can tell) the smallest
possible page size on any architecture NetBSD supports.  This should
be MIN_PAGE_SIZE instead, but I don't think that is exposed in any
way that doesn't badly pollute the namespace.  We should maybe have a
__MIN_PAGE_SIZE defined in some header file exposed to userland.

Of course, applications actually need to allocate at least
sysconf(_SC_THREAD_STACK_MIN) = getpagesize() bytes, which may be
larger than PTHREAD_STACK_MIN.

The various feature flags (dates) like _POSIX_THREAD_ATTR_STACKADDR
are defined (or not defined) by unistd.h, not by limits.h, so there's
no value in mentioning them here -- and the comment is wrong about
most of them (we have implemented _POSIX_THREAD_ATTR_STACKADDR, for
example).

PR standards/45435: PTHREAD_KEYS_MAX et al. missing in <limits.h>


To generate a diff of this commit:
cvs rdiff -u -r1.43.2.1 -r1.43.2.2 src/include/limits.h

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

Modified files:

Index: src/include/limits.h
diff -u src/include/limits.h:1.43.2.1 src/include/limits.h:1.43.2.2
--- src/include/limits.h:1.43.2.1	Wed Oct  9 13:12:40 2024
+++ src/include/limits.h	Fri Oct 11 17:26:32 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: limits.h,v 1.43.2.1 2024/10/09 13:12:40 martin Exp $	*/
+/*	$NetBSD: limits.h,v 1.43.2.2 2024/10/11 17:26:32 martin Exp $	*/
 
 /*
  * Copyright (c) 1988, 1993
@@ -61,35 +61,23 @@
 #define	_POSIX_SYMLOOP_MAX	8
 
 /*
- * We have not implemented these yet
- *
- * _POSIX_THREAD_ATTR_STACKADDR
- * _POSIX_THREAD_ATTR_STACKSIZE
- * _POSIX_THREAD_CPUTIME
- * _POSIX_THREAD_PRIORITY_SCHEDULING
- * _POSIX_THREAD_PRIO_INHERIT
- * _POSIX_THREAD_PRIO_PROTECT
- * _POSIX_THREAD_PROCESS_SHARED
- * _POSIX_THREAD_SAFE_FUNCTIONS
- * _POSIX_THREAD_SPORADIC_SERVER
- */
-
-/*
- * The following 3 are defined in 
+ * Exact minimum values prescribed by:
  * Open Group Base Specifications Issue 7
+ * https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html
  */
 #define	_POSIX_THREAD_DESTRUCTOR_ITERATIONS	4
 #define	_POSIX_THREAD_KEYS_MAX			128
 #define	_POSIX_THREAD_THREADS_MAX		64
 
 /*
- * These are the correct names, defined in terms of the above
- * except for PTHREAD_KEYS_MAX which is bigger than standard 
- * mandated minimum value _POSIX_THREAD_KEYS_MAX.
+ * Actual values used by libpthread, defined in terms of the above
+ * except for PTHREAD_KEYS_MAX which is bigger than standard mandated
+ * minimum value _POSIX_THREAD_KEYS_MAX, and PTHREAD_STACK_MIN which
+ * doesn't have a defined name for the minimum value of zero.
  */
 #define	PTHREAD_DESTRUCTOR_ITERATIONS 	_POSIX_THREAD_DESTRUCTOR_ITERATIONS
 #define	PTHREAD_KEYS_MAX		256
-/* Not yet: PTHREAD_STACK_MIN */
+#define	PTHREAD_STACK_MIN		4096 /* XXX MIN_PAGE_SIZE */
 #define	PTHREAD_THREADS_MAX		_POSIX_THREAD_THREADS_MAX
 
 #define	_POSIX_TIMER_MAX	32

Reply via email to