Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Nov 2010 20:14:25 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r215315 - in head: lib/libkvm sys/kern sys/sys
Message-ID:  <201011142014.oAEKEP7f092485@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Sun Nov 14 20:14:25 2010
New Revision: 215315
URL: http://svn.freebsd.org/changeset/base/215315

Log:
  Similar to sys/net/vnet.h, define the linker set name for sys/sys/pcpu.h
  as a macro, and use it instead of literal strings.

Modified:
  head/lib/libkvm/kvm.c
  head/lib/libkvm/kvm_pcpu.c
  head/sys/kern/link_elf_obj.c
  head/sys/sys/pcpu.h

Modified: head/lib/libkvm/kvm.c
==============================================================================
--- head/lib/libkvm/kvm.c	Sun Nov 14 19:57:56 2010	(r215314)
+++ head/lib/libkvm/kvm.c	Sun Nov 14 20:14:25 2010	(r215315)
@@ -50,6 +50,7 @@ static char sccsid[] = "@(#)kvm.c	8.2 (B
 #include <sys/stat.h>
 #include <sys/sysctl.h>
 #include <sys/linker.h>
+#include <sys/pcpu.h>
 
 #include <net/vnet.h>
 
@@ -433,7 +434,7 @@ _kvm_nlist(kvm_t *kd, struct nlist *nl, 
 
 		if (error > 0 && _kvm_dpcpu_initialized(kd, initialize))
 			error = kvm_fdnlist_prefix(kd, nl, error,
-			    "pcpu_entry_", _kvm_dpcpu_validaddr);
+			    DPCPU_SYMPREFIX, _kvm_dpcpu_validaddr);
 
 		return (error);
 	}
@@ -473,7 +474,7 @@ again:
 				p->n_value =
 				    _kvm_vnet_validaddr(kd, lookup.symvalue);
 			else if (_kvm_dpcpu_initialized(kd, initialize) &&
-			    !strcmp(prefix, "pcpu_entry_"))
+			    !strcmp(prefix, DPCPU_SYMPREFIX))
 				p->n_value =
 				    _kvm_dpcpu_validaddr(kd, lookup.symvalue);
 			else
@@ -495,7 +496,7 @@ again:
 	}
 	if (error && _kvm_dpcpu_initialized(kd, initialize) && !tried_dpcpu) {
 		tried_dpcpu = 1;
-		prefix = "pcpu_entry_";
+		prefix = DPCPU_SYMPREFIX;
 		goto again;
 	}
 

Modified: head/lib/libkvm/kvm_pcpu.c
==============================================================================
--- head/lib/libkvm/kvm_pcpu.c	Sun Nov 14 19:57:56 2010	(r215314)
+++ head/lib/libkvm/kvm_pcpu.c	Sun Nov 14 20:14:25 2010	(r215315)
@@ -197,9 +197,9 @@ _kvm_dpcpu_init(kvm_t *kd)
 {
 	struct nlist nl[] = {
 #define	NLIST_START_SET_PCPU	0
-		{ "___start_set_pcpu" },
+		{ "___start_" DPCPU_SETNAME },
 #define	NLIST_STOP_SET_PCPU	1
-		{ "___stop_set_pcpu" },
+		{ "___stop_" DPCPU_SETNAME },
 #define	NLIST_DPCPU_OFF		2
 		{ "_dpcpu_off" },
 #define	NLIST_MP_MAXCPUS	3

Modified: head/sys/kern/link_elf_obj.c
==============================================================================
--- head/sys/kern/link_elf_obj.c	Sun Nov 14 19:57:56 2010	(r215314)
+++ head/sys/kern/link_elf_obj.c	Sun Nov 14 20:14:25 2010	(r215315)
@@ -336,7 +336,7 @@ link_elf_link_preload(linker_class_t cls
 				ef->progtab[pb].name =
 				    ef->shstrtab + shdr[i].sh_name;
 			if (ef->progtab[pb].name != NULL && 
-			    !strcmp(ef->progtab[pb].name, "set_pcpu")) {
+			    !strcmp(ef->progtab[pb].name, DPCPU_SETNAME)) {
 				void *dpcpu;
 
 				dpcpu = dpcpu_alloc(shdr[i].sh_size);
@@ -757,7 +757,7 @@ link_elf_load_file(linker_class_t cls, c
 			else
 				ef->progtab[pb].name = "<<NOBITS>>";
 			if (ef->progtab[pb].name != NULL && 
-			    !strcmp(ef->progtab[pb].name, "set_pcpu"))
+			    !strcmp(ef->progtab[pb].name, DPCPU_SETNAME))
 				ef->progtab[pb].addr =
 				    dpcpu_alloc(shdr[i].sh_size);
 #ifdef VIMAGE
@@ -789,7 +789,7 @@ link_elf_load_file(linker_class_t cls, c
 				}
 				/* Initialize the per-cpu or vnet area. */
 				if (ef->progtab[pb].addr != (void *)mapbase &&
-				    !strcmp(ef->progtab[pb].name, "set_pcpu"))
+				    !strcmp(ef->progtab[pb].name, DPCPU_SETNAME))
 					dpcpu_copy(ef->progtab[pb].addr,
 					    shdr[i].sh_size);
 #ifdef VIMAGE
@@ -911,7 +911,7 @@ link_elf_unload_file(linker_file_t file)
 				continue;
 			if (ef->progtab[i].name == NULL)
 				continue;
-			if (!strcmp(ef->progtab[i].name, "set_pcpu"))
+			if (!strcmp(ef->progtab[i].name, DPCPU_SETNAME))
 				dpcpu_free(ef->progtab[i].addr,
 				    ef->progtab[i].size);
 #ifdef VIMAGE

Modified: head/sys/sys/pcpu.h
==============================================================================
--- head/sys/sys/pcpu.h	Sun Nov 14 19:57:56 2010	(r215314)
+++ head/sys/sys/pcpu.h	Sun Nov 14 20:14:25 2010	(r215315)
@@ -42,6 +42,9 @@
 #include <sys/resource.h>
 #include <machine/pcpu.h>
 
+#define	DPCPU_SETNAME		"set_pcpu"
+#define	DPCPU_SYMPREFIX		"pcpu_entry_"
+
 #ifdef _KERNEL
 
 /*
@@ -72,7 +75,7 @@ extern uintptr_t dpcpu_off[];
  */
 #define	DPCPU_NAME(n)		pcpu_entry_##n
 #define	DPCPU_DECLARE(t, n)	extern t DPCPU_NAME(n)
-#define	DPCPU_DEFINE(t, n)	t DPCPU_NAME(n) __section("set_pcpu") __used
+#define	DPCPU_DEFINE(t, n)	t DPCPU_NAME(n) __section(DPCPU_SETNAME) __used
 
 /*
  * Accessors with a given base.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011142014.oAEKEP7f092485>