xref: /qemu/include/hw/xen/xen-legacy-backend.h (revision f0021dba622f562d42982f4f4105a7e14ef7535c)
1d94f9486Saliguori #ifndef QEMU_HW_XEN_BACKEND_H
2175de524SMarkus Armbruster #define QEMU_HW_XEN_BACKEND_H
3d94f9486Saliguori 
40d09e41aSPaolo Bonzini #include "hw/xen/xen_common.h"
5f0021dbaSEmil Condrea #include "hw/xen/xen_pvdev.h"
69c17d615SPaolo Bonzini #include "sysemu/sysemu.h"
71422e32dSPaolo Bonzini #include "net/net.h"
8d94f9486Saliguori 
9d94f9486Saliguori /* variables */
1081daba58SIan Campbell extern xc_interface *xen_xc;
11e0cb42aeSIan Campbell extern xenforeignmemory_handle *xen_fmem;
12d94f9486Saliguori extern struct xs_handle *xenstore;
132c8b24a3Saliguori extern const char *xen_protocol;
149432e53aSJuergen Gross extern DeviceState *xen_sysdev;
15d94f9486Saliguori 
16637c53ffSJuergen Gross int xenstore_mkdir(char *path, int p);
17d94f9486Saliguori int xenstore_write_be_str(struct XenDevice *xendev, const char *node, const char *val);
18d94f9486Saliguori int xenstore_write_be_int(struct XenDevice *xendev, const char *node, int ival);
1910bb3c62SFelipe Franciosi int xenstore_write_be_int64(struct XenDevice *xendev, const char *node, int64_t ival);
20d94f9486Saliguori char *xenstore_read_be_str(struct XenDevice *xendev, const char *node);
21d94f9486Saliguori int xenstore_read_be_int(struct XenDevice *xendev, const char *node, int *ival);
22d94f9486Saliguori char *xenstore_read_fe_str(struct XenDevice *xendev, const char *node);
23d94f9486Saliguori int xenstore_read_fe_int(struct XenDevice *xendev, const char *node, int *ival);
24b9730c5bSEmil Condrea int xenstore_read_fe_uint64(struct XenDevice *xendev, const char *node,
25b9730c5bSEmil Condrea                             uint64_t *uval);
26d94f9486Saliguori 
27d94f9486Saliguori struct XenDevice *xen_be_find_xendev(const char *type, int dom, int dev);
28d94f9486Saliguori void xen_be_check_state(struct XenDevice *xendev);
29d94f9486Saliguori 
30d94f9486Saliguori /* xen backend driver bits */
31d94f9486Saliguori int xen_be_init(void);
320e39bb02SJuergen Gross void xen_be_register_common(void);
33d94f9486Saliguori int xen_be_register(const char *type, struct XenDevOps *ops);
34d94f9486Saliguori int xen_be_set_state(struct XenDevice *xendev, enum xenbus_state state);
35d94f9486Saliguori int xen_be_bind_evtchn(struct XenDevice *xendev);
36d94f9486Saliguori void xen_be_unbind_evtchn(struct XenDevice *xendev);
37d94f9486Saliguori int xen_be_send_notify(struct XenDevice *xendev);
38d94f9486Saliguori 
39e57dd20bSaliguori /* actual backend drivers */
40e57dd20bSaliguori extern struct XenDevOps xen_console_ops;      /* xen_console.c     */
41e7151f83Saliguori extern struct XenDevOps xen_kbdmouse_ops;     /* xen_framebuffer.c */
42e7151f83Saliguori extern struct XenDevOps xen_framebuffer_ops;  /* xen_framebuffer.c */
4362d23efaSaliguori extern struct XenDevOps xen_blkdev_ops;       /* xen_disk.c        */
44e613b064Saliguori extern struct XenDevOps xen_netdev_ops;       /* xen_nic.c         */
45816ac92eSJuergen Gross #ifdef CONFIG_USB_LIBUSB
46816ac92eSJuergen Gross extern struct XenDevOps xen_usb_ops;          /* xen-usb.c         */
47816ac92eSJuergen Gross #endif
48e7151f83Saliguori 
49e7151f83Saliguori void xen_init_display(int domid);
50e57dd20bSaliguori 
512c8b24a3Saliguori /* configuration (aka xenbus setup) */
5228695489SAnthony Liguori void xen_config_cleanup(void);
532c8b24a3Saliguori int xen_config_dev_blk(DriveInfo *disk);
542c8b24a3Saliguori int xen_config_dev_nic(NICInfo *nic);
559306acb5Saliguori int xen_config_dev_vfb(int vdev, const char *type);
569306acb5Saliguori int xen_config_dev_vkbd(int vdev);
579306acb5Saliguori int xen_config_dev_console(int vdev);
582c8b24a3Saliguori 
59d94f9486Saliguori #endif /* QEMU_HW_XEN_BACKEND_H */
60