[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
sysconf.c _SC_SEM_XXX patch
- To: tech_(_at_)_openbsd_(_dot_)_org
- Subject: sysconf.c _SC_SEM_XXX patch
- From: Pailloncy Jean-Gérard <pailloncy_(_at_)_gdr-isis_(_dot_)_enst_(_dot_)_fr>
- Date: Fri, 7 May 2004 01:23:43 +0200
Hi,
I have wrote a very small patch to add _SC_SEM_NSEMS_MAX and
_SC_SEM_VALUE_MAX to sysconf().
I apologize if it is not adequate.
diff -u unistd.old.h unistd.h
--- unistd.old.h Fri May 7 01:05:12 2004
+++ unistd.h Fri May 7 01:06:55 2004
@@ -119,6 +119,9 @@
#define _SC_FSYNC 29
#define _SC_XOPEN_SHM 30
+#define _SC_SEM_NSEMS_MAX 31
+#define _SC_SEM_VALUE_MAX 32
+
#ifdef notyet
/* P1003.1c */
#define _SC_GETGR_R_SIZE_MAX
diff -u sysconf.old.c sysconf.c
--- sysconf.old.c Fri May 7 00:03:45 2004
+++ sysconf.c Fri May 7 00:25:27 2004
@@ -42,6 +42,7 @@
#include <sys/sysctl.h>
#include <sys/time.h>
#include <sys/resource.h>
+#include <sys/sem.h>
#include <errno.h>
#include <unistd.h>
@@ -64,7 +65,7 @@
{
struct rlimit rl;
size_t len;
- int mib[2], value;
+ int mib[3], value;
len = sizeof(value);
@@ -184,6 +185,18 @@
mib[0] = CTL_USER;
mib[1] = USER_POSIX2_UPE;
goto yesno;
+
+/* SEM */
+ case _SC_SEM_NSEMS_MAX:
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_SEMINFO;
+ mib[2] = KERN_SEMINFO_SEMMNS;
+ goto sem;
+ case _SC_SEM_VALUE_MAX:
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_SEMINFO;
+ mib[2] = KERN_SEMINFO_SEMVMX;
+sem: return (sysctl(mib, 3, &value, &len, NULL, 0) == -1 ? -1 :
value);
/* XPG 4.2 */
case _SC_XOPEN_SHM:
Cordialement,
Jean-Gérard Pailloncy
Visit your host, monkey.org