From mboxrd@z Thu Jan 1 00:00:00 1970 From: david Subject: Re: accessing xen headers from dom0 kernel module Date: Wed, 29 Dec 2010 19:44:05 +0100 Message-ID: <4D1B8175.9000600@gmx.at> References: <4D0F9100.8020003@gmx.at> <1292925738.4500.1371.camel@zakaz.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1292925738.4500.1371.camel@zakaz.uk.xensource.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: Ian Campbell Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On 12/21/2010 11:02 AM, Ian Campbell wrote: > On Mon, 2010-12-20 at 17:23 +0000, david wrote: >> hi there, >> >> I'm not very familiar with programming kernel modules, so I have a short >> question about it. >> Is it possible to use functions defined the in xen/include/ header files >> of the xen hypervisor in a dom0 kernel-module? >> I think my dom0 kernel does not export the required symbols to use this >> functions, so it will not work, right? > > The interfaces defined in xen/include are internal to the hypervisor and > are not available to guests. In particular a guest can never call a > hypervisor symbol directly as you seem to be asking. > > The exception to this is xen/include/public which contains the guest > (including dom0) hypercall interface (and some other shared-memory data > structures). A hypercall is a trap somewhat analogous to a system call > except it is from guest->hypervisor rather than userspace->kernel. They > are invoked by calling into an offset within the hypercall page (a > special page populated with the correct trap instruction for the > architecture). > > Most (all?) guests do not build directly against the headers in the Xen > source tree but instead import a copy into their own source, adjusting > for local coding style etc. In Linux these interface headers are in > include/xen/interface. Linux also defines it's own higher level > interfaces to hypercalls (convenience functions and the like), these are > generally in include/xen or arch/x86/include/asm/xen. > > Ian. > > That's exactly what I wanted to know. Thanks for your fast response. david