PDA

View Full Version : code cleanup


aavzz
May 7th, 2009, 18:22
Hello, everybody

Some code cleanup in sys/jail.h and lib/libkvm/kvm_proc.c can be done.

Problem:

sys/jail.h defines struct prison, which depends on sys/_lock.h, sys/_mutex.h, sys/_task.h, sys/queue.h. These dependencies are protected by _KERNEL, but the struct prison itself is given away to those, defining either _KERNEL or _WANT_PRISON. So, if one includes sys/jail.h from userland (having defined _WANT_PRISON), it gets underdefined struct prison and has to include it's dependencies, which is counterincapsulative.

Impact:

struct prison is included from userland (with _WANT_PRISON) only in lib/libkvm/kvm_proc.c, which also includes struct prison's dependencies.

Solution:

1. sys/jail.c : Move includes for sys/_mutex.h, sys/_lock.h, sys/_task.h, sys/queue.h closer to struct prison (under _WANT_PRISON).
2. lib/libkvm/kvm_proc.c: Remove includes for sys/_mutex, sys/_lock.h, sys/_task.h completely.

Since lib/libkvm/kvm_proc.c has parts, dependent on sys/queue.h include for it should not be removed.


Here is the patch (cd SRCROOT/..; patch <patchfile):

---------------cut here------------------------
diff -uBrN src/lib/libkvm/kvm_proc.c src.modified/lib/libkvm/kvm_proc.c
--- src/lib/libkvm/kvm_proc.c 2008-11-29 17:32:14.000000000 +0300
+++ src.modified/lib/libkvm/kvm_proc.c 2009-05-06 23:42:42.000000000 +0400
@@ -51,9 +51,6 @@
#define _WANT_UCRED /* make ucred.h give us 'struct ucred' */
#include <sys/ucred.h>
#include <sys/queue.h>
-#include <sys/_lock.h>
-#include <sys/_mutex.h>
-#include <sys/_task.h>
#include <sys/cpuset.h>
#include <sys/user.h>
#include <sys/proc.h>
diff -uBrN src/sys/sys/jail.h src.modified/sys/sys/jail.h
--- src/sys/sys/jail.h 2009-05-05 09:49:08.000000000 +0400
+++ src.modified/sys/sys/jail.h 2009-05-06 23:35:00.000000000 +0400
@@ -120,11 +120,7 @@

#else /* _KERNEL */

-#include <sys/queue.h>
#include <sys/sysctl.h>
-#include <sys/_lock.h>
-#include <sys/_mutex.h>
-#include <sys/_task.h>

#define JAIL_MAX 999999

@@ -135,7 +131,11 @@

#if defined(_KERNEL) || defined(_WANT_PRISON)

+#include <sys/queue.h>
#include <sys/osd.h>
+#include <sys/_lock.h>
+#include <sys/_mutex.h>
+#include <sys/_task.h>

struct cpuset;
---------------end of patch-------------------

lme@
May 9th, 2009, 14:49
You'd better post this on the hackers @ freebsd.org (http://lists.freebsd.org/mailman/listinfo/freebsd-hackers) mailing list.