Home | History | Annotate | Download | only in gen
History log of /src/lib/libc/gen/sysconf.c
RevisionDateAuthorComments
 1.45  22-Dec-2024  riastradh sysconf(3): KNF

No functional change intended.

Prompted by exposing DELAYTIMER_MAX in preparation for:

PR kern/58926: itimer(9) integer overflow in overrun counting
 1.44  25-Oct-2023  simonb Add _SC_AVPHYS_PAGES.
getconf(1) add this and SC_PHYS_PAGES.
libc: Use vm.uvmexp2 over vm.meter is it's twice as fast on my setup.
getconf.3: Tidy up wording for SC_PHYS_PAGES.
 1.43  15-Dec-2019  joerg PR 54619: Remove semaphore limit introduce as part of GSoC 2016 with
_SC_SEM_NSEMS_MAX. Report no limit for getconf(3). The ressource is
naturally limited by the backing file descriptor, so no separate limit
is necessary. Keep the accounting for debugging as it is part of the
sysctl ABI exposed by the kernel.
 1.42  16-Oct-2019  maya Provide sysconf(_SC_RTSIG_MAX) = SIGRTMAX - SIGRTMIN

Thanks nros@ for the correct definition
 1.41  04-Aug-2016  christos branches: 1.41.14; 1.41.16;
Realtime signal support from GSoC 2016, Charles Cui.
 1.40  03-Jul-2016  christos branches: 1.40.2;
GSoC 2016 Charles Cui: Implement thread priority protection based on work
by Andy Doran. Also document the get/set pshared thread calls as not
implemented, and add a skeleton implementation that is disabled.
XXX: document _sched_protect(2).
 1.39  10-Jun-2016  christos GSoC 2016: Charles Cui: Add timer related macros
_POSIX_CPUTIME
_POSIX_THREAD_CPUTIME
_POSIX_DELAYTIMER_MAX
 1.38  10-Jun-2016  christos GSoC 2016: Charles Cui: add SEM_NSEMS_MAX
 1.37  26-Feb-2016  christos Add _SC_TIMER_MAX
 1.36  19-Dec-2013  rmind Add shm_open(3) and shm_unlink(3) to support POSIX shared memory objects.
They are implemented using tmpfs (mounted at /var/shm).

Discussed on tech-{kern,userlevel} (quite a while ago).
 1.35  02-Nov-2012  christos Add _SC_PHYS_PAGES
 1.34  01-Aug-2012  martin branches: 1.34.2;
Define _POSIX_SPAWN in unistd.h and also provide its value via sysconf(),
as required by posix since we support posix_spawn().
 1.33  06-Aug-2008  matt branches: 1.33.2; 1.33.6; 1.33.22;
Add support for missing _SC_* constants for sysconf().
From andy dot shevchenko at gmail dot com
 1.32  25-Jun-2008  ad Add _SC_TTY_NAME_MAX.
 1.31  25-Jun-2008  ad Return -1 for the unsupported realtime extensions.
 1.30  24-Jun-2008  ad A few more POSIX defs for threads.
 1.29  09-Apr-2008  njoly branches: 1.29.4;
Fix _SC_MQ_OPEN_MAX/_SC_MQ_PRIO_MAX sysctlgetmibinfo calls.
The corresponding sysctl nodes are available under kern.mqueue tree.
 1.28  08-Mar-2008  yamt sysconf: cache the result of _SC_PAGESIZE.
 1.27  26-Jan-2008  rmind branches: 1.27.2;
sched_setparam: fix the case when incorrect (according to the class)
in-kernel priority is used. Reported by <drochner>.

Minor fixes for scheduling calls to conform the POSIX:
- If pid is equal to zero, use the calling process;
- In case of permission problem, return EPERM instead of EACESS;
- sched_setscheduler() should return previously used policy;
- pthread_* calls should return the error code or zero;

