From owner-svn-src-head@FreeBSD.ORG Mon Jul 20 07:50:51 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E465010656B3; Mon, 20 Jul 2009 07:50:50 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C75448FC13; Mon, 20 Jul 2009 07:50:50 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n6K7ooUA070053; Mon, 20 Jul 2009 07:50:50 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n6K7ooPM070050; Mon, 20 Jul 2009 07:50:50 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200907200750.n6K7ooPM070050@svn.freebsd.org> From: Robert Watson Date: Mon, 20 Jul 2009 07:50:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r195778 - in head/sys: kern net X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Jul 2009 07:50:51 -0000 Author: rwatson Date: Mon Jul 20 07:50:50 2009 New Revision: 195778 URL: http://svn.freebsd.org/changeset/base/195778 Log: Add macros VNET_SETNAME and VNET_SYMPREFIX, and expose to userspace if _WANT_VNET is defined. This way we don't need separate definitions in libkvm. Reviewed by: bz Approved by: re (vimage blanket) Modified: head/sys/kern/link_elf_obj.c head/sys/net/vnet.h Modified: head/sys/kern/link_elf_obj.c ============================================================================== --- head/sys/kern/link_elf_obj.c Mon Jul 20 06:12:23 2009 (r195777) +++ head/sys/kern/link_elf_obj.c Mon Jul 20 07:50:50 2009 (r195778) @@ -350,7 +350,7 @@ link_elf_link_preload(linker_class_t cls ef->progtab[pb].addr = dpcpu; #ifdef VIMAGE } else if (ef->progtab[pb].name != NULL && - !strcmp(ef->progtab[pb].name, "set_vnet")) { + !strcmp(ef->progtab[pb].name, VNET_SETNAME)) { void *vnet_data; vnet_data = vnet_data_alloc(shdr[i].sh_size); @@ -756,7 +756,7 @@ link_elf_load_file(linker_class_t cls, c dpcpu_alloc(shdr[i].sh_size); #ifdef VIMAGE else if (ef->progtab[pb].name != NULL && - !strcmp(ef->progtab[pb].name, "set_vnet")) + !strcmp(ef->progtab[pb].name, VNET_SETNAME)) ef->progtab[pb].addr = vnet_data_alloc(shdr[i].sh_size); #endif @@ -789,7 +789,7 @@ link_elf_load_file(linker_class_t cls, c #ifdef VIMAGE else if (ef->progtab[pb].addr != (void *)mapbase && - !strcmp(ef->progtab[pb].name, "set_vnet")) + !strcmp(ef->progtab[pb].name, VNET_SETNAME)) vnet_data_copy(ef->progtab[pb].addr, shdr[i].sh_size); #endif @@ -909,7 +909,7 @@ link_elf_unload_file(linker_file_t file) dpcpu_free(ef->progtab[i].addr, ef->progtab[i].size); #ifdef VIMAGE - else if (!strcmp(ef->progtab[i].name, "set_vnet")) + else if (!strcmp(ef->progtab[i].name, VNET_SETNAME)) vnet_data_free(ef->progtab[i].addr, ef->progtab[i].size); #endif Modified: head/sys/net/vnet.h ============================================================================== --- head/sys/net/vnet.h Mon Jul 20 06:12:23 2009 (r195777) +++ head/sys/net/vnet.h Mon Jul 20 07:50:50 2009 (r195778) @@ -37,19 +37,26 @@ #ifndef _NET_VNET_H_ #define _NET_VNET_H_ +#if defined(_KERNEL) || defined(_WANT_VNET) + +#define VNET_SETNAME "set_vnet" +#define VNET_SYMPREFIX "vnet_entry_" + +#endif + #ifdef _KERNEL #ifdef VIMAGE #if defined(__arm__) -__asm__(".section set_vnet, \"aw\", %progbits"); +__asm__(".section " VNET_SETNAME ", \"aw\", %progbits"); #else -__asm__(".section set_vnet, \"aw\", @progbits"); +__asm__(".section " VNET_SETNAME ", \"aw\", @progbits"); #endif __asm__(".previous"); #define VNET_NAME(n) vnet_entry_##n #define VNET_DECLARE(t, n) extern t VNET_NAME(n) -#define VNET_DEFINE(t, n) t VNET_NAME(n) __section("set_vnet") __used +#define VNET_DEFINE(t, n) t VNET_NAME(n) __section(VNET_SETNAME) __used #define _VNET_PTR(b, n) (__typeof(VNET_NAME(n))*) \ ((b) + (uintptr_t)&VNET_NAME(n))