From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: Re: Translate virtual address to physical address Date: Sun, 1 Jan 2012 11:51:27 +0000 Message-ID: <1325418687.24422.36.camel@liuw-desktop> References: <1325368336020-5112670.post@n5.nabble.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1325368336020-5112670.post@n5.nabble.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: lmingcsce Cc: "xen-devel@lists.xensource.com" , wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org On Sat, 2011-12-31 at 21:52 +0000, lmingcsce wrote: > Hi everyone, I'm working on a research project now and encounter a problem > like this: > I establish a new array in the tools directory and pass the address of this > array to the hypervisor. I want to know how can I translate the virtual > address of the array to the machine address. In this way, the hypervisor can > modify the values in this array. > Thanks for your help. > Establishing a new array in the tools *directory*? I presume the "directory" is superfluous. You can take a look at some hypercall implementations, e.g. multicall. Example code can be found at xc_minios.c:minios_privcmd_hypercall and multicall.c:do_multicall . One thing I want to remind you is that you don't have to translate virtual address to machine address before passing it to hypervisor. copy_from_guest can handle that for you. But you do need to define GUEST_HANDLE for your hypercall. (Again, check multicall implementation for details.) Wei.