Skip site navigation (1)Skip section navigation (2)
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>