Re: [Xen-devel] [PATCH v2 01/18] xen: introduce the pvcalls interface header
On Thu, 25 May 2017, Boris Ostrovsky wrote: > On 05/19/2017 07:22 PM, Stefano Stabellini wrote: > > Introduce the C header file which defines the PV Calls interface. It is > > imported from xen/include/public/io/pvcalls.h. > > > > Signed-off-by: Stefano Stabellini> > CC: konrad.w...@oracle.com > > CC: boris.ostrov...@oracle.com > > CC: jgr...@suse.com > > --- > > include/xen/interface/io/pvcalls.h | 120 > > + > > 1 file changed, 120 insertions(+) > > create mode 100644 include/xen/interface/io/pvcalls.h > > > > diff --git a/include/xen/interface/io/pvcalls.h > > b/include/xen/interface/io/pvcalls.h > > new file mode 100644 > > index 000..0d41959 > > --- /dev/null > > +++ b/include/xen/interface/io/pvcalls.h > > @@ -0,0 +1,120 @@ > > +#ifndef __XEN_PUBLIC_IO_XEN_PVCALLS_H__ > > +#define __XEN_PUBLIC_IO_XEN_PVCALLS_H__ > > + > > +#include > > +#include "xen/interface/io/ring.h" > > + > > +/* "1" means socket, connect, release, bind, listen, accept and poll */ > > +#define XENBUS_FUNCTIONS_CALLS "1" > > + > > +/* > > + * See docs/misc/pvcalls.markdown in xen.git for the full specification: > > + * https://xenbits.xen.org/docs/unstable/misc/pvcalls.html > > + */ > > +struct pvcalls_data_intf { > > +RING_IDX in_cons, in_prod, in_error; > > + > > +uint8_t pad1[52]; > > + > > +RING_IDX out_cons, out_prod, out_error; > > + > > +uint8_t pad2[52]; > > + > > +RING_IDX ring_order; > > +grant_ref_t ref[]; > > I think you should also include . > > In fact, ring.h probably needs to do it too. I'll do, thanks ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH v2 01/18] xen: introduce the pvcalls interface header
On 05/19/2017 07:22 PM, Stefano Stabellini wrote: > Introduce the C header file which defines the PV Calls interface. It is > imported from xen/include/public/io/pvcalls.h. > > Signed-off-by: Stefano Stabellini> CC: konrad.w...@oracle.com > CC: boris.ostrov...@oracle.com > CC: jgr...@suse.com > --- > include/xen/interface/io/pvcalls.h | 120 > + > 1 file changed, 120 insertions(+) > create mode 100644 include/xen/interface/io/pvcalls.h > > diff --git a/include/xen/interface/io/pvcalls.h > b/include/xen/interface/io/pvcalls.h > new file mode 100644 > index 000..0d41959 > --- /dev/null > +++ b/include/xen/interface/io/pvcalls.h > @@ -0,0 +1,120 @@ > +#ifndef __XEN_PUBLIC_IO_XEN_PVCALLS_H__ > +#define __XEN_PUBLIC_IO_XEN_PVCALLS_H__ > + > +#include > +#include "xen/interface/io/ring.h" > + > +/* "1" means socket, connect, release, bind, listen, accept and poll */ > +#define XENBUS_FUNCTIONS_CALLS "1" > + > +/* > + * See docs/misc/pvcalls.markdown in xen.git for the full specification: > + * https://xenbits.xen.org/docs/unstable/misc/pvcalls.html > + */ > +struct pvcalls_data_intf { > +RING_IDX in_cons, in_prod, in_error; > + > +uint8_t pad1[52]; > + > +RING_IDX out_cons, out_prod, out_error; > + > +uint8_t pad2[52]; > + > +RING_IDX ring_order; > +grant_ref_t ref[]; I think you should also include . In fact, ring.h probably needs to do it too. -boris ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [PATCH v2 01/18] xen: introduce the pvcalls interface header
Introduce the C header file which defines the PV Calls interface. It is imported from xen/include/public/io/pvcalls.h. Signed-off-by: Stefano StabelliniCC: konrad.w...@oracle.com CC: boris.ostrov...@oracle.com CC: jgr...@suse.com --- include/xen/interface/io/pvcalls.h | 120 + 1 file changed, 120 insertions(+) create mode 100644 include/xen/interface/io/pvcalls.h diff --git a/include/xen/interface/io/pvcalls.h b/include/xen/interface/io/pvcalls.h new file mode 100644 index 000..0d41959 --- /dev/null +++ b/include/xen/interface/io/pvcalls.h @@ -0,0 +1,120 @@ +#ifndef __XEN_PUBLIC_IO_XEN_PVCALLS_H__ +#define __XEN_PUBLIC_IO_XEN_PVCALLS_H__ + +#include +#include "xen/interface/io/ring.h" + +/* "1" means socket, connect, release, bind, listen, accept and poll */ +#define XENBUS_FUNCTIONS_CALLS "1" + +/* + * See docs/misc/pvcalls.markdown in xen.git for the full specification: + * https://xenbits.xen.org/docs/unstable/misc/pvcalls.html + */ +struct pvcalls_data_intf { +RING_IDX in_cons, in_prod, in_error; + +uint8_t pad1[52]; + +RING_IDX out_cons, out_prod, out_error; + +uint8_t pad2[52]; + +RING_IDX ring_order; +grant_ref_t ref[]; +}; +DEFINE_XEN_FLEX_RING(pvcalls); + +#define PVCALLS_SOCKET 0 +#define PVCALLS_CONNECT1 +#define PVCALLS_RELEASE2 +#define PVCALLS_BIND 3 +#define PVCALLS_LISTEN 4 +#define PVCALLS_ACCEPT 5 +#define PVCALLS_POLL 6 + +struct xen_pvcalls_request { +uint32_t req_id; /* private to guest, echoed in response */ +uint32_t cmd;/* command to execute */ +union { +struct xen_pvcalls_socket { +uint64_t id; +uint32_t domain; +uint32_t type; +uint32_t protocol; +} socket; +struct xen_pvcalls_connect { +uint64_t id; +uint8_t addr[28]; +uint32_t len; +uint32_t flags; +grant_ref_t ref; +uint32_t evtchn; +} connect; +struct xen_pvcalls_release { +uint64_t id; +uint8_t reuse; +} release; +struct xen_pvcalls_bind { +uint64_t id; +uint8_t addr[28]; +uint32_t len; +} bind; +struct xen_pvcalls_listen { +uint64_t id; +uint32_t backlog; +} listen; +struct xen_pvcalls_accept { +uint64_t id; +uint64_t id_new; +grant_ref_t ref; +uint32_t evtchn; +} accept; +struct xen_pvcalls_poll { +uint64_t id; +} poll; +/* dummy member to force sizeof(struct xen_pvcalls_request) + * to match across archs */ +struct xen_pvcalls_dummy { +uint8_t dummy[56]; +} dummy; +} u; +}; + +struct xen_pvcalls_response { +uint32_t req_id; +uint32_t cmd; +int32_t ret; +uint32_t pad; +union { +struct _xen_pvcalls_socket { +uint64_t id; +} socket; +struct _xen_pvcalls_connect { +uint64_t id; +} connect; +struct _xen_pvcalls_release { +uint64_t id; +} release; +struct _xen_pvcalls_bind { +uint64_t id; +} bind; +struct _xen_pvcalls_listen { +uint64_t id; +} listen; +struct _xen_pvcalls_accept { +uint64_t id; +} accept; +struct _xen_pvcalls_poll { +uint64_t id; +} poll; +struct _xen_pvcalls_dummy { +uint8_t dummy[8]; +} dummy; +} u; +}; + +DEFINE_RING_TYPES(xen_pvcalls, struct xen_pvcalls_request, + struct xen_pvcalls_response); + +#endif -- 1.9.1 ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel