All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Rig Gel <rigelras@gmail.com>, xen-devel@lists.xen.org
Subject: Re: Using Xen's hypercall interface?
Date: Mon, 07 Jul 2014 00:26:02 +0100	[thread overview]
Message-ID: <53B9DB0A.3090608@citrix.com> (raw)
In-Reply-To: <CABUdxx5gcxv9tm9jFBmE0D466YG=5EQ+bVb9LQU4GBBrZhv0dg@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 1796 bytes --]

On 06/07/2014 23:23, Rig Gel wrote:
> Hi all,
>
> - I'm sorry if this is a repost, I was informed that this is the
> correct mailing list only after sending a msg to xen-users - 
>
> I would like to compile a simple ELF which would make a simple a
> hypercall from a guest in order to
> learn a bit more about the Xen Hypercall interface.
> I tried including the hypervisor.h and -I'ing the ./extras/mini-os/
> dir but it seems that I'm missing a few flags or paths in order ot
> make it fully compile correctly 
>
> Can anyone hint or explain a bit what is the appropriate way to link
> against Xen's header files ? 
> I only need hypervisor.h in order to call some hypercalls 
>
> Attached below a sample of my code -
>
> #include <hypervisor.h>
>
> ...
> snip 
> ...
>
> void test_xen_version(int vers) {
>     HYPERVISOR_xen_version(vers);
> }
>
> ( using the xe_version hypercall is just a mere example, I would like
> to just know how to link/compile correctly against the required header
> files/libs )

It is not possible to make hypercalls from userspace directly.  Allowing
such would cause all kinds of security problems.  Linux and other
operating systems a kernel driver which allow hypercalls via ioctl()s on
/dev/xen/privcmd.

You are best starting with libxenctrl which is a thin userspace library
including OS abstraction to make hypercalls.

>From memory, something like:

#include <stdio.h>
#include <xenctrl.h>

int main(void)
{
    xc_interface *xch = xc_interface_open(NULL, NULL, 0);
    int ver = xc_version(xch, XENVER_version, NULL);

    printf("Xen version %d.%d\n", ver >> 16, ver & 0xffff);
    xc_interface_close(xch);
    return 0;
}

and compiled with `gcc foo.c -o foo -I/path/to/xenctrl.h
-L/path/to/libxenctrl.so -lxenctrl`

ought to get you started.

~Andrew

[-- Attachment #1.2: Type: text/html, Size: 4605 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2014-07-06 23:26 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-06 22:23 Using Xen's hypercall interface? Rig Gel
2014-07-06 23:26 ` Andrew Cooper [this message]
     [not found]   ` <CABUdxx7cynbosFFmids7==kLY1kAj8utS8jfWgr3O-UhUrS2dA@mail.gmail.com>
2014-07-07 17:31     ` Rig Gel
2014-07-08 15:03       ` Ian Campbell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53B9DB0A.3090608@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=rigelras@gmail.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.