Should fix the namespace problems (and builds of some packages):
- Move cpuset_t defintion from pset.h to sched.h;
- Remove the #include of pset.h in pthread.h;
 1.26  15-Jan-2008  rmind Implementation of processor-sets, affinity and POSIX real-time extensions.
Add schedctl(8) - a program to control scheduling of processes and threads.

Notes:
- This is supported only by SCHED_M2;
- Migration of LWP mechanism will be revisited;

Proposed on: <tech-kern>. Reviewed by: <ad>.
 1.25  15-Oct-2007  ad Add _SC_NPROCESSORS_ONLN and _SC_NPROCESSORS_CONF for sysconf(). These
are extensions but are provided by many Unix systems.
 1.24  07-Sep-2007  rmind Implementation of POSIX message queues.

Reviewed by: <ad>, <tech-kern>
 1.23  01-May-2007  rmind branches: 1.23.4;
- Create sysctl nodes for AIO.
- Add POSIX defined system variables and constants of AIO_LISTIO_MAX and
AIO_MAX values. Both with _POSIX_ASYNCHRONOUS_IO, provide them in
sysconf(3) and getconf(1) interfaces.
- Clean up sysconf(3) for handling sysctl nodes dynamically.
 1.22  25-Nov-2006  christos PR/34837: Mindaguas: Add SysV SHM dynamic reallocation and locking to the
physical memory
 1.21  10-Nov-2004  lukem need <limits.h> for _SC_GET{GR,PW}_SIZE_MAX
 1.20  10-Nov-2004  lukem Implement sysconf(3) _SC_GETGR_R_SIZE_MAX and _SC_GETPW_R_SIZE_MAX for
the 1003.1-2001 Thread Safe Functions (TSF) getgrnam_r(3) and getpwnam_r(3).

These are not implemented in sysctl(3) "user.*", since that adds a lot
of complexity in the implementation for no real benefit.
 1.19  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.18  02-Feb-2003  kleink Add sysconf(3) knobs for recent additions.
 1.17  19-Dec-2002  kleink Add a sysconf(3) knob for {ATEXIT_MAX}.
 1.16  30-Jun-2002  bjh21 Version times() so that programs compiled before the recent change to make
sysconf(_SC_CLK_TCK) return hz will work.

In detail:
__times13() returns values scaled by hz.
times() returns values scaled by 100.
<sys/times.h> renames times() to __times13().

_SC_CLK_TCK has changed from 3 to 39.
sysconf(3) returns 100.
sysconf(39) returns hz.
CLK_TCK is defined as sysconf(39).
 1.15  23-Jun-2002  perry make sysconf(_SC_CLK_TCK) return the kernel hz value, instead of a
fixed constant, as is done on Solaris, Linux, etc.

Technically, standards don't *require* this, but having it return a
constant is a violation of the spirit, and screws up programs that
(perhaps improperly) assume that it will return kernel hz.
 1.14  31-Jan-2002  kleink Add {POSIX_MONOTONIC_CLOCK} variables.
 1.13  07-May-2001  kleink Internally rename sysconf() to __sysconf() to make its latter name suitable
for use from public headers. Also, do so on all platforms.
 1.12  22-Jan-2000  mycroft branches: 1.12.6;
Delint.
Remove trailing ; from uses of __weak_alias(). The macro inserts this if
needed.
 1.11  27-Sep-1999  kleink 1003.1c: add {LOGIN_NAME_MAX}.
 1.10  24-Jun-1999  kleink branches: 1.10.2;
Add compile-time and run-time feature test knobs for the 1003.1 Mapped Files,
Process Memory Locking, Range Memory Locking and Memory Protection options.
 1.9  03-Aug-1998  kleink Add support for _SC_SYNCHRONIZED_IO and _SC_IOV_MAX. Rearrange documentation
a bit, and actually document _SC_XOPEN_SHM.
 1.8  24-May-1998  kleink Add support to query PAGESIZE, PAGE_SIZE, _POSIX_FSYNC and _XOPEN_SHM via
