Author: se
Date: Fri Oct 30 18:48:09 2020
New Revision: 367179
URL: https://svnweb.freebsd.org/changeset/base/367179

Log:
  Add read only sysctl variable user.localbase
  
  The value is provided by the C library as for other sysctl variables in
  the user tree. It is compiled in and returns the value of _PATH_LOCALBASE
  defined in paths.h.
  
  Reviewed by:  imp, scottl
  Differential Revision:        https://reviews.freebsd.org/D27009

Modified:
  head/lib/libc/gen/sysctl.c
  head/sys/kern/kern_mib.c
  head/sys/sys/sysctl.h

Modified: head/lib/libc/gen/sysctl.c
==============================================================================
--- head/lib/libc/gen/sysctl.c  Fri Oct 30 18:22:46 2020        (r367178)
+++ head/lib/libc/gen/sysctl.c  Fri Oct 30 18:48:09 2020        (r367179)
@@ -87,6 +87,15 @@ sysctl(const int *name, u_int namelen, void *oldp, siz
                if (oldp != NULL)
                        memmove(oldp, _PATH_STDPATH, sizeof(_PATH_STDPATH));
                return (0);
+       case USER_LOCALBASE:
+               if (oldp && orig_oldlen < sizeof(_PATH_LOCALBASE)) {
+                       errno = ENOMEM;
+                       return -1;
+               }
+               *oldlenp = sizeof(_PATH_LOCALBASE);
+               if (oldp != NULL)
+                       memmove(oldp, _PATH_LOCALBASE, sizeof(_PATH_LOCALBASE));
+               return(0);
        }
 
        if (oldp && *oldlenp < sizeof(int)) {

Modified: head/sys/kern/kern_mib.c
==============================================================================
--- head/sys/kern/kern_mib.c    Fri Oct 30 18:22:46 2020        (r367178)
+++ head/sys/kern/kern_mib.c    Fri Oct 30 18:48:09 2020        (r367179)
@@ -652,6 +652,8 @@ SYSCTL_INT(_user, USER_STREAM_MAX, stream_max, CTLFLAG
     SYSCTL_NULL_INT_PTR, 0, "Min Maximum number of streams a process may have 
open at one time");
 SYSCTL_INT(_user, USER_TZNAME_MAX, tzname_max, CTLFLAG_RD,
     SYSCTL_NULL_INT_PTR, 0, "Min Maximum number of types supported for 
timezone names");
+SYSCTL_STRING(_user, USER_LOCALBASE, localbase, CTLFLAG_RD,
+    "", 0, "Prefix used to install and locate add-on packages");
 
 #include <sys/vnode.h>
 SYSCTL_INT(_debug_sizeof, OID_AUTO, vnode, CTLFLAG_RD,

Modified: head/sys/sys/sysctl.h
==============================================================================
--- head/sys/sys/sysctl.h       Fri Oct 30 18:22:46 2020        (r367178)
+++ head/sys/sys/sysctl.h       Fri Oct 30 18:48:09 2020        (r367179)
@@ -1070,6 +1070,7 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry);
 #define        USER_POSIX2_UPE         18      /* int: POSIX2_UPE */
 #define        USER_STREAM_MAX         19      /* int: POSIX2_STREAM_MAX */
 #define        USER_TZNAME_MAX         20      /* int: POSIX2_TZNAME_MAX */
+#define        USER_LOCALBASE          21      /* string: _PATH_LOCALBASE */
 
 #define        CTL_P1003_1B_ASYNCHRONOUS_IO            1       /* boolean */
 #define        CTL_P1003_1B_MAPPED_FILES               2       /* boolean */
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to