xs_watch
static struct xs_watch target_watch =
watch_target(struct xs_watch *watch,
xbb_attach_cb(struct xs_watch *watch, const char **vec, unsigned int len)
struct xs_watch hotplug_watch;
struct xs_watch xctrl_watch;
xctrl_on_watch_event(struct xs_watch *watch, const char **vec, unsigned int len)
static struct xs_watch *find_watch(const char *token);
struct xs_watch *watch;
xs_watch(watch->node, token);
struct xs_watch *handle;
xs_register_watch(struct xs_watch *watch)
error = xs_watch(watch->node, token);
xs_unregister_watch(struct xs_watch *watch)
static struct xs_watch *
struct xs_watch *i, *cmp;
xs_dev_watch_cb(struct xs_watch *watch, const char **vec, unsigned int len)
struct xs_watch watch;
xenbusb_otherend_watch_cb(struct xs_watch *watch, const char **vec,
xenbusb_local_watch_cb(struct xs_watch *watch, const char **vec,
xenbusb_devices_changed(struct xs_watch *watch, const char **vec,
struct xs_watch xd_otherend_watch;
struct xs_watch xd_local_watch;
struct xs_watch xbs_device_watch;
int xs_register_watch(struct xs_watch *watch);
void xs_unregister_watch(struct xs_watch *watch);
struct xs_watch;
typedef void (xs_watch_cb_t)(struct xs_watch *, const char **vec,
LIST_ENTRY(xs_watch) list;
LIST_HEAD(xs_watch_list, xs_watch);