sysconf().
 1.7  30-Mar-1998  kleink Need <time.h> for CLK_TCK definition.
 1.6  27-Feb-1998  perry trivial changes to quiet lint.
 1.5  21-Jul-1997  jtc If port provides __weak_alias(), provide an Standard C and POSIX pure
identifier namespace by renaming non standard functions and variables
such that they have a leading underscore. The library will use those
names internally. Weak aliases are used to provide the original names
to the API.

This is only the first part of this change. It is most of the functions
which are implemented in C for all NetBSD ports. Subsequent changes are
to add the same support to the remaining C files, to assembly files, and
to the automagically generated assembly source used for system calls.
When all of the above is done, ports with weak alias support should add
a definition for __weak_alias to <sys/cdefs.h>.
 1.4  13-Jul-1997  christos Fix RCSID's
Remove unused variable
 1.3  04-Mar-1995  cgd branches: 1.3.4;
fix up some RCS Id's i botched.
 1.2  27-Feb-1995  cgd merge with 4.4-Lite, keeping local changes. clean up Ids
 1.1  07-May-1994  cgd branches: 1.1.1;
Initial revision
 1.1.1.1  07-May-1994  cgd branches: 1.1.1.1.4;
various sysctl-related libc functions
 1.1.1.1.4.1  02-May-1995  jtc #include "namespace.h"
 1.3.4.1  19-Sep-1996  jtc snapshot namespace cleanup: gen
 1.10.2.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.12.6.5  29-Dec-2002  thorpej Sync with HEAD.
 1.12.6.4  01-Aug-2002  nathanw Catch up to -current.
 1.12.6.3  22-Mar-2002  nathanw Catch up to -current.
 1.12.6.2  08-Mar-2002  nathanw Catch up to -current.
 1.12.6.1  08-Oct-2001  nathanw Catch up to -current.
 1.23.4.2  23-Mar-2008  matt sync with HEAD
 1.23.4.1  06-Nov-2007  matt sync with HEAD
 1.27.2.1  24-Mar-2008  keiichi sync with head.
 1.29.4.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.33.22.2  28-Nov-2012  riz Pull up following revision(s) (requested by christos in ticket #720):
sys/sys/unistd.h: revision 1.54
lib/libc/gen/sysconf.3: revision 1.41
lib/libc/gen/sysconf.c: revision 1.35
add _SC_PHYS_PAGES
Add _SC_PHYS_PAGES
Add _SC_PHYS_PAGES
 1.33.22.1  09-Aug-2012  jdc Pull up revisions:
src/lib/libc/gen/sysconf.c revision 1.34
src/sys/sys/unistd.h revision 1.53
(requested by martin in ticket #460).

Define _POSIX_SPAWN in unistd.h and also provide its value via sysconf(),
as required by posix since we support posix_spawn().
 1.33.6.2  06-Aug-2008  matt Add support for missing _SC_* constants for sysconf().
From andy dot shevchenko at gmail dot com
 1.33.6.1  06-Aug-2008  matt file sysconf.c was added on branch christos-time_t on 2008-08-06 17:17:05 +0000
 1.33.2.3  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.33.2.2  16-Jan-2013  yamt sync with (a bit old) head
 1.33.2.1  30-Oct-2012  yamt sync with head
 1.34.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.34.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.40.2.1  06-Aug-2016  pgoyette Sync with HEAD
 1.41.16.1  18-Dec-2019  martin Pull up following revision(s) (requested by joerg in ticket #572):

sys/kern/uipc_sem.c: revision 1.56
lib/libc/gen/sysconf.c: revision 1.43

PR 54619: Remove semaphore limit introduce as part of GSoC 2016 with
_SC_SEM_NSEMS_MAX. Report no limit for getconf(3). The ressource is
naturally limited by the backing file descriptor, so no separate limit
is necessary. Keep the accounting for debugging as it is part of the
sysctl ABI exposed by the kernel.
 1.41.14.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.41.14.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed