From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45145) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZUYEY-0006kE-RF for qemu-devel@nongnu.org; Wed, 26 Aug 2015 06:47:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZUYEV-0001ac-7b for qemu-devel@nongnu.org; Wed, 26 Aug 2015 06:47:10 -0400 Received: from mga01.intel.com ([192.55.52.88]:22485) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZUYEV-0001aV-2t for qemu-devel@nongnu.org; Wed, 26 Aug 2015 06:47:07 -0400 References: <1439563931-12352-1-git-send-email-guangrong.xiao@linux.intel.com> <1439563931-12352-11-git-send-email-guangrong.xiao@linux.intel.com> <20150825161135.GE8344@stefanha-thinkpad.redhat.com> From: Xiao Guangrong Message-ID: <55DD97CE.50801@linux.intel.com> Date: Wed, 26 Aug 2015 18:41:18 +0800 MIME-Version: 1.0 In-Reply-To: <20150825161135.GE8344@stefanha-thinkpad.redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 10/18] nvdimm: init the address region used by DSM method List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: ehabkost@redhat.com, kvm@vger.kernel.org, mst@redhat.com, gleb@kernel.org, mtosatti@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com, imammedo@redhat.com, pbonzini@redhat.com, rth@twiddle.net On 08/26/2015 12:11 AM, Stefan Hajnoczi wrote: > On Fri, Aug 14, 2015 at 10:52:03PM +0800, Xiao Guangrong wrote: >> @@ -257,14 +258,91 @@ static void build_nfit_table(GSList *device_list, char *buf) >> } >> } >> >> +struct dsm_buffer { >> + /* RAM page. */ >> + uint32_t handle; >> + uint8_t arg0[16]; >> + uint32_t arg1; >> + uint32_t arg2; >> + union { >> + char arg3[PAGE_SIZE - 3 * sizeof(uint32_t) - 16 * sizeof(uint8_t)]; >> + }; >> + >> + /* MMIO page. */ >> + union { >> + uint32_t notify; >> + char pedding[PAGE_SIZE]; > > s/pedding/padding/ Will fix. > >> + }; >> +}; >> + >> +static ram_addr_t dsm_addr; >> +static size_t dsm_size; >> + >> +static uint64_t dsm_read(void *opaque, hwaddr addr, >> + unsigned size) >> +{ >> + return 0; >> +} >> + >> +static void dsm_write(void *opaque, hwaddr addr, >> + uint64_t val, unsigned size) >> +{ >> +} >> + >> +static const MemoryRegionOps dsm_ops = { >> + .read = dsm_read, >> + .write = dsm_write, >> + .endianness = DEVICE_LITTLE_ENDIAN, >> +}; >> + >> +static int build_dsm_buffer(void) >> +{ >> + MemoryRegion *dsm_ram_mr, *dsm_mmio_mr; >> + ram_addr_t addr;; > > s/;;/;/ Will fix.