From patchwork Tue Sep 20 14:54:21 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 9341923 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id CF1D0607D0 for ; Tue, 20 Sep 2016 15:35:14 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BFD3228B2B for ; Tue, 20 Sep 2016 15:35:14 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B36E5295F0; Tue, 20 Sep 2016 15:35:14 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 79C5F28B2B for ; Tue, 20 Sep 2016 15:35:13 +0000 (UTC) Received: from localhost ([::1]:36133 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmN4i-00036c-I4 for patchwork-qemu-devel@patchwork.kernel.org; Tue, 20 Sep 2016 11:35:12 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41976) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmMxs-0006ZG-UI for qemu-devel@nongnu.org; Tue, 20 Sep 2016 11:28:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bmMxn-00088K-24 for qemu-devel@nongnu.org; Tue, 20 Sep 2016 11:28:07 -0400 Received: from mail-dm3nam03on0079.outbound.protection.outlook.com ([104.47.41.79]:2368 helo=NAM03-DM3-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmMxm-00087x-R0 for qemu-devel@nongnu.org; Tue, 20 Sep 2016 11:28:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=2fng20EdWiCX/hLLUKigzRRAJBNRFyH6n3+4jkOeaUI=; b=PrGvROpUQJNbZx6Jd2Y3+C4dd6P28BKwwWhHgmLjOj2/pIXumHi2vhd1ZCjKD4pHBDLbm+lq4On+AocpCDr3sGXU6cIyhMOGcD4nvarXzYG9xjID0btDIysS+kM0uPZxIFJAScraeglRry6j0XhkWbeXftxp0oCl8OvEr1BprmY= Received: from BY1PR0201CA0033.namprd02.prod.outlook.com (10.160.191.171) by BLUPR02MB1683.namprd02.prod.outlook.com (10.162.213.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.629.8; Tue, 20 Sep 2016 14:55:28 +0000 Received: from SN1NAM02FT035.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::206) by BY1PR0201CA0033.outlook.office365.com (2a01:111:e400:4814::43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.629.8 via Frontend Transport; Tue, 20 Sep 2016 14:55:27 +0000 Authentication-Results: spf=fail (sender IP is 149.199.60.96) smtp.mailfrom=xilinx.com; redhat.com; dkim=none (message not signed) header.d=none; redhat.com; dmarc=none action=none header.from=xilinx.com; Received-SPF: Fail (protection.outlook.com: domain of xilinx.com does not designate 149.199.60.96 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.96; helo=xsj-tvapsmtpgw01; Received: from xsj-tvapsmtpgw01 (149.199.60.96) by SN1NAM02FT035.mail.protection.outlook.com (10.152.72.145) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.629.5 via Frontend Transport; Tue, 20 Sep 2016 14:55:24 +0000 Received: from 172-16-1-203.xilinx.com ([172.16.1.203]:50709 helo=xsj-tvapsmtp02.xilinx.com) by xsj-tvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1bmMSB-0008Gu-Nf; Tue, 20 Sep 2016 07:55:23 -0700 Received: from [127.0.0.1] (port=47537 helo=tsj-smtp-dlp1.xlnx.xilinx.com) by xsj-tvapsmtp02.xilinx.com with esmtp (Exim 4.63) (envelope-from ) id 1bmMSB-00074h-Ku; Tue, 20 Sep 2016 07:55:23 -0700 Received: from xsj-tvapsmtp02 (smtptest.xilinx.com [172.16.1.203]) by tsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id u8KEmG9q008981; Tue, 20 Sep 2016 07:48:16 -0700 Received: from [172.19.74.182] (port=57012 helo=xsjalistai50.xilinx.com) by xsj-tvapsmtp02 with esmtp (Exim 4.63) (envelope-from ) id 1bmMSA-00074e-S1; Tue, 20 Sep 2016 07:55:22 -0700 From: Alistair Francis To: , Date: Tue, 20 Sep 2016 07:54:21 -0700 Message-ID: <87de45de7acf02cbe6bae9d6c4d6fb8f3aba4f61.1474331683.git.alistair.francis@xilinx.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: X-RCIS-Action: ALLOW X-TM-AS-MML: disable X-TM-AS-Product-Ver: IMSS-7.1.0.1679-8.0.0.1202-22588.005 X-TM-AS-Result: No--10.507-7.0-31-10 X-imss-scan-details: No--10.507-7.0-31-10 X-TMASE-MatchedRID: +k55+NgUc6YLazoQyrpm0lVN8laWo90MUAjrAJWsTe/K99fyOVK2z5zN 93wt7ZVSIHjnztybxtX4exig1DmiEXi25HfozijkTVa+L3Zgqc43blcgNAu3dt9RlPzeVuQQMCm LSFOvZt312p9DxyfjiscJMWibf14lSc43cIQ0FoT0hv/rD7WVZF7OZ6hrwwnz7mlrq0Hz6U19Db xPux6UnMbdNGd9VfY8gDLqnrRlXrZ8nn9tnqel2DsAVzN+Ov/s8CdTeuqxHdrbU6HC84hsaNNWx 4vdgNrlX0ocGZPSAI8K1IhxY/uXaw== X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.96; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(8676002)(356003)(7846002)(50466002)(9786002)(48376002)(64026002)(81166006)(71366001)(586003)(81156014)(118296001)(50226002)(19580405001)(305945005)(8936002)(47776003)(92566002)(19580395003)(4326007)(33646002)(11100500001)(85426001)(50986999)(5001770100001)(626004)(86362001)(2906002)(87936001)(76176999)(189998001)(5660300001)(2950100001)(5003940100001)(36756003)(105606002)(106466001)(229853001)(77096005)(49343001)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR02MB1683; H:xsj-tvapsmtpgw01; FPR:; SPF:Fail; PTR:unknown-60-96.xilinx.com; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT035; 1:SQqzM3gDTbTnObUed19QBCQTV5ANDm4nKoeC5eDdiHxoEt1FMWRaB8vxX30djc3A2PxcvWt/98+BaH5X2Oj0qQdZCfvgIv864lKNowLuB9pbUpcXqDtdrWDatlxfQRzc5JfSdGAMk4jigotLvD4ADqOaU402P9cBjsBhoB7+GjH0GwuxvgHchO+t87RS3YprHGxiDRyEFqriKQBqGISCwRGlDeeWWUdklGOcY7+aeCddAKLPGYo+HVM67OzpvXmq9m1Jb4Ygpfy2kakvt7OLJ+C/sdgQsBFRKqTD/SXyFNFxViTRGq45fGb54+akAsFMQBAoiIQJ1UQk0VDiyoOUzs0n0BF9mkHeYGwkTbAW9Gll5u1eAlL+I76AFsC6V6GrKNxge2o07Yb0IEZvwy0yN3P1j1CwTMMIMxTjBFjMsfVSSZ2MgY0zuDTFOeL3tde1wrTbTYlKO5zTo/ptbZntdXUVfY1D21VvnNTX3i2L/PiCPNzRmQoPW07/Ed3dX/2U7xw5pxpxeiYgjRmvB24qlHmsbXXANuASsI7MBErOU8qD59A1MgUCvlkbC7eqYKVdnvS3JR9HqaZ9IXpc6puYMS6++6r+sDlpMYptdYbHWXI= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 605928f6-cc27-49b1-2deb-08d3e1662861 X-Microsoft-Exchange-Diagnostics: 1; BLUPR02MB1683; 2:HR++SIMmR//gy2xKRe/i5hqy0d32x04lCnZts7ENbOxB00WMSIyM3Qrq3kCJlnBoczJ1ZV9ZUSbj8T61WpZLAoe0Xo7jWq/OuiKqKO94q6MupiE79koG80DXYSjZyjl3zIEWiv5UeeTCo0fH3qYyO3U7W0qPkv64tDZ5o6fMYpxtbft/WpAYd8+U86Irbl99; 3:NhpJt/Ch3FITm2fe6mbMLJbpMMTz6JZBykoXaF/QF4Jx9ruh/gL+m9VcP+dvhv2V2BFCzZfLV/kY+aRVVtCfKAaGrn0IxsXmN/Hywjp6V4pjpmN91CMg7Mjig8CbSCiys9FC4BMFZWiDsEJAynGolaBMTEl1sSUl5vNix1gOmLB0R2dBZ9depWEKesfN3SWrIK/7uTFnUL1M2SbJCIjp1MKBz06VGmvi11ngsfBaSr4=; 25:89CA+jD0Z/J47aoilGfMjDHLGCaa1CsL53yJDKxDvBVavLVlnlO0myJQVhWGN/P4T2wow/bLLN1CrhWGn1P6cNpo7G/rIRlfXrJ6IatkjIu+4mBSQXWITmQT/+rzw9Y5WdVnz7R+ctXjPw+VJ0Y3g8Y3tjNkmtnW74pcYJlTQk77JsHJ3BVERwi5PL81o8cMELrw8dEBqADbna+hsriANWF2d8JBY/SRthfSmFegK+DR5AhKk65OjjLBHwLXmo0Ulyx9NQzU5GvFA6p3Gw8JzUf4xB8gJSm4oVW8egnRr9eHilOvAJoUWLx8co2guoCmdYBjHhdv7TPysi4g7oyMFpxeLAHYtp+eMtzjEyTbl2jXz+kJp7u98Qhu8625NxHygMYH17Y3j/MGHF2jZ2QxD8qhx3hI1N4Nird/LbfVLYI= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR02MB1683; X-Microsoft-Exchange-Diagnostics: 1; BLUPR02MB1683; 31:NafTMphXZX2dpunAILUbjq+RfKPbG7OzQVPYvEmplKzTzBkHlxPqm4eASFpn9geF8P4lEGQs4+CgFq9taiFHvFZPhic47ngKJ5l696y8m9RIfJx+Tm0Ue5cogBWnurb0T2ET7D0v15q4OuFbyDh4J7/XPGYmsOOAanv1OTQ3bwDgd9jpuA2415+p9jaW2z2eyBTpMtOZ3i2hu7YIonXw/zeZ95jvR6L4iTEoAcysraM=; 20:g7c+qAPfE+cclRnikwrlORn/H8HrVKwYNtnd9ne6sHanvIboSKwbus6l1Jn8iLFPCj1FJfHzJBdWH8jKsklIf3iYszjtD+elnbVbcO0A8DMWnY4cwY9Bpz5i4e3g3f8GxAs+2jQe7T0d+wya7U74X1AssiTlDZ5uK+wTm6vWvwu93c6tNsJ8Qlgi0DC1uupz42VSzNsXPA+Yc9zgsccCK/tiH2RcnyrTzYwle7NSwG0gDtB8/WDZ0VlNBozqHuDTlnXFDst8nF8d5svnGM5nYVyNN/w2qsRRKCTEYEkMNvek5p0v4YWujLr9kwUHxFotOyHATWQVRBcGdki3VKOJLlgJtZNUXGLm5F0anK22E3XawPsUzCR5lXjfTNo7DASEoW0l2UilfXvu6gN3CsEHzCKKpZS9t5TWDxaQzHJRQx6H4qEKWdqGrQctyIefHZvJi3LNjfSxGyZBMXVPiJqzvXiwIiq8LC9d2zzNoDxh2rjQmOQjIy3ulEzwYMGnUQ0p X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(13018025)(13017025)(13015025)(13023025)(13024025)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:BLUPR02MB1683; BCL:0; PCL:0; RULEID:; SRVR:BLUPR02MB1683; X-Microsoft-Exchange-Diagnostics: 1; BLUPR02MB1683; 4:TJ5tcWNQlP1UHn4981aV17MBywJNCED82AL+8dTja70qZ85ua9dN9tQFHwtu0mu2LpbjvL20DJx9kbPu4D8j8zqFwPDg+/Nd5iptVurvghZ81boCytyp0mZkcKg7ouRO30MZbM4lREV3nNfk3npXu9llY59CjXLUhprZRt7/HMufRq7zxvS9bZHtRLPZBxao6qMRUaHN44O+UObUA8clxQxYTjoLWwhBnI3t52sPqR5NqltaAPCqBX17rfWrPakMFx4JyNazHzCyA0FU87Wkgqa/YlhnGSvgaIR16CRh81xUWlBDotsaCiVyGWi8rAO/+1NK/HTlN2OrxMVZquWmFmGKyr5gtf3b0fCU3LwrJdbPlQ5JpepOcJAZWvpOCWBmi8lTY6qzalkMspqD83rXwAZffPbxfVNK4dEs7kOSEAN/wJID0mZQZ0tz+AvTlno/qe1Qv/QUlinjY9grmBxj9HET3kgYIA03W8QdMitGLI7Z/Pe27jWSOIC3+NIVI0cHx+Z79HOF2YAH5VBPeZpx0GO7TT722Rq2gRpvkJtQ0aU= X-Forefront-PRVS: 0071BFA85B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR02MB1683; 23:1V8saaojCgj5wXgokg/f23MzdS3bwfQ9ocidOzYIc?= =?us-ascii?Q?BGczdaUXzQ2O1Gtq8XrMYRayLfgBeYx4nuIf2sOBevuN6IFhG51wy0VseQFJ?= =?us-ascii?Q?Ji1ZJK0jFEei1wKRKxfSTuKG0dtmqJDwBMkYl55pArWYSzUjoEEGD+I4i6Qn?= =?us-ascii?Q?cg6/PTkbK63Fx1Be9PkDT/VqzNz+yxFn6XbNKKZD/fFEe+9lvoGd/ZW72tjP?= =?us-ascii?Q?XrKfCWZebyNN3eq1/N7USkJRV3aUUOvQCPEKCH4sgX7S5jdKNL7KpO3TN4FJ?= =?us-ascii?Q?2wRzDlThWm3sUOGvEYGdfFfEsImMqLiODyfKVwU0rtHG9Sdwm6/jhfFogN2N?= =?us-ascii?Q?OswuYRxEvVbysyCEiarqzVka1BMgNrjRn6FfgFFErrrqp7wNr50dopsxTyKs?= =?us-ascii?Q?jnEuAjvEnprI2EMrGoMg8Q+P/x8ipk7VmNplFyusJzs03o4ddb3BJmD0nSbH?= =?us-ascii?Q?dAppttL6aXZmpIYIYiIoL/7ap3te5ldUpzbcxta7Q7XDRzlxrv3u2OHbvPY7?= =?us-ascii?Q?amV2MeL3iaqwtTzS8mdIEhrr9MIqwIkNf7x/ZyazA5F1c8Rm0zozMhgj/Pwu?= =?us-ascii?Q?Bq8MR67aznzX8GVzJCGfm1wrNYhK88RTWMfWNwVslWeBsPUerET9pMgX2ixT?= =?us-ascii?Q?tz637Q7oQHaZkINnqOLt5TSbUFRd3hZHLvRX0ogV5csAa8wDweR4j1e3bngx?= =?us-ascii?Q?htFfLj4tBY/6XGwDfpH7lgtOPv8fgIe1Uj+VJvMuQZxaKjelqiAWfAI7sE4f?= =?us-ascii?Q?mf0nFDe+t0WYJLts7qj38n5RTkpt1zJGXBRD5eiO5ZDVFjL0hxMk5a1HRaYS?= =?us-ascii?Q?S+fU84DPihJT5lnSywfgact3WUVLEY06qH6i8hhmaa9/OA4jbrSgc1gaoVlO?= =?us-ascii?Q?Tzpos/pS9UrWd4hk0hV0ktZbxhp7V/7lSdCg1ZSZpzKResqKI1DffgsyzzdQ?= =?us-ascii?Q?PTz650cvCRTvZEzyxCJryjg9Mwl19SF1SX44wbNmjMLfjXuw00D9dosc1kd9?= =?us-ascii?Q?BHzjs3ucbd0PscbH0fKv/76w/yhO0ARAtjRT8/plA6s6015lhVRMJ0WI1N5E?= =?us-ascii?Q?RY4BI9TrsZ8qpTnxINHTrDl2sMfmpO1TThRgbQmYaS3fr9JpxPMtUo/EcBrj?= =?us-ascii?Q?z5Qf5IxddFemOmlyaZ0KC9dAWzGRZdSJEo1jQ0gKtkvhHgjBmm9eTJdyYKmw?= =?us-ascii?Q?OOiI+NzevBk220=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR02MB1683; 6:vLuOeZ/sjhM1I/+sYNGIkWt1F2ga6K788+kaItqeQa8mufbdo9+Fw55e1CtudQzRObSX7V9irRJs9Q+wdQXKyWO+CrYA3xj4sMvsetEtYEFiE2KX8nfnuogQhHGKG/OQDWK3YvXabBYAzuuEeMs3nQ9OQMDrY+LBmSyoQbUJU+q7fSZ0pxzqDLxKx0uCTrVcr9L8CsC2BvWUB9GazRgRwBBQVM0NNyw72lDaTtWgCyyIroDPmH2Py7rB1YIBJzD5CZ11pX4iS+P95A1re+MC9mE+5thFaTJHJWkDmVQ99BnkBbI0wRhVxh0XYpubUzmsU9/L+Ed3RzNF7tcZqdG40g==; 5:kjtRySygTyOIUSyQRNJNCRQK1SIb513buiNDiBcU0U9OUv78KMK1i1+YNtEoFdBUs2eWbcrJlrM27KQFFEA0Z4Zduion/ChOyxWtczG+WTE4cLgdgDGd68GaljUCEls49tn9/ITv7BzC0xBUC9puCQ==; 24:kY5IsjuSzD3BMX93f1oMCDYFCee9mcNvKJk8oiuGDs7or2pUzXyb2NVFsmT6gHqyer8vK/VV189xV7CrxvRTOFjnMo9yhKDD4Rr6NLCvL6U=; 7:VBiGk61d/eifNJ6Yj2kpMTNPGMeD9Jdnq0TTFGcQCe76XRW07Xrhj9Li7tJvtxdBM21N+6Yvz7EoPVUpJG+BoP5We8v2v2oj/kQHthYUw0gDVgAop0iuRILW66yjuGWMfbQJNAkinqfAXQtvmgJeo0gl6n1Qhd5x6b0Q80BfR8I7SUe38pyyDTkBC8nbmsvkgoZar7xj7lt/JZTwqEF46BiT54mRo58ok9nmDYHCuLLYCdee8WOrtouep7pC1AsVFzkeWyf2VUh8J0ZQWTsxvqMFrbd0vlddz20cbJvqSHiMVejImy6CM079wNrAJZoO SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2016 14:55:24.6773 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.96]; Helo=[xsj-tvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR02MB1683 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.79 Subject: [Qemu-devel] [PATCH v11 6/8] loader: Add AddressSpace loading support to targphys X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: cov@codeaurora.org, crosthwaitepeter@gmail.com, pbonzini@redhat.com, armbru@redhat.com, alistair.francis@xilinx.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Add a new function load_image_targphys_as() that allows the caller to specify an AddressSpace to use when loading a targphys. The original load_image_targphys() function doesn't have any change in functionality. Signed-off-by: Alistair Francis Reviewed-by: Peter Maydell --- V10: - Add comment about the function in the header file. hw/core/loader.c | 10 ++++++++-- include/hw/loader.h | 22 ++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/hw/core/loader.c b/hw/core/loader.c index 86ed784..6e022b5 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -133,10 +133,16 @@ ssize_t read_targphys(const char *name, return did; } -/* return the size or -1 if error */ int load_image_targphys(const char *filename, hwaddr addr, uint64_t max_sz) { + return load_image_targphys_as(filename, addr, max_sz, NULL); +} + +/* return the size or -1 if error */ +int load_image_targphys_as(const char *filename, + hwaddr addr, uint64_t max_sz, AddressSpace *as) +{ int size; size = get_image_size(filename); @@ -144,7 +150,7 @@ int load_image_targphys(const char *filename, return -1; } if (size > 0) { - rom_add_file_fixed(filename, addr, -1); + rom_add_file_fixed_as(filename, addr, -1, as); } return size; } diff --git a/include/hw/loader.h b/include/hw/loader.h index bce8f43..0381706 100644 --- a/include/hw/loader.h +++ b/include/hw/loader.h @@ -14,8 +14,28 @@ int get_image_size(const char *filename); int load_image(const char *filename, uint8_t *addr); /* deprecated */ ssize_t load_image_size(const char *filename, void *addr, size_t size); + +/**load_image_targphys_as: + * @filename: Path to the image file + * @addr: Address to load the image to + * @max_sz: The maximum size of the image to load + * @as: The AddressSpace to load the ELF to. The value of address_space_memory + * is used if nothing is supplied here. + * + * Load a fixed image into memory. + * + * Returns the size of the loaded image on success, -1 otherwise. + */ +int load_image_targphys_as(const char *filename, + hwaddr addr, uint64_t max_sz, AddressSpace *as); + +/** load_image_targphys: + * Same as load_image_targphys_as(), but doesn't allow the caller to specify + * an AddressSpace. + */ int load_image_targphys(const char *filename, hwaddr, uint64_t max_sz); + /** * load_image_mr: load an image into a memory region * @filename: Path to the image file @@ -179,6 +199,8 @@ void hmp_info_roms(Monitor *mon, const QDict *qdict); rom_add_file(_f, NULL, 0, _i, false, _mr, NULL) #define rom_add_file_as(_f, _as, _i) \ rom_add_file(_f, NULL, 0, _i, false, NULL, _as) +#define rom_add_file_fixed_as(_f, _a, _i, _as) \ + rom_add_file(_f, NULL, _a, _i, false, NULL, _as) #define rom_add_blob_fixed_as(_f, _b, _l, _a, _as) \ rom_add_blob(_f, _b, _l, _l, _a, NULL, NULL, _as)