svn commit: r227384 - in head/sys: kern sys tools
Ed Schouten
ed at FreeBSD.org
Wed Nov 9 11:00:30 UTC 2011
Author: ed
Date: Wed Nov 9 11:00:29 2011
New Revision: 227384
URL: http://svn.freebsd.org/changeset/base/227384
Log:
Simplify the code emitted by makeobjops.awk slightly.
Just place the default kobj_method inside the kobjop_desc structure.
There's no need to give these kobj_methods their own symbol. This shaves
off 10 KB of a GENERIC kernel binary.
Modified:
head/sys/kern/subr_kobj.c
head/sys/sys/kobj.h
head/sys/tools/makeobjops.awk
Modified: head/sys/kern/subr_kobj.c
==============================================================================
--- head/sys/kern/subr_kobj.c Wed Nov 9 09:15:57 2011 (r227383)
+++ head/sys/kern/subr_kobj.c Wed Nov 9 11:00:29 2011 (r227384)
@@ -251,7 +251,7 @@ kobj_lookup_method(kobj_class_t cls,
ce = kobj_lookup_method_mi(cls, desc);
if (!ce)
- ce = desc->deflt;
+ ce = &desc->deflt;
*cep = ce;
return ce;
}
Modified: head/sys/sys/kobj.h
==============================================================================
--- head/sys/sys/kobj.h Wed Nov 9 09:15:57 2011 (r227383)
+++ head/sys/sys/kobj.h Wed Nov 9 11:00:29 2011 (r227384)
@@ -86,7 +86,7 @@ struct kobj_ops {
struct kobjop_desc {
unsigned int id; /* unique ID */
- kobj_method_t *deflt; /* default implementation */
+ kobj_method_t deflt; /* default implementation */
};
/*
Modified: head/sys/tools/makeobjops.awk
==============================================================================
--- head/sys/tools/makeobjops.awk Wed Nov 9 09:15:57 2011 (r227383)
+++ head/sys/tools/makeobjops.awk Wed Nov 9 11:00:29 2011 (r227384)
@@ -306,13 +306,8 @@ function handle_method (static, doc)
printh(format_line(prototype argument_list ");",
line_width, length(prototype)));
- # Print out the method desc
- printc("static const struct kobj_method " mname "_method_default = {");
- printc("\t&" mname "_desc, (kobjop_t) " default_function);
- printc("};\n");
-
printc("struct kobjop_desc " mname "_desc = {");
- printc("\t0, &" mname "_method_default");
+ printc("\t0, { &" mname "_desc, (kobjop_t)" default_function " }");
printc("};\n");
# Print out the method itself
More information about the svn-src-head
mailing list