Date: Wed, 9 Nov 2011 11:00:30 +0000 (UTC) From: Ed Schouten <ed@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r227384 - in head/sys: kern sys tools Message-ID: <201111091100.pA9B0UDx079834@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201111091100.pA9B0UDx079834>