Date: Wed, 8 Nov 2006 20:23:09 -0500 From: Jung-uk Kim <jkim@FreeBSD.org> To: freebsd-emulation@FreeBSD.org Subject: [PATCH] Two new linprocfs IPC entries Message-ID: <200611082023.12907.jkim@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
This patch adds /proc/sys/kernel/msgmni and /proc/sys/kernel/sem
entries. This fixes LTP msgget03 and semget05 tests.
Jung-uk Kim
[-- Attachment #2 --]
--- src/sys/compat/linprocfs/linprocfs.c.orig Mon Oct 30 08:56:58 2006
+++ src/sys/compat/linprocfs/linprocfs.c Wed Nov 8 20:01:54 2006
@@ -925,6 +925,24 @@
}
/*
+ * Filler function for proc/sys/kernel/msgmni
+ */
+static int
+linprocfs_domsgmni(PFS_FILL_ARGS)
+{
+ int msgmni;
+ size_t size;
+
+ size = sizeof(msgmni);
+ if (kernel_sysctlbyname(td, "kern.ipc.msgmni", &msgmni, &size,
+ 0, 0, 0, 0) != 0)
+ msgmni = 0;
+ sbuf_printf(sb, "%i\n", msgmni);
+
+ return (0);
+}
+
+/*
* Filler function for proc/sys/kernel/pid_max
*/
static int
@@ -937,6 +955,44 @@
}
/*
+ * Filler function for proc/sys/kernel/sem
+ */
+static int
+linprocfs_dosem(PFS_FILL_ARGS)
+{
+ int semmsl, semmns, semopm, semmni;
+ size_t size;
+
+ /* Field 1: SEMMSL */
+ size = sizeof(semmsl);
+ if (kernel_sysctlbyname(td, "kern.ipc.semmsl", &semmsl, &size,
+ 0, 0, 0, 0) != 0)
+ semmsl = 0;
+
+ /* Field 2: SEMMNS */
+ size = sizeof(semmns);
+ if (kernel_sysctlbyname(td, "kern.ipc.semmns", &semmns, &size,
+ 0, 0, 0, 0) != 0)
+ semmns = 0;
+
+ /* Field 3: SEMOPM */
+ size = sizeof(semopm);
+ if (kernel_sysctlbyname(td, "kern.ipc.semopm", &semopm, &size,
+ 0, 0, 0, 0) != 0)
+ semopm = 0;
+
+ /* Field 4: SEMMNI */
+ size = sizeof(semmni);
+ if (kernel_sysctlbyname(td, "kern.ipc.semmni", &semmni, &size,
+ 0, 0, 0, 0) != 0)
+ semmni = 0;
+
+ sbuf_printf(sb, "%i %i %i %i\n", semmsl, semmns, semopm, semmni);
+
+ return (0);
+}
+
+/*
* Filler function for proc/scsi/device_info
*/
static int
@@ -1080,7 +1136,11 @@
dir = pfs_create_dir(root, "sys", NULL, NULL, 0);
/* /proc/sys/kernel/... */
dir = pfs_create_dir(dir, "kernel", NULL, NULL, 0);
+ pfs_create_file(dir, "msgmni", &linprocfs_domsgmni,
+ NULL, NULL, PFS_RD);
pfs_create_file(dir, "pid_max", &linprocfs_dopid_max,
+ NULL, NULL, PFS_RD);
+ pfs_create_file(dir, "sem", &linprocfs_dosem,
NULL, NULL, PFS_RD);
return (0);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200611082023.12907.jkim>
