From patchwork Fri Jun 26 16:42:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe de Dinechin X-Patchwork-Id: 279291 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 35F0EC433DF for ; Fri, 26 Jun 2020 16:45:29 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F1E9E20781 for ; Fri, 26 Jun 2020 16:45:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="CnugYPWn" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F1E9E20781 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:36524 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jorTk-00017c-50 for qemu-devel@archiver.kernel.org; Fri, 26 Jun 2020 12:45:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57968) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jorRr-0005ji-2L for qemu-devel@nongnu.org; Fri, 26 Jun 2020 12:43:31 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:22438 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jorRp-0006vT-9y for qemu-devel@nongnu.org; Fri, 26 Jun 2020 12:43:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593189808; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XEuvMOyRqY2e7EBWzIG1Pe1q8IybZJxuzuk4WHyvnvg=; b=CnugYPWnTLcf7R62AvwtHugIBebNIpfYqokXnfS9e5vVzlJy+qd0lYXLvPDWkYMjheAcYd WPzHwUuUTX2InO2rWICYNMklOHngdtyNOWoFkbKCMWizKZFZyGkFE9BeL87Ow73o2f5Y42 Nvkvk9jxR+r3YGMeUpl1EAKsAfrZGlc= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-147-LH_W75RrOQa3P1-FWi0faw-1; Fri, 26 Jun 2020 12:43:23 -0400 X-MC-Unique: LH_W75RrOQa3P1-FWi0faw-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 52F8718585B2; Fri, 26 Jun 2020 16:43:22 +0000 (UTC) Received: from turbo.com (ovpn-112-91.ams2.redhat.com [10.36.112.91]) by smtp.corp.redhat.com (Postfix) with ESMTP id B9F8C5C1BB; Fri, 26 Jun 2020 16:43:19 +0000 (UTC) From: Christophe de Dinechin To: qemu-devel@nongnu.org Subject: [PATCH 01/10] modules: Provide macros making it easier to identify module exports Date: Fri, 26 Jun 2020 18:42:58 +0200 Message-Id: <20200626164307.3327380-2-dinechin@redhat.com> In-Reply-To: <20200626164307.3327380-1-dinechin@redhat.com> References: <20200626164307.3327380-1-dinechin@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=207.211.31.120; envelope-from=dinechin@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/26 01:49:42 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , "Michael S. Tsirkin" , qemu-trivial@nongnu.org, Cleber Rosa , Michael Tokarev , Laurent Vivier , "Dr. David Alan Gilbert" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Paolo Bonzini , Richard Henderson Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" In order to facilitate the move of large chunks of functionality to load modules, it is simpler to create a wrapper with the same name that simply relays the implementation. For efficiency, this is typically done using inline functions in the header for the corresponding functionality. In that case, we rename the actual implementation by appending _implementation to its name. This makes it easier to select which function you want to put a breakpoint on. Signed-off-by: Christophe de Dinechin --- include/qemu/module.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/include/qemu/module.h b/include/qemu/module.h index 011ae1ae76..1922a0293c 100644 --- a/include/qemu/module.h +++ b/include/qemu/module.h @@ -39,6 +39,30 @@ static void __attribute__((constructor)) do_qemu_init_ ## function(void) \ } #endif +#ifdef CONFIG_MODULES +/* Identify which functions are replaced by a callback stub */ +#ifdef MODULE_STUBS +#define MODIFACE(Ret,Name,Args) \ + Ret (*Name)Args; \ + extern Ret Name##_implementation Args +#else /* !MODULE_STUBS */ +#define MODIFACE(Ret,Name,Args) \ + extern Ret (*Name)Args; \ + extern Ret Name##_implementation Args +#endif /* MODULE_STUBS */ + +#define MODIMPL(Ret,Name,Args) \ + static void __attribute__((constructor)) Name##_register(void) \ + { \ + Name = Name##_implementation; \ + } \ + Ret Name##_implementation Args +#else /* !CONFIG_MODULES */ +/* When not using a module, such functions are called directly */ +#define MODIFACE(Ret,Name,Args) Ret Name Args +#define MODIMPL(Ret,Name,Args) Ret Name Args +#endif /* CONFIG_MODULES */ + typedef enum { MODULE_INIT_MIGRATION, MODULE_INIT_BLOCK, From patchwork Fri Jun 26 16:43:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe de Dinechin X-Patchwork-Id: 279284 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BC2A2C433E0 for ; Fri, 26 Jun 2020 16:53:01 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 88212206BE for ; Fri, 26 Jun 2020 16:53:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="XG+4hjFE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 88212206BE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:38746 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jorb2-0006jR-NL for qemu-devel@archiver.kernel.org; Fri, 26 Jun 2020 12:53:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58120) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jorSB-0006N3-Ju for qemu-devel@nongnu.org; Fri, 26 Jun 2020 12:43:51 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:40024 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jorS9-00072L-Vm for qemu-devel@nongnu.org; Fri, 26 Jun 2020 12:43:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593189828; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cHmWsD7TdMBnDkwEPK2MWxr1O4ADw/p/CSafcY/zKvM=; b=XG+4hjFEnk+8P6pB4nCOSVl3WkKsNSjhnLBzipDTRbnE6ysgYGWq4EhsFd3rtn23Rt1Vn0 PwqNjLgG3Vdg0OCtqN96fw3TV+5wqeMJMd3mc8cLpLj85WaAs1QNyvo2XymO5XoHP5i22Q d4EdoJE2j1f9YyEyIdi9An3AeNHgij4= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-248-CY1vl2BQP-ybxKli0_eT7Q-1; Fri, 26 Jun 2020 12:43:44 -0400 X-MC-Unique: CY1vl2BQP-ybxKli0_eT7Q-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5821EEC1B3; Fri, 26 Jun 2020 16:43:43 +0000 (UTC) Received: from turbo.com (ovpn-112-91.ams2.redhat.com [10.36.112.91]) by smtp.corp.redhat.com (Postfix) with ESMTP id B4AAE5C1BB; Fri, 26 Jun 2020 16:43:40 +0000 (UTC) From: Christophe de Dinechin To: qemu-devel@nongnu.org Subject: [PATCH 05/10] build: Avoid build failure when building drivers as modules Date: Fri, 26 Jun 2020 18:43:02 +0200 Message-Id: <20200626164307.3327380-6-dinechin@redhat.com> In-Reply-To: <20200626164307.3327380-1-dinechin@redhat.com> References: <20200626164307.3327380-1-dinechin@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=205.139.110.120; envelope-from=dinechin@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/26 01:55:55 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , "Michael S. Tsirkin" , qemu-trivial@nongnu.org, Cleber Rosa , Michael Tokarev , Laurent Vivier , "Dr. David Alan Gilbert" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Paolo Bonzini , Richard Henderson Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Gerd Hoffmann Signed-off-by: Christophe de Dinechin --- Makefile.objs | 1 + Makefile.target | 7 +++++++ hw/Makefile.objs | 1 + 3 files changed, 9 insertions(+) diff --git a/Makefile.objs b/Makefile.objs index e38768c8d5..6703353493 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -86,6 +86,7 @@ endif # CONFIG_SOFTMMU # Target-independent parts used in system and user emulation common-obj-y += cpus-common.o common-obj-y += hw/ +common-obj-m += hw/ common-obj-y += qom/ common-obj-y += disas/ diff --git a/Makefile.target b/Makefile.target index 8ed1eba95b..3f3b5ee058 100644 --- a/Makefile.target +++ b/Makefile.target @@ -179,6 +179,13 @@ endif # CONFIG_SOFTMMU dummy := $(call unnest-vars,,obj-y) all-obj-y := $(obj-y) +# +# common-obj-m has some crap here, probably as side effect from +# filling obj-y. Clear it. Fixes suspicious dependency errors when +# building devices as modules. +# +common-obj-m := + include $(SRC_PATH)/Makefile.objs dummy := $(call unnest-vars,.., \ authz-obj-y \ diff --git a/hw/Makefile.objs b/hw/Makefile.objs index 4cbe5e4e57..d6d387b74b 100644 --- a/hw/Makefile.objs +++ b/hw/Makefile.objs @@ -43,4 +43,5 @@ devices-dirs-y += smbios/ endif common-obj-y += $(devices-dirs-y) +common-obj-m := display/ obj-y += $(devices-dirs-y) From patchwork Fri Jun 26 16:43:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe de Dinechin X-Patchwork-Id: 279282 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 15903C433DF for ; Fri, 26 Jun 2020 16:58:17 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D4702206BE for ; Fri, 26 Jun 2020 16:58:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="NDlQ6Fm1" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D4702206BE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:57408 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jorg8-0007T1-0r for qemu-devel@archiver.kernel.org; Fri, 26 Jun 2020 12:58:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58566) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jorT7-00006l-9R for qemu-devel@nongnu.org; Fri, 26 Jun 2020 12:44:49 -0400 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:57551 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jorT5-0007MA-JY for qemu-devel@nongnu.org; Fri, 26 Jun 2020 12:44:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593189886; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=THjSHFXW5OWYQXUjbOgTZCQR9lPztYkWqZ/Y57Uc3s8=; b=NDlQ6Fm1dnszwt0dgCneIpqFaLNXGLY6kAK6WrFkewOr7aP1OpG/HJlXF0i9Xmo+9lOWH+ FbeALTopmPjYAO5cXahFfWDUyvj5+iBi2knc9jkSVliB1B+GNWvYpIsExc4E38igEUTRpa 9I1n8JgysLx9QOIGxjfBhZtwdtjlrb8= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-259-p7x5DZ_xPSSBFUlrg42wsg-1; Fri, 26 Jun 2020 12:44:45 -0400 X-MC-Unique: p7x5DZ_xPSSBFUlrg42wsg-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 03AFA805EEF; Fri, 26 Jun 2020 16:44:44 +0000 (UTC) Received: from turbo.com (ovpn-112-91.ams2.redhat.com [10.36.112.91]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6FA1D1757A; Fri, 26 Jun 2020 16:44:15 +0000 (UTC) From: Christophe de Dinechin To: qemu-devel@nongnu.org Subject: [PATCH 10/10] REMOVE: Instrumentation to show the module functions being replaced Date: Fri, 26 Jun 2020 18:43:07 +0200 Message-Id: <20200626164307.3327380-11-dinechin@redhat.com> In-Reply-To: <20200626164307.3327380-1-dinechin@redhat.com> References: <20200626164307.3327380-1-dinechin@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=207.211.31.81; envelope-from=dinechin@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/26 03:23:21 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , "Michael S. Tsirkin" , qemu-trivial@nongnu.org, Cleber Rosa , Michael Tokarev , Laurent Vivier , "Dr. David Alan Gilbert" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Paolo Bonzini , Richard Henderson Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Christophe de Dinechin --- include/qemu/module.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/qemu/module.h b/include/qemu/module.h index 1922a0293c..8d6e10ba81 100644 --- a/include/qemu/module.h +++ b/include/qemu/module.h @@ -14,10 +14,13 @@ #ifndef QEMU_MODULE_H #define QEMU_MODULE_H +#include "trace/recorder.h" #define DSO_STAMP_FUN glue(qemu_stamp, CONFIG_STAMP) #define DSO_STAMP_FUN_STR stringify(DSO_STAMP_FUN) +RECORDER_DECLARE(modules); + #ifdef BUILD_DSO void DSO_STAMP_FUN(void); /* This is a dummy symbol to identify a loaded DSO as a QEMU module, so we can @@ -55,6 +58,7 @@ static void __attribute__((constructor)) do_qemu_init_ ## function(void) \ static void __attribute__((constructor)) Name##_register(void) \ { \ Name = Name##_implementation; \ + record(modules, "Setting " #Name " to %p", Name); \ } \ Ret Name##_implementation Args #else /* !CONFIG_MODULES */