xenbus.h

来自「xen虚拟机源代码安装包」· C头文件 代码 · 共 97 行

H
97
字号
#ifndef XENBUS_H__#define XENBUS_H__typedef unsigned long xenbus_transaction_t;#define XBT_NIL ((xenbus_transaction_t)0)/* Initialize the XenBus system. */void init_xenbus(void);/* Read the value associated with a path.  Returns a malloc'd error   string on failure and sets *value to NULL.  On success, *value is   set to a malloc'd copy of the value. */char *xenbus_read(xenbus_transaction_t xbt, const char *path, char **value);/* Watch event queue */struct xenbus_event {    /* Keep these two as this for xs.c */    char *path;    char *token;    struct xenbus_event *next;};typedef struct xenbus_event *xenbus_event_queue;char *xenbus_watch_path_token(xenbus_transaction_t xbt, const char *path, const char *token, xenbus_event_queue *events);char *xenbus_unwatch_path_token(xenbus_transaction_t xbt, const char *path, const char *token);extern struct wait_queue_head xenbus_watch_queue;void xenbus_wait_for_watch(xenbus_event_queue *queue);char **xenbus_wait_for_watch_return(xenbus_event_queue *queue);char* xenbus_wait_for_value(const char *path, const char *value, xenbus_event_queue *queue);/* When no token is provided, use a global queue. */#define XENBUS_WATCH_PATH_TOKEN "xenbus_watch_path"extern xenbus_event_queue xenbus_events;#define xenbus_watch_path(xbt, path) xenbus_watch_path_token(xbt, path, XENBUS_WATCH_PATH_TOKEN, NULL)#define xenbus_unwatch_path(xbt, path) xenbus_unwatch_path_token(xbt, path, XENBUS_WATCH_PATH_TOKEN)/* Associates a value with a path.  Returns a malloc'd error string on   failure. */char *xenbus_write(xenbus_transaction_t xbt, const char *path, const char *value);struct write_req {    const void *data;    unsigned len;};/* Send a message to xenbus, in the same fashion as xb_write, and   block waiting for a reply.  The reply is malloced and should be   freed by the caller. */struct xsd_sockmsg *xenbus_msg_reply(int type,                 xenbus_transaction_t trans,                 struct write_req *io,                 int nr_reqs);/* Removes the value associated with a path.  Returns a malloc'd error   string on failure. */char *xenbus_rm(xenbus_transaction_t xbt, const char *path);/* List the contents of a directory.  Returns a malloc'd error string   on failure and sets *contents to NULL.  On success, *contents is   set to a malloc'd array of pointers to malloc'd strings.  The array   is NULL terminated.  May block. */char *xenbus_ls(xenbus_transaction_t xbt, const char *prefix, char ***contents);/* Reads permissions associated with a path.  Returns a malloc'd error   string on failure and sets *value to NULL.  On success, *value is   set to a malloc'd copy of the value. */char *xenbus_get_perms(xenbus_transaction_t xbt, const char *path, char **value);/* Sets the permissions associated with a path.  Returns a malloc'd   error string on failure. */char *xenbus_set_perms(xenbus_transaction_t xbt, const char *path, domid_t dom, char perm);/* Start a xenbus transaction.  Returns the transaction in xbt on   success or a malloc'd error string otherwise. */char *xenbus_transaction_start(xenbus_transaction_t *xbt);/* End a xenbus transaction.  Returns a malloc'd error string if it   fails.  abort says whether the transaction should be aborted.   Returns 1 in *retry iff the transaction should be retried. */char *xenbus_transaction_end(xenbus_transaction_t, int abort,			     int *retry);/* Read path and parse it as an integer.  Returns -1 on error. */int xenbus_read_integer(char *path);/* Contraction of snprintf and xenbus_write(path/node). */char* xenbus_printf(xenbus_transaction_t xbt,                                  char* node, char* path,                                  char* fmt, ...);/* Reset the XenBus system. */void fini_xenbus(void);#endif /* XENBUS_H__ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?