summaryrefslogtreecommitdiff
path: root/include/xen
diff options
context:
space:
mode:
authorAndrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>2021-01-11 12:52:13 +0000
committerAndrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>2021-01-11 12:52:13 +0000
commit6f99d037640ef1651496a37746975640c991d86b (patch)
treef4318eadab68f2883e2f55a24280e97324f2cf5f /include/xen
parentdb8f6d3f8923c08de8f7a6c63ecb33c4cdac9b3a (diff)
parentb3f656a592f3ade657d14888fd3dc92a14975890 (diff)
Merge tag 'v5.4.87' into 5.4-2.3.x-imx
This is the 5.4.87 stable release Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
Diffstat (limited to 'include/xen')
-rw-r--r--include/xen/xenbus.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h
index 869c816d5f8c..eba01ab5a55e 100644
--- a/include/xen/xenbus.h
+++ b/include/xen/xenbus.h
@@ -59,6 +59,15 @@ struct xenbus_watch
/* Path being watched. */
const char *node;
+ unsigned int nr_pending;
+
+ /*
+ * Called just before enqueing new event while a spinlock is held.
+ * The event will be discarded if this callback returns false.
+ */
+ bool (*will_handle)(struct xenbus_watch *,
+ const char *path, const char *token);
+
/* Callback (executed in a process context with no locks held). */
void (*callback)(struct xenbus_watch *,
const char *path, const char *token);
@@ -192,10 +201,14 @@ void xenbus_probe(struct work_struct *);
int xenbus_watch_path(struct xenbus_device *dev, const char *path,
struct xenbus_watch *watch,
+ bool (*will_handle)(struct xenbus_watch *,
+ const char *, const char *),
void (*callback)(struct xenbus_watch *,
const char *, const char *));
-__printf(4, 5)
+__printf(5, 6)
int xenbus_watch_pathfmt(struct xenbus_device *dev, struct xenbus_watch *watch,
+ bool (*will_handle)(struct xenbus_watch *,
+ const char *, const char *),
void (*callback)(struct xenbus_watch *,
const char *, const char *),
const char *pathfmt, ...);