xenbus_watch
struct xenbus_watch xbusd_otherend_watch;
int register_xenbus_watch(struct xenbus_watch *watch);
void unregister_xenbus_watch(struct xenbus_watch *watch);
const char *path2, struct xenbus_watch *watch,
void (*callback)(struct xenbus_watch *,
void xenbus_unwatch_path(struct xenbus_watch *);
SLIST_ENTRY(xenbus_watch) watch_next;
void (*xbw_callback)(struct xenbus_watch *,
static void balloon_xenbus_watcher(struct xenbus_watch *, const char **,
static struct xenbus_watch balloon_xenbus_watch = {
balloon_xenbus_watcher(struct xenbus_watch *watch, const char **vec,
static struct xenbus_watch xenbus_shutdown_watch = {
xenbus_shutdown_handler(struct xenbus_watch *watch, const char **vec,
struct xenbus_watch xbdi_watch; /* to watch our store */
static void xbdback_backend_changed(struct xenbus_watch *,
xbdback_backend_changed(struct xenbus_watch *watch,
const char *path2, struct xenbus_watch *watch,
void (*callback)(struct xenbus_watch *,
xenbus_unwatch_path(struct xenbus_watch *watch)
otherend_changed(struct xenbus_watch *watch,
frontend_changed(struct xenbus_watch *watch,
backend_changed(struct xenbus_watch *watch,
static struct xenbus_watch fe_watch;
static struct xenbus_watch be_watch;
static struct xenbus_watch *
struct xenbus_watch *i, *cmp;
register_xenbus_watch(struct xenbus_watch *watch)
SLIST_REMOVE(&watches, watch, xenbus_watch, watch_next);
unregister_xenbus_watch(struct xenbus_watch *watch)
SLIST_REMOVE(&watches, watch, xenbus_watch, watch_next);
struct xenbus_watch *watch;
struct xenbus_watch *handle;
static SLIST_HEAD(, xenbus_watch) watches;