PERFORCE change 109654 for review
Jung-uk Kim
jkim at FreeBSD.org
Thu Nov 9 23:44:09 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=109654
Change 109654 by jkim at jkim_hammer on 2006/11/09 23:43:53
Add two linprocfs entries for Linux IPC:
/proc/sys/kernel/msgmni -> kern.ipc.msgmni
/proc/sys/kernel/sem -> kern.ipc.semmsl
kern.ipc.semmns
kern.ipc.semopm
kern.ipc.semmni
This fixes LTP test case msgget03 and semget05 for now.
msgctl08 and msgctl09 also use /proc/sys/kernel/msgmni but the tests
fail because Linux's ipcs(1) fails with an unknown reason:
%/usr/compat/linux/usr/bin/ipcs -q
kernel not configured for message queues
Affected files ...
.. //depot/projects/linuxolator/src/sys/compat/linprocfs/linprocfs.c#6 edit
Differences ...
==== //depot/projects/linuxolator/src/sys/compat/linprocfs/linprocfs.c#6 (text+ko) ====
@@ -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,8 +1136,12 @@
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);
}
More information about the p4-projects
mailing list