about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>2019-08-28 10:02:29 +0900
committerJun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>2019-08-28 10:02:29 +0900
commitb82c24801f5917f2975e80729a73a2890382d267 (patch)
tree7d35c4fa1e73c6609715d51811bb3ad08c1a71f2
parent3da3fe770ade636d14438417b2c50b57658d1055 (diff)
downloadzsh-b82c24801f5917f2975e80729a73a2890382d267.tar.gz
zsh-b82c24801f5917f2975e80729a73a2890382d267.tar.xz
zsh-b82c24801f5917f2975e80729a73a2890382d267.zip
44710: support RLIMIT_UMTXP on FreeBSD
-rw-r--r--ChangeLog3
-rw-r--r--Src/Builtins/rlimits.awk1
-rw-r--r--Src/Builtins/rlimits.c11
-rw-r--r--configure.ac1
4 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c34a50202..59f4f0c82 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2019-08-28  Jun-ichi Takimoto  <takimoto-j@kba.biglobe.ne.jp>
 
+	* 44710: Src/Builtins/rlimits.awk, Src/Builtins/rlimits.c,
+	configure.ac: support RLIMIT_UMTXP on FreeBSD
+
 	* 44709: Src/zsh_system.h: incluce sys/capability.h only if
 	HAVE_CAP_GET_PROC is defined
 
diff --git a/Src/Builtins/rlimits.awk b/Src/Builtins/rlimits.awk
index fe2d0e931..e9c576c66 100644
--- a/Src/Builtins/rlimits.awk
+++ b/Src/Builtins/rlimits.awk
@@ -59,6 +59,7 @@ BEGIN {limidx = 0}
 	    if (limnam == "NPTS")    { msg[limnum] = "Npseudoterminals" }
 	    if (limnam == "SWAP")    { msg[limnum] = "Mswapsize" }
 	    if (limnam == "KQUEUES") { msg[limnum] = "Nkqueues" }
+	    if (limnam == "UMTXP")   { msg[limnum] = "Numtxp" }
         }
     }
 }
diff --git a/Src/Builtins/rlimits.c b/Src/Builtins/rlimits.c
index 29f97b41d..6b552f3a9 100644
--- a/Src/Builtins/rlimits.c
+++ b/Src/Builtins/rlimits.c
@@ -413,6 +413,12 @@ printulimit(char *nam, int lim, int hard, int head)
 	    printf("-k: kqueues                         ");
 	break;
 # endif /* HAVE_RLIMIT_KQUEUES */
+# ifdef HAVE_RLIMIT_UMTXP
+    case RLIMIT_UMTXP:
+	if (head)
+	    printf("-o: umtx shared locks               ");
+	break;
+# endif /* HAVE_RLIMIT_UMTXP */
     default:
 	if (head)
 	    printf("-N %2d:                              ", lim);
@@ -895,6 +901,11 @@ bin_ulimit(char *name, char **argv, UNUSED(Options ops), UNUSED(int func))
 		    res = RLIMIT_PTHREAD;
 		    break;
 # endif
+# ifdef HAVE_RLIMIT_UMTXP
+		case 'o':
+		    res = RLIMIT_UMTXP;
+		    break;
+# endif
 		default:
 		    /* unrecognised limit */
 		    zwarnnam(name, "bad option: -%c", *options);
diff --git a/configure.ac b/configure.ac
index 9ccf17b84..b31b1d958 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1880,6 +1880,7 @@ zsh_LIMIT_PRESENT(RLIMIT_POSIXLOCKS)
 zsh_LIMIT_PRESENT(RLIMIT_NPTS)
 zsh_LIMIT_PRESENT(RLIMIT_SWAP)
 zsh_LIMIT_PRESENT(RLIMIT_KQUEUES)
+zsh_LIMIT_PRESENT(RLIMIT_UMTXP)
 
 AH_TEMPLATE([RLIMIT_VMEM_IS_RSS],
 [Define to 1 if RLIMIT_VMEM and RLIMIT_RSS both exist and are equal.])