hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/include/xen/xenbus.h
....@@ -42,10 +42,12 @@
4242 #include <linux/completion.h>
4343 #include <linux/init.h>
4444 #include <linux/slab.h>
45
+#include <linux/semaphore.h>
4546 #include <xen/interface/xen.h>
4647 #include <xen/interface/grant_table.h>
4748 #include <xen/interface/io/xenbus.h>
4849 #include <xen/interface/io/xs_wire.h>
50
+#include <xen/interface/event_channel.h>
4951
5052 #define XENBUS_MAX_RING_GRANT_ORDER 4
5153 #define XENBUS_MAX_RING_GRANTS (1U << XENBUS_MAX_RING_GRANT_ORDER)
....@@ -85,6 +87,7 @@
8587 enum xenbus_state state;
8688 struct completion down;
8789 struct work_struct work;
90
+ struct semaphore reclaim_sem;
8891 };
8992
9093 static inline struct xenbus_device *to_xenbus_device(struct device *dev)
....@@ -102,6 +105,7 @@
102105 struct xenbus_driver {
103106 const char *name; /* defaults to ids[0].devicetype */
104107 const struct xenbus_device_id *ids;
108
+ bool allow_rebind; /* avoid setting xenstore closed during remove */
105109 int (*probe)(struct xenbus_device *dev,
106110 const struct xenbus_device_id *id);
107111 void (*otherend_changed)(struct xenbus_device *dev,
....@@ -113,6 +117,7 @@
113117 struct device_driver driver;
114118 int (*read_otherend_details)(struct xenbus_device *dev);
115119 int (*is_ready)(struct xenbus_device *dev);
120
+ void (*reclaim_memory)(struct xenbus_device *dev);
116121 };
117122
118123 static inline struct xenbus_driver *to_xenbus_driver(struct device_driver *drv)
....@@ -216,18 +221,11 @@
216221 unsigned int nr_pages, grant_ref_t *grefs);
217222 int xenbus_map_ring_valloc(struct xenbus_device *dev, grant_ref_t *gnt_refs,
218223 unsigned int nr_grefs, void **vaddr);
219
-int xenbus_map_ring(struct xenbus_device *dev,
220
- grant_ref_t *gnt_refs, unsigned int nr_grefs,
221
- grant_handle_t *handles, unsigned long *vaddrs,
222
- bool *leaked);
223224
224225 int xenbus_unmap_ring_vfree(struct xenbus_device *dev, void *vaddr);
225
-int xenbus_unmap_ring(struct xenbus_device *dev,
226
- grant_handle_t *handles, unsigned int nr_handles,
227
- unsigned long *vaddrs);
228226
229
-int xenbus_alloc_evtchn(struct xenbus_device *dev, int *port);
230
-int xenbus_free_evtchn(struct xenbus_device *dev, int port);
227
+int xenbus_alloc_evtchn(struct xenbus_device *dev, evtchn_port_t *port);
228
+int xenbus_free_evtchn(struct xenbus_device *dev, evtchn_port_t port);
231229
232230 enum xenbus_state xenbus_read_driver_state(const char *path);
233231