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
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to