34#ifndef _XEN_XENSTORE_XENSTOREVAR_H
35#define _XEN_XENSTORE_XENSTOREVAR_H
39#include <sys/eventhandler.h>
40#include <sys/malloc.h>
43#include <machine/stdarg.h>
45#include <xen/xen-os.h>
46#include <contrib/xen/grant_table.h>
47#include <contrib/xen/io/xenbus.h>
48#include <contrib/xen/io/xs_wire.h>
53MALLOC_DECLARE(M_XENSTORE);
57typedef void (xs_watch_cb_t)(
struct xs_watch *,
const char **vec,
69 xs_watch_cb_t *callback;
72 uintptr_t callback_data;
75 unsigned int max_pending;
85typedef int (*xs_event_handler_t)(
void *);
92#define XST_NIL ((struct xs_transaction) { 0 })
99bool xs_initialized(
void);
106evtchn_port_t xs_evtchn(
void);
113vm_paddr_t xs_address(
void);
131 const char *node,
unsigned int *num,
const char ***result);
144int xs_exists(
struct xs_transaction t,
const char *dir,
const char *node);
164 const char *node,
unsigned int *len,
void **result);
178 const char *node,
const char *
string);
203int xs_rm(
struct xs_transaction t,
const char *dir,
const char *node);
259 const char *dir,
const char *node,
int *scancountp,
const char *fmt, ...)
260 __attribute__((format(scanf, 5, 6)));
275 const
char *node, const
char *fmt, ...)
276 __attribute__((format(printf, 4, 5)));
291 const
char *node, const
char *fmt, va_list ap);
343int xs_register_watch(struct
xs_watch *watch);
355void xs_unregister_watch(struct
xs_watch *watch);
367struct sbuf *xs_join(const
char *, const
char *);